From d1235f486d8681c636247e63b78517f5d9386fcb Mon Sep 17 00:00:00 2001 From: Daniel Espinosa Date: Wed, 12 Nov 2014 17:37:55 -0500 Subject: [PATCH 0001/2060] Fix package building for GXml --- mingw-w64-gxml/PKGBUILD | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mingw-w64-gxml/PKGBUILD b/mingw-w64-gxml/PKGBUILD index 7decc081bf..8bef63eb85 100644 --- a/mingw-w64-gxml/PKGBUILD +++ b/mingw-w64-gxml/PKGBUILD @@ -25,6 +25,8 @@ sha256sums=('f821c5b076208aa311151c263b951aaab27991663edd1918c05522aa0463663d') prepare() { cd "${srcdir}"/${_realname}-${pkgver} + + autoreconf -fiv } build() @@ -37,7 +39,8 @@ build() --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --libexecdir=${MINGW_PREFIX}/lib + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-introspection make -j1 } From b5ffced6e4c206dfa76f90e2c77f3c2c5c0e64b5 Mon Sep 17 00:00:00 2001 From: Daniel Espinosa Date: Wed, 12 Nov 2014 18:09:32 -0500 Subject: [PATCH 0002/2060] Added LibreSCL package --- mingw-w64-librescl/PKGBUILD | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mingw-w64-librescl/PKGBUILD diff --git a/mingw-w64-librescl/PKGBUILD b/mingw-w64-librescl/PKGBUILD new file mode 100644 index 0000000000..82ef5205e9 --- /dev/null +++ b/mingw-w64-librescl/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer: Daniel Espinosa + +_realname=librescl +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.2.1 +pkgrel=1 +arch=('any') +groups=("${MINGW_PACKAGE_PREFIX}") +pkgdesc="Reader/Writer SCL IEC 61850-6 files version 0.2.1 (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-zlib" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-glib2>=2.34.0" + "${MINGW_PACKAGE_PREFIX}-libgee" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-gxml") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-libtool") +options=('strip' 'staticlibs') +license=('LGPL') +url="https://github.com/pwmediaconsulting/librescl" +source=("https://github.com/pwmediaconsulting/librescl/archive/LIBRESCL_0_2_1.tar.gz") +sha256sums=('6c97b9f3285b8d406711ead5295991a8b6586898b93f9a5e95b759bc4d57490f') + +prepare() { + cd "${srcdir}"/librescl-LIBRESCL_0_2_1 + ./autogen.sh + make distclean + autoreconf -fiv +} + +build() +{ + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../librescl-LIBRESCL_0_2_1/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib + make -j1 +} + +package() +{ + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From aab35a2f9eb11057502549be0b68aad92a824dc0 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 15 Nov 2014 10:25:08 +0100 Subject: [PATCH 0003/2060] ctpl: new package. --- mingw-w64-ctpl-git/001-autogen.patch | 12 ++++++++ mingw-w64-ctpl-git/PKGBUILD | 44 ++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 mingw-w64-ctpl-git/001-autogen.patch create mode 100644 mingw-w64-ctpl-git/PKGBUILD diff --git a/mingw-w64-ctpl-git/001-autogen.patch b/mingw-w64-ctpl-git/001-autogen.patch new file mode 100644 index 0000000000..cde8e9c82c --- /dev/null +++ b/mingw-w64-ctpl-git/001-autogen.patch @@ -0,0 +1,12 @@ +diff --git a/autogen.sh b/autogen.sh +index 6ab0c32..d26a471 100755 +--- a/autogen.sh ++++ b/autogen.sh +@@ -2,7 +2,6 @@ + + mkdir -p build/aux || exit 1 + mkdir -p build/m4 || exit 1 +-gettextize -f || exit 1 + gtkdocize --flavour no-tmpl || exit 1 + autoreconf -vfi || exit 1 + diff --git a/mingw-w64-ctpl-git/PKGBUILD b/mingw-w64-ctpl-git/PKGBUILD new file mode 100644 index 0000000000..f8ff74f7d7 --- /dev/null +++ b/mingw-w64-ctpl-git/PKGBUILD @@ -0,0 +1,44 @@ +# Maintainer: Andrea Zagli + +_realname=ctpl +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=0.3.3.09833ec +pkgrel=1 +arch=('any') +pkgdesc="C Template (Parser) Library (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-glib2") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gtk-doc") +options=('strip' 'staticlibs') +license=("LGPL 2.1") +url="http://ctpl.tuxfamily.org/" +source=("${_realname}"::"git+https://github.com/KrullKorg/ctpl.git" + 001-autogen.patch) +sha256sums=('SKIP' + 'a280bd5b98e6805d81b4898d52238fdd84c4b02b9563f7e1d26f06fd5a311c1b') + +prepare() { + cd $srcdir/${_realname} + + patch -p1 -i ${srcdir}/001-autogen.patch + + ./autogen.sh +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From efeb49547087bf1b7627fb495932c957d934e26e Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 16 Nov 2014 10:38:12 +0100 Subject: [PATCH 0004/2060] ctpl: added pkgver function in PKGBUILD. --- mingw-w64-ctpl-git/PKGBUILD | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mingw-w64-ctpl-git/PKGBUILD b/mingw-w64-ctpl-git/PKGBUILD index f8ff74f7d7..d126d8d754 100644 --- a/mingw-w64-ctpl-git/PKGBUILD +++ b/mingw-w64-ctpl-git/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Andrea Zagli _realname=ctpl +_base_ver=0.3.3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=0.3.3.09833ec +pkgver=0.3.3.374.09833ec pkgrel=1 arch=('any') pkgdesc="C Template (Parser) Library (mingw-w64)" @@ -17,6 +18,11 @@ source=("${_realname}"::"git+https://github.com/KrullKorg/ctpl.git" sha256sums=('SKIP' 'a280bd5b98e6805d81b4898d52238fdd84c4b02b9563f7e1d26f06fd5a311c1b') +pkgver() { + cd "$srcdir/$_realname" + printf "%s.%s.%s" "${_base_ver}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + prepare() { cd $srcdir/${_realname} From cd55a85cb2adc427abd2444a08ca9c20ce06a101 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 00:58:26 +0300 Subject: [PATCH 0005/2060] libtommath: New package. --- mingw-w64-libtommath/PKGBUILD | 54 +++++++++++++++++++ .../libtommath-0.42.0-makefile.patch | 47 ++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 mingw-w64-libtommath/PKGBUILD create mode 100644 mingw-w64-libtommath/libtommath-0.42.0-makefile.patch diff --git a/mingw-w64-libtommath/PKGBUILD b/mingw-w64-libtommath/PKGBUILD new file mode 100644 index 0000000000..44e49d3acb --- /dev/null +++ b/mingw-w64-libtommath/PKGBUILD @@ -0,0 +1,54 @@ +# Maintainer: Alexey Pavlov + +_realname=libtommath +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.42.0 +pkgrel=1 +pkgdesc="Highly optimized and portable routines for integer based number theoretic applications (mingw-w64)" +url="http://www.libtom.org/" +arch=('any') +license=("custom") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +groups=("${MINGW_PACKAGE_PREFIX}") +options=('staticlibs' 'strip') +source=("http://libtom.org/files/ltm-${pkgver}.tar.bz2" + 'libtommath-0.42.0-makefile.patch') +md5sums=('7380da904b020301be7045cb3a89039b' + '0bf4d7eaf45e67dfc38c25e39510111a') + +prepare() { + cd $srcdir/${_realname}-$pkgver + patch -Np1 -i ${srcdir}/libtommath-0.42.0-makefile.patch +} + +build() { + cp -rf ${_realname}-$pkgver build-${MINGW_CHOST} + cd $srcdir/build-${MINGW_CHOST} + + CFLAGS+=" -I$srcdir/build-${MINGW_CHOST}" + CC="${MINGW_PREFIX}/bin/gcc" \ + make -f makefile.shared IGNORE_SPEED=1 +} + +check() { + cd $srcdir/build-${MINGW_CHOST} + + CC=${MINGW_PREFIX}/bin/gcc \ + make -f makefile.shared mtest +} + +package() { + cd $srcdir/build-${MINGW_CHOST} + + CC="${MINGW_PREFIX}/bin/gcc" \ + make -f makefile.shared \ + DESTDIR=$pkgdir \ + INSTALL_GROUP=root \ + LIBPATH=${MINGW_PREFIX}/lib \ + INCPATH=${MINGW_PREFIX}/include \ + DATAPATH=${MINGW_PREFIX}/share/doc/libtommath/pdf \ + install + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + chmod 644 ${pkgdir}${MINGW_PREFIX}/lib/libtommath{.dll,}.a +} diff --git a/mingw-w64-libtommath/libtommath-0.42.0-makefile.patch b/mingw-w64-libtommath/libtommath-0.42.0-makefile.patch new file mode 100644 index 0000000000..97f9d6ddff --- /dev/null +++ b/mingw-w64-libtommath/libtommath-0.42.0-makefile.patch @@ -0,0 +1,47 @@ +--- a/makefile.shared 2010-07-23 22:27:20.000000000 +0800 ++++ b/makefile.shared 2014-08-11 20:25:06.482017927 +0800 +@@ -1,9 +1,9 @@ + #Makefile for GCC + # + #Tom St Denis +-VERSION=0:41 ++VERSION=0:42 + +-CC = libtool --mode=compile --tag=CC gcc ++LTCOMPILE = libtool --mode=compile --tag=CC $(CC) + + CFLAGS += -I./ -Wall -W -Wshadow -Wsign-compare + +@@ -82,21 +82,24 @@ + + objs: $(OBJECTS) + ++.c.o: ++ $(LTCOMPILE) $(CFLAGS) $(LDFLAGS) -o $@ -c $< ++ + $(LIBNAME): $(OBJECTS) +- libtool --mode=link gcc *.lo -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION) ++ libtool --mode=link --tag=CC $(CC) $(LDFLAGS) *.lo -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION) -no-undefined + + install: $(LIBNAME) +- install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(LIBPATH) ++ install -d $(DESTDIR)$(LIBPATH) + libtool --mode=install install -c $(LIBNAME) $(DESTDIR)$(LIBPATH)/$(LIBNAME) +- install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(INCPATH) +- install -g $(GROUP) -o $(USER) $(HEADERS) $(DESTDIR)$(INCPATH) ++ install -d $(DESTDIR)$(INCPATH) ++ install -m 644 $(HEADERS) $(DESTDIR)$(INCPATH) + + test: $(LIBNAME) demo/demo.o +- gcc $(CFLAGS) -c demo/demo.c -o demo/demo.o +- libtool --mode=link gcc -o test demo/demo.o $(LIBNAME_S) ++ $(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o ++ libtool --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME_S) + + mtest: test +- cd mtest ; gcc $(CFLAGS) mtest.c -o mtest ++ cd mtest ; $(CC) $(CFLAGS) $(LDFLAGS) mtest.c -o mtest + + timing: $(LIBNAME) +- gcc $(CFLAGS) -DTIMER demo/timing.c $(LIBNAME_S) -o ltmtest ++ libtool --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME_S) -o ltmtest From 6aef1eef909560c6ae8c077f09524d1d19dadb82 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 07:22:00 +0300 Subject: [PATCH 0006/2060] ncurses: Update to 20141115 patchset. --- mingw-w64-ncurses/PKGBUILD | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mingw-w64-ncurses/PKGBUILD b/mingw-w64-ncurses/PKGBUILD index d5a6334074..121d6a42d3 100644 --- a/mingw-w64-ncurses/PKGBUILD +++ b/mingw-w64-ncurses/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov _realname=ncurses - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.9 -pkgrel=3 +_base_ver=5.9 +_date_rev=20141115 +pkgver=${_base_ver}.${_date_rev} +pkgrel=1 pkgdesc="System V Release 4.0 curses emulation library" arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-libgnurx") @@ -13,19 +14,22 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-libgnurx" "${MINGW_PACKAGE_PREFIX}-gcc") url="http://www.gnu.org/software/ncurses/" license=('MIT') options=('staticlibs' 'strip') -source=(http://ftp.gnu.org/pub/gnu/ncurses/${_realname}-${pkgver}.tar.gz) -md5sums=('8cb9c412e5f2d96bc6f459aa8c6282a1') +source=("${_realname}-${pkgver}.tar.gz"::http://invisible-island.net/datafiles/current/${_realname}.tar.gz) +md5sums=('957e4d55344e49e3e694f4f44ff16e76') build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} - ../$_realname-$pkgver/configure \ + ../$_realname-${_base_ver}-${_date_rev}/configure \ --prefix=${MINGW_PREFIX} \ + --mandir=${MINGW_PREFIX}/share/man \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --without-ada \ --with-cxx \ + --without-shared \ + --without-pthread \ --enable-pc-files \ --disable-rpath \ --enable-colorfgbg \ @@ -47,5 +51,4 @@ package() { make DESTDIR=${pkgdir} install cp -r ${pkgdir}${MINGW_PREFIX}/include/ncursesw ${pkgdir}${MINGW_PREFIX}/include/ncurses cp ${pkgdir}${MINGW_PREFIX}/lib/libncursesw.a ${pkgdir}${MINGW_PREFIX}/lib/libncurses.a - mv ${pkgdir}${MINGW_PREFIX}/man ${pkgdir}${MINGW_PREFIX}/share/ } From 502f704f8cd735c3da6d7efbef07e7a034634b4a Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 19 Nov 2014 16:12:24 +0100 Subject: [PATCH 0007/2060] ctpl: changed repository source from my fork to offcial. --- mingw-w64-ctpl-git/001-autogen.patch | 12 ------------ mingw-w64-ctpl-git/PKGBUILD | 10 +++------- 2 files changed, 3 insertions(+), 19 deletions(-) delete mode 100644 mingw-w64-ctpl-git/001-autogen.patch diff --git a/mingw-w64-ctpl-git/001-autogen.patch b/mingw-w64-ctpl-git/001-autogen.patch deleted file mode 100644 index cde8e9c82c..0000000000 --- a/mingw-w64-ctpl-git/001-autogen.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/autogen.sh b/autogen.sh -index 6ab0c32..d26a471 100755 ---- a/autogen.sh -+++ b/autogen.sh -@@ -2,7 +2,6 @@ - - mkdir -p build/aux || exit 1 - mkdir -p build/m4 || exit 1 --gettextize -f || exit 1 - gtkdocize --flavour no-tmpl || exit 1 - autoreconf -vfi || exit 1 - diff --git a/mingw-w64-ctpl-git/PKGBUILD b/mingw-w64-ctpl-git/PKGBUILD index d126d8d754..ebde22e5b4 100644 --- a/mingw-w64-ctpl-git/PKGBUILD +++ b/mingw-w64-ctpl-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=ctpl _base_ver=0.3.3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=0.3.3.374.09833ec +pkgver=0.3.3.382.8aea180 pkgrel=1 arch=('any') pkgdesc="C Template (Parser) Library (mingw-w64)" @@ -13,10 +13,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://ctpl.tuxfamily.org/" -source=("${_realname}"::"git+https://github.com/KrullKorg/ctpl.git" - 001-autogen.patch) -sha256sums=('SKIP' - 'a280bd5b98e6805d81b4898d52238fdd84c4b02b9563f7e1d26f06fd5a311c1b') +source=("${_realname}"::"git+https://github.com/b4n/ctpl.git") +sha256sums=('SKIP') pkgver() { cd "$srcdir/$_realname" @@ -26,8 +24,6 @@ pkgver() { prepare() { cd $srcdir/${_realname} - patch -p1 -i ${srcdir}/001-autogen.patch - ./autogen.sh } From b2db6a53a807f597c2383487771f2fe106d02dc4 Mon Sep 17 00:00:00 2001 From: Juergen Pfeifer Date: Wed, 19 Nov 2014 16:39:23 +0100 Subject: [PATCH 0008/2060] putty: Add patch with more casts to avoid compiler warnings putty: Add patch to implement optional support for ISO2022 Linedrawing --- mingw-w64-putty/0002-casts.patch | 339 ++++++++++++++++++++++++++++ mingw-w64-putty/0003-linedraw.patch | 67 ++++++ mingw-w64-putty/PKGBUILD | 12 +- 3 files changed, 415 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-putty/0002-casts.patch create mode 100644 mingw-w64-putty/0003-linedraw.patch diff --git a/mingw-w64-putty/0002-casts.patch b/mingw-w64-putty/0002-casts.patch new file mode 100644 index 0000000000..a827721ed6 --- /dev/null +++ b/mingw-w64-putty/0002-casts.patch @@ -0,0 +1,339 @@ +diff -ruN putty/windows/windlg.c putty.new/windows/windlg.c +--- putty/windows/windlg.c 2014-11-19 13:05:38.160482800 +0100 ++++ putty.new/windows/windlg.c 2014-11-19 12:55:03.122840200 +0100 +@@ -209,7 +209,7 @@ + case IDA_LICENCE: + EnableWindow(hwnd, 0); + DialogBox(hinst, MAKEINTRESOURCE(IDD_LICENCEBOX), +- hwnd, LicenceProc); ++ hwnd, (DLGPROC)LicenceProc); + EnableWindow(hwnd, 1); + SetActiveWindow(hwnd); + return 0; +@@ -607,7 +607,7 @@ + void modal_about_box(HWND hwnd) + { + EnableWindow(hwnd, 0); +- DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, AboutProc); ++ DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, (DLGPROC)AboutProc); + EnableWindow(hwnd, 1); + SetActiveWindow(hwnd); + } +@@ -627,7 +627,7 @@ + { + HWND hwnd; + hwnd = CreateDialog(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), +- NULL, NullDlgProc); ++ NULL, (DLGPROC)NullDlgProc); + ShowWindow(hwnd, SW_HIDE); + SetActiveWindow(hwnd); + DestroyWindow(hwnd); +@@ -734,7 +734,7 @@ + { + if (!logbox) { + logbox = CreateDialog(hinst, MAKEINTRESOURCE(IDD_LOGBOX), +- hwnd, LogProc); ++ hwnd, (DLGPROC)LogProc); + ShowWindow(logbox, SW_SHOWNORMAL); + } + SetActiveWindow(logbox); +@@ -742,7 +742,7 @@ + + void showabout(HWND hwnd) + { +- DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, AboutProc); ++ DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, (DLGPROC)AboutProc); + } + + int verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, +diff -ruN putty/windows/window.c putty.new/windows/window.c +--- putty/windows/window.c 2014-11-19 13:05:38.160482800 +0100 ++++ putty.new/windows/window.c 2014-11-19 12:57:54.829526500 +0100 +@@ -803,7 +803,7 @@ + AppendMenu(m, MF_SEPARATOR, 0, 0); + AppendMenu(m, MF_ENABLED, IDM_NEWSESS, "Ne&w Session..."); + AppendMenu(m, MF_ENABLED, IDM_DUPSESS, "&Duplicate Session"); +- AppendMenu(m, MF_POPUP | MF_ENABLED, savedsess_menu, ++ AppendMenu(m, MF_POPUP | MF_ENABLED, (UINT_PTR)savedsess_menu, + "Sa&ved Sessions"); + AppendMenu(m, MF_ENABLED, IDM_RECONF, "Chan&ge Settings..."); + AppendMenu(m, MF_SEPARATOR, 0, 0); +@@ -1008,7 +1008,7 @@ + saved_menu = new_menu; /* XXX lame stacking */ + new_menu = CreatePopupMenu(); + AppendMenu(saved_menu, MF_POPUP | MF_ENABLED, +- new_menu, specials[i].name); ++ (UINT_PTR)new_menu, specials[i].name); + break; + case TS_EXITMENU: + nesting--; +@@ -1039,7 +1039,7 @@ + if (new_menu) { + InsertMenu(popup_menus[j].menu, IDM_SHOWLOG, + MF_BYCOMMAND | MF_POPUP | MF_ENABLED, +- new_menu, "S&pecial Command"); ++ (UINT_PTR)new_menu, "S&pecial Command"); + InsertMenu(popup_menus[j].menu, IDM_SHOWLOG, + MF_BYCOMMAND | MF_SEPARATOR, IDM_SPECIALSEP, 0); + } +diff -ruN putty/windows/wingss.c putty.new/windows/wingss.c +--- putty/windows/wingss.c 2014-11-19 12:27:33.408335000 +0100 ++++ putty.new/windows/wingss.c 2014-11-19 12:42:57.128972300 +0100 +@@ -90,7 +90,7 @@ + if (ret == ERROR_SUCCESS && type == REG_SZ) { + buffer = snewn(size + 20, char); + ret = RegQueryValueEx(regkey, "InstallDir", NULL, +- &type, buffer, &size); ++ &type, (LPBYTE)buffer, &size); + if (ret == ERROR_SUCCESS && type == REG_SZ) { + strcat(buffer, "\\bin\\gssapi32.dll"); + module = LoadLibrary(buffer); +diff -ruN putty/windows/winhelp.c putty.new/windows/winhelp.c +--- putty/windows/winhelp.c 2014-11-19 13:05:38.160482800 +0100 ++++ putty.new/windows/winhelp.c 2014-11-19 12:36:01.276512800 +0100 +@@ -105,7 +105,7 @@ + #endif /* NO_HTMLHELP */ + if (help_path) { + char *cmd = dupprintf("JI(`',`%.*s')", colonpos, topic); +- WinHelp(hwnd, help_path, HELP_COMMAND, cmd); ++ WinHelp(hwnd, help_path, HELP_COMMAND, (LPARAM)cmd); + sfree(cmd); + } + } else { +diff -ruN putty/windows/winpgen.c putty.new/windows/winpgen.c +--- putty/windows/winpgen.c 2014-11-19 13:05:38.191677400 +0100 ++++ putty.new/windows/winpgen.c 2014-11-19 13:03:39.991112100 +0100 +@@ -302,7 +302,7 @@ + return 0; + case 101: + EnableWindow(hwnd, 0); +- DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, LicenceProc); ++ DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, (DLGPROC)LicenceProc); + EnableWindow(hwnd, 1); + SetActiveWindow(hwnd); + return 0; +@@ -678,7 +678,7 @@ + pps.comment = comment; + dlgret = DialogBoxParam(hinst, + MAKEINTRESOURCE(210), +- NULL, PassphraseProc, ++ NULL, (DLGPROC)PassphraseProc, + (LPARAM) &pps); + if (!dlgret) { + ret = -2; +@@ -846,7 +846,7 @@ + AppendMenu(menu1, MF_ENABLED, IDC_SAVE, "&Save private key"); + AppendMenu(menu1, MF_SEPARATOR, 0, 0); + AppendMenu(menu1, MF_ENABLED, IDC_QUIT, "E&xit"); +- AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, "&File"); ++ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR)menu1, "&File"); + state->filemenu = menu1; + + menu1 = CreateMenu(); +@@ -855,7 +855,7 @@ + AppendMenu(menu1, MF_ENABLED, IDC_KEYSSH1, "SSH-&1 key (RSA)"); + AppendMenu(menu1, MF_ENABLED, IDC_KEYSSH2RSA, "SSH-2 &RSA key"); + AppendMenu(menu1, MF_ENABLED, IDC_KEYSSH2DSA, "SSH-2 &DSA key"); +- AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, "&Key"); ++ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR)menu1, "&Key"); + state->keymenu = menu1; + + menu1 = CreateMenu(); +@@ -865,7 +865,7 @@ + "Export &OpenSSH key"); + AppendMenu(menu1, MF_ENABLED, IDC_EXPORT_SSHCOM, + "Export &ssh.com key"); +- AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, ++ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR)menu1, + "Con&versions"); + state->cvtmenu = menu1; + +@@ -873,7 +873,7 @@ + AppendMenu(menu1, MF_ENABLED, IDC_ABOUT, "&About"); + if (has_help()) + AppendMenu(menu1, MF_ENABLED, IDC_GIVEHELP, "&Help"); +- AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, "&Help"); ++ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR)menu1, "&Help"); + + SetMenu(hwnd, menu); + } +@@ -1047,7 +1047,7 @@ + break; + case IDC_ABOUT: + EnableWindow(hwnd, 0); +- DialogBox(hinst, MAKEINTRESOURCE(213), hwnd, AboutProc); ++ DialogBox(hinst, MAKEINTRESOURCE(213), hwnd, (DLGPROC)AboutProc); + EnableWindow(hwnd, 1); + SetActiveWindow(hwnd); + return 0; +@@ -1452,7 +1452,7 @@ + } + + random_ref(); +- ret = DialogBox(hinst, MAKEINTRESOURCE(201), NULL, MainDlgProc) != IDOK; ++ ret = DialogBox(hinst, MAKEINTRESOURCE(201), NULL, (DLGPROC)MainDlgProc) != IDOK; + + cleanup_exit(ret); + return ret; /* just in case optimiser complains */ +diff -ruN putty/windows/winpgnt.c putty.new/windows/winpgnt.c +--- putty/windows/winpgnt.c 2014-11-19 13:05:38.191677400 +0100 ++++ putty.new/windows/winpgnt.c 2014-11-19 12:40:38.226534000 +0100 +@@ -218,7 +218,7 @@ + return 0; + case 101: + EnableWindow(hwnd, 0); +- DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, LicenceProc); ++ DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, (DLGPROC)LicenceProc); + EnableWindow(hwnd, 1); + SetActiveWindow(hwnd); + return 0; +@@ -539,7 +539,7 @@ + + original_pass = 1; + dlgret = DialogBoxParam(hinst, MAKEINTRESOURCE(210), +- NULL, PassphraseProc, (LPARAM) &pps); ++ NULL, (DLGPROC)PassphraseProc, (LPARAM) &pps); + passphrase_box = NULL; + if (!dlgret) { + if (comment) +@@ -1816,7 +1816,7 @@ + case IDM_VIEWKEYS: + if (!keylist) { + keylist = CreateDialog(hinst, MAKEINTRESOURCE(211), +- NULL, KeyListProc); ++ NULL, (DLGPROC)KeyListProc); + ShowWindow(keylist, SW_SHOWNORMAL); + } + /* +@@ -1841,7 +1841,7 @@ + case IDM_ABOUT: + if (!aboutbox) { + aboutbox = CreateDialog(hinst, MAKEINTRESOURCE(213), +- NULL, AboutProc); ++ NULL, (DLGPROC)AboutProc); + ShowWindow(aboutbox, SW_SHOWNORMAL); + /* + * Sometimes the window comes up minimised / hidden +diff -ruN putty/windows/winprint.c putty.new/windows/winprint.c +--- putty/windows/winprint.c 2014-11-19 12:27:33.423960900 +0100 ++++ putty.new/windows/winprint.c 2014-11-19 13:00:03.195945500 +0100 +@@ -30,7 +30,7 @@ + * we'll need for the output. Discard the return value since it + * will almost certainly be a failure due to lack of space. + */ +- EnumPrinters(param, NULL, level, (*buffer)+offset, 512, ++ EnumPrinters(param, NULL, level, (LPBYTE)((*buffer)+offset), 512, + &needed, &nprinters); + + if (needed < 512) +@@ -38,7 +38,7 @@ + + *buffer = sresize(*buffer, offset+needed, char); + +- if (EnumPrinters(param, NULL, level, (*buffer)+offset, ++ if (EnumPrinters(param, NULL, level, (LPBYTE)((*buffer)+offset), + needed, &needed, &nprinters) == 0) + return FALSE; + +@@ -139,7 +139,7 @@ + docinfo.pOutputFile = NULL; + docinfo.pDatatype = "RAW"; + +- if (!StartDocPrinter(ret->hprinter, 1, (LPSTR)&docinfo)) ++ if (!StartDocPrinter(ret->hprinter, 1, (LPBYTE)&docinfo)) + goto error; + jobstarted = 1; + +diff -ruN putty/windows/winstore.c putty.new/windows/winstore.c +--- putty/windows/winstore.c 2014-11-19 12:27:33.439585700 +0100 ++++ putty.new/windows/winstore.c 2014-11-19 12:52:08.474598400 +0100 +@@ -110,7 +110,7 @@ + void write_setting_s(void *handle, const char *key, const char *value) + { + if (handle) +- RegSetValueEx((HKEY) handle, key, 0, REG_SZ, value, ++ RegSetValueEx((HKEY) handle, key, 0, REG_SZ, (LPBYTE)value, + 1 + strlen(value)); + } + +@@ -168,7 +168,7 @@ + allocsize = size+1; /* allow for an extra NUL if needed */ + ret = snewn(allocsize, char); + if (RegQueryValueEx((HKEY) handle, key, 0, +- &type, ret, &size) != ERROR_SUCCESS || ++ &type, (LPBYTE)ret, &size) != ERROR_SUCCESS || + type != REG_SZ) { + sfree(ret); + return NULL; +@@ -372,7 +372,7 @@ + + readlen = len; + otherstr = snewn(len, char); +- ret = RegQueryValueEx(rkey, regname, NULL, &type, otherstr, &readlen); ++ ret = RegQueryValueEx(rkey, regname, NULL, &type, (LPBYTE)otherstr, &readlen); + + if (ret != ERROR_SUCCESS && ret != ERROR_MORE_DATA && + !strcmp(keytype, "rsa")) { +@@ -385,7 +385,7 @@ + char *oldstyle = snewn(len + 10, char); /* safety margin */ + readlen = len; + ret = RegQueryValueEx(rkey, justhost, NULL, &type, +- oldstyle, &readlen); ++ (LPBYTE)oldstyle, &readlen); + + if (ret == ERROR_SUCCESS && type == REG_SZ) { + /* +@@ -431,7 +431,7 @@ + * wrong, and hyper-cautiously do nothing. + */ + if (!strcmp(otherstr, key)) +- RegSetValueEx(rkey, regname, 0, REG_SZ, otherstr, ++ RegSetValueEx(rkey, regname, 0, REG_SZ, (LPBYTE)otherstr, + strlen(otherstr) + 1); + } + +@@ -466,7 +466,7 @@ + + if (RegCreateKey(HKEY_CURRENT_USER, PUTTY_REG_POS "\\SshHostKeys", + &rkey) == ERROR_SUCCESS) { +- RegSetValueEx(rkey, regname, 0, REG_SZ, key, strlen(key) + 1); ++ RegSetValueEx(rkey, regname, 0, REG_SZ, (LPBYTE)key, strlen(key) + 1); + RegCloseKey(rkey); + } /* else key does not exist in registry */ + +@@ -526,7 +526,7 @@ + if (RegOpenKey(HKEY_CURRENT_USER, PUTTY_REG_POS, &rkey) == + ERROR_SUCCESS) { + int ret = RegQueryValueEx(rkey, "RandSeedFile", +- 0, &type, seedpath, &size); ++ 0, &type, (LPBYTE)seedpath, (LPDWORD)&size); + if (ret != ERROR_SUCCESS || type != REG_SZ) + seedpath[0] = '\0'; + RegCloseKey(rkey); +@@ -662,7 +662,7 @@ + value_length = 200; + old_value = snewn(value_length, char); + ret = RegQueryValueEx(pjumplist_key, reg_jumplist_value, NULL, &type, +- old_value, &value_length); ++ (LPBYTE)old_value, (LPDWORD)&value_length); + /* When the passed buffer is too small, ERROR_MORE_DATA is + * returned and the required size is returned in the length + * argument. */ +@@ -670,7 +670,7 @@ + sfree(old_value); + old_value = snewn(value_length, char); + ret = RegQueryValueEx(pjumplist_key, reg_jumplist_value, NULL, &type, +- old_value, &value_length); ++ (LPBYTE)old_value, (LPDWORD)&value_length); + } + + if (ret == ERROR_FILE_NOT_FOUND) { +@@ -744,7 +744,7 @@ + + /* Save the new list to the registry. */ + ret = RegSetValueEx(pjumplist_key, reg_jumplist_value, 0, REG_MULTI_SZ, +- new_value, piterator_new - new_value); ++ (LPBYTE)new_value, piterator_new - new_value); + + sfree(old_value); + old_value = new_value; diff --git a/mingw-w64-putty/0003-linedraw.patch b/mingw-w64-putty/0003-linedraw.patch new file mode 100644 index 0000000000..f8fd65d50f --- /dev/null +++ b/mingw-w64-putty/0003-linedraw.patch @@ -0,0 +1,67 @@ +Binärdateien putty/.svn/wc.db und putty.new/.svn/wc.db sind verschieden. +diff -ruN putty/terminal.c putty.new/terminal.c +--- putty/terminal.c 2014-11-19 12:27:29.002043500 +0100 ++++ putty.new/terminal.c 2014-11-19 14:32:38.356466800 +0100 +@@ -2808,10 +2808,58 @@ + switch (term->utf_state) { + case 0: + if (c < 0x80) { +- /* UTF-8 must be stateless so we ignore iso2022. */ +- if (term->ucsdata->unitab_ctrl[c] != 0xFF) +- c = term->ucsdata->unitab_ctrl[c]; +- else c = ((unsigned char)c) | CSET_ASCII; ++ /* See http://compgroups.net/comp.terminals/-putty-hack-for-wish-utf8-plus-vt100/2625536 ++ There is a controversial discussion whether or not supporting ++ iso2022 in UTF-8 mode is a good idea, but the experiences with ++ this patch over years now shows it works quite well and it ++ simply looks better. To please everyone, the support is made ++ optional (only used if environment variable PUTTY_ISO2022 is ++ found) ++ */ ++ if (!getenv("PUTTY_ISO2022")) { ++ /* UTF-8 must be stateless so we ignore iso2022. */ ++ if (term->ucsdata->unitab_ctrl[c] != 0xFF) ++ c = term->ucsdata->unitab_ctrl[c]; ++ else c = ((unsigned char)c) | CSET_ASCII; ++ } else { ++ if(term->sco_acs && ++ (c!='\033' && c!='\012' && c!='\015' && c!='\b')) ++ { ++ if (term->sco_acs == 2) c |= 0x80; ++ c |= CSET_SCOACS; ++ } else { ++ switch (term->cset_attr[term->cset]) { ++ /* ++ * Linedraw characters are different from 'ESC ( B' ++ * only for a small range. For ones outside that ++ * range, make sure we use the same font as well as ++ * the same encoding. ++ */ ++ case CSET_LINEDRW: ++ if (term->ucsdata->unitab_ctrl[c] != 0xFF) ++ c = term->ucsdata->unitab_ctrl[c]; ++ else ++ c = ((unsigned char) c) | CSET_LINEDRW; ++ break; ++ ++ case CSET_GBCHR: ++ /* If UK-ASCII, make the '#' a LineDraw Pound */ ++ if (c == '#') { ++ c = '}' | CSET_LINEDRW; ++ break; ++ } ++ /*FALLTHROUGH*/ case CSET_ASCII: ++ if (term->ucsdata->unitab_ctrl[c] != 0xFF) ++ c = term->ucsdata->unitab_ctrl[c]; ++ else ++ c = ((unsigned char) c) | CSET_ASCII; ++ break; ++ case CSET_SCOACS: ++ if (c>=' ') c = ((unsigned char)c) | CSET_SCOACS; ++ break; ++ } ++ } ++ } + break; + } else if ((c & 0xe0) == 0xc0) { + term->utf_size = term->utf_state = 1; diff --git a/mingw-w64-putty/PKGBUILD b/mingw-w64-putty/PKGBUILD index cdc4afac62..564c9190ed 100644 --- a/mingw-w64-putty/PKGBUILD +++ b/mingw-w64-putty/PKGBUILD @@ -7,7 +7,7 @@ _realname=putty pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _base_ver=0.63 -pkgver=0.63.r10285 +pkgver=0.63.r10297 pkgrel=1 pkgdesc="A free telnet/SSH client (mingw-w64)" arch=('any') @@ -18,9 +18,13 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") optdepends=("${MINGW_PACKAGE_PREFIX}-putty-ssh: ssh wrapper for plink") source=("$_realname::svn+svn://svn.tartarus.org/sgt/putty" - '0001-fixes.patch') + '0001-fixes.patch' + '0002-casts.patch' + '0003-linedraw.patch') md5sums=('SKIP' - '5b5065e5bd2b8421196c068d428bfb57') + '5b5065e5bd2b8421196c068d428bfb57' + '1e4f574c0a0c6dfc8ec676f93fa109e7' + '2f7c232dd89a30cbe6e8b7dec329cda4') pkgver() { cd "${srcdir}"/${_realname} @@ -31,6 +35,8 @@ pkgver() { prepare() { cd "${srcdir}"/${_realname} patch -p0 -i "${srcdir}"/0001-fixes.patch + patch -p1 -i "${srcdir}"/0002-casts.patch + patch -p1 -i "${srcdir}"/0003-linedraw.patch } build() { From a8e3b446ff97907aa434ba70a19a2bd4b2c6bddf Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 19 Nov 2014 22:51:59 +0000 Subject: [PATCH 0009/2060] ki18n: Don't build ktranscript as a module if not shared --- mingw-w64-ki18n-qt5/PKGBUILD | 14 ++++++++----- ...ript-plugin-statically-if-not-shared.patch | 21 +++++++++++++++++++ 2 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-ki18n-qt5/build-ktranscript-plugin-statically-if-not-shared.patch diff --git a/mingw-w64-ki18n-qt5/PKGBUILD b/mingw-w64-ki18n-qt5/PKGBUILD index dd8fc510c2..e913f2e7ce 100644 --- a/mingw-w64-ki18n-qt5/PKGBUILD +++ b/mingw-w64-ki18n-qt5/PKGBUILD @@ -14,15 +14,19 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") -md5sums=('d01815a8c04baa90b81e3350805b4c5d') +source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz" + "build-ktranscript-plugin-statically-if-not-shared.patch") +md5sums=('d01815a8c04baa90b81e3350805b4c5d' + 'ee7e57cc7ff1be80a28d5316f9665555') prepare() { - mkdir -p build-${CARCH}${_variant} + cd "${srcdir}"/${_basename}-${pkgver} + patch -p1 < "${srcdir}"/build-ktranscript-plugin-statically-if-not-shared.patch } build() { local -a extra_config + mkdir -p build-${CARCH}${_variant} cd build-${CARCH}${_variant} if [ "${_variant}" = "-static" ]; then extra_config+=( -DBUILD_SHARED_LIBS=NO ) @@ -41,8 +45,8 @@ build() { -DBUILD_TESTING=OFF \ -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ - -G'MSYS Makefiles' --debug-output - make VERBOSE=1 + -G'MSYS Makefiles' + make } package() { diff --git a/mingw-w64-ki18n-qt5/build-ktranscript-plugin-statically-if-not-shared.patch b/mingw-w64-ki18n-qt5/build-ktranscript-plugin-statically-if-not-shared.patch new file mode 100644 index 0000000000..ebe70740b8 --- /dev/null +++ b/mingw-w64-ki18n-qt5/build-ktranscript-plugin-statically-if-not-shared.patch @@ -0,0 +1,21 @@ +--- ki18n-5.3.0/src/CMakeLists.txt.orig 2014-10-04 18:05:12.000000000 +0100 ++++ ki18n-5.3.0/src/CMakeLists.txt 2014-11-19 22:46:33.512553900 +0000 +@@ -42,11 +42,17 @@ + + ### ktranscript plugin + ++if(BUILD_SHARED_LIBS) ++ set(KTRANSCRIPT_LIBTYPE, MODULE) ++else() ++ set(KTRANSCRIPT_LIBTYPE, STATIC) ++endif() ++ + set(ktranscript_LIB_SRCS + ktranscript.cpp + common_helpers.cpp + ) +-add_library(ktranscript MODULE ${ktranscript_LIB_SRCS}) ++add_library(ktranscript ${KTRANSCRIPT_LIBTYPE} ${ktranscript_LIB_SRCS}) + generate_export_header(ktranscript BASE_NAME KTranscript) + target_link_libraries(ktranscript PRIVATE Qt5::Script Qt5::Core) + From 62057bbd4ce2cd29899dae3f8c54ac720358b5e4 Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 20 Nov 2014 19:26:55 +0000 Subject: [PATCH 0010/2060] cocos2d-console: now detects plugins and runs correctly --- mingw-w64-cocos2dx-console-git/PKGBUILD | 30 ++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/mingw-w64-cocos2dx-console-git/PKGBUILD b/mingw-w64-cocos2dx-console-git/PKGBUILD index b2d0e24f47..71a0f43241 100644 --- a/mingw-w64-cocos2dx-console-git/PKGBUILD +++ b/mingw-w64-cocos2dx-console-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=cocos2d-x-console pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r452.8e158e1 +pkgver=r470.037a13f pkgrel=1 pkgdesc="cocos2d command line tool (mingw-w64)" arch=('any') @@ -14,7 +14,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-cocos2d-x" "${MINGW_PACKAGE_PREFIX}-cmake") options=('staticlibs' 'strip') -source=("${_realname}"::"git+git://github.com/martell/cocos2d-console.git#branch=msys2") +source=(#"${_realname}"::"git+git://github.com/martell/cocos2d-console.git#branch=msys2") + "${_realname}"::"git+git://github.com/cocos2d/cocos2d-console.git") md5sums=('SKIP') pkgver() { @@ -23,12 +24,31 @@ pkgver() { } prepare() { + cd "$srcdir/$_realname" + + #patch the location of cococs2d.ini + #sed -i "s|os.path.join(cocos2d_path, \"cocos2d.ini\")|\"${MINGW_PREFIX}/share/cocos2d-x/console/cocos2d.ini\"|g" $srcdir/$_realname/bin/cocos.py + sed -i "s|~/.cocos2d-js/cocos2d.ini|${MINGW_PREFIX}/share/cocos2d-x/console/cocos2d.ini|g" $srcdir/$_realname/bin/cocos.py + + #we use python2 not python ;) + sed -i "s|exec python|exec /usr/bin/python2|g" $srcdir/$_realname/bin/cocos + sed -i "s|#!/usr/bin/python|#!/usr/bin/python2|g" $srcdir/$_realname/bin/cocos.py + + #maybe i should just create a new cocos script + #fixup cocos + sed -i "s|exec python|exec /usr/bin/python2|g" $srcdir/$_realname/bin/cocos + sed -i "s|\$COCOS_CONSOLE_BIN_DIRECTORY/cocos.py|${MINGW_PREFIX}/bin/cocos.py|g" $srcdir/$_realname/bin/cocos } -#build() { -# cd "$srcdir/$_realname/cocos" -#} +build() { + cd "$srcdir/$_realname" + + #set the location of the templates + sed -i "s|templates=|templates=${MINGW_PREFIX}/share/cocos2d-x/templates|g" $srcdir/$_realname/bin/cocos2d.ini + sed -i "s|plugins=../plugins|plugins=${MINGW_PREFIX}/share/cocos2d-x/console/plugins|g" $srcdir/$_realname/bin/cocos2d.ini + +} package() { mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" From a4e40eb08bc2402977a494175a477288a48e702b Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 20 Nov 2014 21:33:56 +0000 Subject: [PATCH 0011/2060] cocos2d-x: fixes to update to latest git --- mingw-w64-cocos2dx-git/PKGBUILD | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/mingw-w64-cocos2dx-git/PKGBUILD b/mingw-w64-cocos2dx-git/PKGBUILD index 93930dc3aa..6a327396e8 100644 --- a/mingw-w64-cocos2dx-git/PKGBUILD +++ b/mingw-w64-cocos2dx-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=cocos2d-x pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r25276.596537e +pkgver=r25410.7817504 pkgrel=1 pkgdesc="Open source game framework written in C++ (mingw-w64)." arch=('any') @@ -22,6 +22,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-glfw" "${MINGW_PACKAGE_PREFIX}-tinyxml2" "${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-protobuf" + "${MINGW_PACKAGE_PREFIX}-mpg123" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-libwebsockets" @@ -48,16 +49,16 @@ prepare() { cp -r $srcdir/cocos2d-x-3rd-party-libs-bin-3-deps-20/. $srcdir/$_realname/external #we need to change glfw to mingw-glfw3 - sed -i "s/glfw3.h/GLFW\/glfw3.h/g" $srcdir/$_realname/cocos/platform/desktop/CCGLViewImpl-desktop.h - sed -i "s/glfw3native.h/GLFW\/glfw3native.h/g" $srcdir/$_realname/cocos/platform/desktop/CCGLViewImpl-desktop.h + #sed -i "s/glfw3.h/GLFW\/glfw3.h/g" $srcdir/$_realname/cocos/platform/desktop/CCGLViewImpl-desktop.h + #sed -i "s/glfw3native.h/GLFW\/glfw3native.h/g" $srcdir/$_realname/cocos/platform/desktop/CCGLViewImpl-desktop.h #sed -i "s/ft2build.h/freetype2\/ft2build.h/g" $srcdir/$_realname/cocos/2d/CCFontFreeType.h - sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/cocos/platform/CCFileUtils.cpp - sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/cocos/base/ZipUtils.cpp - sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/extensions/assets-manager/AssetsManager.cpp - sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/extensions/assets-manager/AssetsManagerEx.cpp + #sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/cocos/platform/CCFileUtils.cpp + #sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/cocos/base/ZipUtils.cpp + #sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/extensions/assets-manager/AssetsManager.cpp + #sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/extensions/assets-manager/AssetsManagerEx.cpp - sed -i "s/tinyxml2\/tinyxml2.h/tinyxml2.h/g" $srcdir/$_realname/cocos/editor-support/cocostudio/CCSGUIReader.cpp + #sed -i "s/tinyxml2\/tinyxml2.h/tinyxml2.h/g" $srcdir/$_realname/cocos/editor-support/cocostudio/CCSGUIReader.cpp #sed -i "s/decode.h/webp\/decode.h/g" $srcdir/$_realname/cocos/platform/CCImage.cpp #force depend on mingw-tinyxml2 From 77d975215be6f4df601254cf2941f18e9d5ad62f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 20 Nov 2014 22:13:44 +0000 Subject: [PATCH 0012/2060] KDEF5: kidletime (WIP) --- mingw-w64-kidletime-qt5/PKGBUILD | 106 +++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 mingw-w64-kidletime-qt5/PKGBUILD diff --git a/mingw-w64-kidletime-qt5/PKGBUILD b/mingw-w64-kidletime-qt5/PKGBUILD new file mode 100644 index 0000000000..7a0a367318 --- /dev/null +++ b/mingw-w64-kidletime-qt5/PKGBUILD @@ -0,0 +1,106 @@ +# Maintainer (MSYS2): Ray Donnelly + +_variant=-static +#_variant=-shared +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "kidletime" +pkgver=5.3.0 +pkgrel=1 +arch=('any') +url=('https://projects.kde.org/projects/frameworks/${_basename}') +pkgdesc="Reporting of idle time of user and system (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") +md5sums=('f6bd02d851313f4b136b80c105703003') + +prepare() { + cd "${srcdir}"/${_basename}-${pkgver} +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' --debug-output --trace + make VERBOSE=1 +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} + +# Please leave the following information here until this package builds and works. +return 0 + +# Need to modify Qt5GuiConfigExtras.cmake, adding at the end, something like: +get_target_property(_libType Qt5::Gui TYPE) +if(_libType STREQUAL "STATIC_LIBRARY" AND CMAKE_HOST_WIN32) + set(_isExe $,EXECUTABLE>) +# set(_isWin32 $>) + set(_isWin32 1) + # INTERFACE_LINK_LIBRARIES is used to pass a linker flag (-static) + # and a library (ws2_32) + set_target_properties(Qt5::Gui PROPERTIES "INTERFACE_LINK_LIBRARIES" "$<$:opengl32;${_qt5Gui_install_prefix}/lib/libqtharfbuzzng.a;${_qt5Gui_install_prefix}/share/qt5/plugins/platforms/libqwindows.a>") + unset(_isExe) + unset(_isWin32) +endif() + +# Despite linking to libqwindows.a, still get the following error: + +# Fails to run the test executable: + +--------------------------- +kidletime_example +--------------------------- +This application failed to start because it could not find or load the Qt platform plugin "windows". + +Reinstalling the application may fix this problem. +--------------------------- +OK +--------------------------- + +# kidletime_example, linked like this doesn't work: +PATH=/mingw64/bin:$PATH g++.exe -static -march=x86-64 -mtune=generic -O2 -pipe -std=c++0x -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -O3 -DNDEBUG -pipe -mwindows \ + "CMakeFiles/kidletime_example.dir/main.cpp.obj" "CMakeFiles/kidletime_example.dir/KIdleTest.cpp.obj" "CMakeFiles/kidletime_example.dir/kidletime_example_automoc.cpp.obj" -o ../bin/kidletime_example.exe \ + /C/msys64/mingw64/qt5-static/share/qt5/plugins/platforms/libqwindows.a /C/msys64/mingw64/qt5-static/lib/libQt5PlatformSupport.a \ + ../lib/libKF5IdleTime.a /C/msys64/mingw64/qt5-static/lib/libQt5Widgets.a /C/msys64/mingw64/qt5-static/lib/libQt5Gui.a \ + -lopengl32 \ + /C/msys64/mingw64/qt5-static/lib/libqtharfbuzzng.a /C/msys64/mingw64/qt5-static/lib/libQt5Core.a \ + -lws2_32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 + +# Octopi, linked like this runs fine: +g++ -Wl,-s -static -Wl,-subsystem,windows -mthreads -o bin/octopi.exe object_script.octopi.Release \ +-lmingw32 -LC:/msys64/mingw32/qt5-static/lib -lqtmain -lwtsapi32 -lQt5QuickWidgets -lQt5DBus -lnetapi32 -lQt5Xml \ +-LC:/msys64/mingw32/qt5-static/share/qt5/qml/QtQuick.2 -lqtquick2plugin -LC:/msys64/mingw32/qt5-static/share/qt5/qml/QtQuick/Controls \ +-lqtquickcontrolsplugin -LC:/msys64/mingw32/qt5-static/share/qt5/qml/QtQuick/Window.2 -lwindowplugin \ +-LC:/msys64/mingw32/qt5-static/share/qt5/qml/QtQuick/Layouts -lqquicklayoutsplugin \ +-LC:/msys64/mingw32/qt5-static/share/qt5/plugins/accessible -lqtaccessiblequick -lqtaccessiblewidgets \ +-lQt5Widgets -LC:/msys64/mingw32/qt5-static/share/qt5/plugins/qmltooling -lqmldbg_qtquick2 \ +-lQt5Quick -lqmldbg_tcp -lQt5Qml -LC:/msys64/mingw32/qt5-static/share/qt5/plugins/bearer -lqgenericbearer -lqnativewifibearer \ +-lQt5Network -ldnsapi -lssl -lcrypto -lcrypt32 \ +-LC:/msys64/mingw32/qt5-static/share/qt5/plugins/platforms -lqwindows \ +-lwinspool -lshlwapi -lQt5PlatformSupport \ +-LC:/msys64/mingw32/qt5-static/share/qt5/plugins/imageformats -lqdds -lqicns -lqico -lqjp2 -ljasper -lqmng -lqtga -lqtiff -lqwbmp -lqwebp -lwebp \ +-lQt5Gui -lcomdlg32 -loleaut32 -limm32 -lwinmm -lglu32 -lopengl32 -lgdi32 -lqtharfbuzzng -lQt5Core -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 From 9434d15a5163075a30d500fa29ce572e686a8763 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 21 Nov 2014 09:34:36 +0300 Subject: [PATCH 0013/2060] btyacc: New package. --- mingw-w64-btyacc/PKGBUILD | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 mingw-w64-btyacc/PKGBUILD diff --git a/mingw-w64-btyacc/PKGBUILD b/mingw-w64-btyacc/PKGBUILD new file mode 100644 index 0000000000..e5ed15e3a6 --- /dev/null +++ b/mingw-w64-btyacc/PKGBUILD @@ -0,0 +1,28 @@ +# Maintainer: Alexey Pavlov + +_realname=btyacc +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.0 +pkgrel=1 +pkgdesc="BackTracking Yacc (mingw-w64)" +arch=('any') +url="http://www.siber.com/btyacc/" +license=("custom") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +options=('strip' 'staticlibs') +source=(http://www.siber.com/btyacc/${_realname}-${pkgver//./-}.tar.gz) +sha1sums=('4a70f78d9695fa1101c49ab1cdbfda5ab740c027') + +build() { + cd ${srcdir} + make all +} + +package() { + cd "${srcdir}" + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,share} + cp btyacc.exe ${pkgdir}${MINGW_PREFIX}/bin/ + + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname} + cp README{,.BYACC} ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/ +} From a66a13cd8f0a1ba0da0d01094fe4a211cf43dbc8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 21 Nov 2014 09:35:01 +0300 Subject: [PATCH 0014/2060] python-lxml: Update to 3.4.1 --- mingw-w64-python-lxml/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-lxml/PKGBUILD b/mingw-w64-python-lxml/PKGBUILD index 00222040be..886cd2f2c5 100644 --- a/mingw-w64-python-lxml/PKGBUILD +++ b/mingw-w64-python-lxml/PKGBUILD @@ -4,7 +4,7 @@ _realname=lxml pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}" "${MINGW_PACKAGE_PREFIX}-python-${_realname}-docs") -pkgver=3.4.0 +pkgver=3.4.1 pkgrel=1 arch=('any') license=('BSD' 'custom') @@ -18,7 +18,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" source=(http://pypi.python.org/packages/source/l/lxml/${_realname}-${pkgver}.tar.gz{,.asc} mingw-python-fix.patch use-distutils-get_platform.patch) -md5sums=('bc90cc4e4ee04e1f8290ae0f70e34eea' +md5sums=('b7696a3f33d5610b215a343216ab5624' 'SKIP' 'e07163fc1e02cab5fa6009af35d5f823' '5268f79eb2a69b05da73d357ec8184b1') From 0becd04037883811c6962abb4a8445ef2590636c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 21 Nov 2014 09:42:13 +0300 Subject: [PATCH 0015/2060] sqlite3: Update to 3.8.7.2 --- mingw-w64-sqlite3/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index 96c2d0637c..f7de9b5a3a 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -2,8 +2,8 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3080700 -pkgver=3.8.7.0 +_amalgamationver=3080702 +pkgver=3.8.7.2 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ url="http://www.sqlite.org" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-readline") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tcl") source=("http://www.sqlite.org/2014/sqlite-autoconf-$_amalgamationver.tar.gz") -sha1sums=('8b773b006db46f3ffcbabe065e927823d13bf5c0') +sha1sums=('175283383d010709f76fdd13cb0c8c3c329a1c67') options=('!strip' 'staticlibs') build() { From 6f01ab24ab1049afd92bbeca519f3eddb6e4fb5a Mon Sep 17 00:00:00 2001 From: Juergen Pfeifer Date: Fri, 21 Nov 2014 12:07:14 +0100 Subject: [PATCH 0016/2060] putty: Add puttytel to list of installed programs (the telnet replacement provided by putty) --- mingw-w64-putty/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-putty/PKGBUILD b/mingw-w64-putty/PKGBUILD index 564c9190ed..c34856ad0f 100644 --- a/mingw-w64-putty/PKGBUILD +++ b/mingw-w64-putty/PKGBUILD @@ -8,7 +8,7 @@ _realname=putty pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _base_ver=0.63 pkgver=0.63.r10297 -pkgrel=1 +pkgrel=2 pkgdesc="A free telnet/SSH client (mingw-w64)" arch=('any') url="http://www.chiark.greenend.org.uk/~sgtatham/putty/" @@ -53,7 +53,7 @@ build() { package() { cd "${srcdir}"/${_realname}/windows install -D -m644 ../LICENCE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE - for f in putty.exe puttygen.exe pageant.exe plink.exe pscp.exe psftp.exe + for f in putty.exe puttygen.exe pageant.exe plink.exe pscp.exe psftp.exe puttytel.exe do install -D -m755 $f "${pkgdir}"/${MINGW_PREFIX}/bin/$f done From a7b73b8ec10fb043d22fdd6198d329229ced4c84 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 22 Nov 2014 22:21:01 +0000 Subject: [PATCH 0017/2060] vlc-git: Use git -am to apply patches --- ...declaration-of-MFAudioFormat_Dolby_A.patch | 26 +++++++++ mingw-w64-vlc-git/0001-fix-redeclare.patch | 12 ----- ...-s-_NumOfElements-is-an-unsigned-int.patch | 32 +++++++++++ mingw-w64-vlc-git/0002-msvcrt-lfind.patch | 18 ------- ...thread-time-declaration-n-nI-don-t-t.patch | 46 ++++++++++++++++ ...pass-static-to-pkg-config-if-SYS-min.patch | 26 +++++++++ .../0004-skip-pthread-time-declares.patch | 36 ------------- ... => 0005-MinGW-w64-fix-time-include.patch} | 14 ++++- mingw-w64-vlc-git/0005-disablestatic.patch | 11 ---- ...er-the-static-libraries-when-creati.patch} | 53 ++++++++++--------- mingw-w64-vlc-git/PKGBUILD | 46 +++++++--------- 11 files changed, 190 insertions(+), 130 deletions(-) create mode 100644 mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch delete mode 100644 mingw-w64-vlc-git/0001-fix-redeclare.patch create mode 100644 mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch delete mode 100644 mingw-w64-vlc-git/0002-msvcrt-lfind.patch create mode 100644 mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch create mode 100644 mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch delete mode 100644 mingw-w64-vlc-git/0004-skip-pthread-time-declares.patch rename mingw-w64-vlc-git/{0006-fix-time-mingw-include.patch => 0005-MinGW-w64-fix-time-include.patch} (53%) delete mode 100644 mingw-w64-vlc-git/0005-disablestatic.patch rename mingw-w64-vlc-git/{0011-prefer-static-libs.patch => 0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch} (53%) diff --git a/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch b/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch new file mode 100644 index 0000000000..ef0ee12776 --- /dev/null +++ b/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch @@ -0,0 +1,26 @@ +From c3fd514176a8c76e3f2812a919d0e55c87211952 Mon Sep 17 00:00:00 2001 +From: martell +Date: Sat, 22 Nov 2014 22:15:32 +0000 +Subject: [PATCH 1/6] MinGW-w64: fix redeclaration of MFAudioFormat_Dolby_AC3 + +--- + modules/codec/mft.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/modules/codec/mft.c b/modules/codec/mft.c +index 67a3dd6..eb49a96 100644 +--- a/modules/codec/mft.c ++++ b/modules/codec/mft.c +@@ -172,7 +172,9 @@ static const pair_format_guid video_format_table[] = + { 0, NULL } + }; + ++#ifndef __MINGW64_VERSION_MAJOR + DEFINE_GUID(MFAudioFormat_Dolby_AC3, 0xe06d802c, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); ++#endif + /* + * We cannot use the FOURCC code for audio either since the + * WAVE_FORMAT value is used to create the GUID. +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/0001-fix-redeclare.patch b/mingw-w64-vlc-git/0001-fix-redeclare.patch deleted file mode 100644 index 7516b0af7a..0000000000 --- a/mingw-w64-vlc-git/0001-fix-redeclare.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- vlc/modules/codec/mft.c.orig 2014-09-25 16:26:05.454200000 +0500 -+++ vlc/modules/codec/mft.c 2014-09-25 16:43:53.934800000 +0500 -@@ -172,7 +172,9 @@ - { 0, NULL } - }; - -+#ifndef __MINGW64_VERSION_MAJOR - DEFINE_GUID(MFAudioFormat_Dolby_AC3, 0xe06d802c, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); -+#endif - /* - * We cannot use the FOURCC code for audio either since the - * WAVE_FORMAT value is used to create the GUID. diff --git a/mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch b/mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch new file mode 100644 index 0000000000..2a43b32c5b --- /dev/null +++ b/mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch @@ -0,0 +1,32 @@ +From 0e929b7c70c3761e8c7bd66ad59d523e05ae8455 Mon Sep 17 00:00:00 2001 +From: martell +Date: Sat, 22 Nov 2014 22:15:33 +0000 +Subject: [PATCH 2/6] MinGW-w64: lfind's _NumOfElements is an unsigned int + +--- + modules/access/dtv/access.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/modules/access/dtv/access.c b/modules/access/dtv/access.c +index 95b1dd7..433e65d 100644 +--- a/modules/access/dtv/access.c ++++ b/modules/access/dtv/access.c +@@ -727,8 +727,13 @@ static const char *var_InheritModulation (vlc_object_t *obj, const char *var) + char *mod = var_InheritString (obj, var); + if (mod == NULL) + return ""; +- +- size_t n = sizeof (modulation_vlc) / sizeof (modulation_vlc[0]); ++ ++#ifdef __MINGW32__ ++ unsigned int n; ++#else ++ size_t_n; ++#endif ++ n = sizeof (modulation_vlc) / sizeof (modulation_vlc[0]); + const char *const *p = lfind (mod, modulation_vlc, &n, sizeof (mod), modcmp); + if (p != NULL) + { +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/0002-msvcrt-lfind.patch b/mingw-w64-vlc-git/0002-msvcrt-lfind.patch deleted file mode 100644 index 90e1bbb89b..0000000000 --- a/mingw-w64-vlc-git/0002-msvcrt-lfind.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- vlc/modules/access/dtv/access.c 2014-10-15 18:15:34.494531200 +0100 -+++ vlc/modules/access/dtv/access.c 2014-10-15 18:24:55.339493900 +0100 -@@ -727,8 +727,13 @@ - char *mod = var_InheritString (obj, var); - if (mod == NULL) - return ""; -- -- size_t n = sizeof (modulation_vlc) / sizeof (modulation_vlc[0]); -+ -+#ifdef __MINGW32__ -+ unsigned int n; -+#else -+ size_t_n; -+#endif -+ n = sizeof (modulation_vlc) / sizeof (modulation_vlc[0]); - const char *const *p = lfind (mod, modulation_vlc, &n, sizeof (mod), modcmp); - if (p != NULL) - { diff --git a/mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch b/mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch new file mode 100644 index 0000000000..24686fdcac --- /dev/null +++ b/mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch @@ -0,0 +1,46 @@ +From 68207d5623db9cbe52d2f201b77968af1879328d Mon Sep 17 00:00:00 2001 +From: martell +Date: Sat, 22 Nov 2014 22:15:34 +0000 +Subject: [PATCH 3/6] MinGW-w64: skip pthread time declaration\n\nI don't think + this does what it says anymore.\nInstead it seems to be all about the Qt4 + integration,\n\n1. linking qt4 plugin to -lcomctl32 -luuid\n2. importing + QWindowsIntegrationPlugin, AccessibleFactory\n iff QT_STATICPLUGIN + +--- + modules/gui/qt4/Makefile.am | 2 +- + modules/gui/qt4/qt4.cpp | 6 ++++-- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/modules/gui/qt4/Makefile.am b/modules/gui/qt4/Makefile.am +index c608999..1a564cf 100644 +--- a/modules/gui/qt4/Makefile.am ++++ b/modules/gui/qt4/Makefile.am +@@ -20,7 +20,7 @@ libqt4_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(guidir)' + if HAVE_OS2 + else + if HAVE_WIN32 +-libqt4_plugin_la_LIBADD += -lole32 ++libqt4_plugin_la_LIBADD += -lole32 -lcomctl32 -luuid + else + libqt4_plugin_la_LIBADD += $(X_LIBS) $(X_PRE_LIB) -lX11 + endif +diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp +index 1e25371..b6aef43 100644 +--- a/modules/gui/qt4/qt4.cpp ++++ b/modules/gui/qt4/qt4.cpp +@@ -52,8 +52,10 @@ + #ifdef _WIN32 /* For static builds */ + #include + #if HAS_QT5 +- Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) +- Q_IMPORT_PLUGIN(AccessibleFactory) ++ #ifdef QT_STATICPLUGIN ++ Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) ++ Q_IMPORT_PLUGIN(AccessibleFactory) ++ #endif + #else + Q_IMPORT_PLUGIN(qjpeg) + Q_IMPORT_PLUGIN(qtaccessiblewidgets) +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch b/mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch new file mode 100644 index 0000000000..4ca03ae63a --- /dev/null +++ b/mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch @@ -0,0 +1,26 @@ +From f52109122367445e41e2b87bbe66b1b45fdd17f4 Mon Sep 17 00:00:00 2001 +From: martell +Date: Sat, 22 Nov 2014 22:15:35 +0000 +Subject: [PATCH 4/6] MinGW-w64: don't pass --static to pkg-config if SYS = + mingw32 + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index b7a4c74..eb35184 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -801,7 +801,7 @@ PKG_PROG_PKG_CONFIG() + + dnl On some OS we need static linking + AS_IF([test -n "${PKG_CONFIG}" ],[ +- AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[ ++ AS_IF([test "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[ + PKG_CONFIG="${PKG_CONFIG} --static" + ]) + ]) +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/0004-skip-pthread-time-declares.patch b/mingw-w64-vlc-git/0004-skip-pthread-time-declares.patch deleted file mode 100644 index 4ea44a5180..0000000000 --- a/mingw-w64-vlc-git/0004-skip-pthread-time-declares.patch +++ /dev/null @@ -1,36 +0,0 @@ ---- vlc/modules/gui/qt4/Makefile.am 2014-10-16 20:03:35.772278000 +0100 -+++ vlc/modules/gui/qt4/Makefile.am 2014-10-16 20:04:00.121609700 +0100 -@@ -20,7 +20,7 @@ libqt4_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(guidir)' - if HAVE_OS2 - else - if HAVE_WIN32 --libqt4_plugin_la_LIBADD += -lole32 -+libqt4_plugin_la_LIBADD += -lole32 -lcomctl32 -luuid - else - libqt4_plugin_la_LIBADD += $(X_LIBS) $(X_PRE_LIB) -lX11 - endif ---- vlc/modules/gui/qt4/qt4.cpp 2014-10-17 03:50:18.069299400 +0100 -+++ vlc/modules/gui/qt4/qt4.cpp 2014-10-17 03:48:50.365549900 +0100 -@@ -52,8 +52,10 @@ - #ifdef _WIN32 /* For static builds */ - #include - #if HAS_QT5 -- Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) -- Q_IMPORT_PLUGIN(AccessibleFactory) -+ #ifdef QT_STATICPLUGIN -+ Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) -+ Q_IMPORT_PLUGIN(AccessibleFactory) -+ #endif - #else - Q_IMPORT_PLUGIN(qjpeg) - Q_IMPORT_PLUGIN(qtaccessiblewidgets) -#@@ -13,7 +13,7 @@ -# # - Add it to DEPS_res -# -# SUFFIXES += .ui .h .hpp .moc.cpp -#- -#+QT_CFLAGS += -DNO_TIME_PLZ -DQT_STATICPLUGIN -# libqt4_plugin_la_CXXFLAGS = $(AM_CXXFLAGS) $(QT_CFLAGS) $(CXXFLAGS_qt4) -# libqt4_plugin_la_LIBADD = $(QT_LIBS) $(LIBS_qt4) -# libqt4_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(guidir)' -# diff --git a/mingw-w64-vlc-git/0006-fix-time-mingw-include.patch b/mingw-w64-vlc-git/0005-MinGW-w64-fix-time-include.patch similarity index 53% rename from mingw-w64-vlc-git/0006-fix-time-mingw-include.patch rename to mingw-w64-vlc-git/0005-MinGW-w64-fix-time-include.patch index 0726af889e..bd8dfa30fb 100644 --- a/mingw-w64-vlc-git/0006-fix-time-mingw-include.patch +++ b/mingw-w64-vlc-git/0005-MinGW-w64-fix-time-include.patch @@ -1,5 +1,14 @@ +From 579310731d38bdfbae0b0d3090f99aaa03f76877 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 22 Nov 2014 22:15:36 +0000 +Subject: [PATCH 5/6] MinGW-w64: fix time include + +--- + include/vlc_fixups.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h -index c3d5fac..390cbcd 100644 +index cee1254..e0f7c87 100644 --- a/include/vlc_fixups.h +++ b/include/vlc_fixups.h @@ -26,7 +26,7 @@ @@ -11,3 +20,6 @@ index c3d5fac..390cbcd 100644 # include /* time_t */ #endif +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/0005-disablestatic.patch b/mingw-w64-vlc-git/0005-disablestatic.patch deleted file mode 100644 index 180754393a..0000000000 --- a/mingw-w64-vlc-git/0005-disablestatic.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- vlc/configure.ac 2014-10-16 20:59:47.263961300 +0100 -+++ vlc/configure.ac 2014-10-16 21:00:06.283393300 +0100 -@@ -786,7 +786,7 @@ - - dnl On some OS we need static linking - AS_IF([test -n "${PKG_CONFIG}" ],[ -- AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[ -+ AS_IF([test "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[ - PKG_CONFIG="${PKG_CONFIG} --static" - ]) - ]) diff --git a/mingw-w64-vlc-git/0011-prefer-static-libs.patch b/mingw-w64-vlc-git/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch similarity index 53% rename from mingw-w64-vlc-git/0011-prefer-static-libs.patch rename to mingw-w64-vlc-git/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch index ce419254b8..5dd0d56ef4 100644 --- a/mingw-w64-vlc-git/0011-prefer-static-libs.patch +++ b/mingw-w64-vlc-git/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch @@ -1,57 +1,58 @@ -From 417b6eb0f09dc73984a7dba2aa42c9d8683d5294 Mon Sep 17 00:00:00 2001 -From: Jean-Baptiste Kempf -Date: Sat, 11 Oct 2014 17:53:45 +0200 -Subject: [PATCH] Win32: prefer the static libraries when creating the dlls +From 79de7ed9e452fb60d42e141d210aa9f5e6d5a5cf Mon Sep 17 00:00:00 2001 +From: martell +Date: Sat, 22 Nov 2014 22:15:37 +0000 +Subject: [PATCH 6/6] Revert "Win32: prefer the static libraries when creating + the dlls" -This should avoid the issues of packaging libgcc_s_sjlj-1.dll, -libwinpthread-1.dll and the like. +This reverts commit 417b6eb0f09dc73984a7dba2aa42c9d8683d5294. --- - lib/Makefile.am | 3 ++- - modules/common.am | 3 ++- - src/Makefile.am | 3 ++- - 3 files changed, 6 insertions(+), 3 deletions(-) + lib/Makefile.am | 3 +-- + modules/common.am | 3 +-- + src/Makefile.am | 3 +-- + 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/Makefile.am b/lib/Makefile.am -index c53fe08..be1b6be 100644 +index be1b6be..c53fe08 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am -@@ -64,7 +64,8 @@ libvlc_la_LDFLAGS = \ +@@ -64,8 +64,7 @@ libvlc_la_LDFLAGS = \ libvlc_la_DEPENDENCIES = libvlc.sym if HAVE_WIN32 libvlc_la_DEPENDENCIES += ../src/libvlc_win32_rc.$(OBJEXT) --libvlc_la_LDFLAGS += -Wl,../src/libvlc_win32_rc.$(OBJEXT) -avoid-version -+libvlc_la_LDFLAGS += -Wl,../src/libvlc_win32_rc.$(OBJEXT) -avoid-version \ -+ -Wc,--static -Wc,-static-libgcc +-libvlc_la_LDFLAGS += -Wl,../src/libvlc_win32_rc.$(OBJEXT) -avoid-version \ +- -Wc,--static -Wc,-static-libgcc ++libvlc_la_LDFLAGS += -Wl,../src/libvlc_win32_rc.$(OBJEXT) -avoid-version endif if HAVE_OS2 libvlc_la_LDFLAGS += -avoid-version diff --git a/modules/common.am b/modules/common.am -index 9bb5143..c3b3f8e 100644 +index c3b3f8e..9bb5143 100644 --- a/modules/common.am +++ b/modules/common.am -@@ -33,7 +33,8 @@ AM_LDFLAGS = \ +@@ -33,8 +33,7 @@ AM_LDFLAGS = \ -no-undefined \ $(top_builddir)/compat/libcompat.la $(LTLIBVLCCORE) if HAVE_WIN32 --AM_LDFLAGS += $(top_builddir)/modules/module.rc.lo -+AM_LDFLAGS += $(top_builddir)/modules/module.rc.lo \ -+ -Wc,--static -Wc,-static-libgcc +-AM_LDFLAGS += $(top_builddir)/modules/module.rc.lo \ +- -Wc,--static -Wc,-static-libgcc ++AM_LDFLAGS += $(top_builddir)/modules/module.rc.lo endif SUFFIXES = .asm diff --git a/src/Makefile.am b/src/Makefile.am -index 1e113c9..4472271 100644 +index e200669..9d724c9 100644 --- a/src/Makefile.am +++ b/src/Makefile.am -@@ -190,7 +190,8 @@ libvlccore_la_LIBADD = $(LIBS_libvlccore) \ +@@ -190,8 +190,7 @@ libvlccore_la_LIBADD = $(LIBS_libvlccore) \ libvlccore_la_DEPENDENCIES = libvlccore.sym if HAVE_WIN32 libvlccore_la_DEPENDENCIES += libvlc_win32_rc.$(OBJEXT) --libvlccore_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version -+libvlccore_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version \ -+ -Wc,--static -Wc,-static-libgcc +-libvlccore_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version \ +- -Wc,--static -Wc,-static-libgcc ++libvlccore_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version endif if HAVE_OS2 libvlccore_la_LDFLAGS += -avoid-version -- -1.7.10.4 +2.1.3 + diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index a88a67e901..b4ec7ade47 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -1,5 +1,6 @@ # Maintainer: Martell Malone # Contributor: Alexey Pavlov +# Contributor: Ray Donnelly #_variant=winrt _variant=desktop @@ -9,7 +10,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.59104.701fc0c +pkgver=3.0.0.59159.4716a65 pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -108,23 +109,19 @@ makedepends=( options=('strip' '!emptydirs') source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_realname}-${_ver_base}.git" "${_realname}"::"git://git.videolan.org/${_realname}.git" - 0001-fix-redeclare.patch - 0002-msvcrt-lfind.patch - 0003-fix-prog-find-2.2.patch - 0004-skip-pthread-time-declares.patch - 0005-disablestatic.patch - 0006-fix-time-mingw-include.patch - 0010-fix_REENTRANT-2.2.patch - 0011-prefer-static-libs.patch) + 0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch + 0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch + 0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch + 0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch + 0005-MinGW-w64-fix-time-include.patch + 0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch) md5sums=('SKIP' - 'a546326fd9beb9a04e066bad6c1945c9' - 'e1d4601bec65f1287f87a66b13f98226' - '6f5658882060d0a33c8ba45186fcaf69' - '76ad5b8bf5850cc47e11580fd3bbc179' - '1e544f65bd17b5af5b862098412f99f7' - '6e7eb88c80751432a9e1214ea567f8ba' - 'd858696f47e0688b4706d598fd7e42ed' - 'bc2038d61add89c423dc7145cdc6c843') + '57ae93e731d671d1b3fe89021cf47bb8' + 'e4a5a2f02d9cf94db312eba60b46bcd6' + 'a342f28f5a36f972c1ecbd4db7289a17' + '107614bb4f0e63cb29637a140a25aeec' + '4b687d976e5239720be2fa05e9880e6e' + '24f7bab6a22cefdcb49e4a3cc24115fa') pkgver() { cd $_realname @@ -139,15 +136,12 @@ pkgver() { prepare() { cd "${srcdir}"/${_realname} - patch -Np1 -i "${srcdir}/0001-fix-redeclare.patch" - patch -p1 -i "${srcdir}/0002-msvcrt-lfind.patch" - #patch -p1 -i "${srcdir}/0003-fix-prog-find-2.2.patch" - patch -p1 -i "${srcdir}/0004-skip-pthread-time-declares.patch" - patch -p1 -i "${srcdir}/0005-disablestatic.patch" - patch -p1 -i "${srcdir}/0006-fix-time-mingw-include.patch" - #patch -p1 -i "${srcdir}/0010-fix_REENTRANT-2.2.patch" - patch -Rp1 -i "${srcdir}/0011-prefer-static-libs.patch" - + git am "${srcdir}"/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch + git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch + git am "${srcdir}"/0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch + git am "${srcdir}"/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch + git am "${srcdir}"/0005-MinGW-w64-fix-time-include.patch + git am "${srcdir}"/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch ./bootstrap sed -i -e 's:truetype/freefont:TTF:g' modules/text_renderer/freetype.c From b06d0ed2ab8261b8c0a12ecaab0b42bb53626c36 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 22 Nov 2014 22:28:47 +0000 Subject: [PATCH 0018/2060] vlc-git: Include wspiapi.h when looking for pollfd Should probably be in its own block, looking for freeaddrinfo as a define and disabling building compat/freeaddrinfo.c --- ...de-wspiapi.h-when-looking-for-pollfd.patch | 26 +++++++++++++++++++ mingw-w64-vlc-git/PKGBUILD | 5 +++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-vlc-git/0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch diff --git a/mingw-w64-vlc-git/0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch b/mingw-w64-vlc-git/0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch new file mode 100644 index 0000000000..125b749aff --- /dev/null +++ b/mingw-w64-vlc-git/0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch @@ -0,0 +1,26 @@ +From b08d96d4fec6dc1e3ba0217f2376d3105da3c748 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 22 Nov 2014 22:27:10 +0000 +Subject: [PATCH 7/7] Win32: include wspiapi.h when looking for pollfd + +Should probably be in its own block, looking for freeaddrinfo as a +define and disabling building compat/freeaddrinfo.c +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index eb35184..37c5685 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -611,6 +611,7 @@ AC_CHECK_TYPES([struct pollfd],,, + #elif defined (_WIN32) + # define _WIN32_WINNT 0x502 + # include ++# include + #endif + ]) + +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index b4ec7ade47..a3489f6f79 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -114,7 +114,8 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re 0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch 0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch 0005-MinGW-w64-fix-time-include.patch - 0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch) + 0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch + 0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch) md5sums=('SKIP' '57ae93e731d671d1b3fe89021cf47bb8' 'e4a5a2f02d9cf94db312eba60b46bcd6' @@ -142,6 +143,8 @@ prepare() { git am "${srcdir}"/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch git am "${srcdir}"/0005-MinGW-w64-fix-time-include.patch git am "${srcdir}"/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch + git am "${srcdir}"/0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch + ./bootstrap sed -i -e 's:truetype/freefont:TTF:g' modules/text_renderer/freetype.c From f415b2c61552f5cb8e820ccd175cc17f56a89119 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 24 Nov 2014 22:55:07 +0000 Subject: [PATCH 0019/2060] vlc-git: Fix freeaddrinfo detection Fixes b06d0ed2ab8261b8c0a12ecaab0b42bb53626c36 --- ...007-Search-for-freeaddrinfo-properly.patch | 42 +++++++++++++++++++ ...de-wspiapi.h-when-looking-for-pollfd.patch | 26 ------------ mingw-w64-vlc-git/PKGBUILD | 9 ++-- 3 files changed, 47 insertions(+), 30 deletions(-) create mode 100644 mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-properly.patch delete mode 100644 mingw-w64-vlc-git/0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch diff --git a/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-properly.patch b/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-properly.patch new file mode 100644 index 0000000000..0e664d5664 --- /dev/null +++ b/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-properly.patch @@ -0,0 +1,42 @@ +From 5fb3a9de0ef32da22d0d80fb86e4486aa5a2ca38 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 22 Nov 2014 22:27:10 +0000 +Subject: [PATCH 7/7] Search for freeaddrinfo properly + +--- + configure.ac | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index eb35184..c790c83 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -556,7 +556,7 @@ need_libc=false + dnl Check for usual libc functions + AC_CHECK_DECLS([nanosleep],,,[#include ]) + AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale pthread_cond_timedwait_monotonic_np pthread_condattr_setclock]) +-AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile freeaddrinfo fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp]) ++AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp]) + AC_CHECK_FUNCS(fdatasync,, + [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.]) + ]) +@@ -648,6 +648,16 @@ AC_LINK_IFELSE([ + inet_pton(AF_INET, "127.0.0.1", dst); + ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])]) + AC_CHECK_FUNCS([if_nameindex if_nametoindex]) ++AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([#ifdef _WIN32 ++ #include ++ #include ++ #else ++ #include ++ #include ++ #endif], [ ++ freeaddrinfo(0); ++ ])],[AC_DEFINE([HAVE_FREEADDRINFO],[1],[Define to 1 if you have freeaddrinfo function])],[AC_LIBOBJ([freeaddrinfo])]) + VLC_RESTORE_FLAGS + + AS_IF([test -n "$SOCKET_LIBS"], [ +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch b/mingw-w64-vlc-git/0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch deleted file mode 100644 index 125b749aff..0000000000 --- a/mingw-w64-vlc-git/0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b08d96d4fec6dc1e3ba0217f2376d3105da3c748 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Sat, 22 Nov 2014 22:27:10 +0000 -Subject: [PATCH 7/7] Win32: include wspiapi.h when looking for pollfd - -Should probably be in its own block, looking for freeaddrinfo as a -define and disabling building compat/freeaddrinfo.c ---- - configure.ac | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/configure.ac b/configure.ac -index eb35184..37c5685 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -611,6 +611,7 @@ AC_CHECK_TYPES([struct pollfd],,, - #elif defined (_WIN32) - # define _WIN32_WINNT 0x502 - # include -+# include - #endif - ]) - --- -2.1.3 - diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index a3489f6f79..8be95f8676 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.59159.4716a65 +pkgver=3.0.0.59163.cf3c3b3 pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -115,14 +115,15 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re 0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch 0005-MinGW-w64-fix-time-include.patch 0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch - 0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch) + 0007-search-for-freeaddrinfo-properly.patch) md5sums=('SKIP' '57ae93e731d671d1b3fe89021cf47bb8' 'e4a5a2f02d9cf94db312eba60b46bcd6' 'a342f28f5a36f972c1ecbd4db7289a17' '107614bb4f0e63cb29637a140a25aeec' '4b687d976e5239720be2fa05e9880e6e' - '24f7bab6a22cefdcb49e4a3cc24115fa') + '24f7bab6a22cefdcb49e4a3cc24115fa' + '265582fb247f5819c0a64ce29c068d38') pkgver() { cd $_realname @@ -143,7 +144,7 @@ prepare() { git am "${srcdir}"/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch git am "${srcdir}"/0005-MinGW-w64-fix-time-include.patch git am "${srcdir}"/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch - git am "${srcdir}"/0007-Win32-include-wspiapi.h-when-looking-for-pollfd.patch + git am "${srcdir}"/0007-search-for-freeaddrinfo-properly.patch ./bootstrap From fa165fe37af0998f8b949b31f11363004817e90a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 25 Nov 2014 00:05:26 +0000 Subject: [PATCH 0020/2060] vlc-git: Fix-up since latest changes. --- ...declaration-of-MFAudioFormat_Dolby_A.patch | 4 +- ...-s-_NumOfElements-is-an-unsigned-int.patch | 6 +-- ...W-w64-skip-pthread-time-declaration.patch} | 13 +++--- ...pass-static-to-pkg-config-if-SYS-min.patch | 8 ++-- .../0005-MinGW-w64-fix-time-include.patch | 4 +- ...fer-the-static-libraries-when-creati.patch | 4 +- ...arch-for-freeaddrinfo-in-SOCKET_LIBS.patch | 35 ++++++++++++++++ ...007-Search-for-freeaddrinfo-properly.patch | 42 ------------------- mingw-w64-vlc-git/PKGBUILD | 24 +++++------ 9 files changed, 68 insertions(+), 72 deletions(-) rename mingw-w64-vlc-git/{0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch => 0003-MinGW-w64-skip-pthread-time-declaration.patch} (76%) create mode 100644 mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch delete mode 100644 mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-properly.patch diff --git a/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch b/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch index ef0ee12776..c25015cab7 100644 --- a/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch +++ b/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch @@ -1,7 +1,7 @@ -From c3fd514176a8c76e3f2812a919d0e55c87211952 Mon Sep 17 00:00:00 2001 +From ca865048562f8103a2a3ac5b2e005f123b3ce676 Mon Sep 17 00:00:00 2001 From: martell Date: Sat, 22 Nov 2014 22:15:32 +0000 -Subject: [PATCH 1/6] MinGW-w64: fix redeclaration of MFAudioFormat_Dolby_AC3 +Subject: [PATCH 1/7] MinGW-w64: fix redeclaration of MFAudioFormat_Dolby_AC3 --- modules/codec/mft.c | 2 ++ diff --git a/mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch b/mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch index 2a43b32c5b..9117dba1e0 100644 --- a/mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch +++ b/mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch @@ -1,7 +1,7 @@ -From 0e929b7c70c3761e8c7bd66ad59d523e05ae8455 Mon Sep 17 00:00:00 2001 +From 4c2152fe4107ac37b2ada91af87ca8189b641eac Mon Sep 17 00:00:00 2001 From: martell Date: Sat, 22 Nov 2014 22:15:33 +0000 -Subject: [PATCH 2/6] MinGW-w64: lfind's _NumOfElements is an unsigned int +Subject: [PATCH 2/7] MinGW-w64: lfind's _NumOfElements is an unsigned int --- modules/access/dtv/access.c | 9 +++++++-- @@ -17,7 +17,7 @@ index 95b1dd7..433e65d 100644 return ""; - - size_t n = sizeof (modulation_vlc) / sizeof (modulation_vlc[0]); -+ ++ +#ifdef __MINGW32__ + unsigned int n; +#else diff --git a/mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch b/mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration.patch similarity index 76% rename from mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch rename to mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration.patch index 24686fdcac..b9c193f6f9 100644 --- a/mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch +++ b/mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration.patch @@ -1,11 +1,14 @@ -From 68207d5623db9cbe52d2f201b77968af1879328d Mon Sep 17 00:00:00 2001 +From 5ac0359031f81d25e08570152994c163f805da23 Mon Sep 17 00:00:00 2001 From: martell Date: Sat, 22 Nov 2014 22:15:34 +0000 -Subject: [PATCH 3/6] MinGW-w64: skip pthread time declaration\n\nI don't think - this does what it says anymore.\nInstead it seems to be all about the Qt4 - integration,\n\n1. linking qt4 plugin to -lcomctl32 -luuid\n2. importing - QWindowsIntegrationPlugin, AccessibleFactory\n iff QT_STATICPLUGIN +Subject: [PATCH 3/7] MinGW-w64: skip pthread time declaration +I don't think this does what it says anymore. +Instead it seems to be all about the Qt4 integration: + +1. linking qt4 plugin to -lcomctl32 -luuid +2. importing QWindowsIntegrationPlugin, AccessibleFactory + iff QT_STATICPLUGIN --- modules/gui/qt4/Makefile.am | 2 +- modules/gui/qt4/qt4.cpp | 6 ++++-- diff --git a/mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch b/mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch index 4ca03ae63a..7f172b77bc 100644 --- a/mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch +++ b/mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch @@ -1,7 +1,7 @@ -From f52109122367445e41e2b87bbe66b1b45fdd17f4 Mon Sep 17 00:00:00 2001 +From 1b4fb719f3f02aff33ae4644b499a09887819e62 Mon Sep 17 00:00:00 2001 From: martell Date: Sat, 22 Nov 2014 22:15:35 +0000 -Subject: [PATCH 4/6] MinGW-w64: don't pass --static to pkg-config if SYS = +Subject: [PATCH 4/7] MinGW-w64: don't pass --static to pkg-config if SYS = mingw32 --- @@ -9,10 +9,10 @@ Subject: [PATCH 4/6] MinGW-w64: don't pass --static to pkg-config if SYS = 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index b7a4c74..eb35184 100644 +index b8ccc8a..d576265 100644 --- a/configure.ac +++ b/configure.ac -@@ -801,7 +801,7 @@ PKG_PROG_PKG_CONFIG() +@@ -802,7 +802,7 @@ PKG_PROG_PKG_CONFIG() dnl On some OS we need static linking AS_IF([test -n "${PKG_CONFIG}" ],[ diff --git a/mingw-w64-vlc-git/0005-MinGW-w64-fix-time-include.patch b/mingw-w64-vlc-git/0005-MinGW-w64-fix-time-include.patch index bd8dfa30fb..e89c74304d 100644 --- a/mingw-w64-vlc-git/0005-MinGW-w64-fix-time-include.patch +++ b/mingw-w64-vlc-git/0005-MinGW-w64-fix-time-include.patch @@ -1,7 +1,7 @@ -From 579310731d38bdfbae0b0d3090f99aaa03f76877 Mon Sep 17 00:00:00 2001 +From 137433dbfdff3d4da8d958abdd51fdc1ac648036 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 22 Nov 2014 22:15:36 +0000 -Subject: [PATCH 5/6] MinGW-w64: fix time include +Subject: [PATCH 5/7] MinGW-w64: fix time include --- include/vlc_fixups.h | 2 +- diff --git a/mingw-w64-vlc-git/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch b/mingw-w64-vlc-git/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch index 5dd0d56ef4..746573fa60 100644 --- a/mingw-w64-vlc-git/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch +++ b/mingw-w64-vlc-git/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch @@ -1,7 +1,7 @@ -From 79de7ed9e452fb60d42e141d210aa9f5e6d5a5cf Mon Sep 17 00:00:00 2001 +From fb6b1c13c81dfbd6bb4b7d11463105a3fe62d260 Mon Sep 17 00:00:00 2001 From: martell Date: Sat, 22 Nov 2014 22:15:37 +0000 -Subject: [PATCH 6/6] Revert "Win32: prefer the static libraries when creating +Subject: [PATCH 6/7] Revert "Win32: prefer the static libraries when creating the dlls" This reverts commit 417b6eb0f09dc73984a7dba2aa42c9d8683d5294. diff --git a/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch b/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch new file mode 100644 index 0000000000..21af890641 --- /dev/null +++ b/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch @@ -0,0 +1,35 @@ +From 9ff8ccc7cbc48c797d6fc214638e24f2aadb8c5a Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 22 Nov 2014 22:27:10 +0000 +Subject: [PATCH 7/7] Search for freeaddrinfo in SOCKET_LIBS + +.. using system-specifc headers so that the declaration +includes the correct calling convention. +--- + configure.ac | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/configure.ac b/configure.ac +index d576265..6e4656f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -649,6 +649,16 @@ AC_LINK_IFELSE([ + inet_pton(AF_INET, "127.0.0.1", dst); + ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])]) + AC_CHECK_FUNCS([if_nameindex if_nametoindex]) ++AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([#ifdef _WIN32 ++ #include ++ #include ++ #else ++ #include ++ #include ++ #endif], [ ++ freeaddrinfo(0); ++ ])],[AC_DEFINE([HAVE_FREEADDRINFO],[1],[Define to 1 if you have freeaddrinfo function])],[AC_LIBOBJ([freeaddrinfo])]) + VLC_RESTORE_FLAGS + + AS_IF([test -n "$SOCKET_LIBS"], [ +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-properly.patch b/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-properly.patch deleted file mode 100644 index 0e664d5664..0000000000 --- a/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-properly.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 5fb3a9de0ef32da22d0d80fb86e4486aa5a2ca38 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Sat, 22 Nov 2014 22:27:10 +0000 -Subject: [PATCH 7/7] Search for freeaddrinfo properly - ---- - configure.ac | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index eb35184..c790c83 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -556,7 +556,7 @@ need_libc=false - dnl Check for usual libc functions - AC_CHECK_DECLS([nanosleep],,,[#include ]) - AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale pthread_cond_timedwait_monotonic_np pthread_condattr_setclock]) --AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile freeaddrinfo fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp]) -+AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp]) - AC_CHECK_FUNCS(fdatasync,, - [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.]) - ]) -@@ -648,6 +648,16 @@ AC_LINK_IFELSE([ - inet_pton(AF_INET, "127.0.0.1", dst); - ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])]) - AC_CHECK_FUNCS([if_nameindex if_nametoindex]) -+AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([#ifdef _WIN32 -+ #include -+ #include -+ #else -+ #include -+ #include -+ #endif], [ -+ freeaddrinfo(0); -+ ])],[AC_DEFINE([HAVE_FREEADDRINFO],[1],[Define to 1 if you have freeaddrinfo function])],[AC_LIBOBJ([freeaddrinfo])]) - VLC_RESTORE_FLAGS - - AS_IF([test -n "$SOCKET_LIBS"], [ --- -2.1.3 - diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 8be95f8676..43e7ea5bfd 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.59163.cf3c3b3 +pkgver=3.0.0.59171.b80d2ab pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -111,19 +111,19 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re "${_realname}"::"git://git.videolan.org/${_realname}.git" 0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch 0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch - 0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch + 0003-MinGW-w64-skip-pthread-time-declaration.patch 0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch 0005-MinGW-w64-fix-time-include.patch 0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch - 0007-search-for-freeaddrinfo-properly.patch) + 0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch) md5sums=('SKIP' - '57ae93e731d671d1b3fe89021cf47bb8' - 'e4a5a2f02d9cf94db312eba60b46bcd6' - 'a342f28f5a36f972c1ecbd4db7289a17' - '107614bb4f0e63cb29637a140a25aeec' - '4b687d976e5239720be2fa05e9880e6e' - '24f7bab6a22cefdcb49e4a3cc24115fa' - '265582fb247f5819c0a64ce29c068d38') + '9bec11cf193b3a2eacab7b7b64681295' + 'a85b0e279940f78cb167a962b402ffc1' + 'ed82bde263eb1d27f68c5c7d890df21a' + 'a214a27e021a4f214f1d27d8e5c272e7' + 'cce4df7e25f23d64a7a90849f6100d7e' + '47f2972236502012f7c1ece69ab94893' + '6cb4076521e91b80ce1979668f087b91') pkgver() { cd $_realname @@ -140,11 +140,11 @@ prepare() { git am "${srcdir}"/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch - git am "${srcdir}"/0003-MinGW-w64-skip-pthread-time-declaration-n-nI-don-t-t.patch + git am "${srcdir}"/0003-MinGW-w64-skip-pthread-time-declaration.patch git am "${srcdir}"/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch git am "${srcdir}"/0005-MinGW-w64-fix-time-include.patch git am "${srcdir}"/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch - git am "${srcdir}"/0007-search-for-freeaddrinfo-properly.patch + git am "${srcdir}"/0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch ./bootstrap From f31d0bed155a735886ac31a1a6916d04e5b404cd Mon Sep 17 00:00:00 2001 From: martell Date: Tue, 25 Nov 2014 14:10:44 +0000 Subject: [PATCH 0021/2060] vlc-git: more updates and correct name changes --- .../0003-fix-prog-find-2.2.patch | 27 ------------- ...tion.patch => 0003-qt-static-plugin.patch} | 38 ++++++++++++------ .../0005-MinGW-w64-fix-time-include.patch | 25 ------------ .../0005-fix-some-time-includes.patch | 40 +++++++++++++++++++ .../0010-fix_REENTRANT-2.2.patch | 30 -------------- mingw-w64-vlc-git/PKGBUILD | 12 +++--- 6 files changed, 71 insertions(+), 101 deletions(-) delete mode 100644 mingw-w64-vlc-git/0003-fix-prog-find-2.2.patch rename mingw-w64-vlc-git/{0003-MinGW-w64-skip-pthread-time-declaration.patch => 0003-qt-static-plugin.patch} (58%) delete mode 100644 mingw-w64-vlc-git/0005-MinGW-w64-fix-time-include.patch create mode 100644 mingw-w64-vlc-git/0005-fix-some-time-includes.patch delete mode 100644 mingw-w64-vlc-git/0010-fix_REENTRANT-2.2.patch diff --git a/mingw-w64-vlc-git/0003-fix-prog-find-2.2.patch b/mingw-w64-vlc-git/0003-fix-prog-find-2.2.patch deleted file mode 100644 index 2182d0a967..0000000000 --- a/mingw-w64-vlc-git/0003-fix-prog-find-2.2.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- vlc/configure.ac 2014-10-15 17:37:29.940938700 +0100 -+++ vlc/configure.ac 2014-10-15 17:40:44.490919400 +0100 -@@ -3716,9 +3716,9 @@ - ]) - QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)" - QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)" -- AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, [${QT_HOST_PATH} ${QT_PATH}/bin ${CONTRIB_DIR}/bin]) -- AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, [${QT_HOST_PATH} ${QT_PATH}/bin ${CONTRIB_DIR}/bin]) -- AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, [${QT_HOST_PATH} ${QT_PATH}/bin ${CONTRIB_DIR}/bin]) -+ AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) -+ AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) -+ AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) - ], [ - PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [ - AS_IF([test -n "${enable_qt}"],[ -@@ -3729,9 +3729,9 @@ - enable_qt="no" - ]) - QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)" -- AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin]) -+ AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) - AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin]) -- AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, [${QT_PATH}/bin ${CONTRIB_DIR}/bin]) -+ AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) - ]) - ]) - AS_IF([test "${enable_qt}" != "no"], [ diff --git a/mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration.patch b/mingw-w64-vlc-git/0003-qt-static-plugin.patch similarity index 58% rename from mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration.patch rename to mingw-w64-vlc-git/0003-qt-static-plugin.patch index b9c193f6f9..8de4bb1bb4 100644 --- a/mingw-w64-vlc-git/0003-MinGW-w64-skip-pthread-time-declaration.patch +++ b/mingw-w64-vlc-git/0003-qt-static-plugin.patch @@ -1,18 +1,14 @@ -From 5ac0359031f81d25e08570152994c163f805da23 Mon Sep 17 00:00:00 2001 -From: martell -Date: Sat, 22 Nov 2014 22:15:34 +0000 -Subject: [PATCH 3/7] MinGW-w64: skip pthread time declaration +From 7bbf5b7eba4455c8535b24af7aa516716c6a4c02 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Tue, 25 Nov 2014 10:41:09 +0000 +Subject: [PATCH] gui-qt4: added QT_STATICPLUGIN define based on static or + shared as per the qt spec -I don't think this does what it says anymore. -Instead it seems to be all about the Qt4 integration: - -1. linking qt4 plugin to -lcomctl32 -luuid -2. importing QWindowsIntegrationPlugin, AccessibleFactory - iff QT_STATICPLUGIN --- modules/gui/qt4/Makefile.am | 2 +- modules/gui/qt4/qt4.cpp | 6 ++++-- - 2 files changed, 5 insertions(+), 3 deletions(-) + modules/gui/qt4/qt4.hpp | 6 ++++++ + 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/gui/qt4/Makefile.am b/modules/gui/qt4/Makefile.am index c608999..1a564cf 100644 @@ -44,6 +40,22 @@ index 1e25371..b6aef43 100644 #else Q_IMPORT_PLUGIN(qjpeg) Q_IMPORT_PLUGIN(qtaccessiblewidgets) +diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp +index 6244763..258557c 100644 +--- a/modules/gui/qt4/qt4.hpp ++++ b/modules/gui/qt4/qt4.hpp +@@ -33,6 +33,12 @@ + #include /* intf_thread_t */ + #include /* playlist_t */ + ++#include ++ ++#ifdef QT_STATIC ++#define QT_STATICPLUGIN ++#endif ++ + #define QT_NO_CAST_TO_ASCII + #include + -- -2.1.3 - +2.1.3 \ No newline at end of file diff --git a/mingw-w64-vlc-git/0005-MinGW-w64-fix-time-include.patch b/mingw-w64-vlc-git/0005-MinGW-w64-fix-time-include.patch deleted file mode 100644 index e89c74304d..0000000000 --- a/mingw-w64-vlc-git/0005-MinGW-w64-fix-time-include.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 137433dbfdff3d4da8d958abdd51fdc1ac648036 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Sat, 22 Nov 2014 22:15:36 +0000 -Subject: [PATCH 5/7] MinGW-w64: fix time include - ---- - include/vlc_fixups.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h -index cee1254..e0f7c87 100644 ---- a/include/vlc_fixups.h -+++ b/include/vlc_fixups.h -@@ -26,7 +26,7 @@ - #ifndef LIBVLC_FIXUPS_H - # define LIBVLC_FIXUPS_H 1 - --#if !defined (HAVE_GMTIME_R) || !defined (HAVE_LOCALTIME_R) -+#if !defined (HAVE_GMTIME_R) || !defined (HAVE_LOCALTIME_R) || defined (__MINGW32__) - # include /* time_t */ - #endif - --- -2.1.3 - diff --git a/mingw-w64-vlc-git/0005-fix-some-time-includes.patch b/mingw-w64-vlc-git/0005-fix-some-time-includes.patch new file mode 100644 index 0000000000..ddebd8e59a --- /dev/null +++ b/mingw-w64-vlc-git/0005-fix-some-time-includes.patch @@ -0,0 +1,40 @@ +From 1c621a9c7dafe365623bc2c7199a52736f0a3983 Mon Sep 17 00:00:00 2001 +From: Martell +Date: Tue, 25 Nov 2014 12:22:09 +0000 +Subject: [PATCH] fix some time includes + +--- + modules/demux/mkv/mkv.hpp | 4 +--- + src/win32/thread.c | 1 + + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/modules/demux/mkv/mkv.hpp b/modules/demux/mkv/mkv.hpp +index 8c5af80..392b9e7 100644 +--- a/modules/demux/mkv/mkv.hpp ++++ b/modules/demux/mkv/mkv.hpp +@@ -45,9 +45,7 @@ + #include + #include + +-#ifdef HAVE_TIME_H +-# include /* time() */ +-#endif ++#include + + #include + #include +diff --git a/src/win32/thread.c b/src/win32/thread.c +index 7dcfc4c..9bc787d 100644 +--- a/src/win32/thread.c ++++ b/src/win32/thread.c +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + + /*** Static mutex and condition variable ***/ + static vlc_mutex_t super_mutex; +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/0010-fix_REENTRANT-2.2.patch b/mingw-w64-vlc-git/0010-fix_REENTRANT-2.2.patch deleted file mode 100644 index 9cfc978de3..0000000000 --- a/mingw-w64-vlc-git/0010-fix_REENTRANT-2.2.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 8dcec7992236b8d2528ab088554766058d71505c Mon Sep 17 00:00:00 2001 -From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= -Date: Wed, 23 Jul 2014 19:27:01 +0300 -Subject: [PATCH] configure: do not redefine _REENTRANT - -This fixes warnings with PulseAudio and with MingW. ---- - configure.ac | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index de07e28..b847f57 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -56,7 +56,11 @@ AC_PROG_CC_C99 - AC_USE_SYSTEM_EXTENSIONS - AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.]) - AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.]) --AC_DEFINE([_REENTRANT],, [Define to expose reentrant functions.]) -+AH_TOP([ -+#ifndef _REENTRANT -+# define _REENTRANT -+#endif -+]) - AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.]) - AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.]) - AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of .]) --- -1.7.10.4 - diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 43e7ea5bfd..4829b6a578 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -111,17 +111,17 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re "${_realname}"::"git://git.videolan.org/${_realname}.git" 0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch 0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch - 0003-MinGW-w64-skip-pthread-time-declaration.patch + 0003-qt-static-plugin.patch 0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - 0005-MinGW-w64-fix-time-include.patch + 0005-fix-some-time-includes.patch 0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch 0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch) md5sums=('SKIP' '9bec11cf193b3a2eacab7b7b64681295' 'a85b0e279940f78cb167a962b402ffc1' - 'ed82bde263eb1d27f68c5c7d890df21a' + '0b95fc8830cf5de744cd82d7f3890009' 'a214a27e021a4f214f1d27d8e5c272e7' - 'cce4df7e25f23d64a7a90849f6100d7e' + '9aea8e950cc3bead661a58e369121d54' '47f2972236502012f7c1ece69ab94893' '6cb4076521e91b80ce1979668f087b91') @@ -140,9 +140,9 @@ prepare() { git am "${srcdir}"/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch - git am "${srcdir}"/0003-MinGW-w64-skip-pthread-time-declaration.patch + git am "${srcdir}"/0003-qt-static-plugin.patch git am "${srcdir}"/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - git am "${srcdir}"/0005-MinGW-w64-fix-time-include.patch + git am "${srcdir}"/0005-fix-some-time-includes.patch git am "${srcdir}"/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch git am "${srcdir}"/0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch From c30d28ca46c0000f327b5657a8c13903580a7f9b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 25 Nov 2014 21:39:36 +0000 Subject: [PATCH 0022/2060] vlc-git: Remove upstreamed qt static patch --- ...declaration-of-MFAudioFormat_Dolby_A.patch | 4 +- ...-s-_NumOfElements-is-an-unsigned-int.patch | 16 +++-- ...pass-static-to-pkg-config-if-SYS-min.patch | 26 ++++++++ mingw-w64-vlc-git/0003-qt-static-plugin.patch | 61 ------------------- .../0004-fix-some-time-includes.patch | 40 ++++++++++++ ...fer-the-static-libraries-when-creati.patch | 58 ++++++++++++++++++ ...arch-for-freeaddrinfo-in-SOCKET_LIBS.patch | 45 ++++++++++++++ mingw-w64-vlc-git/PKGBUILD | 33 +++++----- 8 files changed, 193 insertions(+), 90 deletions(-) create mode 100644 mingw-w64-vlc-git/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch delete mode 100644 mingw-w64-vlc-git/0003-qt-static-plugin.patch create mode 100644 mingw-w64-vlc-git/0004-fix-some-time-includes.patch create mode 100644 mingw-w64-vlc-git/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch create mode 100644 mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch diff --git a/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch b/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch index c25015cab7..4c79ed7a0b 100644 --- a/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch +++ b/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch @@ -1,7 +1,7 @@ -From ca865048562f8103a2a3ac5b2e005f123b3ce676 Mon Sep 17 00:00:00 2001 +From 5368ef34b24109f78c5498a42a263152db6e6d41 Mon Sep 17 00:00:00 2001 From: martell Date: Sat, 22 Nov 2014 22:15:32 +0000 -Subject: [PATCH 1/7] MinGW-w64: fix redeclaration of MFAudioFormat_Dolby_AC3 +Subject: [PATCH 1/6] MinGW-w64: fix redeclaration of MFAudioFormat_Dolby_AC3 --- modules/codec/mft.c | 2 ++ diff --git a/mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch b/mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch index 9117dba1e0..e443eed9cb 100644 --- a/mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch +++ b/mingw-w64-vlc-git/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch @@ -1,23 +1,21 @@ -From 4c2152fe4107ac37b2ada91af87ca8189b641eac Mon Sep 17 00:00:00 2001 +From 7f418509106b416366f7d549ee3035c9b905acca Mon Sep 17 00:00:00 2001 From: martell Date: Sat, 22 Nov 2014 22:15:33 +0000 -Subject: [PATCH 2/7] MinGW-w64: lfind's _NumOfElements is an unsigned int +Subject: [PATCH 2/6] MinGW-w64: lfind's _NumOfElements is an unsigned int --- - modules/access/dtv/access.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) + modules/access/dtv/access.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/access/dtv/access.c b/modules/access/dtv/access.c -index 95b1dd7..433e65d 100644 +index 95b1dd7..915a4e4 100644 --- a/modules/access/dtv/access.c +++ b/modules/access/dtv/access.c -@@ -727,8 +727,13 @@ static const char *var_InheritModulation (vlc_object_t *obj, const char *var) - char *mod = var_InheritString (obj, var); +@@ -728,7 +728,12 @@ static const char *var_InheritModulation (vlc_object_t *obj, const char *var) if (mod == NULL) return ""; -- + - size_t n = sizeof (modulation_vlc) / sizeof (modulation_vlc[0]); -+ +#ifdef __MINGW32__ + unsigned int n; +#else diff --git a/mingw-w64-vlc-git/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch b/mingw-w64-vlc-git/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch new file mode 100644 index 0000000000..acf5441cd6 --- /dev/null +++ b/mingw-w64-vlc-git/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch @@ -0,0 +1,26 @@ +From 8e9e0aabdb6008188d77f40871b338c277248c67 Mon Sep 17 00:00:00 2001 +From: martell +Date: Sat, 22 Nov 2014 22:15:35 +0000 +Subject: [PATCH 3/6] MinGW-w64: don't pass --static to pkg-config if SYS = + mingw32 + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index b8ccc8a..d576265 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -802,7 +802,7 @@ PKG_PROG_PKG_CONFIG() + + dnl On some OS we need static linking + AS_IF([test -n "${PKG_CONFIG}" ],[ +- AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[ ++ AS_IF([test "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[ + PKG_CONFIG="${PKG_CONFIG} --static" + ]) + ]) +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/0003-qt-static-plugin.patch b/mingw-w64-vlc-git/0003-qt-static-plugin.patch deleted file mode 100644 index 8de4bb1bb4..0000000000 --- a/mingw-w64-vlc-git/0003-qt-static-plugin.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 7bbf5b7eba4455c8535b24af7aa516716c6a4c02 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Tue, 25 Nov 2014 10:41:09 +0000 -Subject: [PATCH] gui-qt4: added QT_STATICPLUGIN define based on static or - shared as per the qt spec - ---- - modules/gui/qt4/Makefile.am | 2 +- - modules/gui/qt4/qt4.cpp | 6 ++++-- - modules/gui/qt4/qt4.hpp | 6 ++++++ - 3 files changed, 11 insertions(+), 3 deletions(-) - -diff --git a/modules/gui/qt4/Makefile.am b/modules/gui/qt4/Makefile.am -index c608999..1a564cf 100644 ---- a/modules/gui/qt4/Makefile.am -+++ b/modules/gui/qt4/Makefile.am -@@ -20,7 +20,7 @@ libqt4_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(guidir)' - if HAVE_OS2 - else - if HAVE_WIN32 --libqt4_plugin_la_LIBADD += -lole32 -+libqt4_plugin_la_LIBADD += -lole32 -lcomctl32 -luuid - else - libqt4_plugin_la_LIBADD += $(X_LIBS) $(X_PRE_LIB) -lX11 - endif -diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp -index 1e25371..b6aef43 100644 ---- a/modules/gui/qt4/qt4.cpp -+++ b/modules/gui/qt4/qt4.cpp -@@ -52,8 +52,10 @@ - #ifdef _WIN32 /* For static builds */ - #include - #if HAS_QT5 -- Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) -- Q_IMPORT_PLUGIN(AccessibleFactory) -+ #ifdef QT_STATICPLUGIN -+ Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) -+ Q_IMPORT_PLUGIN(AccessibleFactory) -+ #endif - #else - Q_IMPORT_PLUGIN(qjpeg) - Q_IMPORT_PLUGIN(qtaccessiblewidgets) -diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp -index 6244763..258557c 100644 ---- a/modules/gui/qt4/qt4.hpp -+++ b/modules/gui/qt4/qt4.hpp -@@ -33,6 +33,12 @@ - #include /* intf_thread_t */ - #include /* playlist_t */ - -+#include -+ -+#ifdef QT_STATIC -+#define QT_STATICPLUGIN -+#endif -+ - #define QT_NO_CAST_TO_ASCII - #include - --- -2.1.3 \ No newline at end of file diff --git a/mingw-w64-vlc-git/0004-fix-some-time-includes.patch b/mingw-w64-vlc-git/0004-fix-some-time-includes.patch new file mode 100644 index 0000000000..30db49c4ff --- /dev/null +++ b/mingw-w64-vlc-git/0004-fix-some-time-includes.patch @@ -0,0 +1,40 @@ +From 660d0d82ac04c64cf1d6084eb711f0e9e78e9cc1 Mon Sep 17 00:00:00 2001 +From: Martell +Date: Tue, 25 Nov 2014 12:22:09 +0000 +Subject: [PATCH 4/6] fix some time includes + +--- + modules/demux/mkv/mkv.hpp | 4 +--- + src/win32/thread.c | 1 + + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/modules/demux/mkv/mkv.hpp b/modules/demux/mkv/mkv.hpp +index 8c5af80..392b9e7 100644 +--- a/modules/demux/mkv/mkv.hpp ++++ b/modules/demux/mkv/mkv.hpp +@@ -45,9 +45,7 @@ + #include + #include + +-#ifdef HAVE_TIME_H +-# include /* time() */ +-#endif ++#include + + #include + #include +diff --git a/src/win32/thread.c b/src/win32/thread.c +index 7dcfc4c..9bc787d 100644 +--- a/src/win32/thread.c ++++ b/src/win32/thread.c +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + + /*** Static mutex and condition variable ***/ + static vlc_mutex_t super_mutex; +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch b/mingw-w64-vlc-git/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch new file mode 100644 index 0000000000..e4db2c493b --- /dev/null +++ b/mingw-w64-vlc-git/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch @@ -0,0 +1,58 @@ +From 77590c2990e91ff7abddb73ad058e10bdce69d09 Mon Sep 17 00:00:00 2001 +From: martell +Date: Sat, 22 Nov 2014 22:15:37 +0000 +Subject: [PATCH 5/6] Revert "Win32: prefer the static libraries when creating + the dlls" + +This reverts commit 417b6eb0f09dc73984a7dba2aa42c9d8683d5294. +--- + lib/Makefile.am | 3 +-- + modules/common.am | 3 +-- + src/Makefile.am | 3 +-- + 3 files changed, 3 insertions(+), 6 deletions(-) + +diff --git a/lib/Makefile.am b/lib/Makefile.am +index be1b6be..c53fe08 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -64,8 +64,7 @@ libvlc_la_LDFLAGS = \ + libvlc_la_DEPENDENCIES = libvlc.sym + if HAVE_WIN32 + libvlc_la_DEPENDENCIES += ../src/libvlc_win32_rc.$(OBJEXT) +-libvlc_la_LDFLAGS += -Wl,../src/libvlc_win32_rc.$(OBJEXT) -avoid-version \ +- -Wc,--static -Wc,-static-libgcc ++libvlc_la_LDFLAGS += -Wl,../src/libvlc_win32_rc.$(OBJEXT) -avoid-version + endif + if HAVE_OS2 + libvlc_la_LDFLAGS += -avoid-version +diff --git a/modules/common.am b/modules/common.am +index c3b3f8e..9bb5143 100644 +--- a/modules/common.am ++++ b/modules/common.am +@@ -33,8 +33,7 @@ AM_LDFLAGS = \ + -no-undefined \ + $(top_builddir)/compat/libcompat.la $(LTLIBVLCCORE) + if HAVE_WIN32 +-AM_LDFLAGS += $(top_builddir)/modules/module.rc.lo \ +- -Wc,--static -Wc,-static-libgcc ++AM_LDFLAGS += $(top_builddir)/modules/module.rc.lo + endif + + SUFFIXES = .asm +diff --git a/src/Makefile.am b/src/Makefile.am +index e200669..9d724c9 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -190,8 +190,7 @@ libvlccore_la_LIBADD = $(LIBS_libvlccore) \ + libvlccore_la_DEPENDENCIES = libvlccore.sym + if HAVE_WIN32 + libvlccore_la_DEPENDENCIES += libvlc_win32_rc.$(OBJEXT) +-libvlccore_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version \ +- -Wc,--static -Wc,-static-libgcc ++libvlccore_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version + endif + if HAVE_OS2 + libvlccore_la_LDFLAGS += -avoid-version +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch b/mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch new file mode 100644 index 0000000000..e5e690da97 --- /dev/null +++ b/mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch @@ -0,0 +1,45 @@ +From 0a256df8495ff86a9afcfe1edc571f34e2d81532 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 22 Nov 2014 22:27:10 +0000 +Subject: [PATCH 6/6] Search for freeaddrinfo in SOCKET_LIBS + +.. using system-specifc headers so that the declaration +includes the correct calling convention. + +Reverts one of the two changes from 888bc8. +--- + configure.ac | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index d576265..c790c83 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -298,7 +298,6 @@ case "${host_os}" in + *os2*) + SYS=os2 + LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem" +- AC_LIBOBJ([freeaddrinfo]) + ;; + *) + SYS="${host_os}" +@@ -649,6 +648,16 @@ AC_LINK_IFELSE([ + inet_pton(AF_INET, "127.0.0.1", dst); + ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])]) + AC_CHECK_FUNCS([if_nameindex if_nametoindex]) ++AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([#ifdef _WIN32 ++ #include ++ #include ++ #else ++ #include ++ #include ++ #endif], [ ++ freeaddrinfo(0); ++ ])],[AC_DEFINE([HAVE_FREEADDRINFO],[1],[Define to 1 if you have freeaddrinfo function])],[AC_LIBOBJ([freeaddrinfo])]) + VLC_RESTORE_FLAGS + + AS_IF([test -n "$SOCKET_LIBS"], [ +-- +2.1.3 + diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 4829b6a578..6dcd02e898 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.59171.b80d2ab +pkgver=3.0.0.59184.bca2a9e pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -111,19 +111,17 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re "${_realname}"::"git://git.videolan.org/${_realname}.git" 0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch 0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch - 0003-qt-static-plugin.patch - 0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - 0005-fix-some-time-includes.patch - 0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch - 0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch) + 0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch + 0004-fix-some-time-includes.patch + 0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch + 0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch) md5sums=('SKIP' - '9bec11cf193b3a2eacab7b7b64681295' - 'a85b0e279940f78cb167a962b402ffc1' - '0b95fc8830cf5de744cd82d7f3890009' - 'a214a27e021a4f214f1d27d8e5c272e7' - '9aea8e950cc3bead661a58e369121d54' - '47f2972236502012f7c1ece69ab94893' - '6cb4076521e91b80ce1979668f087b91') + 'c2a4338d8c9396054c1ed45fae221470' + '13f5a8bf897b253e0d9626a5ae79bc8d' + 'c53c41b440eb42e7a2cda9109a1651c4' + '82e8ef228dd3702210f31bbd31f4fe94' + '8cd35991a69b14a1c3ab3b6faa9f15bc' + 'de3700133876d218460f4b0ec6779f55') pkgver() { cd $_realname @@ -140,11 +138,10 @@ prepare() { git am "${srcdir}"/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch - git am "${srcdir}"/0003-qt-static-plugin.patch - git am "${srcdir}"/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - git am "${srcdir}"/0005-fix-some-time-includes.patch - git am "${srcdir}"/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch - git am "${srcdir}"/0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch + git am "${srcdir}"/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch + git am "${srcdir}"/0004-fix-some-time-includes.patch + git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch + git am "${srcdir}"/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch ./bootstrap From e23565410c5ebac50d574d87824822c712ece0de Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 25 Nov 2014 21:56:19 +0000 Subject: [PATCH 0023/2060] vlc-git: Remove unused patches --- ...pass-static-to-pkg-config-if-SYS-min.patch | 26 --------- .../0005-fix-some-time-includes.patch | 40 ------------- ...fer-the-static-libraries-when-creati.patch | 58 ------------------- ...arch-for-freeaddrinfo-in-SOCKET_LIBS.patch | 35 ----------- 4 files changed, 159 deletions(-) delete mode 100644 mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch delete mode 100644 mingw-w64-vlc-git/0005-fix-some-time-includes.patch delete mode 100644 mingw-w64-vlc-git/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch delete mode 100644 mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch diff --git a/mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch b/mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch deleted file mode 100644 index 7f172b77bc..0000000000 --- a/mingw-w64-vlc-git/0004-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 1b4fb719f3f02aff33ae4644b499a09887819e62 Mon Sep 17 00:00:00 2001 -From: martell -Date: Sat, 22 Nov 2014 22:15:35 +0000 -Subject: [PATCH 4/7] MinGW-w64: don't pass --static to pkg-config if SYS = - mingw32 - ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index b8ccc8a..d576265 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -802,7 +802,7 @@ PKG_PROG_PKG_CONFIG() - - dnl On some OS we need static linking - AS_IF([test -n "${PKG_CONFIG}" ],[ -- AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[ -+ AS_IF([test "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[ - PKG_CONFIG="${PKG_CONFIG} --static" - ]) - ]) --- -2.1.3 - diff --git a/mingw-w64-vlc-git/0005-fix-some-time-includes.patch b/mingw-w64-vlc-git/0005-fix-some-time-includes.patch deleted file mode 100644 index ddebd8e59a..0000000000 --- a/mingw-w64-vlc-git/0005-fix-some-time-includes.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 1c621a9c7dafe365623bc2c7199a52736f0a3983 Mon Sep 17 00:00:00 2001 -From: Martell -Date: Tue, 25 Nov 2014 12:22:09 +0000 -Subject: [PATCH] fix some time includes - ---- - modules/demux/mkv/mkv.hpp | 4 +--- - src/win32/thread.c | 1 + - 2 files changed, 2 insertions(+), 3 deletions(-) - -diff --git a/modules/demux/mkv/mkv.hpp b/modules/demux/mkv/mkv.hpp -index 8c5af80..392b9e7 100644 ---- a/modules/demux/mkv/mkv.hpp -+++ b/modules/demux/mkv/mkv.hpp -@@ -45,9 +45,7 @@ - #include - #include - --#ifdef HAVE_TIME_H --# include /* time() */ --#endif -+#include - - #include - #include -diff --git a/src/win32/thread.c b/src/win32/thread.c -index 7dcfc4c..9bc787d 100644 ---- a/src/win32/thread.c -+++ b/src/win32/thread.c -@@ -37,6 +37,7 @@ - #include - #include - #include -+#include - - /*** Static mutex and condition variable ***/ - static vlc_mutex_t super_mutex; --- -2.1.3 - diff --git a/mingw-w64-vlc-git/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch b/mingw-w64-vlc-git/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch deleted file mode 100644 index 746573fa60..0000000000 --- a/mingw-w64-vlc-git/0006-Revert-Win32-prefer-the-static-libraries-when-creati.patch +++ /dev/null @@ -1,58 +0,0 @@ -From fb6b1c13c81dfbd6bb4b7d11463105a3fe62d260 Mon Sep 17 00:00:00 2001 -From: martell -Date: Sat, 22 Nov 2014 22:15:37 +0000 -Subject: [PATCH 6/7] Revert "Win32: prefer the static libraries when creating - the dlls" - -This reverts commit 417b6eb0f09dc73984a7dba2aa42c9d8683d5294. ---- - lib/Makefile.am | 3 +-- - modules/common.am | 3 +-- - src/Makefile.am | 3 +-- - 3 files changed, 3 insertions(+), 6 deletions(-) - -diff --git a/lib/Makefile.am b/lib/Makefile.am -index be1b6be..c53fe08 100644 ---- a/lib/Makefile.am -+++ b/lib/Makefile.am -@@ -64,8 +64,7 @@ libvlc_la_LDFLAGS = \ - libvlc_la_DEPENDENCIES = libvlc.sym - if HAVE_WIN32 - libvlc_la_DEPENDENCIES += ../src/libvlc_win32_rc.$(OBJEXT) --libvlc_la_LDFLAGS += -Wl,../src/libvlc_win32_rc.$(OBJEXT) -avoid-version \ -- -Wc,--static -Wc,-static-libgcc -+libvlc_la_LDFLAGS += -Wl,../src/libvlc_win32_rc.$(OBJEXT) -avoid-version - endif - if HAVE_OS2 - libvlc_la_LDFLAGS += -avoid-version -diff --git a/modules/common.am b/modules/common.am -index c3b3f8e..9bb5143 100644 ---- a/modules/common.am -+++ b/modules/common.am -@@ -33,8 +33,7 @@ AM_LDFLAGS = \ - -no-undefined \ - $(top_builddir)/compat/libcompat.la $(LTLIBVLCCORE) - if HAVE_WIN32 --AM_LDFLAGS += $(top_builddir)/modules/module.rc.lo \ -- -Wc,--static -Wc,-static-libgcc -+AM_LDFLAGS += $(top_builddir)/modules/module.rc.lo - endif - - SUFFIXES = .asm -diff --git a/src/Makefile.am b/src/Makefile.am -index e200669..9d724c9 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -190,8 +190,7 @@ libvlccore_la_LIBADD = $(LIBS_libvlccore) \ - libvlccore_la_DEPENDENCIES = libvlccore.sym - if HAVE_WIN32 - libvlccore_la_DEPENDENCIES += libvlc_win32_rc.$(OBJEXT) --libvlccore_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version \ -- -Wc,--static -Wc,-static-libgcc -+libvlccore_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version - endif - if HAVE_OS2 - libvlccore_la_LDFLAGS += -avoid-version --- -2.1.3 - diff --git a/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch b/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch deleted file mode 100644 index 21af890641..0000000000 --- a/mingw-w64-vlc-git/0007-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 9ff8ccc7cbc48c797d6fc214638e24f2aadb8c5a Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Sat, 22 Nov 2014 22:27:10 +0000 -Subject: [PATCH 7/7] Search for freeaddrinfo in SOCKET_LIBS - -.. using system-specifc headers so that the declaration -includes the correct calling convention. ---- - configure.ac | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/configure.ac b/configure.ac -index d576265..6e4656f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -649,6 +649,16 @@ AC_LINK_IFELSE([ - inet_pton(AF_INET, "127.0.0.1", dst); - ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])]) - AC_CHECK_FUNCS([if_nameindex if_nametoindex]) -+AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([#ifdef _WIN32 -+ #include -+ #include -+ #else -+ #include -+ #include -+ #endif], [ -+ freeaddrinfo(0); -+ ])],[AC_DEFINE([HAVE_FREEADDRINFO],[1],[Define to 1 if you have freeaddrinfo function])],[AC_LIBOBJ([freeaddrinfo])]) - VLC_RESTORE_FLAGS - - AS_IF([test -n "$SOCKET_LIBS"], [ --- -2.1.3 - From 413f8ef3063bf027bf2c0b335ff8063373f20f99 Mon Sep 17 00:00:00 2001 From: martell Date: Tue, 25 Nov 2014 22:10:10 +0000 Subject: [PATCH 0024/2060] vlc-git: relocation patch --- ...0008-Use-libdir-for-plugins-on-msys2.patch | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 mingw-w64-vlc-git/0008-Use-libdir-for-plugins-on-msys2.patch diff --git a/mingw-w64-vlc-git/0008-Use-libdir-for-plugins-on-msys2.patch b/mingw-w64-vlc-git/0008-Use-libdir-for-plugins-on-msys2.patch new file mode 100644 index 0000000000..016ce080b8 --- /dev/null +++ b/mingw-w64-vlc-git/0008-Use-libdir-for-plugins-on-msys2.patch @@ -0,0 +1,33 @@ +From ee483345ea9e4dd8bc9bf2859123c70b73e07005 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Tue, 25 Nov 2014 21:20:09 +0000 +Subject: [PATCH] Use libdir for plugins on msys2 + +--- + src/win32/dirs.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/src/win32/dirs.c b/src/win32/dirs.c +index 0ec1087..1d74501 100644 +--- a/src/win32/dirs.c ++++ b/src/win32/dirs.c +@@ -63,7 +63,15 @@ char *config_GetLibDir (void) + goto error; + *file = L'\0'; + +- return FromWide (wpath); ++ file = wcsrchr (wpath, L'\\'); ++ if (file == NULL) ++ goto error; ++ *file = L'\0'; ++ ++ wchar_t wpathlib[MAX_PATH]; ++ wsprintf(wpathlib,L"%s\\lib\\vlc", wpath); ++ ++ return FromWide (wpathlib); + error: + abort (); + #endif +-- +2.1.3 + From c46a7d61ce7fe1aa280d33a5d5689b085ab9b4ef Mon Sep 17 00:00:00 2001 From: martell Date: Tue, 25 Nov 2014 22:20:48 +0000 Subject: [PATCH 0025/2060] vlc-git: use relocation patch --- mingw-w64-vlc-git/PKGBUILD | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 6dcd02e898..c115d16c86 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -114,14 +114,16 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re 0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch 0004-fix-some-time-includes.patch 0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch - 0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch) + 0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch + 0007-Use-libdir-for-plugins-on-msys2.patch) md5sums=('SKIP' 'c2a4338d8c9396054c1ed45fae221470' '13f5a8bf897b253e0d9626a5ae79bc8d' 'c53c41b440eb42e7a2cda9109a1651c4' '82e8ef228dd3702210f31bbd31f4fe94' '8cd35991a69b14a1c3ab3b6faa9f15bc' - 'de3700133876d218460f4b0ec6779f55') + 'de3700133876d218460f4b0ec6779f55' + 'b6a010849631177493135b3ad7c5f784') pkgver() { cd $_realname @@ -143,6 +145,10 @@ prepare() { git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch git am "${srcdir}"/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch +if [ "${_variant}" != "winrt" ]; then + git am "${srcdir}"/0007-Use-libdir-for-plugins-on-msys2.patch +fi + ./bootstrap sed -i -e 's:truetype/freefont:TTF:g' modules/text_renderer/freetype.c From d1565d52e04af1794bbb30c42f87fbdaeba88753 Mon Sep 17 00:00:00 2001 From: martell Date: Tue, 25 Nov 2014 22:31:34 +0000 Subject: [PATCH 0026/2060] vlc-git: leave plugins in libdir --- mingw-w64-vlc-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index c115d16c86..7838dc3e2e 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -269,5 +269,5 @@ package() { done #todo: patch vlc for plugins to be in share directory - mv ${pkgdir}/${MINGW_PREFIX}/lib/vlc/plugins ${pkgdir}/${MINGW_PREFIX}/bin + #mv ${pkgdir}/${MINGW_PREFIX}/lib/vlc/plugins ${pkgdir}/${MINGW_PREFIX}/bin } From 1f3bf2cfecc32b02ceacfc4c4ca1f6aa337acb04 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 26 Nov 2014 18:34:32 +0300 Subject: [PATCH 0027/2060] firebird-git: New package. Very WIP --- mingw-w64-firebird-git/PKGBUILD | 73 +++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 mingw-w64-firebird-git/PKGBUILD diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD new file mode 100644 index 0000000000..61b6d0be93 --- /dev/null +++ b/mingw-w64-firebird-git/PKGBUILD @@ -0,0 +1,73 @@ +# Maintainer: Alexey Pavlov + +_realname='firebird' +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=r43988.06f0675 +pkgrel=1 +pkgdesc="Cross-platform relational database offering many ANSI SQL standard features (mingw-w64)" +url="http://www.firebirdsql.org/" +license=('custom') +arch=('any') +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +depends=( + "${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-icu" + "${MINGW_PACKAGE_PREFIX}-libtommath" # For Firebird 3.x + ) +makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird presence of system btyacc + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-libatomic_ops" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git" + ) +options=('debug' '!strip') +source=("${_realname}"::"git+https://github.com/Alexpux/firebird.git#branch=mingw-w64-2_5" + #"${_realname}"::"git+file:///v/Sources/GNU/firebird#branch=mingw-w64-2_5" + ) +sha256sums=('SKIP') + +pkgver() { + cd "${_realname}" + printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${_realname}" + NOCONFIGURE=1 ./autogen.sh +} + +build() { + #mkdir -p "build-${MINGW_CHOST}" + #cd "build-${MINGW_CHOST}" + local _debug_conf= + if check_option "debug" "y"; then + _debug_conf="--enable-debug" + fi + + cd ${srcdir}/${_realname} + + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared \ + ${_debug_conf} \ + --disable-rpath \ + --disable-superserver \ + --with-fbdoc=${MINGW_PREFIX}/share/${_realname}/doc \ + --with-system-icu + + CC=${MINGW_PREFIX}/bin/gcc \ + make -j1 +} + +package() { + cd ${srcdir}/${_realname} + + mkdir -p ${pkgdir} + cp -rf gen/firebird ${pkgdir}${MINGW_PREFIX} + cp -rf ${srcdir}/${_realname}/doc ${pkgdir}${MINGW_PREFIX}/ +} From afb964c58ffdcb26085a16522dad106d6ac53336 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 26 Nov 2014 21:07:32 +0000 Subject: [PATCH 0028/2060] v8: Fix options bug Fixes https://github.com/Alexpux/MINGW-packages/issues/365 --- mingw-w64-v8/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-v8/PKGBUILD b/mingw-w64-v8/PKGBUILD index ff2cda8532..c50aed054b 100644 --- a/mingw-w64-v8/PKGBUILD +++ b/mingw-w64-v8/PKGBUILD @@ -13,7 +13,7 @@ license=("BSD") makedepends=("gyp-svn") depends=("${MINGW_PACKAGE_PREFIX}-readline" "${MINGW_PACKAGE_PREFIX}-icu") -options=('!emptydirs !strip') +options=('!emptydirs' '!strip') source=("https://github.com/v8/v8/archive/${pkgver}.tar.gz" "0000-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch" "0001-Include-win32-headers-h-before-undef-MemoryBarrier.patch" From 2bf3c83f4c531eb1aba879ad37f20cc6d14d5aae Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 27 Nov 2014 09:25:18 +0300 Subject: [PATCH 0029/2060] vlc-git: Fix patches names. --- mingw-w64-vlc-git/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 7838dc3e2e..6aefdc3a8f 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.59184.bca2a9e +pkgver=3.0.0.59187.bc270b0 pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -115,7 +115,7 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re 0004-fix-some-time-includes.patch 0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch 0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch - 0007-Use-libdir-for-plugins-on-msys2.patch) + 0008-Use-libdir-for-plugins-on-msys2.patch) md5sums=('SKIP' 'c2a4338d8c9396054c1ed45fae221470' '13f5a8bf897b253e0d9626a5ae79bc8d' @@ -146,7 +146,7 @@ prepare() { git am "${srcdir}"/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch if [ "${_variant}" != "winrt" ]; then - git am "${srcdir}"/0007-Use-libdir-for-plugins-on-msys2.patch + git am "${srcdir}"/0008-Use-libdir-for-plugins-on-msys2.patch fi ./bootstrap From 44de856ef7ecb73d2a74f2a69c44836a0a877526 Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 27 Nov 2014 11:58:30 +0000 Subject: [PATCH 0030/2060] premake4: new package --- mingw-w64-premake/PKGBUILD | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 mingw-w64-premake/PKGBUILD diff --git a/mingw-w64-premake/PKGBUILD b/mingw-w64-premake/PKGBUILD new file mode 100644 index 0000000000..975ed96296 --- /dev/null +++ b/mingw-w64-premake/PKGBUILD @@ -0,0 +1,24 @@ +# Maintainer: Martell Malone + +_realname=premake +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=4.3 +pkgrel=1 +pkgdesc="A build configuration tool. Describe your build using Lua and generate \ +the project files for your specific toolset." +arch=('any') +url="http://premake.sourceforge.net" +license=('GPL') + +source=("http://downloads.sourceforge.net/sourceforge/premake/premake-${pkgver}-src.zip") +md5sums=('8cfafee76f9665c93b2e9ad15b015eb7') + +build() { + cd "$srcdir/${_realname}-${pkgver}/build/gmake.windows" + make +} + +package() { + cd ${srcdir}/${_realname}-${pkgver} + install -Dm755 bin/release/premake4 ${pkgdir}${MINGW_PREFIX}/bin/premake4 +} From 57827db5b9da81bb4171316e7760591a08ef3f53 Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 27 Nov 2014 12:28:46 +0000 Subject: [PATCH 0031/2060] nanovg-git: new package --- mingw-w64-nanovg-git/PKGBUILD | 38 +++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 mingw-w64-nanovg-git/PKGBUILD diff --git a/mingw-w64-nanovg-git/PKGBUILD b/mingw-w64-nanovg-git/PKGBUILD new file mode 100644 index 0000000000..0cd822a65e --- /dev/null +++ b/mingw-w64-nanovg-git/PKGBUILD @@ -0,0 +1,38 @@ +# Maintainer: Martell Malone + +_realname=nanovg +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=r252.90862ce +pkgrel=1 +pkgdesc="Small antialiased vector graphics rendering library for OpenGL" +arch=('any') +url="https://github.com/memononen/nanovg" +license=('ZLIB') +makedepends=("git" "${MINGW_PACKAGE_PREFIX}-premake") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") + +source=("$pkgname"::'git://github.com/memononen/nanovg.git') +md5sums=('SKIP') +options=('staticlibs') + +pkgver() { + cd "$srcdir/$pkgname" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +build() { + cd "$srcdir/$pkgname" + premake4 gmake + cd build + make nanovg +} + +package() { + install -v -Dm644 "$srcdir/$pkgname/build/libnanovg.a" "${pkgdir}${MINGW_PREFIX}/lib/libnanovg.a" || exit 1 + install -v -Dm644 "$srcdir/$pkgname/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE.txt" || exit 1 + install -v -Dm644 "$srcdir/$pkgname/src/nanovg.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg.h" || exit 1 + install -v -Dm644 "$srcdir/$pkgname/src/nanovg_gl.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl.h" || exit 1 + install -v -Dm644 "$srcdir/$pkgname/src/nanovg_gl_utils.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl_utils.h" || exit 1 + install -v -Dm644 "$srcdir/$pkgname/src/fontstash.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/fontstash.h" || exit 1 +} \ No newline at end of file From b91007289868e86891c813e2be116218ab0febf5 Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 27 Nov 2014 12:30:17 +0000 Subject: [PATCH 0032/2060] nanovg-git: fix license location --- mingw-w64-nanovg-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-nanovg-git/PKGBUILD b/mingw-w64-nanovg-git/PKGBUILD index 0cd822a65e..5fac2dae65 100644 --- a/mingw-w64-nanovg-git/PKGBUILD +++ b/mingw-w64-nanovg-git/PKGBUILD @@ -30,7 +30,7 @@ build() { package() { install -v -Dm644 "$srcdir/$pkgname/build/libnanovg.a" "${pkgdir}${MINGW_PREFIX}/lib/libnanovg.a" || exit 1 - install -v -Dm644 "$srcdir/$pkgname/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE.txt" || exit 1 + install -v -Dm644 "$srcdir/$pkgname/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/LICENSE.txt" || exit 1 install -v -Dm644 "$srcdir/$pkgname/src/nanovg.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg.h" || exit 1 install -v -Dm644 "$srcdir/$pkgname/src/nanovg_gl.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl.h" || exit 1 install -v -Dm644 "$srcdir/$pkgname/src/nanovg_gl_utils.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl_utils.h" || exit 1 From 40a22300b41424208e11d3b03c513e9e16851989 Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 27 Nov 2014 13:16:45 +0000 Subject: [PATCH 0033/2060] nanovg-git: make sure mingw gcc is used --- mingw-w64-nanovg-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-nanovg-git/PKGBUILD b/mingw-w64-nanovg-git/PKGBUILD index 5fac2dae65..8269e7c787 100644 --- a/mingw-w64-nanovg-git/PKGBUILD +++ b/mingw-w64-nanovg-git/PKGBUILD @@ -25,7 +25,7 @@ build() { cd "$srcdir/$pkgname" premake4 gmake cd build - make nanovg + CC=gcc CXX=g++ make nanovg } package() { From e1ad95e4d47cc559e8e1022e65fb8fd07e49cca9 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 27 Nov 2014 22:13:39 +0000 Subject: [PATCH 0034/2060] KDEF5: kimageformat (WIP) --- mingw-w64-kimageformats-qt5/PKGBUILD | 52 ++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mingw-w64-kimageformats-qt5/PKGBUILD diff --git a/mingw-w64-kimageformats-qt5/PKGBUILD b/mingw-w64-kimageformats-qt5/PKGBUILD new file mode 100644 index 0000000000..8fa071f6a5 --- /dev/null +++ b/mingw-w64-kimageformats-qt5/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer (MSYS2): Ray Donnelly + +_variant=-static +#_variant=-shared +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "kimageformats" +pkgver=5.3.0 +pkgrel=1 +arch=('any') +url=('https://projects.kde.org/projects/frameworks/${_basename}') +pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") +md5sums=('8aec8779d05c83e31cb379efd5aca8c7') + +prepare() { + cd "${srcdir}"/${_basename}-${pkgver} +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} From afce2d0d23cca277a7c893f80227e3e5f23c6850 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 28 Nov 2014 12:04:45 +0300 Subject: [PATCH 0035/2060] qt5: WIP upgrading to 5.4.0-rc --- .../0006-qt-5.3.0-win_flex-replace.patch | 2 +- .../0017-qt-5.3.0-fix-examples-building.patch | 4 +- ...25-qt-5.3.1-force-using-make-on-msys.patch | 0 .../0026-qt-5.3.1-webkit-detect-tools.patch | 2 +- ...use-of-system-vs.-shell-path-list-se.patch | 2 +- ...ng-and-path-separators-in-qtPrepareT.patch | 19 +++++---- mingw-w64-qt5/PKGBUILD | 42 ++++++++++--------- 7 files changed, 38 insertions(+), 33 deletions(-) mode change 100755 => 100644 mingw-w64-qt5/0025-qt-5.3.1-force-using-make-on-msys.patch mode change 100755 => 100644 mingw-w64-qt5/0026-qt-5.3.1-webkit-detect-tools.patch diff --git a/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch b/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch index 9ea7aedfd3..aef0f1896f 100644 --- a/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch +++ b/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch @@ -29,7 +29,7 @@ diff -urN --ignore-all-space a/qtwebkit/Tools/qmake/mkspecs/features/default_pre # A newer version of flex is required on Windows. At the moment the only # one that appears to provide binaries and is not cygwin is winflex. FLEX = flex --win32: FLEX = win_flex +-equals(QMAKE_HOST.os, Windows): FLEX = win_flex BIN_EXTENSION = win32: BIN_EXTENSION = .exe diff --git a/mingw-w64-qt5/0017-qt-5.3.0-fix-examples-building.patch b/mingw-w64-qt5/0017-qt-5.3.0-fix-examples-building.patch index f170405155..4991954b94 100644 --- a/mingw-w64-qt5/0017-qt-5.3.0-fix-examples-building.patch +++ b/mingw-w64-qt5/0017-qt-5.3.0-fix-examples-building.patch @@ -9,8 +9,8 @@ OBJECTS_DIR = tmp MOC_DIR = tmp ---- x86_64/qtdeclarative/examples/qml/tutorials/extending/chapter6-plugins/import/import.pro.orig 2014-04-29 14:13:34.761600000 +0400 -+++ x86_64/qtdeclarative/examples/qml/tutorials/extending/chapter6-plugins/import/import.pro 2014-04-29 14:14:50.577600000 +0400 +--- x86_64/qtdeclarative/examples/qml/tutorials/extending-qml/chapter6-plugins/import/import.pro.orig 2014-04-29 14:13:34.761600000 +0400 ++++ x86_64/qtdeclarative/examples/qml/tutorials/extending-qml/chapter6-plugins/import/import.pro 2014-04-29 14:14:50.577600000 +0400 @@ -2,7 +2,7 @@ CONFIG += plugin QT += qml quick diff --git a/mingw-w64-qt5/0025-qt-5.3.1-force-using-make-on-msys.patch b/mingw-w64-qt5/0025-qt-5.3.1-force-using-make-on-msys.patch old mode 100755 new mode 100644 diff --git a/mingw-w64-qt5/0026-qt-5.3.1-webkit-detect-tools.patch b/mingw-w64-qt5/0026-qt-5.3.1-webkit-detect-tools.patch old mode 100755 new mode 100644 index 5bbe24193b..2ccf835a55 --- a/mingw-w64-qt5/0026-qt-5.3.1-webkit-detect-tools.patch +++ b/mingw-w64-qt5/0026-qt-5.3.1-webkit-detect-tools.patch @@ -26,7 +26,7 @@ # on Linux and Mac OS X. On Windows we do have a convenience copy in # Qt5's top-level repository, so let's add that to the PATH if we can # find it. -- win32 { +- equals(QMAKE_HOST.os, Windows) { + win32:isEmpty(QMAKE_SH) { GNUTOOLS_DIR=$$[QT_HOST_DATA]/../gnuwin32/bin exists($$GNUTOOLS_DIR/gperf.exe) { diff --git a/mingw-w64-qt5/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch b/mingw-w64-qt5/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch index bdc8e42245..2b3bb7c465 100644 --- a/mingw-w64-qt5/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch +++ b/mingw-w64-qt5/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch @@ -49,7 +49,7 @@ index 790724c..eeaafcc 100644 javac.input = JAVASOURCES javac.output = $$CLASS_DIR javac.CONFIG += combine --javac.commands = javac -source 6 -target 6 -Xlint:unchecked -bootclasspath $$ANDROID_JAR_FILE -cp $$shell_quote($$system_path($$join(JAVACLASSPATH, $$DIRLIST_SEP))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} +-javac.commands = javac -source 6 -target 6 -Xlint:unchecked -bootclasspath $$ANDROID_JAR_FILE -cp $$shell_quote($$system_path($$join(JAVACLASSPATH, $$DIRLIST_SEPARATOR))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} +javac.commands = javac -source 6 -target 6 -Xlint:unchecked -bootclasspath $$ANDROID_JAR_FILE -cp $$shell_quote($$shell_path($$join(JAVACLASSPATH, $$QMAKE_DIRLIST_SEP))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} # Force rebuild every time, because we don't know the paths of the destination files # as they depend on the code. diff --git a/mingw-w64-qt5/0029-qt-5.3.1-Revert-fix-quoting-and-path-separators-in-qtPrepareT.patch b/mingw-w64-qt5/0029-qt-5.3.1-Revert-fix-quoting-and-path-separators-in-qtPrepareT.patch index f52a7451e2..f7db84cd30 100644 --- a/mingw-w64-qt5/0029-qt-5.3.1-Revert-fix-quoting-and-path-separators-in-qtPrepareT.patch +++ b/mingw-w64-qt5/0029-qt-5.3.1-Revert-fix-quoting-and-path-separators-in-qtPrepareT.patch @@ -13,9 +13,9 @@ diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.p index 9a4d80e..5dd6987 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf -@@ -191,30 +191,26 @@ defineTest(qtAddRpathLink) { +@@ -191,31 +191,27 @@ defineTest(qtAddRpathLink) { - # variable, default, [suffix for variable for system() use] + # variable, default, [suffix for variable for system() use], [prepare primary variable for system() use] defineTest(qtPrepareTool) { - cmd = $$eval(QT_TOOL.$${2}.binary) - isEmpty(cmd) { @@ -40,19 +40,20 @@ index 9a4d80e..5dd6987 100644 } } QT_TOOL_ENV += $$eval(QT_TOOL.$${2}.envvars) - !isEmpty(3) { + !isEmpty(3)|!isEmpty(4) { - $$1$$3 = - for (arg, cmd): \ - $$1$$3 += $$system_quote($$arg) + $$1$$3 = $$system_path($$eval($$1)) qtAddTargetEnv($$1$$3, QT_TOOL.$${2}.depends, system) } -- $$1 = -- for (arg, cmd): \ -- $$1 += $$shell_quote($$arg) -+ $$1 = $$shell_path($$eval($$1)) - qtAddTargetEnv($$1, QT_TOOL.$${2}.depends, ) - } + isEmpty(4) { +- $$1 = +- for (arg, cmd): \ +- $$1 += $$shell_quote($$arg) ++ $$1 = $$shell_path($$eval($$1)) + qtAddTargetEnv($$1, QT_TOOL.$${2}.depends, ) + } diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf index 1d3e88c..f0864f9 100644 diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index cd572ea3b3..905d975470 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -75,7 +75,7 @@ fi _opengl=desktop _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.3.2 +_ver_base=5.4.0-rc pkgver=${_ver_base//-/} pkgrel=4 arch=('any') @@ -132,9 +132,10 @@ makedepends=("bison" groups=("${MINGW_PACKAGE_PREFIX}-qt" "${MINGW_PACKAGE_PREFIX}-qt5") options=('!strip' 'staticlibs' 'ccache') _pkgfqn="qt-everywhere-opensource-src-${_ver_base}" +noextract=(${_pkgfqn}.tar.xz) source=(#"${_pkgfqn}.tar.xz" - #http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ver_base//RC/rc}/single/${_pkgfqn}.tar.xz - http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${_ver_base}/single/${_pkgfqn}.tar.xz + http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ver_base//RC/rc}/single/${_pkgfqn}.tar.xz + #http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${_ver_base}/single/${_pkgfqn}.tar.xz #http://download.qt-project.org/snapshots/qt/${pkgver%.*}/${_ver_base}/2014-05-07_85/src/qt-everywhere-opensource-src-${_ver_base}.tar.xz #"qt3d"::"git://gitorious.org/qt/qt3d.git" 0001-Add-link-time-optimization-support-for-Clang-GCC-and.patch @@ -172,13 +173,13 @@ source=(#"${_pkgfqn}.tar.xz" 0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch 0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch 0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch) -md5sums=('c4e893678e3d8388ab04d059523d1d78' +md5sums=('3d371bbc5598af620723a594f9f1a774' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' '356f7fcf93869e92cd232ef70160ab58' 'b0b5cc641cf8ebc2660fa819bede0089' '457b97833220a81f542f529e7e0c549c' - '89b720a561c4410085a8e4a456f4a39d' + 'c09d0a1b6a08883e307c7f33dc2d2157' '0f2e3a2f790b07442f0964f4f2f96596' '8ce562d034bb19aaec28ab3abe79bbab' 'ea5f1d5bf2ea4c1d69e6b5de0765adfb' @@ -189,7 +190,7 @@ md5sums=('c4e893678e3d8388ab04d059523d1d78' 'c0721e53378a24b8d013c7db59f14c17' '0d7ce23a99b3f15d176c09e617a437f9' '40ba7d8134a696d07be5be6692cfaca7' - 'f080b698ff724093e95a7b4f22b407eb' + '23f6818466f6b6646c13549110376022' 'e65e3ed10e2dd98d5402321657c809c4' '9ee6524aa78b5e4fbb47f10dc3b267a4' 'acb49bb963a23b15bc7d1a93d8896bee' @@ -198,10 +199,10 @@ md5sums=('c4e893678e3d8388ab04d059523d1d78' '09aaa20fe92aa3fb8eaa36f805503d7d' 'f6cd909c1dd549dea769734f6fe7bd73' '3b550bd6c58d09aa6729987ef16fed65' - 'c89d5c00376d64350c193c4f2459d807' + '47c0f36b9de94cf878cd29b7e2b6ea1b' '01e8030718f088178559a28958a05350' - '288dac91744ddf4d3ac39544fb381466' - 'ede60e9e199e57052e1df95efb65d232' + 'b1007411b47a85813e368e003885469e' + 'a264f298702e70007820ab2f37facffb' '4b60988f913708dd8ee3a79a2eac4cae' 'e009d2a1c7edc41c1f5974883d4f38b2' '516036cb0721d1603009e01f5bd728aa' @@ -234,17 +235,20 @@ pkg_config_qt5() { } prepare() { - # cd ${srcdir} + cd ${startdir} + [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} + tar -xJvf ${startdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true + # cp -rf qt3d ${_pkgfqn}/ - cd ${_pkgfqn} + cd ${srcdir}/${_pkgfqn} # MSYS2 gperf cannot handle \r\n. find . -name "*.gperf" -exec dos2unix "{}" \; - pushd qtbase > /dev/null - rm -f mkspecs/features/ltcg.prf > /dev/null 2>&1 || true - patch -p1 -i ${srcdir}/0001-Add-link-time-optimization-support-for-Clang-GCC-and.patch - popd + #pushd qtbase > /dev/null + # rm -f mkspecs/features/ltcg.prf > /dev/null 2>&1 || true + # patch -p1 -i ${srcdir}/0001-Add-link-time-optimization-support-for-Clang-GCC-and.patch + #popd patch -p1 -i ${srcdir}/0001-qt-5.3.0-oracle-driver-prompt.patch patch -p1 -i ${srcdir}/0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch @@ -260,7 +264,7 @@ prepare() { # ActiveQt (which is always built statically), libQt5OpenGLExtensions{d}.a, libQt5PlatformSupport{d}.a # libQt5QmlDevTools.a, libQt5UiTools{d}.a libqtmain{d}.a patch -p1 -i ${srcdir}/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch - patch -p1 -i ${srcdir}/0009-qt-5.3.0-qmlimportscanner-Ensure-the-correct-variant-is-run.patch + ###patch -p1 -i ${srcdir}/0009-qt-5.3.0-qmlimportscanner-Ensure-the-correct-variant-is-run.patch patch -p1 -i ${srcdir}/0010-qt-5.3.0-qdoc-increase-stack-size-for-win32-g-too.patch patch -p1 -i ${srcdir}/0011-qt-5.3.0-win32-g++-allow-static-dbus-1.patch # The next patch needs some work. It's moving a block of shell script un-necessarily @@ -312,9 +316,9 @@ prepare() { # of it happening near 0. His take on it is that we should have different # target files for RegExpJitTables.h for each of release and debug. patch -p1 -i ${srcdir}/0031-qt-5.3.1-Fix-masm-pri-build-race-condition.patch - patch -p1 -i ${srcdir}/0032-qt-5.3.2-Disable-jitted-Regexp-for-Mingw-64-bit-94712.patch - patch -p1 -i ${srcdir}/0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch - patch -p1 -i ${srcdir}/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch + ###patch -p1 -i ${srcdir}/0032-qt-5.3.2-Disable-jitted-Regexp-for-Mingw-64-bit-94712.patch + ###patch -p1 -i ${srcdir}/0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch + ###patch -p1 -i ${srcdir}/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch patch -p1 -i ${srcdir}/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch # See: https://bugreports.qt-project.org/browse/QTBUG-37902 From a0f1ea05a6b253f7fde77155670d7542413a913e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 28 Nov 2014 15:06:44 +0300 Subject: [PATCH 0036/2060] mingw-w64 update. Add qsort_s declaration. --- mingw-w64-crt-git/PKGBUILD | 11 ++++-- mingw-w64-crt-git/qsort_s.diff | 63 ++++++++++++++++++++++++++++++ mingw-w64-headers-git/PKGBUILD | 9 +++-- mingw-w64-headers-git/qsort_s.diff | 63 ++++++++++++++++++++++++++++++ 4 files changed, 139 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-crt-git/qsort_s.diff create mode 100644 mingw-w64-headers-git/qsort_s.diff diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index c9b599b2c2..7cca039bcc 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _ver_base=4.0.0 -pkgver=4.0.0.4336.6a4cb01 +pkgver=4.0.0.4344.b287205 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -16,8 +16,10 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-binuti provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' 'staticlibs' '!buildflags' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=('SKIP') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" + qsort_s.diff) +md5sums=('SKIP' + 'de5beea7c6cb42861606768044fdc519') pkgver() { cd "$srcdir/${_realname}" @@ -25,7 +27,8 @@ pkgver() { } prepare() { - cd ${srcdir}/${_realname}/mingw-w64-crt + cd ${srcdir}/${_realname} + git am ${srcdir}/qsort_s.diff } build() { diff --git a/mingw-w64-crt-git/qsort_s.diff b/mingw-w64-crt-git/qsort_s.diff new file mode 100644 index 0000000000..0ba89e5d32 --- /dev/null +++ b/mingw-w64-crt-git/qsort_s.diff @@ -0,0 +1,63 @@ +From 4eb3c7dffd4f27bcec3a0141de2a2b8448079cac Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 24 Nov 2014 12:38:17 +0300 +Subject: [PATCH] Add qsort_s declarations. Use msvcrt version. + +--- + mingw-w64-crt/lib32/msvcr80.def.in | 1 + + mingw-w64-crt/lib64/msvcr80.def.in | 1 + + mingw-w64-headers/crt/search.h | 1 + + mingw-w64-headers/crt/stdlib.h | 1 + + 4 files changed, 4 insertions(+) + +diff --git a/mingw-w64-crt/lib32/msvcr80.def.in b/mingw-w64-crt/lib32/msvcr80.def.in +index 0d009e2..f3408b9 100644 +--- a/mingw-w64-crt/lib32/msvcr80.def.in ++++ b/mingw-w64-crt/lib32/msvcr80.def.in +@@ -653,6 +653,7 @@ puts + putwc + putwchar + qsort ++qsort_s + raise + rand + rand_s +diff --git a/mingw-w64-crt/lib64/msvcr80.def.in b/mingw-w64-crt/lib64/msvcr80.def.in +index d20cb82..18b8d2d 100644 +--- a/mingw-w64-crt/lib64/msvcr80.def.in ++++ b/mingw-w64-crt/lib64/msvcr80.def.in +@@ -780,6 +780,7 @@ puts + putwc + putwchar + qsort ++qsort_s + raise + rand + rand_s +diff --git a/mingw-w64-headers/crt/search.h b/mingw-w64-headers/crt/search.h +index 144b0f4..dd5f83e 100644 +--- a/mingw-w64-headers/crt/search.h ++++ b/mingw-w64-headers/crt/search.h +@@ -17,6 +17,7 @@ extern "C" { + #define _CRT_ALGO_DEFINED + void *__cdecl bsearch(const void *_Key,const void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); + void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); ++ void __cdecl qsort_s(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(void *,const void *,const void *),void *_Context); + #endif + _CRTIMP void *__cdecl _lfind(const void *_Key,const void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); + _CRTIMP void *__cdecl _lsearch(const void *_Key,void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); +diff --git a/mingw-w64-headers/crt/stdlib.h b/mingw-w64-headers/crt/stdlib.h +index 7743452..8118304 100644 +--- a/mingw-w64-headers/crt/stdlib.h ++++ b/mingw-w64-headers/crt/stdlib.h +@@ -351,6 +351,7 @@ extern "C" { + #define _CRT_ALGO_DEFINED + void *__cdecl bsearch(const void *_Key,const void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); + void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); ++ void __cdecl qsort_s(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(void *,const void *,const void *),void *_Context); + #endif + unsigned short __cdecl _byteswap_ushort(unsigned short _Short); + unsigned long __cdecl _byteswap_ulong (unsigned long _Long); +-- +2.1.3 + diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 98d122de6c..544b41febc 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" _ver_base=4.0.0 -pkgver=4.0.0.4336.6a4cb01 +pkgver=4.0.0.4344.b287205 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" @@ -15,8 +15,10 @@ makedepends=('git') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' '!libtool' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=('SKIP') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" + qsort_s.diff) +md5sums=('SKIP' + 'de5beea7c6cb42861606768044fdc519') pkgver() { cd "$srcdir/$_realname" @@ -25,6 +27,7 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} + git am ${srcdir}/qsort_s.diff } build() { diff --git a/mingw-w64-headers-git/qsort_s.diff b/mingw-w64-headers-git/qsort_s.diff new file mode 100644 index 0000000000..0ba89e5d32 --- /dev/null +++ b/mingw-w64-headers-git/qsort_s.diff @@ -0,0 +1,63 @@ +From 4eb3c7dffd4f27bcec3a0141de2a2b8448079cac Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 24 Nov 2014 12:38:17 +0300 +Subject: [PATCH] Add qsort_s declarations. Use msvcrt version. + +--- + mingw-w64-crt/lib32/msvcr80.def.in | 1 + + mingw-w64-crt/lib64/msvcr80.def.in | 1 + + mingw-w64-headers/crt/search.h | 1 + + mingw-w64-headers/crt/stdlib.h | 1 + + 4 files changed, 4 insertions(+) + +diff --git a/mingw-w64-crt/lib32/msvcr80.def.in b/mingw-w64-crt/lib32/msvcr80.def.in +index 0d009e2..f3408b9 100644 +--- a/mingw-w64-crt/lib32/msvcr80.def.in ++++ b/mingw-w64-crt/lib32/msvcr80.def.in +@@ -653,6 +653,7 @@ puts + putwc + putwchar + qsort ++qsort_s + raise + rand + rand_s +diff --git a/mingw-w64-crt/lib64/msvcr80.def.in b/mingw-w64-crt/lib64/msvcr80.def.in +index d20cb82..18b8d2d 100644 +--- a/mingw-w64-crt/lib64/msvcr80.def.in ++++ b/mingw-w64-crt/lib64/msvcr80.def.in +@@ -780,6 +780,7 @@ puts + putwc + putwchar + qsort ++qsort_s + raise + rand + rand_s +diff --git a/mingw-w64-headers/crt/search.h b/mingw-w64-headers/crt/search.h +index 144b0f4..dd5f83e 100644 +--- a/mingw-w64-headers/crt/search.h ++++ b/mingw-w64-headers/crt/search.h +@@ -17,6 +17,7 @@ extern "C" { + #define _CRT_ALGO_DEFINED + void *__cdecl bsearch(const void *_Key,const void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); + void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); ++ void __cdecl qsort_s(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(void *,const void *,const void *),void *_Context); + #endif + _CRTIMP void *__cdecl _lfind(const void *_Key,const void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); + _CRTIMP void *__cdecl _lsearch(const void *_Key,void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); +diff --git a/mingw-w64-headers/crt/stdlib.h b/mingw-w64-headers/crt/stdlib.h +index 7743452..8118304 100644 +--- a/mingw-w64-headers/crt/stdlib.h ++++ b/mingw-w64-headers/crt/stdlib.h +@@ -351,6 +351,7 @@ extern "C" { + #define _CRT_ALGO_DEFINED + void *__cdecl bsearch(const void *_Key,const void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); + void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); ++ void __cdecl qsort_s(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(void *,const void *,const void *),void *_Context); + #endif + unsigned short __cdecl _byteswap_ushort(unsigned short _Short); + unsigned long __cdecl _byteswap_ulong (unsigned long _Long); +-- +2.1.3 + From 49d1b6d671b667b3e2de4501ba6c65efa7b25b07 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 28 Nov 2014 15:27:09 +0300 Subject: [PATCH 0037/2060] qt5: Fix pkgrel for new release. --- mingw-w64-qt5/PKGBUILD | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 905d975470..205b349d25 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.0-rc pkgver=${_ver_base//-/} -pkgrel=4 +pkgrel=1 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -394,8 +394,6 @@ build() { _extra_incpaths+=("${MINGW_PREFIX}/include/GLSLANG") fi _extra_incpaths+=("-I") - _extra_incpaths+=("${MINGW_PREFIX}/include/noX") - _extra_incpaths+=("-I") _extra_incpaths+=("${MINGW_PREFIX}/include/mariadb") # This *could* be used but we'd have to make sure it's correct for all variants first. From f19c524c6e6dca4c7a4d71aa5dade3dff660e9c7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 28 Nov 2014 15:43:00 +0300 Subject: [PATCH 0038/2060] harfbuzz: Update to 0.9.36 --- mingw-w64-harfbuzz/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 3a040da8fb..89efa4e946 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -2,8 +2,8 @@ _realname=harfbuzz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.35 -pkgrel=2 +pkgver=0.9.36 +pkgrel=1 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/HarfBuzz" @@ -19,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") -sha256sums=('0aa1a8aba6f502321cf6fef3c9d2c73dde48389c5ed1d3615a7691944c2a06ed') +sha256sums=('3bfbf7b016167ee6b2a2f83948fef75cc1253081873d6a91022161815956b9be') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 7d8e716039d4026780cab628fd5f5dfec8617a39 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 28 Nov 2014 15:43:59 +0300 Subject: [PATCH 0039/2060] dbus: Update to 1.9.4 --- mingw-w64-dbus/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-dbus/PKGBUILD b/mingw-w64-dbus/PKGBUILD index bc430ac14c..f737b7171e 100644 --- a/mingw-w64-dbus/PKGBUILD +++ b/mingw-w64-dbus/PKGBUILD @@ -2,7 +2,7 @@ _realname=dbus pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.9.2 +pkgver=1.9.4 pkgrel=1 arch=('any') pkgdesc="Freedesktop.org message bus system (mingw-w64)" @@ -12,7 +12,7 @@ options=('strip' 'staticlibs') license=("BSD") url="http://www.freedesktop.org/wiki/Software/dbus" source=("http://dbus.freedesktop.org/releases/dbus/${_realname}-${pkgver}.tar.gz"{,.asc}) -md5sums=('a568c8853eeced5a4346fa2dd8e9eda6' +md5sums=('beee7886e478911ff942a80e4afec303' 'SKIP') prepare() { From dcd6405cbc89adb00c64532c06dfb28d5566f14f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 28 Nov 2014 15:51:35 +0300 Subject: [PATCH 0040/2060] qt5: Use mingw builded firebird. --- .../0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch | 2 +- mingw-w64-qt5/PKGBUILD | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/mingw-w64-qt5/0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch b/mingw-w64-qt5/0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch index 59e81e2928..f8579bce65 100644 --- a/mingw-w64-qt5/0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch +++ b/mingw-w64-qt5/0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch @@ -6,6 +6,6 @@ diff -urN --ignore-all-space a/qtbase/src/sql/drivers/ibase/qsql_ibase.pri b/qtb } else { !contains(LIBS, .*gds.*):!contains(LIBS, .*fbclient.*) { - LIBS += -lgds32_ms -+ LIBS += -lfbclient_ms ++ LIBS += -lfbclient } } diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 205b349d25..4a5e0bb114 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -125,7 +125,7 @@ makedepends=("bison" "${MINGW_PACKAGE_PREFIX}-openssl") $([[ "$_variant" == "-shared" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-libmariadbclient" \ - "${MINGW_PACKAGE_PREFIX}-libfbclient" \ + "${MINGW_PACKAGE_PREFIX}-firebird" \ "${MINGW_PACKAGE_PREFIX}-postgresql") ) @@ -133,8 +133,7 @@ groups=("${MINGW_PACKAGE_PREFIX}-qt" "${MINGW_PACKAGE_PREFIX}-qt5") options=('!strip' 'staticlibs' 'ccache') _pkgfqn="qt-everywhere-opensource-src-${_ver_base}" noextract=(${_pkgfqn}.tar.xz) -source=(#"${_pkgfqn}.tar.xz" - http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ver_base//RC/rc}/single/${_pkgfqn}.tar.xz +source=(http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ver_base//RC/rc}/single/${_pkgfqn}.tar.xz #http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${_ver_base}/single/${_pkgfqn}.tar.xz #http://download.qt-project.org/snapshots/qt/${pkgver%.*}/${_ver_base}/2014-05-07_85/src/qt-everywhere-opensource-src-${_ver_base}.tar.xz #"qt3d"::"git://gitorious.org/qt/qt3d.git" @@ -176,7 +175,7 @@ source=(#"${_pkgfqn}.tar.xz" md5sums=('3d371bbc5598af620723a594f9f1a774' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' - '356f7fcf93869e92cd232ef70160ab58' + '53edcf1df69ae8134a196292447ddaa3' 'b0b5cc641cf8ebc2660fa819bede0089' '457b97833220a81f542f529e7e0c549c' 'c09d0a1b6a08883e307c7f33dc2d2157' From d10a3bdac51f0139465c941c77ff1e2acd8aae8f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 28 Nov 2014 15:53:37 +0300 Subject: [PATCH 0041/2060] firebird-git: Build version 3 by default. Fix packaging. --- mingw-w64-firebird-git/PKGBUILD | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD index 61b6d0be93..dfaa1177ec 100644 --- a/mingw-w64-firebird-git/PKGBUILD +++ b/mingw-w64-firebird-git/PKGBUILD @@ -2,14 +2,15 @@ _realname='firebird' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r43988.06f0675 +pkgver=3.0.0.31406.ebb7243 pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features (mingw-w64)" url="http://www.firebirdsql.org/" license=('custom') arch=('any') -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-libfbclient") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-libfbclient") +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=( "${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-icu" @@ -21,15 +22,16 @@ makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird pre "${MINGW_PACKAGE_PREFIX}-pkg-config" "git" ) -options=('debug' '!strip') -source=("${_realname}"::"git+https://github.com/Alexpux/firebird.git#branch=mingw-w64-2_5" - #"${_realname}"::"git+file:///v/Sources/GNU/firebird#branch=mingw-w64-2_5" +options=('!debug' 'strip') +source=("${_realname}"::"git+https://github.com/Alexpux/firebird.git#branch=mingw-w64" + #"${_realname}"::"git+file:///v/Sources/GNU/firebird#branch=mingw-w64" ) sha256sums=('SKIP') pkgver() { cd "${_realname}" - printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + source ${srcdir}/${_realname}/src/misc/writeBuildNum.sh + printf '%s.%s.%s.%s.%s' ${MajorVer} ${MinorVer} ${RevNo} ${BuildNum} "$(git rev-parse --short HEAD)" } prepare() { @@ -38,8 +40,6 @@ prepare() { } build() { - #mkdir -p "build-${MINGW_CHOST}" - #cd "build-${MINGW_CHOST}" local _debug_conf= if check_option "debug" "y"; then _debug_conf="--enable-debug" @@ -56,7 +56,7 @@ build() { --enable-shared \ ${_debug_conf} \ --disable-rpath \ - --disable-superserver \ + --enable-superserver \ --with-fbdoc=${MINGW_PREFIX}/share/${_realname}/doc \ --with-system-icu @@ -67,7 +67,12 @@ build() { package() { cd ${srcdir}/${_realname} + local _dir=Release + if check_option "debug" "y"; then + _dir=Debug + fi + mkdir -p ${pkgdir} - cp -rf gen/firebird ${pkgdir}${MINGW_PREFIX} + cp -rf gen/${_dir}/firebird ${pkgdir}${MINGW_PREFIX} cp -rf ${srcdir}/${_realname}/doc ${pkgdir}${MINGW_PREFIX}/ } From b140001604a88a9ac56080d47d047148320c437d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 28 Nov 2014 21:26:25 +0000 Subject: [PATCH 0042/2060] zeromq: Added Gotten from: http://blog.greblus.net/2014/11/18/msys2mingw-w64-cython-i-ipython-notebook/ --- mingw-w64-zeromq/PKGBUILD | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mingw-w64-zeromq/PKGBUILD diff --git a/mingw-w64-zeromq/PKGBUILD b/mingw-w64-zeromq/PKGBUILD new file mode 100644 index 0000000000..0d988d69d2 --- /dev/null +++ b/mingw-w64-zeromq/PKGBUILD @@ -0,0 +1,34 @@ +# From Greblus: http://blog.greblus.net/2014/11/18/msys2mingw-w64-cython-i-ipython-notebook/ + +realname=zeromq +pkgname="mingw-w64-${realname}" +pkgver=4.0.5 +pkgrel=1 +pkgdesc="Fast messaging system built on sockets, C and C++ bindings. aka 0MQ, ZMQ. (mingw-w64)" +arch=('any') +url="http://www.zeromq.org" +license=("LGPL") +depends=('') +makedepends=('') +options=('staticlibs' '!strip' '!buildflags') +source=("http://download.zeromq.org/zeromq-$pkgver.tar.gz") +md5sums=('73c39f5eb01b9d7eaf74a5d899f1d03d') + +build() { + mkdir -p $srcdir/build-${CARCH} + cd $srcdir/build-${CARCH} + ../zeromq-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} + + make +} + +package() { + mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" + + cd "${srcdir}/build-${CARCH}" + make DESTDIR="$pkgdir" install +} + From 45b5bb454a31bb9d4a6a116836f4bef78102e42a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 02:27:44 +0000 Subject: [PATCH 0043/2060] TODO.md: Add bison relocatability for calling m4 --- TODO.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TODO.md b/TODO.md index f8887764c5..4109829cac 100644 --- a/TODO.md +++ b/TODO.md @@ -37,3 +37,5 @@ What we need to do: fontconfig gcrypt speex theora matroska openal32 openjpeg theoradec theoraenc libopus libopencore-amrnb libopencore-amrwb libcelt0 libgnutls libgme libembl libspeexdsp + +* Bison: Add path relocation when locating m4 From 4d6535f14a968adc1dd61c1a92fa4c59ad3c532d Mon Sep 17 00:00:00 2001 From: Yuta NAKAI Date: Sat, 29 Nov 2014 21:42:50 +0900 Subject: [PATCH 0044/2060] flac: Update to 1.3.1 --- mingw-w64-flac/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-flac/PKGBUILD b/mingw-w64-flac/PKGBUILD index e3484ab9c0..1d9bce6052 100644 --- a/mingw-w64-flac/PKGBUILD +++ b/mingw-w64-flac/PKGBUILD @@ -3,8 +3,8 @@ _realname=flac pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.0 -pkgrel=2 +pkgver=1.3.1 +pkgrel=1 pkgdesc="Free Lossless Audio Codec (mingw-w64)" arch=('any') url="http://flac.sourceforge.net/" @@ -14,7 +14,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-libogg" "${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("nasm" "${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' 'staticlibs') source=("http://downloads.xiph.org/releases/flac/flac-${pkgver}.tar.xz") -md5sums=('13b5c214cee8373464d3d65dee362cdd') +md5sums=('b9922c9a0378c88d3e901b234f852698') build() { cd "$srcdir/${_realname}-${pkgver}" @@ -39,6 +39,6 @@ build() { } package() { - cd "$srcdir/${_realname}-${pkgver}" + cd "$srcdir/${_realname}-${pkgver}" make DESTDIR="$pkgdir" install } From 6a8058194d3c95b40b571c07ab4d06724943e44a Mon Sep 17 00:00:00 2001 From: Yuta NAKAI Date: Sat, 29 Nov 2014 21:43:32 +0900 Subject: [PATCH 0045/2060] flac: Enable optimizations. --- mingw-w64-flac/PKGBUILD | 2 -- 1 file changed, 2 deletions(-) diff --git a/mingw-w64-flac/PKGBUILD b/mingw-w64-flac/PKGBUILD index 1d9bce6052..84744ac32b 100644 --- a/mingw-w64-flac/PKGBUILD +++ b/mingw-w64-flac/PKGBUILD @@ -27,13 +27,11 @@ build() { --enable-shared \ --enable-static\ --disable-xmms-plugin \ - --disable-sse \ --disable-rpath \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --disable-asm-optimizations \ --with-pic make } From 3ae5eb9b34e2fd7f1e6dd0d03767d3637e48ab59 Mon Sep 17 00:00:00 2001 From: Yuta NAKAI Date: Sat, 29 Nov 2014 22:28:21 +0900 Subject: [PATCH 0046/2060] x264: Update to r2491 --- mingw-w64-x264/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-x264/PKGBUILD b/mingw-w64-x264/PKGBUILD index 309de4af94..457d63544b 100644 --- a/mingw-w64-x264/PKGBUILD +++ b/mingw-w64-x264/PKGBUILD @@ -2,7 +2,7 @@ _realname=x264 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=r2479.dd79a61 +pkgver=r2491.24e4fed pkgrel=1 pkgdesc="Library for encoding H264/AVC video streams (mingw-w64)" arch=('any') From 29463394f05d3eb03f0caf66211a5852a8708716 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 18:55:15 +0000 Subject: [PATCH 0047/2060] qbs-git: Port 1.3 patches to master --- ... => 0001-WIP-Xcode-generator.master.patch} | 106 +- ...stosinfo.h-to-installed-headers.1.3.patch} | 10 +- .../0002-WIP-Xcode-generator.1.3.patch | 5143 +++++++++++++++++ ...dd-generator-header-installs.master.patch} | 22 +- ....a-for-mingw-import-libraries.master.patch | 25 + ...03-add-generator-header-installs.1.3.patch | 37 + ...of-.a-for-mingw-import-libraries.1.3.patch | 25 + ...lchains-Pretend-msys-is-mingw.master.patch | 36 + ...toolchains-Pretend-msys-is-mingw.1.3.patch | 36 + mingw-w64-qbs-git/PKGBUILD | 45 +- 10 files changed, 5405 insertions(+), 80 deletions(-) rename mingw-w64-qbs-git/{0002-WIP-Xcode-generator.patch => 0001-WIP-Xcode-generator.master.patch} (98%) rename mingw-w64-qbs-git/{0001-add-hostosinfo.h-to-installed-headers.patch => 0001-add-hostosinfo.h-to-installed-headers.1.3.patch} (76%) create mode 100644 mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.3.patch rename mingw-w64-qbs-git/{0003-add-generator-header-installs.patch => 0002-add-generator-header-installs.master.patch} (70%) create mode 100644 mingw-w64-qbs-git/0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch create mode 100644 mingw-w64-qbs-git/0003-add-generator-header-installs.1.3.patch create mode 100644 mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch create mode 100644 mingw-w64-qbs-git/0004-setup-toolchains-Pretend-msys-is-mingw.master.patch create mode 100644 mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch diff --git a/mingw-w64-qbs-git/0002-WIP-Xcode-generator.patch b/mingw-w64-qbs-git/0001-WIP-Xcode-generator.master.patch similarity index 98% rename from mingw-w64-qbs-git/0002-WIP-Xcode-generator.patch rename to mingw-w64-qbs-git/0001-WIP-Xcode-generator.master.patch index 7a4c3afaa3..540568c2f3 100644 --- a/mingw-w64-qbs-git/0002-WIP-Xcode-generator.patch +++ b/mingw-w64-qbs-git/0001-WIP-Xcode-generator.master.patch @@ -1,7 +1,7 @@ -From f3258a17f49b03418ba73baaa5ae1246a1f9d11a Mon Sep 17 00:00:00 2001 +From 9a5b32faa3c74f45dcfd57b33f1f728da00f1018 Mon Sep 17 00:00:00 2001 From: Jake Petroules -Date: Thu, 9 Jan 2014 09:00:47 -0500 -Subject: [PATCH 2/3] WIP: Xcode generator. +Date: Sat, 29 Nov 2014 17:48:47 +0000 +Subject: [PATCH 1/4] WIP: Xcode generator. Task-number: QBS-32 @@ -136,10 +136,10 @@ Change-Id: I5ce5cc3148aa801d75a1f64b778fe7334de43af9 create mode 100644 src/plugins/generator/xcode/xcodesimplegenerator.h diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp -index 5ecd22f..039b2a7 100644 +index d3de3b3..8236243 100644 --- a/src/app/qbs/commandlinefrontend.cpp +++ b/src/app/qbs/commandlinefrontend.cpp -@@ -38,6 +38,7 @@ +@@ -39,6 +39,7 @@ #include #include #include @@ -147,7 +147,7 @@ index 5ecd22f..039b2a7 100644 #include #include -@@ -326,6 +327,9 @@ void CommandLineFrontend::handleProjectsResolved() +@@ -332,6 +333,9 @@ void CommandLineFrontend::handleProjectsResolved() if (m_cancelStatus != CancelStatusNone) throw ErrorInfo(Tr::tr("Execution canceled.")); switch (m_parser.command()) { @@ -157,7 +157,7 @@ index 5ecd22f..039b2a7 100644 case ResolveCommandType: qApp->quit(); break; -@@ -445,6 +449,29 @@ void CommandLineFrontend::build() +@@ -449,6 +453,29 @@ void CommandLineFrontend::build() m_currentBuildEffort = 0; } @@ -188,10 +188,10 @@ index 5ecd22f..039b2a7 100644 { try { diff --git a/src/app/qbs/commandlinefrontend.h b/src/app/qbs/commandlinefrontend.h -index 75091aa..2276d3e 100644 +index 3bd443f..cac1884 100644 --- a/src/app/qbs/commandlinefrontend.h +++ b/src/app/qbs/commandlinefrontend.h -@@ -79,6 +79,7 @@ private: +@@ -80,6 +80,7 @@ private: void makeClean(); int runShell(); void build(); @@ -200,10 +200,10 @@ index 75091aa..2276d3e 100644 void updateTimestamps(); void connectBuildJobs(); diff --git a/src/app/qbs/parser/command.cpp b/src/app/qbs/parser/command.cpp -index 8bbbc7d..2283aef 100644 +index 4f8830e..4af91ec 100644 --- a/src/app/qbs/parser/command.cpp +++ b/src/app/qbs/parser/command.cpp -@@ -187,6 +187,41 @@ QList ResolveCommand::supportedOptions() const +@@ -188,6 +188,41 @@ QList ResolveCommand::supportedOptions() const return resolveOptions(); } @@ -246,10 +246,10 @@ index 8bbbc7d..2283aef 100644 { return Tr::tr("Build (parts of) a project. This is the default command."); diff --git a/src/app/qbs/parser/command.h b/src/app/qbs/parser/command.h -index b0439f9..935fc23 100644 +index 1f479ad..ca7923e 100644 --- a/src/app/qbs/parser/command.h +++ b/src/app/qbs/parser/command.h -@@ -80,6 +80,19 @@ private: +@@ -81,6 +81,19 @@ private: QList supportedOptions() const; }; @@ -270,10 +270,10 @@ index b0439f9..935fc23 100644 { public: diff --git a/src/app/qbs/parser/commandlineoption.cpp b/src/app/qbs/parser/commandlineoption.cpp -index 8b15b5e..3d7dc0d 100644 +index f3b5786..a003250 100644 --- a/src/app/qbs/parser/commandlineoption.cpp +++ b/src/app/qbs/parser/commandlineoption.cpp -@@ -114,6 +114,29 @@ void BuildDirectoryOption::doParse(const QString &representation, QStringList &i +@@ -115,6 +115,29 @@ void BuildDirectoryOption::doParse(const QString &representation, QStringList &i m_projectBuildDirectory = getArgument(representation, input); } @@ -304,20 +304,20 @@ index 8b15b5e..3d7dc0d 100644 QString VerboseOption::description(CommandType command) const diff --git a/src/app/qbs/parser/commandlineoption.h b/src/app/qbs/parser/commandlineoption.h -index bf31772..fa7b154 100644 +index a070cc5..8c75fba 100644 --- a/src/app/qbs/parser/commandlineoption.h +++ b/src/app/qbs/parser/commandlineoption.h -@@ -53,7 +53,8 @@ public: - ForceOptionType, - ForceTimestampCheckOptionType, +@@ -56,7 +56,8 @@ public: + BuildNonDefaultOptionType, LogTimeOptionType, + ShowCommandLinesOptionType, - SettingsDirOptionType + SettingsDirOptionType, + GeneratorOptionType }; virtual ~CommandLineOption(); -@@ -105,6 +106,21 @@ private: +@@ -108,6 +109,21 @@ private: QString m_projectBuildDirectory; }; @@ -340,10 +340,10 @@ index bf31772..fa7b154 100644 { public: diff --git a/src/app/qbs/parser/commandlineoptionpool.cpp b/src/app/qbs/parser/commandlineoptionpool.cpp -index a6f2c26..fcca96b 100644 +index c80529d..b8bbf76 100644 --- a/src/app/qbs/parser/commandlineoptionpool.cpp +++ b/src/app/qbs/parser/commandlineoptionpool.cpp -@@ -97,6 +97,9 @@ CommandLineOption *CommandLineOptionPool::getOption(CommandLineOption::Type type +@@ -104,6 +104,9 @@ CommandLineOption *CommandLineOptionPool::getOption(CommandLineOption::Type type case CommandLineOption::SettingsDirOptionType: option = new SettingsDirOption; break; @@ -353,7 +353,7 @@ index a6f2c26..fcca96b 100644 default: qFatal("Unknown option type %d", type); } -@@ -200,4 +203,9 @@ SettingsDirOption *CommandLineOptionPool::settingsDirOption() const +@@ -219,4 +222,9 @@ SettingsDirOption *CommandLineOptionPool::settingsDirOption() const return static_cast(getOption(CommandLineOption::SettingsDirOptionType)); } @@ -364,22 +364,22 @@ index a6f2c26..fcca96b 100644 + } // namespace qbs diff --git a/src/app/qbs/parser/commandlineoptionpool.h b/src/app/qbs/parser/commandlineoptionpool.h -index 0fc73a6..1186406 100644 +index f14c361..64e180f 100644 --- a/src/app/qbs/parser/commandlineoptionpool.h +++ b/src/app/qbs/parser/commandlineoptionpool.h -@@ -60,6 +60,7 @@ public: - ForceTimeStampCheckOption *forceTimestampCheckOption() const; +@@ -63,6 +63,7 @@ public: LogTimeOption *logTimeOption() const; + ShowCommandLinesOption *showCommandLinesOption() const; SettingsDirOption *settingsDirOption() const; + GeneratorOption *generatorOption() const; private: mutable QHash m_options; diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp -index 64284c4..4ff3892 100644 +index 852f8aa..465a46a 100644 --- a/src/app/qbs/parser/commandlineparser.cpp +++ b/src/app/qbs/parser/commandlineparser.cpp -@@ -40,6 +40,7 @@ +@@ -41,6 +41,7 @@ #include #include #include @@ -387,7 +387,7 @@ index 64284c4..4ff3892 100644 #include #include #include -@@ -156,6 +157,14 @@ CleanOptions CommandLineParser::cleanOptions() const +@@ -157,6 +158,14 @@ CleanOptions CommandLineParser::cleanOptions() const return options; } @@ -402,7 +402,7 @@ index 64284c4..4ff3892 100644 InstallOptions CommandLineParser::installOptions() const { Q_ASSERT(command() == InstallCommandType || command() == RunCommandType); -@@ -359,6 +368,7 @@ Command *CommandLineParser::CommandLineParserPrivate::commandFromString(const QS +@@ -365,6 +374,7 @@ Command *CommandLineParser::CommandLineParserPrivate::commandFromString(const QS QList CommandLineParser::CommandLineParserPrivate::allCommands() const { return QList() @@ -411,10 +411,10 @@ index 64284c4..4ff3892 100644 << commandPool.getCommand(BuildCommandType) << commandPool.getCommand(CleanCommandType) diff --git a/src/app/qbs/parser/commandlineparser.h b/src/app/qbs/parser/commandlineparser.h -index 4301a29..f736e25 100644 +index dc9efe8..acd6401 100644 --- a/src/app/qbs/parser/commandlineparser.h +++ b/src/app/qbs/parser/commandlineparser.h -@@ -37,6 +37,7 @@ +@@ -38,6 +38,7 @@ namespace qbs { class BuildOptions; class CleanOptions; @@ -422,7 +422,7 @@ index 4301a29..f736e25 100644 class InstallOptions; class Settings; -@@ -57,6 +58,7 @@ public: +@@ -58,6 +59,7 @@ public: QString projectBuildDirectory() const; BuildOptions buildOptions() const; CleanOptions cleanOptions() const; @@ -431,10 +431,10 @@ index 4301a29..f736e25 100644 bool force() const; bool forceTimestampCheck() const; diff --git a/src/app/qbs/parser/commandpool.cpp b/src/app/qbs/parser/commandpool.cpp -index 6da872d..cdfd180 100644 +index f0451a8..b895b6d 100644 --- a/src/app/qbs/parser/commandpool.cpp +++ b/src/app/qbs/parser/commandpool.cpp -@@ -49,6 +49,9 @@ qbs::Command *CommandPool::getCommand(CommandType type) const +@@ -50,6 +50,9 @@ qbs::Command *CommandPool::getCommand(CommandType type) const case ResolveCommandType: command = new ResolveCommand(m_optionPool); break; @@ -445,10 +445,10 @@ index 6da872d..cdfd180 100644 command = new BuildCommand(m_optionPool); break; diff --git a/src/app/qbs/parser/commandtype.h b/src/app/qbs/parser/commandtype.h -index b6b7592..149b2c6 100644 +index 7c3a09d..e16c23d 100644 --- a/src/app/qbs/parser/commandtype.h +++ b/src/app/qbs/parser/commandtype.h -@@ -34,7 +34,7 @@ namespace qbs { +@@ -35,7 +35,7 @@ namespace qbs { enum CommandType { ResolveCommandType, BuildCommandType, CleanCommandType, RunCommandType, ShellCommandType, StatusCommandType, UpdateTimestampsCommandType, @@ -458,7 +458,7 @@ index b6b7592..149b2c6 100644 } // namespace qbs diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri -index 2bd59b5..9b2fb38 100644 +index 18b3b47..9f2638c 100644 --- a/src/lib/corelib/api/api.pri +++ b/src/lib/corelib/api/api.pri @@ -1,5 +1,6 @@ @@ -468,7 +468,7 @@ index 2bd59b5..9b2fb38 100644 $$PWD/projectdata.h \ $$PWD/runenvironment.h \ $$PWD/jobs.h \ -@@ -11,6 +12,7 @@ HEADERS += \ +@@ -13,6 +14,7 @@ HEADERS += \ SOURCES += \ $$PWD/internaljobs.cpp \ @@ -600,10 +600,10 @@ index 0000000..7f8ba97 + +#endif // QBS_GENERATOR_H diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp -index 0bf6a9f..a9102f1 100644 +index 492635d..0190fb6 100644 --- a/src/lib/corelib/api/project.cpp +++ b/src/lib/corelib/api/project.cpp -@@ -54,6 +54,7 @@ +@@ -57,6 +57,7 @@ #include #include #include @@ -611,7 +611,7 @@ index 0bf6a9f..a9102f1 100644 #include #include #include -@@ -90,6 +91,7 @@ static void loadPlugins(const QStringList &_pluginPaths, const Logger &logger) +@@ -97,6 +98,7 @@ static void loadPlugins(const QStringList &_pluginPaths, const Logger &logger) pluginPaths << pluginPath; } } @@ -620,10 +620,10 @@ index 0bf6a9f..a9102f1 100644 qRegisterMetaType("qbs::ErrorInfo"); diff --git a/src/lib/corelib/qbs.h b/src/lib/corelib/qbs.h -index 6749fdb..7d1d238 100644 +index 5f1fc64..ba1da36 100644 --- a/src/lib/corelib/qbs.h +++ b/src/lib/corelib/qbs.h -@@ -29,6 +29,7 @@ +@@ -30,6 +30,7 @@ #ifndef QBS_H #define QBS_H @@ -631,7 +631,7 @@ index 6749fdb..7d1d238 100644 #include "api/jobs.h" #include "api/languageinfo.h" #include "api/project.h" -@@ -37,6 +38,7 @@ +@@ -40,6 +41,7 @@ #include "tools/buildoptions.h" #include "tools/cleanoptions.h" #include "tools/error.h" @@ -1010,10 +1010,10 @@ index 0000000..4f6351b + +#endif diff --git a/src/lib/corelib/tools/scannerpluginmanager.cpp b/src/lib/corelib/tools/scannerpluginmanager.cpp -index 8bf43d2..fd23faa 100644 +index 7a455de..28c80bb 100644 --- a/src/lib/corelib/tools/scannerpluginmanager.cpp +++ b/src/lib/corelib/tools/scannerpluginmanager.cpp -@@ -80,6 +80,9 @@ void ScannerPluginManager::loadPlugins(const QStringList &pluginPaths, const Log +@@ -81,6 +81,9 @@ void ScannerPluginManager::loadPlugins(const QStringList &pluginPaths, const Log QDirIterator it(pluginPath, filters, QDir::Files); while (it.hasNext()) { const QString fileName = it.next(); @@ -1024,11 +1024,11 @@ index 8bf43d2..fd23faa 100644 if (!lib->load()) { logger.qbsWarning() << Tr::tr("Pluginmanager: Cannot load plugin '%1': %2") diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 0dfe50f..85175b3 100644 +index 14433de..d8875bb 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -6,6 +6,8 @@ HEADERS += \ - $$PWD/error.h \ +@@ -8,6 +8,8 @@ HEADERS += \ + $$PWD/executablefinder.h \ $$PWD/fileinfo.h \ $$PWD/filetime.h \ + $$PWD/generateoptions.h \ @@ -1036,9 +1036,9 @@ index 0dfe50f..85175b3 100644 $$PWD/id.h \ $$PWD/persistence.h \ $$PWD/scannerpluginmanager.h \ -@@ -35,6 +37,8 @@ SOURCES += \ - $$PWD/codelocation.cpp \ +@@ -40,6 +42,8 @@ SOURCES += \ $$PWD/error.cpp \ + $$PWD/executablefinder.cpp \ $$PWD/fileinfo.cpp \ + $$PWD/generateoptions.cpp \ + $$PWD/generatorpluginmanager.cpp \ @@ -5139,5 +5139,5 @@ index d3823ae..9fe2e6b 100644 -SUBDIRS = scanner +SUBDIRS = generator scanner -- -2.1.0 +2.1.3 diff --git a/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.patch b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.3.patch similarity index 76% rename from mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.patch rename to mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.3.patch index 0e4f6924e8..e2047425fc 100644 --- a/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.patch +++ b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.3.patch @@ -1,7 +1,7 @@ -From 30f0eea92b5ec0029abf02885c42ce04d2aa1772 Mon Sep 17 00:00:00 2001 +From 18207eec90e31476de31695deff3d34d06e78dd7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 12:19:52 +0100 -Subject: [PATCH 1/3] add hostosinfo.h to installed headers +Subject: [PATCH 1/5] add hostosinfo.h to installed headers .. if you build Qt Creator with system qbs then this header is needed by: @@ -11,10 +11,10 @@ src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp 1 file changed, 1 insertion(+) diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 8171f42..0dfe50f 100644 +index 87c45b9..50775ce 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -72,6 +72,7 @@ qbs_enable_unit_tests { +@@ -77,6 +77,7 @@ all_tests { $$PWD/cleanoptions.h \ $$PWD/codelocation.h \ $$PWD/error.h \ @@ -23,5 +23,5 @@ index 8171f42..0dfe50f 100644 $$PWD/preferences.h \ $$PWD/profile.h \ -- -2.1.0 +2.1.3 diff --git a/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.3.patch b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.3.patch new file mode 100644 index 0000000000..186f0b22be --- /dev/null +++ b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.3.patch @@ -0,0 +1,5143 @@ +From 8d583142c9ac91f132922ce94e45776c433b0200 Mon Sep 17 00:00:00 2001 +From: Jake Petroules +Date: Sat, 29 Nov 2014 18:12:45 +0000 +Subject: [PATCH 2/5] WIP: Xcode generator. + +Task-number: QBS-32 + +Change-Id: I5ce5cc3148aa801d75a1f64b778fe7334de43af9 +--- + src/app/qbs/commandlinefrontend.cpp | 27 ++ + src/app/qbs/commandlinefrontend.h | 1 + + src/app/qbs/parser/command.cpp | 35 +++ + src/app/qbs/parser/command.h | 13 + + src/app/qbs/parser/commandlineoption.cpp | 23 ++ + src/app/qbs/parser/commandlineoption.h | 18 +- + src/app/qbs/parser/commandlineoptionpool.cpp | 8 + + src/app/qbs/parser/commandlineoptionpool.h | 1 + + src/app/qbs/parser/commandlineparser.cpp | 10 + + src/app/qbs/parser/commandlineparser.h | 2 + + src/app/qbs/parser/commandpool.cpp | 3 + + src/app/qbs/parser/commandtype.h | 2 +- + src/lib/corelib/api/api.pri | 2 + + src/lib/corelib/api/generator.cpp | 50 ++++ + src/lib/corelib/api/generator.h | 61 +++++ + src/lib/corelib/api/project.cpp | 2 + + src/lib/corelib/qbs.h | 2 + + src/lib/corelib/tools/generateoptions.cpp | 91 +++++++ + src/lib/corelib/tools/generateoptions.h | 58 +++++ + src/lib/corelib/tools/generatorpluginmanager.cpp | 128 ++++++++++ + src/lib/corelib/tools/generatorpluginmanager.h | 69 ++++++ + src/lib/corelib/tools/scannerpluginmanager.cpp | 3 + + src/lib/corelib/tools/tools.pri | 4 + + src/plugins/generator/generator.pro | 2 + + src/plugins/generator/generatorplugin.h | 46 ++++ + src/plugins/generator/xcode/main.cpp | 45 ++++ + .../generator/xcode/opensteppropertylist.cpp | 186 ++++++++++++++ + src/plugins/generator/xcode/opensteppropertylist.h | 71 ++++++ + src/plugins/generator/xcode/pbx.h | 53 ++++ + src/plugins/generator/xcode/pbxbuildfile.cpp | 72 ++++++ + src/plugins/generator/xcode/pbxbuildfile.h | 64 +++++ + src/plugins/generator/xcode/pbxbuildphase.cpp | 77 ++++++ + src/plugins/generator/xcode/pbxbuildphase.h | 60 +++++ + src/plugins/generator/xcode/pbxcontainer.cpp | 53 ++++ + src/plugins/generator/xcode/pbxcontainer.h | 57 +++++ + src/plugins/generator/xcode/pbxfileencoding.h | 57 +++++ + src/plugins/generator/xcode/pbxfilereference.cpp | 73 ++++++ + src/plugins/generator/xcode/pbxfilereference.h | 54 ++++ + src/plugins/generator/xcode/pbxfiletype.cpp | 41 +++ + src/plugins/generator/xcode/pbxfiletype.h | 47 ++++ + src/plugins/generator/xcode/pbxgroup.cpp | 114 +++++++++ + src/plugins/generator/xcode/pbxgroup.h | 69 ++++++ + src/plugins/generator/xcode/pbxlegacytarget.cpp | 127 ++++++++++ + src/plugins/generator/xcode/pbxlegacytarget.h | 73 ++++++ + src/plugins/generator/xcode/pbxnativetarget.cpp | 83 +++++++ + src/plugins/generator/xcode/pbxnativetarget.h | 61 +++++ + src/plugins/generator/xcode/pbxobject.cpp | 69 ++++++ + src/plugins/generator/xcode/pbxobject.h | 59 +++++ + src/plugins/generator/xcode/pbxproducttype.cpp | 56 +++++ + src/plugins/generator/xcode/pbxproducttype.h | 52 ++++ + src/plugins/generator/xcode/pbxproject.cpp | 218 ++++++++++++++++ + src/plugins/generator/xcode/pbxproject.h | 80 ++++++ + src/plugins/generator/xcode/pbxreference.cpp | 107 ++++++++ + src/plugins/generator/xcode/pbxreference.h | 70 ++++++ + .../generator/xcode/pbxsourcesbuildphase.cpp | 47 ++++ + src/plugins/generator/xcode/pbxsourcesbuildphase.h | 49 ++++ + src/plugins/generator/xcode/pbxsourcetree.cpp | 50 ++++ + src/plugins/generator/xcode/pbxsourcetree.h | 52 ++++ + src/plugins/generator/xcode/pbxtarget.cpp | 139 +++++++++++ + src/plugins/generator/xcode/pbxtarget.h | 86 +++++++ + .../generator/xcode/xcbuildconfiguration.cpp | 82 ++++++ + src/plugins/generator/xcode/xcbuildconfiguration.h | 67 +++++ + .../generator/xcode/xcconfigurationlist.cpp | 142 +++++++++++ + src/plugins/generator/xcode/xcconfigurationlist.h | 63 +++++ + src/plugins/generator/xcode/xcode.pro | 58 +++++ + src/plugins/generator/xcode/xcodegenerator.cpp | 96 +++++++ + src/plugins/generator/xcode/xcodegenerator.h | 53 ++++ + .../generator/xcode/xcodenativegenerator.cpp | 136 ++++++++++ + src/plugins/generator/xcode/xcodenativegenerator.h | 53 ++++ + .../generator/xcode/xcodesimplegenerator.cpp | 275 +++++++++++++++++++++ + src/plugins/generator/xcode/xcodesimplegenerator.h | 53 ++++ + src/plugins/plugins.pro | 2 +- + 72 files changed, 4409 insertions(+), 3 deletions(-) + create mode 100644 src/lib/corelib/api/generator.cpp + create mode 100644 src/lib/corelib/api/generator.h + create mode 100644 src/lib/corelib/tools/generateoptions.cpp + create mode 100644 src/lib/corelib/tools/generateoptions.h + create mode 100644 src/lib/corelib/tools/generatorpluginmanager.cpp + create mode 100644 src/lib/corelib/tools/generatorpluginmanager.h + create mode 100644 src/plugins/generator/generator.pro + create mode 100644 src/plugins/generator/generatorplugin.h + create mode 100644 src/plugins/generator/xcode/main.cpp + create mode 100644 src/plugins/generator/xcode/opensteppropertylist.cpp + create mode 100644 src/plugins/generator/xcode/opensteppropertylist.h + create mode 100644 src/plugins/generator/xcode/pbx.h + create mode 100644 src/plugins/generator/xcode/pbxbuildfile.cpp + create mode 100644 src/plugins/generator/xcode/pbxbuildfile.h + create mode 100644 src/plugins/generator/xcode/pbxbuildphase.cpp + create mode 100644 src/plugins/generator/xcode/pbxbuildphase.h + create mode 100644 src/plugins/generator/xcode/pbxcontainer.cpp + create mode 100644 src/plugins/generator/xcode/pbxcontainer.h + create mode 100644 src/plugins/generator/xcode/pbxfileencoding.h + create mode 100644 src/plugins/generator/xcode/pbxfilereference.cpp + create mode 100644 src/plugins/generator/xcode/pbxfilereference.h + create mode 100644 src/plugins/generator/xcode/pbxfiletype.cpp + create mode 100644 src/plugins/generator/xcode/pbxfiletype.h + create mode 100644 src/plugins/generator/xcode/pbxgroup.cpp + create mode 100644 src/plugins/generator/xcode/pbxgroup.h + create mode 100644 src/plugins/generator/xcode/pbxlegacytarget.cpp + create mode 100644 src/plugins/generator/xcode/pbxlegacytarget.h + create mode 100644 src/plugins/generator/xcode/pbxnativetarget.cpp + create mode 100644 src/plugins/generator/xcode/pbxnativetarget.h + create mode 100644 src/plugins/generator/xcode/pbxobject.cpp + create mode 100644 src/plugins/generator/xcode/pbxobject.h + create mode 100644 src/plugins/generator/xcode/pbxproducttype.cpp + create mode 100644 src/plugins/generator/xcode/pbxproducttype.h + create mode 100644 src/plugins/generator/xcode/pbxproject.cpp + create mode 100644 src/plugins/generator/xcode/pbxproject.h + create mode 100644 src/plugins/generator/xcode/pbxreference.cpp + create mode 100644 src/plugins/generator/xcode/pbxreference.h + create mode 100644 src/plugins/generator/xcode/pbxsourcesbuildphase.cpp + create mode 100644 src/plugins/generator/xcode/pbxsourcesbuildphase.h + create mode 100644 src/plugins/generator/xcode/pbxsourcetree.cpp + create mode 100644 src/plugins/generator/xcode/pbxsourcetree.h + create mode 100644 src/plugins/generator/xcode/pbxtarget.cpp + create mode 100644 src/plugins/generator/xcode/pbxtarget.h + create mode 100644 src/plugins/generator/xcode/xcbuildconfiguration.cpp + create mode 100644 src/plugins/generator/xcode/xcbuildconfiguration.h + create mode 100644 src/plugins/generator/xcode/xcconfigurationlist.cpp + create mode 100644 src/plugins/generator/xcode/xcconfigurationlist.h + create mode 100644 src/plugins/generator/xcode/xcode.pro + create mode 100644 src/plugins/generator/xcode/xcodegenerator.cpp + create mode 100644 src/plugins/generator/xcode/xcodegenerator.h + create mode 100644 src/plugins/generator/xcode/xcodenativegenerator.cpp + create mode 100644 src/plugins/generator/xcode/xcodenativegenerator.h + create mode 100644 src/plugins/generator/xcode/xcodesimplegenerator.cpp + create mode 100644 src/plugins/generator/xcode/xcodesimplegenerator.h + +diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp +index 11cec27..c386862 100644 +--- a/src/app/qbs/commandlinefrontend.cpp ++++ b/src/app/qbs/commandlinefrontend.cpp +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -332,6 +333,9 @@ void CommandLineFrontend::handleProjectsResolved() + if (m_cancelStatus != CancelStatusNone) + throw ErrorInfo(Tr::tr("Execution canceled.")); + switch (m_parser.command()) { ++ case GenerateCommandType: ++ generate(); ++ break; + case ResolveCommandType: + qApp->quit(); + break; +@@ -452,6 +456,29 @@ void CommandLineFrontend::build() + m_currentBuildEffort = 0; + } + ++void CommandLineFrontend::generate() ++{ ++ const QString generatorName = m_parser.generateOptions().generatorName(); ++ if (generatorName.isEmpty()) { ++ throw ErrorInfo(Tr::tr("Invalid use of command '%1': No generator given.\nUsage: %2") ++ .arg(m_parser.commandName(), m_parser.commandDescription())); ++ } ++ ++ Q_ASSERT(m_projects.count() == 1); ++ const Project project = m_projects.first(); ++ if (Generator *generator = GeneratorPluginManager::generatorWithName(generatorName)) ++ { ++ generator->generate(project); ++ delete generator; ++ } ++ else ++ { ++ throw ErrorInfo(Tr::tr("No generator named '%1'").arg(generatorName)); ++ } ++ ++ qApp->quit(); ++} ++ + int CommandLineFrontend::runTarget() + { + try { +diff --git a/src/app/qbs/commandlinefrontend.h b/src/app/qbs/commandlinefrontend.h +index 34bd69b..ffcca85 100644 +--- a/src/app/qbs/commandlinefrontend.h ++++ b/src/app/qbs/commandlinefrontend.h +@@ -80,6 +80,7 @@ private: + void makeClean(); + int runShell(); + void build(); ++ void generate(); + int runTarget(); + void updateTimestamps(); + void connectBuildJobs(); +diff --git a/src/app/qbs/parser/command.cpp b/src/app/qbs/parser/command.cpp +index 98410b2..6955183 100644 +--- a/src/app/qbs/parser/command.cpp ++++ b/src/app/qbs/parser/command.cpp +@@ -188,6 +188,41 @@ QList ResolveCommand::supportedOptions() const + return resolveOptions(); + } + ++QString GenerateCommand::shortDescription() const ++{ ++ return Tr::tr("Generate files for a different build system."); ++} ++ ++QString GenerateCommand::longDescription() const ++{ ++ QString description = Tr::tr("qbs %1 [options] [[variant] [property:value] ...] ...\n") ++ .arg(representation()); ++ description += Tr::tr("Generates project files to build the project using a different build system."); ++ return description += supportedOptionsDescription(); ++} ++ ++QString GenerateCommand::representation() const ++{ ++ return QLatin1String("generate"); ++} ++ ++static QList generateOptions() ++{ ++ return QList() ++ << CommandLineOption::FileOptionType ++ << CommandLineOption::LogLevelOptionType ++ << CommandLineOption::VerboseOptionType ++ << CommandLineOption::QuietOptionType ++ << CommandLineOption::ShowProgressOptionType ++ << CommandLineOption::LogTimeOptionType ++ << CommandLineOption::GeneratorOptionType; ++} ++ ++QList GenerateCommand::supportedOptions() const ++{ ++ return generateOptions(); ++} ++ + QString BuildCommand::shortDescription() const + { + return Tr::tr("Build (parts of) a project. This is the default command."); +diff --git a/src/app/qbs/parser/command.h b/src/app/qbs/parser/command.h +index 1f479ad..ca7923e 100644 +--- a/src/app/qbs/parser/command.h ++++ b/src/app/qbs/parser/command.h +@@ -81,6 +81,19 @@ private: + QList supportedOptions() const; + }; + ++class GenerateCommand : public Command ++{ ++public: ++ GenerateCommand(CommandLineOptionPool &optionPool) : Command(optionPool) {} ++ ++private: ++ CommandType type() const { return GenerateCommandType; } ++ QString shortDescription() const; ++ QString longDescription() const; ++ QString representation() const; ++ QList supportedOptions() const; ++}; ++ + class BuildCommand : public Command + { + public: +diff --git a/src/app/qbs/parser/commandlineoption.cpp b/src/app/qbs/parser/commandlineoption.cpp +index 97d2a3e..9b2bbfe 100644 +--- a/src/app/qbs/parser/commandlineoption.cpp ++++ b/src/app/qbs/parser/commandlineoption.cpp +@@ -115,6 +115,29 @@ void BuildDirectoryOption::doParse(const QString &representation, QStringList &i + m_projectBuildDirectory = getArgument(representation, input); + } + ++QString GeneratorOption::description(CommandType command) const ++{ ++ Q_UNUSED(command); ++ return Tr::tr("%1|%2 \n" ++ "\tUse the given build system generator.\n") ++ .arg(longRepresentation(), shortRepresentation()); ++} ++ ++QString GeneratorOption::shortRepresentation() const ++{ ++ return QLatin1String("-g"); ++} ++ ++QString GeneratorOption::longRepresentation() const ++{ ++ return QLatin1String("--generator"); ++} ++ ++void GeneratorOption::doParse(const QString &representation, QStringList &input) ++{ ++ m_generatorName = getArgument(representation, input); ++} ++ + static QString loglevelLongRepresentation() { return QLatin1String("--log-level"); } + + QString VerboseOption::description(CommandType command) const +diff --git a/src/app/qbs/parser/commandlineoption.h b/src/app/qbs/parser/commandlineoption.h +index 26475fd..1200c35 100644 +--- a/src/app/qbs/parser/commandlineoption.h ++++ b/src/app/qbs/parser/commandlineoption.h +@@ -54,7 +54,8 @@ public: + ForceOptionType, + ForceTimestampCheckOptionType, + LogTimeOptionType, +- SettingsDirOptionType ++ SettingsDirOptionType, ++ GeneratorOptionType + }; + + virtual ~CommandLineOption(); +@@ -106,6 +107,21 @@ private: + QString m_projectBuildDirectory; + }; + ++class GeneratorOption : public CommandLineOption ++{ ++public: ++ QString generatorName() const { return m_generatorName; } ++ ++private: ++ QString description(CommandType command) const; ++ QString shortRepresentation() const; ++ QString longRepresentation() const; ++ void doParse(const QString &representation, QStringList &input); ++ ++private: ++ QString m_generatorName; ++}; ++ + class CountingOption : public CommandLineOption + { + public: +diff --git a/src/app/qbs/parser/commandlineoptionpool.cpp b/src/app/qbs/parser/commandlineoptionpool.cpp +index 587f755..90142f0 100644 +--- a/src/app/qbs/parser/commandlineoptionpool.cpp ++++ b/src/app/qbs/parser/commandlineoptionpool.cpp +@@ -98,6 +98,9 @@ CommandLineOption *CommandLineOptionPool::getOption(CommandLineOption::Type type + case CommandLineOption::SettingsDirOptionType: + option = new SettingsDirOption; + break; ++ case CommandLineOption::GeneratorOptionType: ++ option = new GeneratorOption; ++ break; + default: + qFatal("Unknown option type %d", type); + } +@@ -201,4 +204,9 @@ SettingsDirOption *CommandLineOptionPool::settingsDirOption() const + return static_cast(getOption(CommandLineOption::SettingsDirOptionType)); + } + ++GeneratorOption *CommandLineOptionPool::generatorOption() const ++{ ++ return static_cast(getOption(CommandLineOption::GeneratorOptionType)); ++} ++ + } // namespace qbs +diff --git a/src/app/qbs/parser/commandlineoptionpool.h b/src/app/qbs/parser/commandlineoptionpool.h +index 209f415..2d96523 100644 +--- a/src/app/qbs/parser/commandlineoptionpool.h ++++ b/src/app/qbs/parser/commandlineoptionpool.h +@@ -61,6 +61,7 @@ public: + ForceTimeStampCheckOption *forceTimestampCheckOption() const; + LogTimeOption *logTimeOption() const; + SettingsDirOption *settingsDirOption() const; ++ GeneratorOption *generatorOption() const; + + private: + mutable QHash m_options; +diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp +index 57fe70f..28c11c4 100644 +--- a/src/app/qbs/parser/commandlineparser.cpp ++++ b/src/app/qbs/parser/commandlineparser.cpp +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -157,6 +158,14 @@ CleanOptions CommandLineParser::cleanOptions() const + return options; + } + ++GenerateOptions CommandLineParser::generateOptions() const ++{ ++ Q_ASSERT(command() == GenerateCommandType); ++ GenerateOptions options; ++ options.setGeneratorName(d->optionPool.generatorOption()->generatorName()); ++ return options; ++} ++ + InstallOptions CommandLineParser::installOptions() const + { + Q_ASSERT(command() == InstallCommandType || command() == RunCommandType); +@@ -360,6 +369,7 @@ Command *CommandLineParser::CommandLineParserPrivate::commandFromString(const QS + QList CommandLineParser::CommandLineParserPrivate::allCommands() const + { + return QList() ++ << commandPool.getCommand(GenerateCommandType) + << commandPool.getCommand(ResolveCommandType) + << commandPool.getCommand(BuildCommandType) + << commandPool.getCommand(CleanCommandType) +diff --git a/src/app/qbs/parser/commandlineparser.h b/src/app/qbs/parser/commandlineparser.h +index bc5f188..91964da 100644 +--- a/src/app/qbs/parser/commandlineparser.h ++++ b/src/app/qbs/parser/commandlineparser.h +@@ -38,6 +38,7 @@ + namespace qbs { + class BuildOptions; + class CleanOptions; ++class GenerateOptions; + class InstallOptions; + class Settings; + +@@ -58,6 +59,7 @@ public: + QString projectBuildDirectory() const; + BuildOptions buildOptions() const; + CleanOptions cleanOptions() const; ++ GenerateOptions generateOptions() const; + InstallOptions installOptions() const; + bool force() const; + bool forceTimestampCheck() const; +diff --git a/src/app/qbs/parser/commandpool.cpp b/src/app/qbs/parser/commandpool.cpp +index f0451a8..b895b6d 100644 +--- a/src/app/qbs/parser/commandpool.cpp ++++ b/src/app/qbs/parser/commandpool.cpp +@@ -50,6 +50,9 @@ qbs::Command *CommandPool::getCommand(CommandType type) const + case ResolveCommandType: + command = new ResolveCommand(m_optionPool); + break; ++ case GenerateCommandType: ++ command = new GenerateCommand(m_optionPool); ++ break; + case BuildCommandType: + command = new BuildCommand(m_optionPool); + break; +diff --git a/src/app/qbs/parser/commandtype.h b/src/app/qbs/parser/commandtype.h +index 7c3a09d..e16c23d 100644 +--- a/src/app/qbs/parser/commandtype.h ++++ b/src/app/qbs/parser/commandtype.h +@@ -35,7 +35,7 @@ namespace qbs { + enum CommandType { + ResolveCommandType, BuildCommandType, CleanCommandType, RunCommandType, ShellCommandType, + StatusCommandType, UpdateTimestampsCommandType, +- InstallCommandType, HelpCommandType ++ InstallCommandType, HelpCommandType, GenerateCommandType + }; + + } // namespace qbs +diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri +index 18b3b47..9f2638c 100644 +--- a/src/lib/corelib/api/api.pri ++++ b/src/lib/corelib/api/api.pri +@@ -1,5 +1,6 @@ + HEADERS += \ + $$PWD/internaljobs.h \ ++ $$PWD/generator.h \ + $$PWD/projectdata.h \ + $$PWD/runenvironment.h \ + $$PWD/jobs.h \ +@@ -13,6 +14,7 @@ HEADERS += \ + + SOURCES += \ + $$PWD/internaljobs.cpp \ ++ $$PWD/generator.cpp \ + $$PWD/runenvironment.cpp \ + $$PWD/projectdata.cpp \ + $$PWD/jobs.cpp \ +diff --git a/src/lib/corelib/api/generator.cpp b/src/lib/corelib/api/generator.cpp +new file mode 100644 +index 0000000..3274b3b +--- /dev/null ++++ b/src/lib/corelib/api/generator.cpp +@@ -0,0 +1,50 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++#include "generator.h" ++ ++#include ++ ++namespace qbs { ++ ++/*! ++ * \class Generator ++ * \brief The \c Generator class is an abstract base class for generators which generate arbitrary ++ * output given a resolved Qbs project. ++ */ ++ ++Generator::Generator() ++{ ++} ++ ++Generator::~Generator() ++{ ++} ++ ++} // namespace qbs +diff --git a/src/lib/corelib/api/generator.h b/src/lib/corelib/api/generator.h +new file mode 100644 +index 0000000..7f8ba97 +--- /dev/null ++++ b/src/lib/corelib/api/generator.h +@@ -0,0 +1,61 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++#ifndef QBS_GENERATOR_H ++#define QBS_GENERATOR_H ++ ++#include "../language/forward_decls.h" ++#include "../tools/qbs_export.h" ++ ++namespace qbs { ++ ++#include ++ ++class Project; ++ ++class QBS_EXPORT Generator ++{ ++protected: ++ Generator(); ++ ++public: ++ virtual ~Generator(); ++ ++ /*! ++ * Returns the name of the generator used to create the external build system files. ++ * The default is empty. ++ */ ++ virtual QString generatorName() const = 0; ++ ++ virtual void generate(const Project &project) = 0; ++}; ++ ++} // namespace qbs ++ ++#endif // QBS_GENERATOR_H +diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp +index 87a58fd..aecc89c 100644 +--- a/src/lib/corelib/api/project.cpp ++++ b/src/lib/corelib/api/project.cpp +@@ -57,6 +57,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -97,6 +98,7 @@ static void loadPlugins(const QStringList &_pluginPaths, const Logger &logger) + pluginPaths << pluginPath; + } + } ++ GeneratorPluginManager::instance()->loadPlugins(pluginPaths, logger); + ScannerPluginManager::instance()->loadPlugins(pluginPaths, logger); + + qRegisterMetaType("qbs::ErrorInfo"); +diff --git a/src/lib/corelib/qbs.h b/src/lib/corelib/qbs.h +index 4c39c3d..da3965e 100644 +--- a/src/lib/corelib/qbs.h ++++ b/src/lib/corelib/qbs.h +@@ -30,6 +30,7 @@ + #ifndef QBS_H + #define QBS_H + ++#include "api/generator.h" + #include "api/jobs.h" + #include "api/languageinfo.h" + #include "api/project.h" +@@ -40,6 +41,7 @@ + #include "tools/buildoptions.h" + #include "tools/cleanoptions.h" + #include "tools/error.h" ++#include "tools/generateoptions.h" + #include "tools/installoptions.h" + #include "tools/preferences.h" + #include "tools/profile.h" +diff --git a/src/lib/corelib/tools/generateoptions.cpp b/src/lib/corelib/tools/generateoptions.cpp +new file mode 100644 +index 0000000..1198cb4 +--- /dev/null ++++ b/src/lib/corelib/tools/generateoptions.cpp +@@ -0,0 +1,91 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++#include "generateoptions.h" ++ ++#include ++#include ++ ++namespace qbs { ++namespace Internal { ++ ++class GenerateOptionsPrivate : public QSharedData ++{ ++public: ++ GenerateOptionsPrivate() ++ : generatorName() ++ {} ++ ++ QString generatorName; ++}; ++ ++} // namespace Internal ++ ++/*! ++ * \class GenerateOptions ++ * \brief The \c GenerateOptions class comprises parameters that influence the behavior of ++ * generate operations. ++ */ ++ ++GenerateOptions::GenerateOptions() : d(new Internal::GenerateOptionsPrivate) ++{ ++} ++ ++GenerateOptions::GenerateOptions(const GenerateOptions &other) : d(other.d) ++{ ++} ++ ++GenerateOptions &GenerateOptions::operator=(const GenerateOptions &other) ++{ ++ d = other.d; ++ return *this; ++} ++ ++GenerateOptions::~GenerateOptions() ++{ ++} ++ ++/*! ++ * Returns the name of the generator used to create the external build system files. ++ * The default is empty. ++ */ ++QString GenerateOptions::generatorName() const ++{ ++ return d->generatorName; ++} ++ ++/*! ++ * \brief Sets the name of the generator used to create the external build system files. ++ */ ++void GenerateOptions::setGeneratorName(const QString &generatorName) ++{ ++ d->generatorName = generatorName; ++} ++ ++} // namespace qbs +diff --git a/src/lib/corelib/tools/generateoptions.h b/src/lib/corelib/tools/generateoptions.h +new file mode 100644 +index 0000000..bb5c1c4 +--- /dev/null ++++ b/src/lib/corelib/tools/generateoptions.h +@@ -0,0 +1,58 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++#ifndef QBS_GENERATEOPTIONS_H ++#define QBS_GENERATEOPTIONS_H ++ ++#include "qbs_export.h" ++ ++#include ++#include ++ ++namespace qbs { ++namespace Internal { class GenerateOptionsPrivate; } ++ ++class QBS_EXPORT GenerateOptions ++{ ++public: ++ GenerateOptions(); ++ GenerateOptions(const GenerateOptions &other); ++ GenerateOptions &operator=(const GenerateOptions &other); ++ ~GenerateOptions(); ++ ++ QString generatorName() const; ++ void setGeneratorName(const QString &generatorName); ++ ++private: ++ QSharedDataPointer d; ++}; ++ ++} // namespace qbs ++ ++#endif // QBS_GENERATEOPTIONS_H +diff --git a/src/lib/corelib/tools/generatorpluginmanager.cpp b/src/lib/corelib/tools/generatorpluginmanager.cpp +new file mode 100644 +index 0000000..5ac94fd +--- /dev/null ++++ b/src/lib/corelib/tools/generatorpluginmanager.cpp +@@ -0,0 +1,128 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "generatorpluginmanager.h" ++ ++#include ++ ++#include ++#include ++#include ++ ++#include ++ ++#include ++#include ++#include ++ ++namespace qbs { ++namespace Internal { ++ ++GeneratorPluginManager::~GeneratorPluginManager() ++{ ++ foreach (QLibrary * const lib, m_libs) { ++ lib->unload(); ++ delete lib; ++ } ++} ++ ++GeneratorPluginManager *GeneratorPluginManager::instance() ++{ ++ static GeneratorPluginManager generatorPlugin; ++ return &generatorPlugin; ++} ++ ++GeneratorPluginManager::GeneratorPluginManager() ++{ ++} ++ ++QStringList GeneratorPluginManager::loadedPluginNames() ++{ ++ return instance()->m_generators.keys(); ++} ++ ++Generator *GeneratorPluginManager::generatorWithName(const QString &generatorName) ++{ ++ return instance()->m_generators.value(generatorName); ++} ++ ++void GeneratorPluginManager::loadPlugins(const QStringList &pluginPaths, const Logger &logger) ++{ ++ QStringList filters; ++ ++ if (HostOsInfo::isWindowsHost()) ++ filters << "*.dll"; ++ else if (HostOsInfo::isOsxHost()) ++ filters << "*.dylib"; ++ else ++ filters << "*.so"; ++ ++ foreach (const QString &pluginPath, pluginPaths) { ++ logger.qbsTrace() << QString::fromLocal8Bit("pluginmanager: loading plugins from '%1'.") ++ .arg(QDir::toNativeSeparators(pluginPath)); ++ QDirIterator it(pluginPath, filters, QDir::Files); ++ while (it.hasNext()) { ++ const QString fileName = it.next(); ++ if (!fileName.contains(QLatin1String("_generator"))) ++ continue; ++ ++ QScopedPointer lib(new QLibrary(fileName)); ++ if (!lib->load()) { ++ logger.qbsWarning() << Tr::tr("pluginmanager: couldn't load plugin '%1': %2") ++ .arg(QDir::toNativeSeparators(fileName), lib->errorString()); ++ continue; ++ } ++ ++ getGenerators_f getGenerators = reinterpret_cast(lib->resolve("getGenerators")); ++ if (!getGenerators) { ++ logger.qbsWarning() << Tr::tr("pluginmanager: couldn't resolve " ++ "symbol in '%1'.").arg(QDir::toNativeSeparators(fileName)); ++ continue; ++ } ++ ++ Generator **plugins = getGenerators(); ++ if (plugins == 0) { ++ logger.qbsWarning() << Tr::tr("pluginmanager: no generators " ++ "returned from '%1'.").arg(QDir::toNativeSeparators(fileName)); ++ continue; ++ } ++ ++ logger.qbsTrace() << QString::fromLocal8Bit("pluginmanager: scanner plugin '%1' " ++ "loaded.").arg(QDir::toNativeSeparators(fileName)); ++ ++ for (int i = 0; plugins[i] != 0; ++i) ++ m_generators[plugins[i]->generatorName()] = plugins[i]; ++ m_libs.append(lib.take()); ++ } ++ } ++} ++ ++} // namespace Internal ++} // namespace qbs +diff --git a/src/lib/corelib/tools/generatorpluginmanager.h b/src/lib/corelib/tools/generatorpluginmanager.h +new file mode 100644 +index 0000000..4f6351b +--- /dev/null ++++ b/src/lib/corelib/tools/generatorpluginmanager.h +@@ -0,0 +1,69 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef QBS_GENERATORPLUGINMANAGER_H ++#define QBS_GENERATORPLUGINMANAGER_H ++ ++#include ++ ++#include ++#include ++#include ++ ++QT_BEGIN_NAMESPACE ++class QLibrary; ++QT_END_NAMESPACE ++ ++namespace qbs { ++class Generator; ++namespace Internal { ++class Logger; ++ ++class QBS_EXPORT GeneratorPluginManager ++{ ++public: ++ ~GeneratorPluginManager(); ++ static GeneratorPluginManager *instance(); ++ static QStringList loadedPluginNames(); ++ static Generator *generatorWithName(const QString &generatorName); ++ void loadPlugins(const QStringList &paths, const Logger &logger); ++ ++private: ++ GeneratorPluginManager(); ++ ++private: ++ QList m_libs; ++ QHash m_generators; ++}; ++ ++} // namespace Internal ++} // namespace qbs ++ ++#endif +diff --git a/src/lib/corelib/tools/scannerpluginmanager.cpp b/src/lib/corelib/tools/scannerpluginmanager.cpp +index 7a455de..28c80bb 100644 +--- a/src/lib/corelib/tools/scannerpluginmanager.cpp ++++ b/src/lib/corelib/tools/scannerpluginmanager.cpp +@@ -81,6 +81,9 @@ void ScannerPluginManager::loadPlugins(const QStringList &pluginPaths, const Log + QDirIterator it(pluginPath, filters, QDir::Files); + while (it.hasNext()) { + const QString fileName = it.next(); ++ if (!fileName.contains(QLatin1String("_scanner"))) ++ continue; ++ + QScopedPointer lib(new QLibrary(fileName)); + if (!lib->load()) { + logger.qbsWarning() << Tr::tr("Pluginmanager: Cannot load plugin '%1': %2") +diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri +index 50775ce..aebab08 100644 +--- a/src/lib/corelib/tools/tools.pri ++++ b/src/lib/corelib/tools/tools.pri +@@ -8,6 +8,8 @@ HEADERS += \ + $$PWD/executablefinder.h \ + $$PWD/fileinfo.h \ + $$PWD/filetime.h \ ++ $$PWD/generateoptions.h \ ++ $$PWD/generatorpluginmanager.h \ + $$PWD/id.h \ + $$PWD/persistence.h \ + $$PWD/scannerpluginmanager.h \ +@@ -39,6 +41,8 @@ SOURCES += \ + $$PWD/error.cpp \ + $$PWD/executablefinder.cpp \ + $$PWD/fileinfo.cpp \ ++ $$PWD/generateoptions.cpp \ ++ $$PWD/generatorpluginmanager.cpp \ + $$PWD/id.cpp \ + $$PWD/persistence.cpp \ + $$PWD/scannerpluginmanager.cpp \ +diff --git a/src/plugins/generator/generator.pro b/src/plugins/generator/generator.pro +new file mode 100644 +index 0000000..6531408 +--- /dev/null ++++ b/src/plugins/generator/generator.pro +@@ -0,0 +1,2 @@ ++TEMPLATE = subdirs ++SUBDIRS = xcode +diff --git a/src/plugins/generator/generatorplugin.h b/src/plugins/generator/generatorplugin.h +new file mode 100644 +index 0000000..e456ff4 +--- /dev/null ++++ b/src/plugins/generator/generatorplugin.h +@@ -0,0 +1,46 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef GENERATORPLUGIN_H ++#define GENERATORPLUGIN_H ++ ++#include ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++typedef qbs::Generator **(*getGenerators_f)(); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif // GENERATORPLUGIN_H +diff --git a/src/plugins/generator/xcode/main.cpp b/src/plugins/generator/xcode/main.cpp +new file mode 100644 +index 0000000..86a97f2 +--- /dev/null ++++ b/src/plugins/generator/xcode/main.cpp +@@ -0,0 +1,45 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcodenativegenerator.h" ++#include "xcodesimplegenerator.h" ++ ++static qbs::Generator* generators[] = { ++ new qbs::XcodeNativeGenerator(), ++ new qbs::XcodeSimpleGenerator(), ++ NULL ++}; ++ ++extern "C" { ++ qbs::Generator **getGenerators() ++ { ++ return generators; ++ } ++} +diff --git a/src/plugins/generator/xcode/opensteppropertylist.cpp b/src/plugins/generator/xcode/opensteppropertylist.cpp +new file mode 100644 +index 0000000..b10bceb +--- /dev/null ++++ b/src/plugins/generator/xcode/opensteppropertylist.cpp +@@ -0,0 +1,186 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "opensteppropertylist.h" ++ ++const QChar OpenStepPropertyList::NewlineToken = QLatin1Char('\n'); ++const QChar OpenStepPropertyList::DictionaryBeginToken = QLatin1Char('{'); ++const QChar OpenStepPropertyList::DictionarySeparatorToken = QLatin1Char(';'); ++const QChar OpenStepPropertyList::DictionaryEndToken = QLatin1Char('}'); ++const QChar OpenStepPropertyList::ArrayBeginToken = QLatin1Char('('); ++const QChar OpenStepPropertyList::ArraySeparatorToken = QLatin1Char(','); ++const QChar OpenStepPropertyList::ArrayEndToken = QLatin1Char(')'); ++const QChar OpenStepPropertyList::QuotedStringBeginToken = QLatin1Char('"'); ++const QChar OpenStepPropertyList::QuotedStringEndToken = QLatin1Char('"'); ++const QChar OpenStepPropertyList::DataBeginToken = QLatin1Char('<'); ++const QChar OpenStepPropertyList::DataEndToken = QLatin1Char('>'); ++const QChar OpenStepPropertyList::IndentationToken = QLatin1Char('\t'); ++ ++static QString formatString(const QString &string) ++{ ++ bool isQuoted = string.isEmpty(); ++ if (!isQuoted) ++ { ++ for (int i = 0; i < string.size(); ++i) ++ { ++ if (!string[i].isLetterOrNumber() || string[i] > 127) ++ { ++ isQuoted = true; ++ break; ++ } ++ } ++ } ++ ++ QString outString = string; ++ outString.replace(QLatin1String("\""), QLatin1String("\\\"")); ++ ++ if (isQuoted) ++ outString.prepend(OpenStepPropertyList::QuotedStringBeginToken); ++ if (isQuoted) ++ outString.append(OpenStepPropertyList::QuotedStringEndToken); ++ ++ return outString; ++} ++ ++QString OpenStepPropertyList::toString(const QVariantMap &propertyList) ++{ ++ return toString(propertyList, 0) + NewlineToken; ++} ++ ++QString OpenStepPropertyList::toString(const QVariantMap &propertyList, int indentationLevel) ++{ ++ QString string(indentationLevel, IndentationToken); ++ string += DictionaryBeginToken; ++ string += NewlineToken; ++ ++ foreach (const QString &key, propertyList.keys()) ++ { ++ if (key == QLatin1String("__comment__")) ++ continue; ++ ++ const QVariant &object = propertyList[key]; ++ string += QString(indentationLevel + 1, IndentationToken); ++ string += formatString(key); ++ ++ QString comment = object.toMap()[QLatin1String("__comment__")].toString(); ++ if (!comment.isEmpty()) ++ string += QLatin1String(" /* ") + comment.replace(QLatin1String("*/"), QLatin1String("* /")) + QLatin1String(" */"); ++ ++ string += QLatin1String(" = "); ++ ++ if (object.type() == QVariant::Map || object.type() == QVariant::List || ++ object.type() == QVariant::StringList || object.type() == QVariant::ByteArray) ++ string += toString(object, indentationLevel + 1).trimmed(); ++ else ++ string += toString(object, 0); ++ ++ string += DictionarySeparatorToken; ++ string += NewlineToken; ++ } ++ ++ string += QString(indentationLevel, IndentationToken) + DictionaryEndToken; ++ return string; ++} ++ ++QString OpenStepPropertyList::toString(const QList &propertyList) ++{ ++ return toString(propertyList, 0) + NewlineToken; ++} ++ ++QString OpenStepPropertyList::toString(const QList &propertyList, int indentationLevel) ++{ ++ QString string(indentationLevel, IndentationToken); ++ string += ArrayBeginToken; ++ string += NewlineToken; ++ ++ for (int i = 0; i < propertyList.size(); ++i) ++ { ++ const QVariant &object = propertyList[i]; ++ string += toString(object, indentationLevel + 1); ++ string += ArraySeparatorToken; ++ string += NewlineToken; ++ } ++ ++ string += QString(indentationLevel, IndentationToken) + ArrayEndToken; ++ return string; ++} ++ ++QString OpenStepPropertyList::toString(const QVariant &object, int indentationLevel) ++{ ++ switch (object.type()) ++ { ++ case QVariant::Bool: ++ return object.toBool() ? QLatin1String("1") : QLatin1String("0"); ++ case QVariant::ByteArray: ++ return toString(object.toByteArray(), indentationLevel); ++ case QVariant::Date: ++ case QVariant::DateTime: ++ case QVariant::Time: ++ return toString(object.toDateTime(), indentationLevel); ++ case QVariant::Double: ++ return QString::number(object.toDouble()); ++ case QVariant::Int: ++ return QString::number(object.toInt()); ++ case QVariant::List: ++ case QVariant::StringList: ++ return toString(object.toList(), indentationLevel); ++ case QVariant::LongLong: ++ return QString::number(object.toLongLong()); ++ case QVariant::Map: ++ return toString(object.toMap(), indentationLevel); ++ case QVariant::String: ++ return toString(object.toString(), indentationLevel); ++ case QVariant::UInt: ++ return QString::number(object.toUInt()); ++ case QVariant::ULongLong: ++ return QString::number(object.toULongLong()); ++ default: ++ throw "Unsupported property list object type"; ++ } ++} ++ ++QString OpenStepPropertyList::toString(const QByteArray &object, int indentationLevel) ++{ ++ QString string(indentationLevel, IndentationToken); ++ string += DataBeginToken + QString::fromLatin1(object.toHex()) + DataEndToken; ++ return string; ++} ++ ++QString OpenStepPropertyList::toString(const QDateTime &object, int indentationLevel) ++{ ++ return toString(object.toUTC().toString(Qt::ISODate), indentationLevel); ++} ++ ++QString OpenStepPropertyList::toString(const QString &object, int indentationLevel) ++{ ++ QString string(indentationLevel, IndentationToken); ++ string += formatString(object); ++ return string; ++} +diff --git a/src/plugins/generator/xcode/opensteppropertylist.h b/src/plugins/generator/xcode/opensteppropertylist.h +new file mode 100644 +index 0000000..ed50aa3 +--- /dev/null ++++ b/src/plugins/generator/xcode/opensteppropertylist.h +@@ -0,0 +1,71 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef OPENSTEPPROPERTYLIST_H ++#define OPENSTEPPROPERTYLIST_H ++ ++#include ++#include ++#include ++#include ++#include ++ ++class OpenStepPropertyList ++{ ++ Q_DISABLE_COPY(OpenStepPropertyList) ++public: ++ static const QChar NewlineToken; ++ static const QChar DictionaryBeginToken; ++ static const QChar DictionarySeparatorToken; ++ static const QChar DictionaryEndToken; ++ static const QChar ArrayBeginToken; ++ static const QChar ArraySeparatorToken; ++ static const QChar ArrayEndToken; ++ static const QChar QuotedStringBeginToken; ++ static const QChar QuotedStringEndToken; ++ static const QChar DataBeginToken; ++ static const QChar DataEndToken; ++ static const QChar IndentationToken; ++ ++ static QString toString(const QVariantMap &propertyList); ++ static QString toString(const QList &propertyList); ++ ++private: ++ OpenStepPropertyList(); ++ ++ static QString toString(const QVariantMap &propertyList, int indentationLevel); ++ static QString toString(const QList &propertyList, int indentationLevel); ++ static QString toString(const QVariant &object, int indentationLevel); ++ static QString toString(const QByteArray &object, int indentationLevel); ++ static QString toString(const QDateTime &object, int indentationLevel); ++ static QString toString(const QString &object, int indentationLevel); ++}; ++ ++#endif // OPENSTEPPROPERTYLIST_H +diff --git a/src/plugins/generator/xcode/pbx.h b/src/plugins/generator/xcode/pbx.h +new file mode 100644 +index 0000000..fda52e7 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbx.h +@@ -0,0 +1,53 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBX_H ++#define PBX_H ++ ++#include "opensteppropertylist.h" ++#include "pbxbuildfile.h" ++#include "pbxbuildphase.h" ++#include "pbxcontainer.h" ++#include "pbxfileencoding.h" ++#include "pbxfilereference.h" ++#include "pbxfiletype.h" ++#include "pbxgroup.h" ++#include "pbxlegacytarget.h" ++#include "pbxnativetarget.h" ++#include "pbxobject.h" ++#include "pbxproducttype.h" ++#include "pbxproject.h" ++#include "pbxreference.h" ++#include "pbxsourcetree.h" ++#include "pbxtarget.h" ++#include "xcbuildconfiguration.h" ++#include "xcconfigurationlist.h" ++ ++#endif // PBX_H +diff --git a/src/plugins/generator/xcode/pbxbuildfile.cpp b/src/plugins/generator/xcode/pbxbuildfile.cpp +new file mode 100644 +index 0000000..4f49ead +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxbuildfile.cpp +@@ -0,0 +1,72 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxbuildfile.h" ++#include "pbxfilereference.h" ++ ++class PBXBuildFilePrivate ++{ ++public: ++ PBXBuildFilePrivate(); ++ PBXFileReference *reference; ++}; ++ ++PBXBuildFilePrivate::PBXBuildFilePrivate() ++ : reference() ++{ ++} ++ ++PBXBuildFile::PBXBuildFile(QObject *parent) : ++ PBXObject(parent), d(new PBXBuildFilePrivate) ++{ ++} ++ ++PBXBuildFile::~PBXBuildFile() ++{ ++ delete d; ++} ++ ++QString PBXBuildFile::isa() const ++{ ++ return QLatin1String("PBXBuildFile"); ++} ++ ++QVariantMap PBXBuildFile::toMap() const ++{ ++ QVariantMap self = PBXObject::toMap(); ++ if (d->reference) ++ self.insert(QLatin1String("fileRef"), d->reference->identifier()); ++ return self; ++} ++ ++void PBXBuildFile::setFileReference(PBXFileReference *reference) ++{ ++ d->reference = reference; ++} +diff --git a/src/plugins/generator/xcode/pbxbuildfile.h b/src/plugins/generator/xcode/pbxbuildfile.h +new file mode 100644 +index 0000000..1bee93b +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxbuildfile.h +@@ -0,0 +1,64 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXBUILDFILE_H ++#define PBXBUILDFILE_H ++ ++#include "pbxobject.h" ++#include ++ ++class PBXFileReference; ++ ++class PBXBuildFilePrivate; ++ ++/*! ++ * \brief The PBXBuildFile class represents a file reference that is used in a build phase. ++ * Its primary purpose is to allow additional build settings to be applied at the file level. ++ */ ++class PBXBuildFile : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXBuildFile(QObject *parent = 0); ++ virtual ~PBXBuildFile(); ++ ++ QString isa() const; ++ QVariantMap toMap() const; ++ ++ void setFileReference(PBXFileReference *reference); ++ ++ QString absolutePath() const; ++ QStringList attributes() const; ++ ++private: ++ PBXBuildFilePrivate *d; ++}; ++ ++#endif // PBXBUILDFILE_H +diff --git a/src/plugins/generator/xcode/pbxbuildphase.cpp b/src/plugins/generator/xcode/pbxbuildphase.cpp +new file mode 100644 +index 0000000..d1cad2c +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxbuildphase.cpp +@@ -0,0 +1,77 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxbuildfile.h" ++#include "pbxbuildphase.h" ++#include "pbxfilereference.h" ++ ++class PBXBuildPhasePrivate ++{ ++public: ++ QList buildFiles; ++}; ++ ++PBXBuildPhase::PBXBuildPhase(QObject *parent) : ++ PBXObject(parent), d(new PBXBuildPhasePrivate) ++{ ++} ++ ++PBXBuildPhase::~PBXBuildPhase() ++{ ++ delete d; ++} ++ ++QVariantMap PBXBuildPhase::toMap() const ++{ ++ QVariantMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("buildActionMask"), 2147483647); ++ ++ QStringList fileReferenceList; ++ foreach (PBXBuildFile *buildFile, buildFiles()) ++ fileReferenceList += buildFile->identifier(); ++ self.insert(QLatin1String("files"), fileReferenceList); ++ ++ self.insert(QLatin1String("runOnlyForDeploymentPostprocessing"), 0); ++ ++ return self; ++} ++ ++QList PBXBuildPhase::buildFiles() const ++{ ++ return d->buildFiles; ++} ++ ++bool PBXBuildPhase::addReference(PBXFileReference *reference) ++{ ++ PBXBuildFile *buildFile = new PBXBuildFile(this); ++ buildFile->setFileReference(reference); ++ d->buildFiles.append(buildFile); ++ return true; ++} +diff --git a/src/plugins/generator/xcode/pbxbuildphase.h b/src/plugins/generator/xcode/pbxbuildphase.h +new file mode 100644 +index 0000000..25ac5e2 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxbuildphase.h +@@ -0,0 +1,60 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXBUILDPHASE_H ++#define PBXBUILDPHASE_H ++ ++#include "pbxobject.h" ++#include ++ ++class PBXBuildFile; ++class PBXFileReference; ++ ++class PBXBuildPhasePrivate; ++ ++class PBXBuildPhase : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXBuildPhase(QObject *parent = 0); ++ virtual ~PBXBuildPhase(); ++ ++ QVariantMap toMap() const; ++ ++ QList buildFiles() const; ++ ++ bool addReference(PBXFileReference *reference); ++ bool containsFileReferenceIdenticalTo(PBXFileReference *reference); ++ ++private: ++ PBXBuildPhasePrivate *d; ++}; ++ ++#endif // PBXBUILDPHASE_H +diff --git a/src/plugins/generator/xcode/pbxcontainer.cpp b/src/plugins/generator/xcode/pbxcontainer.cpp +new file mode 100644 +index 0000000..10a2470 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxcontainer.cpp +@@ -0,0 +1,53 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxcontainer.h" ++#include "pbxgroup.h" ++ ++class PBXContainerPrivate ++{ ++public: ++ PBXGroup group; ++}; ++ ++PBXContainer::PBXContainer(QObject *parent) : ++ PBXObject(parent), d(new PBXContainerPrivate) ++{ ++} ++ ++PBXContainer::~PBXContainer() ++{ ++ delete d; ++} ++ ++PBXGroup *PBXContainer::rootGroup() const ++{ ++ return &d->group; ++} +diff --git a/src/plugins/generator/xcode/pbxcontainer.h b/src/plugins/generator/xcode/pbxcontainer.h +new file mode 100644 +index 0000000..f920f56 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxcontainer.h +@@ -0,0 +1,57 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXCONTAINER_H ++#define PBXCONTAINER_H ++ ++#include "pbxobject.h" ++#include ++ ++class PBXFileReference; ++class PBXGroup; ++ ++class PBXContainerPrivate; ++ ++class PBXContainer : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXContainer(QObject *parent = 0); ++ virtual ~PBXContainer(); ++ ++ PBXGroup *rootGroup() const; ++ ++ PBXFileReference *fileReferenceForPath(const QString &path); ++ ++private: ++ PBXContainerPrivate *d; ++}; ++ ++#endif // PBXCONTAINER_H +diff --git a/src/plugins/generator/xcode/pbxfileencoding.h b/src/plugins/generator/xcode/pbxfileencoding.h +new file mode 100644 +index 0000000..852dac5 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxfileencoding.h +@@ -0,0 +1,57 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXFILEENCODING_H ++#define PBXFILEENCODING_H ++ ++namespace PBX ++{ ++ typedef enum { ++ Default = 0, ++ UTF8 = 4, ++ UTF16 = 10, ++ UTF16_BE = 0x90000100, ++ UTF16_LE = 0x94000100, ++ Western = 30, ++ Japanese = 0x80000001, ++ TraditionalChinese = 0x80000002, ++ Korean = 0x80000003, ++ Arabic = 0x80000004, ++ Hebrew = 0x80000005, ++ Greek = 0x80000006, ++ Cyrillic = 0x80000007, ++ SimplifiedChinese = 0x80000019, ++ CentralEuropean = 0x8000001D, ++ Turkish = 0x80000023, ++ Icelandic = 0x80000025 ++ } PBXFileEncoding; ++} ++ ++#endif // PBXFILEENCODING_H +diff --git a/src/plugins/generator/xcode/pbxfilereference.cpp b/src/plugins/generator/xcode/pbxfilereference.cpp +new file mode 100644 +index 0000000..68f165a +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxfilereference.cpp +@@ -0,0 +1,73 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxfileencoding.h" ++#include "pbxfilereference.h" ++#include "pbxfiletype.h" ++#include "pbxgroup.h" ++#include "pbxsourcetree.h" ++#include ++ ++class PBXFileReferencePrivate ++{ ++public: ++}; ++ ++PBXFileReference::PBXFileReference(QObject *parent) : ++ PBXReference(parent), d(new PBXFileReferencePrivate) ++{ ++} ++ ++PBXFileReference::~PBXFileReference() ++{ ++ delete d; ++} ++ ++QString PBXFileReference::isa() const ++{ ++ return QLatin1String("PBXFileReference"); ++} ++ ++QVariantMap PBXFileReference::toMap() const ++{ ++ QVariantMap self = PBXReference::toMap(); ++ self.insert(QLatin1String("fileEncoding"), PBX::Default); ++ //self.insert(QLatin1String("explicitFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).extension())); // PBXFileType ++ //self.insert(QLatin1String("includeInIndex"), 0); ++ //self.insert(QLatin1String("lastKnownFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).extension())); // PBXFileType ++ return self; ++} ++ ++QString PBXFileReference::comment() const ++{ ++ PBXGroup *group = dynamic_cast(parent()); ++ Q_ASSERT(group); ++ return QString(QLatin1String("%1 in %2")).arg(name()).arg(group->name()); ++} +diff --git a/src/plugins/generator/xcode/pbxfilereference.h b/src/plugins/generator/xcode/pbxfilereference.h +new file mode 100644 +index 0000000..9ce5ed7 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxfilereference.h +@@ -0,0 +1,54 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXFILEREFERENCE_H ++#define PBXFILEREFERENCE_H ++ ++#include "pbxreference.h" ++ ++class PBXFileReferencePrivate; ++ ++class PBXFileReference : public PBXReference ++{ ++ Q_OBJECT ++public: ++ explicit PBXFileReference(QObject *parent = 0); ++ virtual ~PBXFileReference(); ++ ++ QString isa() const; ++ QVariantMap toMap() const; ++ ++ QString comment() const; ++ ++private: ++ PBXFileReferencePrivate *d; ++}; ++ ++#endif // PBXFILEREFERENCE_H +diff --git a/src/plugins/generator/xcode/pbxfiletype.cpp b/src/plugins/generator/xcode/pbxfiletype.cpp +new file mode 100644 +index 0000000..3a57c29 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxfiletype.cpp +@@ -0,0 +1,41 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxfiletype.h" ++ ++PBXFileType::PBXFileType(QObject *parent) : ++ QObject(parent) ++{ ++} ++ ++QString PBXFileType::typeForFileExtension(const QString &fileExtension) ++{ ++ return QString(); ++} +diff --git a/src/plugins/generator/xcode/pbxfiletype.h b/src/plugins/generator/xcode/pbxfiletype.h +new file mode 100644 +index 0000000..3818872 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxfiletype.h +@@ -0,0 +1,47 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXFILETYPE_H ++#define PBXFILETYPE_H ++ ++#include ++ ++class PBXFileType : public QObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXFileType(QObject *parent = 0); ++ ++ static QStringList allTypes(); ++ static QStringList fileExtensionsForType(const QString &type); ++ static QString typeForFileExtension(const QString &fileExtension); ++}; ++ ++#endif // PBXFILETYPE_H +diff --git a/src/plugins/generator/xcode/pbxgroup.cpp b/src/plugins/generator/xcode/pbxgroup.cpp +new file mode 100644 +index 0000000..a27e879 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxgroup.cpp +@@ -0,0 +1,114 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxfilereference.h" ++#include "pbxgroup.h" ++ ++class PBXGroupPrivate ++{ ++public: ++ QList children; ++}; ++ ++PBXGroup::PBXGroup(QObject *parent) : ++ PBXReference(parent), d(new PBXGroupPrivate) ++{ ++} ++ ++PBXGroup::~PBXGroup() ++{ ++ delete d; ++} ++ ++PBXGroup *PBXGroup::groupWithName(const QString &name, PBXGroup *parentGroup) ++{ ++ PBXGroup *group = new PBXGroup(); ++ group->setName(name); ++ ++ if (parentGroup) { ++ group->setParent(parentGroup); ++ parentGroup->addItem(group); ++ } ++ ++ return group; ++} ++ ++QString PBXGroup::isa() const ++{ ++ return QLatin1String("PBXGroup"); ++} ++ ++QVariantMap PBXGroup::toMap() const ++{ ++ QVariantMap self = PBXReference::toMap(); ++ ++ QStringList childIdentifiers; ++ foreach (PBXReference *reference, d->children) ++ childIdentifiers += reference->identifier(); ++ ++ self.insert(QLatin1String("children"), childIdentifiers); ++ ++ return self; ++} ++ ++QList PBXGroup::children() const ++{ ++ return d->children; ++} ++ ++void PBXGroup::addItem(PBXReference *item) ++{ ++ d->children.append(item); ++} ++ ++void PBXGroup::insertItem(PBXReference *item, int index) ++{ ++ d->children.insert(index, item); ++} ++ ++void PBXGroup::removeItem(PBXReference *item) ++{ ++ d->children.removeOne(item); ++} ++ ++QList PBXGroup::addFiles(const QStringList &files, bool copy, bool createGroupsRecursively) ++{ ++ QList fileRefs; ++ foreach (const QString &filePath, files) ++ { ++ PBXFileReference *fileReference = new PBXFileReference(this); ++ fileReference->setPath(filePath); ++ fileReference->setName(filePath.mid(filePath.lastIndexOf('/') + 1)); ++ d->children.append(fileReference); ++ fileRefs.append(fileReference); ++ } ++ ++ return fileRefs; ++} +diff --git a/src/plugins/generator/xcode/pbxgroup.h b/src/plugins/generator/xcode/pbxgroup.h +new file mode 100644 +index 0000000..660e489 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxgroup.h +@@ -0,0 +1,69 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXGROUP_H ++#define PBXGROUP_H ++ ++#include "pbxreference.h" ++ ++class PBXFileReference; ++ ++class PBXGroupPrivate; ++ ++class PBXGroup : public PBXReference ++{ ++ Q_OBJECT ++public: ++ explicit PBXGroup(QObject *parent = 0); ++ virtual ~PBXGroup(); ++ ++ static PBXGroup *groupWithName(const QString &name, PBXGroup *parentGroup = 0); ++ ++ QString isa() const; ++ QVariantMap toMap() const; ++ ++ QList children() const; ++ ++ bool containsItem(PBXReference *item) const; ++ ++ void addItem(PBXReference *item); ++ void insertItem(PBXReference *item, int index); ++ void removeItem(PBXReference *item); ++ ++ /*! ++ * \param files list of absolute paths ++ */ ++ QList addFiles(const QStringList &files, bool copy, bool createGroupsRecursively); ++ ++private: ++ PBXGroupPrivate *d; ++}; ++ ++#endif // PBXGROUP_H +diff --git a/src/plugins/generator/xcode/pbxlegacytarget.cpp b/src/plugins/generator/xcode/pbxlegacytarget.cpp +new file mode 100644 +index 0000000..e18c97e +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxlegacytarget.cpp +@@ -0,0 +1,127 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxfilereference.h" ++#include "pbxlegacytarget.h" ++ ++class PBXLegacyTargetPrivate ++{ ++public: ++ QString buildToolPath; ++ QString buildArgumentsString; ++ QString buildWorkingDirectory; ++ bool passBuildSettingsInEnvironment; ++ PBXFileReference *productReference; ++}; ++ ++PBXLegacyTarget::PBXLegacyTarget(QObject *parent) : ++ PBXTarget(parent), d(new PBXLegacyTargetPrivate) ++{ ++ d->buildToolPath = QLatin1String("/bin/bash"); ++ d->buildArgumentsString = QLatin1String("$(ACTION)"); ++ d->buildWorkingDirectory = QLatin1String("$BUILT_PRODUCTS_DIR"); ++ d->passBuildSettingsInEnvironment = true; ++ d->productReference = NULL; ++} ++ ++PBXLegacyTarget::~PBXLegacyTarget() ++{ ++ delete d; ++} ++ ++QString PBXLegacyTarget::isa() const ++{ ++ return QLatin1String("PBXLegacyTarget"); ++} ++ ++QVariantMap PBXLegacyTarget::toMap() const ++{ ++ QVariantMap self = PBXTarget::toMap(); ++ ++ self.insert(QLatin1String("buildToolPath"), d->buildToolPath); ++ self.insert(QLatin1String("buildArgumentsString"), d->buildArgumentsString); ++ self.insert(QLatin1String("buildWorkingDirectory"), d->buildWorkingDirectory); ++ self.insert(QLatin1String("passBuildSettingsInEnvironment"), d->passBuildSettingsInEnvironment); ++ ++ if (d->productReference) ++ self.insert(QLatin1String("productReference"), d->productReference->identifier()); ++ ++ return self; ++} ++ ++QString PBXLegacyTarget::buildToolPath() const ++{ ++ return d->buildToolPath; ++} ++ ++void PBXLegacyTarget::setBuildToolPath(const QString &buildToolPath) ++{ ++ d->buildToolPath = buildToolPath; ++} ++ ++QString PBXLegacyTarget::buildArgumentsString() const ++{ ++ return d->buildArgumentsString; ++} ++ ++void PBXLegacyTarget::setBuildArgumentsString(const QString &buildArgumentsString) ++{ ++ d->buildArgumentsString = buildArgumentsString; ++} ++ ++QString PBXLegacyTarget::buildWorkingDirectory() const ++{ ++ return d->buildWorkingDirectory; ++} ++ ++void PBXLegacyTarget::setBuildWorkingDirectory(const QString &buildWorkingDirectory) ++{ ++ d->buildWorkingDirectory = buildWorkingDirectory; ++} ++ ++bool PBXLegacyTarget::passBuildSettingsInEnvironment() const ++{ ++ return d->passBuildSettingsInEnvironment; ++} ++ ++void PBXLegacyTarget::setPassBuildSettingsInEnvironment(bool passBuildSettingsInEnvironment) ++{ ++ d->passBuildSettingsInEnvironment = passBuildSettingsInEnvironment; ++} ++ ++PBXFileReference *PBXLegacyTarget::productReference() const ++{ ++ return d->productReference; ++} ++ ++void PBXLegacyTarget::setProductReference(PBXFileReference *productReference) ++{ ++ d->productReference = productReference; ++} +diff --git a/src/plugins/generator/xcode/pbxlegacytarget.h b/src/plugins/generator/xcode/pbxlegacytarget.h +new file mode 100644 +index 0000000..4006b3b +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxlegacytarget.h +@@ -0,0 +1,73 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXLEGACYTARGET_H ++#define PBXLEGACYTARGET_H ++ ++#include "pbxtarget.h" ++ ++class PBXFileReference; ++ ++class PBXLegacyTargetPrivate; ++ ++class PBXLegacyTarget : public PBXTarget ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXLegacyTarget) ++public: ++ explicit PBXLegacyTarget(QObject *parent = 0); ++ virtual ~PBXLegacyTarget(); ++ ++ QString isa() const; ++ QVariantMap toMap() const; ++ ++ QString buildToolPath() const; ++ void setBuildToolPath(const QString &buildToolPath); ++ ++ QString buildArgumentsString() const; ++ void setBuildArgumentsString(const QString &buildArgumentsString); ++ ++ QString buildWorkingDirectory() const; ++ void setBuildWorkingDirectory(const QString &buildWorkingDirectory); ++ ++ bool passBuildSettingsInEnvironment() const; ++ void setPassBuildSettingsInEnvironment(bool passBuildSettingsInEnvironment); ++ ++ /*! ++ * File reference to the target's output file. ++ */ ++ PBXFileReference *productReference() const; ++ void setProductReference(PBXFileReference *productReference); ++ ++private: ++ PBXLegacyTargetPrivate *d; ++}; ++ ++#endif // PBXLEGACYTARGET_H +diff --git a/src/plugins/generator/xcode/pbxnativetarget.cpp b/src/plugins/generator/xcode/pbxnativetarget.cpp +new file mode 100644 +index 0000000..781dc67 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxnativetarget.cpp +@@ -0,0 +1,83 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxbuildphase.h" ++#include "pbxfilereference.h" ++#include "pbxnativetarget.h" ++#include "xcconfigurationlist.h" ++ ++class PBXNativeTargetPrivate ++{ ++public: ++ PBXNativeTargetPrivate(); ++ PBXFileReference *productReference; ++}; ++ ++PBXNativeTargetPrivate::PBXNativeTargetPrivate() ++ : productReference() ++{ ++} ++ ++PBXNativeTarget::PBXNativeTarget(QObject *parent) : ++ PBXTarget(parent), d(new PBXNativeTargetPrivate) ++{ ++} ++ ++PBXNativeTarget::~PBXNativeTarget() ++{ ++ delete d; ++} ++ ++QString PBXNativeTarget::isa() const ++{ ++ return QLatin1String("PBXNativeTarget"); ++} ++ ++QVariantMap PBXNativeTarget::toMap() const ++{ ++ QVariantMap self = PBXTarget::toMap(); ++ ++ self.insert(QLatin1String("productInstallPath"), QLatin1String("$(HOME)/Applications")); ++ ++ if (d->productReference) ++ self.insert(QLatin1String("productReference"), d->productReference->identifier()); ++ ++ return self; ++} ++ ++PBXFileReference *PBXNativeTarget::productReference() const ++{ ++ return d->productReference; ++} ++ ++void PBXNativeTarget::setProductReference(PBXFileReference *productReference) ++{ ++ d->productReference = productReference; ++} +diff --git a/src/plugins/generator/xcode/pbxnativetarget.h b/src/plugins/generator/xcode/pbxnativetarget.h +new file mode 100644 +index 0000000..d2ee90f +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxnativetarget.h +@@ -0,0 +1,61 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXNATIVETARGET_H ++#define PBXNATIVETARGET_H ++ ++#include "pbxtarget.h" ++ ++class PBXFileReference; ++ ++class PBXNativeTargetPrivate; ++ ++class PBXNativeTarget : public PBXTarget ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXNativeTarget) ++public: ++ explicit PBXNativeTarget(QObject *parent = 0); ++ ~PBXNativeTarget(); ++ ++ QString isa() const; ++ QVariantMap toMap() const; ++ ++ /*! ++ * File reference to the target's output file. ++ */ ++ PBXFileReference *productReference() const; ++ void setProductReference(PBXFileReference *productReference); ++ ++private: ++ PBXNativeTargetPrivate *d; ++}; ++ ++#endif // PBXNATIVETARGET_H +diff --git a/src/plugins/generator/xcode/pbxobject.cpp b/src/plugins/generator/xcode/pbxobject.cpp +new file mode 100644 +index 0000000..b5fcd13 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxobject.cpp +@@ -0,0 +1,69 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxobject.h" ++#include ++#include ++ ++class PBXObjectPrivate ++{ ++public: ++ QString identifier; ++}; ++ ++PBXObject::PBXObject(QObject *parent) ++ : QObject(parent), d(new PBXObjectPrivate) ++{ ++} ++ ++PBXObject::~PBXObject() ++{ ++ delete d; ++} ++ ++QString PBXObject::identifier() const ++{ ++ if (d->identifier.isEmpty()) ++ d->identifier = QUuid::createUuid().toByteArray().left(12).toHex().toUpper(); ++ return d->identifier; ++} ++ ++QVariantMap PBXObject::toMap() const ++{ ++ QVariantMap self; ++ self.insert(QLatin1String("__comment__"), comment()); ++ self.insert(QLatin1String("isa"), isa()); ++ return self; ++} ++ ++QString PBXObject::comment() const ++{ ++ return QString(); ++} +diff --git a/src/plugins/generator/xcode/pbxobject.h b/src/plugins/generator/xcode/pbxobject.h +new file mode 100644 +index 0000000..73ebdec +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxobject.h +@@ -0,0 +1,59 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXOBJECT_H ++#define PBXOBJECT_H ++ ++#include ++#include ++#include ++ ++class PBXObjectPrivate; ++ ++class PBXObject : public QObject ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXObject) ++protected: ++ explicit PBXObject(QObject *parent = 0); ++ ++public: ++ virtual ~PBXObject(); ++ ++ QString identifier() const; ++ virtual QString isa() const = 0; ++ virtual QVariantMap toMap() const; ++ virtual QString comment() const; ++ ++private: ++ PBXObjectPrivate *d; ++}; ++ ++#endif // PBXOBJECT_H +diff --git a/src/plugins/generator/xcode/pbxproducttype.cpp b/src/plugins/generator/xcode/pbxproducttype.cpp +new file mode 100644 +index 0000000..4f0bc00 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxproducttype.cpp +@@ -0,0 +1,56 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxproducttype.h" ++ ++QString PBX::productTypeString(PBX::PBXProductType productType) ++{ ++ switch (productType) ++ { ++ case Application: ++ return QLatin1String("com.apple.product-type.application"); ++ case Tool: ++ return QLatin1String("com.apple.product-type.tool"); ++ case LibraryStatic: ++ return QLatin1String("com.apple.product-type.library.static"); ++ case LibraryDynamic: ++ return QLatin1String("com.apple.product-type.library.dynamic"); ++ case Framework: ++ return QLatin1String("com.apple.product-type.framework"); ++ case Bundle: ++ return QLatin1String("com.apple.product-type.bundle"); ++ case KernelExtension: ++ return QLatin1String("com.apple.product-type.kernel-extension"); ++ case KernelExtensionIOKit: ++ return QLatin1String("com.apple.product-type.kernel-extension.iokit"); ++ } ++ ++ return QString(); ++} +diff --git a/src/plugins/generator/xcode/pbxproducttype.h b/src/plugins/generator/xcode/pbxproducttype.h +new file mode 100644 +index 0000000..4d48f3c +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxproducttype.h +@@ -0,0 +1,52 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXPRODUCTTYPE_H ++#define PBXPRODUCTTYPE_H ++ ++#include ++ ++namespace PBX ++{ ++ typedef enum { ++ Application = 1, ++ Tool, ++ LibraryStatic, ++ LibraryDynamic, ++ Framework, ++ Bundle, ++ KernelExtension, ++ KernelExtensionIOKit ++ } PBXProductType; ++ ++ QString productTypeString(PBXProductType productType); ++} ++ ++#endif // PBXPRODUCTTYPE_H +diff --git a/src/plugins/generator/xcode/pbxproject.cpp b/src/plugins/generator/xcode/pbxproject.cpp +new file mode 100644 +index 0000000..cbbfef2 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxproject.cpp +@@ -0,0 +1,218 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "opensteppropertylist.h" ++#include "pbxbuildphase.h" ++#include "pbxbuildfile.h" ++#include "pbxgroup.h" ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "xcbuildconfiguration.h" ++#include "xcconfigurationlist.h" ++#include ++#include ++ ++class PBXProjectPrivate ++{ ++public: ++ QString name; ++ QString projectAbsolutePath; ++ QString projectDirPath; ++ PBXGroup *productRefGroup; ++ QList targets; ++ XCConfigurationList *configurationList; ++}; ++ ++PBXProject::PBXProject(const QString &projectAbsolutePath, QObject *parent) : ++ PBXContainer(parent), d(new PBXProjectPrivate) ++{ ++ d->projectAbsolutePath = projectAbsolutePath; ++ d->configurationList = new XCConfigurationList(this); ++ ++ d->productRefGroup = new PBXGroup(rootGroup()); ++ d->productRefGroup->setName(QLatin1String("Products")); ++ d->productRefGroup->setSourceTree(PBX::Group); ++} ++ ++PBXProject::~PBXProject() ++{ ++ delete d; ++} ++ ++QString PBXProject::isa() const ++{ ++ return QLatin1String("PBXProject"); ++} ++ ++QVariantMap PBXProject::toMap() const ++{ ++ // HACK: Make sure "Products" group is always at the bottom ++ rootGroup()->removeItem(d->productRefGroup); ++ rootGroup()->addItem(d->productRefGroup); ++ ++ QVariantMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("buildConfigurationList"), buildConfigurationList()->identifier()); ++ self.insert(QLatin1String("compatibilityVersion"), QLatin1String("Xcode 3.2")); ++ self.insert(QLatin1String("developmentRegion"), QLatin1String("English")); ++ self.insert(QLatin1String("hasScannedForEncodings"), QLatin1String("1")); ++ self.insert(QLatin1String("knownRegions"), QStringList() << QLatin1String("en")); ++ self.insert(QLatin1String("mainGroup"), rootGroup()->identifier()); ++ self.insert(QLatin1String("productRefGroup"), productRefGroup()->identifier()); ++ self.insert(QLatin1String("projectDirPath"), d->projectDirPath); ++ self.insert(QLatin1String("projectReferences"), QLatin1String("")); // array of map { ProductGroup:, ProjectRef: }? ++ self.insert(QLatin1String("projectRoot"), QLatin1String("")); ++ ++ QStringList targetIdentifiers; ++ foreach (PBXTarget *target, targets()) ++ targetIdentifiers << target->identifier(); ++ self.insert(QLatin1String("targets"), targetIdentifiers); ++ ++ return self; ++} ++ ++PBXGroup *PBXProject::productRefGroup() const ++{ ++ return d->productRefGroup; ++} ++ ++QList PBXProject::targets() const ++{ ++ return d->targets; ++} ++ ++PBXTarget *PBXProject::targetNamed(const QString &targetName) const ++{ ++ foreach (PBXTarget *target, d->targets) ++ { ++ if (target->name() == targetName) ++ return target; ++ } ++ ++ return NULL; ++} ++ ++void PBXProject::addTarget(PBXTarget *target) ++{ ++ d->targets.append(target); ++} ++ ++QString PBXProject::name() const ++{ ++ return d->name; ++} ++ ++void PBXProject::setName(const QString &name) ++{ ++ d->name = name; ++} ++ ++QString PBXProject::projectDirPath() const ++{ ++ return d->projectDirPath; ++} ++ ++void PBXProject::setProjectDirPath(const QString &projectDirPath) ++{ ++ d->projectDirPath = projectDirPath; ++} ++ ++XCConfigurationList *PBXProject::buildConfigurationList() const ++{ ++ return d->configurationList; ++} ++ ++static void writeGroup(QVariantMap &objects, PBXGroup *group) ++{ ++ objects.insert(group->identifier(), group->toMap()); ++ foreach (PBXReference *child, group->children()) ++ { ++ PBXGroup *group = dynamic_cast(child); ++ if (group) ++ writeGroup(objects, group); ++ else ++ objects.insert(child->identifier(), child->toMap()); ++ } ++} ++ ++bool PBXProject::writeToFileSystemProjectFile(bool projectWrite, bool userWrite, bool checkNeedsRevert) ++{ ++ QVariantMap objects; ++ objects.insert(identifier(), toMap()); ++ ++ // Add the project's root group (i.e. the root node in the file tree which contains everything) ++ writeGroup(objects, rootGroup()); ++ ++ // Add the project's build configuration list and build configurations to the object map ++ objects.insert(d->configurationList->identifier(), d->configurationList->toMap()); ++ foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) ++ objects.insert(configuration->identifier(), configuration->toMap()); ++ ++ // Add the build targets to the object map ++ foreach (PBXTarget *target, targets()) ++ { ++ objects.insert(target->identifier(), target->toMap()); ++ ++ // Add the target's build configuration list and build configurations to the object map ++ objects.insert(target->buildConfigurationList()->identifier(), target->buildConfigurationList()->toMap()); ++ foreach (XCBuildConfiguration *configuration, target->buildConfigurationList()->buildConfigurations()) ++ objects.insert(configuration->identifier(), configuration->toMap()); ++ ++ // Add the target's build phases... ++ foreach (PBXBuildPhase *buildPhase, target->buildPhases()) ++ { ++ objects.insert(buildPhase->identifier(), buildPhase->toMap()); ++ ++ // And each of the files within ++ foreach (PBXBuildFile *buildFile, buildPhase->buildFiles()) ++ { ++ objects.insert(buildFile->identifier(), buildFile->toMap()); ++ } ++ } ++ } ++ ++ // add all subobjects to objects map! ++ ++ // Build the root pbxproj object map ++ QVariantMap map; ++ map.insert(QLatin1String("archiveVersion"), QLatin1String("1")); ++ map.insert(QLatin1String("classes"), QVariantMap()); ++ map.insert(QLatin1String("objectVersion"), QLatin1String("46")); ++ map.insert(QLatin1String("objects"), objects); ++ map.insert(QLatin1String("rootObject"), identifier()); ++ ++ QFile file(d->projectAbsolutePath); ++ if (file.open(QIODevice::WriteOnly)) ++ { ++ file.write(QByteArray("// !$*UTF8*$!\n")); ++ file.write(OpenStepPropertyList::toString(map).toUtf8()); ++ } ++ ++ return file.error() == QFile::NoError; ++} +diff --git a/src/plugins/generator/xcode/pbxproject.h b/src/plugins/generator/xcode/pbxproject.h +new file mode 100644 +index 0000000..36fa77e +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxproject.h +@@ -0,0 +1,80 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXPROJECT_H ++#define PBXPROJECT_H ++ ++#include "pbxcontainer.h" ++ ++class PBXTarget; ++class XCConfigurationList; ++ ++class PBXProjectPrivate; ++ ++class PBXProject : public PBXContainer ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXProject) ++public: ++ explicit PBXProject(const QString &projectAbsolutePath, QObject *parent = 0); ++ ~PBXProject(); ++ ++ QString isa() const; ++ QVariantMap toMap() const; ++ ++ /*! ++ * Group in the root of the Xcode file tree which contains references to product target files. ++ * ++ * For example, this will contain references to output application and library executables. ++ */ ++ PBXGroup *productRefGroup() const; ++ ++ static bool isProjectWrapperExtension(const QString &extension); ++ static PBXProject *projectWithFile(const QString &projectAbsolutePath); ++ ++ QList targets() const; ++ PBXTarget *targetNamed(const QString &targetName) const; ++ ++ void addTarget(PBXTarget *target); ++ ++ QString name() const; ++ void setName(const QString &name); ++ ++ QString projectDirPath() const; ++ void setProjectDirPath(const QString &projectDirPath); ++ ++ XCConfigurationList *buildConfigurationList() const; ++ bool writeToFileSystemProjectFile(bool projectWrite, bool userWrite, bool checkNeedsRevert); ++ ++private: ++ PBXProjectPrivate *d; ++}; ++ ++#endif // PBXPROJECT_H +diff --git a/src/plugins/generator/xcode/pbxreference.cpp b/src/plugins/generator/xcode/pbxreference.cpp +new file mode 100644 +index 0000000..2d3d648 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxreference.cpp +@@ -0,0 +1,107 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxreference.h" ++ ++class PBXReferencePrivate ++{ ++public: ++ PBXReferencePrivate(); ++ QString name; ++ QString path; ++ PBX::PBXSourceTree sourceTree; ++}; ++ ++PBXReferencePrivate::PBXReferencePrivate() ++ : name(), sourceTree() ++{ ++} ++ ++PBXReference::PBXReference(QObject *parent) : ++ PBXObject(parent), d(new PBXReferencePrivate) ++{ ++} ++ ++PBXReference::~PBXReference() ++{ ++ delete d; ++} ++ ++QVariantMap PBXReference::toMap() const ++{ ++ QVariantMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("name"), name()); ++ ++ // Xcode crashes if path is empty, even though it should never be ++ if (!d->path.isEmpty()) ++ self.insert(QLatin1String("path"), d->path); // relative path including the file name ++ ++ self.insert(QLatin1String("sourceTree"), PBX::sourceTreeString(sourceTree())); ++ return self; ++} ++ ++/*! ++ * \brief PBXReference::name ++ * \return display name of file or group, usually the same as the name of the file or directory. ++ */ ++QString PBXReference::name() const ++{ ++ return d->name; ++} ++ ++void PBXReference::setName(const QString &name) ++{ ++ d->name = name; ++} ++ ++QString PBXReference::path() const ++{ ++ return d->path; ++} ++ ++void PBXReference::setPath(const QString &filePath) ++{ ++ d->path = filePath; ++} ++ ++PBX::PBXSourceTree PBXReference::sourceTree() const ++{ ++ return d->sourceTree; ++} ++ ++void PBXReference::setSourceTree(PBX::PBXSourceTree sourceTree) ++{ ++ d->sourceTree = sourceTree; ++} ++ ++QString PBXReference::comment() const ++{ ++ return name(); ++} +diff --git a/src/plugins/generator/xcode/pbxreference.h b/src/plugins/generator/xcode/pbxreference.h +new file mode 100644 +index 0000000..26b393c +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxreference.h +@@ -0,0 +1,70 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXREFERENCE_H ++#define PBXREFERENCE_H ++ ++#include "pbxobject.h" ++#include "pbxsourcetree.h" ++#include ++ ++class PBXReferencePrivate; ++ ++// Mono calls this PBXFileElement? ++class PBXReference : public PBXObject ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXReference) ++protected: ++ explicit PBXReference(QObject *parent = 0); ++ virtual ~PBXReference(); ++ ++public: ++ QVariantMap toMap() const; ++ ++ QString name() const; ++ void setName(const QString &name); ++ ++ /*! ++ * File path of the referenced file, relative based on the value of \a sourceTree. ++ */ ++ QString path() const; ++ void setPath(const QString &path); ++ ++ PBX::PBXSourceTree sourceTree() const; ++ void setSourceTree(PBX::PBXSourceTree sourceTree); ++ ++ QString comment() const; ++ ++private: ++ PBXReferencePrivate *d; ++}; ++ ++#endif // PBXREFERENCE_H +diff --git a/src/plugins/generator/xcode/pbxsourcesbuildphase.cpp b/src/plugins/generator/xcode/pbxsourcesbuildphase.cpp +new file mode 100644 +index 0000000..8253287 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxsourcesbuildphase.cpp +@@ -0,0 +1,47 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxsourcesbuildphase.h" ++ ++PBXSourcesBuildPhase::PBXSourcesBuildPhase(QObject *parent) : ++ PBXBuildPhase(parent) ++{ ++} ++ ++QString PBXSourcesBuildPhase::isa() const ++{ ++ return QLatin1String("PBXSourcesBuildPhase"); ++} ++ ++QVariantMap PBXSourcesBuildPhase::toMap() const ++{ ++ QVariantMap self = PBXBuildPhase::toMap(); ++ return self; ++} +diff --git a/src/plugins/generator/xcode/pbxsourcesbuildphase.h b/src/plugins/generator/xcode/pbxsourcesbuildphase.h +new file mode 100644 +index 0000000..d5d6f7d +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxsourcesbuildphase.h +@@ -0,0 +1,49 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXSOURCESBUILDPHASE_H ++#define PBXSOURCESBUILDPHASE_H ++ ++#include "pbxbuildphase.h" ++ ++/*! ++ * \brief The PBXSourcesBuildPhase class represents the build phase in which source files are compiled. ++ */ ++class PBXSourcesBuildPhase : public PBXBuildPhase ++{ ++ Q_OBJECT ++public: ++ explicit PBXSourcesBuildPhase(QObject *parent = 0); ++ ++ QString isa() const; ++ QVariantMap toMap() const; ++}; ++ ++#endif // PBXSOURCESBUILDPHASE_H +diff --git a/src/plugins/generator/xcode/pbxsourcetree.cpp b/src/plugins/generator/xcode/pbxsourcetree.cpp +new file mode 100644 +index 0000000..1bea8d6 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxsourcetree.cpp +@@ -0,0 +1,50 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxsourcetree.h" ++ ++QString PBX::sourceTreeString(PBX::PBXSourceTree tree) ++{ ++ switch (tree) ++ { ++ case Absolute: ++ return QLatin1String(""); ++ case Group: ++ return QLatin1String(""); ++ case SourceRoot: ++ return QLatin1String("SOURCE_ROOT"); ++ case BuildProductDir: ++ return QLatin1String("BUILT_PRODUCTS_DIR"); ++ case SdkRoot: ++ return QLatin1String("SDKROOT"); ++ } ++ ++ return QString(); ++} +diff --git a/src/plugins/generator/xcode/pbxsourcetree.h b/src/plugins/generator/xcode/pbxsourcetree.h +new file mode 100644 +index 0000000..7f77592 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxsourcetree.h +@@ -0,0 +1,52 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXSOURCETREE_H ++#define PBXSOURCETREE_H ++ ++#include ++ ++namespace PBX ++{ ++ /*! ++ * Location that the file reference's path is relative to. ++ */ ++ typedef enum { ++ Absolute, ++ Group, ++ SourceRoot, ++ BuildProductDir, ++ SdkRoot ++ } PBXSourceTree; ++ ++ QString sourceTreeString(PBXSourceTree tree); ++} ++ ++#endif // PBXSOURCETREE_H +diff --git a/src/plugins/generator/xcode/pbxtarget.cpp b/src/plugins/generator/xcode/pbxtarget.cpp +new file mode 100644 +index 0000000..5b15959 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxtarget.cpp +@@ -0,0 +1,139 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxsourcesbuildphase.h" ++#include "pbxtarget.h" ++#include "xcbuildconfiguration.h" ++#include "xcconfigurationlist.h" ++ ++class PBXTargetPrivate ++{ ++public: ++ PBXTargetPrivate(); ++ QString name; ++ QString productName; ++ PBX::PBXProductType productType; ++ XCConfigurationList *configurationList; ++ PBXSourcesBuildPhase *sourcesBuildPhase; ++}; ++ ++PBXTargetPrivate::PBXTargetPrivate() ++ : name(), productType(), configurationList(), sourcesBuildPhase() ++{ ++} ++ ++PBXTarget::PBXTarget(QObject *parent) : ++ PBXObject(parent), d(new PBXTargetPrivate) ++{ ++ d->configurationList = new XCConfigurationList(this); ++ d->sourcesBuildPhase = new PBXSourcesBuildPhase(this); ++} ++ ++PBXTarget::~PBXTarget() ++{ ++ delete d; ++} ++ ++QVariantMap PBXTarget::toMap() const ++{ ++ QVariantMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("name"), name()); ++ self.insert(QLatin1String("productName"), productName()); ++ self.insert(QLatin1String("productType"), PBX::productTypeString(d->productType)); ++ ++ self.insert(QLatin1String("buildConfigurationList"), buildConfigurationList()->identifier()); ++ ++ QStringList buildPhaseReferences; ++ foreach (PBXBuildPhase *buildPhase, buildPhases()) ++ buildPhaseReferences += buildPhase->identifier(); ++ self.insert(QLatin1String("buildPhases"), buildPhaseReferences); ++ ++ self.insert(QLatin1String("dependencies"), QStringList()); ++ ++ return self; ++} ++ ++QString PBXTarget::name() const ++{ ++ return d->name; ++} ++ ++void PBXTarget::setName(const QString &name) ++{ ++ d->name = name; ++} ++ ++QString PBXTarget::productName() const ++{ ++ return d->productName; ++} ++ ++void PBXTarget::setProductName(const QString &productName) ++{ ++ d->productName = productName; ++} ++ ++PBX::PBXProductType PBXTarget::productType() const ++{ ++ return d->productType; ++} ++ ++void PBXTarget::setProductType(PBX::PBXProductType productType) ++{ ++ d->productType = productType; ++} ++ ++XCConfigurationList *PBXTarget::buildConfigurationList() const ++{ ++ return d->configurationList; ++} ++ ++void PBXTarget::setBuildSetting(const QString &key, const QVariant &value) ++{ ++ foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) ++ configuration->setBuildSetting(key, value); ++} ++ ++QList PBXTarget::buildPhases() const ++{ ++ QList phases; ++ phases.append(d->sourcesBuildPhase); ++ return phases; ++} ++ ++PBXBuildPhase *PBXTarget::defaultSourceCodeBuildPhase() ++{ ++ return d->sourcesBuildPhase; ++} ++ ++QString PBXTarget::comment() const ++{ ++ return name(); ++} +diff --git a/src/plugins/generator/xcode/pbxtarget.h b/src/plugins/generator/xcode/pbxtarget.h +new file mode 100644 +index 0000000..6b8f5b3 +--- /dev/null ++++ b/src/plugins/generator/xcode/pbxtarget.h +@@ -0,0 +1,86 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXTARGET_H ++#define PBXTARGET_H ++ ++#include "pbxobject.h" ++#include "pbxproducttype.h" ++#include ++ ++class PBXBuildPhase; ++class XCConfigurationList; ++ ++class PBXTargetPrivate; ++ ++class PBXTarget : public PBXObject ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXTarget) ++public: ++ explicit PBXTarget(QObject *parent = 0); ++ ~PBXTarget(); ++ ++ QVariantMap toMap() const; ++ ++ QString name() const; ++ void setName(const QString &name); ++ ++ QString productName() const; ++ void setProductName(const QString &productName); ++ ++ PBX::PBXProductType productType() const; ++ void setProductType(PBX::PBXProductType productType); ++ ++ /*! ++ * List of the target's build configurations. This is never NULL. ++ */ ++ XCConfigurationList *buildConfigurationList() const; ++ ++ QString expandedValue(const QString &string, void *buildParameters) const; ++ ++ void setBuildSetting(const QString &key, const QVariant &value); ++ ++ QList buildPhases() const; ++ PBXBuildPhase *buildPhaseOfClass(void *clazz) const; ++ void addBuildPhase(PBXBuildPhase *buildPhase); ++ PBXBuildPhase *defaultFrameworksBuildPhase(); ++ PBXBuildPhase *defaultLinkBuildPhase(); ++ PBXBuildPhase *defaultSourceCodeBuildPhase(); ++ PBXBuildPhase *defaultResourceBuildPhase(); ++ PBXBuildPhase *defaultHeaderBuildPhase(); ++ ++ QString comment() const; ++ ++private: ++ PBXTargetPrivate *d; ++}; ++ ++#endif // PBXTARGET_H +diff --git a/src/plugins/generator/xcode/xcbuildconfiguration.cpp b/src/plugins/generator/xcode/xcbuildconfiguration.cpp +new file mode 100644 +index 0000000..8711d1f +--- /dev/null ++++ b/src/plugins/generator/xcode/xcbuildconfiguration.cpp +@@ -0,0 +1,82 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcbuildconfiguration.h" ++ ++class XCBuildConfigurationPrivate ++{ ++public: ++ QString name; ++ QVariantMap buildSettings; ++}; ++ ++XCBuildConfiguration::XCBuildConfiguration(QObject *parent) : ++ PBXObject(parent), d(new XCBuildConfigurationPrivate) ++{ ++} ++ ++XCBuildConfiguration::~XCBuildConfiguration() ++{ ++ delete d; ++} ++ ++QString XCBuildConfiguration::isa() const ++{ ++ return QLatin1String("XCBuildConfiguration"); ++} ++ ++QVariantMap XCBuildConfiguration::toMap() const ++{ ++ QVariantMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("baseConfigurationReference"), QLatin1String("")); ++ self.insert(QLatin1String("buildSettings"), d->buildSettings); ++ self.insert(QLatin1String("name"), d->name); ++ return self; ++} ++ ++QString XCBuildConfiguration::name() const ++{ ++ return d->name; ++} ++ ++void XCBuildConfiguration::setName(const QString &name) ++{ ++ d->name = name; ++} ++ ++void XCBuildConfiguration::setBuildSetting(const QString &key, const QVariant &value) ++{ ++ d->buildSettings.insert(key, value); ++} ++ ++QString XCBuildConfiguration::comment() const ++{ ++ return name(); ++} +diff --git a/src/plugins/generator/xcode/xcbuildconfiguration.h b/src/plugins/generator/xcode/xcbuildconfiguration.h +new file mode 100644 +index 0000000..ac17d79 +--- /dev/null ++++ b/src/plugins/generator/xcode/xcbuildconfiguration.h +@@ -0,0 +1,67 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCBUILDCONFIGURATION_H ++#define XCBUILDCONFIGURATION_H ++ ++#include "pbxobject.h" ++#include ++ ++class PBXFileReference; ++ ++class XCBuildConfigurationPrivate; ++ ++class XCBuildConfiguration : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit XCBuildConfiguration(QObject *parent = 0); ++ ~XCBuildConfiguration(); ++ ++ QString isa() const; ++ QVariantMap toMap() const; ++ ++ QString name() const; ++ void setName(const QString &name); ++ ++ static bool isValidBaseConfigurationFile(PBXFileReference *reference); ++ ++ void setBaseConfigurationReference(PBXFileReference *reference); ++ PBXFileReference *baseConfigurationReference(); ++ ++ void setBuildSetting(const QString &key, const QVariant &value); ++ ++ QString comment() const; ++ ++private: ++ XCBuildConfigurationPrivate *d; ++}; ++ ++#endif // XCBUILDCONFIGURATION_H +diff --git a/src/plugins/generator/xcode/xcconfigurationlist.cpp b/src/plugins/generator/xcode/xcconfigurationlist.cpp +new file mode 100644 +index 0000000..b8c8b7b +--- /dev/null ++++ b/src/plugins/generator/xcode/xcconfigurationlist.cpp +@@ -0,0 +1,142 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "xcbuildconfiguration.h" ++#include "xcconfigurationlist.h" ++ ++class XCConfigurationListPrivate ++{ ++public: ++ XCConfigurationListPrivate(); ++ QList buildConfigurations; ++ XCBuildConfiguration *defaultBuildConfiguration; ++}; ++ ++XCConfigurationListPrivate::XCConfigurationListPrivate() ++ : buildConfigurations(), defaultBuildConfiguration() ++{ ++} ++ ++XCConfigurationList::XCConfigurationList(QObject *parent) : ++ PBXObject(parent), d(new XCConfigurationListPrivate) ++{ ++} ++ ++XCConfigurationList::~XCConfigurationList() ++{ ++ delete d; ++} ++ ++QString XCConfigurationList::isa() const ++{ ++ return QLatin1String("XCConfigurationList"); ++} ++ ++QVariantMap XCConfigurationList::toMap() const ++{ ++ QVariantMap self = PBXObject::toMap(); ++ ++ QStringList buildConfigurationReferences; ++ foreach (XCBuildConfiguration *configuration, buildConfigurations()) ++ buildConfigurationReferences += configuration->identifier(); ++ self.insert(QLatin1String("buildConfigurations"), buildConfigurationReferences); ++ ++ if (d->defaultBuildConfiguration) ++ { ++ self.insert(QLatin1String("defaultConfigurationIsVisible"), 0); ++ self.insert(QLatin1String("defaultConfigurationName"), d->defaultBuildConfiguration->name()); ++ } ++ ++ return self; ++} ++ ++QList XCConfigurationList::buildConfigurations() const ++{ ++ return d->buildConfigurations; ++} ++ ++XCBuildConfiguration *XCConfigurationList::addBuildConfiguration(const QString &name) ++{ ++ XCBuildConfiguration *buildConfiguration = new XCBuildConfiguration(); ++ buildConfiguration->setName(name); ++ d->buildConfigurations.append(buildConfiguration); ++ return buildConfiguration; ++} ++ ++void XCConfigurationList::removeBuildConfiguration(const QString &name) ++{ ++ for (int i = 0; i < d->buildConfigurations.size(); ++i) ++ { ++ if (d->buildConfigurations[i]->name() == name) ++ { ++ XCBuildConfiguration *configuration = d->buildConfigurations.takeAt(i); ++ if (d->defaultBuildConfiguration == configuration) ++ d->defaultBuildConfiguration = NULL; ++ delete configuration; ++ break; ++ } ++ } ++} ++ ++void XCConfigurationList::setDefaultBuildConfiguration(const QString &name) ++{ ++ foreach (XCBuildConfiguration *configuration, d->buildConfigurations) ++ { ++ if (configuration->name() == name) ++ { ++ d->defaultBuildConfiguration = configuration; ++ break; ++ } ++ } ++} ++ ++QString XCConfigurationList::comment() const ++{ ++ QString parentIsa; ++ QString parentName; ++ ++ PBXTarget *target = dynamic_cast(parent()); ++ PBXProject *project = dynamic_cast(parent()); ++ ++ if (target) ++ { ++ parentIsa = target->isa(); ++ parentName = target->name(); ++ } ++ else if (project) ++ { ++ parentIsa = project->isa(); ++ parentName = project->name(); ++ } ++ ++ return QString(QLatin1String("Build configuration list for %1 \"%2\"")).arg(parentIsa).arg(parentName); ++} +diff --git a/src/plugins/generator/xcode/xcconfigurationlist.h b/src/plugins/generator/xcode/xcconfigurationlist.h +new file mode 100644 +index 0000000..9ae1221 +--- /dev/null ++++ b/src/plugins/generator/xcode/xcconfigurationlist.h +@@ -0,0 +1,63 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCCONFIGURATIONLIST_H ++#define XCCONFIGURATIONLIST_H ++ ++#include "pbxobject.h" ++#include ++ ++class XCBuildConfiguration; ++ ++class XCConfigurationListPrivate; ++ ++class XCConfigurationList : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit XCConfigurationList(QObject *parent = 0); ++ ~XCConfigurationList(); ++ ++ QString isa() const; ++ QVariantMap toMap() const; ++ ++ QList buildConfigurations() const; ++ ++ XCBuildConfiguration *addBuildConfiguration(const QString &name); ++ void removeBuildConfiguration(const QString &name); ++ void setDefaultBuildConfiguration(const QString &name); ++ ++ QString comment() const; ++ ++private: ++ XCConfigurationListPrivate *d; ++}; ++ ++#endif // XCCONFIGURATIONLIST_H +diff --git a/src/plugins/generator/xcode/xcode.pro b/src/plugins/generator/xcode/xcode.pro +new file mode 100644 +index 0000000..45e27ba +--- /dev/null ++++ b/src/plugins/generator/xcode/xcode.pro +@@ -0,0 +1,58 @@ ++include(../../plugins.pri) ++ ++TARGET = qbs_xcode_generator ++ ++QT = core ++ ++QBSLIBDIR = $$OUT_PWD/../../../../lib ++include($$PWD/../../../lib/corelib/use_corelib.pri) ++ ++HEADERS += \ ++ ../generatorplugin.h \ ++ opensteppropertylist.h \ ++ pbx.h \ ++ pbxbuildfile.h \ ++ pbxbuildphase.h \ ++ pbxcontainer.h \ ++ pbxfileencoding.h \ ++ pbxfilereference.h \ ++ pbxfiletype.h \ ++ pbxgroup.h \ ++ pbxnativetarget.h \ ++ pbxobject.h \ ++ pbxproducttype.h \ ++ pbxproject.h \ ++ pbxreference.h \ ++ pbxsourcesbuildphase.h \ ++ pbxsourcetree.h \ ++ pbxtarget.h \ ++ xcbuildconfiguration.h \ ++ xcconfigurationlist.h \ ++ xcodegenerator.h \ ++ xcodenativegenerator.h \ ++ xcodesimplegenerator.h \ ++ pbxlegacytarget.h ++ ++SOURCES += \ ++ main.cpp \ ++ opensteppropertylist.cpp \ ++ pbxbuildfile.cpp \ ++ pbxbuildphase.cpp \ ++ pbxcontainer.cpp \ ++ pbxfilereference.cpp \ ++ pbxfiletype.cpp \ ++ pbxgroup.cpp \ ++ pbxnativetarget.cpp \ ++ pbxobject.cpp \ ++ pbxproducttype.cpp \ ++ pbxproject.cpp \ ++ pbxreference.cpp \ ++ pbxsourcesbuildphase.cpp \ ++ pbxsourcetree.cpp \ ++ pbxtarget.cpp \ ++ xcbuildconfiguration.cpp \ ++ xcconfigurationlist.cpp \ ++ xcodegenerator.cpp \ ++ xcodenativegenerator.cpp \ ++ xcodesimplegenerator.cpp \ ++ pbxlegacytarget.cpp +diff --git a/src/plugins/generator/xcode/xcodegenerator.cpp b/src/plugins/generator/xcode/xcodegenerator.cpp +new file mode 100644 +index 0000000..ea53d0e +--- /dev/null ++++ b/src/plugins/generator/xcode/xcodegenerator.cpp +@@ -0,0 +1,96 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcodegenerator.h" ++ ++#include ++ ++namespace qbs { ++ ++XcodeGenerator::XcodeGenerator() ++{ ++} ++ ++/*! ++ * Finds the "root" group in a Qbs product. ++ * ++ * This is the group which has the same name as the product and corresponds to ++ * the files which do not appear in a Group in the Qbs source file. ++ */ ++static GroupData findRootGroup(const ProductData &product) ++{ ++ Q_ASSERT(product.groups().size() > 0); ++ foreach (const GroupData groupData, product.groups()) ++ { ++ if (groupData.name() == product.name()) ++ return groupData; ++ } ++ ++ Q_ASSERT_X(false, __FILE__, "couldn't find root group in qbs product"); ++} ++ ++QString XcodeGenerator::xcodeExecutablePrefix(const ProductData &product) ++{ ++ // TODO: Use value from qbs module? ++ switch (xcodeProductType(product)) ++ { ++ case PBX::LibraryDynamic: ++ case PBX::LibraryStatic: ++ return QLatin1String("lib"); ++ default: ++ return QString(); ++ } ++} ++ ++/*! ++ * Returns the Xcode product type identifier corresponding to the Qbs product type name. ++ */ ++PBX::PBXProductType XcodeGenerator::xcodeProductType(const ProductData &product) ++{ ++ const GroupData groupData = findRootGroup(product); ++ QStringList productType = groupData.properties().getProperty(QLatin1String("type")).toStringList(); ++ ++ if (productType.contains(QLatin1String("applicationbundle"))) ++ return PBX::Application; ++ if (productType.contains(QLatin1String("application"))) ++ return PBX::Tool; ++ if (productType.contains(QLatin1String("dynamiclibrary"))) ++ return PBX::LibraryDynamic; ++ if (productType.contains(QLatin1String("staticlibrary"))) ++ return PBX::LibraryStatic; ++ if (productType.contains(QLatin1String("frameworkbundle"))) ++ return PBX::Framework; ++ if (productType.contains(QLatin1String("bundle"))) ++ return PBX::Bundle; ++ ++ return (PBX::PBXProductType)0; ++} ++ ++} +diff --git a/src/plugins/generator/xcode/xcodegenerator.h b/src/plugins/generator/xcode/xcodegenerator.h +new file mode 100644 +index 0000000..e2bc712 +--- /dev/null ++++ b/src/plugins/generator/xcode/xcodegenerator.h +@@ -0,0 +1,53 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef QBS_XCODEGENERATOR_H ++#define QBS_XCODEGENERATOR_H ++ ++#include ++#include "pbxproducttype.h" ++ ++namespace qbs { ++ ++class ProductData; ++ ++class XcodeGenerator : public qbs::Generator ++{ ++protected: ++ XcodeGenerator(); ++ ++public: ++ static QString xcodeExecutablePrefix(const ProductData &product); ++ static PBX::PBXProductType xcodeProductType(const ProductData &product); ++}; ++ ++} ++ ++#endif // QBS_XCODEGENERATOR_H +diff --git a/src/plugins/generator/xcode/xcodenativegenerator.cpp b/src/plugins/generator/xcode/xcodenativegenerator.cpp +new file mode 100644 +index 0000000..5457c3f +--- /dev/null ++++ b/src/plugins/generator/xcode/xcodenativegenerator.cpp +@@ -0,0 +1,136 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcodenativegenerator.h" ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++namespace qbs { ++ ++using namespace Internal; ++ ++XcodeNativeGenerator::XcodeNativeGenerator() ++{ ++} ++ ++QString XcodeNativeGenerator::generatorName() const ++{ ++ return QLatin1String("xcode"); ++} ++ ++void XcodeNativeGenerator::generate(const Project &project) ++{ ++ const QString buildDirectory = project.projectData().buildDirectory(); ++ QDir dir(buildDirectory); ++ Q_ASSERT(dir.isAbsolute() && dir.exists()); ++ ++ const QString &projectFileName = project.projectData().name() + QLatin1String(".xcodeproj"); ++ if (!dir.cd(projectFileName)) ++ if (!dir.mkdir(projectFileName) || !dir.cd(projectFileName)) ++ throw ErrorInfo(Tr::tr("failed to make project directory")); ++ ++ PBXProject xcodeProject(dir.absoluteFilePath(QLatin1String("project.pbxproj"))); ++ xcodeProject.setName(project.projectData().name()); ++ xcodeProject.setProjectDirPath(project.projectData().location().fileName()); ++ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); ++ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); ++ ++ // Add all the Qbs products as Xcode targets ++ foreach (const ProductData &product, project.projectData().allProducts()) ++ { ++ PBXLegacyTarget *xcodeTarget = new PBXLegacyTarget(&xcodeProject); ++ xcodeTarget->setName(product.name()); ++ xcodeTarget->setProductType(xcodeProductType(product)); ++ xcodeTarget->setBuildToolPath(QCoreApplication::applicationFilePath()); // TODO: Probably not a good idea... ++ xcodeTarget->setBuildArgumentsString(QLatin1String("$(ACTION) -f \"") + project.projectData().location().fileName() + QLatin1String("\" -p \"") + product.name() + QLatin1String("\"")); ++ xcodeTarget->setBuildWorkingDirectory(xcodeProject.projectDirPath()); ++ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); ++ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); ++ ++ // Create a root PBX group for the target's files and other groups ++ PBXGroup *xcodeProductGroup = PBXGroup::groupWithName(product.name(), xcodeProject.rootGroup()); ++ ++ // Set up all the groups ++ foreach (const GroupData &groupData, product.groups()) ++ { ++ PBXGroup *group = xcodeProductGroup; ++ if (groupData.name() == product.name()) { ++ // This group has the same name as the product itself so we'll just add the files ++ // directly to the "product" group we created earlier instead of creating a new one ++ //populateXcodeTargetProperties(xcodeTarget, product, groupData); ++ } else { ++ // Create a group for this group ++ group = PBXGroup::groupWithName(groupData.name(), xcodeProductGroup); ++ } ++ ++ // Add the source files to the group ++ group->setSourceTree(PBX::Group); ++ //populateXcodeGroup(&xcodeProject, group, groupData, xcodeTarget); ++ } ++ ++ // TODO: find a way to decide which target artifact becomes the target's product reference ++ Q_ASSERT(product.targetArtifacts().size() <= 1); ++ ++ // Add references for each target artifact in root "Products" group ++ foreach (const TargetArtifact &artifact, product.targetArtifacts()) ++ { ++ QList refs = xcodeProject.productRefGroup()->addFiles(QStringList() << artifact.filePath(), false, false); ++ foreach (PBXFileReference *ref, refs) ++ { ++ ref->setSourceTree(PBX::BuildProductDir); ++ ++ // reason for the assert <= 1 ++ xcodeTarget->setProductReference(ref); ++ } ++ } ++ ++ xcodeProject.addTarget(xcodeTarget); ++ } ++ ++ // TODO: For some reason this property confuses Xcode. Seems to indicate the path that relative ++ // paths are resolved against, but maybe it's referring to the .xcodeproj? ++ // We'll use the root group instead to get what we want ++ xcodeProject.rootGroup()->setPath(xcodeProject.projectDirPath()); ++ xcodeProject.setProjectDirPath(""); ++ ++ if (xcodeProject.writeToFileSystemProjectFile(true, true, true)) ++ qDebug() << "Generated" << qPrintable(projectFileName); ++ else ++ throw ErrorInfo(Tr::tr("Failed to generate %1").arg(projectFileName)); ++} ++ ++} +diff --git a/src/plugins/generator/xcode/xcodenativegenerator.h b/src/plugins/generator/xcode/xcodenativegenerator.h +new file mode 100644 +index 0000000..d964b94 +--- /dev/null ++++ b/src/plugins/generator/xcode/xcodenativegenerator.h +@@ -0,0 +1,53 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef QBS_XCODENATIVEGENERATOR_H ++#define QBS_XCODENATIVEGENERATOR_H ++ ++#include "xcodegenerator.h" ++#include ++ ++namespace qbs { ++ ++class Project; ++ ++class XcodeNativeGenerator : public XcodeGenerator ++{ ++public: ++ XcodeNativeGenerator(); ++ ++ QString generatorName() const; ++ ++ void generate(const Project &project); ++}; ++ ++} ++ ++#endif // QBS_XCODENATIVEGENERATOR_H +diff --git a/src/plugins/generator/xcode/xcodesimplegenerator.cpp b/src/plugins/generator/xcode/xcodesimplegenerator.cpp +new file mode 100644 +index 0000000..306d46d +--- /dev/null ++++ b/src/plugins/generator/xcode/xcodesimplegenerator.cpp +@@ -0,0 +1,275 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcodesimplegenerator.h" ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++namespace qbs { ++ ++using namespace Internal; ++ ++struct XcodeSetting { ++ QString xcodeName; ++ QString qbsModule; ++ QString qbsName; ++ bool isList; ++ ++ XcodeSetting(const QString &xcodeName, const QString &qbsModule, ++ const QString &qbsName, bool isList); ++}; ++ ++XcodeSetting::XcodeSetting(const QString &xcodeName, const QString &qbsModule, ++ const QString &qbsName, bool isList = false) ++ : xcodeName(xcodeName), qbsModule(qbsModule), qbsName(qbsName), isList(isList) ++{ ++} ++ ++XcodeSimpleGenerator::XcodeSimpleGenerator() ++{ ++} ++ ++QString XcodeSimpleGenerator::generatorName() const ++{ ++ return QLatin1String("xcode-simple"); ++} ++ ++QList xcodeSettingsMap() ++{ ++ const QString cpp = QLatin1String("cpp"); ++ ++ QList settings; ++ settings += XcodeSetting(QLatin1String("GCC_PREPROCESSOR_DEFINITIONS"), cpp, QLatin1String("defines"), true); ++ settings += XcodeSetting(QLatin1String("HEADER_SEARCH_PATHS"), cpp, QLatin1String("includePaths"), true); ++ settings += XcodeSetting(QLatin1String("MACOSX_DEPLOYMENT_TARGET"), cpp, QLatin1String("minimumOsxVersion")); ++ settings += XcodeSetting(QLatin1String("OTHER_LDFLAGS"), cpp, QLatin1String("linkerFlags"), true); ++ return settings; ++} ++ ++static void populateXcodeTargetProperties(PBXNativeTarget *xcodeTarget, const qbs::ProductData &productData, const qbs::GroupData &groupData) ++{ ++ // Get the "target name" (Qbs terminology) and use it to set the "product name" (Xcode terminology) ++ xcodeTarget->setProductName(groupData.properties().getProperty(QLatin1String("targetName")).toString()); ++ if (xcodeTarget->productName().isEmpty()) ++ xcodeTarget->setProductName(xcodeTarget->name()); ++ xcodeTarget->setBuildSetting(QLatin1String("PRODUCT_NAME"), xcodeTarget->productName()); ++ ++ QString exePrefix = XcodeGenerator::xcodeExecutablePrefix(productData); ++ if (!exePrefix.isEmpty()) ++ xcodeTarget->setBuildSetting(QLatin1String("EXECUTABLE_PREFIX"), exePrefix); ++ ++ QString architecture = groupData.properties().getModuleProperty(QLatin1String("qbs"), QLatin1String("architecture")).toString(); ++ if (!architecture.isEmpty()) { ++ QString arch = architecture; ++ if (arch == QLatin1String("x86")) ++ arch = QLatin1String("i386"); ++ ++ xcodeTarget->setBuildSetting(QLatin1String("ARCHS"), arch); ++ } ++ ++ QString sysroot = groupData.properties().getModuleProperty(QLatin1String("qbs"), QLatin1String("sysroot")).toString(); ++ if (!sysroot.isEmpty()) { ++ xcodeTarget->setBuildSetting(QLatin1String("SDKROOT"), sysroot); ++ } ++ ++ QStringList platform = groupData.properties().getModulePropertiesAsStringList(QLatin1String("qbs"), QLatin1String("targetOS")); ++ if (platform.contains(QLatin1String("osx"))) { ++ if (sysroot.isEmpty()) ++ xcodeTarget->setBuildSetting(QLatin1String("SDKROOT"), QLatin1String("macosx")); ++ xcodeTarget->setBuildSetting(QLatin1String("SUPPORTED_PLATFORMS"), QStringList() << QLatin1String("macosx")); ++ } else if (platform.contains(QLatin1String("ios"))) { ++ if (sysroot.isEmpty()) ++ xcodeTarget->setBuildSetting(QLatin1String("SDKROOT"), QLatin1String("iphoneos")); ++ xcodeTarget->setBuildSetting(QLatin1String("SUPPORTED_PLATFORMS"), QStringList() << QLatin1String("iphonesimulator") << QLatin1String("iphoneos")); ++ } else { ++ throw ErrorInfo(Tr::tr("Unsupported platform for Xcode project: [%1]").arg(platform.join(QLatin1String(",")))); ++ } ++ ++ foreach (const XcodeSetting &setting, xcodeSettingsMap()) { ++ if (setting.isList) { ++ QVariantList list = groupData.properties().getModuleProperties(setting.qbsModule, setting.qbsName); ++ if (!list.isEmpty()) { ++ const QString inheritProperty = QLatin1String("$(") + setting.xcodeName + QLatin1String(")"); ++ list.append(inheritProperty); ++ xcodeTarget->setBuildSetting(setting.xcodeName, list); ++ } ++ } else { ++ const QVariant variant = groupData.properties().getModuleProperty(setting.qbsModule, setting.qbsName); ++ if (!variant.isNull()) { ++ xcodeTarget->setBuildSetting(setting.xcodeName, variant); ++ } ++ } ++ } ++} ++ ++static void populateXcodeGroup(PBXProject *xcodeProject, PBXGroup *xcodeGroup, const qbs::GroupData &groupData, PBXTarget *xcodeTarget) ++{ ++ QString rootPath = xcodeProject->projectDirPath(); ++ if (!rootPath.endsWith(QLatin1Char('/'))) ++ rootPath += QLatin1Char('/'); ++ ++ QStringList relativeFilePaths; ++ foreach (QString filePath, groupData.allFilePaths()) { ++ if (filePath.startsWith(rootPath)) ++ filePath.remove(0, rootPath.size()); ++ relativeFilePaths += filePath; ++ } ++ ++ // Add all the files in the group as file references so they show up in the project tree ++ QList fileRefs = xcodeGroup->addFiles(relativeFilePaths, false, false); ++ foreach (PBXFileReference *ref, fileRefs) { ++ if (!ref->path().startsWith(QLatin1Char('/'))) { ++ ref->setSourceTree(PBX::Group); ++ } ++ } ++ ++ // If the group is enabled, then we'll actually BUILD them in addition to merely listing them ++ if (groupData.isEnabled()) ++ { ++ foreach (PBXFileReference *ref, fileRefs) ++ xcodeTarget->defaultSourceCodeBuildPhase()->addReference(ref); ++ } ++ ++ //group->setPath(groupData.properties().getProperty(QLatin1String("prefix")).toString()); ++ //qDebug() << groupData.properties().allProperties(); ++} ++ ++void XcodeSimpleGenerator::generate(const Project &project) ++{ ++ const QString buildDirectory = project.projectData().buildDirectory(); ++ QDir dir(buildDirectory); ++ Q_ASSERT(dir.isAbsolute() && dir.exists()); ++ ++ const QString &projectFileName = project.projectData().name() + QLatin1String(".xcodeproj"); ++ if (!dir.cd(projectFileName)) ++ if (!dir.mkdir(projectFileName) || !dir.cd(projectFileName)) ++ throw ErrorInfo(Tr::tr("failed to make project directory")); ++ ++ PBXProject xcodeProject(dir.absoluteFilePath(QLatin1String("project.pbxproj"))); ++ xcodeProject.setName(project.projectData().name()); ++ xcodeProject.setProjectDirPath(project.projectData().location().fileName()); ++ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); ++ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); ++ ++ // Add all the Qbs products as Xcode targets ++ foreach (const ProductData &product, project.projectData().allProducts()) ++ { ++ PBXNativeTarget *xcodeTarget = new PBXNativeTarget(&xcodeProject); ++ xcodeTarget->setName(product.name()); ++ xcodeTarget->setProductType(xcodeProductType(product)); ++ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); ++ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); ++ ++ // Create a root PBX group for the target's files and other groups ++ PBXGroup *xcodeProductGroup = PBXGroup::groupWithName(product.name(), xcodeProject.rootGroup()); ++ ++ // Set up all the groups ++ foreach (const GroupData &groupData, product.groups()) ++ { ++ PBXGroup *group = xcodeProductGroup; ++ if (groupData.name() == product.name()) { ++ // This group has the same name as the product itself so we'll just add the files ++ // directly to the "product" group we created earlier instead of creating a new one ++ populateXcodeTargetProperties(xcodeTarget, product, groupData); ++ } else { ++ // Create a group for this group ++ group = PBXGroup::groupWithName(groupData.name(), xcodeProductGroup); ++ } ++ ++ // Add the source files to the group ++ group->setSourceTree(PBX::Group); ++ populateXcodeGroup(&xcodeProject, group, groupData, xcodeTarget); ++ } ++ ++ // TODO: find a way to decide which target artifact becomes the target's product reference ++ Q_ASSERT(product.targetArtifacts().size() <= 1); ++ ++ // Add references for each target artifact in root "Products" group ++ foreach (const TargetArtifact &artifact, product.targetArtifacts()) ++ { ++ // Chop off the Qbs build dir from the artifact path, because they will actually end ++ // up in Xcode's build directory, not the build directory Qbs would use ++ QString realArtifactPath = artifact.filePath(); ++ if (realArtifactPath.startsWith(buildDirectory)) ++ realArtifactPath.remove(0, buildDirectory.size()); ++ ++ if (realArtifactPath.startsWith(QLatin1Char('/'))) ++ realArtifactPath.remove(0, 1); ++ ++ QList refs = xcodeProject.productRefGroup()->addFiles(QStringList() << realArtifactPath, false, false); ++ foreach (PBXFileReference *ref, refs) ++ { ++ ref->setSourceTree(PBX::BuildProductDir); ++ ++ // reason for the assert <= 1 ++ xcodeTarget->setProductReference(ref); ++ } ++ } ++ ++ xcodeProject.addTarget(xcodeTarget); ++ } ++ ++ QMapIterator i(project.projectConfiguration()); ++ while (i.hasNext()) ++ { ++ i.next(); ++ QString moduleName = i.key(); ++ QVariantMap moduleProperties = i.value().toMap(); ++ ++ QMapIterator j(moduleProperties); ++ while (j.hasNext()) ++ { ++ j.next(); ++ QString propertyName = j.key(); ++ QVariant propertyValue = j.value(); ++ // Do stuff with project properties... ++ } ++ } ++ ++ // TODO: For some reason this property confuses Xcode. Seems to indicate the path that relative ++ // paths are resolved against, but maybe it's referring to the .xcodeproj? ++ // We'll use the root group instead to get what we want ++ xcodeProject.rootGroup()->setPath(xcodeProject.projectDirPath()); ++ xcodeProject.setProjectDirPath(""); ++ ++ if (xcodeProject.writeToFileSystemProjectFile(true, true, true)) ++ qDebug() << "Generated" << qPrintable(projectFileName); ++ else ++ throw ErrorInfo(Tr::tr("Failed to generate %1").arg(projectFileName)); ++} ++ ++} +diff --git a/src/plugins/generator/xcode/xcodesimplegenerator.h b/src/plugins/generator/xcode/xcodesimplegenerator.h +new file mode 100644 +index 0000000..e5cce26 +--- /dev/null ++++ b/src/plugins/generator/xcode/xcodesimplegenerator.h +@@ -0,0 +1,53 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef QBS_XCODESIMPLEGENERATOR_H ++#define QBS_XCODESIMPLEGENERATOR_H ++ ++#include "xcodegenerator.h" ++#include ++ ++namespace qbs { ++ ++class Project; ++ ++class XcodeSimpleGenerator : public XcodeGenerator ++{ ++public: ++ XcodeSimpleGenerator(); ++ ++ QString generatorName() const; ++ ++ void generate(const Project &project); ++}; ++ ++} ++ ++#endif // QBS_XCODESIMPLEGENERATOR_H +diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro +index d3823ae..9fe2e6b 100644 +--- a/src/plugins/plugins.pro ++++ b/src/plugins/plugins.pro +@@ -1,2 +1,2 @@ + TEMPLATE = subdirs +-SUBDIRS = scanner ++SUBDIRS = generator scanner +-- +2.1.3 + diff --git a/mingw-w64-qbs-git/0003-add-generator-header-installs.patch b/mingw-w64-qbs-git/0002-add-generator-header-installs.master.patch similarity index 70% rename from mingw-w64-qbs-git/0003-add-generator-header-installs.patch rename to mingw-w64-qbs-git/0002-add-generator-header-installs.master.patch index d54679ebc6..f7c1c68a2c 100644 --- a/mingw-w64-qbs-git/0003-add-generator-header-installs.patch +++ b/mingw-w64-qbs-git/0002-add-generator-header-installs.master.patch @@ -1,7 +1,7 @@ -From 0d6026fc1cc2dcbd9446af340f84cb2c614ae134 Mon Sep 17 00:00:00 2001 +From 6958b1e9faaea47955007e7715bb076f34181c16 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 00:12:36 +0100 -Subject: [PATCH 3/3] add generator header installs +Subject: [PATCH 2/4] add generator header installs --- src/lib/corelib/api/api.pri | 1 + @@ -9,22 +9,22 @@ Subject: [PATCH 3/3] add generator header installs 2 files changed, 2 insertions(+) diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri -index 9b2fb38..e31ea57 100644 +index 9f2638c..dfb42ee 100644 --- a/src/lib/corelib/api/api.pri +++ b/src/lib/corelib/api/api.pri -@@ -25,6 +25,7 @@ SOURCES += \ +@@ -26,6 +26,7 @@ SOURCES += \ + api_headers.files = \ + $$PWD/jobs.h \ $$PWD/languageinfo.h \ ++ $$PWD/generator.h \ $$PWD/project.h \ $$PWD/projectdata.h \ -+ $$PWD/generator.h \ - $$PWD/runenvironment.h - api_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/api - INSTALLS += api_headers + $$PWD/rulecommand.h \ diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 85175b3..f3c3e09 100644 +index d8875bb..b0e294e 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -84,6 +84,7 @@ qbs_enable_unit_tests { +@@ -91,6 +91,7 @@ qbs_enable_unit_tests { $$PWD/qbs_export.h \ $$PWD/buildoptions.h \ $$PWD/installoptions.h \ @@ -33,5 +33,5 @@ index 85175b3..f3c3e09 100644 tools_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/tools INSTALLS += tools_headers -- -2.1.0 +2.1.3 diff --git a/mingw-w64-qbs-git/0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch b/mingw-w64-qbs-git/0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch new file mode 100644 index 0000000000..83f6b9dedd --- /dev/null +++ b/mingw-w64-qbs-git/0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch @@ -0,0 +1,25 @@ +From bd8930f53e1bd74db3ce05b706efae79cdbab7e9 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 29 Nov 2014 18:20:12 +0000 +Subject: [PATCH 3/4] Use .dll.a instead of .a for mingw* import libraries + +--- + src/lib/qtprofilesetup/qtmoduleinfo.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lib/qtprofilesetup/qtmoduleinfo.cpp b/src/lib/qtprofilesetup/qtmoduleinfo.cpp +index 4ae256f..269f951 100644 +--- a/src/lib/qtprofilesetup/qtmoduleinfo.cpp ++++ b/src/lib/qtprofilesetup/qtmoduleinfo.cpp +@@ -247,7 +247,7 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, + if (qtEnv.mkspecName.contains(QLatin1String("msvc"))) + libFilePath += QLatin1String(".lib"); + else if (isMingw) +- libFilePath += QLatin1String(".a"); ++ libFilePath += isStaticLibrary ? QLatin1String(".a") : QLatin1String(".dll.a"); + continue; + } + if (!simplifiedLine.startsWith("QMAKE_PRL_LIBS")) +-- +2.1.3 + diff --git a/mingw-w64-qbs-git/0003-add-generator-header-installs.1.3.patch b/mingw-w64-qbs-git/0003-add-generator-header-installs.1.3.patch new file mode 100644 index 0000000000..0b7258a972 --- /dev/null +++ b/mingw-w64-qbs-git/0003-add-generator-header-installs.1.3.patch @@ -0,0 +1,37 @@ +From 32b174ec9ed68321aad1be5a70a5faebe04c405a Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 18 Aug 2014 00:12:36 +0100 +Subject: [PATCH 3/5] add generator header installs + +--- + src/lib/corelib/api/api.pri | 1 + + src/lib/corelib/tools/tools.pri | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri +index 9f2638c..dfb42ee 100644 +--- a/src/lib/corelib/api/api.pri ++++ b/src/lib/corelib/api/api.pri +@@ -26,6 +26,7 @@ SOURCES += \ + api_headers.files = \ + $$PWD/jobs.h \ + $$PWD/languageinfo.h \ ++ $$PWD/generator.h \ + $$PWD/project.h \ + $$PWD/projectdata.h \ + $$PWD/rulecommand.h \ +diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri +index aebab08..e7168c6 100644 +--- a/src/lib/corelib/tools/tools.pri ++++ b/src/lib/corelib/tools/tools.pri +@@ -89,6 +89,7 @@ all_tests { + $$PWD/qbs_export.h \ + $$PWD/buildoptions.h \ + $$PWD/installoptions.h \ ++ $$PWD/generateoptions.h \ + $$PWD/setupprojectparameters.h + tools_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/tools + INSTALLS += tools_headers +-- +2.1.3 + diff --git a/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch new file mode 100644 index 0000000000..b7655a875e --- /dev/null +++ b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch @@ -0,0 +1,25 @@ +From fc828cd51472d4bb6108407eacc00d5baef0fc4a Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 29 Nov 2014 18:20:12 +0000 +Subject: [PATCH 4/5] Use .dll.a instead of .a for mingw* import libraries + +--- + src/lib/qtprofilesetup/qtmoduleinfo.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lib/qtprofilesetup/qtmoduleinfo.cpp b/src/lib/qtprofilesetup/qtmoduleinfo.cpp +index 4ae256f..269f951 100644 +--- a/src/lib/qtprofilesetup/qtmoduleinfo.cpp ++++ b/src/lib/qtprofilesetup/qtmoduleinfo.cpp +@@ -247,7 +247,7 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, + if (qtEnv.mkspecName.contains(QLatin1String("msvc"))) + libFilePath += QLatin1String(".lib"); + else if (isMingw) +- libFilePath += QLatin1String(".a"); ++ libFilePath += isStaticLibrary ? QLatin1String(".a") : QLatin1String(".dll.a"); + continue; + } + if (!simplifiedLine.startsWith("QMAKE_PRL_LIBS")) +-- +2.1.3 + diff --git a/mingw-w64-qbs-git/0004-setup-toolchains-Pretend-msys-is-mingw.master.patch b/mingw-w64-qbs-git/0004-setup-toolchains-Pretend-msys-is-mingw.master.patch new file mode 100644 index 0000000000..e954fa9196 --- /dev/null +++ b/mingw-w64-qbs-git/0004-setup-toolchains-Pretend-msys-is-mingw.master.patch @@ -0,0 +1,36 @@ +From 89335fde2f65e2c34319fcdfe9172d1d6155c54d Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 29 Nov 2014 18:29:20 +0000 +Subject: [PATCH 4/4] setup-toolchains: Pretend msys is mingw + +It's close enough and the best we've got. +--- + src/app/qbs-setup-toolchains/probe.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/app/qbs-setup-toolchains/probe.cpp b/src/app/qbs-setup-toolchains/probe.cpp +index 621fa30..757f0b0 100644 +--- a/src/app/qbs-setup-toolchains/probe.cpp ++++ b/src/app/qbs-setup-toolchains/probe.cpp +@@ -89,7 +89,8 @@ static QStringList validMinGWMachines() + << QLatin1String("i686-w64-mingw32") << QLatin1String("x86_64-w64-mingw32") + << QLatin1String("i686-w64-mingw32.shared") << QLatin1String("x86_64-w64-mingw32.shared") + << QLatin1String("i686-w64-mingw32.static") << QLatin1String("x86_64-w64-mingw32.static") +- << QLatin1String("i586-mingw32msvc") << QLatin1String("amd64-mingw32msvc"); ++ << QLatin1String("i586-mingw32msvc") << QLatin1String("amd64-mingw32msvc") ++ << QLatin1String("i686-pc-msys") << QLatin1String("x86_64-pc-msys"); + } + + static QStringList completeToolchainList(const QString &toolchainName) +@@ -201,7 +202,7 @@ static Profile createGccProfile(const QString &compilerFilePath, Settings *setti + { + const QString machineName = gccMachineName(compilerFilePath); + const QStringList compilerTriplet = machineName.split(QLatin1Char('-')); +- const bool isMingw = toolchainTypes.contains(QLatin1String("mingw")); ++ const bool isMingw = toolchainTypes.contains(QLatin1String("mingw")) || toolchainTypes.contains(QLatin1String("msys")); + const bool isClang = toolchainTypes.contains(QLatin1String("clang")); + + if (isMingw && !validMinGWMachines().contains(machineName)) { +-- +2.1.3 + diff --git a/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch new file mode 100644 index 0000000000..29122552b9 --- /dev/null +++ b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch @@ -0,0 +1,36 @@ +From f4d9b2631f159f982d9bf41e23a7a0b9e44cf801 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 29 Nov 2014 18:29:20 +0000 +Subject: [PATCH 5/5] setup-toolchains: Pretend msys is mingw + +It's close enough and the best we've got. +--- + src/app/qbs-setup-toolchains/probe.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/app/qbs-setup-toolchains/probe.cpp b/src/app/qbs-setup-toolchains/probe.cpp +index 84d3beb..14bef79 100644 +--- a/src/app/qbs-setup-toolchains/probe.cpp ++++ b/src/app/qbs-setup-toolchains/probe.cpp +@@ -88,7 +88,8 @@ static QStringList validMinGWMachines() + << QLatin1String("i686-w64-mingw32") << QLatin1String("x86_64-w64-mingw32") + << QLatin1String("i686-w64-mingw32.shared") << QLatin1String("x86_64-w64-mingw32.shared") + << QLatin1String("i686-w64-mingw32.static") << QLatin1String("x86_64-w64-mingw32.static") +- << QLatin1String("i586-mingw32msvc") << QLatin1String("amd64-mingw32msvc"); ++ << QLatin1String("i586-mingw32msvc") << QLatin1String("amd64-mingw32msvc") ++ << QLatin1String("i686-pc-msys") << QLatin1String("x86_64-pc-msys"); + } + + static QStringList completeToolchainList(const QString &toolchainName) +@@ -199,7 +200,7 @@ static Profile createGccProfile(const QString &compilerFilePath, Settings *setti + { + const QString machineName = gccMachineName(compilerFilePath); + const QStringList compilerTriplet = machineName.split(QLatin1Char('-')); +- const bool isMingw = toolchainTypes.contains(QLatin1String("mingw")); ++ const bool isMingw = toolchainTypes.contains(QLatin1String("mingw")) || toolchainTypes.contains(QLatin1String("msys")); + const bool isClang = toolchainTypes.contains(QLatin1String("clang")); + + if (isMingw && !validMinGWMachines().contains(machineName)) { +-- +2.1.3 + diff --git a/mingw-w64-qbs-git/PKGBUILD b/mingw-w64-qbs-git/PKGBUILD index f71f1bef51..692221e350 100644 --- a/mingw-w64-qbs-git/PKGBUILD +++ b/mingw-w64-qbs-git/PKGBUILD @@ -1,5 +1,5 @@ # Maintainer: Alexey Pavlov -# Contributor: Ray Donnelly +# Maintainer: Ray Donnelly # Preamble: Because qt5 has: # qt5/mkspecs/features/win32/windows.prf:10: !contains(QMAKE_DEFAULT_LIBDIRS, $$QT.core.libs): @@ -20,7 +20,7 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=.2293.a8e6324 +pkgver=.2458.e8da87a pkgrel=1 pkgdesc='Qt Build Suite' url='http://qt-project.org' @@ -32,14 +32,28 @@ conflicts=("${MINGW_PACKAGE_PREFIX}-qbs") QBS_GIT_BRANCH=master source=("git://gitorious.org/qt-labs/qbs.git#branch=$QBS_GIT_BRANCH" "manifest" - "0001-add-hostosinfo.h-to-installed-headers.patch" - "0002-WIP-Xcode-generator.patch" - "0003-add-generator-header-installs.patch") + # 1.3 branch + "0001-add-hostosinfo.h-to-installed-headers.1.3.patch" + "0002-WIP-Xcode-generator.1.3.patch" + "0003-add-generator-header-installs.1.3.patch" + "0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch" + "0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch" + # master branch + "0001-WIP-Xcode-generator.master.patch" + "0002-add-generator-header-installs.master.patch" + "0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch" + "0004-setup-toolchains-Pretend-msys-is-mingw.master.patch") sha256sums=('SKIP' '838098b25a8044176b3139b4003594570c62a8d64f5470fbbd769f3bf44e0855' - 'b791b90bd4e49fd0188167c308a3da1773ddc6740d88c385e4f5d811ef0bb117' - 'bd05da6b8f5984cb824c6a7426de9bf6d29e917318f1cf10b103467986dc3c2b' - '036c5452f19eebfc3c39982b47191e4c4e7ae2ba0e0b23dc818105189f54b441') + '42033f1988db6645e5997f97eda72d52df2b2f310f332854c400ed0da79b7d3f' + 'a7176a9cf66121ac71b09b02964aa17b9560fcd641d5f88c08b468d5c311ceb4' + 'b34a0482b4a3079304287f640b3b4594dcc6495fac39509c2e53b4b545c1b6ff' + '7ffc116e0cb5cdd977697d356e7168abda929441c995168d065289fed573b1b4' + 'cb432f700586ba3d4ae7d45b5d958755ff2654d4e80ad0e2dcee6dfec8661fbb' + 'b8fad922fdbc506b959ab1512bddbe642a40a4e87361bcfda6ce2df4d2b03ffb' + '61980a2b2f4ab3d472764955bc167f009a549a2bf283704f5041fe40747bcc86' + '0b1960d1866926318a41f23d288cae501cbdf203eb4b77e7b8809f1c85f93d2b' + '453051b6e8a666055032df78db403e2f6f66b9b9e51ae60c127b3a5c9b5b7599') pkgver() { cd "$srcdir"/$_realname @@ -48,9 +62,18 @@ pkgver() { prepare() { cd "$srcdir"/$_realname - git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.patch - git am "${srcdir}"/0002-WIP-Xcode-generator.patch - git am "${srcdir}"/0003-add-generator-header-installs.patch + if [ "${QBS_GIT_BRANCH}" = "master" ]; then + git am "${srcdir}"/0001-WIP-Xcode-generator.master.patch + git am "${srcdir}"/0002-add-generator-header-installs.master.patch + git am "${srcdir}"/0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch + git am "${srcdir}"/0004-setup-toolchains-Pretend-msys-is-mingw.master.patch + elif [ "${QBS_GIT_BRANCH}" = "1.3" ]; then + git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.1.3.patch + git am "${srcdir}"/0002-WIP-Xcode-generator.1.3.patch + git am "${srcdir}"/0003-add-generator-header-installs.1.3.patch + git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch + git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch + fi } build() { From a7cb3a79adfeb2a4fa68e7cd22a0f5a96b8af3e8 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 19:49:12 +0000 Subject: [PATCH 0048/2060] qbs: Use git and git am --- ...osinfo.h-to-installed-headers.1.3.2.patch} | 10 +++--- ...h => 0002-WIP-Xcode-generator.1.3.2.patch} | 32 +++++++++--------- ...add-generator-header-installs.1.3.2.patch} | 10 +++--- ....a-for-mingw-import-libraries.1.3.2.patch} | 18 +++++++--- ...lchains-Pretend-msys-is-mingw.1.3.2.patch} | 24 +++++++++++--- mingw-w64-qbs/PKGBUILD | 33 ++++++++++--------- 6 files changed, 77 insertions(+), 50 deletions(-) rename mingw-w64-qbs/{0001-add-hostosinfo.h-to-installed-headers.patch => 0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch} (76%) rename mingw-w64-qbs/{0002-WIP-Xcode-generator.patch => 0002-WIP-Xcode-generator.1.3.2.patch} (99%) rename mingw-w64-qbs/{0003-add-generator-header-installs.patch => 0003-add-generator-header-installs.1.3.2.patch} (84%) rename mingw-w64-qbs/{0005-shared-vs-static-extension.patch => 0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch} (58%) rename mingw-w64-qbs/{0006-probe-pretend-msys-is-mingw.patch => 0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch} (57%) diff --git a/mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.patch b/mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch similarity index 76% rename from mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.patch rename to mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch index 0e4f6924e8..ec798b3a92 100644 --- a/mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.patch +++ b/mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch @@ -1,7 +1,7 @@ -From 30f0eea92b5ec0029abf02885c42ce04d2aa1772 Mon Sep 17 00:00:00 2001 +From 59a55dac90256bf657283ef80223871dcadef493 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 12:19:52 +0100 -Subject: [PATCH 1/3] add hostosinfo.h to installed headers +Subject: [PATCH 1/5] add hostosinfo.h to installed headers .. if you build Qt Creator with system qbs then this header is needed by: @@ -11,10 +11,10 @@ src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp 1 file changed, 1 insertion(+) diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 8171f42..0dfe50f 100644 +index a05efa8..5b497aa 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -72,6 +72,7 @@ qbs_enable_unit_tests { +@@ -75,6 +75,7 @@ all_tests { $$PWD/cleanoptions.h \ $$PWD/codelocation.h \ $$PWD/error.h \ @@ -23,5 +23,5 @@ index 8171f42..0dfe50f 100644 $$PWD/preferences.h \ $$PWD/profile.h \ -- -2.1.0 +2.1.3 diff --git a/mingw-w64-qbs/0002-WIP-Xcode-generator.patch b/mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch similarity index 99% rename from mingw-w64-qbs/0002-WIP-Xcode-generator.patch rename to mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch index 27984e7113..eecc46c935 100644 --- a/mingw-w64-qbs/0002-WIP-Xcode-generator.patch +++ b/mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch @@ -1,7 +1,7 @@ -From f3258a17f49b03418ba73baaa5ae1246a1f9d11a Mon Sep 17 00:00:00 2001 +From 02087c6e60eb5a921b0d16c512c8ee2da6acaa82 Mon Sep 17 00:00:00 2001 From: Jake Petroules -Date: Thu, 9 Jan 2014 09:00:47 -0500 -Subject: [PATCH 2/3] WIP: Xcode generator. +Date: Sat, 29 Nov 2014 18:12:45 +0000 +Subject: [PATCH 2/5] WIP: Xcode generator. Task-number: QBS-32 @@ -136,7 +136,7 @@ Change-Id: I5ce5cc3148aa801d75a1f64b778fe7334de43af9 create mode 100644 src/plugins/generator/xcode/xcodesimplegenerator.h diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp -index 5ecd22f..039b2a7 100644 +index 39ecdd3..0ecae03 100644 --- a/src/app/qbs/commandlinefrontend.cpp +++ b/src/app/qbs/commandlinefrontend.cpp @@ -38,6 +38,7 @@ @@ -147,7 +147,7 @@ index 5ecd22f..039b2a7 100644 #include #include -@@ -326,6 +327,9 @@ void CommandLineFrontend::handleProjectsResolved() +@@ -331,6 +332,9 @@ void CommandLineFrontend::handleProjectsResolved() if (m_cancelStatus != CancelStatusNone) throw ErrorInfo(Tr::tr("Execution canceled.")); switch (m_parser.command()) { @@ -157,7 +157,7 @@ index 5ecd22f..039b2a7 100644 case ResolveCommandType: qApp->quit(); break; -@@ -445,6 +449,29 @@ void CommandLineFrontend::build() +@@ -451,6 +455,29 @@ void CommandLineFrontend::build() m_currentBuildEffort = 0; } @@ -600,7 +600,7 @@ index 0000000..7f8ba97 + +#endif // QBS_GENERATOR_H diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp -index 0bf6a9f..a9102f1 100644 +index 6e0dd8f..66da874 100644 --- a/src/lib/corelib/api/project.cpp +++ b/src/lib/corelib/api/project.cpp @@ -54,6 +54,7 @@ @@ -611,7 +611,7 @@ index 0bf6a9f..a9102f1 100644 #include #include #include -@@ -90,6 +91,7 @@ static void loadPlugins(const QStringList &_pluginPaths, const Logger &logger) +@@ -94,6 +95,7 @@ static void loadPlugins(const QStringList &_pluginPaths, const Logger &logger) pluginPaths << pluginPath; } } @@ -620,7 +620,7 @@ index 0bf6a9f..a9102f1 100644 qRegisterMetaType("qbs::ErrorInfo"); diff --git a/src/lib/corelib/qbs.h b/src/lib/corelib/qbs.h -index 6749fdb..7d1d238 100644 +index c71d9b9..7eba37b 100644 --- a/src/lib/corelib/qbs.h +++ b/src/lib/corelib/qbs.h @@ -29,6 +29,7 @@ @@ -631,7 +631,7 @@ index 6749fdb..7d1d238 100644 #include "api/jobs.h" #include "api/languageinfo.h" #include "api/project.h" -@@ -37,6 +38,7 @@ +@@ -38,6 +39,7 @@ #include "tools/buildoptions.h" #include "tools/cleanoptions.h" #include "tools/error.h" @@ -1024,10 +1024,10 @@ index 8bf43d2..fd23faa 100644 if (!lib->load()) { logger.qbsWarning() << Tr::tr("Pluginmanager: Cannot load plugin '%1': %2") diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 0dfe50f..85175b3 100644 +index 5b497aa..5008738 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -6,6 +6,8 @@ HEADERS += \ +@@ -7,6 +7,8 @@ HEADERS += \ $$PWD/error.h \ $$PWD/fileinfo.h \ $$PWD/filetime.h \ @@ -1036,7 +1036,7 @@ index 0dfe50f..85175b3 100644 $$PWD/id.h \ $$PWD/persistence.h \ $$PWD/scannerpluginmanager.h \ -@@ -35,6 +37,8 @@ SOURCES += \ +@@ -37,6 +39,8 @@ SOURCES += \ $$PWD/codelocation.cpp \ $$PWD/error.cpp \ $$PWD/fileinfo.cpp \ @@ -4591,7 +4591,7 @@ index 0000000..e2bc712 +#endif // QBS_XCODEGENERATOR_H diff --git a/src/plugins/generator/xcode/xcodenativegenerator.cpp b/src/plugins/generator/xcode/xcodenativegenerator.cpp new file mode 100644 -index 0000000..ef6f0f3 +index 0000000..5457c3f --- /dev/null +++ b/src/plugins/generator/xcode/xcodenativegenerator.cpp @@ -0,0 +1,136 @@ @@ -4792,7 +4792,7 @@ index 0000000..d964b94 +#endif // QBS_XCODENATIVEGENERATOR_H diff --git a/src/plugins/generator/xcode/xcodesimplegenerator.cpp b/src/plugins/generator/xcode/xcodesimplegenerator.cpp new file mode 100644 -index 0000000..7bd9b05 +index 0000000..306d46d --- /dev/null +++ b/src/plugins/generator/xcode/xcodesimplegenerator.cpp @@ -0,0 +1,275 @@ @@ -5139,5 +5139,5 @@ index d3823ae..9fe2e6b 100644 -SUBDIRS = scanner +SUBDIRS = generator scanner -- -2.1.0 +2.1.3 diff --git a/mingw-w64-qbs/0003-add-generator-header-installs.patch b/mingw-w64-qbs/0003-add-generator-header-installs.1.3.2.patch similarity index 84% rename from mingw-w64-qbs/0003-add-generator-header-installs.patch rename to mingw-w64-qbs/0003-add-generator-header-installs.1.3.2.patch index d54679ebc6..fcf391bffb 100644 --- a/mingw-w64-qbs/0003-add-generator-header-installs.patch +++ b/mingw-w64-qbs/0003-add-generator-header-installs.1.3.2.patch @@ -1,7 +1,7 @@ -From 0d6026fc1cc2dcbd9446af340f84cb2c614ae134 Mon Sep 17 00:00:00 2001 +From 987ef4db561f6629e7a44b818de71d866ba746bc Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 00:12:36 +0100 -Subject: [PATCH 3/3] add generator header installs +Subject: [PATCH 3/5] add generator header installs --- src/lib/corelib/api/api.pri | 1 + @@ -21,10 +21,10 @@ index 9b2fb38..e31ea57 100644 api_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/api INSTALLS += api_headers diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 85175b3..f3c3e09 100644 +index 5008738..9e361e1 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -84,6 +84,7 @@ qbs_enable_unit_tests { +@@ -87,6 +87,7 @@ all_tests { $$PWD/qbs_export.h \ $$PWD/buildoptions.h \ $$PWD/installoptions.h \ @@ -33,5 +33,5 @@ index 85175b3..f3c3e09 100644 tools_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/tools INSTALLS += tools_headers -- -2.1.0 +2.1.3 diff --git a/mingw-w64-qbs/0005-shared-vs-static-extension.patch b/mingw-w64-qbs/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch similarity index 58% rename from mingw-w64-qbs/0005-shared-vs-static-extension.patch rename to mingw-w64-qbs/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch index f9292d45ae..820c5db21b 100644 --- a/mingw-w64-qbs/0005-shared-vs-static-extension.patch +++ b/mingw-w64-qbs/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch @@ -1,8 +1,17 @@ +From de2494323ad1397962936f48181335cf3682b180 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 29 Nov 2014 18:20:12 +0000 +Subject: [PATCH 4/5] Use .dll.a instead of .a for mingw* import libraries + +--- + src/lib/qtprofilesetup/qtmoduleinfo.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + diff --git a/src/lib/qtprofilesetup/qtmoduleinfo.cpp b/src/lib/qtprofilesetup/qtmoduleinfo.cpp -index e55cd0c..88f68d9 100644 +index 220ee5b..d55e2ff 100644 --- a/src/lib/qtprofilesetup/qtmoduleinfo.cpp +++ b/src/lib/qtprofilesetup/qtmoduleinfo.cpp -@@ -217,7 +217,7 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, +@@ -241,7 +241,7 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, if (qtEnv.mkspecName.contains(QLatin1String("msvc"))) libFilePath += QLatin1String(".lib"); else if (isMingw) @@ -11,5 +20,6 @@ index e55cd0c..88f68d9 100644 continue; } if (!simplifiedLine.startsWith("QMAKE_PRL_LIBS")) --- -2.1.1 \ No newline at end of file +-- +2.1.3 + diff --git a/mingw-w64-qbs/0006-probe-pretend-msys-is-mingw.patch b/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch similarity index 57% rename from mingw-w64-qbs/0006-probe-pretend-msys-is-mingw.patch rename to mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch index 1b9d2509a4..5f41fe31df 100644 --- a/mingw-w64-qbs/0006-probe-pretend-msys-is-mingw.patch +++ b/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch @@ -1,7 +1,18 @@ -diff -urN qbs-1.3.2.orig/src/app/qbs-setup-toolchains/probe.cpp qbs-1.3.2/src/app/qbs-setup-toolchains/probe.cpp ---- qbs-1.3.2.orig/src/app/qbs-setup-toolchains/probe.cpp 2014-10-31 20:08:07.938732400 +0000 -+++ qbs-1.3.2/src/app/qbs-setup-toolchains/probe.cpp 2014-10-31 20:09:34.637691300 +0000 -@@ -85,7 +85,8 @@ +From 6850d7a5bee20766656121db96444610f6d48c10 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 29 Nov 2014 18:29:20 +0000 +Subject: [PATCH 5/5] setup-toolchains: Pretend msys is mingw + +It's close enough and the best we've got. +--- + src/app/qbs-setup-toolchains/probe.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/app/qbs-setup-toolchains/probe.cpp b/src/app/qbs-setup-toolchains/probe.cpp +index d0f123b..184efdf 100644 +--- a/src/app/qbs-setup-toolchains/probe.cpp ++++ b/src/app/qbs-setup-toolchains/probe.cpp +@@ -85,7 +85,8 @@ static QStringList validMinGWMachines() return QStringList() << QLatin1String("mingw32") << QLatin1String("mingw64") << QLatin1String("i686-w64-mingw32") << QLatin1String("x86_64-w64-mingw32") @@ -11,7 +22,7 @@ diff -urN qbs-1.3.2.orig/src/app/qbs-setup-toolchains/probe.cpp qbs-1.3.2/src/ap } static QStringList completeToolchainList(const QString &toolchainName) -@@ -196,7 +197,7 @@ +@@ -196,7 +197,7 @@ static Profile createGccProfile(const QString &compilerFilePath, Settings *setti { const QString machineName = gccMachineName(compilerFilePath); const QStringList compilerTriplet = machineName.split(QLatin1Char('-')); @@ -20,3 +31,6 @@ diff -urN qbs-1.3.2.orig/src/app/qbs-setup-toolchains/probe.cpp qbs-1.3.2/src/ap const bool isClang = toolchainTypes.contains(QLatin1String("clang")); if (isMingw && !validMinGWMachines().contains(machineName)) { +-- +2.1.3 + diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index 2e616464f8..f8fb061ac8 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -15,29 +15,32 @@ options=('docs' 'staticlibs') # '!strip' 'debug') source=("http://download.qt-project.org/official_releases/qbs/${pkgver}/${_pkgfqn}.tar.gz" #${_realname}-${pkgver}::"git://gitorious.org/qt-labs/qbs.git#tag=v$pkgver" "manifest" - "0001-add-hostosinfo.h-to-installed-headers.patch" - "0002-WIP-Xcode-generator.patch" - "0003-add-generator-header-installs.patch" - "0005-shared-vs-static-extension.patch" - "0006-probe-pretend-msys-is-mingw.patch") + "0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch" + "0002-WIP-Xcode-generator.1.3.2.patch" + "0003-add-generator-header-installs.1.3.2.patch" + "0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch" + "0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch") sha256sums=('03ce02bc1e5d6985e79318a7e49b95052166de5fe464c9149ce2828368292a9f' '838098b25a8044176b3139b4003594570c62a8d64f5470fbbd769f3bf44e0855' - 'b791b90bd4e49fd0188167c308a3da1773ddc6740d88c385e4f5d811ef0bb117' - '6a4a18fbd710f35ba2515b793b07471fd9d4d954e169e4f5ee6067a22c13f8a3' - '036c5452f19eebfc3c39982b47191e4c4e7ae2ba0e0b23dc818105189f54b441' - 'd6193c98284e3b228a5f2143e95da53768d08d6b229fe71fda6941de2f8f0409' - 'b96dfb92a385cdecfb7795b17292694942f50183613e40564cbe545556a090d6') + '6cc55051178868aeda33608f1ea7cc5d30641454c852c807d13b3eaf6db9a513' + '8d1bb855505379419b4ad4220d25bdd74b67709f09cd923cf1fbb8b24b3b2acb' + '29b46019650edfc4ff5d5b954e4bbfd7aa53b47dfe5d4c46505b8e3fa284b197' + '6efed604de50ac5ab43205845e5888604705fa907b6eb30c7004a9bd228973bf' + '10594ba415e7d79ddcd9dc5b33a1c8ea898090213d4596aac507d739e7e28035') prepare() { cd ${_realname}-${pkgver} [ -d src/plugins/generator ] && rm -rf src/plugins/generator rm -rf src/lib/corelib/api/generator.* rm -rf src/lib/corelib/tools/generat* - patch -p1 < "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.patch - patch -p1 < "${srcdir}"/0002-WIP-Xcode-generator.patch - patch -p1 < "${srcdir}"/0003-add-generator-header-installs.patch - patch -p1 < "${srcdir}"/0005-shared-vs-static-extension.patch - patch -p1 < "${srcdir}"/0006-probe-pretend-msys-is-mingw.patch + git init . + git add -A + git commit -m "Initial git import" + git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch + git am "${srcdir}"/0002-WIP-Xcode-generator.1.3.2.patch + git am "${srcdir}"/0003-add-generator-header-installs.1.3.2.patch + git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch + git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch } build() { From 1da36dc5e87572c4f4cef6de2e7bfa72cc7c06e1 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 20:19:05 +0000 Subject: [PATCH 0049/2060] qtcreator: Update to 3.3.0-rc1 and qbs-git (1.3 branch) --- mingw-w64-qtcreator/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 407b34ca67..90a4f8b4bc 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -4,7 +4,7 @@ _realname=qt-creator pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" # WIP for 3.? -__pre=-beta1 +__pre=-rc1 _base_ver=3.3.0 #_base_ver=3.2.2 pkgver=${_base_ver}${_pre} @@ -16,7 +16,7 @@ arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-qt5" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-make" - "${MINGW_PACKAGE_PREFIX}-qbs") + "${MINGW_PACKAGE_PREFIX}-qbs-git") makedepends=("${MINGW_PACKAGE_PREFIX}-clang") options=('docs' 'staticlibs') # 'debug' '!strip') optdepends=("${MINGW_PACKAGE_PREFIX}-gdb: for the debugger" @@ -45,7 +45,7 @@ source=(http://download.qt-project.org/development_releases/qtcreator/${_base_ve qt-creator-3.2.0-i[3456]86-and-x86-have-32bit-wordWidth.patch qt-creator-3.3.0-abi-msys-is-Windows.patch) noextract=(${_pkgfqn}.tar.gz) -sha256sums=('96ed5896f384d0032d01870ddac51a07e936c71e5dca0c8032e23416259005e2' +sha256sums=('f9b092e6d1e92762df0987222d4719659e9f352c389df00b64c5f1fdfc24bdc8' '18f59946054e667b56276f53ec544d4786c3c249fee6c0bd9b0b565ed4b7cf2d' '6c34b2bad7a24c5922d237dc67fcced14e83d65116f77cd84aa80ae2ebd4aad9' '2f45ff4c2806c90c36f19da07707fef213e50fbf8825fe169e1bce6349efacee' From 74501ac39ef880341f313d21a5596555257bc4c0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 20:19:36 +0000 Subject: [PATCH 0050/2060] qbs-git: Switch branch to 1.3 (for Qt Creator) --- mingw-w64-qbs-git/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-qbs-git/PKGBUILD b/mingw-w64-qbs-git/PKGBUILD index 692221e350..65973c4611 100644 --- a/mingw-w64-qbs-git/PKGBUILD +++ b/mingw-w64-qbs-git/PKGBUILD @@ -20,7 +20,7 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=.2458.e8da87a +pkgver=.2347.be93bcd pkgrel=1 pkgdesc='Qt Build Suite' url='http://qt-project.org' @@ -29,7 +29,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt5") options=('docs' 'staticlibs') # '!strip' 'debug') provides=("${MINGW_PACKAGE_PREFIX}-qbs") conflicts=("${MINGW_PACKAGE_PREFIX}-qbs") -QBS_GIT_BRANCH=master +QBS_GIT_BRANCH=1.3 source=("git://gitorious.org/qt-labs/qbs.git#branch=$QBS_GIT_BRANCH" "manifest" # 1.3 branch From e6d871fcadb4d48528349fb752b9d184b235248f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 30 Nov 2014 00:20:28 +0300 Subject: [PATCH 0051/2060] firebird-git: Build in different folders for every ARCH. Fix dependencies. --- mingw-w64-firebird-git/PKGBUILD | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD index dfaa1177ec..53529eecf2 100644 --- a/mingw-w64-firebird-git/PKGBUILD +++ b/mingw-w64-firebird-git/PKGBUILD @@ -2,7 +2,7 @@ _realname='firebird' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=3.0.0.31406.ebb7243 +pkgver=3.0.0.31453.c4f6ce2 pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features (mingw-w64)" url="http://www.firebirdsql.org/" @@ -15,6 +15,7 @@ depends=( "${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-icu" "${MINGW_PACKAGE_PREFIX}-libtommath" # For Firebird 3.x + "${MINGW_PACKAGE_PREFIX}-zlib" ) makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird presence of system btyacc "${MINGW_PACKAGE_PREFIX}-gcc" @@ -23,7 +24,7 @@ makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird pre "git" ) options=('!debug' 'strip') -source=("${_realname}"::"git+https://github.com/Alexpux/firebird.git#branch=mingw-w64" +source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git#branch=mingw-w64-trunk" #"${_realname}"::"git+file:///v/Sources/GNU/firebird#branch=mingw-w64" ) sha256sums=('SKIP') @@ -35,7 +36,8 @@ pkgver() { } prepare() { - cd "${_realname}" + mv "${_realname}" "${CARCH}" + cd "${CARCH}" NOCONFIGURE=1 ./autogen.sh } @@ -45,7 +47,7 @@ build() { _debug_conf="--enable-debug" fi - cd ${srcdir}/${_realname} + cd ${srcdir}/${CARCH} ./configure \ --prefix=${MINGW_PREFIX} \ @@ -65,7 +67,7 @@ build() { } package() { - cd ${srcdir}/${_realname} + cd ${srcdir}/${CARCH} local _dir=Release if check_option "debug" "y"; then @@ -74,5 +76,5 @@ package() { mkdir -p ${pkgdir} cp -rf gen/${_dir}/firebird ${pkgdir}${MINGW_PREFIX} - cp -rf ${srcdir}/${_realname}/doc ${pkgdir}${MINGW_PREFIX}/ + cp -rf ${srcdir}/${CARCH}/doc ${pkgdir}${MINGW_PREFIX}/ } From ecb8ed86ffa8820c1c7a65b7aa6fb0bd5f5679f1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 30 Nov 2014 19:24:01 +0300 Subject: [PATCH 0052/2060] firebird-git: Update to latest. --- mingw-w64-firebird-git/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD index 53529eecf2..66e6043469 100644 --- a/mingw-w64-firebird-git/PKGBUILD +++ b/mingw-w64-firebird-git/PKGBUILD @@ -2,7 +2,7 @@ _realname='firebird' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=3.0.0.31453.c4f6ce2 +pkgver=3.0.0.31456.5aaf93b pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features (mingw-w64)" url="http://www.firebirdsql.org/" @@ -25,7 +25,7 @@ makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird pre ) options=('!debug' 'strip') source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git#branch=mingw-w64-trunk" - #"${_realname}"::"git+file:///v/Sources/GNU/firebird#branch=mingw-w64" + #"${_realname}"::"git+file:///v/Sources/GNU/firebird-git#branch=mingw-w64-trunk" ) sha256sums=('SKIP') From 7f879b8623ad177e35c4ac5fa7c8ad2454fac2f2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 30 Nov 2014 19:25:38 +0300 Subject: [PATCH 0053/2060] libtool: Update to 2.4.4 --- mingw-w64-libtool/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libtool/PKGBUILD b/mingw-w64-libtool/PKGBUILD index 40bbe74290..c90b23a610 100644 --- a/mingw-w64-libtool/PKGBUILD +++ b/mingw-w64-libtool/PKGBUILD @@ -2,7 +2,7 @@ _realname=libtool pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.4.3 +pkgver=2.4.4 pkgrel=1 pkgdesc="A system independent dlopen wrapper for GNU libtool (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ source=("http://ftp.gnu.org/pub/gnu/libtool/libtool-${pkgver}.tar.xz"{,.sig} 0005-Fix-seems-to-be-moved.patch 0006-Fix-strict-ansi-vs-posix.patch 0007-fix-cr-for-awk-in-configure.all.patch) -md5sums=('b5699a6d58f5594cdb0992c5e1f5e57e' +md5sums=('51bf400de3354687d68dfa2392506b7e' 'SKIP' '091163f2cc8c2dd8c8d5574181eb53e1' '2396f4f169edb316d8d076897ff03347' From 1dc4ca58d9cc46a46ab82af72b0d43d6a24ae30b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 30 Nov 2014 20:51:07 +0300 Subject: [PATCH 0054/2060] nanovg-git: Fix building for different arches. --- mingw-w64-nanovg-git/PKGBUILD | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/mingw-w64-nanovg-git/PKGBUILD b/mingw-w64-nanovg-git/PKGBUILD index 8269e7c787..72027cbf51 100644 --- a/mingw-w64-nanovg-git/PKGBUILD +++ b/mingw-w64-nanovg-git/PKGBUILD @@ -12,27 +12,31 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-premake") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -source=("$pkgname"::'git://github.com/memononen/nanovg.git') +source=("$_realname"::'git://github.com/memononen/nanovg.git') md5sums=('SKIP') options=('staticlibs') pkgver() { - cd "$srcdir/$pkgname" + cd "$srcdir/$_realname" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } +prepare() { + mv $_realname $MINGW_CHOST +} + build() { - cd "$srcdir/$pkgname" + cd "$srcdir/$MINGW_CHOST" premake4 gmake cd build CC=gcc CXX=g++ make nanovg } package() { - install -v -Dm644 "$srcdir/$pkgname/build/libnanovg.a" "${pkgdir}${MINGW_PREFIX}/lib/libnanovg.a" || exit 1 - install -v -Dm644 "$srcdir/$pkgname/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/LICENSE.txt" || exit 1 - install -v -Dm644 "$srcdir/$pkgname/src/nanovg.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg.h" || exit 1 - install -v -Dm644 "$srcdir/$pkgname/src/nanovg_gl.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl.h" || exit 1 - install -v -Dm644 "$srcdir/$pkgname/src/nanovg_gl_utils.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl_utils.h" || exit 1 - install -v -Dm644 "$srcdir/$pkgname/src/fontstash.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/fontstash.h" || exit 1 + install -v -Dm644 "$srcdir/$MINGW_CHOST/build/libnanovg.a" "${pkgdir}${MINGW_PREFIX}/lib/libnanovg.a" || exit 1 + install -v -Dm644 "$srcdir/$MINGW_CHOST/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/LICENSE.txt" || exit 1 + install -v -Dm644 "$srcdir/$MINGW_CHOST/src/nanovg.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg.h" || exit 1 + install -v -Dm644 "$srcdir/$MINGW_CHOST/src/nanovg_gl.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl.h" || exit 1 + install -v -Dm644 "$srcdir/$MINGW_CHOST/src/nanovg_gl_utils.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl_utils.h" || exit 1 + install -v -Dm644 "$srcdir/$MINGW_CHOST/src/fontstash.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/fontstash.h" || exit 1 } \ No newline at end of file From 3d67229fb4c17754d7666dda89b767460aaf326d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 30 Nov 2014 20:51:42 +0300 Subject: [PATCH 0055/2060] premake: Pass CC to make. --- mingw-w64-premake/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-premake/PKGBUILD b/mingw-w64-premake/PKGBUILD index 975ed96296..994965d45b 100644 --- a/mingw-w64-premake/PKGBUILD +++ b/mingw-w64-premake/PKGBUILD @@ -15,7 +15,7 @@ md5sums=('8cfafee76f9665c93b2e9ad15b015eb7') build() { cd "$srcdir/${_realname}-${pkgver}/build/gmake.windows" - make + CC=${MINGW_PREFIX}/bin/gcc make } package() { From 47ef0cf28462541a236136aef2e8d88f26fc3c35 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 30 Nov 2014 20:52:22 +0300 Subject: [PATCH 0056/2060] zeromq: Fix package name. --- mingw-w64-zeromq/PKGBUILD | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mingw-w64-zeromq/PKGBUILD b/mingw-w64-zeromq/PKGBUILD index 0d988d69d2..14490545ec 100644 --- a/mingw-w64-zeromq/PKGBUILD +++ b/mingw-w64-zeromq/PKGBUILD @@ -1,7 +1,7 @@ # From Greblus: http://blog.greblus.net/2014/11/18/msys2mingw-w64-cython-i-ipython-notebook/ -realname=zeromq -pkgname="mingw-w64-${realname}" +_realname=zeromq +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.0.5 pkgrel=1 pkgdesc="Fast messaging system built on sockets, C and C++ bindings. aka 0MQ, ZMQ. (mingw-w64)" @@ -17,7 +17,7 @@ md5sums=('73c39f5eb01b9d7eaf74a5d899f1d03d') build() { mkdir -p $srcdir/build-${CARCH} cd $srcdir/build-${CARCH} - ../zeromq-${pkgver}/configure \ + ../zeromq-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} @@ -31,4 +31,3 @@ package() { cd "${srcdir}/build-${CARCH}" make DESTDIR="$pkgdir" install } - From e80783fc751028d596b32bdef29eea681b880e2c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 1 Dec 2014 02:31:01 +0000 Subject: [PATCH 0057/2060] qt5-static: Update to 5.4.0 --- ...-5.3.0-use-fbclient-instead-of-gds32.patch | 2 +- .../0006-qt-5.3.0-win_flex-replace.patch | 2 +- .../0017-qt-5.3.0-fix-examples-building.patch | 4 +- .../0026-qt-5.3.1-webkit-detect-tools.patch | 2 +- ...use-of-system-vs.-shell-path-list-se.patch | 2 +- ...ng-and-path-separators-in-qtPrepareT.patch | 19 ++++---- ...PREFIX_STATICLIB-in-create_cmake-prf.patch | 25 +++++----- mingw-w64-qt5-static/PKGBUILD | 48 +++++++++---------- 8 files changed, 52 insertions(+), 52 deletions(-) diff --git a/mingw-w64-qt5-static/0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch b/mingw-w64-qt5-static/0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch index 59e81e2928..f8579bce65 100644 --- a/mingw-w64-qt5-static/0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch +++ b/mingw-w64-qt5-static/0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch @@ -6,6 +6,6 @@ diff -urN --ignore-all-space a/qtbase/src/sql/drivers/ibase/qsql_ibase.pri b/qtb } else { !contains(LIBS, .*gds.*):!contains(LIBS, .*fbclient.*) { - LIBS += -lgds32_ms -+ LIBS += -lfbclient_ms ++ LIBS += -lfbclient } } diff --git a/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch b/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch index 9ea7aedfd3..aef0f1896f 100644 --- a/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch +++ b/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch @@ -29,7 +29,7 @@ diff -urN --ignore-all-space a/qtwebkit/Tools/qmake/mkspecs/features/default_pre # A newer version of flex is required on Windows. At the moment the only # one that appears to provide binaries and is not cygwin is winflex. FLEX = flex --win32: FLEX = win_flex +-equals(QMAKE_HOST.os, Windows): FLEX = win_flex BIN_EXTENSION = win32: BIN_EXTENSION = .exe diff --git a/mingw-w64-qt5-static/0017-qt-5.3.0-fix-examples-building.patch b/mingw-w64-qt5-static/0017-qt-5.3.0-fix-examples-building.patch index f170405155..4991954b94 100644 --- a/mingw-w64-qt5-static/0017-qt-5.3.0-fix-examples-building.patch +++ b/mingw-w64-qt5-static/0017-qt-5.3.0-fix-examples-building.patch @@ -9,8 +9,8 @@ OBJECTS_DIR = tmp MOC_DIR = tmp ---- x86_64/qtdeclarative/examples/qml/tutorials/extending/chapter6-plugins/import/import.pro.orig 2014-04-29 14:13:34.761600000 +0400 -+++ x86_64/qtdeclarative/examples/qml/tutorials/extending/chapter6-plugins/import/import.pro 2014-04-29 14:14:50.577600000 +0400 +--- x86_64/qtdeclarative/examples/qml/tutorials/extending-qml/chapter6-plugins/import/import.pro.orig 2014-04-29 14:13:34.761600000 +0400 ++++ x86_64/qtdeclarative/examples/qml/tutorials/extending-qml/chapter6-plugins/import/import.pro 2014-04-29 14:14:50.577600000 +0400 @@ -2,7 +2,7 @@ CONFIG += plugin QT += qml quick diff --git a/mingw-w64-qt5-static/0026-qt-5.3.1-webkit-detect-tools.patch b/mingw-w64-qt5-static/0026-qt-5.3.1-webkit-detect-tools.patch index 5bbe24193b..2ccf835a55 100644 --- a/mingw-w64-qt5-static/0026-qt-5.3.1-webkit-detect-tools.patch +++ b/mingw-w64-qt5-static/0026-qt-5.3.1-webkit-detect-tools.patch @@ -26,7 +26,7 @@ # on Linux and Mac OS X. On Windows we do have a convenience copy in # Qt5's top-level repository, so let's add that to the PATH if we can # find it. -- win32 { +- equals(QMAKE_HOST.os, Windows) { + win32:isEmpty(QMAKE_SH) { GNUTOOLS_DIR=$$[QT_HOST_DATA]/../gnuwin32/bin exists($$GNUTOOLS_DIR/gperf.exe) { diff --git a/mingw-w64-qt5-static/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch b/mingw-w64-qt5-static/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch index bdc8e42245..2b3bb7c465 100644 --- a/mingw-w64-qt5-static/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch +++ b/mingw-w64-qt5-static/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch @@ -49,7 +49,7 @@ index 790724c..eeaafcc 100644 javac.input = JAVASOURCES javac.output = $$CLASS_DIR javac.CONFIG += combine --javac.commands = javac -source 6 -target 6 -Xlint:unchecked -bootclasspath $$ANDROID_JAR_FILE -cp $$shell_quote($$system_path($$join(JAVACLASSPATH, $$DIRLIST_SEP))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} +-javac.commands = javac -source 6 -target 6 -Xlint:unchecked -bootclasspath $$ANDROID_JAR_FILE -cp $$shell_quote($$system_path($$join(JAVACLASSPATH, $$DIRLIST_SEPARATOR))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} +javac.commands = javac -source 6 -target 6 -Xlint:unchecked -bootclasspath $$ANDROID_JAR_FILE -cp $$shell_quote($$shell_path($$join(JAVACLASSPATH, $$QMAKE_DIRLIST_SEP))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} # Force rebuild every time, because we don't know the paths of the destination files # as they depend on the code. diff --git a/mingw-w64-qt5-static/0029-qt-5.3.1-Revert-fix-quoting-and-path-separators-in-qtPrepareT.patch b/mingw-w64-qt5-static/0029-qt-5.3.1-Revert-fix-quoting-and-path-separators-in-qtPrepareT.patch index f52a7451e2..f7db84cd30 100644 --- a/mingw-w64-qt5-static/0029-qt-5.3.1-Revert-fix-quoting-and-path-separators-in-qtPrepareT.patch +++ b/mingw-w64-qt5-static/0029-qt-5.3.1-Revert-fix-quoting-and-path-separators-in-qtPrepareT.patch @@ -13,9 +13,9 @@ diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.p index 9a4d80e..5dd6987 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf -@@ -191,30 +191,26 @@ defineTest(qtAddRpathLink) { +@@ -191,31 +191,27 @@ defineTest(qtAddRpathLink) { - # variable, default, [suffix for variable for system() use] + # variable, default, [suffix for variable for system() use], [prepare primary variable for system() use] defineTest(qtPrepareTool) { - cmd = $$eval(QT_TOOL.$${2}.binary) - isEmpty(cmd) { @@ -40,19 +40,20 @@ index 9a4d80e..5dd6987 100644 } } QT_TOOL_ENV += $$eval(QT_TOOL.$${2}.envvars) - !isEmpty(3) { + !isEmpty(3)|!isEmpty(4) { - $$1$$3 = - for (arg, cmd): \ - $$1$$3 += $$system_quote($$arg) + $$1$$3 = $$system_path($$eval($$1)) qtAddTargetEnv($$1$$3, QT_TOOL.$${2}.depends, system) } -- $$1 = -- for (arg, cmd): \ -- $$1 += $$shell_quote($$arg) -+ $$1 = $$shell_path($$eval($$1)) - qtAddTargetEnv($$1, QT_TOOL.$${2}.depends, ) - } + isEmpty(4) { +- $$1 = +- for (arg, cmd): \ +- $$1 += $$shell_quote($$arg) ++ $$1 = $$shell_path($$eval($$1)) + qtAddTargetEnv($$1, QT_TOOL.$${2}.depends, ) + } diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf index 1d3e88c..f0864f9 100644 diff --git a/mingw-w64-qt5-static/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch b/mingw-w64-qt5-static/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch index 97e9b1caef..aeb3928ba9 100644 --- a/mingw-w64-qt5-static/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch +++ b/mingw-w64-qt5-static/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch @@ -1,21 +1,24 @@ ---- a/qtbase/mkspecs/features/create_cmake.prf 2014-10-13 17:52:38.691086600 +0100 -+++ b/qtbase/mkspecs/features/create_cmake.prf 2014-10-13 19:47:45.828532600 +0100 -@@ -133,11 +133,16 @@ - CMAKE_PLUGIN_NAME = $$PLUGIN_CLASS_NAME +--- qt-everywhere-opensource-src-5.4.0-rc/qtbase/mkspecs/features/create_cmake.prf.orig 2014-12-01 01:49:24.066920200 +0000 ++++ qt-everywhere-opensource-src-5.4.0-rc/qtbase/mkspecs/features/create_cmake.prf 2014-12-01 01:59:39.496120700 +0000 +@@ -134,15 +134,15 @@ win32 { -- isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dll -- else: CMAKE_PlUGIN_EXT = .$${QMAKE_EXTENSION_STATICLIB} -+ isEmpty(CMAKE_STATIC_TYPE) { + isEmpty(CMAKE_STATIC_TYPE) { +- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.dll +- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.dll +- } else:mingw { +- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}.a +- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}d.a +- } else { # MSVC static +- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib +- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib + CMAKE_PlUGIN_EXT = .dll + CMAKE_PlUGIN_PREFIX = + } else { + CMAKE_PlUGIN_EXT = .$${QMAKE_EXTENSION_STATICLIB} + CMAKE_PlUGIN_PREFIX = $${QMAKE_PREFIX_STATICLIB} -+ } - -- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}$${CMAKE_PlUGIN_EXT} -- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d$${CMAKE_PlUGIN_EXT} + } ++ + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_PlUGIN_PREFIX}$${TARGET}$${CMAKE_PlUGIN_EXT} + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_PlUGIN_PREFIX}$${TARGET}d$${CMAKE_PlUGIN_EXT} } else { diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index f359af2703..9ac7e08b10 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -75,9 +75,9 @@ fi _opengl=desktop _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.3.2 +_ver_base=5.4.0-rc pkgver=${_ver_base//-/} -pkgrel=5 +pkgrel=1 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -125,16 +125,16 @@ makedepends=("bison" "${MINGW_PACKAGE_PREFIX}-openssl") $([[ "$_variant" == "-shared" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-libmariadbclient" \ - "${MINGW_PACKAGE_PREFIX}-libfbclient" \ + "${MINGW_PACKAGE_PREFIX}-firebird" \ "${MINGW_PACKAGE_PREFIX}-postgresql") ) groups=("${MINGW_PACKAGE_PREFIX}-qt" "${MINGW_PACKAGE_PREFIX}-qt5") options=('!strip' 'staticlibs' 'ccache') _pkgfqn="qt-everywhere-opensource-src-${_ver_base}" -source=(#"${_pkgfqn}.tar.xz" - #http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ver_base//RC/rc}/single/${_pkgfqn}.tar.xz - http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${_ver_base}/single/${_pkgfqn}.tar.xz +noextract=(${_pkgfqn}.tar.xz) +source=(http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ver_base//RC/rc}/single/${_pkgfqn}.tar.xz + #http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${_ver_base}/single/${_pkgfqn}.tar.xz #http://download.qt-project.org/snapshots/qt/${pkgver%.*}/${_ver_base}/2014-05-07_85/src/qt-everywhere-opensource-src-${_ver_base}.tar.xz #"qt3d"::"git://gitorious.org/qt/qt3d.git" 0001-Add-link-time-optimization-support-for-Clang-GCC-and.patch @@ -173,13 +173,13 @@ source=(#"${_pkgfqn}.tar.xz" 0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch 0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch 0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch) -md5sums=('c4e893678e3d8388ab04d059523d1d78' +md5sums=('3d371bbc5598af620723a594f9f1a774' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' - '356f7fcf93869e92cd232ef70160ab58' + '53edcf1df69ae8134a196292447ddaa3' 'b0b5cc641cf8ebc2660fa819bede0089' '457b97833220a81f542f529e7e0c549c' - '89b720a561c4410085a8e4a456f4a39d' + 'c09d0a1b6a08883e307c7f33dc2d2157' '0f2e3a2f790b07442f0964f4f2f96596' '8ce562d034bb19aaec28ab3abe79bbab' 'ea5f1d5bf2ea4c1d69e6b5de0765adfb' @@ -190,7 +190,7 @@ md5sums=('c4e893678e3d8388ab04d059523d1d78' 'c0721e53378a24b8d013c7db59f14c17' '0d7ce23a99b3f15d176c09e617a437f9' '40ba7d8134a696d07be5be6692cfaca7' - 'f080b698ff724093e95a7b4f22b407eb' + '23f6818466f6b6646c13549110376022' 'e65e3ed10e2dd98d5402321657c809c4' '9ee6524aa78b5e4fbb47f10dc3b267a4' 'acb49bb963a23b15bc7d1a93d8896bee' @@ -199,15 +199,15 @@ md5sums=('c4e893678e3d8388ab04d059523d1d78' '09aaa20fe92aa3fb8eaa36f805503d7d' 'f6cd909c1dd549dea769734f6fe7bd73' '3b550bd6c58d09aa6729987ef16fed65' - 'c89d5c00376d64350c193c4f2459d807' + '47c0f36b9de94cf878cd29b7e2b6ea1b' '01e8030718f088178559a28958a05350' - '288dac91744ddf4d3ac39544fb381466' - 'ede60e9e199e57052e1df95efb65d232' + 'b1007411b47a85813e368e003885469e' + 'a264f298702e70007820ab2f37facffb' '4b60988f913708dd8ee3a79a2eac4cae' 'e009d2a1c7edc41c1f5974883d4f38b2' '516036cb0721d1603009e01f5bd728aa' '47e70b9a063aa99aba0096007ed5b83d' - 'c242bb998d1117544018e169bdd66136' + '3049f9e43e24f7eaafb4659c72ca4789' 'cbef002e6f4b0d043ca6a6e9d60ceca5' 'e00dd07a067a5f5e99a7d4ef76980bc9') @@ -236,18 +236,16 @@ pkg_config_qt5() { } prepare() { - # cd ${srcdir} + cd ${startdir} + [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} + tar -xJf ${startdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true + # cp -rf qt3d ${_pkgfqn}/ - cd ${_pkgfqn} + cd ${srcdir}/${_pkgfqn} # MSYS2 gperf cannot handle \r\n. find . -name "*.gperf" -exec dos2unix "{}" \; - pushd qtbase > /dev/null - rm -f mkspecs/features/ltcg.prf > /dev/null 2>&1 || true - patch -p1 -i ${srcdir}/0001-Add-link-time-optimization-support-for-Clang-GCC-and.patch - popd - patch -p1 -i ${srcdir}/0001-qt-5.3.0-oracle-driver-prompt.patch patch -p1 -i ${srcdir}/0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch patch -p1 -i ${srcdir}/0003-qt-5.3.0-use-mingw-built-mysql-library.patch @@ -262,7 +260,7 @@ prepare() { # ActiveQt (which is always built statically), libQt5OpenGLExtensions{d}.a, libQt5PlatformSupport{d}.a # libQt5QmlDevTools.a, libQt5UiTools{d}.a libqtmain{d}.a patch -p1 -i ${srcdir}/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch - patch -p1 -i ${srcdir}/0009-qt-5.3.0-qmlimportscanner-Ensure-the-correct-variant-is-run.patch + ###patch -p1 -i ${srcdir}/0009-qt-5.3.0-qmlimportscanner-Ensure-the-correct-variant-is-run.patch patch -p1 -i ${srcdir}/0010-qt-5.3.0-qdoc-increase-stack-size-for-win32-g-too.patch patch -p1 -i ${srcdir}/0011-qt-5.3.0-win32-g++-allow-static-dbus-1.patch # The next patch needs some work. It's moving a block of shell script un-necessarily @@ -314,8 +312,8 @@ prepare() { # of it happening near 0. His take on it is that we should have different # target files for RegExpJitTables.h for each of release and debug. patch -p1 -i ${srcdir}/0031-qt-5.3.1-Fix-masm-pri-build-race-condition.patch - patch -p1 -i ${srcdir}/0032-qt-5.3.2-Disable-jitted-Regexp-for-Mingw-64-bit-94712.patch - patch -p1 -i ${srcdir}/0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch + ###patch -p1 -i ${srcdir}/0032-qt-5.3.2-Disable-jitted-Regexp-for-Mingw-64-bit-94712.patch + ###patch -p1 -i ${srcdir}/0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch patch -p1 -i ${srcdir}/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch patch -p1 -i ${srcdir}/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch patch -p1 -i ${srcdir}/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch @@ -393,8 +391,6 @@ build() { _extra_incpaths+=("${MINGW_PREFIX}/include/GLSLANG") fi _extra_incpaths+=("-I") - _extra_incpaths+=("${MINGW_PREFIX}/include/noX") - _extra_incpaths+=("-I") _extra_incpaths+=("${MINGW_PREFIX}/include/mariadb") # This *could* be used but we'd have to make sure it's correct for all variants first. From 8d9b3372450525a6f413b7630bf3d2741b0f1538 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Dec 2014 06:59:26 +0300 Subject: [PATCH 0058/2060] cocos2dx-git: Update to latest. --- mingw-w64-cocos2dx-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-cocos2dx-git/PKGBUILD b/mingw-w64-cocos2dx-git/PKGBUILD index 6a327396e8..052e4de237 100644 --- a/mingw-w64-cocos2dx-git/PKGBUILD +++ b/mingw-w64-cocos2dx-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=cocos2d-x pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r25410.7817504 +pkgver=r25639.c9d0b0f pkgrel=1 pkgdesc="Open source game framework written in C++ (mingw-w64)." arch=('any') From 5da52f7939a7bb196d4965aee98a6d2c514a65eb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Dec 2014 07:01:10 +0300 Subject: [PATCH 0059/2060] jemalloc: New package --- .../001-fix-library-extension.patch | 22 +++++++++ mingw-w64-jemalloc/PKGBUILD | 46 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 mingw-w64-jemalloc/001-fix-library-extension.patch create mode 100644 mingw-w64-jemalloc/PKGBUILD diff --git a/mingw-w64-jemalloc/001-fix-library-extension.patch b/mingw-w64-jemalloc/001-fix-library-extension.patch new file mode 100644 index 0000000000..589299ba2d --- /dev/null +++ b/mingw-w64-jemalloc/001-fix-library-extension.patch @@ -0,0 +1,22 @@ +--- jemalloc-3.6.0/configure.ac.orig 2014-12-01 06:22:10.508800000 +0300 ++++ jemalloc-3.6.0/configure.ac 2014-12-01 06:23:07.687000000 +0300 +@@ -341,7 +341,7 @@ + importlib="${so}" + DSO_LDFLAGS="-shared" + fi +- a="lib" ++ a="a" + libprefix="" + SOREV="${so}" + PIC_CFLAGS="" +--- jemalloc-3.6.0/configure.orig 2014-12-01 06:29:33.067600000 +0300 ++++ jemalloc-3.6.0/configure 2014-12-01 06:29:07.811200000 +0300 +@@ -4924,7 +4924,7 @@ + importlib="${so}" + DSO_LDFLAGS="-shared" + fi +- a="lib" ++ a="a" + libprefix="" + SOREV="${so}" + PIC_CFLAGS="" diff --git a/mingw-w64-jemalloc/PKGBUILD b/mingw-w64-jemalloc/PKGBUILD new file mode 100644 index 0000000000..3b868f447f --- /dev/null +++ b/mingw-w64-jemalloc/PKGBUILD @@ -0,0 +1,46 @@ +# Maintainer: Alexey Pavlov + +_realname=jemalloc +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=3.6.0 +pkgrel=1 +pkgdesc="General-purpose scalable concurrent malloc implementation (mingw64)" +arch=('any') +url="http://www.canonware.com/jemalloc/" +license=('BSD') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +source=(http://www.canonware.com/download/jemalloc/${_realname}-$pkgver.tar.bz2 + 001-fix-library-extension.patch) +sha256sums=('e16c2159dd3c81ca2dc3b5c9ef0d43e1f2f45b04548f42db12e7c12d7bdf84fe' + '0d288a4b4764c571036bbf1bd132b5c533e77efae1a4c3002cf70636656b5d7a') + +prepare() { + cd $srcdir/${_realname}-$pkgver + patch -p1 -i ${srcdir}/001-fix-library-extension.patch + + # ./autogen.sh + +} +build() { + cd $srcdir/${_realname}-$pkgver + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + + CFLAGS+=" -std=gnu11" + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} + + make +} + +package() { + cd "${srcdir}"/build-${CARCH} + make DESTDIR=$pkgdir install + + mv "${pkgdir}${MINGW_PREFIX}"/bin/{,jemalloc-}pprof + mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} From 02be2f1f0da14c35d5b4a65cc4ab7c8815e98982 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Dec 2014 07:01:59 +0300 Subject: [PATCH 0060/2060] postgresql: Rebuild. --- mingw-w64-postgresql/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-postgresql/PKGBUILD b/mingw-w64-postgresql/PKGBUILD index 0ff5b64e6a..dc48bc77b7 100644 --- a/mingw-w64-postgresql/PKGBUILD +++ b/mingw-w64-postgresql/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=postgresql - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=9.3.5 -pkgrel=2 +pkgrel=3 pkgdesc="Libraries for use with PostgreSQL (mingw-w64)" arch=('any') url="http://www.postgresql.org/" @@ -38,6 +37,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}" + export PYTHON=${MINGW_PREFIX}/bin/python2 ../postgresql-$pkgver/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ From 4f97f633ad4570027939b17a080846372b0757a4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Dec 2014 10:04:58 +0300 Subject: [PATCH 0061/2060] jemalloc: Fix library name --- mingw-w64-jemalloc/001-fix-library-extension.patch | 12 ++++++++---- mingw-w64-jemalloc/PKGBUILD | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/mingw-w64-jemalloc/001-fix-library-extension.patch b/mingw-w64-jemalloc/001-fix-library-extension.patch index 589299ba2d..9b051bea0d 100644 --- a/mingw-w64-jemalloc/001-fix-library-extension.patch +++ b/mingw-w64-jemalloc/001-fix-library-extension.patch @@ -1,22 +1,26 @@ --- jemalloc-3.6.0/configure.ac.orig 2014-12-01 06:22:10.508800000 +0300 +++ jemalloc-3.6.0/configure.ac 2014-12-01 06:23:07.687000000 +0300 -@@ -341,7 +341,7 @@ +@@ -341,8 +341,8 @@ importlib="${so}" DSO_LDFLAGS="-shared" fi - a="lib" +- libprefix="" + a="a" - libprefix="" ++ libprefix="lib" SOREV="${so}" PIC_CFLAGS="" + ;; --- jemalloc-3.6.0/configure.orig 2014-12-01 06:29:33.067600000 +0300 +++ jemalloc-3.6.0/configure 2014-12-01 06:29:07.811200000 +0300 -@@ -4924,7 +4924,7 @@ +@@ -4924,8 +4924,8 @@ importlib="${so}" DSO_LDFLAGS="-shared" fi - a="lib" +- libprefix="" + a="a" - libprefix="" ++ libprefix="lib" SOREV="${so}" PIC_CFLAGS="" + ;; diff --git a/mingw-w64-jemalloc/PKGBUILD b/mingw-w64-jemalloc/PKGBUILD index 3b868f447f..2dd2ec7e60 100644 --- a/mingw-w64-jemalloc/PKGBUILD +++ b/mingw-w64-jemalloc/PKGBUILD @@ -12,7 +12,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") source=(http://www.canonware.com/download/jemalloc/${_realname}-$pkgver.tar.bz2 001-fix-library-extension.patch) sha256sums=('e16c2159dd3c81ca2dc3b5c9ef0d43e1f2f45b04548f42db12e7c12d7bdf84fe' - '0d288a4b4764c571036bbf1bd132b5c533e77efae1a4c3002cf70636656b5d7a') + '074700fcdb9d0548668d5e1f8a61b3571e35c839f45036146bb2e112ad5a5d9d') prepare() { cd $srcdir/${_realname}-$pkgver From 64ebcc0e21f7ef4035ca75aecf1c9df1985c46db Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Dec 2014 21:51:29 +0300 Subject: [PATCH 0062/2060] ffmpeg: Update to 2.4.4 --- mingw-w64-ffmpeg/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index a4c0ee9f9d..d8d4ef3834 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,7 +2,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.4.3 +pkgver=2.4.4 pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') @@ -40,7 +40,7 @@ depends=( ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://ffmpeg.org/releases/$_realname-$pkgver.tar.bz2) -md5sums=('8da635baff57d7ab704b1daca5a99b47') +md5sums=('7e2819c71484ffba1ba1a91dd5285643') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 03ddd65476969ce76ab8d7d8f49d8ac43358a1b4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Dec 2014 21:53:07 +0300 Subject: [PATCH 0063/2060] inkscape: Rebuild with new popper --- mingw-w64-inkscape/PKGBUILD | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index d7c443b4fb..033146e94d 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -2,10 +2,9 @@ # Contributor: Ray Donnelly _realname=inkscape - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.48.5 -pkgrel=2 +pkgrel=3 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') url="http://inkscape.sourceforge.net/" From 5965bbf10b21df12ee948f24a6e28920809ea386 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Dec 2014 21:53:36 +0300 Subject: [PATCH 0064/2060] firebird-git: Update to 3.0.0-beta2 --- mingw-w64-firebird-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD index 66e6043469..e9704c6d14 100644 --- a/mingw-w64-firebird-git/PKGBUILD +++ b/mingw-w64-firebird-git/PKGBUILD @@ -2,7 +2,7 @@ _realname='firebird' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=3.0.0.31456.5aaf93b +pkgver=3.0.0.31458.0bd86ee pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features (mingw-w64)" url="http://www.firebirdsql.org/" From 29ed2670ffe210ee56f4ef1a6cabecaa43747d27 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Dec 2014 22:53:38 +0300 Subject: [PATCH 0065/2060] wineditline: Don't link with def file. Install license. --- mingw-w64-wineditline/003-dont-link-with-def.patch | 11 +++++++++++ mingw-w64-wineditline/PKGBUILD | 13 ++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-wineditline/003-dont-link-with-def.patch diff --git a/mingw-w64-wineditline/003-dont-link-with-def.patch b/mingw-w64-wineditline/003-dont-link-with-def.patch new file mode 100644 index 0000000000..3600971a3b --- /dev/null +++ b/mingw-w64-wineditline/003-dont-link-with-def.patch @@ -0,0 +1,11 @@ +--- wineditline-2.101/src/CMakeLists.txt.orig 2014-12-01 22:42:00.102800000 +0300 ++++ wineditline-2.101/src/CMakeLists.txt 2014-12-01 22:42:09.494000000 +0300 +@@ -2,7 +2,7 @@ + include_directories("${PROJECT_BINARY_DIR}") + include(GenerateExportHeader) + add_library(edit_static STATIC editline.c fn_complete.c history.c) +-add_library(edit SHARED editline.c fn_complete.c history.c libedit.def) ++add_library(edit SHARED editline.c fn_complete.c history.c) + set_target_properties(edit PROPERTIES PREFIX "") + GENERATE_EXPORT_HEADER(edit + BASE_NAME edit diff --git a/mingw-w64-wineditline/PKGBUILD b/mingw-w64-wineditline/PKGBUILD index 902e00a2af..e1a7e1801c 100644 --- a/mingw-w64-wineditline/PKGBUILD +++ b/mingw-w64-wineditline/PKGBUILD @@ -3,7 +3,7 @@ _realname=wineditline pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.101 -pkgrel=2 +pkgrel=3 pkgdesc="port of the NetBSD Editline library (mingw-w64)" arch=('any') license=('BSD') @@ -12,15 +12,20 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") options=('staticlibs') source=("http://sourceforge.net/projects/mingweditline/files/${_realname}-${pkgver}.tar.bz2" '001-fix-installing.patch' - '002-fix-exports.patch') + '002-fix-exports.patch' + '003-dont-link-with-def.patch') md5sums=('1e9e09b38898367da4f9aa2c287ae79d' '2837bc5d5ce4e826b4d9bccf1bc978d3' - '966d8b0b0d96e6879a5c100a49322271') + '966d8b0b0d96e6879a5c100a49322271' + '6a879ef5f7f5dcbcba5e01c3f03fcaeb') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-fix-installing.patch patch -p1 -i ${srcdir}/002-fix-exports.patch + patch -p1 -i ${srcdir}/003-dont-link-with-def.patch + + rm -rf bin32 bin64 lib32 lib64 } build() { @@ -37,4 +42,6 @@ build() { package() { cd ${srcdir}/build-${MINGW_CHOST} make install + + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } From 931cd58ce798bb9f9e55bc3cfa2a5d8960b4fb3b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 2 Dec 2014 20:25:02 +0000 Subject: [PATCH 0066/2060] chromium-dev: Added (WIP) --- mingw-w64-chromium-dev/PKGBUILD | 458 ++++++++++++++++++ mingw-w64-chromium-dev/chromium-dev.default | 4 + mingw-w64-chromium-dev/chromium-dev.desktop | 113 +++++ mingw-w64-chromium-dev/chromium-dev.install | 16 + mingw-w64-chromium-dev/chromium-dev.sh | 16 + mingw-w64-chromium-dev/chromium-dev.xml | 13 + .../chromium-system-jinja-r7.patch | 35 ++ 7 files changed, 655 insertions(+) create mode 100644 mingw-w64-chromium-dev/PKGBUILD create mode 100644 mingw-w64-chromium-dev/chromium-dev.default create mode 100644 mingw-w64-chromium-dev/chromium-dev.desktop create mode 100644 mingw-w64-chromium-dev/chromium-dev.install create mode 100644 mingw-w64-chromium-dev/chromium-dev.sh create mode 100644 mingw-w64-chromium-dev/chromium-dev.xml create mode 100644 mingw-w64-chromium-dev/chromium-system-jinja-r7.patch diff --git a/mingw-w64-chromium-dev/PKGBUILD b/mingw-w64-chromium-dev/PKGBUILD new file mode 100644 index 0000000000..f587a0aa10 --- /dev/null +++ b/mingw-w64-chromium-dev/PKGBUILD @@ -0,0 +1,458 @@ +# ArchLinux: +# Maintainer: Gustavo Alvarez +# Contributor: Mikhail Vorozhtsov +# Contributor: Nagisa +# Contributor: Misc +# Contributor: Jeagoss +# MSYS2: +# Maintainer: Ray Donnelly + +_realname=chromium-dev + +######################### +## -- Build options -- ## +######################### +_use_clang=0 # Use clang compiler. Results in faster build and smaller chromium. +_use_pax=0 # If set 1, change PaX permisions in executables NOTE: only use if use PaX environment (IN TEST) + +############################################## +## -- Package and components information -- ## +############################################## +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=41.0.2224.3 +pkgrel=1 +pkgdesc='The open-source project behind Google Chrome (Dev Channel) (mingw-w64)' +arch=('i686' 'x86_64') +url="http://www.chromium.org/" +license=('BSD') +depends=("${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-icu" + "${MINGW_PACKAGE_PREFIX}-libexif" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-nss" + "${MINGW_PACKAGE_PREFIX}-snappy" + "${MINGW_PACKAGE_PREFIX}-speex" + ) +# "${MINGW_PACKAGE_PREFIX}-minizip" +# "${MINGW_PACKAGE_PREFIX}-re2" +# "${MINGW_PACKAGE_PREFIX}-speech-dispatcher" +# "${MINGW_PACKAGE_PREFIX}-ttf-font" + +makedepends=( +# 'elfutils' + 'gperf' + "${MINGW_PACKAGE_PREFIX}-ninja" + "${MINGW_PACKAGE_PREFIX}-python2-jinja" + 'subversion' + 'yasm' + 'git' + 'depot-tools-git') +# 'perl-json' +# 'python2-beautifulsoup3' +# 'python2-simplejson' +# 'python2-ply' +optdepends=('chromium-pepper-flash-dev: PPAPI Flash Player (Dev Channel)' + 'kdebase-kdialog: needed for file dialogs in KDE' + 'gnome-keyring: for storing passwords in GNOME keyring' + 'libgnome-keyring: for storing passwords in GNOME keyring' + 'kdeutils-kwalletmanager: for storing passwords in KWallet') +provides=('chromium-dev' 'chromedriver') +[ "${CARCH}" = "x86_64" ] && makedepends+=('lib32-gcc-libs' 'lib32-zlib') && warning "To build need active [multilib] repository, if not , fail build" +install=chromium-dev.install +_source="chromium-${pkgver}.tar.xz" +backup=('etc/chromium-dev/default') +source=("https://commondatastorage.googleapis.com/chromium-browser-official/${_source}" + 'chromium-dev.desktop' + 'chromium-dev.sh' + 'chromium-dev.default' + 'chromium-dev.xml' + # Patch form Gentoo + 'http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-client/chromium/files/chromium-system-jinja-r7.patch' + # Misc Patches + + # Patch from crbug (chromium bugtracker) + ) +sha1sums=("$(curl -sL "https://commondatastorage.googleapis.com/chromium-browser-official/${_source}.hashes" | grep sha1 | cut -d " " -f3)" + 'aa07e8539935d9f472c30db30a4c88549ba7cc2b' + '0b284e72169bf04316508d1709b11c38db70bdc1' + 'e90eb2ffadf9e3e8f5dc20e6cc3410b28eae814e' + '055fd99aedcb20343128854c3b00f7a731b6df20' + # Patch form Gentoo + 'c24d14029714d2295f3220a7173a5a7362f578a2' + # Misc Patches + + # Patch from crbug (chromium bugtracker) + ) +options=('!strip') +noextract=("${_source}") + +# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) +# Note: These are for Arch Linux use ONLY. For your own distribution, please +# get your own set of keys. Feel free to contact foutrelis@archlinux.org for +# more information. +_google_api_key="AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM" +_google_default_client_id="413772536636.apps.googleusercontent.com" +_google_default_client_secret="0ZChLK6AxeA3Isu96MkwqDR4" + +################################################ +## -- Don't touch anything below this line -- ## +################################################ + +[ "${CARCH}" = "i686" ] && _target_arch="ia32" && _arch="x86_32" +[ "${CARCH}" = "x86_64" ] && _target_arch="x64" && _arch="x86_64" + +# If use PaX environment, need 'paxctl' +[ "${_use_pax}" = "1" ] && makedepends+=('paxctl') + +if [ "${_use_clang}" = "1" ]; then + makedepends+=('clang') +fi + +# Are we in Gnome? +_use_gnome=0 +if [ -f /usr/lib/libgnome-keyring.so ]; then + depends+=('libgnome-keyring') + _use_gnome=1 +fi + +# Use Pulseaudio? +_use_pulseaudio=0 +if [ -x /usr/bin/pulseaudio ]; then + _use_pulseaudio=1 +fi + +prepare() { + ############################## + ## -- Get ready to build -- ## + ############################## + + # Clean environment + for i in $(find . -maxdepth 1 -type d -name 'chromium*' -o -name 'python-path'); do rm -fr ${i}; done + + # Uncompress sources + cd ${srcdir} + tar -xf "${srcdir}"/${_source} || true + # Set Python2 path + mkdir -p python-path + ln -s /usr/bin/python2 "${srcdir}/python-path/python" + export PATH="${srcdir}/python-path:$PATH" + + cd "chromium-${pkgver}" + + msg2 "Make sure use Python 2" + find . -type f -exec sed -i -r \ + -e 's|/usr/bin/python$|&2|g' \ + -e 's|(/usr/bin/python2)\.4$|\1|g' \ + {} + + + msg2 "Fix to save configuration in ~/.config/chromium-dev" + sed -e "s|'filename': 'chromium-browser'|'filename': 'chromium-dev'|" \ + -e "s|'confdir': 'chromium'|'confdir': 'chromium-dev'|" \ + -i chrome/chrome_exe.gypi + sed -e 's|config_dir.Append("chromium")|config_dir.Append("chromium-dev")|' \ + -e 's|config_dir.Append("chrome-frame")|config_dir.Append("chrome-frame-dev")|' \ + -i chrome/common/chrome_paths_linux.cc + + msg2 "Patch Sources" + # Patch sources from Gentoo + patch -p0 -i ../chromium-system-jinja-r7.patch + + # Patch from crbug (chromium bugtracker) + + # Misc Patches: + + # Make it possible to remove third_party/adobe + echo > "${srcdir}/flapper_version.h" + + msg2 "Remove unnecessary components to save space" + # Remove most bundled libraries. Some are still needed. + build/linux/unbundle/remove_bundled_libraries.py \ + 'base/third_party/dmg_fp' \ + 'base/third_party/dynamic_annotations' \ + 'base/third_party/icu' \ + 'base/third_party/nspr' \ + 'base/third_party/superfasthash' \ + 'base/third_party/symbolize' \ + 'base/third_party/valgrind' \ + 'base/third_party/xdg_mime' \ + 'base/third_party/xdg_user_dirs' \ + 'breakpad/src/third_party/curl' \ + 'chrome/third_party/mozilla_security_manager' \ + 'courgette/third_party' \ + 'crypto/third_party/nss' \ + 'native_client/src/third_party/dlmalloc' \ + 'net/third_party/mozilla_security_manager' \ + 'net/third_party/nss' \ + 'third_party/WebKit' \ + 'third_party/angle' \ + 'third_party/angle/src/third_party/compiler' \ + 'third_party/brotli' \ + 'third_party/cacheinvalidation' \ + 'third_party/cld_2' \ + 'third_party/cros_system_api' \ + 'third_party/cython/python_flags.py' \ + 'third_party/dom_distiller_js' \ + 'third_party/dom_distiller_js/package/proto_gen/third_party/dom_distiller_js' \ + 'third_party/ffmpeg' \ + 'third_party/fips181' \ + 'third_party/flot' \ + 'third_party/google_input_tools' \ + 'third_party/google_input_tools/third_party/closure_library' \ + 'third_party/google_input_tools/third_party/closure_library/third_party/closure' \ + 'third_party/hunspell' \ + 'third_party/iccjpeg' \ + 'third_party/jsoncpp' \ + 'third_party/jstemplate' \ + 'third_party/khronos' \ + 'third_party/leveldatabase' \ + 'third_party/libaddressinput' \ + 'third_party/libevent' \ + 'third_party/libjingle' \ + 'third_party/libphonenumber' \ + 'third_party/libsrtp' \ + 'third_party/libusb' \ + 'third_party/libvpx' \ + 'third_party/libvpx/source/libvpx/third_party/x86inc' \ + 'third_party/libwebm' \ + 'third_party/libxml/chromium' \ + 'third_party/libXNVCtrl' \ + 'third_party/libyuv' \ + 'third_party/lss' \ + 'third_party/lzma_sdk' \ + 'third_party/mesa' \ + 'third_party/modp_b64' \ + 'third_party/mt19937ar' \ + 'third_party/npapi' \ + 'third_party/openmax_dl' \ + 'third_party/opus' \ + 'third_party/ots' \ + 'third_party/protobuf' \ + 'third_party/pdfium' \ + 'third_party/pdfium/third_party/logging.h' \ + 'third_party/pdfium/third_party/macros.h' \ + 'third_party/pdfium/third_party/numerics' \ + 'third_party/pdfium/third_party/template_util.h' \ + 'third_party/polymer' \ + 'third_party/qcms' \ + 'third_party/readability' \ + 'third_party/sfntly' \ + 'third_party/skia' \ + 'third_party/smhasher' \ + 'third_party/sqlite' \ + 'third_party/tcmalloc' \ + 'third_party/tlslite' \ + 'third_party/trace-viewer' \ + 'third_party/trace-viewer/third_party/d3' \ + 'third_party/trace-viewer/third_party/components/polymer' \ + 'third_party/trace-viewer/third_party/gl-matrix' \ + 'third_party/trace-viewer/third_party/jszip' \ + 'third_party/trace-viewer/third_party/tvcm' \ + 'third_party/trace-viewer/third_party/tvcm/third_party/beautifulsoup/polymer_soup.py' \ + 'third_party/undoview' \ + 'third_party/usrsctp' \ + 'third_party/webdriver' \ + 'third_party/webrtc' \ + 'third_party/widevine' \ + 'third_party/x86inc' \ + 'third_party/zlib/google' \ + 'url/third_party/mozilla' \ + 'v8/src/third_party/fdlibm' \ + 'v8/src/third_party/kernel' \ + 'v8/src/third_party/valgrind' \ + --do-remove + + + + msg2 "Setup NaCl/PNaCl SDK: Download and install NaCl/PNaCl toolchains" + build/download_nacl_toolchains.py --packages nacl_x86_newlib,pnacl_newlib,pnacl_translator + +} + +build() { + cd "chromium-${pkgver}" + + ####################### + ## -- Let's build -- ## + ####################### + msg2 "Building Chromium..." + + if [ "${_use_clang}" = "0" ]; then + # Silence "typedef 'x' locally defined but not used" warnings + CFLAGS+=' -Wno-unused-local-typedefs' + elif [ "${_use_clang}" = "1" ]; then + sed "s|'-Wno-unused-local-typedef'|#'-Wno-unused-local-typedef'|g" -i build/common.gypi + fi + + # NOTES: + # -Denable_sql_database=0 | http://crbug.com/22208 + # -Dlogging_like_official_build=1 | Save space by removing DLOG and DCHECK messages (about 6% reduction). + # -Dlinux_use_gold_flags=0 | Never use bundled gold binary. Disable gold linker flags for now. + # -Dusb_ids_path=/usr/share/hwdata/usb.ids | Use the file at run time instead of effectively compiling it in. + + local _flags=( + -Ddisable_glibc=1 + -Ddisable_fatal_linker_warnings=1 + -Dffmpeg_branding=Chrome + -Dflapper_version_h_file="${srcdir}/flapper_version.h" + -Dgoogle_api_key="${_google_api_key}" + -Dgoogle_default_client_id="${_google_default_client_id}" + -Dgoogle_default_client_secret="${_google_default_client_secret}" + -Dicu_use_data_file_flag=0 + -Dlibspeechd_h_prefix=speech-dispatcher/ + -Dlinux_link_gnome_keyring="${_use_gnome}" + -Dlinux_link_gsettings="${_use_gnome}" + -Dlinux_link_libpci=1 + -Dlinux_link_libspeechd=1 + -Dlinux_link_pulseaudio="${_use_pulseaudio}" + -Dlinux_strip_binary=1 + -Dlinux_use_bundled_binutils=0 + -Dlinux_use_bundled_gold=0 + -Dlinux_use_gold_flags=0 + -Dlogging_like_official_build=1 + -Dno_strict_aliasing=1 + -Dproprietary_codecs=1 + -Drelease_extra_cflags="$CFLAGS" + -Dremove_webcore_debug_symbols=1 + -Dtarget_arch="${_target_arch}" + -Dusb_ids_path=/usr/share/hwdata/usb.ids + -Duse_gconf=0 + -Duse_gnome_keyring="${_use_gnome}" + -Duse_pulseaudio="${_use_pulseaudio}" + -Dwerror= + ) + + if [ "${_use_clang}" = "1" ]; then + # -Dclang=1 | use clang instead of GCC + # -Dclang_use_chrome_plugins=0 | fail if use external clang. only work if use bundled clang (because include own chromium plugin). disable this + _flags+=( + -Dclang=1 + -Dclang_use_chrome_plugins=0 + ) + export CC="clang" + export CXX="clang++" + elif [ "${_use_clang}" = "0" ]; then + _flags+=( + -Dclang=0 + ) + fi + + # TODO + # -Duse_system_hunspell=1 | upstream changes needed + # -Duse_system_jsoncpp=1 | need newer jsoncpp (0.6.0-rc2) + # -Duse_system_libsrtp=1 | https://bugs.gentoo.org/show_bug.cgi?id=459932 + # -Duse_system_libvpx=1 | http://crbug.com/347823 + # -Duse_system_libusb=1 | http://crbug.com/266149 + # -Duse_system_opus=1 | https://code.google.com/p/webrtc/issues/detail?id=3077 + # -Duse_system_protobuf=1 | need update to 2.6.0(?) + # -Duse_system_sqlite=1 | http://crbug.com/22208 + # -Duse_system_ssl=1 | http://crbug.com/58087 + # -Duse_system_openssl=1 | migrate to boringssl + + local _use_system=( + -Duse_system_expat=1 + -Duse_system_ffmpeg=0 + -Duse_system_flac=1 + -Duse_system_fontconfig=1 + -Duse_system_harfbuzz=1 + -Duse_system_icu=1 + -Duse_system_jsoncpp=0 + -Duse_system_libevent=0 + -Duse_system_libexif=1 + -Duse_system_libjpeg=1 + -Duse_system_libpng=1 + -Duse_system_libusb=0 + -Duse_system_libvpx=0 + -Duse_system_libwebp=1 + -Duse_system_libxml=1 + -Duse_system_libxnvctrl=0 + -Duse_system_libxslt=1 + -Duse_system_minizip=1 + -Duse_system_nspr=1 + -Duse_system_openssl=0 + -Duse_system_opus=0 + -Duse_system_protobuf=0 + -Duse_system_re2=1 + -Duse_system_snappy=1 + -Duse_system_speex=1 + -Duse_system_sqlite=0 + -Duse_system_ssl=0 + -Duse_system_v8=0 + -Duse_system_yasm=1 + -Duse_system_xdg_utils=1 + -Duse_system_zlib=1 + ) + + # Re-configure bundled ffmpeg + msg2 "Configuring bundled ffmpeg" + pushd third_party/ffmpeg > /dev/null + local _build_ffmpeg_args="" + [ "${CARCH}" = "i686" ] && _build_ffmpeg_args=" --disable-asm" + chromium/scripts/build_ffmpeg.py linux ${_target_arch} --branding=Chrome -- ${_build_ffmpeg_args} + chromium/scripts/copy_config.sh + chromium/scripts/generate_gyp.py + popd > /dev/null + + msg2 "1337's g0 7h3 p4r7y!" + + # CFLAGS are passed through -Drelease_extra_cflags= + export -n CFLAGS CXXFLAGS + + build/linux/unbundle/replace_gyp_files.py "${_use_system[@]}" + build/gyp_chromium --depth=. "${_flags[@]}" "${_use_system[@]}" + mkdir -p out/Release + + if [ "${_use_pax}" = "1" ]; then + # Build mksnapshot and pax-mark it. + ${_CC} ninja -C out/Release -v "mksnapshot" + paxctl -cm "out/Release/mksnapshot" + fi + + ${_CC} ninja -C out/Release -v chrome chrome_sandbox chromedriver + + if [ "${_use_pax}" = "1" ]; then + # Pax-mark again + paxctl -cm out/Release/chrome + fi +} + +package() { + install -Dm644 chromium-dev.default "${pkgdir}/etc/chromium-dev/default" + install -Dm755 chromium-dev.sh "${pkgdir}/usr/bin/chromium-dev" + install -Dm644 chromium-dev.desktop "${pkgdir}/usr/share/applications/chromium-dev.desktop" + install -Dm644 "chromium-${pkgver}/LICENSE" "${pkgdir}/usr/share/licenses/chromium-dev/LICENSE" + + cd "chromium-${pkgver}/out/Release" + install -Dm755 chrome "${pkgdir}/usr/lib/chromium-dev/chromium-dev" + install -Dm4755 -o root -g root chrome_sandbox "${pkgdir}/usr/lib/chromium-dev/chrome-sandbox" + install -Dm755 chromedriver "${pkgdir}/usr/lib/chromium-dev/chromedriver" + ln -s /usr/lib/chromium-dev/chromedriver "${pkgdir}/usr/bin/chromedriver-dev" + install -Dm644 chrome_100_percent.pak "${pkgdir}/usr/lib/chromium-dev/chrome_100_percent.pak" + install -Dm644 content_resources.pak "${pkgdir}/usr/lib/chromium-dev/content_resources.pak" + install -Dm644 keyboard_resources.pak "${pkgdir}/usr/lib/chromium-dev/keyboard_resources.pak" + install -Dm644 resources.pak "${pkgdir}/usr/lib/chromium-dev/resources.pak" + install -Dm755 libffmpegsumo.so "${pkgdir}/usr/lib/chromium-dev/libffmpegsumo.so" + install -Dm755 libpdf.so "${pkgdir}/usr/lib/chromium-dev/libpdf.so" + find locales -type f -name "*.pak" -exec install -Dm644 '{}' "${pkgdir}/usr/lib/chromium-dev/{}" \; + install -Dm644 chrome.1 "${pkgdir}/usr/share/man/man1/chromium-dev.1" + + for _size in 16 22 24 32 48 128 256; do + case "${_size}" in + 16|32) _branding="${srcdir}/chromium-${pkgver}/chrome/app/theme/default_100_percent/chromium" ;; + *) _branding="${srcdir}/chromium-${pkgver}/chrome/app/theme/chromium" ;; + esac + install -Dm644 "${_branding}/product_logo_${_size}.png" "${pkgdir}/usr/share/icons/hicolor/${_size}x${_size}/apps/chromium-dev.png" + done + + install -Dm755 nacl_helper "${pkgdir}/usr/lib/chromium-dev/nacl_helper" + install -Dm755 nacl_helper_bootstrap "${pkgdir}/usr/lib/chromium-dev/nacl_helper_bootstrap" + install -Dm755 nacl_helper_nonsfi "${pkgdir}/usr/lib/chromium-dev/nacl_helper_nonsfi" + install -Dm755 "nacl_irt_${_arch}.nexe" "${pkgdir}/usr/lib/chromium-dev/nacl_irt_${_arch}.nexe" + + [ "${_use_gnome}" = "1" ] && install -Dm644 "${srcdir}/chromium-dev.xml" "${pkgdir}/usr/share/gnome-control-center/default-apps/chromium-dev.xml" + + # Manually strip binaries so that 'nacl_irt_*.nexe' is left intact + strip $STRIP_BINARIES "${pkgdir}/usr/lib/chromium-dev/"{chromium-dev,chrome-sandbox,chromedriver,nacl_helper{,_bootstrap,_nonsfi}} + strip $STRIP_SHARED "${pkgdir}/usr/lib/chromium-dev/"lib{ffmpegsumo,pdf}.so +} diff --git a/mingw-w64-chromium-dev/chromium-dev.default b/mingw-w64-chromium-dev/chromium-dev.default new file mode 100644 index 0000000000..beec0880e1 --- /dev/null +++ b/mingw-w64-chromium-dev/chromium-dev.default @@ -0,0 +1,4 @@ +# Default settings for chromium-dev. This file is sourced by /usr/bin/chromium-dev + +# Options to pass to chromium-dev +CHROMIUM_FLAGS="" diff --git a/mingw-w64-chromium-dev/chromium-dev.desktop b/mingw-w64-chromium-dev/chromium-dev.desktop new file mode 100644 index 0000000000..d9aa6301cf --- /dev/null +++ b/mingw-w64-chromium-dev/chromium-dev.desktop @@ -0,0 +1,113 @@ +[Desktop Entry] +Version=1.0 +Name=Chromium Dev +# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. +# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. +GenericName=Web Browser +GenericName[ar]=متصفح الشبكة +GenericName[bg]=Уеб браузър +GenericName[ca]=Navegador web +GenericName[cs]=WWW prohlížeč +GenericName[da]=Browser +GenericName[de]=Web-Browser +GenericName[el]=Περιηγητής ιστού +GenericName[en_GB]=Web Browser +GenericName[es]=Navegador web +GenericName[et]=Veebibrauser +GenericName[fi]=WWW-selain +GenericName[fr]=Navigateur Web +GenericName[gu]=વેબ બ્રાઉઝર +GenericName[he]=דפדפן אינטרנט +GenericName[hi]=वेब ब्राउज़र +GenericName[hu]=Webböngésző +GenericName[it]=Browser Web +GenericName[ja]=ウェブブラウザ +GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ +GenericName[ko]=웹 브라우저 +GenericName[lt]=Žiniatinklio naršyklė +GenericName[lv]=Tīmekļa pārlūks +GenericName[ml]=വെബ് ബ്രൌസര്‍ +GenericName[mr]=वेब ब्राऊजर +GenericName[nb]=Nettleser +GenericName[nl]=Webbrowser +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador da Internet +GenericName[ro]=Navigator de Internet +GenericName[ru]=Веб-браузер +GenericName[sl]=Spletni brskalnik +GenericName[sv]=Webbläsare +GenericName[ta]=இணைய உலாவி +GenericName[th]=เว็บเบราว์เซอร์ +GenericName[tr]=Web Tarayıcı +GenericName[uk]=Навігатор Тенет +GenericName[zh_CN]=网页浏览器 +GenericName[zh_HK]=網頁瀏覽器 +GenericName[zh_TW]=網頁瀏覽器 +# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[fil]=Web Browser +GenericName[hr]=Web preglednik +GenericName[id]=Browser Web +GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର +GenericName[sk]=WWW prehliadač +GenericName[sr]=Интернет прегледник +GenericName[te]=మహాతల అన్వేషి +GenericName[vi]=Bộ duyệt Web +# Gnome and KDE 3 uses Comment. +Comment=Access the Internet +Comment[ar]=الدخول إلى الإنترنت +Comment[bg]=Достъп до интернет +Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন +Comment[ca]=Accedeix a Internet +Comment[cs]=Přístup k internetu +Comment[da]=Få adgang til internettet +Comment[de]=Internetzugriff +Comment[el]=Πρόσβαση στο Διαδίκτυο +Comment[en_GB]=Access the Internet +Comment[es]=Accede a Internet. +Comment[et]=Pääs Internetti +Comment[fi]=Käytä internetiä +Comment[fil]=I-access ang Internet +Comment[fr]=Accéder à Internet +Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો +Comment[he]=גישה אל האינטרנט +Comment[hi]=इंटरनेट तक पहुंच स्थापित करें +Comment[hr]=Pristup Internetu +Comment[hu]=Internetelérés +Comment[id]=Akses Internet +Comment[it]=Accesso a Internet +Comment[ja]=インターネットにアクセス +Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ +Comment[ko]=인터넷 연결 +Comment[lt]=Interneto prieiga +Comment[lv]=Piekļūt internetam +Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക +Comment[mr]=इंटरनेटमध्ये प्रवेश करा +Comment[nb]=Gå til Internett +Comment[nl]=Verbinding maken met internet +Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ +Comment[pl]=Skorzystaj z internetu +Comment[pt]=Aceder à Internet +Comment[pt_BR]=Acessar a internet +Comment[ro]=Accesaţi Internetul +Comment[ru]=Доступ в Интернет +Comment[sk]=Prístup do siete Internet +Comment[sl]=Dostop do interneta +Comment[sr]=Приступите Интернету +Comment[sv]=Gå ut på Internet +Comment[ta]=இணையத்தை அணுகுதல் +Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి +Comment[th]=เข้าถึงอินเทอร์เน็ต +Comment[tr]=İnternet'e erişin +Comment[uk]=Доступ до Інтернету +Comment[vi]=Truy cập Internet +Comment[zh_CN]=访问互联网 +Comment[zh_HK]=連線到網際網路 +Comment[zh_TW]=連線到網際網路 +Exec=chromium-dev %U +Terminal=false +Icon=chromium-dev +Type=Application +Categories=Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; diff --git a/mingw-w64-chromium-dev/chromium-dev.install b/mingw-w64-chromium-dev/chromium-dev.install new file mode 100644 index 0000000000..b381a06deb --- /dev/null +++ b/mingw-w64-chromium-dev/chromium-dev.install @@ -0,0 +1,16 @@ +update_resources() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_install() { + update_resources +} + +post_upgrade() { + update_resources +} + +post_remove() { + update_resources +} diff --git a/mingw-w64-chromium-dev/chromium-dev.sh b/mingw-w64-chromium-dev/chromium-dev.sh new file mode 100644 index 0000000000..8fd4fe21c5 --- /dev/null +++ b/mingw-w64-chromium-dev/chromium-dev.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# Allow users to override command-line options +# Based on Gentoo's chromium package (and by extension, Debian's) +if [[ -f /etc/chromium-dev/default ]]; then + . /etc/chromium-dev/default +fi + +# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system +# default CHROMIUM_FLAGS (from /etc/chromium-dev/default) +CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-$CHROMIUM_FLAGS} + +export CHROME_WRAPPER=$(readlink -f "$0") +export CHROME_DESKTOP="chromium-dev.desktop" + +exec /usr/lib/chromium-dev/chromium-dev ${CHROMIUM_FLAGS} "$@" diff --git a/mingw-w64-chromium-dev/chromium-dev.xml b/mingw-w64-chromium-dev/chromium-dev.xml new file mode 100644 index 0000000000..398107504a --- /dev/null +++ b/mingw-w64-chromium-dev/chromium-dev.xml @@ -0,0 +1,13 @@ + + + + + + Chromium-dev + chromium-dev + chromium-dev %s + chromium-dev + false + + + diff --git a/mingw-w64-chromium-dev/chromium-system-jinja-r7.patch b/mingw-w64-chromium-dev/chromium-system-jinja-r7.patch new file mode 100644 index 0000000000..fe28e12c33 --- /dev/null +++ b/mingw-w64-chromium-dev/chromium-system-jinja-r7.patch @@ -0,0 +1,35 @@ +--- third_party/WebKit/Source/bindings/scripts/scripts.gyp.orig 2014-08-19 09:55:10.330972228 +0000 ++++ third_party/WebKit/Source/bindings/scripts/scripts.gyp 2014-08-19 09:55:26.387286232 +0000 +@@ -54,7 +54,6 @@ + 'actions': [{ + 'action_name': 'cache_jinja_templates', + 'inputs': [ +- '<@(jinja_module_files)', + 'code_generator_v8.py', + '<@(code_generator_template_files)', + ], +--- third_party/WebKit/Source/build/scripts/scripts.gypi.orig 2014-08-19 10:00:00.216521733 +0000 ++++ third_party/WebKit/Source/build/scripts/scripts.gypi 2014-08-19 10:00:11.464735099 +0000 +@@ -2,10 +2,6 @@ + { + 'variables': { + 'scripts_for_in_files': [ +- # jinja2/__init__.py contains version string, so sufficient as +- # dependency for whole jinja2 package +- '<(DEPTH)/third_party/jinja2/__init__.py', +- '<(DEPTH)/third_party/markupsafe/__init__.py', # jinja2 dep + 'hasher.py', + 'in_file.py', + 'in_generator.py', +--- third_party/WebKit/Source/bindings/scripts/scripts.gypi.orig 2014-08-19 10:53:02.824618979 +0000 ++++ third_party/WebKit/Source/bindings/scripts/scripts.gypi 2014-08-19 10:53:20.784957370 +0000 +@@ -12,9 +12,6 @@ + '<(DEPTH)/third_party/markupsafe/__init__.py', # jinja2 dep + ], + 'idl_lexer_parser_files': [ +- # PLY (Python Lex-Yacc) +- '<(DEPTH)/third_party/ply/lex.py', +- '<(DEPTH)/third_party/ply/yacc.py', + # Web IDL lexer/parser (base parser) + '<(DEPTH)/tools/idl_parser/idl_lexer.py', + '<(DEPTH)/tools/idl_parser/idl_node.py', From 9c654fc9926be08f085943ee8db1256cc7a3cae8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 3 Dec 2014 14:43:03 +0300 Subject: [PATCH 0067/2060] blender-git: Update to latest. Use unix-like files layout. --- mingw-w64-blender-git/PKGBUILD | 56 ++++----- mingw-w64-blender-git/fix-define-syntax.patch | 11 ++ .../fix-mingw-w64-definitions.patch | 55 ++++----- .../mingw-use-X11-like-path-layout.patch | 106 ++++++++++++++++++ mingw-w64-blender-git/mingw-w64-cmake.patch | 17 +-- 5 files changed, 179 insertions(+), 66 deletions(-) create mode 100644 mingw-w64-blender-git/fix-define-syntax.patch create mode 100644 mingw-w64-blender-git/mingw-use-X11-like-path-layout.patch diff --git a/mingw-w64-blender-git/PKGBUILD b/mingw-w64-blender-git/PKGBUILD index e734982ef3..f1b25367e3 100644 --- a/mingw-w64-blender-git/PKGBUILD +++ b/mingw-w64-blender-git/PKGBUILD @@ -6,7 +6,8 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") blender_version=2.71 -pkgver=r55792.1e948b2 +pkgver=r56781.47ebf96 +_pyver=3.4 pkgrel=1 pkgdesc="A fully integrated 3D graphics creation suite (mingw-w64)" arch=('any') @@ -41,15 +42,19 @@ source=("${_realname}"::"git://git.blender.org/blender.git" "mingw-w64-cmake.patch" "fix-mingw-w64-definitions.patch" "mingw-dont-install-3rdparty.patch" - "fix-finding-glew.patch") + "fix-finding-glew.patch" + "mingw-use-X11-like-path-layout.patch" + "fix-define-syntax.patch") md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - '7e051acedaf998ac12406c4b1fc70104' - '696a364118b5b9adbde81f2d871febfa' + '803bad7d8a6bd148f88a1b66d36be31f' + '39e931d7652c9c95982330d95bfdd2e3' '1969914e11d0a4f74dbfeddad742c9da' - 'b11e3fe76c4433abb53c12e723dfbe4f') + 'b11e3fe76c4433abb53c12e723dfbe4f' + 'bdac7b47c5886bbcede99516a67de0c2' + '9c5a4e230d1c9081096d53d206cc03b4') pkgver() { cd "$srcdir/$_realname" @@ -62,6 +67,8 @@ prepare() { patch -p1 -i ${srcdir}/fix-mingw-w64-definitions.patch patch -p1 -i ${srcdir}/mingw-dont-install-3rdparty.patch patch -p1 -i ${srcdir}/fix-finding-glew.patch + patch -p1 -i ${srcdir}/fix-define-syntax.patch + patch -p1 -i ${srcdir}/mingw-use-X11-like-path-layout.patch cp -rf $srcdir/translations/* $srcdir/$_realname/release/datafiles/locale/ cp -rf $srcdir/addons/* $srcdir/$_realname/release/scripts/addons/ @@ -69,23 +76,25 @@ prepare() { } build() { - - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} [[ $CARCH == i686 ]] && ENABLESSE2="-DSUPPORT_SSE2_BUILD=OFF" [[ $CARCH == i686 ]] && BUILDCUDA="OFF" || BUILDCUDA="ON" #[[ $CARCH == i686 ]] && PMARCH="i686" || PMARCH="x86-64" - #CFLAGS="-O2 -pipe -march=${PMARCH} -mtune=generic -D__USE_MINGW_ANSI_STDIO=1" - #CXXFLAGS="$CFLAGS" + + declare -a _btype + if check_option "debug" "y"; then + _btype=Debug + else + _btype=Release + fi + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DMINGW_LIBS=${PREFIX_DEPS} \ - -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DMINGW_LIBS=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=${_btype} \ -DWITH_SYSTEM_GLEW=ON \ -DWITH_SYSTEM_OPENJPEG=ON \ -DWITH_INSTALL_PORTABLE=OFF \ @@ -101,31 +110,26 @@ build() { -DWITH_CYCLES_OSL=ON \ -DWITH_FFTW3=ON \ -DWITH_MOD_OCEANSIM=ON \ - -DPYTHON_VERSION=3.4 \ - -DPYTHON_LIBPATH=${PREFIX_DEPS}/lib \ - -DPYTHON_LIBRARY=python3.4m \ - -DPYTHON_INCLUDE_DIRS=${PREFIX_DEPS}/include/python3.4m \ + -DPYTHON_VERSION=${_pyver} \ + -DPYTHON_LIBPATH=${MINGW_PREFIX}/lib \ + -DPYTHON_LIBRARY=python${_pyver}m \ + -DPYTHON_INCLUDE_DIRS=${MINGW_PREFIX}/include/python${_pyver}m \ -DWITH_PYTHON_INSTALL=OFF \ -DWITH_PYTHON_INSTALL_NUMPY=OFF \ - -DPYTHON_NUMPY_PATH=${PREFIX_DEPS}/lib/python3.4/site-packages \ - -DCYCLES_OSL=${PREFIX_DEPS} \ + -DPYTHON_NUMPY_PATH=${MINGW_PREFIX}/lib/python${_pyver}/site-packages \ + -DCYCLES_OSL=${MINGW_PREFIX} \ -DWITH_IMAGE_REDCODE=ON \ -DWITH_OPENMP=ON \ -DWITH_LLVM=ON \ -DLLVM_STATIC=ON \ ../${_realname} - # Remove the openjpeg line once blender accepts my patch - make # -j1 VERBOSE=1 + make } package() { cd "$srcdir/build-${MINGW_CHOST}" make install - mkdir -p ${pkgdir}${MINGW_PREFIX}/lib - cp -r bin ${pkgdir}${MINGW_PREFIX}/ - rm ${pkgdir}${MINGW_PREFIX}/bin/msgfmt.exe - mv ${pkgdir}${MINGW_PREFIX}/bin/*.a ${pkgdir}${MINGW_PREFIX}/lib/ ${MINGW_PREFIX}/bin/python3 -m compileall "${pkgdir}${MINGW_PREFIX}/bin/$blender_version" ${MINGW_PREFIX}/bin/python3 -m compileall \ diff --git a/mingw-w64-blender-git/fix-define-syntax.patch b/mingw-w64-blender-git/fix-define-syntax.patch new file mode 100644 index 0000000000..ba0e9e068e --- /dev/null +++ b/mingw-w64-blender-git/fix-define-syntax.patch @@ -0,0 +1,11 @@ +--- blender-2.72/extern/clew/include/clew.h.orig 2014-09-24 19:29:54.000000000 +0400 ++++ blender-2.72/extern/clew/include/clew.h 2014-10-06 13:41:38.711800000 +0400 +@@ -493,7 +493,7 @@ + /* Define alignment keys */ + #if defined( __GNUC__ ) + #define CL_ALIGNED(_x) __attribute__ ((aligned(_x))) +-#elif defined( _WIN32) && (_MSC_VER) ++#elif defined( _WIN32) && defined(_MSC_VER) + /* Alignment keys neutered on windows because MSVC can't swallow function arguments with alignment requirements */ + /* http://msdn.microsoft.com/en-us/library/373ak2y1%28VS.71%29.aspx */ + /* #include */ diff --git a/mingw-w64-blender-git/fix-mingw-w64-definitions.patch b/mingw-w64-blender-git/fix-mingw-w64-definitions.patch index a367ee1bb5..152aeb2ef2 100644 --- a/mingw-w64-blender-git/fix-mingw-w64-definitions.patch +++ b/mingw-w64-blender-git/fix-mingw-w64-definitions.patch @@ -158,42 +158,32 @@ diff -Naur blender/intern/ghost/intern/GHOST_TaskbarWin32.h blender-pp/intern/gh diff -Naur blender/intern/ghost/intern/GHOST_WindowWin32.cpp blender-pp/intern/ghost/intern/GHOST_WindowWin32.cpp --- blender/intern/ghost/intern/GHOST_WindowWin32.cpp 2014-01-14 08:17:57.783400000 +0400 +++ blender-pp/intern/ghost/intern/GHOST_WindowWin32.cpp 2014-01-14 07:08:38.456800000 +0400 -@@ -29,6 +29,11 @@ - * \ingroup GHOST +@@ -29,6 +29,12 @@ */ -+// Need glew for some defines -+#include -+#include -+#include + #define _USE_MATH_DEFINES + - #include ++#if defined(WITH_GL_EGL) ++# include "GHOST_ContextEGL.h" ++#else ++# include "GHOST_ContextWGL.h" ++#endif + #include "GHOST_WindowWin32.h" #include "GHOST_SystemWin32.h" -@@ -36,11 +41,6 @@ +@@ -36,12 +41,6 @@ + #include "GHOST_ContextNone.h" #include "utfconv.h" #include "utf_winfunc.h" - --// Need glew for some defines --#include --#include --#include - - // MSVC6 still doesn't define M_PI - #ifndef M_PI - # define M_PI 3.1415926536 -diff -Naur blender/intern/ghost/intern/GHOST_WindowWin32.h blender-pp/intern/ghost/intern/GHOST_WindowWin32.h ---- blender/intern/ghost/intern/GHOST_WindowWin32.h 2014-01-14 08:17:57.783400000 +0400 -+++ blender-pp/intern/ghost/intern/GHOST_WindowWin32.h 2014-01-14 07:08:38.456800000 +0400 -@@ -40,7 +40,7 @@ - #include "GHOST_Window.h" - #include "GHOST_TaskbarWin32.h" +-#if defined(WITH_GL_EGL) +-# include "GHOST_ContextEGL.h" +-#else +-# include "GHOST_ContextWGL.h" +-#endif --#ifndef __MINGW64__ -+#ifndef __MINGW64_VERSION_MAJOR - #define _WIN32_WINNT 0x501 // require Windows XP or newer - #endif - #define WIN32_LEAN_AND_MEAN + + #include diff -Naur blender/source/blender/blenlib/BLI_winstuff.h blender-pp/source/blender/blenlib/BLI_winstuff.h --- blender/source/blender/blenlib/BLI_winstuff.h 2014-01-14 08:18:15.661000000 +0400 +++ blender-pp/source/blender/blenlib/BLI_winstuff.h 2014-01-14 07:08:38.456800000 +0400 @@ -220,3 +210,14 @@ diff -Naur blender/source/blender/blenlib/BLI_winstuff.h blender-pp/source/blend /* python uses HAVE_SSIZE_T */ # ifndef HAVE_SSIZE_T # define HAVE_SSIZE_T 1 +diff -Naur blender/source/blender/blenlib/intern/rand.c blender-pp/source/blender/blenlib/intern/rand.c +--- blender/source/blender/blenlib/intern/rand.c 2014-01-14 08:18:15.661000000 +0400 ++++ blender-pp/source/blender/blenlib/intern/rand.c 2014-01-14 07:08:38.456800000 +0400 +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + + #include "MEM_guardedalloc.h" + diff --git a/mingw-w64-blender-git/mingw-use-X11-like-path-layout.patch b/mingw-w64-blender-git/mingw-use-X11-like-path-layout.patch new file mode 100644 index 0000000000..6d354539d9 --- /dev/null +++ b/mingw-w64-blender-git/mingw-use-X11-like-path-layout.patch @@ -0,0 +1,106 @@ +diff -Naur blender-2.72-orig/intern/ghost/intern/GHOST_SystemPathsWin32.cpp blender-2.72/intern/ghost/intern/GHOST_SystemPathsWin32.cpp +--- blender-2.72-orig/intern/ghost/intern/GHOST_SystemPathsWin32.cpp 2014-10-08 00:07:23.583905600 +0100 ++++ blender-2.72/intern/ghost/intern/GHOST_SystemPathsWin32.cpp 2014-10-08 00:08:46.678658400 +0100 +@@ -69,6 +69,44 @@ + { + } + ++#if defined(__MINGW32__) ++ ++const GHOST_TUns8 *GHOST_SystemPathsWin32::getSystemDir(int, const char *versionstr) const ++{ ++ static char knownpath[MAX_PATH * 3 + 128] = {0}; ++ ++ char temppath[MAX_PATH + 1]; ++ char temppath2[MAX_PATH + 1]; ++ const GHOST_TUns8 *binary_dir = getBinaryDir(); ++ strcpy(temppath2, reinterpret_cast(binary_dir)); ++ char* lastslash = strrchr(temppath2, '\\'); ++ if (lastslash != NULL) { ++ *lastslash = '\0'; ++ } ++ snprintf(temppath, sizeof(temppath), "%s\\..\\share\\blender\\%s", temppath2, versionstr); ++ temppath[MAX_PATH] = '\0'; ++ GetFullPathNameA(temppath, sizeof(knownpath), knownpath, NULL); ++ return (GHOST_TUns8*)knownpath; ++} ++ ++const GHOST_TUns8 *GHOST_SystemPathsWin32::getUserDir(int, const char *versionstr) const ++{ ++ static char knownpath[MAX_PATH * 3 + 128] = {0}; ++ ++ char temppath[MAX_PATH + 1]; ++ char temppath2[MAX_PATH + 1]; ++ const GHOST_TUns8 *binary_dir = getBinaryDir(); ++ strcpy(temppath2, reinterpret_cast(binary_dir)); ++ char* lastslash = strrchr(temppath2, '\\'); ++ if (lastslash != NULL) { ++ *lastslash = '\0'; ++ } ++ snprintf(temppath, sizeof(temppath), "%s\\..\\..\\home\\%s\\.blender\\%s", temppath2, getenv("USERNAME") ?: "unknown", versionstr); ++ temppath[MAX_PATH] = '\0'; ++ GetFullPathNameA(temppath, sizeof(knownpath), knownpath, NULL); ++ return (GHOST_TUns8*)knownpath; ++} ++#else + const GHOST_TUns8 *GHOST_SystemPathsWin32::getSystemDir(int, const char *versionstr) const + { + static char knownpath[MAX_PATH * 3 + 128] = {0}; /* 1 utf-16 might translante into 3 utf-8. 2 utf-16 translates into 4 utf-8*/ +@@ -105,6 +143,8 @@ + return NULL; + } + ++#endif ++ + const GHOST_TUns8 *GHOST_SystemPathsWin32::getBinaryDir() const + { + static char fullname[MAX_PATH * 3] = {0}; +diff -Naur blender-2.72-orig/source/creator/CMakeLists.txt blender-2.72/source/creator/CMakeLists.txt +--- blender-2.72-orig/source/creator/CMakeLists.txt 2014-09-24 19:29:55.000000000 +0400 ++++ blender-2.72/source/creator/CMakeLists.txt 2014-10-07 09:16:00.095600000 +0400 +@@ -256,7 +256,7 @@ + # ----------------------------------------------------------------------------- + # Platform Specific Var: TARGETDIR_VER + +-if(UNIX AND NOT APPLE) ++if((UNIX AND NOT APPLE) OR MINGW) + if(WITH_INSTALL_PORTABLE) + set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION}) + else() +@@ -393,13 +393,13 @@ + # ----------------------------------------------------------------------------- + # Install Targets (Platform Specific) + +-if(UNIX AND NOT APPLE) ++if((UNIX AND NOT APPLE) OR MINGW) + + if(NOT WITH_PYTHON_MODULE) + if(WITH_DOC_MANPAGE) + add_custom_target( + blender_man_page ALL +- COMMAND ${CMAKE_SOURCE_DIR}/doc/manpage/blender.1.py ++ COMMAND python3 ${CMAKE_SOURCE_DIR}/doc/manpage/blender.1.py + ${EXECUTABLE_OUTPUT_PATH}/blender + ${CMAKE_CURRENT_BINARY_DIR}/blender.1) + add_dependencies(blender_man_page blender) +@@ -1003,7 +1003,7 @@ + + install(TARGETS blender blender-launcher + COMPONENT Blender +- DESTINATION ".") ++ DESTINATION bin) + + if(MSVC12_REDIST_DIR) + if(CMAKE_CL_64) +diff -Naur blender-2.72-orig/source/blenderplayer/CMakeLists.txt blender-2.72/source/blenderplayer/CMakeLists.txt +--- blender-2.72-orig/source/blenderplayer/CMakeLists.txt 2014-09-24 19:29:55.000000000 +0400 ++++ blender-2.72/source/blenderplayer/CMakeLists.txt 2014-10-07 09:16:00.095600000 +0400 +@@ -58,7 +58,7 @@ + + install(TARGETS blenderplayer + COMPONENT Blenderplayer +- DESTINATION ".") ++ DESTINATION bin) + + elseif(APPLE) + add_executable(blenderplayer ${EXETYPE} bad_level_call_stubs/stubs.c) diff --git a/mingw-w64-blender-git/mingw-w64-cmake.patch b/mingw-w64-blender-git/mingw-w64-cmake.patch index c9588ad9d1..9bf2111cb1 100644 --- a/mingw-w64-blender-git/mingw-w64-cmake.patch +++ b/mingw-w64-blender-git/mingw-w64-cmake.patch @@ -1,23 +1,14 @@ --- blender/CMakeLists.txt.orig 2014-04-08 00:22:36.736800000 +0400 +++ blender/CMakeLists.txt 2014-04-08 06:51:03.051600000 +0400 @@ -171,6 +171,8 @@ + if(UNIX AND NOT APPLE) option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" ON) - - option(WITH_GHOST_XDND "Enable drag'n'drop support on X11 using XDND protocol" ON) + option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON) +elseif(MINGW) + option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" ON) else() # not an option for other OS's set(WITH_SYSTEM_GLEW OFF) -@@ -178,7 +180,7 @@ - - - # (unix defaults to System OpenJPEG On) --if(UNIX AND NOT APPLE) -+if((UNIX AND NOT APPLE) OR MINGW) - set(PLATFORM_DEFAULT ON) - else() - set(PLATFORM_DEFAULT OFF) @@ -579,7 +581,7 @@ #----------------------------------------------------------------------------- #Platform specifics @@ -80,9 +71,9 @@ set(WITH_OPENCOLLADA OFF) endif() @@ -855,8 +878,13 @@ - message(FATAL_ERROR "LLVM not found.") - endif() + endif() + if(WITH_LLVM OR WITH_SDL_DYNLOAD) + if(MINGW) + # imagehelp is needed by LLVM 3.1 on MinGW, check lib\Support\Windows\Signals.inc + list(APPEND PLATFORM_LINKLIBS -limagehlp) From a7652f030895cc8a3a051a353373cda00d64ec36 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 3 Dec 2014 15:13:58 +0300 Subject: [PATCH 0068/2060] firebird-git: Update to latest. --- mingw-w64-firebird-git/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD index e9704c6d14..5e69110531 100644 --- a/mingw-w64-firebird-git/PKGBUILD +++ b/mingw-w64-firebird-git/PKGBUILD @@ -2,7 +2,7 @@ _realname='firebird' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=3.0.0.31458.0bd86ee +pkgver=3.0.0.31463.ba739e2 pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features (mingw-w64)" url="http://www.firebirdsql.org/" @@ -24,7 +24,8 @@ makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird pre "git" ) options=('!debug' 'strip') -source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git#branch=mingw-w64-trunk" +source=(#"${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git#branch=mingw-w64-trunk" + "${_realname}"::"git+https://Alexpux@bitbucket.org/msys2/firebird.git#branch=mingw-w64-trunk" #"${_realname}"::"git+file:///v/Sources/GNU/firebird-git#branch=mingw-w64-trunk" ) sha256sums=('SKIP') From c445a78487b55bf55fb87360280a0b06ae556b5c Mon Sep 17 00:00:00 2001 From: martell Date: Wed, 3 Dec 2014 20:24:02 +0000 Subject: [PATCH 0069/2060] luajit-git: new package --- mingw-w64-luajit-git/PKGBUILD | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 mingw-w64-luajit-git/PKGBUILD diff --git a/mingw-w64-luajit-git/PKGBUILD b/mingw-w64-luajit-git/PKGBUILD new file mode 100644 index 0000000000..468af1e3ea --- /dev/null +++ b/mingw-w64-luajit-git/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Martell Malone + +_realname=luajit +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=v2.0.3.40.g3f2e4ec +pkgrel=1 +pkgdesc="Just-in-time compiler and drop-in replacement for Lua 5.1 (mingw-w64)" +arch=('any') +url="http://luajit.org/" +license=('MIT') +depends=('winpty-git') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git") +options=('strip' 'staticlibs') +source=("${_realname}"::"git+http://luajit.org/git/luajit-2.0.git") +md5sums=('SKIP') + +pkgver() { + cd "${srcdir}/${_realname}" + git describe --tags | sed 's|-|.|g' +} + +prepare() { + sed -i "s|export PREFIX= /usr/local|export PREFIX="${pkgdir}${MINGW_PREFIX}"|g" $srcdir/$_realname/Makefile +} + +build() { + cd "${srcdir}/${_realname}" + make +} + + +package() { + cd "${srcdir}/${_realname}" + make install + + _exename=$_realname + echo "#!/usr/bin/env bash" > "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" + echo '/usr/bin/winpty "$( dirname ${BASH_SOURCE[0]} )/'${_exename}'.exe" "$@"' >> "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" + + install -v -Dm644 "$srcdir/$_realname/src/lua51.dll" "${pkgdir}${MINGW_PREFIX}/bin/lua51.dll" || exit 1 + install -v -Dm644 "$srcdir/$_realname/src/luajit.exe" "${pkgdir}${MINGW_PREFIX}/bin/luajit.exe" || exit 1 + +} From 86aaa23b0f1826b0d424ba74327024073bdf439d Mon Sep 17 00:00:00 2001 From: martell Date: Wed, 3 Dec 2014 20:45:52 +0000 Subject: [PATCH 0070/2060] luajit-git: conflict with lua51 over dll --- mingw-w64-luajit-git/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-luajit-git/PKGBUILD b/mingw-w64-luajit-git/PKGBUILD index 468af1e3ea..1e509d0f97 100644 --- a/mingw-w64-luajit-git/PKGBUILD +++ b/mingw-w64-luajit-git/PKGBUILD @@ -9,6 +9,7 @@ arch=('any') url="http://luajit.org/" license=('MIT') depends=('winpty-git') +conflicts=("${MINGW_PACKAGE_PREFIX}-lua51") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git") options=('strip' 'staticlibs') source=("${_realname}"::"git+http://luajit.org/git/luajit-2.0.git") From 22d7374bad1ca564b77815f8eb9ba1ae39038ad7 Mon Sep 17 00:00:00 2001 From: martell Date: Wed, 3 Dec 2014 22:03:32 +0000 Subject: [PATCH 0071/2060] mcpp: new package --- mingw-w64-mcpp/PKGBUILD | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 mingw-w64-mcpp/PKGBUILD diff --git a/mingw-w64-mcpp/PKGBUILD b/mingw-w64-mcpp/PKGBUILD new file mode 100644 index 0000000000..53637da523 --- /dev/null +++ b/mingw-w64-mcpp/PKGBUILD @@ -0,0 +1,31 @@ +# Maintainer: Martell Malone + +_realname=mcpp +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.7.2 +pkgrel=1 +pkgdesc="Matsui's CPP implementation precisely conformed to standards (mingw-w64)" +arch=('any') +license=('custom') +url="http://mcpp.sourceforge.net" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv") +options=('staticlibs' 'strip') +source=("http://downloads.sourceforge.net/mcpp/${_realname}-${pkgver}.tar.gz") +md5sums=('512de48c87ab023a69250edc7a0c7b05') + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "${srcdir}"/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-mcpplib + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install +} From 81bfa85882d6ad14912d375bb4ecde231969f111 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Dec 2014 11:04:39 +0300 Subject: [PATCH 0072/2060] openscenegraph-git: Update to latest git. --- mingw-w64-openscenegraph-git/PKGBUILD | 9 +++------ mingw-w64-openscenegraph-git/giflib.patch | 11 ----------- 2 files changed, 3 insertions(+), 17 deletions(-) delete mode 100644 mingw-w64-openscenegraph-git/giflib.patch diff --git a/mingw-w64-openscenegraph-git/PKGBUILD b/mingw-w64-openscenegraph-git/PKGBUILD index 37e72e5b9d..4f01980a74 100644 --- a/mingw-w64-openscenegraph-git/PKGBUILD +++ b/mingw-w64-openscenegraph-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=OpenSceneGraph pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-git") -pkgver=r12893.a61d2f2 +pkgver=r12969.497cd65 pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" arch=('any') @@ -41,13 +41,11 @@ options=('staticlibs' '!strip') source=("${_realname}"::"git+https://github.com/openscenegraph/osg.git" osg-collada-dae-fixes.patch find-collada.patch - find-freetype.patch - giflib.patch) + find-freetype.patch) md5sums=('SKIP' '45d0668f56c5e4ca58002f38fd3eb4a0' '668def9c99f044db9a8215fa927d6ac2' - '9ab69e1cd26826196fac5b3f01e6cb95' - '849f641c915f17db85a49b355bf63a17') + '9ab69e1cd26826196fac5b3f01e6cb95') pkgver() { cd "$srcdir/$_realname" @@ -59,7 +57,6 @@ prepare() { patch -p1 -i ${srcdir}/osg-collada-dae-fixes.patch patch -p1 -i ${srcdir}/find-collada.patch patch -p1 -i ${srcdir}/find-freetype.patch - patch -p1 -i ${srcdir}/giflib.patch } build() { diff --git a/mingw-w64-openscenegraph-git/giflib.patch b/mingw-w64-openscenegraph-git/giflib.patch deleted file mode 100644 index 0091cf5d60..0000000000 --- a/mingw-w64-openscenegraph-git/giflib.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- OpenSceneGraph-3.2.1-rc3/src/osgPlugins/gif/ReaderWriterGIF.cpp.orig 2013-06-03 18:04:02.000000000 +0400 -+++ OpenSceneGraph-3.2.1-rc3/src/osgPlugins/gif/ReaderWriterGIF.cpp 2014-05-30 07:29:09.498200000 +0400 -@@ -561,7 +561,7 @@ - *width_ret = giffile->SWidth; - *height_ret = giffile->SHeight; - *numComponents_ret = 4; -- DGifCloseFile(giffile); -+ DGifCloseFile(giffile, NULL); - return buffer; - } - From cd0c08529fabdc548bd4c36ceaf1903b1e140c8e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Dec 2014 11:05:16 +0300 Subject: [PATCH 0073/2060] luajit: Generate import library. --- mingw-w64-luajit-git/001-make-import-library.patch | 11 +++++++++++ mingw-w64-luajit-git/PKGBUILD | 14 +++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-luajit-git/001-make-import-library.patch diff --git a/mingw-w64-luajit-git/001-make-import-library.patch b/mingw-w64-luajit-git/001-make-import-library.patch new file mode 100644 index 0000000000..04ababe7a3 --- /dev/null +++ b/mingw-w64-luajit-git/001-make-import-library.patch @@ -0,0 +1,11 @@ +--- luajit/src/Makefile.orig 2014-12-04 10:17:07.822800000 +0300 ++++ luajit/src/Makefile 2014-12-04 10:17:48.273600000 +0300 +@@ -287,7 +287,7 @@ + TARGET_SYS?= $(HOST_SYS) + ifeq (Windows,$(TARGET_SYS)) + TARGET_STRIP+= --strip-unneeded +- TARGET_XSHLDFLAGS= -shared ++ TARGET_XSHLDFLAGS= -shared -Wl,--out-implib,libluajit-${ABIVER}.dll.a + TARGET_DYNXLDOPTS= + else + ifeq (Darwin,$(TARGET_SYS)) diff --git a/mingw-w64-luajit-git/PKGBUILD b/mingw-w64-luajit-git/PKGBUILD index 1e509d0f97..541fbab6cf 100644 --- a/mingw-w64-luajit-git/PKGBUILD +++ b/mingw-w64-luajit-git/PKGBUILD @@ -10,10 +10,13 @@ url="http://luajit.org/" license=('MIT') depends=('winpty-git') conflicts=("${MINGW_PACKAGE_PREFIX}-lua51") +provides=("${MINGW_PACKAGE_PREFIX}-lua51") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git") options=('strip' 'staticlibs') -source=("${_realname}"::"git+http://luajit.org/git/luajit-2.0.git") -md5sums=('SKIP') +source=("${_realname}"::"git+http://luajit.org/git/luajit-2.0.git" + 001-make-import-library.patch) +md5sums=('SKIP' + '668114665f129fa461bdebc53d9952c2') pkgver() { cd "${srcdir}/${_realname}" @@ -21,15 +24,16 @@ pkgver() { } prepare() { + cd "${srcdir}/${_realname}" + patch -p1 -i ${srcdir}/001-make-import-library.patch sed -i "s|export PREFIX= /usr/local|export PREFIX="${pkgdir}${MINGW_PREFIX}"|g" $srcdir/$_realname/Makefile } build() { cd "${srcdir}/${_realname}" - make + make #TARGET_SHLDFLAGS="-Wl,--implib=luajit.dll.a" } - package() { cd "${srcdir}/${_realname}" make install @@ -40,5 +44,5 @@ package() { install -v -Dm644 "$srcdir/$_realname/src/lua51.dll" "${pkgdir}${MINGW_PREFIX}/bin/lua51.dll" || exit 1 install -v -Dm644 "$srcdir/$_realname/src/luajit.exe" "${pkgdir}${MINGW_PREFIX}/bin/luajit.exe" || exit 1 - + install -v -Dm644 "$srcdir/$_realname/src/libluajit-5.1.dll.a" "${pkgdir}${MINGW_PREFIX}/lib/libluajit-5.1.dll.a" || exit 1 } From ff09279945dcdc18a6e64afcb989e8f3b6987afe Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 4 Dec 2014 17:50:25 +0000 Subject: [PATCH 0074/2060] headers: added --enable-idl --- mingw-w64-headers-git/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 544b41febc..04a1e436e6 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -39,7 +39,8 @@ build() { --target=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX}/${MINGW_CHOST} \ --enable-sdk=all \ - --enable-secure-api + --enable-secure-api \ + --enable-idl } package() { From 72e572a70ccbd1c37ff682f5c80f81cdd5c84efe Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Dec 2014 19:07:22 +0300 Subject: [PATCH 0075/2060] simage-hg: Rebuild. Update URL --- mingw-w64-simage-hg/PKGBUILD | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/mingw-w64-simage-hg/PKGBUILD b/mingw-w64-simage-hg/PKGBUILD index 8e02f74915..20af5a0536 100644 --- a/mingw-w64-simage-hg/PKGBUILD +++ b/mingw-w64-simage-hg/PKGBUILD @@ -1,26 +1,25 @@ # Maintainer: Alexey Pavlov _realname=simage - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-hg" -pkgver=r671.2dab4dadbb2e +pkgver=r672.8ea3f7b43f03 pkgrel=1 pkgdesc="Provides support for loading and saving images, sound and video (mingw-w64)" arch=('any') license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libsndfile" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-giflib" - "${MINGW_PACKAGE_PREFIX}-libvorbis" - "${MINGW_PACKAGE_PREFIX}-jasper" - "${MINGW_PACKAGE_PREFIX}-zlib") + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libsndfile" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-giflib" + "${MINGW_PACKAGE_PREFIX}-libvorbis" + "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("mercurial" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") url=('https://bitbucket.org/Coin3D/simage/overview') -source=("${_realname}"::"hg+https://bitbucket.org/Alexpux/simage") +source=("${_realname}"::"hg+https://bitbucket.org/msys2/simage") options=(!strip staticlibs) md5sums=('SKIP') From b71c239038e458b996f7339a95103853516e9729 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Dec 2014 20:52:29 +0300 Subject: [PATCH 0076/2060] coin3d: Rebuild. Update URL. --- mingw-w64-coin3d-hg/PKGBUILD | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/mingw-w64-coin3d-hg/PKGBUILD b/mingw-w64-coin3d-hg/PKGBUILD index 1c5bd22f07..661179a08f 100644 --- a/mingw-w64-coin3d-hg/PKGBUILD +++ b/mingw-w64-coin3d-hg/PKGBUILD @@ -1,28 +1,27 @@ # Maintainer: Alexey Pavlov _realname=coin3d - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-hg" -pkgver=r11348.46b2e54e300b +pkgver=r11404.a9b4869bdc0e pkgrel=1 pkgdesc="High-level, retained-mode toolkit for effective 3D graphics development (mingw-w64)" arch=('any') license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-simage" - "${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-expat" - "${MINGW_PACKAGE_PREFIX}-openal" - #"${MINGW_PACKAGE_PREFIX}-freeglut" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-zlib") + "${MINGW_PACKAGE_PREFIX}-bzip2" + "${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-openal" + #"${MINGW_PACKAGE_PREFIX}-freeglut" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("mercurial" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") url=('https://bitbucket.org/Coin3D/coin') -source=("${_realname}"::"hg+https://bitbucket.org/Alexpux/coin" - hg+https://bitbucket.org/Alexpux/generalmsvcgeneration - hg+https://bitbucket.org/Alexpux/boost-header-libs-full) +source=("${_realname}"::"hg+https://bitbucket.org/msys2/coin" + hg+https://bitbucket.org/msys2/generalmsvcgeneration + hg+https://bitbucket.org/msys2/boost-header-libs-full) options=(!strip staticlibs) md5sums=('SKIP' 'SKIP' From 9b09c08000c99e91d12f9642b6f834cb88894df6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Dec 2014 21:13:27 +0300 Subject: [PATCH 0077/2060] mingw-w64 runtime: Update to git SHA [e5944ae] --- mingw-w64-crt-git/PKGBUILD | 9 ++--- mingw-w64-crt-git/qsort_s.diff | 63 ------------------------------ mingw-w64-headers-git/PKGBUILD | 9 ++--- mingw-w64-headers-git/qsort_s.diff | 63 ------------------------------ 4 files changed, 6 insertions(+), 138 deletions(-) delete mode 100644 mingw-w64-crt-git/qsort_s.diff delete mode 100644 mingw-w64-headers-git/qsort_s.diff diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 7cca039bcc..cef90aeb99 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _ver_base=4.0.0 -pkgver=4.0.0.4344.b287205 +pkgver=4.0.0.4350.e5944ae pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -16,10 +16,8 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-binuti provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' 'staticlibs' '!buildflags' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" - qsort_s.diff) -md5sums=('SKIP' - 'de5beea7c6cb42861606768044fdc519') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +md5sums=('SKIP') pkgver() { cd "$srcdir/${_realname}" @@ -28,7 +26,6 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} - git am ${srcdir}/qsort_s.diff } build() { diff --git a/mingw-w64-crt-git/qsort_s.diff b/mingw-w64-crt-git/qsort_s.diff deleted file mode 100644 index 0ba89e5d32..0000000000 --- a/mingw-w64-crt-git/qsort_s.diff +++ /dev/null @@ -1,63 +0,0 @@ -From 4eb3c7dffd4f27bcec3a0141de2a2b8448079cac Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Mon, 24 Nov 2014 12:38:17 +0300 -Subject: [PATCH] Add qsort_s declarations. Use msvcrt version. - ---- - mingw-w64-crt/lib32/msvcr80.def.in | 1 + - mingw-w64-crt/lib64/msvcr80.def.in | 1 + - mingw-w64-headers/crt/search.h | 1 + - mingw-w64-headers/crt/stdlib.h | 1 + - 4 files changed, 4 insertions(+) - -diff --git a/mingw-w64-crt/lib32/msvcr80.def.in b/mingw-w64-crt/lib32/msvcr80.def.in -index 0d009e2..f3408b9 100644 ---- a/mingw-w64-crt/lib32/msvcr80.def.in -+++ b/mingw-w64-crt/lib32/msvcr80.def.in -@@ -653,6 +653,7 @@ puts - putwc - putwchar - qsort -+qsort_s - raise - rand - rand_s -diff --git a/mingw-w64-crt/lib64/msvcr80.def.in b/mingw-w64-crt/lib64/msvcr80.def.in -index d20cb82..18b8d2d 100644 ---- a/mingw-w64-crt/lib64/msvcr80.def.in -+++ b/mingw-w64-crt/lib64/msvcr80.def.in -@@ -780,6 +780,7 @@ puts - putwc - putwchar - qsort -+qsort_s - raise - rand - rand_s -diff --git a/mingw-w64-headers/crt/search.h b/mingw-w64-headers/crt/search.h -index 144b0f4..dd5f83e 100644 ---- a/mingw-w64-headers/crt/search.h -+++ b/mingw-w64-headers/crt/search.h -@@ -17,6 +17,7 @@ extern "C" { - #define _CRT_ALGO_DEFINED - void *__cdecl bsearch(const void *_Key,const void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); - void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); -+ void __cdecl qsort_s(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(void *,const void *,const void *),void *_Context); - #endif - _CRTIMP void *__cdecl _lfind(const void *_Key,const void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); - _CRTIMP void *__cdecl _lsearch(const void *_Key,void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); -diff --git a/mingw-w64-headers/crt/stdlib.h b/mingw-w64-headers/crt/stdlib.h -index 7743452..8118304 100644 ---- a/mingw-w64-headers/crt/stdlib.h -+++ b/mingw-w64-headers/crt/stdlib.h -@@ -351,6 +351,7 @@ extern "C" { - #define _CRT_ALGO_DEFINED - void *__cdecl bsearch(const void *_Key,const void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); - void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); -+ void __cdecl qsort_s(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(void *,const void *,const void *),void *_Context); - #endif - unsigned short __cdecl _byteswap_ushort(unsigned short _Short); - unsigned long __cdecl _byteswap_ulong (unsigned long _Long); --- -2.1.3 - diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 04a1e436e6..fa03b5a58a 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" _ver_base=4.0.0 -pkgver=4.0.0.4344.b287205 +pkgver=4.0.0.4350.e5944ae pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" @@ -15,10 +15,8 @@ makedepends=('git') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' '!libtool' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" - qsort_s.diff) -md5sums=('SKIP' - 'de5beea7c6cb42861606768044fdc519') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +md5sums=('SKIP') pkgver() { cd "$srcdir/$_realname" @@ -27,7 +25,6 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} - git am ${srcdir}/qsort_s.diff } build() { diff --git a/mingw-w64-headers-git/qsort_s.diff b/mingw-w64-headers-git/qsort_s.diff deleted file mode 100644 index 0ba89e5d32..0000000000 --- a/mingw-w64-headers-git/qsort_s.diff +++ /dev/null @@ -1,63 +0,0 @@ -From 4eb3c7dffd4f27bcec3a0141de2a2b8448079cac Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Mon, 24 Nov 2014 12:38:17 +0300 -Subject: [PATCH] Add qsort_s declarations. Use msvcrt version. - ---- - mingw-w64-crt/lib32/msvcr80.def.in | 1 + - mingw-w64-crt/lib64/msvcr80.def.in | 1 + - mingw-w64-headers/crt/search.h | 1 + - mingw-w64-headers/crt/stdlib.h | 1 + - 4 files changed, 4 insertions(+) - -diff --git a/mingw-w64-crt/lib32/msvcr80.def.in b/mingw-w64-crt/lib32/msvcr80.def.in -index 0d009e2..f3408b9 100644 ---- a/mingw-w64-crt/lib32/msvcr80.def.in -+++ b/mingw-w64-crt/lib32/msvcr80.def.in -@@ -653,6 +653,7 @@ puts - putwc - putwchar - qsort -+qsort_s - raise - rand - rand_s -diff --git a/mingw-w64-crt/lib64/msvcr80.def.in b/mingw-w64-crt/lib64/msvcr80.def.in -index d20cb82..18b8d2d 100644 ---- a/mingw-w64-crt/lib64/msvcr80.def.in -+++ b/mingw-w64-crt/lib64/msvcr80.def.in -@@ -780,6 +780,7 @@ puts - putwc - putwchar - qsort -+qsort_s - raise - rand - rand_s -diff --git a/mingw-w64-headers/crt/search.h b/mingw-w64-headers/crt/search.h -index 144b0f4..dd5f83e 100644 ---- a/mingw-w64-headers/crt/search.h -+++ b/mingw-w64-headers/crt/search.h -@@ -17,6 +17,7 @@ extern "C" { - #define _CRT_ALGO_DEFINED - void *__cdecl bsearch(const void *_Key,const void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); - void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); -+ void __cdecl qsort_s(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(void *,const void *,const void *),void *_Context); - #endif - _CRTIMP void *__cdecl _lfind(const void *_Key,const void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); - _CRTIMP void *__cdecl _lsearch(const void *_Key,void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); -diff --git a/mingw-w64-headers/crt/stdlib.h b/mingw-w64-headers/crt/stdlib.h -index 7743452..8118304 100644 ---- a/mingw-w64-headers/crt/stdlib.h -+++ b/mingw-w64-headers/crt/stdlib.h -@@ -351,6 +351,7 @@ extern "C" { - #define _CRT_ALGO_DEFINED - void *__cdecl bsearch(const void *_Key,const void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); - void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)); -+ void __cdecl qsort_s(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(void *,const void *,const void *),void *_Context); - #endif - unsigned short __cdecl _byteswap_ushort(unsigned short _Short); - unsigned long __cdecl _byteswap_ulong (unsigned long _Long); --- -2.1.3 - From fb5e1310352f441ac1b5b6d55993b9eae3445f93 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Dec 2014 21:57:12 +0300 Subject: [PATCH 0078/2060] ffmpeg: Update to 2.5 --- mingw-w64-ffmpeg/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index d8d4ef3834..658f620e49 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,7 +2,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.4.4 +pkgver=2.5 pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') @@ -24,6 +24,7 @@ depends=( "${MINGW_PACKAGE_PREFIX}-libtheora" "${MINGW_PACKAGE_PREFIX}-libvorbis" "${MINGW_PACKAGE_PREFIX}-libvpx" + "${MINGW_PACKAGE_PREFIX}-libwebp" "${MINGW_PACKAGE_PREFIX}-openal" "${MINGW_PACKAGE_PREFIX}-opencore-amr" "${MINGW_PACKAGE_PREFIX}-openjpeg" @@ -40,7 +41,7 @@ depends=( ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://ffmpeg.org/releases/$_realname-$pkgver.tar.bz2) -md5sums=('7e2819c71484ffba1ba1a91dd5285643') +md5sums=('4346fe710cc6bdd981f6534d2420d1ab') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 682b454b32c2ac1fc00c56c8b6e0ac40112736e5 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 4 Dec 2014 21:10:48 +0100 Subject: [PATCH 0079/2060] icoutils: new package --- mingw-w64-icoutils/001-win.patch | 29 ++++++++++++++++++++++ mingw-w64-icoutils/PKGBUILD | 42 ++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 mingw-w64-icoutils/001-win.patch create mode 100644 mingw-w64-icoutils/PKGBUILD diff --git a/mingw-w64-icoutils/001-win.patch b/mingw-w64-icoutils/001-win.patch new file mode 100644 index 0000000000..1aa35e50ef --- /dev/null +++ b/mingw-w64-icoutils/001-win.patch @@ -0,0 +1,29 @@ +--- ./lib/msvc-inval.c.orig 2014-12-04 20:59:45.759867900 +0100 ++++ ./lib/msvc-inval.c 2014-12-04 21:00:13.935725900 +0100 +@@ -28,7 +28,7 @@ + + # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING + +-static void cdecl ++static void __cdecl + gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, +@@ -45,7 +45,7 @@ + + # if defined _MSC_VER + +-static void cdecl ++static void __cdecl + gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, +@@ -94,7 +94,7 @@ + } + } + +-static void cdecl ++static void __cdecl + gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, diff --git a/mingw-w64-icoutils/PKGBUILD b/mingw-w64-icoutils/PKGBUILD new file mode 100644 index 0000000000..82b7d277ed --- /dev/null +++ b/mingw-w64-icoutils/PKGBUILD @@ -0,0 +1,42 @@ +# Maintainer: Andrea Zagli + +_realname=icoutils +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.31.0 +pkgrel=1 +arch=('any') +pkgdesc="Create and extract MS Windows icons and cursors (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-libpng") +options=('strip' 'staticlibs') +license=("GPL 2") +url="http://www.nongnu.org/icoutils/" +source=(http://savannah.nongnu.org/download/${_realname}/${_realname}-${pkgver}.tar.bz2 + 001-win.patch) +sha256sums=('a895d9d74a418d65d39a667e58ae38be79c9e726711384551d36531696f3af71' + 'e5745ac16fbaeaf5e5ab3af66582982c17326d372406e7dba75b34f33b2b9c10') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -p1 -i ${srcdir}/001-win.patch +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From 8bbdfa88e4cfe24f53619287ae4d6c520e843eb8 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 4 Dec 2014 22:35:48 +0100 Subject: [PATCH 0080/2060] libview: new package --- mingw-w64-libview/001-win.patch | 12 +++++++++ mingw-w64-libview/PKGBUILD | 45 +++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 mingw-w64-libview/001-win.patch create mode 100644 mingw-w64-libview/PKGBUILD diff --git a/mingw-w64-libview/001-win.patch b/mingw-w64-libview/001-win.patch new file mode 100644 index 0000000000..79440bcb5d --- /dev/null +++ b/mingw-w64-libview/001-win.patch @@ -0,0 +1,12 @@ +--- ./libview/Makefile.am.orig 2014-12-04 22:21:54.598078100 +0100 ++++ ./libview/Makefile.am 2014-12-04 22:21:37.764460800 +0100 +@@ -54,7 +54,8 @@ + + libview_la_LIBADD = $(VIEW_LIBS) + libview_la_LDFLAGS = \ +- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) ++ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ ++ -no-undefined + + + INCLUDES = \ diff --git a/mingw-w64-libview/PKGBUILD b/mingw-w64-libview/PKGBUILD new file mode 100644 index 0000000000..9d0ad0d2ec --- /dev/null +++ b/mingw-w64-libview/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: Andrea Zagli + +_realname=libview +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.6.6 +pkgrel=1 +arch=('any') +pkgdesc="VMware's Incredibly Exciting Widgets (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-gtkmm") +options=('strip' 'staticlibs') +license=("GPL 2") +url="http://view.sourceforge.net" +source=(http://downloads.sourceforge.net/view/${_realname}-$pkgver.tar.bz2 + 001-win.patch) +sha256sums=('2b991bf150c5488b43f807e89bdbd64b2eb3bd433abbdfb68c3eec52cbaa59ab' + '7e7506735bf4c86c52aee2066955f18d539496cee9a41ed126cdb98b19bff24e') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -p1 -i ${srcdir}/001-win.patch + + autoreconf -isf +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From 9c4d825287565dc6cea5ff0210ac1092adafa1ef Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 4 Dec 2014 23:05:56 +0100 Subject: [PATCH 0081/2060] gtk-vnc: new package --- mingw-w64-gtk-vnc/001-win.patch | 11 +++++++ mingw-w64-gtk-vnc/PKGBUILD | 57 +++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 mingw-w64-gtk-vnc/001-win.patch create mode 100644 mingw-w64-gtk-vnc/PKGBUILD diff --git a/mingw-w64-gtk-vnc/001-win.patch b/mingw-w64-gtk-vnc/001-win.patch new file mode 100644 index 0000000000..4451425588 --- /dev/null +++ b/mingw-w64-gtk-vnc/001-win.patch @@ -0,0 +1,11 @@ +--- ./src/Makefile.am.orig 2014-12-04 21:27:36.942402300 +0100 ++++ ./src/Makefile.am 2014-12-04 21:27:53.303186300 +0100 +@@ -339,6 +339,8 @@ + + if WITH_GOBJECT_INTROSPECTION + ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" ++ + GVNC_INTROSPECTION_SRCS = \ + $(srcdir)/vncpixelformat.h \ + $(srcdir)/vncaudioformat.h $(srcdir)/vncaudioformat.c \ diff --git a/mingw-w64-gtk-vnc/PKGBUILD b/mingw-w64-gtk-vnc/PKGBUILD new file mode 100644 index 0000000000..f6bfa5340b --- /dev/null +++ b/mingw-w64-gtk-vnc/PKGBUILD @@ -0,0 +1,57 @@ +# Maintainer: Andrea Zagli + +_realname=gtk-vnc +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.5.3 +pkgrel=1 +arch=('any') +pkgdesc="VNC viewer widget for GTK+ (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python2-pygtk" + "${MINGW_PACKAGE_PREFIX}-libgcrypt" + "${MINGW_PACKAGE_PREFIX}-libgpg-error" + "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-libview") +options=('strip' 'staticlibs') +license=("GPL 2") +url="http://www.gnome.org" +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('d490a6c8f40e550d43aef0043ce3bec498ec220d5eb3dc5cdcff8fd561149caf' + 'd814e61a679209b2100c350aa0c0a159196831586dd62286eb608c392f00e28b') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -p1 -i ${srcdir}/001-win.patch + + autoreconf -isf +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --enable-introspection=no \ + --with-python=yes \ + --with-gtk=3.0 \ + --with-sasl \ + --with-libview=yes + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From 1b7e46128a48a5e10049587156f0c93c1dddbd63 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 4 Dec 2014 21:10:48 +0100 Subject: [PATCH 0082/2060] icoutils: new package --- mingw-w64-icoutils/001-win.patch | 29 ++++++++++++++++++++++ mingw-w64-icoutils/PKGBUILD | 42 ++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 mingw-w64-icoutils/001-win.patch create mode 100644 mingw-w64-icoutils/PKGBUILD diff --git a/mingw-w64-icoutils/001-win.patch b/mingw-w64-icoutils/001-win.patch new file mode 100644 index 0000000000..1aa35e50ef --- /dev/null +++ b/mingw-w64-icoutils/001-win.patch @@ -0,0 +1,29 @@ +--- ./lib/msvc-inval.c.orig 2014-12-04 20:59:45.759867900 +0100 ++++ ./lib/msvc-inval.c 2014-12-04 21:00:13.935725900 +0100 +@@ -28,7 +28,7 @@ + + # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING + +-static void cdecl ++static void __cdecl + gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, +@@ -45,7 +45,7 @@ + + # if defined _MSC_VER + +-static void cdecl ++static void __cdecl + gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, +@@ -94,7 +94,7 @@ + } + } + +-static void cdecl ++static void __cdecl + gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, diff --git a/mingw-w64-icoutils/PKGBUILD b/mingw-w64-icoutils/PKGBUILD new file mode 100644 index 0000000000..82b7d277ed --- /dev/null +++ b/mingw-w64-icoutils/PKGBUILD @@ -0,0 +1,42 @@ +# Maintainer: Andrea Zagli + +_realname=icoutils +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.31.0 +pkgrel=1 +arch=('any') +pkgdesc="Create and extract MS Windows icons and cursors (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-libpng") +options=('strip' 'staticlibs') +license=("GPL 2") +url="http://www.nongnu.org/icoutils/" +source=(http://savannah.nongnu.org/download/${_realname}/${_realname}-${pkgver}.tar.bz2 + 001-win.patch) +sha256sums=('a895d9d74a418d65d39a667e58ae38be79c9e726711384551d36531696f3af71' + 'e5745ac16fbaeaf5e5ab3af66582982c17326d372406e7dba75b34f33b2b9c10') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -p1 -i ${srcdir}/001-win.patch +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From 5330e0e146180671ce6f0eb5881ab754baeea91f Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 4 Dec 2014 22:35:48 +0100 Subject: [PATCH 0083/2060] libview: new package --- mingw-w64-libview/001-win.patch | 12 +++++++++ mingw-w64-libview/PKGBUILD | 45 +++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 mingw-w64-libview/001-win.patch create mode 100644 mingw-w64-libview/PKGBUILD diff --git a/mingw-w64-libview/001-win.patch b/mingw-w64-libview/001-win.patch new file mode 100644 index 0000000000..79440bcb5d --- /dev/null +++ b/mingw-w64-libview/001-win.patch @@ -0,0 +1,12 @@ +--- ./libview/Makefile.am.orig 2014-12-04 22:21:54.598078100 +0100 ++++ ./libview/Makefile.am 2014-12-04 22:21:37.764460800 +0100 +@@ -54,7 +54,8 @@ + + libview_la_LIBADD = $(VIEW_LIBS) + libview_la_LDFLAGS = \ +- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) ++ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ ++ -no-undefined + + + INCLUDES = \ diff --git a/mingw-w64-libview/PKGBUILD b/mingw-w64-libview/PKGBUILD new file mode 100644 index 0000000000..9d0ad0d2ec --- /dev/null +++ b/mingw-w64-libview/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: Andrea Zagli + +_realname=libview +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.6.6 +pkgrel=1 +arch=('any') +pkgdesc="VMware's Incredibly Exciting Widgets (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-gtkmm") +options=('strip' 'staticlibs') +license=("GPL 2") +url="http://view.sourceforge.net" +source=(http://downloads.sourceforge.net/view/${_realname}-$pkgver.tar.bz2 + 001-win.patch) +sha256sums=('2b991bf150c5488b43f807e89bdbd64b2eb3bd433abbdfb68c3eec52cbaa59ab' + '7e7506735bf4c86c52aee2066955f18d539496cee9a41ed126cdb98b19bff24e') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -p1 -i ${srcdir}/001-win.patch + + autoreconf -isf +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From 53c65ff8c7af543fda45594ea1173ac827eefee6 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 4 Dec 2014 23:05:56 +0100 Subject: [PATCH 0084/2060] gtk-vnc: new package --- mingw-w64-gtk-vnc/001-win.patch | 11 +++++++ mingw-w64-gtk-vnc/PKGBUILD | 57 +++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 mingw-w64-gtk-vnc/001-win.patch create mode 100644 mingw-w64-gtk-vnc/PKGBUILD diff --git a/mingw-w64-gtk-vnc/001-win.patch b/mingw-w64-gtk-vnc/001-win.patch new file mode 100644 index 0000000000..4451425588 --- /dev/null +++ b/mingw-w64-gtk-vnc/001-win.patch @@ -0,0 +1,11 @@ +--- ./src/Makefile.am.orig 2014-12-04 21:27:36.942402300 +0100 ++++ ./src/Makefile.am 2014-12-04 21:27:53.303186300 +0100 +@@ -339,6 +339,8 @@ + + if WITH_GOBJECT_INTROSPECTION + ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" ++ + GVNC_INTROSPECTION_SRCS = \ + $(srcdir)/vncpixelformat.h \ + $(srcdir)/vncaudioformat.h $(srcdir)/vncaudioformat.c \ diff --git a/mingw-w64-gtk-vnc/PKGBUILD b/mingw-w64-gtk-vnc/PKGBUILD new file mode 100644 index 0000000000..f6bfa5340b --- /dev/null +++ b/mingw-w64-gtk-vnc/PKGBUILD @@ -0,0 +1,57 @@ +# Maintainer: Andrea Zagli + +_realname=gtk-vnc +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.5.3 +pkgrel=1 +arch=('any') +pkgdesc="VNC viewer widget for GTK+ (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python2-pygtk" + "${MINGW_PACKAGE_PREFIX}-libgcrypt" + "${MINGW_PACKAGE_PREFIX}-libgpg-error" + "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-libview") +options=('strip' 'staticlibs') +license=("GPL 2") +url="http://www.gnome.org" +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('d490a6c8f40e550d43aef0043ce3bec498ec220d5eb3dc5cdcff8fd561149caf' + 'd814e61a679209b2100c350aa0c0a159196831586dd62286eb608c392f00e28b') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -p1 -i ${srcdir}/001-win.patch + + autoreconf -isf +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --enable-introspection=no \ + --with-python=yes \ + --with-gtk=3.0 \ + --with-sasl \ + --with-libview=yes + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From 33a6afbb517fe4f4e5278bf6553789d74e868069 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 5 Dec 2014 11:23:09 +0300 Subject: [PATCH 0085/2060] libpng: Update to 1.6.15 --- mingw-w64-libpng/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libpng/PKGBUILD b/mingw-w64-libpng/PKGBUILD index be09ae6e89..feee0db34e 100644 --- a/mingw-w64-libpng/PKGBUILD +++ b/mingw-w64-libpng/PKGBUILD @@ -2,7 +2,7 @@ _realname=libpng pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.14 +pkgver=1.6.15 pkgrel=1 arch=('any') pkgdesc="A collection of routines used to create PNG format graphics (mingw-w64)" @@ -15,8 +15,8 @@ options=('strip' '!libtool' 'staticlibs') source=("http://downloads.sourceforge.net/sourceforge/libpng/libpng-$pkgver.tar.xz" "http://downloads.sourceforge.net/project/libpng-apng/libpng16/$pkgver/libpng-$pkgver-apng.patch.gz") -md5sums=('aefd9fda2178acab908707737174a0cd' - '39f35cde00159c24b5a10258d8f2c5ce') +md5sums=('a95cb387c53215b034203b41ec57c7e5' + '612524080d5515f4ea81541a9b13bf61') prepare() { cd "$srcdir/libpng-$pkgver" From b58f65acccd346389818ffa97b0a2c14b0f8e160 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 6 Dec 2014 10:51:18 +0100 Subject: [PATCH 0086/2060] spice-protocol: new package. --- mingw-w64-spice-protocol/PKGBUILD | 36 +++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 mingw-w64-spice-protocol/PKGBUILD diff --git a/mingw-w64-spice-protocol/PKGBUILD b/mingw-w64-spice-protocol/PKGBUILD new file mode 100644 index 0000000000..cb97e92a7f --- /dev/null +++ b/mingw-w64-spice-protocol/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: Andrea Zagli + +_realname=spice-protocol +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.12.7 +pkgrel=1 +arch=('any') +pkgdesc="SPICE protocol headers (mingw-w64)" +options=('strip' 'staticlibs') +license=("GPL 2") +url="http://www.spice-space.org" +source=(http://www.spice-space.org/download/releases/${_realname}-$pkgver.tar.bz2) +sha256sums=('96c6cb73361816ed19bfd8536f65d4547da35709aa00af1380e650c1174916c2') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From a46a04edc32259c72d30b84e10e9962e3a1d574d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 6 Dec 2014 13:18:33 +0300 Subject: [PATCH 0087/2060] libtiff: Add patch to build test with libjpeg v8 --- mingw-w64-libtiff/PKGBUILD | 13 ++- mingw-w64-libtiff/libtiff-bogus-test.patch | 116 +++++++++++++++++++++ 2 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-libtiff/libtiff-bogus-test.patch diff --git a/mingw-w64-libtiff/PKGBUILD b/mingw-w64-libtiff/PKGBUILD index 23821ce50f..c49b4a8f07 100644 --- a/mingw-w64-libtiff/PKGBUILD +++ b/mingw-w64-libtiff/PKGBUILD @@ -3,7 +3,7 @@ _realname=libtiff pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.0.3 -pkgrel=3 +pkgrel=4 pkgdesc="Library for manipulation of TIFF images (mingw-w64)" arch=('any') url="http://www.remotesensing.org/libtiff" @@ -15,8 +15,15 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=("ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz") -md5sums=('051c1068e6a0627f461948c365290410') +source=("ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz" + libtiff-bogus-test.patch) +md5sums=('051c1068e6a0627f461948c365290410' + 'c4ba78d0e21be4b881f1c272e8db45d2') + +prepare() { + cd tiff-${pkgver} + patch -p1 -i ${srcdir}/libtiff-bogus-test.patch +} build() { cd "${srcdir}/tiff-${pkgver}" diff --git a/mingw-w64-libtiff/libtiff-bogus-test.patch b/mingw-w64-libtiff/libtiff-bogus-test.patch new file mode 100644 index 0000000000..0abf08aef4 --- /dev/null +++ b/mingw-w64-libtiff/libtiff-bogus-test.patch @@ -0,0 +1,116 @@ +--- tiff-4.0.3.orig/test/raw_decode.c 2012-07-06 13:05:16.000000000 -0400 ++++ tiff-4.0.3/test/raw_decode.c 2012-12-19 13:04:37.609738276 -0500 +@@ -71,33 +71,54 @@ + return 1; + } + +-static int check_rgb_pixel( int pixel, int red, int green, int blue, unsigned char *buffer ) { ++static int check_rgb_pixel( int pixel, ++ int min_red, int max_red, ++ int min_green, int max_green, ++ int min_blue, int max_blue, ++ unsigned char *buffer ) { + unsigned char *rgb = buffer + 3 * pixel; + +- if( rgb[0] == red && rgb[1] == green && rgb[2] == blue ) { ++ if( rgb[0] >= min_red && rgb[0] <= max_red && ++ rgb[1] >= min_green && rgb[1] <= max_green && ++ rgb[2] >= min_blue && rgb[2] <= max_blue ) { + return 0; + } + + fprintf( stderr, "Pixel %d did not match expected results.\n", pixel ); +- fprintf( stderr, "Expect: %3d %3d %3d\n", red, green, blue ); +- fprintf( stderr, " Got: %3d %3d %3d\n", rgb[0], rgb[1], rgb[2] ); ++ fprintf( stderr, "Got R=%d (expected %d..%d), G=%d (expected %d..%d), B=%d (expected %d..%d)\n", ++ rgb[0], min_red, max_red, ++ rgb[1], min_green, max_green, ++ rgb[2], min_blue, max_blue ); + return 1; + } + +-static int check_rgba_pixel( int pixel, int red, int green, int blue, int alpha, uint32 *buffer ) { ++static int check_rgba_pixel( int pixel, ++ int min_red, int max_red, ++ int min_green, int max_green, ++ int min_blue, int max_blue, ++ int min_alpha, int max_alpha, ++ uint32 *buffer ) { + /* RGBA images are upside down - adjust for normal ordering */ + int adjusted_pixel = pixel % 128 + (127 - (pixel/128)) * 128; + uint32 rgba = buffer[adjusted_pixel]; + +- if( TIFFGetR(rgba) == (uint32) red && TIFFGetG(rgba) == (uint32) green && +- TIFFGetB(rgba) == (uint32) blue && TIFFGetA(rgba) == (uint32) alpha ) { ++ if( TIFFGetR(rgba) >= (uint32) min_red && ++ TIFFGetR(rgba) <= (uint32) max_red && ++ TIFFGetG(rgba) >= (uint32) min_green && ++ TIFFGetG(rgba) <= (uint32) max_green && ++ TIFFGetB(rgba) >= (uint32) min_blue && ++ TIFFGetB(rgba) <= (uint32) max_blue && ++ TIFFGetA(rgba) >= (uint32) min_alpha && ++ TIFFGetA(rgba) <= (uint32) max_alpha ) { + return 0; + } + + fprintf( stderr, "Pixel %d did not match expected results.\n", pixel ); +- fprintf( stderr, "Expect: %3d %3d %3d %3d\n", red, green, blue, alpha ); +- fprintf( stderr, " Got: %3d %3d %3d %3d\n", +- TIFFGetR(rgba), TIFFGetG(rgba), TIFFGetB(rgba), TIFFGetA(rgba) ); ++ fprintf( stderr, "Got R=%d (expected %d..%d), G=%d (expected %d..%d), B=%d (expected %d..%d), A=%d (expected %d..%d)\n", ++ TIFFGetR(rgba), min_red, max_red, ++ TIFFGetG(rgba), min_green, max_green, ++ TIFFGetB(rgba), min_blue, max_blue, ++ TIFFGetA(rgba), min_alpha, max_alpha ); + return 1; + } + +@@ -191,15 +212,17 @@ + return 1; + } + +-#if JPEG_LIB_VERSION >= 70 +- pixel_status |= check_rgb_pixel( 0, 18, 0, 41, buffer ); +- pixel_status |= check_rgb_pixel( 64, 0, 0, 0, buffer ); +- pixel_status |= check_rgb_pixel( 512, 5, 34, 196, buffer ); +-#else +- pixel_status |= check_rgb_pixel( 0, 15, 0, 18, buffer ); +- pixel_status |= check_rgb_pixel( 64, 0, 0, 2, buffer ); +- pixel_status |= check_rgb_pixel( 512, 6, 36, 182, buffer ); +-#endif ++ /* ++ * JPEG decoding is inherently inexact, so we can't test for exact ++ * pixel values. (Well, if we knew exactly which libjpeg version ++ * we were using, and with what settings, we could expect specific ++ * values ... but it's not worth the trouble to keep track of.) ++ * Hence, use ranges of expected values. The ranges may need to be ++ * widened over time as more versions of libjpeg appear. ++ */ ++ pixel_status |= check_rgb_pixel( 0, 15, 18, 0, 0, 18, 41, buffer ); ++ pixel_status |= check_rgb_pixel( 64, 0, 0, 0, 0, 0, 2, buffer ); ++ pixel_status |= check_rgb_pixel( 512, 5, 6, 34, 36, 182, 196, buffer ); + + free( buffer ); + +@@ -224,15 +247,12 @@ + * accomplish it from the YCbCr subsampled buffer ourselves in which + * case the results may be subtly different but similar. + */ +-#if JPEG_LIB_VERSION >= 70 +- pixel_status |= check_rgba_pixel( 0, 18, 0, 41, 255, rgba_buffer ); +- pixel_status |= check_rgba_pixel( 64, 0, 0, 0, 255, rgba_buffer ); +- pixel_status |= check_rgba_pixel( 512, 5, 34, 196, 255, rgba_buffer ); +-#else +- pixel_status |= check_rgba_pixel( 0, 15, 0, 18, 255, rgba_buffer ); +- pixel_status |= check_rgba_pixel( 64, 0, 0, 2, 255, rgba_buffer ); +- pixel_status |= check_rgba_pixel( 512, 6, 36, 182, 255, rgba_buffer ); +-#endif ++ pixel_status |= check_rgba_pixel( 0, 15, 18, 0, 0, 18, 41, 255, 255, ++ rgba_buffer ); ++ pixel_status |= check_rgba_pixel( 64, 0, 0, 0, 0, 0, 2, 255, 255, ++ rgba_buffer ); ++ pixel_status |= check_rgba_pixel( 512, 5, 6, 34, 36, 182, 196, 255, 255, ++ rgba_buffer ); + + free( rgba_buffer ); + TIFFClose(tif); From bd5227cf99524a013b90ce9cf5befd74c8564e30 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 6 Dec 2014 14:05:54 +0300 Subject: [PATCH 0088/2060] codelite-git: Update to git SHA [g727603e] --- mingw-w64-codelite-git/PKGBUILD | 9 ++++-- .../codelite-clang-deprecated.patch | 13 ++++----- .../codelite-php-linking.patch | 29 +++++++++++++++++++ 3 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 mingw-w64-codelite-git/codelite-php-linking.patch diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index 5f65944ee7..1a6ace9488 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=codelite pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=6.1.1.165.g9806d8e +pkgver=6.1.1.449.g727603e pkgrel=1 pkgdesc="Open-source, cross platform IDE for the C/C++ programming languages (mingw-w64)" arch=('any') @@ -21,9 +21,11 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-clang") options=(strip staticlibs !debug) source=("${_realname}::git+https://github.com/eranif/codelite.git" - codelite-clang-deprecated.patch) + codelite-clang-deprecated.patch + codelite-php-linking.patch) md5sums=('SKIP' - '4bec2ac130687bd4b947b98a0d5d3fd4') + 'a8017445f2b5c68b39dcb2b76cc08427' + 'ea63b613ccf30683272eaae5d2c47ebd') pkgver() { cd "$_realname" @@ -33,6 +35,7 @@ pkgver() { prepare() { cd "$srcdir/$_realname" patch -p1 -i ${srcdir}/codelite-clang-deprecated.patch + patch -p1 -i ${srcdir}/codelite-php-linking.patch } build() { diff --git a/mingw-w64-codelite-git/codelite-clang-deprecated.patch b/mingw-w64-codelite-git/codelite-clang-deprecated.patch index 05dd9b9e5c..5b37bc7492 100644 --- a/mingw-w64-codelite-git/codelite-clang-deprecated.patch +++ b/mingw-w64-codelite-git/codelite-clang-deprecated.patch @@ -1,12 +1,11 @@ --- codelite/LiteEditor/clang_pch_maker_thread.cpp.orig 2014-07-06 14:54:17.618600000 +0400 +++ codelite/LiteEditor/clang_pch_maker_thread.cpp 2014-07-06 14:55:02.094200000 +0400 -@@ -434,8 +434,7 @@ +@@ -434,7 +434,7 @@ // First time, need to create it unsigned flags; if(reparse) { -- flags = CXTranslationUnit_CXXPrecompiledPreamble -- | CXTranslationUnit_CacheCompletionResults -+ flags = CXTranslationUnit_CacheCompletionResults - | CXTranslationUnit_PrecompiledPreamble - | CXTranslationUnit_Incomplete - | CXTranslationUnit_DetailedPreprocessingRecord +- flags = CXTranslationUnit_CXXPrecompiledPreamble | CXTranslationUnit_CacheCompletionResults | ++ flags = CXTranslationUnit_CacheCompletionResults | + CXTranslationUnit_PrecompiledPreamble | CXTranslationUnit_Incomplete | + CXTranslationUnit_DetailedPreprocessingRecord | CXTranslationUnit_CXXChainedPCH; + } else { diff --git a/mingw-w64-codelite-git/codelite-php-linking.patch b/mingw-w64-codelite-git/codelite-php-linking.patch new file mode 100644 index 0000000000..dff907890e --- /dev/null +++ b/mingw-w64-codelite-git/codelite-php-linking.patch @@ -0,0 +1,29 @@ +From 107248e0dd32f612a8b6c87bdc63be2795091ae1 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Fri, 5 Dec 2014 23:10:22 +0300 +Subject: [PATCH] Need Wx HTML module for linking. + +--- + codelitephp/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/codelitephp/CMakeLists.txt b/codelitephp/CMakeLists.txt +index bbd7926..c170642 100644 +--- a/codelitephp/CMakeLists.txt ++++ b/codelitephp/CMakeLists.txt +@@ -16,10 +16,10 @@ project( ${PLUGIN_NAME} ) + # It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'. + if (WITH_WEBVIEW) + message("-- Internal Web Browser is enabled") +- find_package(wxWidgets COMPONENTS adv aui base core xml xrc net stc webview REQUIRED) ++ find_package(wxWidgets COMPONENTS adv aui base core html xml xrc net stc webview REQUIRED) + else() + message("-- Internal Web Browser is disabled") +- find_package(wxWidgets COMPONENTS adv aui base core xml xrc net stc REQUIRED) ++ find_package(wxWidgets COMPONENTS adv aui base core html xml xrc net stc REQUIRED) + endif() + + # wxWidgets include (this will do all the magic to configure everything) +-- +2.2.0 + From e0fc731727ee8580657beeb8b76f970b3ee5cd03 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 6 Dec 2014 12:18:26 +0100 Subject: [PATCH 0089/2060] spice-gtk: new package. --- mingw-w64-spice-gtk/001-win.patch | 10 ++++++ mingw-w64-spice-gtk/PKGBUILD | 54 +++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 mingw-w64-spice-gtk/001-win.patch create mode 100644 mingw-w64-spice-gtk/PKGBUILD diff --git a/mingw-w64-spice-gtk/001-win.patch b/mingw-w64-spice-gtk/001-win.patch new file mode 100644 index 0000000000..c5d9ccbf85 --- /dev/null +++ b/mingw-w64-spice-gtk/001-win.patch @@ -0,0 +1,10 @@ +--- ./gtk/Makefile.am.orig 2014-12-06 11:07:51.611626700 +0100 ++++ ./gtk/Makefile.am 2014-12-06 11:19:08.186671400 +0100 +@@ -602,6 +602,7 @@ + INTROSPECTION_GIRS = + INTROSPECTION_SCANNER_ARGS = --warn-all --accept-unprefixed --add-include-path=$(builddir) $(PREFIX_ARGS) + INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir) ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + if HAVE_INTROSPECTION + glib_introspection_files = \ diff --git a/mingw-w64-spice-gtk/PKGBUILD b/mingw-w64-spice-gtk/PKGBUILD new file mode 100644 index 0000000000..9e121776e7 --- /dev/null +++ b/mingw-w64-spice-gtk/PKGBUILD @@ -0,0 +1,54 @@ +# Maintainer: Andrea Zagli + +_realname=spice-gtk +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.26 +pkgrel=1 +arch=('any') +pkgdesc="GTK3 widget for SPICE clients (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-pixman" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" + "${MINGW_PACKAGE_PREFIX}-libusb" + "${MINGW_PACKAGE_PREFIX}-vala") +makedepends=("${MINGW_PACKAGE_PREFIX}-spice-protocol") +options=('strip' 'staticlibs') +license=("GPL 2") +url="http://www.spice-space.org" +source=(http://www.spice-space.org/download/gtk/${_realname}-$pkgver.tar.bz2 + 001-win.patch) +sha256sums=('d61cabeb4ae03afb5bb921139491d1088ca0cdf77c7e70b8039fe62c2246e3f9' + 'fa47a600c6d152ab49f794305bba752fa80a644ef94d2007a1cccc00e244655a') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -p1 -i ${srcdir}/001-win.patch + + autoreconf -isf +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --enable-introspection \ + --with-gtk=3.0 \ + --with-audio=no + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From a6e2c3d285464744ffb48dd51dcc8b9db0627b63 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 6 Dec 2014 15:05:40 +0300 Subject: [PATCH 0090/2060] mpg123: Don't remove libtool files as it used for open modules. --- mingw-w64-mpg123/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mpg123/PKGBUILD b/mingw-w64-mpg123/PKGBUILD index 928022d93a..9d7529f8b3 100644 --- a/mingw-w64-mpg123/PKGBUILD +++ b/mingw-w64-mpg123/PKGBUILD @@ -3,7 +3,7 @@ _realname=mpg123 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.21.0 -pkgrel=1 +pkgrel=2 pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3 (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/mpg123" @@ -17,7 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-libtool" optdepends=("${MINGW_PACKAGE_PREFIX}-portaudio" "${MINGW_PACKAGE_PREFIX}-openal" "${MINGW_PACKAGE_PREFIX}-SDL") -options=('strip' 'staticlibs') +options=('strip' 'staticlibs' 'libtool') source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2"{,.sig} 0001-update-ac-and-silent-rules.mingw.patch 0002-openal-library.patch) From c4a34755bd069bbd9a1c8e90bc34f4bf922f4e38 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 6 Dec 2014 13:09:59 +0100 Subject: [PATCH 0091/2060] virt-viewer: new package. --- mingw-w64-virt-viewer-git/PKGBUILD | 49 ++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 mingw-w64-virt-viewer-git/PKGBUILD diff --git a/mingw-w64-virt-viewer-git/PKGBUILD b/mingw-w64-virt-viewer-git/PKGBUILD new file mode 100644 index 0000000000..4aae550bbf --- /dev/null +++ b/mingw-w64-virt-viewer-git/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: Andrea Zagli + +_realname=virt-viewer +_base_ver=2.0.0 +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=2.0.0.934.824c4b9 +pkgrel=1 +arch=('any') +pkgdesc="Displaying the graphical console of a virtual machine (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-spice-gtk" + "${MINGW_PACKAGE_PREFIX}-gtk-vnc" + "${MINGW_PACKAGE_PREFIX}-libxml2") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gtk-doc") +options=('strip' 'staticlibs') +license=("LGPL 2.1") +url="https://fedorapeople.org/" +source=("${_realname}"::"git+git://fedorapeople.org/home/fedora/fidencio/public_git/${_realname}.git") +sha256sums=('SKIP') + +pkgver() { + cd "$srcdir/$_realname" + printf "%s.%s.%s" "${_base_ver}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd $srcdir/${_realname} +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}/autogen.sh \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --with-spice-gtk \ + --with-gtk=3.0 + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From 55ab2b8dce349e7ea833993c0c5733658b41ca17 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 6 Dec 2014 13:49:43 +0100 Subject: [PATCH 0092/2060] eog: upgrade to 3.14.3. --- mingw-w64-eog/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-eog/PKGBUILD b/mingw-w64-eog/PKGBUILD index d80292db39..5b1aaa469f 100644 --- a/mingw-w64-eog/PKGBUILD +++ b/mingw-w64-eog/PKGBUILD @@ -2,7 +2,7 @@ _realname=eog pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.2 +pkgver=3.14.3 pkgrel=1 arch=('any') pkgdesc="Eye of GNOME graphics viewer program (mingw-w64)" @@ -29,7 +29,7 @@ source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_real 002-relocation-support.patch 003-fix-install-dirs.patch 004-give-cc-to-gir-scanner.mingw.patch) -sha256sums=('bd532ba15a066e69eaeea3167d862176e231ee56f003ae3817d99bcb41764c5c' +sha256sums=('c05a3c0a75c3c5d42f41eadca9e23753d1fa59bc37fb5826909b468b9be1cf59' '1309ea222055d951fbe5c1c9be0245adecdfe221ee9ce0b2cef8fab3597d3864' '2a1b947202e765011ee37c40786baee96c04e23962a481bcee36757cabc3c669' 'abc9df56f5fc2213ba6efdcdad269534496d6eda900194b4000910dacf4042d9' From 57941a14d98e8d4913a6410d88119117638803be Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 6 Dec 2014 13:55:17 +0100 Subject: [PATCH 0093/2060] phodav: new package. --- mingw-w64-phodav/001-win.patch | 11 +++++++++ mingw-w64-phodav/PKGBUILD | 45 ++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 mingw-w64-phodav/001-win.patch create mode 100644 mingw-w64-phodav/PKGBUILD diff --git a/mingw-w64-phodav/001-win.patch b/mingw-w64-phodav/001-win.patch new file mode 100644 index 0000000000..4db02fa3b4 --- /dev/null +++ b/mingw-w64-phodav/001-win.patch @@ -0,0 +1,11 @@ +--- ./Makefile.am.orig 2014-12-06 13:45:36.146090200 +0100 ++++ ./Makefile.am 2014-12-06 13:46:11.013246100 +0100 +@@ -8,7 +8,7 @@ + makeflags_1 = + AM_MAKEFLAGS = $(makeflags_$(V)) + +-SUBDIRS = . po spice libphodav doc ++SUBDIRS = . po spice libphodav + lib_LTLIBRARIES = libphodav-1.0.la + bin_PROGRAMS = chezdav + sbin_PROGRAMS = spice-webdavd diff --git a/mingw-w64-phodav/PKGBUILD b/mingw-w64-phodav/PKGBUILD new file mode 100644 index 0000000000..ae4ce5411a --- /dev/null +++ b/mingw-w64-phodav/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: Andrea Zagli + +_realname=phodav +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.4 +pkgrel=1 +arch=('any') +pkgdesc="A WebDAV server using libsoup (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-libsoup") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gtk-doc") +options=('strip' 'staticlibs') +license=("GPL 2") +url="http://www.gnome.org" +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('5d14bfd4d733f680fca6875586308879b78a3c4892bd95a2d8dc4aabd24614b6' + 'f125c902a291bf0e0bfa1e49732e0724c4d06bfa95b7e0f6e1678cdf34c163ae') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -p1 -i ${srcdir}/001-win.patch + + autoreconf -isf +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From 2a6f6c8037aae27ed494593bacf781e056ca12f8 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 6 Dec 2014 16:19:44 +0100 Subject: [PATCH 0094/2060] virt-viewer: added missing dependency icoutils. --- mingw-w64-phodav/PKGBUILD | 2 +- mingw-w64-spice-gtk/PKGBUILD | 5 +++-- mingw-w64-virt-viewer-git/PKGBUILD | 7 ++++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/mingw-w64-phodav/PKGBUILD b/mingw-w64-phodav/PKGBUILD index ae4ce5411a..c2df73df82 100644 --- a/mingw-w64-phodav/PKGBUILD +++ b/mingw-w64-phodav/PKGBUILD @@ -20,7 +20,7 @@ sha256sums=('5d14bfd4d733f680fca6875586308879b78a3c4892bd95a2d8dc4aabd24614b6' prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/001-win.patch + #patch -p1 -i ${srcdir}/001-win.patch autoreconf -isf } diff --git a/mingw-w64-spice-gtk/PKGBUILD b/mingw-w64-spice-gtk/PKGBUILD index 9e121776e7..357bdc70a0 100644 --- a/mingw-w64-spice-gtk/PKGBUILD +++ b/mingw-w64-spice-gtk/PKGBUILD @@ -3,7 +3,7 @@ _realname=spice-gtk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.26 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="GTK3 widget for SPICE clients (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gtk3" @@ -13,7 +13,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" "${MINGW_PACKAGE_PREFIX}-libusb" - "${MINGW_PACKAGE_PREFIX}-vala") + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-phodav") makedepends=("${MINGW_PACKAGE_PREFIX}-spice-protocol") options=('strip' 'staticlibs') license=("GPL 2") diff --git a/mingw-w64-virt-viewer-git/PKGBUILD b/mingw-w64-virt-viewer-git/PKGBUILD index 4aae550bbf..10f281ef30 100644 --- a/mingw-w64-virt-viewer-git/PKGBUILD +++ b/mingw-w64-virt-viewer-git/PKGBUILD @@ -4,15 +4,16 @@ _realname=virt-viewer _base_ver=2.0.0 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=2.0.0.934.824c4b9 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Displaying the graphical console of a virtual machine (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-spice-gtk" "${MINGW_PACKAGE_PREFIX}-gtk-vnc" "${MINGW_PACKAGE_PREFIX}-libxml2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gtk-doc") -options=('strip' 'staticlibs') + "${MINGW_PACKAGE_PREFIX}-gtk-doc" + "${MINGW_PACKAGE_PREFIX}-icoutils") +ptions=('strip' 'staticlibs') license=("LGPL 2.1") url="https://fedorapeople.org/" source=("${_realname}"::"git+git://fedorapeople.org/home/fedora/fidencio/public_git/${_realname}.git") From dfefce2c4ebdcf58c7f574df222fc42f324f5908 Mon Sep 17 00:00:00 2001 From: AlexWMF Date: Sat, 6 Dec 2014 19:04:01 +0300 Subject: [PATCH 0095/2060] qwt-qt5: Complatibility with Qt 5.4.0rc fix. --- mingw-w64-qwt-qt5/PKGBUILD | 10 ++++++++-- .../transform_cpp_static_const.patch | 15 +++++++++++++++ mingw-w64-qwt-qt5/transform_h_static_const.patch | 13 +++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-qwt-qt5/transform_cpp_static_const.patch create mode 100644 mingw-w64-qwt-qt5/transform_h_static_const.patch diff --git a/mingw-w64-qwt-qt5/PKGBUILD b/mingw-w64-qwt-qt5/PKGBUILD index 5af1b8b90d..660ebf8cd2 100644 --- a/mingw-w64-qwt-qt5/PKGBUILD +++ b/mingw-w64-qwt-qt5/PKGBUILD @@ -14,9 +14,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt5") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=(!strip staticlibs !buildflags) source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.bz2" \ - "qwtconfig-msys2.pri") + "qwtconfig-msys2.pri" + "transform_cpp_static_const.patch" + "transform_h_static_const.patch") md5sums=('fe4bdd561ef5584924e72e15bcf46b9e' - 'cb2fcbe950fd61056ef13069c824d700') + 'cb2fcbe950fd61056ef13069c824d700' + 'c650213b9223bd75d6e192a280c16030' + '2ef486784fa0232ce845a3ef295a47ae') prepare() { mkdir -p ${pkgdir}${MINGW_PREFIX} @@ -29,6 +33,8 @@ prepare() { cp ${srcdir}/qwtconfig-msys2.pri qwtconfig.pri sed -s "s|%VALUE_QWT_INSTALL_PREFIX%|${PREFIX_WIN}|g" \ -i qwtconfig.pri + patch -p1 -i ${srcdir}/transform_cpp_static_const.patch + patch -p1 -i ${srcdir}/transform_h_static_const.patch } build() { diff --git a/mingw-w64-qwt-qt5/transform_cpp_static_const.patch b/mingw-w64-qwt-qt5/transform_cpp_static_const.patch new file mode 100644 index 0000000000..44228f912d --- /dev/null +++ b/mingw-w64-qwt-qt5/transform_cpp_static_const.patch @@ -0,0 +1,15 @@ +--- qwt-6.1.1/src/qwt_transform.cpp.orig 2014-09-18 17:59:46.405028700 +0300 ++++ qwt-6.1.1/src/qwt_transform.cpp 2014-12-06 18:55:54.227604600 +0300 +@@ -15,10 +15,10 @@ + #endif + + //! Smallest allowed value for logarithmic scales: 1.0e-150 +-QT_STATIC_CONST_IMPL double QwtLogTransform::LogMin = 1.0e-150; ++const double QwtLogTransform::LogMin = 1.0e-150; + + //! Largest allowed value for logarithmic scales: 1.0e150 +-QT_STATIC_CONST_IMPL double QwtLogTransform::LogMax = 1.0e150; ++const double QwtLogTransform::LogMax = 1.0e150; + + //! Constructor + QwtTransform::QwtTransform() diff --git a/mingw-w64-qwt-qt5/transform_h_static_const.patch b/mingw-w64-qwt-qt5/transform_h_static_const.patch new file mode 100644 index 0000000000..258ebd306d --- /dev/null +++ b/mingw-w64-qwt-qt5/transform_h_static_const.patch @@ -0,0 +1,13 @@ +--- qwt-6.1.1/src/qwt_transform.h.orig 2014-09-18 17:59:45.342028700 +0300 ++++ qwt-6.1.1/src/qwt_transform.h 2014-12-06 18:56:12.894672200 +0300 +@@ -107,8 +107,8 @@ + + virtual QwtTransform *copy() const; + +- QT_STATIC_CONST double LogMin; +- QT_STATIC_CONST double LogMax; ++ static const double LogMin; ++ static const double LogMax; + }; + + /*! From fe85514f00262467b5a83ad7e329bf4d54cf33b4 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 6 Dec 2014 17:11:59 +0100 Subject: [PATCH 0096/2060] Revert "virt-viewer: added missing dependency icoutils." This reverts commit 2a6f6c8037aae27ed494593bacf781e056ca12f8. --- mingw-w64-phodav/PKGBUILD | 2 +- mingw-w64-spice-gtk/PKGBUILD | 5 ++--- mingw-w64-virt-viewer-git/PKGBUILD | 7 +++---- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/mingw-w64-phodav/PKGBUILD b/mingw-w64-phodav/PKGBUILD index c2df73df82..ae4ce5411a 100644 --- a/mingw-w64-phodav/PKGBUILD +++ b/mingw-w64-phodav/PKGBUILD @@ -20,7 +20,7 @@ sha256sums=('5d14bfd4d733f680fca6875586308879b78a3c4892bd95a2d8dc4aabd24614b6' prepare() { cd "${srcdir}"/${_realname}-${pkgver} - #patch -p1 -i ${srcdir}/001-win.patch + patch -p1 -i ${srcdir}/001-win.patch autoreconf -isf } diff --git a/mingw-w64-spice-gtk/PKGBUILD b/mingw-w64-spice-gtk/PKGBUILD index 357bdc70a0..9e121776e7 100644 --- a/mingw-w64-spice-gtk/PKGBUILD +++ b/mingw-w64-spice-gtk/PKGBUILD @@ -3,7 +3,7 @@ _realname=spice-gtk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.26 -pkgrel=2 +pkgrel=1 arch=('any') pkgdesc="GTK3 widget for SPICE clients (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gtk3" @@ -13,8 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" "${MINGW_PACKAGE_PREFIX}-libusb" - "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-phodav") + "${MINGW_PACKAGE_PREFIX}-vala") makedepends=("${MINGW_PACKAGE_PREFIX}-spice-protocol") options=('strip' 'staticlibs') license=("GPL 2") diff --git a/mingw-w64-virt-viewer-git/PKGBUILD b/mingw-w64-virt-viewer-git/PKGBUILD index 10f281ef30..4aae550bbf 100644 --- a/mingw-w64-virt-viewer-git/PKGBUILD +++ b/mingw-w64-virt-viewer-git/PKGBUILD @@ -4,16 +4,15 @@ _realname=virt-viewer _base_ver=2.0.0 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=2.0.0.934.824c4b9 -pkgrel=2 +pkgrel=1 arch=('any') pkgdesc="Displaying the graphical console of a virtual machine (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-spice-gtk" "${MINGW_PACKAGE_PREFIX}-gtk-vnc" "${MINGW_PACKAGE_PREFIX}-libxml2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gtk-doc" - "${MINGW_PACKAGE_PREFIX}-icoutils") -ptions=('strip' 'staticlibs') + "${MINGW_PACKAGE_PREFIX}-gtk-doc") +options=('strip' 'staticlibs') license=("LGPL 2.1") url="https://fedorapeople.org/" source=("${_realname}"::"git+git://fedorapeople.org/home/fedora/fidencio/public_git/${_realname}.git") From 7a81e016161c93ae38c665028f2b886834046c05 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 6 Dec 2014 17:20:45 +0100 Subject: [PATCH 0097/2060] virt-viewer: added missing dependency icoutils. --- mingw-w64-virt-viewer-git/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-virt-viewer-git/PKGBUILD b/mingw-w64-virt-viewer-git/PKGBUILD index 4aae550bbf..a4ee7dbceb 100644 --- a/mingw-w64-virt-viewer-git/PKGBUILD +++ b/mingw-w64-virt-viewer-git/PKGBUILD @@ -4,14 +4,15 @@ _realname=virt-viewer _base_ver=2.0.0 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=2.0.0.934.824c4b9 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Displaying the graphical console of a virtual machine (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-spice-gtk" "${MINGW_PACKAGE_PREFIX}-gtk-vnc" "${MINGW_PACKAGE_PREFIX}-libxml2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gtk-doc") + "${MINGW_PACKAGE_PREFIX}-gtk-doc" + "${MINGW_PACKAGE_PREFIX}-icoutils") options=('strip' 'staticlibs') license=("LGPL 2.1") url="https://fedorapeople.org/" From 17772aea645448e532c1b9efb9d78195a24d8478 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 6 Dec 2014 17:49:10 +0100 Subject: [PATCH 0098/2060] usbredir: new package. --- mingw-w64-usbredir/PKGBUILD | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 mingw-w64-usbredir/PKGBUILD diff --git a/mingw-w64-usbredir/PKGBUILD b/mingw-w64-usbredir/PKGBUILD new file mode 100644 index 0000000000..b18f3621f0 --- /dev/null +++ b/mingw-w64-usbredir/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Andrea Zagli + +_realname=usbredir +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.7 +pkgrel=1 +arch=('any') +pkgdesc="Parser for the usbredir protocol (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-libusb") +options=('strip' 'staticlibs') +license=("GPL 2") +url="http://www.spice-space.org" +source=(http://www.spice-space.org/download/usbredir/${_realname}-$pkgver.tar.bz2) +sha256sums=('0a63a0712b5dc62be9cca44f97270fea5d1ec1fe7dde0c11dc74a01c8e2006aa') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From ad62ce09b09b062a247afdd26c711ee29d4ff953 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 6 Dec 2014 20:37:32 +0300 Subject: [PATCH 0099/2060] poppler: Update to 0.29.0 --- mingw-w64-poppler/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index 3675894c87..7d18e837fa 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -2,7 +2,7 @@ _realname=poppler pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.28.1 +pkgver=0.29.0 pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') @@ -28,7 +28,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" options=('strip' 'staticlibs') source=("http://poppler.freedesktop.org/poppler-${pkgver}.tar.xz" "give-cc-to-gir-scanner.mingw.patch") -md5sums=('28de4b9f698296e11dff45a5cce1aa93' +md5sums=('7a5d87b7f62db636cc59f73bbd240811' '727c1b414987f6ee2ba841d9db57a967') prepare() { From 2a18de95bda97a611a7a5f164f419e19893849dc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 6 Dec 2014 21:37:05 +0300 Subject: [PATCH 0100/2060] meld3: Update to 3.12.2 --- mingw-w64-meld3/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-meld3/PKGBUILD b/mingw-w64-meld3/PKGBUILD index e3abf30b11..6b9303dd75 100644 --- a/mingw-w64-meld3/PKGBUILD +++ b/mingw-w64-meld3/PKGBUILD @@ -2,8 +2,8 @@ _realname=meld pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.12.0 -pkgrel=2 +pkgver=3.12.2 +pkgrel=1 pkgdesc="Visual diff and merge tool (mingw-w64)" arch=('any') url="http://meldmerge.org/" @@ -26,7 +26,7 @@ install=meld-${CARCH}.install source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz '0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch' "0002-build-exe.patch") -md5sums=('9dbdb3306dc5d2415baeae3892bcec8e' +md5sums=('a11c4abf923d136e410fa9e8217c0bba' '57d46e2eacc34e8d22f63a59b6297253' 'c4770167f70e061c1f94d8c3fa3e7150') From b90f113312ea4d7aa9822fc9a982e65847aae40a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 6 Dec 2014 21:37:37 +0300 Subject: [PATCH 0101/2060] sqlite3: Update to 3.8.7.3 --- mingw-w64-sqlite3/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index f7de9b5a3a..9cb4b85ba0 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -2,8 +2,8 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3080702 -pkgver=3.8.7.2 +_amalgamationver=3080703 +pkgver=3.8.7.3 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ url="http://www.sqlite.org" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-readline") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tcl") source=("http://www.sqlite.org/2014/sqlite-autoconf-$_amalgamationver.tar.gz") -sha1sums=('175283383d010709f76fdd13cb0c8c3c329a1c67') +sha1sums=('5cbe9aa4af1b32787045a251dba6debee3f061c0') options=('!strip' 'staticlibs') build() { From c7b23af30de1c35292656e34ab6fed5a32616519 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 6 Dec 2014 20:50:55 +0100 Subject: [PATCH 0102/2060] spice-gtk: added some new dependencies. --- mingw-w64-spice-gtk/PKGBUILD | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mingw-w64-spice-gtk/PKGBUILD b/mingw-w64-spice-gtk/PKGBUILD index 9e121776e7..f65aadbf78 100644 --- a/mingw-w64-spice-gtk/PKGBUILD +++ b/mingw-w64-spice-gtk/PKGBUILD @@ -3,7 +3,7 @@ _realname=spice-gtk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.26 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="GTK3 widget for SPICE clients (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gtk3" @@ -12,8 +12,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-pixman" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" - "${MINGW_PACKAGE_PREFIX}-libusb" - "${MINGW_PACKAGE_PREFIX}-vala") + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-usbredir" + "${MINGW_PACKAGE_PREFIX}-dbus-glib" + "${MINGW_PACKAGE_PREFIX}-phodav") makedepends=("${MINGW_PACKAGE_PREFIX}-spice-protocol") options=('strip' 'staticlibs') license=("GPL 2") From da337b1694bc59045339d4cdac2758c2441acfb1 Mon Sep 17 00:00:00 2001 From: martell Date: Mon, 8 Dec 2014 00:58:56 +0000 Subject: [PATCH 0103/2060] silver-searcher: new package (wip) --- mingw-w64-ag/PKGBUILD | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 mingw-w64-ag/PKGBUILD diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD new file mode 100644 index 0000000000..2073104f9f --- /dev/null +++ b/mingw-w64-ag/PKGBUILD @@ -0,0 +1,38 @@ +# Maintainer: Martell Malone + +_realname=ag +_longname=the_silver_searcher +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.27.0 +pkgrel=1 +pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" +arch=('any') +url="http://geoff.greer.fm/ag" +license=("Apache") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-pcre") +options=('strip' 'staticlibs') +source=(http://geoff.greer.fm/ag/releases/$_longname-$pkgver.tar.gz) +md5sums=('SKIP') + +prepare() { + cd "${srcdir}/${_longname}-${pkgver}" + autoreconf -fi +} + +build() { + + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ../${_longname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install +} From 5e6ca64cabf966220e9e108129e69f147a2f53bc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 8 Dec 2014 08:14:45 +0300 Subject: [PATCH 0104/2060] osgworks-svn: Update to revision 565 --- mingw-w64-osgworks-svn/PKGBUILD | 5 ++--- mingw-w64-osgworks-svn/osg-3.3.x.patch | 27 ++------------------------ 2 files changed, 4 insertions(+), 28 deletions(-) diff --git a/mingw-w64-osgworks-svn/PKGBUILD b/mingw-w64-osgworks-svn/PKGBUILD index 4100c0026a..ec85d3b417 100644 --- a/mingw-w64-osgworks-svn/PKGBUILD +++ b/mingw-w64-osgworks-svn/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=osgworks - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-svn") _ver_base=3.1.0 -pkgver=3.1.0.559 +pkgver=3.1.0.565 pkgrel=1 pkgdesc="A toolkit for OpenSceneGraph applications. (mingw-w64)" arch=('any') @@ -17,7 +16,7 @@ source=("${_realname}"::"svn+http://osgworks.googlecode.com/svn/trunk/" "osg-3.3.x.patch" "mingw-fpc-libs.patch") md5sums=('SKIP' - 'cc8a517171bcd4c9a080c81a6bd757f0' + 'c3100031c49f7710b910069b26241686' 'c5b52fc01efde31fc87d8ed0450bdd8f') pkgver() { diff --git a/mingw-w64-osgworks-svn/osg-3.3.x.patch b/mingw-w64-osgworks-svn/osg-3.3.x.patch index 0dd31c2be6..d541974208 100644 --- a/mingw-w64-osgworks-svn/osg-3.3.x.patch +++ b/mingw-w64-osgworks-svn/osg-3.3.x.patch @@ -62,29 +62,6 @@ diff -Naur osgworks/include/osgwQuery/QueryAPI.h osgworks-patched/include/osgwQu namespace osgwQuery { -diff -Naur osgworks/include/osgwTools/Version.h.in osgworks-patched/include/osgwTools/Version.h.in ---- osgworks/include/osgwTools/Version.h.in 2014-05-23 22:37:01.124800000 +0400 -+++ osgworks-patched/include/osgwTools/Version.h.in 2014-06-07 18:50:18.179800000 +0400 -@@ -9,6 +9,7 @@ - #define __${_projectNameUpper}_CMAKE_GENERATED_VERSION_H__ 1 - - -+#include "VersionOSG.h" - - /** \defgroup Version Version utilities */ - /*@{*/ -diff -Naur osgworks/include/osgwTools/VersionOSG.h osgworks-patched/include/osgwTools/VersionOSG.h ---- osgworks/include/osgwTools/VersionOSG.h 2014-05-23 22:37:01.249600000 +0400 -+++ osgworks-patched/include/osgwTools/VersionOSG.h 2014-06-07 00:33:01.332200000 +0400 -@@ -22,7 +22,7 @@ - #define __OSGWTOOLS_VERSION_OSG_H__ 1 - - -- -+#include - /** \addtogroup Version */ - /*@{*/ - diff -Naur osgworks/src/osgwMx/CameraUpdateCallback.cpp osgworks-patched/src/osgwMx/CameraUpdateCallback.cpp --- osgworks/src/osgwMx/CameraUpdateCallback.cpp 2014-05-23 22:37:02.326000000 +0400 +++ osgworks-patched/src/osgwMx/CameraUpdateCallback.cpp 2014-06-07 18:43:57.151200000 +0400 @@ -113,18 +90,18 @@ diff -Naur osgworks/src/osgwTools/CountsVisitor.cpp osgworks-patched/src/osgwToo --- osgworks/src/osgwTools/CountsVisitor.cpp 2014-05-23 22:37:02.076400000 +0400 +++ osgworks-patched/src/osgwTools/CountsVisitor.cpp 2014-06-07 16:22:50.522800000 +0400 @@ -608,10 +608,10 @@ - { pushStateSet( node.getStateSet() ); + /* - osg::Group* grp = node.getParent(0); + osg::Group* grp = node.getParent(0)->asGroup(); osg::Group* gPar = NULL; if (grp) - gPar = grp->getParent(0); + gPar = grp->getParent(0)->asGroup(); + */ apply( node.getStateSet() ); - _pagedLods++; diff -Naur osgworks/src/osgwTools/InsertRemove.cpp osgworks-patched/src/osgwTools/InsertRemove.cpp --- osgworks/src/osgwTools/InsertRemove.cpp 2014-05-23 22:37:02.029600000 +0400 +++ osgworks-patched/src/osgwTools/InsertRemove.cpp 2014-06-07 16:27:29.380400000 +0400 From 6ceb31352ee2eb4aee0c75ce8d2e707f747206a7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 8 Dec 2014 08:15:40 +0300 Subject: [PATCH 0105/2060] osgocean-svn: Rebuild with latest OSG and osgWorks --- mingw-w64-osgocean-svn/PKGBUILD | 6 ++---- mingw-w64-osgocean-svn/osg-3.3.x.patch | 12 ++++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/mingw-w64-osgocean-svn/PKGBUILD b/mingw-w64-osgocean-svn/PKGBUILD index 40a6291ba9..caf2177600 100644 --- a/mingw-w64-osgocean-svn/PKGBUILD +++ b/mingw-w64-osgocean-svn/PKGBUILD @@ -1,11 +1,10 @@ # Maintainer: Alexey Pavlov _realname=osgocean - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-svn") _ver_base=1.0.1 pkgver=r258 -pkgrel=1 +pkgrel=2 pkgdesc="An ocean rendering nodekit for OpenSceneGraph (mingw-w64)" arch=('any') license=('LGPL') @@ -20,7 +19,7 @@ source=("${_realname}"::"svn+http://osgocean.googlecode.com/svn/trunk/" md5sums=('SKIP' 'da273a112787e7911084d846082ff276' 'ed27b3a9f14dbcc1bcb1ae0043cfe8ae' - 'ef0ec1d2947164acdb4931322ef79351') + '96c81e665546f5c02cee8ce68710a196') noextract=( 'osgOcean-Resources-1.0.1.rar' ) pkgver() { @@ -99,4 +98,3 @@ package_mingw-w64-x86_64-osgocean-svn() { package_mingw-w64-x86_64-osgocean-debug-svn() { package_debug } - diff --git a/mingw-w64-osgocean-svn/osg-3.3.x.patch b/mingw-w64-osgocean-svn/osg-3.3.x.patch index f2ef3ed562..fed230bb0e 100644 --- a/mingw-w64-osgocean-svn/osg-3.3.x.patch +++ b/mingw-w64-osgocean-svn/osg-3.3.x.patch @@ -62,3 +62,15 @@ diff -Naur osgocean/src/osgOcean/MipmapGeometryVBO.cpp osgocean-patched/src/osgO { osg::BoundingBox bb; +--- osgocean/src/osgOcean/OceanScene.cpp.orig 2014-12-08 08:02:04.720600000 +0300 ++++ osgocean/src/osgOcean/OceanScene.cpp 2014-12-08 08:02:29.867800000 +0300 +@@ -881,7 +881,8 @@ + + bool surfaceVisible = _oceanSurface->isVisible(*cv, eyeAboveWater); + +- (*_oceanSurface->getCullCallback())(_oceanSurface.get(), &nv); ++ osg::Callback* callback = _oceanSurface->getCullCallback(); ++ if (callback) callback->run(_oceanSurface.get(), &nv); + + preRenderCull(*cv, eyeAboveWater, surfaceVisible); // reflections/refractions + From ad7c53dbea1b81413abb0be1091ae0913f3c2dda Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 8 Dec 2014 10:18:03 +0300 Subject: [PATCH 0106/2060] osgbullet-svn: New package. --- mingw-w64-osgbullet-svn/PKGBUILD | 98 ++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 mingw-w64-osgbullet-svn/PKGBUILD diff --git a/mingw-w64-osgbullet-svn/PKGBUILD b/mingw-w64-osgbullet-svn/PKGBUILD new file mode 100644 index 0000000000..cbec28966f --- /dev/null +++ b/mingw-w64-osgbullet-svn/PKGBUILD @@ -0,0 +1,98 @@ +# Maintainer: Alexey Pavlov + +_realname=osgbullet +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-svn") +_ver_base=1.0.1 +pkgver=r385 +pkgrel=1 +pkgdesc="Bullet physics and OpenSceneGraph integration (mingw-w64)" +arch=('any') +license=('LGPL') +url="https://code.google.com/p/osgbullet/" +depends=("${MINGW_PACKAGE_PREFIX}-bullet" + "${MINGW_PACKAGE_PREFIX}-OpenSceneGraph" + "${MINGW_PACKAGE_PREFIX}-osgworks") +makedepends=("subversion" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-OpenSceneGraph" + "${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug" + "${MINGW_PACKAGE_PREFIX}-osgworks" + "${MINGW_PACKAGE_PREFIX}-osgworks-debug") +options=(!strip staticlibs !buildflags) +source=("${_realname}"::"svn+http://osgbullet.googlecode.com/svn/trunk/") +md5sums=('SKIP') +noextract=( 'osgOcean-Resources-1.0.1.rar' ) + +pkgver() { + cd "$srcdir/$_realname" + local ver="$(svnversion)" + printf "r%s" "${ver//[[:alpha:]]}" +} + +prepare() { + cd "$srcdir/${_realname}" +} + +build() { + plain "No build step" +} + +package_release() { + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") + + [[ -d ${srcdir}/build-release ]] && rm -rf ${srcdir}/build-release + mkdir -p ${srcdir}/build-release && cd ${srcdir}/build-release + + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DosgWorks_DIR=${MINGW_PREFIX}/lib \ + ../${_realname} + + make + make install +} + +package_debug() { + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn=$pkgver" "${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug" "${MINGW_PACKAGE_PREFIX}-osgworks-debug") + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") + + [[ -d ${srcdir}/build-debug ]] && rm -rf ${srcdir}/build-debug + mkdir -p ${srcdir}/build-debug && cd ${srcdir}/build-debug + + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Debug \ + -DosgWorks_DIR=${MINGW_PREFIX}/lib \ + ../${_realname} + + make + make install + + rm -rf ${pkgdir}${MINGW_PREFIX}/include + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/flagpoll + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/*.cmake + rm -rf ${pkgdir}${MINGW_PREFIX}/share/osgBullet/data + rm -rf ${pkgdir}${MINGW_PREFIX}/share/osgBullet/extra +} + +package_mingw-w64-i686-osgbullet-svn() { + package_release +} + +package_mingw-w64-i686-osgbullet-debug-svn() { + package_debug +} + +package_mingw-w64-x86_64-osgbullet-svn() { + package_release +} + +package_mingw-w64-x86_64-osgbullet-debug-svn() { + package_debug +} From 4a9e5d5108360b2557cddf7c49a520eb22416bb9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 8 Dec 2014 11:30:38 +0300 Subject: [PATCH 0107/2060] freeglut: Update to 3.0.0-rc1 --- mingw-w64-freeglut/PKGBUILD | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/mingw-w64-freeglut/PKGBUILD b/mingw-w64-freeglut/PKGBUILD index a0b3bf773b..c250dbb057 100644 --- a/mingw-w64-freeglut/PKGBUILD +++ b/mingw-w64-freeglut/PKGBUILD @@ -2,34 +2,34 @@ _realname=freeglut pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.8.1 -pkgrel=4 -pkgdesc="freeglut allows the user to create and manage windows containing OpenGL contexts (mingw32-w64)" +_pre=rc1 +_ver=3.0.0 +pkgver=${_ver}${_pre} +pkgrel=1 +pkgdesc="Freeglut allows the user to create and manage windows containing OpenGL contexts (mingw32-w64)" arch=('any') url="http://freeglut.sourceforge.net/" license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' '!libtool' 'staticlibs') -source=("http://downloads.sourceforge.net/freeglut/freeglut-${pkgver}.tar.gz") -md5sums=('918ffbddcffbac83c218bc52355b6d5a') +source=("http://downloads.sourceforge.net/freeglut/${_realname}-${_ver}-${_pre}.tar.gz") +md5sums=('9679f19e5d9fd211c904698be0cfec2b') build() { rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ../${_realname}-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ - --enable-shared \ - --enable-static \ - --without-x + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + ../${_realname}-${_ver}-${_pre} + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make install } From 6365d3eba42c72a756928bcb7bf033ecf7394ef2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 8 Dec 2014 11:50:57 +0300 Subject: [PATCH 0108/2060] bullet: Rebuild with new freeglut. --- mingw-w64-bullet/PKGBUILD | 27 +++----- .../promit-bulletcollisions.patch | 63 +++++++++++++++++++ 2 files changed, 72 insertions(+), 18 deletions(-) create mode 100644 mingw-w64-bullet/promit-bulletcollisions.patch diff --git a/mingw-w64-bullet/PKGBUILD b/mingw-w64-bullet/PKGBUILD index 5480b1e61d..899687457e 100644 --- a/mingw-w64-bullet/PKGBUILD +++ b/mingw-w64-bullet/PKGBUILD @@ -3,29 +3,33 @@ _realname=bullet pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") pkgver=2.83 -pkgrel=1 +pkgrel=2 pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation (mingw-w64)" arch=('any') url="http://www.bulletphysics.com/Bullet/" license=('custom:zlib') options=('!strip' 'staticlibs') -#optdepends=('bullet-docs: documentation') -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-freeglut") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-freeglut") source=(#"http://bullet.googlecode.com/files/bullet-${pkgver}-${_rev}.tgz" https://github.com/bulletphysics/bullet3/archive/Bullet-${pkgver}-alpha.tar.gz remove-absent-demo.patch install-pkgconfig-files-mingw.patch - cast-error.patch) + cast-error.patch + promit-bulletcollisions.patch) md5sums=('f459bb08387eb5696467109f44c1d4fd' '70eda7f29f87cc3b65b58cb417e14201' '2c243be67782ceb32a96aad61e668e83' - '8db1300cf01a0fb244cb4b3ea5eb102e') + '8db1300cf01a0fb244cb4b3ea5eb102e' + '1340ed3f23915dcaf8e29d0eedc5e8c3') prepare () { cd ${srcdir}/bullet3-Bullet-${pkgver}-alpha patch -p1 -i ${srcdir}/remove-absent-demo.patch patch -p1 -i ${srcdir}/install-pkgconfig-files-mingw.patch patch -p1 -i ${srcdir}/cast-error.patch + patch -p0 -i ${srcdir}/promit-bulletcollisions.patch } build() { @@ -103,16 +107,3 @@ package_mingw-w64-x86_64-bullet() { package_mingw-w64-x86_64-bullet-debug() { build_debug } - -package() { - cd "${srcdir}/bullet-${pkgver}-${_rev}/build-${MINGW_CHOST}" - make install # DESTDIR="${pkgdir}${MINGW_PREFIX}" - install -d "${pkgdir}${MINGW_PREFIX}"/bin - mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/bullet.pc -} diff --git a/mingw-w64-bullet/promit-bulletcollisions.patch b/mingw-w64-bullet/promit-bulletcollisions.patch new file mode 100644 index 0000000000..ff277d17fd --- /dev/null +++ b/mingw-w64-bullet/promit-bulletcollisions.patch @@ -0,0 +1,63 @@ +Index: src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp +=================================================================== +--- src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp (revision 45) ++++ src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp (working copy) +@@ -22,6 +22,8 @@ + ContactDestroyedCallback gContactDestroyedCallback = 0; + ContactProcessedCallback gContactProcessedCallback = 0; + ++CollisionStartedCallback gCollisionStartedCallback = 0; ++CollisionEndedCallback gCollisionEndedCallback = 0; + + + btPersistentManifold::btPersistentManifold() +Index: src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h +=================================================================== +--- src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h (revision 45) ++++ src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h (working copy) +@@ -32,6 +32,11 @@ + extern ContactDestroyedCallback gContactDestroyedCallback; + extern ContactProcessedCallback gContactProcessedCallback; + ++typedef void (*CollisionStartedCallback)(class btPersistentManifold* manifold); ++typedef void (*CollisionEndedCallback)(class btPersistentManifold* manifold); ++extern CollisionStartedCallback gCollisionStartedCallback; ++extern CollisionEndedCallback gCollisionEndedCallback; ++ + //the enum starts at 1024 to avoid type conflicts with btTypedConstraint + enum btContactManifoldTypes + { +@@ -159,6 +164,11 @@ + + btAssert(m_pointCache[lastUsedIndex].m_userPersistentData==0); + m_cachedPoints--; ++ ++ if(gCollisionEndedCallback && m_cachedPoints == 0) ++ { ++ gCollisionEndedCallback(this); ++ } + } + void replaceContactPoint(const btManifoldPoint& newPoint,int insertIndex) + { +Index: src/BulletCollision/CollisionDispatch/btManifoldResult.cpp +=================================================================== +--- src/BulletCollision/CollisionDispatch/btManifoldResult.cpp (revision 45) ++++ src/BulletCollision/CollisionDispatch/btManifoldResult.cpp (working copy) +@@ -68,6 +68,7 @@ + // if (depth > m_manifoldPtr->getContactProcessingThreshold()) + return; + ++ bool isNewCollision = m_manifoldPtr->getNumContacts() == 0; + bool isSwapped = m_manifoldPtr->getBody0() != m_body0Wrap->getCollisionObject(); + + btVector3 pointA = pointInWorld + normalOnBInWorld * depth; +@@ -131,5 +132,9 @@ + (*gContactAddedCallback)(m_manifoldPtr->getContactPoint(insertIndex),obj0,newPt.m_partId0,newPt.m_index0,obj1,newPt.m_partId1,newPt.m_index1); + } + ++ if (gCollisionStartedCallback && isNewCollision) ++ { ++ gCollisionStartedCallback(m_manifoldPtr); ++ } + } + From ea2185184526a824215fc600b602d8385f6995de Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 8 Dec 2014 12:21:18 +0300 Subject: [PATCH 0109/2060] freetype: Update to 2.5.4 --- mingw-w64-freetype/PKGBUILD | 9 +++------ mingw-w64-freetype/freetype-unquote-pc.patch | 14 -------------- 2 files changed, 3 insertions(+), 20 deletions(-) delete mode 100644 mingw-w64-freetype/freetype-unquote-pc.patch diff --git a/mingw-w64-freetype/PKGBUILD b/mingw-w64-freetype/PKGBUILD index c03517dea4..4adfee557a 100644 --- a/mingw-w64-freetype/PKGBUILD +++ b/mingw-w64-freetype/PKGBUILD @@ -2,8 +2,8 @@ _realname=freetype pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.5.3 -pkgrel=3 +pkgver=2.5.4 +pkgrel=1 pkgdesc="TrueType font rendering library (mingw-w64)" arch=('any') url="http://www.freetype.org/" @@ -19,20 +19,17 @@ source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver} freetype-2.2.1-enable-valid.patch freetype-2.5.1-enable-spr.patch freetype-2.5.1-enable-sph.patch - freetype-unquote-pc.patch mingw-config.patch) -md5sums=('d6b60f06bfc046e43ab2a6cbfd171d65' +md5sums=('438585445a2f1f71c77590155fd96616' '214119610444c9b02766ccee5e220680' '80a14cce234f3f190cd936ca9060c398' '0636ba2ff074201e2ea5c47ac408bc63' - '7a041aaef5240c70d2bfc02c74740a1b' '9d62583e770c59af1c6bd19db89e7cf3') prepare() { cd "${srcdir}/freetype-${pkgver}" patch -p1 -i "${srcdir}/freetype-2.2.1-enable-valid.patch" patch -p1 -i "${srcdir}/freetype-2.5.1-enable-spr.patch" - patch -p1 -i "${srcdir}/freetype-unquote-pc.patch" patch -p1 -i "${srcdir}/mingw-config.patch" # Disabled for now due to resistance diff --git a/mingw-w64-freetype/freetype-unquote-pc.patch b/mingw-w64-freetype/freetype-unquote-pc.patch deleted file mode 100644 index 34ccd5d853..0000000000 --- a/mingw-w64-freetype/freetype-unquote-pc.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- freetype-2.5.3/builds/unix/freetype2.in.orig 2014-09-19 11:48:49.054400000 +0400 -+++ freetype-2.5.3/builds/unix/freetype2.in 2014-09-19 11:49:09.599600000 +0400 -@@ -1,7 +1,7 @@ --prefix="%prefix%" --exec_prefix="%exec_prefix%" --libdir="%libdir%" --includedir="%includedir%/freetype2" -+prefix=%prefix% -+exec_prefix=%exec_prefix% -+libdir=%libdir% -+includedir=%includedir%/freetype2 - - Name: FreeType 2 - URL: http://freetype.org From 082440dc7b2ee67f5db632ba4c978b57b18ea4ae Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 09:51:54 +0300 Subject: [PATCH 0110/2060] openblas: Update to 0.2.13 --- mingw-w64-openblas/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-openblas/PKGBUILD b/mingw-w64-openblas/PKGBUILD index e1fdc7ee1d..76bb8e4c3c 100644 --- a/mingw-w64-openblas/PKGBUILD +++ b/mingw-w64-openblas/PKGBUILD @@ -3,8 +3,8 @@ _realname=OpenBLAS pkgname="${MINGW_PACKAGE_PREFIX}-openblas" -pkgver=0.2.11 -pkgrel=2 +pkgver=0.2.13 +pkgrel=1 pkgdesc="An optimized BLAS library based on GotoBLAS2 1.13 BSD, providing optimized blas, lapack, and cblas. (mingw-w64)" arch=('any') url="http://xianyi.github.com/OpenBLAS/" @@ -22,7 +22,7 @@ makedepends=("perl" options=('!buildflags' '!makeflags' 'strip' 'staticlibs') source=(${_realname}-v${pkgver}.tar.gz::http://github.com/xianyi/OpenBLAS/archive/v${pkgver}.tar.gz) install=(${_realname}.install) -md5sums=('c456f3c5e84c3ab69ef89b22e616627a') +md5sums=('bba7b37b5a5b6674fda91dcb2faab145') build() { cd "$srcdir/$_realname-$pkgver" From 03d155106b9b895f302c7ad04b18046b51536699 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 20:09:27 +0300 Subject: [PATCH 0111/2060] celt: Rebuild. --- mingw-w64-celt/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-celt/PKGBUILD b/mingw-w64-celt/PKGBUILD index cccb61c2db..49a69bf1d1 100644 --- a/mingw-w64-celt/PKGBUILD +++ b/mingw-w64-celt/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=celt - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.11.3 -pkgrel=1 +pkgrel=2 pkgdesc="Low-latency audio communication codec (mingw-w64)" arch=('any') url="http://www.celt-codec.org/" @@ -27,10 +26,11 @@ build() { --target=${MINGW_CHOST} \ --enable-custom-modes \ --disable-static - make + + make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install } From 01c11a20425872430a1d48e86037ccf8c37b9bfb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 20:10:06 +0300 Subject: [PATCH 0112/2060] cfitsio: Update to 3.37 --- mingw-w64-cfitsio/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-cfitsio/PKGBUILD b/mingw-w64-cfitsio/PKGBUILD index 92d9a6c2b5..f64afeaa36 100644 --- a/mingw-w64-cfitsio/PKGBUILD +++ b/mingw-w64-cfitsio/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=cfitsio - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.360 +pkgver=3.370 pkgrel=1 pkgdesc="A library of C and Fortran subroutines for reading and writing data files in FITS (Flexible Image Transport System) data format (mingw-w64)" arch=('any') @@ -13,8 +12,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' 'staticlibs') source=("ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/${_realname}${pkgver/./}.tar.gz" - mingw-shared.patch) -md5sums=('833032c9ecbf1d460aca0360a26958db' + mingw-shared.patch) +md5sums=('abebd2d02ba5b0503c633581e3bfa116' '3f1e57458f0a0894fe66da3444bd35f1') prepare() { @@ -32,7 +31,8 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} - make shared + + make shared } check() { From e307fecea074dfe1ccee7e9bd3f782c6edbfc1f0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 20:19:38 +0300 Subject: [PATCH 0113/2060] cgal: Update to 4.5 --- mingw-w64-cgal/PKGBUILD | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/mingw-w64-cgal/PKGBUILD b/mingw-w64-cgal/PKGBUILD index 7124599444..bed60c3386 100644 --- a/mingw-w64-cgal/PKGBUILD +++ b/mingw-w64-cgal/PKGBUILD @@ -1,32 +1,30 @@ # Maintainer: Alexey Pavlov _realname=cgal - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.4 +pkgver=4.5 pkgrel=1 -_pkgid=33526 +_pkgid=34139 pkgdesc="Computational Geometry Algorithms Library (mingw-w64)" arch=('any') url="http://www.cgal.org" license=("LGPL, GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-eigen3" - "${MINGW_PACKAGE_PREFIX}-boost" - ) + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-eigen3" + "${MINGW_PACKAGE_PREFIX}-boost") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-mpfr" - "${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-gmp") + "${MINGW_PACKAGE_PREFIX}-mpfr" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-gmp") optdepends=("${MINGW_PACKAGE_PREFIX}-eigen3: for some packages, see the CGAL manual" #"${MINGW_PACKAGE_PREFIX}qt4: for CGAL_Qt4" ) options=('strip' 'staticlibs') source=(http://gforge.inria.fr/frs/download.php/$_pkgid/CGAL-$pkgver.tar.xz cgal-4.4-mingw.patch) -sha1sums=('c3916db35dabc8c053b262e343049d90b90150c2' +sha1sums=('97c60d3b12727b4fbbcce45a0965941bb1d60cbe' '1d2b06fe6faa0cb1ee748fa14f2de92f9e9e091f') prepare() { @@ -37,13 +35,13 @@ prepare() { build() { mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ ../CGAL-${pkgver} - + make } From 41183b0a0ae2f6f31dc011f9931802475a579e58 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 20:28:39 +0300 Subject: [PATCH 0114/2060] check: Update to 0.9.14 --- mingw-w64-check/PKGBUILD | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mingw-w64-check/PKGBUILD b/mingw-w64-check/PKGBUILD index 8e8747d151..b8e6c38832 100644 --- a/mingw-w64-check/PKGBUILD +++ b/mingw-w64-check/PKGBUILD @@ -2,7 +2,7 @@ _realname=check pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.13 +pkgver=0.9.14 pkgrel=1 pkgdesc="A unit testing framework for C (mingw-w64)" arch=('any') @@ -11,18 +11,20 @@ license=("LGPL") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' 'staticlibs') source=(http://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-$pkgver.tar.gz) -md5sums=('95530868f81a9496b2518fd2b713008a') +md5sums=('38263d115d784c17aa3b959ce94be8b8') build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ../${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --disable-static - make + --enable-static \ + --enable-shared + + make } package() { From e7abf8887c7c22675534aced775bbf09c0523e1c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 20:38:35 +0300 Subject: [PATCH 0115/2060] cppunit: Rebuild --- mingw-w64-cppunit/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cppunit/PKGBUILD b/mingw-w64-cppunit/PKGBUILD index 10b5c1e427..d297e1e34c 100644 --- a/mingw-w64-cppunit/PKGBUILD +++ b/mingw-w64-cppunit/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=cppunit - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.13.2 -pkgrel=2 +pkgrel=3 pkgdesc="A C++ unit testing framework (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/cppunit" @@ -23,6 +22,7 @@ build() { --host=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } From 804619654b50b680e7720a6041912ef3c8a345ff Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 20:46:58 +0300 Subject: [PATCH 0116/2060] crypto++: Rebuild. --- mingw-w64-crypto++/PKGBUILD | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mingw-w64-crypto++/PKGBUILD b/mingw-w64-crypto++/PKGBUILD index c89e71795f..e0e9ac10bf 100644 --- a/mingw-w64-crypto++/PKGBUILD +++ b/mingw-w64-crypto++/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=crypto++ - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.6.2 -pkgrel=1 +pkgrel=2 pkgdesc="Crypto++ Library is a free C++ class library of cryptographic schemes." arch=('any') url="http://www.cryptopp.com/" @@ -37,13 +36,13 @@ package() { cp *.h ${pkgdir}${MINGW_PREFIX}/include/cryptopp mkdir -p ${pkgdir}${MINGW_PREFIX}/lib - + install -d ${pkgdir}${MINGW_PREFIX}/{bin,lib/pkgconfig,include/cryptopp} install -m644 *.h ${pkgdir}${MINGW_PREFIX}/include/cryptopp/ install -m644 cryptopp.dll "${pkgdir}${MINGW_PREFIX}/bin/cryptopp.dll" install -m644 *.a "${pkgdir}${MINGW_PREFIX}/lib/" install -m644 ${srcdir}/libcrypto++.pc "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libcrypto++.pc" install -D -m644 License.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" - + sed -e "s|/usr|${MINGW_PREFIX}|g" -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libcrypto++.pc } From 3a1bf73511b470d93ab24e7dab4e0817c360614d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 20:58:39 +0300 Subject: [PATCH 0117/2060] d-feet: Update to 0.3.9 --- mingw-w64-d-feet/PKGBUILD | 44 +++++++++++++++++----------- mingw-w64-d-feet/localedir-fix.patch | 33 +++++++++++++++++++++ 2 files changed, 60 insertions(+), 17 deletions(-) create mode 100644 mingw-w64-d-feet/localedir-fix.patch diff --git a/mingw-w64-d-feet/PKGBUILD b/mingw-w64-d-feet/PKGBUILD index 239ed5af53..38207ce9b3 100644 --- a/mingw-w64-d-feet/PKGBUILD +++ b/mingw-w64-d-feet/PKGBUILD @@ -2,40 +2,50 @@ # Based on Arch Linux package maintained by : Balló György _realname=d-feet - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.3.8 -pkgrel=2 +pkgver=0.3.9 +pkgrel=1 pkgdesc="D-Bus debugger for GNOME (mingw-w64)" arch=('any') url="https://wiki.gnome.org/Apps/DFeet" license=('GPL') -depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-python3-gobject" "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme") +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-python3-gobject" + "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme") makedepends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools" "intltool" "itstool") install=d-feet-${CARCH}.install -source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) -sha256sums=('e8423feb18fdff9b1465bf8442b78994ba13c12f8fa3b08e6a2f05768b4feee5') +source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz + localedir-fix.patch) +sha256sums=('6df917fc1c2ef43217fbeea94dc12ecfc2d136cac4c84dac2c89f03dfbca7953' + 'fc75a1e0fafac35a0c94a6c0fff6d0a28c7d5d6ac80ad4ca89399945feafb6c7') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i ${srcdir}/localedir-fix.patch + autoreconf -fi +} build() { - cd "${srcdir}/${_realname}-${pkgver}" - [ -d build-${CARCH} ] && rm -rf build-${CARCH} - mkdir build-${CARCH} - cd build-${CARCH} + [ -d "${srcdir}/build-${CARCH}" ] && rm -rf ${srcdir}/build-${CARCH} + mkdir -p ${srcdir}/build-${CARCH} + cd ${srcdir}/build-${CARCH} + PYTHON=${MINGW_PREFIX}/bin/python3 \ - ../configure --prefix=${MINGW_PREFIX} \ - --sysconfdir="${pkgdir}${MINGW_PREFIX}/etc" \ - --localstatedir="${pkgdir}${MINGW_PREFIX}/var" \ - --disable-tests + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --sysconfdir="${pkgdir}${MINGW_PREFIX}/etc" \ + --localstatedir="${pkgdir}${MINGW_PREFIX}/var" \ + --disable-tests + make } check() { - cd ${_realname}-${pkgver} - # Needs X + cd build-${CARCH} #make check } package() { - cd "${srcdir}/${_realname}-${pkgver}/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" make DESTDIR="$pkgdir" install } diff --git a/mingw-w64-d-feet/localedir-fix.patch b/mingw-w64-d-feet/localedir-fix.patch new file mode 100644 index 0000000000..76a3f230e2 --- /dev/null +++ b/mingw-w64-d-feet/localedir-fix.patch @@ -0,0 +1,33 @@ +=== modified file 'Makefile.in.in' +--- a/po/Makefile.in.in 2012-01-18 16:37:06 +0000 ++++ b/po/Makefile.in.in 2013-05-12 17:12:40 +0000 +@@ -33,8 +33,7 @@ + datadir = @datadir@ + datarootdir = @datarootdir@ + libdir = @libdir@ +-DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +107,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +141,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot From 0ec6f5a0735a8a939d811bb742fb22f4d0e90e35 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 21:04:49 +0300 Subject: [PATCH 0118/2060] discount: Fix PKGBUILD options. Rebuild. --- mingw-w64-discount/PKGBUILD | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/mingw-w64-discount/PKGBUILD b/mingw-w64-discount/PKGBUILD index 2159f9c64a..29e262282f 100644 --- a/mingw-w64-discount/PKGBUILD +++ b/mingw-w64-discount/PKGBUILD @@ -1,19 +1,18 @@ # Maintainer: Alexey Pavlov _realname=discount - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.6 -pkgrel=1 +pkgrel=2 pkgdesc="A Markdown implementation written in C (mingw-w64)" arch=('any') url="http://www.pell.portland.or.us/~orc/Code/discount/" license=('custom:BSD') -provides=('markdown') -conflicts=('markdown') +provides=("${MINGW_PACKAGE_PREFIX}-markdown") +conflicts=("${MINGW_PACKAGE_PREFIX}-markdown") options=('strip' 'staticlibs') source=(http://www.pell.portland.or.us/~orc/Code/discount/${_realname}-$pkgver.tar.bz2 - discount-mingw-building.patch) + discount-mingw-building.patch) md5sums=('6f44e627777b6392f8f4a3280642482a' '5235a54f0a3e8e61a11c42f3541e9582') @@ -23,9 +22,8 @@ prepare() { } build() { - cd "${srcdir}"/${_realname}-${pkgver} + cd "${srcdir}"/${_realname}-${pkgver} sed -e "s/m 444/m 644/g" -i configure.inc - export CFLAGS="-O2 -pipe -I${MINGW_PREFIX}/include" MSYSTEM=MINGW \ CC=${MINGW_PREFIX}/bin/gcc.exe \ AC_CPP_PROG=${MINGW_PREFIX}/bin/cpp.exe \ @@ -33,12 +31,13 @@ build() { ./configure.sh \ --prefix=${MINGW_PREFIX} \ --enable-all-features \ - --shared - make + --shared + + make } package() { - cd "$srcdir/${_realname}-$pkgver" + cd "$srcdir/${_realname}-$pkgver" mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,include,lib} make DESTDIR="$pkgdir" install.everything mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ From 7d3e74195542dac74ebf3cb320a1362e89ddc7ec Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 21:16:14 +0300 Subject: [PATCH 0119/2060] libsodium: Update to 1.0.1 --- mingw-w64-libsodium/PKGBUILD | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/mingw-w64-libsodium/PKGBUILD b/mingw-w64-libsodium/PKGBUILD index d56f8b2b0e..333b122cca 100644 --- a/mingw-w64-libsodium/PKGBUILD +++ b/mingw-w64-libsodium/PKGBUILD @@ -2,7 +2,7 @@ _realname=libsodium pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.0 +pkgver=1.0.1 pkgrel=1 pkgdesc="P(ortable|ackageable) NaCl-based crypto library (mingw-w64)" arch=("any") @@ -10,25 +10,31 @@ url="https://github.com/jedisct1/libsodium" license=('custom:ISC') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") source=("http://download.dnscrypt.org/${_realname}/releases/${_realname}-${pkgver}.tar.gz") -md5sums=('3093dabe4e038d09f0d150cef064b2f7') +md5sums=('9a221b49fba7281ceaaf5e278d0f4430') build() { - cd ${_realname}-${pkgver} - ./configure \ + rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + make } check() { - cd $_realname-$pkgver + cd build-${MINGW_CHOST} make -k check } package() { - cd ${_realname}-${pkgver} + cd build-${MINGW_CHOST} make DESTDIR="${pkgdir}" install - install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From a92757597713a8a307941e73cfe36b4133110940 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 22:12:31 +0300 Subject: [PATCH 0120/2060] dnscrypt-proxy: Update to 1.4.2. Fix building outside source tree. --- .../001-outside-source-build.patch | 96 +++++++++++++++++++ mingw-w64-dnscrypt-proxy/PKGBUILD | 27 ++++-- 2 files changed, 115 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-dnscrypt-proxy/001-outside-source-build.patch diff --git a/mingw-w64-dnscrypt-proxy/001-outside-source-build.patch b/mingw-w64-dnscrypt-proxy/001-outside-source-build.patch new file mode 100644 index 0000000000..f9aa2f3a8b --- /dev/null +++ b/mingw-w64-dnscrypt-proxy/001-outside-source-build.patch @@ -0,0 +1,96 @@ +--- dnscrypt-proxy-1.4.2/src/plugins/example/Makefile.am.orig 2014-12-09 21:32:37.767600000 +0300 ++++ dnscrypt-proxy-1.4.2/src/plugins/example/Makefile.am 2014-12-09 21:32:40.638000000 +0300 +@@ -16,4 +16,5 @@ + + libdcplugin_example_la_CPPFLAGS = \ + $(LTDLINCL) \ +- -I../../include ++ -I../../include \ ++ -I$(srcdir)/../../include +--- dnscrypt-proxy-1.4.2/src/plugins/example-ldns-aaaa-blocking/Makefile.am.orig 2014-12-09 21:28:43.235200000 +0300 ++++ dnscrypt-proxy-1.4.2/src/plugins/example-ldns-aaaa-blocking/Makefile.am 2014-12-09 21:28:47.213200000 +0300 +@@ -18,4 +18,5 @@ + + libdcplugin_example_ldns_aaaa_blocking_la_CPPFLAGS = \ + $(LTDLINCL) \ +- -I../../include ++ -I../../include \ ++ -I$(srcdir)/../../include +--- dnscrypt-proxy-1.4.2/src/plugins/example-ldns-blocking/Makefile.am.orig 2014-12-09 21:29:06.507000000 +0300 ++++ dnscrypt-proxy-1.4.2/src/plugins/example-ldns-blocking/Makefile.am 2014-12-09 21:29:09.221400000 +0300 +@@ -18,4 +18,5 @@ + + libdcplugin_example_ldns_blocking_la_CPPFLAGS = \ + $(LTDLINCL) \ +- -I../../include ++ -I../../include \ ++ -I$(srcdir)/../../include +--- dnscrypt-proxy-1.4.2/src/plugins/example-ldns-opendns-deviceid/Makefile.am.orig 2014-12-09 21:29:26.394000000 +0300 ++++ dnscrypt-proxy-1.4.2/src/plugins/example-ldns-opendns-deviceid/Makefile.am 2014-12-09 21:29:30.699600000 +0300 +@@ -18,4 +18,5 @@ + + libdcplugin_example_ldns_opendns_deviceid_la_CPPFLAGS = \ + $(LTDLINCL) \ +- -I../../include ++ -I../../include \ ++ -I$(srcdir)/../../include +--- dnscrypt-proxy-1.4.2/src/plugins/example-ldns-opendns-set-client-ip/Makefile.am.orig 2014-12-09 21:30:06.634000000 +0300 ++++ dnscrypt-proxy-1.4.2/src/plugins/example-ldns-opendns-set-client-ip/Makefile.am 2014-12-09 21:30:54.682000000 +0300 +@@ -18,4 +18,5 @@ + + libdcplugin_example_ldns_opendns_set_client_ip_la_CPPFLAGS = \ + $(LTDLINCL) \ +- -I../../include ++ -I../../include \ ++ -I$(srcdir)/../../include +--- dnscrypt-proxy-1.4.2/src/plugins/example-logging/Makefile.am.orig 2014-12-09 21:31:14.376400000 +0300 ++++ dnscrypt-proxy-1.4.2/src/plugins/example-logging/Makefile.am 2014-12-09 21:31:17.652400000 +0300 +@@ -16,4 +16,5 @@ + + libdcplugin_example_logging_la_CPPFLAGS = \ + $(LTDLINCL) \ +- -I../../include ++ -I../../include \ ++ -I$(srcdir)/../../include +--- dnscrypt-proxy-1.4.2/src/hostip/Makefile.am.orig 2014-12-09 21:27:24.540800000 +0300 ++++ dnscrypt-proxy-1.4.2/src/hostip/Makefile.am 2014-12-09 21:27:29.423600000 +0300 +@@ -11,7 +11,8 @@ + AM_CFLAGS = @CWFLAGS@ + + AM_CPPFLAGS = \ +- -I../libevent-modified/include ++ -I../libevent-modified/include \ ++ -I$(srcdir)/../libevent-modified/include + + hostip_LDADD = \ + ../libevent-modified/libevent_extra.la \ +--- dnscrypt-proxy-1.4.2/src/proxy/Makefile.am.orig 2014-12-09 21:25:07.351800000 +0300 ++++ dnscrypt-proxy-1.4.2/src/proxy/Makefile.am 2014-12-09 21:26:24.837000000 +0300 +@@ -49,6 +49,8 @@ + AM_CPPFLAGS = \ + -I../ext \ + -I../libevent-modified/include \ ++ -I$(srcdir)/../ext \ ++ -I$(srcdir)/../libevent-modified/include \ + -DPKGDATADIR='"${pkgdatadir}"' + + dnscrypt_proxy_LDADD = \ +@@ -62,8 +62,8 @@ + BUILT_SOURCES = \ + probes.h + +-probes.h: @PROBES_SOURCE@ +- cat @PROBES_SOURCE@ > $@ ++probes.h: $(srcdir)/@PROBES_SOURCE@ ++ cat $(srcdir)/@PROBES_SOURCE@ > $@ + + probes_dnscrypt_proxy.h: probes_dnscrypt_proxy.d + @DTRACE@ -o $@ -h -s probes_dnscrypt_proxy.d +@@ -83,6 +83,7 @@ + AM_CPPFLAGS += \ + $(LTDLINCL) \ + -I../include \ ++ -I$(srcdir)/../include \ + -DPLUGINS_ROOT=\"$(pkglibdir)/\" + + dnscrypt_proxy_LDADD += $(LIBLTDL) diff --git a/mingw-w64-dnscrypt-proxy/PKGBUILD b/mingw-w64-dnscrypt-proxy/PKGBUILD index c74a494ae4..4aa95540f4 100644 --- a/mingw-w64-dnscrypt-proxy/PKGBUILD +++ b/mingw-w64-dnscrypt-proxy/PKGBUILD @@ -2,19 +2,30 @@ _realname=dnscrypt-proxy pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.0 +pkgver=1.4.2 pkgrel=1 pkgdesc="A tool for securing communications between a client and a DNS resolver (mingw-w64)" arch=("any") url="http://dnscrypt.org" license=('custom:ISC') depends=("${MINGW_PACKAGE_PREFIX}-libsodium") -source=("http://download.dnscrypt.org/${_realname}/${_realname}-$pkgver.tar.bz2") -md5sums=('40b5b73f5042330b86084460d7c839c6') +source=("http://download.dnscrypt.org/${_realname}/${_realname}-$pkgver.tar.bz2" + 001-outside-source-build.patch) +md5sums=('9f077f9b5929e00f107474270314f7cc' + 'b7be1792d360db85014bd382f92dab03') + +prepare() { + cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/001-outside-source-build.patch + autoreconf -fi +} build() { - cd ${_realname}-${pkgver} - ./configure \ + rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --sbindir=${MINGW_PREFIX}/bin \ --build=${MINGW_CHOST} \ @@ -26,12 +37,12 @@ build() { } check() { - cd ${_realname}-${pkgver} + cd ${srcdir}/build-${MINGW_CHOST} make -k check } package() { - cd ${_realname}-${pkgver} + cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR="${pkgdir}" install - install -Dm644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From 82818bf7257b3233d3f417b06e5b4ba4fc2bddf6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 22:19:02 +0300 Subject: [PATCH 0121/2060] dumb: Rebuild. --- mingw-w64-dumb/PKGBUILD | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mingw-w64-dumb/PKGBUILD b/mingw-w64-dumb/PKGBUILD index ac67a2f2b2..e194cc9877 100644 --- a/mingw-w64-dumb/PKGBUILD +++ b/mingw-w64-dumb/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=dumb - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.3 -pkgrel=2 +pkgrel=3 pkgdesc="IT, XM, S3M and MOD player library (mingw-w64)" arch=('any') url="http://dumb.sourceforge.net" @@ -12,8 +11,8 @@ license=("custom:dumb, GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' 'staticlibs') source=("http://downloads.sourceforge.net/sourceforge/dumb/dumb-$pkgver.tar.gz" - "CVE-2006-3668.patch" - "config.txt") + "CVE-2006-3668.patch" + "config.txt") sha256sums=('8d44fbc9e57f3bac9f761c3b12ce102d47d717f0dd846657fb988e0bb5d1ea33' '9f6785435757db725bc73b1c4874b91e80b9277c6fdd2b56e47dae1cfbc968e6' '5319fd08ad12bce4fc3ec41cbeeb71a40041867c56a713d564920f32e0ff4aa2') @@ -27,7 +26,7 @@ prepare() { build() { cd "${srcdir}/dumb-${pkgver}" sed -i "s,PKGDIR/usr/ARCH,${pkgdir}${MINGW_PREFIX}," "make/config.txt" - COMSPEC=/bin/sh.exe make CC=${MINGW_CHOST}-gcc AR=ar RANLIB=ranlib + COMSPEC=/usr/bin/sh.exe make CC=${MINGW_CHOST}-gcc AR=ar RANLIB=ranlib ${MINGW_CHOST}-gcc -shared obj/unix/release/*.o -o libdumb.dll -Xlinker --out-implib -Xlinker libdumb.dll.a } From a3b3168b91daebfbb8fb3b4e044dd3947b6a9ea0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Dec 2014 22:26:55 +0300 Subject: [PATCH 0122/2060] enchant: Rebuild. --- mingw-w64-enchant/PKGBUILD | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/mingw-w64-enchant/PKGBUILD b/mingw-w64-enchant/PKGBUILD index 63ff883560..5af1ea492f 100644 --- a/mingw-w64-enchant/PKGBUILD +++ b/mingw-w64-enchant/PKGBUILD @@ -1,18 +1,17 @@ # Maintainer: Alexey Pavlov _realname=enchant - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.0 -pkgrel=1 +pkgrel=2 pkgdesc="Enchanting Spell Checking Library (mingw-w64)" arch=('any') url="http://www.abisource.com/" license=("LGPL-2.1+") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs - ${MINGW_PACKAGE_PREFIX}-glib2 - ${MINGW_PACKAGE_PREFIX}-hunspell) + ${MINGW_PACKAGE_PREFIX}-glib2 + ${MINGW_PACKAGE_PREFIX}-hunspell) options=('!libtool' 'strip' '!makeflags') source=("http://www.abisource.com/downloads/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz") md5sums=('de11011aff801dc61042828041fb59c7') @@ -31,9 +30,14 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --enable-ispell --enable-myspell --with-system-myspell \ - --disable-aspell --disable-voikko --disable-uspell \ - --disable-hspell --disable-zemberek + --enable-ispell \ + --enable-myspell \ + --with-system-myspell \ + --disable-aspell \ + --disable-voikko \ + --disable-uspell \ + --disable-hspell \ + --disable-zemberek make } From 656e014e4f5bac2f1ff22eb41b323d901fd3aec9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Dec 2014 00:52:10 +0300 Subject: [PATCH 0123/2060] hunspell-en: English dictionaries for hunspell --- mingw-w64-hunspell-en/PKGBUILD | 59 ++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 mingw-w64-hunspell-en/PKGBUILD diff --git a/mingw-w64-hunspell-en/PKGBUILD b/mingw-w64-hunspell-en/PKGBUILD new file mode 100644 index 0000000000..1d2505a68b --- /dev/null +++ b/mingw-w64-hunspell-en/PKGBUILD @@ -0,0 +1,59 @@ +# Maintainer: Alexey Pavlov + +_realname=hunspell-en +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2014.11.17 +pkgrel=1 +pkgdesc="Hunspell dictionaries (mingw-w64)" +arch=('any') +url="http://wordlist.sourceforge.net/" +license=('LGPL' 'custom:scowl') +makedepends=("unzip") +optdepends=(${MINGW_PACKAGE_PREFIX}-hunspell) +source=(http://downloads.sourceforge.net/wordlist/hunspell-en_US-large-$pkgver.zip + http://downloads.sourceforge.net/wordlist/hunspell-en_CA-large-$pkgver.zip + http://downloads.sourceforge.net/wordlist/hunspell-en_GB-large-$pkgver.zip) +md5sums=('03394d04d58f0557dff6b3c2e0844532' + '539fc4150d0ed5d3e66fd05719c49b98' + '42ea3fe29ad43b4f62a558ad79c73d0d') + +build() { + /bin/true +} + +package() { + cd "$srcdir" + install -dm755 ${pkgdir}${MINGW_PREFIX}/share/hunspell + install -m644 en_*.dic en_*.aff ${pkgdir}${MINGW_PREFIX}/share/hunspell + + pushd ${pkgdir}${MINGW_PREFIX}/share/hunspell/ + en_GB_aliases="en_AG en_AU en_BS en_BW en_BZ en_DK en_GH en_HK en_IE en_IN en_JM en_NA en_NG en_NZ en_SG en_TT en_ZA en_ZW" + for lang in $en_GB_aliases; do + ln -s en_GB-large.aff $lang.aff + ln -s en_GB-large.dic $lang.dic + done + + en_US_aliases="en_PH" + for lang in $en_US_aliases; do + ln -s en_US-large.aff $lang.aff + ln -s en_US-large.dic $lang.dic + done + popd + + # the symlinks + install -dm755 ${pkgdir}${MINGW_PREFIX}/share/myspell/dicts + pushd ${pkgdir}${MINGW_PREFIX}/share/myspell/dicts + for file in ${pkgdir}${MINGW_PREFIX}/share/hunspell/*; do + ln -sv ${pkgdir}${MINGW_PREFIX}/share/hunspell/$(basename $file) . + done + popd + + # docs + install -dm755 ${pkgdir}${MINGW_PREFIX}/share/doc/$_realname + install -m644 README_en_??-large.txt ${pkgdir}${MINGW_PREFIX}/share/doc/$_realname + + # licenses + install -D -m644 README_en_US-large.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/Copyright_en_US + install -D -m644 README_en_CA-large.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/Copyright_en_CA + install -D -m644 README_en_GB-large.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/Copyright_en_GB +} From 2e4b912b5fc2067c20ababd2a4d4351112e0d562 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Dec 2014 12:03:07 +0300 Subject: [PATCH 0124/2060] LibRaw: Rebuild. --- mingw-w64-LibRaw/PKGBUILD | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/mingw-w64-LibRaw/PKGBUILD b/mingw-w64-LibRaw/PKGBUILD index 559d23a8ee..edafe39930 100644 --- a/mingw-w64-LibRaw/PKGBUILD +++ b/mingw-w64-LibRaw/PKGBUILD @@ -1,24 +1,23 @@ # Maintainer: Alexey Pavlov _realname=LibRaw - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.16.0 -pkgrel=1 +pkgrel=2 pkgdesc="Library for reading RAW files obtained from digital photo cameras (mingw-w64)" arch=(any) url="http://www.libraw.org" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-lcms2" - "${MINGW_PACKAGE_PREFIX}-jasper") + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-jasper") options=('staticlibs' 'strip') source=("http://www.libraw.org/data/${_realname}-${pkgver}.tar.gz" - "http://www.libraw.org/data/${_realname}-demosaic-pack-GPL2-${pkgver}.tar.gz" - "http://www.libraw.org/data/${_realname}-demosaic-pack-GPL3-${pkgver}.tar.gz" - "LibRaw_wsock32.patch" - "LibRaw_obsolete-macros.patch") + "http://www.libraw.org/data/${_realname}-demosaic-pack-GPL2-${pkgver}.tar.gz" + "http://www.libraw.org/data/${_realname}-demosaic-pack-GPL3-${pkgver}.tar.gz" + "LibRaw_wsock32.patch" + "LibRaw_obsolete-macros.patch") sha256sums=('71f43871ec2535345c5c9b748f07813e49915170f9510b721a2be6478426cf96' '749d49694ce729166ec7a1faf7580780687ef190c756931bb075455ee8ed6697' 'f2e904f9baa7d173b5ade163c795f26e110255a758e31bd213086a5a61500b5c' @@ -38,21 +37,21 @@ prepare() { build() { CPPFLAGS+=" -DLIBRAW_NODLL" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-$pkgver/configure \ + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "${srcdir}"/${_realname}-$pkgver/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-jasper \ - --enable-lcms \ - --enable-demosaic-pack-gpl2 \ - --enable-demosaic-pack-gpl3 + --enable-lcms \ + --enable-demosaic-pack-gpl2 \ + --enable-demosaic-pack-gpl3 - make + make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install } From 3d0fb496295a1e00a5d1da6cd8187cd2afe27a9c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Dec 2014 12:37:07 +0300 Subject: [PATCH 0125/2060] libjpeg-turbo: Rebuild. --- mingw-w64-libjpeg-turbo/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libjpeg-turbo/PKGBUILD b/mingw-w64-libjpeg-turbo/PKGBUILD index 0a43f75ab2..b9fc3a2993 100644 --- a/mingw-w64-libjpeg-turbo/PKGBUILD +++ b/mingw-w64-libjpeg-turbo/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libjpeg-turbo - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.1 -pkgrel=4 +pkgrel=5 pkgdesc="JPEG image codec with accelerated baseline compression and decompression (mingw-w64)" arch=('any') url="http://libjpeg-turbo.virtualgl.org" @@ -27,7 +26,7 @@ md5sums=('2c3a68129dac443a72815ff5bb374b05' prepare() { cd "$srcdir/libjpeg-turbo-$pkgver" - patch -p1 -i ${srcdir}/0001-header-compat.mingw.patch + #patch -p1 -i ${srcdir}/0001-header-compat.mingw.patch #patch -p1 -i ${srcdir}/jpeg-typedefs.patch patch -p1 -i ${srcdir}/libjpeg-turbo-1.3.1-libmng-compatibility.patch } @@ -41,6 +40,8 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --with-jpeg8 \ + --enable-shared \ + --enable-static \ --mandir=${MINGW_PREFIX}/share/man make } From 7fa23d9b5552391a969044caca45b4e3807dd9f3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Dec 2014 13:04:45 +0300 Subject: [PATCH 0126/2060] lcms2: Rebuild. --- mingw-w64-lcms2/PKGBUILD | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mingw-w64-lcms2/PKGBUILD b/mingw-w64-lcms2/PKGBUILD index 7d34f1bf5f..7bfe4ffa72 100644 --- a/mingw-w64-lcms2/PKGBUILD +++ b/mingw-w64-lcms2/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=lcms2 - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.6 -pkgrel=1 +pkgrel=2 pkgdesc="Small-footprint color management engine, version 2 (mingw-w64)" arch=(any) url="http://www.littlecms.com" @@ -23,7 +22,9 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --prefix=${MINGW_PREFIX} + --prefix=${MINGW_PREFIX} \ + --enable-shared \ + --enable-static make } @@ -31,6 +32,4 @@ build() { package() { cd "${srcdir}/${_realname}-${pkgver}" make DESTDIR="$pkgdir" install - #rm -r "${pkgdir}${MINGW_PREFIX}/share" - #rm ${pkgdir}${MINGW_PREFIX}/bin/*.exe } From 47aea26e68ab67075f6b6b663d9e342408273c25 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Dec 2014 13:08:00 +0300 Subject: [PATCH 0127/2060] lcms: Rebuild. Add some patches. --- mingw-w64-lcms/PKGBUILD | 19 +++++++++++++------ mingw-w64-lcms/lcms-1.19-rhbz1003950.patch | 18 ++++++++++++++++++ mingw-w64-lcms/lcms-1.19-rhbz675186.patch | 11 +++++++++++ 3 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-lcms/lcms-1.19-rhbz1003950.patch create mode 100644 mingw-w64-lcms/lcms-1.19-rhbz675186.patch diff --git a/mingw-w64-lcms/PKGBUILD b/mingw-w64-lcms/PKGBUILD index 9721de9f0d..8b17f74d6d 100644 --- a/mingw-w64-lcms/PKGBUILD +++ b/mingw-w64-lcms/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=lcms - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.19 -pkgrel=2 +pkgrel=3 pkgdesc="Lightweight color management development library/engine (mingw-w64)" arch=(any) url="http://www.littlecms.com" @@ -13,15 +12,21 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-libtiff") options=('staticlibs' 'strip') source=("http://downloads.sourceforge.net/sourceforge/lcms/lcms-${pkgver}.tar.gz" - "cve-2013-4276.patch" - "lcms-1.17-windows.patch") + "cve-2013-4276.patch" + "lcms-1.17-windows.patch" + "lcms-1.19-rhbz1003950.patch" + "lcms-1.19-rhbz675186.patch") md5sums=('8af94611baf20d9646c7c2c285859818' 'fa1db4861cfa05f4c4a2c826e1c35502' - '9620be1a5bc2ec407c78f643cab62811') + '9620be1a5bc2ec407c78f643cab62811' + 'c1d1f66f6fffe71e3b8005b1dc8962f1' + '11291f3a345439e0d9e3bb4219f885e2') prepare(){ cd "$srcdir/${_realname}-$pkgver" patch -Np1 -i "$srcdir/cve-2013-4276.patch" + patch -Np1 -i "$srcdir/lcms-1.19-rhbz1003950.patch" + patch -Np1 -i "$srcdir/lcms-1.19-rhbz675186.patch" #patch -Np1 -i "$srcdir/lcms-1.17-windows.patch" #autoreconf -f -i } @@ -31,7 +36,9 @@ build() { ./configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --prefix=${MINGW_PREFIX} + --prefix=${MINGW_PREFIX} \ + --enable-shared \ + --enable-static make } diff --git a/mingw-w64-lcms/lcms-1.19-rhbz1003950.patch b/mingw-w64-lcms/lcms-1.19-rhbz1003950.patch new file mode 100644 index 0000000000..a7a0704623 --- /dev/null +++ b/mingw-w64-lcms/lcms-1.19-rhbz1003950.patch @@ -0,0 +1,18 @@ +--- lcms-1.19/src/cmsio1.c 2009-11-13 10:02:11.000000000 +0100 ++++ lcms-1.19/src/cmsio1.c 2013-09-03 15:38:05.905867571 +0200 +@@ -1637,13 +1637,13 @@ int ReadEmbeddedTextTag(LPLCMSICCPROFILE + if (Len < 0) Len = 0; + if (Len > 20*1024) Len = 20 * 1024; + +- wchar = (wchar_t*) _cmsMalloc(Len*sizeof(wchar_t)+2); ++ wchar = (wchar_t*) _cmsMalloc(Len*sizeof(wchar_t)+sizeof(wchar_t)); + if (!wchar) return -1; + + if (Icc ->Read(wchar, 1, Len, Icc) != Len) return -1; + AdjustEndianessArray16((LPWORD) wchar, Len / 2); + +- wchar[Len / 2] = L'\0'; ++ wchar[Len / sizeof(wchar_t)] = L'\0'; + i = wcstombs(Name, wchar, size_max ); + if (i == ((size_t) -1)) { + diff --git a/mingw-w64-lcms/lcms-1.19-rhbz675186.patch b/mingw-w64-lcms/lcms-1.19-rhbz675186.patch new file mode 100644 index 0000000000..b10b8948de --- /dev/null +++ b/mingw-w64-lcms/lcms-1.19-rhbz675186.patch @@ -0,0 +1,11 @@ +--- lcms-1.19/samples/icclink.1 2011-01-11 11:59:54.000000000 +0000 ++++ lcms-1.19/samples/icclink.1 2011-02-04 15:03:14.000000000 +0000 +@@ -22,7 +22,7 @@ + Black point compensation. + .TP + .B \-c <0,1,2,3> +-Precission (0=LowRes, 1=Normal, 2=Hi-res). [defaults to 1] ++Precision (0=LowRes, 1=Normal, 2=Hi-res). [defaults to 1] + .TP + .BI \-d\ description + Description text (quotes can be used). From 7206cb3b65ba30f24579000fef6d4bcbd17858b7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Dec 2014 13:19:34 +0300 Subject: [PATCH 0128/2060] freeimage: Rebuild. --- mingw-w64-FreeImage/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-FreeImage/PKGBUILD b/mingw-w64-FreeImage/PKGBUILD index 1ad0dd9f4c..03a9370a93 100644 --- a/mingw-w64-FreeImage/PKGBUILD +++ b/mingw-w64-FreeImage/PKGBUILD @@ -3,7 +3,7 @@ _realname=FreeImage pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.0 -pkgrel=5 +pkgrel=6 pkgdesc="Library project for developers who would like to support popular graphics image formats (mingw-w64)." arch=('any') license=('GPL' 'custom:FIPL') From 77eca1eaaa9f083cbb822a69c634e5d6b4d8bae5 Mon Sep 17 00:00:00 2001 From: martell Date: Wed, 10 Dec 2014 20:05:10 +0000 Subject: [PATCH 0129/2060] cling-git: update to latest --- ...SEH-exceptions-to-the-clang-frontend.patch | 173 +++++++++++++++++ ...-defines-to-_WIN32-as-it-is-a-compil.patch | 179 ++++++++++++++++++ mingw-w64-cling-git/PKGBUILD | 20 +- 3 files changed, 360 insertions(+), 12 deletions(-) create mode 100644 mingw-w64-cling-git/0001-Add-SEH-exceptions-to-the-clang-frontend.patch create mode 100644 mingw-w64-cling-git/0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch diff --git a/mingw-w64-cling-git/0001-Add-SEH-exceptions-to-the-clang-frontend.patch b/mingw-w64-cling-git/0001-Add-SEH-exceptions-to-the-clang-frontend.patch new file mode 100644 index 0000000000..96fcaf1cc8 --- /dev/null +++ b/mingw-w64-cling-git/0001-Add-SEH-exceptions-to-the-clang-frontend.patch @@ -0,0 +1,173 @@ +From 2228f948e75cef500c91902b47c2ac1fec10d4e5 Mon Sep 17 00:00:00 2001 +From: martell +Date: Mon, 8 Dec 2014 04:55:04 +0000 +Subject: [PATCH] Add SEH exceptions to the clang frontend + +--- + include/clang/Basic/LangOptions.def | 1 + + include/clang/Driver/CC1Options.td | 2 ++ + include/clang/Driver/ToolChain.h | 3 +++ + lib/CodeGen/CGException.cpp | 10 ++++++++++ + lib/Driver/ToolChains.h | 5 +++++ + lib/Driver/Tools.cpp | 2 ++ + lib/Frontend/CompilerInvocation.cpp | 1 + + lib/Frontend/InitPreprocessor.cpp | 2 ++ + 8 files changed, 26 insertions(+) + +diff --git a/include/clang/Basic/LangOptions.def b/include/clang/Basic/LangOptions.def +index a297a4c..44656e7 100644 +--- a/include/clang/Basic/LangOptions.def ++++ b/include/clang/Basic/LangOptions.def +@@ -82,6 +82,7 @@ LANGOPT(Exceptions , 1, 0, "exception handling") + LANGOPT(ObjCExceptions , 1, 0, "Objective-C exceptions") + LANGOPT(CXXExceptions , 1, 0, "C++ exceptions") + LANGOPT(SjLjExceptions , 1, 0, "setjmp-longjump exception handling") ++LANGOPT(SEHExceptions , 1, 0, "SEH exception handling") + LANGOPT(TraditionalCPP , 1, 0, "traditional CPP emulation") + LANGOPT(RTTI , 1, 1, "run-time type information") + LANGOPT(RTTIData , 1, 1, "emit run-time type information data") +diff --git a/include/clang/Driver/CC1Options.td b/include/clang/Driver/CC1Options.td +index c3685e0..dbb1a72 100644 +--- a/include/clang/Driver/CC1Options.td ++++ b/include/clang/Driver/CC1Options.td +@@ -428,6 +428,8 @@ def fblocks_runtime_optional : Flag<["-"], "fblocks-runtime-optional">, + HelpText<"Weakly link in the blocks runtime">; + def fsjlj_exceptions : Flag<["-"], "fsjlj-exceptions">, + HelpText<"Use SjLj style exceptions">; ++def fseh_exceptions : Flag<["-"], "fseh-exceptions">, ++ HelpText<"Use SEH style exceptions">; + def split_dwarf_file : Separate<["-"], "split-dwarf-file">, + HelpText<"File name to use for split dwarf debug info output">; + def fno_wchar : Flag<["-"], "fno-wchar">, +diff --git a/include/clang/Driver/ToolChain.h b/include/clang/Driver/ToolChain.h +index 6f5677c..52c98c6 100644 +--- a/include/clang/Driver/ToolChain.h ++++ b/include/clang/Driver/ToolChain.h +@@ -248,6 +248,9 @@ public: + /// UseSjLjExceptions - Does this tool chain use SjLj exceptions. + virtual bool UseSjLjExceptions() const { return false; } + ++ /// UseSEHExceptions - Does this tool chain use SEH exceptions. ++ virtual bool UseSEHExceptions() const { return false; } ++ + /// ComputeLLVMTriple - Return the LLVM target triple to use, after taking + /// command line arguments into account. + virtual std::string +diff --git a/lib/CodeGen/CGException.cpp b/lib/CodeGen/CGException.cpp +index 1bbda5c..0f14d77 100644 +--- a/lib/CodeGen/CGException.cpp ++++ b/lib/CodeGen/CGException.cpp +@@ -137,18 +137,22 @@ namespace { + static const EHPersonality &get(const LangOptions &Lang); + static const EHPersonality GNU_C; + static const EHPersonality GNU_C_SJLJ; ++ static const EHPersonality GNU_C_SEH; + static const EHPersonality GNU_ObjC; + static const EHPersonality GNUstep_ObjC; + static const EHPersonality GNU_ObjCXX; + static const EHPersonality NeXT_ObjC; + static const EHPersonality GNU_CPlusPlus; + static const EHPersonality GNU_CPlusPlus_SJLJ; ++ static const EHPersonality GNU_CPlusPlus_SEH; + }; + } + + const EHPersonality EHPersonality::GNU_C = { "__gcc_personality_v0", nullptr }; + const EHPersonality + EHPersonality::GNU_C_SJLJ = { "__gcc_personality_sj0", nullptr }; ++const EHPersonality ++EHPersonality::GNU_C_SEH = { "__gcc_personality_seh0", nullptr }; + const EHPersonality + EHPersonality::NeXT_ObjC = { "__objc_personality_v0", nullptr }; + const EHPersonality +@@ -156,6 +160,8 @@ EHPersonality::GNU_CPlusPlus = { "__gxx_personality_v0", nullptr }; + const EHPersonality + EHPersonality::GNU_CPlusPlus_SJLJ = { "__gxx_personality_sj0", nullptr }; + const EHPersonality ++EHPersonality::GNU_CPlusPlus_SEH = { "__gxx_personality_seh0", nullptr }; ++const EHPersonality + EHPersonality::GNU_ObjC = {"__gnu_objc_personality_v0", "objc_exception_throw"}; + const EHPersonality + EHPersonality::GNU_ObjCXX = { "__gnustep_objcxx_personality_v0", nullptr }; +@@ -165,6 +171,8 @@ EHPersonality::GNUstep_ObjC = { "__gnustep_objc_personality_v0", nullptr }; + static const EHPersonality &getCPersonality(const LangOptions &L) { + if (L.SjLjExceptions) + return EHPersonality::GNU_C_SJLJ; ++ if (L.SEHExceptions) ++ return EHPersonality::GNU_C_SEH; + return EHPersonality::GNU_C; + } + +@@ -189,6 +197,8 @@ static const EHPersonality &getObjCPersonality(const LangOptions &L) { + static const EHPersonality &getCXXPersonality(const LangOptions &L) { + if (L.SjLjExceptions) + return EHPersonality::GNU_CPlusPlus_SJLJ; ++ else if (L.SEHExceptions) ++ return EHPersonality::GNU_CPlusPlus_SEH; + else + return EHPersonality::GNU_CPlusPlus; + } +diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h +index 556e884..65c93dd 100644 +--- a/lib/Driver/ToolChains.h ++++ b/lib/Driver/ToolChains.h +@@ -302,6 +302,10 @@ public: + return false; + } + ++ bool UseSEHExceptions() const override { ++ return false; ++ } ++ + /// } + }; + +@@ -738,6 +742,7 @@ public: + bool isPICDefault() const override; + bool isPIEDefault() const override; + bool isPICDefaultForced() const override; ++ bool UseSEHExceptions() const override; + + void + AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, +diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp +index bcc8056..4202fd9 100644 +--- a/lib/Driver/Tools.cpp ++++ b/lib/Driver/Tools.cpp +@@ -4088,6 +4088,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, + + if (getToolChain().UseSjLjExceptions()) + CmdArgs.push_back("-fsjlj-exceptions"); ++ else if (getToolChain().UseSEHExceptions()) ++ CmdArgs.push_back("-fseh-exceptions"); + + // C++ "sane" operator new. + if (!Args.hasFlag(options::OPT_fassume_sane_operator_new, +diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp +index 0c6d77d..c3e8777 100644 +--- a/lib/Frontend/CompilerInvocation.cpp ++++ b/lib/Frontend/CompilerInvocation.cpp +@@ -1427,6 +1427,7 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, + Opts.ObjCExceptions = Args.hasArg(OPT_fobjc_exceptions); + Opts.CXXExceptions = Args.hasArg(OPT_fcxx_exceptions); + Opts.SjLjExceptions = Args.hasArg(OPT_fsjlj_exceptions); ++ Opts.SEHExceptions = Args.hasArg(OPT_fseh_exceptions); + Opts.TraditionalCPP = Args.hasArg(OPT_traditional_cpp); + + Opts.RTTI = !Args.hasArg(OPT_fno_rtti); +diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp +index 7a9d09a..7754f0f 100644 +--- a/lib/Frontend/InitPreprocessor.cpp ++++ b/lib/Frontend/InitPreprocessor.cpp +@@ -557,6 +557,8 @@ static void InitializePredefinedMacros(const TargetInfo &TI, + Builder.defineMacro("__GXX_RTTI"); + if (LangOpts.SjLjExceptions) + Builder.defineMacro("__USING_SJLJ_EXCEPTIONS__"); ++ if (LangOpts.SEHExceptions) ++ Builder.defineMacro("__SEH__"); + + if (LangOpts.Deprecated) + Builder.defineMacro("__DEPRECATED"); +-- +2.2.0 + diff --git a/mingw-w64-cling-git/0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch b/mingw-w64-cling-git/0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch new file mode 100644 index 0000000000..8bfc7b44d9 --- /dev/null +++ b/mingw-w64-cling-git/0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch @@ -0,0 +1,179 @@ +From 7e4be1203cfa358b41ef1aca1f5f2ab9592bb511 Mon Sep 17 00:00:00 2001 +From: martell +Date: Thu, 4 Dec 2014 16:01:38 +0000 +Subject: [PATCH] change all WIN32 defines to _WIN32 as it is a compiler define + +--- + lib/Interpreter/DynamicLibraryManager.cpp | 2 +- + lib/UserInterface/textinput/SignalHandler.cpp | 2 +- + lib/UserInterface/textinput/StreamReader.cpp | 4 ++-- + lib/UserInterface/textinput/StreamReaderUnix.cpp | 4 ++-- + lib/UserInterface/textinput/StreamReaderWin.cpp | 4 ++-- + lib/UserInterface/textinput/TerminalConfigUnix.cpp | 4 ++-- + lib/UserInterface/textinput/TerminalDisplay.cpp | 4 ++-- + lib/UserInterface/textinput/TerminalDisplayUnix.cpp | 4 ++-- + lib/UserInterface/textinput/TerminalDisplayWin.cpp | 4 ++-- + 9 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/lib/Interpreter/DynamicLibraryManager.cpp b/lib/Interpreter/DynamicLibraryManager.cpp +index c841538..ac2a1e2 100644 +--- a/lib/Interpreter/DynamicLibraryManager.cpp ++++ b/lib/Interpreter/DynamicLibraryManager.cpp +@@ -22,7 +22,7 @@ + #include + #include + +-#ifdef WIN32 ++#ifdef _WIN32 + #include + #include + #else +diff --git a/lib/UserInterface/textinput/SignalHandler.cpp b/lib/UserInterface/textinput/SignalHandler.cpp +index 9c02dee..6a3cd5b 100644 +--- a/lib/UserInterface/textinput/SignalHandler.cpp ++++ b/lib/UserInterface/textinput/SignalHandler.cpp +@@ -26,7 +26,7 @@ namespace textinput { + + void + SignalHandler::EmitCtrlZ() { +-#ifndef WIN32 ++#ifndef _WIN32 + raise(SIGTSTP); + #endif + } +diff --git a/lib/UserInterface/textinput/StreamReader.cpp b/lib/UserInterface/textinput/StreamReader.cpp +index e8e65b6..9ddfa0f 100644 +--- a/lib/UserInterface/textinput/StreamReader.cpp ++++ b/lib/UserInterface/textinput/StreamReader.cpp +@@ -14,7 +14,7 @@ + + #include "textinput/StreamReader.h" + +-#ifdef WIN32 ++#ifdef _WIN32 + # include "textinput/StreamReaderWin.h" + #else + # include "textinput/StreamReaderUnix.h" +@@ -25,7 +25,7 @@ namespace textinput { + + StreamReader* + StreamReader::Create() { +-#ifdef WIN32 ++#ifdef _WIN32 + return new StreamReaderWin(); + #else + return new StreamReaderUnix(); +diff --git a/lib/UserInterface/textinput/StreamReaderUnix.cpp b/lib/UserInterface/textinput/StreamReaderUnix.cpp +index 74e66c6..72e9367 100644 +--- a/lib/UserInterface/textinput/StreamReaderUnix.cpp ++++ b/lib/UserInterface/textinput/StreamReaderUnix.cpp +@@ -13,7 +13,7 @@ + // Axel Naumann , 2011-05-12 + //===----------------------------------------------------------------------===// + +-#ifndef WIN32 ++#ifndef _WIN32 + + #include "textinput/StreamReaderUnix.h" + +@@ -274,4 +274,4 @@ namespace textinput { + } + } + +-#endif // ifndef WIN32 ++#endif // ifndef _WIN32 +diff --git a/lib/UserInterface/textinput/StreamReaderWin.cpp b/lib/UserInterface/textinput/StreamReaderWin.cpp +index 1615e46..bf59ebc 100644 +--- a/lib/UserInterface/textinput/StreamReaderWin.cpp ++++ b/lib/UserInterface/textinput/StreamReaderWin.cpp +@@ -12,7 +12,7 @@ + // Axel Naumann , 2011-05-12 + //===----------------------------------------------------------------------===// + +-#ifdef WIN32 ++#ifdef _WIN32 + + #include "textinput/StreamReaderWin.h" + +@@ -211,4 +211,4 @@ namespace textinput { + } + } + } +-#endif // WIN32 ++#endif // _WIN32 +diff --git a/lib/UserInterface/textinput/TerminalConfigUnix.cpp b/lib/UserInterface/textinput/TerminalConfigUnix.cpp +index 113e7c9..6f00c5e 100644 +--- a/lib/UserInterface/textinput/TerminalConfigUnix.cpp ++++ b/lib/UserInterface/textinput/TerminalConfigUnix.cpp +@@ -1,4 +1,4 @@ +-#ifndef WIN32 ++#ifndef _WIN32 + + //===--- TerminalConfigUnix.cpp - termios storage -------------*- C++ -*-===// + // +@@ -143,4 +143,4 @@ bool TerminalConfigUnix::IsInteractive() const { + + + +-#endif // ndef WIN32 ++#endif // ifndef _WIN32 +diff --git a/lib/UserInterface/textinput/TerminalDisplay.cpp b/lib/UserInterface/textinput/TerminalDisplay.cpp +index a54529c..f2c2416 100644 +--- a/lib/UserInterface/textinput/TerminalDisplay.cpp ++++ b/lib/UserInterface/textinput/TerminalDisplay.cpp +@@ -14,7 +14,7 @@ + + #include "textinput/TerminalDisplay.h" + +-#ifdef WIN32 ++#ifdef _WIN32 + #include "textinput/TerminalDisplayWin.h" + #else + #include "textinput/TerminalDisplayUnix.h" +@@ -30,7 +30,7 @@ namespace textinput { + + TerminalDisplay* + TerminalDisplay::Create() { +-#ifdef WIN32 ++#ifdef _WIN32 + return new TerminalDisplayWin(); + #else + return new TerminalDisplayUnix(); +diff --git a/lib/UserInterface/textinput/TerminalDisplayUnix.cpp b/lib/UserInterface/textinput/TerminalDisplayUnix.cpp +index 17aef56..2b45168 100644 +--- a/lib/UserInterface/textinput/TerminalDisplayUnix.cpp ++++ b/lib/UserInterface/textinput/TerminalDisplayUnix.cpp +@@ -1,4 +1,4 @@ +-#ifndef WIN32 ++#ifndef _WIN32 + + //===--- TerminalDisplayUnix.cpp - Output To UNIX Terminal ------*- C++ -*-===// + // +@@ -326,4 +326,4 @@ namespace textinput { + + } + +-#endif // #ifndef WIN32 ++#endif // #ifndef _WIN32 +diff --git a/lib/UserInterface/textinput/TerminalDisplayWin.cpp b/lib/UserInterface/textinput/TerminalDisplayWin.cpp +index 8b9dd80..dd9cd6f 100644 +--- a/lib/UserInterface/textinput/TerminalDisplayWin.cpp ++++ b/lib/UserInterface/textinput/TerminalDisplayWin.cpp +@@ -13,7 +13,7 @@ + // Axel Naumann , 2011-05-12 + //===----------------------------------------------------------------------===// + +-#ifdef WIN32 ++#ifdef _WIN32 + #include "textinput/TerminalDisplayWin.h" + + #include "textinput/Color.h" +@@ -214,4 +214,4 @@ namespace textinput { + + } + +-#endif // WIN32 ++#endif // ifdef _WIN32 +-- +2.2.0 + diff --git a/mingw-w64-cling-git/PKGBUILD b/mingw-w64-cling-git/PKGBUILD index 4e7e96c3ed..7587fa54a1 100644 --- a/mingw-w64-cling-git/PKGBUILD +++ b/mingw-w64-cling-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=cling pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-cern-git" "${MINGW_PACKAGE_PREFIX}-clang-cern-git" "${MINGW_PACKAGE_PREFIX}-clang-analyzer-cern-git" "${MINGW_PACKAGE_PREFIX}-llvm-cern-git") -pkgver=51262.b335d96 +pkgver=2423.232f361 pkgrel=1 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') @@ -15,15 +15,13 @@ options=('staticlibs' 'strip') source=("llvm"::"git+http://root.cern.ch/git/llvm.git#branch=cling-patches" "clang"::"git+http://root.cern.ch/git/clang.git#branch=cling-patches" "cling"::"git+http://root.cern.ch/git/cling.git" - cling-mingw64-fix.patch - clang-win64-seh.patch - llvm-win64-exceptions.patch + 0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch + 0001-Add-SEH-exceptions-to-the-clang-frontend.patch ) md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - 'SKIP' 'SKIP') pkgver() { @@ -33,14 +31,12 @@ pkgver() { } prepare() { - cd ${srcdir}/llvm - patch -p1 -i ${srcdir}/llvm-win64-exceptions.patch - - cd ${srcdir}/clang - patch -p1 -i ${srcdir}/clang-win64-seh.patch + + #cd ${srcdir}/clang + #patch -p1 -i ${srcdir}/0001-Add-SEH-exceptions-to-the-clang-frontend.patch cd ${srcdir}/cling - patch -p1 -i ${srcdir}/cling-mingw64-fix.patch + patch -p1 -i ${srcdir}/0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch cd ${srcdir} mv ${srcdir}/clang ${srcdir}/llvm/tools/clang @@ -81,7 +77,7 @@ build() { #--with-default-sysroot #--with-binutils-include #--with-bug-report-url - make + make -j1 } check() { From 05ffb79f729d2bacc55213c17a1d4fabeb56ec26 Mon Sep 17 00:00:00 2001 From: martell Date: Wed, 10 Dec 2014 20:43:22 +0000 Subject: [PATCH 0130/2060] ncurses: updated to latest and prepend triplet to exe's to fix usage on mintty --- mingw-w64-ncurses/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ncurses/PKGBUILD b/mingw-w64-ncurses/PKGBUILD index 121d6a42d3..51b828ab2b 100644 --- a/mingw-w64-ncurses/PKGBUILD +++ b/mingw-w64-ncurses/PKGBUILD @@ -3,7 +3,7 @@ _realname=ncurses pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _base_ver=5.9 -_date_rev=20141115 +_date_rev=20141206 pkgver=${_base_ver}.${_date_rev} pkgrel=1 pkgdesc="System V Release 4.0 curses emulation library" @@ -15,7 +15,7 @@ url="http://www.gnu.org/software/ncurses/" license=('MIT') options=('staticlibs' 'strip') source=("${_realname}-${pkgver}.tar.gz"::http://invisible-island.net/datafiles/current/${_realname}.tar.gz) -md5sums=('957e4d55344e49e3e694f4f44ff16e76') +md5sums=('eca64493b91f64aed413ea3d120bd9bb') build() { mkdir -p build-${MINGW_CHOST} @@ -26,6 +26,7 @@ build() { --mandir=${MINGW_PREFIX}/share/man \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ --without-ada \ --with-cxx \ --without-shared \ From 86a9349ea65d65c8c1b6dbe2dfb4820dae579223 Mon Sep 17 00:00:00 2001 From: martell Date: Wed, 10 Dec 2014 22:57:35 +0000 Subject: [PATCH 0131/2060] libconfig: new package --- mingw-w64-libconfig/PKGBUILD | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 mingw-w64-libconfig/PKGBUILD diff --git a/mingw-w64-libconfig/PKGBUILD b/mingw-w64-libconfig/PKGBUILD new file mode 100644 index 0000000000..7b03e33f82 --- /dev/null +++ b/mingw-w64-libconfig/PKGBUILD @@ -0,0 +1,31 @@ +# Maintainer: Martell Malone + +_realname=libconfig + +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.4.9 +pkgrel=3 +pkgdesc="C/C++ Configuration File Library (mingw-w64)" +arch=('any') +url="http://hyperrealm.com/libconfig/libconfig.html" +license=('LGPL') +depends=("${MINGW_PACKAGE_PREFIX}-gcc") +options=('!libtool' '!emptydirs') +source=("http://www.hyperrealm.com/libconfig/$_realname-$pkgver.tar.gz") +md5sums=('b6ee0ce2b3ef844bad7cac2803a90634') + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "${srcdir}"/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} + + make lib +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}/lib" + make DESTDIR="$pkgdir" install +} \ No newline at end of file From e32ae09a06d9f989d69845337024042599f68072 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 11 Dec 2014 01:18:23 +0000 Subject: [PATCH 0132/2060] zeromq: Add libsodium dependency As per http://stackoverflow.com/questions/27400216/building-libzmq-with-libsodium --- mingw-w64-zeromq/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-zeromq/PKGBUILD b/mingw-w64-zeromq/PKGBUILD index 14490545ec..878462c0bd 100644 --- a/mingw-w64-zeromq/PKGBUILD +++ b/mingw-w64-zeromq/PKGBUILD @@ -3,12 +3,12 @@ _realname=zeromq pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.0.5 -pkgrel=1 +pkgrel=2 pkgdesc="Fast messaging system built on sockets, C and C++ bindings. aka 0MQ, ZMQ. (mingw-w64)" arch=('any') url="http://www.zeromq.org" license=("LGPL") -depends=('') +depends=("${MINGW_PACKAGE_PREFIX}-libsodium") makedepends=('') options=('staticlibs' '!strip' '!buildflags') source=("http://download.zeromq.org/zeromq-$pkgver.tar.gz") @@ -20,7 +20,8 @@ build() { ../zeromq-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} + --host=${MINGW_CHOST} \ + --with-libsodium make } From 685aeb5b9f85c97875ba7907406ca64dd0bef59f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 11 Dec 2014 11:27:39 +0300 Subject: [PATCH 0133/2060] libjpeg-turbo: Remove unneeded patches. Apply header compatibility patch. --- mingw-w64-libjpeg-turbo/PKGBUILD | 7 +--- .../jpeg-7-tiff-ojpeg.patch | 39 ------------------- mingw-w64-libjpeg-turbo/jpeg-typedefs.patch | 26 ------------- .../libjpeg-buf-oflo.patch | 19 --------- ...ibjpeg-turbo-match-autoconf-behavior.patch | 31 --------------- 5 files changed, 2 insertions(+), 120 deletions(-) delete mode 100644 mingw-w64-libjpeg-turbo/jpeg-7-tiff-ojpeg.patch delete mode 100644 mingw-w64-libjpeg-turbo/jpeg-typedefs.patch delete mode 100644 mingw-w64-libjpeg-turbo/libjpeg-buf-oflo.patch delete mode 100644 mingw-w64-libjpeg-turbo/libjpeg-turbo-match-autoconf-behavior.patch diff --git a/mingw-w64-libjpeg-turbo/PKGBUILD b/mingw-w64-libjpeg-turbo/PKGBUILD index b9fc3a2993..b225451fe2 100644 --- a/mingw-w64-libjpeg-turbo/PKGBUILD +++ b/mingw-w64-libjpeg-turbo/PKGBUILD @@ -3,7 +3,7 @@ _realname=libjpeg-turbo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.1 -pkgrel=5 +pkgrel=6 pkgdesc="JPEG image codec with accelerated baseline compression and decompression (mingw-w64)" arch=('any') url="http://libjpeg-turbo.virtualgl.org" @@ -17,17 +17,14 @@ replaces=("${MINGW_PACKAGE_PREFIX}-libjpeg") options=('staticlibs' 'strip') source=("http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-$pkgver.tar.gz" "0001-header-compat.mingw.patch" - "jpeg-typedefs.patch" "libjpeg-turbo-1.3.1-libmng-compatibility.patch") md5sums=('2c3a68129dac443a72815ff5bb374b05' '4cd30dbda4e54a6875e74ed437e41b49' - 'b758ab3ac6a0604c6ed5fb9d850c9a73' 'b54c2ab69837e1b72605184364360af0') prepare() { cd "$srcdir/libjpeg-turbo-$pkgver" - #patch -p1 -i ${srcdir}/0001-header-compat.mingw.patch - #patch -p1 -i ${srcdir}/jpeg-typedefs.patch + patch -p1 -i ${srcdir}/0001-header-compat.mingw.patch patch -p1 -i ${srcdir}/libjpeg-turbo-1.3.1-libmng-compatibility.patch } diff --git a/mingw-w64-libjpeg-turbo/jpeg-7-tiff-ojpeg.patch b/mingw-w64-libjpeg-turbo/jpeg-7-tiff-ojpeg.patch deleted file mode 100644 index 388449532c..0000000000 --- a/mingw-w64-libjpeg-turbo/jpeg-7-tiff-ojpeg.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- a/jdhuff.c 2012-05-03 10:41:17 +0400 -+++ b/jdhuff.c 2012-05-03 10:43:15 +0400 -@@ -806,3 +806,36 @@ - entropy->dc_derived_tbls[i] = entropy->ac_derived_tbls[i] = NULL; - } - } -+ -+/* -+ * BEWARE OF KLUDGE: This subroutine is a hack for decoding illegal JPEG-in- -+ * TIFF encapsulations produced by Microsoft's Wang Imaging -+ * for Windows application with the public-domain TIFF Library. Based upon an -+ * examination of selected output files, this program apparently divides a JPEG -+ * bit-stream into consecutive horizontal TIFF "strips", such that the JPEG -+ * encoder's/decoder's DC coefficients for each image component are reset before -+ * each "strip". Moreover, a "strip" is not necessarily encoded in a multiple -+ * of 8 bits, so one must sometimes discard 1-7 bits at the end of each "strip" -+ * for alignment to the next input-Byte storage boundary. IJG JPEG Library -+ * decoder state is not normally exposed to client applications, so this sub- -+ * routine provides the TIFF Library with a "hook" to make these corrections. -+ * It should be called after "jpeg_start_decompress()" and before -+ * "jpeg_finish_decompress()", just before decoding each "strip" using -+ * "jpeg_read_raw_data()" or "jpeg_read_scanlines()". -+ * -+ * This kludge is not sanctioned or supported by the Independent JPEG Group, and -+ * future changes to the IJG JPEG Library might invalidate it. Do not send bug -+ * reports about this code to IJG developers. Instead, contact the author for -+ * advice: Scott B. Marovich , Hewlett-Packard Labs, 6/01. -+ */ -+GLOBAL(void) -+jpeg_reset_huff_decode (register j_decompress_ptr cinfo,register float *refbw) -+{ register huff_entropy_ptr entropy = (huff_entropy_ptr)cinfo->entropy; -+ register int ci = 0; -+ -+ /* Re-initialize DC predictions */ -+ do entropy->saved.last_dc_val[ci] = -refbw[ci << 1]; -+ while (++ci < cinfo->comps_in_scan); -+ /* Discard encoded input bits, up to the next Byte boundary */ -+ entropy->bitstate.bits_left &= ~7; -+} diff --git a/mingw-w64-libjpeg-turbo/jpeg-typedefs.patch b/mingw-w64-libjpeg-turbo/jpeg-typedefs.patch deleted file mode 100644 index b7c5ccca5a..0000000000 --- a/mingw-w64-libjpeg-turbo/jpeg-typedefs.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/jmorecfg.h 2012-02-10 06:47:55 +0300 -+++ b/jmorecfg.h 2012-05-03 10:29:13 +0400 -@@ -159,7 +159,7 @@ - /* INT32 must hold at least signed 32-bit values. */ - - #ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ --typedef long INT32; -+typedef int INT32; - #endif - - /* Datatype used for image dimensions. The JPEG standard only supports -@@ -224,7 +224,13 @@ - * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. - */ - --#ifndef HAVE_BOOLEAN -+#if defined(_WIN32) && !defined(HAVE_BOOLEAN) -+#ifndef __RPCNDR_H__ -+typedef unsigned char boolean; -+#endif -+#define HAVE_BOOLEAN -+#endif -+#if !defined(HAVE_BOOLEAN) && !defined(__RPCNDR_H__) - typedef int boolean; - #endif - #ifndef FALSE /* in case these macros already exist */ diff --git a/mingw-w64-libjpeg-turbo/libjpeg-buf-oflo.patch b/mingw-w64-libjpeg-turbo/libjpeg-buf-oflo.patch deleted file mode 100644 index b2ddb8979d..0000000000 --- a/mingw-w64-libjpeg-turbo/libjpeg-buf-oflo.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/wrjpgcom.c 2012-05-03 10:37:26 +0400 -+++ b/wrjpgcom.c 2012-05-03 10:38:10 +0400 -@@ -446,6 +446,8 @@ - } else if (keymatch(arg, "comment", 1)) { - if (++argn >= argc) usage(); - comment_arg = argv[argn]; -+#if 0 -+#error "There is a buffer overflow in the code below" - /* If the comment text starts with '"', then we are probably running - * under MS-DOG and must parse out the quoted string ourselves. Sigh. - */ -@@ -466,6 +468,7 @@ - strcat(comment_arg, argv[argn]); - } - } -+#endif - comment_length = (unsigned int) strlen(comment_arg); - } else - usage(); diff --git a/mingw-w64-libjpeg-turbo/libjpeg-turbo-match-autoconf-behavior.patch b/mingw-w64-libjpeg-turbo/libjpeg-turbo-match-autoconf-behavior.patch deleted file mode 100644 index d18a449603..0000000000 --- a/mingw-w64-libjpeg-turbo/libjpeg-turbo-match-autoconf-behavior.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- libjpeg-turbo-1.3.0/win/jconfig.h.in.orig 2013-08-03 21:52:45.115856655 +0200 -+++ libjpeg-turbo-1.3.0/win/jconfig.h.in 2013-08-03 21:53:40.335912080 +0200 -@@ -7,14 +7,14 @@ - #cmakedefine D_ARITH_CODING_SUPPORTED - #cmakedefine MEM_SRCDST_SUPPORTED - --#define HAVE_PROTOTYPES --#define HAVE_UNSIGNED_CHAR --#define HAVE_UNSIGNED_SHORT -+#define HAVE_PROTOTYPES 1 -+#define HAVE_UNSIGNED_CHAR 1 -+#define HAVE_UNSIGNED_SHORT 1 - /* #define void char */ - /* #define const */ - #undef CHAR_IS_UNSIGNED --#define HAVE_STDDEF_H --#define HAVE_STDLIB_H -+#define HAVE_STDDEF_H 1 -+#define HAVE_STDLIB_H 1 - #undef NEED_BSD_STRINGS - #undef NEED_SYS_TYPES_H - #undef NEED_FAR_POINTERS /* we presume a 32-bit flat memory model */ -@@ -25,7 +25,7 @@ - #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ - typedef unsigned char boolean; - #endif --#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ -+#define HAVE_BOOLEAN 1 /* prevent jmorecfg.h from redefining it */ - - /* Define "INT32" as int, not long, per Windows custom */ - #if !(defined(_BASETSD_H_) || defined(_BASETSD_H)) /* don't conflict if basetsd.h already read */ From 65eadb4ba05f1777ee88cad0029007a446b341fa Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 11 Dec 2014 11:28:47 +0300 Subject: [PATCH 0134/2060] lcms2: Add LRN's patches for comatibility with libjpeg-turbo. --- mingw-w64-lcms2/0001-fix-testcmd2.mingw.patch | 11 +++++ ...eed-jconfig-before-jmoreconfig.mingw.patch | 11 +++++ mingw-w64-lcms2/0003-install-mans.all.patch | 45 +++++++++++++++++++ mingw-w64-lcms2/PKGBUILD | 21 +++++++-- 4 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-lcms2/0001-fix-testcmd2.mingw.patch create mode 100644 mingw-w64-lcms2/0002-need-jconfig-before-jmoreconfig.mingw.patch create mode 100644 mingw-w64-lcms2/0003-install-mans.all.patch diff --git a/mingw-w64-lcms2/0001-fix-testcmd2.mingw.patch b/mingw-w64-lcms2/0001-fix-testcmd2.mingw.patch new file mode 100644 index 0000000000..30aaf8f416 --- /dev/null +++ b/mingw-w64-lcms2/0001-fix-testcmd2.mingw.patch @@ -0,0 +1,11 @@ +--- lcms2-2.4/testbed/testcms2.c.orig 2013-04-04 11:44:04 +0400 ++++ lcms2-2.4/testbed/testcms2.c 2013-04-04 11:47:22 +0400 +@@ -33,6 +33,8 @@ + // On Visual Studio, use debug CRT + #ifdef _MSC_VER + # include "crtdbg.h" ++#endif ++#if defined (_WIN32) + # include + #endif + diff --git a/mingw-w64-lcms2/0002-need-jconfig-before-jmoreconfig.mingw.patch b/mingw-w64-lcms2/0002-need-jconfig-before-jmoreconfig.mingw.patch new file mode 100644 index 0000000000..e9092e232b --- /dev/null +++ b/mingw-w64-lcms2/0002-need-jconfig-before-jmoreconfig.mingw.patch @@ -0,0 +1,11 @@ +--- lcms2-2.5/configure.ac.orig 2013-06-27 16:01:28.000000000 +0000 ++++ lcms2-2.5/configure.ac 2013-07-28 06:17:38.507957900 +0000 +@@ -122,7 +122,7 @@ + passed=0; + AC_CHECK_HEADER(jconfig.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) + AC_CHECK_HEADER(jerror.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) +- AC_CHECK_HEADER(jmorecfg.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) ++ AC_CHECK_HEADER(jmorecfg.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`,[#include ]) + AC_CHECK_HEADER(jpeglib.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) + AC_CHECK_LIB(jpeg,jpeg_read_header,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) + diff --git a/mingw-w64-lcms2/0003-install-mans.all.patch b/mingw-w64-lcms2/0003-install-mans.all.patch new file mode 100644 index 0000000000..0973313499 --- /dev/null +++ b/mingw-w64-lcms2/0003-install-mans.all.patch @@ -0,0 +1,45 @@ +diff -ru lcms2-2.5/utils/linkicc/Makefile.am lcms2-2.5.new/utils/linkicc/Makefile.am +--- lcms2-2.5/utils/linkicc/Makefile.am 2013-06-27 16:01:28.000000000 +0000 ++++ lcms2-2.5.new/utils/linkicc/Makefile.am 2013-07-28 06:35:22.305043000 +0000 +@@ -14,6 +14,6 @@ + linkicc_LDADD = $(top_builddir)/src/liblcms2.la + linkicc_LDFLAGS = @LDFLAGS@ + linkicc_SOURCES = linkicc.c ../common/xgetopt.c ../common/vprf.c ../common/utils.h +-linkicc_MANS = linkicc.1 ++man_MANS = linkicc.1 + + EXTRA_DIST = $(man_MANS) +Only in lcms2-2.5.new/utils/linkicc: Makefile.am.orig +diff -ru lcms2-2.5/utils/psicc/Makefile.am lcms2-2.5.new/utils/psicc/Makefile.am +--- lcms2-2.5/utils/psicc/Makefile.am 2013-06-27 16:01:28.000000000 +0000 ++++ lcms2-2.5.new/utils/psicc/Makefile.am 2013-07-28 06:35:34.624607400 +0000 +@@ -14,6 +14,6 @@ + psicc_LDADD = $(top_builddir)/src/liblcms2.la + psicc_LDFLAGS = @LDFLAGS@ + psicc_SOURCES = psicc.c ../common/xgetopt.c ../common/vprf.c ../common/utils.h +-psicc_MANS = psicc.1 ++man_MANS = psicc.1 + + EXTRA_DIST = $(man_MANS) +diff -ru lcms2-2.5/utils/samples/Makefile.am lcms2-2.5.new/utils/samples/Makefile.am +--- lcms2-2.5/utils/samples/Makefile.am 2013-06-27 16:01:28.000000000 +0000 ++++ lcms2-2.5.new/utils/samples/Makefile.am 2013-07-28 06:35:46.745146500 +0000 +@@ -14,6 +14,6 @@ + wtpt_LDADD = $(top_builddir)/src/liblcms2.la + wtpt_LDFLAGS = @LDFLAGS@ + wtpt_SOURCES = wtpt.c ../common/xgetopt.c ../common/vprf.c ../common/utils.h +-wtpt_MANS = wtpt.1 ++man_MANS = wtpt.1 + + EXTRA_DIST = $(man_MANS) roundtrip.c mktiff8.c mkgrayer.c mkcmy.c itufax.c +diff -ru lcms2-2.5/utils/transicc/Makefile.am lcms2-2.5.new/utils/transicc/Makefile.am +--- lcms2-2.5/utils/transicc/Makefile.am 2013-06-27 16:01:28.000000000 +0000 ++++ lcms2-2.5.new/utils/transicc/Makefile.am 2013-07-28 06:35:57.328990500 +0000 +@@ -14,6 +14,6 @@ + transicc_LDADD = $(top_builddir)/src/liblcms2.la + transicc_LDFLAGS = @LDFLAGS@ + transicc_SOURCES = transicc.c ../common/xgetopt.c ../common/vprf.c ../common/utils.h +-transicc_MANS = transicc.1 ++man_MANS = transicc.1 + + EXTRA_DIST = $(man_MANS) diff --git a/mingw-w64-lcms2/PKGBUILD b/mingw-w64-lcms2/PKGBUILD index 7bfe4ffa72..083a4e40f5 100644 --- a/mingw-w64-lcms2/PKGBUILD +++ b/mingw-w64-lcms2/PKGBUILD @@ -3,7 +3,7 @@ _realname=lcms2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.6 -pkgrel=2 +pkgrel=3 pkgdesc="Small-footprint color management engine, version 2 (mingw-w64)" arch=(any) url="http://www.littlecms.com" @@ -11,8 +11,23 @@ license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libtiff") options=('staticlibs' 'strip') -source=("http://downloads.sourceforge.net/sourceforge/lcms/lcms2-${pkgver}.tar.gz") -md5sums=('f4c08d38ceade4a664ebff7228910a33') +source=("http://downloads.sourceforge.net/sourceforge/lcms/lcms2-${pkgver}.tar.gz" + 0001-fix-testcmd2.mingw.patch + 0002-need-jconfig-before-jmoreconfig.mingw.patch + 0003-install-mans.all.patch) +md5sums=('f4c08d38ceade4a664ebff7228910a33' + '495c11d0c18cd754acaf19740028a919' + '4017f8307298d6f65e1cb5bce9684fa5' + '847c756913571406528a30807374b5a7') + +prepare() { + cd ${_realname}-$pkgver + patch -p1 -i ${srcdir}/0001-fix-testcmd2.mingw.patch + patch -p1 -i ${srcdir}/0002-need-jconfig-before-jmoreconfig.mingw.patch + patch -p1 -i ${srcdir}/0003-install-mans.all.patch + + autoreconf -fiv +} build() { cd "$srcdir/${_realname}-$pkgver" From 508a611415da977c30adb81d987ee382ef57605c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 11 Dec 2014 11:45:45 +0300 Subject: [PATCH 0135/2060] lcms: Add patch for compatibility with libjpeg-turbo headers from LRN. --- .../0002-need-jconfig-before-jmoreconfig.mingw.patch | 11 +++++++++++ mingw-w64-lcms/PKGBUILD | 12 ++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-lcms/0002-need-jconfig-before-jmoreconfig.mingw.patch diff --git a/mingw-w64-lcms/0002-need-jconfig-before-jmoreconfig.mingw.patch b/mingw-w64-lcms/0002-need-jconfig-before-jmoreconfig.mingw.patch new file mode 100644 index 0000000000..e9092e232b --- /dev/null +++ b/mingw-w64-lcms/0002-need-jconfig-before-jmoreconfig.mingw.patch @@ -0,0 +1,11 @@ +--- lcms2-2.5/configure.ac.orig 2013-06-27 16:01:28.000000000 +0000 ++++ lcms2-2.5/configure.ac 2013-07-28 06:17:38.507957900 +0000 +@@ -122,7 +122,7 @@ + passed=0; + AC_CHECK_HEADER(jconfig.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) + AC_CHECK_HEADER(jerror.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) +- AC_CHECK_HEADER(jmorecfg.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) ++ AC_CHECK_HEADER(jmorecfg.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`,[#include ]) + AC_CHECK_HEADER(jpeglib.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) + AC_CHECK_LIB(jpeg,jpeg_read_header,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) + diff --git a/mingw-w64-lcms/PKGBUILD b/mingw-w64-lcms/PKGBUILD index 8b17f74d6d..7a61845c6a 100644 --- a/mingw-w64-lcms/PKGBUILD +++ b/mingw-w64-lcms/PKGBUILD @@ -3,7 +3,7 @@ _realname=lcms pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.19 -pkgrel=3 +pkgrel=4 pkgdesc="Lightweight color management development library/engine (mingw-w64)" arch=(any) url="http://www.littlecms.com" @@ -15,12 +15,14 @@ source=("http://downloads.sourceforge.net/sourceforge/lcms/lcms-${pkgver}.tar.gz "cve-2013-4276.patch" "lcms-1.17-windows.patch" "lcms-1.19-rhbz1003950.patch" - "lcms-1.19-rhbz675186.patch") + "lcms-1.19-rhbz675186.patch" + 0002-need-jconfig-before-jmoreconfig.mingw.patch) md5sums=('8af94611baf20d9646c7c2c285859818' 'fa1db4861cfa05f4c4a2c826e1c35502' '9620be1a5bc2ec407c78f643cab62811' 'c1d1f66f6fffe71e3b8005b1dc8962f1' - '11291f3a345439e0d9e3bb4219f885e2') + '11291f3a345439e0d9e3bb4219f885e2' + '4017f8307298d6f65e1cb5bce9684fa5') prepare(){ cd "$srcdir/${_realname}-$pkgver" @@ -28,7 +30,9 @@ prepare(){ patch -Np1 -i "$srcdir/lcms-1.19-rhbz1003950.patch" patch -Np1 -i "$srcdir/lcms-1.19-rhbz675186.patch" #patch -Np1 -i "$srcdir/lcms-1.17-windows.patch" - #autoreconf -f -i + patch -Np1 -i "$srcdir/0002-need-jconfig-before-jmoreconfig.mingw.patch" + + autoreconf -fiv } build() { From ecc05727cd8f65f4c6858b1c466c76e9c65ec210 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 11 Dec 2014 12:13:23 +0300 Subject: [PATCH 0136/2060] libconfig: Format PKGBUILD. --- mingw-w64-libconfig/PKGBUILD | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mingw-w64-libconfig/PKGBUILD b/mingw-w64-libconfig/PKGBUILD index 7b03e33f82..e8fcfa0dc9 100644 --- a/mingw-w64-libconfig/PKGBUILD +++ b/mingw-w64-libconfig/PKGBUILD @@ -1,15 +1,15 @@ # Maintainer: Martell Malone _realname=libconfig - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.9 -pkgrel=3 +pkgrel=1 pkgdesc="C/C++ Configuration File Library (mingw-w64)" arch=('any') url="http://hyperrealm.com/libconfig/libconfig.html" license=('LGPL') -depends=("${MINGW_PACKAGE_PREFIX}-gcc") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('!libtool' '!emptydirs') source=("http://www.hyperrealm.com/libconfig/$_realname-$pkgver.tar.gz") md5sums=('b6ee0ce2b3ef844bad7cac2803a90634') @@ -20,7 +20,9 @@ build() { "${srcdir}"/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static make lib } @@ -28,4 +30,4 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}/lib" make DESTDIR="$pkgdir" install -} \ No newline at end of file +} From 740b5310d96aca9e900c6aa1255054d996a3b59d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 11 Dec 2014 12:35:29 +0300 Subject: [PATCH 0137/2060] gdb: Rebuild for gcc-4.9.2 --- mingw-w64-gdb/PKGBUILD | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/mingw-w64-gdb/PKGBUILD b/mingw-w64-gdb/PKGBUILD index 56548a688c..cadd7172f4 100644 --- a/mingw-w64-gdb/PKGBUILD +++ b/mingw-w64-gdb/PKGBUILD @@ -2,14 +2,13 @@ # Contributor: Ray Donnelly _realname=gdb - -_gcc_ver=4.9.1 +_gcc_ver=4.9.2 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") # Until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62279 is # fixed, we will stick with 7.6.2 which hasn't got this bug.. #pkgver=7.8.1 pkgver=7.6.2 -pkgrel=1 +pkgrel=2 pkgdesc="GNU Debugger (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gdb/" @@ -23,7 +22,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-libiconv" checkdepends=('dejagnu' 'bc') makedepends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-xz") options=('staticlibs' '!distcc' '!ccache') -source=(http://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.xz{,.sig} +source=(http://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.bz2{,.sig} 'gdbinit' 'gdb-fix-display-tabs-on-mingw.patch' # 'gdb-mingw-gcc-4.7.patch' @@ -31,7 +30,7 @@ source=(http://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.xz{,.sig} 'gdb-7.6.2-mingw-gcc-4.7.patch' 'gdb-perfomance.patch' 'gdb-fix-using-gnu-print.patch') -md5sums=('8072be87a94be0936bc3b4b6941b0862' +md5sums=('496399e96654fc0f899a5c964bc1f0f8' 'SKIP' 'dec2439447cb1accf037457b459093f7' 'e48292d553379a9765c82e80e618ffd2' @@ -42,7 +41,7 @@ md5sums=('8072be87a94be0936bc3b4b6941b0862' prepare() { cd ${srcdir}/gdb-${pkgver} -set -x + # set -x # https://sourceware.org/ml/gdb-patches/2013-11/msg00224.html #patch -p1 -i ${srcdir}/gdb-fix-display-tabs-on-mingw.patch # https://sourceware.org/bugzilla/show_bug.cgi?id=15559 From 94b907b38e569fb00c60b564b14a06fe38101ee4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 11 Dec 2014 14:19:51 +0300 Subject: [PATCH 0138/2060] python2: Update to 2.7.9 --- ...0-make-_sysconfigdata.py-relocatable.patch | 8 +- .../0100-MINGW-BASE-use-NT-thread-model.patch | 34 ++-- ...gcc-internal-defines-to-python-platf.patch | 6 +- .../0120-MINGW-use-header-in-lowercase.patch | 12 +- ...igure-MACHDEP-and-platform-for-build.patch | 18 +- ...0140-MINGW-preset-configure-defaults.patch | 20 +-- ...largefile-support-for-windows-builds.patch | 10 +- ...GW-add-wincrypt.h-in-Python-random.c.patch | 6 +- .../0180-MINGW-init-system-calls.patch | 26 +-- ...190-MINGW-detect-REPARSE_DATA_BUFFER.patch | 14 +- ...INGW-build-in-windows-modules-winreg.patch | 24 +-- ...etermine-if-pwdmodule-should-be-used.patch | 20 +-- ...s.path-calculations-for-windows-plat.patch | 26 +-- ...-AC_LIBOBJ-replacement-of-fileblocks.patch | 6 +- ...ler-customize-mingw-cygwin-compilers.patch | 10 +- ...ssue13756-Python-make-fail-on-cygwin.patch | 6 +- ...urrent-dir-in-library-path-if-buildi.patch | 12 -- ...-Mingw-recognition-to-pyport.h-to-al.patch | 12 +- ...300-MINGW-configure-for-shared-build.patch | 12 +- .../0310-MINGW-dynamic-loading-support.patch | 18 +- .../0320-MINGW-implement-exec-prefix.patch | 6 +- ...nore-main-program-for-frozen-scripts.patch | 16 +- ...0-MINGW-setup-exclude-termios-module.patch | 8 +- ...-MINGW-setup-_multiprocessing-module.patch | 10 +- .../0360-MINGW-setup-select-module.patch | 14 +- ...up-_ctypes-module-with-system-libffi.patch | 16 +- ...ct-winsock2-and-setup-_socket-module.patch | 38 ++-- ...0390-MINGW-exclude-unix-only-modules.patch | 12 +- .../0400-MINGW-setup-msvcrt-module.patch | 8 +- ...0410-MINGW-build-extensions-with-GCC.patch | 20 +-- ...2CCompiler-as-default-compiler-for-m.patch | 12 +- .../0430-MINGW-find-import-library.patch | 6 +- .../0440-MINGW-setup-_ssl-module.patch | 8 +- ...Node_SizeOf-as-PyAPI-for-parser-modu.patch | 12 -- ...ation-of-posix-build-in-sysconfig.py.patch | 12 +- ...W-support-stdcall-without-underscore.patch | 6 +- ...tion-of-posix-build-in-distutils-sys.patch | 10 +- .../0490-MINGW-customize-site.patch | 6 +- .../0500-add-python-config-sh.patch | 38 ++-- .../0510-cross-darwin-feature.patch | 24 +-- ...520-py3k-mingw-ntthreads-vs-pthreads.patch | 14 +- .../0530-mingw-system-libffi.patch | 46 ++--- .../0540-mingw-semicolon-DELIM.patch | 32 ++-- .../0550-mingw-regen-use-stddef_h.patch | 14 +- .../0560-mingw-use-posix-getpath.patch | 20 +-- ...mingw-add-ModuleFileName-dir-to-PATH.patch | 6 +- ...dd-BUILDIN_WIN32_MODULEs-time-msvcrt.patch | 20 +-- ...580-mingw32-test-REPARSE_DATA_BUFFER.patch | 8 +- ...mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch | 8 +- ...sys-mingw-prefer-unix-sep-if-MSYSTEM.patch | 14 +- ...s-cygwin-semi-native-build-sysconfig.patch | 22 +-- .../0620-mingw-sysconfig-like-posix.patch | 14 +- ...builtin_for_Popen_in_cygwinccompiler.patch | 6 +- ...x86_64-size_t-format-specifier-pid_t.patch | 6 +- ...d-multiarch-paths-if-cross-compiling.patch | 8 +- ...ngw-use-backslashes-in-compileall-py.patch | 6 +- ...-msys-convert_path-fix-and-root-hack.patch | 24 +-- .../0690-allow-static-tcltk.patch | 14 +- ...etect-WINDOW-_flags-for-different-nc.patch | 20 +-- .../0720-mingw-pdcurses_ISPAD.patch | 6 +- mingw-w64-python2/0740-grammar-fixes.patch | 12 +- ...-to-PYTHONPATH-b4-pybuilddir-txt-dir.patch | 8 +- ...sys-monkeypatch-os-system-via-sh-exe.patch | 6 +- ...place-slashes-used-in-io-redirection.patch | 16 +- ...ingw-add-_exec_prefix-for-tcltk-dlls.patch | 6 +- .../0800-mingw-install-layout-as-posix.patch | 6 +- ...order-bininstall-ln-symlink-creation.patch | 8 +- ...0830-add-build-sysroot-config-option.patch | 26 +-- .../0840-add-builddir-to-library_dirs.patch | 8 +- ...N_FOR_BUILD-gteq-276-and-fullpath-it.patch | 8 +- .../0860-mingw-build-optimized-ext.patch | 6 +- ...0870-mingw-add-LIBPL-to-library-dirs.patch | 12 ++ ...fix-using-dllhandle-and-winver-mingw.patch | 8 +- .../1000-dont-link-with-gettext.patch | 14 +- .../1010-ctypes-python-dll.patch | 6 +- .../1020-gdbm-module-includes.patch | 6 +- .../1030-use-gnu_printf-in-format.patch | 24 +-- mingw-w64-python2/1040-install-msilib.patch | 8 +- mingw-w64-python2/PKGBUILD | 167 +++++++++--------- 79 files changed, 615 insertions(+), 630 deletions(-) delete mode 100644 mingw-w64-python2/0280-issue17219-add-current-dir-in-library-path-if-buildi.patch delete mode 100644 mingw-w64-python2/0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch create mode 100644 mingw-w64-python2/0870-mingw-add-LIBPL-to-library-dirs.patch diff --git a/mingw-w64-python2/0000-make-_sysconfigdata.py-relocatable.patch b/mingw-w64-python2/0000-make-_sysconfigdata.py-relocatable.patch index f7d4c752a8..22b89cb2bc 100644 --- a/mingw-w64-python2/0000-make-_sysconfigdata.py-relocatable.patch +++ b/mingw-w64-python2/0000-make-_sysconfigdata.py-relocatable.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py ---- a/Lib/sysconfig.py 2014-06-30 03:05:31.000000000 +0100 -+++ b/Lib/sysconfig.py 2014-10-11 22:39:33.953224000 +0100 +diff -Naur Python-2.7.9-orig/Lib/sysconfig.py Python-2.7.9/Lib/sysconfig.py +--- Python-2.7.9-orig/Lib/sysconfig.py 2014-12-10 18:59:40.000000000 +0300 ++++ Python-2.7.9/Lib/sysconfig.py 2014-12-11 13:49:27.926600000 +0300 @@ -231,6 +231,7 @@ done[n] = v @@ -9,7 +9,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py while notdone: for name in notdone.keys(): value = notdone[name] -@@ -342,6 +343,19 @@ +@@ -346,6 +347,19 @@ f.write('build_time_vars = ') pprint.pprint(vars, stream=f) diff --git a/mingw-w64-python2/0100-MINGW-BASE-use-NT-thread-model.patch b/mingw-w64-python2/0100-MINGW-BASE-use-NT-thread-model.patch index 6638c19d2b..7fa2b04e1e 100644 --- a/mingw-w64-python2/0100-MINGW-BASE-use-NT-thread-model.patch +++ b/mingw-w64-python2/0100-MINGW-BASE-use-NT-thread-model.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:39:35.459310100 +0100 -+++ b/configure.ac 2014-10-11 22:39:38.188466200 +0100 -@@ -1346,6 +1346,37 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-10 19:00:00.000000000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:49:29.658200000 +0300 +@@ -1349,6 +1349,37 @@ CFLAGS=$save_CFLAGS fi @@ -39,7 +39,7 @@ diff -urN a/configure.ac b/configure.ac # On some compilers, pthreads are available without further options # (e.g. MacOS X). On some of these systems, the compiler will not # complain if unaccepted options are passed (e.g. gcc on Mac OS X). -@@ -1373,6 +1404,7 @@ +@@ -1376,6 +1407,7 @@ ],[ac_cv_pthread_is_default=no],[ac_cv_pthread_is_default=no]) ]) AC_MSG_RESULT($ac_cv_pthread_is_default) @@ -47,7 +47,7 @@ diff -urN a/configure.ac b/configure.ac if test $ac_cv_pthread_is_default = yes -@@ -1464,6 +1496,9 @@ +@@ -1467,6 +1499,9 @@ AC_MSG_RESULT($ac_cv_pthread) fi @@ -57,7 +57,7 @@ diff -urN a/configure.ac b/configure.ac # If we have set a CC compiler flag for thread support then # check if it works for CXX, too. ac_cv_cxx_thread=no -@@ -1484,6 +1519,10 @@ +@@ -1487,6 +1522,10 @@ then CXX="$CXX -pthread" ac_cv_cxx_thread=yes @@ -68,7 +68,7 @@ diff -urN a/configure.ac b/configure.ac fi if test $ac_cv_cxx_thread = yes -@@ -1513,6 +1552,11 @@ +@@ -1516,6 +1555,11 @@ dnl AC_MSG_RESULT($cpp_type) # checks for header files @@ -80,7 +80,7 @@ diff -urN a/configure.ac b/configure.ac AC_HEADER_STDC AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \ fcntl.h grp.h \ -@@ -1749,9 +1793,14 @@ +@@ -1752,9 +1796,14 @@ fi AC_MSG_CHECKING(for pthread_t) have_pthread_t=no @@ -95,7 +95,7 @@ diff -urN a/configure.ac b/configure.ac AC_MSG_RESULT($have_pthread_t) if test "$have_pthread_t" = yes ; then AC_CHECK_SIZEOF(pthread_t, [], [ -@@ -2220,11 +2269,16 @@ +@@ -2223,11 +2272,16 @@ AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX # only check for sem_init if thread support is requested @@ -112,7 +112,7 @@ diff -urN a/configure.ac b/configure.ac # check if we need libintl for locale functions AC_CHECK_LIB(intl, textdomain, -@@ -2439,6 +2493,13 @@ +@@ -2442,6 +2496,13 @@ AC_DEFINE(WITH_THREAD) posix_threads=yes THREADOBJ="Python/thread.o" @@ -126,7 +126,7 @@ diff -urN a/configure.ac b/configure.ac else if test ! -z "$with_threads" -a -d "$with_threads" then LDFLAGS="$LDFLAGS -L$with_threads" -@@ -2907,6 +2968,15 @@ +@@ -2910,6 +2971,15 @@ AC_MSG_RESULT(MACHDEP_OBJS) # checks for library functions @@ -142,7 +142,7 @@ diff -urN a/configure.ac b/configure.ac AC_CHECK_FUNCS(alarm setitimer getitimer bind_textdomain_codeset chown \ clock confstr ctermid execv fchmod fchown fork fpathconf ftime ftruncate \ gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \ -@@ -3809,6 +3879,10 @@ +@@ -3812,6 +3882,10 @@ # the kernel module that provides POSIX semaphores # isn't loaded by default, so an attempt to call # sem_open results in a 'Signal 12' error. @@ -153,7 +153,7 @@ diff -urN a/configure.ac b/configure.ac AC_MSG_CHECKING(whether POSIX semaphores are enabled) AC_CACHE_VAL(ac_cv_posix_semaphores_enabled, AC_RUN_IFELSE([AC_LANG_SOURCE([[ -@@ -3842,6 +3916,14 @@ +@@ -3845,6 +3919,14 @@ # Multiprocessing check for broken sem_getvalue AC_MSG_CHECKING(for broken sem_getvalue) @@ -168,9 +168,9 @@ diff -urN a/configure.ac b/configure.ac AC_CACHE_VAL(ac_cv_broken_sem_getvalue, AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include -diff -urN a/pyconfig.h.in b/pyconfig.h.in ---- a/pyconfig.h.in 2014-10-11 22:39:35.230297000 +0100 -+++ b/pyconfig.h.in 2014-10-11 22:39:38.189466300 +0100 +diff -Naur Python-2.7.9-orig/pyconfig.h.in Python-2.7.9/pyconfig.h.in +--- Python-2.7.9-orig/pyconfig.h.in 2014-12-10 19:00:01.000000000 +0300 ++++ Python-2.7.9/pyconfig.h.in 2014-12-11 13:49:29.658200000 +0300 @@ -936,6 +936,9 @@ /* Define if mvwdelch in curses.h is an expression. */ #undef MVWDELCH_IS_EXPRESSION diff --git a/mingw-w64-python2/0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch b/mingw-w64-python2/0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch index f42644aa87..6a6e2606ae 100644 --- a/mingw-w64-python2/0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch +++ b/mingw-w64-python2/0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch @@ -1,6 +1,6 @@ -diff -urN a/Include/pyport.h b/Include/pyport.h ---- a/Include/pyport.h 2014-10-11 22:39:39.595546700 +0100 -+++ b/Include/pyport.h 2014-10-11 22:39:42.893735300 +0100 +diff -Naur Python-2.7.9-orig/Include/pyport.h Python-2.7.9/Include/pyport.h +--- Python-2.7.9-orig/Include/pyport.h 2014-12-10 18:59:32.000000000 +0300 ++++ Python-2.7.9/Include/pyport.h 2014-12-11 13:49:31.233800000 +0300 @@ -13,6 +13,21 @@ #include #endif diff --git a/mingw-w64-python2/0120-MINGW-use-header-in-lowercase.patch b/mingw-w64-python2/0120-MINGW-use-header-in-lowercase.patch index 4a6184447f..876df46a99 100644 --- a/mingw-w64-python2/0120-MINGW-use-header-in-lowercase.patch +++ b/mingw-w64-python2/0120-MINGW-use-header-in-lowercase.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/signalmodule.c b/Modules/signalmodule.c ---- a/Modules/signalmodule.c 2014-10-11 22:39:45.310873600 +0100 -+++ b/Modules/signalmodule.c 2014-10-11 22:39:47.451996000 +0100 +diff -Naur Python-2.7.9-orig/Modules/signalmodule.c Python-2.7.9/Modules/signalmodule.c +--- Python-2.7.9-orig/Modules/signalmodule.c 2014-12-10 18:59:55.000000000 +0300 ++++ Python-2.7.9/Modules/signalmodule.c 2014-12-11 13:49:33.839000000 +0300 @@ -7,7 +7,7 @@ #include "intrcheck.h" @@ -10,9 +10,9 @@ diff -urN a/Modules/signalmodule.c b/Modules/signalmodule.c #ifdef HAVE_PROCESS_H #include #endif -diff -urN a/Modules/socketmodule.h b/Modules/socketmodule.h ---- a/Modules/socketmodule.h 2014-10-11 22:39:45.309873500 +0100 -+++ b/Modules/socketmodule.h 2014-10-11 22:39:47.452996100 +0100 +diff -Naur Python-2.7.9-orig/Modules/socketmodule.h Python-2.7.9/Modules/socketmodule.h +--- Python-2.7.9-orig/Modules/socketmodule.h 2014-12-10 18:59:55.000000000 +0300 ++++ Python-2.7.9/Modules/socketmodule.h 2014-12-11 13:49:33.854600000 +0300 @@ -21,7 +21,7 @@ * I use SIO_GET_MULTICAST_FILTER to detect a decent SDK. */ diff --git a/mingw-w64-python2/0130-MINGW-configure-MACHDEP-and-platform-for-build.patch b/mingw-w64-python2/0130-MINGW-configure-MACHDEP-and-platform-for-build.patch index 005ab7fa92..467e1f33cd 100644 --- a/mingw-w64-python2/0130-MINGW-configure-MACHDEP-and-platform-for-build.patch +++ b/mingw-w64-python2/0130-MINGW-configure-MACHDEP-and-platform-for-build.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:39:48.990084000 +0100 -+++ b/configure.ac 2014-10-11 22:39:52.780300800 +0100 -@@ -319,6 +319,9 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:31.124600000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:49:35.383400000 +0300 +@@ -322,6 +322,9 @@ *-*-cygwin*) ac_sys_system=Cygwin ;; @@ -11,7 +11,7 @@ diff -urN a/configure.ac b/configure.ac *) # for now, limit cross builds to known configurations MACHDEP="unknown" -@@ -346,6 +349,7 @@ +@@ -349,6 +352,7 @@ darwin*) MACHDEP="darwin";; atheos*) MACHDEP="atheos";; irix646) MACHDEP="irix6";; @@ -19,7 +19,7 @@ diff -urN a/configure.ac b/configure.ac '') MACHDEP="unknown";; esac fi -@@ -365,12 +369,23 @@ +@@ -368,12 +372,23 @@ *-*-cygwin*) _host_cpu= ;; @@ -43,9 +43,9 @@ diff -urN a/configure.ac b/configure.ac fi # Some systems cannot stand _XOPEN_SOURCE being defined at all; they -diff -urN a/Python/getplatform.c b/Python/getplatform.c ---- a/Python/getplatform.c 2014-10-11 22:39:49.259099400 +0100 -+++ b/Python/getplatform.c 2014-10-11 22:39:52.782300900 +0100 +diff -Naur Python-2.7.9-orig/Python/getplatform.c Python-2.7.9/Python/getplatform.c +--- Python-2.7.9-orig/Python/getplatform.c 2014-12-10 18:59:59.000000000 +0300 ++++ Python-2.7.9/Python/getplatform.c 2014-12-11 13:49:35.383400000 +0300 @@ -1,6 +1,12 @@ #include "Python.h" diff --git a/mingw-w64-python2/0140-MINGW-preset-configure-defaults.patch b/mingw-w64-python2/0140-MINGW-preset-configure-defaults.patch index 94a0154749..23112963bd 100644 --- a/mingw-w64-python2/0140-MINGW-preset-configure-defaults.patch +++ b/mingw-w64-python2/0140-MINGW-preset-configure-defaults.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:39:54.637407000 +0100 -+++ b/configure.ac 2014-10-11 22:39:57.774586500 +0100 -@@ -748,6 +748,27 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:36.865400000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:49:36.990200000 +0300 +@@ -751,6 +751,27 @@ ;; esac @@ -29,9 +29,9 @@ diff -urN a/configure.ac b/configure.ac AC_SUBST(LIBRARY) AC_MSG_CHECKING(LIBRARY) -diff -urN a/Misc/config_mingw b/Misc/config_mingw ---- a/Misc/config_mingw 1970-01-01 01:00:00.000000000 +0100 -+++ b/Misc/config_mingw 2014-10-11 22:39:57.776586600 +0100 +diff -Naur Python-2.7.9-orig/Misc/config_mingw Python-2.7.9/Misc/config_mingw +--- Python-2.7.9-orig/Misc/config_mingw 1970-01-01 03:00:00.000000000 +0300 ++++ Python-2.7.9/Misc/config_mingw 2014-12-11 13:49:36.990200000 +0300 @@ -0,0 +1,12 @@ +# configure defaults for mingw* hosts + @@ -45,9 +45,9 @@ diff -urN a/Misc/config_mingw b/Misc/config_mingw +# files to ignore +ac_cv_file__dev_ptmx=ignore #NOTE: under MSYS environment device exist +ac_cv_file__dev_ptc=no -diff -urN a/Misc/cross_mingw32 b/Misc/cross_mingw32 ---- a/Misc/cross_mingw32 1970-01-01 01:00:00.000000000 +0100 -+++ b/Misc/cross_mingw32 2014-10-11 22:39:57.776586600 +0100 +diff -Naur Python-2.7.9-orig/Misc/cross_mingw32 Python-2.7.9/Misc/cross_mingw32 +--- Python-2.7.9-orig/Misc/cross_mingw32 1970-01-01 03:00:00.000000000 +0300 ++++ Python-2.7.9/Misc/cross_mingw32 2014-12-11 13:49:37.037000000 +0300 @@ -0,0 +1,11 @@ +# configure defaults for mingw32 host if cross-build + diff --git a/mingw-w64-python2/0150-MINGW-configure-largefile-support-for-windows-builds.patch b/mingw-w64-python2/0150-MINGW-configure-largefile-support-for-windows-builds.patch index dfc5c732a2..89f0a42315 100644 --- a/mingw-w64-python2/0150-MINGW-configure-largefile-support-for-windows-builds.patch +++ b/mingw-w64-python2/0150-MINGW-configure-largefile-support-for-windows-builds.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:39:58.949653700 +0100 -+++ b/configure.ac 2014-10-11 22:40:01.967826300 +0100 -@@ -1792,10 +1792,22 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:38.565800000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:49:38.737400000 +0300 +@@ -1795,10 +1795,22 @@ ]) AC_MSG_CHECKING(whether to enable large file support) @@ -24,7 +24,7 @@ diff -urN a/configure.ac b/configure.ac AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1, [Defined to enable large file support when an off_t is bigger than a long and long long is available and at least as big as an off_t. You may need -@@ -1805,9 +1817,6 @@ +@@ -1808,9 +1820,6 @@ else AC_MSG_RESULT(no) fi diff --git a/mingw-w64-python2/0160-MINGW-add-wincrypt.h-in-Python-random.c.patch b/mingw-w64-python2/0160-MINGW-add-wincrypt.h-in-Python-random.c.patch index d569de9ccb..59ee6606f1 100644 --- a/mingw-w64-python2/0160-MINGW-add-wincrypt.h-in-Python-random.c.patch +++ b/mingw-w64-python2/0160-MINGW-add-wincrypt.h-in-Python-random.c.patch @@ -1,6 +1,6 @@ -diff -urN a/Python/random.c b/Python/random.c ---- a/Python/random.c 2014-10-11 22:40:03.605920000 +0100 -+++ b/Python/random.c 2014-10-11 22:40:06.526087000 +0100 +diff -Naur Python-2.7.9-orig/Python/random.c Python-2.7.9/Python/random.c +--- Python-2.7.9-orig/Python/random.c 2014-12-10 18:59:59.000000000 +0300 ++++ Python-2.7.9/Python/random.c 2014-12-11 13:49:40.266200000 +0300 @@ -1,6 +1,12 @@ #include "Python.h" #ifdef MS_WINDOWS diff --git a/mingw-w64-python2/0180-MINGW-init-system-calls.patch b/mingw-w64-python2/0180-MINGW-init-system-calls.patch index 61ee3a907e..74b2c1383b 100644 --- a/mingw-w64-python2/0180-MINGW-init-system-calls.patch +++ b/mingw-w64-python2/0180-MINGW-init-system-calls.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:40:09.281244600 +0100 -+++ b/configure.ac 2014-10-11 22:40:12.205411900 +0100 -@@ -524,6 +524,14 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:40.157000000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:49:41.841800000 +0300 +@@ -527,6 +527,14 @@ fi AC_MSG_RESULT($EXTRAPLATDIR) @@ -16,9 +16,9 @@ diff -urN a/configure.ac b/configure.ac # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET, # it may influence the way we can build extensions, so distutils # needs to check it -diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c ---- a/Modules/posixmodule.c 2014-10-11 22:40:09.860277700 +0100 -+++ b/Modules/posixmodule.c 2014-10-11 22:40:12.209412100 +0100 +diff -Naur Python-2.7.9-orig/Modules/posixmodule.c Python-2.7.9/Modules/posixmodule.c +--- Python-2.7.9-orig/Modules/posixmodule.c 2014-12-10 18:59:55.000000000 +0300 ++++ Python-2.7.9/Modules/posixmodule.c 2014-12-11 13:49:41.841800000 +0300 @@ -131,6 +131,25 @@ #define HAVE_CWAIT 1 #define HAVE_FSYNC 1 @@ -72,9 +72,9 @@ diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c #define INITFUNC initnt #define MODNAME "nt" -diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in ---- a/Modules/Setup.config.in 2014-10-11 22:40:09.855277400 +0100 -+++ b/Modules/Setup.config.in 2014-10-11 22:40:12.210412100 +0100 +diff -Naur Python-2.7.9-orig/Modules/Setup.config.in Python-2.7.9/Modules/Setup.config.in +--- Python-2.7.9-orig/Modules/Setup.config.in 2014-12-10 18:59:51.000000000 +0300 ++++ Python-2.7.9/Modules/Setup.config.in 2014-12-11 13:49:41.841800000 +0300 @@ -3,6 +3,9 @@ # The purpose of this file is to conditionally enable certain modules # based on configure-time options. @@ -85,9 +85,9 @@ diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in # Threading @USE_THREAD_MODULE@thread threadmodule.c -diff -urN a/Modules/Setup.dist b/Modules/Setup.dist ---- a/Modules/Setup.dist 2014-10-11 22:40:09.644265400 +0100 -+++ b/Modules/Setup.dist 2014-10-11 22:40:12.211412200 +0100 +diff -Naur Python-2.7.9-orig/Modules/Setup.dist Python-2.7.9/Modules/Setup.dist +--- Python-2.7.9-orig/Modules/Setup.dist 2014-12-10 18:59:51.000000000 +0300 ++++ Python-2.7.9/Modules/Setup.dist 2014-12-11 13:49:41.841800000 +0300 @@ -112,7 +112,6 @@ # This only contains the minimal set of modules required to run the # setup.py script in the root of the Python source tree. diff --git a/mingw-w64-python2/0190-MINGW-detect-REPARSE_DATA_BUFFER.patch b/mingw-w64-python2/0190-MINGW-detect-REPARSE_DATA_BUFFER.patch index 556692a463..138624134d 100644 --- a/mingw-w64-python2/0190-MINGW-detect-REPARSE_DATA_BUFFER.patch +++ b/mingw-w64-python2/0190-MINGW-detect-REPARSE_DATA_BUFFER.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:40:13.565489600 +0100 -+++ b/configure.ac 2014-10-11 22:40:16.521658700 +0100 -@@ -3527,6 +3527,27 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:43.308200000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:49:43.448600000 +0300 +@@ -3530,6 +3530,27 @@ AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)]) fi @@ -29,9 +29,9 @@ diff -urN a/configure.ac b/configure.ac # checks for compiler characteristics AC_C_CHAR_UNSIGNED -diff -urN a/pyconfig.h.in b/pyconfig.h.in ---- a/pyconfig.h.in 2014-10-11 22:40:14.118521300 +0100 -+++ b/pyconfig.h.in 2014-10-11 22:40:16.523658800 +0100 +diff -Naur Python-2.7.9-orig/pyconfig.h.in Python-2.7.9/pyconfig.h.in +--- Python-2.7.9-orig/pyconfig.h.in 2014-12-11 13:49:31.124600000 +0300 ++++ Python-2.7.9/pyconfig.h.in 2014-12-11 13:49:43.448600000 +0300 @@ -550,6 +550,9 @@ /* Define to 1 if you have the `realpath' function. */ #undef HAVE_REALPATH diff --git a/mingw-w64-python2/0200-MINGW-build-in-windows-modules-winreg.patch b/mingw-w64-python2/0200-MINGW-build-in-windows-modules-winreg.patch index 5c1ce780a6..7a937d3d21 100644 --- a/mingw-w64-python2/0200-MINGW-build-in-windows-modules-winreg.patch +++ b/mingw-w64-python2/0200-MINGW-build-in-windows-modules-winreg.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:40:17.755729300 +0100 -+++ b/configure.ac 2014-10-11 22:40:20.880908100 +0100 -@@ -2448,6 +2448,14 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:44.961800000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:49:45.086600000 +0300 +@@ -2451,6 +2451,14 @@ fi]) AC_MSG_RESULT($with_dbmliborder) @@ -16,9 +16,9 @@ diff -urN a/configure.ac b/configure.ac # Determine if signalmodule should be used. AC_SUBST(USE_SIGNAL_MODULE) AC_SUBST(SIGNAL_OBJS) -diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in ---- a/Modules/Setup.config.in 2014-10-11 22:40:18.716784300 +0100 -+++ b/Modules/Setup.config.in 2014-10-11 22:40:20.882908200 +0100 +diff -Naur Python-2.7.9-orig/Modules/Setup.config.in Python-2.7.9/Modules/Setup.config.in +--- Python-2.7.9-orig/Modules/Setup.config.in 2014-12-11 13:49:43.323800000 +0300 ++++ Python-2.7.9/Modules/Setup.config.in 2014-12-11 13:49:45.086600000 +0300 @@ -12,5 +12,8 @@ # The signal module @USE_SIGNAL_MODULE@signal signalmodule.c @@ -28,9 +28,9 @@ diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in + # The rest of the modules previously listed in this file are built # by the setup.py script in Python 2.1 and later. -diff -urN a/PC/_winreg.c b/PC/_winreg.c ---- a/PC/_winreg.c 2014-10-11 22:40:19.147808900 +0100 -+++ b/PC/_winreg.c 2014-10-11 22:40:20.883908200 +0100 +diff -Naur Python-2.7.9-orig/PC/_winreg.c Python-2.7.9/PC/_winreg.c +--- Python-2.7.9-orig/PC/_winreg.c 2014-12-10 18:59:57.000000000 +0300 ++++ Python-2.7.9/PC/_winreg.c 2014-12-11 13:49:45.086600000 +0300 @@ -17,6 +17,25 @@ #include "malloc.h" /* for alloca */ #include "windows.h" @@ -57,7 +57,7 @@ diff -urN a/PC/_winreg.c b/PC/_winreg.c static BOOL PyHKEY_AsHKEY(PyObject *ob, HKEY *pRes, BOOL bNoneOK); static PyObject *PyHKEY_FromHKEY(HKEY h); static BOOL PyHKEY_Close(PyObject *obHandle); -@@ -1093,6 +1112,10 @@ +@@ -1095,6 +1114,10 @@ static PyObject * PyDeleteKeyEx(PyObject *self, PyObject *args) { @@ -68,7 +68,7 @@ diff -urN a/PC/_winreg.c b/PC/_winreg.c HKEY hKey; PyObject *obKey; HMODULE hMod; -@@ -1128,6 +1151,11 @@ +@@ -1130,6 +1153,11 @@ return PyErr_SetFromWindowsErrWithFunction(rc, "RegDeleteKeyEx"); Py_INCREF(Py_None); return Py_None; diff --git a/mingw-w64-python2/0210-MINGW-determine-if-pwdmodule-should-be-used.patch b/mingw-w64-python2/0210-MINGW-determine-if-pwdmodule-should-be-used.patch index 67a2fac70d..104e5d66b1 100644 --- a/mingw-w64-python2/0210-MINGW-determine-if-pwdmodule-should-be-used.patch +++ b/mingw-w64-python2/0210-MINGW-determine-if-pwdmodule-should-be-used.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:40:22.090977300 +0100 -+++ b/configure.ac 2014-10-11 22:40:25.798189300 +0100 -@@ -2456,6 +2456,13 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:46.506200000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:49:46.631000000 +0300 +@@ -2459,6 +2459,13 @@ *-*-mingw*) USE_WIN32_MODULE=;; esac @@ -15,9 +15,9 @@ diff -urN a/configure.ac b/configure.ac # Determine if signalmodule should be used. AC_SUBST(USE_SIGNAL_MODULE) AC_SUBST(SIGNAL_OBJS) -diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in ---- a/Modules/Setup.config.in 2014-10-11 22:40:22.097977700 +0100 -+++ b/Modules/Setup.config.in 2014-10-11 22:40:25.800189400 +0100 +diff -Naur Python-2.7.9-orig/Modules/Setup.config.in Python-2.7.9/Modules/Setup.config.in +--- Python-2.7.9-orig/Modules/Setup.config.in 2014-12-11 13:49:46.521800000 +0300 ++++ Python-2.7.9/Modules/Setup.config.in 2014-12-11 13:49:46.631000000 +0300 @@ -6,6 +6,9 @@ # init system calls(posix/nt/...) for INITFUNC (used by makesetup) @INITSYS@ posixmodule.c @@ -28,9 +28,9 @@ diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in # Threading @USE_THREAD_MODULE@thread threadmodule.c -diff -urN a/Modules/Setup.dist b/Modules/Setup.dist ---- a/Modules/Setup.dist 2014-10-11 22:40:22.100977900 +0100 -+++ b/Modules/Setup.dist 2014-10-11 22:40:25.802189500 +0100 +diff -Naur Python-2.7.9-orig/Modules/Setup.dist Python-2.7.9/Modules/Setup.dist +--- Python-2.7.9-orig/Modules/Setup.dist 2014-12-11 13:49:43.323800000 +0300 ++++ Python-2.7.9/Modules/Setup.dist 2014-12-11 13:49:46.646600000 +0300 @@ -113,8 +113,6 @@ # setup.py script in the root of the Python source tree. diff --git a/mingw-w64-python2/0220-MINGW-default-sys.path-calculations-for-windows-plat.patch b/mingw-w64-python2/0220-MINGW-default-sys.path-calculations-for-windows-plat.patch index dd4312ecdd..493fbedeaa 100644 --- a/mingw-w64-python2/0220-MINGW-default-sys.path-calculations-for-windows-plat.patch +++ b/mingw-w64-python2/0220-MINGW-default-sys.path-calculations-for-windows-plat.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:40:27.571290700 +0100 -+++ b/configure.ac 2014-10-11 22:40:31.271502400 +0100 -@@ -4710,8 +4710,21 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:48.175400000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:49:48.331400000 +0300 +@@ -4713,8 +4713,21 @@ THREADHEADERS="$THREADHEADERS \$(srcdir)/$h" done @@ -23,10 +23,10 @@ diff -urN a/configure.ac b/configure.ac AC_MSG_CHECKING(for build directories) for dir in $SRCDIRS; do if test ! -d $dir; then -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 22:40:27.684297200 +0100 -+++ b/Makefile.pre.in 2014-10-11 22:40:31.272502400 +0100 -@@ -211,7 +211,7 @@ +diff -Naur Python-2.7.9-orig/Makefile.pre.in Python-2.7.9/Makefile.pre.in +--- Python-2.7.9-orig/Makefile.pre.in 2014-12-10 18:59:50.000000000 +0300 ++++ Python-2.7.9/Makefile.pre.in 2014-12-11 13:49:48.331400000 +0300 +@@ -214,7 +214,7 @@ # Modules MODULE_OBJS= \ Modules/config.o \ @@ -35,7 +35,7 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in Modules/main.o \ Modules/gcmodule.o -@@ -578,6 +578,7 @@ +@@ -591,6 +591,7 @@ -DHGBRANCH="\"`LC_ALL=C $(HGBRANCH)`\"" \ -o $@ $(srcdir)/Modules/getbuildinfo.c @@ -43,7 +43,7 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile $(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \ -DPREFIX='"$(prefix)"' \ -@@ -586,6 +587,13 @@ +@@ -599,6 +600,13 @@ -DVPATH='"$(VPATH)"' \ -o $@ $(srcdir)/Modules/getpath.c @@ -57,9 +57,9 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in Modules/python.o: $(srcdir)/Modules/python.c $(MAINCC) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/python.c -diff -urN a/PC/getpathp.c b/PC/getpathp.c ---- a/PC/getpathp.c 2014-10-11 22:40:28.033317200 +0100 -+++ b/PC/getpathp.c 2014-10-11 22:40:31.274502500 +0100 +diff -Naur Python-2.7.9-orig/PC/getpathp.c Python-2.7.9/PC/getpathp.c +--- Python-2.7.9-orig/PC/getpathp.c 2014-12-10 18:59:58.000000000 +0300 ++++ Python-2.7.9/PC/getpathp.c 2014-12-11 13:49:48.331400000 +0300 @@ -81,10 +81,26 @@ * information sources. */ diff --git a/mingw-w64-python2/0230-MINGW-AC_LIBOBJ-replacement-of-fileblocks.patch b/mingw-w64-python2/0230-MINGW-AC_LIBOBJ-replacement-of-fileblocks.patch index cb3de7346e..1270f59a45 100644 --- a/mingw-w64-python2/0230-MINGW-AC_LIBOBJ-replacement-of-fileblocks.patch +++ b/mingw-w64-python2/0230-MINGW-AC_LIBOBJ-replacement-of-fileblocks.patch @@ -1,6 +1,6 @@ -diff -urN a/Python/fileblocks.c b/Python/fileblocks.c ---- a/Python/fileblocks.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/Python/fileblocks.c 2014-10-11 22:40:37.158839100 +0100 +diff -Naur Python-2.7.9-orig/Python/fileblocks.c Python-2.7.9/Python/fileblocks.c +--- Python-2.7.9-orig/Python/fileblocks.c 1970-01-01 03:00:00.000000000 +0300 ++++ Python-2.7.9/Python/fileblocks.c 2014-12-11 13:49:50.031800000 +0300 @@ -0,0 +1,17 @@ +/* +-- Macro: AC_STRUCT_ST_BLOCKS diff --git a/mingw-w64-python2/0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch b/mingw-w64-python2/0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch index dcf96cae9b..7e74cc706f 100644 --- a/mingw-w64-python2/0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch +++ b/mingw-w64-python2/0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py ---- a/Lib/distutils/sysconfig.py 2014-10-11 22:40:39.798990100 +0100 -+++ b/Lib/distutils/sysconfig.py 2014-10-11 22:40:42.832163600 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/sysconfig.py Python-2.7.9/Lib/distutils/sysconfig.py +--- Python-2.7.9-orig/Lib/distutils/sysconfig.py 2014-12-10 18:59:34.000000000 +0300 ++++ Python-2.7.9/Lib/distutils/sysconfig.py 2014-12-11 13:49:51.607400000 +0300 @@ -154,7 +154,23 @@ Mainly needed on Unix, so we can plug in the information that varies across Unices and is stored in Python's Makefile. @@ -31,6 +31,6 @@ diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py # version and build tools may not support the same set # of CPU architectures for universal builds. - global _config_vars - if not _config_vars.get('CUSTOMIZED_OSX_COMPILER', ''): + # Use get_config_var() to ensure _config_vars is initialized. + if not get_config_var('CUSTOMIZED_OSX_COMPILER'): import _osx_support - _osx_support.customize_compiler(_config_vars) diff --git a/mingw-w64-python2/0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch b/mingw-w64-python2/0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch index abb8485a91..f88cecc194 100644 --- a/mingw-w64-python2/0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch +++ b/mingw-w64-python2/0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py ---- a/Lib/distutils/command/build_ext.py 2014-10-11 22:40:45.308305200 +0100 -+++ b/Lib/distutils/command/build_ext.py 2014-10-11 22:40:48.094464600 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/command/build_ext.py Python-2.7.9/Lib/distutils/command/build_ext.py +--- Python-2.7.9-orig/Lib/distutils/command/build_ext.py 2014-12-10 18:59:34.000000000 +0300 ++++ Python-2.7.9/Lib/distutils/command/build_ext.py 2014-12-11 13:49:53.214200000 +0300 @@ -723,13 +723,6 @@ # don't extend ext.libraries, it may be shared with other # extensions, it is a reference to the original list diff --git a/mingw-w64-python2/0280-issue17219-add-current-dir-in-library-path-if-buildi.patch b/mingw-w64-python2/0280-issue17219-add-current-dir-in-library-path-if-buildi.patch deleted file mode 100644 index ce3b45fd8b..0000000000 --- a/mingw-w64-python2/0280-issue17219-add-current-dir-in-library-path-if-buildi.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py ---- a/Lib/distutils/command/build_ext.py 2014-10-11 22:40:50.406596800 +0100 -+++ b/Lib/distutils/command/build_ext.py 2014-10-11 22:40:53.732787100 +0100 -@@ -235,7 +235,7 @@ - # Python's library directory must be appended to library_dirs - # See Issues: #1600860, #4366 - if (sysconfig.get_config_var('Py_ENABLE_SHARED')): -- if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): -+ if not sysconfig.python_build: - # building third party extensions - self.library_dirs.append(sysconfig.get_config_var('LIBDIR')) - else: diff --git a/mingw-w64-python2/0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch b/mingw-w64-python2/0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch index 9244ae172f..127ec8b8a8 100644 --- a/mingw-w64-python2/0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch +++ b/mingw-w64-python2/0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch @@ -1,6 +1,6 @@ -diff -urN a/Include/pyport.h b/Include/pyport.h ---- a/Include/pyport.h 2014-10-11 22:40:55.227872600 +0100 -+++ b/Include/pyport.h 2014-10-11 22:40:58.833078800 +0100 +diff -Naur Python-2.7.9-orig/Include/pyport.h Python-2.7.9/Include/pyport.h +--- Python-2.7.9-orig/Include/pyport.h 2014-12-11 13:49:33.729800000 +0300 ++++ Python-2.7.9/Include/pyport.h 2014-12-11 13:49:54.805400000 +0300 @@ -761,37 +761,39 @@ */ @@ -62,9 +62,9 @@ diff -urN a/Include/pyport.h b/Include/pyport.h # endif /* HAVE_DECLSPEC */ #endif /* Py_ENABLE_SHARED */ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:40:55.284875900 +0100 -+++ b/setup.py 2014-10-11 22:40:58.835078900 +0100 +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-10 19:00:01.000000000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:49:54.805400000 +0300 @@ -162,6 +162,9 @@ def build_extensions(self): diff --git a/mingw-w64-python2/0300-MINGW-configure-for-shared-build.patch b/mingw-w64-python2/0300-MINGW-configure-for-shared-build.patch index 3b1ba8b10a..0fdd0b0446 100644 --- a/mingw-w64-python2/0300-MINGW-configure-for-shared-build.patch +++ b/mingw-w64-python2/0300-MINGW-configure-for-shared-build.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:40:59.993145200 +0100 -+++ b/configure.ac 2014-10-11 22:41:03.952371600 +0100 -@@ -971,6 +971,13 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:49.875800000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:49:56.365400000 +0300 +@@ -974,6 +974,13 @@ ;; esac @@ -15,7 +15,7 @@ diff -urN a/configure.ac b/configure.ac else # shared is disabled case $ac_sys_system in CYGWIN*) -@@ -978,6 +985,10 @@ +@@ -981,6 +988,10 @@ LDLIBRARY='libpython$(VERSION).dll.a' ;; esac @@ -26,7 +26,7 @@ diff -urN a/configure.ac b/configure.ac fi if test "$cross_compiling" = yes; then -@@ -2184,6 +2195,12 @@ +@@ -2187,6 +2198,12 @@ LDCXXSHARED="g++ -shared";; *) LDSHARED="ld";; esac diff --git a/mingw-w64-python2/0310-MINGW-dynamic-loading-support.patch b/mingw-w64-python2/0310-MINGW-dynamic-loading-support.patch index 11226c6703..07d5061a6f 100644 --- a/mingw-w64-python2/0310-MINGW-dynamic-loading-support.patch +++ b/mingw-w64-python2/0310-MINGW-dynamic-loading-support.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:41:05.326450200 +0100 -+++ b/configure.ac 2014-10-11 22:41:09.181670700 +0100 -@@ -1887,6 +1887,9 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:57.831800000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:49:57.941000000 +0300 +@@ -1890,6 +1890,9 @@ *) enable_toolbox_glue="no";; esac @@ -11,7 +11,7 @@ diff -urN a/configure.ac b/configure.ac fi case "$enable_toolbox_glue" in yes) -@@ -2032,6 +2035,16 @@ +@@ -2035,6 +2038,16 @@ CYGWIN*) SO=.dll;; *) SO=.so;; esac @@ -28,7 +28,7 @@ diff -urN a/configure.ac b/configure.ac else # this might also be a termcap variable, see #610332 echo -@@ -3032,6 +3045,12 @@ +@@ -3035,6 +3048,12 @@ fi ;; esac @@ -41,9 +41,9 @@ diff -urN a/configure.ac b/configure.ac fi AC_MSG_RESULT($DYNLOADFILE) if test "$DYNLOADFILE" != "dynload_stub.o" -diff -urN a/Python/dynload_win.c b/Python/dynload_win.c ---- a/Python/dynload_win.c 2014-10-11 22:41:05.417455400 +0100 -+++ b/Python/dynload_win.c 2014-10-11 22:41:09.182670800 +0100 +diff -Naur Python-2.7.9-orig/Python/dynload_win.c Python-2.7.9/Python/dynload_win.c +--- Python-2.7.9-orig/Python/dynload_win.c 2014-12-10 18:59:59.000000000 +0300 ++++ Python-2.7.9/Python/dynload_win.c 2014-12-11 13:49:57.941000000 +0300 @@ -11,9 +11,11 @@ #include "importdl.h" #include diff --git a/mingw-w64-python2/0320-MINGW-implement-exec-prefix.patch b/mingw-w64-python2/0320-MINGW-implement-exec-prefix.patch index 31d25dba1b..91b0f72959 100644 --- a/mingw-w64-python2/0320-MINGW-implement-exec-prefix.patch +++ b/mingw-w64-python2/0320-MINGW-implement-exec-prefix.patch @@ -1,6 +1,6 @@ -diff -urN a/PC/getpathp.c b/PC/getpathp.c ---- a/PC/getpathp.c 2014-10-11 22:41:10.798763200 +0100 -+++ b/PC/getpathp.c 2014-10-11 22:41:13.656926700 +0100 +diff -Naur Python-2.7.9-orig/PC/getpathp.c Python-2.7.9/PC/getpathp.c +--- Python-2.7.9-orig/PC/getpathp.c 2014-12-11 13:49:49.891400000 +0300 ++++ Python-2.7.9/PC/getpathp.c 2014-12-11 13:49:59.579000000 +0300 @@ -98,10 +98,17 @@ # define USE_POSIX_PREFIX diff --git a/mingw-w64-python2/0330-MINGW-ignore-main-program-for-frozen-scripts.patch b/mingw-w64-python2/0330-MINGW-ignore-main-program-for-frozen-scripts.patch index fdafdc346c..9c39e71837 100644 --- a/mingw-w64-python2/0330-MINGW-ignore-main-program-for-frozen-scripts.patch +++ b/mingw-w64-python2/0330-MINGW-ignore-main-program-for-frozen-scripts.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:41:16.730102500 +0100 -+++ b/configure.ac 2014-10-11 22:41:19.231245500 +0100 -@@ -4756,6 +4756,16 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:59.454200000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:50:01.170200000 +0300 +@@ -4759,6 +4759,16 @@ ;; esac @@ -18,10 +18,10 @@ diff -urN a/configure.ac b/configure.ac AC_SUBST(SRCDIRS) SRCDIRS="Parser Grammar Objects Python Modules Mac" case $host in -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 22:41:16.292077400 +0100 -+++ b/Makefile.pre.in 2014-10-11 22:41:19.232245600 +0100 -@@ -308,7 +308,7 @@ +diff -Naur Python-2.7.9-orig/Makefile.pre.in Python-2.7.9/Makefile.pre.in +--- Python-2.7.9-orig/Makefile.pre.in 2014-12-11 13:49:49.891400000 +0300 ++++ Python-2.7.9/Makefile.pre.in 2014-12-11 13:50:01.170200000 +0300 +@@ -311,7 +311,7 @@ Python/codecs.o \ Python/errors.o \ Python/frozen.o \ diff --git a/mingw-w64-python2/0340-MINGW-setup-exclude-termios-module.patch b/mingw-w64-python2/0340-MINGW-setup-exclude-termios-module.patch index de15800d5d..7ebed4cb1c 100644 --- a/mingw-w64-python2/0340-MINGW-setup-exclude-termios-module.patch +++ b/mingw-w64-python2/0340-MINGW-setup-exclude-termios-module.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:41:20.736331600 +0100 -+++ b/setup.py 2014-10-11 22:41:23.635497400 +0100 -@@ -1318,7 +1318,7 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:49:56.256200000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:50:02.683400000 +0300 +@@ -1320,7 +1320,7 @@ missing.append('gdbm') # Unix-only modules diff --git a/mingw-w64-python2/0350-MINGW-setup-_multiprocessing-module.patch b/mingw-w64-python2/0350-MINGW-setup-_multiprocessing-module.patch index f7dd9fe05a..9a65cfc58a 100644 --- a/mingw-w64-python2/0350-MINGW-setup-_multiprocessing-module.patch +++ b/mingw-w64-python2/0350-MINGW-setup-_multiprocessing-module.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:41:24.888569100 +0100 -+++ b/setup.py 2014-10-11 22:41:27.916742300 +0100 -@@ -1572,7 +1572,7 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:50:04.196600000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:50:04.305800000 +0300 +@@ -1574,7 +1574,7 @@ macros = dict() libraries = ['rt'] @@ -10,7 +10,7 @@ diff -urN a/setup.py b/setup.py multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c', '_multiprocessing/semaphore.c', '_multiprocessing/pipe_connection.c', -@@ -1589,8 +1589,12 @@ +@@ -1591,8 +1591,12 @@ multiprocessing_srcs.append('_multiprocessing/semaphore.c') if sysconfig.get_config_var('WITH_THREAD'): diff --git a/mingw-w64-python2/0360-MINGW-setup-select-module.patch b/mingw-w64-python2/0360-MINGW-setup-select-module.patch index 0aa5cb6bca..0ea823e9c1 100644 --- a/mingw-w64-python2/0360-MINGW-setup-select-module.patch +++ b/mingw-w64-python2/0360-MINGW-setup-select-module.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/selectmodule.c b/Modules/selectmodule.c ---- a/Modules/selectmodule.c 2014-10-11 22:41:29.192815300 +0100 -+++ b/Modules/selectmodule.c 2014-10-11 22:41:32.328994700 +0100 +diff -Naur Python-2.7.9-orig/Modules/selectmodule.c Python-2.7.9/Modules/selectmodule.c +--- Python-2.7.9-orig/Modules/selectmodule.c 2014-12-10 18:59:55.000000000 +0300 ++++ Python-2.7.9/Modules/selectmodule.c 2014-12-11 13:50:05.865800000 +0300 @@ -107,9 +107,9 @@ v = PyObject_AsFileDescriptor( o ); if (v == -1) goto finally; @@ -22,10 +22,10 @@ diff -urN a/Modules/selectmodule.c b/Modules/selectmodule.c FD_SET(v, set); /* add object and its file descriptor to the list */ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:41:29.154813100 +0100 -+++ b/setup.py 2014-10-11 22:41:32.330994800 +0100 -@@ -658,7 +658,11 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:50:05.741000000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:50:05.865800000 +0300 +@@ -660,7 +660,11 @@ missing.append('spwd') # select(2); not on ancient System V diff --git a/mingw-w64-python2/0370-MINGW-setup-_ctypes-module-with-system-libffi.patch b/mingw-w64-python2/0370-MINGW-setup-_ctypes-module-with-system-libffi.patch index cdf5693da8..4b8fda0ab9 100644 --- a/mingw-w64-python2/0370-MINGW-setup-_ctypes-module-with-system-libffi.patch +++ b/mingw-w64-python2/0370-MINGW-setup-_ctypes-module-with-system-libffi.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c ---- a/Modules/_ctypes/callproc.c 2014-10-11 22:41:34.392112700 +0100 -+++ b/Modules/_ctypes/callproc.c 2014-10-11 22:41:36.577237600 +0100 +diff -Naur Python-2.7.9-orig/Modules/_ctypes/callproc.c Python-2.7.9/Modules/_ctypes/callproc.c +--- Python-2.7.9-orig/Modules/_ctypes/callproc.c 2014-12-10 18:59:51.000000000 +0300 ++++ Python-2.7.9/Modules/_ctypes/callproc.c 2014-12-11 13:50:07.425800000 +0300 @@ -752,6 +752,21 @@ } @@ -59,10 +59,10 @@ diff -urN a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c #endif if ((flags & FUNCFLAG_PYTHONAPI) && PyErr_Occurred()) return -1; -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:41:34.749133100 +0100 -+++ b/setup.py 2014-10-11 22:41:36.578237700 +0100 -@@ -2106,6 +2106,8 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:50:07.301000000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:50:07.425800000 +0300 +@@ -2108,6 +2108,8 @@ depends=depends) ext_test = Extension('_ctypes_test', sources=['_ctypes/_ctypes_test.c']) @@ -71,7 +71,7 @@ diff -urN a/setup.py b/setup.py self.extensions.extend([ext, ext_test]) if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"): -@@ -2139,6 +2141,8 @@ +@@ -2141,6 +2143,8 @@ if ffi_inc and ffi_lib: ext.include_dirs.extend(ffi_inc) ext.libraries.append(ffi_lib) diff --git a/mingw-w64-python2/0380-MINGW-defect-winsock2-and-setup-_socket-module.patch b/mingw-w64-python2/0380-MINGW-defect-winsock2-and-setup-_socket-module.patch index 4c1ff47746..2ee1c447be 100644 --- a/mingw-w64-python2/0380-MINGW-defect-winsock2-and-setup-_socket-module.patch +++ b/mingw-w64-python2/0380-MINGW-defect-winsock2-and-setup-_socket-module.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:41:37.736303900 +0100 -+++ b/configure.ac 2014-10-11 22:41:40.859482600 +0100 -@@ -3556,21 +3556,36 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:50:02.558600000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:50:10.077800000 +0300 +@@ -3559,21 +3559,36 @@ ],[]) AC_MSG_RESULT($was_it_defined) @@ -42,7 +42,7 @@ diff -urN a/configure.ac b/configure.ac [ac_cv_struct_sockaddr_storage=yes], [ac_cv_struct_sockaddr_storage=no])) AC_MSG_RESULT($ac_cv_struct_sockaddr_storage) -@@ -4724,7 +4739,10 @@ +@@ -4727,7 +4742,10 @@ AC_CHECK_TYPE(socklen_t,, AC_DEFINE(socklen_t,int, @@ -54,9 +54,9 @@ diff -urN a/configure.ac b/configure.ac #ifdef HAVE_SYS_TYPES_H #include #endif -diff -urN a/Misc/config_mingw b/Misc/config_mingw ---- a/Misc/config_mingw 2014-10-11 22:41:38.830366500 +0100 -+++ b/Misc/config_mingw 2014-10-11 22:41:40.860482600 +0100 +diff -Naur Python-2.7.9-orig/Misc/config_mingw Python-2.7.9/Misc/config_mingw +--- Python-2.7.9-orig/Misc/config_mingw 2014-12-11 13:49:38.565800000 +0300 ++++ Python-2.7.9/Misc/config_mingw 2014-12-11 13:50:10.077800000 +0300 @@ -10,3 +10,6 @@ # files to ignore ac_cv_file__dev_ptmx=ignore #NOTE: under MSYS environment device exist @@ -64,10 +64,10 @@ diff -urN a/Misc/config_mingw b/Misc/config_mingw + +# force detection of winsock2 functionality - require wxp or newer +ac_cv_func_getpeername=yes -diff -urN a/Modules/socketmodule.c b/Modules/socketmodule.c ---- a/Modules/socketmodule.c 2014-10-11 22:41:37.745304500 +0100 -+++ b/Modules/socketmodule.c 2014-10-11 22:41:40.862482800 +0100 -@@ -313,6 +313,12 @@ +diff -Naur Python-2.7.9-orig/Modules/socketmodule.c Python-2.7.9/Modules/socketmodule.c +--- Python-2.7.9-orig/Modules/socketmodule.c 2014-12-10 18:59:55.000000000 +0300 ++++ Python-2.7.9/Modules/socketmodule.c 2014-12-11 13:50:10.077800000 +0300 +@@ -317,6 +317,12 @@ /* Do not include addrinfo.h for MSVC7 or greater. 'addrinfo' and * EAI_* constants are defined in (the already included) ws2tcpip.h. */ @@ -80,9 +80,9 @@ diff -urN a/Modules/socketmodule.c b/Modules/socketmodule.c #else # include "addrinfo.h" #endif -diff -urN a/pyconfig.h.in b/pyconfig.h.in ---- a/pyconfig.h.in 2014-10-11 22:41:37.736303900 +0100 -+++ b/pyconfig.h.in 2014-10-11 22:41:40.863482800 +0100 +diff -Naur Python-2.7.9-orig/pyconfig.h.in Python-2.7.9/pyconfig.h.in +--- Python-2.7.9-orig/pyconfig.h.in 2014-12-11 13:49:44.961800000 +0300 ++++ Python-2.7.9/pyconfig.h.in 2014-12-11 13:50:10.077800000 +0300 @@ -49,7 +49,7 @@ /* Define to 1 if you have the `acosh' function. */ #undef HAVE_ACOSH @@ -111,10 +111,10 @@ diff -urN a/pyconfig.h.in b/pyconfig.h.in #undef socklen_t /* Define to `int' if doesn't define. */ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:41:39.116382900 +0100 -+++ b/setup.py 2014-10-11 22:41:40.865482900 +0100 -@@ -789,9 +789,12 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:50:09.937400000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:50:10.093400000 +0300 +@@ -791,9 +791,12 @@ exts.append( Extension('_csv', ['_csv.c']) ) # socket(2) diff --git a/mingw-w64-python2/0390-MINGW-exclude-unix-only-modules.patch b/mingw-w64-python2/0390-MINGW-exclude-unix-only-modules.patch index b7babd021e..aca47dc8fb 100644 --- a/mingw-w64-python2/0390-MINGW-exclude-unix-only-modules.patch +++ b/mingw-w64-python2/0390-MINGW-exclude-unix-only-modules.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:41:42.072552000 +0100 -+++ b/setup.py 2014-10-11 22:41:45.096724900 +0100 -@@ -645,11 +645,20 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:50:11.528600000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:50:11.637800000 +0300 +@@ -647,11 +647,20 @@ if (config_h_vars.get('FLOCK_NEEDS_LIBBSD', False)): # May be necessary on AIX for flock function libs = ['bsd'] @@ -25,7 +25,7 @@ diff -urN a/setup.py b/setup.py # spwd, shadow passwords if (config_h_vars.get('HAVE_GETSPNAM', False) or config_h_vars.get('HAVE_GETSPENT', False)): -@@ -679,7 +688,10 @@ +@@ -681,7 +690,10 @@ # Lance Ellinghaus's syslog module # syslog daemon interface @@ -37,7 +37,7 @@ diff -urN a/setup.py b/setup.py # George Neville-Neil's timing module: # Deprecated in PEP 4 http://www.python.org/peps/pep-0004.html -@@ -779,11 +791,14 @@ +@@ -781,11 +793,14 @@ # crypt module. diff --git a/mingw-w64-python2/0400-MINGW-setup-msvcrt-module.patch b/mingw-w64-python2/0400-MINGW-setup-msvcrt-module.patch index b937f02ecc..e194110e62 100644 --- a/mingw-w64-python2/0400-MINGW-setup-msvcrt-module.patch +++ b/mingw-w64-python2/0400-MINGW-setup-msvcrt-module.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:41:46.342796200 +0100 -+++ b/setup.py 2014-10-11 22:41:49.339967600 +0100 -@@ -912,6 +912,30 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:50:13.073000000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:50:13.182200000 +0300 +@@ -914,6 +914,30 @@ min_db_ver = (4, 3) db_setup_debug = False # verbose debug prints from this script? diff --git a/mingw-w64-python2/0410-MINGW-build-extensions-with-GCC.patch b/mingw-w64-python2/0410-MINGW-build-extensions-with-GCC.patch index 6338efcb4f..8fd97c23aa 100644 --- a/mingw-w64-python2/0410-MINGW-build-extensions-with-GCC.patch +++ b/mingw-w64-python2/0410-MINGW-build-extensions-with-GCC.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py ---- a/Lib/distutils/command/build_ext.py 2014-10-11 22:41:51.694102300 +0100 -+++ b/Lib/distutils/command/build_ext.py 2014-10-11 22:41:53.667215100 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/command/build_ext.py Python-2.7.9/Lib/distutils/command/build_ext.py +--- Python-2.7.9-orig/Lib/distutils/command/build_ext.py 2014-12-11 13:49:54.618200000 +0300 ++++ Python-2.7.9/Lib/distutils/command/build_ext.py 2014-12-11 13:50:14.773400000 +0300 @@ -179,7 +179,7 @@ # for extensions under windows use different directories # for Release and Debug builds. @@ -31,9 +31,9 @@ diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext if sys.platform == "win32": from distutils.msvccompiler import MSVCCompiler if not isinstance(self.compiler, MSVCCompiler): -diff -urN a/Lib/distutils/util.py b/Lib/distutils/util.py ---- a/Lib/distutils/util.py 2014-10-11 22:41:51.671101000 +0100 -+++ b/Lib/distutils/util.py 2014-10-11 22:41:53.668215200 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/util.py Python-2.7.9/Lib/distutils/util.py +--- Python-2.7.9-orig/Lib/distutils/util.py 2014-12-10 18:59:35.000000000 +0300 ++++ Python-2.7.9/Lib/distutils/util.py 2014-12-11 13:50:14.773400000 +0300 @@ -38,6 +38,8 @@ For other non-POSIX platforms, currently just returns 'sys.platform'. """ @@ -43,10 +43,10 @@ diff -urN a/Lib/distutils/util.py b/Lib/distutils/util.py # sniff sys.version for architecture. prefix = " bit (" i = string.find(sys.version, prefix) -diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py ---- a/Lib/sysconfig.py 2014-10-11 22:41:51.308080200 +0100 -+++ b/Lib/sysconfig.py 2014-10-11 22:41:53.669215300 +0100 -@@ -556,6 +556,8 @@ +diff -Naur Python-2.7.9-orig/Lib/sysconfig.py Python-2.7.9/Lib/sysconfig.py +--- Python-2.7.9-orig/Lib/sysconfig.py 2014-12-11 13:49:29.549000000 +0300 ++++ Python-2.7.9/Lib/sysconfig.py 2014-12-11 13:50:14.773400000 +0300 +@@ -560,6 +560,8 @@ """ import re if os.name == 'nt': diff --git a/mingw-w64-python2/0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch b/mingw-w64-python2/0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch index b3337166f7..89c680516a 100644 --- a/mingw-w64-python2/0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch +++ b/mingw-w64-python2/0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py ---- a/Lib/distutils/ccompiler.py 2014-10-11 22:41:55.538322200 +0100 -+++ b/Lib/distutils/ccompiler.py 2014-10-11 22:41:57.968461200 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/ccompiler.py Python-2.7.9/Lib/distutils/ccompiler.py +--- Python-2.7.9-orig/Lib/distutils/ccompiler.py 2014-12-10 18:59:34.000000000 +0300 ++++ Python-2.7.9/Lib/distutils/ccompiler.py 2014-12-11 13:50:16.785800000 +0300 @@ -15,7 +15,7 @@ from distutils.file_util import move_file from distutils.dir_util import mkpath @@ -19,9 +19,9 @@ diff -urN a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py for pattern, compiler in _default_compilers: if re.match(pattern, platform) is not None or \ re.match(pattern, osname) is not None: -diff -urN a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py ---- a/Lib/distutils/cygwinccompiler.py 2014-10-11 22:41:55.541322300 +0100 -+++ b/Lib/distutils/cygwinccompiler.py 2014-10-11 22:41:57.969461200 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/cygwinccompiler.py Python-2.7.9/Lib/distutils/cygwinccompiler.py +--- Python-2.7.9-orig/Lib/distutils/cygwinccompiler.py 2014-12-10 18:59:34.000000000 +0300 ++++ Python-2.7.9/Lib/distutils/cygwinccompiler.py 2014-12-11 13:50:16.801400000 +0300 @@ -271,12 +271,17 @@ if output_dir is None: output_dir = '' obj_names = [] diff --git a/mingw-w64-python2/0430-MINGW-find-import-library.patch b/mingw-w64-python2/0430-MINGW-find-import-library.patch index 07804eb0b1..5c5fd6725e 100644 --- a/mingw-w64-python2/0430-MINGW-find-import-library.patch +++ b/mingw-w64-python2/0430-MINGW-find-import-library.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py ---- a/Lib/distutils/cygwinccompiler.py 2014-10-11 22:42:00.014578200 +0100 -+++ b/Lib/distutils/cygwinccompiler.py 2014-10-11 22:42:02.133699400 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/cygwinccompiler.py Python-2.7.9/Lib/distutils/cygwinccompiler.py +--- Python-2.7.9-orig/Lib/distutils/cygwinccompiler.py 2014-12-11 13:50:18.299000000 +0300 ++++ Python-2.7.9/Lib/distutils/cygwinccompiler.py 2014-12-11 13:50:18.439400000 +0300 @@ -85,6 +85,7 @@ obj_extension = ".o" static_lib_extension = ".a" diff --git a/mingw-w64-python2/0440-MINGW-setup-_ssl-module.patch b/mingw-w64-python2/0440-MINGW-setup-_ssl-module.patch index 4e7e32710b..9d32d2a746 100644 --- a/mingw-w64-python2/0440-MINGW-setup-_ssl-module.patch +++ b/mingw-w64-python2/0440-MINGW-setup-_ssl-module.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:42:04.147814600 +0100 -+++ b/setup.py 2014-10-11 22:42:06.302937900 +0100 -@@ -830,10 +830,13 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:50:14.601800000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:50:20.030600000 +0300 +@@ -832,10 +832,13 @@ if (ssl_incs is not None and ssl_libs is not None): diff --git a/mingw-w64-python2/0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch b/mingw-w64-python2/0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch deleted file mode 100644 index baf0ae988f..0000000000 --- a/mingw-w64-python2/0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN a/Include/node.h b/Include/node.h ---- a/Include/node.h 2014-10-11 22:42:07.816024400 +0100 -+++ b/Include/node.h 2014-10-11 22:42:10.512178600 +0100 -@@ -21,7 +21,7 @@ - char *str, int lineno, int col_offset); - PyAPI_FUNC(void) PyNode_Free(node *n); - #ifndef Py_LIMITED_API --Py_ssize_t _PyNode_SizeOf(node *n); -+PyAPI_FUNC(Py_ssize_t) _PyNode_SizeOf(node *n); - #endif - - /* Node access functions */ diff --git a/mingw-w64-python2/0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch b/mingw-w64-python2/0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch index 50f88a4b6d..b99e932a48 100644 --- a/mingw-w64-python2/0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch +++ b/mingw-w64-python2/0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py ---- a/Lib/sysconfig.py 2014-10-11 22:42:12.507292700 +0100 -+++ b/Lib/sysconfig.py 2014-10-11 22:42:14.712418900 +0100 +diff -Naur Python-2.7.9-orig/Lib/sysconfig.py Python-2.7.9/Lib/sysconfig.py +--- Python-2.7.9-orig/Lib/sysconfig.py 2014-12-11 13:50:16.614200000 +0300 ++++ Python-2.7.9/Lib/sysconfig.py 2014-12-11 13:50:21.512600000 +0300 @@ -94,6 +94,10 @@ _CONFIG_VARS = None _USER_BASE = None @@ -30,7 +30,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py base = os.environ.get("APPDATA") or "~" return env_base if env_base else joinuser(base, "Python") -@@ -414,7 +418,7 @@ +@@ -418,7 +422,7 @@ def get_config_h_filename(): """Returns the path of pyconfig.h.""" if _PYTHON_BUILD: @@ -39,7 +39,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py inc_dir = os.path.join(_PROJECT_BASE, "PC") else: inc_dir = _PROJECT_BASE -@@ -476,9 +480,9 @@ +@@ -480,9 +484,9 @@ _CONFIG_VARS['platbase'] = _EXEC_PREFIX _CONFIG_VARS['projectbase'] = _PROJECT_BASE @@ -51,7 +51,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py _init_posix(_CONFIG_VARS) # Setting 'userbase' is done below the call to the -@@ -493,7 +497,7 @@ +@@ -497,7 +501,7 @@ # Normally it is relative to the build directory. However, during # testing, for example, we might be running a non-installed python # from a different directory. diff --git a/mingw-w64-python2/0462-MINGW-support-stdcall-without-underscore.patch b/mingw-w64-python2/0462-MINGW-support-stdcall-without-underscore.patch index fe2cc004d8..166053a68b 100644 --- a/mingw-w64-python2/0462-MINGW-support-stdcall-without-underscore.patch +++ b/mingw-w64-python2/0462-MINGW-support-stdcall-without-underscore.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c ---- a/Modules/_ctypes/_ctypes.c 2014-10-11 22:42:16.919545100 +0100 -+++ b/Modules/_ctypes/_ctypes.c 2014-10-11 22:42:19.057667400 +0100 +diff -Naur Python-2.7.9-orig/Modules/_ctypes/_ctypes.c Python-2.7.9/Modules/_ctypes/_ctypes.c +--- Python-2.7.9-orig/Modules/_ctypes/_ctypes.c 2014-12-10 18:59:51.000000000 +0300 ++++ Python-2.7.9/Modules/_ctypes/_ctypes.c 2014-12-11 13:50:23.088200000 +0300 @@ -3202,11 +3202,28 @@ mangled_name = alloca(strlen(name) + 1 + 1 + 1 + 3); /* \0 _ @ %d */ if (!mangled_name) diff --git a/mingw-w64-python2/0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch b/mingw-w64-python2/0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch index 26600ae408..59f216cdb8 100644 --- a/mingw-w64-python2/0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch +++ b/mingw-w64-python2/0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py ---- a/Lib/distutils/sysconfig.py 2014-10-11 22:42:21.104784500 +0100 -+++ b/Lib/distutils/sysconfig.py 2014-10-11 22:42:23.375914400 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/sysconfig.py Python-2.7.9/Lib/distutils/sysconfig.py +--- Python-2.7.9-orig/Lib/distutils/sysconfig.py 2014-12-11 13:49:53.105000000 +0300 ++++ Python-2.7.9/Lib/distutils/sysconfig.py 2014-12-11 13:50:24.601400000 +0300 @@ -62,6 +62,16 @@ """ return sys.version[:3] @@ -36,7 +36,7 @@ diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py libpython = os.path.join(prefix, "lib", "python" + get_python_version()) if standard_lib: -@@ -239,7 +249,7 @@ +@@ -240,7 +250,7 @@ def get_config_h_filename(): """Return full pathname of installed pyconfig.h file.""" if python_build: @@ -45,7 +45,7 @@ diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py inc_dir = os.path.join(project_base, "PC") else: inc_dir = project_base -@@ -416,6 +426,9 @@ +@@ -417,6 +427,9 @@ def _init_nt(): diff --git a/mingw-w64-python2/0490-MINGW-customize-site.patch b/mingw-w64-python2/0490-MINGW-customize-site.patch index 325b771efa..986cf75d80 100644 --- a/mingw-w64-python2/0490-MINGW-customize-site.patch +++ b/mingw-w64-python2/0490-MINGW-customize-site.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/site.py b/Lib/site.py ---- a/Lib/site.py 2014-10-11 22:42:25.074011500 +0100 -+++ b/Lib/site.py 2014-10-11 22:42:27.437146700 +0100 +diff -Naur Python-2.7.9-orig/Lib/site.py Python-2.7.9/Lib/site.py +--- Python-2.7.9-orig/Lib/site.py 2014-12-10 18:59:40.000000000 +0300 ++++ Python-2.7.9/Lib/site.py 2014-12-11 13:50:26.145800000 +0300 @@ -252,6 +252,12 @@ USER_SITE = get_path('purelib', 'osx_framework_user') return USER_SITE diff --git a/mingw-w64-python2/0500-add-python-config-sh.patch b/mingw-w64-python2/0500-add-python-config-sh.patch index af22477673..ffeda5844c 100644 --- a/mingw-w64-python2/0500-add-python-config-sh.patch +++ b/mingw-w64-python2/0500-add-python-config-sh.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:42:28.732220700 +0100 -+++ b/configure.ac 2014-10-11 22:42:31.678389300 +0100 -@@ -912,6 +912,7 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:50:11.528600000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:50:27.627800000 +0300 +@@ -915,6 +915,7 @@ # Other platforms follow if test $enable_shared = "yes"; then @@ -9,7 +9,7 @@ diff -urN a/configure.ac b/configure.ac AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.]) case $ac_sys_system in BeOS*) -@@ -979,6 +980,7 @@ +@@ -982,6 +983,7 @@ ;; esac else # shared is disabled @@ -17,7 +17,7 @@ diff -urN a/configure.ac b/configure.ac case $ac_sys_system in CYGWIN*) BLDLIBRARY='$(LIBRARY)' -@@ -990,6 +992,9 @@ +@@ -993,6 +995,9 @@ LDLIBRARY='libpython$(VERSION).a';; esac fi @@ -27,8 +27,8 @@ diff -urN a/configure.ac b/configure.ac if test "$cross_compiling" = yes; then RUNSHARED= -@@ -4798,7 +4803,13 @@ - AC_MSG_RESULT(done) +@@ -4816,7 +4821,13 @@ + AC_SUBST(ENSUREPIP) # generate output files -AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc) @@ -42,10 +42,10 @@ diff -urN a/configure.ac b/configure.ac AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix]) AC_OUTPUT -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 22:42:29.902287700 +0100 -+++ b/Makefile.pre.in 2014-10-11 22:42:31.679389300 +0100 -@@ -1061,6 +1061,9 @@ +diff -Naur Python-2.7.9-orig/Makefile.pre.in Python-2.7.9/Makefile.pre.in +--- Python-2.7.9-orig/Makefile.pre.in 2014-12-11 13:50:02.574200000 +0300 ++++ Python-2.7.9/Makefile.pre.in 2014-12-11 13:50:27.643400000 +0300 +@@ -1094,6 +1094,9 @@ # Substitution happens here, as the completely-expanded BINDIR # is not available in configure sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config @@ -55,7 +55,7 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in # Install the include files INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY) -@@ -1119,6 +1122,8 @@ +@@ -1152,6 +1155,8 @@ $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config @@ -64,9 +64,9 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in rm python-config @if [ -s Modules/python.exp -a \ "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ -diff -urN a/Misc/python-config.sh.in b/Misc/python-config.sh.in ---- a/Misc/python-config.sh.in 1970-01-01 01:00:00.000000000 +0100 -+++ b/Misc/python-config.sh.in 2014-10-11 22:42:31.681389400 +0100 +diff -Naur Python-2.7.9-orig/Misc/python-config.sh.in Python-2.7.9/Misc/python-config.sh.in +--- Python-2.7.9-orig/Misc/python-config.sh.in 1970-01-01 03:00:00.000000000 +0300 ++++ Python-2.7.9/Misc/python-config.sh.in 2014-12-11 13:50:27.643400000 +0300 @@ -0,0 +1,127 @@ +#!/usr/bin/env sh + @@ -195,9 +195,9 @@ diff -urN a/Misc/python-config.sh.in b/Misc/python-config.sh.in +done +echo -ne $RESULT + -diff -urN a/Misc/python-config-u.sh.in b/Misc/python-config-u.sh.in ---- a/Misc/python-config-u.sh.in 1970-01-01 01:00:00.000000000 +0100 -+++ b/Misc/python-config-u.sh.in 2014-10-11 22:42:31.681389400 +0100 +diff -Naur Python-2.7.9-orig/Misc/python-config-u.sh.in Python-2.7.9/Misc/python-config-u.sh.in +--- Python-2.7.9-orig/Misc/python-config-u.sh.in 1970-01-01 03:00:00.000000000 +0300 ++++ Python-2.7.9/Misc/python-config-u.sh.in 2014-12-11 13:50:27.643400000 +0300 @@ -0,0 +1,10 @@ +#!/usr/bin/env sh + diff --git a/mingw-w64-python2/0510-cross-darwin-feature.patch b/mingw-w64-python2/0510-cross-darwin-feature.patch index dc21f8a77d..433ecc5f3d 100644 --- a/mingw-w64-python2/0510-cross-darwin-feature.patch +++ b/mingw-w64-python2/0510-cross-darwin-feature.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:42:32.799453400 +0100 -+++ b/configure.ac 2014-10-11 22:42:35.858628400 +0100 -@@ -309,6 +309,7 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:50:29.187800000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:50:29.312600000 +0300 +@@ -312,6 +312,7 @@ then # avoid using uname for cross builds if test "$cross_compiling" = yes; then @@ -9,7 +9,7 @@ diff -urN a/configure.ac b/configure.ac # ac_sys_system and ac_sys_release are only used for setting # `define_xopen_source' in the case statement below. For the # current supported cross builds, this macro is not adjusted. -@@ -322,12 +323,32 @@ +@@ -325,12 +326,32 @@ *-*-mingw*) ac_sys_system=MinGW ;; @@ -43,7 +43,7 @@ diff -urN a/configure.ac b/configure.ac else ac_sys_system=`uname -s` if test "$ac_sys_system" = "AIX" \ -@@ -372,6 +393,9 @@ +@@ -375,6 +396,9 @@ *-*-mingw*) _host_cpu= ;; @@ -53,7 +53,7 @@ diff -urN a/configure.ac b/configure.ac *) # for now, limit cross builds to known configurations MACHDEP="unknown" -@@ -1150,6 +1174,26 @@ +@@ -1153,6 +1177,26 @@ AC_SUBST(BASECFLAGS) @@ -80,7 +80,7 @@ diff -urN a/configure.ac b/configure.ac # The -arch flags for universal builds on OSX UNIVERSAL_ARCH_FLAGS= AC_SUBST(UNIVERSAL_ARCH_FLAGS) -@@ -1236,7 +1280,7 @@ +@@ -1239,7 +1283,7 @@ cur_target='10.5' fi else @@ -89,7 +89,7 @@ diff -urN a/configure.ac b/configure.ac # On Intel macs default to a deployment # target of 10.4, that's the first OSX # release with Intel support. -@@ -1929,7 +1973,7 @@ +@@ -1932,7 +1976,7 @@ if test "${enable_universalsdk}"; then : else @@ -98,7 +98,7 @@ diff -urN a/configure.ac b/configure.ac fi LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; -@@ -1954,7 +1998,7 @@ +@@ -1957,7 +2001,7 @@ ]])],[ac_osx_32bit=yes],[ac_osx_32bit=no],[ac_osx_32bit=yes]) if test "${ac_osx_32bit}" = "yes"; then @@ -107,7 +107,7 @@ diff -urN a/configure.ac b/configure.ac i386) MACOSX_DEFAULT_ARCH="i386" ;; -@@ -1966,7 +2010,7 @@ +@@ -1969,7 +2013,7 @@ ;; esac else @@ -116,7 +116,7 @@ diff -urN a/configure.ac b/configure.ac i386) MACOSX_DEFAULT_ARCH="x86_64" ;; -@@ -2005,8 +2049,8 @@ +@@ -2008,8 +2052,8 @@ fi AC_MSG_CHECKING(for dyld) diff --git a/mingw-w64-python2/0520-py3k-mingw-ntthreads-vs-pthreads.patch b/mingw-w64-python2/0520-py3k-mingw-ntthreads-vs-pthreads.patch index e9df2da711..100171dcdc 100644 --- a/mingw-w64-python2/0520-py3k-mingw-ntthreads-vs-pthreads.patch +++ b/mingw-w64-python2/0520-py3k-mingw-ntthreads-vs-pthreads.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:42:37.081698300 +0100 -+++ b/configure.ac 2014-10-11 22:42:40.177875400 +0100 -@@ -1664,8 +1664,8 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:50:30.747800000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:50:30.857000000 +0300 +@@ -1667,8 +1667,8 @@ AC_HEADER_STDC AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \ fcntl.h grp.h \ @@ -12,9 +12,9 @@ diff -urN a/configure.ac b/configure.ac unistd.h utime.h \ sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \ sys/lock.h sys/mkdev.h sys/modem.h \ -diff -urN a/Python/thread.c b/Python/thread.c ---- a/Python/thread.c 2014-10-11 22:42:38.120757700 +0100 -+++ b/Python/thread.c 2014-10-11 22:42:40.178875500 +0100 +diff -Naur Python-2.7.9-orig/Python/thread.c Python-2.7.9/Python/thread.c +--- Python-2.7.9-orig/Python/thread.c 2014-12-10 18:59:59.000000000 +0300 ++++ Python-2.7.9/Python/thread.c 2014-12-11 13:50:30.857000000 +0300 @@ -8,6 +8,12 @@ #include "Python.h" diff --git a/mingw-w64-python2/0530-mingw-system-libffi.patch b/mingw-w64-python2/0530-mingw-system-libffi.patch index e5038b68a5..c67b106531 100644 --- a/mingw-w64-python2/0530-mingw-system-libffi.patch +++ b/mingw-w64-python2/0530-mingw-system-libffi.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:42:41.402945500 +0100 -+++ b/configure.ac 2014-10-11 22:42:44.527124200 +0100 -@@ -2472,14 +2472,32 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:50:32.838200000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:50:32.963000000 +0300 +@@ -2475,14 +2475,32 @@ [], [with_system_ffi="no"]) @@ -37,9 +37,9 @@ diff -urN a/configure.ac b/configure.ac # Check for --with-tcltk-includes=path and --with-tcltk-libs=path AC_SUBST(TCLTK_INCLUDES) -diff -urN a/Lib/ctypes/test/test_as_parameter.py b/Lib/ctypes/test/test_as_parameter.py ---- a/Lib/ctypes/test/test_as_parameter.py 2014-10-11 22:42:42.234993100 +0100 -+++ b/Lib/ctypes/test/test_as_parameter.py 2014-10-11 22:42:44.528124200 +0100 +diff -Naur Python-2.7.9-orig/Lib/ctypes/test/test_as_parameter.py Python-2.7.9/Lib/ctypes/test/test_as_parameter.py +--- Python-2.7.9-orig/Lib/ctypes/test/test_as_parameter.py 2014-12-10 18:59:33.000000000 +0300 ++++ Python-2.7.9/Lib/ctypes/test/test_as_parameter.py 2014-12-11 13:50:32.963000000 +0300 @@ -2,6 +2,7 @@ from ctypes import * from ctypes.test import need_symbol @@ -59,9 +59,9 @@ diff -urN a/Lib/ctypes/test/test_as_parameter.py b/Lib/ctypes/test/test_as_param def test_struct_return_8H(self): class S8I(Structure): _fields_ = [("a", c_int), -diff -urN a/Lib/ctypes/test/test_functions.py b/Lib/ctypes/test/test_functions.py ---- a/Lib/ctypes/test/test_functions.py 2014-10-11 22:42:42.233993000 +0100 -+++ b/Lib/ctypes/test/test_functions.py 2014-10-11 22:42:44.529124300 +0100 +diff -Naur Python-2.7.9-orig/Lib/ctypes/test/test_functions.py Python-2.7.9/Lib/ctypes/test/test_functions.py +--- Python-2.7.9-orig/Lib/ctypes/test/test_functions.py 2014-12-10 18:59:33.000000000 +0300 ++++ Python-2.7.9/Lib/ctypes/test/test_functions.py 2014-12-11 13:50:32.963000000 +0300 @@ -352,6 +352,10 @@ s2h = windll.s_ret_2h_func(S2H(99, 88)) self.assertEqual((s2h.x, s2h.y), (99*2, 88*3)) @@ -73,10 +73,10 @@ diff -urN a/Lib/ctypes/test/test_functions.py b/Lib/ctypes/test/test_functions.p def test_struct_return_8H(self): class S8I(Structure): _fields_ = [("a", c_int), -diff -urN a/Modules/_ctypes/libffi/fficonfig.py.in b/Modules/_ctypes/libffi/fficonfig.py.in ---- a/Modules/_ctypes/libffi/fficonfig.py.in 2014-10-11 22:42:41.593956400 +0100 -+++ b/Modules/_ctypes/libffi/fficonfig.py.in 2014-10-11 22:42:44.530124300 +0100 -@@ -22,6 +22,7 @@ +diff -Naur Python-2.7.9-orig/Modules/_ctypes/libffi/fficonfig.py.in Python-2.7.9/Modules/_ctypes/libffi/fficonfig.py.in +--- Python-2.7.9-orig/Modules/_ctypes/libffi/fficonfig.py.in 2014-12-10 18:59:51.000000000 +0300 ++++ Python-2.7.9/Modules/_ctypes/libffi/fficonfig.py.in 2014-12-11 13:50:32.963000000 +0300 +@@ -23,6 +23,7 @@ 'FRV': ['src/frv/eabi.S', 'src/frv/ffi.c'], 'S390': ['src/s390/sysv.S', 'src/s390/ffi.c'], 'X86_64': ['src/x86/ffi64.c', 'src/x86/unix64.S', 'src/x86/ffi.c', 'src/x86/sysv.S'], @@ -84,7 +84,7 @@ diff -urN a/Modules/_ctypes/libffi/fficonfig.py.in b/Modules/_ctypes/libffi/ffic 'SH': ['src/sh/sysv.S', 'src/sh/ffi.c'], 'SH64': ['src/sh64/sysv.S', 'src/sh64/ffi.c'], 'PA': ['src/pa/linux.S', 'src/pa/ffi.c'], -@@ -29,6 +30,9 @@ +@@ -30,6 +31,9 @@ 'PA_HPUX': ['src/pa/hpux32.S', 'src/pa/ffi.c'], } @@ -94,9 +94,9 @@ diff -urN a/Modules/_ctypes/libffi/fficonfig.py.in b/Modules/_ctypes/libffi/ffic ffi_sources += ffi_platforms['@TARGET@'] ffi_cflags = '@CFLAGS@' -diff -urN a/pyconfig.h.in b/pyconfig.h.in ---- a/pyconfig.h.in 2014-10-11 22:42:41.428947000 +0100 -+++ b/pyconfig.h.in 2014-10-11 22:42:44.531124400 +0100 +diff -Naur Python-2.7.9-orig/pyconfig.h.in Python-2.7.9/pyconfig.h.in +--- Python-2.7.9-orig/pyconfig.h.in 2014-12-11 13:50:11.528600000 +0300 ++++ Python-2.7.9/pyconfig.h.in 2014-12-11 13:50:32.978600000 +0300 @@ -1128,6 +1128,9 @@ /* Define if you want to compile in Python-specific mallocs */ #undef WITH_PYMALLOC @@ -107,10 +107,10 @@ diff -urN a/pyconfig.h.in b/pyconfig.h.in /* Define if you want to compile in rudimentary thread support */ #undef WITH_THREAD -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:42:41.403945500 +0100 -+++ b/setup.py 2014-10-11 22:42:44.533124500 +0100 -@@ -2056,6 +2056,11 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:50:21.403400000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:50:32.978600000 +0300 +@@ -2058,6 +2058,11 @@ return True def configure_ctypes(self, ext): @@ -122,7 +122,7 @@ diff -urN a/setup.py b/setup.py if not self.use_system_libffi: if host_platform == 'darwin': return self.configure_ctypes_darwin(ext) -@@ -2080,6 +2085,10 @@ +@@ -2082,6 +2087,10 @@ if not self.verbose: config_args.append("-q") diff --git a/mingw-w64-python2/0540-mingw-semicolon-DELIM.patch b/mingw-w64-python2/0540-mingw-semicolon-DELIM.patch index 1efabd1d1e..cec5cddea6 100644 --- a/mingw-w64-python2/0540-mingw-semicolon-DELIM.patch +++ b/mingw-w64-python2/0540-mingw-semicolon-DELIM.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:42:45.691190700 +0100 -+++ b/configure.ac 2014-10-11 22:42:48.833370500 +0100 -@@ -548,6 +548,16 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:50:34.460600000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:50:34.585400000 +0300 +@@ -551,6 +551,16 @@ fi AC_MSG_RESULT($EXTRAPLATDIR) @@ -18,9 +18,9 @@ diff -urN a/configure.ac b/configure.ac AC_MSG_CHECKING([for init system calls]) AC_SUBST(INITSYS) case $host in -diff -urN a/Include/osdefs.h b/Include/osdefs.h ---- a/Include/osdefs.h 2014-10-11 22:42:46.013209200 +0100 -+++ b/Include/osdefs.h 2014-10-11 22:42:48.835370600 +0100 +diff -Naur Python-2.7.9-orig/Include/osdefs.h Python-2.7.9/Include/osdefs.h +--- Python-2.7.9-orig/Include/osdefs.h 2014-12-10 18:59:32.000000000 +0300 ++++ Python-2.7.9/Include/osdefs.h 2014-12-11 13:50:34.585400000 +0300 @@ -10,7 +10,7 @@ /* Mod by chrish: QNX has WATCOM, but isn't DOS */ #if !defined(__QNX__) @@ -54,9 +54,9 @@ diff -urN a/Include/osdefs.h b/Include/osdefs.h #endif #ifdef __cplusplus -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 22:42:45.691190700 +0100 -+++ b/Makefile.pre.in 2014-10-11 22:42:48.836370600 +0100 +diff -Naur Python-2.7.9-orig/Makefile.pre.in Python-2.7.9/Makefile.pre.in +--- Python-2.7.9-orig/Makefile.pre.in 2014-12-11 13:50:29.203400000 +0300 ++++ Python-2.7.9/Makefile.pre.in 2014-12-11 13:50:34.585400000 +0300 @@ -84,7 +84,8 @@ # C flags used for building the interpreter object files PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE @@ -67,9 +67,9 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in # Machine-dependent subdirectories MACHDEP= @MACHDEP@ -diff -urN a/Modules/getpath.c b/Modules/getpath.c ---- a/Modules/getpath.c 2014-10-11 22:42:46.833256100 +0100 -+++ b/Modules/getpath.c 2014-10-11 22:42:48.837370700 +0100 +diff -Naur Python-2.7.9-orig/Modules/getpath.c Python-2.7.9/Modules/getpath.c +--- Python-2.7.9-orig/Modules/getpath.c 2014-12-10 18:59:55.000000000 +0300 ++++ Python-2.7.9/Modules/getpath.c 2014-12-11 13:50:34.585400000 +0300 @@ -117,7 +117,7 @@ #endif @@ -79,9 +79,9 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c EXEC_PREFIX "/lib/python" VERSION "/lib-dynload" #endif -diff -urN a/Modules/Setup.dist b/Modules/Setup.dist ---- a/Modules/Setup.dist 2014-10-11 22:42:46.686247700 +0100 -+++ b/Modules/Setup.dist 2014-10-11 22:42:48.838370700 +0100 +diff -Naur Python-2.7.9-orig/Modules/Setup.dist Python-2.7.9/Modules/Setup.dist +--- Python-2.7.9-orig/Modules/Setup.dist 2014-12-11 13:49:48.191000000 +0300 ++++ Python-2.7.9/Modules/Setup.dist 2014-12-11 13:50:34.585400000 +0300 @@ -84,22 +84,22 @@ # Empty since this is now just the runtime prefix. DESTPATH= diff --git a/mingw-w64-python2/0550-mingw-regen-use-stddef_h.patch b/mingw-w64-python2/0550-mingw-regen-use-stddef_h.patch index e23c02ad8e..9e99989ec2 100644 --- a/mingw-w64-python2/0550-mingw-regen-use-stddef_h.patch +++ b/mingw-w64-python2/0550-mingw-regen-use-stddef_h.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/plat-generic/regen b/Lib/plat-generic/regen ---- a/Lib/plat-generic/regen 2014-10-11 22:42:50.797482800 +0100 -+++ b/Lib/plat-generic/regen 2014-10-11 22:42:52.889602500 +0100 +diff -Naur Python-2.7.9-orig/Lib/plat-generic/regen Python-2.7.9/Lib/plat-generic/regen +--- Python-2.7.9-orig/Lib/plat-generic/regen 2014-12-10 18:59:39.000000000 +0300 ++++ Python-2.7.9/Lib/plat-generic/regen 2014-12-11 13:50:36.129800000 +0300 @@ -1,3 +1,9 @@ #! /bin/sh set -v @@ -12,10 +12,10 @@ diff -urN a/Lib/plat-generic/regen b/Lib/plat-generic/regen + REGENHEADER=/usr/include/netinet/in.h +fi +eval $PYTHON_FOR_BUILD ../../Tools/scripts/h2py.py -i "'(u_long)'" $REGENHEADER -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 22:42:51.110500700 +0100 -+++ b/Makefile.pre.in 2014-10-11 22:42:52.890602500 +0100 -@@ -1056,7 +1056,7 @@ +diff -Naur Python-2.7.9-orig/Makefile.pre.in Python-2.7.9/Makefile.pre.in +--- Python-2.7.9-orig/Makefile.pre.in 2014-12-11 13:50:36.005000000 +0300 ++++ Python-2.7.9/Makefile.pre.in 2014-12-11 13:50:36.129800000 +0300 +@@ -1089,7 +1089,7 @@ else \ PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)"; \ fi; \ diff --git a/mingw-w64-python2/0560-mingw-use-posix-getpath.patch b/mingw-w64-python2/0560-mingw-use-posix-getpath.patch index 0de97a6418..6e7358aab8 100644 --- a/mingw-w64-python2/0560-mingw-use-posix-getpath.patch +++ b/mingw-w64-python2/0560-mingw-use-posix-getpath.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:42:54.205677700 +0100 -+++ b/configure.ac 2014-10-11 22:42:57.241851400 +0100 -@@ -4847,7 +4847,9 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:50:36.005000000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:50:37.643000000 +0300 +@@ -4850,7 +4850,9 @@ case $host in *-*-mingw*) dnl default sys.path calculations for windows platforms @@ -12,9 +12,9 @@ diff -urN a/configure.ac b/configure.ac ;; esac -diff -urN a/Modules/getpath.c b/Modules/getpath.c ---- a/Modules/getpath.c 2014-10-11 22:42:55.217735600 +0100 -+++ b/Modules/getpath.c 2014-10-11 22:42:57.242851500 +0100 +diff -Naur Python-2.7.9-orig/Modules/getpath.c Python-2.7.9/Modules/getpath.c +--- Python-2.7.9-orig/Modules/getpath.c 2014-12-11 13:50:36.005000000 +0300 ++++ Python-2.7.9/Modules/getpath.c 2014-12-11 13:50:37.643000000 +0300 @@ -10,6 +10,10 @@ #include #endif @@ -143,9 +143,9 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c absolutize(progpath); strncpy(argv0_path, progpath, MAXPATHLEN); argv0_path[MAXPATHLEN] = '\0'; -diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c ---- a/Modules/posixmodule.c 2014-10-11 22:42:55.243737100 +0100 -+++ b/Modules/posixmodule.c 2014-10-11 22:42:57.245851600 +0100 +diff -Naur Python-2.7.9-orig/Modules/posixmodule.c Python-2.7.9/Modules/posixmodule.c +--- Python-2.7.9-orig/Modules/posixmodule.c 2014-12-11 13:49:43.323800000 +0300 ++++ Python-2.7.9/Modules/posixmodule.c 2014-12-11 13:50:37.643000000 +0300 @@ -2324,7 +2324,7 @@ Py_END_ALLOW_THREADS /* FindNextFile sets error to ERROR_NO_MORE_FILES if diff --git a/mingw-w64-python2/0565-mingw-add-ModuleFileName-dir-to-PATH.patch b/mingw-w64-python2/0565-mingw-add-ModuleFileName-dir-to-PATH.patch index c5399e8660..6b4d15ef76 100644 --- a/mingw-w64-python2/0565-mingw-add-ModuleFileName-dir-to-PATH.patch +++ b/mingw-w64-python2/0565-mingw-add-ModuleFileName-dir-to-PATH.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/getpath.c b/Modules/getpath.c ---- a/Modules/getpath.c 2014-10-11 22:42:58.511924000 +0100 -+++ b/Modules/getpath.c 2014-10-11 22:43:01.444091800 +0100 +diff -Naur Python-2.7.9-orig/Modules/getpath.c Python-2.7.9/Modules/getpath.c +--- Python-2.7.9-orig/Modules/getpath.c 2014-12-11 13:50:39.187400000 +0300 ++++ Python-2.7.9/Modules/getpath.c 2014-12-11 13:50:39.312200000 +0300 @@ -726,6 +726,29 @@ } else diff --git a/mingw-w64-python2/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch b/mingw-w64-python2/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch index 582b49eece..80efffe4db 100644 --- a/mingw-w64-python2/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch +++ b/mingw-w64-python2/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in ---- a/Modules/Setup.config.in 2014-10-11 22:43:03.803226700 +0100 -+++ b/Modules/Setup.config.in 2014-10-11 22:43:05.757338500 +0100 +diff -Naur Python-2.7.9-orig/Modules/Setup.config.in Python-2.7.9/Modules/Setup.config.in +--- Python-2.7.9-orig/Modules/Setup.config.in 2014-12-11 13:49:48.191000000 +0300 ++++ Python-2.7.9/Modules/Setup.config.in 2014-12-11 13:50:40.841000000 +0300 @@ -17,6 +17,11 @@ # build-in modules for windows platform: @@ -13,10 +13,10 @@ diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in # The rest of the modules previously listed in this file are built # by the setup.py script in Python 2.1 and later. -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:43:02.665161600 +0100 -+++ b/setup.py 2014-10-11 22:43:05.759338600 +0100 -@@ -598,14 +598,20 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:50:34.460600000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:50:40.856600000 +0300 +@@ -600,14 +600,20 @@ # heapq exts.append( Extension("_heapq", ["_heapqmodule.c"]) ) # operator.add() and similar goodies @@ -39,7 +39,7 @@ diff -urN a/setup.py b/setup.py # _json speedups exts.append( Extension("_json", ["_json.c"]) ) # Python C API test module -@@ -632,7 +638,10 @@ +@@ -634,7 +640,10 @@ locale_extra_link_args = [] @@ -51,7 +51,7 @@ diff -urN a/setup.py b/setup.py libraries=locale_libs, extra_link_args=locale_extra_link_args) ) -@@ -1580,7 +1589,7 @@ +@@ -1582,7 +1591,7 @@ if sys.maxint == 0x7fffffff: # This requires sizeof(int) == sizeof(long) == sizeof(char*) dl_inc = find_file('dlfcn.h', [], inc_dirs) @@ -60,7 +60,7 @@ diff -urN a/setup.py b/setup.py exts.append( Extension('dl', ['dlmodule.c']) ) else: missing.append('dl') -@@ -1973,6 +1982,9 @@ +@@ -1975,6 +1984,9 @@ if host_platform == 'sunos5': include_dirs.append('/usr/openwin/include') added_lib_dirs.append('/usr/openwin/lib') diff --git a/mingw-w64-python2/0580-mingw32-test-REPARSE_DATA_BUFFER.patch b/mingw-w64-python2/0580-mingw32-test-REPARSE_DATA_BUFFER.patch index a4d998dc19..41ef40f33b 100644 --- a/mingw-w64-python2/0580-mingw32-test-REPARSE_DATA_BUFFER.patch +++ b/mingw-w64-python2/0580-mingw32-test-REPARSE_DATA_BUFFER.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:43:06.966407600 +0100 -+++ b/configure.ac 2014-10-11 22:43:10.028582800 +0100 -@@ -4312,6 +4312,28 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:50:39.187400000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:50:43.071800000 +0300 +@@ -4315,6 +4315,28 @@ # check for endianness AC_C_BIGENDIAN diff --git a/mingw-w64-python2/0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch b/mingw-w64-python2/0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch index 2a0eab6110..625ea48937 100644 --- a/mingw-w64-python2/0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch +++ b/mingw-w64-python2/0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch @@ -1,7 +1,7 @@ -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 22:43:12.174705500 +0100 -+++ b/Makefile.pre.in 2014-10-11 22:43:14.311827700 +0100 -@@ -893,6 +893,7 @@ +diff -Naur Python-2.7.9-orig/Makefile.pre.in Python-2.7.9/Makefile.pre.in +--- Python-2.7.9-orig/Makefile.pre.in 2014-12-11 13:50:37.518200000 +0300 ++++ Python-2.7.9/Makefile.pre.in 2014-12-11 13:50:44.678600000 +0300 +@@ -925,6 +925,7 @@ if test -f $(LDLIBRARY); then \ if test -n "$(DLLLIBRARY)" ; then \ $(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \ diff --git a/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch b/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch index 02861dd41e..cdc3795b10 100644 --- a/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch +++ b/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/ntpath.py b/Lib/ntpath.py ---- a/Lib/ntpath.py 2014-10-11 22:43:15.812913600 +0100 -+++ b/Lib/ntpath.py 2014-10-11 22:43:18.362059400 +0100 +diff -Naur Python-2.7.9-orig/Lib/ntpath.py Python-2.7.9/Lib/ntpath.py +--- Python-2.7.9-orig/Lib/ntpath.py 2014-12-10 18:59:39.000000000 +0300 ++++ Python-2.7.9/Lib/ntpath.py 2014-12-11 13:50:46.238600000 +0300 @@ -24,9 +24,22 @@ curdir = '.' pardir = '..' @@ -105,10 +105,10 @@ diff -urN a/Lib/ntpath.py b/Lib/ntpath.py # Return an absolute path. -diff -urN a/Python/pythonrun.c b/Python/pythonrun.c ---- a/Python/pythonrun.c 2014-10-11 22:43:15.435892000 +0100 -+++ b/Python/pythonrun.c 2014-10-11 22:43:18.363059500 +0100 -@@ -673,13 +673,24 @@ +diff -Naur Python-2.7.9-orig/Python/pythonrun.c Python-2.7.9/Python/pythonrun.c +--- Python-2.7.9-orig/Python/pythonrun.c 2014-12-10 18:59:59.000000000 +0300 ++++ Python-2.7.9/Python/pythonrun.c 2014-12-11 13:50:46.238600000 +0300 +@@ -667,13 +667,24 @@ PyInterpreterState_Delete(interp); } diff --git a/mingw-w64-python2/0610-msys-cygwin-semi-native-build-sysconfig.patch b/mingw-w64-python2/0610-msys-cygwin-semi-native-build-sysconfig.patch index e245ec5118..35a3823296 100644 --- a/mingw-w64-python2/0610-msys-cygwin-semi-native-build-sysconfig.patch +++ b/mingw-w64-python2/0610-msys-cygwin-semi-native-build-sysconfig.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:43:19.570128500 +0100 -+++ b/configure.ac 2014-10-11 22:43:22.702307700 +0100 -@@ -558,6 +558,65 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:50:44.553800000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:50:47.829800000 +0300 +@@ -561,6 +561,65 @@ AC_MSG_RESULT([$DELIM]) AC_SUBST(DELIM) @@ -67,9 +67,9 @@ diff -urN a/configure.ac b/configure.ac AC_MSG_CHECKING([for init system calls]) AC_SUBST(INITSYS) case $host in -diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py ---- a/Lib/sysconfig.py 2014-10-11 22:43:20.239166800 +0100 -+++ b/Lib/sysconfig.py 2014-10-11 22:43:22.704307800 +0100 +diff -Naur Python-2.7.9-orig/Lib/sysconfig.py Python-2.7.9/Lib/sysconfig.py +--- Python-2.7.9-orig/Lib/sysconfig.py 2014-12-11 13:50:22.963400000 +0300 ++++ Python-2.7.9/Lib/sysconfig.py 2014-12-11 13:50:49.561400000 +0300 @@ -273,6 +273,14 @@ if isinstance(v, str): done[k] = v.strip() @@ -85,9 +85,9 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py # save the results in the global dictionary vars.update(done) return vars -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 22:43:19.570128500 +0100 -+++ b/Makefile.pre.in 2014-10-11 22:43:22.705307800 +0100 +diff -Naur Python-2.7.9-orig/Makefile.pre.in Python-2.7.9/Makefile.pre.in +--- Python-2.7.9-orig/Makefile.pre.in 2014-12-11 13:50:46.113800000 +0300 ++++ Python-2.7.9/Makefile.pre.in 2014-12-11 13:50:49.561400000 +0300 @@ -101,6 +101,13 @@ # Install prefix for data files datarootdir= @datarootdir@ @@ -102,7 +102,7 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in # Expanded directories BINDIR= @bindir@ LIBDIR= @libdir@ -@@ -585,7 +592,7 @@ +@@ -598,7 +605,7 @@ -DPREFIX='"$(prefix)"' \ -DEXEC_PREFIX='"$(exec_prefix)"' \ -DVERSION='"$(VERSION)"' \ diff --git a/mingw-w64-python2/0620-mingw-sysconfig-like-posix.patch b/mingw-w64-python2/0620-mingw-sysconfig-like-posix.patch index 079826ecf9..8f8fe295b4 100644 --- a/mingw-w64-python2/0620-mingw-sysconfig-like-posix.patch +++ b/mingw-w64-python2/0620-mingw-sysconfig-like-posix.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py ---- a/Lib/distutils/command/build_ext.py 2014-10-11 22:43:24.589415600 +0100 -+++ b/Lib/distutils/command/build_ext.py 2014-10-11 22:43:26.865545800 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/command/build_ext.py Python-2.7.9/Lib/distutils/command/build_ext.py +--- Python-2.7.9-orig/Lib/distutils/command/build_ext.py 2014-12-11 13:50:16.614200000 +0300 ++++ Python-2.7.9/Lib/distutils/command/build_ext.py 2014-12-11 13:50:51.121400000 +0300 @@ -224,9 +224,10 @@ if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos': if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): @@ -13,9 +13,9 @@ diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext else: # building python standard extensions self.library_dirs.append('.') -diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py ---- a/Lib/sysconfig.py 2014-10-11 22:43:24.306399400 +0100 -+++ b/Lib/sysconfig.py 2014-10-11 22:43:26.866545800 +0100 +diff -Naur Python-2.7.9-orig/Lib/sysconfig.py Python-2.7.9/Lib/sysconfig.py +--- Python-2.7.9-orig/Lib/sysconfig.py 2014-12-11 13:50:51.012200000 +0300 ++++ Python-2.7.9/Lib/sysconfig.py 2014-12-11 13:50:51.121400000 +0300 @@ -27,13 +27,13 @@ 'data' : '{base}', }, @@ -56,7 +56,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py 'data' : '{userbase}', }, 'posix_user': { -@@ -386,7 +386,7 @@ +@@ -390,7 +390,7 @@ vars['INCLUDEPY'] = get_path('include') vars['SO'] = '.pyd' vars['EXE'] = '.exe' diff --git a/mingw-w64-python2/0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch b/mingw-w64-python2/0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch index c52929fe23..c54583bfca 100644 --- a/mingw-w64-python2/0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch +++ b/mingw-w64-python2/0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py ---- a/Lib/distutils/cygwinccompiler.py 2014-10-11 22:43:29.093673200 +0100 -+++ b/Lib/distutils/cygwinccompiler.py 2014-10-11 22:43:31.194793400 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/cygwinccompiler.py Python-2.7.9/Lib/distutils/cygwinccompiler.py +--- Python-2.7.9-orig/Lib/distutils/cygwinccompiler.py 2014-12-11 13:50:19.859000000 +0300 ++++ Python-2.7.9/Lib/distutils/cygwinccompiler.py 2014-12-11 13:50:52.697000000 +0300 @@ -421,7 +421,8 @@ from distutils.spawn import find_executable import re diff --git a/mingw-w64-python2/0640-mingw-x86_64-size_t-format-specifier-pid_t.patch b/mingw-w64-python2/0640-mingw-x86_64-size_t-format-specifier-pid_t.patch index 9a43cae779..40674c5a8d 100644 --- a/mingw-w64-python2/0640-mingw-x86_64-size_t-format-specifier-pid_t.patch +++ b/mingw-w64-python2/0640-mingw-x86_64-size_t-format-specifier-pid_t.patch @@ -1,6 +1,6 @@ -diff -urN a/Include/pyport.h b/Include/pyport.h ---- a/Include/pyport.h 2014-10-11 22:43:32.743882000 +0100 -+++ b/Include/pyport.h 2014-10-11 22:43:35.492039200 +0100 +diff -Naur Python-2.7.9-orig/Include/pyport.h Python-2.7.9/Include/pyport.h +--- Python-2.7.9-orig/Include/pyport.h 2014-12-11 13:49:56.256200000 +0300 ++++ Python-2.7.9/Include/pyport.h 2014-12-11 13:50:54.272600000 +0300 @@ -218,9 +218,11 @@ /* Smallest negative value of type Py_ssize_t. */ #define PY_SSIZE_T_MIN (-PY_SSIZE_T_MAX-1) diff --git a/mingw-w64-python2/0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch b/mingw-w64-python2/0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch index 512561f969..f6512fb571 100644 --- a/mingw-w64-python2/0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch +++ b/mingw-w64-python2/0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:43:36.775112600 +0100 -+++ b/setup.py 2014-10-11 22:43:39.624275500 +0100 -@@ -445,7 +445,8 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:50:42.947000000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:50:55.785800000 +0300 +@@ -447,7 +447,8 @@ add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') if cross_compiling: self.add_gcc_paths() diff --git a/mingw-w64-python2/0660-mingw-use-backslashes-in-compileall-py.patch b/mingw-w64-python2/0660-mingw-use-backslashes-in-compileall-py.patch index 4c0409fa1d..0524aad17e 100644 --- a/mingw-w64-python2/0660-mingw-use-backslashes-in-compileall-py.patch +++ b/mingw-w64-python2/0660-mingw-use-backslashes-in-compileall-py.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/compileall.py b/Lib/compileall.py ---- a/Lib/compileall.py 2014-10-11 22:43:41.317372400 +0100 -+++ b/Lib/compileall.py 2014-10-11 22:43:43.763512300 +0100 +diff -Naur Python-2.7.9-orig/Lib/compileall.py Python-2.7.9/Lib/compileall.py +--- Python-2.7.9-orig/Lib/compileall.py 2014-12-10 18:59:33.000000000 +0300 ++++ Python-2.7.9/Lib/compileall.py 2014-12-11 13:50:57.377000000 +0300 @@ -42,6 +42,8 @@ success = 1 for name in names: diff --git a/mingw-w64-python2/0670-msys-convert_path-fix-and-root-hack.patch b/mingw-w64-python2/0670-msys-convert_path-fix-and-root-hack.patch index 42dbb0067f..7c854f12a5 100644 --- a/mingw-w64-python2/0670-msys-convert_path-fix-and-root-hack.patch +++ b/mingw-w64-python2/0670-msys-convert_path-fix-and-root-hack.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py ---- a/Lib/distutils/command/install.py 2014-10-11 22:43:46.022641500 +0100 -+++ b/Lib/distutils/command/install.py 2014-10-11 22:43:47.954752000 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/command/install.py Python-2.7.9/Lib/distutils/command/install.py +--- Python-2.7.9-orig/Lib/distutils/command/install.py 2014-12-10 18:59:34.000000000 +0300 ++++ Python-2.7.9/Lib/distutils/command/install.py 2014-12-11 13:50:58.983800000 +0300 @@ -348,7 +348,8 @@ # Convert directories from Unix /-separated syntax to the local @@ -11,9 +11,9 @@ diff -urN a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py 'scripts', 'data', 'headers', 'userbase', 'usersite') -diff -urN a/Lib/distutils/util.py b/Lib/distutils/util.py ---- a/Lib/distutils/util.py 2014-10-11 22:43:46.029641900 +0100 -+++ b/Lib/distutils/util.py 2014-10-11 22:43:47.956752100 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/util.py Python-2.7.9/Lib/distutils/util.py +--- Python-2.7.9-orig/Lib/distutils/util.py 2014-12-11 13:50:16.614200000 +0300 ++++ Python-2.7.9/Lib/distutils/util.py 2014-12-11 13:50:58.983800000 +0300 @@ -132,6 +132,13 @@ paths.remove('.') if not paths: @@ -70,10 +70,10 @@ diff -urN a/Lib/distutils/util.py b/Lib/distutils/util.py else: raise DistutilsPlatformError, \ -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 22:43:44.965581000 +0100 -+++ b/Makefile.pre.in 2014-10-11 22:43:47.957752200 +0100 -@@ -1161,6 +1161,12 @@ +diff -Naur Python-2.7.9-orig/Makefile.pre.in Python-2.7.9/Makefile.pre.in +--- Python-2.7.9-orig/Makefile.pre.in 2014-12-11 13:50:51.012200000 +0300 ++++ Python-2.7.9/Makefile.pre.in 2014-12-11 13:50:58.999400000 +0300 +@@ -1194,6 +1194,12 @@ ;; \ esac @@ -86,7 +86,7 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: sharedmods -@@ -1168,8 +1174,8 @@ +@@ -1201,8 +1207,8 @@ --prefix=$(prefix) \ --install-scripts=$(BINDIR) \ --install-platlib=$(DESTSHARED) \ @@ -97,7 +97,7 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in # Here are a couple of targets for MacOSX again, to install a full # framework-based Python. frameworkinstall installs everything, the -@@ -1241,7 +1247,7 @@ +@@ -1274,7 +1280,7 @@ $(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/setup.py install \ --prefix=$(prefix) \ --install-scripts=$(BINDIR) \ diff --git a/mingw-w64-python2/0690-allow-static-tcltk.patch b/mingw-w64-python2/0690-allow-static-tcltk.patch index da68688ed8..7a3c2baa05 100644 --- a/mingw-w64-python2/0690-allow-static-tcltk.patch +++ b/mingw-w64-python2/0690-allow-static-tcltk.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:43:49.143820000 +0100 -+++ b/setup.py 2014-10-11 22:43:52.192994400 +0100 -@@ -536,7 +536,7 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:50:57.252200000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:51:00.543800000 +0300 +@@ -538,7 +538,7 @@ if host_platform == 'hp-ux11': lib_dirs += ['/usr/lib/hpux64', '/usr/lib/hpux32'] @@ -10,7 +10,7 @@ diff -urN a/setup.py b/setup.py # This should work on any unixy platform ;-) # If the user has bothered specifying additional -I and -L flags # in OPT and LDFLAGS we might as well use them here. -@@ -545,6 +545,8 @@ +@@ -547,6 +547,8 @@ # with whitespace in the name to store libraries. cflags, ldflags = sysconfig.get_config_vars( 'CFLAGS', 'LDFLAGS') @@ -19,7 +19,7 @@ diff -urN a/setup.py b/setup.py for item in cflags.split(): if item.startswith('-I'): inc_dirs.append(item[2:]) -@@ -1939,14 +1941,19 @@ +@@ -1941,14 +1943,19 @@ # The versions with dots are used on Unix, and the versions without # dots on Windows, for detection by cygwin. tcllib = tklib = tcl_includes = tk_includes = None @@ -47,7 +47,7 @@ diff -urN a/setup.py b/setup.py break # Now check for the header files -@@ -2017,13 +2024,21 @@ +@@ -2019,13 +2026,21 @@ # Add the Tcl/Tk libraries libs.append('tk'+ version) libs.append('tcl'+ version) diff --git a/mingw-w64-python2/0710-CROSS-properly-detect-WINDOW-_flags-for-different-nc.patch b/mingw-w64-python2/0710-CROSS-properly-detect-WINDOW-_flags-for-different-nc.patch index e92057d83c..e1ebaf8a58 100644 --- a/mingw-w64-python2/0710-CROSS-properly-detect-WINDOW-_flags-for-different-nc.patch +++ b/mingw-w64-python2/0710-CROSS-properly-detect-WINDOW-_flags-for-different-nc.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:43:54.245111800 +0100 -+++ b/configure.ac 2014-10-11 22:43:56.507241200 +0100 -@@ -4713,15 +4713,51 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:50:50.996600000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:51:02.103800000 +0300 +@@ -4716,15 +4716,51 @@ fi AC_MSG_CHECKING(whether WINDOW has _flags) @@ -55,9 +55,9 @@ diff -urN a/configure.ac b/configure.ac if test "$ac_cv_window_has_flags" = yes then -diff -urN a/Include/py_curses.h b/Include/py_curses.h ---- a/Include/py_curses.h 2014-10-11 22:43:53.706081000 +0100 -+++ b/Include/py_curses.h 2014-10-11 22:43:56.508241200 +0100 +diff -Naur Python-2.7.9-orig/Include/py_curses.h Python-2.7.9/Include/py_curses.h +--- Python-2.7.9-orig/Include/py_curses.h 2014-12-10 18:59:32.000000000 +0300 ++++ Python-2.7.9/Include/py_curses.h 2014-12-11 13:51:02.103800000 +0300 @@ -14,7 +14,9 @@ /* the following define is necessary for OS X 10.6; without it, the Apple-supplied ncurses.h sets NCURSES_OPAQUE to 1, and then Python @@ -81,9 +81,9 @@ diff -urN a/Include/py_curses.h b/Include/py_curses.h #ifndef MVWDELCH_IS_EXPRESSION #define MVWDELCH_IS_EXPRESSION 1 #endif -diff -urN a/pyconfig.h.in b/pyconfig.h.in ---- a/pyconfig.h.in 2014-10-11 22:43:53.557072400 +0100 -+++ b/pyconfig.h.in 2014-10-11 22:43:56.509241300 +0100 +diff -Naur Python-2.7.9-orig/pyconfig.h.in Python-2.7.9/pyconfig.h.in +--- Python-2.7.9-orig/pyconfig.h.in 2014-12-11 13:50:34.460600000 +0300 ++++ Python-2.7.9/pyconfig.h.in 2014-12-11 13:51:02.103800000 +0300 @@ -945,6 +945,12 @@ /* Define to 1 if you want to use native NT threads */ #undef NT_THREADS diff --git a/mingw-w64-python2/0720-mingw-pdcurses_ISPAD.patch b/mingw-w64-python2/0720-mingw-pdcurses_ISPAD.patch index 64f6efd1a4..8f7bed4900 100644 --- a/mingw-w64-python2/0720-mingw-pdcurses_ISPAD.patch +++ b/mingw-w64-python2/0720-mingw-pdcurses_ISPAD.patch @@ -1,6 +1,6 @@ -diff -urN a/Include/py_curses.h b/Include/py_curses.h ---- a/Include/py_curses.h 2014-10-11 22:43:58.023327900 +0100 -+++ b/Include/py_curses.h 2014-10-11 22:44:00.752484000 +0100 +diff -Naur Python-2.7.9-orig/Include/py_curses.h Python-2.7.9/Include/py_curses.h +--- Python-2.7.9-orig/Include/py_curses.h 2014-12-11 13:51:03.523400000 +0300 ++++ Python-2.7.9/Include/py_curses.h 2014-12-11 13:51:03.632600000 +0300 @@ -56,6 +56,10 @@ #endif #endif diff --git a/mingw-w64-python2/0740-grammar-fixes.patch b/mingw-w64-python2/0740-grammar-fixes.patch index 36e5775db4..61bad410c4 100644 --- a/mingw-w64-python2/0740-grammar-fixes.patch +++ b/mingw-w64-python2/0740-grammar-fixes.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/parsermodule.c b/Modules/parsermodule.c ---- a/Modules/parsermodule.c 2014-10-11 22:44:02.797601000 +0100 -+++ b/Modules/parsermodule.c 2014-10-11 22:44:04.881720200 +0100 +diff -Naur Python-2.7.9-orig/Modules/parsermodule.c Python-2.7.9/Modules/parsermodule.c +--- Python-2.7.9-orig/Modules/parsermodule.c 2014-12-10 18:59:55.000000000 +0300 ++++ Python-2.7.9/Modules/parsermodule.c 2014-12-11 13:51:05.192600000 +0300 @@ -39,7 +39,7 @@ #include "ast.h" #include "pyarena.h" @@ -10,9 +10,9 @@ diff -urN a/Modules/parsermodule.c b/Modules/parsermodule.c #ifdef lint #include -diff -urN a/Parser/metagrammar.c b/Parser/metagrammar.c ---- a/Parser/metagrammar.c 2014-10-11 22:44:01.884548800 +0100 -+++ b/Parser/metagrammar.c 2014-10-11 22:44:04.882720200 +0100 +diff -Naur Python-2.7.9-orig/Parser/metagrammar.c Python-2.7.9/Parser/metagrammar.c +--- Python-2.7.9-orig/Parser/metagrammar.c 2014-12-10 18:59:58.000000000 +0300 ++++ Python-2.7.9/Parser/metagrammar.c 2014-12-11 13:51:05.192600000 +0300 @@ -139,7 +139,7 @@ {7, 0}, {8, 0}, diff --git a/mingw-w64-python2/0750-Add-interp-Python-DESTSHARED-to-PYTHONPATH-b4-pybuilddir-txt-dir.patch b/mingw-w64-python2/0750-Add-interp-Python-DESTSHARED-to-PYTHONPATH-b4-pybuilddir-txt-dir.patch index f6aeef04a9..4723eb307d 100644 --- a/mingw-w64-python2/0750-Add-interp-Python-DESTSHARED-to-PYTHONPATH-b4-pybuilddir-txt-dir.patch +++ b/mingw-w64-python2/0750-Add-interp-Python-DESTSHARED-to-PYTHONPATH-b4-pybuilddir-txt-dir.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:44:06.197795500 +0100 -+++ b/configure.ac 2014-10-11 22:44:09.163965100 +0100 -@@ -30,7 +30,12 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:51:03.523400000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:51:06.783800000 +0300 +@@ -33,7 +33,12 @@ AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found]) fi AC_MSG_RESULT($interp) diff --git a/mingw-w64-python2/0760-msys-monkeypatch-os-system-via-sh-exe.patch b/mingw-w64-python2/0760-msys-monkeypatch-os-system-via-sh-exe.patch index 2f93c7b85e..a94edc2450 100644 --- a/mingw-w64-python2/0760-msys-monkeypatch-os-system-via-sh-exe.patch +++ b/mingw-w64-python2/0760-msys-monkeypatch-os-system-via-sh-exe.patch @@ -1,6 +1,6 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:44:10.289029500 +0100 -+++ b/setup.py 2014-10-11 22:44:13.372205800 +0100 +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:51:01.994600000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:51:08.359400000 +0300 @@ -29,6 +29,17 @@ return sys.platform host_platform = get_platform() diff --git a/mingw-w64-python2/0770-msys-replace-slashes-used-in-io-redirection.patch b/mingw-w64-python2/0770-msys-replace-slashes-used-in-io-redirection.patch index 0d3eac4d07..2b572180b2 100644 --- a/mingw-w64-python2/0770-msys-replace-slashes-used-in-io-redirection.patch +++ b/mingw-w64-python2/0770-msys-replace-slashes-used-in-io-redirection.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:44:14.594275700 +0100 -+++ b/setup.py 2014-10-11 22:44:17.699453300 +0100 -@@ -375,7 +375,7 @@ +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:51:09.919400000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:51:10.059800000 +0300 +@@ -377,7 +377,7 @@ # Debian/Ubuntu multiarch support. # https://wiki.ubuntu.com/MultiarchSpec cc = sysconfig.get_config_var('CC') @@ -10,7 +10,7 @@ diff -urN a/setup.py b/setup.py if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) ret = os.system( -@@ -400,7 +400,7 @@ +@@ -402,7 +402,7 @@ opt = '' if cross_compiling: opt = '-t' + sysconfig.get_config_var('HOST_GNU_TYPE') @@ -19,7 +19,7 @@ diff -urN a/setup.py b/setup.py if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) ret = os.system( -@@ -419,7 +419,7 @@ +@@ -421,7 +421,7 @@ def add_gcc_paths(self): gcc = sysconfig.get_config_var('CC') @@ -28,7 +28,7 @@ diff -urN a/setup.py b/setup.py if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) ret = os.system('%s -E -v - %s 1>/dev/null' % (gcc, tmpfile)) -@@ -873,7 +873,7 @@ +@@ -875,7 +875,7 @@ opensslv_h = find_file('openssl/opensslv.h', [], inc_dirs + search_for_ssl_incs_in) if opensslv_h: @@ -37,7 +37,7 @@ diff -urN a/setup.py b/setup.py if host_platform == 'darwin' and is_macosx_sdk_path(name): name = os.path.join(macosx_sdk_root(), name[1:]) try: -@@ -1906,9 +1906,9 @@ +@@ -1908,9 +1908,9 @@ archs = re.findall('-arch\s+(\w+)', cflags) if is_macosx_sdk_path(F): diff --git a/mingw-w64-python2/0790-mingw-add-_exec_prefix-for-tcltk-dlls.patch b/mingw-w64-python2/0790-mingw-add-_exec_prefix-for-tcltk-dlls.patch index 747bdcdb8c..70d740955e 100644 --- a/mingw-w64-python2/0790-mingw-add-_exec_prefix-for-tcltk-dlls.patch +++ b/mingw-w64-python2/0790-mingw-add-_exec_prefix-for-tcltk-dlls.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/getpath.c b/Modules/getpath.c ---- a/Modules/getpath.c 2014-10-11 22:44:19.906579600 +0100 -+++ b/Modules/getpath.c 2014-10-11 22:44:22.003699500 +0100 +diff -Naur Python-2.7.9-orig/Modules/getpath.c Python-2.7.9/Modules/getpath.c +--- Python-2.7.9-orig/Modules/getpath.c 2014-12-11 13:50:40.731800000 +0300 ++++ Python-2.7.9/Modules/getpath.c 2014-12-11 13:51:11.604200000 +0300 @@ -645,7 +645,10 @@ bufsz += strlen(zip_path) + 1; diff --git a/mingw-w64-python2/0800-mingw-install-layout-as-posix.patch b/mingw-w64-python2/0800-mingw-install-layout-as-posix.patch index 3321a4a32d..f1e6455b73 100644 --- a/mingw-w64-python2/0800-mingw-install-layout-as-posix.patch +++ b/mingw-w64-python2/0800-mingw-install-layout-as-posix.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py ---- a/Lib/distutils/command/install.py 2014-10-11 22:44:23.655794000 +0100 -+++ b/Lib/distutils/command/install.py 2014-10-11 22:44:26.318946300 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/command/install.py Python-2.7.9/Lib/distutils/command/install.py +--- Python-2.7.9-orig/Lib/distutils/command/install.py 2014-12-11 13:51:00.419000000 +0300 ++++ Python-2.7.9/Lib/distutils/command/install.py 2014-12-11 13:51:13.179800000 +0300 @@ -32,10 +32,10 @@ } else: diff --git a/mingw-w64-python2/0820-mingw-reorder-bininstall-ln-symlink-creation.patch b/mingw-w64-python2/0820-mingw-reorder-bininstall-ln-symlink-creation.patch index 27034b1aa6..c802edfdda 100644 --- a/mingw-w64-python2/0820-mingw-reorder-bininstall-ln-symlink-creation.patch +++ b/mingw-w64-python2/0820-mingw-reorder-bininstall-ln-symlink-creation.patch @@ -1,7 +1,7 @@ -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 22:44:28.635078800 +0100 -+++ b/Makefile.pre.in 2014-10-11 22:44:30.433181600 +0100 -@@ -872,9 +872,9 @@ +diff -Naur Python-2.7.9-orig/Makefile.pre.in Python-2.7.9/Makefile.pre.in +--- Python-2.7.9-orig/Makefile.pre.in 2014-12-11 13:51:00.419000000 +0300 ++++ Python-2.7.9/Makefile.pre.in 2014-12-11 13:51:14.771000000 +0300 +@@ -904,9 +904,9 @@ then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \ else true; \ fi diff --git a/mingw-w64-python2/0830-add-build-sysroot-config-option.patch b/mingw-w64-python2/0830-add-build-sysroot-config-option.patch index be1c2f3d63..3581420f85 100644 --- a/mingw-w64-python2/0830-add-build-sysroot-config-option.patch +++ b/mingw-w64-python2/0830-add-build-sysroot-config-option.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:44:32.692310900 +0100 -+++ b/configure.ac 2014-10-11 22:44:34.687425000 +0100 -@@ -638,6 +638,17 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:51:08.234600000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:51:16.409000000 +0300 +@@ -641,6 +641,17 @@ CONFIGURE_MACOSX_DEPLOYMENT_TARGET= EXPORT_MACOSX_DEPLOYMENT_TARGET='#' @@ -19,9 +19,9 @@ diff -urN a/configure.ac b/configure.ac # checks for alternative programs # compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:44:31.726255600 +0100 -+++ b/setup.py 2014-10-11 22:44:34.689425100 +0100 +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:51:11.495000000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:51:16.409000000 +0300 @@ -43,6 +43,16 @@ # Were we compiled --with-pydebug or with #define Py_DEBUG? COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS")) @@ -39,7 +39,7 @@ diff -urN a/setup.py b/setup.py # This global variable is used to hold the list of modules to be disabled. disabled_module_list = [] -@@ -389,10 +399,11 @@ +@@ -391,10 +401,11 @@ os.unlink(tmpfile) if multiarch_path_component != '': @@ -55,7 +55,7 @@ diff -urN a/setup.py b/setup.py return if not find_executable('dpkg-architecture'): -@@ -410,10 +421,11 @@ +@@ -412,10 +423,11 @@ if ret >> 8 == 0: with open(tmpfile) as fp: multiarch_path_component = fp.readline().strip() @@ -71,7 +71,7 @@ diff -urN a/setup.py b/setup.py finally: os.unlink(tmpfile) -@@ -451,7 +463,7 @@ +@@ -453,7 +465,7 @@ def detect_modules(self): # Ensure that /usr/local is always used @@ -80,7 +80,7 @@ diff -urN a/setup.py b/setup.py add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') if cross_compiling: -@@ -514,7 +526,7 @@ +@@ -516,7 +528,7 @@ # be assumed that no additional -I,-L directives are needed. inc_dirs = self.compiler.include_dirs[:] lib_dirs = self.compiler.library_dirs[:] @@ -89,7 +89,7 @@ diff -urN a/setup.py b/setup.py for d in ( '/usr/include', ): -@@ -802,11 +814,11 @@ +@@ -804,11 +816,11 @@ elif curses_library: readline_libs.append(curses_library) elif self.compiler.find_library_file(lib_dirs + @@ -103,7 +103,7 @@ diff -urN a/setup.py b/setup.py extra_link_args=readline_extra_link_args, libraries=readline_libs) ) else: -@@ -835,20 +847,20 @@ +@@ -837,20 +849,20 @@ libraries=_socket_libs) ) # Detect SSL support for the socket module (via _ssl) search_for_ssl_incs_in = [ diff --git a/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch b/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch index 7c96cd0bd8..c2f958418d 100644 --- a/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch +++ b/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch @@ -1,6 +1,6 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 22:44:35.931496100 +0100 -+++ b/setup.py 2014-10-11 22:44:38.916666900 +0100 +diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py +--- Python-2.7.9-orig/setup.py 2014-12-11 13:51:17.891000000 +0300 ++++ Python-2.7.9/setup.py 2014-12-11 13:51:18.015800000 +0300 @@ -272,6 +272,9 @@ args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags self.compiler.set_executables(**args) @@ -10,4 +10,4 @@ diff -urN a/setup.py b/setup.py + build_ext.build_extensions(self) - longest = max([len(e.name) for e in self.extensions]) + longest = 0 diff --git a/mingw-w64-python2/0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch b/mingw-w64-python2/0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch index afd1530c4d..3a27184ede 100644 --- a/mingw-w64-python2/0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch +++ b/mingw-w64-python2/0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:44:40.129736300 +0100 -+++ b/configure.ac 2014-10-11 22:44:43.194911600 +0100 -@@ -21,7 +21,8 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:51:17.891000000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:51:19.669400000 +0300 +@@ -24,7 +24,8 @@ if test -z "$PYTHON_FOR_BUILD"; then for interp in python$PACKAGE_VERSION python2 python; do which $interp >/dev/null 2>&1 || continue diff --git a/mingw-w64-python2/0860-mingw-build-optimized-ext.patch b/mingw-w64-python2/0860-mingw-build-optimized-ext.patch index acc750eb2c..8f0b568709 100644 --- a/mingw-w64-python2/0860-mingw-build-optimized-ext.patch +++ b/mingw-w64-python2/0860-mingw-build-optimized-ext.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py ---- a/Lib/distutils/cygwinccompiler.py 2014-10-11 22:44:44.871007400 +0100 -+++ b/Lib/distutils/cygwinccompiler.py 2014-10-11 22:44:47.486157000 +0100 +diff -Naur Python-2.7.9-orig/Lib/distutils/cygwinccompiler.py Python-2.7.9/Lib/distutils/cygwinccompiler.py +--- Python-2.7.9-orig/Lib/distutils/cygwinccompiler.py 2014-12-11 13:50:54.147800000 +0300 ++++ Python-2.7.9/Lib/distutils/cygwinccompiler.py 2014-12-11 13:51:21.245000000 +0300 @@ -330,9 +330,9 @@ else: no_cygwin = '' diff --git a/mingw-w64-python2/0870-mingw-add-LIBPL-to-library-dirs.patch b/mingw-w64-python2/0870-mingw-add-LIBPL-to-library-dirs.patch new file mode 100644 index 0000000000..ae29727af0 --- /dev/null +++ b/mingw-w64-python2/0870-mingw-add-LIBPL-to-library-dirs.patch @@ -0,0 +1,12 @@ +diff -Naur Python-2.7.9-orig/Lib/distutils/command/build_ext.py Python-2.7.9/Lib/distutils/command/build_ext.py +--- Python-2.7.9-orig/Lib/distutils/command/build_ext.py 2014-12-11 13:50:52.587800000 +0300 ++++ Python-2.7.9/Lib/distutils/command/build_ext.py 2014-12-11 13:58:32.038800000 +0300 +@@ -221,7 +221,7 @@ + + # for extensions under Cygwin and AtheOS Python's library directory must be + # appended to library_dirs +- if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos': ++ if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos' or self.plat_name.startswith(('mingw')): + if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): + # building third party extensions + config_dir_name = os.path.basename(sysconfig.get_config_var('LIBPL')) diff --git a/mingw-w64-python2/0910-fix-using-dllhandle-and-winver-mingw.patch b/mingw-w64-python2/0910-fix-using-dllhandle-and-winver-mingw.patch index 33dbb4eb9f..5a0fab1779 100644 --- a/mingw-w64-python2/0910-fix-using-dllhandle-and-winver-mingw.patch +++ b/mingw-w64-python2/0910-fix-using-dllhandle-and-winver-mingw.patch @@ -1,6 +1,6 @@ -diff -urN a/Python/sysmodule.c b/Python/sysmodule.c ---- a/Python/sysmodule.c 2014-10-11 22:44:48.690225900 +0100 -+++ b/Python/sysmodule.c 2014-10-11 22:44:51.785402900 +0100 +diff -Naur Python-2.7.9-orig/Python/sysmodule.c Python-2.7.9/Python/sysmodule.c +--- Python-2.7.9-orig/Python/sysmodule.c 2014-12-10 18:59:59.000000000 +0300 ++++ Python-2.7.9/Python/sysmodule.c 2014-12-11 13:51:23.085800000 +0300 @@ -27,7 +27,7 @@ #include "windows.h" #endif /* MS_WINDOWS */ @@ -10,7 +10,7 @@ diff -urN a/Python/sysmodule.c b/Python/sysmodule.c extern void *PyWin_DLLhModule; /* A string loaded from the DLL at startup: */ extern const char *PyWin_DLLVersionString; -@@ -1459,7 +1459,7 @@ +@@ -1473,7 +1473,7 @@ SET_SYS_FROM_STRING("byteorder", PyString_FromString(value)); } diff --git a/mingw-w64-python2/1000-dont-link-with-gettext.patch b/mingw-w64-python2/1000-dont-link-with-gettext.patch index c6fd03f786..3c70d78092 100644 --- a/mingw-w64-python2/1000-dont-link-with-gettext.patch +++ b/mingw-w64-python2/1000-dont-link-with-gettext.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 22:44:52.898466600 +0100 -+++ b/configure.ac 2014-10-11 22:44:55.858635900 +0100 -@@ -2499,9 +2499,18 @@ +diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac +--- Python-2.7.9-orig/configure.ac 2014-12-11 13:51:21.135800000 +0300 ++++ Python-2.7.9/configure.ac 2014-12-11 13:51:24.614600000 +0300 +@@ -2502,9 +2502,18 @@ fi # check if we need libintl for locale functions @@ -20,9 +20,9 @@ diff -urN a/configure.ac b/configure.ac # checks for system dependent C++ extensions support case "$ac_sys_system" in -diff -urN a/Modules/_localemodule.c b/Modules/_localemodule.c ---- a/Modules/_localemodule.c 2014-10-11 22:44:53.976528200 +0100 -+++ b/Modules/_localemodule.c 2014-10-11 22:44:55.860636000 +0100 +diff -Naur Python-2.7.9-orig/Modules/_localemodule.c Python-2.7.9/Modules/_localemodule.c +--- Python-2.7.9-orig/Modules/_localemodule.c 2014-12-10 18:59:53.000000000 +0300 ++++ Python-2.7.9/Modules/_localemodule.c 2014-12-11 13:51:24.614600000 +0300 @@ -10,6 +10,13 @@ ******************************************************************/ diff --git a/mingw-w64-python2/1010-ctypes-python-dll.patch b/mingw-w64-python2/1010-ctypes-python-dll.patch index b9febaa5b9..f4de66d7bb 100644 --- a/mingw-w64-python2/1010-ctypes-python-dll.patch +++ b/mingw-w64-python2/1010-ctypes-python-dll.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py ---- a/Lib/ctypes/__init__.py 2014-10-11 22:44:57.632737400 +0100 -+++ b/Lib/ctypes/__init__.py 2014-10-11 22:45:00.213885000 +0100 +diff -Naur Python-2.7.9-orig/Lib/ctypes/__init__.py Python-2.7.9/Lib/ctypes/__init__.py +--- Python-2.7.9-orig/Lib/ctypes/__init__.py 2014-12-10 18:59:33.000000000 +0300 ++++ Python-2.7.9/Lib/ctypes/__init__.py 2014-12-11 13:51:26.439800000 +0300 @@ -445,7 +445,9 @@ cdll = LibraryLoader(CDLL) pydll = LibraryLoader(PyDLL) diff --git a/mingw-w64-python2/1020-gdbm-module-includes.patch b/mingw-w64-python2/1020-gdbm-module-includes.patch index a1f4b9a92e..75d1a24c46 100644 --- a/mingw-w64-python2/1020-gdbm-module-includes.patch +++ b/mingw-w64-python2/1020-gdbm-module-includes.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/gdbmmodule.c b/Modules/gdbmmodule.c ---- a/Modules/gdbmmodule.c 2014-10-11 22:45:02.211999300 +0100 -+++ b/Modules/gdbmmodule.c 2014-10-11 22:45:04.424125800 +0100 +diff -Naur Python-2.7.9-orig/Modules/gdbmmodule.c Python-2.7.9/Modules/gdbmmodule.c +--- Python-2.7.9-orig/Modules/gdbmmodule.c 2014-12-10 18:59:55.000000000 +0300 ++++ Python-2.7.9/Modules/gdbmmodule.c 2014-12-11 13:51:28.155800000 +0300 @@ -11,7 +11,7 @@ #include #include "gdbm.h" diff --git a/mingw-w64-python2/1030-use-gnu_printf-in-format.patch b/mingw-w64-python2/1030-use-gnu_printf-in-format.patch index 162ee9e115..eb914739c9 100644 --- a/mingw-w64-python2/1030-use-gnu_printf-in-format.patch +++ b/mingw-w64-python2/1030-use-gnu_printf-in-format.patch @@ -1,6 +1,6 @@ -diff -urN a/Include/pgenheaders.h b/Include/pgenheaders.h ---- a/Include/pgenheaders.h 2014-10-11 22:45:06.759259400 +0100 -+++ b/Include/pgenheaders.h 2014-10-11 22:45:08.679369200 +0100 +diff -Naur Python-2.7.9-orig/Include/pgenheaders.h Python-2.7.9/Include/pgenheaders.h +--- Python-2.7.9-orig/Include/pgenheaders.h 2014-12-10 18:59:32.000000000 +0300 ++++ Python-2.7.9/Include/pgenheaders.h 2014-12-11 13:51:30.074600000 +0300 @@ -10,9 +10,9 @@ #include "Python.h" @@ -13,9 +13,9 @@ diff -urN a/Include/pgenheaders.h b/Include/pgenheaders.h #define addarc _Py_addarc #define addbit _Py_addbit -diff -urN a/Include/pyerrors.h b/Include/pyerrors.h ---- a/Include/pyerrors.h 2014-10-11 22:45:06.774260200 +0100 -+++ b/Include/pyerrors.h 2014-10-11 22:45:08.680369300 +0100 +diff -Naur Python-2.7.9-orig/Include/pyerrors.h Python-2.7.9/Include/pyerrors.h +--- Python-2.7.9-orig/Include/pyerrors.h 2014-12-10 18:59:32.000000000 +0300 ++++ Python-2.7.9/Include/pyerrors.h 2014-12-11 13:51:30.074600000 +0300 @@ -193,7 +193,7 @@ #endif /* MS_WINDOWS */ @@ -37,9 +37,9 @@ diff -urN a/Include/pyerrors.h b/Include/pyerrors.h #ifdef __cplusplus } -diff -urN a/Include/stringobject.h b/Include/stringobject.h ---- a/Include/stringobject.h 2014-10-11 22:45:06.772260100 +0100 -+++ b/Include/stringobject.h 2014-10-11 22:45:08.680369300 +0100 +diff -Naur Python-2.7.9-orig/Include/stringobject.h Python-2.7.9/Include/stringobject.h +--- Python-2.7.9-orig/Include/stringobject.h 2014-12-10 18:59:32.000000000 +0300 ++++ Python-2.7.9/Include/stringobject.h 2014-12-11 13:51:30.090200000 +0300 @@ -62,9 +62,9 @@ PyAPI_FUNC(PyObject *) PyString_FromStringAndSize(const char *, Py_ssize_t); PyAPI_FUNC(PyObject *) PyString_FromString(const char *); @@ -52,9 +52,9 @@ diff -urN a/Include/stringobject.h b/Include/stringobject.h PyAPI_FUNC(Py_ssize_t) PyString_Size(PyObject *); PyAPI_FUNC(char *) PyString_AsString(PyObject *); PyAPI_FUNC(PyObject *) PyString_Repr(PyObject *, int); -diff -urN a/Include/sysmodule.h b/Include/sysmodule.h ---- a/Include/sysmodule.h 2014-10-11 22:45:06.770260000 +0100 -+++ b/Include/sysmodule.h 2014-10-11 22:45:08.681369300 +0100 +diff -Naur Python-2.7.9-orig/Include/sysmodule.h Python-2.7.9/Include/sysmodule.h +--- Python-2.7.9-orig/Include/sysmodule.h 2014-12-10 18:59:32.000000000 +0300 ++++ Python-2.7.9/Include/sysmodule.h 2014-12-11 13:51:30.090200000 +0300 @@ -15,9 +15,9 @@ PyAPI_FUNC(void) PySys_SetPath(char *); diff --git a/mingw-w64-python2/1040-install-msilib.patch b/mingw-w64-python2/1040-install-msilib.patch index fc830c3302..7aa27e6081 100644 --- a/mingw-w64-python2/1040-install-msilib.patch +++ b/mingw-w64-python2/1040-install-msilib.patch @@ -1,7 +1,7 @@ -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 22:45:09.804433500 +0100 -+++ b/Makefile.pre.in 2014-10-11 22:45:12.907611000 +0100 -@@ -964,6 +964,7 @@ +diff -Naur Python-2.7.9-orig/Makefile.pre.in Python-2.7.9/Makefile.pre.in +--- Python-2.7.9-orig/Makefile.pre.in 2014-12-11 13:51:16.284200000 +0300 ++++ Python-2.7.9/Makefile.pre.in 2014-12-11 13:51:31.728200000 +0300 +@@ -997,6 +997,7 @@ distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \ multiprocessing multiprocessing/dummy \ unittest unittest/test \ diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index d77bf33427..484c95dca5 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -4,8 +4,8 @@ _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.7.8 -pkgrel=8 +pkgver=2.7.9 +pkgrel=1 _pybasever=2.7 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') @@ -42,7 +42,6 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0230-MINGW-AC_LIBOBJ-replacement-of-fileblocks.patch 0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch 0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch - 0280-issue17219-add-current-dir-in-library-path-if-buildi.patch 0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch 0300-MINGW-configure-for-shared-build.patch 0310-MINGW-dynamic-loading-support.patch @@ -59,7 +58,6 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch 0430-MINGW-find-import-library.patch 0440-MINGW-setup-_ssl-module.patch - 0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch 0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch 0462-MINGW-support-stdcall-without-underscore.patch 0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch @@ -97,6 +95,7 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0840-add-builddir-to-library_dirs.patch 0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch 0860-mingw-build-optimized-ext.patch + 0870-mingw-add-LIBPL-to-library-dirs.patch 0910-fix-using-dllhandle-and-winver-mingw.patch 1000-dont-link-with-gettext.patch 1010-ctypes-python-dll.patch @@ -132,9 +131,8 @@ prepare() { plain "Apply Roumen Petrov's compiler patch (2)" patch -p1 -i "${srcdir}"/0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch - plain "Apply Roumen Petrov's extensions patches (23)" + plain "Apply Roumen Petrov's extensions patches (21)" patch -p1 -i "${srcdir}"/0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch - patch -p1 -i "${srcdir}"/0280-issue17219-add-current-dir-in-library-path-if-buildi.patch patch -p1 -i "${srcdir}"/0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch patch -p1 -i "${srcdir}"/0300-MINGW-configure-for-shared-build.patch patch -p1 -i "${srcdir}"/0310-MINGW-dynamic-loading-support.patch @@ -151,7 +149,6 @@ prepare() { patch -p1 -i "${srcdir}"/0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch patch -p1 -i "${srcdir}"/0430-MINGW-find-import-library.patch patch -p1 -i "${srcdir}"/0440-MINGW-setup-_ssl-module.patch - patch -p1 -i "${srcdir}"/0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch patch -p1 -i "${srcdir}"/0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch patch -p1 -i "${srcdir}"/0462-MINGW-support-stdcall-without-underscore.patch patch -p1 -i "${srcdir}"/0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch @@ -191,6 +188,7 @@ prepare() { patch -p1 -i "${srcdir}"/0840-add-builddir-to-library_dirs.patch patch -p1 -i "${srcdir}"/0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch patch -p1 -i "${srcdir}"/0860-mingw-build-optimized-ext.patch + patch -p1 -i "${srcdir}"/0870-mingw-add-LIBPL-to-library-dirs.patch patch -p1 -i "${srcdir}"/0910-fix-using-dllhandle-and-winver-mingw.patch plain "Apply Alexey Pavlov's mingw-w64 patches (2)" @@ -340,81 +338,80 @@ package() { mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe } -sha1sums=('9c6281eeace0c3646fa556c8087bb1b7e033c9c4' - 'ff058a6494ce5a91096a756ca8602fac14e4bf5a' - 'ee2babe00eaad35482acfffb612f68b364150c31' - 'f25698bfa5713ac8a215cc31ca29d75e1219fe95' - 'a35253f4a021f9f9237a0ad2d178731046e130e8' - '39b87abfb3a4d8a0f6a16a1c627ece0527181d92' - '03fc84385039f2e74ffae06b706eedf9e4eced58' - '4b375570d32e6779cd26ae4578054fc0031a1057' - 'ff3ccc52729cc4e9c321677787f0af2dea842095' - 'bb90366209e8832f8b5abc8ab0352dc97020fa5d' - '6f6484021f9a7ce71c2aa88a6aebab890ed85690' - '0bbf753a8e52c413199abe504577c6099e97657a' - '233a3008e3ed8ad38806b996186f2b4b00e95787' - '598c40d4211a786b6bd05a6a1495ca9321258ec5' - 'fd22959c09d157561564ba661ebe5be2052cd017' - 'fc2686d5e190504577586419c4971e3668fb3c57' - '32a3d0ff21f527ed50d036182715c6e1e036928a' - '06d6e9f1ce0915855968735df3101731e3142544' - '4b163ecefaf551469ddd6b622552dce1830f7ff8' - 'd3f588023ea932716b479cbb71b2dc2a98bca122' - '6d6ab5d60ff66b7215f071585af616c4bfea4af8' - '40b2a234bbb225d012af33debb8df015bfda4f1a' - '5a321b071d9f293c4783edf0cbc5489e641bddc5' - '82e544e64670423f88036947cabb65bd50dec537' - '368de9bdb53c5e50643fd09738ae6ca7906d6105' - 'accf4f618f7a2a9859a913ca9be710582277e427' - '8d5fdb792196d6a84bd28884733dfb738dd6470d' - '1dfd90e1f13c6f0ab66931bf258a8d4e892a68ea' - '6c06a12feb60e4d51348f78f0472cc6e5a079635' - 'a58c2889f0bf26de6e73fe2695c08ebeeb3110ab' - 'cea733d5d3b673730a25ebfd46a4c50299dae486' - '0dc29ad579843c85bf256ec41599a5d12fd52c61' - '885469472b14ecd3aa2ed84263fa760d263854fc' - '6d218cb3c6d0eaeef8a957df4e5f15cba9772218' - 'b2066325426efc276fbf88c38e55b9f0db03d9d6' - '18701870027b418c06a1ae239fe623b711d74540' - '0d8474e5a7bfa3eda5e0c8277b3b12f70b7fa14d' - 'fbcb6e56808efc9b91244065a2399cf1a03f653b' - 'b28bf367d49b81bf44bc21e24928a04bac31531f' - '8b8739dc17a377e16a98a77166c79c0a62e98b9d' - 'd54101fd632d41eca98558668946c2e396c02ff1' - '5f8c012c367c25ec9a55bff86edf09e841aa70ff' - '26f0fad5905dae6a7ea69feb96b1eeead0e90a61' - 'db28b6f95fc24d6abbb3797d1d9c7768a87ad73d' - '8ec51c213c62f1db0a4a61cf4eaa69b26e26457b' - '56bca8df15fde1bd12bd1ae939eafef442bdab9d' - 'b7ed33f832b8fa0b1b930e0ba27600cda8184e44' - '3b5706efe88d0b6e7a0b6c55ba6d203e37baddcf' - '9118fcc8fe2b141bf13fd5a843bc3eb5213a0a93' - 'b3e3f8cf921dca507ffd097f71092de536e9f525' - '8da64221399e539cb3356c49ac8bc1a8c8d5fef3' - '0e756f98fcb75a9916421cffeaece971d5dbc74b' - '9205d40b67f97a1ad797c3c5648fe903815e962f' - '4133b4171a73d4de87a45589e80702f2e674b88a' - '406d57de80f77111466fd163a3ec82ee0f94d94a' - '333ab511a4b10de9876bd6eb7ca03148535005b4' - '68a6e12bb892171e4e2238285b99e667d65d3626' - 'e3800d6717305bd708c8605a017d1abd05d8fb7b' - '86ec96aa948c4bb504122a0dc1ba9a5d2ec12d57' - '63d9f98f0822054c113378eac469a589a4433f9e' - '0ee936bfbabd7a858755acf1a717537f13a02336' - '9d1979be09d6a503ac6106dfb96831c44a206135' - '772f1a7478761b5edf33ddf026505ded17263754' - '9f3a2a955023f3aab43ba5b09a97c5ac63df9ed7' - '0201577ba7a2d69f2d73e14651c4748e6b3bbe79' - '7524d140ed956cc954d86dc60e424dd312319a34' - 'c6a33dae9100bed3cc9a666e89945bc2e82e1912' - '418a26fd8f2a47b7d98273b335814fa0c48c5e6e' - '6c2eceaf897daad320826692d2b176caa8a14ffc' - '0e51c781ae921e45bd240572530a0cfa259b87bf' - '70eb399b5d27a624b09c21f38d753ecda21e4b2a' - 'd935249cdc36c5dfb17d9b1d852d6755d23d89bb' - '2c20df25b6249caec41b66d3c5d49d19b906b4ba' - '50edd9f69058917c7efa8af787e1f632121f07f0' - 'd0eac38880e7f36131a9d3d6de67d465d3032aff' - 'a90c50280cca649e01b1b18ccff1aa6f2912ad37' - '2117c93358879d6262c618526a00152eec00f141' - '864396853b7202974e8d18fb70433edbce8334f9') +sha1sums=('3172f6e957713c2d9fca462cc16068222fd1b9d3' + '5e0546d246c18881c448a077c3b605d5db505114' + '34a627481caea8690c2cf6e6d409e2d449d133fb' + 'c936fbd986a2cc126174e45de8b100e24824b905' + 'a5aa0daff5a85c661467b635e4e70bbef0a82046' + 'e9fb36ee9c03e982a8dfcd2890945512fe9392ca' + 'ddcd2893c5113acc02233ea50b5c115defbfcfb9' + '6bc0d42ea3c961139b91ad89ecd5f64d4d03c99c' + '99b81757f9acbfe730ccf16e42166ff4a52b9562' + 'b7e9a776fce256ead7ad38ebaedea4a95aa0934f' + '825456668c8ebeec0e9ac65f8752b2d5c0fc4819' + '669a483e3665b6a8fa6b5f1bcbe9e27f6fd29d05' + '50bb5036f3475662a463d8833bfd8f3f93c2dd23' + '46e5bbecfcc3892a7934fca42ab2e3950c00da2a' + '518a3d1c0365a3ba7356d095245dc732aed40067' + 'ade1e6db5a2643e97fb987946f60f15791f707f3' + 'f782384a8c094010f075aadbc16859c70ecd5e26' + 'c33113fd39b70c328a5b606ca3e2d837b51c4ffd' + '0a351b3d9fddc302838aa489577dc5db54ceb608' + 'a664e8bf904feb18a124f7376283c9e4ae29885e' + '7ad242e0fd33d2aef1d94af44560ee488dedc87a' + 'c858d5fefb300b55d35ec160f2815b165553d2b6' + 'b6e127499ed0d67e61431dfea23fb49606522d2c' + '4f1a99fcb31af079a32496151cee3ce566c3e581' + '15b62ec9b9b8a9ac58a933e034b562271c226a0b' + '2b550ba8b31cc54639847c087a24681431a920d4' + 'b67f7b820b3414219ec1ca07397a35f4d2914854' + '7d7800323249e64451d9e0c5ff7c9546d0e27cf5' + '07c3d42b9c7e79d0e621ae6d9dbe8cdf9c2801f0' + '2d4c42ffbfc02f777379555b752d69dffcc350f0' + '50662bcffc5fe85dea72e9e75b5921370ba3cbb2' + 'be2c7aa1ebdb9838b1121527959e92af8fde84f1' + '12341e177b655c08a6dc83b840d0433770c55164' + '7ff38d3d506064e98aa79b75e7ed64b9e74b3f80' + 'f6abdb937ca40c984d365a317ccde70d1b72a0e5' + '21391c4509a149c710f780c4ab7d1d3aa4b26dbb' + 'f7e5501502ee0e0ef1b86c6cc8a4405ec4842dca' + '2a5aa64eee5c62ffbd0995205ad1e3efb8eb6644' + '124f3bb723bf6b3a035245499fc25d1ef8dae360' + '38505f10c495c1b79342aaeeb0d538b73df52c12' + '6b9e0da25a098c19336c59445745b0d99795edb2' + 'cab956b0b6239ff6fda55a28341c563e05e78236' + '62ba10c3d6e51c1bfdbd1885f6fec51831928924' + 'db205a1b6a0cb517afa9715c01310fb1c981e5df' + 'ab13f486c932081e69ba6ccc7c4417c0d56a5c9d' + 'b2da571659276b3d7bf6d5988ee0716869aa4155' + 'df8a5da8b88dbcbff2919ce5ae5027a654bcfb31' + '3dadc13c916ef6447006e8a544ba5eafb5494fca' + 'b5b94446419382b32d32807825a6e34cc0fb98d6' + 'aa234ba54760de5820934322cb67b574bb1384c5' + '681c4ebe82c5e63ea635e9d0dbf5c3fa37c71e64' + 'd9720baf25659ede48353b0d47b7486339c0efb7' + '867eaf7fa58b5cd6886cf360a95ca70dd7a775f4' + '0cd680615f0ce39097f9db34355ce3aa10ed0b81' + '7c56c69327997605ee64fcef3df8ce0628c16d6f' + '6ab80243af6c3ffcfd61b6bc4c35978cf608bb43' + '6e2f74d3b7719a350c1b7d816016875e0fcead12' + 'eb7fe4fbe2fd15d2efa742caf8bface48f686201' + '943fbc541c3f7d70fe87b44e3f8b6d83c7ae3e97' + '2149347d7d55ea4f228eb5ddc443cea51e040bc6' + 'ca0b23e312694347e3a1a10b38fb31bd724d1ac2' + '12ef984034b57e3e6f2e5c71ad9cabfbae8bc0ba' + 'd18dbfa0bebf7286b04b3ddc7e8ad472ee668fcd' + 'a46b32b514715fafcd1c95055d225ea913fa64a6' + '23c0bcdb082006d6bde3eb9fc72044272c7a08f3' + 'fbefe2d0d2d4c9f995c9c49a66c93071587b7045' + '15e055c4cce32a0c1940953062fd2db7c22364c4' + 'f0f5efb98c610d0caf3ccbf0850460af49f92c96' + '78b039f8ab595750b2f7aee3e2fc6d7a466a5c9c' + 'de01d87f5070992f305d5375da1deb69f80ea8bb' + '6cef2b44a41279c0344cbb9f3486cfc0831026ae' + '0de22d55a78fad4755e2d4950db9a49a48a50ad2' + 'd332da5a091d54445e1a83075a6ea8069031c995' + 'bc7209fd529f03d384f00be22835615a2843a7fa' + '06ebbcf50d6d30780f47a0d3425f956b2eb8e847' + '9042c4902ff03ecc12e0b41059aaebd6ad409009' + 'dc6aa85fa4dc68a6809c1321e4a28a360a242f39') From b3d8c148243181e08ca33895837c9fffe0363b14 Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 11 Dec 2014 19:08:13 +0000 Subject: [PATCH 0139/2060] vlc-git: update to latest --- .../0004-fix-some-time-includes.patch | 40 ------------------- ...pollfd-is-defined-from-Vista-onwards.patch | 28 +++++++++++++ mingw-w64-vlc-git/PKGBUILD | 14 +++---- 3 files changed, 35 insertions(+), 47 deletions(-) delete mode 100644 mingw-w64-vlc-git/0004-fix-some-time-includes.patch create mode 100644 mingw-w64-vlc-git/0004-pollfd-is-defined-from-Vista-onwards.patch diff --git a/mingw-w64-vlc-git/0004-fix-some-time-includes.patch b/mingw-w64-vlc-git/0004-fix-some-time-includes.patch deleted file mode 100644 index 30db49c4ff..0000000000 --- a/mingw-w64-vlc-git/0004-fix-some-time-includes.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 660d0d82ac04c64cf1d6084eb711f0e9e78e9cc1 Mon Sep 17 00:00:00 2001 -From: Martell -Date: Tue, 25 Nov 2014 12:22:09 +0000 -Subject: [PATCH 4/6] fix some time includes - ---- - modules/demux/mkv/mkv.hpp | 4 +--- - src/win32/thread.c | 1 + - 2 files changed, 2 insertions(+), 3 deletions(-) - -diff --git a/modules/demux/mkv/mkv.hpp b/modules/demux/mkv/mkv.hpp -index 8c5af80..392b9e7 100644 ---- a/modules/demux/mkv/mkv.hpp -+++ b/modules/demux/mkv/mkv.hpp -@@ -45,9 +45,7 @@ - #include - #include - --#ifdef HAVE_TIME_H --# include /* time() */ --#endif -+#include - - #include - #include -diff --git a/src/win32/thread.c b/src/win32/thread.c -index 7dcfc4c..9bc787d 100644 ---- a/src/win32/thread.c -+++ b/src/win32/thread.c -@@ -37,6 +37,7 @@ - #include - #include - #include -+#include - - /*** Static mutex and condition variable ***/ - static vlc_mutex_t super_mutex; --- -2.1.3 - diff --git a/mingw-w64-vlc-git/0004-pollfd-is-defined-from-Vista-onwards.patch b/mingw-w64-vlc-git/0004-pollfd-is-defined-from-Vista-onwards.patch new file mode 100644 index 0000000000..3828b259aa --- /dev/null +++ b/mingw-w64-vlc-git/0004-pollfd-is-defined-from-Vista-onwards.patch @@ -0,0 +1,28 @@ +From a2a48f6d68908351363c1320e78bf233eed122d1 Mon Sep 17 00:00:00 2001 +From: martell +Date: Thu, 11 Dec 2014 19:04:53 +0000 +Subject: [PATCH] pollfd is defined from Vista onwards + +--- + include/vlc_fixups.h | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h +index cee1254..86c58b8 100644 +--- a/include/vlc_fixups.h ++++ b/include/vlc_fixups.h +@@ -270,6 +270,11 @@ int inet_pton(int, const char *, void *); + const char *inet_ntop(int, const void *, char *, int); + #endif + ++/* Windows has pollfd from Vista+ */ ++#if (_WIN32_WINNT >= 0x0600) ++#define HAVE_STRUCT_POLLFD ++#endif ++ + #ifndef HAVE_STRUCT_POLLFD + enum + { +-- +2.2.0 + diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 6aefdc3a8f..e9cf469aab 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.59187.bc270b0 +pkgver=3.0.0.59276.be0c8c6 pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -112,7 +112,7 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re 0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch 0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch 0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - 0004-fix-some-time-includes.patch + 0004-pollfd-is-defined-from-Vista-onwards.patch 0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch 0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch 0008-Use-libdir-for-plugins-on-msys2.patch) @@ -120,7 +120,7 @@ md5sums=('SKIP' 'c2a4338d8c9396054c1ed45fae221470' '13f5a8bf897b253e0d9626a5ae79bc8d' 'c53c41b440eb42e7a2cda9109a1651c4' - '82e8ef228dd3702210f31bbd31f4fe94' + '190af6f6e66b786bc481e2be0bde664c' '8cd35991a69b14a1c3ab3b6faa9f15bc' 'de3700133876d218460f4b0ec6779f55' 'b6a010849631177493135b3ad7c5f784') @@ -141,11 +141,11 @@ prepare() { git am "${srcdir}"/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch git am "${srcdir}"/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - git am "${srcdir}"/0004-fix-some-time-includes.patch + git am "${srcdir}"/0004-pollfd-is-defined-from-Vista-onwards.patch git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch - git am "${srcdir}"/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch if [ "${_variant}" != "winrt" ]; then + git am "${srcdir}"/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch git am "${srcdir}"/0008-Use-libdir-for-plugins-on-msys2.patch fi @@ -172,8 +172,8 @@ if [ "${_variant}" = "winrt" ]; then EXTRA_CPPFLAGS+=" -D_WIN32_WINNT=0x602 -DWINVER=0x602 -DWINSTORECOMPAT -D_UNICODE -DUNICODE -DHAVE_WINRT" #todo: ask about CFLAGS. i.e building in full WinRT mode not compat - #CFLAGS+=" -D_WIN32_WINNT=0x602 -DWINVER=0x602 -DWINSTORECOMPAT -D_UNICODE -DUNICODE -DHAVE_WINRT" - #CFLAGS+=" -DNDEBUG -DWINAPI_FAMILY=WINAPI_FAMILY_APP -DHAVE_WINRT" + CFLAGS+=" -D_WIN32_WINNT=0x602 -DWINVER=0x602 -DWINSTORECOMPAT -D_UNICODE -DUNICODE -DHAVE_WINRT" + CFLAGS+=" -DNDEBUG -DWINAPI_FAMILY=WINAPI_FAMILY_APP -DHAVE_WINRT" EXTRA_LDFLAGS+=" -lnormaliz -lwinstorecompat -lruntimeobject" ${MINGW_CHOST}-gcc -dumpspecs | sed -e 's/-lmingwex/-lwinstorecompat -lmingwex -lwinstorecompat -lole32 -lruntimeobject/' -e 's/-lmsvcrt/-lmsvcr110/' > newspecfile From b84552c82ab43657018c606daea92eedc4aeff2b Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 11 Dec 2014 19:19:17 +0000 Subject: [PATCH 0140/2060] vlc-git: re apply mingwandroid's patch for winRT to test --- mingw-w64-vlc-git/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index e9cf469aab..bdd1721585 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -143,9 +143,10 @@ prepare() { git am "${srcdir}"/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch git am "${srcdir}"/0004-pollfd-is-defined-from-Vista-onwards.patch git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch + git am "${srcdir}"/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch if [ "${_variant}" != "winrt" ]; then - git am "${srcdir}"/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch + git am "${srcdir}"/0008-Use-libdir-for-plugins-on-msys2.patch fi From 8d413721bd5747a0a586de3aaf9af6e754cc3e87 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 11 Dec 2014 19:11:52 +0300 Subject: [PATCH 0141/2060] qt5: Update to 5.4.0 --- mingw-w64-qt5/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 4a5e0bb114..03a37d8dd7 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -75,7 +75,7 @@ fi _opengl=desktop _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.4.0-rc +_ver_base=5.4.0 pkgver=${_ver_base//-/} pkgrel=1 arch=('any') @@ -133,8 +133,8 @@ groups=("${MINGW_PACKAGE_PREFIX}-qt" "${MINGW_PACKAGE_PREFIX}-qt5") options=('!strip' 'staticlibs' 'ccache') _pkgfqn="qt-everywhere-opensource-src-${_ver_base}" noextract=(${_pkgfqn}.tar.xz) -source=(http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ver_base//RC/rc}/single/${_pkgfqn}.tar.xz - #http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${_ver_base}/single/${_pkgfqn}.tar.xz +source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ver_base//RC/rc}/single/${_pkgfqn}.tar.xz + http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${_ver_base}/single/${_pkgfqn}.tar.xz #http://download.qt-project.org/snapshots/qt/${pkgver%.*}/${_ver_base}/2014-05-07_85/src/qt-everywhere-opensource-src-${_ver_base}.tar.xz #"qt3d"::"git://gitorious.org/qt/qt3d.git" 0001-Add-link-time-optimization-support-for-Clang-GCC-and.patch @@ -172,7 +172,7 @@ source=(http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_v 0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch 0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch 0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch) -md5sums=('3d371bbc5598af620723a594f9f1a774' +md5sums=('21843b00ecde8956217faab391bc007b' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' '53edcf1df69ae8134a196292447ddaa3' From 33852679373496d1f643cfdb63dc668e7ef79d40 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 11 Dec 2014 19:12:28 +0300 Subject: [PATCH 0142/2060] qbs: Rebuild with Qt-5.4.0 --- mingw-w64-qbs/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index f8fb061ac8..a8044272b3 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -4,7 +4,7 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.2 -pkgrel=1 +pkgrel=2 _pkgfqn="${_realname}-${pkgver}.src" pkgdesc='Qt Build Suite' url='http://qt-project.org' From 8195d4c8cb67776300859ee28ef5c01fbafc0d72 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 11 Dec 2014 22:09:39 +0300 Subject: [PATCH 0143/2060] qbs: Update to 1.3.3 --- mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch | 4 ++-- .../0003-add-generator-header-installs.1.3.2.patch | 2 +- ...etup-toolchains-Pretend-msys-is-mingw.1.3.2.patch | 4 ++-- mingw-w64-qbs/PKGBUILD | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch b/mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch index eecc46c935..fccebcf16d 100644 --- a/mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch +++ b/mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch @@ -1028,7 +1028,7 @@ index 5b497aa..5008738 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri @@ -7,6 +7,8 @@ HEADERS += \ - $$PWD/error.h \ + $$PWD/executablefinder.h \ $$PWD/fileinfo.h \ $$PWD/filetime.h \ + $$PWD/generateoptions.h \ @@ -1037,8 +1037,8 @@ index 5b497aa..5008738 100644 $$PWD/persistence.h \ $$PWD/scannerpluginmanager.h \ @@ -37,6 +39,8 @@ SOURCES += \ - $$PWD/codelocation.cpp \ $$PWD/error.cpp \ + $$PWD/executablefinder.cpp \ $$PWD/fileinfo.cpp \ + $$PWD/generateoptions.cpp \ + $$PWD/generatorpluginmanager.cpp \ diff --git a/mingw-w64-qbs/0003-add-generator-header-installs.1.3.2.patch b/mingw-w64-qbs/0003-add-generator-header-installs.1.3.2.patch index fcf391bffb..02f2aa77a8 100644 --- a/mingw-w64-qbs/0003-add-generator-header-installs.1.3.2.patch +++ b/mingw-w64-qbs/0003-add-generator-header-installs.1.3.2.patch @@ -17,9 +17,9 @@ index 9b2fb38..e31ea57 100644 $$PWD/project.h \ $$PWD/projectdata.h \ + $$PWD/generator.h \ + $$PWD/rulecommand.h \ $$PWD/runenvironment.h api_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/api - INSTALLS += api_headers diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri index 5008738..9e361e1 100644 --- a/src/lib/corelib/tools/tools.pri diff --git a/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch b/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch index 5f41fe31df..be1037849a 100644 --- a/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch +++ b/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch @@ -13,9 +13,9 @@ index d0f123b..184efdf 100644 --- a/src/app/qbs-setup-toolchains/probe.cpp +++ b/src/app/qbs-setup-toolchains/probe.cpp @@ -85,7 +85,8 @@ static QStringList validMinGWMachines() - return QStringList() - << QLatin1String("mingw32") << QLatin1String("mingw64") << QLatin1String("i686-w64-mingw32") << QLatin1String("x86_64-w64-mingw32") + << QLatin1String("i686-w64-mingw32.shared") << QLatin1String("x86_64-w64-mingw32.shared") + << QLatin1String("i686-w64-mingw32.static") << QLatin1String("x86_64-w64-mingw32.static") - << QLatin1String("i586-mingw32msvc") << QLatin1String("amd64-mingw32msvc"); + << QLatin1String("i586-mingw32msvc") << QLatin1String("amd64-mingw32msvc") + << QLatin1String("i686-pc-msys") << QLatin1String("x86_64-pc-msys"); diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index a8044272b3..b286448dbf 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -3,8 +3,8 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.2 -pkgrel=2 +pkgver=1.3.3 +pkgrel=1 _pkgfqn="${_realname}-${pkgver}.src" pkgdesc='Qt Build Suite' url='http://qt-project.org' @@ -20,13 +20,13 @@ source=("http://download.qt-project.org/official_releases/qbs/${pkgver}/${_pkgfq "0003-add-generator-header-installs.1.3.2.patch" "0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch" "0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch") -sha256sums=('03ce02bc1e5d6985e79318a7e49b95052166de5fe464c9149ce2828368292a9f' +sha256sums=('6d3372d088f2328cb2f51f77321f98d20068e91a0334b4c176d85d000a78036a' '838098b25a8044176b3139b4003594570c62a8d64f5470fbbd769f3bf44e0855' '6cc55051178868aeda33608f1ea7cc5d30641454c852c807d13b3eaf6db9a513' - '8d1bb855505379419b4ad4220d25bdd74b67709f09cd923cf1fbb8b24b3b2acb' - '29b46019650edfc4ff5d5b954e4bbfd7aa53b47dfe5d4c46505b8e3fa284b197' + '9d770fec6b89b9568e9a35813c4e017377b618438be17c8caba0b950c4cddc85' + '6afc5fc270d7ef82c183f58e90d8a02aba80863e50d1073ed176de07c11bd7b6' '6efed604de50ac5ab43205845e5888604705fa907b6eb30c7004a9bd228973bf' - '10594ba415e7d79ddcd9dc5b33a1c8ea898090213d4596aac507d739e7e28035') + 'f41dba9096ba87bd7112d785ccd01f7217f2d4f6ea8eada45dcb85b6ffbe79ab') prepare() { cd ${_realname}-${pkgver} From 356f8d0678e1aa094803d403209ed94b3991ce61 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 12 Dec 2014 00:20:09 +0300 Subject: [PATCH 0144/2060] qtcreator: Update to 3.3.0 --- mingw-w64-qtcreator/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 90a4f8b4bc..0952f455b2 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -4,7 +4,7 @@ _realname=qt-creator pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" # WIP for 3.? -__pre=-rc1 +__pre= _base_ver=3.3.0 #_base_ver=3.2.2 pkgver=${_base_ver}${_pre} @@ -16,7 +16,7 @@ arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-qt5" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-make" - "${MINGW_PACKAGE_PREFIX}-qbs-git") + "${MINGW_PACKAGE_PREFIX}-qbs") makedepends=("${MINGW_PACKAGE_PREFIX}-clang") options=('docs' 'staticlibs') # 'debug' '!strip') optdepends=("${MINGW_PACKAGE_PREFIX}-gdb: for the debugger" @@ -28,8 +28,8 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-gdb: for the debugger" #'bzr: for bazaar support' ) _pkgfqn="${_realname}-opensource-src-${_base_ver}${__pre}" -source=(http://download.qt-project.org/development_releases/qtcreator/${_base_ver%.*}/${_base_ver}${__pre}/${_pkgfqn}.tar.gz - #http://download.qt-project.org/official_releases/qtcreator/${pkgver%.*}/${pkgver}/${_pkgfqn}.tar.gz +source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_ver%.*}/${_base_ver}${__pre}/${_pkgfqn}.tar.gz + http://download.qt-project.org/official_releases/qtcreator/${pkgver%.*}/${pkgver}/${_pkgfqn}.tar.gz 0001-Qbs-Do-not-crash-when-using-simplified-project-view.patch 0001-autotools-Allow-builds-to-be-done-in-buildDir.patch 0001-autotools-Remove-broken-unchanged-check.patch @@ -45,7 +45,7 @@ source=(http://download.qt-project.org/development_releases/qtcreator/${_base_ve qt-creator-3.2.0-i[3456]86-and-x86-have-32bit-wordWidth.patch qt-creator-3.3.0-abi-msys-is-Windows.patch) noextract=(${_pkgfqn}.tar.gz) -sha256sums=('f9b092e6d1e92762df0987222d4719659e9f352c389df00b64c5f1fdfc24bdc8' +sha256sums=('27a5c8815fab95f959134047f8315686de4de6f99b0bedfd46b5dedae390525a' '18f59946054e667b56276f53ec544d4786c3c249fee6c0bd9b0b565ed4b7cf2d' '6c34b2bad7a24c5922d237dc67fcced14e83d65116f77cd84aa80ae2ebd4aad9' '2f45ff4c2806c90c36f19da07707fef213e50fbf8825fe169e1bce6349efacee' From df167323ffabd13003c7728ed75a62507981ea76 Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 11 Dec 2014 20:58:42 +0000 Subject: [PATCH 0145/2060] vlc-git: try to move away from #define to configure.ac patch --- ...pollfd-is-defined-from-Vista-onwards.patch | 36 +++++++++++++++++++ mingw-w64-vlc-git/PKGBUILD | 8 ++++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-vlc-git/0007-pollfd-is-defined-from-Vista-onwards.patch diff --git a/mingw-w64-vlc-git/0007-pollfd-is-defined-from-Vista-onwards.patch b/mingw-w64-vlc-git/0007-pollfd-is-defined-from-Vista-onwards.patch new file mode 100644 index 0000000000..c3a2b3607d --- /dev/null +++ b/mingw-w64-vlc-git/0007-pollfd-is-defined-from-Vista-onwards.patch @@ -0,0 +1,36 @@ +From 9f7f14321c30493744d2c7da96351c183e58d4ab Mon Sep 17 00:00:00 2001 +From: martell +Date: Thu, 11 Dec 2014 20:42:25 +0000 +Subject: [PATCH] pollfd is defined from Vista onwards + +--- + configure.ac | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 14b21cc..1e20914 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -658,6 +658,19 @@ AC_LINK_IFELSE( + #endif], [ + freeaddrinfo(0); + ])],[AC_DEFINE([HAVE_FREEADDRINFO],[1],[Define to 1 if you have freeaddrinfo function])],[AC_LIBOBJ([freeaddrinfo])]) ++AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([#ifdef _WIN32 ++ # if _WIN32_WINNT < 0x600 ++ # error Needs vista+ ++ # endif ++ #include ++ #else ++ #include ++ #include ++ #endif], [ ++ struct pollfd pfd; ++ pfd.fd = 1; ++ ])],[AC_DEFINE([HAVE_STRUCT_POLLFD],[1],[Define to 1 if you have pollfd struct])]) + VLC_RESTORE_FLAGS + + AS_IF([test -n "$SOCKET_LIBS"], [ +-- +2.2.0 + diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index bdd1721585..f30fd98377 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -115,6 +115,7 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re 0004-pollfd-is-defined-from-Vista-onwards.patch 0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch 0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch + 0007-pollfd-is-defined-from-Vista-onwards.patch 0008-Use-libdir-for-plugins-on-msys2.patch) md5sums=('SKIP' 'c2a4338d8c9396054c1ed45fae221470' @@ -123,6 +124,7 @@ md5sums=('SKIP' '190af6f6e66b786bc481e2be0bde664c' '8cd35991a69b14a1c3ab3b6faa9f15bc' 'de3700133876d218460f4b0ec6779f55' + '5b8f11f077663c5dd18c9905dcef08ea' 'b6a010849631177493135b3ad7c5f784') pkgver() { @@ -141,9 +143,10 @@ prepare() { git am "${srcdir}"/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch git am "${srcdir}"/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - git am "${srcdir}"/0004-pollfd-is-defined-from-Vista-onwards.patch + #git am "${srcdir}"/0004-pollfd-is-defined-from-Vista-onwards.patch git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch git am "${srcdir}"/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch + git am "${srcdir}"/0007-pollfd-is-defined-from-Vista-onwards.patch if [ "${_variant}" != "winrt" ]; then @@ -158,6 +161,9 @@ fi build() { + cd "${srcdir}"/${_realname} + ./bootstrap + mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} From a914209640b32f58ea187faa96e620e6b8440dd2 Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 11 Dec 2014 21:41:19 +0000 Subject: [PATCH 0146/2060] vlc-git: apply patch 4 and not 7 so ray can test --- mingw-w64-vlc-git/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index f30fd98377..9cad4db6db 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -143,10 +143,10 @@ prepare() { git am "${srcdir}"/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch git am "${srcdir}"/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - #git am "${srcdir}"/0004-pollfd-is-defined-from-Vista-onwards.patch + git am "${srcdir}"/0004-pollfd-is-defined-from-Vista-onwards.patch git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch git am "${srcdir}"/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch - git am "${srcdir}"/0007-pollfd-is-defined-from-Vista-onwards.patch + #git am "${srcdir}"/0007-pollfd-is-defined-from-Vista-onwards.patch if [ "${_variant}" != "winrt" ]; then From efe68b1782e3d8111124991b2270e680cbe33aff Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 11 Dec 2014 23:05:16 +0000 Subject: [PATCH 0147/2060] pkg-config: Update md5sums --- mingw-w64-pkg-config/PKGBUILD | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mingw-w64-pkg-config/PKGBUILD b/mingw-w64-pkg-config/PKGBUILD index 5b328ba3ce..0e8b73b293 100644 --- a/mingw-w64-pkg-config/PKGBUILD +++ b/mingw-w64-pkg-config/PKGBUILD @@ -24,15 +24,15 @@ source=(http://pkgconfig.freedesktop.org/releases/${_realname}-${pkgver}.tar.gz 0011-platform-dependent-separator-and-adjustable-prefix.mingw.patch 0099-no-prefix-on.mingw.patch) md5sums=('aa3c86e67551adc3ac865160e34a2a0d' - 'd4cf66f456cc80466c553ccd96c0c0a1' - '986d72727b4899a18106bd581f2cce34' - '0620261f077b3c0dc1622ff3a6e3b87d' - 'f2332f2111ea6fc6c096249ccad297b1' - '8c3fafdb507b0f01bfb2f13dd7747752' - '58b709c3d9bc6285b9496ee449084b02' - '079c1a68d297a8062fe620c302b9781f' - '432aaf4ccaf70b093bc90cabd8c995e0' - '43deff1cc78f45f7e3d6b9fee96de0e3' + '073729fca79eb7415a88eec68504dc92' + 'a14107b8eb8640aac2e59798467128a3' + 'a605f371133ea78af740109a2b690a69' + '2b5a8f14761eaee3ccc35d8d24aace9f' + '27602f99a978c28f963afe9313fd1604' + 'e1b804a1b0a15e9af895f6fd92907f23' + '2ba25b1a52a48afa0d2e1b0e06aaa07c' + '377256964716a68e8fe170e8df157641' + 'cb65caa60584d471aa6f76b181790ee1' 'd6b6acdb90f93c35378f53e34e7cd6fa' 'd61554e8456fa9f67fbf90c8219dd2bf') From 05520dabc43c43ccdfac0713d07c2c4e8950ac21 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 11 Dec 2014 23:07:07 +0000 Subject: [PATCH 0148/2060] qt5-static: Tidy a cmake patch --- ...n32-qt5-static-cmake-link-ws2_32-and--static.patch | 11 +++-------- mingw-w64-qt5-static/PKGBUILD | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/mingw-w64-qt5-static/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch b/mingw-w64-qt5-static/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch index 19f1a7ab68..f958c2288e 100644 --- a/mingw-w64-qt5-static/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch +++ b/mingw-w64-qt5-static/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch @@ -1,20 +1,15 @@ --- x86_64/qtbase/src/corelib/Qt5CoreConfigExtras.cmake.in.orig 2014-11-09 00:54:20.852201500 +0000 +++ x86_64/qtbase/src/corelib/Qt5CoreConfigExtras.cmake.in 2014-11-09 00:55:52.437439900 +0000 -@@ -165,3 +165,17 @@ +@@ -165,3 +165,12 @@ set(_Qt5CTestMacros \"${_Qt5CoreConfigDir}/Qt5CTestMacros.cmake\") _qt5_Core_check_file_exists(${_Qt5CTestMacros}) + +get_target_property(_libType Qt5::Core TYPE) -+# If WIN32_EXECUTABLE worked reliably (kconfig doesn't build with it) -+# then we'd not use AND CMAKE_HOST_WIN32 here. -+if(_libType STREQUAL \"STATIC_LIBRARY\" AND CMAKE_HOST_WIN32) ++if(_libType STREQUAL \"STATIC_LIBRARY\" AND WIN32) + set(_isExe $,EXECUTABLE>) -+# set(_isWin32 $>) -+ set(_isWin32 1) + # INTERFACE_LINK_LIBRARIES is used to pass a linker flag (-static) + # and a library (ws2_32) -+ set_target_properties(Qt5::Core PROPERTIES \"INTERFACE_LINK_LIBRARIES\" \"$<$:-static;ws2_32>\") ++ set_target_properties(Qt5::Core PROPERTIES \"INTERFACE_LINK_LIBRARIES\" \"$<${_isExe}:-static;ws2_32>\") + unset(_isExe) -+ unset(_isWin32) +endif() diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 9ac7e08b10..f1140080da 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -209,7 +209,7 @@ md5sums=('3d371bbc5598af620723a594f9f1a774' '47e70b9a063aa99aba0096007ed5b83d' '3049f9e43e24f7eaafb4659c72ca4789' 'cbef002e6f4b0d043ca6a6e9d60ceca5' - 'e00dd07a067a5f5e99a7d4ef76980bc9') + '8749d4fd65a86a24fafba23067a2e086') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) From adb04c55eaabe501748e5e0744dde50995a34b92 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 12 Dec 2014 21:41:38 +0300 Subject: [PATCH 0149/2060] enchant: Relocate paths. Don't use registry. --- mingw-w64-enchant/01-relocate.patch | 895 ++++++++++++++++++++++++++++ mingw-w64-enchant/PKGBUILD | 15 +- 2 files changed, 906 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-enchant/01-relocate.patch diff --git a/mingw-w64-enchant/01-relocate.patch b/mingw-w64-enchant/01-relocate.patch new file mode 100644 index 0000000000..29977edf68 --- /dev/null +++ b/mingw-w64-enchant/01-relocate.patch @@ -0,0 +1,895 @@ +diff -Naur enchant-1.6.0-orig/configure.in enchant-1.6.0/configure.in +--- enchant-1.6.0-orig/configure.in 2010-04-01 23:56:07.000000000 +0300 ++++ enchant-1.6.0/configure.in 2014-12-12 21:31:01.901400000 +0300 +@@ -176,7 +176,7 @@ + CXX_WARN_CFLAGS="$enchant_cxx_cv_warn_cflags" + AC_SUBST(CXX_WARN_CFLAGS) + +-ENCHANT_CFLAGS="$ENCHANT_CFLAGS -DENCHANT_PREFIX_DIR='\"$prefix\"'" ++ENCHANT_CFLAGS="$ENCHANT_CFLAGS -DENCHANT_PREFIX_DIR='\"$prefix\"' -DENCHANT_BIN_DIR='\"$bindir\"'" + + AC_SUBST(ENCHANT_CFLAGS) + AC_SUBST(ENCHANT_LIBS) +diff -Naur enchant-1.6.0-orig/src/aspell/aspell_provider.c enchant-1.6.0/src/aspell/aspell_provider.c +--- enchant-1.6.0-orig/src/aspell/aspell_provider.c 2010-04-01 23:53:37.000000000 +0300 ++++ enchant-1.6.0/src/aspell/aspell_provider.c 2014-12-12 17:06:21.689000000 +0300 +@@ -405,6 +405,7 @@ + HMODULE aspell_module = NULL; + char* szModule; + ++#ifndef __MINGW32__ + /* first try load from registry path */ + szModule = enchant_get_registry_value ("Aspell", "Module"); + if(szModule) +@@ -426,6 +427,7 @@ + g_free(wszDirectory); + } + } ++#endif + + if (aspell_module == NULL) + { +@@ -455,11 +457,11 @@ + void configure_enchant_provider(EnchantProvider * me, const char *dir_name) + { + #if defined(_WIN32) +- if(!load_library(me, dir_name, L"aspell-15.dll") && +- !load_library(me, dir_name, L"libaspell-15.dll")) ++ if(!load_library(me, dir_name, L"aspell-16.dll") && ++ !load_library(me, dir_name, L"libaspell-16.dll")) + { + /* we can't seem to load aspell. Avoid late binding problems later */ +- g_warning("Unable to load library aspell-15.dll."); ++ g_warning("Unable to load library aspell-16.dll."); + me->request_dict = NULL; + me->dispose_dict = NULL; + me->list_dicts = NULL; +diff -Naur enchant-1.6.0-orig/src/enchant.c enchant-1.6.0/src/enchant.c +--- enchant-1.6.0-orig/src/enchant.c 2014-12-12 16:54:56.911400000 +0300 ++++ enchant-1.6.0/src/enchant.c 2014-12-12 21:29:55.568400000 +0300 +@@ -41,6 +41,7 @@ + #include "enchant.h" + #include "enchant-provider.h" + #include "pwl.h" ++#include "pathtools.h" + + #ifdef XP_TARGET_COCOA + #import "enchant_cocoa.h" +@@ -58,6 +59,26 @@ + #include "prefix.h" + #endif + ++ ++ENCHANT_MODULE_EXPORT (char *) ++enchant_path_relocation(const char *path) ++{ ++#if defined(__MINGW32__) && defined(ENCHANT_BIN_DIR) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (ENCHANT_BIN_DIR, path); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(path); ++#endif ++} ++ + ENCHANT_PLUGIN_DECLARE("Enchant") + + static char * +@@ -143,11 +164,13 @@ + { + GSList *dirs = NULL; + const char* home_dir; ++#ifndef __MINGW32__ + char *tmp; + + tmp = enchant_get_registry_value_ex (1, "Config", "Home_Dir"); + if (tmp) + dirs = enchant_slist_append_unique_path (dirs, tmp); ++#endif + + home_dir = g_get_home_dir (); + if (home_dir) +@@ -210,6 +233,7 @@ + char * module_dir = NULL; + char * prefix = NULL; + ++#ifndef __MINGW32__ + { + char* user_module_dir; + +@@ -217,6 +241,7 @@ + if (user_module_dir) + module_dirs = enchant_slist_append_unique_path (module_dirs, user_module_dir); + } ++#endif + + #ifdef XP_TARGET_COCOA + module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup ([[EnchantResourceProvider instance] moduleFolder])); +@@ -233,13 +258,15 @@ + g_slist_free (user_dirs); + } + ++#ifndef __MINGW32__ + /* Look for explicitly set registry values */ + module_dir = enchant_get_registry_value_ex (0, "Config", "Module_Dir"); + if (module_dir) + module_dirs = enchant_slist_append_unique_path (module_dirs, module_dir); ++#endif + + #if defined(ENCHANT_GLOBAL_MODULE_DIR) +- module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup (ENCHANT_GLOBAL_MODULE_DIR)); ++ module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup (enchant_path_relocation(ENCHANT_GLOBAL_MODULE_DIR))); + #else + /* Dynamically locate library and search for modules relative to it. */ + prefix = enchant_get_prefix_dir(); +@@ -273,11 +300,14 @@ + conf_dirs = enchant_slist_append_unique_path (conf_dirs, g_strdup ([[EnchantResourceProvider instance] configFolder])); + #endif + ++#ifndef __MINGW32__ + /* Look for explicitly set registry values */ + ordering_dir = enchant_get_registry_value_ex (0, "Config", "Data_Dir"); + if (ordering_dir) + conf_dirs = enchant_slist_append_unique_path (conf_dirs, ordering_dir); ++#endif + ++#if !defined(ENCHANT_GLOBAL_ORDERING) + /* Dynamically locate library and search for files relative to it. */ + prefix = enchant_get_prefix_dir(); + if(prefix) +@@ -287,8 +317,8 @@ + conf_dirs = enchant_slist_append_unique_path (conf_dirs, ordering_dir); + } + +-#if defined(ENCHANT_GLOBAL_ORDERING) +- conf_dirs = enchant_slist_append_unique_path (conf_dirs, g_strdup (ENCHANT_GLOBAL_ORDERING)); ++#else ++ conf_dirs = enchant_slist_append_unique_path (conf_dirs, g_strdup (enchant_path_relocation(ENCHANT_GLOBAL_ORDERING))); + #endif + + return conf_dirs; +@@ -346,13 +376,17 @@ + enchant_get_user_config_dirs (void) + { + GSList *dirs; ++#ifndef __MINGW32__ + char* user_config; ++#endif + + dirs = enchant_get_user_dirs(); + ++#ifndef __MINGW32__ + user_config = enchant_get_registry_value_ex (1, "Config", "Data_Dir"); + if (user_config) + dirs = enchant_slist_prepend_unique_path (dirs, user_config); ++#endif + + return dirs; + } +@@ -2273,7 +2307,7 @@ + + #if defined(ENCHANT_PREFIX_DIR) + if (!prefix) { +- prefix = g_strdup (ENCHANT_PREFIX_DIR); ++ prefix = g_strdup(enchant_path_relocation(ENCHANT_PREFIX_DIR)); + } + #endif + +diff -Naur enchant-1.6.0-orig/src/enchant.h enchant-1.6.0/src/enchant.h +--- enchant-1.6.0-orig/src/enchant.h 2010-04-01 23:53:37.000000000 +0300 ++++ enchant-1.6.0/src/enchant.h 2014-12-12 20:16:47.164400000 +0300 +@@ -51,6 +51,9 @@ + typedef struct str_enchant_broker EnchantBroker; + typedef struct str_enchant_dict EnchantDict; + ++ENCHANT_MODULE_EXPORT (char *) ++ enchant_path_relocation(const char *path); ++ + /* const */ + ENCHANT_MODULE_EXPORT (char *) + enchant_get_version (void); +diff -Naur enchant-1.6.0-orig/src/ispell/ispell_checker.cpp enchant-1.6.0/src/ispell/ispell_checker.cpp +--- enchant-1.6.0-orig/src/ispell/ispell_checker.cpp 2010-04-01 23:53:37.000000000 +0300 ++++ enchant-1.6.0/src/ispell/ispell_checker.cpp 2014-12-12 20:17:39.814400000 +0300 +@@ -306,13 +306,15 @@ + + /* until I work out how to link the modules against enchant in MacOSX - fjf + */ +-#ifndef XP_TARGET_COCOA ++#if !defined(XP_TARGET_COCOA) && !defined(ENCHANT_ISPELL_DICT_DIR) + char * ispell_prefix = NULL; + ++#ifndef __MINGW32__ + /* Look for explicitly set registry values */ + ispell_prefix = enchant_get_registry_value ("Ispell", "Data_Dir"); + if (ispell_prefix) + dirs = g_slist_append (dirs, ispell_prefix); ++#endif + + /* Dynamically locate library and search for modules relative to it. */ + char * enchant_prefix = enchant_get_prefix_dir(); +@@ -325,7 +327,7 @@ + #endif + + #ifdef ENCHANT_ISPELL_DICT_DIR +- dirs = g_slist_append (dirs, g_strdup (ENCHANT_ISPELL_DICT_DIR)); ++ dirs = g_slist_append (dirs, g_strdup (enchant_path_relocation(ENCHANT_ISPELL_DICT_DIR))); + #endif + + { +diff -Naur enchant-1.6.0-orig/src/Makefile.am enchant-1.6.0/src/Makefile.am +--- enchant-1.6.0-orig/src/Makefile.am 2010-04-01 23:53:37.000000000 +0300 ++++ enchant-1.6.0/src/Makefile.am 2014-12-12 16:37:03.505000000 +0300 +@@ -14,7 +14,7 @@ + endif + + libenchant_la_DEPENDENCIES = @ENCHANT_WIN32_RESOURCE@ +-libenchant_la_SOURCES = prefix.c enchant.c pwl.c enchant.h prefix.h pwl.h ++libenchant_la_SOURCES = pathtools.c prefix.c enchant.c pwl.c enchant.h pathtools.h prefix.h pwl.h + + libenchant_includedir = $(includedir)/enchant + libenchant_include_HEADERS = enchant.h enchant-provider.h enchant++.h +diff -Naur enchant-1.6.0-orig/src/myspell/myspell_checker.cpp enchant-1.6.0/src/myspell/myspell_checker.cpp +--- enchant-1.6.0-orig/src/myspell/myspell_checker.cpp 2010-04-01 23:53:37.000000000 +0300 ++++ enchant-1.6.0/src/myspell/myspell_checker.cpp 2014-12-12 20:18:04.712000000 +0300 +@@ -254,13 +254,15 @@ + + /* until I work out how to link the modules against enchant in MacOSX - fjf + */ +-#ifndef XP_TARGET_COCOA ++#if !defined(XP_TARGET_COCOA) && !defined(ENCHANT_MYSPELL_DICT_DIR) + char * myspell_prefix = NULL; + ++#ifndef __MINGW32__ + /* Look for explicitly set registry values */ + myspell_prefix = enchant_get_registry_value ("Myspell", "Data_Dir"); + if (myspell_prefix) + dirs = g_slist_append (dirs, myspell_prefix); ++#endif + + /* Dynamically locate library and search for modules relative to it. */ + char * enchant_prefix = enchant_get_prefix_dir(); +@@ -273,7 +275,7 @@ + #endif + + #ifdef ENCHANT_MYSPELL_DICT_DIR +- dirs = g_slist_append (dirs, g_strdup (ENCHANT_MYSPELL_DICT_DIR)); ++ dirs = g_slist_append (dirs, g_strdup (enchant_path_relocation(ENCHANT_MYSPELL_DICT_DIR))); + #endif + + #if defined(_WIN32) +diff -Naur enchant-1.6.0-orig/src/pathtools.c enchant-1.6.0/src/pathtools.c +--- enchant-1.6.0-orig/src/pathtools.c 1970-01-01 03:00:00.000000000 +0300 ++++ enchant-1.6.0/src/pathtools.c 2014-12-12 20:13:13.631600000 +0300 +@@ -0,0 +1,538 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++#include ++#endif ++#include ++ ++/* If you don't define this, then get_executable_path() ++ can only use argv[0] which will often not work well */ ++#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH ++ ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++/* Nothing needed, unistd.h is enough. */ ++#elif defined(__APPLE__) ++#include ++#elif defined(_WIN32) ++#define WIN32_MEAN_AND_LEAN ++#include ++#include ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ ++#include "pathtools.h" ++ ++char * ++malloc_copy_string(char const * original) ++{ ++ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); ++ if (result != NULL) ++ { ++ strcpy (result, original); ++ } ++ return result; ++} ++ ++void ++sanitise_path(char * path) ++{ ++ size_t path_size = strlen (path); ++ ++ /* Replace any '\' with '/' */ ++ char * path_p = path; ++ while ((path_p = strchr (path_p, '\\')) != NULL) ++ { ++ *path_p = '/'; ++ } ++ /* Replace any '//' with '/' */ ++ path_p = path; ++ while ((path_p = strstr (path_p, "//")) != NULL) ++ { ++ memmove (path_p, path_p + 1, path_size--); ++ } ++ return; ++} ++ ++char * ++get_relative_path(char const * from_in, char const * to_in) ++{ ++ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); ++ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); ++ size_t max_size = (from_size + to_size) * 2 + 4; ++ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); ++ char * from; ++ char * to; ++ char * common_part; ++ char * result; ++ size_t count; ++ ++ /* No to, return "./" */ ++ if (to_in == NULL) ++ { ++ return malloc_copy_string ("./"); ++ } ++ ++ /* If alloca failed or no from was given return a copy of to */ ++ if ( from_in == NULL ++ || scratch_space == NULL ) ++ { ++ return malloc_copy_string (to_in); ++ } ++ ++ from = scratch_space; ++ strcpy (from, from_in); ++ to = from + from_size + 1; ++ strcpy (to, to_in); ++ common_part = to + to_size + 1; ++ result = common_part + max_size; ++ simplify_path (from); ++ simplify_path (to); ++ ++ result[0] = '\0'; ++ ++ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ ++ size_t match_size = 0; /* The running (and final) match size. */ ++ size_t largest_size = (from_size > to_size) ? from_size : to_size; ++ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; ++ char from_c; ++ char to_c; ++ for (match_size = 0; match_size < largest_size; ++match_size) ++ { ++ /* To simplify the logic, always pretend the strings end with '/' */ ++ from_c = (match_size < from_size) ? from[match_size] : '/'; ++ to_c = (match_size < to_size) ? to[match_size] : '/'; ++ ++ if (from_c != to_c) ++ { ++ if (from_c != '\0' || to_c != '\0') ++ { ++ match_size = match_size_dirsep; ++ } ++ break; ++ } ++ else if (from_c == '/') ++ { ++ match_size_dirsep = match_size; ++ } ++ } ++ strncpy (common_part, from, match_size); ++ common_part[match_size] = '\0'; ++ from += match_size; ++ to += match_size; ++ size_t ndotdots = 0; ++ char const* from_last = from + strlen(from) - 1; ++ while ((from = strchr (from, '/')) && from != from_last) ++ { ++ ++ndotdots; ++ ++from; ++ } ++ for (count = 0; count < ndotdots; ++count) ++ { ++ strcat(result, "../"); ++ } ++ if (strlen(to) > 0) ++ { ++ strcat(result, to+1); ++ } ++ /* Make sure that if to ends with '/' result does the same, and ++ vice-versa. */ ++ size_t size_result = strlen(result); ++ if ((to_final_is_slash == 1) ++ && (!size_result || result[size_result-1] != '/')) ++ { ++ strcat (result, "/"); ++ } ++ else if (!to_final_is_slash ++ && size_result && result[size_result-1] == '/') ++ { ++ result[size_result-1] = '\0'; ++ } ++ ++ return malloc_copy_string (result); ++} ++ ++void ++simplify_path(char * path) ++{ ++ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ ++ ssize_t i, j; ++ size_t tok_size; ++ size_t in_size = strlen (path); ++ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; ++ char * result = path; ++ sanitise_path(result); ++ char * result_p = result; ++ ++ do ++ { ++ ++n_toks; ++ ++result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ result_p = result; ++ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); ++ n_toks = 0; ++ do ++ { ++ if (result_p > result) ++ { ++ *result_p++ = '\0'; ++ } ++ else if (*result_p == '/') ++ { ++ /* A leading / creates an empty initial token. */ ++ toks[n_toks++] = result_p; ++ *result_p++ = '\0'; ++ } ++ toks[n_toks++] = result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ /* Remove all non-leading '.' and any '..' we can match ++ with an earlier forward path (i.e. neither '.' nor '..') */ ++ for (i = 1; i < n_toks; ++i) ++ { ++ int removals[2] = { -1, -1 }; ++ if ( strcmp (toks[i], "." ) == 0) ++ { ++ removals[0] = i; ++ } ++ else if ( strcmp (toks[i], ".." ) == 0) ++ { ++ /* Search backwards for a forward path to collapse. ++ If none are found then the .. also stays. */ ++ for (j = i - 1; j > -1; --j) ++ { ++ if ( strcmp (toks[j], "." ) ++ && strcmp (toks[j], ".." ) ) ++ { ++ removals[0] = j; ++ removals[1] = i; ++ break; ++ } ++ } ++ } ++ for (j = 0; j < 2; ++j) ++ { ++ if (removals[j] >= 0) /* Can become -2 */ ++ { ++ --n_toks; ++ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); ++ --i; ++ if (!j) ++ { ++ --removals[1]; ++ } ++ } ++ } ++ } ++ result_p = result; ++ for (i = 0; i < n_toks; ++i) ++ { ++ tok_size = strlen(toks[i]); ++ memcpy (result_p, toks[i], tok_size); ++ result_p += tok_size; ++ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) ++ { ++ *result_p = '/'; ++ ++result_p; ++ } ++ } ++ *result_p = '\0'; ++} ++ ++/* Returns actual_to by calculating the relative path from -> to and ++ applying that to actual_from. An assumption that actual_from is a ++ dir is made, and it may or may not end with a '/' */ ++char const * ++get_relocated_path (char const * from, char const * to, char const * actual_from) ++{ ++ char const * relative_from_to = get_relative_path (from, to); ++ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); ++ return actual_to; ++} ++ ++int ++get_executable_path(char const * argv0, char * result, ssize_t max_size) ++{ ++ char * system_result = (char *) alloca (max_size); ++ ssize_t system_result_size = -1; ++ ssize_t result_size = -1; ++ ++ if (system_result != NULL) ++ { ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++ system_result_size = readlink("/proc/self/exe", system_result, max_size); ++#elif defined(__APPLE__) ++ uint32_t bufsize = (uint32_t)max_size; ++ if (_NSGetExecutablePath(system_result, &bufsize) == 0) ++ { ++ system_result_size = (ssize_t)bufsize; ++ } ++#elif defined(_WIN32) ++ unsigned long bufsize = (unsigned long)max_size; ++ system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); ++ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) ++ { ++ /* Error, possibly not enough space. */ ++ system_result_size = -1; ++ } ++ else ++ { ++ /* Early conversion to unix slashes instead of more changes ++ everywhere else .. */ ++ char * winslash; ++ system_result[system_result_size] = '\0'; ++ while ((winslash = strchr (system_result, '\\')) != NULL) ++ { ++ *winslash = '/'; ++ } ++ } ++#else ++#warning "Don't know how to get executable path on this system" ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ } ++ /* Use argv0 as a default in-case of failure */ ++ if (system_result_size != -1) ++ { ++ strncpy (result, system_result, system_result_size); ++ result[system_result_size] = '\0'; ++ } ++ else ++ { ++ if (argv0 != NULL) ++ { ++ strncpy (result, argv0, max_size); ++ result[max_size-1] = '\0'; ++ } ++ else ++ { ++ result[0] = '\0'; ++ } ++ } ++ result_size = strlen (result); ++ return result_size; ++} ++ ++char const * ++strip_n_prefix_folders(char const * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return NULL; ++ } ++ ++ if (path[0] != '/') ++ { ++ return path; ++ } ++ ++ char const * last = path; ++ while (n-- && path != NULL) ++ { ++ last = path; ++ path = strchr (path + 1, '/'); ++ } ++ return (path == NULL) ? last : path; ++} ++ ++void ++strip_n_suffix_folders(char * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return; ++ } ++ while (n--) ++ { ++ if (strrchr (path + 1, '/')) ++ { ++ *strrchr (path + 1, '/') = '\0'; ++ } ++ else ++ { ++ return; ++ } ++ } ++ return; ++} ++ ++size_t ++split_path_list(char const * path_list, char split_char, char *** arr) ++{ ++ size_t path_count; ++ size_t path_list_size; ++ char const * path_list_p; ++ ++ path_list_p = path_list; ++ if (path_list == NULL || path_list[0] == '\0') ++ { ++ return 0; ++ } ++ path_list_size = strlen (path_list); ++ ++ path_count = 0; ++ do ++ { ++ ++path_count; ++ ++path_list_p; ++ } ++ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); ++ ++ /* allocate everything in one go. */ ++ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); ++ if (all_memory == NULL) ++ return 0; ++ *arr = (char **)all_memory; ++ all_memory += sizeof (char *) * path_count; ++ ++ path_count = 0; ++ path_list_p = path_list; ++ char const * next_path_list_p = 0; ++ do ++ { ++ next_path_list_p = strchr (path_list_p, split_char); ++ if (next_path_list_p != NULL) ++ { ++ ++next_path_list_p; ++ } ++ size_t this_size = (next_path_list_p != NULL) ++ ? next_path_list_p - path_list_p - 1 ++ : &path_list[path_list_size] - path_list_p; ++ memcpy (all_memory, path_list_p, this_size); ++ all_memory[this_size] = '\0'; ++ (*arr)[path_count++] = all_memory; ++ all_memory += this_size + 1; ++ } while ((path_list_p = next_path_list_p) != NULL); ++ ++ return path_count; ++} ++ ++char * ++get_relocated_path_list(char const * from, char const * to_path_list) ++{ ++ char exe_path[MAX_PATH]; ++ char * temp; ++ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ if ((temp = strrchr (exe_path, '/')) != NULL) ++ { ++ temp[1] = '\0'; ++ } ++ ++ char **arr = NULL; ++ /* Ask Alexey why he added this. Are we not 100% sure ++ that we're dealing with unix paths here? */ ++ char split_char = ':'; ++ if (strchr (to_path_list, ';')) ++ { ++ split_char = ';'; ++ } ++ size_t count = split_path_list (to_path_list, split_char, &arr); ++ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ ++ size_t exe_path_size = strlen (exe_path); ++ size_t i; ++ /* Space required is: ++ count * (exe_path_size + strlen (rel_to_datadir)) ++ rel_to_datadir upper bound is: ++ (count * strlen (from)) + (3 * num_slashes (from)) ++ + strlen(arr[i]) + 1. ++ .. pathalogically num_slashes (from) is strlen (from) ++ (from = ////////) */ ++ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; ++ for (i = 0; i < count; ++i) ++ { ++ space_required += strlen (arr[i]); ++ } ++ char * scratch = (char *) alloca (space_required); ++ if (scratch == NULL) ++ return NULL; ++ for (i = 0; i < count; ++i) ++ { ++ char * rel_to_datadir = get_relative_path (from, arr[i]); ++ scratch[0] = '\0'; ++ arr[i] = scratch; ++ strcat (scratch, exe_path); ++ strcat (scratch, rel_to_datadir); ++ simplify_path (arr[i]); ++ size_t arr_i_size = strlen (arr[i]); ++ result_size += arr_i_size; ++ scratch = arr[i] + arr_i_size + 1; ++ } ++ char * result = (char *) malloc (result_size); ++ if (result == NULL) ++ { ++ return NULL; ++ } ++ result[0] = '\0'; ++ for (i = 0; i < count; ++i) ++ { ++ strcat (result, arr[i]); ++ if (i != count-1) ++ { ++#if defined(_WIN32) ++ strcat (result, ";"); ++#else ++ strcat (result, ":"); ++#endif ++ } ++ } ++ free ((void*)arr); ++ return result; ++} ++ ++char * ++single_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} +diff -Naur enchant-1.6.0-orig/src/pathtools.h enchant-1.6.0/src/pathtools.h +--- enchant-1.6.0-orig/src/pathtools.h 1970-01-01 03:00:00.000000000 +0300 ++++ enchant-1.6.0/src/pathtools.h 2014-12-12 20:31:02.151400000 +0300 +@@ -0,0 +1,53 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#ifndef PATHTOOLS_H ++#define PATHTOOLS_H ++ ++#include ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++ ++char * malloc_copy_string(char const * original); ++ ++/* In-place replaces any '\' with '/' and any '//' with '/' */ ++void sanitise_path(char * path); ++ ++/* Uses a host OS specific function to determine the path of the executable, ++ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ ++int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ ++/* Where possible, in-place removes occourances of '.' and 'path/..' */ ++void simplify_path(char * path); ++ ++/* Allocates (via malloc) and returns the path to get from from to to. */ ++char * get_relative_path(char const * from, char const * to); ++ ++size_t split_path_list(char const * path_list, char split_char, char *** arr); ++ ++/* Advances path along by the amount that removes n prefix folders. */ ++char const * ++strip_n_prefix_folders(char const * path, size_t n); ++ ++/* NULL terminates path to remove n suffix folders. */ ++void ++strip_n_suffix_folders(char * path, size_t n); ++ ++char const * get_relocated_path (char const * from, char const * to, char const * actual_from); ++char * get_relocated_path_list(char const * from, char const * to_path_list); ++ ++char * single_path_relocation(const char *from, const char *to); ++char * pathlist_relocation(const char *from_path, const char *to_path_list); ++ ++#endif /* PATHTOOLS_H */ +diff -Naur enchant-1.6.0-orig/src/uspell/uspell_provider.cpp enchant-1.6.0/src/uspell/uspell_provider.cpp +--- enchant-1.6.0-orig/src/uspell/uspell_provider.cpp 2010-04-01 23:53:37.000000000 +0300 ++++ enchant-1.6.0/src/uspell/uspell_provider.cpp 2014-12-12 20:18:18.814400000 +0300 +@@ -82,13 +82,15 @@ + + /* until I work out how to link the modules against enchant in MacOSX - fjf + */ +-#ifndef XP_TARGET_COCOA ++#if !defined(XP_TARGET_COCOA) && !defined(ENCHANT_USPELL_DICT_DIR) + char * uspell_prefix = NULL; + ++#ifndef __MINGW32__ + /* Look for explicitly set registry values */ + uspell_prefix = enchant_get_registry_value ("Uspell", "Data_Dir"); + if (uspell_prefix) + dirs = g_slist_append (dirs, uspell_prefix); ++#endif + + /* Dynamically locate library and search for modules relative to it. */ + char * enchant_prefix = enchant_get_prefix_dir(); +@@ -101,7 +103,7 @@ + #endif + + #ifdef ENCHANT_USPELL_DICT_DIR +- dirs = g_slist_append (dirs, g_strdup (ENCHANT_USPELL_DICT_DIR)); ++ dirs = g_slist_append (dirs, g_strdup (enchant_path_relocation(ENCHANT_USPELL_DICT_DIR))); + #endif + + { diff --git a/mingw-w64-enchant/PKGBUILD b/mingw-w64-enchant/PKGBUILD index 5af1ea492f..9f1f9ebd57 100644 --- a/mingw-w64-enchant/PKGBUILD +++ b/mingw-w64-enchant/PKGBUILD @@ -3,7 +3,7 @@ _realname=enchant pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.0 -pkgrel=2 +pkgrel=4 pkgdesc="Enchanting Spell Checking Library (mingw-w64)" arch=('any') url="http://www.abisource.com/" @@ -12,12 +12,17 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-glib2 ${MINGW_PACKAGE_PREFIX}-hunspell) -options=('!libtool' 'strip' '!makeflags') -source=("http://www.abisource.com/downloads/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz") -md5sums=('de11011aff801dc61042828041fb59c7') +options=('!libtool' 'strip' '!debug' '!makeflags') +source=("http://www.abisource.com/downloads/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz" + 01-relocate.patch) +md5sums=('de11011aff801dc61042828041fb59c7' + 'cea06612b79d1b0453b7000e91ef661e') prepare() { cd "$srcdir/${_realname}-$pkgver" + patch -p1 -i ${srcdir}/01-relocate.patch + + autoreconf -fiv } build() { @@ -39,10 +44,12 @@ build() { --disable-hspell \ --disable-zemberek + MSYS2_ARG_CONV_EXCL="-DENCHANT_USPELL_DICT_DIR=;-DENCHANT_MYSPELL_DICT_DIR=;-DENCHANT_ISPELL_DICT_DIR=;-DENCHANT_PREFIX_DIR=;-DENCHANT_GLOBAL_MODULE_DIR=;-DENCHANT_GLOBAL_ORDERING=;-DENCHANT_BIN_DIR=" \ make } package() { cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" + MSYS2_ARG_CONV_EXCL="-DENCHANT_USPELL_DICT_DIR=;-DENCHANT_MYSPELL_DICT_DIR=;-DENCHANT_ISPELL_DICT_DIR=;-DENCHANT_PREFIX_DIR=;-DENCHANT_GLOBAL_MODULE_DIR=;-DENCHANT_GLOBAL_ORDERING=" \ make DESTDIR="${pkgdir}" install } From 4f47d29c1662f4cf8dd366b12954a01913765439 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 13 Dec 2014 00:14:48 +0300 Subject: [PATCH 0150/2060] hunspell: List available dictionaries for mingw too. --- mingw-w64-hunspell/PKGBUILD | 9 +++-- ...nspell-1.3.3-windows-sub-dicts-paths.patch | 35 +++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-hunspell/hunspell-1.3.3-windows-sub-dicts-paths.patch diff --git a/mingw-w64-hunspell/PKGBUILD b/mingw-w64-hunspell/PKGBUILD index d0288a9cae..02949f9976 100644 --- a/mingw-w64-hunspell/PKGBUILD +++ b/mingw-w64-hunspell/PKGBUILD @@ -4,7 +4,7 @@ _realname=hunspell pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.3 -pkgrel=6 +pkgrel=7 pkgdesc="Spell checker and morphological analyzer library and program (mingw-w64)" arch=('any') url="http://hunspell.sourceforge.net/" @@ -17,12 +17,14 @@ source=("http://download.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.g "hunspell-1.3.2-canonicalhost.patch" "hunspell-1.3.3-exit-on-MAX_PREFIXES_SUFFIXES.patch" "hunspell-1.3.3-inc-MAX_PREFIXES_SUFFIXES-to-2048.patch" - "hunspell-1.3.3-relocate.patch") + "hunspell-1.3.3-relocate.patch" + "hunspell-1.3.3-windows-sub-dicts-paths.patch") md5sums=('4967da60b23413604c9e563beacc63b4' 'f8a5c0f3692a390d98daf0406da59cdf' 'c6cd1edc5bbfb803a6dc2ef602e048a3' 'ebf66e5be21328c22df969245a9e75a8' - '33eb82b23b50fb4f4821765686c99a38') + '33eb82b23b50fb4f4821765686c99a38' + '7d59a4f3c4c2f6b40cba5c54072cbd67') prepare() { cd "$srcdir/${_realname}-$pkgver" @@ -30,6 +32,7 @@ prepare() { patch -Np1 -i "$srcdir"/hunspell-1.3.3-exit-on-MAX_PREFIXES_SUFFIXES.patch patch -Np1 -i "$srcdir"/hunspell-1.3.3-inc-MAX_PREFIXES_SUFFIXES-to-2048.patch patch -Np1 -i "$srcdir"/hunspell-1.3.3-relocate.patch + patch -Np1 -i "$srcdir"/hunspell-1.3.3-windows-sub-dicts-paths.patch autoreconf -fi } diff --git a/mingw-w64-hunspell/hunspell-1.3.3-windows-sub-dicts-paths.patch b/mingw-w64-hunspell/hunspell-1.3.3-windows-sub-dicts-paths.patch new file mode 100644 index 0000000000..b6fa2e1ea3 --- /dev/null +++ b/mingw-w64-hunspell/hunspell-1.3.3-windows-sub-dicts-paths.patch @@ -0,0 +1,35 @@ +--- hunspell-1.3.3/src/tools/hunspell.cxx.orig 2014-12-12 22:39:13.834800000 +0300 ++++ hunspell-1.3.3/src/tools/hunspell.cxx 2014-12-13 00:01:57.899200000 +0300 +@@ -45,6 +45,12 @@ + #define DIRSEP "\\" + #define PATHSEP ";" + ++#ifdef __MINGW32__ ++#include ++#include ++#include ++#include ++#endif + #include "textparser.hxx" + #include "htmlparser.hxx" + #include "latexparser.hxx" +@@ -1523,7 +1537,7 @@ + return NULL; + } + +-#ifndef WIN32 ++#if !defined(WIN32) || defined(__MINGW32__) + int listdicpath(char * dir, int len) { + char buf[MAXLNLEN]; + const char * sep = (len == 0) ? "": DIRSEP; +@@ -1556,8 +1570,8 @@ + if (name) { + res = exist2(begin, end - begin, name, ext); + } else { +-#ifndef WIN32 +- listdicpath(begin, end - begin); ++#if !defined(WIN32) || defined(__MINGW32__) ++ listdicpath(begin, end - begin); + #endif + } + if ((*end == '\0') || res) return res; From 28fa0eb2643b2dc59b208dfbdf335c71a87e124e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 12 Dec 2014 23:11:43 +0000 Subject: [PATCH 0151/2060] qt5: Fix 0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB.. --- ...PREFIX_STATICLIB-in-create_cmake-prf.patch | 25 +++++++++++-------- mingw-w64-qt5/PKGBUILD | 11 +++----- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/mingw-w64-qt5/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch b/mingw-w64-qt5/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch index 97e9b1caef..aeb3928ba9 100644 --- a/mingw-w64-qt5/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch +++ b/mingw-w64-qt5/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch @@ -1,21 +1,24 @@ ---- a/qtbase/mkspecs/features/create_cmake.prf 2014-10-13 17:52:38.691086600 +0100 -+++ b/qtbase/mkspecs/features/create_cmake.prf 2014-10-13 19:47:45.828532600 +0100 -@@ -133,11 +133,16 @@ - CMAKE_PLUGIN_NAME = $$PLUGIN_CLASS_NAME +--- qt-everywhere-opensource-src-5.4.0-rc/qtbase/mkspecs/features/create_cmake.prf.orig 2014-12-01 01:49:24.066920200 +0000 ++++ qt-everywhere-opensource-src-5.4.0-rc/qtbase/mkspecs/features/create_cmake.prf 2014-12-01 01:59:39.496120700 +0000 +@@ -134,15 +134,15 @@ win32 { -- isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dll -- else: CMAKE_PlUGIN_EXT = .$${QMAKE_EXTENSION_STATICLIB} -+ isEmpty(CMAKE_STATIC_TYPE) { + isEmpty(CMAKE_STATIC_TYPE) { +- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.dll +- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.dll +- } else:mingw { +- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}.a +- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}d.a +- } else { # MSVC static +- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib +- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib + CMAKE_PlUGIN_EXT = .dll + CMAKE_PlUGIN_PREFIX = + } else { + CMAKE_PlUGIN_EXT = .$${QMAKE_EXTENSION_STATICLIB} + CMAKE_PlUGIN_PREFIX = $${QMAKE_PREFIX_STATICLIB} -+ } - -- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}$${CMAKE_PlUGIN_EXT} -- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d$${CMAKE_PlUGIN_EXT} + } ++ + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_PlUGIN_PREFIX}$${TARGET}$${CMAKE_PlUGIN_EXT} + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_PlUGIN_PREFIX}$${TARGET}d$${CMAKE_PlUGIN_EXT} } else { diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 03a37d8dd7..b1a4afe4f5 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -206,7 +206,7 @@ md5sums=('21843b00ecde8956217faab391bc007b' 'e009d2a1c7edc41c1f5974883d4f38b2' '516036cb0721d1603009e01f5bd728aa' '47e70b9a063aa99aba0096007ed5b83d' - 'c242bb998d1117544018e169bdd66136' + '3049f9e43e24f7eaafb4659c72ca4789' 'cbef002e6f4b0d043ca6a6e9d60ceca5') # Translates using cygpath according to the ${_make} being used @@ -236,7 +236,7 @@ pkg_config_qt5() { prepare() { cd ${startdir} [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} - tar -xJvf ${startdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true + tar -xJf ${startdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true # cp -rf qt3d ${_pkgfqn}/ cd ${srcdir}/${_pkgfqn} @@ -244,11 +244,6 @@ prepare() { # MSYS2 gperf cannot handle \r\n. find . -name "*.gperf" -exec dos2unix "{}" \; - #pushd qtbase > /dev/null - # rm -f mkspecs/features/ltcg.prf > /dev/null 2>&1 || true - # patch -p1 -i ${srcdir}/0001-Add-link-time-optimization-support-for-Clang-GCC-and.patch - #popd - patch -p1 -i ${srcdir}/0001-qt-5.3.0-oracle-driver-prompt.patch patch -p1 -i ${srcdir}/0002-qt-5.3.0-use-fbclient-instead-of-gds32.patch patch -p1 -i ${srcdir}/0003-qt-5.3.0-use-mingw-built-mysql-library.patch @@ -317,7 +312,7 @@ prepare() { patch -p1 -i ${srcdir}/0031-qt-5.3.1-Fix-masm-pri-build-race-condition.patch ###patch -p1 -i ${srcdir}/0032-qt-5.3.2-Disable-jitted-Regexp-for-Mingw-64-bit-94712.patch ###patch -p1 -i ${srcdir}/0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch - ###patch -p1 -i ${srcdir}/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch + patch -p1 -i ${srcdir}/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch patch -p1 -i ${srcdir}/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch # See: https://bugreports.qt-project.org/browse/QTBUG-37902 From 8e5e1a46a25d50041c5f234bf8713fea5a0c54c3 Mon Sep 17 00:00:00 2001 From: AlexWMF Date: Sat, 13 Dec 2014 15:29:07 +0300 Subject: [PATCH 0152/2060] qca-qt4-git: New package. --- mingw-w64-qca-qt4-git/PKGBUILD | 71 +++++++++++++++++++ .../cyrus_sasl_linking.patch | 13 ++++ mingw-w64-qca-qt4-git/find_nss_cmake.patch | 15 ++++ 3 files changed, 99 insertions(+) create mode 100644 mingw-w64-qca-qt4-git/PKGBUILD create mode 100644 mingw-w64-qca-qt4-git/cyrus_sasl_linking.patch create mode 100644 mingw-w64-qca-qt4-git/find_nss_cmake.patch diff --git a/mingw-w64-qca-qt4-git/PKGBUILD b/mingw-w64-qca-qt4-git/PKGBUILD new file mode 100644 index 0000000000..3cfe88e805 --- /dev/null +++ b/mingw-w64-qca-qt4-git/PKGBUILD @@ -0,0 +1,71 @@ +# Maintainer: AlexWMF + +_realname=qca + +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4-git" +pkgver=2212.e57f8e7 +pkgrel=1 +pkgdesc="Qt Cryptographic Architecture" +arch=('any') +url="http://delta.affinix.com/qca/" +license=('LGPL') +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-qt5") +makedepends=("${MINGW_PACKAGE_PREFIX}-qt4" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-gnupg" + "${MINGW_PACKAGE_PREFIX}-libgcrypt" + "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" + "${MINGW_PACKAGE_PREFIX}-nss") +depends=("${MINGW_PACKAGE_PREFIX}-qt4") +source=("${_realname}"::"git://anongit.kde.org/qca.git" + "cyrus_sasl_linking.patch" + "find_nss_cmake.patch") +md5sums=('SKIP' + '89d537c0b449408685ff48f401239544' + '2ce45122eba6d2518f773bc4c5934e32') + +pkgver() { + cd ${srcdir}/${_realname} + printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}/${_realname}" + patch -p1 -i ${srcdir}/cyrus_sasl_linking.patch + patch -p1 -i ${srcdir}/find_nss_cmake.patch +} + +build() { + cd ${srcdir} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${pkgdir}${MINGW_PREFIX} + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null + export PREFIX_WIN=`pwd -W` + popd > /dev/null + + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + + QC_CERTSTORE_PATH=${MINGW_PREFIX}/etc/ssl/certs/ca-certificates.crt ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_TESTS=False \ + ${srcdir}/${_realname} + + make ${MAKEFLAGS} +} + +package() { + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null + export PREFIX_DEP=`pwd -W` + popd > /dev/null + + cd ${srcdir}/build-${MINGW_CHOST} + make INSTALL_ROOT="${pkgdir}" install + echo "PREFIX_DEP=$PREFIX_DEP" + echo "MINGW_PREFIX=$MINGW_PREFIX" + sed -s "s|${PREFIX_DEP}|${MINGW_PREFIX}|g" \ + -i ${pkgdir}${MINGW_PREFIX}/mkspecs/features/crypto.prf +} diff --git a/mingw-w64-qca-qt4-git/cyrus_sasl_linking.patch b/mingw-w64-qca-qt4-git/cyrus_sasl_linking.patch new file mode 100644 index 0000000000..50ee0ab841 --- /dev/null +++ b/mingw-w64-qca-qt4-git/cyrus_sasl_linking.patch @@ -0,0 +1,13 @@ +--- qca/plugins/qca-cyrus-sasl/qca-cyrus-sasl.cpp.orig 2014-12-13 15:14:30.695884500 +0300 ++++ qca/plugins/qca-cyrus-sasl/qca-cyrus-sasl.cpp 2014-12-13 15:14:48.425898600 +0300 +@@ -24,10 +24,7 @@ + #include + #include + +-extern "C" +-{ + #include +-} + + #include + #include diff --git a/mingw-w64-qca-qt4-git/find_nss_cmake.patch b/mingw-w64-qca-qt4-git/find_nss_cmake.patch new file mode 100644 index 0000000000..af95fa64de --- /dev/null +++ b/mingw-w64-qca-qt4-git/find_nss_cmake.patch @@ -0,0 +1,15 @@ +--- qca/cmake/modules/FindNss.cmake.orig 2014-12-13 15:22:53.153623400 +0300 ++++ qca/cmake/modules/FindNss.cmake 2014-12-13 15:24:46.642114600 +0300 +@@ -17,10 +17,8 @@ + SET(NSS_FOUND TRUE) + + else() +- if(NOT WIN32) +- find_package(PkgConfig) +- pkg_search_module(NSS nss) +- endif(NOT WIN32) ++ find_package(PkgConfig) ++ pkg_search_module(NSS nss) + + if (NSS_FOUND) + if (NOT Nss_FIND_QUIETLY) From 316d09584a9fdc97643c5fab98f4ff59af64b2d6 Mon Sep 17 00:00:00 2001 From: Yuta NAKAI Date: Sun, 14 Dec 2014 02:42:18 +0900 Subject: [PATCH 0153/2060] SDL: Disable broken assembly code. MMX asm codes are broken. This commit fixes the problem that ffplay for i686 didn't work. --- mingw-w64-SDL/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-SDL/PKGBUILD b/mingw-w64-SDL/PKGBUILD index eedfda423c..f86e200298 100644 --- a/mingw-w64-SDL/PKGBUILD +++ b/mingw-w64-SDL/PKGBUILD @@ -4,7 +4,7 @@ _realname=SDL pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2.15 -pkgrel=3 +pkgrel=4 pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (mingw-w64)" arch=('any') url="http://libsdl.org" @@ -21,7 +21,8 @@ build() { "${srcdir}"/SDL-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} + --host=${MINGW_CHOST} \ + --disable-assembly make } From 9138b08442f9fe5e95faee79c41a04c41870ace9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 13 Dec 2014 21:48:36 +0300 Subject: [PATCH 0154/2060] aspell: New package. --- .../0001-use-namespace.mingw.patch | 18 ++ mingw-w64-aspell/0002-printf.mingw.patch | 36 +++ .../0003-no-undefined-on.mingw.patch | 11 + mingw-w64-aspell/0004-reloc.mingw.patch | 123 +++++++++ mingw-w64-aspell/0005-w32-home.all.patch | 24 ++ mingw-w64-aspell/0006-abort.mingw.patch | 236 ++++++++++++++++++ .../0007-fix-including-langinfo.patch | 12 + mingw-w64-aspell/PKGBUILD | 67 +++++ 8 files changed, 527 insertions(+) create mode 100644 mingw-w64-aspell/0001-use-namespace.mingw.patch create mode 100644 mingw-w64-aspell/0002-printf.mingw.patch create mode 100644 mingw-w64-aspell/0003-no-undefined-on.mingw.patch create mode 100644 mingw-w64-aspell/0004-reloc.mingw.patch create mode 100644 mingw-w64-aspell/0005-w32-home.all.patch create mode 100644 mingw-w64-aspell/0006-abort.mingw.patch create mode 100644 mingw-w64-aspell/0007-fix-including-langinfo.patch create mode 100644 mingw-w64-aspell/PKGBUILD diff --git a/mingw-w64-aspell/0001-use-namespace.mingw.patch b/mingw-w64-aspell/0001-use-namespace.mingw.patch new file mode 100644 index 0000000000..bb1f411d64 --- /dev/null +++ b/mingw-w64-aspell/0001-use-namespace.mingw.patch @@ -0,0 +1,18 @@ +--- aspell-0.60.7-20110707/common/file_util.cpp.orig 2004-11-15 12:29:53.000000000 +0000 ++++ aspell-0.60.7-20110707/common/file_util.cpp 2014-02-19 11:11:58.100765300 +0000 +@@ -30,6 +30,7 @@ + # define ACCESS _access + # include + # include ++# include "asc_ctype.hpp" + + #else + +@@ -38,6 +39,7 @@ + + #endif + ++using namespace acommon; + + namespace acommon { + diff --git a/mingw-w64-aspell/0002-printf.mingw.patch b/mingw-w64-aspell/0002-printf.mingw.patch new file mode 100644 index 0000000000..3b808a2983 --- /dev/null +++ b/mingw-w64-aspell/0002-printf.mingw.patch @@ -0,0 +1,36 @@ +--- aspell-0.60.7-20110707/common/config.cpp.orig 2014-02-19 11:24:42.255300600 +0000 ++++ aspell-0.60.7-20110707/common/config.cpp 2014-02-19 11:23:47.492846700 +0000 +@@ -39,6 +39,9 @@ + #include "vararray.hpp" + #include "string_list.hpp" + ++#define printf printf ++#include "libintl.h" ++#undef printf + #include "gettext.h" + + #include "iostream.hpp" +--- aspell-0.60.7-20110707/modules/speller/default/language.cpp.orig 2011-07-05 00:28:44.000000000 +0000 ++++ aspell-0.60.7-20110707/modules/speller/default/language.cpp 2014-02-19 11:25:32.094629400 +0000 +@@ -24,6 +24,9 @@ + # include + #endif + ++#define printf printf ++#include "libintl.h" ++#undef printf + #include "gettext.h" + + namespace aspeller { +--- aspell-0.60.7-20110707/prog/aspell.cpp.orig 2011-07-04 14:36:05.000000000 +0000 ++++ aspell-0.60.7-20110707/prog/aspell.cpp 2014-02-19 11:26:37.049377600 +0000 +@@ -59,6 +59,9 @@ + #include "hash-t.hpp" + #include "hash_fun.hpp" + ++#define printf printf ++#include "libintl.h" ++#undef printf + #include "gettext.h" + + using namespace acommon; diff --git a/mingw-w64-aspell/0003-no-undefined-on.mingw.patch b/mingw-w64-aspell/0003-no-undefined-on.mingw.patch new file mode 100644 index 0000000000..80c7960051 --- /dev/null +++ b/mingw-w64-aspell/0003-no-undefined-on.mingw.patch @@ -0,0 +1,11 @@ +--- aspell-0.60.7-20110707/Makefile.am.orig 2011-07-07 01:01:39.000000000 +0000 ++++ aspell-0.60.7-20110707/Makefile.am 2014-02-19 11:56:42.396127500 +0000 +@@ -203,7 +203,7 @@ + else # not COMPILE_IN_FILTERS + + dynamic_optfiles += ${optfiles} +-filter_ldflags = -module -avoid-version ++filter_ldflags = -module -avoid-version -no-undefined + + ### Add name of filter library containing your filter. Name always + ### must look like lib-filter.la see development manual diff --git a/mingw-w64-aspell/0004-reloc.mingw.patch b/mingw-w64-aspell/0004-reloc.mingw.patch new file mode 100644 index 0000000000..706f2b0223 --- /dev/null +++ b/mingw-w64-aspell/0004-reloc.mingw.patch @@ -0,0 +1,123 @@ +--- aspell-0.60.7-20110707/common/info.cpp.orig 2004-11-10 06:18:45.000000000 +0000 ++++ aspell-0.60.7-20110707/common/info.cpp 2014-03-20 14:46:13.395537900 +0000 +@@ -39,6 +39,19 @@ + + #include "gettext.h" + ++#ifdef ENABLE_W32_PREFIX ++extern "C" { ++static HINSTANCE dll_hinstance; ++ ++BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) ++{ ++ if (fdwReason == DLL_PROCESS_ATTACH) ++ dll_hinstance = hinstDLL; ++ return TRUE; ++} ++} ++#endif ++ + namespace acommon { + + class Dir { +@@ -778,4 +789,60 @@ + return data; + } + ++#ifdef ENABLE_W32_PREFIX ++ ++const char * ++get_w32_prefix () ++{ ++ ++ static char *wprefix = NULL; ++ ++/* ++ Entry * next; ++ String key; ++ String value; ++ String file; ++*/ ++ if (wprefix == NULL) ++ { ++ DWORD bsize = MAX_PATH; ++ DWORD l = bsize; ++ char *bslash, *slash; ++ char *buf = (char *) malloc (bsize); ++ while (l == bsize) ++ { ++ l = GetModuleFileNameA (dll_hinstance, buf, bsize); ++ if (l == 0) ++ { ++ DebugBreak (); ++ abort (); ++ } ++ if (l == bsize) ++ { ++ buf = (char *) realloc ((void *) buf, bsize * 2); ++ bsize *= 2; ++ l = bsize; ++ } ++ } ++ bslash = strrchr (buf, '\\'); ++ slash = strrchr (buf, '/'); ++ if (bslash > slash) ++ slash = bslash; ++ slash[0] = '\0'; ++ l = strlen (buf); ++ if (l > 3 && strcmp (&buf[l - 3], "bin") == 0) ++ { ++ bslash = strrchr (buf, '\\'); ++ slash = strrchr (buf, '/'); ++ if (bslash > slash) ++ slash = bslash; ++ slash[0] = '\0'; ++ } ++ wprefix = buf; ++ ++ } ++ return wprefix; ++} ++#endif ++ + } +--- aspell-0.60.7-20110707/common/info.hpp.orig 2004-05-30 10:49:17.000000000 +0000 ++++ aspell-0.60.7-20110707/common/info.hpp 2014-03-20 14:45:24.476325900 +0000 +@@ -140,8 +140,7 @@ + }; + + +- +- ++ const char * get_w32_prefix (); + } + + #endif /* ASPELL_INFO__HPP */ +--- aspell-0.60.7-20110707/common/config.cpp.orig 2014-03-20 13:52:58.851882300 +0000 ++++ aspell-0.60.7-20110707/common/config.cpp 2014-03-20 14:17:49.116621900 +0000 +@@ -310,6 +310,14 @@ + const Entry * res = 0; + const Entry * cur = first_; + ++#ifdef ENABLE_W32_PREFIX ++ if (key == "prefix") ++ { ++ Entry *e = new Config::Entry(); ++ e->value = get_w32_prefix (); ++ return e; ++ } ++#endif + while (cur) { + if (cur->key == key && cur->action != NoOp) res = cur; + cur = cur->next; +--- aspell-0.60.7-20110707/common/config.cpp.orig 2014-03-20 15:11:29.935614000 +0000 ++++ aspell-0.60.7-20110707/common/config.cpp 2014-03-20 15:22:47.619168900 +0000 +@@ -22,6 +22,8 @@ + # include + #endif + ++#include "info.hpp" ++#include + #include "cache.hpp" + #include "asc_ctype.hpp" + #include "config.hpp" diff --git a/mingw-w64-aspell/0005-w32-home.all.patch b/mingw-w64-aspell/0005-w32-home.all.patch new file mode 100644 index 0000000000..588997f63c --- /dev/null +++ b/mingw-w64-aspell/0005-w32-home.all.patch @@ -0,0 +1,24 @@ +--- aspell-0.60.7-20110707/common/config.cpp.orig 2014-03-20 19:51:08.756753700 +0000 ++++ aspell-0.60.7-20110707/common/config.cpp 2014-03-20 20:15:54.984480600 +0000 +@@ -664,6 +664,21 @@ + } else { // sep == '|' + assert(replace[0] == '$'); + const char * env = getenv(replace.c_str()+1); ++ if (NULL == env && strcmp (replace.c_str() + 1, "HOME") == 0) ++ { ++ const char *hd, *hp; ++ hd = getenv("HOMEDRIVE"); ++ hp = getenv("HOMEPATH"); ++ if (hd && hp) ++ { ++ char tmpbuf[strlen ("HOME=") + strlen (hd) + strlen (hp) + 1]; ++ strcpy (tmpbuf, "HOME="); ++ strcpy (&tmpbuf[strlen ("HOME=")], hd); ++ strcpy (&tmpbuf[strlen ("HOME=") + strlen (hd)], hp); ++ putenv (tmpbuf); ++ env = getenv(replace.c_str()+1); ++ } ++ } + final_str += env ? env : second; + } + replace = ""; diff --git a/mingw-w64-aspell/0006-abort.mingw.patch b/mingw-w64-aspell/0006-abort.mingw.patch new file mode 100644 index 0000000000..26c4722729 --- /dev/null +++ b/mingw-w64-aspell/0006-abort.mingw.patch @@ -0,0 +1,236 @@ +diff -ur aspell-0.60.7-20110707.orig/common/config.cpp aspell-0.60.7-20110707/common/config.cpp +--- aspell-0.60.7-20110707.orig/common/config.cpp 2014-03-20 22:31:38.359557900 +0000 ++++ aspell-0.60.7-20110707/common/config.cpp 2014-03-20 22:39:19.296089400 +0000 +@@ -623,7 +623,7 @@ + + } else { + +- abort(); // this should not happen ++ DebugBreak(); // this should not happen + + } + +@@ -857,7 +857,7 @@ + case ListClear: + return make_err(no_value_clear, entry->key); + default: +- abort(); // this shouldn't happen ++ DebugBreak(); // this shouldn't happen + } + } else { + entry->place_holder = -1; +diff -ur aspell-0.60.7-20110707.orig/common/itemize.cpp aspell-0.60.7-20110707/common/itemize.cpp +--- aspell-0.60.7-20110707.orig/common/itemize.cpp 2004-01-03 12:06:24.000000000 +0000 ++++ aspell-0.60.7-20110707/common/itemize.cpp 2014-03-20 22:39:22.191457100 +0000 +@@ -97,7 +97,7 @@ + RET_ON_ERR(d.clear()); + break; + default: +- abort(); ++ DebugBreak(); + } + } + return no_err; +diff -ur aspell-0.60.7-20110707.orig/common/posib_err.cpp aspell-0.60.7-20110707/common/posib_err.cpp +--- aspell-0.60.7-20110707.orig/common/posib_err.cpp 2004-11-21 02:52:22.000000000 +0000 ++++ aspell-0.60.7-20110707/common/posib_err.cpp 2014-03-20 22:39:24.232716300 +0000 +@@ -100,7 +100,7 @@ + fputs(_("Unhandled Error: "), stderr); + fputs(err_->err->mesg, stderr); + fputs("\n", stderr); +- abort(); ++ DebugBreak(); + } + #endif + +diff -ur aspell-0.60.7-20110707.orig/common/string_list.hpp aspell-0.60.7-20110707/common/string_list.hpp +--- aspell-0.60.7-20110707.orig/common/string_list.hpp 2004-06-17 12:41:47.000000000 +0000 ++++ aspell-0.60.7-20110707/common/string_list.hpp 2014-03-20 22:39:26.609018100 +0000 +@@ -90,7 +90,7 @@ + } + + bool empty() const { return first == 0; } +- unsigned int size() const { abort(); return 0; } ++ unsigned int size() const { DebugBreak(); return 0; } + + }; + +diff -ur aspell-0.60.7-20110707.orig/lib/find_speller.cpp aspell-0.60.7-20110707/lib/find_speller.cpp +--- aspell-0.60.7-20110707.orig/lib/find_speller.cpp 2005-08-30 08:34:03.000000000 +0000 ++++ aspell-0.60.7-20110707/lib/find_speller.cpp 2014-03-20 22:39:30.995575100 +0000 +@@ -384,7 +384,7 @@ + b_size.req_type = '+'; + } + if (!asc_isdigit(p[0]) || !asc_isdigit(p[1]) || p[2] != '\0') +- abort(); //FIXME: create an error condition here ++ DebugBreak(); //FIXME: create an error condition here + b_size.requested = atoi(p); + b_size.init(); + +diff -ur aspell-0.60.7-20110707.orig/modules/speller/default/data.cpp aspell-0.60.7-20110707/modules/speller/default/data.cpp +--- aspell-0.60.7-20110707.orig/modules/speller/default/data.cpp 2011-07-04 14:30:16.000000000 +0000 ++++ aspell-0.60.7-20110707/modules/speller/default/data.cpp 2014-03-20 22:39:33.647911900 +0000 +@@ -439,7 +439,7 @@ + w = new_default_replacement_dict(); + break; + default: +- abort(); ++ DebugBreak(); + } + + RET_ON_ERR(w->load(true_file_name, config, new_dicts, speller)); +diff -ur aspell-0.60.7-20110707.orig/modules/speller/default/phonetic.cpp aspell-0.60.7-20110707/modules/speller/default/phonetic.cpp +--- aspell-0.60.7-20110707.orig/modules/speller/default/phonetic.cpp 2004-05-21 00:15:58.000000000 +0000 ++++ aspell-0.60.7-20110707/modules/speller/default/phonetic.cpp 2014-03-20 22:39:36.033214800 +0000 +@@ -194,7 +194,7 @@ + } else if (name == lang->name()) { + sl = new PhonetSoundslike(lang); + } else { +- abort(); // FIXME ++ DebugBreak(); // FIXME + } + PosibErrBase pe = sl->setup(iconv); + if (pe.has_err()) { +diff -ur aspell-0.60.7-20110707.orig/modules/speller/default/readonly_ws.cpp aspell-0.60.7-20110707/modules/speller/default/readonly_ws.cpp +--- aspell-0.60.7-20110707.orig/modules/speller/default/readonly_ws.cpp 2011-07-04 22:00:38.000000000 +0000 ++++ aspell-0.60.7-20110707/modules/speller/default/readonly_ws.cpp 2014-03-20 22:39:39.614669600 +0000 +@@ -108,7 +108,7 @@ + + static inline void mmap_free(char *, unsigned int) + { +- abort(); ++ DebugBreak(); + } + + #endif +@@ -210,7 +210,7 @@ + InsensitiveHash hash; + InsensitiveEqual equal; + bool is_nonexistent(Value v) const {return v == u32int_max;} +- void make_nonexistent(const Value & v) const {abort();} ++ void make_nonexistent(const Value & v) const {DebugBreak();} + }; + typedef VectorHashTable WordLookup; + +diff -ur aspell-0.60.7-20110707.orig/modules/speller/default/speller_impl.cpp aspell-0.60.7-20110707/modules/speller/default/speller_impl.cpp +--- aspell-0.60.7-20110707.orig/modules/speller/default/speller_impl.cpp 2011-07-04 14:30:16.000000000 +0000 ++++ aspell-0.60.7-20110707/modules/speller/default/speller_impl.cpp 2014-03-20 22:39:43.524666100 +0000 +@@ -380,7 +380,7 @@ + static PosibErr save_repl(SpellerImpl * m, bool value) { + // FIXME + // m->save_on_saveall(DataSet::Id(&m->personal_repl()), value); +- abort(); return no_err; ++ DebugBreak(); return no_err; + } + static PosibErr sug_mode(SpellerImpl * m, const char * mode) { + RET_ON_ERR(m->suggest_->set_mode(mode)); +@@ -683,7 +683,7 @@ + case Dict::multi_dict: + break; + default: +- abort(); ++ DebugBreak(); + } + save_on_saveall = false; + } +@@ -709,7 +709,7 @@ + + } else { + +- abort(); ++ DebugBreak(); + + } + break; +diff -ur aspell-0.60.7-20110707.orig/prog/aspell.cpp aspell-0.60.7-20110707/prog/aspell.cpp +--- aspell-0.60.7-20110707.orig/prog/aspell.cpp 2014-03-20 22:31:38.247543700 +0000 ++++ aspell-0.60.7-20110707/prog/aspell.cpp 2014-03-20 22:39:47.708697400 +0000 +@@ -448,7 +448,7 @@ + else if (action_str == "merge") + action = do_merge; + else +- abort(); // this should not happen ++ DebugBreak(); // this should not happen + + if (action != do_other) { + if (args.empty()) { +@@ -1498,7 +1498,7 @@ + } + break; + default: +- abort(); ++ DebugBreak(); + } + } + +--- aspell-0.60.7-20110707/modules/filter/tex.cpp.orig 2011-06-26 00:30:51.000000000 +0000 ++++ aspell-0.60.7-20110707/modules/filter/tex.cpp 2014-03-21 00:05:17.545103900 +0000 +@@ -24,6 +24,7 @@ + #include "string_enumeration.hpp" + + #include "gettext.h" ++#include + + namespace { + +--- aspell-0.60.7-20110707/common/itemize.cpp.orig 2014-03-20 22:41:17.483097300 +0000 ++++ aspell-0.60.7-20110707/common/itemize.cpp 2014-03-21 00:05:47.254376500 +0000 +@@ -12,6 +12,7 @@ + #include "mutable_container.hpp" + #include + #include ++#include + + //FIXME: it should be possible to escape ',' '+' '-' '!' so that they can + // appear in values +--- aspell-0.60.7-20110707/common/string_list.hpp.orig 2014-03-20 22:41:17.485097500 +0000 ++++ aspell-0.60.7-20110707/common/string_list.hpp 2014-03-21 00:06:43.069964200 +0000 +@@ -12,6 +12,7 @@ + #include "posib_err.hpp" + #include + #include ++#include + + namespace acommon { + +--- aspell-0.60.7-20110707/common/posib_err.cpp.orig 2014-03-20 22:41:17.484097400 +0000 ++++ aspell-0.60.7-20110707/common/posib_err.cpp 2014-03-21 00:07:22.355452800 +0000 +@@ -13,7 +13,7 @@ + #include "posib_err.hpp" + + #include "gettext.h" +- ++#include + + namespace acommon { + +--- aspell-0.60.7-20110707/modules/speller/default/readonly_ws.cpp.orig 2014-03-20 22:41:17.489598100 +0000 ++++ aspell-0.60.7-20110707/modules/speller/default/readonly_ws.cpp 2014-03-21 00:08:00.899347200 +0000 +@@ -55,6 +55,7 @@ + #include "iostream.hpp" + + #include "gettext.h" ++#include + + typedef unsigned int u32int; + static const u32int u32int_max = (u32int)-1; +--- aspell-0.60.7-20110707/modules/speller/default/data.cpp.orig 2014-03-20 22:41:17.487097800 +0000 ++++ aspell-0.60.7-20110707/modules/speller/default/data.cpp 2014-03-21 00:12:01.247367600 +0000 +@@ -17,6 +17,7 @@ + #include "vararray.hpp" + + #include "gettext.h" ++#include + + namespace aspeller { + +--- aspell-0.60.7-20110707/modules/speller/default/phonetic.cpp.orig 2014-03-20 22:41:17.488097900 +0000 ++++ aspell-0.60.7-20110707/modules/speller/default/phonetic.cpp 2014-03-21 00:12:31.846253100 +0000 +@@ -7,6 +7,7 @@ + #include "file_util.hpp" + #include "file_data_util.hpp" + #include "clone_ptr-t.hpp" ++#include + + namespace aspeller { + diff --git a/mingw-w64-aspell/0007-fix-including-langinfo.patch b/mingw-w64-aspell/0007-fix-including-langinfo.patch new file mode 100644 index 0000000000..24af2e0df1 --- /dev/null +++ b/mingw-w64-aspell/0007-fix-including-langinfo.patch @@ -0,0 +1,12 @@ +diff -Naur aspell-0.60.7-20131207-orig/modules/speller/default/language.cpp aspell-0.60.7-20131207/modules/speller/default/language.cpp +--- aspell-0.60.7-20131207-orig/modules/speller/default/language.cpp 2011-07-05 03:46:03.000000000 +0300 ++++ aspell-0.60.7-20131207/modules/speller/default/language.cpp 2014-12-13 21:19:22.924600000 +0300 +@@ -20,7 +20,7 @@ + #include "getdata.hpp" + #include "file_util.hpp" + +-#ifdef ENABLE_NLS ++#ifdef HAVE_LANGINFO_CODESET + # include + #endif + diff --git a/mingw-w64-aspell/PKGBUILD b/mingw-w64-aspell/PKGBUILD new file mode 100644 index 0000000000..635ef0583d --- /dev/null +++ b/mingw-w64-aspell/PKGBUILD @@ -0,0 +1,67 @@ +# Maintainer: Alexey Pavlov + +_realname=aspell +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +_date_ver=20131207 +_ver_base=0.60.7 +pkgver=${_ver_base}.${_date_ver} +pkgrel=1 +pkgdesc="A spell checker designed to eventually replace Ispell (mingw-w64)" +arch=('any') +url="http://aspell.net/" +license=("LGPL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-gettext") +options=('strip' 'staticlibs') +source=("ftp://alpha.gnu.org/gnu/${_realname}/${_realname}-${_ver_base}-${_date_ver}.tar.gz" + 0001-use-namespace.mingw.patch + 0002-printf.mingw.patch + 0003-no-undefined-on.mingw.patch + 0004-reloc.mingw.patch + 0005-w32-home.all.patch + 0006-abort.mingw.patch + 0007-fix-including-langinfo.patch) +md5sums=('fd87c9cceb4cc8aff06822c109b9dca3' + 'ee6e262260e11bc285ce6a242fec3aeb' + '9f799391cc00cf9e0d5ffee88d103a97' + '4aa79ac556d2cd42b1d736e031acdbac' + '102bacf0b0c041f9d04aeb6bb0adb865' + '3830ee14ff5b704a4e21b2c76f153217' + '5ed7ead83958a39719242221c3669311' + '50a79bb773b73cb3a69ec38cb086ca27') + +prepare() { + cd "${srcdir}"/${_realname}-${_ver_base}-${_date_ver} + patch -p1 -i ${srcdir}/0001-use-namespace.mingw.patch + patch -p1 -i ${srcdir}/0002-printf.mingw.patch + patch -p1 -i ${srcdir}/0003-no-undefined-on.mingw.patch + patch -p1 -i ${srcdir}/0004-reloc.mingw.patch + patch -p1 -i ${srcdir}/0005-w32-home.all.patch + patch -p1 -i ${srcdir}/0006-abort.mingw.patch + patch -p1 -i ${srcdir}/0007-fix-including-langinfo.patch + + autoreconf -fi +} + +build() { + CPPFLAGS+=" -DENABLE_W32_PREFIX=1" + mv ${_realname}-${_ver_base}-${_date_ver} build-${MINGW_CHOST} + cd "${srcdir}/build-${MINGW_CHOST}" + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-static \ + --enable-shared \ + --disable-curses + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make -j1 DESTDIR="$pkgdir" install +} From 5eadcb74eea94bd9cff9242be0deaf1a87492a97 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 13 Dec 2014 21:50:50 +0300 Subject: [PATCH 0155/2060] SDL: Remove new line --- mingw-w64-SDL/PKGBUILD | 1 - 1 file changed, 1 deletion(-) diff --git a/mingw-w64-SDL/PKGBUILD b/mingw-w64-SDL/PKGBUILD index f86e200298..3718f61913 100644 --- a/mingw-w64-SDL/PKGBUILD +++ b/mingw-w64-SDL/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=SDL - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2.15 pkgrel=4 From 905f7104a7e3f16b91edef5dc68104cd3bc4a525 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 13 Dec 2014 21:52:32 +0300 Subject: [PATCH 0156/2060] enchant: Build with spell support --- mingw-w64-enchant/01-relocate.patch | 15 --------------- mingw-w64-enchant/PKGBUILD | 8 +++++--- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/mingw-w64-enchant/01-relocate.patch b/mingw-w64-enchant/01-relocate.patch index 29977edf68..111d85e1d4 100644 --- a/mingw-w64-enchant/01-relocate.patch +++ b/mingw-w64-enchant/01-relocate.patch @@ -29,21 +29,6 @@ diff -Naur enchant-1.6.0-orig/src/aspell/aspell_provider.c enchant-1.6.0/src/asp if (aspell_module == NULL) { -@@ -455,11 +457,11 @@ - void configure_enchant_provider(EnchantProvider * me, const char *dir_name) - { - #if defined(_WIN32) -- if(!load_library(me, dir_name, L"aspell-15.dll") && -- !load_library(me, dir_name, L"libaspell-15.dll")) -+ if(!load_library(me, dir_name, L"aspell-16.dll") && -+ !load_library(me, dir_name, L"libaspell-16.dll")) - { - /* we can't seem to load aspell. Avoid late binding problems later */ -- g_warning("Unable to load library aspell-15.dll."); -+ g_warning("Unable to load library aspell-16.dll."); - me->request_dict = NULL; - me->dispose_dict = NULL; - me->list_dicts = NULL; diff -Naur enchant-1.6.0-orig/src/enchant.c enchant-1.6.0/src/enchant.c --- enchant-1.6.0-orig/src/enchant.c 2014-12-12 16:54:56.911400000 +0300 +++ enchant-1.6.0/src/enchant.c 2014-12-12 21:29:55.568400000 +0300 diff --git a/mingw-w64-enchant/PKGBUILD b/mingw-w64-enchant/PKGBUILD index 9f1f9ebd57..418da4906a 100644 --- a/mingw-w64-enchant/PKGBUILD +++ b/mingw-w64-enchant/PKGBUILD @@ -3,7 +3,7 @@ _realname=enchant pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.0 -pkgrel=4 +pkgrel=5 pkgdesc="Enchanting Spell Checking Library (mingw-w64)" arch=('any') url="http://www.abisource.com/" @@ -11,12 +11,13 @@ license=("LGPL-2.1+") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-glib2 + ${MINGW_PACKAGE_PREFIX}-aspell ${MINGW_PACKAGE_PREFIX}-hunspell) options=('!libtool' 'strip' '!debug' '!makeflags') source=("http://www.abisource.com/downloads/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz" 01-relocate.patch) md5sums=('de11011aff801dc61042828041fb59c7' - 'cea06612b79d1b0453b7000e91ef661e') + 'd0c6e73ddd269081725ad05fd6b529c1') prepare() { cd "$srcdir/${_realname}-$pkgver" @@ -37,8 +38,9 @@ build() { --prefix=${MINGW_PREFIX} \ --enable-ispell \ --enable-myspell \ + --enable-aspell \ --with-system-myspell \ - --disable-aspell \ + --with-aspell-prefix=${MINGW_PREFIX} \ --disable-voikko \ --disable-uspell \ --disable-hspell \ From 67111fdea2d5293459c4545498e228d5bffd62da Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 13 Dec 2014 23:41:24 +0300 Subject: [PATCH 0157/2060] winpthreads-git: Update to git SHA [d008dc5] --- mingw-w64-winpthreads-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index 680bcb1172..3f004a44cb 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=winpthreads pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") _ver_base=4.0.0 -pkgver=4.0.0.4336.6a4cb01 +pkgver=4.0.0.4370.d008dc5 pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" arch=('any') From 5ef3679c5e967aff85849740307fc39d1f917220 Mon Sep 17 00:00:00 2001 From: AlexWMF Date: Sun, 14 Dec 2014 00:31:16 +0300 Subject: [PATCH 0158/2060] qca-qt4-git: Fix cmake modules. --- mingw-w64-qca-qt4-git/PKGBUILD | 7 +++++-- mingw-w64-qca-qt4-git/qca-qt4-git-i686.install | 12 ++++++++++++ mingw-w64-qca-qt4-git/qca-qt4-git-x86_64.install | 12 ++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-qca-qt4-git/qca-qt4-git-i686.install create mode 100644 mingw-w64-qca-qt4-git/qca-qt4-git-x86_64.install diff --git a/mingw-w64-qca-qt4-git/PKGBUILD b/mingw-w64-qca-qt4-git/PKGBUILD index 3cfe88e805..b308dea6c5 100644 --- a/mingw-w64-qca-qt4-git/PKGBUILD +++ b/mingw-w64-qca-qt4-git/PKGBUILD @@ -64,8 +64,11 @@ package() { cd ${srcdir}/build-${MINGW_CHOST} make INSTALL_ROOT="${pkgdir}" install - echo "PREFIX_DEP=$PREFIX_DEP" - echo "MINGW_PREFIX=$MINGW_PREFIX" + sed -s "s|${PREFIX_DEP}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/mkspecs/features/crypto.prf + for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/Qca/*.cmake; do + sed -s "s|${PREFIX_DEP}|${MINGW_PREFIX}|g" -i ${f} + done + install=${_realname}-qt4-git-${CARCH}.install } diff --git a/mingw-w64-qca-qt4-git/qca-qt4-git-i686.install b/mingw-w64-qca-qt4-git/qca-qt4-git-i686.install new file mode 100644 index 0000000000..ff86c83741 --- /dev/null +++ b/mingw-w64-qca-qt4-git/qca-qt4-git-i686.install @@ -0,0 +1,12 @@ +post_install() { + cd mingw32 + local _prefix=$(pwd -W) + cd - + for f in mingw32/lib/cmake/Qca/*.cmake; do + sed -s "s|/mingw32|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-qca-qt4-git/qca-qt4-git-x86_64.install b/mingw-w64-qca-qt4-git/qca-qt4-git-x86_64.install new file mode 100644 index 0000000000..8ffc42c5bc --- /dev/null +++ b/mingw-w64-qca-qt4-git/qca-qt4-git-x86_64.install @@ -0,0 +1,12 @@ +post_install() { + cd mingw64 + local _prefix=$(pwd -W) + cd - + for f in mingw64/lib/cmake/Qca/*.cmake; do + sed -s "s|/mingw64|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} From b137624efc8f0b7dacb37b3437b43108e57dfcde Mon Sep 17 00:00:00 2001 From: AlexWMF Date: Sun, 14 Dec 2014 00:32:43 +0300 Subject: [PATCH 0159/2060] qjson-qt4: Fix cmake modules. --- mingw-w64-qjson-qt4/PKGBUILD | 1 + mingw-w64-qjson-qt4/qjson-qt4-i686.install | 12 ++++++++++++ mingw-w64-qjson-qt4/qjson-qt4-x86_64.install | 12 ++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 mingw-w64-qjson-qt4/qjson-qt4-i686.install create mode 100644 mingw-w64-qjson-qt4/qjson-qt4-x86_64.install diff --git a/mingw-w64-qjson-qt4/PKGBUILD b/mingw-w64-qjson-qt4/PKGBUILD index b9129fefb6..b4f6f46355 100644 --- a/mingw-w64-qjson-qt4/PKGBUILD +++ b/mingw-w64-qjson-qt4/PKGBUILD @@ -41,4 +41,5 @@ package() { for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}/*.cmake; do sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} done + install=${_realname}-qt4-${CARCH}.install } diff --git a/mingw-w64-qjson-qt4/qjson-qt4-i686.install b/mingw-w64-qjson-qt4/qjson-qt4-i686.install new file mode 100644 index 0000000000..9558fd01f1 --- /dev/null +++ b/mingw-w64-qjson-qt4/qjson-qt4-i686.install @@ -0,0 +1,12 @@ +post_install() { + cd mingw32 + local _prefix=$(pwd -W) + cd - + for f in mingw32/lib/cmake/qjson/*.cmake; do + sed -s "s|/mingw32|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-qjson-qt4/qjson-qt4-x86_64.install b/mingw-w64-qjson-qt4/qjson-qt4-x86_64.install new file mode 100644 index 0000000000..6c971d1c95 --- /dev/null +++ b/mingw-w64-qjson-qt4/qjson-qt4-x86_64.install @@ -0,0 +1,12 @@ +post_install() { + cd mingw64 + local _prefix=$(pwd -W) + cd - + for f in mingw64/lib/cmake/qjson/*.cmake; do + sed -s "s|/mingw64|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} From c118cda22c36a90ef4928540338177fba7c5b98c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 14 Dec 2014 01:38:11 +0300 Subject: [PATCH 0160/2060] Fix PKGBUILD's format --- mingw-w64-qca-qt4-git/PKGBUILD | 9 ++------- mingw-w64-qjson-qt4/PKGBUILD | 3 +-- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/mingw-w64-qca-qt4-git/PKGBUILD b/mingw-w64-qca-qt4-git/PKGBUILD index b308dea6c5..d8b1a3b615 100644 --- a/mingw-w64-qca-qt4-git/PKGBUILD +++ b/mingw-w64-qca-qt4-git/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: AlexWMF _realname=qca - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4-git" pkgver=2212.e57f8e7 pkgrel=1 @@ -18,6 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-qt4" "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" "${MINGW_PACKAGE_PREFIX}-nss") depends=("${MINGW_PACKAGE_PREFIX}-qt4") +install=${_realname}-qt4-git-${CARCH}.install source=("${_realname}"::"git://anongit.kde.org/qca.git" "cyrus_sasl_linking.patch" "find_nss_cmake.patch") @@ -39,17 +39,13 @@ prepare() { build() { cd ${srcdir} [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} QC_CERTSTORE_PATH=${MINGW_PREFIX}/etc/ssl/certs/ca-certificates.crt ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TESTS=False \ ${srcdir}/${_realname} @@ -70,5 +66,4 @@ package() { for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/Qca/*.cmake; do sed -s "s|${PREFIX_DEP}|${MINGW_PREFIX}|g" -i ${f} done - install=${_realname}-qt4-git-${CARCH}.install } diff --git a/mingw-w64-qjson-qt4/PKGBUILD b/mingw-w64-qjson-qt4/PKGBUILD index b4f6f46355..0d634c95a4 100644 --- a/mingw-w64-qjson-qt4/PKGBUILD +++ b/mingw-w64-qjson-qt4/PKGBUILD @@ -11,7 +11,7 @@ license=('GPL') url="http://qjson.sourceforge.net" depends=("${MINGW_PACKAGE_PREFIX}-qt4") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") - +install=${_realname}-qt4-${CARCH}.install options=(!strip staticlibs !buildflags) source=(${_realname}-${pkgver}.tar.gz::"https://github.com/flavio/${_realname}/archive/${pkgver}.tar.gz") @@ -41,5 +41,4 @@ package() { for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}/*.cmake; do sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} done - install=${_realname}-qt4-${CARCH}.install } From 4877094c54b7246b499f7337fac62ed483ba9c09 Mon Sep 17 00:00:00 2001 From: AlexWMF Date: Sun, 14 Dec 2014 01:40:44 +0300 Subject: [PATCH 0161/2060] leechcraft-git: New package. --- mingw-w64-leechcraft-git/PKGBUILD | 210 ++++++++++++++++++ .../azoth_find_qca2.patch | 11 + .../azoth_xoox_multimediakit.patch | 10 + .../find_azoth_multimediakit_cmake.patch | 30 +++ .../find_gstreamer_cmake.patch | 20 ++ .../find_lhtr_libtidy_cmake.patch | 22 ++ .../find_lmp_libguess_cmake.patch | 38 ++++ mingw-w64-leechcraft-git/find_otr.patch | 46 ++++ .../find_poppler_cmake.patch | 11 + .../find_qjson_cmake_common.patch | 19 ++ .../find_qwt_cmake_common.patch | 26 +++ .../find_rbtorrent_cmake.patch | 32 +++ mingw-w64-leechcraft-git/htthare_cmake.patch | 11 + mingw-w64-leechcraft-git/lmp_gst_paths.patch | 24 ++ mingw-w64-leechcraft-git/win_rc.patch | 11 + mingw-w64-leechcraft-git/xtazy_cmake.patch | 11 + 16 files changed, 532 insertions(+) create mode 100644 mingw-w64-leechcraft-git/PKGBUILD create mode 100644 mingw-w64-leechcraft-git/azoth_find_qca2.patch create mode 100644 mingw-w64-leechcraft-git/azoth_xoox_multimediakit.patch create mode 100644 mingw-w64-leechcraft-git/find_azoth_multimediakit_cmake.patch create mode 100644 mingw-w64-leechcraft-git/find_gstreamer_cmake.patch create mode 100644 mingw-w64-leechcraft-git/find_lhtr_libtidy_cmake.patch create mode 100644 mingw-w64-leechcraft-git/find_lmp_libguess_cmake.patch create mode 100644 mingw-w64-leechcraft-git/find_otr.patch create mode 100644 mingw-w64-leechcraft-git/find_poppler_cmake.patch create mode 100644 mingw-w64-leechcraft-git/find_qjson_cmake_common.patch create mode 100644 mingw-w64-leechcraft-git/find_qwt_cmake_common.patch create mode 100644 mingw-w64-leechcraft-git/find_rbtorrent_cmake.patch create mode 100644 mingw-w64-leechcraft-git/htthare_cmake.patch create mode 100644 mingw-w64-leechcraft-git/lmp_gst_paths.patch create mode 100644 mingw-w64-leechcraft-git/win_rc.patch create mode 100644 mingw-w64-leechcraft-git/xtazy_cmake.patch diff --git a/mingw-w64-leechcraft-git/PKGBUILD b/mingw-w64-leechcraft-git/PKGBUILD new file mode 100644 index 0000000000..aa73b46242 --- /dev/null +++ b/mingw-w64-leechcraft-git/PKGBUILD @@ -0,0 +1,210 @@ +# Maintainer: AlexWMF + +_realname=leechcraft + +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +#provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +#conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") + +pkgver=0.6.70_1886_gba1d0d9 +pkgrel=1 +pkgdesc="LeechCraft is a free open source cross-platform modular live environment." +arch=('any') +license=('Boost') +url="http://leechcraft.org/" +depends=("${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-djvulibre" + "${MINGW_PACKAGE_PREFIX}-ffmpeg" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gst-plugins-base" + "${MINGW_PACKAGE_PREFIX}-gst-plugins-good" + "${MINGW_PACKAGE_PREFIX}-gst-plugins-ugly" + "${MINGW_PACKAGE_PREFIX}-gstreamer" + "${MINGW_PACKAGE_PREFIX}-hunspell" + "${MINGW_PACKAGE_PREFIX}-libguess" + "${MINGW_PACKAGE_PREFIX}-liblastfm-qt4" + "${MINGW_PACKAGE_PREFIX}-libtorrent-rasterbar-git" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-pcre" + "${MINGW_PACKAGE_PREFIX}-poppler-qt4" + "${MINGW_PACKAGE_PREFIX}-qca-qt4-git" + "${MINGW_PACKAGE_PREFIX}-qjson-qt4" + # "${MINGW_PACKAGE_PREFIX}-qt-mobility-qt4" + "${MINGW_PACKAGE_PREFIX}-qwt-qt4" + "${MINGW_PACKAGE_PREFIX}-qxmpp-qt4" + "${MINGW_PACKAGE_PREFIX}-speex" + "${MINGW_PACKAGE_PREFIX}-taglib" + "${MINGW_PACKAGE_PREFIX}-tidyhtml") + +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") + +options=(!strip !buildflags) + +#source=(${_realname}.tar.gz::"https://github.com/0xd34df00d/${_realname}/archive/${pkgver}.tar.gz" +source=("${_realname}"::"git+https://github.com/0xd34df00d/leechcraft.git" + win_rc.patch + xtazy_cmake.patch + lmp_gst_paths.patch + find_otr.patch + find_poppler_cmake.patch + find_azoth_multimediakit_cmake.patch + azoth_xoox_multimediakit.patch + htthare_cmake.patch + azoth_find_qca2.patch + find_gstreamer_cmake.patch + find_qwt_cmake_common.patch + find_rbtorrent_cmake.patch + find_lmp_libguess_cmake.patch + find_lhtr_libtidy_cmake.patch + find_qjson_cmake_common.patch) +md5sums=('SKIP' + '4d0dadd4c21c0aa3445bd692f53cd710' + '37c053b55190fc4a0982f523da622778' + '928ec6660b81dcd972b9c0b965500a3d' + '26f30fad2a37195700a63026ca98140c' + '1ab74591ea02c8b963635c29f7c96aa4' + '39c8f3bb218d90ee18e3d00145b6cc4d' + '9842ee627c186acfd8bfe41246d11021' + '339e312cf94e227a15d97eedfcf47ad6' + '315a55250f864e4f8309e67ca9788b75' + '8a99a49f9c8ddf52e85f449864c25ce1' + 'd65acc9c21d2bbf96cbd524f17e7e9a6' + 'c3ed67e1e343a1eb0787be5600306769' + '0bd91269a65429173ad14df4dd095036' + '31b73bc20ee1cdfb310101fc7b640b7f' + '6400ac872a9cd3d575435ab766cc1ab8') + +pkgver() { + cd "$srcdir/$_realname" + printf "%s" "$(git describe | sed 's/-/_/g')" +} + +prepare() { + cd "${srcdir}/${_realname}" + patch -p0 -i ${srcdir}/win_rc.patch + patch -p0 -i ${srcdir}/xtazy_cmake.patch + patch -p0 -i ${srcdir}/lmp_gst_paths.patch + patch -p0 -i ${srcdir}/find_otr.patch + patch -p0 -i ${srcdir}/find_poppler_cmake.patch + #patch -p1 -i ${srcdir}/find_azoth_multimediakit_cmake.patch + #patch -p0 -i ${srcdir}/azoth_xoox_multimediakit.patch + patch -p0 -i ${srcdir}/htthare_cmake.patch + patch -p0 -i ${srcdir}/azoth_find_qca2.patch + patch -p1 -i ${srcdir}/find_gstreamer_cmake.patch + patch -p1 -i ${srcdir}/find_qwt_cmake_common.patch + patch -p1 -i ${srcdir}/find_rbtorrent_cmake.patch + patch -p1 -i ${srcdir}/find_lmp_libguess_cmake.patch + patch -p1 -i ${srcdir}/find_lhtr_libtidy_cmake.patch + patch -p1 -i ${srcdir}/find_qjson_cmake_common.patch + + cd ${srcdir} + mv ${_realname} "${srcdir}/${CARCH}" +} + +build() { + #if [ "${CARCH}" != "x86_64" ]; then + # return + #fi + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${pkgdir}${MINGW_PREFIX} + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null + export PREFIX_WIN=`pwd -W` + popd > /dev/null + + #pushd ${MINGW_PREFIX} > /dev/null + #export PREFIX_DEP=`pwd -W` + #popd > /dev/null + + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DMINGW_PREFIX="${MINGW_PREFIX}" \ + -DWITH_PLUGINS=True \ + -DENABLE_SB2=True \ + -DENABLE_AZOTH=True \ + -DENABLE_CRYPT=True \ + -DENABLE_AZOTH_VADER=True \ + -DENABLE_MEDIACALLS=False \ + -DENABLE_AZOTH_AUTOPASTE=True \ + -DENABLE_AZOTH_ROSENTHAL=True \ + -DENABLE_AZOTH_WOODPECKER=True \ + -DENABLE_SECMAN=True \ + -DENABLE_AUSCRIE=True \ + -DENABLE_IMGASTE=True \ + -DENABLE_LACKMAN=True \ + -DENABLE_POSHUKU=True \ + -DENABLE_POSHUKU_CLEANWEB=True \ + -DENABLE_HISTORYHOLDER=True \ + -DENABLE_HTTP=True \ + -DENABLE_SYNCER=False \ + -DENABLE_TABSESSMANAGER=True \ + -DENABLE_CPULOAD=True \ + -DENABLE_DOLOZHEE=True \ + -DENABLE_HARBINGER=True \ + -DENABLE_NETSTOREMANAGER=True \ + -DENABLE_OORONEE=True \ + -DENABLE_TOUCHSTREAMS=True \ + -DENABLE_CEMENTO=True \ + -DENABLE_ROSENTHAL=True \ + -DENABLE_LASTFMSCROBBLE=True \ + -DENABLE_MONOCLE=True \ + -DENABLE_BLASQ=True \ + -DENABLE_LEMON=False \ + -DENABLE_VTYULC=False \ + -DENABLE_HTTHARE=True \ + -DGIT_CMD=`which git` \ + -DENABLE_POLEEMERY=True \ + -DENABLE_LHTR=True \ + -DENABLE_OTLOZHU=True \ + -DENABLE_OTLOZHU_SYNC=False \ + -DENABLE_LMP=True \ + -DUSE_GSTREAMER_10=True \ + -DENABLE_LMP_LIBGUESS=True \ + -DENABLE_LMP_BRAINSLUGZ=True \ + -DENABLE_LMP_DUMBSYNC=True \ + -DENABLE_LMP_GRAFFITI=True \ + -DENABLE_LMP_HTTSTREAM=True \ + -DENABLE_LMP_JOS=False \ + -DENABLE_LMP_MP3TUNES=True \ + -DENABLE_LMP_MTPSYNC=False \ + -DWITH_X11=False \ + -DENABLE_TORRENT=True \ + -DENABLE_AZOTH_OTROID=True \ + -DENABLE_SNAILS=False \ + -DENABLE_AZOTH_TRACOLOR=True \ + -DUSE_CPP14=True \ + ${srcdir}/${CARCH}/src/ + + + # -DQJSON_DIR="${PREFIX_DEP}/" \ + # -DQTMULTIMEDIAKIT_PREFIX="${PREFIX_DEP}/" \ + # -DLIBTIDY_DIR="${PREFIX_DEP}/" \ + # -DLibGuess_DIR="${PREFIX_DEP}/" \ + # -DRBTorrent_DIR="${PREFIX_DEP}/" \ + # -DRBTorrent_LIBRARY="${PREFIX_DEP}/lib/libtorrent-rasterbar.dll.a" \ + # -DQWT_DIR="${PREFIX_DEP}/" \ + # -DQWT_INCLUDE_DIRS="${PREFIX_DEP}/include/qwt" \ + # -DQWT_LIBRARIES="${PREFIX_DEP}/lib/libqwt.a" \ + # -DPC_GSTREAMER_LIBRARY_DIRS="${PREFIX_DEP}/lib" \ + # -DGSTREAMER_INCLUDE_DIR="${PREFIX_DEP}/include/gstreamer-1.0" \ + # -DGSTREAMER_DIR="${PREFIX_DEP}/" \ + # ENABLE_SYNCER - laretz + # ENABLE_LEMON - netlink (nl) + + make ${MAKEFLAGS} # VERBOSE=1 +} + +package() { + #if [ "${CARCH}" != "x86_64" ]; then + # return + #fi + cd $srcdir/build-${MINGW_CHOST} + make -j1 install +} diff --git a/mingw-w64-leechcraft-git/azoth_find_qca2.patch b/mingw-w64-leechcraft-git/azoth_find_qca2.patch new file mode 100644 index 0000000000..4e1f3dace3 --- /dev/null +++ b/mingw-w64-leechcraft-git/azoth_find_qca2.patch @@ -0,0 +1,11 @@ +--- src/plugins/azoth/cmake/FindQCA2.cmake.orig 2014-07-15 19:51:49.513240700 +0300 ++++ src/plugins/azoth/cmake/FindQCA2.cmake 2014-07-19 17:26:25.387095400 +0300 +@@ -31,7 +31,7 @@ + + find_library_with_debug(QCA2_LIBRARIES + WIN32_DEBUG_POSTFIX d +- NAMES qca ++ NAMES qca qca2 + HINTS ${PC_QCA2_LIBDIR} ${PC_QCA2_LIBRARY_DIRS} ${QCA2_DIR}/lib + ) + diff --git a/mingw-w64-leechcraft-git/azoth_xoox_multimediakit.patch b/mingw-w64-leechcraft-git/azoth_xoox_multimediakit.patch new file mode 100644 index 0000000000..1475487851 --- /dev/null +++ b/mingw-w64-leechcraft-git/azoth_xoox_multimediakit.patch @@ -0,0 +1,10 @@ +--- src/plugins/azoth/plugins/xoox/CMakeLists.txt.orig 2014-07-18 23:55:42.420365000 +0300 ++++ src/plugins/azoth/plugins/xoox/CMakeLists.txt 2014-07-18 23:56:02.860534100 +0300 +@@ -167,6 +167,7 @@ + ${QXMPP_LIBRARIES} + ${SPEEX_LIBRARIES} + ${QCA2_LIBRARIES} ++ ${QTMULTIMEDIAKIT_LIBRARIES} + ) + install (TARGETS leechcraft_azoth_xoox DESTINATION ${LC_PLUGINS_DEST}) + install (FILES azothxooxsettings.xml DESTINATION ${LC_SETTINGS_DEST}) diff --git a/mingw-w64-leechcraft-git/find_azoth_multimediakit_cmake.patch b/mingw-w64-leechcraft-git/find_azoth_multimediakit_cmake.patch new file mode 100644 index 0000000000..d67920af96 --- /dev/null +++ b/mingw-w64-leechcraft-git/find_azoth_multimediakit_cmake.patch @@ -0,0 +1,30 @@ +--- x86_64/src/plugins/azoth/cmake/FindQtMultimediaKit.cmake.orig 2014-12-13 17:50:06.112839800 +0300 ++++ x86_64/src/plugins/azoth/cmake/FindQtMultimediaKit.cmake 2014-12-13 17:52:02.482495800 +0300 +@@ -16,6 +16,7 @@ + /usr/local/include/QtMultimediaKit + /usr/include/qt4/QtMultimediaKit + /usr/local/include/qt4/QtMultimediaKit ++ ${MINGW_PREFIX}/include/QtMultimediaKit + ) + + find_path (QTMOBILITY_INCLUDE_DIR +@@ -26,16 +27,18 @@ + /usr/local/include/QtMobility + /usr/include/qt4/QtMobility + /usr/local/include/qt4/QtMobility ++ ${MINGW_PREFIX}/include/QtMobility + ) + + find_library (QTMULTIMEDIAKIT_LIBRARIES + NAMES +- QtMultimediaKit ++ QtMultimediaKit QtMultimediaKit1 + PATHS + /usr/lib + /usr/local/lib + /usr/lib/qt4 + /usr/local/lib/qt4 ++ ${MINGW_PREFIX}/lib + ) + + if (QTMULTIMEDIAKIT_INCLUDE_DIR AND QTMOBILITY_INCLUDE_DIR AND QTMULTIMEDIAKIT_LIBRARIES) diff --git a/mingw-w64-leechcraft-git/find_gstreamer_cmake.patch b/mingw-w64-leechcraft-git/find_gstreamer_cmake.patch new file mode 100644 index 0000000000..d71150196a --- /dev/null +++ b/mingw-w64-leechcraft-git/find_gstreamer_cmake.patch @@ -0,0 +1,20 @@ +--- x86_64/src/plugins/lmp/cmake/FindGStreamer.cmake.orig 2014-12-13 15:55:16.107754000 +0300 ++++ x86_64/src/plugins/lmp/cmake/FindGStreamer.cmake 2014-12-13 16:17:21.848582100 +0300 +@@ -20,7 +20,7 @@ + SET(GStreamer_FIND_QUIETLY FALSE) + ENDIF (GSTREAMER_INCLUDE_DIR AND GSTREAMER_LIBRARIES AND GSTREAMER_BASE_LIBRARY AND GSTREAMER_INTERFACE_LIBRARY) + +-IF (NOT WIN32) ++#IF (NOT WIN32 OR MINGW) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + FIND_PACKAGE(PkgConfig) +@@ -33,7 +33,7 @@ + #MESSAGE(STATUS "DEBUG: GStreamer link directory = ${GSTREAMER_LIBRARY_DIRS}") + #MESSAGE(STATUS "DEBUG: GStreamer CFlags = ${GSTREAMER_CFLAGS_OTHER}") + SET(GSTREAMER_DEFINITIONS ${PC_GSTREAMER_CFLAGS_OTHER}) +-ENDIF (NOT WIN32) ++#ENDIF (NOT WIN32 OR MINGW) + + IF (WIN32 OR APPLE) + SET (USE_GSTREAMER_10 TRUE) diff --git a/mingw-w64-leechcraft-git/find_lhtr_libtidy_cmake.patch b/mingw-w64-leechcraft-git/find_lhtr_libtidy_cmake.patch new file mode 100644 index 0000000000..30e46de622 --- /dev/null +++ b/mingw-w64-leechcraft-git/find_lhtr_libtidy_cmake.patch @@ -0,0 +1,22 @@ +--- x86_64/src/plugins/lhtr/cmake/FindLibTidy.cmake.orig 2014-12-13 17:43:06.245824800 +0300 ++++ x86_64/src/plugins/lhtr/cmake/FindLibTidy.cmake 2014-12-13 17:45:55.087482000 +0300 +@@ -12,11 +12,17 @@ + endif (LIBTIDY_INCLUDE_DIR) + + # Look for the header file. +-find_path(LIBTIDY_INCLUDE_DIR tidy.h PATH_SUFFIXES tidy PATHS ${LIBTIDY_DIR}/include) ++find_path(LIBTIDY_INCLUDE_DIR tidy.h PATH_SUFFIXES tidy ++ PATHS ++ ${MINGW_PREFIX}/include ++ ${LIBTIDY_DIR}/include) + mark_as_advanced(LIBTIDY_INCLUDE_DIR) + + # Look for the library. +-find_library(LIBTIDY_LIBRARY NAMES tidy PATHS ${LIBTIDY_DIR}/lib) ++find_library(LIBTIDY_LIBRARY NAMES tidy ++ PATHS ++ ${MINGW_PREFIX}/lib ++ ${LIBTIDY_DIR}/lib) + mark_as_advanced(LIBTIDY_LIBRARY) + + if (LIBTIDY_INCLUDE_DIR AND LIBTIDY_LIBRARY) diff --git a/mingw-w64-leechcraft-git/find_lmp_libguess_cmake.patch b/mingw-w64-leechcraft-git/find_lmp_libguess_cmake.patch new file mode 100644 index 0000000000..287dca6ff0 --- /dev/null +++ b/mingw-w64-leechcraft-git/find_lmp_libguess_cmake.patch @@ -0,0 +1,38 @@ +--- x86_64/src/plugins/lmp/cmake/FindLibGuess.cmake.orig 2014-12-13 17:40:38.292362300 +0300 ++++ x86_64/src/plugins/lmp/cmake/FindLibGuess.cmake 2014-12-13 17:41:24.025978100 +0300 +@@ -10,11 +10,12 @@ + # Already in cache + set (LibGuess_FOUND TRUE) + else () +- if (NOT WIN32) ++ if (NOT WIN32 OR MINGW) + find_library (LibGuess_LIBRARY + NAMES + guess + PATHS ++ ${MINGW_PREFIX}/lib + ENV + ) + else () +@@ -27,7 +28,8 @@ + endif () + + if (MINGW) +- find_library (LibGuess_LIBRARIES NAMES libguess.a PATHS ${LibGuess_DIR}/lib) ++ find_library (LibGuess_LIBRARY NAMES guess libguess PATHS ${LibGuess_DIR}/lib) ++ message (STATUS "LIBGUESS LIB: ${LibGuess_LIBRARY}") + endif () + endif () + +@@ -35,9 +37,11 @@ + NAMES + libguess/libguess.h + PATHS ++ ${MINGW_PREFIX}/include + ${LibGuess_DIR}/include + ${INCLUDE_INSTALL_DIR} + ) ++ message (STATUS "LIBGUESS INC: ${LibGuess_INCLUDE_DIR}") + + if (LibGuess_INCLUDE_DIR AND LibGuess_LIBRARY) + set (LibGuess_FOUND 1) diff --git a/mingw-w64-leechcraft-git/find_otr.patch b/mingw-w64-leechcraft-git/find_otr.patch new file mode 100644 index 0000000000..94521e514e --- /dev/null +++ b/mingw-w64-leechcraft-git/find_otr.patch @@ -0,0 +1,46 @@ +--- src/plugins/azoth/plugins/otroid/cmake/FindLibOTR.cmake.orig 2014-07-12 23:40:52.923459600 +0300 ++++ src/plugins/azoth/plugins/otroid/cmake/FindLibOTR.cmake 2014-07-13 00:57:33.387591100 +0300 +@@ -8,29 +8,18 @@ + include(MacroEnsureVersion) + include(FindPackageHandleStandardArgs) + +-if (LIBOTR_INCLUDE_DIR AND LIBOTR_LIBRARY) +- # Already in cache, be silent +- set(LIBOTR_FIND_QUIETLY TRUE) +-endif () ++find_package (PkgConfig) ++pkg_check_modules (PC_LIBOTR REQUIRED libotr>=3.2) + +-find_path(LIBOTR_INCLUDE_DIR libotr/version.h) +- +-find_library(LIBOTR_LIBRARY NAMES otr libotr) +- +-# Determine version information from libotr/version.h +-if( LIBOTR_INCLUDE_DIR AND LIBOTR_LIBRARY ) +- execute_process(COMMAND grep "OTRL_VERSION" "${LIBOTR_INCLUDE_DIR}/libotr/version.h" OUTPUT_VARIABLE output) +- string(REGEX MATCH "OTRL_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+" LIBOTR_VERSION "${output}") +- string(REGEX REPLACE "^OTRL_VERSION \"" "" LIBOTR_VERSION "${LIBOTR_VERSION}") +- # Check if version is at least 3.2.0 +- MACRO_ENSURE_VERSION("3.2.0" ${LIBOTR_VERSION} LIBOTR_FOUND) +- +- if( LIBOTR_FOUND ) +- if( NOT LIBOTR_FIND_QUIETLY ) +- message( STATUS "Found libotr: ${LIBOTR_LIBRARY}") +- endif() +- else() +- message(STATUS "libotr version 3.2.0 or greater required but found ${LIBOTR_VERSION}.") +- endif() +- +-endif() ++find_path (LIBOTR_INCLUDE_DIR libotr/version.h ++ HINTS ${PC_LIBOTR_INCLUDEDIR} ${PC_LIBOTR_INCLUDE_DIRS} ++ PATH_SUFFIXES libotr) ++ ++find_library(LIBOTR_LIBRARY NAMES libotr ++ HINTS ${PC_LIBOTR_LIBDIR} ${PC_LIBOTR_LIBRARY_DIRS} ) ++find_library(LIBGCRYPT_LIBRARY NAMES libgcrypt ++ HINTS ${PC_LIBOTR_LIBDIR} ${PC_LIBOTR_LIBRARY_DIRS} ) ++find_library(LIBGPG_ERROR NAMES libgpg-error ++ HINTS ${PC_LIBOTR_LIBDIR} ${PC_LIBOTR_LIBRARY_DIRS} ) ++set (LIBOTR_LIBRARY ${LIBOTR_LIBRARY} ${LIBGCRYPT_LIBRARY} ${LIBGPG_ERROR}) ++message (STATUS "libor found: ${LIBOTR_LIBRARY}, includedir: ${LIBOTR_INCLUDE_DIR}") diff --git a/mingw-w64-leechcraft-git/find_poppler_cmake.patch b/mingw-w64-leechcraft-git/find_poppler_cmake.patch new file mode 100644 index 0000000000..ba39a19c72 --- /dev/null +++ b/mingw-w64-leechcraft-git/find_poppler_cmake.patch @@ -0,0 +1,11 @@ +--- src/plugins/monocle/plugins/pdf/cmake/FindPopplerQt4.cmake.orig 2014-07-15 19:51:51.304343200 +0300 ++++ src/plugins/monocle/plugins/pdf/cmake/FindPopplerQt4.cmake 2014-07-15 21:36:54.437861800 +0300 +@@ -15,7 +15,7 @@ + # Redistribution and use is allowed according to the terms of the BSD license. + # For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +-if (UNIX) ++if (UNIX OR MINGW) + find_package(PkgConfig) + pkg_check_modules(PC_POPPLERQT4 QUIET poppler-qt4) + diff --git a/mingw-w64-leechcraft-git/find_qjson_cmake_common.patch b/mingw-w64-leechcraft-git/find_qjson_cmake_common.patch new file mode 100644 index 0000000000..6c0f200fdc --- /dev/null +++ b/mingw-w64-leechcraft-git/find_qjson_cmake_common.patch @@ -0,0 +1,19 @@ +--- x86_64/src/cmake/FindQJSON.cmake.orig 2014-12-14 00:40:10.259116500 +0300 ++++ x86_64/src/cmake/FindQJSON.cmake 2014-12-14 00:42:52.264382600 +0300 +@@ -11,7 +11,7 @@ + # Already in cache + set (QJSON_FOUND TRUE) + else () +- if (NOT WIN32) ++ if (NOT WIN32 OR MINGW) + find_library (QJSON_LIBRARIES + NAMES + qjson +@@ -19,6 +19,7 @@ + ${QJSON_DIR} + ${LIB_INSTALL_DIR} + ${KDE4_LIB_DIR} ++ ${MINGW_PREFIX} + ) + else () + if (NOT DEFINED QJSON_DIR) diff --git a/mingw-w64-leechcraft-git/find_qwt_cmake_common.patch b/mingw-w64-leechcraft-git/find_qwt_cmake_common.patch new file mode 100644 index 0000000000..3765ccaef0 --- /dev/null +++ b/mingw-w64-leechcraft-git/find_qwt_cmake_common.patch @@ -0,0 +1,26 @@ +--- x86_64/src/cmake/FindQwt.cmake.orig 2014-12-13 16:52:50.274321100 +0300 ++++ x86_64/src/cmake/FindQwt.cmake 2014-12-13 17:08:22.775657100 +0300 +@@ -13,6 +13,7 @@ + /usr/include/qwt6 + /usr/include/qwt + /usr/local/lib/qwt.framework/Headers ++ ${MINGW_PREFIX}/include/qwt + ) + + if (NOT USE_QT5) +@@ -22,6 +23,7 @@ + /usr/local/lib + /usr/lib + /usr/local/lib/qwt.framework ++ ${MINGW_PREFIX}/lib + ) + else () + find_library (QWT_LIBRARIES +@@ -30,6 +32,7 @@ + /usr/local/lib + /usr/lib + /usr/local/lib/qwt.framework ++ ${MINGW_PREFIX}/lib + ) + endif () + diff --git a/mingw-w64-leechcraft-git/find_rbtorrent_cmake.patch b/mingw-w64-leechcraft-git/find_rbtorrent_cmake.patch new file mode 100644 index 0000000000..dd41bf954a --- /dev/null +++ b/mingw-w64-leechcraft-git/find_rbtorrent_cmake.patch @@ -0,0 +1,32 @@ +--- x86_64/src/plugins/bittorrent/cmake/FindRBTorrent.cmake.orig 2014-12-13 17:11:13.669431700 +0300 ++++ x86_64/src/plugins/bittorrent/cmake/FindRBTorrent.cmake 2014-12-13 17:29:02.581569900 +0300 +@@ -15,7 +15,7 @@ + message(FATAL_ERROR "We currently support only MSVC 2010 version") + endif () + endif () +- if (NOT DEFINED RBTorrent_DIR) ++ if (NOT DEFINED RBTorrent_DIR AND NOT MINGW) + if (RBTorrent_FIND_REQUIRED) + message(FATAL_ERROR "Please set RBTorrent_DIR variable") + else () +@@ -28,6 +28,7 @@ + NAMES + libtorrent/torrent.hpp + PATHS ++ ${MINGW_PREFIX}/include + ${RBTorrent_DIR}/include + ENV PATH + ) +@@ -46,7 +47,11 @@ + win32_tune_libs_names (RBTorrent) + set (RBTorrent_LIBRARY ${RBTorrent_LIBRARIES}) + else () +- find_library (RBTorrent_LIBRARY NAMES libtorrent.dll.a PATHS ${RBTorrent_DIR}/lib) ++ find_library (RBTorrent_LIBRARY ++ NAMES libtorrent.dll.a libtorrent-rasterbar.dll.a ++ PATHS ++ ${MINGW_PREFIX}/lib ++ ${RBTorrent_DIR}/lib) + endif () + else () + find_library (RBTorrent_LIBRARY NAMES torrent-rasterbar PATH ENV) diff --git a/mingw-w64-leechcraft-git/htthare_cmake.patch b/mingw-w64-leechcraft-git/htthare_cmake.patch new file mode 100644 index 0000000000..6d36ba8e74 --- /dev/null +++ b/mingw-w64-leechcraft-git/htthare_cmake.patch @@ -0,0 +1,11 @@ +--- src/plugins/htthare/CMakeLists.txt.orig 2014-07-20 13:29:40.973786900 +0300 ++++ src/plugins/htthare/CMakeLists.txt 2014-07-20 13:30:28.943530600 +0300 +@@ -32,6 +32,8 @@ + ${QT_LIBRARIES} + ${Boost_SYSTEM_LIBRARY} + ${LEECHCRAFT_LIBRARIES} ++ ws2_32 ++ mswsock + ) + install (TARGETS leechcraft_htthare DESTINATION ${LC_PLUGINS_DEST}) + install (FILES httharesettings.xml DESTINATION ${LC_SETTINGS_DEST}) diff --git a/mingw-w64-leechcraft-git/lmp_gst_paths.patch b/mingw-w64-leechcraft-git/lmp_gst_paths.patch new file mode 100644 index 0000000000..d5eecbe970 --- /dev/null +++ b/mingw-w64-leechcraft-git/lmp_gst_paths.patch @@ -0,0 +1,24 @@ +--- src/plugins/lmp/lmp.cpp.orig 2014-07-12 17:41:32.553911000 +0300 ++++ src/plugins/lmp/lmp.cpp 2014-07-12 17:43:32.342762500 +0300 +@@ -83,6 +83,21 @@ + + qputenv ("GST_REGISTRY_FORK", "no"); + } ++#elif defined (Q_OS_WIN) ++ auto updateEnv = [] (const char *name, const QByteArray& relpath) ++ { ++ if (qgetenv (name).isEmpty ()) ++ qputenv (name, ++ QDir::toNativeSeparators (QCoreApplication::applicationDirPath () + relpath).toUtf8()); ++ }; ++ updateEnv ("GST_PLUGIN_SYSTEM_PATH", "/gstreamer-1.0"); ++ updateEnv ("GST_PLUGIN_SCANNER", "gst-plugin-scanner"); ++ updateEnv ("GTK_PATH", "/gstreamer-1.0"); ++ updateEnv ("GIO_EXTRA_MODULES", "/gio-modules"); ++ updateEnv ("GSETTINGS_SCHEMA_DIR", "/gstreamer-1.0/schemas"); ++ //updateEnv ("GST_DEBUG", "7"); ++ ++ qputenv ("GST_REGISTRY_FORK", "no"); + #endif + + gint argc = 1; diff --git a/mingw-w64-leechcraft-git/win_rc.patch b/mingw-w64-leechcraft-git/win_rc.patch new file mode 100644 index 0000000000..bb5595cac0 --- /dev/null +++ b/mingw-w64-leechcraft-git/win_rc.patch @@ -0,0 +1,11 @@ +--- src/core/CMakeLists.txt.orig 2014-04-03 16:35:13.000000000 +0300 ++++ src/core/CMakeLists.txt 2014-07-12 02:15:43.981020500 +0300 +@@ -151,7 +151,7 @@ + + set (WIN_RESOURCES) + if (WIN32) +- set (WIN_RESOURCES ../../../tools/win32/leechcraft.rc) ++ set (WIN_RESOURCES ../../tools/win32/leechcraft.rc) + endif () + + add_executable (leechcraft WIN32 diff --git a/mingw-w64-leechcraft-git/xtazy_cmake.patch b/mingw-w64-leechcraft-git/xtazy_cmake.patch new file mode 100644 index 0000000000..a4ac1246b0 --- /dev/null +++ b/mingw-w64-leechcraft-git/xtazy_cmake.patch @@ -0,0 +1,11 @@ +--- src/plugins/xtazy/CMakeLists.txt.orig 2014-07-12 15:57:38.049317700 +0300 ++++ src/plugins/xtazy/CMakeLists.txt 2014-07-12 15:58:50.619468500 +0300 +@@ -19,7 +19,7 @@ + lcsource.cpp + ) + +-if (QT_QTDBUS_FOUND) ++if (QT_QTDBUS_FOUND AND NOT WIN32) + add_definitions (-DHAVE_DBUS) + + set (SRCS From 9c906d1f0ff0bf1a7c50c52cdaf65f3a19ca477d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 14 Dec 2014 20:40:03 +0300 Subject: [PATCH 0162/2060] kicad-git: Update to git SHA [46a5f14] --- mingw-w64-kicad-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-kicad-git/PKGBUILD b/mingw-w64-kicad-git/PKGBUILD index 1502d2d921..c3f789e1fa 100644 --- a/mingw-w64-kicad-git/PKGBUILD +++ b/mingw-w64-kicad-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=kicad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r6803.0561940 +pkgver=r6886.46a5f14 pkgrel=1 pkgdesc="Software for the creation of electronic schematic diagrams and printed circuit board artwork" arch=('any') From b99b34eac3dc14bae52bb46badcdeff61abd516f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 14 Dec 2014 20:40:43 +0300 Subject: [PATCH 0163/2060] gnutls: Update to 3.3.11 --- mingw-w64-gnutls/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index f8f381af80..c15de2ccb6 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -2,8 +2,8 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.3.10 -pkgrel=2 +pkgver=3.3.11 +pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') license=('GPL3' 'LGPL2.1') @@ -22,7 +22,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/${_realname}-${pkgver}.tar.xz{,.sig} 0004-fix-gtkdoc.all.patch 0005-fix-strtok-conflict.mingw.patch) -md5sums=('c0a72b2c0553fe1c4992e30835808012' +md5sums=('b657e3010c10cae2244e7ce79ee3d446' 'SKIP' '86cfab6e7c2ccfcfd1dad9d5024627e3' '77287dc835afbb8cc4e9c4aa6b7adb7b') From a806cf02853d63e610eb1dedc7c918ce1e652195 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 14 Dec 2014 20:42:23 +0300 Subject: [PATCH 0164/2060] sqlite3: Update to 3.8.7.4 --- mingw-w64-sqlite3/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index 9cb4b85ba0..b6918d95c2 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -2,8 +2,8 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3080703 -pkgver=3.8.7.3 +_amalgamationver=3080704 +pkgver=3.8.7.4 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ url="http://www.sqlite.org" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-readline") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tcl") source=("http://www.sqlite.org/2014/sqlite-autoconf-$_amalgamationver.tar.gz") -sha1sums=('5cbe9aa4af1b32787045a251dba6debee3f061c0') +sha1sums=('70ca0b8884a6b145b7f777724670566e2b4f3cde') options=('!strip' 'staticlibs') build() { From b4c54f57f7c177c880a84b9df87306b465b2354e Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Sun, 14 Dec 2014 16:23:41 -0500 Subject: [PATCH 0165/2060] Added libraries to KiCad package. --- mingw-w64-kicad-git/PKGBUILD | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/mingw-w64-kicad-git/PKGBUILD b/mingw-w64-kicad-git/PKGBUILD index 1502d2d921..6dcb6e5336 100644 --- a/mingw-w64-kicad-git/PKGBUILD +++ b/mingw-w64-kicad-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=kicad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r6803.0561940 +pkgver=r6886.46a5f14 pkgrel=1 pkgdesc="Software for the creation of electronic schematic diagrams and printed circuit board artwork" arch=('any') @@ -24,9 +24,11 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "doxygen") source=("${_realname}"::"git+https://github.com/KiCad/kicad-source-mirror.git" "${_realname}-docs"::"bzr+https://code.launchpad.net/~kicad-developers/kicad/doc" + "${_realname}-libs"::"git+https://github.com/KiCad/kicad-library.git" ) md5sums=('SKIP' 'SKIP' + 'SKIP' ) pkgver() { @@ -56,12 +58,23 @@ build() { cd ../ # Configure the documentation installation build. - [[ -d build-${MINGW_CHOST}-docs ]] && rm -r build-${MINGW_CHOST}-docs - mkdir build-${MINGW_CHOST}-docs && cd build-${MINGW_CHOST}-docs + [[ -d build-docs ]] && rm -r build-docs + mkdir build-docs && cd build-docs ${MINGW_PREFIX}/bin/cmake.exe \ -G "MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ ../${_realname}-docs + + cd ../ + + # Configure the library installation build. + [[ -d build-libs ]] && rm -r build-libs + mkdir build-libs && cd build-libs + ${MINGW_PREFIX}/bin/cmake.exe \ + -G "MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + ../${_realname}-libs + } package() { @@ -72,6 +85,12 @@ package() { cd ../ # Install KiCad documentation. - cd build-${MINGW_CHOST}-docs + cd build-docs + make install + + cd ../ + + # Install KiCad libraries. + cd build-libs make install } From 6f440f7673f251fa0990268e41f3b34532ff36a5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 14 Dec 2014 23:42:48 +0300 Subject: [PATCH 0166/2060] glib2: Update to 2.42.1 --- .../0025-glib-update-valgrind-h-stdint.patch | 10 ---------- mingw-w64-glib2/0026-define-HAVE_IF_NAMETOINDEX.patch | 11 +++++++++++ mingw-w64-glib2/PKGBUILD | 11 ++++++----- 3 files changed, 17 insertions(+), 15 deletions(-) delete mode 100644 mingw-w64-glib2/0025-glib-update-valgrind-h-stdint.patch create mode 100644 mingw-w64-glib2/0026-define-HAVE_IF_NAMETOINDEX.patch diff --git a/mingw-w64-glib2/0025-glib-update-valgrind-h-stdint.patch b/mingw-w64-glib2/0025-glib-update-valgrind-h-stdint.patch deleted file mode 100644 index 17f3eb2e7e..0000000000 --- a/mingw-w64-glib2/0025-glib-update-valgrind-h-stdint.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- glib-2.40.0/glib/valgrind.h.old 2014-05-16 09:19:32.211000000 -0400 -+++ glib-2.40.0/glib/valgrind.h 2014-05-16 09:19:50.043000000 -0400 -@@ -93,6 +93,7 @@ - - - #include -+#include - - /* Nb: this file might be included in a file compiled with -ansi. So - we can't use C++ style "//" comments nor the "asm" keyword (instead diff --git a/mingw-w64-glib2/0026-define-HAVE_IF_NAMETOINDEX.patch b/mingw-w64-glib2/0026-define-HAVE_IF_NAMETOINDEX.patch new file mode 100644 index 0000000000..84f3c37b41 --- /dev/null +++ b/mingw-w64-glib2/0026-define-HAVE_IF_NAMETOINDEX.patch @@ -0,0 +1,11 @@ +--- glib-2.42.1/config.h.in.orig 2014-12-14 22:39:09.000000000 +0300 ++++ glib-2.42.1/config.h.in 2014-12-14 22:39:17.174400000 +0300 +@@ -193,7 +193,7 @@ + #undef HAVE_IF_INDEXTONAME + + /* Define to 1 if you have the `if_nametoindex' function. */ +-#undef HAVE_IF_NAMETOINDEX ++#define HAVE_IF_NAMETOINDEX 1 + + /* Define to 1 if you have the `inotify_init1' function. */ + #undef HAVE_INOTIFY_INIT1 diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index f1692aca2a..104ae98b63 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -2,7 +2,7 @@ _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.42.0 +pkgver=2.42.1 pkgrel=1 url="http://www.gtk.org/" arch=('any') @@ -25,8 +25,8 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.t 0021-use-64bit-stat-for-localfile-size-calc.all.patch 0023-print-in-binary-more-for-testing.all.patch 0024-return-actually-written-data-in-printf.all.patch - 0025-glib-update-valgrind-h-stdint.patch) -md5sums=('71af99768063ac24033ac738e2832740' + 0026-define-HAVE_IF_NAMETOINDEX.patch) +md5sums=('89c4119e50e767d3532158605ee9121a' '98c7778b5e8a30dbcdb86bcd15f9c11d' '6eb9d56028ea3bbec3d053254a00a04b' '46969e815f3ab19582ba33667a52048b' @@ -36,7 +36,7 @@ md5sums=('71af99768063ac24033ac738e2832740' '952989e534235721d30b9ee3d89cc225' '217a997ede1b93ac06f96ed869b74378' '500f39baea98d98e4a2f877ad56f55a5' - 'c5f7671c710678473b3e6209d57710b1') + 'de51a19cc5bfd0d54a59e9ac36cbafa2') prepare() { cd "$srcdir/glib-$pkgver" @@ -50,9 +50,10 @@ prepare() { patch -Np1 -i "$srcdir/0021-use-64bit-stat-for-localfile-size-calc.all.patch" patch -Np1 -i "$srcdir/0023-print-in-binary-more-for-testing.all.patch" patch -Np1 -i "$srcdir/0024-return-actually-written-data-in-printf.all.patch" - patch -Np1 -i "$srcdir/0025-glib-update-valgrind-h-stdint.patch" NOCONFIGURE=1 ./autogen.sh + + patch -Np1 -i "$srcdir/0026-define-HAVE_IF_NAMETOINDEX.patch" } build() From eace2313f361a5aab3bb8271ad8782d622633878 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 15 Dec 2014 00:40:32 +0300 Subject: [PATCH 0167/2060] enchant: Disable aspell backend temporary. Use another relocate patch. --- .../01-not-use-hardcoded-paths.patch | 185 ++++++++++++++++++ mingw-w64-enchant/PKGBUILD | 21 +- 2 files changed, 198 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-enchant/01-not-use-hardcoded-paths.patch diff --git a/mingw-w64-enchant/01-not-use-hardcoded-paths.patch b/mingw-w64-enchant/01-not-use-hardcoded-paths.patch new file mode 100644 index 0000000000..5f77e41665 --- /dev/null +++ b/mingw-w64-enchant/01-not-use-hardcoded-paths.patch @@ -0,0 +1,185 @@ +diff -Naur enchant-1.6.0-orig/src/aspell/aspell_provider.c enchant-1.6.0-rel/src/aspell/aspell_provider.c +--- enchant-1.6.0-orig/src/aspell/aspell_provider.c 2010-04-01 23:53:37.000000000 +0300 ++++ enchant-1.6.0-rel/src/aspell/aspell_provider.c 2014-12-14 23:51:20.883200000 +0300 +@@ -405,6 +405,7 @@ + HMODULE aspell_module = NULL; + char* szModule; + ++#ifndef __MINGW32__ + /* first try load from registry path */ + szModule = enchant_get_registry_value ("Aspell", "Module"); + if(szModule) +@@ -426,6 +427,7 @@ + g_free(wszDirectory); + } + } ++#endif + + if (aspell_module == NULL) + { +diff -Naur enchant-1.6.0-orig/src/enchant.c enchant-1.6.0-rel/src/enchant.c +--- enchant-1.6.0-orig/src/enchant.c 2014-12-12 16:54:56.911400000 +0300 ++++ enchant-1.6.0-rel/src/enchant.c 2014-12-14 23:56:15.364400000 +0300 +@@ -143,11 +143,13 @@ + { + GSList *dirs = NULL; + const char* home_dir; ++#ifndef __MINGW32__ + char *tmp; + + tmp = enchant_get_registry_value_ex (1, "Config", "Home_Dir"); + if (tmp) + dirs = enchant_slist_append_unique_path (dirs, tmp); ++#endif + + home_dir = g_get_home_dir (); + if (home_dir) +@@ -210,6 +212,7 @@ + char * module_dir = NULL; + char * prefix = NULL; + ++#ifndef __MINGW32__ + { + char* user_module_dir; + +@@ -217,6 +220,7 @@ + if (user_module_dir) + module_dirs = enchant_slist_append_unique_path (module_dirs, user_module_dir); + } ++#endif + + #ifdef XP_TARGET_COCOA + module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup ([[EnchantResourceProvider instance] moduleFolder])); +@@ -238,7 +242,7 @@ + if (module_dir) + module_dirs = enchant_slist_append_unique_path (module_dirs, module_dir); + +-#if defined(ENCHANT_GLOBAL_MODULE_DIR) ++#if defined(ENCHANT_GLOBAL_MODULE_DIR) && !defined(__MINGW32__) + module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup (ENCHANT_GLOBAL_MODULE_DIR)); + #else + /* Dynamically locate library and search for modules relative to it. */ +@@ -273,10 +277,12 @@ + conf_dirs = enchant_slist_append_unique_path (conf_dirs, g_strdup ([[EnchantResourceProvider instance] configFolder])); + #endif + ++#ifndef __MINGW32__ + /* Look for explicitly set registry values */ + ordering_dir = enchant_get_registry_value_ex (0, "Config", "Data_Dir"); + if (ordering_dir) + conf_dirs = enchant_slist_append_unique_path (conf_dirs, ordering_dir); ++#endif + + /* Dynamically locate library and search for files relative to it. */ + prefix = enchant_get_prefix_dir(); +@@ -287,7 +293,7 @@ + conf_dirs = enchant_slist_append_unique_path (conf_dirs, ordering_dir); + } + +-#if defined(ENCHANT_GLOBAL_ORDERING) ++#if defined(ENCHANT_GLOBAL_ORDERING) && !defined(__MINGW32__) + conf_dirs = enchant_slist_append_unique_path (conf_dirs, g_strdup (ENCHANT_GLOBAL_ORDERING)); + #endif + +@@ -346,13 +352,17 @@ + enchant_get_user_config_dirs (void) + { + GSList *dirs; ++#ifndef __MINGW32__ + char* user_config; ++#endif + + dirs = enchant_get_user_dirs(); + ++#ifndef __MINGW32__ + user_config = enchant_get_registry_value_ex (1, "Config", "Data_Dir"); + if (user_config) + dirs = enchant_slist_prepend_unique_path (dirs, user_config); ++#endif + + return dirs; + } +@@ -2271,7 +2281,7 @@ + } + #endif + +-#if defined(ENCHANT_PREFIX_DIR) ++#if defined(ENCHANT_PREFIX_DIR) && !defined(__MINGW32__) + if (!prefix) { + prefix = g_strdup (ENCHANT_PREFIX_DIR); + } +diff -Naur enchant-1.6.0-orig/src/ispell/ispell_checker.cpp enchant-1.6.0-rel/src/ispell/ispell_checker.cpp +--- enchant-1.6.0-orig/src/ispell/ispell_checker.cpp 2010-04-01 23:53:37.000000000 +0300 ++++ enchant-1.6.0-rel/src/ispell/ispell_checker.cpp 2014-12-14 23:58:50.986000000 +0300 +@@ -309,10 +309,12 @@ + #ifndef XP_TARGET_COCOA + char * ispell_prefix = NULL; + ++#ifndef __MINGW32__ + /* Look for explicitly set registry values */ + ispell_prefix = enchant_get_registry_value ("Ispell", "Data_Dir"); + if (ispell_prefix) + dirs = g_slist_append (dirs, ispell_prefix); ++#endif + + /* Dynamically locate library and search for modules relative to it. */ + char * enchant_prefix = enchant_get_prefix_dir(); +@@ -324,7 +326,7 @@ + } + #endif + +-#ifdef ENCHANT_ISPELL_DICT_DIR ++#if defined(ENCHANT_ISPELL_DICT_DIR) && !defined(__MINGW32__) + dirs = g_slist_append (dirs, g_strdup (ENCHANT_ISPELL_DICT_DIR)); + #endif + +diff -Naur enchant-1.6.0-orig/src/myspell/myspell_checker.cpp enchant-1.6.0-rel/src/myspell/myspell_checker.cpp +--- enchant-1.6.0-orig/src/myspell/myspell_checker.cpp 2010-04-01 23:53:37.000000000 +0300 ++++ enchant-1.6.0-rel/src/myspell/myspell_checker.cpp 2014-12-14 23:59:57.301600000 +0300 +@@ -257,10 +257,12 @@ + #ifndef XP_TARGET_COCOA + char * myspell_prefix = NULL; + ++#ifndef __MINGW32__ + /* Look for explicitly set registry values */ + myspell_prefix = enchant_get_registry_value ("Myspell", "Data_Dir"); + if (myspell_prefix) + dirs = g_slist_append (dirs, myspell_prefix); ++#endif + + /* Dynamically locate library and search for modules relative to it. */ + char * enchant_prefix = enchant_get_prefix_dir(); +@@ -272,7 +274,7 @@ + } + #endif + +-#ifdef ENCHANT_MYSPELL_DICT_DIR ++#if defined(ENCHANT_MYSPELL_DICT_DIR) && !defined(__MINGW32__) + dirs = g_slist_append (dirs, g_strdup (ENCHANT_MYSPELL_DICT_DIR)); + #endif + +diff -Naur enchant-1.6.0-orig/src/uspell/uspell_provider.cpp enchant-1.6.0-rel/src/uspell/uspell_provider.cpp +--- enchant-1.6.0-orig/src/uspell/uspell_provider.cpp 2010-04-01 23:53:37.000000000 +0300 ++++ enchant-1.6.0-rel/src/uspell/uspell_provider.cpp 2014-12-15 00:01:43.625600000 +0300 +@@ -85,10 +85,12 @@ + #ifndef XP_TARGET_COCOA + char * uspell_prefix = NULL; + ++#ifndef __MINGW32__ + /* Look for explicitly set registry values */ + uspell_prefix = enchant_get_registry_value ("Uspell", "Data_Dir"); + if (uspell_prefix) + dirs = g_slist_append (dirs, uspell_prefix); ++#endif + + /* Dynamically locate library and search for modules relative to it. */ + char * enchant_prefix = enchant_get_prefix_dir(); +@@ -100,7 +102,7 @@ + } + #endif + +-#ifdef ENCHANT_USPELL_DICT_DIR ++#if defined(ENCHANT_USPELL_DICT_DIR) && !defined(__MINGW32__) + dirs = g_slist_append (dirs, g_strdup (ENCHANT_USPELL_DICT_DIR)); + #endif + diff --git a/mingw-w64-enchant/PKGBUILD b/mingw-w64-enchant/PKGBUILD index 418da4906a..7c23d49d92 100644 --- a/mingw-w64-enchant/PKGBUILD +++ b/mingw-w64-enchant/PKGBUILD @@ -3,7 +3,7 @@ _realname=enchant pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.0 -pkgrel=5 +pkgrel=6 pkgdesc="Enchanting Spell Checking Library (mingw-w64)" arch=('any') url="http://www.abisource.com/" @@ -11,17 +11,22 @@ license=("LGPL-2.1+") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-glib2 - ${MINGW_PACKAGE_PREFIX}-aspell + #${MINGW_PACKAGE_PREFIX}-aspell ${MINGW_PACKAGE_PREFIX}-hunspell) options=('!libtool' 'strip' '!debug' '!makeflags') source=("http://www.abisource.com/downloads/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz" - 01-relocate.patch) + 01-relocate.patch + 01-not-use-hardcoded-paths.patch) md5sums=('de11011aff801dc61042828041fb59c7' - 'd0c6e73ddd269081725ad05fd6b529c1') + 'd0c6e73ddd269081725ad05fd6b529c1' + '4fc6176b94518ac1307e4a2173dc64d4') prepare() { cd "$srcdir/${_realname}-$pkgver" - patch -p1 -i ${srcdir}/01-relocate.patch + # True relocate patch + #patch -p1 -i ${srcdir}/01-relocate.patch + # Use instead relocate patch + patch -p1 -i ${srcdir}/01-not-use-hardcoded-paths.patch autoreconf -fiv } @@ -38,7 +43,7 @@ build() { --prefix=${MINGW_PREFIX} \ --enable-ispell \ --enable-myspell \ - --enable-aspell \ + --disable-aspell \ --with-system-myspell \ --with-aspell-prefix=${MINGW_PREFIX} \ --disable-voikko \ @@ -46,12 +51,12 @@ build() { --disable-hspell \ --disable-zemberek - MSYS2_ARG_CONV_EXCL="-DENCHANT_USPELL_DICT_DIR=;-DENCHANT_MYSPELL_DICT_DIR=;-DENCHANT_ISPELL_DICT_DIR=;-DENCHANT_PREFIX_DIR=;-DENCHANT_GLOBAL_MODULE_DIR=;-DENCHANT_GLOBAL_ORDERING=;-DENCHANT_BIN_DIR=" \ + # MSYS2_ARG_CONV_EXCL="-DENCHANT_USPELL_DICT_DIR=;-DENCHANT_MYSPELL_DICT_DIR=;-DENCHANT_ISPELL_DICT_DIR=;-DENCHANT_PREFIX_DIR=;-DENCHANT_GLOBAL_MODULE_DIR=;-DENCHANT_GLOBAL_ORDERING=;-DENCHANT_BIN_DIR=" make } package() { cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - MSYS2_ARG_CONV_EXCL="-DENCHANT_USPELL_DICT_DIR=;-DENCHANT_MYSPELL_DICT_DIR=;-DENCHANT_ISPELL_DICT_DIR=;-DENCHANT_PREFIX_DIR=;-DENCHANT_GLOBAL_MODULE_DIR=;-DENCHANT_GLOBAL_ORDERING=" \ + # MSYS2_ARG_CONV_EXCL="-DENCHANT_USPELL_DICT_DIR=;-DENCHANT_MYSPELL_DICT_DIR=;-DENCHANT_ISPELL_DICT_DIR=;-DENCHANT_PREFIX_DIR=;-DENCHANT_GLOBAL_MODULE_DIR=;-DENCHANT_GLOBAL_ORDERING=;-DENCHANT_BIN_DIR=" make DESTDIR="${pkgdir}" install } From fe1c58d6baf5ca98cf6697a41e8e98349a7e81d8 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 14 Dec 2014 22:26:47 +0000 Subject: [PATCH 0168/2060] qt5-static: Fix CMake for static usage Based on Stephen Kelly's reverted commit: ae6d4c77eb338be3f2189bfaffdcd3c38cc57333 https://codereview.qt-project.org/#/c/33193/ which was reverted because INTERFACE_LINK_LIBRARIES 'expects a list of IMPORTED targets or full paths to libraries'. As far as I can determine, passing linker flags this way is a supported use-case (and AFAICT the only way to pass linker flags). Further, it seems that it works fine. The CMake developers plan to un-tangle link libraries from linker flags at some point: http://public.kitware.com/pipermail/cmake-developers/2014-June/022281.html and when that happens we should apply Stephen's revert commit: 102e1822ffcdc9954d3c698f863734a8083e349c https://codereview.qt-project.org/#/c/37307/ .. and following the suggestion in the commit message, make changes to qmake so that it outputs the full path to the libs in the prl files (QMAKE_PRL_LIBS_FOR_CMAKE) --- ...-to-use-static-builds-of-Qt-with-CMa.patch | 61 +++++++++++++++++++ ...ted-libraries-in-prl-files-for-CMake.patch | 32 ++++++++++ ...ate_cmake-prl-file-has-no-lib-prefix.patch | 13 ++++ mingw-w64-qt5-static/PKGBUILD | 22 +++++-- 4 files changed, 122 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-qt5-static/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch create mode 100644 mingw-w64-qt5-static/0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch create mode 100644 mingw-w64-qt5-static/0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch diff --git a/mingw-w64-qt5-static/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch b/mingw-w64-qt5-static/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch new file mode 100644 index 0000000000..90fa466b91 --- /dev/null +++ b/mingw-w64-qt5-static/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch @@ -0,0 +1,61 @@ +diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 10:34:57.668743500 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 14:40:54.557845500 +0000 +@@ -57,13 +57,13 @@ + !!ENDIF + _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) + set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES +- \"INTERFACE_LINK_LIBRARIES\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" ++ \"INTERFACE_LINK_LIBRARIES\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" + \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} + !!IF !isEmpty(CMAKE_LIB_SONAME) + \"IMPORTED_SONAME_${Configuration}\" \"$${CMAKE_LIB_SONAME}\" + !!ENDIF + # For backward compatibility with CMake < 2.8.12 +- \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" ++ \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" + ) + + !!IF !isEmpty(CMAKE_WINDOWS_BUILD) +@@ -197,6 +197,41 @@ + !!IF !isEmpty(CMAKE_STATIC_TYPE) + add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") ++# Excerpt from: ++ ++# From ae6d4c77eb338be3f2189bfaffdcd3c38cc57333 Mon Sep 17 00:00:00 2001 ++# From: Stephen Kelly ++# Date: Tue, 21 Aug 2012 13:12:57 +0200 ++# Subject: [PATCH] Make it possible to use static builds of Qt with CMake. ++# ++# Parse the prl files generated by qmake to get the link dependencies. They ++# contain all the information we need, and they are the only location with ++# all the right information. ++macro(macro_process_prl_file prl_file_location Configuration) ++ if (EXISTS \"${prl_file_location}\") ++ file(STRINGS \"${prl_file_location}\" prl_strings REGEX \"QMAKE_PRL_LIBS\") ++ string(REGEX REPLACE \"QMAKE_PRL_LIBS *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings} ) ++ string(STRIP ${static_depends} static_depends) ++ if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) ++ set(_list_sep \";\") ++ endif() ++ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES \"${_list_sep}${static_depends}\") ++ endif() ++endmacro() ++ ++!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) ++ macro_process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG) ++!!ELSE ++ macro_process_prl_file(\"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG) ++!!ENDIF ++!!ELSE ++!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) ++ macro_process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE) ++!!ELSE ++ macro_process_prl_file(\"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE) ++!!ENDIF ++ ++# Excerpt from: end + !!ELSE + add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) + !!ENDIF diff --git a/mingw-w64-qt5-static/0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch b/mingw-w64-qt5-static/0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch new file mode 100644 index 0000000000..b84c06071b --- /dev/null +++ b/mingw-w64-qt5-static/0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch @@ -0,0 +1,32 @@ +diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 15:16:58.576095000 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-14 10:10:27.960078400 +0000 +@@ -209,9 +209,8 @@ + # all the right information. + macro(macro_process_prl_file prl_file_location Configuration) + if (EXISTS \"${prl_file_location}\") +- file(STRINGS \"${prl_file_location}\" prl_strings REGEX \"QMAKE_PRL_LIBS\") +- string(REGEX REPLACE \"QMAKE_PRL_LIBS *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings} ) +- string(STRIP ${static_depends} static_depends) ++ file(STRINGS \"${prl_file_location}\" prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE\") ++ string(REGEX REPLACE \"QMAKE_PRL_LIBS_FOR_CMAKE *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings} ) + if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) + set(_list_sep \";\") + endif() +diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/qmake/generators/makefile.cpp qt-everywhere-opensource-src-5.4.0/qtbase/qmake/generators/makefile.cpp +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/qmake/generators/makefile.cpp 2014-12-13 15:16:49.416878800 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/qmake/generators/makefile.cpp 2014-12-14 10:11:38.093945800 +0000 +@@ -1009,6 +1009,13 @@ + for (ProStringList::Iterator it = libs.begin(); it != libs.end(); ++it) + t << project->values((*it).toKey()).join(' ').replace('\\', "\\\\") << " "; + t << endl; ++ t << "QMAKE_PRL_LIBS_FOR_CMAKE = "; ++ QString sep; ++ for (ProStringList::Iterator it = libs.begin(); it != libs.end(); ++it) { ++ t << sep << project->values((*it).toKey()).join(';').replace('\\', "\\\\"); ++ sep = ';'; ++ } ++ t << endl; + } + } + diff --git a/mingw-w64-qt5-static/0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch b/mingw-w64-qt5-static/0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch new file mode 100644 index 0000000000..a7bd7384c1 --- /dev/null +++ b/mingw-w64-qt5-static/0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch @@ -0,0 +1,13 @@ +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/create_cmake.prf.orig 2014-12-14 20:11:38.710428500 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/create_cmake.prf 2014-12-14 22:16:48.451709600 +0000 +@@ -214,8 +214,8 @@ + CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.a + CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a + +- CMAKE_PRL_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.prl +- CMAKE_PRL_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.prl ++ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl ++ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl + } else { + isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = a + CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.$${QMAKE_EXTENSION_IMPORTLIB} diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index f1140080da..b00fd6e504 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -75,7 +75,7 @@ fi _opengl=desktop _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.4.0-rc +_ver_base=5.4.0 pkgver=${_ver_base//-/} pkgrel=1 arch=('any') @@ -133,8 +133,8 @@ groups=("${MINGW_PACKAGE_PREFIX}-qt" "${MINGW_PACKAGE_PREFIX}-qt5") options=('!strip' 'staticlibs' 'ccache') _pkgfqn="qt-everywhere-opensource-src-${_ver_base}" noextract=(${_pkgfqn}.tar.xz) -source=(http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ver_base//RC/rc}/single/${_pkgfqn}.tar.xz - #http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${_ver_base}/single/${_pkgfqn}.tar.xz +source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ver_base//RC/rc}/single/${_pkgfqn}.tar.xz + http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${_ver_base}/single/${_pkgfqn}.tar.xz #http://download.qt-project.org/snapshots/qt/${pkgver%.*}/${_ver_base}/2014-05-07_85/src/qt-everywhere-opensource-src-${_ver_base}.tar.xz #"qt3d"::"git://gitorious.org/qt/qt3d.git" 0001-Add-link-time-optimization-support-for-Clang-GCC-and.patch @@ -172,8 +172,11 @@ source=(http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_v 0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch 0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch 0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch - 0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch) -md5sums=('3d371bbc5598af620723a594f9f1a774' + 0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch + 0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch + 0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch + 0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch) +md5sums=('21843b00ecde8956217faab391bc007b' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' '53edcf1df69ae8134a196292447ddaa3' @@ -209,7 +212,10 @@ md5sums=('3d371bbc5598af620723a594f9f1a774' '47e70b9a063aa99aba0096007ed5b83d' '3049f9e43e24f7eaafb4659c72ca4789' 'cbef002e6f4b0d043ca6a6e9d60ceca5' - '8749d4fd65a86a24fafba23067a2e086') + '8749d4fd65a86a24fafba23067a2e086' + 'd8b0bad5454a51a2964887a1b566e892' + '92fb1954fe3ab91d99a09c7f8a878218' + 'ab2cac300aa7a908ea8840649f0b51fc') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -318,6 +324,10 @@ prepare() { patch -p1 -i ${srcdir}/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch patch -p1 -i ${srcdir}/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch + patch -p1 -i ${srcdir}/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch + patch -p1 -i ${srcdir}/0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch + patch -p1 -i ${srcdir}/0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch + # See: https://bugreports.qt-project.org/browse/QTBUG-37902 # _ver_num=${_ver_base%%-*} # sed -i "s/^MODULE_VERSION = .*$/MODULE_VERSION = ${_ver_num}/g" qtenginio/.qmake.conf From 0c9eadf6610fb994278a07c416e67ac2a77d8766 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 14 Dec 2014 23:26:41 +0000 Subject: [PATCH 0169/2060] qt5-static: Remove an ELSE I left in by mistake .. which meant that only the debug prl files were used and hence only debug builds would read the libs/linker flags from the prl files. --- ...-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mingw-w64-qt5-static/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch b/mingw-w64-qt5-static/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch index 90fa466b91..b45c4b454c 100644 --- a/mingw-w64-qt5-static/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch +++ b/mingw-w64-qt5-static/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch @@ -17,7 +17,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c ) !!IF !isEmpty(CMAKE_WINDOWS_BUILD) -@@ -197,6 +197,41 @@ +@@ -197,6 +197,40 @@ !!IF !isEmpty(CMAKE_STATIC_TYPE) add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") @@ -48,7 +48,6 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c +!!ELSE + macro_process_prl_file(\"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG) +!!ENDIF -+!!ELSE +!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) + macro_process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE) +!!ELSE From 0b495b48268178e03c4f2f27bc57533c6a8a8157 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 15 Dec 2014 10:48:08 +0300 Subject: [PATCH 0170/2060] gtk3: Update to 3.14.6 --- mingw-w64-gtk3/0055-skip-testsuite.all.patch | 8 ++++---- mingw-w64-gtk3/PKGBUILD | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mingw-w64-gtk3/0055-skip-testsuite.all.patch b/mingw-w64-gtk3/0055-skip-testsuite.all.patch index e57b058418..c3e75ff9d4 100644 --- a/mingw-w64-gtk3/0055-skip-testsuite.all.patch +++ b/mingw-w64-gtk3/0055-skip-testsuite.all.patch @@ -1,5 +1,5 @@ ---- Makefile.am.orig 2014-10-24 21:22:13.559889300 +0200 -+++ Makefile.am 2014-10-24 21:22:37.105175200 +0200 +--- a/Makefile.am.orig 2014-10-24 21:22:13.559889300 +0200 ++++ b/Makefile.am 2014-10-24 21:22:37.105175200 +0200 @@ -1,7 +1,7 @@ ## Makefile.am for GTK+ include $(top_srcdir)/Makefile.decl @@ -9,8 +9,8 @@ SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} ---- Makefile.in.orig 2014-10-24 21:22:20.402924300 +0200 -+++ Makefile.in 2014-10-24 21:22:52.339700600 +0200 +--- a/Makefile.in.orig 2014-10-24 21:22:20.402924300 +0200 ++++ b/Makefile.in 2014-10-24 21:22:52.339700600 +0200 @@ -540,7 +540,7 @@ XVFB_START = \ || { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } \ && DISPLAY=:$$XID && export DISPLAY diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 0f0f2d68ef..f43471eeaa 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -2,7 +2,7 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.4 +pkgver=3.14.6 pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') @@ -33,13 +33,13 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0054-no-transparency-for-children.all.patch 0055-skip-testsuite.all.patch Make-reftest-plugins-W32-compatible.patch) -md5sums=('103a3521cf792f2ee12d0d1349d79288' +md5sums=('34340b3ede9c1cfee3c6e2ec5f6eccc5' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' '397bf8001d3da75e06b5794e378ae25f' 'ad383a497a9134355e0a549f844c3a33' '31d098e6856ddc8dde7259ae572f8bf1' - 'b52eab2ba0da33ae55050b0a68cc996f' + '751ee83452f3e06a460a8867f8e479b8' '864d4b2cd6f72115cc78a393ccd96b47') prepare() { @@ -49,7 +49,7 @@ prepare() { patch -Np1 -i "${srcdir}"/0035-enable-rgba-w32-windows.all.patch patch -Np1 -i "${srcdir}"/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch patch -Np1 -i "${srcdir}"/0054-no-transparency-for-children.all.patch - patch -N < "${srcdir}"/0055-skip-testsuite.all.patch + patch -Np1 -i "${srcdir}"/0055-skip-testsuite.all.patch #patch -Np1 -i "${srcdir}"/Make-reftest-plugins-W32-compatible.patch autoreconf -i @@ -74,7 +74,7 @@ build() { } package() { - export MSYS2_ARG_CONV_EXCL="-//OASIS" + #export MSYS2_ARG_CONV_EXCL="-//OASIS" cd "${srcdir}/${CHOST}" make -j1 DESTDIR="$pkgdir" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' -o -name '*.manifest' | xargs -rtl1 rm From dad6d1b3e14ccb858714e4bf6887d60aadc4cdb9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 15 Dec 2014 10:49:01 +0300 Subject: [PATCH 0171/2060] kicad-git: Update to git SHA [91c0868] --- mingw-w64-kicad-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-kicad-git/PKGBUILD b/mingw-w64-kicad-git/PKGBUILD index 6dcb6e5336..1a26f125f6 100644 --- a/mingw-w64-kicad-git/PKGBUILD +++ b/mingw-w64-kicad-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=kicad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r6886.46a5f14 +pkgver=r6887.91c0868 pkgrel=1 pkgdesc="Software for the creation of electronic schematic diagrams and printed circuit board artwork" arch=('any') From 6c13b48bdb5e873191cf2232082589fe0dfa993f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 15 Dec 2014 11:19:10 +0300 Subject: [PATCH 0172/2060] python-setuptools: Update to 8.0.2 --- mingw-w64-python-setuptools/PKGBUILD | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index f9ab4413dd..f211b39272 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -5,10 +5,9 @@ _realname=setuptools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.4 -#pkgver=7.0 -#pkgrel=1 -pkgver=5.4.1 -pkgrel=2 +pkgver=8.0.2 +#pkgver=5.4.1 +pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" arch=('any') license=('PSF') @@ -19,7 +18,7 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('113e5688a7fab03004f7b793aa2f718f949515d0' +sha1sums=('bacdf139b210ea6c16ffa98eefa2eb8074dc7869' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' @@ -30,7 +29,7 @@ prepare() { patch -p1 -i ${srcdir}/0001-mingw-python-fix.patch patch -p1 -i ${srcdir}/0002-Allow-usr-bin-env-in-script.patch patch -p1 -i ${srcdir}/0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch - if [ "${pkgver}" = "7.0" ]; then + if [ $(vercmp $2 7.0) -gt 0 ]; then patch -p1 -i ${srcdir}/0004-dont-execute-msvc.patch fi From 2a2e2cfdd46ea9051310d884cde6b47ae6296e75 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 15 Dec 2014 11:35:04 +0300 Subject: [PATCH 0173/2060] mpfr: Update to 3.1.2 patch level 11 --- mingw-w64-mpfr/PKGBUILD | 5 +- ...r-3.1.2-p10.patch => mpfr-3.1.2-p11.patch} | 49 +++++++++++++++++++ 2 files changed, 51 insertions(+), 3 deletions(-) rename mingw-w64-mpfr/{mpfr-3.1.2-p10.patch => mpfr-3.1.2-p11.patch} (96%) diff --git a/mingw-w64-mpfr/PKGBUILD b/mingw-w64-mpfr/PKGBUILD index b7b66258d9..000b628a83 100644 --- a/mingw-w64-mpfr/PKGBUILD +++ b/mingw-w64-mpfr/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=mpfr - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") _pkgver=3.1.2 -_patchlevel=p10 +_patchlevel=p11 pkgver=${_pkgver}.${_patchlevel} pkgrel=1 pkgdesc="Multiple-precision floating-point library" @@ -19,7 +18,7 @@ source=(http://www.mpfr.org/mpfr-current/mpfr-${_pkgver}.tar.xz{,.asc} mpfr-${_pkgver}-${_patchlevel}.patch) md5sums=('e3d203d188b8fe60bb6578dd3152e05c' 'SKIP' - '43121795ef12f1b29ada4508d9186ea9') + '9f96a5c7cac1d6cd983ed9cf7d997074') prepare() { cd "${srcdir}/${_realname}-${_pkgver}" diff --git a/mingw-w64-mpfr/mpfr-3.1.2-p10.patch b/mingw-w64-mpfr/mpfr-3.1.2-p11.patch similarity index 96% rename from mingw-w64-mpfr/mpfr-3.1.2-p10.patch rename to mingw-w64-mpfr/mpfr-3.1.2-p11.patch index d42e62bf1b..cbfe0f5337 100644 --- a/mingw-w64-mpfr/mpfr-3.1.2-p10.patch +++ b/mingw-w64-mpfr/mpfr-3.1.2-p11.patch @@ -1575,3 +1575,52 @@ diff -Naurd mpfr-3.1.2-a/tests/tsprintf.c mpfr-3.1.2-b/tests/tsprintf.c #if defined(HAVE_LOCALE_H) && defined(HAVE_SETLOCALE) locale_da_DK (); +diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES +--- mpfr-3.1.2-a/PATCHES 2014-12-04 01:41:57.131789485 +0000 ++++ mpfr-3.1.2-b/PATCHES 2014-12-04 01:41:57.339791833 +0000 +@@ -0,0 +1 @@ ++strtofr +diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION +--- mpfr-3.1.2-a/VERSION 2014-12-04 01:41:57.127789443 +0000 ++++ mpfr-3.1.2-b/VERSION 2014-12-04 01:41:57.339791833 +0000 +@@ -1 +1 @@ +-3.1.2-p10 ++3.1.2-p11 +diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h +--- mpfr-3.1.2-a/src/mpfr.h 2014-12-04 01:41:57.127789443 +0000 ++++ mpfr-3.1.2-b/src/mpfr.h 2014-12-04 01:41:57.335791790 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 2 +-#define MPFR_VERSION_STRING "3.1.2-p10" ++#define MPFR_VERSION_STRING "3.1.2-p11" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.2-a/src/strtofr.c mpfr-3.1.2-b/src/strtofr.c +--- mpfr-3.1.2-a/src/strtofr.c 2013-03-13 15:37:32.000000000 +0000 ++++ mpfr-3.1.2-b/src/strtofr.c 2014-12-04 01:41:57.287791246 +0000 +@@ -473,8 +473,10 @@ + /* prec bits corresponds to ysize limbs */ + ysize_bits = ysize * GMP_NUMB_BITS; + /* and to ysize_bits >= prec > MPFR_PREC (x) bits */ +- y = MPFR_TMP_LIMBS_ALLOC (2 * ysize + 1); +- y += ysize; /* y has (ysize+1) allocated limbs */ ++ /* we need to allocate one more limb to work around bug ++ https://gmplib.org/list-archives/gmp-bugs/2013-December/003267.html */ ++ y = MPFR_TMP_LIMBS_ALLOC (2 * ysize + 2); ++ y += ysize; /* y has (ysize+2) allocated limbs */ + + /* pstr_size is the number of characters we read in pstr->mant + to have at least ysize full limbs. +diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c +--- mpfr-3.1.2-a/src/version.c 2014-12-04 01:41:57.131789485 +0000 ++++ mpfr-3.1.2-b/src/version.c 2014-12-04 01:41:57.339791833 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.2-p10"; ++ return "3.1.2-p11"; + } From 0caf145cad0355b9ae589bddf502c01b95e115ba Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 15 Dec 2014 10:01:31 +0000 Subject: [PATCH 0174/2060] qt5-static: Update pkgsums --- mingw-w64-qt5-static/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index b00fd6e504..bb5f5ac73a 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -213,7 +213,7 @@ md5sums=('21843b00ecde8956217faab391bc007b' '3049f9e43e24f7eaafb4659c72ca4789' 'cbef002e6f4b0d043ca6a6e9d60ceca5' '8749d4fd65a86a24fafba23067a2e086' - 'd8b0bad5454a51a2964887a1b566e892' + 'd66b2afce490ab8a82feae08c747e367' '92fb1954fe3ab91d99a09c7f8a878218' 'ab2cac300aa7a908ea8840649f0b51fc') From 65b420f81ee640cf82c3b2635aadcdfcd6881df0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 15 Dec 2014 23:03:59 +0300 Subject: [PATCH 0175/2060] glew: Don't have dependency from glu --- mingw-w64-glew/001-makefile.patch | 10 +++++++--- mingw-w64-glew/PKGBUILD | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/mingw-w64-glew/001-makefile.patch b/mingw-w64-glew/001-makefile.patch index 873d3b1ddb..11c575bea2 100644 --- a/mingw-w64-glew/001-makefile.patch +++ b/mingw-w64-glew/001-makefile.patch @@ -1,15 +1,19 @@ --- glew-1.11.0/Makefile.orig 2014-08-18 22:59:52.467400000 +0400 +++ glew-1.11.0/Makefile 2014-08-18 23:00:02.217400000 +0400 -@@ -42,9 +42,9 @@ +@@ -42,13 +42,9 @@ GLEW_PREFIX ?= /usr GLEW_DEST ?= /usr -BINDIR ?= $(GLEW_DEST)/bin -LIBDIR ?= $(GLEW_DEST)/lib -INCDIR ?= $(GLEW_DEST)/include/GL +- +-ifneq ($(GLEW_NO_GLU), -DGLEW_NO_GLU) +-LIBGLU = glu +-endif +BINDIR ?= $(GLEW_PREFIX)/bin +LIBDIR ?= $(GLEW_PREFIX)/lib +INCDIR ?= $(GLEW_PREFIX)/include/GL - ifneq ($(GLEW_NO_GLU), -DGLEW_NO_GLU) - LIBGLU = glu + DIST_NAME ?= glew-$(GLEW_VERSION) + DIST_SRC_ZIP ?= $(shell pwd)/$(DIST_NAME).zip diff --git a/mingw-w64-glew/PKGBUILD b/mingw-w64-glew/PKGBUILD index f5967dbcaa..8596fd7824 100644 --- a/mingw-w64-glew/PKGBUILD +++ b/mingw-w64-glew/PKGBUILD @@ -3,7 +3,7 @@ _realname=glew pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.11.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="GLEW, The OpenGL Extension Wrangler Library (mingw-w64)" depends=('') @@ -15,7 +15,7 @@ options=('strip' '!libtool' 'staticlibs') source=("http://sourceforge.net/projects/glew/files/glew/$pkgver/glew-$pkgver.tgz" 001-makefile.patch) md5sums=('f6d72c7426a5f66580ad09e50816450a' - '5a6948c7d8b8d01aa7b463d00fe9a989') + '0f4ea29bfa687508ebaaefd0de5199dc') prepare() { cd "$srcdir/glew-$pkgver" From ccdb9fef07f2032affc628cdb8fa1a56f32ae667 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 16 Dec 2014 00:51:16 +0300 Subject: [PATCH 0176/2060] cyrus-sasl: Paths relocate --- .../19-paths-relocation.patch | 746 ++++++++++++++++++ mingw-w64-cyrus-sasl/PKGBUILD | 18 +- 2 files changed, 755 insertions(+), 9 deletions(-) create mode 100644 mingw-w64-cyrus-sasl/19-paths-relocation.patch diff --git a/mingw-w64-cyrus-sasl/19-paths-relocation.patch b/mingw-w64-cyrus-sasl/19-paths-relocation.patch new file mode 100644 index 0000000000..f6d7b1ec10 --- /dev/null +++ b/mingw-w64-cyrus-sasl/19-paths-relocation.patch @@ -0,0 +1,746 @@ +diff -Naur cyrus-sasl-2.1.26-orig/config/varexpand.m4 cyrus-sasl-2.1.26/config/varexpand.m4 +--- cyrus-sasl-2.1.26-orig/config/varexpand.m4 1970-01-01 03:00:00.000000000 +0300 ++++ cyrus-sasl-2.1.26/config/varexpand.m4 2014-12-16 00:22:11.487600000 +0300 +@@ -0,0 +1,8 @@ ++AC_DEFUN([FULL_EXPAND_VARIABLE], [ ++ $1=$2 ++ $1=`( ++ test "x$prefix" = xNONE && prefix="$ac_default_prefix" ++ test "x$exec_prefix" = xNONE && exec_prefix="${prefix}" ++ eval echo \""[$]$1"\" ++ )` ++]) +diff -Naur cyrus-sasl-2.1.26-orig/configure.in cyrus-sasl-2.1.26/configure.in +--- cyrus-sasl-2.1.26-orig/configure.in 2014-12-15 23:10:23.125400000 +0300 ++++ cyrus-sasl-2.1.26/configure.in 2014-12-16 00:23:05.167200000 +0300 +@@ -1027,6 +1027,8 @@ + configdir=$plugindir:/etc/sasl2) + AC_DEFINE_UNQUOTED(CONFIGDIR, "$configdir", [Runtime config file location]) + AC_SUBST(configdir) ++FULL_EXPAND_VARIABLE(sasl_bindir, "$bindir") ++AC_DEFINE_UNQUOTED(BINDIR, "$sasl_bindir", [Runtime executables location]) + + dnl look for rc4 libraries. we accept the CMU one or one from openSSL + AC_ARG_WITH(rc4, [ --with-rc4 use internal rc4 routines [[yes]] ], +diff -Naur cyrus-sasl-2.1.26-orig/include/sasl.h cyrus-sasl-2.1.26/include/sasl.h +--- cyrus-sasl-2.1.26-orig/include/sasl.h 2014-12-15 23:10:22.454600000 +0300 ++++ cyrus-sasl-2.1.26/include/sasl.h 2014-12-15 23:43:10.374600000 +0300 +@@ -667,6 +667,8 @@ + #define SASL_PATH_TYPE_PLUGIN 0 + #define SASL_PATH_TYPE_CONFIG 1 + ++LIBSASL_API char * sasl_path_relocation(const char *from, const char *to); ++LIBSASL_API char * sasl_pathlist_relocation(const char *from_path, const char *to_path_list); + /* a simpler way to set plugin path or configuration file path + * without the need to set sasl_getpath_t callback. + * +diff -Naur cyrus-sasl-2.1.26-orig/lib/common.c cyrus-sasl-2.1.26/lib/common.c +--- cyrus-sasl-2.1.26-orig/lib/common.c 2014-12-15 23:10:22.953800000 +0300 ++++ cyrus-sasl-2.1.26/lib/common.c 2014-12-15 23:46:29.514400000 +0300 +@@ -59,6 +59,7 @@ + #include + #include + #include "saslint.h" ++#include "pathtools.h" + + #ifdef HAVE_UNISTD_H + #include +@@ -86,6 +87,45 @@ + #endif + + ++char * ++sasl_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++sasl_pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} ++ + static const char build_ident[] = "$Build: libsasl " PACKAGE "-" VERSION " $"; + + /* It turns out to be convenient to have a shared sasl_utils_t */ +@@ -1585,9 +1625,13 @@ + + #if defined(WIN32) + /* NB: On Windows platforms this value is always allocated */ ++# ifdef __MINGW32__ ++ default_plugin_path = sasl_path_relocation(BINDIR, PLUGINDIR); ++# else + default_plugin_path = _sasl_get_default_win_path(context, + SASL_PLUGIN_PATH_ATTR, + PLUGINDIR); ++# endif + #else + /* NB: On Unix platforms this value is never allocated */ + path = _sasl_get_default_unix_path(context, +@@ -1640,9 +1684,13 @@ + + #if defined(WIN32) + /* NB: On Windows platforms this value is always allocated */ ++# ifdef __MINGW32__ ++ default_plugin_path = sasl_pathlist_relocation(BINDIR, CONFIGDIR); ++# else + default_conf_path = _sasl_get_default_win_path(context, + SASL_CONF_PATH_ATTR, + CONFIGDIR); ++# endif + #else + /* NB: On Unix platforms this value is never allocated */ + path = _sasl_get_default_unix_path(context, +diff -Naur cyrus-sasl-2.1.26-orig/lib/Makefile.am cyrus-sasl-2.1.26/lib/Makefile.am +--- cyrus-sasl-2.1.26-orig/lib/Makefile.am 2014-12-15 23:10:23.094200000 +0300 ++++ cyrus-sasl-2.1.26/lib/Makefile.am 2014-12-15 23:24:10.600800000 +0300 +@@ -60,8 +60,8 @@ + DLOPEN_C = dlopen.c + endif + +-common_headers = saslint.h +-common_sources = auxprop.c canonusr.c checkpw.c client.c common.c config.c external.c md5.c saslutil.c server.c seterror.c $(DLOPEN_C) ../plugins/plugin_common.c ++common_headers = saslint.h pathtools.h ++common_sources = auxprop.c canonusr.c checkpw.c client.c common.c config.c external.c md5.c pathtools.c saslutil.c server.c seterror.c $(DLOPEN_C) ../plugins/plugin_common.c + + LTLIBOBJS = @LTLIBOBJS@ + LIBOBJS = @LIBOBJS@ +diff -Naur cyrus-sasl-2.1.26-orig/lib/pathtools.c cyrus-sasl-2.1.26/lib/pathtools.c +--- cyrus-sasl-2.1.26-orig/lib/pathtools.c 1970-01-01 03:00:00.000000000 +0300 ++++ cyrus-sasl-2.1.26/lib/pathtools.c 1970-01-01 03:00:00.000000000 +0300 +@@ -0,0 +1,538 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++#include ++#endif ++#include ++ ++/* If you don't define this, then get_executable_path() ++ can only use argv[0] which will often not work well */ ++#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH ++ ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++/* Nothing needed, unistd.h is enough. */ ++#elif defined(__APPLE__) ++#include ++#elif defined(_WIN32) ++#define WIN32_MEAN_AND_LEAN ++#include ++#include ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ ++#include "pathtools.h" ++ ++char * ++malloc_copy_string(char const * original) ++{ ++ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); ++ if (result != NULL) ++ { ++ strcpy (result, original); ++ } ++ return result; ++} ++ ++void ++sanitise_path(char * path) ++{ ++ size_t path_size = strlen (path); ++ ++ /* Replace any '\' with '/' */ ++ char * path_p = path; ++ while ((path_p = strchr (path_p, '\\')) != NULL) ++ { ++ *path_p = '/'; ++ } ++ /* Replace any '//' with '/' */ ++ path_p = path; ++ while ((path_p = strstr (path_p, "//")) != NULL) ++ { ++ memmove (path_p, path_p + 1, path_size--); ++ } ++ return; ++} ++ ++char * ++get_relative_path(char const * from_in, char const * to_in) ++{ ++ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); ++ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); ++ size_t max_size = (from_size + to_size) * 2 + 4; ++ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); ++ char * from; ++ char * to; ++ char * common_part; ++ char * result; ++ size_t count; ++ ++ /* No to, return "./" */ ++ if (to_in == NULL) ++ { ++ return malloc_copy_string ("./"); ++ } ++ ++ /* If alloca failed or no from was given return a copy of to */ ++ if ( from_in == NULL ++ || scratch_space == NULL ) ++ { ++ return malloc_copy_string (to_in); ++ } ++ ++ from = scratch_space; ++ strcpy (from, from_in); ++ to = from + from_size + 1; ++ strcpy (to, to_in); ++ common_part = to + to_size + 1; ++ result = common_part + max_size; ++ simplify_path (from); ++ simplify_path (to); ++ ++ result[0] = '\0'; ++ ++ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ ++ size_t match_size = 0; /* The running (and final) match size. */ ++ size_t largest_size = (from_size > to_size) ? from_size : to_size; ++ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; ++ char from_c; ++ char to_c; ++ for (match_size = 0; match_size < largest_size; ++match_size) ++ { ++ /* To simplify the logic, always pretend the strings end with '/' */ ++ from_c = (match_size < from_size) ? from[match_size] : '/'; ++ to_c = (match_size < to_size) ? to[match_size] : '/'; ++ ++ if (from_c != to_c) ++ { ++ if (from_c != '\0' || to_c != '\0') ++ { ++ match_size = match_size_dirsep; ++ } ++ break; ++ } ++ else if (from_c == '/') ++ { ++ match_size_dirsep = match_size; ++ } ++ } ++ strncpy (common_part, from, match_size); ++ common_part[match_size] = '\0'; ++ from += match_size; ++ to += match_size; ++ size_t ndotdots = 0; ++ char const* from_last = from + strlen(from) - 1; ++ while ((from = strchr (from, '/')) && from != from_last) ++ { ++ ++ndotdots; ++ ++from; ++ } ++ for (count = 0; count < ndotdots; ++count) ++ { ++ strcat(result, "../"); ++ } ++ if (strlen(to) > 0) ++ { ++ strcat(result, to+1); ++ } ++ /* Make sure that if to ends with '/' result does the same, and ++ vice-versa. */ ++ size_t size_result = strlen(result); ++ if ((to_final_is_slash == 1) ++ && (!size_result || result[size_result-1] != '/')) ++ { ++ strcat (result, "/"); ++ } ++ else if (!to_final_is_slash ++ && size_result && result[size_result-1] == '/') ++ { ++ result[size_result-1] = '\0'; ++ } ++ ++ return malloc_copy_string (result); ++} ++ ++void ++simplify_path(char * path) ++{ ++ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ ++ ssize_t i, j; ++ size_t tok_size; ++ size_t in_size = strlen (path); ++ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; ++ char * result = path; ++ sanitise_path(result); ++ char * result_p = result; ++ ++ do ++ { ++ ++n_toks; ++ ++result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ result_p = result; ++ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); ++ n_toks = 0; ++ do ++ { ++ if (result_p > result) ++ { ++ *result_p++ = '\0'; ++ } ++ else if (*result_p == '/') ++ { ++ /* A leading / creates an empty initial token. */ ++ toks[n_toks++] = result_p; ++ *result_p++ = '\0'; ++ } ++ toks[n_toks++] = result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ /* Remove all non-leading '.' and any '..' we can match ++ with an earlier forward path (i.e. neither '.' nor '..') */ ++ for (i = 1; i < n_toks; ++i) ++ { ++ int removals[2] = { -1, -1 }; ++ if ( strcmp (toks[i], "." ) == 0) ++ { ++ removals[0] = i; ++ } ++ else if ( strcmp (toks[i], ".." ) == 0) ++ { ++ /* Search backwards for a forward path to collapse. ++ If none are found then the .. also stays. */ ++ for (j = i - 1; j > -1; --j) ++ { ++ if ( strcmp (toks[j], "." ) ++ && strcmp (toks[j], ".." ) ) ++ { ++ removals[0] = j; ++ removals[1] = i; ++ break; ++ } ++ } ++ } ++ for (j = 0; j < 2; ++j) ++ { ++ if (removals[j] >= 0) /* Can become -2 */ ++ { ++ --n_toks; ++ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); ++ --i; ++ if (!j) ++ { ++ --removals[1]; ++ } ++ } ++ } ++ } ++ result_p = result; ++ for (i = 0; i < n_toks; ++i) ++ { ++ tok_size = strlen(toks[i]); ++ memcpy (result_p, toks[i], tok_size); ++ result_p += tok_size; ++ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) ++ { ++ *result_p = '/'; ++ ++result_p; ++ } ++ } ++ *result_p = '\0'; ++} ++ ++/* Returns actual_to by calculating the relative path from -> to and ++ applying that to actual_from. An assumption that actual_from is a ++ dir is made, and it may or may not end with a '/' */ ++char const * ++get_relocated_path (char const * from, char const * to, char const * actual_from) ++{ ++ char const * relative_from_to = get_relative_path (from, to); ++ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); ++ return actual_to; ++} ++ ++int ++get_executable_path(char const * argv0, char * result, ssize_t max_size) ++{ ++ char * system_result = (char *) alloca (max_size); ++ ssize_t system_result_size = -1; ++ ssize_t result_size = -1; ++ ++ if (system_result != NULL) ++ { ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++ system_result_size = readlink("/proc/self/exe", system_result, max_size); ++#elif defined(__APPLE__) ++ uint32_t bufsize = (uint32_t)max_size; ++ if (_NSGetExecutablePath(system_result, &bufsize) == 0) ++ { ++ system_result_size = (ssize_t)bufsize; ++ } ++#elif defined(_WIN32) ++ unsigned long bufsize = (unsigned long)max_size; ++ system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); ++ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) ++ { ++ /* Error, possibly not enough space. */ ++ system_result_size = -1; ++ } ++ else ++ { ++ /* Early conversion to unix slashes instead of more changes ++ everywhere else .. */ ++ char * winslash; ++ system_result[system_result_size] = '\0'; ++ while ((winslash = strchr (system_result, '\\')) != NULL) ++ { ++ *winslash = '/'; ++ } ++ } ++#else ++#warning "Don't know how to get executable path on this system" ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ } ++ /* Use argv0 as a default in-case of failure */ ++ if (system_result_size != -1) ++ { ++ strncpy (result, system_result, system_result_size); ++ result[system_result_size] = '\0'; ++ } ++ else ++ { ++ if (argv0 != NULL) ++ { ++ strncpy (result, argv0, max_size); ++ result[max_size-1] = '\0'; ++ } ++ else ++ { ++ result[0] = '\0'; ++ } ++ } ++ result_size = strlen (result); ++ return result_size; ++} ++ ++char const * ++strip_n_prefix_folders(char const * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return NULL; ++ } ++ ++ if (path[0] != '/') ++ { ++ return path; ++ } ++ ++ char const * last = path; ++ while (n-- && path != NULL) ++ { ++ last = path; ++ path = strchr (path + 1, '/'); ++ } ++ return (path == NULL) ? last : path; ++} ++ ++void ++strip_n_suffix_folders(char * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return; ++ } ++ while (n--) ++ { ++ if (strrchr (path + 1, '/')) ++ { ++ *strrchr (path + 1, '/') = '\0'; ++ } ++ else ++ { ++ return; ++ } ++ } ++ return; ++} ++ ++size_t ++split_path_list(char const * path_list, char split_char, char *** arr) ++{ ++ size_t path_count; ++ size_t path_list_size; ++ char const * path_list_p; ++ ++ path_list_p = path_list; ++ if (path_list == NULL || path_list[0] == '\0') ++ { ++ return 0; ++ } ++ path_list_size = strlen (path_list); ++ ++ path_count = 0; ++ do ++ { ++ ++path_count; ++ ++path_list_p; ++ } ++ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); ++ ++ /* allocate everything in one go. */ ++ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); ++ if (all_memory == NULL) ++ return 0; ++ *arr = (char **)all_memory; ++ all_memory += sizeof (char *) * path_count; ++ ++ path_count = 0; ++ path_list_p = path_list; ++ char const * next_path_list_p = 0; ++ do ++ { ++ next_path_list_p = strchr (path_list_p, split_char); ++ if (next_path_list_p != NULL) ++ { ++ ++next_path_list_p; ++ } ++ size_t this_size = (next_path_list_p != NULL) ++ ? next_path_list_p - path_list_p - 1 ++ : &path_list[path_list_size] - path_list_p; ++ memcpy (all_memory, path_list_p, this_size); ++ all_memory[this_size] = '\0'; ++ (*arr)[path_count++] = all_memory; ++ all_memory += this_size + 1; ++ } while ((path_list_p = next_path_list_p) != NULL); ++ ++ return path_count; ++} ++ ++char * ++get_relocated_path_list(char const * from, char const * to_path_list) ++{ ++ char exe_path[MAX_PATH]; ++ char * temp; ++ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ if ((temp = strrchr (exe_path, '/')) != NULL) ++ { ++ temp[1] = '\0'; ++ } ++ ++ char **arr = NULL; ++ /* Ask Alexey why he added this. Are we not 100% sure ++ that we're dealing with unix paths here? */ ++ char split_char = ':'; ++ if (strchr (to_path_list, ';')) ++ { ++ split_char = ';'; ++ } ++ size_t count = split_path_list (to_path_list, split_char, &arr); ++ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ ++ size_t exe_path_size = strlen (exe_path); ++ size_t i; ++ /* Space required is: ++ count * (exe_path_size + strlen (rel_to_datadir)) ++ rel_to_datadir upper bound is: ++ (count * strlen (from)) + (3 * num_slashes (from)) ++ + strlen(arr[i]) + 1. ++ .. pathalogically num_slashes (from) is strlen (from) ++ (from = ////////) */ ++ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; ++ for (i = 0; i < count; ++i) ++ { ++ space_required += strlen (arr[i]); ++ } ++ char * scratch = (char *) alloca (space_required); ++ if (scratch == NULL) ++ return NULL; ++ for (i = 0; i < count; ++i) ++ { ++ char * rel_to_datadir = get_relative_path (from, arr[i]); ++ scratch[0] = '\0'; ++ arr[i] = scratch; ++ strcat (scratch, exe_path); ++ strcat (scratch, rel_to_datadir); ++ simplify_path (arr[i]); ++ size_t arr_i_size = strlen (arr[i]); ++ result_size += arr_i_size; ++ scratch = arr[i] + arr_i_size + 1; ++ } ++ char * result = (char *) malloc (result_size); ++ if (result == NULL) ++ { ++ return NULL; ++ } ++ result[0] = '\0'; ++ for (i = 0; i < count; ++i) ++ { ++ strcat (result, arr[i]); ++ if (i != count-1) ++ { ++#if defined(_WIN32) ++ strcat (result, ";"); ++#else ++ strcat (result, ":"); ++#endif ++ } ++ } ++ free ((void*)arr); ++ return result; ++} ++ ++char * ++single_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} +diff -Naur cyrus-sasl-2.1.26-orig/lib/pathtools.h cyrus-sasl-2.1.26/lib/pathtools.h +--- cyrus-sasl-2.1.26-orig/lib/pathtools.h 1970-01-01 03:00:00.000000000 +0300 ++++ cyrus-sasl-2.1.26/lib/pathtools.h 1970-01-01 03:00:00.000000000 +0300 +@@ -0,0 +1,53 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#ifndef PATHTOOLS_H ++#define PATHTOOLS_H ++ ++#include ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++ ++char * malloc_copy_string(char const * original); ++ ++/* In-place replaces any '\' with '/' and any '//' with '/' */ ++void sanitise_path(char * path); ++ ++/* Uses a host OS specific function to determine the path of the executable, ++ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ ++int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ ++/* Where possible, in-place removes occourances of '.' and 'path/..' */ ++void simplify_path(char * path); ++ ++/* Allocates (via malloc) and returns the path to get from from to to. */ ++char * get_relative_path(char const * from, char const * to); ++ ++size_t split_path_list(char const * path_list, char split_char, char *** arr); ++ ++/* Advances path along by the amount that removes n prefix folders. */ ++char const * ++strip_n_prefix_folders(char const * path, size_t n); ++ ++/* NULL terminates path to remove n suffix folders. */ ++void ++strip_n_suffix_folders(char * path, size_t n); ++ ++char const * get_relocated_path (char const * from, char const * to, char const * actual_from); ++char * get_relocated_path_list(char const * from, char const * to_path_list); ++ ++char * single_path_relocation(const char *from, const char *to); ++char * pathlist_relocation(const char *from_path, const char *to_path_list); ++ ++#endif /* PATHTOOLS_H */ +diff -Naur cyrus-sasl-2.1.26-orig/utils/pluginviewer.c cyrus-sasl-2.1.26/utils/pluginviewer.c +--- cyrus-sasl-2.1.26-orig/utils/pluginviewer.c 2014-12-15 23:10:22.407800000 +0300 ++++ cyrus-sasl-2.1.26/utils/pluginviewer.c 2014-12-15 23:45:36.037600000 +0300 +@@ -201,7 +201,7 @@ + if (searchpath) { + *path = searchpath; + } else { +- *path = PLUGINDIR; ++ *path = sasl_path_relocation(BINDIR, PLUGINDIR); + } + + return SASL_OK; diff --git a/mingw-w64-cyrus-sasl/PKGBUILD b/mingw-w64-cyrus-sasl/PKGBUILD index 1350daf0be..19250b9f4b 100644 --- a/mingw-w64-cyrus-sasl/PKGBUILD +++ b/mingw-w64-cyrus-sasl/PKGBUILD @@ -23,7 +23,7 @@ _realname=cyrus-sasl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.1.26 -pkgrel=1 +pkgrel=2 pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library" arch=('any') url="http://cyrusimap.web.cmu.edu/" @@ -43,14 +43,14 @@ source=(http://cyrusimap.org/releases/${_realname}-${pkgver}.tar.gz 08-cyrus-sasl-2.1.26-size_t.patch 09-cyrus-sasl-2.1.26-msys2.patch 10-MinGW-w64-already-has-getopt.patch - 11-MinGW-w64-add-disable-win32-reg-option.patch 12-MinGW-w64-uses-ws2_32-not-socket.patch 13-MSYS2-Use-cp-f-instead-of-ln-s.patch 14-MinGW-w64-add-LIBSASL_API-to-function-definitions.patch 15-MinGW-w64-define-LIBSASL_EXPORTS_eq_1-for-sasldb.patch 16-MinGW-w64-define-WIN32_LEAN_AND_MEAN-avoiding-handle_t-redef.patch 17-MinGW-w64-define-S_IRUSR-and-S_IWUSR.patch - 18-MinGW-w64-use-windlopen.c-not-dlopen.c.patch) + 18-MinGW-w64-use-windlopen.c-not-dlopen.c.patch + 19-paths-relocation.patch) md5sums=('a7f4e5e559a0e37b3ffc438c9456e425' '7f52862a74ada70ed2e257990f9b4334' 'd7ff8a6d1902478190c705a580b4bd80' @@ -62,14 +62,14 @@ md5sums=('a7f4e5e559a0e37b3ffc438c9456e425' 'bcaafcbc79054e8356217213d6eda16d' 'b48df2818c4836801445d9dee0adfaa0' '0804261cbd3605300de45d239f0985b1' - '88646a5b27f7d2d2dae2d37a84ce4bb9' '67b07a35ee220b0e604bfe232c73757b' 'e22b151aceb15d15abf86827741ecd9e' '74deb3bb998a1da6e1b7697606269a44' '3255cf7f8bf21e26e1900b5df5050d86' '8a7b3c956b6ade7f50b322f2f2211a46' '42b8a2f0f6a9b8c88168a5e6a7433cbb' - 'aa98b66f10b3628b3278e97adf4d4ce5') + 'aa98b66f10b3628b3278e97adf4d4ce5' + 'f0d91129bd6c0220a904cdb196aa3f4e') prepare() { cd ${srcdir}/$_realname-$pkgver @@ -84,7 +84,6 @@ prepare() { patch -p1 -i ${srcdir}/08-cyrus-sasl-2.1.26-size_t.patch patch -p1 -i ${srcdir}/09-cyrus-sasl-2.1.26-msys2.patch patch -p1 -i ${srcdir}/10-MinGW-w64-already-has-getopt.patch - patch -p1 -i ${srcdir}/11-MinGW-w64-add-disable-win32-reg-option.patch patch -p1 -i ${srcdir}/12-MinGW-w64-uses-ws2_32-not-socket.patch patch -p1 -i ${srcdir}/13-MSYS2-Use-cp-f-instead-of-ln-s.patch patch -p1 -i ${srcdir}/14-MinGW-w64-add-LIBSASL_API-to-function-definitions.patch @@ -92,6 +91,7 @@ prepare() { patch -p1 -i ${srcdir}/16-MinGW-w64-define-WIN32_LEAN_AND_MEAN-avoiding-handle_t-redef.patch patch -p1 -i ${srcdir}/17-MinGW-w64-define-S_IRUSR-and-S_IWUSR.patch patch -p1 -i ${srcdir}/18-MinGW-w64-use-windlopen.c-not-dlopen.c.patch + patch -p1 -i ${srcdir}/19-paths-relocation.patch sed 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' -i configure.in rm -f config/config.guess config/config.sub @@ -128,13 +128,13 @@ build() { ../$_realname-$pkgver/configure \ --prefix=${MINGW_PREFIX} \ - --build=$CHOST \ - --host=$CHOST \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ --with-configdir=${MINGW_PREFIX}/etc/sasl2:${MINGW_PREFIX}/etc/sasl:${MINGW_PREFIX}/lib/sasl2 \ + --with-plugindir=${MINGW_PREFIX}/lib/sasl2 \ --disable-static --enable-shared \ --with-sqlite3=${MINGW_PREFIX} \ --disable-ldapdb \ - --disable-win32-reg \ --oldincludedir=${MINGW_PREFIX}/include \ --without-saslauthd \ --without-pwcheck \ From fa3eda1ac89d3bb8ab2d3d32240664a54e9bdd55 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Mon, 15 Dec 2014 20:33:47 -0200 Subject: [PATCH 0177/2060] New package drmingw (release-based). --- mingw-w64-drmingw/PKGBUILD | 41 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 mingw-w64-drmingw/PKGBUILD diff --git a/mingw-w64-drmingw/PKGBUILD b/mingw-w64-drmingw/PKGBUILD new file mode 100644 index 0000000000..eadf6b1b65 --- /dev/null +++ b/mingw-w64-drmingw/PKGBUILD @@ -0,0 +1,41 @@ +# Maintainer: Alexey Pavlov +# Contributor: Renato Silva + +_realname=drmingw +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) +pkgver=0.6.4 +pkgrel=1 +pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" +arch=('any') +license=('GPL' 'LGPL') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") +url=('https://github.com/jrfonseca/drmingw') +source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/archive/${pkgver}.tar.gz") +options=(!strip staticlibs) +md5sums=('SKIP') + +prepare() { + cd "${srcdir}" + mv "${_realname}-${pkgver}" "${_realname}" +} + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + ../${_realname} + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make -j1 install + rm -rf "${pkgdir}${MINGW_PREFIX}"/doc + rm -rf "${pkgdir}${MINGW_PREFIX}"/sample + + install -Dm644 "${srcdir}/${_realname}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From 41553bc7796450a1a77393908ba51e39a36ab596 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 16 Dec 2014 07:46:53 +0300 Subject: [PATCH 0178/2060] opencsg: New package. --- mingw-w64-opencsg/01-makefile-mingw.patch | 171 ++++++++++++++++++++++ mingw-w64-opencsg/02-qmake-mingw.patch | 49 +++++++ mingw-w64-opencsg/PKGBUILD | 46 ++++++ 3 files changed, 266 insertions(+) create mode 100644 mingw-w64-opencsg/01-makefile-mingw.patch create mode 100644 mingw-w64-opencsg/02-qmake-mingw.patch create mode 100644 mingw-w64-opencsg/PKGBUILD diff --git a/mingw-w64-opencsg/01-makefile-mingw.patch b/mingw-w64-opencsg/01-makefile-mingw.patch new file mode 100644 index 0000000000..08c5a0eead --- /dev/null +++ b/mingw-w64-opencsg/01-makefile-mingw.patch @@ -0,0 +1,171 @@ +--- x86_64-w64-mingw32/src/Makefile.orig 2014-12-16 01:25:46.470600000 +0300 ++++ x86_64-w64-mingw32/src/Makefile 2014-12-16 06:59:47.119800000 +0300 +@@ -3,7 +3,7 @@ + # Generated by qmake (2.01a) (Qt 4.8.6) on: Mo. Sep 15 22:00:30 2014 + # Project: src.pro + # Template: lib +-# Command: /usr/lib/x86_64-linux-gnu/qt4/bin/qmake -o Makefile src.pro ++# Command: qmake -o Makefile src.pro + ############################################################################# + + ####### Compiler, tools and options +@@ -11,15 +11,15 @@ + CC = gcc + CXX = g++ + DEFINES = +-CFLAGS = -pipe -O2 -Wall -W -fPIC $(DEFINES) +-CXXFLAGS = -pipe -O2 -Wall -W -fPIC $(DEFINES) +-INCPATH = -I. -I../include -I.. -I/usr/X11R6/include ++CFLAGS = -pipe -O2 -Wall -W $(DEFINES) ++CXXFLAGS = -pipe -O2 -Wall -W $(DEFINES) ++INCPATH = -I. -I../include -I.. + LINK = g++ +-LFLAGS = -Wl,-O1 -shared -Wl,-soname,libopencsg.so.1 +-LIBS = $(SUBLIBS) -L/usr/X11R6/lib64 -lGLEW -lGL ++LFLAGS = -Wl,-O1 -shared -Wl,--out-implib,../lib/$(TARGETI) ++LIBS = $(SUBLIBS) -lglu32 -lopengl32 -lgdi32 -luser32 -lglew32 + AR = ar cqs + RANLIB = +-QMAKE = /usr/lib/x86_64-linux-gnu/qt4/bin/qmake ++QMAKE = qmake + TAR = tar -cf + COMPRESS = gzip -9f + COPY = cp -f +@@ -37,6 +37,12 @@ + CHK_DIR_EXISTS= test -d + MKDIR = mkdir -p + ++####### Install directories ++ ++prefix ?= /usr/local/ ++bindir = $(prefix)/bin ++includedir = $(prefix)/include ++libdir = $(prefix)/lib + ####### Output directory + + OBJECTS_DIR = ./ +@@ -82,12 +88,9 @@ + DIST = src.pro + QMAKE_TARGET = opencsg + DESTDIR = ../lib/ +-TARGET = libopencsg.so.1.4.0 +-TARGETA = ../lib/libopencsg.a +-TARGETD = libopencsg.so.1.4.0 +-TARGET0 = libopencsg.so +-TARGET1 = libopencsg.so.1 +-TARGET2 = libopencsg.so.1.4 ++TARGET = libopencsg-1.dll ++TARGETA = libopencsg.a ++TARGETI = libopencsg.dll.a + + first: all + ####### Implicit rules +@@ -111,28 +114,29 @@ + + ####### Build rules + +-all: Makefile ../lib/$(TARGET) ++all: shared staticlib ++ ++shared: ../lib/$(TARGET) + + ../lib/$(TARGET): $(OBJECTS) $(SUBLIBS) $(OBJCOMP) + @$(CHK_DIR_EXISTS) ../lib/ || $(MKDIR) ../lib/ +- -$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2) ++ @$(CHK_DIR_EXISTS) ../bin/ || $(MKDIR) ../bin/ ++ -$(DEL_FILE) ../bin/$(TARGET) ++ -$(DEL_FILE) ../lib/$(TARGETI) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) $(OBJCOMP) +- -ln -s $(TARGET) $(TARGET0) +- -ln -s $(TARGET) $(TARGET1) +- -ln -s $(TARGET) $(TARGET2) +- -$(DEL_FILE) ../lib/$(TARGET) +- -$(DEL_FILE) ../lib/$(TARGET0) +- -$(DEL_FILE) ../lib/$(TARGET1) +- -$(DEL_FILE) ../lib/$(TARGET2) +- -$(MOVE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2) ../lib/ ++ -$(DEL_FILE) ../bin/$(TARGET) ++ -$(MOVE) $(TARGET) ../bin/ + + ++staticlib: ../lib/$(TARGETA) + +-staticlib: $(TARGETA) +- +-$(TARGETA): $(OBJECTS) $(OBJCOMP) ++../lib/$(TARGETA): $(OBJECTS) $(OBJCOMP) ++ @$(CHK_DIR_EXISTS) ../lib/ || $(MKDIR) ../lib/ ++ -$(DEL_FILE) ../lib/$(TARGETA) + -$(DEL_FILE) $(TARGETA) + $(AR) $(TARGETA) $(OBJECTS) ++ -$(DEL_FILE) ../lib/$(TARGETA) ++ -$(MOVE) $(TARGETA) ../lib/ + + dist: + @$(CHK_DIR_EXISTS) .tmp/opencsg1.4.0 || $(MKDIR) .tmp/opencsg1.4.0 +@@ -147,8 +152,8 @@ + ####### Sub-libraries + + distclean: clean +- -$(DEL_FILE) ../lib/$(TARGET) +- -$(DEL_FILE) ../lib/$(TARGET0) ../lib/$(TARGET1) ../lib/$(TARGET2) $(TARGETA) ++ -$(DEL_FILE) ../bin/$(TARGET) ++ -$(DEL_FILE) ../lib/$(TARGETI) ../lib/$(TARGETA) + -$(DEL_FILE) Makefile + + +@@ -285,34 +290,38 @@ + ####### Install + + install_target: first FORCE +- @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/local/lib/ || $(MKDIR) $(INSTALL_ROOT)/usr/local/lib/ +- -$(INSTALL_PROGRAM) "../lib/$(TARGET)" "$(INSTALL_ROOT)/usr/local/lib/$(TARGET)" +- -$(STRIP) --strip-unneeded "$(INSTALL_ROOT)/usr/local/lib/$(TARGET)" +- -$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/usr/local/lib/$(TARGET0)" +- -$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/usr/local/lib/$(TARGET1)" +- -$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/usr/local/lib/$(TARGET2)" ++ @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)$(libdir) || $(MKDIR) $(INSTALL_ROOT)$(libdir) ++ @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)$(bindir) || $(MKDIR) $(INSTALL_ROOT)$(bindir) ++ -$(INSTALL_PROGRAM) "../bin/$(TARGET)" "$(INSTALL_ROOT)$(bindir)/$(TARGET)" ++ -$(INSTALL_PROGRAM) "../lib/$(TARGETA)" "$(INSTALL_ROOT)$(libdir)/$(TARGETA)" ++ -$(INSTALL_PROGRAM) "../lib/$(TARGETI)" "$(INSTALL_ROOT)$(libdir)/$(TARGETI)" ++ -$(STRIP) --strip-unneeded "$(INSTALL_ROOT)$(bindir)/$(TARGET)" ++ ++install_static: first FORCE ++ @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)$(libdir) || $(MKDIR) $(INSTALL_ROOT)$(libdir) ++ -$(INSTALL_PROGRAM) "../lib/$(TARGETA)" "$(INSTALL_ROOT)$(libdir)/$(TARGETA)" + + uninstall_target: FORCE +- -$(DEL_FILE) "$(INSTALL_ROOT)/usr/local/lib/$(TARGET)" +- -$(DEL_FILE) "$(INSTALL_ROOT)/usr/local/lib/$(TARGET0)" +- -$(DEL_FILE) "$(INSTALL_ROOT)/usr/local/lib/$(TARGET1)" +- -$(DEL_FILE) "$(INSTALL_ROOT)/usr/local/lib/$(TARGET2)" +- -$(DEL_DIR) $(INSTALL_ROOT)/usr/local/lib/ ++ -$(DEL_FILE) "$(INSTALL_ROOT)$(bindir)/$(TARGET)" ++ -$(DEL_FILE) "$(INSTALL_ROOT)$(bindir)/$(TARGETI)" ++ -$(DEL_DIR) $(INSTALL_ROOT)$(bindir)/ + ++uninstall_static: FORCE ++ -$(DEL_FILE) "$(INSTALL_ROOT)$(bindir)/$(TARGETA)" + + install_headers: first FORCE +- @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/local/include/ || $(MKDIR) $(INSTALL_ROOT)/usr/local/include/ +- -$(INSTALL_FILE) ../include/opencsg.h $(INSTALL_ROOT)/usr/local/include/ ++ @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)$(includedir)/ || $(MKDIR) $(INSTALL_ROOT)$(includedir)/ ++ -$(INSTALL_FILE) ../include/opencsg.h $(INSTALL_ROOT)$(includedir)/ + + + uninstall_headers: FORCE +- -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/local/include/opencsg.h ++ -$(DEL_FILE) -r $(INSTALL_ROOT)$(includedir)/opencsg.h + -$(DEL_DIR) $(INSTALL_ROOT)/usr/local/include/ + + +-install: install_target install_headers FORCE ++install: install_target install_static install_headers FORCE + +-uninstall: uninstall_target uninstall_headers FORCE ++uninstall: uninstall_target uninstall_static uninstall_headers FORCE + + FORCE: + diff --git a/mingw-w64-opencsg/02-qmake-mingw.patch b/mingw-w64-opencsg/02-qmake-mingw.patch new file mode 100644 index 0000000000..123fd0e2bf --- /dev/null +++ b/mingw-w64-opencsg/02-qmake-mingw.patch @@ -0,0 +1,49 @@ +--- x86_64-w64-mingw32/src/src.pro.orig 2014-12-16 07:06:13.178400000 +0300 ++++ x86_64-w64-mingw32/src/src.pro 2014-12-16 07:07:03.301200000 +0300 +@@ -5,13 +5,18 @@ + CONFIG += opengl warn_on release + INCLUDEPATH += ../include ../ + CONFIG -= qt +-LIBS += -lGLEW ++win32 { ++ LIBS += -lglew32 ++} ++else { ++ LIBS += -lGLEW ++} + + DESTDIR = ../lib + INSTALLDIR = /usr/local + headers.files = ../include/opencsg.h + headers.path = $$INSTALLDIR/include +-target.path = /usr/local/lib ++target.path = $$INSTALLDIR/lib + INSTALLS += target headers + + HEADERS = ../include/opencsg.h \ +--- x86_64-w64-mingw32/example/example.pro.orig 2014-12-16 07:03:05.367000000 +0300 ++++ x86_64-w64-mingw32/example/example.pro 2014-12-16 07:05:29.422400000 +0300 +@@ -4,7 +4,12 @@ + CONFIG += opengl warn_on release + CONFIG -= qt + INCLUDEPATH += ../include +-LIBS += -L../lib -lopencsg -lGLEW ++win32 { ++ LIBS += -L../lib -lopencsg -lglew32 ++} ++else { ++ LIBS += -L../lib -lopencsg -lGLEW ++} + + INSTALLDIR = /usr/local + INSTALLS += target +@@ -14,6 +19,9 @@ + INCLUDEPATH += /opt/local/include + LIBS += -framework GLUT -L/opt/local/lib + } ++win32 { ++ LIBS += -lfreeglut ++} + else { + LIBS += -lGLU -lglut + } diff --git a/mingw-w64-opencsg/PKGBUILD b/mingw-w64-opencsg/PKGBUILD new file mode 100644 index 0000000000..2028664c96 --- /dev/null +++ b/mingw-w64-opencsg/PKGBUILD @@ -0,0 +1,46 @@ +# Maintainer: Alexey Pavlov + +_realname=opencsg +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.4.0 +pkgrel=1 +pkgdesc="Library for image-based CSG rendering using OpenGL (mingw-w64)" +arch=('any') +license=("GPL2") +url="http://www.opencsg.org" +depends=("${MINGW_PACKAGE_PREFIX}-glew" + # "${MINGW_PACKAGE_PREFIX}-freeglut" # need for building example + ) +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +options=(!strip staticlibs !buildflags) +source=("http://www.opencsg.org/OpenCSG-${pkgver}.tar.gz" + 01-makefile-mingw.patch + 02-qmake-mingw.patch) +md5sums=('e7fe5fa2bfa1b466f470699da41eb0a2' + '02ec2405b99d22dd1c417de085615b08' + 'f4cc246fc0c25c59ff6067018de06f34') + +prepare() { + cd "$srcdir/OpenCSG-$pkgver" + patch -p1 -i ${srcdir}/01-makefile-mingw.patch + patch -p1 -i ${srcdir}/02-qmake-mingw.patch +} + +build() { + mv "$srcdir/OpenCSG-$pkgver" "$srcdir/$MINGW_CHOST" + cd "$srcdir/$MINGW_CHOST" + #rm -f example/Makefile src/Makefile + #${MINGW_PREFIX}/bin/qmake -recursive opencsg.pro + #make + + cd "$srcdir/$MINGW_CHOST/src" + make all staticlib +} + +package() { + cd "$srcdir/$MINGW_CHOST/src" + + make prefix=${MINGW_PREFIX} INSTALL_ROOT=${pkgdir} install + #install -D lib/libopencsg.so.$pkgver "${pkgdir}${MINGW_PREFIX}/lib/libopencsg.so.$pkgver" + #install -D include/opencsg.h "${pkgdir}${MINGW_PREFIX}/include/opencsg.h" +} From a38e728e1f336b4676ebab0720ab0997a9cb7804 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 16 Dec 2014 14:07:18 +0000 Subject: [PATCH 0179/2060] python3: Add patch from Frode Solheim From the FS-UAE project: http://eab.abime.net/showpost.php?p=991970&postcount=2 --- ...t-look-in-DLLs-folder-for-python-dll.patch | 28 +++++++++++++++++++ mingw-w64-python3/PKGBUILD | 12 ++++++-- 2 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch diff --git a/mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch b/mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch new file mode 100644 index 0000000000..b9885f5ac9 --- /dev/null +++ b/mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch @@ -0,0 +1,28 @@ +diff -urN a/Modules/getpath.c b/Modules/getpath.c +--- a/Modules/getpath.c 2014-12-16 09:26:33.796969000 +0100 ++++ b/Modules/getpath.c 2014-12-16 10:15:36.798797800 +0100 +@@ -980,6 +980,17 @@ + int + _Py_CheckPython3() + { ++ /* This does not work well with mingw-w64-python. First it tries to ++ * look up \python3.dll, which it won't (or should not) find. But the ++ * real problem is when Python is freezed by cx_Freeze. sys.prefix ++ * is then /, and Python tries to load /\DLLs\python3.dll, which makes ++ * windows try to load python3.dll from a network address, causing ++ * a several seconds long delay before proceeding. Since this code does ++ * not do anything useful in the current state, we might just as ++ * well return immediately. */ ++#if 1 ++ return 0; ++#else + wchar_t py3path[MAXPATHLEN+1]; + wchar_t *s; + if (python3_checked) +@@ -1002,6 +1013,7 @@ + wcscat(py3path, L"\\DLLs\\python3.dll"); + hPython3 = LoadLibraryExW(py3path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); + return hPython3 != NULL; ++#endif + } + #endif diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 313dd7b045..98b0a06571 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -1,12 +1,13 @@ # Maintainer: Alexey Pavlov # Contributor: Ray Donnelly # Contributor: Saul Ibarra Corretge +# Contributor: Frode Solheim _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.4 pkgver=${_pybasever}.2 -pkgrel=5 +pkgrel=6 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -109,7 +110,8 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch 0910-fix-using-dllhandle-and-winver-mingw.patch 1000-fix-building-posixmodule.patch - 1010-install-msilib.patch) + 1010-install-msilib.patch + 1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch) prepare() { cd "${srcdir}/Python-${pkgver}" @@ -212,6 +214,9 @@ prepare() { patch -Np1 -i "${srcdir}"/1000-fix-building-posixmodule.patch patch -Np1 -i "${srcdir}"/1010-install-msilib.patch + plain "Apply patch contributed by Frode Solheim from FS-UAE project (1)" + patch -Np1 -i "${srcdir}"/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch + autoreconf -vfi # Temporary workaround for FS#22322 @@ -439,4 +444,5 @@ sha1sums=('0727d8a8498733baabe6f51632b9bab0cbaa9ada' '5c4101eed415f28b0277904e7686a352fc69d1d9' '3e80013b0742254cf68743e2bb257cc59213e007' '25dfd3da896a1dafe8740e1036d41a10e179d080' - 'ac74429997b79278834772579f81d46892571e87') + 'ac74429997b79278834772579f81d46892571e87' + '903981a318b612a8b260520ea033ed9081f25aea') From ad858a17a597f754141c6267b0c57562870e55d0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 16 Dec 2014 19:28:25 +0300 Subject: [PATCH 0180/2060] qscintilla: New package with python bindings. --- mingw-w64-qscintilla/PKGBUILD | 143 ++++++++++++++++++ .../configure.py-objdir-support.diff | 41 +++++ .../qmake-install-paths.patch | 65 ++++++++ mingw-w64-qscintilla/run-command-via-sh.patch | 127 ++++++++++++++++ 4 files changed, 376 insertions(+) create mode 100644 mingw-w64-qscintilla/PKGBUILD create mode 100644 mingw-w64-qscintilla/configure.py-objdir-support.diff create mode 100644 mingw-w64-qscintilla/qmake-install-paths.patch create mode 100644 mingw-w64-qscintilla/run-command-via-sh.patch diff --git a/mingw-w64-qscintilla/PKGBUILD b/mingw-w64-qscintilla/PKGBUILD new file mode 100644 index 0000000000..e8d7332f91 --- /dev/null +++ b/mingw-w64-qscintilla/PKGBUILD @@ -0,0 +1,143 @@ +# Maintainer: Alexey Pavlov + +_realname=qscintilla +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" + "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" + "${MINGW_PACKAGE_PREFIX}-python3-${_realname}" + "${MINGW_PACKAGE_PREFIX}-python-${_realname}-common") +pkgver=2.8.4 +pkgrel=1 +pkgdesc="A port to Qt5 of Neil Hodgson's Scintilla C++ editor class" +arch=('any') +license=("GPL") +url="http://www.riverbankcomputing.co.uk/software/qscintilla/intro" +depends=("${MINGW_PACKAGE_PREFIX}-qt5") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-python2-pyqt5" + "${MINGW_PACKAGE_PREFIX}-python3-pyqt5") +options=(!strip staticlibs !buildflags) +source=("http://downloads.sourceforge.net/pyqt/QScintilla-gpl-${pkgver}.tar.gz" + 'configure.py-objdir-support.diff' + 'run-command-via-sh.patch' + 'qmake-install-paths.patch') +md5sums=('28aec903ff48ae541295a4fb9c96f8ea' + 'e304f8cd5e3e7ded61eda15bf56613a8' + 'aede32ecf3b87525289799ba2da020bd' + '3bcc03bba331e21294f541078c0d9f3e') + +prepare() { + cd QScintilla-gpl-${pkgver} + patch -p1 -i "${srcdir}"/configure.py-objdir-support.diff + patch -p1 -i "${srcdir}"/run-command-via-sh.patch + patch -p1 -i "${srcdir}"/qmake-install-paths.patch + + sed -e "s|%INSTALL_PREFIX%|$(cygpath -wm ${pkgdir})|g" \ + -i Qt4Qt5/qscintilla.pro \ + -i designer-Qt4Qt5/designer.pro +} + +build() { + cd ${srcdir}/QScintilla-gpl-${pkgver}/Qt4Qt5 + ${MINGW_PREFIX}/bin/qmake qscintilla.pro + make + + cd ../designer-Qt4Qt5 + QMAKEFEATURES=../Qt4Qt5/features ${MINGW_PREFIX}/bin/qmake designer.pro INCLUDEPATH+=../Qt4Qt5 QMAKE_LIBDIR+=../Qt4Qt5/release + make + + cd ../ + cp -rf Python Python2 +} + +package_qscintilla() { + pkgdesc="A port to Qt5 of Neil Hodgson's Scintilla C++ editor class" + depends=("${MINGW_PACKAGE_PREFIX}-qt5") + + cd QScintilla-gpl-${pkgver}/Qt4Qt5 + make install + + cd ../designer-Qt4Qt5 + make install + + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin + mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ +} + +package_python-qscintilla-common() { + pkgdesc="Common python qscintilla bindings files shared between python3-qscintilla and python2-qscintilla" + depends=("${MINGW_PACKAGE_PREFIX}-qscintilla") + + cd QScintilla-gpl-${pkgver}/Python + make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install + + # Provided by python-qscintilla + rm -rf "${pkgdir}${MINGW_PREFIX}"/lib +} + +package_python3-qscintilla() { + pkgdesc="Python 3.x bindings for QScintilla2" + depends=("${MINGW_PACKAGE_PREFIX}-python-qscintilla-common" "${MINGW_PACKAGE_PREFIX}-python3-pyqt5") + + cd QScintilla-gpl-${pkgver}/Python + QMAKEFEATURES=../Qt4Qt5/features \ + ${MINGW_PREFIX}/bin/python3 configure.py \ + --pyqt=PyQt5 \ + --qsci-incdir=../Qt4Qt5/ \ + --qsci-libdir=../Qt4Qt5/release/ + + make + make INSTALL_ROOT=${pkgdir} install + + rm -rf "${pkgdir}${MINGW_PREFIX}"/share +} + +package_python2-qscintilla() { + pkgdesc="Python 2.x bindings for QScintilla2" + depends=("${MINGW_PACKAGE_PREFIX}-python-qscintilla-common" "${MINGW_PACKAGE_PREFIX}-python2-pyqt5") + + cd QScintilla-gpl-${pkgver}/Python2 + QMAKEFEATURES=../Qt4Qt5/features \ + ${MINGW_PREFIX}/bin/python2 configure.py \ + --pyqt=PyQt5 \ + --qsci-incdir=../Qt4Qt5/ \ + --qsci-libdir=../Qt4Qt5/release/ + + make + make INSTALL_ROOT=${pkgdir} install + + rm -rf "${pkgdir}${MINGW_PREFIX}"/share +} + +### Wrappers + +package_mingw-w64-i686-qscintilla() { + package_qscintilla +} + +package_mingw-w64-i686-python-qscintilla-common() { + package_python-qscintilla-common +} + +package_mingw-w64-i686-python2-qscintilla() { + package_python2-qscintilla +} + +package_mingw-w64-i686-python3-qscintilla() { + package_python3-qscintilla +} + +package_mingw-w64-x86_64-qscintilla() { + package_qscintilla +} + +package_mingw-w64-x86_64-python-qscintilla-common() { + package_python-qscintilla-common +} + +package_mingw-w64-x86_64-python2-qscintilla() { + package_python2-qscintilla +} + +package_mingw-w64-x86_64-python3-qscintilla() { + package_python3-qscintilla +} diff --git a/mingw-w64-qscintilla/configure.py-objdir-support.diff b/mingw-w64-qscintilla/configure.py-objdir-support.diff new file mode 100644 index 0000000000..6d2e708057 --- /dev/null +++ b/mingw-w64-qscintilla/configure.py-objdir-support.diff @@ -0,0 +1,41 @@ +02_configure.dpatch by Torsten Marek +Updated for Qscintilla 2.8.2 configure.py changes by Scott Kitterman + +patch the configure script for the Python bindings to support object dir +builds +Index: qscintilla2-2.8.3+dfsg/Python/configure.py +=================================================================== +--- qscintilla2-2.8.3+dfsg.orig/Python/configure.py 2014-07-05 10:02:02.318834374 -0400 ++++ qscintilla2-2.8.3+dfsg/Python/configure.py 2014-07-05 10:02:02.306834375 -0400 +@@ -31,6 +31,8 @@ + import glob + import optparse + ++src_dir = os.path.dirname(os.path.abspath(__file__)) ++ + try: + import sysconfig + except ImportError: +@@ -210,6 +212,8 @@ + "The QScintilla version number could not be determined by " + "reading %s." % sciglobal) + ++ return # Debian: do not check for the installed version, we're good this way. ++ + lib_dir = target_configuration.qsci_lib_dir + if lib_dir is None: + lib_dir = target_configuration.qt_lib_dir +@@ -264,7 +268,12 @@ + the target configuration. + """ + +- return 'sip/qscimod5.sip' if target_configuration.pyqt_package == 'PyQt5' else 'sip/qscimod4.sip' ++ if target_configuration.pyqt_package == 'PyQt5': ++ return os.path.join(src_dir, 'sip/qscimod5.sip') ++ else: ++ return os.path.join(src_dir, 'sip/qscimod4.sip') ++ ++ #return 'sip/qscimod5.sip' if target_configuration.pyqt_package == 'PyQt5' else 'sip/qscimod4.sip' + + def get_sip_installs(self, target_configuration): + """ Return a tuple of the installation directory of the module's .sip diff --git a/mingw-w64-qscintilla/qmake-install-paths.patch b/mingw-w64-qscintilla/qmake-install-paths.patch new file mode 100644 index 0000000000..5014995627 --- /dev/null +++ b/mingw-w64-qscintilla/qmake-install-paths.patch @@ -0,0 +1,65 @@ +--- QScintilla-gpl-2.8.4/Qt4Qt5/qscintilla.pro.orig 2014-12-16 16:07:45.081200000 +0300 ++++ QScintilla-gpl-2.8.4/Qt4Qt5/qscintilla.pro 2014-12-16 16:11:15.116800000 +0300 +@@ -32,6 +32,7 @@ + CONFIG += qt warn_off release thread exceptions + INCLUDEPATH += . ../include ../lexlib ../src + ++PREFIX = %INSTALL_PREFIX% + DEFINES += QSCINTILLA_MAKE_DLL SCINTILLA_QT SCI_LEXER + greaterThan(QT_MAJOR_VERSION, 3) { + CONFIG(staticlib) { +@@ -55,25 +56,29 @@ + #DEFINES += SCI_NAMESPACE + + # Handle both Qt v4 and v3. +-target.path = $$[QT_INSTALL_LIBS] ++winpath = $$system(cygpath -u $$[QT_INSTALL_LIBS]) ++target.path = $$PREFIX$$winpath + isEmpty(target.path) { + target.path = $(QTDIR)/lib + } + +-header.path = $$[QT_INSTALL_HEADERS] ++winpath = $$system(cygpath -u $$[QT_INSTALL_HEADERS]) ++header.path = $$PREFIX$$winpath + header.files = Qsci + isEmpty(header.path) { + header.path = $(QTDIR)/include/Qsci + header.files = Qsci/qsci*.h + } + +-trans.path = $$[QT_INSTALL_TRANSLATIONS] ++winpath = $$system(cygpath -u $$[QT_INSTALL_TRANSLATIONS]) ++trans.path = $$PREFIX$$winpath + trans.files = qscintilla_*.qm + isEmpty(trans.path) { + trans.path = $(QTDIR)/translations + } + +-qsci.path = $$[QT_INSTALL_DATA] ++winpath = $$system(cygpath -u $$[QT_INSTALL_DATA]) ++qsci.path = $$PREFIX$$winpath + qsci.files = ../qsci + isEmpty(qsci.path) { + qsci.path = $(QTDIR) +@@ -82,7 +87,8 @@ + INSTALLS += header trans qsci target + + greaterThan(QT_MAJOR_VERSION, 3) { +- features.path = $$[QT_INSTALL_DATA]/mkspecs/features ++ winpath = $$system(cygpath -u $$[QT_INSTALL_DATA]/mkspecs/features) ++ features.path = $$PREFIX$$winpath + features.files = $$PWD/features/qscintilla2.prf + INSTALLS += features + } +--- QScintilla-gpl-2.8.4/designer-Qt4Qt5/designer.pro.orig 2014-07-11 00:03:19.000000000 +0300 ++++ QScintilla-gpl-2.8.4/designer-Qt4Qt5/designer.pro 2014-12-16 16:53:40.823600000 +0300 +@@ -22,5 +22,7 @@ + HEADERS = qscintillaplugin.h + SOURCES = qscintillaplugin.cpp + +-target.path = $$[QT_INSTALL_PLUGINS]/designer ++PREFIX = %INSTALL_PREFIX% ++winpath = $$system(cygpath -u $$[QT_INSTALL_PLUGINS]/designer) ++target.path = $$PREFIX$$winpath + INSTALLS += target diff --git a/mingw-w64-qscintilla/run-command-via-sh.patch b/mingw-w64-qscintilla/run-command-via-sh.patch new file mode 100644 index 0000000000..a1a841ce5d --- /dev/null +++ b/mingw-w64-qscintilla/run-command-via-sh.patch @@ -0,0 +1,127 @@ +--- QScintilla-gpl-2.8.4/Python/configure.py.orig 2014-12-16 11:14:41.265000000 +0300 ++++ QScintilla-gpl-2.8.4/Python/configure.py 2014-12-16 13:01:42.418000000 +0300 +@@ -30,6 +30,7 @@ + import os + import glob + import optparse ++from sysconfig import _POSIX_BUILD + + src_dir = os.path.dirname(os.path.abspath(__file__)) + +@@ -182,6 +183,9 @@ + else: + target_configuration.qsci_sip_dir = target_configuration.pyqt_sip_dir + ++ if "MSYSTEM" in os.environ: ++ target_configuration.qsci_sip_dir = os.popen(' '.join(['cygpath', '--unix', target_configuration.qsci_sip_dir])).readline().strip() ++ + if options.qsci_no_sip_files: + target_configuration.qsci_sip_dir = '' + +@@ -639,13 +643,19 @@ + self.inc_dir = sysconfig.get_python_inc(plat_specific=1) + self.module_dir = sysconfig.get_python_lib(plat_specific=1) + +- if sys.platform == 'win32': ++ if sys.platform == 'win32' and not _POSIX_BUILD: + self.data_dir = sys.prefix + self.lib_dir = sys.prefix + '\\libs' + else: + self.data_dir = sys.prefix + '/share' + self.lib_dir = sys.prefix + '/lib' + ++ if _POSIX_BUILD and "MSYSTEM" in os.environ: ++ self.inc_dir = os.popen(' '.join(['cygpath', '--unix', self.inc_dir])).readline().strip() ++ self.module_dir = os.popen(' '.join(['cygpath', '--unix', self.module_dir])).readline().strip() ++ self.data_dir = os.popen(' '.join(['cygpath', '--unix', self.data_dir])).readline().strip() ++ self.lib_dir = os.popen(' '.join(['cygpath', '--unix', self.lib_dir])).readline().strip() ++ + + class _TargetQtConfiguration: + """ A container for the target Qt configuration. """ +@@ -697,7 +707,9 @@ + + # The default qmake spec. + if self.py_platform == 'win32': +- if self.py_version >= 0x030300: ++ if _POSIX_BUILD: ++ self.qmake_spec = "win32-g++" ++ elif self.py_version >= 0x030300: + self.qmake_spec = 'win32-msvc2010' + elif self.py_version >= 0x020600: + self.qmake_spec = 'win32-msvc2008' +@@ -709,6 +721,18 @@ + # Use the Qt default. (We may update it for MacOS/X later.) + self.qmake_spec = '' + ++ # Get the details of the Python interpreter library. ++ py_major = self.py_version >> 16 ++ py_minor = (self.py_version >> 8) & 0x0ff ++ if sys.platform == 'win32' and not _POSIX_BUILD: ++ pylib_lib = 'python%d%d' % (py_major, py_minor) ++ pylib_dir = self.py_lib_dir ++ else: ++ abi = getattr(sys, 'abiflags', '') ++ pylib_lib = 'python%d.%d%s' % (py_major, py_minor, abi) ++ ++ self.py_pylib_lib = pylib_lib ++ + # Remaining values. + self.pyqt_sip_flags = None + self.pyqt_version_str = '' +@@ -797,6 +821,8 @@ + self.py_inc_dir = parser.get(section, 'py_inc_dir', self.py_inc_dir) + self.py_pylib_dir = parser.get(section, 'py_pylib_dir', + self.py_pylib_dir) ++ self.py_pylib_lib = parser.get(section, 'py_pylib_lib', ++ self.py_pylib_lib) + + self.sip_inc_dir = self.py_inc_dir + +@@ -973,6 +999,11 @@ + self.qt_inc_dir = qt_config.QT_INSTALL_HEADERS + self.qt_lib_dir = qt_config.QT_INSTALL_LIBS + ++ if "MSYSTEM" in os.environ: ++ self.api_dir = os.popen(' '.join(['cygpath', '--unix', self.api_dir])).readline().strip() ++ self.qt_inc_dir = os.popen(' '.join(['cygpath', '--unix', self.qt_inc_dir])).readline().strip() ++ self.qt_lib_dir = os.popen(' '.join(['cygpath', '--unix', self.qt_lib_dir])).readline().strip() ++ + if self.sysroot == '': + self.sysroot = getattr(qt_config, 'QT_SYSROOT', '') + +@@ -1121,7 +1152,7 @@ + default=None, action='store', metavar="FLAGS", + help="the sip flags used to build PyQt [default: query PyQt]") + +- if sys.platform != 'win32': ++ if sys.platform != 'win32' or _POSIX_BUILD: + p.add_option('--qmake', '-q', dest='qmake', type='string', + default=None, action='callback', + callback=optparser_store_abspath_exe, metavar="FILE", +@@ -1363,14 +1394,14 @@ + win32 { + PY_MODULE = %s.pyd + target.files = %s.pyd +- LIBS += -L%s ++ LIBS += -L%s -l%s + } else { + PY_MODULE = %s.so + target.files = %s.so + } + + target.CONFIG = no_check_exist +-''' % (mname, mname, quote(target_config.py_pylib_dir), mname, mname)) ++''' % (mname, mname, quote(target_config.py_pylib_dir), quote(target_config.py_pylib_lib), mname, mname)) + + pro.write(''' + target.path = %s +@@ -1523,6 +1554,8 @@ + to run. verbose is set if the output is to be displayed. + """ + ++ if "MSYSTEM" in os.environ: ++ cmd = 'sh.exe -c "%s"' % cmd.replace("\\", "/") + if verbose: + sys.stdout.write(cmd + "\n") + From c006167fd521c0e5bf7667a8b81cba8b166a3ad9 Mon Sep 17 00:00:00 2001 From: Frode Solheim Date: Tue, 16 Dec 2014 20:19:59 +0100 Subject: [PATCH 0181/2060] mingw-w64-python-lhafile: new package --- mingw-w64-python-lhafile/PKGBUILD | 74 +++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 mingw-w64-python-lhafile/PKGBUILD diff --git a/mingw-w64-python-lhafile/PKGBUILD b/mingw-w64-python-lhafile/PKGBUILD new file mode 100644 index 0000000000..3493a17bc6 --- /dev/null +++ b/mingw-w64-python-lhafile/PKGBUILD @@ -0,0 +1,74 @@ +# Maintainer: Frode Solheim + +_realname=python-lhafile +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-lhafile" + "${MINGW_PACKAGE_PREFIX}-python3-lhafile") +pkgver=0.1.0fs4 +pkgrel=2 +pkgdesc="LHA module for Python (mingw-w64)" +arch=('any') +license=('BSD') +url="http://fengestad.no/python-lhafile" +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3") +options=('staticlibs' 'strip' '!debug') +source=(http://fengestad.no/python-lhafile/python-lhafile-${pkgver}.tar.gz) +md5sums=('cedac40d5363bf49b51528522bf05c60') + +prepare() { + cp -a python-lhafile-$pkgver python2-lhafile-$pkgver-${CARCH} + cp -a python-lhafile-$pkgver python3-lhafile-$pkgver-${CARCH} +} + +build() { + echo "Building for Python 2" + cd python2-lhafile-$pkgver-${CARCH} + ${MINGW_PREFIX}/bin/python2 setup.py build + cd .. + + echo "Building for Python 3" + cd python3-lhafile-$pkgver-${CARCH} + ${MINGW_PREFIX}/bin/python3 setup.py build +} + +package_python2-lhafile() { + depends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python2-six") + + cd python2-lhafile-$pkgver-${CARCH} + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -m755 -d "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-lhafile" + install -m644 COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-lhafile/" +} + +package_python3-lhafile() { + depends=("${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python3-six") + + cd python3-lhafile-$pkgver-${CARCH} + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -m755 -d "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-lhafile" + install -m644 COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-lhafile/" +} + +package_mingw-w64-i686-python2-lhafile() { + package_python2-lhafile +} + +package_mingw-w64-i686-python3-lhafile() { + package_python3-lhafile +} + +package_mingw-w64-x86_64-python2-lhafile() { + package_python2-lhafile +} + +package_mingw-w64-x86_64-python3-lhafile() { + package_python3-lhafile +} From e891e8b4cb7b70399eaf2ccbaf446cd3227bbc68 Mon Sep 17 00:00:00 2001 From: Frode Solheim Date: Tue, 16 Dec 2014 21:12:25 +0100 Subject: [PATCH 0182/2060] mingw-w64-python-cx_Freeze: new package --- mingw-w64-python-cx_Freeze/PKGBUILD | 89 +++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 mingw-w64-python-cx_Freeze/PKGBUILD diff --git a/mingw-w64-python-cx_Freeze/PKGBUILD b/mingw-w64-python-cx_Freeze/PKGBUILD new file mode 100644 index 0000000000..bfd28d4332 --- /dev/null +++ b/mingw-w64-python-cx_Freeze/PKGBUILD @@ -0,0 +1,89 @@ +# Maintainer: Frode Solheim + +_realname=cx_Freeze +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-cx_Freeze" + "${MINGW_PACKAGE_PREFIX}-python3-cx_Freeze") +pkgver=4.3.3 +pkgrel=2 +pkgdesc="Python package for freezing scripts into executables (mingw-w64)" +arch=('any') +license=('PSF') +url="http://cx-freeze.sourceforge.net/" +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3") +options=('staticlibs' 'strip' '!debug') +source=("https://pypi.python.org/packages/source/c/cx_Freeze/cx_Freeze-$pkgver.tar.gz") +md5sums=('3cae24b98694540eb083ac500c0d4aa1') + +prepare() { + rm -Rf python2-cx_Freeze-$pkgver-${CARCH} + cp -a cx_Freeze-$pkgver python2-cx_Freeze-$pkgver-${CARCH} + rm -Rf python3-cx_Freeze-$pkgver-${CARCH} + cp -a cx_Freeze-$pkgver python3-cx_Freeze-$pkgver-${CARCH} +} + +build() { + echo "Building for Python 2" + cd python2-cx_Freeze-$pkgver-${CARCH} + ${MINGW_PREFIX}/bin/python2 setup.py build + cd .. + + echo "Building for Python 3" + cd python3-cx_Freeze-$pkgver-${CARCH} + ${MINGW_PREFIX}/bin/python3 setup.py build + cd .. +} + +package_python2-cx_Freeze() { + depends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python2-six") + + cd python2-cx_Freeze-$pkgver-${CARCH} + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze \ + # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-2.7 + # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall \ + # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall-2.7 + # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart \ + # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart-2.7 +} + +package_python3-cx_Freeze() { + depends=("${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python3-six") + + cd python3-cx_Freeze-$pkgver-${CARCH} + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze \ + # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-3.4 + # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall \ + # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall-3.4 + # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart \ + # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart-3.4 + + rm ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze + rm ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall + rm ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart +} + +package_mingw-w64-i686-python2-cx_Freeze() { + package_python2-cx_Freeze +} + +package_mingw-w64-i686-python3-cx_Freeze() { + package_python3-cx_Freeze +} + +package_mingw-w64-x86_64-python2-cx_Freeze() { + package_python2-cx_Freeze +} + +package_mingw-w64-x86_64-python3-cx_Freeze() { + package_python3-cx_Freeze +} From 0cc8986f1449df55b5289e1f12af6b30429608cc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 16 Dec 2014 23:51:00 +0300 Subject: [PATCH 0183/2060] python3: Update last patch to not break MSVC builds. Add LIBPL to library dirs when build extensions. --- .../0920-mingw-add-LIBPL-to-library-dirs.patch | 12 ++++++++++++ ...w64-dont-look-in-DLLs-folder-for-python-dll.patch | 2 +- mingw-w64-python3/PKGBUILD | 5 ++++- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-python3/0920-mingw-add-LIBPL-to-library-dirs.patch diff --git a/mingw-w64-python3/0920-mingw-add-LIBPL-to-library-dirs.patch b/mingw-w64-python3/0920-mingw-add-LIBPL-to-library-dirs.patch new file mode 100644 index 0000000000..75f2962d7e --- /dev/null +++ b/mingw-w64-python3/0920-mingw-add-LIBPL-to-library-dirs.patch @@ -0,0 +1,12 @@ +diff -Naur Python-3.4.2-orig/Lib/distutils/command/build_ext.py Python-3.4.2/Lib/distutils/command/build_ext.py +--- Python-3.4.2-orig/Lib/distutils/command/build_ext.py 2014-12-11 13:50:52.587800000 +0300 ++++ Python-3.4.2/Lib/distutils/command/build_ext.py 2014-12-11 13:58:32.038800000 +0300 +@@ -221,7 +221,7 @@ + + # for extensions under Cygwin and AtheOS Python's library directory must be + # appended to library_dirs +- if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos': ++ if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos' or self.plat_name.startswith(('mingw')): + if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): + # building third party extensions + self.library_dirs.append(os.path.join(sys.prefix, "lib", diff --git a/mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch b/mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch index b9885f5ac9..2f24e3d378 100644 --- a/mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch +++ b/mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch @@ -13,7 +13,7 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c + * a several seconds long delay before proceeding. Since this code does + * not do anything useful in the current state, we might just as + * well return immediately. */ -+#if 1 ++#ifdef __MINGW32__ + return 0; +#else wchar_t py3path[MAXPATHLEN+1]; diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 98b0a06571..6eea0f3530 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -109,6 +109,7 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0890-mingw-build-optimized-ext.patch 0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch 0910-fix-using-dllhandle-and-winver-mingw.patch + 0920-mingw-add-LIBPL-to-library-dirs.patch 1000-fix-building-posixmodule.patch 1010-install-msilib.patch 1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch) @@ -210,6 +211,7 @@ prepare() { patch -Np1 -i "${srcdir}"/0890-mingw-build-optimized-ext.patch patch -Np1 -i "${srcdir}"/0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch patch -Np1 -i "${srcdir}"/0910-fix-using-dllhandle-and-winver-mingw.patch + patch -Np1 -i "${srcdir}"/0920-mingw-add-LIBPL-to-library-dirs.patch patch -Np1 -i "${srcdir}"/1000-fix-building-posixmodule.patch patch -Np1 -i "${srcdir}"/1010-install-msilib.patch @@ -443,6 +445,7 @@ sha1sums=('0727d8a8498733baabe6f51632b9bab0cbaa9ada' '2dce462131f16248faeafb908fc03b6d2fb82504' '5c4101eed415f28b0277904e7686a352fc69d1d9' '3e80013b0742254cf68743e2bb257cc59213e007' + '9a56a98c0efac9930f57966b035b89e94cf44d3b' '25dfd3da896a1dafe8740e1036d41a10e179d080' 'ac74429997b79278834772579f81d46892571e87' - '903981a318b612a8b260520ea033ed9081f25aea') + 'ba914a51ccb83336e29a823e7ccc35764662f77e') From cddc3a0e38e1031e8a97c1984f930be7c89f9e62 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Dec 2014 00:10:30 +0300 Subject: [PATCH 0184/2060] python3: increase version. --- mingw-w64-python3/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 6eea0f3530..17feb85046 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -7,7 +7,7 @@ _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.4 pkgver=${_pybasever}.2 -pkgrel=6 +pkgrel=7 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') From 221e8b4624ebd3bc36f3b5e2eaf5d8acd419f308 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Dec 2014 09:56:58 +0300 Subject: [PATCH 0185/2060] mingw-w64 runtime update. --- mingw-w64-crt-git/PKGBUILD | 2 +- mingw-w64-headers-git/PKGBUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index cef90aeb99..fe70172565 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _ver_base=4.0.0 -pkgver=4.0.0.4350.e5944ae +pkgver=4.0.0.4376.d6916b1 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index fa03b5a58a..706742d0a3 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" _ver_base=4.0.0 -pkgver=4.0.0.4350.e5944ae +pkgver=4.0.0.4374.811484d pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From 2809c11485adf58f78583127c80144417164e7bc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Dec 2014 10:02:17 +0300 Subject: [PATCH 0186/2060] binutils-git: Update to git SHA[4ff5ed1]. Add patch for bigobj file format. --- .../0150-add-bigobj-format.patch | 942 ++++++++++++++++++ mingw-w64-binutils-git/PKGBUILD | 18 +- 2 files changed, 952 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-binutils-git/0150-add-bigobj-format.patch diff --git a/mingw-w64-binutils-git/0150-add-bigobj-format.patch b/mingw-w64-binutils-git/0150-add-bigobj-format.patch new file mode 100644 index 0000000000..8591969578 --- /dev/null +++ b/mingw-w64-binutils-git/0150-add-bigobj-format.patch @@ -0,0 +1,942 @@ +From 167ad85bf06582759e8dfe021aac9da79b81340d Mon Sep 17 00:00:00 2001 +From: Tristan Gingold +Date: Mon, 2 Dec 2013 14:30:32 +0100 +Subject: [PATCH] Add pe/x86_64 bigobj file format. + +bfd/ + * peicode.h (pe_ILF_object_p): Adjust, as the version number + has been read. + (pe_bfd_object_p): Also read version number to detect ILF. + * pe-x86_64.c (COFF_WITH_PE_BIGOBJ): Define. + (x86_64pe_bigobj_vec): Define + * coffcode.h (bfd_coff_backend_data): Add _bfd_coff_max_nscns field. + (bfd_coff_max_nscns): New macro. + (coff_compute_section_file_positions): Use unsigned int for + target_index. Compare with bfd_coff_max_nscns. + (bfd_coff_std_swap_table, ticoff0_swap_table, ticoff1_swap_table): + Set a value for _bfd_coff_max_nscns. + (header_bigobj_classid): New constant. + (coff_bigobj_swap_filehdr_in, coff_bigobj_swap_filehdr_out) + (coff_bigobj_swap_sym_in, coff_bigobj_swap_sym_out) + (coff_bigobj_swap_aux_in, coff_bigobj_swap_aux_out): New + functions. + (bigobj_swap_table): New table. + * libcoff.h: Regenerate. + * coff-sh.c (bfd_coff_small_swap_table): Likewise. + * coff-alpha.c (alpha_ecoff_backend_data): Add value for + _bfd_coff_max_nscns. + * coff-mips.c (mips_ecoff_backend_data): Likewise. + * coff-rs6000.c (bfd_xcoff_backend_data) + (bfd_pmac_xcoff_backend_data): Likewise. + * coff64-rs6000.c (bfd_xcoff_backend_data) + (bfd_xcoff_aix5_backend_data): Likewise. + * targets.c (x86_64pe_bigobj_vec): Declare. + * configure.in (x86_64pe_bigobj_vec): New vector. + * configure: Regenerate. + * config.bfd: Add bigobj object format for Windows targets. + +gas/ + * config/tc-i386.c (use_big_obj): Declare. + (OPTION_MBIG_OBJ): Define. + (md_longopts): Add -mbig-obj option. + (md_parse_option): Handle it. + (md_show_usage): Display help for this option. + (i386_target_format): Use bigobj for x86-64 if -mbig-obj. + * doc/c-i386.texi: Document the option. + +gas/testsuite/ + * gas/pe/big-obj.d, gas/pe/big-obj.s: Add test. + * gas/pe/pe.exp: Add test. + +include/coff/ + * pe.h (struct external_ANON_OBJECT_HEADER_BIGOBJ): Declare. + (FILHSZ_BIGOBJ): Define. + (struct external_SYMBOL_EX): Declare. + (SYMENT_BIGOBJ, SYMESZ_BIGOBJ): Define. + (union external_AUX_SYMBOL_EX): Declare. + (AUXENT_BIGOBJ, AUXESZ_BIGOBJ): Define. + * internal.h (struct internal_filehdr): Change type + of f_nscns. +--- + bfd/ChangeLog | 33 ++++++ + bfd/coff-alpha.c | 2 +- + bfd/coff-mips.c | 2 +- + bfd/coff-rs6000.c | 2 + + bfd/coff-sh.c | 1 + + bfd/coff64-rs6000.c | 2 + + bfd/coffcode.h | 258 ++++++++++++++++++++++++++++++++++++++++- + bfd/config.bfd | 2 +- + bfd/configure | 1 + + bfd/configure.in | 1 + + bfd/libcoff.h | 4 + + bfd/pe-x86_64.c | 54 +++++++++ + bfd/peicode.h | 19 ++- + bfd/targets.c | 2 + + gas/ChangeLog | 10 ++ + gas/config/tc-i386.c | 24 +++- + gas/doc/c-i386.texi | 5 + + gas/testsuite/ChangeLog | 5 + + gas/testsuite/gas/pe/big-obj.d | 11 ++ + gas/testsuite/gas/pe/big-obj.s | 16 +++ + gas/testsuite/gas/pe/pe.exp | 8 ++ + include/coff/ChangeLog | 11 ++ + include/coff/internal.h | 2 +- + include/coff/pe.h | 79 +++++++++++++ + 24 files changed, 537 insertions(+), 17 deletions(-) + create mode 100644 gas/testsuite/gas/pe/big-obj.d + create mode 100644 gas/testsuite/gas/pe/big-obj.s + +diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c +index a7a977c..8c68b56 100644 +--- a/bfd/coff-alpha.c ++++ b/bfd/coff-alpha.c +@@ -2241,7 +2241,7 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data = + alpha_ecoff_swap_filehdr_out, alpha_ecoff_swap_aouthdr_out, + alpha_ecoff_swap_scnhdr_out, + FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, +- ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, ++ ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 32768, + alpha_ecoff_swap_filehdr_in, alpha_ecoff_swap_aouthdr_in, + alpha_ecoff_swap_scnhdr_in, NULL, + alpha_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook, +diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c +index 454f89a..3a30d83 100644 +--- a/bfd/coff-mips.c ++++ b/bfd/coff-mips.c +@@ -1254,7 +1254,7 @@ static const struct ecoff_backend_data mips_ecoff_backend_data = + mips_ecoff_swap_filehdr_out, mips_ecoff_swap_aouthdr_out, + mips_ecoff_swap_scnhdr_out, + FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, +- ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, ++ ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 32768, + mips_ecoff_swap_filehdr_in, mips_ecoff_swap_aouthdr_in, + mips_ecoff_swap_scnhdr_in, NULL, + mips_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook, +diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c +index 06ee721..d0b8eaf 100644 +--- a/bfd/coff-rs6000.c ++++ b/bfd/coff-rs6000.c +@@ -4105,6 +4105,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data = + 3, /* _bfd_coff_default_section_alignment_power */ + FALSE, /* _bfd_coff_force_symnames_in_strings */ + 2, /* _bfd_coff_debug_string_prefix_length */ ++ 32768, /* _bfd_coff_max_nscns */ + coff_swap_filehdr_in, + coff_swap_aouthdr_in, + coff_swap_scnhdr_in, +@@ -4285,6 +4286,7 @@ static const struct xcoff_backend_data_rec bfd_pmac_xcoff_backend_data = + 3, /* _bfd_coff_default_section_alignment_power */ + FALSE, /* _bfd_coff_force_symnames_in_strings */ + 2, /* _bfd_coff_debug_string_prefix_length */ ++ 32768, /* _bfd_coff_max_nscns */ + coff_swap_filehdr_in, + coff_swap_aouthdr_in, + coff_swap_scnhdr_in, +diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c +index aca2b8b..1bf3f21 100644 +--- a/bfd/coff-sh.c ++++ b/bfd/coff-sh.c +@@ -3090,6 +3090,7 @@ static bfd_coff_backend_data bfd_coff_small_swap_table = + #else + 2, + #endif ++ 32768, + coff_swap_filehdr_in, coff_swap_aouthdr_in, coff_swap_scnhdr_in, + coff_swap_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook, + coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, +diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c +index 4bc7ea8..d660e3a5 100644 +--- a/bfd/coff64-rs6000.c ++++ b/bfd/coff64-rs6000.c +@@ -2542,6 +2542,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data = + 3, /* _bfd_coff_default_section_alignment_power */ + TRUE, /* _bfd_coff_force_symnames_in_strings */ + 4, /* _bfd_coff_debug_string_prefix_length */ ++ 32768, /* _bfd_coff_max_nscns */ + coff_swap_filehdr_in, + coff_swap_aouthdr_in, + coff_swap_scnhdr_in, +@@ -2801,6 +2802,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data = + 3, /* _bfd_coff_default_section_alignment_power */ + TRUE, /* _bfd_coff_force_symnames_in_strings */ + 4, /* _bfd_coff_debug_string_prefix_length */ ++ 32768, /* _bfd_coff_max_nscns */ + coff_swap_filehdr_in, + coff_swap_aouthdr_in, + coff_swap_scnhdr_in, +diff --git a/bfd/coffcode.h b/bfd/coffcode.h +index 11e70a5..d6fe39f 100644 +--- a/bfd/coffcode.h ++++ b/bfd/coffcode.h +@@ -1393,6 +1393,7 @@ Special entry points for gdb to swap in coff symbol table parts: + . unsigned int _bfd_coff_default_section_alignment_power; + . bfd_boolean _bfd_coff_force_symnames_in_strings; + . unsigned int _bfd_coff_debug_string_prefix_length; ++. unsigned int _bfd_coff_max_nscns; + . + . void (*_bfd_coff_swap_filehdr_in) + . (bfd *, void *, void *); +@@ -1530,6 +1531,9 @@ Special entry points for gdb to swap in coff symbol table parts: + . ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable)) + .#define bfd_coff_default_section_alignment_power(abfd) \ + . (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) ++.#define bfd_coff_max_nscns(abfd) \ ++. (coff_backend_info (abfd)->_bfd_coff_max_nscns) ++. + .#define bfd_coff_swap_filehdr_in(abfd, i,o) \ + . ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) + . +@@ -3136,7 +3140,7 @@ coff_compute_section_file_positions (bfd * abfd) + asection *current; + file_ptr sofar = bfd_coff_filhsz (abfd); + bfd_boolean align_adjust; +- int target_index; ++ unsigned int target_index; + #ifdef ALIGN_SECTIONS_IN_FILE + asection *previous = NULL; + file_ptr old_sofar; +@@ -3304,7 +3308,7 @@ coff_compute_section_file_positions (bfd * abfd) + } + #endif /* ! COFF_IMAGE_WITH_PE */ + +- if (target_index >= 32768) ++ if (target_index >= bfd_coff_max_nscns (abfd)) + { + bfd_set_error (bfd_error_file_too_big); + (*_bfd_error_handler) +@@ -5497,6 +5501,7 @@ static bfd_coff_backend_data bfd_coff_std_swap_table ATTRIBUTE_UNUSED = + #else + 2, + #endif ++ 32768, + coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, + coff_SWAP_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook, + coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, +@@ -5537,6 +5542,7 @@ static bfd_coff_backend_data ticoff0_swap_table = + #else + 2, + #endif ++ 32768, + coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, + coff_SWAP_reloc_in, ticoff0_bad_format_hook, coff_set_arch_mach_hook, + coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, +@@ -5578,6 +5584,7 @@ static bfd_coff_backend_data ticoff1_swap_table = + #else + 2, + #endif ++ 32768, + coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, + coff_SWAP_reloc_in, ticoff1_bad_format_hook, coff_set_arch_mach_hook, + coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, +@@ -5591,6 +5598,253 @@ static bfd_coff_backend_data ticoff1_swap_table = + }; + #endif + ++#ifdef COFF_WITH_PE_BIGOBJ ++/* The UUID for bigobj files. */ ++ ++static const char header_bigobj_classid[16] = ++{ ++ 0xC7, 0xA1, 0xBA, 0xD1, ++ 0xEE, 0xBA, ++ 0xa9, 0x4b, ++ 0xAF, 0x20, ++ 0xFA, 0xF6, 0x6A, 0xA4, 0xDC, 0xB8 ++}; ++ ++/* Swap routines. */ ++ ++static void ++coff_bigobj_swap_filehdr_in (bfd * abfd, void * src, void * dst) ++{ ++ struct external_ANON_OBJECT_HEADER_BIGOBJ *filehdr_src = ++ (struct external_ANON_OBJECT_HEADER_BIGOBJ *) src; ++ struct internal_filehdr *filehdr_dst = (struct internal_filehdr *) dst; ++ ++ filehdr_dst->f_magic = H_GET_16 (abfd, filehdr_src->Machine); ++ filehdr_dst->f_nscns = H_GET_32 (abfd, filehdr_src->NumberOfSections); ++ filehdr_dst->f_timdat = H_GET_32 (abfd, filehdr_src->TimeDateStamp); ++ filehdr_dst->f_symptr = ++ GET_FILEHDR_SYMPTR (abfd, filehdr_src->PointerToSymbolTable); ++ filehdr_dst->f_nsyms = H_GET_32 (abfd, filehdr_src->NumberOfSymbols); ++ filehdr_dst->f_opthdr = 0; ++ filehdr_dst->f_flags = 0; ++ ++ /* Check other magic numbers. */ ++ if (H_GET_16 (abfd, filehdr_src->Sig1) != IMAGE_FILE_MACHINE_UNKNOWN ++ || H_GET_16 (abfd, filehdr_src->Sig2) != 0xffff ++ || H_GET_16 (abfd, filehdr_src->Version) != 2 ++ || memcmp (filehdr_src->ClassID, header_bigobj_classid, 16) != 0) ++ filehdr_dst->f_opthdr = 0xffff; ++ ++ /* Note that CLR metadata are ignored. */ ++} ++ ++static unsigned int ++coff_bigobj_swap_filehdr_out (bfd *abfd, void * in, void * out) ++{ ++ struct internal_filehdr *filehdr_in = (struct internal_filehdr *) in; ++ struct external_ANON_OBJECT_HEADER_BIGOBJ *filehdr_out = ++ (struct external_ANON_OBJECT_HEADER_BIGOBJ *) out; ++ ++ memset (filehdr_out, 0, sizeof (*filehdr_out)); ++ ++ H_PUT_16 (abfd, IMAGE_FILE_MACHINE_UNKNOWN, filehdr_out->Sig1); ++ H_PUT_16 (abfd, 0xffff, filehdr_out->Sig2); ++ H_PUT_16 (abfd, 2, filehdr_out->Version); ++ memcpy (filehdr_out->ClassID, header_bigobj_classid, 16); ++ H_PUT_16 (abfd, filehdr_in->f_magic, filehdr_out->Machine); ++ H_PUT_32 (abfd, filehdr_in->f_nscns, filehdr_out->NumberOfSections); ++ H_PUT_32 (abfd, filehdr_in->f_timdat, filehdr_out->TimeDateStamp); ++ PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr, ++ filehdr_out->PointerToSymbolTable); ++ H_PUT_32 (abfd, filehdr_in->f_nsyms, filehdr_out->NumberOfSymbols); ++ ++ return bfd_coff_filhsz (abfd); ++} ++ ++static void ++coff_bigobj_swap_sym_in (bfd * abfd, void * ext1, void * in1) ++{ ++ SYMENT_BIGOBJ *ext = (SYMENT_BIGOBJ *) ext1; ++ struct internal_syment *in = (struct internal_syment *) in1; ++ ++ if (ext->e.e_name[0] == 0) ++ { ++ in->_n._n_n._n_zeroes = 0; ++ in->_n._n_n._n_offset = H_GET_32 (abfd, ext->e.e.e_offset); ++ } ++ else ++ { ++#if SYMNMLEN != E_SYMNMLEN ++#error we need to cope with truncating or extending SYMNMLEN ++#else ++ memcpy (in->_n._n_name, ext->e.e_name, SYMNMLEN); ++#endif ++ } ++ ++ in->n_value = H_GET_32 (abfd, ext->e_value); ++ in->n_scnum = H_GET_32 (abfd, ext->e_scnum); ++ in->n_type = H_GET_16 (abfd, ext->e_type); ++ in->n_sclass = H_GET_8 (abfd, ext->e_sclass); ++ in->n_numaux = H_GET_8 (abfd, ext->e_numaux); ++} ++ ++static unsigned int ++coff_bigobj_swap_sym_out (bfd * abfd, void * inp, void * extp) ++{ ++ struct internal_syment *in = (struct internal_syment *) inp; ++ SYMENT_BIGOBJ *ext = (SYMENT_BIGOBJ *) extp; ++ ++ if (in->_n._n_name[0] == 0) ++ { ++ H_PUT_32 (abfd, 0, ext->e.e.e_zeroes); ++ H_PUT_32 (abfd, in->_n._n_n._n_offset, ext->e.e.e_offset); ++ } ++ else ++ { ++#if SYMNMLEN != E_SYMNMLEN ++#error we need to cope with truncating or extending SYMNMLEN ++#else ++ memcpy (ext->e.e_name, in->_n._n_name, SYMNMLEN); ++#endif ++ } ++ ++ H_PUT_32 (abfd, in->n_value, ext->e_value); ++ H_PUT_32 (abfd, in->n_scnum, ext->e_scnum); ++ ++ H_PUT_16 (abfd, in->n_type, ext->e_type); ++ H_PUT_8 (abfd, in->n_sclass, ext->e_sclass); ++ H_PUT_8 (abfd, in->n_numaux, ext->e_numaux); ++ ++ return SYMESZ_BIGOBJ; ++} ++ ++static void ++coff_bigobj_swap_aux_in (bfd *abfd, ++ void * ext1, ++ int type, ++ int in_class, ++ int indx, ++ int numaux, ++ void * in1) ++{ ++ AUXENT_BIGOBJ *ext = (AUXENT_BIGOBJ *) ext1; ++ union internal_auxent *in = (union internal_auxent *) in1; ++ ++ switch (in_class) ++ { ++ case C_FILE: ++ if (numaux > 1) ++ { ++ if (indx == 0) ++ memcpy (in->x_file.x_fname, ext->File.Name, ++ numaux * sizeof (AUXENT_BIGOBJ)); ++ } ++ else ++ memcpy (in->x_file.x_fname, ext->File.Name, sizeof (ext->File.Name)); ++ break; ++ ++ case C_STAT: ++ case C_LEAFSTAT: ++ case C_HIDDEN: ++ if (type == T_NULL) ++ { ++ in->x_scn.x_scnlen = H_GET_32 (abfd, ext->Section.Length); ++ in->x_scn.x_nreloc = ++ H_GET_16 (abfd, ext->Section.NumberOfRelocations); ++ in->x_scn.x_nlinno = ++ H_GET_16 (abfd, ext->Section.NumberOfLinenumbers); ++ in->x_scn.x_checksum = H_GET_32 (abfd, ext->Section.Checksum); ++ in->x_scn.x_associated = H_GET_16 (abfd, ext->Section.Number) ++ | (H_GET_16 (abfd, ext->Section.HighNumber) << 16); ++ in->x_scn.x_comdat = H_GET_8 (abfd, ext->Section.Selection); ++ return; ++ } ++ break; ++ ++ default: ++ in->x_sym.x_tagndx.l = H_GET_32 (abfd, ext->Sym.WeakDefaultSymIndex); ++ /* Characteristics is ignored. */ ++ break; ++ } ++} ++ ++static unsigned int ++coff_bigobj_swap_aux_out (bfd * abfd, ++ void * inp, ++ int type, ++ int in_class, ++ int indx ATTRIBUTE_UNUSED, ++ int numaux ATTRIBUTE_UNUSED, ++ void * extp) ++{ ++ union internal_auxent * in = (union internal_auxent *) inp; ++ AUXENT_BIGOBJ *ext = (AUXENT_BIGOBJ *) extp; ++ ++ memset (ext, 0, AUXESZ); ++ ++ switch (in_class) ++ { ++ case C_FILE: ++ memcpy (ext->File.Name, in->x_file.x_fname, sizeof (ext->File.Name)); ++ ++ return AUXESZ; ++ ++ case C_STAT: ++ case C_LEAFSTAT: ++ case C_HIDDEN: ++ if (type == T_NULL) ++ { ++ H_PUT_32 (abfd, in->x_scn.x_scnlen, ext->Section.Length); ++ H_PUT_16 (abfd, in->x_scn.x_nreloc, ++ ext->Section.NumberOfRelocations); ++ H_PUT_16 (abfd, in->x_scn.x_nlinno, ++ ext->Section.NumberOfLinenumbers); ++ H_PUT_32 (abfd, in->x_scn.x_checksum, ext->Section.Checksum); ++ H_PUT_16 (abfd, in->x_scn.x_associated & 0xffff, ++ ext->Section.Number); ++ H_PUT_16 (abfd, (in->x_scn.x_associated >> 16), ++ ext->Section.HighNumber); ++ H_PUT_8 (abfd, in->x_scn.x_comdat, ext->Section.Selection); ++ return AUXESZ; ++ } ++ break; ++ } ++ ++ H_PUT_32 (abfd, in->x_sym.x_tagndx.l, ext->Sym.WeakDefaultSymIndex); ++ H_PUT_32 (abfd, 1, ext->Sym.WeakSearchType); ++ ++ return AUXESZ; ++} ++ ++static bfd_coff_backend_data bigobj_swap_table = ++{ ++ coff_bigobj_swap_aux_in, coff_bigobj_swap_sym_in, coff_SWAP_lineno_in, ++ coff_bigobj_swap_aux_out, coff_bigobj_swap_sym_out, ++ coff_SWAP_lineno_out, coff_SWAP_reloc_out, ++ coff_bigobj_swap_filehdr_out, coff_SWAP_aouthdr_out, ++ coff_SWAP_scnhdr_out, ++ FILHSZ_BIGOBJ, AOUTSZ, SCNHSZ, SYMESZ_BIGOBJ, AUXESZ_BIGOBJ, ++ RELSZ, LINESZ, FILNMLEN_BIGOBJ, ++ TRUE, ++ COFF_DEFAULT_LONG_SECTION_NAMES, ++ COFF_DEFAULT_SECTION_ALIGNMENT_POWER, ++ FALSE, ++ 2, ++ 1U << 31, ++ coff_bigobj_swap_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, ++ coff_SWAP_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook, ++ coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, ++ coff_slurp_symbol_table, symname_in_debug_hook, coff_pointerize_aux_hook, ++ coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate, ++ coff_classify_symbol, coff_compute_section_file_positions, ++ coff_start_final_link, coff_relocate_section, coff_rtype_to_howto, ++ coff_adjust_symndx, coff_link_add_one_symbol, ++ coff_link_output_has_begun, coff_final_link_postscript, ++ bfd_pe_print_pdata /* huh */ ++}; ++ ++#endif /* COFF_WITH_PE_BIGOBJ */ ++ + #ifndef coff_close_and_cleanup + #define coff_close_and_cleanup _bfd_generic_close_and_cleanup + #endif +diff --git a/bfd/config.bfd b/bfd/config.bfd +index 59b9f64..147954a 100644 +--- a/bfd/config.bfd ++++ b/bfd/config.bfd +@@ -676,7 +676,7 @@ case "${targ}" in + ;; + x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin) + targ_defvec=x86_64pe_vec +- targ_selvecs="x86_64pe_vec x86_64pei_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386pe_vec i386pei_vec bfd_elf32_i386_vec" ++ targ_selvecs="x86_64pe_vec x86_64pei_vec x86_64pe_bigobj_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386pe_vec i386pei_vec bfd_elf32_i386_vec" + want64=true + targ_underscore=no + ;; +diff --git a/bfd/configure b/bfd/configure +index bef7295..fbf5f44 100755 +--- a/bfd/configure ++++ b/bfd/configure +@@ -15453,6 +15453,7 @@ do + i386pei_vec) tb="$tb pei-i386.lo peigen.lo cofflink.lo" ;; + x86_64pe_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; + x86_64pei_vec) tb="$tb pei-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; ++ x86_64pe_bigobj_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; + i860coff_vec) tb="$tb coff-i860.lo cofflink.lo" ;; + icoff_big_vec) tb="$tb coff-i960.lo cofflink.lo" ;; + icoff_little_vec) tb="$tb coff-i960.lo cofflink.lo" ;; +diff --git a/bfd/configure.in b/bfd/configure.in +index da8c6dc..f1ec965 100644 +--- a/bfd/configure.in ++++ b/bfd/configure.in +@@ -942,6 +942,7 @@ do + i386pei_vec) tb="$tb pei-i386.lo peigen.lo cofflink.lo" ;; + x86_64pe_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; + x86_64pei_vec) tb="$tb pei-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; ++ x86_64pe_bigobj_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; + i860coff_vec) tb="$tb coff-i860.lo cofflink.lo" ;; + icoff_big_vec) tb="$tb coff-i960.lo cofflink.lo" ;; + icoff_little_vec) tb="$tb coff-i960.lo cofflink.lo" ;; +diff --git a/bfd/libcoff.h b/bfd/libcoff.h +index b5a9852..36c9829 100644 +--- a/bfd/libcoff.h ++++ b/bfd/libcoff.h +@@ -736,6 +736,7 @@ typedef struct + unsigned int _bfd_coff_default_section_alignment_power; + bfd_boolean _bfd_coff_force_symnames_in_strings; + unsigned int _bfd_coff_debug_string_prefix_length; ++ unsigned int _bfd_coff_max_nscns; + + void (*_bfd_coff_swap_filehdr_in) + (bfd *, void *, void *); +@@ -873,6 +874,9 @@ typedef struct + ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable)) + #define bfd_coff_default_section_alignment_power(abfd) \ + (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) ++#define bfd_coff_max_nscns(abfd) \ ++ (coff_backend_info (abfd)->_bfd_coff_max_nscns) ++ + #define bfd_coff_swap_filehdr_in(abfd, i,o) \ + ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) + +diff --git a/bfd/pe-x86_64.c b/bfd/pe-x86_64.c +index 26bb99d..16b13ec 100644 +--- a/bfd/pe-x86_64.c ++++ b/bfd/pe-x86_64.c +@@ -27,6 +27,7 @@ + #define TARGET_NAME "pe-x86-64" + #define COFF_WITH_PE + #define COFF_WITH_pex64 ++#define COFF_WITH_PE_BIGOBJ + #define PCRELOFFSET TRUE + #if defined (USE_MINGW64_LEADING_UNDERSCORES) + #define TARGET_UNDERSCORE '_' +@@ -58,3 +59,56 @@ + COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 } + + #include "coff-x86_64.c" ++ ++/* Entry for big object files. */ ++ ++const bfd_target ++x86_64pe_bigobj_vec = ++{ ++ "pe-bigobj-x86-64", /* Name. */ ++ bfd_target_coff_flavour, ++ BFD_ENDIAN_LITTLE, /* Data byte order is little. */ ++ BFD_ENDIAN_LITTLE, /* Header byte order is little. */ ++ ++ (HAS_RELOC | EXEC_P | /* Object flags. */ ++ HAS_LINENO | HAS_DEBUG | ++ HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS), ++ ++ (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC /* Section flags. */ ++ | SEC_LINK_ONCE | SEC_LINK_DUPLICATES | SEC_READONLY | SEC_DEBUGGING ++ | SEC_CODE | SEC_DATA | SEC_EXCLUDE ), ++ ++ TARGET_UNDERSCORE, /* Leading underscore. */ ++ '/', /* Ar_pad_char. */ ++ 15, /* Ar_max_namelen. */ ++ 0, /* match priority. */ ++ ++ bfd_getl64, bfd_getl_signed_64, bfd_putl64, ++ bfd_getl32, bfd_getl_signed_32, bfd_putl32, ++ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Data. */ ++ bfd_getl64, bfd_getl_signed_64, bfd_putl64, ++ bfd_getl32, bfd_getl_signed_32, bfd_putl32, ++ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Hdrs. */ ++ ++ /* Note that we allow an object file to be treated as a core file as well. */ ++ { _bfd_dummy_target, amd64coff_object_p, /* BFD_check_format. */ ++ bfd_generic_archive_p, amd64coff_object_p }, ++ { bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format. */ ++ bfd_false }, ++ { bfd_false, coff_write_object_contents, /* bfd_write_contents. */ ++ _bfd_write_archive_contents, bfd_false }, ++ ++ BFD_JUMP_TABLE_GENERIC (coff), ++ BFD_JUMP_TABLE_COPY (coff), ++ BFD_JUMP_TABLE_CORE (_bfd_nocore), ++ BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), ++ BFD_JUMP_TABLE_SYMBOLS (coff), ++ BFD_JUMP_TABLE_RELOCS (coff), ++ BFD_JUMP_TABLE_WRITE (coff), ++ BFD_JUMP_TABLE_LINK (coff), ++ BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), ++ ++ NULL, ++ ++ &bigobj_swap_table ++}; +diff --git a/bfd/peicode.h b/bfd/peicode.h +index 8fd689c..157879b 100644 +--- a/bfd/peicode.h ++++ b/bfd/peicode.h +@@ -1077,7 +1077,7 @@ pe_ILF_build_a_bfd (bfd * abfd, + static const bfd_target * + pe_ILF_object_p (bfd * abfd) + { +- bfd_byte buffer[16]; ++ bfd_byte buffer[14]; + bfd_byte * ptr; + char * symbol_name; + char * source_dll; +@@ -1087,17 +1087,13 @@ pe_ILF_object_p (bfd * abfd) + unsigned int types; + unsigned int magic; + +- /* Upon entry the first four buyes of the ILF header have ++ /* Upon entry the first six bytes of the ILF header have + already been read. Now read the rest of the header. */ +- if (bfd_bread (buffer, (bfd_size_type) 16, abfd) != 16) ++ if (bfd_bread (buffer, (bfd_size_type) 14, abfd) != 14) + return NULL; + + ptr = buffer; + +- /* We do not bother to check the version number. +- version = H_GET_16 (abfd, ptr); */ +- ptr += 2; +- + machine = H_GET_16 (abfd, ptr); + ptr += 2; + +@@ -1251,7 +1247,7 @@ pe_ILF_object_p (bfd * abfd) + static const bfd_target * + pe_bfd_object_p (bfd * abfd) + { +- bfd_byte buffer[4]; ++ bfd_byte buffer[6]; + struct external_PEI_DOS_hdr dos_hdr; + struct external_PEI_IMAGE_hdr image_hdr; + struct internal_filehdr internal_f; +@@ -1260,15 +1256,18 @@ pe_bfd_object_p (bfd * abfd) + file_ptr offset; + + /* Detect if this a Microsoft Import Library Format element. */ ++ /* First read the beginning of the header. */ + if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 +- || bfd_bread (buffer, (bfd_size_type) 4, abfd) != 4) ++ || bfd_bread (buffer, (bfd_size_type) 6, abfd) != 6) + { + if (bfd_get_error () != bfd_error_system_call) + bfd_set_error (bfd_error_wrong_format); + return NULL; + } + +- if (H_GET_32 (abfd, buffer) == 0xffff0000) ++ /* Then check the magic and the version (only 0 is supported). */ ++ if (H_GET_32 (abfd, buffer) == 0xffff0000 ++ && H_GET_16 (abfd, buffer + 4) == 0) + return pe_ILF_object_p (abfd); + + if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 +diff --git a/bfd/targets.c b/bfd/targets.c +index f502eec..058ab77 100644 +--- a/bfd/targets.c ++++ b/bfd/targets.c +@@ -896,6 +896,7 @@ extern const bfd_target w65_vec; + extern const bfd_target we32kcoff_vec; + extern const bfd_target x86_64pe_vec; + extern const bfd_target x86_64pei_vec; ++extern const bfd_target x86_64pe_bigobj_vec; + extern const bfd_target x86_64coff_vec; + extern const bfd_target z80coff_vec; + extern const bfd_target z8kcoff_vec; +@@ -1231,6 +1232,7 @@ static const bfd_target * const _bfd_target_vector[] = + &x86_64coff_vec, + &x86_64pe_vec, + &x86_64pei_vec, ++ &x86_64pe_bigobj_vec, + #endif + &i860coff_vec, + &icoff_big_vec, +diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c +index f6283a6..734935a 100644 +--- a/gas/config/tc-i386.c ++++ b/gas/config/tc-i386.c +@@ -513,6 +513,11 @@ enum x86_elf_abi + static enum x86_elf_abi x86_elf_abi = I386_ABI; + #endif + ++#if defined (TE_PE) || defined (TE_PEP) ++/* Use big object file format. */ ++static int use_big_obj = 0; ++#endif ++ + /* 1 for intel syntax, + 0 if att syntax. */ + static int intel_syntax = 0; +@@ -9497,6 +9502,7 @@ const char *md_shortopts = "qn"; + #define OPTION_MADD_BND_PREFIX (OPTION_MD_BASE + 15) + #define OPTION_MEVEXLIG (OPTION_MD_BASE + 16) + #define OPTION_MEVEXWIG (OPTION_MD_BASE + 17) ++#define OPTION_MBIG_OBJ (OPTION_MD_BASE + 18) + + struct option md_longopts[] = + { +@@ -9523,6 +9529,9 @@ struct option md_longopts[] = + {"madd-bnd-prefix", no_argument, NULL, OPTION_MADD_BND_PREFIX}, + {"mevexlig", required_argument, NULL, OPTION_MEVEXLIG}, + {"mevexwig", required_argument, NULL, OPTION_MEVEXWIG}, ++# if defined (TE_PE) || defined (TE_PEP) ++ {"mbig-obj", no_argument, NULL, OPTION_MBIG_OBJ}, ++#endif + {NULL, no_argument, NULL, 0} + }; + size_t md_longopts_size = sizeof (md_longopts); +@@ -9804,6 +9813,12 @@ md_parse_option (int c, char *arg) + as_fatal (_("invalid -mevexwig= option: `%s'"), arg); + break; + ++# if defined (TE_PE) || defined (TE_PEP) ++ case OPTION_MBIG_OBJ: ++ use_big_obj = 1; ++ break; ++#endif ++ + default: + return 0; + } +@@ -9956,6 +9971,10 @@ md_show_usage (FILE *stream) + -mold-gcc support old (<= 2.8.1) versions of gcc\n")); + fprintf (stream, _("\ + -madd-bnd-prefix add BND prefix for all valid branches\n")); ++# if defined (TE_PE) || defined (TE_PEP) ++ fprintf (stream, _("\ ++ -mbig-obj generate big object files\n")); ++#endif + } + + #if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \ +@@ -9994,7 +10013,10 @@ i386_target_format (void) + #if defined (OBJ_MAYBE_COFF) || defined (OBJ_COFF) + # if defined (TE_PE) || defined (TE_PEP) + case bfd_target_coff_flavour: +- return flag_code == CODE_64BIT ? "pe-x86-64" : "pe-i386"; ++ if (flag_code == CODE_64BIT) ++ return use_big_obj ? "pe-bigobj-x86-64" : "pe-x86-64"; ++ else ++ return "pe-i386"; + # elif defined (TE_GO32) + case bfd_target_coff_flavour: + return "coff-go32"; +diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi +index 18bd96a..1952cee 100644 +--- a/gas/doc/c-i386.texi ++++ b/gas/doc/c-i386.texi +@@ -283,6 +283,11 @@ The @code{.att_syntax} and @code{.intel_syntax} directives will take precedent. + This option forces the assembler to add BND prefix to all branches, even + if such prefix was not explicitly specified in the source code. + ++@cindex @samp{-mbig-obj} option, x86-64 ++@item -mbig-obj ++On x86-64 PE/COFF target this option forces the use of big object file ++format, which allows more than 32768 sections. ++ + @end table + @c man end + +diff --git a/gas/testsuite/gas/pe/big-obj.d b/gas/testsuite/gas/pe/big-obj.d +new file mode 100644 +index 0000000..95ff1d8 +--- /dev/null ++++ b/gas/testsuite/gas/pe/big-obj.d +@@ -0,0 +1,11 @@ ++#as: -mbig-obj ++#objdump: -h ++#name: PE x64 big obj ++ ++.*: *file format pe-bigobj-.* ++ ++Sections: ++#... ++5000. \.data\$a49999 .* ++ CONTENTS, ALLOC, LOAD, DATA ++ +diff --git a/gas/testsuite/gas/pe/big-obj.s b/gas/testsuite/gas/pe/big-obj.s +new file mode 100644 +index 0000000..07edc91 +--- /dev/null ++++ b/gas/testsuite/gas/pe/big-obj.s +@@ -0,0 +1,16 @@ ++ .file "big-obj.s" ++ ++ .irp n,0,1,2,3,4 ++ .irp m,0,1,2,3,4,5,6,7,8,9 ++ .irp c,0,1,2,3,4,5,6,7,8,9 ++ .irp d,0,1,2,3,4,5,6,7,8,9 ++ .irp u,0,1,2,3,4,5,6,7,8,9 ++ .globl a\n\m\c\d\u ++ .section .data$a\n\m\c\d\u,"w" ++a\n\m\c\d\u : ++ .byte 1 ++ .endr ++ .endr ++ .endr ++ .endr ++ .endr +diff --git a/gas/testsuite/gas/pe/pe.exp b/gas/testsuite/gas/pe/pe.exp +index 0b70ee6..c1c5f49 100644 +--- a/gas/testsuite/gas/pe/pe.exp ++++ b/gas/testsuite/gas/pe/pe.exp +@@ -48,3 +48,11 @@ if ([istarget "x86_64-*-mingw*"]) then { + run_dump_test "peseh-x64-5" + run_dump_test "peseh-x64-6" + } ++ ++# Big obj ++ ++ ++if ([istarget "x86_64-*-mingw*"]) then { ++ # Currently only supported on x86_64 ++ run_dump_test "big-obj" ++} +diff --git a/include/coff/internal.h b/include/coff/internal.h +index 4f99f2f..b34e5c6 100644 +--- a/include/coff/internal.h ++++ b/include/coff/internal.h +@@ -73,7 +73,7 @@ struct internal_filehdr + + /* Standard coff internal info. */ + unsigned short f_magic; /* magic number */ +- unsigned short f_nscns; /* number of sections */ ++ unsigned int f_nscns; /* number of sections */ + long f_timdat; /* time & date stamp */ + bfd_vma f_symptr; /* file pointer to symtab */ + long f_nsyms; /* number of symtab entries */ +diff --git a/include/coff/pe.h b/include/coff/pe.h +index 0093398..3166531 100644 +--- a/include/coff/pe.h ++++ b/include/coff/pe.h +@@ -358,6 +358,85 @@ typedef struct + #define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 + #define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 + ++/* Bigobj header. */ ++struct external_ANON_OBJECT_HEADER_BIGOBJ ++{ ++ /* ANON_OBJECT_HEADER_V2 header. */ ++ char Sig1[2]; ++ char Sig2[2]; ++ char Version[2]; ++ char Machine[2]; ++ char TimeDateStamp[4]; ++ char ClassID[16]; ++ char SizeOfData[4]; ++ char Flags[4]; ++ char MetaDataSize[4]; ++ char MetaDataOffset[4]; ++ ++ /* BIGOBJ specific. */ ++ char NumberOfSections[4]; ++ char PointerToSymbolTable[4]; ++ char NumberOfSymbols[4]; ++}; ++ ++#define FILHSZ_BIGOBJ (14 * 4) ++ ++struct external_SYMBOL_EX ++{ ++ union ++ { ++ char e_name[E_SYMNMLEN]; ++ ++ struct ++ { ++ char e_zeroes[4]; ++ char e_offset[4]; ++ } e; ++ } e; ++ ++ char e_value[4]; ++ char e_scnum[4]; ++ char e_type[2]; ++ char e_sclass[1]; ++ char e_numaux[1]; ++} ATTRIBUTE_PACKED ; ++ ++#define SYMENT_BIGOBJ struct external_SYMBOL_EX ++#define SYMESZ_BIGOBJ 20 ++ ++#define FILNMLEN_BIGOBJ 20 ++ ++union external_AUX_SYMBOL_EX ++{ ++ struct ++ { ++ char WeakDefaultSymIndex[4]; ++ char WeakSearchType[4]; ++ char rgbReserved[12]; ++ } Sym; ++ ++ struct ++ { ++ char Name[FILNMLEN_BIGOBJ]; ++ } File; ++ ++ struct ++ { ++ char Length[4]; /* section length */ ++ char NumberOfRelocations[2]; /* # relocation entries */ ++ char NumberOfLinenumbers[2]; /* # line numbers */ ++ char Checksum[4]; /* section COMDAT checksum */ ++ char Number[2]; /* COMDAT associated section index */ ++ char Selection[1]; /* COMDAT selection number */ ++ char bReserved[1]; ++ char HighNumber[2]; /* High bits of COMDAT associated sec. */ ++ char rgbReserved[2]; ++ } Section; ++} ATTRIBUTE_PACKED; ++ ++#define AUXENT_BIGOBJ union external_AUX_SYMBOL_EX ++#define AUXESZ_BIGOBJ 20 ++ + /* .pdata/.xdata defines and structures for x64 PE+ for exception handling. */ + + /* .pdata in exception directory. */ +-- +1.8.5.5 + diff --git a/mingw-w64-binutils-git/PKGBUILD b/mingw-w64-binutils-git/PKGBUILD index 7729603e23..1e51141bc9 100644 --- a/mingw-w64-binutils-git/PKGBUILD +++ b/mingw-w64-binutils-git/PKGBUILD @@ -7,7 +7,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") replaces="${MINGW_PACKAGE_PREFIX}-${_realname}=${_base_ver}" -pkgver=2.24.78559.d43808f +pkgver=2.24.78632.4ff5ed1 pkgrel=1 pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('any') @@ -33,11 +33,12 @@ source=("${_realname}"::"git://sourceware.org/git/binutils-gdb.git#branch=${_rea 0015-dont-link-ld-to-libiberty.mingw.patch 0016-fix-w32-lto-bug-13557.all.patch 0017-fix-iconv-linking.all.patch - '0100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch' - '0110-binutils-mingw-gnu-print.patch' - '0120-This-fixes-a-compile-time-warning.patch' - '0130-Bug-16858-weak-external-reference-has-wrong-value.patch' - '0140-make-relocbase-unsigned.patch') + 0100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch + 0110-binutils-mingw-gnu-print.patch + 0120-This-fixes-a-compile-time-warning.patch + 0130-Bug-16858-weak-external-reference-has-wrong-value.patch + 0140-make-relocbase-unsigned.patch + 0150-add-bigobj-format.patch) md5sums=('SKIP' 'f3be04ed70b9d352a2c0e2a80b0706b2' '2cc89a3c09cafa30c91ac890d3c68932' @@ -56,7 +57,8 @@ md5sums=('SKIP' '6e8b708d437bccbfa46ba56421dabb40' '10fcfbca65c6939840dd0f4a575b8a99' '7b0d532ba0419ed2bdae746b1a4f42b6' - '0513245c067162fa9f79b7e0befd201d') + '0513245c067162fa9f79b7e0befd201d' + '62c646e3f8c4cb08d0916ab34faa8254') pkgver() { cd "$srcdir/$_realname" @@ -89,7 +91,7 @@ prepare() { # attempts to double the amount of room we have. patch -p1 -i "${srcdir}"/0140-make-relocbase-unsigned.patch - + patch -p1 -i "${srcdir}"/0150-add-bigobj-format.patch } build() { From 7464c4c2aa8358ef44d25acae75adb88da15f97a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Dec 2014 11:16:58 +0300 Subject: [PATCH 0187/2060] libassuan: Update to 2.2.0 --- mingw-w64-libassuan/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libassuan/PKGBUILD b/mingw-w64-libassuan/PKGBUILD index 70a5805366..a5b7b0179d 100644 --- a/mingw-w64-libassuan/PKGBUILD +++ b/mingw-w64-libassuan/PKGBUILD @@ -2,7 +2,7 @@ _realname=libassuan pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.3 +pkgver=2.2.0 pkgrel=1 pkgdesc="A IPC library used by some GnuPG related software (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ source=(ftp://ftp.gnupg.org/gcrypt/$_realname/$_realname-$pkgver.tar.bz2{,.sig} 0004-enable-gnu.mingw.patch 0005-better-check-for-stpcpy.mingw.patch) -sha1sums=('56ac91973c2818a91d4f16ed48265a2b5daf45d3' +sha1sums=('7cf0545955ce414044bb99b871d324753dd7b2e5' 'SKIP' '9e1e65633f643a853283caf21adb9b8f9001c38b' 'a380ea3781f95a3fd30e8d6b469d870f85f0ea29' From 6b5fee0c6adf07b9bd69fbc15fa802f80dd65a30 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Dec 2014 11:17:58 +0300 Subject: [PATCH 0188/2060] gpgme: Update to 1.5.3 --- mingw-w64-gpgme/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gpgme/PKGBUILD b/mingw-w64-gpgme/PKGBUILD index 5b0d80e026..d3e548aba3 100644 --- a/mingw-w64-gpgme/PKGBUILD +++ b/mingw-w64-gpgme/PKGBUILD @@ -2,7 +2,7 @@ _realname=gpgme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.1 +pkgver=1.5.3 pkgrel=1 pkgdesc="A C wrapper library for GnuPG" arch=('any') @@ -14,7 +14,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-libgpg-error" "${MINGW_PACKAGE_PREFIX}-gnupg") options=('!emptydirs') source=(ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2{,.sig}) -sha1sums=('a91c258e79acf30ec86a667e07f835e5e79342d8' +sha1sums=('8dd7711a4de117994fe2d45879ef8a9900d50f6a' 'SKIP') prepare() { From 77420f5aba4453bf501c175f397bfbf7b009d988 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Dec 2014 11:19:10 +0300 Subject: [PATCH 0189/2060] ffmpeg: Update to 2.5.1 --- mingw-w64-ffmpeg/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 658f620e49..0b32418d28 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,7 +2,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.5 +pkgver=2.5.1 pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') @@ -41,7 +41,7 @@ depends=( ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://ffmpeg.org/releases/$_realname-$pkgver.tar.bz2) -md5sums=('4346fe710cc6bdd981f6534d2420d1ab') +md5sums=('ad3b4c189e9a7d43ae54c52d409a43ef') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From ebe4b70d24a22893f5a24125af7f02e86f524297 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Dec 2014 11:27:25 +0300 Subject: [PATCH 0190/2060] python-setuptools: Update to 8.0.4 --- mingw-w64-python-setuptools/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index f211b39272..eb01404332 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -5,7 +5,7 @@ _realname=setuptools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.4 -pkgver=8.0.2 +pkgver=8.0.4 #pkgver=5.4.1 pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" @@ -18,7 +18,7 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('bacdf139b210ea6c16ffa98eefa2eb8074dc7869' +sha1sums=('86a6b1dab3afe3aad4a2f1f8dcfc0f9970b7d781' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' @@ -29,7 +29,7 @@ prepare() { patch -p1 -i ${srcdir}/0001-mingw-python-fix.patch patch -p1 -i ${srcdir}/0002-Allow-usr-bin-env-in-script.patch patch -p1 -i ${srcdir}/0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch - if [ $(vercmp $2 7.0) -gt 0 ]; then + if [ $(vercmp $2 6.9) -gt 0 ]; then patch -p1 -i ${srcdir}/0004-dont-execute-msvc.patch fi From d6917a2ad0886ec8819bb24f5d4689b08be68701 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 18 Dec 2014 00:10:38 +0300 Subject: [PATCH 0191/2060] openscad: WIP packages. --- mingw-w64-openscad-git/01-glew-library.patch | 11 ++++ mingw-w64-openscad-git/PKGBUILD | 53 ++++++++++++++++++++ mingw-w64-openscad/01-glew-library.patch | 11 ++++ mingw-w64-openscad/PKGBUILD | 51 +++++++++++++++++++ 4 files changed, 126 insertions(+) create mode 100644 mingw-w64-openscad-git/01-glew-library.patch create mode 100644 mingw-w64-openscad-git/PKGBUILD create mode 100644 mingw-w64-openscad/01-glew-library.patch create mode 100644 mingw-w64-openscad/PKGBUILD diff --git a/mingw-w64-openscad-git/01-glew-library.patch b/mingw-w64-openscad-git/01-glew-library.patch new file mode 100644 index 0000000000..8586f355e8 --- /dev/null +++ b/mingw-w64-openscad-git/01-glew-library.patch @@ -0,0 +1,11 @@ +diff -Naur openscad-2014.03-orig/glew.pri openscad-2014.03/glew.pri +--- openscad-2014.03-orig/glew.pri 2014-02-06 08:21:04.000000000 +0300 ++++ openscad-2014.03/glew.pri 2014-12-16 08:01:54.342600000 +0300 +@@ -9,6 +9,6 @@ + } + + unix:LIBS += -lGLEW +- win32:LIBS += -lglew32s ++ win32:LIBS += -lglew32 + CONFIG(mingw-cross-env):DEFINES += GLEW_STATIC + } diff --git a/mingw-w64-openscad-git/PKGBUILD b/mingw-w64-openscad-git/PKGBUILD new file mode 100644 index 0000000000..d20df2fc79 --- /dev/null +++ b/mingw-w64-openscad-git/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer: Alexey Pavlov + +_realname=openscad +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=2014.03 +pkgrel=1 +pkgdesc="The programmers solid 3D CAD modeller (mingw-w64)" +arch=('any') +license=("GPL2") +url="http://openscad.org/" +depends=("${MINGW_PACKAGE_PREFIX}-qt5" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-cgal" + "${MINGW_PACKAGE_PREFIX}-opencsg" + "${MINGW_PACKAGE_PREFIX}-qscintilla" + "${MINGW_PACKAGE_PREFIX}-shared-mime-info") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-eigen3" + "${MINGW_PACKAGE_PREFIX}-imagemagick") +options=(!strip staticlibs !buildflags) +source=("${_realname}"::"git+https://github.com/openscad/openscad.git" + 01-glew-library.patch) +md5sums=('SKIP' + '0096cdf8865d85115713a28c12b81bd8') + +prepare() { + cd "${srcdir}/${_realname}" + rm -f libraries/MCAD/*.py + + patch -p1 -i ${srcdir}/01-glew-library.patch +} + +build() { + cd ${srcdir}/${_realname} + BOOSTDIR=${MINGW_PREFIX} \ + CGALDIR=${MINGW_PREFIX} \ + EIGENDIR=${MINGW_PREFIX} \ + GLEWDIR=${MINGW_PREFIX} \ + OPENCSGDIR=${MINGW_PREFIX} \ + OPENSCAD_LIBRARIES=${MINGW_PREFIX} \ + ${MINGW_PREFIX}/bin/qmake PREFIX="${MINGW_PREFIX}" VERSION="$pkgver" + + make -j1 + convert "icons/${_realname}.png" -resize 128x128\> "icons/${_realname}-128.png" +} + +package() { + cd ${srcdir}/${_realname} + make INSTALL_ROOT="$pkgdir" install + install -Dm644 "icons/${_realname}.xml" "${pkgdir}${MINGW_PREFIX}/share/mime/packages/${_realname}.xml" +} diff --git a/mingw-w64-openscad/01-glew-library.patch b/mingw-w64-openscad/01-glew-library.patch new file mode 100644 index 0000000000..8586f355e8 --- /dev/null +++ b/mingw-w64-openscad/01-glew-library.patch @@ -0,0 +1,11 @@ +diff -Naur openscad-2014.03-orig/glew.pri openscad-2014.03/glew.pri +--- openscad-2014.03-orig/glew.pri 2014-02-06 08:21:04.000000000 +0300 ++++ openscad-2014.03/glew.pri 2014-12-16 08:01:54.342600000 +0300 +@@ -9,6 +9,6 @@ + } + + unix:LIBS += -lGLEW +- win32:LIBS += -lglew32s ++ win32:LIBS += -lglew32 + CONFIG(mingw-cross-env):DEFINES += GLEW_STATIC + } diff --git a/mingw-w64-openscad/PKGBUILD b/mingw-w64-openscad/PKGBUILD new file mode 100644 index 0000000000..479ca61a67 --- /dev/null +++ b/mingw-w64-openscad/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: Alexey Pavlov + +_realname=openscad +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2014.03 +pkgrel=1 +pkgdesc="The programmers solid 3D CAD modeller (mingw-w64)" +arch=('any') +license=("GPL2") +url="http://openscad.org/" +depends=("${MINGW_PACKAGE_PREFIX}-qt5" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-cgal" + "${MINGW_PACKAGE_PREFIX}-opencsg" + "${MINGW_PACKAGE_PREFIX}-qscintilla" + "${MINGW_PACKAGE_PREFIX}-shared-mime-info") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-eigen3" + "${MINGW_PACKAGE_PREFIX}-imagemagick") +options=(!strip staticlibs !buildflags) +source=("http://files.openscad.org/${_realname}-${pkgver}.src.tar.gz" + 01-glew-library.patch) +md5sums=('38bebd02bce365fe39e695a07411ab73' + '0096cdf8865d85115713a28c12b81bd8') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + rm -f libraries/MCAD/*.py + + patch -p1 -i ${srcdir}/01-glew-library.patch +} + +build() { + cd ${srcdir}/${_realname}-${pkgver} + BOOSTDIR=${MINGW_PREFIX} \ + CGALDIR=${MINGW_PREFIX} \ + EIGENDIR=${MINGW_PREFIX} \ + GLEWDIR=${MINGW_PREFIX} \ + OPENCSGDIR=${MINGW_PREFIX} \ + OPENSCAD_LIBRARIES=${MINGW_PREFIX} \ + ${MINGW_PREFIX}/bin/qmake PREFIX="${MINGW_PREFIX}" VERSION="$pkgver" + + make -j1 + convert "icons/${_realname}.png" -resize 128x128\> "icons/${_realname}-128.png" +} + +package() { + cd ${srcdir}/${_realname}-${pkgver} + make INSTALL_ROOT="$pkgdir" install + install -Dm644 "icons/${_realname}.xml" "${pkgdir}${MINGW_PREFIX}/share/mime/packages/${_realname}.xml" +} From 91aa2791dd2326de3a7d04a733ba84ad0da04412 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 18 Dec 2014 15:58:47 +0300 Subject: [PATCH 0192/2060] harfbuzz: Update to 0.9.37 --- mingw-w64-harfbuzz/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 89efa4e946..5f7101874f 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -2,7 +2,7 @@ _realname=harfbuzz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.36 +pkgver=0.9.37 pkgrel=1 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') @@ -19,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") -sha256sums=('3bfbf7b016167ee6b2a2f83948fef75cc1253081873d6a91022161815956b9be') +sha256sums=('255f3b3842dead16863d1d0c216643d97b80bfa087aaa8fc5926da24ac120207') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 72b841d88a1d08cf5c7b486acdec4ec63be7c971 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 18 Dec 2014 15:59:07 +0300 Subject: [PATCH 0193/2060] cmake: Update to 3.1.0 --- mingw-w64-cmake/PKGBUILD | 8 ++++---- mingw-w64-cmake/disable-response-files-for-msys.patch | 8 +++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 03d5cc4b91..a936548d32 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -2,7 +2,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.0.2 +pkgver=3.1.0 pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') @@ -16,12 +16,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") optdepends=("${MINGW_PACKAGE_PREFIX}-qt5: CMake Qt GUI") options=('staticlibs' 'strip') -source=("http://www.cmake.org/files/v3.0/${_realname}-${pkgver}.tar.gz" +source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" "wxWidgets-module.patch") -md5sums=('db4c687a31444a929d2fdc36c4dfb95f' - 'b715f7d6859ce82a0a1824592ab2a448' +md5sums=('188eb7dc9b1b82b363bc51c0d3f1d461' + '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' '09ea9092ca85e482de79886bd0c09144') diff --git a/mingw-w64-cmake/disable-response-files-for-msys.patch b/mingw-w64-cmake/disable-response-files-for-msys.patch index ef72a91458..6310b55f16 100644 --- a/mingw-w64-cmake/disable-response-files-for-msys.patch +++ b/mingw-w64-cmake/disable-response-files-for-msys.patch @@ -1,13 +1,15 @@ ---- cmake-2.8.12.2/Modules/Platform/Windows-GNU.cmake.orig 2014-01-30 23:55:26.783200000 +0400 -+++ cmake-2.8.12.2/Modules/Platform/Windows-GNU.cmake 2014-01-31 00:03:27.411200000 +0400 -@@ -86,8 +86,10 @@ +--- cmake-3.1.0/Modules/Platform/Windows-GNU.cmake.orig 2014-01-30 23:55:26.783200000 +0400 ++++ cmake-3.1.0/Modules/Platform/Windows-GNU.cmake 2014-01-31 00:03:27.411200000 +0400 +@@ -86,9 +86,11 @@ set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "") set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "") - set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS ${__WINDOWS_GNU_LD_RESPONSE}) +- set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES ${__WINDOWS_GNU_LD_RESPONSE}) - set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1) + if(NOT CMAKE_GENERATOR STREQUAL "MSYS Makefiles" OR CMAKE_NEED_RESPOSE) + set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS ${__WINDOWS_GNU_LD_RESPONSE}) ++ set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES ${__WINDOWS_GNU_LD_RESPONSE}) + set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1) + endif() From acf63eb875e2d161d0dad7c172bd7940efa5922a Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Fri, 19 Dec 2014 08:48:52 +0100 Subject: [PATCH 0194/2060] librsvg: update to version 2.40.6 --- mingw-w64-librsvg/0002-gio-windows.patch | 44 ------------------- ...fullpath-invocation-and-use-it.mingw.patch | 27 ------------ mingw-w64-librsvg/PKGBUILD | 10 +---- 3 files changed, 2 insertions(+), 79 deletions(-) delete mode 100644 mingw-w64-librsvg/0002-gio-windows.patch delete mode 100644 mingw-w64-librsvg/0004-fix-fullpath-invocation-and-use-it.mingw.patch diff --git a/mingw-w64-librsvg/0002-gio-windows.patch b/mingw-w64-librsvg/0002-gio-windows.patch deleted file mode 100644 index c6c04fdf4b..0000000000 --- a/mingw-w64-librsvg/0002-gio-windows.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- librsvg-2.40.4/configure.in.orig 2014-09-23 22:39:35.261400000 +0500 -+++ librsvg-2.40.4/configure.in 2014-09-23 22:39:58.879800000 +0500 -@@ -111,7 +111,14 @@ - - PKG_CHECK_MODULES([GMODULE],[gmodule-2.0]) - --PKG_CHECK_MODULES([RSVG_CONVERT],[gio-2.0 gio-unix-2.0 gdk-pixbuf-2.0 cairo pangocairo]) -+case "$host" in -+ *-*-mingw*) -+ PKG_CHECK_MODULES([RSVG_CONVERT],[gio-2.0 gio-windows-2.0 gdk-pixbuf-2.0 cairo pangocairo]) -+ ;; -+ *) -+ PKG_CHECK_MODULES([RSVG_CONVERT],[gio-2.0 gio-unix-2.0 gdk-pixbuf-2.0 cairo pangocairo]) -+ ;; -+esac - - dnl =========================================================================== - ---- librsvg-2.40.4/rsvg-convert.c.orig 2014-09-01 23:28:33.000000000 +0500 -+++ librsvg-2.40.4/rsvg-convert.c 2014-09-23 22:56:02.514400000 +0500 -@@ -36,7 +36,11 @@ - #include - #include - #include -+#ifdef _WIN32 -+#include -+#else - #include -+#endif - - #include "rsvg-css.h" - #include "rsvg.h" -@@ -217,7 +217,11 @@ - - if (using_stdin) { - file = NULL; -+#ifdef _WIN32 -+ stream = g_win32_input_stream_new (STDIN_FILENO, FALSE); -+#else - stream = g_unix_input_stream_new (STDIN_FILENO, FALSE); -+#endif - } else { - GFileInfo *file_info; - gboolean compressed = FALSE; diff --git a/mingw-w64-librsvg/0004-fix-fullpath-invocation-and-use-it.mingw.patch b/mingw-w64-librsvg/0004-fix-fullpath-invocation-and-use-it.mingw.patch deleted file mode 100644 index 806074c978..0000000000 --- a/mingw-w64-librsvg/0004-fix-fullpath-invocation-and-use-it.mingw.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- librsvg-2.40.3/rsvg-base.c -+++ librsvg-2.40.3/rsvg-base.c -@@ -2207,22 +2207,22 @@ - if (base == NULL) - goto deny; - - dir = g_file_get_path (base); - g_object_unref (base); - -- cdir = realpath (dir, NULL); -+ cdir = _fullpath (NULL, dir, _MAX_PATH); - g_free (dir); - if (cdir == NULL) - goto deny; - - path = g_filename_from_uri (uri, NULL, NULL); - if (path == NULL) - goto deny; - -- cpath = realpath (path, NULL); -+ cpath = _fullpath (NULL, path, _MAX_PATH); - g_free (path); - - if (cpath == NULL) - goto deny; - - /* Now check that @cpath is below @cdir */ diff --git a/mingw-w64-librsvg/PKGBUILD b/mingw-w64-librsvg/PKGBUILD index cc4f7108f2..11c716df87 100644 --- a/mingw-w64-librsvg/PKGBUILD +++ b/mingw-w64-librsvg/PKGBUILD @@ -2,7 +2,7 @@ _realname=librsvg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.40.5 +pkgver=2.40.6 pkgrel=1 pkgdesc="A SVG viewing library (mingw-w64)" arch=('any') @@ -19,20 +19,14 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-gtk3: for rsvg-view-3") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/librsvg/${pkgver%.*}/${_realname}-$pkgver.tar.xz" "0001-give-cc-to-gir-scanner.mingw.patch" - "0002-gio-windows.patch" - "0004-fix-fullpath-invocation-and-use-it.mingw.patch" "0005-hack-unixy-paths.patch") -sha256sums=('d14d7b3e25023ce34302022fd7c9b3a468629c94dff6c177874629686bfc71a7' +sha256sums=('8af349f241677b04b7a1ea6b9b33a6343e781bcccc8a09d00208a47342584f06' '854f36c9bc1ad0f3a85ca2ec4e8b5c7d75ba035c45ad4915601210acf0321776' - '9387edb852cade567c54b004690068922ca88fd783628b42d606188340dd2ba2' - '41ffb473d8b1102c5098fa3172b358e4bc65f96df7a7953874b3ab6965fd9ccb' 'eff60ec631f08ea69a26d216c41beea502c68614278a15eb4c73213a64f76ed4') prepare() { cd "$srcdir/${_realname}-$pkgver" patch -p1 -i "$srcdir/0001-give-cc-to-gir-scanner.mingw.patch" - patch -p1 -i "$srcdir/0002-gio-windows.patch" - patch -p1 -i "$srcdir/0004-fix-fullpath-invocation-and-use-it.mingw.patch" patch -p1 -i "$srcdir/0005-hack-unixy-paths.patch" autoreconf -fi From d748e0d23b66ba118948e8d924b3e74034b8cce6 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Fri, 19 Dec 2014 10:01:26 +0100 Subject: [PATCH 0195/2060] gedit: update to 3.14.2 --- mingw-w64-gedit/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gedit/PKGBUILD b/mingw-w64-gedit/PKGBUILD index 04c3d5c6fa..574d7290f8 100644 --- a/mingw-w64-gedit/PKGBUILD +++ b/mingw-w64-gedit/PKGBUILD @@ -2,7 +2,7 @@ _realname=gedit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.0 +pkgver=3.14.2 pkgrel=1 arch=('any') pkgdesc="A text editor for GNOME (mingw-w64)" @@ -26,7 +26,7 @@ license=("GPL") url="http://www.gnome.org" install=gedit-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz) -sha256sums=('9c74f456cc3c0200a3409c3ece17fae17a22ee38213a53aa29ff8e346cba2f90') +sha256sums=('e5174147180721485c4c3791628bfdc8452efbed120c6b6b2e4210299caf71c0') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 97e3f931233a2ff9b0e3f31089093fc179dffc22 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sat, 20 Dec 2014 00:11:38 +0100 Subject: [PATCH 0196/2060] scite: new package --- mingw-w64-scite/0001-makefiles.patch | 96 ++++++++++++++++++++++++++++ mingw-w64-scite/0002-paths.patch | 59 +++++++++++++++++ mingw-w64-scite/PKGBUILD | 94 +++++++++++++++++++++++++++ 3 files changed, 249 insertions(+) create mode 100644 mingw-w64-scite/0001-makefiles.patch create mode 100644 mingw-w64-scite/0002-paths.patch create mode 100644 mingw-w64-scite/PKGBUILD diff --git a/mingw-w64-scite/0001-makefiles.patch b/mingw-w64-scite/0001-makefiles.patch new file mode 100644 index 0000000000..4c9ce3df59 --- /dev/null +++ b/mingw-w64-scite/0001-makefiles.patch @@ -0,0 +1,96 @@ +--- scintilla/gtk/makefile.orig 2014-11-27 21:47:24.000000000 +0100 ++++ scintilla/gtk/makefile 2014-12-20 02:26:38.619557200 +0100 +@@ -32,11 +32,11 @@ + endif + + ifdef windir +-DEL = del /q +-COMPLIB=..\bin\scintilla.a ++DEL = rm -f ++COMPLIB=..\bin\libScintillaGtk.a + else + DEL = rm -f +-COMPLIB=../bin/scintilla.a ++COMPLIB=../bin/libScintillaGtk.a + endif + + vpath %.h ../src ../include ../lexlib +--- scintilla/win32/makefile.orig 2014-11-27 21:47:24.000000000 +0100 ++++ scintilla/win32/makefile 2014-12-20 00:26:19.821844100 +0100 +@@ -13,8 +13,8 @@ + RANLIB ?= ranlib + WINDRES ?= windres + +-COMPONENT = ../bin/Scintilla.dll +-LEXCOMPONENT = ../bin/SciLexer.dll ++COMPONENT = ../bin/libScintilla.dll ++LEXCOMPONENT = ../bin/libSciLexer.dll + LEXLIB = Lexers.a + + vpath %.h ../src ../include ../lexlib +--- scite/win32/makefile.orig 2014-11-27 21:47:34.000000000 +0100 ++++ scite/win32/makefile 2014-12-20 01:06:33.367286200 +0100 +@@ -10,24 +10,6 @@ + ifeq ($(OS),Windows_NT) + CC = gcc + DEL = $(if $(wildcard $(dir $(SHELL))rm.exe), $(dir $(SHELL))rm.exe -f, del) +- COPY = xcopy /Y +- VER = cmd /c ver +- # Discover Windows version by running 'VER' command and parsing output +- # For Windows 2000 looks like:Microsoft Windows 2000 [Version 5.00.2195] +- WINVERWORDS:=$(wordlist 1,2,$(subst ., ,$(lastword $(shell $(VER))))) +- WINVER:=$(firstword $(WINVERWORDS)).$(lastword $(WINVERWORDS)) +- # Windows NT 4 and Windows 2000 do not support themes so turn off +-ifeq '$(WINVER)' '4.0' +- VERSION_DEFINES:=-DDISABLE_THEMES -DWIN_TARGET=0x0400 +-else +-ifeq '$(WINVER)' '5.00' +- VERSION_DEFINES:=-DDISABLE_THEMES +-else +- UXLIB:=-luxtheme +-endif +-endif +-else +- DEL = rm -f + COPY = cp -a + UXLIB:=-luxtheme + endif +@@ -113,7 +95,7 @@ + + OBJS = Credits.o $(OTHER_OBJS) + +-DLLS=../bin/Scintilla.dll ../bin/SciLexer.dll ++DLLS=../bin/libScintilla.dll ../bin/libSciLexer.dll + + #++Autogenerated -- run ../scripts/RegenerateSource.py to regenerate + #**LEXPROPS=\\\n\(../bin/\* \) +@@ -161,16 +143,16 @@ + + embedded: ../src/Embedded.properties + +-../bin/Scintilla.dll: ../../scintilla/bin/Scintilla.dll ++../bin/libScintilla.dll: ../../scintilla/bin/libScintilla.dll + ifeq ($(OS),Windows_NT) +- $(COPY) $(subst /,\, $< $(@D)) ++ $(COPY) $^ $(@D) + else + $(COPY) $^ $(@D) + endif + +-../bin/SciLexer.dll: ../../scintilla/bin/SciLexer.dll ++../bin/libSciLexer.dll: ../../scintilla/bin/libSciLexer.dll + ifeq ($(OS),Windows_NT) +- $(COPY) $(subst /,\, $< $(@D)) ++ $(COPY) $^ $(@D) + else + $(COPY) $^ $(@D) + endif +@@ -178,7 +160,7 @@ + # Using '/' rather than '\' as that allows make to match the next rule + ../bin/%.properties: ../src/%.properties + ifeq ($(OS),Windows_NT) +- $(COPY) $(subst /,\, $< $(@D)) ++ $(COPY) $^ $(@D) + else + $(COPY) $^ $(@D) + endif diff --git a/mingw-w64-scite/0002-paths.patch b/mingw-w64-scite/0002-paths.patch new file mode 100644 index 0000000000..d1a426dc24 --- /dev/null +++ b/mingw-w64-scite/0002-paths.patch @@ -0,0 +1,59 @@ +--- scite/src/SciTEIO.cxx.orig 2014-11-27 21:47:34.000000000 +0100 ++++ scite/src/SciTEIO.cxx 2014-12-20 18:52:57.887040400 +0100 +@@ -41,14 +41,7 @@ + #include "SciTEBase.h" + #include "Utf8_16.h" + +-#if defined(GTK) + const GUI::gui_char propUserFileName[] = GUI_TEXT(".SciTEUser.properties"); +-#elif defined(__APPLE__) +-const GUI::gui_char propUserFileName[] = GUI_TEXT("SciTEUser.properties"); +-#else +-// Windows +-const GUI::gui_char propUserFileName[] = GUI_TEXT("SciTEUser.properties"); +-#endif + const GUI::gui_char propGlobalFileName[] = GUI_TEXT("SciTEGlobal.properties"); + const GUI::gui_char propAbbrevFileName[] = GUI_TEXT("abbrev.properties"); + +--- scite/win32/SciTEWin.cxx.orig 2014-09-30 02:14:42.000000000 +0200 ++++ scite/win32/SciTEWin.cxx 2014-12-20 18:52:54.939587600 +0100 +@@ -413,8 +413,29 @@ + return FilePath(); + // Remove the SciTE.exe + GUI::gui_char *lastSlash = wcsrchr(path, pathSepChar); +- if (lastSlash) ++ if (lastSlash) { + *lastSlash = '\0'; ++ } ++ // MSYS2: go to $(bindir)/../share/scite ++ lastSlash = wcsrchr(path, pathSepChar); ++ if (lastSlash) { ++ if (lastSlash - path + sizeof("share/scite") >= MAX_PATH) { ++ return FilePath(path); // don't risk overflow, return early ++ } ++ *(lastSlash++) = pathSepChar; ++ *(lastSlash++) = 's'; ++ *(lastSlash++) = 'h'; ++ *(lastSlash++) = 'a'; ++ *(lastSlash++) = 'r'; ++ *(lastSlash++) = 'e'; ++ *(lastSlash++) = pathSepChar; ++ *(lastSlash++) = 's'; ++ *(lastSlash++) = 'c'; ++ *(lastSlash++) = 'i'; ++ *(lastSlash++) = 't'; ++ *(lastSlash++) = 'e'; ++ *(lastSlash++) = '\0'; ++ } + return FilePath(path); + } + } +@@ -432,6 +452,8 @@ + FilePath SciTEWin::GetSciteUserHome() { + GUI::gui_char *home = _wgetenv(GUI_TEXT("SciTE_HOME")); + if (!home) ++ home = _wgetenv(GUI_TEXT("HOME")); ++ if (!home) + home = _wgetenv(GUI_TEXT("USERPROFILE")); + return GetSciTEPath(home); + } diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD new file mode 100644 index 0000000000..2fd4ccca49 --- /dev/null +++ b/mingw-w64-scite/PKGBUILD @@ -0,0 +1,94 @@ +# Maintainer: David Macek + +_realname=scite + +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" + "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") +pkgver=3.5.2 +pkgrel=1 +arch=('any') +url='http://www.scintilla.org/SciTE.html' +license=('custom:scite') +source=("http://downloads.sourceforge.net/scintilla/${_realname}${pkgver//./}.tgz" + "0001-makefiles.patch" + "0002-paths.patch") +md5sums=('2c1a313dc885033988cc98930586b270' + '886216497dad9a1d54cedbf436cf110f' + 'ce2853918be638ec465fe314484f3af6') + +prepare() { + cd "${srcdir}" + patch -p0 -i "${srcdir}"/0001-makefiles.patch + patch -p0 -i "${srcdir}"/0002-paths.patch + mkdir "${srcdir}"/build-${CARCH} + cp -r "${srcdir}"/{scite,scintilla} "${srcdir}"/build-${CARCH} +} + +build() { + cd "${srcdir}"/build-${CARCH}/scintilla/gtk + make + cd "${srcdir}"/build-${CARCH}/scintilla/win32 + make + cd "${srcdir}"/build-${CARCH}/scite/win32 + make +} + +package_mingw-w64-scite() { + pkgdesc='Editor with facilities for building and running programs (mingw-w64)' + depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-pkg-config") + optdepends=("${MINGW_PACKAGE_PREFIX}-${_realname}-defaults: Default language files") + + cd "${srcdir}"/build-${CARCH} + + mkdir -p "${pkgdir}"${MINGW_PREFIX}/bin + cp scintilla/bin/lib{Scintilla,SciLexer}.dll "${pkgdir}"${MINGW_PREFIX}/bin + cp scite/bin/SciTE.exe "${pkgdir}"${MINGW_PREFIX}/bin + + mkdir -p "${pkgdir}"${MINGW_PREFIX}/lib + cp scintilla/bin/libScintillaGtk.a "${pkgdir}"${MINGW_PREFIX}/lib + + mkdir -p "${pkgdir}"${MINGW_PREFIX}/include/scintilla + cp scintilla/include/{*.h,*.iface} "${pkgdir}"${MINGW_PREFIX}/include/scintilla + + mkdir -p "${pkgdir}"${MINGW_PREFIX}/share/scite + cp scite/bin/SciTEGlobal.properties "${pkgdir}"${MINGW_PREFIX}/share/scite + + mkdir -p "${pkgdir}"${MINGW_PREFIX}/share/doc/scite + cp scite/doc/{*.png,*.jpg,*.html} "${pkgdir}"${MINGW_PREFIX}/share/doc/scite + + mkdir -p "${pkgdir}"${MINGW_PREFIX}/share/man/man1 + cp scite/doc/scite.1 "${pkgdir}"${MINGW_PREFIX}/share/man/man1/SciTE.1 + + mkdir -p "${pkgdir}"${MINGW_PREFIX}/share/licenses/scite + cp scintilla/License.txt "${pkgdir}"${MINGW_PREFIX}/share/licenses/scite/LICENSE-scintilla + cp scite/License.txt "${pkgdir}"${MINGW_PREFIX}/share/licenses/scite/LICENSE-scite + cp scite/lua/COPYRIGHT "${pkgdir}"${MINGW_PREFIX}/share/licenses/scite/LICENSE-lua +} + +package_mingw-w64-scite-defaults() { + pkgdesc='Default language files for the SciTE editor (mingw-w64)' + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}") + + cd "${srcdir}"/build-${CARCH} + + mkdir -p "${pkgdir}"${MINGW_PREFIX}/share/scite + cp scite/bin/*.properties "${pkgdir}"${MINGW_PREFIX}/share/scite + rm -f "${pkgdir}"${MINGW_PREFIX}/share/scite/SciTEGlobal.properties +} + +package_mingw-w64-i686-scite() { + package_mingw-w64-scite +} + +package_mingw-w64-i686-scite-defaults() { + package_mingw-w64-scite-defaults +} + +package_mingw-w64-x86_64-scite() { + package_mingw-w64-scite +} + +package_mingw-w64-x86_64-scite-defaults() { + package_mingw-w64-scite-defaults +} From 313133dd6481a35bf101a76f98af6896d01b169f Mon Sep 17 00:00:00 2001 From: Roman Rolinsky Date: Sun, 21 Dec 2014 01:40:09 +0100 Subject: [PATCH 0197/2060] Upgrade to 3.0.2.0, do not convert line endings, faster conversion --- mingw-w64-wxPython/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-wxPython/PKGBUILD b/mingw-w64-wxPython/PKGBUILD index 647ba8d70c..bcb78a0433 100644 --- a/mingw-w64-wxPython/PKGBUILD +++ b/mingw-w64-wxPython/PKGBUILD @@ -2,7 +2,7 @@ _realname=wxPython pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.0.1.1 +pkgver=3.0.2.0 _editraver=0.7.20 pkgrel=3 pkgdesc="A wxWidgets GUI toolkit for Python (mingw-w64)" @@ -31,7 +31,7 @@ prepare() { patch -p1 -i ${srcdir}/003-fix-cast-error.patch #cd ${srcdir} - find . -type f -exec sed -i 's/env python/env python2/' {} \; + find ./wxPython -type f -exec sed -bi '1s/env python/env python2/' {} \; #sed -i 's/sys.exit(1)//' Editra-${_editraver}/setup.py } From 39e4e9bf07891cf020985ebd4017d31cc3eb333c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Dec 2014 00:53:09 +0300 Subject: [PATCH 0198/2060] eigen3: Update to 3.2.3. Fix pkgconfig file. --- mingw-w64-eigen3/PKGBUILD | 11 +++++++---- mingw-w64-eigen3/eigen-pkgconfig.patch | 27 ++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-eigen3/eigen-pkgconfig.patch diff --git a/mingw-w64-eigen3/PKGBUILD b/mingw-w64-eigen3/PKGBUILD index 9bf03f0c8e..26991608e9 100644 --- a/mingw-w64-eigen3/PKGBUILD +++ b/mingw-w64-eigen3/PKGBUILD @@ -2,7 +2,7 @@ _realname=eigen pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}3") -pkgver=3.2.2 +pkgver=3.2.3 pkgrel=1 pkgdesc="Lightweight C++ template library for vector and matrix math (mingw-w64)" arch=('any') @@ -14,17 +14,20 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=("http://bitbucket.org/eigen/eigen/get/${pkgver}.tar.bz2" 'eigen-3.1.2_osversion.patch' 'eigen-3.2_gcc58087.patch' - 'TryRunResults.cmake') -md5sums=('fc2e814ae449d16b331f7e1f4e272bd3' + 'TryRunResults.cmake' + 'eigen-pkgconfig.patch') +md5sums=('a88bf9a8e674762619429e80f46005bf' '89587f79971efc8f363d478f48f86829' '1db055c7681799bb21118b2dcf95980a' - '67e151de214f29c1e6cf00452916d7d4') + '67e151de214f29c1e6cf00452916d7d4' + '1add870c05bb4c7bfcb4b739bc895cd4') prepare() { cd "${srcdir}"/eigen-eigen-* patch -Np2 -i "${srcdir}/eigen-3.1.2_osversion.patch" patch -Np1 -i "${srcdir}/eigen-3.2_gcc58087.patch" + patch -Np1 -i "${srcdir}/eigen-pkgconfig.patch" } build() { diff --git a/mingw-w64-eigen3/eigen-pkgconfig.patch b/mingw-w64-eigen3/eigen-pkgconfig.patch new file mode 100644 index 0000000000..4129a49b6a --- /dev/null +++ b/mingw-w64-eigen3/eigen-pkgconfig.patch @@ -0,0 +1,27 @@ +--- eigen-eigen-1306d75b4a21/eigen3.pc.in.orig 2014-08-04 13:51:54.000000000 +0300 ++++ eigen-eigen-1306d75b4a21/eigen3.pc.in 2014-12-21 00:44:50.850000000 +0300 +@@ -1,6 +1,11 @@ ++prefix=@CMAKE_INSTALL_PREFIX@ ++exec_prefix=${prefix} ++libdir=@INCLUDE_INSTALL_DIR@ ++includedir=@INCLUDE_INSTALL_DIR@ ++ + Name: Eigen3 + Description: A C++ template library for linear algebra: vectors, matrices, and related algorithms + Requires: +-Version: ${EIGEN_VERSION_NUMBER} ++Version: @EIGEN_VERSION_NUMBER@ + Libs: +-Cflags: -I${INCLUDE_INSTALL_DIR} ++Cflags: -I${includedir} +--- eigen-eigen-1306d75b4a21/CMakeLists.txt.orig 2014-12-21 00:45:25.606600000 +0300 ++++ eigen-eigen-1306d75b4a21/CMakeLists.txt 2014-12-21 00:45:50.519800000 +0300 +@@ -336,7 +336,7 @@ + message(STATUS "pkgconfig not found; installing in ${pkg_config_install_dir}" ) + endif(pkg_config_libdir) + +- configure_file(eigen3.pc.in eigen3.pc) ++ configure_file(eigen3.pc.in eigen3.pc @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/eigen3.pc + DESTINATION ${pkg_config_install_dir}/pkgconfig + ) From 2131facaaba43a022dea96e4641748b2a5eed2b4 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 23 Dec 2014 08:41:13 +0100 Subject: [PATCH 0199/2060] glib2: fix hang on gsocket --- ...-block-when-errno-says-it-will-block.patch | 274 ++++++++++++++++++ mingw-w64-glib2/PKGBUILD | 9 +- 2 files changed, 280 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-glib2/0001-gsocket-block-when-errno-says-it-will-block.patch diff --git a/mingw-w64-glib2/0001-gsocket-block-when-errno-says-it-will-block.patch b/mingw-w64-glib2/0001-gsocket-block-when-errno-says-it-will-block.patch new file mode 100644 index 0000000000..6cd226dd1b --- /dev/null +++ b/mingw-w64-glib2/0001-gsocket-block-when-errno-says-it-will-block.patch @@ -0,0 +1,274 @@ +From 177ff38e103a76b7cd153c4c8014159eb6a9eb60 Mon Sep 17 00:00:00 2001 +From: Ignacio Casal Quinteiro +Date: Mon, 22 Dec 2014 16:38:50 +0100 +Subject: [PATCH] gsocket: block when errno says it will block + +On windows it may happen we recreate a gsocket +out of a fd from another gsocket that already +got the FD_WRITE event. If this happens in order +to get another FD_WRITE we need to have tried an +operation that might need such event. What we do +here is to first try to do the operation and +then if errno specifies that we might block then +wait for that event to occur. + +https://bugzilla.gnome.org/show_bug.cgi?id=741707 +--- + gio/gsocket.c | 147 ++++++++++++++++++++++++++++++---------------------------- + 1 file changed, 77 insertions(+), 70 deletions(-) + +diff --git a/gio/gsocket.c b/gio/gsocket.c +index d9e135d..f144674 100644 +--- a/gio/gsocket.c ++++ b/gio/gsocket.c +@@ -2230,31 +2230,31 @@ g_socket_accept (GSocket *socket, + + while (TRUE) + { +- if (socket->priv->blocking && +- !g_socket_condition_wait (socket, +- G_IO_IN, cancellable, error)) +- return NULL; +- + if ((ret = accept (socket->priv->fd, NULL, 0)) < 0) + { + int errsv = get_socket_errno (); + +- win32_unset_event_mask (socket, FD_ACCEPT); +- + if (errsv == EINTR) + continue; + +- if (socket->priv->blocking) +- { + #ifdef WSAEWOULDBLOCK +- if (errsv == WSAEWOULDBLOCK) +- continue; ++ if (errsv == WSAEWOULDBLOCK) + #else +- if (errsv == EWOULDBLOCK || +- errsv == EAGAIN) +- continue; ++ if (errsv == EWOULDBLOCK || ++ errsv == EAGAIN) + #endif +- } ++ { ++ win32_unset_event_mask (socket, FD_ACCEPT); ++ ++ if (socket->priv->blocking) ++ { ++ if (!g_socket_condition_wait (socket, ++ G_IO_IN, cancellable, error)) ++ return NULL; ++ ++ continue; ++ } ++ } + + g_set_error (error, G_IO_ERROR, + socket_io_error_from_errno (errsv), +@@ -2368,6 +2368,8 @@ g_socket_connect (GSocket *socket, + if (errsv == WSAEWOULDBLOCK) + #endif + { ++ win32_unset_event_mask (socket, FD_CONNECT); ++ + if (socket->priv->blocking) + { + if (g_socket_condition_wait (socket, G_IO_OUT, cancellable, error)) +@@ -2602,11 +2604,6 @@ g_socket_receive_with_blocking (GSocket *socket, + + while (1) + { +- if (blocking && +- !g_socket_condition_wait (socket, +- G_IO_IN, cancellable, error)) +- return -1; +- + if ((ret = recv (socket->priv->fd, buffer, size, 0)) < 0) + { + int errsv = get_socket_errno (); +@@ -2614,17 +2611,24 @@ g_socket_receive_with_blocking (GSocket *socket, + if (errsv == EINTR) + continue; + +- if (blocking) +- { + #ifdef WSAEWOULDBLOCK +- if (errsv == WSAEWOULDBLOCK) +- continue; ++ if (errsv == WSAEWOULDBLOCK) + #else +- if (errsv == EWOULDBLOCK || +- errsv == EAGAIN) +- continue; ++ if (errsv == EWOULDBLOCK || ++ errsv == EAGAIN) + #endif +- } ++ { ++ win32_unset_event_mask (socket, FD_READ); ++ ++ if (blocking) ++ { ++ if (!g_socket_condition_wait (socket, ++ G_IO_IN, cancellable, error)) ++ return -1; ++ ++ continue; ++ } ++ } + + win32_unset_event_mask (socket, FD_READ); + +@@ -2777,11 +2781,6 @@ g_socket_send_with_blocking (GSocket *socket, + + while (1) + { +- if (blocking && +- !g_socket_condition_wait (socket, +- G_IO_OUT, cancellable, error)) +- return -1; +- + if ((ret = send (socket->priv->fd, buffer, size, G_SOCKET_DEFAULT_SEND_FLAGS)) < 0) + { + int errsv = get_socket_errno (); +@@ -2790,21 +2789,23 @@ g_socket_send_with_blocking (GSocket *socket, + continue; + + #ifdef WSAEWOULDBLOCK +- if (errsv == WSAEWOULDBLOCK) +- win32_unset_event_mask (socket, FD_WRITE); +-#endif +- +- if (blocking) +- { +-#ifdef WSAEWOULDBLOCK +- if (errsv == WSAEWOULDBLOCK) +- continue; ++ if (errsv == WSAEWOULDBLOCK) + #else +- if (errsv == EWOULDBLOCK || +- errsv == EAGAIN) +- continue; ++ if (errsv == EWOULDBLOCK || ++ errsv == EAGAIN) + #endif +- } ++ { ++ win32_unset_event_mask (socket, FD_WRITE); ++ ++ if (blocking) ++ { ++ if (!g_socket_condition_wait (socket, ++ G_IO_OUT, cancellable, error)) ++ return -1; ++ ++ continue; ++ } ++ } + + g_set_error (error, G_IO_ERROR, + socket_io_error_from_errno (errsv), +@@ -3874,11 +3875,6 @@ g_socket_send_message (GSocket *socket, + + while (1) + { +- if (socket->priv->blocking && +- !g_socket_condition_wait (socket, +- G_IO_OUT, cancellable, error)) +- return -1; +- + result = sendmsg (socket->priv->fd, &msg, flags | G_SOCKET_DEFAULT_SEND_FLAGS); + if (result < 0) + { +@@ -3890,7 +3886,13 @@ g_socket_send_message (GSocket *socket, + if (socket->priv->blocking && + (errsv == EWOULDBLOCK || + errsv == EAGAIN)) +- continue; ++ { ++ if (!g_socket_condition_wait (socket, ++ G_IO_OUT, cancellable, error)) ++ return -1; ++ ++ continue; ++ } + + g_set_error (error, G_IO_ERROR, + socket_io_error_from_errno (errsv), +@@ -3942,11 +3944,6 @@ g_socket_send_message (GSocket *socket, + + while (1) + { +- if (socket->priv->blocking && +- !g_socket_condition_wait (socket, +- G_IO_OUT, cancellable, error)) +- return -1; +- + if (address) + result = WSASendTo (socket->priv->fd, + bufs, num_vectors, +@@ -3967,11 +3964,18 @@ g_socket_send_message (GSocket *socket, + continue; + + if (errsv == WSAEWOULDBLOCK) +- win32_unset_event_mask (socket, FD_WRITE); ++ { ++ win32_unset_event_mask (socket, FD_WRITE); + +- if (socket->priv->blocking && +- errsv == WSAEWOULDBLOCK) +- continue; ++ if (socket->priv->blocking) ++ { ++ if (!g_socket_condition_wait (socket, ++ G_IO_OUT, cancellable, error)) ++ return -1; ++ ++ continue; ++ } ++ } + + g_set_error (error, G_IO_ERROR, + socket_io_error_from_errno (errsv), +@@ -4634,11 +4638,6 @@ g_socket_receive_message (GSocket *socket, + /* do it */ + while (1) + { +- if (socket->priv->blocking && +- !g_socket_condition_wait (socket, +- G_IO_IN, cancellable, error)) +- return -1; +- + addrlen = sizeof addr; + if (address) + result = WSARecvFrom (socket->priv->fd, +@@ -4658,11 +4657,19 @@ g_socket_receive_message (GSocket *socket, + if (errsv == WSAEINTR) + continue; + +- win32_unset_event_mask (socket, FD_READ); ++ if (errsv == WSAEWOULDBLOCK) ++ { ++ win32_unset_event_mask (socket, FD_READ); + +- if (socket->priv->blocking && +- errsv == WSAEWOULDBLOCK) +- continue; ++ if (socket->priv->blocking) ++ { ++ if (!g_socket_condition_wait (socket, ++ G_IO_IN, cancellable, error)) ++ return -1; ++ ++ continue; ++ } ++ } + + g_set_error (error, G_IO_ERROR, + socket_io_error_from_errno (errsv), +-- +2.1.0 + diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 104ae98b63..b571fad1d1 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -3,7 +3,7 @@ _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.42.1 -pkgrel=1 +pkgrel=2 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" @@ -25,7 +25,8 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.t 0021-use-64bit-stat-for-localfile-size-calc.all.patch 0023-print-in-binary-more-for-testing.all.patch 0024-return-actually-written-data-in-printf.all.patch - 0026-define-HAVE_IF_NAMETOINDEX.patch) + 0026-define-HAVE_IF_NAMETOINDEX.patch + 0001-gsocket-block-when-errno-says-it-will-block.patch) md5sums=('89c4119e50e767d3532158605ee9121a' '98c7778b5e8a30dbcdb86bcd15f9c11d' '6eb9d56028ea3bbec3d053254a00a04b' @@ -36,7 +37,8 @@ md5sums=('89c4119e50e767d3532158605ee9121a' '952989e534235721d30b9ee3d89cc225' '217a997ede1b93ac06f96ed869b74378' '500f39baea98d98e4a2f877ad56f55a5' - 'de51a19cc5bfd0d54a59e9ac36cbafa2') + 'de51a19cc5bfd0d54a59e9ac36cbafa2' + 'c8942cf5035f97ade5ab9c757a210f01') prepare() { cd "$srcdir/glib-$pkgver" @@ -50,6 +52,7 @@ prepare() { patch -Np1 -i "$srcdir/0021-use-64bit-stat-for-localfile-size-calc.all.patch" patch -Np1 -i "$srcdir/0023-print-in-binary-more-for-testing.all.patch" patch -Np1 -i "$srcdir/0024-return-actually-written-data-in-printf.all.patch" + patch -Np1 -i "$srcdir/0001-gsocket-block-when-errno-says-it-will-block.patch" NOCONFIGURE=1 ./autogen.sh From a6b4d3557d4ca6a7a65d79d2405e40e572d9972c Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 23 Dec 2014 10:53:35 +0100 Subject: [PATCH 0200/2060] libgusb: add new package --- mingw-w64-libgusb/PKGBUILD | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 mingw-w64-libgusb/PKGBUILD diff --git a/mingw-w64-libgusb/PKGBUILD b/mingw-w64-libgusb/PKGBUILD new file mode 100644 index 0000000000..fed9fd5b20 --- /dev/null +++ b/mingw-w64-libgusb/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Ignacio Casal Quinteiro + +_realname=libgusb +_tarballname=gusb +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.2.3 +pkgrel=1 +arch=('any') +pkgdesc="GLib wrapper around libusb1 (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-libusb" + "${MINGW_PACKAGE_PREFIX}-glib2") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +options=('strip' 'staticlibs') +license=("LGPL") +url="https://github.com/hughsie/libgusb" +source=("https://github.com/hughsie/${_realname}/archive/${_tarballname}_${pkgver/./_}.tar.gz") +sha256sums=('') + +prepare() { + cd "${srcdir}"/${_realname}-${_tarballname}_${pkgver/./_} + autoreconf -f -i +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From c79f605e98f53ad2255dcec6a2d2f0453a6adc07 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 23 Dec 2014 19:12:04 +0300 Subject: [PATCH 0201/2060] wxPython: Fix sums --- mingw-w64-wxPython/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-wxPython/PKGBUILD b/mingw-w64-wxPython/PKGBUILD index bcb78a0433..e73a64e625 100644 --- a/mingw-w64-wxPython/PKGBUILD +++ b/mingw-w64-wxPython/PKGBUILD @@ -4,7 +4,7 @@ _realname=wxPython pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2.0 _editraver=0.7.20 -pkgrel=3 +pkgrel=1 pkgdesc="A wxWidgets GUI toolkit for Python (mingw-w64)" arch=('any') license=("custom:wxWindows") @@ -19,7 +19,7 @@ source=(http://downloads.sourceforge.net/wxpython/${_realname}-src-${pkgver}.tar 001-mingw-python.patch 002-system-includes.patch 003-fix-cast-error.patch) -sha1sums=('d2c4719015d7c499a9765b1e5107fdf37a32abfb' +sha1sums=('5053f3fa04f4eb3a9d4bfd762d963deb7fa46866' 'b189dac25d4354ba3cca93e6108fb279dea0e2b7' 'fb96353201fb0b529a71e70710986246b2978e94' '9fa4ac1988fec999feca090f8a8360807664f987') @@ -31,7 +31,7 @@ prepare() { patch -p1 -i ${srcdir}/003-fix-cast-error.patch #cd ${srcdir} - find ./wxPython -type f -exec sed -bi '1s/env python/env python2/' {} \; + find . -type f -exec sed -i 's/env python/env python2/' {} \; #sed -i 's/sys.exit(1)//' Editra-${_editraver}/setup.py } From 411f4336d1a57b519828a70424899f4739760bcf Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 23 Dec 2014 21:49:56 +0300 Subject: [PATCH 0202/2060] binutils: Update to 2.25 --- .../010-2.23.52-install-libiberty.patch | 20 - .../020-add-bigobj-format.patch | 942 ------------------ .../030-binutils-mingw-gnu-print.patch | 4 +- ...nts-that-dont-need-it-in-pex-win32.c.patch | 86 -- ...k-external-reference-has-wrong-value.patch | 15 - .../130-make-relocbase-unsigned.patch | 24 - mingw-w64-binutils/PKGBUILD | 55 +- 7 files changed, 15 insertions(+), 1131 deletions(-) delete mode 100644 mingw-w64-binutils/010-2.23.52-install-libiberty.patch delete mode 100644 mingw-w64-binutils/020-add-bigobj-format.patch delete mode 100644 mingw-w64-binutils/100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch delete mode 100644 mingw-w64-binutils/120-Bug-16858-weak-external-reference-has-wrong-value.patch delete mode 100644 mingw-w64-binutils/130-make-relocbase-unsigned.patch diff --git a/mingw-w64-binutils/010-2.23.52-install-libiberty.patch b/mingw-w64-binutils/010-2.23.52-install-libiberty.patch deleted file mode 100644 index f77dba2d7b..0000000000 --- a/mingw-w64-binutils/010-2.23.52-install-libiberty.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- binutils-2.23.52-orig/libiberty/configure 2013-05-31 20:01:43.000000000 -0500 -+++ binutils-2.23.52/libiberty/configure 2013-06-04 15:04:57.162176000 -0500 -@@ -5507,7 +5507,6 @@ fi - - setobjs= - CHECK= --target_header_dir= - if test -n "${with_target_subdir}"; then - - # We are being configured as a target library. AC_REPLACE_FUNCS ---- binutils-2.23.52-orig/libiberty/configure.ac 2013-05-31 20:01:44.000000000 -0500 -+++ binutils-2.23.52/libiberty/configure.ac 2013-06-04 15:04:48.269667400 -0500 -@@ -405,7 +405,6 @@ fi - - setobjs= - CHECK= --target_header_dir= - if test -n "${with_target_subdir}"; then - - # We are being configured as a target library. AC_REPLACE_FUNCS diff --git a/mingw-w64-binutils/020-add-bigobj-format.patch b/mingw-w64-binutils/020-add-bigobj-format.patch deleted file mode 100644 index 8591969578..0000000000 --- a/mingw-w64-binutils/020-add-bigobj-format.patch +++ /dev/null @@ -1,942 +0,0 @@ -From 167ad85bf06582759e8dfe021aac9da79b81340d Mon Sep 17 00:00:00 2001 -From: Tristan Gingold -Date: Mon, 2 Dec 2013 14:30:32 +0100 -Subject: [PATCH] Add pe/x86_64 bigobj file format. - -bfd/ - * peicode.h (pe_ILF_object_p): Adjust, as the version number - has been read. - (pe_bfd_object_p): Also read version number to detect ILF. - * pe-x86_64.c (COFF_WITH_PE_BIGOBJ): Define. - (x86_64pe_bigobj_vec): Define - * coffcode.h (bfd_coff_backend_data): Add _bfd_coff_max_nscns field. - (bfd_coff_max_nscns): New macro. - (coff_compute_section_file_positions): Use unsigned int for - target_index. Compare with bfd_coff_max_nscns. - (bfd_coff_std_swap_table, ticoff0_swap_table, ticoff1_swap_table): - Set a value for _bfd_coff_max_nscns. - (header_bigobj_classid): New constant. - (coff_bigobj_swap_filehdr_in, coff_bigobj_swap_filehdr_out) - (coff_bigobj_swap_sym_in, coff_bigobj_swap_sym_out) - (coff_bigobj_swap_aux_in, coff_bigobj_swap_aux_out): New - functions. - (bigobj_swap_table): New table. - * libcoff.h: Regenerate. - * coff-sh.c (bfd_coff_small_swap_table): Likewise. - * coff-alpha.c (alpha_ecoff_backend_data): Add value for - _bfd_coff_max_nscns. - * coff-mips.c (mips_ecoff_backend_data): Likewise. - * coff-rs6000.c (bfd_xcoff_backend_data) - (bfd_pmac_xcoff_backend_data): Likewise. - * coff64-rs6000.c (bfd_xcoff_backend_data) - (bfd_xcoff_aix5_backend_data): Likewise. - * targets.c (x86_64pe_bigobj_vec): Declare. - * configure.in (x86_64pe_bigobj_vec): New vector. - * configure: Regenerate. - * config.bfd: Add bigobj object format for Windows targets. - -gas/ - * config/tc-i386.c (use_big_obj): Declare. - (OPTION_MBIG_OBJ): Define. - (md_longopts): Add -mbig-obj option. - (md_parse_option): Handle it. - (md_show_usage): Display help for this option. - (i386_target_format): Use bigobj for x86-64 if -mbig-obj. - * doc/c-i386.texi: Document the option. - -gas/testsuite/ - * gas/pe/big-obj.d, gas/pe/big-obj.s: Add test. - * gas/pe/pe.exp: Add test. - -include/coff/ - * pe.h (struct external_ANON_OBJECT_HEADER_BIGOBJ): Declare. - (FILHSZ_BIGOBJ): Define. - (struct external_SYMBOL_EX): Declare. - (SYMENT_BIGOBJ, SYMESZ_BIGOBJ): Define. - (union external_AUX_SYMBOL_EX): Declare. - (AUXENT_BIGOBJ, AUXESZ_BIGOBJ): Define. - * internal.h (struct internal_filehdr): Change type - of f_nscns. ---- - bfd/ChangeLog | 33 ++++++ - bfd/coff-alpha.c | 2 +- - bfd/coff-mips.c | 2 +- - bfd/coff-rs6000.c | 2 + - bfd/coff-sh.c | 1 + - bfd/coff64-rs6000.c | 2 + - bfd/coffcode.h | 258 ++++++++++++++++++++++++++++++++++++++++- - bfd/config.bfd | 2 +- - bfd/configure | 1 + - bfd/configure.in | 1 + - bfd/libcoff.h | 4 + - bfd/pe-x86_64.c | 54 +++++++++ - bfd/peicode.h | 19 ++- - bfd/targets.c | 2 + - gas/ChangeLog | 10 ++ - gas/config/tc-i386.c | 24 +++- - gas/doc/c-i386.texi | 5 + - gas/testsuite/ChangeLog | 5 + - gas/testsuite/gas/pe/big-obj.d | 11 ++ - gas/testsuite/gas/pe/big-obj.s | 16 +++ - gas/testsuite/gas/pe/pe.exp | 8 ++ - include/coff/ChangeLog | 11 ++ - include/coff/internal.h | 2 +- - include/coff/pe.h | 79 +++++++++++++ - 24 files changed, 537 insertions(+), 17 deletions(-) - create mode 100644 gas/testsuite/gas/pe/big-obj.d - create mode 100644 gas/testsuite/gas/pe/big-obj.s - -diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c -index a7a977c..8c68b56 100644 ---- a/bfd/coff-alpha.c -+++ b/bfd/coff-alpha.c -@@ -2241,7 +2241,7 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data = - alpha_ecoff_swap_filehdr_out, alpha_ecoff_swap_aouthdr_out, - alpha_ecoff_swap_scnhdr_out, - FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, -- ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, -+ ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 32768, - alpha_ecoff_swap_filehdr_in, alpha_ecoff_swap_aouthdr_in, - alpha_ecoff_swap_scnhdr_in, NULL, - alpha_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook, -diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c -index 454f89a..3a30d83 100644 ---- a/bfd/coff-mips.c -+++ b/bfd/coff-mips.c -@@ -1254,7 +1254,7 @@ static const struct ecoff_backend_data mips_ecoff_backend_data = - mips_ecoff_swap_filehdr_out, mips_ecoff_swap_aouthdr_out, - mips_ecoff_swap_scnhdr_out, - FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, -- ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, -+ ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 32768, - mips_ecoff_swap_filehdr_in, mips_ecoff_swap_aouthdr_in, - mips_ecoff_swap_scnhdr_in, NULL, - mips_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook, -diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c -index 06ee721..d0b8eaf 100644 ---- a/bfd/coff-rs6000.c -+++ b/bfd/coff-rs6000.c -@@ -4105,6 +4105,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data = - 3, /* _bfd_coff_default_section_alignment_power */ - FALSE, /* _bfd_coff_force_symnames_in_strings */ - 2, /* _bfd_coff_debug_string_prefix_length */ -+ 32768, /* _bfd_coff_max_nscns */ - coff_swap_filehdr_in, - coff_swap_aouthdr_in, - coff_swap_scnhdr_in, -@@ -4285,6 +4286,7 @@ static const struct xcoff_backend_data_rec bfd_pmac_xcoff_backend_data = - 3, /* _bfd_coff_default_section_alignment_power */ - FALSE, /* _bfd_coff_force_symnames_in_strings */ - 2, /* _bfd_coff_debug_string_prefix_length */ -+ 32768, /* _bfd_coff_max_nscns */ - coff_swap_filehdr_in, - coff_swap_aouthdr_in, - coff_swap_scnhdr_in, -diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c -index aca2b8b..1bf3f21 100644 ---- a/bfd/coff-sh.c -+++ b/bfd/coff-sh.c -@@ -3090,6 +3090,7 @@ static bfd_coff_backend_data bfd_coff_small_swap_table = - #else - 2, - #endif -+ 32768, - coff_swap_filehdr_in, coff_swap_aouthdr_in, coff_swap_scnhdr_in, - coff_swap_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook, - coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, -diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c -index 4bc7ea8..d660e3a5 100644 ---- a/bfd/coff64-rs6000.c -+++ b/bfd/coff64-rs6000.c -@@ -2542,6 +2542,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data = - 3, /* _bfd_coff_default_section_alignment_power */ - TRUE, /* _bfd_coff_force_symnames_in_strings */ - 4, /* _bfd_coff_debug_string_prefix_length */ -+ 32768, /* _bfd_coff_max_nscns */ - coff_swap_filehdr_in, - coff_swap_aouthdr_in, - coff_swap_scnhdr_in, -@@ -2801,6 +2802,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data = - 3, /* _bfd_coff_default_section_alignment_power */ - TRUE, /* _bfd_coff_force_symnames_in_strings */ - 4, /* _bfd_coff_debug_string_prefix_length */ -+ 32768, /* _bfd_coff_max_nscns */ - coff_swap_filehdr_in, - coff_swap_aouthdr_in, - coff_swap_scnhdr_in, -diff --git a/bfd/coffcode.h b/bfd/coffcode.h -index 11e70a5..d6fe39f 100644 ---- a/bfd/coffcode.h -+++ b/bfd/coffcode.h -@@ -1393,6 +1393,7 @@ Special entry points for gdb to swap in coff symbol table parts: - . unsigned int _bfd_coff_default_section_alignment_power; - . bfd_boolean _bfd_coff_force_symnames_in_strings; - . unsigned int _bfd_coff_debug_string_prefix_length; -+. unsigned int _bfd_coff_max_nscns; - . - . void (*_bfd_coff_swap_filehdr_in) - . (bfd *, void *, void *); -@@ -1530,6 +1531,9 @@ Special entry points for gdb to swap in coff symbol table parts: - . ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable)) - .#define bfd_coff_default_section_alignment_power(abfd) \ - . (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) -+.#define bfd_coff_max_nscns(abfd) \ -+. (coff_backend_info (abfd)->_bfd_coff_max_nscns) -+. - .#define bfd_coff_swap_filehdr_in(abfd, i,o) \ - . ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) - . -@@ -3136,7 +3140,7 @@ coff_compute_section_file_positions (bfd * abfd) - asection *current; - file_ptr sofar = bfd_coff_filhsz (abfd); - bfd_boolean align_adjust; -- int target_index; -+ unsigned int target_index; - #ifdef ALIGN_SECTIONS_IN_FILE - asection *previous = NULL; - file_ptr old_sofar; -@@ -3304,7 +3308,7 @@ coff_compute_section_file_positions (bfd * abfd) - } - #endif /* ! COFF_IMAGE_WITH_PE */ - -- if (target_index >= 32768) -+ if (target_index >= bfd_coff_max_nscns (abfd)) - { - bfd_set_error (bfd_error_file_too_big); - (*_bfd_error_handler) -@@ -5497,6 +5501,7 @@ static bfd_coff_backend_data bfd_coff_std_swap_table ATTRIBUTE_UNUSED = - #else - 2, - #endif -+ 32768, - coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, - coff_SWAP_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook, - coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, -@@ -5537,6 +5542,7 @@ static bfd_coff_backend_data ticoff0_swap_table = - #else - 2, - #endif -+ 32768, - coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, - coff_SWAP_reloc_in, ticoff0_bad_format_hook, coff_set_arch_mach_hook, - coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, -@@ -5578,6 +5584,7 @@ static bfd_coff_backend_data ticoff1_swap_table = - #else - 2, - #endif -+ 32768, - coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, - coff_SWAP_reloc_in, ticoff1_bad_format_hook, coff_set_arch_mach_hook, - coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, -@@ -5591,6 +5598,253 @@ static bfd_coff_backend_data ticoff1_swap_table = - }; - #endif - -+#ifdef COFF_WITH_PE_BIGOBJ -+/* The UUID for bigobj files. */ -+ -+static const char header_bigobj_classid[16] = -+{ -+ 0xC7, 0xA1, 0xBA, 0xD1, -+ 0xEE, 0xBA, -+ 0xa9, 0x4b, -+ 0xAF, 0x20, -+ 0xFA, 0xF6, 0x6A, 0xA4, 0xDC, 0xB8 -+}; -+ -+/* Swap routines. */ -+ -+static void -+coff_bigobj_swap_filehdr_in (bfd * abfd, void * src, void * dst) -+{ -+ struct external_ANON_OBJECT_HEADER_BIGOBJ *filehdr_src = -+ (struct external_ANON_OBJECT_HEADER_BIGOBJ *) src; -+ struct internal_filehdr *filehdr_dst = (struct internal_filehdr *) dst; -+ -+ filehdr_dst->f_magic = H_GET_16 (abfd, filehdr_src->Machine); -+ filehdr_dst->f_nscns = H_GET_32 (abfd, filehdr_src->NumberOfSections); -+ filehdr_dst->f_timdat = H_GET_32 (abfd, filehdr_src->TimeDateStamp); -+ filehdr_dst->f_symptr = -+ GET_FILEHDR_SYMPTR (abfd, filehdr_src->PointerToSymbolTable); -+ filehdr_dst->f_nsyms = H_GET_32 (abfd, filehdr_src->NumberOfSymbols); -+ filehdr_dst->f_opthdr = 0; -+ filehdr_dst->f_flags = 0; -+ -+ /* Check other magic numbers. */ -+ if (H_GET_16 (abfd, filehdr_src->Sig1) != IMAGE_FILE_MACHINE_UNKNOWN -+ || H_GET_16 (abfd, filehdr_src->Sig2) != 0xffff -+ || H_GET_16 (abfd, filehdr_src->Version) != 2 -+ || memcmp (filehdr_src->ClassID, header_bigobj_classid, 16) != 0) -+ filehdr_dst->f_opthdr = 0xffff; -+ -+ /* Note that CLR metadata are ignored. */ -+} -+ -+static unsigned int -+coff_bigobj_swap_filehdr_out (bfd *abfd, void * in, void * out) -+{ -+ struct internal_filehdr *filehdr_in = (struct internal_filehdr *) in; -+ struct external_ANON_OBJECT_HEADER_BIGOBJ *filehdr_out = -+ (struct external_ANON_OBJECT_HEADER_BIGOBJ *) out; -+ -+ memset (filehdr_out, 0, sizeof (*filehdr_out)); -+ -+ H_PUT_16 (abfd, IMAGE_FILE_MACHINE_UNKNOWN, filehdr_out->Sig1); -+ H_PUT_16 (abfd, 0xffff, filehdr_out->Sig2); -+ H_PUT_16 (abfd, 2, filehdr_out->Version); -+ memcpy (filehdr_out->ClassID, header_bigobj_classid, 16); -+ H_PUT_16 (abfd, filehdr_in->f_magic, filehdr_out->Machine); -+ H_PUT_32 (abfd, filehdr_in->f_nscns, filehdr_out->NumberOfSections); -+ H_PUT_32 (abfd, filehdr_in->f_timdat, filehdr_out->TimeDateStamp); -+ PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr, -+ filehdr_out->PointerToSymbolTable); -+ H_PUT_32 (abfd, filehdr_in->f_nsyms, filehdr_out->NumberOfSymbols); -+ -+ return bfd_coff_filhsz (abfd); -+} -+ -+static void -+coff_bigobj_swap_sym_in (bfd * abfd, void * ext1, void * in1) -+{ -+ SYMENT_BIGOBJ *ext = (SYMENT_BIGOBJ *) ext1; -+ struct internal_syment *in = (struct internal_syment *) in1; -+ -+ if (ext->e.e_name[0] == 0) -+ { -+ in->_n._n_n._n_zeroes = 0; -+ in->_n._n_n._n_offset = H_GET_32 (abfd, ext->e.e.e_offset); -+ } -+ else -+ { -+#if SYMNMLEN != E_SYMNMLEN -+#error we need to cope with truncating or extending SYMNMLEN -+#else -+ memcpy (in->_n._n_name, ext->e.e_name, SYMNMLEN); -+#endif -+ } -+ -+ in->n_value = H_GET_32 (abfd, ext->e_value); -+ in->n_scnum = H_GET_32 (abfd, ext->e_scnum); -+ in->n_type = H_GET_16 (abfd, ext->e_type); -+ in->n_sclass = H_GET_8 (abfd, ext->e_sclass); -+ in->n_numaux = H_GET_8 (abfd, ext->e_numaux); -+} -+ -+static unsigned int -+coff_bigobj_swap_sym_out (bfd * abfd, void * inp, void * extp) -+{ -+ struct internal_syment *in = (struct internal_syment *) inp; -+ SYMENT_BIGOBJ *ext = (SYMENT_BIGOBJ *) extp; -+ -+ if (in->_n._n_name[0] == 0) -+ { -+ H_PUT_32 (abfd, 0, ext->e.e.e_zeroes); -+ H_PUT_32 (abfd, in->_n._n_n._n_offset, ext->e.e.e_offset); -+ } -+ else -+ { -+#if SYMNMLEN != E_SYMNMLEN -+#error we need to cope with truncating or extending SYMNMLEN -+#else -+ memcpy (ext->e.e_name, in->_n._n_name, SYMNMLEN); -+#endif -+ } -+ -+ H_PUT_32 (abfd, in->n_value, ext->e_value); -+ H_PUT_32 (abfd, in->n_scnum, ext->e_scnum); -+ -+ H_PUT_16 (abfd, in->n_type, ext->e_type); -+ H_PUT_8 (abfd, in->n_sclass, ext->e_sclass); -+ H_PUT_8 (abfd, in->n_numaux, ext->e_numaux); -+ -+ return SYMESZ_BIGOBJ; -+} -+ -+static void -+coff_bigobj_swap_aux_in (bfd *abfd, -+ void * ext1, -+ int type, -+ int in_class, -+ int indx, -+ int numaux, -+ void * in1) -+{ -+ AUXENT_BIGOBJ *ext = (AUXENT_BIGOBJ *) ext1; -+ union internal_auxent *in = (union internal_auxent *) in1; -+ -+ switch (in_class) -+ { -+ case C_FILE: -+ if (numaux > 1) -+ { -+ if (indx == 0) -+ memcpy (in->x_file.x_fname, ext->File.Name, -+ numaux * sizeof (AUXENT_BIGOBJ)); -+ } -+ else -+ memcpy (in->x_file.x_fname, ext->File.Name, sizeof (ext->File.Name)); -+ break; -+ -+ case C_STAT: -+ case C_LEAFSTAT: -+ case C_HIDDEN: -+ if (type == T_NULL) -+ { -+ in->x_scn.x_scnlen = H_GET_32 (abfd, ext->Section.Length); -+ in->x_scn.x_nreloc = -+ H_GET_16 (abfd, ext->Section.NumberOfRelocations); -+ in->x_scn.x_nlinno = -+ H_GET_16 (abfd, ext->Section.NumberOfLinenumbers); -+ in->x_scn.x_checksum = H_GET_32 (abfd, ext->Section.Checksum); -+ in->x_scn.x_associated = H_GET_16 (abfd, ext->Section.Number) -+ | (H_GET_16 (abfd, ext->Section.HighNumber) << 16); -+ in->x_scn.x_comdat = H_GET_8 (abfd, ext->Section.Selection); -+ return; -+ } -+ break; -+ -+ default: -+ in->x_sym.x_tagndx.l = H_GET_32 (abfd, ext->Sym.WeakDefaultSymIndex); -+ /* Characteristics is ignored. */ -+ break; -+ } -+} -+ -+static unsigned int -+coff_bigobj_swap_aux_out (bfd * abfd, -+ void * inp, -+ int type, -+ int in_class, -+ int indx ATTRIBUTE_UNUSED, -+ int numaux ATTRIBUTE_UNUSED, -+ void * extp) -+{ -+ union internal_auxent * in = (union internal_auxent *) inp; -+ AUXENT_BIGOBJ *ext = (AUXENT_BIGOBJ *) extp; -+ -+ memset (ext, 0, AUXESZ); -+ -+ switch (in_class) -+ { -+ case C_FILE: -+ memcpy (ext->File.Name, in->x_file.x_fname, sizeof (ext->File.Name)); -+ -+ return AUXESZ; -+ -+ case C_STAT: -+ case C_LEAFSTAT: -+ case C_HIDDEN: -+ if (type == T_NULL) -+ { -+ H_PUT_32 (abfd, in->x_scn.x_scnlen, ext->Section.Length); -+ H_PUT_16 (abfd, in->x_scn.x_nreloc, -+ ext->Section.NumberOfRelocations); -+ H_PUT_16 (abfd, in->x_scn.x_nlinno, -+ ext->Section.NumberOfLinenumbers); -+ H_PUT_32 (abfd, in->x_scn.x_checksum, ext->Section.Checksum); -+ H_PUT_16 (abfd, in->x_scn.x_associated & 0xffff, -+ ext->Section.Number); -+ H_PUT_16 (abfd, (in->x_scn.x_associated >> 16), -+ ext->Section.HighNumber); -+ H_PUT_8 (abfd, in->x_scn.x_comdat, ext->Section.Selection); -+ return AUXESZ; -+ } -+ break; -+ } -+ -+ H_PUT_32 (abfd, in->x_sym.x_tagndx.l, ext->Sym.WeakDefaultSymIndex); -+ H_PUT_32 (abfd, 1, ext->Sym.WeakSearchType); -+ -+ return AUXESZ; -+} -+ -+static bfd_coff_backend_data bigobj_swap_table = -+{ -+ coff_bigobj_swap_aux_in, coff_bigobj_swap_sym_in, coff_SWAP_lineno_in, -+ coff_bigobj_swap_aux_out, coff_bigobj_swap_sym_out, -+ coff_SWAP_lineno_out, coff_SWAP_reloc_out, -+ coff_bigobj_swap_filehdr_out, coff_SWAP_aouthdr_out, -+ coff_SWAP_scnhdr_out, -+ FILHSZ_BIGOBJ, AOUTSZ, SCNHSZ, SYMESZ_BIGOBJ, AUXESZ_BIGOBJ, -+ RELSZ, LINESZ, FILNMLEN_BIGOBJ, -+ TRUE, -+ COFF_DEFAULT_LONG_SECTION_NAMES, -+ COFF_DEFAULT_SECTION_ALIGNMENT_POWER, -+ FALSE, -+ 2, -+ 1U << 31, -+ coff_bigobj_swap_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, -+ coff_SWAP_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook, -+ coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, -+ coff_slurp_symbol_table, symname_in_debug_hook, coff_pointerize_aux_hook, -+ coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate, -+ coff_classify_symbol, coff_compute_section_file_positions, -+ coff_start_final_link, coff_relocate_section, coff_rtype_to_howto, -+ coff_adjust_symndx, coff_link_add_one_symbol, -+ coff_link_output_has_begun, coff_final_link_postscript, -+ bfd_pe_print_pdata /* huh */ -+}; -+ -+#endif /* COFF_WITH_PE_BIGOBJ */ -+ - #ifndef coff_close_and_cleanup - #define coff_close_and_cleanup _bfd_generic_close_and_cleanup - #endif -diff --git a/bfd/config.bfd b/bfd/config.bfd -index 59b9f64..147954a 100644 ---- a/bfd/config.bfd -+++ b/bfd/config.bfd -@@ -676,7 +676,7 @@ case "${targ}" in - ;; - x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin) - targ_defvec=x86_64pe_vec -- targ_selvecs="x86_64pe_vec x86_64pei_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386pe_vec i386pei_vec bfd_elf32_i386_vec" -+ targ_selvecs="x86_64pe_vec x86_64pei_vec x86_64pe_bigobj_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386pe_vec i386pei_vec bfd_elf32_i386_vec" - want64=true - targ_underscore=no - ;; -diff --git a/bfd/configure b/bfd/configure -index bef7295..fbf5f44 100755 ---- a/bfd/configure -+++ b/bfd/configure -@@ -15453,6 +15453,7 @@ do - i386pei_vec) tb="$tb pei-i386.lo peigen.lo cofflink.lo" ;; - x86_64pe_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; - x86_64pei_vec) tb="$tb pei-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; -+ x86_64pe_bigobj_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; - i860coff_vec) tb="$tb coff-i860.lo cofflink.lo" ;; - icoff_big_vec) tb="$tb coff-i960.lo cofflink.lo" ;; - icoff_little_vec) tb="$tb coff-i960.lo cofflink.lo" ;; -diff --git a/bfd/configure.in b/bfd/configure.in -index da8c6dc..f1ec965 100644 ---- a/bfd/configure.in -+++ b/bfd/configure.in -@@ -942,6 +942,7 @@ do - i386pei_vec) tb="$tb pei-i386.lo peigen.lo cofflink.lo" ;; - x86_64pe_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; - x86_64pei_vec) tb="$tb pei-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; -+ x86_64pe_bigobj_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; - i860coff_vec) tb="$tb coff-i860.lo cofflink.lo" ;; - icoff_big_vec) tb="$tb coff-i960.lo cofflink.lo" ;; - icoff_little_vec) tb="$tb coff-i960.lo cofflink.lo" ;; -diff --git a/bfd/libcoff.h b/bfd/libcoff.h -index b5a9852..36c9829 100644 ---- a/bfd/libcoff.h -+++ b/bfd/libcoff.h -@@ -736,6 +736,7 @@ typedef struct - unsigned int _bfd_coff_default_section_alignment_power; - bfd_boolean _bfd_coff_force_symnames_in_strings; - unsigned int _bfd_coff_debug_string_prefix_length; -+ unsigned int _bfd_coff_max_nscns; - - void (*_bfd_coff_swap_filehdr_in) - (bfd *, void *, void *); -@@ -873,6 +874,9 @@ typedef struct - ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable)) - #define bfd_coff_default_section_alignment_power(abfd) \ - (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) -+#define bfd_coff_max_nscns(abfd) \ -+ (coff_backend_info (abfd)->_bfd_coff_max_nscns) -+ - #define bfd_coff_swap_filehdr_in(abfd, i,o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) - -diff --git a/bfd/pe-x86_64.c b/bfd/pe-x86_64.c -index 26bb99d..16b13ec 100644 ---- a/bfd/pe-x86_64.c -+++ b/bfd/pe-x86_64.c -@@ -27,6 +27,7 @@ - #define TARGET_NAME "pe-x86-64" - #define COFF_WITH_PE - #define COFF_WITH_pex64 -+#define COFF_WITH_PE_BIGOBJ - #define PCRELOFFSET TRUE - #if defined (USE_MINGW64_LEADING_UNDERSCORES) - #define TARGET_UNDERSCORE '_' -@@ -58,3 +59,56 @@ - COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 } - - #include "coff-x86_64.c" -+ -+/* Entry for big object files. */ -+ -+const bfd_target -+x86_64pe_bigobj_vec = -+{ -+ "pe-bigobj-x86-64", /* Name. */ -+ bfd_target_coff_flavour, -+ BFD_ENDIAN_LITTLE, /* Data byte order is little. */ -+ BFD_ENDIAN_LITTLE, /* Header byte order is little. */ -+ -+ (HAS_RELOC | EXEC_P | /* Object flags. */ -+ HAS_LINENO | HAS_DEBUG | -+ HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS), -+ -+ (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC /* Section flags. */ -+ | SEC_LINK_ONCE | SEC_LINK_DUPLICATES | SEC_READONLY | SEC_DEBUGGING -+ | SEC_CODE | SEC_DATA | SEC_EXCLUDE ), -+ -+ TARGET_UNDERSCORE, /* Leading underscore. */ -+ '/', /* Ar_pad_char. */ -+ 15, /* Ar_max_namelen. */ -+ 0, /* match priority. */ -+ -+ bfd_getl64, bfd_getl_signed_64, bfd_putl64, -+ bfd_getl32, bfd_getl_signed_32, bfd_putl32, -+ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Data. */ -+ bfd_getl64, bfd_getl_signed_64, bfd_putl64, -+ bfd_getl32, bfd_getl_signed_32, bfd_putl32, -+ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Hdrs. */ -+ -+ /* Note that we allow an object file to be treated as a core file as well. */ -+ { _bfd_dummy_target, amd64coff_object_p, /* BFD_check_format. */ -+ bfd_generic_archive_p, amd64coff_object_p }, -+ { bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format. */ -+ bfd_false }, -+ { bfd_false, coff_write_object_contents, /* bfd_write_contents. */ -+ _bfd_write_archive_contents, bfd_false }, -+ -+ BFD_JUMP_TABLE_GENERIC (coff), -+ BFD_JUMP_TABLE_COPY (coff), -+ BFD_JUMP_TABLE_CORE (_bfd_nocore), -+ BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), -+ BFD_JUMP_TABLE_SYMBOLS (coff), -+ BFD_JUMP_TABLE_RELOCS (coff), -+ BFD_JUMP_TABLE_WRITE (coff), -+ BFD_JUMP_TABLE_LINK (coff), -+ BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), -+ -+ NULL, -+ -+ &bigobj_swap_table -+}; -diff --git a/bfd/peicode.h b/bfd/peicode.h -index 8fd689c..157879b 100644 ---- a/bfd/peicode.h -+++ b/bfd/peicode.h -@@ -1077,7 +1077,7 @@ pe_ILF_build_a_bfd (bfd * abfd, - static const bfd_target * - pe_ILF_object_p (bfd * abfd) - { -- bfd_byte buffer[16]; -+ bfd_byte buffer[14]; - bfd_byte * ptr; - char * symbol_name; - char * source_dll; -@@ -1087,17 +1087,13 @@ pe_ILF_object_p (bfd * abfd) - unsigned int types; - unsigned int magic; - -- /* Upon entry the first four buyes of the ILF header have -+ /* Upon entry the first six bytes of the ILF header have - already been read. Now read the rest of the header. */ -- if (bfd_bread (buffer, (bfd_size_type) 16, abfd) != 16) -+ if (bfd_bread (buffer, (bfd_size_type) 14, abfd) != 14) - return NULL; - - ptr = buffer; - -- /* We do not bother to check the version number. -- version = H_GET_16 (abfd, ptr); */ -- ptr += 2; -- - machine = H_GET_16 (abfd, ptr); - ptr += 2; - -@@ -1251,7 +1247,7 @@ pe_ILF_object_p (bfd * abfd) - static const bfd_target * - pe_bfd_object_p (bfd * abfd) - { -- bfd_byte buffer[4]; -+ bfd_byte buffer[6]; - struct external_PEI_DOS_hdr dos_hdr; - struct external_PEI_IMAGE_hdr image_hdr; - struct internal_filehdr internal_f; -@@ -1260,15 +1256,18 @@ pe_bfd_object_p (bfd * abfd) - file_ptr offset; - - /* Detect if this a Microsoft Import Library Format element. */ -+ /* First read the beginning of the header. */ - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 -- || bfd_bread (buffer, (bfd_size_type) 4, abfd) != 4) -+ || bfd_bread (buffer, (bfd_size_type) 6, abfd) != 6) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - -- if (H_GET_32 (abfd, buffer) == 0xffff0000) -+ /* Then check the magic and the version (only 0 is supported). */ -+ if (H_GET_32 (abfd, buffer) == 0xffff0000 -+ && H_GET_16 (abfd, buffer + 4) == 0) - return pe_ILF_object_p (abfd); - - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 -diff --git a/bfd/targets.c b/bfd/targets.c -index f502eec..058ab77 100644 ---- a/bfd/targets.c -+++ b/bfd/targets.c -@@ -896,6 +896,7 @@ extern const bfd_target w65_vec; - extern const bfd_target we32kcoff_vec; - extern const bfd_target x86_64pe_vec; - extern const bfd_target x86_64pei_vec; -+extern const bfd_target x86_64pe_bigobj_vec; - extern const bfd_target x86_64coff_vec; - extern const bfd_target z80coff_vec; - extern const bfd_target z8kcoff_vec; -@@ -1231,6 +1232,7 @@ static const bfd_target * const _bfd_target_vector[] = - &x86_64coff_vec, - &x86_64pe_vec, - &x86_64pei_vec, -+ &x86_64pe_bigobj_vec, - #endif - &i860coff_vec, - &icoff_big_vec, -diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c -index f6283a6..734935a 100644 ---- a/gas/config/tc-i386.c -+++ b/gas/config/tc-i386.c -@@ -513,6 +513,11 @@ enum x86_elf_abi - static enum x86_elf_abi x86_elf_abi = I386_ABI; - #endif - -+#if defined (TE_PE) || defined (TE_PEP) -+/* Use big object file format. */ -+static int use_big_obj = 0; -+#endif -+ - /* 1 for intel syntax, - 0 if att syntax. */ - static int intel_syntax = 0; -@@ -9497,6 +9502,7 @@ const char *md_shortopts = "qn"; - #define OPTION_MADD_BND_PREFIX (OPTION_MD_BASE + 15) - #define OPTION_MEVEXLIG (OPTION_MD_BASE + 16) - #define OPTION_MEVEXWIG (OPTION_MD_BASE + 17) -+#define OPTION_MBIG_OBJ (OPTION_MD_BASE + 18) - - struct option md_longopts[] = - { -@@ -9523,6 +9529,9 @@ struct option md_longopts[] = - {"madd-bnd-prefix", no_argument, NULL, OPTION_MADD_BND_PREFIX}, - {"mevexlig", required_argument, NULL, OPTION_MEVEXLIG}, - {"mevexwig", required_argument, NULL, OPTION_MEVEXWIG}, -+# if defined (TE_PE) || defined (TE_PEP) -+ {"mbig-obj", no_argument, NULL, OPTION_MBIG_OBJ}, -+#endif - {NULL, no_argument, NULL, 0} - }; - size_t md_longopts_size = sizeof (md_longopts); -@@ -9804,6 +9813,12 @@ md_parse_option (int c, char *arg) - as_fatal (_("invalid -mevexwig= option: `%s'"), arg); - break; - -+# if defined (TE_PE) || defined (TE_PEP) -+ case OPTION_MBIG_OBJ: -+ use_big_obj = 1; -+ break; -+#endif -+ - default: - return 0; - } -@@ -9956,6 +9971,10 @@ md_show_usage (FILE *stream) - -mold-gcc support old (<= 2.8.1) versions of gcc\n")); - fprintf (stream, _("\ - -madd-bnd-prefix add BND prefix for all valid branches\n")); -+# if defined (TE_PE) || defined (TE_PEP) -+ fprintf (stream, _("\ -+ -mbig-obj generate big object files\n")); -+#endif - } - - #if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \ -@@ -9994,7 +10013,10 @@ i386_target_format (void) - #if defined (OBJ_MAYBE_COFF) || defined (OBJ_COFF) - # if defined (TE_PE) || defined (TE_PEP) - case bfd_target_coff_flavour: -- return flag_code == CODE_64BIT ? "pe-x86-64" : "pe-i386"; -+ if (flag_code == CODE_64BIT) -+ return use_big_obj ? "pe-bigobj-x86-64" : "pe-x86-64"; -+ else -+ return "pe-i386"; - # elif defined (TE_GO32) - case bfd_target_coff_flavour: - return "coff-go32"; -diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi -index 18bd96a..1952cee 100644 ---- a/gas/doc/c-i386.texi -+++ b/gas/doc/c-i386.texi -@@ -283,6 +283,11 @@ The @code{.att_syntax} and @code{.intel_syntax} directives will take precedent. - This option forces the assembler to add BND prefix to all branches, even - if such prefix was not explicitly specified in the source code. - -+@cindex @samp{-mbig-obj} option, x86-64 -+@item -mbig-obj -+On x86-64 PE/COFF target this option forces the use of big object file -+format, which allows more than 32768 sections. -+ - @end table - @c man end - -diff --git a/gas/testsuite/gas/pe/big-obj.d b/gas/testsuite/gas/pe/big-obj.d -new file mode 100644 -index 0000000..95ff1d8 ---- /dev/null -+++ b/gas/testsuite/gas/pe/big-obj.d -@@ -0,0 +1,11 @@ -+#as: -mbig-obj -+#objdump: -h -+#name: PE x64 big obj -+ -+.*: *file format pe-bigobj-.* -+ -+Sections: -+#... -+5000. \.data\$a49999 .* -+ CONTENTS, ALLOC, LOAD, DATA -+ -diff --git a/gas/testsuite/gas/pe/big-obj.s b/gas/testsuite/gas/pe/big-obj.s -new file mode 100644 -index 0000000..07edc91 ---- /dev/null -+++ b/gas/testsuite/gas/pe/big-obj.s -@@ -0,0 +1,16 @@ -+ .file "big-obj.s" -+ -+ .irp n,0,1,2,3,4 -+ .irp m,0,1,2,3,4,5,6,7,8,9 -+ .irp c,0,1,2,3,4,5,6,7,8,9 -+ .irp d,0,1,2,3,4,5,6,7,8,9 -+ .irp u,0,1,2,3,4,5,6,7,8,9 -+ .globl a\n\m\c\d\u -+ .section .data$a\n\m\c\d\u,"w" -+a\n\m\c\d\u : -+ .byte 1 -+ .endr -+ .endr -+ .endr -+ .endr -+ .endr -diff --git a/gas/testsuite/gas/pe/pe.exp b/gas/testsuite/gas/pe/pe.exp -index 0b70ee6..c1c5f49 100644 ---- a/gas/testsuite/gas/pe/pe.exp -+++ b/gas/testsuite/gas/pe/pe.exp -@@ -48,3 +48,11 @@ if ([istarget "x86_64-*-mingw*"]) then { - run_dump_test "peseh-x64-5" - run_dump_test "peseh-x64-6" - } -+ -+# Big obj -+ -+ -+if ([istarget "x86_64-*-mingw*"]) then { -+ # Currently only supported on x86_64 -+ run_dump_test "big-obj" -+} -diff --git a/include/coff/internal.h b/include/coff/internal.h -index 4f99f2f..b34e5c6 100644 ---- a/include/coff/internal.h -+++ b/include/coff/internal.h -@@ -73,7 +73,7 @@ struct internal_filehdr - - /* Standard coff internal info. */ - unsigned short f_magic; /* magic number */ -- unsigned short f_nscns; /* number of sections */ -+ unsigned int f_nscns; /* number of sections */ - long f_timdat; /* time & date stamp */ - bfd_vma f_symptr; /* file pointer to symtab */ - long f_nsyms; /* number of symtab entries */ -diff --git a/include/coff/pe.h b/include/coff/pe.h -index 0093398..3166531 100644 ---- a/include/coff/pe.h -+++ b/include/coff/pe.h -@@ -358,6 +358,85 @@ typedef struct - #define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 - #define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 - -+/* Bigobj header. */ -+struct external_ANON_OBJECT_HEADER_BIGOBJ -+{ -+ /* ANON_OBJECT_HEADER_V2 header. */ -+ char Sig1[2]; -+ char Sig2[2]; -+ char Version[2]; -+ char Machine[2]; -+ char TimeDateStamp[4]; -+ char ClassID[16]; -+ char SizeOfData[4]; -+ char Flags[4]; -+ char MetaDataSize[4]; -+ char MetaDataOffset[4]; -+ -+ /* BIGOBJ specific. */ -+ char NumberOfSections[4]; -+ char PointerToSymbolTable[4]; -+ char NumberOfSymbols[4]; -+}; -+ -+#define FILHSZ_BIGOBJ (14 * 4) -+ -+struct external_SYMBOL_EX -+{ -+ union -+ { -+ char e_name[E_SYMNMLEN]; -+ -+ struct -+ { -+ char e_zeroes[4]; -+ char e_offset[4]; -+ } e; -+ } e; -+ -+ char e_value[4]; -+ char e_scnum[4]; -+ char e_type[2]; -+ char e_sclass[1]; -+ char e_numaux[1]; -+} ATTRIBUTE_PACKED ; -+ -+#define SYMENT_BIGOBJ struct external_SYMBOL_EX -+#define SYMESZ_BIGOBJ 20 -+ -+#define FILNMLEN_BIGOBJ 20 -+ -+union external_AUX_SYMBOL_EX -+{ -+ struct -+ { -+ char WeakDefaultSymIndex[4]; -+ char WeakSearchType[4]; -+ char rgbReserved[12]; -+ } Sym; -+ -+ struct -+ { -+ char Name[FILNMLEN_BIGOBJ]; -+ } File; -+ -+ struct -+ { -+ char Length[4]; /* section length */ -+ char NumberOfRelocations[2]; /* # relocation entries */ -+ char NumberOfLinenumbers[2]; /* # line numbers */ -+ char Checksum[4]; /* section COMDAT checksum */ -+ char Number[2]; /* COMDAT associated section index */ -+ char Selection[1]; /* COMDAT selection number */ -+ char bReserved[1]; -+ char HighNumber[2]; /* High bits of COMDAT associated sec. */ -+ char rgbReserved[2]; -+ } Section; -+} ATTRIBUTE_PACKED; -+ -+#define AUXENT_BIGOBJ union external_AUX_SYMBOL_EX -+#define AUXESZ_BIGOBJ 20 -+ - /* .pdata/.xdata defines and structures for x64 PE+ for exception handling. */ - - /* .pdata in exception directory. */ --- -1.8.5.5 - diff --git a/mingw-w64-binutils/030-binutils-mingw-gnu-print.patch b/mingw-w64-binutils/030-binutils-mingw-gnu-print.patch index 419fd524f3..6b4d3cb0e3 100644 --- a/mingw-w64-binutils/030-binutils-mingw-gnu-print.patch +++ b/mingw-w64-binutils/030-binutils-mingw-gnu-print.patch @@ -80,9 +80,9 @@ diff -Naur binutils-2.24/binutils/readelf.c binutils-2.24-mingw/binutils/readelf ? "%16.16llx %16.16llx " : "%12.12llx %12.12llx ", @@ -10836,7 +10836,7 @@ - - if (data < end) { + size_t maxlen = end - data; + -#ifndef __MSVCRT__ +#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) /* PR 11128: Use two separate invocations in order to work diff --git a/mingw-w64-binutils/100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch b/mingw-w64-binutils/100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch deleted file mode 100644 index 642ff58d4e..0000000000 --- a/mingw-w64-binutils/100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch +++ /dev/null @@ -1,86 +0,0 @@ -diff -urN binutils-2.24.orig/libiberty/pex-win32.c binutils-2.24libiberty/pex-win32.c ---- binutils-2.24.orig/libiberty/pex-win32.c 2013-12-21 20:21:26.446076700 +0000 -+++ binutils-2.24/libiberty/pex-win32.c 2013-12-22 02:56:54.800559500 +0000 -@@ -340,17 +340,26 @@ - char *p; - size_t cmdline_len; - int i, j, k; -+ int needs_quotes; - - cmdline_len = 0; - for (i = 0; argv[i]; i++) - { -- /* We quote every last argument. This simplifies the problem; -- we need only escape embedded double-quotes and immediately -+ /* We only quote arguments that contain spaces, \n \t \v or " characters -+ to prevent wasting 2 chars per argument of the CreateProcess 32k char limit -+ We need only escape embedded double-quotes and immediately - preceeding backslash characters. A sequence of backslach characters - that is not follwed by a double quote character will not be - escaped. */ -+ needs_quotes = 0; - for (j = 0; argv[i][j]; j++) - { -+ if (argv[i][j] == ' ' || argv[i][j] == '\n' || -+ argv[i][j] == '\t' || argv[i][j] == '"' ) -+ { -+ needs_quotes = 1; -+ } -+ - if (argv[i][j] == '"') - { - /* Escape preceeding backslashes. */ -@@ -362,16 +371,33 @@ - } - /* Trailing backslashes also need to be escaped because they will be - followed by the terminating quote. */ -- for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -- cmdline_len++; -+ if (needs_quotes) -+ { -+ for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -+ cmdline_len++; -+ } - cmdline_len += j; -- cmdline_len += 3; /* for leading and trailing quotes and space */ -+ cmdline_len += 1 + (needs_quotes<<1); /* for leading and trailing quotes and space */ - } - cmdline = XNEWVEC (char, cmdline_len); - p = cmdline; - for (i = 0; argv[i]; i++) - { -- *p++ = '"'; -+ needs_quotes = 0; -+ for (j = 0; argv[i][j]; j++) -+ { -+ if (argv[i][j] == ' ' || argv[i][j] == '\n' || -+ argv[i][j] == '\t' || argv[i][j] == '"' ) -+ { -+ needs_quotes = 1; -+ break; -+ } -+ } -+ -+ if (needs_quotes) -+ { -+ *p++ = '"'; -+ } - for (j = 0; argv[i][j]; j++) - { - if (argv[i][j] == '"') -@@ -382,9 +408,12 @@ - } - *p++ = argv[i][j]; - } -- for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -- *p++ = '\\'; -- *p++ = '"'; -+ if (needs_quotes) -+ { -+ for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -+ *p++ = '\\'; -+ *p++ = '"'; -+ } - *p++ = ' '; - } - p[-1] = '\0'; diff --git a/mingw-w64-binutils/120-Bug-16858-weak-external-reference-has-wrong-value.patch b/mingw-w64-binutils/120-Bug-16858-weak-external-reference-has-wrong-value.patch deleted file mode 100644 index 98a25966c1..0000000000 --- a/mingw-w64-binutils/120-Bug-16858-weak-external-reference-has-wrong-value.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/gas/config/tc-i386.c -+++ a/gas/config/tc-i386.c -@@ -9145,12 +9145,6 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) - value += md_pcrel_from (fixP); - #endif - } --#if defined (OBJ_COFF) && defined (TE_PE) -- if (fixP->fx_addsy != NULL && S_IS_WEAK (fixP->fx_addsy)) -- { -- value -= S_GET_VALUE (fixP->fx_addsy); -- } --#endif - - /* Fix a few things - the dynamic linker expects certain values here, - and we must not disappoint it. */ diff --git a/mingw-w64-binutils/130-make-relocbase-unsigned.patch b/mingw-w64-binutils/130-make-relocbase-unsigned.patch deleted file mode 100644 index e68076ba49..0000000000 --- a/mingw-w64-binutils/130-make-relocbase-unsigned.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -urN binutils-2.24.orig/bfd/libcoff.h binutils-2.24/bfd/libcoff.h ---- binutils-2.24.orig/bfd/libcoff.h 2014-05-24 16:03:12.983980200 +0100 -+++ binutils-2.24/bfd/libcoff.h 2014-05-24 16:04:45.239695200 +0100 -@@ -57,7 +57,7 @@ - unsigned long raw_syment_count; - - /* These are only valid once writing has begun. */ -- long int relocbase; -+ unsigned long int relocbase; - - /* These members communicate important constants about the symbol table - to GDB's symbol-reading code. These `constants' unfortunately vary -diff -urN binutils-2.24.orig/bfd/libcoff-in.h binutils-2.24/bfd/libcoff-in.h ---- binutils-2.24.orig/bfd/libcoff-in.h 2014-05-24 16:03:12.983480200 +0100 -+++ binutils-2.24/bfd/libcoff-in.h 2014-05-24 16:04:27.654962200 +0100 -@@ -53,7 +53,7 @@ - unsigned long raw_syment_count; - - /* These are only valid once writing has begun. */ -- long int relocbase; -+ unsigned long int relocbase; - - /* These members communicate important constants about the symbol table - to GDB's symbol-reading code. These `constants' unfortunately vary diff --git a/mingw-w64-binutils/PKGBUILD b/mingw-w64-binutils/PKGBUILD index 4483a11b00..3c5a698e94 100644 --- a/mingw-w64-binutils/PKGBUILD +++ b/mingw-w64-binutils/PKGBUILD @@ -2,10 +2,9 @@ # Contributor: Ray Donnelly _realname=binutils - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.24 -pkgrel=9 +pkgver=2.25 +pkgrel=1 pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('any') url="http://www.gnu.org/software/binutils/" @@ -16,47 +15,22 @@ depends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' '!distcc' '!ccache') # 'debug' '!strip') #install=binutils.install -source=("ftp://mirrors.kernel.org/sources.redhat.com/${_realname}/releases/${_realname}-${pkgver}.tar.bz2" - '010-2.23.52-install-libiberty.patch' - '100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch' - '020-add-bigobj-format.patch' - '030-binutils-mingw-gnu-print.patch' - '110-This-fixes-a-compile-time-warning.patch' - '120-Bug-16858-weak-external-reference-has-wrong-value.patch' - '130-make-relocbase-unsigned.patch') -md5sums=('e0f71a7b2ddab0f8612336ac81d9636b' - '01590d2835f6eda9932f78f84718a1d9' - 'cc15baf6f7939980c7f406416736baa8' - '62c646e3f8c4cb08d0916ab34faa8254' - '6e8b708d437bccbfa46ba56421dabb40' - '10fcfbca65c6939840dd0f4a575b8a99' - '7b0d532ba0419ed2bdae746b1a4f42b6' - '0513245c067162fa9f79b7e0befd201d') +source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2{,.sig} + '030-binutils-mingw-gnu-print.patch' + '110-This-fixes-a-compile-time-warning.patch') +md5sums=('d9f3303f802a5b6b0bb73a335ab89d66' + 'SKIP' + 'c11228663002721df3437a0d6c8280ee' + '10fcfbca65c6939840dd0f4a575b8a99') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i "${srcdir}"/010-2.23.52-install-libiberty.patch - [ -f gas/testsuite/gas/pe/big-obj.d ] && rm gas/testsuite/gas/pe/big-obj.d - [ -f gas/testsuite/gas/pe/big-obj.s ] && rm gas/testsuite/gas/pe/big-obj.s - patch -p1 -i "${srcdir}"/020-add-bigobj-format.patch patch -p1 -i "${srcdir}"/030-binutils-mingw-gnu-print.patch - patch -p1 -i "${srcdir}"/100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch -# 110-This-fixes-a-compile-time-warning.patch isn't needed for 2.24 and may not -# be needed after either; depending on what gets included in the next release. -# patch -p1 -i "${srcdir}"/110-This-fixes-a-compile-time-warning.patch -# Fixes bug https://sourceware.org/bugzilla/show_bug.cgi?id=16858#c3 - patch -p1 -i "${srcdir}"/120-Bug-16858-weak-external-reference-has-wrong-value.patch + + # 110-This-fixes-a-compile-time-warning.patch isn't needed for 2.24 and may not + # be needed after either; depending on what gets included in the next release. + # patch -p1 -i "${srcdir}"/110-This-fixes-a-compile-time-warning.patch -# I ran into a bug building Qt5Webkitd.dll -# "final link failed: File truncated" -# was due to a negative offset ending up in rel_filepos in _bfd_coff_final_link, this -# attempts to double the amount of room we have. - patch -p1 -i "${srcdir}"/130-make-relocbase-unsigned.patch - - #do not install libiberty - #sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in - # hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS" - #sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure } build() { @@ -110,9 +84,6 @@ package() { mv ${pkgdir}${MINGW_PREFIX}/include/*.h ${pkgdir}${MINGW_PREFIX}/include/${_realname} mv ${pkgdir}${MINGW_PREFIX}/lib/*.a ${pkgdir}${MINGW_PREFIX}/lib/${_realname} - # Remove unwanted files - # rm -rf ${pkgdir}${MINGW_PREFIX}/share - # Add some useful headers #install -m644 ${srcdir}/${_realname}-${pkgver}/include/libiberty.h ${pkgdir}${MINGW_PREFIX}/include #install -m644 ${srcdir}/${_realname}-${pkgver}/include/demangle.h ${pkgdir}${MINGW_PREFIX}/include From 48c1275fe42bc0234974e0542e36d862a93409b8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 24 Dec 2014 00:38:38 +0300 Subject: [PATCH 0203/2060] gxml: Update version --- mingw-w64-gxml/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gxml/PKGBUILD b/mingw-w64-gxml/PKGBUILD index 85e859c387..6098a07c0f 100644 --- a/mingw-w64-gxml/PKGBUILD +++ b/mingw-w64-gxml/PKGBUILD @@ -3,7 +3,7 @@ _realname=gxml pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.4.1 -pkgrel=1 +pkgrel=2 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="LibXML2 GObject wrapper version 0.4 (mingw-w64)" From 57d9f41ae15fc40ab7675ba810808b6cdf384b26 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 24 Dec 2014 01:14:16 +0300 Subject: [PATCH 0204/2060] xz: Update to 5.2.0 --- mingw-w64-xz/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-xz/PKGBUILD b/mingw-w64-xz/PKGBUILD index f8f2953db1..00150d9037 100644 --- a/mingw-w64-xz/PKGBUILD +++ b/mingw-w64-xz/PKGBUILD @@ -2,7 +2,7 @@ _realname=xz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.0.7 +pkgver=5.2.0 pkgrel=1 pkgdesc="Library and command line tools for XZ and LZMA compressed files (mingw-w64)" arch=('any') @@ -12,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext") options=('staticlibs' 'strip') source=("$url/xz-${pkgver}.tar.gz") -md5sums=('60449e1c9c0eabefc9c3166e325636e5') +md5sums=('be585bdf8672e4406632eda3d819e284') build() { mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} From 837319b45428b7dc6919d4ca5a0babb0a652abf9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Dec 2014 00:03:12 +0300 Subject: [PATCH 0205/2060] gettext: Update to 0.19.4 --- mingw-w64-gettext/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index 665a5f81e4..136760e7b5 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -2,7 +2,7 @@ _realname=gettext pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.19.3 +pkgver=0.19.4 pkgrel=1 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -19,7 +19,7 @@ source=("http://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-$pkgver.tar.gz"{,. 05-always-use-libintl-vsnprintf.mingw.patch 06-dont-include-ctype-after-gnulibs-wctype.mingw.patch 07-fix-asprintf-conflict.mingw.patch) -md5sums=('c365029ffc866fc4e485d9e5ca60b260' +md5sums=('d3511af1e604a3478900d2c2b4a4a48e' 'SKIP' '397d7d6d4abd15a70edb3c9f2bab4cd2' '6fc5459e5afa3f9df7602fcd1d09355b' From 4bb094d41b0bfa7e2777dc02ee6a2fdbff885d50 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Dec 2014 01:03:08 +0300 Subject: [PATCH 0206/2060] libpng: Update to 1.6.16 --- mingw-w64-libpng/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libpng/PKGBUILD b/mingw-w64-libpng/PKGBUILD index feee0db34e..ff866379f7 100644 --- a/mingw-w64-libpng/PKGBUILD +++ b/mingw-w64-libpng/PKGBUILD @@ -2,7 +2,7 @@ _realname=libpng pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.15 +pkgver=1.6.16 pkgrel=1 arch=('any') pkgdesc="A collection of routines used to create PNG format graphics (mingw-w64)" @@ -15,8 +15,8 @@ options=('strip' '!libtool' 'staticlibs') source=("http://downloads.sourceforge.net/sourceforge/libpng/libpng-$pkgver.tar.xz" "http://downloads.sourceforge.net/project/libpng-apng/libpng16/$pkgver/libpng-$pkgver-apng.patch.gz") -md5sums=('a95cb387c53215b034203b41ec57c7e5' - '612524080d5515f4ea81541a9b13bf61') +md5sums=('23b7286b5d4a86de950fd2ffc5cac742' + '52de72a29e5d0428a0e527be74b99c24') prepare() { cd "$srcdir/libpng-$pkgver" From 0170274e536ff98f6339a9973b2f00121fcebff6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Dec 2014 01:32:27 +0300 Subject: [PATCH 0207/2060] ffmpeg: Update to 2.5.2 --- mingw-w64-ffmpeg/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 0b32418d28..076099ecee 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,7 +2,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.5.1 +pkgver=2.5.2 pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') @@ -41,7 +41,7 @@ depends=( ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://ffmpeg.org/releases/$_realname-$pkgver.tar.bz2) -md5sums=('ad3b4c189e9a7d43ae54c52d409a43ef') +md5sums=('308d49d91752ac00ded9483ebaab849d') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 52f127ddf56c768e49d056ddb360bc41f5e70205 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Dec 2014 12:29:29 +0300 Subject: [PATCH 0208/2060] gstreamer: Update to 1.4.5 --- mingw-w64-gst-libav/PKGBUILD | 4 ++-- mingw-w64-gst-plugins-bad/PKGBUILD | 4 ++-- mingw-w64-gst-plugins-base/PKGBUILD | 4 ++-- mingw-w64-gst-plugins-good/PKGBUILD | 4 ++-- mingw-w64-gst-plugins-ugly/PKGBUILD | 4 ++-- mingw-w64-gstreamer/PKGBUILD | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mingw-w64-gst-libav/PKGBUILD b/mingw-w64-gst-libav/PKGBUILD index 63197f4443..e427b6f828 100644 --- a/mingw-w64-gst-libav/PKGBUILD +++ b/mingw-w64-gst-libav/PKGBUILD @@ -2,7 +2,7 @@ _realname=gst-libav pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.4 +pkgver=1.4.5 pkgrel=1 pkgdesc="GStreamer libav (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-gstreamer") options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz) -md5sums=('64a3e2cda2687132cadca4efdc63f3b4') +md5sums=('f4922a46adbcbe7bd01331ff5dc7979d') prepare() { cd ${srcdir}/${_realname}-${pkgver} diff --git a/mingw-w64-gst-plugins-bad/PKGBUILD b/mingw-w64-gst-plugins-bad/PKGBUILD index f04cca7d5d..afe1e8c455 100644 --- a/mingw-w64-gst-plugins-bad/PKGBUILD +++ b/mingw-w64-gst-plugins-bad/PKGBUILD @@ -2,7 +2,7 @@ _realname=gst-plugins-bad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.4 +pkgver=1.4.5 pkgrel=1 pkgdesc="GStreamer Multimedia Framework Bad Plugins (mingw-w64)" arch=('any') @@ -55,7 +55,7 @@ source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz 0004-fix-X-detection.mingw.patch 0004-port-to-openjpeg-2.1.all.patch 0005-fix-cast-errors.patch) -md5sums=('972c6e22dd2e44fcf0b04b9d810a56be' +md5sums=('e0bb39412cf4a48fe0397bcf3a7cd451' 'f95294f2282016457d38882aff845e39' '4545ec337afbd4d211d4b088b01ed77e' '027bdbe72b67e7e6d1652d0baf3dcfe1' diff --git a/mingw-w64-gst-plugins-base/PKGBUILD b/mingw-w64-gst-plugins-base/PKGBUILD index 340b975ea6..6a06c86f99 100644 --- a/mingw-w64-gst-plugins-base/PKGBUILD +++ b/mingw-w64-gst-plugins-base/PKGBUILD @@ -2,7 +2,7 @@ _realname=gst-plugins-base pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.4 +pkgver=1.4.5 pkgrel=1 pkgdesc="GStreamer Multimedia Framework Base Plugins (mingw-w64)" arch=('any') @@ -30,7 +30,7 @@ source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz 0006-disable-sse-detection.mingw.patch 0009-fix-casting-error.patch give-cc-to-gir-scanner.mingw.patch) -md5sums=('0c42eca8f9e4efd56d2ce8e9249ce4a1' +md5sums=('357165af625c0ca353ab47c5d843920e' '006091acfeedd194fa804ea36958ea3c' '571194f25c8c765b5b5e5739df1271ae' 'eb0a27e74755e4ee1c5259c8c4ab40e8' diff --git a/mingw-w64-gst-plugins-good/PKGBUILD b/mingw-w64-gst-plugins-good/PKGBUILD index 776aee5296..0f55148eee 100644 --- a/mingw-w64-gst-plugins-good/PKGBUILD +++ b/mingw-w64-gst-plugins-good/PKGBUILD @@ -2,7 +2,7 @@ _realname=gst-plugins-good pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.4 +pkgver=1.4.5 pkgrel=1 pkgdesc="GStreamer Multimedia Framework Base Plugins (mingw-w64)" arch=('any') @@ -29,7 +29,7 @@ options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz 0002-fix-test-running.mingw.patch 0004-fix-X-detection.mingw.patch) -md5sums=('673cf9276952bd3937dafd817c9ead2b' +md5sums=('eaf1a6daf73749bc423feac301d60038' 'b4ff5991217a2544fa84aae471057299' 'eb0a27e74755e4ee1c5259c8c4ab40e8') diff --git a/mingw-w64-gst-plugins-ugly/PKGBUILD b/mingw-w64-gst-plugins-ugly/PKGBUILD index ccaedb097a..cc0d536908 100644 --- a/mingw-w64-gst-plugins-ugly/PKGBUILD +++ b/mingw-w64-gst-plugins-ugly/PKGBUILD @@ -2,7 +2,7 @@ _realname=gst-plugins-ugly pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.4 +pkgver=1.4.5 pkgrel=1 pkgdesc="GStreamer Multimedia Framework Ugly Plugins (mingw-w64)" arch=('any') @@ -26,7 +26,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-a52dec" ) options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz) -md5sums=('abd832c5cab1a37fb1d9d15fb08e6e59') +md5sums=('6954beed7bb9a93e426dee543ff46393') prepare() { cd ${srcdir}/${_realname}-${pkgver} diff --git a/mingw-w64-gstreamer/PKGBUILD b/mingw-w64-gstreamer/PKGBUILD index 0c0413e5d5..0979fab9fd 100644 --- a/mingw-w64-gstreamer/PKGBUILD +++ b/mingw-w64-gstreamer/PKGBUILD @@ -2,7 +2,7 @@ _realname=gstreamer pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.4 +pkgver=1.4.5 pkgrel=1 pkgdesc="GStreamer Multimedia Framework (mingw-w64)" arch=('any') @@ -26,7 +26,7 @@ options=(!libtool strip staticlibs) source=("${url}/src/gstreamer/gstreamer-${pkgver}.tar.xz" 'give-cc-to-gir-scanner.mingw.patch' '0004-fix-X-detection.mingw.patch') -md5sums=('98f4a6d45a28dd195144baef0244ba38' +md5sums=('88a9289c64a4950ebb4f544980234289' '59215d83b4c39aac03848cc9b4eb3f25' 'eb0a27e74755e4ee1c5259c8c4ab40e8') From 38f7a682bf5460adff8ce1c8ab099bacefbd3917 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Dec 2014 14:33:58 +0300 Subject: [PATCH 0209/2060] libssh: Update to 0.6.4. Fix pkg-config files, fix cmake files. --- mingw-w64-libssh/PKGBUILD | 53 ++++++++-------- .../fix-threads-libraryname-in-config.patch | 11 ++++ mingw-w64-libssh/libssh-i686.install | 12 ++++ mingw-w64-libssh/libssh-x86_64.install | 12 ++++ mingw-w64-libssh/mingw-DATADIR-conflict.patch | 24 ++++++++ mingw-w64-libssh/mingw-as-unix.patch | 61 +++++++++++++++++++ .../mingw-w64-paths-as-unix.patch | 8 --- 7 files changed, 148 insertions(+), 33 deletions(-) create mode 100644 mingw-w64-libssh/fix-threads-libraryname-in-config.patch create mode 100644 mingw-w64-libssh/libssh-i686.install create mode 100644 mingw-w64-libssh/libssh-x86_64.install create mode 100644 mingw-w64-libssh/mingw-DATADIR-conflict.patch create mode 100644 mingw-w64-libssh/mingw-as-unix.patch delete mode 100644 mingw-w64-libssh/mingw-w64-paths-as-unix.patch diff --git a/mingw-w64-libssh/PKGBUILD b/mingw-w64-libssh/PKGBUILD index 18658b1ebc..e45a38cdf2 100644 --- a/mingw-w64-libssh/PKGBUILD +++ b/mingw-w64-libssh/PKGBUILD @@ -1,48 +1,49 @@ # Maintainer: Alexey Pavlov _realname=libssh - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.6.3 +pkgver=0.6.4 pkgrel=1 pkgdesc="Library for accessing ssh client services through C libraries (mingw-w64)" arch=('any') url="http://www.libssh.org/" license=("LGPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-cmake") -depends=("${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-openssl") +install=libssh-${CARCH}.install +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-cmake") +depends=("${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-zlib") groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') -source=("https://red.libssh.org/attachments/download/87/${_realname}-0.6.3.tar.xz" - mingw-w64-pthreads.patch - mingw-w64-paths-as-unix.patch) -md5sums=('66cf16e77f60913b4d54f18c92cdbf71' +source=(https://red.libssh.org/attachments/download/107/${_realname}-${pkgver}.tar.gz + mingw-w64-pthreads.patch + mingw-as-unix.patch + mingw-DATADIR-conflict.patch + fix-threads-libraryname-in-config.patch) +md5sums=('8a7daa171c69913f475dacffcb639fda' 'ca268e1366633f988e21cbcf5a4d8145' - '53fd88870e2ad09d2e69b34c839b1c8c') + 'd819f18cb4ae07ad2a6589b02765b6c2' + '7be13e00d27ce77f862012ee0654019b' + '34899219c2804f81a2218ba13847122b') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/mingw-w64-pthreads.patch - #patch -p1 -i ${srcdir}/mingw-w64-paths-as-unix.patch + patch -p1 -i ${srcdir}/mingw-as-unix.patch + patch -p1 -i ${srcdir}/mingw-DATADIR-conflict.patch + patch -p1 -i ${srcdir}/fix-threads-libraryname-in-config.patch } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ + -DWITH_STATIC_LIB=ON \ ../${_realname}-${pkgver} make all } @@ -50,10 +51,12 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make install - - sed -e "s|-Iinclude|-I${MINGW_PREFIX}/include|g" \ - -e "s|-Llib|-L${MINGW_PREFIX}/lib|g" \ + + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null + export PREFIX_WIN=`pwd -W` + popd > /dev/null + sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libssh.pc \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libssh_threads.pc - rm -rf ${pkgdir}/${MINGW_PREFIX}/CMake + -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libssh_threads.pc \ + -i ${pkgdir}${MINGW_PREFIX}/lib/cmake/libssh/libssh-config.cmake } diff --git a/mingw-w64-libssh/fix-threads-libraryname-in-config.patch b/mingw-w64-libssh/fix-threads-libraryname-in-config.patch new file mode 100644 index 0000000000..1000a852f1 --- /dev/null +++ b/mingw-w64-libssh/fix-threads-libraryname-in-config.patch @@ -0,0 +1,11 @@ +--- libssh-0.6.4/CMakeLists.txt.orig 2014-12-25 14:25:19.999000000 +0300 ++++ libssh-0.6.4/CMakeLists.txt 2014-12-25 14:25:41.278000000 +0300 +@@ -98,7 +98,7 @@ + + # cmake config files + set(LIBSSH_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}ssh${CMAKE_SHARED_LIBRARY_SUFFIX}) +-set(LIBSSH_THREADS_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}ssh${CMAKE_SHARED_LIBRARY_SUFFIX}) ++set(LIBSSH_THREADS_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}ssh_threads${CMAKE_SHARED_LIBRARY_SUFFIX}) + + configure_file(${PROJECT_NAME}-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake @ONLY) + configure_file(${PROJECT_NAME}-config-version.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake @ONLY) diff --git a/mingw-w64-libssh/libssh-i686.install b/mingw-w64-libssh/libssh-i686.install new file mode 100644 index 0000000000..99e9541da2 --- /dev/null +++ b/mingw-w64-libssh/libssh-i686.install @@ -0,0 +1,12 @@ +post_install() { + cd mingw32 + local _prefix=$(pwd -W) + cd - + for f in mingw32/lib/cmake/libssh/*.cmake; do + sed -e "s|/mingw32|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-libssh/libssh-x86_64.install b/mingw-w64-libssh/libssh-x86_64.install new file mode 100644 index 0000000000..ce178ef75f --- /dev/null +++ b/mingw-w64-libssh/libssh-x86_64.install @@ -0,0 +1,12 @@ +post_install() { + cd mingw64 + local _prefix=$(pwd -W) + cd - + for f in mingw64/lib/cmake/libssh/*.cmake; do + sed -e "s|/mingw64|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-libssh/mingw-DATADIR-conflict.patch b/mingw-w64-libssh/mingw-DATADIR-conflict.patch new file mode 100644 index 0000000000..ee3ce8ef85 --- /dev/null +++ b/mingw-w64-libssh/mingw-DATADIR-conflict.patch @@ -0,0 +1,24 @@ +diff -Naur libssh-0.6.4-orig/config.h.cmake libssh-0.6.4/config.h.cmake +--- libssh-0.6.4-orig/config.h.cmake 2014-12-19 11:11:17.000000000 +0300 ++++ libssh-0.6.4/config.h.cmake 2014-12-25 14:10:49.834000000 +0300 +@@ -5,7 +5,7 @@ + #cmakedefine VERSION "${APPLICATION_VERSION}" + + #cmakedefine LOCALEDIR "${LOCALE_INSTALL_DIR}" +-#cmakedefine DATADIR "${DATADIR}" ++#cmakedefine DATA_DIR "${DATA_DIR}" + #cmakedefine LIBDIR "${LIBDIR}" + #cmakedefine PLUGINDIR "${PLUGINDIR}" + #cmakedefine SYSCONFDIR "${SYSCONFDIR}" +diff -Naur libssh-0.6.4-orig/ConfigureChecks.cmake libssh-0.6.4/ConfigureChecks.cmake +--- libssh-0.6.4-orig/ConfigureChecks.cmake 2014-12-19 11:11:17.000000000 +0300 ++++ libssh-0.6.4/ConfigureChecks.cmake 2014-12-25 14:11:05.297000000 +0300 +@@ -8,7 +8,7 @@ + + set(PACKAGE ${APPLICATION_NAME}) + set(VERSION ${APPLICATION_VERSION}) +-set(DATADIR ${DATA_INSTALL_DIR}) ++set(DATA_DIR ${DATA_INSTALL_DIR}) + set(LIBDIR ${LIB_INSTALL_DIR}) + set(PLUGINDIR "${PLUGIN_INSTALL_DIR}-${LIBRARY_SOVERSION}") + set(SYSCONFDIR ${SYSCONF_INSTALL_DIR}) diff --git a/mingw-w64-libssh/mingw-as-unix.patch b/mingw-w64-libssh/mingw-as-unix.patch new file mode 100644 index 0000000000..7996412280 --- /dev/null +++ b/mingw-w64-libssh/mingw-as-unix.patch @@ -0,0 +1,61 @@ +diff -Naur libssh-0.6.4-orig/cmake/Modules/DefineInstallationPaths.cmake libssh-0.6.4/cmake/Modules/DefineInstallationPaths.cmake +--- libssh-0.6.4-orig/cmake/Modules/DefineInstallationPaths.cmake 2014-09-15 22:54:34.000000000 +0400 ++++ libssh-0.6.4/cmake/Modules/DefineInstallationPaths.cmake 2014-12-25 12:45:52.735000000 +0300 +@@ -1,4 +1,4 @@ +-if (UNIX OR OS2) ++if (UNIX OR OS2 OR MINGW) + IF (NOT APPLICATION_NAME) + MESSAGE(STATUS "${PROJECT_NAME} is used as APPLICATION_NAME") + SET(APPLICATION_NAME ${PROJECT_NAME}) +diff -Naur libssh-0.6.4-orig/CMakeLists.txt libssh-0.6.4/CMakeLists.txt +--- libssh-0.6.4-orig/CMakeLists.txt 2014-12-19 11:11:27.000000000 +0300 ++++ libssh-0.6.4/CMakeLists.txt 2014-12-25 12:41:43.298000000 +0300 +@@ -84,8 +84,8 @@ + add_subdirectory(src) + + # pkg-config file +-configure_file(libssh.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc) +-configure_file(libssh_threads.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libssh_threads.pc) ++configure_file(libssh.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc @ONLY) ++configure_file(libssh_threads.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libssh_threads.pc @ONLY) + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc +diff -Naur libssh-0.6.4-orig/libssh.pc.cmake libssh-0.6.4/libssh.pc.cmake +--- libssh-0.6.4-orig/libssh.pc.cmake 2013-02-07 22:23:14.000000000 +0400 ++++ libssh-0.6.4/libssh.pc.cmake 2014-12-25 12:44:04.023000000 +0300 +@@ -1,6 +1,11 @@ +-Name: ${APPLICATION_NAME} ++prefix=@CMAKE_INSTALL_PREFIX@ ++exec_prefix=${prefix}/bin ++libdir=@LIB_INSTALL_DIR@ ++includedir=@INCLUDE_INSTALL_DIR@ ++ ++Name: @APPLICATION_NAME@ + Description: The SSH Library +-Version: ${APPLICATION_VERSION} +-Libs: -L${LIB_INSTALL_DIR} -lssh +-Cflags: -I${INCLUDE_INSTALL_DIR} ++Version: @APPLICATION_VERSION@ ++Libs: -L${libdir} -lssh ++Cflags: -I${includedir} + +diff -Naur libssh-0.6.4-orig/libssh_threads.pc.cmake libssh-0.6.4/libssh_threads.pc.cmake +--- libssh-0.6.4-orig/libssh_threads.pc.cmake 2014-09-15 22:54:34.000000000 +0400 ++++ libssh-0.6.4/libssh_threads.pc.cmake 2014-12-25 12:43:12.932000000 +0300 +@@ -1,6 +1,11 @@ +-Name: ${APPLICATION_NAME}_threads ++prefix=@CMAKE_INSTALL_PREFIX@ ++exec_prefix=${prefix}/bin ++libdir=@LIB_INSTALL_DIR@ ++includedir=@INCLUDE_INSTALL_DIR@ ++ ++Name: @APPLICATION_NAME@_threads + Description: The SSH Library Thread Extension +-Version: ${APPLICATION_VERSION} +-Libs: -L${LIB_INSTALL_DIR} -lssh_threads +-Cflags: -I${INCLUDE_INSTALL_DIR} ++Version: @APPLICATION_VERSION@ ++Libs: -L${libdir} -lssh_threads ++Cflags: -I${includedir} + diff --git a/mingw-w64-libssh/mingw-w64-paths-as-unix.patch b/mingw-w64-libssh/mingw-w64-paths-as-unix.patch deleted file mode 100644 index 299dc5e958..0000000000 --- a/mingw-w64-libssh/mingw-w64-paths-as-unix.patch +++ /dev/null @@ -1,8 +0,0 @@ ---- libssh-0.6.3/cmake/Modules/DefineInstallationPaths.cmake.orig 2014-03-16 23:52:34.130000000 +0400 -+++ libssh-0.6.3/cmake/Modules/DefineInstallationPaths.cmake 2014-03-16 23:52:40.838000000 +0400 -@@ -1,4 +1,4 @@ --if (UNIX OR OS2) -+if (UNIX OR OS2 OR MINGW) - IF (NOT APPLICATION_NAME) - MESSAGE(STATUS "${PROJECT_NAME} is used as APPLICATION_NAME") - SET(APPLICATION_NAME ${PROJECT_NAME}) From ff013926a5c7a893b79f070bc267561033d6257c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Dec 2014 14:39:49 +0300 Subject: [PATCH 0210/2060] setuptools: Update to 8.2.1 --- mingw-w64-python-setuptools/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index eb01404332..628f3d97b0 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -5,7 +5,7 @@ _realname=setuptools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.4 -pkgver=8.0.4 +pkgver=8.2.1 #pkgver=5.4.1 pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" @@ -18,7 +18,7 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('86a6b1dab3afe3aad4a2f1f8dcfc0f9970b7d781' +sha1sums=('ddb4454303142be3446437e4fafb13bbd4570133' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' From 1e537e9b07dd52b831d3dfeec727b38348839e82 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Dec 2014 14:48:01 +0300 Subject: [PATCH 0211/2060] pip: Update to 6.0.3 --- mingw-w64-python-pip/PKGBUILD | 6 +++--- mingw-w64-python-pip/pip2-x86_64.install | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-python-pip/PKGBUILD b/mingw-w64-python-pip/PKGBUILD index d0826f8528..e18ddd5855 100644 --- a/mingw-w64-python-pip/PKGBUILD +++ b/mingw-w64-python-pip/PKGBUILD @@ -2,8 +2,8 @@ _realname=pip pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.5.6 -pkgrel=2 +pkgver=6.0.3 +pkgrel=1 pkgdesc="An easy_install replacement for installing pypi python packages (mingw-w64)" arch=('any') license=('MIT') @@ -13,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(http://pypi.python.org/packages/source/p/pip/${_realname}-${pkgver}.tar.gz) -md5sums=('01026f87978932060cc86c1dc527903e') +md5sums=('1ca6788e57a176abbdf6d99d69f54ae0') prepare() { cd "${srcdir}/${_realname}-${pkgver}" diff --git a/mingw-w64-python-pip/pip2-x86_64.install b/mingw-w64-python-pip/pip2-x86_64.install index 75b287e11a..025bb0da8e 100644 --- a/mingw-w64-python-pip/pip2-x86_64.install +++ b/mingw-w64-python-pip/pip2-x86_64.install @@ -1,7 +1,7 @@ post_install() { cd mingw64 local _prefix=$(pwd -W) - popd > /dev/null + cd - local _it for _it in pip pip2 pip2.7; do sed -e "s|/mingw64|${_prefix}|g" \ From f291697c66e75f7ae8fd1974c847c1bbfb93a8f1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Dec 2014 15:54:00 +0300 Subject: [PATCH 0212/2060] openscad-git: Fix building. --- mingw-w64-openscad-git/01-glew-library.patch | 11 ------ mingw-w64-openscad-git/PKGBUILD | 34 +++++++++++-------- .../mingw-detect-libs.patch | 29 ++++++++++++++++ 3 files changed, 49 insertions(+), 25 deletions(-) delete mode 100644 mingw-w64-openscad-git/01-glew-library.patch create mode 100644 mingw-w64-openscad-git/mingw-detect-libs.patch diff --git a/mingw-w64-openscad-git/01-glew-library.patch b/mingw-w64-openscad-git/01-glew-library.patch deleted file mode 100644 index 8586f355e8..0000000000 --- a/mingw-w64-openscad-git/01-glew-library.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur openscad-2014.03-orig/glew.pri openscad-2014.03/glew.pri ---- openscad-2014.03-orig/glew.pri 2014-02-06 08:21:04.000000000 +0300 -+++ openscad-2014.03/glew.pri 2014-12-16 08:01:54.342600000 +0300 -@@ -9,6 +9,6 @@ - } - - unix:LIBS += -lGLEW -- win32:LIBS += -lglew32s -+ win32:LIBS += -lglew32 - CONFIG(mingw-cross-env):DEFINES += GLEW_STATIC - } diff --git a/mingw-w64-openscad-git/PKGBUILD b/mingw-w64-openscad-git/PKGBUILD index d20df2fc79..4a6a27267e 100644 --- a/mingw-w64-openscad-git/PKGBUILD +++ b/mingw-w64-openscad-git/PKGBUILD @@ -17,37 +17,43 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt5" "${MINGW_PACKAGE_PREFIX}-qscintilla" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-eigen3" - "${MINGW_PACKAGE_PREFIX}-imagemagick") + "${MINGW_PACKAGE_PREFIX}-eigen3") options=(!strip staticlibs !buildflags) source=("${_realname}"::"git+https://github.com/openscad/openscad.git" - 01-glew-library.patch) + #01-glew-library.patch + mingw-detect-libs.patch) md5sums=('SKIP' - '0096cdf8865d85115713a28c12b81bd8') + 'c4f4af8df6cfbc0b444cbf232f26a958') prepare() { cd "${srcdir}/${_realname}" rm -f libraries/MCAD/*.py - patch -p1 -i ${srcdir}/01-glew-library.patch + #patch -p1 -i ${srcdir}/01-glew-library.patch + patch -p1 -i ${srcdir}/mingw-detect-libs.patch } build() { cd ${srcdir}/${_realname} - BOOSTDIR=${MINGW_PREFIX} \ - CGALDIR=${MINGW_PREFIX} \ - EIGENDIR=${MINGW_PREFIX} \ - GLEWDIR=${MINGW_PREFIX} \ - OPENCSGDIR=${MINGW_PREFIX} \ - OPENSCAD_LIBRARIES=${MINGW_PREFIX} \ - ${MINGW_PREFIX}/bin/qmake PREFIX="${MINGW_PREFIX}" VERSION="$pkgver" + #BOOSTDIR=${MINGW_PREFIX} \ + #CGALDIR=${MINGW_PREFIX} \ + #EIGENDIR=${MINGW_PREFIX} \ + #GLEWDIR=${MINGW_PREFIX} \ + #OPENCSGDIR=${MINGW_PREFIX} \ + #OPENSCAD_LIBRARIES=${MINGW_PREFIX} \ + + ${MINGW_PREFIX}/bin/qmake \ + CONFIG+=release \ + QMAKE_CXXFLAGS+="-O1 -Wa,-mbig-obj" \ + QMAKE_CFLAGS+="-O1 -Wa,-mbig-obj" \ + PREFIX="${pkgdir}${MINGW_PREFIX}" \ + VERSION="$pkgver" make -j1 - convert "icons/${_realname}.png" -resize 128x128\> "icons/${_realname}-128.png" } package() { cd ${srcdir}/${_realname} - make INSTALL_ROOT="$pkgdir" install + make install install -Dm644 "icons/${_realname}.xml" "${pkgdir}${MINGW_PREFIX}/share/mime/packages/${_realname}.xml" } diff --git a/mingw-w64-openscad-git/mingw-detect-libs.patch b/mingw-w64-openscad-git/mingw-detect-libs.patch new file mode 100644 index 0000000000..e31653a88f --- /dev/null +++ b/mingw-w64-openscad-git/mingw-detect-libs.patch @@ -0,0 +1,29 @@ +--- openscad-2014.03/boost.pri.orig 2014-12-21 12:00:21.682400000 +0300 ++++ openscad-2014.03/boost.pri 2014-12-21 12:00:52.383200000 +0300 +@@ -18,6 +18,13 @@ + BOOST_LINK_FLAGS = -lboost_thread_win32-mt -lboost_program_options-mt -lboost_filesystem-mt -lboost_system-mt -lboost_regex-mt -lboost_chrono-mt + } + ++ win32-g++ { ++ DEFINES += BOOST_STATIC ++ DEFINES += BOOST_THREAD_USE_LIB ++ DEFINES += Boost_USE_STATIC_LIBS ++ BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt -lboost_filesystem-mt -lboost_system-mt -lboost_regex-mt -lboost_chrono-mt ++ } ++ + isEmpty(BOOST_LINK_FLAGS):win* { + BOOST_LINK_FLAGS = -llibboost_thread-vc90-mt-s-1_46_1 -llibboost_program_options-vc90-mt-s-1_46_1 -llibboost_filesystem-vc90-mt-s-1_46_1 -llibboost_system-vc90-mt-s-1_46_1 -llibboost_regex-vc90-mt-s-1_46_1 + } +--- openscad-2014.03/cgal.pri.orig 2014-12-21 01:25:50.043200000 +0300 ++++ openscad-2014.03/cgal.pri 2014-12-21 10:18:53.992000000 +0300 +@@ -11,8 +11,8 @@ + message("CGAL location: $$CGAL_DIR") + } + +- CONFIG(mingw-cross-env) { +- LIBS += -lgmp -lmpfr -lCGAL ++ win32-g++|CONFIG(mingw-cross-env) { ++ LIBS += -lmpfr -lgmp -lCGAL + QMAKE_CXXFLAGS += -frounding-math + } else { + win* { From a8a6811340ee1baf01e1570557b04924b8596888 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Dec 2014 22:49:18 +0300 Subject: [PATCH 0213/2060] openscad-git: Fix version scheme. Don't need patch anymore --- mingw-w64-openscad-git/PKGBUILD | 12 +++++--- .../mingw-detect-libs.patch | 29 ------------------- 2 files changed, 8 insertions(+), 33 deletions(-) delete mode 100644 mingw-w64-openscad-git/mingw-detect-libs.patch diff --git a/mingw-w64-openscad-git/PKGBUILD b/mingw-w64-openscad-git/PKGBUILD index 4a6a27267e..5a4a813478 100644 --- a/mingw-w64-openscad-git/PKGBUILD +++ b/mingw-w64-openscad-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=openscad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2014.03 +pkgver=r4930.0bf2d4e pkgrel=1 pkgdesc="The programmers solid 3D CAD modeller (mingw-w64)" arch=('any') @@ -25,12 +25,17 @@ source=("${_realname}"::"git+https://github.com/openscad/openscad.git" md5sums=('SKIP' 'c4f4af8df6cfbc0b444cbf232f26a958') +pkgver() { + cd "$srcdir/$_realname" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + prepare() { cd "${srcdir}/${_realname}" rm -f libraries/MCAD/*.py #patch -p1 -i ${srcdir}/01-glew-library.patch - patch -p1 -i ${srcdir}/mingw-detect-libs.patch + #patch -p1 -i ${srcdir}/mingw-detect-libs.patch } build() { @@ -46,8 +51,7 @@ build() { CONFIG+=release \ QMAKE_CXXFLAGS+="-O1 -Wa,-mbig-obj" \ QMAKE_CFLAGS+="-O1 -Wa,-mbig-obj" \ - PREFIX="${pkgdir}${MINGW_PREFIX}" \ - VERSION="$pkgver" + PREFIX="${pkgdir}${MINGW_PREFIX}" make -j1 } diff --git a/mingw-w64-openscad-git/mingw-detect-libs.patch b/mingw-w64-openscad-git/mingw-detect-libs.patch deleted file mode 100644 index e31653a88f..0000000000 --- a/mingw-w64-openscad-git/mingw-detect-libs.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- openscad-2014.03/boost.pri.orig 2014-12-21 12:00:21.682400000 +0300 -+++ openscad-2014.03/boost.pri 2014-12-21 12:00:52.383200000 +0300 -@@ -18,6 +18,13 @@ - BOOST_LINK_FLAGS = -lboost_thread_win32-mt -lboost_program_options-mt -lboost_filesystem-mt -lboost_system-mt -lboost_regex-mt -lboost_chrono-mt - } - -+ win32-g++ { -+ DEFINES += BOOST_STATIC -+ DEFINES += BOOST_THREAD_USE_LIB -+ DEFINES += Boost_USE_STATIC_LIBS -+ BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt -lboost_filesystem-mt -lboost_system-mt -lboost_regex-mt -lboost_chrono-mt -+ } -+ - isEmpty(BOOST_LINK_FLAGS):win* { - BOOST_LINK_FLAGS = -llibboost_thread-vc90-mt-s-1_46_1 -llibboost_program_options-vc90-mt-s-1_46_1 -llibboost_filesystem-vc90-mt-s-1_46_1 -llibboost_system-vc90-mt-s-1_46_1 -llibboost_regex-vc90-mt-s-1_46_1 - } ---- openscad-2014.03/cgal.pri.orig 2014-12-21 01:25:50.043200000 +0300 -+++ openscad-2014.03/cgal.pri 2014-12-21 10:18:53.992000000 +0300 -@@ -11,8 +11,8 @@ - message("CGAL location: $$CGAL_DIR") - } - -- CONFIG(mingw-cross-env) { -- LIBS += -lgmp -lmpfr -lCGAL -+ win32-g++|CONFIG(mingw-cross-env) { -+ LIBS += -lmpfr -lgmp -lCGAL - QMAKE_CXXFLAGS += -frounding-math - } else { - win* { From 013855777cdeabf87d12d67752b143970592b100 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 26 Dec 2014 00:11:58 +0300 Subject: [PATCH 0214/2060] python2: Fix importing SSL module. --- ...w-fix-ssl-dont-use-enum_certificates.patch | 21 +++++++++++++++++++ mingw-w64-python2/PKGBUILD | 5 ++++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-python2/0855-mingw-fix-ssl-dont-use-enum_certificates.patch diff --git a/mingw-w64-python2/0855-mingw-fix-ssl-dont-use-enum_certificates.patch b/mingw-w64-python2/0855-mingw-fix-ssl-dont-use-enum_certificates.patch new file mode 100644 index 0000000000..2365c78d93 --- /dev/null +++ b/mingw-w64-python2/0855-mingw-fix-ssl-dont-use-enum_certificates.patch @@ -0,0 +1,21 @@ +diff -urN a/Lib/ssl.py b/Lib/ssl.py +--- a/Lib/ssl.py 2014-10-11 14:23:27.721614900 +0100 ++++ b/Lib/ssl.py 2014-10-11 14:23:30.169754900 +0100 +@@ -144,7 +144,7 @@ + _SSLv2_IF_EXISTS = None + + from socket import socket, _fileobject, _delegate_methods, error as socket_error +-if sys.platform == "win32": ++if sys.platform == "win32" and sys.version.find("GCC") == -1: + from _ssl import enum_certificates, enum_crls + + from socket import socket, AF_INET, SOCK_STREAM, create_connection +@@ -387,7 +387,7 @@ + def load_default_certs(self, purpose=Purpose.SERVER_AUTH): + if not isinstance(purpose, _ASN1Object): + raise TypeError(purpose) +- if sys.platform == "win32": ++ if sys.platform == "win32" and sys.version.find("GCC") == -1: + for storename in self._windows_cert_stores: + self._load_windows_store_certs(storename, purpose) + else: diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index 484c95dca5..7cf411abc0 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -5,7 +5,7 @@ _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7.9 -pkgrel=1 +pkgrel=2 _pybasever=2.7 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') @@ -94,6 +94,7 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0830-add-build-sysroot-config-option.patch 0840-add-builddir-to-library_dirs.patch 0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch + 0855-mingw-fix-ssl-dont-use-enum_certificates.patch 0860-mingw-build-optimized-ext.patch 0870-mingw-add-LIBPL-to-library-dirs.patch 0910-fix-using-dllhandle-and-winver-mingw.patch @@ -187,6 +188,7 @@ prepare() { patch -p1 -i "${srcdir}"/0830-add-build-sysroot-config-option.patch patch -p1 -i "${srcdir}"/0840-add-builddir-to-library_dirs.patch patch -p1 -i "${srcdir}"/0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch + patch -p1 -i "${srcdir}"/0855-mingw-fix-ssl-dont-use-enum_certificates.patch patch -p1 -i "${srcdir}"/0860-mingw-build-optimized-ext.patch patch -p1 -i "${srcdir}"/0870-mingw-add-LIBPL-to-library-dirs.patch patch -p1 -i "${srcdir}"/0910-fix-using-dllhandle-and-winver-mingw.patch @@ -407,6 +409,7 @@ sha1sums=('3172f6e957713c2d9fca462cc16068222fd1b9d3' '15e055c4cce32a0c1940953062fd2db7c22364c4' 'f0f5efb98c610d0caf3ccbf0850460af49f92c96' '78b039f8ab595750b2f7aee3e2fc6d7a466a5c9c' + 'aa295dd8c4f60b70c61753fc4be9c8ff50101577' 'de01d87f5070992f305d5375da1deb69f80ea8bb' '6cef2b44a41279c0344cbb9f3486cfc0831026ae' '0de22d55a78fad4755e2d4950db9a49a48a50ad2' From 0651ee4907db1f1b7b4b43dd1a7cbfa9d9c90078 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 26 Dec 2014 00:12:43 +0300 Subject: [PATCH 0215/2060] python-httplib2: New package. --- mingw-w64-python-httplib2/PKGBUILD | 84 ++++++++++++++++++++ mingw-w64-python-httplib2/cert.patch | 30 +++++++ mingw-w64-python-httplib2/ssl_hostname.patch | 21 +++++ 3 files changed, 135 insertions(+) create mode 100644 mingw-w64-python-httplib2/PKGBUILD create mode 100644 mingw-w64-python-httplib2/cert.patch create mode 100644 mingw-w64-python-httplib2/ssl_hostname.patch diff --git a/mingw-w64-python-httplib2/PKGBUILD b/mingw-w64-python-httplib2/PKGBUILD new file mode 100644 index 0000000000..d9ca7ea674 --- /dev/null +++ b/mingw-w64-python-httplib2/PKGBUILD @@ -0,0 +1,84 @@ +# Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly + +_realname=httplib2 +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=0.9 +pkgrel=1 +pkgdesc="Comprehensive HTTP client library, supporting many features (mingw-w64)" +arch=('any') +license=('MIT') +url="https://github.com/jcgregorio/httplib2" +depends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-ca-certificates") +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") +source=(#"git://github.com/jcgregorio/httplib2.git#commit=7d1b88a3cf" + https://github.com/jcgregorio/httplib2/archive/v${pkgver}.tar.gz + ssl_hostname.patch + cert.patch) +md5sums=('5fd16fb863d33dca000b2590f75e5ed7' + '6de5596aedd196a4db96f83f529e3509' + '9b79e05e241baa40224b7c5f17b8d3ff') + +prepare() { + pushd "${_realname}-${pkgver}" + + # Patch, ref FS#36839 + patch -p1 -i "$srcdir/ssl_hostname.patch" + + # Patch, ref FS#40179 + patch -p1 -i "$srcdir/cert.patch" + + popd + + # Prepare one build directory for each package + cp -a "${_realname}-${pkgver}" build-python2 + cp -a "${_realname}-${pkgver}" build-python3 +} + +build() { + echo "Empty" +} + +package_python2-httplib2() { + depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-ca-certificates") + + cd "${srcdir}/build-python2" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 + + #install -Dm644 LICENSE \ + # "${pkgdir}${MINGW_PREFIX}"/share/licenses/python2-${_realname}/LICENSE +} + +package_python3-httplib2() { + pkgdesc="Python3 binding for the libxml2 and libxslt libraries" + depends=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-ca-certificates") + + cd "${srcdir}/build-python3" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 + + #install -Dm644 LICENSE \ + # "${pkgdir}${MINGW_PREFIX}"/share/licenses/python3-${_realname}/LICENSE +} + +package_mingw-w64-i686-python2-httplib2() { + package_python2-httplib2 +} + +package_mingw-w64-i686-python3-httplib2() { + package_python3-httplib2 +} + +package_mingw-w64-x86_64-python2-httplib2() { + package_python2-httplib2 +} + +package_mingw-w64-x86_64-python3-httplib2() { + package_python3-httplib2 +} diff --git a/mingw-w64-python-httplib2/cert.patch b/mingw-w64-python-httplib2/cert.patch new file mode 100644 index 0000000000..92c1c8c5f6 --- /dev/null +++ b/mingw-w64-python-httplib2/cert.patch @@ -0,0 +1,30 @@ +diff -ur httplib2-0.8.orig/python2/httplib2/__init__.py httplib2-0.8/python2/httplib2/__init__.py +--- httplib2-0.8.orig/python2/httplib2/__init__.py 2014-05-01 23:25:52.459852279 +0200 ++++ httplib2-0.8/python2/httplib2/__init__.py 2014-05-01 23:28:08.822391994 +0200 +@@ -190,9 +190,8 @@ + import ca_certs_locater + CA_CERTS = ca_certs_locater.get() + except ImportError: +- # Default CA certificates file bundled with httplib2. +- CA_CERTS = os.path.join( +- os.path.dirname(os.path.abspath(__file__ )), "cacerts.txt") ++ # Use system CA certificates ++ CA_CERTS = os.path.join(sys.exec_prefix, "ssl", "certs" "ca-bundle.crt") + + # Which headers are hop-by-hop headers by default + HOP_BY_HOP = ['connection', 'keep-alive', 'proxy-authenticate', 'proxy-authorization', 'te', 'trailers', 'transfer-encoding', 'upgrade'] +diff -ur httplib2-0.8.orig/python3/httplib2/__init__.py httplib2-0.8/python3/httplib2/__init__.py +--- httplib2-0.8.orig/python3/httplib2/__init__.py 2013-03-06 21:40:54.000000000 +0100 ++++ httplib2-0.8/python3/httplib2/__init__.py 2014-05-01 23:28:36.822913468 +0200 +@@ -123,9 +123,8 @@ + # Which headers are hop-by-hop headers by default + HOP_BY_HOP = ['connection', 'keep-alive', 'proxy-authenticate', 'proxy-authorization', 'te', 'trailers', 'transfer-encoding', 'upgrade'] + +-# Default CA certificates file bundled with httplib2. +-CA_CERTS = os.path.join( +- os.path.dirname(os.path.abspath(__file__ )), "cacerts.txt") ++# Use system CA certificates ++CA_CERTS = os.path.join(sys.exec_prefix, "ssl", "certs" "ca-bundle.crt") + + def _get_end2end_headers(response): + hopbyhop = list(HOP_BY_HOP) diff --git a/mingw-w64-python-httplib2/ssl_hostname.patch b/mingw-w64-python-httplib2/ssl_hostname.patch new file mode 100644 index 0000000000..964a1ec774 --- /dev/null +++ b/mingw-w64-python-httplib2/ssl_hostname.patch @@ -0,0 +1,21 @@ +diff -r 93291649202b python2/httplib2/__init__.py +--- a/python2/httplib2/__init__.py Tue Mar 26 14:17:48 2013 -0400 ++++ b/python2/httplib2/__init__.py Tue Apr 23 10:32:15 2013 +0300 +@@ -1030,7 +1030,7 @@ + raise CertificateHostnameMismatch( + 'Server presented certificate that does not match ' + 'host %s: %s' % (hostname, cert), hostname, cert) +- except ssl_SSLError, e: ++ except (ssl_SSLError, CertificateHostnameMismatch), e: + if sock: + sock.close() + if self.sock: +@@ -1040,7 +1040,7 @@ + # to get at more detailed error information, in particular + # whether the error is due to certificate validation or + # something else (such as SSL protocol mismatch). +- if e.errno == ssl.SSL_ERROR_SSL: ++ if hasattr(e, 'errno') and e.errno == ssl.SSL_ERROR_SSL: + raise SSLHandshakeError(e) + else: + raise From 718e4b6feaaa32ed9ae2998c4e50719c68f9971b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 26 Dec 2014 01:04:00 +0300 Subject: [PATCH 0216/2060] binutils-git: Don't replace binutils as it newer. --- mingw-w64-binutils-git/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-binutils-git/PKGBUILD b/mingw-w64-binutils-git/PKGBUILD index 1e51141bc9..1a02814f8e 100644 --- a/mingw-w64-binutils-git/PKGBUILD +++ b/mingw-w64-binutils-git/PKGBUILD @@ -4,11 +4,11 @@ _realname=binutils _base_ver=2.24 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -replaces="${MINGW_PACKAGE_PREFIX}-${_realname}=${_base_ver}" +# replaces="${MINGW_PACKAGE_PREFIX}-${_realname}=${_base_ver}" pkgver=2.24.78632.4ff5ed1 pkgrel=1 +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('any') url="http://www.gnu.org/software/binutils/" From 1a8183e56e9b24b5a832fb7d716b5bb12b9ea5a2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 26 Dec 2014 09:59:47 +0300 Subject: [PATCH 0217/2060] binutils-git: Update to 2-25-branch --- .../0016-fix-w32-lto-bug-13557.all.patch | 998 ------------------ ...nts-that-dont-need-it-in-pex-win32.c.patch | 86 -- .../0110-binutils-mingw-gnu-print.patch | 61 +- ...20-This-fixes-a-compile-time-warning.patch | 61 -- ...k-external-reference-has-wrong-value.patch | 15 - .../0140-make-relocbase-unsigned.patch | 24 - .../0150-add-bigobj-format.patch | 942 ----------------- mingw-w64-binutils-git/PKGBUILD | 39 +- 8 files changed, 69 insertions(+), 2157 deletions(-) delete mode 100644 mingw-w64-binutils-git/0016-fix-w32-lto-bug-13557.all.patch delete mode 100644 mingw-w64-binutils-git/0100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch delete mode 100644 mingw-w64-binutils-git/0120-This-fixes-a-compile-time-warning.patch delete mode 100644 mingw-w64-binutils-git/0130-Bug-16858-weak-external-reference-has-wrong-value.patch delete mode 100644 mingw-w64-binutils-git/0140-make-relocbase-unsigned.patch delete mode 100644 mingw-w64-binutils-git/0150-add-bigobj-format.patch diff --git a/mingw-w64-binutils-git/0016-fix-w32-lto-bug-13557.all.patch b/mingw-w64-binutils-git/0016-fix-w32-lto-bug-13557.all.patch deleted file mode 100644 index 671091aea7..0000000000 --- a/mingw-w64-binutils-git/0016-fix-w32-lto-bug-13557.all.patch +++ /dev/null @@ -1,998 +0,0 @@ ---- a/bfd/aoutx.h -+++ a/bfd/aoutx.h -@@ -3404,6 +3404,8 @@ aout_link_check_ar_symbols (bfd *abfd, - static bfd_boolean - aout_link_check_archive_element (bfd *abfd, - struct bfd_link_info *info, -+ struct bfd_link_hash_entry *h ATTRIBUTE_UNUSED, -+ const char *name ATTRIBUTE_UNUSED, - bfd_boolean *pneeded) - { - bfd *oldbfd; ---- a/bfd/cofflink.c -+++ a/bfd/cofflink.c -@@ -29,9 +29,11 @@ - #include "libcoff.h" - #include "safe-ctype.h" - --static bfd_boolean coff_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info); --static bfd_boolean coff_link_check_archive_element (bfd *abfd, struct bfd_link_info *info, bfd_boolean *pneeded); --static bfd_boolean coff_link_add_symbols (bfd *abfd, struct bfd_link_info *info); -+static bfd_boolean coff_link_add_object_symbols (bfd *, struct bfd_link_info *); -+static bfd_boolean coff_link_check_archive_element -+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *, -+ bfd_boolean *); -+static bfd_boolean coff_link_add_symbols (bfd *, struct bfd_link_info *); - - /* Return TRUE if SYM is a weak, external symbol. */ - #define IS_WEAK_EXTERNAL(abfd, sym) \ -@@ -190,74 +192,6 @@ coff_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info) - return TRUE; - } - --/* Look through the symbols to see if this object file should be -- included in the link. */ -- --static bfd_boolean --coff_link_check_ar_symbols (bfd *abfd, -- struct bfd_link_info *info, -- bfd_boolean *pneeded, -- bfd **subsbfd) --{ -- bfd_size_type symesz; -- bfd_byte *esym; -- bfd_byte *esym_end; -- -- *pneeded = FALSE; -- -- symesz = bfd_coff_symesz (abfd); -- esym = (bfd_byte *) obj_coff_external_syms (abfd); -- esym_end = esym + obj_raw_syment_count (abfd) * symesz; -- while (esym < esym_end) -- { -- struct internal_syment sym; -- enum coff_symbol_classification classification; -- -- bfd_coff_swap_sym_in (abfd, esym, &sym); -- -- classification = bfd_coff_classify_symbol (abfd, &sym); -- if (classification == COFF_SYMBOL_GLOBAL -- || classification == COFF_SYMBOL_COMMON) -- { -- const char *name; -- char buf[SYMNMLEN + 1]; -- struct bfd_link_hash_entry *h; -- -- /* This symbol is externally visible, and is defined by this -- object file. */ -- name = _bfd_coff_internal_syment_name (abfd, &sym, buf); -- if (name == NULL) -- return FALSE; -- h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE); -- -- /* Auto import. */ -- if (!h -- && info->pei386_auto_import -- && CONST_STRNEQ (name, "__imp_")) -- h = bfd_link_hash_lookup (info->hash, name + 6, FALSE, FALSE, TRUE); -- -- /* We are only interested in symbols that are currently -- undefined. If a symbol is currently known to be common, -- COFF linkers do not bring in an object file which defines -- it. */ -- if (h != (struct bfd_link_hash_entry *) NULL -- && h->type == bfd_link_hash_undefined) -- { -- if (!(*info->callbacks -- ->add_archive_element) (info, abfd, name, subsbfd)) -- return FALSE; -- *pneeded = TRUE; -- return TRUE; -- } -- } -- -- esym += (sym.n_numaux + 1) * symesz; -- } -- -- /* We do not need this object file. */ -- return TRUE; --} -- - /* Check a single archive element to see if we need to include it in - the link. *PNEEDED is set according to whether this element is - needed in the link or not. This is called via -@@ -266,41 +200,23 @@ coff_link_check_ar_symbols (bfd *abfd, - static bfd_boolean - coff_link_check_archive_element (bfd *abfd, - struct bfd_link_info *info, -+ struct bfd_link_hash_entry *h, -+ const char *name, - bfd_boolean *pneeded) - { -- bfd *oldbfd; -- bfd_boolean needed; -+ *pneeded = FALSE; - -- if (!_bfd_coff_get_external_symbols (abfd)) -- return FALSE; -+ /* We are only interested in symbols that are currently undefined. -+ If a symbol is currently known to be common, COFF linkers do not -+ bring in an object file which defines it. */ -+ if (h->type != bfd_link_hash_undefined) -+ return TRUE; - -- oldbfd = abfd; -- if (!coff_link_check_ar_symbols (abfd, info, pneeded, &abfd)) -+ if (!(*info->callbacks->add_archive_element) (info, abfd, name, &abfd)) - return FALSE; -+ *pneeded = TRUE; - -- needed = *pneeded; -- if (needed) -- { -- /* Potentially, the add_archive_element hook may have set a -- substitute BFD for us. */ -- if (abfd != oldbfd) -- { -- if (!info->keep_memory -- && !_bfd_coff_free_symbols (oldbfd)) -- return FALSE; -- if (!_bfd_coff_get_external_symbols (abfd)) -- return FALSE; -- } -- if (!coff_link_add_symbols (abfd, info)) -- return FALSE; -- } -- -- if (!info->keep_memory || !needed) -- { -- if (!_bfd_coff_free_symbols (abfd)) -- return FALSE; -- } -- return TRUE; -+ return coff_link_add_object_symbols (abfd, info); - } - - /* Add all the symbols from an object file to the hash table. */ ---- a/bfd/ecoff.c -+++ a/bfd/ecoff.c -@@ -3497,171 +3497,29 @@ ecoff_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info) - return FALSE; - } - --/* Factored out from ecoff_link_check_archive_element. */ -- --static bfd_boolean --read_ext_syms_and_strs (HDRR **symhdr, bfd_size_type *external_ext_size, -- bfd_size_type *esize, void **external_ext, char **ssext, bfd *abfd, -- const struct ecoff_backend_data * const backend) --{ -- if (! ecoff_slurp_symbolic_header (abfd)) -- return FALSE; -- -- /* If there are no symbols, we don't want it. */ -- if (bfd_get_symcount (abfd) == 0) -- return TRUE; -- -- *symhdr = &ecoff_data (abfd)->debug_info.symbolic_header; -- -- *external_ext_size = backend->debug_swap.external_ext_size; -- *esize = (*symhdr)->iextMax * *external_ext_size; -- *external_ext = bfd_malloc (*esize); -- if (*external_ext == NULL && *esize != 0) -- return FALSE; -- -- if (bfd_seek (abfd, (file_ptr) (*symhdr)->cbExtOffset, SEEK_SET) != 0 -- || bfd_bread (*external_ext, *esize, abfd) != *esize) -- return FALSE; -- -- *ssext = (char *) bfd_malloc ((bfd_size_type) (*symhdr)->issExtMax); -- if (*ssext == NULL && (*symhdr)->issExtMax != 0) -- return FALSE; -- -- if (bfd_seek (abfd, (file_ptr) (*symhdr)->cbSsExtOffset, SEEK_SET) != 0 -- || (bfd_bread (*ssext, (bfd_size_type) (*symhdr)->issExtMax, abfd) -- != (bfd_size_type) (*symhdr)->issExtMax)) -- return FALSE; -- return TRUE; --} -- --static bfd_boolean --reread_ext_syms_and_strs (HDRR **symhdr, bfd_size_type *external_ext_size, -- bfd_size_type *esize, void **external_ext, char **ssext, bfd *abfd, -- const struct ecoff_backend_data * const backend) --{ -- if (*external_ext != NULL) -- free (*external_ext); -- *external_ext = NULL; -- if (*ssext != NULL) -- free (*ssext); -- *ssext = NULL; -- return read_ext_syms_and_strs (symhdr, external_ext_size, esize, -- external_ext, ssext, abfd, backend); --} -- - /* This is called if we used _bfd_generic_link_add_archive_symbols - because we were not dealing with an ECOFF archive. */ - - static bfd_boolean - ecoff_link_check_archive_element (bfd *abfd, - struct bfd_link_info *info, -+ struct bfd_link_hash_entry *h, -+ const char *name, - bfd_boolean *pneeded) - { -- const struct ecoff_backend_data * const backend = ecoff_backend (abfd); -- void (* const swap_ext_in) (bfd *, void *, EXTR *) -- = backend->debug_swap.swap_ext_in; -- HDRR *symhdr; -- bfd_size_type external_ext_size = 0; -- void * external_ext = NULL; -- bfd_size_type esize = 0; -- char *ssext = NULL; -- char *ext_ptr; -- char *ext_end; -- - *pneeded = FALSE; - -- /* Read in the external symbols and external strings. */ -- if (!read_ext_syms_and_strs (&symhdr, &external_ext_size, &esize, -- &external_ext, &ssext, abfd, backend)) -- goto error_return; -- -- /* If there are no symbols, we don't want it. */ -- if (bfd_get_symcount (abfd) == 0) -- goto successful_return; -- -- /* Look through the external symbols to see if they define some -- symbol that is currently undefined. */ -- ext_ptr = (char *) external_ext; -- ext_end = ext_ptr + esize; -- for (; ext_ptr < ext_end; ext_ptr += external_ext_size) -- { -- EXTR esym; -- bfd_boolean def; -- const char *name; -- bfd *oldbfd; -- struct bfd_link_hash_entry *h; -- -- (*swap_ext_in) (abfd, (void *) ext_ptr, &esym); -- -- /* See if this symbol defines something. */ -- if (esym.asym.st != stGlobal -- && esym.asym.st != stLabel -- && esym.asym.st != stProc) -- continue; -- -- switch (esym.asym.sc) -- { -- case scText: -- case scData: -- case scBss: -- case scAbs: -- case scSData: -- case scSBss: -- case scRData: -- case scCommon: -- case scSCommon: -- case scInit: -- case scFini: -- case scRConst: -- def = TRUE; -- break; -- default: -- def = FALSE; -- break; -- } -- -- if (! def) -- continue; -- -- name = ssext + esym.asym.iss; -- h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE); -- -- /* Unlike the generic linker, we do not pull in elements because -- of common symbols. */ -- if (h == NULL -- || h->type != bfd_link_hash_undefined) -- continue; -- -- /* Include this element. */ -- oldbfd = abfd; -- if (!(*info->callbacks -- ->add_archive_element) (info, abfd, name, &abfd)) -- goto error_return; -- /* Potentially, the add_archive_element hook may have set a -- substitute BFD for us. */ -- if (abfd != oldbfd -- && !reread_ext_syms_and_strs (&symhdr, &external_ext_size, &esize, -- &external_ext, &ssext, abfd, backend)) -- goto error_return; -- if (! ecoff_link_add_externals (abfd, info, external_ext, ssext)) -- goto error_return; -+ /* Unlike the generic linker, we do not pull in elements because -+ of common symbols. */ -+ if (h->type != bfd_link_hash_undefined) -+ return TRUE; - -- *pneeded = TRUE; -- goto successful_return; -- } -+ /* Include this element. */ -+ if (!(*info->callbacks->add_archive_element) (info, abfd, name, &abfd)) -+ return FALSE; -+ *pneeded = TRUE; - -- successful_return: -- if (external_ext != NULL) -- free (external_ext); -- if (ssext != NULL) -- free (ssext); -- return TRUE; -- error_return: -- if (external_ext != NULL) -- free (external_ext); -- if (ssext != NULL) -- free (ssext); -- return FALSE; -+ return ecoff_link_add_object_symbols (abfd, info); - } - - /* Add the symbols from an archive file to the global hash table. ---- a/bfd/elflink.c -+++ a/bfd/elflink.c -@@ -2931,13 +2931,6 @@ elf_link_is_defined_archive_symbol (bfd * abfd, carsym * symdef) - if (! bfd_check_format (abfd, bfd_object)) - return FALSE; - -- /* If we have already included the element containing this symbol in the -- link then we do not need to include it again. Just claim that any symbol -- it contains is not a definition, so that our caller will not decide to -- (re)include this element. */ -- if (abfd->archive_pass) -- return FALSE; -- - /* Select the appropriate symbol table. */ - if ((abfd->flags & DYNAMIC) == 0 || elf_dynsymtab (abfd) == 0) - hdr = &elf_tdata (abfd)->symtab_hdr; -@@ -4928,20 +4921,8 @@ _bfd_elf_archive_symbol_lookup (bfd *abfd, - } - - /* Add symbols from an ELF archive file to the linker hash table. We -- don't use _bfd_generic_link_add_archive_symbols because of a -- problem which arises on UnixWare. The UnixWare libc.so is an -- archive which includes an entry libc.so.1 which defines a bunch of -- symbols. The libc.so archive also includes a number of other -- object files, which also define symbols, some of which are the same -- as those defined in libc.so.1. Correct linking requires that we -- consider each object file in turn, and include it if it defines any -- symbols we need. _bfd_generic_link_add_archive_symbols does not do -- this; it looks through the list of undefined symbols, and includes -- any object file which defines them. When this algorithm is used on -- UnixWare, it winds up pulling in libc.so.1 early and defining a -- bunch of symbols. This means that some of the other objects in the -- archive are not included in the link, which is incorrect since they -- precede libc.so.1 in the archive. -+ don't use _bfd_generic_link_add_archive_symbols because we need to -+ handle versioned symbols. - - Fortunately, ELF archive handling is simpler than that done by - _bfd_generic_link_add_archive_symbols, which has to allow for a.out -@@ -4956,8 +4937,7 @@ static bfd_boolean - elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) - { - symindex c; -- bfd_boolean *defined = NULL; -- bfd_boolean *included = NULL; -+ unsigned char *included = NULL; - carsym *symdefs; - bfd_boolean loop; - bfd_size_type amt; -@@ -4981,11 +4961,10 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) - if (c == 0) - return TRUE; - amt = c; -- amt *= sizeof (bfd_boolean); -- defined = (bfd_boolean *) bfd_zmalloc (amt); -- included = (bfd_boolean *) bfd_zmalloc (amt); -- if (defined == NULL || included == NULL) -- goto error_return; -+ amt *= sizeof (*included); -+ included = (unsigned char *) bfd_zmalloc (amt); -+ if (included == NULL) -+ return FALSE; - - symdefs = bfd_ardata (abfd)->symdefs; - bed = get_elf_backend_data (abfd); -@@ -5010,7 +4989,7 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) - struct bfd_link_hash_entry *undefs_tail; - symindex mark; - -- if (defined[i] || included[i]) -+ if (included[i]) - continue; - if (symdef->file_offset == last) - { -@@ -5045,7 +5024,8 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) - else if (h->root.type != bfd_link_hash_undefined) - { - if (h->root.type != bfd_link_hash_undefweak) -- defined[i] = TRUE; -+ /* Symbol must be defined. Don't check it again. */ -+ included[i] = TRUE; - continue; - } - -@@ -5057,16 +5037,6 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) - if (! bfd_check_format (element, bfd_object)) - goto error_return; - -- /* Doublecheck that we have not included this object -- already--it should be impossible, but there may be -- something wrong with the archive. */ -- if (element->archive_pass != 0) -- { -- bfd_set_error (bfd_error_bad_value); -- goto error_return; -- } -- element->archive_pass = 1; -- - undefs_tail = info->hash->undefs_tail; - - if (!(*info->callbacks -@@ -5104,14 +5074,11 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) - } - while (loop); - -- free (defined); - free (included); - - return TRUE; - - error_return: -- if (defined != NULL) -- free (defined); - if (included != NULL) - free (included); - return FALSE; ---- a/bfd/libbfd-in.h -+++ a/bfd/libbfd-in.h -@@ -603,7 +603,9 @@ extern bfd_boolean _bfd_generic_link_add_symbols_collect - /* Generic archive add symbol routine. */ - extern bfd_boolean _bfd_generic_link_add_archive_symbols - (bfd *, struct bfd_link_info *, -- bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *)); -+ bfd_boolean (*) (bfd *, struct bfd_link_info *, -+ struct bfd_link_hash_entry *, const char *, -+ bfd_boolean *)); - - /* Forward declaration to avoid prototype errors. */ - typedef struct bfd_link_hash_entry _bfd_link_hash_entry; ---- a/bfd/libbfd.h -+++ a/bfd/libbfd.h -@@ -608,7 +608,9 @@ extern bfd_boolean _bfd_generic_link_add_symbols_collect - /* Generic archive add symbol routine. */ - extern bfd_boolean _bfd_generic_link_add_archive_symbols - (bfd *, struct bfd_link_info *, -- bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *)); -+ bfd_boolean (*) (bfd *, struct bfd_link_info *, -+ struct bfd_link_hash_entry *, const char *, -+ bfd_boolean *)); - - /* Forward declaration to avoid prototype errors. */ - typedef struct bfd_link_hash_entry _bfd_link_hash_entry; ---- a/bfd/linker.c -+++ a/bfd/linker.c -@@ -229,28 +229,16 @@ SUBSUBSECTION - @findex _bfd_generic_link_add_archive_symbols - In most cases the work of looking through the symbols in the - archive should be done by the -- <<_bfd_generic_link_add_archive_symbols>> function. This -- function builds a hash table from the archive symbol table and -- looks through the list of undefined symbols to see which -- elements should be included. -+ <<_bfd_generic_link_add_archive_symbols>> function. - <<_bfd_generic_link_add_archive_symbols>> is passed a function - to call to make the final decision about adding an archive - element to the link and to do the actual work of adding the -- symbols to the linker hash table. -- -- The function passed to -- <<_bfd_generic_link_add_archive_symbols>> must read the -- symbols of the archive element and decide whether the archive -- element should be included in the link. If the element is to -+ symbols to the linker hash table. If the element is to - be included, the <> linker callback - routine must be called with the element as an argument, and - the element's symbols must be added to the linker hash table - just as though the element had itself been passed to the -- <<_bfd_link_add_symbols>> function. The <> -- callback has the option to indicate that it would like to -- replace the element archive with a substitute BFD, in which -- case it is the symbols of that substitute BFD that must be -- added to the linker hash table instead. -+ <<_bfd_link_add_symbols>> function. - - When the a.out <<_bfd_link_add_symbols>> function receives an - archive, it calls <<_bfd_generic_link_add_archive_symbols>> -@@ -419,11 +407,14 @@ static bfd_boolean generic_link_add_object_symbols - static bfd_boolean generic_link_add_symbols - (bfd *, struct bfd_link_info *, bfd_boolean); - static bfd_boolean generic_link_check_archive_element_no_collect -- (bfd *, struct bfd_link_info *, bfd_boolean *); -+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *, -+ bfd_boolean *); - static bfd_boolean generic_link_check_archive_element_collect -- (bfd *, struct bfd_link_info *, bfd_boolean *); -+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *, -+ bfd_boolean *); - static bfd_boolean generic_link_check_archive_element -- (bfd *, struct bfd_link_info *, bfd_boolean *, bfd_boolean); -+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *, -+ bfd_boolean *, bfd_boolean); - static bfd_boolean generic_link_add_symbol_list - (bfd *, struct bfd_link_info *, bfd_size_type count, asymbol **, - bfd_boolean); -@@ -917,138 +908,32 @@ generic_link_add_object_symbols (bfd *abfd, - return generic_link_add_symbol_list (abfd, info, symcount, outsyms, collect); - } - --/* We build a hash table of all symbols defined in an archive. */ -- --/* An archive symbol may be defined by multiple archive elements. -- This linked list is used to hold the elements. */ -- --struct archive_list --{ -- struct archive_list *next; -- unsigned int indx; --}; -- --/* An entry in an archive hash table. */ -- --struct archive_hash_entry --{ -- struct bfd_hash_entry root; -- /* Where the symbol is defined. */ -- struct archive_list *defs; --}; -- --/* An archive hash table itself. */ -- --struct archive_hash_table --{ -- struct bfd_hash_table table; --}; -- --/* Create a new entry for an archive hash table. */ -- --static struct bfd_hash_entry * --archive_hash_newfunc (struct bfd_hash_entry *entry, -- struct bfd_hash_table *table, -- const char *string) --{ -- struct archive_hash_entry *ret = (struct archive_hash_entry *) entry; -- -- /* Allocate the structure if it has not already been allocated by a -- subclass. */ -- if (ret == NULL) -- ret = (struct archive_hash_entry *) -- bfd_hash_allocate (table, sizeof (struct archive_hash_entry)); -- if (ret == NULL) -- return NULL; -- -- /* Call the allocation method of the superclass. */ -- ret = ((struct archive_hash_entry *) -- bfd_hash_newfunc ((struct bfd_hash_entry *) ret, table, string)); -- -- if (ret) -- { -- /* Initialize the local fields. */ -- ret->defs = NULL; -- } -- -- return &ret->root; --} -- --/* Initialize an archive hash table. */ -- --static bfd_boolean --archive_hash_table_init -- (struct archive_hash_table *table, -- struct bfd_hash_entry *(*newfunc) (struct bfd_hash_entry *, -- struct bfd_hash_table *, -- const char *), -- unsigned int entsize) --{ -- return bfd_hash_table_init (&table->table, newfunc, entsize); --} -- --/* Look up an entry in an archive hash table. */ -- --#define archive_hash_lookup(t, string, create, copy) \ -- ((struct archive_hash_entry *) \ -- bfd_hash_lookup (&(t)->table, (string), (create), (copy))) -- --/* Allocate space in an archive hash table. */ -- --#define archive_hash_allocate(t, size) bfd_hash_allocate (&(t)->table, (size)) -- --/* Free an archive hash table. */ -- --#define archive_hash_table_free(t) bfd_hash_table_free (&(t)->table) -- - /* Generic function to add symbols from an archive file to the global - hash file. This function presumes that the archive symbol table - has already been read in (this is normally done by the -- bfd_check_format entry point). It looks through the undefined and -- common symbols and searches the archive symbol table for them. If -- it finds an entry, it includes the associated object file in the -- link. -- -- The old linker looked through the archive symbol table for -- undefined symbols. We do it the other way around, looking through -- undefined symbols for symbols defined in the archive. The -- advantage of the newer scheme is that we only have to look through -- the list of undefined symbols once, whereas the old method had to -- re-search the symbol table each time a new object file was added. -- -- The CHECKFN argument is used to see if an object file should be -- included. CHECKFN should set *PNEEDED to TRUE if the object file -- should be included, and must also call the bfd_link_info -- add_archive_element callback function and handle adding the symbols -- to the global hash table. CHECKFN must notice if the callback -- indicates a substitute BFD, and arrange to add those symbols instead -- if it does so. CHECKFN should only return FALSE if some sort of -- error occurs. -- -- For some formats, such as a.out, it is possible to look through an -- object file but not actually include it in the link. The -- archive_pass field in a BFD is used to avoid checking the symbols -- of an object files too many times. When an object is included in -- the link, archive_pass is set to -1. If an object is scanned but -- not included, archive_pass is set to the pass number. The pass -- number is incremented each time a new object file is included. The -- pass number is used because when a new object file is included it -- may create new undefined symbols which cause a previously examined -- object file to be included. */ -+ bfd_check_format entry point). It looks through the archive symbol -+ table for symbols that are undefined or common in the linker global -+ symbol hash table. When one is found, the CHECKFN argument is used -+ to see if an object file should be included. This allows targets -+ to customize common symbol behaviour. CHECKFN should set *PNEEDED -+ to TRUE if the object file should be included, and must also call -+ the bfd_link_info add_archive_element callback function and handle -+ adding the symbols to the global hash table. CHECKFN must notice -+ if the callback indicates a substitute BFD, and arrange to add -+ those symbols instead if it does so. CHECKFN should only return -+ FALSE if some sort of error occurs. */ - - bfd_boolean - _bfd_generic_link_add_archive_symbols - (bfd *abfd, - struct bfd_link_info *info, -- bfd_boolean (*checkfn) (bfd *, struct bfd_link_info *, bfd_boolean *)) -+ bfd_boolean (*checkfn) (bfd *, struct bfd_link_info *, -+ struct bfd_link_hash_entry *, const char *, -+ bfd_boolean *)) - { -- carsym *arsyms; -- carsym *arsym_end; -- register carsym *arsym; -- int pass; -- struct archive_hash_table arsym_hash; -- unsigned int indx; -- struct bfd_link_hash_entry **pundef; -+ bfd_boolean loop; -+ bfd_size_type amt; -+ unsigned char *included; - - if (! bfd_has_map (abfd)) - { -@@ -1059,148 +944,103 @@ _bfd_generic_link_add_archive_symbols - return FALSE; - } - -- arsyms = bfd_ardata (abfd)->symdefs; -- arsym_end = arsyms + bfd_ardata (abfd)->symdef_count; -- -- /* In order to quickly determine whether an symbol is defined in -- this archive, we build a hash table of the symbols. */ -- if (! archive_hash_table_init (&arsym_hash, archive_hash_newfunc, -- sizeof (struct archive_hash_entry))) -+ amt = bfd_ardata (abfd)->symdef_count; -+ if (amt == 0) -+ return TRUE; -+ amt *= sizeof (*included); -+ included = (unsigned char *) bfd_zmalloc (amt); -+ if (included == NULL) - return FALSE; -- for (arsym = arsyms, indx = 0; arsym < arsym_end; arsym++, indx++) -- { -- struct archive_hash_entry *arh; -- struct archive_list *l, **pp; -- -- arh = archive_hash_lookup (&arsym_hash, arsym->name, TRUE, FALSE); -- if (arh == NULL) -- goto error_return; -- l = ((struct archive_list *) -- archive_hash_allocate (&arsym_hash, sizeof (struct archive_list))); -- if (l == NULL) -- goto error_return; -- l->indx = indx; -- for (pp = &arh->defs; *pp != NULL; pp = &(*pp)->next) -- ; -- *pp = l; -- l->next = NULL; -- } -- -- /* The archive_pass field in the archive itself is used to -- initialize PASS, sine we may search the same archive multiple -- times. */ -- pass = abfd->archive_pass + 1; - -- /* New undefined symbols are added to the end of the list, so we -- only need to look through it once. */ -- pundef = &info->hash->undefs; -- while (*pundef != NULL) -+ do - { -- struct bfd_link_hash_entry *h; -- struct archive_hash_entry *arh; -- struct archive_list *l; -- -- h = *pundef; -- -- /* When a symbol is defined, it is not necessarily removed from -- the list. */ -- if (h->type != bfd_link_hash_undefined -- && h->type != bfd_link_hash_common) -+ carsym *arsyms; -+ carsym *arsym_end; -+ carsym *arsym; -+ unsigned int indx; -+ file_ptr last_ar_offset = -1; -+ bfd_boolean needed = FALSE; -+ bfd *element = NULL; -+ -+ loop = FALSE; -+ arsyms = bfd_ardata (abfd)->symdefs; -+ arsym_end = arsyms + bfd_ardata (abfd)->symdef_count; -+ for (arsym = arsyms, indx = 0; arsym < arsym_end; arsym++, indx++) - { -- /* Remove this entry from the list, for general cleanliness -- and because we are going to look through the list again -- if we search any more libraries. We can't remove the -- entry if it is the tail, because that would lose any -- entries we add to the list later on (it would also cause -- us to lose track of whether the symbol has been -- referenced). */ -- if (*pundef != info->hash->undefs_tail) -- *pundef = (*pundef)->u.undef.next; -- else -- pundef = &(*pundef)->u.undef.next; -- continue; -- } -- -- /* Look for this symbol in the archive symbol map. */ -- arh = archive_hash_lookup (&arsym_hash, h->root.string, FALSE, FALSE); -- if (arh == NULL) -- { -- /* If we haven't found the exact symbol we're looking for, -- let's look for its import thunk */ -- if (info->pei386_auto_import) -- { -- bfd_size_type amt = strlen (h->root.string) + 10; -- char *buf = (char *) bfd_malloc (amt); -- if (buf == NULL) -- return FALSE; -+ struct bfd_link_hash_entry *h; -+ struct bfd_link_hash_entry *undefs_tail; - -- sprintf (buf, "__imp_%s", h->root.string); -- arh = archive_hash_lookup (&arsym_hash, buf, FALSE, FALSE); -- free(buf); -- } -- if (arh == NULL) -+ if (included[indx]) -+ continue; -+ if (needed && arsym->file_offset == last_ar_offset) - { -- pundef = &(*pundef)->u.undef.next; -+ included[indx] = 1; - continue; - } -- } -- /* Look at all the objects which define this symbol. */ -- for (l = arh->defs; l != NULL; l = l->next) -- { -- bfd *element; -- bfd_boolean needed; -- -- /* If the symbol has gotten defined along the way, quit. */ -- if (h->type != bfd_link_hash_undefined -- && h->type != bfd_link_hash_common) -- break; - -- element = bfd_get_elt_at_index (abfd, l->indx); -- if (element == NULL) -- goto error_return; -+ h = bfd_link_hash_lookup (info->hash, arsym->name, -+ FALSE, FALSE, TRUE); - -- /* If we've already included this element, or if we've -- already checked it on this pass, continue. */ -- if (element->archive_pass == -1 -- || element->archive_pass == pass) -+ if (h == NULL -+ && info->pei386_auto_import -+ && CONST_STRNEQ (arsym->name, "__imp_")) -+ h = bfd_link_hash_lookup (info->hash, arsym->name + 6, -+ FALSE, FALSE, TRUE); -+ if (h == NULL) - continue; - -- /* If we can't figure this element out, just ignore it. */ -- if (! bfd_check_format (element, bfd_object)) -+ if (h->type != bfd_link_hash_undefined -+ && h->type != bfd_link_hash_common) - { -- element->archive_pass = -1; -+ if (h->type != bfd_link_hash_undefweak) -+ /* Symbol must be defined. Don't check it again. */ -+ included[indx] = 1; - continue; - } - -+ if (last_ar_offset != arsym->file_offset) -+ { -+ last_ar_offset = arsym->file_offset; -+ element = _bfd_get_elt_at_filepos (abfd, last_ar_offset); -+ if (element == NULL -+ || !bfd_check_format (element, bfd_object)) -+ goto error_return; -+ } -+ -+ undefs_tail = info->hash->undefs_tail; -+ - /* CHECKFN will see if this element should be included, and - go ahead and include it if appropriate. */ -- if (! (*checkfn) (element, info, &needed)) -+ if (! (*checkfn) (element, info, h, arsym->name, &needed)) - goto error_return; - -- if (! needed) -- element->archive_pass = pass; -- else -+ if (needed) - { -- element->archive_pass = -1; -+ unsigned int mark; - -- /* Increment the pass count to show that we may need to -- recheck object files which were already checked. */ -- ++pass; -+ /* Look backward to mark all symbols from this object file -+ which we have already seen in this pass. */ -+ mark = indx; -+ do -+ { -+ included[mark] = 1; -+ if (mark == 0) -+ break; -+ --mark; -+ } -+ while (arsyms[mark].file_offset == last_ar_offset); -+ -+ if (undefs_tail != info->hash->undefs_tail) -+ loop = TRUE; - } - } -+ } while (loop); - -- pundef = &(*pundef)->u.undef.next; -- } -- -- archive_hash_table_free (&arsym_hash); -- -- /* Save PASS in case we are called again. */ -- abfd->archive_pass = pass; -- -+ free (included); - return TRUE; - - error_return: -- archive_hash_table_free (&arsym_hash); -+ free (included); - return FALSE; - } - -@@ -1210,12 +1050,14 @@ _bfd_generic_link_add_archive_symbols - for finding them. */ - - static bfd_boolean --generic_link_check_archive_element_no_collect ( -- bfd *abfd, -+generic_link_check_archive_element_no_collect (bfd *abfd, - struct bfd_link_info *info, -+ struct bfd_link_hash_entry *h, -+ const char *name, - bfd_boolean *pneeded) - { -- return generic_link_check_archive_element (abfd, info, pneeded, FALSE); -+ return generic_link_check_archive_element (abfd, info, h, name, pneeded, -+ FALSE); - } - - /* See if we should include an archive element. This version is used -@@ -1225,9 +1067,12 @@ generic_link_check_archive_element_no_collect ( - static bfd_boolean - generic_link_check_archive_element_collect (bfd *abfd, - struct bfd_link_info *info, -+ struct bfd_link_hash_entry *h, -+ const char *name, - bfd_boolean *pneeded) - { -- return generic_link_check_archive_element (abfd, info, pneeded, TRUE); -+ return generic_link_check_archive_element (abfd, info, h, name, pneeded, -+ TRUE); - } - - /* See if we should include an archive element. Optionally collect -@@ -1236,6 +1081,8 @@ generic_link_check_archive_element_collect (bfd *abfd, - static bfd_boolean - generic_link_check_archive_element (bfd *abfd, - struct bfd_link_info *info, -+ struct bfd_link_hash_entry *h, -+ const char *name ATTRIBUTE_UNUSED, - bfd_boolean *pneeded, - bfd_boolean collect) - { -@@ -1251,7 +1098,6 @@ generic_link_check_archive_element (bfd *abfd, - for (; pp < ppend; pp++) - { - asymbol *p; -- struct bfd_link_hash_entry *h; - - p = *pp; - ---- a/bfd/pdp11.c -+++ a/bfd/pdp11.c -@@ -251,7 +251,7 @@ HOWTO( 1, 0, 1, 16, TRUE, 0, complain_overflow_signed,0,"DISP16", TRU - #define TABLE_SIZE(TABLE) (sizeof(TABLE)/sizeof(TABLE[0])) - - --static bfd_boolean aout_link_check_archive_element (bfd *, struct bfd_link_info *, bfd_boolean *); -+static bfd_boolean aout_link_check_archive_element (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *, bfd_boolean *); - static bfd_boolean aout_link_add_object_symbols (bfd *, struct bfd_link_info *); - static bfd_boolean aout_link_add_symbols (bfd *, struct bfd_link_info *); - static bfd_boolean aout_link_write_symbols (struct aout_final_link_info *, bfd *); -@@ -2679,6 +2679,8 @@ aout_link_check_ar_symbols (bfd *abfd, - static bfd_boolean - aout_link_check_archive_element (bfd *abfd, - struct bfd_link_info *info, -+ struct bfd_link_hash_entry *h ATTRIBUTE_UNUSED, -+ const char *name ATTRIBUTE_UNUSED, - bfd_boolean *pneeded) - { - bfd *oldbfd; ---- a/bfd/xcofflink.c -+++ a/bfd/xcofflink.c -@@ -2384,6 +2384,8 @@ xcoff_link_check_ar_symbols (bfd *abfd, - static bfd_boolean - xcoff_link_check_archive_element (bfd *abfd, - struct bfd_link_info *info, -+ struct bfd_link_hash_entry *h ATTRIBUTE_UNUSED, -+ const char *name ATTRIBUTE_UNUSED, - bfd_boolean *pneeded) - { - bfd_boolean keep_syms_p; -@@ -2463,7 +2465,7 @@ _bfd_xcoff_bfd_link_add_symbols (bfd *abfd, struct bfd_link_info *info) - bfd_boolean needed; - - if (! xcoff_link_check_archive_element (member, info, -- &needed)) -+ NULL, NULL, &needed)) - return FALSE; - if (needed) - member->archive_pass = -1; diff --git a/mingw-w64-binutils-git/0100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch b/mingw-w64-binutils-git/0100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch deleted file mode 100644 index 642ff58d4e..0000000000 --- a/mingw-w64-binutils-git/0100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch +++ /dev/null @@ -1,86 +0,0 @@ -diff -urN binutils-2.24.orig/libiberty/pex-win32.c binutils-2.24libiberty/pex-win32.c ---- binutils-2.24.orig/libiberty/pex-win32.c 2013-12-21 20:21:26.446076700 +0000 -+++ binutils-2.24/libiberty/pex-win32.c 2013-12-22 02:56:54.800559500 +0000 -@@ -340,17 +340,26 @@ - char *p; - size_t cmdline_len; - int i, j, k; -+ int needs_quotes; - - cmdline_len = 0; - for (i = 0; argv[i]; i++) - { -- /* We quote every last argument. This simplifies the problem; -- we need only escape embedded double-quotes and immediately -+ /* We only quote arguments that contain spaces, \n \t \v or " characters -+ to prevent wasting 2 chars per argument of the CreateProcess 32k char limit -+ We need only escape embedded double-quotes and immediately - preceeding backslash characters. A sequence of backslach characters - that is not follwed by a double quote character will not be - escaped. */ -+ needs_quotes = 0; - for (j = 0; argv[i][j]; j++) - { -+ if (argv[i][j] == ' ' || argv[i][j] == '\n' || -+ argv[i][j] == '\t' || argv[i][j] == '"' ) -+ { -+ needs_quotes = 1; -+ } -+ - if (argv[i][j] == '"') - { - /* Escape preceeding backslashes. */ -@@ -362,16 +371,33 @@ - } - /* Trailing backslashes also need to be escaped because they will be - followed by the terminating quote. */ -- for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -- cmdline_len++; -+ if (needs_quotes) -+ { -+ for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -+ cmdline_len++; -+ } - cmdline_len += j; -- cmdline_len += 3; /* for leading and trailing quotes and space */ -+ cmdline_len += 1 + (needs_quotes<<1); /* for leading and trailing quotes and space */ - } - cmdline = XNEWVEC (char, cmdline_len); - p = cmdline; - for (i = 0; argv[i]; i++) - { -- *p++ = '"'; -+ needs_quotes = 0; -+ for (j = 0; argv[i][j]; j++) -+ { -+ if (argv[i][j] == ' ' || argv[i][j] == '\n' || -+ argv[i][j] == '\t' || argv[i][j] == '"' ) -+ { -+ needs_quotes = 1; -+ break; -+ } -+ } -+ -+ if (needs_quotes) -+ { -+ *p++ = '"'; -+ } - for (j = 0; argv[i][j]; j++) - { - if (argv[i][j] == '"') -@@ -382,9 +408,12 @@ - } - *p++ = argv[i][j]; - } -- for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -- *p++ = '\\'; -- *p++ = '"'; -+ if (needs_quotes) -+ { -+ for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -+ *p++ = '\\'; -+ *p++ = '"'; -+ } - *p++ = ' '; - } - p[-1] = '\0'; diff --git a/mingw-w64-binutils-git/0110-binutils-mingw-gnu-print.patch b/mingw-w64-binutils-git/0110-binutils-mingw-gnu-print.patch index 419fd524f3..88931e9fce 100644 --- a/mingw-w64-binutils-git/0110-binutils-mingw-gnu-print.patch +++ b/mingw-w64-binutils-git/0110-binutils-mingw-gnu-print.patch @@ -80,9 +80,9 @@ diff -Naur binutils-2.24/binutils/readelf.c binutils-2.24-mingw/binutils/readelf ? "%16.16llx %16.16llx " : "%12.12llx %12.12llx ", @@ -10836,7 +10836,7 @@ - - if (data < end) { + size_t maxlen = end - data; + -#ifndef __MSVCRT__ +#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) /* PR 11128: Use two separate invocations in order to work @@ -130,3 +130,60 @@ diff -Naur binutils-2.24/gas/read.c binutils-2.24-mingw/gas/read.c as_warn (_("value 0x%llx truncated to 0x%llx"), (unsigned long long) get, (unsigned long long) use); #else +--- binutils-2.25/gas/as.h.orig 2014-12-26 08:20:07.506000000 +0300 ++++ binutils-2.25/gas/as.h 2014-12-26 08:21:13.350000000 +0300 +@@ -451,10 +451,10 @@ + + #define PRINTF_LIKE(FCN) \ + void FCN (const char *format, ...) \ +- __attribute__ ((__format__ (__printf__, 1, 2))) ++ __attribute__ ((__format__ (gnu_printf, 1, 2))) + #define PRINTF_WHERE_LIKE(FCN) \ + void FCN (char *file, unsigned int line, const char *format, ...) \ +- __attribute__ ((__format__ (__printf__, 3, 4))) ++ __attribute__ ((__format__ (gnu_printf, 3, 4))) + + #else /* __GNUC__ < 2 || defined(VMS) */ + +--- binutils-2.25/gold/configure.orig 2014-12-26 08:22:19.978000000 +0300 ++++ binutils-2.25/gold/configure 2014-12-26 08:22:23.697000000 +0300 +@@ -7530,7 +7530,7 @@ + /* end confdefs.h. */ + + template extern void foo(const char*, ...) +- __attribute__ ((__format__ (__printf__, 1, 2))); ++ __attribute__ ((__format__ (gnu_printf, 1, 2))); + template void foo(const char* format, ...) {} + void bar() { foo("%s\n", "foo"); } + +--- binutils-2.25/gold/configure.ac.orig 2014-12-26 08:22:49.521000000 +0300 ++++ binutils-2.25/gold/configure.ac 2014-12-26 08:23:05.556000000 +0300 +@@ -601,7 +601,7 @@ + [gold_cv_template_attribute], + [AC_COMPILE_IFELSE([ + template extern void foo(const char*, ...) +- __attribute__ ((__format__ (__printf__, 1, 2))); ++ __attribute__ ((__format__ (gnu_printf, 1, 2))); + template void foo(const char* format, ...) {} + void bar() { foo("%s\n", "foo"); } + ], [gold_cv_template_attribute=yes], [gold_cv_template_attribute=no])]) +--- binutils-2.25/include/ansidecl.h.orig 2014-12-26 08:23:33.513000000 +0300 ++++ binutils-2.25/include/ansidecl.h 2014-12-26 08:24:16.479000000 +0300 +@@ -197,7 +197,7 @@ + before GCC 3.3, but as of 3.3 we need to add the `nonnull' + attribute to retain this behavior. */ + #ifndef ATTRIBUTE_PRINTF +-#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m) ++#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (gnu_printf, m, n))) ATTRIBUTE_NONNULL(m) + #define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2) + #define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3) + #define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4) +@@ -225,7 +225,7 @@ + NULL format specifier was allowed as of gcc 3.3. */ + #ifndef ATTRIBUTE_NULL_PRINTF + # if (GCC_VERSION >= 3003) +-# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ++# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (gnu_printf, m, n))) + # else + # define ATTRIBUTE_NULL_PRINTF(m, n) + # endif /* GNUC >= 3.3 */ diff --git a/mingw-w64-binutils-git/0120-This-fixes-a-compile-time-warning.patch b/mingw-w64-binutils-git/0120-This-fixes-a-compile-time-warning.patch deleted file mode 100644 index 34496a39e6..0000000000 --- a/mingw-w64-binutils-git/0120-This-fixes-a-compile-time-warning.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 88667baf24e71481f0002c0452b94a1d53116725 Mon Sep 17 00:00:00 2001 -From: Nick Clifton -Date: Fri, 25 Apr 2014 17:00:20 +0100 -Subject: [PATCH] This fixes a compile time warning which is being treated as an error. Older - versions of gcc complain about part of a conditional expression always - evaluating to false because of the size of the operands involved, even when - the entire expression is already known to be false. - - * peXXigen.c (_bfd_XXi_swap_sym_out): Another fix for building on - a 342-bit host. This time for older versions of gcc. ---- - bfd/ChangeLog | 6 ++++++ - bfd/peXXigen.c | 10 +++++++++- - 2 files changed, 15 insertions(+), 1 deletions(-) - -diff --git a/bfd/ChangeLog b/bfd/ChangeLog -index f22dc90..ccff4ce 100644 ---- a/bfd/ChangeLog -+++ b/bfd/ChangeLog -@@ -1,3 +1,9 @@ -+2014-04-25 Nick Clifton -+ -+ PR ld/16821 -+ * peXXigen.c (_bfd_XXi_swap_sym_out): Another fix for building on -+ a 342-bit host. This time for older versions of gcc. -+ - 2014-04-24 Nick Clifton - - * peXXigen.c (rsrc_print_section): Fix compile time warning for -diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c -index d462753..dc45daf 100644 ---- a/bfd/peXXigen.c -+++ b/bfd/peXXigen.c -@@ -236,7 +236,15 @@ _bfd_XXi_swap_sym_out (bfd * abfd, void * inp, void * extp) - reduce the absolute value to < 1^32, and then transforming the - symbol into a section relative symbol. This of course is a hack. */ - if (sizeof (in->n_value) > 4 -+ /* GCC 4.6.x erroneously complains about the next test always being -+ false when compiled on a 32-bit host. (The sizeof test above -+ should have made the warning unnecessary). Hence we have to -+ predicate the test. It should not matter if the test is omitted -+ since the worst that can happen is that some absolute symbols -+ are needlessly converted to equivalent section relative symbols. */ -+#if defined BFD64 || ! defined __GNUC__ || __GNUC__ > 4 || __GNUC_MINOR__ > 6 - && in->n_value > ((1ULL << 32) - 1) -+#endif - && in->n_scnum == -1) - { - asection * sec; -@@ -248,7 +256,7 @@ _bfd_XXi_swap_sym_out (bfd * abfd, void * inp, void * extp) - in->n_scnum = sec->target_index; - } - /* else: FIXME: The value is outside the range of any section. This -- happens for __image_base__ and __ImageBase__ and maybe some other -+ happens for __image_base__ and __ImageBase and maybe some other - symbols as well. We should find a way to handle these values. */ - } - --- -1.7.1 - diff --git a/mingw-w64-binutils-git/0130-Bug-16858-weak-external-reference-has-wrong-value.patch b/mingw-w64-binutils-git/0130-Bug-16858-weak-external-reference-has-wrong-value.patch deleted file mode 100644 index 98a25966c1..0000000000 --- a/mingw-w64-binutils-git/0130-Bug-16858-weak-external-reference-has-wrong-value.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/gas/config/tc-i386.c -+++ a/gas/config/tc-i386.c -@@ -9145,12 +9145,6 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) - value += md_pcrel_from (fixP); - #endif - } --#if defined (OBJ_COFF) && defined (TE_PE) -- if (fixP->fx_addsy != NULL && S_IS_WEAK (fixP->fx_addsy)) -- { -- value -= S_GET_VALUE (fixP->fx_addsy); -- } --#endif - - /* Fix a few things - the dynamic linker expects certain values here, - and we must not disappoint it. */ diff --git a/mingw-w64-binutils-git/0140-make-relocbase-unsigned.patch b/mingw-w64-binutils-git/0140-make-relocbase-unsigned.patch deleted file mode 100644 index e68076ba49..0000000000 --- a/mingw-w64-binutils-git/0140-make-relocbase-unsigned.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -urN binutils-2.24.orig/bfd/libcoff.h binutils-2.24/bfd/libcoff.h ---- binutils-2.24.orig/bfd/libcoff.h 2014-05-24 16:03:12.983980200 +0100 -+++ binutils-2.24/bfd/libcoff.h 2014-05-24 16:04:45.239695200 +0100 -@@ -57,7 +57,7 @@ - unsigned long raw_syment_count; - - /* These are only valid once writing has begun. */ -- long int relocbase; -+ unsigned long int relocbase; - - /* These members communicate important constants about the symbol table - to GDB's symbol-reading code. These `constants' unfortunately vary -diff -urN binutils-2.24.orig/bfd/libcoff-in.h binutils-2.24/bfd/libcoff-in.h ---- binutils-2.24.orig/bfd/libcoff-in.h 2014-05-24 16:03:12.983480200 +0100 -+++ binutils-2.24/bfd/libcoff-in.h 2014-05-24 16:04:27.654962200 +0100 -@@ -53,7 +53,7 @@ - unsigned long raw_syment_count; - - /* These are only valid once writing has begun. */ -- long int relocbase; -+ unsigned long int relocbase; - - /* These members communicate important constants about the symbol table - to GDB's symbol-reading code. These `constants' unfortunately vary diff --git a/mingw-w64-binutils-git/0150-add-bigobj-format.patch b/mingw-w64-binutils-git/0150-add-bigobj-format.patch deleted file mode 100644 index 8591969578..0000000000 --- a/mingw-w64-binutils-git/0150-add-bigobj-format.patch +++ /dev/null @@ -1,942 +0,0 @@ -From 167ad85bf06582759e8dfe021aac9da79b81340d Mon Sep 17 00:00:00 2001 -From: Tristan Gingold -Date: Mon, 2 Dec 2013 14:30:32 +0100 -Subject: [PATCH] Add pe/x86_64 bigobj file format. - -bfd/ - * peicode.h (pe_ILF_object_p): Adjust, as the version number - has been read. - (pe_bfd_object_p): Also read version number to detect ILF. - * pe-x86_64.c (COFF_WITH_PE_BIGOBJ): Define. - (x86_64pe_bigobj_vec): Define - * coffcode.h (bfd_coff_backend_data): Add _bfd_coff_max_nscns field. - (bfd_coff_max_nscns): New macro. - (coff_compute_section_file_positions): Use unsigned int for - target_index. Compare with bfd_coff_max_nscns. - (bfd_coff_std_swap_table, ticoff0_swap_table, ticoff1_swap_table): - Set a value for _bfd_coff_max_nscns. - (header_bigobj_classid): New constant. - (coff_bigobj_swap_filehdr_in, coff_bigobj_swap_filehdr_out) - (coff_bigobj_swap_sym_in, coff_bigobj_swap_sym_out) - (coff_bigobj_swap_aux_in, coff_bigobj_swap_aux_out): New - functions. - (bigobj_swap_table): New table. - * libcoff.h: Regenerate. - * coff-sh.c (bfd_coff_small_swap_table): Likewise. - * coff-alpha.c (alpha_ecoff_backend_data): Add value for - _bfd_coff_max_nscns. - * coff-mips.c (mips_ecoff_backend_data): Likewise. - * coff-rs6000.c (bfd_xcoff_backend_data) - (bfd_pmac_xcoff_backend_data): Likewise. - * coff64-rs6000.c (bfd_xcoff_backend_data) - (bfd_xcoff_aix5_backend_data): Likewise. - * targets.c (x86_64pe_bigobj_vec): Declare. - * configure.in (x86_64pe_bigobj_vec): New vector. - * configure: Regenerate. - * config.bfd: Add bigobj object format for Windows targets. - -gas/ - * config/tc-i386.c (use_big_obj): Declare. - (OPTION_MBIG_OBJ): Define. - (md_longopts): Add -mbig-obj option. - (md_parse_option): Handle it. - (md_show_usage): Display help for this option. - (i386_target_format): Use bigobj for x86-64 if -mbig-obj. - * doc/c-i386.texi: Document the option. - -gas/testsuite/ - * gas/pe/big-obj.d, gas/pe/big-obj.s: Add test. - * gas/pe/pe.exp: Add test. - -include/coff/ - * pe.h (struct external_ANON_OBJECT_HEADER_BIGOBJ): Declare. - (FILHSZ_BIGOBJ): Define. - (struct external_SYMBOL_EX): Declare. - (SYMENT_BIGOBJ, SYMESZ_BIGOBJ): Define. - (union external_AUX_SYMBOL_EX): Declare. - (AUXENT_BIGOBJ, AUXESZ_BIGOBJ): Define. - * internal.h (struct internal_filehdr): Change type - of f_nscns. ---- - bfd/ChangeLog | 33 ++++++ - bfd/coff-alpha.c | 2 +- - bfd/coff-mips.c | 2 +- - bfd/coff-rs6000.c | 2 + - bfd/coff-sh.c | 1 + - bfd/coff64-rs6000.c | 2 + - bfd/coffcode.h | 258 ++++++++++++++++++++++++++++++++++++++++- - bfd/config.bfd | 2 +- - bfd/configure | 1 + - bfd/configure.in | 1 + - bfd/libcoff.h | 4 + - bfd/pe-x86_64.c | 54 +++++++++ - bfd/peicode.h | 19 ++- - bfd/targets.c | 2 + - gas/ChangeLog | 10 ++ - gas/config/tc-i386.c | 24 +++- - gas/doc/c-i386.texi | 5 + - gas/testsuite/ChangeLog | 5 + - gas/testsuite/gas/pe/big-obj.d | 11 ++ - gas/testsuite/gas/pe/big-obj.s | 16 +++ - gas/testsuite/gas/pe/pe.exp | 8 ++ - include/coff/ChangeLog | 11 ++ - include/coff/internal.h | 2 +- - include/coff/pe.h | 79 +++++++++++++ - 24 files changed, 537 insertions(+), 17 deletions(-) - create mode 100644 gas/testsuite/gas/pe/big-obj.d - create mode 100644 gas/testsuite/gas/pe/big-obj.s - -diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c -index a7a977c..8c68b56 100644 ---- a/bfd/coff-alpha.c -+++ b/bfd/coff-alpha.c -@@ -2241,7 +2241,7 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data = - alpha_ecoff_swap_filehdr_out, alpha_ecoff_swap_aouthdr_out, - alpha_ecoff_swap_scnhdr_out, - FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, -- ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, -+ ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 32768, - alpha_ecoff_swap_filehdr_in, alpha_ecoff_swap_aouthdr_in, - alpha_ecoff_swap_scnhdr_in, NULL, - alpha_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook, -diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c -index 454f89a..3a30d83 100644 ---- a/bfd/coff-mips.c -+++ b/bfd/coff-mips.c -@@ -1254,7 +1254,7 @@ static const struct ecoff_backend_data mips_ecoff_backend_data = - mips_ecoff_swap_filehdr_out, mips_ecoff_swap_aouthdr_out, - mips_ecoff_swap_scnhdr_out, - FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, -- ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, -+ ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 32768, - mips_ecoff_swap_filehdr_in, mips_ecoff_swap_aouthdr_in, - mips_ecoff_swap_scnhdr_in, NULL, - mips_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook, -diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c -index 06ee721..d0b8eaf 100644 ---- a/bfd/coff-rs6000.c -+++ b/bfd/coff-rs6000.c -@@ -4105,6 +4105,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data = - 3, /* _bfd_coff_default_section_alignment_power */ - FALSE, /* _bfd_coff_force_symnames_in_strings */ - 2, /* _bfd_coff_debug_string_prefix_length */ -+ 32768, /* _bfd_coff_max_nscns */ - coff_swap_filehdr_in, - coff_swap_aouthdr_in, - coff_swap_scnhdr_in, -@@ -4285,6 +4286,7 @@ static const struct xcoff_backend_data_rec bfd_pmac_xcoff_backend_data = - 3, /* _bfd_coff_default_section_alignment_power */ - FALSE, /* _bfd_coff_force_symnames_in_strings */ - 2, /* _bfd_coff_debug_string_prefix_length */ -+ 32768, /* _bfd_coff_max_nscns */ - coff_swap_filehdr_in, - coff_swap_aouthdr_in, - coff_swap_scnhdr_in, -diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c -index aca2b8b..1bf3f21 100644 ---- a/bfd/coff-sh.c -+++ b/bfd/coff-sh.c -@@ -3090,6 +3090,7 @@ static bfd_coff_backend_data bfd_coff_small_swap_table = - #else - 2, - #endif -+ 32768, - coff_swap_filehdr_in, coff_swap_aouthdr_in, coff_swap_scnhdr_in, - coff_swap_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook, - coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, -diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c -index 4bc7ea8..d660e3a5 100644 ---- a/bfd/coff64-rs6000.c -+++ b/bfd/coff64-rs6000.c -@@ -2542,6 +2542,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data = - 3, /* _bfd_coff_default_section_alignment_power */ - TRUE, /* _bfd_coff_force_symnames_in_strings */ - 4, /* _bfd_coff_debug_string_prefix_length */ -+ 32768, /* _bfd_coff_max_nscns */ - coff_swap_filehdr_in, - coff_swap_aouthdr_in, - coff_swap_scnhdr_in, -@@ -2801,6 +2802,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data = - 3, /* _bfd_coff_default_section_alignment_power */ - TRUE, /* _bfd_coff_force_symnames_in_strings */ - 4, /* _bfd_coff_debug_string_prefix_length */ -+ 32768, /* _bfd_coff_max_nscns */ - coff_swap_filehdr_in, - coff_swap_aouthdr_in, - coff_swap_scnhdr_in, -diff --git a/bfd/coffcode.h b/bfd/coffcode.h -index 11e70a5..d6fe39f 100644 ---- a/bfd/coffcode.h -+++ b/bfd/coffcode.h -@@ -1393,6 +1393,7 @@ Special entry points for gdb to swap in coff symbol table parts: - . unsigned int _bfd_coff_default_section_alignment_power; - . bfd_boolean _bfd_coff_force_symnames_in_strings; - . unsigned int _bfd_coff_debug_string_prefix_length; -+. unsigned int _bfd_coff_max_nscns; - . - . void (*_bfd_coff_swap_filehdr_in) - . (bfd *, void *, void *); -@@ -1530,6 +1531,9 @@ Special entry points for gdb to swap in coff symbol table parts: - . ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable)) - .#define bfd_coff_default_section_alignment_power(abfd) \ - . (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) -+.#define bfd_coff_max_nscns(abfd) \ -+. (coff_backend_info (abfd)->_bfd_coff_max_nscns) -+. - .#define bfd_coff_swap_filehdr_in(abfd, i,o) \ - . ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) - . -@@ -3136,7 +3140,7 @@ coff_compute_section_file_positions (bfd * abfd) - asection *current; - file_ptr sofar = bfd_coff_filhsz (abfd); - bfd_boolean align_adjust; -- int target_index; -+ unsigned int target_index; - #ifdef ALIGN_SECTIONS_IN_FILE - asection *previous = NULL; - file_ptr old_sofar; -@@ -3304,7 +3308,7 @@ coff_compute_section_file_positions (bfd * abfd) - } - #endif /* ! COFF_IMAGE_WITH_PE */ - -- if (target_index >= 32768) -+ if (target_index >= bfd_coff_max_nscns (abfd)) - { - bfd_set_error (bfd_error_file_too_big); - (*_bfd_error_handler) -@@ -5497,6 +5501,7 @@ static bfd_coff_backend_data bfd_coff_std_swap_table ATTRIBUTE_UNUSED = - #else - 2, - #endif -+ 32768, - coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, - coff_SWAP_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook, - coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, -@@ -5537,6 +5542,7 @@ static bfd_coff_backend_data ticoff0_swap_table = - #else - 2, - #endif -+ 32768, - coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, - coff_SWAP_reloc_in, ticoff0_bad_format_hook, coff_set_arch_mach_hook, - coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, -@@ -5578,6 +5584,7 @@ static bfd_coff_backend_data ticoff1_swap_table = - #else - 2, - #endif -+ 32768, - coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, - coff_SWAP_reloc_in, ticoff1_bad_format_hook, coff_set_arch_mach_hook, - coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, -@@ -5591,6 +5598,253 @@ static bfd_coff_backend_data ticoff1_swap_table = - }; - #endif - -+#ifdef COFF_WITH_PE_BIGOBJ -+/* The UUID for bigobj files. */ -+ -+static const char header_bigobj_classid[16] = -+{ -+ 0xC7, 0xA1, 0xBA, 0xD1, -+ 0xEE, 0xBA, -+ 0xa9, 0x4b, -+ 0xAF, 0x20, -+ 0xFA, 0xF6, 0x6A, 0xA4, 0xDC, 0xB8 -+}; -+ -+/* Swap routines. */ -+ -+static void -+coff_bigobj_swap_filehdr_in (bfd * abfd, void * src, void * dst) -+{ -+ struct external_ANON_OBJECT_HEADER_BIGOBJ *filehdr_src = -+ (struct external_ANON_OBJECT_HEADER_BIGOBJ *) src; -+ struct internal_filehdr *filehdr_dst = (struct internal_filehdr *) dst; -+ -+ filehdr_dst->f_magic = H_GET_16 (abfd, filehdr_src->Machine); -+ filehdr_dst->f_nscns = H_GET_32 (abfd, filehdr_src->NumberOfSections); -+ filehdr_dst->f_timdat = H_GET_32 (abfd, filehdr_src->TimeDateStamp); -+ filehdr_dst->f_symptr = -+ GET_FILEHDR_SYMPTR (abfd, filehdr_src->PointerToSymbolTable); -+ filehdr_dst->f_nsyms = H_GET_32 (abfd, filehdr_src->NumberOfSymbols); -+ filehdr_dst->f_opthdr = 0; -+ filehdr_dst->f_flags = 0; -+ -+ /* Check other magic numbers. */ -+ if (H_GET_16 (abfd, filehdr_src->Sig1) != IMAGE_FILE_MACHINE_UNKNOWN -+ || H_GET_16 (abfd, filehdr_src->Sig2) != 0xffff -+ || H_GET_16 (abfd, filehdr_src->Version) != 2 -+ || memcmp (filehdr_src->ClassID, header_bigobj_classid, 16) != 0) -+ filehdr_dst->f_opthdr = 0xffff; -+ -+ /* Note that CLR metadata are ignored. */ -+} -+ -+static unsigned int -+coff_bigobj_swap_filehdr_out (bfd *abfd, void * in, void * out) -+{ -+ struct internal_filehdr *filehdr_in = (struct internal_filehdr *) in; -+ struct external_ANON_OBJECT_HEADER_BIGOBJ *filehdr_out = -+ (struct external_ANON_OBJECT_HEADER_BIGOBJ *) out; -+ -+ memset (filehdr_out, 0, sizeof (*filehdr_out)); -+ -+ H_PUT_16 (abfd, IMAGE_FILE_MACHINE_UNKNOWN, filehdr_out->Sig1); -+ H_PUT_16 (abfd, 0xffff, filehdr_out->Sig2); -+ H_PUT_16 (abfd, 2, filehdr_out->Version); -+ memcpy (filehdr_out->ClassID, header_bigobj_classid, 16); -+ H_PUT_16 (abfd, filehdr_in->f_magic, filehdr_out->Machine); -+ H_PUT_32 (abfd, filehdr_in->f_nscns, filehdr_out->NumberOfSections); -+ H_PUT_32 (abfd, filehdr_in->f_timdat, filehdr_out->TimeDateStamp); -+ PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr, -+ filehdr_out->PointerToSymbolTable); -+ H_PUT_32 (abfd, filehdr_in->f_nsyms, filehdr_out->NumberOfSymbols); -+ -+ return bfd_coff_filhsz (abfd); -+} -+ -+static void -+coff_bigobj_swap_sym_in (bfd * abfd, void * ext1, void * in1) -+{ -+ SYMENT_BIGOBJ *ext = (SYMENT_BIGOBJ *) ext1; -+ struct internal_syment *in = (struct internal_syment *) in1; -+ -+ if (ext->e.e_name[0] == 0) -+ { -+ in->_n._n_n._n_zeroes = 0; -+ in->_n._n_n._n_offset = H_GET_32 (abfd, ext->e.e.e_offset); -+ } -+ else -+ { -+#if SYMNMLEN != E_SYMNMLEN -+#error we need to cope with truncating or extending SYMNMLEN -+#else -+ memcpy (in->_n._n_name, ext->e.e_name, SYMNMLEN); -+#endif -+ } -+ -+ in->n_value = H_GET_32 (abfd, ext->e_value); -+ in->n_scnum = H_GET_32 (abfd, ext->e_scnum); -+ in->n_type = H_GET_16 (abfd, ext->e_type); -+ in->n_sclass = H_GET_8 (abfd, ext->e_sclass); -+ in->n_numaux = H_GET_8 (abfd, ext->e_numaux); -+} -+ -+static unsigned int -+coff_bigobj_swap_sym_out (bfd * abfd, void * inp, void * extp) -+{ -+ struct internal_syment *in = (struct internal_syment *) inp; -+ SYMENT_BIGOBJ *ext = (SYMENT_BIGOBJ *) extp; -+ -+ if (in->_n._n_name[0] == 0) -+ { -+ H_PUT_32 (abfd, 0, ext->e.e.e_zeroes); -+ H_PUT_32 (abfd, in->_n._n_n._n_offset, ext->e.e.e_offset); -+ } -+ else -+ { -+#if SYMNMLEN != E_SYMNMLEN -+#error we need to cope with truncating or extending SYMNMLEN -+#else -+ memcpy (ext->e.e_name, in->_n._n_name, SYMNMLEN); -+#endif -+ } -+ -+ H_PUT_32 (abfd, in->n_value, ext->e_value); -+ H_PUT_32 (abfd, in->n_scnum, ext->e_scnum); -+ -+ H_PUT_16 (abfd, in->n_type, ext->e_type); -+ H_PUT_8 (abfd, in->n_sclass, ext->e_sclass); -+ H_PUT_8 (abfd, in->n_numaux, ext->e_numaux); -+ -+ return SYMESZ_BIGOBJ; -+} -+ -+static void -+coff_bigobj_swap_aux_in (bfd *abfd, -+ void * ext1, -+ int type, -+ int in_class, -+ int indx, -+ int numaux, -+ void * in1) -+{ -+ AUXENT_BIGOBJ *ext = (AUXENT_BIGOBJ *) ext1; -+ union internal_auxent *in = (union internal_auxent *) in1; -+ -+ switch (in_class) -+ { -+ case C_FILE: -+ if (numaux > 1) -+ { -+ if (indx == 0) -+ memcpy (in->x_file.x_fname, ext->File.Name, -+ numaux * sizeof (AUXENT_BIGOBJ)); -+ } -+ else -+ memcpy (in->x_file.x_fname, ext->File.Name, sizeof (ext->File.Name)); -+ break; -+ -+ case C_STAT: -+ case C_LEAFSTAT: -+ case C_HIDDEN: -+ if (type == T_NULL) -+ { -+ in->x_scn.x_scnlen = H_GET_32 (abfd, ext->Section.Length); -+ in->x_scn.x_nreloc = -+ H_GET_16 (abfd, ext->Section.NumberOfRelocations); -+ in->x_scn.x_nlinno = -+ H_GET_16 (abfd, ext->Section.NumberOfLinenumbers); -+ in->x_scn.x_checksum = H_GET_32 (abfd, ext->Section.Checksum); -+ in->x_scn.x_associated = H_GET_16 (abfd, ext->Section.Number) -+ | (H_GET_16 (abfd, ext->Section.HighNumber) << 16); -+ in->x_scn.x_comdat = H_GET_8 (abfd, ext->Section.Selection); -+ return; -+ } -+ break; -+ -+ default: -+ in->x_sym.x_tagndx.l = H_GET_32 (abfd, ext->Sym.WeakDefaultSymIndex); -+ /* Characteristics is ignored. */ -+ break; -+ } -+} -+ -+static unsigned int -+coff_bigobj_swap_aux_out (bfd * abfd, -+ void * inp, -+ int type, -+ int in_class, -+ int indx ATTRIBUTE_UNUSED, -+ int numaux ATTRIBUTE_UNUSED, -+ void * extp) -+{ -+ union internal_auxent * in = (union internal_auxent *) inp; -+ AUXENT_BIGOBJ *ext = (AUXENT_BIGOBJ *) extp; -+ -+ memset (ext, 0, AUXESZ); -+ -+ switch (in_class) -+ { -+ case C_FILE: -+ memcpy (ext->File.Name, in->x_file.x_fname, sizeof (ext->File.Name)); -+ -+ return AUXESZ; -+ -+ case C_STAT: -+ case C_LEAFSTAT: -+ case C_HIDDEN: -+ if (type == T_NULL) -+ { -+ H_PUT_32 (abfd, in->x_scn.x_scnlen, ext->Section.Length); -+ H_PUT_16 (abfd, in->x_scn.x_nreloc, -+ ext->Section.NumberOfRelocations); -+ H_PUT_16 (abfd, in->x_scn.x_nlinno, -+ ext->Section.NumberOfLinenumbers); -+ H_PUT_32 (abfd, in->x_scn.x_checksum, ext->Section.Checksum); -+ H_PUT_16 (abfd, in->x_scn.x_associated & 0xffff, -+ ext->Section.Number); -+ H_PUT_16 (abfd, (in->x_scn.x_associated >> 16), -+ ext->Section.HighNumber); -+ H_PUT_8 (abfd, in->x_scn.x_comdat, ext->Section.Selection); -+ return AUXESZ; -+ } -+ break; -+ } -+ -+ H_PUT_32 (abfd, in->x_sym.x_tagndx.l, ext->Sym.WeakDefaultSymIndex); -+ H_PUT_32 (abfd, 1, ext->Sym.WeakSearchType); -+ -+ return AUXESZ; -+} -+ -+static bfd_coff_backend_data bigobj_swap_table = -+{ -+ coff_bigobj_swap_aux_in, coff_bigobj_swap_sym_in, coff_SWAP_lineno_in, -+ coff_bigobj_swap_aux_out, coff_bigobj_swap_sym_out, -+ coff_SWAP_lineno_out, coff_SWAP_reloc_out, -+ coff_bigobj_swap_filehdr_out, coff_SWAP_aouthdr_out, -+ coff_SWAP_scnhdr_out, -+ FILHSZ_BIGOBJ, AOUTSZ, SCNHSZ, SYMESZ_BIGOBJ, AUXESZ_BIGOBJ, -+ RELSZ, LINESZ, FILNMLEN_BIGOBJ, -+ TRUE, -+ COFF_DEFAULT_LONG_SECTION_NAMES, -+ COFF_DEFAULT_SECTION_ALIGNMENT_POWER, -+ FALSE, -+ 2, -+ 1U << 31, -+ coff_bigobj_swap_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, -+ coff_SWAP_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook, -+ coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, -+ coff_slurp_symbol_table, symname_in_debug_hook, coff_pointerize_aux_hook, -+ coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate, -+ coff_classify_symbol, coff_compute_section_file_positions, -+ coff_start_final_link, coff_relocate_section, coff_rtype_to_howto, -+ coff_adjust_symndx, coff_link_add_one_symbol, -+ coff_link_output_has_begun, coff_final_link_postscript, -+ bfd_pe_print_pdata /* huh */ -+}; -+ -+#endif /* COFF_WITH_PE_BIGOBJ */ -+ - #ifndef coff_close_and_cleanup - #define coff_close_and_cleanup _bfd_generic_close_and_cleanup - #endif -diff --git a/bfd/config.bfd b/bfd/config.bfd -index 59b9f64..147954a 100644 ---- a/bfd/config.bfd -+++ b/bfd/config.bfd -@@ -676,7 +676,7 @@ case "${targ}" in - ;; - x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin) - targ_defvec=x86_64pe_vec -- targ_selvecs="x86_64pe_vec x86_64pei_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386pe_vec i386pei_vec bfd_elf32_i386_vec" -+ targ_selvecs="x86_64pe_vec x86_64pei_vec x86_64pe_bigobj_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386pe_vec i386pei_vec bfd_elf32_i386_vec" - want64=true - targ_underscore=no - ;; -diff --git a/bfd/configure b/bfd/configure -index bef7295..fbf5f44 100755 ---- a/bfd/configure -+++ b/bfd/configure -@@ -15453,6 +15453,7 @@ do - i386pei_vec) tb="$tb pei-i386.lo peigen.lo cofflink.lo" ;; - x86_64pe_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; - x86_64pei_vec) tb="$tb pei-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; -+ x86_64pe_bigobj_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; - i860coff_vec) tb="$tb coff-i860.lo cofflink.lo" ;; - icoff_big_vec) tb="$tb coff-i960.lo cofflink.lo" ;; - icoff_little_vec) tb="$tb coff-i960.lo cofflink.lo" ;; -diff --git a/bfd/configure.in b/bfd/configure.in -index da8c6dc..f1ec965 100644 ---- a/bfd/configure.in -+++ b/bfd/configure.in -@@ -942,6 +942,7 @@ do - i386pei_vec) tb="$tb pei-i386.lo peigen.lo cofflink.lo" ;; - x86_64pe_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; - x86_64pei_vec) tb="$tb pei-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; -+ x86_64pe_bigobj_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;; - i860coff_vec) tb="$tb coff-i860.lo cofflink.lo" ;; - icoff_big_vec) tb="$tb coff-i960.lo cofflink.lo" ;; - icoff_little_vec) tb="$tb coff-i960.lo cofflink.lo" ;; -diff --git a/bfd/libcoff.h b/bfd/libcoff.h -index b5a9852..36c9829 100644 ---- a/bfd/libcoff.h -+++ b/bfd/libcoff.h -@@ -736,6 +736,7 @@ typedef struct - unsigned int _bfd_coff_default_section_alignment_power; - bfd_boolean _bfd_coff_force_symnames_in_strings; - unsigned int _bfd_coff_debug_string_prefix_length; -+ unsigned int _bfd_coff_max_nscns; - - void (*_bfd_coff_swap_filehdr_in) - (bfd *, void *, void *); -@@ -873,6 +874,9 @@ typedef struct - ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable)) - #define bfd_coff_default_section_alignment_power(abfd) \ - (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) -+#define bfd_coff_max_nscns(abfd) \ -+ (coff_backend_info (abfd)->_bfd_coff_max_nscns) -+ - #define bfd_coff_swap_filehdr_in(abfd, i,o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) - -diff --git a/bfd/pe-x86_64.c b/bfd/pe-x86_64.c -index 26bb99d..16b13ec 100644 ---- a/bfd/pe-x86_64.c -+++ b/bfd/pe-x86_64.c -@@ -27,6 +27,7 @@ - #define TARGET_NAME "pe-x86-64" - #define COFF_WITH_PE - #define COFF_WITH_pex64 -+#define COFF_WITH_PE_BIGOBJ - #define PCRELOFFSET TRUE - #if defined (USE_MINGW64_LEADING_UNDERSCORES) - #define TARGET_UNDERSCORE '_' -@@ -58,3 +59,56 @@ - COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 } - - #include "coff-x86_64.c" -+ -+/* Entry for big object files. */ -+ -+const bfd_target -+x86_64pe_bigobj_vec = -+{ -+ "pe-bigobj-x86-64", /* Name. */ -+ bfd_target_coff_flavour, -+ BFD_ENDIAN_LITTLE, /* Data byte order is little. */ -+ BFD_ENDIAN_LITTLE, /* Header byte order is little. */ -+ -+ (HAS_RELOC | EXEC_P | /* Object flags. */ -+ HAS_LINENO | HAS_DEBUG | -+ HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS), -+ -+ (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC /* Section flags. */ -+ | SEC_LINK_ONCE | SEC_LINK_DUPLICATES | SEC_READONLY | SEC_DEBUGGING -+ | SEC_CODE | SEC_DATA | SEC_EXCLUDE ), -+ -+ TARGET_UNDERSCORE, /* Leading underscore. */ -+ '/', /* Ar_pad_char. */ -+ 15, /* Ar_max_namelen. */ -+ 0, /* match priority. */ -+ -+ bfd_getl64, bfd_getl_signed_64, bfd_putl64, -+ bfd_getl32, bfd_getl_signed_32, bfd_putl32, -+ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Data. */ -+ bfd_getl64, bfd_getl_signed_64, bfd_putl64, -+ bfd_getl32, bfd_getl_signed_32, bfd_putl32, -+ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Hdrs. */ -+ -+ /* Note that we allow an object file to be treated as a core file as well. */ -+ { _bfd_dummy_target, amd64coff_object_p, /* BFD_check_format. */ -+ bfd_generic_archive_p, amd64coff_object_p }, -+ { bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format. */ -+ bfd_false }, -+ { bfd_false, coff_write_object_contents, /* bfd_write_contents. */ -+ _bfd_write_archive_contents, bfd_false }, -+ -+ BFD_JUMP_TABLE_GENERIC (coff), -+ BFD_JUMP_TABLE_COPY (coff), -+ BFD_JUMP_TABLE_CORE (_bfd_nocore), -+ BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), -+ BFD_JUMP_TABLE_SYMBOLS (coff), -+ BFD_JUMP_TABLE_RELOCS (coff), -+ BFD_JUMP_TABLE_WRITE (coff), -+ BFD_JUMP_TABLE_LINK (coff), -+ BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), -+ -+ NULL, -+ -+ &bigobj_swap_table -+}; -diff --git a/bfd/peicode.h b/bfd/peicode.h -index 8fd689c..157879b 100644 ---- a/bfd/peicode.h -+++ b/bfd/peicode.h -@@ -1077,7 +1077,7 @@ pe_ILF_build_a_bfd (bfd * abfd, - static const bfd_target * - pe_ILF_object_p (bfd * abfd) - { -- bfd_byte buffer[16]; -+ bfd_byte buffer[14]; - bfd_byte * ptr; - char * symbol_name; - char * source_dll; -@@ -1087,17 +1087,13 @@ pe_ILF_object_p (bfd * abfd) - unsigned int types; - unsigned int magic; - -- /* Upon entry the first four buyes of the ILF header have -+ /* Upon entry the first six bytes of the ILF header have - already been read. Now read the rest of the header. */ -- if (bfd_bread (buffer, (bfd_size_type) 16, abfd) != 16) -+ if (bfd_bread (buffer, (bfd_size_type) 14, abfd) != 14) - return NULL; - - ptr = buffer; - -- /* We do not bother to check the version number. -- version = H_GET_16 (abfd, ptr); */ -- ptr += 2; -- - machine = H_GET_16 (abfd, ptr); - ptr += 2; - -@@ -1251,7 +1247,7 @@ pe_ILF_object_p (bfd * abfd) - static const bfd_target * - pe_bfd_object_p (bfd * abfd) - { -- bfd_byte buffer[4]; -+ bfd_byte buffer[6]; - struct external_PEI_DOS_hdr dos_hdr; - struct external_PEI_IMAGE_hdr image_hdr; - struct internal_filehdr internal_f; -@@ -1260,15 +1256,18 @@ pe_bfd_object_p (bfd * abfd) - file_ptr offset; - - /* Detect if this a Microsoft Import Library Format element. */ -+ /* First read the beginning of the header. */ - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 -- || bfd_bread (buffer, (bfd_size_type) 4, abfd) != 4) -+ || bfd_bread (buffer, (bfd_size_type) 6, abfd) != 6) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - -- if (H_GET_32 (abfd, buffer) == 0xffff0000) -+ /* Then check the magic and the version (only 0 is supported). */ -+ if (H_GET_32 (abfd, buffer) == 0xffff0000 -+ && H_GET_16 (abfd, buffer + 4) == 0) - return pe_ILF_object_p (abfd); - - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 -diff --git a/bfd/targets.c b/bfd/targets.c -index f502eec..058ab77 100644 ---- a/bfd/targets.c -+++ b/bfd/targets.c -@@ -896,6 +896,7 @@ extern const bfd_target w65_vec; - extern const bfd_target we32kcoff_vec; - extern const bfd_target x86_64pe_vec; - extern const bfd_target x86_64pei_vec; -+extern const bfd_target x86_64pe_bigobj_vec; - extern const bfd_target x86_64coff_vec; - extern const bfd_target z80coff_vec; - extern const bfd_target z8kcoff_vec; -@@ -1231,6 +1232,7 @@ static const bfd_target * const _bfd_target_vector[] = - &x86_64coff_vec, - &x86_64pe_vec, - &x86_64pei_vec, -+ &x86_64pe_bigobj_vec, - #endif - &i860coff_vec, - &icoff_big_vec, -diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c -index f6283a6..734935a 100644 ---- a/gas/config/tc-i386.c -+++ b/gas/config/tc-i386.c -@@ -513,6 +513,11 @@ enum x86_elf_abi - static enum x86_elf_abi x86_elf_abi = I386_ABI; - #endif - -+#if defined (TE_PE) || defined (TE_PEP) -+/* Use big object file format. */ -+static int use_big_obj = 0; -+#endif -+ - /* 1 for intel syntax, - 0 if att syntax. */ - static int intel_syntax = 0; -@@ -9497,6 +9502,7 @@ const char *md_shortopts = "qn"; - #define OPTION_MADD_BND_PREFIX (OPTION_MD_BASE + 15) - #define OPTION_MEVEXLIG (OPTION_MD_BASE + 16) - #define OPTION_MEVEXWIG (OPTION_MD_BASE + 17) -+#define OPTION_MBIG_OBJ (OPTION_MD_BASE + 18) - - struct option md_longopts[] = - { -@@ -9523,6 +9529,9 @@ struct option md_longopts[] = - {"madd-bnd-prefix", no_argument, NULL, OPTION_MADD_BND_PREFIX}, - {"mevexlig", required_argument, NULL, OPTION_MEVEXLIG}, - {"mevexwig", required_argument, NULL, OPTION_MEVEXWIG}, -+# if defined (TE_PE) || defined (TE_PEP) -+ {"mbig-obj", no_argument, NULL, OPTION_MBIG_OBJ}, -+#endif - {NULL, no_argument, NULL, 0} - }; - size_t md_longopts_size = sizeof (md_longopts); -@@ -9804,6 +9813,12 @@ md_parse_option (int c, char *arg) - as_fatal (_("invalid -mevexwig= option: `%s'"), arg); - break; - -+# if defined (TE_PE) || defined (TE_PEP) -+ case OPTION_MBIG_OBJ: -+ use_big_obj = 1; -+ break; -+#endif -+ - default: - return 0; - } -@@ -9956,6 +9971,10 @@ md_show_usage (FILE *stream) - -mold-gcc support old (<= 2.8.1) versions of gcc\n")); - fprintf (stream, _("\ - -madd-bnd-prefix add BND prefix for all valid branches\n")); -+# if defined (TE_PE) || defined (TE_PEP) -+ fprintf (stream, _("\ -+ -mbig-obj generate big object files\n")); -+#endif - } - - #if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \ -@@ -9994,7 +10013,10 @@ i386_target_format (void) - #if defined (OBJ_MAYBE_COFF) || defined (OBJ_COFF) - # if defined (TE_PE) || defined (TE_PEP) - case bfd_target_coff_flavour: -- return flag_code == CODE_64BIT ? "pe-x86-64" : "pe-i386"; -+ if (flag_code == CODE_64BIT) -+ return use_big_obj ? "pe-bigobj-x86-64" : "pe-x86-64"; -+ else -+ return "pe-i386"; - # elif defined (TE_GO32) - case bfd_target_coff_flavour: - return "coff-go32"; -diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi -index 18bd96a..1952cee 100644 ---- a/gas/doc/c-i386.texi -+++ b/gas/doc/c-i386.texi -@@ -283,6 +283,11 @@ The @code{.att_syntax} and @code{.intel_syntax} directives will take precedent. - This option forces the assembler to add BND prefix to all branches, even - if such prefix was not explicitly specified in the source code. - -+@cindex @samp{-mbig-obj} option, x86-64 -+@item -mbig-obj -+On x86-64 PE/COFF target this option forces the use of big object file -+format, which allows more than 32768 sections. -+ - @end table - @c man end - -diff --git a/gas/testsuite/gas/pe/big-obj.d b/gas/testsuite/gas/pe/big-obj.d -new file mode 100644 -index 0000000..95ff1d8 ---- /dev/null -+++ b/gas/testsuite/gas/pe/big-obj.d -@@ -0,0 +1,11 @@ -+#as: -mbig-obj -+#objdump: -h -+#name: PE x64 big obj -+ -+.*: *file format pe-bigobj-.* -+ -+Sections: -+#... -+5000. \.data\$a49999 .* -+ CONTENTS, ALLOC, LOAD, DATA -+ -diff --git a/gas/testsuite/gas/pe/big-obj.s b/gas/testsuite/gas/pe/big-obj.s -new file mode 100644 -index 0000000..07edc91 ---- /dev/null -+++ b/gas/testsuite/gas/pe/big-obj.s -@@ -0,0 +1,16 @@ -+ .file "big-obj.s" -+ -+ .irp n,0,1,2,3,4 -+ .irp m,0,1,2,3,4,5,6,7,8,9 -+ .irp c,0,1,2,3,4,5,6,7,8,9 -+ .irp d,0,1,2,3,4,5,6,7,8,9 -+ .irp u,0,1,2,3,4,5,6,7,8,9 -+ .globl a\n\m\c\d\u -+ .section .data$a\n\m\c\d\u,"w" -+a\n\m\c\d\u : -+ .byte 1 -+ .endr -+ .endr -+ .endr -+ .endr -+ .endr -diff --git a/gas/testsuite/gas/pe/pe.exp b/gas/testsuite/gas/pe/pe.exp -index 0b70ee6..c1c5f49 100644 ---- a/gas/testsuite/gas/pe/pe.exp -+++ b/gas/testsuite/gas/pe/pe.exp -@@ -48,3 +48,11 @@ if ([istarget "x86_64-*-mingw*"]) then { - run_dump_test "peseh-x64-5" - run_dump_test "peseh-x64-6" - } -+ -+# Big obj -+ -+ -+if ([istarget "x86_64-*-mingw*"]) then { -+ # Currently only supported on x86_64 -+ run_dump_test "big-obj" -+} -diff --git a/include/coff/internal.h b/include/coff/internal.h -index 4f99f2f..b34e5c6 100644 ---- a/include/coff/internal.h -+++ b/include/coff/internal.h -@@ -73,7 +73,7 @@ struct internal_filehdr - - /* Standard coff internal info. */ - unsigned short f_magic; /* magic number */ -- unsigned short f_nscns; /* number of sections */ -+ unsigned int f_nscns; /* number of sections */ - long f_timdat; /* time & date stamp */ - bfd_vma f_symptr; /* file pointer to symtab */ - long f_nsyms; /* number of symtab entries */ -diff --git a/include/coff/pe.h b/include/coff/pe.h -index 0093398..3166531 100644 ---- a/include/coff/pe.h -+++ b/include/coff/pe.h -@@ -358,6 +358,85 @@ typedef struct - #define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 - #define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 - -+/* Bigobj header. */ -+struct external_ANON_OBJECT_HEADER_BIGOBJ -+{ -+ /* ANON_OBJECT_HEADER_V2 header. */ -+ char Sig1[2]; -+ char Sig2[2]; -+ char Version[2]; -+ char Machine[2]; -+ char TimeDateStamp[4]; -+ char ClassID[16]; -+ char SizeOfData[4]; -+ char Flags[4]; -+ char MetaDataSize[4]; -+ char MetaDataOffset[4]; -+ -+ /* BIGOBJ specific. */ -+ char NumberOfSections[4]; -+ char PointerToSymbolTable[4]; -+ char NumberOfSymbols[4]; -+}; -+ -+#define FILHSZ_BIGOBJ (14 * 4) -+ -+struct external_SYMBOL_EX -+{ -+ union -+ { -+ char e_name[E_SYMNMLEN]; -+ -+ struct -+ { -+ char e_zeroes[4]; -+ char e_offset[4]; -+ } e; -+ } e; -+ -+ char e_value[4]; -+ char e_scnum[4]; -+ char e_type[2]; -+ char e_sclass[1]; -+ char e_numaux[1]; -+} ATTRIBUTE_PACKED ; -+ -+#define SYMENT_BIGOBJ struct external_SYMBOL_EX -+#define SYMESZ_BIGOBJ 20 -+ -+#define FILNMLEN_BIGOBJ 20 -+ -+union external_AUX_SYMBOL_EX -+{ -+ struct -+ { -+ char WeakDefaultSymIndex[4]; -+ char WeakSearchType[4]; -+ char rgbReserved[12]; -+ } Sym; -+ -+ struct -+ { -+ char Name[FILNMLEN_BIGOBJ]; -+ } File; -+ -+ struct -+ { -+ char Length[4]; /* section length */ -+ char NumberOfRelocations[2]; /* # relocation entries */ -+ char NumberOfLinenumbers[2]; /* # line numbers */ -+ char Checksum[4]; /* section COMDAT checksum */ -+ char Number[2]; /* COMDAT associated section index */ -+ char Selection[1]; /* COMDAT selection number */ -+ char bReserved[1]; -+ char HighNumber[2]; /* High bits of COMDAT associated sec. */ -+ char rgbReserved[2]; -+ } Section; -+} ATTRIBUTE_PACKED; -+ -+#define AUXENT_BIGOBJ union external_AUX_SYMBOL_EX -+#define AUXESZ_BIGOBJ 20 -+ - /* .pdata/.xdata defines and structures for x64 PE+ for exception handling. */ - - /* .pdata in exception directory. */ --- -1.8.5.5 - diff --git a/mingw-w64-binutils-git/PKGBUILD b/mingw-w64-binutils-git/PKGBUILD index 1a02814f8e..934b25a149 100644 --- a/mingw-w64-binutils-git/PKGBUILD +++ b/mingw-w64-binutils-git/PKGBUILD @@ -2,11 +2,11 @@ # Contributor: Ray Donnelly _realname=binutils -_base_ver=2.24 +_base_ver=2.25 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") # replaces="${MINGW_PACKAGE_PREFIX}-${_realname}=${_base_ver}" -pkgver=2.24.78632.4ff5ed1 -pkgrel=1 +pkgver=2.25.r81689.f30b244 +pkgrel=2 provides=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgdesc="A set of programs to assemble and manipulate binary and object files" @@ -31,14 +31,8 @@ source=("${_realname}"::"git://sourceware.org/git/binutils-gdb.git#branch=${_rea 0013-dont-link-gas-to-libiberty.mingw.patch 0014-dont-link-binutils-to-libiberty.mingw.patch 0015-dont-link-ld-to-libiberty.mingw.patch - 0016-fix-w32-lto-bug-13557.all.patch 0017-fix-iconv-linking.all.patch - 0100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch - 0110-binutils-mingw-gnu-print.patch - 0120-This-fixes-a-compile-time-warning.patch - 0130-Bug-16858-weak-external-reference-has-wrong-value.patch - 0140-make-relocbase-unsigned.patch - 0150-add-bigobj-format.patch) + 0110-binutils-mingw-gnu-print.patch) md5sums=('SKIP' 'f3be04ed70b9d352a2c0e2a80b0706b2' '2cc89a3c09cafa30c91ac890d3c68932' @@ -51,18 +45,12 @@ md5sums=('SKIP' '1d439afee5cbcc952719ae40021e6cec' '6d3610000f041f66ada0a956101faeec' '33b5eda35272e88b1c308e66484db958' - 'c89eb68fa2ea578f5c0fb6ddaaca7d48' '66eeb2af697f5f1d0f372185aa2fb737' - 'cc15baf6f7939980c7f406416736baa8' - '6e8b708d437bccbfa46ba56421dabb40' - '10fcfbca65c6939840dd0f4a575b8a99' - '7b0d532ba0419ed2bdae746b1a4f42b6' - '0513245c067162fa9f79b7e0befd201d' - '62c646e3f8c4cb08d0916ab34faa8254') + '1c34f5ee0ee5d5008a617e1638362d43') pkgver() { cd "$srcdir/$_realname" - printf "%s.%s.%s" "${_base_ver}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + printf "%s.r%s.%s" "${_base_ver}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { @@ -79,19 +67,10 @@ prepare() { #patch -p1 -i "${srcdir}"/0013-dont-link-gas-to-libiberty.mingw.patch #patch -p1 -i "${srcdir}"/0014-dont-link-binutils-to-libiberty.mingw.patch #patch -p1 -i "${srcdir}"/0015-dont-link-ld-to-libiberty.mingw.patch - patch -p1 -i "${srcdir}"/0016-fix-w32-lto-bug-13557.all.patch #patch -p1 -i "${srcdir}"/0017-fix-iconv-linking.all.patch - patch -p1 -i "${srcdir}"/0100-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch patch -p1 -i "${srcdir}"/0110-binutils-mingw-gnu-print.patch - patch -p1 -i "${srcdir}"/0130-Bug-16858-weak-external-reference-has-wrong-value.patch - -# I ran into a bug building Qt5Webkitd.dll -# "final link failed: File truncated" -# was due to a negative offset ending up in rel_filepos in _bfd_coff_final_link, this -# attempts to double the amount of room we have. - patch -p1 -i "${srcdir}"/0140-make-relocbase-unsigned.patch - - patch -p1 -i "${srcdir}"/0150-add-bigobj-format.patch + + rm -rf gdb readline libdecnumber sim } build() { @@ -155,4 +134,6 @@ package() { # Add some useful headers #install -m644 ${srcdir}/${_realname}-${pkgver}/include/libiberty.h ${pkgdir}${MINGW_PREFIX}/include #install -m644 ${srcdir}/${_realname}-${pkgver}/include/demangle.h ${pkgdir}${MINGW_PREFIX}/include + + find ${pkgdir}${MINGW_PREFIX}/share -type f -iname "opcodes.mo" -o -iname "bfd.mo" | xargs -rtl1 rm } From fbb2df5f81d3d983e006ffb97b56f34d6a890d60 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 26 Dec 2014 10:01:33 +0300 Subject: [PATCH 0218/2060] binutils: Build gold linker. --- .../0001-enable-gold-on.mingw32.patch | 25 ++++ .../0002-check-for-unusual-file-harder.patch | 109 ++++++++++++++++ .../0003-enable-shared-bfd.all.patch | 11 ++ ...-link-to-libibtl-and-libiberty.mingw.patch | 48 +++++++ .../0004-libiberty-la.mingw.patch | 44 +++++++ .../0005-shared-opcodes.mingw.patch | 58 +++++++++ .../0008-fix-libiberty-makefile.mingw.patch | 43 ++++++ .../0009-fix-libiberty-configure.mingw.patch | 82 ++++++++++++ ...013-dont-link-gas-to-libiberty.mingw.patch | 32 +++++ ...ont-link-binutils-to-libiberty.mingw.patch | 122 ++++++++++++++++++ ...0015-dont-link-ld-to-libiberty.mingw.patch | 69 ++++++++++ .../0017-fix-iconv-linking.all.patch | 54 ++++++++ ...ch => 0110-binutils-mingw-gnu-print.patch} | 57 ++++++++ ...10-This-fixes-a-compile-time-warning.patch | 61 --------- mingw-w64-binutils/PKGBUILD | 59 +++++++-- 15 files changed, 801 insertions(+), 73 deletions(-) create mode 100644 mingw-w64-binutils/0001-enable-gold-on.mingw32.patch create mode 100644 mingw-w64-binutils/0002-check-for-unusual-file-harder.patch create mode 100644 mingw-w64-binutils/0003-enable-shared-bfd.all.patch create mode 100644 mingw-w64-binutils/0003-link-to-libibtl-and-libiberty.mingw.patch create mode 100644 mingw-w64-binutils/0004-libiberty-la.mingw.patch create mode 100644 mingw-w64-binutils/0005-shared-opcodes.mingw.patch create mode 100644 mingw-w64-binutils/0008-fix-libiberty-makefile.mingw.patch create mode 100644 mingw-w64-binutils/0009-fix-libiberty-configure.mingw.patch create mode 100644 mingw-w64-binutils/0013-dont-link-gas-to-libiberty.mingw.patch create mode 100644 mingw-w64-binutils/0014-dont-link-binutils-to-libiberty.mingw.patch create mode 100644 mingw-w64-binutils/0015-dont-link-ld-to-libiberty.mingw.patch create mode 100644 mingw-w64-binutils/0017-fix-iconv-linking.all.patch rename mingw-w64-binutils/{030-binutils-mingw-gnu-print.patch => 0110-binutils-mingw-gnu-print.patch} (66%) delete mode 100644 mingw-w64-binutils/110-This-fixes-a-compile-time-warning.patch diff --git a/mingw-w64-binutils/0001-enable-gold-on.mingw32.patch b/mingw-w64-binutils/0001-enable-gold-on.mingw32.patch new file mode 100644 index 0000000000..a6fcd420a0 --- /dev/null +++ b/mingw-w64-binutils/0001-enable-gold-on.mingw32.patch @@ -0,0 +1,25 @@ +--- binutils-2.23.1/configure.orig 2013-03-24 23:12:45 +0400 ++++ binutils-2.23.1/configure 2013-03-24 23:30:06 +0400 +@@ -2865,6 +2865,7 @@ + yes|default) + # Check for ELF target. + is_elf=no ++ is_pe=no + case "${target}" in + *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \ + | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \ +@@ -2876,10 +2877,12 @@ + *) + is_elf=yes + ;; +- esac ++ esac;; ++ *-*-mingw*) ++ is_pe=yes;; + esac + +- if test "$is_elf" = "yes"; then ++ if test "$is_elf" = "yes" -o "$is_pe" = "yes"; then + # Check for target supported by gold. + case "${target}" in + i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*) diff --git a/mingw-w64-binutils/0002-check-for-unusual-file-harder.patch b/mingw-w64-binutils/0002-check-for-unusual-file-harder.patch new file mode 100644 index 0000000000..81524f3a41 --- /dev/null +++ b/mingw-w64-binutils/0002-check-for-unusual-file-harder.patch @@ -0,0 +1,109 @@ +Configure scripts tend to do things like this: +nm -B /dev/null +which, on Windows, turn into: +nm -B nul +and nul here acts like a normal file with 0 size as far as stat() is concerned. +Check harder for the file in question being unusual (isatty() does see that). +And since configure script expects /dev/nul, do report it that way. + +--- binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/bucomm.c.orig 2014-04-27 18:05:31.328777900 +0400 ++++ binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/bucomm.c 2014-05-02 08:54:46.651964974 +0400 +@@ -570,7 +570,15 @@ + get_file_size (const char * file_name) + { + struct stat statbuf; +- ++ int f, t; ++ t = -1; ++ f = open (file_name, O_RDONLY | O_BINARY); ++ if (f != 0) ++ { ++ t = isatty (f); ++ close (f); ++ } ++ + if (stat (file_name, &statbuf) < 0) + { + if (errno == ENOENT) +@@ -579,8 +587,15 @@ + non_fatal (_("Warning: could not locate '%s'. reason: %s"), + file_name, strerror (errno)); + } +- else if (! S_ISREG (statbuf.st_mode)) +- non_fatal (_("Warning: '%s' is not an ordinary file"), file_name); ++ else if (! S_ISREG (statbuf.st_mode) || t > 0) ++ { ++#ifdef _WIN32 ++ /* libtool passes /dev/null and checks for /dev/null in the output */ ++ if (stricmp (file_name, "nul") == 0) ++ file_name = "/dev/null"; ++#endif ++ non_fatal (_("Warning: '%s' is not an ordinary file"), file_name); ++ } + else if (statbuf.st_size < 0) + non_fatal (_("Warning: '%s' has negative size, probably it is too large"), + file_name); +--- binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/elfedit.c.orig 2014-04-27 18:05:31.340778000 +0400 ++++ binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/elfedit.c 2014-05-02 08:55:09.433461424 +0400 +@@ -441,6 +441,14 @@ + check_file (const char *file_name, struct stat *statbuf_p) + { + struct stat statbuf; ++ int f, t; ++ t = -1; ++ f = open (file_name, O_RDONLY | O_BINARY); ++ if (f != 0) ++ { ++ t = isatty (f); ++ close (f); ++ } + + if (statbuf_p == NULL) + statbuf_p = &statbuf; +@@ -455,8 +463,13 @@ + return 1; + } + +- if (! S_ISREG (statbuf_p->st_mode)) ++ if (! S_ISREG (statbuf_p->st_mode) || t > 0) + { ++#ifdef _WIN32 ++ /* libtool passes /dev/null and checks for /dev/null in the output */ ++ if (stricmp (file_name, "nul") == 0) ++ file_name = "/dev/null"; ++#endif + error (_("'%s' is not an ordinary file\n"), file_name); + return 1; + } +--- binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/readelf.c.orig 2014-04-27 18:05:31.384778200 +0400 ++++ binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/readelf.c 2014-05-02 08:55:27.018918502 +0400 +@@ -14613,6 +14613,14 @@ + struct stat statbuf; + char armag[SARMAG]; + int ret; ++ int f, t; ++ t = -1; ++ f = open (file_name, O_RDONLY | O_BINARY); ++ if (f != 0) ++ { ++ t = isatty (f); ++ close (f); ++ } + + if (stat (file_name, &statbuf) < 0) + { +@@ -14624,8 +14632,13 @@ + return 1; + } + +- if (! S_ISREG (statbuf.st_mode)) ++ if (! S_ISREG (statbuf.st_mode) || t > 0) + { ++#ifdef _WIN32 ++ /* libtool passes /dev/null and checks for /dev/null in the output */ ++ if (stricmp (file_name, "nul") == 0) ++ file_name = "/dev/null"; ++#endif + error (_("'%s' is not an ordinary file\n"), file_name); + return 1; + } diff --git a/mingw-w64-binutils/0003-enable-shared-bfd.all.patch b/mingw-w64-binutils/0003-enable-shared-bfd.all.patch new file mode 100644 index 0000000000..53963df6e9 --- /dev/null +++ b/mingw-w64-binutils/0003-enable-shared-bfd.all.patch @@ -0,0 +1,11 @@ +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/bfd/Makefile.am.orig 2014-07-18 11:36:49.741468877 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/bfd/Makefile.am 2014-07-18 11:37:08.041610089 +0400 +@@ -27,7 +27,7 @@ + + bfddocdir = doc + +-libbfd_la_LDFLAGS = ++libbfd_la_LDFLAGS = -no-undefined + if INSTALL_LIBBFD + bfdlibdir = @bfdlibdir@ + bfdincludedir = @bfdincludedir@ diff --git a/mingw-w64-binutils/0003-link-to-libibtl-and-libiberty.mingw.patch b/mingw-w64-binutils/0003-link-to-libibtl-and-libiberty.mingw.patch new file mode 100644 index 0000000000..8060f62568 --- /dev/null +++ b/mingw-w64-binutils/0003-link-to-libibtl-and-libiberty.mingw.patch @@ -0,0 +1,48 @@ +--- gdb-7.6/bfd/Makefile.am.orig 2013-06-12 01:07:47 +0400 ++++ gdb-7.6/bfd/Makefile.am 2013-06-12 01:06:59 +0400 +@@ -826,6 +826,8 @@ + + ofiles: stamp-ofiles ; @true + ++LIBIBERTY = ../libiberty/libiberty.a ++ + # Since BFD64_LIBS is optional and we can't have substitution in + # libbfd_la_SOURCES, we put BFD64_LIBS in OFILES instead. + # However, list all sources in EXTRA_libbfd_la_SOURCES so the +@@ -833,6 +835,6 @@ + EXTRA_libbfd_la_SOURCES = $(CFILES) + libbfd_la_DEPENDENCIES = $(OFILES) ofiles + libbfd_la_LIBADD = `cat ofiles` @SHARED_LIBADD@ $(LIBDL) +-libbfd_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@ ++libbfd_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@ -Wl,--whole-archive -Wl,$(LIBIBERTY) -Wl,$(LIBINTL) -Wl,--no-whole-archive + + # libtool will build .libs/libbfd.a. We create libbfd.a in the build +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/bfd/Makefile.in.orig 2014-07-23 15:07:57.487590651 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/bfd/Makefile.in 2014-07-23 15:09:45.500342237 +0400 +@@ -342,7 +342,7 @@ + SUBDIRS = doc po + bfddocdir = doc + libbfd_la_LDFLAGS = $(am__append_1) -release `cat libtool-soversion` \ +- @SHARED_LDFLAGS@ $(am__empty) ++ @SHARED_LDFLAGS@ $(am__empty) -no-undefined -Wl,--whole-archive -Wl,$(LIBIBERTY) -Wl,$(LIBINTL) -Wl,--no-whole-archive + @INSTALL_LIBBFD_TRUE@bfdlib_LTLIBRARIES = libbfd.la + @INSTALL_LIBBFD_FALSE@bfdinclude_HEADERS = $(am__append_2) + @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \ +@@ -1097,6 +1097,8 @@ + # bfd64_libs Routines for 64bit support + OFILES = $(BFD_BACKENDS) $(BFD_MACHINES) @COREFILE@ @bfd64_libs@ + ++LIBIBERTY = ../libiberty/libiberty.a ++ + # Since BFD64_LIBS is optional and we can't have substitution in + # libbfd_la_SOURCES, we put BFD64_LIBS in OFILES instead. + # However, list all sources in EXTRA_libbfd_la_SOURCES so the +@@ -1104,7 +1106,7 @@ + libbfd_la_SOURCES = $(BFD32_LIBS_CFILES) + EXTRA_libbfd_la_SOURCES = $(CFILES) + libbfd_la_DEPENDENCIES = $(OFILES) ofiles +-libbfd_la_LIBADD = `cat ofiles` @SHARED_LIBADD@ $(LIBDL) ++libbfd_la_LIBADD = `cat ofiles` @SHARED_LIBADD@ $(LIBDL) + + # libtool will build .libs/libbfd.a. We create libbfd.a in the build + # directory so that we don't have to convert all the programs that use diff --git a/mingw-w64-binutils/0004-libiberty-la.mingw.patch b/mingw-w64-binutils/0004-libiberty-la.mingw.patch new file mode 100644 index 0000000000..840663bdf8 --- /dev/null +++ b/mingw-w64-binutils/0004-libiberty-la.mingw.patch @@ -0,0 +1,44 @@ +--- /dev/null 2013-06-12 02:15:38 +0400 ++++ gdb-7.6/libiberty/libiberty.la 2013-06-12 02:15:09 +0400 +@@ -0,0 +1,41 @@ ++# libiberty.la - a libtool library file ++# Generated by libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a ++# ++# Please DO NOT delete this file! ++# It is necessary for linking the library. ++ ++# The name that we can dlopen(3). ++dlname='' ++ ++# Names of this library. ++library_names='libiberty.a' ++ ++# The name of the static archive. ++old_library='libiberty.a' ++ ++# Linker flags that can not go in dependency_libs. ++inherited_linker_flags='' ++ ++# Libraries that this one depends upon. ++dependency_libs='' ++ ++# Names of additional weak libraries provided by this library ++weak_library_names='' ++ ++# Version information for libiberty. ++current=0 ++age=0 ++revision=0 ++ ++# Is this an already installed library? ++installed=no ++ ++# Should we warn about portability when linking against -modules? ++shouldnotlink=no ++ ++# Files to dlopen/dlpreopen ++dlopen='' ++dlpreopen='' ++ ++# Directory that this library needs to be installed in: ++libdir='/mingw/lib' diff --git a/mingw-w64-binutils/0005-shared-opcodes.mingw.patch b/mingw-w64-binutils/0005-shared-opcodes.mingw.patch new file mode 100644 index 0000000000..988d541eae --- /dev/null +++ b/mingw-w64-binutils/0005-shared-opcodes.mingw.patch @@ -0,0 +1,58 @@ +--- gdb-7.6/opcodes/configure.ac.orig 2013-06-12 03:06:00 +0400 ++++ gdb-7.6/opcodes/configure.ac 2013-06-12 03:21:13 +0400 +@@ -165,11 +165,17 @@ + SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" + fi + ++ LCLINK="-Wl,-lc," + case "${host}" in + *-*-cygwin*) + SHARED_LDFLAGS="-no-undefined" + SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin" + ;; ++ *-*-mingw*) ++ SHARED_LDFLAGS="-no-undefined" ++ SHARED_LIBADD="-L`pwd`/../bfd -lbfd" ++ LCLINK= ++ ;; + *-*-darwin*) + SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib ${SHARED_LIBADD}" + SHARED_DEPENDENCIES="../bfd/libbfd.la" +@@ -192,7 +198,7 @@ + if test x"$bfd_cv_ld_as_needed" = xyes; then + # Link against libm only when needed. Put -lc, -lm inside -Wl + # to stop libtool reordering these options. +- SHARED_LIBADD="$SHARED_LIBADD -Wl,-lc,--as-needed,`echo $LIBM | sed 's/ /,/g'`,--no-as-needed" ++ SHARED_LIBADD="$SHARED_LIBADD $LCLINK--as-needed,`echo $LIBM | sed 's/ /,/g'`,--no-as-needed" + else + SHARED_LIBADD="$SHARED_LIBADD $LIBM" + fi +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/opcodes/configure.orig 2014-07-23 14:30:36.728008438 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/opcodes/configure 2014-07-23 14:33:32.145230981 +0400 +@@ -12453,11 +12453,17 @@ + SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" + fi + ++ LCLINK="-Wl,-lc," + case "${host}" in + *-*-cygwin*) + SHARED_LDFLAGS="-no-undefined" + SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin" + ;; ++ *-*-mingw*) ++ SHARED_LDFLAGS="-no-undefined" ++ SHARED_LIBADD="-L`pwd`/../bfd -lbfd" ++ LCLINK= ++ ;; + *-*-darwin*) + SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib ${SHARED_LIBADD}" + SHARED_DEPENDENCIES="../bfd/libbfd.la" +@@ -12480,7 +12486,7 @@ + if test x"$bfd_cv_ld_as_needed" = xyes; then + # Link against libm only when needed. Put -lc, -lm inside -Wl + # to stop libtool reordering these options. +- SHARED_LIBADD="$SHARED_LIBADD -Wl,-lc,--as-needed,`echo $LIBM | sed 's/ /,/g'`,--no-as-needed" ++ SHARED_LIBADD="$SHARED_LIBADD $LCLINK--as-needed,`echo $LIBM | sed 's/ /,/g'`,--no-as-needed" + else + SHARED_LIBADD="$SHARED_LIBADD $LIBM" + fi diff --git a/mingw-w64-binutils/0008-fix-libiberty-makefile.mingw.patch b/mingw-w64-binutils/0008-fix-libiberty-makefile.mingw.patch new file mode 100644 index 0000000000..1e8847c5f6 --- /dev/null +++ b/mingw-w64-binutils/0008-fix-libiberty-makefile.mingw.patch @@ -0,0 +1,43 @@ +--- gdb-7.6/libiberty/Makefile.in.orig 2013-06-12 04:27:21 +0400 ++++ gdb-7.6/libiberty/Makefile.in 2013-06-12 04:35:26 +0400 +@@ -129,7 +129,7 @@ + dwarfnames.c dyn-string.c \ + fdmatch.c ffs.c fibheap.c filename_cmp.c floatformat.c \ + fnmatch.c fopen_unlocked.c \ +- getcwd.c getopt.c getopt1.c getpagesize.c getpwd.c getruntime.c \ ++ getcwd.c getpagesize.c getpwd.c getruntime.c \ + gettimeofday.c \ + hashtab.c hex.c \ + index.c insque.c \ +@@ -154,8 +154,8 @@ + strtoul.c strndup.c strnlen.c strverscmp.c \ + timeval-utils.c tmpnam.c \ + unlink-if-ordinary.c \ +- vasprintf.c vfork.c vfprintf.c vprintf.c vsnprintf.c vsprintf.c \ +- waitpid.c \ ++ vasprintf.c vfprintf.c vprintf.c vsnprintf.c vsprintf.c \ ++ msdos.c \ + xatexit.c xexit.c xmalloc.c xmemdup.c xstrdup.c xstrerror.c \ + xstrndup.c + +@@ -171,7 +171,7 @@ + ./fdmatch.$(objext) ./fibheap.$(objext) \ + ./filename_cmp.$(objext) ./floatformat.$(objext) \ + ./fnmatch.$(objext) ./fopen_unlocked.$(objext) \ +- ./getopt.$(objext) ./getopt1.$(objext) ./getpwd.$(objext) \ ++ ./getpwd.$(objext) \ + ./getruntime.$(objext) ./hashtab.$(objext) ./hex.$(objext) \ + ./lbasename.$(objext) ./lrealpath.$(objext) \ + ./make-relative-prefix.$(objext) ./make-temp-file.$(objext) \ +@@ -220,9 +220,9 @@ + ./strrchr.$(objext) ./strstr.$(objext) ./strtod.$(objext) \ + ./strtol.$(objext) ./strtoul.$(objext) ./strverscmp.$(objext) \ + ./tmpnam.$(objext) \ +- ./vasprintf.$(objext) ./vfork.$(objext) ./vfprintf.$(objext) \ ++ ./vasprintf.$(objext) ./vfprintf.$(objext) \ + ./vprintf.$(objext) ./vsnprintf.$(objext) ./vsprintf.$(objext) \ +- ./waitpid.$(objext) ++ ./msdos.$(objext) + + # These files are installed if the library has been configured to do so. + INSTALLED_HEADERS = \ diff --git a/mingw-w64-binutils/0009-fix-libiberty-configure.mingw.patch b/mingw-w64-binutils/0009-fix-libiberty-configure.mingw.patch new file mode 100644 index 0000000000..016ed5dad2 --- /dev/null +++ b/mingw-w64-binutils/0009-fix-libiberty-configure.mingw.patch @@ -0,0 +1,82 @@ +--- gdb-7.6/libiberty/configure.ac.orig 2013-06-12 05:10:53 +0400 ++++ gdb-7.6/libiberty/configure.ac 2013-06-12 05:11:31 +0400 +@@ -335,7 +335,6 @@ + funcs="$funcs vprintf" + funcs="$funcs vsnprintf" + funcs="$funcs vsprintf" +-funcs="$funcs waitpid" + funcs="$funcs setproctitle" + + # Also in the old function.def file: alloca, vfork, getopt. +@@ -437,6 +437,7 @@ + AC_LIBOBJ([insque]) + AC_LIBOBJ([mempcpy]) + AC_LIBOBJ([mkstemps]) ++ AC_LIBOBJ([msdos]) + AC_LIBOBJ([random]) + AC_LIBOBJ([rindex]) + AC_LIBOBJ([sigsetmask]) +@@ -446,7 +447,6 @@ + AC_LIBOBJ([strnlen]) + AC_LIBOBJ([strverscmp]) + AC_LIBOBJ([vasprintf]) +- AC_LIBOBJ([waitpid]) + + for f in $funcs; do + case "$f" in +@@ -615,9 +615,6 @@ + AC_REPLACE_FUNCS($funcs) + libiberty_AC_FUNC_C_ALLOCA + AC_FUNC_FORK +- if test $ac_cv_func_vfork_works = no; then +- AC_LIBOBJ([vfork]) +- fi + # We only need _doprnt if we might use it to implement v*printf. + if test $ac_cv_func_vprintf != yes \ + || test $ac_cv_func_vfprintf != yes \ +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/libiberty/configure.orig 2014-07-23 16:21:59.722230585 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/libiberty/configure 2014-07-23 16:22:45.790544654 +0400 +@@ -5394,7 +5394,6 @@ + funcs="$funcs vprintf" + funcs="$funcs vsnprintf" + funcs="$funcs vsprintf" +-funcs="$funcs waitpid" + funcs="$funcs setproctitle" + + # Also in the old function.def file: alloca, vfork, getopt. +@@ -5721,13 +5721,6 @@ + ;; + esac + +- case " $LIBOBJS " in +- *" waitpid.$ac_objext "* ) ;; +- *) LIBOBJS="$LIBOBJS waitpid.$ac_objext" +- ;; +-esac +- +- + for f in $funcs; do + case "$f" in + asprintf | basename | bcmp | bcopy | bzero | clock | ffs | getpagesize | index | insque | mempcpy | mkstemps | random | rindex | sigsetmask | stpcpy | stpncpy | strdup | strndup | strnlen | strverscmp | vasprintf | waitpid) +@@ -5867,12 +5860,6 @@ + ;; + esac + +- case " $LIBOBJS " in +- *" vfork.$ac_objext "* ) ;; +- *) LIBOBJS="$LIBOBJS vfork.$ac_objext" +- ;; +-esac +- + case " $LIBOBJS " in + *" waitpid.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS waitpid.$ac_objext" +@@ -6322,7 +6321,7 @@ + if test $ac_cv_func_vfork_works = no; then + case " $LIBOBJS " in + *" vfork.$ac_objext "* ) ;; +- *) LIBOBJS="$LIBOBJS vfork.$ac_objext" ++ *) + ;; + esac + diff --git a/mingw-w64-binutils/0013-dont-link-gas-to-libiberty.mingw.patch b/mingw-w64-binutils/0013-dont-link-gas-to-libiberty.mingw.patch new file mode 100644 index 0000000000..fd5212ad6d --- /dev/null +++ b/mingw-w64-binutils/0013-dont-link-gas-to-libiberty.mingw.patch @@ -0,0 +1,32 @@ +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/gas/Makefile.am.orig 2014-07-23 19:37:06.742942242 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/gas/Makefile.am 2014-07-23 19:37:28.587098576 +0400 +@@ -386,7 +386,7 @@ + # How to link with both our special library facilities + # and the system's installed libraries. + +-GASLIBS = @OPCODES_LIB@ ../bfd/libbfd.la ../libiberty/libiberty.a ++GASLIBS = @OPCODES_LIB@ ../bfd/libbfd.la + + # Files to be copied away after each stage in building. + STAGESTUFF = *.@OBJEXT@ $(noinst_PROGRAMS) +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/gas/Makefile.in.orig 2014-07-23 19:35:44.174351195 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/gas/Makefile.in 2014-07-23 19:36:13.414560529 +0400 +@@ -104,7 +104,8 @@ + am_as_new_OBJECTS = $(am__objects_1) + as_new_OBJECTS = $(am_as_new_OBJECTS) + am__DEPENDENCIES_1 = +-am__DEPENDENCIES_2 = ../bfd/libbfd.la ../libiberty/libiberty.a ++am__DEPENDENCIES_2 = ../bfd/libbfd.la ++# ../libiberty/libiberty.a + am_itbl_test_OBJECTS = itbl-parse.$(OBJEXT) itbl-lex.$(OBJEXT) + itbl_test_OBJECTS = $(am_itbl_test_OBJECTS) + itbl_test_DEPENDENCIES = itbl-tops.@OBJEXT@ itbl-test.@OBJEXT@ \ +@@ -645,7 +646,7 @@ + + # How to link with both our special library facilities + # and the system's installed libraries. +-GASLIBS = @OPCODES_LIB@ ../bfd/libbfd.la ../libiberty/libiberty.a ++GASLIBS = @OPCODES_LIB@ ../bfd/libbfd.la + + # Files to be copied away after each stage in building. + STAGESTUFF = *.@OBJEXT@ $(noinst_PROGRAMS) diff --git a/mingw-w64-binutils/0014-dont-link-binutils-to-libiberty.mingw.patch b/mingw-w64-binutils/0014-dont-link-binutils-to-libiberty.mingw.patch new file mode 100644 index 0000000000..025fed4696 --- /dev/null +++ b/mingw-w64-binutils/0014-dont-link-binutils-to-libiberty.mingw.patch @@ -0,0 +1,122 @@ +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.am.orig 2014-07-24 03:02:47.471723300 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.am 2014-07-24 03:13:03.161008156 +0400 +@@ -198,28 +198,28 @@ + # There's no global DEPENDENCIES. So, we must explicitly list everything + # which depends on libintl, since we don't know whether LIBINTL_DEP will be + # non-empty until configure time. Ugh! +-size_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-objdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) $(OPCODES) $(OBJDUMP_PRIVATE_OFILES) +-nm_new_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-ar_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-strings_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-strip_new_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-ranlib_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-cxxfilt_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-objcopy_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-nlmconv_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-srconv_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-sysdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-coffdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-dlltool_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-windres_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-windmc_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-addr2line_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) ++size_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++objdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) $(OPCODES) $(OBJDUMP_PRIVATE_OFILES) ++nm_new_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++ar_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++strings_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++strip_new_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++ranlib_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++cxxfilt_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++objcopy_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++nlmconv_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++srconv_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++sysdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++coffdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++dlltool_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++windres_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++windmc_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++addr2line_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) + readelf_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) + elfedit_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) + dllwrap_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) +-bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) ++bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) + + LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL) + +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.in.orig 2014-07-24 03:02:47.635724500 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.in 2014-07-24 03:13:16.974117340 +0400 +@@ -548,28 +548,28 @@ + # There's no global DEPENDENCIES. So, we must explicitly list everything + # which depends on libintl, since we don't know whether LIBINTL_DEP will be + # non-empty until configure time. Ugh! +-size_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-objdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) $(OPCODES) $(OBJDUMP_PRIVATE_OFILES) +-nm_new_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-ar_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-strings_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-strip_new_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-ranlib_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-cxxfilt_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-objcopy_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-nlmconv_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-srconv_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-sysdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-coffdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-dlltool_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-windres_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-windmc_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-addr2line_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) ++size_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++objdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) $(OPCODES) $(OBJDUMP_PRIVATE_OFILES) ++nm_new_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++ar_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++strings_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++strip_new_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++ranlib_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++cxxfilt_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++objcopy_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++nlmconv_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++srconv_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++sysdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++coffdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++dlltool_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++windres_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++windmc_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++addr2line_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) + readelf_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) + elfedit_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) + dllwrap_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) +-bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) +-bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) ++bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) ++bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) + LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL) + size_SOURCES = size.c $(BULIBS) + objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.am.orig 2014-07-24 03:14:02.660581500 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.am 2014-07-24 03:36:46.895776902 +0400 +@@ -221,7 +221,7 @@ + bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) + bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) + +-LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL) ++LDADD = $(BFDLIB) $(LIBINTL) + + size_SOURCES = size.c $(BULIBS) + +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.in.orig 2014-07-24 03:14:02.868583000 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.in 2014-07-24 03:36:52.198088982 +0400 +@@ -570,7 +570,7 @@ + dllwrap_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) + bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) + bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) +-LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL) ++LDADD = $(BFDLIB) $(LIBINTL) + size_SOURCES = size.c $(BULIBS) + objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) + strings_SOURCES = strings.c $(BULIBS) diff --git a/mingw-w64-binutils/0015-dont-link-ld-to-libiberty.mingw.patch b/mingw-w64-binutils/0015-dont-link-ld-to-libiberty.mingw.patch new file mode 100644 index 0000000000..c7a193d608 --- /dev/null +++ b/mingw-w64-binutils/0015-dont-link-ld-to-libiberty.mingw.patch @@ -0,0 +1,69 @@ +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/ld/Makefile.am.orig 2014-07-17 20:49:00.548854000 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/ld/Makefile.am 2014-07-24 03:51:54.867729925 +0400 +@@ -1956,8 +1956,8 @@ + ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c $(PLUGIN_C) \ + ldbuildid.c + ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) \ +- $(BFDLIB) $(LIBIBERTY) $(LIBINTL_DEP) +-ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL) ++ $(BFDLIB) $(LIBINTL_DEP) ++ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBINTL) + + # Dependency tracking for the generated emulation files. + EXTRA_ld_new_SOURCES += $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES) +@@ -1990,16 +1990,16 @@ + ld-partial.@OBJEXT@: ld-new$(EXEEXT) + ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld-partial.@OBJEXT@ -r $(OFILES) + ld1$(EXEEXT): ld-partial.@OBJEXT@ +- ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1$(EXEEXT) $(HOSTING_CRT0) ld-partial.@OBJEXT@ $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) ++ ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1$(EXEEXT) $(HOSTING_CRT0) ld-partial.@OBJEXT@ $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) + + ld1-full$(EXEEXT): ld-new +- ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1-full$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) ++ ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1-full$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) + + ld2$(EXEEXT): ld1$(EXEEXT) +- ./ld1$(EXEEXT) $(HOSTING_EMU) -o ld2$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) ++ ./ld1$(EXEEXT) $(HOSTING_EMU) -o ld2$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) + + ld3$(EXEEXT): ld2$(EXEEXT) +- ./ld2$(EXEEXT) $(HOSTING_EMU) -o ld3$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) ++ ./ld2$(EXEEXT) $(HOSTING_EMU) -o ld3$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) + + bootstrap: ld3$(EXEEXT) + cmp ld2$(EXEEXT) ld3$(EXEEXT) +--- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/ld/Makefile.in.orig 2014-07-17 20:49:00.552854000 +0400 ++++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/ld/Makefile.in 2014-07-24 03:52:19.962988250 +0400 +@@ -848,9 +848,9 @@ + ldbuildid.c + + ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) \ +- $(BFDLIB) $(LIBIBERTY) $(LIBINTL_DEP) ++ $(BFDLIB) $(LIBINTL_DEP) + +-ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL) ++ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBINTL) + + # A test program for C++ constructors and destructors. + # This test is now in the testsuite. +@@ -3411,16 +3411,16 @@ + ld-partial.@OBJEXT@: ld-new$(EXEEXT) + ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld-partial.@OBJEXT@ -r $(OFILES) + ld1$(EXEEXT): ld-partial.@OBJEXT@ +- ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1$(EXEEXT) $(HOSTING_CRT0) ld-partial.@OBJEXT@ $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) ++ ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1$(EXEEXT) $(HOSTING_CRT0) ld-partial.@OBJEXT@ $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) + + ld1-full$(EXEEXT): ld-new +- ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1-full$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) ++ ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1-full$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) + + ld2$(EXEEXT): ld1$(EXEEXT) +- ./ld1$(EXEEXT) $(HOSTING_EMU) -o ld2$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) ++ ./ld1$(EXEEXT) $(HOSTING_EMU) -o ld2$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) + + ld3$(EXEEXT): ld2$(EXEEXT) +- ./ld2$(EXEEXT) $(HOSTING_EMU) -o ld3$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) ++ ./ld2$(EXEEXT) $(HOSTING_EMU) -o ld3$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) + + bootstrap: ld3$(EXEEXT) + cmp ld2$(EXEEXT) ld3$(EXEEXT) diff --git a/mingw-w64-binutils/0017-fix-iconv-linking.all.patch b/mingw-w64-binutils/0017-fix-iconv-linking.all.patch new file mode 100644 index 0000000000..96991d5210 --- /dev/null +++ b/mingw-w64-binutils/0017-fix-iconv-linking.all.patch @@ -0,0 +1,54 @@ +--- binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/bfd/Makefile.am.orig 2014-08-01 21:54:27.917294900 +0400 ++++ binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/bfd/Makefile.am 2014-08-01 23:41:39.388829543 +0400 +@@ -833,7 +833,8 @@ + EXTRA_libbfd_la_SOURCES = $(CFILES) + libbfd_la_DEPENDENCIES = $(OFILES) ofiles + libbfd_la_LIBADD = `cat ofiles` @SHARED_LIBADD@ $(LIBDL) +-libbfd_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@ -Wl,--whole-archive -Wl,$(LIBIBERTY) -Wl,$(LIBINTL) -Wl,--no-whole-archive ++comma := , ++libbfd_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@ -Wl,--whole-archive -Wl,$(LIBIBERTY) $(addprefix -Wl$(comma),$(LIBINTL)) -Wl,--no-whole-archive + + # libtool will build .libs/libbfd.a. We create libbfd.a in the build + # directory so that we don't have to convert all the programs that use +--- binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/bfd/Makefile.in.orig 2014-08-01 21:54:27.917294900 +0400 ++++ binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/bfd/Makefile.in 2014-08-01 23:42:11.628451359 +0400 +@@ -341,8 +341,9 @@ + CSEARCH = -I. -I$(srcdir) -I$(INCDIR) + SUBDIRS = doc po + bfddocdir = doc ++comma := , + libbfd_la_LDFLAGS = $(am__append_1) -release `cat libtool-soversion` \ +- @SHARED_LDFLAGS@ $(am__empty) -no-undefined -Wl,--whole-archive -Wl,$(LIBIBERTY) -Wl,$(LIBINTL) -Wl,--no-whole-archive ++ @SHARED_LDFLAGS@ $(am__empty) -no-undefined -Wl,--whole-archive -Wl,$(LIBIBERTY) $(addprefix -Wl$(comma),$(LIBINTL)) -Wl,--no-whole-archive + @INSTALL_LIBBFD_TRUE@bfdlib_LTLIBRARIES = libbfd.la + @INSTALL_LIBBFD_FALSE@bfdinclude_HEADERS = $(am__append_2) + @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \ +--- binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/intl/localcharset.c.orig 2014-07-24 17:46:54.721150000 +0400 ++++ binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/intl/localcharset.c 2014-08-01 23:46:23.527989681 +0400 +@@ -23,6 +23,10 @@ + # include + #endif + ++#ifndef STATIC ++#define STATIC static ++#endif ++ + /* Specification. */ + #include "localcharset.h" + +--- binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/intl/localcharset.h.orig 2014-07-24 17:46:54.721150000 +0400 ++++ binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/intl/localcharset.h 2014-08-01 23:48:01.816349439 +0400 +@@ -31,7 +31,12 @@ + The result must not be freed; it is statically allocated. + If the canonical name cannot be determined, the result is a non-canonical + name. */ +-extern const char * locale_charset (void); ++#ifdef STATIC ++STATIC ++#else ++extern ++#endif ++const char * locale_charset (void); + + + #ifdef __cplusplus diff --git a/mingw-w64-binutils/030-binutils-mingw-gnu-print.patch b/mingw-w64-binutils/0110-binutils-mingw-gnu-print.patch similarity index 66% rename from mingw-w64-binutils/030-binutils-mingw-gnu-print.patch rename to mingw-w64-binutils/0110-binutils-mingw-gnu-print.patch index 6b4d3cb0e3..88931e9fce 100644 --- a/mingw-w64-binutils/030-binutils-mingw-gnu-print.patch +++ b/mingw-w64-binutils/0110-binutils-mingw-gnu-print.patch @@ -130,3 +130,60 @@ diff -Naur binutils-2.24/gas/read.c binutils-2.24-mingw/gas/read.c as_warn (_("value 0x%llx truncated to 0x%llx"), (unsigned long long) get, (unsigned long long) use); #else +--- binutils-2.25/gas/as.h.orig 2014-12-26 08:20:07.506000000 +0300 ++++ binutils-2.25/gas/as.h 2014-12-26 08:21:13.350000000 +0300 +@@ -451,10 +451,10 @@ + + #define PRINTF_LIKE(FCN) \ + void FCN (const char *format, ...) \ +- __attribute__ ((__format__ (__printf__, 1, 2))) ++ __attribute__ ((__format__ (gnu_printf, 1, 2))) + #define PRINTF_WHERE_LIKE(FCN) \ + void FCN (char *file, unsigned int line, const char *format, ...) \ +- __attribute__ ((__format__ (__printf__, 3, 4))) ++ __attribute__ ((__format__ (gnu_printf, 3, 4))) + + #else /* __GNUC__ < 2 || defined(VMS) */ + +--- binutils-2.25/gold/configure.orig 2014-12-26 08:22:19.978000000 +0300 ++++ binutils-2.25/gold/configure 2014-12-26 08:22:23.697000000 +0300 +@@ -7530,7 +7530,7 @@ + /* end confdefs.h. */ + + template extern void foo(const char*, ...) +- __attribute__ ((__format__ (__printf__, 1, 2))); ++ __attribute__ ((__format__ (gnu_printf, 1, 2))); + template void foo(const char* format, ...) {} + void bar() { foo("%s\n", "foo"); } + +--- binutils-2.25/gold/configure.ac.orig 2014-12-26 08:22:49.521000000 +0300 ++++ binutils-2.25/gold/configure.ac 2014-12-26 08:23:05.556000000 +0300 +@@ -601,7 +601,7 @@ + [gold_cv_template_attribute], + [AC_COMPILE_IFELSE([ + template extern void foo(const char*, ...) +- __attribute__ ((__format__ (__printf__, 1, 2))); ++ __attribute__ ((__format__ (gnu_printf, 1, 2))); + template void foo(const char* format, ...) {} + void bar() { foo("%s\n", "foo"); } + ], [gold_cv_template_attribute=yes], [gold_cv_template_attribute=no])]) +--- binutils-2.25/include/ansidecl.h.orig 2014-12-26 08:23:33.513000000 +0300 ++++ binutils-2.25/include/ansidecl.h 2014-12-26 08:24:16.479000000 +0300 +@@ -197,7 +197,7 @@ + before GCC 3.3, but as of 3.3 we need to add the `nonnull' + attribute to retain this behavior. */ + #ifndef ATTRIBUTE_PRINTF +-#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m) ++#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (gnu_printf, m, n))) ATTRIBUTE_NONNULL(m) + #define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2) + #define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3) + #define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4) +@@ -225,7 +225,7 @@ + NULL format specifier was allowed as of gcc 3.3. */ + #ifndef ATTRIBUTE_NULL_PRINTF + # if (GCC_VERSION >= 3003) +-# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ++# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (gnu_printf, m, n))) + # else + # define ATTRIBUTE_NULL_PRINTF(m, n) + # endif /* GNUC >= 3.3 */ diff --git a/mingw-w64-binutils/110-This-fixes-a-compile-time-warning.patch b/mingw-w64-binutils/110-This-fixes-a-compile-time-warning.patch deleted file mode 100644 index 34496a39e6..0000000000 --- a/mingw-w64-binutils/110-This-fixes-a-compile-time-warning.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 88667baf24e71481f0002c0452b94a1d53116725 Mon Sep 17 00:00:00 2001 -From: Nick Clifton -Date: Fri, 25 Apr 2014 17:00:20 +0100 -Subject: [PATCH] This fixes a compile time warning which is being treated as an error. Older - versions of gcc complain about part of a conditional expression always - evaluating to false because of the size of the operands involved, even when - the entire expression is already known to be false. - - * peXXigen.c (_bfd_XXi_swap_sym_out): Another fix for building on - a 342-bit host. This time for older versions of gcc. ---- - bfd/ChangeLog | 6 ++++++ - bfd/peXXigen.c | 10 +++++++++- - 2 files changed, 15 insertions(+), 1 deletions(-) - -diff --git a/bfd/ChangeLog b/bfd/ChangeLog -index f22dc90..ccff4ce 100644 ---- a/bfd/ChangeLog -+++ b/bfd/ChangeLog -@@ -1,3 +1,9 @@ -+2014-04-25 Nick Clifton -+ -+ PR ld/16821 -+ * peXXigen.c (_bfd_XXi_swap_sym_out): Another fix for building on -+ a 342-bit host. This time for older versions of gcc. -+ - 2014-04-24 Nick Clifton - - * peXXigen.c (rsrc_print_section): Fix compile time warning for -diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c -index d462753..dc45daf 100644 ---- a/bfd/peXXigen.c -+++ b/bfd/peXXigen.c -@@ -236,7 +236,15 @@ _bfd_XXi_swap_sym_out (bfd * abfd, void * inp, void * extp) - reduce the absolute value to < 1^32, and then transforming the - symbol into a section relative symbol. This of course is a hack. */ - if (sizeof (in->n_value) > 4 -+ /* GCC 4.6.x erroneously complains about the next test always being -+ false when compiled on a 32-bit host. (The sizeof test above -+ should have made the warning unnecessary). Hence we have to -+ predicate the test. It should not matter if the test is omitted -+ since the worst that can happen is that some absolute symbols -+ are needlessly converted to equivalent section relative symbols. */ -+#if defined BFD64 || ! defined __GNUC__ || __GNUC__ > 4 || __GNUC_MINOR__ > 6 - && in->n_value > ((1ULL << 32) - 1) -+#endif - && in->n_scnum == -1) - { - asection * sec; -@@ -248,7 +256,7 @@ _bfd_XXi_swap_sym_out (bfd * abfd, void * inp, void * extp) - in->n_scnum = sec->target_index; - } - /* else: FIXME: The value is outside the range of any section. This -- happens for __image_base__ and __ImageBase__ and maybe some other -+ happens for __image_base__ and __ImageBase and maybe some other - symbols as well. We should find a way to handle these values. */ - } - --- -1.7.1 - diff --git a/mingw-w64-binutils/PKGBUILD b/mingw-w64-binutils/PKGBUILD index 3c5a698e94..517cebf909 100644 --- a/mingw-w64-binutils/PKGBUILD +++ b/mingw-w64-binutils/PKGBUILD @@ -4,7 +4,7 @@ _realname=binutils pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.25 -pkgrel=1 +pkgrel=2 pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('any') url="http://www.gnu.org/software/binutils/" @@ -16,20 +16,50 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' '!distcc' '!ccache') # 'debug' '!strip') #install=binutils.install source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2{,.sig} - '030-binutils-mingw-gnu-print.patch' - '110-This-fixes-a-compile-time-warning.patch') + 0001-enable-gold-on.mingw32.patch + 0002-check-for-unusual-file-harder.patch + 0003-enable-shared-bfd.all.patch + 0003-link-to-libibtl-and-libiberty.mingw.patch + 0004-libiberty-la.mingw.patch + 0005-shared-opcodes.mingw.patch + 0008-fix-libiberty-makefile.mingw.patch + 0009-fix-libiberty-configure.mingw.patch + 0013-dont-link-gas-to-libiberty.mingw.patch + 0014-dont-link-binutils-to-libiberty.mingw.patch + 0015-dont-link-ld-to-libiberty.mingw.patch + 0017-fix-iconv-linking.all.patch + 0110-binutils-mingw-gnu-print.patch) md5sums=('d9f3303f802a5b6b0bb73a335ab89d66' 'SKIP' - 'c11228663002721df3437a0d6c8280ee' - '10fcfbca65c6939840dd0f4a575b8a99') + 'f3be04ed70b9d352a2c0e2a80b0706b2' + '2cc89a3c09cafa30c91ac890d3c68932' + 'b3580923675b22a78a66788fd70b99b9' + '700066e478edd9bbb82c9d967bf90a4a' + 'a91bbb38f462c26247f317e4004a99fd' + 'bcd56ce925ca7f85e30b42c28af539d1' + 'df13a2462c24d14376a09ec1d1609519' + '9cd71d49b765932a9701b66dfde00775' + '1d439afee5cbcc952719ae40021e6cec' + '6d3610000f041f66ada0a956101faeec' + '33b5eda35272e88b1c308e66484db958' + '66eeb2af697f5f1d0f372185aa2fb737' + '1c34f5ee0ee5d5008a617e1638362d43') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i "${srcdir}"/030-binutils-mingw-gnu-print.patch - - # 110-This-fixes-a-compile-time-warning.patch isn't needed for 2.24 and may not - # be needed after either; depending on what gets included in the next release. - # patch -p1 -i "${srcdir}"/110-This-fixes-a-compile-time-warning.patch + patch -p1 -i "${srcdir}"/0001-enable-gold-on.mingw32.patch + patch -p1 -i "${srcdir}"/0002-check-for-unusual-file-harder.patch + #patch -p1 -i "${srcdir}"/0003-enable-shared-bfd.all.patch + #patch -p1 -i "${srcdir}"/0003-link-to-libibtl-and-libiberty.mingw.patch + #patch -p1 -i "${srcdir}"/0004-libiberty-la.mingw.patch + #patch -p1 -i "${srcdir}"/0005-shared-opcodes.mingw.patch + patch -p1 -i "${srcdir}"/0008-fix-libiberty-makefile.mingw.patch + patch -p1 -i "${srcdir}"/0009-fix-libiberty-configure.mingw.patch + #patch -p1 -i "${srcdir}"/0013-dont-link-gas-to-libiberty.mingw.patch + #patch -p1 -i "${srcdir}"/0014-dont-link-binutils-to-libiberty.mingw.patch + #patch -p1 -i "${srcdir}"/0015-dont-link-ld-to-libiberty.mingw.patch + #patch -p1 -i "${srcdir}"/0017-fix-iconv-linking.all.patch + patch -p1 -i "${srcdir}"/0110-binutils-mingw-gnu-print.patch } @@ -58,10 +88,13 @@ build() { --with-sysroot=${MINGW_PREFIX} \ --with-libiconv-prefix=${MINGW_PREFIX} \ $_conf \ - --disable-nls \ + --enable-nls \ --disable-rpath \ --disable-multilib \ - --enable-install-libiberty + --enable-install-libiberty \ + --enable-plugins \ + --enable-gold \ + --disable-shared make } @@ -87,4 +120,6 @@ package() { # Add some useful headers #install -m644 ${srcdir}/${_realname}-${pkgver}/include/libiberty.h ${pkgdir}${MINGW_PREFIX}/include #install -m644 ${srcdir}/${_realname}-${pkgver}/include/demangle.h ${pkgdir}${MINGW_PREFIX}/include + + find ${pkgdir}${MINGW_PREFIX}/share -type f -iname "opcodes.mo" -o -iname "bfd.mo" | xargs -rtl1 rm } From 0cd7206e87916e5cbb21ab420505a9eeb83eff11 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 26 Dec 2014 11:44:57 +0000 Subject: [PATCH 0219/2060] TODO.md: Add some 3D engines --- TODO.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TODO.md b/TODO.md index 4109829cac..08d016c97b 100644 --- a/TODO.md +++ b/TODO.md @@ -39,3 +39,5 @@ What we need to do: libcelt0 libgnutls libgme libembl libspeexdsp * Bison: Add path relocation when locating m4 + +* Add the Oyrol, Urho3D and Godot engines From 3334a6ae6533816c0ba0c908347aec3ce9240ad6 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Dec 2014 01:54:11 +0000 Subject: [PATCH 0220/2060] qt5-static: More cmake-static work (WIP) Plugin .prl files are read and the (linker) flags specified in QMAKE_PRL_LIBS_FOR_CMAKE are added to INTERFACE_LINK_LIBRARIES as is the full path for the static library that is each plugin To complete this task we need to create the exe_plugin_import.cpp file and add it to the executable target. The contents need to be: // This file is autogenerated by cmake. It imports static plugin classes for // static plugins specified using QTPLUGIN and QT_PLUGIN_CLASS. variables. Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) Q_IMPORT_PLUGIN(QDDSPlugin) .. .. Q_IMPORT_PLUGIN(QLastPlugin) --- ...ke-also-link-plugins-and-plugin-deps.patch | 127 ++++++++++++++++++ mingw-w64-qt5-static/PKGBUILD | 7 +- 2 files changed, 132 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-qt5-static/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch diff --git a/mingw-w64-qt5-static/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch b/mingw-w64-qt5-static/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch new file mode 100644 index 0000000000..0d5efe5428 --- /dev/null +++ b/mingw-w64-qt5-static/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch @@ -0,0 +1,127 @@ +diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-26 23:23:53.547244000 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-26 23:36:19.160943300 +0000 +@@ -56,14 +56,17 @@ + set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\") + !!ENDIF + _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) ++ if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) ++ set(_list_sep \";\") ++ endif() + set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES +- \"INTERFACE_LINK_LIBRARIES\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" ++ \"INTERFACE_LINK_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_list_sep}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" + \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} + !!IF !isEmpty(CMAKE_LIB_SONAME) + \"IMPORTED_SONAME_${Configuration}\" \"$${CMAKE_LIB_SONAME}\" + !!ENDIF + # For backward compatibility with CMake < 2.8.12 +- \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" ++ \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_list_sep}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" + ) + + !!IF !isEmpty(CMAKE_WINDOWS_BUILD) +@@ -207,17 +210,28 @@ + # Parse the prl files generated by qmake to get the link dependencies. They + # contain all the information we need, and they are the only location with + # all the right information. ++ ++# .. changed so that if can be called multiple times, once for the module itself and once for each ++# plugin, each time, appending to _Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES ++ + macro(macro_process_prl_file prl_file_location Configuration) + if (EXISTS \"${prl_file_location}\") + file(STRINGS \"${prl_file_location}\" prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE\") + string(REGEX REPLACE \"QMAKE_PRL_LIBS_FOR_CMAKE *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings} ) +- if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) ++ if (_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES) + set(_list_sep \";\") + endif() +- set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES \"${_list_sep}${static_depends}\") ++ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}${_list_sep}${static_depends}\") + endif() + endmacro() + ++macro(macro_process_plugin_prl_file prl_file_location Configuration LIB_DIRECTORY LIB_LOCATION) ++ # 1. Add the (static) libraries dependencies from the plugin's prl file. ++ macro_process_prl_file(${prl_file_location} ${Configuration}) ++ # 2. Add the (static) plugin itself. ++ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}${_qt5Gui_install_prefix}/${LIB_DIRECTORY}/${LIB_LOCATION}\") ++endmacro() ++ + !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) + macro_process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG) + !!ELSE +@@ -230,6 +244,7 @@ + !!ENDIF + + # Excerpt from: end ++ + !!ELSE + add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) + !!ENDIF +@@ -242,6 +257,34 @@ + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY + INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) + ++ file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") ++ ++ macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) ++ set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) ++ ++!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) ++ set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") ++!!ELSE ++ set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") ++!!ENDIF ++ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) ++ set_target_properties(Qt5::${Plugin} PROPERTIES ++ \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} ++ ) ++ get_filename_component(_plugindir ${PLUGIN_LOCATION} PATH) ++ get_filename_component(_plugindirname ${_plugindir} NAME) ++ get_filename_component(_pluginname ${PLUGIN_LOCATION} NAME) ++ string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/share/qt5/plugins/${_plugindirname}/\\\\1.prl\" plugin_prl_file_location ${_pluginname}) ++ macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"share/qt5/plugins\" ${PLUGIN_LOCATION} ) ++ ++ endmacro() ++ ++ if (pluginTargets) ++ foreach(pluginTarget ${pluginTargets}) ++ include(${pluginTarget}) ++ endforeach() ++ endif() ++ + !!IF !isEmpty(CMAKE_RELEASE_TYPE) + !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) + _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" ) +@@ -316,29 +359,6 @@ + + !!ENDIF // CMAKE_DEBUG_TYPE + +- file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") +- +- macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) +- set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) +- +-!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) +- set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") +-!!ELSE +- set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") +-!!ENDIF +- _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) +- set_target_properties(Qt5::${Plugin} PROPERTIES +- \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} +- ) +- endmacro() +- +- if (pluginTargets) +- foreach(pluginTarget ${pluginTargets}) +- include(${pluginTarget}) +- endforeach() +- endif() +- +- + !!IF !isEmpty(CMAKE_MODULE_EXTRAS) + include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") + !!ENDIF diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index bb5f5ac73a..e98bf0d04e 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -175,7 +175,8 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch 0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch 0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch - 0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch) + 0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch + 0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch) md5sums=('21843b00ecde8956217faab391bc007b' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' @@ -215,7 +216,8 @@ md5sums=('21843b00ecde8956217faab391bc007b' '8749d4fd65a86a24fafba23067a2e086' 'd66b2afce490ab8a82feae08c747e367' '92fb1954fe3ab91d99a09c7f8a878218' - 'ab2cac300aa7a908ea8840649f0b51fc') + 'ab2cac300aa7a908ea8840649f0b51fc' + '3d0200e121c78ec578d619f582b61776') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -327,6 +329,7 @@ prepare() { patch -p1 -i ${srcdir}/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch patch -p1 -i ${srcdir}/0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch patch -p1 -i ${srcdir}/0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch + patch -p1 -i ${srcdir}/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch # See: https://bugreports.qt-project.org/browse/QTBUG-37902 # _ver_num=${_ver_base%%-*} From d81aa983f2697850071b9f887c9268ec4019c816 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Dec 2014 15:53:12 +0000 Subject: [PATCH 0221/2060] octopi-git: Rebased patches --- ...d-of-int-reducing-QProcess-repititio.patch | 22 +++--- ...002-Use-a-shared-QProcessEnvironment.patch | 50 +++---------- ...o-Windows-Terminal-Services-wtsapi32.patch | 25 +++++++ ...-in-UnixCommand-s-exe-checking-func.patch} | 10 +-- ... 0005-Use-instead-of-QDir-separator.patch} | 10 +-- ...-of-overwrite-m_readAllStandardOutp.patch} | 10 +-- ...ne-QT_WA.patch => 0007-Define-QT_WA.patch} | 6 +- ...YS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch} | 14 ++-- ...atch => 0009-MSYS2-Add-getMSYS2Root.patch} | 14 ++-- ...PacmanDatabase-getMSYS2Root-changes.patch} | 18 ++--- ...YS2-Changes-to-various-system-calls.patch} | 33 ++++---- ...> 0012-MSYS2-Process-id-changes-WIP.patch} | 20 ++--- ...Prepend-getMSYS2Root-to-file-checks.patch} | 14 ++-- ...14-MSYS2-Support-discoverBinaryPath.patch} | 8 +- mingw-w64-octopi-git/PKGBUILD | 75 ++++++++++--------- 15 files changed, 165 insertions(+), 164 deletions(-) create mode 100644 mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch rename mingw-w64-octopi-git/{0003-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch => 0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch} (87%) rename mingw-w64-octopi-git/{0004-Use-instead-of-QDir-separator.patch => 0005-Use-instead-of-QDir-separator.patch} (78%) rename mingw-w64-octopi-git/{0005-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch => 0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch} (70%) rename mingw-w64-octopi-git/{0006-Define-QT_WA.patch => 0007-Define-QT_WA.patch} (86%) rename mingw-w64-octopi-git/{0007-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch => 0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch} (78%) rename mingw-w64-octopi-git/{0008-MSYS2-Add-getMSYS2Root.patch => 0009-MSYS2-Add-getMSYS2Root.patch} (89%) rename mingw-w64-octopi-git/{0009-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch => 0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch} (73%) rename mingw-w64-octopi-git/{0010-MSYS2-Changes-to-various-system-calls.patch => 0011-MSYS2-Changes-to-various-system-calls.patch} (81%) rename mingw-w64-octopi-git/{0011-MSYS2-Process-id-changes-WIP.patch => 0012-MSYS2-Process-id-changes-WIP.patch} (87%) rename mingw-w64-octopi-git/{0012-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch => 0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch} (75%) rename mingw-w64-octopi-git/{0013-MSYS2-Support-discoverBinaryPath.patch => 0014-MSYS2-Support-discoverBinaryPath.patch} (84%) diff --git a/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch b/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch index 125120403c..5fad1e0d02 100644 --- a/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch +++ b/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch @@ -1,7 +1,7 @@ -From 0d523be2643f8e72568ab821776abfb29c5b09e5 Mon Sep 17 00:00:00 2001 +From 625b52981f67282165586d2746dd374f0cec4b99 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 14:57:41 +0100 -Subject: [PATCH 01/13] Use Q_PID instead of int, reducing QProcess repitition +Subject: [PATCH 01/14] Use Q_PID instead of int, reducing QProcess repitition Process ids are not ints on all systems --- @@ -10,10 +10,10 @@ Process ids are not ints on all systems 2 files changed, 45 insertions(+), 31 deletions(-) diff --git a/src/utils.cpp b/src/utils.cpp -index 2161190..04ad195 100644 +index e7cc1e2..74c4f38 100644 --- a/src/utils.cpp +++ b/src/utils.cpp -@@ -77,6 +77,38 @@ void utils::ProcessWrapper::onProcessStarted() +@@ -83,6 +83,38 @@ void utils::ProcessWrapper::onProcessStarted() emit startedTerminal(); } @@ -52,7 +52,7 @@ index 2161190..04ad195 100644 /* * We need this to search for the SH process pid (which spaws AUR tool) */ -@@ -86,21 +118,11 @@ void utils::ProcessWrapper::onSingleShot() +@@ -92,21 +124,11 @@ void utils::ProcessWrapper::onSingleShot() QProcess pAux; QString saux; @@ -76,7 +76,7 @@ index 2161190..04ad195 100644 } QStringList slist; -@@ -109,12 +131,10 @@ void utils::ProcessWrapper::onSingleShot() +@@ -115,12 +137,10 @@ void utils::ProcessWrapper::onSingleShot() { int candidatePid = list.at(c).trimmed().toInt(); @@ -92,7 +92,7 @@ index 2161190..04ad195 100644 if (UnixCommand::getLinuxDistro() == ectn_KAOS) { -@@ -131,8 +151,8 @@ void utils::ProcessWrapper::onSingleShot() +@@ -137,8 +157,8 @@ void utils::ProcessWrapper::onSingleShot() if (candidatePid < candidatePid2) { @@ -103,7 +103,7 @@ index 2161190..04ad195 100644 m_timer->start(); return; -@@ -155,8 +175,8 @@ void utils::ProcessWrapper::onSingleShot() +@@ -161,8 +181,8 @@ void utils::ProcessWrapper::onSingleShot() if (candidatePid < candidatePid2) { @@ -114,7 +114,7 @@ index 2161190..04ad195 100644 m_timer->start(); return; -@@ -175,16 +195,10 @@ void utils::ProcessWrapper::onSingleShot() +@@ -181,16 +201,10 @@ void utils::ProcessWrapper::onSingleShot() void utils::ProcessWrapper::onTimer() { QProcess proc; @@ -133,7 +133,7 @@ index 2161190..04ad195 100644 if (!out.contains(".qt_temp_", Qt::CaseInsensitive)) diff --git a/src/utils.h b/src/utils.h -index 54a8edc..a1f79a9 100644 +index e4ab291..516e9e3 100644 --- a/src/utils.h +++ b/src/utils.h @@ -34,9 +34,9 @@ class ProcessWrapper : public QObject @@ -150,5 +150,5 @@ index 54a8edc..a1f79a9 100644 QTimer *m_timer; QTimer *m_timerSingleShot; -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch b/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch index 26f30fe33e..5be42ce0dc 100644 --- a/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch +++ b/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch @@ -1,31 +1,17 @@ -From acebc7722066ef3885ee2b425ffe36f8116370b6 Mon Sep 17 00:00:00 2001 +From b8beafeeeb794d892b13e8e4685400dc4dc827ba Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:23:27 +0100 -Subject: [PATCH 02/13] Use a shared QProcessEnvironment +Subject: [PATCH 02/14] Use a shared QProcessEnvironment This reduces a lot of repetition. Environment variables LANG, LC_MESSAGES, LC_ALL are set to "C" for all cases. --- - octopi.pro | 2 ++ - src/unixcommand.cpp | 88 +++++++++++------------------------------------------ - src/unixcommand.h | 15 +++++++++ - 3 files changed, 35 insertions(+), 70 deletions(-) + src/unixcommand.cpp | 83 +++++++++++------------------------------------------ + src/unixcommand.h | 15 ++++++++++ + 2 files changed, 32 insertions(+), 66 deletions(-) -diff --git a/octopi.pro b/octopi.pro -index cac9348..0531b6d 100644 ---- a/octopi.pro -+++ b/octopi.pro -@@ -120,6 +120,8 @@ TRANSLATIONS += resources/translations/octopi_pt_BR.ts \ - resources/translations/octopi_ja.ts \ - resources/translations/octopi_eu.ts - -+win32: LIBS += -lwtsapi32 -+ - greaterThan(QT_MAJOR_VERSION, 4){ - TRANSLATIONS += resources/translations/octopi_ast.ts - } diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index a32b775..6ab57b9 100644 +index 8686e16..9203eae 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp @@ -36,6 +36,7 @@ @@ -195,19 +181,7 @@ index a32b775..6ab57b9 100644 if (UnixCommand::getLinuxDistro() == ectn_MOOOSLINUX) ping.start("torsocks ping -c 1 -W 3 www.google.com"); -@@ -549,10 +509,7 @@ bool UnixCommand::isKtsussVersionOK() - { - QProcess proc; - -- QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); -- env.insert("LANG", "C"); -- env.insert("LC_MESSAGES", "C"); -- proc.setProcessEnvironment(env); -+ proc.setProcessEnvironment(getEnv()); - - QStringList slParam("-v"); - proc.start("ktsuss", slParam ); -@@ -621,10 +578,7 @@ void UnixCommand::removeTemporaryFiles() +@@ -596,10 +556,7 @@ void UnixCommand::removeTemporaryFiles() void UnixCommand::execCommand(const QString &pCommand) { QProcess p; @@ -219,7 +193,7 @@ index a32b775..6ab57b9 100644 p.start(WMHelper::getSUCommand() + "\"" + pCommand + "\""); p.waitForFinished(-1); -@@ -637,10 +591,7 @@ void UnixCommand::execCommand(const QString &pCommand) +@@ -612,10 +569,7 @@ void UnixCommand::execCommand(const QString &pCommand) bool UnixCommand::isTextFile(const QString& fileName) { QProcess *p = new QProcess(); @@ -231,7 +205,7 @@ index a32b775..6ab57b9 100644 QStringList s(fileName); p->start( "file", s ); -@@ -760,10 +711,7 @@ UnixCommand::UnixCommand(QObject *parent): QObject() +@@ -735,10 +689,7 @@ UnixCommand::UnixCommand(QObject *parent): QObject() m_process = new QProcess(parent); m_terminal = new Terminal(parent, SettingsManager::getTerminal()); @@ -244,7 +218,7 @@ index a32b775..6ab57b9 100644 QObject::connect(m_process, SIGNAL( started() ), this, SIGNAL( started() )); diff --git a/src/unixcommand.h b/src/unixcommand.h -index 3105307..89b0f31 100644 +index 64d64fb..4f8837e 100644 --- a/src/unixcommand.h +++ b/src/unixcommand.h @@ -54,6 +54,7 @@ private: @@ -255,7 +229,7 @@ index 3105307..89b0f31 100644 public: UnixCommand(QObject *parent); -@@ -114,6 +115,20 @@ public: +@@ -113,6 +114,20 @@ public: return (uid == 0); //Returns TRUE if root is running Octopi } @@ -277,5 +251,5 @@ index 3105307..89b0f31 100644 QTime time = QTime::currentTime(); qsrand(time.minute() + time.second() + time.msec()); -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch b/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch new file mode 100644 index 0000000000..533c1ebce2 --- /dev/null +++ b/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch @@ -0,0 +1,25 @@ +From 7c69dfaa0629effaf4015c919026d56eb384f6d6 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 27 Dec 2014 14:58:27 +0000 +Subject: [PATCH 03/14] Win32: Link to Windows Terminal Services (wtsapi32) + +--- + octopi.pro | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/octopi.pro b/octopi.pro +index ccf88bf..535fa96 100644 +--- a/octopi.pro ++++ b/octopi.pro +@@ -119,6 +119,8 @@ TRANSLATIONS += resources/translations/octopi_pt_BR.ts \ + resources/translations/octopi_ja.ts \ + resources/translations/octopi_eu.ts + ++win32: LIBS += -lwtsapi32 ++ + greaterThan(QT_MAJOR_VERSION, 4){ + TRANSLATIONS += resources/translations/octopi_ast.ts + } +-- +2.2.1 + diff --git a/mingw-w64-octopi-git/0003-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch b/mingw-w64-octopi-git/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch similarity index 87% rename from mingw-w64-octopi-git/0003-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch rename to mingw-w64-octopi-git/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch index ab76f7ad89..90d9a6edab 100644 --- a/mingw-w64-octopi-git/0003-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch +++ b/mingw-w64-octopi-git/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch @@ -1,7 +1,7 @@ -From b56f1e751c60bc9b386942cb0491df394406491e Mon Sep 17 00:00:00 2001 +From 9d0d5e63d09fb46b8cbeb24b154c3c2360dbe7c6 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 30 Sep 2014 14:43:39 +0100 -Subject: [PATCH 03/13] Remove redundancy in UnixCommand's exe checking +Subject: [PATCH 04/14] Remove redundancy in UnixCommand's exe checking functions Check the result of UnixCommand::discoverBinaryPath() not @@ -12,7 +12,7 @@ repeating much the same code. 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index 6ab57b9..dff3ffb 100644 +index 9203eae..4dcfe42 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp @@ -81,6 +81,7 @@ QString UnixCommand::runCurlCommand(const QString& commandToRun){ @@ -35,7 +35,7 @@ index 6ab57b9..dff3ffb 100644 //If it still didn't find it, try "/sbin" dir... if (res.isEmpty()){ QFile fbin("/sbin/" + binary); -@@ -529,17 +535,7 @@ bool UnixCommand::isKtsussVersionOK() +@@ -507,17 +513,7 @@ bool UnixCommand::doInternetPingTest() */ bool UnixCommand::hasTheExecutable( const QString& exeName ) { @@ -55,5 +55,5 @@ index 6ab57b9..dff3ffb 100644 /* -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0004-Use-instead-of-QDir-separator.patch b/mingw-w64-octopi-git/0005-Use-instead-of-QDir-separator.patch similarity index 78% rename from mingw-w64-octopi-git/0004-Use-instead-of-QDir-separator.patch rename to mingw-w64-octopi-git/0005-Use-instead-of-QDir-separator.patch index c5a4166edf..54196c3401 100644 --- a/mingw-w64-octopi-git/0004-Use-instead-of-QDir-separator.patch +++ b/mingw-w64-octopi-git/0005-Use-instead-of-QDir-separator.patch @@ -1,17 +1,17 @@ -From 2ec0488322caf88eab092956ef1769d67469a5f7 Mon Sep 17 00:00:00 2001 +From 26067da1bc6ff917aedb01cc5615a6dbc265ed28 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 28 Sep 2014 23:12:28 +0100 -Subject: [PATCH 04/13] Use '/' instead of QDir::separator() +Subject: [PATCH 05/14] Use '/' instead of QDir::separator() --- src/utils.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils.cpp b/src/utils.cpp -index 04ad195..522a9bd 100644 +index 74c4f38..ef95aa4 100644 --- a/src/utils.cpp +++ b/src/utils.cpp -@@ -230,17 +230,17 @@ QString utils::showFullPathOfItem( const QModelIndex &index ){ +@@ -236,17 +236,17 @@ QString utils::showFullPathOfItem( const QModelIndex &index ){ if ( nindex != sim->invisibleRootItem()->index() ) sl << sim->itemFromIndex( nindex )->text(); else break; } @@ -33,5 +33,5 @@ index 04ad195..522a9bd 100644 } -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0005-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch b/mingw-w64-octopi-git/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch similarity index 70% rename from mingw-w64-octopi-git/0005-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch rename to mingw-w64-octopi-git/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch index 0a9551145b..1dc1e34dd4 100644 --- a/mingw-w64-octopi-git/0005-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch +++ b/mingw-w64-octopi-git/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch @@ -1,17 +1,17 @@ -From 43e2e0cb559605e3fab7c708b54e360b688dd752 Mon Sep 17 00:00:00 2001 +From 088b383f00b1cebcaddbcae9f93ff639278936a7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 28 Sep 2014 23:15:23 +0100 -Subject: [PATCH 05/13] Append to instead of overwrite m_readAllStandardOutput +Subject: [PATCH 06/14] Append to instead of overwrite m_readAllStandardOutput --- src/unixcommand.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index dff3ffb..7badd37 100644 +index 4dcfe42..4e129fa 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp -@@ -660,7 +660,7 @@ void UnixCommand::executeCommandAsNormalUser(const QString &pCommand) +@@ -638,7 +638,7 @@ void UnixCommand::executeCommandAsNormalUser(const QString &pCommand) void UnixCommand::processReadyReadStandardOutput() { if (m_process->isOpen()) @@ -21,5 +21,5 @@ index dff3ffb..7badd37 100644 /* -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0006-Define-QT_WA.patch b/mingw-w64-octopi-git/0007-Define-QT_WA.patch similarity index 86% rename from mingw-w64-octopi-git/0006-Define-QT_WA.patch rename to mingw-w64-octopi-git/0007-Define-QT_WA.patch index e60c575c3a..e8362b80ad 100644 --- a/mingw-w64-octopi-git/0006-Define-QT_WA.patch +++ b/mingw-w64-octopi-git/0007-Define-QT_WA.patch @@ -1,7 +1,7 @@ -From cecc10020b4189b1a94144104c83149c15472b4e Mon Sep 17 00:00:00 2001 +From 30443cb6490f9b02d717a3110921b6775e12ca75 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:02:24 +0100 -Subject: [PATCH 06/13] Define QT_WA +Subject: [PATCH 07/14] Define QT_WA --- src/QtSolutions/qtlockedfile_win.cpp | 2 ++ @@ -21,5 +21,5 @@ index 4cd2003..c28aae8 100755 { if (mutexname.isEmpty()) { -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0007-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch b/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch similarity index 78% rename from mingw-w64-octopi-git/0007-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch rename to mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch index b3b9cc5f98..bcc22a8d4c 100644 --- a/mingw-w64-octopi-git/0007-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch +++ b/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch @@ -1,7 +1,7 @@ -From 17856a5266bb270f255ca29bd64ababadf919fc7 Mon Sep 17 00:00:00 2001 +From 17a55cd8f40387cb50424ccf2b2afd65c63c3911 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:31:32 +0100 -Subject: [PATCH 07/13] MSYS2: Add ectn_MSYS2 as a LinuxDistro +Subject: [PATCH 08/14] MSYS2: Add ectn_MSYS2 as a LinuxDistro --- src/unixcommand.cpp | 4 ++++ @@ -9,10 +9,10 @@ Subject: [PATCH 07/13] MSYS2: Add ectn_MSYS2 as a LinuxDistro 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index 7badd37..e315306 100644 +index 4e129fa..6b5a913 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp -@@ -863,6 +863,9 @@ QStringList UnixCommand::getIgnorePkg() +@@ -842,6 +842,9 @@ QStringList UnixCommand::getIgnorePkg() LinuxDistro UnixCommand::getLinuxDistro() { static LinuxDistro ret; @@ -22,7 +22,7 @@ index 7badd37..e315306 100644 static bool firstTime = true; if (firstTime) -@@ -922,6 +925,7 @@ LinuxDistro UnixCommand::getLinuxDistro() +@@ -901,6 +904,7 @@ LinuxDistro UnixCommand::getLinuxDistro() file.close(); } } @@ -31,7 +31,7 @@ index 7badd37..e315306 100644 return ret; } diff --git a/src/unixcommand.h b/src/unixcommand.h -index 89b0f31..9efebd2 100644 +index 4f8837e..6722a2f 100644 --- a/src/unixcommand.h +++ b/src/unixcommand.h @@ -37,7 +37,7 @@ enum CommandExecuting { ectn_NONE, ectn_MIRROR_CHECK, ectn_SYNC_DATABASE, @@ -44,5 +44,5 @@ index 89b0f31..9efebd2 100644 //Forward class declarations. class QString; -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0008-MSYS2-Add-getMSYS2Root.patch b/mingw-w64-octopi-git/0009-MSYS2-Add-getMSYS2Root.patch similarity index 89% rename from mingw-w64-octopi-git/0008-MSYS2-Add-getMSYS2Root.patch rename to mingw-w64-octopi-git/0009-MSYS2-Add-getMSYS2Root.patch index 452cdc7bc2..c9b5b158e1 100644 --- a/mingw-w64-octopi-git/0008-MSYS2-Add-getMSYS2Root.patch +++ b/mingw-w64-octopi-git/0009-MSYS2-Add-getMSYS2Root.patch @@ -1,7 +1,7 @@ -From 2d12eebb560c360c7fe166c20dea349e3407f14e Mon Sep 17 00:00:00 2001 +From 1bf02c1342a8d4a01b5462bc320ff730300324b5 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:38:23 +0100 -Subject: [PATCH 08/13] MSYS2: Add getMSYS2Root() +Subject: [PATCH 09/14] MSYS2: Add getMSYS2Root() Because MSYS2 can be installed anywhere, the real location is determined using a relative path from octopi.exe @@ -11,7 +11,7 @@ is determined using a relative path from octopi.exe 2 files changed, 20 insertions(+) diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index e315306..c7ee8ee 100644 +index 6b5a913..f74ca45 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp @@ -37,6 +37,7 @@ @@ -23,7 +23,7 @@ index e315306..c7ee8ee 100644 /* * Executes given command and returns the StandardError Output. diff --git a/src/unixcommand.h b/src/unixcommand.h -index 9efebd2..833716b 100644 +index 6722a2f..3ac54a9 100644 --- a/src/unixcommand.h +++ b/src/unixcommand.h @@ -24,6 +24,7 @@ @@ -42,7 +42,7 @@ index 9efebd2..833716b 100644 public: UnixCommand(QObject *parent); -@@ -115,6 +117,14 @@ public: +@@ -114,6 +116,14 @@ public: return (uid == 0); //Returns TRUE if root is running Octopi } @@ -57,7 +57,7 @@ index 9efebd2..833716b 100644 static QProcessEnvironment const& getEnv(){ if (!m_env) { -@@ -125,6 +135,15 @@ public: +@@ -124,6 +134,15 @@ public: m_env->insert("LANG", "C"); m_env->insert("LC_MESSAGES", "C"); m_env->insert("LC_ALL", "C"); @@ -74,5 +74,5 @@ index 9efebd2..833716b 100644 return *m_env; } -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0009-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch b/mingw-w64-octopi-git/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch similarity index 73% rename from mingw-w64-octopi-git/0009-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch rename to mingw-w64-octopi-git/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch index 6312988ad3..668552e519 100644 --- a/mingw-w64-octopi-git/0009-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch +++ b/mingw-w64-octopi-git/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch @@ -1,7 +1,7 @@ -From 053addd81cc0ee73faf3fc308294069acb982d10 Mon Sep 17 00:00:00 2001 +From 61d5d5035f1d237b462e2b21c7d3c6ae28ca414a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:40:36 +0100 -Subject: [PATCH 09/13] MSYS2: hasPacmanDatabase() getMSYS2Root() changes +Subject: [PATCH 10/14] MSYS2: hasPacmanDatabase() getMSYS2Root() changes --- src/package.cpp | 11 ++++++++++- @@ -9,10 +9,10 @@ Subject: [PATCH 09/13] MSYS2: hasPacmanDatabase() getMSYS2Root() changes 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/package.cpp b/src/package.cpp -index 3795e54..648edb6 100644 +index fe33dba..a282930 100644 --- a/src/package.cpp +++ b/src/package.cpp -@@ -1210,7 +1210,16 @@ bool Package::hasPacmanDatabase() +@@ -1184,7 +1184,16 @@ bool Package::hasPacmanDatabase() if (!done) { @@ -31,13 +31,13 @@ index 3795e54..648edb6 100644 done = true; } diff --git a/src/package.h b/src/package.h -index 173f714..cb2b4f0 100644 +index 9f9dffd..371e7c1 100644 --- a/src/package.h +++ b/src/package.h -@@ -40,8 +40,9 @@ const QString ctn_STRING_RELEASES = "(alfa|beta|rc|pre|patch|^[0-9]{8}$|(^[rR] - const QString ctn_DATE_RELEASE = "^[0-9]{8}$"; - const QString ctn_NO_MATCH = "not found!"; +@@ -32,8 +32,9 @@ + #include + const QString ctn_TEMP_ACTIONS_FILE ( QDir::tempPath() + QDir::separator() + ".qt_temp_" ); -const QString ctn_PACMAN_DATABASE_DIR = "/var/lib/pacman"; -const QString ctn_PACMAN_CORE_DB_FILE = "/var/lib/pacman/sync/core.db"; +const QString ctn_PACMAN_DATABASE_DIR = "/var/lib/pacman"; @@ -47,5 +47,5 @@ index 173f714..cb2b4f0 100644 enum PackageStatus { ectn_INSTALLED, ectn_NON_INSTALLED, ectn_OUTDATED, ectn_NEWER, ectn_FOREIGN, ectn_FOREIGN_OUTDATED }; -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0010-MSYS2-Changes-to-various-system-calls.patch b/mingw-w64-octopi-git/0011-MSYS2-Changes-to-various-system-calls.patch similarity index 81% rename from mingw-w64-octopi-git/0010-MSYS2-Changes-to-various-system-calls.patch rename to mingw-w64-octopi-git/0011-MSYS2-Changes-to-various-system-calls.patch index f8adf9439d..97d788f7ee 100644 --- a/mingw-w64-octopi-git/0010-MSYS2-Changes-to-various-system-calls.patch +++ b/mingw-w64-octopi-git/0011-MSYS2-Changes-to-various-system-calls.patch @@ -1,7 +1,7 @@ -From fd2fc2c3355b5ed7a362133d6f1197e1a98a4cb3 Mon Sep 17 00:00:00 2001 +From a012bce22a13e63cb621043e0b76cc9c75415c55 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:42:50 +0100 -Subject: [PATCH 10/13] MSYS2: Changes to various system calls +Subject: [PATCH 11/14] MSYS2: Changes to various system calls openRootTerminal(), runCommandInTerminal() getSUCommand(), isRootRunning() @@ -14,14 +14,14 @@ isRootRunning() returns false src/terminal.cpp | 12 +++++++++++- src/unixcommand.h | 6 ++++++ src/wmhelper.cpp | 5 ++++- - src/wmhelper.h | 2 ++ - 4 files changed, 23 insertions(+), 2 deletions(-) + src/wmhelper.h | 1 + + 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/terminal.cpp b/src/terminal.cpp -index 5085007..a026994 100644 +index bec9273..eb4293c 100644 --- a/src/terminal.cpp +++ b/src/terminal.cpp -@@ -198,7 +198,12 @@ void Terminal::openRootTerminal() +@@ -205,7 +205,12 @@ void Terminal::openRootTerminal() { if (m_selectedTerminal == ctn_AUTOMATIC) { @@ -35,7 +35,7 @@ index 5085007..a026994 100644 { QString cmd = WMHelper::getSUCommand() + " \"" + ctn_RXVT_TERMINAL + " -name Urxvt -title Urxvt \""; -@@ -344,6 +349,11 @@ void Terminal::runCommandInTerminal(const QStringList &commandList) +@@ -359,6 +364,11 @@ void Terminal::runCommandInTerminal(const QStringList &commandList) if (m_selectedTerminal == ctn_AUTOMATIC) { @@ -48,10 +48,10 @@ index 5085007..a026994 100644 { QString cmd = diff --git a/src/unixcommand.h b/src/unixcommand.h -index 833716b..81eed8c 100644 +index 3ac54a9..2ddd7df 100644 --- a/src/unixcommand.h +++ b/src/unixcommand.h -@@ -112,10 +112,16 @@ public: +@@ -111,10 +111,16 @@ public: static bool hasTheExecutable( const QString& exeName ); static bool isAppRunning(const QString &appName, bool justOneInstance = false); @@ -69,10 +69,10 @@ index 833716b..81eed8c 100644 static QString getMSYS2Root(){ if (m_msys2Root.isEmpty()) diff --git a/src/wmhelper.cpp b/src/wmhelper.cpp -index 187087e..4ce7e1a 100644 +index 487c41d..9eaabe3 100644 --- a/src/wmhelper.cpp +++ b/src/wmhelper.cpp -@@ -292,7 +292,10 @@ QString WMHelper::getGKSUCommand(){ +@@ -298,7 +298,10 @@ QString WMHelper::getGKSUCommand(){ QString WMHelper::getSUCommand(){ QString result(ctn_NO_SU_COMMAND); @@ -85,18 +85,17 @@ index 187087e..4ce7e1a 100644 } else if (isKDERunning() && UnixCommand::hasTheExecutable(ctn_KDESU)){ diff --git a/src/wmhelper.h b/src/wmhelper.h -index e96e0b4..ae9405c 100644 +index 8a941a4..aaff77e 100644 --- a/src/wmhelper.h +++ b/src/wmhelper.h -@@ -25,6 +25,8 @@ +@@ -25,6 +25,7 @@ const QString ctn_NO_SU_COMMAND("none"); const QString ctn_ROOT_SH("/bin/sh -c "); +const QString ctn_MSYS2_SH("cmd.exe /c "); -+ + const QString ctn_KDESU("kdesu"); - const QString ctn_KDE_DESKTOP("kwin"); - const QString ctn_KDE_EDITOR("kwrite"); + -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0011-MSYS2-Process-id-changes-WIP.patch b/mingw-w64-octopi-git/0012-MSYS2-Process-id-changes-WIP.patch similarity index 87% rename from mingw-w64-octopi-git/0011-MSYS2-Process-id-changes-WIP.patch rename to mingw-w64-octopi-git/0012-MSYS2-Process-id-changes-WIP.patch index 8a3b40d5a7..c2cc784584 100644 --- a/mingw-w64-octopi-git/0011-MSYS2-Process-id-changes-WIP.patch +++ b/mingw-w64-octopi-git/0012-MSYS2-Process-id-changes-WIP.patch @@ -1,7 +1,7 @@ -From 04b82c70625fefea765893c9ca2512de00edc10c Mon Sep 17 00:00:00 2001 +From 2bf0c25d3dbb84de054bc48aea74ab252fac679a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:44:22 +0100 -Subject: [PATCH 11/13] MSYS2: Process id changes (WIP) +Subject: [PATCH 12/14] MSYS2: Process id changes (WIP) --- notifier/octopi-notifier/octopi-notifier.pro | 2 + @@ -9,10 +9,10 @@ Subject: [PATCH 11/13] MSYS2: Process id changes (WIP) 2 files changed, 79 insertions(+) diff --git a/notifier/octopi-notifier/octopi-notifier.pro b/notifier/octopi-notifier/octopi-notifier.pro -index fc942b1..262822a 100644 +index ef7b69c..e91bd00 100644 --- a/notifier/octopi-notifier/octopi-notifier.pro +++ b/notifier/octopi-notifier/octopi-notifier.pro -@@ -49,6 +49,8 @@ HEADERS += \ +@@ -47,6 +47,8 @@ HEADERS += \ ../../src/utils.h \ ../../src/transactiondialog.h @@ -22,7 +22,7 @@ index fc942b1..262822a 100644 RESOURCES += \ diff --git a/src/utils.cpp b/src/utils.cpp -index 522a9bd..bd18a79 100644 +index ef95aa4..c1e3d22 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -35,6 +35,12 @@ @@ -38,7 +38,7 @@ index 522a9bd..bd18a79 100644 /* * The needed constructor -@@ -77,8 +83,63 @@ void utils::ProcessWrapper::onProcessStarted() +@@ -83,8 +89,63 @@ void utils::ProcessWrapper::onProcessStarted() emit startedTerminal(); } @@ -102,7 +102,7 @@ index 522a9bd..bd18a79 100644 QString out; QProcess proc; proc.start(ps_args); -@@ -87,6 +148,7 @@ QString Ps_To_Q_PIDs(QString ps_args) +@@ -93,6 +154,7 @@ QString Ps_To_Q_PIDs(QString ps_args) proc.close(); return out; } @@ -110,7 +110,7 @@ index 522a9bd..bd18a79 100644 QStringList Ps_To_Q_PIDs_SL(QString ps_args) { -@@ -95,6 +157,20 @@ QStringList Ps_To_Q_PIDs_SL(QString ps_args) +@@ -101,6 +163,20 @@ QStringList Ps_To_Q_PIDs_SL(QString ps_args) return list; } @@ -131,7 +131,7 @@ index 522a9bd..bd18a79 100644 /* * Returns the _PROCESS_INFORMATION* on Windows, does nothing on * others. -@@ -108,6 +184,7 @@ int Q_PID_to_int(Q_PID in_pid) +@@ -114,6 +190,7 @@ int Q_PID_to_int(Q_PID in_pid) { return in_pid; } @@ -140,5 +140,5 @@ index 522a9bd..bd18a79 100644 /* * We need this to search for the SH process pid (which spaws AUR tool) -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0012-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch b/mingw-w64-octopi-git/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch similarity index 75% rename from mingw-w64-octopi-git/0012-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch rename to mingw-w64-octopi-git/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch index 7891638fd0..663f1c3af9 100644 --- a/mingw-w64-octopi-git/0012-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch +++ b/mingw-w64-octopi-git/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch @@ -1,7 +1,7 @@ -From 7fda7d9ca5ffd6cd5c27fb338f740e2753438234 Mon Sep 17 00:00:00 2001 +From b14a551bf09d9735d949f26a62e76ddb0a607f9e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 28 Sep 2014 23:14:17 +0100 -Subject: [PATCH 12/13] MSYS2: Prepend getMSYS2Root() to file checks +Subject: [PATCH 13/14] MSYS2: Prepend getMSYS2Root() to file checks --- src/mainwindow_refresh.cpp | 2 +- @@ -9,10 +9,10 @@ Subject: [PATCH 12/13] MSYS2: Prepend getMSYS2Root() to file checks 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mainwindow_refresh.cpp b/src/mainwindow_refresh.cpp -index a94bfe7..8b3403d 100644 +index 7a8bbf6..422d27d 100644 --- a/src/mainwindow_refresh.cpp +++ b/src/mainwindow_refresh.cpp -@@ -995,7 +995,7 @@ void MainWindow::refreshTabFiles(bool clearContents, bool neverQuit) +@@ -993,7 +993,7 @@ void MainWindow::refreshTabFiles(bool clearContents, bool neverQuit) //Let's test if it is not a symbolic link to a dir if(!isDir) { @@ -22,10 +22,10 @@ index a94bfe7..8b3403d 100644 { QFileInfo fiTestForDir(fiTestForSymLink.symLinkTarget()); diff --git a/src/utils.cpp b/src/utils.cpp -index bd18a79..2f21988 100644 +index c1e3d22..3bf5f55 100644 --- a/src/utils.cpp +++ b/src/utils.cpp -@@ -314,7 +314,7 @@ QString utils::showFullPathOfItem( const QModelIndex &index ){ +@@ -320,7 +320,7 @@ QString utils::showFullPathOfItem( const QModelIndex &index ){ str += sl[i]; } @@ -35,5 +35,5 @@ index bd18a79..2f21988 100644 { str += QLatin1Char('/'); -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/0013-MSYS2-Support-discoverBinaryPath.patch b/mingw-w64-octopi-git/0014-MSYS2-Support-discoverBinaryPath.patch similarity index 84% rename from mingw-w64-octopi-git/0013-MSYS2-Support-discoverBinaryPath.patch rename to mingw-w64-octopi-git/0014-MSYS2-Support-discoverBinaryPath.patch index 78ac9802ea..15c83e9ed0 100644 --- a/mingw-w64-octopi-git/0013-MSYS2-Support-discoverBinaryPath.patch +++ b/mingw-w64-octopi-git/0014-MSYS2-Support-discoverBinaryPath.patch @@ -1,14 +1,14 @@ -From eca5466d4591b75e7f095a99759b9f3fcdff1ee6 Mon Sep 17 00:00:00 2001 +From bb55472d49d8a9f238b9561b798390ec5c693be1 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 30 Sep 2014 19:12:30 +0100 -Subject: [PATCH 13/13] MSYS2: Support discoverBinaryPath() +Subject: [PATCH 14/14] MSYS2: Support discoverBinaryPath() --- src/unixcommand.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index c7ee8ee..afeb60b 100644 +index f74ca45..5a76a78 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp @@ -84,7 +84,12 @@ QString UnixCommand::discoverBinaryPath(const QString& binary){ @@ -26,5 +26,5 @@ index c7ee8ee..afeb60b 100644 QString res = proc.readAllStandardOutput(); -- -2.1.1 +2.2.1 diff --git a/mingw-w64-octopi-git/PKGBUILD b/mingw-w64-octopi-git/PKGBUILD index e6c588b684..b7f30a621a 100644 --- a/mingw-w64-octopi-git/PKGBUILD +++ b/mingw-w64-octopi-git/PKGBUILD @@ -5,7 +5,7 @@ _realname=octopi pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" #_qmake=${MINGW_PREFIX}/bin/qmake _qmake=${MINGW_PREFIX}/qt5-static/bin/qmake -pkgver=r671.97ec878 +pkgver=r730.f608397 pkgrel=1 pkgdesc="a powerful Pacman frontend using Qt libs" arch=('any') @@ -21,31 +21,33 @@ _gitname="octopi" source=("${_gitname}"::"${_gitroot}" "0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch" "0002-Use-a-shared-QProcessEnvironment.patch" - "0003-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch" - "0004-Use-instead-of-QDir-separator.patch" - "0005-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch" - "0006-Define-QT_WA.patch" - "0007-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch" - "0008-MSYS2-Add-getMSYS2Root.patch" - "0009-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch" - "0010-MSYS2-Changes-to-various-system-calls.patch" - "0011-MSYS2-Process-id-changes-WIP.patch" - "0012-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch" - "0013-MSYS2-Support-discoverBinaryPath.patch") + "0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch" + "0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch" + "0005-Use-instead-of-QDir-separator.patch" + "0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch" + "0007-Define-QT_WA.patch" + "0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch" + "0009-MSYS2-Add-getMSYS2Root.patch" + "0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch" + "0011-MSYS2-Changes-to-various-system-calls.patch" + "0012-MSYS2-Process-id-changes-WIP.patch" + "0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch" + "0014-MSYS2-Support-discoverBinaryPath.patch") md5sums=('SKIP' - 'f5baf34e5834b95f04a1bbd6885dc8ab' - 'b80912396c5be0e2ef450f3a75945027' - '194ae04782fa018f2ceb64ddc0c1b087' - '24423cf4a7c532035e4f6fa6bd86bc9f' - '84eb736c06916a2d05c5fab44f5feab5' - '9a261ef5f6b084fb9319664a74bfe7c0' - 'ecdc6eff22e0f05ac90f5bec6dc33634' - 'c46a14fe574e2644dec65e86df8d2668' - '0fb8880f45775600bbfc82975c539470' - '5a75614737395d6b298f0a6b81592526' - '5376cfe7257c9f955da81bbfa32d27f8' - '3d153445783441dfa6e0e5aa3002c61d' - '927a964d6b3d4ee3ac1f56a43b008839') + '14f2293a146b8176b1c2d3f891888a0c' + '40d4357b9e366c50e98cd908b1279161' + 'e8807ccc0a54ebbdf93e536e9e469648' + '49ecb13fc892b859305e5f69c0c4ec8a' + '6e8bb5e755a235dfb357de7efa85d056' + '7c62726b0f78ec77c23b184d56690b50' + '5fdf5a1f98f35056f644f5e737aff1bb' + '29d13a057f9ec713161053a8ddbec15c' + '9b357be4d23950ccc95e8094019a1720' + '323746db99cb47baac9bc9e16cf03779' + '0661f99448d514cfbbad9c4518ce7bee' + 'b6f4bdd710636b085b8e308cdda2ac9e' + '0ccb4c7e0c318cc9e960fb5d9e2fb295' + '2bbf0cc4a5701700007a55c83c7e311b') pkgver() { cd "$srcdir/$_realname" @@ -57,17 +59,18 @@ prepare() { git am "${srcdir}"/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch git am "${srcdir}"/0002-Use-a-shared-QProcessEnvironment.patch - git am "${srcdir}"/0003-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch - git am "${srcdir}"/0004-Use-instead-of-QDir-separator.patch - git am "${srcdir}"/0005-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch - git am "${srcdir}"/0006-Define-QT_WA.patch - git am "${srcdir}"/0007-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch - git am "${srcdir}"/0008-MSYS2-Add-getMSYS2Root.patch - git am "${srcdir}"/0009-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch - git am "${srcdir}"/0010-MSYS2-Changes-to-various-system-calls.patch - git am "${srcdir}"/0011-MSYS2-Process-id-changes-WIP.patch - git am "${srcdir}"/0012-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch - git am "${srcdir}"/0013-MSYS2-Support-discoverBinaryPath.patch + git am "${srcdir}"/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch + git am "${srcdir}"/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch + git am "${srcdir}"/0005-Use-instead-of-QDir-separator.patch + git am "${srcdir}"/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch + git am "${srcdir}"/0007-Define-QT_WA.patch + git am "${srcdir}"/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch + git am "${srcdir}"/0009-MSYS2-Add-getMSYS2Root.patch + git am "${srcdir}"/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch + git am "${srcdir}"/0011-MSYS2-Changes-to-various-system-calls.patch + git am "${srcdir}"/0012-MSYS2-Process-id-changes-WIP.patch + git am "${srcdir}"/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch + git am "${srcdir}"/0014-MSYS2-Support-discoverBinaryPath.patch } build() { From fbba3e5a79cfdfaf0e8a2908b53e0f9ba1c1b7ab Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 26 Dec 2014 22:49:51 +0300 Subject: [PATCH 0222/2060] mingw-w64 runtime update to git SHA [404d457] --- mingw-w64-crt-git/PKGBUILD | 2 +- mingw-w64-headers-git/PKGBUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index fe70172565..393c59966d 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _ver_base=4.0.0 -pkgver=4.0.0.4376.d6916b1 +pkgver=4.0.0.4384.404d457 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 706742d0a3..ae311952e8 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" _ver_base=4.0.0 -pkgver=4.0.0.4374.811484d +pkgver=4.0.0.4384.404d457 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From 2c662de5e282b179d2fcf02fdc0709a98b71df6f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 27 Dec 2014 14:55:35 +0300 Subject: [PATCH 0223/2060] binutils-git: Remove fromm toolchain group to not conflict with binutils. --- mingw-w64-binutils-git/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-binutils-git/PKGBUILD b/mingw-w64-binutils-git/PKGBUILD index 934b25a149..559fccd7b2 100644 --- a/mingw-w64-binutils-git/PKGBUILD +++ b/mingw-w64-binutils-git/PKGBUILD @@ -6,14 +6,14 @@ _base_ver=2.25 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") # replaces="${MINGW_PACKAGE_PREFIX}-${_realname}=${_base_ver}" pkgver=2.25.r81689.f30b244 -pkgrel=2 +pkgrel=3 provides=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('any') url="http://www.gnu.org/software/binutils/" license=('GPL') -groups=("${MINGW_PACKAGE_PREFIX}-toolchain") +#groups=("${MINGW_PACKAGE_PREFIX}-toolchain") depends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib") #checkdepends=('dejagnu' 'bc') makedepends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib") From 131da4bacd5d45da8907334c02bf37130455fdad Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 27 Dec 2014 14:58:17 +0300 Subject: [PATCH 0224/2060] firebird-git: Apply patches on top of original sources. --- mingw-w64-firebird-git/PKGBUILD | 22 +- mingw-w64-firebird-git/firebird-mingw.diff | 928 +++++++++++++++++++++ mingw-w64-firebird-git/firebird-msys.diff | 56 ++ 3 files changed, 998 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-firebird-git/firebird-mingw.diff create mode 100644 mingw-w64-firebird-git/firebird-msys.diff diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD index 5e69110531..08c3a350d6 100644 --- a/mingw-w64-firebird-git/PKGBUILD +++ b/mingw-w64-firebird-git/PKGBUILD @@ -2,7 +2,7 @@ _realname='firebird' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=3.0.0.31463.ba739e2 +pkgver=3.0.0.31514.b244095 pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features (mingw-w64)" url="http://www.firebirdsql.org/" @@ -24,11 +24,14 @@ makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird pre "git" ) options=('!debug' 'strip') -source=(#"${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git#branch=mingw-w64-trunk" - "${_realname}"::"git+https://Alexpux@bitbucket.org/msys2/firebird.git#branch=mingw-w64-trunk" +source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git" + #"${_realname}"::"git+https://Alexpux@bitbucket.org/msys2/firebird.git#branch=mingw-w64-trunk" #"${_realname}"::"git+file:///v/Sources/GNU/firebird-git#branch=mingw-w64-trunk" - ) -sha256sums=('SKIP') + firebird-mingw.diff + firebird-msys.diff) +sha256sums=('SKIP' + '5c8e225c0412ca9d67249658b0ba08ef9e701c1ba51b98a0e6e1771ca0e3dc64' + '0852dd5d8d919c7a448be60369f7b246893f35666d8748e305b4d03f767dca62') pkgver() { cd "${_realname}" @@ -37,6 +40,11 @@ pkgver() { } prepare() { + cd ${_realname} + git am ${srcdir}/firebird-mingw.diff + git am ${srcdir}/firebird-msys.diff + cd .. + mv "${_realname}" "${CARCH}" cd "${CARCH}" NOCONFIGURE=1 ./autogen.sh @@ -59,9 +67,7 @@ build() { --enable-shared \ ${_debug_conf} \ --disable-rpath \ - --enable-superserver \ - --with-fbdoc=${MINGW_PREFIX}/share/${_realname}/doc \ - --with-system-icu + --with-fbdoc=${MINGW_PREFIX}/share/${_realname}/doc CC=${MINGW_PREFIX}/bin/gcc \ make -j1 diff --git a/mingw-w64-firebird-git/firebird-mingw.diff b/mingw-w64-firebird-git/firebird-mingw.diff new file mode 100644 index 0000000000..f7e5a68995 --- /dev/null +++ b/mingw-w64-firebird-git/firebird-mingw.diff @@ -0,0 +1,928 @@ +From 9f8b55777a35672df83a2e24b706980931763757 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Thu, 18 Dec 2014 23:47:12 +0300 +Subject: [PATCH] Resolve conflict with STRING type from mingw-w64 + +--- + src/dsql/Parser.cpp | 6 +++--- + src/dsql/parse.y | 16 ++++++++-------- + src/yvalve/preparse.cpp | 16 +++++++------- + 3 files changed, 19 insertions(+), 19 deletions(-) + +diff --git a/src/dsql/Parser.cpp b/src/dsql/Parser.cpp +index dfd4834..f87a683 100644 +--- a/src/dsql/Parser.cpp ++++ b/src/dsql/Parser.cpp +@@ -536,7 +536,7 @@ int Parser::yylexAux() + mark.str = yylval.intlStringPtr; + strMarks.put(mark.str, mark); + +- return STRING; ++ return TOK_STRING; + } + + /* +@@ -656,7 +656,7 @@ int Parser::yylexAux() + + yylval.intlStringPtr = newIntlString(temp, "BINARY"); + +- return STRING; ++ return TOK_STRING; + } // if (!hexerror)... + + // If we got here, there was a parsing error. Set the +@@ -702,7 +702,7 @@ int Parser::yylexAux() + mark.str = yylval.intlStringPtr; + strMarks.put(mark.str, mark); + +- return STRING; ++ return TOK_STRING; + } + } + +diff --git a/src/dsql/parse.y b/src/dsql/parse.y +index a82b29a..8f74669 100644 +--- a/src/dsql/parse.y ++++ b/src/dsql/parse.y +@@ -336,7 +336,7 @@ using namespace Firebird; + %token SYMBOL + %token NUMBER + +-%token STRING ++%token TOK_STRING + %token INTRODUCER + + // New tokens added v5.0 +@@ -3185,7 +3185,7 @@ err($exceptionArray) + item.type = ExceptionItem::SQL_CODE; + item.code = $2; + } +- | SQLSTATE STRING ++ | SQLSTATE TOK_STRING + { + ExceptionItem& item = $exceptionArray->add(); + item.type = ExceptionItem::SQL_STATE; +@@ -6322,7 +6322,7 @@ map_from_symbol_name + + %type map_logoninfo + map_logoninfo +- : STRING ++ : TOK_STRING + | valid_symbol_name { $$ = newNode($1->c_str()); } + ; + +@@ -6570,7 +6570,7 @@ u_constant + : u_numeric_constant + | sql_string + { $$ = MAKE_str_constant($1, lex.att_charset); } +- | DATE STRING ++ | DATE TOK_STRING + { + if (client_dialect < SQL_DIALECT_V6_TRANSITION) + { +@@ -6586,7 +6586,7 @@ u_constant + } + $$ = MAKE_constant($2->getString().c_str(), CONSTANT_DATE); + } +- | TIME STRING ++ | TIME TOK_STRING + { + if (client_dialect < SQL_DIALECT_V6_TRANSITION) + { +@@ -6602,7 +6602,7 @@ u_constant + } + $$ = MAKE_constant($2->getString().c_str(), CONSTANT_TIME); + } +- | TIMESTAMP STRING ++ | TIMESTAMP TOK_STRING + { $$ = MAKE_constant($2->getString().c_str(), CONSTANT_TIMESTAMP); } + ; + +@@ -6646,8 +6646,8 @@ internal_info + + %type sql_string + sql_string +- : STRING // string in current charset +- | INTRODUCER STRING // string in specific charset ++ : TOK_STRING // string in current charset ++ | INTRODUCER TOK_STRING // string in specific charset + { + $$ = $2; + $$->setCharSet(*$1); +diff --git a/src/yvalve/preparse.cpp b/src/yvalve/preparse.cpp +index ce97168..60a6a0f 100644 +--- a/src/yvalve/preparse.cpp ++++ b/src/yvalve/preparse.cpp +@@ -89,7 +89,7 @@ enum token_vals { + TOKEN_TOO_LONG = -2, + UNEXPECTED_END_OF_COMMAND = -3, + UNEXPECTED_TOKEN = -4, +- STRING = 257, ++ TOK_STRING = 257, + NUMERIC = 258, + SYMBOL = 259 + }; +@@ -143,7 +143,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt, + return false; + } + +- if (get_token(status, STRING, false, &stmt, stmt_end, token)) ++ if (get_token(status, TOK_STRING, false, &stmt, stmt_end, token)) + { + return true; + } +@@ -193,7 +193,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt, + break; + + case PP_USER: +- if (get_token(status, STRING, false, &stmt, stmt_end, token)) ++ if (get_token(status, TOK_STRING, false, &stmt, stmt_end, token)) + { + get_out = true; + break; +@@ -204,7 +204,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt, + break; + + case PP_PASSWORD: +- if (get_token(status, STRING, false, &stmt, stmt_end, token)) ++ if (get_token(status, TOK_STRING, false, &stmt, stmt_end, token)) + { + get_out = true; + break; +@@ -217,7 +217,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt, + break; + + case PP_ROLE: +- if (get_token(status, STRING, false, &stmt, stmt_end, token)) ++ if (get_token(status, TOK_STRING, false, &stmt, stmt_end, token)) + { + get_out = true; + break; +@@ -231,7 +231,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt, + if (get_token(status, SYMBOL, false, &stmt, stmt_end, token) || + token.length() != pp_symbols[PP_NAMES].length || + token != pp_symbols[PP_NAMES].symbol || +- get_token(status, STRING, false, &stmt, stmt_end, token)) ++ get_token(status, TOK_STRING, false, &stmt, stmt_end, token)) + { + get_out = true; + break; +@@ -412,7 +412,7 @@ static SSHORT get_next_token(const SCHAR** stmt, const SCHAR* stmt_end, string& + token.erase(MAX_TOKEN_SIZE); + return TOKEN_TOO_LONG; + } +- return STRING; ++ return TOK_STRING; + } + + // Is it an integer? +@@ -514,6 +514,6 @@ static SSHORT get_token(IStatus* status, + + *stmt = temp_stmt; + generate_error(status, token, UNEXPECTED_TOKEN, +- (result == STRING) ? *(temp_stmt - 1) : 0); ++ (result == TOK_STRING) ? *(temp_stmt - 1) : 0); + return FB_FAILURE; + } +-- +2.2.0 + +From 309c65796d772150c249659f79f6d84dd9985d30 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 24 Nov 2014 22:12:17 +0300 +Subject: [PATCH] mingw-w64 have matherr routine + +--- + src/extlib/ib_udf.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/extlib/ib_udf.cpp b/src/extlib/ib_udf.cpp +index fc6d69c..5a6f21b 100644 +--- a/src/extlib/ib_udf.cpp ++++ b/src/extlib/ib_udf.cpp +@@ -50,10 +50,12 @@ extern "C" + #else + #define exception_type __exception + #endif ++#ifndef matherr + int MATHERR(struct exception_type*) + { + return 1; + } ++#endif + #undef exception_type + #endif // SOLARIS + #endif //__ICC +-- +2.2.0 + +From e705380c785638ef80fa737b8e7a4654c85986ab Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Fri, 28 Nov 2014 12:28:31 +0300 +Subject: [PATCH] Fix linkng error for mingw. + +--- + src/utilities/install/services.cpp | 2 ++ + 1 files changed, 2 insertions(+) + +diff --git a/src/utilities/install/services.cpp b/src/utilities/install/services.cpp +index 04abff3..f28e7fa 100644 +--- a/src/utilities/install/services.cpp ++++ b/src/utilities/install/services.cpp +@@ -563,6 +563,7 @@ USHORT SERVICES_grant_access_rights(const char* service_name, const TEXT* accoun + // Until the fb_assert could be converted to a function/object linked with each module + // we need this ugly workaround. + // ++#ifndef __MINGW32__ + extern "C" void API_ROUTINE gds__log(const TEXT* text, ...) + { + va_list ptr; +@@ -572,6 +573,7 @@ extern "C" void API_ROUTINE gds__log(const TEXT* text, ...) + va_end(ptr); + printf("\n\n"); + } ++#endif + + // + // EOF +-- +2.2.0 + +From 24cb71b609b43165672c75278985388b033f1806 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Sun, 30 Nov 2014 15:26:04 +0300 +Subject: [PATCH] DLL's are in BIN folder. + +--- + builds/posix/make.defaults | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults +index 90724e6..bd6f8cb +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -203,7 +203,7 @@ include $(ROOT)/gen/Make.Version + + vpath %.so $(LIB) + vpath %.a $(LIB) +-vpath %.dll $(LIB) ++vpath %.dll $(BIN) + + #_____________________________________________________________________________ + +-- +2.2.0 + +From a1b086945a7ed8952b3a4075d7badb18618dbdfb Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Sun, 30 Nov 2014 15:08:19 +0300 +Subject: [PATCH] Auto detect WINDRES with autoconf. +Fix building .rc files. + +--- + builds/posix/make.defaults | 4 +++- + builds/posix/make.rules | 4 ++-- + builds/posix/make.shared.targets | 14 +++++++------- + configure.ac | 10 ++++++++++ + 4 files changed, 22 insertions(+), 10 deletions(-) + +diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults +index 7ed6ec0..90724e6 +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -151,9 +151,11 @@ ECHO= echo + QUIET_ECHO= @echo + CD= cd + CAT= cat +-AR= ar @AR_OPTIONS@ ++AR= @AR@ @AR_OPTIONS@ + LN= @LN_S@ ++DLLTOOL= @DLLTOOL@ + RANLIB= @RANLIB@ ++RC= @RC@ + BTYACC=$(ROOT)/extern/btyacc/btyacc + + CC = @CC@ +diff --git a/builds/posix/make.rules b/builds/posix/make.rules +index ac717d1..01d9910 100644 +--- a/builds/posix/make.rules ++++ b/builds/posix/make.rules +@@ -103,4 +103,4 @@ $(OBJ)/%.o: $(SRC_ROOT)/%.cpp + # Rules for making resource files + +-$(GEN_ROOT)/%.res: $(SRC_ROOT)/%.rc +- windres --output-format=coff --include-dir=$( +Date: Wed, 19 Nov 2014 08:59:48 +0300 +Subject: [PATCH] Define AMD64 for 64-bit mingw. + +--- + configure.ac | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/configure.ac b/configure.ac +index ea1b81a..8db3f4c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -468,6 +468,11 @@ dnl CPU_TYPE=ppc64 + EDITLINE_FLG=N + RAW_DEVICES_FLG=N + SHRLIB_EXT=dll ++ case "$target" in ++ x86_64-*-mingw*) ++ AC_DEFINE(AMD64, 1, [Define this if CPU is amd64]) ++ ;; ++ esac + ;; + + *) +-- +2.2.0 + +From df3755c079857c16be06b17d17cd47d6f484f62d Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 23:16:18 +0300 +Subject: [PATCH] Use mingw-w64 crt for Vista and later. Remove unneeded +flag "-Dlint". Use GCC built-in define for mingw + +--- + builds/posix/prefix.mingw | 4 ++-- + src/common/classes/fb_atomic.h | 2 +- + src/iscguard/iscguard.cpp | 2 +- + src/isql/isql.epp | 4 ++-- + src/jrd/ibsetjmp.h | 2 +- + src/remote/server/os/win32/srvr_w32.cpp | 2 +- + 6 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw +index 5f8dde8..c469cb8 100644 +--- a/builds/posix/prefix.mingw ++++ b/builds/posix/prefix.mingw +@@ -20,8 +20,8 @@ + # + + # -Wno-unused-variable is used due to unused gpre generated variables +-PROD_FLAGS=-O2 -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor +-DEV_FLAGS=-ggdb -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor ++PROD_FLAGS=-O2 -D_WIN32_WINNT=0x0600 -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor ++DEV_FLAGS=-ggdb -D_WIN32_WINNT=0x0600 -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor + + PLATFORM_PATH=os/win32 + +diff --git a/src/common/classes/fb_atomic.h b/src/common/classes/fb_atomic.h +index f32b2b8..2e90ab6 100644 +--- a/src/common/classes/fb_atomic.h ++++ b/src/common/classes/fb_atomic.h +@@ -99,7 +99,7 @@ public: + } + + protected: +-#ifndef MINGW ++#ifndef __MINGW32__ + volatile + #endif + counter_type counter; +diff --git a/src/iscguard/iscguard.cpp b/src/iscguard/iscguard.cpp +index b1cf0f6..6d21508 100644 +--- a/src/iscguard/iscguard.cpp ++++ b/src/iscguard/iscguard.cpp +@@ -137,7 +137,7 @@ int WINAPI WinMain(HINSTANCE hInstance, + + // BRS There is a error in MinGW (3.1.0) headers + // the parameter of StartServiceCtrlDispatcher is declared const in msvc headers +-#if defined(MINGW) ++#if defined(__MINGW32__) + if (!StartServiceCtrlDispatcher(const_cast(service_table))) + #else + if (!StartServiceCtrlDispatcher(service_table)) +diff --git a/src/isql/isql.epp b/src/isql/isql.epp +index bc47170..92d1bd8 100644 +--- a/src/isql/isql.epp ++++ b/src/isql/isql.epp +@@ -7316,7 +7316,7 @@ static unsigned print_item(TEXT** s, const IsqlVar* var, const unsigned length) + break; + } + +-#if defined(MINGW) ++#if defined(__MINGW32__) + if (value == 0) + { + sprintf(p, "% #*.*g ", length, (int) MIN(8, (length - 6)) - 1, value); +@@ -7392,7 +7392,7 @@ static unsigned print_item(TEXT** s, const IsqlVar* var, const unsigned length) + } + else + { +-#if defined(MINGW) ++#if defined(__MINGW32__) + if (value == 0) + { + sprintf(p, "% #*.*g ", length, (int) MIN(16, (length - 7)) - 1, value); +diff --git a/src/jrd/ibsetjmp.h b/src/jrd/ibsetjmp.h +index 294b0dc..95cefdc 100644 +--- a/src/jrd/ibsetjmp.h ++++ b/src/jrd/ibsetjmp.h +@@ -49,7 +49,7 @@ + + #endif // UNIX + +-#if defined(WIN_NT) && !defined(MINGW) ++#if defined(WIN_NT) && !defined(__MINGW32__) + #include + #define START_CHECK_FOR_EXCEPTIONS(err) __try { + #define END_CHECK_FOR_EXCEPTIONS(err) } __except ( ISC_exception_post(GetExceptionCode(), err)) { } +diff --git a/src/remote/server/os/win32/srvr_w32.cpp b/src/remote/server/os/win32/srvr_w32.cpp +index b3abb64..b8551ab 100644 +--- a/src/remote/server/os/win32/srvr_w32.cpp ++++ b/src/remote/server/os/win32/srvr_w32.cpp +@@ -322,7 +322,7 @@ int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE /*hPrevInst*/, LPSTR lpszArgs, + + // BRS There is a error in MinGW (3.1.0) headers + // the parameter of StartServiceCtrlDispatcher is declared const in msvc headers +-#if defined(MINGW) ++#if defined(__MINGW32__) + if (!StartServiceCtrlDispatcher(const_cast(service_table))) + { + #else +-- +2.2.0 + +From dca9b4a320ec175c841a0818cf2884a4a82013b7 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Thu, 20 Nov 2014 07:31:40 +0300 +Subject: [PATCH] Add AuthSspi to remote common - needed for win32 target. + +--- + builds/posix/make.shared.variables | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/builds/posix/make.shared.variables b/builds/posix/make.shared.variables +index 2d3143f..53597e6 100644 +--- a/builds/posix/make.shared.variables ++++ b/builds/posix/make.shared.variables +@@ -52,7 +52,7 @@ AllObjects += $(YValve_Objects) + + + # Remote +-Remote_Common:= $(call dirObjects,remote) $(call dirObjects,auth/SecureRemotePassword) ++Remote_Common:= $(call dirObjects,remote) $(call dirObjects,auth/SecureRemotePassword) $(call dirObjects,auth/trusted) + Remote_Server:= $(call dirObjects,remote/server) $(call dirObjects,auth/SecureRemotePassword/server) + Remote_Client:= $(call dirObjects,remote/client) $(call dirObjects,auth/SecureRemotePassword/client) \ + $(call makeObjects,auth/SecurityDatabase,LegacyClient.cpp) \ +-- +2.2.0 + +From 6c42accb286598f4d8e7749b8e320c869c811e15 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 24 Nov 2014 09:08:35 +0300 +Subject: [PATCH] Some utilities need to link with additional windows libraries + +--- + builds/posix/Makefile.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in +index 86ea5da..34cafdc 100644 +--- a/builds/posix/Makefile.in ++++ b/builds/posix/Makefile.in +@@ -357,7 +357,7 @@ utilities: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix g + firebird_server: $(FB_DAEMON) + + $(FB_DAEMON): $(Remote_Server_Objects) $(COMMON_LIB) +- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) ++ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(LIB_GUI) + + fb_lock_print: $(LOCKPRINT) + +@@ -367,7 +367,7 @@ $(LOCKPRINT): $(LOCKPRINT_Objects) $(COMMON_LIB) + fbguard: $(FBGUARD) + + $(FBGUARD): $(FBGUARD_Objects) $(COMMON_LIB) +- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) ++ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(LIB_GUI) + + fbsvcmgr: $(FBSVCMGR) + +-- +2.2.0 + +From 2da7f65171d99bfcd666c5b84419d295fdebd039 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 24 Nov 2014 10:10:35 +0300 +Subject: [PATCH] Fix linking executables and libraries with resources. + Generate proper import libraries. + +--- + builds/posix/make.defaults | 9 +++++---- + builds/posix/Makefile.in.plugins_examples | 2 +- + builds/posix/prefix.mingw | 40 ++++++++++++++++++-------------------- + 3 files changed, 23 insertions(+), 28 deletions(-) + +diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults +index 1a091f6..b2d8939 +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -215,7 +215,7 @@ vpath %.dll $(LIB) + # + + #LibraryFileName=libfbclient +-LibraryFileName=libfbclient ++LibraryFileName=$(LIB_PREFIX)fbclient + LibraryFullName=$(LibraryFileName).${SHRLIB_EXT}.${FirebirdVersion} + LibrarySoName=$(LibraryFileName).${SHRLIB_EXT}.2 + LibraryBaseName=$(LibraryFileName).${SHRLIB_EXT} +@@ -226,7 +226,7 @@ LIBFIREBIRD_BASENAME = $(LIB)/$(LibrarySoName) + + # The firebird engine library name + +-EngineFileName=libEngine${OdsVersion} ++EngineFileName=$(LIB_PREFIX)Engine${OdsVersion} + EngineSoName=$(EngineFileName).${SHRLIB_EXT} + ENGINE_SONAME = $(PLUGINS)/$(EngineSoName) + +@@ -287,6 +287,7 @@ else + endif + LIB_PATH_OPTS = $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_RPATH,intl) + LIB_LINK_SONAME= -Wl,-soname,$(1) ++LIB_LINK_IMPLIB= + LIB_LINK_MAPFILE= -Wl,--version-script,$(1) + FIREBIRD_LIBRARY_LINK= -L$(LIB) -lfbclient $(MATHLIB) + +@@ -301,7 +302,7 @@ LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_ + LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util + + LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ +- $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) ++ $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_IMPLIB,$(LIB)/lib$(IbUtilLibraryName).a) + LINK_IB_UTIL_LIBS = $(THR_LIBS) + + LINK_INTL = $(LIB_LINK) $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ +@@ -313,7 +314,7 @@ LINK_TRACE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAG + LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) + + LINK_FIREBIRD = $(LIB_LINK) $(LINK_FIREBIRD_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\ +- $(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib) ++ $(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_IMPLIB,$(LIB)/lib$(LibraryBaseName).a) + LINK_FIREBIRD_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(MATHLIB) + + LINK_ENGINE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\ +diff --git a/builds/posix/Makefile.in.plugins_examples b/builds/posix/Makefile.in.plugins_examples +index a5331c8..7b3f8b0 100644 +--- a/builds/posix/Makefile.in.plugins_examples ++++ b/builds/posix/Makefile.in.plugins_examples +@@ -66,7 +66,7 @@ ifeq ($(PLATFORM),DARWIN) + $(LIB_LINK) $(LIB_BUNDLE_OPTIONS) -o $@ $^ @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ \ + $(FIREBIRD_LIBRARY_LINK) + else +- $(LIB_LINK) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME)udrcpp_example.$(SHRLIB_EXT) \ ++ $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(LIB_PREFIX)udrcpp_example.$(SHRLIB_EXT)) \ + $(LIB_PATH_OPTS) -o $@ $^ $(THR_LIBS) $(PLUGINS)/$(LIB_PREFIX)udr_engine.$(SHRLIB_EXT) \ + $(FIREBIRD_LIBRARY_LINK) + endif +diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw +index 626e90c..1754712 100644 +--- a/builds/posix/prefix.mingw ++++ b/builds/posix/prefix.mingw +@@ -28,42 +28,38 @@ PLATFORM_PATH=os/win32 + # Override link command for implicit stdc++ linking + LIB_LINK=$(LD) + +-LIB_LINK_OPTIONS+=-Wl,--enable-stdcall-fixup +- + # Strip symbols from release versions to decrease size + ifeq ($(IsProdTypeBuild),Y) + EXE_LINK_OPTIONS+=-Wl,-s + LIB_LINK_OPTIONS+=-Wl,-s + endif + +-# Generation of fbclient_ms.lib +-LIB_LINK_IMPLIB:=-Wl,--out-implib,firebird/lib/fbclient_ms.lib + LIB_GUI:= -mwindows -lcomctl32 -lgdi32 + + # Add resources to some files +-FilesToAddVersionInfo=$(LIBFBEMBED_SO) $(LIBFBCLIENT_SO) $(LIBFBINTL_SO) \ +- $(GSTAT) $(GSEC) $(GFIX) $(QLI) $(ISQL) $(GBAK) $(GPRE) ++FilesToAddVersionInfo=$(FBTRACEMGR) $(LIBFIREBIRD_FULLNAME) $(ENGINE_SONAME) $(LIBFBINTL_SO) \ ++ $(FBSVCMGR) $(FBTRACEMGR) $(FBTRACE) $(FBUDF_SO) $(LIBIBUTIL_SO) \ ++ $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP) + # TODO: guardians also must be here +-FilesToAddDialog=$(FB_SUPER_SERVER) $(FB_CLASSIC_SERVER) +-FilesToAddDialog2=$(IBGUARD) ++FilesToAddDialog=$(FB_DAEMON) ++FilesToAddDialog2=$(FBGUARD) + + # Suppress 'lib'-prefix + LIB_PREFIX= + + # Override library names to suppress version suffix +-ClientLibraryNameFull := $(ClientLibraryName) +-ClientLibrarySoName := $(ClientLibraryName) ++LibrarySoName := $(LibraryBaseName) ++LibraryFullName := $(LibraryBaseName) ++LIBFIREBIRD_FULLNAME = $(BIN)/$(LibraryBaseName) ++LIBFIREBIRD_SONAME = $(LIBFIREBIRD_FULLNAME) ++LIBFIREBIRD_BASENAME = $(LIBFIREBIRD_FULLNAME) ++LIBIBUTIL_SO = $(BIN)/$(IbUtilLibraryName) + +-# Looks like MinGW 3 does not support version scripts but support def-files +-LINK_FIREBIRD_SYMBOLS = $(BLD_ROOT)/win32/defs/fbclient_s.def $(BLD_ROOT)/win32/defs/fbclient.def +- +-# This is required for newly built executable to find newly built shared +-# libraries because on Win32 there is no such thing as LD_LIBRARY_PATH +-LIB=$(BIN) ++LINK_FIREBIRD_SYMBOLS = ++LINK_FBINTL_SYMBOLS = ++LINK_IBUTIL_SYMBOLS = ++LINK_UDRENG_SYMBOLS = ++LINK_EMPTY_SYMBOLS = ++LINK_PLUGIN_SYMBOLS = ++LIB_LINK_IMPLIB= -Wl,--out-implib,$(1) + +-# Special options for UDF link +-LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_EXT)) -L$(LIB) -lib_util +-LINK_UDF_LIBS = +- +-# Special options for trace plugin link +-LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) +-- +2.2.0 + +From c07f3dacc132799ac4300b1e65369c895f2bd4d9 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 24 Nov 2014 11:12:17 +0300 +Subject: [PATCH] Windows have another sources for FBGUARD. + +--- + builds/posix/make.shared.variables | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/builds/posix/make.shared.variables b/builds/posix/make.shared.variables +index 53597e6..ef25f37 100644 +--- a/builds/posix/make.shared.variables ++++ b/builds/posix/make.shared.variables +@@ -122,7 +122,11 @@ AllObjects += $(LOCKPRINT_Objects) + + + # Guardian ++ifeq ($(PLATFORM),win32) ++FBGUARD_Objects:= $(call dirObjects,iscguard) $(call makeObjects,remote/server/os/win32,chop.cpp) ++else + FBGUARD_Objects:= $(call dirObjects,utilities/guard) ++endif + + AllObjects += $(FBGUARD_Objects) + +-- +2.2.0 + +From aede726ceaa9cf25424806a0ba438c1216bc0675 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Thu, 27 Nov 2014 15:57:53 +0300 +Subject: [PATCH] Do not install posix scripts for win32 platform. + +--- + configure.ac | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 8db3f4c..7491444 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1163,6 +1163,7 @@ if test "x$CROSS" != "x"; then + AC_CONFIG_FILES([gen/make.crossPlatform:builds/posix/make.$CROSS]) + fi + ++if test "$PLATFORM" != "win32"; then + AC_CONFIG_FILES([ + gen/Release/firebird/bin/fb_config:builds/install/posix-common/fb_config.in + gen/Release/firebird/bin/posixLibrary.sh:builds/install/posix-common/posixLibrary.sh.in +@@ -1176,8 +1177,9 @@ gen/Release/firebird/bin/taruninstall.sh:builds/install/posix-common/taruninstal + gen/Release/firebird/bin/tarMainUninstall.sh:builds/install/posix-common/tarMainUninstall.sh.in + gen/Release/firebird/bin/changeServerMode.sh:builds/install/posix-common/changeServerMode.sh.in + gen/Release/firebird/bin/registerDatabase.sh:builds/install/posix-common/registerDatabase.sh.in +-gen/vers.sh:builds/posix/vers.sh.in + ]) ++fi ++AC_CONFIG_FILES(gen/vers.sh:builds/posix/vers.sh.in) + + dnl: Platform Specific Files + +@@ -1272,6 +1274,11 @@ case "$PLATFORM" in + + DARWIN) + ;; ++ win32) ++ AC_CONFIG_FILES(gen/install/install_classic.bat:builds/install/arch-specific/win32/install_classic.bat ++ gen/install/install_super.bat:builds/install/arch-specific/win32/install_super.bat ++ gen/install/uninstall.bat:builds/install/arch-specific/win32/uninstall.bat) ++ ;; + esac + if test -f ${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX};then + POSTFIX_FILE=gen/make.platform.postfix:${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX} +-- +2.2.0 + +From 37c6bc45973bc4a83a6f4c9dfb6143eceebde8ea Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Thu, 27 Nov 2014 17:04:52 +0300 +Subject: [PATCH] Use variables everywhere. + +--- + builds/posix/Makefile.in.examples | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/builds/posix/Makefile.in.examples b/builds/posix/Makefile.in.examples +index 12c454e..544be0a 100644 +--- a/builds/posix/Makefile.in.examples ++++ b/builds/posix/Makefile.in.examples +@@ -123,7 +123,7 @@ $(EXAMPLES_DEST)% : $(EXAMPLES_SRC)% + + $(EMPLOYEE_DB): $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(INPUT_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT) + -$(RM) $(EMPLOYEE_DB) +- ./empbuild $(EMPLOYEE_DB) ++ $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(EMPLOYEE_DB) + $(GFIX) -write sync $(EMPLOYEE_DB) + -$(CHMOD_6) $(EMPLOYEE_DB) + +@@ -147,9 +147,9 @@ $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPLES_DEST)/empddl.sql $(EXAMPLES_DEST)/emp + # the intlemp.fdb database. + + $(EXAMPLES_DEST)/intlemp.fdb: $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) $(INTL_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT) +- -$(RM) intlemp.fdb +- ./intlbld intlemp.fdb +- -$(CHMOD_6) intlemp.fdb ++ -$(RM) $(EXAMPLES_DEST)/intlemp.fdb ++ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) intlemp.fdb ++ -$(CHMOD_6) $(EXAMPLES_DEST)/intlemp.fdb + + $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_LIB) + $(EXE_LINK) $(EXE_LINK_OPTIONS) @^ -o $@ -L$(LIB) $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) +@@ -157,8 +157,8 @@ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_LIB) + $(EXAMPLES_DEST)/intlbld.c: $(EXAMPLES_DEST)/intlbuild.fdb $(EXAMPLES_DEST)/intlbld.e + + $(EXAMPLES_DEST)/intlbuild.fdb : $(EXAMPLES_DEST)/intlddl.sql $(EXAMPLES_DEST)/intlbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT) +- -$(RM) intlbuild.fdb +- $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql ++ -$(RM) $(EXAMPLES_DEST)/intlbuild.fdb ++ $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i $(EXAMPLES_DEST)/intlbld.sql + + + $(EXAMPLES_DEST)/%.sql: $(EXAMPLES_SRC)/empbuild/%.sql +-- +2.2.0 + +From e705380c785638ef80fa737b8e7a4654c85986ab Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Fri, 28 Nov 2014 12:28:31 +0300 +Subject: [PATCH] Build windows specific utilities for mingw. + +--- + builds/posix/Makefile.in | 26 ++++++++++++++++++++++++++ + builds/posix/make.defaults | 1 + + builds/posix/make.shared.variables | 9 +++++++++ + builds/posix/prefix.mingw | 3 ++- + 4 files changed, 38 insertions(+), 1 deletion(-) + +diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in +index 34cafdc..effbefb 100644 +--- a/builds/posix/Makefile.in ++++ b/builds/posix/Makefile.in +@@ -160,6 +160,9 @@ endif + $(MAKE) plugins + $(MAKE) examples + $(MAKE) rest ++ifeq ($(PLATFORM), win32) ++ $(MAKE) helpers ++endif + + + cross_process: +@@ -416,6 +419,29 @@ $(NBACKUP): $(NBACKUP_Objects) $(COMMON_LIB) + + + #___________________________________________________________________________ ++# install helpers - utilities for Windows to install/uninstall services and etc ++# ++ ++.PHONY: instclient instreg instsvc ++ ++helpers: instclient instreg instsvc ++ ++instclient: $(INSTCLI) ++ ++$(INSTCLI): $(INSTCLIENT_Objects) ++ $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS) ++ ++instreg: $(INSTREG) ++ ++$(INSTREG): $(INSTREG_Objects) ++ $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS) ++ ++instsvc: $(INSTSVC) ++ ++$(INSTSVC): $(INSTSVC_Objects) $(YValve_Objects) $(Common_Objects) $(Remote_Client_Objects) ++ $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(MATHLIB) ++ ++#___________________________________________________________________________ + # plugins - some of them are required to build examples, use separate entry for them + # + +diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults +index 0c4fbd8..7ed6ec0 +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -348,6 +348,7 @@ GDS_INSTALL = $(BIN)/gds_install_service$(EXEC_EXT) + FBGUARD = $(BIN)/fbguard$(EXEC_EXT) + IBGUARD = $(BIN)/ibguard$(EXEC_EXT) + FBMGR_BIN = $(BIN)/fbmgr.bin$(EXEC_EXT) ++INSTCLI = $(BIN)/instclient$(EXEC_EXT) + INSTREG = $(BIN)/instreg$(EXEC_EXT) + INSTSVC = $(BIN)/instsvc$(EXEC_EXT) + +diff --git a/builds/posix/make.shared.variables b/builds/posix/make.shared.variables +index ef25f37..18903b9 100644 +--- a/builds/posix/make.shared.variables ++++ b/builds/posix/make.shared.variables +@@ -219,3 +219,12 @@ AllObjects += $(CODES_Objects) + BUILD_Objects:= $(call makeObjects,msgs,build_file.epp) + + AllObjects += $(BUILD_Objects) ++ ++# Install helpers ++ifeq ($(PLATFORM),win32) ++INSTCLIENT_Objects:= $(call makeObjects,utilities/install,install.cpp install_client.cpp) ++INSTREG_Objects:= $(call makeObjects,utilities/install,install_reg.cpp registry.cpp) ++INSTSVC_Objects:= $(call makeObjects,utilities/install,install_svc.cpp services.cpp) ++ ++AllObjects += $(INSTCLIENT_Objects) $(INSTREG_Objects) $(INSTSVC_Objects) ++endif +diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw +index 1754712..c2bd068 100644 +--- a/builds/posix/prefix.mingw ++++ b/builds/posix/prefix.mingw +@@ -41,7 +41,8 @@ LIB_GUI:= -mwindows -lcomctl32 -lgdi32 + # Add resources to some files + FilesToAddVersionInfo=$(FBTRACEMGR) $(LIBFIREBIRD_FULLNAME) $(ENGINE_SONAME) $(LIBFBINTL_SO) \ + $(FBSVCMGR) $(FBTRACEMGR) $(FBTRACE) $(FBUDF_SO) $(LIBIBUTIL_SO) \ +- $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP) ++ $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP) \ ++ $(INSTCLI) $(INSTREG) $(INSTSVC) + # TODO: guardians also must be here + FilesToAddDialog=$(FB_DAEMON) + FilesToAddDialog2=$(FBGUARD) +-- +2.2.0 diff --git a/mingw-w64-firebird-git/firebird-msys.diff b/mingw-w64-firebird-git/firebird-msys.diff new file mode 100644 index 0000000000..49052104a1 --- /dev/null +++ b/mingw-w64-firebird-git/firebird-msys.diff @@ -0,0 +1,56 @@ +From c9e87fdeea5332f1e70e80f4a4bb62bd37259a2d Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Tue, 25 Nov 2014 12:59:43 +0300 +Subject: [PATCH] our mingw-w64 have different icu libs naming. + +--- + src/common/unicode_util.cpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/common/unicode_util.cpp b/src/common/unicode_util.cpp +index 3a5b073..65a2012 100644 +--- a/src/common/unicode_util.cpp ++++ b/src/common/unicode_util.cpp +@@ -58,8 +58,13 @@ using namespace Firebird; + + namespace { + #if defined(WIN_NT) ++#ifdef __MINGW32__ ++const char* const inTemplate = "libicuin%s.dll"; ++const char* const ucTemplate = "libicuuc%s.dll"; ++#else + const char* const inTemplate = "icuin%s.dll"; + const char* const ucTemplate = "icuuc%s.dll"; ++#endif + #elif defined(DARWIN) + //const char* const inTemplate = "/Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib"; + //const char* const ucTemplate = "/Library/Frameworks/Firebird.framework/versions/A/Libraries/libicuuc.dylib"; +-- +2.2.0 + +From 57ad0dada3cca5dfb452bd3c39ac45ff3b1d554b Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 23:15:45 +0300 +Subject: [PATCH] Fix UNIX path for mingw compiler. + +--- + src/misc/writeBuildNum.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/misc/writeBuildNum.sh b/src/misc/writeBuildNum.sh +index 9f23244..d4e58f7 100755 +--- a/src/misc/writeBuildNum.sh ++++ b/src/misc/writeBuildNum.sh +@@ -96,6 +96,10 @@ createMakeVersion() { + + OdsH="${Root}/src/jrd/ods.h" + Mini="/tmp/miniods.h" ++if [ -n $MSYSTEM ] ++ then ++ Mini=$(cygpath -wm $Mini) ++fi + TestCpp="/tmp/test.cpp" + AOut="/tmp/a.out" + +-- +2.2.0 From 8de993067a9747878b7d8e547afa01412adae232 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 27 Dec 2014 21:59:04 +0300 Subject: [PATCH 0225/2060] postgresql: Update to 9.4.0 --- mingw-w64-postgresql/PKGBUILD | 11 ++++++----- .../postgresql-9.3.1-plpython-mingw.patch | 16 ++++++++-------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/mingw-w64-postgresql/PKGBUILD b/mingw-w64-postgresql/PKGBUILD index dc48bc77b7..c0cfb64f9d 100644 --- a/mingw-w64-postgresql/PKGBUILD +++ b/mingw-w64-postgresql/PKGBUILD @@ -2,8 +2,8 @@ _realname=postgresql pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=9.3.5 -pkgrel=3 +pkgver=9.4.0 +pkgrel=1 pkgdesc="Libraries for use with PostgreSQL (mingw-w64)" arch=('any') url="http://www.postgresql.org/" @@ -25,9 +25,9 @@ options=('staticlibs' 'strip') source=("http://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2" postgresql-9.2.4-plperl-mingw.patch postgresql-9.3.1-plpython-mingw.patch) -md5sums=('5059857c7d7e6ad83b6d55893a121b59' +md5sums=('8cd6e33e1f8d4d2362c8c08bd0e8802b' '6a11681fbd19a3ccf8d41f7fbc9b4392' - '6401b50c0dee9c963985f0d3f4dbe329') + '90aabb839c09ef93a1521daf97b63935') prepare() { cd ${srcdir}/postgresql-$pkgver @@ -52,7 +52,8 @@ build() { --with-libxslt \ --with-python \ --without-perl \ - --with-tcl --with-tclconfig=${MINGW_PREFIX}/lib + --with-tcl \ + --with-tclconfig=${MINGW_PREFIX}/lib # Make DLL definition file visible during each arch build ln -s "${srcdir}/postgresql-$pkgver/src/interfaces/libpq/libpqdll.def" src/interfaces/libpq/ diff --git a/mingw-w64-postgresql/postgresql-9.3.1-plpython-mingw.patch b/mingw-w64-postgresql/postgresql-9.3.1-plpython-mingw.patch index 4cc030c352..f810e67051 100644 --- a/mingw-w64-postgresql/postgresql-9.3.1-plpython-mingw.patch +++ b/mingw-w64-postgresql/postgresql-9.3.1-plpython-mingw.patch @@ -1,16 +1,16 @@ ---- postgresql-9.3.1/src/pl/plpython/Makefile.orig 2013-12-01 09:52:55.043200000 +0400 -+++ postgresql-9.3.1/src/pl/plpython/Makefile 2013-12-01 09:54:53.591200000 +0400 +--- postgresql-9.4.0/src/pl/plpython/Makefile.orig 2014-12-27 09:52:55.043200000 +0400 ++++ postgresql-9.4.0/src/pl/plpython/Makefile 2014-12-27 09:54:53.591200000 +0400 @@ -63,11 +63,8 @@ - ifeq ($(PORTNAME), win32) - pytverstr=$(subst .,,${python_version}) + OBJS += libpython${pytverstr}.a + -libpython${pytverstr}.a: python${pytverstr}.def -- dlltool --dllname python${pytverstr}.dll --def python${pytverstr}.def --output-lib libpython${pytverstr}.a --WD=$(subst \,/,$(WINDIR)) +- dlltool --dllname python${pytverstr}.dll --def python${pytverstr}.def --output-lib libpython${pytverstr}.a +- -python${pytverstr}.def: -- pexports $(WD)/system32/python${pytverstr}.dll > python${pytverstr}.def +- pexports $(PYTHONDLL) > $@ +libpython${pytverstr}.a: + cp -f $(python_libdir)/libpython${python_version}.dll.a libpython${pytverstr}.a - endif + endif # win32 From 962463aef8eadefb6f17c1d7493895d603b623cb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 29 Dec 2014 06:59:20 +0300 Subject: [PATCH 0226/2060] sip: Update to 4.16.5 --- mingw-w64-sip/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-sip/PKGBUILD b/mingw-w64-sip/PKGBUILD index fa80c9df9d..105b4730b1 100644 --- a/mingw-w64-sip/PKGBUILD +++ b/mingw-w64-sip/PKGBUILD @@ -3,7 +3,7 @@ _realname=sip pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=4.16.4 +pkgver=4.16.5 pkgrel=1 pkgdesc="Tool to create Python bindings for C and C++ libraries" arch=('any') @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" source=("http://downloads.sourceforge.net/project/pyqt/${_realname}/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.gz" "0001-mingw-python.patch") -md5sums=('a9840670a064dbf8f63a8f653776fec9' +md5sums=('6d01ea966a53e4c7ae5c5e48c40e49e5' 'a01b87229009bacfeb440366dd932648') prepare() { From 7e9e083528483cc7f0f9d26cd58d095a6b9ef233 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 29 Dec 2014 07:00:18 +0300 Subject: [PATCH 0227/2060] pyqt5: Update to 5.4.0 --- mingw-w64-pyqt5/PKGBUILD | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mingw-w64-pyqt5/PKGBUILD b/mingw-w64-pyqt5/PKGBUILD index 3bc2089d82..95da75c657 100644 --- a/mingw-w64-pyqt5/PKGBUILD +++ b/mingw-w64-pyqt5/PKGBUILD @@ -2,7 +2,7 @@ _realname=pyqt5 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-common" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=5.3.2 +pkgver=5.4.0 pkgrel=1 pkgdesc="Qt5 bindings for Python (mingw-w64)" arch=('any') @@ -12,13 +12,14 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-sip" "${MINGW_PACKAGE_PREFIX}-python3-sip" "${MINGW_PACKAGE_PREFIX}-qt5") options=('strip' 'staticlibs') -source=("http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-$pkgver/PyQt-gpl-$pkgver.tar.gz" +source=(#"http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-$pkgver/PyQt-gpl-$pkgver.tar.gz" + "http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-${pkgver%.*}/PyQt-gpl-${pkgver%.*}.tar.gz" 001-mingw-python.patch) -md5sums=('81ef608fa4f3961918106d0ca07aa68a' - '0dc6f9e4fd3971063b4e0df12aeb4a39') +md5sums=('7f2eb79eaf3d7e5e7df5a4e9c8c9340e' + '3b11ff26e229e256ee13f484422047d9') prepare() { - cd "${srcdir}"/PyQt-gpl-$pkgver + cd "${srcdir}"/PyQt-gpl-${pkgver%.*} #Apply patches patch -p1 -i "${srcdir}"/001-mingw-python.patch @@ -27,7 +28,7 @@ prepare() { build() { for builddir in python{2,3}-${MINGW_CHOST}; do [[ -d $builddir ]] && rm -rf $builddir - cp -r PyQt-gpl-${pkgver} $builddir + cp -r PyQt-gpl-${pkgver%.*} $builddir pushd $builddir [[ "${builddir%-${MINGW_CHOST}}" == "python2" ]] && { local _sipdir=Py2-Qt5 From 1a0a4f0656ffc66f7a18e7e1ad44f878899ca80f Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Mon, 29 Dec 2014 09:13:11 +0100 Subject: [PATCH 0228/2060] libgusb: fix download --- mingw-w64-libgusb/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libgusb/PKGBUILD b/mingw-w64-libgusb/PKGBUILD index fed9fd5b20..d00f1c5f8f 100644 --- a/mingw-w64-libgusb/PKGBUILD +++ b/mingw-w64-libgusb/PKGBUILD @@ -16,11 +16,11 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs') license=("LGPL") url="https://github.com/hughsie/libgusb" -source=("https://github.com/hughsie/${_realname}/archive/${_tarballname}_${pkgver/./_}.tar.gz") -sha256sums=('') +source=("https://github.com/hughsie/${_realname}/archive/${_tarballname}_${pkgver//./_}.tar.gz") +sha256sums=('c55dc5735b24eb4ce8e9413be7c65f3177a891d049edaea63f55dd2c011d5e0a') prepare() { - cd "${srcdir}"/${_realname}-${_tarballname}_${pkgver/./_} + cd "${srcdir}"/${_realname}-${_tarballname}_${pkgver//./_} autoreconf -f -i } From f5c7c1363e145586533579b9026cfffac2c57a2a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 29 Dec 2014 14:20:13 +0300 Subject: [PATCH 0229/2060] ldns: Relocate path for anchor trust file. Fix 32-bit examples build. Use anchor trust file from dnssec-anchors package. --- mingw-w64-ldns/PKGBUILD | 26 +- mingw-w64-ldns/ldns-1.6.17-relocate.patch | 788 ++++++++++++++++++++++ 2 files changed, 804 insertions(+), 10 deletions(-) create mode 100644 mingw-w64-ldns/ldns-1.6.17-relocate.patch diff --git a/mingw-w64-ldns/PKGBUILD b/mingw-w64-ldns/PKGBUILD index b98e7063ae..f0f9bcf528 100644 --- a/mingw-w64-ldns/PKGBUILD +++ b/mingw-w64-ldns/PKGBUILD @@ -1,47 +1,53 @@ # Maintainer: Alexey Pavlov _realname=ldns - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.17 -pkgrel=1 +pkgrel=2 pkgdesc="Fast DNS library supporting recent RFCs (mingw-w64)" arch=('any') url='http://www.nlnetlabs.nl/projects/ldns/' license=('custom:BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-dnssec-anchors" - ) + "${MINGW_PACKAGE_PREFIX}-dnssec-anchors") options=(strip staticlibs) -source=("http://www.nlnetlabs.nl/downloads/${_realname}/${_realname}-${pkgver}.tar.gz") -sha1sums=('4218897b3c002aadfc7280b3f40cda829e05c9a4') +source=("http://www.nlnetlabs.nl/downloads/${_realname}/${_realname}-${pkgver}.tar.gz" + ldns-1.6.17-relocate.patch) +sha1sums=('4218897b3c002aadfc7280b3f40cda829e05c9a4' + 'c2ec4d4f4c909a41a16ef868dba4e3d7a5c146ed') prepare() { cd ${srcdir}/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/ldns-1.6.17-relocate.patch + + WANT_AUTOMAKE=latest autoreconf -fiv } build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" + export PYTHON=${MINGW_PREFIX}/bin/python2 cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --disable-static \ + --enable-static \ --sysconfdir=${MINGW_PREFIX}/etc \ --localstatedir=${MINGW_PREFIX}/var \ + --with-trust-anchor=${MINGW_PREFIX}/etc/trusted-key.key \ --with-drill \ - --without-examples \ - --without-pyldns + --with-examples \ + --without-pyldns \ + --without-pyldnsx + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-ldns/ldns-1.6.17-relocate.patch b/mingw-w64-ldns/ldns-1.6.17-relocate.patch new file mode 100644 index 0000000000..a872995140 --- /dev/null +++ b/mingw-w64-ldns/ldns-1.6.17-relocate.patch @@ -0,0 +1,788 @@ +diff -Naur ldns-1.6.17-orig/configure.ac ldns-1.6.17/configure.ac +--- ldns-1.6.17-orig/configure.ac 2014-01-11 01:04:41.000000000 +0400 ++++ ldns-1.6.17/configure.ac 2014-12-29 10:02:35.502800000 +0300 +@@ -2,6 +2,7 @@ + # Process this file with autoconf to produce a configure script. + AC_PREREQ(2.56) + sinclude(acx_nlnetlabs.m4) ++sinclude(varexpand.m4) + + # must be numbers. ac_defun because of later processing. + m4_define([VERSION_MAJOR],[1]) +@@ -642,6 +642,9 @@ + AC_SUBST(LDNS_TRUST_ANCHOR_FILE) + AC_MSG_NOTICE([Default trust anchor: $LDNS_TRUST_ANCHOR_FILE]) + ++FULL_EXPAND_VARIABLE(ldns_bindir, "$bindir") ++AC_DEFINE_UNQUOTED(LDNS_BINDIR, "$ldns_bindir", [Runtime executables location]) ++ + AC_ARG_WITH(ca-file, AC_HELP_STRING([--with-ca-file=CAFILE], [File containing CA certificates for ldns-dane]), [ + AC_DEFINE([HAVE_DANE_CA_FILE], [1], [Is a CAFILE given at configure time]) + AC_DEFINE_UNQUOTED([LDNS_DANE_CA_FILE], ["$withval"], [Is a CAFILE given at configure time]) +diff -Naur ldns-1.6.17-orig/drill/drill.c ldns-1.6.17/drill/drill.c +--- ldns-1.6.17-orig/drill/drill.c 2014-01-11 01:04:41.000000000 +0400 ++++ ldns-1.6.17/drill/drill.c 2014-12-29 10:03:20.836400000 +0300 +@@ -22,6 +24,7 @@ + static void + usage(FILE *stream, const char *progname) + { ++ const char * _trust_file = ldns_path_relocation(LDNS_BINDIR, LDNS_TRUST_ANCHOR_FILE); + fprintf(stream, " Usage: %s name [@server] [type] [class]\n", progname); + fprintf(stream, "\t can be a domain name or an IP address (-x lookups)\n"); + fprintf(stream, "\t defaults to A\n"); +@@ -58,7 +58,7 @@ + fprintf(stream, "\t\t\tWhen DNSSEC enabled tracing (-TD) or signature\n" + "\t\t\tchasing (-S) and no key files are given, keys are read\n" + "\t\t\tfrom: %s\n", +- LDNS_TRUST_ANCHOR_FILE); ++ _trust_file); + fprintf(stream, "\t-o \tset flags to:" + "\n\t\t\t[QR|qr][AA|aa][TC|tc][RD|rd][CD|cd][RA|ra][AD|ad]\n"); + fprintf(stream, "\t\t\tlowercase: unset bit, uppercase: set bit\n"); +@@ -410,7 +413,8 @@ + if ((PURPOSE == DRILL_CHASE || (PURPOSE == DRILL_TRACE && qdnssec)) && + ldns_rr_list_rr_count(key_list) == 0) { + +- (void) read_key_file(LDNS_TRUST_ANCHOR_FILE, key_list, true); ++ const char * _trust_file = ldns_path_relocation(LDNS_BINDIR, LDNS_TRUST_ANCHOR_FILE); ++ (void) read_key_file(_trust_file, key_list, true); + } + if (ldns_rr_list_rr_count(key_list) > 0) { + printf(";; Number of trusted keys: %d\n", +diff -Naur ldns-1.6.17-orig/examples/ldns-dane.c ldns-1.6.17/examples/ldns-dane.c +--- ldns-1.6.17-orig/examples/ldns-dane.c 2014-01-11 01:04:41.000000000 +0400 ++++ ldns-1.6.17/examples/ldns-dane.c 2014-12-29 09:59:32.063000000 +0300 +@@ -65,7 +65,8 @@ + "use DNSKEY/DS rr(s) in to validate TLSAs\n" + "\t\t\twhen signature chasing (i.e. -S)\n" + ); +- printf("\t\t\tDefault is %s\n", LDNS_TRUST_ANCHOR_FILE); ++ const char * _trust_file = ldns_path_relocation(LDNS_BINDIR, LDNS_TRUST_ANCHOR_FILE); ++ printf("\t\t\tDefault is %s\n", _trust_file); + printf("\t-n\t\tdo *not* verify server name in certificate\n"); + printf("\t-o \t" + "select th certificate from the end of\n" +@@ -1310,7 +1310,8 @@ + + if (do_sigchase) { + if (nkeys == 0) { +- (void) read_key_file(LDNS_TRUST_ANCHOR_FILE, keys); ++ const char * _trust_file = ldns_path_relocation(LDNS_BINDIR, LDNS_TRUST_ANCHOR_FILE); ++ (void) read_key_file(_trust_file, keys); + nkeys = ldns_rr_list_rr_count(keys); + + if (nkeys == 0) { +diff -Naur ldns-1.6.17-orig/examples/ldns-verify-zone.c ldns-1.6.17/examples/ldns-verify-zone.c +--- ldns-1.6.17-orig/examples/ldns-verify-zone.c 2014-01-11 01:04:41.000000000 +0400 ++++ ldns-1.6.17/examples/ldns-verify-zone.c 2014-12-29 09:59:32.063000000 +0300 +@@ -674,6 +674,7 @@ + size_t nkeys = 0; + + check_time = ldns_time(NULL); ++ const char * _trust_file = ldns_path_relocation(LDNS_BINDIR, LDNS_TRUST_ANCHOR_FILE); + myout = stdout; + myerr = stderr; + +@@ -703,7 +703,7 @@ + printf("\t-k \tspecify a file that contains a " + "trusted DNSKEY or DS rr.\n\t\t\t" + "This option may be given more than once.\n" +- "\t\t\tDefault is %s", LDNS_TRUST_ANCHOR_FILE); ++ "\t\t\tDefault is %s", _trust_file); + printf("\t-p [0-100]\tonly checks this percentage of " + "the zone.\n\t\t\tDefaults to 100\n"); + printf("\t-S\t\tchase signature(s) to a known key. " +@@ -816,7 +816,8 @@ + } + } + if (do_sigchase && nkeys == 0) { +- (void) read_key_file(LDNS_TRUST_ANCHOR_FILE, keys); ++ const char * _trust_file = ldns_path_relocation(LDNS_BINDIR, LDNS_TRUST_ANCHOR_FILE); ++ (void) read_key_file(_trust_file, keys); + nkeys = ldns_rr_list_rr_count(keys); + + if (nkeys == 0) { +diff -Naur ldns-1.6.17-orig/pathtools.c ldns-1.6.17/pathtools.c +--- ldns-1.6.17-orig/pathtools.c 1970-01-01 03:00:00.000000000 +0300 ++++ ldns-1.6.17/pathtools.c 1970-01-01 03:00:00.000000000 +0300 +@@ -0,0 +1,538 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++#include ++#endif ++#include ++ ++/* If you don't define this, then get_executable_path() ++ can only use argv[0] which will often not work well */ ++#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH ++ ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++/* Nothing needed, unistd.h is enough. */ ++#elif defined(__APPLE__) ++#include ++#elif defined(_WIN32) ++#define WIN32_MEAN_AND_LEAN ++#include ++#include ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ ++#include "pathtools.h" ++ ++char * ++malloc_copy_string(char const * original) ++{ ++ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); ++ if (result != NULL) ++ { ++ strcpy (result, original); ++ } ++ return result; ++} ++ ++void ++sanitise_path(char * path) ++{ ++ size_t path_size = strlen (path); ++ ++ /* Replace any '\' with '/' */ ++ char * path_p = path; ++ while ((path_p = strchr (path_p, '\\')) != NULL) ++ { ++ *path_p = '/'; ++ } ++ /* Replace any '//' with '/' */ ++ path_p = path; ++ while ((path_p = strstr (path_p, "//")) != NULL) ++ { ++ memmove (path_p, path_p + 1, path_size--); ++ } ++ return; ++} ++ ++char * ++get_relative_path(char const * from_in, char const * to_in) ++{ ++ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); ++ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); ++ size_t max_size = (from_size + to_size) * 2 + 4; ++ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); ++ char * from; ++ char * to; ++ char * common_part; ++ char * result; ++ size_t count; ++ ++ /* No to, return "./" */ ++ if (to_in == NULL) ++ { ++ return malloc_copy_string ("./"); ++ } ++ ++ /* If alloca failed or no from was given return a copy of to */ ++ if ( from_in == NULL ++ || scratch_space == NULL ) ++ { ++ return malloc_copy_string (to_in); ++ } ++ ++ from = scratch_space; ++ strcpy (from, from_in); ++ to = from + from_size + 1; ++ strcpy (to, to_in); ++ common_part = to + to_size + 1; ++ result = common_part + max_size; ++ simplify_path (from); ++ simplify_path (to); ++ ++ result[0] = '\0'; ++ ++ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ ++ size_t match_size = 0; /* The running (and final) match size. */ ++ size_t largest_size = (from_size > to_size) ? from_size : to_size; ++ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; ++ char from_c; ++ char to_c; ++ for (match_size = 0; match_size < largest_size; ++match_size) ++ { ++ /* To simplify the logic, always pretend the strings end with '/' */ ++ from_c = (match_size < from_size) ? from[match_size] : '/'; ++ to_c = (match_size < to_size) ? to[match_size] : '/'; ++ ++ if (from_c != to_c) ++ { ++ if (from_c != '\0' || to_c != '\0') ++ { ++ match_size = match_size_dirsep; ++ } ++ break; ++ } ++ else if (from_c == '/') ++ { ++ match_size_dirsep = match_size; ++ } ++ } ++ strncpy (common_part, from, match_size); ++ common_part[match_size] = '\0'; ++ from += match_size; ++ to += match_size; ++ size_t ndotdots = 0; ++ char const* from_last = from + strlen(from) - 1; ++ while ((from = strchr (from, '/')) && from != from_last) ++ { ++ ++ndotdots; ++ ++from; ++ } ++ for (count = 0; count < ndotdots; ++count) ++ { ++ strcat(result, "../"); ++ } ++ if (strlen(to) > 0) ++ { ++ strcat(result, to+1); ++ } ++ /* Make sure that if to ends with '/' result does the same, and ++ vice-versa. */ ++ size_t size_result = strlen(result); ++ if ((to_final_is_slash == 1) ++ && (!size_result || result[size_result-1] != '/')) ++ { ++ strcat (result, "/"); ++ } ++ else if (!to_final_is_slash ++ && size_result && result[size_result-1] == '/') ++ { ++ result[size_result-1] = '\0'; ++ } ++ ++ return malloc_copy_string (result); ++} ++ ++void ++simplify_path(char * path) ++{ ++ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ ++ ssize_t i, j; ++ size_t tok_size; ++ size_t in_size = strlen (path); ++ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; ++ char * result = path; ++ sanitise_path(result); ++ char * result_p = result; ++ ++ do ++ { ++ ++n_toks; ++ ++result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ result_p = result; ++ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); ++ n_toks = 0; ++ do ++ { ++ if (result_p > result) ++ { ++ *result_p++ = '\0'; ++ } ++ else if (*result_p == '/') ++ { ++ /* A leading / creates an empty initial token. */ ++ toks[n_toks++] = result_p; ++ *result_p++ = '\0'; ++ } ++ toks[n_toks++] = result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ /* Remove all non-leading '.' and any '..' we can match ++ with an earlier forward path (i.e. neither '.' nor '..') */ ++ for (i = 1; i < n_toks; ++i) ++ { ++ int removals[2] = { -1, -1 }; ++ if ( strcmp (toks[i], "." ) == 0) ++ { ++ removals[0] = i; ++ } ++ else if ( strcmp (toks[i], ".." ) == 0) ++ { ++ /* Search backwards for a forward path to collapse. ++ If none are found then the .. also stays. */ ++ for (j = i - 1; j > -1; --j) ++ { ++ if ( strcmp (toks[j], "." ) ++ && strcmp (toks[j], ".." ) ) ++ { ++ removals[0] = j; ++ removals[1] = i; ++ break; ++ } ++ } ++ } ++ for (j = 0; j < 2; ++j) ++ { ++ if (removals[j] >= 0) /* Can become -2 */ ++ { ++ --n_toks; ++ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); ++ --i; ++ if (!j) ++ { ++ --removals[1]; ++ } ++ } ++ } ++ } ++ result_p = result; ++ for (i = 0; i < n_toks; ++i) ++ { ++ tok_size = strlen(toks[i]); ++ memcpy (result_p, toks[i], tok_size); ++ result_p += tok_size; ++ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) ++ { ++ *result_p = '/'; ++ ++result_p; ++ } ++ } ++ *result_p = '\0'; ++} ++ ++/* Returns actual_to by calculating the relative path from -> to and ++ applying that to actual_from. An assumption that actual_from is a ++ dir is made, and it may or may not end with a '/' */ ++char const * ++get_relocated_path (char const * from, char const * to, char const * actual_from) ++{ ++ char const * relative_from_to = get_relative_path (from, to); ++ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); ++ return actual_to; ++} ++ ++int ++get_executable_path(char const * argv0, char * result, ssize_t max_size) ++{ ++ char * system_result = (char *) alloca (max_size); ++ ssize_t system_result_size = -1; ++ ssize_t result_size = -1; ++ ++ if (system_result != NULL) ++ { ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++ system_result_size = readlink("/proc/self/exe", system_result, max_size); ++#elif defined(__APPLE__) ++ uint32_t bufsize = (uint32_t)max_size; ++ if (_NSGetExecutablePath(system_result, &bufsize) == 0) ++ { ++ system_result_size = (ssize_t)bufsize; ++ } ++#elif defined(_WIN32) ++ unsigned long bufsize = (unsigned long)max_size; ++ system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); ++ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) ++ { ++ /* Error, possibly not enough space. */ ++ system_result_size = -1; ++ } ++ else ++ { ++ /* Early conversion to unix slashes instead of more changes ++ everywhere else .. */ ++ char * winslash; ++ system_result[system_result_size] = '\0'; ++ while ((winslash = strchr (system_result, '\\')) != NULL) ++ { ++ *winslash = '/'; ++ } ++ } ++#else ++#warning "Don't know how to get executable path on this system" ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ } ++ /* Use argv0 as a default in-case of failure */ ++ if (system_result_size != -1) ++ { ++ strncpy (result, system_result, system_result_size); ++ result[system_result_size] = '\0'; ++ } ++ else ++ { ++ if (argv0 != NULL) ++ { ++ strncpy (result, argv0, max_size); ++ result[max_size-1] = '\0'; ++ } ++ else ++ { ++ result[0] = '\0'; ++ } ++ } ++ result_size = strlen (result); ++ return result_size; ++} ++ ++char const * ++strip_n_prefix_folders(char const * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return NULL; ++ } ++ ++ if (path[0] != '/') ++ { ++ return path; ++ } ++ ++ char const * last = path; ++ while (n-- && path != NULL) ++ { ++ last = path; ++ path = strchr (path + 1, '/'); ++ } ++ return (path == NULL) ? last : path; ++} ++ ++void ++strip_n_suffix_folders(char * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return; ++ } ++ while (n--) ++ { ++ if (strrchr (path + 1, '/')) ++ { ++ *strrchr (path + 1, '/') = '\0'; ++ } ++ else ++ { ++ return; ++ } ++ } ++ return; ++} ++ ++size_t ++split_path_list(char const * path_list, char split_char, char *** arr) ++{ ++ size_t path_count; ++ size_t path_list_size; ++ char const * path_list_p; ++ ++ path_list_p = path_list; ++ if (path_list == NULL || path_list[0] == '\0') ++ { ++ return 0; ++ } ++ path_list_size = strlen (path_list); ++ ++ path_count = 0; ++ do ++ { ++ ++path_count; ++ ++path_list_p; ++ } ++ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); ++ ++ /* allocate everything in one go. */ ++ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); ++ if (all_memory == NULL) ++ return 0; ++ *arr = (char **)all_memory; ++ all_memory += sizeof (char *) * path_count; ++ ++ path_count = 0; ++ path_list_p = path_list; ++ char const * next_path_list_p = 0; ++ do ++ { ++ next_path_list_p = strchr (path_list_p, split_char); ++ if (next_path_list_p != NULL) ++ { ++ ++next_path_list_p; ++ } ++ size_t this_size = (next_path_list_p != NULL) ++ ? next_path_list_p - path_list_p - 1 ++ : &path_list[path_list_size] - path_list_p; ++ memcpy (all_memory, path_list_p, this_size); ++ all_memory[this_size] = '\0'; ++ (*arr)[path_count++] = all_memory; ++ all_memory += this_size + 1; ++ } while ((path_list_p = next_path_list_p) != NULL); ++ ++ return path_count; ++} ++ ++char * ++get_relocated_path_list(char const * from, char const * to_path_list) ++{ ++ char exe_path[MAX_PATH]; ++ char * temp; ++ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ if ((temp = strrchr (exe_path, '/')) != NULL) ++ { ++ temp[1] = '\0'; ++ } ++ ++ char **arr = NULL; ++ /* Ask Alexey why he added this. Are we not 100% sure ++ that we're dealing with unix paths here? */ ++ char split_char = ':'; ++ if (strchr (to_path_list, ';')) ++ { ++ split_char = ';'; ++ } ++ size_t count = split_path_list (to_path_list, split_char, &arr); ++ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ ++ size_t exe_path_size = strlen (exe_path); ++ size_t i; ++ /* Space required is: ++ count * (exe_path_size + strlen (rel_to_datadir)) ++ rel_to_datadir upper bound is: ++ (count * strlen (from)) + (3 * num_slashes (from)) ++ + strlen(arr[i]) + 1. ++ .. pathalogically num_slashes (from) is strlen (from) ++ (from = ////////) */ ++ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; ++ for (i = 0; i < count; ++i) ++ { ++ space_required += strlen (arr[i]); ++ } ++ char * scratch = (char *) alloca (space_required); ++ if (scratch == NULL) ++ return NULL; ++ for (i = 0; i < count; ++i) ++ { ++ char * rel_to_datadir = get_relative_path (from, arr[i]); ++ scratch[0] = '\0'; ++ arr[i] = scratch; ++ strcat (scratch, exe_path); ++ strcat (scratch, rel_to_datadir); ++ simplify_path (arr[i]); ++ size_t arr_i_size = strlen (arr[i]); ++ result_size += arr_i_size; ++ scratch = arr[i] + arr_i_size + 1; ++ } ++ char * result = (char *) malloc (result_size); ++ if (result == NULL) ++ { ++ return NULL; ++ } ++ result[0] = '\0'; ++ for (i = 0; i < count; ++i) ++ { ++ strcat (result, arr[i]); ++ if (i != count-1) ++ { ++#if defined(_WIN32) ++ strcat (result, ";"); ++#else ++ strcat (result, ":"); ++#endif ++ } ++ } ++ free ((void*)arr); ++ return result; ++} ++ ++char * ++single_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} +diff -Naur ldns-1.6.17-orig/pathtools.h ldns-1.6.17/pathtools.h +--- ldns-1.6.17-orig/pathtools.h 1970-01-01 03:00:00.000000000 +0300 ++++ ldns-1.6.17/pathtools.h 1970-01-01 03:00:00.000000000 +0300 +@@ -0,0 +1,53 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#ifndef PATHTOOLS_H ++#define PATHTOOLS_H ++ ++#include ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++ ++char * malloc_copy_string(char const * original); ++ ++/* In-place replaces any '\' with '/' and any '//' with '/' */ ++void sanitise_path(char * path); ++ ++/* Uses a host OS specific function to determine the path of the executable, ++ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ ++int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ ++/* Where possible, in-place removes occourances of '.' and 'path/..' */ ++void simplify_path(char * path); ++ ++/* Allocates (via malloc) and returns the path to get from from to to. */ ++char * get_relative_path(char const * from, char const * to); ++ ++size_t split_path_list(char const * path_list, char split_char, char *** arr); ++ ++/* Advances path along by the amount that removes n prefix folders. */ ++char const * ++strip_n_prefix_folders(char const * path, size_t n); ++ ++/* NULL terminates path to remove n suffix folders. */ ++void ++strip_n_suffix_folders(char * path, size_t n); ++ ++char const * get_relocated_path (char const * from, char const * to, char const * actual_from); ++char * get_relocated_path_list(char const * from, char const * to_path_list); ++ ++char * single_path_relocation(const char *from, const char *to); ++char * pathlist_relocation(const char *from_path, const char *to_path_list); ++ ++#endif /* PATHTOOLS_H */ +diff -Naur ldns-1.6.17-orig/varexpand.m4 ldns-1.6.17/varexpand.m4 +--- ldns-1.6.17-orig/varexpand.m4 1970-01-01 03:00:00.000000000 +0300 ++++ ldns-1.6.17/varexpand.m4 2014-12-29 09:55:37.933600000 +0300 +@@ -0,0 +1,8 @@ ++AC_DEFUN([FULL_EXPAND_VARIABLE], [ ++ $1=$2 ++ $1=`( ++ test "x$prefix" = xNONE && prefix="$ac_default_prefix" ++ test "x$exec_prefix" = xNONE && exec_prefix="${prefix}" ++ eval echo \""[$]$1"\" ++ )` ++]) +diff -Naur ldns-1.6.17-orig/Makefile.in ldns-1.6.17/Makefile.in +--- ldns-1.6.17-orig/Makefile.in 2014-01-11 01:04:41.000000000 +0400 ++++ ldns-1.6.17/Makefile.in 2014-12-29 09:59:32.063000000 +0300 +@@ -65,7 +65,7 @@ + INSTALL = $(srcdir)/install-sh + + LIBLOBJS = $(LIBOBJS:.o=.lo) +-LDNS_LOBJS = buffer.lo dane.lo dname.lo dnssec.lo dnssec_sign.lo dnssec_verify.lo dnssec_zone.lo duration.lo error.lo higher.lo host2str.lo host2wire.lo keys.lo net.lo packet.lo parse.lo radix.lo rbtree.lo rdata.lo resolver.lo rr.lo rr_functions.lo sha1.lo sha2.lo str2host.lo tsig.lo update.lo util.lo wire2host.lo zone.lo ++LDNS_LOBJS = buffer.lo dane.lo dname.lo dnssec.lo dnssec_sign.lo dnssec_verify.lo dnssec_zone.lo duration.lo error.lo higher.lo host2str.lo host2wire.lo keys.lo net.lo packet.lo parse.lo pathtools.lo radix.lo rbtree.lo rdata.lo resolver.lo rr.lo rr_functions.lo sha1.lo sha2.lo str2host.lo tsig.lo update.lo util.lo wire2host.lo zone.lo + LDNS_LOBJS_EX = ^linktest\.c$$ + LDNS_ALL_LOBJS = $(LDNS_LOBJS) $(LIBLOBJS) + LIB = libldns.la +@@ -118,6 +118,7 @@ + @if test ! -d drill ; then mkdir drill ; fi + @if test ! -d examples ; then mkdir examples ; fi + @if test ! -h config.h ; then ln -s ldns/config.h . ; fi ++ @if test ! -d .libs ; then mkdir .libs ; fi + @if test ! -h lib ; then ln -s .libs lib ; fi ; + @if test ! -d include ; then $(INSTALL) -d include; fi + @if test ! -h include/ldns ; then ln -s ../ldns include/ldns || echo "include/ldns exists"; fi +@@ -216,7 +216,7 @@ + lib-export-all: libldns.la-export-all + + libldns.la: $(LDNS_ALL_LOBJS) +- $(LINK_LIB) $(LIBSSL_LDFLAGS) $(LIBSSL_LIBS) -export-symbols-regex '^(ldns_|b32_[pn]to[pn]|mktime_from_utc|qsort_rr_compare_nsec3)' -o libldns.la $(LDNS_ALL_LOBJS) -rpath $(libdir) $(RUNTIME_PATH) ++ $(LINK_LIB) $(LIBSSL_LDFLAGS) $(LIBSSL_LIBS) -export-symbols-regex '^(ldns_|inet_[anp]to[pn]|b64_[pn]to[pn]|b32_[pn]to[pn]|mktime_from_utc|qsort_rr_compare_nsec3)' -o libldns.la $(LDNS_ALL_LOBJS) -rpath $(libdir) $(RUNTIME_PATH) + + libldns.la-export-all: $(LDNS_ALL_LOBJS) + $(LINK_LIB) -o libldns.la $(LDNS_ALL_LOBJS) -rpath $(libdir) $(RUNTIME_PATH) +--- ldns-1.6.17/util.c.orig 2014-12-29 12:10:20.441600000 +0300 ++++ ldns-1.6.17/util.c 2014-12-29 12:11:18.856000000 +0300 +@@ -22,10 +22,31 @@ + #include + #include + ++#include "pathtools.h" ++ + #ifdef HAVE_SSL + #include + #endif + ++char * ++ldns_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ + ldns_lookup_table * + ldns_lookup_by_name(ldns_lookup_table *table, const char *name) + { +--- ldns-1.6.17/ldns/util.h.in.orig 2014-12-29 12:08:51.581000000 +0300 ++++ ldns-1.6.17/ldns/util.h.in 2014-12-29 12:11:09.152800000 +0300 +@@ -385,6 +385,7 @@ + + #endif /* ! LDNS_BUILD_CONFIG_HAVE_B32_PTON */ + ++char * ldns_path_relocation(const char *from, const char *to); + + #ifdef __cplusplus + } From d8939c5d621ee708055e5160046758bff0bbd9d6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 29 Dec 2014 14:31:50 +0300 Subject: [PATCH 0230/2060] swig: Rebuild. --- mingw-w64-swig/001-relocate.patch | Bin 21839 -> 17440 bytes mingw-w64-swig/PKGBUILD | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-swig/001-relocate.patch b/mingw-w64-swig/001-relocate.patch index ad58afd5545a3d0c099934cd8da093274c2b1dcd..2d82c022eaddd370921e7f9b584047933063e5dd 100644 GIT binary patch delta 17 YcmX@Vig7^);|5Wt$(_R7i~WV206mBW>;M1& delta 4326 zcmZ3`!FYZZ;|5VCUA=hU#O&0x%$!uc#9W2q^2~HyV?6^sBmLm~(xT*4eH8hL_M(#? zaI*8F2u}XaY0ab;KY0O@M7^Pvk%5(=nVx~6k(mJqC}>Y104TEW0zVQyutYhi9|Ze&>x)i+SosQm*K@(_DR!+$jV2Qmak z)89abJ_EyO_>YGFK!(6*`Wwj5AI<-x>2Eas4P*!mo%F{D3?>i;1G$il%wmP2)M9X# zTOlpKC|e;juOu}O)E`aE$*EMxNlhzJNXkjf%Lew8p}Me8L&yIR-y=c*?im>dx&QyU zViYb+Qn;||!oCZ8FScFSs&KL8!iEbwFYLasLE*yQ3tKNXfv9~KHUaTYg^P_Bn=Up0 WnY)-S?3jGOMtO1+6Zc{TCMN*GWS5En diff --git a/mingw-w64-swig/PKGBUILD b/mingw-w64-swig/PKGBUILD index 29bf636a3c..4fbc44e6af 100644 --- a/mingw-w64-swig/PKGBUILD +++ b/mingw-w64-swig/PKGBUILD @@ -3,7 +3,7 @@ _realname=swig pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2 -pkgrel=3 +pkgrel=4 pkgdesc="Generate scripting interfaces to C/C++ code" arch=('any') url="http://www.swig.org/" @@ -18,7 +18,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" source=(http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz 001-relocate.patch) sha1sums=('e695a14acf39b25f3ea2d7303e23e39dfe284e31' - 'c392b470a198f3d54b81c2342b164ec499144486') + '2df8f0deca96ffa2a3625070e31483ba10817ec5') prepare() { cd ${_realname}-${pkgver} From a52f5b5b0558231dbca7a0188e52c56ef5805def Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 29 Dec 2014 15:21:05 +0300 Subject: [PATCH 0231/2060] libgusb: Fix building. --- .../0001-give-cc-to-gir-scanner.all.patch | 10 ++++++++++ mingw-w64-libgusb/PKGBUILD | 14 ++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-libgusb/0001-give-cc-to-gir-scanner.all.patch diff --git a/mingw-w64-libgusb/0001-give-cc-to-gir-scanner.all.patch b/mingw-w64-libgusb/0001-give-cc-to-gir-scanner.all.patch new file mode 100644 index 0000000000..b1abd26102 --- /dev/null +++ b/mingw-w64-libgusb/0001-give-cc-to-gir-scanner.all.patch @@ -0,0 +1,10 @@ +--- libgusb-gusb_0_2_3/gusb/Makefile.am.orig 2013-07-28 21:11:04.599868800 +0000 ++++ libgusb-gusb_0_2_3/gusb/Makefile.am 2013-07-28 21:18:26.664003800 +0000 +@@ -74,6 +74,7 @@ + include $(INTROSPECTION_MAKEFILE) + + INTROSPECTION_GIRS = GUsb-1.0.gir ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + GUsb-1.0.gir: libgusb.la + diff --git a/mingw-w64-libgusb/PKGBUILD b/mingw-w64-libgusb/PKGBUILD index d00f1c5f8f..9fc95e954f 100644 --- a/mingw-w64-libgusb/PKGBUILD +++ b/mingw-w64-libgusb/PKGBUILD @@ -16,11 +16,15 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs') license=("LGPL") url="https://github.com/hughsie/libgusb" -source=("https://github.com/hughsie/${_realname}/archive/${_tarballname}_${pkgver//./_}.tar.gz") -sha256sums=('c55dc5735b24eb4ce8e9413be7c65f3177a891d049edaea63f55dd2c011d5e0a') +source=("https://github.com/hughsie/${_realname}/archive/${_tarballname}_${pkgver//./_}.tar.gz" + 0001-give-cc-to-gir-scanner.all.patch) +sha256sums=('c55dc5735b24eb4ce8e9413be7c65f3177a891d049edaea63f55dd2c011d5e0a' + 'eda4802ca9009eeb58359df4140accf0bacac415387c7e5ad3577048835b7a71') prepare() { cd "${srcdir}"/${_realname}-${_tarballname}_${pkgver//./_} + patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.all.patch + gtkdocize autoreconf -f -i } @@ -28,12 +32,14 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} - ../${_realname}-${pkgver}/configure \ + ../${_realname}-${_tarballname}_${pkgver//./_}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --libexecdir=${MINGW_PREFIX}/lib + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-introspection + make } From e8035ce317f05ae9372482033b707de67de3a2da Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 29 Dec 2014 15:55:47 +0300 Subject: [PATCH 0232/2060] httplib2: Fix creating path for system ca-bundle.crt --- mingw-w64-python-httplib2/PKGBUILD | 4 ++-- mingw-w64-python-httplib2/cert.patch | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-python-httplib2/PKGBUILD b/mingw-w64-python-httplib2/PKGBUILD index d9ca7ea674..bc8fc4087c 100644 --- a/mingw-w64-python-httplib2/PKGBUILD +++ b/mingw-w64-python-httplib2/PKGBUILD @@ -4,7 +4,7 @@ _realname=httplib2 pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.9 -pkgrel=1 +pkgrel=2 pkgdesc="Comprehensive HTTP client library, supporting many features (mingw-w64)" arch=('any') license=('MIT') @@ -22,7 +22,7 @@ source=(#"git://github.com/jcgregorio/httplib2.git#commit=7d1b88a3cf" cert.patch) md5sums=('5fd16fb863d33dca000b2590f75e5ed7' '6de5596aedd196a4db96f83f529e3509' - '9b79e05e241baa40224b7c5f17b8d3ff') + '98fab3f5a578c0db600237f025aac991') prepare() { pushd "${_realname}-${pkgver}" diff --git a/mingw-w64-python-httplib2/cert.patch b/mingw-w64-python-httplib2/cert.patch index 92c1c8c5f6..23021ba85a 100644 --- a/mingw-w64-python-httplib2/cert.patch +++ b/mingw-w64-python-httplib2/cert.patch @@ -9,7 +9,7 @@ diff -ur httplib2-0.8.orig/python2/httplib2/__init__.py httplib2-0.8/python2/htt - CA_CERTS = os.path.join( - os.path.dirname(os.path.abspath(__file__ )), "cacerts.txt") + # Use system CA certificates -+ CA_CERTS = os.path.join(sys.exec_prefix, "ssl", "certs" "ca-bundle.crt") ++ CA_CERTS = os.path.join(sys.exec_prefix, "ssl", "certs", "ca-bundle.crt") # Which headers are hop-by-hop headers by default HOP_BY_HOP = ['connection', 'keep-alive', 'proxy-authenticate', 'proxy-authorization', 'te', 'trailers', 'transfer-encoding', 'upgrade'] @@ -24,7 +24,7 @@ diff -ur httplib2-0.8.orig/python3/httplib2/__init__.py httplib2-0.8/python3/htt -CA_CERTS = os.path.join( - os.path.dirname(os.path.abspath(__file__ )), "cacerts.txt") +# Use system CA certificates -+CA_CERTS = os.path.join(sys.exec_prefix, "ssl", "certs" "ca-bundle.crt") ++CA_CERTS = os.path.join(sys.exec_prefix, "ssl", "certs", "ca-bundle.crt") def _get_end2end_headers(response): hopbyhop = list(HOP_BY_HOP) From 89ecb019d6f73ec1ddb47b81e18b106c0f7ce4a8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 31 Dec 2014 02:21:12 +0300 Subject: [PATCH 0233/2060] setuptools: Update to 9.1 --- mingw-w64-python-setuptools/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index 628f3d97b0..b6b393cbb0 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -5,7 +5,7 @@ _realname=setuptools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.4 -pkgver=8.2.1 +pkgver=9.1 #pkgver=5.4.1 pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" @@ -18,7 +18,7 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('ddb4454303142be3446437e4fafb13bbd4570133' +sha1sums=('b068a670c84df7b961730c6a0d00cd06c7b767f0' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' From 9dbb5a1fa56e27155379700d31e485798fc85aeb Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Thu, 23 Oct 2014 19:41:18 -0200 Subject: [PATCH 0234/2060] New package xmlstarlet. --- mingw-w64-xmlstarlet/PKGBUILD | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 mingw-w64-xmlstarlet/PKGBUILD diff --git a/mingw-w64-xmlstarlet/PKGBUILD b/mingw-w64-xmlstarlet/PKGBUILD new file mode 100644 index 0000000000..9dcac3dc58 --- /dev/null +++ b/mingw-w64-xmlstarlet/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Renato Silva + +_name=xmlstarlet +license=(MIT) +url="http://xmlstar.sourceforge.net" +pkgdesc="Command-line XML toolkit" +pkgver=r678.9a470e3 +pkgrel=1 +arch=(any) + +pkgname=(${MINGW_PACKAGE_PREFIX}-${_name}-git) +provides=(${MINGW_PACKAGE_PREFIX}-${_name}) +conflicts=(${MINGW_PACKAGE_PREFIX}-${_name}) + +md5sums=(SKIP) +source=(${_name}::"git://xmlstar.git.sourceforge.net/gitroot/xmlstar/xmlstar") +makedepends=(${MINGW_PACKAGE_PREFIX}-libxml2 + ${MINGW_PACKAGE_PREFIX}-libxslt) + +prepare() { + cd "$srcdir/${_name}" + autoreconf -sif +} + +pkgver() { + cd "$srcdir/${_name}" + printf "r%s.%s" $(git rev-list --count HEAD) $(git rev-parse --short HEAD) +} + +build() { + cd "$srcdir/${_name}" + ./configure --prefix=${MINGW_PREFIX} + make +} + +package() { + cd "$srcdir/${_name}" + make DESTDIR="$pkgdir/" install + local license_dir="${pkgdir}${MINGW_PREFIX}/share/licenses/${_name}" + mkdir -p "$license_dir" + cp -v Copyright "$license_dir/Copyright" + mv -v "${pkgdir}${MINGW_PREFIX}/bin/xml.exe" "${pkgdir}${MINGW_PREFIX}/bin/xmlstarlet.exe" +} From b25be77ce59034b0002187f281c4ab21ac6847ba Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Wed, 17 Dec 2014 19:47:44 -0200 Subject: [PATCH 0235/2060] New package silc-toolkit. Special thanks to David Macek for the last patch. --- ...emove-outdated-mno-cygwin-gcc-option.patch | 49 ++++++++++++++ .../002-fixes-for-64-bit.patch | 21 ++++++ .../003-fix-references-to-slash-usr.patch | 32 +++++++++ .../004-link-with-regex-and-silc.patch | 16 +++++ .../005-fix-some-compiler-check.patch | 12 ++++ .../006-disable-dllimport-for-silcske.patch | 13 ++++ mingw-w64-silc-toolkit/PKGBUILD | 66 +++++++++++++++++++ 7 files changed, 209 insertions(+) create mode 100644 mingw-w64-silc-toolkit/001-remove-outdated-mno-cygwin-gcc-option.patch create mode 100644 mingw-w64-silc-toolkit/002-fixes-for-64-bit.patch create mode 100644 mingw-w64-silc-toolkit/003-fix-references-to-slash-usr.patch create mode 100644 mingw-w64-silc-toolkit/004-link-with-regex-and-silc.patch create mode 100644 mingw-w64-silc-toolkit/005-fix-some-compiler-check.patch create mode 100644 mingw-w64-silc-toolkit/006-disable-dllimport-for-silcske.patch create mode 100644 mingw-w64-silc-toolkit/PKGBUILD diff --git a/mingw-w64-silc-toolkit/001-remove-outdated-mno-cygwin-gcc-option.patch b/mingw-w64-silc-toolkit/001-remove-outdated-mno-cygwin-gcc-option.patch new file mode 100644 index 0000000000..3f97b7469c --- /dev/null +++ b/mingw-w64-silc-toolkit/001-remove-outdated-mno-cygwin-gcc-option.patch @@ -0,0 +1,49 @@ +diff -aur old/configure 001/configure +--- old/configure 2014-05-13 03:20:24.000000000 -0300 ++++ 001/configure 2014-12-17 16:52:24.986328100 -0200 +@@ -1505,7 +1505,7 @@ + --with-gmp[=DIR] use GMP instead of SILC Math [search in DIR/lib and DIR/include] + --with-iconv[=DIR] use libiconv [search in DIR/include and DIR/lib] + --with-pthreads[=DIR] use POSIX threads [search in DIR/include and DIR/lib] +- --with-win32 compile native WIN32 (MinGW) code (-mno-cygwin) ++ --with-win32 compile native WIN32 (MinGW) code + --with-simdir=DIR directory for SIM modules [PREFIX/modules] + + Some influential environment variables: +@@ -15310,7 +15310,6 @@ + $as_echo "#define SILC_WIN32 /**/" >>confdefs.h + + win32_support=true +- CFLAGS="-mno-cygwin $CFLAGS" + LIBS="$LIBS -lwsock32" + + else +diff -aur old/configure.ac 001/configure.ac +--- old/configure.ac 2014-05-13 03:20:24.000000000 -0300 ++++ 001/configure.ac 2014-12-17 16:52:11.393554600 -0200 +@@ -1228,12 +1228,11 @@ + # + AC_MSG_CHECKING(whether to compile native WIN32 code) + AC_ARG_WITH(win32, +- [ --with-win32 compile native WIN32 (MinGW) code (-mno-cygwin)], ++ [ --with-win32 compile native WIN32 (MinGW) code], + [ + AC_MSG_RESULT(yes) + AC_DEFINE([SILC_WIN32], [], [SILC_WIN32]) + win32_support=true +- CFLAGS="-mno-cygwin $CFLAGS" + LIBS="$LIBS -lwsock32" + ], + [ +diff -aur old/win32/silcdefs.h 001/win32/silcdefs.h +--- old/win32/silcdefs.h 2014-05-05 02:29:05.000000000 -0300 ++++ 001/win32/silcdefs.h 2014-12-17 16:51:50.421875000 -0200 +@@ -103,7 +103,7 @@ + /* #undef Rfclose */ + /* #undef Rgethostbyname */ + +-/* Native WIN32 compilation (-mno-cygwin GCC option) under cygwin, though ++/* Native WIN32 compilation under cygwin, though + the code compiles with any native WIN32 compiler. */ + #ifndef SILC_WIN32 + #define SILC_WIN32 1 diff --git a/mingw-w64-silc-toolkit/002-fixes-for-64-bit.patch b/mingw-w64-silc-toolkit/002-fixes-for-64-bit.patch new file mode 100644 index 0000000000..f0812f5fcd --- /dev/null +++ b/mingw-w64-silc-toolkit/002-fixes-for-64-bit.patch @@ -0,0 +1,21 @@ +diff -aur 001/lib/silcutil/win32/silcwin32schedule.c 002/lib/silcutil/win32/silcwin32schedule.c +--- 001/lib/silcutil/win32/silcwin32schedule.c 2014-12-17 16:54:49.695312500 -0200 ++++ 002/lib/silcutil/win32/silcwin32schedule.c 2014-12-17 16:53:15.266601500 -0200 +@@ -130,7 +130,7 @@ + static LRESULT CALLBACK + silc_schedule_wnd_proc(HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam) + { +- SilcSchedule schedule = (SilcSchedule)GetWindowLongPtr(hwnd, GWL_USERDATA); ++ SilcSchedule schedule = (SilcSchedule)GetWindowLongPtr(hwnd, GWLP_USERDATA); + SilcWin32Scheduler internal; + SilcUInt32 fd; + SilcTaskFd task; +@@ -268,7 +268,7 @@ + } + + /* Set the scheduler as the window's context */ +- SetWindowLongPtr(internal->window, GWL_USERDATA, (void *)schedule); ++ SetWindowLongPtr(internal->window, GWLP_USERDATA, (void *)schedule); + SetWindowPos(internal->window, HWND_BOTTOM, 0, 0, 0, 0, SWP_FRAMECHANGED); + + internal->wakeup_sema = CreateSemaphore(NULL, 0, 100, NULL); diff --git a/mingw-w64-silc-toolkit/003-fix-references-to-slash-usr.patch b/mingw-w64-silc-toolkit/003-fix-references-to-slash-usr.patch new file mode 100644 index 0000000000..bc38f96c37 --- /dev/null +++ b/mingw-w64-silc-toolkit/003-fix-references-to-slash-usr.patch @@ -0,0 +1,32 @@ +diff -aur 002/configure 003/configure +--- 002/configure 2014-12-17 16:53:14.776367100 -0200 ++++ 003/configure 2014-12-17 16:59:46.995117100 -0200 +@@ -14624,9 +14624,9 @@ + _ACEOF + + LIBS="$LIBS -liconv" +- LDFLAGS="$LDFLAGS -L/usr/lib" +- CFLAGS="$CFLAGS -I/usr/include" +- CPPLAGS="$CPPFLAGS -I/usr/include" ++ LDFLAGS="$LDFLAGS -L${prefix}/lib" ++ CFLAGS="$CFLAGS -I${prefix}/include" ++ CPPLAGS="$CPPFLAGS -I${prefix}/include" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv in -liconv" >&5 + $as_echo_n "checking for iconv in -liconv... " >&6; } +diff -aur 002/configure.ac 003/configure.ac +--- 002/configure.ac 2014-12-17 16:53:04.545898400 -0200 ++++ 003/configure.ac 2014-12-17 17:00:02.793945300 -0200 +@@ -869,9 +869,9 @@ + AC_CHECK_HEADERS(iconv.h, + [ + LIBS="$LIBS -liconv" +- LDFLAGS="$LDFLAGS -L/usr/lib" +- CFLAGS="$CFLAGS -I/usr/include" +- CPPLAGS="$CPPFLAGS -I/usr/include" ++ LDFLAGS="$LDFLAGS -L${prefix}/lib" ++ CFLAGS="$CFLAGS -I${prefix}/include" ++ CPPLAGS="$CPPFLAGS -I${prefix}/include" + + AC_MSG_CHECKING(for iconv in -liconv) + AC_TRY_LINK( diff --git a/mingw-w64-silc-toolkit/004-link-with-regex-and-silc.patch b/mingw-w64-silc-toolkit/004-link-with-regex-and-silc.patch new file mode 100644 index 0000000000..6293f1b96b --- /dev/null +++ b/mingw-w64-silc-toolkit/004-link-with-regex-and-silc.patch @@ -0,0 +1,16 @@ +diff -aur 003/lib/Makefile.am 004/lib/Makefile.am +--- 003/lib/Makefile.am 2014-12-17 16:55:40.332031200 -0200 ++++ 004/lib/Makefile.am 2014-12-17 17:48:30.896484300 -0200 +@@ -44,9 +44,9 @@ + endif + + if SILC_WIN32 +-SILC_LINK_LIBS=$(LIBS) +-SILCCLIENT_LINK_LIBS=$(LIBS) -lsilc +-SILCSERVER_LIBS=$(LIBS) -lsilc ++SILC_LINK_LIBS=$(LIBS) -lregex ++SILCCLIENT_LINK_LIBS=$(LIBS) -lsilc -lregex ++SILCSERVER_LIBS=$(LIBS) -lsilc -lregex + else + SILC_LINK_LIBS=$(LIBS) + SILCCLIENT_LINK_LIBS=libsilc.la diff --git a/mingw-w64-silc-toolkit/005-fix-some-compiler-check.patch b/mingw-w64-silc-toolkit/005-fix-some-compiler-check.patch new file mode 100644 index 0000000000..10d9866f6b --- /dev/null +++ b/mingw-w64-silc-toolkit/005-fix-some-compiler-check.patch @@ -0,0 +1,12 @@ +diff -aur 003/includes/silcwin32.h 004/includes/silcwin32.h +--- 003/includes/silcwin32.h 2014-12-17 16:55:41.595703100 -0200 ++++ 004/includes/silcwin32.h 2014-12-17 17:46:48.268554600 -0200 +@@ -71,7 +71,7 @@ + #undef sleep + #define sleep(x) Sleep((x) * 1000) + +-#if _MSC_VER < 1300 ++#if (defined(_MSC_VER) && (_MSC_VER < 1300)) + #define SetWindowLongPtr SetWindowLong + #define GetWindowLongPtr GetWindowLong + #endif /* _MSC_VER < 1300 */ diff --git a/mingw-w64-silc-toolkit/006-disable-dllimport-for-silcske.patch b/mingw-w64-silc-toolkit/006-disable-dllimport-for-silcske.patch new file mode 100644 index 0000000000..c034607091 --- /dev/null +++ b/mingw-w64-silc-toolkit/006-disable-dllimport-for-silcske.patch @@ -0,0 +1,13 @@ +Author: David Macek +--- x/lib/silcske/silcske.c 2014-12-24 04:06:52.876999300 +0100 ++++ x/lib/silcske/silcske.c 2014-12-24 04:06:35.083627900 +0100 +@@ -18,6 +18,9 @@ + */ + /* $Id$ */ + ++/* let's disable dllimport in silccrypt, see includes/silcwin32.h */ ++#define DLL ++ + #include "silc.h" + #include "silcske.h" + #include "groups_internal.h" diff --git a/mingw-w64-silc-toolkit/PKGBUILD b/mingw-w64-silc-toolkit/PKGBUILD new file mode 100644 index 0000000000..10349687bf --- /dev/null +++ b/mingw-w64-silc-toolkit/PKGBUILD @@ -0,0 +1,66 @@ +# Maintainer: Renato Silva +# Contributor: David Macek + +_name=silc-toolkit +url="http://http://silcnet.org" +pkgdesc="Secure Internet Live Conferencing (mingw-w64)" +license=(GPL2 BSD) +arch=(any) +pkgver=1.1.12 +pkgrel=1 + +pkgname=(${MINGW_PACKAGE_PREFIX}-${_name}) +depends=(${MINGW_PACKAGE_PREFIX}-libgnurx) +makedepends=(${MINGW_PACKAGE_PREFIX}-gcc) + +source=("https://downloads.sourceforge.net/project/silc/silc/toolkit/sources/silc-toolkit-${pkgver}.tar.gz" + 001-remove-outdated-mno-cygwin-gcc-option.patch + 002-fixes-for-64-bit.patch + 003-fix-references-to-slash-usr.patch + 004-link-with-regex-and-silc.patch + 005-fix-some-compiler-check.patch + 006-disable-dllimport-for-silcske.patch) + +md5sums=(321536224d4dee2423a3fd05af651eff + f726a755bdd53473cbf8721e7f948714 + 9df1cb6241c269a194cb4ef6b2bc0504 + 2bf45e2323f154aa8b56c4465e83f144 + d8099a0d6e97bc790d587a4a12f380cd + 58509bbd8c6070845e22ebabec3e957a + 914cb7a97cd8dcbff35e84090a840536) + +prepare() { + cd "$srcdir/${_name}-${pkgver}" + patch -p1 < "${startdir}"/001-remove-outdated-mno-cygwin-gcc-option.patch + patch -p1 < "${startdir}"/002-fixes-for-64-bit.patch + patch -p1 < "${startdir}"/003-fix-references-to-slash-usr.patch + patch -p1 < "${startdir}"/004-link-with-regex-and-silc.patch + patch -p1 < "${startdir}"/005-fix-some-compiler-check.patch + patch -p1 < "${startdir}"/006-disable-dllimport-for-silcske.patch + autoreconf -sif +} + +build() { + cd "$srcdir/${_name}-${pkgver}" + ./configure \ + --prefix=${MINGW_PREFIX} \ + --with-simdir=${MINGW_PREFIX}/lib/silc/modules \ + --with-win32 + make +} + +package() { + cd "$srcdir/${_name}-${pkgver}" + make DESTDIR="${pkgdir}" install + + # License + cd "${pkgdir}${MINGW_PREFIX}/share" + mkdir -p licenses/${_name} + mv -v doc/${_name}/COPYING licenses/${_name}/COPYING + mv -v doc/${_name}/GPL licenses/${_name}/GPL + mv -v doc/${_name}/BSD licenses/${_name}/BSD + + # Remove empty modules directory + cd "${pkgdir}${MINGW_PREFIX}/lib" + rmdir silc/modules silc +} From 89d61ccd2f657bc70897c1b9337622ffa83c509b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 31 Dec 2014 14:30:10 +0300 Subject: [PATCH 0236/2060] freetype: Update to 2.5.5 --- mingw-w64-freetype/PKGBUILD | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mingw-w64-freetype/PKGBUILD b/mingw-w64-freetype/PKGBUILD index 4adfee557a..ddc0787bd6 100644 --- a/mingw-w64-freetype/PKGBUILD +++ b/mingw-w64-freetype/PKGBUILD @@ -2,17 +2,17 @@ _realname=freetype pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.5.4 +pkgver=2.5.5 pkgrel=1 pkgdesc="TrueType font rendering library (mingw-w64)" arch=('any') url="http://www.freetype.org/" license=('GPL') -depends=("${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-harfbuzz") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-bzip2" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-harfbuzz" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' '!libtool' 'staticlibs') source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver}.tar.bz2 @@ -20,7 +20,7 @@ source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver} freetype-2.5.1-enable-spr.patch freetype-2.5.1-enable-sph.patch mingw-config.patch) -md5sums=('438585445a2f1f71c77590155fd96616' +md5sums=('2a7a314927011d5030903179cf183be0' '214119610444c9b02766ccee5e220680' '80a14cce234f3f190cd936ca9060c398' '0636ba2ff074201e2ea5c47ac408bc63' From ecc6b45f0484ffc8b90629706c3590d14991f930 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 31 Dec 2014 16:54:00 +0300 Subject: [PATCH 0237/2060] meld3: Update to 3.13.0 --- mingw-w64-meld3/PKGBUILD | 4 ++-- mingw-w64-meld3/meld-i686.install | 10 +++++----- mingw-w64-meld3/meld-x86_64.install | 10 +++++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mingw-w64-meld3/PKGBUILD b/mingw-w64-meld3/PKGBUILD index 6b9303dd75..809d16033e 100644 --- a/mingw-w64-meld3/PKGBUILD +++ b/mingw-w64-meld3/PKGBUILD @@ -2,7 +2,7 @@ _realname=meld pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.12.2 +pkgver=3.13.0 pkgrel=1 pkgdesc="Visual diff and merge tool (mingw-w64)" arch=('any') @@ -26,7 +26,7 @@ install=meld-${CARCH}.install source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz '0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch' "0002-build-exe.patch") -md5sums=('a11c4abf923d136e410fa9e8217c0bba' +md5sums=('ce67d82dea80dde9914d2156ad0ea8b8' '57d46e2eacc34e8d22f63a59b6297253' 'c4770167f70e061c1f94d8c3fa3e7150') diff --git a/mingw-w64-meld3/meld-i686.install b/mingw-w64-meld3/meld-i686.install index 422f41d0d1..4843eff7f8 100644 --- a/mingw-w64-meld3/meld-i686.install +++ b/mingw-w64-meld3/meld-i686.install @@ -1,13 +1,13 @@ post_install() { - mingw32/bin/gtk-update-icon-cache-3.0 -f -t mingw32/share/icons/hicolor - mingw32/bin/glib-compile-schemas.exe mingw32/share/glib-2.0/schemas - mingw32/bin/update-mime-database mingw32/share/mime &> /dev/null + mingw32/bin/gtk-update-icon-cache-3.0 -f -t mingw32/share/icons/hicolor + mingw32/bin/glib-compile-schemas.exe mingw32/share/glib-2.0/schemas + mingw32/bin/update-mime-database mingw32/share/mime &> /dev/null } post_upgrade() { - post_install + post_install } post_remove() { - post_install + post_install } diff --git a/mingw-w64-meld3/meld-x86_64.install b/mingw-w64-meld3/meld-x86_64.install index 349b3e8ad2..de7d5f8b09 100644 --- a/mingw-w64-meld3/meld-x86_64.install +++ b/mingw-w64-meld3/meld-x86_64.install @@ -1,13 +1,13 @@ post_install() { - mingw64/bin/gtk-update-icon-cache-3.0 -f -t mingw64/share/icons/hicolor - mingw64/bin/glib-compile-schemas.exe mingw64/share/glib-2.0/schemas - mingw64/bin/update-mime-database mingw64/share/mime &> /dev/null + mingw64/bin/gtk-update-icon-cache-3.0 -f -t mingw64/share/icons/hicolor + mingw64/bin/glib-compile-schemas.exe mingw64/share/glib-2.0/schemas + mingw64/bin/update-mime-database mingw64/share/mime &> /dev/null } post_upgrade() { - post_install + post_install } post_remove() { - post_install + post_install } From 663b3a71fb9cde7c0b2c50edd54541668bfbbdd6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 31 Dec 2014 22:08:32 +0300 Subject: [PATCH 0238/2060] xmlstartlet: Fix building. --- mingw-w64-xmlstarlet/PKGBUILD | 50 ++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/mingw-w64-xmlstarlet/PKGBUILD b/mingw-w64-xmlstarlet/PKGBUILD index 9dcac3dc58..80c14b513c 100644 --- a/mingw-w64-xmlstarlet/PKGBUILD +++ b/mingw-w64-xmlstarlet/PKGBUILD @@ -1,43 +1,51 @@ # Maintainer: Renato Silva _name=xmlstarlet -license=(MIT) -url="http://xmlstar.sourceforge.net" pkgdesc="Command-line XML toolkit" pkgver=r678.9a470e3 pkgrel=1 -arch=(any) - +arch=('any') +license=('MIT') +url="http://xmlstar.sourceforge.net" pkgname=(${MINGW_PACKAGE_PREFIX}-${_name}-git) provides=(${MINGW_PACKAGE_PREFIX}-${_name}) conflicts=(${MINGW_PACKAGE_PREFIX}-${_name}) - -md5sums=(SKIP) +md5sums=('SKIP') source=(${_name}::"git://xmlstar.git.sourceforge.net/gitroot/xmlstar/xmlstar") -makedepends=(${MINGW_PACKAGE_PREFIX}-libxml2 - ${MINGW_PACKAGE_PREFIX}-libxslt) +depends=(${MINGW_PACKAGE_PREFIX}-libxml2 + ${MINGW_PACKAGE_PREFIX}-libxslt) +makedepends=(${MINGW_PACKAGE_PREFIX}-gcc ${MINGW_PACKAGE_PREFIX}-libiconv) prepare() { - cd "$srcdir/${_name}" - autoreconf -sif + cd "$srcdir/${_name}" + autoreconf -sif } pkgver() { - cd "$srcdir/${_name}" - printf "r%s.%s" $(git rev-list --count HEAD) $(git rev-parse --short HEAD) + cd "$srcdir/${_name}" + printf "r%s.%s" $(git rev-list --count HEAD) $(git rev-parse --short HEAD) } build() { - cd "$srcdir/${_name}" - ./configure --prefix=${MINGW_PREFIX} - make + cd "$srcdir/${_name}" + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --with-libxml-prefix=${MINGW_PREFIX} \ + --with-libxslt-prefix=${MINGW_PREFIX} \ + --with-libiconv-prefix=${MINGW_PREFIX} + # --enable-static-libs # To link with libxml/libxslt statically + + make } package() { - cd "$srcdir/${_name}" - make DESTDIR="$pkgdir/" install - local license_dir="${pkgdir}${MINGW_PREFIX}/share/licenses/${_name}" - mkdir -p "$license_dir" - cp -v Copyright "$license_dir/Copyright" - mv -v "${pkgdir}${MINGW_PREFIX}/bin/xml.exe" "${pkgdir}${MINGW_PREFIX}/bin/xmlstarlet.exe" + cd "$srcdir/${_name}" + make DESTDIR="$pkgdir/" install + local license_dir="${pkgdir}${MINGW_PREFIX}/share/licenses/${_name}" + mkdir -p "$license_dir" + cp -v Copyright "$license_dir/Copyright" + mv -v "${pkgdir}${MINGW_PREFIX}/bin/xml.exe" "${pkgdir}${MINGW_PREFIX}/bin/xmlstarlet.exe" } From 7662bba2556c05e4564569167700ff8fcc4c0e64 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 1 Jan 2015 19:59:26 +0300 Subject: [PATCH 0239/2060] libnice: Update to 0.1.8. Fix building introspection. --- .../0003-give-cc-to-gir-scanner.all.patch | 10 ++++++++++ mingw-w64-libnice/PKGBUILD | 20 ++++++++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-libnice/0003-give-cc-to-gir-scanner.all.patch diff --git a/mingw-w64-libnice/0003-give-cc-to-gir-scanner.all.patch b/mingw-w64-libnice/0003-give-cc-to-gir-scanner.all.patch new file mode 100644 index 0000000000..9506f7e59b --- /dev/null +++ b/mingw-w64-libnice/0003-give-cc-to-gir-scanner.all.patch @@ -0,0 +1,10 @@ +--- libnice-0.1.8/agent/Makefile.am.orig 2015-01-01 19:43:03.942400000 +0300 ++++ libnice-0.1.8/agent/Makefile.am 2015-01-01 19:44:15.187600000 +0300 +@@ -86,6 +86,7 @@ + # + -include $(INTROSPECTION_MAKEFILE) + INTROSPECTION_GIRS = ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --warn-all --accept-unprefixed + INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) + diff --git a/mingw-w64-libnice/PKGBUILD b/mingw-w64-libnice/PKGBUILD index 5f739cafef..cc82cb7818 100644 --- a/mingw-w64-libnice/PKGBUILD +++ b/mingw-w64-libnice/PKGBUILD @@ -1,29 +1,34 @@ # Maintainer: Alexey Pavlov _realname=libnice - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.1.7 +pkgver=0.1.8 pkgrel=1 pkgdesc="An implementation of the IETF's draft ICE (for p2p UDP data streams) (mingw-w64)" arch=('any') url="http://nice.freedesktop.org" license=("LGPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gstreamer") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gstreamer" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "gtk-doc") depends=("${MINGW_PACKAGE_PREFIX}-glib2") optdepends=("${MINGW_PACKAGE_PREFIX}-gstreamer") options=('staticlibs' 'strip') source=("http://nice.freedesktop.org/releases/${_realname}-$pkgver.tar.gz" 0001-fix-redefinition-mingw-w64.patch - 0002-no-undefined.patch) -md5sums=('ed74abea19b3f049baf095f137388f2a' + 0002-no-undefined.patch + 0003-give-cc-to-gir-scanner.all.patch) +md5sums=('3042d1c3281d098ef1b98d01479b4192' 'b817c8a7c4cbb405341de75b9824204f' - '5c937f7c3a5857038f27a009d33b0757') + '5c937f7c3a5857038f27a009d33b0757' + 'aa92989cd75e24fd2ead5a4e6f334cc7') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-fix-redefinition-mingw-w64.patch patch -p1 -i ${srcdir}/0002-no-undefined.patch + patch -p1 -i ${srcdir}/0003-give-cc-to-gir-scanner.all.patch NOCONFIGURE=1 ./autogen.sh } @@ -36,7 +41,8 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --enable-static + --enable-static \ + --enable-introspection make } From 238f6395f600a3f342f0163fda29976843b7368b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 1 Jan 2015 20:46:53 +0300 Subject: [PATCH 0240/2060] farstream: New package. --- .../0001-farstream-0.2.4.patch | 210 ++++++++++++++++++ .../0002-give-cc-to-gir-scanner.all.patch | 10 + mingw-w64-farstream/PKGBUILD | 61 +++++ 3 files changed, 281 insertions(+) create mode 100644 mingw-w64-farstream/0001-farstream-0.2.4.patch create mode 100644 mingw-w64-farstream/0002-give-cc-to-gir-scanner.all.patch create mode 100644 mingw-w64-farstream/PKGBUILD diff --git a/mingw-w64-farstream/0001-farstream-0.2.4.patch b/mingw-w64-farstream/0001-farstream-0.2.4.patch new file mode 100644 index 0000000000..04a37d82ad --- /dev/null +++ b/mingw-w64-farstream/0001-farstream-0.2.4.patch @@ -0,0 +1,210 @@ +--- farstream-0.2.4/farstream/fs-session.h ++++ farstream-0.2.4/farstream/fs-session.h +@@ -64,7 +64,6 @@ + */ + typedef enum _FsDTMFEvent + { +- /*< protected >*/ + FS_DTMF_EVENT_0 = 0, + FS_DTMF_EVENT_1 = 1, + FS_DTMF_EVENT_2 = 2, +--- farstream-0.2.4/gst/fsmsnconference/fs-msn-connection.c ++++ farstream-0.2.4/gst/fsmsnconference/fs-msn-connection.c +@@ -30,12 +30,19 @@ + + #include "fs-msn-connection.h" + ++#ifdef _WIN32 ++#include ++#include ++#define strerror_r(code, msg, msg_size) strerror_s((msg), (msg_size), (code)) ++typedef int socklen_t; ++#else + #include ++#include ++#include ++#endif + #include + #include +-#include + #include +-#include + #include + #include + #ifdef HAVE_STDLIB_H +@@ -484,8 +491,10 @@ + goto error; + } + ++#ifndef _WIN32 + // set non-blocking mode + fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); ++#endif + for (;;) { + GST_DEBUG ("Attempting to listen on port %d.....",port); + memset(&myaddr, 0, sizeof(myaddr)); +@@ -532,7 +541,7 @@ + + done: + +- if (getsockname (fd, (struct sockaddr *) &myaddr, &myaddr_len) < 0) { ++ if (getsockname (fd, (struct sockaddr *) &myaddr, (void*)&myaddr_len) < 0) { + gchar error_str[256]; + strerror_r (errno, error_str, 256); + g_set_error (error, FS_ERROR, FS_ERROR_NETWORK, +@@ -600,8 +609,10 @@ + return FALSE; + } + ++#ifndef _WIN32 + // set non-blocking mode + fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); ++#endif + + theiraddr.sin_family = AF_INET; + theiraddr.sin_addr.s_addr = inet_addr (candidate->ip); +--- farstream-0.2.4/gst/fsmsnconference/fs-msn-stream.c ++++ farstream-0.2.4/gst/fsmsnconference/fs-msn-stream.c +@@ -49,10 +49,15 @@ + + #include "fs-msn-stream.h" + ++#ifdef _WIN32 ++#include ++#include ++#else + #include +-#include + #include + #include ++#endif ++#include + #include + #include + +@@ -828,12 +833,12 @@ + if (self->priv->fd < 0) + return; + +- if (setsockopt (self->priv->fd, IPPROTO_IP, IP_TOS, &tos, sizeof (tos)) < 0) ++ if (setsockopt (self->priv->fd, IPPROTO_IP, IP_TOS, (const void *)&tos, sizeof (tos)) < 0) + GST_WARNING ( "could not set socket ToS: %s", g_strerror (errno)); + + #ifdef IPV6_TCLASS + if (setsockopt (self->priv->fd, IPPROTO_IPV6, IPV6_TCLASS, +- &tos, sizeof (tos)) < 0) ++ (const void *)&tos, sizeof (tos)) < 0) + GST_WARNING ("could not set TCLASS: %s", g_strerror (errno)); + #endif + } +--- farstream-0.2.4/gst/fsmsnconference/Makefile.am ++++ farstream-0.2.4/gst/fsmsnconference/Makefile.am +@@ -42,7 +42,8 @@ + $(FS_LIBS) \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ +- $(NICE_LIBS) ++ $(NICE_LIBS) \ ++ -lws2_32 + + + +--- farstream-0.2.4/gst/fsrtpconference/fs-rtp-codec-specific.c ++++ farstream-0.2.4/gst/fsrtpconference/fs-rtp-codec-specific.c +@@ -1484,8 +1484,8 @@ + local_level_idc = 0xFF & local_value; + nego_level_idc = MIN (remote_level_idc, local_level_idc); + +- g_snprintf (buf, 7, "%02hhX%02hhX%02hhX", local_profile_idc, nego_profile_iop, +- nego_level_idc); ++ g_snprintf (buf, 7, "%02hX%02hX%02hX", local_profile_idc & 0xFF, nego_profile_iop & 0xFF, ++ nego_level_idc & 0xFF); + + fs_codec_add_optional_parameter (negotiated_codec, sdp_param->name, buf); + +--- farstream-0.2.4/transmitters/multicast/fs-multicast-transmitter.c ++++ farstream-0.2.4/transmitters/multicast/fs-multicast-transmitter.c +@@ -687,12 +687,12 @@ + } + + if (setsockopt (sock, IPPROTO_IP, IP_TOS, +- &type_of_service, sizeof (type_of_service)) < 0) ++ (const void*)&type_of_service, sizeof (type_of_service)) < 0) + GST_WARNING ("could not set socket ToS: %s", g_strerror (errno)); + + #ifdef IPV6_TCLASS + if (setsockopt (sock, IPPROTO_IPV6, IPV6_TCLASS, +- &type_of_service, sizeof (type_of_service)) < 0) ++ (const void*)&type_of_service, sizeof (type_of_service)) < 0) + GST_WARNING ("could not set TCLASS: %s", g_strerror (errno)); + #endif + +@@ -1223,12 +1223,12 @@ + UdpSock *udpsock = item->data; + + if (setsockopt (udpsock->fd, IPPROTO_IP, IP_TOS, +- &tos, sizeof (tos)) < 0) ++ (const void*)&tos, sizeof (tos)) < 0) + GST_WARNING ( "could not set socket tos: %s", g_strerror (errno)); + + #ifdef IPV6_TCLASS + if (setsockopt (udpsock->fd, IPPROTO_IPV6, IPV6_TCLASS, +- &tos, sizeof (tos)) < 0) ++ (const void*)&tos, sizeof (tos)) < 0) + GST_WARNING ("could not set TCLASS: %s", g_strerror (errno)); + #endif + } +--- farstream-0.2.4/transmitters/multicast/Makefile.am ++++ farstream-0.2.4/transmitters/multicast/Makefile.am +@@ -21,7 +21,8 @@ + $(FS_LIBS) \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ +- $(GIO_LIBS) ++ $(GIO_LIBS) \ ++ -lws2_32 + + noinst_HEADERS = \ + fs-multicast-transmitter.h \ +--- farstream-0.2.4/transmitters/rawudp/fs-rawudp-transmitter.c ++++ farstream-0.2.4/transmitters/rawudp/fs-rawudp-transmitter.c +@@ -618,11 +618,11 @@ + + fd = g_socket_get_fd (socket); + +- if (setsockopt (fd, IPPROTO_IP, IP_TOS, &tos, sizeof (tos)) < 0) ++ if (setsockopt (fd, IPPROTO_IP, IP_TOS, (const void *)&tos, sizeof (tos)) < 0) + GST_WARNING ("could not set socket ToS: %s", g_strerror (errno)); + + #ifdef IPV6_TCLASS +- if (setsockopt (fd, IPPROTO_IPV6, IPV6_TCLASS, &tos, sizeof (tos)) < 0) ++ if (setsockopt (fd, IPPROTO_IPV6, IPV6_TCLASS, (const void *)&tos, sizeof (tos)) < 0) + GST_WARNING ("could not set TCLASS: %s", g_strerror (errno)); + #endif + +@@ -1299,11 +1299,11 @@ + UdpPort *udpport = item->data; + int fd = g_socket_get_fd (udpport->socket); + +- if (setsockopt (fd, IPPROTO_IP, IP_TOS, &tos, sizeof (tos)) < 0) ++ if (setsockopt (fd, IPPROTO_IP, IP_TOS, (const void *)&tos, sizeof (tos)) < 0) + GST_WARNING ( "could not set socket ToS: %s", g_strerror (errno)); + + #ifdef IPV6_TCLASS +- if (setsockopt (fd, IPPROTO_IPV6, IPV6_TCLASS, &tos, sizeof (tos)) < 0) ++ if (setsockopt (fd, IPPROTO_IPV6, IPV6_TCLASS, (const void *)&tos, sizeof (tos)) < 0) + GST_WARNING ("could not set TCLASS: %s", g_strerror (errno)); + #endif + } +--- farstream-0.2.4/transmitters/rawudp/Makefile.am ++++ farstream-0.2.4/transmitters/rawudp/Makefile.am +@@ -27,7 +27,8 @@ + $(NICE_LIBS) \ + $(GUPNP_LIBS) \ + $(GIO_LIBS) \ +- -lgstnet-@GST_API_VERSION@ ++ -lgstnet-@GST_API_VERSION@ \ ++ -lws2_32 + + noinst_HEADERS = \ + fs-rawudp-transmitter.h \ diff --git a/mingw-w64-farstream/0002-give-cc-to-gir-scanner.all.patch b/mingw-w64-farstream/0002-give-cc-to-gir-scanner.all.patch new file mode 100644 index 0000000000..24dbd07330 --- /dev/null +++ b/mingw-w64-farstream/0002-give-cc-to-gir-scanner.all.patch @@ -0,0 +1,10 @@ +--- farstream-0.2.6/farstream/Makefile.am.orig 2015-01-01 20:00:54.330400000 +0300 ++++ farstream-0.2.6/farstream/Makefile.am 2014-09-25 21:38:03.000000000 +0400 +@@ -84,6 +84,7 @@ + $(libfarstreaminclude_HEADERS) + + INTROSPECTION_GIRS = Farstream-@FS_APIVERSION@.gir ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + Farstream-@FS_APIVERSION@.gir: libfarstream-@FS_APIVERSION@.la + Farstream_@FS_API_VERSION@_gir_NAMESPACE = Farstream + Farstream_@FS_API_VERSION@_gir_VERSION = @FS_APIVERSION@ diff --git a/mingw-w64-farstream/PKGBUILD b/mingw-w64-farstream/PKGBUILD new file mode 100644 index 0000000000..eaa9e92a03 --- /dev/null +++ b/mingw-w64-farstream/PKGBUILD @@ -0,0 +1,61 @@ +# Maintainer: Alexey Pavlov + +_realname=farstream +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=0.2.6 +pkgrel=1 +pkgdesc="Farstream (formerly Farsight) - Audio/Video Communications Framework" +arch=('any') +url="http://www.freedesktop.org/wiki/Software/Farstream" +groups=("${MINGW_PACKAGE_PREFIX}") +license=('LGPL') +options=('staticlibs' 'strip') +depends=("${MINGW_PACKAGE_PREFIX}-gst-plugins-base" "${MINGW_PACKAGE_PREFIX}-libnice") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "gtk-doc") +source=(http://freedesktop.org/software/${_realname}/releases/${_realname}/${_realname}-$pkgver.tar.gz{,.asc} + 0001-farstream-0.2.4.patch + 0002-give-cc-to-gir-scanner.all.patch) +md5sums=('63cecbb912e7a8b96d4470420327e2cc' + 'SKIP' + '617b1a8fdbc5508ca03abc271f62a73b' + '8a758676c230c58a687ff74784dd3ae5') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i "${srcdir}/0001-farstream-0.2.4.patch" + patch -p1 -i "${srcdir}/0002-give-cc-to-gir-scanner.all.patch" + + WANT_AUTOMAKE=latest autoreconf --force --install +} + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-static \ + --enable-introspection + + make +} + +check() { + cd "${srcdir}/build-${MINGW_CHOST}" + make check +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + + rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a + rm -f ${pkgdir}${MINGW_PREFIX}/lib/farstream*/*.a +} From 16531ba27d1fe53852975c27a2cc1373a2b994ef Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 1 Jan 2015 20:47:25 +0300 Subject: [PATCH 0241/2060] libnice: Fix conflicts with mingw-w64 types --- mingw-w64-libnice/0004-mingw-w64-types.patch | 19 +++++++++++++++++++ mingw-w64-libnice/PKGBUILD | 7 +++++-- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-libnice/0004-mingw-w64-types.patch diff --git a/mingw-w64-libnice/0004-mingw-w64-types.patch b/mingw-w64-libnice/0004-mingw-w64-types.patch new file mode 100644 index 0000000000..fa2b7f730a --- /dev/null +++ b/mingw-w64-libnice/0004-mingw-w64-types.patch @@ -0,0 +1,19 @@ +--- libnice-0.1.8/stun/win32_common.h.orig 2014-10-09 23:28:21.000000000 +0400 ++++ libnice-0.1.8/stun/win32_common.h 2015-01-01 20:23:32.299200000 +0300 +@@ -72,14 +72,14 @@ + + /* Using the [S]SIZE_T definitions from: + * http://msdn.microsoft.com/en-gb/library/windows/desktop/aa383751%28v=vs.85%29.aspx#SSIZE_T */ +-#ifndef HAVE_SIZE_T ++#if !defined(HAVE_SIZE_T) && !defined(_SIZE_T_DEFINED) + #if defined(_WIN64) + typedef unsigned __int64 size_t; + #else + typedef unsigned long size_t; + #endif + #endif /* !HAVE_SSIZE_T */ +-#ifndef HAVE_SSIZE_T ++#if !defined(HAVE_SSIZE_T) && !defined(_SSIZE_T_DEFINED) + #if defined(_WIN64) + typedef signed __int64 ssize_t; + #else diff --git a/mingw-w64-libnice/PKGBUILD b/mingw-w64-libnice/PKGBUILD index cc82cb7818..79951ef63a 100644 --- a/mingw-w64-libnice/PKGBUILD +++ b/mingw-w64-libnice/PKGBUILD @@ -18,17 +18,20 @@ options=('staticlibs' 'strip') source=("http://nice.freedesktop.org/releases/${_realname}-$pkgver.tar.gz" 0001-fix-redefinition-mingw-w64.patch 0002-no-undefined.patch - 0003-give-cc-to-gir-scanner.all.patch) + 0003-give-cc-to-gir-scanner.all.patch + 0004-mingw-w64-types.patch) md5sums=('3042d1c3281d098ef1b98d01479b4192' 'b817c8a7c4cbb405341de75b9824204f' '5c937f7c3a5857038f27a009d33b0757' - 'aa92989cd75e24fd2ead5a4e6f334cc7') + 'aa92989cd75e24fd2ead5a4e6f334cc7' + '2663a220cc777082096610353d7051f2') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-fix-redefinition-mingw-w64.patch patch -p1 -i ${srcdir}/0002-no-undefined.patch patch -p1 -i ${srcdir}/0003-give-cc-to-gir-scanner.all.patch + patch -p1 -i ${srcdir}/0004-mingw-w64-types.patch NOCONFIGURE=1 ./autogen.sh } From 577677feaa94778b7f9504680a33aeaf891262a0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 2 Jan 2015 00:47:16 +0300 Subject: [PATCH 0242/2060] iso-codes: Update to 3.57 --- mingw-w64-iso-codes/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-iso-codes/PKGBUILD b/mingw-w64-iso-codes/PKGBUILD index f915fef4ad..9970e79bc6 100644 --- a/mingw-w64-iso-codes/PKGBUILD +++ b/mingw-w64-iso-codes/PKGBUILD @@ -1,16 +1,15 @@ # Maintainer: Alexey Pavlov _realname=iso-codes - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.55 +pkgver=3.57 pkgrel=1 pkgdesc="Lists of the country, language, and currency names (mingw-w64)" arch=('any') license=('LGPL') url="http://pkg-isocodes.alioth.debian.org/" source=(http://pkg-isocodes.alioth.debian.org/downloads/${_realname}-$pkgver.tar.xz{,.sig}) -md5sums=('390291fa7ef954ca1feb4b3340d26c28' +md5sums=('ea67bb8f94063816d96c972bd00f7720' 'SKIP') build() { @@ -19,6 +18,7 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} + make } From d100620eed12df951702c0968bc3b9e2d0dea39d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 2 Jan 2015 00:47:42 +0300 Subject: [PATCH 0243/2060] liblastfm: Update to 1.0.9 --- mingw-w64-liblastfm/PKGBUILD | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/mingw-w64-liblastfm/PKGBUILD b/mingw-w64-liblastfm/PKGBUILD index 9573f56cb9..bb5dd89ad4 100644 --- a/mingw-w64-liblastfm/PKGBUILD +++ b/mingw-w64-liblastfm/PKGBUILD @@ -2,11 +2,9 @@ # Contributor: AlexWMF _realname=liblastfm - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" - -pkgver=1.0.8 -pkgrel=2 +pkgver=1.0.9 +pkgrel=1 pkgdesc="A Qt C++ library for the Last.fm webservices http://www.last.fm" arch=('any') license=('Boost') @@ -22,7 +20,7 @@ options=(!strip staticlibs !buildflags) source=(${_realname}-${pkgver}.tar.gz::"https://github.com/lastfm/liblastfm/archive/${pkgver}.tar.gz" versioned-dlls-mingw.patch) -md5sums=('5f7c1d15c0be57d73ec480f74c1d4592' +md5sums=('8748f423f66f2fbc38c39f9153d01a71' 'dd9996ec2896883acef6b90d8cd22302') prepare() { From cfe45862c6c5a545a77fb4839a8fc79b09fcc8d5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 2 Jan 2015 00:48:06 +0300 Subject: [PATCH 0244/2060] setuptools: Update to 10.1 --- mingw-w64-python-setuptools/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index b6b393cbb0..3ef1492bb4 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -5,7 +5,7 @@ _realname=setuptools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.4 -pkgver=9.1 +pkgver=10.1 #pkgver=5.4.1 pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" @@ -18,7 +18,7 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('b068a670c84df7b961730c6a0d00cd06c7b767f0' +sha1sums=('6463f082bdf194d3b2f97d8ab10cf07427ee9200' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' From 0e72395b470125cab5c29d01d50e4290db6b261a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 2 Jan 2015 00:48:29 +0300 Subject: [PATCH 0245/2060] swig: Update to 3.0.3 --- mingw-w64-swig/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-swig/PKGBUILD b/mingw-w64-swig/PKGBUILD index 4fbc44e6af..a7ac1fe321 100644 --- a/mingw-w64-swig/PKGBUILD +++ b/mingw-w64-swig/PKGBUILD @@ -2,8 +2,8 @@ _realname=swig pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.0.2 -pkgrel=4 +pkgver=3.0.3 +pkgrel=1 pkgdesc="Generate scripting interfaces to C/C++ code" arch=('any') url="http://www.swig.org/" @@ -17,7 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-ruby") source=(http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz 001-relocate.patch) -sha1sums=('e695a14acf39b25f3ea2d7303e23e39dfe284e31' +sha1sums=('e68e1fbdf92ae34c0949c9babef10c8800377b93' '2df8f0deca96ffa2a3625070e31483ba10817ec5') prepare() { From b99b3d396d8d3dfcee41548d1b96729464bde4e5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 2 Jan 2015 00:50:14 +0300 Subject: [PATCH 0246/2060] doxygen: Update to 1.8.9 --- mingw-w64-doxygen/PKGBUILD | 7 +++---- mingw-w64-doxygen/fix-casts.patch | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/mingw-w64-doxygen/PKGBUILD b/mingw-w64-doxygen/PKGBUILD index 319a0114a6..c3515d4384 100644 --- a/mingw-w64-doxygen/PKGBUILD +++ b/mingw-w64-doxygen/PKGBUILD @@ -2,7 +2,7 @@ _realname=doxygen pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.8.8 +pkgver=1.8.9 pkgrel=1 pkgdesc="A documentation system for C++, C, Java, IDL and PHP (mingw-w64)" arch=('any') @@ -23,11 +23,11 @@ source=("http://ftp.stack.nl/pub/users/dimitri/${_realname}-${pkgver}.src.tar.gz 'tmake-unquote.patch' 'fix-casts.patch' 'remove-extra-slashes.patch') -sha1sums=('cd511c73e7669dde5ac3e14a5d1abae093aaf1d9' +sha1sums=('b447251d32343ecf867f0a20cb63da4b478bfbab' '98f9f473f906c5cd363b29c65b54bbe998c0793e' '11ff505d15fa890aaa88fd7775842eb7ea3c1ed4' '6b6338b36e1964064b303dc69282f87b335e5571' - '2a60fdfa3ecadda96478b67d2d1bdd833644c650' + '85f7e0b107fe788a071da5d94af54cd3bdab9e8a' '4a8a560f317bd8710b88a658706391fb25212471') noextract=(${_realname}-${pkgver}.src.tar.gz) @@ -60,5 +60,4 @@ package() { #make DESTDIR="${pkgdir}" install make INSTALL="${pkgdir}${MINGW_PREFIX}" MAN1DIR=share/man/man1 install - #rm -r "${pkgdir}${MINGW_PREFIX}"/share/man } diff --git a/mingw-w64-doxygen/fix-casts.patch b/mingw-w64-doxygen/fix-casts.patch index b1b0857b1c..e5f3fdc5d4 100644 --- a/mingw-w64-doxygen/fix-casts.patch +++ b/mingw-w64-doxygen/fix-casts.patch @@ -1,5 +1,5 @@ ---- doxygen-1.8.6/qtools/scstring.cpp.orig 2013-05-19 19:12:31.000000000 +0400 -+++ doxygen-1.8.6/qtools/scstring.cpp 2014-04-04 06:54:07.313800000 +0400 +--- doxygen-1.8.6/qtools/qcstring.cpp.orig 2013-05-19 19:12:31.000000000 +0400 ++++ doxygen-1.8.6/qtools/qcstring.cpp 2014-04-04 06:54:07.313800000 +0400 @@ -476,7 +476,7 @@ if ( to > first && *(to-1) == 0x20 ) to--; From e700e2175b43c61764b9c1d0b82f7688dba64fb0 Mon Sep 17 00:00:00 2001 From: Shoozza Date: Thu, 1 Jan 2015 22:56:34 +0100 Subject: [PATCH 0247/2060] Fix Allegro 5 License is ZLIB Allegro 5 is licensed under ZLIB http://alleg.sourceforge.net/license.html https://en.wikipedia.org/wiki/Zlib_License#Text https://wiki.archlinux.org/index.php/PKGBUILD#license --- mingw-w64-allegro/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-allegro/PKGBUILD b/mingw-w64-allegro/PKGBUILD index f2d6019aea..5c9aa09f62 100644 --- a/mingw-w64-allegro/PKGBUILD +++ b/mingw-w64-allegro/PKGBUILD @@ -7,7 +7,7 @@ pkgrel=2 pkgdesc="Portable library mainly aimed at video game and multimedia programming (mingw-w64)" arch=(any) url="http://alleg.sourceforge.net" -license=("custom") +license=("ZLIB") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-freetype" From 64181217f727d9dc4e2f71aa0d7d384b9b131f32 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 3 Jan 2015 01:07:02 +0300 Subject: [PATCH 0248/2060] geoip2-database: New package. --- mingw-w64-geoip2-database/PKGBUILD | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 mingw-w64-geoip2-database/PKGBUILD diff --git a/mingw-w64-geoip2-database/PKGBUILD b/mingw-w64-geoip2-database/PKGBUILD new file mode 100644 index 0000000000..9ed6e2c2d8 --- /dev/null +++ b/mingw-w64-geoip2-database/PKGBUILD @@ -0,0 +1,26 @@ +# Maintainer: Alexey Pavlov + +_realname=geoip2-database +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=20150102 +pkgrel=1 +pkgdesc="GeoLite country geolocation database compiled by MaxMind (mingw-w64)" +arch=('any') +url="http://www.maxmind.com/app/ip-location" +license=('custom:Creative Commons Attribution-ShareAlike 3.0 Unported') +source=(GeoLite2-Country-$pkgver.mmdb.gz::http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz + #GeoLite2-City-$pkgver.mmdb.gz::http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz + ) +sha256sums=('ebc058008bc18fd29ecd720236a22d81d6cdce81d07fd75b5acf2859cc530e48') + +prepare() { + cd "$srcdir" + mv GeoLite2-Country-${pkgver}.mmdb GeoLite2-Country.mmdb +} + +package() { + cd "$srcdir" + + install -d "${pkgdir}${MINGW_PREFIX}/share/GeoIP2" + install -m644 -t "${pkgdir}${MINGW_PREFIX}/share/GeoIP2" GeoLite2-Country.mmdb +} From 05b1fb040b2c930a5649e725f8f1684b0a1997c0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 3 Jan 2015 01:08:05 +0300 Subject: [PATCH 0249/2060] libmaxminddb: New package. Library to read GeoIP2 database --- mingw-w64-libmaxminddb/PKGBUILD | 50 +++++++++++++++++++ .../mingw-no-undefined.patch | 9 ++++ 2 files changed, 59 insertions(+) create mode 100644 mingw-w64-libmaxminddb/PKGBUILD create mode 100644 mingw-w64-libmaxminddb/mingw-no-undefined.patch diff --git a/mingw-w64-libmaxminddb/PKGBUILD b/mingw-w64-libmaxminddb/PKGBUILD new file mode 100644 index 0000000000..5d9785d617 --- /dev/null +++ b/mingw-w64-libmaxminddb/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: Alexey Pavlov + +_realname=libmaxminddb +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.0.3 +pkgrel=1 +pkgdesc="C library for reading MaxMind DB files, including the GeoIP2 databases from MaxMind (mingw-w64)" +arch=('any') +url="http://dev.maxmind.com/geoip/" +license=('Apache-2.0') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-geoip2-database") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-libtool" + "autoconf" + "git" + "patch") +options=('!emptydirs') +source=(https://github.com/maxmind/${_realname}/archive/${pkgver}.tar.gz + "MaxMind-DB"::git+https://github.com/maxmind/MaxMind-DB.git + libtap::git+https://github.com/zorgnax/libtap.git + mingw-no-undefined.patch) +sha256sums=('00fcc61463cabd8293a41c44db3ce3a7d9c078db8693a89b7c1e32df4866654e' + 'SKIP' + 'SKIP' + 'f3246d235bd6dfcb6fd8e89fa63de95b0384283fce12a0ebef56e1b2fe9bd248') + +prepare() { + cp -rf ${srcdir}/libtap ${srcdir}/${_realname}-${pkgver}/t/ + cp -rf ${srcdir}/MaxMind-DB ${srcdir}/${_realname}-${pkgver}/t/ + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i ${srcdir}/mingw-no-undefined.patch + autoreconf -fiv +} + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-$pkgver/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install +} diff --git a/mingw-w64-libmaxminddb/mingw-no-undefined.patch b/mingw-w64-libmaxminddb/mingw-no-undefined.patch new file mode 100644 index 0000000000..00a5f96d6d --- /dev/null +++ b/mingw-w64-libmaxminddb/mingw-no-undefined.patch @@ -0,0 +1,9 @@ +--- libmaxminddb-1.0.3/src/Makefile.am.orig 2015-01-03 00:36:04.463200000 +0300 ++++ libmaxminddb-1.0.3/src/Makefile.am 2015-01-03 00:36:14.915200000 +0300 +@@ -3,5 +3,5 @@ + lib_LTLIBRARIES = libmaxminddb.la + + libmaxminddb_la_SOURCES = maxminddb.c +-libmaxminddb_la_LDFLAGS = -version-info 0:7:0 ++libmaxminddb_la_LDFLAGS = -no-undefined -version-info 0:7:0 + include_HEADERS = $(top_srcdir)/include/maxminddb.h From 1b6fc7775229f6905d497ac43c444d3a132c9e9c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 30 Dec 2014 22:32:31 +0000 Subject: [PATCH 0250/2060] cmake: qt5-static plugin feature WIP --- mingw-w64-cmake/PKGBUILD | 11 +- .../qt5-static-plugin-support.patch | 125 ++++++++++++++++++ 2 files changed, 132 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-cmake/qt5-static-plugin-support.patch diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index a936548d32..f72d3b6a9e 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -15,21 +15,24 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libarchive" "${MINGW_PACKAGE_PREFIX}-zlib") optdepends=("${MINGW_PACKAGE_PREFIX}-qt5: CMake Qt GUI") -options=('staticlibs' 'strip') +options=('staticlibs' '!strip' 'debug') source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" - "wxWidgets-module.patch") + "wxWidgets-module.patch" + "qt5-static-plugin-support.patch") md5sums=('188eb7dc9b1b82b363bc51c0d3f1d461' '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' - '09ea9092ca85e482de79886bd0c09144') + '09ea9092ca85e482de79886bd0c09144' + '59cad822e506c000053f3c554057bbd5') prepare() { cd ${_realname}-${pkgver} patch -Np1 -i ${srcdir}/disable-response-files-for-msys.patch patch -Np1 -i ${srcdir}/dont-install-bundle.patch patch -Np1 -i ${srcdir}/wxWidgets-module.patch + patch -Np1 -i ${srcdir}/qt5-static-plugin-support.patch } build() { @@ -50,7 +53,7 @@ build() { --docdir=share/doc/cmake plain "Start building..." - make + make VERBOSE=1 } package() { diff --git a/mingw-w64-cmake/qt5-static-plugin-support.patch b/mingw-w64-cmake/qt5-static-plugin-support.patch new file mode 100644 index 0000000000..9578dd5553 --- /dev/null +++ b/mingw-w64-cmake/qt5-static-plugin-support.patch @@ -0,0 +1,125 @@ +diff -urN cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx cmake-3.1.0/Source/cmGlobalGenerator.cxx +--- cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx 2014-12-30 23:29:27.497906500 +0000 ++++ cmake-3.1.0/Source/cmGlobalGenerator.cxx 2014-12-30 23:19:59.737689100 +0000 +@@ -1392,7 +1392,8 @@ + { + if((target.GetPropertyAsBool("AUTOMOC") + || target.GetPropertyAsBool("AUTOUIC") +- || target.GetPropertyAsBool("AUTORCC")) ++ || target.GetPropertyAsBool("AUTORCC") ++ || target.GetPropertyAsBool("AUTOSTATICPLUGINS")) + && !target.IsImported()) + { + cmQtAutoGenerators autogen; +diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQtAutoGenerators.cxx +--- cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx 2014-12-30 23:29:27.527906500 +0000 ++++ cmake-3.1.0/Source/cmQtAutoGenerators.cxx 2014-12-30 23:32:29.531577200 +0000 +@@ -148,20 +148,20 @@ + } + } + +-static std::string getAutogenTargetName(cmTarget const* target) ++static std::string getAutogenTargetName(cmTarget const* target, char const* suffix = "_automoc") + { + std::string autogenTargetName = target->GetName(); +- autogenTargetName += "_automoc"; ++ autogenTargetName += suffix; + return autogenTargetName; + } + +-static std::string getAutogenTargetDir(cmTarget const* target) ++static std::string getAutogenTargetDir(cmTarget const* target, const char* suffix = "_automoc") + { + cmMakefile* makefile = target->GetMakefile(); + std::string targetDir = makefile->GetCurrentOutputDirectory(); + targetDir += makefile->GetCMakeInstance()->GetCMakeFilesDirectory(); + targetDir += "/"; +- targetDir += getAutogenTargetName(target); ++ targetDir += getAutogenTargetName(target, suffix); + targetDir += ".dir/"; + return targetDir; + } +@@ -193,10 +193,27 @@ + + target->AddSource(mocCppFile); + } ++ /* in macro(_populate_Core_plugin_properties ..), we could have: ++ * set_property(TARGET PROPERTY AUTOSTATICPLUGINS True) ++ * set_property(TARGET Qt5::Core APPEND PROPERTY STATIC_PLUGINS ${Plugin}) */ ++ if (target->GetPropertyAsBool("AUTOSTATICPLUGINS")) ++ { ++ std::string autostaticPluginsTargetName = getAutogenTargetName(target, "_plugin_import"); ++ std::string staticPluginsCppFile = makefile->GetCurrentOutputDirectory(); ++ staticPluginsCppFile += "/"; ++ staticPluginsCppFile += autostaticPluginsTargetName; ++ staticPluginsCppFile += ".cpp"; ++ makefile->GetOrCreateSource(staticPluginsCppFile, true); ++ makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", ++ staticPluginsCppFile.c_str(), false); ++ ++ target->AddSource(staticPluginsCppFile); ++ } ++ + // create a custom target for running generators at buildtime: +- std::string autogenTargetName = getAutogenTargetName(target); ++ std::string autogenTargetName = getAutogenTargetName(target, "_autogen"); + +- std::string targetDir = getAutogenTargetDir(target); ++ std::string targetDir = getAutogenTargetDir(target, "_autogen"); + + cmCustomCommandLine currentLine; + currentLine.push_back(makefile->GetSafeDefinition("CMAKE_COMMAND")); +@@ -554,6 +571,42 @@ + { + const_cast(target)->AddSource(*fileIt); + } ++ ++ /* ++ * Need to do some crap like .. recursively find all linked libraries for any executables, and form ++ * a list of all plugins. I don't think this achieves this and it probably needs to be extracted from ++ * this uic / rcc stuff anyway, I am trying to share the "autogen" target here, maybe foolishly. ++ * Need to check the interactions with: ++ * bool cmQtAutoGenerators::InitializeAutogenTarget(cmTarget* target) ++ * void cmQtAutoGenerators::SetupAutoGenerateTarget(cmTarget const* target) ++ */ ++ ++ bool haveStaticPlugins = false; ++ const cmTarget::LinkLibraryVectorType& libs = target->GetOriginalLinkLibraries(); ++ for (cmTarget::LinkLibraryVectorType::const_iterator li = libs.begin(); li != libs.end(); ++li) ++ { ++ cmTarget *tgt = makefile->FindTargetToUse(li->first); ++ const char *staticPlugins; ++ if (tgt && (staticPlugins = tgt->GetProperty("STATIC_PLUGINS", makefile))) { ++ /* Have we got a semi-colon separated list of plugins? Hopefully. */ ++ haveStaticPlugins = true; ++ } ++ } ++ ++ if (haveStaticPlugins) ++ { ++ std::string static_plugins_output_dir = target->GetSupportDirectory(); ++ cmSystemTools::MakeDirectory(static_plugins_output_dir.c_str()); ++ std::string static_plugins_output_file = static_plugins_output_dir; ++ static_plugins_output_file += "/" + target->GetName() + "_plugin_import.cpp"; ++ makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", ++ static_plugins_output_file.c_str(), false); ++ const_cast(target)->AddSource(static_plugins_output_file); ++ } ++ ++ /* ++ * End need to do some crap like (didn't handle recurison ^ or writing the file) .. ++ */ + } + + void cmQtAutoGenerators::SetupAutoMocTarget(cmTarget const* target, +diff -urN cmake-3.1.0.orig/Source/cmTarget.cxx cmake-3.1.0/Source/cmTarget.cxx +--- cmake-3.1.0.orig/Source/cmTarget.cxx 2014-12-30 23:29:27.527906500 +0000 ++++ cmake-3.1.0/Source/cmTarget.cxx 2014-12-30 23:19:59.807689200 +0000 +@@ -342,6 +342,7 @@ + this->SetPropertyDefault("AUTOMOC", 0); + this->SetPropertyDefault("AUTOUIC", 0); + this->SetPropertyDefault("AUTORCC", 0); ++ this->SetPropertyDefault("AUTOSTATICPLUGINS", 0); + this->SetPropertyDefault("AUTOMOC_MOC_OPTIONS", 0); + this->SetPropertyDefault("AUTOUIC_OPTIONS", 0); + this->SetPropertyDefault("AUTORCC_OPTIONS", 0); From aa8f86ab267446002bcbb59e1455fbdf0d9f1cde Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 3 Jan 2015 21:23:32 +0000 Subject: [PATCH 0251/2060] cmake: qt5-static plugin feature To enable, enable AUTOSTATICPLUGINS as follows: set(CMAKE_AUTOSTATICPLUGINS ON) ${EXECUTABLE}_plugin_import.cpp is created when cmake is run, not during the build itself. This is contrary to other Qt autogens (uic, rcc, moc) and its probably better to change this later, though the static plugin list is a lot less variable than those other things. --- mingw-w64-cmake/PKGBUILD | 8 +- .../qt5-static-plugin-support.patch | 171 ++++++++++-------- 2 files changed, 99 insertions(+), 80 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index f72d3b6a9e..06593c0b6f 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -3,7 +3,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.1.0 -pkgrel=1 +pkgrel=2 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -15,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libarchive" "${MINGW_PACKAGE_PREFIX}-zlib") optdepends=("${MINGW_PACKAGE_PREFIX}-qt5: CMake Qt GUI") -options=('staticlibs' '!strip' 'debug') +options=('staticlibs') # '!strip' 'debug') source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" @@ -25,7 +25,7 @@ md5sums=('188eb7dc9b1b82b363bc51c0d3f1d461' '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' '09ea9092ca85e482de79886bd0c09144' - '59cad822e506c000053f3c554057bbd5') + '6461b89ff7d1ca0c4022801dff8475a7') prepare() { cd ${_realname}-${pkgver} @@ -53,7 +53,7 @@ build() { --docdir=share/doc/cmake plain "Start building..." - make VERBOSE=1 + make } package() { diff --git a/mingw-w64-cmake/qt5-static-plugin-support.patch b/mingw-w64-cmake/qt5-static-plugin-support.patch index 9578dd5553..bb4c458773 100644 --- a/mingw-w64-cmake/qt5-static-plugin-support.patch +++ b/mingw-w64-cmake/qt5-static-plugin-support.patch @@ -1,6 +1,6 @@ diff -urN cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx cmake-3.1.0/Source/cmGlobalGenerator.cxx ---- cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx 2014-12-30 23:29:27.497906500 +0000 -+++ cmake-3.1.0/Source/cmGlobalGenerator.cxx 2014-12-30 23:19:59.737689100 +0000 +--- cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx 2015-01-03 16:49:13.831653600 +0000 ++++ cmake-3.1.0/Source/cmGlobalGenerator.cxx 2015-01-03 15:44:34.928951000 +0000 @@ -1392,7 +1392,8 @@ { if((target.GetPropertyAsBool("AUTOMOC") @@ -12,109 +12,120 @@ diff -urN cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx cmake-3.1.0/Source/cmGlo { cmQtAutoGenerators autogen; diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQtAutoGenerators.cxx ---- cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx 2014-12-30 23:29:27.527906500 +0000 -+++ cmake-3.1.0/Source/cmQtAutoGenerators.cxx 2014-12-30 23:32:29.531577200 +0000 -@@ -148,20 +148,20 @@ - } - } +--- cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx 2015-01-03 16:49:13.862853600 +0000 ++++ cmake-3.1.0/Source/cmQtAutoGenerators.cxx 2015-01-03 17:03:44.895400500 +0000 +@@ -31,6 +31,7 @@ + #include + #endif --static std::string getAutogenTargetName(cmTarget const* target) -+static std::string getAutogenTargetName(cmTarget const* target, char const* suffix = "_automoc") ++#include + #include "cmQtAutoGenerators.h" + + +@@ -151,7 +152,7 @@ + static std::string getAutogenTargetName(cmTarget const* target) { std::string autogenTargetName = target->GetName(); - autogenTargetName += "_automoc"; -+ autogenTargetName += suffix; ++ autogenTargetName += "_autogen"; return autogenTargetName; } --static std::string getAutogenTargetDir(cmTarget const* target) -+static std::string getAutogenTargetDir(cmTarget const* target, const char* suffix = "_automoc") - { - cmMakefile* makefile = target->GetMakefile(); - std::string targetDir = makefile->GetCurrentOutputDirectory(); - targetDir += makefile->GetCMakeInstance()->GetCMakeFilesDirectory(); - targetDir += "/"; -- targetDir += getAutogenTargetName(target); -+ targetDir += getAutogenTargetName(target, suffix); - targetDir += ".dir/"; - return targetDir; - } -@@ -193,10 +193,27 @@ +@@ -193,6 +194,7 @@ target->AddSource(mocCppFile); } -+ /* in macro(_populate_Core_plugin_properties ..), we could have: -+ * set_property(TARGET PROPERTY AUTOSTATICPLUGINS True) -+ * set_property(TARGET Qt5::Core APPEND PROPERTY STATIC_PLUGINS ${Plugin}) */ -+ if (target->GetPropertyAsBool("AUTOSTATICPLUGINS")) -+ { -+ std::string autostaticPluginsTargetName = getAutogenTargetName(target, "_plugin_import"); -+ std::string staticPluginsCppFile = makefile->GetCurrentOutputDirectory(); -+ staticPluginsCppFile += "/"; -+ staticPluginsCppFile += autostaticPluginsTargetName; -+ staticPluginsCppFile += ".cpp"; -+ makefile->GetOrCreateSource(staticPluginsCppFile, true); -+ makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", -+ staticPluginsCppFile.c_str(), false); -+ -+ target->AddSource(staticPluginsCppFile); -+ } + // create a custom target for running generators at buildtime: -- std::string autogenTargetName = getAutogenTargetName(target); -+ std::string autogenTargetName = getAutogenTargetName(target, "_autogen"); + std::string autogenTargetName = getAutogenTargetName(target); -- std::string targetDir = getAutogenTargetDir(target); -+ std::string targetDir = getAutogenTargetDir(target, "_autogen"); +@@ -230,7 +232,13 @@ + { + toolNames.push_back("rcc"); + } +- ++ /* AUTOSTATICPLUGINS .cpp files are created at cmake execution time, ++ * and not at build time, so in that case it is possible to get here ++ * with no toolNames. */ ++ if (!toolNames.size()) ++ { ++ return true; ++ } + std::string tools = toolNames[0]; + toolNames.erase(toolNames.begin()); + while (toolNames.size() > 1) +@@ -393,7 +401,9 @@ - cmCustomCommandLine currentLine; - currentLine.push_back(makefile->GetSafeDefinition("CMAKE_COMMAND")); -@@ -554,6 +571,42 @@ + if (target->GetPropertyAsBool("AUTOMOC") + || target->GetPropertyAsBool("AUTOUIC") +- || target->GetPropertyAsBool("AUTORCC")) ++ || target->GetPropertyAsBool("AUTORCC") ++ || ( target->GetPropertyAsBool("AUTOSTATICPLUGINS") ++ && target->GetType() == cmTarget::EXECUTABLE)) + { + this->SetupSourceFiles(target); + } +@@ -554,6 +564,57 @@ { const_cast(target)->AddSource(*fileIt); } + -+ /* -+ * Need to do some crap like .. recursively find all linked libraries for any executables, and form -+ * a list of all plugins. I don't think this achieves this and it probably needs to be extracted from -+ * this uic / rcc stuff anyway, I am trying to share the "autogen" target here, maybe foolishly. -+ * Need to check the interactions with: -+ * bool cmQtAutoGenerators::InitializeAutogenTarget(cmTarget* target) -+ * void cmQtAutoGenerators::SetupAutoGenerateTarget(cmTarget const* target) ++ /* in qt5-static/lib/cmake/Qt5Core/Qt5CoreConfig.cmake, macro(_populate_Core_plugin_properties ..), we'd have: ++ * set_property(TARGET PROPERTY AUTOSTATICPLUGINS True) // Not currently need as defaults to "ON" ++ * set_property(TARGET Qt5::Core APPEND PROPERTY STATIC_PLUGINS ${Plugin}) + */ -+ -+ bool haveStaticPlugins = false; -+ const cmTarget::LinkLibraryVectorType& libs = target->GetOriginalLinkLibraries(); -+ for (cmTarget::LinkLibraryVectorType::const_iterator li = libs.begin(); li != libs.end(); ++li) -+ { -+ cmTarget *tgt = makefile->FindTargetToUse(li->first); -+ const char *staticPlugins; -+ if (tgt && (staticPlugins = tgt->GetProperty("STATIC_PLUGINS", makefile))) { -+ /* Have we got a semi-colon separated list of plugins? Hopefully. */ -+ haveStaticPlugins = true; ++ if (target->GetPropertyAsBool("AUTOSTATICPLUGINS")) ++ { ++ std::vector libTargets = target->GetLinkImplementationClosure(""); ++ std::vector::const_iterator li; ++ std::vector staticPlugins; ++ for (li = libTargets.begin(); li != libTargets.end(); ++li) ++ { ++ cmTarget const* tgt = *li; ++ const char *staticPluginsProp = tgt->GetProperty("STATIC_PLUGINS"); ++ if (staticPluginsProp) ++ { ++ std::vector staticPluginsTgt = cmSystemTools::tokenize(staticPluginsProp, ";"); ++ for (std::vector::const_iterator spti = staticPluginsTgt.begin(); spti != staticPluginsTgt.end(); ++spti) ++ { ++ if (std::find(staticPlugins.begin(), staticPlugins.end(), *spti) == staticPlugins.end()) ++ { ++ staticPlugins.push_back(*spti); ++ } ++ } ++ } + } -+ } + -+ if (haveStaticPlugins) -+ { ++ if (staticPlugins.size()) ++ { + std::string static_plugins_output_dir = target->GetSupportDirectory(); + cmSystemTools::MakeDirectory(static_plugins_output_dir.c_str()); + std::string static_plugins_output_file = static_plugins_output_dir; + static_plugins_output_file += "/" + target->GetName() + "_plugin_import.cpp"; -+ makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", -+ static_plugins_output_file.c_str(), false); -+ const_cast(target)->AddSource(static_plugins_output_file); -+ } -+ -+ /* -+ * End need to do some crap like (didn't handle recurison ^ or writing the file) .. -+ */ ++ cmGeneratedFileStream ++ staticPluginsFileStream(static_plugins_output_file.c_str()); ++ if(staticPluginsFileStream) ++ { ++ staticPluginsFileStream << "// This file is autogenerated by cmake. It imports static plugin classes for" << std::endl; ++ staticPluginsFileStream << "// static plugins specified using QTPLUGIN and QT_PLUGIN_CLASS. variables." << std::endl; ++ staticPluginsFileStream << "#include " << std::endl; ++ for (std::vector::const_iterator spti = staticPlugins.begin(); spti != staticPlugins.end(); ++spti) ++ { ++ staticPluginsFileStream << "Q_IMPORT_PLUGIN(" << *spti << ")" << std::endl; ++ } ++ staticPluginsFileStream.Close(); ++ makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", ++ static_plugins_output_file.c_str(), false); ++ const_cast(target)->AddSource(static_plugins_output_file); ++ } ++ } ++ } } void cmQtAutoGenerators::SetupAutoMocTarget(cmTarget const* target, diff -urN cmake-3.1.0.orig/Source/cmTarget.cxx cmake-3.1.0/Source/cmTarget.cxx ---- cmake-3.1.0.orig/Source/cmTarget.cxx 2014-12-30 23:29:27.527906500 +0000 -+++ cmake-3.1.0/Source/cmTarget.cxx 2014-12-30 23:19:59.807689200 +0000 +--- cmake-3.1.0.orig/Source/cmTarget.cxx 2015-01-03 16:49:13.862853600 +0000 ++++ cmake-3.1.0/Source/cmTarget.cxx 2015-01-03 15:44:35.006951100 +0000 @@ -342,6 +342,7 @@ this->SetPropertyDefault("AUTOMOC", 0); this->SetPropertyDefault("AUTOUIC", 0); @@ -123,3 +134,11 @@ diff -urN cmake-3.1.0.orig/Source/cmTarget.cxx cmake-3.1.0/Source/cmTarget.cxx this->SetPropertyDefault("AUTOMOC_MOC_OPTIONS", 0); this->SetPropertyDefault("AUTOUIC_OPTIONS", 0); this->SetPropertyDefault("AUTORCC_OPTIONS", 0); +@@ -1727,6 +1728,7 @@ + builtIns.insert("IMPORTED"); + builtIns.insert("NAME"); + builtIns.insert("TYPE"); ++ builtIns.insert("STATIC_PLUGINS"); + } + + if (builtIns.count(prop)) From e5517227778695a51bd56df07f1b05c43103ad3f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 01:19:42 +0000 Subject: [PATCH 0252/2060] qt5-static: Finish cmake-static work To enable, enable AUTOSTATICPLUGINS as follows: set(CMAKE_AUTOSTATICPLUGINS ON) --- ...ke-also-link-plugins-and-plugin-deps.patch | 22 +++++++++++-------- mingw-w64-qt5-static/PKGBUILD | 4 ++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/mingw-w64-qt5-static/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch b/mingw-w64-qt5-static/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch index 0d5efe5428..519b76adb6 100644 --- a/mingw-w64-qt5-static/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch +++ b/mingw-w64-qt5-static/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch @@ -1,6 +1,6 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in ---- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-26 23:23:53.547244000 +0000 -+++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-26 23:36:19.160943300 +0000 +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-01-03 22:54:41.110170600 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-01-03 22:58:39.875293700 +0000 @@ -56,14 +56,17 @@ set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\") !!ENDIF @@ -21,7 +21,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c ) !!IF !isEmpty(CMAKE_WINDOWS_BUILD) -@@ -207,17 +210,28 @@ +@@ -207,17 +210,31 @@ # Parse the prl files generated by qmake to get the link dependencies. They # contain all the information we need, and they are the only location with # all the right information. @@ -43,16 +43,19 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c endmacro() +macro(macro_process_plugin_prl_file prl_file_location Configuration LIB_DIRECTORY LIB_LOCATION) -+ # 1. Add the (static) libraries dependencies from the plugin's prl file. ++ # First add the (static) plugin itself. ++ if (_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES) ++ set(_list_sep \";\") ++ endif() ++ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}${_list_sep}${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/${LIB_DIRECTORY}/${LIB_LOCATION}\") ++ # .. then its dependencies. + macro_process_prl_file(${prl_file_location} ${Configuration}) -+ # 2. Add the (static) plugin itself. -+ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}${_qt5Gui_install_prefix}/${LIB_DIRECTORY}/${LIB_LOCATION}\") +endmacro() + !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) macro_process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG) !!ELSE -@@ -230,6 +244,7 @@ +@@ -230,6 +247,7 @@ !!ENDIF # Excerpt from: end @@ -60,7 +63,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!ELSE add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) !!ENDIF -@@ -242,6 +257,34 @@ +@@ -242,6 +260,35 @@ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) @@ -81,6 +84,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c + get_filename_component(_plugindir ${PLUGIN_LOCATION} PATH) + get_filename_component(_plugindirname ${_plugindir} NAME) + get_filename_component(_pluginname ${PLUGIN_LOCATION} NAME) ++ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY STATIC_PLUGINS ${Plugin}) + string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/share/qt5/plugins/${_plugindirname}/\\\\1.prl\" plugin_prl_file_location ${_pluginname}) + macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"share/qt5/plugins\" ${PLUGIN_LOCATION} ) + @@ -95,7 +99,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!IF !isEmpty(CMAKE_RELEASE_TYPE) !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" ) -@@ -316,29 +359,6 @@ +@@ -316,29 +363,6 @@ !!ENDIF // CMAKE_DEBUG_TYPE diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index e98bf0d04e..9b00829469 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.0 pkgver=${_ver_base//-/} -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -217,7 +217,7 @@ md5sums=('21843b00ecde8956217faab391bc007b' 'd66b2afce490ab8a82feae08c747e367' '92fb1954fe3ab91d99a09c7f8a878218' 'ab2cac300aa7a908ea8840649f0b51fc' - '3d0200e121c78ec578d619f582b61776') + '49f001a4f8ca9ee5a68fa84e0368af20') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) From c780faafe6d55d2f846785e03a1cfd76030e42da Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 01:44:03 +0000 Subject: [PATCH 0253/2060] extra-cmake-modules: Update to 1.5.0 / 5.5.0 --- mingw-w64-extra-cmake-modules/PKGBUILD | 10 ++++++---- .../set-AUTOSTATICPLUGINS.patch | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-extra-cmake-modules/set-AUTOSTATICPLUGINS.patch diff --git a/mingw-w64-extra-cmake-modules/PKGBUILD b/mingw-w64-extra-cmake-modules/PKGBUILD index 9e78f06915..7d9c7b4773 100644 --- a/mingw-w64-extra-cmake-modules/PKGBUILD +++ b/mingw-w64-extra-cmake-modules/PKGBUILD @@ -4,8 +4,8 @@ _realname=extra-cmake-modules pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.0 -_pkgver=5.3.0 +pkgver=1.5.0 +_pkgver=5.5.0 pkgrel=1 pkgdesc='Extra CMake modules (mingw-w64)' arch=('any') @@ -13,8 +13,10 @@ url='https://projects.kde.org/projects/kdesupport/extra-cmake-modules' license=('LGPL') depends=("${MINGW_PACKAGE_PREFIX}-cmake") # makedepends=('python-sphinx') # qt5-tools for QtHelp pages -source=("http://download.kde.org/stable/frameworks/${_pkgver}/${_realname}-${pkgver}.tar.xz") -md5sums=('a0b95a4e5ffb8bde51a95584292b03ed') +source=("http://download.kde.org/stable/frameworks/${_pkgver%.*}/${_realname}-${pkgver}.tar.xz" + "set-AUTOSTATICPLUGINS.patch") +md5sums=('2967e1ac220cf9b3a52cd19ec2a608df' + '0d249754247382f3b8dda80d6833aac4') prepare() { mkdir -p build-${CARCH} diff --git a/mingw-w64-extra-cmake-modules/set-AUTOSTATICPLUGINS.patch b/mingw-w64-extra-cmake-modules/set-AUTOSTATICPLUGINS.patch new file mode 100644 index 0000000000..f0f5329b47 --- /dev/null +++ b/mingw-w64-extra-cmake-modules/set-AUTOSTATICPLUGINS.patch @@ -0,0 +1,15 @@ +diff -urN extra-cmake-modules-1.5.0.orig/kde-modules/KDECMakeSettings.cmake extra-cmake-modules-1.5.0/kde-modules/KDECMakeSettings.cmake +--- extra-cmake-modules-1.5.0.orig/kde-modules/KDECMakeSettings.cmake 2015-01-04 01:35:09.800389800 +0000 ++++ extra-cmake-modules-1.5.0/kde-modules/KDECMakeSettings.cmake 2015-01-04 01:37:00.535144400 +0000 +@@ -151,6 +151,11 @@ + # Since CMake 2.8.6 + set(CMAKE_AUTOMOC ON) + ++ # Enable autostaticplugins in MSYS2 qt5-static/cmake ++ # Since https://github.com/Alexpux/MINGW-packages/commit/e5517227778695a51bd56df07f1b05c43103ad3f ++ # and https://github.com/Alexpux/MINGW-packages/commit/aa8f86ab267446002bcbb59e1455fbdf0d9f1cde ++ set(CMAKE_AUTOSTATICPLUGINS ON) ++ + # By default, create 'GUI' executables. This can be reverted on a per-target basis + # using ECMMarkNonGuiExecutable + # Since CMake 2.8.8 From e097e7c469de373449c597d609165a848a23e54e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 01:50:05 +0000 Subject: [PATCH 0254/2060] cmake-extra-modules: Apply the patch --- mingw-w64-extra-cmake-modules/PKGBUILD | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mingw-w64-extra-cmake-modules/PKGBUILD b/mingw-w64-extra-cmake-modules/PKGBUILD index 7d9c7b4773..a61910f4a6 100644 --- a/mingw-w64-extra-cmake-modules/PKGBUILD +++ b/mingw-w64-extra-cmake-modules/PKGBUILD @@ -20,6 +20,10 @@ md5sums=('2967e1ac220cf9b3a52cd19ec2a608df' prepare() { mkdir -p build-${CARCH} + + # Apply patches + cd "${srcdir}"/${_realname}-${pkgver} + patch -p1 -i "${srcdir}"/set-AUTOSTATICPLUGINS.patch } build() { From fa82170e8570647038223e0ba25275acefe6966a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 01:59:47 +0000 Subject: [PATCH 0255/2060] KDEF5: Fix and update kidletime to 5.5.0 --- mingw-w64-kidletime-qt5/PKGBUILD | 60 ++------------------------------ 1 file changed, 3 insertions(+), 57 deletions(-) diff --git a/mingw-w64-kidletime-qt5/PKGBUILD b/mingw-w64-kidletime-qt5/PKGBUILD index 7a0a367318..d823362f69 100644 --- a/mingw-w64-kidletime-qt5/PKGBUILD +++ b/mingw-w64-kidletime-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kidletime" -pkgver=5.3.0 +pkgver=5.5.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -14,8 +14,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") -md5sums=('f6bd02d851313f4b136b80c105703003') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('f163c6d5c58743faa16217ded48b99aa') prepare() { cd "${srcdir}"/${_basename}-${pkgver} @@ -50,57 +50,3 @@ package() { cd build-${CARCH}${_variant} make DESTDIR="${pkgdir}" install } - -# Please leave the following information here until this package builds and works. -return 0 - -# Need to modify Qt5GuiConfigExtras.cmake, adding at the end, something like: -get_target_property(_libType Qt5::Gui TYPE) -if(_libType STREQUAL "STATIC_LIBRARY" AND CMAKE_HOST_WIN32) - set(_isExe $,EXECUTABLE>) -# set(_isWin32 $>) - set(_isWin32 1) - # INTERFACE_LINK_LIBRARIES is used to pass a linker flag (-static) - # and a library (ws2_32) - set_target_properties(Qt5::Gui PROPERTIES "INTERFACE_LINK_LIBRARIES" "$<$:opengl32;${_qt5Gui_install_prefix}/lib/libqtharfbuzzng.a;${_qt5Gui_install_prefix}/share/qt5/plugins/platforms/libqwindows.a>") - unset(_isExe) - unset(_isWin32) -endif() - -# Despite linking to libqwindows.a, still get the following error: - -# Fails to run the test executable: - ---------------------------- -kidletime_example ---------------------------- -This application failed to start because it could not find or load the Qt platform plugin "windows". - -Reinstalling the application may fix this problem. ---------------------------- -OK ---------------------------- - -# kidletime_example, linked like this doesn't work: -PATH=/mingw64/bin:$PATH g++.exe -static -march=x86-64 -mtune=generic -O2 -pipe -std=c++0x -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -O3 -DNDEBUG -pipe -mwindows \ - "CMakeFiles/kidletime_example.dir/main.cpp.obj" "CMakeFiles/kidletime_example.dir/KIdleTest.cpp.obj" "CMakeFiles/kidletime_example.dir/kidletime_example_automoc.cpp.obj" -o ../bin/kidletime_example.exe \ - /C/msys64/mingw64/qt5-static/share/qt5/plugins/platforms/libqwindows.a /C/msys64/mingw64/qt5-static/lib/libQt5PlatformSupport.a \ - ../lib/libKF5IdleTime.a /C/msys64/mingw64/qt5-static/lib/libQt5Widgets.a /C/msys64/mingw64/qt5-static/lib/libQt5Gui.a \ - -lopengl32 \ - /C/msys64/mingw64/qt5-static/lib/libqtharfbuzzng.a /C/msys64/mingw64/qt5-static/lib/libQt5Core.a \ - -lws2_32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 - -# Octopi, linked like this runs fine: -g++ -Wl,-s -static -Wl,-subsystem,windows -mthreads -o bin/octopi.exe object_script.octopi.Release \ --lmingw32 -LC:/msys64/mingw32/qt5-static/lib -lqtmain -lwtsapi32 -lQt5QuickWidgets -lQt5DBus -lnetapi32 -lQt5Xml \ --LC:/msys64/mingw32/qt5-static/share/qt5/qml/QtQuick.2 -lqtquick2plugin -LC:/msys64/mingw32/qt5-static/share/qt5/qml/QtQuick/Controls \ --lqtquickcontrolsplugin -LC:/msys64/mingw32/qt5-static/share/qt5/qml/QtQuick/Window.2 -lwindowplugin \ --LC:/msys64/mingw32/qt5-static/share/qt5/qml/QtQuick/Layouts -lqquicklayoutsplugin \ --LC:/msys64/mingw32/qt5-static/share/qt5/plugins/accessible -lqtaccessiblequick -lqtaccessiblewidgets \ --lQt5Widgets -LC:/msys64/mingw32/qt5-static/share/qt5/plugins/qmltooling -lqmldbg_qtquick2 \ --lQt5Quick -lqmldbg_tcp -lQt5Qml -LC:/msys64/mingw32/qt5-static/share/qt5/plugins/bearer -lqgenericbearer -lqnativewifibearer \ --lQt5Network -ldnsapi -lssl -lcrypto -lcrypt32 \ --LC:/msys64/mingw32/qt5-static/share/qt5/plugins/platforms -lqwindows \ --lwinspool -lshlwapi -lQt5PlatformSupport \ --LC:/msys64/mingw32/qt5-static/share/qt5/plugins/imageformats -lqdds -lqicns -lqico -lqjp2 -ljasper -lqmng -lqtga -lqtiff -lqwbmp -lqwebp -lwebp \ --lQt5Gui -lcomdlg32 -loleaut32 -limm32 -lwinmm -lglu32 -lopengl32 -lgdi32 -lqtharfbuzzng -lQt5Core -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 From eeb6259628db71f5fce96037351f284de4a68213 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 02:01:38 +0000 Subject: [PATCH 0256/2060] KDEF5: update karchive to 5.5.0 --- mingw-w64-karchive-qt5/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-karchive-qt5/PKGBUILD b/mingw-w64-karchive-qt5/PKGBUILD index 1daa1a0880..437f2245b8 100644 --- a/mingw-w64-karchive-qt5/PKGBUILD +++ b/mingw-w64-karchive-qt5/PKGBUILD @@ -6,7 +6,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "karchive" -pkgver=5.3.0 +pkgver=5.5.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -16,8 +16,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") -md5sums=('0e930e5528bff5d7d8b84b14ab354ac1') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('ff95f95a2fa8722c8e2f7f5035625348') prepare() { mkdir -p build-${CARCH}${_variant} From 2925bf87cbef02a2a3acd06ccaa6a6a78fc33664 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 02:03:15 +0000 Subject: [PATCH 0257/2060] KDEF5: update kcodecs to 5.5.0 --- mingw-w64-kcodecs-qt5/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-kcodecs-qt5/PKGBUILD b/mingw-w64-kcodecs-qt5/PKGBUILD index 63ca00aa76..0bf9b62d7d 100644 --- a/mingw-w64-kcodecs-qt5/PKGBUILD +++ b/mingw-w64-kcodecs-qt5/PKGBUILD @@ -6,7 +6,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kcodecs" -pkgver=5.3.0 +pkgver=5.5.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -16,8 +16,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") -md5sums=('9d0fd6c580c570254d3474858350038c') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('052cf9d58968162a50b36c0f67e5470b') prepare() { mkdir -p build-${CARCH}${_variant} From c890cbf1dcb5e4990d5dace2a249857d90fcffbc Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 02:05:20 +0000 Subject: [PATCH 0258/2060] KDEF5: update kconfig to 5.5.0 --- mingw-w64-kconfig-qt5/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-kconfig-qt5/PKGBUILD b/mingw-w64-kconfig-qt5/PKGBUILD index efa7ad687c..f4e9b58863 100644 --- a/mingw-w64-kconfig-qt5/PKGBUILD +++ b/mingw-w64-kconfig-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kconfig" -pkgver=5.3.0 +pkgver=5.5.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -14,8 +14,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") -md5sums=('ca8602ef35b7a884f190be38a335e59d') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('ef541258af67ea5b0612fa7ec345c639') prepare() { mkdir -p build-${CARCH}${_variant} From c91939da3851069d7891868ce7e905d75dc0370f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 02:08:02 +0000 Subject: [PATCH 0259/2060] KDEF5: update kcoreaddons to 5.5.0 --- mingw-w64-kcoreaddons-qt5/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-kcoreaddons-qt5/PKGBUILD b/mingw-w64-kcoreaddons-qt5/PKGBUILD index b6bc6e6e34..f10b07e27a 100644 --- a/mingw-w64-kcoreaddons-qt5/PKGBUILD +++ b/mingw-w64-kcoreaddons-qt5/PKGBUILD @@ -6,7 +6,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kcoreaddons" -pkgver=5.3.0 +pkgver=5.5.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -16,8 +16,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") -md5sums=('6123b972897aa5369bd2368c94b5ec95') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('b1933db1246ccf28654c4eea2d399381') prepare() { mkdir -p build-${CARCH}${_variant} From f73f38401ca083c94bb40fb4b4f9377d7693333c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 02:09:45 +0000 Subject: [PATCH 0260/2060] KDEF5: update kdbusaddons to 5.5.0 --- mingw-w64-kdbusaddons-qt5/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-kdbusaddons-qt5/PKGBUILD b/mingw-w64-kdbusaddons-qt5/PKGBUILD index 1d47a97ea1..6fccd5c8ee 100644 --- a/mingw-w64-kdbusaddons-qt5/PKGBUILD +++ b/mingw-w64-kdbusaddons-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kdbusaddons" -pkgver=5.3.0 +pkgver=5.5.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -14,8 +14,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") -md5sums=('705495238601ca2c3548815e2e3efae7') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('5f66eb9602c28631765551bd09e298d0') prepare() { mkdir -p build-${CARCH}${_variant} From 581bd0b4d0f5a021c6851740695edea5abbe16e1 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 02:13:06 +0000 Subject: [PATCH 0261/2060] KDEF5: update kglobalaccel to 5.5.0 --- mingw-w64-kglobalaccel-qt5/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-kglobalaccel-qt5/PKGBUILD b/mingw-w64-kglobalaccel-qt5/PKGBUILD index b4fcaaed60..15f60ba9db 100644 --- a/mingw-w64-kglobalaccel-qt5/PKGBUILD +++ b/mingw-w64-kglobalaccel-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kglobalaccel" -pkgver=5.3.0 +pkgver=5.5.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,8 +15,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() groups=('kf5') # install=${pkgname}.install -source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") -md5sums=('d2c0e3874d2f2cc55d9012836a115614') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('6324dff31269befafe0617eb62ca2ea8') prepare() { mkdir -p build-${CARCH}${_variant} From 2d57618815689cbeb9c9a28a3e61169d6cef5268 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 02:14:28 +0000 Subject: [PATCH 0262/2060] KDEF5: update kguiaddons to 5.5.0 --- mingw-w64-kguiaddons-qt5/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-kguiaddons-qt5/PKGBUILD b/mingw-w64-kguiaddons-qt5/PKGBUILD index 56e7975fb6..3c3c089828 100644 --- a/mingw-w64-kguiaddons-qt5/PKGBUILD +++ b/mingw-w64-kguiaddons-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kguiaddons" -pkgver=5.3.0 +pkgver=5.5.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -14,8 +14,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") -md5sums=('9fe384bb0bfbbc392e5c660ec0630245') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('f17d5d5cf549dff122185cfcef100d6a') prepare() { mkdir -p build-${CARCH}${_variant} @@ -42,7 +42,7 @@ build() { -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ -G'MSYS Makefiles' --debug-output - make VERBOSE=1 + make } package() { From bc9a59a3fb3b125045602fe56c15c27ae6a8c787 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 02:16:04 +0000 Subject: [PATCH 0263/2060] KDEF5: update ki18n to 5.5.0 --- mingw-w64-ki18n-qt5/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ki18n-qt5/PKGBUILD b/mingw-w64-ki18n-qt5/PKGBUILD index e913f2e7ce..2bf97e9bdc 100644 --- a/mingw-w64-ki18n-qt5/PKGBUILD +++ b/mingw-w64-ki18n-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "ki18n" -pkgver=5.3.0 +pkgver=5.5.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -14,9 +14,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz" +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz" "build-ktranscript-plugin-statically-if-not-shared.patch") -md5sums=('d01815a8c04baa90b81e3350805b4c5d' +md5sums=('646a1dc1c41831de3cadbc8975df71fe' 'ee7e57cc7ff1be80a28d5316f9665555') prepare() { From 79c4385b128e2c3381b76e7965f0e7d051984034 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 02:20:12 +0000 Subject: [PATCH 0264/2060] KDEF5: update kimageformats to 5.5.0 (WIP) WIP because static doesn't work, DLLs are always built instead. --- mingw-w64-kimageformats-qt5/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-kimageformats-qt5/PKGBUILD b/mingw-w64-kimageformats-qt5/PKGBUILD index 8fa071f6a5..48308becb2 100644 --- a/mingw-w64-kimageformats-qt5/PKGBUILD +++ b/mingw-w64-kimageformats-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kimageformats" -pkgver=5.3.0 +pkgver=5.5.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -14,8 +14,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver}/${_basename}-${pkgver}.tar.xz") -md5sums=('8aec8779d05c83e31cb379efd5aca8c7') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('141a157144456a338962d4e61e9b0ca5') prepare() { cd "${srcdir}"/${_basename}-${pkgver} From 053d08660d99332431a19e46a7c43f5415cd5c69 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 18:05:19 +0000 Subject: [PATCH 0265/2060] cgal: Update to 4.5.1 --- mingw-w64-cgal/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-cgal/PKGBUILD b/mingw-w64-cgal/PKGBUILD index bed60c3386..52c176e003 100644 --- a/mingw-w64-cgal/PKGBUILD +++ b/mingw-w64-cgal/PKGBUILD @@ -2,7 +2,7 @@ _realname=cgal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.5 +pkgver=4.5.1 pkgrel=1 _pkgid=34139 pkgdesc="Computational Geometry Algorithms Library (mingw-w64)" @@ -28,7 +28,7 @@ sha1sums=('97c60d3b12727b4fbbcce45a0965941bb1d60cbe' '1d2b06fe6faa0cb1ee748fa14f2de92f9e9e091f') prepare() { - cd "${srcdir}"/CGAL-${pkgver} + cd "${srcdir}"/CGAL-${pkgver%.*} patch -p1 -i ${srcdir}/cgal-4.4-mingw.patch } @@ -40,7 +40,7 @@ build() { -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ - ../CGAL-${pkgver} + ../CGAL-${pkgver%.*} make } From 0f5188de134fe11a1a5f3265bf527758813d7d58 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 18:07:34 +0000 Subject: [PATCH 0266/2060] KDEF5: Tidied kidletime --- mingw-w64-kidletime-qt5/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-kidletime-qt5/PKGBUILD b/mingw-w64-kidletime-qt5/PKGBUILD index d823362f69..bbaab6e431 100644 --- a/mingw-w64-kidletime-qt5/PKGBUILD +++ b/mingw-w64-kidletime-qt5/PKGBUILD @@ -42,8 +42,8 @@ build() { -DBUILD_TESTING=OFF \ -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ - -G'MSYS Makefiles' --debug-output --trace - make VERBOSE=1 + -G'MSYS Makefiles' + make } package() { From 06d47a3041f3c268a8b20176ded1de3bbc00c34e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 18:11:25 +0000 Subject: [PATCH 0267/2060] KDEF5: Added kitemmodels --- mingw-w64-kitemmodels-qt5/PKGBUILD | 52 ++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mingw-w64-kitemmodels-qt5/PKGBUILD diff --git a/mingw-w64-kitemmodels-qt5/PKGBUILD b/mingw-w64-kitemmodels-qt5/PKGBUILD new file mode 100644 index 0000000000..c0c573c354 --- /dev/null +++ b/mingw-w64-kitemmodels-qt5/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer (MSYS2): Ray Donnelly + +_variant=-static +#_variant=-shared +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "kitemmodels" +pkgver=5.5.0 +pkgrel=1 +arch=('any') +url=('https://projects.kde.org/projects/frameworks/${_basename}') +pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('55b919eeed06caffe26aea681940659f') + +prepare() { + cd "${srcdir}"/${_basename}-${pkgver} +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} From 6d50231baa62206ca446c58914c5e7aeb24cd18f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 18:11:47 +0000 Subject: [PATCH 0268/2060] KDEF5: Added kitemviews --- mingw-w64-kitemviews-qt5/PKGBUILD | 52 +++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mingw-w64-kitemviews-qt5/PKGBUILD diff --git a/mingw-w64-kitemviews-qt5/PKGBUILD b/mingw-w64-kitemviews-qt5/PKGBUILD new file mode 100644 index 0000000000..ef95a0aa41 --- /dev/null +++ b/mingw-w64-kitemviews-qt5/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer (MSYS2): Ray Donnelly + +_variant=-static +#_variant=-shared +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "kitemviews" +pkgver=5.5.0 +pkgrel=1 +arch=('any') +url=('https://projects.kde.org/projects/frameworks/${_basename}') +pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('dd948e8fc2b8540f29eacd78f3f8cd37') + +prepare() { + cd "${srcdir}"/${_basename}-${pkgver} +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} From cb205a687f4c2eb282e9d82bca4bff53d0255e75 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 18:12:29 +0000 Subject: [PATCH 0269/2060] KDEF5: Added kjs --- mingw-w64-kjs-qt5/PKGBUILD | 52 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mingw-w64-kjs-qt5/PKGBUILD diff --git a/mingw-w64-kjs-qt5/PKGBUILD b/mingw-w64-kjs-qt5/PKGBUILD new file mode 100644 index 0000000000..2ac154c420 --- /dev/null +++ b/mingw-w64-kjs-qt5/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer (MSYS2): Ray Donnelly + +_variant=-static +#_variant=-shared +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "kjs" +pkgver=5.5.0 +pkgrel=1 +arch=('any') +url=('https://projects.kde.org/projects/frameworks/${_basename}') +pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/portingAids/${_basename}-${pkgver}.tar.xz") +md5sums=('73a68d2d8a875998ed86874afbc7111c') + +prepare() { + cd "${srcdir}"/${_basename}-${pkgver} +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} From e6740576ad617f0ce2c6f699e67d2e1a2a8d0c4a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 18:12:57 +0000 Subject: [PATCH 0270/2060] KDEF5: Added kplotting --- mingw-w64-kplotting-qt5/PKGBUILD | 52 ++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mingw-w64-kplotting-qt5/PKGBUILD diff --git a/mingw-w64-kplotting-qt5/PKGBUILD b/mingw-w64-kplotting-qt5/PKGBUILD new file mode 100644 index 0000000000..c4a5c5bbd0 --- /dev/null +++ b/mingw-w64-kplotting-qt5/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer (MSYS2): Ray Donnelly + +_variant=-static +#_variant=-shared +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "kplotting" +pkgver=5.5.0 +pkgrel=1 +arch=('any') +url=('https://projects.kde.org/projects/frameworks/${_basename}') +pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('acdbdd2d2c0cc02bd391943f8ed084b2') + +prepare() { + cd "${srcdir}"/${_basename}-${pkgver} +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} From b3de22f9e538c88b707ad804ae11b3c77b02665e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 18:15:16 +0000 Subject: [PATCH 0271/2060] KDEF5: Added kwidgetsaddons --- mingw-w64-kwidgetsaddons-qt5/PKGBUILD | 52 +++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mingw-w64-kwidgetsaddons-qt5/PKGBUILD diff --git a/mingw-w64-kwidgetsaddons-qt5/PKGBUILD b/mingw-w64-kwidgetsaddons-qt5/PKGBUILD new file mode 100644 index 0000000000..0ccec396a4 --- /dev/null +++ b/mingw-w64-kwidgetsaddons-qt5/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer (MSYS2): Ray Donnelly + +_variant=-static +#_variant=-shared +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "kwidgetsaddons" +pkgver=5.5.0 +pkgrel=1 +arch=('any') +url=('https://projects.kde.org/projects/frameworks/${_basename}') +pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('d645a26d8601d6e539c1cc7186bd649d') + +prepare() { + cd "${srcdir}"/${_basename}-${pkgver} +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} From 8263df516ed65ce9d001ebc755038da76e3c0b03 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 18:15:40 +0000 Subject: [PATCH 0272/2060] KDEF5: Added kwindowsystem --- mingw-w64-kwindowsystem-qt5/PKGBUILD | 52 ++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mingw-w64-kwindowsystem-qt5/PKGBUILD diff --git a/mingw-w64-kwindowsystem-qt5/PKGBUILD b/mingw-w64-kwindowsystem-qt5/PKGBUILD new file mode 100644 index 0000000000..d4392c9ffc --- /dev/null +++ b/mingw-w64-kwindowsystem-qt5/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer (MSYS2): Ray Donnelly + +_variant=-static +#_variant=-shared +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "kwindowsystem" +pkgver=5.5.0 +pkgrel=1 +arch=('any') +url=('https://projects.kde.org/projects/frameworks/${_basename}') +pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('5945d3ad27cc11b71bd7b97283844f45') + +prepare() { + cd "${srcdir}"/${_basename}-${pkgver} +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} From 267c693ec7df0f70c0339da79e95c21b24437068 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 4 Jan 2015 18:16:13 +0000 Subject: [PATCH 0273/2060] KDEF5: Added solid The plugin gets built as a dll, since qt5-static/cmake doesn't have support for building static plugins, though I could try changing SHARED to PLUGIN to see if that fixes it. --- mingw-w64-solid-qt5/PKGBUILD | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mingw-w64-solid-qt5/PKGBUILD diff --git a/mingw-w64-solid-qt5/PKGBUILD b/mingw-w64-solid-qt5/PKGBUILD new file mode 100644 index 0000000000..455a9af6ed --- /dev/null +++ b/mingw-w64-solid-qt5/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer (MSYS2): Ray Donnelly + +_variant=-static +#_variant=-shared +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "solid" +pkgver=5.5.0 +pkgrel=1 +arch=('any') +url=('https://projects.kde.org/projects/frameworks/${_basename}') +pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('eded819be81335dfb31218d7eb3ec24a') + +prepare() { + cd "${srcdir}"/${_basename}-${pkgver} +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} From 1f3e0143dad525c3858e367c44abcaa2d3ce035c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 5 Jan 2015 01:18:01 +0000 Subject: [PATCH 0274/2060] qt5-static: Can be used via cmake (finally!) It's not clear whether static plugins can be built with this yet. .. if not, then it's quite far down my TODO list to fix. --- ...static-cmake-link-ws2_32-and--static.patch | 4 +-- ...ction-as-not-all-are-suffixed-Plugin.patch | 20 +++++++++++ ...to-use-static-builds-of-Qt-with-CMa.patch} | 0 ...ed-libraries-in-prl-files-for-CMake.patch} | 0 ...te_cmake-prl-file-has-no-lib-prefix.patch} | 0 ...e-also-link-plugins-and-plugin-deps.patch} | 26 +++++++++++--- mingw-w64-qt5-static/PKGBUILD | 36 ++++++++++++------- 7 files changed, 68 insertions(+), 18 deletions(-) create mode 100644 mingw-w64-qt5-static/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch rename mingw-w64-qt5-static/{0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch => 0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch} (100%) rename mingw-w64-qt5-static/{0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch => 0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch} (100%) rename mingw-w64-qt5-static/{0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch => 0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch} (100%) rename mingw-w64-qt5-static/{0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch => 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch} (88%) diff --git a/mingw-w64-qt5-static/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch b/mingw-w64-qt5-static/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch index f958c2288e..969fe359b3 100644 --- a/mingw-w64-qt5-static/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch +++ b/mingw-w64-qt5-static/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch @@ -1,5 +1,5 @@ ---- x86_64/qtbase/src/corelib/Qt5CoreConfigExtras.cmake.in.orig 2014-11-09 00:54:20.852201500 +0000 -+++ x86_64/qtbase/src/corelib/Qt5CoreConfigExtras.cmake.in 2014-11-09 00:55:52.437439900 +0000 +--- qt-everywhere-opensource-src-5.3.2.orig/qtbase/src/corelib/Qt5CoreConfigExtras.cmake.in.orig 2014-11-09 00:54:20.852201500 +0000 ++++ qt-everywhere-opensource-src-5.3.2/qtbase/src/corelib/Qt5CoreConfigExtras.cmake.in 2014-11-09 00:55:52.437439900 +0000 @@ -165,3 +165,12 @@ set(_Qt5CTestMacros \"${_Qt5CoreConfigDir}/Qt5CTestMacros.cmake\") diff --git a/mingw-w64-qt5-static/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch b/mingw-w64-qt5-static/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch new file mode 100644 index 0000000000..b53e5c2f55 --- /dev/null +++ b/mingw-w64-qt5-static/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch @@ -0,0 +1,20 @@ +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2015-01-04 22:22:54.714460900 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-01-04 22:34:11.801082600 +0000 +@@ -283,7 +283,16 @@ + + !!ENDIF // CMAKE_DEBUG_TYPE + +- file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ unset(pluginTargets) ++ if (pluginTargetsMaybe) ++ foreach(pluginTarget ${pluginTargetsMaybe}) ++ file(STRINGS ${pluginTarget} matched REGEX Qt5$${CMAKE_MODULE_NAME}_PLUGINS) ++ if (matched) ++ list(APPEND pluginTargets ${pluginTarget}) ++ endif() ++ endforeach() ++ endif() + + macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) + set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) diff --git a/mingw-w64-qt5-static/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch b/mingw-w64-qt5-static/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch similarity index 100% rename from mingw-w64-qt5-static/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch rename to mingw-w64-qt5-static/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch diff --git a/mingw-w64-qt5-static/0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch b/mingw-w64-qt5-static/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch similarity index 100% rename from mingw-w64-qt5-static/0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch rename to mingw-w64-qt5-static/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch diff --git a/mingw-w64-qt5-static/0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch b/mingw-w64-qt5-static/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch similarity index 100% rename from mingw-w64-qt5-static/0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch rename to mingw-w64-qt5-static/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch diff --git a/mingw-w64-qt5-static/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch b/mingw-w64-qt5-static/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch similarity index 88% rename from mingw-w64-qt5-static/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch rename to mingw-w64-qt5-static/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch index 519b76adb6..90f5d21db2 100644 --- a/mingw-w64-qt5-static/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch +++ b/mingw-w64-qt5-static/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch @@ -63,11 +63,20 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!ELSE add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) !!ENDIF -@@ -242,6 +260,35 @@ +@@ -242,6 +260,44 @@ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) -+ file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ unset(pluginTargets) ++ if (pluginTargetsMaybe) ++ foreach(pluginTarget ${pluginTargetsMaybe}) ++ file(STRINGS ${pluginTarget} matched REGEX Qt5$${CMAKE_MODULE_NAME}_PLUGINS) ++ if (matched) ++ list(APPEND pluginTargets ${pluginTarget}) ++ endif() ++ endforeach() ++ endif() + + macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) + set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) @@ -99,11 +108,20 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!IF !isEmpty(CMAKE_RELEASE_TYPE) !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" ) -@@ -316,29 +363,6 @@ +@@ -316,38 +363,6 @@ !!ENDIF // CMAKE_DEBUG_TYPE -- file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") +- file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") +- unset(pluginTargets) +- if (pluginTargetsMaybe) +- foreach(pluginTarget ${pluginTargetsMaybe}) +- file(STRINGS ${pluginTarget} matched REGEX Qt5$${CMAKE_MODULE_NAME}_PLUGINS) +- if (matched) +- list(APPEND pluginTargets ${pluginTarget}) +- endif() +- endforeach() +- endif() - - macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) - set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 9b00829469..a621c3d546 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.0 pkgver=${_ver_base//-/} -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -173,10 +173,11 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch 0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch 0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch - 0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch - 0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch - 0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch - 0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch) + 0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch + 0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch + 0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch + 0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch + 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch) md5sums=('21843b00ecde8956217faab391bc007b' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' @@ -213,11 +214,12 @@ md5sums=('21843b00ecde8956217faab391bc007b' '47e70b9a063aa99aba0096007ed5b83d' '3049f9e43e24f7eaafb4659c72ca4789' 'cbef002e6f4b0d043ca6a6e9d60ceca5' - '8749d4fd65a86a24fafba23067a2e086' + 'fbf568c6ed68ab4a372e03f9b84dafe8' + 'f323f5016ab38ceb3f10673ef9ae4337' 'd66b2afce490ab8a82feae08c747e367' '92fb1954fe3ab91d99a09c7f8a878218' 'ab2cac300aa7a908ea8840649f0b51fc' - '49f001a4f8ca9ee5a68fa84e0368af20') + '7d8093f2b8b0347304159c0e5836f3aa') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -324,12 +326,15 @@ prepare() { ###patch -p1 -i ${srcdir}/0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch patch -p1 -i ${srcdir}/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch patch -p1 -i ${srcdir}/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch - patch -p1 -i ${srcdir}/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch - patch -p1 -i ${srcdir}/0037-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch - patch -p1 -i ${srcdir}/0038-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch - patch -p1 -i ${srcdir}/0039-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch - patch -p1 -i ${srcdir}/0040-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch + # Patches so that qt5-static can be used with cmake. + # I don't think it's possible to create static plugins, I may be wrong; PLUGIN might DTRT. + patch -p1 -i ${srcdir}/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch + patch -p1 -i ${srcdir}/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch + patch -p1 -i ${srcdir}/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch + patch -p1 -i ${srcdir}/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch + patch -p1 -i ${srcdir}/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch + patch -p1 -i ${srcdir}/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch # See: https://bugreports.qt-project.org/browse/QTBUG-37902 # _ver_num=${_ver_base%%-*} @@ -601,3 +606,10 @@ package() { # export PATH=/mingw32/bin:$PATH # export PKG_CONFIG_PATH=/mingw32/lib/pkgconfig # E:/m2/repo/mingw-w64-qt5/src/i686/qtbase/bin/qmake.exe -o Makefile qml.pro + +# Plugin .cmake files that do not end with Plugin.cmake: +# E:\msys64\mingw64\qt5-static\lib\cmake\Qt5Declarative\Qt5Declarative_QTcpServerConnection.cmake +# E:\msys64\mingw64\qt5-static\lib\cmake\Qt5Location\Qt5Location_QGeoServiceProviderFactoryNokia.cmake +# E:\msys64\mingw64\qt5-static\lib\cmake\Qt5Location\Qt5Location_QGeoServiceProviderFactoryOsm.cmake +# E:\msys64\mingw64\qt5-static\lib\cmake\Qt5Positioning\Qt5Positioning_QGeoPositionInfoSourceFactoryPoll.cmake +# E:\msys64\mingw64\qt5-static\lib\cmake\Qt5Qml\Qt5Qml_QTcpServerConnection.cmake From 973ba34993be20ada7abb4039d96110dd9ab5144 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 6 Jan 2015 07:41:58 +0000 Subject: [PATCH 0275/2060] KDEF5: Added libkcw and kcwsh The KDEF5 moniker is misleading: libkcw doesn't seem to depend on Qt5 or anything much else (just Win32 API and C++). It could be used as a basis for various terminals I think. I don't think the same is true of kcwsh though. --- mingw-w64-kcwsh-qt5-git/PKGBUILD | 54 +++++++++++++++++++++++++++++++ mingw-w64-libkcw-qt5-git/PKGBUILD | 54 +++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 mingw-w64-kcwsh-qt5-git/PKGBUILD create mode 100644 mingw-w64-libkcw-qt5-git/PKGBUILD diff --git a/mingw-w64-kcwsh-qt5-git/PKGBUILD b/mingw-w64-kcwsh-qt5-git/PKGBUILD new file mode 100644 index 0000000000..340f124399 --- /dev/null +++ b/mingw-w64-kcwsh-qt5-git/PKGBUILD @@ -0,0 +1,54 @@ +# Maintainer (MSYS2): Ray Donnelly + +_variant=-static +#_variant=-shared +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "kcwsh" +_ver_base=0.1.0 +pkgver=0.1.0.236.be0e645 +pkgrel=1 +arch=('any') +url=('https://projects.kde.org/projects/frameworks/${_basename}') +pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("${_realname}"::"git://anongit.kde.org/${_basename}.git") +md5sums=('SKIP') + +pkgver() { + cd "${srcdir}/${_realname}" + printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + cmake ../${_realname} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} diff --git a/mingw-w64-libkcw-qt5-git/PKGBUILD b/mingw-w64-libkcw-qt5-git/PKGBUILD new file mode 100644 index 0000000000..6200d6e291 --- /dev/null +++ b/mingw-w64-libkcw-qt5-git/PKGBUILD @@ -0,0 +1,54 @@ +# Maintainer (MSYS2): Ray Donnelly + +_variant=-static +#_variant=-shared +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "libkcw" +_ver_base=0.1.0 +pkgver=0.1.0.70.810b71c +pkgrel=1 +arch=('any') +url=('https://projects.kde.org/projects/frameworks/${_basename}') +pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("${_realname}"::"git://anongit.kde.org/${_basename}.git") +md5sums=('SKIP') + +pkgver() { + cd "${srcdir}/${_realname}" + printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + cmake ../${_realname} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} From 8bfd2885b18948c2fe9d5db2f298f6e1e1f84ebb Mon Sep 17 00:00:00 2001 From: Josip Date: Tue, 6 Jan 2015 15:39:51 +0100 Subject: [PATCH 0276/2060] Fix crash in _fill_xrgb32_lerp_opaque_spans --- mingw-w64-cairo/PKGBUILD | 12 ++++---- ...ash-in-fill-xrgb32-lerp-opaque-spans.patch | 29 +++++++++++++++++++ 2 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-cairo/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch diff --git a/mingw-w64-cairo/PKGBUILD b/mingw-w64-cairo/PKGBUILD index 8a46d9d694..78a97a1b9c 100644 --- a/mingw-w64-cairo/PKGBUILD +++ b/mingw-w64-cairo/PKGBUILD @@ -3,7 +3,7 @@ _realname=cairo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.14.0 -pkgrel=1 +pkgrel=2 pkgdesc="Cairo vector graphics library (mingw-w64)" arch=('any') url="http://cairographics.org" @@ -30,14 +30,16 @@ source=("http://cairographics.org/releases/cairo-${pkgver}.tar.xz" 0013-mozilla-transparent-windows.all.patch 0022-dont-fail-argb-similar.all.patch 0026-create-argb-fonts.all.patch - 0027-Bug-53121-hack-around.all.patch) + 0027-Bug-53121-hack-around.all.patch + fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch) sha1sums=('53cf589b983412ea7f78feee2e1ba9cea6e3ebae' 'eed29a424e5e0bc9bd8d651b6237e541273c3f93' '58c548d2791ba20dd7f6e328ff596f746df3aa10' 'b4b8c6f4931814e7e77ddeb98fecaf70cb807e04' 'fa601d6d2b2c75b0b1608ab3fa9c2e5b6cc31c9e' '9c0e533614782a41af2c3806a43ab7fe9d6a5431' - 'b74c9998d960a64fbf606ebe0284187add0da55a') + 'b74c9998d960a64fbf606ebe0284187add0da55a' + '00b79ab41635a4f42311721bebbb9b3d49f09f46') prepare() { cd "${srcdir}"/${_realname}-${pkgver} @@ -47,6 +49,7 @@ prepare() { patch -p1 -i ${srcdir}/0022-dont-fail-argb-similar.all.patch patch -p1 -i ${srcdir}/0026-create-argb-fonts.all.patch patch -p1 -i ${srcdir}/0027-Bug-53121-hack-around.all.patch + patch -p1 -i ${srcdir}/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch autoreconf -fi } @@ -55,7 +58,7 @@ build() { export lt_cv_deplibs_check_method='pass_all' mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - #CFLAGS+=" -fno-lto" + CFLAGS+=" -Wno-implicit-function-declaration" "${srcdir}"/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -73,7 +76,6 @@ build() { --enable-ft \ --disable-silent-rules \ ac_cv_prog_GS=${MINGW_PREFIX}/bin/gsc - make } package() { diff --git a/mingw-w64-cairo/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch b/mingw-w64-cairo/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch new file mode 100644 index 0000000000..1be0a62ad7 --- /dev/null +++ b/mingw-w64-cairo/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch @@ -0,0 +1,29 @@ +From 5c82d91a5e15d29b1489dcb413b24ee7fdf59934 Mon Sep 17 00:00:00 2001 +From: Bryce Harrington +Date: Wed, 3 Dec 2014 19:28:15 -0800 +Subject: image: Fix crash in _fill_xrgb32_lerp_opaque_spans + +If a span length is negative don't go out of bounds processing the fill +data. + +Patch thanks to Ilya Sakhnenko on mailing list. + +Signed-off-by: Bryce Harrington + +diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c +index 6ff0f09..48072f8 100644 +--- a/src/cairo-image-compositor.c ++++ b/src/cairo-image-compositor.c +@@ -2242,10 +2242,10 @@ _fill_xrgb32_lerp_opaque_spans (void *abstract_renderer, int y, int h, + spans[0].x, y, len, 1, r->u.fill.pixel); + } else { + uint32_t *d = (uint32_t*)(r->u.fill.data + r->u.fill.stride*y + spans[0].x*4); +- while (len--) ++ while (len-- > 0) + *d++ = r->u.fill.pixel; + } +- } else while (len--) { ++ } else while (len-- > 0) { + *d = lerp8x4 (r->u.fill.pixel, a, *d); + d++; + } From 0e70d1e84c429438e43929301ee4fa388206dc9b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 6 Jan 2015 23:03:16 +0300 Subject: [PATCH 0277/2060] mingw-w64 runtime update to git SHA [c7e4f8f] --- mingw-w64-crt-git/PKGBUILD | 3 ++- mingw-w64-headers-git/PKGBUILD | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 393c59966d..835c2efe2f 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _ver_base=4.0.0 -pkgver=4.0.0.4384.404d457 +pkgver=4.0.0.4388.c7e4f8f pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -26,6 +26,7 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} + autoreconf -fiv } build() { diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index ae311952e8..20c211a2b0 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" _ver_base=4.0.0 -pkgver=4.0.0.4384.404d457 +pkgver=4.0.0.4388.c7e4f8f pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From fa5c1a93333a18ce1906beac036e6b114df8a144 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 6 Jan 2015 23:21:53 +0300 Subject: [PATCH 0278/2060] libebml: Update to 1.3.1 --- mingw-w64-libebml/001-makefile.patch | 59 ---------------------------- mingw-w64-libebml/PKGBUILD | 25 +++++++----- 2 files changed, 15 insertions(+), 69 deletions(-) delete mode 100644 mingw-w64-libebml/001-makefile.patch diff --git a/mingw-w64-libebml/001-makefile.patch b/mingw-w64-libebml/001-makefile.patch deleted file mode 100644 index 59bb9ee977..0000000000 --- a/mingw-w64-libebml/001-makefile.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- libebml-1.3.0/make/mingw32/Makefile.orig 2014-09-25 12:52:00.900800000 +0500 -+++ libebml-1.3.0/make/mingw32/Makefile 2014-09-25 13:14:22.953200000 +0500 -@@ -9,6 +9,11 @@ - # Compile with debug information? - #DEBUG = yes - -+prefix=/mingw -+bindir=$(prefix)/bin -+libdir=$(prefix)/lib -+includedir=$(prefix)/include/ebml -+INCLUDE_DIR=../../ebml - - # - # Don't change anything below this line. -@@ -22,6 +26,11 @@ - WINDRES = $(CROSS)windres - RANLIB = $(CROSS)ranlib - AR = $(CROSS)ar -+INSTALL = install -+INSTALL_OPTS = -m 644 -+INSTALL_OPTS_LIB = -m 644 -+INSTALL_DIR_OPTS = -m 755 -+ - RES = - SRC = $(wildcard ../../src/*.cpp) - OBJ = $(patsubst %.cpp,%.o,$(SRC)) -@@ -66,6 +75,32 @@ - $(CXX) $(CXXFLAGS) -MM -MT $$o $$i >> .depend ; \ - done - -+ifeq (yes,$(SHARED)) -+install: install_sharedlib install_headers -+else -+install: install_staticlib install_headers -+endif -+ -+install_headers: -+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(includedir) -+ for i in $(INCLUDE_DIR)/*.h; do \ -+ $(INSTALL) $(INSTALL_OPTS) $$i $(includedir) ; \ -+ done -+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(includedir)/c -+ for i in $(INCLUDE_DIR)/c/*.h; do \ -+ $(INSTALL) $(INSTALL_OPTS) $$i $(includedir)/c ; \ -+ done -+ -+install_staticlib: libebml.a -+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(libdir) -+ $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBS) $(libdir) -+ -+install_sharedlib: libebml.dll -+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(bindir) -+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(libdir) -+ $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBS) $(bindir) -+ $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBS).a $(libdir) -+ - # - # include dependency files if they exist - # diff --git a/mingw-w64-libebml/PKGBUILD b/mingw-w64-libebml/PKGBUILD index d296dbe4e8..ef6d9997b7 100644 --- a/mingw-w64-libebml/PKGBUILD +++ b/mingw-w64-libebml/PKGBUILD @@ -2,7 +2,7 @@ _realname=libebml pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.3.0 +pkgver=1.3.1 pkgrel=1 pkgdesc="Extensible Binary Meta Language library (mingw-w64)" arch=('any') @@ -10,24 +10,29 @@ groups=("${MINGW_PACKAGE_PREFIX}") license=('LGPL') url="http://dl.matroska.org/downloads/libebml/" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "automake" "autoconf") options=('staticlibs') -source=("http://dl.matroska.org/downloads/${_realname}/${_realname}-${pkgver}.tar.bz2" - 001-makefile.patch) -md5sums=('efec729bf5a51e649e1d9d1f61c0ae7a' - '07ccb8987d1eb1da45d7cf4cfeeec692') +source=("http://dl.matroska.org/downloads/${_realname}/${_realname}-${pkgver}.tar.bz2") +md5sums=('2d5a0e502fabedfded2a890c6b5513a5') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/001-makefile.patch } build() { - cd ${srcdir}/${_realname}-${pkgver}/make/mingw32 - + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "${srcdir}"/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + make } package() { - cd ${srcdir}/${_realname}-${pkgver}/make/mingw32 - make install prefix="${pkgdir}${MINGW_PREFIX}" + cd "${srcdir}/build-${MINGW_CHOST}" + make install DESTDIR="${pkgdir}" } From bba3ff831774a6417a1ea9285f85c3451f42cb48 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 6 Jan 2015 23:29:43 +0300 Subject: [PATCH 0279/2060] libmatroska: Update to 1.4.2 --- mingw-w64-libmatroska/001-ebml-ldflags.patch | 11 ++++ mingw-w64-libmatroska/001-makefile.patch | 67 -------------------- mingw-w64-libmatroska/PKGBUILD | 28 +++++--- 3 files changed, 30 insertions(+), 76 deletions(-) create mode 100644 mingw-w64-libmatroska/001-ebml-ldflags.patch delete mode 100644 mingw-w64-libmatroska/001-makefile.patch diff --git a/mingw-w64-libmatroska/001-ebml-ldflags.patch b/mingw-w64-libmatroska/001-ebml-ldflags.patch new file mode 100644 index 0000000000..9722a41212 --- /dev/null +++ b/mingw-w64-libmatroska/001-ebml-ldflags.patch @@ -0,0 +1,11 @@ +--- libmatroska-1.4.2/Makefile.am.orig 2015-01-06 23:24:53.694200000 +0300 ++++ libmatroska-1.4.2/Makefile.am 2015-01-06 23:25:34.880200000 +0300 +@@ -26,7 +26,7 @@ + src/KaxSemantic.cpp \ + src/KaxTracks.cpp \ + src/KaxVersion.cpp +-libmatroska_la_LDFLAGS = -version-info 6:0:0 -no-undefined ++libmatroska_la_LDFLAGS = -version-info 6:0:0 -no-undefined $(EBML_LIBS) + + nobase_include_HEADERS = \ + matroska/c/libmatroska.h \ diff --git a/mingw-w64-libmatroska/001-makefile.patch b/mingw-w64-libmatroska/001-makefile.patch deleted file mode 100644 index 889e958440..0000000000 --- a/mingw-w64-libmatroska/001-makefile.patch +++ /dev/null @@ -1,67 +0,0 @@ ---- libmatroska-1.4.1/make/mingw32/Makefile.orig 2013-09-17 22:15:34.000000000 +0500 -+++ libmatroska-1.4.1/make/mingw32/Makefile 2014-09-25 13:46:28.214600000 +0500 -@@ -9,12 +9,19 @@ - # Compile with debug information? - #DEBUG = yes - -+prefix=/mingw -+bindir=$(prefix)/bin -+libdir=$(prefix)/lib -+includedir=$(prefix)/include/matroska -+ - # Where libebml resides - EBML_DIR = ../../../libebml - - # Has libebml been compiled as a DLL? - EBML_DLL = yes - -+LIBEBML_INCLUDE_DIR=../../../libebml -+INCLUDE_DIR=../../matroska - # - # Don't change anything below this line. - # -@@ -27,6 +34,11 @@ - WINDRES = $(CROSS)windres - RANLIB = $(CROSS)ranlib - AR = $(CROSS)ar -+INSTALL = install -+INSTALL_OPTS = -m 644 -+INSTALL_OPTS_LIB = -m 644 -+INSTALL_DIR_OPTS = -m 755 -+ - RES = - SRC = $(wildcard ../../src/*.cpp) - OBJ = $(patsubst %.cpp,%.o,$(SRC)) -@@ -104,6 +116,32 @@ - $(CXX) $(COMPILEFLAGS) -MM -MT $$o $$i >> .depend ; \ - done - -+ifeq (yes,$(SHARED)) -+install: install_sharedlib install_headers -+else -+install: install_staticlib install_headers -+endif -+ -+install_headers: -+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(includedir) -+ for i in $(INCLUDE_DIR)/*.h; do \ -+ $(INSTALL) $(INSTALL_OPTS) $$i $(DESTDIR)$(includedir) ; \ -+ done -+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(includedir)/c -+ for i in $(INCLUDE_DIR)/c/*.h; do \ -+ $(INSTALL) $(INSTALL_OPTS) $$i $(DESTDIR)$(includedir)/c ; \ -+ done -+ -+install_staticlib: $(LIBS) -+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(libdir) -+ $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBS) $(DESTDIR)$(libdir) -+ -+install_sharedlib: $(LIBS) -+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(bindir) -+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(libdir) -+ $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBS) $(DESTDIR)$(bindir) -+ $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBS).a $(DESTDIR)$(libdir) -+ - # - # include dependency files if they exist - # diff --git a/mingw-w64-libmatroska/PKGBUILD b/mingw-w64-libmatroska/PKGBUILD index 870bf5280c..ca6e4cbe22 100644 --- a/mingw-w64-libmatroska/PKGBUILD +++ b/mingw-w64-libmatroska/PKGBUILD @@ -2,7 +2,7 @@ _realname=libmatroska pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.4.1 +pkgver=1.4.2 pkgrel=1 pkgdesc="Matroska library (mingw-w64)" arch=('any') @@ -10,24 +10,34 @@ groups=("${MINGW_PACKAGE_PREFIX}") license=('LGPL') url="http://dl.matroska.org/downloads/libebml/" depends=("${MINGW_PACKAGE_PREFIX}-libebml") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "automake" "autoconf") options=('staticlibs') source=("http://dl.matroska.org/downloads/${_realname}/${_realname}-${pkgver}.tar.bz2" - 001-makefile.patch) -md5sums=('f61b2e5086f4bb9d24a43cc8af43a719' - '3c86865729825b06bb3e00a14f1674e7') + 001-ebml-ldflags.patch) +md5sums=('f8fe42003e072a42a19ed40405f9efdb' + 'f02191d9d009d82d80985e4079eff266') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/001-makefile.patch + patch -p1 -i ${srcdir}/001-ebml-ldflags.patch + + autoreconf -fiv } build() { - cd ${srcdir}/${_realname}-${pkgver}/make/mingw32 - + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "${srcdir}"/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + make } package() { - cd ${srcdir}/${_realname}-${pkgver}/make/mingw32 - make install prefix="${pkgdir}${MINGW_PREFIX}" + cd "${srcdir}/build-${MINGW_CHOST}" + make install DESTDIR="${pkgdir}" } From dcee83ab733b7590bdd054b896ca105038727d93 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 6 Jan 2015 23:55:08 +0300 Subject: [PATCH 0280/2060] poppler: Update to 0.30.0 --- mingw-w64-poppler/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index 7d18e837fa..0110b7cac9 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -2,7 +2,7 @@ _realname=poppler pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.29.0 +pkgver=0.30.0 pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') @@ -28,7 +28,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" options=('strip' 'staticlibs') source=("http://poppler.freedesktop.org/poppler-${pkgver}.tar.xz" "give-cc-to-gir-scanner.mingw.patch") -md5sums=('7a5d87b7f62db636cc59f73bbd240811' +md5sums=('fb0a9d82b5433c823421a123eb8e9789' '727c1b414987f6ee2ba841d9db57a967') prepare() { @@ -53,6 +53,7 @@ build() { --enable-utils \ --disable-gtk-doc-html \ --with-font-configuration=win32 + make } From 298d48ac20992d1ff511253b25e6cfd3241de82b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 6 Jan 2015 23:57:05 +0300 Subject: [PATCH 0281/2060] cairo: Restore calling "make" --- mingw-w64-cairo/PKGBUILD | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mingw-w64-cairo/PKGBUILD b/mingw-w64-cairo/PKGBUILD index 78a97a1b9c..7395e64c14 100644 --- a/mingw-w64-cairo/PKGBUILD +++ b/mingw-w64-cairo/PKGBUILD @@ -76,6 +76,8 @@ build() { --enable-ft \ --disable-silent-rules \ ac_cv_prog_GS=${MINGW_PREFIX}/bin/gsc + + make } package() { From 14180c712d31de1050b60d618fcfe71bd1910fe2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 7 Jan 2015 00:16:11 +0300 Subject: [PATCH 0282/2060] dbus: Update to 1.9.6 --- mingw-w64-dbus/PKGBUILD | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mingw-w64-dbus/PKGBUILD b/mingw-w64-dbus/PKGBUILD index f737b7171e..f6d44d5b1d 100644 --- a/mingw-w64-dbus/PKGBUILD +++ b/mingw-w64-dbus/PKGBUILD @@ -2,17 +2,21 @@ _realname=dbus pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.9.4 +pkgver=1.9.6 pkgrel=1 arch=('any') pkgdesc="Freedesktop.org message bus system (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-expat") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python2" "xmlto") +depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-expat") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-python2" + "xmlto") options=('strip' 'staticlibs') license=("BSD") url="http://www.freedesktop.org/wiki/Software/dbus" source=("http://dbus.freedesktop.org/releases/dbus/${_realname}-${pkgver}.tar.gz"{,.asc}) -md5sums=('beee7886e478911ff942a80e4afec303' +md5sums=('5c64a166c72c50765d9c9cfbc696fac9' 'SKIP') prepare() { @@ -34,11 +38,11 @@ build() { --disable-Werror \ --enable-shared \ --enable-static + make } package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } From f07f8126e273a58d9e84efceae63059c1a8e7b03 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 7 Jan 2015 00:29:56 +0300 Subject: [PATCH 0283/2060] gdbm: Update to 1.11 --- mingw-w64-gdbm/PKGBUILD | 27 +- mingw-w64-gdbm/gdbm-win32-support.patch | 1201 ++++++----------------- 2 files changed, 302 insertions(+), 926 deletions(-) diff --git a/mingw-w64-gdbm/PKGBUILD b/mingw-w64-gdbm/PKGBUILD index de7bf9c5a8..6446046fd1 100644 --- a/mingw-w64-gdbm/PKGBUILD +++ b/mingw-w64-gdbm/PKGBUILD @@ -1,30 +1,31 @@ # Maintainer: Alexey Pavlov _realname=gdbm - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.10 +pkgver=1.11 pkgrel=1 pkgdesc="GNU database library (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gdbm/gdbm.html" license=('GPL3') -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" "${MINGW_PACKAGE_PREFIX}-libiconv" ) +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-libiconv") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs') source=(ftp://ftp.gnu.org/gnu/gdbm/${_realname}-${pkgver}.tar.gz{,.sig} - 'gdbm-1.10-zeroheaders.patch' - 'gdbm-win32-support.patch') -md5sums=('88770493c2559dc80b561293e39d3570' + 'gdbm-1.10-zeroheaders.patch' + 'gdbm-win32-support.patch') +md5sums=('72c832680cf0999caedbe5b265c8c1bd' 'SKIP' 'ac255b10452005237836cd2d3a470733' - 'ce7d37d8d7cfc895ccd04a59adabbbbe') + 'eb46af0a7d4360526f9a39f181d1af21') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/gdbm-1.10-zeroheaders.patch - patch -p1 -i ${srcdir}/gdbm-win32-support.patch + patch -p0 -i ${srcdir}/gdbm-win32-support.patch autoreconf --install --force } @@ -36,12 +37,12 @@ build() { ${srcdir}/${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --enable-static \ - --enable-shared \ - --enable-libgdbm-compat + --enable-static \ + --enable-shared \ + --enable-libgdbm-compat make } diff --git a/mingw-w64-gdbm/gdbm-win32-support.patch b/mingw-w64-gdbm/gdbm-win32-support.patch index 0237132c96..d3ed942d2c 100644 --- a/mingw-w64-gdbm/gdbm-win32-support.patch +++ b/mingw-w64-gdbm/gdbm-win32-support.patch @@ -1,951 +1,326 @@ -From 49a6d868583051c80fa82ed87c79b9dae1a88eed Mon Sep 17 00:00:00 2001 -From: Hiroshi Shirosaki -Date: Wed, 4 Jul 2012 11:47:34 +0900 -Subject: [PATCH] Mingw port of gdbm 1.10 - -I fixed gdbm 1.10 based on existing gdbm 1.8.3 patch for Windows. -http://jarp.does.notwork.org/win32/gdbm-1.8.3-1-src.zip -http://gnuwin32.sourceforge.net/packages/gdbm.htm - -Additinal fixes: - -src/gdbmreorg.c: -Reorganize of gdbm doesn't work because file rename is not allowed -with opened files on Windows. Adding close/open file process fixes it. - -src/flatfile.c: -It doesn't exist in 1.8.3. I added fixes using winsock2.h. -compat/dbmopen.c has hard link related feature which doesn't work. -I fixed it using Windows API. - -`make check` executes tests for gdbm. It fails causes of CRLF newlines -and '.exe' of file names. I fixed it setting binary mode and adding -extention. - -I added some Makefile fixes. I did `autoreconf` on MinGW 1.0.17. It -needs `autopoint` command which is included in gettext package, but -devkit doesn't have. ---- - Makefile.in | 1 + - aclocal.m4 | 4 +-- - autoconf.h.in | 8 ++++- - compat/Makefile.am | 2 +- - compat/Makefile.in | 3 +- - compat/dbmopen.c | 46 ++++++++++++++++++++++++----- - doc/Makefile.in | 1 + - export/Makefile.in | 1 + - src/Makefile.am | 2 +- - src/Makefile.in | 3 +- - src/flatfile.c | 4 +++ - src/gdbmopen.c | 4 ++- - src/gdbmreorg.c | 32 ++++++++++++++++++-- - src/lock.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++-- - src/systems.h | 17 ++++++++++- - src/testgdbm.c | 4 +++ - tests/Makefile.in | 1 + - tests/dtdel.c | 8 ++++- - tests/dtdump.c | 8 ++++- - tests/dtfetch.c | 8 ++++- - tests/dtload.c | 9 +++++- - tests/gtdel.c | 8 ++++- - tests/gtdump.c | 8 ++++- - tests/gtfetch.c | 8 ++++- - tests/gtload.c | 8 ++++- - tests/gtopt.c | 10 ++++++- - tests/gtver.c | 5 ++++ - tests/num2word.c | 5 ++++ - tests/testsuite | 8 ++--- - 29 files changed, 275 insertions(+), 34 deletions(-) - -diff --git a/Makefile.in b/Makefile.in -index 9f80d90..426f304 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -203,6 +203,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ - PACKAGE_STRING = @PACKAGE_STRING@ - PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_URL = @PACKAGE_URL@ - PACKAGE_VERSION = @PACKAGE_VERSION@ - PATH_SEPARATOR = @PATH_SEPARATOR@ - POSUB = @POSUB@ -diff --git a/aclocal.m4 b/aclocal.m4 -index 9080a65..58f2365 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -13,8 +13,8 @@ +--- configure.ac.orig 2012-11-21 22:34:12.148598606 +0100 ++++ configure.ac 2012-11-21 22:35:17.036673433 +0100 +@@ -112,6 +112,13 @@ + AM_CONDITIONAL([COMPAT_OPT], [test "$want_compat" = yes]) + AM_CONDITIONAL([ENABLE_EXPORT], [test "$want_export" = yes]) - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, --[m4_warning([this file was generated for autoconf 2.63. -+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, -+[m4_warning([this file was generated for autoconf 2.68. - You have another version of autoconf. It may work, but is not guaranteed to. - If you have problems, you may need to regenerate the build system entirely. - To do so, use the procedure documented by the package, typically `autoreconf'.])]) -diff --git a/autoconf.h.in b/autoconf.h.in -index aff7024..997ef10 100644 ---- a/autoconf.h.in -+++ b/autoconf.h.in -@@ -82,12 +82,15 @@ - /* Define to 1 if you have the header file. */ - #undef HAVE_STRING_H - --/* Define to 1 if `st_blksize' is member of `struct stat'. */ -+/* Define to 1 if `st_blksize' is a member of `struct stat'. */ - #undef HAVE_STRUCT_STAT_ST_BLKSIZE - - /* Define to 1 if you have the header file. */ - #undef HAVE_SYS_FILE_H - -+/* Define to 1 if you have the header file. */ -+#undef HAVE_SYS_PARAM_H ++if test x$host_os = xmingw32 ++then ++ AM_CONDITIONAL(WIN32, true) ++else ++ AM_CONDITIONAL(WIN32, false) ++fi + - /* Define to 1 if you have the header file. */ - #undef HAVE_SYS_STAT_H + # Initialize the test suite. + AC_CONFIG_TESTDIR(tests) + AC_CONFIG_FILES([tests/Makefile tests/atlocal po/Makefile.in]) +--- src/Makefile.am.orig 2012-11-21 22:27:53.410325014 +0100 ++++ src/Makefile.am 2012-11-21 22:33:13.957634294 +0100 +@@ -65,7 +65,10 @@ + update.c\ + version.c -@@ -119,6 +122,9 @@ - /* Define to the one symbol short name of this package. */ - #undef PACKAGE_TARNAME +-libgdbm_la_LDFLAGS = -version-info $(VI_CURRENT):$(VI_REVISION):$(VI_AGE) ++libgdbm_la_LDFLAGS = -version-info $(VI_CURRENT):$(VI_REVISION):$(VI_AGE) -no-undefined ++if WIN32 ++libgdbm_la_LDFLAGS += -lws2_32 ++endif -+/* Define to the home page for this package. */ -+#undef PACKAGE_URL -+ - /* Define to the version of this package. */ - #undef PACKAGE_VERSION + noinst_LIBRARIES = libgdbmapp.a -diff --git a/compat/Makefile.am b/compat/Makefile.am -index 42554b6..7c4ab15 100644 ---- a/compat/Makefile.am -+++ b/compat/Makefile.am -@@ -50,5 +50,5 @@ NDBM_CF=\ +--- src/update.c.orig 2012-11-21 22:25:32.667991693 +0100 ++++ src/update.c 2012-11-21 22:27:07.567564969 +0100 +@@ -39,8 +39,10 @@ + _gdbm_fatal (dbf, gdbm_strerror (rc)); - libgdbm_compat_la_SOURCES = $(DBM_CF) $(NDBM_CF) - --libgdbm_compat_la_LDFLAGS = -version-info $(VI_CURRENT):$(VI_REVISION):$(VI_AGE) -+libgdbm_compat_la_LDFLAGS = -no-undefined -version-info $(VI_CURRENT):$(VI_REVISION):$(VI_AGE) - -diff --git a/compat/Makefile.in b/compat/Makefile.in -index 4994e01..fe46887 100644 ---- a/compat/Makefile.in -+++ b/compat/Makefile.in -@@ -208,6 +208,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ - PACKAGE_STRING = @PACKAGE_STRING@ - PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_URL = @PACKAGE_URL@ - PACKAGE_VERSION = @PACKAGE_VERSION@ - PATH_SEPARATOR = @PATH_SEPARATOR@ - POSUB = @POSUB@ -@@ -305,7 +306,7 @@ NDBM_CF = \ - dbmrdonly.c - - libgdbm_compat_la_SOURCES = $(DBM_CF) $(NDBM_CF) --libgdbm_compat_la_LDFLAGS = -version-info $(VI_CURRENT):$(VI_REVISION):$(VI_AGE) -+libgdbm_compat_la_LDFLAGS = -no-undefined -version-info $(VI_CURRENT):$(VI_REVISION):$(VI_AGE) - all: all-am - - .SUFFIXES: -diff --git a/compat/dbmopen.c b/compat/dbmopen.c -index 7a5127e..6110afb 100644 ---- a/compat/dbmopen.c -+++ b/compat/dbmopen.c -@@ -58,13 +58,17 @@ putint (unsigned char *cp, unsigned n) - - /* FIXME: revise return codes */ - static int --ndbm_open_dir_file0 (const char *file_name, int pagfd, int mode) -+ndbm_open_dir_file0 (const char *file_name, struct gdbm_file_info *pag, int mode) - { - int fd = -1; - struct stat st, pagst; - unsigned char dirbuf[DEF_DIR_SIZE]; - int flags = (mode & GDBM_OPENMASK) == GDBM_READER ? - O_RDONLY : O_RDWR; -+ int pagfd = pag->desc; -+#ifdef _WIN32 -+ HANDLE hFile; + /* Sync the file if fast_write is FALSE. */ ++#ifdef HAVE_FSYNC + if (dbf->fast_write == FALSE) + __fsync (dbf); +#endif + } - if (mode & GDBM_CLOEXEC) - flags |= O_CLOEXEC; -@@ -76,13 +80,40 @@ ndbm_open_dir_file0 (const char *file_name, int pagfd, int mode) - } - - /* Previous versions of GDBM linked pag to dir. Try to detect this: */ -+#ifdef _WIN32 -+ hFile = CreateFile(file_name, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, -+ NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, -+ NULL); -+ -+ if (hFile != INVALID_HANDLE_VALUE) -+ { -+ BY_HANDLE_FILE_INFORMATION fileInfo; -+ GetFileInformationByHandle (hFile, &fileInfo); -+ CloseHandle (hFile); -+ st.st_size = (fileInfo.nFileSizeHigh * MAXDWORD) + fileInfo.nFileSizeLow; -+ -+ if (fileInfo.nNumberOfLinks >= 2) -+ { -+ BY_HANDLE_FILE_INFORMATION pagInfo; -+ GetFileInformationByHandle ((HANDLE)_get_osfhandle (pagfd), &pagInfo); -+ if ((fileInfo.nFileIndexLow == pagInfo.nFileIndexLow) && -+ (fileInfo.nFileIndexHigh == pagInfo.nFileIndexHigh)) -+ { -+ /* Close pag because unlink dir file fails on Windows */ -+ close (pagfd); -+#else - if (stat (file_name, &st) == 0) - { - if (st.st_nlink >= 2) - { - if (st.st_dev == pagst.st_dev && st.st_ino == pagst.st_ino) - { -- if (unlink (file_name)) + +@@ -84,8 +86,10 @@ + if (rc) + _gdbm_fatal (dbf, gdbm_strerror (rc)); + dbf->directory_changed = FALSE; ++#ifdef HAVE_FSYNC + if (!dbf->header_changed && dbf->fast_write == FALSE) + __fsync (dbf); +#endif -+ int ret = unlink (file_name); -+#ifdef _WIN32 -+ pagfd = pag->desc = open(pag->name, flags | O_BINARY); + } + + /* Final write of the header. */ +--- src/gdbmsync.c.orig 2012-11-21 22:30:53.253304003 +0100 ++++ src/gdbmsync.c 2012-11-21 22:31:02.123450829 +0100 +@@ -31,7 +31,8 @@ + /* Initialize the gdbm_errno variable. */ + gdbm_errno = GDBM_NO_ERROR; + ++#ifdef HAVE_FSYNC + /* Do the sync on the file. */ + __fsync (dbf); +- +#endif -+ if (ret) - { - if ((mode & GDBM_OPENMASK) == GDBM_READER) - /* Ok, try to cope with it. */ -@@ -109,7 +140,7 @@ ndbm_open_dir_file0 (const char *file_name, int pagfd, int mode) + } +--- src/gdbmopen.c.orig 2012-11-21 22:29:23.495815449 +0100 ++++ src/gdbmopen.c 2012-11-21 22:29:37.659050171 +0100 +@@ -316,8 +316,10 @@ + return NULL; } - else - { -- fd = open (file_name, flags); -+ fd = open (file_name, flags | O_BINARY); - if (fd == -1) - { - gdbm_errno = GDBM_FILE_OPEN_ERROR; -@@ -141,7 +172,7 @@ ndbm_open_dir_file0 (const char *file_name, int pagfd, int mode) + ++#ifdef HAVE_FSYNC + /* Wait for initial configuration to be written to disk. */ + __fsync (dbf); ++#endif + + free (dbf->bucket); } - - /* File does not exist. Create it. */ -- fd = open (file_name, flags | O_CREAT, pagst.st_mode & 0777); -+ fd = open (file_name, flags | O_CREAT | O_BINARY, pagst.st_mode & 0777); - if (fd >= 0) - { - putint (dirbuf, GDBM_DIR_MAGIC); -@@ -161,10 +192,11 @@ ndbm_open_dir_file0 (const char *file_name, int pagfd, int mode) - } +--- src/gdbmclose.c.orig 2012-11-21 22:30:04.928503285 +0100 ++++ src/gdbmclose.c 2012-11-21 22:30:14.862667066 +0100 +@@ -31,9 +31,11 @@ + { + int index; /* For freeing the bucket cache. */ + ++#ifdef HAVE_FSYNC + /* Make sure the database is all on disk. */ + if (dbf->read_write != GDBM_READER) + __fsync (dbf); ++#endif + + /* Close the file and free all malloced memory. */ + #if HAVE_MMAP +--- src/gdbmreorg.c.orig 2012-11-21 22:30:26.776863411 +0100 ++++ src/gdbmreorg.c 2012-11-21 22:30:37.976049148 +0100 +@@ -207,8 +207,10 @@ + free (new_dbf); + free (new_name); + ++#ifdef HAVE_FSYNC + /* Make sure the new database is all on disk. */ + __fsync (dbf); ++#endif + + /* Force the right stuff for a correct bucket cache. */ + dbf->cache_entry = &dbf->bucket_cache[0]; +--- src/gdbmdump.c.orig 2015-01-01 22:10:46.464030280 +0100 ++++ src/gdbmdump.c 2015-01-01 22:11:29.762727347 +0100 +@@ -17,8 +17,6 @@ + # include "autoconf.h" + # include "gdbmdefs.h" + # include "gdbm.h" +-# include +-# include + # include static int --ndbm_open_dir_file (const char *base, int pagfd, int mode) -+ndbm_open_dir_file (const char *base, struct gdbm_file_info *pag, int mode) - { - char *file_name = malloc (strlen (base) + sizeof (DIRSUF)); +@@ -56,8 +54,6 @@ + time_t t; int fd; -+ int pagfd = pag->desc; + struct stat st; +- struct passwd *pw; +- struct group *gr; + datum key; + size_t count = 0; + unsigned char *buffer = NULL; +@@ -76,13 +72,7 @@ + + fprintf (fp, "#:file=%s\n", dbf->name); + fprintf (fp, "#:uid=%lu,", (unsigned long) st.st_uid); +- pw = getpwuid (st.st_uid); +- if (pw) +- fprintf (fp, "user=%s,", pw->pw_name); + fprintf (fp, "gid=%lu,", (unsigned long) st.st_gid); +- gr = getgrgid (st.st_gid); +- if (gr) +- fprintf (fp, "group=%s,", gr->gr_name); + fprintf (fp, "mode=%03o\n", st.st_mode & 0777); + fprintf (fp, "# End of header\n"); - if (!file_name) - { -@@ -172,7 +204,7 @@ ndbm_open_dir_file (const char *base, int pagfd, int mode) - return -1; - } - fd = ndbm_open_dir_file0 (strcat (strcpy (file_name, base), DIRSUF), -- pagfd, mode); -+ pag, mode); - free (file_name); - return fd; - } -@@ -265,7 +297,7 @@ dbm_open (char *file, int flags, int mode) - } - else - { -- dbm->dirfd = ndbm_open_dir_file (file, dbm->file->desc, open_flags); -+ dbm->dirfd = ndbm_open_dir_file (file, dbm->file, open_flags); - if (dbm->dirfd == -1) - { - gdbm_close (dbm->file); -diff --git a/doc/Makefile.in b/doc/Makefile.in -index 7379b75..d620ab6 100644 ---- a/doc/Makefile.in -+++ b/doc/Makefile.in -@@ -186,6 +186,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ - PACKAGE_STRING = @PACKAGE_STRING@ - PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_URL = @PACKAGE_URL@ - PACKAGE_VERSION = @PACKAGE_VERSION@ - PATH_SEPARATOR = @PATH_SEPARATOR@ - POSUB = @POSUB@ -diff --git a/export/Makefile.in b/export/Makefile.in -index 37de02d..62db897 100644 ---- a/export/Makefile.in -+++ b/export/Makefile.in -@@ -178,6 +178,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ - PACKAGE_STRING = @PACKAGE_STRING@ - PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_URL = @PACKAGE_URL@ - PACKAGE_VERSION = @PACKAGE_VERSION@ - PATH_SEPARATOR = @PATH_SEPARATOR@ - POSUB = @POSUB@ -diff --git a/src/Makefile.am b/src/Makefile.am -index 1c55a4e..860a56b 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -60,7 +60,7 @@ libgdbm_la_SOURCES = \ - update.c\ - version.c - --libgdbm_la_LDFLAGS = -version-info $(VI_CURRENT):$(VI_REVISION):$(VI_AGE) -+libgdbm_la_LDFLAGS = -no-undefined -lws2_32 -version-info $(VI_CURRENT):$(VI_REVISION):$(VI_AGE) - - # Programs - bin_PROGRAMS = testgdbm -diff --git a/src/Makefile.in b/src/Makefile.in -index b03d5c1..7860daf 100644 ---- a/src/Makefile.in -+++ b/src/Makefile.in -@@ -215,6 +215,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ - PACKAGE_STRING = @PACKAGE_STRING@ - PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_URL = @PACKAGE_URL@ - PACKAGE_VERSION = @PACKAGE_VERSION@ - PATH_SEPARATOR = @PATH_SEPARATOR@ - POSUB = @POSUB@ -@@ -324,7 +325,7 @@ libgdbm_la_SOURCES = \ - update.c\ - version.c - --libgdbm_la_LDFLAGS = -version-info $(VI_CURRENT):$(VI_REVISION):$(VI_AGE) -+libgdbm_la_LDFLAGS = -no-undefined -lws2_32 -version-info $(VI_CURRENT):$(VI_REVISION):$(VI_AGE) - testgdbm_LDADD = ./libgdbm.la - all: all-am - -diff --git a/src/flatfile.c b/src/flatfile.c -index c0f9422..adb83f2 100644 ---- a/src/flatfile.c -+++ b/src/flatfile.c -@@ -20,7 +20,11 @@ +--- src/gdbmexp.c.orig 2015-01-01 22:37:11.643551174 +0100 ++++ src/gdbmexp.c 2015-01-01 22:37:18.896668075 +0100 +@@ -18,7 +18,7 @@ /* Include system configuration before all else. */ # include "autoconf.h" -+#ifdef _WIN32 +-# include +# include -+#else - # include -+#endif # include "gdbmdefs.h" # include "gdbm.h" -diff --git a/src/gdbmopen.c b/src/gdbmopen.c -index 67db9c2..ec1c9a7 100644 ---- a/src/gdbmopen.c -+++ b/src/gdbmopen.c -@@ -128,7 +128,9 @@ gdbm_open (const char *file, int block_size, int flags, int mode, - } - else - dbf->cloexec = FALSE; -- -+ -+ fbits |= O_BINARY; -+ - /* Open the file. */ - need_trunc = FALSE; - switch (flags & GDBM_OPENMASK) -diff --git a/src/gdbmreorg.c b/src/gdbmreorg.c -index cc2a929..8b716c9 100644 ---- a/src/gdbmreorg.c -+++ b/src/gdbmreorg.c -@@ -22,7 +22,17 @@ - - #include "gdbmdefs.h" - --#if !HAVE_RENAME -+#if defined(_WIN32) -+static int -+_gdbm_rename (char *old_name, char *new_name) -+{ -+ if (!MoveFileEx (old_name, new_name, MOVEFILE_REPLACE_EXISTING)) -+ return -1; -+ -+ return 0; -+} -+#define rename _gdbm_rename -+#elif !HAVE_RENAME - - /* Rename takes OLD_NAME and renames it as NEW_NAME. If it can not rename - the file a non-zero value is returned. OLD_NAME is guaranteed to -@@ -94,7 +104,7 @@ gdbm_reorganize (GDBM_FILE dbf) - strcpy (&new_name[0], dbf->name); - new_name[len+2] = 0; - new_name[len+1] = '#'; -- while ( (len > 0) && new_name[len-1] != '/') -+ while ( (len > 0) && new_name[len-1] != '/' && new_name[len-1] != '\\') - { - new_name[len] = new_name[len-1]; - len -= 1; -@@ -157,20 +167,38 @@ gdbm_reorganize (GDBM_FILE dbf) - - /* Move the new file to old name. */ - -+ -+#ifdef _WIN32 -+ close (new_dbf->desc); -+ -+ if (dbf->file_locking) -+ { -+ _gdbm_unlock_file (dbf); -+ } -+ close (dbf->desc); -+#endif - if (rename (new_name, dbf->name) != 0) - { - gdbm_errno = GDBM_REORGANIZE_FAILED; -+#ifdef _WIN32 -+ dbf->desc = open (dbf->name, O_RDWR|O_BINARY, 0); -+ new_dbf->desc = open (new_name, O_RDWR|O_BINARY, 0); -+#endif - gdbm_close (new_dbf); - free (new_name); - return -1; - } - - /* Fix up DBF to have the correct information for the new file. */ -+#ifdef _WIN32 -+ new_dbf->desc = open (dbf->name, O_RDWR|O_BINARY, 0); -+#else - if (dbf->file_locking) - { - _gdbm_unlock_file (dbf); - } - close (dbf->desc); -+#endif - free (dbf->header); - free (dbf->dir); - -diff --git a/src/lock.c b/src/lock.c -index 214e1cb..8ccb98b 100644 ---- a/src/lock.c -+++ b/src/lock.c -@@ -23,7 +23,7 @@ - - #include - --#if HAVE_FLOCK -+#if HAVE_FLOCK || defined(_WIN32) - # ifndef LOCK_SH - # define LOCK_SH 1 - # endif -@@ -41,6 +41,83 @@ - # endif - #endif - -+#ifdef _WIN32 -+#include -+#include -+ -+/* -+ * flock support code for windows -+ * -+ * This code is derived from ruby (http://www.ruby-lang.org/). -+ * Original copyright notice is below. -+ */ -+/* -+ * Copyright (c) 1993, Intergraph Corporation -+ * -+ * You may distribute under the terms of either the GNU General Public -+ * License or the Artistic License, as specified in the perl README file. -+ * -+ * Various Unix compatibility functions and NT specific functions. -+ * -+ * Some of this code was derived from the MSDOS port(s) and the OS/2 port. -+ * -+ */ -+ -+#ifndef EWOULDBLOCK -+#define EWOULDBLOCK 10035 /* EBASEERR + 35 (winsock.h) */ -+#endif -+ -+#define LK_ERR(f,i) ((f) ? (i = 0) : (errno = GetLastError() == ERROR_LOCK_VIOLATION ? EWOULDBLOCK : EACCES)) -+#define LK_LEN ULONG_MAX -+ -+static int -+flock_winnt(HANDLE fh, int oper) -+{ -+ OVERLAPPED o; -+ int i = -1; -+ -+ memset(&o, 0, sizeof(o)); -+ -+ switch(oper) { -+ case LOCK_SH: /* shared lock */ -+ LK_ERR(LockFileEx(fh, 0, 0, LK_LEN, LK_LEN, &o), i); -+ break; -+ case LOCK_EX: /* exclusive lock */ -+ LK_ERR(LockFileEx(fh, LOCKFILE_EXCLUSIVE_LOCK, 0, LK_LEN, LK_LEN, &o), i); -+ break; -+ case LOCK_SH|LOCK_NB: /* non-blocking shared lock */ -+ LK_ERR(LockFileEx(fh, LOCKFILE_FAIL_IMMEDIATELY, 0, LK_LEN, LK_LEN, &o), i); -+ break; -+ case LOCK_EX|LOCK_NB: /* non-blocking exclusive lock */ -+ LK_ERR(LockFileEx(fh, -+ LOCKFILE_EXCLUSIVE_LOCK|LOCKFILE_FAIL_IMMEDIATELY, -+ 0, LK_LEN, LK_LEN, &o), i); -+ break; -+ case LOCK_UN: /* unlock lock */ -+ LK_ERR(UnlockFileEx(fh, 0, LK_LEN, LK_LEN, &o), i); -+ break; -+ default: /* unknown */ -+ errno = EINVAL; -+ break; -+ } -+ return i; -+} -+ -+#undef LK_ERR -+ -+int -+flock(int fd, int oper) -+{ -+ static int (*locker)(HANDLE, int) = NULL; -+ -+ if (!locker) { -+ locker = flock_winnt; -+ } -+ -+ return locker((HANDLE)_get_osfhandle(fd), oper); -+} -+#endif /* _WIN32 */ -+ - #if defined(F_SETLK) && defined(F_RDLCK) && defined(F_WRLCK) - # define HAVE_FCNTL_LOCK 1 - #else -@@ -65,7 +142,7 @@ _gdbm_unlock_file (GDBM_FILE dbf) - switch (dbf->lock_type) - { - case LOCKING_FLOCK: --#if HAVE_FLOCK -+#if HAVE_FLOCK || defined(_WIN32) - flock (dbf->desc, LOCK_UN); - #endif - break; -@@ -101,7 +178,7 @@ _gdbm_lock_file (GDBM_FILE dbf) - #endif - int lock_val = -1; - --#if HAVE_FLOCK -+#if HAVE_FLOCK || defined(_WIN32) - if (dbf->read_write == GDBM_READER) - lock_val = flock (dbf->desc, LOCK_SH + LOCK_NB); - else -diff --git a/src/systems.h b/src/systems.h -index c83cd9c..7b3eee4 100644 ---- a/src/systems.h -+++ b/src/systems.h -@@ -18,6 +18,11 @@ - along with GDBM. If not, see . */ - - /* Include all system headers first. */ -+#ifdef _WIN32 -+# undef _WIN32_WINNT -+# define _WIN32_WINNT 0x0501 -+# include -+#endif - #if HAVE_SYS_TYPES_H +--- src/gdbmload.c.windows 2013-12-25 10:52:42.000000000 +0100 ++++ src/gdbmload.c 2015-01-01 22:47:10.027195405 +0100 +@@ -18,8 +18,6 @@ + # include "gdbmdefs.h" + # include "gdbm.h" # include - #endif -@@ -50,6 +55,10 @@ - # define O_CLOEXEC 0 - #endif +-# include +-# include -+#ifndef O_BINARY -+# define O_BINARY 0 + struct datbuf + { +@@ -288,14 +286,13 @@ + _set_gdbm_meta_info (GDBM_FILE dbf, char *param, int meta_mask) + { + unsigned long n; +- uid_t owner_uid; +- uid_t owner_gid; + mode_t mode; + int meta_flags = 0; + const char *p; + char *end; + int rc = 0; + ++#if 0 + if (!(meta_mask & GDBM_META_MASK_OWNER)) + { + p = getparm (param, "user"); +@@ -341,6 +338,7 @@ + } + } + } +#endif -+ - /* Default block size. Some systems do not have blocksize in their - stat record. This code uses the BSD blocksize from stat. */ - -@@ -63,7 +72,7 @@ - #if HAVE_FTRUNCATE - # define TRUNCATE(dbf) ftruncate (dbf->desc, 0) - #else --# define TRUNCATE(dbf) close( open (dbf->name, O_RDWR|O_TRUNC, mode)); -+# define TRUNCATE(dbf) close( open (dbf->name, O_RDWR|O_TRUNC|O_BINARY, mode)); - #endif - - #ifndef STDERR_FILENO -@@ -82,8 +91,14 @@ - # define __lseek(_dbf, _off, _whn) lseek(_dbf->desc, _off, _whn) - # if HAVE_FSYNC - # define __fsync(_dbf) fsync(_dbf->desc) -+# elif defined(_WIN32) -+# define __fsync(_dbf) _commit(_dbf->desc) - # else - # define __fsync(_dbf) { sync(); sync(); } - # endif - #endif - -+/* Windows port of flock */ -+#ifdef _WIN32 -+extern int flock(int fd, int oper); + + if (!(meta_mask & GDBM_META_MASK_MODE)) + { +@@ -357,6 +355,7 @@ + } + } + ++#if 0 + if (meta_flags) + { + int fd = gdbm_fdesc (dbf); +@@ -383,6 +382,7 @@ + rc = 1; + } + } +#endif -diff --git a/src/testgdbm.c b/src/testgdbm.c -index b2b9c6c..3a0926c 100644 ---- a/src/testgdbm.c -+++ b/src/testgdbm.c -@@ -27,7 +27,9 @@ + return rc; + } + +--- src/gdbmimp.c.orig 2015-01-01 22:47:52.994887921 +0100 ++++ src/gdbmimp.c 2015-01-01 22:47:58.755980773 +0100 +@@ -17,7 +17,7 @@ + along with GDBM. If not, see . */ + + # include "autoconf.h" +-# include ++# include + + # include "gdbmdefs.h" + # include "gdbm.h" +--- src/gdbmtool.c.orig 2015-01-01 22:50:36.615525016 +0100 ++++ src/gdbmtool.c 2015-01-01 22:50:59.346891381 +0100 +@@ -22,8 +22,6 @@ #include #include #include -+#ifndef _WIN32 - #include -+#endif +-#include +-#include #ifdef HAVE_SYS_TERMIOS_H # include #endif -@@ -1126,7 +1128,9 @@ main (int argc, char *argv[]) - -1) - error (2, _("gdbm_setopt failed: %s"), gdbm_strerror (gdbm_errno)); +@@ -1497,6 +1495,7 @@ + if (setsource (GDBMTOOLRC, 0) == 0) + yyparse (); + } ++#if 0 + else + { + char *fname; +@@ -1519,6 +1518,7 @@ + } + free (fname); + } ++#endif + } -+#ifndef _WIN32 - signal (SIGPIPE, SIG_IGN); -+#endif - - /* Welcome message. */ - if (interactive) -diff --git a/tests/Makefile.in b/tests/Makefile.in -index a7a7e39..8a5a368 100644 ---- a/tests/Makefile.in -+++ b/tests/Makefile.in -@@ -230,6 +230,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ - PACKAGE_STRING = @PACKAGE_STRING@ - PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_URL = @PACKAGE_URL@ - PACKAGE_VERSION = @PACKAGE_VERSION@ - PATH_SEPARATOR = @PATH_SEPARATOR@ - POSUB = @POSUB@ -diff --git a/tests/dtdel.c b/tests/dtdel.c -index b7d0112..1134027 100644 ---- a/tests/dtdel.c -+++ b/tests/dtdel.c -@@ -16,6 +16,7 @@ - */ - #include "autoconf.h" - #include -+#include - #include - #include - #include "dbm.h" -@@ -30,7 +31,12 @@ main (int argc, char **argv) - int flags = 0; - int data_z = 0; - int rc = 0; -- -+ -+#ifdef _WIN32 -+ _setmode(_fileno(stdout), O_BINARY); -+ _setmode(_fileno(stderr), O_BINARY); -+#endif -+ - while (--argc) - { - char *arg = *++argv; -diff --git a/tests/dtdump.c b/tests/dtdump.c -index 4e0aa3e..302655a 100644 ---- a/tests/dtdump.c -+++ b/tests/dtdump.c -@@ -16,6 +16,7 @@ - */ - #include "autoconf.h" - #include -+#include - #include - #include - #include "dbm.h" -@@ -29,7 +30,12 @@ main (int argc, char **argv) - datum key; - datum data; - int delim = '\t'; -- -+ -+#ifdef _WIN32 -+ _setmode(_fileno(stdout), O_BINARY); -+ _setmode(_fileno(stderr), O_BINARY); -+#endif -+ - while (--argc) - { - char *arg = *++argv; -diff --git a/tests/dtfetch.c b/tests/dtfetch.c -index 8a2686f..b17a344 100644 ---- a/tests/dtfetch.c -+++ b/tests/dtfetch.c -@@ -16,6 +16,7 @@ - */ - #include "autoconf.h" - #include -+#include - #include - #include - #include "dbm.h" -@@ -44,7 +45,12 @@ main (int argc, char **argv) - int data_z = 0; - int delim = 0; - int rc = 0; -- -+ -+#ifdef _WIN32 -+ _setmode(_fileno(stdout), O_BINARY); -+ _setmode(_fileno(stderr), O_BINARY); -+#endif -+ - while (--argc) - { - char *arg = *++argv; -diff --git a/tests/dtload.c b/tests/dtload.c -index 6ebd638..c449c74 100644 ---- a/tests/dtload.c -+++ b/tests/dtload.c -@@ -16,6 +16,7 @@ - */ - #include "autoconf.h" - #include -+#include - #include - #include - #include -@@ -39,7 +40,13 @@ main (int argc, char **argv) - datum data; - int delim = '\t'; - int data_z = 0; -- -+ -+#ifdef _WIN32 -+ _setmode(_fileno(stdin), O_BINARY); -+ _setmode(_fileno(stdout), O_BINARY); -+ _setmode(_fileno(stderr), O_BINARY); -+#endif -+ - while (--argc) - { - char *arg = *++argv; -diff --git a/tests/gtdel.c b/tests/gtdel.c -index ff9cdb9..e6a8c5f 100644 ---- a/tests/gtdel.c -+++ b/tests/gtdel.c -@@ -16,6 +16,7 @@ - */ - #include "autoconf.h" - #include -+#include - #include - #include - #include "gdbm.h" -@@ -31,7 +32,12 @@ main (int argc, char **argv) - GDBM_FILE dbf; - int data_z = 0; - int rc = 0; -- -+ -+#ifdef _WIN32 -+ _setmode(_fileno(stdout), O_BINARY); -+ _setmode(_fileno(stderr), O_BINARY); -+#endif -+ - while (--argc) - { - char *arg = *++argv; -diff --git a/tests/gtdump.c b/tests/gtdump.c -index 927a47c..acb0f56 100644 ---- a/tests/gtdump.c -+++ b/tests/gtdump.c -@@ -16,6 +16,7 @@ - */ - #include "autoconf.h" - #include -+#include - #include - #include - #include "gdbm.h" -@@ -31,7 +32,12 @@ main (int argc, char **argv) - int flags = 0; - GDBM_FILE dbf; - int delim = '\t'; -- -+ -+#ifdef _WIN32 -+ _setmode(_fileno(stdin), O_BINARY); -+ _setmode(_fileno(stdout), O_BINARY); -+#endif -+ - while (--argc) - { - char *arg = *++argv; -diff --git a/tests/gtfetch.c b/tests/gtfetch.c -index 0c254b7..4f7135c 100644 ---- a/tests/gtfetch.c -+++ b/tests/gtfetch.c -@@ -16,6 +16,7 @@ - */ - #include "autoconf.h" - #include -+#include - #include - #include - #include "gdbm.h" -@@ -46,7 +47,12 @@ main (int argc, char **argv) - int data_z = 0; - int delim = 0; - int rc = 0; -- -+ -+#ifdef _WIN32 -+ _setmode(_fileno(stdout), O_BINARY); -+ _setmode(_fileno(stderr), O_BINARY); -+#endif -+ - while (--argc) - { - char *arg = *++argv; -diff --git a/tests/gtload.c b/tests/gtload.c -index b89ae1f..f0c09cf 100644 ---- a/tests/gtload.c -+++ b/tests/gtload.c -@@ -16,6 +16,7 @@ - */ - #include "autoconf.h" - #include -+#include - #include - #include - #include -@@ -39,7 +40,12 @@ main (int argc, char **argv) - int delim = '\t'; - int data_z = 0; - size_t mapped_size_max = 0; -- -+ -+#ifdef _WIN32 -+ _setmode(_fileno(stdin), O_BINARY); -+ _setmode(_fileno(stdout), O_BINARY); -+#endif -+ - while (--argc) - { - char *arg = *++argv; -diff --git a/tests/gtopt.c b/tests/gtopt.c -index 13ad8cc..535edbb 100644 ---- a/tests/gtopt.c -+++ b/tests/gtopt.c -@@ -178,7 +178,11 @@ init_maxmapsize (void *valptr, int valsize) int - test_maxmapsize (void *valptr) - { -+#ifdef _SC_PAGESIZE - size_t page_size = sysconf (_SC_PAGESIZE); -+#else -+ size_t page_size = 4096; -+#endif - size_t expected_size = ((mapped_size_max + page_size - 1) / page_size) * - page_size; - return (*(size_t*) valptr == expected_size) ? RES_PASS : RES_FAIL; -@@ -308,7 +312,11 @@ main (int argc, char **argv) - { - GDBM_FILE dbf; - struct optest *op; -- -+ -+#ifdef _WIN32 -+ _setmode(_fileno(stdout), O_BINARY); -+#endif -+ - progname = canonical_progname (argv[0]); - while (--argc) - { -diff --git a/tests/gtver.c b/tests/gtver.c -index 27fc0b9..cbfe794 100644 ---- a/tests/gtver.c -+++ b/tests/gtver.c -@@ -17,6 +17,7 @@ - #include "autoconf.h" - #include - #include -+#include - #include - #include "gdbm.h" - #include "progname.h" -@@ -31,6 +32,10 @@ main (int argc, char **argv) - const char *progname = canonical_progname (argv[0]); - int library = 0; - -+#ifdef _WIN32 -+ _setmode(_fileno(stdout), O_BINARY); -+#endif -+ +@@ -1620,8 +1620,6 @@ if (argc == 1) - { - printf ("%s\n", gdbm_version); -diff --git a/tests/num2word.c b/tests/num2word.c -index 4b55a35..551afd0 100644 ---- a/tests/num2word.c -+++ b/tests/num2word.c -@@ -17,6 +17,7 @@ - #include "autoconf.h" - #include - #include -+#include - #include - #include - #include -@@ -203,6 +204,10 @@ xstrtoul (char *arg, char **endp) - int - main (int argc, char **argv) + file_name = argv[0]; + +- signal (SIGPIPE, SIG_IGN); +- + memset (¶m, 0, sizeof (param)); + argmax = 0; + +--- src/util.c.orig 2015-01-01 23:01:56.323492992 +0100 ++++ src/util.c 2015-01-01 23:02:01.910583185 +0100 +@@ -16,7 +16,6 @@ + along with GDBM. If not, see . */ + + #include "gdbmtool.h" +-#include + + char * + mkfilename (const char *dir, const char *file, const char *suf) +@@ -45,6 +44,7 @@ + char * + tildexpand (char *s) { -+#ifdef _WIN32 -+ _setmode(_fileno(stdout), O_BINARY); ++#if 0 + if (s[0] == '~') + { + char *p = s + 1; +@@ -65,6 +65,7 @@ + if (pw) + return mkfilename (pw->pw_dir, p + len + 1, NULL); + } +#endif -+ - progname = argv[0]; - - if (argc == 1 || strcmp (argv[1], "-h") == 0) -diff --git a/tests/testsuite b/tests/testsuite -index 96ee5f9..8826999 100644 ---- a/tests/testsuite -+++ b/tests/testsuite -@@ -2069,7 +2069,7 @@ gtfetch test.db 0 - fi - at_status=$? - at_failed=false --echo >>"$at_stderr"; $as_echo "gtfetch: 0: not found -+echo >>"$at_stderr"; $as_echo "gtfetch.exe: 0: not found - " | \ - $at_diff - "$at_stderr" || at_failed=: - at_func_diff_devnull "$at_stdout" || at_failed=: -@@ -2200,7 +2200,7 @@ gtdel test.db 11 - fi - at_status=$? - at_failed=false --echo >>"$at_stderr"; $as_echo "gtdel: cannot delete 11: Item not found -+echo >>"$at_stderr"; $as_echo "gtdel.exe: cannot delete 11: Item not found - " | \ - $at_diff - "$at_stderr" || at_failed=: - at_func_diff_devnull "$at_stdout" || at_failed=: -@@ -2519,7 +2519,7 @@ dtfetch test 0 - fi - at_status=$? - at_failed=false --echo >>"$at_stderr"; $as_echo "dtfetch: 0: not found -+echo >>"$at_stderr"; $as_echo "dtfetch.exe: 0: not found - " | \ - $at_diff - "$at_stderr" || at_failed=: - at_func_diff_devnull "$at_stdout" || at_failed=: -@@ -2808,7 +2808,7 @@ dtdel test 11 - fi - at_status=$? - at_failed=false --echo >>"$at_stderr"; $as_echo "dtdel: cannot delete 11: Item not found -+echo >>"$at_stderr"; $as_echo "dtdel.exe: cannot delete 11: Item not found - " | \ - $at_diff - "$at_stderr" || at_failed=: - at_func_diff_devnull "$at_stdout" || at_failed=: --- -1.7.10.msysgit.1 + return estrdup (s); + } + +--- src/gdbm_load.c.orig 2015-01-01 23:04:32.733017885 +0100 ++++ src/gdbm_load.c 2015-01-01 23:05:01.929489199 +0100 +@@ -18,16 +18,12 @@ + # include "gdbm.h" + # include "gdbmapp.h" + # include "gdbmdefs.h" +-# include +-# include + + int replace = 0; + int meta_mask = 0; + int no_meta_option; + + int mode; +-uid_t owner_uid; +-gid_t owner_gid; + + char *parseopt_program_doc = "load a GDBM database from a file"; + char *parseopt_program_args = "FILE [DB_FILE]"; +@@ -45,6 +44,7 @@ + static int + set_meta_info (GDBM_FILE dbf) + { ++#if 0 + if (meta_mask) + { + int fd = gdbm_fdesc (dbf); +@@ -63,6 +63,7 @@ + return 1; + } + } ++#endif + return 0; + } + +@@ -139,6 +137,7 @@ + } + break; + ++#if 0 + case 'u': + { + size_t len; +@@ -198,6 +197,7 @@ + meta_mask |= GDBM_META_MASK_OWNER; + } + break; ++#endif + + case 'r': + replace = 1; From 29a2bd39f7779d201bb92e7c91a839e9ac2cb344 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 6 Jan 2015 23:42:31 +0000 Subject: [PATCH 0284/2060] kcwsh: Static build fixes --- .../0001-Add-std-c-11-globally.patch | 31 +++++++++++++++++ ...AUTOSTATICPLUGINS-don-t-force-lib-kc.patch | 34 +++++++++++++++++++ mingw-w64-kcwsh-qt5-git/PKGBUILD | 19 ++++++++--- 3 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-kcwsh-qt5-git/0001-Add-std-c-11-globally.patch create mode 100644 mingw-w64-kcwsh-qt5-git/0002-qt-frontend-Set-AUTOSTATICPLUGINS-don-t-force-lib-kc.patch diff --git a/mingw-w64-kcwsh-qt5-git/0001-Add-std-c-11-globally.patch b/mingw-w64-kcwsh-qt5-git/0001-Add-std-c-11-globally.patch new file mode 100644 index 0000000000..d0fc76367a --- /dev/null +++ b/mingw-w64-kcwsh-qt5-git/0001-Add-std-c-11-globally.patch @@ -0,0 +1,31 @@ +From 9056181cf8bfbcc580be3857f4291e040379f7ce Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 6 Jan 2015 11:46:51 +0000 +Subject: [PATCH 1/2] Add -std=c++11 globally + +As suggested by Kevin Funk in: + +http://mail.kde.org/pipermail/kde-windows/2014-November/009044.html +--- + CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c3df427..dc0ba42 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -20,6 +20,11 @@ if(MSVC) + add_definitions(/Zc:wchar_t-) + endif() + ++if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR ++CMAKE_CXX_COMPILER_ID STREQUAL "Intel") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") ++endif() ++ + set(KCWSH_VERSION "${KCWSH_MAJOR_VERSION}.${KCWSH_MINOR_VERSION}.${KCWSH_PATCH_VERSION}") + + configure_file(cmake/KcwSHConfigVersion.cmake.in +-- +2.2.1 + diff --git a/mingw-w64-kcwsh-qt5-git/0002-qt-frontend-Set-AUTOSTATICPLUGINS-don-t-force-lib-kc.patch b/mingw-w64-kcwsh-qt5-git/0002-qt-frontend-Set-AUTOSTATICPLUGINS-don-t-force-lib-kc.patch new file mode 100644 index 0000000000..aef636180d --- /dev/null +++ b/mingw-w64-kcwsh-qt5-git/0002-qt-frontend-Set-AUTOSTATICPLUGINS-don-t-force-lib-kc.patch @@ -0,0 +1,34 @@ +From 561bffe213fd217b48e27423eec340ef7b77c534 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 6 Jan 2015 12:20:01 +0000 +Subject: [PATCH 2/2] qt-frontend: Set AUTOSTATICPLUGINS, don't force lib + kcwshqt to be SHARED + +--- + frontends/qt/CMakeLists.txt | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/frontends/qt/CMakeLists.txt b/frontends/qt/CMakeLists.txt +index d5eb4ba..51a059d 100644 +--- a/frontends/qt/CMakeLists.txt ++++ b/frontends/qt/CMakeLists.txt +@@ -1,5 +1,7 @@ + # place for a qt based frontend + ++set(CMAKE_AUTOSTATICPLUGINS ON) ++ + if(QT4_FOUND) + include_directories(${QT_INCLUDES}) + +@@ -16,7 +18,7 @@ set(kcwshqt_SRCS + qterminalwidget.cpp + ) + +-add_library(kcwshqt SHARED ${kcwshqt_SRCS} ${kcwshqt_MOCS}) ++add_library(kcwshqt ${kcwshqt_SRCS} ${kcwshqt_MOCS}) + if(Qt5_FOUND) + target_link_libraries(kcwshqt kcwsh Qt5::Widgets Qt5::Core) + else() +-- +2.2.1 + diff --git a/mingw-w64-kcwsh-qt5-git/PKGBUILD b/mingw-w64-kcwsh-qt5-git/PKGBUILD index 340f124399..0c11b3776e 100644 --- a/mingw-w64-kcwsh-qt5-git/PKGBUILD +++ b/mingw-w64-kcwsh-qt5-git/PKGBUILD @@ -15,14 +15,24 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("${_realname}"::"git://anongit.kde.org/${_basename}.git") -md5sums=('SKIP') +source=("${_realname}"::"git://anongit.kde.org/${_basename}.git" + "0001-Add-std-c-11-globally.patch" + "0002-qt-frontend-Set-AUTOSTATICPLUGINS-don-t-force-lib-kc.patch") +md5sums=('SKIP' + '9a28e07b8f840054141a52c4f1bad6e3' + '9e266e7e507f23b33c15d07813c7d402') pkgver() { - cd "${srcdir}/${_realname}" + cd "${srcdir}"/${_realname} printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } +prepare() { + cd "${srcdir}"/${_realname} + git am "${srcdir}"/0001-Add-std-c-11-globally.patch + git am "${srcdir}"/0002-qt-frontend-Set-AUTOSTATICPLUGINS-don-t-force-lib-kc.patch +} + build() { local -a extra_config mkdir -p build-${CARCH}${_variant} @@ -35,6 +45,7 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX \ cmake ../${_realname} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ @@ -45,7 +56,7 @@ build() { -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ -G'MSYS Makefiles' - make + make VERBOSE=1 } package() { From 74e03b087789b6a0afc413c9860b851eba9d0995 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 7 Jan 2015 09:37:17 +0000 Subject: [PATCH 0285/2060] libkcw: Fix install location --- mingw-w64-libkcw-qt5-git/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libkcw-qt5-git/PKGBUILD b/mingw-w64-libkcw-qt5-git/PKGBUILD index 6200d6e291..2dcac04b73 100644 --- a/mingw-w64-libkcw-qt5-git/PKGBUILD +++ b/mingw-w64-libkcw-qt5-git/PKGBUILD @@ -35,7 +35,8 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_realname} \ + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX \ + cmake ../${_realname} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ -DLIB_INSTALL_DIR=lib \ @@ -45,7 +46,7 @@ build() { -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ -G'MSYS Makefiles' - make + make VERBOSE=1 } package() { From fb6ca8aa70d8684417c1381baa1b9f90316a6934 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Mon, 22 Dec 2014 15:52:52 -0200 Subject: [PATCH 0286/2060] Improvements for the perl package. * Better FHS directory structure. * Replace batch scripts with bare perl. * Fix CPAN module installation. * Fix links in HTML documentation. * Update to Perl 5.20. * Source code refactoring and update. The locations below are now used for @INC. The /mingw*/lib directory is not flooded anymore with perl libraries, they all reside now in the perl5 subfolder. - lib/perl5/core_perl - lib/perl5/site_perl - lib/perl5/vendor_perl Scripts such as perldoc and cpan are now bare perl scripts instead of batch files, this allows using them directly from bash. Dmake now ignores the SHELL environment variable, so unsetting it before dmake calls is not anymore needed. This fixes CPAN module installation since dmake now understands the makefiles. First run of cpan will not store full paths to external programs anymore, only the program names. For example, 32-bit bzip2 will not be used under the 64-bit shell. Dmake is now always selected as the make program, since GNU make doesn't like the generated makefiles. HTML documentation uses a base directory for links, this is now relocated on package installation so user can navigate through the pages in web browser. --- ...ake-mingw.patch => 001-detect-mingw.patch} | 0 ...2-disable-shell-environment-variable.patch | 26 ++ mingw-w64-dmake/PKGBUILD | 12 +- .../001-fhs-directory-structure.patch | 284 ++++++++++++++++++ .../002-relocate-html-documentation.patch | 12 + ...replace-batch-scripts-with-bare-perl.patch | 132 ++++++++ .../004-fix-cpan-external-programs.patch | 25 ++ mingw-w64-perl/PKGBUILD | 166 +++++----- .../perl-5.18.0-add-missing-mingw-libs.patch | 11 - mingw-w64-perl/perl-i686.install | 33 ++ mingw-w64-perl/perl-variables.patch | 46 --- mingw-w64-perl/perl-x86_64.install | 33 ++ mingw-w64-perl/perl.install | 21 -- 13 files changed, 640 insertions(+), 161 deletions(-) rename mingw-w64-dmake/{dmake-mingw.patch => 001-detect-mingw.patch} (100%) create mode 100644 mingw-w64-dmake/002-disable-shell-environment-variable.patch create mode 100644 mingw-w64-perl/001-fhs-directory-structure.patch create mode 100644 mingw-w64-perl/002-relocate-html-documentation.patch create mode 100644 mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch create mode 100644 mingw-w64-perl/004-fix-cpan-external-programs.patch delete mode 100644 mingw-w64-perl/perl-5.18.0-add-missing-mingw-libs.patch create mode 100644 mingw-w64-perl/perl-i686.install delete mode 100644 mingw-w64-perl/perl-variables.patch create mode 100644 mingw-w64-perl/perl-x86_64.install delete mode 100644 mingw-w64-perl/perl.install diff --git a/mingw-w64-dmake/dmake-mingw.patch b/mingw-w64-dmake/001-detect-mingw.patch similarity index 100% rename from mingw-w64-dmake/dmake-mingw.patch rename to mingw-w64-dmake/001-detect-mingw.patch diff --git a/mingw-w64-dmake/002-disable-shell-environment-variable.patch b/mingw-w64-dmake/002-disable-shell-environment-variable.patch new file mode 100644 index 0000000000..5ea4a23cf6 --- /dev/null +++ b/mingw-w64-dmake/002-disable-shell-environment-variable.patch @@ -0,0 +1,26 @@ +diff -aur 001/dmake.c 002/dmake.c +--- 001/dmake.c 2015-01-07 00:51:53.692179700 -0200 ++++ 002/dmake.c 2015-01-07 03:30:31.966593800 -0200 +@@ -81,6 +81,10 @@ + #include "extern.h" /* this includes config.h */ + #include "sysintf.h" + ++#ifdef _WIN32 ++#include ++#endif ++ + #ifndef MSDOS + #define USAGE \ + "Usage:\n%s [-P#] [-{f|K} file] [-{w|W} target ...] [macro[!][[*][+][:]]=value ...]\n" +@@ -144,6 +148,11 @@ + */ + DB_ENTER("main"); + ++#ifdef _WIN32 ++ /* The SHELL environment variable breaks dmake under MSYS2 */ ++ _putenv_s("SHELL", ""); ++#endif ++ + /* Initialize Global variables to their default values */ + Prolog(argc, argv); + /* Set internal macros to their initial values, some are changed diff --git a/mingw-w64-dmake/PKGBUILD b/mingw-w64-dmake/PKGBUILD index d6acd515bd..df7211b87b 100644 --- a/mingw-w64-dmake/PKGBUILD +++ b/mingw-w64-dmake/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=dmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.12.2 -pkgrel=2 +pkgrel=3 pkgdesc="Dmake is a make utility similar to GNU make or the Workshop dmake (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -13,13 +14,16 @@ options=('staticlibs' 'strip') license=('GPL') url="https://code.google.com/a/apache-extras.org/p/dmake/" source=("http://dmake.apache-extras.org.codespot.com/files/dmake-${pkgver}.tar.bz2" - "dmake-mingw.patch") + '001-detect-mingw.patch' + '002-disable-shell-environment-variable.patch') md5sums=('9194f727c31d1db18bf5dd02e7b2dd09' - 'a39a65958762b2877c994428978d0c3d') + 'a39a65958762b2877c994428978d0c3d' + '08c08cf2432bd7ffdce6759d4f6974d4') prepare() { cd ${srcdir}/dmake-${pkgver} - patch -p1 -i ${srcdir}/dmake-mingw.patch + patch -p1 -i ${srcdir}/001-detect-mingw.patch + patch -p1 -i ${srcdir}/002-disable-shell-environment-variable.patch } build() { diff --git a/mingw-w64-perl/001-fhs-directory-structure.patch b/mingw-w64-perl/001-fhs-directory-structure.patch new file mode 100644 index 0000000000..3bce11e72c --- /dev/null +++ b/mingw-w64-perl/001-fhs-directory-structure.patch @@ -0,0 +1,284 @@ +diff -aur old/win32/config.gc 001/win32/config.gc +--- old/win32/config.gc 2014-09-14 08:31:07.000000000 -0300 ++++ 001/win32/config.gc 2015-01-05 20:37:05.264648400 -0200 +@@ -23,8 +23,8 @@ + api_version='~PERL_API_VERSION~' + api_versionstring='~PERL_API_REVISION~.~PERL_API_VERSION~.~PERL_API_SUBVERSION~' + ar='~ARCHPREFIX~ar' +-archlib='~INST_TOP~~INST_VER~\lib~INST_ARCH~' +-archlibexp='~INST_TOP~~INST_VER~\lib~INST_ARCH~' ++archlib='~INST_TOP~\lib\perl5~INST_VER~\core_perl~INST_ARCH~' ++archlibexp='~INST_TOP~\lib\perl5~INST_VER~\core_perl~INST_ARCH~' + archname64='' + archname='MSWin32' + archobjs='' +@@ -32,8 +32,8 @@ + awk='awk' + baserev='5' + bash='' +-bin='~INST_TOP~~INST_VER~\bin~INST_ARCH~' +-binexp='~INST_TOP~~INST_VER~\bin~INST_ARCH~' ++bin='~INST_TOP~\bin~INST_VER_PERL~~INST_ARCH~' ++binexp='~INST_TOP~\bin~INST_VER_PERL~~INST_ARCH~' + bison='' + bootstrap_charset='undef' + byacc='byacc' +@@ -515,9 +515,9 @@ + d_usleep='undef' + d_usleepproto='undef' + d_ustat='undef' +-d_vendorarch='undef' ++d_vendorarch='define' + d_vendorbin='undef' +-d_vendorlib='undef' ++d_vendorlib='define' + d_vendorscript='undef' + d_vfork='undef' + d_void_closedir='undef' +@@ -719,33 +719,33 @@ + incpath='' + inews='' + initialinstalllocation='' +-installarchlib='~INST_TOP~~INST_VER~\lib~INST_ARCH~' +-installbin='~INST_TOP~~INST_VER~\bin~INST_ARCH~' ++installarchlib='~INST_TOP~\lib\perl5~INST_VER~\core_perl~INST_ARCH~' ++installbin='~INST_TOP~\bin~INST_VER_PERL~~INST_ARCH~' + installhtml1dir='' + installhtml3dir='' +-installhtmldir='~INST_TOP~~INST_VER~\html' +-installhtmlhelpdir='~INST_TOP~~INST_VER~\htmlhelp' +-installman1dir='~INST_TOP~~INST_VER~\man\man1' +-installman3dir='~INST_TOP~~INST_VER~\man\man3' ++installhtmldir='~INST_TOP~\share\doc\perl5~INST_VER~' ++installhtmlhelpdir='~INST_TOP~\share\doc\perl5~INST_VER~\htmlhelp' ++installman1dir='~INST_TOP~\share\man\man1~INST_VER_PERL~' ++installman3dir='~INST_TOP~\share\man\man3~INST_VER_PERL~' + installprefix='~INST_TOP~~INST_VER~' + installprefixexp='~INST_TOP~~INST_VER~' +-installprivlib='~INST_TOP~~INST_VER~\lib' ++installprivlib='~INST_TOP~\lib\perl5~INST_VER~\core_perl' + installscript='~INST_TOP~~INST_VER~\bin' +-installsitearch='~INST_TOP~\site~INST_VER~\lib~INST_ARCH~' +-installsitebin='~INST_TOP~~INST_VER~\bin~INST_ARCH~' ++installsitearch='~INST_TOP~\lib\perl5~INST_VER~\site_perl~INST_ARCH~' ++installsitebin='~INST_TOP~\bin~INST_VER_PERL~~INST_ARCH~' + installsitehtml1dir='' + installsitehtml3dir='' +-installsitelib='~INST_TOP~\site~INST_VER~\lib' ++installsitelib='~INST_TOP~\lib\perl5~INST_VER~\site_perl' + installsiteman1dir='' + installsiteman3dir='' + installsitescript='' + installstyle='lib' + installusrbinperl='undef' +-installvendorarch='' +-installvendorbin='' ++installvendorarch='~INST_TOP~\lib\perl5~INST_VER~\vendor_perl~INST_ARCH~' ++installvendorbin='~INST_TOP~\bin~INST_VER_PERL~~INST_ARCH~' + installvendorhtml1dir='' + installvendorhtml3dir='' +-installvendorlib='' ++installvendorlib='~INST_TOP~\lib\perl5~INST_VER~\vendor_perl' + installvendorman1dir='' + installvendorman3dir='' + installvendorscript='' +@@ -765,7 +765,7 @@ + lib_ext='.a' + libc='libmsvcrt.a' + libperl='libperl.a' +-libpth='' ++libpth='~INST_TOP~\lib\perl5~INST_VER~\core_perl' + libs='' + libsdirs='' + libsfiles='' +@@ -800,11 +800,11 @@ + mallocobj='malloc.o' + mallocsrc='malloc.c' + malloctype='void *' +-man1dir='~INST_TOP~~INST_VER~\man\man1' +-man1direxp='~INST_TOP~~INST_VER~\man\man1' ++man1dir='~INST_TOP~\share\man\man1~INST_VER_PERL~' ++man1direxp='~INST_TOP~\share\man\man1~INST_VER_PERL~' + man1ext='1' +-man3dir='~INST_TOP~~INST_VER~\man\man3' +-man3direxp='~INST_TOP~~INST_VER~\man\man3' ++man3dir='~INST_TOP~\share\man\man3~INST_VER_PERL~' ++man3direxp='~INST_TOP~\share\man\man3~INST_VER_PERL~' + man3ext='3' + mips_type='' + mistrustnm='' +@@ -858,7 +858,7 @@ + perl_static_inline='static __inline__' + perladmin='' + perllibs='~libs~' +-perlpath='~INST_TOP~~INST_VER~\bin~INST_ARCH~\perl.exe' ++perlpath='~INST_TOP~\bin~INST_VER_PERL~~INST_ARCH~\perl.exe' + pg='' + phostname='hostname' + pidtype='int' +@@ -867,8 +867,8 @@ + pr='' + prefix='~INST_TOP~' + prefixexp='~INST_TOP~' +-privlib='~INST_TOP~~INST_VER~\lib' +-privlibexp='~INST_TOP~~INST_VER~\lib' ++privlib='~INST_TOP~\lib\perl5~INST_VER~\core_perl' ++privlibexp='~INST_TOP~\lib\perl5~INST_VER~\core_perl' + procselfexe='' + prototype='define' + ptrsize='4' +@@ -934,17 +934,17 @@ + sig_num_init='0, 1, 2, 21, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0' + sig_size='27' + signal_t='void' +-sitearch='~INST_TOP~\site~INST_VER~\lib~INST_ARCH~' +-sitearchexp='~INST_TOP~\site~INST_VER~\lib~INST_ARCH~' +-sitebin='~INST_TOP~\site~INST_VER~\bin~INST_ARCH~' +-sitebinexp='~INST_TOP~\site~INST_VER~\bin~INST_ARCH~' ++sitearch='~INST_TOP~\lib\perl5~INST_VER~\site_perl~INST_ARCH~' ++sitearchexp='~INST_TOP~\lib\perl5~INST_VER~\site_perl~INST_ARCH~' ++sitebin='~INST_TOP~\bin~INST_VER_PERL~~INST_ARCH~' ++sitebinexp='~INST_TOP~\bin~INST_VER_PERL~~INST_ARCH~' + sitehtml1dir='' + sitehtml1direxp='' + sitehtml3dir='' + sitehtml3direxp='' +-sitelib='~INST_TOP~\site~INST_VER~\lib' ++sitelib='~INST_TOP~\lib\perl5~INST_VER~\site_perl' + sitelib_stem='' +-sitelibexp='~INST_TOP~\site~INST_VER~\lib' ++sitelibexp='~INST_TOP~\lib\perl5~INST_VER~\site_perl' + siteman1dir='' + siteman1direxp='' + siteman3dir='' +@@ -1054,17 +1054,17 @@ + uvuformat='"lu"' + uvxformat='"lx"' + vaproto='undef' +-vendorarch='' +-vendorarchexp='' +-vendorbin='' +-vendorbinexp='' ++vendorarch='~INST_TOP~\lib\perl5~INST_VER~\vendor_perl~INST_ARCH~' ++vendorarchexp='~INST_TOP~\lib\perl5~INST_VER~\vendor_perl~INST_ARCH~' ++vendorbin='~INST_TOP~\bin~INST_VER_PERL~~INST_ARCH~' ++vendorbinexp='~INST_TOP~\bin~INST_VER_PERL~~INST_ARCH~' + vendorhtml1dir=' ' + vendorhtml1direxp='' + vendorhtml3dir=' ' + vendorhtml3direxp='' +-vendorlib='' ++vendorlib='~INST_TOP~\lib\perl5~INST_VER~\vendor_perl' + vendorlib_stem='' +-vendorlibexp='' ++vendorlibexp='~INST_TOP~\lib\perl5~INST_VER~\vendor_perl' + vendorman1dir=' ' + vendorman1direxp='' + vendorman3dir=' ' +diff -aur old/win32/makefile.mk 001/win32/makefile.mk +--- old/win32/makefile.mk 2014-09-14 08:31:07.000000000 -0300 ++++ 001/win32/makefile.mk 2015-01-05 20:37:05.274414000 -0200 +@@ -44,6 +44,7 @@ + # path that includes an arbitrary version string. + # + #INST_VER *= \5.20.1 ++#INST_VER_PERL *= \perl-5.20.1 + + # + # Comment this out if you DON'T want your perl installation to have +@@ -403,10 +404,10 @@ + # + INST_SCRIPT = $(INST_TOP)$(INST_VER)\bin + INST_BIN = $(INST_SCRIPT)$(INST_ARCH) +-INST_LIB = $(INST_TOP)$(INST_VER)\lib ++INST_LIB = $(INST_TOP)$(INST_VER)\lib\perl5\core_perl + INST_ARCHLIB = $(INST_LIB)$(INST_ARCH) + INST_COREDIR = $(INST_ARCHLIB)\CORE +-INST_HTML = $(INST_TOP)$(INST_VER)\html ++INST_HTML = $(INST_TOP)$(INST_VER)\share\doc\perl5 + + # + # Programs to compile, build .lib files and link +@@ -951,7 +952,7 @@ + libs=$(LIBFILES:f) ~ \ + incpath=$(CCINCDIR) ~ \ + libperl=$(PERLIMPLIB:f) ~ \ +- libpth=$(CCLIBDIR);$(EXTRALIBDIRS) ~ \ ++ libpth=$(INST_LIB);$(EXTRALIBDIRS) ~ \ + libc=$(LIBC) ~ \ + make=dmake ~ \ + _o=$(o) ~ \ +@@ -1392,12 +1393,12 @@ + copy ..\README.vos ..\pod\perlvos.pod + copy ..\README.win32 ..\pod\perlwin32.pod + copy ..\pod\perldelta.pod ..\pod\perl5201delta.pod +- $(PERLEXE) $(PL2BAT) $(UTILS) ++ $(PERLEXE) -I..\lib $(PL2BAT) $(UTILS) + $(MINIPERL) -I..\lib ..\autodoc.pl .. + $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. + + ..\pod\perltoc.pod: $(PERLEXE) Extensions Extensions_nonxs +- $(PERLEXE) -f ..\pod\buildtoc -q ++ $(PERLEXE) -I..\lib -Ilib -f ..\pod\buildtoc -q + + # Note that the pod cleanup in this next section is parsed (and regenerated + # by pod/buildtoc so please check that script before making changes here +diff -aur old/win32/win32.c 001/win32/win32.c +--- old/win32/win32.c 2014-09-14 08:31:07.000000000 -0300 ++++ 001/win32/win32.c 2015-01-05 20:37:05.286132800 -0200 +@@ -373,7 +373,11 @@ + EXTERN_C char * + win32_get_privlib(const char *pl, STRLEN *const len) + { ++#ifdef PERL_IS_MINIPERL + char *stdlib = "lib"; ++#else ++ char *stdlib = "lib/perl5/core_perl"; ++#endif + char buffer[MAX_PATH+1]; + SV *sv = NULL; + +@@ -401,7 +405,11 @@ + + /* $xlib .= + * ";$EMD/" . ((-d $EMD/../../../$]) ? "../../.." : "../.."). "/$libname/$]/lib"; */ ++#ifdef PERL_IS_MINIPERL + sprintf(pathstr, "%s/%s/lib", libname, pl); ++#else ++ sprintf(pathstr, "%s/%s", libname, pl); ++#endif + (void)get_emd_part(&sv1, NULL, pathstr, ARCHNAME, "bin", pl, NULL); + + /* $HKCU{$xlib} || $HKLM{$xlib} . ---; */ +@@ -409,7 +417,11 @@ + + /* $xlib .= + * ";$EMD/" . ((-d $EMD/../../../$]) ? "../../.." : "../.."). "/$libname/lib"; */ ++#ifdef PERL_IS_MINIPERL + sprintf(pathstr, "%s/lib", libname); ++#else ++ sprintf(pathstr, "%s", libname); ++#endif + (void)get_emd_part(&sv2, NULL, pathstr, ARCHNAME, "bin", pl, NULL); + + if (!sv1 && !sv2) +@@ -430,11 +442,19 @@ + EXTERN_C char * + win32_get_sitelib(const char *pl, STRLEN *const len) + { ++#ifdef PERL_IS_MINIPERL + return win32_get_xlib(pl, "sitelib", "site", len); ++#else ++ return win32_get_xlib(pl, "sitelib", "lib/perl5/site_perl", len); ++#endif + } + + #ifndef PERL_VENDORLIB_NAME ++#ifdef PERL_IS_MINIPERL + # define PERL_VENDORLIB_NAME "vendor" ++#else ++# define PERL_VENDORLIB_NAME "lib/perl5/vendor_perl" ++#endif + #endif + + EXTERN_C char * diff --git a/mingw-w64-perl/002-relocate-html-documentation.patch b/mingw-w64-perl/002-relocate-html-documentation.patch new file mode 100644 index 0000000000..1d754d5a1c --- /dev/null +++ b/mingw-w64-perl/002-relocate-html-documentation.patch @@ -0,0 +1,12 @@ +diff -aur 001/win32/makefile.mk 002/win32/makefile.mk +--- 001/win32/makefile.mk 2015-01-05 20:37:05.274414000 -0200 ++++ 002/win32/makefile.mk 2015-01-05 20:37:54.890625000 -0200 +@@ -1349,7 +1349,7 @@ + + doc: $(PERLEXE) ..\pod\perltoc.pod + $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=$(HTMLDIR) \ +- --podpath=pod:lib:utils --htmlroot="file://$(INST_HTML:s,:,|,)"\ ++ --podpath=pod:lib:utils --htmlroot="@PERL_RELOCATE_HTML@/share/doc/perl5" \ + --recurse + + ..\utils\Makefile: $(CONFIGPM) ..\utils\Makefile.PL diff --git a/mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch b/mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch new file mode 100644 index 0000000000..7d10c641e3 --- /dev/null +++ b/mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch @@ -0,0 +1,132 @@ +diff -aur 002/installperl 003/installperl +--- 002/installperl 2015-01-05 20:37:16.838867100 -0200 ++++ 003/installperl 2015-01-05 20:38:45.015625000 -0200 +@@ -19,7 +19,7 @@ + if ($Is_VMS) { eval 'use VMS::Filespec;' } + } + +-my $scr_ext = ($Is_VMS ? '.Com' : $Is_W32 ? '.bat' : ''); ++my $scr_ext = ($Is_VMS ? '.Com' : ''); + + use File::Find; + use File::Compare; +diff -aur 002/win32/bin/pl2bat.pl 003/win32/bin/pl2bat.pl +--- 002/win32/bin/pl2bat.pl 2015-01-05 20:37:16.143554600 -0200 ++++ 003/win32/bin/pl2bat.pl 2015-01-05 20:38:45.023437500 -0200 +@@ -1,5 +1,4 @@ +- eval 'exec perl -x -S "$0" ${1+"$@"}' +- if 0; # In case running under some shell ++#!perl -w + + require 5; + use Getopt::Std; +diff -aur 002/win32/bin/search.pl 003/win32/bin/search.pl +--- 002/win32/bin/search.pl 2015-01-05 20:37:16.129882800 -0200 ++++ 003/win32/bin/search.pl 2015-01-05 20:38:45.046875000 -0200 +@@ -1,4 +1,4 @@ +-#!/usr/local/bin/perl -w ++#!perl -w + 'di'; + 'ig00'; + ############################################################################## +diff -aur 002/win32/makefile.mk 003/win32/makefile.mk +--- 002/win32/makefile.mk 2015-01-05 20:37:54.890625000 -0200 ++++ 003/win32/makefile.mk 2015-01-05 21:28:09.955078100 -0200 +@@ -723,43 +723,6 @@ + PERLDEP = perldll.def + + +-PL2BAT = bin\pl2bat.pl +- +-UTILS = \ +- ..\utils\h2ph \ +- ..\utils\splain \ +- ..\utils\perlbug \ +- ..\utils\pl2pm \ +- ..\utils\c2ph \ +- ..\utils\pstruct \ +- ..\utils\h2xs \ +- ..\utils\perldoc \ +- ..\utils\perlivp \ +- ..\utils\libnetcfg \ +- ..\utils\enc2xs \ +- ..\utils\piconv \ +- ..\utils\config_data \ +- ..\utils\corelist \ +- ..\utils\cpan \ +- ..\utils\xsubpp \ +- ..\utils\pod2html \ +- ..\utils\prove \ +- ..\utils\ptar \ +- ..\utils\ptardiff \ +- ..\utils\ptargrep \ +- ..\utils\zipdetails \ +- ..\utils\shasum \ +- ..\utils\instmodsh \ +- ..\utils\json_pp \ +- ..\x2p\find2perl \ +- ..\x2p\psed \ +- ..\x2p\s2p \ +- bin\exetype.pl \ +- bin\runperl.pl \ +- bin\pl2bat.pl \ +- bin\perlglob.pl \ +- bin\search.pl +- + .IF "$(CCTYPE)" == "GCC" + + CFGSH_TMPL = config.gc +@@ -1393,7 +1356,6 @@ + copy ..\README.vos ..\pod\perlvos.pod + copy ..\README.win32 ..\pod\perlwin32.pod + copy ..\pod\perldelta.pod ..\pod\perl5201delta.pod +- $(PERLEXE) -I..\lib $(PL2BAT) $(UTILS) + $(MINIPERL) -I..\lib ..\autodoc.pl .. + $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. + +@@ -1530,7 +1492,44 @@ + $(XCOPY) $(GLOBEXE) $(INST_BIN)\*.* + if exist ..\perl*.pdb $(XCOPY) ..\perl*.pdb $(INST_BIN)\*.* + if exist ..\x2p\a2p.pdb $(XCOPY) ..\x2p\a2p.pdb $(INST_BIN)\*.* +- $(XCOPY) bin\*.bat $(INST_SCRIPT)\*.* ++ $(XCOPY) ..\utils\h2ph $(INST_SCRIPT) ++ $(XCOPY) ..\utils\splain $(INST_SCRIPT) ++ $(XCOPY) ..\utils\perlbug $(INST_SCRIPT) ++ $(XCOPY) ..\utils\pl2pm $(INST_SCRIPT) ++ $(XCOPY) ..\utils\c2ph $(INST_SCRIPT) ++ $(XCOPY) ..\utils\pstruct $(INST_SCRIPT) ++ $(XCOPY) ..\utils\h2xs $(INST_SCRIPT) ++ $(XCOPY) ..\utils\perldoc $(INST_SCRIPT) ++ $(XCOPY) ..\utils\perlivp $(INST_SCRIPT) ++ $(XCOPY) ..\utils\libnetcfg $(INST_SCRIPT) ++ $(XCOPY) ..\utils\enc2xs $(INST_SCRIPT) ++ $(XCOPY) ..\utils\piconv $(INST_SCRIPT) ++ $(XCOPY) ..\utils\config_data $(INST_SCRIPT) ++ $(XCOPY) ..\utils\corelist $(INST_SCRIPT) ++ $(XCOPY) ..\utils\cpan $(INST_SCRIPT) ++ $(XCOPY) ..\utils\xsubpp $(INST_SCRIPT) ++ $(XCOPY) ..\utils\pod2html $(INST_SCRIPT) ++ $(XCOPY) ..\utils\prove $(INST_SCRIPT) ++ $(XCOPY) ..\utils\ptar $(INST_SCRIPT) ++ $(XCOPY) ..\utils\ptardiff $(INST_SCRIPT) ++ $(XCOPY) ..\utils\ptargrep $(INST_SCRIPT) ++ $(XCOPY) ..\utils\zipdetails $(INST_SCRIPT) ++ $(XCOPY) ..\utils\shasum $(INST_SCRIPT) ++ $(XCOPY) ..\utils\instmodsh $(INST_SCRIPT) ++ $(XCOPY) ..\utils\json_pp $(INST_SCRIPT) ++ $(XCOPY) ..\x2p\find2perl $(INST_SCRIPT) ++ $(XCOPY) ..\x2p\psed $(INST_SCRIPT) ++ $(XCOPY) ..\x2p\s2p $(INST_SCRIPT) ++ $(XCOPY) bin\exetype.pl $(INST_SCRIPT) ++ $(XCOPY) bin\runperl.pl $(INST_SCRIPT) ++ $(XCOPY) bin\pl2bat.pl $(INST_SCRIPT) ++ $(XCOPY) bin\perlglob.pl $(INST_SCRIPT) ++ $(XCOPY) bin\search.pl $(INST_SCRIPT) ++ rename $(INST_SCRIPT)\exetype.pl exetype ++ rename $(INST_SCRIPT)\runperl.pl runperl ++ rename $(INST_SCRIPT)\pl2bat.pl pl2bat ++ rename $(INST_SCRIPT)\perlglob.pl perlglob ++ rename $(INST_SCRIPT)\search.pl search + + installhtml : doc + $(RCOPY) $(HTMLDIR)\*.* $(INST_HTML)\*.* diff --git a/mingw-w64-perl/004-fix-cpan-external-programs.patch b/mingw-w64-perl/004-fix-cpan-external-programs.patch new file mode 100644 index 0000000000..6aa6267364 --- /dev/null +++ b/mingw-w64-perl/004-fix-cpan-external-programs.patch @@ -0,0 +1,25 @@ +diff -aur 003/cpan/CPAN/lib/CPAN/FirstTime.pm 004/cpan/CPAN/lib/CPAN/FirstTime.pm +--- 003/cpan/CPAN/lib/CPAN/FirstTime.pm 2015-01-06 21:07:13.509562500 -0200 ++++ 004/cpan/CPAN/lib/CPAN/FirstTime.pm 2015-01-07 09:17:32.727227100 -0200 +@@ -1470,6 +1470,21 @@ + next; + } + ++ # Let's not store full paths to programs in MSYS2 because ++ # paths change across shells. For example let's not use 32-bit ++ # programs in the 64-bit shell. ++ ++ if ($^O eq 'MSWin32') { ++ if ($progname eq 'make') { ++ # Make doesn't like the cmd.exe-friendly makefiles that are ++ # created when installing modules, so let's stick to dmake. ++ $CPAN::Config->{$progname} = 'dmake'; ++ } else { ++ $CPAN::Config->{$progname} = $progname; ++ } ++ next; ++ } ++ + my $progcall = $progname; + unless ($matcher) { + # we really don't need ncftp if we have ncftpget, but diff --git a/mingw-w64-perl/PKGBUILD b/mingw-w64-perl/PKGBUILD index 2cd525ab7a..4351719f55 100644 --- a/mingw-w64-perl/PKGBUILD +++ b/mingw-w64-perl/PKGBUILD @@ -1,92 +1,100 @@ -# Maintainer: Alexey Pavlov +# Maintainer: Alexey Pavlov +# Contributor: Renato Silva -_realname=perl +_name=perl +url='http://www.perl.org' +pkgdesc='A highly capable, feature-rich programming language (mingw-w64)' +license=(GPL PerlArtistic) +arch=(any) +pkgver=5.20.1 +pkgrel=1 + +install="perl-${CARCH}.install" +options=(staticlibs strip '!purge') +pkgname="${MINGW_PACKAGE_PREFIX}-${_name}" +makedepends=(${MINGW_PACKAGE_PREFIX}-gcc) +depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs + ${MINGW_PACKAGE_PREFIX}-winpthreads + ${MINGW_PACKAGE_PREFIX}-dmake) -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.18.1 -pkgrel=3 -pkgdesc="A highly capable, feature-rich programming language (mingw-w64)" -arch=('any') -url="http://www.perl.org" -license=('GPL' 'PerlArtistic') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-dmake") -depends=("${MINGW_PACKAGE_PREFIX}-winpthreads") -options=('staticlibs' 'strip' '!purge') -install=perl.install source=("http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2" - perl-5.18.0-add-missing-mingw-libs.patch - perl-variables.patch) -md5sums=('4ec1a3f3824674552e749ae420c5e68c' - '0b4e643fe4c54512d0c5833665e88f5e' - 'b9cfc63845749f8ebddb0219208eed84') + 001-fhs-directory-structure.patch + 002-relocate-html-documentation.patch + 003-replace-batch-scripts-with-bare-perl.patch + 004-fix-cpan-external-programs.patch) + +md5sums=(ede5166f949d9a07163bc5b086be9759 + a5d3b17a98cb29226cf1b2ec2b760302 + e5fcd10ee424f2f19188d0e63cf2305c + 9db723a4fadcad7169c0617ff408c753 + cd49b29a251adcc21fe87c66110cdc3a) prepare() { - cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/perl-5.18.0-add-missing-mingw-libs.patch - patch -p1 -i ${srcdir}/perl-variables.patch + cd "${srcdir}/${_name}-${pkgver}" + attrib.exe -r //s + patch -p1 < "${startdir}"/001-fhs-directory-structure.patch + patch -p1 < "${startdir}"/002-relocate-html-documentation.patch + patch -p1 < "${startdir}"/003-replace-batch-scripts-with-bare-perl.patch + patch -p1 < "${startdir}"/004-fix-cpan-external-programs.patch +} + +_build() { + local win64 + unset SHELL + cd "${srcdir}/build-${CARCH}-${_name}-${pkgver}/win32" + [[ "$(uname --machine)" = x86_64 && "${CARCH}" = i686 ]] && win64="WIN64=undef" + PATH="${MINGW_PREFIX}/bin:${SYSTEMROOT}/system32:${SYSTEMROOT}:${PATH}" dmake \ + CCHOME="$(cygpath -w "${MINGW_PREFIX}")" INST_TOP="$(cygpath -w "${pkgdir}${MINGW_PREFIX}")" ${win64} ${_target} } build() { - cp -r ${srcdir}/${_realname}-${pkgver} ${srcdir}/build-${CARCH} - cd ${srcdir}/build-${CARCH}/win32 - - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - local DRV=`expr substr $PREFIX_WIN 1 2` - local NOTDRV=${PREFIX_WIN#$DRV} - NOTDRV=$(echo $NOTDRV | sed 's|/|\\\\|g') - local MINGWHOME_WIN_P=$(echo $PREFIX_WIN | sed 's|/|\\\\|g') - - local COMMA= - local EXTRA=$PREFIX_WIN/${MINGW_CHOST}/lib - [[ ${CARCH} == i686 ]] && { - COMMA="" - } || { - COMMA="#" - } - EXTRA=$(echo $EXTRA | sed 's|/|\\\\|g') - - cat makefile.mk | sed 's|%DRV%|'"$DRV"'|g' \ - | sed -e 's|%NODRV%|'"$NOTDRV"'|g' \ - | sed -e 's|%COMW64%|'"$COMMA"'|g' \ - | sed -e 's|%MINGWHOME%|'"$MINGWHOME_WIN_P"'|g' \ - | sed -e 's|%THIRDPARTY_LIBS%|'"$EXTRA"'|g' > makefile.tmp - - rm -f makefile.mk - mv makefile.tmp makefile.mk - - pushd $SYSTEMROOT > /dev/null - local WIN_SYS=`pwd` - popd > /dev/null - local WINDOWS_PART_PATH=$WIN_SYS/system32:$WIN_SYS - unset SHELL - PATH=${MINGW_PREFIX}/bin:${WINDOWS_PART_PATH}:${PATH} ${MINGW_PREFIX}/bin/dmake + msg2 "Synchronizing build directory" + rsync --recursive --times "${srcdir}/${_name}-${pkgver}"/* "${srcdir}/build-${CARCH}-${_name}-${pkgver}" + _build } package() { - cd "${srcdir}/build-${CARCH}/win32" - pushd $SYSTEMROOT > /dev/null - local WIN_SYS=`pwd` - popd > /dev/null - local WINDOWS_PART_PATH=$WIN_SYS/system32:$WIN_SYS - PATH=${MINGW_PREFIX}/bin:${WINDOWS_PART_PATH}:${PATH} ${MINGW_PREFIX}/bin/dmake install - - # fix permissions - find ${pkgdir}${MINGW_PREFIX} -type f \( -name "*.bat" -o -name "*.dll" -o -name "*.exe" \) | xargs chmod 0755 - find ${pkgdir}${MINGW_PREFIX} -type f \( -name "*.a" -o -name "*.pm" -o -name "*.pl" -o -name "*.h" \) | xargs chmod 0644 + _target=install _build + cd "${pkgdir}${MINGW_PREFIX}" + mkdir -p lib/perl5/vendor_perl + attrib.exe -r //s - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - PREFIX_WIN=${PREFIX_WIN//\//\\\\\\\\} - - echo "RELOCATE is ${PREFIX_WIN}" - sed -i "s|${PREFIX_WIN}|%RELOCATE%|g" \ - ${pkgdir}${MINGW_PREFIX}/lib/Config.pm \ - ${pkgdir}${MINGW_PREFIX}/lib/Config_heavy.pl \ - ${pkgdir}${MINGW_PREFIX}/lib/CORE/config.h + # Path relocation. This is done by replacing hard-coded paths with relocate + # patterns that will be resolved on package installation. The HTML + # documentation is handled with a patch, the rest is handled below. + + local root_pattern + local root_pattern_double + local pkgdir_pattern + local pkgdir_pattern_double + + root_pattern=$(cygpath -w /) + root_pattern="${root_pattern%\\}" + root_pattern="${root_pattern//\\/\\\\}" + root_pattern_double="${root_pattern//\\\\/\\\\\\\\}" + pkgdir_pattern=$(cygpath -w "${pkgdir}") + pkgdir_pattern="${pkgdir_pattern//\\/\\\\}" + pkgdir_pattern_double="${pkgdir_pattern//\\\\/\\\\\\\\}" + + msg2 "Creating relocate patterns for:" + printf " ${root_pattern}\n" + printf " ${root_pattern_double}\n" + printf " ${pkgdir_pattern}\n" + printf " ${pkgdir_pattern_double}\n" + + sed -i "s/${pkgdir_pattern}/@PERL_RELOCATE@/g" lib/perl5/core_perl/.packlist + sed -i "s/${pkgdir_pattern_double}/@PERL_RELOCATE_DOUBLE@/g" lib/perl5/core_perl/CORE/config.h + sed -i "s/${root_pattern}/@PERL_RELOCATE@/g" lib/perl5/core_perl/Config.pm + sed -i "s/${root_pattern_double}/@PERL_RELOCATE_DOUBLE@/g" lib/perl5/core_perl/Config.pm + sed -i "s/${pkgdir_pattern_double}/@PERL_RELOCATE_DOUBLE@/g" lib/perl5/core_perl/Config.pm + sed -i "s/${root_pattern}/@PERL_RELOCATE@/g" lib/perl5/core_perl/Config_heavy.pl + sed -i "s/${root_pattern_double}/@PERL_RELOCATE_DOUBLE@/g" lib/perl5/core_perl/Config_heavy.pl + sed -i "s/${pkgdir_pattern}/@PERL_RELOCATE@/g" lib/perl5/core_perl/Config_heavy.pl + + for script in \ + c2ph config_data corelist cpan enc2xs exetype find2perl h2ph h2xs instmodsh json_pp libnetcfg perlbug \ + perldoc perlglob perlivp perlthanks piconv pl2bat pl2pm pod2html pod2man pod2text pod2usage podchecker \ + podselect prove psed pstruct ptar ptardiff ptargrep runperl s2p search shasum splain xsubpp zipdetails ; do + sed -i "s/${pkgdir_pattern}/@PERL_RELOCATE@/g" bin/${script} + done } diff --git a/mingw-w64-perl/perl-5.18.0-add-missing-mingw-libs.patch b/mingw-w64-perl/perl-5.18.0-add-missing-mingw-libs.patch deleted file mode 100644 index 1e87686c6e..0000000000 --- a/mingw-w64-perl/perl-5.18.0-add-missing-mingw-libs.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- perl-5.18.0/win32/makefile.mk.orig 2013-05-08 01:49:53 +0400 -+++ perl-5.18.0/win32/makefile.mk 2013-05-19 21:54:36 +0400 -@@ -1505,6 +1505,8 @@ - if exist $(CCDLLDIR)\libgcc_s_sjlj-1.dll $(XCOPY) $(CCDLLDIR)\libgcc_s_sjlj-1.dll ..\t\$(NULL) - if exist $(CCDLLDIR)\libgcc_s_dw2-1.dll $(XCOPY) $(CCDLLDIR)\libgcc_s_dw2-1.dll ..\t\$(NULL) - if exist $(CCDLLDIR)\libstdc++-6.dll $(XCOPY) $(CCDLLDIR)\libstdc++-6.dll ..\t\$(NULL) -+ if exist $(CCDLLDIR)\libwinpthread-1.dll $(XCOPY) $(CCDLLDIR)\libwinpthread-1.dll ..\t\$(NULL) -+ if exist $(CCDLLDIR)\libgcc_s_seh-1.dll $(XCOPY) $(CCDLLDIR)\libgcc_s_seh-1.dll ..\t\$(NULL) - .ENDIF - - test : test-prep diff --git a/mingw-w64-perl/perl-i686.install b/mingw-w64-perl/perl-i686.install new file mode 100644 index 0000000000..a56faec631 --- /dev/null +++ b/mingw-w64-perl/perl-i686.install @@ -0,0 +1,33 @@ +_relocating() { + printf "%6s" + printf "relocating ${1}\n" +} + +post_install() { + basedir="$(pwd -W)" + basedir="${basedir%/}" + basedir="${basedir//\//\\\\}" + basedir_double="${basedir//\\\\/\\\\\\\\}" + basedir_html="${basedir//\\\\/\\\/}" + + _relocating configuration + sed -i "s/@PERL_RELOCATE@/${basedir}/g" /mingw32/lib/perl5/core_perl/.packlist + sed -i "s/@PERL_RELOCATE@/${basedir}/g" /mingw32/lib/perl5/core_perl/Config_heavy.pl + sed -i "s/@PERL_RELOCATE_DOUBLE@/${basedir_double}/g" /mingw32/lib/perl5/core_perl/Config.pm + sed -i "s/@PERL_RELOCATE_DOUBLE@/${basedir_double}/g" /mingw32/lib/perl5/core_perl/CORE/config.h + + _relocating scripts + for script in c2ph config_data corelist cpan enc2xs exetype find2perl h2ph h2xs instmodsh json_pp libnetcfg perlbug \ + perldoc perlglob perlivp perlthanks piconv pl2bat pl2pm pod2html pod2man pod2text pod2usage podchecker podselect \ + prove psed pstruct ptar ptardiff ptargrep runperl s2p search shasum splain xsubpp zipdetails ; do + sed -i "s/@PERL_RELOCATE@/${basedir}/g" /mingw32/bin/${script} + done + + _relocating documentation + find /mingw32/share/doc/perl5 -type f -name '*.html' -exec \ + sed -i "s/@PERL_RELOCATE_HTML@/file:\\/\\/\\/${basedir_html}\\/mingw32/g" '{}' \; +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-perl/perl-variables.patch b/mingw-w64-perl/perl-variables.patch deleted file mode 100644 index e380aee3a0..0000000000 --- a/mingw-w64-perl/perl-variables.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- perl-5.18.1/win32/makefile.mk.orig 2013-08-12 06:44:49.000000000 +0400 -+++ perl-5.18.1/win32/makefile.mk 2013-12-01 11:40:54.632600000 +0400 -@@ -21,13 +21,13 @@ - # Set these to wherever you want "dmake install" to put your - # newly built perl. - # --INST_DRV *= c: --INST_TOP *= $(INST_DRV)\perl -+INST_DRV *= %DRV% -+INST_TOP *= $(INST_DRV)%NODRV% - - # - # Uncomment if you want to build a 32-bit Perl using a 32-bit compiler - # on a 64-bit version of Windows. --#WIN64 *= undef -+%COMW64%WIN64 *= undef - - # - # Comment this out if you DON'T want your perl installation to be versioned. -@@ -97,7 +97,7 @@ - # Uncomment this if you're building a 32-bit perl and want 64-bit integers. - # (If you're building a 64-bit perl then you will have 64-bit integers whether - # or not this is uncommented.) --#USE_64_BIT_INT *= define -+USE_64_BIT_INT *= define - - # - # uncomment exactly one of the following -@@ -187,7 +187,7 @@ - # not be quoted) - # - .IF "$(CCTYPE)" == "GCC" --CCHOME *= C:\MinGW -+CCHOME *= %MINGWHOME% - .ELSE - CCHOME *= $(MSVCDIR) - .ENDIF -@@ -240,7 +240,7 @@ - # specify semicolon-separated list of extra directories that modules will - # look for libraries (spaces in path names need not be quoted) - # --EXTRALIBDIRS *= -+EXTRALIBDIRS *= %THIRDPARTY_LIBS% - - # - # set this to point to cmd.exe (only needed if you use some diff --git a/mingw-w64-perl/perl-x86_64.install b/mingw-w64-perl/perl-x86_64.install new file mode 100644 index 0000000000..f2eb3576d8 --- /dev/null +++ b/mingw-w64-perl/perl-x86_64.install @@ -0,0 +1,33 @@ +_relocating() { + printf "%6s" + printf "relocating ${1}\n" +} + +post_install() { + basedir="$(pwd -W)" + basedir="${basedir%/}" + basedir="${basedir//\//\\\\}" + basedir_double="${basedir//\\\\/\\\\\\\\}" + basedir_html="${basedir//\\\\/\\\/}" + + _relocating configuration + sed -i "s/@PERL_RELOCATE@/${basedir}/g" /mingw64/lib/perl5/core_perl/.packlist + sed -i "s/@PERL_RELOCATE@/${basedir}/g" /mingw64/lib/perl5/core_perl/Config_heavy.pl + sed -i "s/@PERL_RELOCATE_DOUBLE@/${basedir_double}/g" /mingw64/lib/perl5/core_perl/Config.pm + sed -i "s/@PERL_RELOCATE_DOUBLE@/${basedir_double}/g" /mingw64/lib/perl5/core_perl/CORE/config.h + + _relocating scripts + for script in c2ph config_data corelist cpan enc2xs exetype find2perl h2ph h2xs instmodsh json_pp libnetcfg perlbug \ + perldoc perlglob perlivp perlthanks piconv pl2bat pl2pm pod2html pod2man pod2text pod2usage podchecker podselect \ + prove psed pstruct ptar ptardiff ptargrep runperl s2p search shasum splain xsubpp zipdetails ; do + sed -i "s/@PERL_RELOCATE@/${basedir}/g" /mingw64/bin/${script} + done + + _relocating documentation + find /mingw64/share/doc/perl5 -type f -name '*.html' -exec \ + sed -i "s/@PERL_RELOCATE_HTML@/file:\\/\\/\\/${basedir_html}\\/mingw64/g" '{}' \; +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-perl/perl.install b/mingw-w64-perl/perl.install deleted file mode 100644 index dc449e3d2d..0000000000 --- a/mingw-w64-perl/perl.install +++ /dev/null @@ -1,21 +0,0 @@ - -post_install() { - for dirr in mingw32 mingw64; do - [[ -d ${dirr} ]] && { - cd ${dirr} - _PW=$(pwd -W) - cd - - _PW=${_PW//\//\\\\\\\\} - [[ -f ${dirr}/lib/Config.pm ]] && { - sed -i "s|%RELOCATE%|${_PW}|g" \ - ${dirr}/lib/Config.pm \ - ${dirr}/lib/Config_heavy.pl \ - ${dirr}/lib/CORE/config.h - } - } - done -} - -post_upgrade() { - post_install -} From 87f1688787623acb2152d08f4eb49170a85f707c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98ystein=20Krog?= Date: Sun, 4 Jan 2015 15:47:56 +0100 Subject: [PATCH 0287/2060] cgal: Add convex-hull fix patch See: http://cgal-discuss.949826.n4.nabble.com/Epick-convex-hull-3-assertion-td4660264.html --- mingw-w64-cgal/PKGBUILD | 7 +- mingw-w64-cgal/convex_hull_fix.patch | 223 +++++++++++++++++++++++++++ 2 files changed, 228 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-cgal/convex_hull_fix.patch diff --git a/mingw-w64-cgal/PKGBUILD b/mingw-w64-cgal/PKGBUILD index 52c176e003..a0642398fb 100644 --- a/mingw-w64-cgal/PKGBUILD +++ b/mingw-w64-cgal/PKGBUILD @@ -23,13 +23,16 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-eigen3: for some packages, see the CGAL man ) options=('strip' 'staticlibs') source=(http://gforge.inria.fr/frs/download.php/$_pkgid/CGAL-$pkgver.tar.xz - cgal-4.4-mingw.patch) + cgal-4.4-mingw.patch + convex_hull_fix.patch) sha1sums=('97c60d3b12727b4fbbcce45a0965941bb1d60cbe' - '1d2b06fe6faa0cb1ee748fa14f2de92f9e9e091f') + '1d2b06fe6faa0cb1ee748fa14f2de92f9e9e091f' + 'a4256b91ecf6230d17751444bb304e87f9d68c88') prepare() { cd "${srcdir}"/CGAL-${pkgver%.*} patch -p1 -i ${srcdir}/cgal-4.4-mingw.patch + patch -p1 -i ${srcdir}/convex_hull_fix.patch } build() { diff --git a/mingw-w64-cgal/convex_hull_fix.patch b/mingw-w64-cgal/convex_hull_fix.patch new file mode 100644 index 0000000000..19bc308838 --- /dev/null +++ b/mingw-w64-cgal/convex_hull_fix.patch @@ -0,0 +1,223 @@ +diff -Naur --ignore-all-space CGAL-4.5-org/include/CGAL/convex_hull_3.h CGAL-4.5/include/CGAL/convex_hull_3.h +--- CGAL-4.5-org/include/CGAL/convex_hull_3.h 2015-01-07 21:08:53.260410300 +0100 ++++ CGAL-4.5/include/CGAL/convex_hull_3.h 2015-01-07 09:24:02.000000000 +0100 +@@ -69,7 +69,7 @@ + //FT is a floating point type and Kernel is a filtered kernel + template + struct Default_traits_for_Chull_3{ +- typedef Convex_hull_traits_3< typename Kernel_traits::Kernel > type; ++ typedef Convex_hull_traits_3< typename Kernel_traits::Kernel, Tag_true > type; + }; + + template +@@ -77,9 +77,9 @@ + typedef CGAL::Polyhedron_3 type; + }; + +-template +-struct Default_polyhedron_for_Chull_3 >{ +- typedef typename Convex_hull_traits_3::Polyhedron_3 type; ++template ++struct Default_polyhedron_for_Chull_3 >{ ++ typedef typename Convex_hull_traits_3::Polyhedron_3 type; + }; + + //utility class to select the right version of internal predicate Is_on_positive_side_of_plane_3 +@@ -129,10 +129,10 @@ + //interval arithmetic (the protector must be created before using this predicate) + //and in case of failure, exact arithmetic is used. + template +-class Is_on_positive_side_of_plane_3,Tag_true>{ ++class Is_on_positive_side_of_plane_3,Tag_true>{ + typedef Simple_cartesian::Type> PK; + typedef Simple_cartesian CK; +- typedef Convex_hull_traits_3 Traits; ++ typedef Convex_hull_traits_3 Traits; + typedef typename Traits::Point_3 Point_3; + + Cartesian_converter to_CK; +@@ -312,12 +312,8 @@ + template + void coplanar_3_hull(InputIterator first, InputIterator beyond, + const Point_3& p1, const Point_3& p2, const Point_3& p3, +- Polyhedron_3& P, const Traits& traits) ++ Polyhedron_3& P, const Traits& /* traits */) + { +- typedef typename Traits::Vector_3 Vector_3; +- typedef typename Traits::Construct_vector_3 Construct_vector_3; +- typedef typename Traits::Orientation_3 Orientation_3; +- + typedef typename internal::Convex_hull_3::Projection_traits PTraits; + typedef typename PTraits::Traits_xy_3 Traits_xy_3; + typedef typename PTraits::Traits_yz_3 Traits_yz_3; +@@ -326,31 +322,26 @@ + std::list CH_2; + typedef typename std::list::iterator CH_2_iterator; + +- Construct_vector_3 vector_3 = traits.construct_vector_3_object(); +- Orientation_3 orientation = traits.orientation_3_object(); +- Vector_3 v1 = vector_3(p1,p2); +- Vector_3 v2 = vector_3(p1,p3); +- +- Vector_3 vx = vector_3(1,0,0); +- +- +- +- if ( orientation(v1, v2, vx) != COPLANAR ) ++ Traits_xy_3 traits_xy; ++ typename Traits_xy_3::Left_turn_2 left_turn_in_xy = traits_xy.left_turn_2_object(); ++ if ( left_turn_in_xy(p1,p2,p3) || left_turn_in_xy(p2,p1,p3) ) + convex_hull_points_2( first, beyond, + std::back_inserter(CH_2), +- Traits_yz_3() ); ++ traits_xy ); + else{ +- Vector_3 vy = vector_3(0,1,0); +- if ( orientation(v1,v2,vy) != COPLANAR ) ++ Traits_yz_3 traits_yz; ++ typename Traits_yz_3::Left_turn_2 left_turn_in_yz = traits_yz.left_turn_2_object(); ++ if ( left_turn_in_yz(p1,p2,p3) || left_turn_in_yz(p2,p1,p3) ) + convex_hull_points_2( first, beyond, + std::back_inserter(CH_2), +- Traits_xz_3() ); ++ traits_yz ); + else{ +- CGAL_assertion_code( Vector_3 vz = vector_3(0,0,1); ) +- CGAL_assertion( orientation(v1,v2,vz) != COPLANAR ); ++ Traits_xz_3 traits_xz; ++ CGAL_assertion_code( typename Traits_xz_3::Left_turn_2 left_turn_in_xz = traits_xz.left_turn_2_object(); ) ++ CGAL_assertion( left_turn_in_xz(p1,p2,p3) || left_turn_in_xz(p2,p1,p3) ); + convex_hull_points_2( first, beyond, + std::back_inserter(CH_2), +- Traits_xy_3() ); ++ traits_xz ); + } + } + +diff -Naur --ignore-all-space CGAL-4.5-org/include/CGAL/Convex_hull_traits_3.h CGAL-4.5/include/CGAL/Convex_hull_traits_3.h +--- CGAL-4.5-org/include/CGAL/Convex_hull_traits_3.h 2015-01-07 21:08:53.188407300 +0100 ++++ CGAL-4.5/include/CGAL/Convex_hull_traits_3.h 2015-01-07 09:24:02.000000000 +0100 +@@ -27,6 +27,8 @@ + #include + #include + #include ++#include ++#include + + namespace CGAL { + template < class R_ > +@@ -53,18 +55,40 @@ + + }; + ++template ++struct Point_triple_converter{ ++ // Point_triple_less_signed_distance_to_plane_3 is only working with a Cartesian Kernel ++ // so I hardcoded the converter type ++ CGAL::Cartesian_converter base; ++ ++ Point_triple ++ operator()(const Point_triple& t) const{ ++ return Point_triple( ++ base(t.p()), ++ base(t.q()), ++ base(t.r()) ); ++ } ++ ++ typename To::Point_3 ++ operator()(const typename From::Point_3& t) const{ ++ return base(t); ++ } ++}; ++ + template + class Point_triple_has_on_positive_side_3 { + + public: + typedef typename K::Point_3 Point_3; +- typedef typename K::Plane_3 Plane_3; ++ typedef Point_triple Plane_3; + bool + operator()( const Plane_3& pl, const Point_3& p) const + { + typename K::Orientation_3 o; + return ( o(pl.p(), pl.q(), pl.r(), p) == CGAL::POSITIVE ); + } ++ ++ typedef bool result_type; + }; + template + class Point_triple_construct_orthogonal_vector_3 +@@ -103,12 +127,12 @@ + } + }; + +-template ++template + class Point_triple_less_signed_distance_to_plane_3 + { + public: + typedef typename K::Point_3 Point_3; +- typedef typename K::Plane_3 Plane_3; ++ typedef Point_triple Plane_3; + + typedef bool result_type; + +@@ -135,14 +159,39 @@ + typedef typename GT::Point_3 Point_2; + }; + ++template ++struct Convex_hull_traits_base_3 { ++ typedef Point_triple_has_on_positive_side_3 Has_on_positive_side_3; + ++ typedef Point_triple_less_signed_distance_to_plane_3 ++ Less_signed_distance_to_plane_3; ++}; + + template +-class Convex_hull_traits_3 ++struct Convex_hull_traits_base_3{ ++ typedef Filtered_predicate< ++ Point_triple_has_on_positive_side_3< typename R_::Exact_kernel_rt >, ++ Point_triple_has_on_positive_side_3< typename R_::Approximate_kernel >, ++ Point_triple_converter, ++ Point_triple_converter ++ > Has_on_positive_side_3; ++ ++ typedef Filtered_predicate< ++ Point_triple_less_signed_distance_to_plane_3< typename R_::Exact_kernel_rt >, ++ Point_triple_less_signed_distance_to_plane_3< typename R_::Approximate_kernel >, ++ Point_triple_converter, ++ Point_triple_converter ++ > Less_signed_distance_to_plane_3; ++}; ++ ++ ++template ++class Convex_hull_traits_3 : ++ public Convex_hull_traits_base_3 + { + public: + typedef R_ R; +- typedef Convex_hull_traits_3 Self; ++ typedef Convex_hull_traits_3 Self; + typedef typename R::Point_3 Point_3; + typedef typename R::Segment_3 Segment_3; + typedef typename R::Triangle_3 Triangle_3; +@@ -172,10 +221,12 @@ + typedef typename R::Collinear_3 Collinear_3; + typedef typename R::Coplanar_3 Coplanar_3; + typedef typename R::Less_distance_to_point_3 Less_distance_to_point_3; +- typedef Point_triple_has_on_positive_side_3 Has_on_positive_side_3; + +- typedef Point_triple_less_signed_distance_to_plane_3 +- Less_signed_distance_to_plane_3; ++ typedef typename Convex_hull_traits_base_3 ++ ::Has_on_positive_side_3 Has_on_positive_side_3; ++ ++ typedef typename Convex_hull_traits_base_3 ++ ::Less_signed_distance_to_plane_3 Less_signed_distance_to_plane_3; + + // required for degenerate case of all points coplanar + typedef CGAL::Projection_traits_xy_3 Traits_xy_3; From 0bc0ad40a4f1aaad184fcde5f99371e485821c2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98ystein=20Krog?= Date: Thu, 8 Jan 2015 19:07:38 +0100 Subject: [PATCH 0288/2060] cgal: update pkgrel to 2 --- mingw-w64-cgal/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-cgal/PKGBUILD b/mingw-w64-cgal/PKGBUILD index a0642398fb..60271e42d5 100644 --- a/mingw-w64-cgal/PKGBUILD +++ b/mingw-w64-cgal/PKGBUILD @@ -3,7 +3,7 @@ _realname=cgal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.5.1 -pkgrel=1 +pkgrel=2 _pkgid=34139 pkgdesc="Computational Geometry Algorithms Library (mingw-w64)" arch=('any') From 3f818aa139c24f5716ec29276a51547733c551e4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 7 Jan 2015 10:13:39 +0300 Subject: [PATCH 0289/2060] doxygen: Update to 1.8.9.1 --- mingw-w64-doxygen/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-doxygen/PKGBUILD b/mingw-w64-doxygen/PKGBUILD index c3515d4384..aabaf2de1c 100644 --- a/mingw-w64-doxygen/PKGBUILD +++ b/mingw-w64-doxygen/PKGBUILD @@ -2,7 +2,7 @@ _realname=doxygen pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.8.9 +pkgver=1.8.9.1 pkgrel=1 pkgdesc="A documentation system for C++, C, Java, IDL and PHP (mingw-w64)" arch=('any') @@ -23,7 +23,7 @@ source=("http://ftp.stack.nl/pub/users/dimitri/${_realname}-${pkgver}.src.tar.gz 'tmake-unquote.patch' 'fix-casts.patch' 'remove-extra-slashes.patch') -sha1sums=('b447251d32343ecf867f0a20cb63da4b478bfbab' +sha1sums=('eb6b7e5f8dc8302e67053aba841f485017f246fd' '98f9f473f906c5cd363b29c65b54bbe998c0793e' '11ff505d15fa890aaa88fd7775842eb7ea3c1ed4' '6b6338b36e1964064b303dc69282f87b335e5571' From e7deaa21273111b591296e003d0b053919641d0f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 9 Jan 2015 12:43:25 +0300 Subject: [PATCH 0290/2060] gdal: Rebuild with latest poppler. --- mingw-w64-gdal/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gdal/PKGBUILD b/mingw-w64-gdal/PKGBUILD index 03abe5245f..b69b889a60 100644 --- a/mingw-w64-gdal/PKGBUILD +++ b/mingw-w64-gdal/PKGBUILD @@ -6,7 +6,7 @@ _realname=gdal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.11.1 -pkgrel=2 +pkgrel=3 pkgdesc="A translator library for raster geospatial data formats (mingw-w64)" arch=('any') url="http://www.gdal.org/" From ddeec70297223550c638f6df53e98080d7259eda Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 9 Jan 2015 12:44:07 +0300 Subject: [PATCH 0291/2060] openssl: Update to 1.0.1k --- mingw-w64-openssl/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-openssl/PKGBUILD b/mingw-w64-openssl/PKGBUILD index 12e5010f92..1adca171af 100644 --- a/mingw-w64-openssl/PKGBUILD +++ b/mingw-w64-openssl/PKGBUILD @@ -2,7 +2,7 @@ _realname=openssl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.0.1j +pkgver=1.0.1k pkgrel=1 arch=('any') pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (mingw-w64)" @@ -20,7 +20,7 @@ source=(http://www.openssl.org/source/${_realname}-$pkgver.tar.gz{,.asc} 'openssl-1.0.1-x32.patch' 'openssl-0.9.6-x509.patch' 'openssl-1.0.1i-relocation.patch') -md5sums=('f7175c9cd3c39bb1907ac8bba9df8ed3' +md5sums=('d4f002bd22a56881340105028842ae1f' 'SKIP' '9e0abad8dd17079815d9e92345c5adcb' '835a78dbe9c8690dbdd9190aaf5432e7' From 2f24a9b9fc5510a5375ab67f386a02792240fc16 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 9 Jan 2015 12:47:04 +0300 Subject: [PATCH 0292/2060] giflib: Update to 5.1.1 --- mingw-w64-giflib/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-giflib/PKGBUILD b/mingw-w64-giflib/PKGBUILD index 2bbbfb8b42..d58a7c97be 100644 --- a/mingw-w64-giflib/PKGBUILD +++ b/mingw-w64-giflib/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=giflib - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.1.0 +pkgver=5.1.1 pkgrel=1 pkgdesc="A library for reading and writing gif images (mingw-w64)" arch=('any') @@ -14,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://downloads.sourceforge.net/sourceforge/giflib/${_realname}-${pkgver}.tar.bz2" "giflib-5.0.4-include-stddef.patch") -md5sums=('c7e9f1c10b755ab955156d4c1ac7fc5d' +md5sums=('1c39333192712788c6568c78a949f13e' 'e39b98822334f2bd2009469e5dea65c5') prepare() { @@ -32,6 +31,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} + make bin_PROGRAMS='' } From af6af9e42fdf3ce9745fd8df7b06ee2beb014f50 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 10 Jan 2015 00:48:23 +0300 Subject: [PATCH 0293/2060] openimageio: Update to 1.4.15 --- mingw-w64-openimageio/PKGBUILD | 15 ++++++--------- mingw-w64-openimageio/fix-mingw-w64.patch | 12 ++++++++++++ mingw-w64-openimageio/giflib.patch | 11 ----------- 3 files changed, 18 insertions(+), 20 deletions(-) delete mode 100644 mingw-w64-openimageio/giflib.patch diff --git a/mingw-w64-openimageio/PKGBUILD b/mingw-w64-openimageio/PKGBUILD index b238e65f00..d209b69019 100644 --- a/mingw-w64-openimageio/PKGBUILD +++ b/mingw-w64-openimageio/PKGBUILD @@ -2,8 +2,8 @@ _realname=openimageio pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.13 -pkgrel=2 +pkgver=1.4.15 +pkgrel=1 pkgdesc="A library for reading and writing images, including classes, utilities, and applications (mingw-w64)" arch=('any') url="http://www.openimageio.org/" @@ -35,18 +35,15 @@ optdepends=(#"${MINGW_PACKAGE_PREFIX}-qt4: iv image viewer" options=('strip' 'buildflags') source=(https://github.com/OpenImageIO/oiio/archive/Release-$pkgver.tar.gz fix-mingw-w64.patch - workaround-ansidecl-h-PTR-define-conflict.patch - giflib.patch) -md5sums=('7df68cad0f79f5eea33209f63b2e8b3d' - 'cbd33e44aa073bb58b0371d311e0fc36' - '1bf4c840ee73d37ebdfc98d3ea527ed4' - 'f5cef862b0700c80cb574bfec9625b85') + workaround-ansidecl-h-PTR-define-conflict.patch) +md5sums=('8911cf6103e9fe3638912908bb4faa19' + 'babd1767de324a53cb50d2a74a1ac2ae' + '1bf4c840ee73d37ebdfc98d3ea527ed4') prepare() { cd ${srcdir}/oiio-Release-${pkgver} patch -p1 -i ${srcdir}/fix-mingw-w64.patch patch -p1 -i ${srcdir}/workaround-ansidecl-h-PTR-define-conflict.patch - patch -p1 -i ${srcdir}/giflib.patch } build() { diff --git a/mingw-w64-openimageio/fix-mingw-w64.patch b/mingw-w64-openimageio/fix-mingw-w64.patch index a819aa39c3..65d0f18b59 100644 --- a/mingw-w64-openimageio/fix-mingw-w64.patch +++ b/mingw-w64-openimageio/fix-mingw-w64.patch @@ -102,6 +102,18 @@ #include "imagebuf.h" #include "imagebufalgo.h" +@@ -1313,9 +1313,9 @@ + if (error) + continue; // ignore errors + // now, draw to our target surface +- for (int j = 0; j < slot->bitmap.rows; ++j) { ++ for (unsigned int j = 0; j < slot->bitmap.rows; ++j) { + int ry = y + j - slot->bitmap_top; +- for (int i = 0; i < slot->bitmap.width; ++i) { ++ for (unsigned int i = 0; i < slot->bitmap.width; ++i) { + int rx = x + i + slot->bitmap_left; + float b = slot->bitmap.buffer[slot->bitmap.pitch*j+i] / 255.0f; + R.getpixel (rx, ry, pixelcolor); --- a/src/libOpenImageIO/imageinput.cpp +++ b/src/libOpenImageIO/imageinput.cpp @@ -32,6 +32,7 @@ diff --git a/mingw-w64-openimageio/giflib.patch b/mingw-w64-openimageio/giflib.patch deleted file mode 100644 index 2871f696d1..0000000000 --- a/mingw-w64-openimageio/giflib.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- oiio-Release-1.4.8/src/gif.imageio/gifinput.cpp.orig 2014-05-23 20:21:53.000000000 +0400 -+++ oiio-Release-1.4.8/src/gif.imageio/gifinput.cpp 2014-05-29 09:37:42.109200000 +0400 -@@ -437,7 +437,7 @@ - GIFInput::close (void) - { - if (m_gif_file) { -- if (DGifCloseFile (m_gif_file) == GIF_ERROR) { -+ if (DGifCloseFile (m_gif_file, NULL) == GIF_ERROR) { - error ("Error trying to close the file."); - return false; - } From 8ba47d1eec6fb007e258057a4a6de432b4da39d2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 10 Jan 2015 01:34:23 +0300 Subject: [PATCH 0294/2060] mingw-w64 runtime update to git SHA [95c900f] --- mingw-w64-crt-git/PKGBUILD | 2 +- mingw-w64-headers-git/PKGBUILD | 2 +- mingw-w64-winpthreads-git/PKGBUILD | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 835c2efe2f..4c6029c8c4 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _ver_base=4.0.0 -pkgver=4.0.0.4388.c7e4f8f +pkgver=4.0.0.4402.95c900f pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 20c211a2b0..c2ce8cb92c 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" _ver_base=4.0.0 -pkgver=4.0.0.4388.c7e4f8f +pkgver=4.0.0.4402.95c900f pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index 3f004a44cb..968ee8e55d 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -4,14 +4,18 @@ _realname=winpthreads pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") _ver_base=4.0.0 -pkgver=4.0.0.4370.d008dc5 +pkgver=4.0.0.4402.95c900f pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" arch=('any') url="http://mingw-w64.sourceforge.net" license=('custom') groups=("${MINGW_PACKAGE_PREFIX}-toolchain" "${MINGW_PACKAGE_PREFIX}") -makedepends=("subversion" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-binutils" "${MINGW_PACKAGE_PREFIX}-crt" "${MINGW_PACKAGE_PREFIX}-headers") +makedepends=("git" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-binutils" + "${MINGW_PACKAGE_PREFIX}-crt" + "${MINGW_PACKAGE_PREFIX}-headers") options=('strip' '!buildflags' 'staticlibs' '!emptydirs' '!debug') source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch") From 8ca0604d5aa863ff61c5da4a9d44fe6e29721eb8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 10 Jan 2015 01:51:45 +0300 Subject: [PATCH 0295/2060] curl: Update to 7.40.0 --- mingw-w64-curl/0001-curl-relocation.patch | 24 +++++++++++------------ mingw-w64-curl/PKGBUILD | 7 ++++--- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/mingw-w64-curl/0001-curl-relocation.patch b/mingw-w64-curl/0001-curl-relocation.patch index e4b0e2beeb..dac3234b38 100644 --- a/mingw-w64-curl/0001-curl-relocation.patch +++ b/mingw-w64-curl/0001-curl-relocation.patch @@ -26,20 +26,20 @@ diff -urN curl-7.37.1.orig/lib/Makefile.inc curl-7.37.1/lib/Makefile.inc --- curl-7.37.1.orig/lib/Makefile.inc 2014-06-11 18:52:29.000000000 +0100 +++ curl-7.37.1/lib/Makefile.inc 2014-08-28 21:19:37.748635000 +0100 @@ -45,7 +45,7 @@ - asyn-thread.c curl_gssapi.c curl_ntlm.c curl_ntlm_wb.c \ - curl_ntlm_core.c curl_ntlm_msgs.c curl_sasl.c curl_multibyte.c \ - hostcheck.c bundles.c conncache.c pipeline.c dotdot.c x509asn1.c \ -- http2.c curl_sasl_sspi.c -+ http2.c curl_sasl_sspi.c pathtools.c + asyn-thread.c curl_gssapi.c curl_ntlm.c curl_ntlm_wb.c \ + curl_ntlm_core.c curl_ntlm_msgs.c curl_sasl.c curl_multibyte.c \ + hostcheck.c bundles.c conncache.c pipeline.c dotdot.c x509asn1.c \ +- http2.c curl_sasl_sspi.c smb.c curl_sasl_gssapi.c curl_endian.c ++ http2.c curl_sasl_sspi.c smb.c curl_sasl_gssapi.c curl_endian.c pathtools.c - LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \ - formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \ + LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \ + formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \ @@ -63,7 +63,7 @@ - curl_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h \ - curl_ntlm_msgs.h curl_sasl.h curl_multibyte.h hostcheck.h bundles.h \ - conncache.h curl_setup_once.h multihandle.h setup-vms.h pipeline.h \ -- dotdot.h x509asn1.h http2.h sigpipe.h -+ dotdot.h x509asn1.h http2.h sigpipe.h pathtools.h + curl_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h \ + curl_ntlm_msgs.h curl_sasl.h curl_multibyte.h hostcheck.h bundles.h \ + conncache.h curl_setup_once.h multihandle.h setup-vms.h pipeline.h \ +- dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h ++ dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h pathtools.h LIB_RCFILES = libcurl.rc diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 487e5f80ae..5d6fd0dd59 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -2,7 +2,7 @@ _realname=curl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=7.39.0 +pkgver=7.40.0 pkgrel=1 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') @@ -21,9 +21,10 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('staticlibs') # '!strip' 'debug') source=("$url/download/${_realname}-$pkgver.tar.bz2"{,.asc} "0001-curl-relocation.patch") -md5sums=('1efecb5b0e43c17d968f0d228bbbbbbd' +md5sums=('8d30594212e65657a5c32030f0998fa9' 'SKIP' - '6cd440db4867514fdb170be394986051') + 'e336b6d77d80ecd03bab775e1a1d8740') +validpgpkeys=('914C533DF9B2ADA2204F586D78E11C6B279D5C91') # Daniel Stenberg prepare() { cd "${_realname}-$pkgver" From 293693f35e0bcaeca0714fce00857a012f7ec558 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 10 Jan 2015 01:59:31 +0300 Subject: [PATCH 0296/2060] openshadinglanguage: Update to 1.5.12 --- mingw-w64-openshadinglanguage/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-openshadinglanguage/PKGBUILD b/mingw-w64-openshadinglanguage/PKGBUILD index ec34543ed6..dd870a1ff9 100644 --- a/mingw-w64-openshadinglanguage/PKGBUILD +++ b/mingw-w64-openshadinglanguage/PKGBUILD @@ -2,8 +2,8 @@ _realname=openshadinglanguage pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.11 -pkgrel=2 +pkgver=1.5.12 +pkgrel=1 pkgdesc="Advanced shading language for production GI renderers (mingw-w64)" arch=('any') url="https://github.com/imageworks/OpenShadingLanguage/" @@ -31,7 +31,7 @@ source=(https://github.com/imageworks/OpenShadingLanguage/archive/Release-${pkgv 0006-Fix-weird-array-out-of-bounds-error.patch 0007-Fix-bad-casts-with-intptr_t.patch 0008-Install-dlls.patch) -md5sums=('ec241cb96d2a51d89db4e5cf7b858e18' +md5sums=('484752a0f97df55962c3a667075deddc' 'c225e66cd0a59a674b331b26374ba082' '78526dd22cea1d42238609a9cdfef816' '9c73b150c2696024a44397ef94584463' From 796f999aa522b38572e23f9f02c7b40cbab8fdd9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 10 Jan 2015 16:28:30 +0300 Subject: [PATCH 0297/2060] dmake: Format --- mingw-w64-dmake/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-dmake/PKGBUILD b/mingw-w64-dmake/PKGBUILD index df7211b87b..8ce30182d7 100644 --- a/mingw-w64-dmake/PKGBUILD +++ b/mingw-w64-dmake/PKGBUILD @@ -2,7 +2,6 @@ # Contributor: Renato Silva _realname=dmake - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.12.2 pkgrel=3 @@ -34,6 +33,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} + make } From 7561f3c50fe5de0e4ae0d5f95e4cca9cd05cee44 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Sat, 10 Jan 2015 18:37:55 -0200 Subject: [PATCH 0298/2060] dmake: Fix configuration directory. * Configuration is now loaded from EXEDIR/../etc/dmake instead of EXEDIR/startup. * Some unused code has been removed from build(). --- mingw-w64-dmake/003-fix-config-location.patch | 47 +++++++++++++++++++ mingw-w64-dmake/PKGBUILD | 14 +++--- 2 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-dmake/003-fix-config-location.patch diff --git a/mingw-w64-dmake/003-fix-config-location.patch b/mingw-w64-dmake/003-fix-config-location.patch new file mode 100644 index 0000000000..e4175e86af --- /dev/null +++ b/mingw-w64-dmake/003-fix-config-location.patch @@ -0,0 +1,47 @@ +diff -aur 002/startup/Makefile.in 003/startup/Makefile.in +--- 002/startup/Makefile.in 2012-02-07 12:36:47.000000000 -0200 ++++ 003/startup/Makefile.in 2015-01-10 17:51:06.418945300 -0200 +@@ -163,7 +163,7 @@ + sharedstatedir = @sharedstatedir@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ +-startupdir = $(datadir)/startup ++startupdir = $(datadir) + startup_DATA = startup.mk config.mk + DIST_SUBDIRS = unix winnt + SUBDIRS = @OS_TYPE@ +diff -aur 002/startup/winnt/Makefile.in 003/startup/winnt/Makefile.in +--- 002/startup/winnt/Makefile.in 2012-02-07 12:36:46.000000000 -0200 ++++ 003/startup/winnt/Makefile.in 2015-01-10 18:12:18.143554600 -0200 +@@ -162,7 +162,7 @@ + sharedstatedir = @sharedstatedir@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ +-startupdir = $(datadir)/startup/winnt ++startupdir = $(datadir)/winnt + startup_DATA = macros.mk recipes.mk + DIST_SUBDIRS = mingw msvc6 + SUBDIRS = @OS_VERSION@ +diff -aur 002/startup/winnt/mingw/Makefile.in 003/startup/winnt/mingw/Makefile.in +--- 002/startup/winnt/mingw/Makefile.in 2012-02-07 12:36:46.000000000 -0200 ++++ 003/startup/winnt/mingw/Makefile.in 2015-01-10 18:12:24.551757800 -0200 +@@ -154,7 +154,7 @@ + sharedstatedir = @sharedstatedir@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ +-startupdir = $(datadir)/startup/winnt/mingw ++startupdir = $(datadir)/winnt/mingw + startup_DATA = macros.mk + all: all-am + +diff -aur 002/winnt/startup.h 003/winnt/startup.h +--- 002/winnt/startup.h 2012-02-07 12:36:53.000000000 -0200 ++++ 003/winnt/startup.h 2015-01-10 18:01:16.400390600 -0200 +@@ -24,6 +24,6 @@ + -- Use cvs log to obtain detailed change logs. + */ + +-"DMAKEROOT *= $(ABSMAKECMD:d)startup", ++"DMAKEROOT *= $(ABSMAKECMD:d)..\\etc\\dmake", + "MAKESTARTUP := $(DMAKEROOT)\\startup.mk", + diff --git a/mingw-w64-dmake/PKGBUILD b/mingw-w64-dmake/PKGBUILD index 8ce30182d7..4c2d7f9cf8 100644 --- a/mingw-w64-dmake/PKGBUILD +++ b/mingw-w64-dmake/PKGBUILD @@ -4,7 +4,7 @@ _realname=dmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.12.2 -pkgrel=3 +pkgrel=4 pkgdesc="Dmake is a make utility similar to GNU make or the Workshop dmake (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -14,24 +14,27 @@ license=('GPL') url="https://code.google.com/a/apache-extras.org/p/dmake/" source=("http://dmake.apache-extras.org.codespot.com/files/dmake-${pkgver}.tar.bz2" '001-detect-mingw.patch' - '002-disable-shell-environment-variable.patch') + '002-disable-shell-environment-variable.patch' + '003-fix-config-location.patch') md5sums=('9194f727c31d1db18bf5dd02e7b2dd09' 'a39a65958762b2877c994428978d0c3d' - '08c08cf2432bd7ffdce6759d4f6974d4') + '08c08cf2432bd7ffdce6759d4f6974d4' + 'a1f153d6c8199c11344027a18a4baa26') prepare() { cd ${srcdir}/dmake-${pkgver} patch -p1 -i ${srcdir}/001-detect-mingw.patch patch -p1 -i ${srcdir}/002-disable-shell-environment-variable.patch + patch -p1 -i ${srcdir}/003-fix-config-location.patch } build() { - unset SHELL mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} - MSYSTEM=MINGW ../dmake-${pkgver}/configure \ + ../dmake-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ + --datarootdir=${MINGW_PREFIX}/etc/dmake \ --build=${MINGW_CHOST} make @@ -40,5 +43,4 @@ build() { package() { cd "${srcdir}/build-${CARCH}" make DESTDIR="${pkgdir}" install - mv "${pkgdir}${MINGW_PREFIX}/share/startup" "${pkgdir}${MINGW_PREFIX}/bin" } From 4ac53cc487cdab881e11cd491cdf3c258849b4bd Mon Sep 17 00:00:00 2001 From: Josip Date: Sat, 10 Jan 2015 21:02:49 +0100 Subject: [PATCH 0299/2060] python-bsddb3: Added --- mingw-w64-python-bsddb3/PKGBUILD | 76 ++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 mingw-w64-python-bsddb3/PKGBUILD diff --git a/mingw-w64-python-bsddb3/PKGBUILD b/mingw-w64-python-bsddb3/PKGBUILD new file mode 100644 index 0000000000..62c2606179 --- /dev/null +++ b/mingw-w64-python-bsddb3/PKGBUILD @@ -0,0 +1,76 @@ +# Contributor: Josip + +_realname=bsddb3 + +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=6.1.0 +pkgrel=1 +pkgdesc="Python bindings for Oracle Berkeley DB" +arch=('any') +license=('BSD') +url="http://www.jcea.es/programacion/pybsddb.htm" +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-db") +options=('staticlibs' 'strip' '!debug') +source=("http://pypi.python.org/packages/source/b/bsddb3/${_realname}-${pkgver}.tar.gz") +md5sums=('8d998ee04dc05f3808a7edfe3011decc') + +prepare() { + plain "Patching setup files ..." + cd "${srcdir}/${_realname}-${pkgver}" + sed -i -e "s|if os.name == 'posix':|if os.name == 'nt':|g" setup{2,3}.py + sed -i -e "s|elif os.name == 'nt':|elif os.name == 'FOO':|g" setup{2,3}.py + + cd "${srcdir}" + cp -r ${_realname}-${pkgver} build-${CARCH} +} + +build() { + CFLAGS+=" -DUNICODE -D_UNICODE" + + export YES_I_HAVE_THE_RIGHT_TO_USE_THIS_BERKELEY_DB_VERSION=YES + export BERKELEYDB_DIR="${MINGW_PREFIX}" + + # Build python 2 module + cd "${srcdir}/build-${CARCH}" + ${MINGW_PREFIX}/bin/python2 setup.py build + + # Build python 3 module + cd "${srcdir}/build-${CARCH}" + ${MINGW_PREFIX}/bin/python3 setup.py build +} + +package_python3-bsddb3() { + depends=("${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-db") + + cd "${srcdir}/build-${CARCH}" + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 --skip-build +} + +package_python2-bsddb3() { + depends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-db") + + cd "${srcdir}/build-${CARCH}" + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 --skip-build +} + +package_mingw-w64-i686-python2-bsddb3() { + package_python2-bsddb3 +} + +package_mingw-w64-i686-python3-bsddb3() { + package_python3-bsddb3 +} + +package_mingw-w64-x86_64-python2-bsddb3() { + package_python2-bsddb3 +} + +package_mingw-w64-x86_64-python3-bsddb3() { + package_python3-bsddb3 +} From 0d5552b2c554891208d15404075204e0311e52cf Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 10 Jan 2015 23:12:07 +0000 Subject: [PATCH 0300/2060] db: Update url --- mingw-w64-db/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-db/PKGBUILD b/mingw-w64-db/PKGBUILD index fe4f5fe3b5..3830a3c627 100644 --- a/mingw-w64-db/PKGBUILD +++ b/mingw-w64-db/PKGBUILD @@ -8,7 +8,7 @@ pkgver=6.0.30 pkgrel=1 pkgdesc="The Berkeley DB embedded database system (mingw-w64)" arch=('any') -url="http://www.oracle.com/technology/software/products/berkeley-db/index.html" +url="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" license=('custom') groups=("${MINGW_PACKAGE_PREFIX}") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") From 55548f1dd51b6e30971fbf5294250a8d47d5a57e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 10 Jan 2015 23:17:04 +0000 Subject: [PATCH 0301/2060] python-bsddb3: Fix formatting --- mingw-w64-python-bsddb3/PKGBUILD | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/mingw-w64-python-bsddb3/PKGBUILD b/mingw-w64-python-bsddb3/PKGBUILD index 62c2606179..861cd81703 100644 --- a/mingw-w64-python-bsddb3/PKGBUILD +++ b/mingw-w64-python-bsddb3/PKGBUILD @@ -1,7 +1,6 @@ # Contributor: Josip _realname=bsddb3 - pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=6.1.0 pkgrel=1 @@ -10,10 +9,10 @@ arch=('any') license=('BSD') url="http://www.jcea.es/programacion/pybsddb.htm" makedepends=("${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-python3-setuptools" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" - "${MINGW_PACKAGE_PREFIX}-db") + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-db") options=('staticlibs' 'strip' '!debug') source=("http://pypi.python.org/packages/source/b/bsddb3/${_realname}-${pkgver}.tar.gz") md5sums=('8d998ee04dc05f3808a7edfe3011decc') @@ -23,14 +22,14 @@ prepare() { cd "${srcdir}/${_realname}-${pkgver}" sed -i -e "s|if os.name == 'posix':|if os.name == 'nt':|g" setup{2,3}.py sed -i -e "s|elif os.name == 'nt':|elif os.name == 'FOO':|g" setup{2,3}.py - + cd "${srcdir}" cp -r ${_realname}-${pkgver} build-${CARCH} } build() { CFLAGS+=" -DUNICODE -D_UNICODE" - + export YES_I_HAVE_THE_RIGHT_TO_USE_THIS_BERKELEY_DB_VERSION=YES export BERKELEYDB_DIR="${MINGW_PREFIX}" @@ -45,16 +44,16 @@ build() { package_python3-bsddb3() { depends=("${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-db") - + "${MINGW_PACKAGE_PREFIX}-db") + cd "${srcdir}/build-${CARCH}" ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 --skip-build } package_python2-bsddb3() { depends=("${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-db") - + "${MINGW_PACKAGE_PREFIX}-db") + cd "${srcdir}/build-${CARCH}" ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 --skip-build } From 2f1d75f599cb616ff4487f488d86cb0cf7f95225 Mon Sep 17 00:00:00 2001 From: Josip Date: Sun, 11 Jan 2015 05:00:23 +0100 Subject: [PATCH 0302/2060] python-icu: Added --- mingw-w64-python-icu/PKGBUILD | 84 +++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 mingw-w64-python-icu/PKGBUILD diff --git a/mingw-w64-python-icu/PKGBUILD b/mingw-w64-python-icu/PKGBUILD new file mode 100644 index 0000000000..dc7476c2fc --- /dev/null +++ b/mingw-w64-python-icu/PKGBUILD @@ -0,0 +1,84 @@ +# Contributor: Josip + +_realname=PyICU + +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-icu" "${MINGW_PACKAGE_PREFIX}-python3-icu") +pkgver=1.8 +pkgrel=1 +pkgdesc="Python extension wrapping the ICU C++ API" +arch=('any') +license=('BSD') +url="https://pypi.python.org/pypi/PyICU/" +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-icu") +options=('staticlibs' 'strip' '!debug') +source=("https://pypi.python.org/packages/source/P/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=("00c8d40e5400f52c8474aa9480e8dbc1") + +prepare() { + cd "${srcdir}" + cp -r ${_realname}-${pkgver} build-${CARCH} +} + +build() { + CFLAGS+=" -fpermissive" + export PYICU_CFLAGS="-DPYICU_VER='${pkgver}'" + export PYICU_LFLAGS="-L${MINGW_PREFIX}/lib" + export PYICU_INCLUDES="${MINGW_PREFIX}/include" + export PYICU_LIBRARIES="icuin;icuuc;icudt;icule" + + # Build python 2 module + cd "${srcdir}/build-${CARCH}" + ${MINGW_PREFIX}/bin/python2 setup.py build + + # Build python 3 module + cd "${srcdir}/build-${CARCH}" + ${MINGW_PREFIX}/bin/python3 setup.py build +} + +package_python3-icu() { + depends=("${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-icu") + + cd "${srcdir}/build-${CARCH}" + ${MINGW_PREFIX}/bin/python3 setup.py install \ + --prefix=${MINGW_PREFIX#\/} \ + --root="${pkgdir}" \ + --optimize=1 \ + --skip-build + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-icu/COPYING" +} + +package_python2-icu() { + depends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-icu") + + cd "${srcdir}/build-${CARCH}" + ${MINGW_PREFIX}/bin/python2 setup.py install \ + --prefix=${MINGW_PREFIX#\/} \ + --root="${pkgdir}" \ + --optimize=1 \ + --skip-build + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-icu/COPYING" +} + +package_mingw-w64-i686-python2-icu() { + package_python2-icu +} + +package_mingw-w64-i686-python3-icu() { + package_python3-icu +} + +package_mingw-w64-x86_64-python2-icu() { + package_python2-icu +} + +package_mingw-w64-x86_64-python3-icu() { + package_python3-icu +} From 97e8fd1c601d3fc3c981d932fd49c51b0c36e9c9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 11 Jan 2015 16:01:40 +0300 Subject: [PATCH 0303/2060] blender: Update to 2.73 --- mingw-w64-blender/PKGBUILD | 17 ++-- .../fix-mingw-w64-definitions.patch | 80 ++++++++++--------- .../mingw-use-X11-like-path-layout.patch | 52 +++++++----- mingw-w64-blender/mingw-w64-cmake.patch | 67 ++++++++-------- mingw-w64-blender/osl-deprecate-api.patch | 11 +++ 5 files changed, 131 insertions(+), 96 deletions(-) create mode 100644 mingw-w64-blender/osl-deprecate-api.patch diff --git a/mingw-w64-blender/PKGBUILD b/mingw-w64-blender/PKGBUILD index 2c39caad0a..6c4ae416f1 100644 --- a/mingw-w64-blender/PKGBUILD +++ b/mingw-w64-blender/PKGBUILD @@ -10,7 +10,7 @@ _realname=blender pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.72b +pkgver=2.73 _pyver=3.4 pkgrel=1 pkgdesc="A fully integrated 3D graphics creation suite (mingw-w64)" @@ -48,16 +48,18 @@ source=(#http://mirror.cs.umn.edu/blender.org/source/$_realname-$pkgver.tar.gz "fix-define-syntax.patch" "mingw-DEBUG-libmv-avoid-too-many-sections.patch" "mingw-DEBUG-dont-suffix-libs-with-_d.patch" - "mingw-use-X11-like-path-layout.patch") -md5sums=('5542766199dd101de79670e437d1ef19' - '7e051acedaf998ac12406c4b1fc70104' - '0b6e0df941c26d0716dbd00454de96a1' + "mingw-use-X11-like-path-layout.patch" + "osl-deprecate-api.patch") +md5sums=('8e546e622c6dfc1f0231636270bdf8de' + 'e32610ddacfbc60c5677e31dec227c34' + 'e8b4320882752c68eeba9b57f7951d1a' '1969914e11d0a4f74dbfeddad742c9da' 'b11e3fe76c4433abb53c12e723dfbe4f' '9c5a4e230d1c9081096d53d206cc03b4' 'e8dbeac11a43dc307fe826cd41100b8e' '4d104bac37e549eb32cffd473550412e' - '44fdccd19c563dbfc9a49fb7cab1e261') + 'bdac7b47c5886bbcede99516a67de0c2' + '407dd78ee33dd9ab1212ba93af396d6c') prepare() { cd "$srcdir"/$_realname-$pkgver @@ -69,6 +71,7 @@ prepare() { patch -p1 -i "${srcdir}"/mingw-DEBUG-libmv-avoid-too-many-sections.patch patch -p1 -i "${srcdir}"/mingw-DEBUG-dont-suffix-libs-with-_d.patch patch -p1 -i "${srcdir}"/mingw-use-X11-like-path-layout.patch + patch -p1 -i "${srcdir}"/osl-deprecate-api.patch } build() { @@ -122,7 +125,7 @@ build() { ../${_realname}-${pkgver} # Remove the openjpeg line once blender accepts my patch - make # -j1 VERBOSE=1 + make #-j1 VERBOSE=1 } package() { diff --git a/mingw-w64-blender/fix-mingw-w64-definitions.patch b/mingw-w64-blender/fix-mingw-w64-definitions.patch index af3ef548b0..1c6ac77e27 100644 --- a/mingw-w64-blender/fix-mingw-w64-definitions.patch +++ b/mingw-w64-blender/fix-mingw-w64-definitions.patch @@ -56,29 +56,29 @@ diff -Naur blender/extern/libmv/third_party/glog/src/windows/port.h blender-pp/e #define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR) #ifndef __MINGW32__ enum { STDIN_FILENO = 0, STDOUT_FILENO = 1, STDERR_FILENO = 2 }; -@@ -126,7 +128,9 @@ +@@ -126,7 +128,9 @@ extern int safe_vsnprintf(char *str, size_t size, #define DEFAULT_TEMPLATE_ROOTDIR ".." // ----------------------------------- SYSTEM/PROCESS +#ifndef __MINGW64_VERSION_MAJOR typedef int pid_t; -+#endif //__MINGW64_VERSION_MAJOR ++#endif #define getpid _getpid #include -@@ -135,6 +139,7 @@ +@@ -135,6 +139,7 @@ typedef SSIZE_T ssize_t; #endif // _MSC_VER // ----------------------------------- THREADS -+#ifndef __MINGW64_VERSION_MAJOR ++#if !defined(WIN_PTHREADS_H) typedef DWORD pthread_t; typedef DWORD pthread_key_t; typedef LONG pthread_once_t; -@@ -158,6 +163,7 @@ +@@ -158,6 +163,7 @@ inline struct tm* localtime_r(const time_t* timep, struct tm* result) { return result; #endif } -+#endif //__MINGW64_VERSION_MAJOR ++#endif inline char* strerror_r(int errnum, char* buf, size_t buflen) { #if __MINGW32__ @@ -90,23 +90,26 @@ diff -Naur blender/extern/libmv/third_party/glog/src/windows/port.h blender-pp/e /* SSE intrinsics headers */ -#ifndef FREE_WINDOWS64 - #ifdef __KERNEL_SSE2__ - #include /* SSE 1 */ -@@ -95,14 +94,6 @@ - #include /* SSE 4.1 */ + #ifdef _MSC_VER + #include +@@ -95,17 +94,6 @@ + #endif -#else - -/* MinGW64 has conflicting declarations for these SSE headers in . - * Since we can't avoid including , better only include that */ +-#define NOGDI +-#define NOMINMAX +-#define WIN32_LEAN_AND_MEAN -#include - -#endif - #endif - #endif /* __UTIL_OPTIMIZATION_H__ */ + #endif diff -Naur blender/intern/cycles/util/util_types.h blender-pp/intern/cycles/util/util_types.h --- blender/intern/cycles/util/util_types.h 2014-01-14 08:17:57.658600000 +0400 +++ blender-pp/intern/cycles/util/util_types.h 2014-01-14 08:47:39.800000000 +0400 @@ -158,42 +161,32 @@ diff -Naur blender/intern/ghost/intern/GHOST_TaskbarWin32.h blender-pp/intern/gh diff -Naur blender/intern/ghost/intern/GHOST_WindowWin32.cpp blender-pp/intern/ghost/intern/GHOST_WindowWin32.cpp --- blender/intern/ghost/intern/GHOST_WindowWin32.cpp 2014-01-14 08:17:57.783400000 +0400 +++ blender-pp/intern/ghost/intern/GHOST_WindowWin32.cpp 2014-01-14 07:08:38.456800000 +0400 -@@ -29,6 +29,11 @@ - * \ingroup GHOST +@@ -29,6 +29,12 @@ */ -+// Need glew for some defines -+#include -+#include -+#include + #define _USE_MATH_DEFINES + - #include ++#if defined(WITH_GL_EGL) ++# include "GHOST_ContextEGL.h" ++#else ++# include "GHOST_ContextWGL.h" ++#endif + #include "GHOST_WindowWin32.h" #include "GHOST_SystemWin32.h" -@@ -36,11 +41,6 @@ +@@ -36,12 +41,6 @@ + #include "GHOST_ContextNone.h" #include "utfconv.h" #include "utf_winfunc.h" - --// Need glew for some defines --#include --#include --#include - - // MSVC6 still doesn't define M_PI - #ifndef M_PI - # define M_PI 3.1415926536 -diff -Naur blender/intern/ghost/intern/GHOST_WindowWin32.h blender-pp/intern/ghost/intern/GHOST_WindowWin32.h ---- blender/intern/ghost/intern/GHOST_WindowWin32.h 2014-01-14 08:17:57.783400000 +0400 -+++ blender-pp/intern/ghost/intern/GHOST_WindowWin32.h 2014-01-14 07:08:38.456800000 +0400 -@@ -40,7 +40,7 @@ - #include "GHOST_Window.h" - #include "GHOST_TaskbarWin32.h" +-#if defined(WITH_GL_EGL) +-# include "GHOST_ContextEGL.h" +-#else +-# include "GHOST_ContextWGL.h" +-#endif --#ifndef __MINGW64__ -+#ifndef __MINGW64_VERSION_MAJOR - #define _WIN32_WINNT 0x501 // require Windows XP or newer - #endif - #define WIN32_LEAN_AND_MEAN + + #include diff -Naur blender/source/blender/blenlib/BLI_winstuff.h blender-pp/source/blender/blenlib/BLI_winstuff.h --- blender/source/blender/blenlib/BLI_winstuff.h 2014-01-14 08:18:15.661000000 +0400 +++ blender-pp/source/blender/blenlib/BLI_winstuff.h 2014-01-14 07:08:38.456800000 +0400 @@ -220,3 +213,14 @@ diff -Naur blender/source/blender/blenlib/BLI_winstuff.h blender-pp/source/blend /* python uses HAVE_SSIZE_T */ # ifndef HAVE_SSIZE_T # define HAVE_SSIZE_T 1 +diff -Naur blender/source/blender/blenlib/intern/rand.c blender-pp/source/blender/blenlib/intern/rand.c +--- blender/source/blender/blenlib/intern/rand.c 2014-01-14 08:18:15.661000000 +0400 ++++ blender-pp/source/blender/blenlib/intern/rand.c 2014-01-14 07:08:38.456800000 +0400 +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + + #include "MEM_guardedalloc.h" + diff --git a/mingw-w64-blender/mingw-use-X11-like-path-layout.patch b/mingw-w64-blender/mingw-use-X11-like-path-layout.patch index 95a642f353..6d354539d9 100644 --- a/mingw-w64-blender/mingw-use-X11-like-path-layout.patch +++ b/mingw-w64-blender/mingw-use-X11-like-path-layout.patch @@ -67,24 +67,40 @@ diff -Naur blender-2.72-orig/source/creator/CMakeLists.txt blender-2.72/source/c if(WITH_INSTALL_PORTABLE) set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION}) else() -@@ -396,6 +396,7 @@ - CODE - " - execute_process(COMMAND -+ python3 - ${CMAKE_SOURCE_DIR}/doc/manpage/blender.1.py - ${TARGETDIR}/blender - ${TARGETDIR}/blender.1) -@@ -598,10 +599,10 @@ +@@ -393,13 +393,13 @@ + # ----------------------------------------------------------------------------- + # Install Targets (Platform Specific) - install( - FILES ${BLENDER_TEXT_FILES} -- DESTINATION ${TARGETDIR} -+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/blender - ) +-if(UNIX AND NOT APPLE) ++if((UNIX AND NOT APPLE) OR MINGW) -- if(WITH_PYTHON) -+ if(WITH_PYTHON AND NOT MINGW) - string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION}) + if(NOT WITH_PYTHON_MODULE) + if(WITH_DOC_MANPAGE) + add_custom_target( + blender_man_page ALL +- COMMAND ${CMAKE_SOURCE_DIR}/doc/manpage/blender.1.py ++ COMMAND python3 ${CMAKE_SOURCE_DIR}/doc/manpage/blender.1.py + ${EXECUTABLE_OUTPUT_PATH}/blender + ${CMAKE_CURRENT_BINARY_DIR}/blender.1) + add_dependencies(blender_man_page blender) +@@ -1003,7 +1003,7 @@ - install( + install(TARGETS blender blender-launcher + COMPONENT Blender +- DESTINATION ".") ++ DESTINATION bin) + + if(MSVC12_REDIST_DIR) + if(CMAKE_CL_64) +diff -Naur blender-2.72-orig/source/blenderplayer/CMakeLists.txt blender-2.72/source/blenderplayer/CMakeLists.txt +--- blender-2.72-orig/source/blenderplayer/CMakeLists.txt 2014-09-24 19:29:55.000000000 +0400 ++++ blender-2.72/source/blenderplayer/CMakeLists.txt 2014-10-07 09:16:00.095600000 +0400 +@@ -58,7 +58,7 @@ + + install(TARGETS blenderplayer + COMPONENT Blenderplayer +- DESTINATION ".") ++ DESTINATION bin) + + elseif(APPLE) + add_executable(blenderplayer ${EXETYPE} bad_level_call_stubs/stubs.c) diff --git a/mingw-w64-blender/mingw-w64-cmake.patch b/mingw-w64-blender/mingw-w64-cmake.patch index c9588ad9d1..2c268d1dca 100644 --- a/mingw-w64-blender/mingw-w64-cmake.patch +++ b/mingw-w64-blender/mingw-w64-cmake.patch @@ -1,33 +1,24 @@ ---- blender/CMakeLists.txt.orig 2014-04-08 00:22:36.736800000 +0400 -+++ blender/CMakeLists.txt 2014-04-08 06:51:03.051600000 +0400 -@@ -171,6 +171,8 @@ +--- blender-2.73/CMakeLists.txt.orig 2015-01-07 18:32:07.000000000 +0300 ++++ blender-2.73/CMakeLists.txt 2015-01-10 20:57:50.362800000 +0300 +@@ -250,6 +250,8 @@ + if(UNIX AND NOT APPLE) option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" ON) - - option(WITH_GHOST_XDND "Enable drag'n'drop support on X11 using XDND protocol" ON) + option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON) +elseif(MINGW) + option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" ON) else() # not an option for other OS's set(WITH_SYSTEM_GLEW OFF) -@@ -178,7 +180,7 @@ +@@ -776,7 +778,7 @@ - - # (unix defaults to System OpenJPEG On) --if(UNIX AND NOT APPLE) -+if((UNIX AND NOT APPLE) OR MINGW) - set(PLATFORM_DEFAULT ON) - else() - set(PLATFORM_DEFAULT OFF) -@@ -579,7 +581,7 @@ - #----------------------------------------------------------------------------- - #Platform specifics + endif() -if(UNIX AND NOT APPLE) +if((UNIX AND NOT APPLE) OR MINGW) macro(find_package_wrapper) - string(TOUPPER ${ARGV0} _NAME_UPPER) if(WITH_STATIC_LIBS) -@@ -598,15 +600,29 @@ + set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES}) +@@ -794,15 +796,29 @@ find_package_wrapper(ZLIB REQUIRED) find_package_wrapper(Freetype REQUIRED) @@ -57,7 +48,7 @@ endif() if(WITH_IMAGE_OPENEXR) -@@ -670,7 +686,11 @@ +@@ -873,7 +889,11 @@ endif() if(WITH_CODEC_FFMPEG) @@ -69,7 +60,7 @@ set(FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries") mark_as_advanced(FFMPEG) -@@ -699,6 +719,9 @@ +@@ -901,6 +921,9 @@ if(OPENCOLLADA_FOUND) find_package_wrapper(XML2) find_package_wrapper(PCRE) @@ -79,10 +70,10 @@ else() set(WITH_OPENCOLLADA OFF) endif() -@@ -855,8 +878,13 @@ - message(FATAL_ERROR "LLVM not found.") - endif() +@@ -1061,8 +1084,13 @@ + endif() + if(WITH_LLVM OR WITH_SDL_DYNLOAD) + if(MINGW) + # imagehelp is needed by LLVM 3.1 on MinGW, check lib\Support\Windows\Signals.inc + list(APPEND PLATFORM_LINKLIBS -limagehlp) @@ -93,7 +84,7 @@ endif() if(WITH_CYCLES_OSL) -@@ -867,9 +895,13 @@ +@@ -1073,9 +1101,13 @@ find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib) @@ -107,7 +98,7 @@ find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include) find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin) -@@ -883,6 +915,45 @@ +@@ -1087,6 +1119,50 @@ endif() endif() @@ -133,6 +124,11 @@ + message(STATUS "Compiling with MinGW-w32.") + endif() + list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi) ++ ++ if(WITH_INPUT_IME) ++ list(APPEND PLATFORM_LINKLIBS imm32) ++ endif() ++ + set(PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing") + if(WITH_MINGW64) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") @@ -151,9 +147,9 @@ + endif() + else() # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed - set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread") + list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm) -@@ -958,12 +1031,12 @@ +@@ -1140,12 +1216,12 @@ set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel") endif() @@ -166,13 +162,12 @@ - if(MSVC) - set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid psapi) - -@@ -1329,229 +1402,6 @@ - + # needed for some MSVC installations + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO") +@@ -1488,234 +1564,6 @@ # used in many places so include globally, like OpenGL blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}") -- + - elseif(CMAKE_COMPILER_IS_GNUCC) - # keep GCC specific stuff here - include(CheckCSourceCompiles) @@ -198,6 +193,11 @@ - endif() - - list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi) +- +- if(WITH_INPUT_IME) +- list(APPEND PLATFORM_LINKLIBS -limm32) +- endif() +- - set(PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing") - - if(WITH_MINGW64) @@ -395,6 +395,7 @@ - # set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-libgcc -static-libstdc++") - - endif() - +- # Things common to both mingw and MSVC should go here + set(WINTAB_INC ${LIBDIR}/wintab/include) diff --git a/mingw-w64-blender/osl-deprecate-api.patch b/mingw-w64-blender/osl-deprecate-api.patch new file mode 100644 index 0000000000..ff8d1edd6e --- /dev/null +++ b/mingw-w64-blender/osl-deprecate-api.patch @@ -0,0 +1,11 @@ +--- blender-2.73/intern/cycles/kernel/osl/osl_closures.cpp.orig 2015-01-11 15:22:14.583200000 +0300 ++++ blender-2.73/intern/cycles/kernel/osl/osl_closures.cpp 2015-01-11 15:22:23.334800000 +0300 +@@ -189,7 +189,7 @@ + /* optimization: it's possible to not use a prepare function at all and + * only initialize the actual class when accessing the closure component + * data, but then we need to map the id to the class somehow */ +- ss->register_closure(name, id, params, prepare, NULL, 16); ++ ss->register_closure(name, id, params, prepare, NULL/*, 16*/); + } + + void OSLShader::register_closures(OSLShadingSystem *ss_) From 926c9769e35570aa4cc12f6f1e30113c196e7f2f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 11 Jan 2015 17:02:36 +0300 Subject: [PATCH 0304/2060] libjpeg-turbo: Update to 1.4.0 --- mingw-w64-libjpeg-turbo/0001-header-compat.mingw.patch | 4 ++-- mingw-w64-libjpeg-turbo/PKGBUILD | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mingw-w64-libjpeg-turbo/0001-header-compat.mingw.patch b/mingw-w64-libjpeg-turbo/0001-header-compat.mingw.patch index 7938e56235..9cd5b985e4 100644 --- a/mingw-w64-libjpeg-turbo/0001-header-compat.mingw.patch +++ b/mingw-w64-libjpeg-turbo/0001-header-compat.mingw.patch @@ -16,7 +16,7 @@ @@ -154,14 +154,18 @@ /* INT16 must hold at least the values -32768..32767. */ - #ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ + #ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ +#ifndef _BASETSD_H_ /* basestd.h from mingw-w64 defines INT16 */ typedef short INT16; #endif @@ -24,7 +24,7 @@ /* INT32 must hold at least signed 32-bit values. */ - #ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ + #ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ +#ifndef _BASETSD_H_ /* basestd.h from mingw-w64 defines INT32 */ typedef long INT32; #endif diff --git a/mingw-w64-libjpeg-turbo/PKGBUILD b/mingw-w64-libjpeg-turbo/PKGBUILD index b225451fe2..2381ad7df1 100644 --- a/mingw-w64-libjpeg-turbo/PKGBUILD +++ b/mingw-w64-libjpeg-turbo/PKGBUILD @@ -2,8 +2,8 @@ _realname=libjpeg-turbo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.1 -pkgrel=6 +pkgver=1.4.0 +pkgrel=1 pkgdesc="JPEG image codec with accelerated baseline compression and decompression (mingw-w64)" arch=('any') url="http://libjpeg-turbo.virtualgl.org" @@ -18,8 +18,8 @@ options=('staticlibs' 'strip') source=("http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-$pkgver.tar.gz" "0001-header-compat.mingw.patch" "libjpeg-turbo-1.3.1-libmng-compatibility.patch") -md5sums=('2c3a68129dac443a72815ff5bb374b05' - '4cd30dbda4e54a6875e74ed437e41b49' +md5sums=('039153dabe61e1ac8d9323b5522b56b0' + '4c7074385609de7310e3592a91f608f8' 'b54c2ab69837e1b72605184364360af0') prepare() { From 69b650de7f4b85c083ad8dee3b53fcfd7cf1393a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 11 Jan 2015 17:47:39 +0300 Subject: [PATCH 0305/2060] libass: Update to 0.12.1 --- mingw-w64-libass/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libass/PKGBUILD b/mingw-w64-libass/PKGBUILD index ba2f7559dc..0005ace4a7 100644 --- a/mingw-w64-libass/PKGBUILD +++ b/mingw-w64-libass/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=libass - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.12.0 +pkgver=0.12.1 pkgrel=1 pkgdesc="A portable library for SSA/ASS subtitles rendering (mingw-w64)" arch=('any') @@ -19,7 +18,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-fribidi" "${MINGW_PACKAGE_PREFIX}-enca") options=('strip' 'staticlibs') source=(https://github.com/libass/${_realname}/archive/${pkgver}.tar.gz) -md5sums=('80917075df8dda2779e83e092c81ed16') +md5sums=('d493cd050d62aa174dbe1f41461f95c3') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -35,6 +34,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-shared \ + --enable-static \ --enable-harfbuzz \ --enable-fontconfig \ --enable-enca \ From 3b20946048904454b5fccfa68a1739cf73606515 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 11 Jan 2015 17:48:09 +0300 Subject: [PATCH 0306/2060] ffmpeg: Update to 2.5.3 --- mingw-w64-ffmpeg/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 076099ecee..4b58718c92 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,7 +2,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.5.2 +pkgver=2.5.3 pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') @@ -41,7 +41,7 @@ depends=( ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://ffmpeg.org/releases/$_realname-$pkgver.tar.bz2) -md5sums=('308d49d91752ac00ded9483ebaab849d') +md5sums=('efba7c5cfbea9ce58ff693cd08f90ffa') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 4cba0cecd96b6090ff8be11d5f299f5772da42da Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 11 Jan 2015 17:49:27 +0300 Subject: [PATCH 0307/2060] python-icu: Format. --- mingw-w64-python-icu/PKGBUILD | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mingw-w64-python-icu/PKGBUILD b/mingw-w64-python-icu/PKGBUILD index dc7476c2fc..e1b5e43c81 100644 --- a/mingw-w64-python-icu/PKGBUILD +++ b/mingw-w64-python-icu/PKGBUILD @@ -1,7 +1,6 @@ # Contributor: Josip _realname=PyICU - pkgname=("${MINGW_PACKAGE_PREFIX}-python2-icu" "${MINGW_PACKAGE_PREFIX}-python3-icu") pkgver=1.8 pkgrel=1 @@ -16,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-icu") options=('staticlibs' 'strip' '!debug') source=("https://pypi.python.org/packages/source/P/${_realname}/${_realname}-${pkgver}.tar.gz") -md5sums=("00c8d40e5400f52c8474aa9480e8dbc1") +md5sums=('00c8d40e5400f52c8474aa9480e8dbc1') prepare() { cd "${srcdir}" From c03e73f3695f4a58dfdf2f44e095f213ff063152 Mon Sep 17 00:00:00 2001 From: Josip Date: Sun, 11 Jan 2015 15:43:35 +0100 Subject: [PATCH 0308/2060] osmgpsmap-git: Added --- mingw-w64-osmgpsmap-git/PKGBUILD | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 mingw-w64-osmgpsmap-git/PKGBUILD diff --git a/mingw-w64-osmgpsmap-git/PKGBUILD b/mingw-w64-osmgpsmap-git/PKGBUILD new file mode 100644 index 0000000000..29d1a3c185 --- /dev/null +++ b/mingw-w64-osmgpsmap-git/PKGBUILD @@ -0,0 +1,46 @@ +# Contributor: Josip + +_realname=osm-gps-map +pkgname="${MINGW_PACKAGE_PREFIX}-osmgpsmap-git" +provides=("${MINGW_PACKAGE_PREFIX}-osmgpsmap") +conflicts=("${MINGW_PACKAGE_PREFIX}-osmgpsmap") +pkgver=r439.834bed2 +pkgrel=1 +pkgdesc="A Gtk+ Widget for Displaying OpenStreetMap tiles" +url="http://nzjrs.github.io/osm-gps-map/" +arch=('any') +license=('GPLv2+') +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-libsoup" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +makedepends=("${MINGW_PACKAGE_PREFIX}-gnome-common" + "${MINGW_PACKAGE_PREFIX}-gtk-doc" + "git") +options=('staticlibs' 'strip' '!debug') +source=("git://github.com/nzjrs/osm-gps-map") +md5sums=("SKIP") + +pkgver() { + cd $_realname + printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +build() { + export CC=gcc + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "${srcdir}"/${_realname}/autogen.sh \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-gtk-doc=no \ + --enable-shared=yes \ + --enable-static=yes + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install +} From 42561ef6e4e5e2eacb34581fd65d3eadd23c948a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 11 Jan 2015 18:46:15 +0300 Subject: [PATCH 0309/2060] ncurses: Update to 5.9.20150110 --- mingw-w64-ncurses/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ncurses/PKGBUILD b/mingw-w64-ncurses/PKGBUILD index 51b828ab2b..cc17584e74 100644 --- a/mingw-w64-ncurses/PKGBUILD +++ b/mingw-w64-ncurses/PKGBUILD @@ -3,7 +3,7 @@ _realname=ncurses pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _base_ver=5.9 -_date_rev=20141206 +_date_rev=20150110 pkgver=${_base_ver}.${_date_rev} pkgrel=1 pkgdesc="System V Release 4.0 curses emulation library" @@ -15,7 +15,7 @@ url="http://www.gnu.org/software/ncurses/" license=('MIT') options=('staticlibs' 'strip') source=("${_realname}-${pkgver}.tar.gz"::http://invisible-island.net/datafiles/current/${_realname}.tar.gz) -md5sums=('eca64493b91f64aed413ea3d120bd9bb') +md5sums=('30d78068f8cd0911575ec1cfec682d42') build() { mkdir -p build-${MINGW_CHOST} From f83bbef3dfe002ee328b95d6055ad2d177e66092 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 11 Jan 2015 19:10:06 +0300 Subject: [PATCH 0310/2060] osmgpsmap-git: Fix docs directory. --- mingw-w64-osmgpsmap-git/001-fix-docdir.patch | 11 +++++++++++ mingw-w64-osmgpsmap-git/PKGBUILD | 17 ++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-osmgpsmap-git/001-fix-docdir.patch diff --git a/mingw-w64-osmgpsmap-git/001-fix-docdir.patch b/mingw-w64-osmgpsmap-git/001-fix-docdir.patch new file mode 100644 index 0000000000..4e60411084 --- /dev/null +++ b/mingw-w64-osmgpsmap-git/001-fix-docdir.patch @@ -0,0 +1,11 @@ +--- osm-gps-map/Makefile.am.orig 2015-01-11 18:58:00.502800000 +0300 ++++ osm-gps-map/Makefile.am 2015-01-11 18:58:16.420200000 +0300 +@@ -7,7 +7,7 @@ + + ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + +-osm_gps_mapdocdir = ${prefix}/doc/osm-gps-map ++osm_gps_mapdocdir = ${prefix}/share/doc/osm-gps-map + osm_gps_mapdoc_DATA = \ + README \ + COPYING \ diff --git a/mingw-w64-osmgpsmap-git/PKGBUILD b/mingw-w64-osmgpsmap-git/PKGBUILD index 29d1a3c185..cc28d24a79 100644 --- a/mingw-w64-osmgpsmap-git/PKGBUILD +++ b/mingw-w64-osmgpsmap-git/PKGBUILD @@ -18,16 +18,26 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gnome-common" "${MINGW_PACKAGE_PREFIX}-gtk-doc" "git") options=('staticlibs' 'strip' '!debug') -source=("git://github.com/nzjrs/osm-gps-map") -md5sums=("SKIP") +source=("git://github.com/nzjrs/osm-gps-map" + 001-fix-docdir.patch) +md5sums=('SKIP' + '797e4ef839ab903de0311fd06277cb0c') pkgver() { cd $_realname printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } +prepare() { + cd ${_realname} + patch -p1 -i ${srcdir}/001-fix-docdir.patch + + gtkdocize + autoreconf -fiv +} + build() { - export CC=gcc + export CC=${MINGW_PREFIX}/bin/gcc mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" "${srcdir}"/${_realname}/autogen.sh \ @@ -37,6 +47,7 @@ build() { --enable-gtk-doc=no \ --enable-shared=yes \ --enable-static=yes + make } From a84f82bf301107adbc3e89028509b7cbfaae77a2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 12 Jan 2015 10:16:44 +0300 Subject: [PATCH 0311/2060] pip: Update to 6.0.6 --- mingw-w64-python-pip/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-pip/PKGBUILD b/mingw-w64-python-pip/PKGBUILD index e18ddd5855..f918e2757e 100644 --- a/mingw-w64-python-pip/PKGBUILD +++ b/mingw-w64-python-pip/PKGBUILD @@ -2,7 +2,7 @@ _realname=pip pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=6.0.3 +pkgver=6.0.6 pkgrel=1 pkgdesc="An easy_install replacement for installing pypi python packages (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(http://pypi.python.org/packages/source/p/pip/${_realname}-${pkgver}.tar.gz) -md5sums=('1ca6788e57a176abbdf6d99d69f54ae0') +md5sums=('bbb17814bdf82187f46aaf9cec6b6caa') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 3b8cfc1a67e5748f31b1c033d3f62ffaa21c8e67 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 12 Jan 2015 10:24:54 +0100 Subject: [PATCH 0312/2060] libview: fixed pkg-config file. --- mingw-w64-libview/002-missing-execprefix.patch | 8 ++++++++ mingw-w64-libview/PKGBUILD | 9 ++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-libview/002-missing-execprefix.patch diff --git a/mingw-w64-libview/002-missing-execprefix.patch b/mingw-w64-libview/002-missing-execprefix.patch new file mode 100644 index 0000000000..b35747a37e --- /dev/null +++ b/mingw-w64-libview/002-missing-execprefix.patch @@ -0,0 +1,8 @@ +--- ./libview.pc.in.orig 2015-01-12 09:55:44.051292400 +0100 ++++ ./libview.pc.in 2015-01-12 09:56:29.968892700 +0100 +@@ -1,4 +1,5 @@ + prefix=${prefix} ++exec_prefix=@exec_prefix@ + libdir=${exec_prefix}/lib + includedir=${prefix}/include + diff --git a/mingw-w64-libview/PKGBUILD b/mingw-w64-libview/PKGBUILD index 9d0ad0d2ec..aeafbe67b5 100644 --- a/mingw-w64-libview/PKGBUILD +++ b/mingw-w64-libview/PKGBUILD @@ -3,7 +3,7 @@ _realname=libview pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.6.6 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="VMware's Incredibly Exciting Widgets (mingw-w64)" options=(strip staticlibs) @@ -13,14 +13,17 @@ options=('strip' 'staticlibs') license=("GPL 2") url="http://view.sourceforge.net" source=(http://downloads.sourceforge.net/view/${_realname}-$pkgver.tar.bz2 - 001-win.patch) + 001-win.patch + 002-missing-execprefix.patch) sha256sums=('2b991bf150c5488b43f807e89bdbd64b2eb3bd433abbdfb68c3eec52cbaa59ab' - '7e7506735bf4c86c52aee2066955f18d539496cee9a41ed126cdb98b19bff24e') + '7e7506735bf4c86c52aee2066955f18d539496cee9a41ed126cdb98b19bff24e' + '38e68e8b36982283153f288ab7107a5934bc302fc065eac4d6daa46f00202bf5') prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-win.patch + patch -p1 -i ${srcdir}/002-missing-execprefix.patch autoreconf -isf } From e79b8379bd3fd8faae1906b3c221c64d8adb093c Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 12 Jan 2015 11:19:33 +0100 Subject: [PATCH 0313/2060] spice-gtk: update to 0.27. --- mingw-w64-spice-gtk/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-spice-gtk/PKGBUILD b/mingw-w64-spice-gtk/PKGBUILD index f65aadbf78..a6313aaffb 100644 --- a/mingw-w64-spice-gtk/PKGBUILD +++ b/mingw-w64-spice-gtk/PKGBUILD @@ -2,8 +2,8 @@ _realname=spice-gtk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.26 -pkgrel=2 +pkgver=0.27 +pkgrel=1 arch=('any') pkgdesc="GTK3 widget for SPICE clients (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gtk3" @@ -16,14 +16,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-usbredir" "${MINGW_PACKAGE_PREFIX}-dbus-glib" - "${MINGW_PACKAGE_PREFIX}-phodav") -makedepends=("${MINGW_PACKAGE_PREFIX}-spice-protocol") + "${MINGW_PACKAGE_PREFIX}-phodav" + "${MINGW_PACKAGE_PREFIX}-spice-protocol") options=('strip' 'staticlibs') license=("GPL 2") url="http://www.spice-space.org" source=(http://www.spice-space.org/download/gtk/${_realname}-$pkgver.tar.bz2 001-win.patch) -sha256sums=('d61cabeb4ae03afb5bb921139491d1088ca0cdf77c7e70b8039fe62c2246e3f9' +sha256sums=('5075e07010db434146649110ade31f5a6cdcdb4efbb4bedd40f1a977f090430c' 'fa47a600c6d152ab49f794305bba752fa80a644ef94d2007a1cccc00e244655a') prepare() { From b4ed9b83d43f2f7f50aa14e98aca091d220a6649 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 12 Jan 2015 11:30:12 +0100 Subject: [PATCH 0314/2060] gtksourceview3: upgrade to 3.14.3. --- mingw-w64-gtksourceview3/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gtksourceview3/PKGBUILD b/mingw-w64-gtksourceview3/PKGBUILD index e4d8dc754d..448df29e79 100644 --- a/mingw-w64-gtksourceview3/PKGBUILD +++ b/mingw-w64-gtksourceview3/PKGBUILD @@ -2,7 +2,7 @@ _realname=gtksourceview pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.14.1 +pkgver=3.14.3 pkgrel=1 pkgdesc="A text widget adding syntax highlighting and more to GNOME (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" options=(!libtool strip staticlibs) source=("http://ftp.gnome.org/pub/gnome/sources/gtksourceview/${pkgver%.*}/gtksourceview-${pkgver}.tar.xz" 0006-hack-convert-path-back-to-unix.patch) -md5sums=('a769939c7a3e3a07d365740404de1bd7' +md5sums=('ede804aed4cb19aed6ec9f08aa877052' '324c9e3bb2e4fa2a4977653ce6ed6ef9') prepare() { From 69571b716cbb41b308659b1b1a885154aef482c1 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 12 Jan 2015 12:04:01 +0100 Subject: [PATCH 0315/2060] gtkspell: update to 3.0.6. --- mingw-w64-gtkspell/001-win.patch | 10 ++++++++++ mingw-w64-gtkspell/PKGBUILD | 19 +++++++++++-------- .../gtkspell-no-undefined.patch | 10 ---------- 3 files changed, 21 insertions(+), 18 deletions(-) create mode 100644 mingw-w64-gtkspell/001-win.patch delete mode 100644 mingw-w64-gtkspell/gtkspell-no-undefined.patch diff --git a/mingw-w64-gtkspell/001-win.patch b/mingw-w64-gtkspell/001-win.patch new file mode 100644 index 0000000000..2994430ce5 --- /dev/null +++ b/mingw-w64-gtkspell/001-win.patch @@ -0,0 +1,10 @@ +--- ./gtkspell/Makefile.am.orig 2015-01-12 11:51:39.685322000 +0100 ++++ ./gtkspell/Makefile.am 2015-01-12 11:51:05.691346400 +0100 +@@ -52,6 +52,7 @@ + + if HAVE_INTROSPECTION + INTROSPECTION_GIRS = ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + if ENABLE_GTK3 + GtkSpell-3.0.gir: libgtkspell3-3.la diff --git a/mingw-w64-gtkspell/PKGBUILD b/mingw-w64-gtkspell/PKGBUILD index d50216d002..2ab2b68374 100644 --- a/mingw-w64-gtkspell/PKGBUILD +++ b/mingw-w64-gtkspell/PKGBUILD @@ -1,9 +1,9 @@ # Maintainer: Alexey Pavlov -_realname=gtkspell +_realname=gtkspell3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.0.16 +pkgver=3.0.6 pkgrel=1 pkgdesc="Provides word-processor-style highlighting and replacement of misspelled words in a GtkTextView widget (mingw-w64)" arch=('any') @@ -13,17 +13,19 @@ makedepends=("gtk-doc" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "intltool") -depends=("${MINGW_PACKAGE_PREFIX}-gtk2" +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gtk2" "${MINGW_PACKAGE_PREFIX}-enchant") options=(!libtool strip staticlibs) source=(http://gtkspell.sourceforge.net/download/${_realname}-${pkgver}.tar.gz - gtkspell-no-undefined.patch) -md5sums=('f75dcc9338f182c571b321d37c606a94' - '0ea2a6801314e22ba8e517fca4ad3066') + 001-win.patch) +md5sums=('cdc550a06dc424c8c497672bc54649db' + '761980f7811a41f4dab9a2a797946316') prepare() { cd ${_realname}-$pkgver - patch -p1 -i ${srcdir}/gtkspell-no-undefined.patch + + patch -p1 -i ${srcdir}/001-win.patch WANT_AUTOMAKE=latest autoreconf -fi } @@ -36,7 +38,8 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --disable-static + --disable-static \ + --enable-gtk2 make } diff --git a/mingw-w64-gtkspell/gtkspell-no-undefined.patch b/mingw-w64-gtkspell/gtkspell-no-undefined.patch deleted file mode 100644 index 545a2fe5d8..0000000000 --- a/mingw-w64-gtkspell/gtkspell-no-undefined.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- gtkspell-2.0.16/gtkspell/Makefile.am.orig 2004-06-10 07:41:57.000000000 +0400 -+++ gtkspell-2.0.16/gtkspell/Makefile.am 2014-06-25 06:55:08.016600000 +0400 -@@ -1,6 +1,7 @@ - lib_LTLIBRARIES=libgtkspell.la - AM_CFLAGS=@GTKSPELL_CFLAGS@ -DG_LOG_DOMAIN=\"gtkspell\" -DLOCALEDIR=\""$(datadir)/locale"\" - libgtkspell_la_LIBADD=@GTKSPELL_LIBS@ @SPELLER_LIB@ -+libgtkspell_la_LDFLAGS=-no-undefined - libgtkspell_la_includedir=$(includedir)/gtkspell-2.0/gtkspell - libgtkspell_la_include_HEADERS=gtkspell.h - libgtkspell_la_SOURCES=gtkspell.c deprecated.c gtkspell.h From ee3efa421eb92158bf092aa5994e93ca831a36b0 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 12 Jan 2015 17:05:24 +0100 Subject: [PATCH 0316/2060] latexila: new package - WIP. --- mingw-w64-latexila/001-win.patch | 31 ++++++++++++++ mingw-w64-latexila/PKGBUILD | 49 ++++++++++++++++++++++ mingw-w64-latexila/latexila-i686.install | 11 +++++ mingw-w64-latexila/latexila-x86_64.install | 11 +++++ 4 files changed, 102 insertions(+) create mode 100644 mingw-w64-latexila/001-win.patch create mode 100644 mingw-w64-latexila/PKGBUILD create mode 100644 mingw-w64-latexila/latexila-i686.install create mode 100644 mingw-w64-latexila/latexila-x86_64.install diff --git a/mingw-w64-latexila/001-win.patch b/mingw-w64-latexila/001-win.patch new file mode 100644 index 0000000000..bf21c089dc --- /dev/null +++ b/mingw-w64-latexila/001-win.patch @@ -0,0 +1,31 @@ +--- ./src/build_command_runner.vala.orig 2015-01-12 15:16:12.882554900 +0100 ++++ ./src/build_command_runner.vala 2015-01-12 15:18:14.007981800 +0100 +@@ -77,7 +77,7 @@ + { + if (_child_pid != null) + { +- Posix.kill (_child_pid, Posix.SIGTERM); ++ Windows.TerminateProcess (_child_pid, 0); + _child_pid = null; + } + } +--- ./src/Makefile.am.orig 2015-01-12 15:30:54.450523100 +0100 ++++ ./src/Makefile.am 2015-01-12 15:31:07.342497200 +0100 +@@ -69,7 +69,8 @@ + $(vala_files) \ + $(vapidir)/config.vapi \ + $(vapidir)/gedit.vapi \ +- $(vapidir)/menu_tool_action.vapi ++ $(vapidir)/menu_tool_action.vapi \ ++ $(vapidir)/windows.vapi + + latexila_CPPFLAGS = \ + -I$(top_srcdir) \ +--- ./vapi/windows.vapi.orig 2015-01-12 15:42:31.000000000 +0100 ++++ ./vapi/windows.vapi 2015-01-12 15:42:23.883452400 +0100 +@@ -0,0 +1,5 @@ ++[CCode (lower_case_cprefix="", cheader_filename="windows.h")] ++namespace Windows ++{ ++ public bool TerminateProcess (GLib.Pid hProcess, uint uExitCode); ++} diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD new file mode 100644 index 0000000000..253aaaa92b --- /dev/null +++ b/mingw-w64-latexila/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: Andrea Zagli + +_realname=latexila +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.14.3 +pkgrel=1 +arch=('any') +pkgdesc="LaTeX editor designed for the GNOME desktop (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gtksourceview3" + "${MINGW_PACKAGE_PREFIX}-gtkspell3" + "${MINGW_PACKAGE_PREFIX}-libgee" + "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas") +makedepends=("${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +license=("GPL 2") +url="http://www.gnome.org" +install=latexila-${CARCH}.install +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('bdc46a52cba778646af05ade9ea7cc639e34f8aafdb640ad2217f21d067c7039' + '227e4eb6c8d4b03fc5ffdf97595c598198d3b97b99e1a6a280243c8357751a21') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + echo "" > vapi/windows.vapi + patch -p1 -i ${srcdir}/001-win.patch +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + + make DESTDIR=$pkgdir install +} diff --git a/mingw-w64-latexila/latexila-i686.install b/mingw-w64-latexila/latexila-i686.install new file mode 100644 index 0000000000..375e708c36 --- /dev/null +++ b/mingw-w64-latexila/latexila-i686.install @@ -0,0 +1,11 @@ +post_install() { + mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/mingw-w64-latexila/latexila-x86_64.install b/mingw-w64-latexila/latexila-x86_64.install new file mode 100644 index 0000000000..d43ee14ce7 --- /dev/null +++ b/mingw-w64-latexila/latexila-x86_64.install @@ -0,0 +1,11 @@ +post_install() { + mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} From f8c4c1f9022c695aab7d94b60ab5ee37c32d9595 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 12 Jan 2015 17:47:03 +0000 Subject: [PATCH 0317/2060] mingw-w64-headers-git: Temporarily revert ea95d5 It was causing build failures for node.js (and evolution-data-server and miniupnpc) --- .../0001-Revert-Update-netioa-API.patch | 6786 +++++++++++++++++ mingw-w64-headers-git/PKGBUILD | 7 +- ...1-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch | 11 + 3 files changed, 6802 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-headers-git/0001-Revert-Update-netioa-API.patch create mode 100644 mingw-w64-nodejs/0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch diff --git a/mingw-w64-headers-git/0001-Revert-Update-netioa-API.patch b/mingw-w64-headers-git/0001-Revert-Update-netioa-API.patch new file mode 100644 index 0000000000..15c75666b0 --- /dev/null +++ b/mingw-w64-headers-git/0001-Revert-Update-netioa-API.patch @@ -0,0 +1,6786 @@ +From a39ff0194164566a287b54f3f7f6b32bf4db4be7 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 12 Jan 2015 17:31:46 +0000 +Subject: [PATCH] Revert "Update netioa-API" + +This reverts commit ea95d55e3387353e453d6ae8fc5cb8f7503947c2. +--- + mingw-w64-headers/include/iphlpapi.h | 370 +-- + mingw-w64-headers/include/netioapi.h | 949 ++++--- + mingw-w64-headers/include/ntddndis.h | 4787 ++++++++-------------------------- + 3 files changed, 1949 insertions(+), 4157 deletions(-) + +diff --git a/mingw-w64-headers/include/iphlpapi.h b/mingw-w64-headers/include/iphlpapi.h +index a237c8a..62a4a48 100644 +--- a/mingw-w64-headers/include/iphlpapi.h ++++ b/mingw-w64-headers/include/iphlpapi.h +@@ -1,15 +1,11 @@ + /** ++ * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. +- * No warranty is given; refer to the file DISCLAIMER within this package. ++ * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ +- + #ifndef __IPHLPAPI_H__ + #define __IPHLPAPI_H__ + +-#include +- +-#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) +- + #ifdef __cplusplus + extern "C" { + #endif +@@ -17,162 +13,232 @@ extern "C" { + #include + #include + #include ++#include ++#include ++#include + #include + +- DWORD WINAPI GetNumberOfInterfaces (PDWORD pdwNumIf); +- DWORD WINAPI GetIfEntry (PMIB_IFROW pIfRow); +- DWORD WINAPI GetIfTable (PMIB_IFTABLE pIfTable, PULONG pdwSize, WINBOOL bOrder); +- DWORD WINAPI GetIpAddrTable (PMIB_IPADDRTABLE pIpAddrTable, PULONG pdwSize, WINBOOL bOrder); +- ULONG WINAPI GetIpNetTable (PMIB_IPNETTABLE IpNetTable, PULONG SizePointer, WINBOOL Order); +- DWORD WINAPI GetIpForwardTable (PMIB_IPFORWARDTABLE pIpForwardTable, PULONG pdwSize, WINBOOL bOrder); +- ULONG WINAPI GetTcpTable (PMIB_TCPTABLE TcpTable, PULONG SizePointer, WINBOOL Order); +- DWORD WINAPI GetExtendedTcpTable (PVOID pTcpTable, PDWORD pdwSize, WINBOOL bOrder, ULONG ulAf, TCP_TABLE_CLASS TableClass, ULONG Reserved); +- DWORD WINAPI GetOwnerModuleFromTcpEntry (PMIB_TCPROW_OWNER_MODULE pTcpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); +- ULONG WINAPI GetUdpTable (PMIB_UDPTABLE UdpTable, PULONG SizePointer, WINBOOL Order); +- DWORD WINAPI GetExtendedUdpTable (PVOID pUdpTable, PDWORD pdwSize, WINBOOL bOrder, ULONG ulAf, UDP_TABLE_CLASS TableClass, ULONG Reserved); +- DWORD WINAPI GetOwnerModuleFromUdpEntry (PMIB_UDPROW_OWNER_MODULE pUdpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); +-#if NTDDI_VERSION < 0x06000000 +- DWORD AllocateAndGetTcpExTableFromStack (PVOID *ppTcpTable, WINBOOL bOrder, HANDLE hHeap, DWORD dwFlags, DWORD dwFamily); +- DWORD AllocateAndGetUdpExTableFromStack (PVOID *ppUdpTable, WINBOOL bOrder, HANDLE hHeap, DWORD dwFlags, DWORD dwFamily); +-#else +- ULONG WINAPI GetTcpTable2 (PMIB_TCPTABLE2 TcpTable, PULONG SizePointer, WINBOOL Order); ++ DWORD WINAPI GetNumberOfInterfaces(PDWORD pdwNumIf); ++ DWORD WINAPI GetIfEntry(PMIB_IFROW pIfRow); ++ DWORD WINAPI GetIfTable(PMIB_IFTABLE pIfTable,PULONG pdwSize,WINBOOL bOrder); ++ DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE pIpAddrTable,PULONG pdwSize,WINBOOL bOrder); ++ DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE pIpNetTable,PULONG pdwSize,WINBOOL bOrder); ++ DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE pIpForwardTable,PULONG pdwSize,WINBOOL bOrder); ++ DWORD WINAPI GetTcpTable(PMIB_TCPTABLE pTcpTable,PDWORD pdwSize,WINBOOL bOrder); ++ DWORD WINAPI GetUdpTable(PMIB_UDPTABLE pUdpTable,PDWORD pdwSize,WINBOOL bOrder); ++ DWORD WINAPI GetIpStatistics(PMIB_IPSTATS pStats); ++ DWORD WINAPI GetIpStatisticsEx(PMIB_IPSTATS pStats,DWORD dwFamily); ++ DWORD WINAPI GetIcmpStatistics(PMIB_ICMP pStats); ++ DWORD WINAPI GetIcmpStatisticsEx(PMIB_ICMP_EX pStats,DWORD dwFamily); ++ DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS pStats); ++ DWORD WINAPI GetTcpStatisticsEx(PMIB_TCPSTATS pStats,DWORD dwFamily); ++ DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS pStats); ++ DWORD WINAPI GetUdpStatisticsEx(PMIB_UDPSTATS pStats,DWORD dwFamily); ++ DWORD WINAPI SetIfEntry(PMIB_IFROW pIfRow); ++ DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW pRoute); ++ DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW pRoute); ++ DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW pRoute); ++ DWORD WINAPI SetIpStatistics(PMIB_IPSTATS pIpStats); ++ DWORD WINAPI SetIpTTL(UINT nTTL); ++ DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW pArpEntry); ++ DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW pArpEntry); ++ DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW pArpEntry); ++ DWORD WINAPI FlushIpNetTable(DWORD dwIfIndex); ++ DWORD WINAPI CreateProxyArpEntry(DWORD dwAddress,DWORD dwMask,DWORD dwIfIndex); ++ DWORD WINAPI DeleteProxyArpEntry(DWORD dwAddress,DWORD dwMask,DWORD dwIfIndex); ++ DWORD WINAPI SetTcpEntry(PMIB_TCPROW pTcpRow); ++ DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable,PULONG dwOutBufLen); ++ DWORD WINAPI GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo,PULONG dwOutBufLen); ++ ++#ifndef NhpAllocateAndGetInterfaceInfoFromStack_DEFINED ++#define NhpAllocateAndGetInterfaceInfoFromStack_DEFINED ++ DWORD WINAPI NhpAllocateAndGetInterfaceInfoFromStack(IP_INTERFACE_NAME_INFO **ppTable,PDWORD pdwCount,WINBOOL bOrder,HANDLE hHeap,DWORD dwFlags); + #endif + +-#ifdef _WS2IPDEF_ +- +-#if NTDDI_VERSION >= 0x06000000 +- ULONG WINAPI GetTcp6Table (PMIB_TCP6TABLE TcpTable, PULONG SizePointer, WINBOOL Order); +- ULONG WINAPI GetTcp6Table2 (PMIB_TCP6TABLE2 TcpTable, PULONG SizePointer, WINBOOL Order); +-#endif +- ULONG WINAPI GetPerTcpConnectionEStats (PMIB_TCPROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, PUCHAR Ros, ULONG RosVersion, ULONG RosSize, PUCHAR Rod, ULONG RodVersion, ULONG RodSize); +- ULONG WINAPI SetPerTcpConnectionEStats (PMIB_TCPROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, ULONG Offset); +- ULONG WINAPI GetPerTcp6ConnectionEStats (PMIB_TCP6ROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, PUCHAR Ros, ULONG RosVersion, ULONG RosSize, PUCHAR Rod, ULONG RodVersion, ULONG RodSize); +- ULONG WINAPI SetPerTcp6ConnectionEStats (PMIB_TCP6ROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, ULONG Offset); +- DWORD WINAPI GetOwnerModuleFromTcp6Entry (PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); +- ULONG WINAPI GetUdp6Table (PMIB_UDP6TABLE Udp6Table, PULONG SizePointer, WINBOOL Order); +- DWORD WINAPI GetOwnerModuleFromUdp6Entry (PMIB_UDP6ROW_OWNER_MODULE pUdpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); +-#endif +- DWORD GetOwnerModuleFromPidAndInfo (ULONG ulPid, ULONGLONG *pInfo, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); +- ULONG WINAPI GetIpStatistics (PMIB_IPSTATS Statistics); +- ULONG WINAPI GetIcmpStatistics (PMIB_ICMP Statistics); +- ULONG WINAPI GetTcpStatistics (PMIB_TCPSTATS Statistics); +- ULONG WINAPI GetUdpStatistics (PMIB_UDPSTATS Stats); +- ULONG WINAPI GetIpStatisticsEx (PMIB_IPSTATS Statistics, ULONG Family); +- ULONG WINAPI SetIpStatisticsEx (PMIB_IPSTATS Statistics, ULONG Family); +- ULONG WINAPI GetIcmpStatisticsEx (PMIB_ICMP_EX Statistics, ULONG Family); +- ULONG WINAPI GetTcpStatisticsEx (PMIB_TCPSTATS Statistics, ULONG Family); +- ULONG WINAPI GetUdpStatisticsEx (PMIB_UDPSTATS Statistics, ULONG Family); +- DWORD WINAPI SetIfEntry (PMIB_IFROW pIfRow); +- DWORD WINAPI CreateIpForwardEntry (PMIB_IPFORWARDROW pRoute); +- DWORD WINAPI SetIpForwardEntry (PMIB_IPFORWARDROW pRoute); +- DWORD WINAPI DeleteIpForwardEntry (PMIB_IPFORWARDROW pRoute); +- DWORD WINAPI SetIpStatistics (PMIB_IPSTATS pIpStats); +- DWORD WINAPI SetIpTTL (UINT nTTL); +- DWORD WINAPI CreateIpNetEntry (PMIB_IPNETROW pArpEntry); +- DWORD WINAPI SetIpNetEntry (PMIB_IPNETROW pArpEntry); +- DWORD WINAPI DeleteIpNetEntry (PMIB_IPNETROW pArpEntry); +- DWORD WINAPI FlushIpNetTable (DWORD dwIfIndex); +- DWORD WINAPI CreateProxyArpEntry (DWORD dwAddress, DWORD dwMask, DWORD dwIfIndex); +- DWORD WINAPI DeleteProxyArpEntry (DWORD dwAddress, DWORD dwMask, DWORD dwIfIndex); +- DWORD WINAPI SetTcpEntry (PMIB_TCPROW pTcpRow); +- DWORD WINAPI GetInterfaceInfo (PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen); +- DWORD WINAPI GetUniDirectionalAdapterInfo (PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo, PULONG dwOutBufLen); +-#ifndef NHPALLOCATEANDGETINTERFACEINFOFROMSTACK_DEFINED +-#define NHPALLOCATEANDGETINTERFACEINFOFROMSTACK_DEFINED +- DWORD WINAPI NhpAllocateAndGetInterfaceInfoFromStack (IP_INTERFACE_NAME_INFO **ppTable, PDWORD pdwCount, WINBOOL bOrder, HANDLE hHeap, DWORD dwFlags); +-#endif +- DWORD WINAPI GetBestInterface (IPAddr dwDestAddr, PDWORD pdwBestIfIndex); +- DWORD WINAPI GetBestInterfaceEx (struct sockaddr *pDestAddr, PDWORD pdwBestIfIndex); +- DWORD WINAPI GetBestRoute (DWORD dwDestAddr, DWORD dwSourceAddr, PMIB_IPFORWARDROW pBestRoute); +- DWORD WINAPI NotifyAddrChange (PHANDLE Handle, LPOVERLAPPED overlapped); +- DWORD WINAPI NotifyRouteChange (PHANDLE Handle, LPOVERLAPPED overlapped); +- WINBOOL WINAPI CancelIPChangeNotify (LPOVERLAPPED notifyOverlapped); +- DWORD WINAPI GetAdapterIndex (LPWSTR AdapterName, PULONG IfIndex); +- DWORD WINAPI AddIPAddress (IPAddr Address, IPMask IpMask, DWORD IfIndex, PULONG NTEContext, PULONG NTEInstance); +- DWORD WINAPI DeleteIPAddress (ULONG NTEContext); +- DWORD WINAPI GetNetworkParams (PFIXED_INFO pFixedInfo, PULONG pOutBufLen); +- ULONG WINAPI GetAdaptersInfo (PIP_ADAPTER_INFO AdapterInfo, PULONG SizePointer); +- PIP_ADAPTER_ORDER_MAP WINAPI GetAdapterOrderMap (VOID); ++ DWORD WINAPI GetBestInterface(IPAddr dwDestAddr,PDWORD pdwBestIfIndex); ++ DWORD WINAPI GetBestInterfaceEx(struct sockaddr *pDestAddr,PDWORD pdwBestIfIndex); ++ DWORD WINAPI GetBestRoute(DWORD dwDestAddr,DWORD dwSourceAddr,PMIB_IPFORWARDROW pBestRoute); ++ DWORD WINAPI GetExtendedTcpTable (PVOID pTcpTable,PDWORD pdwSize,BOOL bOrder,ULONG ulAf,TCP_TABLE_CLASS TableClass,ULONG Reserved); ++ DWORD WINAPI NotifyAddrChange(PHANDLE Handle,LPOVERLAPPED overlapped); ++ DWORD WINAPI NotifyRouteChange(PHANDLE Handle,LPOVERLAPPED overlapped); ++ WINBOOL WINAPI CancelIPChangeNotify(LPOVERLAPPED notifyOverlapped); ++ DWORD WINAPI GetAdapterIndex(LPWSTR AdapterName,PULONG IfIndex); ++ DWORD WINAPI AddIPAddress(IPAddr Address,IPMask IpMask,DWORD IfIndex,PULONG NTEContext,PULONG NTEInstance); ++ DWORD WINAPI DeleteIPAddress(ULONG NTEContext); ++ DWORD WINAPI GetNetworkParams(PFIXED_INFO pFixedInfo,PULONG pOutBufLen); ++ DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo,PULONG pOutBufLen); ++ PIP_ADAPTER_ORDER_MAP WINAPI GetAdapterOrderMap(VOID); + + #ifdef _WINSOCK2API_ +- ULONG WINAPI GetAdaptersAddresses (ULONG Family, ULONG Flags, PVOID Reserved, PIP_ADAPTER_ADDRESSES AdapterAddresses, PULONG SizePointer); ++ DWORD WINAPI GetAdaptersAddresses(ULONG Family,DWORD Flags,PVOID Reserved,PIP_ADAPTER_ADDRESSES pAdapterAddresses,PULONG pOutBufLen); + #endif + +- DWORD WINAPI GetPerAdapterInfo (ULONG IfIndex, PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen); +- DWORD WINAPI IpReleaseAddress (PIP_ADAPTER_INDEX_MAP AdapterInfo); +- DWORD WINAPI IpRenewAddress (PIP_ADAPTER_INDEX_MAP AdapterInfo); +- DWORD WINAPI SendARP (IPAddr DestIP, IPAddr SrcIP, PVOID pMacAddr, PULONG PhyAddrLen); +- WINBOOL WINAPI GetRTTAndHopCount (IPAddr DestIpAddress, PULONG HopCount, ULONG MaxHops, PULONG RTT); +- DWORD WINAPI GetFriendlyIfIndex (DWORD IfIndex); +- DWORD WINAPI EnableRouter (HANDLE *pHandle, OVERLAPPED *pOverlapped); +- DWORD WINAPI UnenableRouter (OVERLAPPED *pOverlapped, LPDWORD lpdwEnableCount); +- DWORD WINAPI DisableMediaSense (HANDLE *pHandle, OVERLAPPED *pOverLapped); +- DWORD WINAPI RestoreMediaSense (OVERLAPPED *pOverlapped, LPDWORD lpdwEnableCount); +- +-#if NTDDI_VERSION >= 0x06000000 +-#define NET_STRING_IPV4_ADDRESS 0x00000001 +-#define NET_STRING_IPV4_SERVICE 0x00000002 +-#define NET_STRING_IPV4_NETWORK 0x00000004 +-#define NET_STRING_IPV6_ADDRESS 0x00000008 +-#define NET_STRING_IPV6_ADDRESS_NO_SCOPE 0x00000010 +-#define NET_STRING_IPV6_SERVICE 0x00000020 +-#define NET_STRING_IPV6_SERVICE_NO_SCOPE 0x00000040 +-#define NET_STRING_IPV6_NETWORK 0x00000080 +-#define NET_STRING_NAMED_ADDRESS 0x00000100 +-#define NET_STRING_NAMED_SERVICE 0x00000200 +- +-#define NET_STRING_IP_ADDRESS (NET_STRING_IPV4_ADDRESS | NET_STRING_IPV6_ADDRESS) +-#define NET_STRING_IP_ADDRESS_NO_SCOPE (NET_STRING_IPV4_ADDRESS | NET_STRING_IPV6_ADDRESS_NO_SCOPE) +-#define NET_STRING_IP_SERVICE (NET_STRING_IPV4_SERVICE | NET_STRING_IPV6_SERVICE) +-#define NET_STRING_IP_SERVICE_NO_SCOPE (NET_STRING_IPV4_SERVICE | NET_STRING_IPV6_SERVICE_NO_SCOPE) +-#define NET_STRING_IP_NETWORK (NET_STRING_IPV4_NETWORK | NET_STRING_IPV6_NETWORK) +-#define NET_STRING_ANY_ADDRESS (NET_STRING_NAMED_ADDRESS | NET_STRING_IP_ADDRESS) +-#define NET_STRING_ANY_ADDRESS_NO_SCOPE (NET_STRING_NAMED_ADDRESS | NET_STRING_IP_ADDRESS_NO_SCOPE) +-#define NET_STRING_ANY_SERVICE (NET_STRING_NAMED_SERVICE | NET_STRING_IP_SERVICE) +-#define NET_STRING_ANY_SERVICE_NO_SCOPE (NET_STRING_NAMED_SERVICE | NET_STRING_IP_SERVICE_NO_SCOPE) +- +- typedef enum NET_ADDRESS_FORMAT_ { +- NET_ADDRESS_FORMAT_UNSPECIFIED = 0, +- NET_ADDRESS_DNS_NAME, +- NET_ADDRESS_IPV4, +- NET_ADDRESS_IPV6 +- } NET_ADDRESS_FORMAT; +- +-#if defined (_WS2DEF_) && defined (_WS2IPDEF_) && defined (_WINDNS_INCLUDED_) +- typedef struct NET_ADDRESS_INFO_ { +- NET_ADDRESS_FORMAT Format; +- __C89_NAMELESS union { +- struct { +- WCHAR Address[DNS_MAX_NAME_BUFFER_LENGTH]; +- WCHAR Port[6]; +- } NamedAddress; +- SOCKADDR_IN Ipv4Address; +- SOCKADDR_IN6 Ipv6Address; +- SOCKADDR IpAddress; +- }; +- } NET_ADDRESS_INFO,*PNET_ADDRESS_INFO; +- +- DWORD WINAPI ParseNetworkString (CONST WCHAR *NetworkString, DWORD Types, PNET_ADDRESS_INFO AddressInfo, USHORT *PortNumber, BYTE *PrefixLength); +-#endif +- DWORD WINAPI GetIpErrorString (IP_STATUS ErrorCode, PWSTR Buffer, PDWORD Size); +-#ifdef _WS2DEF_ +- ULONG WINAPI ResolveNeighbor (SOCKADDR *NetworkAddress, PVOID PhysicalAddress, PULONG PhysicalAddressLength); +-#endif +- ULONG WINAPI CreatePersistentTcpPortReservation (USHORT StartPort, USHORT NumberOfPorts, PULONG64 Token); +- ULONG WINAPI CreatePersistentUdpPortReservation (USHORT StartPort, USHORT NumberOfPorts, PULONG64 Token); +- ULONG WINAPI DeletePersistentTcpPortReservation (USHORT StartPort, USHORT NumberOfPorts); +- ULONG WINAPI DeletePersistentUdpPortReservation (USHORT StartPort, USHORT NumberOfPorts); +- ULONG WINAPI LookupPersistentTcpPortReservation (USHORT StartPort, USHORT NumberOfPorts, PULONG64 Token); +- ULONG WINAPI LookupPersistentUdpPortReservation (USHORT StartPort, USHORT NumberOfPorts, PULONG64 Token); +-#endif +- +-#if NTDDI_VERSION >= 0x06000000 +-#include +-#endif ++ DWORD WINAPI GetPerAdapterInfo(ULONG IfIndex,PIP_PER_ADAPTER_INFO pPerAdapterInfo,PULONG pOutBufLen); ++ DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo); ++ DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo); ++ DWORD WINAPI SendARP(IPAddr DestIP,IPAddr SrcIP,PULONG pMacAddr,PULONG PhyAddrLen); ++ WINBOOL WINAPI GetRTTAndHopCount(IPAddr DestIpAddress,PULONG HopCount,ULONG MaxHops,PULONG RTT); ++ DWORD WINAPI GetFriendlyIfIndex(DWORD IfIndex); ++ DWORD WINAPI EnableRouter(HANDLE *pHandle,OVERLAPPED *pOverlapped); ++ DWORD WINAPI UnenableRouter(OVERLAPPED *pOverlapped,LPDWORD lpdwEnableCount); ++ DWORD WINAPI DisableMediaSense(HANDLE *pHandle,OVERLAPPED *pOverLapped); ++ DWORD WINAPI RestoreMediaSense(OVERLAPPED *pOverlapped,LPDWORD lpdwEnableCount); ++ DWORD WINAPI GetIpErrorString(IP_STATUS ErrorCode,PWCHAR Buffer,PDWORD Size); ++ ++DWORD WINAPI GetExtendedUdpTable( ++ PVOID pUdpTable, ++ PDWORD pdwSize, ++ WINBOOL bOrder, ++ ULONG ulAf, ++ UDP_TABLE_CLASS TableClass, ++ ULONG Reserved ++); ++ ++DWORD WINAPI GetOwnerModuleFromTcp6Entry( ++ PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, ++ TCPIP_OWNER_MODULE_INFO_CLASS Class, ++ PVOID Buffer, ++ PDWORD pdwSize ++); ++ ++DWORD WINAPI GetOwnerModuleFromTcpEntry( ++ PMIB_TCPROW_OWNER_MODULE pTcpEntry, ++ TCPIP_OWNER_MODULE_INFO_CLASS Class, ++ PVOID Buffer, ++ PDWORD pdwSize ++); ++ ++DWORD WINAPI GetOwnerModuleFromUdp6Entry( ++ PMIB_UDP6ROW_OWNER_MODULE pUdpEntry, ++ TCPIP_OWNER_MODULE_INFO_CLASS Class, ++ PVOID Buffer, ++ PDWORD pdwSize ++); ++ ++DWORD WINAPI GetOwnerModuleFromUdpEntry( ++ PMIB_UDPROW_OWNER_MODULE pUdpEntry, ++ TCPIP_OWNER_MODULE_INFO_CLASS Class, ++ PVOID Buffer, ++ PDWORD pdwSize ++); ++ ++#if (_WIN32_WINNT == 0x0502) /* Only with Win2003 SP1 and SP2 */ ++ WINBOOL WINAPI CancelSecurityHealthChangeNotify(LPOVERLAPPED notifyOverlapped); ++#endif /*(_WIN32_WINNT == 0x0502)*/ ++ ++#if (_WIN32_WINNT >= 0x0600) ++#include ++ ++typedef enum _NET_ADDRESS_FORMAT { ++ NET_ADDRESS_FORMAT_UNSPECIFIED = 0, ++ NET_ADDRESS_DNS_NAME, ++ NET_ADDRESS_IPV4, ++ NET_ADDRESS_IPV6 ++} NET_ADDRESS_FORMAT; ++ ++typedef struct _NET_ADDRESS_INFO { ++ NET_ADDRESS_FORMAT Format; ++ __C89_NAMELESS union { ++ struct { ++ WCHAR Address[DNS_MAX_NAME_BUFFER_LENGTH]; ++ WCHAR Port[6]; ++ } NamedAddress; ++ SOCKADDR_IN Ipv4Address; ++ SOCKADDR_IN6 Ipv6Address; ++ SOCKADDR IpAddress; ++ }; ++} NET_ADDRESS_INFO, *PNET_ADDRESS_INFO; ++ ++ULONG WINAPI GetPerTcp6ConnectionEStats( ++ PMIB_TCP6ROW Row, ++ TCP_ESTATS_TYPE EstatsType, ++ PUCHAR Rw, ++ ULONG RwVersion, ++ ULONG RwSize, ++ PUCHAR Ros, ++ ULONG RosVersion, ++ ULONG RosSize, ++ PUCHAR Rod, ++ ULONG RodVersion, ++ ULONG RodSize ++); ++ ++ULONG WINAPI SetPerTcp6ConnectionEStats( ++ PMIB_TCP6ROW Row, ++ TCP_ESTATS_TYPE EstatsType, ++ PUCHAR Rw, ++ ULONG RwVersion, ++ ULONG RwSize, ++ ULONG Offset ++); ++ ++ULONG WINAPI SetPerTcpConnectionEStats( ++ PMIB_TCPROW Row, ++ TCP_ESTATS_TYPE EstatsType, ++ PUCHAR Rw, ++ ULONG RwVersion, ++ ULONG RwSize, ++ ULONG Offset ++); ++ ++ULONG WINAPI GetTcp6Table( ++ PMIB_TCP6TABLE TcpTable, ++ PULONG SizePointer, ++ WINBOOL Order ++); ++ ++ULONG WINAPI GetPerTcpConnectionEStats( ++ PMIB_TCPROW Row, ++ TCP_ESTATS_TYPE EstatsType, ++ PUCHAR Rw, ++ ULONG RwVersion, ++ ULONG RwSize, ++ PUCHAR Ros, ++ ULONG RosVersion, ++ ULONG RosSize, ++ PUCHAR Rod, ++ ULONG RodVersion, ++ ULONG RodSize ++); ++ ++ULONG WINAPI GetTcp6Table2( ++ PMIB_TCP6TABLE2 TcpTable, ++ PULONG SizePointer, ++ WINBOOL Order ++); ++ ++ULONG WINAPI GetTcpTable2( ++ PMIB_TCPTABLE2 TcpTable, ++ PULONG SizePointer, ++ WINBOOL Order ++); ++ ++ULONG WINAPI GetUdp6Table( ++ PMIB_UDP6TABLE Udp6Table, ++ PULONG SizePointer, ++ WINBOOL Order ++); ++ ++DWORD WINAPI NotifySecurityHealthChange( ++ PHANDLE pHandle, ++ LPOVERLAPPED pOverLapped, ++ PULONG SecurityHealthFlags ++); ++ ++ULONG WINAPI ResolveNeighbor( ++ SOCKADDR *NetworkAddress, ++ PVOID PhysicalAddress, ++ PULONG PhysicalAddressLength ++); ++ ++DWORD WINAPI SetIpStatisticsEx( ++ PMIB_IPSTATS pIpStats, ++ ULONG Family ++); ++ ++#endif /*(_WIN32_WINNT >= 0x0600)*/ + + #ifdef __cplusplus + } + #endif +- +-#endif + #endif +diff --git a/mingw-w64-headers/include/netioapi.h b/mingw-w64-headers/include/netioapi.h +index e36bcf2..164f972 100644 +--- a/mingw-w64-headers/include/netioapi.h ++++ b/mingw-w64-headers/include/netioapi.h +@@ -1,390 +1,609 @@ + /** ++ * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. +- * No warranty is given; refer to the file DISCLAIMER within this pack ++ * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ ++#ifndef _INC_NETIOAPI ++#define _INC_NETIOAPI + +-#ifndef _NETIOAPI_H_ +-#define _NETIOAPI_H_ +- +-#include +- +-#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) +- +-#ifdef __cplusplus +-extern "C" { ++#include ++#ifndef __CYGWIN__ ++#include + #endif ++#include ++#include ++#include + + #ifndef ANY_SIZE + #define ANY_SIZE 1 + #endif + ++#ifdef __cplusplus ++extern "C" { ++#endif ++ + #ifdef __IPHLPAPI_H__ + #define NETIO_STATUS DWORD +-#define NETIO_SUCCESS(x) ((x) == NO_ERROR) + #define NETIOAPI_API_ WINAPI + #else +-#include +-#ifndef __CYGWIN__ +-#include +-#endif +-#include +-#include +-#include +- + #define NETIO_STATUS NTSTATUS +-#define NETIO_SUCCESS(x) NT_SUCCESS (x) + #define NETIOAPI_API_ NTAPI + #endif + +-#define _NETIOAPI_SUCCESS_ + #define NETIOAPI_API NETIO_STATUS NETIOAPI_API_ +- +-#define IF_NAMESIZE NDIS_IF_MAX_STRING_SIZE +- +- typedef enum _MIB_NOTIFICATION_TYPE { +- MibParameterNotification, +- MibAddInstance, +- MibDeleteInstance, +- MibInitialNotification +- } MIB_NOTIFICATION_TYPE,*PMIB_NOTIFICATION_TYPE; +- +-#ifdef _WS2IPDEF_ +-#include +- +-#define MIB_INVALID_TEREDO_PORT_NUMBER 0 +- +- typedef enum _MIB_IF_TABLE_LEVEL { +- MibIfTableNormal, +- MibIfTableRaw +- } MIB_IF_TABLE_LEVEL, *PMIB_IF_TABLE_LEVEL; +- +- typedef struct _MIB_IF_ROW2 { +- NET_LUID InterfaceLuid; +- NET_IFINDEX InterfaceIndex; +- GUID InterfaceGuid; +- WCHAR Alias[IF_MAX_STRING_SIZE + 1]; +- WCHAR Description[IF_MAX_STRING_SIZE + 1]; +- ULONG PhysicalAddressLength; +- UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; +- UCHAR PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; +- ULONG Mtu; +- IFTYPE Type; +- TUNNEL_TYPE TunnelType; +- NDIS_MEDIUM MediaType; +- NDIS_PHYSICAL_MEDIUM PhysicalMediumType; +- NET_IF_ACCESS_TYPE AccessType; +- NET_IF_DIRECTION_TYPE DirectionType; +- struct { +- BOOLEAN HardwareInterface : 1; +- BOOLEAN FilterInterface : 1; +- BOOLEAN ConnectorPresent : 1; +- BOOLEAN NotAuthenticated : 1; +- BOOLEAN NotMediaConnected : 1; +- BOOLEAN Paused : 1; +- BOOLEAN LowPower : 1; +- BOOLEAN EndPointInterface : 1; +- } InterfaceAndOperStatusFlags; +- IF_OPER_STATUS OperStatus; +- NET_IF_ADMIN_STATUS AdminStatus; +- NET_IF_MEDIA_CONNECT_STATE MediaConnectState; +- NET_IF_NETWORK_GUID NetworkGuid; +- NET_IF_CONNECTION_TYPE ConnectionType; +- ULONG64 TransmitLinkSpeed; +- ULONG64 ReceiveLinkSpeed; +- ULONG64 InOctets; +- ULONG64 InUcastPkts; +- ULONG64 InNUcastPkts; +- ULONG64 InDiscards; +- ULONG64 InErrors; +- ULONG64 InUnknownProtos; +- ULONG64 InUcastOctets; +- ULONG64 InMulticastOctets; +- ULONG64 InBroadcastOctets; +- ULONG64 OutOctets; +- ULONG64 OutUcastPkts; +- ULONG64 OutNUcastPkts; +- ULONG64 OutDiscards; +- ULONG64 OutErrors; +- ULONG64 OutUcastOctets; +- ULONG64 OutMulticastOctets; +- ULONG64 OutBroadcastOctets; +- ULONG64 OutQLen; +- } MIB_IF_ROW2,*PMIB_IF_ROW2; +- +- typedef struct _MIB_IF_TABLE2 { +- ULONG NumEntries; +- MIB_IF_ROW2 Table[ANY_SIZE]; +- } MIB_IF_TABLE2, *PMIB_IF_TABLE2; +- +- typedef struct _MIB_IPINTERFACE_ROW { +- ADDRESS_FAMILY Family; +- NET_LUID InterfaceLuid; +- NET_IFINDEX InterfaceIndex; +- ULONG MaxReassemblySize; +- ULONG64 InterfaceIdentifier; +- ULONG MinRouterAdvertisementInterval; +- ULONG MaxRouterAdvertisementInterval; +- BOOLEAN AdvertisingEnabled; +- BOOLEAN ForwardingEnabled; +- BOOLEAN WeakHostSend; +- BOOLEAN WeakHostReceive; +- BOOLEAN UseAutomaticMetric; +- BOOLEAN UseNeighborUnreachabilityDetection; +- BOOLEAN ManagedAddressConfigurationSupported; +- BOOLEAN OtherStatefulConfigurationSupported; +- BOOLEAN AdvertiseDefaultRoute; +- NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior; +- ULONG DadTransmits; +- ULONG BaseReachableTime; +- ULONG RetransmitTime; +- ULONG PathMtuDiscoveryTimeout; +- NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior; +- ULONG LinkLocalAddressTimeout; +- ULONG ZoneIndices[ScopeLevelCount]; +- ULONG SitePrefixLength; +- ULONG Metric; +- ULONG NlMtu; +- BOOLEAN Connected; +- BOOLEAN SupportsWakeUpPatterns; +- BOOLEAN SupportsNeighborDiscovery; +- BOOLEAN SupportsRouterDiscovery; +- ULONG ReachableTime; +- NL_INTERFACE_OFFLOAD_ROD TransmitOffload; +- NL_INTERFACE_OFFLOAD_ROD ReceiveOffload; +- BOOLEAN DisableDefaultRoutes; +- } MIB_IPINTERFACE_ROW,*PMIB_IPINTERFACE_ROW; +- +- typedef struct _MIB_IPINTERFACE_TABLE { +- ULONG NumEntries; +- MIB_IPINTERFACE_ROW Table[ANY_SIZE]; +- } MIB_IPINTERFACE_TABLE,*PMIB_IPINTERFACE_TABLE; +- +- typedef struct _MIB_IFSTACK_ROW { +- NET_IFINDEX HigherLayerInterfaceIndex; +- NET_IFINDEX LowerLayerInterfaceIndex; +- } MIB_IFSTACK_ROW,*PMIB_IFSTACK_ROW; +- +- typedef struct _MIB_INVERTEDIFSTACK_ROW { +- NET_IFINDEX LowerLayerInterfaceIndex; +- NET_IFINDEX HigherLayerInterfaceIndex; +- } MIB_INVERTEDIFSTACK_ROW,*PMIB_INVERTEDIFSTACK_ROW; +- +- typedef struct _MIB_IFSTACK_TABLE { +- ULONG NumEntries; +- MIB_IFSTACK_ROW Table[ANY_SIZE]; +- } MIB_IFSTACK_TABLE,*PMIB_IFSTACK_TABLE; +- +- typedef struct _MIB_INVERTEDIFSTACK_TABLE { +- ULONG NumEntries; +- MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE]; +- } MIB_INVERTEDIFSTACK_TABLE,*PMIB_INVERTEDIFSTACK_TABLE; +- +- typedef struct _MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES { +- NL_BANDWIDTH_INFORMATION InboundBandwidthInformation; +- NL_BANDWIDTH_INFORMATION OutboundBandwidthInformation; +- } MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES, *PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES; +- +- typedef struct _MIB_UNICASTIPADDRESS_ROW { +- SOCKADDR_INET Address; +- NET_LUID InterfaceLuid; +- NET_IFINDEX InterfaceIndex; +- NL_PREFIX_ORIGIN PrefixOrigin; +- NL_SUFFIX_ORIGIN SuffixOrigin; +- ULONG ValidLifetime; +- ULONG PreferredLifetime; +- UINT8 OnLinkPrefixLength; +- BOOLEAN SkipAsSource; +- NL_DAD_STATE DadState; +- SCOPE_ID ScopeId; +- LARGE_INTEGER CreationTimeStamp; +- } MIB_UNICASTIPADDRESS_ROW,*PMIB_UNICASTIPADDRESS_ROW; +- +- typedef struct _MIB_UNICASTIPADDRESS_TABLE { +- ULONG NumEntries; +- MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE]; +- } MIB_UNICASTIPADDRESS_TABLE,*PMIB_UNICASTIPADDRESS_TABLE; +- +- typedef struct _MIB_ANYCASTIPADDRESS_ROW { +- SOCKADDR_INET Address; +- NET_LUID InterfaceLuid; +- NET_IFINDEX InterfaceIndex; +- SCOPE_ID ScopeId; +- } MIB_ANYCASTIPADDRESS_ROW,*PMIB_ANYCASTIPADDRESS_ROW; +- +- typedef struct _MIB_ANYCASTIPADDRESS_TABLE { +- ULONG NumEntries; +- MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE]; +- } MIB_ANYCASTIPADDRESS_TABLE,*PMIB_ANYCASTIPADDRESS_TABLE; +- +- typedef struct _MIB_MULTICASTIPADDRESS_ROW { +- SOCKADDR_INET Address; +- NET_IFINDEX InterfaceIndex; +- NET_LUID InterfaceLuid; +- SCOPE_ID ScopeId; +- } MIB_MULTICASTIPADDRESS_ROW,*PMIB_MULTICASTIPADDRESS_ROW; +- +- typedef struct _MIB_MULTICASTIPADDRESS_TABLE { +- ULONG NumEntries; +- MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE]; +- } MIB_MULTICASTIPADDRESS_TABLE,*PMIB_MULTICASTIPADDRESS_TABLE; +- +- typedef struct _IP_ADDRESS_PREFIX { +- SOCKADDR_INET Prefix; +- UINT8 PrefixLength; +- } IP_ADDRESS_PREFIX,*PIP_ADDRESS_PREFIX; +- +- typedef struct _MIB_IPFORWARD_ROW2 { +- NET_LUID InterfaceLuid; +- NET_IFINDEX InterfaceIndex; +- IP_ADDRESS_PREFIX DestinationPrefix; +- SOCKADDR_INET NextHop; +- UCHAR SitePrefixLength; +- ULONG ValidLifetime; +- ULONG PreferredLifetime; +- ULONG Metric; +- NL_ROUTE_PROTOCOL Protocol; +- BOOLEAN Loopback; +- BOOLEAN AutoconfigureAddress; +- BOOLEAN Publish; +- BOOLEAN Immortal; +- ULONG Age; +- NL_ROUTE_ORIGIN Origin; +- } MIB_IPFORWARD_ROW2,*PMIB_IPFORWARD_ROW2; +- +- typedef struct _MIB_IPFORWARD_TABLE2 { +- ULONG NumEntries; +- MIB_IPFORWARD_ROW2 Table[ANY_SIZE]; +- } MIB_IPFORWARD_TABLE2,*PMIB_IPFORWARD_TABLE2; +- +- typedef struct _MIB_IPPATH_ROW { +- SOCKADDR_INET Source; +- SOCKADDR_INET Destination; +- NET_LUID InterfaceLuid; +- NET_IFINDEX InterfaceIndex; +- SOCKADDR_INET CurrentNextHop; +- ULONG PathMtu; +- ULONG RttMean; +- ULONG RttDeviation; +- __C89_NAMELESS union { +- ULONG LastReachable; +- ULONG LastUnreachable; +- }; +- BOOLEAN IsReachable; +- ULONG64 LinkTransmitSpeed; +- ULONG64 LinkReceiveSpeed; +- } MIB_IPPATH_ROW,*PMIB_IPPATH_ROW; +- +- typedef struct _MIB_IPPATH_TABLE { +- ULONG NumEntries; +- MIB_IPPATH_ROW Table[ANY_SIZE]; +- } MIB_IPPATH_TABLE,*PMIB_IPPATH_TABLE; +- +- typedef struct _MIB_IPNET_ROW2 { +- SOCKADDR_INET Address; +- NET_IFINDEX InterfaceIndex; +- NET_LUID InterfaceLuid; +- UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; +- ULONG PhysicalAddressLength; +- NL_NEIGHBOR_STATE State; +- __C89_NAMELESS union { +- __C89_NAMELESS struct { +- BOOLEAN IsRouter : 1; +- BOOLEAN IsUnreachable : 1; +- }; +- UCHAR Flags; ++#define ConvertInterfaceLuidToName __MINGW_NAME_AW(ConvertInterfaceLuidToName) ++#define ConvertInterfaceNameToLuid __MINGW_NAME_AW(ConvertInterfaceNameToLuid) ++ ++typedef enum _MIB_NOTIFICATION_TYPE { ++ MibParameterNotification = 0, ++ MibAddInstance = 1, ++ MibDeleteInstance = 2, ++ MibInitialNotification = 3 ++} MIB_NOTIFICATION_TYPE, *PMIB_NOTIFICATION_TYPE; ++ ++typedef struct _MIB_ANYCASTIPADDRESS_ROW { ++ SOCKADDR_INET Address; ++ NET_LUID InterfaceLuid; ++ NET_IFINDEX InterfaceIndex; ++ SCOPE_ID ScopeId; ++} MIB_ANYCASTIPADDRESS_ROW, *PMIB_ANYCASTIPADDRESS_ROW; ++ ++typedef struct _MIB_ANYCASTIPADDRESS_TABLE { ++ ULONG NumEntries; ++ MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE]; ++} MIB_ANYCASTIPADDRESS_TABLE, *PMIB_ANYCASTIPADDRESS_TABLE; ++ ++typedef struct _IP_ADDRESS_PREFIX { ++ SOCKADDR_INET Prefix; ++ UINT8 PrefixLength; ++} IP_ADDRESS_PREFIX, *PIP_ADDRESS_PREFIX; ++ ++typedef struct _MIB_IPFORWARD_ROW2 { ++ NET_LUID InterfaceLuid; ++ NET_IFINDEX InterfaceIndex; ++ IP_ADDRESS_PREFIX DestinationPrefix; ++ SOCKADDR_INET NextHop; ++ UCHAR SitePrefixLength; ++ ULONG ValidLifetime; ++ ULONG PreferredLifetime; ++ ULONG Metric; ++ NL_ROUTE_PROTOCOL Protocol; ++ BOOLEAN Loopback; ++ BOOLEAN AutoconfigureAddress; ++ BOOLEAN Publish; ++ BOOLEAN Immortal; ++ ULONG Age; ++ NL_ROUTE_ORIGIN Origin; ++} MIB_IPFORWARD_ROW2, *PMIB_IPFORWARD_ROW2; ++ ++typedef struct _MIB_IPNET_ROW2 { ++ SOCKADDR_INET Address; ++ NET_IFINDEX InterfaceIndex; ++ NET_LUID InterfaceLuid; ++ UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; ++ ULONG PhysicalAddressLength; ++ NL_NEIGHBOR_STATE State; ++ __C89_NAMELESS union { ++ __C89_NAMELESS struct { ++ BOOLEAN IsRouter :1; ++ BOOLEAN IsUnreachable :1; + }; +- union { +- ULONG LastReachable; +- ULONG LastUnreachable; +- } ReachabilityTime; +- } MIB_IPNET_ROW2, *PMIB_IPNET_ROW2; +- +- typedef struct _MIB_IPNET_TABLE2 { +- ULONG NumEntries; +- MIB_IPNET_ROW2 Table[ANY_SIZE]; +- } MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2; +- +- typedef VOID (NETIOAPI_API_ *PIPINTERFACE_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPINTERFACE_ROW Row, MIB_NOTIFICATION_TYPE NotificationType); +- typedef VOID (NETIOAPI_API_ *PUNICAST_IPADDRESS_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_ROW Row, MIB_NOTIFICATION_TYPE NotificationType); +- typedef VOID (NETIOAPI_API_ *PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_TABLE AddressTable); +- +- typedef VOID (NETIOAPI_API_ *PTEREDO_PORT_CHANGE_CALLBACK) (PVOID CallerContext, USHORT Port, MIB_NOTIFICATION_TYPE NotificationType); +- typedef VOID (NETIOAPI_API_ *PIPFORWARD_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPFORWARD_ROW2 Row, MIB_NOTIFICATION_TYPE NotificationType); +- +- NETIO_STATUS NETIOAPI_API_ GetIfEntry2 (PMIB_IF_ROW2 Row); +- NETIO_STATUS NETIOAPI_API_ GetIfTable2 (PMIB_IF_TABLE2 *Table); +- NETIO_STATUS NETIOAPI_API_ GetIfTable2Ex (MIB_IF_TABLE_LEVEL Level, PMIB_IF_TABLE2 *Table); +- NETIO_STATUS NETIOAPI_API_ GetIfStackTable (PMIB_IFSTACK_TABLE *Table); +- NETIO_STATUS NETIOAPI_API_ GetInvertedIfStackTable (PMIB_INVERTEDIFSTACK_TABLE *Table); +- NETIO_STATUS NETIOAPI_API_ GetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row); +- NETIO_STATUS NETIOAPI_API_ GetIpInterfaceTable (ADDRESS_FAMILY Family, PMIB_IPINTERFACE_TABLE *Table); +- VOID NETIOAPI_API_ InitializeIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row); +- NETIO_STATUS NETIOAPI_API_ NotifyIpInterfaceChange (ADDRESS_FAMILY Family, PIPINTERFACE_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); +- NETIO_STATUS NETIOAPI_API_ SetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row); +- NETIO_STATUS NETIOAPI_API_ GetIpNetworkConnectionBandwidthEstimates (NET_IFINDEX InterfaceIndex, ADDRESS_FAMILY AddressFamily, PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES BandwidthEstimates); +- NETIO_STATUS NETIOAPI_API_ CreateUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row); +- NETIO_STATUS NETIOAPI_API_ DeleteUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row); +- NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row); +- NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table); +- VOID NETIOAPI_API_ InitializeUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row); +- NETIO_STATUS NETIOAPI_API_ NotifyUnicastIpAddressChange (ADDRESS_FAMILY Family, PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); +- NETIO_STATUS NETIOAPI_API_ CreateAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row); +- NETIO_STATUS NETIOAPI_API_ DeleteAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row); +- NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressEntry (PMIB_ANYCASTIPADDRESS_ROW Row); +- NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressTable (ADDRESS_FAMILY Family, PMIB_ANYCASTIPADDRESS_TABLE *Table); +- NETIO_STATUS NETIOAPI_API_ NotifyStableUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table, PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, PVOID CallerContext, HANDLE *NotificationHandle); +- NETIO_STATUS NETIOAPI_API_ SetUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row); +- NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressEntry (PMIB_MULTICASTIPADDRESS_ROW Row); +- NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressTable (ADDRESS_FAMILY Family, PMIB_MULTICASTIPADDRESS_TABLE *Table); +- NETIO_STATUS NETIOAPI_API_ CreateIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row); +- NETIO_STATUS NETIOAPI_API_ DeleteIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row); +- NETIO_STATUS NETIOAPI_API_ GetBestRoute2 (NET_LUID *InterfaceLuid, NET_IFINDEX InterfaceIndex, CONST SOCKADDR_INET *SourceAddress, CONST SOCKADDR_INET *DestinationAddress, ULONG AddressSortOptions, PMIB_IPFORWARD_ROW2 BestRoute, SOCKADDR_INET *BestSourceAddress); +- NETIO_STATUS NETIOAPI_API_ GetIpForwardEntry2 (PMIB_IPFORWARD_ROW2 Row); +- NETIO_STATUS NETIOAPI_API_ GetIpForwardTable2 (ADDRESS_FAMILY Family, PMIB_IPFORWARD_TABLE2 *Table); +- VOID NETIOAPI_API_ InitializeIpForwardEntry (PMIB_IPFORWARD_ROW2 Row); +- NETIO_STATUS NETIOAPI_API_ NotifyRouteChange2 (ADDRESS_FAMILY AddressFamily, PIPFORWARD_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); +- NETIO_STATUS NETIOAPI_API_ SetIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Route); +- NETIO_STATUS NETIOAPI_API_ FlushIpPathTable (ADDRESS_FAMILY Family); +- NETIO_STATUS NETIOAPI_API_ GetIpPathEntry (PMIB_IPPATH_ROW Row); +- NETIO_STATUS NETIOAPI_API_ GetIpPathTable (ADDRESS_FAMILY Family, PMIB_IPPATH_TABLE *Table); +- NETIO_STATUS NETIOAPI_API_ CreateIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row); +- NETIO_STATUS NETIOAPI_API_ DeleteIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row); +- NETIO_STATUS NETIOAPI_API_ FlushIpNetTable2 (ADDRESS_FAMILY Family, NET_IFINDEX InterfaceIndex); +- NETIO_STATUS NETIOAPI_API_ GetIpNetEntry2 (PMIB_IPNET_ROW2 Row); +- NETIO_STATUS NETIOAPI_API_ GetIpNetTable2 (ADDRESS_FAMILY Family, PMIB_IPNET_TABLE2 *Table); +- NETIO_STATUS NETIOAPI_API_ ResolveIpNetEntry2 (PMIB_IPNET_ROW2 Row, CONST SOCKADDR_INET *SourceAddress); +- NETIO_STATUS NETIOAPI_API_ SetIpNetEntry2 (PMIB_IPNET_ROW2 Row); +- NETIO_STATUS NETIOAPI_API_ NotifyTeredoPortChange (PTEREDO_PORT_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); +- NETIO_STATUS NETIOAPI_API_ GetTeredoPort (USHORT *Port); +- NETIO_STATUS NETIOAPI_API_ CancelMibChangeNotify2 (HANDLE NotificationHandle); +- VOID NETIOAPI_API_ FreeMibTable (PVOID Memory); +- NETIO_STATUS NETIOAPI_API_ CreateSortedAddressPairs (const PSOCKADDR_IN6 SourceAddressList, ULONG SourceAddressCount, const PSOCKADDR_IN6 DestinationAddressList, ULONG DestinationAddressCount, ULONG AddressSortOptions, PSOCKADDR_IN6_PAIR *SortedAddressPairList, ULONG *SortedAddressPairCount); +-#endif +- +- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidA (CONST CHAR *InterfaceName, NET_LUID *InterfaceLuid); +- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidW (CONST WCHAR *InterfaceName, NET_LUID *InterfaceLuid); +- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameA (CONST NET_LUID *InterfaceLuid, PSTR InterfaceName, SIZE_T Length); +- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameW (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceName, SIZE_T Length); +- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToIndex (CONST NET_LUID *InterfaceLuid, PNET_IFINDEX InterfaceIndex); +- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceIndexToLuid (NET_IFINDEX InterfaceIndex, PNET_LUID InterfaceLuid); +- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToAlias (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceAlias, SIZE_T Length); +- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceAliasToLuid (CONST WCHAR *InterfaceAlias, PNET_LUID InterfaceLuid); +- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToGuid (CONST NET_LUID *InterfaceLuid, GUID *InterfaceGuid); +- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceGuidToLuid (CONST GUID *InterfaceGuid, PNET_LUID InterfaceLuid); +- NET_IFINDEX NETIOAPI_API_ if_nametoindex (PCSTR InterfaceName); +- PCHAR NETIOAPI_API_ if_indextoname (NET_IFINDEX InterfaceIndex, PCHAR InterfaceName); +- NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetCurrentThreadCompartmentId (VOID); +- NETIO_STATUS NETIOAPI_API_ SetCurrentThreadCompartmentId (NET_IF_COMPARTMENT_ID CompartmentId); +- NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetSessionCompartmentId (ULONG SessionId); +- NETIO_STATUS NETIOAPI_API_ SetSessionCompartmentId (ULONG SessionId, NET_IF_COMPARTMENT_ID CompartmentId); +- NETIO_STATUS NETIOAPI_API_ GetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, PNET_IF_COMPARTMENT_ID CompartmentId, PULONG SiteId, PWCHAR NetworkName, ULONG Length); +- NETIO_STATUS NETIOAPI_API_ SetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, NET_IF_COMPARTMENT_ID CompartmentId, CONST WCHAR *NetworkName); +- NETIO_STATUS NETIOAPI_API_ ConvertLengthToIpv4Mask (ULONG MaskLength, PULONG Mask); +- NETIO_STATUS NETIOAPI_API_ ConvertIpv4MaskToLength (ULONG Mask, PUINT8 MaskLength); ++ UCHAR Flags; ++ }; ++ union { ++ ULONG LastReachable; ++ ULONG LastUnreachable; ++ } ReachabilityTime; ++} MIB_IPNET_ROW2, *PMIB_IPNET_ROW2; ++ ++typedef struct _MIB_IPNET_TABLE2 { ++ ULONG NumEntries; ++ MIB_IPNET_ROW2 Table[ANY_SIZE]; ++} MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2; ++ ++typedef struct _MIB_IPFORWARD_TABLE2 { ++ ULONG NumEntries; ++ MIB_IPFORWARD_ROW2 Table[ANY_SIZE]; ++} MIB_IPFORWARD_TABLE2, *PMIB_IPFORWARD_TABLE2; ++ ++typedef struct _MIB_IPINTERFACE_ROW { ++ ADDRESS_FAMILY Family; ++ NET_LUID InterfaceLuid; ++ NET_IFINDEX InterfaceIndex; ++ ULONG MaxReassemblySize; ++ ULONG64 InterfaceIdentifier; ++ ULONG MinRouterAdvertisementInterval; ++ ULONG MaxRouterAdvertisementInterval; ++ BOOLEAN AdvertisingEnabled; ++ BOOLEAN ForwardingEnabled; ++ BOOLEAN WeakHostSend; ++ BOOLEAN WeakHostReceive; ++ BOOLEAN UseAutomaticMetric; ++ BOOLEAN UseNeighborUnreachabilityDetection; ++ BOOLEAN ManagedAddressConfigurationSupported; ++ BOOLEAN OtherStatefulConfigurationSupported; ++ BOOLEAN AdvertiseDefaultRoute; ++ NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior; ++ ULONG DadTransmits; ++ ULONG BaseReachableTime; ++ ULONG RetransmitTime; ++ ULONG PathMtuDiscoveryTimeout; ++ NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior; ++ ULONG LinkLocalAddressTimeout; ++ ULONG ZoneIndices[ScopeLevelCount]; ++ ULONG SitePrefixLength; ++ ULONG Metric; ++ ULONG NlMtu; ++ BOOLEAN Connected; ++ BOOLEAN SupportsWakeUpPatterns; ++ BOOLEAN SupportsNeighborDiscovery; ++ BOOLEAN SupportsRouterDiscovery; ++ ULONG ReachableTime; ++ NL_INTERFACE_OFFLOAD_ROD TransmitOffload; ++ NL_INTERFACE_OFFLOAD_ROD ReceiveOffload; ++ BOOLEAN DisableDefaultRoutes; ++} MIB_IPINTERFACE_ROW, *PMIB_IPINTERFACE_ROW; ++ ++typedef struct _MIB_IPINTERFACE_TABLE { ++ ULONG NumEntries; ++ MIB_IPINTERFACE_ROW Table[ANY_SIZE]; ++} MIB_IPINTERFACE_TABLE, *PMIB_IPINTERFACE_TABLE; ++ ++typedef struct _MIB_UNICASTIPADDRESS_ROW { ++ SOCKADDR_INET Address; ++ NET_LUID InterfaceLuid; ++ NET_IFINDEX InterfaceIndex; ++ NL_PREFIX_ORIGIN PrefixOrigin; ++ NL_SUFFIX_ORIGIN SuffixOrigin; ++ ULONG ValidLifetime; ++ ULONG PreferredLifetime; ++ UINT8 OnLinkPrefixLength; ++ BOOLEAN SkipAsSource; ++ NL_DAD_STATE DadState; ++ SCOPE_ID ScopeId; ++ LARGE_INTEGER CreationTimeStamp; ++} MIB_UNICASTIPADDRESS_ROW, *PMIB_UNICASTIPADDRESS_ROW; ++ ++typedef struct _MIB_UNICASTIPADDRESS_TABLE { ++ ULONG NumEntries; ++ MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE]; ++} MIB_UNICASTIPADDRESS_TABLE, *PMIB_UNICASTIPADDRESS_TABLE; ++ ++typedef struct _MIB_IF_ROW2 { ++ NET_LUID InterfaceLuid; ++ NET_IFINDEX InterfaceIndex; ++ GUID InterfaceGuid; ++ WCHAR Alias[IF_MAX_STRING_SIZE + 1]; ++ WCHAR Description[IF_MAX_STRING_SIZE + 1]; ++ ULONG PhysicalAddressLength; ++ UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; ++ UCHAR PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; ++ ULONG Mtu; ++ IFTYPE Type; ++ TUNNEL_TYPE TunnelType; ++ NDIS_MEDIUM MediaType; ++ NDIS_PHYSICAL_MEDIUM PhysicalMediumType; ++ NET_IF_ACCESS_TYPE AccessType; ++ NET_IF_DIRECTION_TYPE DirectionType; ++ struct { ++ BOOLEAN HardwareInterface :1; ++ BOOLEAN FilterInterface :1; ++ BOOLEAN ConnectorPresent :1; ++ BOOLEAN NotAuthenticated :1; ++ BOOLEAN NotMediaConnected :1; ++ BOOLEAN Paused :1; ++ BOOLEAN LowPower :1; ++ BOOLEAN EndPointInterface :1; ++ } InterfaceAndOperStatusFlags; ++ IF_OPER_STATUS OperStatus; ++ NET_IF_ADMIN_STATUS AdminStatus; ++ NET_IF_MEDIA_CONNECT_STATE MediaConnectState; ++ NET_IF_NETWORK_GUID NetworkGuid; ++ NET_IF_CONNECTION_TYPE ConnectionType; ++ ULONG64 TransmitLinkSpeed; ++ ULONG64 ReceiveLinkSpeed; ++ ULONG64 InOctets; ++ ULONG64 InUcastPkts; ++ ULONG64 InNUcastPkts; ++ ULONG64 InDiscards; ++ ULONG64 InErrors; ++ ULONG64 InUnknownProtos; ++ ULONG64 InUcastOctets; ++ ULONG64 InMulticastOctets; ++ ULONG64 InBroadcastOctets; ++ ULONG64 OutOctets; ++ ULONG64 OutUcastPkts; ++ ULONG64 OutNUcastPkts; ++ ULONG64 OutDiscards; ++ ULONG64 OutErrors; ++ ULONG64 OutUcastOctets; ++ ULONG64 OutMulticastOctets; ++ ULONG64 OutBroadcastOctets; ++ ULONG64 OutQLen; ++} MIB_IF_ROW2, *PMIB_IF_ROW2; ++ ++typedef struct _MIB_IF_TABLE2 { ++ ULONG NumEntries; ++ MIB_IF_ROW2 Table[ANY_SIZE]; ++} MIB_IF_TABLE2, *PMIB_IF_TABLE2; ++ ++typedef struct _MIB_IFSTACK_ROW { ++ NET_IFINDEX HigherLayerInterfaceIndex; ++ NET_IFINDEX LowerLayerInterfaceIndex; ++} MIB_IFSTACK_ROW, *PMIB_IFSTACK_ROW; ++ ++typedef struct _MIB_IFSTACK_TABLE { ++ ULONG NumEntries; ++ MIB_IFSTACK_ROW Table[ANY_SIZE]; ++} MIB_IFSTACK_TABLE, *PMIB_IFSTACK_TABLE; ++ ++typedef struct _MIB_INVERTEDIFSTACK_ROW { ++ NET_IFINDEX LowerLayerInterfaceIndex; ++ NET_IFINDEX HigherLayerInterfaceIndex; ++} MIB_INVERTEDIFSTACK_ROW, *PMIB_INVERTEDIFSTACK_ROW; ++ ++typedef struct _MIB_INVERTEDIFSTACK_TABLE { ++ ULONG NumEntries; ++ MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE]; ++} MIB_INVERTEDIFSTACK_TABLE, *PMIB_INVERTEDIFSTACK_TABLE; ++ ++typedef struct _MIB_IPPATH_ROW { ++ SOCKADDR_INET Source; ++ SOCKADDR_INET Destination; ++ NET_LUID InterfaceLuid; ++ NET_IFINDEX InterfaceIndex; ++ SOCKADDR_INET CurrentNextHop; ++ ULONG PathMtu; ++ ULONG RttMean; ++ ULONG RttDeviation; ++ __C89_NAMELESS union { ++ ULONG LastReachable; ++ ULONG LastUnreachable; ++ }; ++ BOOLEAN IsReachable; ++ ULONG64 LinkTransmitSpeed; ++ ULONG64 LinkReceiveSpeed; ++} MIB_IPPATH_ROW, *PMIB_IPPATH_ROW; ++ ++typedef struct _MIB_IPPATH_TABLE { ++ ULONG NumEntries; ++ MIB_IPPATH_ROW Table[ANY_SIZE]; ++} MIB_IPPATH_TABLE, *PMIB_IPPATH_TABLE; ++ ++typedef struct _MIB_MULTICASTIPADDRESS_ROW { ++ SOCKADDR_INET Address; ++ NET_IFINDEX InterfaceIndex; ++ NET_LUID InterfaceLuid; ++ SCOPE_ID ScopeId; ++} MIB_MULTICASTIPADDRESS_ROW, *PMIB_MULTICASTIPADDRESS_ROW; ++ ++typedef struct _MIB_MULTICASTIPADDRESS_TABLE { ++ ULONG NumEntries; ++ MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE]; ++} MIB_MULTICASTIPADDRESS_TABLE, *PMIB_MULTICASTIPADDRESS_TABLE; ++ ++NETIOAPI_API CancelMibChangeNotify2( ++ HANDLE NotificationHandle ++); ++ ++NETIO_STATUS WINAPI ConvertInterfaceAliasToLuid( ++ const WCHAR *InterfaceAlias, ++ PNET_LUID InterfaceLuid ++); ++ ++NETIO_STATUS WINAPI ConvertInterfaceLuidToNameA( ++ const NET_LUID *InterfaceLuid, ++ PSTR InterfaceName, ++ SIZE_T Length ++); ++ ++NETIO_STATUS WINAPI ConvertInterfaceLuidToNameW( ++ const NET_LUID *InterfaceLuid, ++ PWSTR InterfaceName, ++ SIZE_T Length ++); ++ ++NETIO_STATUS WINAPI ConvertInterfaceNameToLuidA( ++ const CHAR *InterfaceName, ++ PNET_LUID InterfaceLuid ++); ++ ++NETIO_STATUS WINAPI ConvertInterfaceNameToLuidW( ++ const WCHAR *InterfaceName, ++ PNET_LUID InterfaceLuid ++); ++ ++PCHAR WINAPI if_indextoname( ++ NET_IFINDEX InterfaceIndex, ++ PCHAR InterfaceName ++); ++ ++NET_IFINDEX WINAPI if_nametoindex( ++ PCSTR InterfaceName ++); ++ ++NETIO_STATUS WINAPI ConvertInterfaceGuidToLuid( ++ const GUID *InterfaceGuid, ++ PNET_LUID InterfaceLuid ++); ++ ++NETIO_STATUS WINAPI ConvertInterfaceIndexToLuid( ++ NET_IFINDEX InterfaceIndex, ++ PNET_LUID InterfaceLuid ++); ++ ++NETIO_STATUS WINAPI ConvertInterfaceLuidToAlias( ++ const NET_LUID *InterfaceLuid, ++ PWSTR InterfaceAlias, ++ SIZE_T Length ++); ++ ++NETIO_STATUS WINAPI ConvertInterfaceLuidToGuid( ++ const NET_LUID *InterfaceLuid, ++ GUID *InterfaceGuid ++); ++ ++NETIO_STATUS WINAPI ConvertInterfaceLuidToIndex( ++ const NET_LUID *InterfaceLuid, ++ PNET_IFINDEX InterfaceIndex ++); ++ ++NETIO_STATUS WINAPI ConvertIpv4MaskToLength( ++ ULONG Mask, ++ PUINT8 MaskLength ++); ++ ++NETIO_STATUS WINAPI ConvertLengthToIpv4Mask( ++ ULONG MaskLength, ++ PULONG Mask ++); ++ ++NETIOAPI_API CreateAnycastIpAddressEntry( ++ const MIB_ANYCASTIPADDRESS_ROW *Row ++); ++ ++NETIOAPI_API CreateIpForwardEntry2( ++ const MIB_IPFORWARD_ROW2 *Row ++); ++ ++NETIOAPI_API GetIpNetTable2( ++ ADDRESS_FAMILY Family, ++ PMIB_IPNET_TABLE2 *Table ++); ++ ++NETIOAPI_API GetIpNetEntry2( ++ PMIB_IPNET_ROW2 Row ++); ++ ++NETIOAPI_API CreateIpNetEntry2( ++ const MIB_IPNET_ROW2 *Row ++); ++ ++NETIOAPI_API CreateSortedAddressPairs( ++ const PSOCKADDR_IN6 SourceAddressList, ++ ULONG SourceAddressCount, ++ const PSOCKADDR_IN6 DestinationAddressList, ++ ULONG DestinationAddressCount, ++ ULONG AddressSortOptions, ++ PSOCKADDR_IN6_PAIR *SortedAddressPairList, ++ ULONG *SortedAddressPairCount ++); ++ ++NETIOAPI_API CreateIpNetEntry2( ++ const MIB_IPNET_ROW2 *Row ++); ++ ++NETIOAPI_API CreateUnicastIpAddressEntry( ++ const MIB_UNICASTIPADDRESS_ROW *Row ++); ++ ++NETIOAPI_API DeleteIpForwardEntry2( ++ const MIB_IPFORWARD_ROW2 *Row ++); ++ ++NETIOAPI_API GetIpForwardTable2( ++ ADDRESS_FAMILY Family, ++ PMIB_IPFORWARD_TABLE2 *Table ++); ++ ++VOID NETIOAPI_API_ FreeMibTable( ++ PVOID Memory ++); ++ ++NETIOAPI_API DeleteIpNetEntry2( ++ const MIB_IPNET_ROW2 *Row ++); ++ ++NETIOAPI_API GetIpNetTable2( ++ ADDRESS_FAMILY Family, ++ PMIB_IPNET_TABLE2 *Table ++); ++ ++NETIOAPI_API DeleteUnicastIpAddressEntry( ++ const MIB_UNICASTIPADDRESS_ROW *Row ++); ++ ++NETIOAPI_API GetUnicastIpAddressEntry( ++ PMIB_UNICASTIPADDRESS_ROW Row ++); ++ ++NETIOAPI_API DeleteAnycastIpAddressEntry( ++ const MIB_ANYCASTIPADDRESS_ROW *Row ++); ++ ++NETIOAPI_API FlushIpNetTable2( ++ ADDRESS_FAMILY Family, ++ NET_IFINDEX InterfaceIndex ++); ++ ++NETIOAPI_API FlushIpPathTable( ++ ADDRESS_FAMILY Family ++); ++ ++NETIOAPI_API GetAnycastIpAddressEntry( ++ PMIB_ANYCASTIPADDRESS_ROW Row ++); ++ ++NETIOAPI_API GetAnycastIpAddressTable( ++ ADDRESS_FAMILY Family, ++ PMIB_ANYCASTIPADDRESS_TABLE *Table ++); ++ ++NETIOAPI_API GetBestRoute2( ++ NET_LUID *InterfaceLuid, ++ NET_IFINDEX InterfaceIndex, ++ const SOCKADDR_INET *SourceAddress, ++ const SOCKADDR_INET *DestinationAddress, ++ ULONG AddressSortOptions, ++ PMIB_IPFORWARD_ROW2 BestRoute, ++ SOCKADDR_INET *BestSourceAddress ++); ++ ++NETIOAPI_API GetIfEntry2( ++ PMIB_IF_ROW2 Row ++); ++ ++NETIOAPI_API GetIfTable2( ++ PMIB_IF_TABLE2 *Table ++); ++ ++NETIOAPI_API GetIfStackTable( ++ PMIB_IFSTACK_TABLE *Table ++); ++ ++typedef enum _MIB_IF_TABLE_LEVEL { ++ MibIfTableNormal = 0, ++ MibIfTableRaw = 1 ++} MIB_IF_TABLE_LEVEL, *PMIB_IF_TABLE_LEVEL; ++ ++NETIOAPI_API GetIfTable2Ex( ++ MIB_IF_TABLE_LEVEL Level, ++ PMIB_IF_TABLE2 *Table ++); ++ ++NETIOAPI_API GetInvertedIfStackTable( ++ PMIB_INVERTEDIFSTACK_TABLE *Table ++); ++ ++NETIOAPI_API GetIpForwardEntry2( ++ PMIB_IPFORWARD_ROW2 Row ++); ++ ++NETIOAPI_API GetIpInterfaceEntry( ++ PMIB_IPINTERFACE_ROW Row ++); ++ ++NETIOAPI_API GetIpInterfaceTable( ++ ADDRESS_FAMILY Family, ++ PMIB_IPINTERFACE_TABLE *Table ++); ++ ++NETIOAPI_API GetIpNetEntry2( ++ PMIB_IPNET_ROW2 Row ++); ++ ++NETIOAPI_API GetIpPathEntry( ++ PMIB_IPPATH_ROW Row ++); ++ ++NETIOAPI_API GetIpPathTable( ++ ADDRESS_FAMILY Family, ++ PMIB_IPPATH_TABLE *Table ++); ++ ++NETIOAPI_API GetMulticastIpAddressEntry( ++ PMIB_MULTICASTIPADDRESS_ROW Row ++); ++ ++NETIOAPI_API GetMulticastIpAddressTable( ++ ADDRESS_FAMILY Family, ++ PMIB_MULTICASTIPADDRESS_TABLE *Table ++); ++ ++NETIOAPI_API GetTeredoPort( ++ USHORT *Port ++); ++ ++typedef void (WINAPI *PTEREDO_PORT_CHANGE_CALLBACK)(void* callerContext, USHORT Port, MIB_NOTIFICATION_TYPE type); ++ ++NETIOAPI_API NotifyTeredoPortChange( ++ PTEREDO_PORT_CHANGE_CALLBACK Callback, ++ PVOID CallerContext, ++ BOOLEAN InitialNotification, ++ HANDLE *NotificationHandle ++); ++ ++typedef void (WINAPI *PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK)(void* callerContext, MIB_UNICASTIPADDRESS_TABLE *AddressTable); ++ ++NETIOAPI_API NotifyStableUnicastIpAddressTable( ++ ADDRESS_FAMILY Family, ++ PMIB_UNICASTIPADDRESS_TABLE *Table, ++ PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, ++ PVOID CallerContext, ++ HANDLE *NotificationHandle ++); ++ ++typedef void (WINAPI *PUNICAST_IPADDRESS_CHANGE_CALLBACK)(void* callerContext, PMIB_UNICASTIPADDRESS_ROW row, MIB_NOTIFICATION_TYPE type); ++ ++NETIOAPI_API NotifyUnicastIpAddressChange( ++ ADDRESS_FAMILY Family, ++ PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback, ++ PVOID CallerContext, ++ BOOLEAN InitialNotification, ++ HANDLE *NotificationHandle ++); ++ ++NETIOAPI_API GetUnicastIpAddressTable( ++ ADDRESS_FAMILY Family, ++ PMIB_UNICASTIPADDRESS_TABLE *Table ++); ++ ++typedef VOID (WINAPI *PIPINTERFACE_CHANGE_CALLBACK) ( ++ PVOID CallerContext, PMIB_IPINTERFACE_ROW Row, ++ MIB_NOTIFICATION_TYPE NotificationType ++); ++ ++NETIOAPI_API NotifyIpInterfaceChange( ++ ADDRESS_FAMILY Family, ++ PIPINTERFACE_CHANGE_CALLBACK Callback, ++ PVOID CallerContext, ++ BOOLEAN InitialNotification, ++ HANDLE *NotificationHandle ++); ++ ++typedef LPVOID PIPFORWARD_CHANGE_CALLBACK; ++ ++NETIOAPI_API NotifyRouteChange2( ++ ADDRESS_FAMILY Family, ++ PIPFORWARD_CHANGE_CALLBACK Callback, ++ PVOID CallerContext, ++ BOOLEAN InitialNotification, ++ HANDLE *NotificationHandle ++); ++ ++NETIOAPI_API ResolveIpNetEntry2( ++ PMIB_IPNET_ROW2 Row, ++ const SOCKADDR_INET *SourceAddress ++); ++ ++NETIOAPI_API SetIpForwardEntry2( ++ const MIB_IPFORWARD_ROW2 *Route ++); ++ ++NETIOAPI_API SetIpInterfaceEntry( ++ PMIB_IPINTERFACE_ROW Row ++); ++ ++NETIOAPI_API SetIpNetEntry2( ++ PMIB_IPNET_ROW2 Row ++); ++ ++NETIOAPI_API SetUnicastIpAddressEntry( ++ const MIB_UNICASTIPADDRESS_ROW *Row ++); + + #ifdef __cplusplus + } + #endif + +-#endif +-#endif ++#endif /*_INC_NETIOAPI*/ +diff --git a/mingw-w64-headers/include/ntddndis.h b/mingw-w64-headers/include/ntddndis.h +index d19e885..d6aae79 100644 +--- a/mingw-w64-headers/include/ntddndis.h ++++ b/mingw-w64-headers/include/ntddndis.h +@@ -1,342 +1,51 @@ + /** +-* This file is part of the mingw-w64 runtime package. +-* No warranty is given; refer to the file DISCLAIMER within this package. +-*/ +- ++ * This file has no copyright assigned and is placed in the Public Domain. ++ * This file is part of the mingw-w64 runtime package. ++ * No warranty is given; refer to the file DISCLAIMER.PD within this package. ++ */ + #ifndef _NTDDNDIS_ + #define _NTDDNDIS_ + +-#include +- +-#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) +- + #ifdef __cplusplus + extern "C" { + #endif + +-#ifndef NDIS_SUPPORT_NDIS6 +-#if defined (UM_NDIS60) || defined (UM_NDIS61) || defined (UM_NDIS620) || defined (UM_NDIS630) +-#define NDIS_SUPPORT_NDIS6 1 +-#else +-#define NDIS_SUPPORT_NDIS6 0 +-#endif +-#endif +- +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +-#include +-#include +-#include +-#endif +- +-#ifndef NDIS_SUPPORT_NDIS61 +-#if defined (UM_NDIS61) || defined (UM_NDIS620) || defined (UM_NDIS630) +-#define NDIS_SUPPORT_NDIS61 1 +-#else +-#define NDIS_SUPPORT_NDIS61 0 +-#endif +-#endif +- +-#ifndef NDIS_SUPPORT_NDIS620 +-#if defined (UM_NDIS620) || defined (UM_NDIS630) +-#define NDIS_SUPPORT_NDIS620 1 +-#else +-#define NDIS_SUPPORT_NDIS620 0 +-#endif +-#endif +- +-#ifndef NDIS_SUPPORT_NDIS630 +-#ifdef UM_NDIS630 +-#define NDIS_SUPPORT_NDIS630 1 +-#else +-#define NDIS_SUPPORT_NDIS630 0 +-#endif +-#endif +- + #define DD_NDIS_DEVICE_NAME "\\Device\\UNKNOWN" + +-#define _NDIS_CONTROL_CODE(request, method) CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, request, method, FILE_ANY_ACCESS) +- +-#define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE (0, METHOD_OUT_DIRECT) +-#define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE (1, METHOD_OUT_DIRECT) +-#define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE (2, METHOD_BUFFERED) +-#define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE (3, METHOD_OUT_DIRECT) +-#define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE (4, METHOD_BUFFERED) +-#define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE (5, METHOD_BUFFERED) +-#define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE (7, METHOD_OUT_DIRECT) +-#define IOCTL_NDIS_GET_VERSION _NDIS_CONTROL_CODE (8, METHOD_BUFFERED) +- +-#define IOCTL_NDIS_RESERVED1 _NDIS_CONTROL_CODE (9, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED2 _NDIS_CONTROL_CODE (0xa, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED3 _NDIS_CONTROL_CODE (0xb, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED4 _NDIS_CONTROL_CODE (0xc, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED5 CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, 0xd, METHOD_BUFFERED, FILE_ANY_ACCESS) +-#define IOCTL_NDIS_RESERVED6 CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, 0xe, METHOD_BUFFERED, FILE_WRITE_ACCESS) +-#define IOCTL_NDIS_RESERVED7 _NDIS_CONTROL_CODE (0xf, METHOD_OUT_DIRECT) +-#define IOCTL_NDIS_RESERVED8 _NDIS_CONTROL_CODE (0x10, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED9 _NDIS_CONTROL_CODE (0x11, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED10 _NDIS_CONTROL_CODE (0x12, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED11 _NDIS_CONTROL_CODE (0x13, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED12 _NDIS_CONTROL_CODE (0x14, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED13 _NDIS_CONTROL_CODE (0x15, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED14 _NDIS_CONTROL_CODE (0x16, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED15 _NDIS_CONTROL_CODE (0x17, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED16 _NDIS_CONTROL_CODE (0x18, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED17 _NDIS_CONTROL_CODE (0x19, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED18 _NDIS_CONTROL_CODE (0x1a, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED19 _NDIS_CONTROL_CODE (0x1b, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED20 _NDIS_CONTROL_CODE (0x1c, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED21 _NDIS_CONTROL_CODE (0x1d, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED22 _NDIS_CONTROL_CODE (0x1e, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED23 _NDIS_CONTROL_CODE (0x1f, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED24 _NDIS_CONTROL_CODE (0x20, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED25 _NDIS_CONTROL_CODE (0x21, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED26 _NDIS_CONTROL_CODE (0x22, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED27 _NDIS_CONTROL_CODE (0x23, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED28 _NDIS_CONTROL_CODE (0x24, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED29 _NDIS_CONTROL_CODE (0x25, METHOD_BUFFERED) +-#define IOCTL_NDIS_RESERVED30 _NDIS_CONTROL_CODE (0x26, METHOD_BUFFERED) +- +- typedef ULONG NDIS_OID, *PNDIS_OID; +- typedef struct _NDIS_STATISTICS_VALUE { +- NDIS_OID Oid; +- ULONG DataLength; +- UCHAR Data[1]; +- } NDIS_STATISTICS_VALUE; ++#define _NDIS_CONTROL_CODE(request,method) CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD,request,method,FILE_ANY_ACCESS) ++ ++#define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE(0,METHOD_OUT_DIRECT) ++#define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE(1,METHOD_OUT_DIRECT) ++#define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE(2,METHOD_BUFFERED) ++#define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE(3,METHOD_OUT_DIRECT) ++#define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE(4,METHOD_BUFFERED) ++#define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE(5,METHOD_BUFFERED) ++#define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE(7,METHOD_OUT_DIRECT) ++#define IOCTL_NDIS_GET_VERSION _NDIS_CONTROL_CODE(8,METHOD_BUFFERED) ++#define IOCTL_NDIS_RESERVED7 _NDIS_CONTROL_CODE(0xF,METHOD_OUT_DIRECT) + +- typedef NDIS_STATISTICS_VALUE UNALIGNED *PNDIS_STATISTICS_VALUE; ++ typedef ULONG NDIS_OID,*PNDIS_OID; + +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +- typedef struct _NDIS_STATISTICS_VALUE_EX { ++ typedef UNALIGNED struct _NDIS_STATISTICS_VALUE { + NDIS_OID Oid; + ULONG DataLength; +- ULONG Length; + UCHAR Data[1]; +- } NDIS_STATISTICS_VALUE_EX; +- +- typedef NDIS_STATISTICS_VALUE_EX UNALIGNED *PNDIS_STATISTICS_VALUE_EX; +-#endif ++ } NDIS_STATISTICS_VALUE,*PNDIS_STATISTICS_VALUE; + + typedef struct _NDIS_VAR_DATA_DESC { + USHORT Length; + USHORT MaximumLength; + ULONG_PTR Offset; +- } NDIS_VAR_DATA_DESC, *PNDIS_VAR_DATA_DESC; ++ } NDIS_VAR_DATA_DESC,*PNDIS_VAR_DATA_DESC; + +-#ifndef GUID_DEFINED + #include +-#endif +- +-#define NDIS_OBJECT_TYPE_DEFAULT 0x80 +-#define NDIS_OBJECT_TYPE_MINIPORT_INIT_PARAMETERS 0x81 +-#define NDIS_OBJECT_TYPE_SG_DMA_DESCRIPTION 0x83 +-#define NDIS_OBJECT_TYPE_MINIPORT_INTERRUPT 0x84 +-#define NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES 0x85 +-#define NDIS_OBJECT_TYPE_BIND_PARAMETERS 0x86 +-#define NDIS_OBJECT_TYPE_OPEN_PARAMETERS 0x87 +-#define NDIS_OBJECT_TYPE_RSS_CAPABILITIES 0x88 +-#define NDIS_OBJECT_TYPE_RSS_PARAMETERS 0x89 +-#define NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS 0x8a +-#define NDIS_OBJECT_TYPE_FILTER_DRIVER_CHARACTERISTICS 0x8b +-#define NDIS_OBJECT_TYPE_FILTER_PARTIAL_CHARACTERISTICS 0x8c +-#define NDIS_OBJECT_TYPE_FILTER_ATTRIBUTES 0x8d +-#define NDIS_OBJECT_TYPE_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS 0x8e +-#define NDIS_OBJECT_TYPE_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS 0x8f +-#define NDIS_OBJECT_TYPE_CO_PROTOCOL_CHARACTERISTICS 0x90 +-#define NDIS_OBJECT_TYPE_CO_MINIPORT_CHARACTERISTICS 0x91 +-#define NDIS_OBJECT_TYPE_MINIPORT_PNP_CHARACTERISTICS 0x92 +-#define NDIS_OBJECT_TYPE_CLIENT_CHIMNEY_OFFLOAD_CHARACTERISTICS 0x93 +-#define NDIS_OBJECT_TYPE_PROVIDER_CHIMNEY_OFFLOAD_CHARACTERISTICS 0x94 +-#define NDIS_OBJECT_TYPE_PROTOCOL_DRIVER_CHARACTERISTICS 0x95 +-#define NDIS_OBJECT_TYPE_REQUEST_EX 0x96 +-#define NDIS_OBJECT_TYPE_OID_REQUEST 0x96 +-#define NDIS_OBJECT_TYPE_TIMER_CHARACTERISTICS 0x97 +-#define NDIS_OBJECT_TYPE_STATUS_INDICATION 0x98 +-#define NDIS_OBJECT_TYPE_FILTER_ATTACH_PARAMETERS 0x99 +-#define NDIS_OBJECT_TYPE_FILTER_PAUSE_PARAMETERS 0x9a +-#define NDIS_OBJECT_TYPE_FILTER_RESTART_PARAMETERS 0x9b +-#define NDIS_OBJECT_TYPE_PORT_CHARACTERISTICS 0x9c +-#define NDIS_OBJECT_TYPE_PORT_STATE 0x9d +-#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 0x9e +-#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 0x9f +-#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES 0xa0 +-#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES 0xa1 +-#define NDIS_OBJECT_TYPE_RESTART_GENERAL_ATTRIBUTES 0xa2 +-#define NDIS_OBJECT_TYPE_PROTOCOL_RESTART_PARAMETERS 0xa3 +-#define NDIS_OBJECT_TYPE_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES 0xa4 +-#define NDIS_OBJECT_TYPE_CO_CALL_MANAGER_OPTIONAL_HANDLERS 0xa5 +-#define NDIS_OBJECT_TYPE_CO_CLIENT_OPTIONAL_HANDLERS 0xa6 +-#define NDIS_OBJECT_TYPE_OFFLOAD 0xa7 +-#define NDIS_OBJECT_TYPE_OFFLOAD_ENCAPSULATION 0xa8 +-#define NDIS_OBJECT_TYPE_CONFIGURATION_OBJECT 0xa9 +-#define NDIS_OBJECT_TYPE_DRIVER_WRAPPER_OBJECT 0xaa +-#if NDIS_SUPPORT_NDIS61 +-#define NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES 0xab +-#endif +-#define NDIS_OBJECT_TYPE_NSI_NETWORK_RW_STRUCT 0xac +-#define NDIS_OBJECT_TYPE_NSI_COMPARTMENT_RW_STRUCT 0xad +-#define NDIS_OBJECT_TYPE_NSI_INTERFACE_PERSIST_RW_STRUCT 0xae +-#if NDIS_SUPPORT_NDIS61 +-#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 0xaf +-#endif +-#if NDIS_SUPPORT_NDIS620 +-#define NDIS_OBJECT_TYPE_SHARED_MEMORY_PROVIDER_CHARACTERISTICS 0xb0 +-#define NDIS_OBJECT_TYPE_RSS_PROCESSOR_INFO 0xb1 +-#endif +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_OBJECT_TYPE_NDK_PROVIDER_CHARACTERISTICS 0xb2 +-#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_NDK_ATTRIBUTES 0xb3 +-#define NDIS_OBJECT_TYPE_MINIPORT_SS_CHARACTERISTICS 0xb4 +-#define NDIS_OBJECT_TYPE_QOS_CAPABILITIES 0xb5 +-#define NDIS_OBJECT_TYPE_QOS_PARAMETERS 0xb6 +-#define NDIS_OBJECT_TYPE_QOS_CLASSIFICATION_ELEMENT 0xb7 +-#define NDIS_OBJECT_TYPE_SWITCH_OPTIONAL_HANDLERS 0xb8 +-#define NDIS_OBJECT_TYPE_IOCTL_OID_INFO 0xb9 +-#define NDIS_OBJECT_TYPE_LBFO_DIAGNOSTIC_OID 0xba +-#endif + + typedef struct _NDIS_OBJECT_HEADER { +- UCHAR Type; +- UCHAR Revision; ++ UCHAR Type; ++ UCHAR Revision; + USHORT Size; + } NDIS_OBJECT_HEADER, *PNDIS_OBJECT_HEADER; + +- typedef enum _NDIS_REQUEST_TYPE { +- NdisRequestQueryInformation, +- NdisRequestSetInformation, +- NdisRequestQueryStatistics, +- NdisRequestOpen, +- NdisRequestClose, +- NdisRequestSend, +- NdisRequestTransferData, +- NdisRequestReset, +- NdisRequestGeneric1, +- NdisRequestGeneric2, +- NdisRequestGeneric3, +- NdisRequestGeneric4 +-#if NDIS_SUPPORT_NDIS6 +- , NdisRequestMethod +-#endif +- } NDIS_REQUEST_TYPE, *PNDIS_REQUEST_TYPE; +- +-#define NDIS_OBJECT_REVISION_1 1 +- +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +-#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_RCV 0x00000001 +-#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_RCV 0x00000002 +-#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_RCV 0x00000004 +-#define NDIS_STATISTICS_FLAGS_VALID_BYTES_RCV 0x00000008 +-#define NDIS_STATISTICS_FLAGS_VALID_RCV_DISCARDS 0x00000010 +-#define NDIS_STATISTICS_FLAGS_VALID_RCV_ERROR 0x00000020 +-#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_XMIT 0x00000040 +-#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_XMIT 0x00000080 +-#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_XMIT 0x00000100 +-#define NDIS_STATISTICS_FLAGS_VALID_BYTES_XMIT 0x00000200 +-#define NDIS_STATISTICS_FLAGS_VALID_XMIT_ERROR 0x00000400 +-#define NDIS_STATISTICS_FLAGS_VALID_XMIT_DISCARDS 0x00008000 +-#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_RCV 0x00010000 +-#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_RCV 0x00020000 +-#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_RCV 0x00040000 +-#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_XMIT 0x00080000 +-#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_XMIT 0x00100000 +-#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_XMIT 0x00200000 +- +-#define NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_RESET 0x00000001 +-#define NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_REINITIALIZE 0x00000002 +- +-#define NDIS_STATISTICS_INFO_REVISION_1 1 +-#define NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1 1 +-#define NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES_REVISION_1 1 +-#define NDIS_OBJECT_TYPE_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1 1 +-#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620 +-#define NDIS_OBJECT_TYPE_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_2 2 +-#endif +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_RSC_STATISTICS_REVISION_1 1 +-#endif +- +-#define NDIS_SIZEOF_STATISTICS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_STATISTICS_INFO, ifHCOutBroadcastOctets) +-#define NDIS_SIZEOF_INTERRUPT_MODERATION_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_INTERRUPT_MODERATION_PARAMETERS, InterruptModeration) +-#define NDIS_SIZEOF_TIMEOUT_DPC_REQUEST_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES, TimeoutArray) +-#define NDIS_SIZEOF_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, MaxLinkWidth) +-#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620 +-#define NDIS_SIZEOF_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, MaxInterruptMessages) +-#endif +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_SIZEOF_RSC_STATISTICS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSC_STATISTICS_INFO, Aborts) +-#endif +- +- typedef struct _NDIS_STATISTICS_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG SupportedStatistics; +- ULONG64 ifInDiscards; +- ULONG64 ifInErrors; +- ULONG64 ifHCInOctets; +- ULONG64 ifHCInUcastPkts; +- ULONG64 ifHCInMulticastPkts; +- ULONG64 ifHCInBroadcastPkts; +- ULONG64 ifHCOutOctets; +- ULONG64 ifHCOutUcastPkts; +- ULONG64 ifHCOutMulticastPkts; +- ULONG64 ifHCOutBroadcastPkts; +- ULONG64 ifOutErrors; +- ULONG64 ifOutDiscards; +- ULONG64 ifHCInUcastOctets; +- ULONG64 ifHCInMulticastOctets; +- ULONG64 ifHCInBroadcastOctets; +- ULONG64 ifHCOutUcastOctets; +- ULONG64 ifHCOutMulticastOctets; +- ULONG64 ifHCOutBroadcastOctets; +- } NDIS_STATISTICS_INFO, *PNDIS_STATISTICS_INFO; +- +-#if NDIS_SUPPORT_NDIS630 +- typedef struct _NDIS_RSC_STATISTICS_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG64 CoalescedPkts; +- ULONG64 CoalescedOctets; +- ULONG64 CoalesceEvents; +- ULONG64 Aborts; +- } NDIS_RSC_STATISTICS_INFO, *PNDIS_RSC_STATISTICS_INFO; +-#endif +- +- typedef enum _NDIS_INTERRUPT_MODERATION { +- NdisInterruptModerationUnknown, +- NdisInterruptModerationNotSupported, +- NdisInterruptModerationEnabled, +- NdisInterruptModerationDisabled +- } NDIS_INTERRUPT_MODERATION, *PNDIS_INTERRUPT_MODERATION; +- +- typedef struct _NDIS_INTERRUPT_MODERATION_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_INTERRUPT_MODERATION InterruptModeration; +- } NDIS_INTERRUPT_MODERATION_PARAMETERS, *PNDIS_INTERRUPT_MODERATION_PARAMETERS; +- +- typedef struct _NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG TimeoutArrayLength; +- ULONG TimeoutArray[1]; +- } NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES, *PNDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES; +- +- typedef struct _NDIS_PCI_DEVICE_CUSTOM_PROPERTIES { +- NDIS_OBJECT_HEADER Header; +- UINT32 DeviceType; +- UINT32 CurrentSpeedAndMode; +- UINT32 CurrentPayloadSize; +- UINT32 MaxPayloadSize; +- UINT32 MaxReadRequestSize; +- UINT32 CurrentLinkSpeed; +- UINT32 CurrentLinkWidth; +- UINT32 MaxLinkSpeed; +- UINT32 MaxLinkWidth; +-#if (NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620) +- UINT32 PciExpressVersion; +- UINT32 InterruptType; +- UINT32 MaxInterruptMessages; +-#endif +- } NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, *PNDIS_PCI_DEVICE_CUSTOM_PROPERTIES; +-#endif +- + #define OID_GEN_SUPPORTED_LIST 0x00010101 + #define OID_GEN_HARDWARE_STATUS 0x00010102 + #define OID_GEN_MEDIA_SUPPORTED 0x00010103 +@@ -346,12 +55,12 @@ extern "C" { + #define OID_GEN_LINK_SPEED 0x00010107 + #define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 + #define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 +-#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010a +-#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010b +-#define OID_GEN_VENDOR_ID 0x0001010c +-#define OID_GEN_VENDOR_DESCRIPTION 0x0001010d +-#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010e +-#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010f ++#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A ++#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B ++#define OID_GEN_VENDOR_ID 0x0001010C ++#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D ++#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E ++#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F + #define OID_GEN_DRIVER_VERSION 0x00010110 + #define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 + #define OID_GEN_PROTOCOL_OPTIONS 0x00010112 +@@ -363,99 +72,17 @@ extern "C" { + #define OID_GEN_SUPPORTED_GUIDS 0x00010117 + #define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 + #define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 ++#define OID_GEN_MACHINE_NAME 0x0001021A ++#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B ++#define OID_GEN_VLAN_ID 0x0001021C + #define OID_GEN_MEDIA_CAPABILITIES 0x00010201 + #define OID_GEN_PHYSICAL_MEDIUM 0x00010202 +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +-#define OID_GEN_RECEIVE_SCALE_CAPABILITIES 0x00010203 +-#define OID_GEN_RECEIVE_SCALE_PARAMETERS 0x00010204 +-#define OID_GEN_MAC_ADDRESS 0x00010205 +-#define OID_GEN_MAX_LINK_SPEED 0x00010206 +-#define OID_GEN_LINK_STATE 0x00010207 +-#define OID_GEN_LINK_PARAMETERS 0x00010208 +-#define OID_GEN_INTERRUPT_MODERATION 0x00010209 +-#define OID_GEN_NDIS_RESERVED_3 0x0001020a +-#define OID_GEN_NDIS_RESERVED_4 0x0001020b +-#define OID_GEN_NDIS_RESERVED_5 0x0001020c +-#define OID_GEN_ENUMERATE_PORTS 0x0001020d +-#define OID_GEN_PORT_STATE 0x0001020e +-#define OID_GEN_PORT_AUTHENTICATION_PARAMETERS 0x0001020f +-#define OID_GEN_TIMEOUT_DPC_REQUEST_CAPABILITIES 0x00010210 +-#define OID_GEN_PCI_DEVICE_CUSTOM_PROPERTIES 0x00010211 +-#define OID_GEN_NDIS_RESERVED_6 0x00010212 +-#define OID_GEN_PHYSICAL_MEDIUM_EX 0x00010213 +-#endif +- +-#define OID_GEN_MACHINE_NAME 0x0001021a +-#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021b +-#define OID_GEN_VLAN_ID 0x0001021c +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +-#define OID_GEN_RECEIVE_HASH 0x0001021f +-#define OID_GEN_MINIPORT_RESTART_ATTRIBUTES 0x0001021d +- +-#if NDIS_SUPPORT_NDIS61 +-#define OID_GEN_HD_SPLIT_PARAMETERS 0x0001021e +-#define OID_GEN_HD_SPLIT_CURRENT_CONFIG 0x00010220 +-#endif +- +-#define OID_GEN_PROMISCUOUS_MODE 0x00010280 +-#define OID_GEN_LAST_CHANGE 0x00010281 +-#define OID_GEN_DISCONTINUITY_TIME 0x00010282 +-#define OID_GEN_OPERATIONAL_STATUS 0x00010283 +-#define OID_GEN_XMIT_LINK_SPEED 0x00010284 +-#define OID_GEN_RCV_LINK_SPEED 0x00010285 +-#define OID_GEN_UNKNOWN_PROTOS 0x00010286 +-#define OID_GEN_INTERFACE_INFO 0x00010287 +-#define OID_GEN_ADMIN_STATUS 0x00010288 +-#define OID_GEN_ALIAS 0x00010289 +-#define OID_GEN_MEDIA_CONNECT_STATUS_EX 0x0001028a +-#define OID_GEN_LINK_SPEED_EX 0x0001028b +-#define OID_GEN_MEDIA_DUPLEX_STATE 0x0001028c +-#define OID_GEN_IP_OPER_STATUS 0x0001028d +- +-#define OID_WWAN_DRIVER_CAPS 0x0e010100 +-#define OID_WWAN_DEVICE_CAPS 0x0e010101 +-#define OID_WWAN_READY_INFO 0x0e010102 +-#define OID_WWAN_RADIO_STATE 0x0e010103 +-#define OID_WWAN_PIN 0x0e010104 +-#define OID_WWAN_PIN_LIST 0x0e010105 +-#define OID_WWAN_HOME_PROVIDER 0x0e010106 +-#define OID_WWAN_PREFERRED_PROVIDERS 0x0e010107 +-#define OID_WWAN_VISIBLE_PROVIDERS 0x0e010108 +-#define OID_WWAN_REGISTER_STATE 0x0e010109 +-#define OID_WWAN_PACKET_SERVICE 0x0e01010a +-#define OID_WWAN_SIGNAL_STATE 0x0e01010b +-#define OID_WWAN_CONNECT 0x0e01010c +-#define OID_WWAN_PROVISIONED_CONTEXTS 0x0e01010d +-#define OID_WWAN_SERVICE_ACTIVATION 0x0e01010e +-#define OID_WWAN_SMS_CONFIGURATION 0x0e01010f +-#define OID_WWAN_SMS_READ 0x0e010110 +-#define OID_WWAN_SMS_SEND 0x0e010111 +-#define OID_WWAN_SMS_DELETE 0x0e010112 +-#define OID_WWAN_SMS_STATUS 0x0e010113 +-#define OID_WWAN_VENDOR_SPECIFIC 0x0e010114 +-#endif +- +-#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630 +-#define OID_WWAN_AUTH_CHALLENGE 0x0e010115 +-#define OID_WWAN_ENUMERATE_DEVICE_SERVICES 0x0e010116 +-#define OID_WWAN_SUBSCRIBE_DEVICE_SERVICE_EVENTS 0x0e010117 +-#define OID_WWAN_DEVICE_SERVICE_COMMAND 0x0e010118 +-#define OID_WWAN_USSD 0x0e010119 +-#define OID_WWAN_PIN_EX 0x0e010121 +-#define OID_WWAN_ENUMERATE_DEVICE_SERVICE_COMMANDS 0x0e010122 +-#define OID_WWAN_DEVICE_SERVICE_SESSION 0x0e010123 +-#define OID_WWAN_DEVICE_SERVICE_SESSION_WRITE 0x0e010124 +-#define OID_WWAN_PREFERRED_MULTICARRIER_PROVIDERS 0x0e010125 +-#endif + + #define OID_GEN_XMIT_OK 0x00020101 + #define OID_GEN_RCV_OK 0x00020102 + #define OID_GEN_XMIT_ERROR 0x00020103 + #define OID_GEN_RCV_ERROR 0x00020104 + #define OID_GEN_RCV_NO_BUFFER 0x00020105 +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +-#define OID_GEN_STATISTICS 0x00020106 +-#endif + + #define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 + #define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 +@@ -466,32 +93,24 @@ extern "C" { + #define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 + #define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 + #define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 +-#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020a +-#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020b +-#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020c +-#define OID_GEN_RCV_CRC_ERROR 0x0002020d +-#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020e +-#define OID_GEN_GET_TIME_CAPS 0x0002020f ++#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A ++#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B ++#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C ++ ++#define OID_GEN_RCV_CRC_ERROR 0x0002020D ++#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E ++ ++#define OID_GEN_GET_TIME_CAPS 0x0002020F + #define OID_GEN_GET_NETCARD_TIME 0x00020210 + #define OID_GEN_NETCARD_LOAD 0x00020211 + #define OID_GEN_DEVICE_PROFILE 0x00020212 ++ + #define OID_GEN_INIT_TIME_MS 0x00020213 + #define OID_GEN_RESET_COUNTS 0x00020214 + #define OID_GEN_MEDIA_SENSE_COUNTS 0x00020215 + #define OID_GEN_FRIENDLY_NAME 0x00020216 +-#define OID_GEN_NDIS_RESERVED_1 0x00020217 +-#define OID_GEN_NDIS_RESERVED_2 0x00020218 +-#define OID_GEN_NDIS_RESERVED_5 0x0001020c +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +-#define OID_GEN_BYTES_RCV 0x00020219 +-#define OID_GEN_BYTES_XMIT 0x0002021a +-#define OID_GEN_RCV_DISCARDS 0x0002021b +-#define OID_GEN_XMIT_DISCARDS 0x0002021c +-#endif +-#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630 +-#define OID_TCP_RSC_STATISTICS 0x0002021d +-#define OID_GEN_NDIS_RESERVED_7 0x0002021e +-#endif ++#define OID_GEN_MINIPORT_INFO 0x00020217 ++#define OID_GEN_RESET_VERIFY_PARAMETERS 0x00020218 + + #define OID_GEN_CO_SUPPORTED_LIST OID_GEN_SUPPORTED_LIST + #define OID_GEN_CO_HARDWARE_STATUS OID_GEN_HARDWARE_STATUS +@@ -528,7 +147,6 @@ extern "C" { + #define OID_802_3_CURRENT_ADDRESS 0x01010102 + #define OID_802_3_MULTICAST_LIST 0x01010103 + #define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 +- + #define OID_802_3_MAC_OPTIONS 0x01010105 + + #define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 +@@ -545,11 +163,6 @@ extern "C" { + #define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 + #define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 + +-#if (NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6) +-#define OID_802_3_ADD_MULTICAST_ADDRESS 0x01010208 +-#define OID_802_3_DELETE_MULTICAST_ADDRESS 0x01010209 +-#endif +- + #define OID_802_5_PERMANENT_ADDRESS 0x02010101 + #define OID_802_5_CURRENT_ADDRESS 0x02010102 + #define OID_802_5_CURRENT_FUNCTIONAL 0x02010103 +@@ -597,12 +210,12 @@ extern "C" { + #define OID_FDDI_SMT_MIB_VERSION_ID 0x03030207 + #define OID_FDDI_SMT_MAC_CT 0x03030208 + #define OID_FDDI_SMT_NON_MASTER_CT 0x03030209 +-#define OID_FDDI_SMT_MASTER_CT 0x0303020a +-#define OID_FDDI_SMT_AVAILABLE_PATHS 0x0303020b +-#define OID_FDDI_SMT_CONFIG_CAPABILITIES 0x0303020c +-#define OID_FDDI_SMT_CONFIG_POLICY 0x0303020d +-#define OID_FDDI_SMT_CONNECTION_POLICY 0x0303020e +-#define OID_FDDI_SMT_T_NOTIFY 0x0303020f ++#define OID_FDDI_SMT_MASTER_CT 0x0303020A ++#define OID_FDDI_SMT_AVAILABLE_PATHS 0x0303020B ++#define OID_FDDI_SMT_CONFIG_CAPABILITIES 0x0303020C ++#define OID_FDDI_SMT_CONFIG_POLICY 0x0303020D ++#define OID_FDDI_SMT_CONNECTION_POLICY 0x0303020E ++#define OID_FDDI_SMT_T_NOTIFY 0x0303020F + #define OID_FDDI_SMT_STAT_RPT_POLICY 0x03030210 + #define OID_FDDI_SMT_TRACE_MAX_EXPIRATION 0x03030211 + #define OID_FDDI_SMT_PORT_INDEXES 0x03030212 +@@ -613,12 +226,12 @@ extern "C" { + #define OID_FDDI_SMT_HOLD_STATE 0x03030217 + #define OID_FDDI_SMT_REMOTE_DISCONNECT_FLAG 0x03030218 + #define OID_FDDI_SMT_STATION_STATUS 0x03030219 +-#define OID_FDDI_SMT_PEER_WRAP_FLAG 0x0303021a +-#define OID_FDDI_SMT_MSG_TIME_STAMP 0x0303021b +-#define OID_FDDI_SMT_TRANSITION_TIME_STAMP 0x0303021c +-#define OID_FDDI_SMT_SET_COUNT 0x0303021d +-#define OID_FDDI_SMT_LAST_SET_STATION_ID 0x0303021e +-#define OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS 0x0303021f ++#define OID_FDDI_SMT_PEER_WRAP_FLAG 0x0303021A ++#define OID_FDDI_SMT_MSG_TIME_STAMP 0x0303021B ++#define OID_FDDI_SMT_TRANSITION_TIME_STAMP 0x0303021C ++#define OID_FDDI_SMT_SET_COUNT 0x0303021D ++#define OID_FDDI_SMT_LAST_SET_STATION_ID 0x0303021E ++#define OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS 0x0303021F + #define OID_FDDI_MAC_BRIDGE_FUNCTIONS 0x03030220 + #define OID_FDDI_MAC_T_MAX_CAPABILITY 0x03030221 + #define OID_FDDI_MAC_TVX_CAPABILITY 0x03030222 +@@ -629,12 +242,12 @@ extern "C" { + #define OID_FDDI_MAC_OLD_UPSTREAM_NBR 0x03030227 + #define OID_FDDI_MAC_OLD_DOWNSTREAM_NBR 0x03030228 + #define OID_FDDI_MAC_DUP_ADDRESS_TEST 0x03030229 +-#define OID_FDDI_MAC_REQUESTED_PATHS 0x0303022a +-#define OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE 0x0303022b +-#define OID_FDDI_MAC_INDEX 0x0303022c +-#define OID_FDDI_MAC_SMT_ADDRESS 0x0303022d +-#define OID_FDDI_MAC_LONG_GRP_ADDRESS 0x0303022e +-#define OID_FDDI_MAC_SHORT_GRP_ADDRESS 0x0303022f ++#define OID_FDDI_MAC_REQUESTED_PATHS 0x0303022A ++#define OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE 0x0303022B ++#define OID_FDDI_MAC_INDEX 0x0303022C ++#define OID_FDDI_MAC_SMT_ADDRESS 0x0303022D ++#define OID_FDDI_MAC_LONG_GRP_ADDRESS 0x0303022E ++#define OID_FDDI_MAC_SHORT_GRP_ADDRESS 0x0303022F + #define OID_FDDI_MAC_T_REQ 0x03030230 + #define OID_FDDI_MAC_T_NEG 0x03030231 + #define OID_FDDI_MAC_T_MAX 0x03030232 +@@ -645,12 +258,12 @@ extern "C" { + #define OID_FDDI_MAC_T_PRI3 0x03030237 + #define OID_FDDI_MAC_T_PRI4 0x03030238 + #define OID_FDDI_MAC_T_PRI5 0x03030239 +-#define OID_FDDI_MAC_T_PRI6 0x0303023a +-#define OID_FDDI_MAC_FRAME_CT 0x0303023b +-#define OID_FDDI_MAC_COPIED_CT 0x0303023c +-#define OID_FDDI_MAC_TRANSMIT_CT 0x0303023d +-#define OID_FDDI_MAC_TOKEN_CT 0x0303023e +-#define OID_FDDI_MAC_ERROR_CT 0x0303023f ++#define OID_FDDI_MAC_T_PRI6 0x0303023A ++#define OID_FDDI_MAC_FRAME_CT 0x0303023B ++#define OID_FDDI_MAC_COPIED_CT 0x0303023C ++#define OID_FDDI_MAC_TRANSMIT_CT 0x0303023D ++#define OID_FDDI_MAC_TOKEN_CT 0x0303023E ++#define OID_FDDI_MAC_ERROR_CT 0x0303023F + #define OID_FDDI_MAC_LOST_CT 0x03030240 + #define OID_FDDI_MAC_TVX_EXPIRED_CT 0x03030241 + #define OID_FDDI_MAC_NOT_COPIED_CT 0x03030242 +@@ -661,12 +274,12 @@ extern "C" { + #define OID_FDDI_MAC_NOT_COPIED_THRESHOLD 0x03030247 + #define OID_FDDI_MAC_NOT_COPIED_RATIO 0x03030248 + #define OID_FDDI_MAC_RMT_STATE 0x03030249 +-#define OID_FDDI_MAC_DA_FLAG 0x0303024a +-#define OID_FDDI_MAC_UNDA_FLAG 0x0303024b +-#define OID_FDDI_MAC_FRAME_ERROR_FLAG 0x0303024c +-#define OID_FDDI_MAC_NOT_COPIED_FLAG 0x0303024d +-#define OID_FDDI_MAC_MA_UNITDATA_AVAILABLE 0x0303024e +-#define OID_FDDI_MAC_HARDWARE_PRESENT 0x0303024f ++#define OID_FDDI_MAC_DA_FLAG 0x0303024A ++#define OID_FDDI_MAC_UNDA_FLAG 0x0303024B ++#define OID_FDDI_MAC_FRAME_ERROR_FLAG 0x0303024C ++#define OID_FDDI_MAC_NOT_COPIED_FLAG 0x0303024D ++#define OID_FDDI_MAC_MA_UNITDATA_AVAILABLE 0x0303024E ++#define OID_FDDI_MAC_HARDWARE_PRESENT 0x0303024F + #define OID_FDDI_MAC_MA_UNITDATA_ENABLE 0x03030250 + #define OID_FDDI_PATH_INDEX 0x03030251 + #define OID_FDDI_PATH_RING_LATENCY 0x03030252 +@@ -677,12 +290,12 @@ extern "C" { + #define OID_FDDI_PATH_T_R_MODE 0x03030257 + #define OID_FDDI_PATH_SBA_AVAILABLE 0x03030258 + #define OID_FDDI_PATH_TVX_LOWER_BOUND 0x03030259 +-#define OID_FDDI_PATH_T_MAX_LOWER_BOUND 0x0303025a +-#define OID_FDDI_PATH_MAX_T_REQ 0x0303025b +-#define OID_FDDI_PORT_MY_TYPE 0x0303025c +-#define OID_FDDI_PORT_NEIGHBOR_TYPE 0x0303025d +-#define OID_FDDI_PORT_CONNECTION_POLICIES 0x0303025e +-#define OID_FDDI_PORT_MAC_INDICATED 0x0303025f ++#define OID_FDDI_PATH_T_MAX_LOWER_BOUND 0x0303025A ++#define OID_FDDI_PATH_MAX_T_REQ 0x0303025B ++#define OID_FDDI_PORT_MY_TYPE 0x0303025C ++#define OID_FDDI_PORT_NEIGHBOR_TYPE 0x0303025D ++#define OID_FDDI_PORT_CONNECTION_POLICIES 0x0303025E ++#define OID_FDDI_PORT_MAC_INDICATED 0x0303025F + #define OID_FDDI_PORT_CURRENT_PATH 0x03030260 + #define OID_FDDI_PORT_REQUESTED_PATHS 0x03030261 + #define OID_FDDI_PORT_MAC_PLACEMENT 0x03030262 +@@ -693,12 +306,12 @@ extern "C" { + #define OID_FDDI_PORT_INDEX 0x03030267 + #define OID_FDDI_PORT_MAINT_LS 0x03030268 + #define OID_FDDI_PORT_BS_FLAG 0x03030269 +-#define OID_FDDI_PORT_PC_LS 0x0303026a +-#define OID_FDDI_PORT_EB_ERROR_CT 0x0303026b +-#define OID_FDDI_PORT_LCT_FAIL_CT 0x0303026c +-#define OID_FDDI_PORT_LER_ESTIMATE 0x0303026d +-#define OID_FDDI_PORT_LEM_REJECT_CT 0x0303026e +-#define OID_FDDI_PORT_LEM_CT 0x0303026f ++#define OID_FDDI_PORT_PC_LS 0x0303026A ++#define OID_FDDI_PORT_EB_ERROR_CT 0x0303026B ++#define OID_FDDI_PORT_LCT_FAIL_CT 0x0303026C ++#define OID_FDDI_PORT_LER_ESTIMATE 0x0303026D ++#define OID_FDDI_PORT_LEM_REJECT_CT 0x0303026E ++#define OID_FDDI_PORT_LEM_CT 0x0303026F + #define OID_FDDI_PORT_LER_CUTOFF 0x03030270 + #define OID_FDDI_PORT_LER_ALARM 0x03030271 + #define OID_FDDI_PORT_CONNNECT_STATE 0x03030272 +@@ -709,12 +322,12 @@ extern "C" { + #define OID_FDDI_SMT_STATION_ACTION 0x03030277 + #define OID_FDDI_PORT_ACTION 0x03030278 + #define OID_FDDI_IF_DESCR 0x03030279 +-#define OID_FDDI_IF_TYPE 0x0303027a +-#define OID_FDDI_IF_MTU 0x0303027b +-#define OID_FDDI_IF_SPEED 0x0303027c +-#define OID_FDDI_IF_PHYS_ADDRESS 0x0303027d +-#define OID_FDDI_IF_ADMIN_STATUS 0x0303027e +-#define OID_FDDI_IF_OPER_STATUS 0x0303027f ++#define OID_FDDI_IF_TYPE 0x0303027A ++#define OID_FDDI_IF_MTU 0x0303027B ++#define OID_FDDI_IF_SPEED 0x0303027C ++#define OID_FDDI_IF_PHYS_ADDRESS 0x0303027D ++#define OID_FDDI_IF_ADMIN_STATUS 0x0303027E ++#define OID_FDDI_IF_OPER_STATUS 0x0303027F + #define OID_FDDI_IF_LAST_CHANGE 0x03030280 + #define OID_FDDI_IF_IN_OCTETS 0x03030281 + #define OID_FDDI_IF_IN_UCAST_PKTS 0x03030282 +@@ -725,10 +338,10 @@ extern "C" { + #define OID_FDDI_IF_OUT_OCTETS 0x03030287 + #define OID_FDDI_IF_OUT_UCAST_PKTS 0x03030288 + #define OID_FDDI_IF_OUT_NUCAST_PKTS 0x03030289 +-#define OID_FDDI_IF_OUT_DISCARDS 0x0303028a +-#define OID_FDDI_IF_OUT_ERRORS 0x0303028b +-#define OID_FDDI_IF_OUT_QLEN 0x0303028c +-#define OID_FDDI_IF_SPECIFIC 0x0303028d ++#define OID_FDDI_IF_OUT_DISCARDS 0x0303028A ++#define OID_FDDI_IF_OUT_ERRORS 0x0303028B ++#define OID_FDDI_IF_OUT_QLEN 0x0303028C ++#define OID_FDDI_IF_SPECIFIC 0x0303028D + + #define OID_WAN_PERMANENT_ADDRESS 0x04010101 + #define OID_WAN_CURRENT_ADDRESS 0x04010102 +@@ -740,14 +353,15 @@ extern "C" { + #define OID_WAN_GET_INFO 0x04010107 + #define OID_WAN_SET_LINK_INFO 0x04010108 + #define OID_WAN_GET_LINK_INFO 0x04010109 +-#define OID_WAN_LINE_COUNT 0x0401010a +-#define OID_WAN_PROTOCOL_CAPS 0x0401010b + +-#define OID_WAN_GET_BRIDGE_INFO 0x0401020a +-#define OID_WAN_SET_BRIDGE_INFO 0x0401020b +-#define OID_WAN_GET_COMP_INFO 0x0401020c +-#define OID_WAN_SET_COMP_INFO 0x0401020d +-#define OID_WAN_GET_STATS_INFO 0x0401020e ++#define OID_WAN_LINE_COUNT 0x0401010A ++#define OID_WAN_PROTOCOL_CAPS 0x0401010B ++ ++#define OID_WAN_GET_BRIDGE_INFO 0x0401020A ++#define OID_WAN_SET_BRIDGE_INFO 0x0401020B ++#define OID_WAN_GET_COMP_INFO 0x0401020C ++#define OID_WAN_SET_COMP_INFO 0x0401020D ++#define OID_WAN_GET_STATS_INFO 0x0401020E + + #define OID_WAN_CO_GET_INFO 0x04010180 + #define OID_WAN_CO_SET_LINK_INFO 0x04010181 +@@ -782,12 +396,12 @@ extern "C" { + #define OID_TAPI_DEV_SPECIFIC 0x07030107 + #define OID_TAPI_DIAL 0x07030108 + #define OID_TAPI_DROP 0x07030109 +-#define OID_TAPI_GET_ADDRESS_CAPS 0x0703010a +-#define OID_TAPI_GET_ADDRESS_ID 0x0703010b +-#define OID_TAPI_GET_ADDRESS_STATUS 0x0703010c +-#define OID_TAPI_GET_CALL_ADDRESS_ID 0x0703010d +-#define OID_TAPI_GET_CALL_INFO 0x0703010e +-#define OID_TAPI_GET_CALL_STATUS 0x0703010f ++#define OID_TAPI_GET_ADDRESS_CAPS 0x0703010A ++#define OID_TAPI_GET_ADDRESS_ID 0x0703010B ++#define OID_TAPI_GET_ADDRESS_STATUS 0x0703010C ++#define OID_TAPI_GET_CALL_ADDRESS_ID 0x0703010D ++#define OID_TAPI_GET_CALL_INFO 0x0703010E ++#define OID_TAPI_GET_CALL_STATUS 0x0703010F + #define OID_TAPI_GET_DEV_CAPS 0x07030110 + #define OID_TAPI_GET_DEV_CONFIG 0x07030111 + #define OID_TAPI_GET_EXTENSION_ID 0x07030112 +@@ -798,12 +412,12 @@ extern "C" { + #define OID_TAPI_OPEN 0x07030117 + #define OID_TAPI_PROVIDER_INITIALIZE 0x07030118 + #define OID_TAPI_PROVIDER_SHUTDOWN 0x07030119 +-#define OID_TAPI_SECURE_CALL 0x0703011a +-#define OID_TAPI_SELECT_EXT_VERSION 0x0703011b +-#define OID_TAPI_SEND_USER_USER_INFO 0x0703011c +-#define OID_TAPI_SET_APP_SPECIFIC 0x0703011d +-#define OID_TAPI_SET_CALL_PARAMS 0x0703011e +-#define OID_TAPI_SET_DEFAULT_MEDIA_DETECTION 0x0703011f ++#define OID_TAPI_SECURE_CALL 0x0703011A ++#define OID_TAPI_SELECT_EXT_VERSION 0x0703011B ++#define OID_TAPI_SEND_USER_USER_INFO 0x0703011C ++#define OID_TAPI_SET_APP_SPECIFIC 0x0703011D ++#define OID_TAPI_SET_CALL_PARAMS 0x0703011E ++#define OID_TAPI_SET_DEFAULT_MEDIA_DETECTION 0x0703011F + #define OID_TAPI_SET_DEV_CONFIG 0x07030120 + #define OID_TAPI_SET_MEDIA_MODE 0x07030121 + #define OID_TAPI_SET_STATUS_MESSAGES 0x07030122 +@@ -819,8 +433,8 @@ extern "C" { + #define OID_ATM_MAX_ACTIVE_VPI_BITS 0x08010107 + #define OID_ATM_MAX_AAL0_PACKET_SIZE 0x08010108 + #define OID_ATM_MAX_AAL1_PACKET_SIZE 0x08010109 +-#define OID_ATM_MAX_AAL34_PACKET_SIZE 0x0801010a +-#define OID_ATM_MAX_AAL5_PACKET_SIZE 0x0801010b ++#define OID_ATM_MAX_AAL34_PACKET_SIZE 0x0801010A ++#define OID_ATM_MAX_AAL5_PACKET_SIZE 0x0801010B + + #define OID_ATM_SIGNALING_VPIVCI 0x08010201 + #define OID_ATM_ASSIGNED_VPI 0x08010202 +@@ -831,14 +445,14 @@ extern "C" { + #define OID_ATM_GET_NEAREST_FLOW 0x08010207 + #define OID_ATM_ALIGNMENT_REQUIRED 0x08010208 + #define OID_ATM_LECS_ADDRESS 0x08010209 +-#define OID_ATM_SERVICE_ADDRESS 0x0801020a ++#define OID_ATM_SERVICE_ADDRESS 0x0801020A + +-#define OID_ATM_CALL_PROCEEDING 0x0801020b +-#define OID_ATM_CALL_ALERTING 0x0801020c +-#define OID_ATM_PARTY_ALERTING 0x0801020d +-#define OID_ATM_CALL_NOTIFY 0x0801020e ++#define OID_ATM_CALL_PROCEEDING 0x0801020B ++#define OID_ATM_CALL_ALERTING 0x0801020C ++#define OID_ATM_PARTY_ALERTING 0x0801020D ++#define OID_ATM_CALL_NOTIFY 0x0801020E + +-#define OID_ATM_MY_IP_NM_ADDRESS 0x0801020f ++#define OID_ATM_MY_IP_NM_ADDRESS 0x0801020F + + #define OID_ATM_RCV_CELLS_OK 0x08020101 + #define OID_ATM_XMIT_CELLS_OK 0x08020102 +@@ -848,102 +462,173 @@ extern "C" { + #define OID_ATM_CELLS_HEC_ERROR 0x08020202 + #define OID_ATM_RCV_REASSEMBLY_ERROR 0x08020203 + +-#define OID_802_11_BSSID 0x0d010101 +-#define OID_802_11_SSID 0x0d010102 +-#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0d010203 +-#define OID_802_11_NETWORK_TYPE_IN_USE 0x0d010204 +-#define OID_802_11_TX_POWER_LEVEL 0x0d010205 +-#define OID_802_11_RSSI 0x0d010206 +-#define OID_802_11_RSSI_TRIGGER 0x0d010207 +-#define OID_802_11_INFRASTRUCTURE_MODE 0x0d010108 +-#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0d010209 +-#define OID_802_11_RTS_THRESHOLD 0x0d01020a +-#define OID_802_11_NUMBER_OF_ANTENNAS 0x0d01020b +-#define OID_802_11_RX_ANTENNA_SELECTED 0x0d01020c +-#define OID_802_11_TX_ANTENNA_SELECTED 0x0d01020d +-#define OID_802_11_SUPPORTED_RATES 0x0d01020e +-#define OID_802_11_DESIRED_RATES 0x0d010210 +-#define OID_802_11_CONFIGURATION 0x0d010211 +-#define OID_802_11_STATISTICS 0x0d020212 +-#define OID_802_11_ADD_WEP 0x0d010113 +-#define OID_802_11_REMOVE_WEP 0x0d010114 +-#define OID_802_11_DISASSOCIATE 0x0d010115 +-#define OID_802_11_POWER_MODE 0x0d010216 +-#define OID_802_11_BSSID_LIST 0x0d010217 +-#define OID_802_11_AUTHENTICATION_MODE 0x0d010118 +-#define OID_802_11_PRIVACY_FILTER 0x0d010119 +-#define OID_802_11_BSSID_LIST_SCAN 0x0d01011a +-#define OID_802_11_WEP_STATUS 0x0d01011b ++#define OID_WW_GEN_NETWORK_TYPES_SUPPORTED 0x09010101 ++#define OID_WW_GEN_NETWORK_TYPE_IN_USE 0x09010102 ++#define OID_WW_GEN_HEADER_FORMATS_SUPPORTED 0x09010103 ++#define OID_WW_GEN_HEADER_FORMAT_IN_USE 0x09010104 ++#define OID_WW_GEN_INDICATION_REQUEST 0x09010105 ++#define OID_WW_GEN_DEVICE_INFO 0x09010106 ++#define OID_WW_GEN_OPERATION_MODE 0x09010107 ++#define OID_WW_GEN_LOCK_STATUS 0x09010108 ++#define OID_WW_GEN_DISABLE_TRANSMITTER 0x09010109 ++#define OID_WW_GEN_NETWORK_ID 0x0901010A ++#define OID_WW_GEN_PERMANENT_ADDRESS 0x0901010B ++#define OID_WW_GEN_CURRENT_ADDRESS 0x0901010C ++#define OID_WW_GEN_SUSPEND_DRIVER 0x0901010D ++#define OID_WW_GEN_BASESTATION_ID 0x0901010E ++#define OID_WW_GEN_CHANNEL_ID 0x0901010F ++#define OID_WW_GEN_ENCRYPTION_SUPPORTED 0x09010110 ++#define OID_WW_GEN_ENCRYPTION_IN_USE 0x09010111 ++#define OID_WW_GEN_ENCRYPTION_STATE 0x09010112 ++#define OID_WW_GEN_CHANNEL_QUALITY 0x09010113 ++#define OID_WW_GEN_REGISTRATION_STATUS 0x09010114 ++#define OID_WW_GEN_RADIO_LINK_SPEED 0x09010115 ++#define OID_WW_GEN_LATENCY 0x09010116 ++#define OID_WW_GEN_BATTERY_LEVEL 0x09010117 ++#define OID_WW_GEN_EXTERNAL_POWER 0x09010118 ++ ++#define OID_WW_GEN_PING_ADDRESS 0x09010201 ++#define OID_WW_GEN_RSSI 0x09010202 ++#define OID_WW_GEN_SIM_STATUS 0x09010203 ++#define OID_WW_GEN_ENABLE_SIM_PIN 0x09010204 ++#define OID_WW_GEN_CHANGE_SIM_PIN 0x09010205 ++#define OID_WW_GEN_SIM_PUK 0x09010206 ++#define OID_WW_GEN_SIM_EXCEPTION 0x09010207 ++ ++#define OID_WW_MBX_SUBADDR 0x09050101 ++ ++#define OID_WW_MBX_FLEXLIST 0x09050103 ++#define OID_WW_MBX_GROUPLIST 0x09050104 ++#define OID_WW_MBX_TRAFFIC_AREA 0x09050105 ++#define OID_WW_MBX_LIVE_DIE 0x09050106 ++#define OID_WW_MBX_TEMP_DEFAULTLIST 0x09050107 ++ ++#define OID_WW_PIN_LOC_AUTHORIZE 0x09090101 ++#define OID_WW_PIN_LAST_LOCATION 0x09090102 ++#define OID_WW_PIN_LOC_FIX 0x09090103 ++ ++#define OID_WW_CDPD_SPNI 0x090D0101 ++#define OID_WW_CDPD_WASI 0x090D0102 ++#define OID_WW_CDPD_AREA_COLOR 0x090D0103 ++#define OID_WW_CDPD_TX_POWER_LEVEL 0x090D0104 ++#define OID_WW_CDPD_EID 0x090D0105 ++#define OID_WW_CDPD_HEADER_COMPRESSION 0x090D0106 ++#define OID_WW_CDPD_DATA_COMPRESSION 0x090D0107 ++#define OID_WW_CDPD_CHANNEL_SELECT 0x090D0108 ++#define OID_WW_CDPD_CHANNEL_STATE 0x090D0109 ++#define OID_WW_CDPD_NEI 0x090D010A ++#define OID_WW_CDPD_NEI_STATE 0x090D010B ++#define OID_WW_CDPD_SERVICE_PROVIDER_IDENTIFIER 0x090D010C ++#define OID_WW_CDPD_SLEEP_MODE 0x090D010D ++ ++#define OID_WW_CDPD_CIRCUIT_SWITCHED 0x090D010E ++ ++#define OID_WW_CDPD_TEI 0x090D010F ++#define OID_WW_CDPD_RSSI 0x090D0110 ++ ++#define OID_WW_CDPD_CS_SERVICE_PREFERENCE 0x090D0111 ++#define OID_WW_CDPD_CS_SERVICE_STATUS 0x090D0112 ++#define OID_WW_CDPD_CS_INFO 0x090D0113 ++#define OID_WW_CDPD_CS_SUSPEND 0x090D0114 ++#define OID_WW_CDPD_CS_DEFAULT_DIAL_CODE 0x090D0115 ++#define OID_WW_CDPD_CS_CALLBACK 0x090D0116 ++#define OID_WW_CDPD_CS_SID_LIST 0x090D0117 ++#define OID_WW_CDPD_CS_CONFIGURATION 0x090D0118 ++ ++#define OID_WW_ARD_SNDCP 0x09110101 ++#define OID_WW_ARD_TMLY_MSG 0x09110102 ++#define OID_WW_ARD_DATAGRAM 0x09110103 ++ ++#define OID_WW_TAC_COMPRESSION 0x09150101 ++ ++#define OID_WW_TAC_SET_CONFIG 0x09150102 ++#define OID_WW_TAC_GET_STATUS 0x09150103 ++#define OID_WW_TAC_USER_HEADER 0x09150104 ++ ++#define OID_WW_TAC_UNIQUE_SDU_TAG 0x09150105 ++#define OID_WW_TAC_SEND_COMMAND 0x09150106 ++#define OID_WW_TAC_GET_RESPONSE 0x09150107 ++#define OID_WW_TAC_DISABLE_RECEIVER 0x09150108 ++#define OID_WW_TAC_ANTENNA_MODE 0x09150109 ++#define OID_WW_TAC_FLUSH_DATA 0x0915010A ++#define OID_WW_TAC_SHUTDOWN_DEVICE 0x0915010B ++#define OID_WW_TAC_DEVICE_EXCEPTION 0x0915010C ++#define OID_WW_TAC_RECEIVE_EXCEPTION 0x0915010D ++#define OID_WW_TAC_BUFFER_EXCEPTION 0x0915010E ++#define OID_WW_TAC_BATTERY_EXCEPTION 0x0915010F ++#define OID_WW_TAC_TRANSMITTER_KEYED 0x09150110 ++#define OID_WW_TAC_SYSTEM_TABLE 0x09150111 ++#define OID_WW_TAC_CHANNEL_TABLE 0x09150112 ++#define OID_WW_TAC_DCHANNEL_TABLE 0x09150113 ++#define OID_WW_TAC_RECEIVE_QUEUE_COUNT 0x09150114 ++ ++#define OID_WW_TAC_STATISTICS 0x09160101 ++ ++#define OID_WW_MET_FUNCTION 0x09190101 ++ ++#define OID_802_11_BSSID 0x0D010101 ++#define OID_802_11_SSID 0x0D010102 ++#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 ++#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 ++#define OID_802_11_TX_POWER_LEVEL 0x0D010205 ++#define OID_802_11_RSSI 0x0D010206 ++#define OID_802_11_RSSI_TRIGGER 0x0D010207 ++#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 ++#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 ++#define OID_802_11_RTS_THRESHOLD 0x0D01020A ++#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B ++#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C ++#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D ++#define OID_802_11_SUPPORTED_RATES 0x0D01020E ++#define OID_802_11_DESIRED_RATES 0x0D010210 ++#define OID_802_11_CONFIGURATION 0x0D010211 ++#define OID_802_11_STATISTICS 0x0D020212 ++#define OID_802_11_ADD_WEP 0x0D010113 ++#define OID_802_11_REMOVE_WEP 0x0D010114 ++#define OID_802_11_DISASSOCIATE 0x0D010115 ++#define OID_802_11_POWER_MODE 0x0D010216 ++#define OID_802_11_BSSID_LIST 0x0D010217 ++#define OID_802_11_AUTHENTICATION_MODE 0x0D010118 ++#define OID_802_11_PRIVACY_FILTER 0x0D010119 ++#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A ++#define OID_802_11_WEP_STATUS 0x0D01011B + + #define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS +-#define OID_802_11_RELOAD_DEFAULTS 0x0d01011c +- +-#define OID_802_11_ADD_KEY 0x0d01011d +-#define OID_802_11_REMOVE_KEY 0x0d01011e +-#define OID_802_11_ASSOCIATION_INFORMATION 0x0d01011f +-#define OID_802_11_TEST 0x0d010120 +-#define OID_802_11_MEDIA_STREAM_MODE 0x0d010121 +-#define OID_802_11_CAPABILITY 0x0d010122 +-#define OID_802_11_PMKID 0x0d010123 +-#define OID_802_11_NON_BCAST_SSID_LIST 0x0d010124 +-#define OID_802_11_RADIO_STATUS 0x0d010125 +- +-#define NDIS_ETH_TYPE_IPV4 0x0800 +-#define NDIS_ETH_TYPE_ARP 0x0806 +-#define NDIS_ETH_TYPE_IPV6 0x86dd +-#define NDIS_ETH_TYPE_802_1X 0x888e +-#define NDIS_ETH_TYPE_802_1Q 0x8100 +-#define NDIS_ETH_TYPE_SLOW_PROTOCOL 0x8809 ++#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C ++ ++#define OID_802_11_ADD_KEY 0x0D01011D ++#define OID_802_11_REMOVE_KEY 0x0D01011E ++#define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F ++#define OID_802_11_TEST 0x0D010120 ++#define OID_802_11_MEDIA_STREAM_MODE 0x0D010121 + + #define NDIS_802_11_LENGTH_SSID 32 + #define NDIS_802_11_LENGTH_RATES 8 + #define NDIS_802_11_LENGTH_RATES_EX 16 + +-#define NDIS_802_11_AUTH_REQUEST_REAUTH 0x01 +-#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE 0x02 +-#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR 0x06 +-#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR 0x0e +-#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS 0x0f +- +-#define NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED 0x01 +- +-#define NDIS_802_11_AI_REQFI_CAPABILITIES 1 +-#define NDIS_802_11_AI_REQFI_LISTENINTERVAL 2 +-#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS 4 +- +-#define NDIS_802_11_AI_RESFI_CAPABILITIES 1 +-#define NDIS_802_11_AI_RESFI_STATUSCODE 2 +-#define NDIS_802_11_AI_RESFI_ASSOCIATIONID 4 +- + typedef enum _NDIS_802_11_STATUS_TYPE { + Ndis802_11StatusType_Authentication, + Ndis802_11StatusType_MediaStreamMode, +- Ndis802_11StatusType_PMKID_CandidateList, + Ndis802_11StatusTypeMax +- } NDIS_802_11_STATUS_TYPE, *PNDIS_802_11_STATUS_TYPE; ++ } NDIS_802_11_STATUS_TYPE,*PNDIS_802_11_STATUS_TYPE; + + typedef UCHAR NDIS_802_11_MAC_ADDRESS[6]; + + typedef struct _NDIS_802_11_STATUS_INDICATION { + NDIS_802_11_STATUS_TYPE StatusType; +- } NDIS_802_11_STATUS_INDICATION, *PNDIS_802_11_STATUS_INDICATION; ++ } NDIS_802_11_STATUS_INDICATION,*PNDIS_802_11_STATUS_INDICATION; ++ ++#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS 0x0f ++#define NDIS_802_11_AUTH_REQUEST_REAUTH 0x01 ++#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE 0x02 ++#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR 0x06 ++#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR 0x0E + + typedef struct _NDIS_802_11_AUTHENTICATION_REQUEST { + ULONG Length; + NDIS_802_11_MAC_ADDRESS Bssid; + ULONG Flags; +- } NDIS_802_11_AUTHENTICATION_REQUEST, *PNDIS_802_11_AUTHENTICATION_REQUEST; +- +- typedef struct _PMKID_CANDIDATE { +- NDIS_802_11_MAC_ADDRESS BSSID; +- ULONG Flags; +- } PMKID_CANDIDATE, *PPMKID_CANDIDATE; +- +- typedef struct _NDIS_802_11_PMKID_CANDIDATE_LIST { +- ULONG Version; +- ULONG NumCandidates; +- PMKID_CANDIDATE CandidateList[1]; +- } NDIS_802_11_PMKID_CANDIDATE_LIST, *PNDIS_802_11_PMKID_CANDIDATE_LIST; ++ } NDIS_802_11_AUTHENTICATION_REQUEST,*PNDIS_802_11_AUTHENTICATION_REQUEST; + + typedef enum _NDIS_802_11_NETWORK_TYPE { + Ndis802_11FH, +@@ -952,19 +637,19 @@ extern "C" { + Ndis802_11OFDM24, + Ndis802_11Automode, + Ndis802_11NetworkTypeMax +- } NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE; ++ } NDIS_802_11_NETWORK_TYPE,*PNDIS_802_11_NETWORK_TYPE; + + typedef struct _NDIS_802_11_NETWORK_TYPE_LIST { + ULONG NumberOfItems; + NDIS_802_11_NETWORK_TYPE NetworkType [1]; +- } NDIS_802_11_NETWORK_TYPE_LIST, *PNDIS_802_11_NETWORK_TYPE_LIST; ++ } NDIS_802_11_NETWORK_TYPE_LIST,*PNDIS_802_11_NETWORK_TYPE_LIST; + + typedef enum _NDIS_802_11_POWER_MODE { + Ndis802_11PowerModeCAM, + Ndis802_11PowerModeMAX_PSP, + Ndis802_11PowerModeFast_PSP, + Ndis802_11PowerModeMax +- } NDIS_802_11_POWER_MODE, *PNDIS_802_11_POWER_MODE; ++ } NDIS_802_11_POWER_MODE,*PNDIS_802_11_POWER_MODE; + + typedef ULONG NDIS_802_11_TX_POWER_LEVEL; + typedef LONG NDIS_802_11_RSSI; +@@ -974,7 +659,7 @@ extern "C" { + ULONG HopPattern; + ULONG HopSet; + ULONG DwellTime; +- } NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH; ++ } NDIS_802_11_CONFIGURATION_FH,*PNDIS_802_11_CONFIGURATION_FH; + + typedef struct _NDIS_802_11_CONFIGURATION { + ULONG Length; +@@ -982,7 +667,7 @@ extern "C" { + ULONG ATIMWindow; + ULONG DSConfig; + NDIS_802_11_CONFIGURATION_FH FHConfig; +- } NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION; ++ } NDIS_802_11_CONFIGURATION,*PNDIS_802_11_CONFIGURATION; + + typedef struct _NDIS_802_11_STATISTICS { + ULONG Length; +@@ -998,19 +683,7 @@ extern "C" { + LARGE_INTEGER ReceivedFragmentCount; + LARGE_INTEGER MulticastReceivedFrameCount; + LARGE_INTEGER FCSErrorCount; +- LARGE_INTEGER TKIPLocalMICFailures; +- LARGE_INTEGER TKIPICVErrorCount; +- LARGE_INTEGER TKIPCounterMeasuresInvoked; +- LARGE_INTEGER TKIPReplays; +- LARGE_INTEGER CCMPFormatErrors; +- LARGE_INTEGER CCMPReplays; +- LARGE_INTEGER CCMPDecryptErrors; +- LARGE_INTEGER FourWayHandshakeFailures; +- LARGE_INTEGER WEPUndecryptableCount; +- LARGE_INTEGER WEPICVErrorCount; +- LARGE_INTEGER DecryptSuccessCount; +- LARGE_INTEGER DecryptFailureCount; +- } NDIS_802_11_STATISTICS, *PNDIS_802_11_STATISTICS; ++ } NDIS_802_11_STATISTICS,*PNDIS_802_11_STATISTICS; + + typedef ULONG NDIS_802_11_KEY_INDEX; + typedef ULONGLONG NDIS_802_11_KEY_RSC; +@@ -1022,26 +695,27 @@ extern "C" { + NDIS_802_11_MAC_ADDRESS BSSID; + NDIS_802_11_KEY_RSC KeyRSC; + UCHAR KeyMaterial[1]; +- } NDIS_802_11_KEY, *PNDIS_802_11_KEY; ++ } NDIS_802_11_KEY,*PNDIS_802_11_KEY; + + typedef struct _NDIS_802_11_REMOVE_KEY { + ULONG Length; + ULONG KeyIndex; + NDIS_802_11_MAC_ADDRESS BSSID; +- } NDIS_802_11_REMOVE_KEY, *PNDIS_802_11_REMOVE_KEY; ++ } NDIS_802_11_REMOVE_KEY,*PNDIS_802_11_REMOVE_KEY; ++ + typedef struct _NDIS_802_11_WEP { + ULONG Length; + ULONG KeyIndex; + ULONG KeyLength; + UCHAR KeyMaterial[1]; +- } NDIS_802_11_WEP, *PNDIS_802_11_WEP; ++ } NDIS_802_11_WEP,*PNDIS_802_11_WEP; + + typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE { + Ndis802_11IBSS, + Ndis802_11Infrastructure, + Ndis802_11AutoUnknown, + Ndis802_11InfrastructureMax +- } NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE; ++ } NDIS_802_11_NETWORK_INFRASTRUCTURE,*PNDIS_802_11_NETWORK_INFRASTRUCTURE; + + typedef enum _NDIS_802_11_AUTHENTICATION_MODE { + Ndis802_11AuthModeOpen, +@@ -1050,10 +724,8 @@ extern "C" { + Ndis802_11AuthModeWPA, + Ndis802_11AuthModeWPAPSK, + Ndis802_11AuthModeWPANone, +- Ndis802_11AuthModeWPA2, +- Ndis802_11AuthModeWPA2PSK, + Ndis802_11AuthModeMax +- } NDIS_802_11_AUTHENTICATION_MODE, *PNDIS_802_11_AUTHENTICATION_MODE; ++ } NDIS_802_11_AUTHENTICATION_MODE,*PNDIS_802_11_AUTHENTICATION_MODE; + + typedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES]; + typedef UCHAR NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX]; +@@ -1061,7 +733,7 @@ extern "C" { + typedef struct _NDIS_802_11_SSID { + ULONG SsidLength; + UCHAR Ssid[NDIS_802_11_LENGTH_SSID]; +- } NDIS_802_11_SSID, *PNDIS_802_11_SSID; ++ } NDIS_802_11_SSID,*PNDIS_802_11_SSID; + + typedef struct _NDIS_WLAN_BSSID { + ULONG Length; +@@ -1074,12 +746,12 @@ extern "C" { + NDIS_802_11_CONFIGURATION Configuration; + NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; + NDIS_802_11_RATES SupportedRates; +- } NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID; ++ } NDIS_WLAN_BSSID,*PNDIS_WLAN_BSSID; + + typedef struct _NDIS_802_11_BSSID_LIST { + ULONG NumberOfItems; + NDIS_WLAN_BSSID Bssid[1]; +- } NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST; ++ } NDIS_802_11_BSSID_LIST,*PNDIS_802_11_BSSID_LIST; + + typedef struct _NDIS_WLAN_BSSID_EX { + ULONG Length; +@@ -1094,24 +766,24 @@ extern "C" { + NDIS_802_11_RATES_EX SupportedRates; + ULONG IELength; + UCHAR IEs[1]; +- } NDIS_WLAN_BSSID_EX, *PNDIS_WLAN_BSSID_EX; ++ } NDIS_WLAN_BSSID_EX,*PNDIS_WLAN_BSSID_EX; + + typedef struct _NDIS_802_11_BSSID_LIST_EX { + ULONG NumberOfItems; + NDIS_WLAN_BSSID_EX Bssid[1]; +- } NDIS_802_11_BSSID_LIST_EX, *PNDIS_802_11_BSSID_LIST_EX; ++ } NDIS_802_11_BSSID_LIST_EX,*PNDIS_802_11_BSSID_LIST_EX; + + typedef struct _NDIS_802_11_FIXED_IEs { + UCHAR Timestamp[8]; + USHORT BeaconInterval; + USHORT Capabilities; +- } NDIS_802_11_FIXED_IEs, *PNDIS_802_11_FIXED_IEs; ++ } NDIS_802_11_FIXED_IEs,*PNDIS_802_11_FIXED_IEs; + + typedef struct _NDIS_802_11_VARIABLE_IEs { + UCHAR ElementID; + UCHAR Length; + UCHAR data[1]; +- } NDIS_802_11_VARIABLE_IEs, *PNDIS_802_11_VARIABLE_IEs; ++ } NDIS_802_11_VARIABLE_IEs,*PNDIS_802_11_VARIABLE_IEs; + + typedef ULONG NDIS_802_11_FRAGMENTATION_THRESHOLD; + typedef ULONG NDIS_802_11_RTS_THRESHOLD; +@@ -1120,38 +792,46 @@ extern "C" { + typedef enum _NDIS_802_11_PRIVACY_FILTER { + Ndis802_11PrivFilterAcceptAll, + Ndis802_11PrivFilter8021xWEP +- } NDIS_802_11_PRIVACY_FILTER, *PNDIS_802_11_PRIVACY_FILTER; ++ } NDIS_802_11_PRIVACY_FILTER,*PNDIS_802_11_PRIVACY_FILTER; + + typedef enum _NDIS_802_11_WEP_STATUS { + Ndis802_11WEPEnabled, +- Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled, ++ Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled, + Ndis802_11WEPDisabled, +- Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled, ++ Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled, + Ndis802_11WEPKeyAbsent, +- Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent, ++ Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent, + Ndis802_11WEPNotSupported, +- Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported, ++ Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported, + Ndis802_11Encryption2Enabled, + Ndis802_11Encryption2KeyAbsent, + Ndis802_11Encryption3Enabled, + Ndis802_11Encryption3KeyAbsent +- } NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS, NDIS_802_11_ENCRYPTION_STATUS, *PNDIS_802_11_ENCRYPTION_STATUS; ++ } NDIS_802_11_WEP_STATUS,*PNDIS_802_11_WEP_STATUS,NDIS_802_11_ENCRYPTION_STATUS,*PNDIS_802_11_ENCRYPTION_STATUS; + + typedef enum _NDIS_802_11_RELOAD_DEFAULTS { + Ndis802_11ReloadWEPKeys +- } NDIS_802_11_RELOAD_DEFAULTS, *PNDIS_802_11_RELOAD_DEFAULTS; ++ } NDIS_802_11_RELOAD_DEFAULTS,*PNDIS_802_11_RELOAD_DEFAULTS; ++ ++#define NDIS_802_11_AI_REQFI_CAPABILITIES 1 ++#define NDIS_802_11_AI_REQFI_LISTENINTERVAL 2 ++#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS 4 ++ ++#define NDIS_802_11_AI_RESFI_CAPABILITIES 1 ++#define NDIS_802_11_AI_RESFI_STATUSCODE 2 ++#define NDIS_802_11_AI_RESFI_ASSOCIATIONID 4 + + typedef struct _NDIS_802_11_AI_REQFI { + USHORT Capabilities; + USHORT ListenInterval; + NDIS_802_11_MAC_ADDRESS CurrentAPAddress; +- } NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI; ++ } NDIS_802_11_AI_REQFI,*PNDIS_802_11_AI_REQFI; + + typedef struct _NDIS_802_11_AI_RESFI { + USHORT Capabilities; + USHORT StatusCode; + USHORT AssociationId; +- } NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI; ++ } NDIS_802_11_AI_RESFI,*PNDIS_802_11_AI_RESFI; + + typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION { + ULONG Length; +@@ -1163,12 +843,12 @@ extern "C" { + NDIS_802_11_AI_RESFI ResponseFixedIEs; + ULONG ResponseIELength; + ULONG OffsetResponseIEs; +- } NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION; ++ } NDIS_802_11_ASSOCIATION_INFORMATION,*PNDIS_802_11_ASSOCIATION_INFORMATION; + + typedef struct _NDIS_802_11_AUTHENTICATION_EVENT { + NDIS_802_11_STATUS_INDICATION Status; + NDIS_802_11_AUTHENTICATION_REQUEST Request[1]; +- } NDIS_802_11_AUTHENTICATION_EVENT, *PNDIS_802_11_AUTHENTICATION_EVENT; ++ } NDIS_802_11_AUTHENTICATION_EVENT,*PNDIS_802_11_AUTHENTICATION_EVENT; + + typedef struct _NDIS_802_11_TEST { + ULONG Length; +@@ -1177,274 +857,126 @@ extern "C" { + NDIS_802_11_AUTHENTICATION_EVENT AuthenticationEvent; + NDIS_802_11_RSSI RssiTrigger; + }; +- } NDIS_802_11_TEST, *PNDIS_802_11_TEST; ++ } NDIS_802_11_TEST,*PNDIS_802_11_TEST; + + typedef enum _NDIS_802_11_MEDIA_STREAM_MODE { + Ndis802_11MediaStreamOff, +- Ndis802_11MediaStreamOn, +- } NDIS_802_11_MEDIA_STREAM_MODE, *PNDIS_802_11_MEDIA_STREAM_MODE; +- +- typedef UCHAR NDIS_802_11_PMKID_VALUE[16]; +- +- typedef struct _BSSID_INFO { +- NDIS_802_11_MAC_ADDRESS BSSID; +- NDIS_802_11_PMKID_VALUE PMKID; +- } BSSID_INFO, *PBSSID_INFO; +- +- typedef struct _NDIS_802_11_PMKID { +- ULONG Length; +- ULONG BSSIDInfoCount; +- BSSID_INFO BSSIDInfo[1]; +- } NDIS_802_11_PMKID, *PNDIS_802_11_PMKID; +- +- typedef struct _NDIS_802_11_AUTHENTICATION_ENCRYPTION { +- NDIS_802_11_AUTHENTICATION_MODE AuthModeSupported; +- NDIS_802_11_ENCRYPTION_STATUS EncryptStatusSupported; +- } NDIS_802_11_AUTHENTICATION_ENCRYPTION, *PNDIS_802_11_AUTHENTICATION_ENCRYPTION; +- +- typedef struct _NDIS_802_11_CAPABILITY { +- ULONG Length; +- ULONG Version; +- ULONG NoOfPMKIDs; +- ULONG NoOfAuthEncryptPairsSupported; +- NDIS_802_11_AUTHENTICATION_ENCRYPTION AuthenticationEncryptionSupported[1]; +- } NDIS_802_11_CAPABILITY, *PNDIS_802_11_CAPABILITY; +- +- typedef struct _NDIS_802_11_NON_BCAST_SSID_LIST { +- ULONG NumberOfItems; +- NDIS_802_11_SSID Non_Bcast_Ssid[1]; +- } NDIS_802_11_NON_BCAST_SSID_LIST, *PNDIS_802_11_NON_BCAST_SSID_LIST; +- +- typedef enum _NDIS_802_11_RADIO_STATUS { +- Ndis802_11RadioStatusOn, +- Ndis802_11RadioStatusHardwareOff, +- Ndis802_11RadioStatusSoftwareOff, +- Ndis802_11RadioStatusHardwareSoftwareOff, +- Ndis802_11RadioStatusMax +- } NDIS_802_11_RADIO_STATUS, *PNDIS_802_11_RADIO_STATUS; +- +-#define OID_IRDA_RECEIVING 0x0a010100 +-#define OID_IRDA_TURNAROUND_TIME 0x0a010101 +-#define OID_IRDA_SUPPORTED_SPEEDS 0x0a010102 +-#define OID_IRDA_LINK_SPEED 0x0a010103 +-#define OID_IRDA_MEDIA_BUSY 0x0a010104 +- +-#define OID_IRDA_EXTRA_RCV_BOFS 0x0a010200 +-#define OID_IRDA_RATE_SNIFF 0x0a010201 +-#define OID_IRDA_UNICAST_LIST 0x0a010202 +-#define OID_IRDA_MAX_UNICAST_LIST_SIZE 0x0a010203 +-#define OID_IRDA_MAX_RECEIVE_WINDOW_SIZE 0x0a010204 +-#define OID_IRDA_MAX_SEND_WINDOW_SIZE 0x0a010205 +-#define OID_IRDA_RESERVED1 0x0a01020a +-#define OID_IRDA_RESERVED2 0x0a01020f +- +-#define OID_1394_LOCAL_NODE_INFO 0x0c010101 +-#define OID_1394_VC_INFO 0x0c010102 +- +-#define OID_CO_ADD_PVC 0xfe000001 +-#define OID_CO_DELETE_PVC 0xfe000002 +-#define OID_CO_GET_CALL_INFORMATION 0xfe000003 +-#define OID_CO_ADD_ADDRESS 0xfe000004 +-#define OID_CO_DELETE_ADDRESS 0xfe000005 +-#define OID_CO_GET_ADDRESSES 0xfe000006 +-#define OID_CO_ADDRESS_CHANGE 0xfe000007 +-#define OID_CO_SIGNALING_ENABLED 0xfe000008 +-#define OID_CO_SIGNALING_DISABLED 0xfe000009 +-#define OID_CO_AF_CLOSE 0xfe00000a +- +-#define OID_CO_TAPI_CM_CAPS 0xfe001001 +-#define OID_CO_TAPI_LINE_CAPS 0xfe001002 +-#define OID_CO_TAPI_ADDRESS_CAPS 0xfe001003 +-#define OID_CO_TAPI_TRANSLATE_TAPI_CALLPARAMS 0xfe001004 +-#define OID_CO_TAPI_TRANSLATE_NDIS_CALLPARAMS 0xfe001005 +-#define OID_CO_TAPI_TRANSLATE_TAPI_SAP 0xfe001006 +-#define OID_CO_TAPI_GET_CALL_DIAGNOSTICS 0xfe001007 +-#define OID_CO_TAPI_REPORT_DIGITS 0xfe001008 +-#define OID_CO_TAPI_DONT_REPORT_DIGITS 0xfe001009 +- +-#define OID_PNP_CAPABILITIES 0xfd010100 +-#define OID_PNP_SET_POWER 0xfd010101 +-#define OID_PNP_QUERY_POWER 0xfd010102 +-#define OID_PNP_ADD_WAKE_UP_PATTERN 0xfd010103 +-#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xfd010104 +-#define OID_PNP_WAKE_UP_PATTERN_LIST 0xfd010105 +-#define OID_PNP_ENABLE_WAKE_UP 0xfd010106 +- +-#define OID_PNP_WAKE_UP_OK 0xfd020200 +-#define OID_PNP_WAKE_UP_ERROR 0xfd020201 +- +-#if (NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620) +-#define OID_PM_CURRENT_CAPABILITIES 0xfd010107 +-#define OID_PM_HARDWARE_CAPABILITIES 0xfd010108 +-#define OID_PM_PARAMETERS 0xfd010109 +-#define OID_PM_ADD_WOL_PATTERN 0xfd01010a +-#define OID_PM_REMOVE_WOL_PATTERN 0xfd01010b +-#define OID_PM_WOL_PATTERN_LIST 0xfd01010c +-#define OID_PM_ADD_PROTOCOL_OFFLOAD 0xfd01010d +-#define OID_PM_GET_PROTOCOL_OFFLOAD 0xfd01010e +-#define OID_PM_REMOVE_PROTOCOL_OFFLOAD 0xfd01010f +-#define OID_PM_PROTOCOL_OFFLOAD_LIST 0xfd010110 +-#define OID_PM_RESERVED_1 0xfd010111 +- +-#define OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES 0x00010221 +-#define OID_RECEIVE_FILTER_GLOBAL_PARAMETERS 0x00010222 +-#define OID_RECEIVE_FILTER_ALLOCATE_QUEUE 0x00010223 +-#define OID_RECEIVE_FILTER_FREE_QUEUE 0x00010224 +-#define OID_RECEIVE_FILTER_ENUM_QUEUES 0x00010225 +-#define OID_RECEIVE_FILTER_QUEUE_PARAMETERS 0x00010226 +-#define OID_RECEIVE_FILTER_SET_FILTER 0x00010227 +-#define OID_RECEIVE_FILTER_CLEAR_FILTER 0x00010228 +-#define OID_RECEIVE_FILTER_ENUM_FILTERS 0x00010229 +-#define OID_RECEIVE_FILTER_PARAMETERS 0x0001022a +-#define OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE 0x0001022b +-#define OID_RECEIVE_FILTER_CURRENT_CAPABILITIES 0x0001022d +-#define OID_NIC_SWITCH_HARDWARE_CAPABILITIES 0x0001022e +-#define OID_NIC_SWITCH_CURRENT_CAPABILITIES 0x0001022f +-#if NDIS_SUPPORT_NDIS630 +-#define OID_RECEIVE_FILTER_MOVE_FILTER 0x00010230 +-#endif +-#define OID_VLAN_RESERVED1 0x00010231 +-#define OID_VLAN_RESERVED2 0x00010232 +-#define OID_VLAN_RESERVED3 0x00010233 +-#define OID_VLAN_RESERVED4 0x00010234 +-#if NDIS_SUPPORT_NDIS630 +-#define OID_PACKET_COALESCING_FILTER_MATCH_COUNT 0x00010235 +-#endif +-#endif +- +-#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630 +-#define OID_NIC_SWITCH_CREATE_SWITCH 0x00010237 +-#define OID_NIC_SWITCH_PARAMETERS 0x00010238 +-#define OID_NIC_SWITCH_DELETE_SWITCH 0x00010239 +-#define OID_NIC_SWITCH_ENUM_SWITCHES 0x00010240 +-#define OID_NIC_SWITCH_CREATE_VPORT 0x00010241 +-#define OID_NIC_SWITCH_VPORT_PARAMETERS 0x00010242 +-#define OID_NIC_SWITCH_ENUM_VPORTS 0x00010243 +-#define OID_NIC_SWITCH_DELETE_VPORT 0x00010244 +-#define OID_NIC_SWITCH_ALLOCATE_VF 0x00010245 +-#define OID_NIC_SWITCH_FREE_VF 0x00010246 +-#define OID_NIC_SWITCH_VF_PARAMETERS 0x00010247 +-#define OID_NIC_SWITCH_ENUM_VFS 0x00010248 +- +-#define OID_SRIOV_HARDWARE_CAPABILITIES 0x00010249 +-#define OID_SRIOV_CURRENT_CAPABILITIES 0x00010250 +-#define OID_SRIOV_READ_VF_CONFIG_SPACE 0x00010251 +-#define OID_SRIOV_WRITE_VF_CONFIG_SPACE 0x00010252 +-#define OID_SRIOV_READ_VF_CONFIG_BLOCK 0x00010253 +-#define OID_SRIOV_WRITE_VF_CONFIG_BLOCK 0x00010254 +-#define OID_SRIOV_RESET_VF 0x00010255 +-#define OID_SRIOV_SET_VF_POWER_STATE 0x00010256 +-#define OID_SRIOV_VF_VENDOR_DEVICE_ID 0x00010257 +-#define OID_SRIOV_PROBED_BARS 0x00010258 +-#define OID_SRIOV_BAR_RESOURCES 0x00010259 +-#define OID_SRIOV_PF_LUID 0x00010260 +- +-#define OID_SRIOV_CONFIG_STATE 0x00010261 +-#define OID_SRIOV_VF_SERIAL_NUMBER 0x00010262 +-#define OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK 0x00010269 +- +-#define OID_SWITCH_PROPERTY_ADD 0x00010263 +-#define OID_SWITCH_PROPERTY_UPDATE 0x00010264 +-#define OID_SWITCH_PROPERTY_DELETE 0x00010265 +-#define OID_SWITCH_PROPERTY_ENUM 0x00010266 +-#define OID_SWITCH_FEATURE_STATUS_QUERY 0x00010267 +- +-#define OID_SWITCH_NIC_REQUEST 0x00010270 +-#define OID_SWITCH_PORT_PROPERTY_ADD 0x00010271 +-#define OID_SWITCH_PORT_PROPERTY_UPDATE 0x00010272 +-#define OID_SWITCH_PORT_PROPERTY_DELETE 0x00010273 +-#define OID_SWITCH_PORT_PROPERTY_ENUM 0x00010274 +-#define OID_SWITCH_PARAMETERS 0x00010275 +-#define OID_SWITCH_PORT_ARRAY 0x00010276 +-#define OID_SWITCH_NIC_ARRAY 0x00010277 +-#define OID_SWITCH_PORT_CREATE 0x00010278 +-#define OID_SWITCH_PORT_DELETE 0x00010279 +-#define OID_SWITCH_NIC_CREATE 0x0001027a +-#define OID_SWITCH_NIC_CONNECT 0x0001027b +-#define OID_SWITCH_NIC_DISCONNECT 0x0001027c +-#define OID_SWITCH_NIC_DELETE 0x0001027d +-#define OID_SWITCH_PORT_FEATURE_STATUS_QUERY 0x0001027e +-#define OID_SWITCH_PORT_TEARDOWN 0x0001027f +-#define OID_SWITCH_NIC_SAVE 0x00010290 +-#define OID_SWITCH_NIC_SAVE_COMPLETE 0x00010291 +-#define OID_SWITCH_NIC_RESTORE 0x00010292 +-#define OID_SWITCH_NIC_RESTORE_COMPLETE 0x00010293 +-#define OID_SWITCH_NIC_UPDATED 0x00010294 +-#define OID_SWITCH_PORT_UPDATED 0x00010295 +-#endif ++ Ndis802_11MediaStreamOn ++ } NDIS_802_11_MEDIA_STREAM_MODE,*PNDIS_802_11_MEDIA_STREAM_MODE; ++ ++#define OID_IRDA_RECEIVING 0x0A010100 ++#define OID_IRDA_TURNAROUND_TIME 0x0A010101 ++#define OID_IRDA_SUPPORTED_SPEEDS 0x0A010102 ++#define OID_IRDA_LINK_SPEED 0x0A010103 ++#define OID_IRDA_MEDIA_BUSY 0x0A010104 ++ ++#define OID_IRDA_EXTRA_RCV_BOFS 0x0A010200 ++#define OID_IRDA_RATE_SNIFF 0x0A010201 ++#define OID_IRDA_UNICAST_LIST 0x0A010202 ++#define OID_IRDA_MAX_UNICAST_LIST_SIZE 0x0A010203 ++#define OID_IRDA_MAX_RECEIVE_WINDOW_SIZE 0x0A010204 ++#define OID_IRDA_MAX_SEND_WINDOW_SIZE 0x0A010205 ++#define OID_IRDA_RESERVED1 0x0A01020A ++#define OID_IRDA_RESERVED2 0x0A01020F ++ ++#define OID_BPC_ADAPTER_CAPS 0x0B010100 ++#define OID_BPC_DEVICES 0x0B010101 ++#define OID_BPC_DEVICE_CAPS 0x0B010102 ++#define OID_BPC_DEVICE_SETTINGS 0x0B010103 ++#define OID_BPC_CONNECTION_STATUS 0x0B010104 ++#define OID_BPC_ADDRESS_COMPARE 0x0B010105 ++#define OID_BPC_PROGRAM_GUIDE 0x0B010106 ++#define OID_BPC_LAST_ERROR 0x0B020107 ++#define OID_BPC_POOL 0x0B010108 ++ ++#define OID_BPC_PROVIDER_SPECIFIC 0x0B020109 ++#define OID_BPC_ADAPTER_SPECIFIC 0x0B02010A ++ ++#define OID_BPC_CONNECT 0x0B01010B ++#define OID_BPC_COMMIT 0x0B01010C ++#define OID_BPC_DISCONNECT 0x0B01010D ++#define OID_BPC_CONNECTION_ENABLE 0x0B01010E ++#define OID_BPC_POOL_RESERVE 0x0B01010F ++#define OID_BPC_POOL_RETURN 0x0B010110 ++#define OID_BPC_FORCE_RECEIVE 0x0B010111 ++ ++#define OID_BPC_LAST 0x0B020112 ++ ++#define OID_1394_LOCAL_NODE_INFO 0x0C010101 ++#define OID_1394_VC_INFO 0x0C010102 ++ ++#define OID_CO_ADD_PVC 0xFE000001 ++#define OID_CO_DELETE_PVC 0xFE000002 ++#define OID_CO_GET_CALL_INFORMATION 0xFE000003 ++#define OID_CO_ADD_ADDRESS 0xFE000004 ++#define OID_CO_DELETE_ADDRESS 0xFE000005 ++#define OID_CO_GET_ADDRESSES 0xFE000006 ++#define OID_CO_ADDRESS_CHANGE 0xFE000007 ++#define OID_CO_SIGNALING_ENABLED 0xFE000008 ++#define OID_CO_SIGNALING_DISABLED 0xFE000009 ++#define OID_CO_AF_CLOSE 0xFE00000A ++ ++#define OID_CO_TAPI_CM_CAPS 0xFE001001 ++#define OID_CO_TAPI_LINE_CAPS 0xFE001002 ++#define OID_CO_TAPI_ADDRESS_CAPS 0xFE001003 ++#define OID_CO_TAPI_TRANSLATE_TAPI_CALLPARAMS 0xFE001004 ++#define OID_CO_TAPI_TRANSLATE_NDIS_CALLPARAMS 0xFE001005 ++#define OID_CO_TAPI_TRANSLATE_TAPI_SAP 0xFE001006 ++#define OID_CO_TAPI_GET_CALL_DIAGNOSTICS 0xFE001007 ++#define OID_CO_TAPI_REPORT_DIGITS 0xFE001008 ++#define OID_CO_TAPI_DONT_REPORT_DIGITS 0xFE001009 ++ ++#define OID_PNP_CAPABILITIES 0xFD010100 ++#define OID_PNP_SET_POWER 0xFD010101 ++#define OID_PNP_QUERY_POWER 0xFD010102 ++#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103 ++#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104 ++#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105 ++#define OID_PNP_ENABLE_WAKE_UP 0xFD010106 ++ ++#define OID_PNP_WAKE_UP_OK 0xFD020200 ++#define OID_PNP_WAKE_UP_ERROR 0xFD020201 + + #define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 + #define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 + #define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 + +-#define OID_TCP_TASK_OFFLOAD 0xfc010201 +-#define OID_TCP_TASK_IPSEC_ADD_SA 0xfc010202 +-#define OID_TCP_TASK_IPSEC_DELETE_SA 0xfc010203 +-#define OID_TCP_SAN_SUPPORT 0xfc010204 +-#define OID_TCP_TASK_IPSEC_ADD_UDPESP_SA 0xfc010205 +-#define OID_TCP_TASK_IPSEC_DELETE_UDPESP_SA 0xfc010206 +-#define OID_TCP4_OFFLOAD_STATS 0xfc010207 +-#define OID_TCP6_OFFLOAD_STATS 0xfc010208 +-#define OID_IP4_OFFLOAD_STATS 0xfc010209 +-#define OID_IP6_OFFLOAD_STATS 0xfc01020a +- +-#define OID_TCP_OFFLOAD_CURRENT_CONFIG 0xfc01020b +-#define OID_TCP_OFFLOAD_PARAMETERS 0xfc01020c +-#define OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES 0xfc01020d +-#define OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG 0xfc01020e +-#define OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 0xfc01020f +-#define OID_OFFLOAD_ENCAPSULATION 0x0101010a +- +-#if NDIS_SUPPORT_NDIS61 +-#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA 0xfc030202 +-#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA 0xfc030203 +-#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_SA 0xfc030204 +-#endif +-#if NDIS_SUPPORT_NDIS630 +-#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX 0xfc030205 +-#endif +- +-#define OID_FFP_SUPPORT 0xfc010210 +-#define OID_FFP_FLUSH 0xfc010211 +-#define OID_FFP_CONTROL 0xfc010212 +-#define OID_FFP_PARAMS 0xfc010213 +-#define OID_FFP_DATA 0xfc010214 +- +-#define OID_FFP_DRIVER_STATS 0xfc020210 +-#define OID_FFP_ADAPTER_STATS 0xfc020211 +- +-#define OID_TCP_CONNECTION_OFFLOAD_PARAMETERS 0xfc030201 +- +-#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620 +-#define OID_TUNNEL_INTERFACE_SET_OID 0x0f010106 +-#define OID_TUNNEL_INTERFACE_RELEASE_OID 0x0f010107 +-#endif +- +-#define OID_QOS_RESERVED1 0xfb010100 +-#define OID_QOS_RESERVED2 0xfb010101 +-#define OID_QOS_RESERVED3 0xfb010102 +-#define OID_QOS_RESERVED4 0xfb010103 +-#define OID_QOS_RESERVED5 0xfb010104 +-#define OID_QOS_RESERVED6 0xfb010105 +-#define OID_QOS_RESERVED7 0xfb010106 +-#define OID_QOS_RESERVED8 0xfb010107 +-#define OID_QOS_RESERVED9 0xfb010108 +-#define OID_QOS_RESERVED10 0xfb010109 +-#define OID_QOS_RESERVED11 0xfb01010a +-#define OID_QOS_RESERVED12 0xfb01010b +-#define OID_QOS_RESERVED13 0xfb01010c +-#define OID_QOS_RESERVED14 0xfb01010d +-#define OID_QOS_RESERVED15 0xfb01010e +-#define OID_QOS_RESERVED16 0xfb01010f +-#define OID_QOS_RESERVED17 0xfb010110 +-#define OID_QOS_RESERVED18 0xfb010111 +-#define OID_QOS_RESERVED19 0xfb010112 +-#define OID_QOS_RESERVED20 0xfb010113 +- +-#define OFFLOAD_MAX_SAS 3 +- +-#define OFFLOAD_INBOUND_SA 0x0001 +-#define OFFLOAD_OUTBOUND_SA 0x0002 ++#define OID_TCP_TASK_OFFLOAD 0xFC010201 ++#define OID_TCP_TASK_IPSEC_ADD_SA 0xFC010202 ++#define OID_TCP_TASK_IPSEC_DELETE_SA 0xFC010203 ++#define OID_TCP_SAN_SUPPORT 0xFC010204 ++#define OID_TCP_TASK_IPSEC_ADD_UDPESP_SA 0xFC010205 ++#define OID_TCP_TASK_IPSEC_DELETE_UDPESP_SA 0xFC010206 ++ ++#define OID_FFP_SUPPORT 0xFC010210 ++#define OID_FFP_FLUSH 0xFC010211 ++#define OID_FFP_CONTROL 0xFC010212 ++#define OID_FFP_PARAMS 0xFC010213 ++#define OID_FFP_DATA 0xFC010214 ++ ++#define OID_FFP_DRIVER_STATS 0xFC020210 ++#define OID_FFP_ADAPTER_STATS 0xFC020211 ++ ++#define OID_QOS_TC_SUPPORTED 0xFB010100 ++#define OID_QOS_REMAINING_BANDWIDTH 0xFB010101 ++#define OID_QOS_ISSLOW_FLOW 0xFB010102 ++#define OID_QOS_BESTEFFORT_BANDWIDTH 0xFB010103 ++#define OID_QOS_LATENCY 0xFB010104 ++#define OID_QOS_FLOW_IP_CONFORMING 0xFB010105 ++#define OID_QOS_FLOW_COUNT 0xFB010106 ++#define OID_QOS_NON_BESTEFFORT_LIMIT 0xFB010107 ++#define OID_QOS_SCHEDULING_PROFILES_SUPPORTED 0xFB010108 ++#define OID_QOS_CURRENT_SCHEDULING_PROFILE 0xFB010109 ++#define OID_QOS_TIMER_RESOLUTION 0xFB01010A ++#define OID_QOS_STATISTICS_BUFFER 0xFB01010B ++#define OID_QOS_HIERARCHY_CLASS 0xFB01010C ++#define OID_QOS_FLOW_MODE 0xFB01010D ++#define OID_QOS_ISSLOW_FRAGMENT_SIZE 0xFB01010E ++#define OID_QOS_FLOW_IP_NONCONFORMING 0xFB01010F ++#define OID_QOS_FLOW_8021P_CONFORMING 0xFB010110 ++#define OID_QOS_FLOW_8021P_NONCONFORMING 0xFB010111 ++#define OID_QOS_ENABLE_AVG_STATS 0xFB010112 ++#define OID_QOS_ENABLE_WINDOW_ADJUSTMENT 0xFB010113 + + typedef struct NDIS_CO_DEVICE_PROFILE { + NDIS_VAR_DATA_DESC DeviceDescription; +@@ -1475,11 +1007,9 @@ extern "C" { + ULONG ulUUIDropSize; + ULONG ulUUISendUserUserInfoSize; + ULONG ulUUICallInfoSize; +- } NDIS_CO_DEVICE_PROFILE, *PNDIS_CO_DEVICE_PROFILE; ++ } NDIS_CO_DEVICE_PROFILE,*PNDIS_CO_DEVICE_PROFILE; + +-#ifndef IP_EXPORT_INCLUDED +- typedef ULONG IPAddr, IPMask; +-#endif ++ typedef ULONG IPAddr,IPMask; + typedef ULONG SPI_TYPE; + + typedef enum _OFFLOAD_OPERATION_E { +@@ -1491,7 +1021,7 @@ extern "C" { + ULONG algoIdentifier; + ULONG algoKeylen; + ULONG algoRounds; +- } OFFLOAD_ALGO_INFO, *POFFLOAD_ALGO_INFO; ++ } OFFLOAD_ALGO_INFO,*POFFLOAD_ALGO_INFO; + + typedef enum _OFFLOAD_CONF_ALGO { + OFFLOAD_IPSEC_CONF_NONE, +@@ -1514,7 +1044,12 @@ extern "C" { + OFFLOAD_ALGO_INFO IntegrityAlgo; + OFFLOAD_ALGO_INFO ConfAlgo; + OFFLOAD_ALGO_INFO Reserved; +- } OFFLOAD_SECURITY_ASSOCIATION, *POFFLOAD_SECURITY_ASSOCIATION; ++ } OFFLOAD_SECURITY_ASSOCIATION,*POFFLOAD_SECURITY_ASSOCIATION; ++ ++#define OFFLOAD_MAX_SAS 3 ++ ++#define OFFLOAD_INBOUND_SA 0x0001 ++#define OFFLOAD_OUTBOUND_SA 0x0002 + + typedef struct _OFFLOAD_IPSEC_ADD_SA { + IPAddr SrcAddr; +@@ -1532,21 +1067,21 @@ extern "C" { + HANDLE OffloadHandle; + ULONG KeyLen; + UCHAR KeyMat[1]; +- } OFFLOAD_IPSEC_ADD_SA, *POFFLOAD_IPSEC_ADD_SA; ++ } OFFLOAD_IPSEC_ADD_SA,*POFFLOAD_IPSEC_ADD_SA; + + typedef struct _OFFLOAD_IPSEC_DELETE_SA { + HANDLE OffloadHandle; +- } OFFLOAD_IPSEC_DELETE_SA, *POFFLOAD_IPSEC_DELETE_SA; ++ } OFFLOAD_IPSEC_DELETE_SA,*POFFLOAD_IPSEC_DELETE_SA; + + typedef enum _UDP_ENCAP_TYPE { + OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_IKE, + OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_OTHER +- } UDP_ENCAP_TYPE, *PUDP_ENCAP_TYPE; ++ } UDP_ENCAP_TYPE,*PUDP_ENCAP_TYPE; + + typedef struct _OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY { + UDP_ENCAP_TYPE UdpEncapType; + USHORT DstEncapPort; +- } OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY, *POFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY; ++ } OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY,*POFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY; + + typedef struct _OFFLOAD_IPSEC_ADD_UDPESP_SA { + IPAddr SrcAddr; +@@ -1566,12 +1101,12 @@ extern "C" { + HANDLE EncapTypeEntryOffldHandle; + ULONG KeyLen; + UCHAR KeyMat[1]; +- } OFFLOAD_IPSEC_ADD_UDPESP_SA, *POFFLOAD_IPSEC_ADD_UDPESP_SA; ++ } OFFLOAD_IPSEC_ADD_UDPESP_SA,*POFFLOAD_IPSEC_ADD_UDPESP_SA; + + typedef struct _OFFLOAD_IPSEC_DELETE_UDPESP_SA { + HANDLE OffloadHandle; + HANDLE EncapTypeEntryOffldHandle; +- } OFFLOAD_IPSEC_DELETE_UDPESP_SA, *POFFLOAD_IPSEC_DELETE_UDPESP_SA; ++ } OFFLOAD_IPSEC_DELETE_UDPESP_SA,*POFFLOAD_IPSEC_DELETE_UDPESP_SA; + + typedef ULONG NDIS_VLAN_ID; + +@@ -1591,17 +1126,8 @@ extern "C" { + NdisMediumCoWan, + NdisMedium1394, + NdisMediumInfiniBand, +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +- NdisMediumTunnel, +- NdisMediumNative802_11, +- NdisMediumLoopback, +-#endif +-#if NTDDI_VERSION >= 0x06010000 +- NdisMediumWiMAX, +- NdisMediumIP, +-#endif + NdisMediumMax +- } NDIS_MEDIUM, *PNDIS_MEDIUM; ++ } NDIS_MEDIUM,*PNDIS_MEDIUM; + + typedef enum _NDIS_PHYSICAL_MEDIUM { + NdisPhysicalMediumUnspecified, +@@ -1625,59 +1151,47 @@ extern "C" { + NdisPhysicalMediumWiredCoWan, + NdisPhysicalMediumOther, + NdisPhysicalMediumMax +- } NDIS_PHYSICAL_MEDIUM, *PNDIS_PHYSICAL_MEDIUM; ++ } NDIS_PHYSICAL_MEDIUM,*PNDIS_PHYSICAL_MEDIUM; ++ ++#define NDIS_PROTOCOL_ID_DEFAULT 0x00 ++#define NDIS_PROTOCOL_ID_TCP_IP 0x02 ++#define NDIS_PROTOCOL_ID_IPX 0x06 ++#define NDIS_PROTOCOL_ID_NBF 0x07 ++#define NDIS_PROTOCOL_ID_MAX 0x0F ++#define NDIS_PROTOCOL_ID_MASK 0x0F + + typedef struct _TRANSPORT_HEADER_OFFSET { + USHORT ProtocolType; + USHORT HeaderOffset; +- } TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET; ++ } TRANSPORT_HEADER_OFFSET,*PTRANSPORT_HEADER_OFFSET; + + typedef struct _NETWORK_ADDRESS { + USHORT AddressLength; + USHORT AddressType; + UCHAR Address[1]; +- } NETWORK_ADDRESS, *PNETWORK_ADDRESS; ++ } NETWORK_ADDRESS,*PNETWORK_ADDRESS; + + typedef struct _NETWORK_ADDRESS_LIST { + LONG AddressCount; + USHORT AddressType; + NETWORK_ADDRESS Address[1]; +- } NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST; ++ } NETWORK_ADDRESS_LIST,*PNETWORK_ADDRESS_LIST; + + typedef struct _NETWORK_ADDRESS_IP { + USHORT sin_port; + ULONG in_addr; + UCHAR sin_zero[8]; +- } NETWORK_ADDRESS_IP, *PNETWORK_ADDRESS_IP; +- +-#define NDIS_PROTOCOL_ID_DEFAULT 0x00 +-#define NDIS_PROTOCOL_ID_TCP_IP 0x02 +-#define NDIS_PROTOCOL_ID_IPX 0x06 +-#define NDIS_PROTOCOL_ID_NBF 0x07 +-#define NDIS_PROTOCOL_ID_MAX 0x0f +-#define NDIS_PROTOCOL_ID_MASK 0x0f +- +-#define READABLE_LOCAL_CLOCK 0x00000001 +-#define CLOCK_NETWORK_DERIVED 0x00000002 +-#define CLOCK_PRECISION 0x00000004 +-#define RECEIVE_TIME_INDICATION_CAPABLE 0x00000008 +-#define TIMED_SEND_CAPABLE 0x00000010 +-#define TIME_STAMP_CAPABLE 0x00000020 +- +-#define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001 +-#define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002 +-#define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004 +- +-#define WAN_PROTOCOL_KEEPS_STATS 0x00000001 ++ } NETWORK_ADDRESS_IP,*PNETWORK_ADDRESS_IP; + + #define NETWORK_ADDRESS_LENGTH_IP sizeof (NETWORK_ADDRESS_IP) +-#define NETWORK_ADDRESS_LENGTH_IPX sizeof (NETWORK_ADDRESS_IPX) + + typedef struct _NETWORK_ADDRESS_IPX { + ULONG NetworkAddress; + UCHAR NodeAddress[6]; + USHORT Socket; +- } NETWORK_ADDRESS_IPX, *PNETWORK_ADDRESS_IPX; ++ } NETWORK_ADDRESS_IPX,*PNETWORK_ADDRESS_IPX; ++ ++#define NETWORK_ADDRESS_LENGTH_IPX sizeof (NETWORK_ADDRESS_IPX) + + typedef enum _NDIS_HARDWARE_STATUS { + NdisHardwareStatusReady, +@@ -1685,16 +1199,23 @@ extern "C" { + NdisHardwareStatusReset, + NdisHardwareStatusClosing, + NdisHardwareStatusNotReady +- } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS; ++ } NDIS_HARDWARE_STATUS,*PNDIS_HARDWARE_STATUS; + + typedef struct _GEN_GET_TIME_CAPS { + ULONG Flags; + ULONG ClockPrecision; +- } GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS; ++ } GEN_GET_TIME_CAPS,*PGEN_GET_TIME_CAPS; ++ ++#define READABLE_LOCAL_CLOCK 0x00000001 ++#define CLOCK_NETWORK_DERIVED 0x00000002 ++#define CLOCK_PRECISION 0x00000004 ++#define RECEIVE_TIME_INDICATION_CAPABLE 0x00000008 ++#define TIMED_SEND_CAPABLE 0x00000010 ++#define TIME_STAMP_CAPABLE 0x00000020 + + typedef struct _GEN_GET_NETCARD_TIME { + ULONGLONG ReadTime; +- } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME; ++ } GEN_GET_NETCARD_TIME,*PGEN_GET_NETCARD_TIME; + + typedef struct _NDIS_PM_PACKET_PATTERN { + ULONG Priority; +@@ -1703,7 +1224,7 @@ extern "C" { + ULONG PatternOffset; + ULONG PatternSize; + ULONG PatternFlags; +- } NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN; ++ } NDIS_PM_PACKET_PATTERN,*PNDIS_PM_PACKET_PATTERN; + + typedef enum _NDIS_DEVICE_POWER_STATE { + NdisDeviceStateUnspecified = 0, +@@ -1712,18 +1233,22 @@ extern "C" { + NdisDeviceStateD2, + NdisDeviceStateD3, + NdisDeviceStateMaximum +- } NDIS_DEVICE_POWER_STATE, *PNDIS_DEVICE_POWER_STATE; ++ } NDIS_DEVICE_POWER_STATE,*PNDIS_DEVICE_POWER_STATE; + + typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES { + NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp; + NDIS_DEVICE_POWER_STATE MinPatternWakeUp; + NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp; +- } NDIS_PM_WAKE_UP_CAPABILITIES, *PNDIS_PM_WAKE_UP_CAPABILITIES; ++ } NDIS_PM_WAKE_UP_CAPABILITIES,*PNDIS_PM_WAKE_UP_CAPABILITIES; ++ ++#define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001 ++#define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002 ++#define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004 + + typedef struct _NDIS_PNP_CAPABILITIES { + ULONG Flags; + NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities; +- } NDIS_PNP_CAPABILITIES, *PNDIS_PNP_CAPABILITIES; ++ } NDIS_PNP_CAPABILITIES,*PNDIS_PNP_CAPABILITIES; + + typedef enum _NDIS_FDDI_ATTACHMENT_TYPE { + NdisFddiTypeIsolated = 1, +@@ -1739,7 +1264,7 @@ extern "C" { + NdisFddiTypeCWrapB, + NdisFddiTypeCWrapS, + NdisFddiTypeThrough +- } NDIS_FDDI_ATTACHMENT_TYPE, *PNDIS_FDDI_ATTACHMENT_TYPE; ++ } NDIS_FDDI_ATTACHMENT_TYPE,*PNDIS_FDDI_ATTACHMENT_TYPE; + + typedef enum _NDIS_FDDI_RING_MGT_STATE { + NdisFddiRingIsolated = 1, +@@ -1750,7 +1275,7 @@ extern "C" { + NdisFddiRingOperationalDup, + NdisFddiRingDirected, + NdisFddiRingTrace +- } NDIS_FDDI_RING_MGT_STATE, *PNDIS_FDDI_RING_MGT_STATE; ++ } NDIS_FDDI_RING_MGT_STATE,*PNDIS_FDDI_RING_MGT_STATE; + + typedef enum _NDIS_FDDI_LCONNECTION_STATE { + NdisFddiStateOff = 1, +@@ -1763,7 +1288,7 @@ extern "C" { + NdisFddiStateVerify, + NdisFddiStateActive, + NdisFddiStateMaintenance +- } NDIS_FDDI_LCONNECTION_STATE, *PNDIS_FDDI_LCONNECTION_STATE; ++ } NDIS_FDDI_LCONNECTION_STATE,*PNDIS_FDDI_LCONNECTION_STATE; + + typedef enum _NDIS_WAN_MEDIUM_SUBTYPE { + NdisWanMediumHub, +@@ -1778,28 +1303,26 @@ extern "C" { + NdisWanMediumL2TP, + NdisWanMediumIrda, + NdisWanMediumParallel, +- NdisWanMediumPppoe, +-#if NTDDI_VERSION >= 0x06000000 +- NdisWanMediumSSTP, +- NdisWanMediumAgileVPN, +-#endif +- } NDIS_WAN_MEDIUM_SUBTYPE, *PNDIS_WAN_MEDIUM_SUBTYPE; ++ NdisWanMediumPppoe ++ } NDIS_WAN_MEDIUM_SUBTYPE,*PNDIS_WAN_MEDIUM_SUBTYPE; + + typedef enum _NDIS_WAN_HEADER_FORMAT { + NdisWanHeaderNative, + NdisWanHeaderEthernet +- } NDIS_WAN_HEADER_FORMAT, *PNDIS_WAN_HEADER_FORMAT; ++ } NDIS_WAN_HEADER_FORMAT,*PNDIS_WAN_HEADER_FORMAT; + + typedef enum _NDIS_WAN_QUALITY { + NdisWanRaw, + NdisWanErrorControl, + NdisWanReliable +- } NDIS_WAN_QUALITY, *PNDIS_WAN_QUALITY; ++ } NDIS_WAN_QUALITY,*PNDIS_WAN_QUALITY; + + typedef struct _NDIS_WAN_PROTOCOL_CAPS { + ULONG Flags; + ULONG Reserved; +- } NDIS_WAN_PROTOCOL_CAPS, *PNDIS_WAN_PROTOCOL_CAPS; ++ } NDIS_WAN_PROTOCOL_CAPS,*PNDIS_WAN_PROTOCOL_CAPS; ++ ++#define WAN_PROTOCOL_KEEPS_STATS 0x00000001 + + typedef enum _NDIS_802_5_RING_STATE { + NdisRingStateOpened = 1, +@@ -1808,38 +1331,33 @@ extern "C" { + NdisRingStateClosing, + NdisRingStateOpenFailure, + NdisRingStateRingFailure +- } NDIS_802_5_RING_STATE, *PNDIS_802_5_RING_STATE; ++ } NDIS_802_5_RING_STATE,*PNDIS_802_5_RING_STATE; + + typedef enum _NDIS_MEDIA_STATE { + NdisMediaStateConnected, + NdisMediaStateDisconnected +- } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE; ++ } NDIS_MEDIA_STATE,*PNDIS_MEDIA_STATE; + + typedef ULONG Priority_802_3; + + typedef struct _NDIS_CO_LINK_SPEED { + ULONG Outbound; + ULONG Inbound; +- } NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED; +- +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +-#define NDIS_LINK_SPEED_UNKNOWN NET_IF_LINK_SPEED_UNKNOWN +- +- typedef struct _NDIS_LINK_SPEED { +- ULONG64 XmitLinkSpeed; +- ULONG64 RcvLinkSpeed; +- } NDIS_LINK_SPEED, *PNDIS_LINK_SPEED; +-#endif ++ } NDIS_CO_LINK_SPEED,*PNDIS_CO_LINK_SPEED; + + #ifndef _NDIS_ +- typedef int NDIS_STATUS, *PNDIS_STATUS; ++ typedef int NDIS_STATUS,*PNDIS_STATUS; + #endif + +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +-#ifndef __WINDOT11_H__ +-#include +-#endif +-#endif ++ typedef struct _NDIS_GUID { ++ GUID Guid; ++ __C89_NAMELESS union { ++ NDIS_OID Oid; ++ NDIS_STATUS Status; ++ }; ++ ULONG Size; ++ ULONG Flags; ++ } NDIS_GUID,*PNDIS_GUID; + + #define fNDIS_GUID_TO_OID 0x00000001 + #define fNDIS_GUID_TO_STATUS 0x00000002 +@@ -1848,9 +1366,6 @@ extern "C" { + #define fNDIS_GUID_ARRAY 0x00000010 + #define fNDIS_GUID_ALLOW_READ 0x00000020 + #define fNDIS_GUID_ALLOW_WRITE 0x00000040 +-#define fNDIS_GUID_METHOD 0x00000080 +-#define fNDIS_GUID_NDIS_RESERVED 0x00000100 +-#define fNDIS_GUID_SUPPORT_COMMON_HEADER 0x00000200 + + #define NDIS_PACKET_TYPE_DIRECTED 0x00000001 + #define NDIS_PACKET_TYPE_MULTICAST 0x00000002 +@@ -1864,7 +1379,6 @@ extern "C" { + #define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000 + #define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000 + #define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000 +-#define NDIS_PACKET_TYPE_NO_LOCAL 0x00010000 + + #define NDIS_RING_SIGNAL_LOSS 0x00008000 + #define NDIS_RING_HARD_ERROR 0x00004000 +@@ -1886,9 +1400,7 @@ extern "C" { + #define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002 + #define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004 + #define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008 +- + #define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010 +- + #define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020 + #define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040 + #define NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00000080 +@@ -1901,2675 +1413,670 @@ extern "C" { + + #define NDIS_CO_MAC_OPTION_DYNAMIC_LINK_SPEED 0x00000001 + +- typedef struct _NDIS_GUID { +- GUID Guid; +- __C89_NAMELESS union { +- NDIS_OID Oid; +- NDIS_STATUS Status; +- }; +- ULONG Size; +- ULONG Flags; +- } NDIS_GUID, *PNDIS_GUID; +- + typedef struct _NDIS_IRDA_PACKET_INFO { + ULONG ExtraBOFs; + ULONG MinTurnAroundTime; +- } NDIS_IRDA_PACKET_INFO, *PNDIS_IRDA_PACKET_INFO; +- +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +-#define NDIS_MAKE_NET_LUID(PNLUID, IFTYPE, NLUIDIDX) { (PNLUID)->Info.IfType = IFTYPE; (PNLUID)->Info.NetLuidIndex = NLUIDIDX; (PNLUID)->Info.Reserved = 0; } +- +-#define MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED 32 +- +-#define NDIS_IF_MAX_STRING_SIZE IF_MAX_STRING_SIZE +-#define NDIS_MAX_PHYS_ADDRESS_LENGTH IF_MAX_PHYS_ADDRESS_LENGTH +- +-#define NDIS_LINK_STATE_XMIT_LINK_SPEED_AUTO_NEGOTIATED 0x00000001 +-#define NDIS_LINK_STATE_RCV_LINK_SPEED_AUTO_NEGOTIATED 0x00000002 +-#define NDIS_LINK_STATE_DUPLEX_AUTO_NEGOTIATED 0x00000004 +-#define NDIS_LINK_STATE_PAUSE_FUNCTIONS_AUTO_NEGOTIATED 0x00000008 +- +-#define NDIS_LINK_STATE_REVISION_1 1 +-#define NDIS_LINK_PARAMETERS_REVISION_1 1 +-#define NDIS_OPER_STATE_REVISION_1 1 +-#define NDIS_IP_OPER_STATUS_INFO_REVISION_1 1 +-#define NDIS_IP_OPER_STATE_REVISION_1 1 +- +-#define NDIS_SIZEOF_LINK_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_LINK_STATE, AutoNegotiationFlags) +-#define NDIS_SIZEOF_LINK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_LINK_PARAMETERS, AutoNegotiationFlags) +-#define NDIS_SIZEOF_OPER_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OPER_STATE, OperationalStatusFlags) +-#define NDIS_SIZEOF_IP_OPER_STATUS_INFO_REVISION_1 FIELD_OFFSET (NDIS_IP_OPER_STATUS_INFO, IpOperationalStatus) + MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED *sizeof (NDIS_IP_OPER_STATUS) +-#define NDIS_SIZEOF_IP_OPER_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_IP_OPER_STATE, IpOperationalStatus) +- +- typedef IF_COUNTED_STRING NDIS_IF_COUNTED_STRING, *PNDIS_IF_COUNTED_STRING; +- typedef IF_PHYSICAL_ADDRESS NDIS_IF_PHYSICAL_ADDRESS, *PNDIS_IF_PHYSICAL_ADDRESS; +- typedef NET_IF_MEDIA_CONNECT_STATE NDIS_MEDIA_CONNECT_STATE, *PNDIS_MEDIA_CONNECT_STATE; +- typedef NET_IF_MEDIA_DUPLEX_STATE NDIS_MEDIA_DUPLEX_STATE, *PNDIS_MEDIA_DUPLEX_STATE; +- +- typedef enum _NDIS_SUPPORTED_PAUSE_FUNCTIONS { +- NdisPauseFunctionsUnsupported, +- NdisPauseFunctionsSendOnly, +- NdisPauseFunctionsReceiveOnly, +- NdisPauseFunctionsSendAndReceive, +- NdisPauseFunctionsUnknown +- } NDIS_SUPPORTED_PAUSE_FUNCTIONS, *PNDIS_SUPPORTED_PAUSE_FUNCTIONS; +- +- typedef struct _NDIS_LINK_STATE { +- NDIS_OBJECT_HEADER Header; +- NDIS_MEDIA_CONNECT_STATE MediaConnectState; +- NDIS_MEDIA_DUPLEX_STATE MediaDuplexState; +- ULONG64 XmitLinkSpeed; +- ULONG64 RcvLinkSpeed; +- NDIS_SUPPORTED_PAUSE_FUNCTIONS PauseFunctions; +- ULONG AutoNegotiationFlags; +- } NDIS_LINK_STATE, *PNDIS_LINK_STATE; +- +- typedef struct _NDIS_LINK_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- NDIS_MEDIA_DUPLEX_STATE MediaDuplexState; +- ULONG64 XmitLinkSpeed; +- ULONG64 RcvLinkSpeed; +- NDIS_SUPPORTED_PAUSE_FUNCTIONS PauseFunctions; +- ULONG AutoNegotiationFlags; +- } NDIS_LINK_PARAMETERS, *PNDIS_LINK_PARAMETERS; +- +- typedef struct _NDIS_OPER_STATE { +- NDIS_OBJECT_HEADER Header; +- NET_IF_OPER_STATUS OperationalStatus; +- ULONG OperationalStatusFlags; +- } NDIS_OPER_STATE, *PNDIS_OPER_STATE; +- +- typedef struct _NDIS_IP_OPER_STATUS { +- ULONG AddressFamily; +- NET_IF_OPER_STATUS OperationalStatus; +- ULONG OperationalStatusFlags; +- } NDIS_IP_OPER_STATUS, *PNDIS_IP_OPER_STATUS; +- +- typedef struct _NDIS_IP_OPER_STATUS_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG NumberofAddressFamiliesReturned; +- NDIS_IP_OPER_STATUS IpOperationalStatus[MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED]; +- } NDIS_IP_OPER_STATUS_INFO, *PNDIS_IP_OPER_STATUS_INFO; +- +- typedef struct _NDIS_IP_OPER_STATE { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_IP_OPER_STATUS IpOperationalStatus; +- } NDIS_IP_OPER_STATE, *PNDIS_IP_OPER_STATE; +- +-#define NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 0 +-#define NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED 1 +-#define NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED 2 +-#define NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED 3 +-#define NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED 4 +- +-#define NDIS_OFFLOAD_PARAMETERS_LSOV1_DISABLED 1 +-#define NDIS_OFFLOAD_PARAMETERS_LSOV1_ENABLED 2 +- +-#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_DISABLED 1 +-#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_ENABLED 2 +-#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_ESP_ENABLED 3 +-#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_AND_ESP_ENABLED 4 +- +-#define NDIS_OFFLOAD_PARAMETERS_LSOV2_DISABLED 1 +-#define NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED 2 +- +-#if NDIS_SUPPORT_NDIS61 +-#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_DISABLED 1 +-#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_ENABLED 2 +-#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_ESP_ENABLED 3 +-#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_AND_ESP_ENABLED 4 +-#endif +- +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED 1 +-#define NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED 2 +- +-#define NDIS_ENCAPSULATION_TYPE_GRE_MAC 0x00000001 +-#define NDIS_ENCAPSULATION_TYPE_MAX NDIS_ENCAPSULATION_TYPE_GRE_MAC +-#endif +- +-#define NDIS_OFFLOAD_PARAMETERS_CONNECTION_OFFLOAD_DISABLED 1 +-#define NDIS_OFFLOAD_PARAMETERS_CONNECTION_OFFLOAD_ENABLED 2 +- +-#define NDIS_OFFLOAD_PARAMETERS_REVISION_1 1 +-#if NDIS_SUPPORT_NDIS61 +-#define NDIS_OFFLOAD_PARAMETERS_REVISION_2 2 +-#endif +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_OFFLOAD_PARAMETERS_REVISION_3 3 +-#define NDIS_OFFLOAD_PARAMETERS_SKIP_REGISTRY_UPDATE 0x00000001 +-#endif +- +- typedef struct _NDIS_OFFLOAD_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- UCHAR IPv4Checksum; +- UCHAR TCPIPv4Checksum; +- UCHAR UDPIPv4Checksum; +- UCHAR TCPIPv6Checksum; +- UCHAR UDPIPv6Checksum; +- UCHAR LsoV1; +- UCHAR IPsecV1; +- UCHAR LsoV2IPv4; +- UCHAR LsoV2IPv6; +- UCHAR TcpConnectionIPv4; +- UCHAR TcpConnectionIPv6; +- ULONG Flags; +-#if NDIS_SUPPORT_NDIS61 +- UCHAR IPsecV2; +- UCHAR IPsecV2IPv4; +-#endif +-#if NDIS_SUPPORT_NDIS630 +- __C89_NAMELESS struct { +- UCHAR RscIPv4; +- UCHAR RscIPv6; +- }; +-#endif +-#if NDIS_SUPPORT_NDIS630 +- __C89_NAMELESS struct { +- UCHAR EncapsulatedPacketTaskOffload; +- UCHAR EncapsulationTypes; +- }; +-#endif +- } NDIS_OFFLOAD_PARAMETERS, *PNDIS_OFFLOAD_PARAMETERS; +- +-#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, Flags) +-#if NDIS_SUPPORT_NDIS61 +-#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, IPsecV2IPv4) +-#endif +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, EncapsulationTypes) +-#endif +- +-#define NDIS_OFFLOAD_NOT_SUPPORTED 0 +-#define NDIS_OFFLOAD_SUPPORTED 1 +- +-#define NDIS_OFFLOAD_SET_NO_CHANGE 0 +-#define NDIS_OFFLOAD_SET_ON 1 +-#define NDIS_OFFLOAD_SET_OFF 2 +- +-#define NDIS_ENCAPSULATION_NOT_SUPPORTED 0x00000000 +-#define NDIS_ENCAPSULATION_NULL 0x00000001 +-#define NDIS_ENCAPSULATION_IEEE_802_3 0x00000002 +-#define NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q 0x00000004 +-#define NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB 0x00000008 +-#define NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED 0x00000010 +- +- typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_V1 { +- struct { +- ULONG Encapsulation; +- ULONG MaxOffLoadSize; +- ULONG MinSegmentCount; +- ULONG TcpOptions:2; +- ULONG IpOptions:2; +- } IPv4; +- } NDIS_TCP_LARGE_SEND_OFFLOAD_V1, *PNDIS_TCP_LARGE_SEND_OFFLOAD_V1; +- +- typedef struct _NDIS_TCP_IP_CHECKSUM_OFFLOAD { +- struct { +- ULONG Encapsulation; +- ULONG IpOptionsSupported:2; +- ULONG TcpOptionsSupported:2; +- ULONG TcpChecksum:2; +- ULONG UdpChecksum:2; +- ULONG IpChecksum:2; +- } IPv4Transmit; +- struct { +- ULONG Encapsulation; +- ULONG IpOptionsSupported:2; +- ULONG TcpOptionsSupported:2; +- ULONG TcpChecksum:2; +- ULONG UdpChecksum:2; +- ULONG IpChecksum:2; +- } IPv4Receive; +- struct { +- ULONG Encapsulation; +- ULONG IpExtensionHeadersSupported:2; +- ULONG TcpOptionsSupported:2; +- ULONG TcpChecksum:2; +- ULONG UdpChecksum:2; +- } IPv6Transmit; +- struct { +- ULONG Encapsulation; +- ULONG IpExtensionHeadersSupported:2; +- ULONG TcpOptionsSupported:2; +- ULONG TcpChecksum:2; +- ULONG UdpChecksum:2; +- } IPv6Receive; +- } NDIS_TCP_IP_CHECKSUM_OFFLOAD, *PNDIS_TCP_IP_CHECKSUM_OFFLOAD; +- typedef struct _NDIS_IPSEC_OFFLOAD_V1 { +- struct { +- ULONG Encapsulation; +- ULONG AhEspCombined; +- ULONG TransportTunnelCombined; +- ULONG IPv4Options; +- ULONG Flags; +- } Supported; +- struct { +- ULONG Md5 : 2; +- ULONG Sha_1 : 2; +- ULONG Transport : 2; +- ULONG Tunnel : 2; +- ULONG Send : 2; +- ULONG Receive : 2; +- } IPv4AH; +- struct { +- ULONG Des : 2; +- ULONG Reserved : 2; +- ULONG TripleDes : 2; +- ULONG NullEsp : 2; +- ULONG Transport : 2; +- ULONG Tunnel : 2; +- ULONG Send : 2; +- ULONG Receive : 2; +- } IPv4ESP; +- } NDIS_IPSEC_OFFLOAD_V1, *PNDIS_IPSEC_OFFLOAD_V1; +- +- typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_V2 { +- struct { +- ULONG Encapsulation; +- ULONG MaxOffLoadSize; +- ULONG MinSegmentCount; +- }IPv4; +- struct { +- ULONG Encapsulation; +- ULONG MaxOffLoadSize; +- ULONG MinSegmentCount; +- ULONG IpExtensionHeadersSupported:2; +- ULONG TcpOptionsSupported:2; +- } IPv6; +- } NDIS_TCP_LARGE_SEND_OFFLOAD_V2, *PNDIS_TCP_LARGE_SEND_OFFLOAD_V2; +- +-#if NDIS_SUPPORT_NDIS61 +-#define IPSEC_OFFLOAD_V2_AUTHENTICATION_MD5 0x00000001 +-#define IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_1 0x00000002 +-#define IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_256 0x00000004 +-#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_128 0x00000008 +-#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_192 0x00000010 +-#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_256 0x00000020 +- +-#define IPSEC_OFFLOAD_V2_ENCRYPTION_NONE 0x00000001 +-#define IPSEC_OFFLOAD_V2_ENCRYPTION_DES_CBC 0x00000002 +-#define IPSEC_OFFLOAD_V2_ENCRYPTION_3_DES_CBC 0x00000004 +-#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_128 0x00000008 +-#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_192 0x00000010 +-#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_256 0x00000020 +-#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_128 0x00000040 +-#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_192 0x00000080 +-#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_256 0x00000100 +- +- typedef struct _NDIS_IPSEC_OFFLOAD_V2 { +- ULONG Encapsulation; +- BOOLEAN IPv6Supported; +- BOOLEAN IPv4Options; +- BOOLEAN IPv6NonIPsecExtensionHeaders; +- BOOLEAN Ah; +- BOOLEAN Esp; +- BOOLEAN AhEspCombined; +- BOOLEAN Transport; +- BOOLEAN Tunnel; +- BOOLEAN TransportTunnelCombined; +- BOOLEAN LsoSupported; +- BOOLEAN ExtendedSequenceNumbers; +- ULONG UdpEsp; +- ULONG AuthenticationAlgorithms; +- ULONG EncryptionAlgorithms; +- ULONG SaOffloadCapacity; +- } NDIS_IPSEC_OFFLOAD_V2, *PNDIS_IPSEC_OFFLOAD_V2; +-#endif +- +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED 0x00000000 +-#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 0x00000001 +-#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 0x00000002 +-#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 0x00000004 +-#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 0x00000008 +-#endif +- +-#define NDIS_OFFLOAD_FLAGS_GROUP_CHECKSUM_CAPABILITIES 0x1 +-#if NDIS_SUPPORT_NDIS630 +-#define IPSEC_OFFLOAD_V2_AND_TCP_CHECKSUM_COEXISTENCE 0x2 +-#define IPSEC_OFFLOAD_V2_AND_UDP_CHECKSUM_COEXISTENCE 0x4 +-#endif +- +-#define NDIS_MAXIMUM_PORTS 0x1000000 +- +-#define NDIS_DEFAULT_PORT_NUMBER ((NDIS_PORT_NUMBER) 0) +- +-#define NDIS_WMI_DEFAULT_METHOD_ID 1 +- +-#define NDIS_WMI_OBJECT_TYPE_SET 0x01 +-#define NDIS_WMI_OBJECT_TYPE_METHOD 0x02 +-#define NDIS_WMI_OBJECT_TYPE_EVENT 0x03 +-#define NDIS_WMI_OBJECT_TYPE_ENUM_ADAPTER 0x04 +-#define NDIS_WMI_OBJECT_TYPE_OUTPUT_INFO 0x05 +- +-#define NDIS_DEVICE_TYPE_ENDPOINT 0x00000001 +- +-#define NDIS_OFFLOAD_REVISION_1 1 +-#define NDIS_TCP_CONNECTION_OFFLOAD_REVISION_1 1 +-#define NDIS_PORT_AUTHENTICATION_PARAMETERS_REVISION_1 1 +-#define NDIS_WMI_METHOD_HEADER_REVISION_1 1 +-#define NDIS_WMI_SET_HEADER_REVISION_1 1 +-#define NDIS_WMI_EVENT_HEADER_REVISION_1 1 +-#define NDIS_WMI_ENUM_ADAPTER_REVISION_1 1 +-#if NDIS_SUPPORT_NDIS61 +-#define NDIS_TCP_CONNECTION_OFFLOAD_REVISION_2 2 +-#define NDIS_OFFLOAD_REVISION_2 2 +-#endif +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_OFFLOAD_REVISION_3 3 +-#define NDIS_TCP_RECV_SEG_COALESC_OFFLOAD_REVISION_1 1 +-#endif +- +-#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, Flags) +-#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, Flags) +-#define NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_CONNECTION_OFFLOAD, Flags) +-#define NDIS_SIZEOF_WMI_TCP_CONNECTION_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_TCP_CONNECTION_OFFLOAD, Flags) +-#define NDIS_SIZEOF_PORT_AUTHENTICATION_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_AUTHENTICATION_PARAMETERS, RcvAuthorizationState) +-#define NDIS_SIZEOF_WMI_METHOD_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_METHOD_HEADER, Padding) +-#define NDIS_SIZEOF_WMI_SET_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_SET_HEADER, Padding) +-#define NDIS_SIZEOF_WMI_EVENT_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_EVENT_HEADER, Padding) +-#define NDIS_SIZEOF_WMI_ENUM_ADAPTER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_ENUM_ADAPTER, DeviceName) +-#if NDIS_SUPPORT_NDIS61 +-#define NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_CONNECTION_OFFLOAD, Flags) +-#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, IPsecV2) +-#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, IPsecV2) +-#endif +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, EncapsulatedPacketTaskOffloadGre) +-#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, EncapsulatedPacketTaskOffloadGre) +-#define NDIS_SIZEOF_TCP_RECV_SEG_COALESC_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD, IPv6.Enabled) +-#define NDIS_SIZEOF_ENCAPSULATED_PACKET_TASK_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD, MaxHeaderSizeSupported) +-#endif +- +-#if NDIS_SUPPORT_NDIS630 +- typedef struct _NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD { +- struct { +- BOOLEAN Enabled; +- } IPv4; +- struct { +- BOOLEAN Enabled; +- } IPv6; +- } NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD, *PNDIS_TCP_RECV_SEG_COALESCE_OFFLOAD; +- +- typedef struct _NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD { +- ULONG TransmitChecksumOffloadSupported:4; +- ULONG ReceiveChecksumOffloadSupported:4; +- ULONG LsoV2Supported:4; +- ULONG RssSupported:4; +- ULONG VmqSupported:4; +- ULONG MaxHeaderSizeSupported; +- } NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD, *PNDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD; +-#endif +- +- typedef struct _NDIS_OFFLOAD { +- NDIS_OBJECT_HEADER Header; +- NDIS_TCP_IP_CHECKSUM_OFFLOAD Checksum; +- NDIS_TCP_LARGE_SEND_OFFLOAD_V1 LsoV1; +- NDIS_IPSEC_OFFLOAD_V1 IPsecV1; +- NDIS_TCP_LARGE_SEND_OFFLOAD_V2 LsoV2; +- ULONG Flags; +-#if NDIS_SUPPORT_NDIS61 +- NDIS_IPSEC_OFFLOAD_V2 IPsecV2; +-#endif +-#if NDIS_SUPPORT_NDIS630 +- NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD Rsc; +- NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD EncapsulatedPacketTaskOffloadGre; +-#endif +- } NDIS_OFFLOAD, *PNDIS_OFFLOAD; +- +- typedef struct _NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 { +- struct { +- ULONG Encapsulation; +- ULONG MaxOffLoadSize; +- ULONG MinSegmentCount; +- ULONG TcpOptions; +- ULONG IpOptions; +- } IPv4; +- } NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1, *PNDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1; +- +- typedef struct _NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD { +- struct { +- ULONG Encapsulation; +- ULONG IpOptionsSupported; +- ULONG TcpOptionsSupported; +- ULONG TcpChecksum; +- ULONG UdpChecksum; +- ULONG IpChecksum; +- } IPv4Transmit; +- struct { +- ULONG Encapsulation; +- ULONG IpOptionsSupported; +- ULONG TcpOptionsSupported; +- ULONG TcpChecksum; +- ULONG UdpChecksum; +- ULONG IpChecksum; +- } IPv4Receive; +- struct { +- ULONG Encapsulation; +- ULONG IpExtensionHeadersSupported; +- ULONG TcpOptionsSupported; +- ULONG TcpChecksum; +- ULONG UdpChecksum; +- } IPv6Transmit; +- struct { +- ULONG Encapsulation; +- ULONG IpExtensionHeadersSupported; +- ULONG TcpOptionsSupported; +- ULONG TcpChecksum; +- ULONG UdpChecksum; +- } IPv6Receive; +- } NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD, *PNDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD; +- +- typedef struct _NDIS_WMI_IPSEC_OFFLOAD_V1 { +- struct { +- ULONG Encapsulation; +- ULONG AhEspCombined; +- ULONG TransportTunnelCombined; +- ULONG IPv4Options; +- ULONG Flags; +- } Supported; +- struct { +- ULONG Md5; +- ULONG Sha_1; +- ULONG Transport; +- ULONG Tunnel; +- ULONG Send; +- ULONG Receive; +- } IPv4AH; +- struct { +- ULONG Des; +- ULONG Reserved; +- ULONG TripleDes; +- ULONG NullEsp; +- ULONG Transport; +- ULONG Tunnel; +- ULONG Send; +- ULONG Receive; +- } IPv4ESP; +- } NDIS_WMI_IPSEC_OFFLOAD_V1, *PNDIS_WMI_IPSEC_OFFLOAD_V1; +- +- typedef struct _NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 { +- struct { +- ULONG Encapsulation; +- ULONG MaxOffLoadSize; +- ULONG MinSegmentCount; +- } IPv4; +- struct { +- ULONG Encapsulation; +- ULONG MaxOffLoadSize; +- ULONG MinSegmentCount; +- ULONG IpExtensionHeadersSupported; +- ULONG TcpOptionsSupported; +- } IPv6; +- } NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2, *PNDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2; +- +- typedef struct _NDIS_WMI_OFFLOAD { +- NDIS_OBJECT_HEADER Header; +- NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD Checksum; +- NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 LsoV1; +- NDIS_WMI_IPSEC_OFFLOAD_V1 IPsecV1; +- NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 LsoV2; +- ULONG Flags; +-#if NDIS_SUPPORT_NDIS61 +- NDIS_IPSEC_OFFLOAD_V2 IPsecV2; +-#endif +-#if NDIS_SUPPORT_NDIS630 +- NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD Rsc; +- NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD EncapsulatedPacketTaskOffloadGre; +-#endif +- } NDIS_WMI_OFFLOAD, *PNDIS_WMI_OFFLOAD; +- +- typedef struct _NDIS_TCP_CONNECTION_OFFLOAD { +- NDIS_OBJECT_HEADER Header; +- ULONG Encapsulation; +- ULONG SupportIPv4:2; +- ULONG SupportIPv6:2; +- ULONG SupportIPv6ExtensionHeaders:2; +- ULONG SupportSack:2; +-#if NDIS_SUPPORT_NDIS61 +- ULONG CongestionAlgorithm:4; +-#endif +- ULONG TcpConnectionOffloadCapacity; +- ULONG Flags; +- } NDIS_TCP_CONNECTION_OFFLOAD, *PNDIS_TCP_CONNECTION_OFFLOAD; +- +- typedef struct _NDIS_WMI_TCP_CONNECTION_OFFLOAD { +- NDIS_OBJECT_HEADER Header; +- ULONG Encapsulation; +- ULONG SupportIPv4; +- ULONG SupportIPv6; +- ULONG SupportIPv6ExtensionHeaders; +- ULONG SupportSack; +- ULONG TcpConnectionOffloadCapacity; +- ULONG Flags; +- } NDIS_WMI_TCP_CONNECTION_OFFLOAD, *PNDIS_WMI_TCP_CONNECTION_OFFLOAD; +- +- typedef ULONG NDIS_PORT_NUMBER, *PNDIS_PORT_NUMBER; +- +- typedef enum _NDIS_PORT_TYPE { +- NdisPortTypeUndefined, +- NdisPortTypeBridge, +- NdisPortTypeRasConnection, +- NdisPortType8021xSupplicant, +-#if NDIS_SUPPORT_NDIS630 +- NdisPortTypeNdisImPlatform, +-#endif +- NdisPortTypeMax, +- } NDIS_PORT_TYPE, *PNDIS_PORT_TYPE; +- +- typedef enum _NDIS_PORT_AUTHORIZATION_STATE { +- NdisPortAuthorizationUnknown, +- NdisPortAuthorized, +- NdisPortUnauthorized, +- NdisPortReauthorizing +- } NDIS_PORT_AUTHORIZATION_STATE, *PNDIS_PORT_AUTHORIZATION_STATE; +- +- typedef enum _NDIS_PORT_CONTROL_STATE { +- NdisPortControlStateUnknown, +- NdisPortControlStateControlled, +- NdisPortControlStateUncontrolled +- } NDIS_PORT_CONTROL_STATE, *PNDIS_PORT_CONTROL_STATE; +- +- typedef NDIS_PORT_CONTROL_STATE NDIS_PORT_CONTROLL_STATE; +- typedef PNDIS_PORT_CONTROL_STATE PNDIS_PORT_CONTROLL_STATE; +- +- typedef struct _NDIS_PORT_AUTHENTICATION_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- NDIS_PORT_CONTROL_STATE SendControlState; +- NDIS_PORT_CONTROL_STATE RcvControlState; +- NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState; +- NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState; +- } NDIS_PORT_AUTHENTICATION_PARAMETERS, *PNDIS_PORT_AUTHENTICATION_PARAMETERS; +- +- typedef enum _NDIS_NETWORK_CHANGE_TYPE { +- NdisPossibleNetworkChange = 1, +- NdisDefinitelyNetworkChange, +- NdisNetworkChangeFromMediaConnect, +- NdisNetworkChangeMax +- } NDIS_NETWORK_CHANGE_TYPE, *PNDIS_NETWORK_CHANGE_TYPE; +- +- typedef struct _NDIS_WMI_METHOD_HEADER { +- NDIS_OBJECT_HEADER Header; +- NDIS_PORT_NUMBER PortNumber; +- NET_LUID NetLuid; +- ULONG64 RequestId; +- ULONG Timeout; +- UCHAR Padding[4]; +- } NDIS_WMI_METHOD_HEADER, *PNDIS_WMI_METHOD_HEADER; +- +- typedef struct _NDIS_WMI_SET_HEADER { +- NDIS_OBJECT_HEADER Header; +- NDIS_PORT_NUMBER PortNumber; +- NET_LUID NetLuid; +- ULONG64 RequestId; +- ULONG Timeout; +- UCHAR Padding[4]; +- } NDIS_WMI_SET_HEADER, *PNDIS_WMI_SET_HEADER; +- +- typedef struct _NDIS_WMI_EVENT_HEADER { +- NDIS_OBJECT_HEADER Header; +- NET_IFINDEX IfIndex; +- NET_LUID NetLuid; +- ULONG64 RequestId; +- NDIS_PORT_NUMBER PortNumber; +- ULONG DeviceNameLength; +- ULONG DeviceNameOffset; +- UCHAR Padding[4]; +- } NDIS_WMI_EVENT_HEADER, *PNDIS_WMI_EVENT_HEADER; +- +- typedef struct _NDIS_WMI_ENUM_ADAPTER { +- NDIS_OBJECT_HEADER Header; +- NET_IFINDEX IfIndex; +- NET_LUID NetLuid; +- USHORT DeviceNameLength; +- CHAR DeviceName[1]; +- } NDIS_WMI_ENUM_ADAPTER, *PNDIS_WMI_ENUM_ADAPTER; +- +-#if NDIS_SUPPORT_NDIS61 +-#define NDIS_HD_SPLIT_COMBINE_ALL_HEADERS 0x00000001 +- +-#define NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT 0x00000001 +-#define NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS 0x00000002 +-#define NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS 0x00000004 +-#define NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS 0x00000008 +- +-#define NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT 0x00000001 +- +-#define NDIS_HD_SPLIT_PARAMETERS_REVISION_1 1 +-#define NDIS_HD_SPLIT_CURRENT_CONFIG_REVISION_1 1 +- +-#define NDIS_SIZEOF_HD_SPLIT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HD_SPLIT_PARAMETERS, HDSplitCombineFlags) +-#define NDIS_SIZEOF_HD_SPLIT_CURRENT_CONFIG_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HD_SPLIT_CURRENT_CONFIG, MaxHeaderSize) +- +- typedef struct _NDIS_HD_SPLIT_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG HDSplitCombineFlags; +- } NDIS_HD_SPLIT_PARAMETERS, *PNDIS_HD_SPLIT_PARAMETERS; +- +- typedef struct _NDIS_HD_SPLIT_CURRENT_CONFIG { +- NDIS_OBJECT_HEADER Header; +- ULONG HardwareCapabilities; +- ULONG CurrentCapabilities; +- ULONG HDSplitFlags; +- ULONG HDSplitCombineFlags; +- ULONG BackfillSize; +- ULONG MaxHeaderSize; +- } NDIS_HD_SPLIT_CURRENT_CONFIG, *PNDIS_HD_SPLIT_CURRENT_CONFIG; +-#endif +- +-#define NDIS_WMI_OUTPUT_INFO_REVISION_1 1 +- +- typedef struct NDIS_WMI_OUTPUT_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- UCHAR SupportedRevision; +- ULONG DataOffset; +- } NDIS_WMI_OUTPUT_INFO, *PNDIS_WMI_OUTPUT_INFO; +- +-#if NDIS_SUPPORT_NDIS620 +-#define NDIS_PM_WOL_BITMAP_PATTERN_SUPPORTED 0x00000001 +-#define NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED 0x00000002 +-#define NDIS_PM_WOL_IPV4_TCP_SYN_SUPPORTED 0x00000004 +-#define NDIS_PM_WOL_IPV6_TCP_SYN_SUPPORTED 0x00000008 +-#define NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_SUPPORTED 0x00000200 +-#define NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_SUPPORTED 0x00000800 +-#define NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_SUPPORTED 0x00010000 +- +-#define NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED 0x00000001 +-#define NDIS_PM_PROTOCOL_OFFLOAD_NS_SUPPORTED 0x00000002 +-#define NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_SUPPORTED 0x00000080 +- +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_PM_WAKE_ON_MEDIA_CONNECT_SUPPORTED 0x00000001 +-#define NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_SUPPORTED 0x00000002 +- +-#define NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_SUPPORTED 0x00000001 +-#define NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_SUPPORTED 0x00000002 +-#define NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_SUPPORTED 0x00000004 +-#define NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_SUPPORTED 0x00000008 +- +-#define NDIS_WWAN_WAKE_ON_REGISTER_STATE_SUPPORTED 0x00000001 +-#define NDIS_WWAN_WAKE_ON_SMS_RECEIVE_SUPPORTED 0x00000002 +-#define NDIS_WWAN_WAKE_ON_USSD_RECEIVE_SUPPORTED 0x00000004 +- +-#define NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED 0x00000001 +-#define NDIS_PM_SELECTIVE_SUSPEND_SUPPORTED 0x00000002 +-#endif +- +-#define NDIS_PM_WOL_BITMAP_PATTERN_ENABLED 0x00000001 +-#define NDIS_PM_WOL_MAGIC_PACKET_ENABLED 0x00000002 +-#define NDIS_PM_WOL_IPV4_TCP_SYN_ENABLED 0x00000004 +-#define NDIS_PM_WOL_IPV6_TCP_SYN_ENABLED 0x00000008 +-#define NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED 0x00000200 +-#define NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED 0x00000800 +-#define NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_ENABLED 0x00010000 +- +-#define NDIS_PM_PROTOCOL_OFFLOAD_ARP_ENABLED 0x00000001 +-#define NDIS_PM_PROTOCOL_OFFLOAD_NS_ENABLED 0x00000002 +-#define NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_ENABLED 0x00000080 +- +-#define NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED 0x1 +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_ENABLED 0x2 +-#define NDIS_PM_SELECTIVE_SUSPEND_ENABLED 0x10 +- +-#define NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_ENABLED 0x1 +-#define NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_ENABLED 0x2 +-#define NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_ENABLED 0x4 +-#define NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_ENABLED 0x8 +- +-#define NDIS_WWAN_WAKE_ON_REGISTER_STATE_ENABLED 0x1 +-#define NDIS_WWAN_WAKE_ON_SMS_RECEIVE_ENABLED 0x2 +-#define NDIS_WWAN_WAKE_ON_USSD_RECEIVE_ENABLED 0x4 +-#endif +- +-#define NDIS_PM_WOL_PRIORITY_LOWEST 0xffffffff +-#define NDIS_PM_WOL_PRIORITY_NORMAL 0x10000000 +-#define NDIS_PM_WOL_PRIORITY_HIGHEST 0x00000001 +- +-#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST 0xffffffff +-#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_NORMAL 0x10000000 +-#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST 0x00000001 +- +-#define NDIS_PM_MAX_STRING_SIZE 64 +- +-#define EAPOL_REQUEST_ID_WOL_FLAG_MUST_ENCRYPT 0x00000001 +- +-#define NDIS_PM_MAX_PATTERN_ID 0x0000ffff +- +-#define NDIS_PM_PRIVATE_PATTERN_ID 0x00000001 +- +-#define DOT11_RSN_KEK_LENGTH 16 +-#define DOT11_RSN_KCK_LENGTH 16 +- +- +-#define NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED 0x00000001 +-#define NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED 0x00000002 +-#define NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED 0x00000004 +-#define NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED 0x00000008 +-#define NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED 0x00000010 +- +-#define NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED 0x00000001 +-#define NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED 0x00000002 +-#define NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED 0x00000004 +-#define NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED 0x00000008 +-#define NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED 0x00000010 +-#define NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED 0x00000020 +- +-#define NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED 0x1 +-#define NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED 0x2 +-#define NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED 0x4 +- +-#define NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED 0x1 +-#define NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED 0x1 +-#define NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED 0x1 +- +-#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED 0x00000001 +-#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED 0x00000002 +-#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED 0x00000004 +- +-#define NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED 0x00000001 +-#define NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED 0x00000002 +-#define NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED 0x00000004 +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED 0x00000008 +-#define NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED 0x00000010 +-#define NDIS_RECEIVE_FILTER_ANY_VLAN_SUPPORTED 0x00000020 +-#define NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE 0x00000040 +-#define NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE 0x00000080 +-#define NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE 0x00000100 +-#endif +- +-#define NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED 0x00000001 +-#define NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED 0x00000002 +- +-#define NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED 0x00000001 +- +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_NIC_SWITCH_CAPS_VLAN_SUPPORTED 0x00000001 +-#define NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED 0x00000002 +-#define NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED 0x00000004 +-#define NDIS_NIC_SWITCH_CAPS_VF_RSS_SUPPORTED 0x00000008 +-#define NDIS_NIC_SWITCH_CAPS_SINGLE_VPORT_POOL 0x00000010 +-#endif +- +- +-#define NDIS_DEFAULT_RECEIVE_QUEUE_ID 0 +-#define NDIS_DEFAULT_RECEIVE_QUEUE_GROUP_ID 0 +-#define NDIS_DEFAULT_RECEIVE_FILTER_ID 0 +- +-#define NDIS_RECEIVE_FILTER_FIELD_MAC_HEADER_VLAN_UNTAGGED_OR_ZERO 0x00000001 +-#define NDIS_RECEIVE_FILTER_PACKET_ENCAPSULATION_GRE 0x00000002 +- +-#define NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION 0x00000001 +-#define NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED 0x00000002 +-#define NDIS_RECEIVE_QUEUE_PARAMETERS_FLAGS_CHANGED 0x00010000 +-#define NDIS_RECEIVE_QUEUE_PARAMETERS_PROCESSOR_AFFINITY_CHANGED 0x00020000 +-#define NDIS_RECEIVE_QUEUE_PARAMETERS_SUGGESTED_RECV_BUFFER_NUMBERS_CHANGED 0x00040000 +-#define NDIS_RECEIVE_QUEUE_PARAMETERS_NAME_CHANGED 0x00080000 +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_RECEIVE_QUEUE_PARAMETERS_INTERRUPT_COALESCING_DOMAIN_ID_CHANGED 0x00100000 +-#endif +- +-#define NDIS_RECEIVE_QUEUE_PARAMETERS_CHANGE_MASK 0xffff0000 +- +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_RECEIVE_FILTER_INFO_ARRAY_VPORT_ID_SPECIFIED 0x00000001 +-#endif +- +-#define NDIS_PM_CAPABILITIES_REVISION_1 1 +-#define NDIS_PM_PARAMETERS_REVISION_1 1 +-#define NDIS_PM_WOL_PATTERN_REVISION_1 1 +-#define NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1 1 +-#define NDIS_WMI_PM_ADMIN_CONFIG_REVISION_1 1 +-#define NDIS_WMI_PM_ACTIVE_CAPABILITIES_REVISION_1 1 +-#define NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1 1 +-#define NDIS_NIC_SWITCH_CAPABILITIES_REVISION_1 1 +-#define NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS_REVISION_1 1 +-#define NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_1 1 +-#define NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_1 1 +-#define NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS_REVISION_1 1 +-#define NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_1 1 +-#define NDIS_RECEIVE_QUEUE_FREE_PARAMETERS_REVISION_1 1 +-#define NDIS_RECEIVE_QUEUE_INFO_REVISION_1 1 +-#define NDIS_RECEIVE_QUEUE_INFO_ARRAY_REVISION_1 1 +-#define NDIS_RECEIVE_FILTER_INFO_REVISION_1 1 +-#define NDIS_RECEIVE_FILTER_INFO_ARRAY_REVISION_1 1 +-#define NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS_REVISION_1 1 +-#define NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY_REVISION_1 1 +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_PM_CAPABILITIES_REVISION_2 2 +-#define NDIS_PM_PARAMETERS_REVISION_2 2 +-#define NDIS_PM_WOL_PATTERN_REVISION_2 2 +-#define NDIS_PM_WAKE_REASON_REVISION_1 1 +-#define NDIS_PM_WAKE_PACKET_REVISION_1 1 +-#define NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2 2 +-#define NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2 2 +-#define NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_2 2 +-#define NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_2 2 +-#define NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_2 2 +-#define NDIS_RECEIVE_FILTER_INFO_ARRAY_REVISION_2 2 +-#define NDIS_RECEIVE_QUEUE_INFO_REVISION_2 2 +-#endif +- +-#define NDIS_SIZEOF_WMI_OUTPUT_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OUTPUT_INFO, DataOffset) +-#define NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_CAPABILITIES, MinLinkChangeWakeUp) +-#define NDIS_SIZEOF_NDIS_PM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PARAMETERS, WakeUpFlags) +-#define NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WOL_PATTERN, WoLPattern) +-#define NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PROTOCOL_OFFLOAD, ProtocolOffloadParameters) +-#define NDIS_SIZEOF_WMI_PM_ADMIN_CONFIG_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_PM_ADMIN_CONFIG, PMWiFiRekeyOffload) +-#define NDIS_SIZEOF_WMI_PM_ACTIVE_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_PM_ACTIVE_CAPABILITIES, PMWiFiRekeyOffload) +-#define NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CAPABILITIES, MaxLookaheadSplitSize) +-#define NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_CAPABILITIES, NdisReserved3) +-#define NDIS_SIZEOF_RECEIVE_FILTER_GLOBAL_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS, EnabledQueueTypes) +-#define NDIS_SIZEOF_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, ResultValue) +-#define NDIS_SIZEOF_RECEIVE_FILTER_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_PARAMETERS, RequestedFilterIdBitCount) +-#define NDIS_SIZEOF_RECEIVE_FILTER_CLEAR_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS, FilterId) +-#define NDIS_SIZEOF_RECEIVE_QUEUE_FREE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_FREE_PARAMETERS, QueueId) +-#define NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_PARAMETERS, QueueName) +-#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO, QueueName) +-#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO_ARRAY, ElementSize) +-#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO, FilterId) +-#define NDIS_SIZEOF_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY, ElementSize) +-#define NDIS_SIZEOF_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS, CompletionStatus) +-#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO_ARRAY, ElementSize) +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_CAPABILITIES, MediaSpecificWakeUpEvents) +-#define NDIS_SIZEOF_NDIS_PM_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PARAMETERS, MediaSpecificWakeUpEvents) +-#define NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WOL_PATTERN, WoLPattern) +-#define NDIS_SIZEOF_PM_WAKE_REASON_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WAKE_REASON, InfoBufferSize) +-#define NDIS_SIZEOF_PM_WAKE_PACKET_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WAKE_PACKET, SavedPacketOffset) +-#define NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CAPABILITIES, NdisReserved) +-#define NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_CAPABILITIES, NdisReserved17) +-#define NDIS_SIZEOF_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, ResultValue) +-#define NDIS_SIZEOF_RECEIVE_FILTER_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_PARAMETERS, VPortId) +-#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_ARRAY_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO_ARRAY, VPortId) +-#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO, InterruptCoalescingDomainId) +-#define NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_PARAMETERS, InterruptCoalescingDomainId) +-#endif +- +- typedef enum _NDIS_PM_WOL_PACKET { +- NdisPMWoLPacketUnspecified, +- NdisPMWoLPacketBitmapPattern, +- NdisPMWoLPacketMagicPacket, +- NdisPMWoLPacketIPv4TcpSyn, +- NdisPMWoLPacketIPv6TcpSyn, +- NdisPMWoLPacketEapolRequestIdMessage, +- NdisPMWoLPacketMaximum +- } NDIS_PM_WOL_PACKET, *PNDIS_PM_WOL_PACKET; +- +- typedef enum _NDIS_PM_PROTOCOL_OFFLOAD_TYPE { +- NdisPMProtocolOffloadIdUnspecified, +- NdisPMProtocolOffloadIdIPv4ARP, +- NdisPMProtocolOffloadIdIPv6NS, +- NdisPMProtocolOffload80211RSNRekey, +- NdisPMProtocolOffloadIdMaximum +- } NDIS_PM_PROTOCOL_OFFLOAD_TYPE, *PNDIS_PM_PROTOCOL_OFFLOAD_TYPE; +- +- typedef struct _NDIS_PM_COUNTED_STRING { +- USHORT Length; +- WCHAR String[NDIS_PM_MAX_STRING_SIZE + 1]; +- } NDIS_PM_COUNTED_STRING, *PNDIS_PM_COUNTED_STRING; +- +- typedef struct _NDIS_PM_CAPABILITIES { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG SupportedWoLPacketPatterns; +- ULONG NumTotalWoLPatterns; +- ULONG MaxWoLPatternSize; +- ULONG MaxWoLPatternOffset; +- ULONG MaxWoLPacketSaveBuffer; +- ULONG SupportedProtocolOffloads; +- ULONG NumArpOffloadIPv4Addresses; +- ULONG NumNSOffloadIPv6Addresses; +- NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp; +- NDIS_DEVICE_POWER_STATE MinPatternWakeUp; +- NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp; +-#if NDIS_SUPPORT_NDIS630 +- ULONG SupportedWakeUpEvents; +- ULONG MediaSpecificWakeUpEvents; +-#endif +- } NDIS_PM_CAPABILITIES, *PNDIS_PM_CAPABILITIES; +- +- typedef struct _NDIS_PM_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG EnabledWoLPacketPatterns; +- ULONG EnabledProtocolOffloads; +- ULONG WakeUpFlags; +-#if NDIS_SUPPORT_NDIS630 +- ULONG MediaSpecificWakeUpEvents; +-#endif +- } NDIS_PM_PARAMETERS, *PNDIS_PM_PARAMETERS; +- +- typedef struct _NDIS_PM_WOL_PATTERN { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG Priority; +- NDIS_PM_WOL_PACKET WoLPacketType; +- NDIS_PM_COUNTED_STRING FriendlyName; +- ULONG PatternId; +- ULONG NextWoLPatternOffset; +- union _WOL_PATTERN { +- struct _IPV4_TCP_SYN_WOL_PACKET_PARAMETERS { +- ULONG Flags; +- UCHAR IPv4SourceAddress[4]; +- UCHAR IPv4DestAddress[4]; +- USHORT TCPSourcePortNumber; +- USHORT TCPDestPortNumber; +- } IPv4TcpSynParameters; +- struct _IPV6_TCP_SYN_WOL_PACKET_PARAMETERS { +- ULONG Flags; +- UCHAR IPv6SourceAddress[16]; +- UCHAR IPv6DestAddress[16]; +- USHORT TCPSourcePortNumber; +- USHORT TCPDestPortNumber; +- } IPv6TcpSynParameters; +- struct _EAPOL_REQUEST_ID_MESSAGE_WOL_PACKET_PARAMETERS { +- ULONG Flags; +- } EapolRequestIdMessageParameters; +- struct _WOL_BITMAP_PATTERN { +- ULONG Flags; +- ULONG MaskOffset; +- ULONG MaskSize; +- ULONG PatternOffset; +- ULONG PatternSize; +- } WoLBitMapPattern; +- } WoLPattern; +- } NDIS_PM_WOL_PATTERN, *PNDIS_PM_WOL_PATTERN; +- +- typedef struct _NDIS_PM_PROTOCOL_OFFLOAD { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG Priority; +- NDIS_PM_PROTOCOL_OFFLOAD_TYPE ProtocolOffloadType; +- NDIS_PM_COUNTED_STRING FriendlyName; +- ULONG ProtocolOffloadId; +- ULONG NextProtocolOffloadOffset; +- union _PROTOCOL_OFFLOAD_PARAMETERS { +- struct _IPV4_ARP_PARAMETERS { +- ULONG Flags; +- UCHAR RemoteIPv4Address[4]; +- UCHAR HostIPv4Address[4]; +- UCHAR MacAddress[6]; +- } IPv4ARPParameters; +- struct _IPV6_NS_PARAMETERS { +- ULONG Flags; +- UCHAR RemoteIPv6Address[16]; +- UCHAR SolicitedNodeIPv6Address[16]; +- UCHAR MacAddress[6]; +- UCHAR TargetIPv6Addresses[2][16]; +- } IPv6NSParameters; +- struct _DOT11_RSN_REKEY_PARAMETERS { +- ULONG Flags; +- UCHAR KCK[DOT11_RSN_KCK_LENGTH]; +- UCHAR KEK[DOT11_RSN_KEK_LENGTH]; +- ULONGLONG KeyReplayCounter; +- } Dot11RSNRekeyParameters; +- } ProtocolOffloadParameters; +- } NDIS_PM_PROTOCOL_OFFLOAD, *PNDIS_PM_PROTOCOL_OFFLOAD; +- +-#if NDIS_SUPPORT_NDIS630 +- typedef enum _NDIS_PM_WAKE_REASON_TYPE { +- NdisWakeReasonUnspecified = 0x0000, +- NdisWakeReasonPacket = 0x0001, +- NdisWakeReasonMediaDisconnect = 0x0002, +- NdisWakeReasonMediaConnect = 0x0003, +- NdisWakeReasonWlanNLODiscovery = 0x1000, +- NdisWakeReasonWlanAPAssociationLost = 0x1001, +- NdisWakeReasonWlanGTKHandshakeError = 0x1002, +- NdisWakeReasonWlan4WayHandshakeRequest = 0x1003, +- NdisWakeReasonWwanRegisterState = 0x2000, +- NdisWakeReasonWwanSMSReceive = 0x2001, +- NdisWakeReasonWwanUSSDReceive = 0x2002, +- } NDIS_PM_WAKE_REASON_TYPE, *PNDIS_PM_WAKE_REASON_TYPE; +- +- typedef struct _NDIS_PM_WAKE_REASON { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_PM_WAKE_REASON_TYPE WakeReason; +- ULONG InfoBufferOffset; +- ULONG InfoBufferSize; +- } NDIS_PM_WAKE_REASON, *PNDIS_PM_WAKE_REASON; +- +- typedef struct _NDIS_PM_WAKE_PACKET { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG PatternId; +- NDIS_PM_COUNTED_STRING PatternFriendlyName; +- ULONG OriginalPacketSize; +- ULONG SavedPacketSize; +- ULONG SavedPacketOffset; +- } NDIS_PM_WAKE_PACKET, *PNDIS_PM_WAKE_PACKET; +-#endif +- +- typedef enum _NDIS_PM_ADMIN_CONFIG_STATE { +- NdisPMAdminConfigUnspecified = 0, +- NdisPMAdminConfigDisabled = 1, +- NdisPMAdminConfigEnabled = 2 +- } NDIS_PM_ADMIN_CONFIG_STATE, *PNDIS_PM_ADMIN_CONFIG_STATE; +- +- typedef struct _NDIS_WMI_PM_ADMIN_CONFIG { +- NDIS_OBJECT_HEADER Header; +- NDIS_PM_ADMIN_CONFIG_STATE WakeOnPattern; +- NDIS_PM_ADMIN_CONFIG_STATE WakeOnMagicPacket; +- NDIS_PM_ADMIN_CONFIG_STATE DeviceSleepOnDisconnect; +- NDIS_PM_ADMIN_CONFIG_STATE PMARPOffload; +- NDIS_PM_ADMIN_CONFIG_STATE PMNSOffload; +- NDIS_PM_ADMIN_CONFIG_STATE PMWiFiRekeyOffload; +- } NDIS_WMI_PM_ADMIN_CONFIG, *PNDIS_WMI_PM_ADMIN_CONFIG; +- +- typedef enum _NDIS_PM_CAPABILITY_STATE { +- NdisPMAdminConfigUnsupported = 0, +- NdisPMAdminConfigInactive = 1, +- NdisPMAdminConfigActive = 2 +- } NDIS_PM_CAPABILITY_STATE, *PNDIS_PM_CAPABILITY_STATE; +- +- typedef struct _NDIS_WMI_PM_ACTIVE_CAPABILITIES { +- NDIS_OBJECT_HEADER Header; +- NDIS_PM_CAPABILITY_STATE WakeOnPattern; +- NDIS_PM_CAPABILITY_STATE WakeOnMagicPacket; +- NDIS_PM_CAPABILITY_STATE DeviceSleepOnDisconnect; +- NDIS_PM_CAPABILITY_STATE PMARPOffload; +- NDIS_PM_CAPABILITY_STATE PMNSOffload; +- NDIS_PM_CAPABILITY_STATE PMWiFiRekeyOffload; +- } NDIS_WMI_PM_ACTIVE_CAPABILITIES, *PNDIS_WMI_PM_ACTIVE_CAPABILITIES; +- +- typedef struct _NDIS_RECEIVE_FILTER_CAPABILITIES { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG EnabledFilterTypes; +- ULONG EnabledQueueTypes; +- ULONG NumQueues; +- ULONG SupportedQueueProperties; +- ULONG SupportedFilterTests; +- ULONG SupportedHeaders; +- ULONG SupportedMacHeaderFields; +- ULONG MaxMacHeaderFilters; +- ULONG MaxQueueGroups; +- ULONG MaxQueuesPerQueueGroup; +- ULONG MinLookaheadSplitSize; +- ULONG MaxLookaheadSplitSize; +-#if NDIS_SUPPORT_NDIS630 +- ULONG SupportedARPHeaderFields; +- ULONG SupportedIPv4HeaderFields; +- ULONG SupportedIPv6HeaderFields; +- ULONG SupportedUdpHeaderFields; +- ULONG MaxFieldTestsPerPacketCoalescingFilter; +- ULONG MaxPacketCoalescingFilters; +- ULONG NdisReserved; +-#endif +- } NDIS_RECEIVE_FILTER_CAPABILITIES, *PNDIS_RECEIVE_FILTER_CAPABILITIES; +- +- typedef struct _NDIS_NIC_SWITCH_CAPABILITIES { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG NdisReserved1; +- ULONG NumTotalMacAddresses; +- ULONG NumMacAddressesPerPort; +- ULONG NumVlansPerPort; +- ULONG NdisReserved2; +- ULONG NdisReserved3; +-#if NDIS_SUPPORT_NDIS630 +- ULONG NicSwitchCapabilities; +- ULONG MaxNumSwitches; +- ULONG MaxNumVPorts; +- ULONG NdisReserved4; +- ULONG MaxNumVFs; +- ULONG MaxNumQueuePairs; +- ULONG NdisReserved5; +- ULONG NdisReserved6; +- ULONG NdisReserved7; +- ULONG MaxNumQueuePairsPerNonDefaultVPort; +- ULONG NdisReserved8; +- ULONG NdisReserved9; +- ULONG NdisReserved10; +- ULONG NdisReserved11; +- ULONG NdisReserved12; +- ULONG MaxNumMacAddresses; +- ULONG NdisReserved13; +- ULONG NdisReserved14; +- ULONG NdisReserved15; +- ULONG NdisReserved16; +- ULONG NdisReserved17; +-#endif +- } NDIS_NIC_SWITCH_CAPABILITIES, *PNDIS_NIC_SWITCH_CAPABILITIES; +- +- typedef struct _NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG EnabledFilterTypes; +- ULONG EnabledQueueTypes; +- } NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS, *PNDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS; +- +- typedef ULONG NDIS_RECEIVE_QUEUE_ID, *PNDIS_RECEIVE_QUEUE_ID; +- typedef ULONG NDIS_RECEIVE_QUEUE_GROUP_ID, *PNDIS_RECEIVE_QUEUE_GROUP_ID; +- typedef ULONG NDIS_RECEIVE_FILTER_ID, *PNDIS_RECEIVE_FILTER_ID; +- +- typedef enum _NDIS_RECEIVE_FILTER_TYPE { +- NdisReceiveFilterTypeUndefined, +- NdisReceiveFilterTypeVMQueue, +- NdisReceiveFilterTypePacketCoalescing, +- NdisReceiveFilterTypeMaximum +- } NDIS_RECEIVE_FILTER_TYPE, *PNDIS_RECEIVE_FILTER_TYPE; +- +- typedef enum _NDIS_FRAME_HEADER { +- NdisFrameHeaderUndefined, +- NdisFrameHeaderMac, +- NdisFrameHeaderArp, +- NdisFrameHeaderIPv4, +- NdisFrameHeaderIPv6, +- NdisFrameHeaderUdp, +- NdisFrameHeaderMaximum +- } NDIS_FRAME_HEADER, *PNDIS_FRAME_HEADER; +- +- typedef enum _NDIS_MAC_HEADER_FIELD { +- NdisMacHeaderFieldUndefined, +- NdisMacHeaderFieldDestinationAddress, +- NdisMacHeaderFieldSourceAddress, +- NdisMacHeaderFieldProtocol, +- NdisMacHeaderFieldVlanId, +- NdisMacHeaderFieldPriority, +- NdisMacHeaderFieldPacketType, +- NdisMacHeaderFieldMaximum +- } NDIS_MAC_HEADER_FIELD, *PNDIS_MAC_HEADER_FIELD; +- +- typedef enum _NDIS_MAC_PACKET_TYPE { +- NdisMacPacketTypeUndefined = 0, +- NdisMacPacketTypeUnicast = 1, +- NdisMacPacketTypeMulticast = 2, +- NdisMacPacketTypeBroadcast = 3, +- NdisMacPacketTypeMaximum +- } NDIS_MAC_PACKET_TYPE, *PNDIS_MAC_PACKET_TYPE; +- +- typedef enum _NDIS_ARP_HEADER_FIELD { +- NdisARPHeaderFieldUndefined, +- NdisARPHeaderFieldOperation, +- NdisARPHeaderFieldSPA, +- NdisARPHeaderFieldTPA, +- NdisARPHeaderFieldMaximum +- } NDIS_ARP_HEADER_FIELD, *PNDIS_ARP_HEADER_FIELD; +- +- typedef enum _NDIS_IPV4_HEADER_FIELD { +- NdisIPv4HeaderFieldUndefined, +- NdisIPv4HeaderFieldProtocol, +- NdisIPv4HeaderFieldMaximum +- } NDIS_IPV4_HEADER_FIELD, *PNDIS_IPV4_HEADER_FIELD; +- +- typedef enum _NDIS_IPV6_HEADER_FIELD { +- NdisIPv6HeaderFieldUndefined, +- NdisIPv6HeaderFieldProtocol, +- NdisIPv6HeaderFieldMaximum +- } NDIS_IPV6_HEADER_FIELD, *PNDIS_IPV6_HEADER_FIELD; +- +- typedef enum _NDIS_UDP_HEADER_FIELD { +- NdisUdpHeaderFieldUndefined, +- NdisUdpHeaderFieldDestinationPort, +- NdisUdpHeaderFieldMaximum +- } NDIS_UDP_HEADER_FIELD, *PNDIS_UDP_HEADER_FIELD; +- +- typedef enum _NDIS_RECEIVE_FILTER_TEST { +- NdisReceiveFilterTestUndefined, +- NdisReceiveFilterTestEqual, +- NdisReceiveFilterTestMaskEqual, +- NdisReceiveFilterTestNotEqual, +- NdisReceiveFilterTestMaximum +- } NDIS_RECEIVE_FILTER_TEST, *PNDIS_RECEIVE_FILTER_TEST; +- +- typedef struct _NDIS_RECEIVE_FILTER_FIELD_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_FRAME_HEADER FrameHeader; +- NDIS_RECEIVE_FILTER_TEST ReceiveFilterTest; +- union _HEADER_FIELD { +- NDIS_MAC_HEADER_FIELD MacHeaderField; +- NDIS_ARP_HEADER_FIELD ArpHeaderField; +- NDIS_IPV4_HEADER_FIELD IPv4HeaderField; +- NDIS_IPV6_HEADER_FIELD IPv6HeaderField; +- NDIS_UDP_HEADER_FIELD UdpHeaderField; +- } HeaderField; +- union _FIELD_VALUE { +- UCHAR FieldByteValue; +- USHORT FieldShortValue; +- ULONG FieldLongValue; +- ULONG64 FieldLong64Value; +- UCHAR FieldByteArrayValue[16]; +- } FieldValue; +- union _RESULT_VALUE { +- UCHAR ResultByteValue; +- USHORT ResultShortValue; +- ULONG ResultLongValue; +- ULONG64 ResultLong64Value; +- UCHAR ResultByteArrayValue[16]; +- } ResultValue; +- } NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, *PNDIS_RECEIVE_FILTER_FIELD_PARAMETERS; +- +-#if NDIS_SUPPORT_NDIS630 +- typedef ULONG NDIS_NIC_SWITCH_VPORT_ID, *PNDIS_NIC_SWITCH_VPORT_ID; +-#endif +- +- typedef struct _NDIS_RECEIVE_FILTER_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_RECEIVE_FILTER_TYPE FilterType; +- NDIS_RECEIVE_QUEUE_ID QueueId; +- NDIS_RECEIVE_FILTER_ID FilterId; +- ULONG FieldParametersArrayOffset; +- ULONG FieldParametersArrayNumElements; +- ULONG FieldParametersArrayElementSize; +- ULONG RequestedFilterIdBitCount; +-#if NDIS_SUPPORT_NDIS630 +- ULONG MaxCoalescingDelay; +- NDIS_NIC_SWITCH_VPORT_ID VPortId; +-#endif +- } NDIS_RECEIVE_FILTER_PARAMETERS, *PNDIS_RECEIVE_FILTER_PARAMETERS; +- +- typedef struct _NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_RECEIVE_QUEUE_ID QueueId; +- NDIS_RECEIVE_FILTER_ID FilterId; +- } NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS, *PNDIS_RECEIVE_FILTER_CLEAR_PARAMETERS; +- +- typedef enum _NDIS_RECEIVE_QUEUE_TYPE { +- NdisReceiveQueueTypeUnspecified, +- NdisReceiveQueueTypeVMQueue, +- NdisReceiveQueueTypeMaximum +- } NDIS_RECEIVE_QUEUE_TYPE, *PNDIS_RECEIVE_QUEUE_TYPE; +- +- typedef NDIS_IF_COUNTED_STRING NDIS_QUEUE_NAME, *PNDIS_QUEUE_NAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_VM_NAME, *PNDIS_VM_NAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_VM_FRIENDLYNAME, *PNDIS_VM_FRIENDLYNAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL; +- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NAME, *PNDIS_SWITCH_NAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_FRIENDLYNAME, *PNDIS_SWITCH_FRIENDLYNAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_NAME, *PNDIS_SWITCH_PORT_NAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_FRIENDLYNAME, *PNDIS_SWITCH_PORT_FRIENDLYNAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NIC_NAME, *PNDIS_SWITCH_NIC_NAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NIC_FRIENDLYNAME, *PNDIS_SWITCH_NIC_FRIENDLYNAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_EXTENSION_FRIENDLYNAME, *PNDIS_SWITCH_EXTENSION_FRIENDLYNAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_VENDOR_NAME, *PNDIS_VENDOR_NAME; +- +- typedef struct _NDIS_RECEIVE_QUEUE_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_RECEIVE_QUEUE_TYPE QueueType; +- NDIS_RECEIVE_QUEUE_ID QueueId; +- NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId; +- GROUP_AFFINITY ProcessorAffinity; +- ULONG NumSuggestedReceiveBuffers; +- ULONG MSIXTableEntry; +- ULONG LookaheadSize; +- NDIS_VM_NAME VmName; +- NDIS_QUEUE_NAME QueueName; +-#if NDIS_SUPPORT_NDIS630 +- ULONG PortId; +- ULONG InterruptCoalescingDomainId; +-#endif +- } NDIS_RECEIVE_QUEUE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_PARAMETERS; +- +- typedef struct _NDIS_RECEIVE_QUEUE_FREE_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_RECEIVE_QUEUE_ID QueueId; +- } NDIS_RECEIVE_QUEUE_FREE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_FREE_PARAMETERS; +- +- typedef enum _NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE { +- NdisReceiveQueueOperationalStateUndefined, +- NdisReceiveQueueOperationalStateRunning, +- NdisReceiveQueueOperationalStatePaused, +- NdisReceiveQueueOperationalStateDmaStopped, +- NdisReceiveQueueOperationalStateMaximum +- } NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE, *PNDIS_RECEIVE_QUEUE_OPERATIONAL_STATE; +- +- typedef struct _NDIS_RECEIVE_QUEUE_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_RECEIVE_QUEUE_TYPE QueueType; +- NDIS_RECEIVE_QUEUE_ID QueueId; +- NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId; +- NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE QueueState; +- GROUP_AFFINITY ProcessorAffinity; +- ULONG NumSuggestedReceiveBuffers; +- ULONG MSIXTableEntry; +- ULONG LookaheadSize; +- NDIS_VM_NAME VmName; +- NDIS_QUEUE_NAME QueueName; +-#if NDIS_SUPPORT_NDIS630 +- ULONG NumFilters; +- ULONG InterruptCoalescingDomainId; +-#endif +- } NDIS_RECEIVE_QUEUE_INFO, *PNDIS_RECEIVE_QUEUE_INFO; +- +- typedef struct _NDIS_RECEIVE_QUEUE_INFO_ARRAY { +- NDIS_OBJECT_HEADER Header; +- ULONG FirstElementOffset; +- ULONG NumElements; +- ULONG ElementSize; +- } NDIS_RECEIVE_QUEUE_INFO_ARRAY, *PNDIS_RECEIVE_QUEUE_INFO_ARRAY; +- +- typedef struct _NDIS_RECEIVE_FILTER_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_RECEIVE_FILTER_TYPE FilterType; +- NDIS_RECEIVE_FILTER_ID FilterId; +- } NDIS_RECEIVE_FILTER_INFO, *PNDIS_RECEIVE_FILTER_INFO; +- +- typedef struct _NDIS_RECEIVE_FILTER_INFO_ARRAY { +- NDIS_OBJECT_HEADER Header; +- NDIS_RECEIVE_QUEUE_ID QueueId; +- ULONG FirstElementOffset; +- ULONG NumElements; +- ULONG ElementSize; +-#if NDIS_SUPPORT_NDIS630 +- ULONG Flags; +- NDIS_NIC_SWITCH_VPORT_ID VPortId; +-#endif +- } NDIS_RECEIVE_FILTER_INFO_ARRAY, *PNDIS_RECEIVE_FILTER_INFO_ARRAY; +- +- typedef struct _NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_RECEIVE_QUEUE_ID QueueId; +- NDIS_STATUS CompletionStatus; +- } NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS; +- +- typedef struct _NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG FirstElementOffset; +- ULONG NumElements; +- ULONG ElementSize; +- } NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY, *PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY; +-#endif +- +-#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 +-#define NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS 0x01000000 +-#define NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR 0x02000000 +-#define NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC 0x04000000 +-#if NDIS_SUPPORT_NDIS620 +-#define NDIS_RSS_CAPS_USING_MSI_X 0x08000000 +-#endif +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_RSS_CAPS_RSS_AVAILABLE_ON_PORTS 0x10000000 +-#define NDIS_RSS_CAPS_SUPPORTS_MSI_X 0x20000000 +-#endif +-#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4 0x00000100 +-#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6 0x00000200 +-#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX 0x00000400 +- +-#define NdisHashFunctionToeplitz 0x00000001 +-#define NdisHashFunctionReserved1 0x00000002 +-#define NdisHashFunctionReserved2 0x00000004 +-#define NdisHashFunctionReserved3 0x00000008 +- +-#define NDIS_HASH_FUNCTION_MASK 0x000000ff +-#define NDIS_HASH_TYPE_MASK 0x00ffff00 +- +-#define NDIS_RSS_HASH_FUNC_FROM_HASH_INFO(HINFO) ((HINFO) & (NDIS_HASH_FUNCTION_MASK)) +-#define NDIS_RSS_HASH_TYPE_FROM_HASH_INFO(HINFO) ((HINFO) & (NDIS_HASH_TYPE_MASK)) +-#define NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC(HTYPE, HFCT) ((HTYPE) | (HFCT)) +- +-#define NDIS_HASH_IPV4 0x00000100 +-#define NDIS_HASH_TCP_IPV4 0x00000200 +-#define NDIS_HASH_IPV6 0x00000400 +-#define NDIS_HASH_IPV6_EX 0x00000800 +-#define NDIS_HASH_TCP_IPV6 0x00001000 +-#define NDIS_HASH_TCP_IPV6_EX 0x00002000 +- +-#define NDIS_RSS_PARAM_FLAG_BASE_CPU_UNCHANGED 0x0001 +-#define NDIS_RSS_PARAM_FLAG_HASH_INFO_UNCHANGED 0x0002 +-#define NDIS_RSS_PARAM_FLAG_ITABLE_UNCHANGED 0x0004 +-#define NDIS_RSS_PARAM_FLAG_HASH_KEY_UNCHANGED 0x0008 +-#define NDIS_RSS_PARAM_FLAG_DISABLE_RSS 0x0010 +- +-#define NDIS_RSS_INDIRECTION_TABLE_SIZE_REVISION_1 128 +-#define NDIS_RSS_HASH_SECRET_KEY_SIZE_REVISION_1 40 +- +-#define NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_1 128 +-#define NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_1 40 +- +-#if NDIS_SUPPORT_NDIS620 +-#define NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_2 (128 * sizeof (PROCESSOR_NUMBER)) +-#define NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_2 40 +-#endif +- +-#define NDIS_RECEIVE_HASH_FLAG_ENABLE_HASH 0x00000001 +-#define NDIS_RECEIVE_HASH_FLAG_HASH_INFO_UNCHANGED 0x00000002 +-#define NDIS_RECEIVE_HASH_FLAG_HASH_KEY_UNCHANGED 0x00000004 +- +-#define NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS 0x00000001 +- +-#define NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 1 +-#define NDIS_RECEIVE_HASH_PARAMETERS_REVISION_1 1 +-#define NDIS_PORT_STATE_REVISION_1 1 +-#define NDIS_PORT_CHARACTERISTICS_REVISION_1 1 +-#define NDIS_PORT_ARRAY_REVISION_1 1 +-#define NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_1 1 +-#if NDIS_SUPPORT_NDIS620 +-#define NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_2 2 +-#endif +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 2 +-#endif +- +-#define NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_CAPABILITIES, NumberOfReceiveQueues) +-#define NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_PARAMETERS, HashSecretKeyOffset) +-#define NDIS_SIZEOF_RECEIVE_HASH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_HASH_PARAMETERS, HashSecretKeyOffset) +-#define NDIS_SIZEOF_PORT_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_STATE, Flags) +-#define NDIS_SIZEOF_PORT_CHARACTERISTICS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_CHARACTERISTICS, RcvAuthorizationState) +-#define NDIS_SIZEOF_PORT_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_ARRAY, Ports) +-#if NDIS_SUPPORT_NDIS620 +-#define NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_PARAMETERS, ProcessorMasksEntrySize) +-#endif +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_CAPABILITIES, NumberOfIndirectionTableEntries) +-#endif +- +- typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES { +- NDIS_OBJECT_HEADER Header; +- ULONG CapabilitiesFlags; +- ULONG NumberOfInterruptMessages; +- ULONG NumberOfReceiveQueues; +-#if NDIS_SUPPORT_NDIS630 +- USHORT NumberOfIndirectionTableEntries; +-#endif +- } NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES; +- +- typedef struct _NDIS_RECEIVE_SCALE_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- USHORT Flags; +- USHORT BaseCpuNumber; +- ULONG HashInformation; +- USHORT IndirectionTableSize; +- ULONG IndirectionTableOffset; +- USHORT HashSecretKeySize; +- ULONG HashSecretKeyOffset; +-#if NDIS_SUPPORT_NDIS620 +- ULONG ProcessorMasksOffset; +- ULONG NumberOfProcessorMasks; +- ULONG ProcessorMasksEntrySize; +-#endif +- } NDIS_RECEIVE_SCALE_PARAMETERS, *PNDIS_RECEIVE_SCALE_PARAMETERS; +- +- typedef struct _NDIS_RECEIVE_HASH_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG HashInformation; +- USHORT HashSecretKeySize; +- ULONG HashSecretKeyOffset; +- } NDIS_RECEIVE_HASH_PARAMETERS, *PNDIS_RECEIVE_HASH_PARAMETERS; +- +- typedef enum _NDIS_PROCESSOR_VENDOR { +- NdisProcessorVendorUnknown, +- NdisProcessorVendorGenuinIntel, +- NdisProcessorVendorGenuineIntel = NdisProcessorVendorGenuinIntel, +- NdisProcessorVendorAuthenticAMD +- } NDIS_PROCESSOR_VENDOR, *PNDIS_PROCESSOR_VENDOR; +- +-#if NDIS_SUPPORT_NDIS620 +-#define NDIS_HYPERVISOR_INFO_FLAG_HYPERVISOR_PRESENT 0x00000001 +- +-#define NDIS_RSS_PROCESSOR_INFO_REVISION_1 1 +-#define NDIS_SYSTEM_PROCESSOR_INFO_EX_REVISION_1 1 +-#define NDIS_HYPERVISOR_INFO_REVISION_1 1 +-#define NDIS_WMI_RECEIVE_QUEUE_INFO_REVISION_1 1 +-#define NDIS_WMI_RECEIVE_QUEUE_PARAMETERS_REVISION_1 1 +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_RSS_PROCESSOR_INFO_REVISION_2 2 +-#endif +- +-#define NDIS_SIZEOF_RSS_PROCESSOR_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR, PreferenceIndex) +-#define NDIS_SIZEOF_RSS_PROCESSOR_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR_INFO, RssProcessorEntrySize) +-#define NDIS_SIZEOF_SYSTEM_PROCESSOR_INFO_EX_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SYSTEM_PROCESSOR_INFO_EX, ProcessorInfoEntrySize) +-#define NDIS_SIZEOF_HYPERVISOR_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HYPERVISOR_INFO, PartitionType) +-#define NDIS_SIZEOF_WMI_RECEIVE_QUEUE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_RECEIVE_QUEUE_PARAMETERS, QueueName) +-#define NDIS_SIZEOF_WMI_RECEIVE_QUEUE_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_RECEIVE_QUEUE_INFO, QueueName) +-#if NDIS_SUPPORT_NDIS630 +-#define NDIS_SIZEOF_RSS_PROCESSOR_INFO_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR_INFO, RssProfile) +-#endif +- +- typedef struct _NDIS_RSS_PROCESSOR { +- PROCESSOR_NUMBER ProcNum; +- USHORT PreferenceIndex; +- USHORT Reserved; +- } NDIS_RSS_PROCESSOR, *PNDIS_RSS_PROCESSOR; +- +-#if NDIS_SUPPORT_NDIS630 +- typedef enum _NDIS_RSS_PROFILE { +- NdisRssProfileClosest = 1, +- NdisRssProfileClosestStatic, +- NdisRssProfileNuma, +- NdisRssProfileNumaStatic, +- NdisRssProfileConservative, +- NdisRssProfileMaximum, +- } NDIS_RSS_PROFILE, *PNDIS_RSS_PROFILE; +-#endif +- +- typedef struct _NDIS_RSS_PROCESSOR_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- PROCESSOR_NUMBER RssBaseProcessor; +- ULONG MaxNumRssProcessors; +- USHORT PreferredNumaNode; +- ULONG RssProcessorArrayOffset; +- ULONG RssProcessorCount; +- ULONG RssProcessorEntrySize; +-#if NDIS_SUPPORT_NDIS630 +- PROCESSOR_NUMBER RssMaxProcessor; +- NDIS_RSS_PROFILE RssProfile; +-#endif +- } NDIS_RSS_PROCESSOR_INFO, *PNDIS_RSS_PROCESSOR_INFO; +- +- typedef struct _NDIS_PROCESSOR_INFO_EX { +- PROCESSOR_NUMBER ProcNum; +- ULONG SocketId; +- ULONG CoreId; +- ULONG HyperThreadId; +- USHORT NodeId; +- USHORT NodeDistance; +- } NDIS_PROCESSOR_INFO_EX, *PNDIS_PROCESSOR_INFO_EX; +- +- typedef struct _NDIS_SYSTEM_PROCESSOR_INFO_EX { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_PROCESSOR_VENDOR ProcessorVendor; +- ULONG NumSockets; +- ULONG NumCores; +- ULONG NumCoresPerSocket; +- ULONG MaxHyperThreadingProcsPerCore; +- ULONG ProcessorInfoOffset; +- ULONG NumberOfProcessors; +- ULONG ProcessorInfoEntrySize; +- } NDIS_SYSTEM_PROCESSOR_INFO_EX, *PNDIS_SYSTEM_PROCESSOR_INFO_EX; +- +- typedef enum _NDIS_HYPERVISOR_PARTITION_TYPE { +- NdisHypervisorPartitionTypeUnknown, +- NdisHypervisorPartitionTypeMsHvParent, +- NdisHypervisorPartitionMsHvChild, +- NdisHypervisorPartitionTypeMax +- } NDIS_HYPERVISOR_PARTITION_TYPE, *PNDIS_HYPERVISOR_PARTITION_TYPE; +- +- typedef struct _NDIS_HYPERVISOR_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_HYPERVISOR_PARTITION_TYPE PartitionType; +- } NDIS_HYPERVISOR_INFO, *PNDIS_HYPERVISOR_INFO; +- +- typedef struct _NDIS_WMI_GROUP_AFFINITY { +- ULONG64 Mask; +- USHORT Group; +- USHORT Reserved[3]; +- } NDIS_WMI_GROUP_AFFINITY, *PNDIS_WMI_GROUP_AFFINITY; +- +- typedef struct _NDIS_WMI_RECEIVE_QUEUE_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_RECEIVE_QUEUE_TYPE QueueType; +- NDIS_RECEIVE_QUEUE_ID QueueId; +- NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId; +- NDIS_WMI_GROUP_AFFINITY ProcessorAffinity; +- ULONG NumSuggestedReceiveBuffers; +- ULONG MSIXTableEntry; +- ULONG LookaheadSize; +- NDIS_VM_NAME VmName; +- NDIS_QUEUE_NAME QueueName; +- } NDIS_WMI_RECEIVE_QUEUE_PARAMETERS, *PNDIS_WMI_RECEIVE_QUEUE_PARAMETERS; +- +- typedef struct _NDIS_WMI_RECEIVE_QUEUE_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_RECEIVE_QUEUE_TYPE QueueType; +- NDIS_RECEIVE_QUEUE_ID QueueId; +- NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId; +- NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE QueueState; +- NDIS_WMI_GROUP_AFFINITY ProcessorAffinity; +- ULONG NumSuggestedReceiveBuffers; +- ULONG MSIXTableEntry; +- ULONG LookaheadSize; +- NDIS_VM_NAME VmName; +- NDIS_QUEUE_NAME QueueName; +- } NDIS_WMI_RECEIVE_QUEUE_INFO, *PNDIS_WMI_RECEIVE_QUEUE_INFO; +-#endif +- +-#if NDIS_SUPPORT_NDIS630 +- +-#define NDIS_NDK_PERFORMANCE_COUNTER_MASK(CNTFIELD) (((ULONG64) 1) << (FIELD_OFFSET (NDIS_NDK_PERFORMANCE_COUNTERS, CNTFIELD) / sizeof (ULONG64))) +- +-#define OID_NDK_SET_STATE 0xfc040201 +-#define OID_NDK_STATISTICS 0xfc040202 +-#define OID_NDK_CONNECTIONS 0xfc040203 +-#define OID_NDK_LOCAL_ENDPOINTS 0xfc040204 +- +-#define OID_QOS_HARDWARE_CAPABILITIES 0xfc050001 +-#define OID_QOS_CURRENT_CAPABILITIES 0xfc050002 +-#define OID_QOS_PARAMETERS 0xfc050003 +-#define OID_QOS_OPERATIONAL_PARAMETERS 0xfc050004 +-#define OID_QOS_REMOTE_PARAMETERS 0xfc050005 +- +-#define NDIS_QOS_MAXIMUM_PRIORITIES 8 +-#define NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES 8 +- +-#define NDIS_QOS_CAPABILITIES_STRICT_TSA_SUPPORTED 0x00000001 +-#define NDIS_QOS_CAPABILITIES_MACSEC_BYPASS_SUPPORTED 0x00000002 +-#define NDIS_QOS_CAPABILITIES_CEE_DCBX_SUPPORTED 0x00000004 +-#define NDIS_QOS_CAPABILITIES_IEEE_DCBX_SUPPORTED 0x00000008 +- +-#define NDIS_QOS_CLASSIFICATION_SET_BY_MINIPORT_MASK 0xff000000 +-#define NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT 0x01000000 +- +-#define NDIS_QOS_CONDITION_RESERVED 0x0 +-#define NDIS_QOS_CONDITION_DEFAULT 0x1 +-#define NDIS_QOS_CONDITION_TCP_PORT 0x2 +-#define NDIS_QOS_CONDITION_UDP_PORT 0x3 +-#define NDIS_QOS_CONDITION_TCP_OR_UDP_PORT 0x4 +-#define NDIS_QOS_CONDITION_ETHERTYPE 0x5 +-#define NDIS_QOS_CONDITION_NETDIRECT_PORT 0x6 +-#define NDIS_QOS_CONDITION_MAXIMUM 0x7 +- +-#define NDIS_QOS_ACTION_PRIORITY 0x0 +-#define NDIS_QOS_ACTION_MAXIMUM 0x1 +- +-#define NDIS_QOS_PARAMETERS_ETS_CHANGED 0x00000001 +-#define NDIS_QOS_PARAMETERS_ETS_CONFIGURED 0x00000002 +-#define NDIS_QOS_PARAMETERS_PFC_CHANGED 0x00000100 +-#define NDIS_QOS_PARAMETERS_PFC_CONFIGURED 0x00000200 +-#define NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED 0x00010000 +-#define NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED 0x00020000 +-#define NDIS_QOS_PARAMETERS_WILLING 0x80000000 +- +-#define NDIS_QOS_TSA_STRICT 0x0 +-#define NDIS_QOS_TSA_CBS 0x1 +-#define NDIS_QOS_TSA_ETS 0x2 +-#define NDIS_QOS_TSA_MAXIMUM 0x3 +- +-#define NDIS_PF_FUNCTION_ID (USHORT) -1 +-#define NDIS_INVALID_VF_FUNCTION_ID (USHORT) -1 +-#define NDIS_INVALID_RID (ULONG) -1 +-#define NDIS_DEFAULT_VPORT_ID 0 +-#define NDIS_DEFAULT_SWITCH_ID 0 +-#define NDIS_INVALID_SWITCH_ID (ULONG) -1 +- +-#define NDIS_NIC_SWITCH_PARAMETERS_CHANGE_MASK 0xffff0000 +-#define NDIS_NIC_SWITCH_PARAMETERS_SWITCH_NAME_CHANGED 0x00010000 +- +-#define NDIS_SRIOV_CAPS_SRIOV_SUPPORTED 0x00000001 +-#define NDIS_SRIOV_CAPS_PF_MINIPORT 0x00000002 +-#define NDIS_SRIOV_CAPS_VF_MINIPORT 0x00000004 +- +-#define NDIS_NIC_SWITCH_VF_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH 0x00000001 +- +-#define NDIS_NIC_SWITCH_VPORT_PARAMS_LOOKAHEAD_SPLIT_ENABLED 0x00000001 +-#define NDIS_NIC_SWITCH_VPORT_PARAMS_CHANGE_MASK 0xffff0000 +-#define NDIS_NIC_SWITCH_VPORT_PARAMS_FLAGS_CHANGED 0x00010000 +-#define NDIS_NIC_SWITCH_VPORT_PARAMS_NAME_CHANGED 0x00020000 +-#define NDIS_NIC_SWITCH_VPORT_PARAMS_INT_MOD_CHANGED 0x00040000 +-#define NDIS_NIC_SWITCH_VPORT_PARAMS_STATE_CHANGED 0x00080000 +-#define NDIS_NIC_SWITCH_VPORT_PARAMS_PROCESSOR_AFFINITY_CHANGED 0x00100000 +- +-#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION 0x00000001 +-#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH 0x00000002 +- +-#define NDIS_NIC_SWITCH_VPORT_INFO_LOOKAHEAD_SPLIT_ENABLED 0x00000001 +- +- DEFINE_GUID (GUID_NDIS_NDK_CAPABILITIES, 0x7969ba4d, 0xdd80, 0x4bc7, 0xb3, 0xe6, 0x68, 0x04, 0x39, 0x97, 0xe5, 0x19); +- DEFINE_GUID (GUID_NDIS_NDK_STATE, 0x530c69c9, 0x2f51, 0x49de, 0xa1, 0xaf, 0x08, 0x8d, 0x54, 0xff, 0xa4, 0x74); +- +-#define NDIS_NDK_CAPABILITIES_REVISION_1 1 +-#define NDIS_NDK_STATISTICS_INFO_REVISION_1 1 +-#define NDIS_NDK_CONNECTIONS_REVISION_1 1 +-#define NDIS_NDK_LOCAL_ENDPOINTS_REVISION_1 1 +-#define NDIS_QOS_CAPABILITIES_REVISION_1 1 +-#define NDIS_QOS_CLASSIFICATION_ELEMENT_REVISION_1 1 +-#define NDIS_QOS_PARAMETERS_REVISION_1 1 +-#define NDIS_NIC_SWITCH_PARAMETERS_REVISION_1 1 +-#define NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS_REVISION_1 1 +-#define NDIS_NIC_SWITCH_INFO_REVISION_1 1 +-#define NDIS_NIC_SWITCH_INFO_ARRAY_REVISION_1 1 +-#define NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_1 1 +-#define NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS_REVISION_1 1 +-#define NDIS_NIC_SWITCH_VPORT_INFO_REVISION_1 1 +-#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_REVISION_1 1 +-#define NDIS_NIC_SWITCH_VF_PARAMETERS_REVISION_1 1 +-#define NDIS_NIC_SWITCH_FREE_VF_PARAMETERS_REVISION_1 1 +-#define NDIS_NIC_SWITCH_VF_INFO_REVISION_1 1 +-#define NDIS_NIC_SWITCH_VF_INFO_ARRAY_REVISION_1 1 +-#define NDIS_SRIOV_CAPABILITIES_REVISION_1 1 +-#define NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 1 +-#define NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 1 +-#define NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 1 +-#define NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 1 +-#define NDIS_SRIOV_RESET_VF_PARAMETERS_REVISION_1 1 +-#define NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS_REVISION_1 1 +-#define NDIS_SRIOV_CONFIG_STATE_PARAMETERS_REVISION_1 1 +-#define NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO_REVISION_1 1 +-#define NDIS_SRIOV_PROBED_BARS_INFO_REVISION_1 1 +-#define NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS_REVISION_1 1 +-#define NDIS_SRIOV_BAR_RESOURCES_INFO_REVISION_1 1 +-#define NDIS_SRIOV_PF_LUID_INFO_REVISION_1 1 +-#define NDIS_SRIOV_VF_SERIAL_NUMBER_INFO_REVISION_1 1 +-#define NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO_REVISION_1 1 +-#define NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION_1 1 +-#define NDIS_SWITCH_PORT_PROPERTY_SECURITY_REVISION_1 1 +-#define NDIS_SWITCH_PORT_PROPERTY_VLAN_REVISION_1 1 +-#define NDIS_SWITCH_PORT_PROPERTY_PROFILE_REVISION_1 1 +-#define NDIS_SWITCH_PORT_PROPERTY_CUSTOM_REVISION_1 1 +-#define NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_REVISION_1 1 +-#define NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS_REVISION_1 1 +-#define NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_REVISION_1 1 +-#define NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_REVISION_1 1 +-#define NDIS_SWITCH_PROPERTY_PARAMETERS_REVISION_1 1 +-#define NDIS_SWITCH_PROPERTY_CUSTOM_REVISION_1 1 +-#define NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS_REVISION_1 1 +-#define NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM_REVISION_1 1 +-#define NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS_REVISION_1 1 +-#define NDIS_SWITCH_PROPERTY_ENUM_INFO_REVISION_1 1 +-#define NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_REVISION_1 1 +-#define NDIS_SWITCH_FEATURE_STATUS_CUSTOM_REVISION_1 1 +-#define NDIS_SWITCH_PORT_PARAMETERS_REVISION_1 1 +-#define NDIS_SWITCH_PORT_ARRAY_REVISION_1 1 +-#define NDIS_SWITCH_PARAMETERS_REVISION_1 1 +-#define NDIS_SWITCH_NIC_PARAMETERS_REVISION_1 1 +-#define NDIS_SWITCH_NIC_ARRAY_REVISION_1 1 +-#define NDIS_SWITCH_NIC_OID_REQUEST_REVISION_1 1 +-#define NDIS_SWITCH_FEATURE_STATUS_PARAMETERS_REVISION_1 1 +-#define NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 1 +- +-#define NDIS_SIZEOF_NDK_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NDK_CAPABILITIES, NdkInfo) +-#define NDIS_SIZEOF_NDK_STATISTICS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NDK_STATISTICS_INFO, CounterSet) +-#define NDIS_SIZEOF_NDK_CONNECTIONS_REVISION_1(n) FIELD_OFFSET (NDIS_NDK_CONNECTIONS, Connections[n]) +-#define NDIS_SIZEOF_NDK_LOCAL_ENDPOINTS_REVISION_1(n) FIELD_OFFSET (NDIS_NDK_LOCAL_ENDPOINTS, LocalEndpoints[n]) +-#define NDIS_SIZEOF_QOS_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_CAPABILITIES, MaxNumPfcEnabledTrafficClasses) +-#define NDIS_SIZEOF_QOS_CLASSIFICATION_ELEMENT_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_CLASSIFICATION_ELEMENT, ActionField) +-#define NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_PARAMETERS, FirstClassificationElementOffset) +-#define NDIS_SIZEOF_NIC_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_PARAMETERS, NdisReserved3) +-#define NDIS_SIZEOF_NIC_SWITCH_DELETE_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS, SwitchId) +-#define NDIS_SIZEOF_NIC_SWITCH_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_INFO, NumActiveNonDefaultVPortVlanIds) +-#define NDIS_SIZEOF_NIC_SWITCH_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_INFO_ARRAY, ElementSize) +-#define NDIS_SIZEOF_NIC_SWITCH_VPORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_PARAMETERS, LookaheadSize) +-#define NDIS_SIZEOF_NIC_SWITCH_DELETE_VPORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS, VPortId) +-#define NDIS_SIZEOF_NIC_SWITCH_VPORT_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_INFO, NumFilters) +-#define NDIS_SIZEOF_NIC_SWITCH_VPORT_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_INFO_ARRAY, ElementSize) +-#define NDIS_SIZEOF_NIC_SWITCH_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_PARAMETERS, RequestorId) +-#define NDIS_SIZEOF_NIC_SWITCH_FREE_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_FREE_VF_PARAMETERS, VFId) +-#define NDIS_SIZEOF_NIC_SWITCH_VF_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_INFO, RequestorId) +-#define NDIS_SIZEOF_NIC_SWITCH_VF_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_INFO_ARRAY, ElementSize) +-#define NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_CAPABILITIES, SriovCapabilities) +-#define NDIS_SIZEOF_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS, BufferOffset) +-#define NDIS_SIZEOF_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS, BufferOffset) +-#define NDIS_SIZEOF_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS, BufferOffset) +-#define NDIS_SIZEOF_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS, BufferOffset) +-#define NDIS_SIZEOF_SRIOV_RESET_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_RESET_VF_PARAMETERS, VFId) +-#define NDIS_SIZEOF_SRIOV_SET_VF_POWER_STATE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS, WakeEnable) +-#define NDIS_SIZEOF_SRIOV_CONFIG_STATE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_CONFIG_STATE_PARAMETERS, Length) +-#define NDIS_SIZEOF_SRIOV_VF_VENDOR_DEVICE_ID_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO, DeviceId) +-#define NDIS_SIZEOF_SRIOV_PROBED_BARS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_PROBED_BARS_INFO, BaseRegisterValuesOffset) +-#define NDIS_SIZEOF_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS, DestVPortId) +-#define NDIS_SIZEOF_SRIOV_BAR_RESOURCES_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_BAR_RESOURCES_INFO, BarResourcesOffset) +-#define NDIS_SIZEOF_SRIOV_PF_LUID_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_PF_LUID_INFO, Luid) +-#define NDIS_SIZEOF_SRIOV_VF_SERIAL_NUMBER_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_SERIAL_NUMBER_INFO, SerialNumber) +-#define NDIS_SIZEOF_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO, BlockMask) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_SECURITY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_SECURITY, AllowTeaming) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_VLAN_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_VLAN, VlanProperties) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_PROFILE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_PROFILE, CdnLabel) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_CUSTOM, PropertyBufferOffset) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_PARAMETERS, Reserved) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS, Reserved) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO, PropertyBufferOffset) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS, Reserved) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM, FeatureStatusBufferOffset) +-#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_CUSTOM, PropertyBufferOffset) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS, PropertyInstanceId) +-#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_PARAMETERS, PropertyBufferOffset) +-#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_ENUM_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_ENUM_INFO, PropertyBufferOffset) +-#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS, NumProperties) +-#define NDIS_SIZEOF_NDIS_SWITCH_FEATURE_STATUS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_FEATURE_STATUS_PARAMETERS, FeatureStatusBufferLength) +-#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS, PropertyInstanceId) +-#define NDIS_SIZEOF_NDIS_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PARAMETERS, IsActive) +-#define NDIS_SIZEOF_NDIS_SWITCH_FEATURE_STATUS_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_FEATURE_STATUS_CUSTOM, FeatureStatusCustomBufferOffset) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PARAMETERS, PortState) +-#define NDIS_SIZEOF_NDIS_SWITCH_PORT_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_ARRAY, ElementSize) +-#define NDIS_SIZEOF_NDIS_SWITCH_NIC_OID_REQUEST_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_OID_REQUEST, OidRequest) +-#define NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_SAVE_STATE, SaveDataOffset) +-#define NDIS_SIZEOF_NDIS_SWITCH_NIC_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_PARAMETERS, VFAssigned) +-#define NDIS_SIZEOF_NDIS_SWITCH_NIC_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_ARRAY, ElementSize) +- +-#define NDIS_SWITCH_PORT_PROPERTY_CUSTOM_GET_BUFFER(PPROPC) ((PVOID) ((PUCHAR) (PPROPC) + (PPROPC)->PropertyBufferOffset)) +-#define NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_GET_PROPERTY(PPARM) ((PVOID) ((PUCHAR) (PPARM) + (PPARM)->PropertyBufferOffset)) +-#define NDIS_SWITCH_CREATE_PROPERTY_VERSION(VMAJOR, VMINOR) (((VMAJOR) << 8) + (VMINOR)) +-#define NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_GET_FIRST_INFO(PEPARM) ((PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO) ((PUCHAR) (PEPARM) + (PEPARM)->FirstPropertyOffset)) +-#define NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_GET_NEXT(PEINFO) ((PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO) ((ULONG_PTR) (PEINFO) + (PEINFO)->QwordAlignedPropertyBufferLength + sizeof (NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO))) +-#define NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_GET_PROPERTY(PEINFO) ((PVOID) ((PUCHAR) (PEINFO) + (PEINFO)->PropertyBufferOffset)) +-#define NDIS_SWITCH_CREATE_FEATURE_STATUS_VERSION(VMAJOR, VMINOR) (((VMAJOR) << 8) + (VMINOR)) +-#define NDIS_SWITCH_PROPERTY_CUSTOM_GET_BUFFER(SWPROPC) ((PVOID) ((PUCHAR) (SWPROPC) + (SWPROPC)->PropertyBufferOffset)) +-#define NDIS_SWITCH_PROPERTY_PARAMETERS_GET_PROPERTY(SWPARA) ((PVOID) ((PUCHAR) (SWPARA) + (SWPARA)->PropertyBufferOffset)) +-#define NDIS_SWITCH_PROPERTY_ENUM_INFO_GET_NEXT(SWEINFO) ((PNDIS_SWITCH_PROPERTY_ENUM_INFO) ((ULONG_PTR) (SWEINFO) + (SWEINFO)->QwordAlignedPropertyBufferLength + sizeof (NDIS_SWITCH_PROPERTY_ENUM_INFO))) +-#define NDIS_SWITCH_PROPERTY_ENUM_INFO_GET_PROPERTY(SWEINFO) ((PVOID) ((PUCHAR) (SWEINFO) + (SWEINFO)->PropertyBufferOffset)) +-#define NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_GET_FIRST_INFO(SWEPARM) ((PNDIS_SWITCH_PROPERTY_ENUM_INFO) ((PUCHAR) (SWEPARM) + (SWEPARM)->FirstPropertyOffset)) +-#define NDIS_SWITCH_PORT_AT_ARRAY_INDEX(PA, IDX) ((PNDIS_SWITCH_PORT_PARAMETERS) ((PUCHAR) (PA) + (PA)->FirstElementOffset + ((PA)->ElementSize * (IDX)))) +-#define NDIS_SWITCH_NIC_AT_ARRAY_INDEX(NA, IDX) ((PNDIS_SWITCH_NIC_PARAMETERS) ((PUCHAR) (NA) + (NA)->FirstElementOffset + ((NA)->ElementSize * (IDX)))) +- +-#include +-#include +-#ifndef __CYGWIN__ +-#include +-#endif +- +- typedef struct _NDIS_NDK_PERFORMANCE_COUNTERS { +- ULONG64 Connect; +- ULONG64 Accept; +- ULONG64 ConnectFailure; +- ULONG64 ConnectionError; +- ULONG64 ActiveConnection; +- ULONG64 Reserved01; +- ULONG64 Reserved02; +- ULONG64 Reserved03; +- ULONG64 Reserved04; +- ULONG64 Reserved05; +- ULONG64 Reserved06; +- ULONG64 Reserved07; +- ULONG64 Reserved08; +- ULONG64 Reserved09; +- ULONG64 Reserved10; +- ULONG64 Reserved11; +- ULONG64 Reserved12; +- ULONG64 Reserved13; +- ULONG64 Reserved14; +- ULONG64 Reserved15; +- ULONG64 Reserved16; +- ULONG64 Reserved17; +- ULONG64 Reserved18; +- ULONG64 Reserved19; +- ULONG64 Reserved20; +- ULONG64 CQError; +- ULONG64 RDMAInOctets; +- ULONG64 RDMAOutOctets; +- ULONG64 RDMAInFrames; +- ULONG64 RDMAOutFrames; +- } NDIS_NDK_PERFORMANCE_COUNTERS, *PNDIS_NDK_PERFORMANCE_COUNTERS; +- +- typedef struct _NDIS_NDK_CAPABILITIES { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG MaxQpCount; +- ULONG MaxCqCount; +- ULONG MaxMrCount; +- ULONG MaxPdCount; +- ULONG MaxInboundReadLimit; +- ULONG MaxOutboundReadLimit; +- ULONG MaxMwCount; +- ULONG MaxSrqCount; +- ULONG64 MissingCounterMask; +- NDK_ADAPTER_INFO *NdkInfo; +- } NDIS_NDK_CAPABILITIES, *PNDIS_NDK_CAPABILITIES; +- +- typedef struct _NDK_WMI_ADAPTER_INFO { +- NDK_VERSION Version; +- UINT32 VendorId; +- UINT32 DeviceId; +- ULONGLONG MaxRegistrationSize; +- ULONGLONG MaxWindowSize; +- ULONG FRMRPageCount; +- ULONG MaxInitiatorRequestSge; +- ULONG MaxReceiveRequestSge; +- ULONG MaxReadRequestSge; +- ULONG MaxTransferLength; +- ULONG MaxInlineDataSize; +- ULONG MaxInboundReadLimit; +- ULONG MaxOutboundReadLimit; +- ULONG MaxReceiveQueueDepth; +- ULONG MaxInitiatorQueueDepth; +- ULONG MaxSrqDepth; +- ULONG MaxCqDepth; +- ULONG LargeRequestThreshold; +- ULONG MaxCallerData; +- ULONG MaxCalleeData; +- ULONG AdapterFlags; +- } NDK_WMI_ADAPTER_INFO, *PNDK_WMI_ADAPTER_INFO; +- +- typedef struct _NDIS_WMI_NDK_CAPABILITIES { +- ULONG MaxQpCount; +- ULONG MaxCqCount; +- ULONG MaxMrCount; +- ULONG MaxPdCount; +- ULONG MaxInboundReadLimit; +- ULONG MaxOutboundReadLimit; +- ULONG MaxMwCount; +- ULONG MaxSrqCount; +- ULONG64 MissingCounterMask; +- NDK_WMI_ADAPTER_INFO NdkInfo; +- } NDIS_WMI_NDK_CAPABILITIES, *PNDIS_WMI_NDK_CAPABILITIES; +- +- typedef struct _NDIS_NDK_STATISTICS_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_NDK_PERFORMANCE_COUNTERS CounterSet; +- } NDIS_NDK_STATISTICS_INFO; +- +- typedef struct _NDIS_NDK_CONNECTION_ENTRY { +- SOCKADDR_INET Local; +- SOCKADDR_INET Remote; +- BOOLEAN UserModeOwner; +- ULONG OwnerPid; +- } NDIS_NDK_CONNECTION_ENTRY; +- +- typedef struct _NDIS_NDK_CONNECTIONS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG Count; +- BOOLEAN NDConnectionsMappedtoTCPConnections; +- NDIS_NDK_CONNECTION_ENTRY Connections[1]; +- } NDIS_NDK_CONNECTIONS; +- +- typedef struct _NDIS_NDK_LOCAL_ENDPOINT_ENTRY { +- SOCKADDR_INET Local; +- BOOLEAN UserModeOwner; +- BOOLEAN Listener; +- ULONG OwnerPid; +- } NDIS_NDK_LOCAL_ENDPOINT_ENTRY; +- +- typedef struct _NDIS_NDK_LOCAL_ENDPOINTS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG Count; +- BOOLEAN NDLocalEndpointsMappedtoTCPLocalEndpoints; +- NDIS_NDK_LOCAL_ENDPOINT_ENTRY LocalEndpoints[1]; +- } NDIS_NDK_LOCAL_ENDPOINTS; +- +- typedef struct _NDIS_QOS_CAPABILITIES { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG MaxNumTrafficClasses; +- ULONG MaxNumEtsCapableTrafficClasses; +- ULONG MaxNumPfcEnabledTrafficClasses; +- } NDIS_QOS_CAPABILITIES, *PNDIS_QOS_CAPABILITIES; +- +- typedef struct _NDIS_QOS_CLASSIFICATION_ELEMENT { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- USHORT ConditionSelector; +- USHORT ConditionField; +- USHORT ActionSelector; +- USHORT ActionField; +- } NDIS_QOS_CLASSIFICATION_ELEMENT, *PNDIS_QOS_CLASSIFICATION_ELEMENT; +- +- typedef struct _NDIS_QOS_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG NumTrafficClasses; +- UCHAR PriorityAssignmentTable[NDIS_QOS_MAXIMUM_PRIORITIES]; +- UCHAR TcBandwidthAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]; +- UCHAR TsaAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]; +- ULONG PfcEnable; +- ULONG NumClassificationElements; +- ULONG ClassificationElementSize; +- ULONG FirstClassificationElementOffset; +- } NDIS_QOS_PARAMETERS, *PNDIS_QOS_PARAMETERS; +- +- typedef NDIS_IF_COUNTED_STRING NDIS_NIC_SWITCH_FRIENDLYNAME, *PNDIS_NIC_SWITCH_FRIENDLYNAME; +- typedef NDIS_IF_COUNTED_STRING NDIS_VPORT_NAME, *PNDIS_VPORT_NAME; +- typedef ULONG NDIS_NIC_SWITCH_ID, *PNDIS_NIC_SWITCH_ID; +- typedef USHORT NDIS_SRIOV_FUNCTION_ID, *PNDIS_SRIOV_FUNCTION_ID; +- typedef ULONG NDIS_VF_RID, *PNDIS_VF_RID; +- +- typedef enum _NDIS_NIC_SWITCH_TYPE { +- NdisNicSwitchTypeUnspecified, +- NdisNicSwitchTypeExternal, +- NdisNicSwitchTypeMax +- } NDIS_NIC_SWITCH_TYPE, *PNDIS_NIC_SWITCH_TYPE; +- +- typedef struct _NDIS_NIC_SWITCH_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_NIC_SWITCH_TYPE SwitchType; +- NDIS_NIC_SWITCH_ID SwitchId; +- NDIS_NIC_SWITCH_FRIENDLYNAME SwitchFriendlyName; +- ULONG NumVFs; +- ULONG NdisReserved1; +- ULONG NdisReserved2; +- ULONG NdisReserved3; +- } NDIS_NIC_SWITCH_PARAMETERS, *PNDIS_NIC_SWITCH_PARAMETERS; +- +- typedef struct _NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_NIC_SWITCH_ID SwitchId; +- } NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS, *PNDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS; +- +- typedef struct _NDIS_NIC_SWITCH_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_NIC_SWITCH_TYPE SwitchType; +- NDIS_NIC_SWITCH_ID SwitchId; +- NDIS_NIC_SWITCH_FRIENDLYNAME SwitchFriendlyName; +- ULONG NumVFs; +- ULONG NumAllocatedVFs; +- ULONG NumVPorts; +- ULONG NumActiveVPorts; +- ULONG NumQueuePairsForDefaultVPort; +- ULONG NumQueuePairsForNonDefaultVPorts; +- ULONG NumActiveDefaultVPortMacAddresses; +- ULONG NumActiveNonDefaultVPortMacAddresses; +- ULONG NumActiveDefaultVPortVlanIds; +- ULONG NumActiveNonDefaultVPortVlanIds; +- } NDIS_NIC_SWITCH_INFO, *PNDIS_NIC_SWITCH_INFO; +- +- typedef struct _NDIS_NIC_SWITCH_INFO_ARRAY { +- NDIS_OBJECT_HEADER Header; +- ULONG FirstElementOffset; +- ULONG NumElements; +- ULONG ElementSize; +- } NDIS_NIC_SWITCH_INFO_ARRAY, *PNDIS_NIC_SWITCH_INFO_ARRAY; +- +- typedef enum _NDIS_NIC_SWITCH_VPORT_STATE { +- NdisNicSwitchVPortStateUndefined, +- NdisNicSwitchVPortStateActivated, +- NdisNicSwitchVPortStateDeactivated, +- NdisNicSwitchVPortStateMaximum +- } NDIS_NIC_SWITCH_VPORT_STATE, *PNDIS_NIC_SWITCH_VPORT_STATE; +- +- typedef enum _NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION { +- NdisNicSwitchVPortInterruptModerationUndefined = 0, +- NdisNicSwitchVPortInterruptModerationAdaptive = 1, +- NdisNicSwitchVPortInterruptModerationOff = 2, +- NdisNicSwitchVPortInterruptModerationLow = 100, +- NdisNicSwitchVPortInterruptModerationMedium = 200, +- NdisNicSwitchVPortInterruptModerationHigh = 300, +- } NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION, *PNDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION; +- +- typedef struct _NDIS_NIC_SWITCH_VPORT_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_NIC_SWITCH_ID SwitchId; +- NDIS_NIC_SWITCH_VPORT_ID VPortId; +- NDIS_VPORT_NAME VPortName; +- NDIS_SRIOV_FUNCTION_ID AttachedFunctionId; +- ULONG NumQueuePairs; +- NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION InterruptModeration; +- NDIS_NIC_SWITCH_VPORT_STATE VPortState; +- GROUP_AFFINITY ProcessorAffinity; +- ULONG LookaheadSize; +- } NDIS_NIC_SWITCH_VPORT_PARAMETERS, *PNDIS_NIC_SWITCH_VPORT_PARAMETERS; +- +- typedef struct _NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_NIC_SWITCH_VPORT_ID VPortId; +- } NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS, *PNDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS; +- +- typedef struct _NDIS_NIC_SWITCH_VPORT_INFO { +- NDIS_OBJECT_HEADER Header; +- NDIS_NIC_SWITCH_VPORT_ID VPortId; +- ULONG Flags; +- NDIS_NIC_SWITCH_ID SwitchId; +- NDIS_VPORT_NAME VPortName; +- NDIS_SRIOV_FUNCTION_ID AttachedFunctionId; +- ULONG NumQueuePairs; +- NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION InterruptModeration; +- NDIS_NIC_SWITCH_VPORT_STATE VPortState; +- GROUP_AFFINITY ProcessorAffinity; +- ULONG LookaheadSize; +- ULONG NumFilters; +- } NDIS_NIC_SWITCH_VPORT_INFO, *PNDIS_NIC_SWITCH_VPORT_INFO; +- +- typedef struct _NDIS_NIC_SWITCH_VPORT_INFO_ARRAY { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_NIC_SWITCH_ID SwitchId; +- NDIS_SRIOV_FUNCTION_ID AttachedFunctionId; +- ULONG FirstElementOffset; +- ULONG NumElements; +- ULONG ElementSize; +- } NDIS_NIC_SWITCH_VPORT_INFO_ARRAY, *PNDIS_NIC_SWITCH_VPORT_INFO_ARRAY; +- +- typedef struct _NDIS_NIC_SWITCH_VF_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_NIC_SWITCH_ID SwitchId; +- NDIS_VM_NAME VMName; +- NDIS_VM_FRIENDLYNAME VMFriendlyName; +- NDIS_SWITCH_NIC_NAME NicName; +- USHORT MacAddressLength; +- UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; +- UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; +- NDIS_SRIOV_FUNCTION_ID VFId; +- NDIS_VF_RID RequestorId; +- } NDIS_NIC_SWITCH_VF_PARAMETERS, *PNDIS_NIC_SWITCH_VF_PARAMETERS; +- +- typedef struct _NDIS_NIC_SWITCH_FREE_VF_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SRIOV_FUNCTION_ID VFId; +- } NDIS_NIC_SWITCH_FREE_VF_PARAMETERS, *PNDIS_NIC_SWITCH_FREE_VF_PARAMETERS; +- +- typedef struct _NDIS_NIC_SWITCH_VF_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_NIC_SWITCH_ID SwitchId; +- NDIS_VM_NAME VMName; +- NDIS_VM_FRIENDLYNAME VMFriendlyName; +- NDIS_SWITCH_NIC_NAME NicName; +- USHORT MacAddressLength; +- UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; +- UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; +- NDIS_SRIOV_FUNCTION_ID VFId; +- NDIS_VF_RID RequestorId; +- } NDIS_NIC_SWITCH_VF_INFO, *PNDIS_NIC_SWITCH_VF_INFO; +- +- typedef struct _NDIS_NIC_SWITCH_VF_INFO_ARRAY { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_NIC_SWITCH_ID SwitchId; +- ULONG FirstElementOffset; +- ULONG NumElements; +- ULONG ElementSize; +- } NDIS_NIC_SWITCH_VF_INFO_ARRAY, *PNDIS_NIC_SWITCH_VF_INFO_ARRAY; +- +- typedef struct _NDIS_SRIOV_CAPABILITIES { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG SriovCapabilities; +- } NDIS_SRIOV_CAPABILITIES, *PNDIS_SRIOV_CAPABILITIES; +- +- typedef struct _NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- NDIS_SRIOV_FUNCTION_ID VFId; +- ULONG Offset; +- ULONG Length; +- ULONG BufferOffset; +- } NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS, *PNDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS; +- +- typedef struct _NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- NDIS_SRIOV_FUNCTION_ID VFId; +- ULONG Offset; +- ULONG Length; +- ULONG BufferOffset; +- } NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS, *PNDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS; +- +- typedef struct _NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- NDIS_SRIOV_FUNCTION_ID VFId; +- ULONG BlockId; +- ULONG Length; +- ULONG BufferOffset; +- } NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS, *PNDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS; +- +- typedef struct _NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- NDIS_SRIOV_FUNCTION_ID VFId; +- ULONG BlockId; +- ULONG Length; +- ULONG BufferOffset; +- } NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS, *PNDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS; +- +- typedef struct _NDIS_SRIOV_RESET_VF_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- NDIS_SRIOV_FUNCTION_ID VFId; +- } NDIS_SRIOV_RESET_VF_PARAMETERS, *PNDIS_SRIOV_RESET_VF_PARAMETERS; +- +- typedef struct _NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- NDIS_SRIOV_FUNCTION_ID VFId; +- NDIS_DEVICE_POWER_STATE PowerState; +- BOOLEAN WakeEnable; +- } NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS, *PNDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS; +- +- typedef struct _NDIS_SRIOV_CONFIG_STATE_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG BlockId; ++ } NDIS_IRDA_PACKET_INFO,*PNDIS_IRDA_PACKET_INFO; ++ ++#ifdef WIRELESS_WAN ++ ++ typedef enum _NDIS_WW_NETWORK_TYPE { ++ NdisWWGeneric, ++ NdisWWMobitex, ++ NdisWWPinpoint, ++ NdisWWCDPD, ++ NdisWWArdis, ++ NdisWWDataTAC, ++ NdisWWMetricom, ++ NdisWWGSM, ++ NdisWWCDMA, ++ NdisWWTDMA, ++ NdisWWAMPS, ++ NdisWWInmarsat, ++ NdisWWpACT, ++ NdisWWFlex, ++ NdisWWIDEN ++ } NDIS_WW_NETWORK_TYPE; ++ ++ typedef enum _NDIS_WW_HEADER_FORMAT { ++ NdisWWDIXEthernetFrames, ++ NdisWWMPAKFrames, ++ NdisWWRDLAPFrames, ++ NdisWWMDC4800Frames, ++ NdisWWNCLFrames ++ } NDIS_WW_HEADER_FORMAT; ++ ++ typedef enum _NDIS_WW_ENCRYPTION_TYPE { ++ NdisWWUnknownEncryption = -1, ++ NdisWWNoEncryption, ++ NdisWWDefaultEncryption, ++ NdisWWDESEncryption, ++ NdisWWRC2Encryption, ++ NdisWWRC4Encryption, ++ NdisWWRC5Encryption ++ } NDIS_WW_ENCRYPTION_TYPE,*PNDIS_WW_ENCRYPTION_TYPE; ++ ++ typedef enum _WW_ADDRESS_FORMAT { ++ WW_IEEE_ADDRESS = 0, ++ WW_MOBITEX_MAN_ADDRESS, ++ WW_DATATAC_RDLAP_ADDRESS, ++ WW_DATATAC_MDC4800_ADDRESS, ++ WW_DATATAC_RESERVED, ++ WW_IPv4_ADDRESS, ++ WW_IPv6_ADDRESS, ++ WW_PROPRIETARY_ADDRESS ++ } WW_ADDRESS_FORMAT; ++ ++ typedef enum _WW_GEN_SUM_EXCEPTION { ++ SIM_STATUS_OK = 0, ++ SIM_STATUS_ERROR, ++ SIM_STATUS_MISSING, ++ SIM_STATUS_NO_RESPONSE, ++ SIM_STATUS_REMOVED, ++ SIM_STATUS_CRYPT_ERROR, ++ SIM_STATUS_AUTH_ERROR, ++ SIM_STATUS_NEED_PIN, ++ SIM_STATUS_NEED_PUK, ++ SIM_STATUS_WRONG ++ } WW_GEN_SIM_EXCEPTION; ++ ++ typedef struct _NDIS_WW_INDICATION_REQUEST { ++ NDIS_OID Oid; ++ ULONG uIndicationFlag; ++ ULONG uApplicationToken; ++ HANDLE hIndicationHandle; ++ INT iPollingInterval; ++ NDIS_VAR_DATA_DESC InitialValue; ++ NDIS_VAR_DATA_DESC OIDIndicationValue; ++ NDIS_VAR_DATA_DESC TriggerValue; ++ } NDIS_WW_INDICATION_REQUEST,*PNDIS_WW_INDICATION_REQUEST; ++ ++#define OID_INDICATION_REQUEST_ENABLE 0x0000 ++#define OID_INDICATION_REQUEST_CANCEL 0x0001 ++ ++ typedef struct _WW_DEVICE_INFO { ++ NDIS_VAR_DATA_DESC Manufacturer; ++ NDIS_VAR_DATA_DESC ModelNum; ++ NDIS_VAR_DATA_DESC SWVersionNum; ++ NDIS_VAR_DATA_DESC SerialNum; ++ } WW_DEVICE_INFO,*PWW_DEVICE_INFO; ++ ++ typedef INT WW_OPERATION_MODE; ++ typedef INT WW_LOCK_STATUS; ++ typedef INT WW_DISABLE_TRANSMITTER; ++ typedef NDIS_VAR_DATA_DESC WW_NETWORK_ID; ++ typedef NDIS_VAR_DATA_DESC WW_PERMANENT_ADDRESS; ++ ++ typedef struct _WW_CURRENT_ADDRESS { ++ NDIS_WW_HEADER_FORMAT Format; ++ NDIS_VAR_DATA_DESC Address; ++ } WW_CURRENT_ADDRESS,*PWW_CURRENT_ADDRESS; ++ ++ typedef BOOLEAN WW_SUSPEND_DRIVER; ++ typedef NDIS_VAR_DATA_DESC WW_BASESTATION_ID; ++ typedef NDIS_VAR_DATA_DESC WW_CHANNEL_ID; ++ typedef BOOLEAN WW_ENCRYPTION_STATE; ++ typedef INT WW_CHANNEL_QUALITY; ++ typedef INT WW_REGISTRATION_STATUS; ++ typedef ULONG WW_RADIO_LINK_SPEED; ++ typedef ULONG WW_LATENCY; ++ typedef INT WW_BATTERY_LEVEL; ++ typedef INT WW_EXTERNAL_POWER; ++ ++ typedef struct _WW_PING_ADDRESS { ++ WW_ADDRESS_FORMAT Format; ++ NDIS_VAR_DATA_DESC TargetAddress; ++ UINT uTime; ++ } WW_PING_ADDRESS; ++ ++ typedef struct _WW_RECEIVE_SIGNAL_STRENGTH_INDICATOR { ++ INT iDecibels; ++ INT iFactor; ++ } WW_RECEIVE_SIGNAL_STRENGTH_INDICATOR; ++ ++ typedef struct _WW_SIM_STATUS { ++ BOOLEAN bHasSIM; ++ BOOLEAN bBlocked; ++ BOOLEAN bLocked; ++ BOOLEAN bInitialized; ++ UINT uCountdown; ++ } WW_SIM_STATUS; ++ ++ typedef struct _WW_ENABLE_SIM_PIN { ++ BOOLEAN bEnabled; ++ NDIS_VAR_DATA_DESC CurrentPIN; ++ } WW_ENABLE_SIM_PIN; ++ ++ typedef struct _WW_CHANGE_SIM_PIN { ++ NDIS_VAR_DATA_DESC OldPIN; ++ NDIS_VAR_DATA_DESC NewPIN; ++ } WW_CHANGE_SIM_PIN; ++ ++ typedef NDIS_VAR_DATA_DESC WW_ENABLE_SIM_PUK; ++ typedef NDIS_VAR_DATA_DESC WW_MET_FUNCTION; ++ typedef BOOLEAN WW_TAC_COMPRESSION; ++ ++ typedef struct _WW_TAC_SETCONFIG { ++ NDIS_VAR_DATA_DESC RCV_MODE; ++ NDIS_VAR_DATA_DESC TX_CONTROL; ++ NDIS_VAR_DATA_DESC RX_CONTROL; ++ NDIS_VAR_DATA_DESC FLOW_CONTROL; ++ NDIS_VAR_DATA_DESC RESET_CNF; ++ NDIS_VAR_DATA_DESC READ_CNF; ++ } WW_TAC_SETCONFIG,*PWW_TAC_SETCONFIG; ++ ++ typedef struct _WW_TAC_GETSTATUS { ++ BOOLEAN Action; ++ NDIS_VAR_DATA_DESC Command; ++ NDIS_VAR_DATA_DESC Option; ++ NDIS_VAR_DATA_DESC Response; ++ } WW_TAC_GETSTATUS,*PWW_TAC_GETSTATUS; ++ ++ typedef NDIS_VAR_DATA_DESC WW_TAC_USERHEADER; ++ ++ typedef struct _WW_TAC_GET_RESPONSE { ++ UINT SDUTag; ++ NDIS_VAR_DATA_DESC Response; ++ } WW_TAC_GET_RESPONSE; ++ ++ typedef INT WW_TAC_DISABLE_RECEIVER; ++ typedef INT WW_TAC_ANTENNA_MODE; ++ typedef INT WW_TAC_FLUSH_DATA; ++ typedef INT WW_TAC_SHUTDOWN_DEVICE; ++ typedef BOOLEAN WW_TAC_TRANSMITTER_KEYED; ++ ++ typedef struct _WW_TAC_SYSTEM_TABLE { ++ UINT SystemCount; ++ UCHAR ContryTable[32]; ++ UCHAR PrefixTable[32]; ++ UCHAR IDTable[32]; ++ } WW_TAC_SYSTEM_TABLE; ++ ++ typedef struct _WW_TAC_CHANNEL_TABLE { ++ UINT ChannelCount; ++ UCHAR ChannelTable[64]; ++ UCHAR AttrTable[64]; ++ } WW_TAC_CHANNEL_TABLE; ++ ++ typedef NDIS_VAR_DATA_DESC WW_TAC_STATISTICS; ++ ++ typedef struct _WW_ARD_SNDCP { ++ NDIS_VAR_DATA_DESC Version; ++ INT BlockSize; ++ INT Window; ++ } WW_ARD_SNDCP,*PWW_ARD_SNDCP; ++ ++ typedef BOOLEAN WW_ARD_CHANNEL_STATUS; ++ ++ typedef struct _WW_ARD_DATAGRAM { ++ BOOLEAN LoadLevel; ++ INT SessionTime; ++ NDIS_VAR_DATA_DESC HostAddr; ++ NDIS_VAR_DATA_DESC THostAddr; ++ } WW_ARD_DATAGRAM,*PWW_ARD_DATAGRAM; ++ ++ typedef struct _WW_CDPD_SPNI { ++ ULONG SPNI[10]; ++ INT OperatingMode; ++ } WW_CDPD_SPNI,*PWW_CDPD_SPNI; ++ ++ typedef struct _WW_CDPD_WIDE_AREA_SERVICE_ID { ++ ULONG WASI[10]; ++ INT OperatingMode; ++ } WW_CDPD_WIDE_AREA_SERVICE_ID,*PWW_CDPD_WIDE_AREA_SERVICE_ID; ++ ++ typedef INT WW_CDPD_AREA_COLOR; ++ typedef ULONG WW_CDPD_TX_POWER_LEVEL; ++ typedef NDIS_VAR_DATA_DESC WW_CDPD_EID; ++ typedef INT WW_CDPD_HEADER_COMPRESSION; ++ typedef INT WW_CDPD_DATA_COMPRESSION; ++ ++ typedef struct _WW_CDPD_CHANNEL_SELECT { ++ ULONG ChannelID; ++ ULONG fixedDuration; ++ } WW_CDPD_CHANNEL_SELECT,*PWW_CDPD_CHANNEL_SELECT; ++ ++ typedef enum _WW_CDPD_CHANNEL_STATE { ++ CDPDChannelNotAvail, ++ CDPDChannelScanning, ++ CDPDChannelInitAcquired, ++ CDPDChannelAcquired, ++ CDPDChannelSleeping, ++ CDPDChannelWaking, ++ CDPDChannelCSDialing, ++ CDPDChannelCSRedial, ++ CDPDChannelCSAnswering, ++ CDPDChannelCSConnected, ++ CDPDChannelCSSuspended ++ } WW_CDPD_CHANNEL_STATE,*PWW_CDPD_CHANNEL_STATE; ++ ++ typedef enum _WW_CDPD_NEI_FORMAT { ++ CDPDNeiIPv4, ++ CDPDNeiCLNP, ++ CDPDNeiIPv6 ++ } WW_CDPD_NEI_FORMAT,*PWW_CDPD_NEI_FORMAT; ++ ++ typedef enum _WW_CDPD_NEI_TYPE { ++ CDPDNeiIndividual, ++ CDPDNeiMulticast, ++ CDPDNeiBroadcast ++ } WW_CDPD_NEI_TYPE; ++ ++ typedef struct _WW_CDPD_NEI { ++ ULONG uNeiIndex; ++ WW_CDPD_NEI_FORMAT NeiFormat; ++ WW_CDPD_NEI_TYPE NeiType; ++ WORD NeiGmid; ++ NDIS_VAR_DATA_DESC NeiAddress; ++ } WW_CDPD_NEI; ++ ++ typedef enum _WW_CDPD_NEI_STATE { ++ CDPDUnknown, ++ CDPDRegistered, ++ CDPDDeregistered ++ } WW_CDPD_NEI_STATE,*PWW_CDPD_NEI_STATE; ++ ++ typedef enum _WW_CDPD_NEI_SUB_STATE { ++ CDPDPending, ++ CDPDNoReason, ++ CDPDMDISNotCapable, ++ CDPDNEINotAuthorized, ++ CDPDInsufficientAuth, ++ CDPDUnsupportedAuth, ++ CDPDUsageExceeded, ++ CDPDDeniedThisNetwork ++ } WW_CDPD_NEI_SUB_STATE; ++ ++ typedef struct _WW_CDPD_NEI_REG_STATE { ++ ULONG uNeiIndex; ++ WW_CDPD_NEI_STATE NeiState; ++ WW_CDPD_NEI_SUB_STATE NeiSubState; ++ } WW_CDPD_NEI_REG_STATE,*PWW_CDPD_NEI_REG_STATE; ++ ++ typedef struct _WW_CDPD_SERVICE_PROVIDER_ID { ++ ULONG SPI[10]; ++ INT OperatingMode; ++ } WW_CDPD_SERVICE_PROVIDER_ID,*PWW_CDPD_SERVICE_PROVIDER_ID; ++ ++ typedef INT WW_CDPD_SLEEP_MODE; ++ typedef ULONG WW_CDPD_TEI; ++ ++ typedef struct _WW_CDPD_CIRCUIT_SWITCHED { ++ INT service_preference; ++ INT service_status; ++ INT connect_rate; ++ NDIS_VAR_DATA_DESC dial_code[20]; ++ ULONG sid; ++ INT a_b_side_selection; ++ INT AMPS_channel; ++ ULONG action; ++ NDIS_VAR_DATA_DESC default_dial[20]; ++ NDIS_VAR_DATA_DESC call_back[20]; ++ ULONG sid_list[10]; ++ ULONG inactivity_timer; ++ ULONG receive_timer; ++ ULONG conn_resp_timer; ++ ULONG reconn_resp_timer; ++ ULONG disconn_timer; ++ ULONG NEI_reg_timer; ++ ULONG reconn_retry_timer; ++ ULONG link_reset_timer; ++ ULONG link_reset_ack_timer; ++ ULONG n401_retry_limit; ++ ULONG n402_retry_limit; ++ ULONG n404_retry_limit; ++ ULONG n405_retry_limit; ++ } WW_CDPD_CIRCUIT_SWITCHED,*WW_PCDPD_CIRCUIT_SWITCHED; ++ ++ typedef ULONG WW_CDPD_RSSI; ++ typedef INT WW_CDPD_CS_SERVICE_PREFERENCE; ++ typedef INT WW_CDPD_CS_SERVICE_STATUS; ++ ++ typedef struct _WW_CDPD_CS_INFO { ++ INT ConnectRage; ++ NDIS_VAR_DATA_DESC DialCode; ++ UINT SID; ++ INT ABSideSelection; ++ INT AMPSChannel; ++ } WW_CDPD_CS_INFO; ++ ++ typedef UINT WW_CDPD_CS_SUSPEND; ++ typedef NDIS_VAR_DATA_DESC WW_CDPD_DEFAULT_DIAL_CODE; ++ ++ typedef struct _WW_CDPD_CS_CALLBACK { ++ UINT Enabled; ++ NDIS_VAR_DATA_DESC Number; ++ } WW_CDPD_CS_CALLBACK; ++ ++ typedef struct _WW_CDPD_CS_SID_LIST { ++ UINT AMPSystemId[10]; ++ } WW_CDPD_CS_SID_LIST; ++ ++ typedef struct _WW_CDPD_CS_CONFIGURATION { ++ UINT InactivityTimer; ++ UINT ReceiveTimer; ++ UINT ConnResTimer; ++ UINT ReconnRespTimer; ++ UINT DisconnTimer; ++ UINT NEIRegTimer; ++ UINT ReconnRetryTimer; ++ UINT LinkResetTimer; ++ UINT LinkResetAckTimer; ++ UINT n401RetryLimit; ++ UINT n402RetryLimit; ++ UINT n404RetryLimit; ++ UINT n405RetryLimit; ++ } WW_CDPD_CS_CONFIGURATION; ++ ++ typedef INT WW_PIN_AUTHORIZED; ++ ++ typedef struct _WW_PIN_LOCATION { ++ INT Latitude; ++ INT Longitude; ++ INT Altitude; ++ INT FixTime; ++ INT NetTime; ++ INT LocQuality; ++ INT LatReg; ++ INT LongReg; ++ INT GMTOffset; ++ } WW_PIN_LOCATION,*PWW_PIN_LOCATION; ++ ++ typedef ULONG WW_MBX_MAILBOX_FLAG; ++ ++ typedef struct _WW_MBX_PMAN { ++ BOOLEAN ACTION; ++ ULONG MAN; ++ UCHAR PASSWORD[8]; ++ } WW_MBX_PMAN,*PWW_MBX_PMAN; ++ ++ typedef struct _WW_MBX_FLEXLIST { ++ INT count; ++ ULONG MAN[7]; ++ } WW_MBX_FLEXLIST; ++ ++ typedef struct _WW_MBX_GROUPLIST { ++ INT count; ++ ULONG MAN[15]; ++ } WW_MBX_GROUPLIST; ++ ++ typedef enum _WW_MBX_TRAFFIC_AREA { ++ unknown_traffic_area, ++ in_traffic_area, ++ in_auth_traffic_area, ++ unauth_traffic_area ++ } WW_MBX_TRAFFIC_AREA; ++ ++ typedef INT WW_MBX_LIVE_DIE; ++ ++ typedef struct _WW_MBX_CHANNEL_PAIR { ++ ULONG Mobile_Tx; ++ ULONG Mobile_Rx; ++ } WW_MBX_CHANNEL_PAIR,*PWW_MBX_CHANNEL_PAIR; ++ ++ typedef struct _WW_MBX_TEMPDEFAULTLIST { + ULONG Length; +- } NDIS_SRIOV_CONFIG_STATE_PARAMETERS, *PNDIS_SRIOV_CONFIG_STATE_PARAMETERS; +- +- typedef struct _NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO { +- NDIS_OBJECT_HEADER Header; +- NDIS_SRIOV_FUNCTION_ID VFId; +- USHORT VendorId; +- USHORT DeviceId; +- } NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO, *PNDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO; +- +- typedef struct _NDIS_SRIOV_PROBED_BARS_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG BaseRegisterValuesOffset; +- } NDIS_SRIOV_PROBED_BARS_INFO, *PNDIS_SRIOV_PROBED_BARS_INFO; +- +- typedef struct _NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- NDIS_RECEIVE_FILTER_ID FilterId; +- NDIS_RECEIVE_QUEUE_ID SourceQueueId; +- NDIS_NIC_SWITCH_VPORT_ID SourceVPortId; +- NDIS_RECEIVE_QUEUE_ID DestQueueId; +- NDIS_NIC_SWITCH_VPORT_ID DestVPortId; +- } NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS, *PNDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS; +- +- typedef struct _NDIS_SRIOV_BAR_RESOURCES_INFO { +- NDIS_OBJECT_HEADER Header; +- NDIS_SRIOV_FUNCTION_ID VFId; +- USHORT BarIndex; +- ULONG BarResourcesOffset; +- } NDIS_SRIOV_BAR_RESOURCES_INFO, *PNDIS_SRIOV_BAR_RESOURCES_INFO; +- +- typedef struct _NDIS_SRIOV_PF_LUID_INFO { +- NDIS_OBJECT_HEADER Header; +- LUID Luid; +- } NDIS_SRIOV_PF_LUID_INFO, *PNDIS_SRIOV_PF_LUID_INFO; +- +- typedef struct _NDIS_SRIOV_VF_SERIAL_NUMBER_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG SerialNumber; +- } NDIS_SRIOV_VF_SERIAL_NUMBER_INFO, *PNDIS_SRIOV_VF_SERIAL_NUMBER_INFO; +- +- typedef struct _NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG64 BlockMask; +- } NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO, *PNDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO; +- +- typedef GUID NDIS_SWITCH_OBJECT_INSTANCE_ID, *PNDIS_SWITCH_OBJECT_INSTANCE_ID; +- typedef GUID NDIS_SWITCH_OBJECT_ID, *PNDIS_SWITCH_OBJECT_ID; +- typedef USHORT NDIS_SWITCH_OBJECT_VERSION, *PNDIS_SWITCH_OBJECT_VERSION; +- typedef USHORT NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION, *PNDIS_SWITCH_OBJECT_SERIALIZATION_VERSION; +-#ifndef _NDIS_SWITCH_PORT_ID +-#define _NDIS_SWITCH_PORT_ID NDIS_SWITCH_PORT_ID +- typedef UINT32 NDIS_SWITCH_PORT_ID, *PNDIS_SWITCH_PORT_ID; +- typedef USHORT NDIS_SWITCH_NIC_INDEX, *PNDIS_SWITCH_NIC_INDEX; +-#endif +- +- typedef enum _NDIS_SWITCH_PORT_PROPERTY_TYPE { +- NdisSwitchPortPropertyTypeUndefined, +- NdisSwitchPortPropertyTypeCustom, +- NdisSwitchPortPropertyTypeSecurity, +- NdisSwitchPortPropertyTypeVlan, +- NdisSwitchPortPropertyTypeProfile, +- NdisSwitchPortPropertyTypeMaximum +- } NDIS_SWITCH_PORT_PROPERTY_TYPE, *PNDIS_SWITCH_PORT_PROPERTY_TYPE; +- +- typedef struct _NDIS_SWITCH_PORT_PROPERTY_SECURITY { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- BOOLEAN AllowMacSpoofing; +- BOOLEAN AllowIeeePriorityTag; +- UINT32 VirtualSubnetId; +- BOOLEAN AllowTeaming; +- } NDIS_SWITCH_PORT_PROPERTY_SECURITY, *PNDIS_SWITCH_PORT_PROPERTY_SECURITY; +- +- typedef enum _NDIS_SWITCH_PORT_VLAN_MODE { +- NdisSwitchPortVlanModeUnknown = 0, +- NdisSwitchPortVlanModeAccess = 1, +- NdisSwitchPortVlanModeTrunk = 2, +- NdisSwitchPortVlanModePrivate = 3, +- NdisSwitchPortVlanModeMax = 4 +- } NDIS_SWITCH_PORT_VLAN_MODE, *PNDIS_SWITCH_PORT_VLAN_MODE; +- +- typedef enum _NDIS_SWITCH_PORT_PVLAN_MODE { +- NdisSwitchPortPvlanModeUndefined = 0, +- NdisSwitchPortPvlanModeIsolated, +- NdisSwitchPortPvlanModeCommunity, +- NdisSwitchPortPvlanModePromiscuous +- } NDIS_SWITCH_PORT_PVLAN_MODE, *PNDIS_SWITCH_PORT_PVLAN_MODE; +- +- typedef struct _NDIS_SWITCH_PORT_PROPERTY_VLAN { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PORT_VLAN_MODE OperationMode; +- __C89_NAMELESS union { +- struct { +- UINT16 AccessVlanId; +- UINT16 NativeVlanId; +- UINT64 PruneVlanIdArray[64]; +- UINT64 TrunkVlanIdArray[64]; +- } VlanProperties; +- struct { +- NDIS_SWITCH_PORT_PVLAN_MODE PvlanMode; +- UINT16 PrimaryVlanId; +- __C89_NAMELESS union { +- UINT16 SecondaryVlanId; +- UINT64 SecondaryVlanIdArray[64]; +- }; +- } PvlanProperties; +- }; +- } NDIS_SWITCH_PORT_PROPERTY_VLAN, *PNDIS_SWITCH_PORT_PROPERTY_VLAN; +- +- typedef struct _NDIS_SWITCH_PORT_PROPERTY_PROFILE { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME ProfileName; +- GUID ProfileId; +- NDIS_VENDOR_NAME VendorName; +- GUID VendorId; +- UINT32 ProfileData; +- GUID NetCfgInstanceId; +- struct { +- UINT32 PciSegmentNumber:16; +- UINT32 PciBusNumber:8; +- UINT32 PciDeviceNumber:5; +- UINT32 PciFunctionNumber:3; +- } PciLocation; +- UINT32 CdnLabelId; +- NDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL CdnLabel; +- } NDIS_SWITCH_PORT_PROPERTY_PROFILE, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE; +- +- typedef struct _NDIS_SWITCH_PORT_PROPERTY_CUSTOM { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG PropertyBufferLength; +- ULONG PropertyBufferOffset; +- } NDIS_SWITCH_PORT_PROPERTY_CUSTOM, *PNDIS_SWITCH_PORT_PROPERTY_CUSTOM; +- +- typedef struct _NDIS_SWITCH_PORT_PROPERTY_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PORT_ID PortId; +- NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType; +- NDIS_SWITCH_OBJECT_ID PropertyId; +- NDIS_SWITCH_OBJECT_VERSION PropertyVersion; +- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; +- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; +- ULONG PropertyBufferLength; +- ULONG PropertyBufferOffset; +- ULONG Reserved; +- } NDIS_SWITCH_PORT_PROPERTY_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_PARAMETERS; +- +- typedef struct _NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PORT_ID PortId; +- NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType; +- NDIS_SWITCH_OBJECT_ID PropertyId; +- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; +- } NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS; +- +- typedef struct _NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PORT_ID PortId; +- NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType; +- NDIS_SWITCH_OBJECT_ID PropertyId; +- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; +- ULONG FirstPropertyOffset; +- ULONG NumProperties; +- USHORT Reserved; +- } NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS; +- +- typedef struct _NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_OBJECT_VERSION PropertyVersion; +- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; +- ULONG QwordAlignedPropertyBufferLength; +- ULONG PropertyBufferLength; +- ULONG PropertyBufferOffset; +- } NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO, *PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO; +- +- typedef enum _NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE { +- NdisSwitchPortFeatureStatusTypeUndefined, +- NdisSwitchPortFeatureStatusTypeCustom, +- NdisSwitchPortFeatureStatusTypeMaximum +- } NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE, *PNDIS_SWITCH_PORT_FEATURE_STATUS_TYPE; +- +- typedef struct _NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PORT_ID PortId; +- NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE FeatureStatusType; +- NDIS_SWITCH_OBJECT_ID FeatureStatusId; +- NDIS_SWITCH_OBJECT_VERSION FeatureStatusVersion; +- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; +- NDIS_SWITCH_OBJECT_INSTANCE_ID FeatureStatusInstanceId; +- ULONG FeatureStatusBufferLength; +- ULONG FeatureStatusBufferOffset; +- ULONG Reserved; +- } NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS, *PNDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS; +- +- typedef struct _NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG FeatureStatusBufferLength; +- ULONG FeatureStatusBufferOffset; +- } NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM, *PNDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM; +- +- typedef enum _NDIS_SWITCH_PROPERTY_TYPE { +- NdisSwitchPropertyTypeUndefined, +- NdisSwitchPropertyTypeCustom, +- NdisSwitchPropertyTypeMaximum +- } NDIS_SWITCH_PROPERTY_TYPE, *PNDIS_SWITCH_PROPERTY_TYPE; +- +- typedef struct _NDIS_SWITCH_PROPERTY_CUSTOM { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG PropertyBufferLength; +- ULONG PropertyBufferOffset; +- } NDIS_SWITCH_PROPERTY_CUSTOM, *PNDIS_SWITCH_PROPERTY_CUSTOM; +- +- typedef struct _NDIS_SWITCH_PROPERTY_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PROPERTY_TYPE PropertyType; +- NDIS_SWITCH_OBJECT_ID PropertyId; +- NDIS_SWITCH_OBJECT_VERSION PropertyVersion; +- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; +- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; +- ULONG PropertyBufferLength; +- ULONG PropertyBufferOffset; +- } NDIS_SWITCH_PROPERTY_PARAMETERS, *PNDIS_SWITCH_PROPERTY_PARAMETERS; +- +- typedef struct _NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PROPERTY_TYPE PropertyType; +- NDIS_SWITCH_OBJECT_ID PropertyId; +- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; +- } NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS, *PNDIS_SWITCH_PROPERTY_DELETE_PARAMETERS; +- +- typedef struct _NDIS_SWITCH_PROPERTY_ENUM_INFO { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; +- NDIS_SWITCH_OBJECT_VERSION PropertyVersion; +- ULONG QwordAlignedPropertyBufferLength; +- ULONG PropertyBufferLength; +- ULONG PropertyBufferOffset; +- } NDIS_SWITCH_PROPERTY_ENUM_INFO, *PNDIS_SWITCH_PROPERTY_ENUM_INFO; +- +- typedef struct _NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PROPERTY_TYPE PropertyType; +- NDIS_SWITCH_OBJECT_ID PropertyId; +- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; +- ULONG FirstPropertyOffset; +- ULONG NumProperties; +- } NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS, *PNDIS_SWITCH_PROPERTY_ENUM_PARAMETERS; +- +- typedef enum _NDIS_SWITCH_FEATURE_STATUS_TYPE { +- NdisSwitchFeatureStatusTypeUndefined, +- NdisSwitchFeatureStatusTypeCustom, +- NdisSwitchFeatureStatusTypeMaximum +- } NDIS_SWITCH_FEATURE_STATUS_TYPE, *PNDIS_SWITCH_FEATURE_STATUS_TYPE; +- +- typedef struct _NDIS_SWITCH_FEATURE_STATUS_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_FEATURE_STATUS_TYPE FeatureStatusType; +- NDIS_SWITCH_OBJECT_ID FeatureStatusId; +- NDIS_SWITCH_OBJECT_INSTANCE_ID FeatureStatusInstanceId; +- NDIS_SWITCH_OBJECT_VERSION FeatureStatusVersion; +- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; +- ULONG FeatureStatusBufferOffset; +- ULONG FeatureStatusBufferLength; +- } NDIS_SWITCH_FEATURE_STATUS_PARAMETERS, *PNDIS_SWITCH_FEATURE_STATUS_PARAMETERS; +- +- typedef struct _NDIS_SWITCH_FEATURE_STATUS_CUSTOM { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- ULONG FeatureStatusCustomBufferLength; +- ULONG FeatureStatusCustomBufferOffset; +- } NDIS_SWITCH_FEATURE_STATUS_CUSTOM, *PNDIS_SWITCH_FEATURE_STATUS_CUSTOM; +- +- typedef struct _NDIS_SWITCH_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_NAME SwitchName; +- NDIS_SWITCH_FRIENDLYNAME SwitchFriendlyName; +- UINT32 NumSwitchPorts; +- BOOLEAN IsActive; +- } NDIS_SWITCH_PARAMETERS, *PNDIS_SWITCH_PARAMETERS; +- +- typedef enum _NDIS_SWITCH_PORT_TYPE { +- NdisSwitchPortTypeGeneric = 0, +- NdisSwitchPortTypeExternal = 1, +- NdisSwitchPortTypeSynthetic = 2, +- NdisSwitchPortTypeEmulated = 3, +- NdisSwitchPortTypeInternal = 4 +- } NDIS_SWITCH_PORT_TYPE; +- +- typedef enum _NDIS_SWITCH_PORT_STATE { +- NdisSwitchPortStateUnknown = 0, +- NdisSwitchPortStateCreated = 1, +- NdisSwitchPortStateTeardown = 2, +- NdisSwitchPortStateDeleted = 3 +- } NDIS_SWITCH_PORT_STATE; +- +- typedef struct _NDIS_SWITCH_PORT_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PORT_ID PortId; +- NDIS_SWITCH_PORT_NAME PortName; +- NDIS_SWITCH_PORT_FRIENDLYNAME PortFriendlyName; +- NDIS_SWITCH_PORT_TYPE PortType; +- BOOLEAN IsValidationPort; +- NDIS_SWITCH_PORT_STATE PortState; +- } NDIS_SWITCH_PORT_PARAMETERS, *PNDIS_SWITCH_PORT_PARAMETERS; +- +- typedef struct _NDIS_SWITCH_PORT_ARRAY { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- USHORT FirstElementOffset; +- ULONG NumElements; +- ULONG ElementSize; +- } NDIS_SWITCH_PORT_ARRAY, *PNDIS_SWITCH_PORT_ARRAY; +- +- typedef enum _NDIS_SWITCH_NIC_TYPE { +- NdisSwitchNicTypeExternal = 0, +- NdisSwitchNicTypeSynthetic = 1, +- NdisSwitchNicTypeEmulated = 2, +- NdisSwitchNicTypeInternal = 3 +- } NDIS_SWITCH_NIC_TYPE; +- +- typedef enum _NDIS_SWITCH_NIC_STATE { +- NdisSwitchNicStateUnknown = 0, +- NdisSwitchNicStateCreated = 1, +- NdisSwitchNicStateConnected = 2, +- NdisSwitchNicStateDisconnected = 3, +- NdisSwitchNicStateDeleted = 4 +- } NDIS_SWITCH_NIC_STATE; +- +- typedef struct _NDIS_SWITCH_NIC_PARAMETERS { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_NIC_NAME NicName; +- NDIS_SWITCH_NIC_FRIENDLYNAME NicFriendlyName; +- NDIS_SWITCH_PORT_ID PortId; +- NDIS_SWITCH_NIC_INDEX NicIndex; +- NDIS_SWITCH_NIC_TYPE NicType; +- NDIS_SWITCH_NIC_STATE NicState; +- NDIS_VM_NAME VmName; +- NDIS_VM_FRIENDLYNAME VmFriendlyName; +- GUID NetCfgInstanceId; +- ULONG MTU; +- USHORT NumaNodeId; +- UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; +- UCHAR VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; +- UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; +- BOOLEAN VFAssigned; +- } NDIS_SWITCH_NIC_PARAMETERS, *PNDIS_SWITCH_NIC_PARAMETERS; +- +- typedef struct _NDIS_SWITCH_NIC_ARRAY { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- USHORT FirstElementOffset; +- ULONG NumElements; +- ULONG ElementSize; +- } NDIS_SWITCH_NIC_ARRAY, *PNDIS_SWITCH_NIC_ARRAY; +- +- typedef struct _NDIS_OID_REQUEST NDIS_OID_REQUEST, *PNDIS_OID_REQUEST; +- +- typedef struct _NDIS_SWITCH_NIC_OID_REQUEST { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PORT_ID SourcePortId; +- NDIS_SWITCH_NIC_INDEX SourceNicIndex; +- NDIS_SWITCH_PORT_ID DestinationPortId; +- NDIS_SWITCH_NIC_INDEX DestinationNicIndex; +- PNDIS_OID_REQUEST OidRequest; +- } NDIS_SWITCH_NIC_OID_REQUEST, *PNDIS_SWITCH_NIC_OID_REQUEST; +- +- typedef struct _NDIS_SWITCH_NIC_SAVE_STATE { +- NDIS_OBJECT_HEADER Header; +- ULONG Flags; +- NDIS_SWITCH_PORT_ID PortId; +- NDIS_SWITCH_NIC_INDEX NicIndex; +- GUID ExtensionId; +- NDIS_SWITCH_EXTENSION_FRIENDLYNAME ExtensionFriendlyName; +- GUID FeatureClassId; +- USHORT SaveDataSize; +- USHORT SaveDataOffset; +- } NDIS_SWITCH_NIC_SAVE_STATE, *PNDIS_SWITCH_NIC_SAVE_STATE; +-#endif +- +- typedef struct _NDIS_PORT_STATE { +- NDIS_OBJECT_HEADER Header; +- NDIS_MEDIA_CONNECT_STATE MediaConnectState; +- ULONG64 XmitLinkSpeed; +- ULONG64 RcvLinkSpeed; +- NET_IF_DIRECTION_TYPE Direction; +- NDIS_PORT_CONTROL_STATE SendControlState; +- NDIS_PORT_CONTROL_STATE RcvControlState; +- NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState; +- NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState; +- ULONG Flags; +- } NDIS_PORT_STATE, *PNDIS_PORT_STATE; +- +- typedef struct _NDIS_PORT_CHARACTERISTICS { +- NDIS_OBJECT_HEADER Header; +- NDIS_PORT_NUMBER PortNumber; +- ULONG Flags; +- NDIS_PORT_TYPE Type; +- NDIS_MEDIA_CONNECT_STATE MediaConnectState; +- ULONG64 XmitLinkSpeed; +- ULONG64 RcvLinkSpeed; +- NET_IF_DIRECTION_TYPE Direction; +- NDIS_PORT_CONTROL_STATE SendControlState; +- NDIS_PORT_CONTROL_STATE RcvControlState; +- NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState; +- NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState; +- } NDIS_PORT_CHARACTERISTICS, *PNDIS_PORT_CHARACTERISTICS; +- +- typedef struct _NDIS_PORT NDIS_PORT, *PNDIS_PORT; +- +- struct _NDIS_PORT { +- PNDIS_PORT Next; +- PVOID NdisReserved; +- PVOID MiniportReserved; +- PVOID ProtocolReserved; +- NDIS_PORT_CHARACTERISTICS PortCharacteristics; +- }; +- +- typedef struct _NDIS_PORT_ARRAY { +- NDIS_OBJECT_HEADER Header; +- ULONG NumberOfPorts; +- ULONG OffsetFirstPort; +- ULONG ElementSize; +- NDIS_PORT_CHARACTERISTICS Ports[1]; +- } NDIS_PORT_ARRAY, *PNDIS_PORT_ARRAY; +-#endif +-#endif ++ WW_MBX_CHANNEL_PAIR ChannelPair[1]; ++ } WW_MBX_TEMPDEFAULTLIST,*WW_PMBX_TEMPDEFAULTLIST; ++#endif /* WIRELESS_WAN */ ++ ++ typedef struct _BPC_FILETIME { ++ ULONG dwLowDateTime; ++ ULONG dwHighDateTime; ++ } BPC_FILETIME,*PBPC_FILETIME; ++ ++ typedef PVOID BPC_HANDLE; ++ ++#define BPC_MIN_DIMENSION 1 ++#define BPC_MAX_BUFFER_SIZE 64 ++#define BPC_MIN_BUFFER_SIZE 4 ++#define BPC_DEVICE_ANY ((BPC_HANDLE) 0xFFFFFFFF) ++ ++ typedef enum _NDIS_BPC_INDICATE_REASON { ++ bpcBufferFull = 0, ++ bpcBufferForced, ++ bpcBufferTimeOut, ++ bpcBufferDiscontinuity, ++ bpcBufferOverflow, ++ bpcBufferStatusEvent ++ } NDIS_BPC_INDICATE_REASON,*PNDIS_BPC_INDICATE_REASON; ++ ++#define BPC_STREAM_TYPE_GENERIC_MIN 0x01000000 ++#define BPC_STREAM_TYPE_RAW 0x01000000 ++#define BPC_STREAM_TYPE_MPT_128 0x01000001 ++#define BPC_STREAM_TYPE_MPT_128_CRC 0x01000002 ++#define BPC_STREAM_TYPE_IP 0x01000003 ++#define BPC_STREAM_TYPE_PROVIDER_MIN 0x02000000 ++#define BPC_STREAM_TYPE_PROVIDER_MAX 0x02ffffff ++#define BPC_STREAM_TYPE_ADAPTER_MIN 0x03000000 ++#define BPC_STREAM_TYPE_ADAPTER_MAX 0x03ffffff ++ ++ typedef struct _NDIS_BPC_ADAPTER_CAPS { ++ ULONG ulBPCMajorRev; ++ ULONG ulBPCMinorRev; ++ ULONG ulcHSDataDevices; ++ ULONG ulbpsHSDeviceMax; ++ ULONG ulcLSDataDevices; ++ ULONG ulbpsLSDeviceMax; ++ ULONG ulcTuningDevices; ++ ULONG ulcbLargestStatus; ++ ULONG ulVendorId; ++ ULONG ulAdapterId; ++ GUID guidProvider; ++ } NDIS_BPC_ADAPTER_CAPS,*PNDIS_BPC_ADAPTER_CAPS; ++ ++ typedef struct _NDIS_BPC_DEVICES { ++ ULONG ulcDevices; ++ BPC_HANDLE rgnhDevices[BPC_MIN_DIMENSION]; ++ } NDIS_BPC_DEVICES,*PNDIS_BPC_DEVICES; ++ ++#define CbDevices(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICES,rgnhDevices) + (cnt) *sizeof(BPC_HANDLE)) ++ ++ typedef struct NDIS_BPC_DEVICE_CAPS { ++ BPC_HANDLE nhDevice; ++ ULONG ulBPCCaps; ++ ULONG ulbpsMax; ++ ULONG ulcStreamTypes; ++ ULONG rgulStreamTypes[BPC_MIN_DIMENSION]; ++ } NDIS_BPC_DEVICE_CAPS,*PNDIS_BPC_DEVICE_CAPS; ++ ++#define CbDeviceCaps(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICE_CAPS,rgulStreamTypes) + (cnt)*sizeof(ULONG)) ++ ++#define BPCCapBusMasteredData 0x01 ++#define BPCCapIndependentTuner 0x02 ++#define BPCCapExternalDataBus 0x04 ++#define BPCCapLowSpeedData 0x10 ++#define BPCCapHighSpeedData 0x20 ++ ++ typedef struct NDIS_BPC_DEVICE_SETTINGS { ++ BPC_HANDLE nhDevice; ++ ULONG ulBPCCaps; ++ ULONG ulcConnections; ++ BOOLEAN fEnabled; ++ ULONG ulStreamType; ++ ULONG ulcbAddressConnection; ++ ULONG rgulAddressConnection[BPC_MIN_DIMENSION]; ++ } NDIS_BPC_DEVICE_SETTINGS,*PNDIS_BPC_DEVICE_SETTINGS; ++ ++#define CbDeviceSettings(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICE_SETTINGS,rgulAddressConnection) + (cnt)*sizeof(ULONG)) ++ ++#define BPC_CONNECT_STATE_UNCOMMITTED 0 ++#define BPC_CONNECT_STATE_QUEUED 1 ++#define BPC_CONNECT_STATE_ACTIVE 2 ++#define BPC_CONNECT_STATE_DISCONNECTING 3 ++ ++ typedef struct NDIS_BPC_CONNECTION_STATUS { ++ BPC_HANDLE nhConnection; ++ BPC_HANDLE nhDevice; ++ ULONG ulConnectPriority; ++ ULONG ulDisconnectPriority; ++ ULONG ulbpsAverage; ++ ULONG ulbpsBurst; ++ ULONG ulState; ++ BOOLEAN fEnabled; ++ } NDIS_BPC_CONNECTION_STATUS,*PNDIS_BPC_CONNECTION_STATUS; ++ ++ typedef struct NDIS_BPC_ADDRESS_COMPARE { ++ BOOLEAN fEqual; ++ ULONG ulcbFirstOffset; ++ ULONG ulcbFirstLength; ++ ULONG ulcbSecondOffset; ++ ULONG ulcbSecondLength; ++ } NDIS_BPC_ADDRESS_COMPARE,*PNDIS_BPC_ADDRESS_COMPARE; ++ ++#define BPC_GUIDE_GENERIC_MIN 0x01000000 ++#define BPC_GUIDE_GENERIC_MAX 0x01ffffff ++#define BPC_GUIDE_PROVIDER_MIN 0x02000000 ++#define BPC_GUIDE_PROVIDER_MAX 0x02ffffff ++#define BPC_GUIDE_ADAPTER_MIN 0x03000000 ++#define BPC_GUIDE_ADAPTER_MAX 0x03ffffff ++ ++ typedef struct NDIS_BPC_PROGRAM_GUIDE { ++ ULONG ulGuideType; ++ BPC_FILETIME ftLastUpdate; ++ ULONG ulChangeNumber; ++ ULONG ulcbGuideSize; ++ ULONG rgulGuideData[BPC_MIN_DIMENSION]; ++ } NDIS_BPC_PROGRAM_GUIDE,*PNDIS_BPC_PROGRAM_GUIDE; ++ ++ typedef enum _NDIS_BPC_ERROR { ++ bpcErrorUnknownFailure = 0xc0ff0000, ++ bpcErrorHardwareFailure, ++ bpcErrorProviderFailure, ++ bpcErrorNoDataDevice, ++ bpcErrorNoTuningDevice, ++ bpcErrorDeviceNotCapable, ++ bpcErrorConflictingDevice, ++ bpcErrorConflictingCapability, ++ bpcErrorNoBufferMemory, ++ bpcErrorNoResources, ++ bpcErrorAdapterClosing, ++ bpcErrorConnectionClosing, ++ bpcErrorTooComplex, ++ bpcErrorProviderNotSupported, ++ bpcErrorUnknownProviderStructure, ++ bpcErrorAddressNotSupported, ++ bpcErrorInvalidAddress, ++ bpcErrorUnknownAdapterStructure ++ } NDIS_BPC_ERROR,*PNDIS_BPC_ERROR; ++ ++ typedef struct NDIS_BPC_LAST_ERROR { ++ ULONG ulErrorContext; ++ ULONG ulBPCError; ++ ULONG ulAdapterError; ++ ULONG ulAdapterContext; ++ } NDIS_BPC_LAST_ERROR,*PNDIS_BPC_LAST_ERROR; ++ ++ typedef struct NDIS_BPC_POOL { ++ BPC_HANDLE nhConnection; ++ ULONG ulcbPoolSize; ++ ULONG ulcbMaxBufferSize; ++ ULONG ulcbBufferReserved; ++ } NDIS_BPC_POOL,*PNDIS_BPC_POOL; ++ ++ typedef struct NDIS_BPC_CONNECT { ++ BPC_HANDLE nhConnection; ++ BPC_HANDLE nhDevice; ++ ULONG ulConnectPriority; ++ ULONG ulDisconnectPriority; ++ BOOLEAN fImmediate; ++ ULONG ulcbAddress; ++ GUID guidProvider; ++ ULONG rgulAddress[BPC_MIN_DIMENSION]; ++ } NDIS_BPC_CONNECT,*PNDIS_BPC_CONNECT; ++ ++#define CbConnect(cnt) (FIELD_OFFSET(NDIS_BPC_CONNECT,rgulAddress) + (cnt)*sizeof(ULONG)) ++ ++ typedef struct NDIS_BPC_COMMIT { ++ ULONG ulcConnections; ++ BPC_HANDLE rgnhConnections[BPC_MIN_DIMENSION]; ++ } NDIS_BPC_COMMIT,*PNDIS_BPC_COMMIT; ++ ++ typedef struct NDIS_BPC_DISCONNECT { ++ BPC_HANDLE nhConnection; ++ } NDIS_BPC_DISCONNECT,*PNDIS_BPC_DISCONNECT; ++ ++ typedef struct NDIS_BPC_CONNECTION_ENABLE { ++ BPC_HANDLE nhConnection; ++ BOOLEAN fEnabled; ++ } NDIS_BPC_CONNECTION_ENABLE,*PNDIS_BPC_CONNECTION_ENABLE; ++ ++ typedef struct NDIS_BPC_POOL_RETURN { ++ BPC_HANDLE nhConnection; ++ } NDIS_BPC_POOL_RETURN,*PNDIS_BPC_POOL_RETURN; ++ ++ typedef struct NDIS_BPC_FORCE_RECEIVE { ++ BPC_HANDLE nhConnection; ++ ULONG ulReasonCode; ++ } NDIS_BPC_FORCE_RECEIVE,*PNDIS_BPC_FORCE_RECEIVE; ++ ++ typedef struct NDIS_BPC_MEDIA_SPECIFIC_INFORMATION { ++ BPC_HANDLE nhConnection; ++ ULONG ulBPCStreamType; ++ ULONG ulReasonCode; ++ PVOID pvMiniportReserved1; ++ ULONG ulMiniportReserved2; ++ } NDIS_BPC_MEDIA_SPECIFIC_INFORMATION,*PNDIS_BPC_MEDIA_SPECIFIC_INFORMATION; ++ ++#define BPC_CATEGORY_BPC 0x01000000 ++#define BPC_CATEGORY_PROVIDER 0x02000000 ++#define BPC_CATEGORY_ADAPTER 0x03000000 ++ ++#define BPC_STATUS_CONNECTED 0x00000001 ++#define BPC_STATUS_QUEUED 0x00000002 ++#define BPC_STATUS_ACTIVE 0x00000003 ++#define BPC_STATUS_DISCONNECTED 0x00000004 ++#define BPC_STATUS_OVERFLOW 0x00000005 ++#define BPC_STATUS_DATA_STOP 0x00000006 ++#define BPC_STATUS_DATA_START 0x00000007 ++#define BPC_STATUS_DATA_ERROR 0x00000008 ++ ++ typedef struct NDIS_BPC_STATUS { ++ ULONG ulStatusCategory; ++ ULONG ulStatusType; ++ ULONG ulcbStatus; ++ ULONG rgulStatus; ++ } NDIS_BPC_STATUS,*PNDIS_BPC_STATUS; ++ ++ typedef struct NDIS_BPC_STATUS_CONNECTION { ++ BPC_HANDLE nhConnection; ++ BPC_HANDLE nhDevice; ++ } NDIS_BPC_STATUS_CONNECTED,*PNDIS_BPC_STATUS_CONNECTED; + + #ifdef __cplusplus + } + #endif + +-#endif +-#endif ++#define NDIS_MINIPORT_BUS_MASTER 0x00000001 ++#define NDIS_MINIPORT_WDM_DRIVER 0x00000002 ++#define NDIS_MINIPORT_SG_LIST 0x00000004 ++#define NDIS_MINIPORT_SUPPORTS_MEDIA_QUERY 0x00000008 ++#define NDIS_MINIPORT_INDICATES_PACKETS 0x00000010 ++#define NDIS_MINIPORT_IGNORE_PACKET_QUEUE 0x00000020 ++#define NDIS_MINIPORT_IGNORE_REQUEST_QUEUE 0x00000040 ++#define NDIS_MINIPORT_IGNORE_TOKEN_RING_ERRORS 0x00000080 ++#define NDIS_MINIPORT_INTERMEDIATE_DRIVER 0x00000100 ++#define NDIS_MINIPORT_IS_NDIS_5 0x00000200 ++#define NDIS_MINIPORT_IS_CO 0x00000400 ++#define NDIS_MINIPORT_DESERIALIZE 0x00000800 ++#define NDIS_MINIPORT_REQUIRES_MEDIA_POLLING 0x00001000 ++#define NDIS_MINIPORT_SUPPORTS_MEDIA_SENSE 0x00002000 ++#define NDIS_MINIPORT_NETBOOT_CARD 0x00004000 ++#define NDIS_MINIPORT_PM_SUPPORTED 0x00008000 ++#define NDIS_MINIPORT_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00010000 ++#define NDIS_MINIPORT_USES_SAFE_BUFFER_APIS 0x00020000 ++#define NDIS_MINIPORT_HIDDEN 0x00040000 ++#define NDIS_MINIPORT_SWENUM 0x00080000 ++#define NDIS_MINIPORT_SURPRISE_REMOVE_OK 0x00100000 ++#define NDIS_MINIPORT_NO_HALT_ON_SUSPEND 0x00200000 ++#define NDIS_MINIPORT_HARDWARE_DEVICE 0x00400000 ++#define NDIS_MINIPORT_SUPPORTS_CANCEL_SEND_PACKETS 0x00800000 ++#define NDIS_MINIPORT_64BITS_DMA 0x01000000 ++#define NDIS_MINIPORT_USE_NEW_BITS 0x02000000 ++#define NDIS_MINIPORT_EXCLUSIVE_INTERRUPT 0x04000000 ++#define NDIS_MINIPORT_SENDS_PACKET_ARRAY 0x08000000 ++#define NDIS_MINIPORT_FILTER_IM 0x10000000 ++#define NDIS_MINIPORT_SHORT_PACKETS_ARE_PADDED 0x20000000 ++ ++#endif /* _NTDDNDIS_ */ ++ +-- +2.2.1 + diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index c2ce8cb92c..387f875fb1 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -15,8 +15,10 @@ makedepends=('git') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' '!libtool' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=('SKIP') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" + "0001-Revert-Update-netioa-API.patch") +md5sums=('SKIP' + 'f0089f43c513bc4f0f0b4f7f02003b91') pkgver() { cd "$srcdir/$_realname" @@ -25,6 +27,7 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} + git am "${srcdir}"/0001-Revert-Update-netioa-API.patch } build() { diff --git a/mingw-w64-nodejs/0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch b/mingw-w64-nodejs/0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch new file mode 100644 index 0000000000..57b27c3583 --- /dev/null +++ b/mingw-w64-nodejs/0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch @@ -0,0 +1,11 @@ +--- uv/config-mingw.mk.orig 2015-01-12 13:49:48.669668300 +0000 ++++ uv/config-mingw.mk 2015-01-12 13:53:37.714253300 +0000 +@@ -24,7 +24,7 @@ + AR = $(PREFIX)ar + E=.exe + +-CFLAGS=$(CPPFLAGS) -g --std=gnu89 -D_WIN32_WINNT=0x0600 ++CFLAGS=$(CPPFLAGS) -g --std=gnu89 -D_WIN32_WINNT=0x0501 + LDFLAGS=-lm + + WIN_SRCS=$(wildcard $(SRCDIR)/src/win/*.c) From 4cb74be6596cf6dc7725564b586f571fce8ed05f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 12 Jan 2015 18:43:05 +0000 Subject: [PATCH 0318/2060] mingw-w64-headers-git: Fix compilation errors since 'Update netioa-API' --- ...ation-errors-since-Update-netioa-API.patch | 94 + .../0001-Revert-Update-netioa-API.patch | 6786 ----------------- mingw-w64-headers-git/PKGBUILD | 6 +- 3 files changed, 97 insertions(+), 6789 deletions(-) create mode 100644 mingw-w64-headers-git/0001-Fix-compilation-errors-since-Update-netioa-API.patch delete mode 100644 mingw-w64-headers-git/0001-Revert-Update-netioa-API.patch diff --git a/mingw-w64-headers-git/0001-Fix-compilation-errors-since-Update-netioa-API.patch b/mingw-w64-headers-git/0001-Fix-compilation-errors-since-Update-netioa-API.patch new file mode 100644 index 0000000000..997ad8d607 --- /dev/null +++ b/mingw-w64-headers-git/0001-Fix-compilation-errors-since-Update-netioa-API.patch @@ -0,0 +1,94 @@ +From 2de65adb7dc6c7b18a33a777a1f9068cfee395d7 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 12 Jan 2015 18:15:39 +0000 +Subject: [PATCH] Fix compilation errors since 'Update netioa-API' + +iphlpapi.h needs to include +{Get,Set}PerTcp{,6}ConnectionEStats is only + for #if NTDDI_VERSION >= 0x06000000 +IF_COUNTED_STRING was not defined in ifdef.h +NET_IF_OPER_STATUS was not defined in ifdef.h +--- + mingw-w64-headers/include/ifdef.h | 24 ++++++++++++++++++++++++ + mingw-w64-headers/include/iphlpapi.h | 4 ++-- + mingw-w64-headers/include/iprtrmib.h | 2 ++ + 3 files changed, 28 insertions(+), 2 deletions(-) + +diff --git a/mingw-w64-headers/include/ifdef.h b/mingw-w64-headers/include/ifdef.h +index 8c5b028..0d78a00 100644 +--- a/mingw-w64-headers/include/ifdef.h ++++ b/mingw-w64-headers/include/ifdef.h +@@ -33,6 +33,16 @@ typedef enum _IF_OPER_STATUS { + IfOperStatusLowerLayerDown + } IF_OPER_STATUS; + ++typedef enum _NET_IF_OPER_STATUS { ++ NET_IF_OPER_STATUS_UP = 1, ++ NET_IF_OPER_STATUS_DOWN, ++ NET_IF_OPER_STATUS_TESTING, ++ NET_IF_OPER_STATUS_UNKNOWN, ++ NET_IF_OPER_STATUS_DORMANT, ++ NET_IF_OPER_STATUS_NOT_PRESENT, ++ NET_IF_OPER_STATUS_LOWER_LAYER_DOWN ++} NET_IF_OPER_STATUS, *PNET_IF_OPER_STATUS; ++ + typedef enum _NET_IF_ADMIN_STATUS { + NET_IF_ADMIN_STATUS_UP = 1, + NET_IF_ADMIN_STATUS_DOWN, +@@ -94,6 +104,20 @@ typedef union _NET_LUID { + + typedef NET_LUID IF_LUID, *PIF_LUID; + ++typedef struct _IF_COUNTED_STRING_LH { ++ USHORT Length; ++ WCHAR String[IF_MAX_STRING_SIZE + 1]; ++} IF_COUNTED_STRING_LH, *PIF_COUNTED_STRING_LH; ++typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING; ++typedef IF_COUNTED_STRING *PIF_COUNTED_STRING; ++ ++typedef struct _IF_PHYSICAL_ADDRESS_LH { ++ USHORT Length; ++ UCHAR Address[IF_MAX_PHYS_ADDRESS_LENGTH]; ++} IF_PHYSICAL_ADDRESS_LH, *PIF_PHYSICAL_ADDRESS_LH; ++typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS; ++typedef IF_PHYSICAL_ADDRESS *PIF_PHYSICAL_ADDRESS; ++ + #ifdef __cplusplus + } + #endif +diff --git a/mingw-w64-headers/include/iphlpapi.h b/mingw-w64-headers/include/iphlpapi.h +index a237c8a..03aed33 100644 +--- a/mingw-w64-headers/include/iphlpapi.h ++++ b/mingw-w64-headers/include/iphlpapi.h +@@ -43,13 +43,13 @@ extern "C" { + #if NTDDI_VERSION >= 0x06000000 + ULONG WINAPI GetTcp6Table (PMIB_TCP6TABLE TcpTable, PULONG SizePointer, WINBOOL Order); + ULONG WINAPI GetTcp6Table2 (PMIB_TCP6TABLE2 TcpTable, PULONG SizePointer, WINBOOL Order); +-#endif + ULONG WINAPI GetPerTcpConnectionEStats (PMIB_TCPROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, PUCHAR Ros, ULONG RosVersion, ULONG RosSize, PUCHAR Rod, ULONG RodVersion, ULONG RodSize); + ULONG WINAPI SetPerTcpConnectionEStats (PMIB_TCPROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, ULONG Offset); + ULONG WINAPI GetPerTcp6ConnectionEStats (PMIB_TCP6ROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, PUCHAR Ros, ULONG RosVersion, ULONG RosSize, PUCHAR Rod, ULONG RodVersion, ULONG RodSize); + ULONG WINAPI SetPerTcp6ConnectionEStats (PMIB_TCP6ROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, ULONG Offset); +- DWORD WINAPI GetOwnerModuleFromTcp6Entry (PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); + ULONG WINAPI GetUdp6Table (PMIB_UDP6TABLE Udp6Table, PULONG SizePointer, WINBOOL Order); ++#endif ++ DWORD WINAPI GetOwnerModuleFromTcp6Entry (PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); + DWORD WINAPI GetOwnerModuleFromUdp6Entry (PMIB_UDP6ROW_OWNER_MODULE pUdpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); + #endif + DWORD GetOwnerModuleFromPidAndInfo (ULONG ulPid, ULONGLONG *pInfo, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); +diff --git a/mingw-w64-headers/include/iprtrmib.h b/mingw-w64-headers/include/iprtrmib.h +index f5f826b..2e814fe 100644 +--- a/mingw-w64-headers/include/iprtrmib.h ++++ b/mingw-w64-headers/include/iprtrmib.h +@@ -359,6 +359,8 @@ typedef struct _MIB_TCP6ROW_OWNER_MODULE { + We simply typedef it to int. */ + typedef int MIB_TCP_STATE; + ++#include ++ + typedef struct _MIB_TCPTABLE { + DWORD dwNumEntries; + MIB_TCPROW table[ANY_SIZE]; +-- +2.2.1 + diff --git a/mingw-w64-headers-git/0001-Revert-Update-netioa-API.patch b/mingw-w64-headers-git/0001-Revert-Update-netioa-API.patch deleted file mode 100644 index 15c75666b0..0000000000 --- a/mingw-w64-headers-git/0001-Revert-Update-netioa-API.patch +++ /dev/null @@ -1,6786 +0,0 @@ -From a39ff0194164566a287b54f3f7f6b32bf4db4be7 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Mon, 12 Jan 2015 17:31:46 +0000 -Subject: [PATCH] Revert "Update netioa-API" - -This reverts commit ea95d55e3387353e453d6ae8fc5cb8f7503947c2. ---- - mingw-w64-headers/include/iphlpapi.h | 370 +-- - mingw-w64-headers/include/netioapi.h | 949 ++++--- - mingw-w64-headers/include/ntddndis.h | 4787 ++++++++-------------------------- - 3 files changed, 1949 insertions(+), 4157 deletions(-) - -diff --git a/mingw-w64-headers/include/iphlpapi.h b/mingw-w64-headers/include/iphlpapi.h -index a237c8a..62a4a48 100644 ---- a/mingw-w64-headers/include/iphlpapi.h -+++ b/mingw-w64-headers/include/iphlpapi.h -@@ -1,15 +1,11 @@ - /** -+ * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. -- * No warranty is given; refer to the file DISCLAIMER within this package. -+ * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -- - #ifndef __IPHLPAPI_H__ - #define __IPHLPAPI_H__ - --#include -- --#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) -- - #ifdef __cplusplus - extern "C" { - #endif -@@ -17,162 +13,232 @@ extern "C" { - #include - #include - #include -+#include -+#include -+#include - #include - -- DWORD WINAPI GetNumberOfInterfaces (PDWORD pdwNumIf); -- DWORD WINAPI GetIfEntry (PMIB_IFROW pIfRow); -- DWORD WINAPI GetIfTable (PMIB_IFTABLE pIfTable, PULONG pdwSize, WINBOOL bOrder); -- DWORD WINAPI GetIpAddrTable (PMIB_IPADDRTABLE pIpAddrTable, PULONG pdwSize, WINBOOL bOrder); -- ULONG WINAPI GetIpNetTable (PMIB_IPNETTABLE IpNetTable, PULONG SizePointer, WINBOOL Order); -- DWORD WINAPI GetIpForwardTable (PMIB_IPFORWARDTABLE pIpForwardTable, PULONG pdwSize, WINBOOL bOrder); -- ULONG WINAPI GetTcpTable (PMIB_TCPTABLE TcpTable, PULONG SizePointer, WINBOOL Order); -- DWORD WINAPI GetExtendedTcpTable (PVOID pTcpTable, PDWORD pdwSize, WINBOOL bOrder, ULONG ulAf, TCP_TABLE_CLASS TableClass, ULONG Reserved); -- DWORD WINAPI GetOwnerModuleFromTcpEntry (PMIB_TCPROW_OWNER_MODULE pTcpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); -- ULONG WINAPI GetUdpTable (PMIB_UDPTABLE UdpTable, PULONG SizePointer, WINBOOL Order); -- DWORD WINAPI GetExtendedUdpTable (PVOID pUdpTable, PDWORD pdwSize, WINBOOL bOrder, ULONG ulAf, UDP_TABLE_CLASS TableClass, ULONG Reserved); -- DWORD WINAPI GetOwnerModuleFromUdpEntry (PMIB_UDPROW_OWNER_MODULE pUdpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); --#if NTDDI_VERSION < 0x06000000 -- DWORD AllocateAndGetTcpExTableFromStack (PVOID *ppTcpTable, WINBOOL bOrder, HANDLE hHeap, DWORD dwFlags, DWORD dwFamily); -- DWORD AllocateAndGetUdpExTableFromStack (PVOID *ppUdpTable, WINBOOL bOrder, HANDLE hHeap, DWORD dwFlags, DWORD dwFamily); --#else -- ULONG WINAPI GetTcpTable2 (PMIB_TCPTABLE2 TcpTable, PULONG SizePointer, WINBOOL Order); -+ DWORD WINAPI GetNumberOfInterfaces(PDWORD pdwNumIf); -+ DWORD WINAPI GetIfEntry(PMIB_IFROW pIfRow); -+ DWORD WINAPI GetIfTable(PMIB_IFTABLE pIfTable,PULONG pdwSize,WINBOOL bOrder); -+ DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE pIpAddrTable,PULONG pdwSize,WINBOOL bOrder); -+ DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE pIpNetTable,PULONG pdwSize,WINBOOL bOrder); -+ DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE pIpForwardTable,PULONG pdwSize,WINBOOL bOrder); -+ DWORD WINAPI GetTcpTable(PMIB_TCPTABLE pTcpTable,PDWORD pdwSize,WINBOOL bOrder); -+ DWORD WINAPI GetUdpTable(PMIB_UDPTABLE pUdpTable,PDWORD pdwSize,WINBOOL bOrder); -+ DWORD WINAPI GetIpStatistics(PMIB_IPSTATS pStats); -+ DWORD WINAPI GetIpStatisticsEx(PMIB_IPSTATS pStats,DWORD dwFamily); -+ DWORD WINAPI GetIcmpStatistics(PMIB_ICMP pStats); -+ DWORD WINAPI GetIcmpStatisticsEx(PMIB_ICMP_EX pStats,DWORD dwFamily); -+ DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS pStats); -+ DWORD WINAPI GetTcpStatisticsEx(PMIB_TCPSTATS pStats,DWORD dwFamily); -+ DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS pStats); -+ DWORD WINAPI GetUdpStatisticsEx(PMIB_UDPSTATS pStats,DWORD dwFamily); -+ DWORD WINAPI SetIfEntry(PMIB_IFROW pIfRow); -+ DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW pRoute); -+ DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW pRoute); -+ DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW pRoute); -+ DWORD WINAPI SetIpStatistics(PMIB_IPSTATS pIpStats); -+ DWORD WINAPI SetIpTTL(UINT nTTL); -+ DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW pArpEntry); -+ DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW pArpEntry); -+ DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW pArpEntry); -+ DWORD WINAPI FlushIpNetTable(DWORD dwIfIndex); -+ DWORD WINAPI CreateProxyArpEntry(DWORD dwAddress,DWORD dwMask,DWORD dwIfIndex); -+ DWORD WINAPI DeleteProxyArpEntry(DWORD dwAddress,DWORD dwMask,DWORD dwIfIndex); -+ DWORD WINAPI SetTcpEntry(PMIB_TCPROW pTcpRow); -+ DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable,PULONG dwOutBufLen); -+ DWORD WINAPI GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo,PULONG dwOutBufLen); -+ -+#ifndef NhpAllocateAndGetInterfaceInfoFromStack_DEFINED -+#define NhpAllocateAndGetInterfaceInfoFromStack_DEFINED -+ DWORD WINAPI NhpAllocateAndGetInterfaceInfoFromStack(IP_INTERFACE_NAME_INFO **ppTable,PDWORD pdwCount,WINBOOL bOrder,HANDLE hHeap,DWORD dwFlags); - #endif - --#ifdef _WS2IPDEF_ -- --#if NTDDI_VERSION >= 0x06000000 -- ULONG WINAPI GetTcp6Table (PMIB_TCP6TABLE TcpTable, PULONG SizePointer, WINBOOL Order); -- ULONG WINAPI GetTcp6Table2 (PMIB_TCP6TABLE2 TcpTable, PULONG SizePointer, WINBOOL Order); --#endif -- ULONG WINAPI GetPerTcpConnectionEStats (PMIB_TCPROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, PUCHAR Ros, ULONG RosVersion, ULONG RosSize, PUCHAR Rod, ULONG RodVersion, ULONG RodSize); -- ULONG WINAPI SetPerTcpConnectionEStats (PMIB_TCPROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, ULONG Offset); -- ULONG WINAPI GetPerTcp6ConnectionEStats (PMIB_TCP6ROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, PUCHAR Ros, ULONG RosVersion, ULONG RosSize, PUCHAR Rod, ULONG RodVersion, ULONG RodSize); -- ULONG WINAPI SetPerTcp6ConnectionEStats (PMIB_TCP6ROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, ULONG Offset); -- DWORD WINAPI GetOwnerModuleFromTcp6Entry (PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); -- ULONG WINAPI GetUdp6Table (PMIB_UDP6TABLE Udp6Table, PULONG SizePointer, WINBOOL Order); -- DWORD WINAPI GetOwnerModuleFromUdp6Entry (PMIB_UDP6ROW_OWNER_MODULE pUdpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); --#endif -- DWORD GetOwnerModuleFromPidAndInfo (ULONG ulPid, ULONGLONG *pInfo, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); -- ULONG WINAPI GetIpStatistics (PMIB_IPSTATS Statistics); -- ULONG WINAPI GetIcmpStatistics (PMIB_ICMP Statistics); -- ULONG WINAPI GetTcpStatistics (PMIB_TCPSTATS Statistics); -- ULONG WINAPI GetUdpStatistics (PMIB_UDPSTATS Stats); -- ULONG WINAPI GetIpStatisticsEx (PMIB_IPSTATS Statistics, ULONG Family); -- ULONG WINAPI SetIpStatisticsEx (PMIB_IPSTATS Statistics, ULONG Family); -- ULONG WINAPI GetIcmpStatisticsEx (PMIB_ICMP_EX Statistics, ULONG Family); -- ULONG WINAPI GetTcpStatisticsEx (PMIB_TCPSTATS Statistics, ULONG Family); -- ULONG WINAPI GetUdpStatisticsEx (PMIB_UDPSTATS Statistics, ULONG Family); -- DWORD WINAPI SetIfEntry (PMIB_IFROW pIfRow); -- DWORD WINAPI CreateIpForwardEntry (PMIB_IPFORWARDROW pRoute); -- DWORD WINAPI SetIpForwardEntry (PMIB_IPFORWARDROW pRoute); -- DWORD WINAPI DeleteIpForwardEntry (PMIB_IPFORWARDROW pRoute); -- DWORD WINAPI SetIpStatistics (PMIB_IPSTATS pIpStats); -- DWORD WINAPI SetIpTTL (UINT nTTL); -- DWORD WINAPI CreateIpNetEntry (PMIB_IPNETROW pArpEntry); -- DWORD WINAPI SetIpNetEntry (PMIB_IPNETROW pArpEntry); -- DWORD WINAPI DeleteIpNetEntry (PMIB_IPNETROW pArpEntry); -- DWORD WINAPI FlushIpNetTable (DWORD dwIfIndex); -- DWORD WINAPI CreateProxyArpEntry (DWORD dwAddress, DWORD dwMask, DWORD dwIfIndex); -- DWORD WINAPI DeleteProxyArpEntry (DWORD dwAddress, DWORD dwMask, DWORD dwIfIndex); -- DWORD WINAPI SetTcpEntry (PMIB_TCPROW pTcpRow); -- DWORD WINAPI GetInterfaceInfo (PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen); -- DWORD WINAPI GetUniDirectionalAdapterInfo (PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo, PULONG dwOutBufLen); --#ifndef NHPALLOCATEANDGETINTERFACEINFOFROMSTACK_DEFINED --#define NHPALLOCATEANDGETINTERFACEINFOFROMSTACK_DEFINED -- DWORD WINAPI NhpAllocateAndGetInterfaceInfoFromStack (IP_INTERFACE_NAME_INFO **ppTable, PDWORD pdwCount, WINBOOL bOrder, HANDLE hHeap, DWORD dwFlags); --#endif -- DWORD WINAPI GetBestInterface (IPAddr dwDestAddr, PDWORD pdwBestIfIndex); -- DWORD WINAPI GetBestInterfaceEx (struct sockaddr *pDestAddr, PDWORD pdwBestIfIndex); -- DWORD WINAPI GetBestRoute (DWORD dwDestAddr, DWORD dwSourceAddr, PMIB_IPFORWARDROW pBestRoute); -- DWORD WINAPI NotifyAddrChange (PHANDLE Handle, LPOVERLAPPED overlapped); -- DWORD WINAPI NotifyRouteChange (PHANDLE Handle, LPOVERLAPPED overlapped); -- WINBOOL WINAPI CancelIPChangeNotify (LPOVERLAPPED notifyOverlapped); -- DWORD WINAPI GetAdapterIndex (LPWSTR AdapterName, PULONG IfIndex); -- DWORD WINAPI AddIPAddress (IPAddr Address, IPMask IpMask, DWORD IfIndex, PULONG NTEContext, PULONG NTEInstance); -- DWORD WINAPI DeleteIPAddress (ULONG NTEContext); -- DWORD WINAPI GetNetworkParams (PFIXED_INFO pFixedInfo, PULONG pOutBufLen); -- ULONG WINAPI GetAdaptersInfo (PIP_ADAPTER_INFO AdapterInfo, PULONG SizePointer); -- PIP_ADAPTER_ORDER_MAP WINAPI GetAdapterOrderMap (VOID); -+ DWORD WINAPI GetBestInterface(IPAddr dwDestAddr,PDWORD pdwBestIfIndex); -+ DWORD WINAPI GetBestInterfaceEx(struct sockaddr *pDestAddr,PDWORD pdwBestIfIndex); -+ DWORD WINAPI GetBestRoute(DWORD dwDestAddr,DWORD dwSourceAddr,PMIB_IPFORWARDROW pBestRoute); -+ DWORD WINAPI GetExtendedTcpTable (PVOID pTcpTable,PDWORD pdwSize,BOOL bOrder,ULONG ulAf,TCP_TABLE_CLASS TableClass,ULONG Reserved); -+ DWORD WINAPI NotifyAddrChange(PHANDLE Handle,LPOVERLAPPED overlapped); -+ DWORD WINAPI NotifyRouteChange(PHANDLE Handle,LPOVERLAPPED overlapped); -+ WINBOOL WINAPI CancelIPChangeNotify(LPOVERLAPPED notifyOverlapped); -+ DWORD WINAPI GetAdapterIndex(LPWSTR AdapterName,PULONG IfIndex); -+ DWORD WINAPI AddIPAddress(IPAddr Address,IPMask IpMask,DWORD IfIndex,PULONG NTEContext,PULONG NTEInstance); -+ DWORD WINAPI DeleteIPAddress(ULONG NTEContext); -+ DWORD WINAPI GetNetworkParams(PFIXED_INFO pFixedInfo,PULONG pOutBufLen); -+ DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo,PULONG pOutBufLen); -+ PIP_ADAPTER_ORDER_MAP WINAPI GetAdapterOrderMap(VOID); - - #ifdef _WINSOCK2API_ -- ULONG WINAPI GetAdaptersAddresses (ULONG Family, ULONG Flags, PVOID Reserved, PIP_ADAPTER_ADDRESSES AdapterAddresses, PULONG SizePointer); -+ DWORD WINAPI GetAdaptersAddresses(ULONG Family,DWORD Flags,PVOID Reserved,PIP_ADAPTER_ADDRESSES pAdapterAddresses,PULONG pOutBufLen); - #endif - -- DWORD WINAPI GetPerAdapterInfo (ULONG IfIndex, PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen); -- DWORD WINAPI IpReleaseAddress (PIP_ADAPTER_INDEX_MAP AdapterInfo); -- DWORD WINAPI IpRenewAddress (PIP_ADAPTER_INDEX_MAP AdapterInfo); -- DWORD WINAPI SendARP (IPAddr DestIP, IPAddr SrcIP, PVOID pMacAddr, PULONG PhyAddrLen); -- WINBOOL WINAPI GetRTTAndHopCount (IPAddr DestIpAddress, PULONG HopCount, ULONG MaxHops, PULONG RTT); -- DWORD WINAPI GetFriendlyIfIndex (DWORD IfIndex); -- DWORD WINAPI EnableRouter (HANDLE *pHandle, OVERLAPPED *pOverlapped); -- DWORD WINAPI UnenableRouter (OVERLAPPED *pOverlapped, LPDWORD lpdwEnableCount); -- DWORD WINAPI DisableMediaSense (HANDLE *pHandle, OVERLAPPED *pOverLapped); -- DWORD WINAPI RestoreMediaSense (OVERLAPPED *pOverlapped, LPDWORD lpdwEnableCount); -- --#if NTDDI_VERSION >= 0x06000000 --#define NET_STRING_IPV4_ADDRESS 0x00000001 --#define NET_STRING_IPV4_SERVICE 0x00000002 --#define NET_STRING_IPV4_NETWORK 0x00000004 --#define NET_STRING_IPV6_ADDRESS 0x00000008 --#define NET_STRING_IPV6_ADDRESS_NO_SCOPE 0x00000010 --#define NET_STRING_IPV6_SERVICE 0x00000020 --#define NET_STRING_IPV6_SERVICE_NO_SCOPE 0x00000040 --#define NET_STRING_IPV6_NETWORK 0x00000080 --#define NET_STRING_NAMED_ADDRESS 0x00000100 --#define NET_STRING_NAMED_SERVICE 0x00000200 -- --#define NET_STRING_IP_ADDRESS (NET_STRING_IPV4_ADDRESS | NET_STRING_IPV6_ADDRESS) --#define NET_STRING_IP_ADDRESS_NO_SCOPE (NET_STRING_IPV4_ADDRESS | NET_STRING_IPV6_ADDRESS_NO_SCOPE) --#define NET_STRING_IP_SERVICE (NET_STRING_IPV4_SERVICE | NET_STRING_IPV6_SERVICE) --#define NET_STRING_IP_SERVICE_NO_SCOPE (NET_STRING_IPV4_SERVICE | NET_STRING_IPV6_SERVICE_NO_SCOPE) --#define NET_STRING_IP_NETWORK (NET_STRING_IPV4_NETWORK | NET_STRING_IPV6_NETWORK) --#define NET_STRING_ANY_ADDRESS (NET_STRING_NAMED_ADDRESS | NET_STRING_IP_ADDRESS) --#define NET_STRING_ANY_ADDRESS_NO_SCOPE (NET_STRING_NAMED_ADDRESS | NET_STRING_IP_ADDRESS_NO_SCOPE) --#define NET_STRING_ANY_SERVICE (NET_STRING_NAMED_SERVICE | NET_STRING_IP_SERVICE) --#define NET_STRING_ANY_SERVICE_NO_SCOPE (NET_STRING_NAMED_SERVICE | NET_STRING_IP_SERVICE_NO_SCOPE) -- -- typedef enum NET_ADDRESS_FORMAT_ { -- NET_ADDRESS_FORMAT_UNSPECIFIED = 0, -- NET_ADDRESS_DNS_NAME, -- NET_ADDRESS_IPV4, -- NET_ADDRESS_IPV6 -- } NET_ADDRESS_FORMAT; -- --#if defined (_WS2DEF_) && defined (_WS2IPDEF_) && defined (_WINDNS_INCLUDED_) -- typedef struct NET_ADDRESS_INFO_ { -- NET_ADDRESS_FORMAT Format; -- __C89_NAMELESS union { -- struct { -- WCHAR Address[DNS_MAX_NAME_BUFFER_LENGTH]; -- WCHAR Port[6]; -- } NamedAddress; -- SOCKADDR_IN Ipv4Address; -- SOCKADDR_IN6 Ipv6Address; -- SOCKADDR IpAddress; -- }; -- } NET_ADDRESS_INFO,*PNET_ADDRESS_INFO; -- -- DWORD WINAPI ParseNetworkString (CONST WCHAR *NetworkString, DWORD Types, PNET_ADDRESS_INFO AddressInfo, USHORT *PortNumber, BYTE *PrefixLength); --#endif -- DWORD WINAPI GetIpErrorString (IP_STATUS ErrorCode, PWSTR Buffer, PDWORD Size); --#ifdef _WS2DEF_ -- ULONG WINAPI ResolveNeighbor (SOCKADDR *NetworkAddress, PVOID PhysicalAddress, PULONG PhysicalAddressLength); --#endif -- ULONG WINAPI CreatePersistentTcpPortReservation (USHORT StartPort, USHORT NumberOfPorts, PULONG64 Token); -- ULONG WINAPI CreatePersistentUdpPortReservation (USHORT StartPort, USHORT NumberOfPorts, PULONG64 Token); -- ULONG WINAPI DeletePersistentTcpPortReservation (USHORT StartPort, USHORT NumberOfPorts); -- ULONG WINAPI DeletePersistentUdpPortReservation (USHORT StartPort, USHORT NumberOfPorts); -- ULONG WINAPI LookupPersistentTcpPortReservation (USHORT StartPort, USHORT NumberOfPorts, PULONG64 Token); -- ULONG WINAPI LookupPersistentUdpPortReservation (USHORT StartPort, USHORT NumberOfPorts, PULONG64 Token); --#endif -- --#if NTDDI_VERSION >= 0x06000000 --#include --#endif -+ DWORD WINAPI GetPerAdapterInfo(ULONG IfIndex,PIP_PER_ADAPTER_INFO pPerAdapterInfo,PULONG pOutBufLen); -+ DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo); -+ DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo); -+ DWORD WINAPI SendARP(IPAddr DestIP,IPAddr SrcIP,PULONG pMacAddr,PULONG PhyAddrLen); -+ WINBOOL WINAPI GetRTTAndHopCount(IPAddr DestIpAddress,PULONG HopCount,ULONG MaxHops,PULONG RTT); -+ DWORD WINAPI GetFriendlyIfIndex(DWORD IfIndex); -+ DWORD WINAPI EnableRouter(HANDLE *pHandle,OVERLAPPED *pOverlapped); -+ DWORD WINAPI UnenableRouter(OVERLAPPED *pOverlapped,LPDWORD lpdwEnableCount); -+ DWORD WINAPI DisableMediaSense(HANDLE *pHandle,OVERLAPPED *pOverLapped); -+ DWORD WINAPI RestoreMediaSense(OVERLAPPED *pOverlapped,LPDWORD lpdwEnableCount); -+ DWORD WINAPI GetIpErrorString(IP_STATUS ErrorCode,PWCHAR Buffer,PDWORD Size); -+ -+DWORD WINAPI GetExtendedUdpTable( -+ PVOID pUdpTable, -+ PDWORD pdwSize, -+ WINBOOL bOrder, -+ ULONG ulAf, -+ UDP_TABLE_CLASS TableClass, -+ ULONG Reserved -+); -+ -+DWORD WINAPI GetOwnerModuleFromTcp6Entry( -+ PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, -+ TCPIP_OWNER_MODULE_INFO_CLASS Class, -+ PVOID Buffer, -+ PDWORD pdwSize -+); -+ -+DWORD WINAPI GetOwnerModuleFromTcpEntry( -+ PMIB_TCPROW_OWNER_MODULE pTcpEntry, -+ TCPIP_OWNER_MODULE_INFO_CLASS Class, -+ PVOID Buffer, -+ PDWORD pdwSize -+); -+ -+DWORD WINAPI GetOwnerModuleFromUdp6Entry( -+ PMIB_UDP6ROW_OWNER_MODULE pUdpEntry, -+ TCPIP_OWNER_MODULE_INFO_CLASS Class, -+ PVOID Buffer, -+ PDWORD pdwSize -+); -+ -+DWORD WINAPI GetOwnerModuleFromUdpEntry( -+ PMIB_UDPROW_OWNER_MODULE pUdpEntry, -+ TCPIP_OWNER_MODULE_INFO_CLASS Class, -+ PVOID Buffer, -+ PDWORD pdwSize -+); -+ -+#if (_WIN32_WINNT == 0x0502) /* Only with Win2003 SP1 and SP2 */ -+ WINBOOL WINAPI CancelSecurityHealthChangeNotify(LPOVERLAPPED notifyOverlapped); -+#endif /*(_WIN32_WINNT == 0x0502)*/ -+ -+#if (_WIN32_WINNT >= 0x0600) -+#include -+ -+typedef enum _NET_ADDRESS_FORMAT { -+ NET_ADDRESS_FORMAT_UNSPECIFIED = 0, -+ NET_ADDRESS_DNS_NAME, -+ NET_ADDRESS_IPV4, -+ NET_ADDRESS_IPV6 -+} NET_ADDRESS_FORMAT; -+ -+typedef struct _NET_ADDRESS_INFO { -+ NET_ADDRESS_FORMAT Format; -+ __C89_NAMELESS union { -+ struct { -+ WCHAR Address[DNS_MAX_NAME_BUFFER_LENGTH]; -+ WCHAR Port[6]; -+ } NamedAddress; -+ SOCKADDR_IN Ipv4Address; -+ SOCKADDR_IN6 Ipv6Address; -+ SOCKADDR IpAddress; -+ }; -+} NET_ADDRESS_INFO, *PNET_ADDRESS_INFO; -+ -+ULONG WINAPI GetPerTcp6ConnectionEStats( -+ PMIB_TCP6ROW Row, -+ TCP_ESTATS_TYPE EstatsType, -+ PUCHAR Rw, -+ ULONG RwVersion, -+ ULONG RwSize, -+ PUCHAR Ros, -+ ULONG RosVersion, -+ ULONG RosSize, -+ PUCHAR Rod, -+ ULONG RodVersion, -+ ULONG RodSize -+); -+ -+ULONG WINAPI SetPerTcp6ConnectionEStats( -+ PMIB_TCP6ROW Row, -+ TCP_ESTATS_TYPE EstatsType, -+ PUCHAR Rw, -+ ULONG RwVersion, -+ ULONG RwSize, -+ ULONG Offset -+); -+ -+ULONG WINAPI SetPerTcpConnectionEStats( -+ PMIB_TCPROW Row, -+ TCP_ESTATS_TYPE EstatsType, -+ PUCHAR Rw, -+ ULONG RwVersion, -+ ULONG RwSize, -+ ULONG Offset -+); -+ -+ULONG WINAPI GetTcp6Table( -+ PMIB_TCP6TABLE TcpTable, -+ PULONG SizePointer, -+ WINBOOL Order -+); -+ -+ULONG WINAPI GetPerTcpConnectionEStats( -+ PMIB_TCPROW Row, -+ TCP_ESTATS_TYPE EstatsType, -+ PUCHAR Rw, -+ ULONG RwVersion, -+ ULONG RwSize, -+ PUCHAR Ros, -+ ULONG RosVersion, -+ ULONG RosSize, -+ PUCHAR Rod, -+ ULONG RodVersion, -+ ULONG RodSize -+); -+ -+ULONG WINAPI GetTcp6Table2( -+ PMIB_TCP6TABLE2 TcpTable, -+ PULONG SizePointer, -+ WINBOOL Order -+); -+ -+ULONG WINAPI GetTcpTable2( -+ PMIB_TCPTABLE2 TcpTable, -+ PULONG SizePointer, -+ WINBOOL Order -+); -+ -+ULONG WINAPI GetUdp6Table( -+ PMIB_UDP6TABLE Udp6Table, -+ PULONG SizePointer, -+ WINBOOL Order -+); -+ -+DWORD WINAPI NotifySecurityHealthChange( -+ PHANDLE pHandle, -+ LPOVERLAPPED pOverLapped, -+ PULONG SecurityHealthFlags -+); -+ -+ULONG WINAPI ResolveNeighbor( -+ SOCKADDR *NetworkAddress, -+ PVOID PhysicalAddress, -+ PULONG PhysicalAddressLength -+); -+ -+DWORD WINAPI SetIpStatisticsEx( -+ PMIB_IPSTATS pIpStats, -+ ULONG Family -+); -+ -+#endif /*(_WIN32_WINNT >= 0x0600)*/ - - #ifdef __cplusplus - } - #endif -- --#endif - #endif -diff --git a/mingw-w64-headers/include/netioapi.h b/mingw-w64-headers/include/netioapi.h -index e36bcf2..164f972 100644 ---- a/mingw-w64-headers/include/netioapi.h -+++ b/mingw-w64-headers/include/netioapi.h -@@ -1,390 +1,609 @@ - /** -+ * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. -- * No warranty is given; refer to the file DISCLAIMER within this pack -+ * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -+#ifndef _INC_NETIOAPI -+#define _INC_NETIOAPI - --#ifndef _NETIOAPI_H_ --#define _NETIOAPI_H_ -- --#include -- --#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) -- --#ifdef __cplusplus --extern "C" { -+#include -+#ifndef __CYGWIN__ -+#include - #endif -+#include -+#include -+#include - - #ifndef ANY_SIZE - #define ANY_SIZE 1 - #endif - -+#ifdef __cplusplus -+extern "C" { -+#endif -+ - #ifdef __IPHLPAPI_H__ - #define NETIO_STATUS DWORD --#define NETIO_SUCCESS(x) ((x) == NO_ERROR) - #define NETIOAPI_API_ WINAPI - #else --#include --#ifndef __CYGWIN__ --#include --#endif --#include --#include --#include -- - #define NETIO_STATUS NTSTATUS --#define NETIO_SUCCESS(x) NT_SUCCESS (x) - #define NETIOAPI_API_ NTAPI - #endif - --#define _NETIOAPI_SUCCESS_ - #define NETIOAPI_API NETIO_STATUS NETIOAPI_API_ -- --#define IF_NAMESIZE NDIS_IF_MAX_STRING_SIZE -- -- typedef enum _MIB_NOTIFICATION_TYPE { -- MibParameterNotification, -- MibAddInstance, -- MibDeleteInstance, -- MibInitialNotification -- } MIB_NOTIFICATION_TYPE,*PMIB_NOTIFICATION_TYPE; -- --#ifdef _WS2IPDEF_ --#include -- --#define MIB_INVALID_TEREDO_PORT_NUMBER 0 -- -- typedef enum _MIB_IF_TABLE_LEVEL { -- MibIfTableNormal, -- MibIfTableRaw -- } MIB_IF_TABLE_LEVEL, *PMIB_IF_TABLE_LEVEL; -- -- typedef struct _MIB_IF_ROW2 { -- NET_LUID InterfaceLuid; -- NET_IFINDEX InterfaceIndex; -- GUID InterfaceGuid; -- WCHAR Alias[IF_MAX_STRING_SIZE + 1]; -- WCHAR Description[IF_MAX_STRING_SIZE + 1]; -- ULONG PhysicalAddressLength; -- UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; -- UCHAR PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; -- ULONG Mtu; -- IFTYPE Type; -- TUNNEL_TYPE TunnelType; -- NDIS_MEDIUM MediaType; -- NDIS_PHYSICAL_MEDIUM PhysicalMediumType; -- NET_IF_ACCESS_TYPE AccessType; -- NET_IF_DIRECTION_TYPE DirectionType; -- struct { -- BOOLEAN HardwareInterface : 1; -- BOOLEAN FilterInterface : 1; -- BOOLEAN ConnectorPresent : 1; -- BOOLEAN NotAuthenticated : 1; -- BOOLEAN NotMediaConnected : 1; -- BOOLEAN Paused : 1; -- BOOLEAN LowPower : 1; -- BOOLEAN EndPointInterface : 1; -- } InterfaceAndOperStatusFlags; -- IF_OPER_STATUS OperStatus; -- NET_IF_ADMIN_STATUS AdminStatus; -- NET_IF_MEDIA_CONNECT_STATE MediaConnectState; -- NET_IF_NETWORK_GUID NetworkGuid; -- NET_IF_CONNECTION_TYPE ConnectionType; -- ULONG64 TransmitLinkSpeed; -- ULONG64 ReceiveLinkSpeed; -- ULONG64 InOctets; -- ULONG64 InUcastPkts; -- ULONG64 InNUcastPkts; -- ULONG64 InDiscards; -- ULONG64 InErrors; -- ULONG64 InUnknownProtos; -- ULONG64 InUcastOctets; -- ULONG64 InMulticastOctets; -- ULONG64 InBroadcastOctets; -- ULONG64 OutOctets; -- ULONG64 OutUcastPkts; -- ULONG64 OutNUcastPkts; -- ULONG64 OutDiscards; -- ULONG64 OutErrors; -- ULONG64 OutUcastOctets; -- ULONG64 OutMulticastOctets; -- ULONG64 OutBroadcastOctets; -- ULONG64 OutQLen; -- } MIB_IF_ROW2,*PMIB_IF_ROW2; -- -- typedef struct _MIB_IF_TABLE2 { -- ULONG NumEntries; -- MIB_IF_ROW2 Table[ANY_SIZE]; -- } MIB_IF_TABLE2, *PMIB_IF_TABLE2; -- -- typedef struct _MIB_IPINTERFACE_ROW { -- ADDRESS_FAMILY Family; -- NET_LUID InterfaceLuid; -- NET_IFINDEX InterfaceIndex; -- ULONG MaxReassemblySize; -- ULONG64 InterfaceIdentifier; -- ULONG MinRouterAdvertisementInterval; -- ULONG MaxRouterAdvertisementInterval; -- BOOLEAN AdvertisingEnabled; -- BOOLEAN ForwardingEnabled; -- BOOLEAN WeakHostSend; -- BOOLEAN WeakHostReceive; -- BOOLEAN UseAutomaticMetric; -- BOOLEAN UseNeighborUnreachabilityDetection; -- BOOLEAN ManagedAddressConfigurationSupported; -- BOOLEAN OtherStatefulConfigurationSupported; -- BOOLEAN AdvertiseDefaultRoute; -- NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior; -- ULONG DadTransmits; -- ULONG BaseReachableTime; -- ULONG RetransmitTime; -- ULONG PathMtuDiscoveryTimeout; -- NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior; -- ULONG LinkLocalAddressTimeout; -- ULONG ZoneIndices[ScopeLevelCount]; -- ULONG SitePrefixLength; -- ULONG Metric; -- ULONG NlMtu; -- BOOLEAN Connected; -- BOOLEAN SupportsWakeUpPatterns; -- BOOLEAN SupportsNeighborDiscovery; -- BOOLEAN SupportsRouterDiscovery; -- ULONG ReachableTime; -- NL_INTERFACE_OFFLOAD_ROD TransmitOffload; -- NL_INTERFACE_OFFLOAD_ROD ReceiveOffload; -- BOOLEAN DisableDefaultRoutes; -- } MIB_IPINTERFACE_ROW,*PMIB_IPINTERFACE_ROW; -- -- typedef struct _MIB_IPINTERFACE_TABLE { -- ULONG NumEntries; -- MIB_IPINTERFACE_ROW Table[ANY_SIZE]; -- } MIB_IPINTERFACE_TABLE,*PMIB_IPINTERFACE_TABLE; -- -- typedef struct _MIB_IFSTACK_ROW { -- NET_IFINDEX HigherLayerInterfaceIndex; -- NET_IFINDEX LowerLayerInterfaceIndex; -- } MIB_IFSTACK_ROW,*PMIB_IFSTACK_ROW; -- -- typedef struct _MIB_INVERTEDIFSTACK_ROW { -- NET_IFINDEX LowerLayerInterfaceIndex; -- NET_IFINDEX HigherLayerInterfaceIndex; -- } MIB_INVERTEDIFSTACK_ROW,*PMIB_INVERTEDIFSTACK_ROW; -- -- typedef struct _MIB_IFSTACK_TABLE { -- ULONG NumEntries; -- MIB_IFSTACK_ROW Table[ANY_SIZE]; -- } MIB_IFSTACK_TABLE,*PMIB_IFSTACK_TABLE; -- -- typedef struct _MIB_INVERTEDIFSTACK_TABLE { -- ULONG NumEntries; -- MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE]; -- } MIB_INVERTEDIFSTACK_TABLE,*PMIB_INVERTEDIFSTACK_TABLE; -- -- typedef struct _MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES { -- NL_BANDWIDTH_INFORMATION InboundBandwidthInformation; -- NL_BANDWIDTH_INFORMATION OutboundBandwidthInformation; -- } MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES, *PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES; -- -- typedef struct _MIB_UNICASTIPADDRESS_ROW { -- SOCKADDR_INET Address; -- NET_LUID InterfaceLuid; -- NET_IFINDEX InterfaceIndex; -- NL_PREFIX_ORIGIN PrefixOrigin; -- NL_SUFFIX_ORIGIN SuffixOrigin; -- ULONG ValidLifetime; -- ULONG PreferredLifetime; -- UINT8 OnLinkPrefixLength; -- BOOLEAN SkipAsSource; -- NL_DAD_STATE DadState; -- SCOPE_ID ScopeId; -- LARGE_INTEGER CreationTimeStamp; -- } MIB_UNICASTIPADDRESS_ROW,*PMIB_UNICASTIPADDRESS_ROW; -- -- typedef struct _MIB_UNICASTIPADDRESS_TABLE { -- ULONG NumEntries; -- MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE]; -- } MIB_UNICASTIPADDRESS_TABLE,*PMIB_UNICASTIPADDRESS_TABLE; -- -- typedef struct _MIB_ANYCASTIPADDRESS_ROW { -- SOCKADDR_INET Address; -- NET_LUID InterfaceLuid; -- NET_IFINDEX InterfaceIndex; -- SCOPE_ID ScopeId; -- } MIB_ANYCASTIPADDRESS_ROW,*PMIB_ANYCASTIPADDRESS_ROW; -- -- typedef struct _MIB_ANYCASTIPADDRESS_TABLE { -- ULONG NumEntries; -- MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE]; -- } MIB_ANYCASTIPADDRESS_TABLE,*PMIB_ANYCASTIPADDRESS_TABLE; -- -- typedef struct _MIB_MULTICASTIPADDRESS_ROW { -- SOCKADDR_INET Address; -- NET_IFINDEX InterfaceIndex; -- NET_LUID InterfaceLuid; -- SCOPE_ID ScopeId; -- } MIB_MULTICASTIPADDRESS_ROW,*PMIB_MULTICASTIPADDRESS_ROW; -- -- typedef struct _MIB_MULTICASTIPADDRESS_TABLE { -- ULONG NumEntries; -- MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE]; -- } MIB_MULTICASTIPADDRESS_TABLE,*PMIB_MULTICASTIPADDRESS_TABLE; -- -- typedef struct _IP_ADDRESS_PREFIX { -- SOCKADDR_INET Prefix; -- UINT8 PrefixLength; -- } IP_ADDRESS_PREFIX,*PIP_ADDRESS_PREFIX; -- -- typedef struct _MIB_IPFORWARD_ROW2 { -- NET_LUID InterfaceLuid; -- NET_IFINDEX InterfaceIndex; -- IP_ADDRESS_PREFIX DestinationPrefix; -- SOCKADDR_INET NextHop; -- UCHAR SitePrefixLength; -- ULONG ValidLifetime; -- ULONG PreferredLifetime; -- ULONG Metric; -- NL_ROUTE_PROTOCOL Protocol; -- BOOLEAN Loopback; -- BOOLEAN AutoconfigureAddress; -- BOOLEAN Publish; -- BOOLEAN Immortal; -- ULONG Age; -- NL_ROUTE_ORIGIN Origin; -- } MIB_IPFORWARD_ROW2,*PMIB_IPFORWARD_ROW2; -- -- typedef struct _MIB_IPFORWARD_TABLE2 { -- ULONG NumEntries; -- MIB_IPFORWARD_ROW2 Table[ANY_SIZE]; -- } MIB_IPFORWARD_TABLE2,*PMIB_IPFORWARD_TABLE2; -- -- typedef struct _MIB_IPPATH_ROW { -- SOCKADDR_INET Source; -- SOCKADDR_INET Destination; -- NET_LUID InterfaceLuid; -- NET_IFINDEX InterfaceIndex; -- SOCKADDR_INET CurrentNextHop; -- ULONG PathMtu; -- ULONG RttMean; -- ULONG RttDeviation; -- __C89_NAMELESS union { -- ULONG LastReachable; -- ULONG LastUnreachable; -- }; -- BOOLEAN IsReachable; -- ULONG64 LinkTransmitSpeed; -- ULONG64 LinkReceiveSpeed; -- } MIB_IPPATH_ROW,*PMIB_IPPATH_ROW; -- -- typedef struct _MIB_IPPATH_TABLE { -- ULONG NumEntries; -- MIB_IPPATH_ROW Table[ANY_SIZE]; -- } MIB_IPPATH_TABLE,*PMIB_IPPATH_TABLE; -- -- typedef struct _MIB_IPNET_ROW2 { -- SOCKADDR_INET Address; -- NET_IFINDEX InterfaceIndex; -- NET_LUID InterfaceLuid; -- UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; -- ULONG PhysicalAddressLength; -- NL_NEIGHBOR_STATE State; -- __C89_NAMELESS union { -- __C89_NAMELESS struct { -- BOOLEAN IsRouter : 1; -- BOOLEAN IsUnreachable : 1; -- }; -- UCHAR Flags; -+#define ConvertInterfaceLuidToName __MINGW_NAME_AW(ConvertInterfaceLuidToName) -+#define ConvertInterfaceNameToLuid __MINGW_NAME_AW(ConvertInterfaceNameToLuid) -+ -+typedef enum _MIB_NOTIFICATION_TYPE { -+ MibParameterNotification = 0, -+ MibAddInstance = 1, -+ MibDeleteInstance = 2, -+ MibInitialNotification = 3 -+} MIB_NOTIFICATION_TYPE, *PMIB_NOTIFICATION_TYPE; -+ -+typedef struct _MIB_ANYCASTIPADDRESS_ROW { -+ SOCKADDR_INET Address; -+ NET_LUID InterfaceLuid; -+ NET_IFINDEX InterfaceIndex; -+ SCOPE_ID ScopeId; -+} MIB_ANYCASTIPADDRESS_ROW, *PMIB_ANYCASTIPADDRESS_ROW; -+ -+typedef struct _MIB_ANYCASTIPADDRESS_TABLE { -+ ULONG NumEntries; -+ MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE]; -+} MIB_ANYCASTIPADDRESS_TABLE, *PMIB_ANYCASTIPADDRESS_TABLE; -+ -+typedef struct _IP_ADDRESS_PREFIX { -+ SOCKADDR_INET Prefix; -+ UINT8 PrefixLength; -+} IP_ADDRESS_PREFIX, *PIP_ADDRESS_PREFIX; -+ -+typedef struct _MIB_IPFORWARD_ROW2 { -+ NET_LUID InterfaceLuid; -+ NET_IFINDEX InterfaceIndex; -+ IP_ADDRESS_PREFIX DestinationPrefix; -+ SOCKADDR_INET NextHop; -+ UCHAR SitePrefixLength; -+ ULONG ValidLifetime; -+ ULONG PreferredLifetime; -+ ULONG Metric; -+ NL_ROUTE_PROTOCOL Protocol; -+ BOOLEAN Loopback; -+ BOOLEAN AutoconfigureAddress; -+ BOOLEAN Publish; -+ BOOLEAN Immortal; -+ ULONG Age; -+ NL_ROUTE_ORIGIN Origin; -+} MIB_IPFORWARD_ROW2, *PMIB_IPFORWARD_ROW2; -+ -+typedef struct _MIB_IPNET_ROW2 { -+ SOCKADDR_INET Address; -+ NET_IFINDEX InterfaceIndex; -+ NET_LUID InterfaceLuid; -+ UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; -+ ULONG PhysicalAddressLength; -+ NL_NEIGHBOR_STATE State; -+ __C89_NAMELESS union { -+ __C89_NAMELESS struct { -+ BOOLEAN IsRouter :1; -+ BOOLEAN IsUnreachable :1; - }; -- union { -- ULONG LastReachable; -- ULONG LastUnreachable; -- } ReachabilityTime; -- } MIB_IPNET_ROW2, *PMIB_IPNET_ROW2; -- -- typedef struct _MIB_IPNET_TABLE2 { -- ULONG NumEntries; -- MIB_IPNET_ROW2 Table[ANY_SIZE]; -- } MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2; -- -- typedef VOID (NETIOAPI_API_ *PIPINTERFACE_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPINTERFACE_ROW Row, MIB_NOTIFICATION_TYPE NotificationType); -- typedef VOID (NETIOAPI_API_ *PUNICAST_IPADDRESS_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_ROW Row, MIB_NOTIFICATION_TYPE NotificationType); -- typedef VOID (NETIOAPI_API_ *PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_TABLE AddressTable); -- -- typedef VOID (NETIOAPI_API_ *PTEREDO_PORT_CHANGE_CALLBACK) (PVOID CallerContext, USHORT Port, MIB_NOTIFICATION_TYPE NotificationType); -- typedef VOID (NETIOAPI_API_ *PIPFORWARD_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPFORWARD_ROW2 Row, MIB_NOTIFICATION_TYPE NotificationType); -- -- NETIO_STATUS NETIOAPI_API_ GetIfEntry2 (PMIB_IF_ROW2 Row); -- NETIO_STATUS NETIOAPI_API_ GetIfTable2 (PMIB_IF_TABLE2 *Table); -- NETIO_STATUS NETIOAPI_API_ GetIfTable2Ex (MIB_IF_TABLE_LEVEL Level, PMIB_IF_TABLE2 *Table); -- NETIO_STATUS NETIOAPI_API_ GetIfStackTable (PMIB_IFSTACK_TABLE *Table); -- NETIO_STATUS NETIOAPI_API_ GetInvertedIfStackTable (PMIB_INVERTEDIFSTACK_TABLE *Table); -- NETIO_STATUS NETIOAPI_API_ GetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row); -- NETIO_STATUS NETIOAPI_API_ GetIpInterfaceTable (ADDRESS_FAMILY Family, PMIB_IPINTERFACE_TABLE *Table); -- VOID NETIOAPI_API_ InitializeIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row); -- NETIO_STATUS NETIOAPI_API_ NotifyIpInterfaceChange (ADDRESS_FAMILY Family, PIPINTERFACE_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); -- NETIO_STATUS NETIOAPI_API_ SetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row); -- NETIO_STATUS NETIOAPI_API_ GetIpNetworkConnectionBandwidthEstimates (NET_IFINDEX InterfaceIndex, ADDRESS_FAMILY AddressFamily, PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES BandwidthEstimates); -- NETIO_STATUS NETIOAPI_API_ CreateUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row); -- NETIO_STATUS NETIOAPI_API_ DeleteUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row); -- NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row); -- NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table); -- VOID NETIOAPI_API_ InitializeUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row); -- NETIO_STATUS NETIOAPI_API_ NotifyUnicastIpAddressChange (ADDRESS_FAMILY Family, PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); -- NETIO_STATUS NETIOAPI_API_ CreateAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row); -- NETIO_STATUS NETIOAPI_API_ DeleteAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row); -- NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressEntry (PMIB_ANYCASTIPADDRESS_ROW Row); -- NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressTable (ADDRESS_FAMILY Family, PMIB_ANYCASTIPADDRESS_TABLE *Table); -- NETIO_STATUS NETIOAPI_API_ NotifyStableUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table, PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, PVOID CallerContext, HANDLE *NotificationHandle); -- NETIO_STATUS NETIOAPI_API_ SetUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row); -- NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressEntry (PMIB_MULTICASTIPADDRESS_ROW Row); -- NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressTable (ADDRESS_FAMILY Family, PMIB_MULTICASTIPADDRESS_TABLE *Table); -- NETIO_STATUS NETIOAPI_API_ CreateIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row); -- NETIO_STATUS NETIOAPI_API_ DeleteIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row); -- NETIO_STATUS NETIOAPI_API_ GetBestRoute2 (NET_LUID *InterfaceLuid, NET_IFINDEX InterfaceIndex, CONST SOCKADDR_INET *SourceAddress, CONST SOCKADDR_INET *DestinationAddress, ULONG AddressSortOptions, PMIB_IPFORWARD_ROW2 BestRoute, SOCKADDR_INET *BestSourceAddress); -- NETIO_STATUS NETIOAPI_API_ GetIpForwardEntry2 (PMIB_IPFORWARD_ROW2 Row); -- NETIO_STATUS NETIOAPI_API_ GetIpForwardTable2 (ADDRESS_FAMILY Family, PMIB_IPFORWARD_TABLE2 *Table); -- VOID NETIOAPI_API_ InitializeIpForwardEntry (PMIB_IPFORWARD_ROW2 Row); -- NETIO_STATUS NETIOAPI_API_ NotifyRouteChange2 (ADDRESS_FAMILY AddressFamily, PIPFORWARD_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); -- NETIO_STATUS NETIOAPI_API_ SetIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Route); -- NETIO_STATUS NETIOAPI_API_ FlushIpPathTable (ADDRESS_FAMILY Family); -- NETIO_STATUS NETIOAPI_API_ GetIpPathEntry (PMIB_IPPATH_ROW Row); -- NETIO_STATUS NETIOAPI_API_ GetIpPathTable (ADDRESS_FAMILY Family, PMIB_IPPATH_TABLE *Table); -- NETIO_STATUS NETIOAPI_API_ CreateIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row); -- NETIO_STATUS NETIOAPI_API_ DeleteIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row); -- NETIO_STATUS NETIOAPI_API_ FlushIpNetTable2 (ADDRESS_FAMILY Family, NET_IFINDEX InterfaceIndex); -- NETIO_STATUS NETIOAPI_API_ GetIpNetEntry2 (PMIB_IPNET_ROW2 Row); -- NETIO_STATUS NETIOAPI_API_ GetIpNetTable2 (ADDRESS_FAMILY Family, PMIB_IPNET_TABLE2 *Table); -- NETIO_STATUS NETIOAPI_API_ ResolveIpNetEntry2 (PMIB_IPNET_ROW2 Row, CONST SOCKADDR_INET *SourceAddress); -- NETIO_STATUS NETIOAPI_API_ SetIpNetEntry2 (PMIB_IPNET_ROW2 Row); -- NETIO_STATUS NETIOAPI_API_ NotifyTeredoPortChange (PTEREDO_PORT_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); -- NETIO_STATUS NETIOAPI_API_ GetTeredoPort (USHORT *Port); -- NETIO_STATUS NETIOAPI_API_ CancelMibChangeNotify2 (HANDLE NotificationHandle); -- VOID NETIOAPI_API_ FreeMibTable (PVOID Memory); -- NETIO_STATUS NETIOAPI_API_ CreateSortedAddressPairs (const PSOCKADDR_IN6 SourceAddressList, ULONG SourceAddressCount, const PSOCKADDR_IN6 DestinationAddressList, ULONG DestinationAddressCount, ULONG AddressSortOptions, PSOCKADDR_IN6_PAIR *SortedAddressPairList, ULONG *SortedAddressPairCount); --#endif -- -- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidA (CONST CHAR *InterfaceName, NET_LUID *InterfaceLuid); -- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidW (CONST WCHAR *InterfaceName, NET_LUID *InterfaceLuid); -- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameA (CONST NET_LUID *InterfaceLuid, PSTR InterfaceName, SIZE_T Length); -- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameW (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceName, SIZE_T Length); -- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToIndex (CONST NET_LUID *InterfaceLuid, PNET_IFINDEX InterfaceIndex); -- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceIndexToLuid (NET_IFINDEX InterfaceIndex, PNET_LUID InterfaceLuid); -- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToAlias (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceAlias, SIZE_T Length); -- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceAliasToLuid (CONST WCHAR *InterfaceAlias, PNET_LUID InterfaceLuid); -- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToGuid (CONST NET_LUID *InterfaceLuid, GUID *InterfaceGuid); -- NETIO_STATUS NETIOAPI_API_ ConvertInterfaceGuidToLuid (CONST GUID *InterfaceGuid, PNET_LUID InterfaceLuid); -- NET_IFINDEX NETIOAPI_API_ if_nametoindex (PCSTR InterfaceName); -- PCHAR NETIOAPI_API_ if_indextoname (NET_IFINDEX InterfaceIndex, PCHAR InterfaceName); -- NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetCurrentThreadCompartmentId (VOID); -- NETIO_STATUS NETIOAPI_API_ SetCurrentThreadCompartmentId (NET_IF_COMPARTMENT_ID CompartmentId); -- NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetSessionCompartmentId (ULONG SessionId); -- NETIO_STATUS NETIOAPI_API_ SetSessionCompartmentId (ULONG SessionId, NET_IF_COMPARTMENT_ID CompartmentId); -- NETIO_STATUS NETIOAPI_API_ GetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, PNET_IF_COMPARTMENT_ID CompartmentId, PULONG SiteId, PWCHAR NetworkName, ULONG Length); -- NETIO_STATUS NETIOAPI_API_ SetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, NET_IF_COMPARTMENT_ID CompartmentId, CONST WCHAR *NetworkName); -- NETIO_STATUS NETIOAPI_API_ ConvertLengthToIpv4Mask (ULONG MaskLength, PULONG Mask); -- NETIO_STATUS NETIOAPI_API_ ConvertIpv4MaskToLength (ULONG Mask, PUINT8 MaskLength); -+ UCHAR Flags; -+ }; -+ union { -+ ULONG LastReachable; -+ ULONG LastUnreachable; -+ } ReachabilityTime; -+} MIB_IPNET_ROW2, *PMIB_IPNET_ROW2; -+ -+typedef struct _MIB_IPNET_TABLE2 { -+ ULONG NumEntries; -+ MIB_IPNET_ROW2 Table[ANY_SIZE]; -+} MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2; -+ -+typedef struct _MIB_IPFORWARD_TABLE2 { -+ ULONG NumEntries; -+ MIB_IPFORWARD_ROW2 Table[ANY_SIZE]; -+} MIB_IPFORWARD_TABLE2, *PMIB_IPFORWARD_TABLE2; -+ -+typedef struct _MIB_IPINTERFACE_ROW { -+ ADDRESS_FAMILY Family; -+ NET_LUID InterfaceLuid; -+ NET_IFINDEX InterfaceIndex; -+ ULONG MaxReassemblySize; -+ ULONG64 InterfaceIdentifier; -+ ULONG MinRouterAdvertisementInterval; -+ ULONG MaxRouterAdvertisementInterval; -+ BOOLEAN AdvertisingEnabled; -+ BOOLEAN ForwardingEnabled; -+ BOOLEAN WeakHostSend; -+ BOOLEAN WeakHostReceive; -+ BOOLEAN UseAutomaticMetric; -+ BOOLEAN UseNeighborUnreachabilityDetection; -+ BOOLEAN ManagedAddressConfigurationSupported; -+ BOOLEAN OtherStatefulConfigurationSupported; -+ BOOLEAN AdvertiseDefaultRoute; -+ NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior; -+ ULONG DadTransmits; -+ ULONG BaseReachableTime; -+ ULONG RetransmitTime; -+ ULONG PathMtuDiscoveryTimeout; -+ NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior; -+ ULONG LinkLocalAddressTimeout; -+ ULONG ZoneIndices[ScopeLevelCount]; -+ ULONG SitePrefixLength; -+ ULONG Metric; -+ ULONG NlMtu; -+ BOOLEAN Connected; -+ BOOLEAN SupportsWakeUpPatterns; -+ BOOLEAN SupportsNeighborDiscovery; -+ BOOLEAN SupportsRouterDiscovery; -+ ULONG ReachableTime; -+ NL_INTERFACE_OFFLOAD_ROD TransmitOffload; -+ NL_INTERFACE_OFFLOAD_ROD ReceiveOffload; -+ BOOLEAN DisableDefaultRoutes; -+} MIB_IPINTERFACE_ROW, *PMIB_IPINTERFACE_ROW; -+ -+typedef struct _MIB_IPINTERFACE_TABLE { -+ ULONG NumEntries; -+ MIB_IPINTERFACE_ROW Table[ANY_SIZE]; -+} MIB_IPINTERFACE_TABLE, *PMIB_IPINTERFACE_TABLE; -+ -+typedef struct _MIB_UNICASTIPADDRESS_ROW { -+ SOCKADDR_INET Address; -+ NET_LUID InterfaceLuid; -+ NET_IFINDEX InterfaceIndex; -+ NL_PREFIX_ORIGIN PrefixOrigin; -+ NL_SUFFIX_ORIGIN SuffixOrigin; -+ ULONG ValidLifetime; -+ ULONG PreferredLifetime; -+ UINT8 OnLinkPrefixLength; -+ BOOLEAN SkipAsSource; -+ NL_DAD_STATE DadState; -+ SCOPE_ID ScopeId; -+ LARGE_INTEGER CreationTimeStamp; -+} MIB_UNICASTIPADDRESS_ROW, *PMIB_UNICASTIPADDRESS_ROW; -+ -+typedef struct _MIB_UNICASTIPADDRESS_TABLE { -+ ULONG NumEntries; -+ MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE]; -+} MIB_UNICASTIPADDRESS_TABLE, *PMIB_UNICASTIPADDRESS_TABLE; -+ -+typedef struct _MIB_IF_ROW2 { -+ NET_LUID InterfaceLuid; -+ NET_IFINDEX InterfaceIndex; -+ GUID InterfaceGuid; -+ WCHAR Alias[IF_MAX_STRING_SIZE + 1]; -+ WCHAR Description[IF_MAX_STRING_SIZE + 1]; -+ ULONG PhysicalAddressLength; -+ UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; -+ UCHAR PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; -+ ULONG Mtu; -+ IFTYPE Type; -+ TUNNEL_TYPE TunnelType; -+ NDIS_MEDIUM MediaType; -+ NDIS_PHYSICAL_MEDIUM PhysicalMediumType; -+ NET_IF_ACCESS_TYPE AccessType; -+ NET_IF_DIRECTION_TYPE DirectionType; -+ struct { -+ BOOLEAN HardwareInterface :1; -+ BOOLEAN FilterInterface :1; -+ BOOLEAN ConnectorPresent :1; -+ BOOLEAN NotAuthenticated :1; -+ BOOLEAN NotMediaConnected :1; -+ BOOLEAN Paused :1; -+ BOOLEAN LowPower :1; -+ BOOLEAN EndPointInterface :1; -+ } InterfaceAndOperStatusFlags; -+ IF_OPER_STATUS OperStatus; -+ NET_IF_ADMIN_STATUS AdminStatus; -+ NET_IF_MEDIA_CONNECT_STATE MediaConnectState; -+ NET_IF_NETWORK_GUID NetworkGuid; -+ NET_IF_CONNECTION_TYPE ConnectionType; -+ ULONG64 TransmitLinkSpeed; -+ ULONG64 ReceiveLinkSpeed; -+ ULONG64 InOctets; -+ ULONG64 InUcastPkts; -+ ULONG64 InNUcastPkts; -+ ULONG64 InDiscards; -+ ULONG64 InErrors; -+ ULONG64 InUnknownProtos; -+ ULONG64 InUcastOctets; -+ ULONG64 InMulticastOctets; -+ ULONG64 InBroadcastOctets; -+ ULONG64 OutOctets; -+ ULONG64 OutUcastPkts; -+ ULONG64 OutNUcastPkts; -+ ULONG64 OutDiscards; -+ ULONG64 OutErrors; -+ ULONG64 OutUcastOctets; -+ ULONG64 OutMulticastOctets; -+ ULONG64 OutBroadcastOctets; -+ ULONG64 OutQLen; -+} MIB_IF_ROW2, *PMIB_IF_ROW2; -+ -+typedef struct _MIB_IF_TABLE2 { -+ ULONG NumEntries; -+ MIB_IF_ROW2 Table[ANY_SIZE]; -+} MIB_IF_TABLE2, *PMIB_IF_TABLE2; -+ -+typedef struct _MIB_IFSTACK_ROW { -+ NET_IFINDEX HigherLayerInterfaceIndex; -+ NET_IFINDEX LowerLayerInterfaceIndex; -+} MIB_IFSTACK_ROW, *PMIB_IFSTACK_ROW; -+ -+typedef struct _MIB_IFSTACK_TABLE { -+ ULONG NumEntries; -+ MIB_IFSTACK_ROW Table[ANY_SIZE]; -+} MIB_IFSTACK_TABLE, *PMIB_IFSTACK_TABLE; -+ -+typedef struct _MIB_INVERTEDIFSTACK_ROW { -+ NET_IFINDEX LowerLayerInterfaceIndex; -+ NET_IFINDEX HigherLayerInterfaceIndex; -+} MIB_INVERTEDIFSTACK_ROW, *PMIB_INVERTEDIFSTACK_ROW; -+ -+typedef struct _MIB_INVERTEDIFSTACK_TABLE { -+ ULONG NumEntries; -+ MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE]; -+} MIB_INVERTEDIFSTACK_TABLE, *PMIB_INVERTEDIFSTACK_TABLE; -+ -+typedef struct _MIB_IPPATH_ROW { -+ SOCKADDR_INET Source; -+ SOCKADDR_INET Destination; -+ NET_LUID InterfaceLuid; -+ NET_IFINDEX InterfaceIndex; -+ SOCKADDR_INET CurrentNextHop; -+ ULONG PathMtu; -+ ULONG RttMean; -+ ULONG RttDeviation; -+ __C89_NAMELESS union { -+ ULONG LastReachable; -+ ULONG LastUnreachable; -+ }; -+ BOOLEAN IsReachable; -+ ULONG64 LinkTransmitSpeed; -+ ULONG64 LinkReceiveSpeed; -+} MIB_IPPATH_ROW, *PMIB_IPPATH_ROW; -+ -+typedef struct _MIB_IPPATH_TABLE { -+ ULONG NumEntries; -+ MIB_IPPATH_ROW Table[ANY_SIZE]; -+} MIB_IPPATH_TABLE, *PMIB_IPPATH_TABLE; -+ -+typedef struct _MIB_MULTICASTIPADDRESS_ROW { -+ SOCKADDR_INET Address; -+ NET_IFINDEX InterfaceIndex; -+ NET_LUID InterfaceLuid; -+ SCOPE_ID ScopeId; -+} MIB_MULTICASTIPADDRESS_ROW, *PMIB_MULTICASTIPADDRESS_ROW; -+ -+typedef struct _MIB_MULTICASTIPADDRESS_TABLE { -+ ULONG NumEntries; -+ MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE]; -+} MIB_MULTICASTIPADDRESS_TABLE, *PMIB_MULTICASTIPADDRESS_TABLE; -+ -+NETIOAPI_API CancelMibChangeNotify2( -+ HANDLE NotificationHandle -+); -+ -+NETIO_STATUS WINAPI ConvertInterfaceAliasToLuid( -+ const WCHAR *InterfaceAlias, -+ PNET_LUID InterfaceLuid -+); -+ -+NETIO_STATUS WINAPI ConvertInterfaceLuidToNameA( -+ const NET_LUID *InterfaceLuid, -+ PSTR InterfaceName, -+ SIZE_T Length -+); -+ -+NETIO_STATUS WINAPI ConvertInterfaceLuidToNameW( -+ const NET_LUID *InterfaceLuid, -+ PWSTR InterfaceName, -+ SIZE_T Length -+); -+ -+NETIO_STATUS WINAPI ConvertInterfaceNameToLuidA( -+ const CHAR *InterfaceName, -+ PNET_LUID InterfaceLuid -+); -+ -+NETIO_STATUS WINAPI ConvertInterfaceNameToLuidW( -+ const WCHAR *InterfaceName, -+ PNET_LUID InterfaceLuid -+); -+ -+PCHAR WINAPI if_indextoname( -+ NET_IFINDEX InterfaceIndex, -+ PCHAR InterfaceName -+); -+ -+NET_IFINDEX WINAPI if_nametoindex( -+ PCSTR InterfaceName -+); -+ -+NETIO_STATUS WINAPI ConvertInterfaceGuidToLuid( -+ const GUID *InterfaceGuid, -+ PNET_LUID InterfaceLuid -+); -+ -+NETIO_STATUS WINAPI ConvertInterfaceIndexToLuid( -+ NET_IFINDEX InterfaceIndex, -+ PNET_LUID InterfaceLuid -+); -+ -+NETIO_STATUS WINAPI ConvertInterfaceLuidToAlias( -+ const NET_LUID *InterfaceLuid, -+ PWSTR InterfaceAlias, -+ SIZE_T Length -+); -+ -+NETIO_STATUS WINAPI ConvertInterfaceLuidToGuid( -+ const NET_LUID *InterfaceLuid, -+ GUID *InterfaceGuid -+); -+ -+NETIO_STATUS WINAPI ConvertInterfaceLuidToIndex( -+ const NET_LUID *InterfaceLuid, -+ PNET_IFINDEX InterfaceIndex -+); -+ -+NETIO_STATUS WINAPI ConvertIpv4MaskToLength( -+ ULONG Mask, -+ PUINT8 MaskLength -+); -+ -+NETIO_STATUS WINAPI ConvertLengthToIpv4Mask( -+ ULONG MaskLength, -+ PULONG Mask -+); -+ -+NETIOAPI_API CreateAnycastIpAddressEntry( -+ const MIB_ANYCASTIPADDRESS_ROW *Row -+); -+ -+NETIOAPI_API CreateIpForwardEntry2( -+ const MIB_IPFORWARD_ROW2 *Row -+); -+ -+NETIOAPI_API GetIpNetTable2( -+ ADDRESS_FAMILY Family, -+ PMIB_IPNET_TABLE2 *Table -+); -+ -+NETIOAPI_API GetIpNetEntry2( -+ PMIB_IPNET_ROW2 Row -+); -+ -+NETIOAPI_API CreateIpNetEntry2( -+ const MIB_IPNET_ROW2 *Row -+); -+ -+NETIOAPI_API CreateSortedAddressPairs( -+ const PSOCKADDR_IN6 SourceAddressList, -+ ULONG SourceAddressCount, -+ const PSOCKADDR_IN6 DestinationAddressList, -+ ULONG DestinationAddressCount, -+ ULONG AddressSortOptions, -+ PSOCKADDR_IN6_PAIR *SortedAddressPairList, -+ ULONG *SortedAddressPairCount -+); -+ -+NETIOAPI_API CreateIpNetEntry2( -+ const MIB_IPNET_ROW2 *Row -+); -+ -+NETIOAPI_API CreateUnicastIpAddressEntry( -+ const MIB_UNICASTIPADDRESS_ROW *Row -+); -+ -+NETIOAPI_API DeleteIpForwardEntry2( -+ const MIB_IPFORWARD_ROW2 *Row -+); -+ -+NETIOAPI_API GetIpForwardTable2( -+ ADDRESS_FAMILY Family, -+ PMIB_IPFORWARD_TABLE2 *Table -+); -+ -+VOID NETIOAPI_API_ FreeMibTable( -+ PVOID Memory -+); -+ -+NETIOAPI_API DeleteIpNetEntry2( -+ const MIB_IPNET_ROW2 *Row -+); -+ -+NETIOAPI_API GetIpNetTable2( -+ ADDRESS_FAMILY Family, -+ PMIB_IPNET_TABLE2 *Table -+); -+ -+NETIOAPI_API DeleteUnicastIpAddressEntry( -+ const MIB_UNICASTIPADDRESS_ROW *Row -+); -+ -+NETIOAPI_API GetUnicastIpAddressEntry( -+ PMIB_UNICASTIPADDRESS_ROW Row -+); -+ -+NETIOAPI_API DeleteAnycastIpAddressEntry( -+ const MIB_ANYCASTIPADDRESS_ROW *Row -+); -+ -+NETIOAPI_API FlushIpNetTable2( -+ ADDRESS_FAMILY Family, -+ NET_IFINDEX InterfaceIndex -+); -+ -+NETIOAPI_API FlushIpPathTable( -+ ADDRESS_FAMILY Family -+); -+ -+NETIOAPI_API GetAnycastIpAddressEntry( -+ PMIB_ANYCASTIPADDRESS_ROW Row -+); -+ -+NETIOAPI_API GetAnycastIpAddressTable( -+ ADDRESS_FAMILY Family, -+ PMIB_ANYCASTIPADDRESS_TABLE *Table -+); -+ -+NETIOAPI_API GetBestRoute2( -+ NET_LUID *InterfaceLuid, -+ NET_IFINDEX InterfaceIndex, -+ const SOCKADDR_INET *SourceAddress, -+ const SOCKADDR_INET *DestinationAddress, -+ ULONG AddressSortOptions, -+ PMIB_IPFORWARD_ROW2 BestRoute, -+ SOCKADDR_INET *BestSourceAddress -+); -+ -+NETIOAPI_API GetIfEntry2( -+ PMIB_IF_ROW2 Row -+); -+ -+NETIOAPI_API GetIfTable2( -+ PMIB_IF_TABLE2 *Table -+); -+ -+NETIOAPI_API GetIfStackTable( -+ PMIB_IFSTACK_TABLE *Table -+); -+ -+typedef enum _MIB_IF_TABLE_LEVEL { -+ MibIfTableNormal = 0, -+ MibIfTableRaw = 1 -+} MIB_IF_TABLE_LEVEL, *PMIB_IF_TABLE_LEVEL; -+ -+NETIOAPI_API GetIfTable2Ex( -+ MIB_IF_TABLE_LEVEL Level, -+ PMIB_IF_TABLE2 *Table -+); -+ -+NETIOAPI_API GetInvertedIfStackTable( -+ PMIB_INVERTEDIFSTACK_TABLE *Table -+); -+ -+NETIOAPI_API GetIpForwardEntry2( -+ PMIB_IPFORWARD_ROW2 Row -+); -+ -+NETIOAPI_API GetIpInterfaceEntry( -+ PMIB_IPINTERFACE_ROW Row -+); -+ -+NETIOAPI_API GetIpInterfaceTable( -+ ADDRESS_FAMILY Family, -+ PMIB_IPINTERFACE_TABLE *Table -+); -+ -+NETIOAPI_API GetIpNetEntry2( -+ PMIB_IPNET_ROW2 Row -+); -+ -+NETIOAPI_API GetIpPathEntry( -+ PMIB_IPPATH_ROW Row -+); -+ -+NETIOAPI_API GetIpPathTable( -+ ADDRESS_FAMILY Family, -+ PMIB_IPPATH_TABLE *Table -+); -+ -+NETIOAPI_API GetMulticastIpAddressEntry( -+ PMIB_MULTICASTIPADDRESS_ROW Row -+); -+ -+NETIOAPI_API GetMulticastIpAddressTable( -+ ADDRESS_FAMILY Family, -+ PMIB_MULTICASTIPADDRESS_TABLE *Table -+); -+ -+NETIOAPI_API GetTeredoPort( -+ USHORT *Port -+); -+ -+typedef void (WINAPI *PTEREDO_PORT_CHANGE_CALLBACK)(void* callerContext, USHORT Port, MIB_NOTIFICATION_TYPE type); -+ -+NETIOAPI_API NotifyTeredoPortChange( -+ PTEREDO_PORT_CHANGE_CALLBACK Callback, -+ PVOID CallerContext, -+ BOOLEAN InitialNotification, -+ HANDLE *NotificationHandle -+); -+ -+typedef void (WINAPI *PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK)(void* callerContext, MIB_UNICASTIPADDRESS_TABLE *AddressTable); -+ -+NETIOAPI_API NotifyStableUnicastIpAddressTable( -+ ADDRESS_FAMILY Family, -+ PMIB_UNICASTIPADDRESS_TABLE *Table, -+ PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, -+ PVOID CallerContext, -+ HANDLE *NotificationHandle -+); -+ -+typedef void (WINAPI *PUNICAST_IPADDRESS_CHANGE_CALLBACK)(void* callerContext, PMIB_UNICASTIPADDRESS_ROW row, MIB_NOTIFICATION_TYPE type); -+ -+NETIOAPI_API NotifyUnicastIpAddressChange( -+ ADDRESS_FAMILY Family, -+ PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback, -+ PVOID CallerContext, -+ BOOLEAN InitialNotification, -+ HANDLE *NotificationHandle -+); -+ -+NETIOAPI_API GetUnicastIpAddressTable( -+ ADDRESS_FAMILY Family, -+ PMIB_UNICASTIPADDRESS_TABLE *Table -+); -+ -+typedef VOID (WINAPI *PIPINTERFACE_CHANGE_CALLBACK) ( -+ PVOID CallerContext, PMIB_IPINTERFACE_ROW Row, -+ MIB_NOTIFICATION_TYPE NotificationType -+); -+ -+NETIOAPI_API NotifyIpInterfaceChange( -+ ADDRESS_FAMILY Family, -+ PIPINTERFACE_CHANGE_CALLBACK Callback, -+ PVOID CallerContext, -+ BOOLEAN InitialNotification, -+ HANDLE *NotificationHandle -+); -+ -+typedef LPVOID PIPFORWARD_CHANGE_CALLBACK; -+ -+NETIOAPI_API NotifyRouteChange2( -+ ADDRESS_FAMILY Family, -+ PIPFORWARD_CHANGE_CALLBACK Callback, -+ PVOID CallerContext, -+ BOOLEAN InitialNotification, -+ HANDLE *NotificationHandle -+); -+ -+NETIOAPI_API ResolveIpNetEntry2( -+ PMIB_IPNET_ROW2 Row, -+ const SOCKADDR_INET *SourceAddress -+); -+ -+NETIOAPI_API SetIpForwardEntry2( -+ const MIB_IPFORWARD_ROW2 *Route -+); -+ -+NETIOAPI_API SetIpInterfaceEntry( -+ PMIB_IPINTERFACE_ROW Row -+); -+ -+NETIOAPI_API SetIpNetEntry2( -+ PMIB_IPNET_ROW2 Row -+); -+ -+NETIOAPI_API SetUnicastIpAddressEntry( -+ const MIB_UNICASTIPADDRESS_ROW *Row -+); - - #ifdef __cplusplus - } - #endif - --#endif --#endif -+#endif /*_INC_NETIOAPI*/ -diff --git a/mingw-w64-headers/include/ntddndis.h b/mingw-w64-headers/include/ntddndis.h -index d19e885..d6aae79 100644 ---- a/mingw-w64-headers/include/ntddndis.h -+++ b/mingw-w64-headers/include/ntddndis.h -@@ -1,342 +1,51 @@ - /** --* This file is part of the mingw-w64 runtime package. --* No warranty is given; refer to the file DISCLAIMER within this package. --*/ -- -+ * This file has no copyright assigned and is placed in the Public Domain. -+ * This file is part of the mingw-w64 runtime package. -+ * No warranty is given; refer to the file DISCLAIMER.PD within this package. -+ */ - #ifndef _NTDDNDIS_ - #define _NTDDNDIS_ - --#include -- --#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) -- - #ifdef __cplusplus - extern "C" { - #endif - --#ifndef NDIS_SUPPORT_NDIS6 --#if defined (UM_NDIS60) || defined (UM_NDIS61) || defined (UM_NDIS620) || defined (UM_NDIS630) --#define NDIS_SUPPORT_NDIS6 1 --#else --#define NDIS_SUPPORT_NDIS6 0 --#endif --#endif -- --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 --#include --#include --#include --#endif -- --#ifndef NDIS_SUPPORT_NDIS61 --#if defined (UM_NDIS61) || defined (UM_NDIS620) || defined (UM_NDIS630) --#define NDIS_SUPPORT_NDIS61 1 --#else --#define NDIS_SUPPORT_NDIS61 0 --#endif --#endif -- --#ifndef NDIS_SUPPORT_NDIS620 --#if defined (UM_NDIS620) || defined (UM_NDIS630) --#define NDIS_SUPPORT_NDIS620 1 --#else --#define NDIS_SUPPORT_NDIS620 0 --#endif --#endif -- --#ifndef NDIS_SUPPORT_NDIS630 --#ifdef UM_NDIS630 --#define NDIS_SUPPORT_NDIS630 1 --#else --#define NDIS_SUPPORT_NDIS630 0 --#endif --#endif -- - #define DD_NDIS_DEVICE_NAME "\\Device\\UNKNOWN" - --#define _NDIS_CONTROL_CODE(request, method) CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, request, method, FILE_ANY_ACCESS) -- --#define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE (0, METHOD_OUT_DIRECT) --#define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE (1, METHOD_OUT_DIRECT) --#define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE (2, METHOD_BUFFERED) --#define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE (3, METHOD_OUT_DIRECT) --#define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE (4, METHOD_BUFFERED) --#define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE (5, METHOD_BUFFERED) --#define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE (7, METHOD_OUT_DIRECT) --#define IOCTL_NDIS_GET_VERSION _NDIS_CONTROL_CODE (8, METHOD_BUFFERED) -- --#define IOCTL_NDIS_RESERVED1 _NDIS_CONTROL_CODE (9, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED2 _NDIS_CONTROL_CODE (0xa, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED3 _NDIS_CONTROL_CODE (0xb, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED4 _NDIS_CONTROL_CODE (0xc, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED5 CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, 0xd, METHOD_BUFFERED, FILE_ANY_ACCESS) --#define IOCTL_NDIS_RESERVED6 CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, 0xe, METHOD_BUFFERED, FILE_WRITE_ACCESS) --#define IOCTL_NDIS_RESERVED7 _NDIS_CONTROL_CODE (0xf, METHOD_OUT_DIRECT) --#define IOCTL_NDIS_RESERVED8 _NDIS_CONTROL_CODE (0x10, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED9 _NDIS_CONTROL_CODE (0x11, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED10 _NDIS_CONTROL_CODE (0x12, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED11 _NDIS_CONTROL_CODE (0x13, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED12 _NDIS_CONTROL_CODE (0x14, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED13 _NDIS_CONTROL_CODE (0x15, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED14 _NDIS_CONTROL_CODE (0x16, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED15 _NDIS_CONTROL_CODE (0x17, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED16 _NDIS_CONTROL_CODE (0x18, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED17 _NDIS_CONTROL_CODE (0x19, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED18 _NDIS_CONTROL_CODE (0x1a, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED19 _NDIS_CONTROL_CODE (0x1b, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED20 _NDIS_CONTROL_CODE (0x1c, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED21 _NDIS_CONTROL_CODE (0x1d, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED22 _NDIS_CONTROL_CODE (0x1e, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED23 _NDIS_CONTROL_CODE (0x1f, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED24 _NDIS_CONTROL_CODE (0x20, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED25 _NDIS_CONTROL_CODE (0x21, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED26 _NDIS_CONTROL_CODE (0x22, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED27 _NDIS_CONTROL_CODE (0x23, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED28 _NDIS_CONTROL_CODE (0x24, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED29 _NDIS_CONTROL_CODE (0x25, METHOD_BUFFERED) --#define IOCTL_NDIS_RESERVED30 _NDIS_CONTROL_CODE (0x26, METHOD_BUFFERED) -- -- typedef ULONG NDIS_OID, *PNDIS_OID; -- typedef struct _NDIS_STATISTICS_VALUE { -- NDIS_OID Oid; -- ULONG DataLength; -- UCHAR Data[1]; -- } NDIS_STATISTICS_VALUE; -+#define _NDIS_CONTROL_CODE(request,method) CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD,request,method,FILE_ANY_ACCESS) -+ -+#define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE(0,METHOD_OUT_DIRECT) -+#define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE(1,METHOD_OUT_DIRECT) -+#define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE(2,METHOD_BUFFERED) -+#define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE(3,METHOD_OUT_DIRECT) -+#define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE(4,METHOD_BUFFERED) -+#define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE(5,METHOD_BUFFERED) -+#define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE(7,METHOD_OUT_DIRECT) -+#define IOCTL_NDIS_GET_VERSION _NDIS_CONTROL_CODE(8,METHOD_BUFFERED) -+#define IOCTL_NDIS_RESERVED7 _NDIS_CONTROL_CODE(0xF,METHOD_OUT_DIRECT) - -- typedef NDIS_STATISTICS_VALUE UNALIGNED *PNDIS_STATISTICS_VALUE; -+ typedef ULONG NDIS_OID,*PNDIS_OID; - --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 -- typedef struct _NDIS_STATISTICS_VALUE_EX { -+ typedef UNALIGNED struct _NDIS_STATISTICS_VALUE { - NDIS_OID Oid; - ULONG DataLength; -- ULONG Length; - UCHAR Data[1]; -- } NDIS_STATISTICS_VALUE_EX; -- -- typedef NDIS_STATISTICS_VALUE_EX UNALIGNED *PNDIS_STATISTICS_VALUE_EX; --#endif -+ } NDIS_STATISTICS_VALUE,*PNDIS_STATISTICS_VALUE; - - typedef struct _NDIS_VAR_DATA_DESC { - USHORT Length; - USHORT MaximumLength; - ULONG_PTR Offset; -- } NDIS_VAR_DATA_DESC, *PNDIS_VAR_DATA_DESC; -+ } NDIS_VAR_DATA_DESC,*PNDIS_VAR_DATA_DESC; - --#ifndef GUID_DEFINED - #include --#endif -- --#define NDIS_OBJECT_TYPE_DEFAULT 0x80 --#define NDIS_OBJECT_TYPE_MINIPORT_INIT_PARAMETERS 0x81 --#define NDIS_OBJECT_TYPE_SG_DMA_DESCRIPTION 0x83 --#define NDIS_OBJECT_TYPE_MINIPORT_INTERRUPT 0x84 --#define NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES 0x85 --#define NDIS_OBJECT_TYPE_BIND_PARAMETERS 0x86 --#define NDIS_OBJECT_TYPE_OPEN_PARAMETERS 0x87 --#define NDIS_OBJECT_TYPE_RSS_CAPABILITIES 0x88 --#define NDIS_OBJECT_TYPE_RSS_PARAMETERS 0x89 --#define NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS 0x8a --#define NDIS_OBJECT_TYPE_FILTER_DRIVER_CHARACTERISTICS 0x8b --#define NDIS_OBJECT_TYPE_FILTER_PARTIAL_CHARACTERISTICS 0x8c --#define NDIS_OBJECT_TYPE_FILTER_ATTRIBUTES 0x8d --#define NDIS_OBJECT_TYPE_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS 0x8e --#define NDIS_OBJECT_TYPE_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS 0x8f --#define NDIS_OBJECT_TYPE_CO_PROTOCOL_CHARACTERISTICS 0x90 --#define NDIS_OBJECT_TYPE_CO_MINIPORT_CHARACTERISTICS 0x91 --#define NDIS_OBJECT_TYPE_MINIPORT_PNP_CHARACTERISTICS 0x92 --#define NDIS_OBJECT_TYPE_CLIENT_CHIMNEY_OFFLOAD_CHARACTERISTICS 0x93 --#define NDIS_OBJECT_TYPE_PROVIDER_CHIMNEY_OFFLOAD_CHARACTERISTICS 0x94 --#define NDIS_OBJECT_TYPE_PROTOCOL_DRIVER_CHARACTERISTICS 0x95 --#define NDIS_OBJECT_TYPE_REQUEST_EX 0x96 --#define NDIS_OBJECT_TYPE_OID_REQUEST 0x96 --#define NDIS_OBJECT_TYPE_TIMER_CHARACTERISTICS 0x97 --#define NDIS_OBJECT_TYPE_STATUS_INDICATION 0x98 --#define NDIS_OBJECT_TYPE_FILTER_ATTACH_PARAMETERS 0x99 --#define NDIS_OBJECT_TYPE_FILTER_PAUSE_PARAMETERS 0x9a --#define NDIS_OBJECT_TYPE_FILTER_RESTART_PARAMETERS 0x9b --#define NDIS_OBJECT_TYPE_PORT_CHARACTERISTICS 0x9c --#define NDIS_OBJECT_TYPE_PORT_STATE 0x9d --#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 0x9e --#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 0x9f --#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES 0xa0 --#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES 0xa1 --#define NDIS_OBJECT_TYPE_RESTART_GENERAL_ATTRIBUTES 0xa2 --#define NDIS_OBJECT_TYPE_PROTOCOL_RESTART_PARAMETERS 0xa3 --#define NDIS_OBJECT_TYPE_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES 0xa4 --#define NDIS_OBJECT_TYPE_CO_CALL_MANAGER_OPTIONAL_HANDLERS 0xa5 --#define NDIS_OBJECT_TYPE_CO_CLIENT_OPTIONAL_HANDLERS 0xa6 --#define NDIS_OBJECT_TYPE_OFFLOAD 0xa7 --#define NDIS_OBJECT_TYPE_OFFLOAD_ENCAPSULATION 0xa8 --#define NDIS_OBJECT_TYPE_CONFIGURATION_OBJECT 0xa9 --#define NDIS_OBJECT_TYPE_DRIVER_WRAPPER_OBJECT 0xaa --#if NDIS_SUPPORT_NDIS61 --#define NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES 0xab --#endif --#define NDIS_OBJECT_TYPE_NSI_NETWORK_RW_STRUCT 0xac --#define NDIS_OBJECT_TYPE_NSI_COMPARTMENT_RW_STRUCT 0xad --#define NDIS_OBJECT_TYPE_NSI_INTERFACE_PERSIST_RW_STRUCT 0xae --#if NDIS_SUPPORT_NDIS61 --#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 0xaf --#endif --#if NDIS_SUPPORT_NDIS620 --#define NDIS_OBJECT_TYPE_SHARED_MEMORY_PROVIDER_CHARACTERISTICS 0xb0 --#define NDIS_OBJECT_TYPE_RSS_PROCESSOR_INFO 0xb1 --#endif --#if NDIS_SUPPORT_NDIS630 --#define NDIS_OBJECT_TYPE_NDK_PROVIDER_CHARACTERISTICS 0xb2 --#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_NDK_ATTRIBUTES 0xb3 --#define NDIS_OBJECT_TYPE_MINIPORT_SS_CHARACTERISTICS 0xb4 --#define NDIS_OBJECT_TYPE_QOS_CAPABILITIES 0xb5 --#define NDIS_OBJECT_TYPE_QOS_PARAMETERS 0xb6 --#define NDIS_OBJECT_TYPE_QOS_CLASSIFICATION_ELEMENT 0xb7 --#define NDIS_OBJECT_TYPE_SWITCH_OPTIONAL_HANDLERS 0xb8 --#define NDIS_OBJECT_TYPE_IOCTL_OID_INFO 0xb9 --#define NDIS_OBJECT_TYPE_LBFO_DIAGNOSTIC_OID 0xba --#endif - - typedef struct _NDIS_OBJECT_HEADER { -- UCHAR Type; -- UCHAR Revision; -+ UCHAR Type; -+ UCHAR Revision; - USHORT Size; - } NDIS_OBJECT_HEADER, *PNDIS_OBJECT_HEADER; - -- typedef enum _NDIS_REQUEST_TYPE { -- NdisRequestQueryInformation, -- NdisRequestSetInformation, -- NdisRequestQueryStatistics, -- NdisRequestOpen, -- NdisRequestClose, -- NdisRequestSend, -- NdisRequestTransferData, -- NdisRequestReset, -- NdisRequestGeneric1, -- NdisRequestGeneric2, -- NdisRequestGeneric3, -- NdisRequestGeneric4 --#if NDIS_SUPPORT_NDIS6 -- , NdisRequestMethod --#endif -- } NDIS_REQUEST_TYPE, *PNDIS_REQUEST_TYPE; -- --#define NDIS_OBJECT_REVISION_1 1 -- --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 --#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_RCV 0x00000001 --#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_RCV 0x00000002 --#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_RCV 0x00000004 --#define NDIS_STATISTICS_FLAGS_VALID_BYTES_RCV 0x00000008 --#define NDIS_STATISTICS_FLAGS_VALID_RCV_DISCARDS 0x00000010 --#define NDIS_STATISTICS_FLAGS_VALID_RCV_ERROR 0x00000020 --#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_XMIT 0x00000040 --#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_XMIT 0x00000080 --#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_XMIT 0x00000100 --#define NDIS_STATISTICS_FLAGS_VALID_BYTES_XMIT 0x00000200 --#define NDIS_STATISTICS_FLAGS_VALID_XMIT_ERROR 0x00000400 --#define NDIS_STATISTICS_FLAGS_VALID_XMIT_DISCARDS 0x00008000 --#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_RCV 0x00010000 --#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_RCV 0x00020000 --#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_RCV 0x00040000 --#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_XMIT 0x00080000 --#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_XMIT 0x00100000 --#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_XMIT 0x00200000 -- --#define NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_RESET 0x00000001 --#define NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_REINITIALIZE 0x00000002 -- --#define NDIS_STATISTICS_INFO_REVISION_1 1 --#define NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1 1 --#define NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES_REVISION_1 1 --#define NDIS_OBJECT_TYPE_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1 1 --#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620 --#define NDIS_OBJECT_TYPE_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_2 2 --#endif --#if NDIS_SUPPORT_NDIS630 --#define NDIS_RSC_STATISTICS_REVISION_1 1 --#endif -- --#define NDIS_SIZEOF_STATISTICS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_STATISTICS_INFO, ifHCOutBroadcastOctets) --#define NDIS_SIZEOF_INTERRUPT_MODERATION_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_INTERRUPT_MODERATION_PARAMETERS, InterruptModeration) --#define NDIS_SIZEOF_TIMEOUT_DPC_REQUEST_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES, TimeoutArray) --#define NDIS_SIZEOF_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, MaxLinkWidth) --#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620 --#define NDIS_SIZEOF_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, MaxInterruptMessages) --#endif --#if NDIS_SUPPORT_NDIS630 --#define NDIS_SIZEOF_RSC_STATISTICS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSC_STATISTICS_INFO, Aborts) --#endif -- -- typedef struct _NDIS_STATISTICS_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG SupportedStatistics; -- ULONG64 ifInDiscards; -- ULONG64 ifInErrors; -- ULONG64 ifHCInOctets; -- ULONG64 ifHCInUcastPkts; -- ULONG64 ifHCInMulticastPkts; -- ULONG64 ifHCInBroadcastPkts; -- ULONG64 ifHCOutOctets; -- ULONG64 ifHCOutUcastPkts; -- ULONG64 ifHCOutMulticastPkts; -- ULONG64 ifHCOutBroadcastPkts; -- ULONG64 ifOutErrors; -- ULONG64 ifOutDiscards; -- ULONG64 ifHCInUcastOctets; -- ULONG64 ifHCInMulticastOctets; -- ULONG64 ifHCInBroadcastOctets; -- ULONG64 ifHCOutUcastOctets; -- ULONG64 ifHCOutMulticastOctets; -- ULONG64 ifHCOutBroadcastOctets; -- } NDIS_STATISTICS_INFO, *PNDIS_STATISTICS_INFO; -- --#if NDIS_SUPPORT_NDIS630 -- typedef struct _NDIS_RSC_STATISTICS_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG64 CoalescedPkts; -- ULONG64 CoalescedOctets; -- ULONG64 CoalesceEvents; -- ULONG64 Aborts; -- } NDIS_RSC_STATISTICS_INFO, *PNDIS_RSC_STATISTICS_INFO; --#endif -- -- typedef enum _NDIS_INTERRUPT_MODERATION { -- NdisInterruptModerationUnknown, -- NdisInterruptModerationNotSupported, -- NdisInterruptModerationEnabled, -- NdisInterruptModerationDisabled -- } NDIS_INTERRUPT_MODERATION, *PNDIS_INTERRUPT_MODERATION; -- -- typedef struct _NDIS_INTERRUPT_MODERATION_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_INTERRUPT_MODERATION InterruptModeration; -- } NDIS_INTERRUPT_MODERATION_PARAMETERS, *PNDIS_INTERRUPT_MODERATION_PARAMETERS; -- -- typedef struct _NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG TimeoutArrayLength; -- ULONG TimeoutArray[1]; -- } NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES, *PNDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES; -- -- typedef struct _NDIS_PCI_DEVICE_CUSTOM_PROPERTIES { -- NDIS_OBJECT_HEADER Header; -- UINT32 DeviceType; -- UINT32 CurrentSpeedAndMode; -- UINT32 CurrentPayloadSize; -- UINT32 MaxPayloadSize; -- UINT32 MaxReadRequestSize; -- UINT32 CurrentLinkSpeed; -- UINT32 CurrentLinkWidth; -- UINT32 MaxLinkSpeed; -- UINT32 MaxLinkWidth; --#if (NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620) -- UINT32 PciExpressVersion; -- UINT32 InterruptType; -- UINT32 MaxInterruptMessages; --#endif -- } NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, *PNDIS_PCI_DEVICE_CUSTOM_PROPERTIES; --#endif -- - #define OID_GEN_SUPPORTED_LIST 0x00010101 - #define OID_GEN_HARDWARE_STATUS 0x00010102 - #define OID_GEN_MEDIA_SUPPORTED 0x00010103 -@@ -346,12 +55,12 @@ extern "C" { - #define OID_GEN_LINK_SPEED 0x00010107 - #define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 - #define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 --#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010a --#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010b --#define OID_GEN_VENDOR_ID 0x0001010c --#define OID_GEN_VENDOR_DESCRIPTION 0x0001010d --#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010e --#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010f -+#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A -+#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B -+#define OID_GEN_VENDOR_ID 0x0001010C -+#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D -+#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E -+#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F - #define OID_GEN_DRIVER_VERSION 0x00010110 - #define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 - #define OID_GEN_PROTOCOL_OPTIONS 0x00010112 -@@ -363,99 +72,17 @@ extern "C" { - #define OID_GEN_SUPPORTED_GUIDS 0x00010117 - #define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 - #define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 -+#define OID_GEN_MACHINE_NAME 0x0001021A -+#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B -+#define OID_GEN_VLAN_ID 0x0001021C - #define OID_GEN_MEDIA_CAPABILITIES 0x00010201 - #define OID_GEN_PHYSICAL_MEDIUM 0x00010202 --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 --#define OID_GEN_RECEIVE_SCALE_CAPABILITIES 0x00010203 --#define OID_GEN_RECEIVE_SCALE_PARAMETERS 0x00010204 --#define OID_GEN_MAC_ADDRESS 0x00010205 --#define OID_GEN_MAX_LINK_SPEED 0x00010206 --#define OID_GEN_LINK_STATE 0x00010207 --#define OID_GEN_LINK_PARAMETERS 0x00010208 --#define OID_GEN_INTERRUPT_MODERATION 0x00010209 --#define OID_GEN_NDIS_RESERVED_3 0x0001020a --#define OID_GEN_NDIS_RESERVED_4 0x0001020b --#define OID_GEN_NDIS_RESERVED_5 0x0001020c --#define OID_GEN_ENUMERATE_PORTS 0x0001020d --#define OID_GEN_PORT_STATE 0x0001020e --#define OID_GEN_PORT_AUTHENTICATION_PARAMETERS 0x0001020f --#define OID_GEN_TIMEOUT_DPC_REQUEST_CAPABILITIES 0x00010210 --#define OID_GEN_PCI_DEVICE_CUSTOM_PROPERTIES 0x00010211 --#define OID_GEN_NDIS_RESERVED_6 0x00010212 --#define OID_GEN_PHYSICAL_MEDIUM_EX 0x00010213 --#endif -- --#define OID_GEN_MACHINE_NAME 0x0001021a --#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021b --#define OID_GEN_VLAN_ID 0x0001021c --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 --#define OID_GEN_RECEIVE_HASH 0x0001021f --#define OID_GEN_MINIPORT_RESTART_ATTRIBUTES 0x0001021d -- --#if NDIS_SUPPORT_NDIS61 --#define OID_GEN_HD_SPLIT_PARAMETERS 0x0001021e --#define OID_GEN_HD_SPLIT_CURRENT_CONFIG 0x00010220 --#endif -- --#define OID_GEN_PROMISCUOUS_MODE 0x00010280 --#define OID_GEN_LAST_CHANGE 0x00010281 --#define OID_GEN_DISCONTINUITY_TIME 0x00010282 --#define OID_GEN_OPERATIONAL_STATUS 0x00010283 --#define OID_GEN_XMIT_LINK_SPEED 0x00010284 --#define OID_GEN_RCV_LINK_SPEED 0x00010285 --#define OID_GEN_UNKNOWN_PROTOS 0x00010286 --#define OID_GEN_INTERFACE_INFO 0x00010287 --#define OID_GEN_ADMIN_STATUS 0x00010288 --#define OID_GEN_ALIAS 0x00010289 --#define OID_GEN_MEDIA_CONNECT_STATUS_EX 0x0001028a --#define OID_GEN_LINK_SPEED_EX 0x0001028b --#define OID_GEN_MEDIA_DUPLEX_STATE 0x0001028c --#define OID_GEN_IP_OPER_STATUS 0x0001028d -- --#define OID_WWAN_DRIVER_CAPS 0x0e010100 --#define OID_WWAN_DEVICE_CAPS 0x0e010101 --#define OID_WWAN_READY_INFO 0x0e010102 --#define OID_WWAN_RADIO_STATE 0x0e010103 --#define OID_WWAN_PIN 0x0e010104 --#define OID_WWAN_PIN_LIST 0x0e010105 --#define OID_WWAN_HOME_PROVIDER 0x0e010106 --#define OID_WWAN_PREFERRED_PROVIDERS 0x0e010107 --#define OID_WWAN_VISIBLE_PROVIDERS 0x0e010108 --#define OID_WWAN_REGISTER_STATE 0x0e010109 --#define OID_WWAN_PACKET_SERVICE 0x0e01010a --#define OID_WWAN_SIGNAL_STATE 0x0e01010b --#define OID_WWAN_CONNECT 0x0e01010c --#define OID_WWAN_PROVISIONED_CONTEXTS 0x0e01010d --#define OID_WWAN_SERVICE_ACTIVATION 0x0e01010e --#define OID_WWAN_SMS_CONFIGURATION 0x0e01010f --#define OID_WWAN_SMS_READ 0x0e010110 --#define OID_WWAN_SMS_SEND 0x0e010111 --#define OID_WWAN_SMS_DELETE 0x0e010112 --#define OID_WWAN_SMS_STATUS 0x0e010113 --#define OID_WWAN_VENDOR_SPECIFIC 0x0e010114 --#endif -- --#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630 --#define OID_WWAN_AUTH_CHALLENGE 0x0e010115 --#define OID_WWAN_ENUMERATE_DEVICE_SERVICES 0x0e010116 --#define OID_WWAN_SUBSCRIBE_DEVICE_SERVICE_EVENTS 0x0e010117 --#define OID_WWAN_DEVICE_SERVICE_COMMAND 0x0e010118 --#define OID_WWAN_USSD 0x0e010119 --#define OID_WWAN_PIN_EX 0x0e010121 --#define OID_WWAN_ENUMERATE_DEVICE_SERVICE_COMMANDS 0x0e010122 --#define OID_WWAN_DEVICE_SERVICE_SESSION 0x0e010123 --#define OID_WWAN_DEVICE_SERVICE_SESSION_WRITE 0x0e010124 --#define OID_WWAN_PREFERRED_MULTICARRIER_PROVIDERS 0x0e010125 --#endif - - #define OID_GEN_XMIT_OK 0x00020101 - #define OID_GEN_RCV_OK 0x00020102 - #define OID_GEN_XMIT_ERROR 0x00020103 - #define OID_GEN_RCV_ERROR 0x00020104 - #define OID_GEN_RCV_NO_BUFFER 0x00020105 --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 --#define OID_GEN_STATISTICS 0x00020106 --#endif - - #define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 - #define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 -@@ -466,32 +93,24 @@ extern "C" { - #define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 - #define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 - #define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 --#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020a --#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020b --#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020c --#define OID_GEN_RCV_CRC_ERROR 0x0002020d --#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020e --#define OID_GEN_GET_TIME_CAPS 0x0002020f -+#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A -+#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B -+#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C -+ -+#define OID_GEN_RCV_CRC_ERROR 0x0002020D -+#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E -+ -+#define OID_GEN_GET_TIME_CAPS 0x0002020F - #define OID_GEN_GET_NETCARD_TIME 0x00020210 - #define OID_GEN_NETCARD_LOAD 0x00020211 - #define OID_GEN_DEVICE_PROFILE 0x00020212 -+ - #define OID_GEN_INIT_TIME_MS 0x00020213 - #define OID_GEN_RESET_COUNTS 0x00020214 - #define OID_GEN_MEDIA_SENSE_COUNTS 0x00020215 - #define OID_GEN_FRIENDLY_NAME 0x00020216 --#define OID_GEN_NDIS_RESERVED_1 0x00020217 --#define OID_GEN_NDIS_RESERVED_2 0x00020218 --#define OID_GEN_NDIS_RESERVED_5 0x0001020c --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 --#define OID_GEN_BYTES_RCV 0x00020219 --#define OID_GEN_BYTES_XMIT 0x0002021a --#define OID_GEN_RCV_DISCARDS 0x0002021b --#define OID_GEN_XMIT_DISCARDS 0x0002021c --#endif --#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630 --#define OID_TCP_RSC_STATISTICS 0x0002021d --#define OID_GEN_NDIS_RESERVED_7 0x0002021e --#endif -+#define OID_GEN_MINIPORT_INFO 0x00020217 -+#define OID_GEN_RESET_VERIFY_PARAMETERS 0x00020218 - - #define OID_GEN_CO_SUPPORTED_LIST OID_GEN_SUPPORTED_LIST - #define OID_GEN_CO_HARDWARE_STATUS OID_GEN_HARDWARE_STATUS -@@ -528,7 +147,6 @@ extern "C" { - #define OID_802_3_CURRENT_ADDRESS 0x01010102 - #define OID_802_3_MULTICAST_LIST 0x01010103 - #define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 -- - #define OID_802_3_MAC_OPTIONS 0x01010105 - - #define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 -@@ -545,11 +163,6 @@ extern "C" { - #define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 - #define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 - --#if (NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6) --#define OID_802_3_ADD_MULTICAST_ADDRESS 0x01010208 --#define OID_802_3_DELETE_MULTICAST_ADDRESS 0x01010209 --#endif -- - #define OID_802_5_PERMANENT_ADDRESS 0x02010101 - #define OID_802_5_CURRENT_ADDRESS 0x02010102 - #define OID_802_5_CURRENT_FUNCTIONAL 0x02010103 -@@ -597,12 +210,12 @@ extern "C" { - #define OID_FDDI_SMT_MIB_VERSION_ID 0x03030207 - #define OID_FDDI_SMT_MAC_CT 0x03030208 - #define OID_FDDI_SMT_NON_MASTER_CT 0x03030209 --#define OID_FDDI_SMT_MASTER_CT 0x0303020a --#define OID_FDDI_SMT_AVAILABLE_PATHS 0x0303020b --#define OID_FDDI_SMT_CONFIG_CAPABILITIES 0x0303020c --#define OID_FDDI_SMT_CONFIG_POLICY 0x0303020d --#define OID_FDDI_SMT_CONNECTION_POLICY 0x0303020e --#define OID_FDDI_SMT_T_NOTIFY 0x0303020f -+#define OID_FDDI_SMT_MASTER_CT 0x0303020A -+#define OID_FDDI_SMT_AVAILABLE_PATHS 0x0303020B -+#define OID_FDDI_SMT_CONFIG_CAPABILITIES 0x0303020C -+#define OID_FDDI_SMT_CONFIG_POLICY 0x0303020D -+#define OID_FDDI_SMT_CONNECTION_POLICY 0x0303020E -+#define OID_FDDI_SMT_T_NOTIFY 0x0303020F - #define OID_FDDI_SMT_STAT_RPT_POLICY 0x03030210 - #define OID_FDDI_SMT_TRACE_MAX_EXPIRATION 0x03030211 - #define OID_FDDI_SMT_PORT_INDEXES 0x03030212 -@@ -613,12 +226,12 @@ extern "C" { - #define OID_FDDI_SMT_HOLD_STATE 0x03030217 - #define OID_FDDI_SMT_REMOTE_DISCONNECT_FLAG 0x03030218 - #define OID_FDDI_SMT_STATION_STATUS 0x03030219 --#define OID_FDDI_SMT_PEER_WRAP_FLAG 0x0303021a --#define OID_FDDI_SMT_MSG_TIME_STAMP 0x0303021b --#define OID_FDDI_SMT_TRANSITION_TIME_STAMP 0x0303021c --#define OID_FDDI_SMT_SET_COUNT 0x0303021d --#define OID_FDDI_SMT_LAST_SET_STATION_ID 0x0303021e --#define OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS 0x0303021f -+#define OID_FDDI_SMT_PEER_WRAP_FLAG 0x0303021A -+#define OID_FDDI_SMT_MSG_TIME_STAMP 0x0303021B -+#define OID_FDDI_SMT_TRANSITION_TIME_STAMP 0x0303021C -+#define OID_FDDI_SMT_SET_COUNT 0x0303021D -+#define OID_FDDI_SMT_LAST_SET_STATION_ID 0x0303021E -+#define OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS 0x0303021F - #define OID_FDDI_MAC_BRIDGE_FUNCTIONS 0x03030220 - #define OID_FDDI_MAC_T_MAX_CAPABILITY 0x03030221 - #define OID_FDDI_MAC_TVX_CAPABILITY 0x03030222 -@@ -629,12 +242,12 @@ extern "C" { - #define OID_FDDI_MAC_OLD_UPSTREAM_NBR 0x03030227 - #define OID_FDDI_MAC_OLD_DOWNSTREAM_NBR 0x03030228 - #define OID_FDDI_MAC_DUP_ADDRESS_TEST 0x03030229 --#define OID_FDDI_MAC_REQUESTED_PATHS 0x0303022a --#define OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE 0x0303022b --#define OID_FDDI_MAC_INDEX 0x0303022c --#define OID_FDDI_MAC_SMT_ADDRESS 0x0303022d --#define OID_FDDI_MAC_LONG_GRP_ADDRESS 0x0303022e --#define OID_FDDI_MAC_SHORT_GRP_ADDRESS 0x0303022f -+#define OID_FDDI_MAC_REQUESTED_PATHS 0x0303022A -+#define OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE 0x0303022B -+#define OID_FDDI_MAC_INDEX 0x0303022C -+#define OID_FDDI_MAC_SMT_ADDRESS 0x0303022D -+#define OID_FDDI_MAC_LONG_GRP_ADDRESS 0x0303022E -+#define OID_FDDI_MAC_SHORT_GRP_ADDRESS 0x0303022F - #define OID_FDDI_MAC_T_REQ 0x03030230 - #define OID_FDDI_MAC_T_NEG 0x03030231 - #define OID_FDDI_MAC_T_MAX 0x03030232 -@@ -645,12 +258,12 @@ extern "C" { - #define OID_FDDI_MAC_T_PRI3 0x03030237 - #define OID_FDDI_MAC_T_PRI4 0x03030238 - #define OID_FDDI_MAC_T_PRI5 0x03030239 --#define OID_FDDI_MAC_T_PRI6 0x0303023a --#define OID_FDDI_MAC_FRAME_CT 0x0303023b --#define OID_FDDI_MAC_COPIED_CT 0x0303023c --#define OID_FDDI_MAC_TRANSMIT_CT 0x0303023d --#define OID_FDDI_MAC_TOKEN_CT 0x0303023e --#define OID_FDDI_MAC_ERROR_CT 0x0303023f -+#define OID_FDDI_MAC_T_PRI6 0x0303023A -+#define OID_FDDI_MAC_FRAME_CT 0x0303023B -+#define OID_FDDI_MAC_COPIED_CT 0x0303023C -+#define OID_FDDI_MAC_TRANSMIT_CT 0x0303023D -+#define OID_FDDI_MAC_TOKEN_CT 0x0303023E -+#define OID_FDDI_MAC_ERROR_CT 0x0303023F - #define OID_FDDI_MAC_LOST_CT 0x03030240 - #define OID_FDDI_MAC_TVX_EXPIRED_CT 0x03030241 - #define OID_FDDI_MAC_NOT_COPIED_CT 0x03030242 -@@ -661,12 +274,12 @@ extern "C" { - #define OID_FDDI_MAC_NOT_COPIED_THRESHOLD 0x03030247 - #define OID_FDDI_MAC_NOT_COPIED_RATIO 0x03030248 - #define OID_FDDI_MAC_RMT_STATE 0x03030249 --#define OID_FDDI_MAC_DA_FLAG 0x0303024a --#define OID_FDDI_MAC_UNDA_FLAG 0x0303024b --#define OID_FDDI_MAC_FRAME_ERROR_FLAG 0x0303024c --#define OID_FDDI_MAC_NOT_COPIED_FLAG 0x0303024d --#define OID_FDDI_MAC_MA_UNITDATA_AVAILABLE 0x0303024e --#define OID_FDDI_MAC_HARDWARE_PRESENT 0x0303024f -+#define OID_FDDI_MAC_DA_FLAG 0x0303024A -+#define OID_FDDI_MAC_UNDA_FLAG 0x0303024B -+#define OID_FDDI_MAC_FRAME_ERROR_FLAG 0x0303024C -+#define OID_FDDI_MAC_NOT_COPIED_FLAG 0x0303024D -+#define OID_FDDI_MAC_MA_UNITDATA_AVAILABLE 0x0303024E -+#define OID_FDDI_MAC_HARDWARE_PRESENT 0x0303024F - #define OID_FDDI_MAC_MA_UNITDATA_ENABLE 0x03030250 - #define OID_FDDI_PATH_INDEX 0x03030251 - #define OID_FDDI_PATH_RING_LATENCY 0x03030252 -@@ -677,12 +290,12 @@ extern "C" { - #define OID_FDDI_PATH_T_R_MODE 0x03030257 - #define OID_FDDI_PATH_SBA_AVAILABLE 0x03030258 - #define OID_FDDI_PATH_TVX_LOWER_BOUND 0x03030259 --#define OID_FDDI_PATH_T_MAX_LOWER_BOUND 0x0303025a --#define OID_FDDI_PATH_MAX_T_REQ 0x0303025b --#define OID_FDDI_PORT_MY_TYPE 0x0303025c --#define OID_FDDI_PORT_NEIGHBOR_TYPE 0x0303025d --#define OID_FDDI_PORT_CONNECTION_POLICIES 0x0303025e --#define OID_FDDI_PORT_MAC_INDICATED 0x0303025f -+#define OID_FDDI_PATH_T_MAX_LOWER_BOUND 0x0303025A -+#define OID_FDDI_PATH_MAX_T_REQ 0x0303025B -+#define OID_FDDI_PORT_MY_TYPE 0x0303025C -+#define OID_FDDI_PORT_NEIGHBOR_TYPE 0x0303025D -+#define OID_FDDI_PORT_CONNECTION_POLICIES 0x0303025E -+#define OID_FDDI_PORT_MAC_INDICATED 0x0303025F - #define OID_FDDI_PORT_CURRENT_PATH 0x03030260 - #define OID_FDDI_PORT_REQUESTED_PATHS 0x03030261 - #define OID_FDDI_PORT_MAC_PLACEMENT 0x03030262 -@@ -693,12 +306,12 @@ extern "C" { - #define OID_FDDI_PORT_INDEX 0x03030267 - #define OID_FDDI_PORT_MAINT_LS 0x03030268 - #define OID_FDDI_PORT_BS_FLAG 0x03030269 --#define OID_FDDI_PORT_PC_LS 0x0303026a --#define OID_FDDI_PORT_EB_ERROR_CT 0x0303026b --#define OID_FDDI_PORT_LCT_FAIL_CT 0x0303026c --#define OID_FDDI_PORT_LER_ESTIMATE 0x0303026d --#define OID_FDDI_PORT_LEM_REJECT_CT 0x0303026e --#define OID_FDDI_PORT_LEM_CT 0x0303026f -+#define OID_FDDI_PORT_PC_LS 0x0303026A -+#define OID_FDDI_PORT_EB_ERROR_CT 0x0303026B -+#define OID_FDDI_PORT_LCT_FAIL_CT 0x0303026C -+#define OID_FDDI_PORT_LER_ESTIMATE 0x0303026D -+#define OID_FDDI_PORT_LEM_REJECT_CT 0x0303026E -+#define OID_FDDI_PORT_LEM_CT 0x0303026F - #define OID_FDDI_PORT_LER_CUTOFF 0x03030270 - #define OID_FDDI_PORT_LER_ALARM 0x03030271 - #define OID_FDDI_PORT_CONNNECT_STATE 0x03030272 -@@ -709,12 +322,12 @@ extern "C" { - #define OID_FDDI_SMT_STATION_ACTION 0x03030277 - #define OID_FDDI_PORT_ACTION 0x03030278 - #define OID_FDDI_IF_DESCR 0x03030279 --#define OID_FDDI_IF_TYPE 0x0303027a --#define OID_FDDI_IF_MTU 0x0303027b --#define OID_FDDI_IF_SPEED 0x0303027c --#define OID_FDDI_IF_PHYS_ADDRESS 0x0303027d --#define OID_FDDI_IF_ADMIN_STATUS 0x0303027e --#define OID_FDDI_IF_OPER_STATUS 0x0303027f -+#define OID_FDDI_IF_TYPE 0x0303027A -+#define OID_FDDI_IF_MTU 0x0303027B -+#define OID_FDDI_IF_SPEED 0x0303027C -+#define OID_FDDI_IF_PHYS_ADDRESS 0x0303027D -+#define OID_FDDI_IF_ADMIN_STATUS 0x0303027E -+#define OID_FDDI_IF_OPER_STATUS 0x0303027F - #define OID_FDDI_IF_LAST_CHANGE 0x03030280 - #define OID_FDDI_IF_IN_OCTETS 0x03030281 - #define OID_FDDI_IF_IN_UCAST_PKTS 0x03030282 -@@ -725,10 +338,10 @@ extern "C" { - #define OID_FDDI_IF_OUT_OCTETS 0x03030287 - #define OID_FDDI_IF_OUT_UCAST_PKTS 0x03030288 - #define OID_FDDI_IF_OUT_NUCAST_PKTS 0x03030289 --#define OID_FDDI_IF_OUT_DISCARDS 0x0303028a --#define OID_FDDI_IF_OUT_ERRORS 0x0303028b --#define OID_FDDI_IF_OUT_QLEN 0x0303028c --#define OID_FDDI_IF_SPECIFIC 0x0303028d -+#define OID_FDDI_IF_OUT_DISCARDS 0x0303028A -+#define OID_FDDI_IF_OUT_ERRORS 0x0303028B -+#define OID_FDDI_IF_OUT_QLEN 0x0303028C -+#define OID_FDDI_IF_SPECIFIC 0x0303028D - - #define OID_WAN_PERMANENT_ADDRESS 0x04010101 - #define OID_WAN_CURRENT_ADDRESS 0x04010102 -@@ -740,14 +353,15 @@ extern "C" { - #define OID_WAN_GET_INFO 0x04010107 - #define OID_WAN_SET_LINK_INFO 0x04010108 - #define OID_WAN_GET_LINK_INFO 0x04010109 --#define OID_WAN_LINE_COUNT 0x0401010a --#define OID_WAN_PROTOCOL_CAPS 0x0401010b - --#define OID_WAN_GET_BRIDGE_INFO 0x0401020a --#define OID_WAN_SET_BRIDGE_INFO 0x0401020b --#define OID_WAN_GET_COMP_INFO 0x0401020c --#define OID_WAN_SET_COMP_INFO 0x0401020d --#define OID_WAN_GET_STATS_INFO 0x0401020e -+#define OID_WAN_LINE_COUNT 0x0401010A -+#define OID_WAN_PROTOCOL_CAPS 0x0401010B -+ -+#define OID_WAN_GET_BRIDGE_INFO 0x0401020A -+#define OID_WAN_SET_BRIDGE_INFO 0x0401020B -+#define OID_WAN_GET_COMP_INFO 0x0401020C -+#define OID_WAN_SET_COMP_INFO 0x0401020D -+#define OID_WAN_GET_STATS_INFO 0x0401020E - - #define OID_WAN_CO_GET_INFO 0x04010180 - #define OID_WAN_CO_SET_LINK_INFO 0x04010181 -@@ -782,12 +396,12 @@ extern "C" { - #define OID_TAPI_DEV_SPECIFIC 0x07030107 - #define OID_TAPI_DIAL 0x07030108 - #define OID_TAPI_DROP 0x07030109 --#define OID_TAPI_GET_ADDRESS_CAPS 0x0703010a --#define OID_TAPI_GET_ADDRESS_ID 0x0703010b --#define OID_TAPI_GET_ADDRESS_STATUS 0x0703010c --#define OID_TAPI_GET_CALL_ADDRESS_ID 0x0703010d --#define OID_TAPI_GET_CALL_INFO 0x0703010e --#define OID_TAPI_GET_CALL_STATUS 0x0703010f -+#define OID_TAPI_GET_ADDRESS_CAPS 0x0703010A -+#define OID_TAPI_GET_ADDRESS_ID 0x0703010B -+#define OID_TAPI_GET_ADDRESS_STATUS 0x0703010C -+#define OID_TAPI_GET_CALL_ADDRESS_ID 0x0703010D -+#define OID_TAPI_GET_CALL_INFO 0x0703010E -+#define OID_TAPI_GET_CALL_STATUS 0x0703010F - #define OID_TAPI_GET_DEV_CAPS 0x07030110 - #define OID_TAPI_GET_DEV_CONFIG 0x07030111 - #define OID_TAPI_GET_EXTENSION_ID 0x07030112 -@@ -798,12 +412,12 @@ extern "C" { - #define OID_TAPI_OPEN 0x07030117 - #define OID_TAPI_PROVIDER_INITIALIZE 0x07030118 - #define OID_TAPI_PROVIDER_SHUTDOWN 0x07030119 --#define OID_TAPI_SECURE_CALL 0x0703011a --#define OID_TAPI_SELECT_EXT_VERSION 0x0703011b --#define OID_TAPI_SEND_USER_USER_INFO 0x0703011c --#define OID_TAPI_SET_APP_SPECIFIC 0x0703011d --#define OID_TAPI_SET_CALL_PARAMS 0x0703011e --#define OID_TAPI_SET_DEFAULT_MEDIA_DETECTION 0x0703011f -+#define OID_TAPI_SECURE_CALL 0x0703011A -+#define OID_TAPI_SELECT_EXT_VERSION 0x0703011B -+#define OID_TAPI_SEND_USER_USER_INFO 0x0703011C -+#define OID_TAPI_SET_APP_SPECIFIC 0x0703011D -+#define OID_TAPI_SET_CALL_PARAMS 0x0703011E -+#define OID_TAPI_SET_DEFAULT_MEDIA_DETECTION 0x0703011F - #define OID_TAPI_SET_DEV_CONFIG 0x07030120 - #define OID_TAPI_SET_MEDIA_MODE 0x07030121 - #define OID_TAPI_SET_STATUS_MESSAGES 0x07030122 -@@ -819,8 +433,8 @@ extern "C" { - #define OID_ATM_MAX_ACTIVE_VPI_BITS 0x08010107 - #define OID_ATM_MAX_AAL0_PACKET_SIZE 0x08010108 - #define OID_ATM_MAX_AAL1_PACKET_SIZE 0x08010109 --#define OID_ATM_MAX_AAL34_PACKET_SIZE 0x0801010a --#define OID_ATM_MAX_AAL5_PACKET_SIZE 0x0801010b -+#define OID_ATM_MAX_AAL34_PACKET_SIZE 0x0801010A -+#define OID_ATM_MAX_AAL5_PACKET_SIZE 0x0801010B - - #define OID_ATM_SIGNALING_VPIVCI 0x08010201 - #define OID_ATM_ASSIGNED_VPI 0x08010202 -@@ -831,14 +445,14 @@ extern "C" { - #define OID_ATM_GET_NEAREST_FLOW 0x08010207 - #define OID_ATM_ALIGNMENT_REQUIRED 0x08010208 - #define OID_ATM_LECS_ADDRESS 0x08010209 --#define OID_ATM_SERVICE_ADDRESS 0x0801020a -+#define OID_ATM_SERVICE_ADDRESS 0x0801020A - --#define OID_ATM_CALL_PROCEEDING 0x0801020b --#define OID_ATM_CALL_ALERTING 0x0801020c --#define OID_ATM_PARTY_ALERTING 0x0801020d --#define OID_ATM_CALL_NOTIFY 0x0801020e -+#define OID_ATM_CALL_PROCEEDING 0x0801020B -+#define OID_ATM_CALL_ALERTING 0x0801020C -+#define OID_ATM_PARTY_ALERTING 0x0801020D -+#define OID_ATM_CALL_NOTIFY 0x0801020E - --#define OID_ATM_MY_IP_NM_ADDRESS 0x0801020f -+#define OID_ATM_MY_IP_NM_ADDRESS 0x0801020F - - #define OID_ATM_RCV_CELLS_OK 0x08020101 - #define OID_ATM_XMIT_CELLS_OK 0x08020102 -@@ -848,102 +462,173 @@ extern "C" { - #define OID_ATM_CELLS_HEC_ERROR 0x08020202 - #define OID_ATM_RCV_REASSEMBLY_ERROR 0x08020203 - --#define OID_802_11_BSSID 0x0d010101 --#define OID_802_11_SSID 0x0d010102 --#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0d010203 --#define OID_802_11_NETWORK_TYPE_IN_USE 0x0d010204 --#define OID_802_11_TX_POWER_LEVEL 0x0d010205 --#define OID_802_11_RSSI 0x0d010206 --#define OID_802_11_RSSI_TRIGGER 0x0d010207 --#define OID_802_11_INFRASTRUCTURE_MODE 0x0d010108 --#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0d010209 --#define OID_802_11_RTS_THRESHOLD 0x0d01020a --#define OID_802_11_NUMBER_OF_ANTENNAS 0x0d01020b --#define OID_802_11_RX_ANTENNA_SELECTED 0x0d01020c --#define OID_802_11_TX_ANTENNA_SELECTED 0x0d01020d --#define OID_802_11_SUPPORTED_RATES 0x0d01020e --#define OID_802_11_DESIRED_RATES 0x0d010210 --#define OID_802_11_CONFIGURATION 0x0d010211 --#define OID_802_11_STATISTICS 0x0d020212 --#define OID_802_11_ADD_WEP 0x0d010113 --#define OID_802_11_REMOVE_WEP 0x0d010114 --#define OID_802_11_DISASSOCIATE 0x0d010115 --#define OID_802_11_POWER_MODE 0x0d010216 --#define OID_802_11_BSSID_LIST 0x0d010217 --#define OID_802_11_AUTHENTICATION_MODE 0x0d010118 --#define OID_802_11_PRIVACY_FILTER 0x0d010119 --#define OID_802_11_BSSID_LIST_SCAN 0x0d01011a --#define OID_802_11_WEP_STATUS 0x0d01011b -+#define OID_WW_GEN_NETWORK_TYPES_SUPPORTED 0x09010101 -+#define OID_WW_GEN_NETWORK_TYPE_IN_USE 0x09010102 -+#define OID_WW_GEN_HEADER_FORMATS_SUPPORTED 0x09010103 -+#define OID_WW_GEN_HEADER_FORMAT_IN_USE 0x09010104 -+#define OID_WW_GEN_INDICATION_REQUEST 0x09010105 -+#define OID_WW_GEN_DEVICE_INFO 0x09010106 -+#define OID_WW_GEN_OPERATION_MODE 0x09010107 -+#define OID_WW_GEN_LOCK_STATUS 0x09010108 -+#define OID_WW_GEN_DISABLE_TRANSMITTER 0x09010109 -+#define OID_WW_GEN_NETWORK_ID 0x0901010A -+#define OID_WW_GEN_PERMANENT_ADDRESS 0x0901010B -+#define OID_WW_GEN_CURRENT_ADDRESS 0x0901010C -+#define OID_WW_GEN_SUSPEND_DRIVER 0x0901010D -+#define OID_WW_GEN_BASESTATION_ID 0x0901010E -+#define OID_WW_GEN_CHANNEL_ID 0x0901010F -+#define OID_WW_GEN_ENCRYPTION_SUPPORTED 0x09010110 -+#define OID_WW_GEN_ENCRYPTION_IN_USE 0x09010111 -+#define OID_WW_GEN_ENCRYPTION_STATE 0x09010112 -+#define OID_WW_GEN_CHANNEL_QUALITY 0x09010113 -+#define OID_WW_GEN_REGISTRATION_STATUS 0x09010114 -+#define OID_WW_GEN_RADIO_LINK_SPEED 0x09010115 -+#define OID_WW_GEN_LATENCY 0x09010116 -+#define OID_WW_GEN_BATTERY_LEVEL 0x09010117 -+#define OID_WW_GEN_EXTERNAL_POWER 0x09010118 -+ -+#define OID_WW_GEN_PING_ADDRESS 0x09010201 -+#define OID_WW_GEN_RSSI 0x09010202 -+#define OID_WW_GEN_SIM_STATUS 0x09010203 -+#define OID_WW_GEN_ENABLE_SIM_PIN 0x09010204 -+#define OID_WW_GEN_CHANGE_SIM_PIN 0x09010205 -+#define OID_WW_GEN_SIM_PUK 0x09010206 -+#define OID_WW_GEN_SIM_EXCEPTION 0x09010207 -+ -+#define OID_WW_MBX_SUBADDR 0x09050101 -+ -+#define OID_WW_MBX_FLEXLIST 0x09050103 -+#define OID_WW_MBX_GROUPLIST 0x09050104 -+#define OID_WW_MBX_TRAFFIC_AREA 0x09050105 -+#define OID_WW_MBX_LIVE_DIE 0x09050106 -+#define OID_WW_MBX_TEMP_DEFAULTLIST 0x09050107 -+ -+#define OID_WW_PIN_LOC_AUTHORIZE 0x09090101 -+#define OID_WW_PIN_LAST_LOCATION 0x09090102 -+#define OID_WW_PIN_LOC_FIX 0x09090103 -+ -+#define OID_WW_CDPD_SPNI 0x090D0101 -+#define OID_WW_CDPD_WASI 0x090D0102 -+#define OID_WW_CDPD_AREA_COLOR 0x090D0103 -+#define OID_WW_CDPD_TX_POWER_LEVEL 0x090D0104 -+#define OID_WW_CDPD_EID 0x090D0105 -+#define OID_WW_CDPD_HEADER_COMPRESSION 0x090D0106 -+#define OID_WW_CDPD_DATA_COMPRESSION 0x090D0107 -+#define OID_WW_CDPD_CHANNEL_SELECT 0x090D0108 -+#define OID_WW_CDPD_CHANNEL_STATE 0x090D0109 -+#define OID_WW_CDPD_NEI 0x090D010A -+#define OID_WW_CDPD_NEI_STATE 0x090D010B -+#define OID_WW_CDPD_SERVICE_PROVIDER_IDENTIFIER 0x090D010C -+#define OID_WW_CDPD_SLEEP_MODE 0x090D010D -+ -+#define OID_WW_CDPD_CIRCUIT_SWITCHED 0x090D010E -+ -+#define OID_WW_CDPD_TEI 0x090D010F -+#define OID_WW_CDPD_RSSI 0x090D0110 -+ -+#define OID_WW_CDPD_CS_SERVICE_PREFERENCE 0x090D0111 -+#define OID_WW_CDPD_CS_SERVICE_STATUS 0x090D0112 -+#define OID_WW_CDPD_CS_INFO 0x090D0113 -+#define OID_WW_CDPD_CS_SUSPEND 0x090D0114 -+#define OID_WW_CDPD_CS_DEFAULT_DIAL_CODE 0x090D0115 -+#define OID_WW_CDPD_CS_CALLBACK 0x090D0116 -+#define OID_WW_CDPD_CS_SID_LIST 0x090D0117 -+#define OID_WW_CDPD_CS_CONFIGURATION 0x090D0118 -+ -+#define OID_WW_ARD_SNDCP 0x09110101 -+#define OID_WW_ARD_TMLY_MSG 0x09110102 -+#define OID_WW_ARD_DATAGRAM 0x09110103 -+ -+#define OID_WW_TAC_COMPRESSION 0x09150101 -+ -+#define OID_WW_TAC_SET_CONFIG 0x09150102 -+#define OID_WW_TAC_GET_STATUS 0x09150103 -+#define OID_WW_TAC_USER_HEADER 0x09150104 -+ -+#define OID_WW_TAC_UNIQUE_SDU_TAG 0x09150105 -+#define OID_WW_TAC_SEND_COMMAND 0x09150106 -+#define OID_WW_TAC_GET_RESPONSE 0x09150107 -+#define OID_WW_TAC_DISABLE_RECEIVER 0x09150108 -+#define OID_WW_TAC_ANTENNA_MODE 0x09150109 -+#define OID_WW_TAC_FLUSH_DATA 0x0915010A -+#define OID_WW_TAC_SHUTDOWN_DEVICE 0x0915010B -+#define OID_WW_TAC_DEVICE_EXCEPTION 0x0915010C -+#define OID_WW_TAC_RECEIVE_EXCEPTION 0x0915010D -+#define OID_WW_TAC_BUFFER_EXCEPTION 0x0915010E -+#define OID_WW_TAC_BATTERY_EXCEPTION 0x0915010F -+#define OID_WW_TAC_TRANSMITTER_KEYED 0x09150110 -+#define OID_WW_TAC_SYSTEM_TABLE 0x09150111 -+#define OID_WW_TAC_CHANNEL_TABLE 0x09150112 -+#define OID_WW_TAC_DCHANNEL_TABLE 0x09150113 -+#define OID_WW_TAC_RECEIVE_QUEUE_COUNT 0x09150114 -+ -+#define OID_WW_TAC_STATISTICS 0x09160101 -+ -+#define OID_WW_MET_FUNCTION 0x09190101 -+ -+#define OID_802_11_BSSID 0x0D010101 -+#define OID_802_11_SSID 0x0D010102 -+#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 -+#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 -+#define OID_802_11_TX_POWER_LEVEL 0x0D010205 -+#define OID_802_11_RSSI 0x0D010206 -+#define OID_802_11_RSSI_TRIGGER 0x0D010207 -+#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 -+#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 -+#define OID_802_11_RTS_THRESHOLD 0x0D01020A -+#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B -+#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C -+#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D -+#define OID_802_11_SUPPORTED_RATES 0x0D01020E -+#define OID_802_11_DESIRED_RATES 0x0D010210 -+#define OID_802_11_CONFIGURATION 0x0D010211 -+#define OID_802_11_STATISTICS 0x0D020212 -+#define OID_802_11_ADD_WEP 0x0D010113 -+#define OID_802_11_REMOVE_WEP 0x0D010114 -+#define OID_802_11_DISASSOCIATE 0x0D010115 -+#define OID_802_11_POWER_MODE 0x0D010216 -+#define OID_802_11_BSSID_LIST 0x0D010217 -+#define OID_802_11_AUTHENTICATION_MODE 0x0D010118 -+#define OID_802_11_PRIVACY_FILTER 0x0D010119 -+#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A -+#define OID_802_11_WEP_STATUS 0x0D01011B - - #define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS --#define OID_802_11_RELOAD_DEFAULTS 0x0d01011c -- --#define OID_802_11_ADD_KEY 0x0d01011d --#define OID_802_11_REMOVE_KEY 0x0d01011e --#define OID_802_11_ASSOCIATION_INFORMATION 0x0d01011f --#define OID_802_11_TEST 0x0d010120 --#define OID_802_11_MEDIA_STREAM_MODE 0x0d010121 --#define OID_802_11_CAPABILITY 0x0d010122 --#define OID_802_11_PMKID 0x0d010123 --#define OID_802_11_NON_BCAST_SSID_LIST 0x0d010124 --#define OID_802_11_RADIO_STATUS 0x0d010125 -- --#define NDIS_ETH_TYPE_IPV4 0x0800 --#define NDIS_ETH_TYPE_ARP 0x0806 --#define NDIS_ETH_TYPE_IPV6 0x86dd --#define NDIS_ETH_TYPE_802_1X 0x888e --#define NDIS_ETH_TYPE_802_1Q 0x8100 --#define NDIS_ETH_TYPE_SLOW_PROTOCOL 0x8809 -+#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C -+ -+#define OID_802_11_ADD_KEY 0x0D01011D -+#define OID_802_11_REMOVE_KEY 0x0D01011E -+#define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F -+#define OID_802_11_TEST 0x0D010120 -+#define OID_802_11_MEDIA_STREAM_MODE 0x0D010121 - - #define NDIS_802_11_LENGTH_SSID 32 - #define NDIS_802_11_LENGTH_RATES 8 - #define NDIS_802_11_LENGTH_RATES_EX 16 - --#define NDIS_802_11_AUTH_REQUEST_REAUTH 0x01 --#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE 0x02 --#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR 0x06 --#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR 0x0e --#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS 0x0f -- --#define NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED 0x01 -- --#define NDIS_802_11_AI_REQFI_CAPABILITIES 1 --#define NDIS_802_11_AI_REQFI_LISTENINTERVAL 2 --#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS 4 -- --#define NDIS_802_11_AI_RESFI_CAPABILITIES 1 --#define NDIS_802_11_AI_RESFI_STATUSCODE 2 --#define NDIS_802_11_AI_RESFI_ASSOCIATIONID 4 -- - typedef enum _NDIS_802_11_STATUS_TYPE { - Ndis802_11StatusType_Authentication, - Ndis802_11StatusType_MediaStreamMode, -- Ndis802_11StatusType_PMKID_CandidateList, - Ndis802_11StatusTypeMax -- } NDIS_802_11_STATUS_TYPE, *PNDIS_802_11_STATUS_TYPE; -+ } NDIS_802_11_STATUS_TYPE,*PNDIS_802_11_STATUS_TYPE; - - typedef UCHAR NDIS_802_11_MAC_ADDRESS[6]; - - typedef struct _NDIS_802_11_STATUS_INDICATION { - NDIS_802_11_STATUS_TYPE StatusType; -- } NDIS_802_11_STATUS_INDICATION, *PNDIS_802_11_STATUS_INDICATION; -+ } NDIS_802_11_STATUS_INDICATION,*PNDIS_802_11_STATUS_INDICATION; -+ -+#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS 0x0f -+#define NDIS_802_11_AUTH_REQUEST_REAUTH 0x01 -+#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE 0x02 -+#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR 0x06 -+#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR 0x0E - - typedef struct _NDIS_802_11_AUTHENTICATION_REQUEST { - ULONG Length; - NDIS_802_11_MAC_ADDRESS Bssid; - ULONG Flags; -- } NDIS_802_11_AUTHENTICATION_REQUEST, *PNDIS_802_11_AUTHENTICATION_REQUEST; -- -- typedef struct _PMKID_CANDIDATE { -- NDIS_802_11_MAC_ADDRESS BSSID; -- ULONG Flags; -- } PMKID_CANDIDATE, *PPMKID_CANDIDATE; -- -- typedef struct _NDIS_802_11_PMKID_CANDIDATE_LIST { -- ULONG Version; -- ULONG NumCandidates; -- PMKID_CANDIDATE CandidateList[1]; -- } NDIS_802_11_PMKID_CANDIDATE_LIST, *PNDIS_802_11_PMKID_CANDIDATE_LIST; -+ } NDIS_802_11_AUTHENTICATION_REQUEST,*PNDIS_802_11_AUTHENTICATION_REQUEST; - - typedef enum _NDIS_802_11_NETWORK_TYPE { - Ndis802_11FH, -@@ -952,19 +637,19 @@ extern "C" { - Ndis802_11OFDM24, - Ndis802_11Automode, - Ndis802_11NetworkTypeMax -- } NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE; -+ } NDIS_802_11_NETWORK_TYPE,*PNDIS_802_11_NETWORK_TYPE; - - typedef struct _NDIS_802_11_NETWORK_TYPE_LIST { - ULONG NumberOfItems; - NDIS_802_11_NETWORK_TYPE NetworkType [1]; -- } NDIS_802_11_NETWORK_TYPE_LIST, *PNDIS_802_11_NETWORK_TYPE_LIST; -+ } NDIS_802_11_NETWORK_TYPE_LIST,*PNDIS_802_11_NETWORK_TYPE_LIST; - - typedef enum _NDIS_802_11_POWER_MODE { - Ndis802_11PowerModeCAM, - Ndis802_11PowerModeMAX_PSP, - Ndis802_11PowerModeFast_PSP, - Ndis802_11PowerModeMax -- } NDIS_802_11_POWER_MODE, *PNDIS_802_11_POWER_MODE; -+ } NDIS_802_11_POWER_MODE,*PNDIS_802_11_POWER_MODE; - - typedef ULONG NDIS_802_11_TX_POWER_LEVEL; - typedef LONG NDIS_802_11_RSSI; -@@ -974,7 +659,7 @@ extern "C" { - ULONG HopPattern; - ULONG HopSet; - ULONG DwellTime; -- } NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH; -+ } NDIS_802_11_CONFIGURATION_FH,*PNDIS_802_11_CONFIGURATION_FH; - - typedef struct _NDIS_802_11_CONFIGURATION { - ULONG Length; -@@ -982,7 +667,7 @@ extern "C" { - ULONG ATIMWindow; - ULONG DSConfig; - NDIS_802_11_CONFIGURATION_FH FHConfig; -- } NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION; -+ } NDIS_802_11_CONFIGURATION,*PNDIS_802_11_CONFIGURATION; - - typedef struct _NDIS_802_11_STATISTICS { - ULONG Length; -@@ -998,19 +683,7 @@ extern "C" { - LARGE_INTEGER ReceivedFragmentCount; - LARGE_INTEGER MulticastReceivedFrameCount; - LARGE_INTEGER FCSErrorCount; -- LARGE_INTEGER TKIPLocalMICFailures; -- LARGE_INTEGER TKIPICVErrorCount; -- LARGE_INTEGER TKIPCounterMeasuresInvoked; -- LARGE_INTEGER TKIPReplays; -- LARGE_INTEGER CCMPFormatErrors; -- LARGE_INTEGER CCMPReplays; -- LARGE_INTEGER CCMPDecryptErrors; -- LARGE_INTEGER FourWayHandshakeFailures; -- LARGE_INTEGER WEPUndecryptableCount; -- LARGE_INTEGER WEPICVErrorCount; -- LARGE_INTEGER DecryptSuccessCount; -- LARGE_INTEGER DecryptFailureCount; -- } NDIS_802_11_STATISTICS, *PNDIS_802_11_STATISTICS; -+ } NDIS_802_11_STATISTICS,*PNDIS_802_11_STATISTICS; - - typedef ULONG NDIS_802_11_KEY_INDEX; - typedef ULONGLONG NDIS_802_11_KEY_RSC; -@@ -1022,26 +695,27 @@ extern "C" { - NDIS_802_11_MAC_ADDRESS BSSID; - NDIS_802_11_KEY_RSC KeyRSC; - UCHAR KeyMaterial[1]; -- } NDIS_802_11_KEY, *PNDIS_802_11_KEY; -+ } NDIS_802_11_KEY,*PNDIS_802_11_KEY; - - typedef struct _NDIS_802_11_REMOVE_KEY { - ULONG Length; - ULONG KeyIndex; - NDIS_802_11_MAC_ADDRESS BSSID; -- } NDIS_802_11_REMOVE_KEY, *PNDIS_802_11_REMOVE_KEY; -+ } NDIS_802_11_REMOVE_KEY,*PNDIS_802_11_REMOVE_KEY; -+ - typedef struct _NDIS_802_11_WEP { - ULONG Length; - ULONG KeyIndex; - ULONG KeyLength; - UCHAR KeyMaterial[1]; -- } NDIS_802_11_WEP, *PNDIS_802_11_WEP; -+ } NDIS_802_11_WEP,*PNDIS_802_11_WEP; - - typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE { - Ndis802_11IBSS, - Ndis802_11Infrastructure, - Ndis802_11AutoUnknown, - Ndis802_11InfrastructureMax -- } NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE; -+ } NDIS_802_11_NETWORK_INFRASTRUCTURE,*PNDIS_802_11_NETWORK_INFRASTRUCTURE; - - typedef enum _NDIS_802_11_AUTHENTICATION_MODE { - Ndis802_11AuthModeOpen, -@@ -1050,10 +724,8 @@ extern "C" { - Ndis802_11AuthModeWPA, - Ndis802_11AuthModeWPAPSK, - Ndis802_11AuthModeWPANone, -- Ndis802_11AuthModeWPA2, -- Ndis802_11AuthModeWPA2PSK, - Ndis802_11AuthModeMax -- } NDIS_802_11_AUTHENTICATION_MODE, *PNDIS_802_11_AUTHENTICATION_MODE; -+ } NDIS_802_11_AUTHENTICATION_MODE,*PNDIS_802_11_AUTHENTICATION_MODE; - - typedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES]; - typedef UCHAR NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX]; -@@ -1061,7 +733,7 @@ extern "C" { - typedef struct _NDIS_802_11_SSID { - ULONG SsidLength; - UCHAR Ssid[NDIS_802_11_LENGTH_SSID]; -- } NDIS_802_11_SSID, *PNDIS_802_11_SSID; -+ } NDIS_802_11_SSID,*PNDIS_802_11_SSID; - - typedef struct _NDIS_WLAN_BSSID { - ULONG Length; -@@ -1074,12 +746,12 @@ extern "C" { - NDIS_802_11_CONFIGURATION Configuration; - NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; - NDIS_802_11_RATES SupportedRates; -- } NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID; -+ } NDIS_WLAN_BSSID,*PNDIS_WLAN_BSSID; - - typedef struct _NDIS_802_11_BSSID_LIST { - ULONG NumberOfItems; - NDIS_WLAN_BSSID Bssid[1]; -- } NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST; -+ } NDIS_802_11_BSSID_LIST,*PNDIS_802_11_BSSID_LIST; - - typedef struct _NDIS_WLAN_BSSID_EX { - ULONG Length; -@@ -1094,24 +766,24 @@ extern "C" { - NDIS_802_11_RATES_EX SupportedRates; - ULONG IELength; - UCHAR IEs[1]; -- } NDIS_WLAN_BSSID_EX, *PNDIS_WLAN_BSSID_EX; -+ } NDIS_WLAN_BSSID_EX,*PNDIS_WLAN_BSSID_EX; - - typedef struct _NDIS_802_11_BSSID_LIST_EX { - ULONG NumberOfItems; - NDIS_WLAN_BSSID_EX Bssid[1]; -- } NDIS_802_11_BSSID_LIST_EX, *PNDIS_802_11_BSSID_LIST_EX; -+ } NDIS_802_11_BSSID_LIST_EX,*PNDIS_802_11_BSSID_LIST_EX; - - typedef struct _NDIS_802_11_FIXED_IEs { - UCHAR Timestamp[8]; - USHORT BeaconInterval; - USHORT Capabilities; -- } NDIS_802_11_FIXED_IEs, *PNDIS_802_11_FIXED_IEs; -+ } NDIS_802_11_FIXED_IEs,*PNDIS_802_11_FIXED_IEs; - - typedef struct _NDIS_802_11_VARIABLE_IEs { - UCHAR ElementID; - UCHAR Length; - UCHAR data[1]; -- } NDIS_802_11_VARIABLE_IEs, *PNDIS_802_11_VARIABLE_IEs; -+ } NDIS_802_11_VARIABLE_IEs,*PNDIS_802_11_VARIABLE_IEs; - - typedef ULONG NDIS_802_11_FRAGMENTATION_THRESHOLD; - typedef ULONG NDIS_802_11_RTS_THRESHOLD; -@@ -1120,38 +792,46 @@ extern "C" { - typedef enum _NDIS_802_11_PRIVACY_FILTER { - Ndis802_11PrivFilterAcceptAll, - Ndis802_11PrivFilter8021xWEP -- } NDIS_802_11_PRIVACY_FILTER, *PNDIS_802_11_PRIVACY_FILTER; -+ } NDIS_802_11_PRIVACY_FILTER,*PNDIS_802_11_PRIVACY_FILTER; - - typedef enum _NDIS_802_11_WEP_STATUS { - Ndis802_11WEPEnabled, -- Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled, -+ Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled, - Ndis802_11WEPDisabled, -- Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled, -+ Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled, - Ndis802_11WEPKeyAbsent, -- Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent, -+ Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent, - Ndis802_11WEPNotSupported, -- Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported, -+ Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported, - Ndis802_11Encryption2Enabled, - Ndis802_11Encryption2KeyAbsent, - Ndis802_11Encryption3Enabled, - Ndis802_11Encryption3KeyAbsent -- } NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS, NDIS_802_11_ENCRYPTION_STATUS, *PNDIS_802_11_ENCRYPTION_STATUS; -+ } NDIS_802_11_WEP_STATUS,*PNDIS_802_11_WEP_STATUS,NDIS_802_11_ENCRYPTION_STATUS,*PNDIS_802_11_ENCRYPTION_STATUS; - - typedef enum _NDIS_802_11_RELOAD_DEFAULTS { - Ndis802_11ReloadWEPKeys -- } NDIS_802_11_RELOAD_DEFAULTS, *PNDIS_802_11_RELOAD_DEFAULTS; -+ } NDIS_802_11_RELOAD_DEFAULTS,*PNDIS_802_11_RELOAD_DEFAULTS; -+ -+#define NDIS_802_11_AI_REQFI_CAPABILITIES 1 -+#define NDIS_802_11_AI_REQFI_LISTENINTERVAL 2 -+#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS 4 -+ -+#define NDIS_802_11_AI_RESFI_CAPABILITIES 1 -+#define NDIS_802_11_AI_RESFI_STATUSCODE 2 -+#define NDIS_802_11_AI_RESFI_ASSOCIATIONID 4 - - typedef struct _NDIS_802_11_AI_REQFI { - USHORT Capabilities; - USHORT ListenInterval; - NDIS_802_11_MAC_ADDRESS CurrentAPAddress; -- } NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI; -+ } NDIS_802_11_AI_REQFI,*PNDIS_802_11_AI_REQFI; - - typedef struct _NDIS_802_11_AI_RESFI { - USHORT Capabilities; - USHORT StatusCode; - USHORT AssociationId; -- } NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI; -+ } NDIS_802_11_AI_RESFI,*PNDIS_802_11_AI_RESFI; - - typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION { - ULONG Length; -@@ -1163,12 +843,12 @@ extern "C" { - NDIS_802_11_AI_RESFI ResponseFixedIEs; - ULONG ResponseIELength; - ULONG OffsetResponseIEs; -- } NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION; -+ } NDIS_802_11_ASSOCIATION_INFORMATION,*PNDIS_802_11_ASSOCIATION_INFORMATION; - - typedef struct _NDIS_802_11_AUTHENTICATION_EVENT { - NDIS_802_11_STATUS_INDICATION Status; - NDIS_802_11_AUTHENTICATION_REQUEST Request[1]; -- } NDIS_802_11_AUTHENTICATION_EVENT, *PNDIS_802_11_AUTHENTICATION_EVENT; -+ } NDIS_802_11_AUTHENTICATION_EVENT,*PNDIS_802_11_AUTHENTICATION_EVENT; - - typedef struct _NDIS_802_11_TEST { - ULONG Length; -@@ -1177,274 +857,126 @@ extern "C" { - NDIS_802_11_AUTHENTICATION_EVENT AuthenticationEvent; - NDIS_802_11_RSSI RssiTrigger; - }; -- } NDIS_802_11_TEST, *PNDIS_802_11_TEST; -+ } NDIS_802_11_TEST,*PNDIS_802_11_TEST; - - typedef enum _NDIS_802_11_MEDIA_STREAM_MODE { - Ndis802_11MediaStreamOff, -- Ndis802_11MediaStreamOn, -- } NDIS_802_11_MEDIA_STREAM_MODE, *PNDIS_802_11_MEDIA_STREAM_MODE; -- -- typedef UCHAR NDIS_802_11_PMKID_VALUE[16]; -- -- typedef struct _BSSID_INFO { -- NDIS_802_11_MAC_ADDRESS BSSID; -- NDIS_802_11_PMKID_VALUE PMKID; -- } BSSID_INFO, *PBSSID_INFO; -- -- typedef struct _NDIS_802_11_PMKID { -- ULONG Length; -- ULONG BSSIDInfoCount; -- BSSID_INFO BSSIDInfo[1]; -- } NDIS_802_11_PMKID, *PNDIS_802_11_PMKID; -- -- typedef struct _NDIS_802_11_AUTHENTICATION_ENCRYPTION { -- NDIS_802_11_AUTHENTICATION_MODE AuthModeSupported; -- NDIS_802_11_ENCRYPTION_STATUS EncryptStatusSupported; -- } NDIS_802_11_AUTHENTICATION_ENCRYPTION, *PNDIS_802_11_AUTHENTICATION_ENCRYPTION; -- -- typedef struct _NDIS_802_11_CAPABILITY { -- ULONG Length; -- ULONG Version; -- ULONG NoOfPMKIDs; -- ULONG NoOfAuthEncryptPairsSupported; -- NDIS_802_11_AUTHENTICATION_ENCRYPTION AuthenticationEncryptionSupported[1]; -- } NDIS_802_11_CAPABILITY, *PNDIS_802_11_CAPABILITY; -- -- typedef struct _NDIS_802_11_NON_BCAST_SSID_LIST { -- ULONG NumberOfItems; -- NDIS_802_11_SSID Non_Bcast_Ssid[1]; -- } NDIS_802_11_NON_BCAST_SSID_LIST, *PNDIS_802_11_NON_BCAST_SSID_LIST; -- -- typedef enum _NDIS_802_11_RADIO_STATUS { -- Ndis802_11RadioStatusOn, -- Ndis802_11RadioStatusHardwareOff, -- Ndis802_11RadioStatusSoftwareOff, -- Ndis802_11RadioStatusHardwareSoftwareOff, -- Ndis802_11RadioStatusMax -- } NDIS_802_11_RADIO_STATUS, *PNDIS_802_11_RADIO_STATUS; -- --#define OID_IRDA_RECEIVING 0x0a010100 --#define OID_IRDA_TURNAROUND_TIME 0x0a010101 --#define OID_IRDA_SUPPORTED_SPEEDS 0x0a010102 --#define OID_IRDA_LINK_SPEED 0x0a010103 --#define OID_IRDA_MEDIA_BUSY 0x0a010104 -- --#define OID_IRDA_EXTRA_RCV_BOFS 0x0a010200 --#define OID_IRDA_RATE_SNIFF 0x0a010201 --#define OID_IRDA_UNICAST_LIST 0x0a010202 --#define OID_IRDA_MAX_UNICAST_LIST_SIZE 0x0a010203 --#define OID_IRDA_MAX_RECEIVE_WINDOW_SIZE 0x0a010204 --#define OID_IRDA_MAX_SEND_WINDOW_SIZE 0x0a010205 --#define OID_IRDA_RESERVED1 0x0a01020a --#define OID_IRDA_RESERVED2 0x0a01020f -- --#define OID_1394_LOCAL_NODE_INFO 0x0c010101 --#define OID_1394_VC_INFO 0x0c010102 -- --#define OID_CO_ADD_PVC 0xfe000001 --#define OID_CO_DELETE_PVC 0xfe000002 --#define OID_CO_GET_CALL_INFORMATION 0xfe000003 --#define OID_CO_ADD_ADDRESS 0xfe000004 --#define OID_CO_DELETE_ADDRESS 0xfe000005 --#define OID_CO_GET_ADDRESSES 0xfe000006 --#define OID_CO_ADDRESS_CHANGE 0xfe000007 --#define OID_CO_SIGNALING_ENABLED 0xfe000008 --#define OID_CO_SIGNALING_DISABLED 0xfe000009 --#define OID_CO_AF_CLOSE 0xfe00000a -- --#define OID_CO_TAPI_CM_CAPS 0xfe001001 --#define OID_CO_TAPI_LINE_CAPS 0xfe001002 --#define OID_CO_TAPI_ADDRESS_CAPS 0xfe001003 --#define OID_CO_TAPI_TRANSLATE_TAPI_CALLPARAMS 0xfe001004 --#define OID_CO_TAPI_TRANSLATE_NDIS_CALLPARAMS 0xfe001005 --#define OID_CO_TAPI_TRANSLATE_TAPI_SAP 0xfe001006 --#define OID_CO_TAPI_GET_CALL_DIAGNOSTICS 0xfe001007 --#define OID_CO_TAPI_REPORT_DIGITS 0xfe001008 --#define OID_CO_TAPI_DONT_REPORT_DIGITS 0xfe001009 -- --#define OID_PNP_CAPABILITIES 0xfd010100 --#define OID_PNP_SET_POWER 0xfd010101 --#define OID_PNP_QUERY_POWER 0xfd010102 --#define OID_PNP_ADD_WAKE_UP_PATTERN 0xfd010103 --#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xfd010104 --#define OID_PNP_WAKE_UP_PATTERN_LIST 0xfd010105 --#define OID_PNP_ENABLE_WAKE_UP 0xfd010106 -- --#define OID_PNP_WAKE_UP_OK 0xfd020200 --#define OID_PNP_WAKE_UP_ERROR 0xfd020201 -- --#if (NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620) --#define OID_PM_CURRENT_CAPABILITIES 0xfd010107 --#define OID_PM_HARDWARE_CAPABILITIES 0xfd010108 --#define OID_PM_PARAMETERS 0xfd010109 --#define OID_PM_ADD_WOL_PATTERN 0xfd01010a --#define OID_PM_REMOVE_WOL_PATTERN 0xfd01010b --#define OID_PM_WOL_PATTERN_LIST 0xfd01010c --#define OID_PM_ADD_PROTOCOL_OFFLOAD 0xfd01010d --#define OID_PM_GET_PROTOCOL_OFFLOAD 0xfd01010e --#define OID_PM_REMOVE_PROTOCOL_OFFLOAD 0xfd01010f --#define OID_PM_PROTOCOL_OFFLOAD_LIST 0xfd010110 --#define OID_PM_RESERVED_1 0xfd010111 -- --#define OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES 0x00010221 --#define OID_RECEIVE_FILTER_GLOBAL_PARAMETERS 0x00010222 --#define OID_RECEIVE_FILTER_ALLOCATE_QUEUE 0x00010223 --#define OID_RECEIVE_FILTER_FREE_QUEUE 0x00010224 --#define OID_RECEIVE_FILTER_ENUM_QUEUES 0x00010225 --#define OID_RECEIVE_FILTER_QUEUE_PARAMETERS 0x00010226 --#define OID_RECEIVE_FILTER_SET_FILTER 0x00010227 --#define OID_RECEIVE_FILTER_CLEAR_FILTER 0x00010228 --#define OID_RECEIVE_FILTER_ENUM_FILTERS 0x00010229 --#define OID_RECEIVE_FILTER_PARAMETERS 0x0001022a --#define OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE 0x0001022b --#define OID_RECEIVE_FILTER_CURRENT_CAPABILITIES 0x0001022d --#define OID_NIC_SWITCH_HARDWARE_CAPABILITIES 0x0001022e --#define OID_NIC_SWITCH_CURRENT_CAPABILITIES 0x0001022f --#if NDIS_SUPPORT_NDIS630 --#define OID_RECEIVE_FILTER_MOVE_FILTER 0x00010230 --#endif --#define OID_VLAN_RESERVED1 0x00010231 --#define OID_VLAN_RESERVED2 0x00010232 --#define OID_VLAN_RESERVED3 0x00010233 --#define OID_VLAN_RESERVED4 0x00010234 --#if NDIS_SUPPORT_NDIS630 --#define OID_PACKET_COALESCING_FILTER_MATCH_COUNT 0x00010235 --#endif --#endif -- --#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630 --#define OID_NIC_SWITCH_CREATE_SWITCH 0x00010237 --#define OID_NIC_SWITCH_PARAMETERS 0x00010238 --#define OID_NIC_SWITCH_DELETE_SWITCH 0x00010239 --#define OID_NIC_SWITCH_ENUM_SWITCHES 0x00010240 --#define OID_NIC_SWITCH_CREATE_VPORT 0x00010241 --#define OID_NIC_SWITCH_VPORT_PARAMETERS 0x00010242 --#define OID_NIC_SWITCH_ENUM_VPORTS 0x00010243 --#define OID_NIC_SWITCH_DELETE_VPORT 0x00010244 --#define OID_NIC_SWITCH_ALLOCATE_VF 0x00010245 --#define OID_NIC_SWITCH_FREE_VF 0x00010246 --#define OID_NIC_SWITCH_VF_PARAMETERS 0x00010247 --#define OID_NIC_SWITCH_ENUM_VFS 0x00010248 -- --#define OID_SRIOV_HARDWARE_CAPABILITIES 0x00010249 --#define OID_SRIOV_CURRENT_CAPABILITIES 0x00010250 --#define OID_SRIOV_READ_VF_CONFIG_SPACE 0x00010251 --#define OID_SRIOV_WRITE_VF_CONFIG_SPACE 0x00010252 --#define OID_SRIOV_READ_VF_CONFIG_BLOCK 0x00010253 --#define OID_SRIOV_WRITE_VF_CONFIG_BLOCK 0x00010254 --#define OID_SRIOV_RESET_VF 0x00010255 --#define OID_SRIOV_SET_VF_POWER_STATE 0x00010256 --#define OID_SRIOV_VF_VENDOR_DEVICE_ID 0x00010257 --#define OID_SRIOV_PROBED_BARS 0x00010258 --#define OID_SRIOV_BAR_RESOURCES 0x00010259 --#define OID_SRIOV_PF_LUID 0x00010260 -- --#define OID_SRIOV_CONFIG_STATE 0x00010261 --#define OID_SRIOV_VF_SERIAL_NUMBER 0x00010262 --#define OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK 0x00010269 -- --#define OID_SWITCH_PROPERTY_ADD 0x00010263 --#define OID_SWITCH_PROPERTY_UPDATE 0x00010264 --#define OID_SWITCH_PROPERTY_DELETE 0x00010265 --#define OID_SWITCH_PROPERTY_ENUM 0x00010266 --#define OID_SWITCH_FEATURE_STATUS_QUERY 0x00010267 -- --#define OID_SWITCH_NIC_REQUEST 0x00010270 --#define OID_SWITCH_PORT_PROPERTY_ADD 0x00010271 --#define OID_SWITCH_PORT_PROPERTY_UPDATE 0x00010272 --#define OID_SWITCH_PORT_PROPERTY_DELETE 0x00010273 --#define OID_SWITCH_PORT_PROPERTY_ENUM 0x00010274 --#define OID_SWITCH_PARAMETERS 0x00010275 --#define OID_SWITCH_PORT_ARRAY 0x00010276 --#define OID_SWITCH_NIC_ARRAY 0x00010277 --#define OID_SWITCH_PORT_CREATE 0x00010278 --#define OID_SWITCH_PORT_DELETE 0x00010279 --#define OID_SWITCH_NIC_CREATE 0x0001027a --#define OID_SWITCH_NIC_CONNECT 0x0001027b --#define OID_SWITCH_NIC_DISCONNECT 0x0001027c --#define OID_SWITCH_NIC_DELETE 0x0001027d --#define OID_SWITCH_PORT_FEATURE_STATUS_QUERY 0x0001027e --#define OID_SWITCH_PORT_TEARDOWN 0x0001027f --#define OID_SWITCH_NIC_SAVE 0x00010290 --#define OID_SWITCH_NIC_SAVE_COMPLETE 0x00010291 --#define OID_SWITCH_NIC_RESTORE 0x00010292 --#define OID_SWITCH_NIC_RESTORE_COMPLETE 0x00010293 --#define OID_SWITCH_NIC_UPDATED 0x00010294 --#define OID_SWITCH_PORT_UPDATED 0x00010295 --#endif -+ Ndis802_11MediaStreamOn -+ } NDIS_802_11_MEDIA_STREAM_MODE,*PNDIS_802_11_MEDIA_STREAM_MODE; -+ -+#define OID_IRDA_RECEIVING 0x0A010100 -+#define OID_IRDA_TURNAROUND_TIME 0x0A010101 -+#define OID_IRDA_SUPPORTED_SPEEDS 0x0A010102 -+#define OID_IRDA_LINK_SPEED 0x0A010103 -+#define OID_IRDA_MEDIA_BUSY 0x0A010104 -+ -+#define OID_IRDA_EXTRA_RCV_BOFS 0x0A010200 -+#define OID_IRDA_RATE_SNIFF 0x0A010201 -+#define OID_IRDA_UNICAST_LIST 0x0A010202 -+#define OID_IRDA_MAX_UNICAST_LIST_SIZE 0x0A010203 -+#define OID_IRDA_MAX_RECEIVE_WINDOW_SIZE 0x0A010204 -+#define OID_IRDA_MAX_SEND_WINDOW_SIZE 0x0A010205 -+#define OID_IRDA_RESERVED1 0x0A01020A -+#define OID_IRDA_RESERVED2 0x0A01020F -+ -+#define OID_BPC_ADAPTER_CAPS 0x0B010100 -+#define OID_BPC_DEVICES 0x0B010101 -+#define OID_BPC_DEVICE_CAPS 0x0B010102 -+#define OID_BPC_DEVICE_SETTINGS 0x0B010103 -+#define OID_BPC_CONNECTION_STATUS 0x0B010104 -+#define OID_BPC_ADDRESS_COMPARE 0x0B010105 -+#define OID_BPC_PROGRAM_GUIDE 0x0B010106 -+#define OID_BPC_LAST_ERROR 0x0B020107 -+#define OID_BPC_POOL 0x0B010108 -+ -+#define OID_BPC_PROVIDER_SPECIFIC 0x0B020109 -+#define OID_BPC_ADAPTER_SPECIFIC 0x0B02010A -+ -+#define OID_BPC_CONNECT 0x0B01010B -+#define OID_BPC_COMMIT 0x0B01010C -+#define OID_BPC_DISCONNECT 0x0B01010D -+#define OID_BPC_CONNECTION_ENABLE 0x0B01010E -+#define OID_BPC_POOL_RESERVE 0x0B01010F -+#define OID_BPC_POOL_RETURN 0x0B010110 -+#define OID_BPC_FORCE_RECEIVE 0x0B010111 -+ -+#define OID_BPC_LAST 0x0B020112 -+ -+#define OID_1394_LOCAL_NODE_INFO 0x0C010101 -+#define OID_1394_VC_INFO 0x0C010102 -+ -+#define OID_CO_ADD_PVC 0xFE000001 -+#define OID_CO_DELETE_PVC 0xFE000002 -+#define OID_CO_GET_CALL_INFORMATION 0xFE000003 -+#define OID_CO_ADD_ADDRESS 0xFE000004 -+#define OID_CO_DELETE_ADDRESS 0xFE000005 -+#define OID_CO_GET_ADDRESSES 0xFE000006 -+#define OID_CO_ADDRESS_CHANGE 0xFE000007 -+#define OID_CO_SIGNALING_ENABLED 0xFE000008 -+#define OID_CO_SIGNALING_DISABLED 0xFE000009 -+#define OID_CO_AF_CLOSE 0xFE00000A -+ -+#define OID_CO_TAPI_CM_CAPS 0xFE001001 -+#define OID_CO_TAPI_LINE_CAPS 0xFE001002 -+#define OID_CO_TAPI_ADDRESS_CAPS 0xFE001003 -+#define OID_CO_TAPI_TRANSLATE_TAPI_CALLPARAMS 0xFE001004 -+#define OID_CO_TAPI_TRANSLATE_NDIS_CALLPARAMS 0xFE001005 -+#define OID_CO_TAPI_TRANSLATE_TAPI_SAP 0xFE001006 -+#define OID_CO_TAPI_GET_CALL_DIAGNOSTICS 0xFE001007 -+#define OID_CO_TAPI_REPORT_DIGITS 0xFE001008 -+#define OID_CO_TAPI_DONT_REPORT_DIGITS 0xFE001009 -+ -+#define OID_PNP_CAPABILITIES 0xFD010100 -+#define OID_PNP_SET_POWER 0xFD010101 -+#define OID_PNP_QUERY_POWER 0xFD010102 -+#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103 -+#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104 -+#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105 -+#define OID_PNP_ENABLE_WAKE_UP 0xFD010106 -+ -+#define OID_PNP_WAKE_UP_OK 0xFD020200 -+#define OID_PNP_WAKE_UP_ERROR 0xFD020201 - - #define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 - #define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 - #define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 - --#define OID_TCP_TASK_OFFLOAD 0xfc010201 --#define OID_TCP_TASK_IPSEC_ADD_SA 0xfc010202 --#define OID_TCP_TASK_IPSEC_DELETE_SA 0xfc010203 --#define OID_TCP_SAN_SUPPORT 0xfc010204 --#define OID_TCP_TASK_IPSEC_ADD_UDPESP_SA 0xfc010205 --#define OID_TCP_TASK_IPSEC_DELETE_UDPESP_SA 0xfc010206 --#define OID_TCP4_OFFLOAD_STATS 0xfc010207 --#define OID_TCP6_OFFLOAD_STATS 0xfc010208 --#define OID_IP4_OFFLOAD_STATS 0xfc010209 --#define OID_IP6_OFFLOAD_STATS 0xfc01020a -- --#define OID_TCP_OFFLOAD_CURRENT_CONFIG 0xfc01020b --#define OID_TCP_OFFLOAD_PARAMETERS 0xfc01020c --#define OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES 0xfc01020d --#define OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG 0xfc01020e --#define OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 0xfc01020f --#define OID_OFFLOAD_ENCAPSULATION 0x0101010a -- --#if NDIS_SUPPORT_NDIS61 --#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA 0xfc030202 --#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA 0xfc030203 --#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_SA 0xfc030204 --#endif --#if NDIS_SUPPORT_NDIS630 --#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX 0xfc030205 --#endif -- --#define OID_FFP_SUPPORT 0xfc010210 --#define OID_FFP_FLUSH 0xfc010211 --#define OID_FFP_CONTROL 0xfc010212 --#define OID_FFP_PARAMS 0xfc010213 --#define OID_FFP_DATA 0xfc010214 -- --#define OID_FFP_DRIVER_STATS 0xfc020210 --#define OID_FFP_ADAPTER_STATS 0xfc020211 -- --#define OID_TCP_CONNECTION_OFFLOAD_PARAMETERS 0xfc030201 -- --#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620 --#define OID_TUNNEL_INTERFACE_SET_OID 0x0f010106 --#define OID_TUNNEL_INTERFACE_RELEASE_OID 0x0f010107 --#endif -- --#define OID_QOS_RESERVED1 0xfb010100 --#define OID_QOS_RESERVED2 0xfb010101 --#define OID_QOS_RESERVED3 0xfb010102 --#define OID_QOS_RESERVED4 0xfb010103 --#define OID_QOS_RESERVED5 0xfb010104 --#define OID_QOS_RESERVED6 0xfb010105 --#define OID_QOS_RESERVED7 0xfb010106 --#define OID_QOS_RESERVED8 0xfb010107 --#define OID_QOS_RESERVED9 0xfb010108 --#define OID_QOS_RESERVED10 0xfb010109 --#define OID_QOS_RESERVED11 0xfb01010a --#define OID_QOS_RESERVED12 0xfb01010b --#define OID_QOS_RESERVED13 0xfb01010c --#define OID_QOS_RESERVED14 0xfb01010d --#define OID_QOS_RESERVED15 0xfb01010e --#define OID_QOS_RESERVED16 0xfb01010f --#define OID_QOS_RESERVED17 0xfb010110 --#define OID_QOS_RESERVED18 0xfb010111 --#define OID_QOS_RESERVED19 0xfb010112 --#define OID_QOS_RESERVED20 0xfb010113 -- --#define OFFLOAD_MAX_SAS 3 -- --#define OFFLOAD_INBOUND_SA 0x0001 --#define OFFLOAD_OUTBOUND_SA 0x0002 -+#define OID_TCP_TASK_OFFLOAD 0xFC010201 -+#define OID_TCP_TASK_IPSEC_ADD_SA 0xFC010202 -+#define OID_TCP_TASK_IPSEC_DELETE_SA 0xFC010203 -+#define OID_TCP_SAN_SUPPORT 0xFC010204 -+#define OID_TCP_TASK_IPSEC_ADD_UDPESP_SA 0xFC010205 -+#define OID_TCP_TASK_IPSEC_DELETE_UDPESP_SA 0xFC010206 -+ -+#define OID_FFP_SUPPORT 0xFC010210 -+#define OID_FFP_FLUSH 0xFC010211 -+#define OID_FFP_CONTROL 0xFC010212 -+#define OID_FFP_PARAMS 0xFC010213 -+#define OID_FFP_DATA 0xFC010214 -+ -+#define OID_FFP_DRIVER_STATS 0xFC020210 -+#define OID_FFP_ADAPTER_STATS 0xFC020211 -+ -+#define OID_QOS_TC_SUPPORTED 0xFB010100 -+#define OID_QOS_REMAINING_BANDWIDTH 0xFB010101 -+#define OID_QOS_ISSLOW_FLOW 0xFB010102 -+#define OID_QOS_BESTEFFORT_BANDWIDTH 0xFB010103 -+#define OID_QOS_LATENCY 0xFB010104 -+#define OID_QOS_FLOW_IP_CONFORMING 0xFB010105 -+#define OID_QOS_FLOW_COUNT 0xFB010106 -+#define OID_QOS_NON_BESTEFFORT_LIMIT 0xFB010107 -+#define OID_QOS_SCHEDULING_PROFILES_SUPPORTED 0xFB010108 -+#define OID_QOS_CURRENT_SCHEDULING_PROFILE 0xFB010109 -+#define OID_QOS_TIMER_RESOLUTION 0xFB01010A -+#define OID_QOS_STATISTICS_BUFFER 0xFB01010B -+#define OID_QOS_HIERARCHY_CLASS 0xFB01010C -+#define OID_QOS_FLOW_MODE 0xFB01010D -+#define OID_QOS_ISSLOW_FRAGMENT_SIZE 0xFB01010E -+#define OID_QOS_FLOW_IP_NONCONFORMING 0xFB01010F -+#define OID_QOS_FLOW_8021P_CONFORMING 0xFB010110 -+#define OID_QOS_FLOW_8021P_NONCONFORMING 0xFB010111 -+#define OID_QOS_ENABLE_AVG_STATS 0xFB010112 -+#define OID_QOS_ENABLE_WINDOW_ADJUSTMENT 0xFB010113 - - typedef struct NDIS_CO_DEVICE_PROFILE { - NDIS_VAR_DATA_DESC DeviceDescription; -@@ -1475,11 +1007,9 @@ extern "C" { - ULONG ulUUIDropSize; - ULONG ulUUISendUserUserInfoSize; - ULONG ulUUICallInfoSize; -- } NDIS_CO_DEVICE_PROFILE, *PNDIS_CO_DEVICE_PROFILE; -+ } NDIS_CO_DEVICE_PROFILE,*PNDIS_CO_DEVICE_PROFILE; - --#ifndef IP_EXPORT_INCLUDED -- typedef ULONG IPAddr, IPMask; --#endif -+ typedef ULONG IPAddr,IPMask; - typedef ULONG SPI_TYPE; - - typedef enum _OFFLOAD_OPERATION_E { -@@ -1491,7 +1021,7 @@ extern "C" { - ULONG algoIdentifier; - ULONG algoKeylen; - ULONG algoRounds; -- } OFFLOAD_ALGO_INFO, *POFFLOAD_ALGO_INFO; -+ } OFFLOAD_ALGO_INFO,*POFFLOAD_ALGO_INFO; - - typedef enum _OFFLOAD_CONF_ALGO { - OFFLOAD_IPSEC_CONF_NONE, -@@ -1514,7 +1044,12 @@ extern "C" { - OFFLOAD_ALGO_INFO IntegrityAlgo; - OFFLOAD_ALGO_INFO ConfAlgo; - OFFLOAD_ALGO_INFO Reserved; -- } OFFLOAD_SECURITY_ASSOCIATION, *POFFLOAD_SECURITY_ASSOCIATION; -+ } OFFLOAD_SECURITY_ASSOCIATION,*POFFLOAD_SECURITY_ASSOCIATION; -+ -+#define OFFLOAD_MAX_SAS 3 -+ -+#define OFFLOAD_INBOUND_SA 0x0001 -+#define OFFLOAD_OUTBOUND_SA 0x0002 - - typedef struct _OFFLOAD_IPSEC_ADD_SA { - IPAddr SrcAddr; -@@ -1532,21 +1067,21 @@ extern "C" { - HANDLE OffloadHandle; - ULONG KeyLen; - UCHAR KeyMat[1]; -- } OFFLOAD_IPSEC_ADD_SA, *POFFLOAD_IPSEC_ADD_SA; -+ } OFFLOAD_IPSEC_ADD_SA,*POFFLOAD_IPSEC_ADD_SA; - - typedef struct _OFFLOAD_IPSEC_DELETE_SA { - HANDLE OffloadHandle; -- } OFFLOAD_IPSEC_DELETE_SA, *POFFLOAD_IPSEC_DELETE_SA; -+ } OFFLOAD_IPSEC_DELETE_SA,*POFFLOAD_IPSEC_DELETE_SA; - - typedef enum _UDP_ENCAP_TYPE { - OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_IKE, - OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_OTHER -- } UDP_ENCAP_TYPE, *PUDP_ENCAP_TYPE; -+ } UDP_ENCAP_TYPE,*PUDP_ENCAP_TYPE; - - typedef struct _OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY { - UDP_ENCAP_TYPE UdpEncapType; - USHORT DstEncapPort; -- } OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY, *POFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY; -+ } OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY,*POFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY; - - typedef struct _OFFLOAD_IPSEC_ADD_UDPESP_SA { - IPAddr SrcAddr; -@@ -1566,12 +1101,12 @@ extern "C" { - HANDLE EncapTypeEntryOffldHandle; - ULONG KeyLen; - UCHAR KeyMat[1]; -- } OFFLOAD_IPSEC_ADD_UDPESP_SA, *POFFLOAD_IPSEC_ADD_UDPESP_SA; -+ } OFFLOAD_IPSEC_ADD_UDPESP_SA,*POFFLOAD_IPSEC_ADD_UDPESP_SA; - - typedef struct _OFFLOAD_IPSEC_DELETE_UDPESP_SA { - HANDLE OffloadHandle; - HANDLE EncapTypeEntryOffldHandle; -- } OFFLOAD_IPSEC_DELETE_UDPESP_SA, *POFFLOAD_IPSEC_DELETE_UDPESP_SA; -+ } OFFLOAD_IPSEC_DELETE_UDPESP_SA,*POFFLOAD_IPSEC_DELETE_UDPESP_SA; - - typedef ULONG NDIS_VLAN_ID; - -@@ -1591,17 +1126,8 @@ extern "C" { - NdisMediumCoWan, - NdisMedium1394, - NdisMediumInfiniBand, --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 -- NdisMediumTunnel, -- NdisMediumNative802_11, -- NdisMediumLoopback, --#endif --#if NTDDI_VERSION >= 0x06010000 -- NdisMediumWiMAX, -- NdisMediumIP, --#endif - NdisMediumMax -- } NDIS_MEDIUM, *PNDIS_MEDIUM; -+ } NDIS_MEDIUM,*PNDIS_MEDIUM; - - typedef enum _NDIS_PHYSICAL_MEDIUM { - NdisPhysicalMediumUnspecified, -@@ -1625,59 +1151,47 @@ extern "C" { - NdisPhysicalMediumWiredCoWan, - NdisPhysicalMediumOther, - NdisPhysicalMediumMax -- } NDIS_PHYSICAL_MEDIUM, *PNDIS_PHYSICAL_MEDIUM; -+ } NDIS_PHYSICAL_MEDIUM,*PNDIS_PHYSICAL_MEDIUM; -+ -+#define NDIS_PROTOCOL_ID_DEFAULT 0x00 -+#define NDIS_PROTOCOL_ID_TCP_IP 0x02 -+#define NDIS_PROTOCOL_ID_IPX 0x06 -+#define NDIS_PROTOCOL_ID_NBF 0x07 -+#define NDIS_PROTOCOL_ID_MAX 0x0F -+#define NDIS_PROTOCOL_ID_MASK 0x0F - - typedef struct _TRANSPORT_HEADER_OFFSET { - USHORT ProtocolType; - USHORT HeaderOffset; -- } TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET; -+ } TRANSPORT_HEADER_OFFSET,*PTRANSPORT_HEADER_OFFSET; - - typedef struct _NETWORK_ADDRESS { - USHORT AddressLength; - USHORT AddressType; - UCHAR Address[1]; -- } NETWORK_ADDRESS, *PNETWORK_ADDRESS; -+ } NETWORK_ADDRESS,*PNETWORK_ADDRESS; - - typedef struct _NETWORK_ADDRESS_LIST { - LONG AddressCount; - USHORT AddressType; - NETWORK_ADDRESS Address[1]; -- } NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST; -+ } NETWORK_ADDRESS_LIST,*PNETWORK_ADDRESS_LIST; - - typedef struct _NETWORK_ADDRESS_IP { - USHORT sin_port; - ULONG in_addr; - UCHAR sin_zero[8]; -- } NETWORK_ADDRESS_IP, *PNETWORK_ADDRESS_IP; -- --#define NDIS_PROTOCOL_ID_DEFAULT 0x00 --#define NDIS_PROTOCOL_ID_TCP_IP 0x02 --#define NDIS_PROTOCOL_ID_IPX 0x06 --#define NDIS_PROTOCOL_ID_NBF 0x07 --#define NDIS_PROTOCOL_ID_MAX 0x0f --#define NDIS_PROTOCOL_ID_MASK 0x0f -- --#define READABLE_LOCAL_CLOCK 0x00000001 --#define CLOCK_NETWORK_DERIVED 0x00000002 --#define CLOCK_PRECISION 0x00000004 --#define RECEIVE_TIME_INDICATION_CAPABLE 0x00000008 --#define TIMED_SEND_CAPABLE 0x00000010 --#define TIME_STAMP_CAPABLE 0x00000020 -- --#define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001 --#define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002 --#define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004 -- --#define WAN_PROTOCOL_KEEPS_STATS 0x00000001 -+ } NETWORK_ADDRESS_IP,*PNETWORK_ADDRESS_IP; - - #define NETWORK_ADDRESS_LENGTH_IP sizeof (NETWORK_ADDRESS_IP) --#define NETWORK_ADDRESS_LENGTH_IPX sizeof (NETWORK_ADDRESS_IPX) - - typedef struct _NETWORK_ADDRESS_IPX { - ULONG NetworkAddress; - UCHAR NodeAddress[6]; - USHORT Socket; -- } NETWORK_ADDRESS_IPX, *PNETWORK_ADDRESS_IPX; -+ } NETWORK_ADDRESS_IPX,*PNETWORK_ADDRESS_IPX; -+ -+#define NETWORK_ADDRESS_LENGTH_IPX sizeof (NETWORK_ADDRESS_IPX) - - typedef enum _NDIS_HARDWARE_STATUS { - NdisHardwareStatusReady, -@@ -1685,16 +1199,23 @@ extern "C" { - NdisHardwareStatusReset, - NdisHardwareStatusClosing, - NdisHardwareStatusNotReady -- } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS; -+ } NDIS_HARDWARE_STATUS,*PNDIS_HARDWARE_STATUS; - - typedef struct _GEN_GET_TIME_CAPS { - ULONG Flags; - ULONG ClockPrecision; -- } GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS; -+ } GEN_GET_TIME_CAPS,*PGEN_GET_TIME_CAPS; -+ -+#define READABLE_LOCAL_CLOCK 0x00000001 -+#define CLOCK_NETWORK_DERIVED 0x00000002 -+#define CLOCK_PRECISION 0x00000004 -+#define RECEIVE_TIME_INDICATION_CAPABLE 0x00000008 -+#define TIMED_SEND_CAPABLE 0x00000010 -+#define TIME_STAMP_CAPABLE 0x00000020 - - typedef struct _GEN_GET_NETCARD_TIME { - ULONGLONG ReadTime; -- } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME; -+ } GEN_GET_NETCARD_TIME,*PGEN_GET_NETCARD_TIME; - - typedef struct _NDIS_PM_PACKET_PATTERN { - ULONG Priority; -@@ -1703,7 +1224,7 @@ extern "C" { - ULONG PatternOffset; - ULONG PatternSize; - ULONG PatternFlags; -- } NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN; -+ } NDIS_PM_PACKET_PATTERN,*PNDIS_PM_PACKET_PATTERN; - - typedef enum _NDIS_DEVICE_POWER_STATE { - NdisDeviceStateUnspecified = 0, -@@ -1712,18 +1233,22 @@ extern "C" { - NdisDeviceStateD2, - NdisDeviceStateD3, - NdisDeviceStateMaximum -- } NDIS_DEVICE_POWER_STATE, *PNDIS_DEVICE_POWER_STATE; -+ } NDIS_DEVICE_POWER_STATE,*PNDIS_DEVICE_POWER_STATE; - - typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES { - NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp; - NDIS_DEVICE_POWER_STATE MinPatternWakeUp; - NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp; -- } NDIS_PM_WAKE_UP_CAPABILITIES, *PNDIS_PM_WAKE_UP_CAPABILITIES; -+ } NDIS_PM_WAKE_UP_CAPABILITIES,*PNDIS_PM_WAKE_UP_CAPABILITIES; -+ -+#define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001 -+#define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002 -+#define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004 - - typedef struct _NDIS_PNP_CAPABILITIES { - ULONG Flags; - NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities; -- } NDIS_PNP_CAPABILITIES, *PNDIS_PNP_CAPABILITIES; -+ } NDIS_PNP_CAPABILITIES,*PNDIS_PNP_CAPABILITIES; - - typedef enum _NDIS_FDDI_ATTACHMENT_TYPE { - NdisFddiTypeIsolated = 1, -@@ -1739,7 +1264,7 @@ extern "C" { - NdisFddiTypeCWrapB, - NdisFddiTypeCWrapS, - NdisFddiTypeThrough -- } NDIS_FDDI_ATTACHMENT_TYPE, *PNDIS_FDDI_ATTACHMENT_TYPE; -+ } NDIS_FDDI_ATTACHMENT_TYPE,*PNDIS_FDDI_ATTACHMENT_TYPE; - - typedef enum _NDIS_FDDI_RING_MGT_STATE { - NdisFddiRingIsolated = 1, -@@ -1750,7 +1275,7 @@ extern "C" { - NdisFddiRingOperationalDup, - NdisFddiRingDirected, - NdisFddiRingTrace -- } NDIS_FDDI_RING_MGT_STATE, *PNDIS_FDDI_RING_MGT_STATE; -+ } NDIS_FDDI_RING_MGT_STATE,*PNDIS_FDDI_RING_MGT_STATE; - - typedef enum _NDIS_FDDI_LCONNECTION_STATE { - NdisFddiStateOff = 1, -@@ -1763,7 +1288,7 @@ extern "C" { - NdisFddiStateVerify, - NdisFddiStateActive, - NdisFddiStateMaintenance -- } NDIS_FDDI_LCONNECTION_STATE, *PNDIS_FDDI_LCONNECTION_STATE; -+ } NDIS_FDDI_LCONNECTION_STATE,*PNDIS_FDDI_LCONNECTION_STATE; - - typedef enum _NDIS_WAN_MEDIUM_SUBTYPE { - NdisWanMediumHub, -@@ -1778,28 +1303,26 @@ extern "C" { - NdisWanMediumL2TP, - NdisWanMediumIrda, - NdisWanMediumParallel, -- NdisWanMediumPppoe, --#if NTDDI_VERSION >= 0x06000000 -- NdisWanMediumSSTP, -- NdisWanMediumAgileVPN, --#endif -- } NDIS_WAN_MEDIUM_SUBTYPE, *PNDIS_WAN_MEDIUM_SUBTYPE; -+ NdisWanMediumPppoe -+ } NDIS_WAN_MEDIUM_SUBTYPE,*PNDIS_WAN_MEDIUM_SUBTYPE; - - typedef enum _NDIS_WAN_HEADER_FORMAT { - NdisWanHeaderNative, - NdisWanHeaderEthernet -- } NDIS_WAN_HEADER_FORMAT, *PNDIS_WAN_HEADER_FORMAT; -+ } NDIS_WAN_HEADER_FORMAT,*PNDIS_WAN_HEADER_FORMAT; - - typedef enum _NDIS_WAN_QUALITY { - NdisWanRaw, - NdisWanErrorControl, - NdisWanReliable -- } NDIS_WAN_QUALITY, *PNDIS_WAN_QUALITY; -+ } NDIS_WAN_QUALITY,*PNDIS_WAN_QUALITY; - - typedef struct _NDIS_WAN_PROTOCOL_CAPS { - ULONG Flags; - ULONG Reserved; -- } NDIS_WAN_PROTOCOL_CAPS, *PNDIS_WAN_PROTOCOL_CAPS; -+ } NDIS_WAN_PROTOCOL_CAPS,*PNDIS_WAN_PROTOCOL_CAPS; -+ -+#define WAN_PROTOCOL_KEEPS_STATS 0x00000001 - - typedef enum _NDIS_802_5_RING_STATE { - NdisRingStateOpened = 1, -@@ -1808,38 +1331,33 @@ extern "C" { - NdisRingStateClosing, - NdisRingStateOpenFailure, - NdisRingStateRingFailure -- } NDIS_802_5_RING_STATE, *PNDIS_802_5_RING_STATE; -+ } NDIS_802_5_RING_STATE,*PNDIS_802_5_RING_STATE; - - typedef enum _NDIS_MEDIA_STATE { - NdisMediaStateConnected, - NdisMediaStateDisconnected -- } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE; -+ } NDIS_MEDIA_STATE,*PNDIS_MEDIA_STATE; - - typedef ULONG Priority_802_3; - - typedef struct _NDIS_CO_LINK_SPEED { - ULONG Outbound; - ULONG Inbound; -- } NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED; -- --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 --#define NDIS_LINK_SPEED_UNKNOWN NET_IF_LINK_SPEED_UNKNOWN -- -- typedef struct _NDIS_LINK_SPEED { -- ULONG64 XmitLinkSpeed; -- ULONG64 RcvLinkSpeed; -- } NDIS_LINK_SPEED, *PNDIS_LINK_SPEED; --#endif -+ } NDIS_CO_LINK_SPEED,*PNDIS_CO_LINK_SPEED; - - #ifndef _NDIS_ -- typedef int NDIS_STATUS, *PNDIS_STATUS; -+ typedef int NDIS_STATUS,*PNDIS_STATUS; - #endif - --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 --#ifndef __WINDOT11_H__ --#include --#endif --#endif -+ typedef struct _NDIS_GUID { -+ GUID Guid; -+ __C89_NAMELESS union { -+ NDIS_OID Oid; -+ NDIS_STATUS Status; -+ }; -+ ULONG Size; -+ ULONG Flags; -+ } NDIS_GUID,*PNDIS_GUID; - - #define fNDIS_GUID_TO_OID 0x00000001 - #define fNDIS_GUID_TO_STATUS 0x00000002 -@@ -1848,9 +1366,6 @@ extern "C" { - #define fNDIS_GUID_ARRAY 0x00000010 - #define fNDIS_GUID_ALLOW_READ 0x00000020 - #define fNDIS_GUID_ALLOW_WRITE 0x00000040 --#define fNDIS_GUID_METHOD 0x00000080 --#define fNDIS_GUID_NDIS_RESERVED 0x00000100 --#define fNDIS_GUID_SUPPORT_COMMON_HEADER 0x00000200 - - #define NDIS_PACKET_TYPE_DIRECTED 0x00000001 - #define NDIS_PACKET_TYPE_MULTICAST 0x00000002 -@@ -1864,7 +1379,6 @@ extern "C" { - #define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000 - #define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000 - #define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000 --#define NDIS_PACKET_TYPE_NO_LOCAL 0x00010000 - - #define NDIS_RING_SIGNAL_LOSS 0x00008000 - #define NDIS_RING_HARD_ERROR 0x00004000 -@@ -1886,9 +1400,7 @@ extern "C" { - #define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002 - #define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004 - #define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008 -- - #define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010 -- - #define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020 - #define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040 - #define NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00000080 -@@ -1901,2675 +1413,670 @@ extern "C" { - - #define NDIS_CO_MAC_OPTION_DYNAMIC_LINK_SPEED 0x00000001 - -- typedef struct _NDIS_GUID { -- GUID Guid; -- __C89_NAMELESS union { -- NDIS_OID Oid; -- NDIS_STATUS Status; -- }; -- ULONG Size; -- ULONG Flags; -- } NDIS_GUID, *PNDIS_GUID; -- - typedef struct _NDIS_IRDA_PACKET_INFO { - ULONG ExtraBOFs; - ULONG MinTurnAroundTime; -- } NDIS_IRDA_PACKET_INFO, *PNDIS_IRDA_PACKET_INFO; -- --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 --#define NDIS_MAKE_NET_LUID(PNLUID, IFTYPE, NLUIDIDX) { (PNLUID)->Info.IfType = IFTYPE; (PNLUID)->Info.NetLuidIndex = NLUIDIDX; (PNLUID)->Info.Reserved = 0; } -- --#define MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED 32 -- --#define NDIS_IF_MAX_STRING_SIZE IF_MAX_STRING_SIZE --#define NDIS_MAX_PHYS_ADDRESS_LENGTH IF_MAX_PHYS_ADDRESS_LENGTH -- --#define NDIS_LINK_STATE_XMIT_LINK_SPEED_AUTO_NEGOTIATED 0x00000001 --#define NDIS_LINK_STATE_RCV_LINK_SPEED_AUTO_NEGOTIATED 0x00000002 --#define NDIS_LINK_STATE_DUPLEX_AUTO_NEGOTIATED 0x00000004 --#define NDIS_LINK_STATE_PAUSE_FUNCTIONS_AUTO_NEGOTIATED 0x00000008 -- --#define NDIS_LINK_STATE_REVISION_1 1 --#define NDIS_LINK_PARAMETERS_REVISION_1 1 --#define NDIS_OPER_STATE_REVISION_1 1 --#define NDIS_IP_OPER_STATUS_INFO_REVISION_1 1 --#define NDIS_IP_OPER_STATE_REVISION_1 1 -- --#define NDIS_SIZEOF_LINK_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_LINK_STATE, AutoNegotiationFlags) --#define NDIS_SIZEOF_LINK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_LINK_PARAMETERS, AutoNegotiationFlags) --#define NDIS_SIZEOF_OPER_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OPER_STATE, OperationalStatusFlags) --#define NDIS_SIZEOF_IP_OPER_STATUS_INFO_REVISION_1 FIELD_OFFSET (NDIS_IP_OPER_STATUS_INFO, IpOperationalStatus) + MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED *sizeof (NDIS_IP_OPER_STATUS) --#define NDIS_SIZEOF_IP_OPER_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_IP_OPER_STATE, IpOperationalStatus) -- -- typedef IF_COUNTED_STRING NDIS_IF_COUNTED_STRING, *PNDIS_IF_COUNTED_STRING; -- typedef IF_PHYSICAL_ADDRESS NDIS_IF_PHYSICAL_ADDRESS, *PNDIS_IF_PHYSICAL_ADDRESS; -- typedef NET_IF_MEDIA_CONNECT_STATE NDIS_MEDIA_CONNECT_STATE, *PNDIS_MEDIA_CONNECT_STATE; -- typedef NET_IF_MEDIA_DUPLEX_STATE NDIS_MEDIA_DUPLEX_STATE, *PNDIS_MEDIA_DUPLEX_STATE; -- -- typedef enum _NDIS_SUPPORTED_PAUSE_FUNCTIONS { -- NdisPauseFunctionsUnsupported, -- NdisPauseFunctionsSendOnly, -- NdisPauseFunctionsReceiveOnly, -- NdisPauseFunctionsSendAndReceive, -- NdisPauseFunctionsUnknown -- } NDIS_SUPPORTED_PAUSE_FUNCTIONS, *PNDIS_SUPPORTED_PAUSE_FUNCTIONS; -- -- typedef struct _NDIS_LINK_STATE { -- NDIS_OBJECT_HEADER Header; -- NDIS_MEDIA_CONNECT_STATE MediaConnectState; -- NDIS_MEDIA_DUPLEX_STATE MediaDuplexState; -- ULONG64 XmitLinkSpeed; -- ULONG64 RcvLinkSpeed; -- NDIS_SUPPORTED_PAUSE_FUNCTIONS PauseFunctions; -- ULONG AutoNegotiationFlags; -- } NDIS_LINK_STATE, *PNDIS_LINK_STATE; -- -- typedef struct _NDIS_LINK_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- NDIS_MEDIA_DUPLEX_STATE MediaDuplexState; -- ULONG64 XmitLinkSpeed; -- ULONG64 RcvLinkSpeed; -- NDIS_SUPPORTED_PAUSE_FUNCTIONS PauseFunctions; -- ULONG AutoNegotiationFlags; -- } NDIS_LINK_PARAMETERS, *PNDIS_LINK_PARAMETERS; -- -- typedef struct _NDIS_OPER_STATE { -- NDIS_OBJECT_HEADER Header; -- NET_IF_OPER_STATUS OperationalStatus; -- ULONG OperationalStatusFlags; -- } NDIS_OPER_STATE, *PNDIS_OPER_STATE; -- -- typedef struct _NDIS_IP_OPER_STATUS { -- ULONG AddressFamily; -- NET_IF_OPER_STATUS OperationalStatus; -- ULONG OperationalStatusFlags; -- } NDIS_IP_OPER_STATUS, *PNDIS_IP_OPER_STATUS; -- -- typedef struct _NDIS_IP_OPER_STATUS_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG NumberofAddressFamiliesReturned; -- NDIS_IP_OPER_STATUS IpOperationalStatus[MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED]; -- } NDIS_IP_OPER_STATUS_INFO, *PNDIS_IP_OPER_STATUS_INFO; -- -- typedef struct _NDIS_IP_OPER_STATE { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_IP_OPER_STATUS IpOperationalStatus; -- } NDIS_IP_OPER_STATE, *PNDIS_IP_OPER_STATE; -- --#define NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 0 --#define NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED 1 --#define NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED 2 --#define NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED 3 --#define NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED 4 -- --#define NDIS_OFFLOAD_PARAMETERS_LSOV1_DISABLED 1 --#define NDIS_OFFLOAD_PARAMETERS_LSOV1_ENABLED 2 -- --#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_DISABLED 1 --#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_ENABLED 2 --#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_ESP_ENABLED 3 --#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_AND_ESP_ENABLED 4 -- --#define NDIS_OFFLOAD_PARAMETERS_LSOV2_DISABLED 1 --#define NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED 2 -- --#if NDIS_SUPPORT_NDIS61 --#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_DISABLED 1 --#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_ENABLED 2 --#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_ESP_ENABLED 3 --#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_AND_ESP_ENABLED 4 --#endif -- --#if NDIS_SUPPORT_NDIS630 --#define NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED 1 --#define NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED 2 -- --#define NDIS_ENCAPSULATION_TYPE_GRE_MAC 0x00000001 --#define NDIS_ENCAPSULATION_TYPE_MAX NDIS_ENCAPSULATION_TYPE_GRE_MAC --#endif -- --#define NDIS_OFFLOAD_PARAMETERS_CONNECTION_OFFLOAD_DISABLED 1 --#define NDIS_OFFLOAD_PARAMETERS_CONNECTION_OFFLOAD_ENABLED 2 -- --#define NDIS_OFFLOAD_PARAMETERS_REVISION_1 1 --#if NDIS_SUPPORT_NDIS61 --#define NDIS_OFFLOAD_PARAMETERS_REVISION_2 2 --#endif --#if NDIS_SUPPORT_NDIS630 --#define NDIS_OFFLOAD_PARAMETERS_REVISION_3 3 --#define NDIS_OFFLOAD_PARAMETERS_SKIP_REGISTRY_UPDATE 0x00000001 --#endif -- -- typedef struct _NDIS_OFFLOAD_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- UCHAR IPv4Checksum; -- UCHAR TCPIPv4Checksum; -- UCHAR UDPIPv4Checksum; -- UCHAR TCPIPv6Checksum; -- UCHAR UDPIPv6Checksum; -- UCHAR LsoV1; -- UCHAR IPsecV1; -- UCHAR LsoV2IPv4; -- UCHAR LsoV2IPv6; -- UCHAR TcpConnectionIPv4; -- UCHAR TcpConnectionIPv6; -- ULONG Flags; --#if NDIS_SUPPORT_NDIS61 -- UCHAR IPsecV2; -- UCHAR IPsecV2IPv4; --#endif --#if NDIS_SUPPORT_NDIS630 -- __C89_NAMELESS struct { -- UCHAR RscIPv4; -- UCHAR RscIPv6; -- }; --#endif --#if NDIS_SUPPORT_NDIS630 -- __C89_NAMELESS struct { -- UCHAR EncapsulatedPacketTaskOffload; -- UCHAR EncapsulationTypes; -- }; --#endif -- } NDIS_OFFLOAD_PARAMETERS, *PNDIS_OFFLOAD_PARAMETERS; -- --#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, Flags) --#if NDIS_SUPPORT_NDIS61 --#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, IPsecV2IPv4) --#endif --#if NDIS_SUPPORT_NDIS630 --#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, EncapsulationTypes) --#endif -- --#define NDIS_OFFLOAD_NOT_SUPPORTED 0 --#define NDIS_OFFLOAD_SUPPORTED 1 -- --#define NDIS_OFFLOAD_SET_NO_CHANGE 0 --#define NDIS_OFFLOAD_SET_ON 1 --#define NDIS_OFFLOAD_SET_OFF 2 -- --#define NDIS_ENCAPSULATION_NOT_SUPPORTED 0x00000000 --#define NDIS_ENCAPSULATION_NULL 0x00000001 --#define NDIS_ENCAPSULATION_IEEE_802_3 0x00000002 --#define NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q 0x00000004 --#define NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB 0x00000008 --#define NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED 0x00000010 -- -- typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_V1 { -- struct { -- ULONG Encapsulation; -- ULONG MaxOffLoadSize; -- ULONG MinSegmentCount; -- ULONG TcpOptions:2; -- ULONG IpOptions:2; -- } IPv4; -- } NDIS_TCP_LARGE_SEND_OFFLOAD_V1, *PNDIS_TCP_LARGE_SEND_OFFLOAD_V1; -- -- typedef struct _NDIS_TCP_IP_CHECKSUM_OFFLOAD { -- struct { -- ULONG Encapsulation; -- ULONG IpOptionsSupported:2; -- ULONG TcpOptionsSupported:2; -- ULONG TcpChecksum:2; -- ULONG UdpChecksum:2; -- ULONG IpChecksum:2; -- } IPv4Transmit; -- struct { -- ULONG Encapsulation; -- ULONG IpOptionsSupported:2; -- ULONG TcpOptionsSupported:2; -- ULONG TcpChecksum:2; -- ULONG UdpChecksum:2; -- ULONG IpChecksum:2; -- } IPv4Receive; -- struct { -- ULONG Encapsulation; -- ULONG IpExtensionHeadersSupported:2; -- ULONG TcpOptionsSupported:2; -- ULONG TcpChecksum:2; -- ULONG UdpChecksum:2; -- } IPv6Transmit; -- struct { -- ULONG Encapsulation; -- ULONG IpExtensionHeadersSupported:2; -- ULONG TcpOptionsSupported:2; -- ULONG TcpChecksum:2; -- ULONG UdpChecksum:2; -- } IPv6Receive; -- } NDIS_TCP_IP_CHECKSUM_OFFLOAD, *PNDIS_TCP_IP_CHECKSUM_OFFLOAD; -- typedef struct _NDIS_IPSEC_OFFLOAD_V1 { -- struct { -- ULONG Encapsulation; -- ULONG AhEspCombined; -- ULONG TransportTunnelCombined; -- ULONG IPv4Options; -- ULONG Flags; -- } Supported; -- struct { -- ULONG Md5 : 2; -- ULONG Sha_1 : 2; -- ULONG Transport : 2; -- ULONG Tunnel : 2; -- ULONG Send : 2; -- ULONG Receive : 2; -- } IPv4AH; -- struct { -- ULONG Des : 2; -- ULONG Reserved : 2; -- ULONG TripleDes : 2; -- ULONG NullEsp : 2; -- ULONG Transport : 2; -- ULONG Tunnel : 2; -- ULONG Send : 2; -- ULONG Receive : 2; -- } IPv4ESP; -- } NDIS_IPSEC_OFFLOAD_V1, *PNDIS_IPSEC_OFFLOAD_V1; -- -- typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_V2 { -- struct { -- ULONG Encapsulation; -- ULONG MaxOffLoadSize; -- ULONG MinSegmentCount; -- }IPv4; -- struct { -- ULONG Encapsulation; -- ULONG MaxOffLoadSize; -- ULONG MinSegmentCount; -- ULONG IpExtensionHeadersSupported:2; -- ULONG TcpOptionsSupported:2; -- } IPv6; -- } NDIS_TCP_LARGE_SEND_OFFLOAD_V2, *PNDIS_TCP_LARGE_SEND_OFFLOAD_V2; -- --#if NDIS_SUPPORT_NDIS61 --#define IPSEC_OFFLOAD_V2_AUTHENTICATION_MD5 0x00000001 --#define IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_1 0x00000002 --#define IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_256 0x00000004 --#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_128 0x00000008 --#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_192 0x00000010 --#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_256 0x00000020 -- --#define IPSEC_OFFLOAD_V2_ENCRYPTION_NONE 0x00000001 --#define IPSEC_OFFLOAD_V2_ENCRYPTION_DES_CBC 0x00000002 --#define IPSEC_OFFLOAD_V2_ENCRYPTION_3_DES_CBC 0x00000004 --#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_128 0x00000008 --#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_192 0x00000010 --#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_256 0x00000020 --#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_128 0x00000040 --#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_192 0x00000080 --#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_256 0x00000100 -- -- typedef struct _NDIS_IPSEC_OFFLOAD_V2 { -- ULONG Encapsulation; -- BOOLEAN IPv6Supported; -- BOOLEAN IPv4Options; -- BOOLEAN IPv6NonIPsecExtensionHeaders; -- BOOLEAN Ah; -- BOOLEAN Esp; -- BOOLEAN AhEspCombined; -- BOOLEAN Transport; -- BOOLEAN Tunnel; -- BOOLEAN TransportTunnelCombined; -- BOOLEAN LsoSupported; -- BOOLEAN ExtendedSequenceNumbers; -- ULONG UdpEsp; -- ULONG AuthenticationAlgorithms; -- ULONG EncryptionAlgorithms; -- ULONG SaOffloadCapacity; -- } NDIS_IPSEC_OFFLOAD_V2, *PNDIS_IPSEC_OFFLOAD_V2; --#endif -- --#if NDIS_SUPPORT_NDIS630 --#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED 0x00000000 --#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 0x00000001 --#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 0x00000002 --#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 0x00000004 --#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 0x00000008 --#endif -- --#define NDIS_OFFLOAD_FLAGS_GROUP_CHECKSUM_CAPABILITIES 0x1 --#if NDIS_SUPPORT_NDIS630 --#define IPSEC_OFFLOAD_V2_AND_TCP_CHECKSUM_COEXISTENCE 0x2 --#define IPSEC_OFFLOAD_V2_AND_UDP_CHECKSUM_COEXISTENCE 0x4 --#endif -- --#define NDIS_MAXIMUM_PORTS 0x1000000 -- --#define NDIS_DEFAULT_PORT_NUMBER ((NDIS_PORT_NUMBER) 0) -- --#define NDIS_WMI_DEFAULT_METHOD_ID 1 -- --#define NDIS_WMI_OBJECT_TYPE_SET 0x01 --#define NDIS_WMI_OBJECT_TYPE_METHOD 0x02 --#define NDIS_WMI_OBJECT_TYPE_EVENT 0x03 --#define NDIS_WMI_OBJECT_TYPE_ENUM_ADAPTER 0x04 --#define NDIS_WMI_OBJECT_TYPE_OUTPUT_INFO 0x05 -- --#define NDIS_DEVICE_TYPE_ENDPOINT 0x00000001 -- --#define NDIS_OFFLOAD_REVISION_1 1 --#define NDIS_TCP_CONNECTION_OFFLOAD_REVISION_1 1 --#define NDIS_PORT_AUTHENTICATION_PARAMETERS_REVISION_1 1 --#define NDIS_WMI_METHOD_HEADER_REVISION_1 1 --#define NDIS_WMI_SET_HEADER_REVISION_1 1 --#define NDIS_WMI_EVENT_HEADER_REVISION_1 1 --#define NDIS_WMI_ENUM_ADAPTER_REVISION_1 1 --#if NDIS_SUPPORT_NDIS61 --#define NDIS_TCP_CONNECTION_OFFLOAD_REVISION_2 2 --#define NDIS_OFFLOAD_REVISION_2 2 --#endif --#if NDIS_SUPPORT_NDIS630 --#define NDIS_OFFLOAD_REVISION_3 3 --#define NDIS_TCP_RECV_SEG_COALESC_OFFLOAD_REVISION_1 1 --#endif -- --#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, Flags) --#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, Flags) --#define NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_CONNECTION_OFFLOAD, Flags) --#define NDIS_SIZEOF_WMI_TCP_CONNECTION_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_TCP_CONNECTION_OFFLOAD, Flags) --#define NDIS_SIZEOF_PORT_AUTHENTICATION_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_AUTHENTICATION_PARAMETERS, RcvAuthorizationState) --#define NDIS_SIZEOF_WMI_METHOD_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_METHOD_HEADER, Padding) --#define NDIS_SIZEOF_WMI_SET_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_SET_HEADER, Padding) --#define NDIS_SIZEOF_WMI_EVENT_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_EVENT_HEADER, Padding) --#define NDIS_SIZEOF_WMI_ENUM_ADAPTER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_ENUM_ADAPTER, DeviceName) --#if NDIS_SUPPORT_NDIS61 --#define NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_CONNECTION_OFFLOAD, Flags) --#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, IPsecV2) --#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, IPsecV2) --#endif --#if NDIS_SUPPORT_NDIS630 --#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, EncapsulatedPacketTaskOffloadGre) --#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, EncapsulatedPacketTaskOffloadGre) --#define NDIS_SIZEOF_TCP_RECV_SEG_COALESC_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD, IPv6.Enabled) --#define NDIS_SIZEOF_ENCAPSULATED_PACKET_TASK_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD, MaxHeaderSizeSupported) --#endif -- --#if NDIS_SUPPORT_NDIS630 -- typedef struct _NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD { -- struct { -- BOOLEAN Enabled; -- } IPv4; -- struct { -- BOOLEAN Enabled; -- } IPv6; -- } NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD, *PNDIS_TCP_RECV_SEG_COALESCE_OFFLOAD; -- -- typedef struct _NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD { -- ULONG TransmitChecksumOffloadSupported:4; -- ULONG ReceiveChecksumOffloadSupported:4; -- ULONG LsoV2Supported:4; -- ULONG RssSupported:4; -- ULONG VmqSupported:4; -- ULONG MaxHeaderSizeSupported; -- } NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD, *PNDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD; --#endif -- -- typedef struct _NDIS_OFFLOAD { -- NDIS_OBJECT_HEADER Header; -- NDIS_TCP_IP_CHECKSUM_OFFLOAD Checksum; -- NDIS_TCP_LARGE_SEND_OFFLOAD_V1 LsoV1; -- NDIS_IPSEC_OFFLOAD_V1 IPsecV1; -- NDIS_TCP_LARGE_SEND_OFFLOAD_V2 LsoV2; -- ULONG Flags; --#if NDIS_SUPPORT_NDIS61 -- NDIS_IPSEC_OFFLOAD_V2 IPsecV2; --#endif --#if NDIS_SUPPORT_NDIS630 -- NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD Rsc; -- NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD EncapsulatedPacketTaskOffloadGre; --#endif -- } NDIS_OFFLOAD, *PNDIS_OFFLOAD; -- -- typedef struct _NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 { -- struct { -- ULONG Encapsulation; -- ULONG MaxOffLoadSize; -- ULONG MinSegmentCount; -- ULONG TcpOptions; -- ULONG IpOptions; -- } IPv4; -- } NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1, *PNDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1; -- -- typedef struct _NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD { -- struct { -- ULONG Encapsulation; -- ULONG IpOptionsSupported; -- ULONG TcpOptionsSupported; -- ULONG TcpChecksum; -- ULONG UdpChecksum; -- ULONG IpChecksum; -- } IPv4Transmit; -- struct { -- ULONG Encapsulation; -- ULONG IpOptionsSupported; -- ULONG TcpOptionsSupported; -- ULONG TcpChecksum; -- ULONG UdpChecksum; -- ULONG IpChecksum; -- } IPv4Receive; -- struct { -- ULONG Encapsulation; -- ULONG IpExtensionHeadersSupported; -- ULONG TcpOptionsSupported; -- ULONG TcpChecksum; -- ULONG UdpChecksum; -- } IPv6Transmit; -- struct { -- ULONG Encapsulation; -- ULONG IpExtensionHeadersSupported; -- ULONG TcpOptionsSupported; -- ULONG TcpChecksum; -- ULONG UdpChecksum; -- } IPv6Receive; -- } NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD, *PNDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD; -- -- typedef struct _NDIS_WMI_IPSEC_OFFLOAD_V1 { -- struct { -- ULONG Encapsulation; -- ULONG AhEspCombined; -- ULONG TransportTunnelCombined; -- ULONG IPv4Options; -- ULONG Flags; -- } Supported; -- struct { -- ULONG Md5; -- ULONG Sha_1; -- ULONG Transport; -- ULONG Tunnel; -- ULONG Send; -- ULONG Receive; -- } IPv4AH; -- struct { -- ULONG Des; -- ULONG Reserved; -- ULONG TripleDes; -- ULONG NullEsp; -- ULONG Transport; -- ULONG Tunnel; -- ULONG Send; -- ULONG Receive; -- } IPv4ESP; -- } NDIS_WMI_IPSEC_OFFLOAD_V1, *PNDIS_WMI_IPSEC_OFFLOAD_V1; -- -- typedef struct _NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 { -- struct { -- ULONG Encapsulation; -- ULONG MaxOffLoadSize; -- ULONG MinSegmentCount; -- } IPv4; -- struct { -- ULONG Encapsulation; -- ULONG MaxOffLoadSize; -- ULONG MinSegmentCount; -- ULONG IpExtensionHeadersSupported; -- ULONG TcpOptionsSupported; -- } IPv6; -- } NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2, *PNDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2; -- -- typedef struct _NDIS_WMI_OFFLOAD { -- NDIS_OBJECT_HEADER Header; -- NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD Checksum; -- NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 LsoV1; -- NDIS_WMI_IPSEC_OFFLOAD_V1 IPsecV1; -- NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 LsoV2; -- ULONG Flags; --#if NDIS_SUPPORT_NDIS61 -- NDIS_IPSEC_OFFLOAD_V2 IPsecV2; --#endif --#if NDIS_SUPPORT_NDIS630 -- NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD Rsc; -- NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD EncapsulatedPacketTaskOffloadGre; --#endif -- } NDIS_WMI_OFFLOAD, *PNDIS_WMI_OFFLOAD; -- -- typedef struct _NDIS_TCP_CONNECTION_OFFLOAD { -- NDIS_OBJECT_HEADER Header; -- ULONG Encapsulation; -- ULONG SupportIPv4:2; -- ULONG SupportIPv6:2; -- ULONG SupportIPv6ExtensionHeaders:2; -- ULONG SupportSack:2; --#if NDIS_SUPPORT_NDIS61 -- ULONG CongestionAlgorithm:4; --#endif -- ULONG TcpConnectionOffloadCapacity; -- ULONG Flags; -- } NDIS_TCP_CONNECTION_OFFLOAD, *PNDIS_TCP_CONNECTION_OFFLOAD; -- -- typedef struct _NDIS_WMI_TCP_CONNECTION_OFFLOAD { -- NDIS_OBJECT_HEADER Header; -- ULONG Encapsulation; -- ULONG SupportIPv4; -- ULONG SupportIPv6; -- ULONG SupportIPv6ExtensionHeaders; -- ULONG SupportSack; -- ULONG TcpConnectionOffloadCapacity; -- ULONG Flags; -- } NDIS_WMI_TCP_CONNECTION_OFFLOAD, *PNDIS_WMI_TCP_CONNECTION_OFFLOAD; -- -- typedef ULONG NDIS_PORT_NUMBER, *PNDIS_PORT_NUMBER; -- -- typedef enum _NDIS_PORT_TYPE { -- NdisPortTypeUndefined, -- NdisPortTypeBridge, -- NdisPortTypeRasConnection, -- NdisPortType8021xSupplicant, --#if NDIS_SUPPORT_NDIS630 -- NdisPortTypeNdisImPlatform, --#endif -- NdisPortTypeMax, -- } NDIS_PORT_TYPE, *PNDIS_PORT_TYPE; -- -- typedef enum _NDIS_PORT_AUTHORIZATION_STATE { -- NdisPortAuthorizationUnknown, -- NdisPortAuthorized, -- NdisPortUnauthorized, -- NdisPortReauthorizing -- } NDIS_PORT_AUTHORIZATION_STATE, *PNDIS_PORT_AUTHORIZATION_STATE; -- -- typedef enum _NDIS_PORT_CONTROL_STATE { -- NdisPortControlStateUnknown, -- NdisPortControlStateControlled, -- NdisPortControlStateUncontrolled -- } NDIS_PORT_CONTROL_STATE, *PNDIS_PORT_CONTROL_STATE; -- -- typedef NDIS_PORT_CONTROL_STATE NDIS_PORT_CONTROLL_STATE; -- typedef PNDIS_PORT_CONTROL_STATE PNDIS_PORT_CONTROLL_STATE; -- -- typedef struct _NDIS_PORT_AUTHENTICATION_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- NDIS_PORT_CONTROL_STATE SendControlState; -- NDIS_PORT_CONTROL_STATE RcvControlState; -- NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState; -- NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState; -- } NDIS_PORT_AUTHENTICATION_PARAMETERS, *PNDIS_PORT_AUTHENTICATION_PARAMETERS; -- -- typedef enum _NDIS_NETWORK_CHANGE_TYPE { -- NdisPossibleNetworkChange = 1, -- NdisDefinitelyNetworkChange, -- NdisNetworkChangeFromMediaConnect, -- NdisNetworkChangeMax -- } NDIS_NETWORK_CHANGE_TYPE, *PNDIS_NETWORK_CHANGE_TYPE; -- -- typedef struct _NDIS_WMI_METHOD_HEADER { -- NDIS_OBJECT_HEADER Header; -- NDIS_PORT_NUMBER PortNumber; -- NET_LUID NetLuid; -- ULONG64 RequestId; -- ULONG Timeout; -- UCHAR Padding[4]; -- } NDIS_WMI_METHOD_HEADER, *PNDIS_WMI_METHOD_HEADER; -- -- typedef struct _NDIS_WMI_SET_HEADER { -- NDIS_OBJECT_HEADER Header; -- NDIS_PORT_NUMBER PortNumber; -- NET_LUID NetLuid; -- ULONG64 RequestId; -- ULONG Timeout; -- UCHAR Padding[4]; -- } NDIS_WMI_SET_HEADER, *PNDIS_WMI_SET_HEADER; -- -- typedef struct _NDIS_WMI_EVENT_HEADER { -- NDIS_OBJECT_HEADER Header; -- NET_IFINDEX IfIndex; -- NET_LUID NetLuid; -- ULONG64 RequestId; -- NDIS_PORT_NUMBER PortNumber; -- ULONG DeviceNameLength; -- ULONG DeviceNameOffset; -- UCHAR Padding[4]; -- } NDIS_WMI_EVENT_HEADER, *PNDIS_WMI_EVENT_HEADER; -- -- typedef struct _NDIS_WMI_ENUM_ADAPTER { -- NDIS_OBJECT_HEADER Header; -- NET_IFINDEX IfIndex; -- NET_LUID NetLuid; -- USHORT DeviceNameLength; -- CHAR DeviceName[1]; -- } NDIS_WMI_ENUM_ADAPTER, *PNDIS_WMI_ENUM_ADAPTER; -- --#if NDIS_SUPPORT_NDIS61 --#define NDIS_HD_SPLIT_COMBINE_ALL_HEADERS 0x00000001 -- --#define NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT 0x00000001 --#define NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS 0x00000002 --#define NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS 0x00000004 --#define NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS 0x00000008 -- --#define NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT 0x00000001 -- --#define NDIS_HD_SPLIT_PARAMETERS_REVISION_1 1 --#define NDIS_HD_SPLIT_CURRENT_CONFIG_REVISION_1 1 -- --#define NDIS_SIZEOF_HD_SPLIT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HD_SPLIT_PARAMETERS, HDSplitCombineFlags) --#define NDIS_SIZEOF_HD_SPLIT_CURRENT_CONFIG_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HD_SPLIT_CURRENT_CONFIG, MaxHeaderSize) -- -- typedef struct _NDIS_HD_SPLIT_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG HDSplitCombineFlags; -- } NDIS_HD_SPLIT_PARAMETERS, *PNDIS_HD_SPLIT_PARAMETERS; -- -- typedef struct _NDIS_HD_SPLIT_CURRENT_CONFIG { -- NDIS_OBJECT_HEADER Header; -- ULONG HardwareCapabilities; -- ULONG CurrentCapabilities; -- ULONG HDSplitFlags; -- ULONG HDSplitCombineFlags; -- ULONG BackfillSize; -- ULONG MaxHeaderSize; -- } NDIS_HD_SPLIT_CURRENT_CONFIG, *PNDIS_HD_SPLIT_CURRENT_CONFIG; --#endif -- --#define NDIS_WMI_OUTPUT_INFO_REVISION_1 1 -- -- typedef struct NDIS_WMI_OUTPUT_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- UCHAR SupportedRevision; -- ULONG DataOffset; -- } NDIS_WMI_OUTPUT_INFO, *PNDIS_WMI_OUTPUT_INFO; -- --#if NDIS_SUPPORT_NDIS620 --#define NDIS_PM_WOL_BITMAP_PATTERN_SUPPORTED 0x00000001 --#define NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED 0x00000002 --#define NDIS_PM_WOL_IPV4_TCP_SYN_SUPPORTED 0x00000004 --#define NDIS_PM_WOL_IPV6_TCP_SYN_SUPPORTED 0x00000008 --#define NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_SUPPORTED 0x00000200 --#define NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_SUPPORTED 0x00000800 --#define NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_SUPPORTED 0x00010000 -- --#define NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED 0x00000001 --#define NDIS_PM_PROTOCOL_OFFLOAD_NS_SUPPORTED 0x00000002 --#define NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_SUPPORTED 0x00000080 -- --#if NDIS_SUPPORT_NDIS630 --#define NDIS_PM_WAKE_ON_MEDIA_CONNECT_SUPPORTED 0x00000001 --#define NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_SUPPORTED 0x00000002 -- --#define NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_SUPPORTED 0x00000001 --#define NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_SUPPORTED 0x00000002 --#define NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_SUPPORTED 0x00000004 --#define NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_SUPPORTED 0x00000008 -- --#define NDIS_WWAN_WAKE_ON_REGISTER_STATE_SUPPORTED 0x00000001 --#define NDIS_WWAN_WAKE_ON_SMS_RECEIVE_SUPPORTED 0x00000002 --#define NDIS_WWAN_WAKE_ON_USSD_RECEIVE_SUPPORTED 0x00000004 -- --#define NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED 0x00000001 --#define NDIS_PM_SELECTIVE_SUSPEND_SUPPORTED 0x00000002 --#endif -- --#define NDIS_PM_WOL_BITMAP_PATTERN_ENABLED 0x00000001 --#define NDIS_PM_WOL_MAGIC_PACKET_ENABLED 0x00000002 --#define NDIS_PM_WOL_IPV4_TCP_SYN_ENABLED 0x00000004 --#define NDIS_PM_WOL_IPV6_TCP_SYN_ENABLED 0x00000008 --#define NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED 0x00000200 --#define NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED 0x00000800 --#define NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_ENABLED 0x00010000 -- --#define NDIS_PM_PROTOCOL_OFFLOAD_ARP_ENABLED 0x00000001 --#define NDIS_PM_PROTOCOL_OFFLOAD_NS_ENABLED 0x00000002 --#define NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_ENABLED 0x00000080 -- --#define NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED 0x1 --#if NDIS_SUPPORT_NDIS630 --#define NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_ENABLED 0x2 --#define NDIS_PM_SELECTIVE_SUSPEND_ENABLED 0x10 -- --#define NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_ENABLED 0x1 --#define NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_ENABLED 0x2 --#define NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_ENABLED 0x4 --#define NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_ENABLED 0x8 -- --#define NDIS_WWAN_WAKE_ON_REGISTER_STATE_ENABLED 0x1 --#define NDIS_WWAN_WAKE_ON_SMS_RECEIVE_ENABLED 0x2 --#define NDIS_WWAN_WAKE_ON_USSD_RECEIVE_ENABLED 0x4 --#endif -- --#define NDIS_PM_WOL_PRIORITY_LOWEST 0xffffffff --#define NDIS_PM_WOL_PRIORITY_NORMAL 0x10000000 --#define NDIS_PM_WOL_PRIORITY_HIGHEST 0x00000001 -- --#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST 0xffffffff --#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_NORMAL 0x10000000 --#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST 0x00000001 -- --#define NDIS_PM_MAX_STRING_SIZE 64 -- --#define EAPOL_REQUEST_ID_WOL_FLAG_MUST_ENCRYPT 0x00000001 -- --#define NDIS_PM_MAX_PATTERN_ID 0x0000ffff -- --#define NDIS_PM_PRIVATE_PATTERN_ID 0x00000001 -- --#define DOT11_RSN_KEK_LENGTH 16 --#define DOT11_RSN_KCK_LENGTH 16 -- -- --#define NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED 0x00000001 --#define NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED 0x00000002 --#define NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED 0x00000004 --#define NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED 0x00000008 --#define NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED 0x00000010 -- --#define NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED 0x00000001 --#define NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED 0x00000002 --#define NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED 0x00000004 --#define NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED 0x00000008 --#define NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED 0x00000010 --#define NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED 0x00000020 -- --#define NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED 0x1 --#define NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED 0x2 --#define NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED 0x4 -- --#define NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED 0x1 --#define NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED 0x1 --#define NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED 0x1 -- --#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED 0x00000001 --#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED 0x00000002 --#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED 0x00000004 -- --#define NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED 0x00000001 --#define NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED 0x00000002 --#define NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED 0x00000004 --#if NDIS_SUPPORT_NDIS630 --#define NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED 0x00000008 --#define NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED 0x00000010 --#define NDIS_RECEIVE_FILTER_ANY_VLAN_SUPPORTED 0x00000020 --#define NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE 0x00000040 --#define NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE 0x00000080 --#define NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE 0x00000100 --#endif -- --#define NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED 0x00000001 --#define NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED 0x00000002 -- --#define NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED 0x00000001 -- --#if NDIS_SUPPORT_NDIS630 --#define NDIS_NIC_SWITCH_CAPS_VLAN_SUPPORTED 0x00000001 --#define NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED 0x00000002 --#define NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED 0x00000004 --#define NDIS_NIC_SWITCH_CAPS_VF_RSS_SUPPORTED 0x00000008 --#define NDIS_NIC_SWITCH_CAPS_SINGLE_VPORT_POOL 0x00000010 --#endif -- -- --#define NDIS_DEFAULT_RECEIVE_QUEUE_ID 0 --#define NDIS_DEFAULT_RECEIVE_QUEUE_GROUP_ID 0 --#define NDIS_DEFAULT_RECEIVE_FILTER_ID 0 -- --#define NDIS_RECEIVE_FILTER_FIELD_MAC_HEADER_VLAN_UNTAGGED_OR_ZERO 0x00000001 --#define NDIS_RECEIVE_FILTER_PACKET_ENCAPSULATION_GRE 0x00000002 -- --#define NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION 0x00000001 --#define NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED 0x00000002 --#define NDIS_RECEIVE_QUEUE_PARAMETERS_FLAGS_CHANGED 0x00010000 --#define NDIS_RECEIVE_QUEUE_PARAMETERS_PROCESSOR_AFFINITY_CHANGED 0x00020000 --#define NDIS_RECEIVE_QUEUE_PARAMETERS_SUGGESTED_RECV_BUFFER_NUMBERS_CHANGED 0x00040000 --#define NDIS_RECEIVE_QUEUE_PARAMETERS_NAME_CHANGED 0x00080000 --#if NDIS_SUPPORT_NDIS630 --#define NDIS_RECEIVE_QUEUE_PARAMETERS_INTERRUPT_COALESCING_DOMAIN_ID_CHANGED 0x00100000 --#endif -- --#define NDIS_RECEIVE_QUEUE_PARAMETERS_CHANGE_MASK 0xffff0000 -- --#if NDIS_SUPPORT_NDIS630 --#define NDIS_RECEIVE_FILTER_INFO_ARRAY_VPORT_ID_SPECIFIED 0x00000001 --#endif -- --#define NDIS_PM_CAPABILITIES_REVISION_1 1 --#define NDIS_PM_PARAMETERS_REVISION_1 1 --#define NDIS_PM_WOL_PATTERN_REVISION_1 1 --#define NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1 1 --#define NDIS_WMI_PM_ADMIN_CONFIG_REVISION_1 1 --#define NDIS_WMI_PM_ACTIVE_CAPABILITIES_REVISION_1 1 --#define NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1 1 --#define NDIS_NIC_SWITCH_CAPABILITIES_REVISION_1 1 --#define NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS_REVISION_1 1 --#define NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_1 1 --#define NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_1 1 --#define NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS_REVISION_1 1 --#define NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_1 1 --#define NDIS_RECEIVE_QUEUE_FREE_PARAMETERS_REVISION_1 1 --#define NDIS_RECEIVE_QUEUE_INFO_REVISION_1 1 --#define NDIS_RECEIVE_QUEUE_INFO_ARRAY_REVISION_1 1 --#define NDIS_RECEIVE_FILTER_INFO_REVISION_1 1 --#define NDIS_RECEIVE_FILTER_INFO_ARRAY_REVISION_1 1 --#define NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS_REVISION_1 1 --#define NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY_REVISION_1 1 --#if NDIS_SUPPORT_NDIS630 --#define NDIS_PM_CAPABILITIES_REVISION_2 2 --#define NDIS_PM_PARAMETERS_REVISION_2 2 --#define NDIS_PM_WOL_PATTERN_REVISION_2 2 --#define NDIS_PM_WAKE_REASON_REVISION_1 1 --#define NDIS_PM_WAKE_PACKET_REVISION_1 1 --#define NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2 2 --#define NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2 2 --#define NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_2 2 --#define NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_2 2 --#define NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_2 2 --#define NDIS_RECEIVE_FILTER_INFO_ARRAY_REVISION_2 2 --#define NDIS_RECEIVE_QUEUE_INFO_REVISION_2 2 --#endif -- --#define NDIS_SIZEOF_WMI_OUTPUT_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OUTPUT_INFO, DataOffset) --#define NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_CAPABILITIES, MinLinkChangeWakeUp) --#define NDIS_SIZEOF_NDIS_PM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PARAMETERS, WakeUpFlags) --#define NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WOL_PATTERN, WoLPattern) --#define NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PROTOCOL_OFFLOAD, ProtocolOffloadParameters) --#define NDIS_SIZEOF_WMI_PM_ADMIN_CONFIG_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_PM_ADMIN_CONFIG, PMWiFiRekeyOffload) --#define NDIS_SIZEOF_WMI_PM_ACTIVE_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_PM_ACTIVE_CAPABILITIES, PMWiFiRekeyOffload) --#define NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CAPABILITIES, MaxLookaheadSplitSize) --#define NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_CAPABILITIES, NdisReserved3) --#define NDIS_SIZEOF_RECEIVE_FILTER_GLOBAL_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS, EnabledQueueTypes) --#define NDIS_SIZEOF_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, ResultValue) --#define NDIS_SIZEOF_RECEIVE_FILTER_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_PARAMETERS, RequestedFilterIdBitCount) --#define NDIS_SIZEOF_RECEIVE_FILTER_CLEAR_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS, FilterId) --#define NDIS_SIZEOF_RECEIVE_QUEUE_FREE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_FREE_PARAMETERS, QueueId) --#define NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_PARAMETERS, QueueName) --#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO, QueueName) --#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO_ARRAY, ElementSize) --#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO, FilterId) --#define NDIS_SIZEOF_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY, ElementSize) --#define NDIS_SIZEOF_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS, CompletionStatus) --#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO_ARRAY, ElementSize) --#if NDIS_SUPPORT_NDIS630 --#define NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_CAPABILITIES, MediaSpecificWakeUpEvents) --#define NDIS_SIZEOF_NDIS_PM_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PARAMETERS, MediaSpecificWakeUpEvents) --#define NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WOL_PATTERN, WoLPattern) --#define NDIS_SIZEOF_PM_WAKE_REASON_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WAKE_REASON, InfoBufferSize) --#define NDIS_SIZEOF_PM_WAKE_PACKET_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WAKE_PACKET, SavedPacketOffset) --#define NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CAPABILITIES, NdisReserved) --#define NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_CAPABILITIES, NdisReserved17) --#define NDIS_SIZEOF_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, ResultValue) --#define NDIS_SIZEOF_RECEIVE_FILTER_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_PARAMETERS, VPortId) --#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_ARRAY_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO_ARRAY, VPortId) --#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO, InterruptCoalescingDomainId) --#define NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_PARAMETERS, InterruptCoalescingDomainId) --#endif -- -- typedef enum _NDIS_PM_WOL_PACKET { -- NdisPMWoLPacketUnspecified, -- NdisPMWoLPacketBitmapPattern, -- NdisPMWoLPacketMagicPacket, -- NdisPMWoLPacketIPv4TcpSyn, -- NdisPMWoLPacketIPv6TcpSyn, -- NdisPMWoLPacketEapolRequestIdMessage, -- NdisPMWoLPacketMaximum -- } NDIS_PM_WOL_PACKET, *PNDIS_PM_WOL_PACKET; -- -- typedef enum _NDIS_PM_PROTOCOL_OFFLOAD_TYPE { -- NdisPMProtocolOffloadIdUnspecified, -- NdisPMProtocolOffloadIdIPv4ARP, -- NdisPMProtocolOffloadIdIPv6NS, -- NdisPMProtocolOffload80211RSNRekey, -- NdisPMProtocolOffloadIdMaximum -- } NDIS_PM_PROTOCOL_OFFLOAD_TYPE, *PNDIS_PM_PROTOCOL_OFFLOAD_TYPE; -- -- typedef struct _NDIS_PM_COUNTED_STRING { -- USHORT Length; -- WCHAR String[NDIS_PM_MAX_STRING_SIZE + 1]; -- } NDIS_PM_COUNTED_STRING, *PNDIS_PM_COUNTED_STRING; -- -- typedef struct _NDIS_PM_CAPABILITIES { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG SupportedWoLPacketPatterns; -- ULONG NumTotalWoLPatterns; -- ULONG MaxWoLPatternSize; -- ULONG MaxWoLPatternOffset; -- ULONG MaxWoLPacketSaveBuffer; -- ULONG SupportedProtocolOffloads; -- ULONG NumArpOffloadIPv4Addresses; -- ULONG NumNSOffloadIPv6Addresses; -- NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp; -- NDIS_DEVICE_POWER_STATE MinPatternWakeUp; -- NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp; --#if NDIS_SUPPORT_NDIS630 -- ULONG SupportedWakeUpEvents; -- ULONG MediaSpecificWakeUpEvents; --#endif -- } NDIS_PM_CAPABILITIES, *PNDIS_PM_CAPABILITIES; -- -- typedef struct _NDIS_PM_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG EnabledWoLPacketPatterns; -- ULONG EnabledProtocolOffloads; -- ULONG WakeUpFlags; --#if NDIS_SUPPORT_NDIS630 -- ULONG MediaSpecificWakeUpEvents; --#endif -- } NDIS_PM_PARAMETERS, *PNDIS_PM_PARAMETERS; -- -- typedef struct _NDIS_PM_WOL_PATTERN { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG Priority; -- NDIS_PM_WOL_PACKET WoLPacketType; -- NDIS_PM_COUNTED_STRING FriendlyName; -- ULONG PatternId; -- ULONG NextWoLPatternOffset; -- union _WOL_PATTERN { -- struct _IPV4_TCP_SYN_WOL_PACKET_PARAMETERS { -- ULONG Flags; -- UCHAR IPv4SourceAddress[4]; -- UCHAR IPv4DestAddress[4]; -- USHORT TCPSourcePortNumber; -- USHORT TCPDestPortNumber; -- } IPv4TcpSynParameters; -- struct _IPV6_TCP_SYN_WOL_PACKET_PARAMETERS { -- ULONG Flags; -- UCHAR IPv6SourceAddress[16]; -- UCHAR IPv6DestAddress[16]; -- USHORT TCPSourcePortNumber; -- USHORT TCPDestPortNumber; -- } IPv6TcpSynParameters; -- struct _EAPOL_REQUEST_ID_MESSAGE_WOL_PACKET_PARAMETERS { -- ULONG Flags; -- } EapolRequestIdMessageParameters; -- struct _WOL_BITMAP_PATTERN { -- ULONG Flags; -- ULONG MaskOffset; -- ULONG MaskSize; -- ULONG PatternOffset; -- ULONG PatternSize; -- } WoLBitMapPattern; -- } WoLPattern; -- } NDIS_PM_WOL_PATTERN, *PNDIS_PM_WOL_PATTERN; -- -- typedef struct _NDIS_PM_PROTOCOL_OFFLOAD { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG Priority; -- NDIS_PM_PROTOCOL_OFFLOAD_TYPE ProtocolOffloadType; -- NDIS_PM_COUNTED_STRING FriendlyName; -- ULONG ProtocolOffloadId; -- ULONG NextProtocolOffloadOffset; -- union _PROTOCOL_OFFLOAD_PARAMETERS { -- struct _IPV4_ARP_PARAMETERS { -- ULONG Flags; -- UCHAR RemoteIPv4Address[4]; -- UCHAR HostIPv4Address[4]; -- UCHAR MacAddress[6]; -- } IPv4ARPParameters; -- struct _IPV6_NS_PARAMETERS { -- ULONG Flags; -- UCHAR RemoteIPv6Address[16]; -- UCHAR SolicitedNodeIPv6Address[16]; -- UCHAR MacAddress[6]; -- UCHAR TargetIPv6Addresses[2][16]; -- } IPv6NSParameters; -- struct _DOT11_RSN_REKEY_PARAMETERS { -- ULONG Flags; -- UCHAR KCK[DOT11_RSN_KCK_LENGTH]; -- UCHAR KEK[DOT11_RSN_KEK_LENGTH]; -- ULONGLONG KeyReplayCounter; -- } Dot11RSNRekeyParameters; -- } ProtocolOffloadParameters; -- } NDIS_PM_PROTOCOL_OFFLOAD, *PNDIS_PM_PROTOCOL_OFFLOAD; -- --#if NDIS_SUPPORT_NDIS630 -- typedef enum _NDIS_PM_WAKE_REASON_TYPE { -- NdisWakeReasonUnspecified = 0x0000, -- NdisWakeReasonPacket = 0x0001, -- NdisWakeReasonMediaDisconnect = 0x0002, -- NdisWakeReasonMediaConnect = 0x0003, -- NdisWakeReasonWlanNLODiscovery = 0x1000, -- NdisWakeReasonWlanAPAssociationLost = 0x1001, -- NdisWakeReasonWlanGTKHandshakeError = 0x1002, -- NdisWakeReasonWlan4WayHandshakeRequest = 0x1003, -- NdisWakeReasonWwanRegisterState = 0x2000, -- NdisWakeReasonWwanSMSReceive = 0x2001, -- NdisWakeReasonWwanUSSDReceive = 0x2002, -- } NDIS_PM_WAKE_REASON_TYPE, *PNDIS_PM_WAKE_REASON_TYPE; -- -- typedef struct _NDIS_PM_WAKE_REASON { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_PM_WAKE_REASON_TYPE WakeReason; -- ULONG InfoBufferOffset; -- ULONG InfoBufferSize; -- } NDIS_PM_WAKE_REASON, *PNDIS_PM_WAKE_REASON; -- -- typedef struct _NDIS_PM_WAKE_PACKET { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG PatternId; -- NDIS_PM_COUNTED_STRING PatternFriendlyName; -- ULONG OriginalPacketSize; -- ULONG SavedPacketSize; -- ULONG SavedPacketOffset; -- } NDIS_PM_WAKE_PACKET, *PNDIS_PM_WAKE_PACKET; --#endif -- -- typedef enum _NDIS_PM_ADMIN_CONFIG_STATE { -- NdisPMAdminConfigUnspecified = 0, -- NdisPMAdminConfigDisabled = 1, -- NdisPMAdminConfigEnabled = 2 -- } NDIS_PM_ADMIN_CONFIG_STATE, *PNDIS_PM_ADMIN_CONFIG_STATE; -- -- typedef struct _NDIS_WMI_PM_ADMIN_CONFIG { -- NDIS_OBJECT_HEADER Header; -- NDIS_PM_ADMIN_CONFIG_STATE WakeOnPattern; -- NDIS_PM_ADMIN_CONFIG_STATE WakeOnMagicPacket; -- NDIS_PM_ADMIN_CONFIG_STATE DeviceSleepOnDisconnect; -- NDIS_PM_ADMIN_CONFIG_STATE PMARPOffload; -- NDIS_PM_ADMIN_CONFIG_STATE PMNSOffload; -- NDIS_PM_ADMIN_CONFIG_STATE PMWiFiRekeyOffload; -- } NDIS_WMI_PM_ADMIN_CONFIG, *PNDIS_WMI_PM_ADMIN_CONFIG; -- -- typedef enum _NDIS_PM_CAPABILITY_STATE { -- NdisPMAdminConfigUnsupported = 0, -- NdisPMAdminConfigInactive = 1, -- NdisPMAdminConfigActive = 2 -- } NDIS_PM_CAPABILITY_STATE, *PNDIS_PM_CAPABILITY_STATE; -- -- typedef struct _NDIS_WMI_PM_ACTIVE_CAPABILITIES { -- NDIS_OBJECT_HEADER Header; -- NDIS_PM_CAPABILITY_STATE WakeOnPattern; -- NDIS_PM_CAPABILITY_STATE WakeOnMagicPacket; -- NDIS_PM_CAPABILITY_STATE DeviceSleepOnDisconnect; -- NDIS_PM_CAPABILITY_STATE PMARPOffload; -- NDIS_PM_CAPABILITY_STATE PMNSOffload; -- NDIS_PM_CAPABILITY_STATE PMWiFiRekeyOffload; -- } NDIS_WMI_PM_ACTIVE_CAPABILITIES, *PNDIS_WMI_PM_ACTIVE_CAPABILITIES; -- -- typedef struct _NDIS_RECEIVE_FILTER_CAPABILITIES { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG EnabledFilterTypes; -- ULONG EnabledQueueTypes; -- ULONG NumQueues; -- ULONG SupportedQueueProperties; -- ULONG SupportedFilterTests; -- ULONG SupportedHeaders; -- ULONG SupportedMacHeaderFields; -- ULONG MaxMacHeaderFilters; -- ULONG MaxQueueGroups; -- ULONG MaxQueuesPerQueueGroup; -- ULONG MinLookaheadSplitSize; -- ULONG MaxLookaheadSplitSize; --#if NDIS_SUPPORT_NDIS630 -- ULONG SupportedARPHeaderFields; -- ULONG SupportedIPv4HeaderFields; -- ULONG SupportedIPv6HeaderFields; -- ULONG SupportedUdpHeaderFields; -- ULONG MaxFieldTestsPerPacketCoalescingFilter; -- ULONG MaxPacketCoalescingFilters; -- ULONG NdisReserved; --#endif -- } NDIS_RECEIVE_FILTER_CAPABILITIES, *PNDIS_RECEIVE_FILTER_CAPABILITIES; -- -- typedef struct _NDIS_NIC_SWITCH_CAPABILITIES { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG NdisReserved1; -- ULONG NumTotalMacAddresses; -- ULONG NumMacAddressesPerPort; -- ULONG NumVlansPerPort; -- ULONG NdisReserved2; -- ULONG NdisReserved3; --#if NDIS_SUPPORT_NDIS630 -- ULONG NicSwitchCapabilities; -- ULONG MaxNumSwitches; -- ULONG MaxNumVPorts; -- ULONG NdisReserved4; -- ULONG MaxNumVFs; -- ULONG MaxNumQueuePairs; -- ULONG NdisReserved5; -- ULONG NdisReserved6; -- ULONG NdisReserved7; -- ULONG MaxNumQueuePairsPerNonDefaultVPort; -- ULONG NdisReserved8; -- ULONG NdisReserved9; -- ULONG NdisReserved10; -- ULONG NdisReserved11; -- ULONG NdisReserved12; -- ULONG MaxNumMacAddresses; -- ULONG NdisReserved13; -- ULONG NdisReserved14; -- ULONG NdisReserved15; -- ULONG NdisReserved16; -- ULONG NdisReserved17; --#endif -- } NDIS_NIC_SWITCH_CAPABILITIES, *PNDIS_NIC_SWITCH_CAPABILITIES; -- -- typedef struct _NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG EnabledFilterTypes; -- ULONG EnabledQueueTypes; -- } NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS, *PNDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS; -- -- typedef ULONG NDIS_RECEIVE_QUEUE_ID, *PNDIS_RECEIVE_QUEUE_ID; -- typedef ULONG NDIS_RECEIVE_QUEUE_GROUP_ID, *PNDIS_RECEIVE_QUEUE_GROUP_ID; -- typedef ULONG NDIS_RECEIVE_FILTER_ID, *PNDIS_RECEIVE_FILTER_ID; -- -- typedef enum _NDIS_RECEIVE_FILTER_TYPE { -- NdisReceiveFilterTypeUndefined, -- NdisReceiveFilterTypeVMQueue, -- NdisReceiveFilterTypePacketCoalescing, -- NdisReceiveFilterTypeMaximum -- } NDIS_RECEIVE_FILTER_TYPE, *PNDIS_RECEIVE_FILTER_TYPE; -- -- typedef enum _NDIS_FRAME_HEADER { -- NdisFrameHeaderUndefined, -- NdisFrameHeaderMac, -- NdisFrameHeaderArp, -- NdisFrameHeaderIPv4, -- NdisFrameHeaderIPv6, -- NdisFrameHeaderUdp, -- NdisFrameHeaderMaximum -- } NDIS_FRAME_HEADER, *PNDIS_FRAME_HEADER; -- -- typedef enum _NDIS_MAC_HEADER_FIELD { -- NdisMacHeaderFieldUndefined, -- NdisMacHeaderFieldDestinationAddress, -- NdisMacHeaderFieldSourceAddress, -- NdisMacHeaderFieldProtocol, -- NdisMacHeaderFieldVlanId, -- NdisMacHeaderFieldPriority, -- NdisMacHeaderFieldPacketType, -- NdisMacHeaderFieldMaximum -- } NDIS_MAC_HEADER_FIELD, *PNDIS_MAC_HEADER_FIELD; -- -- typedef enum _NDIS_MAC_PACKET_TYPE { -- NdisMacPacketTypeUndefined = 0, -- NdisMacPacketTypeUnicast = 1, -- NdisMacPacketTypeMulticast = 2, -- NdisMacPacketTypeBroadcast = 3, -- NdisMacPacketTypeMaximum -- } NDIS_MAC_PACKET_TYPE, *PNDIS_MAC_PACKET_TYPE; -- -- typedef enum _NDIS_ARP_HEADER_FIELD { -- NdisARPHeaderFieldUndefined, -- NdisARPHeaderFieldOperation, -- NdisARPHeaderFieldSPA, -- NdisARPHeaderFieldTPA, -- NdisARPHeaderFieldMaximum -- } NDIS_ARP_HEADER_FIELD, *PNDIS_ARP_HEADER_FIELD; -- -- typedef enum _NDIS_IPV4_HEADER_FIELD { -- NdisIPv4HeaderFieldUndefined, -- NdisIPv4HeaderFieldProtocol, -- NdisIPv4HeaderFieldMaximum -- } NDIS_IPV4_HEADER_FIELD, *PNDIS_IPV4_HEADER_FIELD; -- -- typedef enum _NDIS_IPV6_HEADER_FIELD { -- NdisIPv6HeaderFieldUndefined, -- NdisIPv6HeaderFieldProtocol, -- NdisIPv6HeaderFieldMaximum -- } NDIS_IPV6_HEADER_FIELD, *PNDIS_IPV6_HEADER_FIELD; -- -- typedef enum _NDIS_UDP_HEADER_FIELD { -- NdisUdpHeaderFieldUndefined, -- NdisUdpHeaderFieldDestinationPort, -- NdisUdpHeaderFieldMaximum -- } NDIS_UDP_HEADER_FIELD, *PNDIS_UDP_HEADER_FIELD; -- -- typedef enum _NDIS_RECEIVE_FILTER_TEST { -- NdisReceiveFilterTestUndefined, -- NdisReceiveFilterTestEqual, -- NdisReceiveFilterTestMaskEqual, -- NdisReceiveFilterTestNotEqual, -- NdisReceiveFilterTestMaximum -- } NDIS_RECEIVE_FILTER_TEST, *PNDIS_RECEIVE_FILTER_TEST; -- -- typedef struct _NDIS_RECEIVE_FILTER_FIELD_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_FRAME_HEADER FrameHeader; -- NDIS_RECEIVE_FILTER_TEST ReceiveFilterTest; -- union _HEADER_FIELD { -- NDIS_MAC_HEADER_FIELD MacHeaderField; -- NDIS_ARP_HEADER_FIELD ArpHeaderField; -- NDIS_IPV4_HEADER_FIELD IPv4HeaderField; -- NDIS_IPV6_HEADER_FIELD IPv6HeaderField; -- NDIS_UDP_HEADER_FIELD UdpHeaderField; -- } HeaderField; -- union _FIELD_VALUE { -- UCHAR FieldByteValue; -- USHORT FieldShortValue; -- ULONG FieldLongValue; -- ULONG64 FieldLong64Value; -- UCHAR FieldByteArrayValue[16]; -- } FieldValue; -- union _RESULT_VALUE { -- UCHAR ResultByteValue; -- USHORT ResultShortValue; -- ULONG ResultLongValue; -- ULONG64 ResultLong64Value; -- UCHAR ResultByteArrayValue[16]; -- } ResultValue; -- } NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, *PNDIS_RECEIVE_FILTER_FIELD_PARAMETERS; -- --#if NDIS_SUPPORT_NDIS630 -- typedef ULONG NDIS_NIC_SWITCH_VPORT_ID, *PNDIS_NIC_SWITCH_VPORT_ID; --#endif -- -- typedef struct _NDIS_RECEIVE_FILTER_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_RECEIVE_FILTER_TYPE FilterType; -- NDIS_RECEIVE_QUEUE_ID QueueId; -- NDIS_RECEIVE_FILTER_ID FilterId; -- ULONG FieldParametersArrayOffset; -- ULONG FieldParametersArrayNumElements; -- ULONG FieldParametersArrayElementSize; -- ULONG RequestedFilterIdBitCount; --#if NDIS_SUPPORT_NDIS630 -- ULONG MaxCoalescingDelay; -- NDIS_NIC_SWITCH_VPORT_ID VPortId; --#endif -- } NDIS_RECEIVE_FILTER_PARAMETERS, *PNDIS_RECEIVE_FILTER_PARAMETERS; -- -- typedef struct _NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_RECEIVE_QUEUE_ID QueueId; -- NDIS_RECEIVE_FILTER_ID FilterId; -- } NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS, *PNDIS_RECEIVE_FILTER_CLEAR_PARAMETERS; -- -- typedef enum _NDIS_RECEIVE_QUEUE_TYPE { -- NdisReceiveQueueTypeUnspecified, -- NdisReceiveQueueTypeVMQueue, -- NdisReceiveQueueTypeMaximum -- } NDIS_RECEIVE_QUEUE_TYPE, *PNDIS_RECEIVE_QUEUE_TYPE; -- -- typedef NDIS_IF_COUNTED_STRING NDIS_QUEUE_NAME, *PNDIS_QUEUE_NAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_VM_NAME, *PNDIS_VM_NAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_VM_FRIENDLYNAME, *PNDIS_VM_FRIENDLYNAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL; -- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NAME, *PNDIS_SWITCH_NAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_FRIENDLYNAME, *PNDIS_SWITCH_FRIENDLYNAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_NAME, *PNDIS_SWITCH_PORT_NAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_FRIENDLYNAME, *PNDIS_SWITCH_PORT_FRIENDLYNAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NIC_NAME, *PNDIS_SWITCH_NIC_NAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NIC_FRIENDLYNAME, *PNDIS_SWITCH_NIC_FRIENDLYNAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_EXTENSION_FRIENDLYNAME, *PNDIS_SWITCH_EXTENSION_FRIENDLYNAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_VENDOR_NAME, *PNDIS_VENDOR_NAME; -- -- typedef struct _NDIS_RECEIVE_QUEUE_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_RECEIVE_QUEUE_TYPE QueueType; -- NDIS_RECEIVE_QUEUE_ID QueueId; -- NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId; -- GROUP_AFFINITY ProcessorAffinity; -- ULONG NumSuggestedReceiveBuffers; -- ULONG MSIXTableEntry; -- ULONG LookaheadSize; -- NDIS_VM_NAME VmName; -- NDIS_QUEUE_NAME QueueName; --#if NDIS_SUPPORT_NDIS630 -- ULONG PortId; -- ULONG InterruptCoalescingDomainId; --#endif -- } NDIS_RECEIVE_QUEUE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_PARAMETERS; -- -- typedef struct _NDIS_RECEIVE_QUEUE_FREE_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_RECEIVE_QUEUE_ID QueueId; -- } NDIS_RECEIVE_QUEUE_FREE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_FREE_PARAMETERS; -- -- typedef enum _NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE { -- NdisReceiveQueueOperationalStateUndefined, -- NdisReceiveQueueOperationalStateRunning, -- NdisReceiveQueueOperationalStatePaused, -- NdisReceiveQueueOperationalStateDmaStopped, -- NdisReceiveQueueOperationalStateMaximum -- } NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE, *PNDIS_RECEIVE_QUEUE_OPERATIONAL_STATE; -- -- typedef struct _NDIS_RECEIVE_QUEUE_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_RECEIVE_QUEUE_TYPE QueueType; -- NDIS_RECEIVE_QUEUE_ID QueueId; -- NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId; -- NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE QueueState; -- GROUP_AFFINITY ProcessorAffinity; -- ULONG NumSuggestedReceiveBuffers; -- ULONG MSIXTableEntry; -- ULONG LookaheadSize; -- NDIS_VM_NAME VmName; -- NDIS_QUEUE_NAME QueueName; --#if NDIS_SUPPORT_NDIS630 -- ULONG NumFilters; -- ULONG InterruptCoalescingDomainId; --#endif -- } NDIS_RECEIVE_QUEUE_INFO, *PNDIS_RECEIVE_QUEUE_INFO; -- -- typedef struct _NDIS_RECEIVE_QUEUE_INFO_ARRAY { -- NDIS_OBJECT_HEADER Header; -- ULONG FirstElementOffset; -- ULONG NumElements; -- ULONG ElementSize; -- } NDIS_RECEIVE_QUEUE_INFO_ARRAY, *PNDIS_RECEIVE_QUEUE_INFO_ARRAY; -- -- typedef struct _NDIS_RECEIVE_FILTER_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_RECEIVE_FILTER_TYPE FilterType; -- NDIS_RECEIVE_FILTER_ID FilterId; -- } NDIS_RECEIVE_FILTER_INFO, *PNDIS_RECEIVE_FILTER_INFO; -- -- typedef struct _NDIS_RECEIVE_FILTER_INFO_ARRAY { -- NDIS_OBJECT_HEADER Header; -- NDIS_RECEIVE_QUEUE_ID QueueId; -- ULONG FirstElementOffset; -- ULONG NumElements; -- ULONG ElementSize; --#if NDIS_SUPPORT_NDIS630 -- ULONG Flags; -- NDIS_NIC_SWITCH_VPORT_ID VPortId; --#endif -- } NDIS_RECEIVE_FILTER_INFO_ARRAY, *PNDIS_RECEIVE_FILTER_INFO_ARRAY; -- -- typedef struct _NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_RECEIVE_QUEUE_ID QueueId; -- NDIS_STATUS CompletionStatus; -- } NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS; -- -- typedef struct _NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG FirstElementOffset; -- ULONG NumElements; -- ULONG ElementSize; -- } NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY, *PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY; --#endif -- --#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6 --#define NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS 0x01000000 --#define NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR 0x02000000 --#define NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC 0x04000000 --#if NDIS_SUPPORT_NDIS620 --#define NDIS_RSS_CAPS_USING_MSI_X 0x08000000 --#endif --#if NDIS_SUPPORT_NDIS630 --#define NDIS_RSS_CAPS_RSS_AVAILABLE_ON_PORTS 0x10000000 --#define NDIS_RSS_CAPS_SUPPORTS_MSI_X 0x20000000 --#endif --#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4 0x00000100 --#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6 0x00000200 --#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX 0x00000400 -- --#define NdisHashFunctionToeplitz 0x00000001 --#define NdisHashFunctionReserved1 0x00000002 --#define NdisHashFunctionReserved2 0x00000004 --#define NdisHashFunctionReserved3 0x00000008 -- --#define NDIS_HASH_FUNCTION_MASK 0x000000ff --#define NDIS_HASH_TYPE_MASK 0x00ffff00 -- --#define NDIS_RSS_HASH_FUNC_FROM_HASH_INFO(HINFO) ((HINFO) & (NDIS_HASH_FUNCTION_MASK)) --#define NDIS_RSS_HASH_TYPE_FROM_HASH_INFO(HINFO) ((HINFO) & (NDIS_HASH_TYPE_MASK)) --#define NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC(HTYPE, HFCT) ((HTYPE) | (HFCT)) -- --#define NDIS_HASH_IPV4 0x00000100 --#define NDIS_HASH_TCP_IPV4 0x00000200 --#define NDIS_HASH_IPV6 0x00000400 --#define NDIS_HASH_IPV6_EX 0x00000800 --#define NDIS_HASH_TCP_IPV6 0x00001000 --#define NDIS_HASH_TCP_IPV6_EX 0x00002000 -- --#define NDIS_RSS_PARAM_FLAG_BASE_CPU_UNCHANGED 0x0001 --#define NDIS_RSS_PARAM_FLAG_HASH_INFO_UNCHANGED 0x0002 --#define NDIS_RSS_PARAM_FLAG_ITABLE_UNCHANGED 0x0004 --#define NDIS_RSS_PARAM_FLAG_HASH_KEY_UNCHANGED 0x0008 --#define NDIS_RSS_PARAM_FLAG_DISABLE_RSS 0x0010 -- --#define NDIS_RSS_INDIRECTION_TABLE_SIZE_REVISION_1 128 --#define NDIS_RSS_HASH_SECRET_KEY_SIZE_REVISION_1 40 -- --#define NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_1 128 --#define NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_1 40 -- --#if NDIS_SUPPORT_NDIS620 --#define NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_2 (128 * sizeof (PROCESSOR_NUMBER)) --#define NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_2 40 --#endif -- --#define NDIS_RECEIVE_HASH_FLAG_ENABLE_HASH 0x00000001 --#define NDIS_RECEIVE_HASH_FLAG_HASH_INFO_UNCHANGED 0x00000002 --#define NDIS_RECEIVE_HASH_FLAG_HASH_KEY_UNCHANGED 0x00000004 -- --#define NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS 0x00000001 -- --#define NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 1 --#define NDIS_RECEIVE_HASH_PARAMETERS_REVISION_1 1 --#define NDIS_PORT_STATE_REVISION_1 1 --#define NDIS_PORT_CHARACTERISTICS_REVISION_1 1 --#define NDIS_PORT_ARRAY_REVISION_1 1 --#define NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_1 1 --#if NDIS_SUPPORT_NDIS620 --#define NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_2 2 --#endif --#if NDIS_SUPPORT_NDIS630 --#define NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 2 --#endif -- --#define NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_CAPABILITIES, NumberOfReceiveQueues) --#define NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_PARAMETERS, HashSecretKeyOffset) --#define NDIS_SIZEOF_RECEIVE_HASH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_HASH_PARAMETERS, HashSecretKeyOffset) --#define NDIS_SIZEOF_PORT_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_STATE, Flags) --#define NDIS_SIZEOF_PORT_CHARACTERISTICS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_CHARACTERISTICS, RcvAuthorizationState) --#define NDIS_SIZEOF_PORT_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_ARRAY, Ports) --#if NDIS_SUPPORT_NDIS620 --#define NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_PARAMETERS, ProcessorMasksEntrySize) --#endif --#if NDIS_SUPPORT_NDIS630 --#define NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_CAPABILITIES, NumberOfIndirectionTableEntries) --#endif -- -- typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES { -- NDIS_OBJECT_HEADER Header; -- ULONG CapabilitiesFlags; -- ULONG NumberOfInterruptMessages; -- ULONG NumberOfReceiveQueues; --#if NDIS_SUPPORT_NDIS630 -- USHORT NumberOfIndirectionTableEntries; --#endif -- } NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES; -- -- typedef struct _NDIS_RECEIVE_SCALE_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- USHORT Flags; -- USHORT BaseCpuNumber; -- ULONG HashInformation; -- USHORT IndirectionTableSize; -- ULONG IndirectionTableOffset; -- USHORT HashSecretKeySize; -- ULONG HashSecretKeyOffset; --#if NDIS_SUPPORT_NDIS620 -- ULONG ProcessorMasksOffset; -- ULONG NumberOfProcessorMasks; -- ULONG ProcessorMasksEntrySize; --#endif -- } NDIS_RECEIVE_SCALE_PARAMETERS, *PNDIS_RECEIVE_SCALE_PARAMETERS; -- -- typedef struct _NDIS_RECEIVE_HASH_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG HashInformation; -- USHORT HashSecretKeySize; -- ULONG HashSecretKeyOffset; -- } NDIS_RECEIVE_HASH_PARAMETERS, *PNDIS_RECEIVE_HASH_PARAMETERS; -- -- typedef enum _NDIS_PROCESSOR_VENDOR { -- NdisProcessorVendorUnknown, -- NdisProcessorVendorGenuinIntel, -- NdisProcessorVendorGenuineIntel = NdisProcessorVendorGenuinIntel, -- NdisProcessorVendorAuthenticAMD -- } NDIS_PROCESSOR_VENDOR, *PNDIS_PROCESSOR_VENDOR; -- --#if NDIS_SUPPORT_NDIS620 --#define NDIS_HYPERVISOR_INFO_FLAG_HYPERVISOR_PRESENT 0x00000001 -- --#define NDIS_RSS_PROCESSOR_INFO_REVISION_1 1 --#define NDIS_SYSTEM_PROCESSOR_INFO_EX_REVISION_1 1 --#define NDIS_HYPERVISOR_INFO_REVISION_1 1 --#define NDIS_WMI_RECEIVE_QUEUE_INFO_REVISION_1 1 --#define NDIS_WMI_RECEIVE_QUEUE_PARAMETERS_REVISION_1 1 --#if NDIS_SUPPORT_NDIS630 --#define NDIS_RSS_PROCESSOR_INFO_REVISION_2 2 --#endif -- --#define NDIS_SIZEOF_RSS_PROCESSOR_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR, PreferenceIndex) --#define NDIS_SIZEOF_RSS_PROCESSOR_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR_INFO, RssProcessorEntrySize) --#define NDIS_SIZEOF_SYSTEM_PROCESSOR_INFO_EX_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SYSTEM_PROCESSOR_INFO_EX, ProcessorInfoEntrySize) --#define NDIS_SIZEOF_HYPERVISOR_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HYPERVISOR_INFO, PartitionType) --#define NDIS_SIZEOF_WMI_RECEIVE_QUEUE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_RECEIVE_QUEUE_PARAMETERS, QueueName) --#define NDIS_SIZEOF_WMI_RECEIVE_QUEUE_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_RECEIVE_QUEUE_INFO, QueueName) --#if NDIS_SUPPORT_NDIS630 --#define NDIS_SIZEOF_RSS_PROCESSOR_INFO_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR_INFO, RssProfile) --#endif -- -- typedef struct _NDIS_RSS_PROCESSOR { -- PROCESSOR_NUMBER ProcNum; -- USHORT PreferenceIndex; -- USHORT Reserved; -- } NDIS_RSS_PROCESSOR, *PNDIS_RSS_PROCESSOR; -- --#if NDIS_SUPPORT_NDIS630 -- typedef enum _NDIS_RSS_PROFILE { -- NdisRssProfileClosest = 1, -- NdisRssProfileClosestStatic, -- NdisRssProfileNuma, -- NdisRssProfileNumaStatic, -- NdisRssProfileConservative, -- NdisRssProfileMaximum, -- } NDIS_RSS_PROFILE, *PNDIS_RSS_PROFILE; --#endif -- -- typedef struct _NDIS_RSS_PROCESSOR_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- PROCESSOR_NUMBER RssBaseProcessor; -- ULONG MaxNumRssProcessors; -- USHORT PreferredNumaNode; -- ULONG RssProcessorArrayOffset; -- ULONG RssProcessorCount; -- ULONG RssProcessorEntrySize; --#if NDIS_SUPPORT_NDIS630 -- PROCESSOR_NUMBER RssMaxProcessor; -- NDIS_RSS_PROFILE RssProfile; --#endif -- } NDIS_RSS_PROCESSOR_INFO, *PNDIS_RSS_PROCESSOR_INFO; -- -- typedef struct _NDIS_PROCESSOR_INFO_EX { -- PROCESSOR_NUMBER ProcNum; -- ULONG SocketId; -- ULONG CoreId; -- ULONG HyperThreadId; -- USHORT NodeId; -- USHORT NodeDistance; -- } NDIS_PROCESSOR_INFO_EX, *PNDIS_PROCESSOR_INFO_EX; -- -- typedef struct _NDIS_SYSTEM_PROCESSOR_INFO_EX { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_PROCESSOR_VENDOR ProcessorVendor; -- ULONG NumSockets; -- ULONG NumCores; -- ULONG NumCoresPerSocket; -- ULONG MaxHyperThreadingProcsPerCore; -- ULONG ProcessorInfoOffset; -- ULONG NumberOfProcessors; -- ULONG ProcessorInfoEntrySize; -- } NDIS_SYSTEM_PROCESSOR_INFO_EX, *PNDIS_SYSTEM_PROCESSOR_INFO_EX; -- -- typedef enum _NDIS_HYPERVISOR_PARTITION_TYPE { -- NdisHypervisorPartitionTypeUnknown, -- NdisHypervisorPartitionTypeMsHvParent, -- NdisHypervisorPartitionMsHvChild, -- NdisHypervisorPartitionTypeMax -- } NDIS_HYPERVISOR_PARTITION_TYPE, *PNDIS_HYPERVISOR_PARTITION_TYPE; -- -- typedef struct _NDIS_HYPERVISOR_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_HYPERVISOR_PARTITION_TYPE PartitionType; -- } NDIS_HYPERVISOR_INFO, *PNDIS_HYPERVISOR_INFO; -- -- typedef struct _NDIS_WMI_GROUP_AFFINITY { -- ULONG64 Mask; -- USHORT Group; -- USHORT Reserved[3]; -- } NDIS_WMI_GROUP_AFFINITY, *PNDIS_WMI_GROUP_AFFINITY; -- -- typedef struct _NDIS_WMI_RECEIVE_QUEUE_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_RECEIVE_QUEUE_TYPE QueueType; -- NDIS_RECEIVE_QUEUE_ID QueueId; -- NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId; -- NDIS_WMI_GROUP_AFFINITY ProcessorAffinity; -- ULONG NumSuggestedReceiveBuffers; -- ULONG MSIXTableEntry; -- ULONG LookaheadSize; -- NDIS_VM_NAME VmName; -- NDIS_QUEUE_NAME QueueName; -- } NDIS_WMI_RECEIVE_QUEUE_PARAMETERS, *PNDIS_WMI_RECEIVE_QUEUE_PARAMETERS; -- -- typedef struct _NDIS_WMI_RECEIVE_QUEUE_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_RECEIVE_QUEUE_TYPE QueueType; -- NDIS_RECEIVE_QUEUE_ID QueueId; -- NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId; -- NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE QueueState; -- NDIS_WMI_GROUP_AFFINITY ProcessorAffinity; -- ULONG NumSuggestedReceiveBuffers; -- ULONG MSIXTableEntry; -- ULONG LookaheadSize; -- NDIS_VM_NAME VmName; -- NDIS_QUEUE_NAME QueueName; -- } NDIS_WMI_RECEIVE_QUEUE_INFO, *PNDIS_WMI_RECEIVE_QUEUE_INFO; --#endif -- --#if NDIS_SUPPORT_NDIS630 -- --#define NDIS_NDK_PERFORMANCE_COUNTER_MASK(CNTFIELD) (((ULONG64) 1) << (FIELD_OFFSET (NDIS_NDK_PERFORMANCE_COUNTERS, CNTFIELD) / sizeof (ULONG64))) -- --#define OID_NDK_SET_STATE 0xfc040201 --#define OID_NDK_STATISTICS 0xfc040202 --#define OID_NDK_CONNECTIONS 0xfc040203 --#define OID_NDK_LOCAL_ENDPOINTS 0xfc040204 -- --#define OID_QOS_HARDWARE_CAPABILITIES 0xfc050001 --#define OID_QOS_CURRENT_CAPABILITIES 0xfc050002 --#define OID_QOS_PARAMETERS 0xfc050003 --#define OID_QOS_OPERATIONAL_PARAMETERS 0xfc050004 --#define OID_QOS_REMOTE_PARAMETERS 0xfc050005 -- --#define NDIS_QOS_MAXIMUM_PRIORITIES 8 --#define NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES 8 -- --#define NDIS_QOS_CAPABILITIES_STRICT_TSA_SUPPORTED 0x00000001 --#define NDIS_QOS_CAPABILITIES_MACSEC_BYPASS_SUPPORTED 0x00000002 --#define NDIS_QOS_CAPABILITIES_CEE_DCBX_SUPPORTED 0x00000004 --#define NDIS_QOS_CAPABILITIES_IEEE_DCBX_SUPPORTED 0x00000008 -- --#define NDIS_QOS_CLASSIFICATION_SET_BY_MINIPORT_MASK 0xff000000 --#define NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT 0x01000000 -- --#define NDIS_QOS_CONDITION_RESERVED 0x0 --#define NDIS_QOS_CONDITION_DEFAULT 0x1 --#define NDIS_QOS_CONDITION_TCP_PORT 0x2 --#define NDIS_QOS_CONDITION_UDP_PORT 0x3 --#define NDIS_QOS_CONDITION_TCP_OR_UDP_PORT 0x4 --#define NDIS_QOS_CONDITION_ETHERTYPE 0x5 --#define NDIS_QOS_CONDITION_NETDIRECT_PORT 0x6 --#define NDIS_QOS_CONDITION_MAXIMUM 0x7 -- --#define NDIS_QOS_ACTION_PRIORITY 0x0 --#define NDIS_QOS_ACTION_MAXIMUM 0x1 -- --#define NDIS_QOS_PARAMETERS_ETS_CHANGED 0x00000001 --#define NDIS_QOS_PARAMETERS_ETS_CONFIGURED 0x00000002 --#define NDIS_QOS_PARAMETERS_PFC_CHANGED 0x00000100 --#define NDIS_QOS_PARAMETERS_PFC_CONFIGURED 0x00000200 --#define NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED 0x00010000 --#define NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED 0x00020000 --#define NDIS_QOS_PARAMETERS_WILLING 0x80000000 -- --#define NDIS_QOS_TSA_STRICT 0x0 --#define NDIS_QOS_TSA_CBS 0x1 --#define NDIS_QOS_TSA_ETS 0x2 --#define NDIS_QOS_TSA_MAXIMUM 0x3 -- --#define NDIS_PF_FUNCTION_ID (USHORT) -1 --#define NDIS_INVALID_VF_FUNCTION_ID (USHORT) -1 --#define NDIS_INVALID_RID (ULONG) -1 --#define NDIS_DEFAULT_VPORT_ID 0 --#define NDIS_DEFAULT_SWITCH_ID 0 --#define NDIS_INVALID_SWITCH_ID (ULONG) -1 -- --#define NDIS_NIC_SWITCH_PARAMETERS_CHANGE_MASK 0xffff0000 --#define NDIS_NIC_SWITCH_PARAMETERS_SWITCH_NAME_CHANGED 0x00010000 -- --#define NDIS_SRIOV_CAPS_SRIOV_SUPPORTED 0x00000001 --#define NDIS_SRIOV_CAPS_PF_MINIPORT 0x00000002 --#define NDIS_SRIOV_CAPS_VF_MINIPORT 0x00000004 -- --#define NDIS_NIC_SWITCH_VF_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH 0x00000001 -- --#define NDIS_NIC_SWITCH_VPORT_PARAMS_LOOKAHEAD_SPLIT_ENABLED 0x00000001 --#define NDIS_NIC_SWITCH_VPORT_PARAMS_CHANGE_MASK 0xffff0000 --#define NDIS_NIC_SWITCH_VPORT_PARAMS_FLAGS_CHANGED 0x00010000 --#define NDIS_NIC_SWITCH_VPORT_PARAMS_NAME_CHANGED 0x00020000 --#define NDIS_NIC_SWITCH_VPORT_PARAMS_INT_MOD_CHANGED 0x00040000 --#define NDIS_NIC_SWITCH_VPORT_PARAMS_STATE_CHANGED 0x00080000 --#define NDIS_NIC_SWITCH_VPORT_PARAMS_PROCESSOR_AFFINITY_CHANGED 0x00100000 -- --#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION 0x00000001 --#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH 0x00000002 -- --#define NDIS_NIC_SWITCH_VPORT_INFO_LOOKAHEAD_SPLIT_ENABLED 0x00000001 -- -- DEFINE_GUID (GUID_NDIS_NDK_CAPABILITIES, 0x7969ba4d, 0xdd80, 0x4bc7, 0xb3, 0xe6, 0x68, 0x04, 0x39, 0x97, 0xe5, 0x19); -- DEFINE_GUID (GUID_NDIS_NDK_STATE, 0x530c69c9, 0x2f51, 0x49de, 0xa1, 0xaf, 0x08, 0x8d, 0x54, 0xff, 0xa4, 0x74); -- --#define NDIS_NDK_CAPABILITIES_REVISION_1 1 --#define NDIS_NDK_STATISTICS_INFO_REVISION_1 1 --#define NDIS_NDK_CONNECTIONS_REVISION_1 1 --#define NDIS_NDK_LOCAL_ENDPOINTS_REVISION_1 1 --#define NDIS_QOS_CAPABILITIES_REVISION_1 1 --#define NDIS_QOS_CLASSIFICATION_ELEMENT_REVISION_1 1 --#define NDIS_QOS_PARAMETERS_REVISION_1 1 --#define NDIS_NIC_SWITCH_PARAMETERS_REVISION_1 1 --#define NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS_REVISION_1 1 --#define NDIS_NIC_SWITCH_INFO_REVISION_1 1 --#define NDIS_NIC_SWITCH_INFO_ARRAY_REVISION_1 1 --#define NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_1 1 --#define NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS_REVISION_1 1 --#define NDIS_NIC_SWITCH_VPORT_INFO_REVISION_1 1 --#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_REVISION_1 1 --#define NDIS_NIC_SWITCH_VF_PARAMETERS_REVISION_1 1 --#define NDIS_NIC_SWITCH_FREE_VF_PARAMETERS_REVISION_1 1 --#define NDIS_NIC_SWITCH_VF_INFO_REVISION_1 1 --#define NDIS_NIC_SWITCH_VF_INFO_ARRAY_REVISION_1 1 --#define NDIS_SRIOV_CAPABILITIES_REVISION_1 1 --#define NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 1 --#define NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 1 --#define NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 1 --#define NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 1 --#define NDIS_SRIOV_RESET_VF_PARAMETERS_REVISION_1 1 --#define NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS_REVISION_1 1 --#define NDIS_SRIOV_CONFIG_STATE_PARAMETERS_REVISION_1 1 --#define NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO_REVISION_1 1 --#define NDIS_SRIOV_PROBED_BARS_INFO_REVISION_1 1 --#define NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS_REVISION_1 1 --#define NDIS_SRIOV_BAR_RESOURCES_INFO_REVISION_1 1 --#define NDIS_SRIOV_PF_LUID_INFO_REVISION_1 1 --#define NDIS_SRIOV_VF_SERIAL_NUMBER_INFO_REVISION_1 1 --#define NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO_REVISION_1 1 --#define NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION_1 1 --#define NDIS_SWITCH_PORT_PROPERTY_SECURITY_REVISION_1 1 --#define NDIS_SWITCH_PORT_PROPERTY_VLAN_REVISION_1 1 --#define NDIS_SWITCH_PORT_PROPERTY_PROFILE_REVISION_1 1 --#define NDIS_SWITCH_PORT_PROPERTY_CUSTOM_REVISION_1 1 --#define NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_REVISION_1 1 --#define NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS_REVISION_1 1 --#define NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_REVISION_1 1 --#define NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_REVISION_1 1 --#define NDIS_SWITCH_PROPERTY_PARAMETERS_REVISION_1 1 --#define NDIS_SWITCH_PROPERTY_CUSTOM_REVISION_1 1 --#define NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS_REVISION_1 1 --#define NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM_REVISION_1 1 --#define NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS_REVISION_1 1 --#define NDIS_SWITCH_PROPERTY_ENUM_INFO_REVISION_1 1 --#define NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_REVISION_1 1 --#define NDIS_SWITCH_FEATURE_STATUS_CUSTOM_REVISION_1 1 --#define NDIS_SWITCH_PORT_PARAMETERS_REVISION_1 1 --#define NDIS_SWITCH_PORT_ARRAY_REVISION_1 1 --#define NDIS_SWITCH_PARAMETERS_REVISION_1 1 --#define NDIS_SWITCH_NIC_PARAMETERS_REVISION_1 1 --#define NDIS_SWITCH_NIC_ARRAY_REVISION_1 1 --#define NDIS_SWITCH_NIC_OID_REQUEST_REVISION_1 1 --#define NDIS_SWITCH_FEATURE_STATUS_PARAMETERS_REVISION_1 1 --#define NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 1 -- --#define NDIS_SIZEOF_NDK_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NDK_CAPABILITIES, NdkInfo) --#define NDIS_SIZEOF_NDK_STATISTICS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NDK_STATISTICS_INFO, CounterSet) --#define NDIS_SIZEOF_NDK_CONNECTIONS_REVISION_1(n) FIELD_OFFSET (NDIS_NDK_CONNECTIONS, Connections[n]) --#define NDIS_SIZEOF_NDK_LOCAL_ENDPOINTS_REVISION_1(n) FIELD_OFFSET (NDIS_NDK_LOCAL_ENDPOINTS, LocalEndpoints[n]) --#define NDIS_SIZEOF_QOS_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_CAPABILITIES, MaxNumPfcEnabledTrafficClasses) --#define NDIS_SIZEOF_QOS_CLASSIFICATION_ELEMENT_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_CLASSIFICATION_ELEMENT, ActionField) --#define NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_PARAMETERS, FirstClassificationElementOffset) --#define NDIS_SIZEOF_NIC_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_PARAMETERS, NdisReserved3) --#define NDIS_SIZEOF_NIC_SWITCH_DELETE_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS, SwitchId) --#define NDIS_SIZEOF_NIC_SWITCH_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_INFO, NumActiveNonDefaultVPortVlanIds) --#define NDIS_SIZEOF_NIC_SWITCH_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_INFO_ARRAY, ElementSize) --#define NDIS_SIZEOF_NIC_SWITCH_VPORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_PARAMETERS, LookaheadSize) --#define NDIS_SIZEOF_NIC_SWITCH_DELETE_VPORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS, VPortId) --#define NDIS_SIZEOF_NIC_SWITCH_VPORT_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_INFO, NumFilters) --#define NDIS_SIZEOF_NIC_SWITCH_VPORT_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_INFO_ARRAY, ElementSize) --#define NDIS_SIZEOF_NIC_SWITCH_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_PARAMETERS, RequestorId) --#define NDIS_SIZEOF_NIC_SWITCH_FREE_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_FREE_VF_PARAMETERS, VFId) --#define NDIS_SIZEOF_NIC_SWITCH_VF_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_INFO, RequestorId) --#define NDIS_SIZEOF_NIC_SWITCH_VF_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_INFO_ARRAY, ElementSize) --#define NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_CAPABILITIES, SriovCapabilities) --#define NDIS_SIZEOF_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS, BufferOffset) --#define NDIS_SIZEOF_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS, BufferOffset) --#define NDIS_SIZEOF_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS, BufferOffset) --#define NDIS_SIZEOF_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS, BufferOffset) --#define NDIS_SIZEOF_SRIOV_RESET_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_RESET_VF_PARAMETERS, VFId) --#define NDIS_SIZEOF_SRIOV_SET_VF_POWER_STATE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS, WakeEnable) --#define NDIS_SIZEOF_SRIOV_CONFIG_STATE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_CONFIG_STATE_PARAMETERS, Length) --#define NDIS_SIZEOF_SRIOV_VF_VENDOR_DEVICE_ID_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO, DeviceId) --#define NDIS_SIZEOF_SRIOV_PROBED_BARS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_PROBED_BARS_INFO, BaseRegisterValuesOffset) --#define NDIS_SIZEOF_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS, DestVPortId) --#define NDIS_SIZEOF_SRIOV_BAR_RESOURCES_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_BAR_RESOURCES_INFO, BarResourcesOffset) --#define NDIS_SIZEOF_SRIOV_PF_LUID_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_PF_LUID_INFO, Luid) --#define NDIS_SIZEOF_SRIOV_VF_SERIAL_NUMBER_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_SERIAL_NUMBER_INFO, SerialNumber) --#define NDIS_SIZEOF_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO, BlockMask) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_SECURITY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_SECURITY, AllowTeaming) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_VLAN_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_VLAN, VlanProperties) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_PROFILE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_PROFILE, CdnLabel) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_CUSTOM, PropertyBufferOffset) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_PARAMETERS, Reserved) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS, Reserved) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO, PropertyBufferOffset) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS, Reserved) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM, FeatureStatusBufferOffset) --#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_CUSTOM, PropertyBufferOffset) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS, PropertyInstanceId) --#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_PARAMETERS, PropertyBufferOffset) --#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_ENUM_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_ENUM_INFO, PropertyBufferOffset) --#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS, NumProperties) --#define NDIS_SIZEOF_NDIS_SWITCH_FEATURE_STATUS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_FEATURE_STATUS_PARAMETERS, FeatureStatusBufferLength) --#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS, PropertyInstanceId) --#define NDIS_SIZEOF_NDIS_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PARAMETERS, IsActive) --#define NDIS_SIZEOF_NDIS_SWITCH_FEATURE_STATUS_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_FEATURE_STATUS_CUSTOM, FeatureStatusCustomBufferOffset) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PARAMETERS, PortState) --#define NDIS_SIZEOF_NDIS_SWITCH_PORT_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_ARRAY, ElementSize) --#define NDIS_SIZEOF_NDIS_SWITCH_NIC_OID_REQUEST_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_OID_REQUEST, OidRequest) --#define NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_SAVE_STATE, SaveDataOffset) --#define NDIS_SIZEOF_NDIS_SWITCH_NIC_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_PARAMETERS, VFAssigned) --#define NDIS_SIZEOF_NDIS_SWITCH_NIC_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_ARRAY, ElementSize) -- --#define NDIS_SWITCH_PORT_PROPERTY_CUSTOM_GET_BUFFER(PPROPC) ((PVOID) ((PUCHAR) (PPROPC) + (PPROPC)->PropertyBufferOffset)) --#define NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_GET_PROPERTY(PPARM) ((PVOID) ((PUCHAR) (PPARM) + (PPARM)->PropertyBufferOffset)) --#define NDIS_SWITCH_CREATE_PROPERTY_VERSION(VMAJOR, VMINOR) (((VMAJOR) << 8) + (VMINOR)) --#define NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_GET_FIRST_INFO(PEPARM) ((PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO) ((PUCHAR) (PEPARM) + (PEPARM)->FirstPropertyOffset)) --#define NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_GET_NEXT(PEINFO) ((PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO) ((ULONG_PTR) (PEINFO) + (PEINFO)->QwordAlignedPropertyBufferLength + sizeof (NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO))) --#define NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_GET_PROPERTY(PEINFO) ((PVOID) ((PUCHAR) (PEINFO) + (PEINFO)->PropertyBufferOffset)) --#define NDIS_SWITCH_CREATE_FEATURE_STATUS_VERSION(VMAJOR, VMINOR) (((VMAJOR) << 8) + (VMINOR)) --#define NDIS_SWITCH_PROPERTY_CUSTOM_GET_BUFFER(SWPROPC) ((PVOID) ((PUCHAR) (SWPROPC) + (SWPROPC)->PropertyBufferOffset)) --#define NDIS_SWITCH_PROPERTY_PARAMETERS_GET_PROPERTY(SWPARA) ((PVOID) ((PUCHAR) (SWPARA) + (SWPARA)->PropertyBufferOffset)) --#define NDIS_SWITCH_PROPERTY_ENUM_INFO_GET_NEXT(SWEINFO) ((PNDIS_SWITCH_PROPERTY_ENUM_INFO) ((ULONG_PTR) (SWEINFO) + (SWEINFO)->QwordAlignedPropertyBufferLength + sizeof (NDIS_SWITCH_PROPERTY_ENUM_INFO))) --#define NDIS_SWITCH_PROPERTY_ENUM_INFO_GET_PROPERTY(SWEINFO) ((PVOID) ((PUCHAR) (SWEINFO) + (SWEINFO)->PropertyBufferOffset)) --#define NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_GET_FIRST_INFO(SWEPARM) ((PNDIS_SWITCH_PROPERTY_ENUM_INFO) ((PUCHAR) (SWEPARM) + (SWEPARM)->FirstPropertyOffset)) --#define NDIS_SWITCH_PORT_AT_ARRAY_INDEX(PA, IDX) ((PNDIS_SWITCH_PORT_PARAMETERS) ((PUCHAR) (PA) + (PA)->FirstElementOffset + ((PA)->ElementSize * (IDX)))) --#define NDIS_SWITCH_NIC_AT_ARRAY_INDEX(NA, IDX) ((PNDIS_SWITCH_NIC_PARAMETERS) ((PUCHAR) (NA) + (NA)->FirstElementOffset + ((NA)->ElementSize * (IDX)))) -- --#include --#include --#ifndef __CYGWIN__ --#include --#endif -- -- typedef struct _NDIS_NDK_PERFORMANCE_COUNTERS { -- ULONG64 Connect; -- ULONG64 Accept; -- ULONG64 ConnectFailure; -- ULONG64 ConnectionError; -- ULONG64 ActiveConnection; -- ULONG64 Reserved01; -- ULONG64 Reserved02; -- ULONG64 Reserved03; -- ULONG64 Reserved04; -- ULONG64 Reserved05; -- ULONG64 Reserved06; -- ULONG64 Reserved07; -- ULONG64 Reserved08; -- ULONG64 Reserved09; -- ULONG64 Reserved10; -- ULONG64 Reserved11; -- ULONG64 Reserved12; -- ULONG64 Reserved13; -- ULONG64 Reserved14; -- ULONG64 Reserved15; -- ULONG64 Reserved16; -- ULONG64 Reserved17; -- ULONG64 Reserved18; -- ULONG64 Reserved19; -- ULONG64 Reserved20; -- ULONG64 CQError; -- ULONG64 RDMAInOctets; -- ULONG64 RDMAOutOctets; -- ULONG64 RDMAInFrames; -- ULONG64 RDMAOutFrames; -- } NDIS_NDK_PERFORMANCE_COUNTERS, *PNDIS_NDK_PERFORMANCE_COUNTERS; -- -- typedef struct _NDIS_NDK_CAPABILITIES { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG MaxQpCount; -- ULONG MaxCqCount; -- ULONG MaxMrCount; -- ULONG MaxPdCount; -- ULONG MaxInboundReadLimit; -- ULONG MaxOutboundReadLimit; -- ULONG MaxMwCount; -- ULONG MaxSrqCount; -- ULONG64 MissingCounterMask; -- NDK_ADAPTER_INFO *NdkInfo; -- } NDIS_NDK_CAPABILITIES, *PNDIS_NDK_CAPABILITIES; -- -- typedef struct _NDK_WMI_ADAPTER_INFO { -- NDK_VERSION Version; -- UINT32 VendorId; -- UINT32 DeviceId; -- ULONGLONG MaxRegistrationSize; -- ULONGLONG MaxWindowSize; -- ULONG FRMRPageCount; -- ULONG MaxInitiatorRequestSge; -- ULONG MaxReceiveRequestSge; -- ULONG MaxReadRequestSge; -- ULONG MaxTransferLength; -- ULONG MaxInlineDataSize; -- ULONG MaxInboundReadLimit; -- ULONG MaxOutboundReadLimit; -- ULONG MaxReceiveQueueDepth; -- ULONG MaxInitiatorQueueDepth; -- ULONG MaxSrqDepth; -- ULONG MaxCqDepth; -- ULONG LargeRequestThreshold; -- ULONG MaxCallerData; -- ULONG MaxCalleeData; -- ULONG AdapterFlags; -- } NDK_WMI_ADAPTER_INFO, *PNDK_WMI_ADAPTER_INFO; -- -- typedef struct _NDIS_WMI_NDK_CAPABILITIES { -- ULONG MaxQpCount; -- ULONG MaxCqCount; -- ULONG MaxMrCount; -- ULONG MaxPdCount; -- ULONG MaxInboundReadLimit; -- ULONG MaxOutboundReadLimit; -- ULONG MaxMwCount; -- ULONG MaxSrqCount; -- ULONG64 MissingCounterMask; -- NDK_WMI_ADAPTER_INFO NdkInfo; -- } NDIS_WMI_NDK_CAPABILITIES, *PNDIS_WMI_NDK_CAPABILITIES; -- -- typedef struct _NDIS_NDK_STATISTICS_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_NDK_PERFORMANCE_COUNTERS CounterSet; -- } NDIS_NDK_STATISTICS_INFO; -- -- typedef struct _NDIS_NDK_CONNECTION_ENTRY { -- SOCKADDR_INET Local; -- SOCKADDR_INET Remote; -- BOOLEAN UserModeOwner; -- ULONG OwnerPid; -- } NDIS_NDK_CONNECTION_ENTRY; -- -- typedef struct _NDIS_NDK_CONNECTIONS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG Count; -- BOOLEAN NDConnectionsMappedtoTCPConnections; -- NDIS_NDK_CONNECTION_ENTRY Connections[1]; -- } NDIS_NDK_CONNECTIONS; -- -- typedef struct _NDIS_NDK_LOCAL_ENDPOINT_ENTRY { -- SOCKADDR_INET Local; -- BOOLEAN UserModeOwner; -- BOOLEAN Listener; -- ULONG OwnerPid; -- } NDIS_NDK_LOCAL_ENDPOINT_ENTRY; -- -- typedef struct _NDIS_NDK_LOCAL_ENDPOINTS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG Count; -- BOOLEAN NDLocalEndpointsMappedtoTCPLocalEndpoints; -- NDIS_NDK_LOCAL_ENDPOINT_ENTRY LocalEndpoints[1]; -- } NDIS_NDK_LOCAL_ENDPOINTS; -- -- typedef struct _NDIS_QOS_CAPABILITIES { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG MaxNumTrafficClasses; -- ULONG MaxNumEtsCapableTrafficClasses; -- ULONG MaxNumPfcEnabledTrafficClasses; -- } NDIS_QOS_CAPABILITIES, *PNDIS_QOS_CAPABILITIES; -- -- typedef struct _NDIS_QOS_CLASSIFICATION_ELEMENT { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- USHORT ConditionSelector; -- USHORT ConditionField; -- USHORT ActionSelector; -- USHORT ActionField; -- } NDIS_QOS_CLASSIFICATION_ELEMENT, *PNDIS_QOS_CLASSIFICATION_ELEMENT; -- -- typedef struct _NDIS_QOS_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG NumTrafficClasses; -- UCHAR PriorityAssignmentTable[NDIS_QOS_MAXIMUM_PRIORITIES]; -- UCHAR TcBandwidthAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]; -- UCHAR TsaAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]; -- ULONG PfcEnable; -- ULONG NumClassificationElements; -- ULONG ClassificationElementSize; -- ULONG FirstClassificationElementOffset; -- } NDIS_QOS_PARAMETERS, *PNDIS_QOS_PARAMETERS; -- -- typedef NDIS_IF_COUNTED_STRING NDIS_NIC_SWITCH_FRIENDLYNAME, *PNDIS_NIC_SWITCH_FRIENDLYNAME; -- typedef NDIS_IF_COUNTED_STRING NDIS_VPORT_NAME, *PNDIS_VPORT_NAME; -- typedef ULONG NDIS_NIC_SWITCH_ID, *PNDIS_NIC_SWITCH_ID; -- typedef USHORT NDIS_SRIOV_FUNCTION_ID, *PNDIS_SRIOV_FUNCTION_ID; -- typedef ULONG NDIS_VF_RID, *PNDIS_VF_RID; -- -- typedef enum _NDIS_NIC_SWITCH_TYPE { -- NdisNicSwitchTypeUnspecified, -- NdisNicSwitchTypeExternal, -- NdisNicSwitchTypeMax -- } NDIS_NIC_SWITCH_TYPE, *PNDIS_NIC_SWITCH_TYPE; -- -- typedef struct _NDIS_NIC_SWITCH_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_NIC_SWITCH_TYPE SwitchType; -- NDIS_NIC_SWITCH_ID SwitchId; -- NDIS_NIC_SWITCH_FRIENDLYNAME SwitchFriendlyName; -- ULONG NumVFs; -- ULONG NdisReserved1; -- ULONG NdisReserved2; -- ULONG NdisReserved3; -- } NDIS_NIC_SWITCH_PARAMETERS, *PNDIS_NIC_SWITCH_PARAMETERS; -- -- typedef struct _NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_NIC_SWITCH_ID SwitchId; -- } NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS, *PNDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS; -- -- typedef struct _NDIS_NIC_SWITCH_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_NIC_SWITCH_TYPE SwitchType; -- NDIS_NIC_SWITCH_ID SwitchId; -- NDIS_NIC_SWITCH_FRIENDLYNAME SwitchFriendlyName; -- ULONG NumVFs; -- ULONG NumAllocatedVFs; -- ULONG NumVPorts; -- ULONG NumActiveVPorts; -- ULONG NumQueuePairsForDefaultVPort; -- ULONG NumQueuePairsForNonDefaultVPorts; -- ULONG NumActiveDefaultVPortMacAddresses; -- ULONG NumActiveNonDefaultVPortMacAddresses; -- ULONG NumActiveDefaultVPortVlanIds; -- ULONG NumActiveNonDefaultVPortVlanIds; -- } NDIS_NIC_SWITCH_INFO, *PNDIS_NIC_SWITCH_INFO; -- -- typedef struct _NDIS_NIC_SWITCH_INFO_ARRAY { -- NDIS_OBJECT_HEADER Header; -- ULONG FirstElementOffset; -- ULONG NumElements; -- ULONG ElementSize; -- } NDIS_NIC_SWITCH_INFO_ARRAY, *PNDIS_NIC_SWITCH_INFO_ARRAY; -- -- typedef enum _NDIS_NIC_SWITCH_VPORT_STATE { -- NdisNicSwitchVPortStateUndefined, -- NdisNicSwitchVPortStateActivated, -- NdisNicSwitchVPortStateDeactivated, -- NdisNicSwitchVPortStateMaximum -- } NDIS_NIC_SWITCH_VPORT_STATE, *PNDIS_NIC_SWITCH_VPORT_STATE; -- -- typedef enum _NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION { -- NdisNicSwitchVPortInterruptModerationUndefined = 0, -- NdisNicSwitchVPortInterruptModerationAdaptive = 1, -- NdisNicSwitchVPortInterruptModerationOff = 2, -- NdisNicSwitchVPortInterruptModerationLow = 100, -- NdisNicSwitchVPortInterruptModerationMedium = 200, -- NdisNicSwitchVPortInterruptModerationHigh = 300, -- } NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION, *PNDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION; -- -- typedef struct _NDIS_NIC_SWITCH_VPORT_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_NIC_SWITCH_ID SwitchId; -- NDIS_NIC_SWITCH_VPORT_ID VPortId; -- NDIS_VPORT_NAME VPortName; -- NDIS_SRIOV_FUNCTION_ID AttachedFunctionId; -- ULONG NumQueuePairs; -- NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION InterruptModeration; -- NDIS_NIC_SWITCH_VPORT_STATE VPortState; -- GROUP_AFFINITY ProcessorAffinity; -- ULONG LookaheadSize; -- } NDIS_NIC_SWITCH_VPORT_PARAMETERS, *PNDIS_NIC_SWITCH_VPORT_PARAMETERS; -- -- typedef struct _NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_NIC_SWITCH_VPORT_ID VPortId; -- } NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS, *PNDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS; -- -- typedef struct _NDIS_NIC_SWITCH_VPORT_INFO { -- NDIS_OBJECT_HEADER Header; -- NDIS_NIC_SWITCH_VPORT_ID VPortId; -- ULONG Flags; -- NDIS_NIC_SWITCH_ID SwitchId; -- NDIS_VPORT_NAME VPortName; -- NDIS_SRIOV_FUNCTION_ID AttachedFunctionId; -- ULONG NumQueuePairs; -- NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION InterruptModeration; -- NDIS_NIC_SWITCH_VPORT_STATE VPortState; -- GROUP_AFFINITY ProcessorAffinity; -- ULONG LookaheadSize; -- ULONG NumFilters; -- } NDIS_NIC_SWITCH_VPORT_INFO, *PNDIS_NIC_SWITCH_VPORT_INFO; -- -- typedef struct _NDIS_NIC_SWITCH_VPORT_INFO_ARRAY { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_NIC_SWITCH_ID SwitchId; -- NDIS_SRIOV_FUNCTION_ID AttachedFunctionId; -- ULONG FirstElementOffset; -- ULONG NumElements; -- ULONG ElementSize; -- } NDIS_NIC_SWITCH_VPORT_INFO_ARRAY, *PNDIS_NIC_SWITCH_VPORT_INFO_ARRAY; -- -- typedef struct _NDIS_NIC_SWITCH_VF_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_NIC_SWITCH_ID SwitchId; -- NDIS_VM_NAME VMName; -- NDIS_VM_FRIENDLYNAME VMFriendlyName; -- NDIS_SWITCH_NIC_NAME NicName; -- USHORT MacAddressLength; -- UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; -- UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; -- NDIS_SRIOV_FUNCTION_ID VFId; -- NDIS_VF_RID RequestorId; -- } NDIS_NIC_SWITCH_VF_PARAMETERS, *PNDIS_NIC_SWITCH_VF_PARAMETERS; -- -- typedef struct _NDIS_NIC_SWITCH_FREE_VF_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SRIOV_FUNCTION_ID VFId; -- } NDIS_NIC_SWITCH_FREE_VF_PARAMETERS, *PNDIS_NIC_SWITCH_FREE_VF_PARAMETERS; -- -- typedef struct _NDIS_NIC_SWITCH_VF_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_NIC_SWITCH_ID SwitchId; -- NDIS_VM_NAME VMName; -- NDIS_VM_FRIENDLYNAME VMFriendlyName; -- NDIS_SWITCH_NIC_NAME NicName; -- USHORT MacAddressLength; -- UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; -- UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; -- NDIS_SRIOV_FUNCTION_ID VFId; -- NDIS_VF_RID RequestorId; -- } NDIS_NIC_SWITCH_VF_INFO, *PNDIS_NIC_SWITCH_VF_INFO; -- -- typedef struct _NDIS_NIC_SWITCH_VF_INFO_ARRAY { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_NIC_SWITCH_ID SwitchId; -- ULONG FirstElementOffset; -- ULONG NumElements; -- ULONG ElementSize; -- } NDIS_NIC_SWITCH_VF_INFO_ARRAY, *PNDIS_NIC_SWITCH_VF_INFO_ARRAY; -- -- typedef struct _NDIS_SRIOV_CAPABILITIES { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG SriovCapabilities; -- } NDIS_SRIOV_CAPABILITIES, *PNDIS_SRIOV_CAPABILITIES; -- -- typedef struct _NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- NDIS_SRIOV_FUNCTION_ID VFId; -- ULONG Offset; -- ULONG Length; -- ULONG BufferOffset; -- } NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS, *PNDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS; -- -- typedef struct _NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- NDIS_SRIOV_FUNCTION_ID VFId; -- ULONG Offset; -- ULONG Length; -- ULONG BufferOffset; -- } NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS, *PNDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS; -- -- typedef struct _NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- NDIS_SRIOV_FUNCTION_ID VFId; -- ULONG BlockId; -- ULONG Length; -- ULONG BufferOffset; -- } NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS, *PNDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS; -- -- typedef struct _NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- NDIS_SRIOV_FUNCTION_ID VFId; -- ULONG BlockId; -- ULONG Length; -- ULONG BufferOffset; -- } NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS, *PNDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS; -- -- typedef struct _NDIS_SRIOV_RESET_VF_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- NDIS_SRIOV_FUNCTION_ID VFId; -- } NDIS_SRIOV_RESET_VF_PARAMETERS, *PNDIS_SRIOV_RESET_VF_PARAMETERS; -- -- typedef struct _NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- NDIS_SRIOV_FUNCTION_ID VFId; -- NDIS_DEVICE_POWER_STATE PowerState; -- BOOLEAN WakeEnable; -- } NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS, *PNDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS; -- -- typedef struct _NDIS_SRIOV_CONFIG_STATE_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG BlockId; -+ } NDIS_IRDA_PACKET_INFO,*PNDIS_IRDA_PACKET_INFO; -+ -+#ifdef WIRELESS_WAN -+ -+ typedef enum _NDIS_WW_NETWORK_TYPE { -+ NdisWWGeneric, -+ NdisWWMobitex, -+ NdisWWPinpoint, -+ NdisWWCDPD, -+ NdisWWArdis, -+ NdisWWDataTAC, -+ NdisWWMetricom, -+ NdisWWGSM, -+ NdisWWCDMA, -+ NdisWWTDMA, -+ NdisWWAMPS, -+ NdisWWInmarsat, -+ NdisWWpACT, -+ NdisWWFlex, -+ NdisWWIDEN -+ } NDIS_WW_NETWORK_TYPE; -+ -+ typedef enum _NDIS_WW_HEADER_FORMAT { -+ NdisWWDIXEthernetFrames, -+ NdisWWMPAKFrames, -+ NdisWWRDLAPFrames, -+ NdisWWMDC4800Frames, -+ NdisWWNCLFrames -+ } NDIS_WW_HEADER_FORMAT; -+ -+ typedef enum _NDIS_WW_ENCRYPTION_TYPE { -+ NdisWWUnknownEncryption = -1, -+ NdisWWNoEncryption, -+ NdisWWDefaultEncryption, -+ NdisWWDESEncryption, -+ NdisWWRC2Encryption, -+ NdisWWRC4Encryption, -+ NdisWWRC5Encryption -+ } NDIS_WW_ENCRYPTION_TYPE,*PNDIS_WW_ENCRYPTION_TYPE; -+ -+ typedef enum _WW_ADDRESS_FORMAT { -+ WW_IEEE_ADDRESS = 0, -+ WW_MOBITEX_MAN_ADDRESS, -+ WW_DATATAC_RDLAP_ADDRESS, -+ WW_DATATAC_MDC4800_ADDRESS, -+ WW_DATATAC_RESERVED, -+ WW_IPv4_ADDRESS, -+ WW_IPv6_ADDRESS, -+ WW_PROPRIETARY_ADDRESS -+ } WW_ADDRESS_FORMAT; -+ -+ typedef enum _WW_GEN_SUM_EXCEPTION { -+ SIM_STATUS_OK = 0, -+ SIM_STATUS_ERROR, -+ SIM_STATUS_MISSING, -+ SIM_STATUS_NO_RESPONSE, -+ SIM_STATUS_REMOVED, -+ SIM_STATUS_CRYPT_ERROR, -+ SIM_STATUS_AUTH_ERROR, -+ SIM_STATUS_NEED_PIN, -+ SIM_STATUS_NEED_PUK, -+ SIM_STATUS_WRONG -+ } WW_GEN_SIM_EXCEPTION; -+ -+ typedef struct _NDIS_WW_INDICATION_REQUEST { -+ NDIS_OID Oid; -+ ULONG uIndicationFlag; -+ ULONG uApplicationToken; -+ HANDLE hIndicationHandle; -+ INT iPollingInterval; -+ NDIS_VAR_DATA_DESC InitialValue; -+ NDIS_VAR_DATA_DESC OIDIndicationValue; -+ NDIS_VAR_DATA_DESC TriggerValue; -+ } NDIS_WW_INDICATION_REQUEST,*PNDIS_WW_INDICATION_REQUEST; -+ -+#define OID_INDICATION_REQUEST_ENABLE 0x0000 -+#define OID_INDICATION_REQUEST_CANCEL 0x0001 -+ -+ typedef struct _WW_DEVICE_INFO { -+ NDIS_VAR_DATA_DESC Manufacturer; -+ NDIS_VAR_DATA_DESC ModelNum; -+ NDIS_VAR_DATA_DESC SWVersionNum; -+ NDIS_VAR_DATA_DESC SerialNum; -+ } WW_DEVICE_INFO,*PWW_DEVICE_INFO; -+ -+ typedef INT WW_OPERATION_MODE; -+ typedef INT WW_LOCK_STATUS; -+ typedef INT WW_DISABLE_TRANSMITTER; -+ typedef NDIS_VAR_DATA_DESC WW_NETWORK_ID; -+ typedef NDIS_VAR_DATA_DESC WW_PERMANENT_ADDRESS; -+ -+ typedef struct _WW_CURRENT_ADDRESS { -+ NDIS_WW_HEADER_FORMAT Format; -+ NDIS_VAR_DATA_DESC Address; -+ } WW_CURRENT_ADDRESS,*PWW_CURRENT_ADDRESS; -+ -+ typedef BOOLEAN WW_SUSPEND_DRIVER; -+ typedef NDIS_VAR_DATA_DESC WW_BASESTATION_ID; -+ typedef NDIS_VAR_DATA_DESC WW_CHANNEL_ID; -+ typedef BOOLEAN WW_ENCRYPTION_STATE; -+ typedef INT WW_CHANNEL_QUALITY; -+ typedef INT WW_REGISTRATION_STATUS; -+ typedef ULONG WW_RADIO_LINK_SPEED; -+ typedef ULONG WW_LATENCY; -+ typedef INT WW_BATTERY_LEVEL; -+ typedef INT WW_EXTERNAL_POWER; -+ -+ typedef struct _WW_PING_ADDRESS { -+ WW_ADDRESS_FORMAT Format; -+ NDIS_VAR_DATA_DESC TargetAddress; -+ UINT uTime; -+ } WW_PING_ADDRESS; -+ -+ typedef struct _WW_RECEIVE_SIGNAL_STRENGTH_INDICATOR { -+ INT iDecibels; -+ INT iFactor; -+ } WW_RECEIVE_SIGNAL_STRENGTH_INDICATOR; -+ -+ typedef struct _WW_SIM_STATUS { -+ BOOLEAN bHasSIM; -+ BOOLEAN bBlocked; -+ BOOLEAN bLocked; -+ BOOLEAN bInitialized; -+ UINT uCountdown; -+ } WW_SIM_STATUS; -+ -+ typedef struct _WW_ENABLE_SIM_PIN { -+ BOOLEAN bEnabled; -+ NDIS_VAR_DATA_DESC CurrentPIN; -+ } WW_ENABLE_SIM_PIN; -+ -+ typedef struct _WW_CHANGE_SIM_PIN { -+ NDIS_VAR_DATA_DESC OldPIN; -+ NDIS_VAR_DATA_DESC NewPIN; -+ } WW_CHANGE_SIM_PIN; -+ -+ typedef NDIS_VAR_DATA_DESC WW_ENABLE_SIM_PUK; -+ typedef NDIS_VAR_DATA_DESC WW_MET_FUNCTION; -+ typedef BOOLEAN WW_TAC_COMPRESSION; -+ -+ typedef struct _WW_TAC_SETCONFIG { -+ NDIS_VAR_DATA_DESC RCV_MODE; -+ NDIS_VAR_DATA_DESC TX_CONTROL; -+ NDIS_VAR_DATA_DESC RX_CONTROL; -+ NDIS_VAR_DATA_DESC FLOW_CONTROL; -+ NDIS_VAR_DATA_DESC RESET_CNF; -+ NDIS_VAR_DATA_DESC READ_CNF; -+ } WW_TAC_SETCONFIG,*PWW_TAC_SETCONFIG; -+ -+ typedef struct _WW_TAC_GETSTATUS { -+ BOOLEAN Action; -+ NDIS_VAR_DATA_DESC Command; -+ NDIS_VAR_DATA_DESC Option; -+ NDIS_VAR_DATA_DESC Response; -+ } WW_TAC_GETSTATUS,*PWW_TAC_GETSTATUS; -+ -+ typedef NDIS_VAR_DATA_DESC WW_TAC_USERHEADER; -+ -+ typedef struct _WW_TAC_GET_RESPONSE { -+ UINT SDUTag; -+ NDIS_VAR_DATA_DESC Response; -+ } WW_TAC_GET_RESPONSE; -+ -+ typedef INT WW_TAC_DISABLE_RECEIVER; -+ typedef INT WW_TAC_ANTENNA_MODE; -+ typedef INT WW_TAC_FLUSH_DATA; -+ typedef INT WW_TAC_SHUTDOWN_DEVICE; -+ typedef BOOLEAN WW_TAC_TRANSMITTER_KEYED; -+ -+ typedef struct _WW_TAC_SYSTEM_TABLE { -+ UINT SystemCount; -+ UCHAR ContryTable[32]; -+ UCHAR PrefixTable[32]; -+ UCHAR IDTable[32]; -+ } WW_TAC_SYSTEM_TABLE; -+ -+ typedef struct _WW_TAC_CHANNEL_TABLE { -+ UINT ChannelCount; -+ UCHAR ChannelTable[64]; -+ UCHAR AttrTable[64]; -+ } WW_TAC_CHANNEL_TABLE; -+ -+ typedef NDIS_VAR_DATA_DESC WW_TAC_STATISTICS; -+ -+ typedef struct _WW_ARD_SNDCP { -+ NDIS_VAR_DATA_DESC Version; -+ INT BlockSize; -+ INT Window; -+ } WW_ARD_SNDCP,*PWW_ARD_SNDCP; -+ -+ typedef BOOLEAN WW_ARD_CHANNEL_STATUS; -+ -+ typedef struct _WW_ARD_DATAGRAM { -+ BOOLEAN LoadLevel; -+ INT SessionTime; -+ NDIS_VAR_DATA_DESC HostAddr; -+ NDIS_VAR_DATA_DESC THostAddr; -+ } WW_ARD_DATAGRAM,*PWW_ARD_DATAGRAM; -+ -+ typedef struct _WW_CDPD_SPNI { -+ ULONG SPNI[10]; -+ INT OperatingMode; -+ } WW_CDPD_SPNI,*PWW_CDPD_SPNI; -+ -+ typedef struct _WW_CDPD_WIDE_AREA_SERVICE_ID { -+ ULONG WASI[10]; -+ INT OperatingMode; -+ } WW_CDPD_WIDE_AREA_SERVICE_ID,*PWW_CDPD_WIDE_AREA_SERVICE_ID; -+ -+ typedef INT WW_CDPD_AREA_COLOR; -+ typedef ULONG WW_CDPD_TX_POWER_LEVEL; -+ typedef NDIS_VAR_DATA_DESC WW_CDPD_EID; -+ typedef INT WW_CDPD_HEADER_COMPRESSION; -+ typedef INT WW_CDPD_DATA_COMPRESSION; -+ -+ typedef struct _WW_CDPD_CHANNEL_SELECT { -+ ULONG ChannelID; -+ ULONG fixedDuration; -+ } WW_CDPD_CHANNEL_SELECT,*PWW_CDPD_CHANNEL_SELECT; -+ -+ typedef enum _WW_CDPD_CHANNEL_STATE { -+ CDPDChannelNotAvail, -+ CDPDChannelScanning, -+ CDPDChannelInitAcquired, -+ CDPDChannelAcquired, -+ CDPDChannelSleeping, -+ CDPDChannelWaking, -+ CDPDChannelCSDialing, -+ CDPDChannelCSRedial, -+ CDPDChannelCSAnswering, -+ CDPDChannelCSConnected, -+ CDPDChannelCSSuspended -+ } WW_CDPD_CHANNEL_STATE,*PWW_CDPD_CHANNEL_STATE; -+ -+ typedef enum _WW_CDPD_NEI_FORMAT { -+ CDPDNeiIPv4, -+ CDPDNeiCLNP, -+ CDPDNeiIPv6 -+ } WW_CDPD_NEI_FORMAT,*PWW_CDPD_NEI_FORMAT; -+ -+ typedef enum _WW_CDPD_NEI_TYPE { -+ CDPDNeiIndividual, -+ CDPDNeiMulticast, -+ CDPDNeiBroadcast -+ } WW_CDPD_NEI_TYPE; -+ -+ typedef struct _WW_CDPD_NEI { -+ ULONG uNeiIndex; -+ WW_CDPD_NEI_FORMAT NeiFormat; -+ WW_CDPD_NEI_TYPE NeiType; -+ WORD NeiGmid; -+ NDIS_VAR_DATA_DESC NeiAddress; -+ } WW_CDPD_NEI; -+ -+ typedef enum _WW_CDPD_NEI_STATE { -+ CDPDUnknown, -+ CDPDRegistered, -+ CDPDDeregistered -+ } WW_CDPD_NEI_STATE,*PWW_CDPD_NEI_STATE; -+ -+ typedef enum _WW_CDPD_NEI_SUB_STATE { -+ CDPDPending, -+ CDPDNoReason, -+ CDPDMDISNotCapable, -+ CDPDNEINotAuthorized, -+ CDPDInsufficientAuth, -+ CDPDUnsupportedAuth, -+ CDPDUsageExceeded, -+ CDPDDeniedThisNetwork -+ } WW_CDPD_NEI_SUB_STATE; -+ -+ typedef struct _WW_CDPD_NEI_REG_STATE { -+ ULONG uNeiIndex; -+ WW_CDPD_NEI_STATE NeiState; -+ WW_CDPD_NEI_SUB_STATE NeiSubState; -+ } WW_CDPD_NEI_REG_STATE,*PWW_CDPD_NEI_REG_STATE; -+ -+ typedef struct _WW_CDPD_SERVICE_PROVIDER_ID { -+ ULONG SPI[10]; -+ INT OperatingMode; -+ } WW_CDPD_SERVICE_PROVIDER_ID,*PWW_CDPD_SERVICE_PROVIDER_ID; -+ -+ typedef INT WW_CDPD_SLEEP_MODE; -+ typedef ULONG WW_CDPD_TEI; -+ -+ typedef struct _WW_CDPD_CIRCUIT_SWITCHED { -+ INT service_preference; -+ INT service_status; -+ INT connect_rate; -+ NDIS_VAR_DATA_DESC dial_code[20]; -+ ULONG sid; -+ INT a_b_side_selection; -+ INT AMPS_channel; -+ ULONG action; -+ NDIS_VAR_DATA_DESC default_dial[20]; -+ NDIS_VAR_DATA_DESC call_back[20]; -+ ULONG sid_list[10]; -+ ULONG inactivity_timer; -+ ULONG receive_timer; -+ ULONG conn_resp_timer; -+ ULONG reconn_resp_timer; -+ ULONG disconn_timer; -+ ULONG NEI_reg_timer; -+ ULONG reconn_retry_timer; -+ ULONG link_reset_timer; -+ ULONG link_reset_ack_timer; -+ ULONG n401_retry_limit; -+ ULONG n402_retry_limit; -+ ULONG n404_retry_limit; -+ ULONG n405_retry_limit; -+ } WW_CDPD_CIRCUIT_SWITCHED,*WW_PCDPD_CIRCUIT_SWITCHED; -+ -+ typedef ULONG WW_CDPD_RSSI; -+ typedef INT WW_CDPD_CS_SERVICE_PREFERENCE; -+ typedef INT WW_CDPD_CS_SERVICE_STATUS; -+ -+ typedef struct _WW_CDPD_CS_INFO { -+ INT ConnectRage; -+ NDIS_VAR_DATA_DESC DialCode; -+ UINT SID; -+ INT ABSideSelection; -+ INT AMPSChannel; -+ } WW_CDPD_CS_INFO; -+ -+ typedef UINT WW_CDPD_CS_SUSPEND; -+ typedef NDIS_VAR_DATA_DESC WW_CDPD_DEFAULT_DIAL_CODE; -+ -+ typedef struct _WW_CDPD_CS_CALLBACK { -+ UINT Enabled; -+ NDIS_VAR_DATA_DESC Number; -+ } WW_CDPD_CS_CALLBACK; -+ -+ typedef struct _WW_CDPD_CS_SID_LIST { -+ UINT AMPSystemId[10]; -+ } WW_CDPD_CS_SID_LIST; -+ -+ typedef struct _WW_CDPD_CS_CONFIGURATION { -+ UINT InactivityTimer; -+ UINT ReceiveTimer; -+ UINT ConnResTimer; -+ UINT ReconnRespTimer; -+ UINT DisconnTimer; -+ UINT NEIRegTimer; -+ UINT ReconnRetryTimer; -+ UINT LinkResetTimer; -+ UINT LinkResetAckTimer; -+ UINT n401RetryLimit; -+ UINT n402RetryLimit; -+ UINT n404RetryLimit; -+ UINT n405RetryLimit; -+ } WW_CDPD_CS_CONFIGURATION; -+ -+ typedef INT WW_PIN_AUTHORIZED; -+ -+ typedef struct _WW_PIN_LOCATION { -+ INT Latitude; -+ INT Longitude; -+ INT Altitude; -+ INT FixTime; -+ INT NetTime; -+ INT LocQuality; -+ INT LatReg; -+ INT LongReg; -+ INT GMTOffset; -+ } WW_PIN_LOCATION,*PWW_PIN_LOCATION; -+ -+ typedef ULONG WW_MBX_MAILBOX_FLAG; -+ -+ typedef struct _WW_MBX_PMAN { -+ BOOLEAN ACTION; -+ ULONG MAN; -+ UCHAR PASSWORD[8]; -+ } WW_MBX_PMAN,*PWW_MBX_PMAN; -+ -+ typedef struct _WW_MBX_FLEXLIST { -+ INT count; -+ ULONG MAN[7]; -+ } WW_MBX_FLEXLIST; -+ -+ typedef struct _WW_MBX_GROUPLIST { -+ INT count; -+ ULONG MAN[15]; -+ } WW_MBX_GROUPLIST; -+ -+ typedef enum _WW_MBX_TRAFFIC_AREA { -+ unknown_traffic_area, -+ in_traffic_area, -+ in_auth_traffic_area, -+ unauth_traffic_area -+ } WW_MBX_TRAFFIC_AREA; -+ -+ typedef INT WW_MBX_LIVE_DIE; -+ -+ typedef struct _WW_MBX_CHANNEL_PAIR { -+ ULONG Mobile_Tx; -+ ULONG Mobile_Rx; -+ } WW_MBX_CHANNEL_PAIR,*PWW_MBX_CHANNEL_PAIR; -+ -+ typedef struct _WW_MBX_TEMPDEFAULTLIST { - ULONG Length; -- } NDIS_SRIOV_CONFIG_STATE_PARAMETERS, *PNDIS_SRIOV_CONFIG_STATE_PARAMETERS; -- -- typedef struct _NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO { -- NDIS_OBJECT_HEADER Header; -- NDIS_SRIOV_FUNCTION_ID VFId; -- USHORT VendorId; -- USHORT DeviceId; -- } NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO, *PNDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO; -- -- typedef struct _NDIS_SRIOV_PROBED_BARS_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG BaseRegisterValuesOffset; -- } NDIS_SRIOV_PROBED_BARS_INFO, *PNDIS_SRIOV_PROBED_BARS_INFO; -- -- typedef struct _NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- NDIS_RECEIVE_FILTER_ID FilterId; -- NDIS_RECEIVE_QUEUE_ID SourceQueueId; -- NDIS_NIC_SWITCH_VPORT_ID SourceVPortId; -- NDIS_RECEIVE_QUEUE_ID DestQueueId; -- NDIS_NIC_SWITCH_VPORT_ID DestVPortId; -- } NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS, *PNDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS; -- -- typedef struct _NDIS_SRIOV_BAR_RESOURCES_INFO { -- NDIS_OBJECT_HEADER Header; -- NDIS_SRIOV_FUNCTION_ID VFId; -- USHORT BarIndex; -- ULONG BarResourcesOffset; -- } NDIS_SRIOV_BAR_RESOURCES_INFO, *PNDIS_SRIOV_BAR_RESOURCES_INFO; -- -- typedef struct _NDIS_SRIOV_PF_LUID_INFO { -- NDIS_OBJECT_HEADER Header; -- LUID Luid; -- } NDIS_SRIOV_PF_LUID_INFO, *PNDIS_SRIOV_PF_LUID_INFO; -- -- typedef struct _NDIS_SRIOV_VF_SERIAL_NUMBER_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG SerialNumber; -- } NDIS_SRIOV_VF_SERIAL_NUMBER_INFO, *PNDIS_SRIOV_VF_SERIAL_NUMBER_INFO; -- -- typedef struct _NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG64 BlockMask; -- } NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO, *PNDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO; -- -- typedef GUID NDIS_SWITCH_OBJECT_INSTANCE_ID, *PNDIS_SWITCH_OBJECT_INSTANCE_ID; -- typedef GUID NDIS_SWITCH_OBJECT_ID, *PNDIS_SWITCH_OBJECT_ID; -- typedef USHORT NDIS_SWITCH_OBJECT_VERSION, *PNDIS_SWITCH_OBJECT_VERSION; -- typedef USHORT NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION, *PNDIS_SWITCH_OBJECT_SERIALIZATION_VERSION; --#ifndef _NDIS_SWITCH_PORT_ID --#define _NDIS_SWITCH_PORT_ID NDIS_SWITCH_PORT_ID -- typedef UINT32 NDIS_SWITCH_PORT_ID, *PNDIS_SWITCH_PORT_ID; -- typedef USHORT NDIS_SWITCH_NIC_INDEX, *PNDIS_SWITCH_NIC_INDEX; --#endif -- -- typedef enum _NDIS_SWITCH_PORT_PROPERTY_TYPE { -- NdisSwitchPortPropertyTypeUndefined, -- NdisSwitchPortPropertyTypeCustom, -- NdisSwitchPortPropertyTypeSecurity, -- NdisSwitchPortPropertyTypeVlan, -- NdisSwitchPortPropertyTypeProfile, -- NdisSwitchPortPropertyTypeMaximum -- } NDIS_SWITCH_PORT_PROPERTY_TYPE, *PNDIS_SWITCH_PORT_PROPERTY_TYPE; -- -- typedef struct _NDIS_SWITCH_PORT_PROPERTY_SECURITY { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- BOOLEAN AllowMacSpoofing; -- BOOLEAN AllowIeeePriorityTag; -- UINT32 VirtualSubnetId; -- BOOLEAN AllowTeaming; -- } NDIS_SWITCH_PORT_PROPERTY_SECURITY, *PNDIS_SWITCH_PORT_PROPERTY_SECURITY; -- -- typedef enum _NDIS_SWITCH_PORT_VLAN_MODE { -- NdisSwitchPortVlanModeUnknown = 0, -- NdisSwitchPortVlanModeAccess = 1, -- NdisSwitchPortVlanModeTrunk = 2, -- NdisSwitchPortVlanModePrivate = 3, -- NdisSwitchPortVlanModeMax = 4 -- } NDIS_SWITCH_PORT_VLAN_MODE, *PNDIS_SWITCH_PORT_VLAN_MODE; -- -- typedef enum _NDIS_SWITCH_PORT_PVLAN_MODE { -- NdisSwitchPortPvlanModeUndefined = 0, -- NdisSwitchPortPvlanModeIsolated, -- NdisSwitchPortPvlanModeCommunity, -- NdisSwitchPortPvlanModePromiscuous -- } NDIS_SWITCH_PORT_PVLAN_MODE, *PNDIS_SWITCH_PORT_PVLAN_MODE; -- -- typedef struct _NDIS_SWITCH_PORT_PROPERTY_VLAN { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PORT_VLAN_MODE OperationMode; -- __C89_NAMELESS union { -- struct { -- UINT16 AccessVlanId; -- UINT16 NativeVlanId; -- UINT64 PruneVlanIdArray[64]; -- UINT64 TrunkVlanIdArray[64]; -- } VlanProperties; -- struct { -- NDIS_SWITCH_PORT_PVLAN_MODE PvlanMode; -- UINT16 PrimaryVlanId; -- __C89_NAMELESS union { -- UINT16 SecondaryVlanId; -- UINT64 SecondaryVlanIdArray[64]; -- }; -- } PvlanProperties; -- }; -- } NDIS_SWITCH_PORT_PROPERTY_VLAN, *PNDIS_SWITCH_PORT_PROPERTY_VLAN; -- -- typedef struct _NDIS_SWITCH_PORT_PROPERTY_PROFILE { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME ProfileName; -- GUID ProfileId; -- NDIS_VENDOR_NAME VendorName; -- GUID VendorId; -- UINT32 ProfileData; -- GUID NetCfgInstanceId; -- struct { -- UINT32 PciSegmentNumber:16; -- UINT32 PciBusNumber:8; -- UINT32 PciDeviceNumber:5; -- UINT32 PciFunctionNumber:3; -- } PciLocation; -- UINT32 CdnLabelId; -- NDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL CdnLabel; -- } NDIS_SWITCH_PORT_PROPERTY_PROFILE, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE; -- -- typedef struct _NDIS_SWITCH_PORT_PROPERTY_CUSTOM { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG PropertyBufferLength; -- ULONG PropertyBufferOffset; -- } NDIS_SWITCH_PORT_PROPERTY_CUSTOM, *PNDIS_SWITCH_PORT_PROPERTY_CUSTOM; -- -- typedef struct _NDIS_SWITCH_PORT_PROPERTY_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PORT_ID PortId; -- NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType; -- NDIS_SWITCH_OBJECT_ID PropertyId; -- NDIS_SWITCH_OBJECT_VERSION PropertyVersion; -- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; -- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; -- ULONG PropertyBufferLength; -- ULONG PropertyBufferOffset; -- ULONG Reserved; -- } NDIS_SWITCH_PORT_PROPERTY_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_PARAMETERS; -- -- typedef struct _NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PORT_ID PortId; -- NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType; -- NDIS_SWITCH_OBJECT_ID PropertyId; -- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; -- } NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS; -- -- typedef struct _NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PORT_ID PortId; -- NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType; -- NDIS_SWITCH_OBJECT_ID PropertyId; -- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; -- ULONG FirstPropertyOffset; -- ULONG NumProperties; -- USHORT Reserved; -- } NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS; -- -- typedef struct _NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_OBJECT_VERSION PropertyVersion; -- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; -- ULONG QwordAlignedPropertyBufferLength; -- ULONG PropertyBufferLength; -- ULONG PropertyBufferOffset; -- } NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO, *PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO; -- -- typedef enum _NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE { -- NdisSwitchPortFeatureStatusTypeUndefined, -- NdisSwitchPortFeatureStatusTypeCustom, -- NdisSwitchPortFeatureStatusTypeMaximum -- } NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE, *PNDIS_SWITCH_PORT_FEATURE_STATUS_TYPE; -- -- typedef struct _NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PORT_ID PortId; -- NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE FeatureStatusType; -- NDIS_SWITCH_OBJECT_ID FeatureStatusId; -- NDIS_SWITCH_OBJECT_VERSION FeatureStatusVersion; -- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; -- NDIS_SWITCH_OBJECT_INSTANCE_ID FeatureStatusInstanceId; -- ULONG FeatureStatusBufferLength; -- ULONG FeatureStatusBufferOffset; -- ULONG Reserved; -- } NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS, *PNDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS; -- -- typedef struct _NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG FeatureStatusBufferLength; -- ULONG FeatureStatusBufferOffset; -- } NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM, *PNDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM; -- -- typedef enum _NDIS_SWITCH_PROPERTY_TYPE { -- NdisSwitchPropertyTypeUndefined, -- NdisSwitchPropertyTypeCustom, -- NdisSwitchPropertyTypeMaximum -- } NDIS_SWITCH_PROPERTY_TYPE, *PNDIS_SWITCH_PROPERTY_TYPE; -- -- typedef struct _NDIS_SWITCH_PROPERTY_CUSTOM { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG PropertyBufferLength; -- ULONG PropertyBufferOffset; -- } NDIS_SWITCH_PROPERTY_CUSTOM, *PNDIS_SWITCH_PROPERTY_CUSTOM; -- -- typedef struct _NDIS_SWITCH_PROPERTY_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PROPERTY_TYPE PropertyType; -- NDIS_SWITCH_OBJECT_ID PropertyId; -- NDIS_SWITCH_OBJECT_VERSION PropertyVersion; -- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; -- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; -- ULONG PropertyBufferLength; -- ULONG PropertyBufferOffset; -- } NDIS_SWITCH_PROPERTY_PARAMETERS, *PNDIS_SWITCH_PROPERTY_PARAMETERS; -- -- typedef struct _NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PROPERTY_TYPE PropertyType; -- NDIS_SWITCH_OBJECT_ID PropertyId; -- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; -- } NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS, *PNDIS_SWITCH_PROPERTY_DELETE_PARAMETERS; -- -- typedef struct _NDIS_SWITCH_PROPERTY_ENUM_INFO { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId; -- NDIS_SWITCH_OBJECT_VERSION PropertyVersion; -- ULONG QwordAlignedPropertyBufferLength; -- ULONG PropertyBufferLength; -- ULONG PropertyBufferOffset; -- } NDIS_SWITCH_PROPERTY_ENUM_INFO, *PNDIS_SWITCH_PROPERTY_ENUM_INFO; -- -- typedef struct _NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PROPERTY_TYPE PropertyType; -- NDIS_SWITCH_OBJECT_ID PropertyId; -- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; -- ULONG FirstPropertyOffset; -- ULONG NumProperties; -- } NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS, *PNDIS_SWITCH_PROPERTY_ENUM_PARAMETERS; -- -- typedef enum _NDIS_SWITCH_FEATURE_STATUS_TYPE { -- NdisSwitchFeatureStatusTypeUndefined, -- NdisSwitchFeatureStatusTypeCustom, -- NdisSwitchFeatureStatusTypeMaximum -- } NDIS_SWITCH_FEATURE_STATUS_TYPE, *PNDIS_SWITCH_FEATURE_STATUS_TYPE; -- -- typedef struct _NDIS_SWITCH_FEATURE_STATUS_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_FEATURE_STATUS_TYPE FeatureStatusType; -- NDIS_SWITCH_OBJECT_ID FeatureStatusId; -- NDIS_SWITCH_OBJECT_INSTANCE_ID FeatureStatusInstanceId; -- NDIS_SWITCH_OBJECT_VERSION FeatureStatusVersion; -- NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion; -- ULONG FeatureStatusBufferOffset; -- ULONG FeatureStatusBufferLength; -- } NDIS_SWITCH_FEATURE_STATUS_PARAMETERS, *PNDIS_SWITCH_FEATURE_STATUS_PARAMETERS; -- -- typedef struct _NDIS_SWITCH_FEATURE_STATUS_CUSTOM { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- ULONG FeatureStatusCustomBufferLength; -- ULONG FeatureStatusCustomBufferOffset; -- } NDIS_SWITCH_FEATURE_STATUS_CUSTOM, *PNDIS_SWITCH_FEATURE_STATUS_CUSTOM; -- -- typedef struct _NDIS_SWITCH_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_NAME SwitchName; -- NDIS_SWITCH_FRIENDLYNAME SwitchFriendlyName; -- UINT32 NumSwitchPorts; -- BOOLEAN IsActive; -- } NDIS_SWITCH_PARAMETERS, *PNDIS_SWITCH_PARAMETERS; -- -- typedef enum _NDIS_SWITCH_PORT_TYPE { -- NdisSwitchPortTypeGeneric = 0, -- NdisSwitchPortTypeExternal = 1, -- NdisSwitchPortTypeSynthetic = 2, -- NdisSwitchPortTypeEmulated = 3, -- NdisSwitchPortTypeInternal = 4 -- } NDIS_SWITCH_PORT_TYPE; -- -- typedef enum _NDIS_SWITCH_PORT_STATE { -- NdisSwitchPortStateUnknown = 0, -- NdisSwitchPortStateCreated = 1, -- NdisSwitchPortStateTeardown = 2, -- NdisSwitchPortStateDeleted = 3 -- } NDIS_SWITCH_PORT_STATE; -- -- typedef struct _NDIS_SWITCH_PORT_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PORT_ID PortId; -- NDIS_SWITCH_PORT_NAME PortName; -- NDIS_SWITCH_PORT_FRIENDLYNAME PortFriendlyName; -- NDIS_SWITCH_PORT_TYPE PortType; -- BOOLEAN IsValidationPort; -- NDIS_SWITCH_PORT_STATE PortState; -- } NDIS_SWITCH_PORT_PARAMETERS, *PNDIS_SWITCH_PORT_PARAMETERS; -- -- typedef struct _NDIS_SWITCH_PORT_ARRAY { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- USHORT FirstElementOffset; -- ULONG NumElements; -- ULONG ElementSize; -- } NDIS_SWITCH_PORT_ARRAY, *PNDIS_SWITCH_PORT_ARRAY; -- -- typedef enum _NDIS_SWITCH_NIC_TYPE { -- NdisSwitchNicTypeExternal = 0, -- NdisSwitchNicTypeSynthetic = 1, -- NdisSwitchNicTypeEmulated = 2, -- NdisSwitchNicTypeInternal = 3 -- } NDIS_SWITCH_NIC_TYPE; -- -- typedef enum _NDIS_SWITCH_NIC_STATE { -- NdisSwitchNicStateUnknown = 0, -- NdisSwitchNicStateCreated = 1, -- NdisSwitchNicStateConnected = 2, -- NdisSwitchNicStateDisconnected = 3, -- NdisSwitchNicStateDeleted = 4 -- } NDIS_SWITCH_NIC_STATE; -- -- typedef struct _NDIS_SWITCH_NIC_PARAMETERS { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_NIC_NAME NicName; -- NDIS_SWITCH_NIC_FRIENDLYNAME NicFriendlyName; -- NDIS_SWITCH_PORT_ID PortId; -- NDIS_SWITCH_NIC_INDEX NicIndex; -- NDIS_SWITCH_NIC_TYPE NicType; -- NDIS_SWITCH_NIC_STATE NicState; -- NDIS_VM_NAME VmName; -- NDIS_VM_FRIENDLYNAME VmFriendlyName; -- GUID NetCfgInstanceId; -- ULONG MTU; -- USHORT NumaNodeId; -- UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; -- UCHAR VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; -- UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]; -- BOOLEAN VFAssigned; -- } NDIS_SWITCH_NIC_PARAMETERS, *PNDIS_SWITCH_NIC_PARAMETERS; -- -- typedef struct _NDIS_SWITCH_NIC_ARRAY { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- USHORT FirstElementOffset; -- ULONG NumElements; -- ULONG ElementSize; -- } NDIS_SWITCH_NIC_ARRAY, *PNDIS_SWITCH_NIC_ARRAY; -- -- typedef struct _NDIS_OID_REQUEST NDIS_OID_REQUEST, *PNDIS_OID_REQUEST; -- -- typedef struct _NDIS_SWITCH_NIC_OID_REQUEST { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PORT_ID SourcePortId; -- NDIS_SWITCH_NIC_INDEX SourceNicIndex; -- NDIS_SWITCH_PORT_ID DestinationPortId; -- NDIS_SWITCH_NIC_INDEX DestinationNicIndex; -- PNDIS_OID_REQUEST OidRequest; -- } NDIS_SWITCH_NIC_OID_REQUEST, *PNDIS_SWITCH_NIC_OID_REQUEST; -- -- typedef struct _NDIS_SWITCH_NIC_SAVE_STATE { -- NDIS_OBJECT_HEADER Header; -- ULONG Flags; -- NDIS_SWITCH_PORT_ID PortId; -- NDIS_SWITCH_NIC_INDEX NicIndex; -- GUID ExtensionId; -- NDIS_SWITCH_EXTENSION_FRIENDLYNAME ExtensionFriendlyName; -- GUID FeatureClassId; -- USHORT SaveDataSize; -- USHORT SaveDataOffset; -- } NDIS_SWITCH_NIC_SAVE_STATE, *PNDIS_SWITCH_NIC_SAVE_STATE; --#endif -- -- typedef struct _NDIS_PORT_STATE { -- NDIS_OBJECT_HEADER Header; -- NDIS_MEDIA_CONNECT_STATE MediaConnectState; -- ULONG64 XmitLinkSpeed; -- ULONG64 RcvLinkSpeed; -- NET_IF_DIRECTION_TYPE Direction; -- NDIS_PORT_CONTROL_STATE SendControlState; -- NDIS_PORT_CONTROL_STATE RcvControlState; -- NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState; -- NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState; -- ULONG Flags; -- } NDIS_PORT_STATE, *PNDIS_PORT_STATE; -- -- typedef struct _NDIS_PORT_CHARACTERISTICS { -- NDIS_OBJECT_HEADER Header; -- NDIS_PORT_NUMBER PortNumber; -- ULONG Flags; -- NDIS_PORT_TYPE Type; -- NDIS_MEDIA_CONNECT_STATE MediaConnectState; -- ULONG64 XmitLinkSpeed; -- ULONG64 RcvLinkSpeed; -- NET_IF_DIRECTION_TYPE Direction; -- NDIS_PORT_CONTROL_STATE SendControlState; -- NDIS_PORT_CONTROL_STATE RcvControlState; -- NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState; -- NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState; -- } NDIS_PORT_CHARACTERISTICS, *PNDIS_PORT_CHARACTERISTICS; -- -- typedef struct _NDIS_PORT NDIS_PORT, *PNDIS_PORT; -- -- struct _NDIS_PORT { -- PNDIS_PORT Next; -- PVOID NdisReserved; -- PVOID MiniportReserved; -- PVOID ProtocolReserved; -- NDIS_PORT_CHARACTERISTICS PortCharacteristics; -- }; -- -- typedef struct _NDIS_PORT_ARRAY { -- NDIS_OBJECT_HEADER Header; -- ULONG NumberOfPorts; -- ULONG OffsetFirstPort; -- ULONG ElementSize; -- NDIS_PORT_CHARACTERISTICS Ports[1]; -- } NDIS_PORT_ARRAY, *PNDIS_PORT_ARRAY; --#endif --#endif -+ WW_MBX_CHANNEL_PAIR ChannelPair[1]; -+ } WW_MBX_TEMPDEFAULTLIST,*WW_PMBX_TEMPDEFAULTLIST; -+#endif /* WIRELESS_WAN */ -+ -+ typedef struct _BPC_FILETIME { -+ ULONG dwLowDateTime; -+ ULONG dwHighDateTime; -+ } BPC_FILETIME,*PBPC_FILETIME; -+ -+ typedef PVOID BPC_HANDLE; -+ -+#define BPC_MIN_DIMENSION 1 -+#define BPC_MAX_BUFFER_SIZE 64 -+#define BPC_MIN_BUFFER_SIZE 4 -+#define BPC_DEVICE_ANY ((BPC_HANDLE) 0xFFFFFFFF) -+ -+ typedef enum _NDIS_BPC_INDICATE_REASON { -+ bpcBufferFull = 0, -+ bpcBufferForced, -+ bpcBufferTimeOut, -+ bpcBufferDiscontinuity, -+ bpcBufferOverflow, -+ bpcBufferStatusEvent -+ } NDIS_BPC_INDICATE_REASON,*PNDIS_BPC_INDICATE_REASON; -+ -+#define BPC_STREAM_TYPE_GENERIC_MIN 0x01000000 -+#define BPC_STREAM_TYPE_RAW 0x01000000 -+#define BPC_STREAM_TYPE_MPT_128 0x01000001 -+#define BPC_STREAM_TYPE_MPT_128_CRC 0x01000002 -+#define BPC_STREAM_TYPE_IP 0x01000003 -+#define BPC_STREAM_TYPE_PROVIDER_MIN 0x02000000 -+#define BPC_STREAM_TYPE_PROVIDER_MAX 0x02ffffff -+#define BPC_STREAM_TYPE_ADAPTER_MIN 0x03000000 -+#define BPC_STREAM_TYPE_ADAPTER_MAX 0x03ffffff -+ -+ typedef struct _NDIS_BPC_ADAPTER_CAPS { -+ ULONG ulBPCMajorRev; -+ ULONG ulBPCMinorRev; -+ ULONG ulcHSDataDevices; -+ ULONG ulbpsHSDeviceMax; -+ ULONG ulcLSDataDevices; -+ ULONG ulbpsLSDeviceMax; -+ ULONG ulcTuningDevices; -+ ULONG ulcbLargestStatus; -+ ULONG ulVendorId; -+ ULONG ulAdapterId; -+ GUID guidProvider; -+ } NDIS_BPC_ADAPTER_CAPS,*PNDIS_BPC_ADAPTER_CAPS; -+ -+ typedef struct _NDIS_BPC_DEVICES { -+ ULONG ulcDevices; -+ BPC_HANDLE rgnhDevices[BPC_MIN_DIMENSION]; -+ } NDIS_BPC_DEVICES,*PNDIS_BPC_DEVICES; -+ -+#define CbDevices(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICES,rgnhDevices) + (cnt) *sizeof(BPC_HANDLE)) -+ -+ typedef struct NDIS_BPC_DEVICE_CAPS { -+ BPC_HANDLE nhDevice; -+ ULONG ulBPCCaps; -+ ULONG ulbpsMax; -+ ULONG ulcStreamTypes; -+ ULONG rgulStreamTypes[BPC_MIN_DIMENSION]; -+ } NDIS_BPC_DEVICE_CAPS,*PNDIS_BPC_DEVICE_CAPS; -+ -+#define CbDeviceCaps(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICE_CAPS,rgulStreamTypes) + (cnt)*sizeof(ULONG)) -+ -+#define BPCCapBusMasteredData 0x01 -+#define BPCCapIndependentTuner 0x02 -+#define BPCCapExternalDataBus 0x04 -+#define BPCCapLowSpeedData 0x10 -+#define BPCCapHighSpeedData 0x20 -+ -+ typedef struct NDIS_BPC_DEVICE_SETTINGS { -+ BPC_HANDLE nhDevice; -+ ULONG ulBPCCaps; -+ ULONG ulcConnections; -+ BOOLEAN fEnabled; -+ ULONG ulStreamType; -+ ULONG ulcbAddressConnection; -+ ULONG rgulAddressConnection[BPC_MIN_DIMENSION]; -+ } NDIS_BPC_DEVICE_SETTINGS,*PNDIS_BPC_DEVICE_SETTINGS; -+ -+#define CbDeviceSettings(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICE_SETTINGS,rgulAddressConnection) + (cnt)*sizeof(ULONG)) -+ -+#define BPC_CONNECT_STATE_UNCOMMITTED 0 -+#define BPC_CONNECT_STATE_QUEUED 1 -+#define BPC_CONNECT_STATE_ACTIVE 2 -+#define BPC_CONNECT_STATE_DISCONNECTING 3 -+ -+ typedef struct NDIS_BPC_CONNECTION_STATUS { -+ BPC_HANDLE nhConnection; -+ BPC_HANDLE nhDevice; -+ ULONG ulConnectPriority; -+ ULONG ulDisconnectPriority; -+ ULONG ulbpsAverage; -+ ULONG ulbpsBurst; -+ ULONG ulState; -+ BOOLEAN fEnabled; -+ } NDIS_BPC_CONNECTION_STATUS,*PNDIS_BPC_CONNECTION_STATUS; -+ -+ typedef struct NDIS_BPC_ADDRESS_COMPARE { -+ BOOLEAN fEqual; -+ ULONG ulcbFirstOffset; -+ ULONG ulcbFirstLength; -+ ULONG ulcbSecondOffset; -+ ULONG ulcbSecondLength; -+ } NDIS_BPC_ADDRESS_COMPARE,*PNDIS_BPC_ADDRESS_COMPARE; -+ -+#define BPC_GUIDE_GENERIC_MIN 0x01000000 -+#define BPC_GUIDE_GENERIC_MAX 0x01ffffff -+#define BPC_GUIDE_PROVIDER_MIN 0x02000000 -+#define BPC_GUIDE_PROVIDER_MAX 0x02ffffff -+#define BPC_GUIDE_ADAPTER_MIN 0x03000000 -+#define BPC_GUIDE_ADAPTER_MAX 0x03ffffff -+ -+ typedef struct NDIS_BPC_PROGRAM_GUIDE { -+ ULONG ulGuideType; -+ BPC_FILETIME ftLastUpdate; -+ ULONG ulChangeNumber; -+ ULONG ulcbGuideSize; -+ ULONG rgulGuideData[BPC_MIN_DIMENSION]; -+ } NDIS_BPC_PROGRAM_GUIDE,*PNDIS_BPC_PROGRAM_GUIDE; -+ -+ typedef enum _NDIS_BPC_ERROR { -+ bpcErrorUnknownFailure = 0xc0ff0000, -+ bpcErrorHardwareFailure, -+ bpcErrorProviderFailure, -+ bpcErrorNoDataDevice, -+ bpcErrorNoTuningDevice, -+ bpcErrorDeviceNotCapable, -+ bpcErrorConflictingDevice, -+ bpcErrorConflictingCapability, -+ bpcErrorNoBufferMemory, -+ bpcErrorNoResources, -+ bpcErrorAdapterClosing, -+ bpcErrorConnectionClosing, -+ bpcErrorTooComplex, -+ bpcErrorProviderNotSupported, -+ bpcErrorUnknownProviderStructure, -+ bpcErrorAddressNotSupported, -+ bpcErrorInvalidAddress, -+ bpcErrorUnknownAdapterStructure -+ } NDIS_BPC_ERROR,*PNDIS_BPC_ERROR; -+ -+ typedef struct NDIS_BPC_LAST_ERROR { -+ ULONG ulErrorContext; -+ ULONG ulBPCError; -+ ULONG ulAdapterError; -+ ULONG ulAdapterContext; -+ } NDIS_BPC_LAST_ERROR,*PNDIS_BPC_LAST_ERROR; -+ -+ typedef struct NDIS_BPC_POOL { -+ BPC_HANDLE nhConnection; -+ ULONG ulcbPoolSize; -+ ULONG ulcbMaxBufferSize; -+ ULONG ulcbBufferReserved; -+ } NDIS_BPC_POOL,*PNDIS_BPC_POOL; -+ -+ typedef struct NDIS_BPC_CONNECT { -+ BPC_HANDLE nhConnection; -+ BPC_HANDLE nhDevice; -+ ULONG ulConnectPriority; -+ ULONG ulDisconnectPriority; -+ BOOLEAN fImmediate; -+ ULONG ulcbAddress; -+ GUID guidProvider; -+ ULONG rgulAddress[BPC_MIN_DIMENSION]; -+ } NDIS_BPC_CONNECT,*PNDIS_BPC_CONNECT; -+ -+#define CbConnect(cnt) (FIELD_OFFSET(NDIS_BPC_CONNECT,rgulAddress) + (cnt)*sizeof(ULONG)) -+ -+ typedef struct NDIS_BPC_COMMIT { -+ ULONG ulcConnections; -+ BPC_HANDLE rgnhConnections[BPC_MIN_DIMENSION]; -+ } NDIS_BPC_COMMIT,*PNDIS_BPC_COMMIT; -+ -+ typedef struct NDIS_BPC_DISCONNECT { -+ BPC_HANDLE nhConnection; -+ } NDIS_BPC_DISCONNECT,*PNDIS_BPC_DISCONNECT; -+ -+ typedef struct NDIS_BPC_CONNECTION_ENABLE { -+ BPC_HANDLE nhConnection; -+ BOOLEAN fEnabled; -+ } NDIS_BPC_CONNECTION_ENABLE,*PNDIS_BPC_CONNECTION_ENABLE; -+ -+ typedef struct NDIS_BPC_POOL_RETURN { -+ BPC_HANDLE nhConnection; -+ } NDIS_BPC_POOL_RETURN,*PNDIS_BPC_POOL_RETURN; -+ -+ typedef struct NDIS_BPC_FORCE_RECEIVE { -+ BPC_HANDLE nhConnection; -+ ULONG ulReasonCode; -+ } NDIS_BPC_FORCE_RECEIVE,*PNDIS_BPC_FORCE_RECEIVE; -+ -+ typedef struct NDIS_BPC_MEDIA_SPECIFIC_INFORMATION { -+ BPC_HANDLE nhConnection; -+ ULONG ulBPCStreamType; -+ ULONG ulReasonCode; -+ PVOID pvMiniportReserved1; -+ ULONG ulMiniportReserved2; -+ } NDIS_BPC_MEDIA_SPECIFIC_INFORMATION,*PNDIS_BPC_MEDIA_SPECIFIC_INFORMATION; -+ -+#define BPC_CATEGORY_BPC 0x01000000 -+#define BPC_CATEGORY_PROVIDER 0x02000000 -+#define BPC_CATEGORY_ADAPTER 0x03000000 -+ -+#define BPC_STATUS_CONNECTED 0x00000001 -+#define BPC_STATUS_QUEUED 0x00000002 -+#define BPC_STATUS_ACTIVE 0x00000003 -+#define BPC_STATUS_DISCONNECTED 0x00000004 -+#define BPC_STATUS_OVERFLOW 0x00000005 -+#define BPC_STATUS_DATA_STOP 0x00000006 -+#define BPC_STATUS_DATA_START 0x00000007 -+#define BPC_STATUS_DATA_ERROR 0x00000008 -+ -+ typedef struct NDIS_BPC_STATUS { -+ ULONG ulStatusCategory; -+ ULONG ulStatusType; -+ ULONG ulcbStatus; -+ ULONG rgulStatus; -+ } NDIS_BPC_STATUS,*PNDIS_BPC_STATUS; -+ -+ typedef struct NDIS_BPC_STATUS_CONNECTION { -+ BPC_HANDLE nhConnection; -+ BPC_HANDLE nhDevice; -+ } NDIS_BPC_STATUS_CONNECTED,*PNDIS_BPC_STATUS_CONNECTED; - - #ifdef __cplusplus - } - #endif - --#endif --#endif -+#define NDIS_MINIPORT_BUS_MASTER 0x00000001 -+#define NDIS_MINIPORT_WDM_DRIVER 0x00000002 -+#define NDIS_MINIPORT_SG_LIST 0x00000004 -+#define NDIS_MINIPORT_SUPPORTS_MEDIA_QUERY 0x00000008 -+#define NDIS_MINIPORT_INDICATES_PACKETS 0x00000010 -+#define NDIS_MINIPORT_IGNORE_PACKET_QUEUE 0x00000020 -+#define NDIS_MINIPORT_IGNORE_REQUEST_QUEUE 0x00000040 -+#define NDIS_MINIPORT_IGNORE_TOKEN_RING_ERRORS 0x00000080 -+#define NDIS_MINIPORT_INTERMEDIATE_DRIVER 0x00000100 -+#define NDIS_MINIPORT_IS_NDIS_5 0x00000200 -+#define NDIS_MINIPORT_IS_CO 0x00000400 -+#define NDIS_MINIPORT_DESERIALIZE 0x00000800 -+#define NDIS_MINIPORT_REQUIRES_MEDIA_POLLING 0x00001000 -+#define NDIS_MINIPORT_SUPPORTS_MEDIA_SENSE 0x00002000 -+#define NDIS_MINIPORT_NETBOOT_CARD 0x00004000 -+#define NDIS_MINIPORT_PM_SUPPORTED 0x00008000 -+#define NDIS_MINIPORT_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00010000 -+#define NDIS_MINIPORT_USES_SAFE_BUFFER_APIS 0x00020000 -+#define NDIS_MINIPORT_HIDDEN 0x00040000 -+#define NDIS_MINIPORT_SWENUM 0x00080000 -+#define NDIS_MINIPORT_SURPRISE_REMOVE_OK 0x00100000 -+#define NDIS_MINIPORT_NO_HALT_ON_SUSPEND 0x00200000 -+#define NDIS_MINIPORT_HARDWARE_DEVICE 0x00400000 -+#define NDIS_MINIPORT_SUPPORTS_CANCEL_SEND_PACKETS 0x00800000 -+#define NDIS_MINIPORT_64BITS_DMA 0x01000000 -+#define NDIS_MINIPORT_USE_NEW_BITS 0x02000000 -+#define NDIS_MINIPORT_EXCLUSIVE_INTERRUPT 0x04000000 -+#define NDIS_MINIPORT_SENDS_PACKET_ARRAY 0x08000000 -+#define NDIS_MINIPORT_FILTER_IM 0x10000000 -+#define NDIS_MINIPORT_SHORT_PACKETS_ARE_PADDED 0x20000000 -+ -+#endif /* _NTDDNDIS_ */ -+ --- -2.2.1 - diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 387f875fb1..9ed9207f87 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -16,9 +16,9 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' '!libtool' '!emptydirs') source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" - "0001-Revert-Update-netioa-API.patch") + "0001-Fix-compilation-errors-since-Update-netioa-API.patch") md5sums=('SKIP' - 'f0089f43c513bc4f0f0b4f7f02003b91') + '05d92147b2ee422caf2f33519b9aff9c') pkgver() { cd "$srcdir/$_realname" @@ -27,7 +27,7 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} - git am "${srcdir}"/0001-Revert-Update-netioa-API.patch + git am "${srcdir}"/0001-Fix-compilation-errors-since-Update-netioa-API.patch } build() { From 77c88bf6d0ebd7d6a7f00ac69a7d7e61cf5e2c5c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 12 Jan 2015 20:39:40 +0000 Subject: [PATCH 0319/2060] nodejs: Define WIN32_WINNT to 0x501 for libuv --- .../0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch | 11 +++++++++++ mingw-w64-nodejs/PKGBUILD | 9 +++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/mingw-w64-nodejs/0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch b/mingw-w64-nodejs/0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch index 57b27c3583..fd52db20f1 100644 --- a/mingw-w64-nodejs/0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch +++ b/mingw-w64-nodejs/0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch @@ -9,3 +9,14 @@ LDFLAGS=-lm WIN_SRCS=$(wildcard $(SRCDIR)/src/win/*.c) +--- uv/uv.gyp.orig 2015-01-12 14:08:34.044072700 +0000 ++++ uv/uv.gyp 2015-01-12 14:08:38.683661900 +0000 +@@ -70,7 +70,7 @@ + 'conditions': [ + [ 'OS=="win"', { + 'defines': [ +- '_WIN32_WINNT=0x0600', ++ '_WIN32_WINNT=0x0501', + '_GNU_SOURCE', + ], + 'sources': [ diff --git a/mingw-w64-nodejs/PKGBUILD b/mingw-w64-nodejs/PKGBUILD index 0d7fdd3ef1..f0458fd8d0 100644 --- a/mingw-w64-nodejs/PKGBUILD +++ b/mingw-w64-nodejs/PKGBUILD @@ -45,7 +45,8 @@ source=("http://nodejs.org/dist/v${pkgver}/node-v${pkgver}.tar.gz" "0200-v8-3.26.33-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch" "0201-v8-3.26.33-Include-win32-headers-h-then-undef-MemoryBarrier.patch" "0203-v8-3.26.33-Use-soname_version.dll-not-so.soname_version-on-Windows.patch" - "0300-uv-Use-4-arg-swprintf-on-MinGW-w64.patch") + "0300-uv-Use-4-arg-swprintf-on-MinGW-w64.patch" + "0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch") md5sums=('f5fd3a03948ec5d12b49fdc7c49a5cac' '0f5ef2b9965f6e921f5f41a21055d170' @@ -65,11 +66,14 @@ md5sums=('f5fd3a03948ec5d12b49fdc7c49a5cac' 'dd82d12b16a416470bf73b56f0684163' '9828f204d7068faa656b83c738b67f5e' '0be71da4648801fba9aef222919cf611' - '1f389190a61075b31675090fa4a60f53') + '1f389190a61075b31675090fa4a60f53' + '389ff9955ef2b7b3414551dc7f9e34e5') prepare() { cd ${srcdir}/node-v${pkgver} + + git init # Using perfctrs makes Vista the minimum OS. MinGW-w64's perflib.h is missing lots # of stuff too, so the patches aren't enough. @@ -99,6 +103,7 @@ prepare() { pushd deps/uv patch -p1 -i "${srcdir}"/0300-uv-Use-4-arg-swprintf-on-MinGW-w64.patch + patch -p1 -i "${srcdir}"/0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch popd } From aa8eb44161aba588a608b1bbd7780199b3a103bf Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 12 Jan 2015 21:40:50 +0100 Subject: [PATCH 0320/2060] latexila: fixed paths. --- mingw-w64-latexila/002-fixed-path.patch | 24 ++++++++++++++++++++++++ mingw-w64-latexila/PKGBUILD | 9 +++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-latexila/002-fixed-path.patch diff --git a/mingw-w64-latexila/002-fixed-path.patch b/mingw-w64-latexila/002-fixed-path.patch new file mode 100644 index 0000000000..b1c63d2972 --- /dev/null +++ b/mingw-w64-latexila/002-fixed-path.patch @@ -0,0 +1,24 @@ +--- ./configure.ac.orig 2015-01-12 21:12:06.744867800 +0100 ++++ ./configure.ac 2015-01-12 21:14:35.622919500 +0100 +@@ -60,11 +60,13 @@ + echo "[$]_lcl_receval")`]) + + adl_RECURSIVE_EVAL(["${datadir}/latexila"], [DATA_DIR]) ++DATA_DIR=`cygpath -m $DATA_DIR` + AC_DEFINE_UNQUOTED([DATA_DIR], + ["${DATA_DIR}"], + [latexila data directory]) + + adl_RECURSIVE_EVAL(["${datadir}/icons/hicolor"], [ICONS_DIR]) ++ICONS_DIR=`cygpath -m $ICONS_DIR` + AC_DEFINE_UNQUOTED([ICONS_DIR], + ["${ICONS_DIR}"], + [icons directory]) +@@ -130,6 +132,7 @@ + [The domain to use with gettext]) + + adl_RECURSIVE_EVAL(["${localedir}"], [LOCALE_DIR]) ++LOCALE_DIR=`cygpath -m $LOCALE_DIR` + AC_DEFINE_UNQUOTED([LOCALE_DIR], + ["${LOCALE_DIR}"], + [locale directory]) diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD index 253aaaa92b..8da2c02c48 100644 --- a/mingw-w64-latexila/PKGBUILD +++ b/mingw-w64-latexila/PKGBUILD @@ -18,15 +18,20 @@ license=("GPL 2") url="http://www.gnome.org" install=latexila-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz - 001-win.patch) + 001-win.patch + 002-fixed-path.patch) sha256sums=('bdc46a52cba778646af05ade9ea7cc639e34f8aafdb640ad2217f21d067c7039' - '227e4eb6c8d4b03fc5ffdf97595c598198d3b97b99e1a6a280243c8357751a21') + '227e4eb6c8d4b03fc5ffdf97595c598198d3b97b99e1a6a280243c8357751a21' + '081e4cd4199ebfc7311ec28a04655e6ac1327c4a86b3fd107b82e328b8fc19ed') prepare() { cd "${srcdir}"/${_realname}-${pkgver} echo "" > vapi/windows.vapi patch -p1 -i ${srcdir}/001-win.patch + patch -p1 -i ${srcdir}/002-fixed-path.patch + + autoreconf -sf } build() { From e342e9c42b841c07d0eea82dcb138786fdc5dcf5 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 12 Jan 2015 21:44:44 +0100 Subject: [PATCH 0321/2060] latexila: replaced tabs with spaces in PKGBUILD. --- mingw-w64-latexila/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD index 8da2c02c48..42ee6ea1da 100644 --- a/mingw-w64-latexila/PKGBUILD +++ b/mingw-w64-latexila/PKGBUILD @@ -9,9 +9,9 @@ pkgdesc="LaTeX editor designed for the GNOME desktop (mingw-w64)" options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-gtksourceview3" - "${MINGW_PACKAGE_PREFIX}-gtkspell3" - "${MINGW_PACKAGE_PREFIX}-libgee" - "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas") + "${MINGW_PACKAGE_PREFIX}-gtkspell3" + "${MINGW_PACKAGE_PREFIX}-libgee" + "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas") makedepends=("${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") license=("GPL 2") @@ -19,10 +19,10 @@ url="http://www.gnome.org" install=latexila-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch - 002-fixed-path.patch) + 002-fixed-path.patch) sha256sums=('bdc46a52cba778646af05ade9ea7cc639e34f8aafdb640ad2217f21d067c7039' '227e4eb6c8d4b03fc5ffdf97595c598198d3b97b99e1a6a280243c8357751a21' - '081e4cd4199ebfc7311ec28a04655e6ac1327c4a86b3fd107b82e328b8fc19ed') + '081e4cd4199ebfc7311ec28a04655e6ac1327c4a86b3fd107b82e328b8fc19ed') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 8e7d96bbb3a3103da704185651ea32ecf8cf420e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 13 Jan 2015 01:06:46 +0300 Subject: [PATCH 0322/2060] libview: More fixes for pkg-config file --- .../002-missing-execprefix.patch | 19 +++++++++++++++---- mingw-w64-libview/PKGBUILD | 4 ++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/mingw-w64-libview/002-missing-execprefix.patch b/mingw-w64-libview/002-missing-execprefix.patch index b35747a37e..30c9ce89bd 100644 --- a/mingw-w64-libview/002-missing-execprefix.patch +++ b/mingw-w64-libview/002-missing-execprefix.patch @@ -1,8 +1,19 @@ --- ./libview.pc.in.orig 2015-01-12 09:55:44.051292400 +0100 +++ ./libview.pc.in 2015-01-12 09:56:29.968892700 +0100 -@@ -1,4 +1,5 @@ - prefix=${prefix} +@@ -1,10 +1,11 @@ +-prefix=${prefix} +-libdir=${exec_prefix}/lib +-includedir=${prefix}/include ++prefix=@prefix@ +exec_prefix=@exec_prefix@ - libdir=${exec_prefix}/lib - includedir=${prefix}/include ++libdir=@libdir@ ++includedir=@includedir@ + + Name: libview + Description: VMware's Incredibly Exciting Widgets for GTK+ + Version: @VERSION@ +-Libs: -L${libdir} -lview @PACKAGE_LIBS@ +-Cflags: -I${includedir} @PACKAGE_CFLAGS@ ++Libs: -L${libdir} -lview ++Cflags: -I${includedir} diff --git a/mingw-w64-libview/PKGBUILD b/mingw-w64-libview/PKGBUILD index aeafbe67b5..3ea5b13e6d 100644 --- a/mingw-w64-libview/PKGBUILD +++ b/mingw-w64-libview/PKGBUILD @@ -14,10 +14,10 @@ license=("GPL 2") url="http://view.sourceforge.net" source=(http://downloads.sourceforge.net/view/${_realname}-$pkgver.tar.bz2 001-win.patch - 002-missing-execprefix.patch) + 002-missing-execprefix.patch) sha256sums=('2b991bf150c5488b43f807e89bdbd64b2eb3bd433abbdfb68c3eec52cbaa59ab' '7e7506735bf4c86c52aee2066955f18d539496cee9a41ed126cdb98b19bff24e' - '38e68e8b36982283153f288ab7107a5934bc302fc065eac4d6daa46f00202bf5') + '20ff38d461360fe3062f70d27f2d9f9b0e3d3db6de3042e9893a0660ab6cab4a') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 48b7fda7493087053ec8af163a57331ec30d9231 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 12 Jan 2015 22:42:30 +0000 Subject: [PATCH 0323/2060] atom-shell: Refreshed a patch (still WIP) --- mingw-w64-atom-shell/0001-python-python2.patch | 4 ++-- mingw-w64-atom-shell/PKGBUILD | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/mingw-w64-atom-shell/0001-python-python2.patch b/mingw-w64-atom-shell/0001-python-python2.patch index cd8a9d265c..17a45382d3 100644 --- a/mingw-w64-atom-shell/0001-python-python2.patch +++ b/mingw-w64-atom-shell/0001-python-python2.patch @@ -224,7 +224,7 @@ index 770f5b0..c9abbb0 100755 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 - # Copyright (c) 2013 GitHub, Inc. All rights reserved. + # Copyright (c) 2013 GitHub, Inc. # Copyright (c) 2013 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be diff --git a/tools/win/generate_breakpad_symbols.py b/tools/win/generate_breakpad_symbols.py @@ -234,7 +234,7 @@ index d5d0a8f..a8076ea 100644 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 - # Copyright (c) 2013 GitHub, Inc. All rights reserved. + # Copyright (c) 2013 GitHub, Inc. # Copyright (c) 2013 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be -- diff --git a/mingw-w64-atom-shell/PKGBUILD b/mingw-w64-atom-shell/PKGBUILD index f220aa6266..a32fb6e83d 100644 --- a/mingw-w64-atom-shell/PKGBUILD +++ b/mingw-w64-atom-shell/PKGBUILD @@ -2,7 +2,7 @@ _realname=atom-shell pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r2246.50ea0f0 +pkgver=r2873.1a80bc7 pkgrel=1 pkgdesc='Cross-platform desktop application shell (mingw-w64)' source=("${_realname}-${CARCH}"::"git://github.com/atom/atom-shell.git#branch=master" @@ -31,10 +31,11 @@ build() { cd "$srcdir"/${_realname}-${CARCH} export GYP_GENERATORS=ninja # Downloads atl, directxsdk, vs2012_crt. -# ./script/update.py + ./script/bootstrap.py + mkdir -p out/Release ./script/build.py \ --ninja ${MINGW_PREFIX}/bin/ninja.exe \ - --install-dir="${pkgdir}${MINGW_PREFIX}" + --configuration Release } package() { @@ -42,5 +43,5 @@ package() { } md5sums=('SKIP' - 'b320fc8b8ec791f0a884e7169fa7e5d7' + 'da295e232eea4219fd026a7f400e8158' '41cc04603347974168369f16181293ab') From 5146f4ae73787575557859563a31ce785c6cc365 Mon Sep 17 00:00:00 2001 From: DrewRWx Date: Mon, 12 Jan 2015 20:56:32 -0800 Subject: [PATCH 0324/2060] jsoncpp: Added --- mingw-w64-jsoncpp/PKGBUILD | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 mingw-w64-jsoncpp/PKGBUILD diff --git a/mingw-w64-jsoncpp/PKGBUILD b/mingw-w64-jsoncpp/PKGBUILD new file mode 100644 index 0000000000..d8d7a27379 --- /dev/null +++ b/mingw-w64-jsoncpp/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Drew Waranis + +_realname=jsoncpp + +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.1.0 +pkgrel=1 +pkgdesc="A C++ library for interacting with JSON (mingw-w64)" +arch=('any') +url="https://github.com/open-source-parsers/jsoncpp" +license=('MIT') + +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-python2" + ) + +options=('staticlibs' '!strip' '!buildflags') + +source=("https://github.com/open-source-parsers/jsoncpp/archive/$pkgver.tar.gz") +md5sums=('9ac0d5b5ac2706a93197e205d56c09b7') + +build() { + mkdir "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" + + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH="${pkgdir}/${MINGW_PREFIX}" \ + -DCMAKE_BUILD_TYPE=Release \ + "${srcdir}/${_realname}-$pkgver" +} + +package() { + cd "${srcdir}/build-${CARCH}" + make install + + pushd "${pkgdir}${MINGW_PREFIX}" > /dev/null + export PREFIX_WIN=`pwd -W` + popd > /dev/null + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ + -i "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/jsoncpp.pc" +} From eecf6d93ac050686a6e7258437daf4327fcc11a1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 13 Jan 2015 20:18:06 +0300 Subject: [PATCH 0325/2060] jsoncpp: Install cmake files too. --- mingw-w64-jsoncpp/PKGBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-jsoncpp/PKGBUILD b/mingw-w64-jsoncpp/PKGBUILD index d8d7a27379..6a9edf8751 100644 --- a/mingw-w64-jsoncpp/PKGBUILD +++ b/mingw-w64-jsoncpp/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Drew Waranis _realname=jsoncpp - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.0 pkgrel=1 @@ -28,7 +27,10 @@ build() { -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH="${pkgdir}/${MINGW_PREFIX}" \ -DCMAKE_BUILD_TYPE=Release \ + -DJSONCPP_WITH_CMAKE_PACKAGE=ON \ "${srcdir}/${_realname}-$pkgver" + + make } package() { From 6c8a6eb2fa1fc6e1d8f1433c078be93028ebd63f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 00:25:55 +0300 Subject: [PATCH 0326/2060] libtre-git: New package. --- mingw-w64-libtre-git/001-autotools.patch | 59 +++++++++++++++++++++ mingw-w64-libtre-git/002-pointer-cast.patch | 13 +++++ mingw-w64-libtre-git/PKGBUILD | 53 ++++++++++++++++++ 3 files changed, 125 insertions(+) create mode 100644 mingw-w64-libtre-git/001-autotools.patch create mode 100644 mingw-w64-libtre-git/002-pointer-cast.patch create mode 100644 mingw-w64-libtre-git/PKGBUILD diff --git a/mingw-w64-libtre-git/001-autotools.patch b/mingw-w64-libtre-git/001-autotools.patch new file mode 100644 index 0000000000..9d1d4709c8 --- /dev/null +++ b/mingw-w64-libtre-git/001-autotools.patch @@ -0,0 +1,59 @@ +diff -Naur libtre-orig/configure.ac libtre/configure.ac +--- libtre-orig/configure.ac 2015-01-13 21:37:45.236000000 +0300 ++++ libtre/configure.ac 2015-01-13 22:03:05.152200000 +0300 +@@ -2,10 +2,11 @@ + AC_INIT(TRE, 0.8.0, [tre-general@lists.laurikari.net]) + AC_CONFIG_SRCDIR([lib/regcomp.c]) + AC_CONFIG_AUX_DIR(utils) ++AC_CONFIG_MACRO_DIRS([m4]) + AC_CANONICAL_TARGET +-AM_INIT_AUTOMAKE(1.9.0) +-AC_PREREQ(2.59) +-AM_GNU_GETTEXT_VERSION(0.17) ++AM_INIT_AUTOMAKE([subdir-objects]) ++AC_PREREQ(2.69) ++AM_GNU_GETTEXT_VERSION(0.18) + + dnl Checks for programs. + AC_PROG_CC +@@ -433,16 +433,6 @@ + [ $tre_includes ]) + fi + fi +- +-case $host in +- *-mingw*) +- dnl wcsrtombs and wcstombs don't seem to work at all on MinGW. +- if test "$tre_libutf8" != "yes"; then +- tre_wchar_reason="Not supported on MinGW" +- tre_wchar="no ($tre_wchar_reason)" +- fi +- ;; +-esac + + # Fail if wide character support was specifically requested but is + # not supported on this system. +diff -Naur libtre-orig/src/Makefile.am libtre/src/Makefile.am +--- libtre-orig/src/Makefile.am 2015-01-13 21:37:45.267200000 +0300 ++++ libtre/src/Makefile.am 2015-01-13 21:54:03.773400000 +0300 +@@ -1,7 +1,7 @@ + ## Process this file with automake to produce Makefile.in + + localedir = $(datadir)/locale +-INCLUDES = -I$(top_srcdir)/lib ++AM_CPPFLAGS = -I$(top_srcdir)/lib + + if TRE_AGREP + bin_PROGRAMS = agrep +diff -Naur libtre-orig/tests/Makefile.am libtre/tests/Makefile.am +--- libtre-orig/tests/Makefile.am 2015-01-13 21:37:45.267200000 +0300 ++++ libtre/tests/Makefile.am 2015-01-13 21:52:35.508600000 +0300 +@@ -59,7 +59,7 @@ + randtest_LDADD = libxtre.la $(LDADD) + endif !TRE_DEBUG + +-INCLUDES = -I$(top_srcdir)/lib ++AM_CPPFLAGS = -I$(top_srcdir)/lib + + EXTRA_DIST = build-tests.sh + diff --git a/mingw-w64-libtre-git/002-pointer-cast.patch b/mingw-w64-libtre-git/002-pointer-cast.patch new file mode 100644 index 0000000000..4df924ce8b --- /dev/null +++ b/mingw-w64-libtre-git/002-pointer-cast.patch @@ -0,0 +1,13 @@ +--- libtre/lib/tre-internal.h.orig 2015-01-13 23:45:59.325000000 +0300 ++++ libtre/lib/tre-internal.h 2015-01-14 00:12:06.954200000 +0300 +@@ -127,8 +127,8 @@ + /* Returns number of bytes to add to (char *)ptr to make it + properly aligned for the type. */ + #define ALIGN(ptr, type) \ +- ((((long)ptr) % sizeof(type)) \ +- ? (sizeof(type) - (((long)ptr) % sizeof(type))) \ ++ ((((intptr_t)ptr) % sizeof(type)) \ ++ ? (sizeof(type) - (((intptr_t)ptr) % sizeof(type))) \ + : 0) + + #undef MAX diff --git a/mingw-w64-libtre-git/PKGBUILD b/mingw-w64-libtre-git/PKGBUILD new file mode 100644 index 0000000000..9b336964fa --- /dev/null +++ b/mingw-w64-libtre-git/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer: Alexey Pavlov + +_realname=libtre +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=r122.c2f5d13 +pkgrel=1 +pkgdesc="The approximate regex matching library and agrep command line tool (mingw-w64)" +url="https://github.com/laurikari/tre" +arch=('any') +license=('BSD') +options=(strip staticlibs) +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext") +source=("${_realname}"::"git+https://github.com/laurikari/tre.git" + 001-autotools.patch + 002-pointer-cast.patch) +md5sums=('SKIP' + '2446ff21ecf7aed969d6cbfdf85f3b74' + 'eb7c4c23c61b59bdb9a2257e13244110') + +pkgver() { + cd "$srcdir/$_realname" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${_realname}" + patch -p1 -i ${srcdir}/001-autotools.patch + patch -p1 -i ${srcdir}/002-pointer-cast.patch + mv ChangeLog{.old,} + autoreconf -fiv +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make +} + +package() { + cd build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install +} From 82b1180dba50d0c054a9b28c090afa739407ab5e Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Tue, 13 Jan 2015 19:38:53 -0200 Subject: [PATCH 0327/2060] perl and dmake: Fix issues with mkstemp. After addition of mkstemp in MSYS2, dmake stopped working due to using it (shell function was broken), and perl stopped building due to providing a custom conflicting implementation (and due to using broken dmake). Now dmake does not use MSYS2 mkstemp anymore, and perl does. --- .../004-disable-mkstemp-detection.patch | 12 ++++ mingw-w64-dmake/PKGBUILD | 9 ++- .../005-disable-custom-mkstemp.patch | 58 +++++++++++++++++++ mingw-w64-perl/PKGBUILD | 15 +++-- 4 files changed, 85 insertions(+), 9 deletions(-) create mode 100644 mingw-w64-dmake/004-disable-mkstemp-detection.patch create mode 100644 mingw-w64-perl/005-disable-custom-mkstemp.patch diff --git a/mingw-w64-dmake/004-disable-mkstemp-detection.patch b/mingw-w64-dmake/004-disable-mkstemp-detection.patch new file mode 100644 index 0000000000..347b4baf65 --- /dev/null +++ b/mingw-w64-dmake/004-disable-mkstemp-detection.patch @@ -0,0 +1,12 @@ +diff -aur 003/configure 004/configure +--- 003/configure 2015-01-13 17:50:23.916015600 -0200 ++++ 004/configure 2015-01-13 17:55:46.017578100 -0200 +@@ -5397,7 +5397,7 @@ + done + + +-for ac_func in getcwd getwd strerror setvbuf tzset settz mkstemp tempnam gettimeofday setenv ++for ac_func in getcwd getwd strerror setvbuf tzset settz tempnam gettimeofday setenv + do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` + ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" diff --git a/mingw-w64-dmake/PKGBUILD b/mingw-w64-dmake/PKGBUILD index 4c2d7f9cf8..2bc3df7c9f 100644 --- a/mingw-w64-dmake/PKGBUILD +++ b/mingw-w64-dmake/PKGBUILD @@ -4,7 +4,7 @@ _realname=dmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.12.2 -pkgrel=4 +pkgrel=5 pkgdesc="Dmake is a make utility similar to GNU make or the Workshop dmake (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -15,17 +15,20 @@ url="https://code.google.com/a/apache-extras.org/p/dmake/" source=("http://dmake.apache-extras.org.codespot.com/files/dmake-${pkgver}.tar.bz2" '001-detect-mingw.patch' '002-disable-shell-environment-variable.patch' - '003-fix-config-location.patch') + '003-fix-config-location.patch' + '004-disable-mkstemp-detection.patch') md5sums=('9194f727c31d1db18bf5dd02e7b2dd09' 'a39a65958762b2877c994428978d0c3d' '08c08cf2432bd7ffdce6759d4f6974d4' - 'a1f153d6c8199c11344027a18a4baa26') + 'a1f153d6c8199c11344027a18a4baa26' + '36a84a7e83bc5b56de691e1da50c6f5f') prepare() { cd ${srcdir}/dmake-${pkgver} patch -p1 -i ${srcdir}/001-detect-mingw.patch patch -p1 -i ${srcdir}/002-disable-shell-environment-variable.patch patch -p1 -i ${srcdir}/003-fix-config-location.patch + patch -p1 -i ${srcdir}/004-disable-mkstemp-detection.patch } build() { diff --git a/mingw-w64-perl/005-disable-custom-mkstemp.patch b/mingw-w64-perl/005-disable-custom-mkstemp.patch new file mode 100644 index 0000000000..99bdc329bc --- /dev/null +++ b/mingw-w64-perl/005-disable-custom-mkstemp.patch @@ -0,0 +1,58 @@ +Author: Alexey Pavlov +diff -aur 004/win32/config.gc 005/win32/config.gc +--- 004/win32/config.gc ++++ 005/win32/config.gc +@@ -310,7 +310,7 @@ + d_mkdir='define' + d_mkdtemp='undef' + d_mkfifo='undef' +-d_mkstemp='undef' ++d_mkstemp='define' + d_mkstemps='undef' + d_mktime64='undef' + d_mktime='define' +diff -aur 004/win32/config_H.gc 005/win32/config_H.gc +--- 004/win32/config_H.gc ++++ 005/win32/config_H.gc +@@ -1973,7 +1973,7 @@ + * available to exclusively create and open a uniquely named + * temporary file. + */ +-/*#define HAS_MKSTEMP / **/ ++#define HAS_MKSTEMP /**/ + + /* HAS_MMAP: + * This symbol, if defined, indicates that the mmap system call is +diff -aur 004/win32/win32.c 005/win32/win32.c +--- 004/win32/win32.c ++++ 005/win32/win32.c +@@ -1142,6 +1142,7 @@ + * XXX this needs strengthening (for PerlIO) + * -- BKS, 11-11-200 + */ ++#if !defined(HAS_MKSTEMP) + int mkstemp(const char *path) + { + dTHX; +@@ -1162,6 +1163,7 @@ + goto retry; + return fd; + } ++#endif + + static long + find_pid(pTHX_ int pid) +diff -aur 004/win32/win32.h 005/win32/win32.h +--- 004/win32/win32.h ++++ 005/win32/win32.h +@@ -331,8 +331,10 @@ + #endif + extern char * getlogin(void); + extern int chown(const char *p, uid_t o, gid_t g); ++#if !defined(HAS_MKSTEMP) + extern int mkstemp(const char *path); + #endif ++#endif + + #undef Stat + #define Stat win32_stat diff --git a/mingw-w64-perl/PKGBUILD b/mingw-w64-perl/PKGBUILD index 4351719f55..212b473f2b 100644 --- a/mingw-w64-perl/PKGBUILD +++ b/mingw-w64-perl/PKGBUILD @@ -21,13 +21,15 @@ source=("http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2" 001-fhs-directory-structure.patch 002-relocate-html-documentation.patch 003-replace-batch-scripts-with-bare-perl.patch - 004-fix-cpan-external-programs.patch) + 004-fix-cpan-external-programs.patch + 005-disable-custom-mkstemp.patch) -md5sums=(ede5166f949d9a07163bc5b086be9759 - a5d3b17a98cb29226cf1b2ec2b760302 - e5fcd10ee424f2f19188d0e63cf2305c - 9db723a4fadcad7169c0617ff408c753 - cd49b29a251adcc21fe87c66110cdc3a) +md5sums=('ede5166f949d9a07163bc5b086be9759' + 'a5d3b17a98cb29226cf1b2ec2b760302' + 'e5fcd10ee424f2f19188d0e63cf2305c' + '9db723a4fadcad7169c0617ff408c753' + 'cd49b29a251adcc21fe87c66110cdc3a' + '5c0ebe22ef7928a16c1597c2a62781ec') prepare() { cd "${srcdir}/${_name}-${pkgver}" @@ -36,6 +38,7 @@ prepare() { patch -p1 < "${startdir}"/002-relocate-html-documentation.patch patch -p1 < "${startdir}"/003-replace-batch-scripts-with-bare-perl.patch patch -p1 < "${startdir}"/004-fix-cpan-external-programs.patch + patch -p1 < "${startdir}"/005-disable-custom-mkstemp.patch } _build() { From c83e7475aa55dc3a7b9e348a66da23530fe83cf7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 13 Jan 2015 22:34:25 +0000 Subject: [PATCH 0328/2060] node.js: Update to v0.10.35 --- .../0004-Win32-Determine-and-use-EXEEXT.patch | 24 ++++++------ ...-dir-option-to-configure-node_gyp-py.patch | 38 +++++++++++-------- mingw-w64-nodejs/PKGBUILD | 8 ++-- 3 files changed, 38 insertions(+), 32 deletions(-) diff --git a/mingw-w64-nodejs/0004-Win32-Determine-and-use-EXEEXT.patch b/mingw-w64-nodejs/0004-Win32-Determine-and-use-EXEEXT.patch index 821832a297..631b314b22 100644 --- a/mingw-w64-nodejs/0004-Win32-Determine-and-use-EXEEXT.patch +++ b/mingw-w64-nodejs/0004-Win32-Determine-and-use-EXEEXT.patch @@ -8,9 +8,9 @@ Subject: [PATCH 4/5] Win32: Determine and use EXEEXT tools/install.py | 4 +++- 2 files changed, 36 insertions(+), 31 deletions(-) -diff -urN node-v0.10.32.orig/Makefile node-v0.10.32/Makefile ---- node-v0.10.32.orig/Makefile 2014-09-22 15:08:42.250329000 +0100 -+++ node-v0.10.32/Makefile 2014-09-22 15:08:54.220849100 +0100 +diff -urN node-v0.10.35.orig/Makefile node-v0.10.35/Makefile +--- node-v0.10.35/Makefile.orig 2014-12-22 21:22:32.000000000 +0000 ++++ node-v0.10.35/Makefile 2015-01-13 22:11:43.244268800 +0000 @@ -6,7 +6,10 @@ DESTDIR ?= SIGN ?= @@ -118,9 +118,9 @@ diff -urN node-v0.10.32.orig/Makefile node-v0.10.32/Makefile -doc: $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/ out/doc/changelog.html node +doc: $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/ out/doc/changelog.html node$(EXEEXT) - $(apidoc_dirs): - mkdir -p $@ -@@ -152,24 +155,24 @@ + doc-branch: NODE_DOC_VERSION = v$(shell $(PYTHON) tools/getnodeversion.py | cut -f1,2 -d.) + doc-branch: doc +@@ -155,24 +158,24 @@ out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets/ cp $< $@ @@ -132,14 +132,14 @@ diff -urN node-v0.10.32.orig/Makefile node-v0.10.32/Makefile cp -r $< $@ -out/doc/api/%.json: doc/api/%.markdown node -- out/Release/node tools/doc/generate.js --format=json $< > $@ +- NODE_DOC_VERSION=$(NODE_DOC_VERSION) out/Release/node tools/doc/generate.js --format=json $< > $@ +out/doc/api/%.json: doc/api/%.markdown node$(EXEEXT) -+ out/Release/node$(EXEEXT) tools/doc/generate.js --format=json $< > $@ ++ NODE_DOC_VERSION=$(NODE_DOC_VERSION) out/Release/node$(EXEEXT) tools/doc/generate.js --format=json $< > $@ -out/doc/api/%.html: doc/api/%.markdown node -- out/Release/node tools/doc/generate.js --format=html --template=doc/template.html $< > $@ +- NODE_DOC_VERSION=$(NODE_DOC_VERSION) out/Release/node tools/doc/generate.js --format=html --template=doc/template.html $< > $@ +out/doc/api/%.html: doc/api/%.markdown node$(EXEEXT) -+ out/Release/node$(EXEEXT) tools/doc/generate.js --format=html --template=doc/template.html $< > $@ ++ NODE_DOC_VERSION=$(NODE_DOC_VERSION) out/Release/node$(EXEEXT) tools/doc/generate.js --format=html --template=doc/template.html $< > $@ email.md: ChangeLog tools/email-footer.md bash tools/changelog-head.sh | sed 's|^\* #|* \\#|g' > $@ @@ -151,7 +151,7 @@ diff -urN node-v0.10.32.orig/Makefile node-v0.10.32/Makefile website-upload: doc rsync -r out/doc/ node@nodejs.org:~/web/nodejs.org/ -@@ -270,7 +273,7 @@ +@@ -279,7 +282,7 @@ --out $(PKG) SIGN="$(INT_SIGN)" PKG="$(PKG)" bash tools/osx-productsign.sh @@ -160,7 +160,7 @@ diff -urN node-v0.10.32.orig/Makefile node-v0.10.32/Makefile git archive --format=tar --prefix=$(TARNAME)/ HEAD | tar xf - mkdir -p $(TARNAME)/doc/api cp doc/node.1 $(TARNAME)/doc/node.1 -@@ -357,9 +360,9 @@ +@@ -366,9 +369,9 @@ benchmark/http_simple_bench.sh bench-idle: diff --git a/mingw-w64-nodejs/0008-Add-output-dir-option-to-configure-node_gyp-py.patch b/mingw-w64-nodejs/0008-Add-output-dir-option-to-configure-node_gyp-py.patch index 079c8582ec..1c4cac4d37 100644 --- a/mingw-w64-nodejs/0008-Add-output-dir-option-to-configure-node_gyp-py.patch +++ b/mingw-w64-nodejs/0008-Add-output-dir-option-to-configure-node_gyp-py.patch @@ -122,8 +122,8 @@ diff -urN node-v0.10.29.orig/Makefile node-v0.10.29/Makefile -rm -f config.gypi -rm -f config.mk -rm -rf node$(EXEEXT) node_g$(EXEEXT) blog.html email.md -@@ -129,36 +130,36 @@ - npm_package_config_publishtest=true ./node$(EXEEXT) deps/npm/test/run.js +@@ -136,18 +137,18 @@ + $(MAKE) --directory=tools clean apidoc_sources = $(wildcard doc/api/*.markdown) -apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html)) \ @@ -146,6 +146,9 @@ diff -urN node-v0.10.29.orig/Makefile node-v0.10.29/Makefile -doc: $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/ out/doc/changelog.html node$(EXEEXT) +doc: $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/ $(OUTDIR)/doc/changelog.html node$(EXEEXT) + doc-branch: NODE_DOC_VERSION = v$(shell $(PYTHON) tools/getnodeversion.py | cut -f1,2 -d.) + doc-branch: doc +@@ -155,20 +156,20 @@ $(apidoc_dirs): mkdir -p $@ @@ -162,18 +165,18 @@ diff -urN node-v0.10.29.orig/Makefile node-v0.10.29/Makefile cp -r $< $@ -out/doc/api/%.json: doc/api/%.markdown node$(EXEEXT) -- out/Release/node$(EXEEXT) tools/doc/generate.js --format=json $< > $@ +- NODE_DOC_VERSION=$(NODE_DOC_VERSION) out/Release/node$(EXEEXT) tools/doc/generate.js --format=json $< > $@ +$(OUTDIR)/doc/api/%.json: doc/api/%.markdown node$(EXEEXT) -+ $(OUTDIR)/Release/node$(EXEEXT) tools/doc/generate.js --format=json $< > $@ ++ NODE_DOC_VERSION=$(NODE_DOC_VERSION) $(OUTDIR)/Release/node$(EXEEXT) tools/doc/generate.js --format=json $< > $@ -out/doc/api/%.html: doc/api/%.markdown node$(EXEEXT) -- out/Release/node$(EXEEXT) tools/doc/generate.js --format=html --template=doc/template.html $< > $@ +- NODE_DOC_VERSION=$(NODE_DOC_VERSION) out/Release/node$(EXEEXT) tools/doc/generate.js --format=html --template=doc/template.html $< > $@ +$(OUTDIR)/doc/api/%.html: doc/api/%.markdown node$(EXEEXT) -+ $(OUTDIR)/Release/node$(EXEEXT) tools/doc/generate.js --format=html --template=doc/template.html $< > $@ ++ NODE_DOC_VERSION=$(NODE_DOC_VERSION) $(OUTDIR)/Release/node$(EXEEXT) tools/doc/generate.js --format=html --template=doc/template.html $< > $@ email.md: ChangeLog tools/email-footer.md bash tools/changelog-head.sh | sed 's|^\* #|* \\#|g' > $@ -@@ -168,7 +169,7 @@ +@@ -178,7 +179,7 @@ cat $< | ./node$(EXEEXT) tools/doc/node_modules/.bin/marked > $@ website-upload: doc @@ -182,9 +185,12 @@ diff -urN node-v0.10.29.orig/Makefile node-v0.10.29/Makefile ssh node@nodejs.org '\ rm -f ~/web/nodejs.org/dist/latest &&\ ln -s $(VERSION) ~/web/nodejs.org/dist/latest &&\ -@@ -177,11 +178,11 @@ - rm -f ~/web/nodejs.org/dist/node-latest.tar.gz &&\ - ln -s $(VERSION)/node-$(VERSION).tar.gz ~/web/nodejs.org/dist/node-latest.tar.gz' +@@ -190,13 +191,13 @@ + doc-branch-upload: NODE_DOC_VERSION = v$(shell $(PYTHON) tools/getnodeversion.py | cut -f1,2 -d.) + doc-branch-upload: doc-branch + echo $(NODE_DOC_VERSION) +- rsync -r out/doc/api/ node@nodejs.org:~/web/nodejs.org/$(NODE_DOC_VERSION) ++ rsync -r $(OUTDIR)/doc/api/ node@nodejs.org:~/web/nodejs.org/$(NODE_DOC_VERSION) -docopen: out/doc/api/all.html - -google-chrome out/doc/api/all.html @@ -197,7 +203,7 @@ diff -urN node-v0.10.29.orig/Makefile node-v0.10.29/Makefile RAWVER=$(shell $(PYTHON) tools/getnodeversion.py) VERSION=v$(RAWVER) -@@ -209,7 +210,7 @@ +@@ -225,7 +226,7 @@ TARBALL=$(TARNAME).tar.gz BINARYNAME=$(TARNAME)-$(PLATFORM)-$(ARCH) BINARYTAR=$(BINARYNAME).tar.gz @@ -206,7 +212,7 @@ diff -urN node-v0.10.29.orig/Makefile node-v0.10.29/Makefile packagemaker=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker PKGSRC=nodejs-$(DESTCPU)-$(RAWVER).tgz -@@ -219,7 +220,7 @@ +@@ -235,7 +236,7 @@ dist: doc $(TARBALL) $(PKG) @@ -215,7 +221,7 @@ diff -urN node-v0.10.29.orig/Makefile node-v0.10.29/Makefile release-only: @if [ "$(shell git status --porcelain | egrep -v '^\?\? ')" = "" ]; then \ -@@ -247,10 +248,10 @@ +@@ -263,10 +264,10 @@ $(PKG): release-only rm -rf $(PKGDIR) @@ -228,7 +234,7 @@ diff -urN node-v0.10.29.orig/Makefile node-v0.10.29/Makefile $(PYTHON) ./configure --without-snapshot --dest-cpu=x64 --tag=$(TAG) $(MAKE) install V=$(V) DESTDIR=$(PKGDIR) SIGN="$(APP_SIGN)" PKGDIR="$(PKGDIR)" bash tools/osx-codesign.sh -@@ -270,7 +271,7 @@ +@@ -286,7 +287,7 @@ git archive --format=tar --prefix=$(TARNAME)/ HEAD | tar xf - mkdir -p $(TARNAME)/doc/api cp doc/node.1 $(TARNAME)/doc/node.1 @@ -237,7 +243,7 @@ diff -urN node-v0.10.29.orig/Makefile node-v0.10.29/Makefile rm -rf $(TARNAME)/deps/v8/test # too big rm -rf $(TARNAME)/doc/images # too big find $(TARNAME)/ -type l | xargs rm # annoying on windows -@@ -282,7 +283,7 @@ +@@ -298,7 +299,7 @@ $(BINARYTAR): release-only rm -rf $(BINARYNAME) @@ -246,7 +252,7 @@ diff -urN node-v0.10.29.orig/Makefile node-v0.10.29/Makefile $(PYTHON) ./configure --prefix=/ --without-snapshot --dest-cpu=$(DESTCPU) --tag=$(TAG) $(CONFIG_FLAGS) $(MAKE) install DESTDIR=$(BINARYNAME) V=$(V) PORTABLE=1 cp README.md $(BINARYNAME) -@@ -295,7 +296,7 @@ +@@ -311,7 +312,7 @@ binary: $(BINARYTAR) $(PKGSRC): release-only diff --git a/mingw-w64-nodejs/PKGBUILD b/mingw-w64-nodejs/PKGBUILD index f0458fd8d0..01e4efe712 100644 --- a/mingw-w64-nodejs/PKGBUILD +++ b/mingw-w64-nodejs/PKGBUILD @@ -5,7 +5,7 @@ _realname=nodejs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.10.32 +pkgver=0.10.35 pkgrel=4 pkgdesc="Evented I/O for V8 javascript (mingw-w64)" arch=('any') @@ -48,15 +48,15 @@ source=("http://nodejs.org/dist/v${pkgver}/node-v${pkgver}.tar.gz" "0300-uv-Use-4-arg-swprintf-on-MinGW-w64.patch" "0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch") -md5sums=('f5fd3a03948ec5d12b49fdc7c49a5cac' +md5sums=('2c00d8cf243753996eecdc4f6e2a2d11' '0f5ef2b9965f6e921f5f41a21055d170' '10092533b62eb3e8cd48dcf816f222de' 'f7013391c658d50d4568bfce7a6f4cd8' - '169890d1920dc345334b039ebb391a4a' + '641144b54ca953884c0d45c1706dba69' '73fecf70ba4f34f6924f2fa89b8c6412' '70947a3999da983c0ede82fb4cee3550' '331e39ee6dd81b718026b268fee9a840' - '5f0f5b7140a49f99c2d1ecabc61733c4' + '7293de8eccb4e0897de77fec4afe4518' 'd06f47617aa37a625f68ef72c1cdcad8' 'cd5870bc8911fe4113d83407257ced4c' 'afb4b2fb4d658f8689de33ee9c1157bf' From c26726fca16852408473eee33205ee83541ed844 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Tue, 13 Jan 2015 22:28:59 -0200 Subject: [PATCH 0329/2060] breakpad-svn: New package. --- mingw-w64-breakpad-svn/PKGBUILD | 68 +++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 mingw-w64-breakpad-svn/PKGBUILD diff --git a/mingw-w64-breakpad-svn/PKGBUILD b/mingw-w64-breakpad-svn/PKGBUILD new file mode 100644 index 0000000000..8aec525772 --- /dev/null +++ b/mingw-w64-breakpad-svn/PKGBUILD @@ -0,0 +1,68 @@ +# Maintainer: Renato Silva + +_name=breakpad +url='https://code.google.com/p/google-breakpad' +pkgdesc='An open-source multi-platform crash reporting system (mingw-w64)' +license=(BSD) +arch=(any) +pkgver=r1402 +pkgrel=1 + +makedepends=(${MINGW_PACKAGE_PREFIX}-curl subversion git gyp) +pkgname=(${MINGW_PACKAGE_PREFIX}-${_name}-svn) +provides=(${MINGW_PACKAGE_PREFIX}-${_name}) +conflicts=(${MINGW_PACKAGE_PREFIX}-${_name}) +md5sums=(SKIP SKIP) +source=(${_name}.svn::"svn+http://google-breakpad.googlecode.com/svn/trunk#revision=1402" + ${_name}.patches.git::"git+https://github.com/jon-turney/mingw64-i686-google-breakpad-cygport.git") + +pkgver() { + cd "${srcdir}/${_name}.svn" + printf "r%s" "$(svnversion | tr -d 'A-z')" +} + +prepare() { + msg2 "Creating patched-source directory" + [[ -d "${srcdir}/${_name}.patched" ]] && rm -rf "${srcdir}/${_name}.patched" + mkdir -p "${srcdir}/${_name}.patched" + cp -r "${srcdir}/${_name}.svn"/* "${srcdir}/${_name}.patched" + + # Apply patches + cd "${srcdir}/${_name}.patched" + for patch in "${srcdir}/${_name}.patches.git"/0*.patch; do + patch -p1 < "${patch}" + done + patch -p2 < "${srcdir}/${_name}.patches.git/gyp-regenerate-no-circular-check.patch" + + msg2 "Running autoreconf" + autoreconf -sif +} + +build() { + msg2 "Synchronizing build directory" + rsync --recursive --times --links "${srcdir}/${_name}.patched"/* "${srcdir}/${_name}.build.${CARCH}" + + cd "${srcdir}/${_name}.build.${CARCH}" + ./configure --prefix=${MINGW_PREFIX} + make CXXFLAGS="-Wno-error=reorder -DUNICODE -D_UNICODE" +} + +package() { + cd "${srcdir}/${_name}.build.${CARCH}" + make DESTDIR="${pkgdir}" install + + # Install a single client library + cd "${pkgdir}${MINGW_PREFIX}/lib" + ar -r libbreakpad_client.a "${srcdir}/${_name}.build.${CARCH}/src/out/Debug/obj.target/client/windows/crash_generation/libcrash_generation_client.a" + ar -r libbreakpad_client.a "${srcdir}/${_name}.build.${CARCH}/src/out/Debug/obj.target/client/windows/crash_generation/libcrash_generation_server.a" + ar -r libbreakpad_client.a "${srcdir}/${_name}.build.${CARCH}/src/out/Debug/obj.target/client/windows/handler/libexception_handler.a" + ar -r libbreakpad_client.a "${srcdir}/${_name}.build.${CARCH}/src/out/Debug/obj.target/client/windows/libcommon.a" + ar -r libbreakpad_client.a "${srcdir}/${_name}.build.${CARCH}/src/out/Debug/obj.target/client/windows/sender/libcrash_report_sender.a" + cp -v "${srcdir}/${_name}.build.${CARCH}/breakpad-client.pc" pkgconfig + + # License + cd "${pkgdir}${MINGW_PREFIX}/share" + mkdir -p licenses/${_name} + mv doc/${_name}-0.1 doc/${_name} + mv -v doc/${_name}/LICENSE licenses/${_name}/LICENSE +} From 9a7f99f0f9f88fb1d9d8eb742aa154756875d393 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 10:29:42 +0300 Subject: [PATCH 0330/2060] breakpad-svn: Import patches to repo. Fix building last revision. --- ...INARY-redefinition-warning-on-Cygwin.patch | 42 + ...mp_upload-sym_upload-for-all-targets.patch | 293 ++ ...04-Remove-local-copy-of-curl-headers.patch | 3718 +++++++++++++++++ ...DWARF-in-PECOFF-as-used-by-Cygwin-an.patch | 2195 ++++++++++ ...uilding-minidump-processor-for-MinGW.patch | 246 ++ ...ild-PECOFF-DWARF-dump_syms-for-MinGW.patch | 134 + ...ent-library-and-upload-tools-for-Min.patch | 123 + ...to-allow-gyp-to-generate-Makefiles-o.patch | 43 + ...ted-Makefile-to-build-crash_generati.patch | 165 + ...debug_file-to-the-code_file-basename.patch | 51 + ...g-windows-client-unit-tests-with-gcc.patch | 95 + .../0013-Add-symsrv_convert.patch | 179 + ...nt-library-using-gyp-generated-Makef.patch | 56 + ...bug-id-of-all-zeros-when-no-CV-recor.patch | 69 + ...016-Increase-RA-scanning-to-60-words.patch | 27 + ...USE_MINGW_ANSI_STDIO-for-MinGW-build.patch | 28 + ...Provide-a-working-strtok_r-for-MinGW.patch | 213 + ....md-with-notes-on-what-is-left-to-do.patch | 99 + ...or-multiple-upload-files-in-Breakpad.patch | 327 ++ ...hesizing-a-debug-id-from-version-and.patch | 62 + ...name-of-the-info-entry-containing-up.patch | 29 + ...-a-missing-r-in-crash_generation_app.patch | 30 + ...t-waiting-for-crash-reporting-server.patch | 31 + ...ompare-warnings-due-to-signedness-of.patch | 68 + mingw-w64-breakpad-svn/PKGBUILD | 100 +- .../gyp-regenerate-no-circular-check.patch | 11 + 26 files changed, 8418 insertions(+), 16 deletions(-) create mode 100644 mingw-w64-breakpad-svn/0002-Avoid-O_BINARY-redefinition-warning-on-Cygwin.patch create mode 100644 mingw-w64-breakpad-svn/0003-Build-minidump_upload-sym_upload-for-all-targets.patch create mode 100644 mingw-w64-breakpad-svn/0004-Remove-local-copy-of-curl-headers.patch create mode 100644 mingw-w64-breakpad-svn/0005-Add-support-for-DWARF-in-PECOFF-as-used-by-Cygwin-an.patch create mode 100644 mingw-w64-breakpad-svn/0006-Fix-building-minidump-processor-for-MinGW.patch create mode 100644 mingw-w64-breakpad-svn/0007-Build-PECOFF-DWARF-dump_syms-for-MinGW.patch create mode 100644 mingw-w64-breakpad-svn/0008-Fix-building-client-library-and-upload-tools-for-Min.patch create mode 100644 mingw-w64-breakpad-svn/0009-Fix-common.gypi-to-allow-gyp-to-generate-Makefiles-o.patch create mode 100644 mingw-w64-breakpad-svn/0010-Teach-gyp-generated-Makefile-to-build-crash_generati.patch create mode 100644 mingw-w64-breakpad-svn/0011-Default-debug_file-to-the-code_file-basename.patch create mode 100644 mingw-w64-breakpad-svn/0012-Fix-building-windows-client-unit-tests-with-gcc.patch create mode 100644 mingw-w64-breakpad-svn/0013-Add-symsrv_convert.patch create mode 100644 mingw-w64-breakpad-svn/0014-Build-MinGW-client-library-using-gyp-generated-Makef.patch create mode 100644 mingw-w64-breakpad-svn/0015-Use-a-default-debug-id-of-all-zeros-when-no-CV-recor.patch create mode 100644 mingw-w64-breakpad-svn/0016-Increase-RA-scanning-to-60-words.patch create mode 100644 mingw-w64-breakpad-svn/0017-Use-__USE_MINGW_ANSI_STDIO-for-MinGW-build.patch create mode 100644 mingw-w64-breakpad-svn/0018-Provide-a-working-strtok_r-for-MinGW.patch create mode 100644 mingw-w64-breakpad-svn/0019-Add-a-README.md-with-notes-on-what-is-left-to-do.patch create mode 100644 mingw-w64-breakpad-svn/0020-Support-for-multiple-upload-files-in-Breakpad.patch create mode 100644 mingw-w64-breakpad-svn/0021-Fallback-to-synthesizing-a-debug-id-from-version-and.patch create mode 100644 mingw-w64-breakpad-svn/0022-Fix-typo-in-the-name-of-the-info-entry-containing-up.patch create mode 100644 mingw-w64-breakpad-svn/0023-Fix-a-missing-r-in-crash_generation_app.patch create mode 100644 mingw-w64-breakpad-svn/0024-Disable-timeout-waiting-for-crash-reporting-server.patch create mode 100644 mingw-w64-breakpad-svn/0026-Fixes-for-sign-compare-warnings-due-to-signedness-of.patch create mode 100644 mingw-w64-breakpad-svn/gyp-regenerate-no-circular-check.patch diff --git a/mingw-w64-breakpad-svn/0002-Avoid-O_BINARY-redefinition-warning-on-Cygwin.patch b/mingw-w64-breakpad-svn/0002-Avoid-O_BINARY-redefinition-warning-on-Cygwin.patch new file mode 100644 index 0000000000..de324c4834 --- /dev/null +++ b/mingw-w64-breakpad-svn/0002-Avoid-O_BINARY-redefinition-warning-on-Cygwin.patch @@ -0,0 +1,42 @@ +From eb32eb8c96d3948823b8467dd1837aa3d3c5ec27 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Sat, 12 Jul 2014 13:33:47 +0100 +Subject: [PATCH 02/24] Avoid O_BINARY redefinition warning on Cygwin + +Avoid O_BINARY redefinition warning compiling processor for Cygwin + +On Cygwin, WIN32 not defined, but O_BINARY is defined by fcntl.h, so avoid a +redefinition warning. + +../src/processor/minidump.cc:55:0: warning: "O_BINARY" redefined [enabled by default] + #define O_BINARY 0 + ^ +In file included from /usr/include/sys/fcntl.h:3:0, + from /usr/include/fcntl.h:14, + from ../src/processor/minidump.cc:39: +/usr/include/sys/_default_fcntl.h:52:0: note: this is the location of the previous definition + #define O_BINARY _FBINARY + ^ + +Signed-off-by: Jon TURNEY +--- + src/processor/minidump.cc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc +index 8ae260d..a4bf55a 100644 +--- a/src/processor/minidump.cc ++++ b/src/processor/minidump.cc +@@ -49,7 +49,9 @@ + #define snprintf _snprintf + #else // _WIN32 + #include ++#ifndef O_BINARY + #define O_BINARY 0 ++#endif + #endif // _WIN32 + + #include +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0003-Build-minidump_upload-sym_upload-for-all-targets.patch b/mingw-w64-breakpad-svn/0003-Build-minidump_upload-sym_upload-for-all-targets.patch new file mode 100644 index 0000000000..7bf344311f --- /dev/null +++ b/mingw-w64-breakpad-svn/0003-Build-minidump_upload-sym_upload-for-all-targets.patch @@ -0,0 +1,293 @@ +From 1ffcd61fc7d6ba537faa40641d0422574672b12f Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Mon, 3 Feb 2014 23:57:22 +0000 +Subject: [PATCH 03/24] Build minidump_upload, sym_upload for all targets + +Rather than duplicating these tools for any target which has libcurl +- Introduce src/tools/common/ and move minidump_upload, sym_upload there from src/tools/linux/ +- Move linux/http_upload.cc,.h up to src/common/ from src/common/linux/ + +Don't link with -ldl and use dlopen to use libcurl.so, but just link with +libcurl. + +XXX: Perhaps retaining linking with -dl and just teaching it the name of curl +shared object on Cygwin would be more upstreamable, although the reasons for not +linking with libcurl are obscure... + +Signed-off-by: Jon TURNEY +--- + Makefile.am | 30 ++++--- + src/common/{linux => }/http_upload.cc | 94 +++++----------------- + src/common/{linux => }/http_upload.h | 0 + .../{linux => common}/symupload/minidump_upload.cc | 2 +- + .../{linux => common}/symupload/sym_upload.cc | 2 +- + 5 files changed, 39 insertions(+), 89 deletions(-) + rename src/common/{linux => }/http_upload.cc (60%) + rename src/common/{linux => }/http_upload.h (100%) + rename src/tools/{linux => common}/symupload/minidump_upload.cc (99%) + rename src/tools/{linux => common}/symupload/sym_upload.cc (99%) + +diff --git a/Makefile.am b/Makefile.am +index 1e3279f..6246c9c 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -303,6 +303,12 @@ bin_PROGRAMS += \ + src/processor/minidump_stackwalk + endif !DISABLE_PROCESSOR + ++if !DISABLE_TOOLS ++bin_PROGRAMS += \ ++ src/tools/common/symupload/minidump_upload \ ++ src/tools/common/symupload/sym_upload ++endif ++ + if LINUX_HOST + bin_PROGRAMS += \ + src/client/linux/linux_dumper_unittest_helper +@@ -311,9 +317,7 @@ if !DISABLE_TOOLS + bin_PROGRAMS += \ + src/tools/linux/core2md/core2md \ + src/tools/linux/dump_syms/dump_syms \ +- src/tools/linux/md2core/minidump-2-core \ +- src/tools/linux/symupload/minidump_upload \ +- src/tools/linux/symupload/sym_upload ++ src/tools/linux/md2core/minidump-2-core + endif + endif LINUX_HOST + +@@ -391,6 +395,16 @@ else + LOG_DRIVER = $(top_srcdir)/autotools/test-driver + endif + ++src_tools_common_symupload_minidump_upload_SOURCES = \ ++ src/common/http_upload.cc \ ++ src/tools/common/symupload/minidump_upload.cc ++src_tools_common_symupload_minidump_upload_LDADD = -lcurl ++ ++src_tools_common_symupload_sym_upload_SOURCES = \ ++ src/common/http_upload.cc \ ++ src/tools/common/symupload/sym_upload.cc ++src_tools_common_symupload_sym_upload_LDADD = -lcurl ++ + if LINUX_HOST + src_client_linux_linux_dumper_unittest_helper_SOURCES = \ + src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc +@@ -526,16 +540,6 @@ src_tools_linux_md2core_minidump_2_core_SOURCES = \ + src/common/linux/memory_mapped_file.cc \ + src/tools/linux/md2core/minidump-2-core.cc + +-src_tools_linux_symupload_minidump_upload_SOURCES = \ +- src/common/linux/http_upload.cc \ +- src/tools/linux/symupload/minidump_upload.cc +-src_tools_linux_symupload_minidump_upload_LDADD = -ldl +- +-src_tools_linux_symupload_sym_upload_SOURCES = \ +- src/common/linux/http_upload.cc \ +- src/tools/linux/symupload/sym_upload.cc +-src_tools_linux_symupload_sym_upload_LDADD = -ldl +- + src_common_dumper_unittest_SOURCES = \ + src/common/byte_cursor_unittest.cc \ + src/common/dwarf_cfi_to_module.cc \ +diff --git a/src/common/linux/http_upload.cc b/src/common/http_upload.cc +similarity index 60% +rename from src/common/linux/http_upload.cc +rename to src/common/http_upload.cc +index d49f227..47dcf80 100644 +--- a/src/common/linux/http_upload.cc ++++ b/src/common/http_upload.cc +@@ -27,10 +27,9 @@ + // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-#include "common/linux/http_upload.h" ++#include "common/http_upload.h" + + #include +-#include + #include "third_party/curl/curl.h" + + namespace { +@@ -70,50 +69,13 @@ bool HTTPUpload::SendRequest(const string &url, + if (!CheckParameters(parameters)) + return false; + +- // We may have been linked statically; if curl_easy_init is in the +- // current binary, no need to search for a dynamic version. +- void* curl_lib = dlopen(NULL, RTLD_NOW); +- if (!curl_lib || dlsym(curl_lib, "curl_easy_init") == NULL) { +- dlerror(); // Clear dlerror before attempting to open libraries. +- dlclose(curl_lib); +- curl_lib = NULL; +- } +- if (!curl_lib) { +- curl_lib = dlopen("libcurl.so", RTLD_NOW); +- } +- if (!curl_lib) { +- if (error_description != NULL) +- *error_description = dlerror(); +- curl_lib = dlopen("libcurl.so.4", RTLD_NOW); +- } +- if (!curl_lib) { +- // Debian gives libcurl a different name when it is built against GnuTLS +- // instead of OpenSSL. +- curl_lib = dlopen("libcurl-gnutls.so.4", RTLD_NOW); +- } +- if (!curl_lib) { +- curl_lib = dlopen("libcurl.so.3", RTLD_NOW); +- } +- if (!curl_lib) { +- return false; +- } +- +- CURL* (*curl_easy_init)(void); +- *(void**) (&curl_easy_init) = dlsym(curl_lib, "curl_easy_init"); +- CURL *curl = (*curl_easy_init)(); ++ CURL *curl = curl_easy_init(); + if (error_description != NULL) + *error_description = "No Error"; + +- if (!curl) { +- dlclose(curl_lib); +- return false; +- } +- + CURLcode err_code = CURLE_OK; +- CURLcode (*curl_easy_setopt)(CURL *, CURLoption, ...); +- *(void**) (&curl_easy_setopt) = dlsym(curl_lib, "curl_easy_setopt"); +- (*curl_easy_setopt)(curl, CURLOPT_URL, url.c_str()); +- (*curl_easy_setopt)(curl, CURLOPT_USERAGENT, kUserAgent); ++ curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); ++ curl_easy_setopt(curl, CURLOPT_USERAGENT, kUserAgent); + // Set proxy information if necessary. + if (!proxy.empty()) + (*curl_easy_setopt)(curl, CURLOPT_PROXY, proxy.c_str()); +@@ -126,73 +88,57 @@ bool HTTPUpload::SendRequest(const string &url, + struct curl_httppost *formpost = NULL; + struct curl_httppost *lastptr = NULL; + // Add form data. +- CURLFORMcode (*curl_formadd)(struct curl_httppost **, struct curl_httppost **, ...); +- *(void**) (&curl_formadd) = dlsym(curl_lib, "curl_formadd"); + map::const_iterator iter = parameters.begin(); + for (; iter != parameters.end(); ++iter) +- (*curl_formadd)(&formpost, &lastptr, ++ curl_formadd(&formpost, &lastptr, + CURLFORM_COPYNAME, iter->first.c_str(), + CURLFORM_COPYCONTENTS, iter->second.c_str(), + CURLFORM_END); + + // Add form file. +- (*curl_formadd)(&formpost, &lastptr, ++ curl_formadd(&formpost, &lastptr, + CURLFORM_COPYNAME, file_part_name.c_str(), + CURLFORM_FILE, upload_file.c_str(), + CURLFORM_END); + +- (*curl_easy_setopt)(curl, CURLOPT_HTTPPOST, formpost); ++ curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost); + + // Disable 100-continue header. + struct curl_slist *headerlist = NULL; + char buf[] = "Expect:"; +- struct curl_slist* (*curl_slist_append)(struct curl_slist *, const char *); +- *(void**) (&curl_slist_append) = dlsym(curl_lib, "curl_slist_append"); +- headerlist = (*curl_slist_append)(headerlist, buf); +- (*curl_easy_setopt)(curl, CURLOPT_HTTPHEADER, headerlist); ++ headerlist = curl_slist_append(headerlist, buf); ++ curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist); + + if (response_body != NULL) { +- (*curl_easy_setopt)(curl, CURLOPT_WRITEFUNCTION, WriteCallback); +- (*curl_easy_setopt)(curl, CURLOPT_WRITEDATA, ++ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); ++ curl_easy_setopt(curl, CURLOPT_WRITEDATA, + reinterpret_cast(response_body)); + } + + // Fail if 400+ is returned from the web server. +- (*curl_easy_setopt)(curl, CURLOPT_FAILONERROR, 1); ++ curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1); + +- CURLcode (*curl_easy_perform)(CURL *); +- *(void**) (&curl_easy_perform) = dlsym(curl_lib, "curl_easy_perform"); +- err_code = (*curl_easy_perform)(curl); ++ err_code = curl_easy_perform(curl); + if (response_code != NULL) { +- CURLcode (*curl_easy_getinfo)(CURL *, CURLINFO, ...); +- *(void**) (&curl_easy_getinfo) = dlsym(curl_lib, "curl_easy_getinfo"); +- (*curl_easy_getinfo)(curl, CURLINFO_RESPONSE_CODE, response_code); ++ curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, response_code); + } +- const char* (*curl_easy_strerror)(CURLcode); +- *(void**) (&curl_easy_strerror) = dlsym(curl_lib, "curl_easy_strerror"); + #ifndef NDEBUG + if (err_code != CURLE_OK) + fprintf(stderr, "Failed to send http request to %s, error: %s\n", + url.c_str(), +- (*curl_easy_strerror)(err_code)); ++ curl_easy_strerror(err_code)); + #endif + if (error_description != NULL) +- *error_description = (*curl_easy_strerror)(err_code); ++ *error_description = curl_easy_strerror(err_code); + +- void (*curl_easy_cleanup)(CURL *); +- *(void**) (&curl_easy_cleanup) = dlsym(curl_lib, "curl_easy_cleanup"); +- (*curl_easy_cleanup)(curl); ++ curl_easy_cleanup(curl); + if (formpost != NULL) { +- void (*curl_formfree)(struct curl_httppost *); +- *(void**) (&curl_formfree) = dlsym(curl_lib, "curl_formfree"); +- (*curl_formfree)(formpost); ++ curl_formfree(formpost); + } + if (headerlist != NULL) { +- void (*curl_slist_free_all)(struct curl_slist *); +- *(void**) (&curl_slist_free_all) = dlsym(curl_lib, "curl_slist_free_all"); +- (*curl_slist_free_all)(headerlist); ++ curl_slist_free_all(headerlist); + } +- dlclose(curl_lib); ++ + return err_code == CURLE_OK; + } + +diff --git a/src/common/linux/http_upload.h b/src/common/http_upload.h +similarity index 100% +rename from src/common/linux/http_upload.h +rename to src/common/http_upload.h +diff --git a/src/tools/linux/symupload/minidump_upload.cc b/src/tools/common/symupload/minidump_upload.cc +similarity index 99% +rename from src/tools/linux/symupload/minidump_upload.cc +rename to src/tools/common/symupload/minidump_upload.cc +index 94c3492..f1146ac 100644 +--- a/src/tools/linux/symupload/minidump_upload.cc ++++ b/src/tools/common/symupload/minidump_upload.cc +@@ -40,7 +40,7 @@ + + #include + +-#include "common/linux/http_upload.h" ++#include "common/http_upload.h" + #include "common/using_std_string.h" + + using google_breakpad::HTTPUpload; +diff --git a/src/tools/linux/symupload/sym_upload.cc b/src/tools/common/symupload/sym_upload.cc +similarity index 99% +rename from src/tools/linux/symupload/sym_upload.cc +rename to src/tools/common/symupload/sym_upload.cc +index 09e82ca..bc2693e 100644 +--- a/src/tools/linux/symupload/sym_upload.cc ++++ b/src/tools/common/symupload/sym_upload.cc +@@ -49,7 +49,7 @@ + #include + #include + +-#include "common/linux/http_upload.h" ++#include "common/http_upload.h" + #include "common/using_std_string.h" + + using google_breakpad::HTTPUpload; +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0004-Remove-local-copy-of-curl-headers.patch b/mingw-w64-breakpad-svn/0004-Remove-local-copy-of-curl-headers.patch new file mode 100644 index 0000000000..e65d4027d9 --- /dev/null +++ b/mingw-w64-breakpad-svn/0004-Remove-local-copy-of-curl-headers.patch @@ -0,0 +1,3718 @@ +From fbd8f186f4bdee73f2f086a9c8bae28829109e99 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Sat, 12 Jul 2014 14:09:03 +0100 +Subject: [PATCH 04/24] Remove local copy of curl headers + +This reverts commit d9d863e153d12532fc85bd8b44bc47f079ed064c. +This reverts commit 68e380d5a73a0d657693f166fbcb1dd77027766b. + +Signed-off-by: Jon TURNEY +--- + src/common/http_upload.cc | 3 +- + src/common/linux/libcurl_wrapper.cc | 3 + + src/common/linux/libcurl_wrapper.h | 2 +- + src/third_party/curl/curl.h | 1936 ---------------------------------- + src/third_party/curl/curlbuild.h | 202 ---- + src/third_party/curl/curlrules.h | 249 ----- + src/third_party/curl/curlver.h | 70 -- + src/third_party/curl/easy.h | 103 -- + src/third_party/curl/mprintf.h | 82 -- + src/third_party/curl/multi.h | 346 ------ + src/third_party/curl/stdcheaders.h | 34 - + src/third_party/curl/typecheck-gcc.h | 551 ---------- + src/third_party/curl/types.h | 1 - + 13 files changed, 6 insertions(+), 3576 deletions(-) + delete mode 100644 src/third_party/curl/curl.h + delete mode 100644 src/third_party/curl/curlbuild.h + delete mode 100644 src/third_party/curl/curlrules.h + delete mode 100644 src/third_party/curl/curlver.h + delete mode 100644 src/third_party/curl/easy.h + delete mode 100644 src/third_party/curl/mprintf.h + delete mode 100644 src/third_party/curl/multi.h + delete mode 100644 src/third_party/curl/stdcheaders.h + delete mode 100644 src/third_party/curl/typecheck-gcc.h + delete mode 100644 src/third_party/curl/types.h + +diff --git a/src/common/http_upload.cc b/src/common/http_upload.cc +index 47dcf80..91fedf2 100644 +--- a/src/common/http_upload.cc ++++ b/src/common/http_upload.cc +@@ -30,7 +30,8 @@ + #include "common/http_upload.h" + + #include +-#include "third_party/curl/curl.h" ++#include ++#include + + namespace { + +diff --git a/src/common/linux/libcurl_wrapper.cc b/src/common/linux/libcurl_wrapper.cc +index fd4e34c..3acc111 100644 +--- a/src/common/linux/libcurl_wrapper.cc ++++ b/src/common/linux/libcurl_wrapper.cc +@@ -27,6 +27,9 @@ + // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ++#include ++#include ++#include + #include + + #include +diff --git a/src/common/linux/libcurl_wrapper.h b/src/common/linux/libcurl_wrapper.h +index de84a63..23fe44f 100644 +--- a/src/common/linux/libcurl_wrapper.h ++++ b/src/common/linux/libcurl_wrapper.h +@@ -32,12 +32,12 @@ + + #ifndef COMMON_LINUX_LIBCURL_WRAPPER_H_ + #define COMMON_LINUX_LIBCURL_WRAPPER_H_ ++#include + + #include + #include + + #include "common/using_std_string.h" +-#include "third_party/curl/curl.h" + + namespace google_breakpad { + class LibcurlWrapper { +diff --git a/src/third_party/curl/curl.h b/src/third_party/curl/curl.h +deleted file mode 100644 +index 160cd98..0000000 +--- a/src/third_party/curl/curl.h ++++ /dev/null +@@ -1,1936 +0,0 @@ +-#ifndef __CURL_CURL_H +-#define __CURL_CURL_H +-/*************************************************************************** +- * _ _ ____ _ +- * Project ___| | | | _ \| | +- * / __| | | | |_) | | +- * | (__| |_| | _ <| |___ +- * \___|\___/|_| \_\_____| +- * +- * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al. +- * +- * This software is licensed as described in the file COPYING, which +- * you should have received as part of this distribution. The terms +- * are also available at http://curl.haxx.se/docs/copyright.html. +- * +- * You may opt to use, copy, modify, merge, publish, distribute and/or sell +- * copies of the Software, and permit persons to whom the Software is +- * furnished to do so, under the terms of the COPYING file. +- * +- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +- * KIND, either express or implied. +- * +- * $Id: curl.h,v 1.396 2009-10-16 13:30:31 yangtse Exp $ +- ***************************************************************************/ +- +-/* +- * If you have libcurl problems, all docs and details are found here: +- * http://curl.haxx.se/libcurl/ +- * +- * curl-library mailing list subscription and unsubscription web interface: +- * http://cool.haxx.se/mailman/listinfo/curl-library/ +- */ +- +-/* +- * Leading 'curl' path on the 'curlbuild.h' include statement is +- * required to properly allow building outside of the source tree, +- * due to the fact that in this case 'curlbuild.h' is generated in +- * a subdirectory of the build tree while 'curl.h actually remains +- * in a subdirectory of the source tree. +- */ +- +-#include "third_party/curl/curlver.h" /* libcurl version defines */ +-#include "third_party/curl/curlbuild.h" /* libcurl build definitions */ +-#include "third_party/curl/curlrules.h" /* libcurl rules enforcement */ +- +-/* +- * Define WIN32 when build target is Win32 API +- */ +- +-#if (defined(_WIN32) || defined(__WIN32__)) && \ +- !defined(WIN32) && !defined(__SYMBIAN32__) +-#define WIN32 +-#endif +- +-#include +-#include +- +-/* The include stuff here below is mainly for time_t! */ +-#include +-#include +- +-#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__GNUC__) && \ +- !defined(__CYGWIN__) || defined(__MINGW32__) +-#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H)) +-/* The check above prevents the winsock2 inclusion if winsock.h already was +- included, since they can't co-exist without problems */ +-#include +-#include +-#endif +-#else +- +-/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish +- libc5-based Linux systems. Only include it on system that are known to +- require it! */ +-#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ +- defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ +- defined(ANDROID) +-#include +-#endif +- +-#ifndef _WIN32_WCE +-#include +-#endif +-#if !defined(WIN32) && !defined(__WATCOMC__) && !defined(__VXWORKS__) +-#include +-#endif +-#include +-#endif +- +-#ifdef __BEOS__ +-#include +-#endif +- +-#ifdef __cplusplus +-extern "C" { +-#endif +- +-typedef void CURL; +- +-/* +- * Decorate exportable functions for Win32 and Symbian OS DLL linking. +- * This avoids using a .def file for building libcurl.dll. +- */ +-#if (defined(WIN32) || defined(_WIN32) || defined(__SYMBIAN32__)) && \ +- !defined(CURL_STATICLIB) +-#if defined(BUILDING_LIBCURL) +-#define CURL_EXTERN __declspec(dllexport) +-#else +-#define CURL_EXTERN __declspec(dllimport) +-#endif +-#else +- +-#ifdef CURL_HIDDEN_SYMBOLS +-/* +- * This definition is used to make external definitions visible in the +- * shared library when symbols are hidden by default. It makes no +- * difference when compiling applications whether this is set or not, +- * only when compiling the library. +- */ +-#define CURL_EXTERN CURL_EXTERN_SYMBOL +-#else +-#define CURL_EXTERN +-#endif +-#endif +- +-#ifndef curl_socket_typedef +-/* socket typedef */ +-#ifdef WIN32 +-typedef SOCKET curl_socket_t; +-#define CURL_SOCKET_BAD INVALID_SOCKET +-#else +-typedef int curl_socket_t; +-#define CURL_SOCKET_BAD -1 +-#endif +-#define curl_socket_typedef +-#endif /* curl_socket_typedef */ +- +-struct curl_httppost { +- struct curl_httppost *next; /* next entry in the list */ +- char *name; /* pointer to allocated name */ +- long namelength; /* length of name length */ +- char *contents; /* pointer to allocated data contents */ +- long contentslength; /* length of contents field */ +- char *buffer; /* pointer to allocated buffer contents */ +- long bufferlength; /* length of buffer field */ +- char *contenttype; /* Content-Type */ +- struct curl_slist* contentheader; /* list of extra headers for this form */ +- struct curl_httppost *more; /* if one field name has more than one +- file, this link should link to following +- files */ +- long flags; /* as defined below */ +-#define HTTPPOST_FILENAME (1<<0) /* specified content is a file name */ +-#define HTTPPOST_READFILE (1<<1) /* specified content is a file name */ +-#define HTTPPOST_PTRNAME (1<<2) /* name is only stored pointer +- do not free in formfree */ +-#define HTTPPOST_PTRCONTENTS (1<<3) /* contents is only stored pointer +- do not free in formfree */ +-#define HTTPPOST_BUFFER (1<<4) /* upload file from buffer */ +-#define HTTPPOST_PTRBUFFER (1<<5) /* upload file from pointer contents */ +-#define HTTPPOST_CALLBACK (1<<6) /* upload file contents by using the +- regular read callback to get the data +- and pass the given pointer as custom +- pointer */ +- +- char *showfilename; /* The file name to show. If not set, the +- actual file name will be used (if this +- is a file part) */ +- void *userp; /* custom pointer used for +- HTTPPOST_CALLBACK posts */ +-}; +- +-typedef int (*curl_progress_callback)(void *clientp, +- double dltotal, +- double dlnow, +- double ultotal, +- double ulnow); +- +-#ifndef CURL_MAX_WRITE_SIZE +- /* Tests have proven that 20K is a very bad buffer size for uploads on +- Windows, while 16K for some odd reason performed a lot better. +- We do the ifndef check to allow this value to easier be changed at build +- time for those who feel adventurous. */ +-#define CURL_MAX_WRITE_SIZE 16384 +-#endif +- +-#ifndef CURL_MAX_HTTP_HEADER +-/* The only reason to have a max limit for this is to avoid the risk of a bad +- server feeding libcurl with a never-ending header that will cause reallocs +- infinitely */ +-#define CURL_MAX_HTTP_HEADER (100*1024) +-#endif +- +- +-/* This is a magic return code for the write callback that, when returned, +- will signal libcurl to pause receiving on the current transfer. */ +-#define CURL_WRITEFUNC_PAUSE 0x10000001 +-typedef size_t (*curl_write_callback)(char *buffer, +- size_t size, +- size_t nitems, +- void *outstream); +- +-/* These are the return codes for the seek callbacks */ +-#define CURL_SEEKFUNC_OK 0 +-#define CURL_SEEKFUNC_FAIL 1 /* fail the entire transfer */ +-#define CURL_SEEKFUNC_CANTSEEK 2 /* tell libcurl seeking can't be done, so +- libcurl might try other means instead */ +-typedef int (*curl_seek_callback)(void *instream, +- curl_off_t offset, +- int origin); /* 'whence' */ +- +-/* This is a return code for the read callback that, when returned, will +- signal libcurl to immediately abort the current transfer. */ +-#define CURL_READFUNC_ABORT 0x10000000 +-/* This is a return code for the read callback that, when returned, will +- signal libcurl to pause sending data on the current transfer. */ +-#define CURL_READFUNC_PAUSE 0x10000001 +- +-typedef size_t (*curl_read_callback)(char *buffer, +- size_t size, +- size_t nitems, +- void *instream); +- +-typedef enum { +- CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */ +- CURLSOCKTYPE_LAST /* never use */ +-} curlsocktype; +- +-typedef int (*curl_sockopt_callback)(void *clientp, +- curl_socket_t curlfd, +- curlsocktype purpose); +- +-struct curl_sockaddr { +- int family; +- int socktype; +- int protocol; +- unsigned int addrlen; /* addrlen was a socklen_t type before 7.18.0 but it +- turned really ugly and painful on the systems that +- lack this type */ +- struct sockaddr addr; +-}; +- +-typedef curl_socket_t +-(*curl_opensocket_callback)(void *clientp, +- curlsocktype purpose, +- struct curl_sockaddr *address); +- +-#ifndef CURL_NO_OLDIES +- /* not used since 7.10.8, will be removed in a future release */ +-typedef int (*curl_passwd_callback)(void *clientp, +- const char *prompt, +- char *buffer, +- int buflen); +-#endif +- +-typedef enum { +- CURLIOE_OK, /* I/O operation successful */ +- CURLIOE_UNKNOWNCMD, /* command was unknown to callback */ +- CURLIOE_FAILRESTART, /* failed to restart the read */ +- CURLIOE_LAST /* never use */ +-} curlioerr; +- +-typedef enum { +- CURLIOCMD_NOP, /* no operation */ +- CURLIOCMD_RESTARTREAD, /* restart the read stream from start */ +- CURLIOCMD_LAST /* never use */ +-} curliocmd; +- +-typedef curlioerr (*curl_ioctl_callback)(CURL *handle, +- int cmd, +- void *clientp); +- +-/* +- * The following typedef's are signatures of malloc, free, realloc, strdup and +- * calloc respectively. Function pointers of these types can be passed to the +- * curl_global_init_mem() function to set user defined memory management +- * callback routines. +- */ +-typedef void *(*curl_malloc_callback)(size_t size); +-typedef void (*curl_free_callback)(void *ptr); +-typedef void *(*curl_realloc_callback)(void *ptr, size_t size); +-typedef char *(*curl_strdup_callback)(const char *str); +-typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size); +- +-/* the kind of data that is passed to information_callback*/ +-typedef enum { +- CURLINFO_TEXT = 0, +- CURLINFO_HEADER_IN, /* 1 */ +- CURLINFO_HEADER_OUT, /* 2 */ +- CURLINFO_DATA_IN, /* 3 */ +- CURLINFO_DATA_OUT, /* 4 */ +- CURLINFO_SSL_DATA_IN, /* 5 */ +- CURLINFO_SSL_DATA_OUT, /* 6 */ +- CURLINFO_END +-} curl_infotype; +- +-typedef int (*curl_debug_callback) +- (CURL *handle, /* the handle/transfer this concerns */ +- curl_infotype type, /* what kind of data */ +- char *data, /* points to the data */ +- size_t size, /* size of the data pointed to */ +- void *userptr); /* whatever the user please */ +- +-/* All possible error codes from all sorts of curl functions. Future versions +- may return other values, stay prepared. +- +- Always add new return codes last. Never *EVER* remove any. The return +- codes must remain the same! +- */ +- +-typedef enum { +- CURLE_OK = 0, +- CURLE_UNSUPPORTED_PROTOCOL, /* 1 */ +- CURLE_FAILED_INIT, /* 2 */ +- CURLE_URL_MALFORMAT, /* 3 */ +- CURLE_OBSOLETE4, /* 4 - NOT USED */ +- CURLE_COULDNT_RESOLVE_PROXY, /* 5 */ +- CURLE_COULDNT_RESOLVE_HOST, /* 6 */ +- CURLE_COULDNT_CONNECT, /* 7 */ +- CURLE_FTP_WEIRD_SERVER_REPLY, /* 8 */ +- CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server +- due to lack of access - when login fails +- this is not returned. */ +- CURLE_OBSOLETE10, /* 10 - NOT USED */ +- CURLE_FTP_WEIRD_PASS_REPLY, /* 11 */ +- CURLE_OBSOLETE12, /* 12 - NOT USED */ +- CURLE_FTP_WEIRD_PASV_REPLY, /* 13 */ +- CURLE_FTP_WEIRD_227_FORMAT, /* 14 */ +- CURLE_FTP_CANT_GET_HOST, /* 15 */ +- CURLE_OBSOLETE16, /* 16 - NOT USED */ +- CURLE_FTP_COULDNT_SET_TYPE, /* 17 */ +- CURLE_PARTIAL_FILE, /* 18 */ +- CURLE_FTP_COULDNT_RETR_FILE, /* 19 */ +- CURLE_OBSOLETE20, /* 20 - NOT USED */ +- CURLE_QUOTE_ERROR, /* 21 - quote command failure */ +- CURLE_HTTP_RETURNED_ERROR, /* 22 */ +- CURLE_WRITE_ERROR, /* 23 */ +- CURLE_OBSOLETE24, /* 24 - NOT USED */ +- CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */ +- CURLE_READ_ERROR, /* 26 - couldn't open/read from file */ +- CURLE_OUT_OF_MEMORY, /* 27 */ +- /* Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error +- instead of a memory allocation error if CURL_DOES_CONVERSIONS +- is defined +- */ +- CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was reached */ +- CURLE_OBSOLETE29, /* 29 - NOT USED */ +- CURLE_FTP_PORT_FAILED, /* 30 - FTP PORT operation failed */ +- CURLE_FTP_COULDNT_USE_REST, /* 31 - the REST command failed */ +- CURLE_OBSOLETE32, /* 32 - NOT USED */ +- CURLE_RANGE_ERROR, /* 33 - RANGE "command" didn't work */ +- CURLE_HTTP_POST_ERROR, /* 34 */ +- CURLE_SSL_CONNECT_ERROR, /* 35 - wrong when connecting with SSL */ +- CURLE_BAD_DOWNLOAD_RESUME, /* 36 - couldn't resume download */ +- CURLE_FILE_COULDNT_READ_FILE, /* 37 */ +- CURLE_LDAP_CANNOT_BIND, /* 38 */ +- CURLE_LDAP_SEARCH_FAILED, /* 39 */ +- CURLE_OBSOLETE40, /* 40 - NOT USED */ +- CURLE_FUNCTION_NOT_FOUND, /* 41 */ +- CURLE_ABORTED_BY_CALLBACK, /* 42 */ +- CURLE_BAD_FUNCTION_ARGUMENT, /* 43 */ +- CURLE_OBSOLETE44, /* 44 - NOT USED */ +- CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */ +- CURLE_OBSOLETE46, /* 46 - NOT USED */ +- CURLE_TOO_MANY_REDIRECTS , /* 47 - catch endless re-direct loops */ +- CURLE_UNKNOWN_TELNET_OPTION, /* 48 - User specified an unknown option */ +- CURLE_TELNET_OPTION_SYNTAX , /* 49 - Malformed telnet option */ +- CURLE_OBSOLETE50, /* 50 - NOT USED */ +- CURLE_PEER_FAILED_VERIFICATION, /* 51 - peer's certificate or fingerprint +- wasn't verified fine */ +- CURLE_GOT_NOTHING, /* 52 - when this is a specific error */ +- CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */ +- CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as +- default */ +- CURLE_SEND_ERROR, /* 55 - failed sending network data */ +- CURLE_RECV_ERROR, /* 56 - failure in receiving network data */ +- CURLE_OBSOLETE57, /* 57 - NOT IN USE */ +- CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */ +- CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */ +- CURLE_SSL_CACERT, /* 60 - problem with the CA cert (path?) */ +- CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized transfer encoding */ +- CURLE_LDAP_INVALID_URL, /* 62 - Invalid LDAP URL */ +- CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */ +- CURLE_USE_SSL_FAILED, /* 64 - Requested FTP SSL level failed */ +- CURLE_SEND_FAIL_REWIND, /* 65 - Sending the data requires a rewind +- that failed */ +- CURLE_SSL_ENGINE_INITFAILED, /* 66 - failed to initialise ENGINE */ +- CURLE_LOGIN_DENIED, /* 67 - user, password or similar was not +- accepted and we failed to login */ +- CURLE_TFTP_NOTFOUND, /* 68 - file not found on server */ +- CURLE_TFTP_PERM, /* 69 - permission problem on server */ +- CURLE_REMOTE_DISK_FULL, /* 70 - out of disk space on server */ +- CURLE_TFTP_ILLEGAL, /* 71 - Illegal TFTP operation */ +- CURLE_TFTP_UNKNOWNID, /* 72 - Unknown transfer ID */ +- CURLE_REMOTE_FILE_EXISTS, /* 73 - File already exists */ +- CURLE_TFTP_NOSUCHUSER, /* 74 - No such user */ +- CURLE_CONV_FAILED, /* 75 - conversion failed */ +- CURLE_CONV_REQD, /* 76 - caller must register conversion +- callbacks using curl_easy_setopt options +- CURLOPT_CONV_FROM_NETWORK_FUNCTION, +- CURLOPT_CONV_TO_NETWORK_FUNCTION, and +- CURLOPT_CONV_FROM_UTF8_FUNCTION */ +- CURLE_SSL_CACERT_BADFILE, /* 77 - could not load CACERT file, missing +- or wrong format */ +- CURLE_REMOTE_FILE_NOT_FOUND, /* 78 - remote file not found */ +- CURLE_SSH, /* 79 - error from the SSH layer, somewhat +- generic so the error message will be of +- interest when this has happened */ +- +- CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL +- connection */ +- CURLE_AGAIN, /* 81 - socket is not ready for send/recv, +- wait till it's ready and try again (Added +- in 7.18.2) */ +- CURLE_SSL_CRL_BADFILE, /* 82 - could not load CRL file, missing or +- wrong format (Added in 7.19.0) */ +- CURLE_SSL_ISSUER_ERROR, /* 83 - Issuer check failed. (Added in +- 7.19.0) */ +- CURL_LAST /* never use! */ +-} CURLcode; +- +-#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all +- the obsolete stuff removed! */ +- +-/* Backwards compatibility with older names */ +- +-/* The following were added in 7.17.1 */ +-/* These are scheduled to disappear by 2009 */ +-#define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION +- +-/* The following were added in 7.17.0 */ +-/* These are scheduled to disappear by 2009 */ +-#define CURLE_OBSOLETE CURLE_OBSOLETE50 /* noone should be using this! */ +-#define CURLE_BAD_PASSWORD_ENTERED CURLE_OBSOLETE46 +-#define CURLE_BAD_CALLING_ORDER CURLE_OBSOLETE44 +-#define CURLE_FTP_USER_PASSWORD_INCORRECT CURLE_OBSOLETE10 +-#define CURLE_FTP_CANT_RECONNECT CURLE_OBSOLETE16 +-#define CURLE_FTP_COULDNT_GET_SIZE CURLE_OBSOLETE32 +-#define CURLE_FTP_COULDNT_SET_ASCII CURLE_OBSOLETE29 +-#define CURLE_FTP_WEIRD_USER_REPLY CURLE_OBSOLETE12 +-#define CURLE_FTP_WRITE_ERROR CURLE_OBSOLETE20 +-#define CURLE_LIBRARY_NOT_FOUND CURLE_OBSOLETE40 +-#define CURLE_MALFORMAT_USER CURLE_OBSOLETE24 +-#define CURLE_SHARE_IN_USE CURLE_OBSOLETE57 +-#define CURLE_URL_MALFORMAT_USER CURLE_OBSOLETE4 +- +-#define CURLE_FTP_ACCESS_DENIED CURLE_REMOTE_ACCESS_DENIED +-#define CURLE_FTP_COULDNT_SET_BINARY CURLE_FTP_COULDNT_SET_TYPE +-#define CURLE_FTP_QUOTE_ERROR CURLE_QUOTE_ERROR +-#define CURLE_TFTP_DISKFULL CURLE_REMOTE_DISK_FULL +-#define CURLE_TFTP_EXISTS CURLE_REMOTE_FILE_EXISTS +-#define CURLE_HTTP_RANGE_ERROR CURLE_RANGE_ERROR +-#define CURLE_FTP_SSL_FAILED CURLE_USE_SSL_FAILED +- +-/* The following were added earlier */ +- +-#define CURLE_OPERATION_TIMEOUTED CURLE_OPERATION_TIMEDOUT +- +-#define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR +-#define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED +-#define CURLE_FTP_COULDNT_STOR_FILE CURLE_UPLOAD_FAILED +- +-#define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE +-#define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME +- +-/* This was the error code 50 in 7.7.3 and a few earlier versions, this +- is no longer used by libcurl but is instead #defined here only to not +- make programs break */ +-#define CURLE_ALREADY_COMPLETE 99999 +- +-#endif /*!CURL_NO_OLDIES*/ +- +-/* This prototype applies to all conversion callbacks */ +-typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length); +- +-typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */ +- void *ssl_ctx, /* actually an +- OpenSSL SSL_CTX */ +- void *userptr); +- +-typedef enum { +- CURLPROXY_HTTP = 0, /* added in 7.10, new in 7.19.4 default is to use +- CONNECT HTTP/1.1 */ +- CURLPROXY_HTTP_1_0 = 1, /* added in 7.19.4, force to use CONNECT +- HTTP/1.0 */ +- CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already +- in 7.10 */ +- CURLPROXY_SOCKS5 = 5, /* added in 7.10 */ +- CURLPROXY_SOCKS4A = 6, /* added in 7.18.0 */ +- CURLPROXY_SOCKS5_HOSTNAME = 7 /* Use the SOCKS5 protocol but pass along the +- host name rather than the IP address. added +- in 7.18.0 */ +-} curl_proxytype; /* this enum was added in 7.10 */ +- +-#define CURLAUTH_NONE 0 /* nothing */ +-#define CURLAUTH_BASIC (1<<0) /* Basic (default) */ +-#define CURLAUTH_DIGEST (1<<1) /* Digest */ +-#define CURLAUTH_GSSNEGOTIATE (1<<2) /* GSS-Negotiate */ +-#define CURLAUTH_NTLM (1<<3) /* NTLM */ +-#define CURLAUTH_DIGEST_IE (1<<4) /* Digest with IE flavour */ +-#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) /* all fine types set */ +-#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) +- +-#define CURLSSH_AUTH_ANY ~0 /* all types supported by the server */ +-#define CURLSSH_AUTH_NONE 0 /* none allowed, silly but complete */ +-#define CURLSSH_AUTH_PUBLICKEY (1<<0) /* public/private key files */ +-#define CURLSSH_AUTH_PASSWORD (1<<1) /* password */ +-#define CURLSSH_AUTH_HOST (1<<2) /* host key files */ +-#define CURLSSH_AUTH_KEYBOARD (1<<3) /* keyboard interactive */ +-#define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY +- +-#define CURL_ERROR_SIZE 256 +- +-struct curl_khkey { +- const char *key; /* points to a zero-terminated string encoded with base64 +- if len is zero, otherwise to the "raw" data */ +- size_t len; +- enum type { +- CURLKHTYPE_UNKNOWN, +- CURLKHTYPE_RSA1, +- CURLKHTYPE_RSA, +- CURLKHTYPE_DSS +- } keytype; +-}; +- +-/* this is the set of return values expected from the curl_sshkeycallback +- callback */ +-enum curl_khstat { +- CURLKHSTAT_FINE_ADD_TO_FILE, +- CURLKHSTAT_FINE, +- CURLKHSTAT_REJECT, /* reject the connection, return an error */ +- CURLKHSTAT_DEFER, /* do not accept it, but we can't answer right now so +- this causes a CURLE_DEFER error but otherwise the +- connection will be left intact etc */ +- CURLKHSTAT_LAST /* not for use, only a marker for last-in-list */ +-}; +- +-/* this is the set of status codes pass in to the callback */ +-enum curl_khmatch { +- CURLKHMATCH_OK, /* match */ +- CURLKHMATCH_MISMATCH, /* host found, key mismatch! */ +- CURLKHMATCH_MISSING, /* no matching host/key found */ +- CURLKHMATCH_LAST /* not for use, only a marker for last-in-list */ +-}; +- +-typedef int +- (*curl_sshkeycallback) (CURL *easy, /* easy handle */ +- const struct curl_khkey *knownkey, /* known */ +- const struct curl_khkey *foundkey, /* found */ +- enum curl_khmatch, /* libcurl's view on the keys */ +- void *clientp); /* custom pointer passed from app */ +- +-/* parameter for the CURLOPT_USE_SSL option */ +-typedef enum { +- CURLUSESSL_NONE, /* do not attempt to use SSL */ +- CURLUSESSL_TRY, /* try using SSL, proceed anyway otherwise */ +- CURLUSESSL_CONTROL, /* SSL for the control connection or fail */ +- CURLUSESSL_ALL, /* SSL for all communication or fail */ +- CURLUSESSL_LAST /* not an option, never use */ +-} curl_usessl; +- +-#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all +- the obsolete stuff removed! */ +- +-/* Backwards compatibility with older names */ +-/* These are scheduled to disappear by 2009 */ +- +-#define CURLFTPSSL_NONE CURLUSESSL_NONE +-#define CURLFTPSSL_TRY CURLUSESSL_TRY +-#define CURLFTPSSL_CONTROL CURLUSESSL_CONTROL +-#define CURLFTPSSL_ALL CURLUSESSL_ALL +-#define CURLFTPSSL_LAST CURLUSESSL_LAST +-#define curl_ftpssl curl_usessl +-#endif /*!CURL_NO_OLDIES*/ +- +-/* parameter for the CURLOPT_FTP_SSL_CCC option */ +-typedef enum { +- CURLFTPSSL_CCC_NONE, /* do not send CCC */ +- CURLFTPSSL_CCC_PASSIVE, /* Let the server initiate the shutdown */ +- CURLFTPSSL_CCC_ACTIVE, /* Initiate the shutdown */ +- CURLFTPSSL_CCC_LAST /* not an option, never use */ +-} curl_ftpccc; +- +-/* parameter for the CURLOPT_FTPSSLAUTH option */ +-typedef enum { +- CURLFTPAUTH_DEFAULT, /* let libcurl decide */ +- CURLFTPAUTH_SSL, /* use "AUTH SSL" */ +- CURLFTPAUTH_TLS, /* use "AUTH TLS" */ +- CURLFTPAUTH_LAST /* not an option, never use */ +-} curl_ftpauth; +- +-/* parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */ +-typedef enum { +- CURLFTP_CREATE_DIR_NONE, /* do NOT create missing dirs! */ +- CURLFTP_CREATE_DIR, /* (FTP/SFTP) if CWD fails, try MKD and then CWD +- again if MKD succeeded, for SFTP this does +- similar magic */ +- CURLFTP_CREATE_DIR_RETRY, /* (FTP only) if CWD fails, try MKD and then CWD +- again even if MKD failed! */ +- CURLFTP_CREATE_DIR_LAST /* not an option, never use */ +-} curl_ftpcreatedir; +- +-/* parameter for the CURLOPT_FTP_FILEMETHOD option */ +-typedef enum { +- CURLFTPMETHOD_DEFAULT, /* let libcurl pick */ +- CURLFTPMETHOD_MULTICWD, /* single CWD operation for each path part */ +- CURLFTPMETHOD_NOCWD, /* no CWD at all */ +- CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */ +- CURLFTPMETHOD_LAST /* not an option, never use */ +-} curl_ftpmethod; +- +-/* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */ +-#define CURLPROTO_HTTP (1<<0) +-#define CURLPROTO_HTTPS (1<<1) +-#define CURLPROTO_FTP (1<<2) +-#define CURLPROTO_FTPS (1<<3) +-#define CURLPROTO_SCP (1<<4) +-#define CURLPROTO_SFTP (1<<5) +-#define CURLPROTO_TELNET (1<<6) +-#define CURLPROTO_LDAP (1<<7) +-#define CURLPROTO_LDAPS (1<<8) +-#define CURLPROTO_DICT (1<<9) +-#define CURLPROTO_FILE (1<<10) +-#define CURLPROTO_TFTP (1<<11) +-#define CURLPROTO_ALL (~0) /* enable everything */ +- +-/* long may be 32 or 64 bits, but we should never depend on anything else +- but 32 */ +-#define CURLOPTTYPE_LONG 0 +-#define CURLOPTTYPE_OBJECTPOINT 10000 +-#define CURLOPTTYPE_FUNCTIONPOINT 20000 +-#define CURLOPTTYPE_OFF_T 30000 +- +-/* name is uppercase CURLOPT_, +- type is one of the defined CURLOPTTYPE_ +- number is unique identifier */ +-#ifdef CINIT +-#undef CINIT +-#endif +- +-#ifdef CURL_ISOCPP +-#define CINIT(name,type,number) CURLOPT_ ## name = CURLOPTTYPE_ ## type + number +-#else +-/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ +-#define LONG CURLOPTTYPE_LONG +-#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT +-#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT +-#define OFF_T CURLOPTTYPE_OFF_T +-#define CINIT(name,type,number) CURLOPT_/**/name = type + number +-#endif +- +-/* +- * This macro-mania below setups the CURLOPT_[what] enum, to be used with +- * curl_easy_setopt(). The first argument in the CINIT() macro is the [what] +- * word. +- */ +- +-typedef enum { +- /* This is the FILE * or void * the regular output should be written to. */ +- CINIT(FILE, OBJECTPOINT, 1), +- +- /* The full URL to get/put */ +- CINIT(URL, OBJECTPOINT, 2), +- +- /* Port number to connect to, if other than default. */ +- CINIT(PORT, LONG, 3), +- +- /* Name of proxy to use. */ +- CINIT(PROXY, OBJECTPOINT, 4), +- +- /* "name:password" to use when fetching. */ +- CINIT(USERPWD, OBJECTPOINT, 5), +- +- /* "name:password" to use with proxy. */ +- CINIT(PROXYUSERPWD, OBJECTPOINT, 6), +- +- /* Range to get, specified as an ASCII string. */ +- CINIT(RANGE, OBJECTPOINT, 7), +- +- /* not used */ +- +- /* Specified file stream to upload from (use as input): */ +- CINIT(INFILE, OBJECTPOINT, 9), +- +- /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE +- * bytes big. If this is not used, error messages go to stderr instead: */ +- CINIT(ERRORBUFFER, OBJECTPOINT, 10), +- +- /* Function that will be called to store the output (instead of fwrite). The +- * parameters will use fwrite() syntax, make sure to follow them. */ +- CINIT(WRITEFUNCTION, FUNCTIONPOINT, 11), +- +- /* Function that will be called to read the input (instead of fread). The +- * parameters will use fread() syntax, make sure to follow them. */ +- CINIT(READFUNCTION, FUNCTIONPOINT, 12), +- +- /* Time-out the read operation after this amount of seconds */ +- CINIT(TIMEOUT, LONG, 13), +- +- /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about +- * how large the file being sent really is. That allows better error +- * checking and better verifies that the upload was successful. -1 means +- * unknown size. +- * +- * For large file support, there is also a _LARGE version of the key +- * which takes an off_t type, allowing platforms with larger off_t +- * sizes to handle larger files. See below for INFILESIZE_LARGE. +- */ +- CINIT(INFILESIZE, LONG, 14), +- +- /* POST static input fields. */ +- CINIT(POSTFIELDS, OBJECTPOINT, 15), +- +- /* Set the referrer page (needed by some CGIs) */ +- CINIT(REFERER, OBJECTPOINT, 16), +- +- /* Set the FTP PORT string (interface name, named or numerical IP address) +- Use i.e '-' to use default address. */ +- CINIT(FTPPORT, OBJECTPOINT, 17), +- +- /* Set the User-Agent string (examined by some CGIs) */ +- CINIT(USERAGENT, OBJECTPOINT, 18), +- +- /* If the download receives less than "low speed limit" bytes/second +- * during "low speed time" seconds, the operations is aborted. +- * You could i.e if you have a pretty high speed connection, abort if +- * it is less than 2000 bytes/sec during 20 seconds. +- */ +- +- /* Set the "low speed limit" */ +- CINIT(LOW_SPEED_LIMIT, LONG, 19), +- +- /* Set the "low speed time" */ +- CINIT(LOW_SPEED_TIME, LONG, 20), +- +- /* Set the continuation offset. +- * +- * Note there is also a _LARGE version of this key which uses +- * off_t types, allowing for large file offsets on platforms which +- * use larger-than-32-bit off_t's. Look below for RESUME_FROM_LARGE. +- */ +- CINIT(RESUME_FROM, LONG, 21), +- +- /* Set cookie in request: */ +- CINIT(COOKIE, OBJECTPOINT, 22), +- +- /* This points to a linked list of headers, struct curl_slist kind */ +- CINIT(HTTPHEADER, OBJECTPOINT, 23), +- +- /* This points to a linked list of post entries, struct curl_httppost */ +- CINIT(HTTPPOST, OBJECTPOINT, 24), +- +- /* name of the file keeping your private SSL-certificate */ +- CINIT(SSLCERT, OBJECTPOINT, 25), +- +- /* password for the SSL or SSH private key */ +- CINIT(KEYPASSWD, OBJECTPOINT, 26), +- +- /* send TYPE parameter? */ +- CINIT(CRLF, LONG, 27), +- +- /* send linked-list of QUOTE commands */ +- CINIT(QUOTE, OBJECTPOINT, 28), +- +- /* send FILE * or void * to store headers to, if you use a callback it +- is simply passed to the callback unmodified */ +- CINIT(WRITEHEADER, OBJECTPOINT, 29), +- +- /* point to a file to read the initial cookies from, also enables +- "cookie awareness" */ +- CINIT(COOKIEFILE, OBJECTPOINT, 31), +- +- /* What version to specifically try to use. +- See CURL_SSLVERSION defines below. */ +- CINIT(SSLVERSION, LONG, 32), +- +- /* What kind of HTTP time condition to use, see defines */ +- CINIT(TIMECONDITION, LONG, 33), +- +- /* Time to use with the above condition. Specified in number of seconds +- since 1 Jan 1970 */ +- CINIT(TIMEVALUE, LONG, 34), +- +- /* 35 = OBSOLETE */ +- +- /* Custom request, for customizing the get command like +- HTTP: DELETE, TRACE and others +- FTP: to use a different list command +- */ +- CINIT(CUSTOMREQUEST, OBJECTPOINT, 36), +- +- /* HTTP request, for odd commands like DELETE, TRACE and others */ +- CINIT(STDERR, OBJECTPOINT, 37), +- +- /* 38 is not used */ +- +- /* send linked-list of post-transfer QUOTE commands */ +- CINIT(POSTQUOTE, OBJECTPOINT, 39), +- +- /* Pass a pointer to string of the output using full variable-replacement +- as described elsewhere. */ +- CINIT(WRITEINFO, OBJECTPOINT, 40), +- +- CINIT(VERBOSE, LONG, 41), /* talk a lot */ +- CINIT(HEADER, LONG, 42), /* throw the header out too */ +- CINIT(NOPROGRESS, LONG, 43), /* shut off the progress meter */ +- CINIT(NOBODY, LONG, 44), /* use HEAD to get http document */ +- CINIT(FAILONERROR, LONG, 45), /* no output on http error codes >= 300 */ +- CINIT(UPLOAD, LONG, 46), /* this is an upload */ +- CINIT(POST, LONG, 47), /* HTTP POST method */ +- CINIT(DIRLISTONLY, LONG, 48), /* return bare names when listing directories */ +- +- CINIT(APPEND, LONG, 50), /* Append instead of overwrite on upload! */ +- +- /* Specify whether to read the user+password from the .netrc or the URL. +- * This must be one of the CURL_NETRC_* enums below. */ +- CINIT(NETRC, LONG, 51), +- +- CINIT(FOLLOWLOCATION, LONG, 52), /* use Location: Luke! */ +- +- CINIT(TRANSFERTEXT, LONG, 53), /* transfer data in text/ASCII format */ +- CINIT(PUT, LONG, 54), /* HTTP PUT */ +- +- /* 55 = OBSOLETE */ +- +- /* Function that will be called instead of the internal progress display +- * function. This function should be defined as the curl_progress_callback +- * prototype defines. */ +- CINIT(PROGRESSFUNCTION, FUNCTIONPOINT, 56), +- +- /* Data passed to the progress callback */ +- CINIT(PROGRESSDATA, OBJECTPOINT, 57), +- +- /* We want the referrer field set automatically when following locations */ +- CINIT(AUTOREFERER, LONG, 58), +- +- /* Port of the proxy, can be set in the proxy string as well with: +- "[host]:[port]" */ +- CINIT(PROXYPORT, LONG, 59), +- +- /* size of the POST input data, if strlen() is not good to use */ +- CINIT(POSTFIELDSIZE, LONG, 60), +- +- /* tunnel non-http operations through a HTTP proxy */ +- CINIT(HTTPPROXYTUNNEL, LONG, 61), +- +- /* Set the interface string to use as outgoing network interface */ +- CINIT(INTERFACE, OBJECTPOINT, 62), +- +- /* Set the krb4/5 security level, this also enables krb4/5 awareness. This +- * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string +- * is set but doesn't match one of these, 'private' will be used. */ +- CINIT(KRBLEVEL, OBJECTPOINT, 63), +- +- /* Set if we should verify the peer in ssl handshake, set 1 to verify. */ +- CINIT(SSL_VERIFYPEER, LONG, 64), +- +- /* The CApath or CAfile used to validate the peer certificate +- this option is used only if SSL_VERIFYPEER is true */ +- CINIT(CAINFO, OBJECTPOINT, 65), +- +- /* 66 = OBSOLETE */ +- /* 67 = OBSOLETE */ +- +- /* Maximum number of http redirects to follow */ +- CINIT(MAXREDIRS, LONG, 68), +- +- /* Pass a long set to 1 to get the date of the requested document (if +- possible)! Pass a zero to shut it off. */ +- CINIT(FILETIME, LONG, 69), +- +- /* This points to a linked list of telnet options */ +- CINIT(TELNETOPTIONS, OBJECTPOINT, 70), +- +- /* Max amount of cached alive connections */ +- CINIT(MAXCONNECTS, LONG, 71), +- +- /* What policy to use when closing connections when the cache is filled +- up */ +- CINIT(CLOSEPOLICY, LONG, 72), +- +- /* 73 = OBSOLETE */ +- +- /* Set to explicitly use a new connection for the upcoming transfer. +- Do not use this unless you're absolutely sure of this, as it makes the +- operation slower and is less friendly for the network. */ +- CINIT(FRESH_CONNECT, LONG, 74), +- +- /* Set to explicitly forbid the upcoming transfer's connection to be re-used +- when done. Do not use this unless you're absolutely sure of this, as it +- makes the operation slower and is less friendly for the network. */ +- CINIT(FORBID_REUSE, LONG, 75), +- +- /* Set to a file name that contains random data for libcurl to use to +- seed the random engine when doing SSL connects. */ +- CINIT(RANDOM_FILE, OBJECTPOINT, 76), +- +- /* Set to the Entropy Gathering Daemon socket pathname */ +- CINIT(EGDSOCKET, OBJECTPOINT, 77), +- +- /* Time-out connect operations after this amount of seconds, if connects +- are OK within this time, then fine... This only aborts the connect +- phase. [Only works on unix-style/SIGALRM operating systems] */ +- CINIT(CONNECTTIMEOUT, LONG, 78), +- +- /* Function that will be called to store headers (instead of fwrite). The +- * parameters will use fwrite() syntax, make sure to follow them. */ +- CINIT(HEADERFUNCTION, FUNCTIONPOINT, 79), +- +- /* Set this to force the HTTP request to get back to GET. Only really usable +- if POST, PUT or a custom request have been used first. +- */ +- CINIT(HTTPGET, LONG, 80), +- +- /* Set if we should verify the Common name from the peer certificate in ssl +- * handshake, set 1 to check existence, 2 to ensure that it matches the +- * provided hostname. */ +- CINIT(SSL_VERIFYHOST, LONG, 81), +- +- /* Specify which file name to write all known cookies in after completed +- operation. Set file name to "-" (dash) to make it go to stdout. */ +- CINIT(COOKIEJAR, OBJECTPOINT, 82), +- +- /* Specify which SSL ciphers to use */ +- CINIT(SSL_CIPHER_LIST, OBJECTPOINT, 83), +- +- /* Specify which HTTP version to use! This must be set to one of the +- CURL_HTTP_VERSION* enums set below. */ +- CINIT(HTTP_VERSION, LONG, 84), +- +- /* Specifically switch on or off the FTP engine's use of the EPSV command. By +- default, that one will always be attempted before the more traditional +- PASV command. */ +- CINIT(FTP_USE_EPSV, LONG, 85), +- +- /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */ +- CINIT(SSLCERTTYPE, OBJECTPOINT, 86), +- +- /* name of the file keeping your private SSL-key */ +- CINIT(SSLKEY, OBJECTPOINT, 87), +- +- /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */ +- CINIT(SSLKEYTYPE, OBJECTPOINT, 88), +- +- /* crypto engine for the SSL-sub system */ +- CINIT(SSLENGINE, OBJECTPOINT, 89), +- +- /* set the crypto engine for the SSL-sub system as default +- the param has no meaning... +- */ +- CINIT(SSLENGINE_DEFAULT, LONG, 90), +- +- /* Non-zero value means to use the global dns cache */ +- CINIT(DNS_USE_GLOBAL_CACHE, LONG, 91), /* To become OBSOLETE soon */ +- +- /* DNS cache timeout */ +- CINIT(DNS_CACHE_TIMEOUT, LONG, 92), +- +- /* send linked-list of pre-transfer QUOTE commands */ +- CINIT(PREQUOTE, OBJECTPOINT, 93), +- +- /* set the debug function */ +- CINIT(DEBUGFUNCTION, FUNCTIONPOINT, 94), +- +- /* set the data for the debug function */ +- CINIT(DEBUGDATA, OBJECTPOINT, 95), +- +- /* mark this as start of a cookie session */ +- CINIT(COOKIESESSION, LONG, 96), +- +- /* The CApath directory used to validate the peer certificate +- this option is used only if SSL_VERIFYPEER is true */ +- CINIT(CAPATH, OBJECTPOINT, 97), +- +- /* Instruct libcurl to use a smaller receive buffer */ +- CINIT(BUFFERSIZE, LONG, 98), +- +- /* Instruct libcurl to not use any signal/alarm handlers, even when using +- timeouts. This option is useful for multi-threaded applications. +- See libcurl-the-guide for more background information. */ +- CINIT(NOSIGNAL, LONG, 99), +- +- /* Provide a CURLShare for mutexing non-ts data */ +- CINIT(SHARE, OBJECTPOINT, 100), +- +- /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default), +- CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5. */ +- CINIT(PROXYTYPE, LONG, 101), +- +- /* Set the Accept-Encoding string. Use this to tell a server you would like +- the response to be compressed. */ +- CINIT(ENCODING, OBJECTPOINT, 102), +- +- /* Set pointer to private data */ +- CINIT(PRIVATE, OBJECTPOINT, 103), +- +- /* Set aliases for HTTP 200 in the HTTP Response header */ +- CINIT(HTTP200ALIASES, OBJECTPOINT, 104), +- +- /* Continue to send authentication (user+password) when following locations, +- even when hostname changed. This can potentially send off the name +- and password to whatever host the server decides. */ +- CINIT(UNRESTRICTED_AUTH, LONG, 105), +- +- /* Specifically switch on or off the FTP engine's use of the EPRT command ( it +- also disables the LPRT attempt). By default, those ones will always be +- attempted before the good old traditional PORT command. */ +- CINIT(FTP_USE_EPRT, LONG, 106), +- +- /* Set this to a bitmask value to enable the particular authentications +- methods you like. Use this in combination with CURLOPT_USERPWD. +- Note that setting multiple bits may cause extra network round-trips. */ +- CINIT(HTTPAUTH, LONG, 107), +- +- /* Set the ssl context callback function, currently only for OpenSSL ssl_ctx +- in second argument. The function must be matching the +- curl_ssl_ctx_callback proto. */ +- CINIT(SSL_CTX_FUNCTION, FUNCTIONPOINT, 108), +- +- /* Set the userdata for the ssl context callback function's third +- argument */ +- CINIT(SSL_CTX_DATA, OBJECTPOINT, 109), +- +- /* FTP Option that causes missing dirs to be created on the remote server. +- In 7.19.4 we introduced the convenience enums for this option using the +- CURLFTP_CREATE_DIR prefix. +- */ +- CINIT(FTP_CREATE_MISSING_DIRS, LONG, 110), +- +- /* Set this to a bitmask value to enable the particular authentications +- methods you like. Use this in combination with CURLOPT_PROXYUSERPWD. +- Note that setting multiple bits may cause extra network round-trips. */ +- CINIT(PROXYAUTH, LONG, 111), +- +- /* FTP option that changes the timeout, in seconds, associated with +- getting a response. This is different from transfer timeout time and +- essentially places a demand on the FTP server to acknowledge commands +- in a timely manner. */ +- CINIT(FTP_RESPONSE_TIMEOUT, LONG, 112), +- +- /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to +- tell libcurl to resolve names to those IP versions only. This only has +- affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */ +- CINIT(IPRESOLVE, LONG, 113), +- +- /* Set this option to limit the size of a file that will be downloaded from +- an HTTP or FTP server. +- +- Note there is also _LARGE version which adds large file support for +- platforms which have larger off_t sizes. See MAXFILESIZE_LARGE below. */ +- CINIT(MAXFILESIZE, LONG, 114), +- +- /* See the comment for INFILESIZE above, but in short, specifies +- * the size of the file being uploaded. -1 means unknown. +- */ +- CINIT(INFILESIZE_LARGE, OFF_T, 115), +- +- /* Sets the continuation offset. There is also a LONG version of this; +- * look above for RESUME_FROM. +- */ +- CINIT(RESUME_FROM_LARGE, OFF_T, 116), +- +- /* Sets the maximum size of data that will be downloaded from +- * an HTTP or FTP server. See MAXFILESIZE above for the LONG version. +- */ +- CINIT(MAXFILESIZE_LARGE, OFF_T, 117), +- +- /* Set this option to the file name of your .netrc file you want libcurl +- to parse (using the CURLOPT_NETRC option). If not set, libcurl will do +- a poor attempt to find the user's home directory and check for a .netrc +- file in there. */ +- CINIT(NETRC_FILE, OBJECTPOINT, 118), +- +- /* Enable SSL/TLS for FTP, pick one of: +- CURLFTPSSL_TRY - try using SSL, proceed anyway otherwise +- CURLFTPSSL_CONTROL - SSL for the control connection or fail +- CURLFTPSSL_ALL - SSL for all communication or fail +- */ +- CINIT(USE_SSL, LONG, 119), +- +- /* The _LARGE version of the standard POSTFIELDSIZE option */ +- CINIT(POSTFIELDSIZE_LARGE, OFF_T, 120), +- +- /* Enable/disable the TCP Nagle algorithm */ +- CINIT(TCP_NODELAY, LONG, 121), +- +- /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ +- /* 123 OBSOLETE. Gone in 7.16.0 */ +- /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ +- /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ +- /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ +- /* 127 OBSOLETE. Gone in 7.16.0 */ +- /* 128 OBSOLETE. Gone in 7.16.0 */ +- +- /* When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option +- can be used to change libcurl's default action which is to first try +- "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK +- response has been received. +- +- Available parameters are: +- CURLFTPAUTH_DEFAULT - let libcurl decide +- CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS +- CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL +- */ +- CINIT(FTPSSLAUTH, LONG, 129), +- +- CINIT(IOCTLFUNCTION, FUNCTIONPOINT, 130), +- CINIT(IOCTLDATA, OBJECTPOINT, 131), +- +- /* 132 OBSOLETE. Gone in 7.16.0 */ +- /* 133 OBSOLETE. Gone in 7.16.0 */ +- +- /* zero terminated string for pass on to the FTP server when asked for +- "account" info */ +- CINIT(FTP_ACCOUNT, OBJECTPOINT, 134), +- +- /* feed cookies into cookie engine */ +- CINIT(COOKIELIST, OBJECTPOINT, 135), +- +- /* ignore Content-Length */ +- CINIT(IGNORE_CONTENT_LENGTH, LONG, 136), +- +- /* Set to non-zero to skip the IP address received in a 227 PASV FTP server +- response. Typically used for FTP-SSL purposes but is not restricted to +- that. libcurl will then instead use the same IP address it used for the +- control connection. */ +- CINIT(FTP_SKIP_PASV_IP, LONG, 137), +- +- /* Select "file method" to use when doing FTP, see the curl_ftpmethod +- above. */ +- CINIT(FTP_FILEMETHOD, LONG, 138), +- +- /* Local port number to bind the socket to */ +- CINIT(LOCALPORT, LONG, 139), +- +- /* Number of ports to try, including the first one set with LOCALPORT. +- Thus, setting it to 1 will make no additional attempts but the first. +- */ +- CINIT(LOCALPORTRANGE, LONG, 140), +- +- /* no transfer, set up connection and let application use the socket by +- extracting it with CURLINFO_LASTSOCKET */ +- CINIT(CONNECT_ONLY, LONG, 141), +- +- /* Function that will be called to convert from the +- network encoding (instead of using the iconv calls in libcurl) */ +- CINIT(CONV_FROM_NETWORK_FUNCTION, FUNCTIONPOINT, 142), +- +- /* Function that will be called to convert to the +- network encoding (instead of using the iconv calls in libcurl) */ +- CINIT(CONV_TO_NETWORK_FUNCTION, FUNCTIONPOINT, 143), +- +- /* Function that will be called to convert from UTF8 +- (instead of using the iconv calls in libcurl) +- Note that this is used only for SSL certificate processing */ +- CINIT(CONV_FROM_UTF8_FUNCTION, FUNCTIONPOINT, 144), +- +- /* if the connection proceeds too quickly then need to slow it down */ +- /* limit-rate: maximum number of bytes per second to send or receive */ +- CINIT(MAX_SEND_SPEED_LARGE, OFF_T, 145), +- CINIT(MAX_RECV_SPEED_LARGE, OFF_T, 146), +- +- /* Pointer to command string to send if USER/PASS fails. */ +- CINIT(FTP_ALTERNATIVE_TO_USER, OBJECTPOINT, 147), +- +- /* callback function for setting socket options */ +- CINIT(SOCKOPTFUNCTION, FUNCTIONPOINT, 148), +- CINIT(SOCKOPTDATA, OBJECTPOINT, 149), +- +- /* set to 0 to disable session ID re-use for this transfer, default is +- enabled (== 1) */ +- CINIT(SSL_SESSIONID_CACHE, LONG, 150), +- +- /* allowed SSH authentication methods */ +- CINIT(SSH_AUTH_TYPES, LONG, 151), +- +- /* Used by scp/sftp to do public/private key authentication */ +- CINIT(SSH_PUBLIC_KEYFILE, OBJECTPOINT, 152), +- CINIT(SSH_PRIVATE_KEYFILE, OBJECTPOINT, 153), +- +- /* Send CCC (Clear Command Channel) after authentication */ +- CINIT(FTP_SSL_CCC, LONG, 154), +- +- /* Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */ +- CINIT(TIMEOUT_MS, LONG, 155), +- CINIT(CONNECTTIMEOUT_MS, LONG, 156), +- +- /* set to zero to disable the libcurl's decoding and thus pass the raw body +- data to the application even when it is encoded/compressed */ +- CINIT(HTTP_TRANSFER_DECODING, LONG, 157), +- CINIT(HTTP_CONTENT_DECODING, LONG, 158), +- +- /* Permission used when creating new files and directories on the remote +- server for protocols that support it, SFTP/SCP/FILE */ +- CINIT(NEW_FILE_PERMS, LONG, 159), +- CINIT(NEW_DIRECTORY_PERMS, LONG, 160), +- +- /* Set the behaviour of POST when redirecting. Values must be set to one +- of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */ +- CINIT(POSTREDIR, LONG, 161), +- +- /* used by scp/sftp to verify the host's public key */ +- CINIT(SSH_HOST_PUBLIC_KEY_MD5, OBJECTPOINT, 162), +- +- /* Callback function for opening socket (instead of socket(2)). Optionally, +- callback is able change the address or refuse to connect returning +- CURL_SOCKET_BAD. The callback should have type +- curl_opensocket_callback */ +- CINIT(OPENSOCKETFUNCTION, FUNCTIONPOINT, 163), +- CINIT(OPENSOCKETDATA, OBJECTPOINT, 164), +- +- /* POST volatile input fields. */ +- CINIT(COPYPOSTFIELDS, OBJECTPOINT, 165), +- +- /* set transfer mode (;type=) when doing FTP via an HTTP proxy */ +- CINIT(PROXY_TRANSFER_MODE, LONG, 166), +- +- /* Callback function for seeking in the input stream */ +- CINIT(SEEKFUNCTION, FUNCTIONPOINT, 167), +- CINIT(SEEKDATA, OBJECTPOINT, 168), +- +- /* CRL file */ +- CINIT(CRLFILE, OBJECTPOINT, 169), +- +- /* Issuer certificate */ +- CINIT(ISSUERCERT, OBJECTPOINT, 170), +- +- /* (IPv6) Address scope */ +- CINIT(ADDRESS_SCOPE, LONG, 171), +- +- /* Collect certificate chain info and allow it to get retrievable with +- CURLINFO_CERTINFO after the transfer is complete. (Unfortunately) only +- working with OpenSSL-powered builds. */ +- CINIT(CERTINFO, LONG, 172), +- +- /* "name" and "pwd" to use when fetching. */ +- CINIT(USERNAME, OBJECTPOINT, 173), +- CINIT(PASSWORD, OBJECTPOINT, 174), +- +- /* "name" and "pwd" to use with Proxy when fetching. */ +- CINIT(PROXYUSERNAME, OBJECTPOINT, 175), +- CINIT(PROXYPASSWORD, OBJECTPOINT, 176), +- +- /* Comma separated list of hostnames defining no-proxy zones. These should +- match both hostnames directly, and hostnames within a domain. For +- example, local.com will match local.com and www.local.com, but NOT +- notlocal.com or www.notlocal.com. For compatibility with other +- implementations of this, .local.com will be considered to be the same as +- local.com. A single * is the only valid wildcard, and effectively +- disables the use of proxy. */ +- CINIT(NOPROXY, OBJECTPOINT, 177), +- +- /* block size for TFTP transfers */ +- CINIT(TFTP_BLKSIZE, LONG, 178), +- +- /* Socks Service */ +- CINIT(SOCKS5_GSSAPI_SERVICE, OBJECTPOINT, 179), +- +- /* Socks Service */ +- CINIT(SOCKS5_GSSAPI_NEC, LONG, 180), +- +- /* set the bitmask for the protocols that are allowed to be used for the +- transfer, which thus helps the app which takes URLs from users or other +- external inputs and want to restrict what protocol(s) to deal +- with. Defaults to CURLPROTO_ALL. */ +- CINIT(PROTOCOLS, LONG, 181), +- +- /* set the bitmask for the protocols that libcurl is allowed to follow to, +- as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs +- to be set in both bitmasks to be allowed to get redirected to. Defaults +- to all protocols except FILE and SCP. */ +- CINIT(REDIR_PROTOCOLS, LONG, 182), +- +- /* set the SSH knownhost file name to use */ +- CINIT(SSH_KNOWNHOSTS, OBJECTPOINT, 183), +- +- /* set the SSH host key callback, must point to a curl_sshkeycallback +- function */ +- CINIT(SSH_KEYFUNCTION, FUNCTIONPOINT, 184), +- +- /* set the SSH host key callback custom pointer */ +- CINIT(SSH_KEYDATA, OBJECTPOINT, 185), +- +- CURLOPT_LASTENTRY /* the last unused */ +-} CURLoption; +- +-#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all +- the obsolete stuff removed! */ +- +-/* Backwards compatibility with older names */ +-/* These are scheduled to disappear by 2011 */ +- +-/* This was added in version 7.19.1 */ +-#define CURLOPT_POST301 CURLOPT_POSTREDIR +- +-/* These are scheduled to disappear by 2009 */ +- +-/* The following were added in 7.17.0 */ +-#define CURLOPT_SSLKEYPASSWD CURLOPT_KEYPASSWD +-#define CURLOPT_FTPAPPEND CURLOPT_APPEND +-#define CURLOPT_FTPLISTONLY CURLOPT_DIRLISTONLY +-#define CURLOPT_FTP_SSL CURLOPT_USE_SSL +- +-/* The following were added earlier */ +- +-#define CURLOPT_SSLCERTPASSWD CURLOPT_KEYPASSWD +-#define CURLOPT_KRB4LEVEL CURLOPT_KRBLEVEL +- +-#else +-/* This is set if CURL_NO_OLDIES is defined at compile-time */ +-#undef CURLOPT_DNS_USE_GLOBAL_CACHE /* soon obsolete */ +-#endif +- +- +- /* Below here follows defines for the CURLOPT_IPRESOLVE option. If a host +- name resolves addresses using more than one IP protocol version, this +- option might be handy to force libcurl to use a specific IP version. */ +-#define CURL_IPRESOLVE_WHATEVER 0 /* default, resolves addresses to all IP +- versions that your system allows */ +-#define CURL_IPRESOLVE_V4 1 /* resolve to ipv4 addresses */ +-#define CURL_IPRESOLVE_V6 2 /* resolve to ipv6 addresses */ +- +- /* three convenient "aliases" that follow the name scheme better */ +-#define CURLOPT_WRITEDATA CURLOPT_FILE +-#define CURLOPT_READDATA CURLOPT_INFILE +-#define CURLOPT_HEADERDATA CURLOPT_WRITEHEADER +- +- /* These enums are for use with the CURLOPT_HTTP_VERSION option. */ +-enum { +- CURL_HTTP_VERSION_NONE, /* setting this means we don't care, and that we'd +- like the library to choose the best possible +- for us! */ +- CURL_HTTP_VERSION_1_0, /* please use HTTP 1.0 in the request */ +- CURL_HTTP_VERSION_1_1, /* please use HTTP 1.1 in the request */ +- +- CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */ +-}; +- +- /* These enums are for use with the CURLOPT_NETRC option. */ +-enum CURL_NETRC_OPTION { +- CURL_NETRC_IGNORED, /* The .netrc will never be read. +- * This is the default. */ +- CURL_NETRC_OPTIONAL, /* A user:password in the URL will be preferred +- * to one in the .netrc. */ +- CURL_NETRC_REQUIRED, /* A user:password in the URL will be ignored. +- * Unless one is set programmatically, the .netrc +- * will be queried. */ +- CURL_NETRC_LAST +-}; +- +-enum { +- CURL_SSLVERSION_DEFAULT, +- CURL_SSLVERSION_TLSv1, +- CURL_SSLVERSION_SSLv2, +- CURL_SSLVERSION_SSLv3, +- +- CURL_SSLVERSION_LAST /* never use, keep last */ +-}; +- +-/* symbols to use with CURLOPT_POSTREDIR. +- CURL_REDIR_POST_301 and CURL_REDIR_POST_302 can be bitwise ORed so that +- CURL_REDIR_POST_301 | CURL_REDIR_POST_302 == CURL_REDIR_POST_ALL */ +- +-#define CURL_REDIR_GET_ALL 0 +-#define CURL_REDIR_POST_301 1 +-#define CURL_REDIR_POST_302 2 +-#define CURL_REDIR_POST_ALL (CURL_REDIR_POST_301|CURL_REDIR_POST_302) +- +-typedef enum { +- CURL_TIMECOND_NONE, +- +- CURL_TIMECOND_IFMODSINCE, +- CURL_TIMECOND_IFUNMODSINCE, +- CURL_TIMECOND_LASTMOD, +- +- CURL_TIMECOND_LAST +-} curl_TimeCond; +- +- +-/* curl_strequal() and curl_strnequal() are subject for removal in a future +- libcurl, see lib/README.curlx for details */ +-CURL_EXTERN int (curl_strequal)(const char *s1, const char *s2); +-CURL_EXTERN int (curl_strnequal)(const char *s1, const char *s2, size_t n); +- +-/* name is uppercase CURLFORM_ */ +-#ifdef CFINIT +-#undef CFINIT +-#endif +- +-#ifdef CURL_ISOCPP +-#define CFINIT(name) CURLFORM_ ## name +-#else +-/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ +-#define CFINIT(name) CURLFORM_/**/name +-#endif +- +-typedef enum { +- CFINIT(NOTHING), /********* the first one is unused ************/ +- +- /* */ +- CFINIT(COPYNAME), +- CFINIT(PTRNAME), +- CFINIT(NAMELENGTH), +- CFINIT(COPYCONTENTS), +- CFINIT(PTRCONTENTS), +- CFINIT(CONTENTSLENGTH), +- CFINIT(FILECONTENT), +- CFINIT(ARRAY), +- CFINIT(OBSOLETE), +- CFINIT(FILE), +- +- CFINIT(BUFFER), +- CFINIT(BUFFERPTR), +- CFINIT(BUFFERLENGTH), +- +- CFINIT(CONTENTTYPE), +- CFINIT(CONTENTHEADER), +- CFINIT(FILENAME), +- CFINIT(END), +- CFINIT(OBSOLETE2), +- +- CFINIT(STREAM), +- +- CURLFORM_LASTENTRY /* the last unused */ +-} CURLformoption; +- +-#undef CFINIT /* done */ +- +-/* structure to be used as parameter for CURLFORM_ARRAY */ +-struct curl_forms { +- CURLformoption option; +- const char *value; +-}; +- +-/* use this for multipart formpost building */ +-/* Returns code for curl_formadd() +- * +- * Returns: +- * CURL_FORMADD_OK on success +- * CURL_FORMADD_MEMORY if the FormInfo allocation fails +- * CURL_FORMADD_OPTION_TWICE if one option is given twice for one Form +- * CURL_FORMADD_NULL if a null pointer was given for a char +- * CURL_FORMADD_MEMORY if the allocation of a FormInfo struct failed +- * CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used +- * CURL_FORMADD_INCOMPLETE if the some FormInfo is not complete (or error) +- * CURL_FORMADD_MEMORY if a curl_httppost struct cannot be allocated +- * CURL_FORMADD_MEMORY if some allocation for string copying failed. +- * CURL_FORMADD_ILLEGAL_ARRAY if an illegal option is used in an array +- * +- ***************************************************************************/ +-typedef enum { +- CURL_FORMADD_OK, /* first, no error */ +- +- CURL_FORMADD_MEMORY, +- CURL_FORMADD_OPTION_TWICE, +- CURL_FORMADD_NULL, +- CURL_FORMADD_UNKNOWN_OPTION, +- CURL_FORMADD_INCOMPLETE, +- CURL_FORMADD_ILLEGAL_ARRAY, +- CURL_FORMADD_DISABLED, /* libcurl was built with this disabled */ +- +- CURL_FORMADD_LAST /* last */ +-} CURLFORMcode; +- +-/* +- * NAME curl_formadd() +- * +- * DESCRIPTION +- * +- * Pretty advanced function for building multi-part formposts. Each invoke +- * adds one part that together construct a full post. Then use +- * CURLOPT_HTTPPOST to send it off to libcurl. +- */ +-CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost, +- struct curl_httppost **last_post, +- ...); +- +-/* +- * callback function for curl_formget() +- * The void *arg pointer will be the one passed as second argument to +- * curl_formget(). +- * The character buffer passed to it must not be freed. +- * Should return the buffer length passed to it as the argument "len" on +- * success. +- */ +-typedef size_t (*curl_formget_callback)(void *arg, const char *buf, size_t len); +- +-/* +- * NAME curl_formget() +- * +- * DESCRIPTION +- * +- * Serialize a curl_httppost struct built with curl_formadd(). +- * Accepts a void pointer as second argument which will be passed to +- * the curl_formget_callback function. +- * Returns 0 on success. +- */ +-CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg, +- curl_formget_callback append); +-/* +- * NAME curl_formfree() +- * +- * DESCRIPTION +- * +- * Free a multipart formpost previously built with curl_formadd(). +- */ +-CURL_EXTERN void curl_formfree(struct curl_httppost *form); +- +-/* +- * NAME curl_getenv() +- * +- * DESCRIPTION +- * +- * Returns a malloc()'ed string that MUST be curl_free()ed after usage is +- * complete. DEPRECATED - see lib/README.curlx +- */ +-CURL_EXTERN char *curl_getenv(const char *variable); +- +-/* +- * NAME curl_version() +- * +- * DESCRIPTION +- * +- * Returns a static ascii string of the libcurl version. +- */ +-CURL_EXTERN char *curl_version(void); +- +-/* +- * NAME curl_easy_escape() +- * +- * DESCRIPTION +- * +- * Escapes URL strings (converts all letters consider illegal in URLs to their +- * %XX versions). This function returns a new allocated string or NULL if an +- * error occurred. +- */ +-CURL_EXTERN char *curl_easy_escape(CURL *handle, +- const char *string, +- int length); +- +-/* the previous version: */ +-CURL_EXTERN char *curl_escape(const char *string, +- int length); +- +- +-/* +- * NAME curl_easy_unescape() +- * +- * DESCRIPTION +- * +- * Unescapes URL encoding in strings (converts all %XX codes to their 8bit +- * versions). This function returns a new allocated string or NULL if an error +- * occurred. +- * Conversion Note: On non-ASCII platforms the ASCII %XX codes are +- * converted into the host encoding. +- */ +-CURL_EXTERN char *curl_easy_unescape(CURL *handle, +- const char *string, +- int length, +- int *outlength); +- +-/* the previous version */ +-CURL_EXTERN char *curl_unescape(const char *string, +- int length); +- +-/* +- * NAME curl_free() +- * +- * DESCRIPTION +- * +- * Provided for de-allocation in the same translation unit that did the +- * allocation. Added in libcurl 7.10 +- */ +-CURL_EXTERN void curl_free(void *p); +- +-/* +- * NAME curl_global_init() +- * +- * DESCRIPTION +- * +- * curl_global_init() should be invoked exactly once for each application that +- * uses libcurl and before any call of other libcurl functions. +- * +- * This function is not thread-safe! +- */ +-CURL_EXTERN CURLcode curl_global_init(long flags); +- +-/* +- * NAME curl_global_init_mem() +- * +- * DESCRIPTION +- * +- * curl_global_init() or curl_global_init_mem() should be invoked exactly once +- * for each application that uses libcurl. This function can be used to +- * initialize libcurl and set user defined memory management callback +- * functions. Users can implement memory management routines to check for +- * memory leaks, check for mis-use of the curl library etc. User registered +- * callback routines with be invoked by this library instead of the system +- * memory management routines like malloc, free etc. +- */ +-CURL_EXTERN CURLcode curl_global_init_mem(long flags, +- curl_malloc_callback m, +- curl_free_callback f, +- curl_realloc_callback r, +- curl_strdup_callback s, +- curl_calloc_callback c); +- +-/* +- * NAME curl_global_cleanup() +- * +- * DESCRIPTION +- * +- * curl_global_cleanup() should be invoked exactly once for each application +- * that uses libcurl +- */ +-CURL_EXTERN void curl_global_cleanup(void); +- +-/* linked-list structure for the CURLOPT_QUOTE option (and other) */ +-struct curl_slist { +- char *data; +- struct curl_slist *next; +-}; +- +-/* +- * NAME curl_slist_append() +- * +- * DESCRIPTION +- * +- * Appends a string to a linked list. If no list exists, it will be created +- * first. Returns the new list, after appending. +- */ +-CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *, +- const char *); +- +-/* +- * NAME curl_slist_free_all() +- * +- * DESCRIPTION +- * +- * free a previously built curl_slist. +- */ +-CURL_EXTERN void curl_slist_free_all(struct curl_slist *); +- +-/* +- * NAME curl_getdate() +- * +- * DESCRIPTION +- * +- * Returns the time, in seconds since 1 Jan 1970 of the time string given in +- * the first argument. The time argument in the second parameter is unused +- * and should be set to NULL. +- */ +-CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused); +- +-/* info about the certificate chain, only for OpenSSL builds. Asked +- for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */ +-struct curl_certinfo { +- int num_of_certs; /* number of certificates with information */ +- struct curl_slist **certinfo; /* for each index in this array, there's a +- linked list with textual information in the +- format "name: value" */ +-}; +- +-#define CURLINFO_STRING 0x100000 +-#define CURLINFO_LONG 0x200000 +-#define CURLINFO_DOUBLE 0x300000 +-#define CURLINFO_SLIST 0x400000 +-#define CURLINFO_MASK 0x0fffff +-#define CURLINFO_TYPEMASK 0xf00000 +- +-typedef enum { +- CURLINFO_NONE, /* first, never use this */ +- CURLINFO_EFFECTIVE_URL = CURLINFO_STRING + 1, +- CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2, +- CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE + 3, +- CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4, +- CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5, +- CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6, +- CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7, +- CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8, +- CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9, +- CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10, +- CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11, +- CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12, +- CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13, +- CURLINFO_FILETIME = CURLINFO_LONG + 14, +- CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15, +- CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16, +- CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17, +- CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18, +- CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19, +- CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20, +- CURLINFO_PRIVATE = CURLINFO_STRING + 21, +- CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG + 22, +- CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG + 23, +- CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG + 24, +- CURLINFO_OS_ERRNO = CURLINFO_LONG + 25, +- CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26, +- CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27, +- CURLINFO_COOKIELIST = CURLINFO_SLIST + 28, +- CURLINFO_LASTSOCKET = CURLINFO_LONG + 29, +- CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30, +- CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31, +- CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32, +- CURLINFO_APPCONNECT_TIME = CURLINFO_DOUBLE + 33, +- CURLINFO_CERTINFO = CURLINFO_SLIST + 34, +- CURLINFO_CONDITION_UNMET = CURLINFO_LONG + 35, +- /* Fill in new entries below here! */ +- +- CURLINFO_LASTONE = 35 +-} CURLINFO; +- +-/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as +- CURLINFO_HTTP_CODE */ +-#define CURLINFO_HTTP_CODE CURLINFO_RESPONSE_CODE +- +-typedef enum { +- CURLCLOSEPOLICY_NONE, /* first, never use this */ +- +- CURLCLOSEPOLICY_OLDEST, +- CURLCLOSEPOLICY_LEAST_RECENTLY_USED, +- CURLCLOSEPOLICY_LEAST_TRAFFIC, +- CURLCLOSEPOLICY_SLOWEST, +- CURLCLOSEPOLICY_CALLBACK, +- +- CURLCLOSEPOLICY_LAST /* last, never use this */ +-} curl_closepolicy; +- +-#define CURL_GLOBAL_SSL (1<<0) +-#define CURL_GLOBAL_WIN32 (1<<1) +-#define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32) +-#define CURL_GLOBAL_NOTHING 0 +-#define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL +- +- +-/***************************************************************************** +- * Setup defines, protos etc for the sharing stuff. +- */ +- +-/* Different data locks for a single share */ +-typedef enum { +- CURL_LOCK_DATA_NONE = 0, +- /* CURL_LOCK_DATA_SHARE is used internally to say that +- * the locking is just made to change the internal state of the share +- * itself. +- */ +- CURL_LOCK_DATA_SHARE, +- CURL_LOCK_DATA_COOKIE, +- CURL_LOCK_DATA_DNS, +- CURL_LOCK_DATA_SSL_SESSION, +- CURL_LOCK_DATA_CONNECT, +- CURL_LOCK_DATA_LAST +-} curl_lock_data; +- +-/* Different lock access types */ +-typedef enum { +- CURL_LOCK_ACCESS_NONE = 0, /* unspecified action */ +- CURL_LOCK_ACCESS_SHARED = 1, /* for read perhaps */ +- CURL_LOCK_ACCESS_SINGLE = 2, /* for write perhaps */ +- CURL_LOCK_ACCESS_LAST /* never use */ +-} curl_lock_access; +- +-typedef void (*curl_lock_function)(CURL *handle, +- curl_lock_data data, +- curl_lock_access locktype, +- void *userptr); +-typedef void (*curl_unlock_function)(CURL *handle, +- curl_lock_data data, +- void *userptr); +- +-typedef void CURLSH; +- +-typedef enum { +- CURLSHE_OK, /* all is fine */ +- CURLSHE_BAD_OPTION, /* 1 */ +- CURLSHE_IN_USE, /* 2 */ +- CURLSHE_INVALID, /* 3 */ +- CURLSHE_NOMEM, /* out of memory */ +- CURLSHE_LAST /* never use */ +-} CURLSHcode; +- +-typedef enum { +- CURLSHOPT_NONE, /* don't use */ +- CURLSHOPT_SHARE, /* specify a data type to share */ +- CURLSHOPT_UNSHARE, /* specify which data type to stop sharing */ +- CURLSHOPT_LOCKFUNC, /* pass in a 'curl_lock_function' pointer */ +- CURLSHOPT_UNLOCKFUNC, /* pass in a 'curl_unlock_function' pointer */ +- CURLSHOPT_USERDATA, /* pass in a user data pointer used in the lock/unlock +- callback functions */ +- CURLSHOPT_LAST /* never use */ +-} CURLSHoption; +- +-CURL_EXTERN CURLSH *curl_share_init(void); +-CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption option, ...); +-CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *); +- +-/**************************************************************************** +- * Structures for querying information about the curl library at runtime. +- */ +- +-typedef enum { +- CURLVERSION_FIRST, +- CURLVERSION_SECOND, +- CURLVERSION_THIRD, +- CURLVERSION_FOURTH, +- CURLVERSION_LAST /* never actually use this */ +-} CURLversion; +- +-/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by +- basically all programs ever that want to get version information. It is +- meant to be a built-in version number for what kind of struct the caller +- expects. If the struct ever changes, we redefine the NOW to another enum +- from above. */ +-#define CURLVERSION_NOW CURLVERSION_FOURTH +- +-typedef struct { +- CURLversion age; /* age of the returned struct */ +- const char *version; /* LIBCURL_VERSION */ +- unsigned int version_num; /* LIBCURL_VERSION_NUM */ +- const char *host; /* OS/host/cpu/machine when configured */ +- int features; /* bitmask, see defines below */ +- const char *ssl_version; /* human readable string */ +- long ssl_version_num; /* not used anymore, always 0 */ +- const char *libz_version; /* human readable string */ +- /* protocols is terminated by an entry with a NULL protoname */ +- const char * const *protocols; +- +- /* The fields below this were added in CURLVERSION_SECOND */ +- const char *ares; +- int ares_num; +- +- /* This field was added in CURLVERSION_THIRD */ +- const char *libidn; +- +- /* These field were added in CURLVERSION_FOURTH */ +- +- /* Same as '_libiconv_version' if built with HAVE_ICONV */ +- int iconv_ver_num; +- +- const char *libssh_version; /* human readable string */ +- +-} curl_version_info_data; +- +-#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ +-#define CURL_VERSION_KERBEROS4 (1<<1) /* kerberos auth is supported */ +-#define CURL_VERSION_SSL (1<<2) /* SSL options are present */ +-#define CURL_VERSION_LIBZ (1<<3) /* libz features are present */ +-#define CURL_VERSION_NTLM (1<<4) /* NTLM auth is supported */ +-#define CURL_VERSION_GSSNEGOTIATE (1<<5) /* Negotiate auth support */ +-#define CURL_VERSION_DEBUG (1<<6) /* built with debug capabilities */ +-#define CURL_VERSION_ASYNCHDNS (1<<7) /* asynchronous dns resolves */ +-#define CURL_VERSION_SPNEGO (1<<8) /* SPNEGO auth */ +-#define CURL_VERSION_LARGEFILE (1<<9) /* supports files bigger than 2GB */ +-#define CURL_VERSION_IDN (1<<10) /* International Domain Names support */ +-#define CURL_VERSION_SSPI (1<<11) /* SSPI is supported */ +-#define CURL_VERSION_CONV (1<<12) /* character conversions supported */ +-#define CURL_VERSION_CURLDEBUG (1<<13) /* debug memory tracking supported */ +- +-/* +- * NAME curl_version_info() +- * +- * DESCRIPTION +- * +- * This function returns a pointer to a static copy of the version info +- * struct. See above. +- */ +-CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion); +- +-/* +- * NAME curl_easy_strerror() +- * +- * DESCRIPTION +- * +- * The curl_easy_strerror function may be used to turn a CURLcode value +- * into the equivalent human readable error string. This is useful +- * for printing meaningful error messages. +- */ +-CURL_EXTERN const char *curl_easy_strerror(CURLcode); +- +-/* +- * NAME curl_share_strerror() +- * +- * DESCRIPTION +- * +- * The curl_share_strerror function may be used to turn a CURLSHcode value +- * into the equivalent human readable error string. This is useful +- * for printing meaningful error messages. +- */ +-CURL_EXTERN const char *curl_share_strerror(CURLSHcode); +- +-/* +- * NAME curl_easy_pause() +- * +- * DESCRIPTION +- * +- * The curl_easy_pause function pauses or unpauses transfers. Select the new +- * state by setting the bitmask, use the convenience defines below. +- * +- */ +-CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask); +- +-#define CURLPAUSE_RECV (1<<0) +-#define CURLPAUSE_RECV_CONT (0) +- +-#define CURLPAUSE_SEND (1<<2) +-#define CURLPAUSE_SEND_CONT (0) +- +-#define CURLPAUSE_ALL (CURLPAUSE_RECV|CURLPAUSE_SEND) +-#define CURLPAUSE_CONT (CURLPAUSE_RECV_CONT|CURLPAUSE_SEND_CONT) +- +-#ifdef __cplusplus +-} +-#endif +- +-/* unfortunately, the easy.h and multi.h include files need options and info +- stuff before they can be included! */ +-#include "easy.h" /* nothing in curl is fun without the easy stuff */ +-#include "multi.h" +- +-/* the typechecker doesn't work in C++ (yet) */ +-#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \ +- ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \ +- !defined(__cplusplus) && !defined(CURL_DISABLE_TYPECHECK) +-#include "typecheck-gcc.h" +-#else +-#if defined(__STDC__) && (__STDC__ >= 1) +-/* This preprocessor magic that replaces a call with the exact same call is +- only done to make sure application authors pass exactly three arguments +- to these functions. */ +-#define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param) +-#define curl_easy_getinfo(handle,info,arg) curl_easy_getinfo(handle,info,arg) +-#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) +-#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) +-#endif /* __STDC__ >= 1 */ +-#endif /* gcc >= 4.3 && !__cplusplus */ +- +-#endif /* __CURL_CURL_H */ +diff --git a/src/third_party/curl/curlbuild.h b/src/third_party/curl/curlbuild.h +deleted file mode 100644 +index 87d0c7b..0000000 +--- a/src/third_party/curl/curlbuild.h ++++ /dev/null +@@ -1,202 +0,0 @@ +-/* include/curl/curlbuild.h. Generated from curlbuild.h.in by configure. */ +-#ifndef __CURL_CURLBUILD_H +-#define __CURL_CURLBUILD_H +-/*************************************************************************** +- * _ _ ____ _ +- * Project ___| | | | _ \| | +- * / __| | | | |_) | | +- * | (__| |_| | _ <| |___ +- * \___|\___/|_| \_\_____| +- * +- * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al. +- * +- * This software is licensed as described in the file COPYING, which +- * you should have received as part of this distribution. The terms +- * are also available at http://curl.haxx.se/docs/copyright.html. +- * +- * You may opt to use, copy, modify, merge, publish, distribute and/or sell +- * copies of the Software, and permit persons to whom the Software is +- * furnished to do so, under the terms of the COPYING file. +- * +- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +- * KIND, either express or implied. +- * +- * $Id: curlbuild.h.in,v 1.8 2009-04-29 15:15:38 yangtse Exp $ +- ***************************************************************************/ +- +-/* ================================================================ */ +-/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ +-/* ================================================================ */ +- +-/* +- * NOTE 1: +- * ------- +- * +- * Nothing in this file is intended to be modified or adjusted by the +- * curl library user nor by the curl library builder. +- * +- * If you think that something actually needs to be changed, adjusted +- * or fixed in this file, then, report it on the libcurl development +- * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ +- * +- * This header file shall only export symbols which are 'curl' or 'CURL' +- * prefixed, otherwise public name space would be polluted. +- * +- * NOTE 2: +- * ------- +- * +- * Right now you might be staring at file include/curl/curlbuild.h.in or +- * at file include/curl/curlbuild.h, this is due to the following reason: +- * +- * On systems capable of running the configure script, the configure process +- * will overwrite the distributed include/curl/curlbuild.h file with one that +- * is suitable and specific to the library being configured and built, which +- * is generated from the include/curl/curlbuild.h.in template file. +- * +- */ +- +-/* ================================================================ */ +-/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ +-/* ================================================================ */ +- +-#ifdef CURL_SIZEOF_LONG +-# error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" +- Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined +-#endif +- +-#ifdef CURL_TYPEOF_CURL_SOCKLEN_T +-# error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" +- Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined +-#endif +- +-#ifdef CURL_SIZEOF_CURL_SOCKLEN_T +-# error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" +- Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined +-#endif +- +-#ifdef CURL_TYPEOF_CURL_OFF_T +-# error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" +- Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined +-#endif +- +-#ifdef CURL_FORMAT_CURL_OFF_T +-# error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" +- Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined +-#endif +- +-#ifdef CURL_FORMAT_CURL_OFF_TU +-# error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" +- Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined +-#endif +- +-#ifdef CURL_FORMAT_OFF_T +-# error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" +- Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined +-#endif +- +-#ifdef CURL_SIZEOF_CURL_OFF_T +-# error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" +- Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined +-#endif +- +-#ifdef CURL_SUFFIX_CURL_OFF_T +-# error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" +- Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined +-#endif +- +-#ifdef CURL_SUFFIX_CURL_OFF_TU +-# error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" +- Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined +-#endif +- +-/* ================================================================ */ +-/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */ +-/* ================================================================ */ +- +-/* Configure process defines this to 1 when it finds out that system */ +-/* header file ws2tcpip.h must be included by the external interface. */ +-/* #undef CURL_PULL_WS2TCPIP_H */ +-#ifdef CURL_PULL_WS2TCPIP_H +-# ifndef WIN32_LEAN_AND_MEAN +-# define WIN32_LEAN_AND_MEAN +-# endif +-# include +-# include +-# include +-#endif +- +-/* Configure process defines this to 1 when it finds out that system */ +-/* header file sys/types.h must be included by the external interface. */ +-#define CURL_PULL_SYS_TYPES_H 1 +-#ifdef CURL_PULL_SYS_TYPES_H +-# include +-#endif +- +-/* Configure process defines this to 1 when it finds out that system */ +-/* header file stdint.h must be included by the external interface. */ +-/* #undef CURL_PULL_STDINT_H */ +-#ifdef CURL_PULL_STDINT_H +-# include +-#endif +- +-/* Configure process defines this to 1 when it finds out that system */ +-/* header file inttypes.h must be included by the external interface. */ +-/* #undef CURL_PULL_INTTYPES_H */ +-#ifdef CURL_PULL_INTTYPES_H +-# include +-#endif +- +-/* Configure process defines this to 1 when it finds out that system */ +-/* header file sys/socket.h must be included by the external interface. */ +-#define CURL_PULL_SYS_SOCKET_H 1 +-#ifdef CURL_PULL_SYS_SOCKET_H +-# include +-#endif +- +-/* The size of `long', as computed by sizeof. */ +-#if defined(_M_X64) || (defined(__x86_64__) && !defined(__ILP32__)) || \ +- defined(__aarch64__) +-#define CURL_SIZEOF_LONG 8 +-#else +-#define CURL_SIZEOF_LONG 4 +-#endif +- +-/* Integral data type used for curl_socklen_t. */ +-#define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +- +-/* The size of `curl_socklen_t', as computed by sizeof. */ +-#define CURL_SIZEOF_CURL_SOCKLEN_T 4 +- +-/* Data type definition of curl_socklen_t. */ +-typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; +- +-/* Signed integral data type used for curl_off_t. */ +-#if defined(_M_X64) || (defined(__x86_64__) && !defined(__ILP32__)) || \ +- defined(__aarch64__) +-#define CURL_TYPEOF_CURL_OFF_T long +-#else +-#define CURL_TYPEOF_CURL_OFF_T int64_t +-#endif +- +-/* Data type definition of curl_off_t. */ +-typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; +- +-/* curl_off_t formatting string directive without "%" conversion specifier. */ +-#define CURL_FORMAT_CURL_OFF_T "ld" +- +-/* unsigned curl_off_t formatting string without "%" conversion specifier. */ +-#define CURL_FORMAT_CURL_OFF_TU "lu" +- +-/* curl_off_t formatting string directive with "%" conversion specifier. */ +-#define CURL_FORMAT_OFF_T "%ld" +- +-/* The size of `curl_off_t', as computed by sizeof. */ +-#define CURL_SIZEOF_CURL_OFF_T 8 +- +-/* curl_off_t constant suffix. */ +-#define CURL_SUFFIX_CURL_OFF_T L +- +-/* unsigned curl_off_t constant suffix. */ +-#define CURL_SUFFIX_CURL_OFF_TU UL +- +-#endif /* __CURL_CURLBUILD_H */ +diff --git a/src/third_party/curl/curlrules.h b/src/third_party/curl/curlrules.h +deleted file mode 100644 +index abac439..0000000 +--- a/src/third_party/curl/curlrules.h ++++ /dev/null +@@ -1,249 +0,0 @@ +-#ifndef __CURL_CURLRULES_H +-#define __CURL_CURLRULES_H +-/*************************************************************************** +- * _ _ ____ _ +- * Project ___| | | | _ \| | +- * / __| | | | |_) | | +- * | (__| |_| | _ <| |___ +- * \___|\___/|_| \_\_____| +- * +- * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al. +- * +- * This software is licensed as described in the file COPYING, which +- * you should have received as part of this distribution. The terms +- * are also available at http://curl.haxx.se/docs/copyright.html. +- * +- * You may opt to use, copy, modify, merge, publish, distribute and/or sell +- * copies of the Software, and permit persons to whom the Software is +- * furnished to do so, under the terms of the COPYING file. +- * +- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +- * KIND, either express or implied. +- * +- * $Id: curlrules.h,v 1.7 2009-10-27 16:56:20 yangtse Exp $ +- ***************************************************************************/ +- +-/* ================================================================ */ +-/* COMPILE TIME SANITY CHECKS */ +-/* ================================================================ */ +- +-/* +- * NOTE 1: +- * ------- +- * +- * All checks done in this file are intentionally placed in a public +- * header file which is pulled by curl/curl.h when an application is +- * being built using an already built libcurl library. Additionally +- * this file is also included and used when building the library. +- * +- * If compilation fails on this file it is certainly sure that the +- * problem is elsewhere. It could be a problem in the curlbuild.h +- * header file, or simply that you are using different compilation +- * settings than those used to build the library. +- * +- * Nothing in this file is intended to be modified or adjusted by the +- * curl library user nor by the curl library builder. +- * +- * Do not deactivate any check, these are done to make sure that the +- * library is properly built and used. +- * +- * You can find further help on the libcurl development mailing list: +- * http://cool.haxx.se/mailman/listinfo/curl-library/ +- * +- * NOTE 2 +- * ------ +- * +- * Some of the following compile time checks are based on the fact +- * that the dimension of a constant array can not be a negative one. +- * In this way if the compile time verification fails, the compilation +- * will fail issuing an error. The error description wording is compiler +- * dependent but it will be quite similar to one of the following: +- * +- * "negative subscript or subscript is too large" +- * "array must have at least one element" +- * "-1 is an illegal array size" +- * "size of array is negative" +- * +- * If you are building an application which tries to use an already +- * built libcurl library and you are getting this kind of errors on +- * this file, it is a clear indication that there is a mismatch between +- * how the library was built and how you are trying to use it for your +- * application. Your already compiled or binary library provider is the +- * only one who can give you the details you need to properly use it. +- */ +- +-/* +- * Verify that some macros are actually defined. +- */ +- +-#ifndef CURL_SIZEOF_LONG +-# error "CURL_SIZEOF_LONG definition is missing!" +- Error Compilation_aborted_CURL_SIZEOF_LONG_is_missing +-#endif +- +-#ifndef CURL_TYPEOF_CURL_SOCKLEN_T +-# error "CURL_TYPEOF_CURL_SOCKLEN_T definition is missing!" +- Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_is_missing +-#endif +- +-#ifndef CURL_SIZEOF_CURL_SOCKLEN_T +-# error "CURL_SIZEOF_CURL_SOCKLEN_T definition is missing!" +- Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_is_missing +-#endif +- +-#ifndef CURL_TYPEOF_CURL_OFF_T +-# error "CURL_TYPEOF_CURL_OFF_T definition is missing!" +- Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_is_missing +-#endif +- +-#ifndef CURL_FORMAT_CURL_OFF_T +-# error "CURL_FORMAT_CURL_OFF_T definition is missing!" +- Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_is_missing +-#endif +- +-#ifndef CURL_FORMAT_CURL_OFF_TU +-# error "CURL_FORMAT_CURL_OFF_TU definition is missing!" +- Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_is_missing +-#endif +- +-#ifndef CURL_FORMAT_OFF_T +-# error "CURL_FORMAT_OFF_T definition is missing!" +- Error Compilation_aborted_CURL_FORMAT_OFF_T_is_missing +-#endif +- +-#ifndef CURL_SIZEOF_CURL_OFF_T +-# error "CURL_SIZEOF_CURL_OFF_T definition is missing!" +- Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_is_missing +-#endif +- +-#ifndef CURL_SUFFIX_CURL_OFF_T +-# error "CURL_SUFFIX_CURL_OFF_T definition is missing!" +- Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_is_missing +-#endif +- +-#ifndef CURL_SUFFIX_CURL_OFF_TU +-# error "CURL_SUFFIX_CURL_OFF_TU definition is missing!" +- Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_is_missing +-#endif +- +-/* +- * Macros private to this header file. +- */ +- +-#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1 +- +-#define CurlchkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1 +- +-/* +- * Verify that the size previously defined and expected for long +- * is the same as the one reported by sizeof() at compile time. +- */ +- +-typedef char +- __curl_rule_01__ +- [CurlchkszEQ(long, CURL_SIZEOF_LONG)]; +- +-/* +- * Verify that the size previously defined and expected for +- * curl_off_t is actually the the same as the one reported +- * by sizeof() at compile time. +- */ +- +-typedef char +- __curl_rule_02__ +- [CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)]; +- +-/* +- * Verify at compile time that the size of curl_off_t as reported +- * by sizeof() is greater or equal than the one reported for long +- * for the current compilation. +- */ +- +-typedef char +- __curl_rule_03__ +- [CurlchkszGE(curl_off_t, long)]; +- +-/* +- * Verify that the size previously defined and expected for +- * curl_socklen_t is actually the the same as the one reported +- * by sizeof() at compile time. +- */ +- +-typedef char +- __curl_rule_04__ +- [CurlchkszEQ(curl_socklen_t, CURL_SIZEOF_CURL_SOCKLEN_T)]; +- +-/* +- * Verify at compile time that the size of curl_socklen_t as reported +- * by sizeof() is greater or equal than the one reported for int for +- * the current compilation. +- */ +- +-typedef char +- __curl_rule_05__ +- [CurlchkszGE(curl_socklen_t, int)]; +- +-/* ================================================================ */ +-/* EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS */ +-/* ================================================================ */ +- +-/* +- * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow +- * these to be visible and exported by the external libcurl interface API, +- * while also making them visible to the library internals, simply including +- * setup.h, without actually needing to include curl.h internally. +- * If some day this section would grow big enough, all this should be moved +- * to its own header file. +- */ +- +-/* +- * Figure out if we can use the ## preprocessor operator, which is supported +- * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ +- * or __cplusplus so we need to carefully check for them too. +- */ +- +-#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ +- defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ +- defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ +- defined(__ILEC400__) +- /* This compiler is believed to have an ISO compatible preprocessor */ +-#define CURL_ISOCPP +-#else +- /* This compiler is believed NOT to have an ISO compatible preprocessor */ +-#undef CURL_ISOCPP +-#endif +- +-/* +- * Macros for minimum-width signed and unsigned curl_off_t integer constants. +- */ +- +-#ifdef CURL_ISOCPP +-# define __CURL_OFF_T_C_HELPER2(Val,Suffix) Val ## Suffix +-#else +-# define __CURL_OFF_T_C_HELPER2(Val,Suffix) Val/**/Suffix +-#endif +-#define __CURL_OFF_T_C_HELPER1(Val,Suffix) __CURL_OFF_T_C_HELPER2(Val,Suffix) +-#define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HELPER1(Val,CURL_SUFFIX_CURL_OFF_T) +-#define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HELPER1(Val,CURL_SUFFIX_CURL_OFF_TU) +- +-/* +- * Get rid of macros private to this header file. +- */ +- +-#undef CurlchkszEQ +-#undef CurlchkszGE +- +-/* +- * Get rid of macros not intended to exist beyond this point. +- */ +- +-#undef CURL_PULL_WS2TCPIP_H +-#undef CURL_PULL_SYS_TYPES_H +-#undef CURL_PULL_SYS_SOCKET_H +-#undef CURL_PULL_STDINT_H +-#undef CURL_PULL_INTTYPES_H +- +-#undef CURL_TYPEOF_CURL_SOCKLEN_T +-#undef CURL_TYPEOF_CURL_OFF_T +- +-#endif /* __CURL_CURLRULES_H */ +diff --git a/src/third_party/curl/curlver.h b/src/third_party/curl/curlver.h +deleted file mode 100644 +index afa85c1..0000000 +--- a/src/third_party/curl/curlver.h ++++ /dev/null +@@ -1,70 +0,0 @@ +-#ifndef __CURL_CURLVER_H +-#define __CURL_CURLVER_H +-/*************************************************************************** +- * _ _ ____ _ +- * Project ___| | | | _ \| | +- * / __| | | | |_) | | +- * | (__| |_| | _ <| |___ +- * \___|\___/|_| \_\_____| +- * +- * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al. +- * +- * This software is licensed as described in the file COPYING, which +- * you should have received as part of this distribution. The terms +- * are also available at http://curl.haxx.se/docs/copyright.html. +- * +- * You may opt to use, copy, modify, merge, publish, distribute and/or sell +- * copies of the Software, and permit persons to whom the Software is +- * furnished to do so, under the terms of the COPYING file. +- * +- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +- * KIND, either express or implied. +- * +- * $Id: curlver.h,v 1.48 2009-08-12 11:24:52 bagder Exp $ +- ***************************************************************************/ +- +-/* This header file contains nothing but libcurl version info, generated by +- a script at release-time. This was made its own header file in 7.11.2 */ +- +-/* This is the global package copyright */ +-#define LIBCURL_COPYRIGHT "1996 - 2009 Daniel Stenberg, ." +- +-/* This is the version number of the libcurl package from which this header +- file origins: */ +-#define LIBCURL_VERSION "7.19.7" +- +-/* The numeric version number is also available "in parts" by using these +- defines: */ +-#define LIBCURL_VERSION_MAJOR 7 +-#define LIBCURL_VERSION_MINOR 19 +-#define LIBCURL_VERSION_PATCH 7 +- +-/* This is the numeric version of the libcurl version number, meant for easier +- parsing and comparions by programs. The LIBCURL_VERSION_NUM define will +- always follow this syntax: +- +- 0xXXYYZZ +- +- Where XX, YY and ZZ are the main version, release and patch numbers in +- hexadecimal (using 8 bits each). All three numbers are always represented +- using two digits. 1.2 would appear as "0x010200" while version 9.11.7 +- appears as "0x090b07". +- +- This 6-digit (24 bits) hexadecimal number does not show pre-release number, +- and it is always a greater number in a more recent release. It makes +- comparisons with greater than and less than work. +-*/ +-#define LIBCURL_VERSION_NUM 0x071307 +- +-/* +- * This is the date and time when the full source package was created. The +- * timestamp is not stored in CVS, as the timestamp is properly set in the +- * tarballs by the maketgz script. +- * +- * The format of the date should follow this template: +- * +- * "Mon Feb 12 11:35:33 UTC 2007" +- */ +-#define LIBCURL_TIMESTAMP "Wed Nov 4 12:34:59 UTC 2009" +- +-#endif /* __CURL_CURLVER_H */ +diff --git a/src/third_party/curl/easy.h b/src/third_party/curl/easy.h +deleted file mode 100644 +index 40449c3..0000000 +--- a/src/third_party/curl/easy.h ++++ /dev/null +@@ -1,103 +0,0 @@ +-#ifndef __CURL_EASY_H +-#define __CURL_EASY_H +-/*************************************************************************** +- * _ _ ____ _ +- * Project ___| | | | _ \| | +- * / __| | | | |_) | | +- * | (__| |_| | _ <| |___ +- * \___|\___/|_| \_\_____| +- * +- * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al. +- * +- * This software is licensed as described in the file COPYING, which +- * you should have received as part of this distribution. The terms +- * are also available at http://curl.haxx.se/docs/copyright.html. +- * +- * You may opt to use, copy, modify, merge, publish, distribute and/or sell +- * copies of the Software, and permit persons to whom the Software is +- * furnished to do so, under the terms of the COPYING file. +- * +- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +- * KIND, either express or implied. +- * +- * $Id: easy.h,v 1.14 2008-05-12 21:43:28 bagder Exp $ +- ***************************************************************************/ +-#ifdef __cplusplus +-extern "C" { +-#endif +- +-CURL_EXTERN CURL *curl_easy_init(void); +-CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); +-CURL_EXTERN CURLcode curl_easy_perform(CURL *curl); +-CURL_EXTERN void curl_easy_cleanup(CURL *curl); +- +-/* +- * NAME curl_easy_getinfo() +- * +- * DESCRIPTION +- * +- * Request internal information from the curl session with this function. The +- * third argument MUST be a pointer to a long, a pointer to a char * or a +- * pointer to a double (as the documentation describes elsewhere). The data +- * pointed to will be filled in accordingly and can be relied upon only if the +- * function returns CURLE_OK. This function is intended to get used *AFTER* a +- * performed transfer, all results from this function are undefined until the +- * transfer is completed. +- */ +-CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); +- +- +-/* +- * NAME curl_easy_duphandle() +- * +- * DESCRIPTION +- * +- * Creates a new curl session handle with the same options set for the handle +- * passed in. Duplicating a handle could only be a matter of cloning data and +- * options, internal state info and things like persistant connections cannot +- * be transfered. It is useful in multithreaded applications when you can run +- * curl_easy_duphandle() for each new thread to avoid a series of identical +- * curl_easy_setopt() invokes in every thread. +- */ +-CURL_EXTERN CURL* curl_easy_duphandle(CURL *curl); +- +-/* +- * NAME curl_easy_reset() +- * +- * DESCRIPTION +- * +- * Re-initializes a CURL handle to the default values. This puts back the +- * handle to the same state as it was in when it was just created. +- * +- * It does keep: live connections, the Session ID cache, the DNS cache and the +- * cookies. +- */ +-CURL_EXTERN void curl_easy_reset(CURL *curl); +- +-/* +- * NAME curl_easy_recv() +- * +- * DESCRIPTION +- * +- * Receives data from the connected socket. Use after successful +- * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. +- */ +-CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, +- size_t *n); +- +-/* +- * NAME curl_easy_send() +- * +- * DESCRIPTION +- * +- * Sends data over the connected socket. Use after successful +- * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. +- */ +-CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, +- size_t buflen, size_t *n); +- +-#ifdef __cplusplus +-} +-#endif +- +-#endif +diff --git a/src/third_party/curl/mprintf.h b/src/third_party/curl/mprintf.h +deleted file mode 100644 +index d7202de..0000000 +--- a/src/third_party/curl/mprintf.h ++++ /dev/null +@@ -1,82 +0,0 @@ +-#ifndef __CURL_MPRINTF_H +-#define __CURL_MPRINTF_H +-/*************************************************************************** +- * _ _ ____ _ +- * Project ___| | | | _ \| | +- * / __| | | | |_) | | +- * | (__| |_| | _ <| |___ +- * \___|\___/|_| \_\_____| +- * +- * Copyright (C) 1998 - 2006, Daniel Stenberg, , et al. +- * +- * This software is licensed as described in the file COPYING, which +- * you should have received as part of this distribution. The terms +- * are also available at http://curl.haxx.se/docs/copyright.html. +- * +- * You may opt to use, copy, modify, merge, publish, distribute and/or sell +- * copies of the Software, and permit persons to whom the Software is +- * furnished to do so, under the terms of the COPYING file. +- * +- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +- * KIND, either express or implied. +- * +- * $Id: mprintf.h,v 1.16 2008-05-20 10:21:50 patrickm Exp $ +- ***************************************************************************/ +- +-#include +-#include /* needed for FILE */ +- +-#include "curl.h" +- +-#ifdef __cplusplus +-extern "C" { +-#endif +- +-CURL_EXTERN int curl_mprintf(const char *format, ...); +-CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...); +-CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...); +-CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, +- const char *format, ...); +-CURL_EXTERN int curl_mvprintf(const char *format, va_list args); +-CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args); +-CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args); +-CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, +- const char *format, va_list args); +-CURL_EXTERN char *curl_maprintf(const char *format, ...); +-CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); +- +-#ifdef _MPRINTF_REPLACE +-# undef printf +-# undef fprintf +-# undef sprintf +-# undef vsprintf +-# undef snprintf +-# undef vprintf +-# undef vfprintf +-# undef vsnprintf +-# undef aprintf +-# undef vaprintf +-# define printf curl_mprintf +-# define fprintf curl_mfprintf +-#ifdef CURLDEBUG +-/* When built with CURLDEBUG we define away the sprintf() functions since we +- don't want internal code to be using them */ +-# define sprintf sprintf_was_used +-# define vsprintf vsprintf_was_used +-#else +-# define sprintf curl_msprintf +-# define vsprintf curl_mvsprintf +-#endif +-# define snprintf curl_msnprintf +-# define vprintf curl_mvprintf +-# define vfprintf curl_mvfprintf +-# define vsnprintf curl_mvsnprintf +-# define aprintf curl_maprintf +-# define vaprintf curl_mvaprintf +-#endif +- +-#ifdef __cplusplus +-} +-#endif +- +-#endif /* __CURL_MPRINTF_H */ +diff --git a/src/third_party/curl/multi.h b/src/third_party/curl/multi.h +deleted file mode 100644 +index 153f772..0000000 +--- a/src/third_party/curl/multi.h ++++ /dev/null +@@ -1,346 +0,0 @@ +-#ifndef __CURL_MULTI_H +-#define __CURL_MULTI_H +-/*************************************************************************** +- * _ _ ____ _ +- * Project ___| | | | _ \| | +- * / __| | | | |_) | | +- * | (__| |_| | _ <| |___ +- * \___|\___/|_| \_\_____| +- * +- * Copyright (C) 1998 - 2007, Daniel Stenberg, , et al. +- * +- * This software is licensed as described in the file COPYING, which +- * you should have received as part of this distribution. The terms +- * are also available at http://curl.haxx.se/docs/copyright.html. +- * +- * You may opt to use, copy, modify, merge, publish, distribute and/or sell +- * copies of the Software, and permit persons to whom the Software is +- * furnished to do so, under the terms of the COPYING file. +- * +- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +- * KIND, either express or implied. +- * +- * $Id: multi.h,v 1.45 2008-05-20 10:21:50 patrickm Exp $ +- ***************************************************************************/ +-/* +- This is an "external" header file. Don't give away any internals here! +- +- GOALS +- +- o Enable a "pull" interface. The application that uses libcurl decides where +- and when to ask libcurl to get/send data. +- +- o Enable multiple simultaneous transfers in the same thread without making it +- complicated for the application. +- +- o Enable the application to select() on its own file descriptors and curl's +- file descriptors simultaneous easily. +- +-*/ +- +-/* +- * This header file should not really need to include "curl.h" since curl.h +- * itself includes this file and we expect user applications to do #include +- * without the need for especially including multi.h. +- * +- * For some reason we added this include here at one point, and rather than to +- * break existing (wrongly written) libcurl applications, we leave it as-is +- * but with this warning attached. +- */ +-#include "curl.h" +- +-#ifdef __cplusplus +-extern "C" { +-#endif +- +-typedef void CURLM; +- +-typedef enum { +- CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or +- curl_multi_socket*() soon */ +- CURLM_OK, +- CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */ +- CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */ +- CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */ +- CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ +- CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ +- CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ +- CURLM_LAST +-} CURLMcode; +- +-/* just to make code nicer when using curl_multi_socket() you can now check +- for CURLM_CALL_MULTI_SOCKET too in the same style it works for +- curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ +-#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM +- +-typedef enum { +- CURLMSG_NONE, /* first, not used */ +- CURLMSG_DONE, /* This easy handle has completed. 'result' contains +- the CURLcode of the transfer */ +- CURLMSG_LAST /* last, not used */ +-} CURLMSG; +- +-struct CURLMsg { +- CURLMSG msg; /* what this message means */ +- CURL *easy_handle; /* the handle it concerns */ +- union { +- void *whatever; /* message-specific data */ +- CURLcode result; /* return code for transfer */ +- } data; +-}; +-typedef struct CURLMsg CURLMsg; +- +-/* +- * Name: curl_multi_init() +- * +- * Desc: inititalize multi-style curl usage +- * +- * Returns: a new CURLM handle to use in all 'curl_multi' functions. +- */ +-CURL_EXTERN CURLM *curl_multi_init(void); +- +-/* +- * Name: curl_multi_add_handle() +- * +- * Desc: add a standard curl handle to the multi stack +- * +- * Returns: CURLMcode type, general multi error code. +- */ +-CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, +- CURL *curl_handle); +- +- /* +- * Name: curl_multi_remove_handle() +- * +- * Desc: removes a curl handle from the multi stack again +- * +- * Returns: CURLMcode type, general multi error code. +- */ +-CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle, +- CURL *curl_handle); +- +- /* +- * Name: curl_multi_fdset() +- * +- * Desc: Ask curl for its fd_set sets. The app can use these to select() or +- * poll() on. We want curl_multi_perform() called as soon as one of +- * them are ready. +- * +- * Returns: CURLMcode type, general multi error code. +- */ +-CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, +- fd_set *read_fd_set, +- fd_set *write_fd_set, +- fd_set *exc_fd_set, +- int *max_fd); +- +- /* +- * Name: curl_multi_perform() +- * +- * Desc: When the app thinks there's data available for curl it calls this +- * function to read/write whatever there is right now. This returns +- * as soon as the reads and writes are done. This function does not +- * require that there actually is data available for reading or that +- * data can be written, it can be called just in case. It returns +- * the number of handles that still transfer data in the second +- * argument's integer-pointer. +- * +- * Returns: CURLMcode type, general multi error code. *NOTE* that this only +- * returns errors etc regarding the whole multi stack. There might +- * still have occurred problems on invidual transfers even when this +- * returns OK. +- */ +-CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, +- int *running_handles); +- +- /* +- * Name: curl_multi_cleanup() +- * +- * Desc: Cleans up and removes a whole multi stack. It does not free or +- * touch any individual easy handles in any way. We need to define +- * in what state those handles will be if this function is called +- * in the middle of a transfer. +- * +- * Returns: CURLMcode type, general multi error code. +- */ +-CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); +- +-/* +- * Name: curl_multi_info_read() +- * +- * Desc: Ask the multi handle if there's any messages/informationals from +- * the individual transfers. Messages include informationals such as +- * error code from the transfer or just the fact that a transfer is +- * completed. More details on these should be written down as well. +- * +- * Repeated calls to this function will return a new struct each +- * time, until a special "end of msgs" struct is returned as a signal +- * that there is no more to get at this point. +- * +- * The data the returned pointer points to will not survive calling +- * curl_multi_cleanup(). +- * +- * The 'CURLMsg' struct is meant to be very simple and only contain +- * very basic informations. If more involved information is wanted, +- * we will provide the particular "transfer handle" in that struct +- * and that should/could/would be used in subsequent +- * curl_easy_getinfo() calls (or similar). The point being that we +- * must never expose complex structs to applications, as then we'll +- * undoubtably get backwards compatibility problems in the future. +- * +- * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out +- * of structs. It also writes the number of messages left in the +- * queue (after this read) in the integer the second argument points +- * to. +- */ +-CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle, +- int *msgs_in_queue); +- +-/* +- * Name: curl_multi_strerror() +- * +- * Desc: The curl_multi_strerror function may be used to turn a CURLMcode +- * value into the equivalent human readable error string. This is +- * useful for printing meaningful error messages. +- * +- * Returns: A pointer to a zero-terminated error message. +- */ +-CURL_EXTERN const char *curl_multi_strerror(CURLMcode); +- +-/* +- * Name: curl_multi_socket() and +- * curl_multi_socket_all() +- * +- * Desc: An alternative version of curl_multi_perform() that allows the +- * application to pass in one of the file descriptors that have been +- * detected to have "action" on them and let libcurl perform. +- * See man page for details. +- */ +-#define CURL_POLL_NONE 0 +-#define CURL_POLL_IN 1 +-#define CURL_POLL_OUT 2 +-#define CURL_POLL_INOUT 3 +-#define CURL_POLL_REMOVE 4 +- +-#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD +- +-#define CURL_CSELECT_IN 0x01 +-#define CURL_CSELECT_OUT 0x02 +-#define CURL_CSELECT_ERR 0x04 +- +-typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */ +- curl_socket_t s, /* socket */ +- int what, /* see above */ +- void *userp, /* private callback +- pointer */ +- void *socketp); /* private socket +- pointer */ +-/* +- * Name: curl_multi_timer_callback +- * +- * Desc: Called by libcurl whenever the library detects a change in the +- * maximum number of milliseconds the app is allowed to wait before +- * curl_multi_socket() or curl_multi_perform() must be called +- * (to allow libcurl's timed events to take place). +- * +- * Returns: The callback should return zero. +- */ +-typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ +- long timeout_ms, /* see above */ +- void *userp); /* private callback +- pointer */ +- +-CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, +- int *running_handles); +- +-CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, +- curl_socket_t s, +- int ev_bitmask, +- int *running_handles); +- +-CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle, +- int *running_handles); +- +-#ifndef CURL_ALLOW_OLD_MULTI_SOCKET +-/* This macro below was added in 7.16.3 to push users who recompile to use +- the new curl_multi_socket_action() instead of the old curl_multi_socket() +-*/ +-#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) +-#endif +- +-/* +- * Name: curl_multi_timeout() +- * +- * Desc: Returns the maximum number of milliseconds the app is allowed to +- * wait before curl_multi_socket() or curl_multi_perform() must be +- * called (to allow libcurl's timed events to take place). +- * +- * Returns: CURLM error code. +- */ +-CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, +- long *milliseconds); +- +-#undef CINIT /* re-using the same name as in curl.h */ +- +-#ifdef CURL_ISOCPP +-#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num +-#else +-/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ +-#define LONG CURLOPTTYPE_LONG +-#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT +-#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT +-#define OFF_T CURLOPTTYPE_OFF_T +-#define CINIT(name,type,number) CURLMOPT_/**/name = type + number +-#endif +- +-typedef enum { +- /* This is the socket callback function pointer */ +- CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1), +- +- /* This is the argument passed to the socket callback */ +- CINIT(SOCKETDATA, OBJECTPOINT, 2), +- +- /* set to 1 to enable pipelining for this multi handle */ +- CINIT(PIPELINING, LONG, 3), +- +- /* This is the timer callback function pointer */ +- CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4), +- +- /* This is the argument passed to the timer callback */ +- CINIT(TIMERDATA, OBJECTPOINT, 5), +- +- /* maximum number of entries in the connection cache */ +- CINIT(MAXCONNECTS, LONG, 6), +- +- CURLMOPT_LASTENTRY /* the last unused */ +-} CURLMoption; +- +- +-/* +- * Name: curl_multi_setopt() +- * +- * Desc: Sets options for the multi handle. +- * +- * Returns: CURLM error code. +- */ +-CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, +- CURLMoption option, ...); +- +- +-/* +- * Name: curl_multi_assign() +- * +- * Desc: This function sets an association in the multi handle between the +- * given socket and a private pointer of the application. This is +- * (only) useful for curl_multi_socket uses. +- * +- * Returns: CURLM error code. +- */ +-CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, +- curl_socket_t sockfd, void *sockp); +- +-#ifdef __cplusplus +-} /* end of extern "C" */ +-#endif +- +-#endif +diff --git a/src/third_party/curl/stdcheaders.h b/src/third_party/curl/stdcheaders.h +deleted file mode 100644 +index f739d7f..0000000 +--- a/src/third_party/curl/stdcheaders.h ++++ /dev/null +@@ -1,34 +0,0 @@ +-#ifndef __STDC_HEADERS_H +-#define __STDC_HEADERS_H +-/*************************************************************************** +- * _ _ ____ _ +- * Project ___| | | | _ \| | +- * / __| | | | |_) | | +- * | (__| |_| | _ <| |___ +- * \___|\___/|_| \_\_____| +- * +- * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al. +- * +- * This software is licensed as described in the file COPYING, which +- * you should have received as part of this distribution. The terms +- * are also available at http://curl.haxx.se/docs/copyright.html. +- * +- * You may opt to use, copy, modify, merge, publish, distribute and/or sell +- * copies of the Software, and permit persons to whom the Software is +- * furnished to do so, under the terms of the COPYING file. +- * +- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +- * KIND, either express or implied. +- * +- * $Id: stdcheaders.h,v 1.9 2009-05-18 12:25:45 yangtse Exp $ +- ***************************************************************************/ +- +-#include +- +-size_t fread (void *, size_t, size_t, FILE *); +-size_t fwrite (const void *, size_t, size_t, FILE *); +- +-int strcasecmp(const char *, const char *); +-int strncasecmp(const char *, const char *, size_t); +- +-#endif +diff --git a/src/third_party/curl/typecheck-gcc.h b/src/third_party/curl/typecheck-gcc.h +deleted file mode 100644 +index 9788305..0000000 +--- a/src/third_party/curl/typecheck-gcc.h ++++ /dev/null +@@ -1,551 +0,0 @@ +-#ifndef __CURL_TYPECHECK_GCC_H +-#define __CURL_TYPECHECK_GCC_H +-/*************************************************************************** +- * _ _ ____ _ +- * Project ___| | | | _ \| | +- * / __| | | | |_) | | +- * | (__| |_| | _ <| |___ +- * \___|\___/|_| \_\_____| +- * +- * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al. +- * +- * This software is licensed as described in the file COPYING, which +- * you should have received as part of this distribution. The terms +- * are also available at http://curl.haxx.se/docs/copyright.html. +- * +- * You may opt to use, copy, modify, merge, publish, distribute and/or sell +- * copies of the Software, and permit persons to whom the Software is +- * furnished to do so, under the terms of the COPYING file. +- * +- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +- * KIND, either express or implied. +- * +- * $Id: typecheck-gcc.h,v 1.9 2009-01-25 23:26:31 bagder Exp $ +- ***************************************************************************/ +- +-/* wraps curl_easy_setopt() with typechecking */ +- +-/* To add a new kind of warning, add an +- * if(_curl_is_sometype_option(_curl_opt) && ! _curl_is_sometype(value)) +- * _curl_easy_setopt_err_sometype(); +- * block and define _curl_is_sometype_option, _curl_is_sometype and +- * _curl_easy_setopt_err_sometype below +- * +- * To add an option that uses the same type as an existing option, you'll just +- * need to extend the appropriate _curl_*_option macro +- */ +-#define curl_easy_setopt(handle, option, value) \ +-__extension__ ({ \ +- __typeof__ (option) _curl_opt = option; \ +- if (__builtin_constant_p(_curl_opt)) { \ +- if (_curl_is_long_option(_curl_opt) && !_curl_is_long(value)) \ +- _curl_easy_setopt_err_long(); \ +- if (_curl_is_off_t_option(_curl_opt) && !_curl_is_off_t(value)) \ +- _curl_easy_setopt_err_curl_off_t(); \ +- if (_curl_is_string_option(_curl_opt) && !_curl_is_string(value)) \ +- _curl_easy_setopt_err_string(); \ +- if (_curl_is_write_cb_option(_curl_opt) && !_curl_is_write_cb(value)) \ +- _curl_easy_setopt_err_write_callback(); \ +- if ((_curl_opt) == CURLOPT_READFUNCTION && !_curl_is_read_cb(value)) \ +- _curl_easy_setopt_err_read_cb(); \ +- if ((_curl_opt) == CURLOPT_IOCTLFUNCTION && !_curl_is_ioctl_cb(value)) \ +- _curl_easy_setopt_err_ioctl_cb(); \ +- if ((_curl_opt) == CURLOPT_SOCKOPTFUNCTION && !_curl_is_sockopt_cb(value))\ +- _curl_easy_setopt_err_sockopt_cb(); \ +- if ((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION && \ +- !_curl_is_opensocket_cb(value)) \ +- _curl_easy_setopt_err_opensocket_cb(); \ +- if ((_curl_opt) == CURLOPT_PROGRESSFUNCTION && \ +- !_curl_is_progress_cb(value)) \ +- _curl_easy_setopt_err_progress_cb(); \ +- if ((_curl_opt) == CURLOPT_DEBUGFUNCTION && !_curl_is_debug_cb(value)) \ +- _curl_easy_setopt_err_debug_cb(); \ +- if ((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION && \ +- !_curl_is_ssl_ctx_cb(value)) \ +- _curl_easy_setopt_err_ssl_ctx_cb(); \ +- if (_curl_is_conv_cb_option(_curl_opt) && !_curl_is_conv_cb(value)) \ +- _curl_easy_setopt_err_conv_cb(); \ +- if ((_curl_opt) == CURLOPT_SEEKFUNCTION && !_curl_is_seek_cb(value)) \ +- _curl_easy_setopt_err_seek_cb(); \ +- if (_curl_is_cb_data_option(_curl_opt) && !_curl_is_cb_data(value)) \ +- _curl_easy_setopt_err_cb_data(); \ +- if ((_curl_opt) == CURLOPT_ERRORBUFFER && !_curl_is_error_buffer(value)) \ +- _curl_easy_setopt_err_error_buffer(); \ +- if ((_curl_opt) == CURLOPT_STDERR && !_curl_is_FILE(value)) \ +- _curl_easy_setopt_err_FILE(); \ +- if (_curl_is_postfields_option(_curl_opt) && !_curl_is_postfields(value)) \ +- _curl_easy_setopt_err_postfields(); \ +- if ((_curl_opt) == CURLOPT_HTTPPOST && \ +- !_curl_is_arr((value), struct curl_httppost)) \ +- _curl_easy_setopt_err_curl_httpost(); \ +- if (_curl_is_slist_option(_curl_opt) && \ +- !_curl_is_arr((value), struct curl_slist)) \ +- _curl_easy_setopt_err_curl_slist(); \ +- if ((_curl_opt) == CURLOPT_SHARE && !_curl_is_ptr((value), CURLSH)) \ +- _curl_easy_setopt_err_CURLSH(); \ +- } \ +- curl_easy_setopt(handle, _curl_opt, value); \ +-}) +- +-/* wraps curl_easy_getinfo() with typechecking */ +-/* FIXME: don't allow const pointers */ +-#define curl_easy_getinfo(handle, info, arg) \ +-__extension__ ({ \ +- __typeof__ (info) _curl_info = info; \ +- if (__builtin_constant_p(_curl_info)) { \ +- if (_curl_is_string_info(_curl_info) && !_curl_is_arr((arg), char *)) \ +- _curl_easy_getinfo_err_string(); \ +- if (_curl_is_long_info(_curl_info) && !_curl_is_arr((arg), long)) \ +- _curl_easy_getinfo_err_long(); \ +- if (_curl_is_double_info(_curl_info) && !_curl_is_arr((arg), double)) \ +- _curl_easy_getinfo_err_double(); \ +- if (_curl_is_slist_info(_curl_info) && \ +- !_curl_is_arr((arg), struct curl_slist *)) \ +- _curl_easy_getinfo_err_curl_slist(); \ +- } \ +- curl_easy_getinfo(handle, _curl_info, arg); \ +-}) +- +-/* TODO: typechecking for curl_share_setopt() and curl_multi_setopt(), +- * for now just make sure that the functions are called with three +- * arguments +- */ +-#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) +-#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) +- +- +-/* the actual warnings, triggered by calling the _curl_easy_setopt_err* +- * functions */ +- +-/* To define a new warning, use _CURL_WARNING(identifier, "message") */ +-#define _CURL_WARNING(id, message) \ +- static void __attribute__((warning(message))) __attribute__((unused)) \ +- __attribute__((noinline)) id(void) { __asm__(""); } +- +-_CURL_WARNING(_curl_easy_setopt_err_long, +- "curl_easy_setopt expects a long argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_curl_off_t, +- "curl_easy_setopt expects a curl_off_t argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_string, +- "curl_easy_setopt expects a string (char* or char[]) argument for this option" +- ) +-_CURL_WARNING(_curl_easy_setopt_err_write_callback, +- "curl_easy_setopt expects a curl_write_callback argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_read_cb, +- "curl_easy_setopt expects a curl_read_callback argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_ioctl_cb, +- "curl_easy_setopt expects a curl_ioctl_callback argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_sockopt_cb, +- "curl_easy_setopt expects a curl_sockopt_callback argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_opensocket_cb, +- "curl_easy_setopt expects a curl_opensocket_callback argument for this option" +- ) +-_CURL_WARNING(_curl_easy_setopt_err_progress_cb, +- "curl_easy_setopt expects a curl_progress_callback argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_debug_cb, +- "curl_easy_setopt expects a curl_debug_callback argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_ssl_ctx_cb, +- "curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_conv_cb, +- "curl_easy_setopt expects a curl_conv_callback argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_seek_cb, +- "curl_easy_setopt expects a curl_seek_callback argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_cb_data, +- "curl_easy_setopt expects a private data pointer as argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_error_buffer, +- "curl_easy_setopt expects a char buffer of CURL_ERROR_SIZE as argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_FILE, +- "curl_easy_setopt expects a FILE* argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_postfields, +- "curl_easy_setopt expects a void* or char* argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_curl_httpost, +- "curl_easy_setopt expects a struct curl_httppost* argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_curl_slist, +- "curl_easy_setopt expects a struct curl_slist* argument for this option") +-_CURL_WARNING(_curl_easy_setopt_err_CURLSH, +- "curl_easy_setopt expects a CURLSH* argument for this option") +- +-_CURL_WARNING(_curl_easy_getinfo_err_string, +- "curl_easy_getinfo expects a pointer to char * for this info") +-_CURL_WARNING(_curl_easy_getinfo_err_long, +- "curl_easy_getinfo expects a pointer to long for this info") +-_CURL_WARNING(_curl_easy_getinfo_err_double, +- "curl_easy_getinfo expects a pointer to double for this info") +-_CURL_WARNING(_curl_easy_getinfo_err_curl_slist, +- "curl_easy_getinfo expects a pointer to struct curl_slist * for this info") +- +-/* groups of curl_easy_setops options that take the same type of argument */ +- +-/* To add a new option to one of the groups, just add +- * (option) == CURLOPT_SOMETHING +- * to the or-expression. If the option takes a long or curl_off_t, you don't +- * have to do anything +- */ +- +-/* evaluates to true if option takes a long argument */ +-#define _curl_is_long_option(option) \ +- (0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT) +- +-#define _curl_is_off_t_option(option) \ +- ((option) > CURLOPTTYPE_OFF_T) +- +-/* evaluates to true if option takes a char* argument */ +-#define _curl_is_string_option(option) \ +- ((option) == CURLOPT_URL || \ +- (option) == CURLOPT_PROXY || \ +- (option) == CURLOPT_INTERFACE || \ +- (option) == CURLOPT_NETRC_FILE || \ +- (option) == CURLOPT_USERPWD || \ +- (option) == CURLOPT_USERNAME || \ +- (option) == CURLOPT_PASSWORD || \ +- (option) == CURLOPT_PROXYUSERPWD || \ +- (option) == CURLOPT_PROXYUSERNAME || \ +- (option) == CURLOPT_PROXYPASSWORD || \ +- (option) == CURLOPT_NOPROXY || \ +- (option) == CURLOPT_ENCODING || \ +- (option) == CURLOPT_REFERER || \ +- (option) == CURLOPT_USERAGENT || \ +- (option) == CURLOPT_COOKIE || \ +- (option) == CURLOPT_COOKIEFILE || \ +- (option) == CURLOPT_COOKIEJAR || \ +- (option) == CURLOPT_COOKIELIST || \ +- (option) == CURLOPT_FTPPORT || \ +- (option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \ +- (option) == CURLOPT_FTP_ACCOUNT || \ +- (option) == CURLOPT_RANGE || \ +- (option) == CURLOPT_CUSTOMREQUEST || \ +- (option) == CURLOPT_SSLCERT || \ +- (option) == CURLOPT_SSLCERTTYPE || \ +- (option) == CURLOPT_SSLKEY || \ +- (option) == CURLOPT_SSLKEYTYPE || \ +- (option) == CURLOPT_KEYPASSWD || \ +- (option) == CURLOPT_SSLENGINE || \ +- (option) == CURLOPT_CAINFO || \ +- (option) == CURLOPT_CAPATH || \ +- (option) == CURLOPT_RANDOM_FILE || \ +- (option) == CURLOPT_EGDSOCKET || \ +- (option) == CURLOPT_SSL_CIPHER_LIST || \ +- (option) == CURLOPT_KRBLEVEL || \ +- (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \ +- (option) == CURLOPT_SSH_PUBLIC_KEYFILE || \ +- (option) == CURLOPT_SSH_PRIVATE_KEYFILE || \ +- (option) == CURLOPT_CRLFILE || \ +- (option) == CURLOPT_ISSUERCERT || \ +- 0) +- +-/* evaluates to true if option takes a curl_write_callback argument */ +-#define _curl_is_write_cb_option(option) \ +- ((option) == CURLOPT_HEADERFUNCTION || \ +- (option) == CURLOPT_WRITEFUNCTION) +- +-/* evaluates to true if option takes a curl_conv_callback argument */ +-#define _curl_is_conv_cb_option(option) \ +- ((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION || \ +- (option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION || \ +- (option) == CURLOPT_CONV_FROM_UTF8_FUNCTION) +- +-/* evaluates to true if option takes a data argument to pass to a callback */ +-#define _curl_is_cb_data_option(option) \ +- ((option) == CURLOPT_WRITEDATA || \ +- (option) == CURLOPT_READDATA || \ +- (option) == CURLOPT_IOCTLDATA || \ +- (option) == CURLOPT_SOCKOPTDATA || \ +- (option) == CURLOPT_OPENSOCKETDATA || \ +- (option) == CURLOPT_PROGRESSDATA || \ +- (option) == CURLOPT_WRITEHEADER || \ +- (option) == CURLOPT_DEBUGDATA || \ +- (option) == CURLOPT_SSL_CTX_DATA || \ +- (option) == CURLOPT_SEEKDATA || \ +- (option) == CURLOPT_PRIVATE || \ +- 0) +- +-/* evaluates to true if option takes a POST data argument (void* or char*) */ +-#define _curl_is_postfields_option(option) \ +- ((option) == CURLOPT_POSTFIELDS || \ +- (option) == CURLOPT_COPYPOSTFIELDS || \ +- 0) +- +-/* evaluates to true if option takes a struct curl_slist * argument */ +-#define _curl_is_slist_option(option) \ +- ((option) == CURLOPT_HTTPHEADER || \ +- (option) == CURLOPT_HTTP200ALIASES || \ +- (option) == CURLOPT_QUOTE || \ +- (option) == CURLOPT_POSTQUOTE || \ +- (option) == CURLOPT_PREQUOTE || \ +- (option) == CURLOPT_TELNETOPTIONS || \ +- 0) +- +-/* groups of curl_easy_getinfo infos that take the same type of argument */ +- +-/* evaluates to true if info expects a pointer to char * argument */ +-#define _curl_is_string_info(info) \ +- (CURLINFO_STRING < (info) && (info) < CURLINFO_LONG) +- +-/* evaluates to true if info expects a pointer to long argument */ +-#define _curl_is_long_info(info) \ +- (CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE) +- +-/* evaluates to true if info expects a pointer to double argument */ +-#define _curl_is_double_info(info) \ +- (CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST) +- +-/* true if info expects a pointer to struct curl_slist * argument */ +-#define _curl_is_slist_info(info) \ +- (CURLINFO_SLIST < (info)) +- +- +-/* typecheck helpers -- check whether given expression has requested type*/ +- +-/* For pointers, you can use the _curl_is_ptr/_curl_is_arr macros, +- * otherwise define a new macro. Search for __builtin_types_compatible_p +- * in the GCC manual. +- * NOTE: these macros MUST NOT EVALUATE their arguments! The argument is +- * the actual expression passed to the curl_easy_setopt macro. This +- * means that you can only apply the sizeof and __typeof__ operators, no +- * == or whatsoever. +- */ +- +-/* XXX: should evaluate to true iff expr is a pointer */ +-#define _curl_is_any_ptr(expr) \ +- (sizeof(expr) == sizeof(void*)) +- +-/* evaluates to true if expr is NULL */ +-/* XXX: must not evaluate expr, so this check is not accurate */ +-#define _curl_is_NULL(expr) \ +- (__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL))) +- +-/* evaluates to true if expr is type*, const type* or NULL */ +-#define _curl_is_ptr(expr, type) \ +- (_curl_is_NULL(expr) || \ +- __builtin_types_compatible_p(__typeof__(expr), type *) || \ +- __builtin_types_compatible_p(__typeof__(expr), const type *)) +- +-/* evaluates to true if expr is one of type[], type*, NULL or const type* */ +-#define _curl_is_arr(expr, type) \ +- (_curl_is_ptr((expr), type) || \ +- __builtin_types_compatible_p(__typeof__(expr), type [])) +- +-/* evaluates to true if expr is a string */ +-#define _curl_is_string(expr) \ +- (_curl_is_arr((expr), char) || \ +- _curl_is_arr((expr), signed char) || \ +- _curl_is_arr((expr), unsigned char)) +- +-/* evaluates to true if expr is a long (no matter the signedness) +- * XXX: for now, int is also accepted (and therefore short and char, which +- * are promoted to int when passed to a variadic function) */ +-#define _curl_is_long(expr) \ +- (__builtin_types_compatible_p(__typeof__(expr), long) || \ +- __builtin_types_compatible_p(__typeof__(expr), signed long) || \ +- __builtin_types_compatible_p(__typeof__(expr), unsigned long) || \ +- __builtin_types_compatible_p(__typeof__(expr), int) || \ +- __builtin_types_compatible_p(__typeof__(expr), signed int) || \ +- __builtin_types_compatible_p(__typeof__(expr), unsigned int) || \ +- __builtin_types_compatible_p(__typeof__(expr), short) || \ +- __builtin_types_compatible_p(__typeof__(expr), signed short) || \ +- __builtin_types_compatible_p(__typeof__(expr), unsigned short) || \ +- __builtin_types_compatible_p(__typeof__(expr), char) || \ +- __builtin_types_compatible_p(__typeof__(expr), signed char) || \ +- __builtin_types_compatible_p(__typeof__(expr), unsigned char)) +- +-/* evaluates to true if expr is of type curl_off_t */ +-#define _curl_is_off_t(expr) \ +- (__builtin_types_compatible_p(__typeof__(expr), curl_off_t)) +- +-/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */ +-/* XXX: also check size of an char[] array? */ +-#define _curl_is_error_buffer(expr) \ +- (__builtin_types_compatible_p(__typeof__(expr), char *) || \ +- __builtin_types_compatible_p(__typeof__(expr), char[])) +- +-/* evaluates to true if expr is of type (const) void* or (const) FILE* */ +-#if 0 +-#define _curl_is_cb_data(expr) \ +- (_curl_is_ptr((expr), void) || \ +- _curl_is_ptr((expr), FILE)) +-#else /* be less strict */ +-#define _curl_is_cb_data(expr) \ +- _curl_is_any_ptr(expr) +-#endif +- +-/* evaluates to true if expr is of type FILE* */ +-#define _curl_is_FILE(expr) \ +- (__builtin_types_compatible_p(__typeof__(expr), FILE *)) +- +-/* evaluates to true if expr can be passed as POST data (void* or char*) */ +-#define _curl_is_postfields(expr) \ +- (_curl_is_ptr((expr), void) || \ +- _curl_is_arr((expr), char)) +- +-/* FIXME: the whole callback checking is messy... +- * The idea is to tolerate char vs. void and const vs. not const +- * pointers in arguments at least +- */ +-/* helper: __builtin_types_compatible_p distinguishes between functions and +- * function pointers, hide it */ +-#define _curl_callback_compatible(func, type) \ +- (__builtin_types_compatible_p(__typeof__(func), type) || \ +- __builtin_types_compatible_p(__typeof__(func), type*)) +- +-/* evaluates to true if expr is of type curl_read_callback or "similar" */ +-#define _curl_is_read_cb(expr) \ +- (_curl_is_NULL(expr) || \ +- __builtin_types_compatible_p(__typeof__(expr), __typeof__(fread)) || \ +- __builtin_types_compatible_p(__typeof__(expr), curl_read_callback) || \ +- _curl_callback_compatible((expr), _curl_read_callback1) || \ +- _curl_callback_compatible((expr), _curl_read_callback2) || \ +- _curl_callback_compatible((expr), _curl_read_callback3) || \ +- _curl_callback_compatible((expr), _curl_read_callback4) || \ +- _curl_callback_compatible((expr), _curl_read_callback5) || \ +- _curl_callback_compatible((expr), _curl_read_callback6)) +-typedef size_t (_curl_read_callback1)(char *, size_t, size_t, void*); +-typedef size_t (_curl_read_callback2)(char *, size_t, size_t, const void*); +-typedef size_t (_curl_read_callback3)(char *, size_t, size_t, FILE*); +-typedef size_t (_curl_read_callback4)(void *, size_t, size_t, void*); +-typedef size_t (_curl_read_callback5)(void *, size_t, size_t, const void*); +-typedef size_t (_curl_read_callback6)(void *, size_t, size_t, FILE*); +- +-/* evaluates to true if expr is of type curl_write_callback or "similar" */ +-#define _curl_is_write_cb(expr) \ +- (_curl_is_read_cb(expr) || \ +- __builtin_types_compatible_p(__typeof__(expr), __typeof__(fwrite)) || \ +- __builtin_types_compatible_p(__typeof__(expr), curl_write_callback) || \ +- _curl_callback_compatible((expr), _curl_write_callback1) || \ +- _curl_callback_compatible((expr), _curl_write_callback2) || \ +- _curl_callback_compatible((expr), _curl_write_callback3) || \ +- _curl_callback_compatible((expr), _curl_write_callback4) || \ +- _curl_callback_compatible((expr), _curl_write_callback5) || \ +- _curl_callback_compatible((expr), _curl_write_callback6)) +-typedef size_t (_curl_write_callback1)(const char *, size_t, size_t, void*); +-typedef size_t (_curl_write_callback2)(const char *, size_t, size_t, +- const void*); +-typedef size_t (_curl_write_callback3)(const char *, size_t, size_t, FILE*); +-typedef size_t (_curl_write_callback4)(const void *, size_t, size_t, void*); +-typedef size_t (_curl_write_callback5)(const void *, size_t, size_t, +- const void*); +-typedef size_t (_curl_write_callback6)(const void *, size_t, size_t, FILE*); +- +-/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */ +-#define _curl_is_ioctl_cb(expr) \ +- (_curl_is_NULL(expr) || \ +- __builtin_types_compatible_p(__typeof__(expr), curl_ioctl_callback) || \ +- _curl_callback_compatible((expr), _curl_ioctl_callback1) || \ +- _curl_callback_compatible((expr), _curl_ioctl_callback2) || \ +- _curl_callback_compatible((expr), _curl_ioctl_callback3) || \ +- _curl_callback_compatible((expr), _curl_ioctl_callback4)) +-typedef curlioerr (_curl_ioctl_callback1)(CURL *, int, void*); +-typedef curlioerr (_curl_ioctl_callback2)(CURL *, int, const void*); +-typedef curlioerr (_curl_ioctl_callback3)(CURL *, curliocmd, void*); +-typedef curlioerr (_curl_ioctl_callback4)(CURL *, curliocmd, const void*); +- +-/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */ +-#define _curl_is_sockopt_cb(expr) \ +- (_curl_is_NULL(expr) || \ +- __builtin_types_compatible_p(__typeof__(expr), curl_sockopt_callback) || \ +- _curl_callback_compatible((expr), _curl_sockopt_callback1) || \ +- _curl_callback_compatible((expr), _curl_sockopt_callback2)) +-typedef int (_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype); +-typedef int (_curl_sockopt_callback2)(const void *, curl_socket_t, +- curlsocktype); +- +-/* evaluates to true if expr is of type curl_opensocket_callback or "similar" */ +-#define _curl_is_opensocket_cb(expr) \ +- (_curl_is_NULL(expr) || \ +- __builtin_types_compatible_p(__typeof__(expr), curl_opensocket_callback) ||\ +- _curl_callback_compatible((expr), _curl_opensocket_callback1) || \ +- _curl_callback_compatible((expr), _curl_opensocket_callback2) || \ +- _curl_callback_compatible((expr), _curl_opensocket_callback3) || \ +- _curl_callback_compatible((expr), _curl_opensocket_callback4)) +-typedef curl_socket_t (_curl_opensocket_callback1) +- (void *, curlsocktype, struct curl_sockaddr *); +-typedef curl_socket_t (_curl_opensocket_callback2) +- (void *, curlsocktype, const struct curl_sockaddr *); +-typedef curl_socket_t (_curl_opensocket_callback3) +- (const void *, curlsocktype, struct curl_sockaddr *); +-typedef curl_socket_t (_curl_opensocket_callback4) +- (const void *, curlsocktype, const struct curl_sockaddr *); +- +-/* evaluates to true if expr is of type curl_progress_callback or "similar" */ +-#define _curl_is_progress_cb(expr) \ +- (_curl_is_NULL(expr) || \ +- __builtin_types_compatible_p(__typeof__(expr), curl_progress_callback) || \ +- _curl_callback_compatible((expr), _curl_progress_callback1) || \ +- _curl_callback_compatible((expr), _curl_progress_callback2)) +-typedef int (_curl_progress_callback1)(void *, +- double, double, double, double); +-typedef int (_curl_progress_callback2)(const void *, +- double, double, double, double); +- +-/* evaluates to true if expr is of type curl_debug_callback or "similar" */ +-#define _curl_is_debug_cb(expr) \ +- (_curl_is_NULL(expr) || \ +- __builtin_types_compatible_p(__typeof__(expr), curl_debug_callback) || \ +- _curl_callback_compatible((expr), _curl_debug_callback1) || \ +- _curl_callback_compatible((expr), _curl_debug_callback2) || \ +- _curl_callback_compatible((expr), _curl_debug_callback3) || \ +- _curl_callback_compatible((expr), _curl_debug_callback4)) +-typedef int (_curl_debug_callback1) (CURL *, +- curl_infotype, char *, size_t, void *); +-typedef int (_curl_debug_callback2) (CURL *, +- curl_infotype, char *, size_t, const void *); +-typedef int (_curl_debug_callback3) (CURL *, +- curl_infotype, const char *, size_t, void *); +-typedef int (_curl_debug_callback4) (CURL *, +- curl_infotype, const char *, size_t, const void *); +- +-/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */ +-/* this is getting even messier... */ +-#define _curl_is_ssl_ctx_cb(expr) \ +- (_curl_is_NULL(expr) || \ +- __builtin_types_compatible_p(__typeof__(expr), curl_ssl_ctx_callback) || \ +- _curl_callback_compatible((expr), _curl_ssl_ctx_callback1) || \ +- _curl_callback_compatible((expr), _curl_ssl_ctx_callback2) || \ +- _curl_callback_compatible((expr), _curl_ssl_ctx_callback3) || \ +- _curl_callback_compatible((expr), _curl_ssl_ctx_callback4) || \ +- _curl_callback_compatible((expr), _curl_ssl_ctx_callback5) || \ +- _curl_callback_compatible((expr), _curl_ssl_ctx_callback6) || \ +- _curl_callback_compatible((expr), _curl_ssl_ctx_callback7) || \ +- _curl_callback_compatible((expr), _curl_ssl_ctx_callback8)) +-typedef CURLcode (_curl_ssl_ctx_callback1)(CURL *, void *, void *); +-typedef CURLcode (_curl_ssl_ctx_callback2)(CURL *, void *, const void *); +-typedef CURLcode (_curl_ssl_ctx_callback3)(CURL *, const void *, void *); +-typedef CURLcode (_curl_ssl_ctx_callback4)(CURL *, const void *, const void *); +-#ifdef HEADER_SSL_H +-/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX +- * this will of course break if we're included before OpenSSL headers... +- */ +-typedef CURLcode (_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *); +-typedef CURLcode (_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *); +-typedef CURLcode (_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *); +-typedef CURLcode (_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, const void *); +-#else +-typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5; +-typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6; +-typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7; +-typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8; +-#endif +- +-/* evaluates to true if expr is of type curl_conv_callback or "similar" */ +-#define _curl_is_conv_cb(expr) \ +- (_curl_is_NULL(expr) || \ +- __builtin_types_compatible_p(__typeof__(expr), curl_conv_callback) || \ +- _curl_callback_compatible((expr), _curl_conv_callback1) || \ +- _curl_callback_compatible((expr), _curl_conv_callback2) || \ +- _curl_callback_compatible((expr), _curl_conv_callback3) || \ +- _curl_callback_compatible((expr), _curl_conv_callback4)) +-typedef CURLcode (*_curl_conv_callback1)(char *, size_t length); +-typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length); +-typedef CURLcode (*_curl_conv_callback3)(void *, size_t length); +-typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length); +- +-/* evaluates to true if expr is of type curl_seek_callback or "similar" */ +-#define _curl_is_seek_cb(expr) \ +- (_curl_is_NULL(expr) || \ +- __builtin_types_compatible_p(__typeof__(expr), curl_seek_callback) || \ +- _curl_callback_compatible((expr), _curl_seek_callback1) || \ +- _curl_callback_compatible((expr), _curl_seek_callback2)) +-typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int); +-typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int); +- +- +-#endif /* __CURL_TYPECHECK_GCC_H */ +diff --git a/src/third_party/curl/types.h b/src/third_party/curl/types.h +deleted file mode 100644 +index d37d6ae..0000000 +--- a/src/third_party/curl/types.h ++++ /dev/null +@@ -1 +0,0 @@ +-/* not used */ +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0005-Add-support-for-DWARF-in-PECOFF-as-used-by-Cygwin-an.patch b/mingw-w64-breakpad-svn/0005-Add-support-for-DWARF-in-PECOFF-as-used-by-Cygwin-an.patch new file mode 100644 index 0000000000..435723ef21 --- /dev/null +++ b/mingw-w64-breakpad-svn/0005-Add-support-for-DWARF-in-PECOFF-as-used-by-Cygwin-an.patch @@ -0,0 +1,2195 @@ +From cac6e48f7c280b1c269136568168ffcad2cf304d Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Tue, 4 Feb 2014 00:57:13 +0000 +Subject: [PATCH 05/24] Add support for DWARF in PECOFF as used by Cygwin and + MinGW + +For cygwin and mingw targets, build a dump_syms tool which can read DWARF +symbols contained in a PE/COFF executable. + +I felt bad about making another copy of dump_symbols.cc, so this one has the +beginnings of being parameterized by an image file reader class, so we can apply +it to a pecoff-format image file reading class + +Write pecoff format image file reading class which +- knows how to read PE32 and PE32+ image files +- makes PECOFF file id by fetching from a CV record or by hashing +- can read PECOFF exports as a fallback if there is no DWARF information + +v2: +Don't include arpa/inet.h on MinGW + +v3: +Use AM_CPPFLAGS for NO_STABS_SUPPORT + +Signed-off-by: Jon TURNEY +--- + Makefile.am | 29 + + configure.ac | 5 + + src/common/pecoff/dump_symbols-inl.h | 706 +++++++++++++++++++++++++ + src/common/pecoff/dump_symbols.cc | 90 ++++ + src/common/pecoff/dump_symbols.h | 80 +++ + src/common/pecoff/pecoff.h | 262 +++++++++ + src/common/pecoff/pecoff_file_id.cc | 83 +++ + src/common/pecoff/pecoff_file_id.h | 52 ++ + src/common/pecoff/pecoffutils.cc | 490 +++++++++++++++++ + src/common/pecoff/pecoffutils.h | 167 ++++++ + src/tools/windows/dump_syms_dwarf/dump_syms.cc | 88 +++ + 11 files changed, 2052 insertions(+) + create mode 100644 src/common/pecoff/dump_symbols-inl.h + create mode 100644 src/common/pecoff/dump_symbols.cc + create mode 100644 src/common/pecoff/dump_symbols.h + create mode 100644 src/common/pecoff/pecoff.h + create mode 100644 src/common/pecoff/pecoff_file_id.cc + create mode 100644 src/common/pecoff/pecoff_file_id.h + create mode 100644 src/common/pecoff/pecoffutils.cc + create mode 100644 src/common/pecoff/pecoffutils.h + create mode 100644 src/tools/windows/dump_syms_dwarf/dump_syms.cc + +diff --git a/Makefile.am b/Makefile.am +index 6246c9c..c802304 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -61,6 +61,11 @@ AM_CFLAGS += -fPIC + AM_CXXFLAGS += -fPIC + endif + ++if WINDOWS_HOST ++# don't have stab.h, don't build stabs support ++AM_CPPFLAGS += -DNO_STABS_SUPPORT ++endif ++ + # Specify include paths for ac macros + ACLOCAL_AMFLAGS = -I m4 + +@@ -321,6 +326,12 @@ bin_PROGRAMS += \ + endif + endif LINUX_HOST + ++if WINDOWS_HOST ++if !DISABLE_TOOLS ++bin_PROGRAMS += \ ++ src/tools/windows/dump_syms_dwarf/dump_syms ++endif ++endif + + ## Tests + if !DISABLE_PROCESSOR +@@ -613,6 +624,24 @@ src_tools_linux_md2core_minidump_2_core_unittest_LDADD = \ + + endif LINUX_HOST + ++if WINDOWS_HOST ++if !DISABLE_TOOLS ++src_tools_windows_dump_syms_dwarf_dump_syms_SOURCES = \ ++ src/common/dwarf_cfi_to_module.cc \ ++ src/common/dwarf_cu_to_module.cc \ ++ src/common/dwarf_line_to_module.cc \ ++ src/common/language.cc \ ++ src/common/module.cc \ ++ src/common/dwarf/bytereader.cc \ ++ src/common/dwarf/dwarf2diehandler.cc \ ++ src/common/dwarf/dwarf2reader.cc \ ++ src/common/pecoff/dump_symbols.cc \ ++ src/common/pecoff/pecoffutils.cc \ ++ src/common/pecoff/pecoff_file_id.cc \ ++ src/tools/windows/dump_syms_dwarf/dump_syms.cc ++endif ++endif ++ + if !DISABLE_PROCESSOR + src_processor_address_map_unittest_SOURCES = \ + src/processor/address_map_unittest.cc +diff --git a/configure.ac b/configure.ac +index 8c02f51..aeccf19 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -80,8 +80,13 @@ case $host in + *-*-linux* | *-android* ) + LINUX_HOST=true + ;; ++ *-*-cygwin* ) ++ WINDOWS_HOST=true ++ ;; + esac ++ + AM_CONDITIONAL(LINUX_HOST, test x$LINUX_HOST = xtrue) ++AM_CONDITIONAL(WINDOWS_HOST, test x$WINDOWS_HOST = xtrue) + + # Only use Android support headers when compiling for Android + case $host in +diff --git a/src/common/pecoff/dump_symbols-inl.h b/src/common/pecoff/dump_symbols-inl.h +new file mode 100644 +index 0000000..6ec2059 +--- /dev/null ++++ b/src/common/pecoff/dump_symbols-inl.h +@@ -0,0 +1,706 @@ ++// Copyright (c) 2011 Google Inc. ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * Redistributions in binary form must reproduce the above ++// copyright notice, this list of conditions and the following disclaimer ++// in the documentation and/or other materials provided with the ++// distribution. ++// * Neither the name of Google Inc. nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++// dump_symbols-inl.h: implement google_breakpad::WriteSymbolFile: ++// Find all the debugging info in a file and dump it as a Breakpad symbol file. ++ ++#ifndef COMMON_PECOFF_DUMP_SYMBOLS_INL_H ++#define COMMON_PECOFF_DUMP_SYMBOLS_INL_H ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "common/dwarf/bytereader-inl.h" ++#include "common/dwarf/dwarf2diehandler.h" ++#include "common/dwarf_cfi_to_module.h" ++#include "common/dwarf_cu_to_module.h" ++#include "common/dwarf_line_to_module.h" ++#include "common/module.h" ++#include "common/scoped_ptr.h" ++#ifndef NO_STABS_SUPPORT ++#include "common/stabs_reader.h" ++#include "common/stabs_to_module.h" ++#endif ++#include "common/using_std_string.h" ++ ++// This namespace contains helper functions. ++namespace { ++ ++using google_breakpad::DumpOptions; ++using google_breakpad::DwarfCFIToModule; ++using google_breakpad::DwarfCUToModule; ++using google_breakpad::DwarfLineToModule; ++using google_breakpad::Module; ++#ifndef NO_STABS_SUPPORT ++using google_breakpad::StabsToModule; ++#endif ++using google_breakpad::scoped_ptr; ++ ++// ++// FDWrapper ++// ++// Wrapper class to make sure opened file is closed. ++// ++class FDWrapper { ++ public: ++ explicit FDWrapper(int fd) : ++ fd_(fd) {} ++ ~FDWrapper() { ++ if (fd_ != -1) ++ close(fd_); ++ } ++ int get() { ++ return fd_; ++ } ++ int release() { ++ int fd = fd_; ++ fd_ = -1; ++ return fd; ++ } ++ private: ++ int fd_; ++}; ++ ++// ++// MmapWrapper ++// ++// Wrapper class to make sure mapped regions are unmapped. ++// ++class MmapWrapper { ++ public: ++ MmapWrapper() : is_set_(false) {} ++ ~MmapWrapper() { ++ if (is_set_ && base_ != NULL) { ++ assert(size_ > 0); ++ munmap(base_, size_); ++ } ++ } ++ void set(void *mapped_address, size_t mapped_size) { ++ is_set_ = true; ++ base_ = mapped_address; ++ size_ = mapped_size; ++ } ++ void release() { ++ assert(is_set_); ++ is_set_ = false; ++ base_ = NULL; ++ size_ = 0; ++ } ++ ++ private: ++ bool is_set_; ++ void *base_; ++ size_t size_; ++}; ++ ++#ifndef NO_STABS_SUPPORT ++template ++bool LoadStabs(const typename ObjectFileReader::ObjectFileBase header, ++ const typename ObjectFileReader::Section stab_section, ++ const typename ObjectFileReader::Section stabstr_section, ++ const bool big_endian, ++ Module* module) { ++ // A callback object to handle data from the STABS reader. ++ StabsToModule handler(module); ++ // Find the addresses of the STABS data, and create a STABS reader object. ++ // On Linux, STABS entries always have 32-bit values, regardless of the ++ // address size of the architecture whose code they're describing, and ++ // the strings are always "unitized". ++ const uint8_t* stabs = ObjectFileReader::GetSectionPointer(header, ++ stab_section); ++ const uint8_t* stabstr = ObjectFileReader::GetSectionPointer(header, ++ stabstr_section); ++ google_breakpad::StabsReader reader(stabs, ++ ObjectFileReader::GetSectionSize(header, stab_section), ++ stabstr, ++ ObjectFileReader::GetSectionSize(header, stabstr_section), ++ big_endian, 4, true, &handler); ++ // Read the STABS data, and do post-processing. ++ if (!reader.Process()) ++ return false; ++ handler.Finalize(); ++ return true; ++} ++#endif // NO_STABS_SUPPORT ++ ++// A line-to-module loader that accepts line number info parsed by ++// dwarf2reader::LineInfo and populates a Module and a line vector ++// with the results. ++class DumperLineToModule: public DwarfCUToModule::LineToModuleHandler { ++ public: ++ // Create a line-to-module converter using BYTE_READER. ++ explicit DumperLineToModule(dwarf2reader::ByteReader *byte_reader) ++ : byte_reader_(byte_reader) { } ++ void StartCompilationUnit(const string& compilation_dir) { ++ compilation_dir_ = compilation_dir; ++ } ++ void ReadProgram(const char *program, uint64 length, ++ Module *module, std::vector *lines) { ++ DwarfLineToModule handler(module, compilation_dir_, lines); ++ dwarf2reader::LineInfo parser(program, length, byte_reader_, &handler); ++ parser.Start(); ++ } ++ private: ++ string compilation_dir_; ++ dwarf2reader::ByteReader *byte_reader_; ++}; ++ ++template ++bool LoadDwarf(const string& dwarf_filename, ++ const typename ObjectFileReader::ObjectFileBase header, ++ const bool big_endian, ++ bool handle_inter_cu_refs, ++ Module* module) { ++ typedef typename ObjectFileReader::Section Shdr; ++ ++ const dwarf2reader::Endianness endianness = big_endian ? ++ dwarf2reader::ENDIANNESS_BIG : dwarf2reader::ENDIANNESS_LITTLE; ++ dwarf2reader::ByteReader byte_reader(endianness); ++ ++ // Construct a context for this file. ++ DwarfCUToModule::FileContext file_context(dwarf_filename, ++ module, ++ handle_inter_cu_refs); ++ ++ // Build a map of the file's sections. ++ int num_sections = ObjectFileReader::GetNumberOfSections(header); ++ for (int i = 0; i < num_sections; ++i) { ++ const Shdr section = ObjectFileReader::FindSectionByIndex(header, i); ++ string name = ObjectFileReader::GetSectionName(header, section); ++ const char* contents = reinterpret_cast(ObjectFileReader::GetSectionPointer(header, section)); ++ file_context.AddSectionToSectionMap(name, contents, ++ ObjectFileReader::GetSectionSize(header, section)); ++ } ++ ++ // Parse all the compilation units in the .debug_info section. ++ DumperLineToModule line_to_module(&byte_reader); ++ dwarf2reader::SectionMap::const_iterator debug_info_entry = ++ file_context.section_map().find(".debug_info"); ++ assert(debug_info_entry != file_context.section_map().end()); ++ const std::pair& debug_info_section = ++ debug_info_entry->second; ++ // This should never have been called if the file doesn't have a ++ // .debug_info section. ++ assert(debug_info_section.first); ++ uint64 debug_info_length = debug_info_section.second; ++ for (uint64 offset = 0; offset < debug_info_length;) { ++ // Make a handler for the root DIE that populates MODULE with the ++ // data that was found. ++ DwarfCUToModule::WarningReporter reporter(dwarf_filename, offset); ++ DwarfCUToModule root_handler(&file_context, &line_to_module, &reporter); ++ // Make a Dwarf2Handler that drives the DIEHandler. ++ dwarf2reader::DIEDispatcher die_dispatcher(&root_handler); ++ // Make a DWARF parser for the compilation unit at OFFSET. ++ dwarf2reader::CompilationUnit reader(file_context.section_map(), ++ offset, ++ &byte_reader, ++ &die_dispatcher); ++ // Process the entire compilation unit; get the offset of the next. ++ offset += reader.Start(); ++ } ++ return true; ++} ++ ++// Fill REGISTER_NAMES with the register names appropriate to the ++// machine architecture, indexed by the register ++// numbers used in DWARF call frame information. Return true on ++// success, or false if HEADER's machine architecture is not ++// supported. ++bool DwarfCFIRegisterNames(const char *architecture, ++ std::vector* register_names) { ++ if (strcmp(architecture, "x86" ) == 0) ++ *register_names = DwarfCFIToModule::RegisterNames::I386(); ++ else if (strcmp(architecture, "arm" ) == 0) ++ *register_names = DwarfCFIToModule::RegisterNames::ARM(); ++ else if (strcmp(architecture, "mips" ) == 0) ++ *register_names = DwarfCFIToModule::RegisterNames::MIPS(); ++ else if (strcmp(architecture, "x86_64" ) == 0) ++ *register_names = DwarfCFIToModule::RegisterNames::X86_64(); ++ else ++ return false; ++ ++ return true; ++} ++ ++template ++bool LoadDwarfCFI(const string& dwarf_filename, ++ const typename ObjectFileReader::ObjectFileBase header, ++ const char* section_name, ++ const typename ObjectFileReader::Section section, ++ const bool eh_frame, ++ const typename ObjectFileReader::Section got_section, ++ const typename ObjectFileReader::Section text_section, ++ const bool big_endian, ++ Module* module) { ++ // Find the appropriate set of register names for this file's ++ // architecture. ++ const char *architecture = ObjectFileReader::Architecture(header); ++ std::vector register_names; ++ if (!DwarfCFIRegisterNames(architecture, ®ister_names)) { ++ return false; ++ } ++ ++ const dwarf2reader::Endianness endianness = big_endian ? ++ dwarf2reader::ENDIANNESS_BIG : dwarf2reader::ENDIANNESS_LITTLE; ++ ++ // Find the call frame information and its size. ++ const char* cfi = reinterpret_cast(ObjectFileReader::GetSectionPointer(header, section)); ++ size_t cfi_size = ObjectFileReader::GetSectionSize(header, section); ++ ++ // Plug together the parser, handler, and their entourages. ++ DwarfCFIToModule::Reporter module_reporter(dwarf_filename, section_name); ++ DwarfCFIToModule handler(module, register_names, &module_reporter); ++ dwarf2reader::ByteReader byte_reader(endianness); ++ ++ byte_reader.SetAddressSize(ObjectFileReader::kAddrSize); ++ ++ // Provide the base addresses for .eh_frame encoded pointers, if ++ // possible. ++ byte_reader.SetCFIDataBase(ObjectFileReader::GetSectionRVA(header, section) + ++ ObjectFileReader::GetLoadingAddress(header), ++ cfi); ++ if (got_section) ++ byte_reader.SetDataBase(ObjectFileReader::GetSectionRVA(header, got_section) + ++ ObjectFileReader::GetLoadingAddress(header)); ++ if (text_section) ++ byte_reader.SetTextBase(ObjectFileReader::GetSectionRVA(header, text_section) + ++ ObjectFileReader::GetLoadingAddress(header)); ++ ++ dwarf2reader::CallFrameInfo::Reporter dwarf_reporter(dwarf_filename, ++ section_name); ++ dwarf2reader::CallFrameInfo parser(cfi, cfi_size, ++ &byte_reader, &handler, &dwarf_reporter, ++ eh_frame); ++ parser.Start(); ++ return true; ++} ++ ++bool LoadFile(const string& obj_file, MmapWrapper* map_wrapper, ++ const void** header) { ++ int obj_fd = open(obj_file.c_str(), O_RDONLY); ++ if (obj_fd < 0) { ++ fprintf(stderr, "Failed to open file '%s': %s\n", ++ obj_file.c_str(), strerror(errno)); ++ return false; ++ } ++ FDWrapper obj_fd_wrapper(obj_fd); ++ struct stat st; ++ if (fstat(obj_fd, &st) != 0 && st.st_size <= 0) { ++ fprintf(stderr, "Unable to fstat file '%s': %s\n", ++ obj_file.c_str(), strerror(errno)); ++ return false; ++ } ++ void *obj_base = mmap(NULL, st.st_size, ++ PROT_READ | PROT_WRITE, MAP_PRIVATE, obj_fd, 0); ++ if (obj_base == MAP_FAILED) { ++ fprintf(stderr, "Failed to mmap file '%s': %s\n", ++ obj_file.c_str(), strerror(errno)); ++ return false; ++ } ++ map_wrapper->set(obj_base, st.st_size); ++ *header = obj_base; ++ return true; ++} ++ ++// Read the .gnu_debuglink and get the debug file name. If anything goes ++// wrong, return an empty string. ++template ++string ReadDebugLink(const char* debuglink, ++ size_t debuglink_size, ++ const string& obj_file, ++ const std::vector& debug_dirs) { ++ size_t debuglink_len = strlen(debuglink) + 5; // '\0' + CRC32. ++ debuglink_len = 4 * ((debuglink_len + 3) / 4); // Round to nearest 4 bytes. ++ ++ // Sanity check. ++ if (debuglink_len != debuglink_size) { ++ fprintf(stderr, "Mismatched .gnu_debuglink string / section size: " ++ "%zx %zx\n", debuglink_len, debuglink_size); ++ return ""; ++ } ++ ++ bool found = false; ++ int debuglink_fd = -1; ++ string debuglink_path; ++ std::vector::const_iterator it; ++ for (it = debug_dirs.begin(); it < debug_dirs.end(); ++it) { ++ const string& debug_dir = *it; ++ debuglink_path = debug_dir + "/" + debuglink; ++ debuglink_fd = open(debuglink_path.c_str(), O_RDONLY); ++ if (debuglink_fd >= 0) { ++ found = true; ++ break; ++ } ++ } ++ ++ if (!found) { ++ fprintf(stderr, "Failed to find debug file for '%s' after trying:\n", ++ obj_file.c_str()); ++ for (it = debug_dirs.begin(); it < debug_dirs.end(); ++it) { ++ const string debug_dir = *it; ++ fprintf(stderr, " %s/%s\n", debug_dir.c_str(), debuglink); ++ } ++ return ""; ++ } ++ ++ FDWrapper debuglink_fd_wrapper(debuglink_fd); ++ // TODO(thestig) check the CRC-32 at the end of the .gnu_debuglink ++ // section. ++ ++ return debuglink_path; ++} ++ ++// ++// LoadSymbolsInfo ++// ++// Holds the state between the two calls to LoadSymbols() in case it's necessary ++// to follow the .gnu_debuglink section and load debug information from a ++// different file. ++// ++template ++class LoadSymbolsInfo { ++ public: ++ typedef typename ObjectFileReader::Addr Addr; ++ ++ explicit LoadSymbolsInfo(const std::vector& dbg_dirs) : ++ debug_dirs_(dbg_dirs), ++ has_loading_addr_(false) {} ++ ++ // Keeps track of which sections have been loaded so sections don't ++ // accidentally get loaded twice from two different files. ++ void LoadedSection(const string §ion) { ++ if (loaded_sections_.count(section) == 0) { ++ loaded_sections_.insert(section); ++ } else { ++ fprintf(stderr, "Section %s has already been loaded.\n", ++ section.c_str()); ++ } ++ } ++ ++ // The file and linked debug file are expected to have the same preferred ++ // loading address. ++ void set_loading_addr(Addr addr, const string &filename) { ++ if (!has_loading_addr_) { ++ loading_addr_ = addr; ++ loaded_file_ = filename; ++ return; ++ } ++ ++ if (addr != loading_addr_) { ++ fprintf(stderr, ++ "file '%s' and debug file '%s' " ++ "have different load addresses.\n", ++ loaded_file_.c_str(), filename.c_str()); ++ assert(false); ++ } ++ } ++ ++ // Setters and getters ++ const std::vector& debug_dirs() const { ++ return debug_dirs_; ++ } ++ ++ string debuglink_file() const { ++ return debuglink_file_; ++ } ++ void set_debuglink_file(string file) { ++ debuglink_file_ = file; ++ } ++ ++ private: ++ const std::vector& debug_dirs_; // Directories in which to ++ // search for the debug file. ++ ++ string debuglink_file_; // Full path to the debug file. ++ ++ bool has_loading_addr_; // Indicate if LOADING_ADDR_ is valid. ++ ++ Addr loading_addr_; // Saves the preferred loading address from the ++ // first call to LoadSymbols(). ++ ++ string loaded_file_; // Name of the file loaded from the first call to ++ // LoadSymbols(). ++ ++ std::set loaded_sections_; // Tracks the Loaded sections ++ // between calls to LoadSymbols(). ++}; ++ ++template ++bool LoadSymbols(const string& obj_file, ++ const bool big_endian, ++ const typename ObjectFileReader::ObjectFileBase header, ++ const bool read_gnu_debug_link, ++ LoadSymbolsInfo* info, ++ const DumpOptions& options, ++ Module* module) { ++ typedef typename ObjectFileReader::Addr Addr; ++ typedef typename ObjectFileReader::Section Shdr; ++ ++ Addr loading_addr = ObjectFileReader::GetLoadingAddress(header); ++ module->SetLoadAddress(loading_addr); ++ info->set_loading_addr(loading_addr, obj_file); ++ ++ bool found_debug_info_section = false; ++ bool found_usable_info = false; ++ ++ if (options.symbol_data != ONLY_CFI) { ++#ifndef NO_STABS_SUPPORT ++ // Look for STABS debugging information, and load it if present. ++ const Shdr stab_section = ++ ObjectFileReader::FindSectionByName(".stab", header); ++ if (stab_section) { ++ const Shdr stabstr_section = ObjectFileReader::FindLinkedSection(header, stab_section); ++ if (stabstr_section) { ++ found_debug_info_section = true; ++ found_usable_info = true; ++ info->LoadedSection(".stab"); ++ if (!LoadStabs(header, stab_section, stabstr_section, ++ big_endian, module)) { ++ fprintf(stderr, "%s: \".stab\" section found, but failed to load" ++ " STABS debugging information\n", obj_file.c_str()); ++ } ++ } ++ } ++#endif // NO_STABS_SUPPORT ++ ++ // Look for DWARF debugging information, and load it if present. ++ const Shdr dwarf_section = ++ ObjectFileReader::FindSectionByName(".debug_info", header); ++ if (dwarf_section) { ++ found_debug_info_section = true; ++ found_usable_info = true; ++ info->LoadedSection(".debug_info"); ++ if (!LoadDwarf(obj_file, header, big_endian, ++ options.handle_inter_cu_refs, module)) { ++ fprintf(stderr, "%s: \".debug_info\" section found, but failed to load " ++ "DWARF debugging information\n", obj_file.c_str()); ++ } ++ } ++ } ++ ++ if (options.symbol_data != NO_CFI) { ++ // Dwarf Call Frame Information (CFI) is actually independent from ++ // the other DWARF debugging information, and can be used alone. ++ const Shdr dwarf_cfi_section = ++ ObjectFileReader::FindSectionByName(".debug_frame", header); ++ if (dwarf_cfi_section) { ++ // Ignore the return value of this function; even without call frame ++ // information, the other debugging information could be perfectly ++ // useful. ++ info->LoadedSection(".debug_frame"); ++ bool result = ++ LoadDwarfCFI(obj_file, header, ".debug_frame", ++ dwarf_cfi_section, false, 0, 0, big_endian, ++ module); ++ found_usable_info = found_usable_info || result; ++ } ++ ++ // Linux C++ exception handling information can also provide ++ // unwinding data. ++ const Shdr eh_frame_section = ++ ObjectFileReader::FindSectionByName(".eh_frame", header); ++ if (eh_frame_section) { ++ // Pointers in .eh_frame data may be relative to the base addresses of ++ // certain sections. Provide those sections if present. ++ const Shdr got_section = ++ ObjectFileReader::FindSectionByName(".got", header); ++ const Shdr text_section = ++ ObjectFileReader::FindSectionByName(".text", header); ++ info->LoadedSection(".eh_frame"); ++ // As above, ignore the return value of this function. ++ bool result = ++ LoadDwarfCFI(obj_file, header, ".eh_frame", ++ eh_frame_section, true, ++ got_section, text_section, big_endian, module); ++ found_usable_info = found_usable_info || result; ++ } ++ } ++ ++ if (!found_debug_info_section) { ++ fprintf(stderr, "%s: file contains no debugging information" ++ " (no \".stab\" or \".debug_info\" sections)\n", ++ obj_file.c_str()); ++ ++ // Failed, but maybe there's a .gnu_debuglink section? ++ if (read_gnu_debug_link) { ++ const Shdr gnu_debuglink_section ++ = ObjectFileReader::FindSectionByName(".gnu_debuglink", header); ++ if (gnu_debuglink_section) { ++ if (!info->debug_dirs().empty()) { ++ const char* debuglink_contents = reinterpret_cast ++ (ObjectFileReader::GetSectionPointer(header, gnu_debuglink_section)); ++ string debuglink_file ++ = ReadDebugLink(debuglink_contents, ++ ObjectFileReader::GetSectionSize(header, gnu_debuglink_section), ++ obj_file, info->debug_dirs()); ++ info->set_debuglink_file(debuglink_file); ++ } else { ++ fprintf(stderr, ".gnu_debuglink section found in '%s', " ++ "but no debug path specified.\n", obj_file.c_str()); ++ } ++ } else { ++ fprintf(stderr, "%s does not contain a .gnu_debuglink section.\n", ++ obj_file.c_str()); ++ } ++ } else { ++ if (options.symbol_data != ONLY_CFI) { ++ // The caller doesn't want to consult .gnu_debuglink. ++ // See if there are export symbols available. ++ bool result = ObjectFileReader::ExportedSymbolsToModule(header, module); ++ found_usable_info = found_usable_info || result; ++ } ++ ++ // Return true if some usable information was found, since ++ // the caller doesn't want to use .gnu_debuglink. ++ return found_usable_info; ++ } ++ ++ // No debug info was found, let the user try again with .gnu_debuglink ++ // if present. ++ return false; ++ } ++ ++ return true; ++} ++ ++// Return the non-directory portion of FILENAME: the portion after the ++// last slash, or the whole filename if there are no slashes. ++string BaseFileName(const string &filename) { ++ // Lots of copies! basename's behavior is less than ideal. ++ char *c_filename = strdup(filename.c_str()); ++ string base = basename(c_filename); ++ free(c_filename); ++ return base; ++} ++ ++template ++bool ReadSymbolDataFromObjectFile( ++ const typename ObjectFileReader::ObjectFileBase header, ++ const string& obj_filename, ++ const std::vector& debug_dirs, ++ const DumpOptions& options, ++ Module** out_module) { ++ ++ typedef typename ObjectFileReader::Section Shdr; ++ ++ *out_module = NULL; ++ ++ string identifier = ObjectFileReader::FileIdentifierFromMappedFile(header); ++ if (identifier.empty()) { ++ fprintf(stderr, "%s: unable to generate file identifier\n", ++ obj_filename.c_str()); ++ return false; ++ } ++ ++ const char *architecture = ObjectFileReader::Architecture(header); ++ if (!architecture) { ++ return false; ++ } ++ ++ // Figure out what endianness this file is. ++ bool big_endian; ++ if (!ObjectFileReader::Endianness(header, &big_endian)) ++ return false; ++ ++ string name = BaseFileName(obj_filename); ++ string os = "windows"; ++ string id = identifier; ++ ++ LoadSymbolsInfo info(debug_dirs); ++ scoped_ptr module(new Module(name, os, architecture, id)); ++ if (!LoadSymbols(obj_filename, big_endian, header, ++ !debug_dirs.empty(), &info, ++ options, module.get())) { ++ const string debuglink_file = info.debuglink_file(); ++ if (debuglink_file.empty()) ++ return false; ++ ++ // Load debuglink file. ++ fprintf(stderr, "Found debugging info in %s\n", debuglink_file.c_str()); ++ MmapWrapper debug_map_wrapper; ++ typename ObjectFileReader::ObjectFileBase debug_header = NULL; ++ if (!LoadFile(debuglink_file, &debug_map_wrapper, ++ reinterpret_cast(&debug_header))) ++ return false; ++ ++ if (!ObjectFileReader::IsValid(debug_header)) { ++ fprintf(stderr, "Not a valid file: %s\n", debuglink_file.c_str()); ++ return false; ++ } ++ ++ // Sanity checks to make sure everything matches up. ++ const char *debug_architecture = ++ ObjectFileReader::Architecture(debug_header); ++ if (!debug_architecture) { ++ return false; ++ } ++ if (strcmp(architecture, debug_architecture)) { ++ fprintf(stderr, "%s with machine architecture %s does not match " ++ "%s with architecture %s\n", ++ debuglink_file.c_str(), debug_architecture, ++ obj_filename.c_str(), architecture); ++ return false; ++ } ++ ++ bool debug_big_endian; ++ if (!ObjectFileReader::Endianness(debug_header, &debug_big_endian)) ++ return false; ++ if (debug_big_endian != big_endian) { ++ fprintf(stderr, "%s and %s does not match in endianness\n", ++ obj_filename.c_str(), debuglink_file.c_str()); ++ return false; ++ } ++ ++ if (!LoadSymbols(debuglink_file, debug_big_endian, ++ debug_header, false, &info, ++ options, module.get())) { ++ return false; ++ } ++ } ++ ++ *out_module = module.release(); ++ return true; ++} ++ ++} // namespace ++ ++#endif // COMMON_PECOFF_DUMP_SYMBOLS_INL_H +diff --git a/src/common/pecoff/dump_symbols.cc b/src/common/pecoff/dump_symbols.cc +new file mode 100644 +index 0000000..47be940 +--- /dev/null ++++ b/src/common/pecoff/dump_symbols.cc +@@ -0,0 +1,90 @@ ++// Copyright (c) 2011 Google Inc. ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * Redistributions in binary form must reproduce the above ++// copyright notice, this list of conditions and the following disclaimer ++// in the documentation and/or other materials provided with the ++// distribution. ++// * Neither the name of Google Inc. nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++#include "common/pecoff/dump_symbols.h" ++ ++#include "common/pecoff/pecoffutils.h" ++#include "common/pecoff/dump_symbols-inl.h" ++ ++namespace google_breakpad { ++ ++// Not explicitly exported, but not static so it can be used in unit tests. ++bool ReadSymbolDataInternal(const uint8_t* obj_file, ++ const string& obj_filename, ++ const std::vector& debug_dirs, ++ const DumpOptions& options, ++ Module** module) { ++ if (!IsValidPeCoff(obj_file)) { ++ fprintf(stderr, "Not a valid PE/COFF file: %s\n", obj_filename.c_str()); ++ return false; ++ } ++ ++ int peclass = PeCoffClass(obj_file); ++ if (peclass == PE32) { ++ return ReadSymbolDataFromObjectFile( ++ reinterpret_cast(obj_file), obj_filename, debug_dirs, ++ options, module); ++ } ++ if (peclass == PE32PLUS) { ++ return ReadSymbolDataFromObjectFile( ++ reinterpret_cast(obj_file), obj_filename, debug_dirs, ++ options, module); ++ } ++ ++ return false; ++} ++ ++bool WriteSymbolFile(const string &obj_file, ++ const std::vector& debug_dirs, ++ const DumpOptions& options, ++ std::ostream &sym_stream) { ++ Module* module; ++ if (!ReadSymbolData(obj_file, debug_dirs, options, &module)) ++ return false; ++ ++ bool result = module->Write(sym_stream, options.symbol_data); ++ delete module; ++ return result; ++} ++ ++bool ReadSymbolData(const string& obj_file, ++ const std::vector& debug_dirs, ++ const DumpOptions& options, ++ Module** module) { ++ MmapWrapper map_wrapper; ++ const void* pe_header = NULL; ++ ++ if (!LoadFile(obj_file, &map_wrapper, &pe_header)) ++ return false; ++ ++ return ReadSymbolDataInternal(reinterpret_cast(pe_header), ++ obj_file, debug_dirs, options, module); ++} ++ ++} // namespace google_breakpad +diff --git a/src/common/pecoff/dump_symbols.h b/src/common/pecoff/dump_symbols.h +new file mode 100644 +index 0000000..675a489 +--- /dev/null ++++ b/src/common/pecoff/dump_symbols.h +@@ -0,0 +1,80 @@ ++// -*- mode: c++ -*- ++ ++// Copyright (c) 2011, Google Inc. ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * Redistributions in binary form must reproduce the above ++// copyright notice, this list of conditions and the following disclaimer ++// in the documentation and/or other materials provided with the ++// distribution. ++// * Neither the name of Google Inc. nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++// dump_symbols.h: Read debugging information from a PECOFF file, and write ++// it out as a Breakpad symbol file. ++ ++#ifndef COMMON_PECOFF_DUMP_SYMBOLS_H__ ++#define COMMON_PECOFF_DUMP_SYMBOLS_H__ ++ ++#include ++#include ++#include ++ ++#include "common/symbol_data.h" ++#include "common/using_std_string.h" ++ ++namespace google_breakpad { ++ ++class Module; ++ ++struct DumpOptions { ++ DumpOptions(SymbolData symbol_data, bool handle_inter_cu_refs) ++ : symbol_data(symbol_data), ++ handle_inter_cu_refs(handle_inter_cu_refs) { ++ } ++ ++ SymbolData symbol_data; ++ bool handle_inter_cu_refs; ++}; ++ ++// Find all the debugging information in OBJ_FILE, an PECOFF executable ++// or shared library, and write it to SYM_STREAM in the Breakpad symbol ++// file format. ++// If OBJ_FILE has been stripped but contains a .gnu_debuglink section, ++// then look for the debug file in DEBUG_DIRS. ++// SYMBOL_DATA allows limiting the type of symbol data written. ++bool WriteSymbolFile(const string &obj_file, ++ const std::vector& debug_dirs, ++ const DumpOptions& options, ++ std::ostream &sym_stream); ++ ++// As above, but simply return the debugging information in MODULE ++// instead of writing it to a stream. The caller owns the resulting ++// Module object and must delete it when finished. ++bool ReadSymbolData(const string& obj_file, ++ const std::vector& debug_dirs, ++ const DumpOptions& options, ++ Module** module); ++ ++} // namespace google_breakpad ++ ++#endif // COMMON_PECOFF_DUMP_SYMBOLS_H__ +diff --git a/src/common/pecoff/pecoff.h b/src/common/pecoff/pecoff.h +new file mode 100644 +index 0000000..9ac32ef +--- /dev/null ++++ b/src/common/pecoff/pecoff.h +@@ -0,0 +1,262 @@ ++// Copyright (c) 2014 Google Inc. ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * Redistributions in binary form must reproduce the above ++// copyright notice, this list of conditions and the following disclaimer ++// in the documentation and/or other materials provided with the ++// distribution. ++// * Neither the name of Google Inc. nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++// pecoff.h: PECOFF file format ++// ++ ++#ifndef COMMON_PECOFF_PECOFF_H__ ++#define COMMON_PECOFF_PECOFF_H__ ++ ++#include ++ ++#define IMAGE_FILE_HEADER_OFFSET 0x3c ++ ++#define IMAGE_FILE_MAGIC 0x00004550 // "PE\0\0" ++ ++#define IMAGE_FILE_MACHINE_UNKNOWN 0x0000 ++#define IMAGE_FILE_MACHINE_ALPHA 0x0184 ++#define IMAGE_FILE_MACHINE_ALPHA64 0x0284 ++#define IMAGE_FILE_MACHINE_AM33 0x01d3 ++#define IMAGE_FILE_MACHINE_AMD64 0x8664 ++#define IMAGE_FILE_MACHINE_ARM 0x01c0 ++#define IMAGE_FILE_MACHINE_ARMV7 0x01c4 ++#define IMAGE_FILE_MACHINE_CEE 0xc0ee ++#define IMAGE_FILE_MACHINE_CEF 0x0cef ++#define IMAGE_FILE_MACHINE_EBC 0x0ebc ++#define IMAGE_FILE_MACHINE_I386 0x014c ++#define IMAGE_FILE_MACHINE_IA64 0x0200 ++#define IMAGE_FILE_MACHINE_M32R 0x9041 ++#define IMAGE_FILE_MACHINE_M68K 0x0268 ++#define IMAGE_FILE_MACHINE_MIPS16 0x0266 ++#define IMAGE_FILE_MACHINE_MIPSFPU 0x0366 ++#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466 ++#define IMAGE_FILE_MACHINE_POWERPC 0x01f0 ++#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1 ++#define IMAGE_FILE_MACHINE_R10000 0x0168 ++#define IMAGE_FILE_MACHINE_R3000 0x0162 ++#define IMAGE_FILE_MACHINE_R4000 0x0166 ++#define IMAGE_FILE_MACHINE_SH3 0x01a2 ++#define IMAGE_FILE_MACHINE_SH3DSP 0x01a3 ++#define IMAGE_FILE_MACHINE_SH3E 0x01a4 ++#define IMAGE_FILE_MACHINE_SH4 0x01a6 ++#define IMAGE_FILE_MACHINE_SH5 0x01a8 ++#define IMAGE_FILE_MACHINE_THUMB 0x01c2 ++#define IMAGE_FILE_MACHINE_TRICORE 0x0520 ++#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169 ++#define IMAGE_FILE_MACHINE_AMD64 0x8664 ++ ++struct PeHeader { ++ uint32_t mMagic; // IMAGE_FILE_MAGIC ++ uint16_t mMachine; // IMAGE_FILE_MACHINE_* values ++ uint16_t mNumberOfSections; ++ uint32_t mTimeDateStamp; ++ uint32_t mPointerToSymbolTable; ++ uint32_t mNumberOfSymbols; ++ uint16_t mSizeOfOptionalHeader; ++ uint16_t mCharacteristics; ++}; ++ ++enum PeMagic { ++ PE32 = 0x010b, // 32 bit ++ PE32PLUS = 0x020b, // 64 bit address space, 2GB image size limit ++}; ++ ++struct PeDataDirectory { ++ uint32_t mVirtualAddress; ++ uint32_t mSize; ++}; ++ ++struct Pe32OptionalHeader { ++ uint16_t mMagic; // PeMagic ++ uint8_t mMajorLinkerVersion; ++ uint8_t mMinorLinkerVersion; ++ uint32_t mSizeOfCode; ++ uint32_t mSizeOfInitializedData; ++ uint32_t mSizeOfUninitializedData; ++ uint32_t mAddressOfEntryPoint; ++ uint32_t mBaseOfCode; ++ uint32_t mBaseOfData; ++ uint32_t mImageBase; ++ uint32_t mSectionAlignment; ++ uint32_t mFileAlignment; ++ uint16_t mMajorOperatingSystemVersion; ++ uint16_t mMinorOperatingSystemVersion; ++ uint16_t mMajorImageVersion; ++ uint16_t mMinorImageVersion; ++ uint16_t mMajorSubsystemVersion; ++ uint16_t mMinorSubsystemVersion; ++ uint32_t mWin32VersionValue; ++ uint32_t mSizeOfImage; ++ uint32_t mSizeOfHeaders; ++ uint32_t mCheckSum; ++ uint16_t mSubsystem; ++ uint16_t mDllCharacteristics; ++ uint32_t mSizeOfStackReserve; ++ uint32_t mSizeOfStackCommit; ++ uint32_t mSizeOfHeapReserve; ++ uint32_t mSizeOfHeapCommit; ++ uint32_t mLoaderFlags; ++ uint32_t mNumberOfRvaAndSizes; ++ PeDataDirectory mDataDirectory[0]; ++}; ++ ++struct Pe32PlusOptionalHeader { ++ uint16_t mMagic; // PeMagic ++ uint8_t mMajorLinkerVersion; ++ uint8_t mMinorLinkerVersion; ++ uint32_t mSizeOfCode; ++ uint32_t mSizeOfInitializedData; ++ uint32_t mSizeOfUninitializedData; ++ uint32_t mAddressOfEntryPoint; ++ uint32_t mBaseOfCode; ++ uint64_t mImageBase; ++ uint32_t mSectionAlignment; ++ uint32_t mFileAlignment; ++ uint16_t mMajorOperatingSystemVersion; ++ uint16_t mMinorOperatingSystemVersion; ++ uint16_t mMajorImageVersion; ++ uint16_t mMinorImageVersion; ++ uint16_t mMajorSubsystemVersion; ++ uint16_t mMinorSubsystemVersion; ++ uint32_t mWin32VersionValue; ++ uint32_t mSizeOfImage; ++ uint32_t mSizeOfHeaders; ++ uint32_t mCheckSum; ++ uint16_t mSubsystem; ++ uint16_t mDllCharacteristics; ++ uint64_t mSizeOfStackReserve; ++ uint64_t mSizeOfStackCommit; ++ uint64_t mSizeOfHeapReserve; ++ uint64_t mSizeOfHeapCommit; ++ uint32_t mLoaderFlags; ++ uint32_t mNumberOfRvaAndSizes; ++ PeDataDirectory mDataDirectory[0]; ++}; ++ ++#define PE_EXPORT_TABLE 0 ++#define PE_IMPORT_TABLE 1 ++#define PE_RESOURCE_TABLE 2 ++#define PE_EXCEPTION_TABLE 3 ++#define PE_CERTIFICATE_TABLE 4 ++#define PE_BASE_RELOCATION_TABLE 5 ++#define PE_DEBUG_DATA 6 ++#define PE_ARCHITECTURE 7 ++#define PE_GLOBAL_PTR 8 ++#define PE_TLS_TABLE 9 ++#define PE_LOAD_CONFIG_TABLE 10 ++#define PE_BOUND_IMPORT_TABLE 11 ++#define PE_IMPORT_ADDRESS_TABLE 12 ++#define PE_DELAY_IMPORT_DESCRIPTOR 13 ++#define PE_CLR_RUNTIME_HEADER 14 ++ ++struct PeDebugDirectory { ++ uint32_t mCharacteristics; ++ uint32_t mTimeDateStamp; ++ uint16_t mMajorVersion; ++ uint16_t mMinorVersion; ++ uint32_t mType; ++ uint32_t mSizeOfData; ++ uint32_t mAddressOfRawData; ++ uint32_t mPointerToRawData; ++}; ++ ++#define IMAGE_DEBUG_TYPE_UNKNOWN 0 ++#define IMAGE_DEBUG_TYPE_COFF 1 ++#define IMAGE_DEBUG_TYPE_CODEVIEW 2 ++#define IMAGE_DEBUG_TYPE_FPO 3 ++#define IMAGE_DEBUG_TYPE_MISC 4 ++#define IMAGE_DEBUG_TYPE_EXCEPTION 5 ++#define IMAGE_DEBUG_TYPE_FIXUP 6 ++#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7 ++#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8 ++#define IMAGE_DEBUG_TYPE_BORLAND 9 ++#define IMAGE_DEBUG_TYPE_RESERVED10 10 ++#define IMAGE_DEBUG_TYPE_CLSID 11 ++ ++struct CvInfoPbd70 ++{ ++ uint32_t mCvSignature; ++ uint8_t mSignature[16]; ++ uint32_t mAge; ++ uint8_t mPdbFileName[]; ++}; ++ ++#define CODEVIEW_PDB70_CVSIGNATURE 0x53445352 // "RSDS" ++#define CODEVIEW_PDB20_CVSIGNATURE 0x3031424e // "NB10" ++#define CODEVIEW_CV50_CVSIGNATURE 0x3131424e // "NB11" ++#define CODEVIEW_CV41_CVSIGNATURE 0x3930424e // “NB09" ++ ++struct PeSectionHeader { ++ char mName[8]; ++ union { ++ uint32_t mPhysicalAddress; ++ uint32_t mVirtualSize; ++ } ; ++ uint32_t mVirtualAddress; ++ uint32_t mSizeOfRawData; ++ uint32_t mPointerToRawData; ++ uint32_t mPointerToRelocations; ++ uint32_t mPointerToLinenumbers; ++ uint16_t mNumberOfRelocations; ++ uint16_t mNumberOfLinenumbers; ++ uint32_t mCharacteristics; ++}; ++ ++struct __attribute__ ((__packed__)) PeSymbol ++{ ++ union { ++ char mName[8]; // Symbol Name ++ struct { ++ uint32_t mFirst4Bytes; ++ uint32_t mSecond4Bytes; ++ }; ++ }; ++ ++ uint32_t mValue; // Value of Symbol ++ uint16_t mScNum; // Section Number ++ uint16_t mType; // Symbol Type ++ uint8_t mSClass; // Storage Class ++ uint8_t mNumAux; // Auxiliary Count ++}; ++ ++struct PeExportTable { ++ uint32_t mFlags; ++ uint32_t mTimeDateStamp; ++ uint16_t mMajorVersion; ++ uint16_t mMinorVErsion; ++ uint32_t mNameRVA; ++ uint32_t mOrdinalBase; ++ uint32_t mAddressTableEntries; ++ uint32_t mNumberofNamePointers; ++ uint32_t mExportAddressTableRVA; ++ uint32_t mNamePointerRVA; ++ uint32_t mOrdinalTableRVA; ++}; ++ ++#endif// COMMON_PECOFF_PECOFF_H__ +diff --git a/src/common/pecoff/pecoff_file_id.cc b/src/common/pecoff/pecoff_file_id.cc +new file mode 100644 +index 0000000..47c2763 +--- /dev/null ++++ b/src/common/pecoff/pecoff_file_id.cc +@@ -0,0 +1,83 @@ ++// Copyright (c) 2006, Google Inc. ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * Redistributions in binary form must reproduce the above ++// copyright notice, this list of conditions and the following disclaimer ++// in the documentation and/or other materials provided with the ++// distribution. ++// * Neither the name of Google Inc. nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++// ++// pecoff_file_id.cc: Return a unique identifier for a file ++// ++ ++#include "common/pecoff/pecoff_file_id.h" ++ ++#include "common/pecoff/pecoffutils.h" ++ ++namespace google_breakpad { ++ ++// Attempt to locate a CodeView build-id section in a PECOFF binary ++// and copy as many bytes of it as will fit into |identifier|. ++static bool FindPeCoffBuildID(const uint8_t* mapped_base, ++ uint8_t identifier[kMDGUIDSize], ++ uint32_t *age) { ++ int peclass = PeCoffClass(mapped_base); ++ if (peclass == PE32) ++ return PeCoffClass32::GetBuildID(mapped_base, identifier, age); ++ if (peclass == PE32PLUS) ++ return PeCoffClass64::GetBuildID(mapped_base, identifier, age); ++ ++ return false; ++} ++ ++// Attempt to locate the .text section of a binary and generate ++// a simple hash by XORing the first page worth of bytes into |identifier|. ++static bool HashPeCoffTextSection(const uint8_t* mapped_base, ++ uint8_t identifier[kMDGUIDSize]) { ++ int peclass = PeCoffClass(mapped_base); ++ if (peclass == PE32) ++ return PeCoffClass32::HashTextSection(mapped_base, identifier); ++ if (peclass == PE32PLUS) ++ return PeCoffClass64::HashTextSection(mapped_base, identifier); ++ ++ return false; ++} ++ ++bool PeCoffFileID::PeCoffFileIdentifierFromMappedFile(const void* base, ++ uint8_t identifier[kMDGUIDSize], ++ uint32_t *age) { ++ *age = 0; ++ ++ // Look for a build id first. ++ if (FindPeCoffBuildID(reinterpret_cast(base), identifier, ++ age)) ++ return true; ++ ++ // Fall back on hashing the first page of the text section. ++ // (This is of questionable value as the Windows Minidump writer doesn't have ++ // this feature) ++ return HashPeCoffTextSection(reinterpret_cast(base), ++ identifier); ++} ++ ++} // namespace google_breakpad +diff --git a/src/common/pecoff/pecoff_file_id.h b/src/common/pecoff/pecoff_file_id.h +new file mode 100644 +index 0000000..fd2ea10 +--- /dev/null ++++ b/src/common/pecoff/pecoff_file_id.h +@@ -0,0 +1,52 @@ ++// Copyright (c) 2006, Google Inc. ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * Redistributions in binary form must reproduce the above ++// copyright notice, this list of conditions and the following disclaimer ++// in the documentation and/or other materials provided with the ++// distribution. ++// * Neither the name of Google Inc. nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++// ++// pecoff_file_id.h: Return a unique identifier for a file ++// ++ ++#ifndef COMMON_PECOFF_PECOFF_FILE_ID_H__ ++#define COMMON_PECOFF_PECOFF_FILE_ID_H__ ++ ++#include ++#include ++ ++namespace google_breakpad { ++ ++static const size_t kMDGUIDSize = 16; ++ ++class PeCoffFileID { ++ public: ++ static bool PeCoffFileIdentifierFromMappedFile(const void* base, ++ uint8_t identifier[kMDGUIDSize], ++ uint32_t* age); ++}; ++ ++} // namespace google_breakpad ++ ++#endif // COMMON_PECOFF_PECOFF_FILE_ID_H__ +diff --git a/src/common/pecoff/pecoffutils.cc b/src/common/pecoff/pecoffutils.cc +new file mode 100644 +index 0000000..158270d +--- /dev/null ++++ b/src/common/pecoff/pecoffutils.cc +@@ -0,0 +1,490 @@ ++// Copyright (c) 2014 Google Inc. ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * Redistributions in binary form must reproduce the above ++// copyright notice, this list of conditions and the following disclaimer ++// in the documentation and/or other materials provided with the ++// distribution. ++// * Neither the name of Google Inc. nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++// pecoffutils.c: Utilities for dealing with PECOFF files ++// ++ ++#include "common/pecoff/pecoffutils.h" ++ ++#include ++#include ++#include ++ ++#ifndef _WIN32 ++#include ++#endif ++ ++namespace google_breakpad { ++ ++bool IsValidPeCoff(const uint8_t* obj_base) { ++ // at offset 0x3c, find the offset to PE signature ++ const uint32_t* peOffsetPtr = reinterpret_cast(obj_base + ++ IMAGE_FILE_HEADER_OFFSET); ++ ++ // TODO: ideally we want to check that the offset is less than the size of the ++ // mapped file, but we don't have that information at the moment ++ // ++ // if (*peOffsetPtr > size) return FALSE; ++ ++ // check PE signature ++ const PeHeader* peHeader = reinterpret_cast(obj_base+*peOffsetPtr); ++ if (peHeader->mMagic != IMAGE_FILE_MAGIC) ++ return false; ++ ++ return true; ++} ++ ++int PeCoffClass(const uint8_t* obj_base) { ++ const uint32_t* peOffsetPtr = reinterpret_cast(obj_base + ++ IMAGE_FILE_HEADER_OFFSET); ++ const PeHeader* peHeader = reinterpret_cast(obj_base+*peOffsetPtr); ++ const uint16_t* peOptionalHeader = reinterpret_cast ++ (reinterpret_cast(peHeader) + sizeof(PeHeader)); ++ ++ // We need to read the magic before we know if this a Pe32OptionalHeader or ++ // Pe32PlusOptionalHeader, so we don't use those types here. ++ return *peOptionalHeader; ++} ++ ++// ++// Header information ++// ++ ++template ++const char* PeCoffObjectFileReader::Architecture( ++ ObjectFileBase obj_base) { ++ const PeHeader* peHeader = GetHeader(obj_base); ++ uint16_t arch = peHeader->mMachine; ++ switch (arch) { ++ case IMAGE_FILE_MACHINE_I386: ++ return "x86"; ++ case IMAGE_FILE_MACHINE_ARM: ++ return "arm"; ++ case IMAGE_FILE_MACHINE_MIPS16: ++ case IMAGE_FILE_MACHINE_MIPSFPU: ++ case IMAGE_FILE_MACHINE_MIPSFPU16: ++ case IMAGE_FILE_MACHINE_WCEMIPSV2: ++ return "mips"; ++ case IMAGE_FILE_MACHINE_POWERPC: ++ case IMAGE_FILE_MACHINE_POWERPCFP: ++ return "ppc"; ++ case IMAGE_FILE_MACHINE_AMD64: ++ return "x86_64"; ++ default: ++ fprintf(stderr, "unrecognized machine architecture: %d\n", ++ peHeader->mMachine); ++ return NULL; ++ } ++} ++ ++template ++bool PeCoffObjectFileReader::Endianness( ++ ObjectFileBase obj_base, ++ bool* big_endian) { ++ // TODO: Not sure what big-endian PECOFF looks like: characteristics flag ++ // IMAGE_FILE_BYTES_REVERSED_HI and/or certain machine types are big-endian ++ *big_endian = false; ++ return true; ++} ++ ++template ++typename PeCoffObjectFileReader::Addr ++PeCoffObjectFileReader::GetLoadingAddress( ++ ObjectFileBase obj_base) { ++ const PeOptionalHeader* peOptionalHeader = GetOptionalHeader(obj_base); ++ return peOptionalHeader->mImageBase; ++} ++ ++// ++// Section enumeration and location ++// ++ ++template ++int PeCoffObjectFileReader::GetNumberOfSections( ++ ObjectFileBase obj_base) { ++ const PeHeader* peHeader = GetHeader(obj_base); ++ return peHeader->mNumberOfSections; ++} ++ ++template ++const typename PeCoffObjectFileReader::Section ++PeCoffObjectFileReader::FindSectionByIndex( ++ ObjectFileBase obj_base, int i) { ++ const PeSectionHeader* section_table = GetSectionTable(obj_base); ++ return reinterpret_cast(&(section_table[i])); ++} ++ ++template ++const typename PeCoffObjectFileReader::Section ++PeCoffObjectFileReader::FindSectionByName( ++ const char* section_name, ObjectFileBase obj_base) { ++ const PeHeader* peHeader = GetHeader(obj_base); ++ const PeSectionHeader* section_table = GetSectionTable(obj_base); ++ const char* string_table = GetStringTable(obj_base); ++ uint32_t string_table_length = *(reinterpret_cast(string_table)); ++ ++ for (int s = 0; s < peHeader->mNumberOfSections; s++) { ++ const char* name = section_table[s].mName; ++ ++ // look up long section names in string table ++ if (name[0] == '/') { ++ unsigned int offset = ::strtoul(section_table[s].mName+1, NULL, 10); ++ ++ if (offset > string_table_length) ++ fprintf(stderr, "section name offset %d exceeds string table length", ++ offset); ++ else ++ name = string_table + offset; ++ } ++ ++ if (::strcmp(section_name, name) == 0) { ++ return reinterpret_cast(&(section_table[s])); ++ } ++ } ++ ++ // nothing found ++ return NULL; ++} ++ ++// ++// Section information ++// ++ ++template ++const uint8_t* ++PeCoffObjectFileReader::GetSectionPointer( ++ ObjectFileBase obj_base, Section section) { ++ return reinterpret_cast(obj_base) + reinterpret_cast(section)->mPointerToRawData; ++} ++ ++template ++typename PeCoffObjectFileReader::Offset ++PeCoffObjectFileReader::GetSectionSize( ++ ObjectFileBase obj_base, Section section) { ++ ++ // There are mSizeOfRawData bytes of data for the section in the mapped image ++ // file. Return mVirtualSize if it's smaller. ++ // This doesn't handle the case where mVirtualSize is larger and the section ++ // should be zero padded, because we have nowhere to do that. ++ if ((reinterpret_cast(section)->mVirtualSize) < ++ (reinterpret_cast(section)->mSizeOfRawData)) ++ return reinterpret_cast(section)->mVirtualSize; ++ ++ return reinterpret_cast(section)->mSizeOfRawData; ++} ++ ++template ++typename PeCoffObjectFileReader::Offset ++PeCoffObjectFileReader::GetSectionRVA( ++ ObjectFileBase obj_base, Section section) { ++ return reinterpret_cast(section)->mVirtualAddress; ++} ++ ++template ++const char* PeCoffObjectFileReader::GetSectionName( ++ ObjectFileBase obj_base,Section section) { ++ const char* string_table = GetStringTable(obj_base); ++ uint32_t string_table_length = *(reinterpret_cast(string_table)); ++ const char* name = reinterpret_cast(section)->mName; ++ ++ // look up long section names in string table ++ if (name[0] == '/') { ++ unsigned int offset = ::strtoul(name+1, NULL, 10); ++ ++ if (offset > string_table_length) ++ fprintf(stderr, "section name offset %d exceeds string table length", ++ offset); ++ else ++ name = string_table + offset; ++ } ++ ++ return name; ++} ++ ++// ++// ++// ++ ++template ++bool PeCoffObjectFileReader::ExportedSymbolsToModule( ++ ObjectFileBase obj_base, Module* module) { ++ // locate the export table, if present ++ const PeDataDirectory* data_directory_export_entry = GetDataDirectoryEntry(obj_base, PE_EXPORT_TABLE); ++ if (data_directory_export_entry && data_directory_export_entry->mSize != 0) { ++ const PeExportTable* export_table = reinterpret_cast(ConvertRVAToPointer(obj_base, data_directory_export_entry->mVirtualAddress)); ++ const uint32_t* eat = reinterpret_cast(ConvertRVAToPointer(obj_base, export_table->mExportAddressTableRVA)); ++ const uint32_t* enpt = reinterpret_cast(ConvertRVAToPointer(obj_base, export_table->mNamePointerRVA)); ++ const uint16_t* eot = reinterpret_cast(ConvertRVAToPointer(obj_base, export_table->mOrdinalTableRVA)); ++ ++ // process the export name pointer table ++ for (uint32_t i = 0; i < export_table->mNumberofNamePointers; i++) { ++ // look up the name for the export ++ uint32_t export_name_rva = enpt[i]; ++ if (export_name_rva == 0) ++ continue; ++ const char* export_name = reinterpret_cast(ConvertRVAToPointer(obj_base, export_name_rva)); ++ ++ // find the corresponding export address table entry ++ uint16_t export_ordinal = eot[i]; ++ if ((export_ordinal < export_table->mOrdinalBase) || ++ (export_ordinal >= (export_table->mOrdinalBase + export_table->mAddressTableEntries))) { ++ fprintf(stderr, "exported ordinal %d out of range for EAT!\n", export_ordinal); ++ continue; ++ } ++ ++ uint32_t eat_index = export_ordinal - export_table->mOrdinalBase; ++ uint32_t export_rva = eat[eat_index]; ++ ++ // if the export's address lies inside the export table, it's a forwarded ++ // export, which we can ignore ++ if ((export_rva >= data_directory_export_entry->mVirtualAddress) && ++ (export_rva < (data_directory_export_entry->mVirtualAddress + data_directory_export_entry->mSize))) ++ continue; ++ ++ Module::Extern* ext = new Module::Extern; ++ ext->name = export_name; ++ ext->address = export_rva + GetLoadingAddress(obj_base); ++ module->AddExtern(ext); ++ } ++ ++ return true; ++ } ++ ++ // report if a COFF symbol table exists, but we don't use it (yet) ++ // According to the PECOFF spec. COFF debugging information is deprecated. ++ // We don't know of any tools which produce that and don't produce DWARF or ++ // MS CodeView debug information. ++ const PeHeader* peHeader = GetHeader(obj_base); ++ if (peHeader->mPointerToSymbolTable) { ++ fprintf(stderr, "COFF debug symbols present but are not implemented\n"); ++ } ++ ++ return false; ++} ++ ++template ++string ++PeCoffObjectFileReader::FileIdentifierFromMappedFile( ++ ObjectFileBase obj_file) { ++ uint8_t identifier[kMDGUIDSize]; ++ uint32_t age; ++ ++ if (!PeCoffFileID::PeCoffFileIdentifierFromMappedFile(obj_file, identifier, &age)) ++ return ""; ++ ++ // Endian-ness swap to match dump processor expectation. ++ uint8_t identifier_swapped[kMDGUIDSize]; ++ memcpy(identifier_swapped, identifier, kMDGUIDSize); ++ uint32_t* data1 = reinterpret_cast(identifier_swapped); ++ *data1 = htonl(*data1); ++ uint16_t* data2 = reinterpret_cast(identifier_swapped + 4); ++ *data2 = htons(*data2); ++ uint16_t* data3 = reinterpret_cast(identifier_swapped + 6); ++ *data3 = htons(*data3); ++ ++ // Format the file identifier in IDENTIFIER as a UUID with the ++ // dashes removed. ++ char identifier_str[40]; ++ int buffer_idx = 0; ++ for (int idx = 0; idx < kMDGUIDSize; ++idx) { ++ int hi = (identifier_swapped[idx] >> 4) & 0x0F; ++ int lo = (identifier_swapped[idx]) & 0x0F; ++ ++ identifier_str[buffer_idx++] = (hi >= 10) ? 'A' + hi - 10 : '0' + hi; ++ identifier_str[buffer_idx++] = (lo >= 10) ? 'A' + lo - 10 : '0' + lo; ++ } ++ identifier_str[buffer_idx] = 0; ++ string id = identifier_str; ++ ++ // Append age ++ char age_string[9]; ++ snprintf(age_string, sizeof(age_string) / sizeof(age_string[0]), "%X", age); ++ id += age_string; ++ ++ return id; ++} ++ ++// ++// Helper functions for PeCoffFileID ++// ++ ++template ++bool PeCoffObjectFileReader::GetBuildID( ++ ObjectFileBase obj_base, ++ uint8_t identifier[kMDGUIDSize], ++ uint32_t* age) { ++ // locate the debug directory, if present ++ const PeDataDirectory* data_directory_debug_entry = GetDataDirectoryEntry(obj_base, PE_DEBUG_DATA); ++ if (!data_directory_debug_entry) ++ return false; ++ ++ uint32_t debug_directory_size = data_directory_debug_entry->mSize; ++ if (debug_directory_size == 0) ++ return false; ++ ++ const PeDebugDirectory* debug_directory = reinterpret_cast(ConvertRVAToPointer(obj_base, data_directory_debug_entry->mVirtualAddress)); ++ if (debug_directory == NULL) { ++ fprintf(stderr, "No section containing the debug directory VMA could be found\n"); ++ return false; ++ } ++ ++ // search the debug directory for a codeview entry ++ for (int i = 0; i < debug_directory_size/sizeof(PeDebugDirectory); i++) { ++ if (debug_directory[i].mType == IMAGE_DEBUG_TYPE_CODEVIEW) { ++ // interpret the codeview record to get build-id ++ const CvInfoPbd70* codeview_record = reinterpret_cast ++ (obj_base + debug_directory[i].mPointerToRawData); ++ if ((codeview_record->mCvSignature) == CODEVIEW_PDB70_CVSIGNATURE) { ++ memcpy(identifier, codeview_record->mSignature, kMDGUIDSize); ++ *age = codeview_record->mAge; ++ return true; ++ } else { ++ fprintf(stderr, "Unhandled codeview signature %x\n", ++ codeview_record->mCvSignature); ++ } ++ } ++ } ++ ++ fprintf(stderr, "No codeview entry in debug directory\n"); ++ return false; ++} ++ ++template ++bool PeCoffObjectFileReader::HashTextSection( ++ ObjectFileBase obj_base, ++ uint8_t identifier[kMDGUIDSize]) { ++ Section text_section; ++ Offset text_size; ++ ++ if (!(text_section = FindSectionByName(".text", obj_base)) || ++ ((text_size = GetSectionSize(obj_base, text_section)) == 0)) ++ return false; ++ ++ memset(identifier, 0, kMDGUIDSize); ++ const uint8_t* ptr = GetSectionPointer(obj_base, text_section); ++ const uint8_t* ptr_end = ptr + std::min(text_size, 4096U); ++ while (ptr < ptr_end) { ++ for (unsigned i = 0; i < kMDGUIDSize; i++) ++ identifier[i] ^= ptr[i]; ++ ptr += kMDGUIDSize; ++ } ++ return true; ++} ++ ++// ++// Private implementation helper functions ++// ++ ++template ++const PeHeader* PeCoffObjectFileReader::GetHeader( ++ ObjectFileBase obj_base) { ++ const uint32_t* peOffsetPtr = reinterpret_cast(obj_base + ++ IMAGE_FILE_HEADER_OFFSET); ++ const PeHeader* peHeader = reinterpret_cast(obj_base+*peOffsetPtr); ++ return peHeader; ++} ++ ++template ++const typename PeCoffObjectFileReader::PeOptionalHeader* ++PeCoffObjectFileReader::GetOptionalHeader( ++ ObjectFileBase obj_base) { ++ const PeHeader* peHeader = GetHeader(obj_base); ++ PeOptionalHeader* peOptionalHeader = (PeOptionalHeader*) ((uint32_t*)peHeader + 6); ++ return peOptionalHeader; ++} ++ ++template ++const PeSectionHeader* ++PeCoffObjectFileReader::GetSectionTable( ++ ObjectFileBase obj_base) { ++ const PeHeader* peHeader = GetHeader(obj_base); ++ const PeOptionalHeader* peOptionalHeader = GetOptionalHeader(obj_base); ++ ++ // section table immediately follows optional header ++ const PeSectionHeader* section_table = reinterpret_cast ++ (reinterpret_cast(peOptionalHeader) + peHeader->mSizeOfOptionalHeader); ++ return section_table; ++} ++ ++template ++const char* PeCoffObjectFileReader::GetStringTable( ++ ObjectFileBase obj_base) { ++ const PeHeader* peHeader = GetHeader(obj_base); ++ ++ // string table immediately follows symbol table ++ uint32_t string_table_offset = peHeader->mPointerToSymbolTable + peHeader->mNumberOfSymbols*sizeof(PeSymbol); ++ const char* string_table = reinterpret_cast(obj_base) + string_table_offset; ++ return string_table; ++} ++ ++template ++const PeDataDirectory* ++PeCoffObjectFileReader::GetDataDirectoryEntry( ++ ObjectFileBase obj_base, int entry) { ++ const PeOptionalHeader* peOptionalHeader = GetOptionalHeader(obj_base); ++ ++ // the data directory immediately follows the optional header ++ const PeDataDirectory* data_directory = reinterpret_cast(&peOptionalHeader->mDataDirectory[0]); ++ uint32_t data_directory_size = peOptionalHeader->mNumberOfRvaAndSizes; ++ ++ // locate the required directory entry, if present ++ if (data_directory_size < entry) ++ return NULL; ++ ++ return &data_directory[entry]; ++} ++ ++template ++const uint8_t* ++PeCoffObjectFileReader::ConvertRVAToPointer( ++ ObjectFileBase obj_base, ++ Offset rva) { ++ // find which section contains the rva to compute it's mapped address ++ const PeSectionHeader* section_table = GetSectionTable(obj_base); ++ for (int s = 0; s < GetNumberOfSections(obj_base); s++) { ++ const PeSectionHeader* section = &(section_table[s]); ++ ++ if ((rva >= section->mVirtualAddress) && ++ (rva < (section->mVirtualAddress + section->mSizeOfRawData))) ++ { ++ uint32_t offset = rva - section->mVirtualAddress; ++ const uint8_t* pointer = GetSectionPointer(obj_base, (Section)section) + offset; ++ return pointer; ++ } ++ } ++ ++ fprintf(stderr, "No section could be found containing RVA %x\n", rva); ++ return NULL; ++} ++ ++// instantiation of templated classes ++template class PeCoffObjectFileReader; ++template class PeCoffObjectFileReader; ++ ++} +diff --git a/src/common/pecoff/pecoffutils.h b/src/common/pecoff/pecoffutils.h +new file mode 100644 +index 0000000..5553d9f +--- /dev/null ++++ b/src/common/pecoff/pecoffutils.h +@@ -0,0 +1,167 @@ ++// Copyright (c) 2014 Google Inc. ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * Redistributions in binary form must reproduce the above ++// copyright notice, this list of conditions and the following disclaimer ++// in the documentation and/or other materials provided with the ++// distribution. ++// * Neither the name of Google Inc. nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++// pecoffutils.h: Utilities for dealing with PECOFF files ++// ++ ++#ifndef COMMON_PECOFF_PECOFFUTILS_H__ ++#define COMMON_PECOFF_PECOFFUTILS_H__ ++ ++#include "common/pecoff/pecoff.h" ++#include "common/pecoff/pecoff_file_id.h" ++#include "common/module.h" ++ ++namespace google_breakpad { ++ ++bool IsValidPeCoff(const uint8_t* obj_file); ++int PeCoffClass(const uint8_t* obj_file); ++ ++class PeCoffClass32Traits { ++ public: ++ typedef uint32_t Addr; ++ typedef Pe32OptionalHeader PeOptionalHeader; ++ static const int kClass = PE32; ++ static const size_t kAddrSize = 4; ++}; ++ ++class PeCoffClass64Traits { ++ public: ++ typedef uint64_t Addr; ++ typedef Pe32PlusOptionalHeader PeOptionalHeader; ++ static const int kClass = PE32PLUS; ++ static const size_t kAddrSize = 8; ++}; ++// Offset isn't part of the traits as although PE32+ uses 64-bit address space, ++// it still uses 32-bit RVAs and offsets ++ ++template ++class PeCoffObjectFileReader { ++ public: ++ typedef const uint8_t* ObjectFileBase; ++ typedef const uint8_t* Section; ++ typedef uint32_t Offset; ++ typedef typename PeCoffClassTraits::Addr Addr; ++ static const int kClass = PeCoffClassTraits::kClass; ++ static const size_t kAddrSize = PeCoffClassTraits::kAddrSize; ++ ++ static bool IsValid(ObjectFileBase obj_file) { ++ return IsValidPeCoff(obj_file); ++ }; ++ ++ // ++ // Header information ++ // ++ ++ // Return the breakpad symbol file identifier for the architecture ++ static const char* Architecture(ObjectFileBase obj_base); ++ ++ // Get the endianness. If it's invalid, return false. ++ static bool Endianness(ObjectFileBase obj_base, bool* big_endian); ++ ++ // Find the preferred loading address of the binary. ++ static Addr GetLoadingAddress(ObjectFileBase obj_base); ++ ++ // ++ // Section enumeration and location ++ // ++ ++ static int GetNumberOfSections(ObjectFileBase obj_base); ++ static const Section FindSectionByIndex(ObjectFileBase obj_base, int i); ++ // Attempt to find a section named |section_name| ++ static const Section FindSectionByName(const char* section_name, ++ ObjectFileBase obj_base); ++ ++ // ++ // Section information ++ // ++ ++ // Convert a section into a pointer to the mapped address in the current ++ // process. ++ static const uint8_t* GetSectionPointer(ObjectFileBase obj_base, ++ Section section); ++ ++ // Get the size of a section ++ static Offset GetSectionSize(ObjectFileBase obj_base, Section section); ++ ++ // Get relative virtual address (RVA) of a section ++ static Offset GetSectionRVA(ObjectFileBase obj_base, Section section); ++ ++ // Get name of a section ++ static const char* GetSectionName(ObjectFileBase obj_base,Section section); ++ ++ // Find any linked section ++ static const Section FindLinkedSection(ObjectFileBase obj_base, ++ Section section) { ++ return 0; // PECOFF doesn't have the concept of linked sections ++ } ++ ++ // ++ // ++ // ++ ++ // Load symbols from the object file's exported symbol table ++ static bool ExportedSymbolsToModule(ObjectFileBase obj_base, Module* module); ++ ++ // Return the identifier for the file mapped into memory. ++ // Return an empty string if the identifier could not be created ++ // for the file. ++ static string FileIdentifierFromMappedFile(ObjectFileBase obj_base); ++ ++ // ++ // Helpers for PeCoffFileID ++ // ++ ++ // Get the build-id ++ static bool GetBuildID(ObjectFileBase obj_base, ++ uint8_t identifier[kMDGUIDSize], uint32_t* age); ++ // Hash the text section ++ static bool HashTextSection(ObjectFileBase obj_base, ++ uint8_t identifier[kMDGUIDSize]); ++ ++ private: ++ typedef typename PeCoffClassTraits::PeOptionalHeader PeOptionalHeader; ++ ++ // ++ // Private implementation helper functions ++ // ++ static const PeHeader* GetHeader(ObjectFileBase obj_base); ++ static const PeOptionalHeader* GetOptionalHeader(ObjectFileBase obj_base); ++ static const PeSectionHeader* GetSectionTable(ObjectFileBase obj_base); ++ static const char* GetStringTable(ObjectFileBase obj_base); ++ static const PeDataDirectory* GetDataDirectoryEntry(ObjectFileBase obj_base, ++ int entry); ++ static const uint8_t* ConvertRVAToPointer(ObjectFileBase obj_base, Offset rva); ++}; ++ ++class PeCoffClass32 : public PeCoffObjectFileReader { }; ++class PeCoffClass64 : public PeCoffObjectFileReader { }; ++ ++} // namespace google_breakpad ++ ++#endif // COMMON_PECOFF_PECOFFUTILS_H__ +diff --git a/src/tools/windows/dump_syms_dwarf/dump_syms.cc b/src/tools/windows/dump_syms_dwarf/dump_syms.cc +new file mode 100644 +index 0000000..2d7f70a +--- /dev/null ++++ b/src/tools/windows/dump_syms_dwarf/dump_syms.cc +@@ -0,0 +1,88 @@ ++// Copyright (c) 2011, Google Inc. ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * Redistributions in binary form must reproduce the above ++// copyright notice, this list of conditions and the following disclaimer ++// in the documentation and/or other materials provided with the ++// distribution. ++// * Neither the name of Google Inc. nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "common/pecoff/dump_symbols.h" ++ ++using google_breakpad::WriteSymbolFile; ++ ++int usage(const char* self) { ++ fprintf(stderr, "Usage: %s [OPTION] " ++ "[directories-for-debug-file]\n\n", self); ++ fprintf(stderr, "Options:\n"); ++ fprintf(stderr, " -c Do not generate CFI section\n"); ++ fprintf(stderr, " -r Do not handle inter-compilation unit references\n"); ++ return 1; ++} ++ ++int main(int argc, char **argv) { ++ if (argc < 2) ++ return usage(argv[0]); ++ ++ bool cfi = true; ++ bool handle_inter_cu_refs = true; ++ int arg_index = 1; ++ while (arg_index < argc && strlen(argv[arg_index]) > 0 && ++ argv[arg_index][0] == '-') { ++ if (strcmp("-c", argv[arg_index]) == 0) { ++ cfi = false; ++ } else if (strcmp("-r", argv[arg_index]) == 0) { ++ handle_inter_cu_refs = false; ++ } else { ++ return usage(argv[0]); ++ } ++ ++arg_index; ++ } ++ if (arg_index == argc) ++ return usage(argv[0]); ++ ++ const char* binary; ++ std::vector debug_dirs; ++ binary = argv[arg_index]; ++ for (int debug_dir_index = arg_index + 1; ++ debug_dir_index < argc; ++ ++debug_dir_index) { ++ debug_dirs.push_back(argv[debug_dir_index]); ++ } ++ ++ SymbolData symbol_data = cfi ? ALL_SYMBOL_DATA : NO_CFI; ++ google_breakpad::DumpOptions options(symbol_data, handle_inter_cu_refs); ++ if (!WriteSymbolFile(binary, debug_dirs, options, std::cout)) { ++ fprintf(stderr, "Failed to write symbol file.\n"); ++ return 1; ++ } ++ ++ return 0; ++} +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0006-Fix-building-minidump-processor-for-MinGW.patch b/mingw-w64-breakpad-svn/0006-Fix-building-minidump-processor-for-MinGW.patch new file mode 100644 index 0000000000..3e6e3d64a4 --- /dev/null +++ b/mingw-w64-breakpad-svn/0006-Fix-building-minidump-processor-for-MinGW.patch @@ -0,0 +1,246 @@ +From c36077c1411e0195dc852a8a515768d090495def Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Fri, 11 Jul 2014 23:37:02 +0100 +Subject: [PATCH 06/24] Fix building minidump processor for MinGW + +This is mainly the configure.ac and Makefile.am changes left over from +https://breakpad.appspot.com/548002/ with a bit of updating + +- Link minidump_stackwalk, minidump_dump with PTHREAD_LIBS as pthread_cancel is used +- Link minidump_stackwalk with ws2_32 as ntoh functions are used +- Don't try to build upload tools, dump_syms_dwarf for MinGW +- _s function variants should only be used if _MSC_VER, use _r variants with +MinGW (and define _POSIX to ensure they are prototyped) +- Don't try to include arpa/inet.h on Windows + +Signed-off-by: Jon TURNEY +--- + Makefile.am | 17 +++++++++++++++-- + configure.ac | 6 ++++++ + src/google_breakpad/common/breakpad_types.h | 2 ++ + src/processor/basic_source_line_resolver.cc | 2 +- + src/processor/binarystream.cc | 2 ++ + src/processor/cfi_frame_info.cc | 2 +- + src/processor/logging.cc | 4 ++-- + src/processor/minidump.cc | 2 +- + src/processor/tokenize.cc | 2 +- + 9 files changed, 31 insertions(+), 8 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index c802304..4d291e7 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -66,6 +66,11 @@ if WINDOWS_HOST + AM_CPPFLAGS += -DNO_STABS_SUPPORT + endif + ++if MINGW_HOST ++SOCKET_LIBS = -lws2_32 ++AM_CPPFLAGS += -D_POSIX ++endif ++ + # Specify include paths for ac macros + ACLOCAL_AMFLAGS = -I m4 + +@@ -308,11 +313,13 @@ bin_PROGRAMS += \ + src/processor/minidump_stackwalk + endif !DISABLE_PROCESSOR + ++if !MINGW_HOST + if !DISABLE_TOOLS + bin_PROGRAMS += \ + src/tools/common/symupload/minidump_upload \ + src/tools/common/symupload/sym_upload + endif ++endif + + if LINUX_HOST + bin_PROGRAMS += \ +@@ -327,11 +334,13 @@ endif + endif LINUX_HOST + + if WINDOWS_HOST ++if !MINGW_HOST + if !DISABLE_TOOLS + bin_PROGRAMS += \ + src/tools/windows/dump_syms_dwarf/dump_syms + endif + endif ++endif + + ## Tests + if !DISABLE_PROCESSOR +@@ -625,6 +634,7 @@ src_tools_linux_md2core_minidump_2_core_unittest_LDADD = \ + endif LINUX_HOST + + if WINDOWS_HOST ++if !MINGW_HOST + if !DISABLE_TOOLS + src_tools_windows_dump_syms_dwarf_dump_syms_SOURCES = \ + src/common/dwarf_cfi_to_module.cc \ +@@ -641,6 +651,7 @@ src_tools_windows_dump_syms_dwarf_dump_syms_SOURCES = \ + src/tools/windows/dump_syms_dwarf/dump_syms.cc + endif + endif ++endif + + if !DISABLE_PROCESSOR + src_processor_address_map_unittest_SOURCES = \ +@@ -1130,7 +1141,8 @@ src_processor_minidump_dump_LDADD = \ + src/processor/dump_object.o \ + src/processor/logging.o \ + src/processor/minidump.o \ +- src/processor/pathname_stripper.o ++ src/processor/pathname_stripper.o \ ++ $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + + src_processor_minidump_stackwalk_SOURCES = \ + src/processor/minidump_stackwalk.cc +@@ -1125,7 +1125,8 @@ + src/processor/stackwalker_sparc.o \ + src/processor/stackwalker_x86.o \ + src/processor/tokenize.o \ +- src/third_party/libdisasm/libdisasm.a ++ src/third_party/libdisasm/libdisasm.a \ ++ $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SOCKET_LIBS) + + src_processor_minidump_stackwalk_SOURCES = \ + src/processor/minidump_stackwalk.cc +@@ -1166,7 +1178,8 @@ src_processor_minidump_stackwalk_LDADD = \ + src/processor/stackwalker_sparc.o \ + src/processor/stackwalker_x86.o \ + src/processor/tokenize.o \ +- src/third_party/libdisasm/libdisasm.a ++ src/third_party/libdisasm/libdisasm.a \ ++ $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SOCKET_LIBS) + + endif !DISABLE_PROCESSOR + +diff --git a/configure.ac b/configure.ac +index aeccf19..a2b9287 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -83,10 +83,16 @@ case $host in + *-*-cygwin* ) + WINDOWS_HOST=true + ;; ++ *-*-mingw* ) ++ WINDOWS_HOST=true ++ MINGW_HOST=true ++ ;; + esac + + AM_CONDITIONAL(LINUX_HOST, test x$LINUX_HOST = xtrue) ++# WINDOWS_HOST means MINGW or CYGWIN + AM_CONDITIONAL(WINDOWS_HOST, test x$WINDOWS_HOST = xtrue) ++AM_CONDITIONAL(MINGW_HOST, test x$MINGW_HOST = xtrue) + + # Only use Android support headers when compiling for Android + case $host in +diff --git a/src/google_breakpad/common/breakpad_types.h b/src/google_breakpad/common/breakpad_types.h +index e92436f..c50a3a9 100644 +--- a/src/google_breakpad/common/breakpad_types.h ++++ b/src/google_breakpad/common/breakpad_types.h +@@ -61,9 +61,11 @@ + #include + + typedef unsigned __int8 uint8_t; ++typedef __int16 int16_t; + typedef unsigned __int16 uint16_t; + typedef __int32 int32_t; + typedef unsigned __int32 uint32_t; ++typedef __int64 int64_t; + typedef unsigned __int64 uint64_t; + #endif + +diff --git a/src/processor/basic_source_line_resolver.cc b/src/processor/basic_source_line_resolver.cc +index 62aa413..1d4d0e9 100644 +--- a/src/processor/basic_source_line_resolver.cc ++++ b/src/processor/basic_source_line_resolver.cc +@@ -55,7 +55,7 @@ using std::make_pair; + + namespace google_breakpad { + +-#ifdef _WIN32 ++#ifdef _MSC_VER + #define strtok_r strtok_s + #define strtoull _strtoui64 + #endif +diff --git a/src/processor/binarystream.cc b/src/processor/binarystream.cc +index bf92225..96f0693 100644 +--- a/src/processor/binarystream.cc ++++ b/src/processor/binarystream.cc +@@ -27,7 +27,9 @@ + // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ++#ifndef _WIN32 + #include ++#endif + #include + + #include +diff --git a/src/processor/cfi_frame_info.cc b/src/processor/cfi_frame_info.cc +index 5106ba0..0c4af7b 100644 +--- a/src/processor/cfi_frame_info.cc ++++ b/src/processor/cfi_frame_info.cc +@@ -43,7 +43,7 @@ + + namespace google_breakpad { + +-#ifdef _WIN32 ++#ifdef _MSC_VER + #define strtok_r strtok_s + #endif + +diff --git a/src/processor/logging.cc b/src/processor/logging.cc +index 8bb95a6..45072bc 100644 +--- a/src/processor/logging.cc ++++ b/src/processor/logging.cc +@@ -45,7 +45,7 @@ + #include "processor/logging.h" + #include "processor/pathname_stripper.h" + +-#ifdef _WIN32 ++#ifdef _MSC_VER + #define snprintf _snprintf + #endif + +@@ -57,7 +57,7 @@ LogStream::LogStream(std::ostream &stream, Severity severity, + time_t clock; + time(&clock); + struct tm tm_struct; +-#ifdef _WIN32 ++#ifdef _MSC_VER + localtime_s(&tm_struct, &clock); + #else + localtime_r(&clock, &tm_struct); +diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc +index a4bf55a..1a79676 100644 +--- a/src/processor/minidump.cc ++++ b/src/processor/minidump.cc +@@ -372,7 +372,7 @@ static void PrintValueOrInvalid(bool valid, + // Converts a time_t to a string showing the time in UTC. + string TimeTToUTCString(time_t tt) { + struct tm timestruct; +-#ifdef _WIN32 ++#ifdef _MSC_VER + gmtime_s(×truct, &tt); + #else + gmtime_r(&tt, ×truct); +diff --git a/src/processor/tokenize.cc b/src/processor/tokenize.cc +index f468120..8fce87a 100644 +--- a/src/processor/tokenize.cc ++++ b/src/processor/tokenize.cc +@@ -36,7 +36,7 @@ + + namespace google_breakpad { + +-#ifdef _WIN32 ++#ifdef _MSC_VER + #define strtok_r strtok_s + #endif + +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0007-Build-PECOFF-DWARF-dump_syms-for-MinGW.patch b/mingw-w64-breakpad-svn/0007-Build-PECOFF-DWARF-dump_syms-for-MinGW.patch new file mode 100644 index 0000000000..7dba9b7eb0 --- /dev/null +++ b/mingw-w64-breakpad-svn/0007-Build-PECOFF-DWARF-dump_syms-for-MinGW.patch @@ -0,0 +1,134 @@ +From 18fdc070172177cb911583284d1425747105e836 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Wed, 5 Feb 2014 13:44:01 +0000 +Subject: [PATCH 07/24] Build PECOFF/DWARF dump_syms for MinGW + +- Substitute MapViewOfFile() for mmap() +- Link dump_syms_dwarf with ws2_32 as ntoh functions are used + +Signed-off-by: Jon TURNEY +--- + Makefile.am | 6 ++---- + src/common/pecoff/dump_symbols-inl.h | 38 ++++++++++++++++++++++++++++++------ + 2 files changed, 34 insertions(+), 10 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 4d291e7..d8917aa 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -334,13 +334,11 @@ endif + endif LINUX_HOST + + if WINDOWS_HOST +-if !MINGW_HOST + if !DISABLE_TOOLS + bin_PROGRAMS += \ + src/tools/windows/dump_syms_dwarf/dump_syms + endif + endif +-endif + + ## Tests + if !DISABLE_PROCESSOR +@@ -634,7 +632,6 @@ src_tools_linux_md2core_minidump_2_core_unittest_LDADD = \ + endif LINUX_HOST + + if WINDOWS_HOST +-if !MINGW_HOST + if !DISABLE_TOOLS + src_tools_windows_dump_syms_dwarf_dump_syms_SOURCES = \ + src/common/dwarf_cfi_to_module.cc \ +@@ -649,7 +646,8 @@ src_tools_windows_dump_syms_dwarf_dump_syms_SOURCES = \ + src/common/pecoff/pecoffutils.cc \ + src/common/pecoff/pecoff_file_id.cc \ + src/tools/windows/dump_syms_dwarf/dump_syms.cc +-endif ++src_tools_windows_dump_syms_dwarf_dump_syms_LDADD = \ ++ $(SOCKET_LIBS) + endif + endif + +diff --git a/src/common/pecoff/dump_symbols-inl.h b/src/common/pecoff/dump_symbols-inl.h +index 6ec2059..4821ac9 100644 +--- a/src/common/pecoff/dump_symbols-inl.h ++++ b/src/common/pecoff/dump_symbols-inl.h +@@ -39,7 +39,9 @@ + #include + #include + #include ++#ifndef _WIN32 + #include ++#endif + #include + #include + #include +@@ -111,13 +113,37 @@ class MmapWrapper { + ~MmapWrapper() { + if (is_set_ && base_ != NULL) { + assert(size_ > 0); ++#ifndef _WIN32 + munmap(base_, size_); ++#else ++ UnmapViewOfFile(base_); ++ CloseHandle(hMap_); ++#endif + } + } +- void set(void *mapped_address, size_t mapped_size) { ++ void *set(int obj_fd, size_t mapped_size) { ++#ifndef _WIN32 ++ void *mapped_address = mmap(NULL, mapped_size, ++ PROT_READ | PROT_WRITE, MAP_PRIVATE, obj_fd, 0); ++ if (mapped_address == MAP_FAILED) ++ return NULL; ++#else ++ HANDLE h = (HANDLE)_get_osfhandle(obj_fd); ++ hMap_ = CreateFileMapping(h, NULL, PAGE_READONLY,0, 0, NULL); ++ // XXX: should also use SEC_IMAGE_NO_EXECUTE on Windows 6.2 or later ++ if (!hMap_) { ++ return NULL; ++ } ++ void *mapped_address = MapViewOfFile(hMap_, FILE_MAP_READ, 0, 0, 0); ++ if (!mapped_address) { ++ CloseHandle(hMap_); ++ return NULL; ++ } ++#endif + is_set_ = true; + base_ = mapped_address; + size_ = mapped_size; ++ return mapped_address; + } + void release() { + assert(is_set_); +@@ -130,6 +156,9 @@ class MmapWrapper { + bool is_set_; + void *base_; + size_t size_; ++#ifdef _WIN32 ++ HANDLE hMap_; ++#endif + }; + + #ifndef NO_STABS_SUPPORT +@@ -329,15 +358,12 @@ bool LoadFile(const string& obj_file, MmapWrapper* map_wrapper, + obj_file.c_str(), strerror(errno)); + return false; + } +- void *obj_base = mmap(NULL, st.st_size, +- PROT_READ | PROT_WRITE, MAP_PRIVATE, obj_fd, 0); +- if (obj_base == MAP_FAILED) { ++ *header = map_wrapper->set(obj_fd, st.st_size); ++ if (!(*header)) { + fprintf(stderr, "Failed to mmap file '%s': %s\n", + obj_file.c_str(), strerror(errno)); + return false; + } +- map_wrapper->set(obj_base, st.st_size); +- *header = obj_base; + return true; + } + +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0008-Fix-building-client-library-and-upload-tools-for-Min.patch b/mingw-w64-breakpad-svn/0008-Fix-building-client-library-and-upload-tools-for-Min.patch new file mode 100644 index 0000000000..b9813c089f --- /dev/null +++ b/mingw-w64-breakpad-svn/0008-Fix-building-client-library-and-upload-tools-for-Min.patch @@ -0,0 +1,123 @@ +From 7091ed120d7d5e90211572e3ec4e0882a071979e Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Wed, 19 Nov 2014 13:21:43 +0000 +Subject: [PATCH 08/24] Fix building client library and upload tools for MinGW + +This is the rest of https://breakpad.appspot.com/548002/, brought up to date + +v2: +Refine MinGW changes in HTTPUpload::GetFileContents so it closes file after use + +v3: +For consistency, write conditionals in terms of _MSC_VER, not __MINGW32__ + +v4: +Use fd rather than FILE * in HTTPUpload::GetFileContents + +It appears that constructing a stdio_filebuf from a FILE * does a fflush(0), +which has been seen to occasionally fail EBADF (on at least W7 x64). + +Both of these things seem like they might be bugs + +Workaround for the moment by constructing stdio_filebuf from a fd instead. + +v5: +Drop HTTPUpload::GetFileContents() changes as upstream now uses WideTOMBCP() +Drop changes to avoid stdext::checked_array_iterator, as upstream + +Signed-off-by: Jon TURNEY +--- + Makefile.am | 2 -- + src/client/windows/crash_generation/client_info.cc | 4 ++++ + src/client/windows/crash_generation/crash_generation_server.cc | 7 +++++-- + .../windows/tests/crash_generation_app/crash_generation_app.cc | 6 ++++++ + 4 files changed, 15 insertions(+), 4 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index d8917aa..ad62471 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -313,13 +313,11 @@ bin_PROGRAMS += \ + src/processor/minidump_stackwalk + endif !DISABLE_PROCESSOR + +-if !MINGW_HOST + if !DISABLE_TOOLS + bin_PROGRAMS += \ + src/tools/common/symupload/minidump_upload \ + src/tools/common/symupload/sym_upload + endif +-endif + + if LINUX_HOST + bin_PROGRAMS += \ +diff --git a/src/client/windows/crash_generation/client_info.cc b/src/client/windows/crash_generation/client_info.cc +index ed31263..30a48db 100644 +--- a/src/client/windows/crash_generation/client_info.cc ++++ b/src/client/windows/crash_generation/client_info.cc +@@ -176,7 +176,11 @@ void ClientInfo::SetProcessUptime() { + + // Convert it to a string. + wchar_t* value = custom_info_entries_.get()[custom_client_info_.count].value; ++#ifdef _MSC_VER + _i64tow_s(delay, value, CustomInfoEntry::kValueMaxLength, 10); ++#else ++ _i64tow(delay, value, 10); ++#endif + } + + bool ClientInfo::PopulateCustomInfo() { +diff --git a/src/client/windows/crash_generation/crash_generation_server.cc b/src/client/windows/crash_generation/crash_generation_server.cc +index ae05243..81d6597 100644 +--- a/src/client/windows/crash_generation/crash_generation_server.cc ++++ b/src/client/windows/crash_generation/crash_generation_server.cc +@@ -85,14 +85,17 @@ static bool IsClientRequestValid(const ProtocolMessage& msg) { + msg.assert_info != NULL); + } + +-#ifdef _DEBUG + static bool CheckForIOIncomplete(bool success) { ++#ifdef _DEBUG + // We should never get an I/O incomplete since we should not execute this + // unless the operation has finished and the overlapped event is signaled. If + // we do get INCOMPLETE, we have a bug in our code. + return success ? false : (GetLastError() == ERROR_IO_INCOMPLETE); +-} ++#else ++ return true; + #endif ++} ++ + + CrashGenerationServer::CrashGenerationServer( + const std::wstring& pipe_name, +diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.cc b/src/client/windows/tests/crash_generation_app/crash_generation_app.cc +index fa4e634..09a0aae 100644 +--- a/src/client/windows/tests/crash_generation_app/crash_generation_app.cc ++++ b/src/client/windows/tests/crash_generation_app/crash_generation_app.cc +@@ -42,6 +42,10 @@ + + #include "client/windows/tests/crash_generation_app/abstract_class.h" + ++#ifndef _MSC_VER ++#define swprintf_s swprintf ++#endif ++ + namespace google_breakpad { + + const int kMaxLoadString = 100; +@@ -480,9 +484,11 @@ int APIENTRY _tWinMain(HINSTANCE instance, + CustomClientInfo custom_info = {kCustomInfoEntries, kCustomInfoCount}; + + CrashServerStart(); ++#ifdef _MSC_VER + // This is needed for CRT to not show dialog for invalid param + // failures and instead let the code handle it. + _CrtSetReportMode(_CRT_ASSERT, 0); ++#endif + handler = new ExceptionHandler(L"C:\\dumps\\", + NULL, + google_breakpad::ShowDumpResults, +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0009-Fix-common.gypi-to-allow-gyp-to-generate-Makefiles-o.patch b/mingw-w64-breakpad-svn/0009-Fix-common.gypi-to-allow-gyp-to-generate-Makefiles-o.patch new file mode 100644 index 0000000000..b5517e538d --- /dev/null +++ b/mingw-w64-breakpad-svn/0009-Fix-common.gypi-to-allow-gyp-to-generate-Makefiles-o.patch @@ -0,0 +1,43 @@ +From 2af80c0b7d0827bb5102a7e0f65866f8d474b2dc Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Thu, 13 Feb 2014 01:06:51 +0000 +Subject: [PATCH 09/24] Fix common.gypi to allow gyp to generate Makefiles on + Windows + +The MSVS_VERSION variable does not exist unless we are using the MSVS generator + +Signed-off-by: Jon TURNEY +--- + src/build/common.gypi | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/build/common.gypi b/src/build/common.gypi +index b9466a3..9befd15 100644 +--- a/src/build/common.gypi ++++ b/src/build/common.gypi +@@ -206,9 +206,9 @@ + # Whether to use multiple cores to compile with visual studio. This is + # optional because it sometimes causes corruption on VS 2005. + # It is on by default on VS 2008 and off on VS 2005. +- ['OS=="win"', { ++ ['"<(GENERATOR)" == "msvs"', { + 'conditions': [ +- ['MSVS_VERSION=="2005"', { ++ [ 'MSVS_VERSION=="2005"', { + 'msvs_multi_core_compile%': 0, + },{ + 'msvs_multi_core_compile%': 1, +@@ -225,6 +225,10 @@ + # Native Client loader for 64-bit Windows. + 'NACL_WIN64', + ], ++ }, ++ { ++ # XXX: because value is used below... ++ 'msvs_multi_core_compile%': 0, + }], + ], + +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0010-Teach-gyp-generated-Makefile-to-build-crash_generati.patch b/mingw-w64-breakpad-svn/0010-Teach-gyp-generated-Makefile-to-build-crash_generati.patch new file mode 100644 index 0000000000..a21e87c631 --- /dev/null +++ b/mingw-w64-breakpad-svn/0010-Teach-gyp-generated-Makefile-to-build-crash_generati.patch @@ -0,0 +1,165 @@ +From d96319f23d7ba65a5f09f57a9a80af67a327e0e4 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Mon, 10 Feb 2014 18:12:14 +0000 +Subject: [PATCH 10/24] Teach gyp generated Makefile to build + crash_generation_app correctly + +- Use linker flag for Windows subsystem +- Use linker flag for unicode +- Add rule for compiling windows resources, using $RC to name the resource compiler +- Rename crash_generation_app.rc to avoid a clash in corresponding .o names + +Also +- Fix linking of unit test when built using gyp generated Makefile by providing +needed library + +XXX: We need to arrange for the gyp Makefile generator to set +CXXFLAGS="-DUNICODE -D_UNICODE" somewhere when generating for Windows. This is +already done in generated MSVS projects. + +Signed-off-by: Jon TURNEY +--- + .../crash_generation_app/crash_generation_app.gyp | 29 +++++++++++++++++++--- + .../{crash_generation_app.rc => resource.rc} | 13 +++++----- + src/client/windows/unittests/client_tests.gyp | 12 +++++++-- + 3 files changed, 41 insertions(+), 13 deletions(-) + rename src/client/windows/tests/crash_generation_app/{crash_generation_app.rc => resource.rc} (96%) + +diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.gyp b/src/client/windows/tests/crash_generation_app/crash_generation_app.gyp +index 3ce307d..774f600 100644 +--- a/src/client/windows/tests/crash_generation_app/crash_generation_app.gyp ++++ b/src/client/windows/tests/crash_generation_app/crash_generation_app.gyp +@@ -40,19 +40,40 @@ + 'crash_generation_app.cc', + 'crash_generation_app.h', + 'crash_generation_app.ico', +- 'crash_generation_app.rc', ++ 'resource.rc', + 'resource.h', + 'small.ico', + ], +- 'libraries': [ +- 'user32.lib', +- ], + 'dependencies': [ + '../../breakpad_client.gyp:common', + '../../crash_generation/crash_generation.gyp:crash_generation_server', + '../../crash_generation/crash_generation.gyp:crash_generation_client', + '../../handler/exception_handler.gyp:exception_handler', + ], ++ 'conditions': [ ++ [ '"<(GENERATOR)" == "make"', { ++ 'ldflags': [ ++ '-Wl,--subsystem=2', '-municode' ++ ], ++ 'rules': [ ++ { 'rule_name': 'windres', ++ 'extension': 'rc', ++ 'inputs' : [ ], ++ 'outputs' : [ '$(builddir)/<(RULE_INPUT_ROOT).o' ], ++ 'action' : [ '$(RC)', '--input=<(RULE_INPUT_PATH)', '--output=$(builddir)/<(RULE_INPUT_ROOT).o', '--input-format=rc', '--output-format=coff', '-v', '--use-temp-file' ], ++ 'message' : 'Compiling Windows resources', ++ 'process_outputs_as_sources' : 1, ++ }, ++ ], ++ } ++ ], ++ [ '"<(GENERATOR)" == "msvs"', { ++ 'libraries': [ ++ 'user32.lib', ++ ], ++ } ++ ] ++ ], + 'msvs_settings': { + 'VCLinkerTool': { + 'SubSystem': '2', # Windows Subsystem as opposed to a console app +diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.rc b/src/client/windows/tests/crash_generation_app/resource.rc +similarity index 96% +rename from src/client/windows/tests/crash_generation_app/crash_generation_app.rc +rename to src/client/windows/tests/crash_generation_app/resource.rc +index a362562..6c7e8b6 100644 +--- a/src/client/windows/tests/crash_generation_app/crash_generation_app.rc ++++ b/src/client/windows/tests/crash_generation_app/resource.rc +@@ -38,7 +38,7 @@ IDI_SMALL ICON "small.ico" + // Menu + // + +-IDC_CRASHGENERATIONAPP MENU ++IDC_CRASHGENERATIONAPP MENU + BEGIN + POPUP "&File" + BEGIN +@@ -64,7 +64,7 @@ END + // Accelerator + // + +-IDC_CRASHGENERATIONAPP ACCELERATORS ++IDC_CRASHGENERATIONAPP ACCELERATORS + BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +@@ -94,12 +94,12 @@ END + // TEXTINCLUDE + // + +-1 TEXTINCLUDE ++1 TEXTINCLUDE + BEGIN + "resource.h\0" + END + +-2 TEXTINCLUDE ++2 TEXTINCLUDE + BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" +@@ -107,7 +107,7 @@ BEGIN + "\0" + END + +-3 TEXTINCLUDE ++3 TEXTINCLUDE + BEGIN + "\r\n" + "\0" +@@ -121,7 +121,7 @@ END + // String Table + // + +-STRINGTABLE ++STRINGTABLE + BEGIN + IDS_APP_TITLE "CrashGenerationApp" + IDC_CRASHGENERATIONAPP "CRASHGENERATIONAPP" +@@ -141,4 +141,3 @@ END + + ///////////////////////////////////////////////////////////////////////////// + #endif // not APSTUDIO_INVOKED +- +diff --git a/src/client/windows/unittests/client_tests.gyp b/src/client/windows/unittests/client_tests.gyp +index 7f9c7a0..238cf5d 100644 +--- a/src/client/windows/unittests/client_tests.gyp ++++ b/src/client/windows/unittests/client_tests.gyp +@@ -51,8 +51,16 @@ + '../crash_generation/crash_generation.gyp:crash_generation_server', + '../crash_generation/crash_generation.gyp:crash_generation_client', + '../handler/exception_handler.gyp:exception_handler', +- 'processor_bits', +- ] ++ 'processor_bits', ++ ], ++ 'conditions': [ ++ [ '"<(GENERATOR)" == "make"', { ++ 'libraries': [ ++ '-ldbghelp', '-lversion', '-lpthread', ++ ], ++ }, ++ ], ++ ], + }, + { + 'target_name': 'processor_bits', +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0011-Default-debug_file-to-the-code_file-basename.patch b/mingw-w64-breakpad-svn/0011-Default-debug_file-to-the-code_file-basename.patch new file mode 100644 index 0000000000..235ed2ef30 --- /dev/null +++ b/mingw-w64-breakpad-svn/0011-Default-debug_file-to-the-code_file-basename.patch @@ -0,0 +1,51 @@ +From 864ff09e70cf42fa4e96969d665890ef73144eba Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Fri, 7 Feb 2014 23:03:10 +0000 +Subject: [PATCH 11/24] Default debug_file to the code_file basename + +Strip any path from code_file, and use that as debug_file if one isn't recorded +in the codeview record. + +The current implementation of 'ld --build-id' doesn't write a pdbfilename in the +codeview record, not least because we don't have such a thing. + +The minidump processor requires both debug_file and debug_identifier (the +build-id) to locate the symbol file. + +v2: +Correctly make debug-file a basename when code-file has a windows-style path +Fix by Ivan Gubarev + +Signed-off-by: Jon TURNEY +--- + src/processor/minidump.cc | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc +index 1a79676..71c8456 100644 +--- a/src/processor/minidump.cc ++++ b/src/processor/minidump.cc +@@ -1961,6 +1961,20 @@ string MinidumpModule::debug_file() const { + } + } + ++ // Manufacture debug-file from code-file ++ if (file.empty()) { ++ file = code_file(); ++ ++ BPLOG(INFO) << "Generated debug_file '" << file << "' from code_file '" << *name_ << "'"; ++ } ++ ++ // This may be a windows-style pathname, so find the basename considering both ++ // forward and back-slashes. ++ const size_t last_slash_idx = file.find_last_of("\\/"); ++ if (std::string::npos != last_slash_idx) { ++ file.erase(0, last_slash_idx + 1); ++ } ++ + // Relatively common case + BPLOG_IF(INFO, file.empty()) << "MinidumpModule could not determine " + "debug_file for " << *name_; +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0012-Fix-building-windows-client-unit-tests-with-gcc.patch b/mingw-w64-breakpad-svn/0012-Fix-building-windows-client-unit-tests-with-gcc.patch new file mode 100644 index 0000000000..96a971fda1 --- /dev/null +++ b/mingw-w64-breakpad-svn/0012-Fix-building-windows-client-unit-tests-with-gcc.patch @@ -0,0 +1,95 @@ +From 5314c78598a45acf2953e6b9f4c9168e180adcf9 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Tue, 11 Feb 2014 23:48:28 +0000 +Subject: [PATCH 12/24] Fix building windows client unit-tests with gcc + +- MinGW doesn't have _CrtSetReportMode + +- Trying to call PureVirtual() on a base class object give a linker error + +(Presumably gcc can see that base class will be used for virtual function call, +so requires an implementation (which is prohibited because it's pure virtual) +at link time.) + +XXX: crash_generatation_app manages to contain a pure virtual call without +tripping over this, so look how it does that... + +Signed-off-by: Jon TURNEY +--- + src/client/windows/unittests/exception_handler_death_test.cc | 6 +++++- + src/client/windows/unittests/exception_handler_test.cc | 6 +++++- + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/client/windows/unittests/exception_handler_death_test.cc b/src/client/windows/unittests/exception_handler_death_test.cc +index 079ca3d..e9f605e 100644 +--- a/src/client/windows/unittests/exception_handler_death_test.cc ++++ b/src/client/windows/unittests/exception_handler_death_test.cc +@@ -242,8 +242,10 @@ TEST_F(ExceptionHandlerDeathTest, InvalidParameterTest) { + ExceptionHandler handler(temp_path_, NULL, NULL, NULL, + ExceptionHandler::HANDLER_INVALID_PARAMETER); + ++#ifdef _MSC_VER + // Disable the message box for assertions + _CrtSetReportMode(_CRT_ASSERT, 0); ++#endif + + // Call with a bad argument. The invalid parameter will be swallowed + // and a dump will be generated, the process will exit(0). +@@ -255,7 +257,7 @@ struct PureVirtualCallBase { + PureVirtualCallBase() { + // We have to reinterpret so the linker doesn't get confused because the + // method isn't defined. +- reinterpret_cast(this)->PureFunction(); ++ reinterpret_cast(0)->PureFunction(); + } + virtual ~PureVirtualCallBase() {} + virtual void PureFunction() const = 0; +@@ -276,8 +278,10 @@ TEST_F(ExceptionHandlerDeathTest, PureVirtualCallTest) { + ExceptionHandler handler(temp_path_, NULL, NULL, NULL, + ExceptionHandler::HANDLER_PURECALL); + ++#ifdef _MSC_VER + // Disable the message box for assertions + _CrtSetReportMode(_CRT_ASSERT, 0); ++#endif + + // Calls a pure virtual function. + EXPECT_EXIT(DoCrashPureVirtualCall(), ::testing::ExitedWithCode(0), ""); +diff --git a/src/client/windows/unittests/exception_handler_test.cc b/src/client/windows/unittests/exception_handler_test.cc +index 5527532..a482379 100644 +--- a/src/client/windows/unittests/exception_handler_test.cc ++++ b/src/client/windows/unittests/exception_handler_test.cc +@@ -180,8 +180,10 @@ void ExceptionHandlerTest::DoCrashInvalidParameter() { + google_breakpad::ExceptionHandler::HANDLER_INVALID_PARAMETER, + kFullDumpType, kPipeName, NULL); + ++#ifdef _MSC_VER + // Disable the message box for assertions + _CrtSetReportMode(_CRT_ASSERT, 0); ++#endif + + // Although this is executing in the child process of the death test, + // if it's not true we'll still get an error rather than the crash +@@ -195,7 +197,7 @@ struct PureVirtualCallBase { + PureVirtualCallBase() { + // We have to reinterpret so the linker doesn't get confused because the + // method isn't defined. +- reinterpret_cast(this)->PureFunction(); ++ reinterpret_cast(0)->PureFunction(); + } + virtual ~PureVirtualCallBase() {} + virtual void PureFunction() const = 0; +@@ -212,8 +214,10 @@ void ExceptionHandlerTest::DoCrashPureVirtualCall() { + google_breakpad::ExceptionHandler::HANDLER_PURECALL, + kFullDumpType, kPipeName, NULL); + ++#ifdef _MSC_VER + // Disable the message box for assertions + _CrtSetReportMode(_CRT_ASSERT, 0); ++#endif + + // Although this is executing in the child process of the death test, + // if it's not true we'll still get an error rather than the crash +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0013-Add-symsrv_convert.patch b/mingw-w64-breakpad-svn/0013-Add-symsrv_convert.patch new file mode 100644 index 0000000000..b31e75cabf --- /dev/null +++ b/mingw-w64-breakpad-svn/0013-Add-symsrv_convert.patch @@ -0,0 +1,179 @@ +From f97f2cb3b78eb0c6e8c409e121634f1520af6292 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Sun, 3 Aug 2014 23:44:28 +0100 +Subject: [PATCH 13/24] Add symsrv_convert + +- Add symsrv_convert from http://hg.mozilla.org/users/tmielczarek_mozilla.com/fetch-win32-symbols/ +- Add building symsrv_convert to .gyp file +- Fix compilation with MSVS 2013 +- NOMINMAX should not be needed as that comes from target_defaults + +Signed-off-by: Jon TURNEY +--- + src/common/windows/common_windows.gyp | 2 +- + src/common/windows/pdb_source_line_writer.cc | 6 +++ + .../converter/ms_symbol_server_converter.cc | 2 +- + .../converter/ms_symbol_server_converter.gyp | 13 +++++ + .../windows/converter/ms_symbol_server_converter.h | 4 +- + src/tools/windows/converter/symsrv_convert.cc | 59 ++++++++++++++++++++++ + 6 files changed, 82 insertions(+), 4 deletions(-) + mode change 100644 => 100755 src/common/windows/pdb_source_line_writer.cc + mode change 100644 => 100755 src/tools/windows/converter/ms_symbol_server_converter.cc + mode change 100644 => 100755 src/tools/windows/converter/ms_symbol_server_converter.h + create mode 100644 src/tools/windows/converter/symsrv_convert.cc + +diff --git a/src/common/windows/common_windows.gyp b/src/common/windows/common_windows.gyp +index aadc21a..5f4bff7 100644 +--- a/src/common/windows/common_windows.gyp ++++ b/src/common/windows/common_windows.gyp +@@ -37,7 +37,7 @@ + 'all_dependent_settings': { + 'include_dirs': [ + '<(DEPTH)', +- '$(VSInstallDir)\DIA SDK\include', ++ '"$(VSInstallDir)\DIA SDK\include"', + ], + 'msvs_settings': { + 'VCLinkerTool': { +diff --git a/src/common/windows/pdb_source_line_writer.cc b/src/common/windows/pdb_source_line_writer.cc +old mode 100644 +new mode 100755 +index a3213dc..20a7315 +--- a/src/common/windows/pdb_source_line_writer.cc ++++ b/src/common/windows/pdb_source_line_writer.cc +@@ -27,6 +27,12 @@ + // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ++// We don't want windows.h to define the macro max() which collides with ++// std::numeric_limits::max() ++#ifndef NOMINMAX ++#define NOMINMAX ++#endif ++ + #include "common/windows/pdb_source_line_writer.h" + + #include +diff --git a/src/tools/windows/converter/ms_symbol_server_converter.cc b/src/tools/windows/converter/ms_symbol_server_converter.cc +old mode 100644 +new mode 100755 +index dd3f770..5a701a2 +--- a/src/tools/windows/converter/ms_symbol_server_converter.cc ++++ b/src/tools/windows/converter/ms_symbol_server_converter.cc +@@ -422,7 +422,7 @@ BOOL CALLBACK MSSymbolServerConverter::SymCallback(HANDLE process, + + // static + BOOL CALLBACK MSSymbolServerConverter::SymFindFileInPathCallback( +- const char *filename, void *context) { ++ PCSTR filename, PVOID context) { + // FALSE ends the search, indicating that the located symbol file is + // satisfactory. + return FALSE; +diff --git a/src/tools/windows/converter/ms_symbol_server_converter.gyp b/src/tools/windows/converter/ms_symbol_server_converter.gyp +index 57ec790..d84be5c 100644 +--- a/src/tools/windows/converter/ms_symbol_server_converter.gyp ++++ b/src/tools/windows/converter/ms_symbol_server_converter.gyp +@@ -42,5 +42,18 @@ + '../../../common/windows/common_windows.gyp:common_windows_lib', + ], + }, ++ { ++ 'target_name': 'symsrv_convert', ++ 'type': 'executable', ++ 'dependencies': [ ++ 'ms_symbol_server_converter' ++ ], ++ 'sources' : [ ++ 'symsrv_convert.cc', ++ ], ++ 'include_dirs': [ ++ '<(DEPTH)', ++ ], ++ } + ], + } +diff --git a/src/tools/windows/converter/ms_symbol_server_converter.h b/src/tools/windows/converter/ms_symbol_server_converter.h +old mode 100644 +new mode 100755 +index d601b43..82aaea0 +--- a/src/tools/windows/converter/ms_symbol_server_converter.h ++++ b/src/tools/windows/converter/ms_symbol_server_converter.h +@@ -199,8 +199,8 @@ class MSSymbolServerConverter { + // SymFindFileInPath actually seems to accept NULL for a callback function + // and behave properly for our needs in that case, but the documentation + // doesn't mention it, so this little callback is provided. +- static BOOL CALLBACK SymFindFileInPathCallback(const char *filename, +- void *context); ++ static BOOL CALLBACK SymFindFileInPathCallback(PCSTR filename, ++ PVOID context); + + // The search path used by SymSrv, built based on the arguments to the + // constructor. +diff --git a/src/tools/windows/converter/symsrv_convert.cc b/src/tools/windows/converter/symsrv_convert.cc +new file mode 100644 +index 0000000..4e45b56 +--- /dev/null ++++ b/src/tools/windows/converter/symsrv_convert.cc +@@ -0,0 +1,59 @@ ++#include ++#include ++#include ++ ++#include "tools/windows/converter/ms_symbol_server_converter.h" ++ ++using std::string; ++using std::vector; ++using google_breakpad::MissingSymbolInfo; ++using google_breakpad::MSSymbolServerConverter; ++ ++int main(int argc, char *argv[]) ++{ ++ if (argc < 5) { ++ fprintf(stderr, "Usage: %s \n ", argv[0]); ++ return 1; ++ } ++ ++ MissingSymbolInfo missing_info; ++ missing_info.debug_file = argv[3]; ++ missing_info.debug_identifier = argv[4]; ++ ++ MSSymbolServerConverter converter(argv[2], vector(1, argv[1])); ++ string converted_file; ++ ++ MSSymbolServerConverter::LocateResult result = ++ converter.LocateAndConvertSymbolFile(missing_info, ++ false, ++ &converted_file, ++ NULL); ++ printf("%s: ", argv[3]); ++ int return_code; ++ switch(result) { ++ case MSSymbolServerConverter::LOCATE_SUCCESS: ++ printf("converted: %s\n", converted_file.c_str()); ++ return_code = 0; ++ break; ++ ++ case MSSymbolServerConverter::LOCATE_RETRY: ++ printf("try again later\n"); ++ return_code = 1; ++ break; ++ ++ case MSSymbolServerConverter::LOCATE_FAILURE: ++ case MSSymbolServerConverter::LOCATE_NOT_FOUND: ++ printf("failed to locate symbols\n"); ++ return_code = 2; ++ break; ++ ++ default: ++ // ??? ++ return_code = 3; ++ break; ++ } ++ fflush(stdout); ++ fflush(stderr); ++ ++ return return_code; ++} +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0014-Build-MinGW-client-library-using-gyp-generated-Makef.patch b/mingw-w64-breakpad-svn/0014-Build-MinGW-client-library-using-gyp-generated-Makef.patch new file mode 100644 index 0000000000..a80c5a2b76 --- /dev/null +++ b/mingw-w64-breakpad-svn/0014-Build-MinGW-client-library-using-gyp-generated-Makef.patch @@ -0,0 +1,56 @@ +From f27d242e8b619d8ae867627cc342c8dc0bf762cc Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Thu, 13 Feb 2014 01:04:51 +0000 +Subject: [PATCH 14/24] Build MinGW client library using gyp-generated Makefile + +Make what it's possible to make with gyp for MinGW. + +Tools which rely on DIA (dump_syms, ms_symbol_server_converter) cannot be built +for MinGW. + +In theory it should be possible to build symupload, because it doesn't depend on +DIA, but it depends on the common_windows_libs, which does have a dependency on +DIA. + +v2: +Use configure to find WINDRES + +Signed-off-by: Jon TURNEY +--- + Makefile.am | 7 +++++++ + configure.ac | 1 + + 2 files changed, 8 insertions(+) + +diff --git a/Makefile.am b/Makefile.am +index ad62471..7632ba1 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -338,6 +338,13 @@ bin_PROGRAMS += \ + endif + endif + ++if MINGW_HOST ++# For MinGW, use gyp to generate a Makefile to build Windows client library ++all-local: ++ cd $(top_srcdir)/src ; gyp --no-circular-check --depth=. -f make client/windows/breakpad_client.gyp ++ cd $(top_srcdir)/src ; $(MAKE) CXX="$(CXX)" CXXFLAGS="-DUNICODE -D_UNICODE $(AM_CPPFLAGS) $(CXXFLAGS)" RC="$(WINDRES)" ++endif ++ + ## Tests + if !DISABLE_PROCESSOR + check_PROGRAMS += \ +diff --git a/configure.ac b/configure.ac +index a2b9287..b2d8e33 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -47,6 +47,7 @@ AM_PROG_CC_C_O + AC_PROG_CPP + AC_PROG_CXX + AC_PROG_RANLIB ++AC_CHECK_TOOL(WINDRES, [windres]) + AM_CONDITIONAL(GCC, test "$GCC" = yes) # let the Makefile know if we're gcc + + dnl This must come before all the feature tests below. +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0015-Use-a-default-debug-id-of-all-zeros-when-no-CV-recor.patch b/mingw-w64-breakpad-svn/0015-Use-a-default-debug-id-of-all-zeros-when-no-CV-recor.patch new file mode 100644 index 0000000000..2c60e8b4c6 --- /dev/null +++ b/mingw-w64-breakpad-svn/0015-Use-a-default-debug-id-of-all-zeros-when-no-CV-recor.patch @@ -0,0 +1,69 @@ +From 376d96eb1861ce25d284fa284192c7f2a88dce74 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Sat, 22 Feb 2014 15:59:22 +0000 +Subject: [PATCH 15/24] Use a default debug-id of all zeros when no CV record + is present + +This lets us do something slightly useful with current binaries +which are produced without a CV record, but there is no guarantee +that the actually match. + +Signed-off-by: Jon TURNEY +--- + src/common/pecoff/pecoff_file_id.cc | 8 ++++++++ + src/processor/minidump.cc | 8 ++++++++ + 2 files changed, 16 insertions(+) + +diff --git a/src/common/pecoff/pecoff_file_id.cc b/src/common/pecoff/pecoff_file_id.cc +index 47c2763..04563c8 100644 +--- a/src/common/pecoff/pecoff_file_id.cc ++++ b/src/common/pecoff/pecoff_file_id.cc +@@ -32,6 +32,7 @@ + + #include "common/pecoff/pecoff_file_id.h" + ++#include + #include "common/pecoff/pecoffutils.h" + + namespace google_breakpad { +@@ -73,11 +74,18 @@ bool PeCoffFileID::PeCoffFileIdentifierFromMappedFile(const void* base, + age)) + return true; + ++#if 1 ++ // XXX: Fallback to a default debug_identifier. ++ memset(identifier, 0, kMDGUIDSize); ++ *age = 0; ++ return true; ++#else + // Fall back on hashing the first page of the text section. + // (This is of questionable value as the Windows Minidump writer doesn't have + // this feature) + return HashPeCoffTextSection(reinterpret_cast(base), + identifier); ++#endif + } + + } // namespace google_breakpad +diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc +index 71c8456..fe86478 100644 +--- a/src/processor/minidump.cc ++++ b/src/processor/minidump.cc +@@ -2044,6 +2044,14 @@ string MinidumpModule::debug_identifier() const { + + // TODO(mmentovai): on the Mac, provide fallbacks as in code_identifier(). + ++ // XXX: PE generated with gcc don't currently have CV records, so the Windows ++ // minidumper can't record any identifier information, so there's no useful ++ // identifier for us to match with. Fallback to a default debug_identifier. ++ if (identifier.empty()) ++ { ++ identifier = "000000000000000000000000000000000"; ++ } ++ + // Relatively common case + BPLOG_IF(INFO, identifier.empty()) << "MinidumpModule could not determine " + "debug_identifier for " << *name_; +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0016-Increase-RA-scanning-to-60-words.patch b/mingw-w64-breakpad-svn/0016-Increase-RA-scanning-to-60-words.patch new file mode 100644 index 0000000000..27a6de3b77 --- /dev/null +++ b/mingw-w64-breakpad-svn/0016-Increase-RA-scanning-to-60-words.patch @@ -0,0 +1,27 @@ +From ecd4d0f3d96f61f87522a7c34776a280a8233fc1 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Mon, 24 Feb 2014 21:09:24 +0000 +Subject: [PATCH 16/24] Increase RA scanning to 60 words + +http://code.google.com/p/google-breakpad/issues/detail?id=452 +Signed-off-by: Jon TURNEY +--- + src/processor/stackwalker.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/processor/stackwalker.cc b/src/processor/stackwalker.cc +index 424cf4c..bd900e0 100644 +--- a/src/processor/stackwalker.cc ++++ b/src/processor/stackwalker.cc +@@ -58,7 +58,7 @@ + + namespace google_breakpad { + +-const int Stackwalker::kRASearchWords = 30; ++const int Stackwalker::kRASearchWords = 60; + + uint32_t Stackwalker::max_frames_ = 1024; + bool Stackwalker::max_frames_set_ = false; +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0017-Use-__USE_MINGW_ANSI_STDIO-for-MinGW-build.patch b/mingw-w64-breakpad-svn/0017-Use-__USE_MINGW_ANSI_STDIO-for-MinGW-build.patch new file mode 100644 index 0000000000..32832cf8be --- /dev/null +++ b/mingw-w64-breakpad-svn/0017-Use-__USE_MINGW_ANSI_STDIO-for-MinGW-build.patch @@ -0,0 +1,28 @@ +From 5958e3ce981251e29dc51a858123ba57a97a47bd Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Wed, 9 Apr 2014 21:14:07 +0100 +Subject: [PATCH 17/24] Use __USE_MINGW_ANSI_STDIO for MinGW build + +Use __USE_MINGW_ANSI_STDIO for ANSI C99 compatible implementation of printf() +and friends on MinGW + +Signed-off-by: Jon TURNEY +--- + Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile.am b/Makefile.am +index 7632ba1..f1f29f3 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -69,6 +69,7 @@ endif + if MINGW_HOST + SOCKET_LIBS = -lws2_32 + AM_CPPFLAGS += -D_POSIX ++AM_CPPFLAGS += -D__USE_MINGW_ANSI_STDIO + endif + + # Specify include paths for ac macros +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0018-Provide-a-working-strtok_r-for-MinGW.patch b/mingw-w64-breakpad-svn/0018-Provide-a-working-strtok_r-for-MinGW.patch new file mode 100644 index 0000000000..e6f46e77c4 --- /dev/null +++ b/mingw-w64-breakpad-svn/0018-Provide-a-working-strtok_r-for-MinGW.patch @@ -0,0 +1,213 @@ +From 6ba0bec0545343c9b12c1468839014166a69ddc7 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Wed, 9 Apr 2014 23:49:03 +0100 +Subject: [PATCH 18/24] Provide a working strtok_r for MinGW + +Emulating it using strtok will not work as re-entrancy is required + +Signed-off-by: Jon TURNEY +--- + Makefile.am | 2 +- + compat/strtok_r.c | 85 +++++++++++++++++++++++++++++ + configure.ac | 3 + + src/config.h.in | 3 + + src/processor/basic_source_line_resolver.cc | 4 ++ + src/processor/cfi_frame_info.cc | 6 +- + src/processor/tokenize.cc | 6 +- + 7 files changed, 106 insertions(+), 3 deletions(-) + create mode 100644 compat/strtok_r.c + +diff --git a/Makefile.am b/Makefile.am +index f1f29f3..aa333ae 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1183,7 +1183,7 @@ src_processor_minidump_stackwalk_LDADD = \ + src/processor/stackwalker_x86.o \ + src/processor/tokenize.o \ + src/third_party/libdisasm/libdisasm.a \ +- $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SOCKET_LIBS) ++ $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SOCKET_LIBS) @LIBOBJS@ + + endif !DISABLE_PROCESSOR + +diff --git a/compat/strtok_r.c b/compat/strtok_r.c +new file mode 100644 +index 0000000..ec7b637 +--- /dev/null ++++ b/compat/strtok_r.c +@@ -0,0 +1,85 @@ ++/*- ++ * Copyright (c) 1998 Softweyr LLC. All rights reserved. ++ * ++ * strtok_r, from Berkeley strtok ++ * Oct 13, 1998 by Wes Peters ++ * ++ * Copyright (c) 1988, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * 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 ++ * notices, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notices, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. All advertising materials mentioning features or use of this software ++ * must display the following acknowledgement: ++ * This product includes software developed by Softweyr LLC, the ++ * University of California, Berkeley, and its contributors. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY SOFTWEYR LLC, THE REGENTS AND CONTRIBUTORS ++ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTWEYR LLC, THE ++ * REGENTS, OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED ++ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ++ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ++ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include ++ ++char * ++strtok_r(char *s, const char *delim, char **last) ++{ ++ char *spanp, *tok; ++ int c, sc; ++ ++ if (s == NULL && (s = *last) == NULL) ++ return (NULL); ++ ++ /* ++ * Skip (span) leading delimiters (s += strspn(s, delim), sort of). ++ */ ++cont: ++ c = *s++; ++ for (spanp = (char *)delim; (sc = *spanp++) != 0;) { ++ if (c == sc) ++ goto cont; ++ } ++ ++ if (c == 0) { /* no non-delimiter characters */ ++ *last = NULL; ++ return (NULL); ++ } ++ tok = s - 1; ++ ++ /* ++ * Scan token (scan for delimiters: s += strcspn(s, delim), sort of). ++ * Note that delim must have one NUL; we stop if we see that, too. ++ */ ++ for (;;) { ++ c = *s++; ++ spanp = (char *)delim; ++ do { ++ if ((sc = *spanp++) == c) { ++ if (c == 0) ++ s = NULL; ++ else ++ s[-1] = '\0'; ++ *last = s; ++ return (tok); ++ } ++ } while (sc != 0); ++ } ++ /* NOTREACHED */ ++} +diff --git a/configure.ac b/configure.ac +index b2d8e33..88cbf36 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -76,6 +76,9 @@ m4_include(m4/ax_pthread.m4) + AX_PTHREAD + AC_CHECK_HEADERS([a.out.h]) + ++AC_CONFIG_LIBOBJ_DIR([compat]) ++AC_REPLACE_FUNCS([strtok_r]) ++ + # Only build Linux client libs when compiling for Linux + case $host in + *-*-linux* | *-android* ) +diff --git a/src/config.h.in b/src/config.h.in +index 1db0159..cd76ccb 100644 +--- a/src/config.h.in ++++ b/src/config.h.in +@@ -24,6 +24,9 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_STRING_H + ++/* Define to 1 if you have the `strtok_r' function. */ ++#undef HAVE_STRTOK_R ++ + /* Define to 1 if you have the header file. */ + #undef HAVE_SYS_STAT_H + +diff --git a/src/processor/basic_source_line_resolver.cc b/src/processor/basic_source_line_resolver.cc +index 1d4d0e9..6bbbf13 100644 +--- a/src/processor/basic_source_line_resolver.cc ++++ b/src/processor/basic_source_line_resolver.cc +@@ -49,6 +49,10 @@ + + #include "processor/tokenize.h" + ++#ifndef HAVE_STRTOK_R ++extern "C" char *strtok_r(char *, const char *, char **); ++#endif ++ + using std::map; + using std::vector; + using std::make_pair; +diff --git a/src/processor/cfi_frame_info.cc b/src/processor/cfi_frame_info.cc +index 0c4af7b..dd2b438 100644 +--- a/src/processor/cfi_frame_info.cc ++++ b/src/processor/cfi_frame_info.cc +@@ -41,12 +41,16 @@ + #include "common/scoped_ptr.h" + #include "processor/postfix_evaluator-inl.h" + +-namespace google_breakpad { ++#ifndef HAVE_STRTOK_R ++extern "C" char *strtok_r(char *, const char *, char **); ++#endif + + #ifdef _MSC_VER + #define strtok_r strtok_s + #endif + ++namespace google_breakpad { ++ + template + bool CFIFrameInfo::FindCallerRegs(const RegisterValueMap ®isters, + const MemoryRegion &memory, +diff --git a/src/processor/tokenize.cc b/src/processor/tokenize.cc +index 8fce87a..e6213ac 100644 +--- a/src/processor/tokenize.cc ++++ b/src/processor/tokenize.cc +@@ -34,12 +34,16 @@ + + #include "common/using_std_string.h" + +-namespace google_breakpad { ++#ifndef HAVE_STRTOK_R ++extern "C" char *strtok_r(char *, const char *, char **); ++#endif + + #ifdef _MSC_VER + #define strtok_r strtok_s + #endif + ++namespace google_breakpad { ++ + using std::vector; + + bool Tokenize(char *line, +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0019-Add-a-README.md-with-notes-on-what-is-left-to-do.patch b/mingw-w64-breakpad-svn/0019-Add-a-README.md-with-notes-on-what-is-left-to-do.patch new file mode 100644 index 0000000000..41bd5a5310 --- /dev/null +++ b/mingw-w64-breakpad-svn/0019-Add-a-README.md-with-notes-on-what-is-left-to-do.patch @@ -0,0 +1,99 @@ +From 021a9372d791c8620c30ad841ce293ac8d505ac4 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Wed, 5 Feb 2014 13:44:28 +0000 +Subject: [PATCH 19/24] Add a README.md with notes on what is left to do + +Signed-off-by: Jon TURNEY +--- + README.md | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 79 insertions(+) + create mode 100644 README.md + +diff --git a/README.md b/README.md +new file mode 100644 +index 0000000..6ce8836 +--- /dev/null ++++ b/README.md +@@ -0,0 +1,79 @@ ++# Breakpad for Cygwin/MinGW ++ ++google-breakpad with support added for PE/COFF executables with DWARF debugging ++information, as used by Cygwin/MinGW ++ ++## Compiling ++ ++See README ++ ++```` ++./configure && make ++```` ++ ++will produce dump\_syms, minidump\_dump, minidump\_stackwalk, libbreakpad.a ++and for MinGW libcrash\_generation_client.a, libcrash\_generation_server.a, crash\_generation_app.exe ++ ++Note that since git-svn ignores svn externals, this repository is missing the ++gyp and gtest dependencies. ++ ++## Using ++ ++See http://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad ++ ++### Producing and installing symbols ++ ++```` ++dump_syms crash_generation_app.exe >crash_generation_app.sym ++FILE=`head -1 crash_generation_app.sym | cut -f5 -d' '` ++BUILDID=`head -1 crash_generation_app.sym | cut -f4 -d' '` ++SYMBOLPATH=/symbols/${FILE}/${BUILDID}/ ++mdir -p ${SYMBOLPATH} ++mv crash_generation_app.sym ${SYMBOLPATH} ++```` ++ ++### Generating a minidump file ++ ++A small test application demonstrating out-of-process dumping called ++crash\_generation\_app.exe is built. ++ ++- Run it once, selecting "Server->Start" from the menu ++- Run it again, selecting "Client->Deref zero" ++- Client should crash, and a .dmp is written to C:\Dumps\ ++ ++### Processing the minidump to produce a stack trace ++ ++```` ++minidump_stackwalk blah.dmp /symbols/ ++```` ++ ++## Issues ++ ++### Lack of build-id ++ ++Executables produced by Cygwin/MinGW gcc do not currently contain a build-id. ++On Windows, this build-id takes the form of a CodeView record. ++ ++This build-id is captured for all modules in the process by MiniDumpWriteDump(), ++and is used by the breakpad minidump processing tools to find the matching ++symbol file. ++ ++See http://debuginfo.com/articles/debuginfomatch.html ++ ++I have implemented 'ld --build-id' for PE/COFF executables (See ++https://sourceware.org/ml/binutils/2014-01/msg00296.html), but you must use ++sufficently recent binutils and build with '-Wl,--build-id' (or a gcc configured ++'--enable-linker-build-id' which turns that flag on by defualt) to enable that. ++ ++A tool could be written to add a build-id to existing PE/COFF executables, but in ++practice this turns out to be quite tricky... ++ ++### Symbols from a PDB or the Microsoft Symbol Server ++ ++ ++symsrv_convert and dump_syms for PDB cannot be currently built with MinGW, ++because they require the MS DIA (Debug Interface Access) SDK (which is only in ++paid editions of Visual Studio) and the DIA SDK uses ATL. ++ ++An alternate PDB parser is available at https://github.com/luser/dump_syms, but ++that also needs some work before it can be built with MinGW. +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0020-Support-for-multiple-upload-files-in-Breakpad.patch b/mingw-w64-breakpad-svn/0020-Support-for-multiple-upload-files-in-Breakpad.patch new file mode 100644 index 0000000000..a5eb422368 --- /dev/null +++ b/mingw-w64-breakpad-svn/0020-Support-for-multiple-upload-files-in-Breakpad.patch @@ -0,0 +1,327 @@ +From 2b9f8e15393a39a53896f3b8b820b3a2607fb1c1 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Mon, 13 Oct 2014 16:26:30 +0100 +Subject: [PATCH 20/24] Support for multiple upload files in Breakpad + +https://bugzilla.mozilla.org/show_bug.cgi?id=1048091 +Signed-off-by: Jon TURNEY +--- + src/client/windows/sender/crash_report_sender.cc | 4 +- + src/client/windows/sender/crash_report_sender.h | 4 +- + src/common/http_upload.cc | 15 ++++--- + src/common/http_upload.h | 9 ++-- + src/common/windows/http_upload.cc | 56 ++++++++++++------------ + src/common/windows/http_upload.h | 14 +++--- + src/tools/common/symupload/minidump_upload.cc | 6 ++- + src/tools/common/symupload/sym_upload.cc | 7 ++- + src/tools/windows/symupload/symupload.cc | 6 ++- + 9 files changed, 63 insertions(+), 58 deletions(-) + +diff --git a/src/client/windows/sender/crash_report_sender.cc b/src/client/windows/sender/crash_report_sender.cc +index ecf626d..70c36b0 100644 +--- a/src/client/windows/sender/crash_report_sender.cc ++++ b/src/client/windows/sender/crash_report_sender.cc +@@ -59,7 +59,7 @@ CrashReportSender::CrashReportSender(const wstring &checkpoint_file) + + ReportResult CrashReportSender::SendCrashReport( + const wstring &url, const map ¶meters, +- const wstring &dump_file_name, wstring *report_code) { ++ const map &files, wstring *report_code) { + int today = GetCurrentDate(); + if (today == last_sent_date_ && + max_reports_per_day_ != -1 && +@@ -69,7 +69,7 @@ ReportResult CrashReportSender::SendCrashReport( + + int http_response = 0; + bool result = HTTPUpload::SendRequest( +- url, parameters, dump_file_name, L"upload_file_minidump", NULL, report_code, ++ url, parameters, files, NULL, report_code, + &http_response); + + if (result) { +diff --git a/src/client/windows/sender/crash_report_sender.h b/src/client/windows/sender/crash_report_sender.h +index da1ed0a..7786cc6 100644 +--- a/src/client/windows/sender/crash_report_sender.h ++++ b/src/client/windows/sender/crash_report_sender.h +@@ -77,7 +77,7 @@ class CrashReportSender { + + int max_reports_per_day() const { return max_reports_per_day_; } + +- // Sends the specified minidump file, along with the map of ++ // Sends the specified files, along with the map of + // name value pairs, as a multipart POST request to the given URL. + // Parameter names must contain only printable ASCII characters, + // and may not contain a quote (") character. +@@ -89,7 +89,7 @@ class CrashReportSender { + // (Otherwise, report_code will be unchanged.) + ReportResult SendCrashReport(const wstring &url, + const map ¶meters, +- const wstring &dump_file_name, ++ const map &files, + wstring *report_code); + + private: +diff --git a/src/common/http_upload.cc b/src/common/http_upload.cc +index 91fedf2..4dbbaa8 100644 +--- a/src/common/http_upload.cc ++++ b/src/common/http_upload.cc +@@ -56,8 +56,7 @@ static const char kUserAgent[] = "Breakpad/1.0 (Linux)"; + // static + bool HTTPUpload::SendRequest(const string &url, + const map ¶meters, +- const string &upload_file, +- const string &file_part_name, ++ const map &files, + const string &proxy, + const string &proxy_user_pwd, + const string &ca_certificate_file, +@@ -96,11 +95,13 @@ bool HTTPUpload::SendRequest(const string &url, + CURLFORM_COPYCONTENTS, iter->second.c_str(), + CURLFORM_END); + +- // Add form file. +- curl_formadd(&formpost, &lastptr, +- CURLFORM_COPYNAME, file_part_name.c_str(), +- CURLFORM_FILE, upload_file.c_str(), +- CURLFORM_END); ++ // Add form files. ++ for (iter = files.begin(); iter != files.end(); ++iter) { ++ (*curl_formadd)(&formpost, &lastptr, ++ CURLFORM_COPYNAME, iter->first.c_str(), ++ CURLFORM_FILE, iter->second.c_str(), ++ CURLFORM_END); ++ } + + curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost); + +diff --git a/src/common/http_upload.h b/src/common/http_upload.h +index 6dd36ea..4f0e452 100644 +--- a/src/common/http_upload.h ++++ b/src/common/http_upload.h +@@ -45,9 +45,9 @@ using std::map; + + class HTTPUpload { + public: +- // Sends the given set of parameters, along with the contents of +- // upload_file, as a multipart POST request to the given URL. +- // file_part_name contains the name of the file part of the request ++ // Sends the given sets of parameters and files as a multipart POST ++ // request to the given URL. ++ // Each key in |files| is the name of the file part of the request + // (i.e. it corresponds to the name= attribute on an . + // Parameter names must contain only printable ASCII characters, + // and may not contain a quote (") character. +@@ -60,8 +60,7 @@ class HTTPUpload { + // returned in error_description. + static bool SendRequest(const string &url, + const map ¶meters, +- const string &upload_file, +- const string &file_part_name, ++ const map &files, + const string &proxy, + const string &proxy_user_pwd, + const string &ca_certificate_file, +diff --git a/src/common/windows/http_upload.cc b/src/common/windows/http_upload.cc +index ba04d7d..7676bdc 100644 +--- a/src/common/windows/http_upload.cc ++++ b/src/common/windows/http_upload.cc +@@ -64,8 +64,7 @@ class HTTPUpload::AutoInternetHandle { + // static + bool HTTPUpload::SendRequest(const wstring &url, + const map ¶meters, +- const wstring &upload_file, +- const wstring &file_part_name, ++ const map &files, + int *timeout, + wstring *response_body, + int *response_code) { +@@ -143,8 +142,7 @@ bool HTTPUpload::SendRequest(const wstring &url, + HTTP_ADDREQ_FLAG_ADD); + + string request_body; +- if (!GenerateRequestBody(parameters, upload_file, +- file_part_name, boundary, &request_body)) { ++ if (!GenerateRequestBody(parameters, files, boundary, &request_body)) { + return false; + } + +@@ -268,15 +266,9 @@ wstring HTTPUpload::GenerateRequestHeader(const wstring &boundary) { + + // static + bool HTTPUpload::GenerateRequestBody(const map ¶meters, +- const wstring &upload_file, +- const wstring &file_part_name, ++ const map &files, + const wstring &boundary, + string *request_body) { +- vector contents; +- if (!GetFileContents(upload_file, &contents)) { +- return false; +- } +- + string boundary_str = WideToUTF8(boundary); + if (boundary_str.empty()) { + return false; +@@ -293,28 +285,36 @@ bool HTTPUpload::GenerateRequestBody(const map ¶meters, + WideToUTF8(pos->second) + "\r\n"); + } + +- // Now append the upload file as a binary (octet-stream) part +- string filename_utf8 = WideToUTF8(upload_file); +- if (filename_utf8.empty()) { +- return false; +- } ++ for (map::const_iterator pos = files.begin(); ++ pos != files.end(); ++pos) { ++ vector contents; ++ if (!GetFileContents(pos->second, &contents)) { ++ return false; ++ } + +- string file_part_name_utf8 = WideToUTF8(file_part_name); +- if (file_part_name_utf8.empty()) { +- return false; +- } ++ // Now append the upload files as a binary (octet-stream) part ++ string filename_utf8 = WideToUTF8(pos->second); ++ if (filename_utf8.empty()) { ++ return false; ++ } ++ ++ string file_part_name_utf8 = WideToUTF8(pos->first); ++ if (file_part_name_utf8.empty()) { ++ return false; ++ } + +- request_body->append("--" + boundary_str + "\r\n"); +- request_body->append("Content-Disposition: form-data; " +- "name=\"" + file_part_name_utf8 + "\"; " +- "filename=\"" + filename_utf8 + "\"\r\n"); +- request_body->append("Content-Type: application/octet-stream\r\n"); +- request_body->append("\r\n"); ++ request_body->append("--" + boundary_str + "\r\n"); ++ request_body->append("Content-Disposition: form-data; " ++ "name=\"" + file_part_name_utf8 + "\"; " ++ "filename=\"" + filename_utf8 + "\"\r\n"); ++ request_body->append("Content-Type: application/octet-stream\r\n"); ++ request_body->append("\r\n"); + +- if (!contents.empty()) { ++ if (!contents.empty()) { + request_body->append(&(contents[0]), contents.size()); ++ } ++ request_body->append("\r\n"); + } +- request_body->append("\r\n"); + request_body->append("--" + boundary_str + "--\r\n"); + return true; + } +diff --git a/src/common/windows/http_upload.h b/src/common/windows/http_upload.h +index e485b70..f8d48cb 100644 +--- a/src/common/windows/http_upload.h ++++ b/src/common/windows/http_upload.h +@@ -54,9 +54,9 @@ using std::vector; + + class HTTPUpload { + public: +- // Sends the given set of parameters, along with the contents of +- // upload_file, as a multipart POST request to the given URL. +- // file_part_name contains the name of the file part of the request ++ // Sends the given sets of parameters and files as a multipart POST ++ // request to the given URL. ++ // Each key in |files| is the name of the file part of the request + // (i.e. it corresponds to the name= attribute on an . + // Parameter names must contain only printable ASCII characters, + // and may not contain a quote (") character. +@@ -67,8 +67,7 @@ class HTTPUpload { + // received (or 0 if the request failed before getting an HTTP response). + static bool SendRequest(const wstring &url, + const map ¶meters, +- const wstring &upload_file, +- const wstring &file_part_name, ++ const map &files, + int *timeout, + wstring *response_body, + int *response_code); +@@ -88,12 +87,11 @@ class HTTPUpload { + // Generates a HTTP request header for a multipart form submit. + static wstring GenerateRequestHeader(const wstring &boundary); + +- // Given a set of parameters, an upload filename, and a file part name, ++ // Given a set of parameters, a set of upload files, and a file part name, + // generates a multipart request body string with these parameters + // and minidump contents. Returns true on success. + static bool GenerateRequestBody(const map ¶meters, +- const wstring &upload_file, +- const wstring &file_part_name, ++ const map &files, + const wstring &boundary, + string *request_body); + +diff --git a/src/tools/common/symupload/minidump_upload.cc b/src/tools/common/symupload/minidump_upload.cc +index f1146ac..ed0dd5f 100644 +--- a/src/tools/common/symupload/minidump_upload.cc ++++ b/src/tools/common/symupload/minidump_upload.cc +@@ -62,12 +62,14 @@ static void Start(Options *options) { + parameters["prod"] = options->product; + parameters["ver"] = options->version; + ++ std::map files; ++ files["upload_file_minidump"] = options->minidumpPath; ++ + // Send it + string response, error; + bool success = HTTPUpload::SendRequest(options->uploadURLStr, + parameters, +- options->minidumpPath, +- "upload_file_minidump", ++ files, + options->proxy, + options->proxy_user_pwd, + "", +diff --git a/src/tools/common/symupload/sym_upload.cc b/src/tools/common/symupload/sym_upload.cc +index bc2693e..0246044 100644 +--- a/src/tools/common/symupload/sym_upload.cc ++++ b/src/tools/common/symupload/sym_upload.cc +@@ -139,12 +139,15 @@ static void Start(Options *options) { + parameters["debug_file"] = module_parts[4]; + parameters["code_file"] = module_parts[4]; + parameters["debug_identifier"] = compacted_id; ++ ++ std::map files; ++ files["symbol_file"] = options->symbolsPath; ++ + string response, error; + long response_code; + bool success = HTTPUpload::SendRequest(options->uploadURLStr, + parameters, +- options->symbolsPath, +- "symbol_file", ++ files, + options->proxy, + options->proxy_user_pwd, + "", +diff --git a/src/tools/windows/symupload/symupload.cc b/src/tools/windows/symupload/symupload.cc +index df4bb69..fa5294d 100644 +--- a/src/tools/windows/symupload/symupload.cc ++++ b/src/tools/windows/symupload/symupload.cc +@@ -228,12 +228,14 @@ int wmain(int argc, wchar_t *argv[]) { + fwprintf(stderr, L"Warning: Could not get file version for %s\n", module); + } + ++ map files; ++ files[L"symbol_file"] = symbol_file; ++ + bool success = true; + + while (currentarg < argc) { + int response_code; +- if (!HTTPUpload::SendRequest(argv[currentarg], parameters, +- symbol_file, L"symbol_file", ++ if (!HTTPUpload::SendRequest(argv[currentarg], parameters, files, + timeout == -1 ? NULL : &timeout, + nullptr, &response_code)) { + success = false; +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0021-Fallback-to-synthesizing-a-debug-id-from-version-and.patch b/mingw-w64-breakpad-svn/0021-Fallback-to-synthesizing-a-debug-id-from-version-and.patch new file mode 100644 index 0000000000..306d2287c8 --- /dev/null +++ b/mingw-w64-breakpad-svn/0021-Fallback-to-synthesizing-a-debug-id-from-version-and.patch @@ -0,0 +1,62 @@ +From 87b47575d002f2a542a408490b5f7c963cb43dc9 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Thu, 16 Oct 2014 00:53:55 +0100 +Subject: [PATCH 21/24] Fallback to synthesizing a debug-id from version and + architecture, if possible + +Based on an idea by Ivan Gubarev + +Ideally there would be a similar change in PeCoffFileIdentifierFromMappedFile(), +but that is not written yet... + +Signed-off-by: Jon TURNEY +--- + src/processor/minidump.cc | 32 +++++++++++++++++++++++++++++--- + 1 file changed, 29 insertions(+), 3 deletions(-) + +diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc +index fe86478..c143e89 100644 +--- a/src/processor/minidump.cc ++++ b/src/processor/minidump.cc +@@ -2044,9 +2044,35 @@ string MinidumpModule::debug_identifier() const { + + // TODO(mmentovai): on the Mac, provide fallbacks as in code_identifier(). + +- // XXX: PE generated with gcc don't currently have CV records, so the Windows +- // minidumper can't record any identifier information, so there's no useful +- // identifier for us to match with. Fallback to a default debug_identifier. ++ // If possible, synthesize a debug_identifier from the version and ++ // architecture. ++ if (identifier.empty()) { ++ std::string ver = version(); ++ if (ver.compare("") != 0) { ++ identifier = ""; ++ for (std::string::const_iterator i = ver.begin(); i != ver.end(); i++) { ++ if (isxdigit(*i)) { ++ identifier += *i; ++ } ++ } ++ ++ MinidumpSystemInfo *minidump_system_info = minidump_->GetSystemInfo(); ++ if (minidump_system_info) { ++ std::string cpu = minidump_system_info->GetCPU(); ++ for (std::string::const_iterator i = cpu.begin(); i != cpu.end(); i++) { ++ char ashex[4]; ++ snprintf(ashex, sizeof(ashex), "%02x", *i); ++ identifier += ashex; ++ } ++ } ++ ++ while (identifier.size() < 33) { ++ identifier += "0"; ++ } ++ } ++ } ++ ++ // Fallback to a default debug_identifier + if (identifier.empty()) + { + identifier = "000000000000000000000000000000000"; +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0022-Fix-typo-in-the-name-of-the-info-entry-containing-up.patch b/mingw-w64-breakpad-svn/0022-Fix-typo-in-the-name-of-the-info-entry-containing-up.patch new file mode 100644 index 0000000000..1de76a0269 --- /dev/null +++ b/mingw-w64-breakpad-svn/0022-Fix-typo-in-the-name-of-the-info-entry-containing-up.patch @@ -0,0 +1,29 @@ +From d37f257d2849a87cf9499d26cf0f62169baa9c0f Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Wed, 19 Nov 2014 11:22:53 +0000 +Subject: [PATCH 22/24] Fix typo in the name of the info entry containing + uptime + +I'm assuming this is a typo, although it's been this way since it was added in r280 + +Signed-off-by: Jon TURNEY +--- + src/client/windows/crash_generation/client_info.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/client/windows/crash_generation/client_info.cc b/src/client/windows/crash_generation/client_info.cc +index 30a48db..fb29362 100644 +--- a/src/client/windows/crash_generation/client_info.cc ++++ b/src/client/windows/crash_generation/client_info.cc +@@ -30,7 +30,7 @@ + #include "client/windows/crash_generation/client_info.h" + #include "client/windows/common/ipc_protocol.h" + +-static const wchar_t kCustomInfoProcessUptimeName[] = L"ptime"; ++static const wchar_t kCustomInfoProcessUptimeName[] = L"uptime"; + static const size_t kMaxCustomInfoEntries = 4096; + + namespace google_breakpad { +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0023-Fix-a-missing-r-in-crash_generation_app.patch b/mingw-w64-breakpad-svn/0023-Fix-a-missing-r-in-crash_generation_app.patch new file mode 100644 index 0000000000..72cca01365 --- /dev/null +++ b/mingw-w64-breakpad-svn/0023-Fix-a-missing-r-in-crash_generation_app.patch @@ -0,0 +1,30 @@ +From c36bfdb12226265298e3ba8f741f7ffb9b6daf91 Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Wed, 19 Nov 2014 11:29:44 +0000 +Subject: [PATCH 23/24] Fix a missing \r in crash_generation_app + +Fix a missing \r in crash_generation_app + +I thought this made a difference, but it doesn't seem to... + +Signed-off-by: Jon TURNEY +--- + src/client/windows/tests/crash_generation_app/crash_generation_app.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.cc b/src/client/windows/tests/crash_generation_app/crash_generation_app.cc +index 09a0aae..fae735e 100644 +--- a/src/client/windows/tests/crash_generation_app/crash_generation_app.cc ++++ b/src/client/windows/tests/crash_generation_app/crash_generation_app.cc +@@ -254,7 +254,7 @@ static void _cdecl ShowClientCrashed(void* context, + line[0] = _T('\0'); + result = swprintf_s(line, + kMaximumLineLength, +- L"%s\n", ++ L"%s\r\n", + str_line.c_str()); + if (result == -1) { + delete[] line; +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0024-Disable-timeout-waiting-for-crash-reporting-server.patch b/mingw-w64-breakpad-svn/0024-Disable-timeout-waiting-for-crash-reporting-server.patch new file mode 100644 index 0000000000..cdbbb006df --- /dev/null +++ b/mingw-w64-breakpad-svn/0024-Disable-timeout-waiting-for-crash-reporting-server.patch @@ -0,0 +1,31 @@ +From d4d71ae2d604f215a687d931aa76ff7923ffa60f Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Wed, 19 Nov 2014 11:32:43 +0000 +Subject: [PATCH 24/24] Disable timeout waiting for crash reporting server + +15s is not enough if we are going to ask user if they want make a dump etc. + +Perhaps I need to change my server implementation to do the dump, then ask +if should be uploaded etc. ? + +Signed-off-by: Jon TURNEY +--- + src/client/windows/crash_generation/crash_generation_client.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/client/windows/crash_generation/crash_generation_client.cc b/src/client/windows/crash_generation/crash_generation_client.cc +index 1e86dce..9204feb 100644 +--- a/src/client/windows/crash_generation/crash_generation_client.cc ++++ b/src/client/windows/crash_generation/crash_generation_client.cc +@@ -36,7 +36,7 @@ namespace google_breakpad { + + const int kPipeBusyWaitTimeoutMs = 2000; + +-#ifdef _DEBUG ++#if 1 + const DWORD kWaitForServerTimeoutMs = INFINITE; + #else + const DWORD kWaitForServerTimeoutMs = 15000; +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/0026-Fixes-for-sign-compare-warnings-due-to-signedness-of.patch b/mingw-w64-breakpad-svn/0026-Fixes-for-sign-compare-warnings-due-to-signedness-of.patch new file mode 100644 index 0000000000..5c4eea516b --- /dev/null +++ b/mingw-w64-breakpad-svn/0026-Fixes-for-sign-compare-warnings-due-to-signedness-of.patch @@ -0,0 +1,68 @@ +From 9e32014535bd3dfb8f536dd80e6d86a17406308c Mon Sep 17 00:00:00 2001 +From: Jon TURNEY +Date: Mon, 12 Jan 2015 21:45:14 +0000 +Subject: [PATCH 26/27] Fixes for sign-compare warnings due to signedness of + size_t + +Reported by AmR|EiSa + +src/common/pecoff/pecoffutils.cc:315:25: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] + for (int idx = 0; idx < kMDGUIDSize; ++idx) { + ^ +src/common/pecoff/pecoffutils.cc:358:21: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] + for (int i = 0; i < debug_directory_size/sizeof(PeDebugDirectory); i++) { + ^ +src/common/pecoff/pecoffutils.cc:457:27: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] + if (data_directory_size < entry) +--- + src/common/pecoff/pecoffutils.cc | 6 +++--- + src/common/pecoff/pecoffutils.h | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/common/pecoff/pecoffutils.cc b/src/common/pecoff/pecoffutils.cc +index 158270d..a9ff0a2 100644 +--- a/src/common/pecoff/pecoffutils.cc ++++ b/src/common/pecoff/pecoffutils.cc +@@ -312,7 +312,7 @@ PeCoffObjectFileReader::FileIdentifierFromMappedFile( + // dashes removed. + char identifier_str[40]; + int buffer_idx = 0; +- for (int idx = 0; idx < kMDGUIDSize; ++idx) { ++ for (unsigned int idx = 0; idx < kMDGUIDSize; ++idx) { + int hi = (identifier_swapped[idx] >> 4) & 0x0F; + int lo = (identifier_swapped[idx]) & 0x0F; + +@@ -355,7 +355,7 @@ bool PeCoffObjectFileReader::GetBuildID( + } + + // search the debug directory for a codeview entry +- for (int i = 0; i < debug_directory_size/sizeof(PeDebugDirectory); i++) { ++ for (unsigned int i = 0; i < debug_directory_size/sizeof(PeDebugDirectory); i++) { + if (debug_directory[i].mType == IMAGE_DEBUG_TYPE_CODEVIEW) { + // interpret the codeview record to get build-id + const CvInfoPbd70* codeview_record = reinterpret_cast +@@ -446,7 +446,7 @@ const char* PeCoffObjectFileReader::GetStringTable( + template + const PeDataDirectory* + PeCoffObjectFileReader::GetDataDirectoryEntry( +- ObjectFileBase obj_base, int entry) { ++ ObjectFileBase obj_base, unsigned int entry) { + const PeOptionalHeader* peOptionalHeader = GetOptionalHeader(obj_base); + + // the data directory immediately follows the optional header +diff --git a/src/common/pecoff/pecoffutils.h b/src/common/pecoff/pecoffutils.h +index 5553d9f..3e2d7b3 100644 +--- a/src/common/pecoff/pecoffutils.h ++++ b/src/common/pecoff/pecoffutils.h +@@ -155,7 +155,7 @@ class PeCoffObjectFileReader { + static const PeSectionHeader* GetSectionTable(ObjectFileBase obj_base); + static const char* GetStringTable(ObjectFileBase obj_base); + static const PeDataDirectory* GetDataDirectoryEntry(ObjectFileBase obj_base, +- int entry); ++ unsigned int entry); + static const uint8_t* ConvertRVAToPointer(ObjectFileBase obj_base, Offset rva); + }; + +-- +2.1.1 + diff --git a/mingw-w64-breakpad-svn/PKGBUILD b/mingw-w64-breakpad-svn/PKGBUILD index 8aec525772..18d5df9192 100644 --- a/mingw-w64-breakpad-svn/PKGBUILD +++ b/mingw-w64-breakpad-svn/PKGBUILD @@ -3,18 +3,41 @@ _name=breakpad url='https://code.google.com/p/google-breakpad' pkgdesc='An open-source multi-platform crash reporting system (mingw-w64)' -license=(BSD) +license=('BSD') arch=(any) -pkgver=r1402 +pkgver=r1413 pkgrel=1 makedepends=(${MINGW_PACKAGE_PREFIX}-curl subversion git gyp) pkgname=(${MINGW_PACKAGE_PREFIX}-${_name}-svn) provides=(${MINGW_PACKAGE_PREFIX}-${_name}) conflicts=(${MINGW_PACKAGE_PREFIX}-${_name}) -md5sums=(SKIP SKIP) -source=(${_name}.svn::"svn+http://google-breakpad.googlecode.com/svn/trunk#revision=1402" - ${_name}.patches.git::"git+https://github.com/jon-turney/mingw64-i686-google-breakpad-cygport.git") +source=(${_name}.svn::"svn+http://google-breakpad.googlecode.com/svn/trunk" + 0002-Avoid-O_BINARY-redefinition-warning-on-Cygwin.patch + 0003-Build-minidump_upload-sym_upload-for-all-targets.patch + 0004-Remove-local-copy-of-curl-headers.patch + 0005-Add-support-for-DWARF-in-PECOFF-as-used-by-Cygwin-an.patch + 0006-Fix-building-minidump-processor-for-MinGW.patch + 0007-Build-PECOFF-DWARF-dump_syms-for-MinGW.patch + 0008-Fix-building-client-library-and-upload-tools-for-Min.patch + 0009-Fix-common.gypi-to-allow-gyp-to-generate-Makefiles-o.patch + 0010-Teach-gyp-generated-Makefile-to-build-crash_generati.patch + 0011-Default-debug_file-to-the-code_file-basename.patch + 0012-Fix-building-windows-client-unit-tests-with-gcc.patch + 0013-Add-symsrv_convert.patch + 0014-Build-MinGW-client-library-using-gyp-generated-Makef.patch + 0015-Use-a-default-debug-id-of-all-zeros-when-no-CV-recor.patch + 0016-Increase-RA-scanning-to-60-words.patch + 0017-Use-__USE_MINGW_ANSI_STDIO-for-MinGW-build.patch + 0018-Provide-a-working-strtok_r-for-MinGW.patch + 0019-Add-a-README.md-with-notes-on-what-is-left-to-do.patch + 0020-Support-for-multiple-upload-files-in-Breakpad.patch + 0021-Fallback-to-synthesizing-a-debug-id-from-version-and.patch + 0022-Fix-typo-in-the-name-of-the-info-entry-containing-up.patch + 0023-Fix-a-missing-r-in-crash_generation_app.patch + 0024-Disable-timeout-waiting-for-crash-reporting-server.patch + 0026-Fixes-for-sign-compare-warnings-due-to-signedness-of.patch + gyp-regenerate-no-circular-check.patch) pkgver() { cd "${srcdir}/${_name}.svn" @@ -29,10 +52,10 @@ prepare() { # Apply patches cd "${srcdir}/${_name}.patched" - for patch in "${srcdir}/${_name}.patches.git"/0*.patch; do - patch -p1 < "${patch}" + for patch in "${srcdir}"/0*.patch; do + patch -p1 -i "${patch}" done - patch -p2 < "${srcdir}/${_name}.patches.git/gyp-regenerate-no-circular-check.patch" + patch -p2 -i "${srcdir}/gyp-regenerate-no-circular-check.patch" msg2 "Running autoreconf" autoreconf -sif @@ -43,21 +66,39 @@ build() { rsync --recursive --times --links "${srcdir}/${_name}.patched"/* "${srcdir}/${_name}.build.${CARCH}" cd "${srcdir}/${_name}.build.${CARCH}" - ./configure --prefix=${MINGW_PREFIX} - make CXXFLAGS="-Wno-error=reorder -DUNICODE -D_UNICODE" + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} + + make CXXFLAGS="-Wno-error=reorder -DUNICODE -D_UNICODE -g" AR=${MINGW_PREFIX}/bin/ar RC=${MINGW_PREFIX}/bin/windres } package() { cd "${srcdir}/${_name}.build.${CARCH}" - make DESTDIR="${pkgdir}" install + make CXXFLAGS="-Wno-error=reorder -DUNICODE -D_UNICODE -g" AR=${MINGW_PREFIX}/bin/ar RC=${MINGW_PREFIX}/bin/windres DESTDIR="${pkgdir}" install + + # headers aren't really designed to be installed, so we need to do some + # rewriting to make them usefully included using "include " + find ${pkgdir} -name *.h -exec sed -i -e's#client/windows/#breakpad/client/windows/#' {} \; + find ${pkgdir} -name *.h -exec sed -i -e's#common/scoped_ptr#breakpad/common/scoped_ptr#' {} \; + find ${pkgdir} -name *.h -exec sed -i -e's#common/windows/#breakpad/common/windows/#' {} \; + find ${pkgdir} -name *.h -exec sed -i -e's#google_breakpad/common/#breakpad/common/#' {} \; # Install a single client library cd "${pkgdir}${MINGW_PREFIX}/lib" - ar -r libbreakpad_client.a "${srcdir}/${_name}.build.${CARCH}/src/out/Debug/obj.target/client/windows/crash_generation/libcrash_generation_client.a" - ar -r libbreakpad_client.a "${srcdir}/${_name}.build.${CARCH}/src/out/Debug/obj.target/client/windows/crash_generation/libcrash_generation_server.a" - ar -r libbreakpad_client.a "${srcdir}/${_name}.build.${CARCH}/src/out/Debug/obj.target/client/windows/handler/libexception_handler.a" - ar -r libbreakpad_client.a "${srcdir}/${_name}.build.${CARCH}/src/out/Debug/obj.target/client/windows/libcommon.a" - ar -r libbreakpad_client.a "${srcdir}/${_name}.build.${CARCH}/src/out/Debug/obj.target/client/windows/sender/libcrash_report_sender.a" + local _windir=$(cygpath -wm ${srcdir}) + ${MINGW_PREFIX}/bin/ar -M < Date: Wed, 14 Jan 2015 11:34:44 +0300 Subject: [PATCH 0331/2060] libsystre: New package. Wrapper for TRE library. Replacement for libgnurx. --- mingw-w64-libsystre/PKGBUILD | 43 ++++++++++++++++++++++++ mingw-w64-libsystre/systre-1.0.0.tar.xz | Bin 0 -> 218960 bytes 2 files changed, 43 insertions(+) create mode 100644 mingw-w64-libsystre/PKGBUILD create mode 100644 mingw-w64-libsystre/systre-1.0.0.tar.xz diff --git a/mingw-w64-libsystre/PKGBUILD b/mingw-w64-libsystre/PKGBUILD new file mode 100644 index 0000000000..89689c5f03 --- /dev/null +++ b/mingw-w64-libsystre/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Alexey Pavlov + +_realname=libsystre +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +provides="${MINGW_PACKAGE_PREFIX}-libgnurx" +conflicts="${MINGW_PACKAGE_PREFIX}-libgnurx" +replaces="${MINGW_PACKAGE_PREFIX}-libgnurx" +pkgver=1.0.0 +pkgrel=1 +pkgdesc="Wrapper library around TRE that provides POSIX API (mingw-w64)" +arch=('any') +url="" +license=('BSD') +depends=("${MINGW_PACKAGE_PREFIX}-libtre") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +source=(systre-${pkgver}.tar.xz) +sha1sums=('e8c3d37baffb243316fb3d6f2f5542a2fa16d341') + +prepare() { + cd systre-${pkgver} + autoreconf -fiv +} + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + ../systre-${pkgver}/configure\ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make +} + +package() { + cd build-${MINGW_CHOST} + make DESTDIR="${pkgdir}" install + install -D -m644 ${srcdir}/systre-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE +} diff --git a/mingw-w64-libsystre/systre-1.0.0.tar.xz b/mingw-w64-libsystre/systre-1.0.0.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..2af19a33f7b213659a26ddf09337d2fd4d289bf1 GIT binary patch literal 218960 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%0DR;p1EdV9R$-|+d(KJx9v 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

WzQdUtoret0;nI*B`J^AA&+c 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 z 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 L0ssI200dcDv5k8s literal 0 HcmV?d00001 From c6c4bd6bc269c9bfbe3fb13330f25a6e423b1377 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 11:35:51 +0300 Subject: [PATCH 0332/2060] libarchive: Rebuild with libsystre --- mingw-w64-libarchive/PKGBUILD | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/mingw-w64-libarchive/PKGBUILD b/mingw-w64-libarchive/PKGBUILD index fb34a8ea62..967a8fe9d6 100644 --- a/mingw-w64-libarchive/PKGBUILD +++ b/mingw-w64-libarchive/PKGBUILD @@ -1,28 +1,28 @@ # Maintainer: Alexey Pavlov _realname=libarchive - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.1.2 -pkgrel=3 +pkgrel=4 pkgdesc="library that can create and read several streaming archive formats (mingw-w64)" arch=('any') url="http://libarchive.googlecode.com" license=("BSD") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libgnurx" "${MINGW_PACKAGE_PREFIX}-pkg-config") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs - ${MINGW_PACKAGE_PREFIX}-bzip2 - ${MINGW_PACKAGE_PREFIX}-expat - ${MINGW_PACKAGE_PREFIX}-lzo2 - ${MINGW_PACKAGE_PREFIX}-nettle - ${MINGW_PACKAGE_PREFIX}-openssl - ${MINGW_PACKAGE_PREFIX}-libiconv - ${MINGW_PACKAGE_PREFIX}-xz - ${MINGW_PACKAGE_PREFIX}-zlib) + ${MINGW_PACKAGE_PREFIX}-bzip2 + ${MINGW_PACKAGE_PREFIX}-expat + ${MINGW_PACKAGE_PREFIX}-libiconv + ${MINGW_PACKAGE_PREFIX}-lzo2 + ${MINGW_PACKAGE_PREFIX}-libsystre + ${MINGW_PACKAGE_PREFIX}-nettle + ${MINGW_PACKAGE_PREFIX}-openssl + ${MINGW_PACKAGE_PREFIX}-xz + ${MINGW_PACKAGE_PREFIX}-zlib) options=('!libtool' 'strip') source=("http://libarchive.org/downloads/libarchive-$pkgver.tar.gz" - "0001-mtree-fix-line-filename-length-calculation.patch" - 'libarchive-3.1.3-CVE-2013-0211_read_buffer_overflow.patch') + "0001-mtree-fix-line-filename-length-calculation.patch" + 'libarchive-3.1.3-CVE-2013-0211_read_buffer_overflow.patch') md5sums=('efad5a503f66329bb9d2f4308b5de98a' '9727baf88b928417d5d1269891b1209a' '6954a585c309dc548d1f2b05f2f3cfcb') @@ -42,14 +42,13 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --with-expat \ - --without-xml2 - + --with-expat \ + --without-xml2 + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install - #rm -r "${pkgdir}${MINGW_PREFIX}/share" } From 0a298a9f04023795efc3711ae1c8873164c78343 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 14:04:40 +0300 Subject: [PATCH 0333/2060] libsystre: Some updates --- mingw-w64-libsystre/PKGBUILD | 2 +- mingw-w64-libsystre/systre-1.0.0.tar.xz | Bin 218960 -> 219040 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-libsystre/PKGBUILD b/mingw-w64-libsystre/PKGBUILD index 89689c5f03..2bcc35704c 100644 --- a/mingw-w64-libsystre/PKGBUILD +++ b/mingw-w64-libsystre/PKGBUILD @@ -15,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-libtre") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(systre-${pkgver}.tar.xz) -sha1sums=('e8c3d37baffb243316fb3d6f2f5542a2fa16d341') +sha1sums=('d531bc8858091f4d0e4bb0ea8ee966d896e10a16') prepare() { cd systre-${pkgver} diff --git a/mingw-w64-libsystre/systre-1.0.0.tar.xz b/mingw-w64-libsystre/systre-1.0.0.tar.xz index 2af19a33f7b213659a26ddf09337d2fd4d289bf1..4d4551bb8d10f983aa5897951e8b8d17a3bd0d1c 100644 GIT binary patch literal 219040 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

dFKtjJB6tKArkVb7mnnaIB`GC}WWhb@ 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

i^da_E|x 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 literal 218960 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%0DR;p1EdV9R$-|+d(KJx9v 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

+ +- +\ No newline at end of file ++ +diff -Naur id3lib-3.8.3.orig//doc/id3v2.3.0.txt id3lib-3.8.3//doc/id3v2.3.0.txt +--- id3lib-3.8.3.orig//doc/id3v2.3.0.txt 2010-06-08 05:21:47.860810639 +0200 ++++ id3lib-3.8.3//doc/id3v2.3.0.txt 2010-06-08 05:21:05.374811307 +0200 +@@ -1929,7 +1929,7 @@ + 64.Native American + 65.Cabaret + 66.New Wave +- 67.Psychadelic ++ 67.Psychedelic + 68.Rave + 69.Showtunes + 70.Trailer +diff -Naur id3lib-3.8.3.orig//id3com/id3com.idl id3lib-3.8.3//id3com/id3com.idl +--- id3lib-3.8.3.orig//id3com/id3com.idl 2010-06-08 05:21:47.818060988 +0200 ++++ id3lib-3.8.3//id3com/id3com.idl 2010-06-08 05:21:05.355061546 +0200 +@@ -179,7 +179,7 @@ + /* USER */ ID3_TERMSOFUSE, /**< Terms of use */ + /* USLT */ ID3_UNSYNCEDLYRICS, /**< Unsynchronized lyric/text transcription */ + /* WCOM */ ID3_WWWCOMMERCIALINFO, /**< Commercial information */ +- /* WCOP */ ID3_WWWCOPYRIGHT, /**< Copyright/Legal infromation */ ++ /* WCOP */ ID3_WWWCOPYRIGHT, /**< Copyright/Legal information */ + /* WOAF */ ID3_WWWAUDIOFILE, /**< Official audio file webpage */ + /* WOAR */ ID3_WWWARTIST, /**< Official artist/performer webpage */ + /* WOAS */ ID3_WWWAUDIOSOURCE, /**< Official audio source webpage */ +diff -Naur id3lib-3.8.3.orig//include/id3/globals.h id3lib-3.8.3//include/id3/globals.h +--- id3lib-3.8.3.orig//include/id3/globals.h 2010-06-08 05:21:47.818060988 +0200 ++++ id3lib-3.8.3//include/id3/globals.h 2010-06-08 05:22:27.395811102 +0200 +@@ -313,7 +313,7 @@ + /* USER */ ID3FID_TERMSOFUSE, /**< Terms of use */ + /* USLT */ ID3FID_UNSYNCEDLYRICS, /**< Unsynchronized lyric/text transcription */ + /* WCOM */ ID3FID_WWWCOMMERCIALINFO, /**< Commercial information */ +- /* WCOP */ ID3FID_WWWCOPYRIGHT, /**< Copyright/Legal infromation */ ++ /* WCOP */ ID3FID_WWWCOPYRIGHT, /**< Copyright/Legal information */ + /* WOAF */ ID3FID_WWWAUDIOFILE, /**< Official audio file webpage */ + /* WOAR */ ID3FID_WWWARTIST, /**< Official artist/performer webpage */ + /* WOAS */ ID3FID_WWWAUDIOSOURCE, /**< Official audio source webpage */ +@@ -608,7 +608,7 @@ + "Native American", //64 + "Cabaret", //65 + "New Wave", //66 +- "Psychadelic", //67 ++ "Psychedelic", //67 + "Rave", //68 + "Showtunes", //69 + "Trailer", //70 +@@ -686,7 +686,7 @@ + "Christian Rock ", //141 + "Merengue", //142 + "Salsa", //143 +- "Trash Metal", //144 ++ "Thrash Metal", //144 + "Anime", //145 + "JPop", //146 + "Synthpop" //147 +diff -Naur id3lib-3.8.3.orig//src/field.cpp id3lib-3.8.3//src/field.cpp +--- id3lib-3.8.3.orig//src/field.cpp 2010-06-08 05:21:47.818060988 +0200 ++++ id3lib-3.8.3//src/field.cpp 2010-06-08 05:21:05.373811128 +0200 +@@ -719,7 +719,7 @@ + // USER ID3FID_TERMSOFUSE Terms of use + // USLT ULT ID3FID_UNSYNCEDLYRICS Unsynchronized lyric/text transcription + // WCOM WCM ID3FID_WWWCOMMERCIALINFO Commercial information +-// WCOP WCM ID3FID_WWWCOPYRIGHT Copyright/Legal infromation ++// WCOP WCM ID3FID_WWWCOPYRIGHT Copyright/Legal information + // WOAF WCP ID3FID_WWWAUDIOFILE Official audio file webpage + // WOAR WAF ID3FID_WWWARTIST Official artist/performer webpage + // WOAS WAR ID3FID_WWWAUDIOSOURCE Official audio source webpage +@@ -813,7 +813,7 @@ + {ID3FID_TERMSOFUSE, "" , "USER", false, false, ID3FD_TermsOfUse, "Terms of use"}, + {ID3FID_UNSYNCEDLYRICS, "ULT", "USLT", false, false, ID3FD_GeneralText, "Unsynchronized lyric/text transcription"}, + {ID3FID_WWWCOMMERCIALINFO, "WCM", "WCOM", false, false, ID3FD_URL, "Commercial information"}, +- {ID3FID_WWWCOPYRIGHT, "WCP", "WCOP", false, false, ID3FD_URL, "Copyright/Legal infromation"}, ++ {ID3FID_WWWCOPYRIGHT, "WCP", "WCOP", false, false, ID3FD_URL, "Copyright/Legal information"}, + {ID3FID_WWWAUDIOFILE, "WAF", "WOAF", false, false, ID3FD_URL, "Official audio file webpage"}, + {ID3FID_WWWARTIST, "WAR", "WOAR", false, false, ID3FD_URL, "Official artist/performer webpage"}, + {ID3FID_WWWAUDIOSOURCE, "WAS", "WOAS", false, false, ID3FD_URL, "Official audio source webpage"}, diff --git a/mingw-w64-id3lib/61-fix_vbr_stack_smash.patch b/mingw-w64-id3lib/61-fix_vbr_stack_smash.patch new file mode 100644 index 0000000000..9bf33e9787 --- /dev/null +++ b/mingw-w64-id3lib/61-fix_vbr_stack_smash.patch @@ -0,0 +1,19 @@ +Description: Fix crashes when reading VBR MP3 file. +Bug-Ubuntu: https://launchpad.net/bugs/444466 +Origin: upstream, http://sourceforge.net/tracker/?func=detail&aid=937707&group_id=979&atid=300979 +Forwarded: yes +Author: Urs Fleisch + +Index: id3lib3.8.3-3.8.3/src/mp3_parse.cpp +=================================================================== +--- id3lib3.8.3-3.8.3.orig/src/mp3_parse.cpp 2009-10-06 23:12:10.381250132 +0200 ++++ id3lib3.8.3-3.8.3/src/mp3_parse.cpp 2009-10-06 23:14:09.545252591 +0200 +@@ -465,7 +465,7 @@ + // from http://www.xingtech.com/developer/mp3/ + + const size_t VBR_HEADER_MIN_SIZE = 8; // "xing" + flags are fixed +- const size_t VBR_HEADER_MAX_SIZE = 116; // frames, bytes, toc and scale are optional ++ const size_t VBR_HEADER_MAX_SIZE = 120; // frames, bytes, toc and scale are optional + + if (mp3size >= vbr_header_offest + VBR_HEADER_MIN_SIZE) + { diff --git a/mingw-w64-id3lib/70-id3lib-3.8.3-autoreconf.patch b/mingw-w64-id3lib/70-id3lib-3.8.3-autoreconf.patch new file mode 100644 index 0000000000..84266d644a --- /dev/null +++ b/mingw-w64-id3lib/70-id3lib-3.8.3-autoreconf.patch @@ -0,0 +1,161 @@ +Patch by František Dvořák + +https://bugzilla.redhat.com/show_bug.cgi?id=1066559 + +diff -urN id3lib-3.8.3.old/configure.in id3lib-3.8.3/configure.in +--- id3lib-3.8.3.old/configure.in 2003-03-02 00:23:00.000000000 +0000 ++++ id3lib-3.8.3/configure.in 2014-02-24 21:46:57.974108875 +0000 +@@ -15,11 +15,13 @@ + # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +-# require autoconf 2.13 +-AC_PREREQ(2.13) ++# require autoconf 2.69 ++AC_PREREQ(2.69) + + # init autoconf (and check for presence fo reconf) +-AC_INIT(reconf) ++AC_INIT([id3lib], [3.8.3]) ++AC_CONFIG_SRCDIR([reconf]) ++AC_CONFIG_MACRO_DIR([m4]) + + ID3LIB_NAME=id3lib + +@@ -83,14 +85,14 @@ + + AC_SUBST(ID3LIB_FULLNAME) + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + +-AM_INIT_AUTOMAKE($PACKAGE,$VERSION) ++AM_INIT_AUTOMAKE + + AC_ISC_POSIX + + dnl Initialize libtool +-AM_PROG_LIBTOOL ++LT_INIT + + dnl Initialize maintainer mode + AM_MAINTAINER_MODE +@@ -168,7 +170,7 @@ + iconv_oldstyle=1, iconv_oldstyle=0) + if test $iconv_oldstyle = 1; then + AC_MSG_RESULT(const char **) +- AC_DEFINE(ID3LIB_ICONV_OLDSTYLE) ++ AC_DEFINE(ID3LIB_ICONV_OLDSTYLE, [], [Old-style iconv interface]) + #we'll check out the need of + #typecast in the call of iconv_open + AC_MSG_CHECKING(whether to typecast in iconv) +@@ -184,7 +186,7 @@ + iconv_cast=0, iconv_cast=1) + if test $iconv_cast = 1; then + AC_MSG_RESULT(yes) +- AC_DEFINE(ID3LIB_ICONV_CAST_OK) ++ AC_DEFINE(ID3LIB_ICONV_CAST_OK, [], [iconv type cast]) + else + AC_MSG_RESULT(no) + fi +@@ -206,7 +208,7 @@ + iconv_cast=0, iconv_cast=1) + if test $iconv_cast = 1; then + AC_MSG_RESULT(yes) +- AC_DEFINE(ID3LIB_ICONV_CAST_OK) ++ AC_DEFINE(ID3LIB_ICONV_CAST_OK, [], [iconv type cast]) + else + AC_MSG_RESULT(no) + fi +diff -urN id3lib-3.8.3.old/examples/Makefile.am id3lib-3.8.3/examples/Makefile.am +--- id3lib-3.8.3.old/examples/Makefile.am 2003-03-02 00:23:00.000000000 +0000 ++++ id3lib-3.8.3/examples/Makefile.am 2014-02-24 21:21:51.645554552 +0000 +@@ -30,7 +30,7 @@ + + LDADD = $(top_builddir)/src/libid3.la $(zlib_lib) $(ID3_DEBUG_LIBS) $(getopt_lib) + +-INCLUDES = @ID3LIB_DEBUG_FLAGS@ -I$(top_srcdir)/include ++AM_CPPFLAGS = @ID3LIB_DEBUG_FLAGS@ -I$(top_srcdir)/include + + bin_PROGRAMS = id3info id3convert id3tag id3cp + check_PROGRAMS = \ +diff -urN id3lib-3.8.3.old/m4/id3_cxx.m4 id3lib-3.8.3/m4/id3_cxx.m4 +--- id3lib-3.8.3.old/m4/id3_cxx.m4 2003-03-02 00:23:00.000000000 +0000 ++++ id3lib-3.8.3/m4/id3_cxx.m4 2014-02-24 21:21:51.650554401 +0000 +@@ -68,7 +68,7 @@ + dnl #undef CXX_HAS_NO_BOOL + dnl END ACCONFIG + +-AC_DEFUN(ID3_CXX_PORTABILITY,[ ++AC_DEFUN([ID3_CXX_PORTABILITY],[ + + AC_PROVIDE([$0]) + +diff -urN id3lib-3.8.3.old/m4/id3_unicode.m4 id3lib-3.8.3/m4/id3_unicode.m4 +--- id3lib-3.8.3.old/m4/id3_unicode.m4 2003-03-02 00:23:00.000000000 +0000 ++++ id3lib-3.8.3/m4/id3_unicode.m4 2014-02-24 21:21:51.654554280 +0000 +@@ -5,7 +5,7 @@ + dnl #undef ID3_ICONV_FORMAT_ASCII + dnl END ACCONFIG + +-AC_DEFUN(ID3_CHECK_ICONV_FORMAT,[ ++AC_DEFUN([ID3_CHECK_ICONV_FORMAT],[ + if eval "test \"x\$$1\" = \"xno\""; then + AC_MSG_CHECKING(whether iconv supports $2) + AC_TRY_RUN([#include +diff -urN id3lib-3.8.3.old/Makefile.am id3lib-3.8.3/Makefile.am +--- id3lib-3.8.3.old/Makefile.am 2003-03-02 00:23:00.000000000 +0000 ++++ id3lib-3.8.3/Makefile.am 2014-02-24 21:21:51.659554129 +0000 +@@ -11,6 +11,7 @@ + + # require automake 1.5 + AUTOMAKE_OPTIONS = 1.5 ++ACLOCAL_AMFLAGS = -I m4 + + EXTRA_DIST = \ + HISTORY \ +@@ -30,7 +31,7 @@ + SUBDIRS = . m4 $(zlib_subdir) doc include id3com src examples + DIST_SUBDIRS = . m4 zlib doc include id3com src examples prj libprj + +-INCLUDES = @ID3LIB_DEBUG_FLAGS@ ++AM_CPPFLAGS = @ID3LIB_DEBUG_FLAGS@ + + config.h.win32: $(top_builddir)/config.status $(top_srcdir)/config.h.win32.in + cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status +diff -urN id3lib-3.8.3.old/src/Makefile.am id3lib-3.8.3/src/Makefile.am +--- id3lib-3.8.3.old/src/Makefile.am 2003-03-02 00:23:00.000000000 +0000 ++++ id3lib-3.8.3/src/Makefile.am 2014-02-24 21:21:51.664553979 +0000 +@@ -17,7 +17,7 @@ + zlib_include = + endif + +-INCLUDES = \ ++AM_CPPFLAGS = \ + @ID3LIB_DEBUG_FLAGS@ -I$(top_srcdir)/include/id3 -I$(top_srcdir)/include $(zlib_include) + + noinst_HEADERS = \ +diff -urN id3lib-3.8.3.old/zlib/configure.in id3lib-3.8.3/zlib/configure.in +--- id3lib-3.8.3.old/zlib/configure.in 2003-03-02 00:23:00.000000000 +0000 ++++ id3lib-3.8.3/zlib/configure.in 2014-02-24 21:49:18.990854419 +0000 +@@ -14,16 +14,13 @@ + AC_PREREQ(2.13) + + # init autoconf (and check for presence of reconf) +-AC_INIT(reconf) ++AC_INIT([zlib], [1.1.3]) + +-VERSION=1.1.3 +-PACKAGE=zlib +- +-AM_INIT_AUTOMAKE($PACKAGE,$VERSION) +-AM_CONFIG_HEADER(config.h) ++AM_INIT_AUTOMAKE ++AC_CONFIG_HEADERS(config.h) + + dnl Initialize libtool +-AC_PROG_LIBTOOL ++LT_INIT + + dnl Initialize maintainer mode + AM_MAINTAINER_MODE diff --git a/mingw-w64-id3lib/PKGBUILD b/mingw-w64-id3lib/PKGBUILD new file mode 100644 index 0000000000..bbdfb31836 --- /dev/null +++ b/mingw-w64-id3lib/PKGBUILD @@ -0,0 +1,97 @@ +# Maintainer: Alexey Pavlov + +_realname=id3lib +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.8.3 +pkgrel=1 +pkgdesc='Library for reading, writing, and manipulating ID3v1 and ID3v2 tags (mingw-w64)' +arch=('any') +license=('LGPL') +url="http://id3lib.sourceforge.net/" +options=('staticlibs') +depends=("${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-gcc-libs") +source=(http://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-${pkgver}.tar.gz + 00-add-libz-to-compilation.patch + 05-create-m4-directory.patch + 10-fix-compilation-with-cpp-headers.patch + 15-fix-headers-of-main-functions.patch + 20-create-manpages.patch + 30-fix-utf16.patch + 40-deal-with-mkstemp.patch + 50-remove-outdated-check.patch + 60-add-c-wrapper-functions.patch + 60-fix_make_check.patch + 60-id3lib-missing-nullpointer-check.patch + 60-spelling.patch + 61-fix_vbr_stack_smash.patch + 70-id3lib-3.8.3-autoreconf.patch + 100-id3lib-3.8.3-mingw.patch) + +md5sums=('19f27ddd2dda4b2d26a559a4f0f402a7' + '9428ef38283d13adb6e349089537a63f' + '5a78e0fe586fba334eae2a29e4bf5a28' + '88f21f1bf4f697be8030706bbec11705' + 'b3de841cd2eda0d37c8c8330119e12d4' + '0c7c939943bdfcc3a0f6be95fe9b2367' + '74ba59c03f91fedbe4dd8045b29c7e15' + 'd2d06d46df3867d73746f584d1e6fcc5' + 'd3a61d07a2bfa83f4ac6290794789022' + '93ef4b26ad08027e28d3f80ad6e492b4' + '5c4b53a3d5543c5c50b23d6d5b9f230b' + '964fa0db0da7b1495b34b81bd36539fd' + '96e0aec669434fa5a9838cfb4bd950ef' + '0973e285cdc420130b984a259cdd8ae0' + 'd445d4fa60b98b947969cd24f10eac66' + '5751591c71cfeb7d434666761840b2e7') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + + patch -p1 -i ../00-add-libz-to-compilation.patch + patch -p1 -i ../05-create-m4-directory.patch + patch -p1 -i ../10-fix-compilation-with-cpp-headers.patch + patch -p1 -i ../15-fix-headers-of-main-functions.patch + patch -p1 -i ../20-create-manpages.patch + patch -p1 -i ../30-fix-utf16.patch + patch -p1 -i ../40-deal-with-mkstemp.patch + patch -p1 -i ../60-add-c-wrapper-functions.patch + patch -p1 -i ../60-fix_make_check.patch + patch -p1 -i ../60-id3lib-missing-nullpointer-check.patch + patch -p1 -i ../60-spelling.patch + patch -p1 -i ../61-fix_vbr_stack_smash.patch + patch -p1 -i ../50-remove-outdated-check.patch + patch -p1 -i ../70-id3lib-3.8.3-autoreconf.patch + patch -p1 -i ../100-id3lib-3.8.3-mingw.patch + + libtoolize -fc + WANT_AUTOMAKE=latest aclocal + WANT_AUTOMAKE=latest autoconf + WANT_AUTOMAKE=latest automake --add-missing --copy +} + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + LC_ALL=C make +} + +check() { + cd "${srcdir}/${_realname}-${pkgver}" + make check +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install + + install -d "${pkgdir}${MINGW_PREFIX}"/share/man/man1 + cp ${srcdir}/${_realname}-${pkgver}/doc/man/* "${pkgdir}${MINGW_PREFIX}"/share/man/man1 +} From 7e9ed4d9b825facc75e11187e6fc962788ef2aed Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 17 Jan 2015 15:21:43 +0300 Subject: [PATCH 0361/2060] sqlite3: Update to 3.8.8 --- mingw-w64-sqlite3/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index b6918d95c2..fbefa61587 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -2,8 +2,8 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3080704 -pkgver=3.8.7.4 +_amalgamationver=3080800 +pkgver=3.8.8.0 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') @@ -12,8 +12,8 @@ groups=("${MINGW_PACKAGE_PREFIX}") url="http://www.sqlite.org" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-readline") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tcl") -source=("http://www.sqlite.org/2014/sqlite-autoconf-$_amalgamationver.tar.gz") -sha1sums=('70ca0b8884a6b145b7f777724670566e2b4f3cde') +source=("http://www.sqlite.org/2015/sqlite-autoconf-$_amalgamationver.tar.gz") +sha1sums=('abb7570b7e331ffede7f40f0037be6e0c03b73af') options=('!strip' 'staticlibs') build() { From 170dab08ff1889a0ddc2beea74347dd757fb83ab Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 17 Jan 2015 18:41:03 +0300 Subject: [PATCH 0362/2060] snorenotify: Update to 0.5.2 --- mingw-w64-snorenotify/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-snorenotify/PKGBUILD b/mingw-w64-snorenotify/PKGBUILD index ee4ce7c92b..9987f7e0a2 100644 --- a/mingw-w64-snorenotify/PKGBUILD +++ b/mingw-w64-snorenotify/PKGBUILD @@ -2,7 +2,7 @@ _realname=Snorenotify pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.5.1 +pkgver=0.5.2 pkgrel=1 pkgdesc="Snorenotify is a multi platform Qt notification framework. Using a plugin system it is possible to create notifications with many different notification systems on Windows, Mac OS and Unix. (mingw-w64)" arch=('any') @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") options=(!strip staticlibs !buildflags) source=("${_realname}-$pkgver".tar.gz::"https://github.com/${_realname}/${_realname}/archive/v${pkgver}.tar.gz") -md5sums=('a2707aa9f20e8cb90ca4375c3528715b') +md5sums=('508dafd77c2cb1b57239c1dc6ad73727') build() { mkdir $srcdir/build-${MINGW_CHOST} From 40ca9478e1710bca58f7186d0b8f5bba9eb655a7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 17 Jan 2015 18:51:31 +0300 Subject: [PATCH 0363/2060] stxxl-git: Update to 1.4.1.2.g6a79caf --- mingw-w64-stxxl-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-stxxl-git/PKGBUILD b/mingw-w64-stxxl-git/PKGBUILD index fb1a40a15c..500f2c4e6c 100644 --- a/mingw-w64-stxxl-git/PKGBUILD +++ b/mingw-w64-stxxl-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=stxxl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=1.4.0.349.g20bfe2b +pkgver=1.4.1.2.g6a79caf pkgrel=1 pkgdesc="Standard Template Library for Extra Large Data Sets (mingw-w64)" arch=('any') From 220d918454c0a9ac31fe7412ae08c7f2fcb593c1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 17 Jan 2015 18:52:48 +0300 Subject: [PATCH 0364/2060] uhttpmock: Update to 0.3.3 --- mingw-w64-uhttpmock/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-uhttpmock/PKGBUILD b/mingw-w64-uhttpmock/PKGBUILD index a060514101..2522df07f2 100644 --- a/mingw-w64-uhttpmock/PKGBUILD +++ b/mingw-w64-uhttpmock/PKGBUILD @@ -2,8 +2,8 @@ _realname=uhttpmock pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.3.0 -pkgrel=2 +pkgver=0.3.3 +pkgrel=1 arch=('any') pkgdesc="uhttpmock is a HTTP web service mocking project for projects which use libsoup (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" @@ -22,7 +22,7 @@ url="http://tecnocode.co.uk/" source=(http://tecnocode.co.uk/downloads/${_realname}/${_realname}-$pkgver.tar.xz 0001-wsock.patch 0002-give-cc-to-gir-scanner.all.patch) -sha256sums=('d33cdf6c6852975162a9d758870edea17449db5ca9dc0e4e0a5831a47fbe8bfe' +sha256sums=('7cc1eda146b5e7a434ed31413f6f12660db00c34d10083f693b93683a28bd57e' '61a3563903d979a93514e09582400ed0647e3029a0632d5c6fbbd0f0589ba809' 'd12318d529f768ddfb2107e249d9c181e009dc1e62fdcced4c3397ead36e4845') From 396122c1b6bc067372969d2ed426d227f6d1fbd4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 17 Jan 2015 19:58:58 +0300 Subject: [PATCH 0365/2060] libusbmuxd: Rebuild. Do not remove static libraries. --- mingw-w64-libusbmuxd/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-libusbmuxd/PKGBUILD b/mingw-w64-libusbmuxd/PKGBUILD index 240b09f4a9..a9414d4a93 100644 --- a/mingw-w64-libusbmuxd/PKGBUILD +++ b/mingw-w64-libusbmuxd/PKGBUILD @@ -3,12 +3,13 @@ _realname=libusbmuxd pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.0.10 -pkgrel=1 +pkgrel=2 pkgdesc='A client library to multiplex connections from and to iOS devices (mingw-w64)' groups=("${MINGW_PACKAGE_PREFIX}" "xdev") arch=('any') url='http://www.libimobiledevice.org/' license=('GPL2+') +options=('staticlibs') source=("http://www.libimobiledevice.org/downloads/${_realname}-${pkgver}.tar.bz2") depends=("${MINGW_PACKAGE_PREFIX}-libplist") sha1sums=('9d4ce8ac058cfea66e6785d2bad5bb9c93681b16') From 98188cff9e87bfa1545a042a5f6e6593e19d272b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 17 Jan 2015 20:46:21 +0300 Subject: [PATCH 0366/2060] libplist: Fix build/install python module --- mingw-w64-libplist/001-cython-module.patch | 14 ++++++++++++++ mingw-w64-libplist/PKGBUILD | 14 +++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-libplist/001-cython-module.patch diff --git a/mingw-w64-libplist/001-cython-module.patch b/mingw-w64-libplist/001-cython-module.patch new file mode 100644 index 0000000000..d1fc3618b5 --- /dev/null +++ b/mingw-w64-libplist/001-cython-module.patch @@ -0,0 +1,14 @@ +--- libplist-1.12/cython/Makefile.am.orig 2015-01-17 19:17:30.724800000 +0300 ++++ libplist-1.12/cython/Makefile.am 2015-01-17 19:17:43.813200000 +0300 +@@ -20,8 +20,10 @@ + plist_LTLIBRARIES = plist.la + plist_la_SOURCES = plist_util.c plist_util.h plist.pyx + plist_la_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/src $(PYTHON_CPPFLAGS) $(AM_CFLAGS) -Wno-shadow -Wno-redundant-decls -Wno-switch-default -Wno-strict-aliasing -Wno-implicit-function-declaration -fvisibility=default +-plist_la_LDFLAGS = -module -avoid-version -L$(libdir) $(PYTHON_LDFLAGS) $(AM_LDFLAGS) ++plist_la_LDFLAGS = -module -avoid-version -no-undefined -L$(libdir) $(PYTHON_LDFLAGS) $(AM_LDFLAGS) + plist_la_LIBADD = $(top_builddir)/src/libplist.la ++otherincludedir = $(includedir)/plist/cython ++otherinclude_HEADERS = plist_util.h plist.pxd + + plist.c: plist.pyx $(PXDINCLUDES) $(PXIINCLUDES) + diff --git a/mingw-w64-libplist/PKGBUILD b/mingw-w64-libplist/PKGBUILD index 1c087589c2..48528a9c00 100644 --- a/mingw-w64-libplist/PKGBUILD +++ b/mingw-w64-libplist/PKGBUILD @@ -3,20 +3,26 @@ _realname=libplist pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.12 -pkgrel=1 +pkgrel=2 pkgdesc='A library to handle Apple Property List format in binary or XML (mingw-w64)' groups=("${MINGW_PACKAGE_PREFIX}" "xdev") arch=('any') url='http://www.libimobiledevice.org/' license=('GPL2+') -source=("http://www.libimobiledevice.org/downloads/${_realname}-${pkgver}.tar.bz2") +source=("http://www.libimobiledevice.org/downloads/${_realname}-${pkgver}.tar.bz2" + 001-cython-module.patch) depends=("${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-cython") +options=('staticlibs') makedepends=("${MINGW_PACKAGE_PREFIX}-python3") -sha1sums=('48f071c723387637ef2cc2980d4ca0627aab067b') +sha1sums=('48f071c723387637ef2cc2980d4ca0627aab067b' + '974595d36c8ddfcf97aab0d3f2b4ee36b1440351') prepare() { cd $srcdir/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/001-cython-module.patch + + autoreconf -fiv } build() { @@ -44,4 +50,6 @@ check() { package() { cd "${srcdir}"/build-${CARCH} make install DESTDIR="${pkgdir}" + + rm -f ${pkgdir}${MINGW_PREFIX}/lib/python*/site-packages/*.a } From a096e77479f40148113a82f4ff468f1f5770b3c7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 17 Jan 2015 20:59:33 +0300 Subject: [PATCH 0367/2060] libimobiledevice: Fix building python module, install headers. --- .../001-cython-includes.patch | 11 +++++++++++ mingw-w64-libimobiledevice/PKGBUILD | 19 +++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-libimobiledevice/001-cython-includes.patch diff --git a/mingw-w64-libimobiledevice/001-cython-includes.patch b/mingw-w64-libimobiledevice/001-cython-includes.patch new file mode 100644 index 0000000000..557305ff74 --- /dev/null +++ b/mingw-w64-libimobiledevice/001-cython-includes.patch @@ -0,0 +1,11 @@ +--- libimobiledevice-1.1.7/cython/Makefile.am.orig 2015-01-17 20:47:09.573200000 +0300 ++++ libimobiledevice-1.1.7/cython/Makefile.am 2015-01-17 20:48:25.781600000 +0300 +@@ -39,6 +39,8 @@ + imobiledevice_la_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/src $(PYTHON_CPPFLAGS) $(AM_CFLAGS) -Wno-shadow -Wno-redundant-decls -Wno-switch-default -Wno-strict-aliasing -Wno-implicit-function-declaration -fvisibility=default + imobiledevice_la_LDFLAGS = -module -avoid-version -L$(libdir) $(PYTHON_LDFLAGS) $(AM_LDFLAGS) -no-undefined + imobiledevice_la_LIBADD = $(top_builddir)/src/libimobiledevice.la ++otherincludedir = $(includedir)/libimobiledevice/cython ++otherinclude_HEADERS = imobiledevice.pxd + + imobiledevice.c: imobiledevice.pyx $(PXDINCLUDES) $(PXIINCLUDES) + diff --git a/mingw-w64-libimobiledevice/PKGBUILD b/mingw-w64-libimobiledevice/PKGBUILD index bcc7f7c23f..82a6c9262d 100644 --- a/mingw-w64-libimobiledevice/PKGBUILD +++ b/mingw-w64-libimobiledevice/PKGBUILD @@ -3,20 +3,26 @@ _realname=libimobiledevice pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.1.7 -pkgrel=1 +pkgrel=2 pkgdesc='A cross-platform protocol library to communicate with iOS devices (mingw-w64)' groups=("${MINGW_PACKAGE_PREFIX}" "xdev") arch=('any') url='http://www.libimobiledevice.org/' license=('GPL2+') -source=("http://www.libimobiledevice.org/downloads/${_realname}-${pkgver}.tar.bz2") +options=('staticlibs') +source=("http://www.libimobiledevice.org/downloads/${_realname}-${pkgver}.tar.bz2" + 001-cython-includes.patch) depends=("${MINGW_PACKAGE_PREFIX}-libusbmuxd" "${MINGW_PACKAGE_PREFIX}-libplist" "${MINGW_PACKAGE_PREFIX}-openssl") -sha1sums=('ac47ba39e7f8d8cb9379756773ece30458b93c80') +sha1sums=('ac47ba39e7f8d8cb9379756773ece30458b93c80' + '9d091cf73ce1477db7b78fc8e47572e2e3031e79') prepare() { cd $srcdir/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/001-cython-includes.patch + + autoreconf -fiv } build() { @@ -24,13 +30,16 @@ build() { [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + PYTHON=${MINGW_PREFIX}/bin/python3 \ ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-static \ - --enable-shared + --enable-shared \ + --enable-dev-tools + make } @@ -42,4 +51,6 @@ check() { package() { cd "${srcdir}"/build-${CARCH} make install DESTDIR="${pkgdir}" + + rm -f ${pkgdir}${MINGW_PREFIX}/lib/python*/site-packages/*.a } From 5f8abb9acc2efa0c913d92fc1a506408c2a59da0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 17 Jan 2015 17:47:54 +0000 Subject: [PATCH 0368/2060] qt-creator: Add patch for MIB_TCP_STATE --- mingw-w64-qtcreator/PKGBUILD | 9 ++++++--- ...W-w64-MIB_TCP_STATE-not-defined-until-Vista.patch | 12 ++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-qtcreator/qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 0952f455b2..388d07fafc 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -8,7 +8,7 @@ __pre= _base_ver=3.3.0 #_base_ver=3.2.2 pkgver=${_base_ver}${_pre} -pkgrel=1 +pkgrel=2 pkgdesc='Cross-patform IDE (mingw-w64)' url='http://qt-project.org' install=qt-creator-${CARCH}.install @@ -43,7 +43,8 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch qt-creator-3.2.0-autotools-allow-non-Automake-Makefile-in-projects.patch qt-creator-3.2.0-i[3456]86-and-x86-have-32bit-wordWidth.patch - qt-creator-3.3.0-abi-msys-is-Windows.patch) + qt-creator-3.3.0-abi-msys-is-Windows.patch + qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch) noextract=(${_pkgfqn}.tar.gz) sha256sums=('27a5c8815fab95f959134047f8315686de4de6f99b0bedfd46b5dedae390525a' '18f59946054e667b56276f53ec544d4786c3c249fee6c0bd9b0b565ed4b7cf2d' @@ -59,7 +60,8 @@ sha256sums=('27a5c8815fab95f959134047f8315686de4de6f99b0bedfd46b5dedae390525a' '835c32b31000d2ef5c0e4a1f4f7872ecce77c19ea7cf25b5956f79bfe79094f2' '809c0499b881866424fa4d3e0d2e3ce402b127221c070a35da4b135818a79eeb' '79fc4d2ef02ff8f458b1b330c683c2a86397f056369c90176a9ddbeba3b719fd' - 'c4cae708825102d538e1ecb9a88ecb216d366feb779553a2e91f97c4b78f8427') + 'c4cae708825102d538e1ecb9a88ecb216d366feb779553a2e91f97c4b78f8427' + 'b4cf07e2772b2ec6710ee7df6463feddb4195d65fa59e6c6095fbc0cb240417e') prepare() { cd $startdir/ [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} @@ -88,6 +90,7 @@ prepare() { patch -p1 -i "${srcdir}"/qt-creator-3.2.0-autotools-allow-non-Automake-Makefile-in-projects.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-i[3456]86-and-x86-have-32bit-wordWidth.patch patch -p1 -i "${srcdir}"/qt-creator-3.3.0-abi-msys-is-Windows.patch + patch -p1 -i "${srcdir}"/qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch # Use system installed qbs rm -rf src/shared/qbs diff --git a/mingw-w64-qtcreator/qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch b/mingw-w64-qtcreator/qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch new file mode 100644 index 0000000000..f3c0624440 --- /dev/null +++ b/mingw-w64-qtcreator/qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch @@ -0,0 +1,12 @@ +diff -urN qt-creator-opensource-src-3.3.0.orig/src/libs/utils/tcpportsgatherer.cpp qt-creator-opensource-src-3.3.0/src/libs/utils/tcpportsgatherer.cpp +--- qt-creator-opensource-src-3.3.0.orig/src/libs/utils/tcpportsgatherer.cpp 2015-01-17 17:41:08.077068900 +0000 ++++ qt-creator-opensource-src-3.3.0/src/libs/utils/tcpportsgatherer.cpp 2015-01-17 17:41:47.081521900 +0000 +@@ -47,7 +47,7 @@ + #if defined(Q_OS_WIN) && defined(Q_CC_MINGW) + + // Missing declarations for MinGW 32. +-#if __GNUC__ == 4 && (!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 2) ++#if (__GNUC__ == 4 && (!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 2)) || (_WIN32_WINNT < 0x0600) + typedef enum { } MIB_TCP_STATE; + #endif + From 55c7d3fe7bfc8881bfaf04f7c4d7278d80bde323 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 13:59:17 +0300 Subject: [PATCH 0369/2060] gnutls: Update to 3.3.12 --- mingw-w64-gnutls/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index 6ac395eae4..84e4910b30 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -2,8 +2,8 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.3.11 -pkgrel=2 +pkgver=3.3.12 +pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') license=('GPL3' 'LGPL2.1') @@ -22,7 +22,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/${_realname}-${pkgver}.tar.xz{,.sig} 0004-fix-gtkdoc.all.patch 0005-fix-strtok-conflict.mingw.patch) -md5sums=('b657e3010c10cae2244e7ce79ee3d446' +md5sums=('a37b20b4352a5f542367ded904729c90' 'SKIP' '86cfab6e7c2ccfcfd1dad9d5024627e3' '77287dc835afbb8cc4e9c4aa6b7adb7b') From 8eceb2742b8881c1a3ed4d6e59c3f757e0b32828 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 18 Jan 2015 14:16:35 +0100 Subject: [PATCH 0370/2060] latexila: relocation. --- mingw-w64-latexila/001-win.patch | 60 ++++++++++++++++++++++--- mingw-w64-latexila/002-fixed-path.patch | 24 ---------- mingw-w64-latexila/PKGBUILD | 9 ++-- 3 files changed, 56 insertions(+), 37 deletions(-) delete mode 100644 mingw-w64-latexila/002-fixed-path.patch diff --git a/mingw-w64-latexila/001-win.patch b/mingw-w64-latexila/001-win.patch index bf21c089dc..d68a5c3f00 100644 --- a/mingw-w64-latexila/001-win.patch +++ b/mingw-w64-latexila/001-win.patch @@ -1,5 +1,5 @@ ---- ./src/build_command_runner.vala.orig 2015-01-12 15:16:12.882554900 +0100 -+++ ./src/build_command_runner.vala 2015-01-12 15:18:14.007981800 +0100 +--- ./src/build_command_runner.vala.orig 2015-01-07 14:51:22.000000000 +0100 ++++ ./src/build_command_runner.vala 2015-01-18 13:16:23.871049000 +0100 @@ -77,7 +77,7 @@ { if (_child_pid != null) @@ -9,8 +9,44 @@ _child_pid = null; } } ---- ./src/Makefile.am.orig 2015-01-12 15:30:54.450523100 +0100 -+++ ./src/Makefile.am 2015-01-12 15:31:07.342497200 +0100 +--- ./src/main.vala.orig 2015-01-18 13:22:27.137947500 +0100 ++++ ./src/main.vala 2015-01-18 13:22:56.681820000 +0100 +@@ -21,6 +21,16 @@ + + using Gtk; + ++namespace Config ++{ ++ public string PACKAGE_NAME; ++ public string PACKAGE_VERSION; ++ public string DATA_DIR; ++ public string LOCALE_DIR; ++ public string GETTEXT_PACKAGE; ++ public string ICONS_DIR; ++} ++ + private struct CmdLineData + { + bool new_document; +@@ -109,6 +119,16 @@ + + int main (string[] args) + { ++ string p = Win32.get_package_installation_directory_of_module (null); ++ ++ Config.PACKAGE_NAME = RealConfig.PACKAGE_NAME; ++ Config.PACKAGE_VERSION = RealConfig.PACKAGE_VERSION; ++ Config.GETTEXT_PACKAGE = RealConfig.GETTEXT_PACKAGE; ++ ++ Config.DATA_DIR = Path.build_filename (p, "share", "latexila"); ++ Config.LOCALE_DIR = Path.build_filename (p, "share", "locale"); ++ Config.ICONS_DIR = Path.build_filename (p, "share", "icons", "hicolor"); ++ + init_i18n (); + + CmdLineData data = parse_cmd_line_options (args); +--- ./src/Makefile.am.orig 2015-01-07 14:51:22.000000000 +0100 ++++ ./src/Makefile.am 2015-01-18 13:16:23.882768000 +0100 @@ -69,7 +69,8 @@ $(vala_files) \ $(vapidir)/config.vapi \ @@ -21,11 +57,21 @@ latexila_CPPFLAGS = \ -I$(top_srcdir) \ ---- ./vapi/windows.vapi.orig 2015-01-12 15:42:31.000000000 +0100 -+++ ./vapi/windows.vapi 2015-01-12 15:42:23.883452400 +0100 -@@ -0,0 +1,5 @@ +--- ./vapi/config.vapi.orig 2015-01-18 13:17:20.283903200 +0100 ++++ ./vapi/config.vapi 2015-01-18 13:17:24.942519000 +0100 +@@ -1,5 +1,5 @@ + [CCode (prefix = "", lower_case_cprefix = "", cheader_filename = "config.h")] +-namespace Config ++namespace RealConfig + { + public const string PACKAGE_NAME; + public const string PACKAGE_VERSION; +--- ./vapi/windows.vapi.orig 2015-01-18 13:16:23.836870200 +0100 ++++ ./vapi/windows.vapi 2015-01-18 13:16:23.912062700 +0100 +@@ -1 +1,6 @@ +[CCode (lower_case_cprefix="", cheader_filename="windows.h")] +namespace Windows +{ + public bool TerminateProcess (GLib.Pid hProcess, uint uExitCode); +} + diff --git a/mingw-w64-latexila/002-fixed-path.patch b/mingw-w64-latexila/002-fixed-path.patch deleted file mode 100644 index b1c63d2972..0000000000 --- a/mingw-w64-latexila/002-fixed-path.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- ./configure.ac.orig 2015-01-12 21:12:06.744867800 +0100 -+++ ./configure.ac 2015-01-12 21:14:35.622919500 +0100 -@@ -60,11 +60,13 @@ - echo "[$]_lcl_receval")`]) - - adl_RECURSIVE_EVAL(["${datadir}/latexila"], [DATA_DIR]) -+DATA_DIR=`cygpath -m $DATA_DIR` - AC_DEFINE_UNQUOTED([DATA_DIR], - ["${DATA_DIR}"], - [latexila data directory]) - - adl_RECURSIVE_EVAL(["${datadir}/icons/hicolor"], [ICONS_DIR]) -+ICONS_DIR=`cygpath -m $ICONS_DIR` - AC_DEFINE_UNQUOTED([ICONS_DIR], - ["${ICONS_DIR}"], - [icons directory]) -@@ -130,6 +132,7 @@ - [The domain to use with gettext]) - - adl_RECURSIVE_EVAL(["${localedir}"], [LOCALE_DIR]) -+LOCALE_DIR=`cygpath -m $LOCALE_DIR` - AC_DEFINE_UNQUOTED([LOCALE_DIR], - ["${LOCALE_DIR}"], - [locale directory]) diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD index 42ee6ea1da..265bf30095 100644 --- a/mingw-w64-latexila/PKGBUILD +++ b/mingw-w64-latexila/PKGBUILD @@ -18,18 +18,15 @@ license=("GPL 2") url="http://www.gnome.org" install=latexila-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz - 001-win.patch - 002-fixed-path.patch) + 001-win.patch) sha256sums=('bdc46a52cba778646af05ade9ea7cc639e34f8aafdb640ad2217f21d067c7039' - '227e4eb6c8d4b03fc5ffdf97595c598198d3b97b99e1a6a280243c8357751a21' - '081e4cd4199ebfc7311ec28a04655e6ac1327c4a86b3fd107b82e328b8fc19ed') + 'a90bc6f730e79504c167c5d34c8781e2af6156867433ac1d47188f43ddf787be') prepare() { cd "${srcdir}"/${_realname}-${pkgver} echo "" > vapi/windows.vapi - patch -p1 -i ${srcdir}/001-win.patch - patch -p1 -i ${srcdir}/002-fixed-path.patch + patch -p1 -b -V simple -z .orig -i ${srcdir}/001-win.patch autoreconf -sf } From 16aea64f4bf38cb9daedb9dc21e5ee0f5bfbcc77 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 16:46:40 +0300 Subject: [PATCH 0371/2060] ghostscript: Rebuild. --- mingw-w64-ghostscript/PKGBUILD | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ghostscript/PKGBUILD b/mingw-w64-ghostscript/PKGBUILD index 76c60f8daa..5035f10091 100644 --- a/mingw-w64-ghostscript/PKGBUILD +++ b/mingw-w64-ghostscript/PKGBUILD @@ -3,7 +3,7 @@ _realname=ghostscript pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=9.15 -pkgrel=1 +pkgrel=2 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") license=('AGPL' 'custom') @@ -18,7 +18,7 @@ depends=( "${MINGW_PACKAGE_PREFIX}-libtiff>=4.0.0" "${MINGW_PACKAGE_PREFIX}-lcms2" "${MINGW_PACKAGE_PREFIX}-dbus" - #"${MINGW_PACKAGE_PREFIX}-openjpeg" + "${MINGW_PACKAGE_PREFIX}-openjpeg" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" ) makedepends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-gnutls") @@ -43,7 +43,7 @@ prepare() { sed -e "s|/usr|${MINGW_PREFIX}/${MINGW_CHOST}|g" -i base/all-arch.mak base/unix-aux.mak # force it to use system-libs - rm -rf freetype jpeg libpng lcms lcms2 tiff zlib #openjpeg + rm -rf freetype jpeg libpng lcms lcms2 tiff zlib openjpeg #cd base libtoolize --force --copy --install @@ -80,6 +80,8 @@ package() { install -D -m644 "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE + cp ${pkgdir}${MINGW_PREFIX}/bin/{gsc,gswin32c}.exe + # remove unwanted localized man-pages rm -rf "${pkgdir}${MINGW_PREFIX}"/share/man/[^man1]* } From 6edf5b7724331ae82738ea2869d2ae3bf36990f7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 16:49:05 +0300 Subject: [PATCH 0372/2060] libjpeg-turbo: Fix compatibility with "basestd.h" header. --- .../0001-header-compat.mingw.patch | 17 +++++++---------- mingw-w64-libjpeg-turbo/PKGBUILD | 4 ++-- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/mingw-w64-libjpeg-turbo/0001-header-compat.mingw.patch b/mingw-w64-libjpeg-turbo/0001-header-compat.mingw.patch index 9cd5b985e4..b54267f232 100644 --- a/mingw-w64-libjpeg-turbo/0001-header-compat.mingw.patch +++ b/mingw-w64-libjpeg-turbo/0001-header-compat.mingw.patch @@ -13,19 +13,16 @@ /* * Define BITS_IN_JSAMPLE as either -@@ -154,14 +154,18 @@ - /* INT16 must hold at least the values -32768..32767. */ +@@ -118,6 +118,7 @@ + #endif /* HAVE_UNSIGNED_CHAR */ - #ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ -+#ifndef _BASETSD_H_ /* basestd.h from mingw-w64 defines INT16 */ - typedef short INT16; - #endif -+#endif - - /* INT32 must hold at least signed 32-bit values. */ ++#ifndef _BASETSD_H_ /* basestd.h from mingw-w64 defines UINT8, UINT16, INT16, INT32 */ + /* These typedefs are used for various table entries and so forth. + * They must be at least as wide as specified; but making them too big + * won't cost a huge amount of memory, so we don't provide special +@@ -158,6 +158,7 @@ #ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ -+#ifndef _BASETSD_H_ /* basestd.h from mingw-w64 defines INT32 */ typedef long INT32; #endif +#endif diff --git a/mingw-w64-libjpeg-turbo/PKGBUILD b/mingw-w64-libjpeg-turbo/PKGBUILD index 2381ad7df1..2286a3b635 100644 --- a/mingw-w64-libjpeg-turbo/PKGBUILD +++ b/mingw-w64-libjpeg-turbo/PKGBUILD @@ -3,7 +3,7 @@ _realname=libjpeg-turbo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.0 -pkgrel=1 +pkgrel=2 pkgdesc="JPEG image codec with accelerated baseline compression and decompression (mingw-w64)" arch=('any') url="http://libjpeg-turbo.virtualgl.org" @@ -19,7 +19,7 @@ source=("http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-$pkgver.ta "0001-header-compat.mingw.patch" "libjpeg-turbo-1.3.1-libmng-compatibility.patch") md5sums=('039153dabe61e1ac8d9323b5522b56b0' - '4c7074385609de7310e3592a91f608f8' + '11e4818dd682ae73cd75f11013a97e72' 'b54c2ab69837e1b72605184364360af0') prepare() { From f8356fdbd20834a2843a31c6324417cde891683b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 17:27:29 +0300 Subject: [PATCH 0373/2060] imagemagick: Update to 6.9.0.4 --- mingw-w64-imagemagick/002-build-fixes.patch | 34 +++++++++++ mingw-w64-imagemagick/PKGBUILD | 63 ++++++++++++--------- 2 files changed, 69 insertions(+), 28 deletions(-) create mode 100644 mingw-w64-imagemagick/002-build-fixes.patch diff --git a/mingw-w64-imagemagick/002-build-fixes.patch b/mingw-w64-imagemagick/002-build-fixes.patch new file mode 100644 index 0000000000..538379bc88 --- /dev/null +++ b/mingw-w64-imagemagick/002-build-fixes.patch @@ -0,0 +1,34 @@ +--- ImageMagick-6.9.0-4/coders/emf.c.orig 2015-01-18 16:03:32.542800000 +0300 ++++ ImageMagick-6.9.0-4/coders/emf.c 2015-01-18 16:03:52.245600000 +0300 +@@ -459,6 +459,9 @@ + register PixelPacket + *q; + ++ MagickBooleanType ++ status; ++ + RGBQUAD + *pBits, + *ppBits; +--- ImageMagick-6.9.0-4/magick/distribute-cache.c.orig 2015-01-18 16:07:04.357600000 +0300 ++++ ImageMagick-6.9.0-4/magick/distribute-cache.c 2015-01-18 16:11:40.668800000 +0300 +@@ -86,6 +86,8 @@ + #define SOCKET_TYPE int + #define MAGICKCORE_HAVE_DISTRIBUTE_CACHE + #elif defined(MAGICKCORE_WINDOWS_SUPPORT) ++#include ++#include + #define CHAR_TYPE_CAST (char *) + #define CLOSE_SOCKET(socket) (void) closesocket(socket) + #define HANDLER_RETURN_TYPE DWORD WINAPI +--- ImageMagick-6.9.0-4/magick/nt-base.h.orig 2015-01-18 16:39:35.182400000 +0300 ++++ ImageMagick-6.9.0-4/magick/nt-base.h 2015-01-18 16:39:37.740800000 +0300 +@@ -38,6 +38,8 @@ + #include + #include + #include ++#include ++#include + #if defined(_DEBUG) && !defined(__MINGW32__) && !defined(__MINGW64__) + #include + #endif diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index 39aa90912d..b2050b839e 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -2,7 +2,7 @@ _realname=imagemagick pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.9.0.0 +pkgver=6.9.0.4 pkgrel=1 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') @@ -15,49 +15,53 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-openexr" "${MINGW_PACKAGE_PREFIX}-librsvg" "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-jasper" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-libwebp" "${MINGW_PACKAGE_PREFIX}-ghostscript") -depends=("${MINGW_PACKAGE_PREFIX}-libtool" - "${MINGW_PACKAGE_PREFIX}-djvulibre" - "${MINGW_PACKAGE_PREFIX}-lcms2" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-liblqr" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-xz" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-fftw" - "${MINGW_PACKAGE_PREFIX}-openjpeg2" - #"${MINGW_PACKAGE_PREFIX}-perl" +depends=("${MINGW_PACKAGE_PREFIX}-bzip2" + "${MINGW_PACKAGE_PREFIX}-djvulibre" + "${MINGW_PACKAGE_PREFIX}-fftw" + "${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-jbigkit" + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-liblqr" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libtool" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-openjpeg2" + #"${MINGW_PACKAGE_PREFIX}-perl" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-zlib" ) optdepends=("${MINGW_PACKAGE_PREFIX}-ghostscript: for Ghostscript support" - "${MINGW_PACKAGE_PREFIX}-openexr: for OpenEXR support" - "${MINGW_PACKAGE_PREFIX}-librsvg: for SVG support" - "${MINGW_PACKAGE_PREFIX}-libxml2: for XML support" - "${MINGW_PACKAGE_PREFIX}-jasper: for JPEG-2000 support" - "${MINGW_PACKAGE_PREFIX}-libpng: for PNG support" - "${MINGW_PACKAGE_PREFIX}-libtiff: for PNG support" - "${MINGW_PACKAGE_PREFIX}-libwebp: for WEBP support") + "${MINGW_PACKAGE_PREFIX}-openexr: for OpenEXR support" + "${MINGW_PACKAGE_PREFIX}-librsvg: for SVG support" + "${MINGW_PACKAGE_PREFIX}-libxml2: for XML support" + #"${MINGW_PACKAGE_PREFIX}-jasper: for JPEG-2000 support" + #"${MINGW_PACKAGE_PREFIX}-libpng: for PNG support" + #"${MINGW_PACKAGE_PREFIX}-libtiff: for PNG support" + #"${MINGW_PACKAGE_PREFIX}-libwebp: for WEBP support" + ) options=('staticlibs' 'strip' '!debug' 'libtool') source=(ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.xz{,.asc} ImageMagick-6.8.8.1-mingw.patch 001-relocate.patch + 002-build-fixes.patch winpath.patch) -md5sums=('3714e7d5d248c13aee95a7f54970349f' +md5sums=('89e278be06d8eb8e8bd6be2c8a13ab2b' 'SKIP' 'c95a23e8562dbab4e6b0e5407da25209' '7821087a00c459c0d3482508fdc1e25e' + '54d02f7330a8d93ebf08ca2d1e68bc4c' 'b0b634231da667d7472522fc08fd3519') prepare() { cd ImageMagick-${pkgver%.*}-${pkgver##*.} patch -p1 -i ${srcdir}/ImageMagick-6.8.8.1-mingw.patch patch -p1 -i ${srcdir}/001-relocate.patch + patch -p1 -i ${srcdir}/002-build-fixes.patch #patch -p1 -i ${srcdir}/winpath.patch autoreconf -fi } @@ -91,15 +95,18 @@ build() { --without-autotrace \ --without-dps \ --without-fpx \ - --without-jbig \ + --with-jbig \ --without-ltdl \ --without-perl \ --without-x \ + --with-windows-font-dir=c:/Windows/fonts \ $EXTRAOPTS make #--enable-opencl \ + # --with-gs-font-dir=${MINGW_PREFIX}/ \ + # --with-dejavu-font-dir= \ #--with-gslib \ #--with-gs-font-dir=/usr/share/fonts/Type1 #--with-perl-options="INSTALLDIRS=vendor" From f35e469c3ea5e129454d3cbfb7018f2fe74aaec4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 18:13:30 +0300 Subject: [PATCH 0374/2060] mpv: New package. --- mingw-w64-mpv/PKGBUILD | 61 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 mingw-w64-mpv/PKGBUILD diff --git a/mingw-w64-mpv/PKGBUILD b/mingw-w64-mpv/PKGBUILD new file mode 100644 index 0000000000..e85727c171 --- /dev/null +++ b/mingw-w64-mpv/PKGBUILD @@ -0,0 +1,61 @@ +# Maintainer: Alexey Pavlov + +_realname=mpv +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.7.2 +pkgrel=1 +pkgdesc="Video player based on MPlayer/mplayer2 (mingw-w64)" +url="http://mpv.io" +arch=('any') +license=('GPL') +depends=("${MINGW_PACKAGE_PREFIX}-ffmpeg" + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-libdvdread" + #"${MINGW_PACKAGE_PREFIX}-libcdio-paranoia" + "${MINGW_PACKAGE_PREFIX}-enca" + "${MINGW_PACKAGE_PREFIX}-libguess" + "${MINGW_PACKAGE_PREFIX}-mpg123" + "${MINGW_PACKAGE_PREFIX}-lua" + "${MINGW_PACKAGE_PREFIX}-libdvdnav") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "python" + "perl" + "pkg-config") +source=(https://github.com/mpv-player/${_realname}/archive/v$pkgver.tar.gz) +md5sums=('5081934235bf1d531364f59e5f718024') + +prepare() { + cd ${_realname}-${pkgver} + /usr/bin/python3 ./bootstrap.py +} + +build() { + cd "${srcdir}/${_realname}-${pkgver}" + sed -i 's:bin/env python:bin/env python3:' waf + + DEST_OS=win32 \ + TARGET=${MINGW_CHOST} \ + PKG_CONFIG=/usr/bin/pkg-config \ + CC=gcc PERL=/usr/bin/perl \ + AR=${MINGW_PREFIX}/bin/ar \ + WINDRES=${MINGW_PREFIX}/bin/windres \ + /usr/bin/python3 ./waf configure \ + --prefix=${MINGW_PREFIX} \ + --check-c-compiler=gcc \ + --enable-libmpv-shared \ + --disable-client-api-examples + + /usr/bin/python3 ./waf build +} + +package() { + cd "${srcdir}/${_realname}-${pkgver}" + export PYTHON=${MINGW_PREFIX}/bin/python3 + /usr/bin/python3 ./waf install --destdir="${pkgdir}" + + #rm -rf ${pkgdir}${MINGW_PREFIX}/lib + mv ${pkgdir}${MINGW_PREFIX}/bin ${pkgdir}${MINGW_PREFIX}/lib + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin + mv ${pkgdir}${MINGW_PREFIX}/lib/*.exe ${pkgdir}${MINGW_PREFIX}/bin/ + mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ +} From 971fb0817e1e54bed18b85c68109af80de44d99e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 18:22:22 +0300 Subject: [PATCH 0375/2060] libuv: Update to 1.2.1 --- mingw-w64-libuv/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libuv/PKGBUILD b/mingw-w64-libuv/PKGBUILD index 92c58fd4b8..604387b44d 100644 --- a/mingw-w64-libuv/PKGBUILD +++ b/mingw-w64-libuv/PKGBUILD @@ -2,17 +2,17 @@ _realname=libuv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.11.29 +pkgver=1.2.1 pkgrel=1 pkgdesc="A new platform layer for Node.JS (mingw-w64)" arch=('any') -url="https://github.com/joyent/libuv" +url="https://github.com/libuv/libuv" license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') -source=("https://github.com/joyent/libuv/archive/v$pkgver.tar.gz") -sha256sums=('fac45e72c2df30ddc9cbdf5002fc1363281d0e433831e3d43acb1036c2cabfc6') +source=("https://github.com/libuv/libuv/archive/v$pkgver.tar.gz") +sha256sums=('4c4fb49172d6dc59168a934bc128eb4a001e4a2091c2fe9a20d81c720f2caa30') prepare() { cd "$srcdir/${_realname}-$pkgver" From 3d96780f2b1a074c88cac7c8a80c91a9b2b47575 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 19:21:23 +0300 Subject: [PATCH 0376/2060] libmowgli: Rebuild. --- mingw-w64-libmowgli/PKGBUILD | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/mingw-w64-libmowgli/PKGBUILD b/mingw-w64-libmowgli/PKGBUILD index 1fd4858d6e..ba4ab2dbc4 100644 --- a/mingw-w64-libmowgli/PKGBUILD +++ b/mingw-w64-libmowgli/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libmowgli - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.0 -pkgrel=1 +pkgrel=2 pkgdesc="Performance and usability-oriented extensions to C (mingw-w64)" arch=('any') url="http://www.atheme.org/project/mowgli" @@ -12,20 +11,22 @@ license=('GPL') depends=("${MINGW_PACKAGE_PREFIX}-openssl") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git") options=('staticlibs' 'strip') -source=("${_realname}-${pkgver}::git+https://github.com/atheme/libmowgli-2.git#tag=${_realname}-${pkgver}" +source=(#"${_realname}-${pkgver}::git+https://github.com/atheme/libmowgli-2.git#tag=${_realname}-${pkgver}" + https://github.com/atheme/libmowgli-2/archive/${_realname}-${pkgver}.tar.gz libmowgli-2.0.0-mingw-have-declarations.patch) -md5sums=('SKIP' +md5sums=('0b8cf8b66d745d40f186e3cbd22fdc0e' '47ee3521d81255a675ff83f2c48b4909') prepare() { - cd ${srcdir}/${_realname}-${pkgver} + cd ${srcdir}/${_realname}-2-${_realname}-${pkgver} patch -p1 -i ${srcdir}/libmowgli-2.0.0-mingw-have-declarations.patch #autoreconf -fi } build() { - cd ${srcdir}/${_realname}-${pkgver} + cp -rf ${_realname}-2-${_realname}-${pkgver} ${srcdir}/build-${MINGW_CHOST} + cd build-${MINGW_CHOST} ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -37,7 +38,7 @@ build() { } package() { - cd ${srcdir}/${_realname}-${pkgver} + cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR="$pkgdir" install install -D -m644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From acdc7422cc34735b548da30f116c012b5e4b31a7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 19:21:41 +0300 Subject: [PATCH 0377/2060] libguess: Update to 1.2 --- mingw-w64-libguess/PKGBUILD | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/mingw-w64-libguess/PKGBUILD b/mingw-w64-libguess/PKGBUILD index 2792ee51af..87cb3ee5cd 100644 --- a/mingw-w64-libguess/PKGBUILD +++ b/mingw-w64-libguess/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=libguess - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.1 +pkgver=1.2 pkgrel=1 pkgdesc="High-speed character set detection library (mingw-w64)" arch=('any') @@ -12,8 +11,8 @@ license=('custom') depends=("${MINGW_PACKAGE_PREFIX}-libmowgli") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=("http://distfiles.atheme.org/libguess-${pkgver}.tar.gz") -md5sums=('efc2d53c30e47ffccae7148e53433396') +source=("http://rabbit.dereferenced.org/%7Enenolod/distfiles/${_realname}-${pkgver}.tar.bz2") +md5sums=('7633fbfbeb75b1ded7f33cca3d8d4762') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -22,17 +21,20 @@ prepare() { } build() { - cd ${srcdir}/${_realname}-${pkgver} + cp -rf ${_realname}-${pkgver} ${srcdir}/build-${MINGW_CHOST} + cd build-${MINGW_CHOST} ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-static make } package() { - cd ${srcdir}/${_realname}-${pkgver} + cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR="$pkgdir" install install -D -m644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 023cdfae946d6bb2d30c000239e7d667f284eaef Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 21:17:02 +0300 Subject: [PATCH 0378/2060] binutils-git: Update to git SHA [c8daf7d] --- mingw-w64-binutils-git/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-binutils-git/PKGBUILD b/mingw-w64-binutils-git/PKGBUILD index 559fccd7b2..dd68509ced 100644 --- a/mingw-w64-binutils-git/PKGBUILD +++ b/mingw-w64-binutils-git/PKGBUILD @@ -5,8 +5,8 @@ _realname=binutils _base_ver=2.25 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") # replaces="${MINGW_PACKAGE_PREFIX}-${_realname}=${_base_ver}" -pkgver=2.25.r81689.f30b244 -pkgrel=3 +pkgver=2.25.r81716.c8daf7d +pkgrel=1 provides=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgdesc="A set of programs to assemble and manipulate binary and object files" From 3f2476d1ced4e9c96c772beb6f854075da1d0fba Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 21:31:38 +0300 Subject: [PATCH 0379/2060] chipmunk: Update to 7.0.0 --- mingw-w64-chipmunk/001-build-fix.patch | 12 ++++++++++ mingw-w64-chipmunk/PKGBUILD | 23 +++++++++---------- .../fix-install-locations.patch | 11 --------- 3 files changed, 23 insertions(+), 23 deletions(-) create mode 100644 mingw-w64-chipmunk/001-build-fix.patch delete mode 100644 mingw-w64-chipmunk/fix-install-locations.patch diff --git a/mingw-w64-chipmunk/001-build-fix.patch b/mingw-w64-chipmunk/001-build-fix.patch new file mode 100644 index 0000000000..90cc51352b --- /dev/null +++ b/mingw-w64-chipmunk/001-build-fix.patch @@ -0,0 +1,12 @@ +--- Chipmunk-7.0.0/src/cpHastySpace.c.orig 2015-01-18 21:26:39.565400000 +0300 ++++ Chipmunk-7.0.0/src/cpHastySpace.c 2015-01-18 21:26:51.561800000 +0300 +@@ -6,7 +6,9 @@ + + #include + //#include ++#ifndef _WIN32 + #include ++#endif + + #include "chipmunk/chipmunk_private.h" + #include "chipmunk/cpHastySpace.h" diff --git a/mingw-w64-chipmunk/PKGBUILD b/mingw-w64-chipmunk/PKGBUILD index c00ecf8b4c..2f4d44fb13 100644 --- a/mingw-w64-chipmunk/PKGBUILD +++ b/mingw-w64-chipmunk/PKGBUILD @@ -1,24 +1,23 @@ # Maintainer: Martell Malone _realname=chipmunk - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.2.1 +pkgver=7.0.0 pkgrel=1 pkgdesc="A high-performance 2D rigid body physics library (mingw-w64)" arch=('any') url="http://chipmunk-physics.net/" license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") -source=(http://files.slembcke.net/chipmunk/release/Chipmunk-6.x/Chipmunk-${pkgver}.tgz - fix-install-locations.patch) -md5sums=('1cc6ff6a1f1cfcc6e167841fb24bf3c6' - 'ae50c9ed773b2858435ca7c6dbb8d524') +source=(http://files.slembcke.net/chipmunk/release/Chipmunk-7.x/Chipmunk-${pkgver}.tgz + 001-build-fix.patch) +md5sums=('87c2c3836036d172b55246854d270e67' + '457ee3f8fb9a4779d8f7eaaab7eb2697') options=(staticlibs !buildflags !strip) prepare() { cd ${srcdir}/Chipmunk-$pkgver - patch -p1 -i ${srcdir}/fix-install-locations.patch + patch -p1 -i ${srcdir}/001-build-fix.patch } build() { @@ -28,11 +27,11 @@ build() { #unset LDFLAGS CFLAGS CXXFLAGS ${MINGW_PREFIX}/bin/cmake -G"MSYS Makefiles" \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX="${pkgdir}${MINGW_PREFIX}" \ - -DBUILD_DEMOS=OFF \ - -DBUILD_SHARED=ON \ - -DINSTALL_STATIC=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="${pkgdir}${MINGW_PREFIX}" \ + -DBUILD_DEMOS=OFF \ + -DBUILD_SHARED=ON \ + -DINSTALL_STATIC=ON \ ../Chipmunk-$pkgver make } diff --git a/mingw-w64-chipmunk/fix-install-locations.patch b/mingw-w64-chipmunk/fix-install-locations.patch deleted file mode 100644 index 517ebf7832..0000000000 --- a/mingw-w64-chipmunk/fix-install-locations.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- Chipmunk-6.2.1/src/CMakeLists.txt.orig 2014-06-30 13:03:21.036600000 +0400 -+++ Chipmunk-6.2.1/src/CMakeLists.txt 2014-06-30 13:03:27.276600000 +0400 -@@ -22,7 +22,7 @@ - # need to explicitly link to the math library because the CMake/Android toolchains may not do it automatically - target_link_libraries(chipmunk m) - endif(ANDROID) -- install(TARGETS chipmunk RUNTIME DESTINATION lib LIBRARY DESTINATION lib) -+ install(TARGETS chipmunk RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) - endif(BUILD_SHARED) - - if(BUILD_STATIC) From 9e3dea0d72d3c8937f30236163db27fe0ab256e2 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Sun, 18 Jan 2015 19:59:35 +0100 Subject: [PATCH 0380/2060] libgusb: update to version 0.2.4 --- .../0001-give-cc-to-gir-scanner.all.patch | 10 ---------- mingw-w64-libgusb/PKGBUILD | 9 +++------ 2 files changed, 3 insertions(+), 16 deletions(-) delete mode 100644 mingw-w64-libgusb/0001-give-cc-to-gir-scanner.all.patch diff --git a/mingw-w64-libgusb/0001-give-cc-to-gir-scanner.all.patch b/mingw-w64-libgusb/0001-give-cc-to-gir-scanner.all.patch deleted file mode 100644 index b1abd26102..0000000000 --- a/mingw-w64-libgusb/0001-give-cc-to-gir-scanner.all.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- libgusb-gusb_0_2_3/gusb/Makefile.am.orig 2013-07-28 21:11:04.599868800 +0000 -+++ libgusb-gusb_0_2_3/gusb/Makefile.am 2013-07-28 21:18:26.664003800 +0000 -@@ -74,6 +74,7 @@ - include $(INTROSPECTION_MAKEFILE) - - INTROSPECTION_GIRS = GUsb-1.0.gir -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - - GUsb-1.0.gir: libgusb.la - diff --git a/mingw-w64-libgusb/PKGBUILD b/mingw-w64-libgusb/PKGBUILD index 9fc95e954f..befec58322 100644 --- a/mingw-w64-libgusb/PKGBUILD +++ b/mingw-w64-libgusb/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgusb _tarballname=gusb pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.2.3 +pkgver=0.2.4 pkgrel=1 arch=('any') pkgdesc="GLib wrapper around libusb1 (mingw-w64)" @@ -16,14 +16,11 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs') license=("LGPL") url="https://github.com/hughsie/libgusb" -source=("https://github.com/hughsie/${_realname}/archive/${_tarballname}_${pkgver//./_}.tar.gz" - 0001-give-cc-to-gir-scanner.all.patch) -sha256sums=('c55dc5735b24eb4ce8e9413be7c65f3177a891d049edaea63f55dd2c011d5e0a' - 'eda4802ca9009eeb58359df4140accf0bacac415387c7e5ad3577048835b7a71') +source=("https://github.com/hughsie/${_realname}/archive/${_tarballname}_${pkgver//./_}.tar.gz") +sha256sums=('43e04b9d9b555e330481c306ee073dbffad06609599ca8699722e88c857f80d1') prepare() { cd "${srcdir}"/${_realname}-${_tarballname}_${pkgver//./_} - patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.all.patch gtkdocize autoreconf -f -i } From bb3cf8b424a565e19e356f691d8556c6c61f9bb8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 21:38:43 +0300 Subject: [PATCH 0381/2060] openal: Rebuild. Fix URL --- mingw-w64-openal/PKGBUILD | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mingw-w64-openal/PKGBUILD b/mingw-w64-openal/PKGBUILD index 6df2a7e926..20a687f1ff 100644 --- a/mingw-w64-openal/PKGBUILD +++ b/mingw-w64-openal/PKGBUILD @@ -1,13 +1,12 @@ # Maintainer: Alexey Pavlov _realname=openal - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.16.0 -pkgrel=1 +pkgrel=2 pkgdesc="OpenAL audio library for use with opengl (mingw-w64)" arch=('any') -url="http://connect.creativelabs.com/openal/" +url="http://kcat.strangesoft.net/openal.html" license=('GPL2') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" From b5aabe429c6341e5f1d5aa46867814e794e5e5a9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 18 Jan 2015 21:59:18 +0300 Subject: [PATCH 0382/2060] openal: Build static library also. Fix building DirectSound support. --- mingw-w64-openal/PKGBUILD | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/mingw-w64-openal/PKGBUILD b/mingw-w64-openal/PKGBUILD index 20a687f1ff..b404dafeda 100644 --- a/mingw-w64-openal/PKGBUILD +++ b/mingw-w64-openal/PKGBUILD @@ -10,24 +10,45 @@ url="http://kcat.strangesoft.net/openal.html" license=('GPL2') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-ffmpeg" + #"${MINGW_PACKAGE_PREFIX}-fluidsynth" "${MINGW_PACKAGE_PREFIX}-portaudio") options=('strip' 'staticlibs') source=(http://kcat.strangesoft.net/openal-releases/openal-soft-$pkgver.tar.bz2) md5sums=('14db4b0d12f07252070b4fe5eb5911f6') build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + export DXSDK_DIR=${MINGW_PREFIX}/${MINGW_CHOST} + + mkdir -p "${srcdir}/build-shared-${MINGW_CHOST}" && cd "${srcdir}/build-shared-${MINGW_CHOST}" ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -DEXAMPLES=OFF \ + -DALSOFT_EXAMPLES=OFF \ + -DLIBTYPE=SHARED \ + -DDSOUND_INCLUDE_DIR=${MINGW_PREFIX}/${MINGW_CHOST}/include \ + -DDSOUND_LIBRARY=${MINGW_PREFIX}/${MINGW_CHOST}/lib/libdsound.a \ + ../openal-soft-${pkgver} + make + + mkdir -p "${srcdir}/build-static-${MINGW_CHOST}" && cd "${srcdir}/build-static-${MINGW_CHOST}" + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DALSOFT_EXAMPLES=OFF \ + -DLIBTYPE=STATIC \ + -DDSOUND_INCLUDE_DIR=${MINGW_PREFIX}/${MINGW_CHOST}/include \ + -DDSOUND_LIBRARY=${MINGW_PREFIX}/${MINGW_CHOST}/lib/libdsound.a \ ../openal-soft-${pkgver} make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-static-${MINGW_CHOST}" + make install + + cd "${srcdir}/build-shared-${MINGW_CHOST}" make install pushd ${pkgdir}${MINGW_PREFIX} > /dev/null From c8adc5c7d2cd97793d861daf29fec6cfa9704bf4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 19 Jan 2015 00:43:45 +0300 Subject: [PATCH 0383/2060] libcdr: New package. --- mingw-w64-libcdr/PKGBUILD | 47 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 mingw-w64-libcdr/PKGBUILD diff --git a/mingw-w64-libcdr/PKGBUILD b/mingw-w64-libcdr/PKGBUILD new file mode 100644 index 0000000000..69bf34480a --- /dev/null +++ b/mingw-w64-libcdr/PKGBUILD @@ -0,0 +1,47 @@ +# Maintainer: Alexey Pavlov + +_realname=libcdr +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.1.1 +pkgrel=1 +pkgdesc="CorelDraw file format importer library for LibreOffice (mingw-w64)" +arch=('any') +license=('GPL2' 'LGPL2.1' 'MPL') +url="https://wiki.documentfoundation.org/DLP/Libraries/libcdr" +options=('staticlibs' 'strip') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "doxygen") +depends=("${MINGW_PACKAGE_PREFIX}-libwpd" + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-librevenge" + "${MINGW_PACKAGE_PREFIX}-icu") +source=(http://dev-www.libreoffice.org/src/${_realname}/${_realname}-$pkgver.tar.xz) +md5sums=('72ed4d2f900eac95061207d026d5324c') + +prepare() { + cd ${_realname}-${pkgver} +} + +build() { + cd ${_realname}-${pkgver} + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make +} + +check() { + cd ${_realname}-${pkgver} + make -k check +} + +package() { + cd ${_realname}-${pkgver} + make -j1 DESTDIR="${pkgdir}" install +} From ebad8cddbd296bf91a5f20547bb6e64a9193ea18 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 19 Jan 2015 01:43:07 +0300 Subject: [PATCH 0384/2060] inkscape: Update to 0.91pre4 --- mingw-w64-inkscape/PKGBUILD | 59 ++++++++---------- mingw-w64-inkscape/ime-placement.patch | 62 ------------------- mingw-w64-inkscape/inkscape-0.48.4-gc74.patch | 13 ---- .../inkscape-0.48.4-mingw-dont-need-dl.patch | 11 ---- ...cape-0.48.4-use-GStatBuf-insted-stat.patch | 61 ++++++++---------- .../inkscape-0.48.4-win32-file-dialog.patch | 2 +- .../inkscape-0.48.4-win32-relocatable.patch | 34 ++-------- ...pe-0.91-simulaneous-intltool-gettext.patch | 14 +++++ 8 files changed, 74 insertions(+), 182 deletions(-) delete mode 100644 mingw-w64-inkscape/ime-placement.patch delete mode 100644 mingw-w64-inkscape/inkscape-0.48.4-gc74.patch delete mode 100644 mingw-w64-inkscape/inkscape-0.48.4-mingw-dont-need-dl.patch create mode 100644 mingw-w64-inkscape/inkscape-0.91-simulaneous-intltool-gettext.patch diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index 033146e94d..ddfb2c6618 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -3,8 +3,8 @@ _realname=inkscape pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.48.5 -pkgrel=3 +pkgver=0.91pre4 +pkgrel=1 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') url="http://inkscape.sourceforge.net/" @@ -15,21 +15,22 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-boost" "intltool") depends=( - "${MINGW_PACKAGE_PREFIX}-gc" - "${MINGW_PACKAGE_PREFIX}-ghostscript" - "${MINGW_PACKAGE_PREFIX}-gsl" - "${MINGW_PACKAGE_PREFIX}-gtkmm" - "${MINGW_PACKAGE_PREFIX}-gtkspell" - "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" - "${MINGW_PACKAGE_PREFIX}-imagemagick" - "${MINGW_PACKAGE_PREFIX}-lcms2" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-libxslt" - "${MINGW_PACKAGE_PREFIX}-libwpg" - "${MINGW_PACKAGE_PREFIX}-poppler" - "${MINGW_PACKAGE_PREFIX}-popt" - "${MINGW_PACKAGE_PREFIX}-python2" - ) + "${MINGW_PACKAGE_PREFIX}-aspell" + "${MINGW_PACKAGE_PREFIX}-ghostscript" + "${MINGW_PACKAGE_PREFIX}-gsl" + "${MINGW_PACKAGE_PREFIX}-gtkmm" + "${MINGW_PACKAGE_PREFIX}-gtkspell" + "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" + "${MINGW_PACKAGE_PREFIX}-imagemagick" + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-libcdr" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-libwpg" + "${MINGW_PACKAGE_PREFIX}-poppler" + "${MINGW_PACKAGE_PREFIX}-popt" + "${MINGW_PACKAGE_PREFIX}-python2" + ) optdepends=(#"${MINGW_PACKAGE_PREFIX}-pstoedit: latex formulas" #"${MINGW_PACKAGE_PREFIX}-texlive-core: latex formulas" "${MINGW_PACKAGE_PREFIX}-python2-numpy: some extensions" @@ -38,40 +39,35 @@ optdepends=(#"${MINGW_PACKAGE_PREFIX}-pstoedit: latex formulas" ) options=('staticlibs' 'strip') source=("http://downloads.sourceforge.net/project/${_realname}/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.bz2" - inkscape-0.48.4-gc74.patch + #http://sourceforge.net/projects/inkscape/files/inkscape/0.91pre3/inkscape-0.91pre3.tar.bz2/download inkscape-0.48.4-headers-fix.patch inkscape-0.48.4-python.patch inkscape-0.48.4-use-GStatBuf-insted-stat.patch inkscape-0.48.4-poppler-includes-conflicts.patch - inkscape-0.48.4-mingw-dont-need-dl.patch inkscape-0.48.4-win32-relocatable.patch inkscape-0.48.4-win32-file-dialog.patch inkscape-0.48.4-python-extensions-location.patch - ime-placement.patch) -sha1sums=('83ddb0c96069638f712a869039989bfd7d79c6a8' - '764ec7166c0308a8defcbb450468f15d821929f2' + inkscape-0.91-simulaneous-intltool-gettext.patch) +sha1sums=('8978f5e152668ad29708019952258b00d11ad2e6' '12fddb0a0b34b4308de1979d13b26d05a6ec8f77' '4dd0da65e538ba7e73a42ce76efd5e5a155d3bf0' - '2606a83aa0b116e51883543c3aadce6f8c4c2565' + '7e53e26506f22e51b79c50302adcad693c2d1698' '8d65767ed2b291ccae70d8718f0b7a764632c445' - 'db9c1ce6372e8670f9949d2aaef3d27f8ded32ec' - '6a65e95e9d310b48b3caebc98f323183cef60e0c' - 'b4fe07272789c4cd121bcabbd9e3893acbac39fc' + '6c673021dd67e42a5288e14d53275794e3b7417f' + 'f9daedc7c77b4d4a2670044e634594265f3b1926' '185cd8f6e4ad0b55862720c47f80da9dfa8a82ff' - 'b12b948ca5ee7e02703a13aa8b8bccdf67947f12') + '5e0d67e5548501e20f7ed68a1c57b1789dc1bff3') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i ${srcdir}/inkscape-0.48.4-gc74.patch patch -p1 -i ${srcdir}/inkscape-0.48.4-headers-fix.patch patch -p1 -i ${srcdir}/inkscape-0.48.4-python.patch patch -p1 -i ${srcdir}/inkscape-0.48.4-use-GStatBuf-insted-stat.patch patch -p1 -i ${srcdir}/inkscape-0.48.4-poppler-includes-conflicts.patch - patch -p1 -i ${srcdir}/inkscape-0.48.4-mingw-dont-need-dl.patch patch -p1 -i ${srcdir}/inkscape-0.48.4-win32-relocatable.patch patch -p1 -i ${srcdir}/inkscape-0.48.4-win32-file-dialog.patch patch -p1 -i ${srcdir}/inkscape-0.48.4-python-extensions-location.patch - patch -p1 -i ${srcdir}/ime-placement.patch + patch -p1 -i ${srcdir}/inkscape-0.91-simulaneous-intltool-gettext.patch sed -i 's|/usr/bin/python\>|/usr/bin/python2|g' cxxtest/*.py sed -i 's|/usr/bin/env python\>|/usr/bin/env python2|g' share/*/{test/,}*.py @@ -92,11 +88,10 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --with-python \ - --without-perl \ --enable-lcms \ --enable-poppler-cairo \ --disable-dependency-tracking + make } diff --git a/mingw-w64-inkscape/ime-placement.patch b/mingw-w64-inkscape/ime-placement.patch deleted file mode 100644 index 7f2e13a5ef..0000000000 --- a/mingw-w64-inkscape/ime-placement.patch +++ /dev/null @@ -1,62 +0,0 @@ -diff -aur old/src/text-context.cpp new/src/text-context.cpp ---- old/src/text-context.cpp 2011-07-08 08:25:09.468790000 -1000 -+++ new/src/text-context.cpp 2014-04-21 14:48:22.668759004 -1000 -@@ -684,6 +684,17 @@ - // articifically here, for the text object does not exist yet: - double cursor_height = sp_desktop_get_font_size_tool(desktop); - sp_ctrlline_set_coords(SP_CTRLLINE(tc->cursor), dtp, dtp + Geom::Point(0, cursor_height)); -+ if (tc->imc) { -+ GdkRectangle im_cursor; -+ Geom::Point const top_left = SP_EVENT_CONTEXT(tc)->desktop->get_display_area().corner(3); -+ Geom::Point const cursor_size(0, cursor_height); -+ Geom::Point const im_position = SP_EVENT_CONTEXT(tc)->desktop->d2w(dtp + cursor_size - top_left); -+ im_cursor.x = (int) floor(im_position[Geom::X]); -+ im_cursor.y = (int) floor(im_position[Geom::Y]); -+ im_cursor.width = 0; -+ im_cursor.height = (int) -floor(SP_EVENT_CONTEXT(tc)->desktop->d2w(cursor_size)[Geom::Y]); -+ gtk_im_context_set_cursor_location(tc->imc, &im_cursor); -+ } - event_context->_message_context->set(Inkscape::NORMAL_MESSAGE, _("Type text; Enter to start new line.")); // FIXME:: this is a copy of a string from _update_cursor below, do not desync - - event_context->within_tolerance = false; -@@ -1560,8 +1571,6 @@ - static void - sp_text_context_update_cursor(SPTextContext *tc, bool scroll_to_see) - { -- GdkRectangle im_cursor = { 0, 0, 1, 1 }; -- - // due to interruptible display, tc may already be destroyed during a display update before - // the cursor update (can't do both atomically, alas) - if (!tc->desktop) return; -@@ -1586,10 +1595,17 @@ - sp_ctrlline_set_coords(SP_CTRLLINE(tc->cursor), d0, d1); - - /* fixme: ... need another transformation to get canvas widget coordinate space? */ -- im_cursor.x = (int) floor(d0[Geom::X]); -- im_cursor.y = (int) floor(d0[Geom::Y]); -- im_cursor.width = (int) floor(d1[Geom::X]) - im_cursor.x; -- im_cursor.height = (int) floor(d1[Geom::Y]) - im_cursor.y; -+ if (tc->imc) { -+ GdkRectangle im_cursor = { 0, 0, 1, 1 }; -+ Geom::Point const top_left = SP_EVENT_CONTEXT(tc)->desktop->get_display_area().corner(3); -+ Geom::Point const im_d0 = SP_EVENT_CONTEXT(tc)->desktop->d2w(d0 - top_left); -+ Geom::Point const im_d1 = SP_EVENT_CONTEXT(tc)->desktop->d2w(d1 - top_left); -+ im_cursor.x = (int) floor(im_d0[Geom::X]); -+ im_cursor.y = (int) floor(im_d1[Geom::Y]); -+ im_cursor.width = (int) floor(im_d1[Geom::X]) - im_cursor.x; -+ im_cursor.height = (int) floor(im_d0[Geom::Y]) - im_cursor.y; -+ gtk_im_context_set_cursor_location(tc->imc, &im_cursor); -+ } - - tc->show = TRUE; - tc->phase = 1; -@@ -1631,9 +1647,6 @@ - } - } - -- if (tc->imc) { -- gtk_im_context_set_cursor_location(tc->imc, &im_cursor); -- } - SP_EVENT_CONTEXT(tc)->desktop->emitToolSubselectionChanged((gpointer)tc); - } - diff --git a/mingw-w64-inkscape/inkscape-0.48.4-gc74.patch b/mingw-w64-inkscape/inkscape-0.48.4-gc74.patch deleted file mode 100644 index ba61b9a96c..0000000000 --- a/mingw-w64-inkscape/inkscape-0.48.4-gc74.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Naur inkscape-0.48.4/configure.ac.old inkscape-0.48.4/configure.ac ---- inkscape-0.48.4/configure.ac.orig 2012-12-15 17:50:19.205918190 +0100 -+++ inkscape-0.48.4/configure.ac 2013-12-01 17:33:57.903433873 +0100 -@@ -263,8 +263,8 @@ - # include - #endif - #include -- extern unsigned GC_version; - int main(void){ -+ unsigned GC_version = GC_get_version(); - unsigned min = ((6 << 16) | (4 << 8) | 0); - printf("%d.%d.%d ",GC_version >> 16, (GC_version >> 8) & 0xFF, GC_version & 0xFF); - if (GC_version>=min) return 0; diff --git a/mingw-w64-inkscape/inkscape-0.48.4-mingw-dont-need-dl.patch b/mingw-w64-inkscape/inkscape-0.48.4-mingw-dont-need-dl.patch deleted file mode 100644 index e848f568c6..0000000000 --- a/mingw-w64-inkscape/inkscape-0.48.4-mingw-dont-need-dl.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- inkscape-0.48.4-orig/configure.ac.orig 2012-12-15 20:50:19.205918100 +0400 -+++ inkscape-0.48.4-orig/configure.ac 2014-03-02 10:33:02.384000000 +0400 -@@ -780,7 +780,7 @@ - fi - - dnl Shouldn't we test for libpng and libz? --INKSCAPE_LIBS="$INKSCAPE_LIBS -lpng -lz -lxml2 -ldl" -+INKSCAPE_LIBS="$INKSCAPE_LIBS -lpng -lz -lxml2" - if test "x$openmp_ok" = "xyes"; then - INKSCAPE_LIBS="$INKSCAPE_LIBS -lgomp" - fi diff --git a/mingw-w64-inkscape/inkscape-0.48.4-use-GStatBuf-insted-stat.patch b/mingw-w64-inkscape/inkscape-0.48.4-use-GStatBuf-insted-stat.patch index 8d73081d12..feb7b90f20 100644 --- a/mingw-w64-inkscape/inkscape-0.48.4-use-GStatBuf-insted-stat.patch +++ b/mingw-w64-inkscape/inkscape-0.48.4-use-GStatBuf-insted-stat.patch @@ -1,13 +1,13 @@ --- inkscape-0.48.4-orig/src/color-profile.cpp 2012-02-19 05:41:36.476182000 +0400 +++ inkscape-0.48.4/src/color-profile.cpp 2014-03-02 00:11:22.365600000 +0400 -@@ -6,6 +6,7 @@ - +@@ -13,6 +13,7 @@ + #include #include #include +#include - #include #include + #ifdef DEBUG_LCMS @@ -840,7 +841,7 @@ static bool isIccFile( gchar const *filepath ) { @@ -17,6 +17,17 @@ if ( g_stat(filepath, &st) == 0 && (st.st_size > 128) ) { //0-3 == size //36-39 == 'acsp' 0x61637370 +--- inkscape-0.48.4-orig/src/display/cairo-utils.cpp 2012-02-19 05:41:36.476182000 +0400 ++++ inkscape-0.48.4/src/display/cairo-utils.cpp 2014-03-02 00:11:22.365600000 +0400 +@@ -291,7 +291,7 @@ + if (!g_file_test(fn.c_str(), G_FILE_TEST_EXISTS)) { + return NULL; + } +- struct stat stdir; ++ GStatBuf stdir; + int val = g_stat(fn.c_str(), &stdir); + if (val == 0 && stdir.st_mode & S_IFDIR){ + return NULL; --- inkscape-0.48.4-orig/src/inkscape.cpp 2012-02-19 05:41:36.476182000 +0400 +++ inkscape-0.48.4/src/inkscape.cpp 2014-03-02 00:11:22.365600000 +0400 @@ -339,7 +339,7 @@ @@ -30,52 +41,34 @@ --- inkscape-0.48.4-orig/src/sp-image.cpp 2012-02-19 05:41:36.476182000 +0400 +++ inkscape-0.48.4/src/sp-image.cpp 2014-03-02 00:11:22.365600000 +0400 -@@ -441,7 +441,7 @@ - pixPath = NULL; - } - -- struct stat stdir; -+ GStatBuf stdir; - g_stat(filename, &stdir); - if (stdir.st_mode & S_IFDIR){ - //filename is not correct: it is a directory name and hence further code can not return valid results -@@ -453,7 +453,7 @@ - if ( fp ) - { - { -- struct stat st; -+ GStatBuf st; - memset(&st, 0, sizeof(st)); - int val = g_stat(filename, &st); - if ( !val ) { -@@ -1602,7 +1602,7 @@ - if ( image->href && image->lastMod ) { +@@ -804,7 +804,7 @@ + if ( image->href && image->pixbuf && image->pixbuf->modificationTime()) { // It *might* change - struct stat st; + GStatBuf st; memset(&st, 0, sizeof(st)); - int val = g_stat(image->pixPath, &st); - if ( !val ) { + int val = 0; + if (g_file_test (image->pixbuf->originalPath().c_str(), G_FILE_TEST_EXISTS)){ --- inkscape-0.48.4-orig/src/io/sys.cpp 2012-02-19 05:41:36.476182000 +0400 +++ inkscape-0.48.4/src/io/sys.cpp 2014-03-02 00:11:22.365600000 +0400 -@@ -232,7 +232,7 @@ +@@ -226,7 +226,7 @@ filename = g_filename_from_utf8 ( utf8name, -1, NULL, NULL, NULL ); } if ( filename ) { - struct stat st; + GStatBuf st; - if(g_lstat (filename, &st) == 0) { - success = ((st.st_mode & S_IWRITE) != 0); - } + if (g_file_test (filename, G_FILE_TEST_EXISTS)){ + if (g_lstat (filename, &st) == 0) { + success = ((st.st_mode & S_IWRITE) != 0); --- inkscape-0.48.4-orig/src/ui/dialog/filedialogimpl-gtkmm.cpp 2012-02-19 05:41:36.476182000 +0400 +++ inkscape-0.48.4/src/ui/dialog/filedialogimpl-gtkmm.cpp 2014-03-02 00:11:22.365600000 +0400 @@ -513,7 +513,7 @@ - { Glib::ustring fileNameUtf8 = Glib::filename_to_utf8(fileName); - gchar *fName = (gchar *)fileNameUtf8.c_str(); + gchar *fName = const_cast( + fileNameUtf8.c_str()); // const-cast probably not necessary? (not necessary on Windows version of stat()) - struct stat info; + GStatBuf info; - if (g_stat(fName, &info)) - { - g_warning("SVGPreview::set() : %s : %s", + if (g_stat(fName, &info)) // stat returns 0 upon success + { + g_warning("SVGPreview::set() : %s : %s", fName, strerror(errno)); diff --git a/mingw-w64-inkscape/inkscape-0.48.4-win32-file-dialog.patch b/mingw-w64-inkscape/inkscape-0.48.4-win32-file-dialog.patch index 0fd852345f..65b0e45169 100644 --- a/mingw-w64-inkscape/inkscape-0.48.4-win32-file-dialog.patch +++ b/mingw-w64-inkscape/inkscape-0.48.4-win32-file-dialog.patch @@ -5,6 +5,6 @@ #include #include +#include + #include #include - //Inkscape includes diff --git a/mingw-w64-inkscape/inkscape-0.48.4-win32-relocatable.patch b/mingw-w64-inkscape/inkscape-0.48.4-win32-relocatable.patch index d0a5b53b6f..69295d9ac2 100644 --- a/mingw-w64-inkscape/inkscape-0.48.4-win32-relocatable.patch +++ b/mingw-w64-inkscape/inkscape-0.48.4-win32-relocatable.patch @@ -151,10 +151,11 @@ Glib::ustring dir = win32_getDataDir(); --- inkscape-0.48.4-orig/src/path-prefix.h.orig 2014-03-04 07:02:21.005800000 +0400 +++ inkscape-0.48.4-orig/src/path-prefix.h 2014-03-04 07:04:57.427800000 +0400 -@@ -43,20 +43,20 @@ +@@ -43,22 +43,22 @@ #else # ifdef WIN32 # define INKSCAPE_APPICONDIR WIN32_DATADIR("pixmaps") +-# define INKSCAPE_ATTRRELDIR WIN32_DATADIR("share\\attributes") -# define INKSCAPE_BINDDIR WIN32_DATADIR("share\\bind") -# define INKSCAPE_EXAMPLESDIR WIN32_DATADIR("share\\examples") -# define INKSCAPE_EXTENSIONDIR WIN32_DATADIR("share\\extensions") @@ -166,9 +167,11 @@ -# define INKSCAPE_PALETTESDIR WIN32_DATADIR("share\\palettes") -# define INKSCAPE_PATTERNSDIR WIN32_DATADIR("share\\patterns") -# define INKSCAPE_SCREENSDIR WIN32_DATADIR("share\\screens") +-# define INKSCAPE_SYMBOLSDIR WIN32_DATADIR("share\\symbols") -# define INKSCAPE_TUTORIALSDIR WIN32_DATADIR("share\\tutorials") -# define INKSCAPE_TEMPLATESDIR WIN32_DATADIR("share\\templates") -# define INKSCAPE_UIDIR WIN32_DATADIR("share\\ui") ++# define INKSCAPE_ATTRRELDIR WIN32_DATADIR("inkscape\\attributes") +# define INKSCAPE_BINDDIR WIN32_DATADIR("inkscape\\bind") +# define INKSCAPE_EXAMPLESDIR WIN32_DATADIR("inkscape\\examples") +# define INKSCAPE_EXTENSIONDIR WIN32_DATADIR("inkscape\\extensions") @@ -180,37 +183,10 @@ +# define INKSCAPE_PALETTESDIR WIN32_DATADIR("inkscape\\palettes") +# define INKSCAPE_PATTERNSDIR WIN32_DATADIR("inkscape\\patterns") +# define INKSCAPE_SCREENSDIR WIN32_DATADIR("inkscape\\screens") ++# define INKSCAPE_SYMBOLSDIR WIN32_DATADIR("inkscape\\symbols") +# define INKSCAPE_TUTORIALSDIR WIN32_DATADIR("inkscape\\tutorials") +# define INKSCAPE_TEMPLATESDIR WIN32_DATADIR("inkscape\\templates") +# define INKSCAPE_UIDIR WIN32_DATADIR("inkscape\\ui") //CREATE V0.1 WIN32 support # define CREATE_GRADIENTSDIR WIN32_DATADIR("create\\gradients\\gimp") # define CREATE_PALETTESDIR WIN32_DATADIR("create\\swatches") ---- inkscape-0.48.4-orig/src/ui/dialog/inkscape-preferences.cpp.orig 2012-12-13 21:00:46.726633000 +0400 -+++ inkscape-0.48.4-orig/src/ui/dialog/inkscape-preferences.cpp 2014-03-04 11:54:58.192400000 +0400 -@@ -1392,7 +1392,11 @@ - tmp += "\n"; - - tmp += _("DATA: "); -+#ifdef WIN32 -+ tmp += WIN32_DATADIR(""); -+#else - tmp += INKSCAPE_DATADIR; -+#endif - tmp += "\n"; - - tmp += _("UI: "); ---- inkscape-0.48.4-orig/src/util/units.cpp.orig 2011-07-08 22:25:09.468790000 +0400 -+++ inkscape-0.48.4-orig/src/util/units.cpp 2014-03-04 12:00:07.741400000 +0400 -@@ -147,7 +147,11 @@ - if (f == NULL) { - g_warning("Could not open units file '%s': %s\n", - filename.c_str(), strerror(errno)); -+#ifdef WIN32 -+ g_warning("* INKSCAPE_DATADIR is: '%s'\n", WIN32_DATADIR("")); -+#else - g_warning("* INKSCAPE_DATADIR is: '%s'\n", INKSCAPE_DATADIR); -+#endif - g_warning("* INKSCAPE_UIDIR is: '%s'\n", INKSCAPE_UIDIR); - return false; - } diff --git a/mingw-w64-inkscape/inkscape-0.91-simulaneous-intltool-gettext.patch b/mingw-w64-inkscape/inkscape-0.91-simulaneous-intltool-gettext.patch new file mode 100644 index 0000000000..d00a74f91e --- /dev/null +++ b/mingw-w64-inkscape/inkscape-0.91-simulaneous-intltool-gettext.patch @@ -0,0 +1,14 @@ +--- inkscape-0.91pre4/configure.ac.orig 2015-01-19 00:13:59.663800000 +0300 ++++ inkscape-0.91pre4/configure.ac 2015-01-19 00:15:21.608600000 +0300 +@@ -211,10 +211,7 @@ + dnl ****************************** + dnl Gettext stuff + dnl ****************************** +-IT_PROG_INTLTOOL([0.40.0]) +- +-AM_GNU_GETTEXT_VERSION([0.17]) +-AM_GNU_GETTEXT([external]) ++IT_PROG_INTLTOOL([0.50.0]) + + GETTEXT_PACKAGE="AC_PACKAGE_NAME" + AC_SUBST(GETTEXT_PACKAGE) From 4b4e0a1c4cc70736482ea32770aa6a901e593048 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 19 Jan 2015 14:54:09 +0300 Subject: [PATCH 0385/2060] nuitka: New package. --- mingw-w64-python-nuitka/PKGBUILD | 93 ++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 mingw-w64-python-nuitka/PKGBUILD diff --git a/mingw-w64-python-nuitka/PKGBUILD b/mingw-w64-python-nuitka/PKGBUILD new file mode 100644 index 0000000000..8a906f68b5 --- /dev/null +++ b/mingw-w64-python-nuitka/PKGBUILD @@ -0,0 +1,93 @@ +# Maintainer: Alexey Pavlov + +_realname=nuitka +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=0.5.8 +pkgrel=1 +pkgdesc="Python to native compiler (mingw-w64)" +arch=('any') +license=('APACHE') +url="http://www.nuitka.net/" +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") +source=("http://nuitka.net/releases/Nuitka-$pkgver.tar.gz") +noextract=(Nuitka-$pkgver.tar.gz) +md5sums=('48fa615a6266ed6a267a82c1e0523f2c') + +prepare() { + [ -d $srcdir/${_realname}-$pkgver ] && rm -rf $srcdir/${_realname}-$pkgver + tar -xzvf ${startdir}/${_realname}-${pkgver}.tar.gz -C $srcdir || \ + tar -xzvf ${startdir}/${_realname}-${pkgver}.tar.gz -C $srcdir +} + +build() { + cd "$srcdir" + rm -rf python{2,3}-build + for builddir in python{2,3}-build; do + cp -r Nuitka-$pkgver $builddir + pushd $builddir + ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build + popd + done +} + +package_python3-nuitka() { + depends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools") + + pushd ${MINGW_PREFIX} > /dev/null + local _mingw_prefix=`pwd -W` + popd > /dev/null + + cd "$srcdir/python3-build" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + + pushd "${pkgdir}${MINGW_PREFIX}"/bin > /dev/null + for filename in nuitka nuitka-run; do + sed -e "s|...\python|python3|g" \ + -i "${pkgdir}${MINGW_PREFIX}"/bin/${filename}.bat + done + popd > /dev/null + +} + +package_python2-nuitka() { + depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools") + + pushd ${MINGW_PREFIX} > /dev/null + local _mingw_prefix=`pwd -W` + popd > /dev/null + + cd "$srcdir/python2-build" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + + pushd "${pkgdir}${MINGW_PREFIX}"/bin > /dev/null + for filename in nuitka nuitka-run; do + sed -e "s|...\python|python2|g" \ + -e "s|${filename}|${filename}2|g" \ + -i "${pkgdir}${MINGW_PREFIX}"/bin/${filename}.bat + + sed -e "s|...\python|python2|g" \ + -e "s|${filename}|${filename}2|g" \ + -i "${pkgdir}${MINGW_PREFIX}"/bin/${filename} + mv "${pkgdir}${MINGW_PREFIX}"/bin/${filename} "${pkgdir}${MINGW_PREFIX}"/bin/${filename}2 + mv "${pkgdir}${MINGW_PREFIX}"/bin/${filename}.bat "${pkgdir}${MINGW_PREFIX}"/bin/${filename}2.bat + done + popd > /dev/null +} + +package_mingw-w64-i686-python2-nuitka() { + package_python2-nuitka +} + +package_mingw-w64-i686-python3-nuitka() { + package_python3-nuitka +} + +package_mingw-w64-x86_64-python2-nuitka() { + package_python2-nuitka +} + +package_mingw-w64-x86_64-python3-nuitka() { + package_python3-nuitka +} From caf64dacf4ec85aa953e64450682b35150616e92 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 19 Jan 2015 16:15:25 +0300 Subject: [PATCH 0386/2060] ag: Fix building. --- mingw-w64-ag/001-mingw-build.patch | 61 ++++++++++++++++++++++++++++++ mingw-w64-ag/PKGBUILD | 18 ++++++--- 2 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-ag/001-mingw-build.patch diff --git a/mingw-w64-ag/001-mingw-build.patch b/mingw-w64-ag/001-mingw-build.patch new file mode 100644 index 0000000000..5796ef9a55 --- /dev/null +++ b/mingw-w64-ag/001-mingw-build.patch @@ -0,0 +1,61 @@ +--- the_silver_searcher-0.27.0/configure.ac.orig 2015-01-19 15:22:41.877800000 +0300 ++++ the_silver_searcher-0.27.0/configure.ac 2015-01-19 15:22:45.902600000 +0300 +@@ -50,6 +50,14 @@ + + AC_CHECK_FUNCS(fgetln getline realpath strlcpy strndup vasprintf madvise posix_fadvise) + ++case "$host" in ++ *-*-mingw*) ++ LIBS="$LIBS -lshlwapi" ++ ;; ++ *) ++ ;; ++esac ++ + AC_CONFIG_FILES([Makefile the_silver_searcher.spec]) + AC_CONFIG_HEADERS([src/config.h]) + +--- the_silver_searcher-0.27.0/src/util.c.orig 2015-01-19 15:24:40.718600000 +0300 ++++ the_silver_searcher-0.27.0/src/util.c 2015-01-19 15:24:43.058600000 +0300 +@@ -9,6 +9,7 @@ + #include "config.h" + + #ifdef _WIN32 ++#include + #define flockfile(x) + #define funlockfile(x) + #define getc_unlocked(x) getc(x) +--- the_silver_searcher-0.27.0/src/print.c.orig 2015-01-19 15:46:04.745600000 +0300 ++++ the_silver_searcher-0.27.0/src/print.c 2015-01-19 15:55:36.813200000 +0300 +@@ -34,9 +34,9 @@ + print_path(path, ':'); + } + if (opts.color) { +- fprintf(out_fd, "%s%lu%s%c", opts.color_line_number, count, color_reset, sep); ++ fprintf(out_fd, "%s%zu%s%c", opts.color_line_number, count, color_reset, sep); + } else { +- fprintf(out_fd, "%lu%c", count, sep); ++ fprintf(out_fd, "%zu%c", count, sep); + } + } + +@@ -149,8 +149,8 @@ + print_line_number(line, ';'); + for (; last_printed_match < cur_match; last_printed_match++) { + fprintf(out_fd, "%lu %lu", +- (matches[last_printed_match].start - prev_line_offset), +- (matches[last_printed_match].end - matches[last_printed_match].start)); ++ (unsigned long)(matches[last_printed_match].start - prev_line_offset), ++ ((unsigned long)matches[last_printed_match].end - matches[last_printed_match].start)); + last_printed_match == cur_match - 1 ? fputc(':', out_fd) : fputc(',', out_fd); + } + print_line(buf, i, prev_line_offset); +@@ -243,7 +243,7 @@ + void print_column_number(const match_t matches[], size_t last_printed_match, + size_t prev_line_offset, const char sep) { + fprintf(out_fd, "%lu%c", +- (matches[last_printed_match].start - prev_line_offset) + 1, ++ (unsigned long)((matches[last_printed_match].start - prev_line_offset) + 1), + sep); + } + diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index 2073104f9f..b1bedce1ec 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -10,13 +10,17 @@ arch=('any') url="http://geoff.greer.fm/ag" license=("Apache") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-pcre") +depends=("${MINGW_PACKAGE_PREFIX}-pcre" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-zlib") options=('strip' 'staticlibs') -source=(http://geoff.greer.fm/ag/releases/$_longname-$pkgver.tar.gz) -md5sums=('SKIP') +source=(http://geoff.greer.fm/ag/releases/$_longname-$pkgver.tar.gz + 001-mingw-build.patch) +md5sums=('56ba98da4298e9db1929f34ca05b1627' + '0dbfdf4ddba43446de0f4941844dfcfd') prepare() { cd "${srcdir}/${_longname}-${pkgver}" + patch -p1 -i ${srcdir}/001-mingw-build.patch + autoreconf -fi } @@ -25,14 +29,16 @@ build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ../${_longname}-${pkgver}/configure \ + ../${_longname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} + + make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="${pkgdir}" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } From f9fcb016e7a75a048f28ceadb65203183ca02e6d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 19 Jan 2015 20:12:29 +0300 Subject: [PATCH 0387/2060] libvpx: Rebuild. --- mingw-w64-libvpx/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libvpx/PKGBUILD b/mingw-w64-libvpx/PKGBUILD index c19498dd53..aea4082742 100644 --- a/mingw-w64-libvpx/PKGBUILD +++ b/mingw-w64-libvpx/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libvpx - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.0 -pkgrel=4 +pkgrel=5 pkgdesc="The VP8 Codec SDK (mingw-w64)" arch=('any') license=('BSD') @@ -42,7 +41,7 @@ prepare() { patch -Np1 -i ${srcdir}/0005-fix-exports.mingw.patch patch -Np1 -i ${srcdir}/0006-instll-implib.mingw.patch #patch -Np1 -i ${srcdir}/0007-fix-mingw-w64-strtok.mingw.patch - patch -Np1 -i ${srcdir}/0007-winxp-dont-have-strtok_s.patch + #patch -Np1 -i ${srcdir}/0007-winxp-dont-have-strtok_s.patch patch -Np1 -i ${srcdir}/0008-fix-ln-on-install.mingw.patch } @@ -63,6 +62,7 @@ build() { --enable-postproc \ --enable-pic \ --enable-shared \ + --enable-static \ --disable-examples \ --disable-docs \ --disable-install-docs \ From fa036abf9442d18cc20cef5244ff8ddf52f94a4c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 19 Jan 2015 20:27:32 +0300 Subject: [PATCH 0388/2060] libtheora: Fix building. --- mingw-w64-libtheora/001-example.patch | 24 ++++++++++++++++++++++++ mingw-w64-libtheora/PKGBUILD | 17 ++++++++++------- 2 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-libtheora/001-example.patch diff --git a/mingw-w64-libtheora/001-example.patch b/mingw-w64-libtheora/001-example.patch new file mode 100644 index 0000000000..49bec25a04 --- /dev/null +++ b/mingw-w64-libtheora/001-example.patch @@ -0,0 +1,24 @@ +--- libtheora-1.1.1/examples/encoder_example.c.orig 2015-01-19 20:00:34.333600000 +0300 ++++ libtheora-1.1.1/examples/encoder_example.c 2015-01-19 20:02:00.570400000 +0300 +@@ -47,11 +47,12 @@ + #include "vorbis/codec.h" + #include "vorbis/vorbisenc.h" + +-#ifdef _WIN32 ++#if defined(_WIN32) + /*supply missing headers and functions to Win32. going to hell, I know*/ + #include + #include + ++#if !defined(__MINGW64_VERSION_MAJOR) + static double rint(double x) + { + if (x < 0.0) +@@ -60,6 +61,7 @@ + return (double)(int)(x + 0.5); + } + #endif ++#endif + + const char *optstring = "b:e:o:a:A:v:V:s:S:f:F:ck:d:z:\1\2\3\4"; + struct option options [] = { diff --git a/mingw-w64-libtheora/PKGBUILD b/mingw-w64-libtheora/PKGBUILD index 52e29de622..9341b08414 100644 --- a/mingw-w64-libtheora/PKGBUILD +++ b/mingw-w64-libtheora/PKGBUILD @@ -1,26 +1,30 @@ # Maintainer: Alexey Pavlov _realname=libtheora - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.1 -pkgrel=1 +pkgrel=2 pkgdesc="An open video codec developed by the Xiph.org (mingw-w64)" arch=('any') url="http://xiph.org" license=('BSD') -depends=("${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-libogg" "${MINGW_PACKAGE_PREFIX}-libvorbis" "${MINGW_PACKAGE_PREFIX}-SDL" "${MINGW_PACKAGE_PREFIX}-libpng") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +depends=("${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libogg" + "${MINGW_PACKAGE_PREFIX}-libvorbis") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-SDL") source=("http://downloads.xiph.org/releases/theora/${_realname}-${pkgver}.tar.bz2" - libtheora-1.1.1-libpng16.patch) + libtheora-1.1.1-libpng16.patch + 001-example.patch) md5sums=('292ab65cedd5021d6b7ddd117e07cd8e' - '08edd81c7a1be2c4edfd2cd3c112a8c6') + '08edd81c7a1be2c4edfd2cd3c112a8c6' + '79cb71a82524a9b574ad403c65d9f06d') prepare() { cd ${srcdir}/${_realname}-${pkgver} sed -i "s,EXPORTS,," "win32/xmingw32/libtheoradec-all.def" sed -i "s,EXPORTS,," "win32/xmingw32/libtheoraenc-all.def" patch -p0 -i ${srcdir}/libtheora-1.1.1-libpng16.patch + patch -p1 -i ${srcdir}/001-example.patch } build() { @@ -38,5 +42,4 @@ build() { package() { cd "$srcdir/build-$MINGW_CHOST" make install DESTDIR="${pkgdir}" - #rm -r "${pkgdir}${MINGW_PREFIX}/share" } From d14912c1d92a2d5b22ca5651fd2b8bd948d9c74a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 20 Jan 2015 01:13:08 +0300 Subject: [PATCH 0389/2060] libtool: Update to 2.4.5 --- mingw-w64-libtool/PKGBUILD | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libtool/PKGBUILD b/mingw-w64-libtool/PKGBUILD index c90b23a610..cc1a553f98 100644 --- a/mingw-w64-libtool/PKGBUILD +++ b/mingw-w64-libtool/PKGBUILD @@ -2,7 +2,7 @@ _realname=libtool pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.4.4 +pkgver=2.4.5 pkgrel=1 pkgdesc="A system independent dlopen wrapper for GNU libtool (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ source=("http://ftp.gnu.org/pub/gnu/libtool/libtool-${pkgver}.tar.xz"{,.sig} 0005-Fix-seems-to-be-moved.patch 0006-Fix-strict-ansi-vs-posix.patch 0007-fix-cr-for-awk-in-configure.all.patch) -md5sums=('51bf400de3354687d68dfa2392506b7e' +md5sums=('ee9c087775aeb98ce53a9c69da865a55' 'SKIP' '091163f2cc8c2dd8c8d5574181eb53e1' '2396f4f169edb316d8d076897ff03347' @@ -49,4 +49,3 @@ package() { cd "${srcdir}/build-${CARCH}" make DESTDIR="$pkgdir" install } - From 5c1ef2cb10fe8c5612828c563a6262139b15c4c8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 20 Jan 2015 12:43:54 +0300 Subject: [PATCH 0390/2060] scite: Update to 3.5.3 --- mingw-w64-scite/PKGBUILD | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index 2fd4ccca49..ed1d06bffb 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -1,20 +1,19 @@ # Maintainer: David Macek _realname=scite - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" - "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") -pkgver=3.5.2 + "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") +pkgver=3.5.3 pkgrel=1 arch=('any') url='http://www.scintilla.org/SciTE.html' license=('custom:scite') source=("http://downloads.sourceforge.net/scintilla/${_realname}${pkgver//./}.tgz" "0001-makefiles.patch" - "0002-paths.patch") -md5sums=('2c1a313dc885033988cc98930586b270' + "0002-paths.patch") +md5sums=('44df4b3e25d346189ddc688c689dcf05' '886216497dad9a1d54cedbf436cf110f' - 'ce2853918be638ec465fe314484f3af6') + 'ce2853918be638ec465fe314484f3af6') prepare() { cd "${srcdir}" @@ -67,7 +66,7 @@ package_mingw-w64-scite() { } package_mingw-w64-scite-defaults() { - pkgdesc='Default language files for the SciTE editor (mingw-w64)' + pkgdesc='Default language files for the SciTE editor (mingw-w64)' depends=("${MINGW_PACKAGE_PREFIX}-${_realname}") cd "${srcdir}"/build-${CARCH} From f27960d9ad9294a562c5a32bcc9e1b0bc56a8437 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 20 Jan 2015 12:44:49 +0300 Subject: [PATCH 0391/2060] silc-toolkit: Rebuild with libsystre --- mingw-w64-silc-toolkit/PKGBUILD | 80 +++++++++++++++------------------ 1 file changed, 37 insertions(+), 43 deletions(-) diff --git a/mingw-w64-silc-toolkit/PKGBUILD b/mingw-w64-silc-toolkit/PKGBUILD index 10349687bf..eb8fc1bd4d 100644 --- a/mingw-w64-silc-toolkit/PKGBUILD +++ b/mingw-w64-silc-toolkit/PKGBUILD @@ -1,18 +1,17 @@ # Maintainer: Renato Silva # Contributor: David Macek -_name=silc-toolkit +_realname=silc-toolkit +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) +pkgver=1.1.12 +pkgrel=2 url="http://http://silcnet.org" pkgdesc="Secure Internet Live Conferencing (mingw-w64)" -license=(GPL2 BSD) -arch=(any) -pkgver=1.1.12 -pkgrel=1 - -pkgname=(${MINGW_PACKAGE_PREFIX}-${_name}) -depends=(${MINGW_PACKAGE_PREFIX}-libgnurx) +license=('GPL2' 'BSD') +arch=('any') +depends=(${MINGW_PACKAGE_PREFIX}-libsystre) makedepends=(${MINGW_PACKAGE_PREFIX}-gcc) - +options=('staticlibs' '!emptydirs') source=("https://downloads.sourceforge.net/project/silc/silc/toolkit/sources/silc-toolkit-${pkgver}.tar.gz" 001-remove-outdated-mno-cygwin-gcc-option.patch 002-fixes-for-64-bit.patch @@ -20,47 +19,42 @@ source=("https://downloads.sourceforge.net/project/silc/silc/toolkit/sources/sil 004-link-with-regex-and-silc.patch 005-fix-some-compiler-check.patch 006-disable-dllimport-for-silcske.patch) - -md5sums=(321536224d4dee2423a3fd05af651eff - f726a755bdd53473cbf8721e7f948714 - 9df1cb6241c269a194cb4ef6b2bc0504 - 2bf45e2323f154aa8b56c4465e83f144 - d8099a0d6e97bc790d587a4a12f380cd - 58509bbd8c6070845e22ebabec3e957a - 914cb7a97cd8dcbff35e84090a840536) +md5sums=('321536224d4dee2423a3fd05af651eff' + 'f726a755bdd53473cbf8721e7f948714' + '9df1cb6241c269a194cb4ef6b2bc0504' + '2bf45e2323f154aa8b56c4465e83f144' + 'd8099a0d6e97bc790d587a4a12f380cd' + '58509bbd8c6070845e22ebabec3e957a' + '914cb7a97cd8dcbff35e84090a840536') prepare() { - cd "$srcdir/${_name}-${pkgver}" - patch -p1 < "${startdir}"/001-remove-outdated-mno-cygwin-gcc-option.patch - patch -p1 < "${startdir}"/002-fixes-for-64-bit.patch - patch -p1 < "${startdir}"/003-fix-references-to-slash-usr.patch - patch -p1 < "${startdir}"/004-link-with-regex-and-silc.patch - patch -p1 < "${startdir}"/005-fix-some-compiler-check.patch - patch -p1 < "${startdir}"/006-disable-dllimport-for-silcske.patch - autoreconf -sif + cd "$srcdir/${_realname}-${pkgver}" + patch -p1 < "${startdir}"/001-remove-outdated-mno-cygwin-gcc-option.patch + patch -p1 < "${startdir}"/002-fixes-for-64-bit.patch + patch -p1 < "${startdir}"/003-fix-references-to-slash-usr.patch + patch -p1 < "${startdir}"/004-link-with-regex-and-silc.patch + patch -p1 < "${startdir}"/005-fix-some-compiler-check.patch + patch -p1 < "${startdir}"/006-disable-dllimport-for-silcske.patch + autoreconf -sif } build() { - cd "$srcdir/${_name}-${pkgver}" - ./configure \ - --prefix=${MINGW_PREFIX} \ - --with-simdir=${MINGW_PREFIX}/lib/silc/modules \ - --with-win32 - make + cd "$srcdir/${_realname}-${pkgver}" + ./configure \ + --prefix=${MINGW_PREFIX} \ + --with-simdir=${MINGW_PREFIX}/lib/silc/modules \ + --with-win32 + make } package() { - cd "$srcdir/${_name}-${pkgver}" - make DESTDIR="${pkgdir}" install + cd "$srcdir/${_realname}-${pkgver}" + make DESTDIR="${pkgdir}" install - # License - cd "${pkgdir}${MINGW_PREFIX}/share" - mkdir -p licenses/${_name} - mv -v doc/${_name}/COPYING licenses/${_name}/COPYING - mv -v doc/${_name}/GPL licenses/${_name}/GPL - mv -v doc/${_name}/BSD licenses/${_name}/BSD - - # Remove empty modules directory - cd "${pkgdir}${MINGW_PREFIX}/lib" - rmdir silc/modules silc + # License + cd "${pkgdir}${MINGW_PREFIX}/share" + mkdir -p licenses/${_realname} + mv -v doc/${_realname}/COPYING licenses/${_realname}/COPYING + mv -v doc/${_realname}/GPL licenses/${_realname}/GPL + mv -v doc/${_realname}/BSD licenses/${_realname}/BSD } From 754eb30fecc05e1b9905ebfff4fff07bfd2c7883 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 20 Jan 2015 16:23:26 +0300 Subject: [PATCH 0392/2060] openjpeg: Build static library too. --- mingw-w64-openjpeg/PKGBUILD | 62 +++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/mingw-w64-openjpeg/PKGBUILD b/mingw-w64-openjpeg/PKGBUILD index 234fa6c9a0..26186eae08 100644 --- a/mingw-w64-openjpeg/PKGBUILD +++ b/mingw-w64-openjpeg/PKGBUILD @@ -1,25 +1,27 @@ # Maintainer: Alexey Pavlov _realname=openjpeg - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.5.2 -pkgrel=1 +pkgrel=2 pkgdesc="An open source JPEG 2000 codec (mingw-w64)" arch=('any') url="http://www.openjpeg.org" license=("BSD") -depends=("${MINGW_PACKAGE_PREFIX}-lcms2" "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-zlib") +depends=("${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("dos2unix" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('staticlibs' 'strip') source=(http://sourceforge.net/projects/openjpeg.mirror/files/${_realname}-${pkgver}.tar.gz - "cdecl.patch" - "openjpeg-1.5.1_tiff-pkgconfig.patch" - mingw-install-pkgconfig-files.patch - versioned-dlls-mingw.patch) + "cdecl.patch" + "openjpeg-1.5.1_tiff-pkgconfig.patch" + "mingw-install-pkgconfig-files.patch" + "versioned-dlls-mingw.patch") md5sums=('c41772c30fb1c272358b3707233134a1' '673edf457f9b4f3fdc9a083e1857a76a' @@ -41,36 +43,50 @@ prepare() { } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - - [[ -d $srcdir/build-${MINGW_CHOST} ]] && rm -rf $srcdir/build-${MINGW_CHOST} - mkdir $srcdir/build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} + msg "Build shared version..." + [[ -d $srcdir/build-shared-${MINGW_CHOST} ]] && rm -rf $srcdir/build-shared-${MINGW_CHOST} + mkdir $srcdir/build-shared-${MINGW_CHOST} + cd $srcdir/build-shared-${MINGW_CHOST} ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TESTING:BOOL=ON \ - -DCMAKE_SYSTEM_PREFIX_PATH=${PREFIX_DEPS} \ + -DCMAKE_SYSTEM_PREFIX_PATH=${MINGW_PREFIX} \ -DOPENJPEG_INSTALL_SUBDIR="openjpeg/${ver}" \ -DBUILD_MJ2=ON \ -DBUILD_JPWL=ON \ -DBUILD_JPIP=ON \ ../${_realname}-$pkgver make + + msg "Build static version..." + [[ -d $srcdir/build-static-${MINGW_CHOST} ]] && rm -rf $srcdir/build-static-${MINGW_CHOST} + mkdir $srcdir/build-static-${MINGW_CHOST} + cd $srcdir/build-static-${MINGW_CHOST} + + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_TESTING:BOOL=OFF \ + -DCMAKE_SYSTEM_PREFIX_PATH=${MINGW_PREFIX} \ + -DOPENJPEG_INSTALL_SUBDIR="openjpeg/${ver}" \ + -DBUILD_MJ2=ON \ + -DBUILD_JPWL=ON \ + -DBUILD_JPIP=OFF \ + -DBUILD_SHARED_LIBS=OFF \ + ../${_realname}-$pkgver + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make install # DESTDIR="$pkgdir" + cd "$srcdir/build-static-${MINGW_CHOST}" + make install + + cd "$srcdir/build-shared-${MINGW_CHOST}" + make install mkdir -p ${pkgdir}${MINGW_PREFIX} pushd ${pkgdir}${MINGW_PREFIX} > /dev/null From 40375f8b2e551fc9d8ae81aac07a7cbd88bbc434 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 20 Jan 2015 19:42:03 +0000 Subject: [PATCH 0393/2060] libusb-compat-git: Added Needed by openocd --- .../0001-Add-some-missing-definitions.patch | 46 ++++++++++++++++ .../0002-Add-no-undefined-to-LDFLAGS.patch | 25 +++++++++ mingw-w64-libusb-compat-git/PKGBUILD | 55 +++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch create mode 100644 mingw-w64-libusb-compat-git/0002-Add-no-undefined-to-LDFLAGS.patch create mode 100644 mingw-w64-libusb-compat-git/PKGBUILD diff --git a/mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch b/mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch new file mode 100644 index 0000000000..8910efc5a7 --- /dev/null +++ b/mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch @@ -0,0 +1,46 @@ +From 16788fd21127cf100c2b3fbd9d03e48c900d0ce8 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 20 Jan 2015 19:29:55 +0000 +Subject: [PATCH 1/2] Add some missing definitions + +Needed for Win32 +--- + libusb/core.c | 4 ++++ + libusb/usb.h | 6 ++++++ + 2 files changed, 10 insertions(+) + +diff --git a/libusb/core.c b/libusb/core.c +index e6e500b..b1439d8 100644 +--- a/libusb/core.c ++++ b/libusb/core.c +@@ -31,6 +31,10 @@ + #include "usb.h" + #include "usbi.h" + ++#ifndef ENODATA ++#define ENODATA EIO ++#endif ++ + static libusb_context *ctx = NULL; + static int usb_debug = 0; + +diff --git a/libusb/usb.h b/libusb/usb.h +index 84e730f..bd805a2 100644 +--- a/libusb/usb.h ++++ b/libusb/usb.h +@@ -31,6 +31,12 @@ + + #include + ++#ifndef u_int8_t ++typedef uint8_t u_int8_t; ++typedef uint16_t u_int16_t; ++typedef uint32_t u_int32_t; ++#endif ++ + /* + * USB spec information + * +-- +2.2.2 + diff --git a/mingw-w64-libusb-compat-git/0002-Add-no-undefined-to-LDFLAGS.patch b/mingw-w64-libusb-compat-git/0002-Add-no-undefined-to-LDFLAGS.patch new file mode 100644 index 0000000000..d9cb76cc88 --- /dev/null +++ b/mingw-w64-libusb-compat-git/0002-Add-no-undefined-to-LDFLAGS.patch @@ -0,0 +1,25 @@ +From b83c4f52c0fcab3c3a90b8b984a6b0856cba191b Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 20 Jan 2015 19:30:30 +0000 +Subject: [PATCH 2/2] Add -no-undefined to LDFLAGS + +As otherwise libtool won't build Win32 DLLs +--- + libusb/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libusb/Makefile.am b/libusb/Makefile.am +index 33a609a..3c4bb47 100644 +--- a/libusb/Makefile.am ++++ b/libusb/Makefile.am +@@ -4,6 +4,6 @@ lib_LTLIBRARIES = libusb.la + libusb_la_SOURCES = core.c usbi.h + libusb_la_CFLAGS = -fvisibility=hidden $(AM_CFLAGS) $(LIBUSB_1_0_CFLAGS) + libusb_la_LIBADD = $(LIBUSB_1_0_LIBS) +-libusb_la_LDFLAGS = -version-info $(LT_MAJOR):$(LT_REVISION):$(LT_AGE) \ ++libusb_la_LDFLAGS = -no-undefined -version-info $(LT_MAJOR):$(LT_REVISION):$(LT_AGE) \ + -release 0.1 + +-- +2.2.2 + diff --git a/mingw-w64-libusb-compat-git/PKGBUILD b/mingw-w64-libusb-compat-git/PKGBUILD new file mode 100644 index 0000000000..3acf5a0a88 --- /dev/null +++ b/mingw-w64-libusb-compat-git/PKGBUILD @@ -0,0 +1,55 @@ +# Maintainer: Andrew Leech +# Contributor: Ray Donnelly + +_realname=libusb-compat-0.1 +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=r60.072a5e4 +pkgrel=1 +pkgdesc="libusb provides generic access to USB devices (mingw-w64)" +arch=('any') +url="http://libusb.info" +depends=(${MINGW_PACKAGE_PREFIX}-libusb) +options=('staticlibs') +makedepends=("git" + "pkgconfig" + "m4") +source=(git+https://github.com/libusb/libusb-compat-0.1.git + 0001-Add-some-missing-definitions.patch + 0002-Add-no-undefined-to-LDFLAGS.patch) +md5sums=('SKIP' + '568ddc63b0e3f24bcbae37367261007c' + '1446f870923cd037c59a44d203657ca7') + +pkgver() { + cd "${srcdir}/${_realname}" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}/${_realname}" + git am ${srcdir}/0001-Add-some-missing-definitions.patch + git am ${srcdir}/0002-Add-no-undefined-to-LDFLAGS.patch + + ./bootstrap.sh +} + +build() { + [ -d ${srcdir}/build-${CARCH} ] && rm -rf ${srcdir}/build-${CARCH} + mkdir -p ${srcdir}/build-${CARCH} + cd ${srcdir}/build-${CARCH} + + local -a myconf + myconf+=(--prefix=${MINGW_PREFIX} + --{host,build}=${MINGW_CHOST} + --disable-dependency-tracking + --enable-static + --enable-shared) + echo "../${_realname}/configure ${myconf[@]}" + ../${_realname}/configure ${myconf[@]} + make +} + +package() { + cd "${srcdir}/build-${CARCH}" + make DESTDIR="${pkgdir}" install +} From 29f02d24da78e9b14d73db29dd343d4730cd31e5 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 20 Jan 2015 19:42:21 +0000 Subject: [PATCH 0394/2060] openocd-git: Added --- ...fine-WIN32_LEAN_AND_MEAN-in-config.h.patch | 46 +++++++++++ ...-libusb-1.0-after-libusb-0.1-to-fix-.patch | 34 +++++++++ mingw-w64-openocd-git/PKGBUILD | 76 +++++++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 mingw-w64-openocd-git/0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch create mode 100644 mingw-w64-openocd-git/0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch create mode 100644 mingw-w64-openocd-git/PKGBUILD diff --git a/mingw-w64-openocd-git/0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch b/mingw-w64-openocd-git/0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch new file mode 100644 index 0000000000..34195b6f29 --- /dev/null +++ b/mingw-w64-openocd-git/0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch @@ -0,0 +1,46 @@ +From 9ec332b67605f275d8a29699cb542676ef99ed23 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 20 Jan 2015 14:28:15 +0000 +Subject: [PATCH 1/2] Win32: Define WIN32_LEAN_AND_MEAN in config.h + +.. to avoid 'interface' conflict between OLE (which defines it as 'struct') +and libusb-compat which has 'interface' as a struct member. + +replacements.h did define this already, but it was too late since +helper/system.h and helper/types.h are included before replcaements.h +and they end up pulling in windows.h +--- + configure.ac | 4 ++++ + src/helper/replacements.h | 1 - + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index ce28633..eea9664 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -804,6 +804,10 @@ then + AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.]) + fi + ++if test $is_win32 = yes; then ++ AC_DEFINE([WIN32_LEAN_AND_MEAN], [1], [1 to avoid ole 'interface' C macro conflict w/ libusb-compat]) ++fi ++ + if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes -o $build_openjtag_ftd2xx = yes; then + AC_MSG_CHECKING([for ftd2xx.lib exists (win32)]) + +diff --git a/src/helper/replacements.h b/src/helper/replacements.h +index 565fe9d..2776602 100644 +--- a/src/helper/replacements.h ++++ b/src/helper/replacements.h +@@ -135,7 +135,6 @@ static inline unsigned usleep(unsigned int usecs) + /* Windows specific */ + #ifdef _WIN32 + +-#define WIN32_LEAN_AND_MEAN + #include + #include + +-- +2.2.2 + diff --git a/mingw-w64-openocd-git/0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch b/mingw-w64-openocd-git/0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch new file mode 100644 index 0000000000..be53172024 --- /dev/null +++ b/mingw-w64-openocd-git/0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch @@ -0,0 +1,34 @@ +From 54d03d6b4d0891a3b49435917361ead8640c5769 Mon Sep 17 00:00:00 2001 +From: Paul Fertser +Date: Tue, 20 Jan 2015 18:29:31 +0300 +Subject: [PATCH 2/2] Makefile.am: link libusb-1.0 after libusb-0.1 to fix + dependencies + +Since libusb-0.1 might be provided by libusb-compat, it will depend on +libusb-1.0, so needs to be mentioned before it in the link command +line, this is relevant for static linking. + +Thanks go to mingwandroid for spotting it during MSYS2 build. + +Change-Id: I15cf0b8f084c351b4f93e75686bd0f843477352b +Signed-off-by: Paul Fertser +--- + src/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 7d67e3d..26e02d0 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -74,7 +74,7 @@ libopenocd_la_LIBADD = \ + $(top_builddir)/src/rtos/librtos.la \ + $(top_builddir)/src/helper/libhelper.la \ + $(LIBFTDI_LIBS) $(MINGWLDADD) \ +- $(HIDAPI_LIBS) $(LIBUSB1_LIBS) $(LIBUSB0_LIBS) ++ $(HIDAPI_LIBS) $(LIBUSB0_LIBS) $(LIBUSB1_LIBS) + + STARTUP_TCL_SRCS = \ + $(srcdir)/helper/startup.tcl \ +-- +2.2.2 + diff --git a/mingw-w64-openocd-git/PKGBUILD b/mingw-w64-openocd-git/PKGBUILD new file mode 100644 index 0000000000..654ddee5df --- /dev/null +++ b/mingw-w64-openocd-git/PKGBUILD @@ -0,0 +1,76 @@ +# Maintainer: Andrew Leech +# Contributor: Ray Donnelly + +_realname=openocd +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=r6612.1663a17 +pkgrel=1 +pkgdesc="OpenOCD - Open On-Chip Debugger (mingw-w64)" +arch=('any') +url="http://openocd.sourceforge.net" +options=('!ccache') +# What about ftdi? +depends=("${MINGW_PACKAGE_PREFIX}-hidapi" + "${MINGW_PACKAGE_PREFIX}-libusb" + "${MINGW_PACKAGE_PREFIX}-libusb-compat") +makedepends=("pkg-config" + "git") +source=("${_realname}::git+http://git.code.sf.net/p/openocd/code" + "0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch" + "0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch") +md5sums=('SKIP' + '4c56994d66389afeb8a942514a1f7628' + '1a7bc00cd8d7ecea09130a52af66d916') + +pkgver() { + cd "${srcdir}"/${_realname} + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}"/${_realname} + git am "${srcdir}"/0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch + git am "${srcdir}"/0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch + ./bootstrap +} + +build() { + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} + cd "${srcdir}"/build-${CARCH} + + local -a myconf + myconf+=(--prefix=${MINGW_PREFIX} + --{build,host}=${MINGW_CHOST} + --disable-dependency-tracking + --disable-werror + --enable-dummy + --enable-jtag_vpi + --enable-remote-bitbang + --enable-amtjtagaccel + --enable-gw16012 + --enable-parport + --enable-parport-giveio) + + ../${_realname}/configure ${myconf[@]} + make +} + +package() { + cd "${srcdir}"/build-${CARCH} + make DESTDIR="${pkgdir}" install + + # bsdtar doesn't like (some?) utf-8 in filenames + # rename the known problematic utf-8 substrings. + declare -A _renames + _renames[be1t]=BE1T + _renames[к]=k + _renames[xб1я]=XB1R + for _renamekey in ${!_renames[@]}; do + _filenames=$(find . -name "*${_renamekey}*") + _renameto=${_renames[${_renamekey}]} + for _filename in ${_filenames}; do + mv ${_filename} ${_filename//${_renamekey}/${_renameto}} + done + done +} From 1bc0c4a29c874410a0368eebe5e2252c642300f9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 21 Jan 2015 01:39:48 +0300 Subject: [PATCH 0395/2060] libusb-compat: Fix package name --- mingw-w64-libusb-compat-git/PKGBUILD | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libusb-compat-git/PKGBUILD b/mingw-w64-libusb-compat-git/PKGBUILD index 3acf5a0a88..7c7397652d 100644 --- a/mingw-w64-libusb-compat-git/PKGBUILD +++ b/mingw-w64-libusb-compat-git/PKGBUILD @@ -1,8 +1,10 @@ # Maintainer: Andrew Leech # Contributor: Ray Donnelly -_realname=libusb-compat-0.1 -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +_realname=libusb-compat +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +provides="${MINGW_PACKAGE_PREFIX}-${_realname}" +conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=r60.072a5e4 pkgrel=1 pkgdesc="libusb provides generic access to USB devices (mingw-w64)" @@ -13,7 +15,7 @@ options=('staticlibs') makedepends=("git" "pkgconfig" "m4") -source=(git+https://github.com/libusb/libusb-compat-0.1.git +source=(${_realname}::git+https://github.com/libusb/libusb-compat-0.1.git 0001-Add-some-missing-definitions.patch 0002-Add-no-undefined-to-LDFLAGS.patch) md5sums=('SKIP' From ce3fe5ad6ec34d6055a0818c75bec78853970dc6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 21 Jan 2015 01:40:20 +0300 Subject: [PATCH 0396/2060] openocd-git: Fix dependencies. --- mingw-w64-openocd-git/PKGBUILD | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mingw-w64-openocd-git/PKGBUILD b/mingw-w64-openocd-git/PKGBUILD index 654ddee5df..3cc4869b65 100644 --- a/mingw-w64-openocd-git/PKGBUILD +++ b/mingw-w64-openocd-git/PKGBUILD @@ -2,7 +2,9 @@ # Contributor: Ray Donnelly _realname=openocd -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +provides="${MINGW_PACKAGE_PREFIX}-${_realname}" +conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=r6612.1663a17 pkgrel=1 pkgdesc="OpenOCD - Open On-Chip Debugger (mingw-w64)" @@ -13,7 +15,8 @@ options=('!ccache') depends=("${MINGW_PACKAGE_PREFIX}-hidapi" "${MINGW_PACKAGE_PREFIX}-libusb" "${MINGW_PACKAGE_PREFIX}-libusb-compat") -makedepends=("pkg-config" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "pkg-config" "git") source=("${_realname}::git+http://git.code.sf.net/p/openocd/code" "0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch" From 7a6e086a09c04ce1a44e02b014bc7e6241f242fa Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 21 Jan 2015 02:07:49 +0300 Subject: [PATCH 0397/2060] sqlite3: Update to 3.8.8.1 --- mingw-w64-sqlite3/PKGBUILD | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index fbefa61587..0a9f14cb73 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -2,18 +2,21 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3080800 -pkgver=3.8.8.0 +_amalgamationver=3080801 +pkgver=3.8.8.1 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') license=("custom:Public Domain") groups=("${MINGW_PACKAGE_PREFIX}") url="http://www.sqlite.org" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-readline") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tcl") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-ncurses" + "${MINGW_PACKAGE_PREFIX}-readline") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-tcl") source=("http://www.sqlite.org/2015/sqlite-autoconf-$_amalgamationver.tar.gz") -sha1sums=('abb7570b7e331ffede7f40f0037be6e0c03b73af') +sha1sums=('a140e3ada8a91a7bacf7a58cfd8f5f0e76796258') options=('!strip' 'staticlibs') build() { From d7e338759dab3aa63c37c88764ec3b396c4837e4 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 21 Jan 2015 00:10:58 +0000 Subject: [PATCH 0398/2060] creduce: Added (WIP) This is a weird package. The same PKGBUILD is used to make both the mingw-w64 C++ program and also the MSYS2 perl packages. There are two perl packages for each mingw-w64 package because they hardcode /mingw{32,64} into them. This could be changed via an env. var set by creduce which is itself a perl script that lives in the /mingw{32,64}/bin folder. Apparently, differences in makepkg*.conf makes this scheme not work, so we need to either fix that or split it into two PKGBUILDs. The problem with that is that this will never build as an MSYS2 PKGBUILD as we don't have clang there, so the build will fail and we'll not be able to install any of the perl modules. --- mingw-w64-creduce-git/PKGBUILD | 94 +++++++++++++++++++++++ mingw-w64-creduce-git/llvm-config-cygpath | 9 +++ 2 files changed, 103 insertions(+) create mode 100644 mingw-w64-creduce-git/PKGBUILD create mode 100644 mingw-w64-creduce-git/llvm-config-cygpath diff --git a/mingw-w64-creduce-git/PKGBUILD b/mingw-w64-creduce-git/PKGBUILD new file mode 100644 index 0000000000..861335e11e --- /dev/null +++ b/mingw-w64-creduce-git/PKGBUILD @@ -0,0 +1,94 @@ +# Maintainer: Ray Donnelly + +_realname=creduce +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${_realname}-git-perl-${CARCH}") +pkgver=creduce.2.2.0.13.gbd8882c +pkgrel=1 +arch=('any') +url='https://github.com/csmith-project/creduce' +license=('custom:University of Illinois/NCSA Open Source License') +makedepends=('git' 'flex' "${MINGW_PACKAGE_PREFIX}-clang") +source=('git://github.com/csmith-project/creduce.git' + "llvm-config-cygpath") +sha256sums=('SKIP' + '03a7239d1e26d8a5dd5f405e10826679725cae6c01a9c37e80c6f1c184dad0a9') + +prepare() { + cd "$srcdir" + [ -d tools ] && rm -rf tools + mkdir tools + cp -f "$srcdir"/llvm-config-cygpath tools/llvm-config +} + +pkgver() { + cd "$srcdir/$_realname" + git describe --always | sed 's|-|.|g' +} + +build() { + cd "$srcdir" + [ -d ${CARCH} ] && rm -rf ${CARCH} + mkdir ${CARCH} + cd ${CARCH} + PATH="$srcdir/tools:$PATH" \ + ../$_realname/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} + + make +} + +package_mingw-w64-creduce-git() { + pkgdesc='A C program reducer (mingw-w64)' + depends=("${_realname}-git-perl-${CARCH}") + cd "$srcdir/${CARCH}" + make DESTDIR="$pkgdir" install + install -Dm644 "../$_realname/COPYING" "$pkgdir${MINGW_PREFIX}/share/licenses/$_realname/COPYING" + + # Point creduce perl script: + # lib $FindBin::Bin, '${MINGW_PREFIX}/share/creduce/perl'; + # .. to msys2 perl. + sed "s|${MINGW_PREFIX}|/usr|g" \ + -i $pkgdir${MINGW_PREFIX}/bin/creduce + rm -rf $pkgdir${MINGW_PREFIX}/share/creduce/perl +} + +package_creduce-git-perl() { + pkgdesc='A C program reducer - perl scripts' + depends=('delta' +# 'astyle' +# 'indent' + 'perl-Benchmark-Timer' + 'perl-Exporter-Lite' + 'perl-File-Which' + 'perl-Getopt-Tabular' + 'perl-Regexp-Common' + 'perl-Sys-CPU' + ) + cd "$srcdir/${CARCH}" + make DESTDIR="$pkgdir" install + # Use sed to switch to MSYS2 perl instead of MinGW-w64 perl. + rm -rf $pkgdir${MINGW_PREFIX}/{bin,libexec} + mv $pkgdir${MINGW_PREFIX} $pkgdir/usr +} + +package_mingw-w64-x86_64-creduce-git() { + package_mingw-w64-creduce-git +} + +package_mingw-w64-i686-creduce-git() { + package_mingw-w64-creduce-git +} + +package_creduce-git-perl-i686() { + package_creduce-git-perl +} + +package_creduce-git-perl-x86_64() { + package_creduce-git-perl +} + +# configure: WARNING: You must install Artistic Style before running C-Reduce +# configure: WARNING: You must install GNU Indent before running C-Reduce +# configure: WARNING: Read the INSTALL file for info about C-Reduce dependencies diff --git a/mingw-w64-creduce-git/llvm-config-cygpath b/mingw-w64-creduce-git/llvm-config-cygpath new file mode 100644 index 0000000000..427bcc178e --- /dev/null +++ b/mingw-w64-creduce-git/llvm-config-cygpath @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +# Translates output from MSYS2/MinGW-w64 llvm-config.exe to MSYS2 form. +# It may make sense to include this as part of the llvm packages? + +MINGW_PREFIX_M=$(cygpath -m $(dirname $(dirname $(which llvm-config)))) +# echo "input $*" >> /tmp/llvm-config.log +# echo "output " $(llvm-config.exe $*) | tr '\\' '/' | sed "s|${MINGW_PREFIX_M}|$(cygpath -u ${MINGW_PREFIX_M})|g" >> /tmp/llvm-config.log +echo $(llvm-config.exe $*) | tr '\\' '/' | sed "s|${MINGW_PREFIX_M}|$(cygpath -u ${MINGW_PREFIX_M})|g" From a411d20fb017a42662d13f1bb16b84f4c20d413c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 21 Jan 2015 17:04:32 +0300 Subject: [PATCH 0399/2060] cyrus-sasl: Rebuild without openssl support. --- mingw-w64-cyrus-sasl/PKGBUILD | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cyrus-sasl/PKGBUILD b/mingw-w64-cyrus-sasl/PKGBUILD index 19250b9f4b..547450153e 100644 --- a/mingw-w64-cyrus-sasl/PKGBUILD +++ b/mingw-w64-cyrus-sasl/PKGBUILD @@ -23,13 +23,13 @@ _realname=cyrus-sasl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.1.26 -pkgrel=2 +pkgrel=3 pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library" arch=('any') url="http://cyrusimap.web.cmu.edu/" license=('custom') depends=("${MINGW_PACKAGE_PREFIX}-gdbm" - "${MINGW_PACKAGE_PREFIX}-openssl" + #"${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-sqlite3") options=('emptydirs' 'strip' '!makeflags') source=(http://cyrusimap.org/releases/${_realname}-${pkgver}.tar.gz @@ -138,6 +138,8 @@ build() { --oldincludedir=${MINGW_PREFIX}/include \ --without-saslauthd \ --without-pwcheck \ + --without-openssl \ + --disable-digest \ --without-authdaemond \ --with-dblib=gdbm From 48bcf73308a2d31b57d74de540d74f1ae3886a81 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 22 Jan 2015 20:36:34 +0000 Subject: [PATCH 0400/2060] glpk: Added --- mingw-w64-glpk/PKGBUILD | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 mingw-w64-glpk/PKGBUILD diff --git a/mingw-w64-glpk/PKGBUILD b/mingw-w64-glpk/PKGBUILD new file mode 100644 index 0000000000..434c604234 --- /dev/null +++ b/mingw-w64-glpk/PKGBUILD @@ -0,0 +1,38 @@ +# Maintainer: Ray Donnelly + +_realname=glpk +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=4.55 +pkgrel=1 +pkgdesc="GNU Linear Programming Kit : solve LP, MIP and other problems (mingw-w64)" +arch=('any') +url="http://www.gnu.org/software/glpk/glpk.html" +license=('GPL') +options=('staticlibs') +source=(http://ftp.gnu.org/gnu/glpk/glpk-${pkgver}.tar.gz) +sha1sums=('893058aada022a8dfc63c675ebcd7e7e86a3a363') + +prepare () { + cd "${srcdir}/glpk-${pkgver}" + sed -i "s|-version-info|-no-undefined -version-info|g" src/Makefile.am + autoreconf -vfi +} + +build() { + cd "${srcdir}" + [ -d build-${CARCH} ] && rm -rf build-${CARCH} + mkdir -p build-${CARCH} && pushd build-${CARCH} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make +} + +package() { + cd "${srcdir}/build-${CARCH}" + make DESTDIR="${pkgdir}" install +} From 3b78d3112be13003284a92e958bfed7c344bd572 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 22 Jan 2015 20:41:15 +0000 Subject: [PATCH 0401/2060] gl2ps: Added --- mingw-w64-gl2ps/PKGBUILD | 45 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 mingw-w64-gl2ps/PKGBUILD diff --git a/mingw-w64-gl2ps/PKGBUILD b/mingw-w64-gl2ps/PKGBUILD new file mode 100644 index 0000000000..3e23e6f9fe --- /dev/null +++ b/mingw-w64-gl2ps/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: hauptmech # Contributor: figo.zhang, chubtuff, lubosz +# Maintainer (MSYS2): Ray Donnelly +# +# Matlab bindings are not built by default to reduce dependencies. + +_realname=gl2ps +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.3.8 +pkgrel=1 +pkgdesc="an OpenGL to PostScript printing library (mingw-w64)" +arch=('any') +url='http://geuz.org/gl2ps/' +license=('BSD') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") +optdepends=() +conflicts=() +source=("http://geuz.org/gl2ps/src/gl2ps-${pkgver}.tgz" + "0001-MSYS2-FHS-layout.patch") +sha1sums=('792e11db0fe7a30a4dc4491af5098b047ec378b1' + '8aba0e227b70ca013b8405577c42821ee2173533') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver}-source + patch -p1 -i "${srcdir}"/0001-MSYS2-FHS-layout.patch +} + +build() { + cd "${srcdir}" + [ -d build-${CARCH} ] && rm -rf build-${CARCH} + mkdir build-${CARCH} + cd build-${CARCH} + + cmake ../${_realname}-${pkgver}-source \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -G'MSYS Makefiles' + make + +} + +package() { + cd "${srcdir}/build-${CARCH}" + + make DESTDIR="${pkgdir}" install +} From f9b7c1286a563bf4e24cc16c7f218a961c482f4d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 22 Jan 2015 20:42:43 +0000 Subject: [PATCH 0402/2060] gl2ps: Added missing file --- mingw-w64-gl2ps/0001-MSYS2-FHS-layout.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 mingw-w64-gl2ps/0001-MSYS2-FHS-layout.patch diff --git a/mingw-w64-gl2ps/0001-MSYS2-FHS-layout.patch b/mingw-w64-gl2ps/0001-MSYS2-FHS-layout.patch new file mode 100644 index 0000000000..df9993a8bb --- /dev/null +++ b/mingw-w64-gl2ps/0001-MSYS2-FHS-layout.patch @@ -0,0 +1,12 @@ +diff -urN gl2ps-1.3.8-source.orig/CMakeLists.txt gl2ps-1.3.8-source/CMakeLists.txt +--- gl2ps-1.3.8-source.orig/CMakeLists.txt 2012-11-27 19:41:06.000000000 +0000 ++++ gl2ps-1.3.8-source/CMakeLists.txt 2015-01-22 13:58:33.264048300 +0000 +@@ -125,7 +125,7 @@ + install(TARGETS lib shared DESTINATION lib${LIB_SUFFIX}) + endif(OPENGL_FOUND) + +-if(WIN32) ++if(WIN32 AND NOT DEFINED ENV{MSYSTEM}) + set(GL2PS_DOC .) + else(WIN32) + set(GL2PS_DOC share/doc/gl2ps) From 5c85d8588b557b8f5b4a71b3b694fe0933b38eda Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 23 Jan 2015 00:07:24 +0000 Subject: [PATCH 0403/2060] octave: Added (WIP) --- mingw-w64-octave-hg/PKGBUILD | 78 ++++++++++++++++++++++++++++++ mingw-w64-octave-hg/octave.install | 20 ++++++++ 2 files changed, 98 insertions(+) create mode 100644 mingw-w64-octave-hg/PKGBUILD create mode 100644 mingw-w64-octave-hg/octave.install diff --git a/mingw-w64-octave-hg/PKGBUILD b/mingw-w64-octave-hg/PKGBUILD new file mode 100644 index 0000000000..65b8ae425b --- /dev/null +++ b/mingw-w64-octave-hg/PKGBUILD @@ -0,0 +1,78 @@ +# Maintainer: Stefan Husmann +# Contributor: Benjamin van der Burgh +# Maintainer (MSYS2): Ray Donnelly + +_realname=octave-hg +pkgver=r19590.6d75f1683ce8 +pkgrel=1 +pkgdesc="A high-level language, primarily intended for numerical computations. (mingw-w64)" +url="http://www.octave.org" +arch=('any') +license=('GPL') +# Some of these may be optional, e.g. arpack, lapack, qhull, but if they +# are installed, octave will be linked against them. +depends=("${MINGW_PACKAGE_PREFIX}-fftw>=3.2.2" + "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-fltk" + "${MINGW_PACKAGE_PREFIX}-hdf5" + "${MINGW_PACKAGE_PREFIX}-glpk" +# "${MINGW_PACKAGE_PREFIX}-arpack" + "${MINGW_PACKAGE_PREFIX}-gl2ps" + "${MINGW_PACKAGE_PREFIX}-qrupdate" + "${MINGW_PACKAGE_PREFIX}-qscintilla" + "${MINGW_PACKAGE_PREFIX}-qhull" + "${MINGW_PACKAGE_PREFIX}-graphicsmagick") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran" + 'pcre' + 'mercurial' + 'gperf' + 'rsync') +# 'suitesparse-octavecompat' +# 'transfig' +# 'epstool') +# 'texlive-core') +optdepends=('texinfo: for help-support in octave' + 'gnuplot: alternative plotting' + 'portaudio: for using audiodevinfo.oct') +conflicts=('octave') +install=octave.install +options=('!emptydirs' '!makeflags') +source=("git://git.sv.gnu.org/gnulib" + "hg+http://hg.savannah.gnu.org/hgweb/octave") +md5sums=('SKIP' + 'SKIP') +_hgrepo=octave +_appver=4.1.0+ +provides=("octave=$_appver") + +pkgver() { + cd $srcdir/${_hgrepo} + hg update > /dev/null + printf "r%s.%s" "$(hg identify -n)" "$(hg identify -i)" +} + +build() { + cd $srcdir/${_hgrepo} + ./bootstrap --no-git --gnulib-srcdir=$srcdir/gnulib + [[ -d .build ]] || mkdir .build + cd .build + [[ $CARCH == "x86_64" ]] && _arch=amd64 + [[ $CARCH == "i686" ]] && _arch=i386 + CXX=g++ CC=gcc ../configure --prefix=/usr \ + --libexecdir=/usr/lib --enable-shared --enable-jit \ + --enable-qhull MOC=moc-qt4 UIC=uic-qt4 --with-umfpack \ + --with-quantum-depth=16 --disable-java \ + --with-java-homedir=/usr/lib/jvm/`archlinux-java get` \ + --with-java-includedir=/usr/lib/jvm/`archlinux-java get`/include \ + --with-java-libdir=/usr/lib/jvm/`archlinux-java get`/lib/${_arch}/server + make clean + CXXFLAGS+="-fexceptions `llvm-config --cxxflags`" make +} + +package() { + cd $srcdir/${_hgrepo}/.build + make DESTDIR=${pkgdir} install + # add octave library path to ld.so.conf.d + install -d "${pkgdir}/etc/ld.so.conf.d" + echo "/usr/lib/${_hgrepo}/${_appver}" > "${pkgdir}/etc/ld.so.conf.d/${_hgrepo}.conf" +} diff --git a/mingw-w64-octave-hg/octave.install b/mingw-w64-octave-hg/octave.install new file mode 100644 index 0000000000..dc8baaf6cd --- /dev/null +++ b/mingw-w64-octave-hg/octave.install @@ -0,0 +1,20 @@ +infodir=usr/share/info +filelist=(octave liboctave) + +post_install() { + [[ -x usr/bin/install-info ]] || return 0 + for file in "${filelist[@]}"; do + install-info "$infodir/$file.info.gz" "$infodir/dir" 2> /dev/null + done +} + +post_upgrade() { + post_install "$1" +} + +pre_remove() { + [[ -x usr/bin/install-info ]] || return 0 + for file in "${filelist[@]}"; do + install-info --delete "$infodir/$file.info.gz" "$infodir/dir" 2> /dev/null + done +} From 53378e9c0a41ff16b12bbfd7e257548e08b78339 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Thu, 22 Jan 2015 22:04:29 -0200 Subject: [PATCH 0404/2060] cyrus-sasl: Restore libdigestmd5. This library was not included in the package anymore when OpenSSL was disabled. Now OpenSSL is still disabled, with reason provided in comments, but libdigestmd5 has been restored. --- mingw-w64-cyrus-sasl/PKGBUILD | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cyrus-sasl/PKGBUILD b/mingw-w64-cyrus-sasl/PKGBUILD index 547450153e..a5c62302e0 100644 --- a/mingw-w64-cyrus-sasl/PKGBUILD +++ b/mingw-w64-cyrus-sasl/PKGBUILD @@ -1,5 +1,6 @@ # Maintainer: Alexey Pavlov # Contributor: Ray Donnelly +# Contributor: Renato Silva # There's an ugliness issue in cyrus-sasl's build system. # It builds libsasl2.dll with some compat objects, somehow @@ -23,7 +24,7 @@ _realname=cyrus-sasl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.1.26 -pkgrel=3 +pkgrel=4 pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library" arch=('any') url="http://cyrusimap.web.cmu.edu/" @@ -126,6 +127,14 @@ build() { # --enable-sql # --without-saslauthd because it needs sockaddr_un. + # We disable OpenSSL (--without-openssl --without-des) so that applications + # with licenses incompatible with OpenSSL (such as GPL applications) do not + # end up linked with OpenSSL if they use and redistribute Cyrus SASL outside + # MSYS2. See these links: + # + # * https://www.openssl.org/support/faq.html#LEGAL2 + # * http://en.wikipedia.org/wiki/OpenSSL#Licensing + ../$_realname-$pkgver/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -139,7 +148,7 @@ build() { --without-saslauthd \ --without-pwcheck \ --without-openssl \ - --disable-digest \ + --without-des \ --without-authdaemond \ --with-dblib=gdbm From 1621f79c45630f2d4ab70e8afd118abe08b7785a Mon Sep 17 00:00:00 2001 From: kyonifer Date: Thu, 22 Jan 2015 19:42:40 -0500 Subject: [PATCH 0405/2060] python-ipython: Added. --- .../0001-unimplemented-readline-calls.patch | 33 +++++++ mingw-w64-python-ipython/PKGBUILD | 98 +++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 mingw-w64-python-ipython/0001-unimplemented-readline-calls.patch create mode 100644 mingw-w64-python-ipython/PKGBUILD diff --git a/mingw-w64-python-ipython/0001-unimplemented-readline-calls.patch b/mingw-w64-python-ipython/0001-unimplemented-readline-calls.patch new file mode 100644 index 0000000000..a4343ebc61 --- /dev/null +++ b/mingw-w64-python-ipython/0001-unimplemented-readline-calls.patch @@ -0,0 +1,33 @@ +--- ipython-2.3.1/IPython/utils/rlineimpl.py.orig 2014-11-12 18:08:55.000000000 -0500 ++++ ipython-2.3.1/IPython/utils/rlineimpl.py 2015-01-19 22:45:58.690179800 -0500 +@@ -27,13 +27,6 @@ + have_readline = True + break + +-if have_readline and (sys.platform == 'win32' or sys.platform == 'cli'): +- try: +- _outputfile=_rl.GetOutputFile() +- except AttributeError: +- warnings.warn("Failed GetOutputFile") +- have_readline = False +- + # Test to see if libedit is being used instead of GNU readline. + # Thanks to Boyd Waters for the original patch. + uses_libedit = False + +--- ipython-2.3.1/IPython/core/interactiveshell.py.orig 2015-01-19 23:27:23.065906800 -0500 ++++ ipython-2.3.1/IPython/core/interactiveshell.py 2015-01-19 23:28:02.695374400 -0500 +@@ -657,11 +657,8 @@ + # override sys.stdout and sys.stderr themselves, you need to do that + # *before* instantiating this class, because io holds onto + # references to the underlying streams. +- if (sys.platform == 'win32' or sys.platform == 'cli') and self.has_readline: +- io.stdout = io.stderr = io.IOStream(self.readline._outputfile) +- else: +- io.stdout = io.IOStream(sys.stdout) +- io.stderr = io.IOStream(sys.stderr) ++ io.stdout = io.IOStream(sys.stdout) ++ io.stderr = io.IOStream(sys.stderr) + + def init_prompts(self): + self.prompt_manager = PromptManager(shell=self, parent=self) diff --git a/mingw-w64-python-ipython/PKGBUILD b/mingw-w64-python-ipython/PKGBUILD new file mode 100644 index 0000000000..cc406e5a17 --- /dev/null +++ b/mingw-w64-python-ipython/PKGBUILD @@ -0,0 +1,98 @@ +# Maintainer: Kyle Kauffman + +_realname=ipython +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") +pkgver=2.3.1 +pkgrel=1 +pkgdesc="An enhanced Interactive Python shell." +arch=('any') +url="http://ipython.org" +license=('BSD') +makedepends=( + "${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" +) + +source=("https://pypi.python.org/packages/source/i/ipython/$_realname-$pkgver.tar.gz") +md5sums=('2b7085525dac11190bfb45bb8ec8dcbf') + +prepare() { + cd "$srcdir" + patch -p0 < ../0001-unimplemented-readline-calls.patch +} + +all_build() { + cd "$srcdir/$_realname-$pkgver" + + # see https://github.com/ipython/ipython/issues/2057 + #export LC_ALL=en_US.UTF-8 + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/${interpreter} setup.py install \ + --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 + + find "$pkgdir/" -name '*.pyc' -delete + find "$pkgdir/" -type d -empty -delete + + # setuptools doesnt see mingw-w64-python's readline + find "$pkgdir/" -name 'requires.txt' -delete + + install -Dm644 docs/source/about/license_and_copyright.rst "$pkgdir${MINGW_PREFIX}/share/licenses/ipython/LICENSE" + + cd "$srcdir/$_realname-$pkgver/examples/IPython Kernel/" + install -Dm644 ipython.desktop "$pkgdir${MINGW_PREFIX}/share/applications/ipython.desktop" + install -Dm644 ipython-qtconsole.desktop "${pkgdir}${MINGW_PREFIX}/share/applications/ipython-qtconsole.desktop" +} + +package_python3-ipython() { + interpreter=python3 + depends=("${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") + optdepends=("${MINGW_PACKAGE_PREFIX}-python3-nose: for IPython's test suite" + "${MINGW_PACKAGE_PREFIX}-python3-pyqt4: for ipython qtconsole" + "${MINGW_PACKAGE_PREFIX}-python3-sip: for ipython qtconsole" + "${MINGW_PACKAGE_PREFIX}-python3-pygments: for ipython qtconsole" + "${MINGW_PACKAGE_PREFIX}-python3-jinja: for ipython notebook") +# "${MINGW_PACKAGE_PREFIX}-haskell-pandoc: ipython notebook conversion" +# "${MINGW_PACKAGE_PREFIX}-python3-pyzmq: ipython notebook and ipython qtconcole" +# "${MINGW_PACKAGE_PREFIX}-python3-tornado: for ipython notebook" + + all_build +} + +package_python2-ipython() { + interpreter=python2 + depends=("${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools") + optdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose: for IPython's test suite" + "${MINGW_PACKAGE_PREFIX}-python2-pyqt4: for ipython qtconsole" + "${MINGW_PACKAGE_PREFIX}-python2-sip: for ipython qtconsole" + "${MINGW_PACKAGE_PREFIX}-python2-pygments: for ipython qtconsole" + "${MINGW_PACKAGE_PREFIX}-python2-jinja: for ipython notebook") +# "${MINGW_PACKAGE_PREFIX}-haskell-pandoc: ipython notebook conversion" +# "${MINGW_PACKAGE_PREFIX}-python2-pyzmq: ipython notebook and ipython qtconcole" +# "${MINGW_PACKAGE_PREFIX}-python2-tornado: for ipython notebook" + + all_build +} + + +package_mingw-w64-i686-python2-ipython() { + conflicts=("mingw-w64-i686-python3-ipython") + package_python2-ipython +} + +package_mingw-w64-i686-python3-ipython() { + conflicts=("mingw-w64-i686-python2-ipython") + package_python3-ipython +} + +package_mingw-w64-x86_64-python2-ipython() { + conflicts=("mingw-w64-x86_64-python3-ipython") + package_python2-ipython +} + +package_mingw-w64-x86_64-python3-ipython() { + conflicts=("mingw-w64-x86_64-python2-ipython") + package_python3-ipython +} From 2f35d7fa01b5f8974b12f8d0d5beb08f1f0f6280 Mon Sep 17 00:00:00 2001 From: kyonifer Date: Fri, 23 Jan 2015 11:16:49 -0500 Subject: [PATCH 0406/2060] python-ipython: Fixed collisions between py2/py3 packages. --- mingw-w64-python-ipython/PKGBUILD | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/mingw-w64-python-ipython/PKGBUILD b/mingw-w64-python-ipython/PKGBUILD index cc406e5a17..bf6b57917e 100644 --- a/mingw-w64-python-ipython/PKGBUILD +++ b/mingw-w64-python-ipython/PKGBUILD @@ -36,12 +36,6 @@ all_build() { # setuptools doesnt see mingw-w64-python's readline find "$pkgdir/" -name 'requires.txt' -delete - - install -Dm644 docs/source/about/license_and_copyright.rst "$pkgdir${MINGW_PREFIX}/share/licenses/ipython/LICENSE" - - cd "$srcdir/$_realname-$pkgver/examples/IPython Kernel/" - install -Dm644 ipython.desktop "$pkgdir${MINGW_PREFIX}/share/applications/ipython.desktop" - install -Dm644 ipython-qtconsole.desktop "${pkgdir}${MINGW_PREFIX}/share/applications/ipython-qtconsole.desktop" } package_python3-ipython() { @@ -58,6 +52,9 @@ package_python3-ipython() { # "${MINGW_PACKAGE_PREFIX}-python3-tornado: for ipython notebook" all_build + + install -Dm644 docs/source/about/license_and_copyright.rst "$pkgdir${MINGW_PREFIX}/share/licenses/ipython/LICENSE" + } package_python2-ipython() { @@ -74,25 +71,35 @@ package_python2-ipython() { # "${MINGW_PACKAGE_PREFIX}-python2-tornado: for ipython notebook" all_build + + install -Dm644 docs/source/about/license_and_copyright.rst "$pkgdir${MINGW_PREFIX}/share/licenses/ipython2/LICENSE" + + # Fix bin collisions + find "$pkgdir${MINGW_PREFIX}/bin/" -type f -regex '.*[^2].exe$' -delete + find "$pkgdir${MINGW_PREFIX}/bin/" -type f -regex '.*[^2]-script.py$' -delete + + # Fix manpage collisions + cd "$pkgdir${MINGW_PREFIX}/share/man/man1/" + for i in *; do + mv $i ${i/%.1/2.1} + done + + } package_mingw-w64-i686-python2-ipython() { - conflicts=("mingw-w64-i686-python3-ipython") package_python2-ipython } package_mingw-w64-i686-python3-ipython() { - conflicts=("mingw-w64-i686-python2-ipython") package_python3-ipython } package_mingw-w64-x86_64-python2-ipython() { - conflicts=("mingw-w64-x86_64-python3-ipython") package_python2-ipython } package_mingw-w64-x86_64-python3-ipython() { - conflicts=("mingw-w64-x86_64-python2-ipython") package_python3-ipython } From e0be7dcd830fb9c5b988271d6c9e7830dd805888 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 23 Jan 2015 11:28:27 +0300 Subject: [PATCH 0407/2060] openssl: Update to 1.0.2 --- mingw-w64-openssl/PKGBUILD | 15 ++--- mingw-w64-openssl/openssl-0.9.6-x509.patch | 56 ++++++++-------- .../openssl-1.0.0h-pkg-config.patch | 32 --------- .../openssl-1.0.1-parallel-build.patch | 2 +- mingw-w64-openssl/openssl-1.0.1-x32.patch | 65 ++++++++----------- .../openssl-1.0.1i-relocation.patch | 54 ++++++++------- 6 files changed, 95 insertions(+), 129 deletions(-) delete mode 100644 mingw-w64-openssl/openssl-1.0.0h-pkg-config.patch diff --git a/mingw-w64-openssl/PKGBUILD b/mingw-w64-openssl/PKGBUILD index 8c4173fe29..7d94792b5f 100644 --- a/mingw-w64-openssl/PKGBUILD +++ b/mingw-w64-openssl/PKGBUILD @@ -2,7 +2,7 @@ _realname=openssl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.0.1l +pkgver=1.0.2 pkgrel=1 arch=('any') pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (mingw-w64)" @@ -15,20 +15,18 @@ noextract=(${_realname}-${pkgver}.tar.gz) source=(http://www.openssl.org/source/${_realname}-$pkgver.tar.gz{,.asc} 'openssl-1.0.0a-ldflags.patch' 'openssl-1.0.0d-windres.patch' - 'openssl-1.0.0h-pkg-config.patch' 'openssl-1.0.1-parallel-build.patch' 'openssl-1.0.1-x32.patch' 'openssl-0.9.6-x509.patch' 'openssl-1.0.1i-relocation.patch') -md5sums=('cdb22925fc9bc97ccbf1e007661f2aa6' +md5sums=('38373013fc85c790aabf8837969c5eba' 'SKIP' '9e0abad8dd17079815d9e92345c5adcb' '835a78dbe9c8690dbdd9190aaf5432e7' - 'a3d056be1047c7fd6cf8a74bbe8e4192' - '60ca340e32944e4825747e3681ccd553' - '10d0cebf2d9c0f64c307e82542f519e3' - 'cf00f216c47f33272d281e302ab1906a' - '170f80b2fb479fc422557a48d566f432') + '12b97a21380bd471d0c9705e7dc8a23b' + 'f10e6de3515a15128faae808287a8c84' + 'cae4eea6db48a254653fd1903cfabd15' + 'd8ed0865f35216a5e420e37d7a4e2515') prepare() { cd $startdir/ @@ -39,7 +37,6 @@ prepare() { patch -p1 -i ${srcdir}/openssl-1.0.0a-ldflags.patch patch -p1 -i ${srcdir}/openssl-1.0.0d-windres.patch - patch -p1 -i ${srcdir}/openssl-1.0.0h-pkg-config.patch patch -p1 -i ${srcdir}/openssl-1.0.1-parallel-build.patch patch -p1 -i ${srcdir}/openssl-1.0.1-x32.patch patch -p1 -i ${srcdir}/openssl-0.9.6-x509.patch diff --git a/mingw-w64-openssl/openssl-0.9.6-x509.patch b/mingw-w64-openssl/openssl-0.9.6-x509.patch index 7d9a3f22c1..f769b35561 100644 --- a/mingw-w64-openssl/openssl-0.9.6-x509.patch +++ b/mingw-w64-openssl/openssl-0.9.6-x509.patch @@ -2,31 +2,33 @@ Do not treat duplicate certs as an error. --- openssl-0.9.6/crypto/x509/by_file.c Wed Sep 27 15:09:05 2000 +++ openssl-0.9.6/crypto/x509/by_file.c Wed Sep 27 14:21:20 2000 -@@ -163,8 +163,12 @@ - } - } - i=X509_STORE_add_cert(ctx->store_ctx,x); -- if (!i) goto err; -- count++; -+ /* ignore any problems with current certificate -+ and continue with the next one */ -+ if (i) -+ count++; -+ else -+ ERR_clear_error(); - X509_free(x); - x=NULL; - } -@@ -179,7 +183,8 @@ - goto err; - } - i=X509_STORE_add_cert(ctx->store_ctx,x); -- if (!i) goto err; -+ if (!i) -+ ERR_clear_error(); - ret=i; - } - else +@@ -163,9 +163,12 @@ + } + } + i = X509_STORE_add_cert(ctx->store_ctx, x); +- if (!i) +- goto err; +- count++; ++ /* ignore any problems with current certificate ++ and continue with the next one */ ++ if (i) ++ count++; ++ else ++ ERR_clear_error(); + X509_free(x); + x = NULL; + } +@@ -179,8 +183,8 @@ + goto err; + } + i = X509_STORE_add_cert(ctx->store_ctx, x); +- if (!i) +- goto err; ++ if (!i) ++ ERR_clear_error(); + ret = i; + } else { + X509err(X509_F_X509_LOAD_CERT_FILE, X509_R_BAD_X509_FILETYPE); --- openssl-0.9.6/crypto/store/store.h 2009-08-12 00:57:20.000000000 +0200 +++ openssl-0.9.6/crypto/store/store.h 2009-08-12 01:00:27.000000000 +0200 @@ -70,6 +70,13 @@ @@ -56,6 +58,6 @@ Do not treat duplicate certs as an error. +#undef X509_EXTENSIONS +#endif + - #define PEM_BUFSIZE 1024 + # define PEM_BUFSIZE 1024 - #define PEM_OBJ_UNDEF 0 + # define PEM_OBJ_UNDEF 0 diff --git a/mingw-w64-openssl/openssl-1.0.0h-pkg-config.patch b/mingw-w64-openssl/openssl-1.0.0h-pkg-config.patch deleted file mode 100644 index 6c0218256d..0000000000 --- a/mingw-w64-openssl/openssl-1.0.0h-pkg-config.patch +++ /dev/null @@ -1,32 +0,0 @@ -depend on other pc files rather than encoding library info directly in -every pkg-config file - ---- a/Makefile.org -+++ b/Makefile.org -@@ -335,11 +335,11 @@ libssl.pc: Makefile - echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \ - echo 'includedir=$${prefix}/include'; \ - echo ''; \ -- echo 'Name: OpenSSL'; \ -+ echo 'Name: OpenSSL-libssl'; \ - echo 'Description: Secure Sockets Layer and cryptography libraries'; \ - echo 'Version: '$(VERSION); \ -- echo 'Requires: '; \ -- echo 'Libs: -L$${libdir} -lssl -lcrypto'; \ -+ echo 'Requires.private: libcrypto'; \ -+ echo 'Libs: -L$${libdir} -lssl'; \ - echo 'Libs.private: $(EX_LIBS)'; \ - echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc - -@@ -352,10 +353,7 @@ openssl.pc: Makefile - echo 'Name: OpenSSL'; \ - echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \ - echo 'Version: '$(VERSION); \ -- echo 'Requires: '; \ -- echo 'Libs: -L$${libdir} -lssl -lcrypto'; \ -- echo 'Libs.private: $(EX_LIBS)'; \ -- echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc -+ echo 'Requires: libssl libcrypto' ) > openssl.pc - - Makefile: Makefile.org Configure config - @echo "Makefile is older than Makefile.org, Configure or config." diff --git a/mingw-w64-openssl/openssl-1.0.1-parallel-build.patch b/mingw-w64-openssl/openssl-1.0.1-parallel-build.patch index 7c804b5432..896f88d123 100644 --- a/mingw-w64-openssl/openssl-1.0.1-parallel-build.patch +++ b/mingw-w64-openssl/openssl-1.0.1-parallel-build.patch @@ -108,7 +108,7 @@ http://rt.openssl.org/Ticket/Display.html?id=2084 + +@target=all; $(RECURSIVE_MAKE) files: - $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO + $(PERL) $(TOP)/util/files.pl "CPUID_OBJ=$(CPUID_OBJ)" Makefile >> $(TOP)/MINFO - @target=files; $(RECURSIVE_MAKE) + +@target=files; $(RECURSIVE_MAKE) diff --git a/mingw-w64-openssl/openssl-1.0.1-x32.patch b/mingw-w64-openssl/openssl-1.0.1-x32.patch index 5106cb6e82..229858bd6c 100644 --- a/mingw-w64-openssl/openssl-1.0.1-x32.patch +++ b/mingw-w64-openssl/openssl-1.0.1-x32.patch @@ -24,48 +24,39 @@ Index: openssl-1.0.0e/crypto/bn/asm/x86_64-gcc.c =================================================================== --- openssl-1.0.0e.orig/crypto/bn/asm/x86_64-gcc.c +++ openssl-1.0.0e/crypto/bn/asm/x86_64-gcc.c -@@ -55,7 +55,7 @@ - * machine. - */ - --#ifdef _WIN64 -+#if defined _WIN64 || !defined __LP64__ - #define BN_ULONG unsigned long long - #else - #define BN_ULONG unsigned long @@ -192,9 +192,9 @@ BN_ULONG bn_add_words (BN_ULONG *rp, con - asm ( - " subq %2,%2 \n" - ".p2align 4 \n" -- "1: movq (%4,%2,8),%0 \n" -- " adcq (%5,%2,8),%0 \n" -- " movq %0,(%3,%2,8) \n" -+ "1: movq (%q4,%2,8),%0 \n" -+ " adcq (%q5,%2,8),%0 \n" -+ " movq %0,(%q3,%2,8) \n" - " leaq 1(%2),%2 \n" - " loop 1b \n" - " sbbq %0,%0 \n" + asm volatile (" subq %0,%0 \n" /* clear carry */ + " jmp 1f \n" + ".p2align 4 \n" +- "1: movq (%4,%2,8),%0 \n" +- " adcq (%5,%2,8),%0 \n" +- " movq %0,(%3,%2,8) \n" ++ "1: movq (%q4,%2,8),%0 \n" ++ " adcq (%q5,%2,8),%0 \n" ++ " movq %0,(%q3,%2,8) \n" + " lea 1(%2),%2 \n" + " loop 1b \n" + " sbbq %0,%0 \n":"=&r" (ret), "+c"(n), @@ -215,9 +215,9 @@ BN_ULONG bn_sub_words (BN_ULONG *rp, con - asm ( - " subq %2,%2 \n" - ".p2align 4 \n" -- "1: movq (%4,%2,8),%0 \n" -- " sbbq (%5,%2,8),%0 \n" -- " movq %0,(%3,%2,8) \n" -+ "1: movq (%q4,%2,8),%0 \n" -+ " sbbq (%q5,%2,8),%0 \n" -+ " movq %0,(%q3,%2,8) \n" - " leaq 1(%2),%2 \n" - " loop 1b \n" - " sbbq %0,%0 \n" + asm volatile (" subq %0,%0 \n" /* clear borrow */ + " jmp 1f \n" + ".p2align 4 \n" +- "1: movq (%4,%2,8),%0 \n" +- " sbbq (%5,%2,8),%0 \n" +- " movq %0,(%3,%2,8) \n" ++ "1: movq (%q4,%2,8),%0 \n" ++ " sbbq (%q5,%2,8),%0 \n" ++ " movq %0,(%q3,%2,8) \n" + " lea 1(%2),%2 \n" + " loop 1b \n" + " sbbq %0,%0 \n":"=&r" (ret), "+c"(n), Index: openssl-1.0.0e/crypto/bn/bn.h =================================================================== --- openssl-1.0.0e.orig/crypto/bn/bn.h +++ openssl-1.0.0e/crypto/bn/bn.h @@ -172,6 +172,13 @@ extern "C" { + # endif # endif - #endif +/* Address type. */ +#ifdef _WIN64 @@ -74,6 +65,6 @@ Index: openssl-1.0.0e/crypto/bn/bn.h +#define BN_ADDR unsigned long +#endif + - /* assuming long is 64bit - this is the DEC Alpha - * unsigned long long is only 64 bits :-(, don't define - * BN_LLONG for the DEC Alpha */ + /* + * assuming long is 64bit - this is the DEC Alpha unsigned long long is only + * 64 bits :-(, don't define BN_LLONG for the DEC Alpha diff --git a/mingw-w64-openssl/openssl-1.0.1i-relocation.patch b/mingw-w64-openssl/openssl-1.0.1i-relocation.patch index fff017ab8c..9a8a9ad38e 100644 --- a/mingw-w64-openssl/openssl-1.0.1i-relocation.patch +++ b/mingw-w64-openssl/openssl-1.0.1i-relocation.patch @@ -50,18 +50,19 @@ diff -Naur openssl-1.0.1i-orig/crypto/engine/eng_list.c openssl-1.0.1i/crypto/en static void engine_list_cleanup(void) { ENGINE *iterator = engine_list_head; -@@ -401,7 +420,10 @@ - #ifdef OPENSSL_SYS_VMS - if((load_dir = getenv("OPENSSL_ENGINES")) == 0) load_dir = "SSLROOT:[ENGINES]"; - #else -- if((load_dir = getenv("OPENSSL_ENGINES")) == 0) load_dir = ENGINESDIR; -+ if((load_dir = getenv("OPENSSL_ENGINES")) == 0) { -+ const char * reloc_engines = enginedir_relocation(ENGINESDIR); -+ load_dir = reloc_engines; -+ } - #endif - iterator = ENGINE_by_id("dynamic"); - if(!iterator || !ENGINE_ctrl_cmd_string(iterator, "ID", id, 0) || +@@ -401,8 +420,10 @@ + if ((load_dir = getenv("OPENSSL_ENGINES")) == 0) + load_dir = "SSLROOT:[ENGINES]"; + # else +- if ((load_dir = getenv("OPENSSL_ENGINES")) == 0) +- load_dir = ENGINESDIR; ++ if((load_dir = getenv("OPENSSL_ENGINES")) == 0) { ++ const char * reloc_engines = enginedir_relocation(ENGINESDIR); ++ load_dir = reloc_engines; ++ } + # endif + iterator = ENGINE_by_id("dynamic"); + if (!iterator || !ENGINE_ctrl_cmd_string(iterator, "ID", id, 0) || diff -Naur openssl-1.0.1i-orig/crypto/engine/Makefile openssl-1.0.1i/crypto/engine/Makefile --- openssl-1.0.1i-orig/crypto/engine/Makefile 2014-08-07 01:18:34.000000000 +0400 +++ openssl-1.0.1i/crypto/engine/Makefile 2014-08-08 00:41:21.195800000 +0400 @@ -690,7 +691,7 @@ diff -Naur openssl-1.0.1i-orig/crypto/x509/Makefile openssl-1.0.1i/crypto/x509/M diff -Naur openssl-1.0.1i-orig/crypto/x509/x509_def.c openssl-1.0.1i/crypto/x509/x509_def.c --- openssl-1.0.1i-orig/crypto/x509/x509_def.c 2014-07-22 23:41:23.000000000 +0400 +++ openssl-1.0.1i/crypto/x509/x509_def.c 2014-08-08 00:28:13.366200000 +0400 -@@ -58,20 +58,39 @@ +@@ -58,27 +58,46 @@ #include #include "cryptlib.h" @@ -717,20 +718,27 @@ diff -Naur openssl-1.0.1i-orig/crypto/x509/x509_def.c openssl-1.0.1i/crypto/x509 +} + const char *X509_get_default_private_dir(void) -- { return(X509_PRIVATE_DIR); } -+ { return openssl_relocation(X509_PRIVATE_DIR); } - + { +- return (X509_PRIVATE_DIR); ++ return openssl_relocation(X509_PRIVATE_DIR); + } + const char *X509_get_default_cert_area(void) -- { return(X509_CERT_AREA); } -+ { return openssl_relocation(X509_CERT_AREA); } + { +- return (X509_CERT_AREA); ++ return openssl_relocation(X509_CERT_AREA); + } const char *X509_get_default_cert_dir(void) -- { return(X509_CERT_DIR); } -+ { return openssl_relocation(X509_CERT_DIR); } + { +- return (X509_CERT_DIR); ++ return openssl_relocation(X509_CERT_DIR); + } const char *X509_get_default_cert_file(void) -- { return(X509_CERT_FILE); } -+ { return openssl_relocation(X509_CERT_FILE); } + { +- return (X509_CERT_FILE); ++ return openssl_relocation(X509_CERT_FILE); + } const char *X509_get_default_cert_dir_env(void) - { return(X509_CERT_DIR_EVP); } From 6cd7b8694d08271feae8346c0f74ea4c75c80003 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 24 Jan 2015 13:40:38 +0300 Subject: [PATCH 0408/2060] mingw-w64 runtime update to git SHA [77f3bca] + patch for emulating _sopen_s --- mingw-w64-crt-git/PKGBUILD | 9 +- mingw-w64-crt-git/_sopen_s.diff | 263 ++++++++++++++++++++++++++++ mingw-w64-headers-git/PKGBUILD | 10 +- mingw-w64-headers-git/_sopen_s.diff | 263 ++++++++++++++++++++++++++++ mingw-w64-tools-git/PKGBUILD | 2 +- 5 files changed, 539 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-crt-git/_sopen_s.diff create mode 100644 mingw-w64-headers-git/_sopen_s.diff diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 4c6029c8c4..613a1f59c4 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _ver_base=4.0.0 -pkgver=4.0.0.4402.95c900f +pkgver=4.0.0.4417.77f3bca pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -16,8 +16,10 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-binuti provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' 'staticlibs' '!buildflags' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=('SKIP') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" + _sopen_s.diff) +md5sums=('SKIP' + '50761de966d539f14cf17d4c2ff75127') pkgver() { cd "$srcdir/${_realname}" @@ -26,6 +28,7 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} + patch -p1 -i ${srcdir}/_sopen_s.diff autoreconf -fiv } diff --git a/mingw-w64-crt-git/_sopen_s.diff b/mingw-w64-crt-git/_sopen_s.diff new file mode 100644 index 0000000000..79d2cfb26c --- /dev/null +++ b/mingw-w64-crt-git/_sopen_s.diff @@ -0,0 +1,263 @@ +New _sopen_s emulation. + + mingw-w64-crt/Makefile.am | 1 + + mingw-w64-crt/lib32/msvcr100.def.in | 2 +- + mingw-w64-crt/lib32/msvcr110.def.in | 2 +- + mingw-w64-crt/lib32/msvcr90.def.in | 2 +- + mingw-w64-crt/lib32/msvcr90d.def.in | 2 +- + mingw-w64-crt/lib32/msvcrt.def.in | 2 +- + mingw-w64-crt/lib64/msvcr100.def.in | 2 +- + mingw-w64-crt/lib64/msvcr110.def.in | 2 +- + mingw-w64-crt/lib64/msvcr90.def.in | 2 +- + mingw-w64-crt/lib64/msvcr90d.def.in | 2 +- + mingw-w64-crt/lib64/msvcrt.def.in | 2 +- + mingw-w64-crt/libarm32/msvcr110.def | 2 +- + mingw-w64-crt/libarm32/msvcr120_clr0400.def | 2 +- + mingw-w64-crt/libarm32/msvcrt.def | 2 +- + mingw-w64-crt/secapi/_sopen_s.c | 43 +++++++++++++++++++++++++++++ + mingw-w64-headers/crt/io.h | 2 +- + 16 files changed, 58 insertions(+), 14 deletions(-) + +diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am +index 3348ea2..4c5bf28 100644 +--- a/mingw-w64-crt/Makefile.am ++++ b/mingw-w64-crt/Makefile.am +@@ -170,6 +170,7 @@ src_msvcrt=\ + secapi/_localtime32_s.c \ + secapi/_localtime64_s.c \ + secapi/_mktemp_s.c \ ++ secapi/_sopen_s.c \ + secapi/_strdate_s.c \ + secapi/_strtime_s.c \ + secapi/_umask_s.c \ +diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in +index a1d7447..2472320 100644 +--- a/mingw-w64-crt/lib32/msvcr100.def.in ++++ b/mingw-w64-crt/lib32/msvcr100.def.in +@@ -1344,7 +1344,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in +index f9f0294..d9854dc 100644 +--- a/mingw-w64-crt/lib32/msvcr110.def.in ++++ b/mingw-w64-crt/lib32/msvcr110.def.in +@@ -1477,7 +1477,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in +index 394d7f5..7d8ef3c 100644 +--- a/mingw-w64-crt/lib32/msvcr90.def.in ++++ b/mingw-w64-crt/lib32/msvcr90.def.in +@@ -978,7 +978,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in b/mingw-w64-crt/lib32/msvcr90d.def.in +index 8846e13..a3f587a 100644 +--- a/mingw-w64-crt/lib32/msvcr90d.def.in ++++ b/mingw-w64-crt/lib32/msvcr90d.def.in +@@ -1042,7 +1042,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib32/msvcrt.def.in b/mingw-w64-crt/lib32/msvcrt.def.in +index 496e8cf..71bdf56 100644 +--- a/mingw-w64-crt/lib32/msvcrt.def.in ++++ b/mingw-w64-crt/lib32/msvcrt.def.in +@@ -1039,7 +1039,7 @@ _snwprintf_s_l + _snwscanf_l + _snwscanf_s + _snwscanf_s_l +-_sopen_s DATA ++; _sopen_s replaced by emu + _splitpath_s + _sprintf_l + _sprintf_p_l +diff --git a/mingw-w64-crt/lib64/msvcr100.def.in b/mingw-w64-crt/lib64/msvcr100.def.in +index a3ba8cd..384fc64 100644 +--- a/mingw-w64-crt/lib64/msvcr100.def.in ++++ b/mingw-w64-crt/lib64/msvcr100.def.in +@@ -1292,7 +1292,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib64/msvcr110.def.in b/mingw-w64-crt/lib64/msvcr110.def.in +index 6e8a487..65f3122 100644 +--- a/mingw-w64-crt/lib64/msvcr110.def.in ++++ b/mingw-w64-crt/lib64/msvcr110.def.in +@@ -1416,7 +1416,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib64/msvcr90.def.in b/mingw-w64-crt/lib64/msvcr90.def.in +index 7b74907..5fd5749 100644 +--- a/mingw-w64-crt/lib64/msvcr90.def.in ++++ b/mingw-w64-crt/lib64/msvcr90.def.in +@@ -912,7 +912,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib64/msvcr90d.def.in b/mingw-w64-crt/lib64/msvcr90d.def.in +index 4649135..1454d29 100644 +--- a/mingw-w64-crt/lib64/msvcr90d.def.in ++++ b/mingw-w64-crt/lib64/msvcr90d.def.in +@@ -970,7 +970,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib64/msvcrt.def.in b/mingw-w64-crt/lib64/msvcrt.def.in +index ab42da0..946c200 100644 +--- a/mingw-w64-crt/lib64/msvcrt.def.in ++++ b/mingw-w64-crt/lib64/msvcrt.def.in +@@ -715,7 +715,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/libarm32/msvcr110.def b/mingw-w64-crt/libarm32/msvcr110.def +index 40a4093..c22973f 100644 +--- a/mingw-w64-crt/libarm32/msvcr110.def ++++ b/mingw-w64-crt/libarm32/msvcr110.def +@@ -1065,7 +1065,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/libarm32/msvcr120_clr0400.def b/mingw-w64-crt/libarm32/msvcr120_clr0400.def +index 32d7965..c3232e9 100644 +--- a/mingw-w64-crt/libarm32/msvcr120_clr0400.def ++++ b/mingw-w64-crt/libarm32/msvcr120_clr0400.def +@@ -1064,7 +1064,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/libarm32/msvcrt.def b/mingw-w64-crt/libarm32/msvcrt.def +index d43b417..2533d5a 100644 +--- a/mingw-w64-crt/libarm32/msvcrt.def ++++ b/mingw-w64-crt/libarm32/msvcrt.def +@@ -699,7 +699,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/secapi/_sopen_s.c b/mingw-w64-crt/secapi/_sopen_s.c +new file mode 100644 +index 0000000..7d9645e +--- /dev/null ++++ b/mingw-w64-crt/secapi/_sopen_s.c +@@ -0,0 +1,43 @@ ++#include ++#include ++#include ++#include ++ ++errno_t __cdecl _sopen_s(int *, const char *, int, int, int); ++static errno_t __cdecl _int_sopen_s(int *, const char *, int, int, int); ++static errno_t __cdecl _stub(int *, const char *, int, int, int); ++ ++errno_t __cdecl (*__MINGW_IMP_SYMBOL(_sopen_s))(int *, const char *, int, int, int) = _stub; ++ ++static errno_t __cdecl ++_stub (int* pfh, const char *filename, int oflag, int shflag, int pmode) ++{ ++ errno_t __cdecl (*f)(int *, const char *, int, int, int) = __MINGW_IMP_SYMBOL(_sopen_s); ++ ++ if (f == _stub) { ++ f = (errno_t __cdecl (*)(int *, const char *, int, int, int)) ++ GetProcAddress (__mingw_get_msvcrt_handle (), "_sopen_s"); ++ if (f == NULL) ++ f = _int_sopen_s; ++ __MINGW_IMP_SYMBOL(_sopen_s) = f; ++ } ++ ++ return (*f)(pfh, filename, oflag, shflag, pmode); ++} ++ ++static errno_t __cdecl _int_sopen_s(int* pfh, const char *filename, int oflag, int shflag, int pmode) ++{ ++ if (pfh == NULL || filename == NULL) { ++ if (pfh != NULL) *pfh = -1; ++ errno = EINVAL; ++ return EINVAL; ++ } ++ ++ *pfh = _sopen(filename, oflag, shflag, pmode); ++ return errno; ++} ++ ++errno_t __cdecl _sopen_s(int* pfh, const char *filename, int oflag, int shflag, int pmode) ++{ ++ return _stub (pfh, filename, oflag, shflag, pmode); ++} +diff --git a/mingw-w64-headers/crt/io.h b/mingw-w64-headers/crt/io.h +index 0adaa82..91ad46e 100644 +--- a/mingw-w64-headers/crt/io.h ++++ b/mingw-w64-headers/crt/io.h +@@ -271,7 +271,7 @@ _CRTIMP char* __cdecl _getcwd (char*, int); + #endif /* _UWIN */ + #endif /* Not NO_OLDNAMES */ + +- _CRTIMP errno_t __cdecl _sopen_s(int *_FileHandle,const char *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionMode); ++ errno_t __cdecl _sopen_s(int *_FileHandle,const char *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionMode); + + _CRTIMP int __cdecl _open(const char *_Filename,int _OpenFlag,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; + _CRTIMP int __cdecl _sopen(const char *_Filename,int _OpenFlag,int _ShareFlag,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 87ebc9a7fb..9cc9d3c21b 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -1,12 +1,11 @@ # Maintainer: Alexey Pavlov -# Contributor: Ray Donnelly _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" _ver_base=4.0.0 -pkgver=4.0.0.4403.e38d79f +pkgver=4.0.0.4417.77f3bca pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" @@ -16,8 +15,10 @@ makedepends=('git') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' '!libtool' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=('SKIP') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" + _sopen_s.diff) +md5sums=('SKIP' + '50761de966d539f14cf17d4c2ff75127') pkgver() { cd "$srcdir/$_realname" @@ -26,6 +27,7 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} + patch -p1 -i ${srcdir}/_sopen_s.diff } build() { diff --git a/mingw-w64-headers-git/_sopen_s.diff b/mingw-w64-headers-git/_sopen_s.diff new file mode 100644 index 0000000000..79d2cfb26c --- /dev/null +++ b/mingw-w64-headers-git/_sopen_s.diff @@ -0,0 +1,263 @@ +New _sopen_s emulation. + + mingw-w64-crt/Makefile.am | 1 + + mingw-w64-crt/lib32/msvcr100.def.in | 2 +- + mingw-w64-crt/lib32/msvcr110.def.in | 2 +- + mingw-w64-crt/lib32/msvcr90.def.in | 2 +- + mingw-w64-crt/lib32/msvcr90d.def.in | 2 +- + mingw-w64-crt/lib32/msvcrt.def.in | 2 +- + mingw-w64-crt/lib64/msvcr100.def.in | 2 +- + mingw-w64-crt/lib64/msvcr110.def.in | 2 +- + mingw-w64-crt/lib64/msvcr90.def.in | 2 +- + mingw-w64-crt/lib64/msvcr90d.def.in | 2 +- + mingw-w64-crt/lib64/msvcrt.def.in | 2 +- + mingw-w64-crt/libarm32/msvcr110.def | 2 +- + mingw-w64-crt/libarm32/msvcr120_clr0400.def | 2 +- + mingw-w64-crt/libarm32/msvcrt.def | 2 +- + mingw-w64-crt/secapi/_sopen_s.c | 43 +++++++++++++++++++++++++++++ + mingw-w64-headers/crt/io.h | 2 +- + 16 files changed, 58 insertions(+), 14 deletions(-) + +diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am +index 3348ea2..4c5bf28 100644 +--- a/mingw-w64-crt/Makefile.am ++++ b/mingw-w64-crt/Makefile.am +@@ -170,6 +170,7 @@ src_msvcrt=\ + secapi/_localtime32_s.c \ + secapi/_localtime64_s.c \ + secapi/_mktemp_s.c \ ++ secapi/_sopen_s.c \ + secapi/_strdate_s.c \ + secapi/_strtime_s.c \ + secapi/_umask_s.c \ +diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in +index a1d7447..2472320 100644 +--- a/mingw-w64-crt/lib32/msvcr100.def.in ++++ b/mingw-w64-crt/lib32/msvcr100.def.in +@@ -1344,7 +1344,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in +index f9f0294..d9854dc 100644 +--- a/mingw-w64-crt/lib32/msvcr110.def.in ++++ b/mingw-w64-crt/lib32/msvcr110.def.in +@@ -1477,7 +1477,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in +index 394d7f5..7d8ef3c 100644 +--- a/mingw-w64-crt/lib32/msvcr90.def.in ++++ b/mingw-w64-crt/lib32/msvcr90.def.in +@@ -978,7 +978,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in b/mingw-w64-crt/lib32/msvcr90d.def.in +index 8846e13..a3f587a 100644 +--- a/mingw-w64-crt/lib32/msvcr90d.def.in ++++ b/mingw-w64-crt/lib32/msvcr90d.def.in +@@ -1042,7 +1042,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib32/msvcrt.def.in b/mingw-w64-crt/lib32/msvcrt.def.in +index 496e8cf..71bdf56 100644 +--- a/mingw-w64-crt/lib32/msvcrt.def.in ++++ b/mingw-w64-crt/lib32/msvcrt.def.in +@@ -1039,7 +1039,7 @@ _snwprintf_s_l + _snwscanf_l + _snwscanf_s + _snwscanf_s_l +-_sopen_s DATA ++; _sopen_s replaced by emu + _splitpath_s + _sprintf_l + _sprintf_p_l +diff --git a/mingw-w64-crt/lib64/msvcr100.def.in b/mingw-w64-crt/lib64/msvcr100.def.in +index a3ba8cd..384fc64 100644 +--- a/mingw-w64-crt/lib64/msvcr100.def.in ++++ b/mingw-w64-crt/lib64/msvcr100.def.in +@@ -1292,7 +1292,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib64/msvcr110.def.in b/mingw-w64-crt/lib64/msvcr110.def.in +index 6e8a487..65f3122 100644 +--- a/mingw-w64-crt/lib64/msvcr110.def.in ++++ b/mingw-w64-crt/lib64/msvcr110.def.in +@@ -1416,7 +1416,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib64/msvcr90.def.in b/mingw-w64-crt/lib64/msvcr90.def.in +index 7b74907..5fd5749 100644 +--- a/mingw-w64-crt/lib64/msvcr90.def.in ++++ b/mingw-w64-crt/lib64/msvcr90.def.in +@@ -912,7 +912,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib64/msvcr90d.def.in b/mingw-w64-crt/lib64/msvcr90d.def.in +index 4649135..1454d29 100644 +--- a/mingw-w64-crt/lib64/msvcr90d.def.in ++++ b/mingw-w64-crt/lib64/msvcr90d.def.in +@@ -970,7 +970,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/lib64/msvcrt.def.in b/mingw-w64-crt/lib64/msvcrt.def.in +index ab42da0..946c200 100644 +--- a/mingw-w64-crt/lib64/msvcrt.def.in ++++ b/mingw-w64-crt/lib64/msvcrt.def.in +@@ -715,7 +715,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/libarm32/msvcr110.def b/mingw-w64-crt/libarm32/msvcr110.def +index 40a4093..c22973f 100644 +--- a/mingw-w64-crt/libarm32/msvcr110.def ++++ b/mingw-w64-crt/libarm32/msvcr110.def +@@ -1065,7 +1065,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/libarm32/msvcr120_clr0400.def b/mingw-w64-crt/libarm32/msvcr120_clr0400.def +index 32d7965..c3232e9 100644 +--- a/mingw-w64-crt/libarm32/msvcr120_clr0400.def ++++ b/mingw-w64-crt/libarm32/msvcr120_clr0400.def +@@ -1064,7 +1064,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/libarm32/msvcrt.def b/mingw-w64-crt/libarm32/msvcrt.def +index d43b417..2533d5a 100644 +--- a/mingw-w64-crt/libarm32/msvcrt.def ++++ b/mingw-w64-crt/libarm32/msvcrt.def +@@ -699,7 +699,7 @@ _snwscanf_l + _snwscanf_s + _snwscanf_s_l + _sopen +-_sopen_s ++; _sopen_s replaced by emu + _spawnl + _spawnle + _spawnlp +diff --git a/mingw-w64-crt/secapi/_sopen_s.c b/mingw-w64-crt/secapi/_sopen_s.c +new file mode 100644 +index 0000000..7d9645e +--- /dev/null ++++ b/mingw-w64-crt/secapi/_sopen_s.c +@@ -0,0 +1,43 @@ ++#include ++#include ++#include ++#include ++ ++errno_t __cdecl _sopen_s(int *, const char *, int, int, int); ++static errno_t __cdecl _int_sopen_s(int *, const char *, int, int, int); ++static errno_t __cdecl _stub(int *, const char *, int, int, int); ++ ++errno_t __cdecl (*__MINGW_IMP_SYMBOL(_sopen_s))(int *, const char *, int, int, int) = _stub; ++ ++static errno_t __cdecl ++_stub (int* pfh, const char *filename, int oflag, int shflag, int pmode) ++{ ++ errno_t __cdecl (*f)(int *, const char *, int, int, int) = __MINGW_IMP_SYMBOL(_sopen_s); ++ ++ if (f == _stub) { ++ f = (errno_t __cdecl (*)(int *, const char *, int, int, int)) ++ GetProcAddress (__mingw_get_msvcrt_handle (), "_sopen_s"); ++ if (f == NULL) ++ f = _int_sopen_s; ++ __MINGW_IMP_SYMBOL(_sopen_s) = f; ++ } ++ ++ return (*f)(pfh, filename, oflag, shflag, pmode); ++} ++ ++static errno_t __cdecl _int_sopen_s(int* pfh, const char *filename, int oflag, int shflag, int pmode) ++{ ++ if (pfh == NULL || filename == NULL) { ++ if (pfh != NULL) *pfh = -1; ++ errno = EINVAL; ++ return EINVAL; ++ } ++ ++ *pfh = _sopen(filename, oflag, shflag, pmode); ++ return errno; ++} ++ ++errno_t __cdecl _sopen_s(int* pfh, const char *filename, int oflag, int shflag, int pmode) ++{ ++ return _stub (pfh, filename, oflag, shflag, pmode); ++} +diff --git a/mingw-w64-headers/crt/io.h b/mingw-w64-headers/crt/io.h +index 0adaa82..91ad46e 100644 +--- a/mingw-w64-headers/crt/io.h ++++ b/mingw-w64-headers/crt/io.h +@@ -271,7 +271,7 @@ _CRTIMP char* __cdecl _getcwd (char*, int); + #endif /* _UWIN */ + #endif /* Not NO_OLDNAMES */ + +- _CRTIMP errno_t __cdecl _sopen_s(int *_FileHandle,const char *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionMode); ++ errno_t __cdecl _sopen_s(int *_FileHandle,const char *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionMode); + + _CRTIMP int __cdecl _open(const char *_Filename,int _OpenFlag,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; + _CRTIMP int __cdecl _sopen(const char *_Filename,int _OpenFlag,int _ShareFlag,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index 88a1ad0091..0bb01abce4 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -7,7 +7,7 @@ replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=4.0.0 -pkgver=4.0.0.4328.a913346 +pkgver=4.0.0.4417.77f3bca pkgrel=1 pkgdesc="MinGW-w64 tools" arch=('any') From 168539aacf01f4e1619566ddea115aea6b7a9661 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 24 Jan 2015 14:08:28 +0300 Subject: [PATCH 0409/2060] bison: Update to 3.0.4 --- mingw-w64-bison/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-bison/PKGBUILD b/mingw-w64-bison/PKGBUILD index 44706ae73d..c2c50d9471 100644 --- a/mingw-w64-bison/PKGBUILD +++ b/mingw-w64-bison/PKGBUILD @@ -3,7 +3,7 @@ _realname=bison pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.0.3 +pkgver=3.0.4 pkgrel=1 pkgdesc="The GNU general-purpose parser generator" arch=('any') @@ -16,7 +16,7 @@ source=(http://ftp.gnu.org/gnu/bison/${_realname}-${pkgver}.tar.xz 0002-add-relocation-support.patch 0003-create_pipe-uses-O_TEXT-not-O_BINARY-mode.patch 0004-open-source-file-in-binary-mode-MS-ftell-bug-ks-68337.patch) -md5sums=('673effdf277cd49304fc62dd0ddd2faf' +md5sums=('c342201de104cc9ce0a21e0ad10d4021' 'b1979ec2cb325b0ecbd3b331a52792a9' '86c4c47f3ddec258ccd8a4751a02494f' 'cc720e2a9fc8f7849b0cfb165caf80fa' From c3a0f09fd67150b58cb52dae75f5a7674b3b8cf4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 24 Jan 2015 14:43:09 +0300 Subject: [PATCH 0410/2060] harfbuzz: Update to 0.9.38 --- mingw-w64-harfbuzz/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 5f7101874f..fd18b5be99 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -2,7 +2,7 @@ _realname=harfbuzz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.37 +pkgver=0.9.38 pkgrel=1 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') @@ -19,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") -sha256sums=('255f3b3842dead16863d1d0c216643d97b80bfa087aaa8fc5926da24ac120207') +sha256sums=('6736f383b4edfcaaeb6f3292302ca382d617d8c79948bb2dd2e8f86cdccfd514') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 03ee323ef10882d97ad771537354376fdd5072bd Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 24 Jan 2015 15:53:13 +0300 Subject: [PATCH 0411/2060] imagemagick: Rebuild with _sopen_s fix. --- mingw-w64-imagemagick/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index b2050b839e..1c1f33bacb 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -3,7 +3,7 @@ _realname=imagemagick pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=6.9.0.4 -pkgrel=1 +pkgrel=2 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') url="http://www.imagemagick.org/" From 13cb53b93661096653a120638c7adc1b8c65237c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 24 Jan 2015 15:56:54 +0300 Subject: [PATCH 0412/2060] cmake: Update to 3.1.1 --- mingw-w64-cmake/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 06593c0b6f..eed6f51e3b 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -2,8 +2,8 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.1.0 -pkgrel=2 +pkgver=3.1.1 +pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -21,7 +21,7 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "dont-install-bundle.patch" "wxWidgets-module.patch" "qt5-static-plugin-support.patch") -md5sums=('188eb7dc9b1b82b363bc51c0d3f1d461' +md5sums=('0ae4f25dbec66697c0c3cec1b9e885ae' '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' '09ea9092ca85e482de79886bd0c09144' From 2eb3e0e892a7968cc9d34952939d6cee832e26e6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 24 Jan 2015 16:06:21 +0300 Subject: [PATCH 0413/2060] Mako: Update to 1.0.1 --- mingw-w64-python-mako/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-python-mako/PKGBUILD b/mingw-w64-python-mako/PKGBUILD index d1e37c8416..42940fe1f1 100644 --- a/mingw-w64-python-mako/PKGBUILD +++ b/mingw-w64-python-mako/PKGBUILD @@ -3,8 +3,8 @@ _realname=mako pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.0.0 -pkgrel=2 +pkgver=1.0.1 +pkgrel=1 pkgdesc="A super-fast templating language that borrows the best ideas from the existing templating languages (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -20,7 +20,7 @@ checkdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose" "${MINGW_PACKAGE_PREFIX}-python3-nose") options=('staticlibs') source=("https://pypi.python.org/packages/source/M/Mako/Mako-${pkgver}.tar.gz") -md5sums=('ae27c6512832fe528bb67f1a851921cc') +md5sums=('9f0aafd177b039ef67b90ea350497a54') prepare() { cd ${srcdir} From e22b61f57b3fd807f3f0da74ab06ede87b0ea478 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 24 Jan 2015 17:04:32 +0300 Subject: [PATCH 0414/2060] ipython: More conflict fixes. --- mingw-w64-python-ipython/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-python-ipython/PKGBUILD b/mingw-w64-python-ipython/PKGBUILD index bf6b57917e..fe3620e06a 100644 --- a/mingw-w64-python-ipython/PKGBUILD +++ b/mingw-w64-python-ipython/PKGBUILD @@ -77,6 +77,7 @@ package_python2-ipython() { # Fix bin collisions find "$pkgdir${MINGW_PREFIX}/bin/" -type f -regex '.*[^2].exe$' -delete find "$pkgdir${MINGW_PREFIX}/bin/" -type f -regex '.*[^2]-script.py$' -delete + find "$pkgdir${MINGW_PREFIX}/bin/" -type f -regex '.*[^2].exe.manifest$' -delete # Fix manpage collisions cd "$pkgdir${MINGW_PREFIX}/share/man/man1/" From 34afddf3d47c76fc839a60f94a7df207a433e7e5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 25 Jan 2015 20:32:58 +0300 Subject: [PATCH 0415/2060] collada-dom: Don't build separate libraries. Fix pkg-config files. --- ... => 001-collada-2.4.0-mingw-w64-fix.patch} | 45 ++++++++-- .../002-fix-pkg-config.patch | 16 ++++ mingw-w64-collada-dom-svn/PKGBUILD | 85 ++++++++----------- .../build-separate-libs.patch | 50 ----------- 4 files changed, 90 insertions(+), 106 deletions(-) rename mingw-w64-collada-dom-svn/{collada-2.4.0-mingw-w64-fix.patch => 001-collada-2.4.0-mingw-w64-fix.patch} (59%) create mode 100644 mingw-w64-collada-dom-svn/002-fix-pkg-config.patch delete mode 100644 mingw-w64-collada-dom-svn/build-separate-libs.patch diff --git a/mingw-w64-collada-dom-svn/collada-2.4.0-mingw-w64-fix.patch b/mingw-w64-collada-dom-svn/001-collada-2.4.0-mingw-w64-fix.patch similarity index 59% rename from mingw-w64-collada-dom-svn/collada-2.4.0-mingw-w64-fix.patch rename to mingw-w64-collada-dom-svn/001-collada-2.4.0-mingw-w64-fix.patch index 1af857e3c2..7ab99260fd 100644 --- a/mingw-w64-collada-dom-svn/collada-2.4.0-mingw-w64-fix.patch +++ b/mingw-w64-collada-dom-svn/001-collada-2.4.0-mingw-w64-fix.patch @@ -1,5 +1,14 @@ --- collada-dom/CMakeLists.txt.orig 2013-12-25 21:37:14.645200000 +0400 +++ collada-dom/CMakeLists.txt 2013-12-25 21:53:03.151000000 +0400 +@@ -144,7 +150,7 @@ + set(Boost_CFLAGS "-DBOOST_ALL_DYN_LINK -DBOOST_ALL_NO_LIB") + endif() + +-set(Boost_ADDITIONAL_VERSIONS "1.46" "1.45" "1.44" "1.43" "1.42" "1.41" "1.40" "1.39" "1.38" "1.37.0" "1.37" "1.35.0" "1.34.1" "1.34.0" "1.34" "1.33.1" "1.33.0" "1.33") ++set(Boost_ADDITIONAL_VERSIONS "1.57" "1.56" "1.55" "1.55.0" "1.46" "1.45" "1.44" "1.43" "1.42" "1.41" "1.40" "1.39" "1.38" "1.37.0" "1.37" "1.35.0" "1.34.1" "1.34.0" "1.34" "1.33.1" "1.33.0" "1.33") + + if( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" ) + set(Boost_INCLUDE_DIR $ENV{BOOST_INCLUDEDIR}) @@ -182,7 +182,7 @@ set(COLLADA_DOM_BOOST_LIB_DIRS "${COLLADA_DOM_BOOST_LIB_DIRS} -L${ldir}") endforeach() @@ -9,6 +18,30 @@ set(EXTRA_COMPILE_FLAGS "${COLLADA_DOM_EXTERNAL_FLAGS} -DCOLLADA_DOM_NAMESPACE -fPIC") else() set(EXTRA_COMPILE_FLAGS "${COLLADA_DOM_EXTERNAL_FLAGS} -DCOLLADA_DOM_NAMESPACE") +@@ -252,20 +258,20 @@ + + add_subdirectory(dom) + +-if(UNIX) ++if(UNIX OR MINGW) + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/collada-dom.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/collada-dom.pc" @ONLY IMMEDIATE) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/collada-dom.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig COMPONENT ${COMPONENT_PREFIX}-dev) + endif() + + if( OPT_COLLADA15 ) +- if(UNIX) ++ if(UNIX OR MINGW) + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/collada-dom-150.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/collada-dom-150.pc" @ONLY IMMEDIATE) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/collada-dom-150.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig COMPONENT ${COMPONENT_PREFIX}-dev) + endif() + endif() + + if( OPT_COLLADA14 ) +- if(UNIX) ++ if(UNIX OR MINGW) + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/collada-dom-141.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/collada-dom-141.pc" @ONLY IMMEDIATE) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/collada-dom-141.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig COMPONENT ${COMPONENT_PREFIX}-dev) + endif() diff -Naur collada-dom-orig/dom/include/dae/daeUtils.h collada-dom/dom/include/dae/daeUtils.h --- collada-dom-orig/dom/include/dae/daeUtils.h 2013-09-04 20:43:13.000000000 +0400 +++ collada-dom/dom/include/dae/daeUtils.h 2013-09-05 16:42:38.707031200 +0400 @@ -56,13 +89,11 @@ diff -Naur collada-dom-orig/dom/src/dae/daeUtils.cpp collada-dom/dom/src/dae/dae diff -Naur collada-dom-orig/dom/external-libs/minizip-1.1/CMakeLists.txt collada-dom/dom/external-libs/minizip-1.1/CMakeLists.txt --- collada-dom-orig/dom/external-libs/minizip-1.1/CMakeLists.txt 2013-09-04 20:43:11.000000000 +0400 +++ collada-dom/dom/external-libs/minizip-1.1/CMakeLists.txt 2013-09-05 18:08:14.522460900 +0400 -@@ -1,8 +1,5 @@ +@@ -1,6 +1,6 @@ include_directories(${ZLIB_INCLUDE_DIR}) --set(minizip_files crypt.h ioapi.c ioapi.h mztools.c mztools.h unzip.c unzip.h zip.c zip.h) + set(minizip_files crypt.h ioapi.c ioapi.h mztools.c mztools.h unzip.c unzip.h zip.c zip.h) -if( MSVC ) -- set(minizip_files ${minizip_files} iowin32.c iowin32.h) --endif() -+set(minizip_files crypt.h ioapi.c ioapi.h mztools.c mztools.h unzip.c unzip.h zip.c zip.h iowin32.c iowin32.h) ++if(WIN32) + set(minizip_files ${minizip_files} iowin32.c iowin32.h) + endif() add_library(minizip STATIC ${minizip_files}) - set_target_properties(minizip PROPERTIES COMPILE_FLAGS "${EXTRA_COMPILE_FLAGS}") - target_link_libraries(minizip ${ZLIB_LIBRARIES}) diff --git a/mingw-w64-collada-dom-svn/002-fix-pkg-config.patch b/mingw-w64-collada-dom-svn/002-fix-pkg-config.patch new file mode 100644 index 0000000000..e24027780c --- /dev/null +++ b/mingw-w64-collada-dom-svn/002-fix-pkg-config.patch @@ -0,0 +1,16 @@ +--- collada-dom/collada-dom.pc.in.orig 2015-01-22 15:35:43.690800000 +0300 ++++ collada-dom/collada-dom.pc.in 2015-01-22 15:36:23.689200000 +0300 +@@ -2,11 +2,11 @@ + + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=@CMAKE_INSTALL_PREFIX@/bin +-libdir=@CMAKE_INSTALL_PREFIX@/lib@LIB_SUFFIX% ++libdir=@CMAKE_INSTALL_PREFIX@/lib@LIB_SUFFIX@ + includedir=@CMAKE_INSTALL_PREFIX@/@COLLADA_DOM_INCLUDE_INSTALL_DIR@ + + Name: collada-dom +-Description: COLLADA Document Object Model (DOM), 1.4 support=%OPT_COLLADA14%, 1.5 support=%OPT_COLLADA15% ++Description: COLLADA Document Object Model (DOM), 1.4 support=@OPT_COLLADA14@, 1.5 support=@OPT_COLLADA15@ + Version: @COLLADA_DOM_VERSION@ + URL: http://sourceforge.net/projects/collada-dom + Libs: -L${libdir} -lcollada-dom@COLLADA_DOM_LIBRARY_SUFFIX@ diff --git a/mingw-w64-collada-dom-svn/PKGBUILD b/mingw-w64-collada-dom-svn/PKGBUILD index 2a0acbd890..f432656137 100644 --- a/mingw-w64-collada-dom-svn/PKGBUILD +++ b/mingw-w64-collada-dom-svn/PKGBUILD @@ -1,31 +1,29 @@ # Maintainer: Alexey Pavlov _realname=collada-dom - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _base_ver=2.4.1 pkgver=2.4.1.r889 -pkgrel=2 +pkgrel=3 pkgdesc="API that provides a C++ object representation of a COLLADA XML instance document (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/collada-dom/" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-cmake" "subversion") -depends=( - "${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-pcre" - "${MINGW_PACKAGE_PREFIX}-libxml2") +depends=("${MINGW_PACKAGE_PREFIX}-bzip2" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-pcre" + "${MINGW_PACKAGE_PREFIX}-zlib") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('staticlibs' 'strip' 'buildflags') source=("${_realname}"::"svn+svn://svn.code.sf.net/p/collada-dom/code/trunk" - collada-2.4.0-mingw-w64-fix.patch - build-separate-libs.patch) + 001-collada-2.4.0-mingw-w64-fix.patch + 002-fix-pkg-config.patch) md5sums=('SKIP' - '770dddcb6b498d3afc005fcebb129d98' - 'd8844a5233791acb033bbcfb8b10447a') + 'b500fff9e44b0e556f847838e5644592' + '538a75efbdcf1344103176e4a8c41fc6') pkgver() { cd "$srcdir/${_realname}" @@ -35,61 +33,50 @@ pkgver() { prepare() { cd "${srcdir}/${_realname}" - patch -p1 -i ${srcdir}/collada-2.4.0-mingw-w64-fix.patch - patch -p1 -i ${srcdir}/build-separate-libs.patch + patch -p1 -i ${srcdir}/001-collada-2.4.0-mingw-w64-fix.patch + patch -p1 -i ${srcdir}/002-fix-pkg-config.patch + #sed -i "s|#include |#include |g" dom/include/dae/daeZAEUncompressHandler.h } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + mkdir -p build-${MINGW_CHOST} - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - - cp -r ${srcdir}/${_realname} ${srcdir}/build14 - cp -r ${srcdir}/${_realname} ${srcdir}/build15 + CPPFLAGS+=" -I ${MINGW_PREFIX}/include/minizip" - CFLAGS+=" -I ${MINGW_PREFIX}/include -I ${MINGW_PREFIX}/include/minizip" - CPPFLAGS+=" -I ${MINGW_PREFIX}/include -I ${MINGW_PREFIX}/include/minizip" - CXXFLAGS+=" -I ${MINGW_PREFIX}/include -I ${MINGW_PREFIX}/include/minizip" - - cd "${srcdir}/build14" + cd "${srcdir}/build-${MINGW_CHOST}" ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ -DOPT_COLLADA14:BOOL=ON \ - -DOPT_COLLADA15:BOOL=OFF \ - -DCMAKE_BUILD_TYPE=RELEASE \ - -DBOOST_ROOT=${PREFIX_WIN} - make - - cd "${srcdir}/build15" - ${MINGW_PREFIX}/bin/cmake.exe \ - -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ - -DOPT_COLLADA14:BOOL=OFF \ -DOPT_COLLADA15:BOOL=ON \ -DCMAKE_BUILD_TYPE=RELEASE \ - -DBOOST_ROOT=${PREFIX_WIN} + -DBOOST_ROOT=${MINGW_PREFIX} \ + ../${_realname} make } package() { - cd "${srcdir}/build14" + cd "${srcdir}/build-${MINGW_CHOST}" make -j1 install - cp dom/src/1.4/*.a ${pkgdir}${MINGW_PREFIX}/lib/ - mv ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom-config.cmake ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom14-config.cmake + #cp dom/src/1.4/*.a ${pkgdir}${MINGW_PREFIX}/lib/ + #mv ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom-config.cmake ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom14-config.cmake - cd "${srcdir}/build15" - make -j1 install - cp dom/src/1.5/*.a ${pkgdir}${MINGW_PREFIX}/lib/ - mv ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom-config.cmake ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom15-config.cmake + #cd "${srcdir}/build15" + #make -j1 install + #cp dom/src/1.5/*.a ${pkgdir}${MINGW_PREFIX}/lib/ + #mv ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom-config.cmake ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom15-config.cmake mkdir -p ${pkgdir}${MINGW_PREFIX}/bin mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ - rm ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/collada-dom.pc + #rm ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/collada-dom.pc + + mkdir -p ${pkgdir}${MINGW_PREFIX} + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null + export PREFIX_WIN=`pwd -W` + popd > /dev/null + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ + -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/collada-dom.pc \ + -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/collada-dom-141.pc \ + -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/collada-dom-150.pc } diff --git a/mingw-w64-collada-dom-svn/build-separate-libs.patch b/mingw-w64-collada-dom-svn/build-separate-libs.patch deleted file mode 100644 index 888bf0ef8a..0000000000 --- a/mingw-w64-collada-dom-svn/build-separate-libs.patch +++ /dev/null @@ -1,50 +0,0 @@ ---- collada-dom/CMakeLists.txt.orig 2013-12-25 21:37:14.645200000 +0400 -+++ collada-dom/CMakeLists.txt 2013-12-25 21:53:03.151000000 +0400 -@@ -97,7 +97,13 @@ - endif() - set(COLLADA_DOM_LIBRARY_SUFFIX "${COLLADA_DOM_SOVERSION}-${COLLADA_PRECISION}-${MSVC_PREFIX}-mt") - else() -- set(COLLADA_DOM_LIBRARY_SUFFIX "${COLLADA_DOM_SOVERSION}-${COLLADA_PRECISION}") -+ if( OPT_COLLADA14 AND OPT_COLLADA15 ) -+ set(COLLADA_DOM_LIBRARY_SUFFIX "${COLLADA_DOM_SOVERSION}-${COLLADA_PRECISION}") -+ elseif( OPT_COLLADA15 ) -+ set(COLLADA_DOM_LIBRARY_SUFFIX "150") -+ elseif( OPT_COLLADA14 ) -+ set(COLLADA_DOM_LIBRARY_SUFFIX "141") -+ endif() - endif() - - include(CheckIncludeFile) -@@ -144,7 +150,7 @@ - set(Boost_CFLAGS "-DBOOST_ALL_DYN_LINK -DBOOST_ALL_NO_LIB") - endif() - --set(Boost_ADDITIONAL_VERSIONS "1.46" "1.45" "1.44" "1.43" "1.42" "1.41" "1.40" "1.39" "1.38" "1.37.0" "1.37" "1.35.0" "1.34.1" "1.34.0" "1.34" "1.33.1" "1.33.0" "1.33") -+set(Boost_ADDITIONAL_VERSIONS "1.55" "1.55.0" "1.46" "1.45" "1.44" "1.43" "1.42" "1.41" "1.40" "1.39" "1.38" "1.37.0" "1.37" "1.35.0" "1.34.1" "1.34.0" "1.34" "1.33.1" "1.33.0" "1.33") - - if( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" ) - set(Boost_INCLUDE_DIR $ENV{BOOST_INCLUDEDIR}) -@@ -252,20 +258,20 @@ - - add_subdirectory(dom) - --if(UNIX) -+if(UNIX OR MINGW) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/collada-dom.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/collada-dom.pc" @ONLY IMMEDIATE) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/collada-dom.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig COMPONENT ${COMPONENT_PREFIX}-dev) - endif() - - if( OPT_COLLADA15 ) -- if(UNIX) -+ if(UNIX OR MINGW) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/collada-dom-150.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/collada-dom-150.pc" @ONLY IMMEDIATE) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/collada-dom-150.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig COMPONENT ${COMPONENT_PREFIX}-dev) - endif() - endif() - - if( OPT_COLLADA14 ) -- if(UNIX) -+ if(UNIX OR MINGW) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/collada-dom-141.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/collada-dom-141.pc" @ONLY IMMEDIATE) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/collada-dom-141.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig COMPONENT ${COMPONENT_PREFIX}-dev) - endif() From 71c701174284f9bb10bba263aee764015870d118 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 25 Jan 2015 20:44:29 +0300 Subject: [PATCH 0416/2060] openscenegraph-git: Update to git SHA [6b9d3f7] --- mingw-w64-openscenegraph-git/PKGBUILD | 16 +- .../additional-gl-header.patch | 11 + .../find-collada.patch | 33 ++- .../osg-collada-dae-fixes.patch | 205 ------------------ 4 files changed, 35 insertions(+), 230 deletions(-) create mode 100644 mingw-w64-openscenegraph-git/additional-gl-header.patch delete mode 100644 mingw-w64-openscenegraph-git/osg-collada-dae-fixes.patch diff --git a/mingw-w64-openscenegraph-git/PKGBUILD b/mingw-w64-openscenegraph-git/PKGBUILD index 4f01980a74..6879f91eae 100644 --- a/mingw-w64-openscenegraph-git/PKGBUILD +++ b/mingw-w64-openscenegraph-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=OpenSceneGraph pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-git") -pkgver=r12969.497cd65 +pkgver=r13064.6b9d3f7 pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" arch=('any') @@ -39,13 +39,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" #conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('staticlibs' '!strip') source=("${_realname}"::"git+https://github.com/openscenegraph/osg.git" - osg-collada-dae-fixes.patch find-collada.patch - find-freetype.patch) + find-freetype.patch + additional-gl-header.patch) md5sums=('SKIP' - '45d0668f56c5e4ca58002f38fd3eb4a0' - '668def9c99f044db9a8215fa927d6ac2' - '9ab69e1cd26826196fac5b3f01e6cb95') + '18ce956c1889babc6515828b8200e864' + '9ab69e1cd26826196fac5b3f01e6cb95' + 'e889e10100a1f3e07212c01603712594') pkgver() { cd "$srcdir/$_realname" @@ -54,9 +54,9 @@ pkgver() { prepare() { cd "${srcdir}/${_realname}" - patch -p1 -i ${srcdir}/osg-collada-dae-fixes.patch patch -p1 -i ${srcdir}/find-collada.patch patch -p1 -i ${srcdir}/find-freetype.patch + patch -p1 -i ${srcdir}/additional-gl-header.patch } build() { @@ -76,11 +76,11 @@ build() { msg "Building ${builddir%-${MINGW_CHOST}} version..." + COLLADA_DIR=${MINGW_PREFIX} \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir%-git}${_postfix}-git${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=${builddir%-${MINGW_CHOST}} \ - -DACTUAL_3DPARTY_DIR=${MINGW_PREFIX} \ ${_opts} \ ../${_realname} diff --git a/mingw-w64-openscenegraph-git/additional-gl-header.patch b/mingw-w64-openscenegraph-git/additional-gl-header.patch new file mode 100644 index 0000000000..333cf52dd3 --- /dev/null +++ b/mingw-w64-openscenegraph-git/additional-gl-header.patch @@ -0,0 +1,11 @@ +--- OpenSceneGraph/CMakeLists.txt.orig 2015-01-25 14:09:28.105400000 +0300 ++++ OpenSceneGraph/CMakeLists.txt 2015-01-25 14:09:37.496600000 +0300 +@@ -508,7 +508,7 @@ + SET(OPENGL_HEADER2 "" CACHE STRING "#include<> line for additional OpenGL Headers if required") + ELSE() + SET(OPENGL_HEADER1 "#include " CACHE STRING "#include<> line for OpenGL Header") +- SET(OPENGL_HEADER2 "" CACHE STRING "#include<> line for additional OpenGL Headers if required") ++ SET(OPENGL_HEADER2 "#include " CACHE STRING "#include<> line for additional OpenGL Headers if required") + ENDIF() + ENDIF() + diff --git a/mingw-w64-openscenegraph-git/find-collada.patch b/mingw-w64-openscenegraph-git/find-collada.patch index a31c92ba78..debfd702c5 100644 --- a/mingw-w64-openscenegraph-git/find-collada.patch +++ b/mingw-w64-openscenegraph-git/find-collada.patch @@ -1,20 +1,19 @@ --- OpenSceneGraph-3.2.1-rc1/CMakeModules/FindCOLLADA.cmake.orig 2013-12-25 00:28:48.219200000 +0400 +++ OpenSceneGraph-3.2.1-rc1/CMakeModules/FindCOLLADA.cmake 2013-12-25 01:05:55.671600000 +0400 -@@ -19,7 +19,7 @@ +@@ -17,7 +17,7 @@ + # Check if COLLADA_DIR is set, otherwise use ACTUAL_3DPARTY_DIR: + SET( COLLADA_ENV_VAR_AVAILABLE $ENV{COLLADA_DIR} ) IF ( COLLADA_ENV_VAR_AVAILABLE ) - SET(COLLADA_DOM_ROOT "$ENV{COLLADA_DIR}/dom" CACHE PATH "Location of Collada DOM directory" FORCE) - ELSE ( COLLADA_ENV_VAR_AVAILABLE ) -- SET(COLLADA_DOM_ROOT "${ACTUAL_3DPARTY_DIR}/include/1.4/dom" CACHE PATH "Location of Collada DOM directory" FORCE) -+ SET(COLLADA_DOM_ROOT "${ACTUAL_3DPARTY_DIR}/include/collada-dom2.4/1.4/dom" CACHE PATH "Location of Collada DOM directory" FORCE) - ENDIF( COLLADA_ENV_VAR_AVAILABLE ) - - -@@ -66,7 +66,7 @@ - ) - - FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY -- NAMES collada_dom collada14dom Collada14Dom libcollada14dom21 libcollada14dom22 -+ NAMES collada_dom collada14dom Collada14Dom libcollada14dom21 libcollada14dom22 libcolladadom141 libcollada-dom141 - PATHS - ${COLLADA_DOM_ROOT}/build/${COLLADA_BUILDNAME}-1.4 - $ENV{COLLADA_DIR}/build/${COLLADA_BUILDNAME}-1.4 +- SET(COLLADA_DOM_ROOT "$ENV{COLLADA_DIR}/dom" CACHE PATH "Location of Collada DOM directory" FORCE) ++ SET(COLLADA_DOM_ROOT "$ENV{COLLADA_DIR}/include/collada-dom2.4/1.4/dom" CACHE PATH "Location of Collada DOM directory" FORCE) + ELSE () + SET(COLLADA_DOM_ROOT "${ACTUAL_3DPARTY_DIR}/include/1.4/dom" CACHE PATH "Location of Collada DOM directory" FORCE) + ENDIF() +@@ -46,6 +46,7 @@ + FIND_PATH(COLLADA_INCLUDE_DIR dae.h + ${COLLADA_DOM_ROOT}/include + $ENV{COLLADA_DIR}/include ++ $ENV{COLLADA_DIR}/include/collada-dom2.4 + $ENV{COLLADA_DIR} + ~/Library/Frameworks + /Library/Frameworks diff --git a/mingw-w64-openscenegraph-git/osg-collada-dae-fixes.patch b/mingw-w64-openscenegraph-git/osg-collada-dae-fixes.patch deleted file mode 100644 index 63c18ad970..0000000000 --- a/mingw-w64-openscenegraph-git/osg-collada-dae-fixes.patch +++ /dev/null @@ -1,205 +0,0 @@ -diff -urN a/src/osgPlugins/dae/CMakeLists.txt b/src/osgPlugins/dae/CMakeLists.txt ---- a/src/osgPlugins/dae/CMakeLists.txt 2010-02-26 14:41:50.000000000 +0000 -+++ b/src/osgPlugins/dae/CMakeLists.txt 2013-09-10 01:57:49.547196400 +0100 -@@ -35,6 +35,8 @@ - ENDIF() - - ADD_DEFINITIONS(-DNO_BOOST) -+ADD_DEFINITIONS(-DCOLLADA_DOM_USING_141) -+ADD_DEFINITIONS(-DCOLLADA_DOM_SUPPORT141) - - IF(COLLADA_USE_STATIC) - IF(WIN32) -diff -urN a/src/osgPlugins/dae/daeReader.cpp b/src/osgPlugins/dae/daeReader.cpp ---- a/src/osgPlugins/dae/daeReader.cpp 2013-01-07 15:03:22.000000000 +0000 -+++ b/src/osgPlugins/dae/daeReader.cpp 2013-09-10 01:28:39.529472400 +0100 -@@ -12,8 +12,7 @@ - */ - - #include "daeReader.h" --#include --#include -+#include - #include - #include - #include -diff -urN a/src/osgPlugins/dae/daeReader.h b/src/osgPlugins/dae/daeReader.h ---- a/src/osgPlugins/dae/daeReader.h 2012-10-08 13:54:40.000000000 +0100 -+++ b/src/osgPlugins/dae/daeReader.h 2013-09-10 01:25:45.195834800 +0100 -@@ -35,26 +35,6 @@ - #include - #include - --class domBind_material; --class domCamera; --//class domCommon_color_or_texture_type; --class domCommon_float_or_param_type; --class domGeometry; --class domInstance_controller; --class domInstance_geometry; --class domInstanceWithExtra; --class domLight; --class domLookat; --class domMatrix; --class domNode; --class domP; --class domProfile_COMMON; --class domScale; --class domSkew; --class domTranslate; --class domRotate; --class domVisual_scene; -- - namespace osgDAE - { - -diff -urN a/src/osgPlugins/dae/daeRMaterials.cpp b/src/osgPlugins/dae/daeRMaterials.cpp ---- a/src/osgPlugins/dae/daeRMaterials.cpp 2013-06-21 12:59:04.000000000 +0100 -+++ b/src/osgPlugins/dae/daeRMaterials.cpp 2013-09-10 01:46:09.370785300 +0100 -@@ -12,11 +12,11 @@ - */ - - #include "daeReader.h" --#include "ReaderWriterDAE.h" -+#include "ReaderWriterDAE.h" - - #include - #include --#include -+#include - #include - #include - #include -diff -urN a/src/osgPlugins/dae/daeRSceneObjects.cpp b/src/osgPlugins/dae/daeRSceneObjects.cpp ---- a/src/osgPlugins/dae/daeRSceneObjects.cpp 2012-03-21 17:36:20.000000000 +0000 -+++ b/src/osgPlugins/dae/daeRSceneObjects.cpp 2013-09-10 01:46:38.028424300 +0100 -@@ -13,7 +13,7 @@ - - #include "daeReader.h" - #include --#include -+#include - #include - - #include -diff -urN a/src/osgPlugins/dae/daeRTransforms.cpp b/src/osgPlugins/dae/daeRTransforms.cpp ---- a/src/osgPlugins/dae/daeRTransforms.cpp 2012-02-09 14:11:36.000000000 +0000 -+++ b/src/osgPlugins/dae/daeRTransforms.cpp 2013-09-10 01:47:00.755310300 +0100 -@@ -13,7 +13,7 @@ - - #include "daeReader.h" - #include --#include -+#include - #include - - #include -diff -urN a/src/osgPlugins/dae/daeWAnimations.cpp b/src/osgPlugins/dae/daeWAnimations.cpp ---- a/src/osgPlugins/dae/daeWAnimations.cpp 2011-05-16 12:07:20.000000000 +0100 -+++ b/src/osgPlugins/dae/daeWAnimations.cpp 2013-09-10 01:47:19.941746700 +0100 -@@ -19,7 +19,7 @@ - #include - #include - #include --#include -+#include - //#include - //#include - -diff -urN a/src/osgPlugins/dae/daeWMaterials.cpp b/src/osgPlugins/dae/daeWMaterials.cpp ---- a/src/osgPlugins/dae/daeWMaterials.cpp 2012-03-21 17:36:20.000000000 +0000 -+++ b/src/osgPlugins/dae/daeWMaterials.cpp 2013-09-10 01:48:30.573715800 +0100 -@@ -14,7 +14,7 @@ - #include "daeWriter.h" - #include "ReaderWriterDAE.h" - --#include -+#include - #include - #include - #include -diff -urN a/src/osgPlugins/dae/daeWriter.h b/src/osgPlugins/dae/daeWriter.h ---- a/src/osgPlugins/dae/daeWriter.h 2011-05-16 12:07:20.000000000 +0100 -+++ b/src/osgPlugins/dae/daeWriter.h 2013-09-10 01:47:58.002079700 +0100 -@@ -51,23 +51,6 @@ - #include - - --class domCOLLADA; --class domGeometry; --class domInstance_geometry; --class domLibrary_cameras; --class domLibrary_effects; --class domLibrary_geometries; --class domLibrary_lights; --class domLibrary_materials; --class domLibrary_visual_scenes; --class domLibrary_animations; --class domMaterial; --class domMesh; --class domNode; --class domSource; --class domVisual_scene; --class domP; -- - namespace osgDAE { - - /// Convert value to string using it's stream operator -diff -urN a/src/osgPlugins/dae/daeWSceneObjects.cpp b/src/osgPlugins/dae/daeWSceneObjects.cpp ---- a/src/osgPlugins/dae/daeWSceneObjects.cpp 2012-03-21 17:36:20.000000000 +0000 -+++ b/src/osgPlugins/dae/daeWSceneObjects.cpp 2013-09-10 01:48:54.747785500 +0100 -@@ -19,7 +19,7 @@ - #include - #include - #include --#include -+#include - //#include - //#include - -diff -urN a/src/osgPlugins/dae/daeWTransforms.cpp b/src/osgPlugins/dae/daeWTransforms.cpp ---- a/src/osgPlugins/dae/daeWTransforms.cpp 2011-05-16 12:07:20.000000000 +0100 -+++ b/src/osgPlugins/dae/daeWTransforms.cpp 2013-09-10 01:49:16.801085900 +0100 -@@ -17,7 +17,7 @@ - - #include - #include --#include -+#include - - #include - #include -diff -urN a/src/osgPlugins/dae/domSourceReader.cpp b/src/osgPlugins/dae/domSourceReader.cpp ---- a/src/osgPlugins/dae/domSourceReader.cpp 2012-03-21 17:36:20.000000000 +0000 -+++ b/src/osgPlugins/dae/domSourceReader.cpp 2013-09-10 01:50:57.512874700 +0100 -@@ -15,7 +15,7 @@ - - #include - --using namespace osgDAE; -+namespace osgDAE { - - domSourceReader::domSourceReader() : m_array_type( None ), m_count( 0 ), srcInit( NULL )//, initialized( false ) - {} -@@ -160,3 +160,4 @@ - OSG_WARN << "No float array found" << std::endl; - } - } -+} -diff -urN a/src/osgPlugins/dae/domSourceReader.h b/src/osgPlugins/dae/domSourceReader.h ---- a/src/osgPlugins/dae/domSourceReader.h 2012-03-21 17:36:20.000000000 +0000 -+++ b/src/osgPlugins/dae/domSourceReader.h 2013-09-10 01:53:55.857021500 +0100 -@@ -14,11 +14,11 @@ - #ifndef _DOM_SRC_CONV_H_ - #define _DOM_SRC_CONV_H_ - -+#include -+ - #include - #include - --class domSource; -- - namespace osgDAE { - - /** From 83e22e8cea6dde0213251d6743687142125ca0af Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 25 Jan 2015 21:12:39 +0300 Subject: [PATCH 0417/2060] mingw-w64: Update to git SHA [7a87c02] --- mingw-w64-crt-git/PKGBUILD | 10 +- mingw-w64-crt-git/_sopen_s.diff | 263 ---------------------------- mingw-w64-headers-git/PKGBUILD | 9 +- mingw-w64-headers-git/_sopen_s.diff | 263 ---------------------------- 4 files changed, 6 insertions(+), 539 deletions(-) delete mode 100644 mingw-w64-crt-git/_sopen_s.diff delete mode 100644 mingw-w64-headers-git/_sopen_s.diff diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 613a1f59c4..e007de04c1 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _ver_base=4.0.0 -pkgver=4.0.0.4417.77f3bca +pkgver=4.0.0.4421.7a87c02 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -16,10 +16,8 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-binuti provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' 'staticlibs' '!buildflags' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" - _sopen_s.diff) -md5sums=('SKIP' - '50761de966d539f14cf17d4c2ff75127') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +md5sums=('SKIP') pkgver() { cd "$srcdir/${_realname}" @@ -28,8 +26,6 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} - patch -p1 -i ${srcdir}/_sopen_s.diff - autoreconf -fiv } build() { diff --git a/mingw-w64-crt-git/_sopen_s.diff b/mingw-w64-crt-git/_sopen_s.diff deleted file mode 100644 index 79d2cfb26c..0000000000 --- a/mingw-w64-crt-git/_sopen_s.diff +++ /dev/null @@ -1,263 +0,0 @@ -New _sopen_s emulation. - - mingw-w64-crt/Makefile.am | 1 + - mingw-w64-crt/lib32/msvcr100.def.in | 2 +- - mingw-w64-crt/lib32/msvcr110.def.in | 2 +- - mingw-w64-crt/lib32/msvcr90.def.in | 2 +- - mingw-w64-crt/lib32/msvcr90d.def.in | 2 +- - mingw-w64-crt/lib32/msvcrt.def.in | 2 +- - mingw-w64-crt/lib64/msvcr100.def.in | 2 +- - mingw-w64-crt/lib64/msvcr110.def.in | 2 +- - mingw-w64-crt/lib64/msvcr90.def.in | 2 +- - mingw-w64-crt/lib64/msvcr90d.def.in | 2 +- - mingw-w64-crt/lib64/msvcrt.def.in | 2 +- - mingw-w64-crt/libarm32/msvcr110.def | 2 +- - mingw-w64-crt/libarm32/msvcr120_clr0400.def | 2 +- - mingw-w64-crt/libarm32/msvcrt.def | 2 +- - mingw-w64-crt/secapi/_sopen_s.c | 43 +++++++++++++++++++++++++++++ - mingw-w64-headers/crt/io.h | 2 +- - 16 files changed, 58 insertions(+), 14 deletions(-) - -diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am -index 3348ea2..4c5bf28 100644 ---- a/mingw-w64-crt/Makefile.am -+++ b/mingw-w64-crt/Makefile.am -@@ -170,6 +170,7 @@ src_msvcrt=\ - secapi/_localtime32_s.c \ - secapi/_localtime64_s.c \ - secapi/_mktemp_s.c \ -+ secapi/_sopen_s.c \ - secapi/_strdate_s.c \ - secapi/_strtime_s.c \ - secapi/_umask_s.c \ -diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in -index a1d7447..2472320 100644 ---- a/mingw-w64-crt/lib32/msvcr100.def.in -+++ b/mingw-w64-crt/lib32/msvcr100.def.in -@@ -1344,7 +1344,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in -index f9f0294..d9854dc 100644 ---- a/mingw-w64-crt/lib32/msvcr110.def.in -+++ b/mingw-w64-crt/lib32/msvcr110.def.in -@@ -1477,7 +1477,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in -index 394d7f5..7d8ef3c 100644 ---- a/mingw-w64-crt/lib32/msvcr90.def.in -+++ b/mingw-w64-crt/lib32/msvcr90.def.in -@@ -978,7 +978,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in b/mingw-w64-crt/lib32/msvcr90d.def.in -index 8846e13..a3f587a 100644 ---- a/mingw-w64-crt/lib32/msvcr90d.def.in -+++ b/mingw-w64-crt/lib32/msvcr90d.def.in -@@ -1042,7 +1042,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib32/msvcrt.def.in b/mingw-w64-crt/lib32/msvcrt.def.in -index 496e8cf..71bdf56 100644 ---- a/mingw-w64-crt/lib32/msvcrt.def.in -+++ b/mingw-w64-crt/lib32/msvcrt.def.in -@@ -1039,7 +1039,7 @@ _snwprintf_s_l - _snwscanf_l - _snwscanf_s - _snwscanf_s_l --_sopen_s DATA -+; _sopen_s replaced by emu - _splitpath_s - _sprintf_l - _sprintf_p_l -diff --git a/mingw-w64-crt/lib64/msvcr100.def.in b/mingw-w64-crt/lib64/msvcr100.def.in -index a3ba8cd..384fc64 100644 ---- a/mingw-w64-crt/lib64/msvcr100.def.in -+++ b/mingw-w64-crt/lib64/msvcr100.def.in -@@ -1292,7 +1292,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib64/msvcr110.def.in b/mingw-w64-crt/lib64/msvcr110.def.in -index 6e8a487..65f3122 100644 ---- a/mingw-w64-crt/lib64/msvcr110.def.in -+++ b/mingw-w64-crt/lib64/msvcr110.def.in -@@ -1416,7 +1416,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib64/msvcr90.def.in b/mingw-w64-crt/lib64/msvcr90.def.in -index 7b74907..5fd5749 100644 ---- a/mingw-w64-crt/lib64/msvcr90.def.in -+++ b/mingw-w64-crt/lib64/msvcr90.def.in -@@ -912,7 +912,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib64/msvcr90d.def.in b/mingw-w64-crt/lib64/msvcr90d.def.in -index 4649135..1454d29 100644 ---- a/mingw-w64-crt/lib64/msvcr90d.def.in -+++ b/mingw-w64-crt/lib64/msvcr90d.def.in -@@ -970,7 +970,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib64/msvcrt.def.in b/mingw-w64-crt/lib64/msvcrt.def.in -index ab42da0..946c200 100644 ---- a/mingw-w64-crt/lib64/msvcrt.def.in -+++ b/mingw-w64-crt/lib64/msvcrt.def.in -@@ -715,7 +715,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/libarm32/msvcr110.def b/mingw-w64-crt/libarm32/msvcr110.def -index 40a4093..c22973f 100644 ---- a/mingw-w64-crt/libarm32/msvcr110.def -+++ b/mingw-w64-crt/libarm32/msvcr110.def -@@ -1065,7 +1065,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/libarm32/msvcr120_clr0400.def b/mingw-w64-crt/libarm32/msvcr120_clr0400.def -index 32d7965..c3232e9 100644 ---- a/mingw-w64-crt/libarm32/msvcr120_clr0400.def -+++ b/mingw-w64-crt/libarm32/msvcr120_clr0400.def -@@ -1064,7 +1064,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/libarm32/msvcrt.def b/mingw-w64-crt/libarm32/msvcrt.def -index d43b417..2533d5a 100644 ---- a/mingw-w64-crt/libarm32/msvcrt.def -+++ b/mingw-w64-crt/libarm32/msvcrt.def -@@ -699,7 +699,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/secapi/_sopen_s.c b/mingw-w64-crt/secapi/_sopen_s.c -new file mode 100644 -index 0000000..7d9645e ---- /dev/null -+++ b/mingw-w64-crt/secapi/_sopen_s.c -@@ -0,0 +1,43 @@ -+#include -+#include -+#include -+#include -+ -+errno_t __cdecl _sopen_s(int *, const char *, int, int, int); -+static errno_t __cdecl _int_sopen_s(int *, const char *, int, int, int); -+static errno_t __cdecl _stub(int *, const char *, int, int, int); -+ -+errno_t __cdecl (*__MINGW_IMP_SYMBOL(_sopen_s))(int *, const char *, int, int, int) = _stub; -+ -+static errno_t __cdecl -+_stub (int* pfh, const char *filename, int oflag, int shflag, int pmode) -+{ -+ errno_t __cdecl (*f)(int *, const char *, int, int, int) = __MINGW_IMP_SYMBOL(_sopen_s); -+ -+ if (f == _stub) { -+ f = (errno_t __cdecl (*)(int *, const char *, int, int, int)) -+ GetProcAddress (__mingw_get_msvcrt_handle (), "_sopen_s"); -+ if (f == NULL) -+ f = _int_sopen_s; -+ __MINGW_IMP_SYMBOL(_sopen_s) = f; -+ } -+ -+ return (*f)(pfh, filename, oflag, shflag, pmode); -+} -+ -+static errno_t __cdecl _int_sopen_s(int* pfh, const char *filename, int oflag, int shflag, int pmode) -+{ -+ if (pfh == NULL || filename == NULL) { -+ if (pfh != NULL) *pfh = -1; -+ errno = EINVAL; -+ return EINVAL; -+ } -+ -+ *pfh = _sopen(filename, oflag, shflag, pmode); -+ return errno; -+} -+ -+errno_t __cdecl _sopen_s(int* pfh, const char *filename, int oflag, int shflag, int pmode) -+{ -+ return _stub (pfh, filename, oflag, shflag, pmode); -+} -diff --git a/mingw-w64-headers/crt/io.h b/mingw-w64-headers/crt/io.h -index 0adaa82..91ad46e 100644 ---- a/mingw-w64-headers/crt/io.h -+++ b/mingw-w64-headers/crt/io.h -@@ -271,7 +271,7 @@ _CRTIMP char* __cdecl _getcwd (char*, int); - #endif /* _UWIN */ - #endif /* Not NO_OLDNAMES */ - -- _CRTIMP errno_t __cdecl _sopen_s(int *_FileHandle,const char *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionMode); -+ errno_t __cdecl _sopen_s(int *_FileHandle,const char *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionMode); - - _CRTIMP int __cdecl _open(const char *_Filename,int _OpenFlag,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; - _CRTIMP int __cdecl _sopen(const char *_Filename,int _OpenFlag,int _ShareFlag,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 9cc9d3c21b..0733f89395 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" _ver_base=4.0.0 -pkgver=4.0.0.4417.77f3bca +pkgver=4.0.0.4421.7a87c02 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" @@ -15,10 +15,8 @@ makedepends=('git') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' '!libtool' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" - _sopen_s.diff) -md5sums=('SKIP' - '50761de966d539f14cf17d4c2ff75127') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +md5sums=('SKIP') pkgver() { cd "$srcdir/$_realname" @@ -27,7 +25,6 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} - patch -p1 -i ${srcdir}/_sopen_s.diff } build() { diff --git a/mingw-w64-headers-git/_sopen_s.diff b/mingw-w64-headers-git/_sopen_s.diff deleted file mode 100644 index 79d2cfb26c..0000000000 --- a/mingw-w64-headers-git/_sopen_s.diff +++ /dev/null @@ -1,263 +0,0 @@ -New _sopen_s emulation. - - mingw-w64-crt/Makefile.am | 1 + - mingw-w64-crt/lib32/msvcr100.def.in | 2 +- - mingw-w64-crt/lib32/msvcr110.def.in | 2 +- - mingw-w64-crt/lib32/msvcr90.def.in | 2 +- - mingw-w64-crt/lib32/msvcr90d.def.in | 2 +- - mingw-w64-crt/lib32/msvcrt.def.in | 2 +- - mingw-w64-crt/lib64/msvcr100.def.in | 2 +- - mingw-w64-crt/lib64/msvcr110.def.in | 2 +- - mingw-w64-crt/lib64/msvcr90.def.in | 2 +- - mingw-w64-crt/lib64/msvcr90d.def.in | 2 +- - mingw-w64-crt/lib64/msvcrt.def.in | 2 +- - mingw-w64-crt/libarm32/msvcr110.def | 2 +- - mingw-w64-crt/libarm32/msvcr120_clr0400.def | 2 +- - mingw-w64-crt/libarm32/msvcrt.def | 2 +- - mingw-w64-crt/secapi/_sopen_s.c | 43 +++++++++++++++++++++++++++++ - mingw-w64-headers/crt/io.h | 2 +- - 16 files changed, 58 insertions(+), 14 deletions(-) - -diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am -index 3348ea2..4c5bf28 100644 ---- a/mingw-w64-crt/Makefile.am -+++ b/mingw-w64-crt/Makefile.am -@@ -170,6 +170,7 @@ src_msvcrt=\ - secapi/_localtime32_s.c \ - secapi/_localtime64_s.c \ - secapi/_mktemp_s.c \ -+ secapi/_sopen_s.c \ - secapi/_strdate_s.c \ - secapi/_strtime_s.c \ - secapi/_umask_s.c \ -diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in -index a1d7447..2472320 100644 ---- a/mingw-w64-crt/lib32/msvcr100.def.in -+++ b/mingw-w64-crt/lib32/msvcr100.def.in -@@ -1344,7 +1344,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in -index f9f0294..d9854dc 100644 ---- a/mingw-w64-crt/lib32/msvcr110.def.in -+++ b/mingw-w64-crt/lib32/msvcr110.def.in -@@ -1477,7 +1477,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in -index 394d7f5..7d8ef3c 100644 ---- a/mingw-w64-crt/lib32/msvcr90.def.in -+++ b/mingw-w64-crt/lib32/msvcr90.def.in -@@ -978,7 +978,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in b/mingw-w64-crt/lib32/msvcr90d.def.in -index 8846e13..a3f587a 100644 ---- a/mingw-w64-crt/lib32/msvcr90d.def.in -+++ b/mingw-w64-crt/lib32/msvcr90d.def.in -@@ -1042,7 +1042,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib32/msvcrt.def.in b/mingw-w64-crt/lib32/msvcrt.def.in -index 496e8cf..71bdf56 100644 ---- a/mingw-w64-crt/lib32/msvcrt.def.in -+++ b/mingw-w64-crt/lib32/msvcrt.def.in -@@ -1039,7 +1039,7 @@ _snwprintf_s_l - _snwscanf_l - _snwscanf_s - _snwscanf_s_l --_sopen_s DATA -+; _sopen_s replaced by emu - _splitpath_s - _sprintf_l - _sprintf_p_l -diff --git a/mingw-w64-crt/lib64/msvcr100.def.in b/mingw-w64-crt/lib64/msvcr100.def.in -index a3ba8cd..384fc64 100644 ---- a/mingw-w64-crt/lib64/msvcr100.def.in -+++ b/mingw-w64-crt/lib64/msvcr100.def.in -@@ -1292,7 +1292,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib64/msvcr110.def.in b/mingw-w64-crt/lib64/msvcr110.def.in -index 6e8a487..65f3122 100644 ---- a/mingw-w64-crt/lib64/msvcr110.def.in -+++ b/mingw-w64-crt/lib64/msvcr110.def.in -@@ -1416,7 +1416,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib64/msvcr90.def.in b/mingw-w64-crt/lib64/msvcr90.def.in -index 7b74907..5fd5749 100644 ---- a/mingw-w64-crt/lib64/msvcr90.def.in -+++ b/mingw-w64-crt/lib64/msvcr90.def.in -@@ -912,7 +912,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib64/msvcr90d.def.in b/mingw-w64-crt/lib64/msvcr90d.def.in -index 4649135..1454d29 100644 ---- a/mingw-w64-crt/lib64/msvcr90d.def.in -+++ b/mingw-w64-crt/lib64/msvcr90d.def.in -@@ -970,7 +970,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/lib64/msvcrt.def.in b/mingw-w64-crt/lib64/msvcrt.def.in -index ab42da0..946c200 100644 ---- a/mingw-w64-crt/lib64/msvcrt.def.in -+++ b/mingw-w64-crt/lib64/msvcrt.def.in -@@ -715,7 +715,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/libarm32/msvcr110.def b/mingw-w64-crt/libarm32/msvcr110.def -index 40a4093..c22973f 100644 ---- a/mingw-w64-crt/libarm32/msvcr110.def -+++ b/mingw-w64-crt/libarm32/msvcr110.def -@@ -1065,7 +1065,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/libarm32/msvcr120_clr0400.def b/mingw-w64-crt/libarm32/msvcr120_clr0400.def -index 32d7965..c3232e9 100644 ---- a/mingw-w64-crt/libarm32/msvcr120_clr0400.def -+++ b/mingw-w64-crt/libarm32/msvcr120_clr0400.def -@@ -1064,7 +1064,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/libarm32/msvcrt.def b/mingw-w64-crt/libarm32/msvcrt.def -index d43b417..2533d5a 100644 ---- a/mingw-w64-crt/libarm32/msvcrt.def -+++ b/mingw-w64-crt/libarm32/msvcrt.def -@@ -699,7 +699,7 @@ _snwscanf_l - _snwscanf_s - _snwscanf_s_l - _sopen --_sopen_s -+; _sopen_s replaced by emu - _spawnl - _spawnle - _spawnlp -diff --git a/mingw-w64-crt/secapi/_sopen_s.c b/mingw-w64-crt/secapi/_sopen_s.c -new file mode 100644 -index 0000000..7d9645e ---- /dev/null -+++ b/mingw-w64-crt/secapi/_sopen_s.c -@@ -0,0 +1,43 @@ -+#include -+#include -+#include -+#include -+ -+errno_t __cdecl _sopen_s(int *, const char *, int, int, int); -+static errno_t __cdecl _int_sopen_s(int *, const char *, int, int, int); -+static errno_t __cdecl _stub(int *, const char *, int, int, int); -+ -+errno_t __cdecl (*__MINGW_IMP_SYMBOL(_sopen_s))(int *, const char *, int, int, int) = _stub; -+ -+static errno_t __cdecl -+_stub (int* pfh, const char *filename, int oflag, int shflag, int pmode) -+{ -+ errno_t __cdecl (*f)(int *, const char *, int, int, int) = __MINGW_IMP_SYMBOL(_sopen_s); -+ -+ if (f == _stub) { -+ f = (errno_t __cdecl (*)(int *, const char *, int, int, int)) -+ GetProcAddress (__mingw_get_msvcrt_handle (), "_sopen_s"); -+ if (f == NULL) -+ f = _int_sopen_s; -+ __MINGW_IMP_SYMBOL(_sopen_s) = f; -+ } -+ -+ return (*f)(pfh, filename, oflag, shflag, pmode); -+} -+ -+static errno_t __cdecl _int_sopen_s(int* pfh, const char *filename, int oflag, int shflag, int pmode) -+{ -+ if (pfh == NULL || filename == NULL) { -+ if (pfh != NULL) *pfh = -1; -+ errno = EINVAL; -+ return EINVAL; -+ } -+ -+ *pfh = _sopen(filename, oflag, shflag, pmode); -+ return errno; -+} -+ -+errno_t __cdecl _sopen_s(int* pfh, const char *filename, int oflag, int shflag, int pmode) -+{ -+ return _stub (pfh, filename, oflag, shflag, pmode); -+} -diff --git a/mingw-w64-headers/crt/io.h b/mingw-w64-headers/crt/io.h -index 0adaa82..91ad46e 100644 ---- a/mingw-w64-headers/crt/io.h -+++ b/mingw-w64-headers/crt/io.h -@@ -271,7 +271,7 @@ _CRTIMP char* __cdecl _getcwd (char*, int); - #endif /* _UWIN */ - #endif /* Not NO_OLDNAMES */ - -- _CRTIMP errno_t __cdecl _sopen_s(int *_FileHandle,const char *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionMode); -+ errno_t __cdecl _sopen_s(int *_FileHandle,const char *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionMode); - - _CRTIMP int __cdecl _open(const char *_Filename,int _OpenFlag,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; - _CRTIMP int __cdecl _sopen(const char *_Filename,int _OpenFlag,int _ShareFlag,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; From 4651ef83ccf9505ca09f5db4b5200b3ac114de80 Mon Sep 17 00:00:00 2001 From: amazingfate Date: Mon, 26 Jan 2015 14:52:21 +0800 Subject: [PATCH 0418/2060] add new package libzip --- mingw-w64-libzip/PKGBUILD | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 mingw-w64-libzip/PKGBUILD diff --git a/mingw-w64-libzip/PKGBUILD b/mingw-w64-libzip/PKGBUILD new file mode 100644 index 0000000000..cd39411947 --- /dev/null +++ b/mingw-w64-libzip/PKGBUILD @@ -0,0 +1,40 @@ +_realname=libzip +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.11.2 +pkgrel=1 +pkgdesc="A C library for reading, creating, and modifying zip archives" +url="http://www.nih.at/libzip/index.html" +license=('BSD') +arch=('any') +depends=('zlib') +options=('staticlibs') +source=("http://www.nih.at/${_realname}/${_realname}-${pkgver}.tar.xz") +md5sums=('44c99b67dca34707b5728e5f8434fe91') + +prepare() { + cd "$srcdir/${_realname}-$pkgver" + + autoreconf -fi +} + +build() { + unset LDFLAGS + mkdir -p "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" + "${srcdir}"/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + make +} + +package() { + cd "${srcdir}/build-${CARCH}" + + make DESTDIR="${pkgdir}" install + + # preserve old header path for compatibility + # ln -s ${MINGW_PREFIX}/lib/libzip/include/zipconf.h "${pkgdir}${MINGW_PREFIX}/include/zipconf.h" + # install -Dm644 LICENSE "${pkgdir}/${MINGW_PREFIX}/share/licenses/${pkgname}/LICENSE" +} From ada5cb02e063854bea101b3d395143695c834b90 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 26 Jan 2015 19:24:59 +0300 Subject: [PATCH 0419/2060] mesa: Update to 10.4.3 --- mingw-w64-mesa/001-extra-libs.patch | 11 +++++++++++ mingw-w64-mesa/PKGBUILD | 20 ++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-mesa/001-extra-libs.patch diff --git a/mingw-w64-mesa/001-extra-libs.patch b/mingw-w64-mesa/001-extra-libs.patch new file mode 100644 index 0000000000..df6ca1f14b --- /dev/null +++ b/mingw-w64-mesa/001-extra-libs.patch @@ -0,0 +1,11 @@ +--- Mesa-10.4.3/scons/llvm.py.orig 2015-01-26 15:04:25.957800000 +0300 ++++ Mesa-10.4.3/scons/llvm.py 2015-01-26 15:05:28.623000000 +0300 +@@ -66,7 +66,7 @@ + + env.PrependENVPath('PATH', llvm_bin_dir) + +- if env['platform'] == 'windows': ++ if env['msvc']: + # XXX: There is no llvm-config on Windows, so assume a standard layout + if llvm_dir is None: + print 'scons: LLVM environment variable must be specified when building for windows' diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index af9ba87818..db5345412c 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=mesa - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.2.4 +pkgver=10.4.3 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -13,8 +12,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-clang" "scon url="http://www.mesa3d.org" license=('MIT') options=('staticlibs' 'strip') -source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2) -md5sums=('11d3542da1b703618634be840a87b0b2') +source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2 + 001-extra-libs.patch) +md5sums=('be86c4ee226f8ca28b7d4c728c350b01' + '3eaea880ab48f851c392c2106a616e21') noextract=("MesaLib-${pkgver}.tar.bz2") case ${MINGW_CHOST} in @@ -28,13 +29,20 @@ esac prepare() { cd ${startdir} - [ -d $srcdir/$_realname-$pkgver ] || tar -xjvf MesaLib-${pkgver}.tar.bz2 -C $srcdir + [ -d $srcdir/Mesa-$pkgver ] || tar -xjvf MesaLib-${pkgver}.tar.bz2 -C $srcdir + + cd ${srcdir}/Mesa-$pkgver + patch -p1 -i ${srcdir}/001-extra-libs.patch } build() { cd ${srcdir}/Mesa-$pkgver - LLVM=${MINGW_PREFIX} CFLAGS="-march=core2 -pipe" LDFLAGS="-static -s" scons build=release platform=windows toolchain=mingw machine=${_mach} libgl-gdi #mesagdi + LLVM=${MINGW_PREFIX} \ + CFLAGS="-march=core2 -pipe -D_USE_MATH_DEFINES" \ + CXXFLAGS="-march=core2 -pipe -std=c++11 -D_USE_MATH_DEFINES" \ + LDFLAGS="-static -s" \ + scons build=release platform=windows toolchain=mingw machine=${_mach} libgl-gdi #mesagdi } package() { From c8fc09f1459cef1b6bd2eb1ec53452cde8efbd15 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 26 Jan 2015 19:49:51 +0300 Subject: [PATCH 0420/2060] libzip: Add maintainer info. Fix options. --- mingw-w64-libzip/PKGBUILD | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/mingw-w64-libzip/PKGBUILD b/mingw-w64-libzip/PKGBUILD index cd39411947..1937aa2b4d 100644 --- a/mingw-w64-libzip/PKGBUILD +++ b/mingw-w64-libzip/PKGBUILD @@ -1,13 +1,16 @@ +# Maintainer: Jianfeng Liu + _realname=libzip pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.11.2 pkgrel=1 -pkgdesc="A C library for reading, creating, and modifying zip archives" +pkgdesc="A C library for reading, creating, and modifying zip archives (mingw-w64)" url="http://www.nih.at/libzip/index.html" license=('BSD') arch=('any') -depends=('zlib') -options=('staticlibs') +depends=("${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +options=('staticlibs' '!libtool') source=("http://www.nih.at/${_realname}/${_realname}-${pkgver}.tar.xz") md5sums=('44c99b67dca34707b5728e5f8434fe91') @@ -18,14 +21,16 @@ prepare() { } build() { - unset LDFLAGS mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" "${srcdir}"/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + make } @@ -35,6 +40,6 @@ package() { make DESTDIR="${pkgdir}" install # preserve old header path for compatibility - # ln -s ${MINGW_PREFIX}/lib/libzip/include/zipconf.h "${pkgdir}${MINGW_PREFIX}/include/zipconf.h" - # install -Dm644 LICENSE "${pkgdir}/${MINGW_PREFIX}/share/licenses/${pkgname}/LICENSE" + # ln -s ${MINGW_PREFIX}/lib/libzip/include/zipconf.h "${pkgdir}${MINGW_PREFIX}/include/zipconf.h" + install -Dm644 "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}/${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From 163200c7a872ec194f94e8219092620d1fcba315 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 26 Jan 2015 20:04:26 +0300 Subject: [PATCH 0421/2060] Revert "gtkspell: update to 3.0.6." This reverts commit 69571b716cbb41b308659b1b1a885154aef482c1. --- mingw-w64-gtkspell/001-win.patch | 10 ---------- mingw-w64-gtkspell/PKGBUILD | 19 ++++++++----------- .../gtkspell-no-undefined.patch | 10 ++++++++++ 3 files changed, 18 insertions(+), 21 deletions(-) delete mode 100644 mingw-w64-gtkspell/001-win.patch create mode 100644 mingw-w64-gtkspell/gtkspell-no-undefined.patch diff --git a/mingw-w64-gtkspell/001-win.patch b/mingw-w64-gtkspell/001-win.patch deleted file mode 100644 index 2994430ce5..0000000000 --- a/mingw-w64-gtkspell/001-win.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- ./gtkspell/Makefile.am.orig 2015-01-12 11:51:39.685322000 +0100 -+++ ./gtkspell/Makefile.am 2015-01-12 11:51:05.691346400 +0100 -@@ -52,6 +52,7 @@ - - if HAVE_INTROSPECTION - INTROSPECTION_GIRS = -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - - if ENABLE_GTK3 - GtkSpell-3.0.gir: libgtkspell3-3.la diff --git a/mingw-w64-gtkspell/PKGBUILD b/mingw-w64-gtkspell/PKGBUILD index 2ab2b68374..d50216d002 100644 --- a/mingw-w64-gtkspell/PKGBUILD +++ b/mingw-w64-gtkspell/PKGBUILD @@ -1,9 +1,9 @@ # Maintainer: Alexey Pavlov -_realname=gtkspell3 +_realname=gtkspell pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.0.6 +pkgver=2.0.16 pkgrel=1 pkgdesc="Provides word-processor-style highlighting and replacement of misspelled words in a GtkTextView widget (mingw-w64)" arch=('any') @@ -13,19 +13,17 @@ makedepends=("gtk-doc" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "intltool") -depends=("${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-gtk2" +depends=("${MINGW_PACKAGE_PREFIX}-gtk2" "${MINGW_PACKAGE_PREFIX}-enchant") options=(!libtool strip staticlibs) source=(http://gtkspell.sourceforge.net/download/${_realname}-${pkgver}.tar.gz - 001-win.patch) -md5sums=('cdc550a06dc424c8c497672bc54649db' - '761980f7811a41f4dab9a2a797946316') + gtkspell-no-undefined.patch) +md5sums=('f75dcc9338f182c571b321d37c606a94' + '0ea2a6801314e22ba8e517fca4ad3066') prepare() { cd ${_realname}-$pkgver - - patch -p1 -i ${srcdir}/001-win.patch + patch -p1 -i ${srcdir}/gtkspell-no-undefined.patch WANT_AUTOMAKE=latest autoreconf -fi } @@ -38,8 +36,7 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --disable-static \ - --enable-gtk2 + --disable-static make } diff --git a/mingw-w64-gtkspell/gtkspell-no-undefined.patch b/mingw-w64-gtkspell/gtkspell-no-undefined.patch new file mode 100644 index 0000000000..545a2fe5d8 --- /dev/null +++ b/mingw-w64-gtkspell/gtkspell-no-undefined.patch @@ -0,0 +1,10 @@ +--- gtkspell-2.0.16/gtkspell/Makefile.am.orig 2004-06-10 07:41:57.000000000 +0400 ++++ gtkspell-2.0.16/gtkspell/Makefile.am 2014-06-25 06:55:08.016600000 +0400 +@@ -1,6 +1,7 @@ + lib_LTLIBRARIES=libgtkspell.la + AM_CFLAGS=@GTKSPELL_CFLAGS@ -DG_LOG_DOMAIN=\"gtkspell\" -DLOCALEDIR=\""$(datadir)/locale"\" + libgtkspell_la_LIBADD=@GTKSPELL_LIBS@ @SPELLER_LIB@ ++libgtkspell_la_LDFLAGS=-no-undefined + libgtkspell_la_includedir=$(includedir)/gtkspell-2.0/gtkspell + libgtkspell_la_include_HEADERS=gtkspell.h + libgtkspell_la_SOURCES=gtkspell.c deprecated.c gtkspell.h From f546f06c6a42f65c8edb5274f91f7c0629197f50 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 26 Jan 2015 20:47:10 +0300 Subject: [PATCH 0422/2060] gtkspell3: Don't replace gtkspell package. Create new one. --- mingw-w64-gtkspell3/001-win.patch | 10 ++++++ mingw-w64-gtkspell3/PKGBUILD | 51 +++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 mingw-w64-gtkspell3/001-win.patch create mode 100644 mingw-w64-gtkspell3/PKGBUILD diff --git a/mingw-w64-gtkspell3/001-win.patch b/mingw-w64-gtkspell3/001-win.patch new file mode 100644 index 0000000000..2994430ce5 --- /dev/null +++ b/mingw-w64-gtkspell3/001-win.patch @@ -0,0 +1,10 @@ +--- ./gtkspell/Makefile.am.orig 2015-01-12 11:51:39.685322000 +0100 ++++ ./gtkspell/Makefile.am 2015-01-12 11:51:05.691346400 +0100 +@@ -52,6 +52,7 @@ + + if HAVE_INTROSPECTION + INTROSPECTION_GIRS = ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + if ENABLE_GTK3 + GtkSpell-3.0.gir: libgtkspell3-3.la diff --git a/mingw-w64-gtkspell3/PKGBUILD b/mingw-w64-gtkspell3/PKGBUILD new file mode 100644 index 0000000000..8bfb297078 --- /dev/null +++ b/mingw-w64-gtkspell3/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: Alexey Pavlov + +_realname=gtkspell3 +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.0.6 +pkgrel=1 +pkgdesc="Provides word-processor-style highlighting and replacement of misspelled words in a GtkTextView widget (mingw-w64)" +arch=('any') +url="http://gtkspell.sourceforge.net/" +license=("GPL") +makedepends=("gtk-doc" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-iso-codes" + "intltool") +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-enchant") +options=(!libtool strip staticlibs) +source=(http://gtkspell.sourceforge.net/download/${_realname}-${pkgver}.tar.gz + 001-win.patch) +md5sums=('cdc550a06dc424c8c497672bc54649db' + '761980f7811a41f4dab9a2a797946316') + +prepare() { + cd ${_realname}-$pkgver + + patch -p1 -i ${srcdir}/001-win.patch + + WANT_AUTOMAKE=latest autoreconf -fi +} + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --disable-static \ + --enable-gtk2 + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install +} From 67837bf4abad68a92cd28ebfff4cd5fe66b58367 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 26 Jan 2015 10:47:21 +0000 Subject: [PATCH 0423/2060] qhull: Fix ptr_intT for Win64 Also patch using git --- ...001-MSYS2-Adopt-FHS-layout-in-cmake.patch} | 24 +++++++++++---- .../0002-MinGW-w64-64-bit-ptr_intT-fix.patch | 28 ++++++++++++++++++ mingw-w64-qhull-git/PKGBUILD | 29 ++++++++++--------- 3 files changed, 63 insertions(+), 18 deletions(-) rename mingw-w64-qhull-git/{mingw-cmake.patch => 0001-MSYS2-Adopt-FHS-layout-in-cmake.patch} (68%) create mode 100644 mingw-w64-qhull-git/0002-MinGW-w64-64-bit-ptr_intT-fix.patch diff --git a/mingw-w64-qhull-git/mingw-cmake.patch b/mingw-w64-qhull-git/0001-MSYS2-Adopt-FHS-layout-in-cmake.patch similarity index 68% rename from mingw-w64-qhull-git/mingw-cmake.patch rename to mingw-w64-qhull-git/0001-MSYS2-Adopt-FHS-layout-in-cmake.patch index a8b405f2cb..d82047fc89 100644 --- a/mingw-w64-qhull-git/mingw-cmake.patch +++ b/mingw-w64-qhull-git/0001-MSYS2-Adopt-FHS-layout-in-cmake.patch @@ -1,6 +1,17 @@ ---- qhull/CMakeLists.txt.orig 2014-04-06 09:50:11.840200000 +0400 -+++ qhull/CMakeLists.txt 2014-04-06 09:53:38.181400000 +0400 -@@ -58,7 +58,7 @@ +From d9d43d26305f28e40b4b292edbe53c678f38c149 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 26 Jan 2015 10:24:48 +0000 +Subject: [PATCH 1/2] MSYS2: Adopt FHS layout in cmake + +--- + CMakeLists.txt | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 98dbc70..7ec7e5b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -58,7 +58,7 @@ set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin) endif() if(MAN_INSTALL_DIR) else() @@ -9,7 +20,7 @@ set(MAN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/man/man1) else() set(MAN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/man/man1) -@@ -66,7 +66,7 @@ +@@ -66,7 +66,7 @@ else() endif() if(DOC_INSTALL_DIR) else() @@ -18,7 +29,7 @@ set(DOC_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/doc) else() set(DOC_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/doc/qhull) -@@ -423,9 +423,9 @@ +@@ -423,9 +423,9 @@ install(TARGETS ${qhull_TARGETS_INSTALL} LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) @@ -31,3 +42,6 @@ install(FILES html/qhull.man DESTINATION ${MAN_INSTALL_DIR} RENAME qhull.1) install(FILES html/rbox.man DESTINATION ${MAN_INSTALL_DIR} RENAME rbox.1) install(FILES ${doc_FILES} DESTINATION ${DOC_INSTALL_DIR}) +-- +2.2.2 + diff --git a/mingw-w64-qhull-git/0002-MinGW-w64-64-bit-ptr_intT-fix.patch b/mingw-w64-qhull-git/0002-MinGW-w64-64-bit-ptr_intT-fix.patch new file mode 100644 index 0000000000..d366c1b9ef --- /dev/null +++ b/mingw-w64-qhull-git/0002-MinGW-w64-64-bit-ptr_intT-fix.patch @@ -0,0 +1,28 @@ +From 77ffc8ce76b0de8ef36e51b3b0e5ffc3a9bb7a88 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 26 Jan 2015 10:24:31 +0000 +Subject: [PATCH 2/2] MinGW-w64: 64-bit ptr_intT fix + +Change #if _MSC_VER to #if defined(_WIN32) since +the former works for Visual Studio only whereas +the latter also works for GCC and Clang. +--- + src/libqhull/mem.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libqhull/mem.h b/src/libqhull/mem.h +index ad89de8..857aa5f 100644 +--- a/src/libqhull/mem.h ++++ b/src/libqhull/mem.h +@@ -78,7 +78,7 @@ Trace short and quick memory allocations at T5 + Qhull uses int instead of size_t except for system calls such as malloc, qsort, qh_malloc, etc. + This matches Qt convention and is easier to work with. + */ +-#if _MSC_VER && defined(_WIN64) ++#if defined(_WIN32) && defined(_WIN64) + typedef long long ptr_intT; + #else + typedef long ptr_intT; +-- +2.2.2 + diff --git a/mingw-w64-qhull-git/PKGBUILD b/mingw-w64-qhull-git/PKGBUILD index 50cca253ab..ced2ab94aa 100644 --- a/mingw-w64-qhull-git/PKGBUILD +++ b/mingw-w64-qhull-git/PKGBUILD @@ -1,10 +1,10 @@ # Maintainer: Alexey Pavlov # Contributor: Jürgen Pfeifer +# Contributor: Ray Donnelly _realname=qhull - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgrel=1 +pkgrel=2 pkgver=r113.60d5581 provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -16,21 +16,24 @@ groups=("${MINGW_PACKAGE_PREFIX}") options=('strip' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("git" - "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake") + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake") source=("$_realname"::"git://gitorious.org/qhull/qhull.git" - mingw-cmake.patch) + "0001-MSYS2-Adopt-FHS-layout-in-cmake.patch" + "0002-MinGW-w64-64-bit-ptr_intT-fix.patch") sha1sums=('SKIP' - '6a574af41f6b1b8bacf3fab144c52b0a2bfb4fa4') + 'bfd74f4b8e69100d75e8777554cca2d32b4bad94' + '5494fe7a909fda8842ee1a7c2771cdefb52eda6f') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}"/$_realname printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd $srcdir/$_realname - patch -p1 -i $srcdir/mingw-cmake.patch + cd "${srcdir}"/$_realname + git am "${srcdir}"/0001-MSYS2-Adopt-FHS-layout-in-cmake.patch + git am "${srcdir}"/0002-MinGW-w64-64-bit-ptr_intT-fix.patch } build() { @@ -43,17 +46,17 @@ build() { export PREFIX_DEPS=`pwd -W` popd > /dev/null - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${PREFIX_WIN} \ -DBUILD_SHARED_LIBS=ON \ - $srcdir/$_realname + "${srcdir}"/$_realname make } package() { - cd "$srcdir/build-${CARCH}" + cd "${srcdir}"/build-${CARCH} make install # DESTDIR="$pkgdir" pushd ${pkgdir}${MINGW_PREFIX}/lib >/dev/null if [ -f lib${_realname}static.a ]; then @@ -64,6 +67,6 @@ package() { fi popd >/dev/null mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname - cp -pf ${srcdir}/${_realname}/COPYING* \ + cp -pf "${srcdir}"/${_realname}/COPYING* \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname } From 91cec927f276da90116782af4eed452beebbfaa5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 26 Jan 2015 23:25:53 +0300 Subject: [PATCH 0424/2060] glade: Rebuild. Fix outside tree build, locales installation. --- mingw-w64-glade/0008-localedir-fix.patch | 32 +++++++++++++++++++++ mingw-w64-glade/0009-icon-rc-relative.patch | 20 +++++++++++++ mingw-w64-glade/PKGBUILD | 26 ++++++++++------- 3 files changed, 68 insertions(+), 10 deletions(-) create mode 100644 mingw-w64-glade/0008-localedir-fix.patch create mode 100644 mingw-w64-glade/0009-icon-rc-relative.patch diff --git a/mingw-w64-glade/0008-localedir-fix.patch b/mingw-w64-glade/0008-localedir-fix.patch new file mode 100644 index 0000000000..9319bd24fe --- /dev/null +++ b/mingw-w64-glade/0008-localedir-fix.patch @@ -0,0 +1,32 @@ +--- glade-3.18.3/po/Makefile.in.in 2012-01-18 16:37:06 +0000 ++++ glade-3.18.3/po/Makefile.in.in 2013-05-12 17:12:40 +0000 +@@ -33,8 +33,7 @@ + datadir = @datadir@ + datarootdir = @datarootdir@ + libdir = @libdir@ +-DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +107,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +141,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot diff --git a/mingw-w64-glade/0009-icon-rc-relative.patch b/mingw-w64-glade/0009-icon-rc-relative.patch new file mode 100644 index 0000000000..62bbc40a9c --- /dev/null +++ b/mingw-w64-glade/0009-icon-rc-relative.patch @@ -0,0 +1,20 @@ +--- glade-3.18.3/gladeui/glade-previewer.rc.in.orig 2015-01-26 22:54:17.967200000 +0300 ++++ glade-3.18.3/gladeui/glade-previewer.rc.in 2015-01-26 22:56:00.094800000 +0300 +@@ -1,6 +1,6 @@ + #include + +-GLADE_ICON ICON "../data/icons/glade.ico" ++GLADE_ICON ICON "@top_srcdir@/data/icons/glade.ico" + + VS_VERSION_INFO VERSIONINFO + FILEVERSION @GLADE_MAJOR_VERSION@,@GLADE_MINOR_VERSION@,@GLADE_MICRO_VERSION@,0 +--- glade-3.18.3/src/glade.rc.in.orig 2015-01-26 23:03:56.444600000 +0300 ++++ glade-3.18.3/src/glade.rc.in 2015-01-26 23:04:06.054200000 +0300 +@@ -1,6 +1,6 @@ + #include + +-GLADE_ICON ICON "../data/icons/glade.ico" ++GLADE_ICON ICON "@top_srcdir@/data/icons/glade.ico" + + VS_VERSION_INFO VERSIONINFO + FILEVERSION @GLADE_MAJOR_VERSION@,@GLADE_MINOR_VERSION@,@GLADE_MICRO_VERSION@,0 diff --git a/mingw-w64-glade/PKGBUILD b/mingw-w64-glade/PKGBUILD index 0283103987..d15ca0ce71 100644 --- a/mingw-w64-glade/PKGBUILD +++ b/mingw-w64-glade/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=glade - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.18.3 -pkgrel=1 +pkgrel=2 pkgdesc="User interface builder for GTK+ and GNOME (mingw-w64)" arch=('any') url="http://glade.gnome.org" @@ -30,12 +29,16 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_real 0004-give-cc-to-gir-scanner.all.patch 0005-give-gtk-cflags-to-gir.patch 0006-disable-gnome-help.patch - 0007-glade-3.16.1-no-undefined.patch) + 0007-glade-3.16.1-no-undefined.patch + 0008-localedir-fix.patch + 0009-icon-rc-relative.patch) md5sums=('6852d6286683728e0ea40ca9b5d2416f' 'fb4d5a33bbfea33b6437c85a9ac567c8' '294197385457bdc58905a32b6d0e9e1e' '3ebefeb0d48ff89f7992e5046ce9f09c' - '15aa17f408e551a19a5419d6db51a58a') + '15aa17f408e551a19a5419d6db51a58a' + '48f5c9d78b9140d7e677a28a6d620ce3' + 'f1c38e6e5ab0c24a40261fa02c4ec799') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -43,13 +46,18 @@ prepare() { patch -p1 -i ${srcdir}/0005-give-gtk-cflags-to-gir.patch patch -p1 -i ${srcdir}/0006-disable-gnome-help.patch patch -p1 -i ${srcdir}/0007-glade-3.16.1-no-undefined.patch + patch -p1 -i ${srcdir}/0008-localedir-fix.patch + patch -p1 -i ${srcdir}/0009-icon-rc-relative.patch autoreconf -fi } build() { - cd "${srcdir}/${_realname}-${pkgver}" - export PYTHON=${MINGW_PREFIX}/bin/python2 - ./configure \ + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + #cd "${srcdir}/${_realname}-${pkgver}" + PYTHON=${MINGW_PREFIX}/bin/python2 \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -64,8 +72,6 @@ build() { } package() { - cd "${srcdir}/${_realname}-${pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - - mv ${pkgdir}${MINGW_PREFIX}/lib/locale ${pkgdir}${MINGW_PREFIX}/share/ } From a39e0c5a4a81584019414f7c437a543e64859d49 Mon Sep 17 00:00:00 2001 From: Andrew Chadwick Date: Tue, 27 Jan 2015 17:39:03 +0000 Subject: [PATCH 0425/2060] Added libjson-c From https://github.com/json-c/json-c , latest stable official tarball. Closes Alexpux/MINGW-packages#429 --- mingw-w64-json-c/PKGBUILD | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mingw-w64-json-c/PKGBUILD diff --git a/mingw-w64-json-c/PKGBUILD b/mingw-w64-json-c/PKGBUILD new file mode 100644 index 0000000000..57687b3bc9 --- /dev/null +++ b/mingw-w64-json-c/PKGBUILD @@ -0,0 +1,34 @@ +# Maintainer: Andrew Chadwick + +_realname=json-c +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=0.12 +pkgrel=1 +arch=('any') +pkgdesc="A JSON implementation in C." +url='https://github.com/json-c/json-c' +depends=("") +makedepends=("") +options=('strip' '!debug' 'staticlibs') +license=('MIT') +source=("http://s3.amazonaws.com/json-c_releases/releases/${_realname}-${pkgver}.tar.gz") +md5sums=('3ca4bbb881dfc4017e8021b5e0a8c491') + +prepare() { + cd "$srcdir/${_realname}-${pkgver/_/-}" +} + +build() { + cd "$srcdir/${_realname}-${pkgver/_/-}" + # sh autogen.sh # only for github release tarballs + CFLAGS="-Wno-error=unused-but-set-variable -Wno-error=unknown-pragmas $CFLAGS" + export CFLAGS + ./configure --prefix="${MINGW_PREFIX}" + make all +} + +package() { + cd "$srcdir/${_realname}-${pkgver/_/-}" + make DESTDIR="${pkgdir}" install + install -D COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING +} From 669d49af0931ace95f150c39038e4431676a8ec3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 27 Jan 2015 23:14:35 +0300 Subject: [PATCH 0426/2060] ruby: Update to 2.2.0 --- mingw-w64-ruby/0003-fix-check-types.patch | 4 ++-- mingw-w64-ruby/PKGBUILD | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mingw-w64-ruby/0003-fix-check-types.patch b/mingw-w64-ruby/0003-fix-check-types.patch index 6369a03d7b..d8f8fae83f 100644 --- a/mingw-w64-ruby/0003-fix-check-types.patch +++ b/mingw-w64-ruby/0003-fix-check-types.patch @@ -4,8 +4,8 @@ ac_cv_func_malloc_usable_size=no { test "$target_cpu" = x64 && ac_cv_func___builtin_setjmp=no; } AC_CHECK_TYPE([NET_LUID], [], [], -- [@%:@include -- @%:@include ]) +- [@%:@include +- @%:@include ]) + [@%:@include + @%:@include + @%:@include ]) diff --git a/mingw-w64-ruby/PKGBUILD b/mingw-w64-ruby/PKGBUILD index 10bcd79bf9..facb47190e 100644 --- a/mingw-w64-ruby/PKGBUILD +++ b/mingw-w64-ruby/PKGBUILD @@ -2,7 +2,7 @@ _realname=ruby pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.5 +pkgver=2.2.0 pkgrel=1 pkgdesc="An object-oriented language for quick and easy programming (mingw-w64)" arch=('any') @@ -21,10 +21,10 @@ source=("http://cache.ruby-lang.org/pub/ruby/${pkgver%.*}/ruby-${pkgver}.tar.bz2 0001-mingw-w64-time-functions.patch 0002-use-gnu-printf.patch 0003-fix-check-types.patch) -md5sums=('a7c3e5fec47eff23091b566e9e1dac1b' +md5sums=('d03cd4690fec1fff81d096d1c1255fde' '4256c35613e6dc15c164015ae8977d4a' '6d54f98b9e3a0d0077e9348dc7f69482' - '09bde4c15842b6a8aa372ad8ad1a8af7') + 'f9170e918fa7b7118d241d238d7a0e3b') prepare() { cd ${srcdir}/ruby-${pkgver} @@ -55,7 +55,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make - GNUMakefile DESTDIR="${pkgdir}" install-nodoc - for script in {erb,gem,irb,rake,rdoc,ri,testrb}; do + for script in {erb,gem,irb,rake,rdoc,ri}; do install ${srcdir}/ruby-${pkgver}/bin/${script} \ ${pkgdir}${MINGW_PREFIX}/bin/ done From 17ad9796826efbd8ae1456e5979d72f73dd529a3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 27 Jan 2015 23:30:38 +0300 Subject: [PATCH 0427/2060] eigen3: Update to 3.2.4 --- mingw-w64-eigen3/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-eigen3/PKGBUILD b/mingw-w64-eigen3/PKGBUILD index 26991608e9..48b51efe38 100644 --- a/mingw-w64-eigen3/PKGBUILD +++ b/mingw-w64-eigen3/PKGBUILD @@ -2,7 +2,7 @@ _realname=eigen pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}3") -pkgver=3.2.3 +pkgver=3.2.4 pkgrel=1 pkgdesc="Lightweight C++ template library for vector and matrix math (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ source=("http://bitbucket.org/eigen/eigen/get/${pkgver}.tar.bz2" 'eigen-3.2_gcc58087.patch' 'TryRunResults.cmake' 'eigen-pkgconfig.patch') -md5sums=('a88bf9a8e674762619429e80f46005bf' +md5sums=('4c4b5ed9a388a1e475166d575af25477' '89587f79971efc8f363d478f48f86829' '1db055c7681799bb21118b2dcf95980a' '67e151de214f29c1e6cf00452916d7d4' From 577f3467a55f9eb1699f7f33dbe83bac77b54e5d Mon Sep 17 00:00:00 2001 From: Andrew Chadwick Date: Wed, 28 Jan 2015 17:40:37 +0000 Subject: [PATCH 0428/2060] gtk3: backport wintab fixes for missing pressure Backport upstream fixes for failed initialization of input devices which rely on wintab.dll, resulting in no pressure on tablets and Gdk-CRITICAL errors. Affects MyPaint, and will affect GIMP too. https://bugzilla.gnome.org/show_bug.cgi?id=743330 https://github.com/mypaint/mypaint/issues/178 These will hopefully hit stable in 3.14.8, https://git.gnome.org/browse/gtk+/log/?h=gtk-3-14 , so please revert this patch when that arrives in MSYS2. --- .../0056-fix-create-window-for-wintab.patch | 42 ++++++++++++++++++ ...b-dont-check-position-of-null-device.patch | 43 +++++++++++++++++++ mingw-w64-gtk3/PKGBUILD | 8 +++- 3 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-gtk3/0056-fix-create-window-for-wintab.patch create mode 100644 mingw-w64-gtk3/0057-wintab-dont-check-position-of-null-device.patch diff --git a/mingw-w64-gtk3/0056-fix-create-window-for-wintab.patch b/mingw-w64-gtk3/0056-fix-create-window-for-wintab.patch new file mode 100644 index 0000000000..1c804ec143 --- /dev/null +++ b/mingw-w64-gtk3/0056-fix-create-window-for-wintab.patch @@ -0,0 +1,42 @@ +From 5b7ff8abead59d86c9d81a60e82f0317189a74bd Mon Sep 17 00:00:00 2001 +From: Carlos Garnacho +Date: Mon, 26 Jan 2015 14:26:34 +0000 +Subject: [PATCH] win32: Ensure we can create a window for wintab + +The window used NULL as a parent window, which defaults internally to +using the root window of the default screen. But at the time wintab is +initialized, there is no default display/screen yet. + +Fix this by retrieving this information from the given GdkDeviceManager, +so we don't have to wait for the display to be in place before +initialization. + +https://bugzilla.gnome.org/show_bug.cgi?id=743330 +--- + gdk/win32/gdkdevicemanager-win32.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/gdk/win32/gdkdevicemanager-win32.c b/gdk/win32/gdkdevicemanager-win32.c +index 41433a8..a645c10 100644 +--- a/gdk/win32/gdkdevicemanager-win32.c ++++ b/gdk/win32/gdkdevicemanager-win32.c +@@ -371,6 +371,8 @@ void + _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager) + { + GdkDeviceManagerWin32 *device_manager = (GdkDeviceManagerWin32 *)_device_manager; ++ GdkDisplay *display = gdk_device_manager_get_display (_device_manager); ++ GdkWindow *root = gdk_screen_get_root_window (gdk_display_get_default_screen (display)); + static gboolean wintab_initialized = FALSE; + GdkDeviceWintab *device; + GdkWindowAttr wa; +@@ -459,7 +461,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager) + wa.x = -100; + wa.y = -100; + wa.window_type = GDK_WINDOW_TOPLEVEL; +- if ((wintab_window = gdk_window_new (NULL, &wa, GDK_WA_X|GDK_WA_Y)) == NULL) ++ if ((wintab_window = gdk_window_new (root, &wa, GDK_WA_X | GDK_WA_Y)) == NULL) + { + g_warning ("gdk_input_wintab_init: gdk_window_new failed"); + return; +-- +2.1.0 \ No newline at end of file diff --git a/mingw-w64-gtk3/0057-wintab-dont-check-position-of-null-device.patch b/mingw-w64-gtk3/0057-wintab-dont-check-position-of-null-device.patch new file mode 100644 index 0000000000..40cd7d58fa --- /dev/null +++ b/mingw-w64-gtk3/0057-wintab-dont-check-position-of-null-device.patch @@ -0,0 +1,43 @@ +From 3c5e1781e8286da5cb6acf991eebfff58fc1a8d0 Mon Sep 17 00:00:00 2001 +From: Carlos Garnacho +Date: Tue, 27 Jan 2015 11:24:18 +0000 +Subject: [PATCH] win32: Don't check the position of a NULL device + +This function is given a barely setup GdkEvent, so the GdkDevice field +is still unset, causing warnings and misbehaviors when the position +is queried for it. + +Given that the wintab GTK+ code seems to rely somewhat hard on the wintab +device managing the pointer cursor, query the pointer position from the +pointer itself. + +https://bugzilla.gnome.org/show_bug.cgi?id=743330 +--- + gdk/win32/gdkdevicemanager-win32.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/gdk/win32/gdkdevicemanager-win32.c b/gdk/win32/gdkdevicemanager-win32.c +index a645c10..7eba80b 100644 +--- a/gdk/win32/gdkdevicemanager-win32.c ++++ b/gdk/win32/gdkdevicemanager-win32.c +@@ -886,7 +886,6 @@ _gdk_input_other_event (GdkEvent *event, + GdkDeviceManagerWin32 *device_manager; + GdkDeviceWintab *source_device = NULL; + GdkDeviceGrabInfo *last_grab; +- GdkDevice *device = NULL; + GdkEventMask masktest; + guint key_state; + POINT pt; +@@ -908,9 +907,7 @@ _gdk_input_other_event (GdkEvent *event, + } + + device_manager = GDK_DEVICE_MANAGER_WIN32 (gdk_display_get_device_manager (_gdk_display)); +- +- device = gdk_event_get_device (event); +- window = gdk_device_get_window_at_position (device, &x, &y); ++ window = gdk_device_get_window_at_position (device_manager->core_pointer, &x, &y); + if (window == NULL) + window = _gdk_root; + +-- +2.1.0 \ No newline at end of file diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index f43471eeaa..317a9dc301 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.14.6 -pkgrel=1 +pkgrel=2 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -32,6 +32,8 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch 0054-no-transparency-for-children.all.patch 0055-skip-testsuite.all.patch + 0056-fix-create-window-for-wintab.patch + 0057-wintab-dont-check-position-of-null-device.patch Make-reftest-plugins-W32-compatible.patch) md5sums=('34340b3ede9c1cfee3c6e2ec5f6eccc5' '9e0296da2986be7697cf343563b85d1f' @@ -40,6 +42,8 @@ md5sums=('34340b3ede9c1cfee3c6e2ec5f6eccc5' 'ad383a497a9134355e0a549f844c3a33' '31d098e6856ddc8dde7259ae572f8bf1' '751ee83452f3e06a460a8867f8e479b8' + '959d0ec6f48ce8771d22ef8b5f07613c' + '6f66a0ad137853e21a523eab729bf638' '864d4b2cd6f72115cc78a393ccd96b47') prepare() { @@ -50,6 +54,8 @@ prepare() { patch -Np1 -i "${srcdir}"/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch patch -Np1 -i "${srcdir}"/0054-no-transparency-for-children.all.patch patch -Np1 -i "${srcdir}"/0055-skip-testsuite.all.patch + patch -Np1 -i "${srcdir}"/0056-fix-create-window-for-wintab.patch + patch -Np1 -i "${srcdir}"/0057-wintab-dont-check-position-of-null-device.patch #patch -Np1 -i "${srcdir}"/Make-reftest-plugins-W32-compatible.patch autoreconf -i From a6f60ce8b9b4436216ffee5094fa14407342dcf2 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 28 Jan 2015 17:43:31 +0000 Subject: [PATCH 0429/2060] bison: Fix relocation BINDIR is in MSYS2-land and so M4 should be too. --- mingw-w64-bison/PKGBUILD | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mingw-w64-bison/PKGBUILD b/mingw-w64-bison/PKGBUILD index c2c50d9471..6cc6e21062 100644 --- a/mingw-w64-bison/PKGBUILD +++ b/mingw-w64-bison/PKGBUILD @@ -4,7 +4,7 @@ _realname=bison pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.4 -pkgrel=1 +pkgrel=2 pkgdesc="The GNU general-purpose parser generator" arch=('any') license=('GPL3') @@ -25,6 +25,9 @@ md5sums=('c342201de104cc9ce0a21e0ad10d4021' prepare() { cd ${srcdir}/${_realname}-${pkgver} + [ -f src/pathtools.h ] && rm -rf src/pathtools.h + [ -f src/pathtools.c ] && rm -rf src/pathtools.c + patch -p1 -i "${srcdir}"/0001-use-gnu_printf.patch patch -p1 -i "${srcdir}"/0002-add-relocation-support.patch patch -p1 -i "${srcdir}"/0003-create_pipe-uses-O_TEXT-not-O_BINARY-mode.patch @@ -36,7 +39,7 @@ prepare() { build() { mkdir -p "${srcdir}"/build-${CARCH} cd "${srcdir}"/build-${CARCH} - M4=$(cygpath -wm ${MINGW_PREFIX})/bin/m4.exe \ + M4=${MINGW_PREFIX}/bin/m4.exe \ ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ From 2e5c3708f6007404494dc70faae4db94fa839d0d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 29 Jan 2015 21:32:28 +0000 Subject: [PATCH 0430/2060] inkscape: Update to 0.91 --- mingw-w64-inkscape/PKGBUILD | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index ddfb2c6618..b2c853e96b 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -3,7 +3,7 @@ _realname=inkscape pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.91pre4 +pkgver=0.91 pkgrel=1 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') @@ -38,8 +38,7 @@ optdepends=(#"${MINGW_PACKAGE_PREFIX}-pstoedit: latex formulas" #"${MINGW_PACKAGE_PREFIX}-uniconvertor: reading/writing to some proprietary formats" ) options=('staticlibs' 'strip') -source=("http://downloads.sourceforge.net/project/${_realname}/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.bz2" - #http://sourceforge.net/projects/inkscape/files/inkscape/0.91pre3/inkscape-0.91pre3.tar.bz2/download +source=("https://inkscape.global.ssl.fastly.net/media/resources/file/${_realname}-${pkgver}.tar.gz" inkscape-0.48.4-headers-fix.patch inkscape-0.48.4-python.patch inkscape-0.48.4-use-GStatBuf-insted-stat.patch @@ -48,7 +47,7 @@ source=("http://downloads.sourceforge.net/project/${_realname}/${_realname}/${pk inkscape-0.48.4-win32-file-dialog.patch inkscape-0.48.4-python-extensions-location.patch inkscape-0.91-simulaneous-intltool-gettext.patch) -sha1sums=('8978f5e152668ad29708019952258b00d11ad2e6' +sha1sums=('e590f3b52c10771ae776a6f8173d21602ad1f261' '12fddb0a0b34b4308de1979d13b26d05a6ec8f77' '4dd0da65e538ba7e73a42ce76efd5e5a155d3bf0' '7e53e26506f22e51b79c50302adcad693c2d1698' From a806c7c3aff186229d002adfcc620e785e8bfb53 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 30 Jan 2015 00:42:12 +0300 Subject: [PATCH 0431/2060] jasper: Add patches. --- mingw-w64-jasper/PKGBUILD | 96 +++-- ...11-4516-CVE-2011-4517-CERT-VU-887409.patch | 23 ++ .../jasper-1.900.1-Coverity-BAD_SIZEOF.patch | 17 + ...sper-1.900.1-Coverity-CHECKED_RETURN.patch | 141 ++++++++ ...jasper-1.900.1-Coverity-FORWARD_NULL.patch | 44 +++ ...jasper-1.900.1-Coverity-NULL_RETURNS.patch | 61 ++++ ...asper-1.900.1-Coverity-RESOURCE_LEAK.patch | 202 +++++++++++ .../jasper-1.900.1-Coverity-UNREACHABLE.patch | 37 ++ ...jasper-1.900.1-Coverity-UNUSED_VALUE.patch | 41 +++ .../jasper-1.900.1-canonical-target.patch | 11 - mingw-w64-jasper/jasper-1.900.1-mingw32.patch | 12 - mingw-w64-jasper/jasper-CVE-2014-8137.patch | 57 +++ mingw-w64-jasper/jasper-CVE-2014-8138.patch | 14 + mingw-w64-jasper/jasper-CVE-2014-8157.patch | 12 + mingw-w64-jasper/jasper-CVE-2014-8158.patch | 329 ++++++++++++++++++ mingw-w64-jasper/jasper-CVE-2014-9029.patch | 29 ++ mingw-w64-jasper/jasper-pkgconfig.patch | 48 +++ 17 files changed, 1124 insertions(+), 50 deletions(-) create mode 100644 mingw-w64-jasper/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch create mode 100644 mingw-w64-jasper/jasper-1.900.1-Coverity-BAD_SIZEOF.patch create mode 100644 mingw-w64-jasper/jasper-1.900.1-Coverity-CHECKED_RETURN.patch create mode 100644 mingw-w64-jasper/jasper-1.900.1-Coverity-FORWARD_NULL.patch create mode 100644 mingw-w64-jasper/jasper-1.900.1-Coverity-NULL_RETURNS.patch create mode 100644 mingw-w64-jasper/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch create mode 100644 mingw-w64-jasper/jasper-1.900.1-Coverity-UNREACHABLE.patch create mode 100644 mingw-w64-jasper/jasper-1.900.1-Coverity-UNUSED_VALUE.patch delete mode 100644 mingw-w64-jasper/jasper-1.900.1-canonical-target.patch create mode 100644 mingw-w64-jasper/jasper-CVE-2014-8137.patch create mode 100644 mingw-w64-jasper/jasper-CVE-2014-8138.patch create mode 100644 mingw-w64-jasper/jasper-CVE-2014-8157.patch create mode 100644 mingw-w64-jasper/jasper-CVE-2014-8158.patch create mode 100644 mingw-w64-jasper/jasper-CVE-2014-9029.patch create mode 100644 mingw-w64-jasper/jasper-pkgconfig.patch diff --git a/mingw-w64-jasper/PKGBUILD b/mingw-w64-jasper/PKGBUILD index e3f6baf6e2..696f1666bf 100644 --- a/mingw-w64-jasper/PKGBUILD +++ b/mingw-w64-jasper/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=jasper - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.900.1 -pkgrel=2 +pkgrel=3 pkgdesc="A software-based implementation of the codec specified in the emerging JPEG-2000 Part-1 standard (mingw-w64)" arch=('any') url="http://www.ece.uvic.ca/~mdadams/jasper" @@ -13,40 +12,82 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" depends=("${MINGW_PACKAGE_PREFIX}-libjpeg-turbo") options=('staticlibs' 'strip' '!libtool') source=("http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-${pkgver}.zip" - "jpc_dec.c.patch" - "patch-libjasper-stepsizes-overflow.diff" - "jasper-1.900.1-CVE-2008-3520.patch" - "jasper-1.900.1-CVE-2008-3522.patch" - "jasper-1.900.1-mingw32.patch" - "jasper-1.900.1-canonical-target.patch" - "jasper-1.900.1-enable-shared.patch" - "jasper-1.900.1-sleep.patch") + patch-libjasper-stepsizes-overflow.diff + jpc_dec.c.patch + jasper-1.900.1-CVE-2008-3520.patch + jasper-1.900.1-CVE-2008-3522.patch + jasper-pkgconfig.patch + jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch + jasper-CVE-2014-9029.patch + jasper-CVE-2014-8137.patch + jasper-CVE-2014-8138.patch + jasper-CVE-2014-8157.patch + jasper-CVE-2014-8158.patch + jasper-1.900.1-Coverity-BAD_SIZEOF.patch + jasper-1.900.1-Coverity-CHECKED_RETURN.patch + jasper-1.900.1-Coverity-FORWARD_NULL.patch + jasper-1.900.1-Coverity-NULL_RETURNS.patch + jasper-1.900.1-Coverity-RESOURCE_LEAK.patch + jasper-1.900.1-Coverity-UNREACHABLE.patch + jasper-1.900.1-Coverity-UNUSED_VALUE.patch + jasper-1.900.1-mingw32.patch + jasper-1.900.1-enable-shared.patch + jasper-1.900.1-sleep.patch) sha1sums=('9c5735f773922e580bf98c7c7dfda9bbed4c5191' - 'c1a0176a15210c0af14d85e55ce566921957d780' 'f298566fef08c8a589d072582112cd51c72c3983' + 'c1a0176a15210c0af14d85e55ce566921957d780' '2483dba925670bf29f531d85d73c4e5ada513b01' '0e7b6142cd9240ffb15a1ed7297c43c76fa09ee4' - 'ff3bd0235915b89020d345db96e879f669d5e473' - 'ec93341267617d9d75eafc041f4786c16b07f62c' + '2cd4bf95286ec1f8757023f216ba7b839b4ee923' + '06a60d1ee02a2c20a93ba1fb8a04bc3d868216a6' + 'ecae5348b05e0fb304600dc4fecb834208c4c235' + 'bee436561698a339c680e6654252b8bf18643318' + '6086e717af2f0a026f70e399e28fe115f08a8cc1' + 'aaf96946073d2ece35f3695e8cc7956b5cad9a1d' + 'e69b339de43d1dc2fbb98368cee3d20f76d35941' + '184279e0684159462419c4f1dcf67b99e6842bb9' + 'c68961c9071a772cf1cbfec6effa961352e8bb52' + '21d312eb4625050f39cfad0431b47ce225e3c536' + '4f5bc89491670360bebf3b9d1b21a14c2b2f9faf' + '643519f88b7293f2ed20efa8b6222cfe0151708f' + 'f8f7515303107d67f0e86bf42b26b458bfda1701' + '551c5f809d8e9adb16819d73e636a01cae65c8d7' + '2d64229bf71633ec7e1ba0c1d5116dda1fa72468' '54940e11d1b04964a0ed9329a8e1ffbc290353ad' 'd009ecd9d1d0212bcedcf28f483db77ddd3bb1c7') prepare() { cd "$srcdir/jasper-$pkgver" find . -type f -exec dos2unix {} \; - patch -p1 -i "${srcdir}/jpc_dec.c.patch" - patch -p1 -i "${srcdir}/patch-libjasper-stepsizes-overflow.diff" - patch -p1 -i "${srcdir}/jasper-1.900.1-CVE-2008-3520.patch" - patch -p1 -i "${srcdir}/jasper-1.900.1-CVE-2008-3522.patch" - patch -p1 -i "${srcdir}/jasper-1.900.1-mingw32.patch" - patch -p1 -i "${srcdir}/jasper-1.900.1-canonical-target.patch" - patch -p1 -i "${srcdir}/jasper-1.900.1-enable-shared.patch" - patch -p1 -i "${srcdir}/jasper-1.900.1-sleep.patch" - libtoolize --copy --force - aclocal - automake --add-missing - autoconf + patch -p1 -i "${srcdir}"/patch-libjasper-stepsizes-overflow.diff + patch -p1 -i "${srcdir}"/jpc_dec.c.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-CVE-2008-3520.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-CVE-2008-3522.patch + patch -p1 -i "${srcdir}"/jasper-pkgconfig.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch + patch -p1 -i "${srcdir}"/jasper-CVE-2014-9029.patch + patch -p1 -i "${srcdir}"/jasper-CVE-2014-8137.patch + patch -p1 -i "${srcdir}"/jasper-CVE-2014-8138.patch + patch -p1 -i "${srcdir}"/jasper-CVE-2014-8157.patch + patch -p1 -i "${srcdir}"/jasper-CVE-2014-8158.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-Coverity-BAD_SIZEOF.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-Coverity-CHECKED_RETURN.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-Coverity-FORWARD_NULL.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-Coverity-NULL_RETURNS.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-Coverity-UNREACHABLE.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-Coverity-UNUSED_VALUE.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-mingw32.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-enable-shared.patch + patch -p1 -i "${srcdir}"/jasper-1.900.1-sleep.patch + + #libtoolize --copy --force + #aclocal + #automake --add-missing + #autoconf + + autoreconf -fiv } build() { @@ -57,7 +98,9 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --enable-static + --enable-static \ + --disable-opengl + make } @@ -69,5 +112,4 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-jasper/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch b/mingw-w64-jasper/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch new file mode 100644 index 0000000000..f753080a3a --- /dev/null +++ b/mingw-w64-jasper/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch @@ -0,0 +1,23 @@ +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.CERT-VU-887409 jasper-1.900.1/src/libjasper/jpc/jpc_cs.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.CERT-VU-887409 2011-10-25 17:25:39.000000000 +0200 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2011-10-25 17:29:14.379371908 +0200 +@@ -744,6 +744,10 @@ static int jpc_cox_getcompparms(jpc_ms_t + return -1; + } + compparms->numrlvls = compparms->numdlvls + 1; ++ if (compparms->numrlvls > JPC_MAXRLVLS) { ++ jpc_cox_destroycompparms(compparms); ++ return -1; ++ } + if (prtflag) { + for (i = 0; i < compparms->numrlvls; ++i) { + if (jpc_getuint8(in, &tmp)) { +@@ -1331,7 +1335,7 @@ static int jpc_crg_getparms(jpc_ms_t *ms + jpc_crgcomp_t *comp; + uint_fast16_t compno; + crg->numcomps = cstate->numcomps; +- if (!(crg->comps = jas_alloc2(cstate->numcomps, sizeof(uint_fast16_t)))) { ++ if (!(crg->comps = jas_alloc2(cstate->numcomps, sizeof(jpc_crgcomp_t)))) { + return -1; + } + for (compno = 0, comp = crg->comps; compno < cstate->numcomps; diff --git a/mingw-w64-jasper/jasper-1.900.1-Coverity-BAD_SIZEOF.patch b/mingw-w64-jasper/jasper-1.900.1-Coverity-BAD_SIZEOF.patch new file mode 100644 index 0000000000..1977400579 --- /dev/null +++ b/mingw-w64-jasper/jasper-1.900.1-Coverity-BAD_SIZEOF.patch @@ -0,0 +1,17 @@ +Error: BAD_SIZEOF +jpc/jpc_enc.c:2105: bad_sizeof: Taking the size of binary expression "tcmpt->numstepsizes * sizeof (uint_fast16_t) /*8*/" is suspicious. + Did you intend "sizeof(tcmpt->numstepsizes) * sizeof (uint_fast16_t) /*8*/"? + +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.bad_sizeof jasper-1.900.1/src/libjasper/jpc/jpc_enc.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.bad_sizeof 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_enc.c 2011-06-23 17:28:17.085690561 +0200 +@@ -2102,8 +2102,7 @@ static jpc_enc_tcmpt_t *tcmpt_create(jpc + + tcmpt->numstepsizes = tcmpt->numbands; + assert(tcmpt->numstepsizes <= JPC_MAXBANDS); +- memset(tcmpt->stepsizes, 0, sizeof(tcmpt->numstepsizes * +- sizeof(uint_fast16_t))); ++ memset(tcmpt->stepsizes, 0, tcmpt->numstepsizes * sizeof(uint_fast16_t)); + + /* Retrieve information about the various bands. */ + jpc_tsfb_getbands(tcmpt->tsfb, jas_seq2d_xstart(tcmpt->data), diff --git a/mingw-w64-jasper/jasper-1.900.1-Coverity-CHECKED_RETURN.patch b/mingw-w64-jasper/jasper-1.900.1-Coverity-CHECKED_RETURN.patch new file mode 100644 index 0000000000..ea330f2c19 --- /dev/null +++ b/mingw-w64-jasper/jasper-1.900.1-Coverity-CHECKED_RETURN.patch @@ -0,0 +1,141 @@ +Error: CHECKED_RETURN +jpc/jpc_cs.c:924: check_return: Calling function "jpc_putuint16" without checking return value (as is done elsewhere 11 out of 13 times). +jpc/jpc_cs.c:924: unchecked_value: No check of the return value of "jpc_putuint16(out, qcc->compno)". + +jpc/jpc_cs.c:1021: check_return: Calling function "jpc_putuint16" without checking return value (as is done elsewhere 11 out of 13 times). +jpc/jpc_cs.c:1021: unchecked_value: No check of the return value of "jpc_putuint16(out, compparms->stepsizes[i])". + +jpc/jpc_cs.c:994: check_return: Calling function "jpc_getuint16" without checking return value (as is done elsewhere 14 out of 16 times). +jpc/jpc_cs.c:994: unchecked_value: No check of the return value of "jpc_getuint16(in, compparms->stepsizes + i)". + +jpc/jpc_cs.c:905: check_return: Calling function "jpc_getuint16" without checking return value (as is done elsewhere 14 out of 16 times). +jpc/jpc_cs.c:905: unchecked_value: No check of the return value of "jpc_getuint16(in, &qcc->compno)". + +jpc/jpc_cs.c:969: check_return: Calling function "jpc_getuint8" without checking return value (as is done elsewhere 17 out of 20 times). +jpc/jpc_cs.c:969: unchecked_value: No check of the return value of "jpc_getuint8(in, &tmp)". + +jpc/jpc_cs.c:991: check_return: Calling function "jpc_getuint8" without checking return value (as is done elsewhere 17 out of 20 times). +jpc/jpc_cs.c:991: unchecked_value: No check of the return value of "jpc_getuint8(in, &tmp)". + +jpc/jpc_cs.c:901: check_return: Calling function "jpc_getuint8" without checking return value (as is done elsewhere 17 out of 20 times). +jpc/jpc_cs.c:901: unchecked_value: No check of the return value of "jpc_getuint8(in, &tmp)". + +jpc/jpc_t2enc.c:338: check_return: Calling function "jpc_putms" without checking return value (as is done elsewhere 12 out of 13 times). +jpc/jpc_t2enc.c:338: unchecked_value: No check of the return value of "jpc_putms(out, enc->cstate, ms)". + +ras/ras_enc.c:245: check_return: Calling function "jas_image_readcmpt" without checking return value (as is done elsewhere 9 out of 10 times). +ras/ras_enc.c:245: unchecked_value: No check of the return value of "jas_image_readcmpt(image, cmpts[i], 0L, y, image->brx_ - image->tlx_, 1L, data[i])". + +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.checked_return jasper-1.900.1/src/libjasper/jpc/jpc_cs.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.checked_return 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2011-06-24 13:52:25.636551844 +0200 +@@ -898,11 +898,15 @@ static int jpc_qcc_getparms(jpc_ms_t *ms + int len; + len = ms->len; + if (cstate->numcomps <= 256) { +- jpc_getuint8(in, &tmp); ++ if (jpc_getuint8(in, &tmp)) { ++ return -1; ++ } + qcc->compno = tmp; + --len; + } else { +- jpc_getuint16(in, &qcc->compno); ++ if (jpc_getuint16(in, &qcc->compno)) { ++ return -1; ++ } + len -= 2; + } + if (jpc_qcx_getcompparms(&qcc->compparms, cstate, in, len)) { +@@ -919,9 +923,13 @@ static int jpc_qcc_putparms(jpc_ms_t *ms + { + jpc_qcc_t *qcc = &ms->parms.qcc; + if (cstate->numcomps <= 256) { +- jpc_putuint8(out, qcc->compno); ++ if (jpc_putuint8(out, qcc->compno)) { ++ return -1; ++ } + } else { +- jpc_putuint16(out, qcc->compno); ++ if (jpc_putuint16(out, qcc->compno)) { ++ return -1; ++ } + } + if (jpc_qcx_putcompparms(&qcc->compparms, cstate, out)) { + return -1; +@@ -966,7 +974,9 @@ static int jpc_qcx_getcompparms(jpc_qcxc + cstate = 0; + + n = 0; +- jpc_getuint8(in, &tmp); ++ if (jpc_getuint8(in, &tmp)) { ++ return -1; ++ } + ++n; + compparms->qntsty = tmp & 0x1f; + compparms->numguard = (tmp >> 5) & 7; +@@ -988,10 +998,14 @@ static int jpc_qcx_getcompparms(jpc_qcxc + assert(compparms->stepsizes); + for (i = 0; i < compparms->numstepsizes; ++i) { + if (compparms->qntsty == JPC_QCX_NOQNT) { +- jpc_getuint8(in, &tmp); ++ if (jpc_getuint8(in, &tmp)) { ++ return -1; ++ } + compparms->stepsizes[i] = JPC_QCX_EXPN(tmp >> 3); + } else { +- jpc_getuint16(in, &compparms->stepsizes[i]); ++ if (jpc_getuint16(in, &compparms->stepsizes[i])) { ++ return -1; ++ } + } + } + } else { +@@ -1015,10 +1029,14 @@ static int jpc_qcx_putcompparms(jpc_qcxc + jpc_putuint8(out, ((compparms->numguard & 7) << 5) | compparms->qntsty); + for (i = 0; i < compparms->numstepsizes; ++i) { + if (compparms->qntsty == JPC_QCX_NOQNT) { +- jpc_putuint8(out, JPC_QCX_GETEXPN( +- compparms->stepsizes[i]) << 3); ++ if (jpc_putuint8(out, JPC_QCX_GETEXPN( ++ compparms->stepsizes[i]) << 3)) { ++ return -1; ++ } + } else { +- jpc_putuint16(out, compparms->stepsizes[i]); ++ if (jpc_putuint16(out, compparms->stepsizes[i])) { ++ return -1; ++ } + } + } + return 0; +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c.checked_return jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c.checked_return 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c 2011-06-24 12:29:32.069578992 +0200 +@@ -335,7 +335,9 @@ assert(jpc_firstone(datalen) < cblk->num + if (!(ms = jpc_ms_create(JPC_MS_EPH))) { + return -1; + } +- jpc_putms(out, enc->cstate, ms); ++ if (jpc_putms(out, enc->cstate, ms)) { ++ return -1; ++ } + jpc_ms_destroy(ms); + } + +diff -up jasper-1.900.1/src/libjasper/ras/ras_enc.c.checked_return jasper-1.900.1/src/libjasper/ras/ras_enc.c +--- jasper-1.900.1/src/libjasper/ras/ras_enc.c.checked_return 2007-01-19 22:43:04.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/ras/ras_enc.c 2011-06-24 14:05:31.233482612 +0200 +@@ -242,8 +242,10 @@ static int ras_putdatastd(jas_stream_t * + + for (y = 0; y < hdr->height; y++) { + for (i = 0; i < numcmpts; ++i) { +- jas_image_readcmpt(image, cmpts[i], 0, y, jas_image_width(image), +- 1, data[i]); ++ if (jas_image_readcmpt(image, cmpts[i], 0, y, ++ jas_image_width(image), 1, data[i])) { ++ return -1; ++ } + } + z = 0; + nz = 0; diff --git a/mingw-w64-jasper/jasper-1.900.1-Coverity-FORWARD_NULL.patch b/mingw-w64-jasper/jasper-1.900.1-Coverity-FORWARD_NULL.patch new file mode 100644 index 0000000000..ff526b4d1b --- /dev/null +++ b/mingw-w64-jasper/jasper-1.900.1-Coverity-FORWARD_NULL.patch @@ -0,0 +1,44 @@ +Error: FORWARD_NULL +jpc/jpc_dec.c:2207: var_compare_op: Comparing "streams" to null implies that "streams" might be null. +jpc/jpc_dec.c:2270: var_deref_model: Passing null variable "streams" to function "jpc_streamlist_destroy", which dereferences it. +jpc/jpc_dec.c:2108: deref_parm: Directly dereferencing parameter "streamlist". + +jpc/jpc_t1enc.c:225: assign_zero: Assigning: "cblk->passes" = 0. +jpc/jpc_t1enc.c:228: alias_transfer: Assigning null: "pass" = "cblk->passes". +jpc/jpc_t1enc.c:229: var_deref_op: Dereferencing null variable "pass". + +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.forward_null jasper-1.900.1/src/libjasper/jpc/jpc_dec.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.forward_null 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2011-06-24 15:01:39.200600146 +0200 +@@ -2267,7 +2267,9 @@ jpc_streamlist_t *jpc_ppmstabtostreams(j + return streams; + + error: +- jpc_streamlist_destroy(streams); ++ if (streams) { ++ jpc_streamlist_destroy(streams); ++ } + return 0; + } + +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c.forward_null jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c.forward_null 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c 2011-06-24 14:58:33.061248133 +0200 +@@ -224,7 +224,7 @@ int jpc_enc_enccblk(jpc_enc_t *enc, jas_ + } else { + cblk->passes = 0; + } +- endpasses = &cblk->passes[cblk->numpasses]; ++ endpasses = (cblk->passes) ? &cblk->passes[cblk->numpasses] : 0; + for (pass = cblk->passes; pass != endpasses; ++pass) { + pass->start = 0; + pass->end = 0; +@@ -352,7 +352,7 @@ dump_passes(cblk->passes, cblk->numpasse + #endif + + n = 0; +- endpasses = &cblk->passes[cblk->numpasses]; ++ endpasses = (cblk->passes) ? &cblk->passes[cblk->numpasses] : 0; + for (pass = cblk->passes; pass != endpasses; ++pass) { + if (pass->start < n) { + pass->start = n; diff --git a/mingw-w64-jasper/jasper-1.900.1-Coverity-NULL_RETURNS.patch b/mingw-w64-jasper/jasper-1.900.1-Coverity-NULL_RETURNS.patch new file mode 100644 index 0000000000..4c72270284 --- /dev/null +++ b/mingw-w64-jasper/jasper-1.900.1-Coverity-NULL_RETURNS.patch @@ -0,0 +1,61 @@ +Error: NULL_RETURNS +base/jas_image.c:213: returned_null: Function "jas_image_create0" returns null (checked 6 out of 7 times). +base/jas_image.c:213: var_assigned: Assigning: "newimage" = null return value from "jas_image_create0". +base/jas_image.c:214: dereference: Dereferencing a pointer that might be null "newimage" when calling "jas_image_growcmpts". +base/jas_image.c:777: deref_parm: Directly dereferencing parameter "image". + +base/jas_seq.c:223: returned_null: Function "jas_malloc" returns null (checked 110 out of 119 times). +base/jas_seq.c:223: var_assigned: Assigning: "mat0->rows_" = null return value from "jas_malloc". +base/jas_seq.c:225: dereference: Dereferencing a null pointer "mat0->rows_". + +jp2/jp2_cod.c:484: returned_null: Function "jas_stream_memopen" returns null (checked 12 out of 15 times). +jp2/jp2_cod.c:484: var_assigned: Assigning: "tmpstream" = null return value from "jas_stream_memopen". +jp2/jp2_cod.c:490: dereference: Dereferencing a pointer that might be null "tmpstream" when calling "jas_stream_tell". +base/jas_stream.c:677: deref_parm: Directly dereferencing parameter "stream". + + +diff -up jasper-1.900.1/src/libjasper/base/jas_image.c.NULL_RETURNS jasper-1.900.1/src/libjasper/base/jas_image.c +--- jasper-1.900.1/src/libjasper/base/jas_image.c.NULL_RETURNS 2011-12-08 14:00:05.350020869 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_image.c 2011-12-08 14:00:06.638004766 +0100 +@@ -210,7 +210,10 @@ jas_image_t *jas_image_copy(jas_image_t + jas_image_t *newimage; + int cmptno; + +- newimage = jas_image_create0(); ++ if (!(newimage = jas_image_create0())) { ++ goto error; ++ } ++ + if (jas_image_growcmpts(newimage, image->numcmpts_)) { + goto error; + } +diff -up jasper-1.900.1/src/libjasper/base/jas_seq.c.NULL_RETURNS jasper-1.900.1/src/libjasper/base/jas_seq.c +--- jasper-1.900.1/src/libjasper/base/jas_seq.c.NULL_RETURNS 2011-12-08 14:00:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_seq.c 2011-12-08 14:15:12.449680562 +0100 +@@ -220,7 +220,11 @@ void jas_matrix_bindsub(jas_matrix_t *ma + mat0->numrows_ = r1 - r0 + 1; + mat0->numcols_ = c1 - c0 + 1; + mat0->maxrows_ = mat0->numrows_; +- mat0->rows_ = jas_alloc2(mat0->maxrows_, sizeof(jas_seqent_t *)); ++ if (!(mat0->rows_ = jas_alloc2(mat0->maxrows_, sizeof(jas_seqent_t *)))) { ++ jas_matrix_destroy(mat0); ++ return; ++ } ++ + for (i = 0; i < mat0->numrows_; ++i) { + mat0->rows_[i] = mat1->rows_[r0 + i] + c0; + } +diff -up jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.NULL_RETURNS jasper-1.900.1/src/libjasper/jp2/jp2_cod.c +--- jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.NULL_RETURNS 2011-12-08 14:00:05.633017331 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_cod.c 2011-12-08 14:00:06.677004279 +0100 +@@ -481,7 +481,9 @@ int jp2_box_put(jp2_box_t *box, jas_stre + dataflag = !(box->info->flags & (JP2_BOX_SUPER | JP2_BOX_NODATA)); + + if (dataflag) { +- tmpstream = jas_stream_memopen(0, 0); ++ if (!(tmpstream = jas_stream_memopen(0, 0))) { ++ goto error; ++ } + if (box->ops->putdata) { + if ((*box->ops->putdata)(box, tmpstream)) { + goto error; diff --git a/mingw-w64-jasper/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch b/mingw-w64-jasper/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch new file mode 100644 index 0000000000..76f5da77fc --- /dev/null +++ b/mingw-w64-jasper/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch @@ -0,0 +1,202 @@ +Error: RESOURCE_LEAK +src/appl/imgcmp.c:504: var_assign: Assigning: "diffimage" = storage returned from "jas_image_create(3, compparms, 1025)". +src/appl/imgcmp.c:511: leaked_storage: Variable "diffimage" going out of scope leaks the storage it points to. +src/appl/imgcmp.c:537: leaked_storage: Variable "diffimage" going out of scope leaks the storage it points to. + +base/jas_image.c:254: var_assign: Assigning: "newcmpt" = storage returned from "jas_image_cmpt_create0()". +base/jas_image.c:268: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to. +base/jas_image.c:271: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to. +base/jas_image.c:274: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to. +base/jas_image.c:277: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to. + +base/jas_cm.c:611: var_assign: Assigning: "newpxformseq" = storage returned from "jas_cmpxformseq_create()". +base/jas_cm.c:617: leaked_storage: Variable "newpxformseq" going out of scope leaks the storage it points to. + +base/jas_cm.c:343: var_assign: Assigning: "newprof" = storage returned from "jas_cmprof_create()". +base/jas_cm.c:358: leaked_storage: Variable "newprof" going out of scope leaks the storage it points to. + +base/jas_cm.c:380: var_assign: Assigning: "xform" = storage returned from "jas_malloc(sizeof (jas_cmxform_t) /*16*/)". +base/jas_cm.c:461: leaked_storage: Variable "xform" going out of scope leaks the storage it points to. + +base/jas_image.c:1379: var_assign: Assigning: "xform" = storage returned from "jas_cmxform_create(inprof, outprof, NULL, 0, intent, 0)". +base/jas_image.c:1444: leaked_storage: Variable "xform" going out of scope leaks the storage it points to. + +base/jas_image.c:1306: var_assign: Assigning: "inimage" = storage returned from "jas_image_copy(image)". +base/jas_image.c:1444: leaked_storage: Variable "inimage" going out of scope leaks the storage it points to. + +base/jas_image.c:1345: var_assign: Assigning: "outimage" = storage returned from "jas_image_create0()". +base/jas_image.c:1444: leaked_storage: Variable "outimage" going out of scope leaks the storage it points to. + +bmp/bmp_enc.c:187: var_assign: Assigning: "info" = storage returned from "bmp_info_create()". +bmp/bmp_enc.c:208: leaked_storage: Variable "info" going out of scope leaks the storage it points to. + +jpc/jpc_tagtree.c:111: var_assign: Assigning: "tree" = storage returned from "jpc_tagtree_alloc()". +jpc/jpc_tagtree.c:129: leaked_storage: Variable "tree" going out of scope leaks the storage it points to. + +jpc/jpc_dec.c:452: var_assign: Assigning: "compinfos" = storage returned from "jas_malloc(dec->numcomps * sizeof (jas_image_cmptparm_t) /*56*/)". +jpc/jpc_dec.c:468: leaked_storage: Variable "compinfos" going out of scope leaks the storage it points to. + +jpc/jpc_dec.c:1483: var_assign: Assigning: "cp" = storage returned from "jas_malloc(sizeof (jpc_dec_cp_t) /*48*/)". +jpc/jpc_dec.c:1493: leaked_storage: Variable "cp" going out of scope leaks the storage it points to. +jpc/jpc_dec.c:1497: leaked_storage: Variable "cp" going out of scope leaks the storage it points to. + +mif/mif_cod.c:523: var_assign: Assigning: "cmpt" = storage returned from "mif_cmpt_create()". +mif/mif_cod.c:568: leaked_storage: Variable "cmpt" going out of scope leaks the storage it points to. + +mif/mif_cod.c:568: leaked_storage: Variable "tvp" going out of scope leaks the storage it points to. + + +diff -up jasper-1.900.1/src/appl/imgcmp.c.RESOURCE_LEAK jasper-1.900.1/src/appl/imgcmp.c +--- jasper-1.900.1/src/appl/imgcmp.c.RESOURCE_LEAK 2007-01-19 22:43:08.000000000 +0100 ++++ jasper-1.900.1/src/appl/imgcmp.c 2011-12-08 14:16:04.727027007 +0100 +@@ -507,6 +507,7 @@ jas_image_t *makediffimage(jas_matrix_t + + for (i = 0; i < 3; ++i) { + if (!(diffdata[i] = jas_matrix_create(height, width))) { ++ jas_image_destroy(diffimage); + fprintf(stderr, "internal error\n"); + return 0; + } +@@ -534,6 +535,7 @@ jas_image_t *makediffimage(jas_matrix_t + + for (i = 0; i < 3; ++i) { + if (jas_image_writecmpt(diffimage, i, 0, 0, width, height, diffdata[i])) { ++ jas_image_destroy(diffimage); + return 0; + } + } +diff -up jasper-1.900.1/src/libjasper/base/jas_cm.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/base/jas_cm.c +--- jasper-1.900.1/src/libjasper/base/jas_cm.c.RESOURCE_LEAK 2011-12-08 14:16:03.387043758 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_cm.c 2011-12-08 14:16:04.728026994 +0100 +@@ -355,6 +355,8 @@ jas_cmprof_t *jas_cmprof_copy(jas_cmprof + } + return newprof; + error: ++ if (newprof) ++ jas_cmprof_destroy(newprof); + return 0; + } + +@@ -458,6 +460,8 @@ jas_cmxform_t *jas_cmxform_create(jas_cm + } + return xform; + error: ++ if (xform) ++ jas_cmxform_destroy(xform); + return 0; + } + +@@ -614,6 +618,8 @@ static jas_cmpxformseq_t *jas_cmpxformse + goto error; + return newpxformseq; + error: ++ if (newpxformseq) ++ jas_cmpxformseq_destroy(newpxformseq); + return 0; + } + +diff -up jasper-1.900.1/src/libjasper/base/jas_image.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/base/jas_image.c +--- jasper-1.900.1/src/libjasper/base/jas_image.c.RESOURCE_LEAK 2011-12-08 14:16:04.635028156 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_image.c 2011-12-08 14:16:04.776026394 +0100 +@@ -268,15 +268,19 @@ static jas_image_cmpt_t *jas_image_cmpt_ + newcmpt->cps_ = cmpt->cps_; + newcmpt->type_ = cmpt->type_; + if (!(newcmpt->stream_ = jas_stream_memopen(0, 0))) { ++ jas_image_cmpt_destroy(newcmpt); + return 0; + } + if (jas_stream_seek(cmpt->stream_, 0, SEEK_SET)) { ++ jas_image_cmpt_destroy(newcmpt); + return 0; + } + if (jas_stream_copy(newcmpt->stream_, cmpt->stream_, -1)) { ++ jas_image_cmpt_destroy(newcmpt); + return 0; + } + if (jas_stream_seek(newcmpt->stream_, 0, SEEK_SET)) { ++ jas_image_cmpt_destroy(newcmpt); + return 0; + } + return newcmpt; +@@ -1443,5 +1447,11 @@ jas_image_dump(outimage, stderr); + #endif + return outimage; + error: ++ if (xform) ++ jas_cmxform_destroy(xform); ++ if (inimage) ++ jas_image_destroy(inimage); ++ if (outimage) ++ jas_image_destroy(outimage); + return 0; + } +diff -up jasper-1.900.1/src/libjasper/bmp/bmp_enc.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/bmp/bmp_enc.c +--- jasper-1.900.1/src/libjasper/bmp/bmp_enc.c.RESOURCE_LEAK 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/bmp/bmp_enc.c 2011-12-08 14:16:04.826025768 +0100 +@@ -205,16 +205,19 @@ int bmp_encode(jas_image_t *image, jas_s + + /* Write the bitmap header. */ + if (bmp_puthdr(out, &hdr)) { ++ bmp_info_destroy(info); + return -1; + } + + /* Write the bitmap information. */ + if (bmp_putinfo(out, info)) { ++ bmp_info_destroy(info); + return -1; + } + + /* Write the bitmap data. */ + if (bmp_putdata(out, info, image, enc->cmpts)) { ++ bmp_info_destroy(info); + return -1; + } + +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/jpc/jpc_dec.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.RESOURCE_LEAK 2011-12-08 14:16:04.594028668 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2011-12-08 14:17:25.677014992 +0100 +@@ -465,6 +465,7 @@ static int jpc_dec_process_sot(jpc_dec_t + + if (!(dec->image = jas_image_create(dec->numcomps, compinfos, + JAS_CLRSPC_UNKNOWN))) { ++ jas_free(compinfos); + return -1; + } + jas_free(compinfos); +@@ -1490,10 +1491,11 @@ static jpc_dec_cp_t *jpc_dec_cp_create(u + cp->mctid = 0; + cp->csty = 0; + if (!(cp->ccps = jas_alloc2(cp->numcomps, sizeof(jpc_dec_ccp_t)))) { ++ jpc_dec_cp_destroy(cp); + return 0; + } + if (!(cp->pchglist = jpc_pchglist_create())) { +- jas_free(cp->ccps); ++ jpc_dec_cp_destroy(cp); + return 0; + } + for (compno = 0, ccp = cp->ccps; compno < cp->numcomps; +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c.RESOURCE_LEAK 2011-12-08 14:16:04.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c 2011-12-08 14:17:55.905637082 +0100 +@@ -126,6 +126,7 @@ jpc_tagtree_t *jpc_tagtree_create(int nu + } while (n > 1); + + if (!(tree->nodes_ = jas_alloc2(tree->numnodes_, sizeof(jpc_tagtreenode_t)))) { ++ jpc_tagtree_destroy(tree); + return 0; + } + +diff -up jasper-1.900.1/src/libjasper/mif/mif_cod.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/mif/mif_cod.c +--- jasper-1.900.1/src/libjasper/mif/mif_cod.c.RESOURCE_LEAK 2011-12-08 14:16:04.250032970 +0100 ++++ jasper-1.900.1/src/libjasper/mif/mif_cod.c 2011-12-08 14:16:04.967024005 +0100 +@@ -564,7 +564,7 @@ static int mif_process_cmpt(mif_hdr_t *h + break; + case MIF_DATA: + if (!(cmpt->data = jas_strdup(jas_tvparser_getval(tvp)))) { +- return -1; ++ goto error; + } + break; + } diff --git a/mingw-w64-jasper/jasper-1.900.1-Coverity-UNREACHABLE.patch b/mingw-w64-jasper/jasper-1.900.1-Coverity-UNREACHABLE.patch new file mode 100644 index 0000000000..3cae29403b --- /dev/null +++ b/mingw-w64-jasper/jasper-1.900.1-Coverity-UNREACHABLE.patch @@ -0,0 +1,37 @@ +Error: UNREACHABLE +jp2/jp2_cod.c:304: unreachable: This code cannot be reached: "abort();". + +jp2/jp2_cod.c:514: unreachable: This code cannot be reached: "abort();". + +jp2/jp2_enc.c:354: unreachable: This code cannot be reached: "abort();". + +diff -up jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.unreachable jasper-1.900.1/src/libjasper/jp2/jp2_cod.c +--- jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.unreachable 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_cod.c 2011-06-27 15:28:13.083137952 +0200 +@@ -301,7 +301,6 @@ jp2_box_t *jp2_box_get(jas_stream_t *in) + } + + return box; +- abort(); + + error: + if (box) { +@@ -511,7 +510,6 @@ int jp2_box_put(jp2_box_t *box, jas_stre + } + + return 0; +- abort(); + + error: + +diff -up jasper-1.900.1/src/libjasper/jp2/jp2_enc.c.unreachable jasper-1.900.1/src/libjasper/jp2/jp2_enc.c +--- jasper-1.900.1/src/libjasper/jp2/jp2_enc.c.unreachable 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_enc.c 2011-06-27 15:27:58.858353979 +0200 +@@ -351,7 +351,6 @@ int sgnd; + } + + return 0; +- abort(); + + error: + diff --git a/mingw-w64-jasper/jasper-1.900.1-Coverity-UNUSED_VALUE.patch b/mingw-w64-jasper/jasper-1.900.1-Coverity-UNUSED_VALUE.patch new file mode 100644 index 0000000000..e7d4cb5910 --- /dev/null +++ b/mingw-w64-jasper/jasper-1.900.1-Coverity-UNUSED_VALUE.patch @@ -0,0 +1,41 @@ +Error: UNUSED_VALUE +base/jas_icc.c:328: returned_pointer: Pointer "attrvalinfo" returned by "jas_iccattrvalinfo_lookup(type)" is never used. + +jpc/jpc_enc.c:788: returned_pointer: Pointer "cp" returned by "strchr(s, 66)" is never used. + +diff -up jasper-1.900.1/src/libjasper/base/jas_icc.c.unused_value jasper-1.900.1/src/libjasper/base/jas_icc.c +--- jasper-1.900.1/src/libjasper/base/jas_icc.c.unused_value 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_icc.c 2011-06-27 15:35:52.815263000 +0200 +@@ -266,7 +266,6 @@ jas_iccprof_t *jas_iccprof_load(jas_stre + jas_iccattrval_t *attrval; + jas_iccattrval_t *prevattrval; + jas_icctagtabent_t *tagtabent; +- jas_iccattrvalinfo_t *attrvalinfo; + int i; + int len; + +@@ -325,7 +324,7 @@ jas_iccprof_t *jas_iccprof_load(jas_stre + goto error; + } + curoff += 8; +- if (!(attrvalinfo = jas_iccattrvalinfo_lookup(type))) { ++ if (!jas_iccattrvalinfo_lookup(type)) { + #if 0 + jas_eprintf("warning: skipping unknown tag type\n"); + #endif +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.unused_value jasper-1.900.1/src/libjasper/jpc/jpc_enc.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.unused_value 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_enc.c 2011-06-27 15:36:17.437900180 +0200 +@@ -781,11 +781,10 @@ void jpc_enc_cp_destroy(jpc_enc_cp_t *cp + + int ratestrtosize(char *s, uint_fast32_t rawsize, uint_fast32_t *size) + { +- char *cp; + jpc_flt_t f; + + /* Note: This function must not modify output size on failure. */ +- if ((cp = strchr(s, 'B'))) { ++ if (strchr(s, 'B')) { + *size = atoi(s); + } else { + f = atof(s); diff --git a/mingw-w64-jasper/jasper-1.900.1-canonical-target.patch b/mingw-w64-jasper/jasper-1.900.1-canonical-target.patch deleted file mode 100644 index c7d47de883..0000000000 --- a/mingw-w64-jasper/jasper-1.900.1-canonical-target.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- jasper-1.900.1/configure.ac 2009-01-15 23:25:33.000000000 +0100 -+++ jasper-1.900.1/configure.ac 2009-01-15 23:25:40.000000000 +0100 -@@ -72,7 +72,7 @@ - # Note: This precedes automake initialization to avoid warnings. - AC_CANONICAL_BUILD - AC_CANONICAL_HOST --AC_CANONICAL_TARGET -+#AC_CANONICAL_TARGET - - # Initialize automake. - AM_INIT_AUTOMAKE diff --git a/mingw-w64-jasper/jasper-1.900.1-mingw32.patch b/mingw-w64-jasper/jasper-1.900.1-mingw32.patch index 02180eace4..059e0cbbd2 100644 --- a/mingw-w64-jasper/jasper-1.900.1-mingw32.patch +++ b/mingw-w64-jasper/jasper-1.900.1-mingw32.patch @@ -8,15 +8,3 @@ diff -rup jasper-1.900.1.orig/src/libjasper/Makefile.am jasper-1.900.1.new/src/l - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) + -no-undefined -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -diff -rup jasper-1.900.1.orig/src/libjasper/Makefile.in jasper-1.900.1.new/src/libjasper/Makefile.in ---- jasper-1.900.1.orig/src/libjasper/Makefile.in 2007-01-19 16:54:45.000000000 -0500 -+++ jasper-1.900.1.new/src/libjasper/Makefile.in 2008-09-09 10:08:43.000000000 -0400 -@@ -290,7 +290,7 @@ libjasper_la_LIBADD = \ - - # -release $(LT_RELEASE) - libjasper_la_LDFLAGS = \ -- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -+ -no-undefined -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) - - all: all-recursive - diff --git a/mingw-w64-jasper/jasper-CVE-2014-8137.patch b/mingw-w64-jasper/jasper-CVE-2014-8137.patch new file mode 100644 index 0000000000..9600cd3231 --- /dev/null +++ b/mingw-w64-jasper/jasper-CVE-2014-8137.patch @@ -0,0 +1,57 @@ +--- jasper-1.900.1.orig/src/libjasper/base/jas_icc.c 2014-12-11 14:06:44.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_icc.c 2014-12-11 15:16:37.971272386 +0100 +@@ -1009,7 +1009,6 @@ static int jas_icccurv_input(jas_iccattr + return 0; + + error: +- jas_icccurv_destroy(attrval); + return -1; + } + +@@ -1127,7 +1126,6 @@ static int jas_icctxtdesc_input(jas_icca + #endif + return 0; + error: +- jas_icctxtdesc_destroy(attrval); + return -1; + } + +@@ -1206,8 +1204,6 @@ static int jas_icctxt_input(jas_iccattrv + goto error; + return 0; + error: +- if (txt->string) +- jas_free(txt->string); + return -1; + } + +@@ -1328,7 +1324,6 @@ static int jas_icclut8_input(jas_iccattr + goto error; + return 0; + error: +- jas_icclut8_destroy(attrval); + return -1; + } + +@@ -1497,7 +1492,6 @@ static int jas_icclut16_input(jas_iccatt + goto error; + return 0; + error: +- jas_icclut16_destroy(attrval); + return -1; + } + +--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:30:54.193209780 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:36:46.313217814 +0100 +@@ -291,7 +291,10 @@ jas_image_t *jp2_decode(jas_stream_t *in + case JP2_COLR_ICC: + iccprof = jas_iccprof_createfrombuf(dec->colr->data.colr.iccp, + dec->colr->data.colr.iccplen); +- assert(iccprof); ++ if (!iccprof) { ++ jas_eprintf("error: failed to parse ICC profile\n"); ++ goto error; ++ } + jas_iccprof_gethdr(iccprof, &icchdr); + jas_eprintf("ICC Profile CS %08x\n", icchdr.colorspc); + jas_image_setclrspc(dec->image, fromiccpcs(icchdr.colorspc)); diff --git a/mingw-w64-jasper/jasper-CVE-2014-8138.patch b/mingw-w64-jasper/jasper-CVE-2014-8138.patch new file mode 100644 index 0000000000..5aaf8abb1d --- /dev/null +++ b/mingw-w64-jasper/jasper-CVE-2014-8138.patch @@ -0,0 +1,14 @@ +--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:06:44.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:06:26.000000000 +0100 +@@ -386,6 +386,11 @@ jas_image_t *jp2_decode(jas_stream_t *in + /* Determine the type of each component. */ + if (dec->cdef) { + for (i = 0; i < dec->numchans; ++i) { ++ /* Is the channel number reasonable? */ ++ if (dec->cdef->data.cdef.ents[i].channo >= dec->numchans) { ++ jas_eprintf("error: invalid channel number in CDEF box\n"); ++ goto error; ++ } + jas_image_setcmpttype(dec->image, + dec->chantocmptlut[dec->cdef->data.cdef.ents[i].channo], + jp2_getct(jas_image_clrspc(dec->image), diff --git a/mingw-w64-jasper/jasper-CVE-2014-8157.patch b/mingw-w64-jasper/jasper-CVE-2014-8157.patch new file mode 100644 index 0000000000..ebfc1b2d0f --- /dev/null +++ b/mingw-w64-jasper/jasper-CVE-2014-8157.patch @@ -0,0 +1,12 @@ +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.CVE-2014-8157 jasper-1.900.1/src/libjasper/jpc/jpc_dec.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.CVE-2014-8157 2015-01-19 16:59:36.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2015-01-19 17:07:41.609863268 +0100 +@@ -489,7 +489,7 @@ static int jpc_dec_process_sot(jpc_dec_t + dec->curtileendoff = 0; + } + +- if (JAS_CAST(int, sot->tileno) > dec->numtiles) { ++ if (JAS_CAST(int, sot->tileno) >= dec->numtiles) { + jas_eprintf("invalid tile number in SOT marker segment\n"); + return -1; + } diff --git a/mingw-w64-jasper/jasper-CVE-2014-8158.patch b/mingw-w64-jasper/jasper-CVE-2014-8158.patch new file mode 100644 index 0000000000..ce9e4b497f --- /dev/null +++ b/mingw-w64-jasper/jasper-CVE-2014-8158.patch @@ -0,0 +1,329 @@ +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c.CVE-2014-8158 jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c.CVE-2014-8158 2015-01-19 17:25:28.730195502 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c 2015-01-19 17:27:20.214663127 +0100 +@@ -306,11 +306,7 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in + { + + int bufsize = JPC_CEILDIVPOW2(numcols, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE]; +-#else +- jpc_fix_t splitbuf[bufsize]; +-#endif + jpc_fix_t *buf = splitbuf; + register jpc_fix_t *srcptr; + register jpc_fix_t *dstptr; +@@ -318,7 +314,6 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in + register int m; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -326,7 +321,6 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in + abort(); + } + } +-#endif + + if (numcols >= 2) { + hstartcol = (numcols + 1 - parity) >> 1; +@@ -360,12 +354,10 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in + } + } + +-#if !defined(HAVE_VLA) + /* If the split buffer was allocated on the heap, free this memory. */ + if (buf != splitbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -374,11 +366,7 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE]; +-#else +- jpc_fix_t splitbuf[bufsize]; +-#endif + jpc_fix_t *buf = splitbuf; + register jpc_fix_t *srcptr; + register jpc_fix_t *dstptr; +@@ -386,7 +374,6 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in + register int m; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -394,7 +381,6 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in + abort(); + } + } +-#endif + + if (numrows >= 2) { + hstartcol = (numrows + 1 - parity) >> 1; +@@ -428,12 +414,10 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in + } + } + +-#if !defined(HAVE_VLA) + /* If the split buffer was allocated on the heap, free this memory. */ + if (buf != splitbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -442,11 +426,7 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE * JPC_QMFB_COLGRPSIZE]; +-#else +- jpc_fix_t splitbuf[bufsize * JPC_QMFB_COLGRPSIZE]; +-#endif + jpc_fix_t *buf = splitbuf; + jpc_fix_t *srcptr; + jpc_fix_t *dstptr; +@@ -457,7 +437,6 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, + int m; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -465,7 +444,6 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, + abort(); + } + } +-#endif + + if (numrows >= 2) { + hstartcol = (numrows + 1 - parity) >> 1; +@@ -517,12 +495,10 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, + } + } + +-#if !defined(HAVE_VLA) + /* If the split buffer was allocated on the heap, free this memory. */ + if (buf != splitbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -531,11 +507,7 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE * JPC_QMFB_COLGRPSIZE]; +-#else +- jpc_fix_t splitbuf[bufsize * numcols]; +-#endif + jpc_fix_t *buf = splitbuf; + jpc_fix_t *srcptr; + jpc_fix_t *dstptr; +@@ -546,7 +518,6 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, + int m; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -554,7 +525,6 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, + abort(); + } + } +-#endif + + if (numrows >= 2) { + hstartcol = (numrows + 1 - parity) >> 1; +@@ -606,12 +576,10 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, + } + } + +-#if !defined(HAVE_VLA) + /* If the split buffer was allocated on the heap, free this memory. */ + if (buf != splitbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -619,18 +587,13 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int + { + + int bufsize = JPC_CEILDIVPOW2(numcols, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE]; +-#else +- jpc_fix_t joinbuf[bufsize]; +-#endif + jpc_fix_t *buf = joinbuf; + register jpc_fix_t *srcptr; + register jpc_fix_t *dstptr; + register int n; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -638,7 +601,6 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int + abort(); + } + } +-#endif + + hstartcol = (numcols + 1 - parity) >> 1; + +@@ -670,12 +632,10 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int + ++srcptr; + } + +-#if !defined(HAVE_VLA) + /* If the join buffer was allocated on the heap, free this memory. */ + if (buf != joinbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -684,18 +644,13 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE]; +-#else +- jpc_fix_t joinbuf[bufsize]; +-#endif + jpc_fix_t *buf = joinbuf; + register jpc_fix_t *srcptr; + register jpc_fix_t *dstptr; + register int n; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -703,7 +658,6 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int + abort(); + } + } +-#endif + + hstartcol = (numrows + 1 - parity) >> 1; + +@@ -735,12 +689,10 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int + ++srcptr; + } + +-#if !defined(HAVE_VLA) + /* If the join buffer was allocated on the heap, free this memory. */ + if (buf != joinbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -749,11 +701,7 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE * JPC_QMFB_COLGRPSIZE]; +-#else +- jpc_fix_t joinbuf[bufsize * JPC_QMFB_COLGRPSIZE]; +-#endif + jpc_fix_t *buf = joinbuf; + jpc_fix_t *srcptr; + jpc_fix_t *dstptr; +@@ -763,7 +711,6 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, + register int i; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, JPC_QMFB_COLGRPSIZE * sizeof(jpc_fix_t)))) { +@@ -771,7 +718,6 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, + abort(); + } + } +-#endif + + hstartcol = (numrows + 1 - parity) >> 1; + +@@ -821,12 +767,10 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, + srcptr += JPC_QMFB_COLGRPSIZE; + } + +-#if !defined(HAVE_VLA) + /* If the join buffer was allocated on the heap, free this memory. */ + if (buf != joinbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -835,11 +779,7 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE * JPC_QMFB_COLGRPSIZE]; +-#else +- jpc_fix_t joinbuf[bufsize * numcols]; +-#endif + jpc_fix_t *buf = joinbuf; + jpc_fix_t *srcptr; + jpc_fix_t *dstptr; +@@ -849,7 +789,6 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, + register int i; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { + if (!(buf = jas_alloc3(bufsize, numcols, sizeof(jpc_fix_t)))) { +@@ -857,7 +796,6 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, + abort(); + } + } +-#endif + + hstartcol = (numrows + 1 - parity) >> 1; + +@@ -907,12 +845,10 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, + srcptr += numcols; + } + +-#if !defined(HAVE_VLA) + /* If the join buffer was allocated on the heap, free this memory. */ + if (buf != joinbuf) { + jas_free(buf); + } +-#endif + + } + diff --git a/mingw-w64-jasper/jasper-CVE-2014-9029.patch b/mingw-w64-jasper/jasper-CVE-2014-9029.patch new file mode 100644 index 0000000000..98a2035999 --- /dev/null +++ b/mingw-w64-jasper/jasper-CVE-2014-9029.patch @@ -0,0 +1,29 @@ +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c 2014-11-27 12:45:44.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2014-11-27 12:44:58.000000000 +0100 +@@ -1281,7 +1281,7 @@ static int jpc_dec_process_coc(jpc_dec_t + jpc_coc_t *coc = &ms->parms.coc; + jpc_dec_tile_t *tile; + +- if (JAS_CAST(int, coc->compno) > dec->numcomps) { ++ if (JAS_CAST(int, coc->compno) >= dec->numcomps) { + jas_eprintf("invalid component number in COC marker segment\n"); + return -1; + } +@@ -1307,7 +1307,7 @@ static int jpc_dec_process_rgn(jpc_dec_t + jpc_rgn_t *rgn = &ms->parms.rgn; + jpc_dec_tile_t *tile; + +- if (JAS_CAST(int, rgn->compno) > dec->numcomps) { ++ if (JAS_CAST(int, rgn->compno) >= dec->numcomps) { + jas_eprintf("invalid component number in RGN marker segment\n"); + return -1; + } +@@ -1356,7 +1356,7 @@ static int jpc_dec_process_qcc(jpc_dec_t + jpc_qcc_t *qcc = &ms->parms.qcc; + jpc_dec_tile_t *tile; + +- if (JAS_CAST(int, qcc->compno) > dec->numcomps) { ++ if (JAS_CAST(int, qcc->compno) >= dec->numcomps) { + jas_eprintf("invalid component number in QCC marker segment\n"); + return -1; + } diff --git a/mingw-w64-jasper/jasper-pkgconfig.patch b/mingw-w64-jasper/jasper-pkgconfig.patch new file mode 100644 index 0000000000..c8af5ca83f --- /dev/null +++ b/mingw-w64-jasper/jasper-pkgconfig.patch @@ -0,0 +1,48 @@ +diff -Naur jasper-1.900.1/configure.ac jasper-1.900.1.new/configure.ac +--- jasper-1.900.1/configure.ac 2007-01-19 21:47:11.000000000 +0000 ++++ jasper-1.900.1.new/configure.ac 2009-10-29 13:37:02.000000000 +0000 +@@ -399,6 +399,8 @@ + src/libjasper/pnm/Makefile + src/libjasper/ras/Makefile + src/msvc/Makefile ++pkgconfig/Makefile ++pkgconfig/jasper.pc + jasper.spec + ]) + AC_OUTPUT +diff -Naur jasper-1.900.1/Makefile.am jasper-1.900.1.new/Makefile.am +--- jasper-1.900.1/Makefile.am 2007-01-19 21:43:14.000000000 +0000 ++++ jasper-1.900.1.new/Makefile.am 2009-10-29 13:36:28.000000000 +0000 +@@ -64,7 +64,7 @@ + # Note: We need to put the derived file "jasper.spec" in the distribution + # in order to facilitate RPM building. + +-SUBDIRS = src ++SUBDIRS = src pkgconfig + + rpm: dist + for i in BUILD RPMS SRPMS SOURCES SPECS; do \ +diff -Naur jasper-1.900.1/pkgconfig/jasper.pc.in jasper-1.900.1.new/pkgconfig/jasper.pc.in +--- jasper-1.900.1/pkgconfig/jasper.pc.in 1970-01-01 01:00:00.000000000 +0100 ++++ jasper-1.900.1.new/pkgconfig/jasper.pc.in 2009-10-29 16:30:43.000000000 +0000 +@@ -0,0 +1,11 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: Jasper ++Description: JPEG 2000 encoding and decoding library ++Version: @VERSION@ ++ ++Libs: -L${libdir} -ljasper ++Cflags: -I${includedir}/jasper +diff -Naur jasper-1.900.1/pkgconfig/Makefile.am jasper-1.900.1.new/pkgconfig/Makefile.am +--- jasper-1.900.1/pkgconfig/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ jasper-1.900.1.new/pkgconfig/Makefile.am 2009-10-29 13:38:59.000000000 +0000 +@@ -0,0 +1,5 @@ ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = jasper.pc ++ ++EXTRA_DIST = \ ++ jasper.pc.in From ca0c4c8bca35b2c6805755d02e1dc593de1af6af Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 30 Jan 2015 06:31:57 +0300 Subject: [PATCH 0432/2060] gtk3: Update to 3.14.7 --- mingw-w64-gtk3/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 317a9dc301..e36c7ecee0 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -2,8 +2,8 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.6 -pkgrel=2 +pkgver=3.14.7 +pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -35,7 +35,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0056-fix-create-window-for-wintab.patch 0057-wintab-dont-check-position-of-null-device.patch Make-reftest-plugins-W32-compatible.patch) -md5sums=('34340b3ede9c1cfee3c6e2ec5f6eccc5' +md5sums=('025938c2bc09fcc6173b5533681550ee' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' '397bf8001d3da75e06b5794e378ae25f' From ded9fcfbe642e3396ad4df75c628a768745449c3 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 30 Jan 2015 09:17:36 +0000 Subject: [PATCH 0433/2060] inkscape: Add missing gc dep --- mingw-w64-inkscape/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index b2c853e96b..51367c3423 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -30,6 +30,7 @@ depends=( "${MINGW_PACKAGE_PREFIX}-poppler" "${MINGW_PACKAGE_PREFIX}-popt" "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-gc" ) optdepends=(#"${MINGW_PACKAGE_PREFIX}-pstoedit: latex formulas" #"${MINGW_PACKAGE_PREFIX}-texlive-core: latex formulas" From 4277e064fa2c406ebc6afffce4e325522cfa3544 Mon Sep 17 00:00:00 2001 From: David Macek Date: Fri, 30 Jan 2015 17:09:57 +0100 Subject: [PATCH 0434/2060] pngcrush: Updated to 1.7.83 --- mingw-w64-pngcrush/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-pngcrush/PKGBUILD b/mingw-w64-pngcrush/PKGBUILD index 7b8d3697da..32f16ecc5e 100644 --- a/mingw-w64-pngcrush/PKGBUILD +++ b/mingw-w64-pngcrush/PKGBUILD @@ -2,7 +2,7 @@ _realname=pngcrush pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.7.77 +pkgver=1.7.83 pkgrel=1 pkgdesc="A tool for optimizing the compression of PNG files (mingw-w64)" arch=('any') @@ -11,7 +11,7 @@ license=('custom') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-zlib") source=("http://downloads.sourceforge.net/pmt/$_realname-$pkgver-nolib.tar.gz") -md5sums=('611c4a22965fe920d75fcc2497d038aa') +md5sums=('8ec6e7aabeddbf2db4c1979292d7b631') prepare() { cd "${srcdir}/${_realname}-${pkgver}-nolib" From 17f0029e948a2be10813be3b18699bfaae9be2c7 Mon Sep 17 00:00:00 2001 From: David Macek Date: Fri, 30 Jan 2015 17:25:53 +0100 Subject: [PATCH 0435/2060] pngcrush: Added license file and fixed dual-architecture build with makepkg-mingw --- mingw-w64-pngcrush/LICENSE | 42 +++++++++++++++++++++++++++++++++++++ mingw-w64-pngcrush/PKGBUILD | 16 ++++++++------ 2 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-pngcrush/LICENSE diff --git a/mingw-w64-pngcrush/LICENSE b/mingw-w64-pngcrush/LICENSE new file mode 100644 index 0000000000..3412dd04ed --- /dev/null +++ b/mingw-w64-pngcrush/LICENSE @@ -0,0 +1,42 @@ + +NOTICES + +If you have modified this source, you may insert additional notices +immediately after this sentence. + +COPYRIGHT: + +Copyright (C) 1998-2002,2006-2009 Glenn Randers-Pehrson + (glennrp at users.sf.net) +Copyright (C) 2005 Greg Roelofs + +DISCLAIMERS: + +The pngcrush computer program is supplied "AS IS". The Author disclaims all +warranties, expressed or implied, including, without limitation, the +warranties of merchantability and of fitness for any purpose. The +Author assumes no liability for direct, indirect, incidental, special, +exemplary, or consequential damages, which may result from the use of +the computer program, even if advised of the possibility of such damage. +There is no warranty against interference with your enjoyment of the +computer program or against infringement. There is no warranty that my +efforts or the computer program will fulfill any of your particular purposes +or needs. This computer program is provided with all faults, and the entire +risk of satisfactory quality, performance, accuracy, and effort is with +the user. + +LICENSE: + +Permission is hereby irrevocably granted to everyone to use, copy, modify, +and distribute this source code, or portions hereof, or executable programs +compiled from it, for any purpose, without payment of any fee, subject to +the following restrictions: + +1. The origin of this source code must not be misrepresented. + +2. Altered versions must be plainly marked as such and must not be + misrepresented as being the original source. + +3. This Copyright notice, disclaimer, and license may not be removed + or altered from any source or altered source distribution. + diff --git a/mingw-w64-pngcrush/PKGBUILD b/mingw-w64-pngcrush/PKGBUILD index 32f16ecc5e..f7812e0314 100644 --- a/mingw-w64-pngcrush/PKGBUILD +++ b/mingw-w64-pngcrush/PKGBUILD @@ -10,19 +10,23 @@ url="http://pmt.sourceforge.net/pngcrush" license=('custom') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-zlib") -source=("http://downloads.sourceforge.net/pmt/$_realname-$pkgver-nolib.tar.gz") -md5sums=('8ec6e7aabeddbf2db4c1979292d7b631') +source=("http://downloads.sourceforge.net/pmt/${_realname}-${pkgver}-nolib.tar.gz" + LICENSE) +md5sums=('8ec6e7aabeddbf2db4c1979292d7b631' + 'e6446a786d939c98fcada57f9ae6de1f') prepare() { - cd "${srcdir}/${_realname}-${pkgver}-nolib" + mv "${srcdir}/${_realname}-${pkgver}-nolib" "${srcdir}/${_realname}-build-${MINGW_CHOST}" } build() { - cd "${srcdir}/${_realname}-${pkgver}-nolib" + cd "${srcdir}/${_realname}-build-${MINGW_CHOST}" CFLAGS+=" -DPNGCRUSH_COUNT_COLORS" make } package() { - install -Dm755 ${srcdir}/${_realname}-${pkgver}-nolib/${_realname} \ - ${pkgdir}${MINGW_PREFIX}/bin/${_realname} + install -Dm755 ${srcdir}/${_realname}-build-${MINGW_CHOST}/${_realname} \ + "${pkgdir}"${MINGW_PREFIX}/bin/${_realname} + install -Dm644 LICENSE \ + "$pkgdir"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } From 8cdff0e0a97bbb92b48eb2e62cf72ceb60d02f04 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 31 Jan 2015 00:55:02 +0300 Subject: [PATCH 0436/2060] glew: Update to 1.12.0 --- mingw-w64-glew/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-glew/PKGBUILD b/mingw-w64-glew/PKGBUILD index 8596fd7824..5284323eac 100644 --- a/mingw-w64-glew/PKGBUILD +++ b/mingw-w64-glew/PKGBUILD @@ -2,8 +2,8 @@ _realname=glew pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.11.0 -pkgrel=2 +pkgver=1.12.0 +pkgrel=1 arch=('any') pkgdesc="GLEW, The OpenGL Extension Wrangler Library (mingw-w64)" depends=('') @@ -14,7 +14,7 @@ url="http://glew.sourceforge.net/" options=('strip' '!libtool' 'staticlibs') source=("http://sourceforge.net/projects/glew/files/glew/$pkgver/glew-$pkgver.tgz" 001-makefile.patch) -md5sums=('f6d72c7426a5f66580ad09e50816450a' +md5sums=('01246c7ecd135d99be031aa63f86dca1' '0f4ea29bfa687508ebaaefd0de5199dc') prepare() { From 4e50bed67bd2ad73fc8c39e6057191fcb04d3c45 Mon Sep 17 00:00:00 2001 From: Drew Waranis Date: Sun, 1 Feb 2015 02:01:44 -0800 Subject: [PATCH 0437/2060] Upgraded jsoncpp to 1.3.0. --- mingw-w64-jsoncpp/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-jsoncpp/PKGBUILD b/mingw-w64-jsoncpp/PKGBUILD index 6a9edf8751..e59242da1c 100644 --- a/mingw-w64-jsoncpp/PKGBUILD +++ b/mingw-w64-jsoncpp/PKGBUILD @@ -2,7 +2,7 @@ _realname=jsoncpp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.1.0 +pkgver=1.3.0 pkgrel=1 pkgdesc="A C++ library for interacting with JSON (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('staticlibs' '!strip' '!buildflags') source=("https://github.com/open-source-parsers/jsoncpp/archive/$pkgver.tar.gz") -md5sums=('9ac0d5b5ac2706a93197e205d56c09b7') +md5sums=('36eec7e92128e81f384e0fc04c8ef26a') build() { mkdir "${srcdir}/build-${CARCH}" From 2c7c9946e2baf151483dba857a4650f35a276929 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 1 Feb 2015 14:29:48 +0300 Subject: [PATCH 0438/2060] sqlite3: Update to 3.8.8.2 --- mingw-w64-sqlite3/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index 0a9f14cb73..e7f6f9151a 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -2,8 +2,8 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3080801 -pkgver=3.8.8.1 +_amalgamationver=3080802 +pkgver=3.8.8.2 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tcl") source=("http://www.sqlite.org/2015/sqlite-autoconf-$_amalgamationver.tar.gz") -sha1sums=('a140e3ada8a91a7bacf7a58cfd8f5f0e76796258') +sha1sums=('1db237523419af7110e1d92c6b766e965f9322e4') options=('!strip' 'staticlibs') build() { From 688bb2271410b2a0ad37f9957192f330f1e045f1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 1 Feb 2015 14:30:15 +0300 Subject: [PATCH 0439/2060] pip: Update to 6.0.7 --- mingw-w64-python-pip/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-pip/PKGBUILD b/mingw-w64-python-pip/PKGBUILD index f918e2757e..f6de42246c 100644 --- a/mingw-w64-python-pip/PKGBUILD +++ b/mingw-w64-python-pip/PKGBUILD @@ -2,7 +2,7 @@ _realname=pip pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=6.0.6 +pkgver=6.0.7 pkgrel=1 pkgdesc="An easy_install replacement for installing pypi python packages (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(http://pypi.python.org/packages/source/p/pip/${_realname}-${pkgver}.tar.gz) -md5sums=('bbb17814bdf82187f46aaf9cec6b6caa') +md5sums=('26fa8f4c0f9a78c6c96ccfbcf34f5c31') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 3f17c385b20a04ab7164aaf9f21b42cdc458ae32 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 1 Feb 2015 14:30:45 +0300 Subject: [PATCH 0440/2060] gtk3: Update to 3.14.8 --- .../0056-fix-create-window-for-wintab.patch | 42 ------------------ ...b-dont-check-position-of-null-device.patch | 43 ------------------- mingw-w64-gtk3/PKGBUILD | 10 +---- 3 files changed, 2 insertions(+), 93 deletions(-) delete mode 100644 mingw-w64-gtk3/0056-fix-create-window-for-wintab.patch delete mode 100644 mingw-w64-gtk3/0057-wintab-dont-check-position-of-null-device.patch diff --git a/mingw-w64-gtk3/0056-fix-create-window-for-wintab.patch b/mingw-w64-gtk3/0056-fix-create-window-for-wintab.patch deleted file mode 100644 index 1c804ec143..0000000000 --- a/mingw-w64-gtk3/0056-fix-create-window-for-wintab.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 5b7ff8abead59d86c9d81a60e82f0317189a74bd Mon Sep 17 00:00:00 2001 -From: Carlos Garnacho -Date: Mon, 26 Jan 2015 14:26:34 +0000 -Subject: [PATCH] win32: Ensure we can create a window for wintab - -The window used NULL as a parent window, which defaults internally to -using the root window of the default screen. But at the time wintab is -initialized, there is no default display/screen yet. - -Fix this by retrieving this information from the given GdkDeviceManager, -so we don't have to wait for the display to be in place before -initialization. - -https://bugzilla.gnome.org/show_bug.cgi?id=743330 ---- - gdk/win32/gdkdevicemanager-win32.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/gdk/win32/gdkdevicemanager-win32.c b/gdk/win32/gdkdevicemanager-win32.c -index 41433a8..a645c10 100644 ---- a/gdk/win32/gdkdevicemanager-win32.c -+++ b/gdk/win32/gdkdevicemanager-win32.c -@@ -371,6 +371,8 @@ void - _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager) - { - GdkDeviceManagerWin32 *device_manager = (GdkDeviceManagerWin32 *)_device_manager; -+ GdkDisplay *display = gdk_device_manager_get_display (_device_manager); -+ GdkWindow *root = gdk_screen_get_root_window (gdk_display_get_default_screen (display)); - static gboolean wintab_initialized = FALSE; - GdkDeviceWintab *device; - GdkWindowAttr wa; -@@ -459,7 +461,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager) - wa.x = -100; - wa.y = -100; - wa.window_type = GDK_WINDOW_TOPLEVEL; -- if ((wintab_window = gdk_window_new (NULL, &wa, GDK_WA_X|GDK_WA_Y)) == NULL) -+ if ((wintab_window = gdk_window_new (root, &wa, GDK_WA_X | GDK_WA_Y)) == NULL) - { - g_warning ("gdk_input_wintab_init: gdk_window_new failed"); - return; --- -2.1.0 \ No newline at end of file diff --git a/mingw-w64-gtk3/0057-wintab-dont-check-position-of-null-device.patch b/mingw-w64-gtk3/0057-wintab-dont-check-position-of-null-device.patch deleted file mode 100644 index 40cd7d58fa..0000000000 --- a/mingw-w64-gtk3/0057-wintab-dont-check-position-of-null-device.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 3c5e1781e8286da5cb6acf991eebfff58fc1a8d0 Mon Sep 17 00:00:00 2001 -From: Carlos Garnacho -Date: Tue, 27 Jan 2015 11:24:18 +0000 -Subject: [PATCH] win32: Don't check the position of a NULL device - -This function is given a barely setup GdkEvent, so the GdkDevice field -is still unset, causing warnings and misbehaviors when the position -is queried for it. - -Given that the wintab GTK+ code seems to rely somewhat hard on the wintab -device managing the pointer cursor, query the pointer position from the -pointer itself. - -https://bugzilla.gnome.org/show_bug.cgi?id=743330 ---- - gdk/win32/gdkdevicemanager-win32.c | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -diff --git a/gdk/win32/gdkdevicemanager-win32.c b/gdk/win32/gdkdevicemanager-win32.c -index a645c10..7eba80b 100644 ---- a/gdk/win32/gdkdevicemanager-win32.c -+++ b/gdk/win32/gdkdevicemanager-win32.c -@@ -886,7 +886,6 @@ _gdk_input_other_event (GdkEvent *event, - GdkDeviceManagerWin32 *device_manager; - GdkDeviceWintab *source_device = NULL; - GdkDeviceGrabInfo *last_grab; -- GdkDevice *device = NULL; - GdkEventMask masktest; - guint key_state; - POINT pt; -@@ -908,9 +907,7 @@ _gdk_input_other_event (GdkEvent *event, - } - - device_manager = GDK_DEVICE_MANAGER_WIN32 (gdk_display_get_device_manager (_gdk_display)); -- -- device = gdk_event_get_device (event); -- window = gdk_device_get_window_at_position (device, &x, &y); -+ window = gdk_device_get_window_at_position (device_manager->core_pointer, &x, &y); - if (window == NULL) - window = _gdk_root; - --- -2.1.0 \ No newline at end of file diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index e36c7ecee0..c170176876 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -2,7 +2,7 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.7 +pkgver=3.14.8 pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') @@ -32,18 +32,14 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch 0054-no-transparency-for-children.all.patch 0055-skip-testsuite.all.patch - 0056-fix-create-window-for-wintab.patch - 0057-wintab-dont-check-position-of-null-device.patch Make-reftest-plugins-W32-compatible.patch) -md5sums=('025938c2bc09fcc6173b5533681550ee' +md5sums=('e46a12448b348d384b8bb29f0c22718f' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' '397bf8001d3da75e06b5794e378ae25f' 'ad383a497a9134355e0a549f844c3a33' '31d098e6856ddc8dde7259ae572f8bf1' '751ee83452f3e06a460a8867f8e479b8' - '959d0ec6f48ce8771d22ef8b5f07613c' - '6f66a0ad137853e21a523eab729bf638' '864d4b2cd6f72115cc78a393ccd96b47') prepare() { @@ -54,8 +50,6 @@ prepare() { patch -Np1 -i "${srcdir}"/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch patch -Np1 -i "${srcdir}"/0054-no-transparency-for-children.all.patch patch -Np1 -i "${srcdir}"/0055-skip-testsuite.all.patch - patch -Np1 -i "${srcdir}"/0056-fix-create-window-for-wintab.patch - patch -Np1 -i "${srcdir}"/0057-wintab-dont-check-position-of-null-device.patch #patch -Np1 -i "${srcdir}"/Make-reftest-plugins-W32-compatible.patch autoreconf -i From f73a6a6582e023aae2351e3daa0b844190b27f6d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 1 Feb 2015 14:31:03 +0300 Subject: [PATCH 0441/2060] libgpg-error: Update to 1.18 --- mingw-w64-libgpg-error/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgpg-error/PKGBUILD b/mingw-w64-libgpg-error/PKGBUILD index 12c8803734..fb61bbda92 100644 --- a/mingw-w64-libgpg-error/PKGBUILD +++ b/mingw-w64-libgpg-error/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgpg-error pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.17 +pkgver=1.18 pkgrel=1 pkgdesc="Support library for libgcrypt (mingw-w64)" arch=('any') @@ -19,7 +19,7 @@ source=("ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-${pkgver}.tar.bz2" 05-w32-gen.all.patch 07-windows-build.patch 09-fix-generating-union.patch) -md5sums=('b4f8d8b9ff14aed41f279aa844563539' +md5sums=('12312802d2065774b787cbfc22cc04e9' '4865ce481ec9aa5efc0a4979f197a686' 'a69b0fd4c8e4ebda9ddeb68e565bf1b1' 'f7650decafae57ef791318b6a7e8f7e7' From 12bf828f16eeea24d30a5d8ec909d7a011f193d6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 1 Feb 2015 15:19:28 +0300 Subject: [PATCH 0442/2060] inkscape: Rebuild. --- mingw-w64-inkscape/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index 51367c3423..c45120df89 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -4,7 +4,7 @@ _realname=inkscape pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.91 -pkgrel=1 +pkgrel=2 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') url="http://inkscape.sourceforge.net/" @@ -16,6 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "intltool") depends=( "${MINGW_PACKAGE_PREFIX}-aspell" + "${MINGW_PACKAGE_PREFIX}-gc" "${MINGW_PACKAGE_PREFIX}-ghostscript" "${MINGW_PACKAGE_PREFIX}-gsl" "${MINGW_PACKAGE_PREFIX}-gtkmm" @@ -30,7 +31,6 @@ depends=( "${MINGW_PACKAGE_PREFIX}-poppler" "${MINGW_PACKAGE_PREFIX}-popt" "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-gc" ) optdepends=(#"${MINGW_PACKAGE_PREFIX}-pstoedit: latex formulas" #"${MINGW_PACKAGE_PREFIX}-texlive-core: latex formulas" From 2fc50d8ba4eeda96f31f0356c1e1f946e311caea Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 1 Feb 2015 18:42:49 +0000 Subject: [PATCH 0443/2060] python3: Add a todo .. about subprocess.Popen running MSYS2/Cygwin exes and bump myself to co-maintainer --- mingw-w64-python3/PKGBUILD | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 17feb85046..3a79e35ba2 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -1,8 +1,18 @@ # Maintainer: Alexey Pavlov -# Contributor: Ray Donnelly +# Maintainer: Ray Donnelly # Contributor: Saul Ibarra Corretge # Contributor: Frode Solheim +# TODO :: subprocess.Popen .. specifically list2cmdline in subprocess.py +# needs a fix so it can handle running MSYS2 executables better. +# Arguments should not be quoted in the Windows fashion as-per: +# http://www.daviddeley.com/autohotkey/parameters/parameters.htm +# but instead how Cygwin expects them to be quoted. Checking for +# {cygwin,msys-2.0}.dll in the executable is the only way that I +# can think to do this at present. +# Any double quoted string will cause problems, e.g. +# -DGNOMELOCALEDIR=\"/mingw64/share/locale\" + _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.4 From c3a6ddd1c71f91b4cdfa39d324c057eb749b5e46 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 1 Feb 2015 18:46:44 +0000 Subject: [PATCH 0444/2060] qbs: Add a todo about clang --- mingw-w64-qbs/PKGBUILD | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index b286448dbf..65202f73ef 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -1,6 +1,18 @@ # Maintainer: Alexey Pavlov # Maintainer: Ray Donnelly +# TODO :: Patch this for clang support: +# qbs setup-toolchains --type clang /mingw64/bin/clang.exe clang +# .. will add a profile to %AppData%/QtProject/qbs.ini that contains: +# qt-project\qbs\profiles\clang\qbs\toolchain=clang, llvm, gcc +# .. but is missing: +# qt-project\qbs\profiles\clang\qbs\targetOS=windows +# then in share/qbs/modules/cpp/windows-mingw.qbs we need to change +# condition: qbs.targetOS.contains("windows") && qbs.toolchain.contains("mingw") +# .. to: +# condition: qbs.targetOS.contains("windows") \ +# && (qbs.toolchain.contains("mingw") || qbs.toolchain.contains("gcc")) + _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.3 From 7ca53b7784eab55529e97690de374c051721c9a5 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 1 Feb 2015 23:11:40 +0000 Subject: [PATCH 0445/2060] gdl: Added inkscape 0.91 with gtk-3 needs this --- mingw-w64-gdl/PKGBUILD | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 mingw-w64-gdl/PKGBUILD diff --git a/mingw-w64-gdl/PKGBUILD b/mingw-w64-gdl/PKGBUILD new file mode 100644 index 0000000000..6ca980109b --- /dev/null +++ b/mingw-w64-gdl/PKGBUILD @@ -0,0 +1,40 @@ +# $Id$ +# Maintainer: Jan de Groot +# Maintainer (MSYS2): Ray Donnelly + +_realname=gdl +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgver=3.14.0 +pkgrel=1 +pkgdesc="GNOME Docking Library (mingw-w64)" +arch=('any') +license=('GPL') +url="http://www.gnome.org/" +depends=("${MINGW_PACKAGE_PREFIX}-gtk3") +makedepends=("${MINGW_PACKAGE_PREFIX}-gtk-doc" + "intltool" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-python2") +options=('staticlibs') +source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz) +sha256sums=('4b903c28a8894a82b997a1732a443c8b1d6a510304b3c3b511023339ff5d01db') + +build() { + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mkdir "${srcdir}"/build-${CARCH} + cd "${srcdir}"/build-${CARCH} + PYTHON=${MINGW_PREFIX}/bin/python2 \ + "${srcdir}"/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --{build,host}=${MINGW_HOST} \ + --sysconfdir=${MINGW_PREFIX}/etc \ + --localstatedir=${MINGW_PREFIX}/var \ + --enable-static \ + --enable-shared + make CC=${MINGW_PREFIX}/bin/gcc +} + +package() { + cd "${srcdir}"/build-${CARCH} + make DESTDIR="$pkgdir" install +} From f7266776a5ba9182c3d20dfe61a1b62240ade091 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 1 Feb 2015 23:00:56 +0000 Subject: [PATCH 0446/2060] inkscape: Add flag for using gtk-3 (disabled) --- mingw-w64-inkscape/PKGBUILD | 37 ++++++++--- ...0.48.4-use-GStatBuf-insted-stat-gtk3.patch | 66 +++++++++++++++++++ 2 files changed, 95 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-inkscape/inkscape-0.48.4-use-GStatBuf-insted-stat-gtk3.patch diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index c45120df89..56c64967ff 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -1,6 +1,13 @@ # Maintainer: Alexey Pavlov # Contributor: Ray Donnelly +# gtk3 support is still experimental +# It can be tested via _use_gtk3=yes +_use_gtk3=yes +if [ "${_use_gtk3}" = "yes" ]; then + _gtksuff=3 +fi + _realname=inkscape pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.91 @@ -19,8 +26,8 @@ depends=( "${MINGW_PACKAGE_PREFIX}-gc" "${MINGW_PACKAGE_PREFIX}-ghostscript" "${MINGW_PACKAGE_PREFIX}-gsl" - "${MINGW_PACKAGE_PREFIX}-gtkmm" - "${MINGW_PACKAGE_PREFIX}-gtkspell" + "${MINGW_PACKAGE_PREFIX}-gtkmm${_gtksuff}" + "${MINGW_PACKAGE_PREFIX}-gtkspell${_gtksuff}" "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" "${MINGW_PACKAGE_PREFIX}-imagemagick" "${MINGW_PACKAGE_PREFIX}-lcms2" @@ -31,6 +38,8 @@ depends=( "${MINGW_PACKAGE_PREFIX}-poppler" "${MINGW_PACKAGE_PREFIX}-popt" "${MINGW_PACKAGE_PREFIX}-python2" + $([[ "${_use_gtk3}" == "yes" ]] && echo \ + "${MINGW_PACKAGE_PREFIX}-gdl" ) \ ) optdepends=(#"${MINGW_PACKAGE_PREFIX}-pstoedit: latex formulas" #"${MINGW_PACKAGE_PREFIX}-texlive-core: latex formulas" @@ -43,6 +52,7 @@ source=("https://inkscape.global.ssl.fastly.net/media/resources/file/${_realname inkscape-0.48.4-headers-fix.patch inkscape-0.48.4-python.patch inkscape-0.48.4-use-GStatBuf-insted-stat.patch + inkscape-0.48.4-use-GStatBuf-insted-stat-gtk3.patch inkscape-0.48.4-poppler-includes-conflicts.patch inkscape-0.48.4-win32-relocatable.patch inkscape-0.48.4-win32-file-dialog.patch @@ -52,6 +62,7 @@ sha1sums=('e590f3b52c10771ae776a6f8173d21602ad1f261' '12fddb0a0b34b4308de1979d13b26d05a6ec8f77' '4dd0da65e538ba7e73a42ce76efd5e5a155d3bf0' '7e53e26506f22e51b79c50302adcad693c2d1698' + '1ccdc6730fadca589e509fda497b351e80b7238a' '8d65767ed2b291ccae70d8718f0b7a764632c445' '6c673021dd67e42a5288e14d53275794e3b7417f' 'f9daedc7c77b4d4a2670044e634594265f3b1926' @@ -62,13 +73,17 @@ prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/inkscape-0.48.4-headers-fix.patch patch -p1 -i ${srcdir}/inkscape-0.48.4-python.patch - patch -p1 -i ${srcdir}/inkscape-0.48.4-use-GStatBuf-insted-stat.patch + if [ "${_use_gtk3}" = "no" ]; then + patch -p1 -i ${srcdir}/inkscape-0.48.4-use-GStatBuf-insted-stat.patch + else + patch -p1 -i ${srcdir}/inkscape-0.48.4-use-GStatBuf-insted-stat-gtk3.patch + fi patch -p1 -i ${srcdir}/inkscape-0.48.4-poppler-includes-conflicts.patch patch -p1 -i ${srcdir}/inkscape-0.48.4-win32-relocatable.patch patch -p1 -i ${srcdir}/inkscape-0.48.4-win32-file-dialog.patch patch -p1 -i ${srcdir}/inkscape-0.48.4-python-extensions-location.patch patch -p1 -i ${srcdir}/inkscape-0.91-simulaneous-intltool-gettext.patch - + sed -i 's|/usr/bin/python\>|/usr/bin/python2|g' cxxtest/*.py sed -i 's|/usr/bin/env python\>|/usr/bin/env python2|g' share/*/{test/,}*.py #sed -i 's|"python" },|"python2" },|g' src/extension/implementation/script.cpp @@ -81,8 +96,13 @@ prepare() { build() { # export lt_cv_deplibs_check_method='pass_all' - rm -rf $srcdir/cd build-${MINGW_CHOST} - mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + rm -rf $srcdir/cd build-${CARCH} + mkdir -p build-${CARCH} && cd build-${CARCH} + + declare -a extra_config + if [ "${_use_gtk3}" = "yes" ]; then + extra_config+=(--enable-gtk3-experimental) + fi ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ @@ -90,12 +110,13 @@ build() { --host=${MINGW_CHOST} \ --enable-lcms \ --enable-poppler-cairo \ - --disable-dependency-tracking + --disable-dependency-tracking \ + ${extra_config[@]} make } package() { - cd ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${CARCH} make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-inkscape/inkscape-0.48.4-use-GStatBuf-insted-stat-gtk3.patch b/mingw-w64-inkscape/inkscape-0.48.4-use-GStatBuf-insted-stat-gtk3.patch new file mode 100644 index 0000000000..0ae7e0dd1b --- /dev/null +++ b/mingw-w64-inkscape/inkscape-0.48.4-use-GStatBuf-insted-stat-gtk3.patch @@ -0,0 +1,66 @@ +--- inkscape-0.48.4-orig/src/color-profile.cpp 2012-02-19 05:41:36.476182000 +0400 ++++ inkscape-0.48.4/src/color-profile.cpp 2014-03-02 00:11:22.365600000 +0400 +@@ -840,7 +841,7 @@ + static bool isIccFile( gchar const *filepath ) + { + bool isIccFile = false; +- struct stat st; ++ GStatBuf st; + if ( g_stat(filepath, &st) == 0 && (st.st_size > 128) ) { + //0-3 == size + //36-39 == 'acsp' 0x61637370 +--- inkscape-0.48.4-orig/src/display/cairo-utils.cpp 2012-02-19 05:41:36.476182000 +0400 ++++ inkscape-0.48.4/src/display/cairo-utils.cpp 2014-03-02 00:11:22.365600000 +0400 +@@ -291,7 +291,7 @@ + if (!g_file_test(fn.c_str(), G_FILE_TEST_EXISTS)) { + return NULL; + } +- struct stat stdir; ++ GStatBuf stdir; + int val = g_stat(fn.c_str(), &stdir); + if (val == 0 && stdir.st_mode & S_IFDIR){ + return NULL; +--- inkscape-0.48.4-orig/src/inkscape.cpp 2012-02-19 05:41:36.476182000 +0400 ++++ inkscape-0.48.4/src/inkscape.cpp 2014-03-02 00:11:22.365600000 +0400 +@@ -339,7 +339,7 @@ + if (doc->isModifiedSinceSave()) { + gchar *oldest_autosave = 0; + const gchar *filename = 0; +- struct stat sb; ++ GStatBuf sb; + time_t min_time = 0; + gint count = 0; + +--- inkscape-0.48.4-orig/src/sp-image.cpp 2012-02-19 05:41:36.476182000 +0400 ++++ inkscape-0.48.4/src/sp-image.cpp 2014-03-02 00:11:22.365600000 +0400 +@@ -804,7 +804,7 @@ + if ( image->href && image->pixbuf && image->pixbuf->modificationTime()) { + // It *might* change + +- struct stat st; ++ GStatBuf st; + memset(&st, 0, sizeof(st)); + int val = 0; + if (g_file_test (image->pixbuf->originalPath().c_str(), G_FILE_TEST_EXISTS)){ +--- inkscape-0.48.4-orig/src/io/sys.cpp 2012-02-19 05:41:36.476182000 +0400 ++++ inkscape-0.48.4/src/io/sys.cpp 2014-03-02 00:11:22.365600000 +0400 +@@ -226,7 +226,7 @@ + filename = g_filename_from_utf8 ( utf8name, -1, NULL, NULL, NULL ); + } + if ( filename ) { +- struct stat st; ++ GStatBuf st; + if (g_file_test (filename, G_FILE_TEST_EXISTS)){ + if (g_lstat (filename, &st) == 0) { + success = ((st.st_mode & S_IWRITE) != 0); +--- inkscape-0.48.4-orig/src/ui/dialog/filedialogimpl-gtkmm.cpp 2012-02-19 05:41:36.476182000 +0400 ++++ inkscape-0.48.4/src/ui/dialog/filedialogimpl-gtkmm.cpp 2014-03-02 00:11:22.365600000 +0400 +@@ -513,7 +513,7 @@ + Glib::ustring fileNameUtf8 = Glib::filename_to_utf8(fileName); + gchar *fName = const_cast( + fileNameUtf8.c_str()); // const-cast probably not necessary? (not necessary on Windows version of stat()) +- struct stat info; ++ GStatBuf info; + if (g_stat(fName, &info)) // stat returns 0 upon success + { + g_warning("SVGPreview::set() : %s : %s", fName, strerror(errno)); From 1e3c571f3b21deaa2871ff7290c3058585d55ce5 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Sun, 1 Feb 2015 21:27:52 -0200 Subject: [PATCH 0447/2060] Add/fix licenses for some packages. License files have been added to the following packages: * bzip2 * fontconfig * harfbuzz * libffi * libtre-git These packages now have a license file as well, with additional changes: * zlib: license specified as ZLIB. * expat and pixman: license specified as MIT. * nspr and nss: license specified as MPL2. * hunspell: license fixed, it is not BSD but GPL2+/LGPL2.1+ (or MPL1.1+ partially). --- mingw-w64-bzip2/PKGBUILD | 4 +++- mingw-w64-expat/PKGBUILD | 6 ++++-- mingw-w64-fontconfig/PKGBUILD | 4 +++- mingw-w64-harfbuzz/PKGBUILD | 4 +++- mingw-w64-hunspell/PKGBUILD | 14 ++++++++++++-- mingw-w64-libffi/PKGBUILD | 4 +++- mingw-w64-libtre-git/PKGBUILD | 4 +++- mingw-w64-nspr/PKGBUILD | 7 +++++-- mingw-w64-nss/PKGBUILD | 7 +++++-- mingw-w64-pixman/PKGBUILD | 6 ++++-- mingw-w64-zlib/PKGBUILD | 6 ++++-- 11 files changed, 49 insertions(+), 17 deletions(-) diff --git a/mingw-w64-bzip2/PKGBUILD b/mingw-w64-bzip2/PKGBUILD index 848c9d9d04..57fe7bd6ad 100644 --- a/mingw-w64-bzip2/PKGBUILD +++ b/mingw-w64-bzip2/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=bzip2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.6 -pkgrel=2 +pkgrel=3 pkgdesc="A high-quality data compression program (mingw-w64)" arch=('any') url="http://sources.redhat.com/bzip2" @@ -62,4 +63,5 @@ package() { #make PREFIX="${pkgdir}${MINGW_PREFIX}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm #rm "${pkgdir}${MINGW_PREFIX}/bin/bz"{diff,grep,more} + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-expat/PKGBUILD b/mingw-w64-expat/PKGBUILD index 0dbc1111a8..be66de9933 100644 --- a/mingw-w64-expat/PKGBUILD +++ b/mingw-w64-expat/PKGBUILD @@ -1,14 +1,15 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=expat pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.0 -pkgrel=3 +pkgrel=4 pkgdesc="An XML parser library (mingw-w64)" arch=('any') url="http://expat.sourceforge.net" -license=("custom") +license=(MIT) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('strip' 'staticlibs') source=("http://downloads.sourceforge.net/expat/expat-${pkgver}.tar.gz") @@ -30,4 +31,5 @@ package() { cd "${srcdir}/${pkgname}-${pkgver}-build-${CARCH}" make DESTDIR="$pkgdir" install mv "${pkgdir}${MINGW_PREFIX}/bin/xmlwf" "${pkgdir}${MINGW_PREFIX}/bin/xmlwf.exe" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-fontconfig/PKGBUILD b/mingw-w64-fontconfig/PKGBUILD index d2eb4ffd63..6082fee42b 100644 --- a/mingw-w64-fontconfig/PKGBUILD +++ b/mingw-w64-fontconfig/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=fontconfig pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.11.1 -pkgrel=1 +pkgrel=2 pkgdesc="A library for configuring and customizing font access (mingw-w64)" arch=('any') url="http://www.fontconfig.org/release" @@ -47,4 +48,5 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index fd18b5be99..4de9a5c111 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=harfbuzz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.38 -pkgrel=1 +pkgrel=2 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/HarfBuzz" @@ -49,4 +50,5 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-hunspell/PKGBUILD b/mingw-w64-hunspell/PKGBUILD index 02949f9976..a67832300d 100644 --- a/mingw-w64-hunspell/PKGBUILD +++ b/mingw-w64-hunspell/PKGBUILD @@ -1,14 +1,18 @@ # Maintainer: Alexey Pavlov # Contributor: Ray Donnelly +# Contributor: Renato Silva _realname=hunspell pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.3 -pkgrel=7 +pkgrel=8 pkgdesc="Spell checker and morphological analyzer library and program (mingw-w64)" arch=('any') url="http://hunspell.sourceforge.net/" -license=("BSD") + +# We omit MPL because it cannot be applied to the whole source, see COPYING +license=(GPL2+ LGPL2.1+) + makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-gettext) @@ -61,4 +65,10 @@ package() { MSYS2_ARG_CONV_EXCL="-DBINDIR=;-DDATA_DIR=" \ make DESTDIR="${pkgdir}" install cp ${pkgdir}${MINGW_PREFIX}/lib/lib${_realname}-${pkgver%.*}.dll.a ${pkgdir}${MINGW_PREFIX}/lib/lib${_realname}.dll.a + + # Licenses + cd "${srcdir}/${_realname}-${pkgver}" + install -Dm644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/COPYING" + install -Dm644 COPYING.LGPL "${pkgdir}${MINGW_PREFIX}/share/licenses/COPYING.LGPL" + install -Dm644 COPYING.MPL "${pkgdir}${MINGW_PREFIX}/share/licenses/COPYING.MPL" } diff --git a/mingw-w64-libffi/PKGBUILD b/mingw-w64-libffi/PKGBUILD index 98c80ddbe7..1d87a18f41 100644 --- a/mingw-w64-libffi/PKGBUILD +++ b/mingw-w64-libffi/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=libffi pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.2.1 -pkgrel=1 +pkgrel=2 pkgdesc="A portable, high level programming interface to various calling conventions (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -32,4 +33,5 @@ build() { package() { cd "${srcdir}/build-${CARCH}" make DESTDIR="${pkgdir}" install + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-libtre-git/PKGBUILD b/mingw-w64-libtre-git/PKGBUILD index 9b336964fa..1db16a624b 100644 --- a/mingw-w64-libtre-git/PKGBUILD +++ b/mingw-w64-libtre-git/PKGBUILD @@ -1,11 +1,12 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=libtre pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=r122.c2f5d13 -pkgrel=1 +pkgrel=2 pkgdesc="The approximate regex matching library and agrep command line tool (mingw-w64)" url="https://github.com/laurikari/tre" arch=('any') @@ -50,4 +51,5 @@ build() { package() { cd build-${MINGW_CHOST} make DESTDIR=${pkgdir} install + install -Dm644 "${srcdir}/${_realname}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-nspr/PKGBUILD b/mingw-w64-nspr/PKGBUILD index 1102670ef9..c0f48a190a 100644 --- a/mingw-w64-nspr/PKGBUILD +++ b/mingw-w64-nspr/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=nspr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.10.7 -pkgrel=1 +pkgrel=2 pkgdesc="Netscape Portable Runtime (mingw-w64)" arch=('any') url="http://www.mozilla.org/projects/nspr/" -license=('MPL') +license=(MPL2) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "zip") options=('staticlibs' 'strip' '!emptydirs') @@ -72,4 +73,6 @@ package() { ln -s nspr.pc "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/mozilla-nspr.pc" rm -r ${pkgdir}${MINGW_PREFIX}/bin/{compile-et.pl,prerr.properties} \ ${pkgdir}${MINGW_PREFIX}/include/nspr/md + + install -Dm644 nspr/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-nss/PKGBUILD b/mingw-w64-nss/PKGBUILD index caa14b4a1c..581f8610c4 100644 --- a/mingw-w64-nss/PKGBUILD +++ b/mingw-w64-nss/PKGBUILD @@ -1,14 +1,15 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=nss pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.17.2 _nsprver=4.10.7 -pkgrel=1 +pkgrel=2 pkgdesc="Mozilla Network Security Services (mingw-w64)" arch=('any') url="http://www.mozilla.org/projects/security/pki/nss/" -license=('MPL') +license=(MPL2) depends=("${MINGW_PACKAGE_PREFIX}-nspr" "${MINGW_PACKAGE_PREFIX}-sqlite3" "${MINGW_PACKAGE_PREFIX}-zlib") @@ -144,4 +145,6 @@ package() { install -m 644 $file ${pkgdir}${MINGW_PREFIX}/include/nss3 done + # License + install -Dm644 nss/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-pixman/PKGBUILD b/mingw-w64-pixman/PKGBUILD index ccb436637c..ff7b92dfd5 100644 --- a/mingw-w64-pixman/PKGBUILD +++ b/mingw-w64-pixman/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=pixman pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.32.6 -pkgrel=1 +pkgrel=2 pkgdesc="The pixel-manipulation library for X and cairo (mingw-w64)" arch=('any') url="http://xorg.freedesktop.org" -license=("custom") +license=(MIT) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-libpng") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') @@ -28,4 +29,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-zlib/PKGBUILD b/mingw-w64-zlib/PKGBUILD index 9abf2b34ca..812d0809ca 100644 --- a/mingw-w64-zlib/PKGBUILD +++ b/mingw-w64-zlib/PKGBUILD @@ -1,14 +1,15 @@ # Maintainer: Alexey Pavlov # Contributor: Martell Malone +# Contributor: Renato Silva _realname=zlib pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.2.8 -pkgrel=5 +pkgrel=6 pkgdesc="Compression library implementing the deflate compression method found in gzip and PKZIP (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") -license=('custom') +license=(ZLIB) url="http://www.zlib.net/" depends=("${MINGW_PACKAGE_PREFIX}-bzip2") options=('staticlibs') @@ -85,4 +86,5 @@ package() { pushd contrib/minizip > /dev/null make install DESTDIR="${pkgdir}" popd > /dev/null + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From 3b4d8ba573fe8d1c23fbe3edba7fbbad41267bb0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 2 Feb 2015 00:02:46 +0000 Subject: [PATCH 0448/2060] suitesparse: Added (WIP) --- .../0001-Win32-Do-not-link-librt.patch | 144 +++++++ ...d-strip-trailing-cr-to-diff-for-crlf.patch | 398 ++++++++++++++++++ mingw-w64-suitesparse/PKGBUILD | 49 +++ 3 files changed, 591 insertions(+) create mode 100644 mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch create mode 100644 mingw-w64-suitesparse/0002-Win32-Add-strip-trailing-cr-to-diff-for-crlf.patch create mode 100644 mingw-w64-suitesparse/PKGBUILD diff --git a/mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch b/mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch new file mode 100644 index 0000000000..9c95d0170f --- /dev/null +++ b/mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch @@ -0,0 +1,144 @@ +diff -urN SuiteSparse.orig/GPUQREngine/Demo/Makefile SuiteSparse/GPUQREngine/Demo/Makefile +--- SuiteSparse.orig/GPUQREngine/Demo/Makefile 2015-02-01 12:07:54.875166100 +0000 ++++ SuiteSparse/GPUQREngine/Demo/Makefile 2015-02-01 12:09:29.881730400 +0000 +@@ -8,7 +8,7 @@ + ../../SuiteSparse_GPURuntime/Lib/libSuiteSparse_GPURuntime.a \ + ../../CHOLMOD/Lib/libcholmod.a \ + ../../SuiteSparse_config/libsuitesparseconfig.a \ +- $(CUDART_LIB) $(CUBLAS_LIB) -lm -lrt ++ $(CUDART_LIB) $(CUBLAS_LIB) -lm + + INC = -I../../SuiteSparse_GPURuntime/Include -I../Include \ + -I../../SuiteSparse_config -I../../CHOLMOD/Include +diff -urN SuiteSparse.orig/KLU/Tcov/Makefile SuiteSparse/KLU/Tcov/Makefile +--- SuiteSparse.orig/KLU/Tcov/Makefile 2015-02-01 12:07:54.916671400 +0000 ++++ SuiteSparse/KLU/Tcov/Makefile 2015-02-01 12:09:35.275415300 +0000 +@@ -23,7 +23,7 @@ + ../../CAMD/Lib/libcamd.a ../../CCOLAMD/Lib/libccolamd.a \ + ../../metis-4.0/libmetis.a \ + ../../SuiteSparse_config/libsuitesparseconfig.a \ +- $(LAPACK) $(BLAS) $(CUDART_LIB) $(CUBLAS_LIB) -lm -lrt ++ $(LAPACK) $(BLAS) $(CUDART_LIB) $(CUBLAS_LIB) -lm + + I = -I../../SuiteSparse_config -I../../AMD/Include -I../../COLAMD/Include \ + -I../../BTF/Include -I../../CHOLMOD/Include -I../../CAMD/Include \ +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config.mk 2015-02-01 12:07:55.130698600 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk 2015-02-01 12:10:51.118546200 +0000 +@@ -90,9 +90,9 @@ + F77LIB = + + # C and Fortran libraries. Remove -lrt if you don't have it. +- LIB = -lm -lrt ++# LIB = -lm -lrt + # Using the following requires CF = ... -DNTIMER on POSIX C systems. +-# LIB = -lm ++ LIB = -lm + + # For "make install" + INSTALL_LIB = /usr/local/lib +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_backslash.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_backslash.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_backslash.mk 2015-02-01 12:07:55.131198600 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_backslash.mk 2015-02-01 12:12:19.955827100 +0000 +@@ -90,9 +90,9 @@ + F77LIB = + + # C and Fortran libraries. Remove -lrt if you don't have it. +- LIB = -lm -lrt ++# LIB = -lm -lrt + # Using the following requires CF = ... -DNTIMER on POSIX C systems. +-# LIB = -lm ++ LIB = -lm + + # For "make install" + INSTALL_LIB = /usr/local/lib +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk 2015-02-01 12:07:55.131198600 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk 2015-02-01 12:10:36.268660500 +0000 +@@ -90,9 +90,9 @@ + F77LIB = + + # C and Fortran libraries. Remove -lrt if you don't have it. +- LIB = -lm -lrt ++# LIB = -lm -lrt + # Using the following requires CF = ... -DNTIMER on POSIX C systems. +-# LIB = -lm ++ LIB = -lm + + # For "make install" + INSTALL_LIB = /usr/local/lib +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk 2015-02-01 12:07:55.131698700 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk 2015-02-01 12:11:08.608767200 +0000 +@@ -90,9 +90,9 @@ + F77LIB = + + # C and Fortran libraries. Remove -lrt if you don't have it. +- LIB = -lm -lrt ++# LIB = -lm -lrt + # Using the following requires CF = ... -DNTIMER on POSIX C systems. +-# LIB = -lm ++ LIB = -lm + + # For "make install" + INSTALL_LIB = /usr/local/lib +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_icc.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_icc.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_icc.mk 2015-02-01 12:07:55.131698700 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_icc.mk 2015-02-01 12:11:49.473956400 +0000 +@@ -90,9 +90,9 @@ + F77LIB = + + # C and Fortran libraries. Remove -lrt if you don't have it. +- LIB = -lm -lrt ++# LIB = -lm -lrt + # Using the following requires CF = ... -DNTIMER on POSIX C systems. +-# LIB = -lm ++ LIB = -lm + + # For "make install" + INSTALL_LIB = /usr/local/lib +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_icc10.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_icc10.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_icc10.mk 2015-02-01 12:07:55.132198800 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_icc10.mk 2015-02-01 12:12:02.795148000 +0000 +@@ -91,9 +91,9 @@ + F77LIB = + + # C and Fortran libraries. Remove -lrt if you don't have it. +- LIB = -lm -lrt ++# LIB = -lm -lrt + # Using the following requires CF = ... -DNTIMER on POSIX C systems. +-# LIB = -lm ++ LIB = -lm + + # For "make install" + INSTALL_LIB = /usr/local/lib +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_linux.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_linux.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_linux.mk 2015-02-01 12:07:55.132198800 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_linux.mk 2015-02-01 12:12:27.206247800 +0000 +@@ -90,9 +90,9 @@ + F77LIB = + + # C and Fortran libraries. Remove -lrt if you don't have it. +- LIB = -lm -lrt ++# LIB = -lm -lrt + # Using the following requires CF = ... -DNTIMER on POSIX C systems. +-# LIB = -lm ++ LIB = -lm + + # For "make install" + INSTALL_LIB = /usr/local/lib +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_Mac.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_Mac.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_Mac.mk 2015-02-01 12:07:55.132698800 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_Mac.mk 2015-02-01 12:12:12.022319700 +0000 +@@ -90,9 +90,9 @@ + F77LIB = + + # C and Fortran libraries. Remove -lrt if you don't have it. +- LIB = -lm -lrt ++# LIB = -lm -lrt + # Using the following requires CF = ... -DNTIMER on POSIX C systems. +-# LIB = -lm ++ LIB = -lm + + # For "make install" + INSTALL_LIB = /usr/local/lib diff --git a/mingw-w64-suitesparse/0002-Win32-Add-strip-trailing-cr-to-diff-for-crlf.patch b/mingw-w64-suitesparse/0002-Win32-Add-strip-trailing-cr-to-diff-for-crlf.patch new file mode 100644 index 0000000000..bc1c22a1c0 --- /dev/null +++ b/mingw-w64-suitesparse/0002-Win32-Add-strip-trailing-cr-to-diff-for-crlf.patch @@ -0,0 +1,398 @@ +diff -urN SuiteSparse.orig/AMD/Demo/Makefile SuiteSparse/AMD/Demo/Makefile +--- SuiteSparse.orig/AMD/Demo/Makefile 2015-02-01 12:31:49.150295900 +0000 ++++ SuiteSparse/AMD/Demo/Makefile 2015-02-01 12:38:28.692531400 +0000 +@@ -28,22 +28,22 @@ + amd_demo: amd_demo.c library $(INC) + $(C) -o amd_demo amd_demo.c ../Lib/libamd.a $(LIB2) + ./amd_demo > my_amd_demo.out +- - diff amd_demo.out my_amd_demo.out ++ - diff --strip-trailing-cr amd_demo.out my_amd_demo.out + + amd_l_demo: amd_l_demo.c library $(INC) + $(C) -o amd_l_demo amd_l_demo.c ../Lib/libamd.a $(LIB2) + ./amd_l_demo > my_amd_l_demo.out +- - diff amd_l_demo.out my_amd_l_demo.out ++ - diff --strip-trailing-cr amd_l_demo.out my_amd_l_demo.out + + amd_demo2: amd_demo2.c library $(INC) + $(C) -o amd_demo2 amd_demo2.c ../Lib/libamd.a $(LIB2) + ./amd_demo2 > my_amd_demo2.out +- - diff amd_demo2.out my_amd_demo2.out ++ - diff --strip-trailing-cr amd_demo2.out my_amd_demo2.out + + amd_simple: amd_simple.c library $(INC) + $(C) -o amd_simple amd_simple.c ../Lib/libamd.a $(LIB2) + ./amd_simple > my_amd_simple.out +- - diff amd_simple.out my_amd_simple.out ++ - diff --strip-trailing-cr amd_simple.out my_amd_simple.out + + #------------------------------------------------------------------------------ + # compile the Fortran demo +@@ -57,13 +57,13 @@ + $(F77) $(F77FLAGS) -o amd_f77demo amd_f77demo.f ../Lib/libamdf77.a \ + $(F77LIB) + ./amd_f77demo > my_amd_f77demo.out +- - diff amd_f77demo.out my_amd_f77demo.out ++ - diff --strip-trailing-cr amd_f77demo.out my_amd_f77demo.out + + amd_f77simple: amd_f77simple.f f77lib + $(F77) $(F77FLAGS) -o amd_f77simple amd_f77simple.f \ + ../Lib/libamdf77.a $(F77LIB) + ./amd_f77simple > my_amd_f77simple.out +- - diff amd_f77simple.out my_amd_f77simple.out ++ - diff --strip-trailing-cr amd_f77simple.out my_amd_f77simple.out + + amd_f77wrapper.o: amd_f77wrapper.c + $(C) -DDINT -c amd_f77wrapper.c +@@ -72,7 +72,7 @@ + $(F77) $(F77FLAGS) -o amd_f77cross amd_f77cross.f amd_f77wrapper.o \ + ../Lib/libamd.a $(F77LIB) + ./amd_f77cross > my_amd_f77cross.out +- - diff amd_f77cross.out my_amd_f77cross.out ++ - diff --strip-trailing-cr amd_f77cross.out my_amd_f77cross.out + + #------------------------------------------------------------------------------ + # Remove all but the files in the original distribution +diff -urN SuiteSparse.orig/CAMD/Demo/Makefile SuiteSparse/CAMD/Demo/Makefile +--- SuiteSparse.orig/CAMD/Demo/Makefile 2015-02-01 12:31:49.024780000 +0000 ++++ SuiteSparse/CAMD/Demo/Makefile 2015-02-01 12:42:35.739902400 +0000 +@@ -25,22 +25,22 @@ + camd_demo: camd_demo.c library $(INC) + $(C) -o camd_demo camd_demo.c ../Lib/libcamd.a $(LIB2) + ./camd_demo > my_camd_demo.out +- - diff camd_demo.out my_camd_demo.out ++ - diff --strip-trailing-cr camd_demo.out my_camd_demo.out + + camd_l_demo: camd_l_demo.c library $(INC) + $(C) -o camd_l_demo camd_l_demo.c ../Lib/libcamd.a $(LIB2) + ./camd_l_demo > my_camd_l_demo.out +- - diff camd_l_demo.out my_camd_l_demo.out ++ - diff --strip-trailing-cr camd_l_demo.out my_camd_l_demo.out + + camd_demo2: camd_demo2.c library $(INC) + $(C) -o camd_demo2 camd_demo2.c ../Lib/libcamd.a $(LIB2) + ./camd_demo2 > my_camd_demo2.out +- - diff camd_demo2.out my_camd_demo2.out ++ - diff --strip-trailing-cr camd_demo2.out my_camd_demo2.out + + camd_simple: camd_simple.c library $(INC) + $(C) -o camd_simple camd_simple.c ../Lib/libcamd.a $(LIB2) + ./camd_simple > my_camd_simple.out +- - diff camd_simple.out my_camd_simple.out ++ - diff --strip-trailing-cr camd_simple.out my_camd_simple.out + + #------------------------------------------------------------------------------ + # Remove all but the files in the original distribution +diff -urN SuiteSparse.orig/CCOLAMD/Demo/Makefile SuiteSparse/CCOLAMD/Demo/Makefile +--- SuiteSparse.orig/CCOLAMD/Demo/Makefile 2015-02-01 12:31:49.037281600 +0000 ++++ SuiteSparse/CCOLAMD/Demo/Makefile 2015-02-01 12:38:28.694031500 +0000 +@@ -25,12 +25,12 @@ + ccolamd_example: ccolamd_example.c library + $(C) -o ccolamd_example ccolamd_example.c ../Lib/libccolamd.a $(LIB2) + - ./ccolamd_example > my_ccolamd_example.out +- - diff ccolamd_example.out my_ccolamd_example.out ++ - diff --strip-trailing-cr ccolamd_example.out my_ccolamd_example.out + + ccolamd_l_example: ccolamd_l_example.c library + $(C) -o ccolamd_l_example ccolamd_l_example.c ../Lib/libccolamd.a $(LIB2) + - ./ccolamd_l_example > my_ccolamd_l_example.out +- - diff ccolamd_l_example.out my_ccolamd_l_example.out ++ - diff --strip-trailing-cr ccolamd_l_example.out my_ccolamd_l_example.out + + #------------------------------------------------------------------------------ + # Remove all but the files in the original distribution +diff -urN SuiteSparse.orig/CHOLMOD/Tcov/Makefile SuiteSparse/CHOLMOD/Tcov/Makefile +--- SuiteSparse.orig/CHOLMOD/Tcov/Makefile 2015-02-01 12:31:48.385198800 +0000 ++++ SuiteSparse/CHOLMOD/Tcov/Makefile 2015-02-01 12:38:28.696031800 +0000 +@@ -408,7 +408,7 @@ + $(V) ./cmread Matrix/2diag.tri > tmp/2diag.out + $(V) ./cmread Matrix/r5lo > tmp/r5lo.out + $(V) ./cmread Matrix/r5lo2 > tmp/r5lo2.out +- - diff tmp/r5lo.out tmp/r5lo2.out ++ - diff --strip-trailing-cr tmp/r5lo.out tmp/r5lo2.out + $(V) ./cmread Matrix/cs.mtx > tmp/cs.out + $(V) ./cmread Matrix/2lo.tri > tmp/2lo.out + $(V) ./cmread Matrix/2.tri > tmp/2.out +@@ -442,7 +442,7 @@ + $(V) ./clread Matrix/2diag.tri > tmp/l_2diag.out + $(V) ./clread Matrix/r5lo > tmp/l_r5lo.out + $(V) ./clread Matrix/r5lo2 > tmp/l_r5lo2.out +- - diff tmp/r5lo.out tmp/r5lo2.out ++ - diff --strip-trailing-cr tmp/r5lo.out tmp/r5lo2.out + $(V) ./clread Matrix/cs.mtx > tmp/l_cs.out + $(V) ./clread Matrix/2lo.tri > tmp/l_l_2lo.out + $(V) ./clread Matrix/2.tri > tmp/l_2.out +diff -urN SuiteSparse.orig/COLAMD/Demo/Makefile SuiteSparse/COLAMD/Demo/Makefile +--- SuiteSparse.orig/COLAMD/Demo/Makefile 2015-02-01 12:31:48.391199500 +0000 ++++ SuiteSparse/COLAMD/Demo/Makefile 2015-02-01 12:38:28.697532000 +0000 +@@ -25,12 +25,12 @@ + colamd_example: colamd_example.c library + $(C) -o colamd_example colamd_example.c ../Lib/libcolamd.a $(LIB2) + - ./colamd_example > my_colamd_example.out +- - diff colamd_example.out my_colamd_example.out ++ - diff --strip-trailing-cr colamd_example.out my_colamd_example.out + + colamd_l_example: colamd_l_example.c library + $(C) -o colamd_l_example colamd_l_example.c ../Lib/libcolamd.a $(LIB2) + - ./colamd_l_example > my_colamd_l_example.out +- - diff colamd_l_example.out my_colamd_l_example.out ++ - diff --strip-trailing-cr colamd_l_example.out my_colamd_l_example.out + + #------------------------------------------------------------------------------ + # Remove all but the files in the original distribution +diff -urN SuiteSparse.orig/LDL/Demo/Makefile SuiteSparse/LDL/Demo/Makefile +--- SuiteSparse.orig/LDL/Demo/Makefile 2015-02-01 12:31:48.829755200 +0000 ++++ SuiteSparse/LDL/Demo/Makefile 2015-02-01 12:38:28.701532500 +0000 +@@ -26,48 +26,48 @@ + ldlmain: ldlmain.c library + $(C) ldlmain.c ../Lib/libldl.a -o ldlmain $(LIB2) + - ./ldlmain > my_ldlmain.out +- - diff ldlmain.out my_ldlmain.out ++ - diff --strip-trailing-cr ldlmain.out my_ldlmain.out + + ldllmain: ldlmain.c library + $(C) -DLDL_LONG ldlmain.c ../Lib/libldl.a -o ldllmain $(LIB2) + - ./ldllmain > my_ldllmain.out +- - diff ldlmain.out my_ldllmain.out ++ - diff --strip-trailing-cr ldlmain.out my_ldllmain.out + + ldlsimple: ldlsimple.c library + $(C) ldlsimple.c ../Lib/libldl.a -o ldlsimple $(LIB2) + - ./ldlsimple > my_ldlsimple.out +- - diff ldlsimple.out my_ldlsimple.out ++ - diff --strip-trailing-cr ldlsimple.out my_ldlsimple.out + + ldllsimple: ldlsimple.c library + $(C) $(I) -DLDL_LONG ldlsimple.c ../Lib/libldl.a -o ldllsimple $(LIB2) + - ./ldllsimple > my_ldllsimple.out +- - diff ldlsimple.out my_ldllsimple.out ++ - diff --strip-trailing-cr ldlsimple.out my_ldllsimple.out + + ldlamd: ldlmain.c library + - $(C) -I../../AMD/Include -DUSE_AMD \ + ldlmain.c ../../AMD/Lib/libamd.a ../Lib/libldl.a -o ldlamd $(LIB2) + - ./ldlamd > my_ldlamd.out +- - diff ldlamd.out my_ldlamd.out ++ - diff --strip-trailing-cr ldlamd.out my_ldlamd.out + + ldllamd: ldlmain.c library + - $(C) -DLDL_LONG $(I) -I../../AMD/Include -DUSE_AMD \ + ldlmain.c ../../AMD/Lib/libamd.a ../Lib/libldl.a -o ldllamd $(LIB2) + - ./ldllamd > my_ldllamd.out +- - diff ldllamd.out my_ldllamd.out ++ - diff --strip-trailing-cr ldllamd.out my_ldllamd.out + + run: + - ./ldlsimple > my_ldlsimple.out +- - diff ldlsimple.out my_ldlsimple.out ++ - diff --strip-trailing-cr ldlsimple.out my_ldlsimple.out + - ./ldllsimple > my_ldllsimple.out +- - diff ldlsimple.out my_ldllsimple.out ++ - diff --strip-trailing-cr ldlsimple.out my_ldllsimple.out + - ./ldlmain > my_ldlmain.out +- - diff ldlmain.out my_ldlmain.out ++ - diff --strip-trailing-cr ldlmain.out my_ldlmain.out + - ./ldllmain > my_ldllmain.out +- - diff ldlmain.out my_ldllmain.out ++ - diff --strip-trailing-cr ldlmain.out my_ldllmain.out + - ./ldlamd > my_ldlamd.out +- - diff ldlamd.out my_ldlamd.out ++ - diff --strip-trailing-cr ldlamd.out my_ldlamd.out + - ./ldllamd > my_ldllamd.out +- - diff ldllamd.out my_ldllamd.out ++ - diff --strip-trailing-cr ldllamd.out my_ldllamd.out + + + #------------------------------------------------------------------------------- +diff -urN SuiteSparse.orig/MATLAB_Tools/SFMULT/Makefile SuiteSparse/MATLAB_Tools/SFMULT/Makefile +--- SuiteSparse.orig/MATLAB_Tools/SFMULT/Makefile 2015-02-01 12:31:48.874260900 +0000 ++++ SuiteSparse/MATLAB_Tools/SFMULT/Makefile 2015-02-01 12:38:28.703032700 +0000 +@@ -3,23 +3,23 @@ + diffs: kernel_diffs kernel_usage_diffs structure_diffs + + kernel_diffs: +- - diff sfmult_anxnyt_k.c sfmult_anxtyt_k.c +- - diff sfmult_atxtyn_k.c sfmult_atxtyt_k.c +- - diff sfmult_vector_1.c sfmult_vector_k.c ++ - diff --strip-trailing-cr sfmult_anxnyt_k.c sfmult_anxtyt_k.c ++ - diff --strip-trailing-cr sfmult_atxtyn_k.c sfmult_atxtyt_k.c ++ - diff --strip-trailing-cr sfmult_vector_1.c sfmult_vector_k.c + + # each of these pairs use the same sfmult_A*_X*_Y*_[234] kernels + kernel_usage_diffs: +- - diff sfmult_anxtyn.c sfmult_anxtyt.c +- - diff sfmult_anxnyn.c sfmult_anxnyt.c +- - diff sfmult_atxnyn.c sfmult_atxtyn.c +- - diff sfmult_atxnyt.c sfmult_atxtyt.c ++ - diff --strip-trailing-cr sfmult_anxtyn.c sfmult_anxtyt.c ++ - diff --strip-trailing-cr sfmult_anxnyn.c sfmult_anxnyt.c ++ - diff --strip-trailing-cr sfmult_atxnyn.c sfmult_atxtyn.c ++ - diff --strip-trailing-cr sfmult_atxnyt.c sfmult_atxtyt.c + + # each of these pairs use the same outer structure but different kernels + structure_diffs: +- - diff sfmult_anxnyn.c sfmult_anxtyn.c +- - diff sfmult_anxnyt.c sfmult_anxtyt.c +- - diff sfmult_atxnyn.c sfmult_atxnyt.c +- - diff sfmult_atxtyn.c sfmult_atxtyt.c ++ - diff --strip-trailing-cr sfmult_anxnyn.c sfmult_anxtyn.c ++ - diff --strip-trailing-cr sfmult_anxnyt.c sfmult_anxtyt.c ++ - diff --strip-trailing-cr sfmult_atxnyn.c sfmult_atxnyt.c ++ - diff --strip-trailing-cr sfmult_atxtyn.c sfmult_atxtyt.c + + OBJ = \ + sfmult_anxnyn.o \ +diff -urN SuiteSparse.orig/SuiteSparse_config/Makefile SuiteSparse/SuiteSparse_config/Makefile +--- SuiteSparse.orig/SuiteSparse_config/Makefile 2015-02-01 12:31:49.012778500 +0000 ++++ SuiteSparse/SuiteSparse_config/Makefile 2015-02-01 12:38:28.705032900 +0000 +@@ -42,7 +42,7 @@ + $(RM) $(INSTALL_INCLUDE)/SuiteSparse_config.h + + dif: +- - diff SuiteSparse_config.mk SuiteSparse_config_linux.mk +- - diff SuiteSparse_config_linux.mk SuiteSparse_config_GPU_gcc.mk +- - diff SuiteSparse_config_GPU_gcc.mk SuiteSparse_config_GPU_icc.mk +- - diff SuiteSparse_config_GPU_icc.mk SuiteSparse_config_GPU_icc10.mk ++ - diff --strip-trailing-cr SuiteSparse_config.mk SuiteSparse_config_linux.mk ++ - diff --strip-trailing-cr SuiteSparse_config_linux.mk SuiteSparse_config_GPU_gcc.mk ++ - diff --strip-trailing-cr SuiteSparse_config_GPU_gcc.mk SuiteSparse_config_GPU_icc.mk ++ - diff --strip-trailing-cr SuiteSparse_config_GPU_icc.mk SuiteSparse_config_GPU_icc10.mk +diff -urN SuiteSparse.orig/UMFPACK/Demo/Makefile SuiteSparse/UMFPACK/Demo/Makefile +--- SuiteSparse.orig/UMFPACK/Demo/Makefile 2015-02-01 12:31:49.053283600 +0000 ++++ SuiteSparse/UMFPACK/Demo/Makefile 2015-02-01 12:38:28.706533100 +0000 +@@ -139,13 +139,13 @@ + run: umfpack_di_demo umfpack_zi_demo umfpack_dl_demo umfpack_zl_demo umfpack_simple + ./umfpack_simple + ./umfpack_di_demo > my_umfpack_di_demo.out +- - diff umfpack_di_demo.out my_umfpack_di_demo.out ++ - diff --strip-trailing-cr umfpack_di_demo.out my_umfpack_di_demo.out + ./umfpack_dl_demo > my_umfpack_dl_demo.out +- - diff umfpack_dl_demo.out my_umfpack_dl_demo.out ++ - diff --strip-trailing-cr umfpack_dl_demo.out my_umfpack_dl_demo.out + ./umfpack_zi_demo > my_umfpack_zi_demo.out +- - diff umfpack_zi_demo.out my_umfpack_zi_demo.out ++ - diff --strip-trailing-cr umfpack_zi_demo.out my_umfpack_zi_demo.out + ./umfpack_zl_demo > my_umfpack_zl_demo.out +- - diff umfpack_zl_demo.out my_umfpack_zl_demo.out ++ - diff --strip-trailing-cr umfpack_zl_demo.out my_umfpack_zl_demo.out + + #------------------------------------------------------------------------------- + # create a demo program that reads in Harwell/Boeing matrices, and run it +@@ -196,17 +196,17 @@ + $(F77) $(F77FLAGS) -o umf4hb umf4hb.f umf4_f77wrapper.o \ + $(UMFPACK) $(LIBS) + - ./umf4hb < HB/west0067.rua > my_umf4hb.out +- - diff my_umf4hb.out umf4hb.out ++ - diff --strip-trailing-cr my_umf4hb.out umf4hb.out + $(F77) $(F77FLAGS) -o umf4zhb umf4zhb.f umf4_f77zwrapper.o \ + $(UMFPACK) $(LIBS) + - ./umf4zhb < HB/qc324.cua > my_umf4zhb.out +- - diff my_umf4zhb.out umf4zhb.out ++ - diff --strip-trailing-cr my_umf4zhb.out umf4zhb.out + + fortran64: $(UMFPACK) umf4hb64.f umf4_f77wrapper64.o umf4_f77zwrapper64.o $(UMFPACK) + $(F77) $(F77FLAGS) -o umf4hb64 umf4hb64.f umf4_f77wrapper64.o \ + $(UMFPACK) $(LIBS) + - ./umf4hb64 < HB/west0067.rua > my_umf4hb64.out +- - diff my_umf4hb64.out umf4hb64.out ++ - diff --strip-trailing-cr my_umf4hb64.out umf4hb64.out + + umf4_f77wrapper.o: umf4_f77wrapper.c $(INC) + $(C) -c umf4_f77wrapper.c -o umf4_f77wrapper.o +diff -urN SuiteSparse.orig/UMFPACK/Tcov/AMD_Demo_Makefile SuiteSparse/UMFPACK/Tcov/AMD_Demo_Makefile +--- SuiteSparse.orig/UMFPACK/Tcov/AMD_Demo_Makefile 2015-02-01 12:31:49.130793500 +0000 ++++ SuiteSparse/UMFPACK/Tcov/AMD_Demo_Makefile 2015-02-01 12:38:28.709033500 +0000 +@@ -27,22 +27,22 @@ + amd_demo: amd_demo.c library $(INC) + $(C) -o amd_demo amd_demo.c ../Lib/libamd.a $(LIB2) + ./amd_demo > my_amd_demo.out +- - diff amd_demo.out my_amd_demo.out ++ - diff --strip-trailing-cr amd_demo.out my_amd_demo.out + + amd_l_demo: amd_l_demo.c library $(INC) + $(C) -o amd_l_demo amd_l_demo.c ../Lib/libamd.a $(LIB2) + ./amd_l_demo > my_amd_l_demo.out +- - diff amd_l_demo.out my_amd_l_demo.out ++ - diff --strip-trailing-cr amd_l_demo.out my_amd_l_demo.out + + amd_demo2: amd_demo2.c library $(INC) + $(C) -o amd_demo2 amd_demo2.c ../Lib/libamd.a $(LIB2) + ./amd_demo2 > my_amd_demo2.out +- - diff amd_demo2.out my_amd_demo2.out ++ - diff --strip-trailing-cr amd_demo2.out my_amd_demo2.out + + amd_simple: amd_simple.c library $(INC) + $(C) -o amd_simple amd_simple.c ../Lib/libamd.a $(LIB2) + ./amd_simple > my_amd_simple.out +- - diff amd_simple.out my_amd_simple.out ++ - diff --strip-trailing-cr amd_simple.out my_amd_simple.out + + #------------------------------------------------------------------------------ + # compile the Fortran demo +@@ -56,13 +56,13 @@ + $(F77) $(F77FLAGS) -o amd_f77demo amd_f77demo.f ../Lib/libamdf77.a \ + $(F77LIB) + ./amd_f77demo > my_amd_f77demo.out +- - diff amd_f77demo.out my_amd_f77demo.out ++ - diff --strip-trailing-cr amd_f77demo.out my_amd_f77demo.out + + amd_f77simple: amd_f77simple.f f77lib + $(F77) $(F77FLAGS) -o amd_f77simple amd_f77simple.f \ + ../Lib/libamdf77.a $(F77LIB) + ./amd_f77simple > my_amd_f77simple.out +- - diff amd_f77simple.out my_amd_f77simple.out ++ - diff --strip-trailing-cr amd_f77simple.out my_amd_f77simple.out + + amd_f77wrapper.o: amd_f77wrapper.c + $(C) -DDINT -c amd_f77wrapper.c +@@ -71,7 +71,7 @@ + $(F77) $(F77FLAGS) -o amd_f77cross amd_f77cross.f amd_f77wrapper.o \ + ../Lib/libamd.a $(F77LIB) + ./amd_f77cross > my_amd_f77cross.out +- - diff amd_f77cross.out my_amd_f77cross.out ++ - diff --strip-trailing-cr amd_f77cross.out my_amd_f77cross.out + + #------------------------------------------------------------------------------ + # Remove all but the files in the original distribution +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Demo_Makefile SuiteSparse/UMFPACK/Tcov/Demo_Makefile +--- SuiteSparse.orig/UMFPACK/Tcov/Demo_Makefile 2015-02-01 12:31:49.125292800 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Demo_Makefile 2015-02-01 12:38:28.711033700 +0000 +@@ -100,13 +100,13 @@ + run: umfpack_di_demo umfpack_zi_demo umfpack_dl_demo umfpack_zl_demo umfpack_simple + ./umfpack_simple + ./umfpack_di_demo > my_umfpack_di_demo.out +- - diff umfpack_di_demo.out my_umfpack_di_demo.out ++ - diff --strip-trailing-cr umfpack_di_demo.out my_umfpack_di_demo.out + ./umfpack_dl_demo > my_umfpack_dl_demo.out +- - diff umfpack_dl_demo.out my_umfpack_dl_demo.out ++ - diff --strip-trailing-cr umfpack_dl_demo.out my_umfpack_dl_demo.out + ./umfpack_zi_demo > my_umfpack_zi_demo.out +- - diff umfpack_zi_demo.out my_umfpack_zi_demo.out ++ - diff --strip-trailing-cr umfpack_zi_demo.out my_umfpack_zi_demo.out + ./umfpack_zl_demo > my_umfpack_zl_demo.out +- - diff umfpack_zl_demo.out my_umfpack_zl_demo.out ++ - diff --strip-trailing-cr umfpack_zl_demo.out my_umfpack_zl_demo.out + + #------------------------------------------------------------------------------- + # create a demo program that reads in Harwell/Boeing matrices, and run it +@@ -156,17 +156,17 @@ + $(F77) $(F77FLAGS) -o umf4hb umf4hb.f umf4_f77wrapper.o \ + $(UMFPACK) $(LIBS) + - ./umf4hb < HB/west0067.rua > my_umf4hb.out +- - diff my_umf4hb.out umf4hb.out ++ - diff --strip-trailing-cr my_umf4hb.out umf4hb.out + $(F77) $(F77FLAGS) -o umf4zhb umf4zhb.f umf4_f77zwrapper.o \ + $(UMFPACK) $(LIBS) + - ./umf4zhb < HB/qc324.cua > my_umf4zhb.out +- - diff my_umf4zhb.out umf4zhb.out ++ - diff --strip-trailing-cr my_umf4zhb.out umf4zhb.out + + fortran64: $(UMFPACK) umf4hb64.f umf4_f77wrapper64.o umf4_f77zwrapper64.o $(UMFPACK) + $(F77) $(F77FLAGS) -o umf4hb64 umf4hb64.f umf4_f77wrapper64.o \ + $(UMFPACK) $(LIBS) + - ./umf4hb64 < HB/west0067.rua > my_umf4hb64.out +- - diff my_umf4hb64.out umf4hb64.out ++ - diff --strip-trailing-cr my_umf4hb64.out umf4hb64.out + + umf4_f77wrapper.o: umf4_f77wrapper.c $(INC) + $(C) -c umf4_f77wrapper.c -o umf4_f77wrapper.o diff --git a/mingw-w64-suitesparse/PKGBUILD b/mingw-w64-suitesparse/PKGBUILD new file mode 100644 index 0000000000..7fddfab21d --- /dev/null +++ b/mingw-w64-suitesparse/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: Ray Donnelly + +_realname=SuiteSparse +pkgname=("${MINGW_PACKAGE_PREFIX}-suitesparse") +pkgver=4.4.3 +pkgrel=1 +pkgdesc='A suite of sparse matrix algorithms (mingw-w64)' +license=('GPL') +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +source=("http://faculty.cse.tamu.edu/davis/${_realname}/${_realname}-${pkgver}.tar.gz" + "0001-Win32-Do-not-link-librt.patch" + "0002-Win32-Add-strip-trailing-cr-to-diff-for-crlf.patch") +depends=("${MINGW_PACKAGE_PREFIX}-openblas") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran") +md5sums=('b2e6f2373d480aa6f0ea5ca3d5d531c3' + '7af25ee389fb79459615221a58ba465e' + '1773305ad707db5b88d253ea914b975b') + +prepare() { + cd "${srcdir}"/${_realname} + patch -p1 -i "${srcdir}"/0001-Win32-Do-not-link-librt.patch + patch -p1 -i "${srcdir}"/0002-Win32-Add-strip-trailing-cr-to-diff-for-crlf.patch +} + +build() { + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + cp -rf "${srcdir}"/${_realname} build-${CARCH} + cd "${srcdir}"/build-${CARCH} + + # https://www.gnu.org/software/octave/doc/interpreter/Compiling-Octave-with-64_002dbit-Indexing.html says + # "On 64-bit Windows systems, use -DLONGBLAS="long long" instead.", but that seems wrong. If 64-bit indexing + # is wanted, then long long should be used on 32-bit Windows too I expect (unless LONGBLAS refers to pointer + # size in some instances?) + CFLAGS='-DLONGBLAS="long long"' \ + CXXFLAGS='-DLONGBLAS="long long"' \ + CC=gcc CXX=g++ \ + make +} + +check() { + cd "${srcdir}"/build-${CARCH} + make check +} + +package() { + cd "${srcdir}"/build-${CARCH} + make install DESTDIR="${pkgdir}" +} From a8480527bd026c7452c877b37dd4713f25620667 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 2 Feb 2015 00:56:59 +0000 Subject: [PATCH 0449/2060] inkscape: Disable gtk-3 I left it enabled by mistake --- mingw-w64-inkscape/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index 56c64967ff..cdcc898827 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -3,7 +3,7 @@ # gtk3 support is still experimental # It can be tested via _use_gtk3=yes -_use_gtk3=yes +_use_gtk3=no if [ "${_use_gtk3}" = "yes" ]; then _gtksuff=3 fi From c1761c938665a4a6a03a9af2c6267eb38cc044ce Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 2 Feb 2015 20:25:38 +0300 Subject: [PATCH 0450/2060] qtifw: Update to git SHA [c945bbd] --- .../0005-Fix-RunProgram-variable-substitution.patch | 8 ++++---- mingw-w64-qt-installer-framework/PKGBUILD | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch b/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch index 11be0a331f..5041e66b4f 100644 --- a/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch +++ b/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch @@ -14,7 +14,7 @@ diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packa index 5a7ed98..c2c70e3 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp -@@ -2380,8 +2380,9 @@ void FinishedPage::leaving() +@@ -2436,8 +2436,9 @@ void FinishedPage::leaving() void FinishedPage::handleFinishClicked() { @@ -22,9 +22,9 @@ index 5a7ed98..c2c70e3 100644 const QString program = - packageManagerCore()->replaceVariables(packageManagerCore()->value(scRunProgram)); + packageManagerCore()->replaceVariables(packageManagerCore()->settings().runProgram()); - const QStringList args = packageManagerCore()->replaceVariables( - packageManagerCore()->value(scRunProgramArguments)).split(QLatin1Char(' '), - QString::SkipEmptyParts); + + const QStringList args = packageManagerCore()->replaceVariables(packageManagerCore() + ->values(scRunProgramArguments)); -- 2.0.0 diff --git a/mingw-w64-qt-installer-framework/PKGBUILD b/mingw-w64-qt-installer-framework/PKGBUILD index ee14a7bbe7..2a9335bb17 100644 --- a/mingw-w64-qt-installer-framework/PKGBUILD +++ b/mingw-w64-qt-installer-framework/PKGBUILD @@ -3,7 +3,7 @@ _realname=installer-framework pkgname="${MINGW_PACKAGE_PREFIX}-qt-${_realname}-git" pkgdesc="The Qt Installer Framework used for the Qt SDK installer" -pkgver=r2283.0d529d9 +pkgver=r2504.c945bbd pkgrel=1 arch=('any') url='http://qt-project.org/' @@ -22,7 +22,7 @@ md5sums=('SKIP' '614046f9d32cf592c98856c195bbbba6' 'd4ca5e1b2a30a26eaf37d69c24444587' '61d67ae4eee1a326fad6c0f8d2d33b7a' - 'f3a40ff3dd9f010f67101cfc41bb6fb1') + 'fea0554f56d3a1b99cffc350c3f7709b') pkgver() { cd "$srcdir"/${_realname} From d0c6a8d2e9bcbe6678d91951a74d6aee3a38e246 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 2 Feb 2015 21:18:01 +0000 Subject: [PATCH 0451/2060] gl2ps: Fix prefix/installation --- mingw-w64-gl2ps/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gl2ps/PKGBUILD b/mingw-w64-gl2ps/PKGBUILD index 3e23e6f9fe..846865d429 100644 --- a/mingw-w64-gl2ps/PKGBUILD +++ b/mingw-w64-gl2ps/PKGBUILD @@ -6,7 +6,7 @@ _realname=gl2ps pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.8 -pkgrel=1 +pkgrel=2 pkgdesc="an OpenGL to PostScript printing library (mingw-w64)" arch=('any') url='http://geuz.org/gl2ps/' @@ -32,7 +32,7 @@ build() { cmake ../${_realname}-${pkgver}-source \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -G'MSYS Makefiles' make @@ -41,5 +41,5 @@ build() { package() { cd "${srcdir}/build-${CARCH}" - make DESTDIR="${pkgdir}" install + make install } From 7bb92d2438e9faa006932a91f1818949157b2132 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 2 Feb 2015 21:22:11 +0000 Subject: [PATCH 0452/2060] suitesparse: It builds .. static libs only. --- .../0001-Win32-Do-not-link-librt.patch | 108 +++++++++ .../0003-MSYS2-Use-OpenBLAS.patch | 223 ++++++++++++++++++ ...fied-INSTALL_LIB-and-INSTALL_INCLUDE.patch | 112 +++++++++ mingw-w64-suitesparse/PKGBUILD | 49 ++-- 4 files changed, 475 insertions(+), 17 deletions(-) create mode 100644 mingw-w64-suitesparse/0003-MSYS2-Use-OpenBLAS.patch create mode 100644 mingw-w64-suitesparse/0004-Allow-env-specified-INSTALL_LIB-and-INSTALL_INCLUDE.patch diff --git a/mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch b/mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch index 9c95d0170f..4110381e0c 100644 --- a/mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch +++ b/mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch @@ -142,3 +142,111 @@ diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_Mac.mk SuiteSpa # For "make install" INSTALL_LIB = /usr/local/lib +diff -urN SuiteSparse.orig/CHOLMOD/Tcov/Makefile SuiteSparse/CHOLMOD/Tcov/Makefile +--- SuiteSparse.orig/CHOLMOD/Tcov/Makefile 2015-02-02 10:50:26.788053900 +0000 ++++ SuiteSparse/CHOLMOD/Tcov/Makefile 2015-02-02 11:03:05.250142500 +0000 +@@ -31,7 +31,7 @@ + # LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin + # LIB = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin + # Linux: +- LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin -lpthread -lrt ++ LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin -lpthread + # Mac: + # LIB = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin -lpthread + +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.1 SuiteSparse/UMFPACK/Tcov/Make.1 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.1 2015-02-02 11:16:00.669134800 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.1 2015-02-02 11:16:54.447426900 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm -lrt ++LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.2 SuiteSparse/UMFPACK/Tcov/Make.2 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.2 2015-02-02 11:16:00.669134800 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.2 2015-02-02 11:16:56.771588500 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DTESTING +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm -lrt ++LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.3 SuiteSparse/UMFPACK/Tcov/Make.3 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.3 2015-02-02 11:16:00.669134800 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.3 2015-02-02 11:17:00.795975700 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O3 -fPIC + UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm -lrt ++LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.4 SuiteSparse/UMFPACK/Tcov/Make.4 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.4 2015-02-02 11:16:00.669134800 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.4 2015-02-02 11:17:04.245221900 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O3 -fPIC + UMFPACK_CONFIG = -DTESTING +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm -lrt ++LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.5 SuiteSparse/UMFPACK/Tcov/Make.5 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.5 2015-02-02 11:16:00.669134800 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.5 2015-02-02 11:17:08.800954600 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING -DNRECIPROCAL +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm -lrt ++LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.6 SuiteSparse/UMFPACK/Tcov/Make.6 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.6 2015-02-02 11:16:00.669134800 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.6 2015-02-02 11:17:13.386884200 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DTESTING -DNTIMER +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm -lrt ++LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.7 SuiteSparse/UMFPACK/Tcov/Make.7 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.7 2015-02-02 11:16:00.623939400 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.7 2015-02-02 11:17:17.614050600 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING -DNO_DIVIDE_BY_ZERO +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm -lrt ++LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.8 SuiteSparse/UMFPACK/Tcov/Make.8 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.8 2015-02-02 11:16:00.624939300 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.8 2015-02-02 11:17:22.796719000 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DTESTING -DNO_DIVIDE_BY_ZERO +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm -lrt ++LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f diff --git a/mingw-w64-suitesparse/0003-MSYS2-Use-OpenBLAS.patch b/mingw-w64-suitesparse/0003-MSYS2-Use-OpenBLAS.patch new file mode 100644 index 0000000000..3c07d18ae4 --- /dev/null +++ b/mingw-w64-suitesparse/0003-MSYS2-Use-OpenBLAS.patch @@ -0,0 +1,223 @@ +diff -urN SuiteSparse.orig/CHOLMOD/Tcov/Makefile SuiteSparse/CHOLMOD/Tcov/Makefile +--- SuiteSparse.orig/CHOLMOD/Tcov/Makefile 2015-02-02 11:05:02.708744500 +0000 ++++ SuiteSparse/CHOLMOD/Tcov/Makefile 2015-02-02 11:08:19.569870900 +0000 +@@ -31,9 +31,11 @@ + # LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin + # LIB = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin + # Linux: +- LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin -lpthread ++# LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin -lpthread + # Mac: + # LIB = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin -lpthread ++# MSYS2 (OpenBlas): ++ LIB = $(METIS) -lm -lopenblas -lgfortran -lgfortranbegin -lpthread + + # Solaris + # LIB = $(METIS) -xlic_lib=sunperf +diff -urN SuiteSparse.orig/SPQR/Tcov/Makefile SuiteSparse/SPQR/Tcov/Makefile +--- SuiteSparse.orig/SPQR/Tcov/Makefile 2015-02-02 11:05:03.837901300 +0000 ++++ SuiteSparse/SPQR/Tcov/Makefile 2015-02-02 11:10:39.284290900 +0000 +@@ -24,8 +24,10 @@ + # Use the standard reference BLAS, and LAPACK, both compiled with -g, + # for best diagnostics. Also, some BLAS (such as the Goto BLAS) cause + # problems for Valgrind (using instructions that Valgrind doesn't understand). +- FLIB = -llapack_plain -lblas_plain -lgfortran ++# FLIB = -llapack_plain -lblas_plain -lgfortran + # FLIB = -llapack_plain -lblas_plain -lgfortran -lg2c ++# MSYS2 (OpenBlas): ++ FLIB = -lopenblas -lgfortran + + # This can be used, but severe valgrind failures may occur in the BLAS, + # because of how the BLAS is optimized: +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config.mk 2015-02-02 11:05:04.040693500 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk 2015-02-02 11:09:14.108472900 +0000 +@@ -120,7 +120,8 @@ + + # This is probably slow ... it might connect to the Standard Reference BLAS: + # BLAS = -lblas -lgfortran +- LAPACK = -llapack ++# LAPACK = -llapack ++ LAPACK = -lopenblas + + # MKL + # BLAS = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_backslash.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_backslash.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_backslash.mk 2015-02-02 11:05:04.040693500 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_backslash.mk 2015-02-02 11:12:15.788422500 +0000 +@@ -120,7 +120,10 @@ + + # This is probably slow ... it might connect to the Standard Reference BLAS: + # BLAS = -lblas -lgfortran +- LAPACK = -llapack ++# LAPACK = -llapack ++# MSYS2 (OpenBlas): ++ BLAS = -lopenblas -lgfortran ++ LAPACK = + + # MKL + # BLAS = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk 2015-02-02 11:05:04.040693500 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk 2015-02-02 11:12:27.724116500 +0000 +@@ -119,8 +119,11 @@ + # naming the BLAS and LAPACK library (*.a or *.so) files. + + # This is probably slow ... it might connect to the Standard Reference BLAS: +- BLAS = -lblas -lgfortran +- LAPACK = -llapack ++# BLAS = -lblas -lgfortran ++# LAPACK = -llapack ++# MSYS2 (OpenBlas): ++ BLAS = -lopenblas -lgfortran ++ LAPACK = + + # MKL + # BLAS = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk 2015-02-02 11:05:04.056292900 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk 2015-02-02 11:11:52.351422900 +0000 +@@ -119,8 +119,11 @@ + # naming the BLAS and LAPACK library (*.a or *.so) files. + + # This is probably slow ... it might connect to the Standard Reference BLAS: +- BLAS = -lblas -lgfortran +- LAPACK = -llapack ++# BLAS = -lblas -lgfortran ++# LAPACK = -llapack ++# MSYS2 (OpenBlas): ++ BLAS = -lopenblas -lgfortran ++ LAPACK = + + # MKL + # BLAS = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_linux.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_linux.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_linux.mk 2015-02-02 11:05:04.040693500 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_linux.mk 2015-02-02 11:12:53.612852900 +0000 +@@ -119,8 +119,11 @@ + # naming the BLAS and LAPACK library (*.a or *.so) files. + + # This is probably slow ... it might connect to the Standard Reference BLAS: +- BLAS = -lblas -lgfortran +- LAPACK = -llapack ++# BLAS = -lblas -lgfortran ++# LAPACK = -llapack ++# MSYS2 (OpenBlas): ++ BLAS = -lopenblas -lgfortran ++ LAPACK = + + # MKL + # BLAS = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_Mac.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_Mac.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_Mac.mk 2015-02-02 11:05:04.056292900 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_Mac.mk 2015-02-02 11:12:24.713393700 +0000 +@@ -119,8 +119,11 @@ + # naming the BLAS and LAPACK library (*.a or *.so) files. + + # This is probably slow ... it might connect to the Standard Reference BLAS: +- BLAS = -lblas -lgfortran +- LAPACK = -llapack ++# BLAS = -lblas -lgfortran ++# LAPACK = -llapack ++# MSYS2 (OpenBlas): ++ BLAS = -lopenblas -lgfortran ++ LAPACK = + + # MKL + # BLAS = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.1 SuiteSparse/UMFPACK/Tcov/Make.1 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.1 2015-02-02 11:28:15.621136000 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.1 2015-02-02 11:28:48.408007000 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm ++LIB = -lopenblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.2 SuiteSparse/UMFPACK/Tcov/Make.2 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.2 2015-02-02 11:28:15.621136000 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.2 2015-02-02 11:28:55.199794500 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DTESTING +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm ++LIB = -lopenblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.3 SuiteSparse/UMFPACK/Tcov/Make.3 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.3 2015-02-02 11:28:15.636735500 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.3 2015-02-02 11:29:04.855885000 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O3 -fPIC + UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm ++LIB = -lopenblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.4 SuiteSparse/UMFPACK/Tcov/Make.4 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.4 2015-02-02 11:28:15.636735500 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.4 2015-02-02 11:29:12.271647500 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O3 -fPIC + UMFPACK_CONFIG = -DTESTING +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm ++LIB = -lopenblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.5 SuiteSparse/UMFPACK/Tcov/Make.5 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.5 2015-02-02 11:28:15.636735500 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.5 2015-02-02 11:29:21.351556500 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING -DNRECIPROCAL +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm ++LIB = -lopenblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.6 SuiteSparse/UMFPACK/Tcov/Make.6 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.6 2015-02-02 11:28:15.621136000 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.6 2015-02-02 11:29:26.796782000 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DTESTING -DNTIMER +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm ++LIB = -lopenblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.7 SuiteSparse/UMFPACK/Tcov/Make.7 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.7 2015-02-02 11:28:15.636735500 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.7 2015-02-02 11:29:33.366171500 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING -DNO_DIVIDE_BY_ZERO +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm ++LIB = -lopenblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f +diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.8 SuiteSparse/UMFPACK/Tcov/Make.8 +--- SuiteSparse.orig/UMFPACK/Tcov/Make.8 2015-02-02 11:28:15.636735500 +0000 ++++ SuiteSparse/UMFPACK/Tcov/Make.8 2015-02-02 11:29:42.117491000 +0000 +@@ -5,7 +5,7 @@ + CC = gcc + CF = -O0 -g -ftest-coverage -fprofile-arcs -O0 + UMFPACK_CONFIG = -DTESTING -DNO_DIVIDE_BY_ZERO +-LIB = -llapack -lblas -lgfortran -lgfortranbegin -lm ++LIB = -lopenblas -lgfortran -lgfortranbegin -lm + + RANLIB = ranlib + MV = mv -f diff --git a/mingw-w64-suitesparse/0004-Allow-env-specified-INSTALL_LIB-and-INSTALL_INCLUDE.patch b/mingw-w64-suitesparse/0004-Allow-env-specified-INSTALL_LIB-and-INSTALL_INCLUDE.patch new file mode 100644 index 0000000000..b62744bebc --- /dev/null +++ b/mingw-w64-suitesparse/0004-Allow-env-specified-INSTALL_LIB-and-INSTALL_INCLUDE.patch @@ -0,0 +1,112 @@ +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config.mk 2015-02-02 11:58:09.197010700 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk 2015-02-02 11:58:22.877684500 +0000 +@@ -95,8 +95,8 @@ + LIB = -lm + + # For "make install" +-INSTALL_LIB = /usr/local/lib +-INSTALL_INCLUDE = /usr/local/include ++INSTALL_LIB ?= /usr/local/lib ++INSTALL_INCLUDE ?= /usr/local/include + + # Which version of MAKE you are using (default is "make") + # MAKE = make +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_backslash.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_backslash.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_backslash.mk 2015-02-02 11:58:09.197010700 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_backslash.mk 2015-02-02 11:58:49.074477700 +0000 +@@ -95,8 +95,8 @@ + LIB = -lm + + # For "make install" +-INSTALL_LIB = /usr/local/lib +-INSTALL_INCLUDE = /usr/local/include ++INSTALL_LIB ?= /usr/local/lib ++INSTALL_INCLUDE ?= /usr/local/include + + # Which version of MAKE you are using (default is "make") + # MAKE = make +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk 2015-02-02 11:58:09.197010700 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_debug.mk 2015-02-02 11:58:16.263538900 +0000 +@@ -95,8 +95,8 @@ + LIB = -lm + + # For "make install" +-INSTALL_LIB = /usr/local/lib +-INSTALL_INCLUDE = /usr/local/include ++INSTALL_LIB ?= /usr/local/lib ++INSTALL_INCLUDE ?= /usr/local/include + + # Which version of MAKE you are using (default is "make") + # MAKE = make +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk 2015-02-02 11:58:09.212610100 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_gcc.mk 2015-02-02 11:58:31.806541300 +0000 +@@ -95,8 +95,8 @@ + LIB = -lm + + # For "make install" +-INSTALL_LIB = /usr/local/lib +-INSTALL_INCLUDE = /usr/local/include ++INSTALL_LIB ?= /usr/local/lib ++INSTALL_INCLUDE ?= /usr/local/include + + # Which version of MAKE you are using (default is "make") + # MAKE = make +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_icc.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_icc.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_icc.mk 2015-02-02 11:58:09.212610100 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_icc.mk 2015-02-02 11:58:35.828587100 +0000 +@@ -95,8 +95,8 @@ + LIB = -lm + + # For "make install" +-INSTALL_LIB = /usr/local/lib +-INSTALL_INCLUDE = /usr/local/include ++INSTALL_LIB ?= /usr/local/lib ++INSTALL_INCLUDE ?= /usr/local/include + + # Which version of MAKE you are using (default is "make") + # MAKE = make +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_icc10.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_icc10.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_GPU_icc10.mk 2015-02-02 11:58:09.197010700 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_GPU_icc10.mk 2015-02-02 11:58:40.463608900 +0000 +@@ -96,8 +96,8 @@ + LIB = -lm + + # For "make install" +-INSTALL_LIB = /usr/local/lib +-INSTALL_INCLUDE = /usr/local/include ++INSTALL_LIB ?= /usr/local/lib ++INSTALL_INCLUDE ?= /usr/local/include + + # Which version of MAKE you are using (default is "make") + # MAKE = make +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_linux.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_linux.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_linux.mk 2015-02-02 11:58:09.212610100 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_linux.mk 2015-02-02 11:58:53.365312700 +0000 +@@ -95,8 +95,8 @@ + LIB = -lm + + # For "make install" +-INSTALL_LIB = /usr/local/lib +-INSTALL_INCLUDE = /usr/local/include ++INSTALL_LIB ?= /usr/local/lib ++INSTALL_INCLUDE ?= /usr/local/include + + # Which version of MAKE you are using (default is "make") + # MAKE = make +diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_Mac.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config_Mac.mk +--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_Mac.mk 2015-02-02 11:58:09.212610100 +0000 ++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config_Mac.mk 2015-02-02 11:58:45.330621700 +0000 +@@ -95,8 +95,8 @@ + LIB = -lm + + # For "make install" +-INSTALL_LIB = /usr/local/lib +-INSTALL_INCLUDE = /usr/local/include ++INSTALL_LIB ?= /usr/local/lib ++INSTALL_INCLUDE ?= /usr/local/include + + # Which version of MAKE you are using (default is "make") + # MAKE = make diff --git a/mingw-w64-suitesparse/PKGBUILD b/mingw-w64-suitesparse/PKGBUILD index 7fddfab21d..239e446b63 100644 --- a/mingw-w64-suitesparse/PKGBUILD +++ b/mingw-w64-suitesparse/PKGBUILD @@ -10,17 +10,23 @@ groups=("${MINGW_PACKAGE_PREFIX}") arch=('any') source=("http://faculty.cse.tamu.edu/davis/${_realname}/${_realname}-${pkgver}.tar.gz" "0001-Win32-Do-not-link-librt.patch" - "0002-Win32-Add-strip-trailing-cr-to-diff-for-crlf.patch") + "0002-Win32-Add-strip-trailing-cr-to-diff-for-crlf.patch" + "0003-MSYS2-Use-OpenBLAS.patch" + "0004-Allow-env-specified-INSTALL_LIB-and-INSTALL_INCLUDE.patch") depends=("${MINGW_PACKAGE_PREFIX}-openblas") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran") md5sums=('b2e6f2373d480aa6f0ea5ca3d5d531c3' - '7af25ee389fb79459615221a58ba465e' - '1773305ad707db5b88d253ea914b975b') + '347ab64c5fd737c44268a6e586ecd156' + '1773305ad707db5b88d253ea914b975b' + 'ed48448a0da066540c0d3c9179865995' + '8fe69f053f4e49768568efc57961523b') prepare() { cd "${srcdir}"/${_realname} patch -p1 -i "${srcdir}"/0001-Win32-Do-not-link-librt.patch patch -p1 -i "${srcdir}"/0002-Win32-Add-strip-trailing-cr-to-diff-for-crlf.patch + patch -p1 -i "${srcdir}"/0003-MSYS2-Use-OpenBLAS.patch + patch -p1 -i "${srcdir}"/0004-Allow-env-specified-INSTALL_LIB-and-INSTALL_INCLUDE.patch } build() { @@ -28,22 +34,31 @@ build() { cp -rf "${srcdir}"/${_realname} build-${CARCH} cd "${srcdir}"/build-${CARCH} - # https://www.gnu.org/software/octave/doc/interpreter/Compiling-Octave-with-64_002dbit-Indexing.html says - # "On 64-bit Windows systems, use -DLONGBLAS="long long" instead.", but that seems wrong. If 64-bit indexing - # is wanted, then long long should be used on 32-bit Windows too I expect (unless LONGBLAS refers to pointer - # size in some instances?) - CFLAGS='-DLONGBLAS="long long"' \ - CXXFLAGS='-DLONGBLAS="long long"' \ - CC=gcc CXX=g++ \ - make -} - -check() { - cd "${srcdir}"/build-${CARCH} - make check + # Make twice due to missing dependencies + # between CHOLMOD/Lib and kluldemo + for _dir in ${PWD}/CHOLMOD/Lib ${PWD}; do + pushd ${_dir} + # https://www.gnu.org/software/octave/doc/interpreter/Compiling-Octave-with-64_002dbit-Indexing.html says + # "On 64-bit Windows systems, use -DLONGBLAS="long long" instead.", but that seems wrong. If 64-bit indexing + # is wanted, then long long should be used on 32-bit Windows too I expect (unless LONGBLAS refers to pointer + # size in some instances?) + CFLAGS='-DLONGBLAS="long long"' \ + CXXFLAGS='-DLONGBLAS="long long"' \ + CC=gcc CXX=g++ \ + make + popd + done } package() { cd "${srcdir}"/build-${CARCH} - make install DESTDIR="${pkgdir}" + + mkdir -p "${pkgdir}"${MINGW_PREFIX}/{lib,include} + make install \ + INSTALL_LIB="${pkgdir}"${MINGW_PREFIX}/lib \ + INSTALL_INCLUDE="${pkgdir}"${MINGW_PREFIX}/include + + # Remove all the version-named static libraries. They'd be symlinks + # on other systems. + find "${pkgdir}"${MINGW_PREFIX} -name "*.*.*.*.a" -exec rm -f {} \; } From de0ce0f349f213033fc9d09ec10bb69a5ac7dbcf Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 2 Feb 2015 21:27:24 +0000 Subject: [PATCH 0453/2060] arpack: Added Is really arpack-ng, without openmpi/parpack compiled in. --- mingw-w64-arpack/PKGBUILD | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 mingw-w64-arpack/PKGBUILD diff --git a/mingw-w64-arpack/PKGBUILD b/mingw-w64-arpack/PKGBUILD new file mode 100644 index 0000000000..e2142e3210 --- /dev/null +++ b/mingw-w64-arpack/PKGBUILD @@ -0,0 +1,41 @@ +# $Id$ +# Maintainer (ArchLinux): Alexander Rødseth +# Contributor (ArchLinux): William Rea +# Contributor (ArchLinux): Stefan Husmann +# Maintainer (MSYS2): Ray Donnelly + +_realname=arpack +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.1.5 +pkgrel=1 +arch=('any') +pkgdesc='Fortran77 subroutines designed to solve large scale eigenvalue problems (mingw-w64)' +url='http://forge.scilab.org/index.php/p/arpack-ng/' +license=('BSD') +depends=("${MINGW_PACKAGE_PREFIX}-openblas") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran") +provides=("${MINGW_PACKAGE_PREFIX}-arpack-ng") +source=("http://forge.scilab.org/upload/$_realname-ng/files/$_realname-ng_$pkgver.tar.gz") +sha256sums=('a269ce7806bc77ced31ef794d23c3e3aff8543b65550fd7e3e24660f2a79d515') + +build() { + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mkdir "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + + "${srcdir}"/${_realname}-ng-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --with-blas=openblas \ + --disable-mpi + make \ + F77="gfortran" +} + +package() { + cd "${srcdir}"/build-${CARCH} + + make DESTDIR="$pkgdir"/ install + install -Dm644 "${srcdir}"/${_realname}-ng-${pkgver}/COPYING \ + "$pkgdir"${MINGW_PREFIX}/share/licenses/$_realname/COPYING +} + +# vim:set ts=2 sw=2 et: From b921dc1c9f4aac25d805dbcb6389825a67dcb3a8 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 2 Feb 2015 21:30:56 +0000 Subject: [PATCH 0454/2060] octave-hg: Tidy up, still WIP --- mingw-w64-octave-hg/0001-Port-to-Qt5.patch | 410 ++++++++++++++++++ ...TAVE_CHECK_LIB-for-suitesparseconfig.patch | 22 + mingw-w64-octave-hg/PKGBUILD | 84 ++-- 3 files changed, 488 insertions(+), 28 deletions(-) create mode 100644 mingw-w64-octave-hg/0001-Port-to-Qt5.patch create mode 100644 mingw-w64-octave-hg/0002-OCTAVE_CHECK_LIB-for-suitesparseconfig.patch diff --git a/mingw-w64-octave-hg/0001-Port-to-Qt5.patch b/mingw-w64-octave-hg/0001-Port-to-Qt5.patch new file mode 100644 index 0000000000..d68f293fb4 --- /dev/null +++ b/mingw-w64-octave-hg/0001-Port-to-Qt5.patch @@ -0,0 +1,410 @@ +--- octave/configure.ac.orig 2015-01-27 13:51:52.182247300 +0000 ++++ octave/configure.ac 2015-01-27 13:52:29.446621600 +0000 +@@ -2787,7 +2787,7 @@ + + warn_gui="" + ## Check for Qt libraries +- QT_MODULES="QtCore QtGui QtNetwork QtOpenGL" ++ QT_MODULES="Qt5Core Qt5Gui Qt5Network Qt5OpenGL Qt5PrintSupport" + PKG_CHECK_MODULES(QT, [$QT_MODULES], + [], + [warn_gui="Qt libraries not found -- disabling GUI" +@@ -2813,18 +2813,18 @@ + ;; + esac + +- ## Check for Qt4 +- if ! `$PKG_CONFIG --atleast-version=4.0.0 QtCore`; then +- warn_gui="Qt >= 4.0.0 not found -- disabling GUI" ++ ## Check for Qt5 ++ if ! `$PKG_CONFIG --atleast-version=5.0.0 Qt5Core`; then ++ warn_gui="Qt >= 5.0.0 not found -- disabling GUI" + build_gui=no + fi + fi + + if test $build_gui = yes; then +- AC_CHECK_TOOLS(MOC, [moc-qt5 moc-qt4 moc]) +- AC_CHECK_TOOLS(UIC, [uic-qt5 uic-qt4 uic]) +- AC_CHECK_TOOLS(RCC, [rcc-qt5 rcc-qt4 rcc]) +- AC_CHECK_TOOLS(LRELEASE, [lrelease-qt5 lrelease-qt4 lrelease]) ++ AC_CHECK_TOOLS(MOC, [moc-qt5 moc moc-qt4]) ++ AC_CHECK_TOOLS(UIC, [uic-qt5 uic uic-qt4]) ++ AC_CHECK_TOOLS(RCC, [rcc-qt5 rcc rcc-qt4]) ++ AC_CHECK_TOOLS(LRELEASE, [lrelease-qt5 lrelease lrelease-qt4]) + if test -n "$MOC" && test -n "$UIC" && test -n "$RCC" && test -n "$LRELEASE"; then + AC_DEFINE(HAVE_QT, 1, + [Define to 1 if Qt is available (libraries, developer header files, utility programs (moc, uic, rcc, and lrelease))]) +diff -urN -x .build octave.orig/libgui/graphics/Canvas.cc octave/libgui/graphics/Canvas.cc +--- octave.orig/libgui/graphics/Canvas.cc 2015-01-27 17:55:25.000000000 +0000 ++++ octave/libgui/graphics/Canvas.cc 2015-01-28 23:27:29.972842100 +0000 +@@ -210,7 +210,7 @@ + QRectF r (bb(0), bb(1), bb(2), bb(3)); + + r.adjust (-5, -5, 5, 5); +- if (r.contains (event->posF ())) ++ if (r.contains (event->localPos ())) + { + currentObj = childObj; + break; +@@ -237,7 +237,7 @@ + Matrix bb = it->get_properties ().get_boundingbox (true); + QRectF r (bb(0), bb(1), bb(2), bb(3)); + +- if (r.contains (event->posF ())) ++ if (r.contains (event->localPos ())) + axesObj = *it; + } + +diff -urN -x .build octave.orig/libgui/graphics/Object.cc octave/libgui/graphics/Object.cc +--- octave.orig/libgui/graphics/Object.cc 2015-01-27 17:55:25.000000000 +0000 ++++ octave/libgui/graphics/Object.cc 2015-01-28 23:30:48.841216700 +0000 +@@ -154,7 +154,7 @@ + QVariant v = obj->property ("QtHandles::Object"); + + if (v.isValid ()) +- return reinterpret_cast (qVariantValue (v)); ++ return reinterpret_cast (v.value ()); + + return 0; + } +diff -urN -x .build octave.orig/libgui/src/find-files-dialog.cc octave/libgui/src/find-files-dialog.cc +--- octave.orig/libgui/src/find-files-dialog.cc 2015-01-27 17:55:25.000000000 +0000 ++++ octave/libgui/src/find-files-dialog.cc 2015-01-28 23:22:22.707267500 +0000 +@@ -125,7 +125,7 @@ + _file_list->horizontalHeader ()->restoreState ( + settings->value ("findfiles/column_state").toByteArray ()); + _file_list->horizontalHeader ()->setSortIndicatorShown (true); +- _file_list->horizontalHeader ()->setClickable (true); ++ _file_list->horizontalHeader ()->setSectionsClickable (true); + _file_list->horizontalHeader ()->setStretchLastSection (true); + _file_list->sortByColumn ( + settings->value ("findfiles/sort_files_by_column",0).toInt (), +diff -urN -x .build octave.orig/libgui/src/m-editor/file-editor.cc octave/libgui/src/m-editor/file-editor.cc +--- octave.orig/libgui/src/m-editor/file-editor.cc 2015-01-27 17:55:25.000000000 +0000 ++++ octave/libgui/src/m-editor/file-editor.cc 2015-01-27 23:38:39.780659200 +0000 +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + #include + + #include "octave-link.h" +diff -urN -x .build octave.orig/libgui/src/m-editor/file-editor-tab.cc octave/libgui/src/m-editor/file-editor-tab.cc +--- octave.orig/libgui/src/m-editor/file-editor-tab.cc 2015-01-27 17:55:25.000000000 +0000 ++++ octave/libgui/src/m-editor/file-editor-tab.cc 2015-01-27 23:33:19.400334500 +0000 +@@ -445,9 +445,8 @@ + bool update_apis_file = false; // flag, whether update of apis files + + // get path to prepared api info +- QDesktopServices desktopServices; + QString prep_apis_path +- = desktopServices.storageLocation (QDesktopServices::HomeLocation) ++ = QStandardPaths::writableLocation (QStandardPaths::HomeLocation) + + "/.config/octave/" + QString(OCTAVE_VERSION) + "/qsci/"; + + // get settings which infos are used for octave +@@ -482,7 +481,7 @@ + // compare to local package list + // FIXME: How to get user chosen location? + QFileInfo local_pkg_list = QFileInfo ( +- desktopServices.storageLocation (QDesktopServices::HomeLocation) ++ QStandardPaths::writableLocation (QStandardPaths::HomeLocation) + + "/.octave_packages"); + if (local_pkg_list.exists () + & (apis_date < local_pkg_list.lastModified ()) ) +@@ -1339,7 +1338,7 @@ + QsciScintilla::EolMode + file_editor_tab::detect_eol_mode () + { +- char *text = _edit_area->text ().toAscii ().data (); ++ char *text = _edit_area->text ().toLatin1 ().data (); + int text_size = _edit_area->text ().length (); + + char eol_lf = 0x0a; +diff -urN -x .build octave.orig/libgui/src/m-editor/find-dialog.cc octave/libgui/src/m-editor/find-dialog.cc +--- octave.orig/libgui/src/m-editor/find-dialog.cc 2015-01-27 17:55:25.000000000 +0000 ++++ octave/libgui/src/m-editor/find-dialog.cc 2015-01-28 21:09:26.778070500 +0000 +@@ -66,6 +66,13 @@ + + #include + #include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include "find-dialog.h" + + find_dialog::find_dialog (QsciScintilla* edit_area, QWidget *p) +diff -urN -x .build octave.orig/libgui/src/octave-gui.cc octave/libgui/src/octave-gui.cc +--- octave.orig/libgui/src/octave-gui.cc 2015-01-27 17:55:25.000000000 +0000 ++++ octave/libgui/src/octave-gui.cc 2015-01-28 21:31:11.839715700 +0000 +@@ -89,7 +89,7 @@ + // Disable all Qt messages by default. + + static void +-message_handler (QtMsgType, const char *) ++message_handler (QtMsgType, const QMessageLogContext&, const QString&) + { + } + +@@ -105,7 +105,7 @@ + + // Installing our handler suppresses the messages. + if (show_gui_msgs.empty ()) +- qInstallMsgHandler (message_handler); ++ qInstallMessageHandler (message_handler); + + if (start_gui) + { +@@ -113,7 +113,7 @@ + QTranslator gui_tr, qt_tr, qsci_tr; + + // Set the codec for all strings (before wizard) +- QTextCodec::setCodecForCStrings (QTextCodec::codecForName ("UTF-8")); ++ QTextCodec::setCodecForLocale (QTextCodec::codecForName ("UTF-8")); + + // show wizard if this is the first run + if (resource_manager::is_first_run ()) +diff -urN -x .build octave.orig/libgui/src/resource-manager.cc octave/libgui/src/resource-manager.cc +--- octave.orig/libgui/src/resource-manager.cc 2015-01-27 17:55:25.000000000 +0000 ++++ octave/libgui/src/resource-manager.cc 2015-01-28 21:33:36.723002600 +0000 +@@ -61,10 +61,8 @@ + : settings_directory (), settings_file (), settings (0), + default_settings (0) + { +- QDesktopServices desktopServices; +- + QString home_path +- = desktopServices.storageLocation (QDesktopServices::HomeLocation); ++ = QStandardPaths::writableLocation (QStandardPaths::HomeLocation); + + settings_directory = home_path + "/.config/octave"; + +diff -urN -x .build octave.orig/libgui/src/resource-manager.h octave/libgui/src/resource-manager.h +--- octave.orig/libgui/src/resource-manager.h 2015-01-27 17:55:25.000000000 +0000 ++++ octave/libgui/src/resource-manager.h 2015-01-27 23:24:11.137975700 +0000 +@@ -24,6 +24,7 @@ + #define RESOURCEMANAGER_H + + #include ++#include + #include + #include + #include +diff -urN -x .build octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src/shortcut-manager.cc +--- octave.orig/libgui/src/shortcut-manager.cc 2015-01-27 17:55:25.000000000 +0000 ++++ octave/libgui/src/shortcut-manager.cc 2015-01-28 23:05:13.501400300 +0000 +@@ -86,7 +86,7 @@ + void + shortcut_manager::do_init_data () + { +- QKeySequence ctrl; ++ Qt::KeyboardModifier ctrl; + int prefix; + #if defined (Q_OS_MAC) + // Use CMD key as an equivalent of Ctrl key on other platforms +@@ -100,15 +100,14 @@ + prefix = Qt::NoModifier; + #endif + +- QKeySequence ctrl_shift = ctrl + Qt::ShiftModifier; +- QKeySequence ctrl_alt = ctrl + Qt::AltModifier; +- ++ Qt::KeyboardModifier shift = Qt::ShiftModifier; ++ + // actions of the main window + + // file + init (tr ("New File"), "main_file:new_file", QKeySequence::New); + init (tr ("New Function"), "main_file:new_function", +- QKeySequence (ctrl_shift + Qt::Key_N)); ++ QKeySequence (ctrl + shift + Qt::Key_N)); + init (tr ("New Figure"), "main_file:new_figure", QKeySequence ()); + init (tr ("Open File"), "main_file:open_file", QKeySequence::Open); + init (tr ("Load Workspace"), "main_file:load_workspace", QKeySequence ()); +@@ -123,7 +122,7 @@ + init (tr ("Select All"), "main_edit:select_all", QKeySequence ()); + init (tr ("Clear Clipboard"), "main_edit:clear_clipboard", QKeySequence ()); + init (tr ("Find in Files"), "main_edit:find_in_files", +- QKeySequence (ctrl_shift + Qt::Key_F)); ++ QKeySequence (ctrl + shift + Qt::Key_F)); + init (tr ("Clear Command Window"), "main_edit:clear_command_window", + QKeySequence ()); + init (tr ("Clear Command History"), "main_edit:clear_history", +@@ -144,17 +143,17 @@ + + // window + init (tr ("Show Command Window"), "main_window:show_command", +- prefix + ctrl_shift + Qt::Key_0); ++ prefix + ctrl + shift + Qt::Key_0); + init (tr ("Show Command History"), "main_window:show_history", +- prefix + ctrl_shift + Qt::Key_1); ++ prefix + ctrl + shift + Qt::Key_1); + init (tr ("Show File Browser"), "main_window:show_file_browser", +- prefix + ctrl_shift + Qt::Key_2); ++ prefix + ctrl + shift + Qt::Key_2); + init (tr ("Show Workspace"), "main_window:show_workspace", +- prefix + ctrl_shift + Qt::Key_3); ++ prefix + ctrl + shift + Qt::Key_3); + init (tr ("Show Editor"), "main_window:show_editor", +- prefix + ctrl_shift + Qt::Key_4); ++ prefix + ctrl + shift + Qt::Key_4); + init (tr ("Show Documentation"), "main_window:show_doc", +- prefix + ctrl_shift + Qt::Key_5); ++ prefix + ctrl + shift + Qt::Key_5); + init (tr ("Command Window"), "main_window:command", + prefix + ctrl + Qt::Key_0); + init (tr ("Command History"), "main_window:history", +@@ -209,15 +208,15 @@ + init (tr ("Delete to End of Word"), "editor_edit:delete_end_word", + QKeySequence::DeleteEndOfWord); + init (tr ("Delete to Start of Line"), "editor_edit:delete_start_line", +- QKeySequence (ctrl_shift + Qt::Key_Backspace)); ++ QKeySequence (ctrl + shift + Qt::Key_Backspace)); + init (tr ("Delete to End of Line"), "editor_edit:delete_end_line", +- QKeySequence (ctrl_shift + Qt::Key_Delete)); ++ QKeySequence (ctrl + shift + Qt::Key_Delete)); + init (tr ("Delete Line"), "editor_edit:delete_line", +- QKeySequence (ctrl_shift + Qt::Key_L)); ++ QKeySequence (ctrl + shift + Qt::Key_L)); + init (tr ("Copy Line"), "editor_edit:copy_line", +- QKeySequence (ctrl_shift + Qt::Key_C)); ++ QKeySequence (ctrl + shift + Qt::Key_C)); + init (tr ("Cut Line"), "editor_edit:cut_line", +- QKeySequence (ctrl_shift + Qt::Key_X)); ++ QKeySequence (ctrl + shift + Qt::Key_X)); + init (tr ("Duplicate Selection/Line"), "editor_edit:duplicate_selection", + QKeySequence (ctrl + Qt::Key_D)); + init (tr ("Transpose Line"), "editor_edit:transpose_line", +@@ -228,22 +227,22 @@ + init (tr ("Comment Selection"), "editor_edit:comment_selection", + QKeySequence (ctrl + Qt::Key_R)); + init (tr ("Uncomment Selection"), "editor_edit:uncomment_selection", +- QKeySequence (ctrl_shift + Qt::Key_R)); ++ QKeySequence (ctrl + shift + Qt::Key_R)); + init (tr ("Uppercase Selection"), "editor_edit:upper_case", + QKeySequence (ctrl + Qt::Key_U)); + init (tr ("Lowercase Selection"), "editor_edit:lower_case", +- QKeySequence (ctrl_alt + Qt::Key_U)); ++ QKeySequence (ctrl + Qt::AltModifier + Qt::Key_U)); + + #if defined (Q_OS_MAC) + init (tr ("Indent Selection"), "editor_edit:indent_selection", + QKeySequence (prefix + Qt::Key_Tab)); + init (tr ("Unindent Selection"), "editor_edit:unindent_selection", +- QKeySequence (prefix + Qt::ShiftModifier + Qt::Key_Tab)); ++ QKeySequence (prefix + shift + Qt::Key_Tab)); + #else + init (tr ("Indent Selection"), "editor_edit:indent_selection", + QKeySequence (ctrl + Qt::Key_Tab)); + init (tr ("Unindent Selection"), "editor_edit:unindent_selection", +- QKeySequence (ctrl_shift + Qt::Key_Tab)); ++ QKeySequence (ctrl + shift + Qt::Key_Tab)); + #endif + + init (tr ("Convert Line Ednings to Windows"), "editor_edit:conv_eol_winows", +@@ -281,7 +280,7 @@ + QKeySequence (ctrl + Qt::Key_Underscore)); + #else + init (tr ("Zoom Normal"), "editor_view:zoom_normal", +- QKeySequence (ctrl_alt + Qt::Key_0)); ++ QKeySequence (ctrl + Qt::AltModifier + Qt::Key_0)); + #endif + + // debug +@@ -336,7 +335,7 @@ + _dialog = 0; + _level_hash.clear (); + +- tree_view->header ()->setResizeMode (QHeaderView::ResizeToContents); ++ tree_view->header ()->setSectionResizeMode (QHeaderView::ResizeToContents); + + QTreeWidgetItem *main = new QTreeWidgetItem (tree_view); + main->setText (0, tr ("Main")); +@@ -402,10 +401,10 @@ + + // write the shortcuts + tree_item->setText (0, sc.description); +- tree_item->setText (1, sc.default_sc [0]); +- tree_item->setText (2, sc.actual_sc [0]); +- tree_item->setText (3, sc.default_sc [1]); +- tree_item->setText (4, sc.actual_sc [1]); ++ tree_item->setText (1, sc.default_sc [0].toString ()); ++ tree_item->setText (2, sc.actual_sc [0].toString ()); ++ tree_item->setText (3, sc.default_sc [1].toString ()); ++ tree_item->setText (4, sc.actual_sc [1].toString ()); + + _item_index_hash[tree_item] = i + 1; // index+1 to avoid 0 + _index_item_hash[i] = tree_item; +@@ -545,8 +544,8 @@ + + } + +- _edit_actual->setText (_sc.at (index).actual_sc[_selected_set]); +- _label_default->setText (_sc.at (index).default_sc[_selected_set]); ++ _edit_actual->setText (_sc.at (index).actual_sc[_selected_set].toString ()); ++ _label_default->setText (_sc.at (index).default_sc[_selected_set].toString ()); + _handled_index = index; + + _edit_actual->setFocus (); +@@ -587,7 +586,7 @@ + shortcut_t double_shortcut = _sc.at (double_index); + double_shortcut.actual_sc[_selected_set] = QKeySequence (); + _sc.replace (double_index, double_shortcut); +- _index_item_hash[double_index]->setText ((_selected_set + 1)*2, QKeySequence ()); ++ _index_item_hash[double_index]->setText ((_selected_set + 1)*2, QKeySequence ().toString ()); + } + else + return; +@@ -600,7 +599,7 @@ + _sc.replace (_handled_index, shortcut); + + _index_item_hash[_handled_index]->setText ((_selected_set + 1)*2, +- shortcut.actual_sc[_selected_set]); ++ shortcut.actual_sc[_selected_set].toString ()); + + if (! shortcut.actual_sc[_selected_set].isEmpty ()) + _shortcut_hash[widget + sep + shortcut.actual_sc[_selected_set].toString ()] = +@@ -628,7 +627,7 @@ + + // update the tree view + QTreeWidgetItem* tree_item = _index_item_hash[i]; // get related tree item +- tree_item->setText (2*set, sc.actual_sc [set-1]); // display new shortcut ++ tree_item->setText (2*set, sc.actual_sc [set-1].toString ()); // display new shortcut + } + } + +@@ -719,6 +718,6 @@ + if(modifiers & Qt::MetaModifier) + key += Qt::META; + +- setText (QKeySequence(key)); ++ setText (QKeySequence(key).toString ()); + } + } +diff -urN -x .build octave.orig/libgui/src/workspace-model.cc octave/libgui/src/workspace-model.cc +--- octave.orig/libgui/src/workspace-model.cc 2015-01-27 17:55:25.000000000 +0000 ++++ octave/libgui/src/workspace-model.cc 2015-01-28 23:23:58.550749500 +0000 +@@ -132,7 +132,7 @@ + { + QString class_chars = resource_manager::storage_class_chars (); + int actual_class +- = class_chars.indexOf (_scopes[idx.row ()].toAscii ()); ++ = class_chars.indexOf (_scopes[idx.row ()].toLatin1 ()); + if (actual_class >= 0) + return QVariant (_storage_class_colors.at (actual_class)); + else +@@ -172,7 +172,7 @@ + QString class_chars = resource_manager::storage_class_chars (); + + int actual_class +- = class_chars.indexOf (_scopes[idx.row ()].toAscii ()); ++ = class_chars.indexOf (_scopes[idx.row ()].toLatin1 ()); + + if (actual_class >= 0) + { diff --git a/mingw-w64-octave-hg/0002-OCTAVE_CHECK_LIB-for-suitesparseconfig.patch b/mingw-w64-octave-hg/0002-OCTAVE_CHECK_LIB-for-suitesparseconfig.patch new file mode 100644 index 0000000000..8113392aed --- /dev/null +++ b/mingw-w64-octave-hg/0002-OCTAVE_CHECK_LIB-for-suitesparseconfig.patch @@ -0,0 +1,22 @@ +--- octave/configure.ac.orig 2015-02-02 12:23:39.496467500 +0000 ++++ octave/configure.ac 2015-02-02 12:46:44.459509600 +0000 +@@ -1512,6 +1512,19 @@ + UMFPACK_TAG="_zi_" + fi + ++### Check for suitespareconfig library .. ++ ++OCTAVE_CHECK_LIB(suitesparseconfig, SUITESPARSECONFIG, ++ [suitesparseconfig library not found. This will result in some lack of functionality for sparse matrices.], ++ [], ++ [SuiteSparse_version], ++ [], [don't use suitesparseconfig library, disable some sparse matrix functionality]) ++ ++### .. it's needed by all the other suitesparse libraries. ++ ++if test x"$SUITESPARSECONFIG_LIBS" != x""; then ++ LIBS="$SUITESPARSECONFIG_LIBS $LIBS" ++fi + ### Check for AMD library + + OCTAVE_CHECK_LIB(amd, AMD, diff --git a/mingw-w64-octave-hg/PKGBUILD b/mingw-w64-octave-hg/PKGBUILD index 65b8ae425b..98c4af594e 100644 --- a/mingw-w64-octave-hg/PKGBUILD +++ b/mingw-w64-octave-hg/PKGBUILD @@ -1,8 +1,9 @@ -# Maintainer: Stefan Husmann -# Contributor: Benjamin van der Burgh +# Maintainer (ArchLinux): Stefan Husmann +# Contributor (ArchLinux): Benjamin van der Burgh # Maintainer (MSYS2): Ray Donnelly _realname=octave-hg +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=r19590.6d75f1683ce8 pkgrel=1 pkgdesc="A high-level language, primarily intended for numerical computations. (mingw-w64)" @@ -16,7 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-fftw>=3.2.2" "${MINGW_PACKAGE_PREFIX}-fltk" "${MINGW_PACKAGE_PREFIX}-hdf5" "${MINGW_PACKAGE_PREFIX}-glpk" -# "${MINGW_PACKAGE_PREFIX}-arpack" + "${MINGW_PACKAGE_PREFIX}-arpack" "${MINGW_PACKAGE_PREFIX}-gl2ps" "${MINGW_PACKAGE_PREFIX}-qrupdate" "${MINGW_PACKAGE_PREFIX}-qscintilla" @@ -26,8 +27,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran" 'pcre' 'mercurial' 'gperf' - 'rsync') -# 'suitesparse-octavecompat' + 'rsync' + # ArchLinux uses suitesparse-octavecompat. + "${MINGW_PACKAGE_PREFIX}-suitesparse") # 'transfig' # 'epstool') # 'texlive-core') @@ -38,41 +40,67 @@ conflicts=('octave') install=octave.install options=('!emptydirs' '!makeflags') source=("git://git.sv.gnu.org/gnulib" - "hg+http://hg.savannah.gnu.org/hgweb/octave") +# "hg+http://hg.savannah.gnu.org/hgweb/octave" + "http://hg.savannah.gnu.org/hgweb/octave/archive/tip.tar.bz2" + "0001-Port-to-Qt5.patch" + "0002-OCTAVE_CHECK_LIB-for-suitesparseconfig.patch") md5sums=('SKIP' - 'SKIP') + '2db4a827e56766c9d0ef91d7ded749a2' + 'c04b89d27e5fe91260e1922f1b17f7f9' + '1e0ee378516c514517f2e4649f171f98') _hgrepo=octave _appver=4.1.0+ provides=("octave=$_appver") -pkgver() { - cd $srcdir/${_hgrepo} - hg update > /dev/null - printf "r%s.%s" "$(hg identify -n)" "$(hg identify -i)" -} +# pkgver() { +# cd $srcdir/${_hgrepo} +# hg update > /dev/null +# printf "r%s.%s" "$(hg identify -n)" "$(hg identify -i)" +# } + +# perpare() { +# cd $srcdir/${_hgrepo} +# patch -p1 -i "${srcdir}"/0001-Port-to-Qt5.patch +# } + +prepare() { + [ -d $srcdir/octave ] && rm -rf "${srcdir}"/octave + mv "${srcdir}"/octave-* "${srcdir}"/octave + cd "${srcdir}"/octave + patch -p1 -i "${srcdir}"/0001-Port-to-Qt5.patch + patch -p1 -i "${srcdir}"/0002-OCTAVE_CHECK_LIB-for-suitesparseconfig.patch + ./bootstrap --no-git --gnulib-srcdir=$srcdir/gnulib + } build() { cd $srcdir/${_hgrepo} - ./bootstrap --no-git --gnulib-srcdir=$srcdir/gnulib - [[ -d .build ]] || mkdir .build - cd .build + [ -d build-${CARCH} ] && rm -rf build-${CARCH} + mkdir build-${CARCH} + cd build-${CARCH} [[ $CARCH == "x86_64" ]] && _arch=amd64 [[ $CARCH == "i686" ]] && _arch=i386 - CXX=g++ CC=gcc ../configure --prefix=/usr \ - --libexecdir=/usr/lib --enable-shared --enable-jit \ - --enable-qhull MOC=moc-qt4 UIC=uic-qt4 --with-umfpack \ - --with-quantum-depth=16 --disable-java \ - --with-java-homedir=/usr/lib/jvm/`archlinux-java get` \ - --with-java-includedir=/usr/lib/jvm/`archlinux-java get`/include \ - --with-java-libdir=/usr/lib/jvm/`archlinux-java get`/lib/${_arch}/server - make clean - CXXFLAGS+="-fexceptions `llvm-config --cxxflags`" make + # Martell is merging a change so that _POSIX_C_SOURCE + # is used instead of _POSIX for *time_r functions. + echo CXXFLAGS is ${CXXFLAGS} + echo CPPFLAGS is ${CPPFLAGS} + # Without setting CXX and CC, libtool ends up deciding + # to use -fno-exceptions -fno-rtti which is a problem + # due to use of dynamic_cast in liboctave/array/Array-s.cc + # (and probably other places). + # see: libtool.m4 line 7972: + # if test -n "$compiler"; then + # _LT_COMPILER_NO_RTTI($1) + CXX=g++ CC=gcc \ + CXXFLAGS+=" -fexceptions `llvm-config --cxxflags` " \ + CPPFLAGS+=" -D_POSIX -D_POSIX_C_SOURCE " \ + ../configure --prefix=${MINGW_PREFIX} \ + --enable-shared --enable-jit \ + --enable-qhull --with-umfpack \ + --with-quantum-depth=16 --disable-java + make } package() { - cd $srcdir/${_hgrepo}/.build + cd $srcdir/${_hgrepo}/build-${CARCH} make DESTDIR=${pkgdir} install - # add octave library path to ld.so.conf.d - install -d "${pkgdir}/etc/ld.so.conf.d" - echo "/usr/lib/${_hgrepo}/${_appver}" > "${pkgdir}/etc/ld.so.conf.d/${_hgrepo}.conf" } From 6c34b9faf3d832e853a747b7da010d7c9c104d18 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 3 Feb 2015 21:49:38 +0000 Subject: [PATCH 0455/2060] nodejs: Add patch to add process.wintoolchain .. which is msvc for Visual Studio and mingw-w64 for mingw-w64. Then check this in node-gyp's configure.js so that make is used as the build system for mingw-w64 compiled node.js, not msvs. --- ...et-as-msvc-or-mingw-w64-for-node-gyp.patch | 72 +++++++++++++++++++ ...form-wintoolset-as-msvc-or-mingw-w64.patch | 72 +++++++++++++++++++ mingw-w64-nodejs/PKGBUILD | 6 +- mingw-w64-octave-hg/PKGBUILD | 13 ---- 4 files changed, 148 insertions(+), 15 deletions(-) create mode 100644 mingw-w64-nodejs/0106-MinGW-w64-add-platform-wintoolset-as-msvc-or-mingw-w64-for-node-gyp.patch create mode 100644 mingw-w64-nodejs/0106-MinGW-w64-add-platform-wintoolset-as-msvc-or-mingw-w64.patch diff --git a/mingw-w64-nodejs/0106-MinGW-w64-add-platform-wintoolset-as-msvc-or-mingw-w64-for-node-gyp.patch b/mingw-w64-nodejs/0106-MinGW-w64-add-platform-wintoolset-as-msvc-or-mingw-w64-for-node-gyp.patch new file mode 100644 index 0000000000..8f81c946b7 --- /dev/null +++ b/mingw-w64-nodejs/0106-MinGW-w64-add-platform-wintoolset-as-msvc-or-mingw-w64-for-node-gyp.patch @@ -0,0 +1,72 @@ +diff -urN x86_64.orig/deps/npm/node_modules/node-gyp/lib/configure.js x86_64/deps/npm/node_modules/node-gyp/lib/configure.js +--- x86_64.orig/deps/npm/node_modules/node-gyp/lib/configure.js 2015-01-16 14:46:11.711250800 +0000 ++++ x86_64/deps/npm/node_modules/node-gyp/lib/configure.js 2015-02-03 01:05:43.082851900 +0000 +@@ -16,9 +16,9 @@ + , extend = require('util')._extend + , spawn = cp.spawn + , execFile = cp.execFile +- , win = process.platform == 'win32' ++ , winMsvc = process.platform == 'win32' && process.wintoolchain == 'msvc' + +-exports.usage = 'Generates ' + (win ? 'MSVC project files' : 'a Makefile') + ' for the current module' ++exports.usage = 'Generates ' + (winMsvc ? 'MSVC project files' : 'a Makefile') + ' for the current module' + + function configure (gyp, argv, callback) { + +@@ -36,7 +36,7 @@ + which(python, function (err, execPath) { + if (err) { + log.verbose('`which` failed', python, err) +- if (win) { ++ if (winMsvc) { + guessPython() + } else { + failNoPython() +@@ -266,7 +266,7 @@ + if (err) return callback(err) + + if (!~argv.indexOf('-f') && !~argv.indexOf('--format')) { +- if (win) { ++ if (winMsvc) { + log.verbose('gyp', 'gyp format was not specified; forcing "msvs"') + // force the 'make' target for non-Windows + argv.push('-f', 'msvs') +@@ -283,7 +283,7 @@ + }) + } + +- if (win && !hasMsvsVersion()) { ++ if (winMsvc && !hasMsvsVersion()) { + if ('msvs_version' in gyp.opts) { + argv.push('-G', 'msvs_version=' + gyp.opts.msvs_version) + } else { +@@ -301,7 +301,7 @@ + var addon_gypi = path.resolve(__dirname, '..', 'addon.gypi') + var common_gypi = path.resolve(nodeDir, 'common.gypi') + var output_dir = 'build' +- if (win) { ++ if (winMsvc) { + // Windows expects an absolute path + output_dir = buildDir + } +diff -urN x86_64.orig/src/node.cc x86_64/src/node.cc +--- x86_64.orig/src/node.cc 2014-12-22 21:22:32.000000000 +0000 ++++ x86_64/src/node.cc 2015-02-03 01:02:41.994856700 +0000 +@@ -2321,6 +2321,17 @@ + // process.platform + process->Set(String::NewSymbol("platform"), String::New(PLATFORM)); + ++#if defined(_WIN32) ++ // distinguish between msvc and mingw-w64 for node-gyp ++ #if defined(_MSC_VER) ++ process->Set(String::NewSymbol("wintoolchain"), String::New("msvc")); ++ #elif defined(__MINGW32__) ++ process->Set(String::NewSymbol("wintoolchain"), String::New("mingw-w64")); ++ #else ++ #error "Cannot determine wintoolchain" ++ #endif ++#endif ++ + // process.argv + Local arguments = Array::New(argc - option_end_index + 1); + arguments->Set(Integer::New(0), String::New(argv[0])); diff --git a/mingw-w64-nodejs/0106-MinGW-w64-add-platform-wintoolset-as-msvc-or-mingw-w64.patch b/mingw-w64-nodejs/0106-MinGW-w64-add-platform-wintoolset-as-msvc-or-mingw-w64.patch new file mode 100644 index 0000000000..8f81c946b7 --- /dev/null +++ b/mingw-w64-nodejs/0106-MinGW-w64-add-platform-wintoolset-as-msvc-or-mingw-w64.patch @@ -0,0 +1,72 @@ +diff -urN x86_64.orig/deps/npm/node_modules/node-gyp/lib/configure.js x86_64/deps/npm/node_modules/node-gyp/lib/configure.js +--- x86_64.orig/deps/npm/node_modules/node-gyp/lib/configure.js 2015-01-16 14:46:11.711250800 +0000 ++++ x86_64/deps/npm/node_modules/node-gyp/lib/configure.js 2015-02-03 01:05:43.082851900 +0000 +@@ -16,9 +16,9 @@ + , extend = require('util')._extend + , spawn = cp.spawn + , execFile = cp.execFile +- , win = process.platform == 'win32' ++ , winMsvc = process.platform == 'win32' && process.wintoolchain == 'msvc' + +-exports.usage = 'Generates ' + (win ? 'MSVC project files' : 'a Makefile') + ' for the current module' ++exports.usage = 'Generates ' + (winMsvc ? 'MSVC project files' : 'a Makefile') + ' for the current module' + + function configure (gyp, argv, callback) { + +@@ -36,7 +36,7 @@ + which(python, function (err, execPath) { + if (err) { + log.verbose('`which` failed', python, err) +- if (win) { ++ if (winMsvc) { + guessPython() + } else { + failNoPython() +@@ -266,7 +266,7 @@ + if (err) return callback(err) + + if (!~argv.indexOf('-f') && !~argv.indexOf('--format')) { +- if (win) { ++ if (winMsvc) { + log.verbose('gyp', 'gyp format was not specified; forcing "msvs"') + // force the 'make' target for non-Windows + argv.push('-f', 'msvs') +@@ -283,7 +283,7 @@ + }) + } + +- if (win && !hasMsvsVersion()) { ++ if (winMsvc && !hasMsvsVersion()) { + if ('msvs_version' in gyp.opts) { + argv.push('-G', 'msvs_version=' + gyp.opts.msvs_version) + } else { +@@ -301,7 +301,7 @@ + var addon_gypi = path.resolve(__dirname, '..', 'addon.gypi') + var common_gypi = path.resolve(nodeDir, 'common.gypi') + var output_dir = 'build' +- if (win) { ++ if (winMsvc) { + // Windows expects an absolute path + output_dir = buildDir + } +diff -urN x86_64.orig/src/node.cc x86_64/src/node.cc +--- x86_64.orig/src/node.cc 2014-12-22 21:22:32.000000000 +0000 ++++ x86_64/src/node.cc 2015-02-03 01:02:41.994856700 +0000 +@@ -2321,6 +2321,17 @@ + // process.platform + process->Set(String::NewSymbol("platform"), String::New(PLATFORM)); + ++#if defined(_WIN32) ++ // distinguish between msvc and mingw-w64 for node-gyp ++ #if defined(_MSC_VER) ++ process->Set(String::NewSymbol("wintoolchain"), String::New("msvc")); ++ #elif defined(__MINGW32__) ++ process->Set(String::NewSymbol("wintoolchain"), String::New("mingw-w64")); ++ #else ++ #error "Cannot determine wintoolchain" ++ #endif ++#endif ++ + // process.argv + Local arguments = Array::New(argc - option_end_index + 1); + arguments->Set(Integer::New(0), String::New(argv[0])); diff --git a/mingw-w64-nodejs/PKGBUILD b/mingw-w64-nodejs/PKGBUILD index 01e4efe712..70d7d7c112 100644 --- a/mingw-w64-nodejs/PKGBUILD +++ b/mingw-w64-nodejs/PKGBUILD @@ -3,10 +3,9 @@ # Contributor: David Macek _realname=nodejs - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.10.35 -pkgrel=4 +pkgrel=5 pkgdesc="Evented I/O for V8 javascript (mingw-w64)" arch=('any') url="http://nodejs.org/" @@ -41,6 +40,7 @@ source=("http://nodejs.org/dist/v${pkgver}/node-v${pkgver}.tar.gz" "0103-Mat_Sutcliffe-node_mingw64-MSYS-path-conversion.patch" "0104-Use-system-gyp.patch" "0105-Add-gyp-debug-option-to-configure.patch" + "0106-MinGW-w64-add-platform-wintoolset-as-msvc-or-mingw-w64-for-node-gyp.patch" "0200-v8-3.26.33-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch" "0201-v8-3.26.33-Include-win32-headers-h-then-undef-MemoryBarrier.patch" @@ -63,6 +63,7 @@ md5sums=('2c00d8cf243753996eecdc4f6e2a2d11' '64bcb6ddfdd7863f10a302dedbe13d85' 'c79481c9c5010e4bcd7b4389cf44b7f9' '63013c0eeaee90e0985266fba9023a3e' + '6274ba9c699f62da783b6d2a0446e2ae' 'dd82d12b16a416470bf73b56f0684163' '9828f204d7068faa656b83c738b67f5e' '0be71da4648801fba9aef222919cf611' @@ -94,6 +95,7 @@ prepare() { # patch -p1 -i "${srcdir}"/0103-Mat_Sutcliffe-node_mingw64-MSYS-path-conversion.patch patch -p1 -i "${srcdir}"/0104-Use-system-gyp.patch patch -p1 -i "${srcdir}"/0105-Add-gyp-debug-option-to-configure.patch + patch -p1 -i "${srcdir}"/0106-MinGW-w64-add-platform-wintoolset-as-msvc-or-mingw-w64-for-node-gyp.patch pushd deps/v8 patch -p1 -i "${srcdir}"/0200-v8-3.26.33-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch diff --git a/mingw-w64-octave-hg/PKGBUILD b/mingw-w64-octave-hg/PKGBUILD index 98c4af594e..32c9ba51b3 100644 --- a/mingw-w64-octave-hg/PKGBUILD +++ b/mingw-w64-octave-hg/PKGBUILD @@ -79,19 +79,6 @@ build() { cd build-${CARCH} [[ $CARCH == "x86_64" ]] && _arch=amd64 [[ $CARCH == "i686" ]] && _arch=i386 - # Martell is merging a change so that _POSIX_C_SOURCE - # is used instead of _POSIX for *time_r functions. - echo CXXFLAGS is ${CXXFLAGS} - echo CPPFLAGS is ${CPPFLAGS} - # Without setting CXX and CC, libtool ends up deciding - # to use -fno-exceptions -fno-rtti which is a problem - # due to use of dynamic_cast in liboctave/array/Array-s.cc - # (and probably other places). - # see: libtool.m4 line 7972: - # if test -n "$compiler"; then - # _LT_COMPILER_NO_RTTI($1) - CXX=g++ CC=gcc \ - CXXFLAGS+=" -fexceptions `llvm-config --cxxflags` " \ CPPFLAGS+=" -D_POSIX -D_POSIX_C_SOURCE " \ ../configure --prefix=${MINGW_PREFIX} \ --enable-shared --enable-jit \ From fe40956b45d0853938da6ad6983ba79c52d316bc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 4 Feb 2015 12:08:05 +0300 Subject: [PATCH 0456/2060] SDL: Rebuild. --- mingw-w64-SDL/PKGBUILD | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mingw-w64-SDL/PKGBUILD b/mingw-w64-SDL/PKGBUILD index 3718f61913..ef0c4e3be8 100644 --- a/mingw-w64-SDL/PKGBUILD +++ b/mingw-w64-SDL/PKGBUILD @@ -3,7 +3,7 @@ _realname=SDL pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2.15 -pkgrel=4 +pkgrel=5 pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (mingw-w64)" arch=('any') url="http://libsdl.org" @@ -26,8 +26,6 @@ build() { } package() { - mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" - cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install sed -e "s|-mwindows||g" -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/sdl.pc From c4bc5a36b75b4a455dc922647730504a79fce88f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 4 Feb 2015 12:08:29 +0300 Subject: [PATCH 0457/2060] SDL_image: New package. --- mingw-w64-SDL_image/PKGBUILD | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 mingw-w64-SDL_image/PKGBUILD diff --git a/mingw-w64-SDL_image/PKGBUILD b/mingw-w64-SDL_image/PKGBUILD new file mode 100644 index 0000000000..20cbd5f87a --- /dev/null +++ b/mingw-w64-SDL_image/PKGBUILD @@ -0,0 +1,41 @@ +# Maintainer: Marty Plummer (The_NetZ) + +_realname=SDL_image +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgver=1.2.12 +pkgrel=2 +pkgdesc=("A simple library to load images of various formats as SDL surfaces (mingw-w64)") +arch=('any') +url="http://www.libsdl.org/projects/SDL_image" +license=('MIT') +depends=("${MINGW_PACKAGE_PREFIX}-SDL" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +source=("${url}/release/${_realname}-${pkgver}.tar.gz") +sha1sums=('5e3e393d4e366638048bbb10d6a269ea3f4e4cf2') + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}/" + "${srcdir}"/${_realname}-${pkgver}/configure \ + --disable-static \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}/" + + make DESTDIR="${pkgdir}/" install + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \ + "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From 9fef6ac7b6f22f1efc34e1da3790dcf0128f7015 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 4 Feb 2015 12:09:39 +0300 Subject: [PATCH 0458/2060] SDL_ttf: New package. --- mingw-w64-SDL_ttf/PKGBUILD | 36 +++++++++++++++++++++++++++++++++ mingw-w64-SDL_ttf/bug1433.patch | 11 ++++++++++ 2 files changed, 47 insertions(+) create mode 100644 mingw-w64-SDL_ttf/PKGBUILD create mode 100644 mingw-w64-SDL_ttf/bug1433.patch diff --git a/mingw-w64-SDL_ttf/PKGBUILD b/mingw-w64-SDL_ttf/PKGBUILD new file mode 100644 index 0000000000..4ff202cb57 --- /dev/null +++ b/mingw-w64-SDL_ttf/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: Alexey Pavlov + +_realname=SDL_ttf +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.0.11 +pkgrel=1 +pkgdesc="A library that allows you to use TrueType fonts in your SDL applications (mingw-w64)" +arch=('any') +url="http://www.libsdl.org/projects/SDL_ttf/" +license=("custom") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-SDL" "${MINGW_PACKAGE_PREFIX}-freetype") +options=('staticlibs' 'strip') +source=(http://www.libsdl.org/projects/SDL_ttf/release/${_realname}-$pkgver.tar.gz + bug1433.patch) +md5sums=('61e29bd9da8d245bc2471d1b2ce591aa' + '52d4ce6ec81588cba9fb9f3ff57a4e92') + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "${srcdir}"/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install + install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} diff --git a/mingw-w64-SDL_ttf/bug1433.patch b/mingw-w64-SDL_ttf/bug1433.patch new file mode 100644 index 0000000000..819fcc4586 --- /dev/null +++ b/mingw-w64-SDL_ttf/bug1433.patch @@ -0,0 +1,11 @@ +--- a/SDL_ttf.c 2012-02-12 16:36:41.859977617 +0100 ++++ b/SDL_ttf.c 2012-02-12 16:36:53.696580159 +0100 +@@ -1747,7 +1747,7 @@ + /* Copy the character from the pixmap */ + src = glyph->pixmap.buffer; + dst = (Uint8*) textbuf->pixels; +- for ( row = 0; row < glyph->bitmap.rows; ++row ) { ++ for ( row = 0; row < glyph->pixmap.rows; ++row ) { + memcpy( dst, src, glyph->pixmap.width ); + src += glyph->pixmap.pitch; + dst += textbuf->pitch; From cd7b6adf15e5ed39eb60c6bb75a8b38f5c10735b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 4 Feb 2015 12:37:08 +0300 Subject: [PATCH 0459/2060] SDL_gfx: New package. --- mingw-w64-SDL_gfx/PKGBUILD | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 mingw-w64-SDL_gfx/PKGBUILD diff --git a/mingw-w64-SDL_gfx/PKGBUILD b/mingw-w64-SDL_gfx/PKGBUILD new file mode 100644 index 0000000000..e1fad79a4a --- /dev/null +++ b/mingw-w64-SDL_gfx/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: Marty Plummer (The_NetZ) + +_realname=SDL_gfx +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgver=2.0.25 +pkgrel=1 +pkgdesc="SDL Graphic Primitives (mingw-w64)" +arch=('any') +url="http://www.ferzkopp.net/joomla/software-mainmenu-14/4-ferzkopps-linux-software/19-sdlgfx" +license=('LGPL') +depends=("${MINGW_PACKAGE_PREFIX}-SDL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +source=("http://www.ferzkopp.net/Software/SDL_gfx-2.0/${_realname}-${pkgver}.tar.gz") +sha1sums=('20a89d0b71b7b790b830c70f17ed2c44100bc0f4') + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}/" + "${srcdir}"/${_realname}-${pkgver}/configure \ + --disable-static \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}/" + + make DESTDIR="${pkgdir}/" install + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \ + "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From 93dc9a00952007d8889657df73ab25cb12eda5ab Mon Sep 17 00:00:00 2001 From: Francisco Demartino Date: Wed, 4 Feb 2015 12:53:53 -0300 Subject: [PATCH 0460/2060] opusfile: New package --- mingw-w64-opusfile/PKGBUILD | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 mingw-w64-opusfile/PKGBUILD diff --git a/mingw-w64-opusfile/PKGBUILD b/mingw-w64-opusfile/PKGBUILD new file mode 100644 index 0000000000..b7d56fc368 --- /dev/null +++ b/mingw-w64-opusfile/PKGBUILD @@ -0,0 +1,41 @@ +# Maintainer: Francisco Demartino + +_projectname=opus +_realname=opusfile +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.6 +pkgrel=1 +pkgdesc='Library for opening, seeking, and decoding .opus files' +arch=('any') +url="https://www.opus-codec.org/" +license=("BSD") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +options=('strip' 'staticlibs') +source=("https://ftp.mozilla.org/pub/mozilla.org/${_projectname}/${_realname}-${pkgver}.tar.gz") + +md5sums=('3d6705e66375f6205dffdd63b2ad3538') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" +} + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-custom-modes \ + --disable-static + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + + # Install license + #install -m644 ${srcdir}/${_realname}-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE +} From 87800766693b5c1f97ade69adb2c2de39bf7ff37 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 4 Feb 2015 21:47:47 +0300 Subject: [PATCH 0461/2060] ogre3d-hg: Update to latest from 1.9.0 branch --- .../004-use-mingw-w64-directx.patch | 52 +++++++++++++++---- mingw-w64-ogre3d-hg/PKGBUILD | 13 +++-- 2 files changed, 47 insertions(+), 18 deletions(-) diff --git a/mingw-w64-ogre3d-hg/004-use-mingw-w64-directx.patch b/mingw-w64-ogre3d-hg/004-use-mingw-w64-directx.patch index c225c0e29a..235ab77957 100644 --- a/mingw-w64-ogre3d-hg/004-use-mingw-w64-directx.patch +++ b/mingw-w64-ogre3d-hg/004-use-mingw-w64-directx.patch @@ -5,7 +5,7 @@ #include #include -#include -+#include ++#include namespace Ogre @@ -16,10 +16,21 @@ find_library(DirectX9_LIBRARY NAMES d3d9 HINTS ${DirectX9_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX9_LIBPATH_SUFFIX}) find_library(DirectX9_D3DX9_LIBRARY NAMES d3dx9 HINTS ${DirectX9_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX9_LIBPATH_SUFFIX}) - find_library(DirectX9_DXERR_LIBRARY NAMES DxErr HINTS ${DirectX9_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX9_LIBPATH_SUFFIX}) -+ find_library(DirectX9_DXERR_LIBRARY NAMES DxErr9 HINTS ${DirectX9_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX9_LIBPATH_SUFFIX}) ++ find_library(DirectX9_DXERR_LIBRARY NAMES DxErr dxerr9 HINTS ${DirectX9_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX9_LIBPATH_SUFFIX}) find_library(DirectX9_DXGUID_LIBRARY NAMES dxguid HINTS ${DirectX9_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX9_LIBPATH_SUFFIX}) findpkg_finish(DirectX9) +--- ogre3d-1.9.0/CMake/Packages/FindDirectX11.cmake.orig 2013-12-20 22:02:56.585400000 +0400 ++++ ogre3d-1.9.0/CMake/Packages/FindDirectX11.cmake 2013-12-20 22:02:59.674200000 +0400 +@@ -82,7 +82,7 @@ + + # look for D3D11 components + find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS ${DirectX11_INC_SEARCH_PATH}) +- find_library(DirectX11_DXERR_LIBRARY NAMES DxErr HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX}) ++ find_library(DirectX11_DXERR_LIBRARY NAMES DxErr dxerr9 HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX}) + find_library(DirectX11_DXGUID_LIBRARY NAMES dxguid HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX}) + find_library(DirectX11_DXGI_LIBRARY NAMES dxgi HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX}) + find_library(DirectX11_D3DCOMPILER_LIBRARY NAMES d3dcompiler HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX}) --- ogre3d-1.9.0/RenderSystems/Direct3D9/src/OgreD3D9HardwareIndexBuffer.cpp.orig 2013-12-21 00:19:04.505600000 +0400 +++ ogre3d-1.9.0/RenderSystems/Direct3D9/src/OgreD3D9HardwareIndexBuffer.cpp 2013-12-21 00:19:43.776800000 +0400 @@ -294,7 +294,7 @@ @@ -116,24 +127,43 @@ OGRE_EXCEPT( Exception::ERR_RENDERINGAPI_ERROR, "Error CreateDepthStencilSurface : " + msg, "D3D9RenderSystem::_createDepthBufferFor" ); -@@ -3110,14 +3110,14 @@ - hr = getActiveD3D9Device()->SetRenderTarget(x, pBack[x]); - if (FAILED(hr)) +@@ -3131,7 +3131,7 @@ + } + else if (FAILED(hr)) { - String msg = DXGetErrorDescription(hr); + String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to setRenderTarget : " + msg, "D3D9RenderSystem::_setViewport" ); + OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to GetRenderTarget : " + msg, "D3D9RenderSystem::_setRenderTarget" ); } } - hr = getActiveD3D9Device()->SetDepthStencilSurface( depthSurface ); +@@ -3153,7 +3153,7 @@ + hr = activeDevice->SetRenderTarget( iOldRt, NULL ); + if (FAILED(hr)) + { +- String msg = DXGetErrorDescription(hr); ++ String msg = DXGetErrorDescription9(hr); + OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to SetRenderTarget(NULL) : " + msg, "D3D9RenderSystem::_setRenderTarget" ); + } + } +@@ -3161,7 +3161,7 @@ + hr = activeDevice->SetRenderTarget( iRt, rt ); + if (FAILED(hr)) + { +- String msg = DXGetErrorDescription(hr); ++ String msg = DXGetErrorDescription9(hr); + OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to SetRenderTarget : " + msg, "D3D9RenderSystem::_setRenderTarget" ); + } + } +@@ -3169,7 +3169,7 @@ + hr = activeDevice->SetDepthStencilSurface( depthSurface ); if (FAILED(hr)) { - String msg = DXGetErrorDescription(hr); + String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to setDepthStencil : " + msg, "D3D9RenderSystem::_setViewport" ); + OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to setDepthStencil : " + msg, "D3D9RenderSystem::_setRenderTarget" ); } } -@@ -3182,7 +3182,7 @@ +@@ -3234,7 +3234,7 @@ if( FAILED( hr = getActiveD3D9Device()->BeginScene() ) ) { @@ -142,7 +172,7 @@ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Error beginning frame :" + msg, "D3D9RenderSystem::_beginFrame" ); } -@@ -3532,7 +3532,7 @@ +@@ -3584,7 +3584,7 @@ if( FAILED( hr ) ) { @@ -151,7 +181,7 @@ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to DrawPrimitive : " + msg, "D3D9RenderSystem::_render" ); } -@@ -3906,7 +3906,7 @@ +@@ -3958,7 +3958,7 @@ depth, stencil ) ) ) { diff --git a/mingw-w64-ogre3d-hg/PKGBUILD b/mingw-w64-ogre3d-hg/PKGBUILD index 63ed1061c6..bb2fcfd927 100644 --- a/mingw-w64-ogre3d-hg/PKGBUILD +++ b/mingw-w64-ogre3d-hg/PKGBUILD @@ -2,10 +2,10 @@ _realname=ogre3d pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-hg" -_rev=r6858.dd4dd5572adc +_rev=r6969.f40744b1106a _base_ver=1.9.0 pkgver=${_base_ver}.${_rev} -pkgrel=2 +pkgrel=1 pkgdesc="A cross-platform 3D game engine (mingw-w64)" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -35,12 +35,12 @@ source=("${_realname}-${pkgver}.tar.xz"{,.sig} 005-mingw-w64-redeclarations.patch 006-cmake-wrong-command.patch 007-fix-_WIN32-defines2.patch) -md5sums=('43ef5dcd7f157debc8a66994a221ab0d' +md5sums=('d6f82c8a9ef9b82947d0ce388be9ff74' 'SKIP' 'a2cbfc846906bbb80c7b05d2d60a2779' '3c00c5584a8edcb4dc07a57697a73d59' '166486655cd358be175f3b32b63e0ca5' - '07a29692ee7b30b90c8388af865078da' + 'ee355ac6d4a271721407f030e34b5651' '56477180dc083746de83ea2aae3efd90' '31dbe883b2d9d03e767e2e2e7365795e' '9af326a7f9c7863e25ea265de4a2a223') @@ -99,7 +99,7 @@ build() { CFLAGS+=" -O3 -fno-devirtualize" CXXFLAGS+=" -O3 -fno-devirtualize" - export DXSDK_DIR=${PREFIX_DEPS}/${MINGW_CHOST} + export DXSDK_DIR=${MINGW_PREFIX}/${MINGW_CHOST} mkdir ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ @@ -109,9 +109,8 @@ build() { -DOGRE_COPY_DEPENDENCIES=OFF \ -DOGRE_INSTALL_DEPENDENCIES=OFF \ -DOGRE_BUILD_RENDERSYSTEM_D3D9=ON \ - -DOGRE_BUILD_RENDERSYSTEM_D3D11=OFF \ + -DOGRE_BUILD_RENDERSYSTEM_D3D11=ON \ -DFREETYPE_FT2BUILD_INCLUDE_DIR=${MINGW_PREFIX}/include/freetype2 \ - -DDirectX9_DXERR_LIBRARY=${MINGW_PREFIX}/${MINGW_CHOST}/lib/libdxerr9.a \ "${extra_config[@]}" \ ../${_realname}-${pkgver} From 09fa4f99efa43e241eac7ce5baf93b12c84156db Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Feb 2015 00:04:40 +0300 Subject: [PATCH 0462/2060] cmake: Fix detecting openssl 1.0.2 --- mingw-w64-cmake/PKGBUILD | 9 ++-- mingw-w64-cmake/fix-openssl.patch | 76 +++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-cmake/fix-openssl.patch diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index eed6f51e3b..2f83c9dc5f 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -3,7 +3,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.1.1 -pkgrel=1 +pkgrel=2 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -20,12 +20,14 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" "wxWidgets-module.patch" - "qt5-static-plugin-support.patch") + "qt5-static-plugin-support.patch" + "fix-openssl.patch") md5sums=('0ae4f25dbec66697c0c3cec1b9e885ae' '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' '09ea9092ca85e482de79886bd0c09144' - '6461b89ff7d1ca0c4022801dff8475a7') + '6461b89ff7d1ca0c4022801dff8475a7' + '6e7853ca9d495a06615cb8049d4434ee') prepare() { cd ${_realname}-${pkgver} @@ -33,6 +35,7 @@ prepare() { patch -Np1 -i ${srcdir}/dont-install-bundle.patch patch -Np1 -i ${srcdir}/wxWidgets-module.patch patch -Np1 -i ${srcdir}/qt5-static-plugin-support.patch + patch -Np1 -i ${srcdir}/fix-openssl.patch } build() { diff --git a/mingw-w64-cmake/fix-openssl.patch b/mingw-w64-cmake/fix-openssl.patch new file mode 100644 index 0000000000..208471a381 --- /dev/null +++ b/mingw-w64-cmake/fix-openssl.patch @@ -0,0 +1,76 @@ +X-Git-Url: http://www.cmake.org/gitweb?p=cmake.git;a=blobdiff_plain;f=Modules%2FFindOpenSSL.cmake;h=3adc2692622e459a175f31d5b2a54619ec8164f2;hp=bfbe01f59090ed096ba81e95f2d125d2d53b2179;hb=27da8cf2d3ddf34acd9eeccf630d83ccbf89cd38;hpb=081c724ccb82ed1bae3f629f4b6f0b3afc79fdfc + +diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake +index bfbe01f..3adc269 100644 +--- a/Modules/FindOpenSSL.cmake ++++ b/Modules/FindOpenSSL.cmake +@@ -285,7 +285,7 @@ endfunction() + if (OPENSSL_INCLUDE_DIR) + if(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h") + file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str +- REGEX "^#define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*") ++ REGEX "^# *define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*") + + # The version number is encoded as 0xMNNFFPPS: major minor fix patch status + # The status gives if this is a developer or prerelease and is ignored here. +X-Git-Url: http://www.cmake.org/gitweb?p=cmake.git;a=blobdiff_plain;f=Modules%2FFindOpenSSL.cmake;h=3adc2692622e459a175f31d5b2a54619ec8164f2;hp=6b4f9853c01f64b94bfec3ff51da8789af63a07e;hb=27da8cf2d3ddf34acd9eeccf630d83ccbf89cd38;hpb=c5d9a8283cfac15b4a5a07f18d5eb10c1f388505 + +diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake +index 6b4f985..3adc269 100644 +--- a/Modules/FindOpenSSL.cmake ++++ b/Modules/FindOpenSSL.cmake +@@ -16,10 +16,12 @@ + # + # :: + # +-# OPENSSL_FOUND - system has the OpenSSL library +-# OPENSSL_INCLUDE_DIR - the OpenSSL include directory +-# OPENSSL_LIBRARIES - The libraries needed to use OpenSSL +-# OPENSSL_VERSION - This is set to $major.$minor.$revision$path (eg. 0.9.8s) ++# OPENSSL_FOUND - System has the OpenSSL library ++# OPENSSL_INCLUDE_DIR - The OpenSSL include directory ++# OPENSSL_CRYPTO_LIBRARY - The OpenSSL crypto library ++# OPENSSL_SSL_LIBRARY - The OpenSSL SSL library ++# OPENSSL_LIBRARIES - All OpenSSL libraries ++# OPENSSL_VERSION - This is set to $major.$minor.$revision$patch (eg. 0.9.8s) + + #============================================================================= + # Copyright 2006-2009 Kitware, Inc. +@@ -153,6 +155,8 @@ if(WIN32 AND NOT CYGWIN) + + mark_as_advanced(LIB_EAY_LIBRARY_DEBUG LIB_EAY_LIBRARY_RELEASE + SSL_EAY_LIBRARY_DEBUG SSL_EAY_LIBRARY_RELEASE) ++ set( OPENSSL_SSL_LIBRARY ${SSL_EAY_LIBRARY} ) ++ set( OPENSSL_CRYPTO_LIBRARY ${LIB_EAY_LIBRARY} ) + set( OPENSSL_LIBRARIES ${SSL_EAY_LIBRARY} ${LIB_EAY_LIBRARY} ) + elseif(MINGW) + # same player, for MinGW +@@ -181,6 +185,8 @@ if(WIN32 AND NOT CYGWIN) + ) + + mark_as_advanced(SSL_EAY LIB_EAY) ++ set( OPENSSL_SSL_LIBRARY ${SSL_EAY} ) ++ set( OPENSSL_CRYPTO_LIBRARY ${LIB_EAY} ) + set( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} ) + unset(LIB_EAY_NAMES) + unset(SSL_EAY_NAMES) +@@ -207,6 +213,8 @@ if(WIN32 AND NOT CYGWIN) + ) + + mark_as_advanced(SSL_EAY LIB_EAY) ++ set( OPENSSL_SSL_LIBRARY ${SSL_EAY} ) ++ set( OPENSSL_CRYPTO_LIBRARY ${LIB_EAY} ) + set( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} ) + endif() + else() +@@ -275,9 +283,7 @@ function(from_hex HEX DEC) + endfunction() + + if (OPENSSL_INCLUDE_DIR) +- if (_OPENSSL_VERSION) +- set(OPENSSL_VERSION "${_OPENSSL_VERSION}") +- elseif(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h") ++ if(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h") + file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str + REGEX "^# *define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*") + From 5e4ad22bd89297a0d438b602c764f088efd9b628 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Feb 2015 00:05:45 +0300 Subject: [PATCH 0463/2060] opusfile: Fix dependencies. Build static libraries too. --- mingw-w64-opusfile/PKGBUILD | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/mingw-w64-opusfile/PKGBUILD b/mingw-w64-opusfile/PKGBUILD index b7d56fc368..b0275ebd08 100644 --- a/mingw-w64-opusfile/PKGBUILD +++ b/mingw-w64-opusfile/PKGBUILD @@ -1,18 +1,19 @@ # Maintainer: Francisco Demartino -_projectname=opus _realname=opusfile pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.6 pkgrel=1 -pkgdesc='Library for opening, seeking, and decoding .opus files' +pkgdesc="Library for opening, seeking, and decoding .opus files (mingw-w64)" arch=('any') url="https://www.opus-codec.org/" license=("BSD") +depends=("${MINGW_PACKAGE_PREFIX}-libogg" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-opus") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('strip' 'staticlibs') -source=("https://ftp.mozilla.org/pub/mozilla.org/${_projectname}/${_realname}-${pkgver}.tar.gz") - +source=("https://ftp.mozilla.org/pub/mozilla.org/opus/${_realname}-${pkgver}.tar.gz") md5sums=('3d6705e66375f6205dffdd63b2ad3538') prepare() { @@ -27,8 +28,9 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --enable-custom-modes \ - --disable-static + --enable-shared \ + --enable-static + make } @@ -37,5 +39,5 @@ package() { make DESTDIR="${pkgdir}" install # Install license - #install -m644 ${srcdir}/${_realname}-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } From 81c69015b6acbc4e8062607799bf94c25be4ae9d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Feb 2015 00:06:24 +0300 Subject: [PATCH 0464/2060] libgit2: Update to 0.21.5 --- mingw-w64-libgit2/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgit2/PKGBUILD b/mingw-w64-libgit2/PKGBUILD index d86c987996..5f72ee0300 100644 --- a/mingw-w64-libgit2/PKGBUILD +++ b/mingw-w64-libgit2/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgit2 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=0.21.2 +pkgver=0.21.5 pkgrel=1 pkgdesc='A linkable library for Git (mingw-w64)' arch=('any') @@ -11,7 +11,7 @@ license=('GPL2' 'custom') _pkgfqn=v${pkgver}.tar.gz source=("https://github.com/libgit2/libgit2/archive/${_pkgfqn}" 001-fix-pkg-config.patch) -md5sums=('78848987afcde08c9954f17370dc0a8c' +md5sums=('6f1d64b2d50239f0c518cb45fbe3da4a' '341f5b8f48d1a489b157dc5300628960') options=('strip') depends=("${MINGW_PACKAGE_PREFIX}-http-parser" From 215130ebe1f01a5f34dfbad17b19db6f6740978d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 4 Feb 2015 23:40:00 +0000 Subject: [PATCH 0465/2060] suitesparse: Add staticlibs option --- mingw-w64-suitesparse/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-suitesparse/PKGBUILD b/mingw-w64-suitesparse/PKGBUILD index 239e446b63..8d2117b910 100644 --- a/mingw-w64-suitesparse/PKGBUILD +++ b/mingw-w64-suitesparse/PKGBUILD @@ -15,6 +15,7 @@ source=("http://faculty.cse.tamu.edu/davis/${_realname}/${_realname}-${pkgver}.t "0004-Allow-env-specified-INSTALL_LIB-and-INSTALL_INCLUDE.patch") depends=("${MINGW_PACKAGE_PREFIX}-openblas") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran") +options=('staticlibs') md5sums=('b2e6f2373d480aa6f0ea5ca3d5d531c3' '347ab64c5fd737c44268a6e586ecd156' '1773305ad707db5b88d253ea914b975b' From ca98428aa82e8ac1620b8cd77724ba91ff379a7c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 4 Feb 2015 23:41:08 +0000 Subject: [PATCH 0466/2060] octave-hg: Patch for gnulib using 'try' identifier Since that's a C++ keyword --- .../0001-tempname.h-Rename-try-to-try_.patch | 24 +++++++++++++++++++ mingw-w64-octave-hg/PKGBUILD | 8 ++++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-octave-hg/0001-tempname.h-Rename-try-to-try_.patch diff --git a/mingw-w64-octave-hg/0001-tempname.h-Rename-try-to-try_.patch b/mingw-w64-octave-hg/0001-tempname.h-Rename-try-to-try_.patch new file mode 100644 index 0000000000..2f09a4f6e8 --- /dev/null +++ b/mingw-w64-octave-hg/0001-tempname.h-Rename-try-to-try_.patch @@ -0,0 +1,24 @@ +From 2a308d0791f653220a22b824abe436860ce3519c Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 4 Feb 2015 23:11:31 +0000 +Subject: [PATCH] tempname.h: Rename try to try_ + +--- + lib/tempname.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/tempname.h b/lib/tempname.h +index f7c98d0..158c22e 100644 +--- a/lib/tempname.h ++++ b/lib/tempname.h +@@ -52,6 +52,6 @@ extern int gen_tempname (char *tmpl, int suffixlen, int flags, int kind); + returns with this value. Otherwise, if errno is set to EEXIST, another + name is tried, or else TRY_GEN_TEMPNAME returns -1. */ + extern int try_tempname(char *tmpl, int suffixlen, void *args, +- int (*try) (char *, void *)); ++ int (*try_) (char *, void *)); + + #endif /* GL_TEMPNAME_H */ +-- +2.2.2 + diff --git a/mingw-w64-octave-hg/PKGBUILD b/mingw-w64-octave-hg/PKGBUILD index 32c9ba51b3..fc53d52419 100644 --- a/mingw-w64-octave-hg/PKGBUILD +++ b/mingw-w64-octave-hg/PKGBUILD @@ -42,10 +42,14 @@ options=('!emptydirs' '!makeflags') source=("git://git.sv.gnu.org/gnulib" # "hg+http://hg.savannah.gnu.org/hgweb/octave" "http://hg.savannah.gnu.org/hgweb/octave/archive/tip.tar.bz2" + # gnulib + "0001-tempname.h-Rename-try-to-try_.patch" + # octave "0001-Port-to-Qt5.patch" "0002-OCTAVE_CHECK_LIB-for-suitesparseconfig.patch") md5sums=('SKIP' - '2db4a827e56766c9d0ef91d7ded749a2' + '7c9aa6e917408889d85933b72a562fb1' + 'a3daca07660767db23de75bb5e087bfa' 'c04b89d27e5fe91260e1922f1b17f7f9' '1e0ee378516c514517f2e4649f171f98') _hgrepo=octave @@ -66,6 +70,8 @@ provides=("octave=$_appver") prepare() { [ -d $srcdir/octave ] && rm -rf "${srcdir}"/octave mv "${srcdir}"/octave-* "${srcdir}"/octave + cd "${srcdir}"/gnulib + patch -p1 -i "${srcdir}"/0001-tempname.h-Rename-try-to-try_.patch cd "${srcdir}"/octave patch -p1 -i "${srcdir}"/0001-Port-to-Qt5.patch patch -p1 -i "${srcdir}"/0002-OCTAVE_CHECK_LIB-for-suitesparseconfig.patch From 2e3884392bb3ff1ffb16fb6089712f7a19d70fe3 Mon Sep 17 00:00:00 2001 From: Paul Fertser Date: Thu, 5 Feb 2015 10:22:44 +0300 Subject: [PATCH 0467/2060] openocd-git: remove patches included by upstream This removes the patches since they're no longer needed, as the latest git version merged the fixes. This also changes pkgver() to use tags instead of plain rev-list --count and removes the tricky renaming that should no longer be needed. Signed-off-by: Paul Fertser --- mingw-w64-openocd-git/PKGBUILD | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/mingw-w64-openocd-git/PKGBUILD b/mingw-w64-openocd-git/PKGBUILD index 3cc4869b65..637bbd963b 100644 --- a/mingw-w64-openocd-git/PKGBUILD +++ b/mingw-w64-openocd-git/PKGBUILD @@ -5,7 +5,7 @@ _realname=openocd pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides="${MINGW_PACKAGE_PREFIX}-${_realname}" conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=r6612.1663a17 +pkgver=v0.8.0.r268.ga9c90a0 pkgrel=1 pkgdesc="OpenOCD - Open On-Chip Debugger (mingw-w64)" arch=('any') @@ -18,22 +18,16 @@ depends=("${MINGW_PACKAGE_PREFIX}-hidapi" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "pkg-config" "git") -source=("${_realname}::git+http://git.code.sf.net/p/openocd/code" - "0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch" - "0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch") -md5sums=('SKIP' - '4c56994d66389afeb8a942514a1f7628' - '1a7bc00cd8d7ecea09130a52af66d916') +source=("${_realname}::git+http://git.code.sf.net/p/openocd/code") +md5sums=('SKIP') pkgver() { cd "${srcdir}"/${_realname} - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + git describe --long --tags 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' } prepare() { cd "${srcdir}"/${_realname} - git am "${srcdir}"/0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch - git am "${srcdir}"/0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch ./bootstrap } @@ -63,17 +57,7 @@ package() { cd "${srcdir}"/build-${CARCH} make DESTDIR="${pkgdir}" install - # bsdtar doesn't like (some?) utf-8 in filenames - # rename the known problematic utf-8 substrings. - declare -A _renames - _renames[be1t]=BE1T - _renames[к]=k - _renames[xб1я]=XB1R - for _renamekey in ${!_renames[@]}; do - _filenames=$(find . -name "*${_renamekey}*") - _renameto=${_renames[${_renamekey}]} - for _filename in ${_filenames}; do - mv ${_filename} ${_filename//${_renamekey}/${_renameto}} - done - done + # bsdtar can't convert non-ascii filenames to UTF-8 when run in + # non-UTF-8 locale. It proceeds to pack them anyway embedding raw + # binary filenames in the traditional tar headers. } From 06d016e3c0ed82f59f76c1410830ca4f45edc424 Mon Sep 17 00:00:00 2001 From: Paul Fertser Date: Thu, 5 Feb 2015 11:04:29 +0300 Subject: [PATCH 0468/2060] openocd: remove the now-unneeded patch files, fix version The upstream repository has tags starting with "v", e.g. "v0.8.0". This adds a sed command to remove "v" from the beginning to make the resulting package versions conform to the guidelines. Signed-off-by: Paul Fertser --- ...fine-WIN32_LEAN_AND_MEAN-in-config.h.patch | 46 ------------------- ...-libusb-1.0-after-libusb-0.1-to-fix-.patch | 34 -------------- mingw-w64-openocd-git/PKGBUILD | 4 +- 3 files changed, 2 insertions(+), 82 deletions(-) delete mode 100644 mingw-w64-openocd-git/0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch delete mode 100644 mingw-w64-openocd-git/0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch diff --git a/mingw-w64-openocd-git/0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch b/mingw-w64-openocd-git/0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch deleted file mode 100644 index 34195b6f29..0000000000 --- a/mingw-w64-openocd-git/0001-Win32-Define-WIN32_LEAN_AND_MEAN-in-config.h.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 9ec332b67605f275d8a29699cb542676ef99ed23 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Tue, 20 Jan 2015 14:28:15 +0000 -Subject: [PATCH 1/2] Win32: Define WIN32_LEAN_AND_MEAN in config.h - -.. to avoid 'interface' conflict between OLE (which defines it as 'struct') -and libusb-compat which has 'interface' as a struct member. - -replacements.h did define this already, but it was too late since -helper/system.h and helper/types.h are included before replcaements.h -and they end up pulling in windows.h ---- - configure.ac | 4 ++++ - src/helper/replacements.h | 1 - - 2 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index ce28633..eea9664 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -804,6 +804,10 @@ then - AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.]) - fi - -+if test $is_win32 = yes; then -+ AC_DEFINE([WIN32_LEAN_AND_MEAN], [1], [1 to avoid ole 'interface' C macro conflict w/ libusb-compat]) -+fi -+ - if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes -o $build_openjtag_ftd2xx = yes; then - AC_MSG_CHECKING([for ftd2xx.lib exists (win32)]) - -diff --git a/src/helper/replacements.h b/src/helper/replacements.h -index 565fe9d..2776602 100644 ---- a/src/helper/replacements.h -+++ b/src/helper/replacements.h -@@ -135,7 +135,6 @@ static inline unsigned usleep(unsigned int usecs) - /* Windows specific */ - #ifdef _WIN32 - --#define WIN32_LEAN_AND_MEAN - #include - #include - --- -2.2.2 - diff --git a/mingw-w64-openocd-git/0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch b/mingw-w64-openocd-git/0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch deleted file mode 100644 index be53172024..0000000000 --- a/mingw-w64-openocd-git/0002-Makefile.am-link-libusb-1.0-after-libusb-0.1-to-fix-.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 54d03d6b4d0891a3b49435917361ead8640c5769 Mon Sep 17 00:00:00 2001 -From: Paul Fertser -Date: Tue, 20 Jan 2015 18:29:31 +0300 -Subject: [PATCH 2/2] Makefile.am: link libusb-1.0 after libusb-0.1 to fix - dependencies - -Since libusb-0.1 might be provided by libusb-compat, it will depend on -libusb-1.0, so needs to be mentioned before it in the link command -line, this is relevant for static linking. - -Thanks go to mingwandroid for spotting it during MSYS2 build. - -Change-Id: I15cf0b8f084c351b4f93e75686bd0f843477352b -Signed-off-by: Paul Fertser ---- - src/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Makefile.am b/src/Makefile.am -index 7d67e3d..26e02d0 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -74,7 +74,7 @@ libopenocd_la_LIBADD = \ - $(top_builddir)/src/rtos/librtos.la \ - $(top_builddir)/src/helper/libhelper.la \ - $(LIBFTDI_LIBS) $(MINGWLDADD) \ -- $(HIDAPI_LIBS) $(LIBUSB1_LIBS) $(LIBUSB0_LIBS) -+ $(HIDAPI_LIBS) $(LIBUSB0_LIBS) $(LIBUSB1_LIBS) - - STARTUP_TCL_SRCS = \ - $(srcdir)/helper/startup.tcl \ --- -2.2.2 - diff --git a/mingw-w64-openocd-git/PKGBUILD b/mingw-w64-openocd-git/PKGBUILD index 637bbd963b..ff1a47bd75 100644 --- a/mingw-w64-openocd-git/PKGBUILD +++ b/mingw-w64-openocd-git/PKGBUILD @@ -5,7 +5,7 @@ _realname=openocd pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides="${MINGW_PACKAGE_PREFIX}-${_realname}" conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=v0.8.0.r268.ga9c90a0 +pkgver=0.8.0.r268.ga9c90a0 pkgrel=1 pkgdesc="OpenOCD - Open On-Chip Debugger (mingw-w64)" arch=('any') @@ -23,7 +23,7 @@ md5sums=('SKIP') pkgver() { cd "${srcdir}"/${_realname} - git describe --long --tags 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' + git describe --long --tags 2>/dev/null | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' } prepare() { From 2e75d047abf4f54c1aa727aef50fb0fea2f42eef Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Feb 2015 12:50:05 +0300 Subject: [PATCH 0469/2060] libnice: Update to 0.1.10. --- mingw-w64-libnice/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libnice/PKGBUILD b/mingw-w64-libnice/PKGBUILD index 79951ef63a..1b6278ecc3 100644 --- a/mingw-w64-libnice/PKGBUILD +++ b/mingw-w64-libnice/PKGBUILD @@ -2,7 +2,7 @@ _realname=libnice pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.1.8 +pkgver=0.1.10 pkgrel=1 pkgdesc="An implementation of the IETF's draft ICE (for p2p UDP data streams) (mingw-w64)" arch=('any') @@ -20,7 +20,7 @@ source=("http://nice.freedesktop.org/releases/${_realname}-$pkgver.tar.gz" 0002-no-undefined.patch 0003-give-cc-to-gir-scanner.all.patch 0004-mingw-w64-types.patch) -md5sums=('3042d1c3281d098ef1b98d01479b4192' +md5sums=('27b62d0093ce29a39df1c6fcf0bb4396' 'b817c8a7c4cbb405341de75b9824204f' '5c937f7c3a5857038f27a009d33b0757' 'aa92989cd75e24fd2ead5a4e6f334cc7' From fec07a9321e67044754a947049ad5292e9791ec9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Feb 2015 23:54:06 +0300 Subject: [PATCH 0470/2060] farstream: Update to 0.2.7 --- mingw-w64-farstream/0001-farstream-0.2.4.patch | 13 ------------- mingw-w64-farstream/PKGBUILD | 6 +++--- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/mingw-w64-farstream/0001-farstream-0.2.4.patch b/mingw-w64-farstream/0001-farstream-0.2.4.patch index 04a37d82ad..18c50919d2 100644 --- a/mingw-w64-farstream/0001-farstream-0.2.4.patch +++ b/mingw-w64-farstream/0001-farstream-0.2.4.patch @@ -109,19 +109,6 @@ ---- farstream-0.2.4/gst/fsrtpconference/fs-rtp-codec-specific.c -+++ farstream-0.2.4/gst/fsrtpconference/fs-rtp-codec-specific.c -@@ -1484,8 +1484,8 @@ - local_level_idc = 0xFF & local_value; - nego_level_idc = MIN (remote_level_idc, local_level_idc); - -- g_snprintf (buf, 7, "%02hhX%02hhX%02hhX", local_profile_idc, nego_profile_iop, -- nego_level_idc); -+ g_snprintf (buf, 7, "%02hX%02hX%02hX", local_profile_idc & 0xFF, nego_profile_iop & 0xFF, -+ nego_level_idc & 0xFF); - - fs_codec_add_optional_parameter (negotiated_codec, sdp_param->name, buf); - --- farstream-0.2.4/transmitters/multicast/fs-multicast-transmitter.c +++ farstream-0.2.4/transmitters/multicast/fs-multicast-transmitter.c @@ -687,12 +687,12 @@ diff --git a/mingw-w64-farstream/PKGBUILD b/mingw-w64-farstream/PKGBUILD index eaa9e92a03..d1b9e79291 100644 --- a/mingw-w64-farstream/PKGBUILD +++ b/mingw-w64-farstream/PKGBUILD @@ -2,7 +2,7 @@ _realname=farstream pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=0.2.6 +pkgver=0.2.7 pkgrel=1 pkgdesc="Farstream (formerly Farsight) - Audio/Video Communications Framework" arch=('any') @@ -18,9 +18,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" source=(http://freedesktop.org/software/${_realname}/releases/${_realname}/${_realname}-$pkgver.tar.gz{,.asc} 0001-farstream-0.2.4.patch 0002-give-cc-to-gir-scanner.all.patch) -md5sums=('63cecbb912e7a8b96d4470420327e2cc' +md5sums=('bb56af4cbf2cd42f35353f20cf04bc17' 'SKIP' - '617b1a8fdbc5508ca03abc271f62a73b' + '1324123fbf2aa65bcd4f712e7d582618' '8a758676c230c58a687ff74784dd3ae5') prepare() { From cfd8f7b88fa47720214a92ae6a5e03f8536da09d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 6 Feb 2015 00:03:34 +0300 Subject: [PATCH 0471/2060] libmariadbclient: Update to 2.1.0 --- mingw-w64-libmariadbclient/PKGBUILD | 34 +++++--- .../fix-libnames-mingw.patch | 86 +++++++++++-------- .../fix-qt5-uint-error.patch | 11 +++ .../fix-size-t-defined.patch | 11 +++ .../use_fopen_for_xp_compatibility.patch | 28 ++++++ 5 files changed, 124 insertions(+), 46 deletions(-) create mode 100644 mingw-w64-libmariadbclient/fix-qt5-uint-error.patch create mode 100644 mingw-w64-libmariadbclient/fix-size-t-defined.patch create mode 100644 mingw-w64-libmariadbclient/use_fopen_for_xp_compatibility.patch diff --git a/mingw-w64-libmariadbclient/PKGBUILD b/mingw-w64-libmariadbclient/PKGBUILD index efd236d9f8..7f6f1be8c7 100644 --- a/mingw-w64-libmariadbclient/PKGBUILD +++ b/mingw-w64-libmariadbclient/PKGBUILD @@ -1,25 +1,35 @@ # Maintainer: Alexey Pavlov _realname=libmariadbclient - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.0.0 +pkgver=2.1.0 pkgrel=1 pkgdesc="MariaDB client libraries (mingw-w64)" arch=('any') url="http://mariadb.org" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib") #"${MINGW_PACKAGE_PREFIX}-sqlite3" +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-zlib") #"${MINGW_PACKAGE_PREFIX}-sqlite3" options=('!strip' 'staticlibs') -source=("ftp://ftp.osuosl.org/pub/mariadb/client-native-${pkgver}/src/mariadb_client-${pkgver}-src.tar.gz" - fix-libnames-mingw.patch) -sha256sums=('fd2f751dea049c1907735eb236aeace1d811d6a8218118b00bbaa9b84dc5cd60' - '5a713fff49bdb7aadebda130d5ea4416a05fb9ebe4b0abe19ef6ecc1b05e2ab6') +source=("https://downloads.mariadb.org/interstitial/connector-c-${pkgver}/source-tgz/mariadb-connector-c-${pkgver}-src.tar.gz" + 'fix-libnames-mingw.patch' + 'use_fopen_for_xp_compatibility.patch' + 'fix-size-t-defined.patch' + 'fix-qt5-uint-error.patch') +sha256sums=('568050b89463af7610d458669fd9eee06dcc9405689aca8a526ac8c013b59167' + '6aecfea37704406d035b77702a05715493a3b9a036ffe1c2dee9fd600710d60c' + '81ea9f16845c14a35e9c587ae84dc23c383c8be6d4afcf0587b84972a8f81b4e' + 'f0cba818d125687dc8d04f501484be8d159a1989ff12b5130c2fd213add3e519' + 'f0fcf51886f51bee17ca518ee6b0f837f9320616333fe5c016afce2d00185b82') prepare() { - cd ${srcdir}/mariadb_client-${pkgver}-src - patch -p1 -i ${srcdir}/fix-libnames-mingw.patch + cd ${srcdir}/mariadb-connector-c-$pkgver-src + patch -p0 -i ../fix-libnames-mingw.patch + patch -p0 -i ../use_fopen_for_xp_compatibility.patch + patch -p0 -i ../fix-size-t-defined.patch + patch -p0 -i ../fix-qt5-uint-error.patch } build() { @@ -37,7 +47,9 @@ build() { -DWITH_EXTERNAL_ZLIB=ON \ -DWITH_SQLITE=OFF \ -DWITH_OPENSSL=ON \ - ../mariadb_client-${pkgver}-src + -DWITH_MYSQLCOMPAT=OFF \ + ../mariadb-connector-c-$pkgver-src + make } @@ -45,6 +57,8 @@ package() { cd "${srcdir}/${MINGW_CHOST}" make install + ln -s "${pkgdir}${MINGW_PREFIX}"/include/mariadb "${pkgdir}${MINGW_PREFIX}"/include/mysql + cp "${pkgdir}${MINGW_PREFIX}"/lib/{libmariadb,libmysqlclient}.dll.a cp "${pkgdir}${MINGW_PREFIX}"/lib/{libmariadb,libmysqlclient_r}.dll.a cp "${pkgdir}${MINGW_PREFIX}"/lib/{libmariadbclient,libmysqlclient}.a diff --git a/mingw-w64-libmariadbclient/fix-libnames-mingw.patch b/mingw-w64-libmariadbclient/fix-libnames-mingw.patch index 74dda3de3a..b904d28dc4 100644 --- a/mingw-w64-libmariadbclient/fix-libnames-mingw.patch +++ b/mingw-w64-libmariadbclient/fix-libnames-mingw.patch @@ -1,34 +1,18 @@ ---- mariadb_client-2.0.0-src/libmariadb/CMakeLists.txt.orig 2014-04-04 14:21:01.000000000 +0400 -+++ mariadb_client-2.0.0-src/libmariadb/CMakeLists.txt 2014-04-18 12:08:42.907600000 +0400 -@@ -149,31 +149,32 @@ - TARGET_LINK_LIBRARIES(mariadbclient ${SSL_LIBRARIES}) - ENDIF() +--- libmariadb/CMakeLists.txt.orig 2015-02-05 09:57:29.549448173 -0700 ++++ libmariadb/CMakeLists.txt 2015-02-05 10:01:01.498040468 -0700 +@@ -372,8 +372,8 @@ + ADD_LIBRARY(mariadbclient STATIC $ ${EXPORT_LINK}) + TARGET_LINK_LIBRARIES(mariadbclient ${SYSTEM_LIBS}) --ADD_LIBRARY(libmariadb SHARED ${LIBMARIADB_SOURCES}) --TARGET_LINK_LIBRARIES(libmariadb ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} ${MATH_LIBRARY} ${ICONV_LIBRARIES}) +-ADD_LIBRARY(libmariadb SHARED $ ${EXPORT_LINK}) +-TARGET_LINK_LIBRARIES(libmariadb ${SYSTEM_LIBS}) +ADD_LIBRARY(mariadb SHARED ${LIBMARIADB_SOURCES}) -+TARGET_LINK_LIBRARIES(mariadb ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} ${MATH_LIBRARY} ${ICONV_LIBRARIES}) - - IF(OPENSSL_FOUND) -- TARGET_LINK_LIBRARIES(libmariadb ${SSL_LIBRARIES}) -+ TARGET_LINK_LIBRARIES(mariadb ${SSL_LIBRARIES}) ++TARGET_LINK_LIBRARIES(mariadb ${SYSTEM_LIBS}) + IF(UNIX) + SET_TARGET_PROPERTIES(libmariadb PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}") ENDIF() - - IF(WIN32) -- TARGET_LINK_LIBRARIES(libmariadb ws2_32 advapi32 kernel32) -+ TARGET_LINK_LIBRARIES(mariadb ws2_32 advapi32 kernel32) - TARGET_LINK_LIBRARIES(mariadbclient ws2_32 advapi32 kernel32) - ELSE() -- TARGET_LINK_LIBRARIES(libmariadb m) -+ TARGET_LINK_LIBRARIES(mariadb m) - TARGET_LINK_LIBRARIES(mariadbclient m) - ENDIF() - - IF(CMAKE_SYSTEM_NAME MATCHES "Linux") -- TARGET_LINK_LIBRARIES (libmariadb "-Wl,--no-undefined") -- TARGET_LINK_LIBRARIES (libmariadb "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/version_script.txt") -+ TARGET_LINK_LIBRARIES (mariadb "-Wl,--no-undefined") -+ TARGET_LINK_LIBRARIES (mariadb "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/version_script.txt") +@@ -385,11 +385,12 @@ + TARGET_LINK_LIBRARIES (mariadbclient "-Wl,--version-script=${EXPORT_FILE}") ENDIF() -SET_TARGET_PROPERTIES(libmariadb PROPERTIES PREFIX "") @@ -43,18 +27,48 @@ # # Installation -@@ -209,10 +210,10 @@ +@@ -398,7 +399,7 @@ + # There are still several projects which don't make use + # of the config program. To make sure these programs can + # use mariadb client library we provide libmysql symlinks +-IF(NOT WIN32 AND WITH_MYSQLCOMPAT) ++IF(WITH_MYSQLCOMPAT) + ADD_CUSTOM_COMMAND(OUTPUT "libmysql${CMAKE_SHARED_LIBRARY_SUFFIX}" + "libmysqlclient${CMAKE_SHARED_LIBRARY_SUFFIX}" + "libmysqlclient_r${CMAKE_SHARED_LIBRARY_SUFFIX}" +@@ -412,7 +413,7 @@ + COMMAND ${CMAKE_COMMAND} ARGS -E remove -f libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX} + COMMAND ${CMAKE_COMMAND} ARGS -E create_symlink libmariadbclient${CMAKE_STATIC_LIBRARY_SUFFIX} libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/libmariadb +- DEPENDS libmariadb mariadbclient) ++ DEPENDS mariadb mariadbclient) + + ADD_CUSTOM_TARGET(LIBMYSQL_SYMLINKS + ALL +@@ -425,17 +426,18 @@ INSTALL(TARGETS - libmariadb mariadbclient -- RUNTIME DESTINATION "lib/mariadb" -- LIBRARY DESTINATION "lib/mariadb" -- ARCHIVE DESTINATION "lib/mariadb") +- RUNTIME DESTINATION "${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}" +- LIBRARY DESTINATION "${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}" +- ARCHIVE DESTINATION "${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}") +- +-IF(NOT WIN32 AND WITH_MYSQLCOMPAT) + mariadb mariadbclient -+ RUNTIME DESTINATION "bin" -+ LIBRARY DESTINATION "lib" -+ ARCHIVE DESTINATION "lib") - IF(NOT WIN32 AND WITH_MYSQLCOMPAT) ++ RUNTIME DESTINATION "${BIN_INSTALL_DIR}" ++ LIBRARY DESTINATION "${LIB_INSTALL_DIR}" ++ ARCHIVE DESTINATION "${LIB_INSTALL_DIR}") ++ ++IF(WITH_MYSQLCOMPAT) ++ INSTALL(FILES "${CMAKE_BINARY_DIR}/libmariadb/libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX}" ++ DESTINATION ${LIB_INSTALL_DIR}) INSTALL(FILES "${CMAKE_BINARY_DIR}/libmariadb/libmysql${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CMAKE_BINARY_DIR}/libmariadb/libmysqlclient${CMAKE_SHARED_LIBRARY_SUFFIX}" + "${CMAKE_BINARY_DIR}/libmariadb/libmysqlclient_r${CMAKE_SHARED_LIBRARY_SUFFIX}" +- "${CMAKE_BINARY_DIR}/libmariadb/libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX}" +- DESTINATION ${LIB_INSTALL_DIR}/mariadb) ++ DESTINATION ${BIN_INSTALL_DIR}) + ENDIF() + + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ diff --git a/mingw-w64-libmariadbclient/fix-qt5-uint-error.patch b/mingw-w64-libmariadbclient/fix-qt5-uint-error.patch new file mode 100644 index 0000000000..fba9344d9d --- /dev/null +++ b/mingw-w64-libmariadbclient/fix-qt5-uint-error.patch @@ -0,0 +1,11 @@ +--- include/mysql.h.orig 2015-02-03 12:34:33.527518619 -0700 ++++ include/mysql.h 2015-02-03 12:34:41.327637274 -0700 +@@ -80,7 +80,7 @@ + + extern unsigned int mysql_port; + extern char *mysql_unix_port; +-extern uint mariadb_deinitialize_ssl; ++extern unsigned int mariadb_deinitialize_ssl; + + #define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG) + #define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG) diff --git a/mingw-w64-libmariadbclient/fix-size-t-defined.patch b/mingw-w64-libmariadbclient/fix-size-t-defined.patch new file mode 100644 index 0000000000..8dbcd0900c --- /dev/null +++ b/mingw-w64-libmariadbclient/fix-size-t-defined.patch @@ -0,0 +1,11 @@ +--- include/my_global.h.orig 2015-02-02 22:18:57.873440040 -0700 ++++ include/my_global.h 2015-02-02 22:17:45.125574689 -0700 +@@ -451,7 +451,7 @@ + #define NO_PISAM /* Not needed anymore */ + #define NO_MISAM /* Not needed anymore */ + #define NO_HASH /* Not needed anymore */ +-#ifdef _WIN32 ++#if defined(_WIN32) && !defined(__MINGW32__) + #define NO_DIR_LIBRARY /* Not standar dir-library */ + #define USE_MY_STAT_STRUCT /* For my_lib */ + #ifdef _SIZE_T_DEFINED diff --git a/mingw-w64-libmariadbclient/use_fopen_for_xp_compatibility.patch b/mingw-w64-libmariadbclient/use_fopen_for_xp_compatibility.patch new file mode 100644 index 0000000000..168888be9e --- /dev/null +++ b/mingw-w64-libmariadbclient/use_fopen_for_xp_compatibility.patch @@ -0,0 +1,28 @@ +--- libmariadb/dbug.c 2014-04-04 04:21:01.000000000 -0600 ++++ libmariadb/dbug.c 2015-01-24 16:47:13.316693150 -0700 +@@ -2050,11 +2050,7 @@ + } + else + { +-#ifdef _WIN32 +- if (fopen_s(&fp, name, append ? "a+" : "w")) +-#else + if (!(fp= fopen(name, append ? "a+" : "w"))) +-#endif + { + (void) fprintf(stderr, ERR_OPEN, cs->process, name); + perror(""); +--- libmariadb/my_fopen.c 2014-04-04 04:21:01.000000000 -0600 ++++ libmariadb/my_fopen.c 2015-01-24 16:46:10.735766900 -0700 +@@ -36,11 +36,7 @@ + FileName, Flags, MyFlags)); + + make_ftype(type,Flags); +-#ifdef _WIN32 +- if (fopen_s(&fd, FileName, type) == 0) +-#else + if ((fd = fopen(FileName, type)) != 0) +-#endif + { + /* + The test works if MY_NFILE < 128. The problem is that fileno() is char From e0214f3ffe8d1a7a1550bff256621d71b37ee63c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 5 Feb 2015 22:38:15 +0000 Subject: [PATCH 0472/2060] octave-hg: Update Qt5 port patch --- mingw-w64-octave-hg/0001-Port-to-Qt5.patch | 113 ++++++++++++--------- mingw-w64-octave-hg/PKGBUILD | 9 +- 2 files changed, 72 insertions(+), 50 deletions(-) diff --git a/mingw-w64-octave-hg/0001-Port-to-Qt5.patch b/mingw-w64-octave-hg/0001-Port-to-Qt5.patch index d68f293fb4..c8c3f09368 100644 --- a/mingw-w64-octave-hg/0001-Port-to-Qt5.patch +++ b/mingw-w64-octave-hg/0001-Port-to-Qt5.patch @@ -1,6 +1,7 @@ ---- octave/configure.ac.orig 2015-01-27 13:51:52.182247300 +0000 -+++ octave/configure.ac 2015-01-27 13:52:29.446621600 +0000 -@@ -2787,7 +2787,7 @@ +diff -urN octave.orig/configure.ac octave/configure.ac +--- octave.orig/configure.ac 2015-02-05 12:35:51.102143700 +0000 ++++ octave/configure.ac 2015-02-05 13:07:58.632643700 +0000 +@@ -2800,7 +2800,7 @@ warn_gui="" ## Check for Qt libraries @@ -9,7 +10,7 @@ PKG_CHECK_MODULES(QT, [$QT_MODULES], [], [warn_gui="Qt libraries not found -- disabling GUI" -@@ -2813,18 +2813,18 @@ +@@ -2826,18 +2826,18 @@ ;; esac @@ -35,9 +36,9 @@ if test -n "$MOC" && test -n "$UIC" && test -n "$RCC" && test -n "$LRELEASE"; then AC_DEFINE(HAVE_QT, 1, [Define to 1 if Qt is available (libraries, developer header files, utility programs (moc, uic, rcc, and lrelease))]) -diff -urN -x .build octave.orig/libgui/graphics/Canvas.cc octave/libgui/graphics/Canvas.cc ---- octave.orig/libgui/graphics/Canvas.cc 2015-01-27 17:55:25.000000000 +0000 -+++ octave/libgui/graphics/Canvas.cc 2015-01-28 23:27:29.972842100 +0000 +diff -urN octave.orig/libgui/graphics/Canvas.cc octave/libgui/graphics/Canvas.cc +--- octave.orig/libgui/graphics/Canvas.cc 2015-02-05 12:35:51.107143700 +0000 ++++ octave/libgui/graphics/Canvas.cc 2015-02-05 13:07:58.636143700 +0000 @@ -210,7 +210,7 @@ QRectF r (bb(0), bb(1), bb(2), bb(3)); @@ -56,9 +57,9 @@ diff -urN -x .build octave.orig/libgui/graphics/Canvas.cc octave/libgui/graphics axesObj = *it; } -diff -urN -x .build octave.orig/libgui/graphics/Object.cc octave/libgui/graphics/Object.cc ---- octave.orig/libgui/graphics/Object.cc 2015-01-27 17:55:25.000000000 +0000 -+++ octave/libgui/graphics/Object.cc 2015-01-28 23:30:48.841216700 +0000 +diff -urN octave.orig/libgui/graphics/Object.cc octave/libgui/graphics/Object.cc +--- octave.orig/libgui/graphics/Object.cc 2015-02-05 12:35:51.111143700 +0000 ++++ octave/libgui/graphics/Object.cc 2015-02-05 13:07:58.640143700 +0000 @@ -154,7 +154,7 @@ QVariant v = obj->property ("QtHandles::Object"); @@ -68,9 +69,20 @@ diff -urN -x .build octave.orig/libgui/graphics/Object.cc octave/libgui/graphics return 0; } -diff -urN -x .build octave.orig/libgui/src/find-files-dialog.cc octave/libgui/src/find-files-dialog.cc ---- octave.orig/libgui/src/find-files-dialog.cc 2015-01-27 17:55:25.000000000 +0000 -+++ octave/libgui/src/find-files-dialog.cc 2015-01-28 23:22:22.707267500 +0000 +diff -urN octave.orig/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp octave/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp +--- octave.orig/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp 2015-02-05 12:34:50.434143700 +0000 ++++ octave/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp 2015-02-05 13:07:58.686143700 +0000 +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + + #include + #include +diff -urN octave.orig/libgui/src/find-files-dialog.cc octave/libgui/src/find-files-dialog.cc +--- octave.orig/libgui/src/find-files-dialog.cc 2015-02-05 12:35:51.116143700 +0000 ++++ octave/libgui/src/find-files-dialog.cc 2015-02-05 13:07:58.643143700 +0000 @@ -125,7 +125,7 @@ _file_list->horizontalHeader ()->restoreState ( settings->value ("findfiles/column_state").toByteArray ()); @@ -80,9 +92,9 @@ diff -urN -x .build octave.orig/libgui/src/find-files-dialog.cc octave/libgui/sr _file_list->horizontalHeader ()->setStretchLastSection (true); _file_list->sortByColumn ( settings->value ("findfiles/sort_files_by_column",0).toInt (), -diff -urN -x .build octave.orig/libgui/src/m-editor/file-editor.cc octave/libgui/src/m-editor/file-editor.cc ---- octave.orig/libgui/src/m-editor/file-editor.cc 2015-01-27 17:55:25.000000000 +0000 -+++ octave/libgui/src/m-editor/file-editor.cc 2015-01-27 23:38:39.780659200 +0000 +diff -urN octave.orig/libgui/src/m-editor/file-editor.cc octave/libgui/src/m-editor/file-editor.cc +--- octave.orig/libgui/src/m-editor/file-editor.cc 2015-02-05 12:35:51.121143700 +0000 ++++ octave/libgui/src/m-editor/file-editor.cc 2015-02-05 13:07:58.646643700 +0000 @@ -41,6 +41,7 @@ #include #include @@ -91,9 +103,9 @@ diff -urN -x .build octave.orig/libgui/src/m-editor/file-editor.cc octave/libgui #include #include "octave-link.h" -diff -urN -x .build octave.orig/libgui/src/m-editor/file-editor-tab.cc octave/libgui/src/m-editor/file-editor-tab.cc ---- octave.orig/libgui/src/m-editor/file-editor-tab.cc 2015-01-27 17:55:25.000000000 +0000 -+++ octave/libgui/src/m-editor/file-editor-tab.cc 2015-01-27 23:33:19.400334500 +0000 +diff -urN octave.orig/libgui/src/m-editor/file-editor-tab.cc octave/libgui/src/m-editor/file-editor-tab.cc +--- octave.orig/libgui/src/m-editor/file-editor-tab.cc 2015-02-05 12:35:51.126143700 +0000 ++++ octave/libgui/src/m-editor/file-editor-tab.cc 2015-02-05 13:07:58.651143700 +0000 @@ -445,9 +445,8 @@ bool update_apis_file = false; // flag, whether update of apis files @@ -114,7 +126,7 @@ diff -urN -x .build octave.orig/libgui/src/m-editor/file-editor-tab.cc octave/li + "/.octave_packages"); if (local_pkg_list.exists () & (apis_date < local_pkg_list.lastModified ()) ) -@@ -1339,7 +1338,7 @@ +@@ -1351,7 +1350,7 @@ QsciScintilla::EolMode file_editor_tab::detect_eol_mode () { @@ -123,9 +135,9 @@ diff -urN -x .build octave.orig/libgui/src/m-editor/file-editor-tab.cc octave/li int text_size = _edit_area->text ().length (); char eol_lf = 0x0a; -diff -urN -x .build octave.orig/libgui/src/m-editor/find-dialog.cc octave/libgui/src/m-editor/find-dialog.cc ---- octave.orig/libgui/src/m-editor/find-dialog.cc 2015-01-27 17:55:25.000000000 +0000 -+++ octave/libgui/src/m-editor/find-dialog.cc 2015-01-28 21:09:26.778070500 +0000 +diff -urN octave.orig/libgui/src/m-editor/find-dialog.cc octave/libgui/src/m-editor/find-dialog.cc +--- octave.orig/libgui/src/m-editor/find-dialog.cc 2015-02-05 12:35:51.131143700 +0000 ++++ octave/libgui/src/m-editor/find-dialog.cc 2015-02-05 13:07:58.659643700 +0000 @@ -66,6 +66,13 @@ #include @@ -140,9 +152,9 @@ diff -urN -x .build octave.orig/libgui/src/m-editor/find-dialog.cc octave/libgui #include "find-dialog.h" find_dialog::find_dialog (QsciScintilla* edit_area, QWidget *p) -diff -urN -x .build octave.orig/libgui/src/octave-gui.cc octave/libgui/src/octave-gui.cc ---- octave.orig/libgui/src/octave-gui.cc 2015-01-27 17:55:25.000000000 +0000 -+++ octave/libgui/src/octave-gui.cc 2015-01-28 21:31:11.839715700 +0000 +diff -urN octave.orig/libgui/src/octave-gui.cc octave/libgui/src/octave-gui.cc +--- octave.orig/libgui/src/octave-gui.cc 2015-02-05 12:35:51.135143700 +0000 ++++ octave/libgui/src/octave-gui.cc 2015-02-05 13:07:58.662643700 +0000 @@ -89,7 +89,7 @@ // Disable all Qt messages by default. @@ -170,9 +182,9 @@ diff -urN -x .build octave.orig/libgui/src/octave-gui.cc octave/libgui/src/octav // show wizard if this is the first run if (resource_manager::is_first_run ()) -diff -urN -x .build octave.orig/libgui/src/resource-manager.cc octave/libgui/src/resource-manager.cc ---- octave.orig/libgui/src/resource-manager.cc 2015-01-27 17:55:25.000000000 +0000 -+++ octave/libgui/src/resource-manager.cc 2015-01-28 21:33:36.723002600 +0000 +diff -urN octave.orig/libgui/src/resource-manager.cc octave/libgui/src/resource-manager.cc +--- octave.orig/libgui/src/resource-manager.cc 2015-02-05 12:35:51.138143700 +0000 ++++ octave/libgui/src/resource-manager.cc 2015-02-05 13:07:58.666143700 +0000 @@ -61,10 +61,8 @@ : settings_directory (), settings_file (), settings (0), default_settings (0) @@ -185,9 +197,9 @@ diff -urN -x .build octave.orig/libgui/src/resource-manager.cc octave/libgui/src settings_directory = home_path + "/.config/octave"; -diff -urN -x .build octave.orig/libgui/src/resource-manager.h octave/libgui/src/resource-manager.h ---- octave.orig/libgui/src/resource-manager.h 2015-01-27 17:55:25.000000000 +0000 -+++ octave/libgui/src/resource-manager.h 2015-01-27 23:24:11.137975700 +0000 +diff -urN octave.orig/libgui/src/resource-manager.h octave/libgui/src/resource-manager.h +--- octave.orig/libgui/src/resource-manager.h 2015-02-05 12:35:51.141143700 +0000 ++++ octave/libgui/src/resource-manager.h 2015-02-05 13:07:58.669643700 +0000 @@ -24,6 +24,7 @@ #define RESOURCEMANAGER_H @@ -196,9 +208,9 @@ diff -urN -x .build octave.orig/libgui/src/resource-manager.h octave/libgui/src/ #include #include #include -diff -urN -x .build octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src/shortcut-manager.cc ---- octave.orig/libgui/src/shortcut-manager.cc 2015-01-27 17:55:25.000000000 +0000 -+++ octave/libgui/src/shortcut-manager.cc 2015-01-28 23:05:13.501400300 +0000 +diff -urN octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src/shortcut-manager.cc +--- octave.orig/libgui/src/shortcut-manager.cc 2015-02-05 12:35:51.145143700 +0000 ++++ octave/libgui/src/shortcut-manager.cc 2015-02-05 13:07:58.674143700 +0000 @@ -86,7 +86,7 @@ void shortcut_manager::do_init_data () @@ -308,7 +320,16 @@ diff -urN -x .build octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src #endif init (tr ("Convert Line Ednings to Windows"), "editor_edit:conv_eol_winows", -@@ -281,7 +280,7 @@ +@@ -258,7 +257,7 @@ + init (tr ("Move to Matching Brace"), "editor_edit:move_to_brace", + QKeySequence (ctrl + Qt::Key_M)); + init (tr ("Select to Matching Brace"), "editor_edit:select_to_brace", +- QKeySequence (ctrl_shift + Qt::Key_M)); ++ QKeySequence (ctrl + shift + Qt::Key_M)); + init (tr ("Toggle Bookmark"), "editor_edit:toggle_bookmark", + QKeySequence (prefix + Qt::Key_F7)); + init (tr ("Next Bookmark"), "editor_edit:next_bookmark", +@@ -285,7 +284,7 @@ QKeySequence (ctrl + Qt::Key_Underscore)); #else init (tr ("Zoom Normal"), "editor_view:zoom_normal", @@ -317,7 +338,7 @@ diff -urN -x .build octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src #endif // debug -@@ -336,7 +335,7 @@ +@@ -340,7 +339,7 @@ _dialog = 0; _level_hash.clear (); @@ -326,7 +347,7 @@ diff -urN -x .build octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src QTreeWidgetItem *main = new QTreeWidgetItem (tree_view); main->setText (0, tr ("Main")); -@@ -402,10 +401,10 @@ +@@ -406,10 +405,10 @@ // write the shortcuts tree_item->setText (0, sc.description); @@ -341,7 +362,7 @@ diff -urN -x .build octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src _item_index_hash[tree_item] = i + 1; // index+1 to avoid 0 _index_item_hash[i] = tree_item; -@@ -545,8 +544,8 @@ +@@ -549,8 +548,8 @@ } @@ -352,7 +373,7 @@ diff -urN -x .build octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src _handled_index = index; _edit_actual->setFocus (); -@@ -587,7 +586,7 @@ +@@ -591,7 +590,7 @@ shortcut_t double_shortcut = _sc.at (double_index); double_shortcut.actual_sc[_selected_set] = QKeySequence (); _sc.replace (double_index, double_shortcut); @@ -361,7 +382,7 @@ diff -urN -x .build octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src } else return; -@@ -600,7 +599,7 @@ +@@ -604,7 +603,7 @@ _sc.replace (_handled_index, shortcut); _index_item_hash[_handled_index]->setText ((_selected_set + 1)*2, @@ -370,7 +391,7 @@ diff -urN -x .build octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src if (! shortcut.actual_sc[_selected_set].isEmpty ()) _shortcut_hash[widget + sep + shortcut.actual_sc[_selected_set].toString ()] = -@@ -628,7 +627,7 @@ +@@ -632,7 +631,7 @@ // update the tree view QTreeWidgetItem* tree_item = _index_item_hash[i]; // get related tree item @@ -379,7 +400,7 @@ diff -urN -x .build octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src } } -@@ -719,6 +718,6 @@ +@@ -723,6 +722,6 @@ if(modifiers & Qt::MetaModifier) key += Qt::META; @@ -387,9 +408,9 @@ diff -urN -x .build octave.orig/libgui/src/shortcut-manager.cc octave/libgui/src + setText (QKeySequence(key).toString ()); } } -diff -urN -x .build octave.orig/libgui/src/workspace-model.cc octave/libgui/src/workspace-model.cc ---- octave.orig/libgui/src/workspace-model.cc 2015-01-27 17:55:25.000000000 +0000 -+++ octave/libgui/src/workspace-model.cc 2015-01-28 23:23:58.550749500 +0000 +diff -urN octave.orig/libgui/src/workspace-model.cc octave/libgui/src/workspace-model.cc +--- octave.orig/libgui/src/workspace-model.cc 2015-02-05 12:35:51.149143700 +0000 ++++ octave/libgui/src/workspace-model.cc 2015-02-05 13:07:58.682143700 +0000 @@ -132,7 +132,7 @@ { QString class_chars = resource_manager::storage_class_chars (); diff --git a/mingw-w64-octave-hg/PKGBUILD b/mingw-w64-octave-hg/PKGBUILD index fc53d52419..54948a4efc 100644 --- a/mingw-w64-octave-hg/PKGBUILD +++ b/mingw-w64-octave-hg/PKGBUILD @@ -48,9 +48,9 @@ source=("git://git.sv.gnu.org/gnulib" "0001-Port-to-Qt5.patch" "0002-OCTAVE_CHECK_LIB-for-suitesparseconfig.patch") md5sums=('SKIP' - '7c9aa6e917408889d85933b72a562fb1' + 'aee5720ead892c04b79b1357e467ae54' 'a3daca07660767db23de75bb5e087bfa' - 'c04b89d27e5fe91260e1922f1b17f7f9' + '106b7b1d39fe0630c21640417b29315b' '1e0ee378516c514517f2e4649f171f98') _hgrepo=octave _appver=4.1.0+ @@ -79,14 +79,15 @@ prepare() { } build() { - cd $srcdir/${_hgrepo} + cd "${srcdir}" [ -d build-${CARCH} ] && rm -rf build-${CARCH} mkdir build-${CARCH} cd build-${CARCH} [[ $CARCH == "x86_64" ]] && _arch=amd64 [[ $CARCH == "i686" ]] && _arch=i386 CPPFLAGS+=" -D_POSIX -D_POSIX_C_SOURCE " \ - ../configure --prefix=${MINGW_PREFIX} \ + "${srcdir}"/${_hgrepo}/configure \ + --prefix=${MINGW_PREFIX} \ --enable-shared --enable-jit \ --enable-qhull --with-umfpack \ --with-quantum-depth=16 --disable-java From 9286857cef05b6c1e64c8c8c79f7f9ac11f3906e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 6 Feb 2015 15:54:20 +0300 Subject: [PATCH 0473/2060] poppler: Update to 0.31.0 --- mingw-w64-poppler/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index 0110b7cac9..7904d52db4 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -2,7 +2,7 @@ _realname=poppler pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.30.0 +pkgver=0.31.0 pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') @@ -28,7 +28,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" options=('strip' 'staticlibs') source=("http://poppler.freedesktop.org/poppler-${pkgver}.tar.xz" "give-cc-to-gir-scanner.mingw.patch") -md5sums=('fb0a9d82b5433c823421a123eb8e9789' +md5sums=('b631498668562ba47732785e54808468' '727c1b414987f6ee2ba841d9db57a967') prepare() { From a6a5678c6a5845369558ac32b452427cfa1b6dc1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 6 Feb 2015 16:12:20 +0300 Subject: [PATCH 0474/2060] dbus: Update to 1.9.8. --- mingw-w64-dbus/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-dbus/PKGBUILD b/mingw-w64-dbus/PKGBUILD index f6d44d5b1d..55967c3cfd 100644 --- a/mingw-w64-dbus/PKGBUILD +++ b/mingw-w64-dbus/PKGBUILD @@ -2,7 +2,7 @@ _realname=dbus pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.9.6 +pkgver=1.9.8 pkgrel=1 arch=('any') pkgdesc="Freedesktop.org message bus system (mingw-w64)" @@ -16,7 +16,7 @@ options=('strip' 'staticlibs') license=("BSD") url="http://www.freedesktop.org/wiki/Software/dbus" source=("http://dbus.freedesktop.org/releases/dbus/${_realname}-${pkgver}.tar.gz"{,.asc}) -md5sums=('5c64a166c72c50765d9c9cfbc696fac9' +md5sums=('1765bf29d55fbefb9430dcf391b9a6da' 'SKIP') prepare() { From 715a77da929fbeed6e7421e4b0393dfb2314bcd3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 6 Feb 2015 22:44:34 +0300 Subject: [PATCH 0475/2060] curl: Build static library. --- mingw-w64-curl/0002-curl-mingw-enable-static.patch | 12 ++++++++++++ mingw-w64-curl/PKGBUILD | 13 +++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-curl/0002-curl-mingw-enable-static.patch diff --git a/mingw-w64-curl/0002-curl-mingw-enable-static.patch b/mingw-w64-curl/0002-curl-mingw-enable-static.patch new file mode 100644 index 0000000000..7121ecacf3 --- /dev/null +++ b/mingw-w64-curl/0002-curl-mingw-enable-static.patch @@ -0,0 +1,12 @@ +diff -urN curl-7.40.0.orig/configure.ac curl-7.40.0/configure.ac +--- curl-7.40.0.orig/m4/xc-lt-iface.m4 2014-07-14 19:49:18.000000000 +0100 ++++ curl-7.40.0/m4/xc-lt-iface.m4 2014-08-28 21:39:53.352497100 +0100 +@@ -72,7 +72,7 @@ + if test "x$xc_lt_want_enable_shared" = 'xyes' && + test "x$xc_lt_want_enable_static" = 'xyes'; then + case $host_os in @%:@ ( +- mingw* | pw32* | cegcc* | os2* | aix*) ++ pw32* | cegcc* | os2* | aix*) + xc_lt_want_enable_static='no' + ;; + esac diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 5d6fd0dd59..c58270f95e 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -3,7 +3,7 @@ _realname=curl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=7.40.0 -pkgrel=1 +pkgrel=2 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" @@ -18,18 +18,21 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-rtmpdump") -options=('staticlibs') # '!strip' 'debug') +options=('staticlibs') source=("$url/download/${_realname}-$pkgver.tar.bz2"{,.asc} - "0001-curl-relocation.patch") + "0001-curl-relocation.patch" + "0002-curl-mingw-enable-static.patch") md5sums=('8d30594212e65657a5c32030f0998fa9' 'SKIP' - 'e336b6d77d80ecd03bab775e1a1d8740') + 'e336b6d77d80ecd03bab775e1a1d8740' + 'eac9e212e619490966ae47004bec547b') validpgpkeys=('914C533DF9B2ADA2204F586D78E11C6B279D5C91') # Daniel Stenberg prepare() { cd "${_realname}-$pkgver" rm -f lib/pathtools.h lib/pathtools.c > /dev/null 2>&1 || true patch -p1 -i "${srcdir}/0001-curl-relocation.patch" + patch -p1 -i "${srcdir}/0002-curl-mingw-enable-static.patch" autoreconf -vfi } @@ -49,6 +52,8 @@ build() { --target=${MINGW_CHOST} \ --with-ca-bundle=${MINGW_PREFIX}/ssl/certs/ca-bundle.crt \ --without-random \ + --enable-static \ + --enable-shared \ "${extra_config[@]}" make } From e5955cd8713c455b80e421e132ce41350f29d01b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 6 Feb 2015 22:45:14 +0300 Subject: [PATCH 0476/2060] cmake: Update to 3.1.2 --- mingw-w64-cmake/PKGBUILD | 20 +++----- mingw-w64-cmake/fix-openssl.patch | 76 ------------------------------- 2 files changed, 6 insertions(+), 90 deletions(-) delete mode 100644 mingw-w64-cmake/fix-openssl.patch diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 2f83c9dc5f..6bee7aea38 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -2,8 +2,8 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.1.1 -pkgrel=2 +pkgver=3.1.2 +pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -20,14 +20,12 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" "wxWidgets-module.patch" - "qt5-static-plugin-support.patch" - "fix-openssl.patch") -md5sums=('0ae4f25dbec66697c0c3cec1b9e885ae' + "qt5-static-plugin-support.patch") +md5sums=('75f61184aa70664bc7b3158293950f04' '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' '09ea9092ca85e482de79886bd0c09144' - '6461b89ff7d1ca0c4022801dff8475a7' - '6e7853ca9d495a06615cb8049d4434ee') + '6461b89ff7d1ca0c4022801dff8475a7') prepare() { cd ${_realname}-${pkgver} @@ -35,7 +33,6 @@ prepare() { patch -Np1 -i ${srcdir}/dont-install-bundle.patch patch -Np1 -i ${srcdir}/wxWidgets-module.patch patch -Np1 -i ${srcdir}/qt5-static-plugin-support.patch - patch -Np1 -i ${srcdir}/fix-openssl.patch } build() { @@ -60,11 +57,6 @@ build() { } package() { - mkdir -p "${pkgdir}${MINGW_PREFIX}" - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - cd "${srcdir}/build-${MINGW_CHOST}" - ./bin/cmake.exe -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} -P cmake_install.cmake + ./bin/cmake.exe -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} -P cmake_install.cmake } diff --git a/mingw-w64-cmake/fix-openssl.patch b/mingw-w64-cmake/fix-openssl.patch deleted file mode 100644 index 208471a381..0000000000 --- a/mingw-w64-cmake/fix-openssl.patch +++ /dev/null @@ -1,76 +0,0 @@ -X-Git-Url: http://www.cmake.org/gitweb?p=cmake.git;a=blobdiff_plain;f=Modules%2FFindOpenSSL.cmake;h=3adc2692622e459a175f31d5b2a54619ec8164f2;hp=bfbe01f59090ed096ba81e95f2d125d2d53b2179;hb=27da8cf2d3ddf34acd9eeccf630d83ccbf89cd38;hpb=081c724ccb82ed1bae3f629f4b6f0b3afc79fdfc - -diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake -index bfbe01f..3adc269 100644 ---- a/Modules/FindOpenSSL.cmake -+++ b/Modules/FindOpenSSL.cmake -@@ -285,7 +285,7 @@ endfunction() - if (OPENSSL_INCLUDE_DIR) - if(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h") - file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str -- REGEX "^#define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*") -+ REGEX "^# *define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*") - - # The version number is encoded as 0xMNNFFPPS: major minor fix patch status - # The status gives if this is a developer or prerelease and is ignored here. -X-Git-Url: http://www.cmake.org/gitweb?p=cmake.git;a=blobdiff_plain;f=Modules%2FFindOpenSSL.cmake;h=3adc2692622e459a175f31d5b2a54619ec8164f2;hp=6b4f9853c01f64b94bfec3ff51da8789af63a07e;hb=27da8cf2d3ddf34acd9eeccf630d83ccbf89cd38;hpb=c5d9a8283cfac15b4a5a07f18d5eb10c1f388505 - -diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake -index 6b4f985..3adc269 100644 ---- a/Modules/FindOpenSSL.cmake -+++ b/Modules/FindOpenSSL.cmake -@@ -16,10 +16,12 @@ - # - # :: - # --# OPENSSL_FOUND - system has the OpenSSL library --# OPENSSL_INCLUDE_DIR - the OpenSSL include directory --# OPENSSL_LIBRARIES - The libraries needed to use OpenSSL --# OPENSSL_VERSION - This is set to $major.$minor.$revision$path (eg. 0.9.8s) -+# OPENSSL_FOUND - System has the OpenSSL library -+# OPENSSL_INCLUDE_DIR - The OpenSSL include directory -+# OPENSSL_CRYPTO_LIBRARY - The OpenSSL crypto library -+# OPENSSL_SSL_LIBRARY - The OpenSSL SSL library -+# OPENSSL_LIBRARIES - All OpenSSL libraries -+# OPENSSL_VERSION - This is set to $major.$minor.$revision$patch (eg. 0.9.8s) - - #============================================================================= - # Copyright 2006-2009 Kitware, Inc. -@@ -153,6 +155,8 @@ if(WIN32 AND NOT CYGWIN) - - mark_as_advanced(LIB_EAY_LIBRARY_DEBUG LIB_EAY_LIBRARY_RELEASE - SSL_EAY_LIBRARY_DEBUG SSL_EAY_LIBRARY_RELEASE) -+ set( OPENSSL_SSL_LIBRARY ${SSL_EAY_LIBRARY} ) -+ set( OPENSSL_CRYPTO_LIBRARY ${LIB_EAY_LIBRARY} ) - set( OPENSSL_LIBRARIES ${SSL_EAY_LIBRARY} ${LIB_EAY_LIBRARY} ) - elseif(MINGW) - # same player, for MinGW -@@ -181,6 +185,8 @@ if(WIN32 AND NOT CYGWIN) - ) - - mark_as_advanced(SSL_EAY LIB_EAY) -+ set( OPENSSL_SSL_LIBRARY ${SSL_EAY} ) -+ set( OPENSSL_CRYPTO_LIBRARY ${LIB_EAY} ) - set( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} ) - unset(LIB_EAY_NAMES) - unset(SSL_EAY_NAMES) -@@ -207,6 +213,8 @@ if(WIN32 AND NOT CYGWIN) - ) - - mark_as_advanced(SSL_EAY LIB_EAY) -+ set( OPENSSL_SSL_LIBRARY ${SSL_EAY} ) -+ set( OPENSSL_CRYPTO_LIBRARY ${LIB_EAY} ) - set( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} ) - endif() - else() -@@ -275,9 +283,7 @@ function(from_hex HEX DEC) - endfunction() - - if (OPENSSL_INCLUDE_DIR) -- if (_OPENSSL_VERSION) -- set(OPENSSL_VERSION "${_OPENSSL_VERSION}") -- elseif(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h") -+ if(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h") - file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str - REGEX "^# *define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*") - From a631a1dcd92eee33d8fc3fed13927670a7c10746 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Tue, 3 Feb 2015 12:45:00 -0200 Subject: [PATCH 0477/2060] hunspell: Fix license installation. The license files are now installed to share/licenses/hunspell instead of share/licenses. --- mingw-w64-hunspell/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-hunspell/PKGBUILD b/mingw-w64-hunspell/PKGBUILD index a67832300d..75557f3e21 100644 --- a/mingw-w64-hunspell/PKGBUILD +++ b/mingw-w64-hunspell/PKGBUILD @@ -5,7 +5,7 @@ _realname=hunspell pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.3 -pkgrel=8 +pkgrel=9 pkgdesc="Spell checker and morphological analyzer library and program (mingw-w64)" arch=('any') url="http://hunspell.sourceforge.net/" @@ -68,7 +68,7 @@ package() { # Licenses cd "${srcdir}/${_realname}-${pkgver}" - install -Dm644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/COPYING" - install -Dm644 COPYING.LGPL "${pkgdir}${MINGW_PREFIX}/share/licenses/COPYING.LGPL" - install -Dm644 COPYING.MPL "${pkgdir}${MINGW_PREFIX}/share/licenses/COPYING.MPL" + install -Dm644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + install -Dm644 COPYING.LGPL "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LGPL" + install -Dm644 COPYING.MPL "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.MPL" } From f643c75a7cf66f335d6200230e94eb2d932d6fe1 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Tue, 3 Feb 2015 14:03:12 -0200 Subject: [PATCH 0478/2060] Add/fix licenses for more packages. License files are now installed for the following packages: * atk * cairo * enchant * freetype * gdk-pixbuf2 * gettext * glib2 * gtk2 * gtkspell * libiconv * libxml2 * meanwhile * pango * perl * shared-mime-info The following packages now specify license more explicitly: * cairo is LGPL2.1 or MPL1.1. * gettext is GPL3 with LGPL2.1 parts. * gtkspell and shared-mime-info are GPL2. * atk, gdk-pixbuf2, glib2, gtk2 and meanwhile are LGPL2. * perl is GPL1+ or Artistic1 ("Artistic License" not "Perl Artistic"). The license field has been fixed for the following packages: * drmingw and drmingw-git: GPL does not apply anymore. * enchant: it seems to be plain LGPL2.1 without later versions. * freetype: the FreeType license can also be used. * libiconv: both GPL3 and LGPL2 apply at the same time. * libxml2: this is MIT not LGPL. * pango: LGPL seems to apply only partially, unclear license for the rest. --- mingw-w64-atk/PKGBUILD | 6 ++++-- mingw-w64-cairo/PKGBUILD | 10 ++++++++-- mingw-w64-drmingw-git/PKGBUILD | 5 +++-- mingw-w64-drmingw/PKGBUILD | 4 ++-- mingw-w64-enchant/PKGBUILD | 6 ++++-- mingw-w64-freetype/PKGBUILD | 10 ++++++++-- mingw-w64-gdk-pixbuf2/PKGBUILD | 6 ++++-- mingw-w64-gettext/PKGBUILD | 19 +++++++++++++++++-- mingw-w64-glib2/PKGBUILD | 7 +++++-- mingw-w64-gtk2/PKGBUILD | 6 ++++-- mingw-w64-gtkspell/PKGBUILD | 6 ++++-- mingw-w64-libiconv/PKGBUILD | 16 ++++++++++++++-- mingw-w64-libxml2/PKGBUILD | 9 +++++++-- mingw-w64-meanwhile/PKGBUILD | 6 ++++-- mingw-w64-pango/PKGBUILD | 17 +++++++++++++++-- mingw-w64-perl/PKGBUILD | 9 +++++++-- mingw-w64-shared-mime-info/PKGBUILD | 6 ++++-- 17 files changed, 114 insertions(+), 34 deletions(-) diff --git a/mingw-w64-atk/PKGBUILD b/mingw-w64-atk/PKGBUILD index 658e8846fa..6b094b7d0a 100644 --- a/mingw-w64-atk/PKGBUILD +++ b/mingw-w64-atk/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=atk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.14.0 -pkgrel=1 +pkgrel=2 pkgdesc="A library providing a set of interfaces for accessibility (mingw-w64)" arch=('any') url="http://www.gtk.org" -license=("LGPL") +license=(LGPL2) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") @@ -41,4 +42,5 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-cairo/PKGBUILD b/mingw-w64-cairo/PKGBUILD index 7395e64c14..834b7849a3 100644 --- a/mingw-w64-cairo/PKGBUILD +++ b/mingw-w64-cairo/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=cairo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.14.0 -pkgrel=2 +pkgrel=3 pkgdesc="Cairo vector graphics library (mingw-w64)" arch=('any') url="http://cairographics.org" -license=("LGPL, MPL") +license=(LGPL2.1 MPL1.1) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-glib2" @@ -83,4 +84,9 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install + + # Licenses + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING-LGPL-2.1" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING-LGPL-2.1" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING-MPL-1.1" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING-MPL-1.1" } diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index 98251a6ca4..477449ab76 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -1,12 +1,13 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=drmingw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=r182.867ab17 -pkgrel=1 +pkgrel=2 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') -license=('GPL' 'LGPL') +license=(LGPL2) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") diff --git a/mingw-w64-drmingw/PKGBUILD b/mingw-w64-drmingw/PKGBUILD index eadf6b1b65..3b6ec41531 100644 --- a/mingw-w64-drmingw/PKGBUILD +++ b/mingw-w64-drmingw/PKGBUILD @@ -4,10 +4,10 @@ _realname=drmingw pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) pkgver=0.6.4 -pkgrel=1 +pkgrel=2 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') -license=('GPL' 'LGPL') +license=(LGPL2) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") url=('https://github.com/jrfonseca/drmingw') diff --git a/mingw-w64-enchant/PKGBUILD b/mingw-w64-enchant/PKGBUILD index 7c23d49d92..66cf66c893 100644 --- a/mingw-w64-enchant/PKGBUILD +++ b/mingw-w64-enchant/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=enchant pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.0 -pkgrel=6 +pkgrel=7 pkgdesc="Enchanting Spell Checking Library (mingw-w64)" arch=('any') url="http://www.abisource.com/" -license=("LGPL-2.1+") +license=(LGPL2.1) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-glib2 @@ -59,4 +60,5 @@ package() { cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" # MSYS2_ARG_CONV_EXCL="-DENCHANT_USPELL_DICT_DIR=;-DENCHANT_MYSPELL_DICT_DIR=;-DENCHANT_ISPELL_DICT_DIR=;-DENCHANT_PREFIX_DIR=;-DENCHANT_GLOBAL_MODULE_DIR=;-DENCHANT_GLOBAL_ORDERING=;-DENCHANT_BIN_DIR=" make DESTDIR="${pkgdir}" install + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" } diff --git a/mingw-w64-freetype/PKGBUILD b/mingw-w64-freetype/PKGBUILD index ddc0787bd6..559b9044c2 100644 --- a/mingw-w64-freetype/PKGBUILD +++ b/mingw-w64-freetype/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=freetype pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.5.5 -pkgrel=1 +pkgrel=2 pkgdesc="TrueType font rendering library (mingw-w64)" arch=('any') url="http://www.freetype.org/" -license=('GPL') +license=(GPL2+ custom:FreeType) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-libpng" @@ -59,4 +60,9 @@ build() { package () { cd "${srcdir}/build-${CARCH}" make DESTDIR="${pkgdir}" install + + # Licenses + install -Dm644 "${srcdir}/${_realname}-${pkgver}/docs/LICENSE.TXT" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE.TXT" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/docs/GPLv2.TXT" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/GPLv2.TXT" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/docs/FTL.TXT" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/FTL.TXT" } diff --git a/mingw-w64-gdk-pixbuf2/PKGBUILD b/mingw-w64-gdk-pixbuf2/PKGBUILD index 06e28f6890..f73b20be6c 100644 --- a/mingw-w64-gdk-pixbuf2/PKGBUILD +++ b/mingw-w64-gdk-pixbuf2/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=gdk-pixbuf2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.31.1 -pkgrel=1 +pkgrel=2 pkgdesc="An image loading library (mingw-w64)" arch=('any') url="http://www.gtk.org" -license=("LGPL") +license=(LGPL2) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-glib2>=2.37.2" @@ -50,4 +51,5 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + install -Dm644 "${srcdir}/gdk-pixbuf-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index 136760e7b5..a6b0ae4cb8 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -1,16 +1,20 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=gettext pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.19.4 -pkgrel=1 +pkgrel=2 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="GNU internationalization library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv") # "${MINGW_PACKAGE_PREFIX}-termcap" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-ncurses") options=('strip' 'staticlibs') -license=('GPL' 'LGPL') + +# GPL3 for the package as a whole and LGPL for some parts, see the license files +license=(GPL3 partial:'LGPL2.1') + url="http://www.gnu.org/software/gettext/" source=("http://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-$pkgver.tar.gz"{,.sig} 00-relocatex-libintl-0.18.3.1.patch @@ -70,4 +74,15 @@ build() package() { cd $srcdir/build-${MINGW_CHOST} make DESTDIR="$pkgdir" install + + # Licenses + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/gettext-runtime/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/gettext-runtime/COPYING" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/gettext-runtime/intl/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/gettext-runtime/intl/COPYING.LIB" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/gettext-runtime/libasprintf/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/gettext-runtime/libasprintf/COPYING" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/gettext-runtime/libasprintf/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/gettext-runtime/libasprintf/COPYING.LIB" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/gettext-tools/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/gettext-tools/COPYING" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/gettext-tools/gnulib-lib/libxml/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/gettext-tools/gnulib-lib/libxml/COPYING" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/gnulib-local/lib/libxml/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/gnulib-local/lib/libxml/COPYING" + rm "${pkgdir}${MINGW_PREFIX}/share/${_realname}/intl/COPYING.LIB" } diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index b571fad1d1..2e0e43e2ee 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.42.1 -pkgrel=2 +pkgrel=3 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" -license=('LGPL') +license=(LGPL2) options=('!debug' 'strip' 'staticlibs') install=glib2-${CARCH}.install depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" @@ -110,4 +111,6 @@ package() { #rm -f "${pkgdir}${MINGW_PREFIX}/bin/gdbus-codegen" #rm -rf "${pkgdir}${MINGW_PREFIX}/lib/gdbus-2.0" + + install -Dm644 "${srcdir}/glib-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-gtk2/PKGBUILD b/mingw-w64-gtk2/PKGBUILD index d2a15a7002..958c04c87b 100644 --- a/mingw-w64-gtk2/PKGBUILD +++ b/mingw-w64-gtk2/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=gtk2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.24.25 -pkgrel=1 +pkgrel=2 pkgdesc="GTK+ is a multi-platform toolkit (v2) (mingw-w64)" arch=('any') url="http://www.gtk.org" -license=("LGPL") +license=(LGPL2) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pkg-config" @@ -90,4 +91,5 @@ package() { make -j1 DESTDIR="$pkgdir" install install -Dm644 "$srcdir/gtkrc" "${pkgdir}${MINGW_PREFIX}/share/gtk-2.0/gtkrc.example" find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + install -Dm644 "${srcdir}/gtk+-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-gtkspell/PKGBUILD b/mingw-w64-gtkspell/PKGBUILD index d50216d002..9cd8be677a 100644 --- a/mingw-w64-gtkspell/PKGBUILD +++ b/mingw-w64-gtkspell/PKGBUILD @@ -1,14 +1,15 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=gtkspell pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.16 -pkgrel=1 +pkgrel=2 pkgdesc="Provides word-processor-style highlighting and replacement of misspelled words in a GtkTextView widget (mingw-w64)" arch=('any') url="http://gtkspell.sourceforge.net/" -license=("GPL") +license=(GPL2) makedepends=("gtk-doc" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" @@ -43,4 +44,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libiconv/PKGBUILD b/mingw-w64-libiconv/PKGBUILD index dbd5c0058d..c02cc934d1 100644 --- a/mingw-w64-libiconv/PKGBUILD +++ b/mingw-w64-libiconv/PKGBUILD @@ -1,15 +1,21 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=libiconv pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.14 -pkgrel=2 +pkgrel=3 pkgdesc='Libiconv is a conversion library' groups=("${MINGW_PACKAGE_PREFIX}") arch=('any') url='http://www.gnu.org/software/libiconv/' -license=('LGPL') + +# Some parts are GPL3, some parts are LGPL2, see README. +# TODO: what is the license for the package as a whole? Is LGPL 2.0 compatible +# with GPL3, so that GPL3 could be applied? +license=(partial:'GPL3' partial:'LGPL2') + source=("http://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-${pkgver}.tar.gz" 0001-compile-relocatable-in-gnulib.mingw.patch 0002-fix-cr-for-awk-in-configure.all.patch) @@ -49,4 +55,10 @@ package() { cd ${srcdir}/${_realname}-${pkgver} make install DESTDIR="${pkgdir}" rm -f ${pkgdir}${MINGW_PREFIX}/lib/charset.alias + + # Licenses + install -Dm644 "${srcdir}/${_realname}-${pkgver}/README" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/libcharset/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/libcharset/COPYING.LIB" } diff --git a/mingw-w64-libxml2/PKGBUILD b/mingw-w64-libxml2/PKGBUILD index b67c0e88d3..88c0861647 100644 --- a/mingw-w64-libxml2/PKGBUILD +++ b/mingw-w64-libxml2/PKGBUILD @@ -1,16 +1,17 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=libxml2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.9.2 -pkgrel=1 +pkgrel=2 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="XML parsing library, version 2 (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-xz") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python2") options=('strip' 'staticlibs') -license=('LGPL') +license=(MIT) url="http://www.xmlsoft.org/" install=${_realname}-${CARCH}.install source=("http://xmlsoft.org/sources/libxml2-${pkgver}.tar.gz" @@ -159,4 +160,8 @@ package() cd ${srcdir}/build-static-${CARCH} install -m 0644 .libs/libxml2.a "${pkgdir}${MINGW_PREFIX}"/lib/ + + # License + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + mv "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}-${pkgver}/Copyright" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/Copyright" } diff --git a/mingw-w64-meanwhile/PKGBUILD b/mingw-w64-meanwhile/PKGBUILD index 4c74819aad..d5ec7abd3e 100644 --- a/mingw-w64-meanwhile/PKGBUILD +++ b/mingw-w64-meanwhile/PKGBUILD @@ -2,15 +2,16 @@ # Contributor: Marek Skrobacki # Contributor: Alasdair Haswell # Maintainer: Zach Bacon <11doctorwhocanada@gmail.com> +# Contributor: Renato Silva _realname=meanwhile pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.0.2 -pkgrel=1 +pkgrel=2 pkgdesc="Meanwhile libraries (mingw64)" arch=('any') url="http://sourceforge.net/projects/meanwhile" -license=('GPL') +license=(LGPL2) depends=("${MINGW_PACKAGE_PREFIX}-glib2") conflicts=('meanwhile-svn') source=(http://downloads.sourceforge.net/sourceforge/meanwhile/${_realname}-$pkgver.tar.gz @@ -51,4 +52,5 @@ build() { package() { cd "${srcdir}"/build-${CARCH} make DESTDIR=$pkgdir install + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-pango/PKGBUILD b/mingw-w64-pango/PKGBUILD index cea9d33986..ccb0010a8d 100644 --- a/mingw-w64-pango/PKGBUILD +++ b/mingw-w64-pango/PKGBUILD @@ -1,13 +1,22 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=pango pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.36.8 -pkgrel=1 +pkgrel=2 pkgdesc="A library for layout and rendering of text (mingw-w64)" arch=('any') url="http://www.pango.org" -license=("LGPL") + +# TODO: what is the license for the package as a whole? The README file says +# that most of the code is LGPL but some parts are "GPL/FreeType". However this +# non-LGPL note makes reference to non-existing files, so would LGPL apply to +# the whole code? If this note is still correct, are the GPL/FreeType parts +# under either or both of these licenses, and which versions? What license is +# compatible with the answers? +license=(partial:'LGPL2') + makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") @@ -56,4 +65,8 @@ package() { make DESTDIR="$pkgdir" install install -m755 -d "${pkgdir}${MINGW_PREFIX}/etc/pango" find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + + # License + install -Dm644 "${srcdir}/${_realname}-${pkgver}/README" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-perl/PKGBUILD b/mingw-w64-perl/PKGBUILD index 212b473f2b..3c80700c51 100644 --- a/mingw-w64-perl/PKGBUILD +++ b/mingw-w64-perl/PKGBUILD @@ -4,10 +4,10 @@ _name=perl url='http://www.perl.org' pkgdesc='A highly capable, feature-rich programming language (mingw-w64)' -license=(GPL PerlArtistic) +license=(GPL1+ Artistic1) arch=(any) pkgver=5.20.1 -pkgrel=1 +pkgrel=2 install="perl-${CARCH}.install" options=(staticlibs strip '!purge') @@ -62,6 +62,11 @@ package() { mkdir -p lib/perl5/vendor_perl attrib.exe -r //s + # Licenses + install -Dm644 "${srcdir}/${_name}-${pkgver}/README" share/licenses/${_name}/README + install -Dm644 "${srcdir}/${_name}-${pkgver}/Copying" share/licenses/${_name}/Copying + install -Dm644 "${srcdir}/${_name}-${pkgver}/Artistic" share/licenses/${_name}/Artistic + # Path relocation. This is done by replacing hard-coded paths with relocate # patterns that will be resolved on package installation. The HTML # documentation is handled with a patch, the rest is handled below. diff --git a/mingw-w64-shared-mime-info/PKGBUILD b/mingw-w64-shared-mime-info/PKGBUILD index 82c1ae49fa..98f9cc53a5 100644 --- a/mingw-w64-shared-mime-info/PKGBUILD +++ b/mingw-w64-shared-mime-info/PKGBUILD @@ -1,12 +1,13 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=shared-mime-info pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3 -pkgrel=1 +pkgrel=2 pkgdesc="Freedesktop.org Shared MIME Info (mingw-w64)" arch=('any') -license=('GPL') +license=(GPL2) depends=("${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-glib2") makedepends=('intltool' "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gettext") install=${_realname}-${CARCH}.install @@ -45,4 +46,5 @@ package() { sed -e "s|%PROGNAME%|GNU.update-mime-database|g" \ -e "s|%ARCH%|${_arch}|g" \ -i ${pkgdir}${MINGW_PREFIX}/bin/update-mime-database.exe.manifest + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 18e0b43e8a50b73c096aac2e8103e89244e92d06 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Sat, 7 Feb 2015 15:54:31 -0200 Subject: [PATCH 0479/2060] Add/fix/improve licenses for gcc-libs and winpthreads-git. * gcc-libs - most libraries are GPL3+ with GCC Runtime Library Exception, but libquadmath is LGPL2+. The package as a whole is GPL3+. This is explained in a generated readme file. The license files are now installed. * winpthreads-git - The exact license for the resulting packages and/or relevant parts of them is unclear. For now: - License has been specified as permissive-like. - Both libwinpthread and winpthreads now install the top COPYING file. - libwinpthread now installs mingw-w64-libraries/winpthreads/COPYING. --- mingw-w64-gcc/PKGBUILD | 24 +++++++++++++++++++++++- mingw-w64-winpthreads-git/PKGBUILD | 15 ++++++++++++--- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 23fe18b1a3..fd75693132 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov # Contributor: Alexey Borzenkov # Contributor: Ray Donnelly +# Contributor: Renato Silva _realname=gcc pkgname=( @@ -12,7 +13,7 @@ pkgname=( "${MINGW_PACKAGE_PREFIX}-${_realname}-objc" ) pkgver=4.9.2 -pkgrel=2 +pkgrel=3 pkgdesc="GCC for the MinGW-w64" arch=('any') url="http://gcc.gnu.org" @@ -242,6 +243,27 @@ build() { package_mingw-w64-gcc-libs() { pkgdesc="GNU Compiler Collection (libraries) for MinGW-w64" depends=("${MINGW_PACKAGE_PREFIX}-gmp" "${MINGW_PACKAGE_PREFIX}-libwinpthread") + + # Licensing information + + # Part of the package is GCCRLE, part is LGPL2+, see README generation below. + # Since the packaged GCCRLE libraries are also GPL3+, and LGPL2+ is compatible + # with GPL3+, the whole package can be redistributed under GPL3+. + license=(GPL3+ partial:'GCCRLE' partial:'LGPL2+') + + # We explain the licensing in this generated README file + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs" + cat << ENDFILE > "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/README" +The libgcc, libssp, libstdc++, libgomp and libatomic libraries are covered by +GPL3+ with the GCC Runtime Library Exception. The libquadmath library is covered +by LGPL2+. The package as a whole can be redistributed under GPL3+. +ENDFILE + + # License files + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING3" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/COPYING3" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/COPYING.LIB" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.RUNTIME" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/COPYING.RUNTIME" + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin cd ${srcdir}${MINGW_PREFIX} diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index 968ee8e55d..f4ce6016fa 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -1,15 +1,16 @@ # Maintainer: Alexey Pavlov # Contributor: Martell Malone +# Contributor: Renato Silva _realname=winpthreads pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") _ver_base=4.0.0 -pkgver=4.0.0.4402.95c900f +pkgver=4.0.0.4443.54a3822 pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" arch=('any') url="http://mingw-w64.sourceforge.net" -license=('custom') +license=(custom:'Permissive-like') # TODO: clarify groups=("${MINGW_PACKAGE_PREFIX}-toolchain" "${MINGW_PACKAGE_PREFIX}") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" @@ -66,6 +67,12 @@ build() { make } +_install_licenses() { + # TODO: any more license files? + install -Dm644 ${srcdir}/${_realname}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/$1/COPYING + install -Dm644 ${srcdir}/${_realname}/mingw-w64-libraries/winpthreads/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/$1/mingw-w64-libraries/winpthreads/COPYING +} + package_winpthreads() { depends=("${MINGW_PACKAGE_PREFIX}-crt-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git=${pkgver}") replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn") @@ -80,7 +87,7 @@ package_winpthreads() { mv ${pkgdir}${MINGW_PREFIX}/lib ${pkgdir}${MINGW_PREFIX}/${MINGW_CHOST}/ rm -rf ${pkgdir}${MINGW_PREFIX}/bin - install -Dm644 ${srcdir}/${_realname}/mingw-w64-libraries/winpthreads/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING + _install_licenses ${_realname} } package_libwinpthread() { @@ -93,6 +100,8 @@ package_libwinpthread() { rm -rf ${pkgdir}${MINGW_PREFIX}/include rm -rf ${pkgdir}${MINGW_PREFIX}/lib + + _install_licenses libwinpthread } # Wrappers for package functions From 19b0223fa6b55c1d021a75ba6a632e9beeb5c2ad Mon Sep 17 00:00:00 2001 From: Shoozza Date: Sat, 7 Feb 2015 19:35:20 +0100 Subject: [PATCH 0480/2060] allegro: Update to 5.0.11 --- mingw-w64-allegro/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-allegro/PKGBUILD b/mingw-w64-allegro/PKGBUILD index 5c9aa09f62..5550534d75 100644 --- a/mingw-w64-allegro/PKGBUILD +++ b/mingw-w64-allegro/PKGBUILD @@ -2,8 +2,8 @@ _realname=allegro pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.0.10 -pkgrel=2 +pkgver=5.0.11 +pkgrel=1 pkgdesc="Portable library mainly aimed at video game and multimedia programming (mingw-w64)" arch=(any) url="http://alleg.sourceforge.net" @@ -32,7 +32,7 @@ options=('strip' 'staticlibs') source=("http://downloads.sourceforge.net/alleg/allegro-$pkgver.tar.gz") conflicts=("${MINGW_PACKAGE_PREFIX}-allegro-static") provides=("${MINGW_PACKAGE_PREFIX}-allegro-static") -sha256sums=('71b81080f34f6e485edd0c51f22923c18ff967d5db438e591e6f3885d5bdcda1') +sha256sums=('49fe14c9571463ba08db4ff778d1fbb15e49f9c33bdada3ac8599e04330ea531') prepare() { cd "$srcdir/allegro-$pkgver" From 42d1b51fece008fc84830efc4b978b85bc0ab8d9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 7 Feb 2015 21:04:14 +0300 Subject: [PATCH 0481/2060] python-beaker: Update to 1.6.5 --- mingw-w64-python-beaker/PKGBUILD | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mingw-w64-python-beaker/PKGBUILD b/mingw-w64-python-beaker/PKGBUILD index 200813ff0e..4f036c362b 100644 --- a/mingw-w64-python-beaker/PKGBUILD +++ b/mingw-w64-python-beaker/PKGBUILD @@ -2,17 +2,16 @@ # Contributor: Ray Donnelly _realname=beaker - pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.6.4 -pkgrel=3 +pkgver=1.6.5 +pkgrel=1 pkgdesc="Caching and sessions WSGI middleware for use with web applications and stand-alone Python scripts and applications (mingw-w64)" arch=('any') license=('custom') url="http://beaker.groovie.org/" depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") -source=("http://cheeseshop.python.org/packages/source/B/Beaker/Beaker-${pkgver}.tar.gz") -md5sums=('c2e102870ed4c53104dec48ceadf8e9d') +source=(https://github.com/bbangert/beaker/archive/v${pkgver}.tar.gz) +md5sums=('7776b5722b4669bfa0946731d3bd11d8') prepare() { cd "${srcdir}/Beaker-${pkgver}" From 407c1233c99078032bcac5359c8d994b93fad72d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 7 Feb 2015 21:05:04 +0300 Subject: [PATCH 0482/2060] python-pip: Update to 6.0.8 --- mingw-w64-python-pip/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-pip/PKGBUILD b/mingw-w64-python-pip/PKGBUILD index f6de42246c..9b4b701d37 100644 --- a/mingw-w64-python-pip/PKGBUILD +++ b/mingw-w64-python-pip/PKGBUILD @@ -2,7 +2,7 @@ _realname=pip pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=6.0.7 +pkgver=6.0.8 pkgrel=1 pkgdesc="An easy_install replacement for installing pypi python packages (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(http://pypi.python.org/packages/source/p/pip/${_realname}-${pkgver}.tar.gz) -md5sums=('26fa8f4c0f9a78c6c96ccfbcf34f5c31') +md5sums=('2332e6f97e75ded3bddde0ced01dbda3') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 0f09e6972673c2f70408b40acda095cdb609a9fb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 7 Feb 2015 21:06:22 +0300 Subject: [PATCH 0483/2060] python-setuptools: Update to 12.0.5 --- mingw-w64-python-setuptools/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index 3ef1492bb4..5b2cdc06e1 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -5,7 +5,7 @@ _realname=setuptools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.4 -pkgver=10.1 +pkgver=12.0.5 #pkgver=5.4.1 pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" @@ -18,7 +18,7 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('6463f082bdf194d3b2f97d8ab10cf07427ee9200' +sha1sums=('cd49661e090a397d77c690f7f2d06852b7086be9' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' @@ -46,11 +46,11 @@ prepare() { cp -r setuptools-${pkgver} setuptools-python3 cd "${srcdir}"/setuptools-python2 - sed -i -e "s|^#\!.*/usr/bin/python|#!/usr/bin/python2|" setuptools/tests/test_resources.py + sed -i -e "s|^#\!.*/usr/bin/python|#!/usr/bin/python2|" tests/manual_test.py sed -i -e "s|^#\!.*/usr/bin/env python|#!/usr/bin/env python2|" setuptools/command/easy_install.py cd "${srcdir}"/setuptools-python3 - sed -i -e "s|^#\!.*/usr/bin/python|#!/usr/bin/python3|" setuptools/tests/test_resources.py + sed -i -e "s|^#\!.*/usr/bin/python|#!/usr/bin/python3|" tests/manual_test.py sed -i -e "s|^#\!.*/usr/bin/env python|#!/usr/bin/env python3|" setuptools/command/easy_install.py } From 021fbda6bea61e7d1b72e55e8ab73181a2b7de4b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 7 Feb 2015 22:19:34 +0300 Subject: [PATCH 0484/2060] Rebuild packages against poppler 0.31.1 --- mingw-w64-evince/PKGBUILD | 2 +- mingw-w64-gimp/PKGBUILD | 2 +- mingw-w64-inkscape/PKGBUILD | 2 +- mingw-w64-openscenegraph-git/PKGBUILD | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index 0961b19661..0de08870f5 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -3,7 +3,7 @@ _realname=evince pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.14.1 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Document (PostScript, PDF) viewer (mingw-w64)" options=(strip staticlibs) diff --git a/mingw-w64-gimp/PKGBUILD b/mingw-w64-gimp/PKGBUILD index 0d7e6517e2..422b9b7b06 100644 --- a/mingw-w64-gimp/PKGBUILD +++ b/mingw-w64-gimp/PKGBUILD @@ -3,7 +3,7 @@ _realname=gimp pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.8.14 -pkgrel=1 +pkgrel=2 pkgdesc="GNU Image Manipulation Program (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index cdcc898827..4362619f1f 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -11,7 +11,7 @@ fi _realname=inkscape pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.91 -pkgrel=2 +pkgrel=3 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') url="http://inkscape.sourceforge.net/" diff --git a/mingw-w64-openscenegraph-git/PKGBUILD b/mingw-w64-openscenegraph-git/PKGBUILD index 6879f91eae..f730b9940f 100644 --- a/mingw-w64-openscenegraph-git/PKGBUILD +++ b/mingw-w64-openscenegraph-git/PKGBUILD @@ -2,8 +2,8 @@ _realname=OpenSceneGraph pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-git") -pkgver=r13064.6b9d3f7 -pkgrel=1 +pkgver=r13068.2bdb951 +pkgrel=2 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" arch=('any') url="http://www.openscenegraph.org/" From 7530f9e89502136bf233387a5cdfd6bf7378fe67 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 7 Feb 2015 21:19:44 +0000 Subject: [PATCH 0485/2060] kicad-git: Add bzr makedepends --- mingw-w64-kicad-git/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-kicad-git/PKGBUILD b/mingw-w64-kicad-git/PKGBUILD index 1a26f125f6..c50f3b2791 100644 --- a/mingw-w64-kicad-git/PKGBUILD +++ b/mingw-w64-kicad-git/PKGBUILD @@ -21,6 +21,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-swig" + "bzr" "doxygen") source=("${_realname}"::"git+https://github.com/KiCad/kicad-source-mirror.git" "${_realname}-docs"::"bzr+https://code.launchpad.net/~kicad-developers/kicad/doc" From 184faad1e71c2256e321c6b4c98e132296a9423b Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Sat, 7 Feb 2015 16:32:29 -0200 Subject: [PATCH 0486/2060] gtk-doc: Update to 1.21. --- mingw-w64-gtk-doc/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gtk-doc/PKGBUILD b/mingw-w64-gtk-doc/PKGBUILD index 70246495df..9c5cc27bb9 100644 --- a/mingw-w64-gtk-doc/PKGBUILD +++ b/mingw-w64-gtk-doc/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtk-doc pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.20 +pkgver=1.21 pkgrel=1 pkgdesc="Documentation tool for public library API (mingw-w64)" arch=('any') @@ -28,7 +28,7 @@ optdepends=(#"${MINGW_PACKAGE_PREFIX}-jade: SGML support" ) url="http://www.gtk.org/gtk-doc/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.xz) -md5sums=('58532fed036f72fc3bfd4fe79473247b') +md5sums=('e361de4750b707590d9ea1b5550fa738') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 0ca182490096baee11d4c588b3d7c345d4c6180e Mon Sep 17 00:00:00 2001 From: David Macek Date: Sat, 7 Feb 2015 23:21:50 +0100 Subject: [PATCH 0487/2060] Added missing VCS packages to makedepends --- mingw-w64-SDL2_sound-hg/PKGBUILD | 1 + mingw-w64-assimp-git/PKGBUILD | 2 +- mingw-w64-atom-editor/PKGBUILD | 3 ++- mingw-w64-atom-shell/PKGBUILD | 3 ++- mingw-w64-babl-git/PKGBUILD | 3 ++- mingw-w64-binutils-git/PKGBUILD | 2 +- mingw-w64-blender-git/PKGBUILD | 3 ++- mingw-w64-ccache-git/PKGBUILD | 2 +- mingw-w64-clang-svn/PKGBUILD | 2 +- mingw-w64-clutter-gtk/PKGBUILD | 4 +++- mingw-w64-cmake-git/PKGBUILD | 5 ++++- mingw-w64-cocos2dx-console-git/PKGBUILD | 1 + mingw-w64-cocos2dx-git/PKGBUILD | 2 +- mingw-w64-codelite-git/PKGBUILD | 3 ++- mingw-w64-cogl/PKGBUILD | 2 +- mingw-w64-conemu-git/PKGBUILD | 1 + mingw-w64-ctpl-git/PKGBUILD | 3 ++- mingw-w64-drmingw-git/PKGBUILD | 2 +- mingw-w64-emacs-git/PKGBUILD | 1 + mingw-w64-emacs/PKGBUILD | 1 + mingw-w64-git-git/PKGBUILD | 1 + mingw-w64-gnonlin-git/PKGBUILD | 3 ++- mingw-w64-gst-python-git/PKGBUILD | 1 + mingw-w64-kcwsh-qt5-git/PKGBUILD | 3 ++- mingw-w64-kicad-git/PKGBUILD | 1 + mingw-w64-libkcw-qt5-git/PKGBUILD | 2 +- mingw-w64-librocket-git/PKGBUILD | 2 +- mingw-w64-libvmime-git/PKGBUILD | 2 +- mingw-w64-octave-hg/PKGBUILD | 1 + mingw-w64-opencolorio/PKGBUILD | 3 ++- mingw-w64-openscad-git/PKGBUILD | 3 ++- mingw-w64-openshadinglanguage-git/PKGBUILD | 3 ++- mingw-w64-python-httplib2/PKGBUILD | 8 +++++--- mingw-w64-qbs-git/PKGBUILD | 1 + mingw-w64-qca-qt4-git/PKGBUILD | 13 +++++++------ mingw-w64-qt-installer-framework/PKGBUILD | 2 +- mingw-w64-qt-solutions-git/PKGBUILD | 2 +- mingw-w64-qt5-git/PKGBUILD | 1 + mingw-w64-shishi-git/PKGBUILD | 2 +- mingw-w64-virt-viewer-git/PKGBUILD | 3 ++- mingw-w64-x264/PKGBUILD | 2 +- mingw-w64-xmlstarlet/PKGBUILD | 2 +- mingw-w64-zlib/PKGBUILD | 1 + 43 files changed, 70 insertions(+), 38 deletions(-) diff --git a/mingw-w64-SDL2_sound-hg/PKGBUILD b/mingw-w64-SDL2_sound-hg/PKGBUILD index acdedd39d9..0075a3b95c 100644 --- a/mingw-w64-SDL2_sound-hg/PKGBUILD +++ b/mingw-w64-SDL2_sound-hg/PKGBUILD @@ -18,6 +18,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-SDL2" "${MINGW_PACKAGE_PREFIX}-flac" "${MINGW_PACKAGE_PREFIX}-speex" "${MINGW_PACKAGE_PREFIX}-physfs-hg") +makedepends=('mercurial') conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('strip' 'staticlibs') diff --git a/mingw-w64-assimp-git/PKGBUILD b/mingw-w64-assimp-git/PKGBUILD index f558eb9fbb..ce7b5383be 100644 --- a/mingw-w64-assimp-git/PKGBUILD +++ b/mingw-w64-assimp-git/PKGBUILD @@ -8,7 +8,7 @@ pkgdesc="Portable Open Source library to import various well-known 3D model form arch=('any') license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" 'unzip') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" 'unzip' 'git') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") url=('http://assimp.sourceforge.net/index.html') diff --git a/mingw-w64-atom-editor/PKGBUILD b/mingw-w64-atom-editor/PKGBUILD index faf2129a48..d29ff0c9d6 100644 --- a/mingw-w64-atom-editor/PKGBUILD +++ b/mingw-w64-atom-editor/PKGBUILD @@ -12,7 +12,8 @@ license=('MIT') options=() shasums=('SKIP') makedepends=("${MINGW_PACKAGE_PREFIX}-ninja" - "${MINGW_PACKAGE_PREFIX}-python2") + "${MINGW_PACKAGE_PREFIX}-python2" + "git") pkgver() { cd "$srcdir"/${_realname}-${CARCH} diff --git a/mingw-w64-atom-shell/PKGBUILD b/mingw-w64-atom-shell/PKGBUILD index a32fb6e83d..17c0cbdc8b 100644 --- a/mingw-w64-atom-shell/PKGBUILD +++ b/mingw-w64-atom-shell/PKGBUILD @@ -14,7 +14,8 @@ license=('MIT') options=() shasums=('SKIP') makedepends=("${MINGW_PACKAGE_PREFIX}-ninja" - "${MINGW_PACKAGE_PREFIX}-python2") + "${MINGW_PACKAGE_PREFIX}-python2" + "git") pkgver() { cd "$srcdir"/${_realname}-${CARCH} diff --git a/mingw-w64-babl-git/PKGBUILD b/mingw-w64-babl-git/PKGBUILD index d59c07f9f2..261d03e640 100644 --- a/mingw-w64-babl-git/PKGBUILD +++ b/mingw-w64-babl-git/PKGBUILD @@ -10,7 +10,8 @@ pkgdesc="Dynamic Pixel Format Translation Library (mingw-w64)" arch=('any') url="http://gegl.org/babl/" license=("GPL-3.0+" "LGPL-3.0+") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-librsvg") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-librsvg" + "git") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' 'staticlibs') source=("${_realname}"::"git://git.gnome.org/babl") diff --git a/mingw-w64-binutils-git/PKGBUILD b/mingw-w64-binutils-git/PKGBUILD index dd68509ced..95f5441535 100644 --- a/mingw-w64-binutils-git/PKGBUILD +++ b/mingw-w64-binutils-git/PKGBUILD @@ -16,7 +16,7 @@ license=('GPL') #groups=("${MINGW_PACKAGE_PREFIX}-toolchain") depends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib") #checkdepends=('dejagnu' 'bc') -makedepends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib" "git") options=('staticlibs' '!distcc' '!ccache') # 'debug' '!strip') #install=binutils.install source=("${_realname}"::"git://sourceware.org/git/binutils-gdb.git#branch=${_realname}-${_base_ver//./_}-branch" diff --git a/mingw-w64-blender-git/PKGBUILD b/mingw-w64-blender-git/PKGBUILD index f1b25367e3..fef010b3e6 100644 --- a/mingw-w64-blender-git/PKGBUILD +++ b/mingw-w64-blender-git/PKGBUILD @@ -30,7 +30,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-numpy" "${MINGW_PACKAGE_PREFIX}-wintab-sdk") -makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-clang" "${MINGW_PACKAGE_PREFIX}-cmake") +makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-clang" "${MINGW_PACKAGE_PREFIX}-cmake" + "git") #[[ $CARCH == x86_64 ]] && makedepends+=('cuda') optdepends=('cuda: cycles renderer cuda support') options=(!strip staticlibs !buildflags) diff --git a/mingw-w64-ccache-git/PKGBUILD b/mingw-w64-ccache-git/PKGBUILD index 2a9748a184..63e283b0d5 100644 --- a/mingw-w64-ccache-git/PKGBUILD +++ b/mingw-w64-ccache-git/PKGBUILD @@ -9,7 +9,7 @@ pkgdesc="A compiler cache (mingw-w64)." arch=('any') url="http://ccache.samba.org/" license=("MIT") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "git") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 8f19aec085..a8ac1fe1c1 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -17,7 +17,7 @@ license=("custom:University of Illinois/NCSA Open Source License") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python3-sphinx" - "python2" "tar") + "python2" "tar" "subversion" "git") depends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') source=(#"llvm"::"svn+http://llvm.org/svn/llvm-project/llvm/trunk" diff --git a/mingw-w64-clutter-gtk/PKGBUILD b/mingw-w64-clutter-gtk/PKGBUILD index 498c2593a7..2a8f130af4 100644 --- a/mingw-w64-clutter-gtk/PKGBUILD +++ b/mingw-w64-clutter-gtk/PKGBUILD @@ -8,7 +8,9 @@ pkgdesc="Clutter integration with GTK+. (mingw-w64)" arch=('any') url="http://clutter-project.org/" license=("LGPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gobject-introspection") +makedepends=("${MINGW_PACKAGE_PREFIX}-gobject-introspection" + #"git" + ) depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-clutter" ) diff --git a/mingw-w64-cmake-git/PKGBUILD b/mingw-w64-cmake-git/PKGBUILD index 3130420fd1..7e79c8e51d 100644 --- a/mingw-w64-cmake-git/PKGBUILD +++ b/mingw-w64-cmake-git/PKGBUILD @@ -9,7 +9,10 @@ pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" license=("MIT") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-qt5") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-qt5" + "git") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-winpthreads" diff --git a/mingw-w64-cocos2dx-console-git/PKGBUILD b/mingw-w64-cocos2dx-console-git/PKGBUILD index 71a0f43241..2d98db4f4a 100644 --- a/mingw-w64-cocos2dx-console-git/PKGBUILD +++ b/mingw-w64-cocos2dx-console-git/PKGBUILD @@ -12,6 +12,7 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-cocos2d-x" "${MINGW_PACKAGE_PREFIX}-cmake") +makedepends=('git') options=('staticlibs' 'strip') source=(#"${_realname}"::"git+git://github.com/martell/cocos2d-console.git#branch=msys2") diff --git a/mingw-w64-cocos2dx-git/PKGBUILD b/mingw-w64-cocos2dx-git/PKGBUILD index 052e4de237..33896434d5 100644 --- a/mingw-w64-cocos2dx-git/PKGBUILD +++ b/mingw-w64-cocos2dx-git/PKGBUILD @@ -8,7 +8,7 @@ pkgdesc="Open source game framework written in C++ (mingw-w64)." arch=('any') url="http://www.cocos2d-x.org/" license=("MIT") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "make" ${MINGW_PACKAGE_PREFIX}-cmake) +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "make" "${MINGW_PACKAGE_PREFIX}-cmake" "git") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-glfw" diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index 1a6ace9488..464db29e60 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -18,7 +18,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-hunspell" optdepends=("${MINGW_PACKAGE_PREFIX}-clang") makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-clang") + "${MINGW_PACKAGE_PREFIX}-clang" + "git") options=(strip staticlibs !debug) source=("${_realname}::git+https://github.com/eranif/codelite.git" codelite-clang-deprecated.patch diff --git a/mingw-w64-cogl/PKGBUILD b/mingw-w64-cogl/PKGBUILD index 3d4454fa83..114e462402 100644 --- a/mingw-w64-cogl/PKGBUILD +++ b/mingw-w64-cogl/PKGBUILD @@ -8,7 +8,7 @@ pkgdesc="An object oriented GL/GLES Abstraction/Utility Layer. (mingw-w64)" arch=('any') url="http://www.clutter-project.org/" license=('GPL2') -makedepends=('automake' 'libtool' 'intltool' 'itstool' 'gtk-doc' 'gnome-doc-utils' 'yelp-tools') +makedepends=('automake' 'libtool' 'intltool' 'itstool' 'gtk-doc' 'gnome-doc-utils' 'yelp-tools' 'git') depends=("${MINGW_PACKAGE_PREFIX}-pango" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" ) diff --git a/mingw-w64-conemu-git/PKGBUILD b/mingw-w64-conemu-git/PKGBUILD index 8029573748..0f145c9a22 100644 --- a/mingw-w64-conemu-git/PKGBUILD +++ b/mingw-w64-conemu-git/PKGBUILD @@ -18,6 +18,7 @@ conflicts=( ) makedepends=( "${MINGW_PACKAGE_PREFIX}-gcc" + "git" ) options=( '!strip' diff --git a/mingw-w64-ctpl-git/PKGBUILD b/mingw-w64-ctpl-git/PKGBUILD index ebde22e5b4..bbd08c5951 100644 --- a/mingw-w64-ctpl-git/PKGBUILD +++ b/mingw-w64-ctpl-git/PKGBUILD @@ -9,7 +9,8 @@ arch=('any') pkgdesc="C Template (Parser) Library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gtk-doc") + "${MINGW_PACKAGE_PREFIX}-gtk-doc" + "git") options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://ctpl.tuxfamily.org/" diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index 477449ab76..f9a4e532c8 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -9,7 +9,7 @@ pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') license=(LGPL2) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "git") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") url=('https://github.com/jrfonseca/drmingw') diff --git a/mingw-w64-emacs-git/PKGBUILD b/mingw-w64-emacs-git/PKGBUILD index 1b26a16799..49239dda7d 100644 --- a/mingw-w64-emacs-git/PKGBUILD +++ b/mingw-w64-emacs-git/PKGBUILD @@ -34,6 +34,7 @@ depends=( makedepends=( "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git" ) options=( 'strip' diff --git a/mingw-w64-emacs/PKGBUILD b/mingw-w64-emacs/PKGBUILD index 341d3afb3c..e710b414d8 100644 --- a/mingw-w64-emacs/PKGBUILD +++ b/mingw-w64-emacs/PKGBUILD @@ -34,6 +34,7 @@ depends=( makedepends=( "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git" ) options=( 'strip' diff --git a/mingw-w64-git-git/PKGBUILD b/mingw-w64-git-git/PKGBUILD index d9b0d3caa2..4a2bc8e603 100644 --- a/mingw-w64-git-git/PKGBUILD +++ b/mingw-w64-git-git/PKGBUILD @@ -28,6 +28,7 @@ url="http://git-scm.com/" license=('GPL2') depends=("${MINGW_PACKAGE_PREFIX}-libiconv") +makedepends=('git') options=(!libtool strip staticlibs) diff --git a/mingw-w64-gnonlin-git/PKGBUILD b/mingw-w64-gnonlin-git/PKGBUILD index 5522ea46e2..d83b67adc0 100644 --- a/mingw-w64-gnonlin-git/PKGBUILD +++ b/mingw-w64-gnonlin-git/PKGBUILD @@ -12,7 +12,8 @@ url="http://gstreamer.freedesktop.org/" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-python2") + "${MINGW_PACKAGE_PREFIX}-python2" + "git") depends=("${MINGW_PACKAGE_PREFIX}-gst-plugins-base" "${MINGW_PACKAGE_PREFIX}-gstreamer") options=(!libtool strip staticlibs) diff --git a/mingw-w64-gst-python-git/PKGBUILD b/mingw-w64-gst-python-git/PKGBUILD index 63c3bf5257..7d53196279 100644 --- a/mingw-w64-gst-python-git/PKGBUILD +++ b/mingw-w64-gst-python-git/PKGBUILD @@ -12,6 +12,7 @@ license=('LGPL') depends=("${MINGW_PACKAGE_PREFIX}-gstreamer" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +makedepends=('git') url='http://gstreamer.freedesktop.org/modules/gst-python.html' options=(!libtool strip staticlibs) diff --git a/mingw-w64-kcwsh-qt5-git/PKGBUILD b/mingw-w64-kcwsh-qt5-git/PKGBUILD index 0c11b3776e..3247b66812 100644 --- a/mingw-w64-kcwsh-qt5-git/PKGBUILD +++ b/mingw-w64-kcwsh-qt5-git/PKGBUILD @@ -11,7 +11,8 @@ arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" license=('LGPL') -makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules" + "git") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') diff --git a/mingw-w64-kicad-git/PKGBUILD b/mingw-w64-kicad-git/PKGBUILD index c50f3b2791..32d6374f88 100644 --- a/mingw-w64-kicad-git/PKGBUILD +++ b/mingw-w64-kicad-git/PKGBUILD @@ -22,6 +22,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-swig" "bzr" + "git" "doxygen") source=("${_realname}"::"git+https://github.com/KiCad/kicad-source-mirror.git" "${_realname}-docs"::"bzr+https://code.launchpad.net/~kicad-developers/kicad/doc" diff --git a/mingw-w64-libkcw-qt5-git/PKGBUILD b/mingw-w64-libkcw-qt5-git/PKGBUILD index 2dcac04b73..661979941c 100644 --- a/mingw-w64-libkcw-qt5-git/PKGBUILD +++ b/mingw-w64-libkcw-qt5-git/PKGBUILD @@ -11,7 +11,7 @@ arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" license=('LGPL') -makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules" "git") depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') diff --git a/mingw-w64-librocket-git/PKGBUILD b/mingw-w64-librocket-git/PKGBUILD index 4c6ff1e9f5..12b0c47992 100644 --- a/mingw-w64-librocket-git/PKGBUILD +++ b/mingw-w64-librocket-git/PKGBUILD @@ -15,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-boost") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" - "make") + "make" "git") options=('staticlibs' 'strip') diff --git a/mingw-w64-libvmime-git/PKGBUILD b/mingw-w64-libvmime-git/PKGBUILD index 698f33c665..dbf4324dac 100644 --- a/mingw-w64-libvmime-git/PKGBUILD +++ b/mingw-w64-libvmime-git/PKGBUILD @@ -11,7 +11,7 @@ url="http://www.vmime.org/" arch=('any') license=('GPL3') options=(strip staticlibs) -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "git") depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-icu" "${MINGW_PACKAGE_PREFIX}-gnutls" diff --git a/mingw-w64-octave-hg/PKGBUILD b/mingw-w64-octave-hg/PKGBUILD index 54948a4efc..82b7b18e1e 100644 --- a/mingw-w64-octave-hg/PKGBUILD +++ b/mingw-w64-octave-hg/PKGBUILD @@ -26,6 +26,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-fftw>=3.2.2" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran" 'pcre' 'mercurial' + 'git' 'gperf' 'rsync' # ArchLinux uses suitesparse-octavecompat. diff --git a/mingw-w64-opencolorio/PKGBUILD b/mingw-w64-opencolorio/PKGBUILD index 029e93b288..372d75bd19 100644 --- a/mingw-w64-opencolorio/PKGBUILD +++ b/mingw-w64-opencolorio/PKGBUILD @@ -17,7 +17,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-tinyxml") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-yaml-cpp" - "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git") options=('strip') source=("${_realname}"::"git+https://github.com/imageworks/OpenColorIO.git" #http://github.com/imageworks/OpenColorIO/tarball/v$pkgver diff --git a/mingw-w64-openscad-git/PKGBUILD b/mingw-w64-openscad-git/PKGBUILD index 5a4a813478..323cd74981 100644 --- a/mingw-w64-openscad-git/PKGBUILD +++ b/mingw-w64-openscad-git/PKGBUILD @@ -17,7 +17,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt5" "${MINGW_PACKAGE_PREFIX}-qscintilla" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-eigen3") + "${MINGW_PACKAGE_PREFIX}-eigen3" + "git") options=(!strip staticlibs !buildflags) source=("${_realname}"::"git+https://github.com/openscad/openscad.git" #01-glew-library.patch diff --git a/mingw-w64-openshadinglanguage-git/PKGBUILD b/mingw-w64-openshadinglanguage-git/PKGBUILD index 8fd66a34cc..4ca0634cf1 100644 --- a/mingw-w64-openshadinglanguage-git/PKGBUILD +++ b/mingw-w64-openshadinglanguage-git/PKGBUILD @@ -25,7 +25,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-clang" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git") source=("${_realname}"::"git+https://github.com/imageworks/OpenShadingLanguage.git" 0001-mingw-w64-fix.patch 0002-dont-add-flex-include-dir.patch diff --git a/mingw-w64-python-httplib2/PKGBUILD b/mingw-w64-python-httplib2/PKGBUILD index bc8fc4087c..6a5e591992 100644 --- a/mingw-w64-python-httplib2/PKGBUILD +++ b/mingw-w64-python-httplib2/PKGBUILD @@ -13,9 +13,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-ca-certificates") makedepends=("${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" - "${MINGW_PACKAGE_PREFIX}-python3-setuptools") + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + #"git" + ) source=(#"git://github.com/jcgregorio/httplib2.git#commit=7d1b88a3cf" https://github.com/jcgregorio/httplib2/archive/v${pkgver}.tar.gz ssl_hostname.patch diff --git a/mingw-w64-qbs-git/PKGBUILD b/mingw-w64-qbs-git/PKGBUILD index 65973c4611..d4b914b991 100644 --- a/mingw-w64-qbs-git/PKGBUILD +++ b/mingw-w64-qbs-git/PKGBUILD @@ -26,6 +26,7 @@ pkgdesc='Qt Build Suite' url='http://qt-project.org' arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-qt5") +makedepends=('git') options=('docs' 'staticlibs') # '!strip' 'debug') provides=("${MINGW_PACKAGE_PREFIX}-qbs") conflicts=("${MINGW_PACKAGE_PREFIX}-qbs") diff --git a/mingw-w64-qca-qt4-git/PKGBUILD b/mingw-w64-qca-qt4-git/PKGBUILD index d8b1a3b615..75d5a4f6ba 100644 --- a/mingw-w64-qca-qt4-git/PKGBUILD +++ b/mingw-w64-qca-qt4-git/PKGBUILD @@ -10,12 +10,13 @@ url="http://delta.affinix.com/qca/" license=('LGPL') conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-qt5") makedepends=("${MINGW_PACKAGE_PREFIX}-qt4" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-gnupg" - "${MINGW_PACKAGE_PREFIX}-libgcrypt" - "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" - "${MINGW_PACKAGE_PREFIX}-nss") + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-gnupg" + "${MINGW_PACKAGE_PREFIX}-libgcrypt" + "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" + "${MINGW_PACKAGE_PREFIX}-nss" + "git") depends=("${MINGW_PACKAGE_PREFIX}-qt4") install=${_realname}-qt4-git-${CARCH}.install source=("${_realname}"::"git://anongit.kde.org/qca.git" diff --git a/mingw-w64-qt-installer-framework/PKGBUILD b/mingw-w64-qt-installer-framework/PKGBUILD index 2a9335bb17..964488839f 100644 --- a/mingw-w64-qt-installer-framework/PKGBUILD +++ b/mingw-w64-qt-installer-framework/PKGBUILD @@ -10,7 +10,7 @@ url='http://qt-project.org/' license=('GPL3' 'LGPL' 'FDL' 'custom') provides=("${MINGW_PACKAGE_PREFIX}-qt-${_realname}") makedepends=("${MINGW_PACKAGE_PREFIX}-qt5-static" "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-make") + "${MINGW_PACKAGE_PREFIX}-make" "git") options=('strip' 'staticlibs') #options=('!strip' 'debug' 'staticlibs') source=("${_realname}"::"git://gitorious.org/${_realname}/${_realname}.git" diff --git a/mingw-w64-qt-solutions-git/PKGBUILD b/mingw-w64-qt-solutions-git/PKGBUILD index 1836c77fad..5f4c630f8a 100644 --- a/mingw-w64-qt-solutions-git/PKGBUILD +++ b/mingw-w64-qt-solutions-git/PKGBUILD @@ -10,7 +10,7 @@ pkgdesc='Qt5 various components (mingw-w64)' url='https://qt.gitorious.org/qt-solutions' arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-qt5") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git") options=('docs' 'staticlibs' '!strip') # 'debug' '!strip' source=("${_realname}"::"git+https://github.com/Alexpux/qt-solutions.git") sha256sums=('SKIP') diff --git a/mingw-w64-qt5-git/PKGBUILD b/mingw-w64-qt5-git/PKGBUILD index 31a9db4a93..5dbfb46e6e 100644 --- a/mingw-w64-qt5-git/PKGBUILD +++ b/mingw-w64-qt5-git/PKGBUILD @@ -36,6 +36,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "gperf" "m4" "flex" + "git" "${MINGW_PACKAGE_PREFIX}-make") groups=("${MINGW_PACKAGE_PREFIX}-qt" "${MINGW_PACKAGE_PREFIX}-qt5") options=('!strip' 'staticlibs') diff --git a/mingw-w64-shishi-git/PKGBUILD b/mingw-w64-shishi-git/PKGBUILD index 8bfff01243..12f3645238 100644 --- a/mingw-w64-shishi-git/PKGBUILD +++ b/mingw-w64-shishi-git/PKGBUILD @@ -10,7 +10,7 @@ pkgdesc="a GNU implementation of the Kerberos 5 network security system (mingw-w arch=('any') url="https://www.gnu.org/software/shishi/" license=("GPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "wget") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "wget" "git") options=('strip' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gnutls" "${MINGW_PACKAGE_PREFIX}-libidn" diff --git a/mingw-w64-virt-viewer-git/PKGBUILD b/mingw-w64-virt-viewer-git/PKGBUILD index a4ee7dbceb..2805b10b30 100644 --- a/mingw-w64-virt-viewer-git/PKGBUILD +++ b/mingw-w64-virt-viewer-git/PKGBUILD @@ -12,7 +12,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-spice-gtk" "${MINGW_PACKAGE_PREFIX}-libxml2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gtk-doc" - "${MINGW_PACKAGE_PREFIX}-icoutils") + "${MINGW_PACKAGE_PREFIX}-icoutils" + "git") options=('strip' 'staticlibs') license=("LGPL 2.1") url="https://fedorapeople.org/" diff --git a/mingw-w64-x264/PKGBUILD b/mingw-w64-x264/PKGBUILD index 457d63544b..4283f60530 100644 --- a/mingw-w64-x264/PKGBUILD +++ b/mingw-w64-x264/PKGBUILD @@ -8,7 +8,7 @@ pkgdesc="Library for encoding H264/AVC video streams (mingw-w64)" arch=('any') url="http://www.videolan.org/developers/x264.html" license=("custom") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "yasm") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "yasm" "git") depends=("${MINGW_PACKAGE_PREFIX}-libwinpthread" "${MINGW_PACKAGE_PREFIX}-l-smash") options=('strip' 'staticlibs') diff --git a/mingw-w64-xmlstarlet/PKGBUILD b/mingw-w64-xmlstarlet/PKGBUILD index 80c14b513c..fa404962b1 100644 --- a/mingw-w64-xmlstarlet/PKGBUILD +++ b/mingw-w64-xmlstarlet/PKGBUILD @@ -14,7 +14,7 @@ md5sums=('SKIP') source=(${_name}::"git://xmlstar.git.sourceforge.net/gitroot/xmlstar/xmlstar") depends=(${MINGW_PACKAGE_PREFIX}-libxml2 ${MINGW_PACKAGE_PREFIX}-libxslt) -makedepends=(${MINGW_PACKAGE_PREFIX}-gcc ${MINGW_PACKAGE_PREFIX}-libiconv) +makedepends=(${MINGW_PACKAGE_PREFIX}-gcc ${MINGW_PACKAGE_PREFIX}-libiconv git) prepare() { cd "$srcdir/${_name}" diff --git a/mingw-w64-zlib/PKGBUILD b/mingw-w64-zlib/PKGBUILD index 812d0809ca..1e80a287ac 100644 --- a/mingw-w64-zlib/PKGBUILD +++ b/mingw-w64-zlib/PKGBUILD @@ -12,6 +12,7 @@ groups=("${MINGW_PACKAGE_PREFIX}") license=(ZLIB) url="http://www.zlib.net/" depends=("${MINGW_PACKAGE_PREFIX}-bzip2") +makedepends=('git') options=('staticlibs') source=("http://zlib.net/current/${_realname}-${pkgver}.tar.gz" "git://github.com/nmoinvaz/minizip.git" From 4520d1d268c359b1c233042e6e937850eb612c2d Mon Sep 17 00:00:00 2001 From: Shoozza Date: Sun, 8 Feb 2015 12:47:06 +0100 Subject: [PATCH 0488/2060] allegro: Fix error on rebuild --- mingw-w64-allegro/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-allegro/PKGBUILD b/mingw-w64-allegro/PKGBUILD index 5550534d75..2f93b0a7f4 100644 --- a/mingw-w64-allegro/PKGBUILD +++ b/mingw-w64-allegro/PKGBUILD @@ -50,7 +50,7 @@ build() { popd > /dev/null export DXSDK_DIR=${PREFIX_DEPS}/${MINGW_CHOST} - mkdir "$srcdir/build-${MINGW_CHOST}" && cd "$srcdir/build-${MINGW_CHOST}" + mkdir -p "$srcdir/build-${MINGW_CHOST}" && cd "$srcdir/build-${MINGW_CHOST}" ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ From 583ca875838498d66ebdfd0ba6a2f445de7a2fdb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 8 Feb 2015 15:07:12 +0300 Subject: [PATCH 0489/2060] libxml2: Rebuild. --- .../0014-fix-prototype-warning.all.patch | 20 ---- mingw-w64-libxml2/PKGBUILD | 34 ++----- .../libxml2-2.8.0_rc1-winnt.patch | 91 ------------------- .../libxml2-2.9.0-largefile.patch | 12 --- .../libxml2-2.9.0-man_fixes.patch | 22 ----- mingw-w64-libxml2/libxml2-2.9.0-open.gz.patch | 41 --------- ...libxml2-2.9.1-disable_static_modules.patch | 12 --- .../libxml2-2.9.2-catalog-revert.patch | 30 ++++++ 8 files changed, 40 insertions(+), 222 deletions(-) delete mode 100644 mingw-w64-libxml2/0014-fix-prototype-warning.all.patch delete mode 100644 mingw-w64-libxml2/libxml2-2.8.0_rc1-winnt.patch delete mode 100644 mingw-w64-libxml2/libxml2-2.9.0-largefile.patch delete mode 100644 mingw-w64-libxml2/libxml2-2.9.0-man_fixes.patch delete mode 100644 mingw-w64-libxml2/libxml2-2.9.0-open.gz.patch delete mode 100644 mingw-w64-libxml2/libxml2-2.9.1-disable_static_modules.patch create mode 100644 mingw-w64-libxml2/libxml2-2.9.2-catalog-revert.patch diff --git a/mingw-w64-libxml2/0014-fix-prototype-warning.all.patch b/mingw-w64-libxml2/0014-fix-prototype-warning.all.patch deleted file mode 100644 index d9b10249bd..0000000000 --- a/mingw-w64-libxml2/0014-fix-prototype-warning.all.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- libxml2-2.9.0/threads.c.orig 2013-03-31 15:26:36 +0400 -+++ libxml2-2.9.0/threads.c 2013-03-31 15:27:37 +0400 -@@ -994,11 +994,16 @@ - */ - #ifdef HAVE_PTHREAD_H - #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) -+/* First prototype, then definition - to placate GCC */ - #if defined(LIBXML_STATIC_FOR_DLL) - BOOL XMLCALL --xmlDllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) -+xmlDllMain(void *hinstDLL, unsigned long fdwReason, void *lpvReserved); -+BOOL XMLCALL -+xmlDllMain(void *hinstDLL, unsigned long fdwReason, void *lpvReserved) - #else - BOOL WINAPI -+DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved); -+BOOL WINAPI - DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) - #endif - { diff --git a/mingw-w64-libxml2/PKGBUILD b/mingw-w64-libxml2/PKGBUILD index 88c0861647..2881662768 100644 --- a/mingw-w64-libxml2/PKGBUILD +++ b/mingw-w64-libxml2/PKGBUILD @@ -4,11 +4,14 @@ _realname=libxml2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.9.2 -pkgrel=2 +pkgrel=4 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="XML parsing library, version 2 (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-xz") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python2") options=('strip' 'staticlibs') license=(MIT) @@ -16,11 +19,7 @@ url="http://www.xmlsoft.org/" install=${_realname}-${CARCH}.install source=("http://xmlsoft.org/sources/libxml2-${pkgver}.tar.gz" "mingw32-libxml2-static-build-compile-fix.patch" - "libxml2-2.8.0_rc1-winnt.patch" - "libxml2-2.9.0-largefile.patch" - "libxml2-2.9.0-man_fixes.patch" - "libxml2-2.9.0-open.gz.patch" - "libxml2-2.9.1-disable_static_modules.patch" + "libxml2-2.9.2-catalog-revert.patch" 0004-detect-ws2tcpip.mingw.patch 0005-fix-char-cast-warning.mingw.patch 0006-fix-unused-var-warning.mingw.patch @@ -31,7 +30,6 @@ source=("http://xmlsoft.org/sources/libxml2-${pkgver}.tar.gz" 0011-more-winsock-inclusion-order-fixes.mingw.patch 0012-socklen-is-signed-on-mingw-w64.mingw.patch 0013-fix-field-type-signedness.all.patch - 0014-fix-prototype-warning.all.patch 0015-fix-unused-parameters-warning.all.patch 0016-WARNING-to-be-fixed.all.patch 0017-fix-const-warning.all.patch @@ -43,11 +41,7 @@ source=("http://xmlsoft.org/sources/libxml2-${pkgver}.tar.gz" 0025-mingw-python-dont-remove-dot.patch) md5sums=('9e6a9aca9d155737868b3dc5fd82f788' '0df377025082cd93cccbca547f048011' - '2a38e25bead58e4b4dc4550317369c90' - '59ace31958bc1e824fc4f1434c778469' - 'eb14f4ce77ac4c55d0262b6be3011913' - '9fd252fcb751fdf72688fe0cddeb373e' - '98ba4981c95bb51a854232dd098a99e8' + '29913184b0072167ae427fa91b2edd4a' 'e3584e2079ba68c4c4c71208663602e0' '6db61e81820ad584b9cd6c7d0bae2d51' 'e526d4e285579c5c8b9c61e889338454' @@ -58,7 +52,6 @@ md5sums=('9e6a9aca9d155737868b3dc5fd82f788' 'ad9137ca850b62ada756a1706bcc65e1' '6b65d303079b21e1c93ec169d5f3f4d0' '543b01b756fa64fafb20819d20c984e6' - '9a56b69cc5b1a7fc5d4eb0bab17ee4df' '6adb6886030e33bd40c29724bece6ee8' 'd9e7c8cbc18c76575fd870ca2e39b66a' 'de11e27ada1d7408aae9b54ed77aafe6' @@ -72,12 +65,8 @@ md5sums=('9e6a9aca9d155737868b3dc5fd82f788' prepare() { cd "${srcdir}/libxml2-${pkgver}" - #patch -Np0 -i "${srcdir}"/mingw32-libxml2-static-build-compile-fix.patch - #patch -p1 -i ${srcdir}/libxml2-2.9.1-disable_static_modules.patch - #patch -p1 -i ${srcdir}/libxml2-2.8.0_rc1-winnt.patch - patch -p1 -i ${srcdir}/libxml2-2.9.0-largefile.patch - patch -p1 -i ${srcdir}/libxml2-2.9.0-man_fixes.patch - patch -p1 -i ${srcdir}/libxml2-2.9.0-open.gz.patch + patch -Np0 -i "${srcdir}"/mingw32-libxml2-static-build-compile-fix.patch + patch -p1 -i ${srcdir}/libxml2-2.9.2-catalog-revert.patch patch -p1 -i ${srcdir}/0004-detect-ws2tcpip.mingw.patch patch -p1 -i ${srcdir}/0005-fix-char-cast-warning.mingw.patch @@ -89,7 +78,6 @@ prepare() { patch -p1 -i ${srcdir}/0011-more-winsock-inclusion-order-fixes.mingw.patch patch -p1 -i ${srcdir}/0012-socklen-is-signed-on-mingw-w64.mingw.patch patch -p1 -i ${srcdir}/0013-fix-field-type-signedness.all.patch - patch -p1 -i ${srcdir}/0014-fix-prototype-warning.all.patch patch -p1 -i ${srcdir}/0015-fix-unused-parameters-warning.all.patch patch -p1 -i ${srcdir}/0016-WARNING-to-be-fixed.all.patch patch -p1 -i ${srcdir}/0017-fix-const-warning.all.patch @@ -108,8 +96,6 @@ prepare() { build() { - export LDFLAGS+=" -Wl,-no-undefined" - export CFLAGS+=" -fexceptions --param=ssp-buffer-size=4" # Static build mkdir -p ${srcdir}/build-static-${CARCH} && cd ${srcdir}/build-static-${CARCH} @@ -123,7 +109,7 @@ build() --enable-static \ --disable-shared \ --with-threads=win32 \ - CFLAGS="${CFLAGS} -DLIBXML_STATIC_FOR_DLL" + CFLAGS="${CFLAGS} -DLIBXML_STATIC_FOR_DLL" make # Shared build diff --git a/mingw-w64-libxml2/libxml2-2.8.0_rc1-winnt.patch b/mingw-w64-libxml2/libxml2-2.8.0_rc1-winnt.patch deleted file mode 100644 index cce3ecb058..0000000000 --- a/mingw-w64-libxml2/libxml2-2.8.0_rc1-winnt.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 168e20836fe9614dd2dd4b42006c17a783f11c48 Mon Sep 17 00:00:00 2001 -From: Markus Duft -Date: Thu, 20 Nov 2008 11:04:33 -0500 -Subject: [PATCH] Fix for ~x86-winnt - -[Alexandre Rostovtsev : port to 2.8.0-rc1] ---- - dict.c | 2 +- - include/wsockcompat.h | 2 +- - nanohttp.c | 2 +- - xmlIO.c | 4 ++++ - 4 files changed, 7 insertions(+), 3 deletions(-) - -diff --git a/dict.c b/dict.c -index 3579f64..71e7bc6 100644 ---- a/dict.c -+++ b/dict.c -@@ -47,7 +47,7 @@ - #else - #ifdef HAVE_INTTYPES_H - #include --#elif defined(WIN32) -+#elif defined(WIN32) || defined (__PARITY__) - typedef unsigned __int32 uint32_t; - #endif - #endif -diff --git a/include/wsockcompat.h b/include/wsockcompat.h -index c762a64..1ed822b 100644 ---- a/include/wsockcompat.h -+++ b/include/wsockcompat.h -@@ -27,7 +27,7 @@ - #endif - #endif - --#if defined( __MINGW32__ ) || defined( _MSC_VER ) -+#if defined( __MINGW32__ ) || defined( _MSC_VER ) || defined(__PARITY__) - /* Include here to ensure that it doesn't get included later - * (e.g. by iconv.h) and overwrites the definition of EWOULDBLOCK. */ - #include -diff --git a/nanohttp.c b/nanohttp.c -index 2437fed..dbe97a7 100644 ---- a/nanohttp.c -+++ b/nanohttp.c -@@ -74,7 +74,7 @@ - #define XML_SOCKLEN_T unsigned int - #endif - --#if defined(__MINGW32__) || defined(_WIN32_WCE) -+#if defined(__MINGW32__) || defined(_WIN32_WCE) || defined(__PARITY__) - #ifndef _WINSOCKAPI_ - #define _WINSOCKAPI_ - #endif -diff --git a/xmlIO.c b/xmlIO.c -index 73a995d..99562f6 100644 ---- a/xmlIO.c -+++ b/xmlIO.c -@@ -47,6 +47,7 @@ - #include /* for CP_UTF8 */ - #endif - -+#ifndef __PARITY__ - /* Figure a portable way to know if a file is a directory. */ - #ifndef HAVE_STAT - # ifdef HAVE__STAT -@@ -82,6 +83,7 @@ - # endif - # endif - #endif -+#endif /* __PARITY__ */ - - #include - #include -@@ -657,6 +659,7 @@ xmlWrapStatUtf8(const char *path,struct stat *info) - { - #ifdef HAVE_STAT - int retval = -1; -+#ifndef __PARITY__ - wchar_t *wPath; - - wPath = __xmlIOWin32UTF8ToWChar(path); -@@ -665,6 +668,7 @@ xmlWrapStatUtf8(const char *path,struct stat *info) - retval = _wstat(wPath,info); - xmlFree(wPath); - } -+#endif - /* maybe path in native encoding */ - if(retval < 0) - retval = stat(path,info); --- -1.7.8.6 - diff --git a/mingw-w64-libxml2/libxml2-2.9.0-largefile.patch b/mingw-w64-libxml2/libxml2-2.9.0-largefile.patch deleted file mode 100644 index 1022809456..0000000000 --- a/mingw-w64-libxml2/libxml2-2.9.0-largefile.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- libxml2-2.7.6/libxml.h.orig 2009-09-24 17:31:59.000000000 +0200 -+++ libxml2-2.7.6/libxml.h 2009-10-10 18:57:55.681981813 +0200 -@@ -13,6 +13,9 @@ - #ifndef _LARGEFILE_SOURCE - #define _LARGEFILE_SOURCE - #endif -+#ifndef _LARGEFILE64_SOURCE -+#define _LARGEFILE64_SOURCE -+#endif - #ifndef _FILE_OFFSET_BITS - #define _FILE_OFFSET_BITS 64 - #endif diff --git a/mingw-w64-libxml2/libxml2-2.9.0-man_fixes.patch b/mingw-w64-libxml2/libxml2-2.9.0-man_fixes.patch deleted file mode 100644 index 959505d83d..0000000000 --- a/mingw-w64-libxml2/libxml2-2.9.0-man_fixes.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -aurN libxml2-2.6.23.orig/libxml.3 libxml2-2.6.23/libxml.3 ---- libxml2-2.6.23.orig/libxml.3 2005-10-28 18:13:58.000000000 +0200 -+++ libxml2-2.6.23/libxml.3 2006-01-06 23:00:43.000000000 +0100 -@@ -48,14 +48,14 @@ - library exports Push and Pull type parser interfaces for both XML and - .IR html . - .SH FILES --.TP 2.2i --.B /depot/lib/libxml_2.0.0/libxml.a -+.TP -+.B libxml.a - static library - .TP --.B /depot/lib/libxml_2.0.0/libxml.so -+.B libxml.so - shared library - .TP --.B /depot/package/libxml_2.0.0/bin/xmllint -+.B xmllint - binary application for parsing XML files - .SH AUTHORS - Daniel Veillard (daniel@veillard.com). diff --git a/mingw-w64-libxml2/libxml2-2.9.0-open.gz.patch b/mingw-w64-libxml2/libxml2-2.9.0-open.gz.patch deleted file mode 100644 index 342e8b880e..0000000000 --- a/mingw-w64-libxml2/libxml2-2.9.0-open.gz.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -ur libxml2-2.4.20/xmlIO.c libxml2-2.4.20-/xmlIO.c ---- libxml2-2.4.20/xmlIO.c Wed Mar 27 04:35:12 2002 -+++ libxml2-2.4.20-/xmlIO.c Thu May 23 20:35:12 2002 -@@ -465,8 +465,35 @@ - - if (path == NULL) - return(NULL); -- if (!xmlCheckFilename(path)) -- return(NULL); -+ -+ if (!xmlCheckFilename(path)) { -+ /* If we cannot open `foo.xml', we try `foo.xml.gz'. However we i -+ * append .gz only if filename doesn't alreay end with .gz. */ -+ if (strlen(path) < 3 || strcmp(path + strlen(path) - 3, ".gz") != 0) { -+ char *gz_filename = xmlMalloc(strlen(path) + 4); -+ -+ if (gz_filename == NULL) { -+ xmlGenericError(xmlGenericErrorContext, -+ "xmlGzfileOpen: %s\n", -+ "Failure allocating buffer for filename."); -+ return NULL; -+ } -+ -+ strcpy(gz_filename, path); -+ strcat(gz_filename, ".gz"); -+ -+ fd = NULL; -+ -+ if (xmlCheckFilename(gz_filename)) -+ fd = gzopen(gz_filename, "rb"); -+ -+ xmlFree(gz_filename); -+ -+ return((void *) fd); -+ } else { -+ return NULL; -+ } -+ } - - fd = gzopen(path, "rb"); - return((void *) fd); diff --git a/mingw-w64-libxml2/libxml2-2.9.1-disable_static_modules.patch b/mingw-w64-libxml2/libxml2-2.9.1-disable_static_modules.patch deleted file mode 100644 index cd85d240b0..0000000000 --- a/mingw-w64-libxml2/libxml2-2.9.1-disable_static_modules.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- libxml2-2.9.1/python/Makefile.am.orig 2013-04-19 09:56:45 +0300 -+++ libxml2-2.9.1/python/Makefile.am 2013-05-13 10:14:25 +0300 -@@ -24,7 +24,8 @@ - python_LTLIBRARIES = libxml2mod.la - - libxml2mod_la_SOURCES = libxml.c libxml_wrap.h libxml2-py.h libxml2-py.c types.c --libxml2mod_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) -module -avoid-version \ -+libxml2mod_la_CPPFLAGS = -shared -+libxml2mod_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) -module -avoid-version -shared \ - $(top_builddir)/libxml2.la $(CYGWIN_EXTRA_PYTHON_LIBADD) $(WIN32_EXTRA_PYTHON_LIBADD) $(PYTHON_LIBS) - - BUILT_SOURCES = libxml2-export.c libxml2-py.h libxml2-py.c diff --git a/mingw-w64-libxml2/libxml2-2.9.2-catalog-revert.patch b/mingw-w64-libxml2/libxml2-2.9.2-catalog-revert.patch new file mode 100644 index 0000000000..57f26a5863 --- /dev/null +++ b/mingw-w64-libxml2/libxml2-2.9.2-catalog-revert.patch @@ -0,0 +1,30 @@ +From 0e6659ec960734b0b01aad196d4bdb4a3800b493 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Thu, 16 Oct 2014 19:10:59 +0200 +Subject: [PATCH] Revert "Missing initialization for the catalog module" + +It's not correct to always load the default catalog. +https://bugzilla.redhat.com/show_bug.cgi?id=1153753 + +This reverts commit 054c716ea1bf001544127a4ab4f4346d1b9947e7. + +--- + parser.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/parser.c b/parser.c +index 1d93967..67c9dfd 100644 +--- a/parser.c ++++ b/parser.c +@@ -14830,9 +14830,6 @@ xmlInitParser(void) { + #ifdef LIBXML_XPATH_ENABLED + xmlXPathInit(); + #endif +-#ifdef LIBXML_CATALOG_ENABLED +- xmlInitializeCatalog(); +-#endif + xmlParserInitialized = 1; + #ifdef LIBXML_THREAD_ENABLED + } +-- +1.9.3 From da69d9c85279bd0f79bf4181b023933afbd7e574 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 8 Feb 2015 15:11:14 +0300 Subject: [PATCH 0490/2060] lzo2: Update to 2.09 --- mingw-w64-lzo2/PKGBUILD | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mingw-w64-lzo2/PKGBUILD b/mingw-w64-lzo2/PKGBUILD index 3c50baf71f..d3ca009397 100644 --- a/mingw-w64-lzo2/PKGBUILD +++ b/mingw-w64-lzo2/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=lzo2 - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.08 +pkgver=2.09 pkgrel=1 pkgdesc="Portable lossless data compression library (mingw-w64)" arch=(any) @@ -12,7 +11,7 @@ license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') source=("$url/download/lzo-${pkgver}.tar.gz") -md5sums=('fcec64c26a0f4f4901468f360029678f') +md5sums=('c7ffc9a103afe2d1bba0b015e7aa887f') prepare() { cd "${srcdir}/lzo-${pkgver}" From d942132e5ee70bf3054b6f510bec441275c702a3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 8 Feb 2015 15:30:04 +0300 Subject: [PATCH 0491/2060] docbook-xml: Use relative paths. --- mingw-w64-docbook-xml/PKGBUILD | 207 +++++++++++------- .../docbook-xml-i686.install | 46 ++++ .../docbook-xml-x86_64.install | 46 ++++ mingw-w64-docbook-xml/docbook-xml32.install | 46 ---- mingw-w64-docbook-xml/docbook-xml64.install | 46 ---- 5 files changed, 215 insertions(+), 176 deletions(-) create mode 100644 mingw-w64-docbook-xml/docbook-xml-i686.install create mode 100644 mingw-w64-docbook-xml/docbook-xml-x86_64.install delete mode 100644 mingw-w64-docbook-xml/docbook-xml32.install delete mode 100644 mingw-w64-docbook-xml/docbook-xml64.install diff --git a/mingw-w64-docbook-xml/PKGBUILD b/mingw-w64-docbook-xml/PKGBUILD index 08680ea5d2..ba17af597f 100644 --- a/mingw-w64-docbook-xml/PKGBUILD +++ b/mingw-w64-docbook-xml/PKGBUILD @@ -1,23 +1,15 @@ # Maintainer: Alexey Pavlov _realname=docbook-xml - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=4.5 -pkgrel=3 +pkgrel=4 pkgdesc="A widely used XML scheme for writing documentation and help" arch=('any') url="http://www.oasis-open.org/docbook/" license=('MIT') depends=("${MINGW_PACKAGE_PREFIX}-libxml2") -case $MINGW_CHOST in - i686*) - install=docbook-xml32.install - ;; - x86_64*) - install=docbook-xml64.install - ;; -esac +install=docbook-xml-${CARCH}.install source=('http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip' 'http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip' 'http://www.docbook.org/xml/4.3/docbook-xml-4.3.zip' @@ -39,7 +31,7 @@ md5sums=('03083e288e87a7e829e437358da7ef9e' 'd2ed39f57ea13ca8306c1e0d15149726') package() { - export MSYS2_ARG_CONV_EXCL="-//OASIS" + # export MSYS2_ARG_CONV_EXCL="-//OASIS" for ver in 4.2 4.3 4.4 4.5; do mkdir docbook-xml-${ver} pushd docbook-xml-${ver} @@ -73,231 +65,278 @@ package() { popd mkdir -p "${pkgdir}${MINGW_PREFIX}/etc/xml" - xmlcatalog --noout --create "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" + ${MINGW_PREFIX}/bin/xmlcatalog --noout --create "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" # V4.1.2 - xmlcatalog --noout --add "public" \ + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/soextblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/dbpoolx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/dbhierx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/dbgenent.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/dbnotnx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/dbcentx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "rewriteSystem" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/4.1.2" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.1.2" \ + "../../share/xml/docbook/xml-dtd-4.1.2" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "rewriteURI" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/4.1.2" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.1.2" \ + "../../share/xml/docbook/xml-dtd-4.1.2" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" # V4.2 - xmlcatalog --noout --add "public" \ + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook CALS Table Model V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/soextblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Information Pool V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/dbpoolx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/dbhierx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Additional General Entities V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/dbgenent.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Notations V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/dbnotnx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Character Entities V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/dbcentx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "rewriteSystem" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/4.2" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.2" \ + "../../share/xml/docbook/xml-dtd-4.2" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "rewriteURI" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/4.2" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.2" \ + "../../share/xml/docbook/xml-dtd-4.2" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" # V4.3 - xmlcatalog --noout --add "public" \ + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook CALS Table Model V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/soextblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Information Pool V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/dbpoolx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/dbhierx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Additional General Entities V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/dbgenent.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Notations V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/dbnotnx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Character Entities V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/dbcentx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "rewriteSystem" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/4.3" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.3" \ + "../../share/xml/docbook/xml-dtd-4.3" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "rewriteURI" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/4.3" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.3" \ + "../../share/xml/docbook/xml-dtd-4.3" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" # V4.4 - xmlcatalog --noout --add "public" \ + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook CALS Table Model V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/htmltblx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/soextblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Information Pool V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/dbpoolx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/dbhierx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Additional General Entities V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/dbgenent.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Notations V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/dbnotnx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Character Entities V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/dbcentx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "rewriteSystem" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/4.4" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.4" \ + "../../share/xml/docbook/xml-dtd-4.4" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "rewriteURI" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/4.4" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.4" \ + "../../share/xml/docbook/xml-dtd-4.4" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" # V4.5 - xmlcatalog --noout --add "public" \ + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML V4.5//EN" \ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \ + "../../share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \ + "../../share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \ + "../../share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \ + "../../share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \ + "../../share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \ + "../../share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \ + "../../share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "public" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \ + "../../share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "rewriteSystem" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/4.5" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.5" \ + "../../share/xml/docbook/xml-dtd-4.5" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - xmlcatalog --noout --add "rewriteURI" \ + + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/4.5" \ - "file://${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.5" \ + "../../share/xml/docbook/xml-dtd-4.5" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" -# license + # license install -D -m644 "${srcdir}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-docbook-xml/docbook-xml-i686.install b/mingw-w64-docbook-xml/docbook-xml-i686.install new file mode 100644 index 0000000000..964a14d6b6 --- /dev/null +++ b/mingw-w64-docbook-xml/docbook-xml-i686.install @@ -0,0 +1,46 @@ +MINGW_INSTALL=mingw32 +MINGW_XML_CATALOG=${MINGW_INSTALL}/etc/xml +# export MSYS2_ARG_CONV_EXCL="-//OASIS" + +post_install() { + if [ -e ${MINGW_XML_CATALOG}/catalog.preserve ]; then + mv ${MINGW_XML_CATALOG}/catalog.preserve ${MINGW_XML_CATALOG}/catalog + elif [ ! -e mingw32/etc/xml/catalog ]; then + ${MINGW_INSTALL}/bin/xmlcatalog --noout --create ${MINGW_XML_CATALOG}/catalog + fi + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add "delegatePublic" \ + '-//OASIS//ENTITIES DocBook XML' \ + "./docbook-xml" \ + ${MINGW_XML_CATALOG}/catalog + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add "delegatePublic" \ + '-//OASIS//DTD DocBook XML' \ + "./docbook-xml" \ + ${MINGW_XML_CATALOG}/catalog + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add "delegateSystem" \ + "http://www.oasis-open.org/docbook/" \ + "./docbook-xml" \ + ${MINGW_XML_CATALOG}/catalog + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add "delegateURI" \ + "http://www.oasis-open.org/docbook/" \ + "./docbook-xml" \ + ${MINGW_XML_CATALOG}/catalog +} + +# arg 1: the new package version +# arg 2: the old package version +pre_upgrade() { + if [ $(vercmp $2 4.5) -lt 0 ]; then + ${MINGW_INSTALL}/bin/xmlcatalog --del "${MINGW_XML_CATALOG}/docbook" ${MINGW_XML_CATALOG}/catalog > ${MINGW_XML_CATALOG}/catalog.preserve + fi +} + +post_upgrade() { + if [ $(vercmp $2 4.5) -ge 0 ]; then + post_remove + fi + post_install +} + +post_remove() { + ${MINGW_INSTALL}/bin/xmlcatalog --noout --del ./docbook-xml ${MINGW_XML_CATALOG}/catalog +} diff --git a/mingw-w64-docbook-xml/docbook-xml-x86_64.install b/mingw-w64-docbook-xml/docbook-xml-x86_64.install new file mode 100644 index 0000000000..2b2904112b --- /dev/null +++ b/mingw-w64-docbook-xml/docbook-xml-x86_64.install @@ -0,0 +1,46 @@ +MINGW_INSTALL=mingw64 +MINGW_XML_CATALOG=${MINGW_INSTALL}/etc/xml +# export MSYS2_ARG_CONV_EXCL="-//OASIS" + +post_install() { + if [ -e ${MINGW_XML_CATALOG}/catalog.preserve ]; then + mv ${MINGW_XML_CATALOG}/catalog.preserve ${MINGW_XML_CATALOG}/catalog + elif [ ! -e mingw64/etc/xml/catalog ]; then + ${MINGW_INSTALL}/bin/xmlcatalog --noout --create ${MINGW_XML_CATALOG}/catalog + fi + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add "delegatePublic" \ + '-//OASIS//ENTITIES DocBook XML' \ + "./docbook-xml" \ + ${MINGW_XML_CATALOG}/catalog + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add "delegatePublic" \ + '-//OASIS//DTD DocBook XML' \ + "./docbook-xml" \ + ${MINGW_XML_CATALOG}/catalog + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add "delegateSystem" \ + "http://www.oasis-open.org/docbook/" \ + "./docbook-xml" \ + ${MINGW_XML_CATALOG}/catalog + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add "delegateURI" \ + "http://www.oasis-open.org/docbook/" \ + "./docbook-xml" \ + ${MINGW_XML_CATALOG}/catalog +} + +# arg 1: the new package version +# arg 2: the old package version +pre_upgrade() { + if [ $(vercmp $2 4.5) -lt 0 ]; then + ${MINGW_INSTALL}/bin/xmlcatalog --del "${MINGW_XML_CATALOG}/docbook" ${MINGW_XML_CATALOG}/catalog > ${MINGW_XML_CATALOG}/catalog.preserve + fi +} + +post_upgrade() { + if [ $(vercmp $2 4.5) -ge 0 ]; then + post_remove + fi + post_install +} + +post_remove() { + ${MINGW_INSTALL}/bin/xmlcatalog --noout --del ./docbook-xml ${MINGW_XML_CATALOG}/catalog +} diff --git a/mingw-w64-docbook-xml/docbook-xml32.install b/mingw-w64-docbook-xml/docbook-xml32.install deleted file mode 100644 index 3ce15899b1..0000000000 --- a/mingw-w64-docbook-xml/docbook-xml32.install +++ /dev/null @@ -1,46 +0,0 @@ -cd /mingw32/etc/xml -MINGW_XML_CATALOG=$(pwd -W) -export MSYS2_ARG_CONV_EXCL="-//OASIS" - -post_install() { - if [ -e mingw32/etc/xml/catalog.preserve ]; then - mv mingw32/etc/xml/catalog.preserve mingw32/etc/xml/catalog - elif [ ! -e mingw32/etc/xml/catalog ]; then - mingw64/bin/xmlcatalog --noout --create ${MINGW_XML_CATALOG}/catalog - fi - mingw32/bin/xmlcatalog --noout --add "delegatePublic" \ - '-//OASIS//ENTITIES DocBook XML' \ - "${MINGW_XML_CATALOG}/docbook-xml" \ - ${MINGW_XML_CATALOG}/catalog - mingw32/bin/xmlcatalog --noout --add "delegatePublic" \ - '-//OASIS//DTD DocBook XML' \ - "${MINGW_XML_CATALOG}/docbook-xml" \ - ${MINGW_XML_CATALOG}/catalog - mingw32/bin/xmlcatalog --noout --add "delegateSystem" \ - "http://www.oasis-open.org/docbook/" \ - "${MINGW_XML_CATALOG}/docbook-xml" \ - ${MINGW_XML_CATALOG}/catalog - mingw32/bin/xmlcatalog --noout --add "delegateURI" \ - "http://www.oasis-open.org/docbook/" \ - "${MINGW_XML_CATALOG}/docbook-xml" \ - ${MINGW_XML_CATALOG}/catalog -} - -# arg 1: the new package version -# arg 2: the old package version -pre_upgrade() { - if [ $(vercmp $2 4.5) -lt 0 ]; then - mingw32/bin/xmlcatalog --del "${MINGW_XML_CATALOG}/docbook" ${MINGW_XML_CATALOG}/catalog > ${MINGW_XML_CATALOG}/catalog.preserve - fi -} - -post_upgrade() { - if [ $(vercmp $2 4.5) -ge 0 ]; then - post_remove - fi - post_install -} - -post_remove() { - mingw32/bin/xmlcatalog --noout --del ${MINGW_XML_CATALOG}/docbook-xml ${MINGW_XML_CATALOG}/catalog -} diff --git a/mingw-w64-docbook-xml/docbook-xml64.install b/mingw-w64-docbook-xml/docbook-xml64.install deleted file mode 100644 index d67a7e3d62..0000000000 --- a/mingw-w64-docbook-xml/docbook-xml64.install +++ /dev/null @@ -1,46 +0,0 @@ -cd /mingw64/etc/xml -MINGW_XML_CATALOG=$(pwd -W) -export MSYS2_ARG_CONV_EXCL="-//OASIS" - -post_install() { - if [ -e mingw64/etc/xml/catalog.preserve ]; then - mv mingw64/etc/xml/catalog.preserve mingw64/etc/xml/catalog - elif [ ! -e mingw64/etc/xml/catalog ]; then - mingw64/bin/xmlcatalog --noout --create ${MINGW_XML_CATALOG}/catalog - fi - mingw64/bin/xmlcatalog --noout --add "delegatePublic" \ - '-//OASIS//ENTITIES DocBook XML' \ - "${MINGW_XML_CATALOG}/docbook-xml" \ - ${MINGW_XML_CATALOG}/catalog - mingw64/bin/xmlcatalog --noout --add "delegatePublic" \ - '-//OASIS//DTD DocBook XML' \ - "${MINGW_XML_CATALOG}/docbook-xml" \ - ${MINGW_XML_CATALOG}/catalog - mingw64/bin/xmlcatalog --noout --add "delegateSystem" \ - "http://www.oasis-open.org/docbook/" \ - "${MINGW_XML_CATALOG}/docbook-xml" \ - ${MINGW_XML_CATALOG}/catalog - mingw64/bin/xmlcatalog --noout --add "delegateURI" \ - "http://www.oasis-open.org/docbook/" \ - "${MINGW_XML_CATALOG}/docbook-xml" \ - ${MINGW_XML_CATALOG}/catalog -} - -# arg 1: the new package version -# arg 2: the old package version -pre_upgrade() { - if [ $(vercmp $2 4.5) -lt 0 ]; then - mingw64/bin/xmlcatalog --del "${MINGW_XML_CATALOG}/docbook" ${MINGW_XML_CATALOG}/catalog > ${MINGW_XML_CATALOG}/catalog.preserve - fi -} - -post_upgrade() { - if [ $(vercmp $2 4.5) -ge 0 ]; then - post_remove - fi - post_install -} - -post_remove() { - mingw64/bin/xmlcatalog --noout --del ${MINGW_XML_CATALOG}/docbook-xml ${MINGW_XML_CATALOG}/catalog -} From 594e7f06e880fec668f3e9b11c643d7cc33a54d1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 8 Feb 2015 15:47:54 +0300 Subject: [PATCH 0492/2060] docbook-xsl: Use relative paths. --- mingw-w64-docbook-xsl/PKGBUILD | 16 +++----- .../docbook-xsl-i686.install | 37 +++++++++++++++++++ .../docbook-xsl-x86_64.install | 37 +++++++++++++++++++ mingw-w64-docbook-xsl/docbook-xsl32.install | 37 ------------------- mingw-w64-docbook-xsl/docbook-xsl64.install | 37 ------------------- 5 files changed, 79 insertions(+), 85 deletions(-) create mode 100644 mingw-w64-docbook-xsl/docbook-xsl-i686.install create mode 100644 mingw-w64-docbook-xsl/docbook-xsl-x86_64.install delete mode 100644 mingw-w64-docbook-xsl/docbook-xsl32.install delete mode 100644 mingw-w64-docbook-xsl/docbook-xsl64.install diff --git a/mingw-w64-docbook-xsl/PKGBUILD b/mingw-w64-docbook-xsl/PKGBUILD index b047b350b4..8e36906acc 100644 --- a/mingw-w64-docbook-xsl/PKGBUILD +++ b/mingw-w64-docbook-xsl/PKGBUILD @@ -1,23 +1,17 @@ # Maintainer: Alexey Pavlov _realname=docbook-xsl - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.78.1 -pkgrel=3 +pkgrel=4 pkgdesc='XML stylesheets for Docbook-xml transformations (mingw-w64)' arch=('any') license=('custom') url='http://docbook.sourceforge.net/' -depends=("${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-libxslt" "${MINGW_PACKAGE_PREFIX}-docbook-xml") -case $MINGW_CHOST in - i686*) - install=${_realname}32.install - ;; - x86_64*) - install=${_realname}64.install - ;; -esac +depends=("${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-docbook-xml") +install=${_realname}-${CARCH}.install source=("http://downloads.sourceforge.net/docbook/${_realname}-${pkgver}.tar.bz2") md5sums=('6dd0f89131cc35bf4f2ed105a1c17771') diff --git a/mingw-w64-docbook-xsl/docbook-xsl-i686.install b/mingw-w64-docbook-xsl/docbook-xsl-i686.install new file mode 100644 index 0000000000..eea410e1b0 --- /dev/null +++ b/mingw-w64-docbook-xsl/docbook-xsl-i686.install @@ -0,0 +1,37 @@ +MINGW_INSTALL=mingw32 +MINGW_XML_CATALOG=${MINGW_INSTALL}/etc/xml + +post_install() { + if [ ! -f ${MINGW_XML_CATALOG}/catalog ]; then + ${MINGW_INSTALL}/bin/xmlcatalog --noout --create ${MINGW_XML_CATALOG}/catalog + fi + _NEW=`echo $1 | sed 's|\(.*\)\-.*|\1|'` + + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add delegateURI "http://docbook.sourceforge.net/release/xsl/" "./docbook-xsl.xml" ${MINGW_XML_CATALOG}/catalog + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add delegateSystem "http://docbook.sourceforge.net/release/xsl/" "./docbook-xsl.xml" ${MINGW_XML_CATALOG}/catalog + + if [ ! -f ${MINGW_XML_CATALOG}/docbook-xsl.xml ]; then + ${MINGW_INSTALL}/bin/xmlcatalog --noout --create ${MINGW_XML_CATALOG}/docbook-xsl.xml + fi + + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add delegateURI \ + "http://docbook.sourceforge.net/release/xsl/" \ + "../../share/xml/docbook/xsl-stylesheets-${_NEW}/catalog.xml" \ + ${MINGW_XML_CATALOG}/docbook-xsl.xml + + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add delegateSystem \ + "http://docbook.sourceforge.net/release/xsl/" \ + "../../share/xml/docbook/xsl-stylesheets-${_NEW}/catalog.xml" \ + ${MINGW_XML_CATALOG}/docbook-xsl.xml +} + +post_upgrade() { + post_remove $2 + post_install $1 +} + +post_remove() { + _OLD=`echo $1 | sed 's|\(.*\)\-.*|\1|'` + ${MINGW_INSTALL}/bin/xmlcatalog --noout --del "http://docbook.sourceforge.net/release/xsl/" ${MINGW_XML_CATALOG}/catalog + rm -f ${MINGW_XML_CATALOG}/docbook-xsl.xml +} diff --git a/mingw-w64-docbook-xsl/docbook-xsl-x86_64.install b/mingw-w64-docbook-xsl/docbook-xsl-x86_64.install new file mode 100644 index 0000000000..287d393f29 --- /dev/null +++ b/mingw-w64-docbook-xsl/docbook-xsl-x86_64.install @@ -0,0 +1,37 @@ +MINGW_INSTALL=mingw64 +MINGW_XML_CATALOG=${MINGW_INSTALL}/etc/xml + +post_install() { + if [ ! -f ${MINGW_XML_CATALOG}/catalog ]; then + ${MINGW_INSTALL}/bin/xmlcatalog --noout --create ${MINGW_XML_CATALOG}/catalog + fi + _NEW=`echo $1 | sed 's|\(.*\)\-.*|\1|'` + + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add delegateURI "http://docbook.sourceforge.net/release/xsl/" "./docbook-xsl.xml" ${MINGW_XML_CATALOG}/catalog + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add delegateSystem "http://docbook.sourceforge.net/release/xsl/" "./docbook-xsl.xml" ${MINGW_XML_CATALOG}/catalog + + if [ ! -f ${MINGW_XML_CATALOG}/docbook-xsl.xml ]; then + ${MINGW_INSTALL}/bin/xmlcatalog --noout --create ${MINGW_XML_CATALOG}/docbook-xsl.xml + fi + + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add delegateURI \ + "http://docbook.sourceforge.net/release/xsl/" \ + "../../share/xml/docbook/xsl-stylesheets-${_NEW}/catalog.xml" \ + ${MINGW_XML_CATALOG}/docbook-xsl.xml + + ${MINGW_INSTALL}/bin/xmlcatalog --noout --add delegateSystem \ + "http://docbook.sourceforge.net/release/xsl/" \ + "../../share/xml/docbook/xsl-stylesheets-${_NEW}/catalog.xml" \ + ${MINGW_XML_CATALOG}/docbook-xsl.xml +} + +post_upgrade() { + post_remove $2 + post_install $1 +} + +post_remove() { + _OLD=`echo $1 | sed 's|\(.*\)\-.*|\1|'` + ${MINGW_INSTALL}/bin/xmlcatalog --noout --del "http://docbook.sourceforge.net/release/xsl/" ${MINGW_XML_CATALOG}/catalog + rm -f ${MINGW_XML_CATALOG}/docbook-xsl.xml +} diff --git a/mingw-w64-docbook-xsl/docbook-xsl32.install b/mingw-w64-docbook-xsl/docbook-xsl32.install deleted file mode 100644 index c2715805e1..0000000000 --- a/mingw-w64-docbook-xsl/docbook-xsl32.install +++ /dev/null @@ -1,37 +0,0 @@ -cd /mingw32 -MINGW_XML_CATALOG=$(pwd -W) - -post_install() { - if [ ! -f mingw32/etc/xml/catalog ]; then - mingw632bin/xmlcatalog --noout --create mingw32/etc/xml/catalog - fi - _NEW=`echo $1 | sed 's|\(.*\)\-.*|\1|'` - - xmlcatalog --noout --add delegateURI "http://docbook.sourceforge.net/release/xsl/" "./docbook-xsl.xml" mingw32/etc/xml/catalog - xmlcatalog --noout --add delegateSystem "http://docbook.sourceforge.net/release/xsl/" "./docbook-xsl.xml" mingw32/etc/xml/catalog - - if [ ! -f mingw32/etc/xml/docbook-xsl.xml ]; then - xmlcatalog --noout --create mingw32/etc/xml/docbook-xsl.xml - fi - - xmlcatalog --noout --add delegateURI \ - "http://docbook.sourceforge.net/release/xsl/" \ - "../../share/xml/docbook/xsl-stylesheets-${_NEW}/catalog.xml" \ - mingw32/etc/xml/docbook-xsl.xml - - xmlcatalog --noout --add delegateSystem \ - "http://docbook.sourceforge.net/release/xsl/" \ - "../../share/xml/docbook/xsl-stylesheets-${_NEW}/catalog.xml" \ - mingw32/etc/xml/docbook-xsl.xml -} - -post_upgrade() { - post_remove $2 - post_install $1 -} - -post_remove() { - _OLD=`echo $1 | sed 's|\(.*\)\-.*|\1|'` - xmlcatalog --noout --del "http://docbook.sourceforge.net/release/xsl/" mingw32/etc/xml/catalog - rm -f mingw32/etc/xml/docbook-xsl.xml -} diff --git a/mingw-w64-docbook-xsl/docbook-xsl64.install b/mingw-w64-docbook-xsl/docbook-xsl64.install deleted file mode 100644 index 0563d02cf0..0000000000 --- a/mingw-w64-docbook-xsl/docbook-xsl64.install +++ /dev/null @@ -1,37 +0,0 @@ -cd /mingw64 -MINGW_XML_CATALOG=$(pwd -W) - -post_install() { - if [ ! -f mingw64/etc/xml/catalog ]; then - mingw64/bin/xmlcatalog --noout --create ${MINGW_XML_CATALOG}/etc/xml/catalog - fi - _NEW=`echo $1 | sed 's|\(.*\)\-.*|\1|'` - - xmlcatalog --noout --add delegateURI "http://docbook.sourceforge.net/release/xsl/" "./docbook-xsl.xml" mingw64/etc/xml/catalog - xmlcatalog --noout --add delegateSystem "http://docbook.sourceforge.net/release/xsl/" "./docbook-xsl.xml" mingw64/etc/xml/catalog - - if [ ! -f mingw64/etc/xml/docbook-xsl.xml ]; then - xmlcatalog --noout --create mingw64/etc/xml/docbook-xsl.xml - fi - - xmlcatalog --noout --add delegateURI \ - "http://docbook.sourceforge.net/release/xsl/" \ - "../../share/xml/docbook/xsl-stylesheets-${_NEW}/catalog.xml" \ - mingw64/etc/xml/docbook-xsl.xml - - xmlcatalog --noout --add delegateSystem \ - "http://docbook.sourceforge.net/release/xsl/" \ - "../../share/xml/docbook/xsl-stylesheets-${_NEW}/catalog.xml" \ - mingw64/etc/xml/docbook-xsl.xml -} - -post_upgrade() { - post_remove $2 - post_install $1 -} - -post_remove() { - _OLD=`echo $1 | sed 's|\(.*\)\-.*|\1|'` - xmlcatalog --noout --del "http://docbook.sourceforge.net/release/xsl/" mingw64/etc/xml/catalog - rm -f mingw64/etc/xml/docbook-xsl.xml -} From 1083e53e99d5b11d8afba689eb1320140a15385f Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Sun, 8 Feb 2015 15:57:47 -0200 Subject: [PATCH 0493/2060] sqlite3: Install license. --- mingw-w64-sqlite3/LICENSE | 25 +++++++++++++++++++++++++ mingw-w64-sqlite3/PKGBUILD | 12 ++++++++---- 2 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-sqlite3/LICENSE diff --git a/mingw-w64-sqlite3/LICENSE b/mingw-w64-sqlite3/LICENSE new file mode 100644 index 0000000000..6985d5b8b5 --- /dev/null +++ b/mingw-w64-sqlite3/LICENSE @@ -0,0 +1,25 @@ +All of the code and documentation in SQLite has been dedicated to the public +domain by the authors. All code authors, and representatives of the companies +they work for, have signed affidavits dedicating their contributions to the +public domain and originals of those signed affidavits are stored in a firesafe +at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, +compile, sell, or distribute the original SQLite code, either in source code +form or as a compiled binary, for any purpose, commercial or non-commercial, +and by any means. + +The previous paragraph applies to the deliverable code and documentation in +SQLite - those parts of the SQLite library that you actually bundle and ship +with a larger application. Some scripts used as part of the build process (for +example the "configure" scripts generated by autoconf) might fall under other +open-source licenses. Nothing from these build scripts ever reaches the final +deliverable SQLite library, however, and so the licenses associated with those +scripts should not be a factor in assessing your rights to copy and use the +SQLite library. + +All of the deliverable code in SQLite has been written from scratch. No code has +been taken from other projects or from the open internet. Every line of code can +be traced back to its original author, and all of those authors have public +domain dedications on file. So the SQLite code base is clean and is +uncontaminated with licensed code from other projects. + +Source: http://www.sqlite.org/copyright.html diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index e7f6f9151a..fe5fe41b63 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _amalgamationver=3080802 pkgver=3.8.8.2 -pkgrel=1 +pkgrel=2 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') -license=("custom:Public Domain") +license=(PublicDomain) groups=("${MINGW_PACKAGE_PREFIX}") url="http://www.sqlite.org" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" @@ -15,8 +16,10 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-readline") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tcl") -source=("http://www.sqlite.org/2015/sqlite-autoconf-$_amalgamationver.tar.gz") -sha1sums=('1db237523419af7110e1d92c6b766e965f9322e4') +source=("http://www.sqlite.org/2015/sqlite-autoconf-$_amalgamationver.tar.gz" + LICENSE) +sha1sums=('1db237523419af7110e1d92c6b766e965f9322e4' + '57efe6441d44391434046058ea0c53ab3221b36f') options=('!strip' 'staticlibs') build() { @@ -34,4 +37,5 @@ build() { package() { cd ${srcdir}/build-${CARCH} make DESTDIR="${pkgdir}" install + install -Dm644 "${srcdir}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From 0975e885eb0dc7d347977d66448a8a3ef7363bf9 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 8 Feb 2015 20:00:01 +0000 Subject: [PATCH 0494/2060] gcc: Add -mcrtdll= option This is for the crt stubbing feature Kai has started so that we can write modules that link to this stub dll which detects and defers to the already loaded msvcr*" --- ...--mcrtdll-option-for-msvcrt-stubbing.patch | 37 ++++++++++++ mingw-w64-gcc/PKGBUILD | 58 ++++++++++--------- 2 files changed, 69 insertions(+), 26 deletions(-) create mode 100644 mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch diff --git a/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch b/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch new file mode 100644 index 0000000000..391bc3d525 --- /dev/null +++ b/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch @@ -0,0 +1,37 @@ +diff -urN gcc-4.9.2.orig/gcc/config/i386/cygming.opt gcc-4.9.2/gcc/config/i386/cygming.opt +--- gcc-4.9.2.orig/gcc/config/i386/cygming.opt 2015-02-08 17:42:18.991804700 +0000 ++++ gcc-4.9.2/gcc/config/i386/cygming.opt 2015-02-08 18:30:04.004615200 +0000 +@@ -22,6 +22,9 @@ + Target RejectNegative + Create console application + ++mcrtdll= ++Target RejectNegative Joined ++ + mdll + Target RejectNegative + Generate code for a DLL +diff -urN gcc-4.9.2.orig/gcc/config/i386/mingw32.h gcc-4.9.2/gcc/config/i386/mingw32.h +--- gcc-4.9.2.orig/gcc/config/i386/mingw32.h 2015-02-08 17:42:19.021308500 +0000 ++++ gcc-4.9.2/gcc/config/i386/mingw32.h 2015-02-08 18:31:49.685034900 +0000 +@@ -142,7 +142,7 @@ + #define REAL_LIBGCC_SPEC \ + "%{mthreads:-lmingwthrd} -lmingw32 \ + "SHARED_LIBGCC_SPEC" \ +- -lmoldname -lmingwex -lmsvcrt" ++ -lmoldname -lmingwex %{!mcrtdll:-lmsvcrt}%{mcrtdll=*:-l%*}" + + #undef STARTFILE_SPEC + #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ +diff -urN gcc-4.9.2.orig/gcc/config/i386/mingw32.h.src gcc-4.9.2/gcc/config/i386/mingw32.h.src +--- gcc-4.9.2.orig/gcc/config/i386/mingw32.h.src 2015-02-08 17:42:19.021308500 +0000 ++++ gcc-4.9.2/gcc/config/i386/mingw32.h.src 2015-02-08 18:31:31.849770100 +0000 +@@ -138,7 +138,7 @@ + #define REAL_LIBGCC_SPEC \ + "%{mthreads:-lmingwthrd} -lmingw32 \ + "SHARED_LIBGCC_SPEC" \ +- -lmoldname -lmingwex -lmsvcrt" ++ -lmoldname -lmingwex %{!!mcrtdll=*:-lmsvcrt}%{mcrtdll=*:-l%*}" + + #undef STARTFILE_SPEC + #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index fd75693132..8b1fa4b5c7 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -13,7 +13,7 @@ pkgname=( "${MINGW_PACKAGE_PREFIX}-${_realname}-objc" ) pkgver=4.9.2 -pkgrel=3 +pkgrel=4 pkgdesc="GCC for the MinGW-w64" arch=('any') url="http://gcc.gnu.org" @@ -40,6 +40,7 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- '140-fix-for-windows-not-minding-non-existent-parent-dirs.patch' '150-windows-lrealpath-no-force-lowercase-nor-backslash.patch' '160-mingw-dont-ignore-native-system-header-dir.patch' + '170-Add--mcrtdll-option-for-msvcrt-stubbing.patch' '180-pr-57440.patch' '190-isl-0.13.patch' '200-gcc-4.8-filename-output.patch' @@ -54,7 +55,7 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- 'no-fpic-in-sanitizer.all.patch' 'port-sanitizer-to-mingw.all.patch' 'enable-shared-gnat-implib.mingw.patch' - '955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch') + '955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch') md5sums=('4df8ee253b7f3863ad0b86359cd39c43' '41635a40493dc79416db6627b2826b21' 'f6b5fb08ff06a7d60ee3280e14240bb2' @@ -63,6 +64,7 @@ md5sums=('4df8ee253b7f3863ad0b86359cd39c43' 'c9967332940eb2b23820faeb48db6e72' '9e07f25b8813191eebd7fda684b1e2dd' '60fdccbd072e2b2e724ff879d31ec57e' + 'fb6ed4491a78945b8d7bea4e3eb61fb5' '347336d5a318e5e8b3cde29e9174413c' 'bf00d36f0d6bfc1fcb461c1b99461be4' '40cb437805e2f7a006aa0d0c3098ab0f' @@ -102,7 +104,7 @@ prepare() { cp configure configure.src } sed -i 's/${prefix}\/mingw\//${prefix}\//g' configure - + # change hardcoded /mingw prefix to the real prefix [[ -f gcc/config/i386/mingw32.h.src ]] && { rm -f gcc/config/i386/mingw32.h @@ -132,23 +134,27 @@ prepare() { # Don't ignore values passed via --with-native-system-header-dir= # patch -p1 -i ${srcdir}/160-mingw-dont-ignore-native-system-header-dir.patch + # Feature to allow overriding -lmsvcrt with a custom msvcrt dll, for example + # a stub implementation that defers to the one already loaded by the process. + patch -p1 -i ${srcdir}/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch + patch -p1 -i ${srcdir}/180-pr-57440.patch # Compatibility with isl>=0.12.2 patch -p0 -i ${srcdir}/190-isl-0.13.patch - + # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57653 patch -p0 -i ${srcdir}/200-gcc-4.8-filename-output.patch # Kai's libgomp fix. patch -p1 -i ${srcdir}/210-ktietz-libgomp.patch - + # Enable building libatomic patch -p2 -i ${srcdir}/220-4.9.0-libatomic-cygwin.patch - + # Build aextra tools for Ada patch -p1 -i ${srcdir}/230-build-more-gnattools.mingw.patch - + patch -p1 -i ${srcdir}/240-prettify-linking-no-undefined.mingw.patch patch -p1 -i ${srcdir}/enable-shared-gnat-implib.mingw.patch @@ -158,7 +164,7 @@ prepare() { # patch -p1 -i ${srcdir}/enable-shared-gnat.mingw.patch # patch -p1 -i ${srcdir}/no-fpic-in-sanitizer.all.patch # patch -p1 -i ${srcdir}/port-sanitizer-to-mingw.all.patch - + patch -p1 -i ${srcdir}/955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch #if check_option "debug" "y"; then @@ -177,7 +183,7 @@ build() { LDFLAGS+=" -Wl,--large-address-aware" local _arch=i686 ;; - + x86_64) local _arch=x86-64 local _conf="" @@ -277,7 +283,7 @@ package_mingw-w64-gcc() { conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-base") mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,include,lib,share} - + cd ${srcdir}${MINGW_PREFIX} cp bin/cpp.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp bin/gcc.exe ${pkgdir}${MINGW_PREFIX}/bin/ @@ -294,7 +300,7 @@ package_mingw-w64-gcc() { cp bin/${MINGW_CHOST}-gcc-ar.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp bin/${MINGW_CHOST}-gcc-nm.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp bin/${MINGW_CHOST}-gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/ - + #cp bin/{libgcc*,libgomp*,libquadmath*,libssp*,libstdc*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include cp lib/gcc/${MINGW_CHOST}/${pkgver}/include/*.h ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ @@ -312,17 +318,17 @@ package_mingw-w64-gcc() { cp lib/gcc/${MINGW_CHOST}/${pkgver}/libquadmath.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/libssp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/lto*.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - + #mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib cp ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/libgcc_s.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ #cp lib/gcc/${MINGW_CHOST}/lib/libgcc_s.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/ - + #cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/c++ ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ cp -r include/c++ ${pkgdir}${MINGW_PREFIX}/include/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1plus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/libstdc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/libsupc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/{doc,info,locale,man} #cp -r share/doc/gcc-${pkgver} ${pkgdir}${MINGW_PREFIX}/share/doc/ cp share/info/cpp.info* ${pkgdir}${MINGW_PREFIX}/share/info/ @@ -332,7 +338,7 @@ package_mingw-w64-gcc() { cp share/info/gccint.info* ${pkgdir}${MINGW_PREFIX}/share/info/ cp share/info/libgomp.info* ${pkgdir}${MINGW_PREFIX}/share/info/ cp share/info/libquadmath.info* ${pkgdir}${MINGW_PREFIX}/share/info/ - + #cp share/locale/* ${pkgdir}${MINGW_PREFIX}/share/locale/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver}/python cp -r share/gcc-${pkgver}/python/libstdcxx ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver}/python/ @@ -349,7 +355,7 @@ package_mingw-w64-gcc() { package_mingw-w64-gcc-libgfortran() { pkgdesc="GNU Compiler Collection (libgfortran) for MinGW-w64" depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}") - + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin cd ${srcdir}${MINGW_PREFIX} cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/ @@ -358,15 +364,15 @@ package_mingw-w64-gcc-libgfortran() { package_mingw-w64-gcc-fortran() { pkgdesc="GNU Compiler Collection (Fortran) for MinGW-w64" depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}" "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran=${pkgver}") - + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share} - + cd ${srcdir}${MINGW_PREFIX} cp bin/gfortran.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp bin/${MINGW_CHOST}-gfortran.exe ${pkgdir}${MINGW_PREFIX}/bin/ - + #cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/ - + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver} cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/finclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/f951.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ @@ -383,7 +389,7 @@ package_mingw-w64-gcc-ada() { depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share} - + cd ${srcdir}${MINGW_PREFIX} cp bin/gnat*.exe ${pkgdir}${MINGW_PREFIX}/bin/ # cp bin/gnatbind.exe ${pkgdir}${MINGW_PREFIX}/bin/ @@ -398,14 +404,14 @@ package_mingw-w64-gcc-ada() { # cp bin/gnatname.exe ${pkgdir}${MINGW_PREFIX}/bin/ # cp bin/gnatprep.exe ${pkgdir}${MINGW_PREFIX}/bin/ # cp bin/gnatxref.exe ${pkgdir}${MINGW_PREFIX}/bin/ - + cp bin/{libgnarl*,libgnat*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/adalib cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adainclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adalib ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/gnat1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/info cp share/info/gnat-style.info* ${pkgdir}${MINGW_PREFIX}/share/info/ cp share/info/gnat_rm.info* ${pkgdir}${MINGW_PREFIX}/share/info/ @@ -415,12 +421,12 @@ package_mingw-w64-gcc-ada() { package_mingw-w64-gcc-objc() { pkgdesc="GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64" depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") - + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib} - + cd ${srcdir}${MINGW_PREFIX} cp bin/libobjc*.dll ${pkgdir}${MINGW_PREFIX}/bin/ - + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/objc ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1obj.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ From 37d6c7a1836166952fbc91513dae6c66062a4f27 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 9 Feb 2015 00:39:53 +0300 Subject: [PATCH 0495/2060] mesa: Update to 10.4.4 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index db5345412c..7c6840134a 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,7 +2,7 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.4.3 +pkgver=10.4.4 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -14,7 +14,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2 001-extra-libs.patch) -md5sums=('be86c4ee226f8ca28b7d4c728c350b01' +md5sums=('62faf98ac79c5587f8e917e187419e6c' '3eaea880ab48f851c392c2106a616e21') noextract=("MesaLib-${pkgver}.tar.bz2") From 3dd5f56c24cfdae4463f0e822ff004b1f2830427 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 9 Feb 2015 01:22:54 +0300 Subject: [PATCH 0496/2060] imagemagick: Update to 6.9.0.5 --- mingw-w64-imagemagick/002-build-fixes.patch | 12 ------------ mingw-w64-imagemagick/PKGBUILD | 10 +++++----- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/mingw-w64-imagemagick/002-build-fixes.patch b/mingw-w64-imagemagick/002-build-fixes.patch index 538379bc88..f4914416ef 100644 --- a/mingw-w64-imagemagick/002-build-fixes.patch +++ b/mingw-w64-imagemagick/002-build-fixes.patch @@ -1,15 +1,3 @@ ---- ImageMagick-6.9.0-4/coders/emf.c.orig 2015-01-18 16:03:32.542800000 +0300 -+++ ImageMagick-6.9.0-4/coders/emf.c 2015-01-18 16:03:52.245600000 +0300 -@@ -459,6 +459,9 @@ - register PixelPacket - *q; - -+ MagickBooleanType -+ status; -+ - RGBQUAD - *pBits, - *ppBits; --- ImageMagick-6.9.0-4/magick/distribute-cache.c.orig 2015-01-18 16:07:04.357600000 +0300 +++ ImageMagick-6.9.0-4/magick/distribute-cache.c 2015-01-18 16:11:40.668800000 +0300 @@ -86,6 +86,8 @@ diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index 1c1f33bacb..5d87713733 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -2,8 +2,8 @@ _realname=imagemagick pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.9.0.4 -pkgrel=2 +pkgver=6.9.0.5 +pkgrel=1 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') url="http://www.imagemagick.org/" @@ -45,16 +45,16 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-ghostscript: for Ghostscript support" #"${MINGW_PACKAGE_PREFIX}-libwebp: for WEBP support" ) options=('staticlibs' 'strip' '!debug' 'libtool') -source=(ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.xz{,.asc} +source=(http://www.imagemagick.org/download/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.xz{,.asc} ImageMagick-6.8.8.1-mingw.patch 001-relocate.patch 002-build-fixes.patch winpath.patch) -md5sums=('89e278be06d8eb8e8bd6be2c8a13ab2b' +md5sums=('eabe2c58f946704608c44ffb4e0e1953' 'SKIP' 'c95a23e8562dbab4e6b0e5407da25209' '7821087a00c459c0d3482508fdc1e25e' - '54d02f7330a8d93ebf08ca2d1e68bc4c' + '144cbba6043eb70f8dd80c4e1713cf30' 'b0b634231da667d7472522fc08fd3519') prepare() { From 29c39ee14e7cbb4e15b2fc5dff99ea3ac37ec51a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 9 Feb 2015 01:46:44 +0300 Subject: [PATCH 0497/2060] gtkspell: Rebuild. --- mingw-w64-gtkspell/PKGBUILD | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mingw-w64-gtkspell/PKGBUILD b/mingw-w64-gtkspell/PKGBUILD index 9cd8be677a..3dce226da0 100644 --- a/mingw-w64-gtkspell/PKGBUILD +++ b/mingw-w64-gtkspell/PKGBUILD @@ -2,10 +2,9 @@ # Contributor: Renato Silva _realname=gtkspell - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.16 -pkgrel=2 +pkgrel=3 pkgdesc="Provides word-processor-style highlighting and replacement of misspelled words in a GtkTextView widget (mingw-w64)" arch=('any') url="http://gtkspell.sourceforge.net/" From b3095dc5ba1f6b8d04807520a30fb0ec98731f04 Mon Sep 17 00:00:00 2001 From: DrewRWx Date: Mon, 9 Feb 2015 01:42:27 -0800 Subject: [PATCH 0498/2060] apr: Added --- mingw-w64-apr/PKGBUILD | 59 +++++++++++++++++++++++++++++++++ mingw-w64-apr/apr_ssize_t.patch | 24 ++++++++++++++ mingw-w64-apr/apr_wtypes.patch | 30 +++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 mingw-w64-apr/PKGBUILD create mode 100644 mingw-w64-apr/apr_ssize_t.patch create mode 100644 mingw-w64-apr/apr_wtypes.patch diff --git a/mingw-w64-apr/PKGBUILD b/mingw-w64-apr/PKGBUILD new file mode 100644 index 0000000000..cc010617a1 --- /dev/null +++ b/mingw-w64-apr/PKGBUILD @@ -0,0 +1,59 @@ +# Maintainer: Drew Waranis + +_realname=apr +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.5.1 +pkgrel=1 +pkgdesc="The Apache Portable Runtime (mingw-w64)" +arch=('any') +url="https://apr.apache.org/" +license=('APACHE') + +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + ) + +source=("http://www.apache.org/dist/apr/apr-${pkgver}-win32-src.zip" + 'apr_ssize_t.patch' + 'apr_wtypes.patch') +md5sums=('684a3756a2f8955e837b53e8089e10b0' + 'b91081b97f838246446c5795371faf6a' + '0326d335f035f8f13dea4296efb1faab') + +prepare() { + cd "${srcdir}/apr-${pkgver}" + + patch -p0 -i ${srcdir}/apr_ssize_t.patch + patch -p0 -i ${srcdir}/apr_wtypes.patch + + autoreconf -fi +} + +build() { + cd "${srcdir}/apr-${pkgver}" + + ./buildconf + # Disable IPv6. + ./configure --prefix="${MINGW_PREFIX}" \ + --includedir="${MINGW_PREFIX}/include/apr-1" \ + --with-installbuilddir="${MINGW_PREFIX}/share/apr-1/build" \ + --enable-nonportable-atomics \ + --with-devrandom=/dev/urandom \ + --disable-ipv6 + make -j7 +} + +#check() { +# cd "${srcdir}/apr-${pkgver}" +# make -j1 check +#} + +package() { + cd "${srcdir}/apr-${pkgver}" + make -j7 DESTDIR="$pkgdir" install + + #pushd "${pkgdir}${MINGW_PREFIX}" > /dev/null + #export PREFIX_WIN=`pwd -W` + #popd > /dev/null + #sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ + # -i "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/apr-1.pc" +} diff --git a/mingw-w64-apr/apr_ssize_t.patch b/mingw-w64-apr/apr_ssize_t.patch new file mode 100644 index 0000000000..5cb261b909 --- /dev/null +++ b/mingw-w64-apr/apr_ssize_t.patch @@ -0,0 +1,24 @@ +Index: configure.in +=================================================================== +--- configure.in (revision 1161414) ++++ configure.in (working copy) +@@ -1643,6 +1643,9 @@ + elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then + ssize_t_fmt="ld" + AC_MSG_RESULT(%ld) ++elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long_long"; then ++ ssize_t_fmt="lld" ++ AC_MSG_RESULT(%lld) + else + AC_ERROR([could not determine the proper format for apr_ssize_t]) + fi +@@ -1660,6 +1663,9 @@ + elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then + size_t_fmt="ld" + AC_MSG_RESULT(%ld) ++elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long_long"; then ++ size_t_fmt="lld" ++ AC_MSG_RESULT(%lld) + else + AC_ERROR([could not determine the proper format for apr_size_t]) + fi diff --git a/mingw-w64-apr/apr_wtypes.patch b/mingw-w64-apr/apr_wtypes.patch new file mode 100644 index 0000000000..6024b55fd8 --- /dev/null +++ b/mingw-w64-apr/apr_wtypes.patch @@ -0,0 +1,30 @@ +--- include/arch/win32/apr_private.h.orig 2014-07-03 14:34:47 -0500 ++++ include/arch/win32/apr_private.h 2014-07-03 14:35:51 -0500 +@@ -45,13 +45,9 @@ + */ + #ifndef _WIN32_WCE + #define HAVE_ACLAPI 1 +-#ifdef __wtypes_h__ ++#define COM_NO_WINDOWS_H + #include +-#else +-#define __wtypes_h__ +-#include +-#undef __wtypes_h__ +-#endif ++#undef COM_NO_WINDOWS_H + #else + #define HAVE_ACLAPI 0 + #endif +--- file_io/win32/filestat.c.orig 2014-07-03 14:42:41 -0500 ++++ file_io/win32/filestat.c 2014-07-03 14:43:09 -0500 +@@ -15,7 +15,9 @@ + */ + + #include "apr.h" ++#define COM_NO_WINDOWS_H + #include ++#undef COM_NO_WINDOWS_H + #include "apr_private.h" + #include "apr_arch_file_io.h" + #include "apr_file_io.h" From 83436a1b3506331e8829ec1e1a9828f24d30fb05 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 9 Feb 2015 20:20:00 +0300 Subject: [PATCH 0499/2060] python-lxml: Update to 3.4.2 --- mingw-w64-python-lxml/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-lxml/PKGBUILD b/mingw-w64-python-lxml/PKGBUILD index 886cd2f2c5..e97131952c 100644 --- a/mingw-w64-python-lxml/PKGBUILD +++ b/mingw-w64-python-lxml/PKGBUILD @@ -4,7 +4,7 @@ _realname=lxml pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}" "${MINGW_PACKAGE_PREFIX}-python-${_realname}-docs") -pkgver=3.4.1 +pkgver=3.4.2 pkgrel=1 arch=('any') license=('BSD' 'custom') @@ -18,7 +18,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" source=(http://pypi.python.org/packages/source/l/lxml/${_realname}-${pkgver}.tar.gz{,.asc} mingw-python-fix.patch use-distutils-get_platform.patch) -md5sums=('b7696a3f33d5610b215a343216ab5624' +md5sums=('429e5e771c4be0798923c04cb9739b4e' 'SKIP' 'e07163fc1e02cab5fa6009af35d5f823' '5268f79eb2a69b05da73d357ec8184b1') From 520c3f08127b3384f04ef984eb39bce45e330851 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Mon, 9 Feb 2015 13:25:58 -0500 Subject: [PATCH 0500/2060] Remove unused patches and update PKGBUILD accordingly. --- .../001-use-system-openssl.patch | 21 ------------- .../002-fix-python-module-install.patch | 11 ------- .../003-unix-files-layout.patch | 31 ------------------- mingw-w64-kicad-git/PKGBUILD | 2 +- 4 files changed, 1 insertion(+), 64 deletions(-) delete mode 100644 mingw-w64-kicad-git/001-use-system-openssl.patch delete mode 100644 mingw-w64-kicad-git/002-fix-python-module-install.patch delete mode 100644 mingw-w64-kicad-git/003-unix-files-layout.patch diff --git a/mingw-w64-kicad-git/001-use-system-openssl.patch b/mingw-w64-kicad-git/001-use-system-openssl.patch deleted file mode 100644 index 95bcc8b8d0..0000000000 --- a/mingw-w64-kicad-git/001-use-system-openssl.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- kicad/pcbnew/github/CMakeLists.txt.orig 2014-09-30 07:49:18.828000000 +0400 -+++ kicad/pcbnew/github/CMakeLists.txt 2014-09-30 07:49:34.880400000 +0400 -@@ -26,10 +26,6 @@ - ################################################# - include( download_avhttp ) - --if( MINGW AND NOT OPENSSL_ROOT_DIR ) -- # download, compile and install to scratch dir a recent OPENSSL library and headers -- include( download_openssl ) --else() - find_package( OpenSSL REQUIRED ) - #message( STATUS "OPENSSL_FOUND:${OPENSSL_FOUND} OPENSSL_LIBRARIES:${OPENSSL_LIBRARIES}" ) - -@@ -37,7 +33,6 @@ - # do it here incase some other link image needs these libraries - set( OPENSSL_LIBRARIES "${OPENSSL_LIBRARIES}" CACHE FILEPATH "OpenSSL link libraries" ) - set( OPENSSL_INCLUDE_DIR "${OPENSSL_INCLUDE_DIR}" CACHE FILEPATH "OpenSSL include dir" ) --endif() - - - # These are additions to any inherited from pcbnew dir: diff --git a/mingw-w64-kicad-git/002-fix-python-module-install.patch b/mingw-w64-kicad-git/002-fix-python-module-install.patch deleted file mode 100644 index 50569386b8..0000000000 --- a/mingw-w64-kicad-git/002-fix-python-module-install.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- kicad/CMakeLists.txt.orig 2014-10-02 09:27:42.914800000 +0400 -+++ kicad/CMakeLists.txt 2014-10-02 09:27:50.590000000 +0400 -@@ -564,7 +564,7 @@ - # Get the correct Python site package install path from the Python interpreter found by - # FindPythonInterp unless the user specifically defined a custom path. - if( NOT PYTHON_SITE_PACKAGE_PATH ) -- execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "import distutils.sysconfig;print\"%s\"%distutils.sysconfig.get_python_lib()" -+ execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "import distutils.sysconfig;print\"%s\"%distutils.sysconfig.get_python_lib(plat_specific=0, standard_lib=0, prefix='')" - OUTPUT_VARIABLE PYTHON_SITE_PACKAGE_PATH - OUTPUT_STRIP_TRAILING_WHITESPACE - ) diff --git a/mingw-w64-kicad-git/003-unix-files-layout.patch b/mingw-w64-kicad-git/003-unix-files-layout.patch deleted file mode 100644 index 64ebb1efbb..0000000000 --- a/mingw-w64-kicad-git/003-unix-files-layout.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 3dda778..953bfec 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -309,7 +309,7 @@ set( KICAD_BIN bin - set( KICAD_FP_LIB_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}" - CACHE PATH "Default path where footprint libraries are installed." ) - --if( UNIX AND NOT APPLE ) -+if( NOT APPLE ) - # Everything without leading / is relative to CMAKE_INSTALL_PREFIX. - set( KICAD_PLUGINS lib/kicad/plugins - CACHE PATH "Location of KiCad plugins." ) -@@ -320,17 +320,6 @@ if( UNIX AND NOT APPLE ) - set( KICAD_FP_LIB_INSTALL_PATH "${KICAD_FP_LIB_INSTALL_PATH}/share/kicad/modules" ) - endif() - --if( MINGW ) -- # Everything without leading / is relative to CMAKE_INSTALL_PREFIX. -- set( KICAD_PLUGINS ${KICAD_BIN}/plugins -- CACHE PATH "Location of KiCad plugins." ) -- set( KICAD_DATA share -- CACHE PATH "Location of KiCad data files." ) -- set( KICAD_DOCS doc -- CACHE PATH "Location of KiCad documentation files." ) -- set( KICAD_FP_LIB_INSTALL_PATH "${KICAD_FP_LIB_INSTALL_PATH}/modules" ) --endif() -- - set( KICAD_DEMOS ${KICAD_DATA}/demos - CACHE PATH "Location of KiCad demo files." ) - set( KICAD_TEMPLATE ${KICAD_DATA}/template diff --git a/mingw-w64-kicad-git/PKGBUILD b/mingw-w64-kicad-git/PKGBUILD index 1a26f125f6..0b492b35e9 100644 --- a/mingw-w64-kicad-git/PKGBUILD +++ b/mingw-w64-kicad-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=kicad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r6887.91c0868 +pkgver=r6982.bd199b8 pkgrel=1 pkgdesc="Software for the creation of electronic schematic diagrams and printed circuit board artwork" arch=('any') From 6daa9f99f95cc761b9b1fc19cbf6a591e9594744 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Mon, 9 Feb 2015 18:45:05 -0200 Subject: [PATCH 0501/2060] Trailing whitespace cleanup. --- mingw-w64-FreeImage/PKGBUILD | 4 +- mingw-w64-LibRaw/PKGBUILD | 2 +- mingw-w64-OpenBLAS-git/PKGBUILD | 4 +- mingw-w64-Pillow/PKGBUILD | 4 +- mingw-w64-SDL2/PKGBUILD | 2 +- mingw-w64-SDL2_image/PKGBUILD | 2 +- mingw-w64-a52dec/PKGBUILD | 2 +- mingw-w64-ag/PKGBUILD | 2 +- mingw-w64-allegro/PKGBUILD | 2 +- mingw-w64-angleproject-git/PKGBUILD | 4 +- mingw-w64-arm-none-eabi-newlib/PKGBUILD | 2 +- mingw-w64-aspell/PKGBUILD | 2 +- mingw-w64-assimp-git/PKGBUILD | 2 +- mingw-w64-assimp/PKGBUILD | 4 +- mingw-w64-binutils-git/PKGBUILD | 6 +- mingw-w64-binutils/PKGBUILD | 2 +- mingw-w64-bison/PKGBUILD | 2 +- mingw-w64-blender-git/PKGBUILD | 8 +- mingw-w64-blender/PKGBUILD | 2 +- mingw-w64-boost/PKGBUILD | 4 +- mingw-w64-box2d/PKGBUILD | 2 +- mingw-w64-btyacc/PKGBUILD | 2 +- mingw-w64-bullet/PKGBUILD | 12 +-- mingw-w64-c-ares/PKGBUILD | 2 +- mingw-w64-ca-certificates/PKGBUILD | 4 +- mingw-w64-cairo/PKGBUILD | 2 +- mingw-w64-chipmunk/PKGBUILD | 2 +- mingw-w64-chromaprint/PKGBUILD | 2 +- mingw-w64-clang-svn/PKGBUILD | 2 +- mingw-w64-clang/PKGBUILD | 26 ++--- mingw-w64-cling-git/PKGBUILD | 12 +-- mingw-w64-cloog/PKGBUILD | 2 +- mingw-w64-clutter-gst/PKGBUILD | 2 +- mingw-w64-cmake-git/PKGBUILD | 4 +- mingw-w64-cocos2dx-console-git/PKGBUILD | 6 +- mingw-w64-cocos2dx-git/PKGBUILD | 2 +- mingw-w64-codelite-git/PKGBUILD | 6 +- mingw-w64-coin3d-hg/PKGBUILD | 2 +- mingw-w64-collada-dom-svn/PKGBUILD | 8 +- mingw-w64-crypto++/PKGBUILD | 2 +- mingw-w64-cyrus-sasl/PKGBUILD | 8 +- mingw-w64-daala-git/PKGBUILD | 2 +- mingw-w64-db/PKGBUILD | 2 +- mingw-w64-docbook-xml/PKGBUILD | 96 +++++++++---------- mingw-w64-drmingw-git/PKGBUILD | 2 +- mingw-w64-enchant/PKGBUILD | 6 +- mingw-w64-ffmpeg/PKGBUILD | 2 +- mingw-w64-fftw/PKGBUILD | 2 +- mingw-w64-field3d/PKGBUILD | 2 +- mingw-w64-firebird-git/PKGBUILD | 8 +- mingw-w64-fluidsynth/PKGBUILD | 2 +- mingw-w64-fontconfig/fontconfig-i686.install | 6 +- .../fontconfig-x86_64.install | 6 +- mingw-w64-gc/PKGBUILD | 2 +- mingw-w64-gcc/PKGBUILD | 2 +- mingw-w64-gdbm/PKGBUILD | 2 +- mingw-w64-gegl-git/PKGBUILD | 2 +- mingw-w64-gettext/PKGBUILD | 2 +- mingw-w64-ghostscript/PKGBUILD | 6 +- mingw-w64-gimp/PKGBUILD | 2 +- mingw-w64-git/PKGBUILD | 4 +- mingw-w64-glade/PKGBUILD | 2 +- mingw-w64-glew/PKGBUILD | 2 +- mingw-w64-glib2/PKGBUILD | 2 +- mingw-w64-glsl-optimizer/PKGBUILD | 6 +- mingw-w64-gnu-cobol-svn/PKGBUILD | 8 +- mingw-w64-gnupg/PKGBUILD | 4 +- mingw-w64-gprbuild-gpl/PKGBUILD | 4 +- mingw-w64-graphicsmagick/PKGBUILD | 2 +- mingw-w64-gss-git/PKGBUILD | 2 +- mingw-w64-gst-libav/PKGBUILD | 2 +- mingw-w64-gst-plugins-base0.10/PKGBUILD | 8 +- mingw-w64-gst-plugins-good/PKGBUILD | 2 +- mingw-w64-gst-plugins-good0.10/PKGBUILD | 2 +- mingw-w64-gst-plugins-ugly/PKGBUILD | 2 +- mingw-w64-gst-python-git/PKGBUILD | 6 +- mingw-w64-gstreamer/PKGBUILD | 2 +- mingw-w64-gstreamer0.10/PKGBUILD | 2 +- mingw-w64-gtk2/PKGBUILD | 2 +- mingw-w64-gtk3/PKGBUILD | 2 +- mingw-w64-gtkada/PKGBUILD | 6 +- mingw-w64-gtksourceview3/PKGBUILD | 2 +- mingw-w64-gtkspell/PKGBUILD | 2 +- mingw-w64-gtkspell3/PKGBUILD | 2 +- mingw-w64-guile/PKGBUILD | 2 +- mingw-w64-gxml/PKGBUILD | 8 +- mingw-w64-hdf5/PKGBUILD | 2 +- mingw-w64-headers-git/PKGBUILD | 2 +- mingw-w64-hlsl2glsl/PKGBUILD | 4 +- mingw-w64-hunspell-en/PKGBUILD | 4 +- mingw-w64-icu/PKGBUILD | 2 +- mingw-w64-id3lib/PKGBUILD | 2 +- mingw-w64-imagemagick/PKGBUILD | 2 +- mingw-w64-inkscape/PKGBUILD | 2 +- mingw-w64-innoextract/PKGBUILD | 6 +- mingw-w64-insight/PKGBUILD | 2 +- mingw-w64-intel-tbb/PKGBUILD | 6 +- mingw-w64-isl/PKGBUILD | 2 +- mingw-w64-jasper/PKGBUILD | 4 +- mingw-w64-jemalloc/PKGBUILD | 6 +- mingw-w64-kqoauth-qt4/PKGBUILD | 4 +- mingw-w64-lame/PKGBUILD | 2 +- mingw-w64-lcms/PKGBUILD | 2 +- mingw-w64-lcms2/PKGBUILD | 2 +- mingw-w64-ldns/PKGBUILD | 2 +- mingw-w64-leechcraft-git/PKGBUILD | 12 +-- mingw-w64-lensfun/PKGBUILD | 2 +- mingw-w64-leptonica/PKGBUILD | 2 +- mingw-w64-libassuan/PKGBUILD | 2 +- mingw-w64-libblueray/PKGBUILD | 4 +- mingw-w64-libc++/PKGBUILD | 2 +- mingw-w64-libc++abi/PKGBUILD | 2 +- mingw-w64-libcaca/PKGBUILD | 2 +- mingw-w64-libcddb/PKGBUILD | 2 +- mingw-w64-libcdio/PKGBUILD | 4 +- mingw-w64-libdca-svn/PKGBUILD | 2 +- mingw-w64-libdvdread/PKGBUILD | 2 +- mingw-w64-libgee/PKGBUILD | 2 +- mingw-w64-libgeotiff/PKGBUILD | 6 +- mingw-w64-libgit2/PKGBUILD | 6 +- mingw-w64-libgme/PKGBUILD | 6 +- mingw-w64-libgnurx/PKGBUILD | 2 +- mingw-w64-libguess/PKGBUILD | 2 +- mingw-w64-libgxps/PKGBUILD | 2 +- mingw-w64-libid3tag/PKGBUILD | 2 +- mingw-w64-libimobiledevice/PKGBUILD | 4 +- mingw-w64-libksba/PKGBUILD | 2 +- mingw-w64-liblastfm-qt4/PKGBUILD | 4 +- mingw-w64-liblastfm/PKGBUILD | 4 +- mingw-w64-libmad/PKGBUILD | 10 +- mingw-w64-libmangle-git/PKGBUILD | 2 +- mingw-w64-libmariadbclient/PKGBUILD | 2 +- mingw-w64-libmatroska/PKGBUILD | 2 +- mingw-w64-libmimic/PKGBUILD | 2 +- mingw-w64-libmpeg2-svn/PKGBUILD | 2 +- mingw-w64-libnice/PKGBUILD | 2 +- mingw-w64-liboauth/PKGBUILD | 2 +- mingw-w64-libogg/PKGBUILD | 4 +- mingw-w64-libotr/PKGBUILD | 4 +- mingw-w64-libpeas/PKGBUILD | 2 +- mingw-w64-libplist/PKGBUILD | 4 +- mingw-w64-libproxy/PKGBUILD | 2 +- mingw-w64-librescl/PKGBUILD | 6 +- mingw-w64-librsvg/PKGBUILD | 2 +- mingw-w64-libsamplerate/PKGBUILD | 2 +- mingw-w64-libsecret/PKGBUILD | 4 +- mingw-w64-libssh/PKGBUILD | 2 +- mingw-w64-libtommath/PKGBUILD | 2 +- mingw-w64-libtorrent-rasterbar/PKGBUILD | 8 +- mingw-w64-libtre-git/PKGBUILD | 6 +- mingw-w64-libvirt/PKGBUILD | 2 +- mingw-w64-libvmime-git/PKGBUILD | 8 +- mingw-w64-libvorbis/PKGBUILD | 2 +- mingw-w64-libxml2/PKGBUILD | 6 +- mingw-w64-lua/PKGBUILD | 6 +- mingw-w64-lua51/PKGBUILD | 8 +- mingw-w64-lz4/PKGBUILD | 6 +- mingw-w64-mcpp/PKGBUILD | 2 +- mingw-w64-mesa/PKGBUILD | 4 +- mingw-w64-mpg123/PKGBUILD | 2 +- mingw-w64-mpv/PKGBUILD | 2 +- mingw-w64-nodejs/PKGBUILD | 2 +- mingw-w64-nspr/PKGBUILD | 4 +- mingw-w64-nss/PKGBUILD | 8 +- mingw-w64-nvidia-cg-toolkit/PKGBUILD | 6 +- mingw-w64-ogitor/PKGBUILD | 6 +- mingw-w64-ogre/PKGBUILD | 12 +-- mingw-w64-ogre3d-hg/PKGBUILD | 2 +- mingw-w64-ois-git/PKGBUILD | 2 +- mingw-w64-ois/PKGBUILD | 4 +- mingw-w64-oniguruma/PKGBUILD | 2 +- mingw-w64-openal/PKGBUILD | 6 +- mingw-w64-openblas/PKGBUILD | 8 +- mingw-w64-opencolorio/PKGBUILD | 2 +- mingw-w64-opencsg/PKGBUILD | 4 +- mingw-w64-openexr/PKGBUILD | 2 +- mingw-w64-openimageio/PKGBUILD | 2 +- mingw-w64-openjpeg/PKGBUILD | 6 +- mingw-w64-openjpeg2/PKGBUILD | 8 +- mingw-w64-openscad-git/PKGBUILD | 4 +- mingw-w64-openscad/PKGBUILD | 2 +- mingw-w64-openscenegraph-git/PKGBUILD | 10 +- mingw-w64-openscenegraph/PKGBUILD | 14 +-- mingw-w64-openshadinglanguage-git/PKGBUILD | 6 +- mingw-w64-openshadinglanguage/PKGBUILD | 6 +- mingw-w64-openssl/PKGBUILD | 2 +- mingw-w64-osgbullet-svn/PKGBUILD | 8 +- mingw-w64-osgocean-svn/PKGBUILD | 8 +- mingw-w64-osgworks-svn/PKGBUILD | 8 +- mingw-w64-osmgpsmap-git/PKGBUILD | 2 +- mingw-w64-pango/PKGBUILD | 4 +- mingw-w64-pdcurses/PKGBUILD | 2 +- mingw-w64-physfs/PKGBUILD | 2 +- mingw-w64-pidgin++/PKGBUILD | 2 +- mingw-w64-pitivi-git/PKGBUILD | 2 +- mingw-w64-pkgconf/PKGBUILD | 2 +- mingw-w64-plplot/PKGBUILD | 8 +- mingw-w64-pngnq/PKGBUILD | 8 +- mingw-w64-poco/PKGBUILD | 6 +- mingw-w64-poppler-qt4/PKGBUILD | 2 +- mingw-w64-postgresql/PKGBUILD | 2 +- mingw-w64-protobuf/PKGBUILD | 2 +- mingw-w64-pygobject/PKGBUILD | 2 +- mingw-w64-pygobject2/PKGBUILD | 6 +- mingw-w64-python-beaker/PKGBUILD | 4 +- mingw-w64-python-bsddb3/PKGBUILD | 4 +- mingw-w64-python-csssselect/PKGBUILD | 2 +- mingw-w64-python-cx_Freeze/PKGBUILD | 2 +- mingw-w64-python-dateutil/PKGBUILD | 12 +-- mingw-w64-python-docutils/PKGBUILD | 12 +-- mingw-w64-python-h5py/PKGBUILD | 12 +-- mingw-w64-python-httplib2/PKGBUILD | 2 +- mingw-w64-python-icu/PKGBUILD | 6 +- mingw-w64-python-jinja/PKGBUILD | 4 +- mingw-w64-python-lxml/PKGBUILD | 2 +- mingw-w64-python-mako/PKGBUILD | 6 +- mingw-w64-python-markupsafe/PKGBUILD | 4 +- mingw-w64-python-matplotlib/PKGBUILD | 14 +-- mingw-w64-python-nose/PKGBUILD | 6 +- mingw-w64-python-nuitka/PKGBUILD | 6 +- mingw-w64-python-numexpr/PKGBUILD | 8 +- mingw-w64-python-pandas/PKGBUILD | 12 +-- mingw-w64-python-patsy/PKGBUILD | 10 +- mingw-w64-python-pip/PKGBUILD | 12 +-- mingw-w64-python-pygments/PKGBUILD | 4 +- mingw-w64-python-pyparsing/PKGBUILD | 6 +- mingw-w64-python-pytz/PKGBUILD | 10 +- mingw-w64-python-reportlab/PKGBUILD | 2 +- mingw-w64-python-scipy/PKGBUILD | 14 +-- mingw-w64-python-setuptools/PKGBUILD | 6 +- mingw-w64-python-six/PKGBUILD | 6 +- mingw-w64-python-sphinx/PKGBUILD | 2 +- mingw-w64-python-statsmodels/PKGBUILD | 16 ++-- mingw-w64-python2-beautifulsoup3/PKGBUILD | 2 +- mingw-w64-python2-cairo/PKGBUILD | 2 +- mingw-w64-python2-cjson/PKGBUILD | 2 +- mingw-w64-python2/PKGBUILD | 8 +- mingw-w64-python3-cairo/PKGBUILD | 2 +- mingw-w64-python3/PKGBUILD | 4 +- mingw-w64-qbs-git/PKGBUILD | 2 +- mingw-w64-qca-qt4-git/PKGBUILD | 2 +- mingw-w64-qemu/PKGBUILD | 4 +- mingw-w64-qhull-git/PKGBUILD | 4 +- mingw-w64-qjson-qt4/PKGBUILD | 6 +- mingw-w64-qrupdate-svn/PKGBUILD | 2 +- mingw-w64-qscintilla/PKGBUILD | 10 +- mingw-w64-qt-solutions-git/PKGBUILD | 4 +- mingw-w64-qt5-git/PKGBUILD | 2 +- mingw-w64-qt5-static/PKGBUILD | 4 +- mingw-w64-qt5/PKGBUILD | 4 +- mingw-w64-qtbinpatcher/PKGBUILD | 2 +- mingw-w64-qtcreator/PKGBUILD | 2 +- mingw-w64-quarter-hg/PKGBUILD | 2 +- mingw-w64-qwt-qt4/PKGBUILD | 8 +- mingw-w64-qwt-qt5/PKGBUILD | 8 +- mingw-w64-qxmpp-qt4/PKGBUILD | 16 ++-- mingw-w64-qxmpp/PKGBUILD | 12 +-- mingw-w64-rtmpdump-git/PKGBUILD | 2 +- mingw-w64-ruby/PKGBUILD | 4 +- mingw-w64-rust/PKGBUILD | 2 +- mingw-w64-scite/PKGBUILD | 2 +- mingw-w64-sfml-git/PKGBUILD | 2 +- mingw-w64-shishi-git/PKGBUILD | 2 +- mingw-w64-smpeg2/PKGBUILD | 2 +- mingw-w64-snappy/PKGBUILD | 2 +- mingw-w64-snoregrowl/PKGBUILD | 6 +- mingw-w64-snorenotify/PKGBUILD | 6 +- mingw-w64-soundtouch/PKGBUILD | 2 +- mingw-w64-sparsehash/PKGBUILD | 2 +- mingw-w64-stxxl-git/PKGBUILD | 2 +- mingw-w64-swig/PKGBUILD | 2 +- mingw-w64-szip/PKGBUILD | 2 +- mingw-w64-taglib/PKGBUILD | 2 +- mingw-w64-tcl/PKGBUILD | 2 +- mingw-w64-termcap/PKGBUILD | 4 +- mingw-w64-tesseract-ocr-eng/PKGBUILD | 2 +- mingw-w64-tesseract-ocr-osd/PKGBUILD | 2 +- mingw-w64-tesseract-ocr/PKGBUILD | 2 +- mingw-w64-tinyxml2/PKGBUILD | 4 +- mingw-w64-tk/PKGBUILD | 2 +- mingw-w64-tktable/PKGBUILD | 2 +- mingw-w64-tolua/PKGBUILD | 4 +- mingw-w64-twolame/PKGBUILD | 2 +- mingw-w64-uhttpmock/PKGBUILD | 2 +- mingw-w64-unbound/PKGBUILD | 2 +- mingw-w64-vcdimager/PKGBUILD | 2 +- mingw-w64-vlc-git/PKGBUILD | 4 +- mingw-w64-webkitgtk2/PKGBUILD | 6 +- mingw-w64-webkitgtk3/PKGBUILD | 2 +- mingw-w64-wineditline/PKGBUILD | 4 +- mingw-w64-winico/PKGBUILD | 2 +- mingw-w64-winpthreads-git/PKGBUILD | 8 +- mingw-w64-winstorecompat-git/PKGBUILD | 4 +- mingw-w64-wxPython/PKGBUILD | 8 +- mingw-w64-x265/PKGBUILD | 2 +- mingw-w64-xalan-c/PKGBUILD | 4 +- mingw-w64-xmlada-gpl/PKGBUILD | 4 +- mingw-w64-xpm-nox/PKGBUILD | 2 +- mingw-w64-yaml-cpp/PKGBUILD | 2 +- mingw-w64-yaml-cpp0.3/PKGBUILD | 2 +- mingw-w64-zlib/PKGBUILD | 4 +- 301 files changed, 665 insertions(+), 665 deletions(-) diff --git a/mingw-w64-FreeImage/PKGBUILD b/mingw-w64-FreeImage/PKGBUILD index 03a9370a93..13e1355c51 100644 --- a/mingw-w64-FreeImage/PKGBUILD +++ b/mingw-w64-FreeImage/PKGBUILD @@ -61,7 +61,7 @@ prepare() { rm -rf Source/LibJXR/common/include/guiddef.h #cp -f ${srcdir}/Makefile.mingw-w64 ${srcdir}/FreeImage/Makefile.mingw-w64 - + # Generate source list sh ./gensrclist.sh sh ./genfipsrclist.sh @@ -112,7 +112,7 @@ package() { install -m644 Dist/libfreeimageplus.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/ install -m644 Dist/FreeImage.h "${pkgdir}${MINGW_PREFIX}"/include/ install -m644 Dist/FreeImagePlus.h "${pkgdir}${MINGW_PREFIX}"/include/ - + install -m644 Whatsnew.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/ install -m644 license-fi.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/ install -m644 license-gplv2.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/ diff --git a/mingw-w64-LibRaw/PKGBUILD b/mingw-w64-LibRaw/PKGBUILD index edafe39930..b998193f49 100644 --- a/mingw-w64-LibRaw/PKGBUILD +++ b/mingw-w64-LibRaw/PKGBUILD @@ -30,7 +30,7 @@ prepare() { cd "$srcdir/${_realname}-$pkgver" patch -Np1 -i "$srcdir/LibRaw_wsock32.patch" patch -Np1 -i "$srcdir/LibRaw_obsolete-macros.patch" - + autoreconf -ifv } diff --git a/mingw-w64-OpenBLAS-git/PKGBUILD b/mingw-w64-OpenBLAS-git/PKGBUILD index 5ccaef810d..25908e5e04 100644 --- a/mingw-w64-OpenBLAS-git/PKGBUILD +++ b/mingw-w64-OpenBLAS-git/PKGBUILD @@ -20,7 +20,7 @@ options=('strip' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran" "${MINGW_PACKAGE_PREFIX}-libwinpthread") -makedepends=("git" +makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gcc-fortran") source=("$_realname"::"git://github.com/xianyi/${_realname}") @@ -84,7 +84,7 @@ package() { fi # Copy Licencse - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -f ${srcdir}/${_realname}/LICENSE \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -f ${srcdir}/${_realname}/lapack-netlib/LICENSE \ diff --git a/mingw-w64-Pillow/PKGBUILD b/mingw-w64-Pillow/PKGBUILD index 0f7e3d2fed..820906a57c 100644 --- a/mingw-w64-Pillow/PKGBUILD +++ b/mingw-w64-Pillow/PKGBUILD @@ -38,7 +38,7 @@ prepare() { package_python3-Pillow() { depends+=("${MINGW_PACKAGE_PREFIX}-python3") optdepends=("${MINGW_PACKAGE_PREFIX}-tk: for the ImageTK module") - + cd "$srcdir/python3-build-${CARCH}" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="$pkgdir/" --optimize=0 @@ -58,7 +58,7 @@ package_python2-Pillow() { pkgdesc="Python Imaging Library (PIL) fork. Python2 version." depends+=("${MINGW_PACKAGE_PREFIX}-python2") optdepends=("${MINGW_PACKAGE_PREFIX}-tk: for the ImageTK module") - + cd "$srcdir/python2-build-${CARCH}" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="$pkgdir/" --optimize=0 diff --git a/mingw-w64-SDL2/PKGBUILD b/mingw-w64-SDL2/PKGBUILD index 8cac88121c..7dc3074ee6 100644 --- a/mingw-w64-SDL2/PKGBUILD +++ b/mingw-w64-SDL2/PKGBUILD @@ -19,7 +19,7 @@ md5sums=('fe6c61d2e9df9ef570e7e80c6e822537' prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/fix-linker-flags.patch - + ./autogen.sh } diff --git a/mingw-w64-SDL2_image/PKGBUILD b/mingw-w64-SDL2_image/PKGBUILD index 29d20f83f0..7b0b776933 100644 --- a/mingw-w64-SDL2_image/PKGBUILD +++ b/mingw-w64-SDL2_image/PKGBUILD @@ -11,7 +11,7 @@ url="http://www.libsdl.org/projects/SDL_image" license=('MIT') depends=("${MINGW_PACKAGE_PREFIX}-SDL2" "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-libwebp") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") diff --git a/mingw-w64-a52dec/PKGBUILD b/mingw-w64-a52dec/PKGBUILD index c82fa05046..d0c75aeeab 100644 --- a/mingw-w64-a52dec/PKGBUILD +++ b/mingw-w64-a52dec/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: Alexey Pavlov # Contributor: AlexWMF - + _realname=a52dec pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.7.4 diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index b1bedce1ec..0089fe1a18 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -20,7 +20,7 @@ md5sums=('56ba98da4298e9db1929f34ca05b1627' prepare() { cd "${srcdir}/${_longname}-${pkgver}" patch -p1 -i ${srcdir}/001-mingw-build.patch - + autoreconf -fi } diff --git a/mingw-w64-allegro/PKGBUILD b/mingw-w64-allegro/PKGBUILD index 2f93b0a7f4..9663fcebcc 100644 --- a/mingw-w64-allegro/PKGBUILD +++ b/mingw-w64-allegro/PKGBUILD @@ -44,7 +44,7 @@ build() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + pushd ${MINGW_PREFIX} > /dev/null export PREFIX_DEPS=`pwd -W` popd > /dev/null diff --git a/mingw-w64-angleproject-git/PKGBUILD b/mingw-w64-angleproject-git/PKGBUILD index d6286804fc..511252ba2a 100644 --- a/mingw-w64-angleproject-git/PKGBUILD +++ b/mingw-w64-angleproject-git/PKGBUILD @@ -96,7 +96,7 @@ build() { # Fix multiply defined 'SetTraceFunctionPointers' patch -p1 -i "${srcdir}"/0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch - + # Patches from Qt5 patch -p4 -i "${srcdir}"/0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch patch -p4 -i "${srcdir}"/0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch @@ -115,7 +115,7 @@ build() { export CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4" export CXXFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4" - + sed -i -e 's_python _python2 _g' -e 's_"python"_"python2"_g' -e "s_'python'_'python2'_g" -e 's_/usr/bin/python_/usr/bin/python2_g' $(find -type f) sed -i -e 's|vsprintf_s|vsprintf|g' $(find . \( -name '*.h' -or -name '*.cpp' \) -and -type f) diff --git a/mingw-w64-arm-none-eabi-newlib/PKGBUILD b/mingw-w64-arm-none-eabi-newlib/PKGBUILD index da1630dd04..dc6476d5f0 100644 --- a/mingw-w64-arm-none-eabi-newlib/PKGBUILD +++ b/mingw-w64-arm-none-eabi-newlib/PKGBUILD @@ -123,7 +123,7 @@ build() { --disable-nls \ CFLAGS="${NEWLIB_CFLAGS}" \ PATH="${armgccpath}:${PATH}" - make PATH="${armgccpath}:${PATH}" + make PATH="${armgccpath}:${PATH}" } package() { diff --git a/mingw-w64-aspell/PKGBUILD b/mingw-w64-aspell/PKGBUILD index 635ef0583d..4f63e1d40c 100644 --- a/mingw-w64-aspell/PKGBUILD +++ b/mingw-w64-aspell/PKGBUILD @@ -42,7 +42,7 @@ prepare() { patch -p1 -i ${srcdir}/0005-w32-home.all.patch patch -p1 -i ${srcdir}/0006-abort.mingw.patch patch -p1 -i ${srcdir}/0007-fix-including-langinfo.patch - + autoreconf -fi } diff --git a/mingw-w64-assimp-git/PKGBUILD b/mingw-w64-assimp-git/PKGBUILD index ce7b5383be..95b053e387 100644 --- a/mingw-w64-assimp-git/PKGBUILD +++ b/mingw-w64-assimp-git/PKGBUILD @@ -31,7 +31,7 @@ prepare() { build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ diff --git a/mingw-w64-assimp/PKGBUILD b/mingw-w64-assimp/PKGBUILD index c14c7bd48e..80b4772dee 100644 --- a/mingw-w64-assimp/PKGBUILD +++ b/mingw-w64-assimp/PKGBUILD @@ -24,7 +24,7 @@ prepare() { build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ @@ -42,7 +42,7 @@ package() { cd "${srcdir}//build-${MINGW_CHOST}" make -j1 install install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" - + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null diff --git a/mingw-w64-binutils-git/PKGBUILD b/mingw-w64-binutils-git/PKGBUILD index 95f5441535..e19d44279f 100644 --- a/mingw-w64-binutils-git/PKGBUILD +++ b/mingw-w64-binutils-git/PKGBUILD @@ -55,7 +55,7 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} - + patch -p1 -i "${srcdir}"/0001-enable-gold-on.mingw32.patch patch -p1 -i "${srcdir}"/0002-check-for-unusual-file-harder.patch #patch -p1 -i "${srcdir}"/0003-enable-shared-bfd.all.patch @@ -69,7 +69,7 @@ prepare() { #patch -p1 -i "${srcdir}"/0015-dont-link-ld-to-libiberty.mingw.patch #patch -p1 -i "${srcdir}"/0017-fix-iconv-linking.all.patch patch -p1 -i "${srcdir}"/0110-binutils-mingw-gnu-print.patch - + rm -rf gdb readline libdecnumber sim } @@ -134,6 +134,6 @@ package() { # Add some useful headers #install -m644 ${srcdir}/${_realname}-${pkgver}/include/libiberty.h ${pkgdir}${MINGW_PREFIX}/include #install -m644 ${srcdir}/${_realname}-${pkgver}/include/demangle.h ${pkgdir}${MINGW_PREFIX}/include - + find ${pkgdir}${MINGW_PREFIX}/share -type f -iname "opcodes.mo" -o -iname "bfd.mo" | xargs -rtl1 rm } diff --git a/mingw-w64-binutils/PKGBUILD b/mingw-w64-binutils/PKGBUILD index 517cebf909..fe7642dd73 100644 --- a/mingw-w64-binutils/PKGBUILD +++ b/mingw-w64-binutils/PKGBUILD @@ -120,6 +120,6 @@ package() { # Add some useful headers #install -m644 ${srcdir}/${_realname}-${pkgver}/include/libiberty.h ${pkgdir}${MINGW_PREFIX}/include #install -m644 ${srcdir}/${_realname}-${pkgver}/include/demangle.h ${pkgdir}${MINGW_PREFIX}/include - + find ${pkgdir}${MINGW_PREFIX}/share -type f -iname "opcodes.mo" -o -iname "bfd.mo" | xargs -rtl1 rm } diff --git a/mingw-w64-bison/PKGBUILD b/mingw-w64-bison/PKGBUILD index 6cc6e21062..be81dbe651 100644 --- a/mingw-w64-bison/PKGBUILD +++ b/mingw-w64-bison/PKGBUILD @@ -32,7 +32,7 @@ prepare() { patch -p1 -i "${srcdir}"/0002-add-relocation-support.patch patch -p1 -i "${srcdir}"/0003-create_pipe-uses-O_TEXT-not-O_BINARY-mode.patch patch -p1 -i "${srcdir}"/0004-open-source-file-in-binary-mode-MS-ftell-bug-ks-68337.patch - + autoreconf -fiv } diff --git a/mingw-w64-blender-git/PKGBUILD b/mingw-w64-blender-git/PKGBUILD index fef010b3e6..91ff36c586 100644 --- a/mingw-w64-blender-git/PKGBUILD +++ b/mingw-w64-blender-git/PKGBUILD @@ -70,7 +70,7 @@ prepare() { patch -p1 -i ${srcdir}/fix-finding-glew.patch patch -p1 -i ${srcdir}/fix-define-syntax.patch patch -p1 -i ${srcdir}/mingw-use-X11-like-path-layout.patch - + cp -rf $srcdir/translations/* $srcdir/$_realname/release/datafiles/locale/ cp -rf $srcdir/addons/* $srcdir/$_realname/release/scripts/addons/ cp -rf $srcdir/addons-contrib/* $srcdir/$_realname/release/scripts/addons_contrib/ @@ -83,14 +83,14 @@ build() { [[ $CARCH == i686 ]] && ENABLESSE2="-DSUPPORT_SSE2_BUILD=OFF" [[ $CARCH == i686 ]] && BUILDCUDA="OFF" || BUILDCUDA="ON" #[[ $CARCH == i686 ]] && PMARCH="i686" || PMARCH="x86-64" - + declare -a _btype if check_option "debug" "y"; then _btype=Debug else _btype=Release fi - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ @@ -128,7 +128,7 @@ build() { make } -package() { +package() { cd "$srcdir/build-${MINGW_CHOST}" make install diff --git a/mingw-w64-blender/PKGBUILD b/mingw-w64-blender/PKGBUILD index 6c4ae416f1..71a56104e1 100644 --- a/mingw-w64-blender/PKGBUILD +++ b/mingw-w64-blender/PKGBUILD @@ -89,7 +89,7 @@ build() { else _btype=Release fi - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ diff --git a/mingw-w64-boost/PKGBUILD b/mingw-w64-boost/PKGBUILD index ab5cce1e15..92eefe126c 100644 --- a/mingw-w64-boost/PKGBUILD +++ b/mingw-w64-boost/PKGBUILD @@ -44,14 +44,14 @@ prepare() { patch -p1 -i ${srcdir}/boost-1.56-mingw-context.patch patch -p1 -i ${srcdir}/boost-1.54.0-bootstrap.patch patch -p1 -i ${srcdir}/boost-1.57.0-Add-missing-include-to-signals2-trackable.hpp.patch - + # Use out own build Python patch -p1 -i ${srcdir}/using-mingw-w64-python.patch pushd ${MINGW_PREFIX} > /dev/null export PREFIX_DEPS=`pwd -W` popd > /dev/null - + echo "using python : 2.7 : ${PREFIX_DEPS}/bin/python2.exe : ${PREFIX_DEPS}/include/python2.7 ;" >> ./tools/build/src/user-config.jam echo "using python : 3.4 : ${PREFIX_DEPS}/bin/python3.exe : ${PREFIX_DEPS}/include/python3.4m : ${PREFIX_DEPS}/lib/python3.4/config-3.4m ;" >> ./tools/build/src/user-config.jam diff --git a/mingw-w64-box2d/PKGBUILD b/mingw-w64-box2d/PKGBUILD index 54bf6a66c7..5d9b2a40fd 100644 --- a/mingw-w64-box2d/PKGBUILD +++ b/mingw-w64-box2d/PKGBUILD @@ -17,7 +17,7 @@ build() { mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_BUILD_TYPE=Release \ diff --git a/mingw-w64-btyacc/PKGBUILD b/mingw-w64-btyacc/PKGBUILD index e5ed15e3a6..7012ad95a9 100644 --- a/mingw-w64-btyacc/PKGBUILD +++ b/mingw-w64-btyacc/PKGBUILD @@ -22,7 +22,7 @@ package() { cd "${srcdir}" mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,share} cp btyacc.exe ${pkgdir}${MINGW_PREFIX}/bin/ - + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname} cp README{,.BYACC} ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/ } diff --git a/mingw-w64-bullet/PKGBUILD b/mingw-w64-bullet/PKGBUILD index 899687457e..a417fb1361 100644 --- a/mingw-w64-bullet/PKGBUILD +++ b/mingw-w64-bullet/PKGBUILD @@ -38,7 +38,7 @@ build() { build_release() { depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-freeglut") - + cd ${srcdir} mkdir -p build-release && pushd build-release ${MINGW_PREFIX}/bin/cmake \ @@ -54,9 +54,9 @@ build_release() { ../bullet3-Bullet-${pkgver}-alpha make make install - + mv -f ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ - + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null @@ -66,7 +66,7 @@ build_release() { build_debug() { depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=$pkgver") - + cd ${srcdir} mkdir -p build-debug && pushd build-debug ${MINGW_PREFIX}/bin/cmake \ @@ -83,9 +83,9 @@ build_debug() { ../bullet3-Bullet-${pkgver}-alpha make make install - + mv -f ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ - + rm -rf ${pkgdir}${MINGW_PREFIX}/include rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake rm -rf ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig diff --git a/mingw-w64-c-ares/PKGBUILD b/mingw-w64-c-ares/PKGBUILD index 58648d608f..2c6f101dbd 100644 --- a/mingw-w64-c-ares/PKGBUILD +++ b/mingw-w64-c-ares/PKGBUILD @@ -20,7 +20,7 @@ sha1sums=('e44e6575d5af99cb3a38461486e1ee8b49810eb5' prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-Use-RPM-compiler-options.patch - + autoreconf -fi } diff --git a/mingw-w64-ca-certificates/PKGBUILD b/mingw-w64-ca-certificates/PKGBUILD index 6313e4b8a3..5adeee160f 100644 --- a/mingw-w64-ca-certificates/PKGBUILD +++ b/mingw-w64-ca-certificates/PKGBUILD @@ -37,7 +37,7 @@ prepare() { build() { cd ${srcdir}/${_realname}-${pkgver}/mozilla ${MINGW_PREFIX}/bin/python2 certdata2pem.py - + ( cat < /dev/null export PREFIX_WIN=`pwd -W` diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index a8ac1fe1c1..06229ed111 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -182,7 +182,7 @@ package_llvm(){ install -d "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html cp -rf "${srcdir}"/llvm/docs/_build/html/* "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html/ rm -r "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html/_sources - + # Install CMake stuff install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/modules/ diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index b2584edbdb..ebd37e7630 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -74,7 +74,7 @@ prepare() { # Fix docs installation directory sed -i 's:$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \ Makefile.config.in - + # Fix definition of LLVM_CMAKE_DIR in LLVMConfig.cmake sed -i '/@LLVM_CONFIG_CMAKE_DIR@/s:$(PROJ_cmake):$(PROJ_prefix)/share/llvm/cmake:' \ cmake/modules/Makefile @@ -83,23 +83,23 @@ prepare() { # See http://llvm.org/bugs/show_bug.cgi?id=4840 [ -d tools/clang ] && rm -rf tools/clang mv "$srcdir/cfe-$pkgver.src" tools/clang - + [ -d projects/compiler-rt ] && rm -rf projects/compiler-rt mv "$srcdir/compiler-rt-$pkgver.src" projects/compiler-rt - + # [ -d projects/test-suite ] && rm -rf projects/test-suite # mv "$srcdir/test-suite-$pkgver.src" projects/test-suite - + [ -d tools/clang/tools/extra ] && rm -rf tools/clang/tools/extra mv "$srcdir/clang-tools-extra-$pkgver.src" tools/clang/tools/extra - + #[ -d tools/lldb ] && rm -rf tools/lldb #mv "$srcdir/lldb-$pkgver.src" tools/lldb #sed -i -e "s|python-config|python2-config|" tools/lldb/lib/Makefile #sed -i -e "s|python-config|python2-config|" tools/lldb/Makefile #sed -i -e "s|/usr/bin/env python|&2|" tools/lldb/scripts/Python/build-swig-Python.sh #sed -i -e "s|/usr/bin/env python|&2|" tools/lldb/scripts/Python/finish-swig-Python-LLDB.sh - + #[ -d projects/libcxx-$pkgver ] && rm -rf projects/libcxx #mv "$srcdir/libcxx-$pkgver.src" projects/libcxx @@ -145,7 +145,7 @@ setup() { local destdir=${srcdir}/dest [[ -d $destdir ]] && rm -rf ${destdir} mkdir -p ${destdir} - + # CLANG-TOOLS-EXTRA cd "$srcdir/build-${MINGW_CHOST}/tools/clang/tools/extra" make DESTDIR="$destdir/clang-tools-extra" install @@ -155,7 +155,7 @@ setup() { cd ${srcdir} mv ${srcdir}/build-${MINGW_CHOST}/tools/clang/tools/extra ${srcdir}/clang-tools-extra-${MINGW_CHOST} mv ${srcdir}/llvm-$pkgver/tools/clang/tools/extra ${srcdir}/clang-tools-extra-${pkgver} - + # CLANG cd "$srcdir/build-${MINGW_CHOST}/tools/clang" make -j1 DESTDIR="$destdir/clang" install @@ -166,7 +166,7 @@ setup() { install -d "${destdir}"/clang${MINGW_PREFIX}/share/doc/clang/html cp -rf $srcdir/llvm-$pkgver/tools/clang/docs/_build/html/* "${destdir}"/clang${MINGW_PREFIX}/share/doc/clang/html/ rm -r "${destdir}"/clang${MINGW_PREFIX}/share/doc/clang/html/_sources - + # CLANG-ANAYLYSER install -d ${destdir}/clang-analyzer${MINGW_PREFIX}/{bin,lib/clang-analyzer} for _tool in scan-{build,view}; do @@ -196,11 +196,11 @@ setup() { mv "$srcdir/llvm-$pkgver/tools/clang" "$srcdir/clang-$pkgver" # Put src back where it was (clang) cd "$srcdir/build-${MINGW_CHOST}" make -j1 DESTDIR="$destdir/llvm" install - + # Install man pages install -d "${destdir}"/llvm${MINGW_PREFIX}/share/man/man1 cp $srcdir/llvm-$pkgver/docs/_build/man/*.1 "${destdir}"/llvm${MINGW_PREFIX}/share/man/man1/ - + # Install html docs install -d "${destdir}"/llvm${MINGW_PREFIX}/share/doc/llvm/html cp -rf $srcdir/llvm-$pkgver/docs/_build/html/* "${destdir}"/llvm${MINGW_PREFIX}/share/doc/llvm/html/ @@ -216,7 +216,7 @@ setup() { mv "${srcdir}/clang-$pkgver" "${srcdir}/llvm-$pkgver/tools/clang" mv "${srcdir}/clang-tools-extra-${MINGW_CHOST}" "${srcdir}/build-${MINGW_CHOST}/tools/clang/tools/extra" mv "${srcdir}/clang-tools-extra-${pkgver}" "${srcdir}/llvm-$pkgver/tools/clang/tools/extra" - + # Undo more prepare() moves. #mv "${srcdir}/llvm-$pkgver/projects/compiler-rt" "${srcdir}/compiler-rt-$pkgver.src" # Put src back where it was (the rest) #mv "${srcdir}/llvm-$pkgver/projects/test-suite" "${srcdir}/test-suite-$pkgver.src" @@ -256,7 +256,7 @@ package_clang-tools-extra() { pkgdesc="Extra tools built using Clang's tooling APIs" url="http://clang.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}") - + mv $srcdir/dest/clang-tools-extra/* $pkgdir } diff --git a/mingw-w64-cling-git/PKGBUILD b/mingw-w64-cling-git/PKGBUILD index 7587fa54a1..3df814f4b0 100644 --- a/mingw-w64-cling-git/PKGBUILD +++ b/mingw-w64-cling-git/PKGBUILD @@ -51,7 +51,7 @@ build() { # Include location of libffi headers in CPPFLAGS CPPFLAGS+=" $(pkg-config --cflags libffi)" - + ../configure \ -C \ --prefix=${MINGW_PREFIX} \ @@ -93,7 +93,7 @@ package_clang(){ cd ${srcdir}/llvm/tools/clang local ver="$(git rev-parse HEAD)" pkgver="r$(git svn find-rev ${ver})" - + cd "${srcdir}/llvm/build-${MINGW_CHOST}/tools/clang" make -j1 DESTDIR="$pkgdir" install rm -r ${pkgdir}${MINGW_PREFIX}/docs @@ -107,7 +107,7 @@ package_cling(){ cd ${srcdir}/llvm/tools/cling local ver="$(git rev-parse HEAD)" pkgver="r$(git svn find-rev ${ver})" - + cd "${srcdir}/llvm/build-${MINGW_CHOST}/tools/cling" make -j1 DESTDIR="$pkgdir" install } @@ -121,7 +121,7 @@ package_llvm(){ cd ${srcdir}/llvm local ver="$(git rev-parse HEAD)" pkgver="r$(git svn find-rev ${ver})" - + mv "${srcdir}/llvm/tools/clang" "${srcdir}/clang" mv "${srcdir}/llvm/build-${MINGW_CHOST}/tools/clang" "${srcdir}/clang-${MINGW_CHOST}" mv "${srcdir}/llvm/tools/cling" "${srcdir}/cling" @@ -133,7 +133,7 @@ package_llvm(){ mv "${srcdir}/cling" "${srcdir}/llvm/tools/cling" mv "${srcdir}/cling-${MINGW_CHOST}" "${srcdir}/llvm/build-${MINGW_CHOST}/tools/cling" rm -r ${pkgdir}${MINGW_PREFIX}/docs - + # Install CMake stuff install -d "${pkgdir}${MINGW_PREFIX}"/share/llvm/cmake/{modules,platforms} install -Dm644 $srcdir/llvm/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}"/share/llvm/cmake/modules/ @@ -149,7 +149,7 @@ package_clang-analyzer() { cd ${srcdir}/llvm/tools/clang local ver="$(git rev-parse HEAD)" pkgver="r$(git svn find-rev ${ver})" - + install -d ${pkgdir}${MINGW_PREFIX}/{bin,lib/clang-analyzer} for _tool in scan-{build,view}; do cp -r tools/$_tool ${pkgdir}${MINGW_PREFIX}/lib/clang-analyzer/ diff --git a/mingw-w64-cloog/PKGBUILD b/mingw-w64-cloog/PKGBUILD index ddc4f313a0..632324be7e 100644 --- a/mingw-w64-cloog/PKGBUILD +++ b/mingw-w64-cloog/PKGBUILD @@ -27,7 +27,7 @@ prepare() { patch -p1 -i ${srcdir}/cloog-0.18.1-no-undefined.patch patch -p1 -i ${srcdir}/cloog-0.18.1-isl-use-documented-functions.patch patch -p1 -i ${srcdir}/cloog-0.18.1-isl-use-isl_val.patch - + autoreconf -fi } diff --git a/mingw-w64-clutter-gst/PKGBUILD b/mingw-w64-clutter-gst/PKGBUILD index 829ae4e636..52598800ee 100644 --- a/mingw-w64-clutter-gst/PKGBUILD +++ b/mingw-w64-clutter-gst/PKGBUILD @@ -50,6 +50,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - + rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a } diff --git a/mingw-w64-cmake-git/PKGBUILD b/mingw-w64-cmake-git/PKGBUILD index 7e79c8e51d..1f89eed5a5 100644 --- a/mingw-w64-cmake-git/PKGBUILD +++ b/mingw-w64-cmake-git/PKGBUILD @@ -50,7 +50,7 @@ build() { pushd ${MINGW_PREFIX} > /dev/null export PREFIX_LIB=`pwd -W` popd > /dev/null - + mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" @@ -62,7 +62,7 @@ build() { --parallel=3 \ --mandir=share \ --docdir=share/doc/cmake - + plain "Start building..." make } diff --git a/mingw-w64-cocos2dx-console-git/PKGBUILD b/mingw-w64-cocos2dx-console-git/PKGBUILD index 2d98db4f4a..6d254a0efc 100644 --- a/mingw-w64-cocos2dx-console-git/PKGBUILD +++ b/mingw-w64-cocos2dx-console-git/PKGBUILD @@ -30,7 +30,7 @@ prepare() { #patch the location of cococs2d.ini #sed -i "s|os.path.join(cocos2d_path, \"cocos2d.ini\")|\"${MINGW_PREFIX}/share/cocos2d-x/console/cocos2d.ini\"|g" $srcdir/$_realname/bin/cocos.py sed -i "s|~/.cocos2d-js/cocos2d.ini|${MINGW_PREFIX}/share/cocos2d-x/console/cocos2d.ini|g" $srcdir/$_realname/bin/cocos.py - + #we use python2 not python ;) sed -i "s|exec python|exec /usr/bin/python2|g" $srcdir/$_realname/bin/cocos sed -i "s|#!/usr/bin/python|#!/usr/bin/python2|g" $srcdir/$_realname/bin/cocos.py @@ -39,7 +39,7 @@ prepare() { #fixup cocos sed -i "s|exec python|exec /usr/bin/python2|g" $srcdir/$_realname/bin/cocos sed -i "s|\$COCOS_CONSOLE_BIN_DIRECTORY/cocos.py|${MINGW_PREFIX}/bin/cocos.py|g" $srcdir/$_realname/bin/cocos - + } build() { @@ -48,7 +48,7 @@ build() { #set the location of the templates sed -i "s|templates=|templates=${MINGW_PREFIX}/share/cocos2d-x/templates|g" $srcdir/$_realname/bin/cocos2d.ini sed -i "s|plugins=../plugins|plugins=${MINGW_PREFIX}/share/cocos2d-x/console/plugins|g" $srcdir/$_realname/bin/cocos2d.ini - + } package() { diff --git a/mingw-w64-cocos2dx-git/PKGBUILD b/mingw-w64-cocos2dx-git/PKGBUILD index 33896434d5..381ccc53cf 100644 --- a/mingw-w64-cocos2dx-git/PKGBUILD +++ b/mingw-w64-cocos2dx-git/PKGBUILD @@ -96,7 +96,7 @@ package() { #looks like we will pollute until the cocos devs change include structure #cocos/ find -type f \( -name "*.h*" -o -name "*.inl" \) -exec install -D {} ${pkgdir}${MINGW_PREFIX}/include/{} \; - + #put win32 into include because we are on windows cd "${pkgdir}${MINGW_PREFIX}/include" mv platform/win32/* . diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index 464db29e60..d1b56bc510 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -47,7 +47,7 @@ build() { else extra_config+=( -DCMAKE_BUILD_TYPE=Release ) fi - + cd $srcdir/${_realname} ${MINGW_PREFIX}/bin/cmake \ @@ -63,10 +63,10 @@ build() { make # -j1 VERBOSE=1 } -package() { +package() { cd "$srcdir/${_realname}" make install - + rm -f ${pkgdir}${MINGW_PREFIX}/lib/codelite/*.a rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.a } diff --git a/mingw-w64-coin3d-hg/PKGBUILD b/mingw-w64-coin3d-hg/PKGBUILD index 661179a08f..9ba1876fd9 100644 --- a/mingw-w64-coin3d-hg/PKGBUILD +++ b/mingw-w64-coin3d-hg/PKGBUILD @@ -65,7 +65,7 @@ build() { --with-simage=${MINGW_PREFIX} \ --with-glu=${MINGW_PREFIX}/${MINGW_CHOST} \ --without-x - + #--with-spidermonkey=no make } diff --git a/mingw-w64-collada-dom-svn/PKGBUILD b/mingw-w64-collada-dom-svn/PKGBUILD index f432656137..2fb311d2ae 100644 --- a/mingw-w64-collada-dom-svn/PKGBUILD +++ b/mingw-w64-collada-dom-svn/PKGBUILD @@ -35,7 +35,7 @@ prepare() { cd "${srcdir}/${_realname}" patch -p1 -i ${srcdir}/001-collada-2.4.0-mingw-w64-fix.patch patch -p1 -i ${srcdir}/002-fix-pkg-config.patch - + #sed -i "s|#include |#include |g" dom/include/dae/daeZAEUncompressHandler.h } @@ -43,7 +43,7 @@ build() { mkdir -p build-${MINGW_CHOST} CPPFLAGS+=" -I ${MINGW_PREFIX}/include/minizip" - + cd "${srcdir}/build-${MINGW_CHOST}" ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ @@ -66,11 +66,11 @@ package() { #make -j1 install #cp dom/src/1.5/*.a ${pkgdir}${MINGW_PREFIX}/lib/ #mv ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom-config.cmake ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom15-config.cmake - + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ #rm ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/collada-dom.pc - + mkdir -p ${pkgdir}${MINGW_PREFIX} pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` diff --git a/mingw-w64-crypto++/PKGBUILD b/mingw-w64-crypto++/PKGBUILD index e0e9ac10bf..40f9486987 100644 --- a/mingw-w64-crypto++/PKGBUILD +++ b/mingw-w64-crypto++/PKGBUILD @@ -31,7 +31,7 @@ build() { package() { cd ${srcdir} - + mkdir -p ${pkgdir}${MINGW_PREFIX}/include/cryptopp cp *.h ${pkgdir}${MINGW_PREFIX}/include/cryptopp diff --git a/mingw-w64-cyrus-sasl/PKGBUILD b/mingw-w64-cyrus-sasl/PKGBUILD index a5c62302e0..28d070922b 100644 --- a/mingw-w64-cyrus-sasl/PKGBUILD +++ b/mingw-w64-cyrus-sasl/PKGBUILD @@ -95,7 +95,7 @@ prepare() { patch -p1 -i ${srcdir}/19-paths-relocation.patch sed 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' -i configure.in - rm -f config/config.guess config/config.sub + rm -f config/config.guess config/config.sub rm -f config/ltconfig config/ltmain.sh config/libtool.m4 rm -fr autom4te.cache libtoolize -c @@ -103,9 +103,9 @@ prepare() { automake -a -c autoheader autoconf - + pushd saslauthd - rm -f config/config.guess config/config.sub + rm -f config/config.guess config/config.sub rm -f config/ltconfig config/ltmain.sh config/libtool.m4 rm -fr autom4te.cache libtoolize -c @@ -119,7 +119,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - + # Useful ref: # https://fedorapeople.org/cgit/elmarco/public_git/mingw32-cyrus-sasl.git/tree/mingw32-cyrus-sasl.spec # --oldincludedir=${MINGW_PREFIX}/include is so that /usr/include isn't added by default. diff --git a/mingw-w64-daala-git/PKGBUILD b/mingw-w64-daala-git/PKGBUILD index 2de9319b4a..d10ac6e1a7 100644 --- a/mingw-w64-daala-git/PKGBUILD +++ b/mingw-w64-daala-git/PKGBUILD @@ -31,7 +31,7 @@ prepare() { cd ${srcdir}/${_realname} patch -p1 -i ${srcdir}/0001-make-daalabase-public.mingw.patch patch -p1 -i ${srcdir}/0002-make-daalabase-public.mingw.patch - + autoreconf -fi } diff --git a/mingw-w64-db/PKGBUILD b/mingw-w64-db/PKGBUILD index 8576a6bcf5..ad96230424 100644 --- a/mingw-w64-db/PKGBUILD +++ b/mingw-w64-db/PKGBUILD @@ -57,7 +57,7 @@ check() { package() { cd ${srcdir}/build-${CARCH} make DESTDIR="${pkgdir}" install - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -pf ${srcdir}/${_realname}-${pkgver}/LICENSE \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname } diff --git a/mingw-w64-docbook-xml/PKGBUILD b/mingw-w64-docbook-xml/PKGBUILD index ba17af597f..890c3c87ef 100644 --- a/mingw-w64-docbook-xml/PKGBUILD +++ b/mingw-w64-docbook-xml/PKGBUILD @@ -53,7 +53,7 @@ package() { "${pkgdir}${MINGW_PREFIX}/share/xml/docbook/xml-dtd-${ver}/" popd done - + #extract v4.1.2 mkdir docbook-xml-4.1.2 pushd docbook-xml-4.1.2 @@ -72,52 +72,52 @@ package() { "-//OASIS//DTD DocBook XML V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/soextblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/dbpoolx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/dbhierx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/dbgenent.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/dbnotnx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.1.2/dbcentx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/4.1.2" \ "../../share/xml/docbook/xml-dtd-4.1.2" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/4.1.2" \ "../../share/xml/docbook/xml-dtd-4.1.2" \ @@ -128,47 +128,47 @@ package() { "-//OASIS//DTD DocBook XML V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook CALS Table Model V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/soextblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Information Pool V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/dbpoolx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/dbhierx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Additional General Entities V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/dbgenent.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Notations V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/dbnotnx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Character Entities V4.2//EN" \ "http://www.oasis-open.org/docbook/xml/4.2/dbcentx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/4.2" \ "../../share/xml/docbook/xml-dtd-4.2" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/4.2" \ "../../share/xml/docbook/xml-dtd-4.2" \ @@ -179,47 +179,47 @@ package() { "-//OASIS//DTD DocBook XML V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook CALS Table Model V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/soextblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Information Pool V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/dbpoolx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/dbhierx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Additional General Entities V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/dbgenent.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Notations V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/dbnotnx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Character Entities V4.3//EN" \ "http://www.oasis-open.org/docbook/xml/4.3/dbcentx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/4.3" \ "../../share/xml/docbook/xml-dtd-4.3" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/4.3" \ "../../share/xml/docbook/xml-dtd-4.3" \ @@ -230,37 +230,37 @@ package() { "-//OASIS//DTD DocBook XML V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook CALS Table Model V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/htmltblx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/soextblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Information Pool V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/dbpoolx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/dbhierx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Additional General Entities V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/dbgenent.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook Notations V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/dbnotnx.mod" \ @@ -269,12 +269,12 @@ package() { "-//OASIS//ENTITIES DocBook Character Entities V4.4//EN" \ "http://www.oasis-open.org/docbook/xml/4.4/dbcentx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/4.4" \ "../../share/xml/docbook/xml-dtd-4.4" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/4.4" \ "../../share/xml/docbook/xml-dtd-4.4" \ @@ -285,52 +285,52 @@ package() { "-//OASIS//DTD DocBook XML V4.5//EN" \ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \ "../../share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ "../../share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \ "../../share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \ "../../share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \ "../../share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \ "../../share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \ "../../share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \ "../../share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/4.5" \ "../../share/xml/docbook/xml-dtd-4.5" \ "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml" - + ${MINGW_PREFIX}/bin/xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/4.5" \ "../../share/xml/docbook/xml-dtd-4.5" \ diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index f9a4e532c8..4e09cbee5e 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -30,7 +30,7 @@ prepare() { build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ diff --git a/mingw-w64-enchant/PKGBUILD b/mingw-w64-enchant/PKGBUILD index 66cf66c893..59d203a50d 100644 --- a/mingw-w64-enchant/PKGBUILD +++ b/mingw-w64-enchant/PKGBUILD @@ -28,7 +28,7 @@ prepare() { #patch -p1 -i ${srcdir}/01-relocate.patch # Use instead relocate patch patch -p1 -i ${srcdir}/01-not-use-hardcoded-paths.patch - + autoreconf -fiv } @@ -36,7 +36,7 @@ build() { mkdir -p "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - + ${srcdir}/${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -51,7 +51,7 @@ build() { --disable-uspell \ --disable-hspell \ --disable-zemberek - + # MSYS2_ARG_CONV_EXCL="-DENCHANT_USPELL_DICT_DIR=;-DENCHANT_MYSPELL_DICT_DIR=;-DENCHANT_ISPELL_DICT_DIR=;-DENCHANT_PREFIX_DIR=;-DENCHANT_GLOBAL_MODULE_DIR=;-DENCHANT_GLOBAL_ORDERING=;-DENCHANT_BIN_DIR=" make } diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 4b58718c92..7c0c166e0f 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -108,6 +108,6 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install mv "${pkgdir}${MINGW_PREFIX}"/bin/*.lib "${pkgdir}${MINGW_PREFIX}"/lib/ - + #find ${pkgdir}${MINGW_PREFIX}/bin -type f -name "*.exe" -exec objcopy --subsystem console {} \; } diff --git a/mingw-w64-fftw/PKGBUILD b/mingw-w64-fftw/PKGBUILD index 7d1a492465..c2e7e653f6 100644 --- a/mingw-w64-fftw/PKGBUILD +++ b/mingw-w64-fftw/PKGBUILD @@ -32,7 +32,7 @@ build() { --with-windows-f77-mangling make popd - + mkdir -p build-${MINGW_CHOST}-ld && pushd build-${MINGW_CHOST}-ld ../configure \ --prefix=${MINGW_PREFIX} \ diff --git a/mingw-w64-field3d/PKGBUILD b/mingw-w64-field3d/PKGBUILD index ed2165c370..20c8792dd2 100644 --- a/mingw-w64-field3d/PKGBUILD +++ b/mingw-w64-field3d/PKGBUILD @@ -27,7 +27,7 @@ prepare() { build() { [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD index 08c3a350d6..c778c2e338 100644 --- a/mingw-w64-firebird-git/PKGBUILD +++ b/mingw-w64-firebird-git/PKGBUILD @@ -44,7 +44,7 @@ prepare() { git am ${srcdir}/firebird-mingw.diff git am ${srcdir}/firebird-msys.diff cd .. - + mv "${_realname}" "${CARCH}" cd "${CARCH}" NOCONFIGURE=1 ./autogen.sh @@ -57,7 +57,7 @@ build() { fi cd ${srcdir}/${CARCH} - + ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -75,12 +75,12 @@ build() { package() { cd ${srcdir}/${CARCH} - + local _dir=Release if check_option "debug" "y"; then _dir=Debug fi - + mkdir -p ${pkgdir} cp -rf gen/${_dir}/firebird ${pkgdir}${MINGW_PREFIX} cp -rf ${srcdir}/${CARCH}/doc ${pkgdir}${MINGW_PREFIX}/ diff --git a/mingw-w64-fluidsynth/PKGBUILD b/mingw-w64-fluidsynth/PKGBUILD index dd3ee6a091..1f37a1201c 100644 --- a/mingw-w64-fluidsynth/PKGBUILD +++ b/mingw-w64-fluidsynth/PKGBUILD @@ -36,7 +36,7 @@ prepare() { patch -p1 -i ${srcdir}/0002-1001-revert_abi_break_114.all.patch patch -p1 -i ${srcdir}/0003-include-blddir.all.patch patch -p1 -i ${srcdir}/0004-disable-rtkit-bindings-on-w32.all.patch - + ./autogen.sh } diff --git a/mingw-w64-fontconfig/fontconfig-i686.install b/mingw-w64-fontconfig/fontconfig-i686.install index bb00ce6431..f52c9c6bbc 100644 --- a/mingw-w64-fontconfig/fontconfig-i686.install +++ b/mingw-w64-fontconfig/fontconfig-i686.install @@ -1,6 +1,6 @@ post_install() { cat << _EOF - + Fontconfig configuration is done via /mingw32/etc/fonts/conf.avail and conf.d. Read /mingw32/etc/fonts/conf.d/README for more information. @@ -20,8 +20,8 @@ post_upgrade() { post_remove() { cat << _EOF - Check for dead symlinks and leftover files + Check for dead symlinks and leftover files in mingw32/etc/fonts/conf.d/ - + _EOF } \ No newline at end of file diff --git a/mingw-w64-fontconfig/fontconfig-x86_64.install b/mingw-w64-fontconfig/fontconfig-x86_64.install index e7bccead84..08e5bd10ea 100644 --- a/mingw-w64-fontconfig/fontconfig-x86_64.install +++ b/mingw-w64-fontconfig/fontconfig-x86_64.install @@ -1,6 +1,6 @@ post_install() { cat << _EOF - + Fontconfig configuration is done via /mingw64/etc/fonts/conf.avail and conf.d. Read /mingw64/etc/fonts/conf.d/README for more information. @@ -20,8 +20,8 @@ post_upgrade() { post_remove() { cat << _EOF - Check for dead symlinks and leftover files + Check for dead symlinks and leftover files in mingw64/etc/fonts/conf.d/ - + _EOF } diff --git a/mingw-w64-gc/PKGBUILD b/mingw-w64-gc/PKGBUILD index f0a15c7565..385e09665d 100644 --- a/mingw-w64-gc/PKGBUILD +++ b/mingw-w64-gc/PKGBUILD @@ -23,7 +23,7 @@ prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-winpthreads.mingw.patch patch -p1 -i ${srcdir}/0003-move-docs.all.patch - + ./autogen.sh } diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 8b1fa4b5c7..60566a2ede 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -278,7 +278,7 @@ ENDFILE package_mingw-w64-gcc() { pkgdesc="GNU Compiler Collection (C,C++,OpenMP) for MinGW-w64" - depends=("${MINGW_PACKAGE_PREFIX}-crt" "${MINGW_PACKAGE_PREFIX}-binutils" "${MINGW_PACKAGE_PREFIX}-winpthreads" "${MINGW_PACKAGE_PREFIX}-headers" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-mpc" "${MINGW_PACKAGE_PREFIX}-cloog" "${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}") + depends=("${MINGW_PACKAGE_PREFIX}-crt" "${MINGW_PACKAGE_PREFIX}-binutils" "${MINGW_PACKAGE_PREFIX}-winpthreads" "${MINGW_PACKAGE_PREFIX}-headers" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-mpc" "${MINGW_PACKAGE_PREFIX}-cloog" "${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-base") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-base") diff --git a/mingw-w64-gdbm/PKGBUILD b/mingw-w64-gdbm/PKGBUILD index 6446046fd1..9ad3708278 100644 --- a/mingw-w64-gdbm/PKGBUILD +++ b/mingw-w64-gdbm/PKGBUILD @@ -34,7 +34,7 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - + ${srcdir}/${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-gegl-git/PKGBUILD b/mingw-w64-gegl-git/PKGBUILD index 682507200d..fdd7661eec 100644 --- a/mingw-w64-gegl-git/PKGBUILD +++ b/mingw-w64-gegl-git/PKGBUILD @@ -79,7 +79,7 @@ build() { --disable-docs \ --with-vala \ --enable-introspection - + make } diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index a6b0ae4cb8..024011ceba 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -40,7 +40,7 @@ prepare() { patch -p0 -i ${srcdir}/06-dont-include-ctype-after-gnulibs-wctype.mingw.patch patch -p0 -i ${srcdir}/07-fix-asprintf-conflict.mingw.patch #patch -p1 -i ${srcdir}/120-Fix-Woe32-link-errors-when-compiling-with-O0.patch - + # libtoolize --automake --copy --force #WANT_AUTOMAKE=latest ./autogen.sh --skip-gnulib } diff --git a/mingw-w64-ghostscript/PKGBUILD b/mingw-w64-ghostscript/PKGBUILD index 5035f10091..8a41ebd639 100644 --- a/mingw-w64-ghostscript/PKGBUILD +++ b/mingw-w64-ghostscript/PKGBUILD @@ -41,7 +41,7 @@ prepare() { patch -p1 -i ${srcdir}/libspectre.patch sed -e "s|/usr|${MINGW_PREFIX}/${MINGW_CHOST}|g" -i base/all-arch.mak base/unix-aux.mak - + # force it to use system-libs rm -rf freetype jpeg libpng lcms lcms2 tiff zlib openjpeg @@ -67,7 +67,7 @@ build() --enable-freetype \ --disable-contrib \ --without-x - + make so } @@ -81,7 +81,7 @@ package() { install -D -m644 "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE cp ${pkgdir}${MINGW_PREFIX}/bin/{gsc,gswin32c}.exe - + # remove unwanted localized man-pages rm -rf "${pkgdir}${MINGW_PREFIX}"/share/man/[^man1]* } diff --git a/mingw-w64-gimp/PKGBUILD b/mingw-w64-gimp/PKGBUILD index 422b9b7b06..b9682d01bc 100644 --- a/mingw-w64-gimp/PKGBUILD +++ b/mingw-w64-gimp/PKGBUILD @@ -52,7 +52,7 @@ prepare() { patch -p1 -i ${srcdir}/find-directx-fix.patch patch -p1 -i ${srcdir}/python-m4.patch patch -p1 -i ${srcdir}/mingw-add-ModuleFileName-dir-to-PATH.patch - + rm -fr autom4te.cache libtoolize -c aclocal -I m4macros diff --git a/mingw-w64-git/PKGBUILD b/mingw-w64-git/PKGBUILD index f45bb9b3f8..d177a0c5cd 100644 --- a/mingw-w64-git/PKGBUILD +++ b/mingw-w64-git/PKGBUILD @@ -15,7 +15,7 @@ makedepends=('python2' 'less' 'openssh') # 'rsync') depends=("${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-expat>=2.0" - "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-tcl" "perl-Error" "perl>=5.14.0" @@ -104,7 +104,7 @@ build() { [ -d build-${CARCH} ] && rm -rf build-${CARCH} cp -rf $_realname-$_sillyname build-${CARCH} cd build-${CARCH} - + ./configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-glade/PKGBUILD b/mingw-w64-glade/PKGBUILD index d15ca0ce71..f141427321 100644 --- a/mingw-w64-glade/PKGBUILD +++ b/mingw-w64-glade/PKGBUILD @@ -18,7 +18,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-python2-gobject2" 'intltool' - 'itstool' + 'itstool' 'docbook-xsl') optdepends=("${MINGW_PACKAGE_PREFIX}-python2: Python widgets support" #'devhelp: help browser' diff --git a/mingw-w64-glew/PKGBUILD b/mingw-w64-glew/PKGBUILD index 5284323eac..5806627924 100644 --- a/mingw-w64-glew/PKGBUILD +++ b/mingw-w64-glew/PKGBUILD @@ -16,7 +16,7 @@ source=("http://sourceforge.net/projects/glew/files/glew/$pkgver/glew-$pkgver.tg 001-makefile.patch) md5sums=('01246c7ecd135d99be031aa63f86dca1' '0f4ea29bfa687508ebaaefd0de5199dc') - + prepare() { cd "$srcdir/glew-$pkgver" patch -p1 -i ${srcdir}/001-makefile.patch diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 2e0e43e2ee..76fdf24984 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -100,7 +100,7 @@ package() { cd "$srcdir/build-${CARCH}-shared" make DESTDIR="$pkgdir" install - + mv "$pkgdir/static/${MINGW_PREFIX}/lib/"*.a "$pkgdir/${MINGW_PREFIX}/lib/" rm -rf "${pkgdir}/static" diff --git a/mingw-w64-glsl-optimizer/PKGBUILD b/mingw-w64-glsl-optimizer/PKGBUILD index 1e57799b04..de77d79a7f 100644 --- a/mingw-w64-glsl-optimizer/PKGBUILD +++ b/mingw-w64-glsl-optimizer/PKGBUILD @@ -47,14 +47,14 @@ build() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + mkdir ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ ../${_realname} - + make } diff --git a/mingw-w64-gnu-cobol-svn/PKGBUILD b/mingw-w64-gnu-cobol-svn/PKGBUILD index aefb8324c5..0a12f1f957 100644 --- a/mingw-w64-gnu-cobol-svn/PKGBUILD +++ b/mingw-w64-gnu-cobol-svn/PKGBUILD @@ -17,8 +17,8 @@ groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("subversion" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libiconv") -depends=("${MINGW_PACKAGE_PREFIX}-db" - "${MINGW_PACKAGE_PREFIX}-gmp" +depends=("${MINGW_PACKAGE_PREFIX}-db" + "${MINGW_PACKAGE_PREFIX}-gmp" "${MINGW_PACKAGE_PREFIX}-ncurses") source=("$_realname::svn+http://svn.code.sf.net/p/open-cobol/code/branches/gnu-cobol-2.0" fix-including-headers.patch) @@ -57,8 +57,8 @@ build() { package() { cd ${srcdir}/build-${CARCH} make DESTDIR="$pkgdir" install - - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -pf ${srcdir}/${_realname}/COPYING* \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname } diff --git a/mingw-w64-gnupg/PKGBUILD b/mingw-w64-gnupg/PKGBUILD index 4f4c9e9d57..ba51a0712b 100644 --- a/mingw-w64-gnupg/PKGBUILD +++ b/mingw-w64-gnupg/PKGBUILD @@ -15,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-libksba" "${MINGW_PACKAGE_PREFIX}-libgcrypt" - "${MINGW_PACKAGE_PREFIX}-libassuan" + "${MINGW_PACKAGE_PREFIX}-libassuan" "${MINGW_PACKAGE_PREFIX}-libgnurx" "${MINGW_PACKAGE_PREFIX}-w32pth") makedepends=("texinfo" "${MINGW_PACKAGE_PREFIX}-gcc") @@ -33,7 +33,7 @@ prepare() { cd "${srcdir}"/gnupg-${pkgver} patch -p1 -i ${srcdir}/gnupg-1.4.15-libiconv-dll.patch # patch -p1 -i ../fix_seat_check_on_windows.patch - + #./autogen.sh # libtoolize --copy --force # aclocal -I m4 -I gl/m4 diff --git a/mingw-w64-gprbuild-gpl/PKGBUILD b/mingw-w64-gprbuild-gpl/PKGBUILD index d910b3fa83..455d7de38f 100644 --- a/mingw-w64-gprbuild-gpl/PKGBUILD +++ b/mingw-w64-gprbuild-gpl/PKGBUILD @@ -34,7 +34,7 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} - + make } @@ -43,7 +43,7 @@ package() { make prefix="${pkgdir}${MINGW_PREFIX}" INSTALL=cp install # Copy License Files - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -pf COPYING* \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/ } diff --git a/mingw-w64-graphicsmagick/PKGBUILD b/mingw-w64-graphicsmagick/PKGBUILD index cac9348667..505ca53688 100644 --- a/mingw-w64-graphicsmagick/PKGBUILD +++ b/mingw-w64-graphicsmagick/PKGBUILD @@ -42,7 +42,7 @@ md5sums=('5bb456e3466026ada6f12cc53c9776dc' prepare() { cd GraphicsMagick-${pkgver} patch -p1 -i ${srcdir}/001-relocate.patch - + autoreconf -fiv } diff --git a/mingw-w64-gss-git/PKGBUILD b/mingw-w64-gss-git/PKGBUILD index aeea032863..773a5ab811 100644 --- a/mingw-w64-gss-git/PKGBUILD +++ b/mingw-w64-gss-git/PKGBUILD @@ -35,7 +35,7 @@ prepare() { WANT_AUTOMAKE=latest autoreconf -fi cp -rf ${srcdir}/snippet build-aux/ cd .. - + cp -rf ${_realname} build-${MINGW_CHOST} } diff --git a/mingw-w64-gst-libav/PKGBUILD b/mingw-w64-gst-libav/PKGBUILD index e427b6f828..b1e3343181 100644 --- a/mingw-w64-gst-libav/PKGBUILD +++ b/mingw-w64-gst-libav/PKGBUILD @@ -22,7 +22,7 @@ md5sums=('f4922a46adbcbe7bd01331ff5dc7979d') prepare() { cd ${srcdir}/${_realname}-${pkgver} - + NOCONFIGURE=1 ./autogen.sh } diff --git a/mingw-w64-gst-plugins-base0.10/PKGBUILD b/mingw-w64-gst-plugins-base0.10/PKGBUILD index 0f35dc8fa0..4003c78dff 100644 --- a/mingw-w64-gst-plugins-base0.10/PKGBUILD +++ b/mingw-w64-gst-plugins-base0.10/PKGBUILD @@ -51,7 +51,7 @@ md5sums=('3d2337841b132fe996e5eb2396ac9438' prepare() { cd ${srcdir}/${_realname}-${pkgver} - + sed -i -e '/AC_PATH_XTRA/d' -e 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.ac patch -Np1 -i ${srcdir}/fix-crash-0-byte-ogg.patch patch -Np1 -i ${srcdir}/colorbalance-fix-abi.patch @@ -59,15 +59,15 @@ prepare() { patch -Np1 -i ${srcdir}/videoscale-fix-negotiation.patch patch -Np1 -i ${srcdir}/gstaudio-symbols.patch #patch -Rp1 -i ${srcdir}/revert-decodebin-playbin-removal.patch - + patch -Np0 -i ${srcdir}/gst-plugins-base-0.10.36-warnings.patch patch -Np1 -i ${srcdir}/gst-plugins-base-0.10.28-gnomevfswin32.patch - + patch -p1 -i ${srcdir}/0001-fix-test-compilation.mingw.patch patch -p1 -i ${srcdir}/0002-fix-test-running.mingw.patch patch -p1 -i ${srcdir}/0003-fix-riff-includes.mingw.patch patch -p1 -i ${srcdir}/0004-fix-X-detection.mingw.patch - + NOCONFIGURE=1 ./autogen.sh } diff --git a/mingw-w64-gst-plugins-good/PKGBUILD b/mingw-w64-gst-plugins-good/PKGBUILD index 0f55148eee..1dc5e90c3d 100644 --- a/mingw-w64-gst-plugins-good/PKGBUILD +++ b/mingw-w64-gst-plugins-good/PKGBUILD @@ -37,7 +37,7 @@ prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0002-fix-test-running.mingw.patch patch -p0 -i ${srcdir}/0004-fix-X-detection.mingw.patch - + NOCONFIGURE=1 ./autogen.sh } diff --git a/mingw-w64-gst-plugins-good0.10/PKGBUILD b/mingw-w64-gst-plugins-good0.10/PKGBUILD index ff06e06117..57a9a9a846 100644 --- a/mingw-w64-gst-plugins-good0.10/PKGBUILD +++ b/mingw-w64-gst-plugins-good0.10/PKGBUILD @@ -46,7 +46,7 @@ prepare() { patch -Np0 -i ${srcdir}/mingw64-gst-plugins-good-waveform-git.patch patch -p1 -i ${srcdir}/0001-fix-X-detection.mingw.patch patch -p1 -i ${srcdir}/0002-fix-test-running.mingw.patch - + NOCONFIGURE=1 ./autogen.sh } diff --git a/mingw-w64-gst-plugins-ugly/PKGBUILD b/mingw-w64-gst-plugins-ugly/PKGBUILD index cc0d536908..ee1940031e 100644 --- a/mingw-w64-gst-plugins-ugly/PKGBUILD +++ b/mingw-w64-gst-plugins-ugly/PKGBUILD @@ -30,7 +30,7 @@ md5sums=('6954beed7bb9a93e426dee543ff46393') prepare() { cd ${srcdir}/${_realname}-${pkgver} - + NOCONFIGURE=1 ./autogen.sh } diff --git a/mingw-w64-gst-python-git/PKGBUILD b/mingw-w64-gst-python-git/PKGBUILD index 7d53196279..60e07d2248 100644 --- a/mingw-w64-gst-python-git/PKGBUILD +++ b/mingw-w64-gst-python-git/PKGBUILD @@ -9,7 +9,7 @@ pkgrel=1 pkgdesc='GStreamer GObject Introspection overrides for Python 3' arch=('any') license=('LGPL') -depends=("${MINGW_PACKAGE_PREFIX}-gstreamer" +depends=("${MINGW_PACKAGE_PREFIX}-gstreamer" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") makedepends=('git') @@ -19,8 +19,8 @@ options=(!libtool strip staticlibs) source=("git://anongit.freedesktop.org/gstreamer/${_realname}" '0001-msys2-python3-config-returns-1-so-use-which.patch' '0002-msys2-fix-linking-errors.patch') -md5sums=('SKIP' - 'eb52a3ef8270c2d263c79799bcaf377a' +md5sums=('SKIP' + 'eb52a3ef8270c2d263c79799bcaf377a' 'a1d96c7bf521664a76d424c1b9250ea8') pkgver() { diff --git a/mingw-w64-gstreamer/PKGBUILD b/mingw-w64-gstreamer/PKGBUILD index 0979fab9fd..9533514bdb 100644 --- a/mingw-w64-gstreamer/PKGBUILD +++ b/mingw-w64-gstreamer/PKGBUILD @@ -44,7 +44,7 @@ build() { else extra_config+=( --enable-debug=no ) fi - + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" #mkdir -p "${srcdir}/build-${MINGW_CHOST}" diff --git a/mingw-w64-gstreamer0.10/PKGBUILD b/mingw-w64-gstreamer0.10/PKGBUILD index 928d0b072f..1d1e2a9b50 100644 --- a/mingw-w64-gstreamer0.10/PKGBUILD +++ b/mingw-w64-gstreamer0.10/PKGBUILD @@ -56,7 +56,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - + #Remove unversioned gst-* binaries to get rid of conflicts cd "${pkgdir}${MINGW_PREFIX}/bin" for bins in `ls *-0.10.exe`; do diff --git a/mingw-w64-gtk2/PKGBUILD b/mingw-w64-gtk2/PKGBUILD index 958c04c87b..34660e86be 100644 --- a/mingw-w64-gtk2/PKGBUILD +++ b/mingw-w64-gtk2/PKGBUILD @@ -62,7 +62,7 @@ prepare() { patch -p1 -i ${srcdir}/0011-gir-for-gdkwin32.mingw.patch #patch -p1 -i ${srcdir}/0012-embed-manifest.all.patch patch -p1 -i ${srcdir}/0013-gtk-revert-recreatecairosurface-commit.patch - + autoreconf -fi } diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index c170176876..91e45433c4 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -78,7 +78,7 @@ package() { cd "${srcdir}/${CHOST}" make -j1 DESTDIR="$pkgdir" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' -o -name '*.manifest' | xargs -rtl1 rm - + mv ${pkgdir}${MINGW_PREFIX}/bin/gtk-update-icon-cache{,-3.0}.exe mv ${pkgdir}${MINGW_PREFIX}/share/man/man1/gtk-update-icon-cache{,-3.0}.1 } diff --git a/mingw-w64-gtkada/PKGBUILD b/mingw-w64-gtkada/PKGBUILD index 73b143b308..b52ca0284b 100644 --- a/mingw-w64-gtkada/PKGBUILD +++ b/mingw-w64-gtkada/PKGBUILD @@ -13,7 +13,7 @@ options=('!staticlibs' 'strip') license=('GPL3' 'custom') groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-ada") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-ada" +depends=("${MINGW_PACKAGE_PREFIX}-gcc-ada" "${MINGW_PACKAGE_PREFIX}-gtk3") source=("http://www.pfeifers-software.de/files/GNAT/${_realname}-gpl-${pkgver}-src.tgz" "gtkada-mingw.diff") @@ -38,7 +38,7 @@ build() { --enable-shared \ --disable-static \ --with-GL=no - + make -j1 } @@ -49,7 +49,7 @@ package() { rm -rf ${pkgdir}${MINGW_PREFIX}/share/doc # Copy License Files - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -pf ${srcdir}/${_realname}-$pkgver-src/COPYING* \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname } diff --git a/mingw-w64-gtksourceview3/PKGBUILD b/mingw-w64-gtksourceview3/PKGBUILD index 448df29e79..ef31fefea3 100644 --- a/mingw-w64-gtksourceview3/PKGBUILD +++ b/mingw-w64-gtksourceview3/PKGBUILD @@ -44,7 +44,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - + for ff in ${pkgdir}/${MINGW_PREFIX}/bin/libgtksourceview*.dll; do local _reallib=$(basename $ff) _reallib=${_reallib%.dll} diff --git a/mingw-w64-gtkspell/PKGBUILD b/mingw-w64-gtkspell/PKGBUILD index 3dce226da0..822b8f948b 100644 --- a/mingw-w64-gtkspell/PKGBUILD +++ b/mingw-w64-gtkspell/PKGBUILD @@ -24,7 +24,7 @@ md5sums=('f75dcc9338f182c571b321d37c606a94' prepare() { cd ${_realname}-$pkgver patch -p1 -i ${srcdir}/gtkspell-no-undefined.patch - + WANT_AUTOMAKE=latest autoreconf -fi } diff --git a/mingw-w64-gtkspell3/PKGBUILD b/mingw-w64-gtkspell3/PKGBUILD index 8bfb297078..1725c0f272 100644 --- a/mingw-w64-gtkspell3/PKGBUILD +++ b/mingw-w64-gtkspell3/PKGBUILD @@ -28,7 +28,7 @@ prepare() { cd ${_realname}-$pkgver patch -p1 -i ${srcdir}/001-win.patch - + WANT_AUTOMAKE=latest autoreconf -fi } diff --git a/mingw-w64-guile/PKGBUILD b/mingw-w64-guile/PKGBUILD index ca9f98a03f..04f6111ff9 100644 --- a/mingw-w64-guile/PKGBUILD +++ b/mingw-w64-guile/PKGBUILD @@ -29,7 +29,7 @@ md5sums=('e532c68c6f17822561e3001136635ddd' prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0002-winpthreads-compat.mingw.patch - + autoreconf -fi } diff --git a/mingw-w64-gxml/PKGBUILD b/mingw-w64-gxml/PKGBUILD index 6098a07c0f..6a51197da6 100644 --- a/mingw-w64-gxml/PKGBUILD +++ b/mingw-w64-gxml/PKGBUILD @@ -7,9 +7,9 @@ pkgrel=2 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="LibXML2 GObject wrapper version 0.4 (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-zlib" +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-glib2>=2.34.0" @@ -25,7 +25,7 @@ sha256sums=('f821c5b076208aa311151c263b951aaab27991663edd1918c05522aa0463663d') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - + # Get proper unprefixed directories for gobject-introspection files autoreconf -fiv } diff --git a/mingw-w64-hdf5/PKGBUILD b/mingw-w64-hdf5/PKGBUILD index 2ebbb73d5d..1235175c50 100644 --- a/mingw-w64-hdf5/PKGBUILD +++ b/mingw-w64-hdf5/PKGBUILD @@ -35,7 +35,7 @@ prepare() { patch -p1 -i ${srcdir}/hdf5-install.patch patch -p1 -i ${srcdir}/hdf5-default-import-suffix.patch patch -p1 -i ${srcdir}/hdf5-fix-install-docs.patch - + # rename X.dll to X-0.dll echo "IF (BUILD_SHARED_LIBS)" >> CMakeLists.txt echo "SET_TARGET_PROPERTIES (\${HDF5_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 0733f89395..117b4571f7 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -52,5 +52,5 @@ package() { msg "Installing MinGW-w64 licenses" install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/ddk/readme.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${pkgname}/ddk-readme.txt install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/direct-x/COPYING.LIB ${pkgdir}${MINGW_PREFIX}/share/licenses/${pkgname}/direct-x-COPYING.LIB - install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/direct-x/readme.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${pkgname}/direct-x-readme.txt + install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/direct-x/readme.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${pkgname}/direct-x-readme.txt } diff --git a/mingw-w64-hlsl2glsl/PKGBUILD b/mingw-w64-hlsl2glsl/PKGBUILD index 13cb3a4381..9e63c86e97 100644 --- a/mingw-w64-hlsl2glsl/PKGBUILD +++ b/mingw-w64-hlsl2glsl/PKGBUILD @@ -39,10 +39,10 @@ prepare() { build() { cd ${srcdir}/${_realname} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" - + BISON_SIMPLE=${srcdir}/${_realname}/tools/bison.simple make } diff --git a/mingw-w64-hunspell-en/PKGBUILD b/mingw-w64-hunspell-en/PKGBUILD index 1d2505a68b..8157b70eb0 100644 --- a/mingw-w64-hunspell-en/PKGBUILD +++ b/mingw-w64-hunspell-en/PKGBUILD @@ -32,7 +32,7 @@ package() { ln -s en_GB-large.aff $lang.aff ln -s en_GB-large.dic $lang.dic done - + en_US_aliases="en_PH" for lang in $en_US_aliases; do ln -s en_US-large.aff $lang.aff @@ -47,7 +47,7 @@ package() { ln -sv ${pkgdir}${MINGW_PREFIX}/share/hunspell/$(basename $file) . done popd - + # docs install -dm755 ${pkgdir}${MINGW_PREFIX}/share/doc/$_realname install -m644 README_en_??-large.txt ${pkgdir}${MINGW_PREFIX}/share/doc/$_realname diff --git a/mingw-w64-icu/PKGBUILD b/mingw-w64-icu/PKGBUILD index 84f42ff92d..092c7e5859 100644 --- a/mingw-w64-icu/PKGBUILD +++ b/mingw-w64-icu/PKGBUILD @@ -100,7 +100,7 @@ check() { package_icu() { pushd "$srcdir/icu/build-${CARCH}-release" make install DESTDIR="$pkgdir" - + mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ mv "${pkgdir}${MINGW_PREFIX}"/bin/*.a "${pkgdir}${MINGW_PREFIX}"/lib/ pushd "${pkgdir}${MINGW_PREFIX}"/bin > /dev/null diff --git a/mingw-w64-id3lib/PKGBUILD b/mingw-w64-id3lib/PKGBUILD index bbdfb31836..5887fb5519 100644 --- a/mingw-w64-id3lib/PKGBUILD +++ b/mingw-w64-id3lib/PKGBUILD @@ -91,7 +91,7 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install - + install -d "${pkgdir}${MINGW_PREFIX}"/share/man/man1 cp ${srcdir}/${_realname}-${pkgver}/doc/man/* "${pkgdir}${MINGW_PREFIX}"/share/man/man1 } diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index 5d87713733..032412b526 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -70,7 +70,7 @@ build() { export lt_cv_deplibs_check_method='pass_all' [[ $CARCH = "i686" ]] && EXTRAOPTS="--with-gcc-arch=i686" [[ $CARCH = "x86_64" ]] && EXTRAOPTS="--with-gcc-arch=x86-64" - + #cd ImageMagick-${pkgver%.*}-${pkgver##*.} mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} ../ImageMagick-${pkgver%.*}-${pkgver##*.}/configure \ diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index 4362619f1f..5b18ba2885 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -90,7 +90,7 @@ prepare() { sed -i 's|python -c|python2 -c|g' configure share/extensions/uniconv*.py sed -i '/^#include ' src/*{,/*{,/*{,/*}}}.{h,cpp} sed -e "s|export-dynamic|export-all-symbols|g" -i src/Makefile.am - + autoreconf -fi -I m4 } diff --git a/mingw-w64-innoextract/PKGBUILD b/mingw-w64-innoextract/PKGBUILD index 609d0d9161..3a723933c4 100644 --- a/mingw-w64-innoextract/PKGBUILD +++ b/mingw-w64-innoextract/PKGBUILD @@ -9,7 +9,7 @@ pkgdesc="A tool to extract installers created by Inno Setup (mingw-w64)." arch=('any') url="http://constexpr.org/innoextract/" license=("MIT") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-boost" @@ -50,7 +50,7 @@ build() { popd > /dev/null cd "${srcdir}/${_realname}-${pkgver}" - + ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ @@ -60,7 +60,7 @@ build() { } package() { - cd "${srcdir}/${_realname}-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" make install install -Dm644 README.md \ diff --git a/mingw-w64-insight/PKGBUILD b/mingw-w64-insight/PKGBUILD index 7dc629a920..8fdfd24796 100644 --- a/mingw-w64-insight/PKGBUILD +++ b/mingw-w64-insight/PKGBUILD @@ -117,5 +117,5 @@ package() { rm -f ${pkgdir}${MINGW_PREFIX}/include/*.h rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.a - + } diff --git a/mingw-w64-intel-tbb/PKGBUILD b/mingw-w64-intel-tbb/PKGBUILD index f5e651eac0..2478b755b9 100644 --- a/mingw-w64-intel-tbb/PKGBUILD +++ b/mingw-w64-intel-tbb/PKGBUILD @@ -18,14 +18,14 @@ sha1sums=('aaecdc97049fbe3c623be46c4e1261b74a1a41a3' prepare () { cd tbb${pkgver/\./}oss - + # do not build debug libraries #sed -i "/debug/d" Makefile - + # not not use win32 api #patch -p1 -i "$srcdir"/tbb-disable_windows_api.patch #echo "CPLUS_FLAGS += -DUSE_WIN32_API=0" >> build/windows.gcc.inc - + # platform configuration #sed -i "s|export SHELL = cmd|export SHELL = sh -c|g" build/windows.inc #sed -i "s|CMD=cmd /C|CMD=sh -c|g" build/windows.inc diff --git a/mingw-w64-isl/PKGBUILD b/mingw-w64-isl/PKGBUILD index dc52a68317..a18f12c0d5 100644 --- a/mingw-w64-isl/PKGBUILD +++ b/mingw-w64-isl/PKGBUILD @@ -22,7 +22,7 @@ md5sums=('e4cf20c4c10d5d613457558b1f46b5e2' prepare() { cd "$srcdir/${_realname}-$pkgver" patch -p1 -i ${srcdir}/isl-0.13-no-undefined.patch - + autoreconf -fi } diff --git a/mingw-w64-jasper/PKGBUILD b/mingw-w64-jasper/PKGBUILD index 696f1666bf..1e84ce1ffc 100644 --- a/mingw-w64-jasper/PKGBUILD +++ b/mingw-w64-jasper/PKGBUILD @@ -59,7 +59,7 @@ sha1sums=('9c5735f773922e580bf98c7c7dfda9bbed4c5191' prepare() { cd "$srcdir/jasper-$pkgver" find . -type f -exec dos2unix {} \; - + patch -p1 -i "${srcdir}"/patch-libjasper-stepsizes-overflow.diff patch -p1 -i "${srcdir}"/jpc_dec.c.patch patch -p1 -i "${srcdir}"/jasper-1.900.1-CVE-2008-3520.patch @@ -86,7 +86,7 @@ prepare() { #aclocal #automake --add-missing #autoconf - + autoreconf -fiv } diff --git a/mingw-w64-jemalloc/PKGBUILD b/mingw-w64-jemalloc/PKGBUILD index 2dd2ec7e60..dc2945f102 100644 --- a/mingw-w64-jemalloc/PKGBUILD +++ b/mingw-w64-jemalloc/PKGBUILD @@ -17,7 +17,7 @@ sha256sums=('e16c2159dd3c81ca2dc3b5c9ef0d43e1f2f45b04548f42db12e7c12d7bdf84fe' prepare() { cd $srcdir/${_realname}-$pkgver patch -p1 -i ${srcdir}/001-fix-library-extension.patch - + # ./autogen.sh } @@ -25,7 +25,7 @@ build() { cd $srcdir/${_realname}-$pkgver [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} - + CFLAGS+=" -std=gnu11" ../${_realname}-${pkgver}/configure \ @@ -39,7 +39,7 @@ build() { package() { cd "${srcdir}"/build-${CARCH} make DESTDIR=$pkgdir install - + mv "${pkgdir}${MINGW_PREFIX}"/bin/{,jemalloc-}pprof mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" diff --git a/mingw-w64-kqoauth-qt4/PKGBUILD b/mingw-w64-kqoauth-qt4/PKGBUILD index fe222d23f2..9ea8fe16f6 100644 --- a/mingw-w64-kqoauth-qt4/PKGBUILD +++ b/mingw-w64-kqoauth-qt4/PKGBUILD @@ -31,7 +31,7 @@ prepare() { build() { cd ${srcdir}/${_realname}-${pkgver} - + mkdir -p ${pkgdir}${MINGW_PREFIX} pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` @@ -42,7 +42,7 @@ build() { popd > /dev/null ${MINGW_PREFIX}/bin/qmake PREFIX=${PREFIX_WIN} kqoauth.pro - make ${MAKEFLAGS} # VERBOSE=1 + make ${MAKEFLAGS} # VERBOSE=1 } package() { diff --git a/mingw-w64-lame/PKGBUILD b/mingw-w64-lame/PKGBUILD index 367ac2119f..90ed85bb95 100644 --- a/mingw-w64-lame/PKGBUILD +++ b/mingw-w64-lame/PKGBUILD @@ -35,7 +35,7 @@ prepare() { patch -p1 -i ${srcdir}/0003-parallel-builds-fix.all.patch patch -p1 -i ${srcdir}/0004-disable-wrong-xmmintrin-detection.all.patch patch -p1 -i ${srcdir}/0005-no-gtk.all.patch - + autoreconf -fi } diff --git a/mingw-w64-lcms/PKGBUILD b/mingw-w64-lcms/PKGBUILD index 7a61845c6a..bd1d838dc1 100644 --- a/mingw-w64-lcms/PKGBUILD +++ b/mingw-w64-lcms/PKGBUILD @@ -31,7 +31,7 @@ prepare(){ patch -Np1 -i "$srcdir/lcms-1.19-rhbz675186.patch" #patch -Np1 -i "$srcdir/lcms-1.17-windows.patch" patch -Np1 -i "$srcdir/0002-need-jconfig-before-jmoreconfig.mingw.patch" - + autoreconf -fiv } diff --git a/mingw-w64-lcms2/PKGBUILD b/mingw-w64-lcms2/PKGBUILD index 083a4e40f5..c927ca87c5 100644 --- a/mingw-w64-lcms2/PKGBUILD +++ b/mingw-w64-lcms2/PKGBUILD @@ -25,7 +25,7 @@ prepare() { patch -p1 -i ${srcdir}/0001-fix-testcmd2.mingw.patch patch -p1 -i ${srcdir}/0002-need-jconfig-before-jmoreconfig.mingw.patch patch -p1 -i ${srcdir}/0003-install-mans.all.patch - + autoreconf -fiv } diff --git a/mingw-w64-ldns/PKGBUILD b/mingw-w64-ldns/PKGBUILD index f0f9bcf528..664d2e793c 100644 --- a/mingw-w64-ldns/PKGBUILD +++ b/mingw-w64-ldns/PKGBUILD @@ -20,7 +20,7 @@ sha1sums=('4218897b3c002aadfc7280b3f40cda829e05c9a4' prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/ldns-1.6.17-relocate.patch - + WANT_AUTOMAKE=latest autoreconf -fiv } diff --git a/mingw-w64-leechcraft-git/PKGBUILD b/mingw-w64-leechcraft-git/PKGBUILD index aa73b46242..38fc2bcf57 100644 --- a/mingw-w64-leechcraft-git/PKGBUILD +++ b/mingw-w64-leechcraft-git/PKGBUILD @@ -81,7 +81,7 @@ pkgver() { cd "$srcdir/$_realname" printf "%s" "$(git describe | sed 's/-/_/g')" } - + prepare() { cd "${srcdir}/${_realname}" patch -p0 -i ${srcdir}/win_rc.patch @@ -113,14 +113,14 @@ build() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + #pushd ${MINGW_PREFIX} > /dev/null #export PREFIX_DEP=`pwd -W` #popd > /dev/null - + mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ @@ -182,7 +182,7 @@ build() { -DUSE_CPP14=True \ ${srcdir}/${CARCH}/src/ - + # -DQJSON_DIR="${PREFIX_DEP}/" \ # -DQTMULTIMEDIAKIT_PREFIX="${PREFIX_DEP}/" \ # -DLIBTIDY_DIR="${PREFIX_DEP}/" \ @@ -198,7 +198,7 @@ build() { # ENABLE_SYNCER - laretz # ENABLE_LEMON - netlink (nl) - make ${MAKEFLAGS} # VERBOSE=1 + make ${MAKEFLAGS} # VERBOSE=1 } package() { diff --git a/mingw-w64-lensfun/PKGBUILD b/mingw-w64-lensfun/PKGBUILD index 930fb414fa..9809bf65de 100644 --- a/mingw-w64-lensfun/PKGBUILD +++ b/mingw-w64-lensfun/PKGBUILD @@ -50,6 +50,6 @@ package() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + sed -i "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/lensfun.pc } diff --git a/mingw-w64-leptonica/PKGBUILD b/mingw-w64-leptonica/PKGBUILD index ae2f5f682e..4843564786 100644 --- a/mingw-w64-leptonica/PKGBUILD +++ b/mingw-w64-leptonica/PKGBUILD @@ -33,7 +33,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} - + make } diff --git a/mingw-w64-libassuan/PKGBUILD b/mingw-w64-libassuan/PKGBUILD index a5b7b0179d..e3460bcfab 100644 --- a/mingw-w64-libassuan/PKGBUILD +++ b/mingw-w64-libassuan/PKGBUILD @@ -33,7 +33,7 @@ prepare() { patch -p1 -i ${srcdir}/0003-remove-redef.mingw.patch patch -p1 -i ${srcdir}/0004-enable-gnu.mingw.patch patch -p1 -i ${srcdir}/0005-better-check-for-stpcpy.mingw.patch - + autoreconf -fi } diff --git a/mingw-w64-libblueray/PKGBUILD b/mingw-w64-libblueray/PKGBUILD index c059666884..a8663ab5a4 100644 --- a/mingw-w64-libblueray/PKGBUILD +++ b/mingw-w64-libblueray/PKGBUILD @@ -19,7 +19,7 @@ md5sums=('f4d2f2cab53f976cbb22cbae069057bd' prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/no-undefined.patch - + autoreconf -fiv } @@ -27,7 +27,7 @@ build() { mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} export lt_cv_deplibs_check_method='pass_all' - + ../${_realname}-$pkgver/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ diff --git a/mingw-w64-libc++/PKGBUILD b/mingw-w64-libc++/PKGBUILD index 9c23d12768..ebf5bb18b2 100644 --- a/mingw-w64-libc++/PKGBUILD +++ b/mingw-w64-libc++/PKGBUILD @@ -26,7 +26,7 @@ prepare() { build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + export CXX="${MINGW_PREFIX}/bin/clang++" export CC="${MINGW_PREFIX}/bin/clang" ${MINGW_PREFIX}/bin/cmake.exe \ diff --git a/mingw-w64-libc++abi/PKGBUILD b/mingw-w64-libc++abi/PKGBUILD index bd62fe532b..2c3e51b308 100644 --- a/mingw-w64-libc++abi/PKGBUILD +++ b/mingw-w64-libc++abi/PKGBUILD @@ -26,7 +26,7 @@ prepare() { build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + export CXX="${MINGW_PREFIX}/bin/clang++" export CC="${MINGW_PREFIX}/bin/clang" ${MINGW_PREFIX}/bin/cmake.exe \ diff --git a/mingw-w64-libcaca/PKGBUILD b/mingw-w64-libcaca/PKGBUILD index 0acb3ef0ec..68d6d46fa8 100644 --- a/mingw-w64-libcaca/PKGBUILD +++ b/mingw-w64-libcaca/PKGBUILD @@ -40,7 +40,7 @@ prepare() { patch -p1 -i ${srcdir}/0004-msc-only-please.all.patch patch -p1 -i ${srcdir}/0005-ruby-paths.mingw.patch patch -p1 -i ${srcdir}/0006-no-undefined.all.patch - + autoreconf -fi } diff --git a/mingw-w64-libcddb/PKGBUILD b/mingw-w64-libcddb/PKGBUILD index f3c0eaf96f..b7db7f2f29 100644 --- a/mingw-w64-libcddb/PKGBUILD +++ b/mingw-w64-libcddb/PKGBUILD @@ -39,7 +39,7 @@ prepare() { patch -p1 -i ${srcdir}/0005-fix-m4-dir.all.patch patch -p1 -i ${srcdir}/0006-update-gettext-req.mingw.patch patch -p1 -i ${srcdir}/0007-link-to-libiconv-properly.mingw.patch - + WANT_AUTOMAKE=latest autoreconf -fi } diff --git a/mingw-w64-libcdio/PKGBUILD b/mingw-w64-libcdio/PKGBUILD index 5d0d2da7f9..5464f44cc2 100644 --- a/mingw-w64-libcdio/PKGBUILD +++ b/mingw-w64-libcdio/PKGBUILD @@ -23,7 +23,7 @@ md5sums=('d154476feaac5a7b5f180e83eaf3d689' prepare() { cd ${_realname}-${pkgver} patch -Np1 -i "${srcdir}/libcdio-0.83-linking.patch" - + autoreconf -fi } @@ -43,7 +43,7 @@ build() { package() { cd ${_realname}-${pkgver} make -j1 DESTDIR="${pkgdir}" install - + sed -i "/LIBCDIO_SOURCE_PATH/s|.*|/* #undef LIBCDIO_SOURCE_PATH */|" \ ${pkgdir}${MINGW_PREFIX}/include/cdio/cdio_config.h } diff --git a/mingw-w64-libdca-svn/PKGBUILD b/mingw-w64-libdca-svn/PKGBUILD index 4f1a05c898..d757979b95 100644 --- a/mingw-w64-libdca-svn/PKGBUILD +++ b/mingw-w64-libdca-svn/PKGBUILD @@ -36,7 +36,7 @@ prepare() { patch -p1 -i ${srcdir}/0002-fix-bootstrap.mingw.patch patch -p1 -i ${srcdir}/0003-fix-symlink.mingw.patch patch -p1 -i ${srcdir}/0004-fix-regex.all.patch - + autoreconf -fi } diff --git a/mingw-w64-libdvdread/PKGBUILD b/mingw-w64-libdvdread/PKGBUILD index 60df91600a..2960425354 100644 --- a/mingw-w64-libdvdread/PKGBUILD +++ b/mingw-w64-libdvdread/PKGBUILD @@ -19,7 +19,7 @@ sha256sums=('SKIP' prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-no-undefined-on.all.patch - + autoreconf -fi } diff --git a/mingw-w64-libgee/PKGBUILD b/mingw-w64-libgee/PKGBUILD index ab3e28e207..c8b7a15764 100644 --- a/mingw-w64-libgee/PKGBUILD +++ b/mingw-w64-libgee/PKGBUILD @@ -19,7 +19,7 @@ sha256sums=('d95f8ea8e78f843c71b1958fa2fb445e4a325e4821ec23d0d5108d8170e564a5') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - + # Get proper unprefixed directories for gobject-introspection files autoreconf -fiv } diff --git a/mingw-w64-libgeotiff/PKGBUILD b/mingw-w64-libgeotiff/PKGBUILD index 0f622bf69e..1e2ae4e14f 100644 --- a/mingw-w64-libgeotiff/PKGBUILD +++ b/mingw-w64-libgeotiff/PKGBUILD @@ -25,7 +25,7 @@ md5sums=('efa7b418bc00228fcda4da63557e40c2' prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/libgeotiff_buildsys.patch - + # fix wrongly encoded files from tarball for f in $(find . -type f); do if file $f | grep -q ISO-8859 ; then @@ -67,9 +67,9 @@ exec_prefix=\${prefix} libdir=\${prefix}/lib includedir=\${prefix}/include -Name: ${_realname} +Name: ${_realname} Description: GeoTIFF file format library -Version: ${pkgver} +Version: ${pkgver} Libs: -L\${libdir} -lgeotiff Cflags: -I\${includedir} EOF diff --git a/mingw-w64-libgit2/PKGBUILD b/mingw-w64-libgit2/PKGBUILD index 5f72ee0300..eec631eeff 100644 --- a/mingw-w64-libgit2/PKGBUILD +++ b/mingw-w64-libgit2/PKGBUILD @@ -31,9 +31,9 @@ prepare() { } build() { - mkdir -p ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DTHREADSAFE:BOOL=1 \ @@ -46,7 +46,7 @@ build() { package() { cd ${srcdir}/build-${MINGW_CHOST} make install - + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null diff --git a/mingw-w64-libgme/PKGBUILD b/mingw-w64-libgme/PKGBUILD index 888789eb4c..22cd32c661 100644 --- a/mingw-w64-libgme/PKGBUILD +++ b/mingw-w64-libgme/PKGBUILD @@ -24,7 +24,7 @@ prepare() { build() { mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ @@ -37,10 +37,10 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make install - + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libgme.pc } diff --git a/mingw-w64-libgnurx/PKGBUILD b/mingw-w64-libgnurx/PKGBUILD index eff14e978f..50ef0daee0 100644 --- a/mingw-w64-libgnurx/PKGBUILD +++ b/mingw-w64-libgnurx/PKGBUILD @@ -23,7 +23,7 @@ md5sums=('35c8fed3101ca1f253e9b6b1966661f6' prepare() { cd "$srcdir/mingw-libgnurx-${pkgver}" patch -Np0 -i $srcdir/mingw-w64-libgnurx-honor-destdir.patch - + cp $srcdir/mingw32-libgnurx-configure.ac configure.ac cp $srcdir/mingw32-libgnurx-Makefile.am Makefile.am touch NEWS diff --git a/mingw-w64-libguess/PKGBUILD b/mingw-w64-libguess/PKGBUILD index 87cb3ee5cd..73fb349d59 100644 --- a/mingw-w64-libguess/PKGBUILD +++ b/mingw-w64-libguess/PKGBUILD @@ -16,7 +16,7 @@ md5sums=('7633fbfbeb75b1ded7f33cca3d8d4762') prepare() { cd ${srcdir}/${_realname}-${pkgver} - + sed 's/libmowgli >= 0.9.50/libmowgli-2/g' -i configure } diff --git a/mingw-w64-libgxps/PKGBUILD b/mingw-w64-libgxps/PKGBUILD index 1ce9d37aec..3611640a63 100644 --- a/mingw-w64-libgxps/PKGBUILD +++ b/mingw-w64-libgxps/PKGBUILD @@ -32,7 +32,7 @@ prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.all.patch patch -p1 -i ${srcdir}/0002-missing-include.patch - + autoreconf -fi } diff --git a/mingw-w64-libid3tag/PKGBUILD b/mingw-w64-libid3tag/PKGBUILD index b64ce735ed..5ff61d77d3 100644 --- a/mingw-w64-libid3tag/PKGBUILD +++ b/mingw-w64-libid3tag/PKGBUILD @@ -37,7 +37,7 @@ prepare() { patch -p1 -i ${srcdir}/10_utf16.patch patch -p1 -i ${srcdir}/11_unknown_encoding.patch patch -Np0 -i ${srcdir}/CVE-2008-2109.patch - + touch NEWS AUTHORS ChangeLog rm aclocal.m4 rm Makefile.in diff --git a/mingw-w64-libimobiledevice/PKGBUILD b/mingw-w64-libimobiledevice/PKGBUILD index 82a6c9262d..b2ef37fb4b 100644 --- a/mingw-w64-libimobiledevice/PKGBUILD +++ b/mingw-w64-libimobiledevice/PKGBUILD @@ -21,7 +21,7 @@ sha1sums=('ac47ba39e7f8d8cb9379756773ece30458b93c80' prepare() { cd $srcdir/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-cython-includes.patch - + autoreconf -fiv } @@ -51,6 +51,6 @@ check() { package() { cd "${srcdir}"/build-${CARCH} make install DESTDIR="${pkgdir}" - + rm -f ${pkgdir}${MINGW_PREFIX}/lib/python*/site-packages/*.a } diff --git a/mingw-w64-libksba/PKGBUILD b/mingw-w64-libksba/PKGBUILD index 8faa897c10..8822918239 100644 --- a/mingw-w64-libksba/PKGBUILD +++ b/mingw-w64-libksba/PKGBUILD @@ -36,7 +36,7 @@ build() { check() { cd ${srcdir}/build-${CARCH} make check -} +} package() { cd ${srcdir}/build-${CARCH} diff --git a/mingw-w64-liblastfm-qt4/PKGBUILD b/mingw-w64-liblastfm-qt4/PKGBUILD index b756c0e601..f700245f47 100644 --- a/mingw-w64-liblastfm-qt4/PKGBUILD +++ b/mingw-w64-liblastfm-qt4/PKGBUILD @@ -42,10 +42,10 @@ build() { -DBUILD_TESTS=False \ ${srcdir}/${_realname}-${pkgver}/ - make ${MAKEFLAGS} # VERBOSE=1 + make ${MAKEFLAGS} # VERBOSE=1 } -package() { +package() { cd ${srcdir}/build-${MINGW_CHOST} make -j1 install } diff --git a/mingw-w64-liblastfm/PKGBUILD b/mingw-w64-liblastfm/PKGBUILD index bb5dd89ad4..3977d331ee 100644 --- a/mingw-w64-liblastfm/PKGBUILD +++ b/mingw-w64-liblastfm/PKGBUILD @@ -39,10 +39,10 @@ build() { -DBUILD_TESTS=False \ ${srcdir}/${_realname}-${pkgver}/ - make ${MAKEFLAGS} # VERBOSE=1 + make ${MAKEFLAGS} # VERBOSE=1 } -package() { +package() { cd ${srcdir}/build-${MINGW_CHOST} make -j1 install } diff --git a/mingw-w64-libmad/PKGBUILD b/mingw-w64-libmad/PKGBUILD index 346750e973..6a21b21340 100644 --- a/mingw-w64-libmad/PKGBUILD +++ b/mingw-w64-libmad/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: Alexey Pavlov # Contributor: AlexWMF - + _realname=libmad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.15.1b @@ -28,7 +28,7 @@ sha1sums=('cac19cd00e1a907f3150cc040ccc077783496d76' 'b9c61ecacc6a6d47425d66f33327e0634cd8a33c' '3d5b958244ef0395ccdcb00344f2cf301ca07e34' '448a6d597ce61bb5ea38be6e56f66196d3be6515') - + prepare() { cd ${_realname}-${pkgver} patch -p1 -i "${srcdir}/0001-no-undefined.mingw.patch" @@ -37,14 +37,14 @@ prepare() { patch -p1 -i "${srcdir}/0005-frame_length.diff" patch -p1 -i "${srcdir}/0006-optimize.diff" patch -p1 -i "${srcdir}/0007-libmad.patch" - + touch NEWS AUTHORS ChangeLog rm aclocal.m4 rm Makefile.in WANT_AUTOMAKE=latest autoreconf -fi } - + build() { mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} @@ -52,7 +52,7 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - + make } diff --git a/mingw-w64-libmangle-git/PKGBUILD b/mingw-w64-libmangle-git/PKGBUILD index 48f5070a24..2f2655c8f1 100644 --- a/mingw-w64-libmangle-git/PKGBUILD +++ b/mingw-w64-libmangle-git/PKGBUILD @@ -31,7 +31,7 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} - make + make } package() { diff --git a/mingw-w64-libmariadbclient/PKGBUILD b/mingw-w64-libmariadbclient/PKGBUILD index 7f6f1be8c7..568d9c46fc 100644 --- a/mingw-w64-libmariadbclient/PKGBUILD +++ b/mingw-w64-libmariadbclient/PKGBUILD @@ -37,7 +37,7 @@ build() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + mkdir -p ${srcdir}/${MINGW_CHOST} cd ${srcdir}/${MINGW_CHOST} ${MINGW_PREFIX}/bin/cmake \ diff --git a/mingw-w64-libmatroska/PKGBUILD b/mingw-w64-libmatroska/PKGBUILD index ca6e4cbe22..e70e26ce69 100644 --- a/mingw-w64-libmatroska/PKGBUILD +++ b/mingw-w64-libmatroska/PKGBUILD @@ -20,7 +20,7 @@ md5sums=('f8fe42003e072a42a19ed40405f9efdb' prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-ebml-ldflags.patch - + autoreconf -fiv } diff --git a/mingw-w64-libmimic/PKGBUILD b/mingw-w64-libmimic/PKGBUILD index 02702ea03a..f35a1aa181 100644 --- a/mingw-w64-libmimic/PKGBUILD +++ b/mingw-w64-libmimic/PKGBUILD @@ -26,7 +26,7 @@ prepare() { patch -p1 -i "$srcdir"/0001-update-ac-and-silent-rules.mingw.patch patch -p1 -i "$srcdir"/0002-no-undefined.mingw.patch patch -p1 -i "$srcdir"/0003-link-to-glib.mingw.patch - + WANT_AUTOMAKE=latest autoreconf -fi } diff --git a/mingw-w64-libmpeg2-svn/PKGBUILD b/mingw-w64-libmpeg2-svn/PKGBUILD index d2b7954cd8..21b840b6fc 100644 --- a/mingw-w64-libmpeg2-svn/PKGBUILD +++ b/mingw-w64-libmpeg2-svn/PKGBUILD @@ -31,7 +31,7 @@ prepare() { cd ${srcdir}/${_realname} patch -p1 -i ${srcdir}/0001-fix-bootstrap.mingw.patch patch -p1 -i ${srcdir}/0002-libmpeg2-fix-deprecated.patch - + ./bootstrap } diff --git a/mingw-w64-libnice/PKGBUILD b/mingw-w64-libnice/PKGBUILD index 1b6278ecc3..6fd1fe278e 100644 --- a/mingw-w64-libnice/PKGBUILD +++ b/mingw-w64-libnice/PKGBUILD @@ -32,7 +32,7 @@ prepare() { patch -p1 -i ${srcdir}/0002-no-undefined.patch patch -p1 -i ${srcdir}/0003-give-cc-to-gir-scanner.all.patch patch -p1 -i ${srcdir}/0004-mingw-w64-types.patch - + NOCONFIGURE=1 ./autogen.sh } diff --git a/mingw-w64-liboauth/PKGBUILD b/mingw-w64-liboauth/PKGBUILD index 16191c98bd..7a48da69a4 100644 --- a/mingw-w64-liboauth/PKGBUILD +++ b/mingw-w64-liboauth/PKGBUILD @@ -26,7 +26,7 @@ sha256sums=('0df60157b052f0e774ade8a8bac59d6e8d4b464058cc55f9208d72e41156811f' prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/noundefined.patch - + autoreconf -fi } diff --git a/mingw-w64-libogg/PKGBUILD b/mingw-w64-libogg/PKGBUILD index e2d94363e6..25647307c1 100644 --- a/mingw-w64-libogg/PKGBUILD +++ b/mingw-w64-libogg/PKGBUILD @@ -19,7 +19,7 @@ prepare() { build() { mkdir -p ${srcdir}/build-${MINGW_CHOST} - cd ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} ${srcdir}/libogg-${pkgver}/configure \ --enable-shared \ --enable-static \ @@ -31,6 +31,6 @@ build() { } package() { - cd ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR="$pkgdir" install } diff --git a/mingw-w64-libotr/PKGBUILD b/mingw-w64-libotr/PKGBUILD index 8fba397062..f7c5dda135 100644 --- a/mingw-w64-libotr/PKGBUILD +++ b/mingw-w64-libotr/PKGBUILD @@ -31,7 +31,7 @@ prepare() { build() { mkdir -p ${srcdir}/build-${MINGW_CHOST} - cd ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} ${srcdir}/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -44,6 +44,6 @@ build() { } package() { - cd ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} make -j1 DESTDIR="$pkgdir" install } diff --git a/mingw-w64-libpeas/PKGBUILD b/mingw-w64-libpeas/PKGBUILD index 0c8d64e4b8..0c2cba06d2 100644 --- a/mingw-w64-libpeas/PKGBUILD +++ b/mingw-w64-libpeas/PKGBUILD @@ -50,7 +50,7 @@ build() { --enable-glade-catalog \ --enable-gtk \ DATADIRNAME=share - + # https://bugzilla.gnome.org/show_bug.cgi?id=655517 sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool make -j1 V=1 diff --git a/mingw-w64-libplist/PKGBUILD b/mingw-w64-libplist/PKGBUILD index 48528a9c00..553d577171 100644 --- a/mingw-w64-libplist/PKGBUILD +++ b/mingw-w64-libplist/PKGBUILD @@ -21,7 +21,7 @@ sha1sums=('48f071c723387637ef2cc2980d4ca0627aab067b' prepare() { cd $srcdir/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-cython-module.patch - + autoreconf -fiv } @@ -50,6 +50,6 @@ check() { package() { cd "${srcdir}"/build-${CARCH} make install DESTDIR="${pkgdir}" - + rm -f ${pkgdir}${MINGW_PREFIX}/lib/python*/site-packages/*.a } diff --git a/mingw-w64-libproxy/PKGBUILD b/mingw-w64-libproxy/PKGBUILD index 6d8f218f0d..88899648d2 100644 --- a/mingw-w64-libproxy/PKGBUILD +++ b/mingw-w64-libproxy/PKGBUILD @@ -45,7 +45,7 @@ build() { [[ -d $srcdir/build-${MINGW_CHOST} ]] && rm -rf $srcdir/build-${MINGW_CHOST} mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ diff --git a/mingw-w64-librescl/PKGBUILD b/mingw-w64-librescl/PKGBUILD index 82ef5205e9..e167a2aee2 100644 --- a/mingw-w64-librescl/PKGBUILD +++ b/mingw-w64-librescl/PKGBUILD @@ -7,9 +7,9 @@ pkgrel=1 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="Reader/Writer SCL IEC 61850-6 files version 0.2.1 (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-zlib" +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-glib2>=2.34.0" diff --git a/mingw-w64-librsvg/PKGBUILD b/mingw-w64-librsvg/PKGBUILD index 11c716df87..f0dc70682b 100644 --- a/mingw-w64-librsvg/PKGBUILD +++ b/mingw-w64-librsvg/PKGBUILD @@ -28,7 +28,7 @@ prepare() { cd "$srcdir/${_realname}-$pkgver" patch -p1 -i "$srcdir/0001-give-cc-to-gir-scanner.mingw.patch" patch -p1 -i "$srcdir/0005-hack-unixy-paths.patch" - + autoreconf -fi } diff --git a/mingw-w64-libsamplerate/PKGBUILD b/mingw-w64-libsamplerate/PKGBUILD index 009022d53d..aa3f11de8c 100644 --- a/mingw-w64-libsamplerate/PKGBUILD +++ b/mingw-w64-libsamplerate/PKGBUILD @@ -29,7 +29,7 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} - make ${MAKEFLAGS} # VERBOSE=1 + make ${MAKEFLAGS} # VERBOSE=1 } package() { diff --git a/mingw-w64-libsecret/PKGBUILD b/mingw-w64-libsecret/PKGBUILD index f40e344f7f..d7fbfd24b7 100644 --- a/mingw-w64-libsecret/PKGBUILD +++ b/mingw-w64-libsecret/PKGBUILD @@ -24,9 +24,9 @@ md5sums=('279d723cd005e80d1d304f74a3488acc' prepare() { cd "$srcdir/${_realname}-${pkgver}" - + patch -p1 -i ${srcdir}/0001-port-to.mingw.patch - + autoreconf -fi } diff --git a/mingw-w64-libssh/PKGBUILD b/mingw-w64-libssh/PKGBUILD index e45a38cdf2..ebacac83dd 100644 --- a/mingw-w64-libssh/PKGBUILD +++ b/mingw-w64-libssh/PKGBUILD @@ -38,7 +38,7 @@ prepare() { build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ diff --git a/mingw-w64-libtommath/PKGBUILD b/mingw-w64-libtommath/PKGBUILD index 44e49d3acb..f2b0ba8a8b 100644 --- a/mingw-w64-libtommath/PKGBUILD +++ b/mingw-w64-libtommath/PKGBUILD @@ -32,7 +32,7 @@ build() { check() { cd $srcdir/build-${MINGW_CHOST} - + CC=${MINGW_PREFIX}/bin/gcc \ make -f makefile.shared mtest } diff --git a/mingw-w64-libtorrent-rasterbar/PKGBUILD b/mingw-w64-libtorrent-rasterbar/PKGBUILD index baebd976b8..2ece2025ac 100644 --- a/mingw-w64-libtorrent-rasterbar/PKGBUILD +++ b/mingw-w64-libtorrent-rasterbar/PKGBUILD @@ -30,7 +30,7 @@ prepare() { build() { mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ @@ -42,14 +42,14 @@ build() { make } -package() { +package() { cd $srcdir/build-${MINGW_CHOST} make install - + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libtorrent-rasterbar.pc } diff --git a/mingw-w64-libtre-git/PKGBUILD b/mingw-w64-libtre-git/PKGBUILD index 1db16a624b..7bc39def0a 100644 --- a/mingw-w64-libtre-git/PKGBUILD +++ b/mingw-w64-libtre-git/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: Alexey Pavlov # Contributor: Renato Silva - + _realname=libtre pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -33,7 +33,7 @@ prepare() { mv ChangeLog{.old,} autoreconf -fiv } - + build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -47,7 +47,7 @@ build() { make } - + package() { cd build-${MINGW_CHOST} make DESTDIR=${pkgdir} install diff --git a/mingw-w64-libvirt/PKGBUILD b/mingw-w64-libvirt/PKGBUILD index b4ff6c9bf5..a06fab2019 100644 --- a/mingw-w64-libvirt/PKGBUILD +++ b/mingw-w64-libvirt/PKGBUILD @@ -55,6 +55,6 @@ build() { } package() { - cd ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR="$pkgdir" install } diff --git a/mingw-w64-libvmime-git/PKGBUILD b/mingw-w64-libvmime-git/PKGBUILD index dbf4324dac..70caa0556b 100644 --- a/mingw-w64-libvmime-git/PKGBUILD +++ b/mingw-w64-libvmime-git/PKGBUILD @@ -1,5 +1,5 @@ # Maintainer: AlexWMF - + _realname=libvmime pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -36,7 +36,7 @@ prepare() { patch -p0 -i ${srcdir}/cmake_mlang.patch patch -p1 -i ${srcdir}/libvmime-versioning.patch } - + build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -47,10 +47,10 @@ build() { -DVMIME_HAVE_MESSAGING_PROTO_SENDMAIL:BOOL=OFF \ -DVMIME_BUILD_SAMPLES:BOOL=OFF \ ../${_realname} - + make } - + package() { cd build-${MINGW_CHOST} make install diff --git a/mingw-w64-libvorbis/PKGBUILD b/mingw-w64-libvorbis/PKGBUILD index ed26749eef..1f8a97fb61 100644 --- a/mingw-w64-libvorbis/PKGBUILD +++ b/mingw-w64-libvorbis/PKGBUILD @@ -29,7 +29,7 @@ build() { } package() { - cd ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR="$pkgdir" install rm -r ${pkgdir}${MINGW_PREFIX}/share/doc } diff --git a/mingw-w64-libxml2/PKGBUILD b/mingw-w64-libxml2/PKGBUILD index 2881662768..53afa3767c 100644 --- a/mingw-w64-libxml2/PKGBUILD +++ b/mingw-w64-libxml2/PKGBUILD @@ -67,7 +67,7 @@ prepare() { patch -Np0 -i "${srcdir}"/mingw32-libxml2-static-build-compile-fix.patch patch -p1 -i ${srcdir}/libxml2-2.9.2-catalog-revert.patch - + patch -p1 -i ${srcdir}/0004-detect-ws2tcpip.mingw.patch patch -p1 -i ${srcdir}/0005-fix-char-cast-warning.mingw.patch patch -p1 -i ${srcdir}/0006-fix-unused-var-warning.mingw.patch @@ -87,7 +87,7 @@ prepare() { patch -p1 -i ${srcdir}/0023-fix-sitedir-detection.mingw.patch patch -p1 -i ${srcdir}/0024-shrext-pyd.mingw.patch patch -p1 -i ${srcdir}/0025-mingw-python-dont-remove-dot.patch - + libtoolize --copy --force aclocal automake --add-missing @@ -146,7 +146,7 @@ package() cd ${srcdir}/build-static-${CARCH} install -m 0644 .libs/libxml2.a "${pkgdir}${MINGW_PREFIX}"/lib/ - + # License install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" mv "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}-${pkgver}/Copyright" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/Copyright" diff --git a/mingw-w64-lua/PKGBUILD b/mingw-w64-lua/PKGBUILD index 1b45693fed..5957fa93cb 100644 --- a/mingw-w64-lua/PKGBUILD +++ b/mingw-w64-lua/PKGBUILD @@ -4,9 +4,9 @@ _realname=lua pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.2.3 pkgrel=4 -pkgdesc="A powerful light-weight programming language designed for extending applications. (mingw-w64)" +pkgdesc="A powerful light-weight programming language designed for extending applications. (mingw-w64)" arch=('any') -url="http://www.lua.org/" +url="http://www.lua.org/" license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip' 'emptydirs') @@ -21,7 +21,7 @@ build() { sed -e "s|%VER%|${pkgver%.*}|g;s|%REL%|$pkgver|g" \ -e "s|/usr|${MINGW_PREFIX}|g" \ -i lua.pc - + make -j1 \ AR="ar rcu" \ diff --git a/mingw-w64-lua51/PKGBUILD b/mingw-w64-lua51/PKGBUILD index dfbfb9f4df..334ccecdf3 100644 --- a/mingw-w64-lua51/PKGBUILD +++ b/mingw-w64-lua51/PKGBUILD @@ -5,9 +5,9 @@ _realname=lua51 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.1.5 pkgrel=2 -pkgdesc="A powerful light-weight programming language designed for extending applications. Version 5.1.x. (mingw-w64)" +pkgdesc="A powerful light-weight programming language designed for extending applications. Version 5.1.x. (mingw-w64)" arch=('any') -url="http://www.lua.org/" +url="http://www.lua.org/" license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip' 'emptydirs') @@ -28,7 +28,7 @@ build() { -e 's/luac.exe/luac5.1.exe/' \ -e 's/luac.exe/luac5.1.exe/' \ -i src/Makefile - + make -j1 \ AR="ar rcu" \ RANLIB="ranlib" \ @@ -50,7 +50,7 @@ package(){ install -d "${pkgdir}${MINGW_PREFIX}/share/doc/$_realname" install -m644 doc/*.{gif,png,css,html} "${pkgdir}${MINGW_PREFIX}"/share/doc/${_realname} install -Dm644 COPYRIGHT "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/COPYRIGHT - + cd "${pkgdir}${MINGW_PREFIX}"/share/man/man1 mv lua.1 lua5.1.1 mv luac.1 luac5.1.1 diff --git a/mingw-w64-lz4/PKGBUILD b/mingw-w64-lz4/PKGBUILD index 8df3977813..e1b4edb1f9 100644 --- a/mingw-w64-lz4/PKGBUILD +++ b/mingw-w64-lz4/PKGBUILD @@ -24,14 +24,14 @@ pkgver() { local _PATCH=`sed -n '/define LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h` local _REV="$(svnversion)" printf "%s.%s.%s.r%s" "${_MAJOR}" "${_MINOR}" "${_PATCH}" "${_REV//[[:alpha:]]}" - + } prepare() { cd ${_realname} patch -p1 -i ${srcdir}/001-mingw-install-over-msys.patch cd - - + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" cp -rf "${srcdir}/${_realname}" "${srcdir}/build-${MINGW_CHOST}" } @@ -46,7 +46,7 @@ check() { build-${MINGW_CHOST}/programs/lz4 -d profile.lz4 profile diff -q /etc/profile profile rm profile - + cd "${srcdir}/build-${MINGW_CHOST}" make CC=${MINGW_PREFIX}/bin/gcc test } diff --git a/mingw-w64-mcpp/PKGBUILD b/mingw-w64-mcpp/PKGBUILD index 53637da523..92e6daaf30 100644 --- a/mingw-w64-mcpp/PKGBUILD +++ b/mingw-w64-mcpp/PKGBUILD @@ -21,7 +21,7 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --enable-mcpplib + --enable-mcpplib make } diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 7c6840134a..e097dbb339 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -26,11 +26,11 @@ case ${MINGW_CHOST} in _mach=x86_64 ;; esac - + prepare() { cd ${startdir} [ -d $srcdir/Mesa-$pkgver ] || tar -xjvf MesaLib-${pkgver}.tar.bz2 -C $srcdir - + cd ${srcdir}/Mesa-$pkgver patch -p1 -i ${srcdir}/001-extra-libs.patch } diff --git a/mingw-w64-mpg123/PKGBUILD b/mingw-w64-mpg123/PKGBUILD index 9d7529f8b3..786f424e20 100644 --- a/mingw-w64-mpg123/PKGBUILD +++ b/mingw-w64-mpg123/PKGBUILD @@ -30,7 +30,7 @@ prepare() { cd "$srcdir/${_realname}-${pkgver}" patch -p1 -i "$srcdir"/0001-update-ac-and-silent-rules.mingw.patch patch -p1 -i "$srcdir"/0002-openal-library.patch - + autoreconf -fi } diff --git a/mingw-w64-mpv/PKGBUILD b/mingw-w64-mpv/PKGBUILD index e85727c171..ed95255d9c 100644 --- a/mingw-w64-mpv/PKGBUILD +++ b/mingw-w64-mpv/PKGBUILD @@ -52,7 +52,7 @@ package() { cd "${srcdir}/${_realname}-${pkgver}" export PYTHON=${MINGW_PREFIX}/bin/python3 /usr/bin/python3 ./waf install --destdir="${pkgdir}" - + #rm -rf ${pkgdir}${MINGW_PREFIX}/lib mv ${pkgdir}${MINGW_PREFIX}/bin ${pkgdir}${MINGW_PREFIX}/lib mkdir -p ${pkgdir}${MINGW_PREFIX}/bin diff --git a/mingw-w64-nodejs/PKGBUILD b/mingw-w64-nodejs/PKGBUILD index 70d7d7c112..6597cb4e51 100644 --- a/mingw-w64-nodejs/PKGBUILD +++ b/mingw-w64-nodejs/PKGBUILD @@ -73,7 +73,7 @@ md5sums=('2c00d8cf243753996eecdc4f6e2a2d11' prepare() { cd ${srcdir}/node-v${pkgver} - + git init # Using perfctrs makes Vista the minimum OS. MinGW-w64's perflib.h is missing lots diff --git a/mingw-w64-nspr/PKGBUILD b/mingw-w64-nspr/PKGBUILD index c0f48a190a..4d0fc2659d 100644 --- a/mingw-w64-nspr/PKGBUILD +++ b/mingw-w64-nspr/PKGBUILD @@ -36,7 +36,7 @@ prepare() { patch -p0 -i ${srcdir}/nspr-4.10.2_mingw.patch patch -p0 -i ${srcdir}/nspr-4.10.2_staticbuild.patch patch -p0 -i ${srcdir}/nspr-4.10.2_x64.patch - + cp ${srcdir}/moztools/bin/nsinstall.exe ../ cp ${srcdir}/manifest ../nsinstall.exe.manifest } @@ -60,7 +60,7 @@ build() { --enable-optimize \ --disable-debug \ ${_confflags} - + PATH="$PATH:${srcdir}/${_realname}-${pkgver}" make } diff --git a/mingw-w64-nss/PKGBUILD b/mingw-w64-nss/PKGBUILD index 581f8610c4..f9ad563a0b 100644 --- a/mingw-w64-nss/PKGBUILD +++ b/mingw-w64-nss/PKGBUILD @@ -38,7 +38,7 @@ md5sums=('d3edb6f6c3688b2fde67ec9c9a8c1214' prepare() { cd ${srcdir}/${_realname}-${pkgver} - + # Adds transitional SSL renegotiate support - patch from Debian patch -Np3 -i ${srcdir}/ssl-renegotiate-transitional.patch patch -Np1 -i ${srcdir}/nss-3.14.3-build.patch @@ -46,14 +46,14 @@ prepare() { # Respect LDFLAGS sed -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/' \ -i nss/coreconf/rules.mk - + cp ${srcdir}/moztools/bin/nsinstall.exe . cp ${srcdir}/manifest nsinstall.exe.manifest } build() { cd ${srcdir}/${_realname}-${pkgver} - + export BUILD_OPT=1 export NSS_USE_SYSTEM_SQLITE=1 export NSS_ENABLE_ECC=1 @@ -102,7 +102,7 @@ package() { > "${pkgdir}${MINGW_PREFIX}/bin/nss-config" chmod 755 "${pkgdir}${MINGW_PREFIX}/bin/nss-config" - + # Copy the binary libraries we want for file in softokn nss nssutil \ ssl smime nssdbm diff --git a/mingw-w64-nvidia-cg-toolkit/PKGBUILD b/mingw-w64-nvidia-cg-toolkit/PKGBUILD index a02d375b8d..7a87641132 100644 --- a/mingw-w64-nvidia-cg-toolkit/PKGBUILD +++ b/mingw-w64-nvidia-cg-toolkit/PKGBUILD @@ -9,7 +9,7 @@ pkgdesc="NVIDIA Cg libraries (mingw-w64)" arch=('any') url="http://developer.nvidia.com/object/cg_toolkit.html" license=("custom") -makedepends=("dos2unix" "${MINGW_PACKAGE_PREFIX}-tools" "${MINGW_PACKAGE_PREFIX}-binutils") #"${MINGW_PACKAGE_PREFIX}-innoextract" +makedepends=("dos2unix" "${MINGW_PACKAGE_PREFIX}-tools" "${MINGW_PACKAGE_PREFIX}-binutils") #"${MINGW_PACKAGE_PREFIX}-innoextract" depends=("${MINGW_PACKAGE_PREFIX}-crt") options=('!strip' 'staticlibs') source=("http://developer.download.nvidia.com/cg/Cg_3.1/Cg-3.1_April2012_Setup.exe") @@ -42,8 +42,8 @@ build() { package() { cd "$srcdir/app" - find "include/" -name '*.h' | xargs -rtl1 -I {} install -Dm644 {} "${pkgdir}${MINGW_PREFIX}/"{} - + find "include/" -name '*.h' | xargs -rtl1 -I {} install -Dm644 {} "${pkgdir}${MINGW_PREFIX}/"{} + case ${MINGW_CHOST} in i686*) cd "$srcdir/app/bin" diff --git a/mingw-w64-ogitor/PKGBUILD b/mingw-w64-ogitor/PKGBUILD index 7fbbcc737e..77a536a294 100644 --- a/mingw-w64-ogitor/PKGBUILD +++ b/mingw-w64-ogitor/PKGBUILD @@ -79,14 +79,14 @@ build() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + pushd ${MINGW_PREFIX} > /dev/null export PREFIX_DEPS=`pwd -W` popd > /dev/null - + export OGRE_HOME=${PREFIX_DEPS} export QTDIR=${PREFIX_DEPS} - + cd "${srcdir}/${_realname}-${pkgver}" ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ diff --git a/mingw-w64-ogre/PKGBUILD b/mingw-w64-ogre/PKGBUILD index a02b81c6ef..3380a741cc 100644 --- a/mingw-w64-ogre/PKGBUILD +++ b/mingw-w64-ogre/PKGBUILD @@ -90,11 +90,11 @@ build() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + pushd ${MINGW_PREFIX} > /dev/null export PREFIX_DEPS=`pwd -W` popd > /dev/null - + case ${MINGW_CHOST} in i686*) local _march=pentium4 #i686 @@ -122,7 +122,7 @@ build() { -DFREETYPE_FT2BUILD_INCLUDE_DIR=${PREFIX_DEPS}/include/freetype2 \ -DDirectX9_DXERR_LIBRARY=${PREFIX_DEPS}/${MINGW_CHOST}/lib/libdxerr9.a \ ../${_realname}-${pkgver} - + make } @@ -130,12 +130,12 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 install #DESTDIR="$pkgdir" pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - + mv bin/${_buildtype}/* bin/ rm -r bin/${_buildtype} mv lib/${_buildtype}/* lib/ rm -r lib/${_buildtype} - + sed -i "s|../../|../|g" \ bin/plugins.cfg \ bin/resources.cfg \ @@ -147,7 +147,7 @@ package() { #rm -r media/CMakeFiles #rm media/cmake_install.cmake #rm media/Makefile - + #rm -r Docs/CMakeFiles #rm Docs/cmake_install.cmake #rm Docs/Makefile diff --git a/mingw-w64-ogre3d-hg/PKGBUILD b/mingw-w64-ogre3d-hg/PKGBUILD index bb2fcfd927..8591367195 100644 --- a/mingw-w64-ogre3d-hg/PKGBUILD +++ b/mingw-w64-ogre3d-hg/PKGBUILD @@ -125,7 +125,7 @@ package() { else _buildtype=Release fi - + cd "${srcdir}/build-${MINGW_CHOST}" make -j1 install #DESTDIR="$pkgdir" pushd ${pkgdir}${MINGW_PREFIX} > /dev/null diff --git a/mingw-w64-ois-git/PKGBUILD b/mingw-w64-ois-git/PKGBUILD index 2eb2b09a59..e4c8ffbef9 100644 --- a/mingw-w64-ois-git/PKGBUILD +++ b/mingw-w64-ois-git/PKGBUILD @@ -35,7 +35,7 @@ prepare() { build() { mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + ${srcdir}/${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ diff --git a/mingw-w64-ois/PKGBUILD b/mingw-w64-ois/PKGBUILD index e0b298633a..7e98b95276 100644 --- a/mingw-w64-ois/PKGBUILD +++ b/mingw-w64-ois/PKGBUILD @@ -48,12 +48,12 @@ prepare() { aclocal $ACLOCAL_FLAGS autoheader automake --include-deps --add-missing --foreign --copy - autoconf + autoconf } build() { mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + ${srcdir}/ois-v${_oisver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ diff --git a/mingw-w64-oniguruma/PKGBUILD b/mingw-w64-oniguruma/PKGBUILD index 1400775105..2f308e1ce5 100644 --- a/mingw-w64-oniguruma/PKGBUILD +++ b/mingw-w64-oniguruma/PKGBUILD @@ -22,7 +22,7 @@ prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-no-undefined.patch patch -p1 -i ${srcdir}/002-autoconf.patch - + touch NEWS touch ChangeLog autoreconf -fi diff --git a/mingw-w64-openal/PKGBUILD b/mingw-w64-openal/PKGBUILD index b404dafeda..2e7f0ff8ca 100644 --- a/mingw-w64-openal/PKGBUILD +++ b/mingw-w64-openal/PKGBUILD @@ -8,7 +8,7 @@ pkgdesc="OpenAL audio library for use with opengl (mingw-w64)" arch=('any') url="http://kcat.strangesoft.net/openal.html" license=('GPL2') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ffmpeg" #"${MINGW_PACKAGE_PREFIX}-fluidsynth" @@ -47,10 +47,10 @@ build() { package() { cd "${srcdir}/build-static-${MINGW_CHOST}" make install - + cd "${srcdir}/build-shared-${MINGW_CHOST}" make install - + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null diff --git a/mingw-w64-openblas/PKGBUILD b/mingw-w64-openblas/PKGBUILD index 76bb8e4c3c..5a2dbbc3e5 100644 --- a/mingw-w64-openblas/PKGBUILD +++ b/mingw-w64-openblas/PKGBUILD @@ -17,7 +17,7 @@ replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran" "${MINGW_PACKAGE_PREFIX}-libwinpthread") -makedepends=("perl" +makedepends=("perl" "${MINGW_PACKAGE_PREFIX}-gcc-fortran") options=('!buildflags' '!makeflags' 'strip' 'staticlibs') source=(${_realname}-v${pkgver}.tar.gz::http://github.com/xianyi/OpenBLAS/archive/v${pkgver}.tar.gz) @@ -29,7 +29,7 @@ build() { unset CFLAGS unset CXXFLAGS - + make LIBNAME=libopenblasp.a NO_LAPACK=0 DYNAMIC_ARCH=1 USE_THREAD=1 \ MAJOR_VERSION=3 NO_AFFINITY=1 CC=gcc FC=gfortran \ OPENBLAS_INCLUDE_DIR=${MINGW_PREFIX}/include/${_realname} \ @@ -38,7 +38,7 @@ build() { package() { cd "$srcdir/$_realname-$pkgver" - + if [ -f libopenblas.dll ]; then if [ -f exports/libopenblas.def ]; then dlltool -D libopenblas.dll -d exports/libopenblas.def -l libopenblas.dll.a @@ -82,7 +82,7 @@ package() { fi # Copy Licencse - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -f ${srcdir}/${_realname}-$pkgver/LICENSE \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -f ${srcdir}/${_realname}-$pkgver/lapack-netlib/LICENSE \ diff --git a/mingw-w64-opencolorio/PKGBUILD b/mingw-w64-opencolorio/PKGBUILD index 372d75bd19..79ac466df8 100644 --- a/mingw-w64-opencolorio/PKGBUILD +++ b/mingw-w64-opencolorio/PKGBUILD @@ -61,7 +61,7 @@ build() { -DOCIO_BUILD_TRUELIGHT=OFF \ ../$_realname - make + make } package() { diff --git a/mingw-w64-opencsg/PKGBUILD b/mingw-w64-opencsg/PKGBUILD index 2028664c96..1ea790eb4f 100644 --- a/mingw-w64-opencsg/PKGBUILD +++ b/mingw-w64-opencsg/PKGBUILD @@ -32,14 +32,14 @@ build() { #rm -f example/Makefile src/Makefile #${MINGW_PREFIX}/bin/qmake -recursive opencsg.pro #make - + cd "$srcdir/$MINGW_CHOST/src" make all staticlib } package() { cd "$srcdir/$MINGW_CHOST/src" - + make prefix=${MINGW_PREFIX} INSTALL_ROOT=${pkgdir} install #install -D lib/libopencsg.so.$pkgver "${pkgdir}${MINGW_PREFIX}/lib/libopencsg.so.$pkgver" #install -D include/opencsg.h "${pkgdir}${MINGW_PREFIX}/include/opencsg.h" diff --git a/mingw-w64-openexr/PKGBUILD b/mingw-w64-openexr/PKGBUILD index e4288d6e2a..c121e43c90 100644 --- a/mingw-w64-openexr/PKGBUILD +++ b/mingw-w64-openexr/PKGBUILD @@ -36,7 +36,7 @@ md5sums=('b64e931c82aa3790329c21418373db4e' prepare(){ cd "$srcdir/${_realname}-$pkgver" - + sed -i 's/#define ZLIB_WINAPI/\/\/#define ZLIB_WINAPI/g' IlmImf/ImfZipCompressor.cpp sed -i 's/#define ZLIB_WINAPI/\/\/#define ZLIB_WINAPI/g' IlmImf/ImfPxr24Compressor.cpp diff --git a/mingw-w64-openimageio/PKGBUILD b/mingw-w64-openimageio/PKGBUILD index d209b69019..06f0c8a515 100644 --- a/mingw-w64-openimageio/PKGBUILD +++ b/mingw-w64-openimageio/PKGBUILD @@ -50,7 +50,7 @@ build() { export OPENJPEG_HOME=${MINGW_PREFIX} [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ diff --git a/mingw-w64-openjpeg/PKGBUILD b/mingw-w64-openjpeg/PKGBUILD index 26186eae08..99e0e09d45 100644 --- a/mingw-w64-openjpeg/PKGBUILD +++ b/mingw-w64-openjpeg/PKGBUILD @@ -47,7 +47,7 @@ build() { [[ -d $srcdir/build-shared-${MINGW_CHOST} ]] && rm -rf $srcdir/build-shared-${MINGW_CHOST} mkdir $srcdir/build-shared-${MINGW_CHOST} cd $srcdir/build-shared-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ @@ -65,7 +65,7 @@ build() { [[ -d $srcdir/build-static-${MINGW_CHOST} ]] && rm -rf $srcdir/build-static-${MINGW_CHOST} mkdir $srcdir/build-static-${MINGW_CHOST} cd $srcdir/build-static-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ @@ -84,7 +84,7 @@ build() { package() { cd "$srcdir/build-static-${MINGW_CHOST}" make install - + cd "$srcdir/build-shared-${MINGW_CHOST}" make install diff --git a/mingw-w64-openjpeg2/PKGBUILD b/mingw-w64-openjpeg2/PKGBUILD index 3caf06c32e..290e05836c 100644 --- a/mingw-w64-openjpeg2/PKGBUILD +++ b/mingw-w64-openjpeg2/PKGBUILD @@ -46,7 +46,7 @@ build() { [[ -d $srcdir/build-static-${MINGW_CHOST} ]] && rm -rf $srcdir/build-static-${MINGW_CHOST} mkdir $srcdir/build-static-${MINGW_CHOST} cd $srcdir/build-static-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ @@ -60,12 +60,12 @@ build() { -DBUILD_JP3D:bool=ON \ ../${_realname}-$pkgver make - + msg "Build shared version" [[ -d $srcdir/build-shared-${MINGW_CHOST} ]] && rm -rf $srcdir/build-shared-${MINGW_CHOST} mkdir $srcdir/build-shared-${MINGW_CHOST} cd $srcdir/build-shared-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ @@ -86,7 +86,7 @@ build() { package() { cd "$srcdir/build-static-${MINGW_CHOST}" make install - + cd "$srcdir/build-shared-${MINGW_CHOST}" make install diff --git a/mingw-w64-openscad-git/PKGBUILD b/mingw-w64-openscad-git/PKGBUILD index 323cd74981..0c8f29ff6d 100644 --- a/mingw-w64-openscad-git/PKGBUILD +++ b/mingw-w64-openscad-git/PKGBUILD @@ -34,7 +34,7 @@ pkgver() { prepare() { cd "${srcdir}/${_realname}" rm -f libraries/MCAD/*.py - + #patch -p1 -i ${srcdir}/01-glew-library.patch #patch -p1 -i ${srcdir}/mingw-detect-libs.patch } @@ -47,7 +47,7 @@ build() { #GLEWDIR=${MINGW_PREFIX} \ #OPENCSGDIR=${MINGW_PREFIX} \ #OPENSCAD_LIBRARIES=${MINGW_PREFIX} \ - + ${MINGW_PREFIX}/bin/qmake \ CONFIG+=release \ QMAKE_CXXFLAGS+="-O1 -Wa,-mbig-obj" \ diff --git a/mingw-w64-openscad/PKGBUILD b/mingw-w64-openscad/PKGBUILD index 479ca61a67..f2b4b9f073 100644 --- a/mingw-w64-openscad/PKGBUILD +++ b/mingw-w64-openscad/PKGBUILD @@ -26,7 +26,7 @@ md5sums=('38bebd02bce365fe39e695a07411ab73' prepare() { cd "${srcdir}/${_realname}-${pkgver}" rm -f libraries/MCAD/*.py - + patch -p1 -i ${srcdir}/01-glew-library.patch } diff --git a/mingw-w64-openscenegraph-git/PKGBUILD b/mingw-w64-openscenegraph-git/PKGBUILD index f730b9940f..c9ea482ef0 100644 --- a/mingw-w64-openscenegraph-git/PKGBUILD +++ b/mingw-w64-openscenegraph-git/PKGBUILD @@ -61,7 +61,7 @@ prepare() { build() { export FREETYPE_DIR=${MINGW_PREFIX} - + for builddir in {Release,Debug}-${MINGW_CHOST}; do [[ -d $builddir ]] && rm -rf $builddir mkdir -p $builddir @@ -73,9 +73,9 @@ build() { local _opts="-DBUILD_OSG_EXAMPLES:BOOL=OFF -DBUILD_OSG_APPLICATIONS=OFF" local _postfix="-debug" } - + msg "Building ${builddir%-${MINGW_CHOST}} version..." - + COLLADA_DIR=${MINGW_PREFIX} \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ @@ -92,7 +92,7 @@ build() { package_release() { provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") - + cd Release-${MINGW_CHOST} make -j1 install @@ -109,7 +109,7 @@ package_debug() { depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-git=$pkgver") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") - + cd Debug-${MINGW_CHOST} make -j1 install diff --git a/mingw-w64-openscenegraph/PKGBUILD b/mingw-w64-openscenegraph/PKGBUILD index 15dc3633b2..42d69b743f 100644 --- a/mingw-w64-openscenegraph/PKGBUILD +++ b/mingw-w64-openscenegraph/PKGBUILD @@ -53,7 +53,7 @@ prepare() { build() { export FREETYPE_DIR=${MINGW_PREFIX} - + for builddir in {Release,Debug}-${MINGW_CHOST}; do [[ -d $builddir ]] && rm -rf $builddir mkdir -p $builddir @@ -65,9 +65,9 @@ build() { local _opts="-DBUILD_OSG_EXAMPLES:BOOL=OFF -DBUILD_OSG_APPLICATIONS=OFF" local _postfix="-debug" } - + msg "Building ${builddir%-${MINGW_CHOST}} version..." - + ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${_postfix}${MINGW_PREFIX} \ @@ -82,15 +82,15 @@ build() { } package_release() { - + mkdir -p ${pkgdir}${MINGW_PREFIX} pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + cd Release-${MINGW_CHOST} make -j1 install - + for ff in ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/*.pc; do sed -i "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" $ff done @@ -100,7 +100,7 @@ package_debug() { depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=$pkgver") options=('staticlibs' '!strip') pkgdesc="Open source high performance 3D graphics toolkit (debug) (mingw-w64)" - + cd Debug-${MINGW_CHOST} make -j1 install diff --git a/mingw-w64-openshadinglanguage-git/PKGBUILD b/mingw-w64-openshadinglanguage-git/PKGBUILD index 4ca0634cf1..3ce4054987 100644 --- a/mingw-w64-openshadinglanguage-git/PKGBUILD +++ b/mingw-w64-openshadinglanguage-git/PKGBUILD @@ -12,7 +12,7 @@ license=("custom") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-glew" "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-openimageio" @@ -79,13 +79,13 @@ build() { -DEXTRA_OSLEXEC_LIBRARIES="-lz -lffi -lncurses -lshell32 -lpsapi -limagehlp -lm" \ ../$_realname #-DVERBOSE=1 - + # -DILMBASE_CUSTOM=True \ # -DILMBASE_CUSTOM_INCLUDE_DIR=${MINGW_PREFIX}/include \ # -DILMBASE_CUSTOM_LIB_DIR=${MINGW_PREFIX}/lib \ # -DILMBASE_CUSTOM_LIBRARIES="Half Iex Imath IlmThread" \ # $PWD/src/liboslcomp PATH addition needed for running oslc.exe during the build (for liboslcomp.dll) - # ${MINGW_PREFIX}/bin PATH addition needed for finding libboost_system-mt.dll when running oslc.exe. + # ${MINGW_PREFIX}/bin PATH addition needed for finding libboost_system-mt.dll when running oslc.exe. #PATH=$PWD/src/liboslcomp:${MINGW_PREFIX}/bin:"${PATH}" make VERBOSE=1 PATH="$PWD/src/liboslcomp:${PATH}" make } diff --git a/mingw-w64-openshadinglanguage/PKGBUILD b/mingw-w64-openshadinglanguage/PKGBUILD index dd870a1ff9..dd14f51e15 100644 --- a/mingw-w64-openshadinglanguage/PKGBUILD +++ b/mingw-w64-openshadinglanguage/PKGBUILD @@ -9,7 +9,7 @@ arch=('any') url="https://github.com/imageworks/OpenShadingLanguage/" license=("custom") depends=("${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-glew" "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-openimageio" @@ -57,7 +57,7 @@ build() { local _extra_libs=$(${MINGW_PREFIX}/bin/llvm-config --system-libs) CFLAGS+=" -std=c++11 -D_USE_MATH_DEFINES" CXXFLAGS+=" -std=c++11 -DTINYFORMAT_ALLOW_WCHAR_STRINGS -D_USE_MATH_DEFINES" - + [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} @@ -76,7 +76,7 @@ build() { #-DVERBOSE=1 # $PWD/src/liboslcomp PATH addition needed for running oslc.exe during the build (for liboslcomp.dll) - # ${MINGW_PREFIX}/bin PATH addition needed for finding libboost_system-mt.dll when running oslc.exe. + # ${MINGW_PREFIX}/bin PATH addition needed for finding libboost_system-mt.dll when running oslc.exe. PATH=$PWD/src/liboslcomp:${MINGW_PREFIX}/bin:"${PATH}" make #VERBOSE=1 } diff --git a/mingw-w64-openssl/PKGBUILD b/mingw-w64-openssl/PKGBUILD index 7d94792b5f..d192a3c343 100644 --- a/mingw-w64-openssl/PKGBUILD +++ b/mingw-w64-openssl/PKGBUILD @@ -34,7 +34,7 @@ prepare() { [ -d $srcdir/${_realname}-$pkgver ] && rm -rf $srcdir/${_realname}-$pkgver tar -xzvf ${_realname}-${pkgver}.tar.gz -C $srcdir cd $srcdir/${_realname}-$pkgver - + patch -p1 -i ${srcdir}/openssl-1.0.0a-ldflags.patch patch -p1 -i ${srcdir}/openssl-1.0.0d-windres.patch patch -p1 -i ${srcdir}/openssl-1.0.1-parallel-build.patch diff --git a/mingw-w64-osgbullet-svn/PKGBUILD b/mingw-w64-osgbullet-svn/PKGBUILD index cbec28966f..ec580a6f55 100644 --- a/mingw-w64-osgbullet-svn/PKGBUILD +++ b/mingw-w64-osgbullet-svn/PKGBUILD @@ -41,7 +41,7 @@ build() { package_release() { provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") - + [[ -d ${srcdir}/build-release ]] && rm -rf ${srcdir}/build-release mkdir -p ${srcdir}/build-release && cd ${srcdir}/build-release @@ -51,7 +51,7 @@ package_release() { -DCMAKE_BUILD_TYPE=Release \ -DosgWorks_DIR=${MINGW_PREFIX}/lib \ ../${_realname} - + make make install } @@ -60,7 +60,7 @@ package_debug() { depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn=$pkgver" "${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug" "${MINGW_PACKAGE_PREFIX}-osgworks-debug") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") - + [[ -d ${srcdir}/build-debug ]] && rm -rf ${srcdir}/build-debug mkdir -p ${srcdir}/build-debug && cd ${srcdir}/build-debug @@ -70,7 +70,7 @@ package_debug() { -DCMAKE_BUILD_TYPE=Debug \ -DosgWorks_DIR=${MINGW_PREFIX}/lib \ ../${_realname} - + make make install diff --git a/mingw-w64-osgocean-svn/PKGBUILD b/mingw-w64-osgocean-svn/PKGBUILD index caf2177600..4f21d63bef 100644 --- a/mingw-w64-osgocean-svn/PKGBUILD +++ b/mingw-w64-osgocean-svn/PKGBUILD @@ -43,7 +43,7 @@ build() { package_release() { provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") - + [[ -d ${srcdir}/build-release ]] && rm -rf ${srcdir}/build-release mkdir -p ${srcdir}/build-release && cd ${srcdir}/build-release @@ -54,7 +54,7 @@ package_release() { -DUSE_FFTW3=ON \ -DUSE_FFTSS=OFF \ ../${_realname} - + make make install } @@ -63,7 +63,7 @@ package_debug() { depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn=$pkgver" "${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") - + [[ -d ${srcdir}/build-debug ]] && rm -rf ${srcdir}/build-debug mkdir -p ${srcdir}/build-debug && cd ${srcdir}/build-debug @@ -74,7 +74,7 @@ package_debug() { -DUSE_FFTW3=ON \ -DUSE_FFTSS=OFF \ ../${_realname} - + make make install diff --git a/mingw-w64-osgworks-svn/PKGBUILD b/mingw-w64-osgworks-svn/PKGBUILD index ec85d3b417..0f67c6bae8 100644 --- a/mingw-w64-osgworks-svn/PKGBUILD +++ b/mingw-w64-osgworks-svn/PKGBUILD @@ -38,7 +38,7 @@ build() { package_release() { provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") - + [[ -d ${srcdir}/build-release ]] && rm -rf ${srcdir}/build-release mkdir -p ${srcdir}/build-release && cd ${srcdir}/build-release @@ -47,7 +47,7 @@ package_release() { -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ ../${_realname} - + make make install @@ -64,7 +64,7 @@ package_debug() { depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn=$pkgver" "${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") - + [[ -d ${srcdir}/build-debug ]] && rm -rf ${srcdir}/build-debug mkdir -p ${srcdir}/build-debug && cd ${srcdir}/build-debug @@ -73,7 +73,7 @@ package_debug() { -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Debug \ ../${_realname} - + make make install diff --git a/mingw-w64-osmgpsmap-git/PKGBUILD b/mingw-w64-osmgpsmap-git/PKGBUILD index cc28d24a79..ccb23ad29e 100644 --- a/mingw-w64-osmgpsmap-git/PKGBUILD +++ b/mingw-w64-osmgpsmap-git/PKGBUILD @@ -31,7 +31,7 @@ pkgver() { prepare() { cd ${_realname} patch -p1 -i ${srcdir}/001-fix-docdir.patch - + gtkdocize autoreconf -fiv } diff --git a/mingw-w64-pango/PKGBUILD b/mingw-w64-pango/PKGBUILD index ccb0010a8d..e507a55b05 100644 --- a/mingw-w64-pango/PKGBUILD +++ b/mingw-w64-pango/PKGBUILD @@ -20,7 +20,7 @@ license=(partial:'LGPL2') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-fontconfig" "${MINGW_PACKAGE_PREFIX}-cairo" @@ -39,7 +39,7 @@ prepare() { cd "$srcdir/pango-$pkgver" patch -p1 -i ${srcdir}/0001-no-unconditional-xft-please.all.patch patch -p1 -i ${srcdir}/0002-msvc-is-impotent-but-not.mingw.patch - + autoreconf -fi sed -i 's/have_libthai=true/have_libthai=false/' configure } diff --git a/mingw-w64-pdcurses/PKGBUILD b/mingw-w64-pdcurses/PKGBUILD index 41c5e78309..4cc20ec211 100644 --- a/mingw-w64-pdcurses/PKGBUILD +++ b/mingw-w64-pdcurses/PKGBUILD @@ -37,7 +37,7 @@ build() { package() { cd "${srcdir}/PDCurses-${pkgver}" - + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,include,lib} install win32/*.exe ${pkgdir}${MINGW_PREFIX}/bin/ install win32/pdcurses.dll ${pkgdir}${MINGW_PREFIX}/bin/ diff --git a/mingw-w64-physfs/PKGBUILD b/mingw-w64-physfs/PKGBUILD index 2749c3ad06..a164af6f86 100644 --- a/mingw-w64-physfs/PKGBUILD +++ b/mingw-w64-physfs/PKGBUILD @@ -28,7 +28,7 @@ build() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ${MINGW_PREFIX}/bin/cmake \ diff --git a/mingw-w64-pidgin++/PKGBUILD b/mingw-w64-pidgin++/PKGBUILD index 66c3ebf3f3..436b7a71b8 100644 --- a/mingw-w64-pidgin++/PKGBUILD +++ b/mingw-w64-pidgin++/PKGBUILD @@ -37,7 +37,7 @@ prepare() { build() { cd "${srcdir}"/${_realname}-${pkgver}-${CARCH} -# Need to patch +# Need to patch # ../configure \ # --prefix=${MINGW_PREFIX} \ # --sysconfdir=/etc \ diff --git a/mingw-w64-pitivi-git/PKGBUILD b/mingw-w64-pitivi-git/PKGBUILD index a8e1da8792..ec2610ca2c 100644 --- a/mingw-w64-pitivi-git/PKGBUILD +++ b/mingw-w64-pitivi-git/PKGBUILD @@ -28,7 +28,7 @@ pkgver() { version=$(grep AC_INIT configure.ac | sed 's/AC_INIT(Pitivi, //' | sed 's/,//') hash=$(git log --pretty=format:'%h' -n 1) revision=$(git rev-list --count HEAD) - echo $version.$revision.$hash + echo $version.$revision.$hash } build() { diff --git a/mingw-w64-pkgconf/PKGBUILD b/mingw-w64-pkgconf/PKGBUILD index c28db9f7f0..b54f615ac6 100644 --- a/mingw-w64-pkgconf/PKGBUILD +++ b/mingw-w64-pkgconf/PKGBUILD @@ -20,7 +20,7 @@ sha256sums=('afd2675d3cf39741906ab08e86421381271d67122a8a401d3a0fe59ad46af493' prepare() { cd $_realname-$pkgver patch -p1 -i ${srcdir}/0002-relocate.patch - + autoreconf -vfi } diff --git a/mingw-w64-plplot/PKGBUILD b/mingw-w64-plplot/PKGBUILD index 76569b2f59..723da7ce9c 100644 --- a/mingw-w64-plplot/PKGBUILD +++ b/mingw-w64-plplot/PKGBUILD @@ -12,15 +12,15 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gcc-fortran" "${MINGW_PACKAGE_PREFIX}-gcc-ada" "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-tk" + "${MINGW_PACKAGE_PREFIX}-tk" "${MINGW_PACKAGE_PREFIX}-wxWidgets" "${MINGW_PACKAGE_PREFIX}-lua" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python2-numpy" "${MINGW_PACKAGE_PREFIX}-qhull") makedepends=("subversion" - "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-gcc-fortran" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc-fortran" "${MINGW_PACKAGE_PREFIX}-gcc-ada") options=('strip' 'staticlibs') license=('LGPL') @@ -78,7 +78,7 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" make install # DESTDIR="$pkgdir" - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -pf ${srcdir}/${_realname}-${pkgver}/Copyright \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -pf ${srcdir}/${_realname}-${pkgver}/COPYING* \ diff --git a/mingw-w64-pngnq/PKGBUILD b/mingw-w64-pngnq/PKGBUILD index 570b0c1b3b..e9c56f64e2 100644 --- a/mingw-w64-pngnq/PKGBUILD +++ b/mingw-w64-pngnq/PKGBUILD @@ -24,20 +24,20 @@ prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p0 -i "${srcdir}/no-syslog.patch" patch -p1 -i "${srcdir}/configure-mistake.patch" - + autoreconf -fi } build() { cd "${srcdir}/${_realname}-${pkgver}" - + sed "35i#include " -i src/rwpng.c - + # The LIBS line fixes some build script weirdness where it only passes the zlib # link command to gcc in the right order, but not the libpng one. LIBS="`libpng-config --ldflags` -lz" ./configure \ --prefix=${MINGW_PREFIX} \ - --mandir="${pkgdir}${MINGW_PREFIX}/share/man" + --mandir="${pkgdir}${MINGW_PREFIX}/share/man" make } diff --git a/mingw-w64-poco/PKGBUILD b/mingw-w64-poco/PKGBUILD index 2e596e0d62..49e1a06a22 100644 --- a/mingw-w64-poco/PKGBUILD +++ b/mingw-w64-poco/PKGBUILD @@ -65,7 +65,7 @@ build() { i686) _config=MinGW ;; - + x86_64) _config=MinGW32-W64 ;; @@ -81,8 +81,8 @@ build() { -DPOCO_UNBUNDLED=OFF \ -DENABLE_MONGODB=OFF \ ../${_realname}-${_realname}-${pkgver}-release - - + + #"${srcdir}"/${_realname}-${_realname}-${pkgver}-release/configure \ # --prefix=${MINGW_PREFIX} \ # --config=${_config} \ diff --git a/mingw-w64-poppler-qt4/PKGBUILD b/mingw-w64-poppler-qt4/PKGBUILD index 4353591627..d0c286ea69 100644 --- a/mingw-w64-poppler-qt4/PKGBUILD +++ b/mingw-w64-poppler-qt4/PKGBUILD @@ -9,7 +9,7 @@ pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') url="http://poppler.freedesktop.org" license=("GPL") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-glib2" diff --git a/mingw-w64-postgresql/PKGBUILD b/mingw-w64-postgresql/PKGBUILD index c0cfb64f9d..a9e8ccf651 100644 --- a/mingw-w64-postgresql/PKGBUILD +++ b/mingw-w64-postgresql/PKGBUILD @@ -87,7 +87,7 @@ package() { done # these headers are needed by the not-so-public headers of the interfaces - mkdir -p "${pkgdir}${MINGW_PREFIX}"/include/{libpq,postgresql/internal/libpq} + mkdir -p "${pkgdir}${MINGW_PREFIX}"/include/{libpq,postgresql/internal/libpq} install -m644 ${srcdir}/postgresql-${pkgver}/src/include/c.h "${pkgdir}${MINGW_PREFIX}/include/postgresql/internal/" install -m644 ${srcdir}/postgresql-${pkgver}/src/include/port.h "${pkgdir}${MINGW_PREFIX}/include/postgresql/internal/" install -m644 ${srcdir}/postgresql-${pkgver}/src/include/postgres_fe.h "${pkgdir}${MINGW_PREFIX}/include/postgresql/internal/" diff --git a/mingw-w64-protobuf/PKGBUILD b/mingw-w64-protobuf/PKGBUILD index e4bc9f5c75..2250df8192 100644 --- a/mingw-w64-protobuf/PKGBUILD +++ b/mingw-w64-protobuf/PKGBUILD @@ -40,7 +40,7 @@ package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE - + #cd python #MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ #${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" diff --git a/mingw-w64-pygobject/PKGBUILD b/mingw-w64-pygobject/PKGBUILD index f7216f2636..fd9a2d1629 100644 --- a/mingw-w64-pygobject/PKGBUILD +++ b/mingw-w64-pygobject/PKGBUILD @@ -60,7 +60,7 @@ package_python3-gobject() { cd python3-build make DESTDIR="$pkgdir" install - + rm -r "${pkgdir}${MINGW_PREFIX}"/{include,lib/pkgconfig} } diff --git a/mingw-w64-pygobject2/PKGBUILD b/mingw-w64-pygobject2/PKGBUILD index 6feadf081c..45d42e417b 100644 --- a/mingw-w64-pygobject2/PKGBUILD +++ b/mingw-w64-pygobject2/PKGBUILD @@ -64,7 +64,7 @@ package_python2-gobject2() { cd python2-build make DESTDIR="$pkgdir" install - + find "${pkgdir}${MINGW_PREFIX}"/share/pygobject -name '*.py' -exec \ sed -i '1s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|' {} + @@ -82,10 +82,10 @@ package_python2-gobject2() { package_python3-gobject2() { pkgdesc="Python 3 bindings for GObject2 (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libffi" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pygobject2-devel=$pkgver") - + cd python3-build make DESTDIR="$pkgdir" install - + # Delete devel stuff rm -f "${pkgdir}${MINGW_PREFIX}"/bin/pygobject-codegen-2.0 rm -r "${pkgdir}${MINGW_PREFIX}"/{include,lib/pkgconfig,share/{gtk-doc,pygobject}} diff --git a/mingw-w64-python-beaker/PKGBUILD b/mingw-w64-python-beaker/PKGBUILD index 4f036c362b..279728d95b 100644 --- a/mingw-w64-python-beaker/PKGBUILD +++ b/mingw-w64-python-beaker/PKGBUILD @@ -12,7 +12,7 @@ url="http://beaker.groovie.org/" depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(https://github.com/bbangert/beaker/archive/v${pkgver}.tar.gz) md5sums=('7776b5722b4669bfa0946731d3bd11d8') - + prepare() { cd "${srcdir}/Beaker-${pkgver}" #patch -p1 -i ${srcdir}/mingw-python-fix.patch @@ -40,7 +40,7 @@ package_python3-beaker() { ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" --optimize=1 install -D -m644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-beaker/LICENSE" } - + package_python2-beaker() { depends=("${MINGW_PACKAGE_PREFIX}-python2>") diff --git a/mingw-w64-python-bsddb3/PKGBUILD b/mingw-w64-python-bsddb3/PKGBUILD index 861cd81703..ace97e6c20 100644 --- a/mingw-w64-python-bsddb3/PKGBUILD +++ b/mingw-w64-python-bsddb3/PKGBUILD @@ -16,8 +16,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" options=('staticlibs' 'strip' '!debug') source=("http://pypi.python.org/packages/source/b/bsddb3/${_realname}-${pkgver}.tar.gz") md5sums=('8d998ee04dc05f3808a7edfe3011decc') - -prepare() { + +prepare() { plain "Patching setup files ..." cd "${srcdir}/${_realname}-${pkgver}" sed -i -e "s|if os.name == 'posix':|if os.name == 'nt':|g" setup{2,3}.py diff --git a/mingw-w64-python-csssselect/PKGBUILD b/mingw-w64-python-csssselect/PKGBUILD index ebfac619c3..6111122a43 100644 --- a/mingw-w64-python-csssselect/PKGBUILD +++ b/mingw-w64-python-csssselect/PKGBUILD @@ -12,7 +12,7 @@ url="http://pypi.python.org/pypi/cssselect" makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3") source=("http://pypi.python.org/packages/source/c/cssselect/${_realname}-${pkgver}.tar.gz") md5sums=('c74f45966277dc7a0f768b9b0f3522ac') - + prepare() { cd "${srcdir}" sed -e "s|# coding: utf8|# -*- encoding:utf-8 -*-|g" -i ${_realname}-${pkgver}/setup.py diff --git a/mingw-w64-python-cx_Freeze/PKGBUILD b/mingw-w64-python-cx_Freeze/PKGBUILD index bfd28d4332..cc6ba95495 100644 --- a/mingw-w64-python-cx_Freeze/PKGBUILD +++ b/mingw-w64-python-cx_Freeze/PKGBUILD @@ -47,7 +47,7 @@ package_python2-cx_Freeze() { # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-2.7 # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall \ # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall-2.7 - # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart \ + # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart \ # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart-2.7 } diff --git a/mingw-w64-python-dateutil/PKGBUILD b/mingw-w64-python-dateutil/PKGBUILD index 7b1e087265..917ad9c6ed 100644 --- a/mingw-w64-python-dateutil/PKGBUILD +++ b/mingw-w64-python-dateutil/PKGBUILD @@ -26,7 +26,7 @@ prepare() { check() { cd $srcdir/python3-dateutil-$pkgver ${MINGW_PREFIX}/bin/python3 test.py - + cd $srcdir/python2-dateutil-$pkgver ${MINGW_PREFIX}/bin/python2 test.py } @@ -35,27 +35,27 @@ package_python3-dateutil() { depends=("${MINGW_PACKAGE_PREFIX}-python3-six") cd $srcdir/python3-dateutil-$pkgver - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ --root=$pkgdir --optimize=1 - + install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE chmod -R a+r $pkgdir/${MINGW_PREFIX}/lib/python3.4/ # Remove data files rm $pkgdir/${MINGW_PREFIX}/lib/python3.4/site-packages/dateutil/zoneinfo/zoneinfo--latest.tar.gz } - + package_python2-dateutil() { depends=("${MINGW_PACKAGE_PREFIX}-python2-six") cd $srcdir/python2-dateutil-$pkgver - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ --root=$pkgdir --optimize=1 - + install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE chmod -R a+r $pkgdir/${MINGW_PREFIX}/lib/python2.7/ diff --git a/mingw-w64-python-docutils/PKGBUILD b/mingw-w64-python-docutils/PKGBUILD index f9b7e1078d..6183426676 100644 --- a/mingw-w64-python-docutils/PKGBUILD +++ b/mingw-w64-python-docutils/PKGBUILD @@ -13,13 +13,13 @@ url="http://docutils.sourceforge.net" depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3") source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.gz") md5sums=('4622263b62c5c771c03502afa3157768') - + build() { cd "${srcdir}/${_realname}-${pkgver}" ${MINGW_PREFIX}/bin/python3 setup.py build --build-lib=build/python3 find build/python3 -type f -exec \ sed -i '1s,^#! \?/usr/bin/\(env \|\)python$,#!/usr/bin/python3,' {} \; - + ${MINGW_PREFIX}/bin/python2 setup.py build --build-lib=build/python2 find build/python2 -type f -exec \ sed -i '1s,^#! \?/usr/bin/\(env \|\)python$,#!/usr/bin/python2,' {} \; @@ -42,7 +42,7 @@ package_python3-docutils() { pushd ${MINGW_PREFIX} > /dev/null local _mingw_prefix=`pwd -W` popd > /dev/null - + cd ${_realname}-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build --build-lib=build/python3 \ @@ -53,7 +53,7 @@ package_python3-docutils() { sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${_f} mv -v "$_f" "${_f%.py}3.py" done - + # symlink without .py for f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do ln -s "$(basename $f)" "${pkgdir}${MINGW_PREFIX}/bin/$(basename $f .py)" @@ -62,7 +62,7 @@ package_python3-docutils() { install -D -m644 COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/COPYING.txt" install -D -m644 licenses/python* "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/" } - + package_python2-docutils() { depends=("${MINGW_PACKAGE_PREFIX}-python2") provides=("${MINGW_PACKAGE_PREFIX}-docutils=$pkgver") @@ -71,7 +71,7 @@ package_python2-docutils() { pushd ${MINGW_PREFIX} > /dev/null local _mingw_prefix=`pwd -W` popd > /dev/null - + cd ${_realname}-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build --build-lib=build/python2 \ diff --git a/mingw-w64-python-h5py/PKGBUILD b/mingw-w64-python-h5py/PKGBUILD index 5b5063a8c4..6ab453bfa7 100644 --- a/mingw-w64-python-h5py/PKGBUILD +++ b/mingw-w64-python-h5py/PKGBUILD @@ -31,7 +31,7 @@ prepare() { patch -p1 -i ${srcdir}/setup.py.patch patch -p1 -i ${srcdir}/lzf_c.c.patch cd .. - + cp -a $_realname-$pkgver $_realname-py2-$pkgver cp -a $_realname-$pkgver $_realname-py3-$pkgver } @@ -39,13 +39,13 @@ prepare() { build() { # build for python2 cd ${srcdir}/$_realname-py2-$pkgver - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build - + # build for python3 cd ${srcdir}/$_realname-py3-$pkgver - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build } @@ -55,7 +55,7 @@ package_python2-h5py() { "${MINGW_PACKAGE_PREFIX}-python2-numpy" "${MINGW_PACKAGE_PREFIX}-hdf5" ) - + cd $_realname-py2-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --skip-build \ @@ -70,7 +70,7 @@ package_python3-h5py() { "${MINGW_PACKAGE_PREFIX}-python3-numpy" "${MINGW_PACKAGE_PREFIX}-hdf5" ) - + cd $_realname-py3-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --skip-build \ diff --git a/mingw-w64-python-httplib2/PKGBUILD b/mingw-w64-python-httplib2/PKGBUILD index 6a5e591992..0bab7cfcf4 100644 --- a/mingw-w64-python-httplib2/PKGBUILD +++ b/mingw-w64-python-httplib2/PKGBUILD @@ -25,7 +25,7 @@ source=(#"git://github.com/jcgregorio/httplib2.git#commit=7d1b88a3cf" md5sums=('5fd16fb863d33dca000b2590f75e5ed7' '6de5596aedd196a4db96f83f529e3509' '98fab3f5a578c0db600237f025aac991') - + prepare() { pushd "${_realname}-${pkgver}" diff --git a/mingw-w64-python-icu/PKGBUILD b/mingw-w64-python-icu/PKGBUILD index e1b5e43c81..b8f25820a8 100644 --- a/mingw-w64-python-icu/PKGBUILD +++ b/mingw-w64-python-icu/PKGBUILD @@ -16,15 +16,15 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" options=('staticlibs' 'strip' '!debug') source=("https://pypi.python.org/packages/source/P/${_realname}/${_realname}-${pkgver}.tar.gz") md5sums=('00c8d40e5400f52c8474aa9480e8dbc1') - -prepare() { + +prepare() { cd "${srcdir}" cp -r ${_realname}-${pkgver} build-${CARCH} } build() { CFLAGS+=" -fpermissive" - export PYICU_CFLAGS="-DPYICU_VER='${pkgver}'" + export PYICU_CFLAGS="-DPYICU_VER='${pkgver}'" export PYICU_LFLAGS="-L${MINGW_PREFIX}/lib" export PYICU_INCLUDES="${MINGW_PREFIX}/include" export PYICU_LIBRARIES="icuin;icuuc;icudt;icule" diff --git a/mingw-w64-python-jinja/PKGBUILD b/mingw-w64-python-jinja/PKGBUILD index b1047aaa64..c649b64d5a 100644 --- a/mingw-w64-python-jinja/PKGBUILD +++ b/mingw-w64-python-jinja/PKGBUILD @@ -39,14 +39,14 @@ package_python3-jinja() { install -Dm644 LICENSE "${pkgdi}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } - + package_python2-jinja() { depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python2-markupsafe") cd "$srcdir/python3-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 - + install -Dm644 LICENSE "${pkgdi}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" } diff --git a/mingw-w64-python-lxml/PKGBUILD b/mingw-w64-python-lxml/PKGBUILD index e97131952c..55930a55df 100644 --- a/mingw-w64-python-lxml/PKGBUILD +++ b/mingw-w64-python-lxml/PKGBUILD @@ -22,7 +22,7 @@ md5sums=('429e5e771c4be0798923c04cb9739b4e' 'SKIP' 'e07163fc1e02cab5fa6009af35d5f823' '5268f79eb2a69b05da73d357ec8184b1') - + prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/mingw-python-fix.patch diff --git a/mingw-w64-python-mako/PKGBUILD b/mingw-w64-python-mako/PKGBUILD index 42940fe1f1..40d5978679 100644 --- a/mingw-w64-python-mako/PKGBUILD +++ b/mingw-w64-python-mako/PKGBUILD @@ -63,12 +63,12 @@ package_python2-mako() { mv ${pkgdir}${MINGW_PREFIX}/bin/mako-render{,2}.exe mv ${pkgdir}${MINGW_PREFIX}/bin/mako-render{,2}-script.py - + [[ -f ${pkgdir}${MINGW_PREFIX}/bin/mako-render.exe.manifest ]] && { mv ${pkgdir}${MINGW_PREFIX}/bin/mako-render{,2}.exe.manifest sed -e "s|mako-render|mako-render2|g" -i ${pkgdir}${MINGW_PREFIX}/bin/mako-render2.exe.manifest } - + install -Dm644 LICENSE "${pkgdi}${MINGW_PREFIX}/share/licenses/python2-${_realname}/COPYING" } @@ -86,7 +86,7 @@ package_python3-mako() { for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${_f} done - + install -Dm644 LICENSE "${pkgdi}${MINGW_PREFIX}/share/licenses/python3-${_realname}/COPYING" } diff --git a/mingw-w64-python-markupsafe/PKGBUILD b/mingw-w64-python-markupsafe/PKGBUILD index 4a1a1961c7..aa0d31d2d4 100644 --- a/mingw-w64-python-markupsafe/PKGBUILD +++ b/mingw-w64-python-markupsafe/PKGBUILD @@ -12,7 +12,7 @@ url="http://pypi.python.org/pypi/MarkupSafe" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=("http://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-${pkgver}.tar.gz") md5sums=('f5ab3deee4c37cd6a922fb81e730da6e') - + build() { cd "$srcdir" @@ -38,7 +38,7 @@ package_python3-markupsafe() { install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } - + package_python2-markupsafe() { depends=("${MINGW_PACKAGE_PREFIX}-python2") diff --git a/mingw-w64-python-matplotlib/PKGBUILD b/mingw-w64-python-matplotlib/PKGBUILD index 783b952914..fe9bb70a7b 100644 --- a/mingw-w64-python-matplotlib/PKGBUILD +++ b/mingw-w64-python-matplotlib/PKGBUILD @@ -38,20 +38,20 @@ prepare() { # Clean up old sources so re-patching doesn't fail. [ -d $srcdir/${_realname}-$pkgver ] && rm -rf $srcdir/${_realname}-$pkgver tar -xzvf ${_realname}-${pkgver}.tar.gz -C $srcdir - + cd $srcdir/${_realname}-$pkgver patch -p1 -i ${srcdir}/setupext.py.patch patch -p1 -i ${srcdir}/setup.py.patch cd ${srcdir} - + cp -a $_realname-$pkgver $_realname-py2-$pkgver cp -a $_realname-$pkgver $_realname-py3-$pkgver - + cd ${srcdir}/$_realname-py3-$pkgver # remove cairo which fails for python3 sed -i 's/setupext\.BackendGtk3Cairo/#setupext\.BackendGtk3Cairo/g' setup.py sed -i 's/setupext\.BackendCairo/#setupext\.BackendCairo/g' setup.py - + cd ${srcdir}/$_realname-py2-$pkgver sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/env python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ @@ -63,7 +63,7 @@ build() { cd ${srcdir}/$_realname-py2-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build - + cd ${srcdir}/$_realname-py3-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build @@ -82,7 +82,7 @@ package_python3-matplotlib() { #"${MINGW_PACKAGE_PREFIX}-qhull" ) cd ${srcdir}/$_realname-py3-$pkgver - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install -O1 --skip-build \ --root="${pkgdir}" --prefix=${MINGW_PREFIX} @@ -103,7 +103,7 @@ package_python2-matplotlib() { #"${MINGW_PACKAGE_PREFIX}-qhull" ) cd ${srcdir}/$_realname-py2-$pkgver - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install -O1 --skip-build \ --root="${pkgdir}" --prefix=${MINGW_PREFIX} diff --git a/mingw-w64-python-nose/PKGBUILD b/mingw-w64-python-nose/PKGBUILD index 8d0da0926a..26a325cb27 100644 --- a/mingw-w64-python-nose/PKGBUILD +++ b/mingw-w64-python-nose/PKGBUILD @@ -12,11 +12,11 @@ url="http://readthedocs.org/docs/nose/" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=("http://pypi.python.org/packages/source/n/nose/nose-${pkgver}.tar.gz") md5sums=('6ed7169887580ddc9a8e16048d38274d') - + build() { cd "$srcdir/nose-$pkgver" sed -i -e "s:man/man1:share/man/man1:g" setup.py - + cd "$srcdir" rm -rf python{2,3}-build for builddir in python{2,3}-build; do @@ -45,7 +45,7 @@ package_python3-nose() { done rm -rf "${pkgdir}${MINGW_PREFIX}/share" } - + package_python2-nose() { depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools") diff --git a/mingw-w64-python-nuitka/PKGBUILD b/mingw-w64-python-nuitka/PKGBUILD index 8a906f68b5..b999814999 100644 --- a/mingw-w64-python-nuitka/PKGBUILD +++ b/mingw-w64-python-nuitka/PKGBUILD @@ -40,7 +40,7 @@ package_python3-nuitka() { cd "$srcdir/python3-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 - + pushd "${pkgdir}${MINGW_PREFIX}"/bin > /dev/null for filename in nuitka nuitka-run; do sed -e "s|...\python|python3|g" \ @@ -60,13 +60,13 @@ package_python2-nuitka() { cd "$srcdir/python2-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 - + pushd "${pkgdir}${MINGW_PREFIX}"/bin > /dev/null for filename in nuitka nuitka-run; do sed -e "s|...\python|python2|g" \ -e "s|${filename}|${filename}2|g" \ -i "${pkgdir}${MINGW_PREFIX}"/bin/${filename}.bat - + sed -e "s|...\python|python2|g" \ -e "s|${filename}|${filename}2|g" \ -i "${pkgdir}${MINGW_PREFIX}"/bin/${filename} diff --git a/mingw-w64-python-numexpr/PKGBUILD b/mingw-w64-python-numexpr/PKGBUILD index a6f1210e42..312ac0b218 100644 --- a/mingw-w64-python-numexpr/PKGBUILD +++ b/mingw-w64-python-numexpr/PKGBUILD @@ -21,7 +21,7 @@ md5sums=('c9357862a304b9ad614afaf9e9c8dc78') prepare() { cp -a $_realname-$pkgver $_realname-py2-$pkgver cp -a $_realname-$pkgver $_realname-py3-$pkgver - + cd $_realname-py2-$pkgver sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ @@ -34,7 +34,7 @@ build() { cd ${srcdir}/$_realname-py2-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build - + # build for python3 cd ${srcdir}/$_realname-py3-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ @@ -43,7 +43,7 @@ build() { package_python2-numexpr() { depends=("${MINGW_PACKAGE_PREFIX}-python2-numpy") - + cd $_realname-py2-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --skip-build \ @@ -55,7 +55,7 @@ package_python2-numexpr() { package_python3-numexpr() { depends=("${MINGW_PACKAGE_PREFIX}-python3-numpy") - + cd $_realname-py3-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --skip-build \ diff --git a/mingw-w64-python-pandas/PKGBUILD b/mingw-w64-python-pandas/PKGBUILD index 21fc1861df..87278f2b35 100644 --- a/mingw-w64-python-pandas/PKGBUILD +++ b/mingw-w64-python-pandas/PKGBUILD @@ -26,7 +26,7 @@ md5sums=('393dd8f35411e4022177aa64b2da46f4') prepare() { cp -a $_realname-$pkgver $_realname-py2-$pkgver cp -a $_realname-$pkgver $_realname-py3-$pkgver - + cd $_realname-py2-$pkgver sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ @@ -39,15 +39,15 @@ build() { cd ${srcdir}/$_realname-py2-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build_ext --inplace - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build - + # build for python3 cd ${srcdir}/$_realname-py3-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build_ext --inplace - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build } @@ -64,7 +64,7 @@ package_python2-pandas() { "${MINGW_PACKAGE_PREFIX}-python2-matplotlib: needed for plotting" "${MINGW_PACKAGE_PREFIX}-python2-numexpr: needed for accelerating certain numerical operations (recommended)" ) - + cd $_realname-py2-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --skip-build \ @@ -86,7 +86,7 @@ package_python3-pandas() { "${MINGW_PACKAGE_PREFIX}-python3-matplotlib: needed for plotting" "${MINGW_PACKAGE_PREFIX}-python3-numexpr: needed for accelerating certain numerical operations (recommended)" ) - + cd $_realname-py3-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --skip-build \ diff --git a/mingw-w64-python-patsy/PKGBUILD b/mingw-w64-python-patsy/PKGBUILD index 4c220a1696..b6e3df2b08 100644 --- a/mingw-w64-python-patsy/PKGBUILD +++ b/mingw-w64-python-patsy/PKGBUILD @@ -27,26 +27,26 @@ package_python3-patsy() { depends=("${MINGW_PACKAGE_PREFIX}-python3-numpy") optdepends=("${MINGW_PACKAGE_PREFIX}-python3-nose: needed for integrated test suite" "${MINGW_PACKAGE_PREFIX}-python3-scipy: needed for spline-related functions") - + cd $srcdir/python3-$_realname-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ --root "${pkgdir}" --optimize=1 - + install -Dm644 "$srcdir/python3-$_realname-$pkgver/LICENSE.txt" \ "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } - + package_python2-patsy() { depends=("${MINGW_PACKAGE_PREFIX}-python2-numpy") optdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose: needed for integrated test suite" "${MINGW_PACKAGE_PREFIX}-python2-scipy: needed for spline-related functions") - + cd $srcdir/python2-$_realname-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ --root "${pkgdir}" --optimize=1 - + install -Dm644 "$srcdir/python3-$_realname-$pkgver/LICENSE.txt" \ "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" } diff --git a/mingw-w64-python-pip/PKGBUILD b/mingw-w64-python-pip/PKGBUILD index 9b4b701d37..bc7de4287f 100644 --- a/mingw-w64-python-pip/PKGBUILD +++ b/mingw-w64-python-pip/PKGBUILD @@ -14,7 +14,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(http://pypi.python.org/packages/source/p/pip/${_realname}-${pkgver}.tar.gz) md5sums=('2332e6f97e75ded3bddde0ced01dbda3') - + prepare() { cd "${srcdir}/${_realname}-${pkgver}" #patch -p1 -i ${srcdir}/mingw-python-fix.patch @@ -29,7 +29,7 @@ build() { # Build python 3 module cd "${srcdir}"/${_realname}-python3 ${MINGW_PREFIX}/bin/python3 setup.py build - + # Build python 2 module cd "${srcdir}"/${_realname}-python2 ${MINGW_PREFIX}/bin/python2 setup.py build @@ -37,15 +37,15 @@ build() { package_python2-pip() { depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python2-setuptools") - + pushd ${MINGW_PREFIX} > /dev/null local _mingw_prefix=`pwd -W` popd > /dev/null - + cd "${srcdir}/${_realname}-python2" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 --skip-build - + install -D -m644 LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" for _ff in ${pkgdir}${MINGW_PREFIX}/bin/*.py; do sed -e "s|${_mingw_prefix}|${MINGW_PREFIX}|g" -i ${_ff} @@ -64,7 +64,7 @@ package_python3-pip() { # Remove conflicted files rm -f ${pkgdir}${MINGW_PREFIX}/bin/pip{.exe,.exe.manifest,-script.py} - + for _ff in ${pkgdir}${MINGW_PREFIX}/bin/*.py; do sed -e "s|${_mingw_prefix}|${MINGW_PREFIX}|g" -i ${_ff} done diff --git a/mingw-w64-python-pygments/PKGBUILD b/mingw-w64-python-pygments/PKGBUILD index 96d307796b..6c46352a57 100644 --- a/mingw-w64-python-pygments/PKGBUILD +++ b/mingw-w64-python-pygments/PKGBUILD @@ -13,7 +13,7 @@ url="http://pygments.org/" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(http://pypi.python.org/packages/source/P/Pygments/Pygments-$pkgver.tar.gz) sha256sums=('799ed4caf77516e54440806d8d9cd82a7607dfdf4e4fb643815171a4b5c921c0') - + build() { cd "$srcdir" @@ -55,7 +55,7 @@ package_python3-pygments() { done install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } - + package_python2-pygments() { depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools") diff --git a/mingw-w64-python-pyparsing/PKGBUILD b/mingw-w64-python-pyparsing/PKGBUILD index 914c672628..13d59d9957 100644 --- a/mingw-w64-python-pyparsing/PKGBUILD +++ b/mingw-w64-python-pyparsing/PKGBUILD @@ -28,10 +28,10 @@ package_python3-pyparsing() { MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ --root="$pkgdir" --optimize=1 - + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } - + package_python2-pyparsing() { depends=("${MINGW_PACKAGE_PREFIX}-python2") @@ -39,7 +39,7 @@ package_python2-pyparsing() { MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ --root="$pkgdir" --optimize=1 - + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" } diff --git a/mingw-w64-python-pytz/PKGBUILD b/mingw-w64-python-pytz/PKGBUILD index 8ffda8b04b..8269b1a2ad 100644 --- a/mingw-w64-python-pytz/PKGBUILD +++ b/mingw-w64-python-pytz/PKGBUILD @@ -34,25 +34,25 @@ package_python3-pytz() { cd $srcdir/python3-pytz-$pkgver # Fix locale https://github.com/ipython/ipython/issues/2057 export LC_ALL=en_US.UTF-8 - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ --root=$pkgdir --optimize=1 - + install -D LICENSE.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE } - + package_python2-pytz() { depends=("${MINGW_PACKAGE_PREFIX}-python2") cd $srcdir/python2-pytz-$pkgver # Fix locale https://github.com/ipython/ipython/issues/2057 export LC_ALL=en_US.UTF-8 - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ --root=$pkgdir --optimize=1 - + install -D LICENSE.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE } diff --git a/mingw-w64-python-reportlab/PKGBUILD b/mingw-w64-python-reportlab/PKGBUILD index 37c88d7e51..c662e5904f 100644 --- a/mingw-w64-python-reportlab/PKGBUILD +++ b/mingw-w64-python-reportlab/PKGBUILD @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3") source=(http://www.reportlab.com/ftp/${_realname}-${pkgver}.tar.gz) md5sums=('a4fd40abcfb604aa3bd907181133c071') - + prepare() { cd "${srcdir}/${_realname}-${pkgver}" diff --git a/mingw-w64-python-scipy/PKGBUILD b/mingw-w64-python-scipy/PKGBUILD index a8d73684df..d9accd5e49 100644 --- a/mingw-w64-python-scipy/PKGBUILD +++ b/mingw-w64-python-scipy/PKGBUILD @@ -28,10 +28,10 @@ prepare() { cd ${_realname}-$pkgver patch -Np1 -i ${srcdir}/fix-qhull.patch cd .. - + cp -a $_realname-$pkgver $_realname-py2-$pkgver cp -a $_realname-$pkgver $_realname-py3-$pkgver - + cd $_realname-py2-$pkgver sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ @@ -41,7 +41,7 @@ prepare() { build() { export LDFLAGS="-Wall -shared" - + # build for python2 cd ${srcdir}/$_realname-py2-$pkgver local result="fail" @@ -65,10 +65,10 @@ package_python2-scipy() { "${MINGW_PACKAGE_PREFIX}-python2-numpy" ) optdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose: testsuite") - + cd $_realname-py2-$pkgver export LDFLAGS="-Wall -shared" - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py config_fc --fcompiler=gnu95 install \ --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 @@ -83,10 +83,10 @@ package_python3-scipy() { "${MINGW_PACKAGE_PREFIX}-python3-numpy" ) optdepends=("${MINGW_PACKAGE_PREFIX}-python3-nose: testsuite") - + cd $_realname-py3-$pkgver export LDFLAGS="-Wall -shared" - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py config_fc --fcompiler=gnu95 install \ --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index 5b2cdc06e1..d4436e8a03 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -23,7 +23,7 @@ sha1sums=('cd49661e090a397d77c690f7f2d06852b7086be9' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' '8c7266a73334b166286baf8641ad0c139f15faad') - + prepare() { cd "${srcdir}/setuptools-${pkgver}" patch -p1 -i ${srcdir}/0001-mingw-python-fix.patch @@ -87,11 +87,11 @@ package_python3-setuptools() { package_python2-setuptools() { depends=("${MINGW_PACKAGE_PREFIX}-python2>=2.7") - + pushd ${MINGW_PREFIX} > /dev/null local _mingw_prefix=`pwd -W` popd > /dev/null - + cd "${srcdir}/setuptools-python2" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 --skip-build diff --git a/mingw-w64-python-six/PKGBUILD b/mingw-w64-python-six/PKGBUILD index bf18e40190..83885f4467 100644 --- a/mingw-w64-python-six/PKGBUILD +++ b/mingw-w64-python-six/PKGBUILD @@ -35,10 +35,10 @@ package_python3-six() { MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ --root "${pkgdir}" --optimize=1 - + install -Dm644 "${srcdir}/six-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } - + package_python2-six() { depends=("${MINGW_PACKAGE_PREFIX}-python2") @@ -46,7 +46,7 @@ package_python2-six() { MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ --root "${pkgdir}" --optimize=1 - + install -Dm644 "${srcdir}/six-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" } diff --git a/mingw-w64-python-sphinx/PKGBUILD b/mingw-w64-python-sphinx/PKGBUILD index f716b5b1f7..599dbc5c4d 100644 --- a/mingw-w64-python-sphinx/PKGBUILD +++ b/mingw-w64-python-sphinx/PKGBUILD @@ -68,7 +68,7 @@ package_python3-sphinx() { sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${_f} done } - + package_python2-sphinx() { pkgdesc='Python2 documentation generator' depends=("${MINGW_PACKAGE_PREFIX}-python2-jinja" "${MINGW_PACKAGE_PREFIX}-python2-pygments" "${MINGW_PACKAGE_PREFIX}-python2-docutils") diff --git a/mingw-w64-python-statsmodels/PKGBUILD b/mingw-w64-python-statsmodels/PKGBUILD index eed455aa15..201d0a6206 100644 --- a/mingw-w64-python-statsmodels/PKGBUILD +++ b/mingw-w64-python-statsmodels/PKGBUILD @@ -28,7 +28,7 @@ md5sums=('c65454d97f869ac0e5bb3a2757ec6bd5') prepare() { cp -a $_realname-$pkgver $_realname-py2-$pkgver cp -a $_realname-$pkgver $_realname-py3-$pkgver - + cd $_realname-py2-$pkgver sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ @@ -39,21 +39,21 @@ prepare() { build() { # build for python2 cd ${srcdir}/$_realname-py2-$pkgver - + # regenerate Cython files MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py clean - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build - + # build for python3 cd ${srcdir}/$_realname-py3-$pkgver - + # regenerate Cython files MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py clean - + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build } @@ -68,7 +68,7 @@ package_python2-statsmodels() { "${MINGW_PACKAGE_PREFIX}-python2-nose: needed for integrated test suite" "${MINGW_PACKAGE_PREFIX}-python2-matplotlib: needed for plotting functions" ) - + cd $_realname-py2-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --skip-build \ @@ -88,7 +88,7 @@ package_python3-statsmodels() { "${MINGW_PACKAGE_PREFIX}-python3-nose: needed for integrated test suite" "${MINGW_PACKAGE_PREFIX}-python3-matplotlib: needed for plotting functions" ) - + cd $_realname-py3-$pkgver MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --skip-build \ diff --git a/mingw-w64-python2-beautifulsoup3/PKGBUILD b/mingw-w64-python2-beautifulsoup3/PKGBUILD index a961cfb6d1..cfe992f1aa 100644 --- a/mingw-w64-python2-beautifulsoup3/PKGBUILD +++ b/mingw-w64-python2-beautifulsoup3/PKGBUILD @@ -12,7 +12,7 @@ url="http://www.crummy.com/software/BeautifulSoup/index.html" depends=("${MINGW_PACKAGE_PREFIX}-python2") source=(http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-${pkgver}.tar.gz) sha1sums=('b23e78f058240eb8779dbc1b8a8d76bba4916df1') - + prepare() { cd "${srcdir}/BeautifulSoup-${pkgver}" } diff --git a/mingw-w64-python2-cairo/PKGBUILD b/mingw-w64-python2-cairo/PKGBUILD index 69f9036700..ac56adc0ca 100644 --- a/mingw-w64-python2-cairo/PKGBUILD +++ b/mingw-w64-python2-cairo/PKGBUILD @@ -39,7 +39,7 @@ package() { cd "${srcdir}/py2cairo-${pkgver}" export PYTHON=${MINGW_PREFIX}/bin/python2 /usr/bin/python2 ./waf install --destdir="${pkgdir}" - + rm -rf ${pkgdir}${MINGW_PREFIX}/lib mv ${pkgdir}${MINGW_PREFIX}/bin ${pkgdir}${MINGW_PREFIX}/lib } diff --git a/mingw-w64-python2-cjson/PKGBUILD b/mingw-w64-python2-cjson/PKGBUILD index de7fa18e1c..5abc92acd1 100644 --- a/mingw-w64-python2-cjson/PKGBUILD +++ b/mingw-w64-python2-cjson/PKGBUILD @@ -12,7 +12,7 @@ url="http://pypi.python.org/pypi/python-cjson/" depends=("${MINGW_PACKAGE_PREFIX}-python2") source=("http://pypi.python.org/packages/source/p/python-cjson/python-cjson-$pkgver.tar.gz") md5sums=('adb28f42c72ef573dfbd4cdf09676ace') - + prepare() { cd "${srcdir}"/python-cjson-$pkgver } diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index 7cf411abc0..be8ec587d4 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -11,7 +11,7 @@ pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') url="http://www.python.org/" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-gdbm" @@ -223,7 +223,7 @@ prepare() { touch Include/Python-ast.h touch Python/Python-ast.c echo \"\" > Parser/pgen.stamp - + # Ensure that we are using the system copy of various libraries (expat, zlib and libffi), # rather than copies shipped in the tarball rm -r Modules/expat @@ -286,12 +286,12 @@ package() { MSYSTEM=MINGW \ MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ make install DESTDIR="$pkgdir" - + mv "${pkgdir}${MINGW_PREFIX}"/bin/smtpd.py "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/ # Copy python import library to $prefix/lib because some programs can't find it in other locations cp -f "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config/libpython${_pybasever}.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/libpython${_pybasever}.dll.a - + # some useful "stuff" install -dm755 "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/Tools/{i18n,scripts} install -m755 "${srcdir}/Python-${pkgver}"/Tools/i18n/{msgfmt,pygettext}.py "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/Tools/i18n/ diff --git a/mingw-w64-python3-cairo/PKGBUILD b/mingw-w64-python3-cairo/PKGBUILD index 2f97175f36..5c3313541a 100644 --- a/mingw-w64-python3-cairo/PKGBUILD +++ b/mingw-w64-python3-cairo/PKGBUILD @@ -39,7 +39,7 @@ build() { package() { cd "${srcdir}/pycairo-${pkgver}" /usr/bin/python3 ./waf install --destdir="${pkgdir}" - + rm -rf ${pkgdir}${MINGW_PREFIX}/lib mv ${pkgdir}${MINGW_PREFIX}/bin ${pkgdir}${MINGW_PREFIX}/lib } diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 3a79e35ba2..ed9228bdd3 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -22,7 +22,7 @@ pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') url="http://www.python.org/" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-gdbm" @@ -243,7 +243,7 @@ prepare() { touch Include/Python-ast.h touch Python/Python-ast.c echo \"\" > Parser/pgen.stamp - + # Ensure that we are using the system copy of various libraries (expat, zlib and libffi), # rather than copies shipped in the tarball rm -r Modules/expat diff --git a/mingw-w64-qbs-git/PKGBUILD b/mingw-w64-qbs-git/PKGBUILD index d4b914b991..2ae8a11dc0 100644 --- a/mingw-w64-qbs-git/PKGBUILD +++ b/mingw-w64-qbs-git/PKGBUILD @@ -14,7 +14,7 @@ # .. we end up with "-LC:/msys64/mingw64/lib" appearing before the project's # libdirs, which means an existing libqbscore1.dll.a in C:/msys64/mingw64/lib # will get used instead of the one we're building and you'll get link errors -# or binary incompat. issues. Really, Qt shouldn't be adding this folder as +# or binary incompat. issues. Really, Qt shouldn't be adding this folder as # the linker already looks in its libdir - last - anyway. # Fixing this in qt5/mkspecs/features/win32/windows.prf may make sense? diff --git a/mingw-w64-qca-qt4-git/PKGBUILD b/mingw-w64-qca-qt4-git/PKGBUILD index 75d5a4f6ba..1ed0b56588 100644 --- a/mingw-w64-qca-qt4-git/PKGBUILD +++ b/mingw-w64-qca-qt4-git/PKGBUILD @@ -43,7 +43,7 @@ build() { mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - + QC_CERTSTORE_PATH=${MINGW_PREFIX}/etc/ssl/certs/ca-certificates.crt ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ diff --git a/mingw-w64-qemu/PKGBUILD b/mingw-w64-qemu/PKGBUILD index 5088b0ea4b..fd25c8ef95 100644 --- a/mingw-w64-qemu/PKGBUILD +++ b/mingw-w64-qemu/PKGBUILD @@ -14,7 +14,7 @@ makedepends=('perl' 'python2' 'bison') depends=("${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-libjpeg" "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libssh2" + "${MINGW_PACKAGE_PREFIX}-libssh2" #"${MINGW_PACKAGE_PREFIX}-libusb" "${MINGW_PACKAGE_PREFIX}-lzo2" "${MINGW_PACKAGE_PREFIX}-openssl" @@ -32,7 +32,7 @@ prepare() { cd $startdir/ [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} tar -xjf ${startdir}/${_pkgfqn}.tar.bz2 -C $srcdir || true - + cd ${srcdir}/${_pkgfqn} patch -p1 -i ${srcdir}/001-time-functions.patch } diff --git a/mingw-w64-qhull-git/PKGBUILD b/mingw-w64-qhull-git/PKGBUILD index ced2ab94aa..36324f77ff 100644 --- a/mingw-w64-qhull-git/PKGBUILD +++ b/mingw-w64-qhull-git/PKGBUILD @@ -15,7 +15,7 @@ license=('custom') groups=("${MINGW_PACKAGE_PREFIX}") options=('strip' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("git" +makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") source=("$_realname"::"git://gitorious.org/qhull/qhull.git" @@ -66,7 +66,7 @@ package() { mv -f lib${_realname}static_p.a lib${_realname}_p.a fi popd >/dev/null - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -pf "${srcdir}"/${_realname}/COPYING* \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname } diff --git a/mingw-w64-qjson-qt4/PKGBUILD b/mingw-w64-qjson-qt4/PKGBUILD index 0d634c95a4..3992ff9042 100644 --- a/mingw-w64-qjson-qt4/PKGBUILD +++ b/mingw-w64-qjson-qt4/PKGBUILD @@ -20,14 +20,14 @@ md5sums=('4eef13da988edf8f91c260a3e1baeea9') build() { mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ ${srcdir}/${_realname}-${pkgver} - make # VERBOSE=1 + make # VERBOSE=1 } package() { @@ -37,7 +37,7 @@ package() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}/*.cmake; do sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} done diff --git a/mingw-w64-qrupdate-svn/PKGBUILD b/mingw-w64-qrupdate-svn/PKGBUILD index a30c94a890..77934d3e81 100644 --- a/mingw-w64-qrupdate-svn/PKGBUILD +++ b/mingw-w64-qrupdate-svn/PKGBUILD @@ -37,7 +37,7 @@ package() { mkdir -p ${pkgdir}${MINGW_PREFIX}/lib cp -pf lib${_realname}.dll ${pkgdir}${MINGW_PREFIX}/bin cp -pf lib${_realname}*.a ${pkgdir}${MINGW_PREFIX}/lib - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -pf ${srcdir}/${_realname}/COPYING* \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname } diff --git a/mingw-w64-qscintilla/PKGBUILD b/mingw-w64-qscintilla/PKGBUILD index e8d7332f91..75b116a8dd 100644 --- a/mingw-w64-qscintilla/PKGBUILD +++ b/mingw-w64-qscintilla/PKGBUILD @@ -30,7 +30,7 @@ prepare() { patch -p1 -i "${srcdir}"/configure.py-objdir-support.diff patch -p1 -i "${srcdir}"/run-command-via-sh.patch patch -p1 -i "${srcdir}"/qmake-install-paths.patch - + sed -e "s|%INSTALL_PREFIX%|$(cygpath -wm ${pkgdir})|g" \ -i Qt4Qt5/qscintilla.pro \ -i designer-Qt4Qt5/designer.pro @@ -40,7 +40,7 @@ build() { cd ${srcdir}/QScintilla-gpl-${pkgver}/Qt4Qt5 ${MINGW_PREFIX}/bin/qmake qscintilla.pro make - + cd ../designer-Qt4Qt5 QMAKEFEATURES=../Qt4Qt5/features ${MINGW_PREFIX}/bin/qmake designer.pro INCLUDEPATH+=../Qt4Qt5 QMAKE_LIBDIR+=../Qt4Qt5/release make @@ -58,7 +58,7 @@ package_qscintilla() { cd ../designer-Qt4Qt5 make install - + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ } @@ -87,7 +87,7 @@ package_python3-qscintilla() { make make INSTALL_ROOT=${pkgdir} install - + rm -rf "${pkgdir}${MINGW_PREFIX}"/share } @@ -104,7 +104,7 @@ package_python2-qscintilla() { make make INSTALL_ROOT=${pkgdir} install - + rm -rf "${pkgdir}${MINGW_PREFIX}"/share } diff --git a/mingw-w64-qt-solutions-git/PKGBUILD b/mingw-w64-qt-solutions-git/PKGBUILD index 5f4c630f8a..30a7a7ffeb 100644 --- a/mingw-w64-qt-solutions-git/PKGBUILD +++ b/mingw-w64-qt-solutions-git/PKGBUILD @@ -50,11 +50,11 @@ package() { cd ${srcdir}/${_realname}/${cur} cp -f lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin cp -f lib/*.a ${pkgdir}${MINGW_PREFIX}/lib - + local _headers=( $(find ${srcdir}/${_realname}/${cur}/src -maxdepth 1 -type f ! \( -iname "*.cpp" -o -iname "*.pri" \) ) ) cp -f ${_headers[@]} ${pkgdir}${MINGW_PREFIX}/include/ #find src -maxdepth 1 -type f ! /( -iname "*.cpp" -o -iname "*.pri"/) -exec cp -p '{}' "${pkgdir}${MINGW_PREFIX}"/include/'{}' ';' - + done } diff --git a/mingw-w64-qt5-git/PKGBUILD b/mingw-w64-qt5-git/PKGBUILD index 5dbfb46e6e..3eb8b103f6 100644 --- a/mingw-w64-qt5-git/PKGBUILD +++ b/mingw-w64-qt5-git/PKGBUILD @@ -93,7 +93,7 @@ prepare() { mv -f $curmod ${_realname} fi done - + cd ${_realname} plain "" diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index a621c3d546..06ab17b8cc 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -249,7 +249,7 @@ prepare() { cd ${startdir} [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} tar -xJf ${startdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true - + # cp -rf qt3d ${_pkgfqn}/ cd ${srcdir}/${_pkgfqn} @@ -299,7 +299,7 @@ prepare() { _opengl_for_configure=yes fi fi - + patch -p1 -i ${srcdir}/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch if [ "${_make}" = "make" ]; then patch -p1 -i ${srcdir}/0025-qt-5.3.1-force-using-make-on-msys.patch diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index b1a4afe4f5..530d582a96 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -237,7 +237,7 @@ prepare() { cd ${startdir} [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} tar -xJf ${startdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true - + # cp -rf qt3d ${_pkgfqn}/ cd ${srcdir}/${_pkgfqn} @@ -287,7 +287,7 @@ prepare() { _opengl_for_configure=yes fi fi - + patch -p1 -i ${srcdir}/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch if [ "${_make}" = "make" ]; then patch -p1 -i ${srcdir}/0025-qt-5.3.1-force-using-make-on-msys.patch diff --git a/mingw-w64-qtbinpatcher/PKGBUILD b/mingw-w64-qtbinpatcher/PKGBUILD index e1c892681c..60806b57a5 100644 --- a/mingw-w64-qtbinpatcher/PKGBUILD +++ b/mingw-w64-qtbinpatcher/PKGBUILD @@ -25,7 +25,7 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 388d07fafc..98676ce67b 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -117,7 +117,7 @@ package() { cd ${srcdir}/build-${MINGW_CHOST} make INSTALL_ROOT="${pkgdir}${MINGW_PREFIX}" install make INSTALL_ROOT="${pkgdir}${MINGW_PREFIX}" install_docs - + install -Dm644 ${srcdir}/${_pkgfqn}/LGPL_EXCEPTION.TXT ${pkgdir}${MINGW_PREFIX}/share/licenses/qtcreator/LGPL_EXCEPTION.TXT } diff --git a/mingw-w64-quarter-hg/PKGBUILD b/mingw-w64-quarter-hg/PKGBUILD index fff20f63ee..8162bff1d3 100644 --- a/mingw-w64-quarter-hg/PKGBUILD +++ b/mingw-w64-quarter-hg/PKGBUILD @@ -52,7 +52,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR=${pkgdir} install - + # Workaround - need to build MSYS2 with separate /usr [[ -d ${pkgdir}/usr ]] && { cp -rf ${pkgdir}/usr${MINGW_PREFIX}/* ${pkgdir}${MINGW_PREFIX}/ diff --git a/mingw-w64-qwt-qt4/PKGBUILD b/mingw-w64-qwt-qt4/PKGBUILD index 9b3aaf43ab..3389e8d473 100644 --- a/mingw-w64-qwt-qt4/PKGBUILD +++ b/mingw-w64-qwt-qt4/PKGBUILD @@ -22,7 +22,7 @@ prepare() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + cd ${srcdir}/${_realname}-${pkgver} # copy our config file to the right place cp ${srcdir}/qwtconfig-msys2.pri qwtconfig.pri @@ -34,20 +34,20 @@ build() { cd ${srcdir}/${_realname}-${pkgver} ${MINGW_PREFIX}/bin/qmake qwt.pro - make ${MAKEFLAGS} # VERBOSE=1 + make ${MAKEFLAGS} # VERBOSE=1 } package() { cd ${srcdir}/${_realname}-${pkgver} make -j1 install - + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/mkspecs/features/qwtconfig.pri } diff --git a/mingw-w64-qwt-qt5/PKGBUILD b/mingw-w64-qwt-qt5/PKGBUILD index 660ebf8cd2..55dc27fc68 100644 --- a/mingw-w64-qwt-qt5/PKGBUILD +++ b/mingw-w64-qwt-qt5/PKGBUILD @@ -27,7 +27,7 @@ prepare() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + cd ${srcdir}/${_realname}-${pkgver} # copy our config file to the right place cp ${srcdir}/qwtconfig-msys2.pri qwtconfig.pri @@ -41,20 +41,20 @@ build() { cd ${srcdir}/${_realname}-${pkgver} ${MINGW_PREFIX}/bin/qmake qwt.pro - make ${MAKEFLAGS} # VERBOSE=1 + make ${MAKEFLAGS} # VERBOSE=1 } package() { cd ${srcdir}/${_realname}-${pkgver} make -j1 install - + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/mkspecs/features/qwtconfig.pri } diff --git a/mingw-w64-qxmpp-qt4/PKGBUILD b/mingw-w64-qxmpp-qt4/PKGBUILD index 026a1e934c..18573c3b74 100644 --- a/mingw-w64-qxmpp-qt4/PKGBUILD +++ b/mingw-w64-qxmpp-qt4/PKGBUILD @@ -4,8 +4,8 @@ _realname=qxmpp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.8.0 pkgrel=1 pkgdesc="Cross-platform C++ XMPP client and server library" @@ -16,7 +16,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt4" "${MINGW_PACKAGE_PREFIX}-speex" "${MINGW_PACKAGE_PREFIX}-libtheora" "${MINGW_PACKAGE_PREFIX}-libvpx") - + makedepends=("${MINGW_PACKAGE_PREFIX}-qt4") @@ -27,7 +27,7 @@ md5sums=('04e532c807e749a24a7eafefdc31f6d4') build() { cd ${srcdir}/${_realname}-${pkgver} - + mkdir -p ${pkgdir}${MINGW_PREFIX} pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` @@ -41,7 +41,7 @@ build() { "CONFIG+=release" \ qxmpp.pro - make ${MAKEFLAGS} # VERBOSE=1 + make ${MAKEFLAGS} # VERBOSE=1 } package() { @@ -49,15 +49,15 @@ package() { make install mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ - + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + pushd ${MINGW_PREFIX} > /dev/null export PREFIX_DEP=`pwd -W` popd > /dev/null - + echo "PREFIX_DEP=${PREFIX_DEP}" sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/qxmpp.pc diff --git a/mingw-w64-qxmpp/PKGBUILD b/mingw-w64-qxmpp/PKGBUILD index 56b3a8edc1..25bace8ec9 100644 --- a/mingw-w64-qxmpp/PKGBUILD +++ b/mingw-w64-qxmpp/PKGBUILD @@ -15,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt5" "${MINGW_PACKAGE_PREFIX}-speex" "${MINGW_PACKAGE_PREFIX}-libtheora" "${MINGW_PACKAGE_PREFIX}-libvpx") - + makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") @@ -26,7 +26,7 @@ md5sums=('04e532c807e749a24a7eafefdc31f6d4') build() { cd ${srcdir}/${_realname}-${pkgver} - + mkdir -p ${pkgdir}${MINGW_PREFIX} pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` @@ -40,7 +40,7 @@ build() { "CONFIG+=release" \ qxmpp.pro - make ${MAKEFLAGS} # VERBOSE=1 + make ${MAKEFLAGS} # VERBOSE=1 } package() { @@ -48,15 +48,15 @@ package() { make install mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ - + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + pushd ${MINGW_PREFIX} > /dev/null export PREFIX_DEP=`pwd -W` popd > /dev/null - + echo "PREFIX_DEP=${PREFIX_DEP}" sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/qxmpp.pc diff --git a/mingw-w64-rtmpdump-git/PKGBUILD b/mingw-w64-rtmpdump-git/PKGBUILD index 6770465106..814b3a714e 100644 --- a/mingw-w64-rtmpdump-git/PKGBUILD +++ b/mingw-w64-rtmpdump-git/PKGBUILD @@ -69,7 +69,7 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" mkdir -p ${pkgdir}${MINGW_PREFIX}/lib make CC=gcc LD=ld AR=ar SYS=mingw prefix=${MINGW_PREFIX} mandir=${MINGW_PREFIX}/share/man DESTDIR="$pkgdir" install - + mv ${pkgdir}${MINGW_PREFIX}/sbin/* ${pkgdir}${MINGW_PREFIX}/bin/ rm -r ${pkgdir}${MINGW_PREFIX}/sbin } diff --git a/mingw-w64-ruby/PKGBUILD b/mingw-w64-ruby/PKGBUILD index facb47190e..cef463b81d 100644 --- a/mingw-w64-ruby/PKGBUILD +++ b/mingw-w64-ruby/PKGBUILD @@ -31,7 +31,7 @@ prepare() { patch -p1 -i ${srcdir}/0001-mingw-w64-time-functions.patch patch -p1 -i ${srcdir}/0002-use-gnu-printf.patch patch -p1 -i ${srcdir}/0003-fix-check-types.patch - + autoreconf -fi } @@ -49,7 +49,7 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} - make + make } package() { diff --git a/mingw-w64-rust/PKGBUILD b/mingw-w64-rust/PKGBUILD index c280604d84..615f728a0b 100644 --- a/mingw-w64-rust/PKGBUILD +++ b/mingw-w64-rust/PKGBUILD @@ -40,7 +40,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --llvm-root=${MINGW_PREFIX} - + #--enable-local-rust use an installed rustc rather than downloading a snapshot #--local-rust-root=[/usr/local] set prefix for local rust binary #--enable-clang prefer clang to gcc for building the runtime diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index ed1d06bffb..ccb40ab4e4 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -68,7 +68,7 @@ package_mingw-w64-scite() { package_mingw-w64-scite-defaults() { pkgdesc='Default language files for the SciTE editor (mingw-w64)' depends=("${MINGW_PACKAGE_PREFIX}-${_realname}") - + cd "${srcdir}"/build-${CARCH} mkdir -p "${pkgdir}"${MINGW_PREFIX}/share/scite diff --git a/mingw-w64-sfml-git/PKGBUILD b/mingw-w64-sfml-git/PKGBUILD index 1fb062f12f..c15b2e5c49 100644 --- a/mingw-w64-sfml-git/PKGBUILD +++ b/mingw-w64-sfml-git/PKGBUILD @@ -14,7 +14,7 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-libsndfile" "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-openal" + "${MINGW_PACKAGE_PREFIX}-openal" "${MINGW_PACKAGE_PREFIX}-glew" "${MINGW_PACKAGE_PREFIX}-freetype" ) diff --git a/mingw-w64-shishi-git/PKGBUILD b/mingw-w64-shishi-git/PKGBUILD index 12f3645238..3caf6d9873 100644 --- a/mingw-w64-shishi-git/PKGBUILD +++ b/mingw-w64-shishi-git/PKGBUILD @@ -42,7 +42,7 @@ prepare() { WANT_AUTOMAKE=latest autoreconf -fi cp -rf ${srcdir}/snippet build-aux/ cd .. - + cp -rf ${_realname} build-${MINGW_CHOST} } diff --git a/mingw-w64-smpeg2/PKGBUILD b/mingw-w64-smpeg2/PKGBUILD index baa3d04caa..650df19497 100644 --- a/mingw-w64-smpeg2/PKGBUILD +++ b/mingw-w64-smpeg2/PKGBUILD @@ -36,7 +36,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install - + # hacky way of resolving conflicts rm ${pkgdir}${MINGW_PREFIX}/bin/plaympeg rm -r ${pkgdir}${MINGW_PREFIX}/share/man diff --git a/mingw-w64-snappy/PKGBUILD b/mingw-w64-snappy/PKGBUILD index bb060967df..0f7d2f474a 100644 --- a/mingw-w64-snappy/PKGBUILD +++ b/mingw-w64-snappy/PKGBUILD @@ -23,7 +23,7 @@ prepare() { patch -p1 -i ${srcdir}/001-no-undefined.patch autoreconf -fi popd > /dev/null - + mkdir -p build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} diff --git a/mingw-w64-snoregrowl/PKGBUILD b/mingw-w64-snoregrowl/PKGBUILD index ed8684e854..d0ea90ddff 100644 --- a/mingw-w64-snoregrowl/PKGBUILD +++ b/mingw-w64-snoregrowl/PKGBUILD @@ -16,14 +16,14 @@ source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/Snorenotify/${_real build() { mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ ${srcdir}/${_realname}-${pkgver} - make # VERBOSE=1 + make # VERBOSE=1 } package() { @@ -33,7 +33,7 @@ package() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}/*.cmake; do sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} done diff --git a/mingw-w64-snorenotify/PKGBUILD b/mingw-w64-snorenotify/PKGBUILD index 9987f7e0a2..75622f360a 100644 --- a/mingw-w64-snorenotify/PKGBUILD +++ b/mingw-w64-snorenotify/PKGBUILD @@ -20,7 +20,7 @@ md5sums=('508dafd77c2cb1b57239c1dc6ad73727') build() { mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ @@ -28,7 +28,7 @@ build() { -DWITH_QT4=OFF \ ${srcdir}/${_realname}-${pkgver} - make # VERBOSE=1 + make # VERBOSE=1 } package() { @@ -38,7 +38,7 @@ package() { pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null - + for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/libsnoreQt5/*.cmake; do sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} done diff --git a/mingw-w64-soundtouch/PKGBUILD b/mingw-w64-soundtouch/PKGBUILD index 8ada7b698f..89751117f9 100644 --- a/mingw-w64-soundtouch/PKGBUILD +++ b/mingw-w64-soundtouch/PKGBUILD @@ -23,7 +23,7 @@ prepare() { sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADER/' configure.ac patch -p1 -i ${srcdir}/0001-no-undefined-on.mingw.patch patch -p1 -i ${srcdir}/0003-fix-docdir.mingw.patch - + ./bootstrap } diff --git a/mingw-w64-sparsehash/PKGBUILD b/mingw-w64-sparsehash/PKGBUILD index 3d84438449..dc4df8a1f2 100644 --- a/mingw-w64-sparsehash/PKGBUILD +++ b/mingw-w64-sparsehash/PKGBUILD @@ -22,7 +22,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ - --prefix=${MINGW_PREFIX} + --prefix=${MINGW_PREFIX} make } diff --git a/mingw-w64-stxxl-git/PKGBUILD b/mingw-w64-stxxl-git/PKGBUILD index 500f2c4e6c..9ca65da3a8 100644 --- a/mingw-w64-stxxl-git/PKGBUILD +++ b/mingw-w64-stxxl-git/PKGBUILD @@ -45,7 +45,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make install - + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" install -Dm644 ../${_realname}/LICENSE_1_0.txt \ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE_1_0.txt" diff --git a/mingw-w64-swig/PKGBUILD b/mingw-w64-swig/PKGBUILD index a7ac1fe321..6318bd9dbc 100644 --- a/mingw-w64-swig/PKGBUILD +++ b/mingw-w64-swig/PKGBUILD @@ -23,7 +23,7 @@ sha1sums=('e68e1fbdf92ae34c0949c9babef10c8800377b93' prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-relocate.patch - + ./autogen.sh } diff --git a/mingw-w64-szip/PKGBUILD b/mingw-w64-szip/PKGBUILD index 0ce3fd42c9..ac0523c225 100644 --- a/mingw-w64-szip/PKGBUILD +++ b/mingw-w64-szip/PKGBUILD @@ -30,7 +30,7 @@ prepare() { patch -p1 -i ${srcdir}/szip-default-import-suffix.patch patch -p1 -i ${srcdir}/szip-fix-install-docs.patch patch -p1 -i ${srcdir}/szip-fix-cmake-macros.patch - + # rename X.dll to X-0.dll echo "IF (BUILD_SHARED_LIBS)" >> CMakeLists.txt echo "SET_TARGET_PROPERTIES (\${SZIP_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt diff --git a/mingw-w64-taglib/PKGBUILD b/mingw-w64-taglib/PKGBUILD index 629c970202..ca2377d960 100644 --- a/mingw-w64-taglib/PKGBUILD +++ b/mingw-w64-taglib/PKGBUILD @@ -64,7 +64,7 @@ package() { cd "${srcdir}/build-shared-${MINGW_CHOST}" make install - + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null diff --git a/mingw-w64-tcl/PKGBUILD b/mingw-w64-tcl/PKGBUILD index 04cd2f3175..e94738c516 100644 --- a/mingw-w64-tcl/PKGBUILD +++ b/mingw-w64-tcl/PKGBUILD @@ -70,7 +70,7 @@ package() { fi cd "${srcdir}/build-${MINGW_CHOST}" cp tclsh86${debug_suffix}.exe tclsh.exe - #PATH=.:$PATH + #PATH=.:$PATH make install INSTALL_ROOT="$pkgdir" cp "${pkgdir}${MINGW_PREFIX}/bin/tclsh86${debug_suffix}.exe" "${pkgdir}${MINGW_PREFIX}/bin/tclsh.exe" diff --git a/mingw-w64-termcap/PKGBUILD b/mingw-w64-termcap/PKGBUILD index cb24df979e..dac4ebf1b0 100644 --- a/mingw-w64-termcap/PKGBUILD +++ b/mingw-w64-termcap/PKGBUILD @@ -25,12 +25,12 @@ build() { [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} + --target=${MINGW_CHOST} make # Build a shared library. No need for -fPIC on Windows. diff --git a/mingw-w64-tesseract-ocr-eng/PKGBUILD b/mingw-w64-tesseract-ocr-eng/PKGBUILD index 1c5bec8b33..f4d5f74a86 100644 --- a/mingw-w64-tesseract-ocr-eng/PKGBUILD +++ b/mingw-w64-tesseract-ocr-eng/PKGBUILD @@ -36,7 +36,7 @@ build() { --target=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ LIBLEPT_HEADERSDIR=${MINGW_PREFIX}/include \ - + make } diff --git a/mingw-w64-tesseract-ocr-osd/PKGBUILD b/mingw-w64-tesseract-ocr-osd/PKGBUILD index 2084619be8..eaad77a5c1 100644 --- a/mingw-w64-tesseract-ocr-osd/PKGBUILD +++ b/mingw-w64-tesseract-ocr-osd/PKGBUILD @@ -35,7 +35,7 @@ build() { --target=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ LIBLEPT_HEADERSDIR=${MINGW_PREFIX}/include \ - + make } diff --git a/mingw-w64-tesseract-ocr/PKGBUILD b/mingw-w64-tesseract-ocr/PKGBUILD index d0e7e6690f..46f8a01368 100644 --- a/mingw-w64-tesseract-ocr/PKGBUILD +++ b/mingw-w64-tesseract-ocr/PKGBUILD @@ -46,7 +46,7 @@ build() { --prefix=${MINGW_PREFIX} \ LIBLEPT_HEADERSDIR=${MINGW_PREFIX}/include \ "${extra_config[@]}" - + make } diff --git a/mingw-w64-tinyxml2/PKGBUILD b/mingw-w64-tinyxml2/PKGBUILD index 59bfcf3351..fa85d17d5b 100644 --- a/mingw-w64-tinyxml2/PKGBUILD +++ b/mingw-w64-tinyxml2/PKGBUILD @@ -23,7 +23,7 @@ build() { [[ -d $srcdir/build-${MINGW_CHOST} ]] && rm -rf $srcdir/build-${MINGW_CHOST} mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} - + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ @@ -36,7 +36,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make install - + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null diff --git a/mingw-w64-tk/PKGBUILD b/mingw-w64-tk/PKGBUILD index b83d5534a7..21fad76789 100644 --- a/mingw-w64-tk/PKGBUILD +++ b/mingw-w64-tk/PKGBUILD @@ -73,7 +73,7 @@ package() { done ) chmod a-x "${pkgdir}${MINGW_PREFIX}/lib/"*/pkgIndex.tcl - + local _libver=${pkgver%.*} _libver=${_libver//./} sed -i \ diff --git a/mingw-w64-tktable/PKGBUILD b/mingw-w64-tktable/PKGBUILD index b26d796a7d..fae889fa6f 100644 --- a/mingw-w64-tktable/PKGBUILD +++ b/mingw-w64-tktable/PKGBUILD @@ -8,7 +8,7 @@ _pkgnameactual=Tktable pkgver=2.10 pkgrel=2 pkgdesc="A full-featured 2D table widget for Tk." -arch=('any') +arch=('any') url="http://tktable.sourceforge.net/" license=('custom') depends=("${MINGW_PACKAGE_PREFIX}-tk") diff --git a/mingw-w64-tolua/PKGBUILD b/mingw-w64-tolua/PKGBUILD index 810567a73f..80ac979bd2 100644 --- a/mingw-w64-tolua/PKGBUILD +++ b/mingw-w64-tolua/PKGBUILD @@ -5,9 +5,9 @@ _realname=tolua pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.2.0 pkgrel=2 -pkgdesc="A tool that greatly simplifies the integration of C/C++ code with Lua. (mingw-w64)" +pkgdesc="A tool that greatly simplifies the integration of C/C++ code with Lua. (mingw-w64)" arch=('any') -url="http://www.tecgraf.puc-rio.br/~celes/tolua/" +url="http://www.tecgraf.puc-rio.br/~celes/tolua/" license=('MIT') depends=("${MINGW_PACKAGE_PREFIX}-lua") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") diff --git a/mingw-w64-twolame/PKGBUILD b/mingw-w64-twolame/PKGBUILD index 6661c5782a..5cbad33f59 100644 --- a/mingw-w64-twolame/PKGBUILD +++ b/mingw-w64-twolame/PKGBUILD @@ -32,7 +32,7 @@ prepare() { patch -p1 -i ${srcdir}/0003-binary-stdin.all.patch patch -p1 -i ${srcdir}/0004-no-need-for-dllexport.mingw.patch patch -p1 -i ${srcdir}/0005-silent.mingw.patch - + WANT_AUTOMAKE=latest autoreconf -fi } diff --git a/mingw-w64-uhttpmock/PKGBUILD b/mingw-w64-uhttpmock/PKGBUILD index 2522df07f2..807aa381b6 100644 --- a/mingw-w64-uhttpmock/PKGBUILD +++ b/mingw-w64-uhttpmock/PKGBUILD @@ -30,7 +30,7 @@ prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-wsock.patch patch -p1 -i ${srcdir}/0002-give-cc-to-gir-scanner.all.patch - + autoreconf -fi } diff --git a/mingw-w64-unbound/PKGBUILD b/mingw-w64-unbound/PKGBUILD index 19943df7e5..6fd34dcc4f 100644 --- a/mingw-w64-unbound/PKGBUILD +++ b/mingw-w64-unbound/PKGBUILD @@ -56,7 +56,7 @@ package() { find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm install -Dm644 ${srcdir}/${_realname}-${pkgver}/doc/example.conf.in "${pkgdir}${MINGW_PREFIX}/etc/unbound/unbound.conf.example" install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" - + for ff in anchor-update unbound-service-install unbound-service-remove; do install -Dm755 ${ff}.exe "${pkgdir}${MINGW_PREFIX}/bin/" install -Dm644 ${srcdir}/manifest ${pkgdir}${MINGW_PREFIX}/bin/${ff}.exe.manifest diff --git a/mingw-w64-vcdimager/PKGBUILD b/mingw-w64-vcdimager/PKGBUILD index 177975eb6f..65320beff8 100644 --- a/mingw-w64-vcdimager/PKGBUILD +++ b/mingw-w64-vcdimager/PKGBUILD @@ -25,7 +25,7 @@ prepare() { patch -p1 -i "$srcdir/001-vcdimager-0.7.24-libcdio-0.83.patch" patch -p1 -i "$srcdir/002-no-undefined.patch" patch -p1 -i "$srcdir/003-static-vcd-lib.patch" - + autoreconf -fvi } diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 9cad4db6db..45420b7097 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -67,7 +67,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-a52dec" #"${MINGW_PACKAGE_PREFIX}-zvbi" #"${MINGW_PACKAGE_PREFIX}-libupnp" #"${MINGW_PACKAGE_PREFIX}-libtar" - + ) makedepends=( "${MINGW_PACKAGE_PREFIX}-gcc" @@ -182,7 +182,7 @@ if [ "${_variant}" = "winrt" ]; then CFLAGS+=" -D_WIN32_WINNT=0x602 -DWINVER=0x602 -DWINSTORECOMPAT -D_UNICODE -DUNICODE -DHAVE_WINRT" CFLAGS+=" -DNDEBUG -DWINAPI_FAMILY=WINAPI_FAMILY_APP -DHAVE_WINRT" EXTRA_LDFLAGS+=" -lnormaliz -lwinstorecompat -lruntimeobject" - + ${MINGW_CHOST}-gcc -dumpspecs | sed -e 's/-lmingwex/-lwinstorecompat -lmingwex -lwinstorecompat -lole32 -lruntimeobject/' -e 's/-lmsvcrt/-lmsvcr110/' > newspecfile NEWSPECFILE="`pwd`/newspecfile" diff --git a/mingw-w64-webkitgtk2/PKGBUILD b/mingw-w64-webkitgtk2/PKGBUILD index 69d31191d1..6d998d155d 100644 --- a/mingw-w64-webkitgtk2/PKGBUILD +++ b/mingw-w64-webkitgtk2/PKGBUILD @@ -53,7 +53,7 @@ prepare() { patch -p1 -i ${srcdir}/webkitgtk-1.10.2-windows.patch patch -p1 -i ${srcdir}/bison3.patch sed -e "s|-licui18n|-licuin|g" -i configure.ac - + rm -rf autom4te.cache touch README INSTALL gtkdocize --copy > /dev/null 2>&1 @@ -64,7 +64,7 @@ build() { # Suppress a *lot* of gcc 4.8 warnings CPPFLAGS+=" -Wno-unused-local-typedefs" export lt_cv_deplibs_check_method='pass_all' - + mkdir -p "${srcdir}/build-${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" @@ -81,7 +81,7 @@ build() { --enable-filters --enable-video \ --with-font-backend=freetype --enable-3D-transforms \ --enable-geolocation --enable-web-sockets --enable-mathml - + make } diff --git a/mingw-w64-webkitgtk3/PKGBUILD b/mingw-w64-webkitgtk3/PKGBUILD index bcb8e79431..2fb7b3191a 100644 --- a/mingw-w64-webkitgtk3/PKGBUILD +++ b/mingw-w64-webkitgtk3/PKGBUILD @@ -104,7 +104,7 @@ prepare() { patch -p1 -i ${srcdir}/0029-pass-python-and-cflags-to-girscanner.patch autoreconf --verbose --install -I Source/autotools - + rm -rf ${srcdir}/build-gtk{2,3} mkdir -p ${srcdir}/build-gtk{2,3} } diff --git a/mingw-w64-wineditline/PKGBUILD b/mingw-w64-wineditline/PKGBUILD index e1a7e1801c..43cc5001f9 100644 --- a/mingw-w64-wineditline/PKGBUILD +++ b/mingw-w64-wineditline/PKGBUILD @@ -24,7 +24,7 @@ prepare() { patch -p1 -i ${srcdir}/001-fix-installing.patch patch -p1 -i ${srcdir}/002-fix-exports.patch patch -p1 -i ${srcdir}/003-dont-link-with-def.patch - + rm -rf bin32 bin64 lib32 lib64 } @@ -42,6 +42,6 @@ build() { package() { cd ${srcdir}/build-${MINGW_CHOST} make install - + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-winico/PKGBUILD b/mingw-w64-winico/PKGBUILD index baa7fd9d53..6b4dc24d81 100644 --- a/mingw-w64-winico/PKGBUILD +++ b/mingw-w64-winico/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.6 pkgrel=1 pkgdesc='Tk extension for Windows for enhanced icon handling and manipulation of an icon in the Windows taskbar and system tray.' -arch=('any') +arch=('any') url="http://tktable.sourceforge.net/" license=('custom') depends=("${MINGW_PACKAGE_PREFIX}-tk") diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index f4ce6016fa..ef32cb9973 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -37,7 +37,7 @@ prepare() { build() { mkdir -p "${srcdir}"/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + declare -a extra_config if check_option "debug" "y"; then @@ -81,12 +81,12 @@ package_winpthreads() { cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR=${pkgdir} install - + mkdir -p ${pkgdir}${MINGW_PREFIX}/${MINGW_CHOST} mv ${pkgdir}${MINGW_PREFIX}/include ${pkgdir}${MINGW_PREFIX}/${MINGW_CHOST}/ mv ${pkgdir}${MINGW_PREFIX}/lib ${pkgdir}${MINGW_PREFIX}/${MINGW_CHOST}/ rm -rf ${pkgdir}${MINGW_PREFIX}/bin - + _install_licenses ${_realname} } @@ -97,7 +97,7 @@ package_libwinpthread() { cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR=${pkgdir} install - + rm -rf ${pkgdir}${MINGW_PREFIX}/include rm -rf ${pkgdir}${MINGW_PREFIX}/lib diff --git a/mingw-w64-winstorecompat-git/PKGBUILD b/mingw-w64-winstorecompat-git/PKGBUILD index 96fce07d56..d046b2e270 100644 --- a/mingw-w64-winstorecompat-git/PKGBUILD +++ b/mingw-w64-winstorecompat-git/PKGBUILD @@ -26,7 +26,7 @@ prepare() { build() { mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + ${srcdir}/${_realname}/mingw-w64-libraries/winstorecompat/configure \ --prefix=${MINGW_PREFIX} \ @@ -40,7 +40,7 @@ build() { package() { cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR=${pkgdir} install - + mkdir -p ${pkgdir}${MINGW_PREFIX}/${MINGW_CHOST} mv ${pkgdir}${MINGW_PREFIX}/lib ${pkgdir}${MINGW_PREFIX}/${MINGW_CHOST}/ } diff --git a/mingw-w64-wxPython/PKGBUILD b/mingw-w64-wxPython/PKGBUILD index e73a64e625..2038333e11 100644 --- a/mingw-w64-wxPython/PKGBUILD +++ b/mingw-w64-wxPython/PKGBUILD @@ -29,7 +29,7 @@ prepare() { patch -p1 -i ${srcdir}/001-mingw-python.patch patch -p1 -i ${srcdir}/002-system-includes.patch patch -p1 -i ${srcdir}/003-fix-cast-error.patch - + #cd ${srcdir} find . -type f -exec sed -i 's/env python/env python2/' {} \; #sed -i 's/sys.exit(1)//' Editra-${_editraver}/setup.py @@ -68,16 +68,16 @@ package() { MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=;--install-headers=;-install-data=" \ ${MINGW_PREFIX}/bin/python2 setup.py NO_HEADERS=0 WXPORT=msw BUILD_ACTIVEX=0 UNICODE=1 COMPILER=mingw32 \ install --prefix=${MINGW_PREFIX} --root="$pkgdir" - + install -D -m644 ../docs/licence.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" - + pushd ${MINGW_PREFIX} > /dev/null local _dir=`pwd -W` popd > /dev/null for _f in ${pkgdir}${MINGW_PREFIX}/bin/*; do sed -e "s|${_dir}|${MINGW_PREFIX}|g" -i ${_f} done - + #cd "${srcdir}/Editra-${_editraver}" #MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ #${MINGW_PREFIX}/bin/python2 setup.py install --root="${pkgdir}" --prefix=${MINGW_PREFIX} diff --git a/mingw-w64-x265/PKGBUILD b/mingw-w64-x265/PKGBUILD index bc64747f3d..6f545f0e73 100644 --- a/mingw-w64-x265/PKGBUILD +++ b/mingw-w64-x265/PKGBUILD @@ -33,7 +33,7 @@ build() { package() { cd multicoreware-x265-*/build/msys make install - + pushd ${pkgdir}${MINGW_PREFIX} > /dev/null export PREFIX_WIN=`pwd -W` popd > /dev/null diff --git a/mingw-w64-xalan-c/PKGBUILD b/mingw-w64-xalan-c/PKGBUILD index 78e2dd78fb..e4d9f74a65 100644 --- a/mingw-w64-xalan-c/PKGBUILD +++ b/mingw-w64-xalan-c/PKGBUILD @@ -33,7 +33,7 @@ build() { CPPFLAGS+="" CFLAGS+=" -DNDEBUG -mthreads" LDFLAGS+=" -mthreads" - LIBS+=" -mthreads" + LIBS+=" -mthreads" export XALANCROOT="${srcdir}"/${_realname}-${pkgver}/c export ICUROOT=${MINGW_PREFIX} @@ -60,7 +60,7 @@ package() { CPPFLAGS+="" CFLAGS+=" -DNDEBUG -mthreads" LDFLAGS+=" -mthreads" - LIBS+=" -mthreads" + LIBS+=" -mthreads" export XALANCROOT="${srcdir}"/${_realname}-${pkgver}/c export ICUROOT=${MINGW_PREFIX} diff --git a/mingw-w64-xmlada-gpl/PKGBUILD b/mingw-w64-xmlada-gpl/PKGBUILD index d0628df211..f5581a4c79 100644 --- a/mingw-w64-xmlada-gpl/PKGBUILD +++ b/mingw-w64-xmlada-gpl/PKGBUILD @@ -28,7 +28,7 @@ build() { --host=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --enable-shared - make + make } package() { @@ -44,7 +44,7 @@ package() { rm -rf ${pkgdir}${MINGW_PREFIX}/share/doc # Copy License Files - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -pf ${srcdir}/${_basename}-$pkgver-src/COPYING* \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname } diff --git a/mingw-w64-xpm-nox/PKGBUILD b/mingw-w64-xpm-nox/PKGBUILD index 1c68ae0877..5621c4ba9b 100644 --- a/mingw-w64-xpm-nox/PKGBUILD +++ b/mingw-w64-xpm-nox/PKGBUILD @@ -26,7 +26,7 @@ prepare() { build() { cp -r "${srcdir}"/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - + make prefix=${MINGW_PREFIX} CC=${MINGW_CHOST}-gcc } diff --git a/mingw-w64-yaml-cpp/PKGBUILD b/mingw-w64-yaml-cpp/PKGBUILD index a517ea63e6..a710f4c26f 100644 --- a/mingw-w64-yaml-cpp/PKGBUILD +++ b/mingw-w64-yaml-cpp/PKGBUILD @@ -57,5 +57,5 @@ package() { popd > /dev/null cd ${pkgdir}${MINGW_PREFIX} - sed -i "s|$PREFIX_WIN|$MINGW_PREFIX|g" lib/pkgconfig/yaml-cpp.pc + sed -i "s|$PREFIX_WIN|$MINGW_PREFIX|g" lib/pkgconfig/yaml-cpp.pc } diff --git a/mingw-w64-yaml-cpp0.3/PKGBUILD b/mingw-w64-yaml-cpp0.3/PKGBUILD index 6b36442fb6..1e577fda32 100644 --- a/mingw-w64-yaml-cpp0.3/PKGBUILD +++ b/mingw-w64-yaml-cpp0.3/PKGBUILD @@ -58,5 +58,5 @@ package() { popd > /dev/null cd ${pkgdir}${MINGW_PREFIX} - sed -i "s|$PREFIX_WIN|$MINGW_PREFIX|g" lib/pkgconfig/yaml-cpp.pc + sed -i "s|$PREFIX_WIN|$MINGW_PREFIX|g" lib/pkgconfig/yaml-cpp.pc } diff --git a/mingw-w64-zlib/PKGBUILD b/mingw-w64-zlib/PKGBUILD index 1e80a287ac..ec4ba9e7d2 100644 --- a/mingw-w64-zlib/PKGBUILD +++ b/mingw-w64-zlib/PKGBUILD @@ -39,7 +39,7 @@ prepare() { # Replace minizip with external rm -rf ${srcdir}/${_realname}-${pkgver}/contrib/minizip cp -r ${srcdir}/minizip/ ${srcdir}/${_realname}-${pkgver}/contrib - + cd ${srcdir}/${_realname}-${pkgver} grep -A 24 '^ Copyright' zlib.h > LICENSE @@ -60,7 +60,7 @@ build() { cd ${srcdir}/${_realname}-${pkgver} CHOST=${MINGW_CHOST} ./configure --prefix=${MINGW_PREFIX} --shared make -j1 all - + # build minizip pushd contrib/minizip > /dev/null autoreconf -fi From 52eaba964b1b42ea13e6721d9578946f3c9711be Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 10 Feb 2015 00:42:30 +0300 Subject: [PATCH 0502/2060] gdal: Fix poppler 0.31 compatibility --- .../02-poppler-0_31-compatibility.patch | 134 ++++++++++++++++++ mingw-w64-gdal/PKGBUILD | 43 ++++-- 2 files changed, 165 insertions(+), 12 deletions(-) create mode 100644 mingw-w64-gdal/02-poppler-0_31-compatibility.patch diff --git a/mingw-w64-gdal/02-poppler-0_31-compatibility.patch b/mingw-w64-gdal/02-poppler-0_31-compatibility.patch new file mode 100644 index 0000000000..fc598573eb --- /dev/null +++ b/mingw-w64-gdal/02-poppler-0_31-compatibility.patch @@ -0,0 +1,134 @@ +From eca710c9648eb204ed424902b996bdccf91f782c Mon Sep 17 00:00:00 2001 +From: Even Rouault +Date: Sat, 7 Feb 2015 21:47:35 +0000 +Subject: [PATCH] PDF: add compatibility with Poppler 0.31.0 + +git-svn-id: https://svn.osgeo.org/gdal/trunk@28438 f0d54148-0727-0410-94bb-9a71ac55c965 +--- + gdal/frmts/pdf/pdfdataset.cpp | 7 ++--- + gdal/frmts/pdf/pdfio.cpp | 59 +++++++++++++++++++++++++++++++++++++++++-- + gdal/frmts/pdf/pdfio.h | 4 +++ + 3 files changed, 63 insertions(+), 7 deletions(-) + +diff --git a/gdal/frmts/pdf/pdfdataset.cpp b/gdal/frmts/pdf/pdfdataset.cpp +index e32356c..06624a3 100644 +--- a/gdal/frmts/pdf/pdfdataset.cpp ++++ b/gdal/frmts/pdf/pdfdataset.cpp +@@ -128,12 +128,9 @@ class GDALPDFOutputDev : public SplashOutputDev + + public: + GDALPDFOutputDev(SplashColorMode colorModeA, int bitmapRowPadA, +- GBool reverseVideoA, SplashColorPtr paperColorA, +- GBool bitmapTopDownA = gTrue, +- GBool allowAntialiasA = gTrue) : ++ GBool reverseVideoA, SplashColorPtr paperColorA) : + SplashOutputDev(colorModeA, bitmapRowPadA, +- reverseVideoA, paperColorA, +- bitmapTopDownA, allowAntialiasA), ++ reverseVideoA, paperColorA), + bEnableVector(TRUE), + bEnableText(TRUE), + bEnableBitmap(TRUE) {} +diff --git a/gdal/frmts/pdf/pdfio.cpp b/gdal/frmts/pdf/pdfio.cpp +index 3b70bd0..888856c 100644 +--- a/gdal/frmts/pdf/pdfio.cpp ++++ b/gdal/frmts/pdf/pdfio.cpp +@@ -37,13 +37,25 @@ + + CPL_CVSID("$Id$"); + ++ ++#ifdef POPPLER_BASE_STREAM_HAS_TWO_ARGS ++/* Poppler 0.31.0 is the first one that needs to know the file size */ ++static vsi_l_offset VSIPDFFileStreamGetSize(VSILFILE* f) ++{ ++ VSIFSeekL(f, 0, SEEK_END); ++ vsi_l_offset nSize = VSIFTellL(f); ++ VSIFSeekL(f, 0, SEEK_SET); ++ return nSize; ++} ++#endif ++ + /************************************************************************/ + /* VSIPDFFileStream() */ + /************************************************************************/ + + VSIPDFFileStream::VSIPDFFileStream(VSILFILE* f, const char* pszFilename, Object *dictA): + #ifdef POPPLER_BASE_STREAM_HAS_TWO_ARGS +- BaseStream(dictA, 0) ++ BaseStream(dictA, (setPos_offset_type)VSIPDFFileStreamGetSize(f)) + #else + BaseStream(dictA) + #endif +@@ -193,7 +205,7 @@ int VSIPDFFileStream::FillBuffer() + /* getChar() */ + /************************************************************************/ + +-/* The unoptimized version performs a bit well since we must go through */ ++/* The unoptimized version performs a bit less since we must go through */ + /* the whole virtual I/O chain for each character reading. We save a few */ + /* percent with this extra internal caching */ + +@@ -324,4 +336,47 @@ void VSIPDFFileStream::moveStart(moveStart_delta_type delta) + nPosInBuffer = nBufferLength = -1; + } + ++/************************************************************************/ ++/* hasGetChars() */ ++/************************************************************************/ ++ ++GBool VSIPDFFileStream::hasGetChars() ++{ ++ return true; ++} ++ ++/************************************************************************/ ++/* getChars() */ ++/************************************************************************/ ++ ++int VSIPDFFileStream::getChars(int nChars, Guchar *buffer) ++{ ++ int nRead = 0; ++ while (nRead < nChars) ++ { ++ int nToRead = nChars - nRead; ++ if (nPosInBuffer == nBufferLength) ++ { ++ if (!bLimited && nToRead > BUFFER_SIZE) ++ { ++ int nJustRead = (int) VSIFReadL(buffer + nRead, 1, nToRead, f); ++ nPosInBuffer = nBufferLength = -1; ++ nCurrentPos += nJustRead; ++ nRead += nJustRead; ++ break; ++ } ++ else if (!FillBuffer() || nPosInBuffer >= nBufferLength) ++ break; ++ } ++ if( nToRead > nBufferLength - nPosInBuffer ) ++ nToRead = nBufferLength - nPosInBuffer; ++ ++ memcpy( buffer + nRead, abyBuffer + nPosInBuffer, nToRead ); ++ nPosInBuffer += nToRead; ++ nCurrentPos += nToRead; ++ nRead += nToRead; ++ } ++ return nRead; ++} ++ + #endif +diff --git a/gdal/frmts/pdf/pdfio.h b/gdal/frmts/pdf/pdfio.h +index 4a1b921..d31da90 100644 +--- a/gdal/frmts/pdf/pdfio.h ++++ b/gdal/frmts/pdf/pdfio.h +@@ -93,6 +93,10 @@ class VSIPDFFileStream: public BaseStream + virtual void close(); + + private: ++ /* Added in poppler 0.15.0 */ ++ virtual GBool hasGetChars(); ++ virtual int getChars(int nChars, Guchar *buffer); ++ + VSIPDFFileStream *poParent; + GooString *poFilename; + VSILFILE *f; diff --git a/mingw-w64-gdal/PKGBUILD b/mingw-w64-gdal/PKGBUILD index b69b889a60..dbca17409e 100644 --- a/mingw-w64-gdal/PKGBUILD +++ b/mingw-w64-gdal/PKGBUILD @@ -6,30 +6,49 @@ _realname=gdal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.11.1 -pkgrel=3 +pkgrel=4 pkgdesc="A translator library for raster geospatial data formats (mingw-w64)" arch=('any') url="http://www.gdal.org/" license=('custom') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "automake" "autoconf") -depends=("${MINGW_PACKAGE_PREFIX}-geos" "${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-libiconv" - "${MINGW_PACKAGE_PREFIX}-giflib" "${MINGW_PACKAGE_PREFIX}-libjpeg" "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-libgeotiff" "${MINGW_PACKAGE_PREFIX}-libwebp" - "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-libfreexl" "${MINGW_PACKAGE_PREFIX}-pcre" - "${MINGW_PACKAGE_PREFIX}-cfitsio" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-jasper" - "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-proj" "${MINGW_PACKAGE_PREFIX}-sqlite3" - "${MINGW_PACKAGE_PREFIX}-libspatialite" "${MINGW_PACKAGE_PREFIX}-hdf5" "${MINGW_PACKAGE_PREFIX}-poppler" - "${MINGW_PACKAGE_PREFIX}-postgresql" "${MINGW_PACKAGE_PREFIX}-xerces-c") -options=(strip) +depends=("${MINGW_PACKAGE_PREFIX}-cfitsio" + "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-geos" + "${MINGW_PACKAGE_PREFIX}-giflib" + "${MINGW_PACKAGE_PREFIX}-hdf5" + "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-libfreexl" + "${MINGW_PACKAGE_PREFIX}-libgeotiff" + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libspatialite" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-pcre" + "${MINGW_PACKAGE_PREFIX}-poppler" + "${MINGW_PACKAGE_PREFIX}-postgresql" + "${MINGW_PACKAGE_PREFIX}-proj" + "${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-xerces-c" + "${MINGW_PACKAGE_PREFIX}-xz") +options=(strip staticlibs) source=(http://download.osgeo.org/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz - 01-sqlite387-r27950.patch) + 01-sqlite387-r27950.patch + 02-poppler-0_31-compatibility.patch) sha256sums=('f46b5944a8cabc8516673f231f466131cdfd2cdc6677dbee5d96ec7fc58a3340' - 'be80696d6520d7a6c8fda0b3fc3f66c8b3415c371f76c8e2bfb63d3a544b1c1e') + 'be80696d6520d7a6c8fda0b3fc3f66c8b3415c371f76c8e2bfb63d3a544b1c1e' + '76fe85f69ac13944aa4cf1b0fea80077806591b19040c825cc86ed06257268ac') prepare() { cd "${srcdir}/${_realname}-$pkgver" patch -p1 -i ${srcdir}/01-sqlite387-r27950.patch + patch -p2 -i ${srcdir}/02-poppler-0_31-compatibility.patch + sed -i "s|/usr/local|${MINGW_PREFIX}|g" configure.in sed -i "s|/usr|${MINGW_PREFIX}|g" configure.in sed -i "s|mandir='\${prefix}/man'|mandir='\${prefix}/share/man'|g" configure.in From 3cf18c0e581ac2c3f0f2a9c9cbed6f646dc99d73 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 10 Feb 2015 00:14:47 +0000 Subject: [PATCH 0503/2060] gcc: Fix last patch --- .../170-Add--mcrtdll-option-for-msvcrt-stubbing.patch | 4 ++-- mingw-w64-gcc/PKGBUILD | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch b/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch index 391bc3d525..eff9c4d9dc 100644 --- a/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch +++ b/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch @@ -19,7 +19,7 @@ diff -urN gcc-4.9.2.orig/gcc/config/i386/mingw32.h gcc-4.9.2/gcc/config/i386/min "%{mthreads:-lmingwthrd} -lmingw32 \ "SHARED_LIBGCC_SPEC" \ - -lmoldname -lmingwex -lmsvcrt" -+ -lmoldname -lmingwex %{!mcrtdll:-lmsvcrt}%{mcrtdll=*:-l%*}" ++ -lmoldname -lmingwex %{!mcrtdll=*:-lmsvcrt}%{mcrtdll=*:-l%*}" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ @@ -31,7 +31,7 @@ diff -urN gcc-4.9.2.orig/gcc/config/i386/mingw32.h.src gcc-4.9.2/gcc/config/i386 "%{mthreads:-lmingwthrd} -lmingw32 \ "SHARED_LIBGCC_SPEC" \ - -lmoldname -lmingwex -lmsvcrt" -+ -lmoldname -lmingwex %{!!mcrtdll=*:-lmsvcrt}%{mcrtdll=*:-l%*}" ++ -lmoldname -lmingwex %{!mcrtdll=*:-lmsvcrt}%{mcrtdll=*:-l%*}" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 60566a2ede..d72eb00991 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -64,7 +64,7 @@ md5sums=('4df8ee253b7f3863ad0b86359cd39c43' 'c9967332940eb2b23820faeb48db6e72' '9e07f25b8813191eebd7fda684b1e2dd' '60fdccbd072e2b2e724ff879d31ec57e' - 'fb6ed4491a78945b8d7bea4e3eb61fb5' + '39c6036d53340b9aeacc00dcfd9fd388' '347336d5a318e5e8b3cde29e9174413c' 'bf00d36f0d6bfc1fcb461c1b99461be4' '40cb437805e2f7a006aa0d0c3098ab0f' @@ -87,7 +87,7 @@ prepare() { cd ${srcdir}/${_realname}-${pkgver} #remove files the patches will create (so they aren't in the way the 2nd time round) - rm -f intl/canonicalize.c intl/relocatex.c intl/relocatex.h > /dev/null 2>&1 | true + rm -f intl/canonicalize.c intl/relocatex.c intl/relocatex.h > /dev/null 2>&1 || true #do not install libiberty sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in From 6ca575254b6a6706c5409bb4ddbe41ca58090835 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Tue, 10 Feb 2015 17:37:15 -0200 Subject: [PATCH 0504/2060] Some small fixes. * Some packages were using ${pkgname} instead of ${_realname} for license paths. * libxml2: Remove the Copyright file as this is the same as COPYING. * breakpad: Adjust maintainer/contributor lines. * gtk2: Specify license as LGPL2.1+. --- mingw-w64-atom-editor/PKGBUILD | 4 ++-- mingw-w64-breakpad-svn/PKGBUILD | 4 +++- mingw-w64-docbook-xsl/PKGBUILD | 4 ++-- mingw-w64-gtk2/PKGBUILD | 8 ++++++-- mingw-w64-headers-git/PKGBUILD | 8 ++++---- mingw-w64-libxml2/PKGBUILD | 4 ++-- mingw-w64-openshadinglanguage-git/PKGBUILD | 6 +++--- mingw-w64-python-docutils/PKGBUILD | 10 +++++----- mingw-w64-speex/PKGBUILD | 4 ++-- mingw-w64-waf/PKGBUILD | 4 ++-- 10 files changed, 31 insertions(+), 25 deletions(-) diff --git a/mingw-w64-atom-editor/PKGBUILD b/mingw-w64-atom-editor/PKGBUILD index d29ff0c9d6..aaf5c690ed 100644 --- a/mingw-w64-atom-editor/PKGBUILD +++ b/mingw-w64-atom-editor/PKGBUILD @@ -3,7 +3,7 @@ _realname=atom-editor pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=r18372.d4f7e71 -pkgrel=1 +pkgrel=2 pkgdesc='Cross-platform desktop application shell (mingw-w64)' source=("${_realname}-${CARCH}"::"git://github.com/atom/atom#branch=master") arch=('any') @@ -57,7 +57,7 @@ package() { install -Dm644 resources/linux/Atom.desktop "${INSTALL_PREFIX}/share/applications/Atom.desktop" install -Dm644 resources/atom.png "${INSTALL_PREFIX}/share/pixmaps/atom.png" - install -Dm644 LICENSE.md "${INSTALL_PREFIX}/share/licenses/$pkgname/LICENSE.md" + install -Dm644 LICENSE.md "${INSTALL_PREFIX}/share/licenses/${_realname}/LICENSE.md" } md5sums=('SKIP') diff --git a/mingw-w64-breakpad-svn/PKGBUILD b/mingw-w64-breakpad-svn/PKGBUILD index 6f078d4a71..318d797642 100644 --- a/mingw-w64-breakpad-svn/PKGBUILD +++ b/mingw-w64-breakpad-svn/PKGBUILD @@ -1,4 +1,6 @@ -# Maintainer: Renato Silva +# Maintainer: Jon Turney +# Contributor: Renato Silva +# Contributor: Alexey Pavlov _name=breakpad url='https://code.google.com/p/google-breakpad' diff --git a/mingw-w64-docbook-xsl/PKGBUILD b/mingw-w64-docbook-xsl/PKGBUILD index 8e36906acc..e3ee49630b 100644 --- a/mingw-w64-docbook-xsl/PKGBUILD +++ b/mingw-w64-docbook-xsl/PKGBUILD @@ -3,7 +3,7 @@ _realname=docbook-xsl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.78.1 -pkgrel=4 +pkgrel=5 pkgdesc='XML stylesheets for Docbook-xml transformations (mingw-w64)' arch=('any') license=('custom') @@ -31,6 +31,6 @@ package() { install -Dm644 catalog.xml ${_pkgroot}/catalog.xml install -dm755 ${pkgdir}${MINGW_PREFIX}/etc/xml - install -Dm644 COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${pkgname}/LICENSE + install -Dm644 COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-gtk2/PKGBUILD b/mingw-w64-gtk2/PKGBUILD index 34660e86be..1649703e9e 100644 --- a/mingw-w64-gtk2/PKGBUILD +++ b/mingw-w64-gtk2/PKGBUILD @@ -4,11 +4,15 @@ _realname=gtk2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.24.25 -pkgrel=2 +pkgrel=3 pkgdesc="GTK+ is a multi-platform toolkit (v2) (mingw-w64)" arch=('any') url="http://www.gtk.org" -license=(LGPL2) + +# According to gtk/gtk.h, this is either LGPL2+ or LGPL2.1+, if that makes any +# difference. So let's stick to LGPL2.1+ for safety. +license=(LGPL2.1+) + makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pkg-config" diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 117b4571f7..d7e8ab5465 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -6,7 +6,7 @@ replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" _ver_base=4.0.0 pkgver=4.0.0.4421.7a87c02 -pkgrel=1 +pkgrel=2 arch=('any') url="http://mingw-w64.sourceforge.net" license=('custom') @@ -50,7 +50,7 @@ package() { rm ${pkgdir}${MINGW_PREFIX}/${MINGW_CHOST}/include/pthread_unistd.h msg "Installing MinGW-w64 licenses" - install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/ddk/readme.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${pkgname}/ddk-readme.txt - install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/direct-x/COPYING.LIB ${pkgdir}${MINGW_PREFIX}/share/licenses/${pkgname}/direct-x-COPYING.LIB - install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/direct-x/readme.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${pkgname}/direct-x-readme.txt + install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/ddk/readme.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/ddk-readme.txt + install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/direct-x/COPYING.LIB ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/direct-x-COPYING.LIB + install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/direct-x/readme.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/direct-x-readme.txt } diff --git a/mingw-w64-libxml2/PKGBUILD b/mingw-w64-libxml2/PKGBUILD index 53afa3767c..5d1f5914f3 100644 --- a/mingw-w64-libxml2/PKGBUILD +++ b/mingw-w64-libxml2/PKGBUILD @@ -4,7 +4,7 @@ _realname=libxml2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.9.2 -pkgrel=4 +pkgrel=5 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="XML parsing library, version 2 (mingw-w64)" @@ -149,5 +149,5 @@ package() # License install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" - mv "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}-${pkgver}/Copyright" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/Copyright" + rm "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}-${pkgver}/Copyright" # This is the same file as COPYING } diff --git a/mingw-w64-openshadinglanguage-git/PKGBUILD b/mingw-w64-openshadinglanguage-git/PKGBUILD index 3ce4054987..424c038c9e 100644 --- a/mingw-w64-openshadinglanguage-git/PKGBUILD +++ b/mingw-w64-openshadinglanguage-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=openshadinglanguage pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" _ver_base=1.5 pkgver=1.5.1381.52ba3ae -pkgrel=1 +pkgrel=2 pkgdesc="Advanced shading language for production GI renderers (mingw-w64)" arch=('any') url="https://github.com/imageworks/OpenShadingLanguage/" @@ -96,8 +96,8 @@ package() { make install mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/OSL/ - mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/licenses/$pkgname - mv "${pkgdir}${MINGW_PREFIX}"/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/$pkgname # TODO: Tell upstream about this shit + mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname} + mv "${pkgdir}${MINGW_PREFIX}"/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname} # TODO: Tell upstream about this shit mv "${pkgdir}${MINGW_PREFIX}"/{CHANGES,README.md,INSTALL} "${pkgdir}${MINGW_PREFIX}"/share/OSL/ mv "${pkgdir}${MINGW_PREFIX}"/doc "${pkgdir}${MINGW_PREFIX}"/share/OSL/doc #mv "${pkgdir}${MINGW_PREFIX}"/shaders "${pkgdir}${MINGW_PREFIX}"/share/OSL/shadersE diff --git a/mingw-w64-python-docutils/PKGBUILD b/mingw-w64-python-docutils/PKGBUILD index 6183426676..1c4b322112 100644 --- a/mingw-w64-python-docutils/PKGBUILD +++ b/mingw-w64-python-docutils/PKGBUILD @@ -5,7 +5,7 @@ _realname=docutils pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.12 -pkgrel=2 +pkgrel=3 pkgdesc="Set of tools for processing plaintext docs into formats such as HTML, XML, or LaTeX (mingw-w64)" arch=('any') license=('custom') @@ -59,8 +59,8 @@ package_python3-docutils() { ln -s "$(basename $f)" "${pkgdir}${MINGW_PREFIX}/bin/$(basename $f .py)" done # setup license - install -D -m644 COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/COPYING.txt" - install -D -m644 licenses/python* "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/" + install -D -m644 COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.txt" + install -D -m644 licenses/python* "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/" } package_python2-docutils() { @@ -86,8 +86,8 @@ package_python2-docutils() { ln -s "$(basename $_f)" "${pkgdir}${MINGW_PREFIX}/bin/$(basename $_f .py)" done # setup license - install -D -m644 COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/COPYING.txt" - install -D -m644 licenses/python* "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/" + install -D -m644 COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.txt" + install -D -m644 licenses/python* "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/" } package_mingw-w64-i686-python2-docutils() { diff --git a/mingw-w64-speex/PKGBUILD b/mingw-w64-speex/PKGBUILD index 27b2e6bdd2..dcff12cf0f 100644 --- a/mingw-w64-speex/PKGBUILD +++ b/mingw-w64-speex/PKGBUILD @@ -4,7 +4,7 @@ _realname=speex pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2rc1 -pkgrel=2 +pkgrel=3 pkgdesc="A free codec for free speech (mingw-w64)" arch=('any') license=('BSD') @@ -34,5 +34,5 @@ build() { package() { cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR="${pkgdir}" install - install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE" + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-waf/PKGBUILD b/mingw-w64-waf/PKGBUILD index f382f07c51..5af488fe8a 100644 --- a/mingw-w64-waf/PKGBUILD +++ b/mingw-w64-waf/PKGBUILD @@ -4,7 +4,7 @@ _realname=waf pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.7.15 -pkgrel=1 +pkgrel=2 pkgdesc="General-purpose build system modelled after Scons (mingw-w64)" arch=('any') license=('BSD') @@ -52,6 +52,6 @@ package() { mv "${pkgdir}${MINGW_PREFIX}/bin/.waf3-$pkgver-"* "${pkgdir}${MINGW_PREFIX}/lib/waf/" setconf "${pkgdir}${MINGW_PREFIX}/bin/waf" base '"${MINGW_PREFIX}/lib/waf"' - install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE" + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From 0e37f53fbb87cb7ffae27c4c956eafe98d4558cb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 10 Feb 2015 23:26:03 +0300 Subject: [PATCH 0505/2060] postgresql: Update to 9.4.1 --- mingw-w64-postgresql/PKGBUILD | 39 +++++++++----- .../postgresql-9.2.4-plperl-mingw.patch | 11 ---- .../postgresql-9.3.1-plpython-mingw.patch | 16 ------ ...stgresql-9.4.1-mingw-enable-readline.patch | 19 +++++++ .../postgresql-9.4.1-mingw-link.patch | 52 +++++++++++++++++++ .../postgresql-9.4.1-pl-perl.patch | 40 ++++++++++++++ .../postgresql-9.4.1-pl-python.patch | 48 +++++++++++++++++ .../postgresql-9.4.1-pl-tcl.patch | 48 +++++++++++++++++ 8 files changed, 233 insertions(+), 40 deletions(-) delete mode 100644 mingw-w64-postgresql/postgresql-9.2.4-plperl-mingw.patch delete mode 100644 mingw-w64-postgresql/postgresql-9.3.1-plpython-mingw.patch create mode 100644 mingw-w64-postgresql/postgresql-9.4.1-mingw-enable-readline.patch create mode 100644 mingw-w64-postgresql/postgresql-9.4.1-mingw-link.patch create mode 100644 mingw-w64-postgresql/postgresql-9.4.1-pl-perl.patch create mode 100644 mingw-w64-postgresql/postgresql-9.4.1-pl-python.patch create mode 100644 mingw-w64-postgresql/postgresql-9.4.1-pl-tcl.patch diff --git a/mingw-w64-postgresql/PKGBUILD b/mingw-w64-postgresql/PKGBUILD index a9e8ccf651..770d3ad7b4 100644 --- a/mingw-w64-postgresql/PKGBUILD +++ b/mingw-w64-postgresql/PKGBUILD @@ -2,7 +2,7 @@ _realname=postgresql pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=9.4.0 +pkgver=9.4.1 pkgrel=1 pkgdesc="Libraries for use with PostgreSQL (mingw-w64)" arch=('any') @@ -15,7 +15,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-readline" + #"${MINGW_PACKAGE_PREFIX}-readline" + #"${MINGW_PACKAGE_PREFIX}-wineditline" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-tcl" "${MINGW_PACKAGE_PREFIX}-libxslt" @@ -23,16 +24,27 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "winpty-git") options=('staticlibs' 'strip') source=("http://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2" - postgresql-9.2.4-plperl-mingw.patch - postgresql-9.3.1-plpython-mingw.patch) -md5sums=('8cd6e33e1f8d4d2362c8c08bd0e8802b' - '6a11681fbd19a3ccf8d41f7fbc9b4392' - '90aabb839c09ef93a1521daf97b63935') + postgresql-9.4.1-mingw-link.patch + postgresql-9.4.1-pl-perl.patch + postgresql-9.4.1-pl-python.patch + postgresql-9.4.1-pl-tcl.patch + postgresql-9.4.1-mingw-enable-readline.patch) +md5sums=('2cf30f50099ff1109d0aa517408f8eff' + '1d1499234e555afa688f645ef3825450' + '572932c6f0fc795aba4d5bb91e1fe4ba' + '381c984fc2eb2c22c35aed62bedeb7fa' + 'f4ebd4e26f7633354eee543690f2feb4' + 'd93f0fd678bf16adfe10dc04e6d86789') prepare() { cd ${srcdir}/postgresql-$pkgver - #patch -p1 -i ${srcdir}/postgresql-9.2.4-plperl-mingw.patch - patch -p1 -i ${srcdir}/postgresql-9.3.1-plpython-mingw.patch + patch -p1 -i ${srcdir}/postgresql-9.4.1-mingw-link.patch + patch -p1 -i ${srcdir}/postgresql-9.4.1-pl-perl.patch + patch -p1 -i ${srcdir}/postgresql-9.4.1-pl-python.patch + patch -p1 -i ${srcdir}/postgresql-9.4.1-pl-tcl.patch + #patch -p1 -i ${srcdir}/postgresql-9.4.1-mingw-enable-readline.patch + + autoreconf -fiv } build() { @@ -54,6 +66,7 @@ build() { --without-perl \ --with-tcl \ --with-tclconfig=${MINGW_PREFIX}/lib + #--with-libedit-preferred # Make DLL definition file visible during each arch build ln -s "${srcdir}/postgresql-$pkgver/src/interfaces/libpq/libpqdll.def" src/interfaces/libpq/ @@ -82,12 +95,12 @@ package() { mv "${pkgdir}${MINGW_PREFIX}/lib/"*.dll "${pkgdir}${MINGW_PREFIX}/bin/" # Rename the .a files to .dll.a as they're actually import libraries and not static libraries - for implib in "${pkgdir}${MINGW_PREFIX}/lib/"*.a; do - mv $implib ${implib/.a/.dll.a} - done + #for implib in "${pkgdir}${MINGW_PREFIX}/lib/"*.a; do + # mv $implib ${implib/.a/.dll.a} + #done # these headers are needed by the not-so-public headers of the interfaces - mkdir -p "${pkgdir}${MINGW_PREFIX}"/include/{libpq,postgresql/internal/libpq} + mkdir -p "${pkgdir}${MINGW_PREFIX}"/include/{libpq,postgresql/internal/libpq} install -m644 ${srcdir}/postgresql-${pkgver}/src/include/c.h "${pkgdir}${MINGW_PREFIX}/include/postgresql/internal/" install -m644 ${srcdir}/postgresql-${pkgver}/src/include/port.h "${pkgdir}${MINGW_PREFIX}/include/postgresql/internal/" install -m644 ${srcdir}/postgresql-${pkgver}/src/include/postgres_fe.h "${pkgdir}${MINGW_PREFIX}/include/postgresql/internal/" diff --git a/mingw-w64-postgresql/postgresql-9.2.4-plperl-mingw.patch b/mingw-w64-postgresql/postgresql-9.2.4-plperl-mingw.patch deleted file mode 100644 index e697794fef..0000000000 --- a/mingw-w64-postgresql/postgresql-9.2.4-plperl-mingw.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- postgresql-9.2.4/src/pl/plperl/GNUMakefile.orig 2013-05-13 14:18:22 +0300 -+++ postgresql-9.2.4/src/pl/plperl/GNUMakefile 2013-05-13 14:18:57 +0300 -@@ -19,7 +19,7 @@ - ifeq ($(PORTNAME), win32) - perl_archlibexp := $(subst \,/,$(perl_archlibexp)) - perl_privlibexp := $(subst \,/,$(perl_privlibexp)) --perl_lib := $(basename $(notdir $(wildcard $(perl_archlibexp)/CORE/perl[5-9]*.lib))) -+perl_lib := $(subst lib,,$(basename $(notdir $(wildcard $(perl_archlibexp)/CORE/libperl[5-9]*.a)))) - perl_embed_ldflags = -L$(perl_archlibexp)/CORE -l$(perl_lib) - override CPPFLAGS += -DPLPERL_HAVE_UID_GID - # Perl on win32 contains /* within comment all over the header file, diff --git a/mingw-w64-postgresql/postgresql-9.3.1-plpython-mingw.patch b/mingw-w64-postgresql/postgresql-9.3.1-plpython-mingw.patch deleted file mode 100644 index f810e67051..0000000000 --- a/mingw-w64-postgresql/postgresql-9.3.1-plpython-mingw.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- postgresql-9.4.0/src/pl/plpython/Makefile.orig 2014-12-27 09:52:55.043200000 +0400 -+++ postgresql-9.4.0/src/pl/plpython/Makefile 2014-12-27 09:54:53.591200000 +0400 -@@ -63,11 +63,8 @@ - - OBJS += libpython${pytverstr}.a - --libpython${pytverstr}.a: python${pytverstr}.def -- dlltool --dllname python${pytverstr}.dll --def python${pytverstr}.def --output-lib libpython${pytverstr}.a -- --python${pytverstr}.def: -- pexports $(PYTHONDLL) > $@ -+libpython${pytverstr}.a: -+ cp -f $(python_libdir)/libpython${python_version}.dll.a libpython${pytverstr}.a - - endif # win32 - diff --git a/mingw-w64-postgresql/postgresql-9.4.1-mingw-enable-readline.patch b/mingw-w64-postgresql/postgresql-9.4.1-mingw-enable-readline.patch new file mode 100644 index 0000000000..4445e8ac68 --- /dev/null +++ b/mingw-w64-postgresql/postgresql-9.4.1-mingw-enable-readline.patch @@ -0,0 +1,19 @@ +--- postgresql-9.4.1/configure.in.orig 2015-02-10 21:59:27.222800000 +0300 ++++ postgresql-9.4.1/configure.in 2015-02-10 22:00:30.637800000 +0300 +@@ -691,16 +691,6 @@ + # + PGAC_ARG_BOOL(with, readline, yes, + [do not use GNU Readline nor BSD Libedit for editing]) +-# readline on MinGW has problems with backslashes in psql and other bugs. +-# This is particularly a problem with non-US code pages. +-# Therefore disable its use until we understand the cause. 2004-07-20 +-if test "$PORTNAME" = "win32"; then +- if test "$with_readline" = yes; then +- AC_MSG_WARN([*** Readline does not work on MinGW --- disabling]) +- with_readline=no +- fi +-fi +- + + # + # Prefer libedit diff --git a/mingw-w64-postgresql/postgresql-9.4.1-mingw-link.patch b/mingw-w64-postgresql/postgresql-9.4.1-mingw-link.patch new file mode 100644 index 0000000000..86b57c6a3f --- /dev/null +++ b/mingw-w64-postgresql/postgresql-9.4.1-mingw-link.patch @@ -0,0 +1,52 @@ +--- postgresql-9.4.1/src/Makefile.shlib.orig 2015-02-10 19:14:10.984800000 +0300 ++++ postgresql-9.4.1/src/Makefile.shlib 2015-02-10 19:14:16.554000000 +0300 +@@ -86,7 +86,7 @@ + # Naming convention for dynamically loadable modules + shlib = $(NAME)$(DLSUFFIX) + endif +-stlib = lib$(NAME).a ++stlib = lib$(NAME).dll.a + + ifndef soname + # additional flags for backend modules +--- postgresql-9.4.1/src/backend/Makefile.orig 2015-02-10 21:01:34.928800000 +0300 ++++ postgresql-9.4.1/src/backend/Makefile 2015-02-10 21:03:43.819000000 +0300 +@@ -79,9 +79,9 @@ + LIBS += -lsecur32 + + postgres: $(OBJS) $(WIN32RES) +- $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) -Wl,--stack=$(WIN32_STACK_RLIMIT) -Wl,--export-all-symbols -Wl,--out-implib=libpostgres.a $(call expand_subsys,$(OBJS)) $(WIN32RES) $(LIBS) -o $@$(X) ++ $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) -Wl,--stack=$(WIN32_STACK_RLIMIT) -Wl,--export-all-symbols -Wl,--out-implib=libpostgres.dll.a $(call expand_subsys,$(OBJS)) $(WIN32RES) $(LIBS) -o $@$(X) + +-libpostgres.a: postgres ; ++libpostgres.dll.a: postgres ; + + endif # win32 + +@@ -207,7 +207,7 @@ + endif + ifeq ($(PORTNAME), win32) + ifeq ($(MAKE_DLL), true) +- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a' ++ $(INSTALL_DATA) libpostgres.dll.a '$(DESTDIR)$(libdir)/libpostgres.dll.a' + endif + endif + $(MAKE) -C catalog install-data +@@ -265,7 +265,7 @@ + endif + ifeq ($(PORTNAME), win32) + ifeq ($(MAKE_DLL), true) +- rm -f '$(DESTDIR)$(libdir)/libpostgres.a' ++ rm -f '$(DESTDIR)$(libdir)/libpostgres.dll.a' + endif + endif + $(MAKE) -C catalog uninstall-data +@@ -288,7 +288,7 @@ + rm -f postgres.dll libpostgres.a + endif + ifeq ($(PORTNAME), win32) +- rm -f postgres.dll libpostgres.a $(WIN32RES) ++ rm -f postgres.dll libpostgres.dll.a $(WIN32RES) + endif + + distclean: clean diff --git a/mingw-w64-postgresql/postgresql-9.4.1-pl-perl.patch b/mingw-w64-postgresql/postgresql-9.4.1-pl-perl.patch new file mode 100644 index 0000000000..dd8c2314f4 --- /dev/null +++ b/mingw-w64-postgresql/postgresql-9.4.1-pl-perl.patch @@ -0,0 +1,40 @@ +--- postgresql-9.4.1/src/pl/plperl/GNUmakefile.orig 2015-02-10 21:34:31.287600000 +0300 ++++ postgresql-9.4.1/src/pl/plperl/GNUmakefile 2015-02-10 21:35:06.732800000 +0300 +@@ -36,27 +36,6 @@ + + PERLCHUNKS = plc_perlboot.pl plc_trusted.pl + +-# Perl on win32 ships with import libraries only for Microsoft Visual C++, +-# which are not compatible with mingw gcc. Therefore we need to build a +-# new import library to link with. +-ifeq ($(PORTNAME), win32) +- +-perlwithver := $(subst -l,,$(filter -l%, $(perl_embed_ldflags))) +-PERLDLL := $(dir $(subst ',,$(PERL)))$(perlwithver).dll +-# we no longer want to include the original -l spec in SHLIB_LINK +-override perl_embed_ldflags := +- +-OBJS += lib$(perlwithver).a +- +-lib$(perlwithver).a: $(perlwithver).def +- dlltool --dllname $(perlwithver).dll --def $(perlwithver).def --output-lib lib$(perlwithver).a +- +-$(perlwithver).def: $(PERLDLL) +- pexports $^ > $@ +- +-endif # win32 +- +- + SHLIB_LINK = $(perl_embed_ldflags) + + REGRESS_OPTS = --dbname=$(PL_TESTDB) --load-extension=plperl --load-extension=plperlu +@@ -126,9 +105,6 @@ + clean distclean maintainer-clean: clean-lib + rm -f SPI.c Util.c $(OBJS) perlchunks.h plperl_opmask.h + rm -rf $(pg_regress_clean_files) +-ifeq ($(PORTNAME), win32) +- rm -f $(perlwithver).def +-endif + + else # can't build + diff --git a/mingw-w64-postgresql/postgresql-9.4.1-pl-python.patch b/mingw-w64-postgresql/postgresql-9.4.1-pl-python.patch new file mode 100644 index 0000000000..aa2aabda39 --- /dev/null +++ b/mingw-w64-postgresql/postgresql-9.4.1-pl-python.patch @@ -0,0 +1,48 @@ +--- postgresql-9.4.1/src/pl/plpython/Makefile.orig 2015-02-02 23:42:55.000000000 +0300 ++++ postgresql-9.4.1/src/pl/plpython/Makefile 2015-02-10 21:33:26.353400000 +0300 +@@ -27,8 +27,6 @@ + # and we have to remove -lpython from the link since we are building our own + ifeq ($(PORTNAME), win32) + shared_libpython = yes +-python_includespec := $(subst \,/,$(python_includespec)) +-override python_libspec = + endif + + # If we don't have a shared library, we have to skip it. +@@ -59,26 +57,6 @@ + DATA += plpythonu.control plpythonu--1.0.sql plpythonu--unpackaged--1.0.sql + endif + +- +-# Python on win32 ships with import libraries only for Microsoft Visual C++, +-# which are not compatible with mingw gcc. Therefore we need to build a +-# new import library to link with. +-ifeq ($(PORTNAME), win32) +- +-pytverstr=$(subst .,,${python_version}) +-PYTHONDLL=$(subst \,/,$(WINDIR))/system32/python${pytverstr}.dll +- +-OBJS += libpython${pytverstr}.a +- +-libpython${pytverstr}.a: python${pytverstr}.def +- dlltool --dllname python${pytverstr}.dll --def python${pytverstr}.def --output-lib libpython${pytverstr}.a +- +-python${pytverstr}.def: +- pexports $(PYTHONDLL) > $@ +- +-endif # win32 +- +- + SHLIB_LINK = $(python_libspec) $(python_additional_libs) $(filter -lintl,$(LIBS)) + + REGRESS_OPTS = --dbname=$(PL_TESTDB) +@@ -187,9 +165,6 @@ + clean distclean: clean-lib + rm -f $(OBJS) + rm -rf $(pg_regress_clean_files) +-ifeq ($(PORTNAME), win32) +- rm -f python${pytverstr}.def +-endif + + else # can't build + diff --git a/mingw-w64-postgresql/postgresql-9.4.1-pl-tcl.patch b/mingw-w64-postgresql/postgresql-9.4.1-pl-tcl.patch new file mode 100644 index 0000000000..99e62633a9 --- /dev/null +++ b/mingw-w64-postgresql/postgresql-9.4.1-pl-tcl.patch @@ -0,0 +1,48 @@ +--- postgresql-9.4.1/src/pl/tcl/Makefile.orig 2015-02-10 21:23:07.259800000 +0300 ++++ postgresql-9.4.1/src/pl/tcl/Makefile 2015-02-10 21:24:31.189800000 +0300 +@@ -29,9 +29,10 @@ + endif + + ++SHLIB_LINK = $(TCL_LIB_SPEC) $(TCL_LIBS) + # On Windows, we don't link directly with the Tcl library; see below + ifneq ($(PORTNAME), win32) +-SHLIB_LINK = $(TCL_LIB_SPEC) $(TCL_LIBS) -lc ++SHLIB_LINK += -lc + endif + + +@@ -47,25 +48,6 @@ + # where to find psql for running the tests + PSQLDIR = $(bindir) + +-# Tcl on win32 ships with import libraries only for Microsoft Visual C++, +-# which are not compatible with mingw gcc. Therefore we need to build a +-# new import library to link with. +-ifeq ($(PORTNAME), win32) +- +-tclwithver = $(subst -l,,$(filter -l%, $(TCL_LIB_SPEC))) +-TCLDLL = $(dir $(TCLSH))/$(tclwithver).dll +- +-OBJS += lib$(tclwithver).a +- +-lib$(tclwithver).a: $(tclwithver).def +- dlltool --dllname $(tclwithver).dll --def $(tclwithver).def --output-lib lib$(tclwithver).a +- +-$(tclwithver).def: $(TCLDLL) +- pexports $^ > $@ +- +-endif # win32 +- +- + include $(top_srcdir)/src/Makefile.shlib + + ifeq ($(TCL_SHARED_BUILD), 1) +@@ -116,7 +98,4 @@ + clean distclean maintainer-clean: clean-lib + rm -f $(OBJS) + rm -rf $(pg_regress_clean_files) +-ifeq ($(PORTNAME), win32) +- rm -f $(tclwithver).def +-endif + $(MAKE) -C modules $@ From 758e17e9059f41cb2440779f34765075e073f6ba Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 11 Feb 2015 14:00:48 +0300 Subject: [PATCH 0506/2060] dbus: Update to 1.9.10 --- mingw-w64-dbus/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-dbus/PKGBUILD b/mingw-w64-dbus/PKGBUILD index 55967c3cfd..5fc5560353 100644 --- a/mingw-w64-dbus/PKGBUILD +++ b/mingw-w64-dbus/PKGBUILD @@ -2,7 +2,7 @@ _realname=dbus pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.9.8 +pkgver=1.9.10 pkgrel=1 arch=('any') pkgdesc="Freedesktop.org message bus system (mingw-w64)" @@ -16,7 +16,7 @@ options=('strip' 'staticlibs') license=("BSD") url="http://www.freedesktop.org/wiki/Software/dbus" source=("http://dbus.freedesktop.org/releases/dbus/${_realname}-${pkgver}.tar.gz"{,.asc}) -md5sums=('1765bf29d55fbefb9430dcf391b9a6da' +md5sums=('72390a741009017258c00a3268daa728' 'SKIP') prepare() { From 0fab8f3cc7298dbdbb7813da5ba6cb6927d53d57 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 11 Feb 2015 21:58:29 +0000 Subject: [PATCH 0507/2060] gcc: Remove odd .src stuff No idea what it's there for but it breaks things should you want to patch mingw32.h --- ...Add--mcrtdll-option-for-msvcrt-stubbing.patch | 12 ------------ mingw-w64-gcc/PKGBUILD | 16 ++-------------- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch b/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch index eff9c4d9dc..8aee0f644a 100644 --- a/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch +++ b/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch @@ -23,15 +23,3 @@ diff -urN gcc-4.9.2.orig/gcc/config/i386/mingw32.h gcc-4.9.2/gcc/config/i386/min #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ -diff -urN gcc-4.9.2.orig/gcc/config/i386/mingw32.h.src gcc-4.9.2/gcc/config/i386/mingw32.h.src ---- gcc-4.9.2.orig/gcc/config/i386/mingw32.h.src 2015-02-08 17:42:19.021308500 +0000 -+++ gcc-4.9.2/gcc/config/i386/mingw32.h.src 2015-02-08 18:31:31.849770100 +0000 -@@ -138,7 +138,7 @@ - #define REAL_LIBGCC_SPEC \ - "%{mthreads:-lmingwthrd} -lmingw32 \ - "SHARED_LIBGCC_SPEC" \ -- -lmoldname -lmingwex -lmsvcrt" -+ -lmoldname -lmingwex %{!mcrtdll=*:-lmsvcrt}%{mcrtdll=*:-l%*}" - - #undef STARTFILE_SPEC - #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index d72eb00991..d81d1dd0c4 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -31,7 +31,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-ada" makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" 'lndir') #checkdepends=('dejagnu') optdepends=() -options=('strip' '!debug' 'staticlibs' '!emptydirs') +options=('!strip' 'debug' 'staticlibs' '!emptydirs') source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.bz2" '000-relocatex-libintl-0.18.3.1.mingw.patch' '001-gcc-4.8-libstdc++export.patch' @@ -64,7 +64,7 @@ md5sums=('4df8ee253b7f3863ad0b86359cd39c43' 'c9967332940eb2b23820faeb48db6e72' '9e07f25b8813191eebd7fda684b1e2dd' '60fdccbd072e2b2e724ff879d31ec57e' - '39c6036d53340b9aeacc00dcfd9fd388' + '799ab93387ce29009bfb64b06bb29f8c' '347336d5a318e5e8b3cde29e9174413c' 'bf00d36f0d6bfc1fcb461c1b99461be4' '40cb437805e2f7a006aa0d0c3098ab0f' @@ -97,21 +97,9 @@ prepare() { # do not expect $prefix/mingw symlink - this should be superceded by # 160-mingw-dont-ignore-native-system-header-dir.patch .. but isn't! - [[ -f configure.src ]] && { - rm -f configure - cp configure.src configure - } || { - cp configure configure.src - } sed -i 's/${prefix}\/mingw\//${prefix}\//g' configure # change hardcoded /mingw prefix to the real prefix - [[ -f gcc/config/i386/mingw32.h.src ]] && { - rm -f gcc/config/i386/mingw32.h - cp gcc/config/i386/mingw32.h.src gcc/config/i386/mingw32.h - } || { - cp gcc/config/i386/mingw32.h gcc/config/i386/mingw32.h.src - } local MINGW_NATIVE_PREFIX=$(cygpath -am ${MINGW_PREFIX}/${MINGW_CHOST}) sed -i "s/\\/mingw\\//${MINGW_NATIVE_PREFIX//\//\\/}\\//g" gcc/config/i386/mingw32.h From c4d15ed55bf6d712a688cd7db0b9a09592ca8c04 Mon Sep 17 00:00:00 2001 From: David Macek Date: Thu, 12 Feb 2015 13:10:24 +0100 Subject: [PATCH 0508/2060] scite: Fix library loading issue; reformat patches; fix dependencies; fix prepare() on second run --- .../0001-Use-POSIX-tools-in-makefiles.patch | 81 ++++++++++++++++ mingw-w64-scite/0001-makefiles.patch | 96 ------------------- .../0002-Prefix-library-names.patch | 90 +++++++++++++++++ .../{0002-paths.patch => 0003-Use-FHS.patch} | 31 ++++-- mingw-w64-scite/PKGBUILD | 24 +++-- 5 files changed, 209 insertions(+), 113 deletions(-) create mode 100644 mingw-w64-scite/0001-Use-POSIX-tools-in-makefiles.patch delete mode 100644 mingw-w64-scite/0001-makefiles.patch create mode 100644 mingw-w64-scite/0002-Prefix-library-names.patch rename mingw-w64-scite/{0002-paths.patch => 0003-Use-FHS.patch} (66%) diff --git a/mingw-w64-scite/0001-Use-POSIX-tools-in-makefiles.patch b/mingw-w64-scite/0001-Use-POSIX-tools-in-makefiles.patch new file mode 100644 index 0000000000..2ea8209271 --- /dev/null +++ b/mingw-w64-scite/0001-Use-POSIX-tools-in-makefiles.patch @@ -0,0 +1,81 @@ +From 4591a15982077c8a1d4c9505aeb1025722129562 Mon Sep 17 00:00:00 2001 +From: David Macek +Date: Thu, 12 Feb 2015 12:57:31 +0100 +Subject: [PATCH 1/3] Use POSIX tools in makefiles + +--- + scintilla/gtk/makefile | 2 +- + scite/win32/makefile | 24 +++--------------------- + 2 files changed, 4 insertions(+), 22 deletions(-) + +diff --git a/scintilla/gtk/makefile b/scintilla/gtk/makefile +index cdf1aa1..0d4397e 100644 +--- a/scintilla/gtk/makefile ++++ b/scintilla/gtk/makefile +@@ -32,7 +32,7 @@ endif + endif + + ifdef windir +-DEL = del /q ++DEL = rm -f + COMPLIB=..\bin\scintilla.a + else + DEL = rm -f +diff --git a/scite/win32/makefile b/scite/win32/makefile +index daffb70..e5ccb62 100644 +--- a/scite/win32/makefile ++++ b/scite/win32/makefile +@@ -10,24 +10,6 @@ WINDRES ?= windres + ifeq ($(OS),Windows_NT) + CC = gcc + DEL = $(if $(wildcard $(dir $(SHELL))rm.exe), $(dir $(SHELL))rm.exe -f, del) +- COPY = xcopy /Y +- VER = cmd /c ver +- # Discover Windows version by running 'VER' command and parsing output +- # For Windows 2000 looks like:Microsoft Windows 2000 [Version 5.00.2195] +- WINVERWORDS:=$(wordlist 1,2,$(subst ., ,$(lastword $(shell $(VER))))) +- WINVER:=$(firstword $(WINVERWORDS)).$(lastword $(WINVERWORDS)) +- # Windows NT 4 and Windows 2000 do not support themes so turn off +-ifeq '$(WINVER)' '4.0' +- VERSION_DEFINES:=-DDISABLE_THEMES -DWIN_TARGET=0x0400 +-else +-ifeq '$(WINVER)' '5.00' +- VERSION_DEFINES:=-DDISABLE_THEMES +-else +- UXLIB:=-luxtheme +-endif +-endif +-else +- DEL = rm -f + COPY = cp -a + UXLIB:=-luxtheme + endif +@@ -163,14 +145,14 @@ embedded: ../src/Embedded.properties + + ../bin/Scintilla.dll: ../../scintilla/bin/Scintilla.dll + ifeq ($(OS),Windows_NT) +- $(COPY) $(subst /,\, $< $(@D)) ++ $(COPY) $^ $(@D) + else + $(COPY) $^ $(@D) + endif + + ../bin/SciLexer.dll: ../../scintilla/bin/SciLexer.dll + ifeq ($(OS),Windows_NT) +- $(COPY) $(subst /,\, $< $(@D)) ++ $(COPY) $^ $(@D) + else + $(COPY) $^ $(@D) + endif +@@ -178,7 +160,7 @@ endif + # Using '/' rather than '\' as that allows make to match the next rule + ../bin/%.properties: ../src/%.properties + ifeq ($(OS),Windows_NT) +- $(COPY) $(subst /,\, $< $(@D)) ++ $(COPY) $^ $(@D) + else + $(COPY) $^ $(@D) + endif +-- +2.3.0 + diff --git a/mingw-w64-scite/0001-makefiles.patch b/mingw-w64-scite/0001-makefiles.patch deleted file mode 100644 index 4c9ce3df59..0000000000 --- a/mingw-w64-scite/0001-makefiles.patch +++ /dev/null @@ -1,96 +0,0 @@ ---- scintilla/gtk/makefile.orig 2014-11-27 21:47:24.000000000 +0100 -+++ scintilla/gtk/makefile 2014-12-20 02:26:38.619557200 +0100 -@@ -32,11 +32,11 @@ - endif - - ifdef windir --DEL = del /q --COMPLIB=..\bin\scintilla.a -+DEL = rm -f -+COMPLIB=..\bin\libScintillaGtk.a - else - DEL = rm -f --COMPLIB=../bin/scintilla.a -+COMPLIB=../bin/libScintillaGtk.a - endif - - vpath %.h ../src ../include ../lexlib ---- scintilla/win32/makefile.orig 2014-11-27 21:47:24.000000000 +0100 -+++ scintilla/win32/makefile 2014-12-20 00:26:19.821844100 +0100 -@@ -13,8 +13,8 @@ - RANLIB ?= ranlib - WINDRES ?= windres - --COMPONENT = ../bin/Scintilla.dll --LEXCOMPONENT = ../bin/SciLexer.dll -+COMPONENT = ../bin/libScintilla.dll -+LEXCOMPONENT = ../bin/libSciLexer.dll - LEXLIB = Lexers.a - - vpath %.h ../src ../include ../lexlib ---- scite/win32/makefile.orig 2014-11-27 21:47:34.000000000 +0100 -+++ scite/win32/makefile 2014-12-20 01:06:33.367286200 +0100 -@@ -10,24 +10,6 @@ - ifeq ($(OS),Windows_NT) - CC = gcc - DEL = $(if $(wildcard $(dir $(SHELL))rm.exe), $(dir $(SHELL))rm.exe -f, del) -- COPY = xcopy /Y -- VER = cmd /c ver -- # Discover Windows version by running 'VER' command and parsing output -- # For Windows 2000 looks like:Microsoft Windows 2000 [Version 5.00.2195] -- WINVERWORDS:=$(wordlist 1,2,$(subst ., ,$(lastword $(shell $(VER))))) -- WINVER:=$(firstword $(WINVERWORDS)).$(lastword $(WINVERWORDS)) -- # Windows NT 4 and Windows 2000 do not support themes so turn off --ifeq '$(WINVER)' '4.0' -- VERSION_DEFINES:=-DDISABLE_THEMES -DWIN_TARGET=0x0400 --else --ifeq '$(WINVER)' '5.00' -- VERSION_DEFINES:=-DDISABLE_THEMES --else -- UXLIB:=-luxtheme --endif --endif --else -- DEL = rm -f - COPY = cp -a - UXLIB:=-luxtheme - endif -@@ -113,7 +95,7 @@ - - OBJS = Credits.o $(OTHER_OBJS) - --DLLS=../bin/Scintilla.dll ../bin/SciLexer.dll -+DLLS=../bin/libScintilla.dll ../bin/libSciLexer.dll - - #++Autogenerated -- run ../scripts/RegenerateSource.py to regenerate - #**LEXPROPS=\\\n\(../bin/\* \) -@@ -161,16 +143,16 @@ - - embedded: ../src/Embedded.properties - --../bin/Scintilla.dll: ../../scintilla/bin/Scintilla.dll -+../bin/libScintilla.dll: ../../scintilla/bin/libScintilla.dll - ifeq ($(OS),Windows_NT) -- $(COPY) $(subst /,\, $< $(@D)) -+ $(COPY) $^ $(@D) - else - $(COPY) $^ $(@D) - endif - --../bin/SciLexer.dll: ../../scintilla/bin/SciLexer.dll -+../bin/libSciLexer.dll: ../../scintilla/bin/libSciLexer.dll - ifeq ($(OS),Windows_NT) -- $(COPY) $(subst /,\, $< $(@D)) -+ $(COPY) $^ $(@D) - else - $(COPY) $^ $(@D) - endif -@@ -178,7 +160,7 @@ - # Using '/' rather than '\' as that allows make to match the next rule - ../bin/%.properties: ../src/%.properties - ifeq ($(OS),Windows_NT) -- $(COPY) $(subst /,\, $< $(@D)) -+ $(COPY) $^ $(@D) - else - $(COPY) $^ $(@D) - endif diff --git a/mingw-w64-scite/0002-Prefix-library-names.patch b/mingw-w64-scite/0002-Prefix-library-names.patch new file mode 100644 index 0000000000..9b8efd29d1 --- /dev/null +++ b/mingw-w64-scite/0002-Prefix-library-names.patch @@ -0,0 +1,90 @@ +From b65e62d86dd1d7f054dd6604d76dac1660d66027 Mon Sep 17 00:00:00 2001 +From: David Macek +Date: Thu, 12 Feb 2015 13:03:03 +0100 +Subject: [PATCH 2/3] Prefix library names + +--- + scintilla/gtk/makefile | 4 ++-- + scintilla/win32/makefile | 4 ++-- + scite/win32/SciTEWin.cxx | 2 +- + scite/win32/makefile | 6 +++--- + 4 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/scintilla/gtk/makefile b/scintilla/gtk/makefile +index 0d4397e..026f358 100644 +--- a/scintilla/gtk/makefile ++++ b/scintilla/gtk/makefile +@@ -33,10 +33,10 @@ endif + + ifdef windir + DEL = rm -f +-COMPLIB=..\bin\scintilla.a ++COMPLIB=..\bin\libScintillaGtk.a + else + DEL = rm -f +-COMPLIB=../bin/scintilla.a ++COMPLIB=../bin/libScintillaGtk.a + endif + + vpath %.h ../src ../include ../lexlib +diff --git a/scintilla/win32/makefile b/scintilla/win32/makefile +index 806e585..7550b4a 100644 +--- a/scintilla/win32/makefile ++++ b/scintilla/win32/makefile +@@ -13,8 +13,8 @@ endif + RANLIB ?= ranlib + WINDRES ?= windres + +-COMPONENT = ../bin/Scintilla.dll +-LEXCOMPONENT = ../bin/SciLexer.dll ++COMPONENT = ../bin/libScintilla.dll ++LEXCOMPONENT = ../bin/libSciLexer.dll + LEXLIB = Lexers.a + + vpath %.h ../src ../include ../lexlib +diff --git a/scite/win32/SciTEWin.cxx b/scite/win32/SciTEWin.cxx +index 22959cb..16c21a8 100644 +--- a/scite/win32/SciTEWin.cxx ++++ b/scite/win32/SciTEWin.cxx +@@ -2166,7 +2166,7 @@ int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int) { + Scintilla_RegisterClasses(hInstance); + #else + +- HMODULE hmod = ::LoadLibrary(TEXT("SciLexer.DLL")); ++ HMODULE hmod = ::LoadLibrary(TEXT("libSciLexer.dll")); + if (hmod == NULL) + ::MessageBox(NULL, TEXT("The Scintilla DLL could not be loaded. SciTE will now close"), + TEXT("Error loading Scintilla"), MB_OK | MB_ICONERROR); +diff --git a/scite/win32/makefile b/scite/win32/makefile +index e5ccb62..5125190 100644 +--- a/scite/win32/makefile ++++ b/scite/win32/makefile +@@ -95,7 +95,7 @@ OTHER_OBJS = $(SHAREDOBJS) $(LUA_OBJS) SciTERes.o SciTEWin.o + + OBJS = Credits.o $(OTHER_OBJS) + +-DLLS=../bin/Scintilla.dll ../bin/SciLexer.dll ++DLLS=../bin/libScintilla.dll ../bin/libSciLexer.dll + + #++Autogenerated -- run ../scripts/RegenerateSource.py to regenerate + #**LEXPROPS=\\\n\(../bin/\* \) +@@ -143,14 +143,14 @@ deps: + + embedded: ../src/Embedded.properties + +-../bin/Scintilla.dll: ../../scintilla/bin/Scintilla.dll ++../bin/libScintilla.dll: ../../scintilla/bin/libScintilla.dll + ifeq ($(OS),Windows_NT) + $(COPY) $^ $(@D) + else + $(COPY) $^ $(@D) + endif + +-../bin/SciLexer.dll: ../../scintilla/bin/SciLexer.dll ++../bin/libSciLexer.dll: ../../scintilla/bin/libSciLexer.dll + ifeq ($(OS),Windows_NT) + $(COPY) $^ $(@D) + else +-- +2.3.0 + diff --git a/mingw-w64-scite/0002-paths.patch b/mingw-w64-scite/0003-Use-FHS.patch similarity index 66% rename from mingw-w64-scite/0002-paths.patch rename to mingw-w64-scite/0003-Use-FHS.patch index d1a426dc24..6f6c4f4035 100644 --- a/mingw-w64-scite/0002-paths.patch +++ b/mingw-w64-scite/0003-Use-FHS.patch @@ -1,6 +1,18 @@ ---- scite/src/SciTEIO.cxx.orig 2014-11-27 21:47:34.000000000 +0100 -+++ scite/src/SciTEIO.cxx 2014-12-20 18:52:57.887040400 +0100 -@@ -41,14 +41,7 @@ +From 6c7abcc75da8f667bf769bacff331e19d4a4dff2 Mon Sep 17 00:00:00 2001 +From: David Macek +Date: Thu, 12 Feb 2015 13:04:15 +0100 +Subject: [PATCH 3/3] Use FHS + +--- + scite/src/SciTEIO.cxx | 7 ------- + scite/win32/SciTEWin.cxx | 25 ++++++++++++++++++++++++- + 2 files changed, 24 insertions(+), 8 deletions(-) + +diff --git a/scite/src/SciTEIO.cxx b/scite/src/SciTEIO.cxx +index 34abc6e..5da0040 100644 +--- a/scite/src/SciTEIO.cxx ++++ b/scite/src/SciTEIO.cxx +@@ -42,14 +42,7 @@ #include "SciTEBase.h" #include "Utf8_16.h" @@ -15,9 +27,11 @@ const GUI::gui_char propGlobalFileName[] = GUI_TEXT("SciTEGlobal.properties"); const GUI::gui_char propAbbrevFileName[] = GUI_TEXT("abbrev.properties"); ---- scite/win32/SciTEWin.cxx.orig 2014-09-30 02:14:42.000000000 +0200 -+++ scite/win32/SciTEWin.cxx 2014-12-20 18:52:54.939587600 +0100 -@@ -413,8 +413,29 @@ +diff --git a/scite/win32/SciTEWin.cxx b/scite/win32/SciTEWin.cxx +index 16c21a8..4929de9 100644 +--- a/scite/win32/SciTEWin.cxx ++++ b/scite/win32/SciTEWin.cxx +@@ -413,8 +413,29 @@ static FilePath GetSciTEPath(FilePath home) { return FilePath(); // Remove the SciTE.exe GUI::gui_char *lastSlash = wcsrchr(path, pathSepChar); @@ -48,7 +62,7 @@ return FilePath(path); } } -@@ -432,6 +452,8 @@ +@@ -432,6 +453,8 @@ FilePath SciTEWin::GetSciteDefaultHome() { FilePath SciTEWin::GetSciteUserHome() { GUI::gui_char *home = _wgetenv(GUI_TEXT("SciTE_HOME")); if (!home) @@ -57,3 +71,6 @@ home = _wgetenv(GUI_TEXT("USERPROFILE")); return GetSciTEPath(home); } +-- +2.3.0 + diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index ccb40ab4e4..558ab13681 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -4,22 +4,26 @@ _realname=scite pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") pkgver=3.5.3 -pkgrel=1 +pkgrel=2 arch=('any') url='http://www.scintilla.org/SciTE.html' license=('custom:scite') +makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config") source=("http://downloads.sourceforge.net/scintilla/${_realname}${pkgver//./}.tgz" - "0001-makefiles.patch" - "0002-paths.patch") + "0001-Use-POSIX-tools-in-makefiles.patch" + "0002-Prefix-library-names.patch" + "0003-Use-FHS.patch") md5sums=('44df4b3e25d346189ddc688c689dcf05' - '886216497dad9a1d54cedbf436cf110f' - 'ce2853918be638ec465fe314484f3af6') + 'd4bd88fa3e173d26d9cacaef12b1d6f9' + '2a9ec192f43f82d4b26b4a6667de350a' + '17011da4ced7269d787433b599a1ae92') prepare() { cd "${srcdir}" - patch -p0 -i "${srcdir}"/0001-makefiles.patch - patch -p0 -i "${srcdir}"/0002-paths.patch - mkdir "${srcdir}"/build-${CARCH} + patch -p1 -i "${srcdir}"/0001-Use-POSIX-tools-in-makefiles.patch + patch -p1 -i "${srcdir}"/0002-Prefix-library-names.patch + patch -p1 -i "${srcdir}"/0003-Use-FHS.patch + mkdir -p "${srcdir}"/build-${CARCH} cp -r "${srcdir}"/{scite,scintilla} "${srcdir}"/build-${CARCH} } @@ -34,8 +38,8 @@ build() { package_mingw-w64-scite() { pkgdesc='Editor with facilities for building and running programs (mingw-w64)' - depends=("${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-pkg-config") + depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gtk3") optdepends=("${MINGW_PACKAGE_PREFIX}-${_realname}-defaults: Default language files") cd "${srcdir}"/build-${CARCH} From 14f21ead6a531a27eec74ec41500f9e8329feca4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 12 Feb 2015 22:30:32 +0300 Subject: [PATCH 0509/2060] scite: Some optimzations. --- mingw-w64-scite/PKGBUILD | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index 558ab13681..158fb7b733 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -8,7 +8,9 @@ pkgrel=2 arch=('any') url='http://www.scintilla.org/SciTE.html' license=('custom:scite') -makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-pkg-config") source=("http://downloads.sourceforge.net/scintilla/${_realname}${pkgver//./}.tgz" "0001-Use-POSIX-tools-in-makefiles.patch" "0002-Prefix-library-names.patch" @@ -28,12 +30,13 @@ prepare() { } build() { - cd "${srcdir}"/build-${CARCH}/scintilla/gtk - make - cd "${srcdir}"/build-${CARCH}/scintilla/win32 - make - cd "${srcdir}"/build-${CARCH}/scite/win32 - make + cd "${srcdir}"/build-${CARCH} + + GTK3=1 make -C scintilla/gtk + make -C scintilla/win32 + # GTK3=1 make -C scite/gtk + make -C scite/win32 + } package_mingw-w64-scite() { From 514dad5a39af37b97974080ca508c262b921b1d9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 12 Feb 2015 23:11:41 +0300 Subject: [PATCH 0510/2060] cmake: Update to 3.1.3 --- mingw-w64-cmake/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 6bee7aea38..400792e021 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -2,7 +2,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.1.2 +pkgver=3.1.3 pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') @@ -21,7 +21,7 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "dont-install-bundle.patch" "wxWidgets-module.patch" "qt5-static-plugin-support.patch") -md5sums=('75f61184aa70664bc7b3158293950f04' +md5sums=('5697a77503bb5636f4b4057dcc02aa32' '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' '09ea9092ca85e482de79886bd0c09144' From a7a715586e8b9e425adc8fbd8904a50688361932 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 12 Feb 2015 21:58:42 +0000 Subject: [PATCH 0511/2060] libtool: Fix paths in libtool shell script --- mingw-w64-libtool/PKGBUILD | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mingw-w64-libtool/PKGBUILD b/mingw-w64-libtool/PKGBUILD index cc1a553f98..a91766e273 100644 --- a/mingw-w64-libtool/PKGBUILD +++ b/mingw-w64-libtool/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly _realname=libtool pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.4.5 -pkgrel=1 +pkgrel=2 pkgdesc="A system independent dlopen wrapper for GNU libtool (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libtool" @@ -48,4 +49,8 @@ build() { package() { cd "${srcdir}/build-${CARCH}" make DESTDIR="$pkgdir" install + # Because libtool will have queried native compilers, + # it'll contain native paths, so sed them back again. + MINGW_PREFIX_W=$(cygpath -m "${MINGW_PREFIX}") + sed -i "s#${MINGW_PREFIX_W}#${MINGW_PREFIX}#g" "$pkgdir"${MINGW_PREFIX}/bin/libtool } From 2762e27da4fb0f3a623197ac8d46d5b38ca43a90 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Feb 2015 01:22:28 +0300 Subject: [PATCH 0512/2060] x265: Update to 1.5 --- mingw-w64-x265/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-x265/PKGBUILD b/mingw-w64-x265/PKGBUILD index 6f545f0e73..823cd698e4 100644 --- a/mingw-w64-x265/PKGBUILD +++ b/mingw-w64-x265/PKGBUILD @@ -2,7 +2,7 @@ _realname=x265 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4 +pkgver=1.5 pkgrel=1 pkgdesc='Open Source H265/HEVC video encoder (mingw-w64)' arch=('any') @@ -13,7 +13,7 @@ options=('strip') url='https://bitbucket.org/multicoreware/x265' source=($url/get/$pkgver.tar.bz2 install-shared-library.patch) -md5sums=('b37bf7bd05b198c9dd9155d60e1f7100' +md5sums=('fcb81f5ff12669ff0c0657568cee36b9' 'c1dc65fc3191d6bafdd3576235ade5ae') prepare() { From b855f47b053ca3376d4b7a85d455e0bf0add10b6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Feb 2015 01:23:15 +0300 Subject: [PATCH 0513/2060] ffmpeg: Rebuild with x265-1.5 --- mingw-w64-ffmpeg/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 7c0c166e0f..d37a6c6d67 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -3,7 +3,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.5.3 -pkgrel=1 +pkgrel=2 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" From faff97e045bd36a16a950005e155fb039f06931c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Feb 2015 01:24:32 +0300 Subject: [PATCH 0514/2060] nspr: Update to 4.10.8 --- mingw-w64-nspr/PKGBUILD | 8 ++++---- mingw-w64-nspr/nspr-4.10.2_autotools.patch | 23 ++++++++++------------ 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/mingw-w64-nspr/PKGBUILD b/mingw-w64-nspr/PKGBUILD index 4d0fc2659d..7674af59e6 100644 --- a/mingw-w64-nspr/PKGBUILD +++ b/mingw-w64-nspr/PKGBUILD @@ -3,8 +3,8 @@ _realname=nspr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.10.7 -pkgrel=2 +pkgver=4.10.8 +pkgrel=1 pkgdesc="Netscape Portable Runtime (mingw-w64)" arch=('any') url="http://www.mozilla.org/projects/nspr/" @@ -20,10 +20,10 @@ source=(ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${pkgver}/src/${_re nspr-4.10.2_staticbuild.patch nspr-4.10.2_x64.patch manifest) -md5sums=('6e06919e4b56efed501e05d8b45ec10e' +md5sums=('8d7c5bd0a5b0a7d0e705be66479030a0' 'd9c6516eb4dca209e4b7ae46a4758ffa' '5d99dd3b898f615b58d111f7b55a4217' - 'cd783e78938678ffa91a4131c9c4f7a9' + 'ed16729657eb70fbacda4f086c7a04ed' '93d379011339c994fd242c9628df0bdf' 'e8b657f34a43d60db96761a924c46a9c' 'c337834e9092cffa3cd448c0702efd82' diff --git a/mingw-w64-nspr/nspr-4.10.2_autotools.patch b/mingw-w64-nspr/nspr-4.10.2_autotools.patch index f4fde36146..64902b5118 100644 --- a/mingw-w64-nspr/nspr-4.10.2_autotools.patch +++ b/mingw-w64-nspr/nspr-4.10.2_autotools.patch @@ -20,21 +20,18 @@ +Cflags: -I${includedir} --- config/rules.mk Tue Nov 12 04:52:34 2013 +++ config/rules.mk Tue Nov 26 11:22:37 2013 -@@ -83,12 +83,12 @@ - ifeq (,$(filter-out WIN95 WINCE WINMO OS2,$(OS_TARGET))) - LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX) - SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX) --IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(LIB_SUFFIX) -+IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(IMPORT_LIB_SUFFIX) - SHARED_LIB_PDB = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).pdb - else - LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX) - SHARED_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX) --IMPORT_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(LIB_SUFFIX) -+IMPORT_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(IMPORT_LIB_SUFFIX) - SHARED_LIB_PDB = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).pdb +@@ -91,9 +91,9 @@ endif + ifdef MSC_VER +-IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(LIB_SUFFIX) ++IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(IMPORT_LIB_SUFFIX) + else +-IMPORT_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(LIB_SUFFIX) ++IMPORT_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(IMPORT_LIB_SUFFIX) + endif + + else --- configure Tue Nov 12 04:54:52 2013 +++ configure Tue Nov 26 11:22:37 2013 @@ -665,6 +665,7 @@ From 6259ba2c796679780d78c0093cfb164cb8f5f817 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Feb 2015 01:26:08 +0300 Subject: [PATCH 0515/2060] nss: Update to 3.17.4 --- mingw-w64-nss/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-nss/PKGBUILD b/mingw-w64-nss/PKGBUILD index f9ad563a0b..23612b78d3 100644 --- a/mingw-w64-nss/PKGBUILD +++ b/mingw-w64-nss/PKGBUILD @@ -3,9 +3,9 @@ _realname=nss pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.17.2 -_nsprver=4.10.7 -pkgrel=2 +pkgver=3.17.4 +_nsprver=4.10.8 +pkgrel=1 pkgdesc="Mozilla Network Security Services (mingw-w64)" arch=('any') url="http://www.mozilla.org/projects/security/pki/nss/" @@ -25,7 +25,7 @@ source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/s blank-cert8.db blank-key3.db blank-secmod.db) -md5sums=('d3edb6f6c3688b2fde67ec9c9a8c1214' +md5sums=('a77df26072cabf8afb26911b6fa9b755' 'd9c6516eb4dca209e4b7ae46a4758ffa' 'c547b030c57fe1ed8b77c73bf52b3ded' '46bee81908f1e5b26d6a7a2e14c64d9f' From 529dd82b05e324fbc47c2e42e90b13966796829b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 13 Feb 2015 00:27:11 +0000 Subject: [PATCH 0516/2060] exiv2: Make libtool a makedepend not a depend --- mingw-w64-exiv2/PKGBUILD | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/mingw-w64-exiv2/PKGBUILD b/mingw-w64-exiv2/PKGBUILD index 1db2b64e6b..db2ebeea51 100644 --- a/mingw-w64-exiv2/PKGBUILD +++ b/mingw-w64-exiv2/PKGBUILD @@ -1,23 +1,24 @@ # Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly _realname=exiv2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.24 -pkgrel=2 +pkgrel=3 pkgdesc="Exif and Iptc metadata manipulation library and tools (mingw-w64)" arch=('any') url="http://exiv2.org" license=("GPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-libtool") depends=("${MINGW_PACKAGE_PREFIX}-expat" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-libtool" - ) + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-zlib") options=('strip' 'staticlibs') source=("http://www.exiv2.org/${_realname}-${pkgver}.tar.gz" - 0001-fix-cr-for-awk-in-configure.mingw.patch) + 0001-fix-cr-for-awk-in-configure.mingw.patch) sha1sums=('2f19538e54f8c21c180fa96d17677b7cff7dc1bb' '4c9dca6f5517ba5c857162441a28edd68b4bdeb5') From f02a67f5c3f41c88d18df721fa95b72e7b5d2181 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Feb 2015 20:42:50 +0300 Subject: [PATCH 0517/2060] jsoncpp: Update to 1.4.0 --- mingw-w64-jsoncpp/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-jsoncpp/PKGBUILD b/mingw-w64-jsoncpp/PKGBUILD index e59242da1c..685f24702e 100644 --- a/mingw-w64-jsoncpp/PKGBUILD +++ b/mingw-w64-jsoncpp/PKGBUILD @@ -2,7 +2,7 @@ _realname=jsoncpp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.0 +pkgver=1.4.0 pkgrel=1 pkgdesc="A C++ library for interacting with JSON (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('staticlibs' '!strip' '!buildflags') source=("https://github.com/open-source-parsers/jsoncpp/archive/$pkgver.tar.gz") -md5sums=('36eec7e92128e81f384e0fc04c8ef26a') +md5sums=('50a2dd1cf84a7870584a786f069fc059') build() { mkdir "${srcdir}/build-${CARCH}" From e4b422ce1f402f60c2fd8b206d8cf42bb71f90a6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Feb 2015 20:43:14 +0300 Subject: [PATCH 0518/2060] libblueray: Update to 0.7.0 --- mingw-w64-libblueray/PKGBUILD | 6 +++--- mingw-w64-libblueray/no-undefined.patch | 9 +++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/mingw-w64-libblueray/PKGBUILD b/mingw-w64-libblueray/PKGBUILD index a8663ab5a4..a575bbaeb5 100644 --- a/mingw-w64-libblueray/PKGBUILD +++ b/mingw-w64-libblueray/PKGBUILD @@ -2,7 +2,7 @@ _realname=libbluray pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.6.2 +pkgver=0.7.0 pkgrel=1 pkgdesc='Library to access Blu-Ray disks for video playback (mingw-w64)' arch=('any') @@ -13,8 +13,8 @@ options=('strip' 'staticlibs') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(ftp://ftp.videolan.org/pub/videolan/libbluray/$pkgver/${_realname}-$pkgver.tar.bz2 no-undefined.patch) -md5sums=('f4d2f2cab53f976cbb22cbae069057bd' - 'ee52bd46e6b5db5969c31397cf26776f') +md5sums=('efad766330164f0c7c7cb18f66389870' + '788a036c8b28eff04234972767ec1ac2') prepare() { cd ${srcdir}/${_realname}-${pkgver} diff --git a/mingw-w64-libblueray/no-undefined.patch b/mingw-w64-libblueray/no-undefined.patch index 249165accd..f1098429db 100644 --- a/mingw-w64-libblueray/no-undefined.patch +++ b/mingw-w64-libblueray/no-undefined.patch @@ -1,19 +1,16 @@ diff -ru libbluray-0.4.0/src/Makefile.am patched/src/Makefile.am --- libbluray-0.4.0/src/Makefile.am 2013-09-17 10:05:56.000000000 +0200 +++ patched/src/Makefile.am 2013-11-02 14:35:10.123235113 +0100 -@@ -109,7 +109,10 @@ +@@ -109,7 +109,7 @@ endif -libbluray_la_LDFLAGS= -version-info $(LT_VERSION_INFO) +libbluray_la_LDFLAGS= -no-undefined -version-info $(LT_VERSION_INFO) -+#if HAVE_WIN32 -+#libbluray_la_LDFLAGS+=-no-undefined -+#endif - libbluray_la_LIBADD= $(LIBXML2_LIBS) $(FT2_LIBS) + libbluray_la_LIBADD= $(LIBXML2_LIBS) $(FT2_LIBS) $(FONTCONFIG_LIBS) pkginclude_HEADERS = \ -@@ -149,6 +152,7 @@ +@@ -149,6 +149,7 @@ libbluray/bdj/native/register_native.c AM_CFLAGS += $(BDJAVA_CFLAGS) From 149504a7aa0d486f60567bf192e05e603f3d6071 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Feb 2015 20:43:38 +0300 Subject: [PATCH 0519/2060] speex: Update to 1.2rc2 --- mingw-w64-speex/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-speex/PKGBUILD b/mingw-w64-speex/PKGBUILD index dcff12cf0f..a0fce269c4 100644 --- a/mingw-w64-speex/PKGBUILD +++ b/mingw-w64-speex/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=speex - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.2rc1 -pkgrel=3 +pkgver=1.2rc2 +pkgrel=1 pkgdesc="A free codec for free speech (mingw-w64)" arch=('any') license=('BSD') @@ -13,7 +12,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libogg") options=('strip' '!libtool' 'staticlibs') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://downloads.us.xiph.org/releases/${_realname}/${_realname}-$pkgver.tar.gz) -md5sums=('c4438b22c08e5811ff10e2b06ee9b9ae') +md5sums=('6ae7db3bab01e1d4b86bacfa8ca33e81') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -26,6 +25,7 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ + --enable-shared \ --disable-static make From e5bcdeee6373fc21e49ed2b189b0d30bab01c794 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Feb 2015 22:14:35 +0300 Subject: [PATCH 0520/2060] speexdsp: Splitted from speex. --- mingw-w64-speexdsp/PKGBUILD | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 mingw-w64-speexdsp/PKGBUILD diff --git a/mingw-w64-speexdsp/PKGBUILD b/mingw-w64-speexdsp/PKGBUILD new file mode 100644 index 0000000000..1d2e3d6855 --- /dev/null +++ b/mingw-w64-speexdsp/PKGBUILD @@ -0,0 +1,38 @@ +# Maintainer: Alexey Pavlov + +_realname=speexdsp +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.2rc3 +pkgrel=1 +pkgdesc="DSP library derived from Speex (mingw-w64)" +arch=('any') +license=('BSD') +url="http://www.speex.org/" +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +options=('strip' '!libtool' 'staticlibs') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +source=(http://downloads.us.xiph.org/releases/speex/${_realname}-$pkgver.tar.gz) +md5sums=('70d9d31184f7eb761192fd1ef0b73333') + +prepare() { + cd ${srcdir}/${_realname}-${pkgver} +} + +build() { + #export lt_cv_deplibs_check_method='pass_all' + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + ${srcdir}/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make +} + +package() { + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR="${pkgdir}" install + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From 231da52ef9afcd65dab201e23788ed6750bbab6b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Feb 2015 22:15:20 +0300 Subject: [PATCH 0521/2060] speex: Fix dependencies. Build static libs. --- mingw-w64-speex/01-mingw-winmm.patch | 33 ++++++++++++++++++++++++++++ mingw-w64-speex/PKGBUILD | 17 +++++++++----- 2 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-speex/01-mingw-winmm.patch diff --git a/mingw-w64-speex/01-mingw-winmm.patch b/mingw-w64-speex/01-mingw-winmm.patch new file mode 100644 index 0000000000..1ec8741763 --- /dev/null +++ b/mingw-w64-speex/01-mingw-winmm.patch @@ -0,0 +1,33 @@ +--- speex-1.2rc2/configure.ac.orig 2015-02-13 22:00:58.022200000 +0300 ++++ speex-1.2rc2/configure.ac 2015-02-13 22:03:41.947000000 +0300 +@@ -198,6 +198,15 @@ + uclinux) LDFLAGS="-Wl,-elf2flt=-s100000 $LDFLAGS";; + esac + ++case $host_os in ++ mingw*) ++ WINMM_LIBS="-lwinmm" ++ ;; ++ *) WINMM_LIBS= ++ ;; ++esac ++AC_SUBST(WINMM_LIBS) ++ + AC_ARG_ENABLE(fixed-point-debug, [ --enable-fixed-point-debug Debug fixed-point implementation], + [if test "$enableval" = yes; then + AC_DEFINE([FIXED_DEBUG], , [Debug fixed-point implementation]) +--- speex-1.2rc2/src/Makefile.am.orig 2015-02-13 22:04:00.745000000 +0300 ++++ speex-1.2rc2/src/Makefile.am 2015-02-13 22:04:12.367000000 +0300 +@@ -20,9 +20,9 @@ + + speexenc_SOURCES = speexenc.c wav_io.c skeleton.c + speexenc_LDADD = $(top_builddir)/libspeex/libspeex.la \ +- $(OGG_LIBS) @FFT_LIBS@ @SPEEXDSP_LIBS@ ++ $(OGG_LIBS) @FFT_LIBS@ @SPEEXDSP_LIBS@ @WINMM_LIBS@ + + speexdec_SOURCES = speexdec.c wav_io.c + speexdec_LDADD = $(top_builddir)/libspeex/libspeex.la \ +- $(OGG_LIBS) @FFT_LIBS@ ++ $(OGG_LIBS) @FFT_LIBS@ @WINMM_LIBS@ + + diff --git a/mingw-w64-speex/PKGBUILD b/mingw-w64-speex/PKGBUILD index a0fce269c4..156247bfaf 100644 --- a/mingw-w64-speex/PKGBUILD +++ b/mingw-w64-speex/PKGBUILD @@ -8,25 +8,30 @@ pkgdesc="A free codec for free speech (mingw-w64)" arch=('any') license=('BSD') url="http://www.speex.org/" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libogg") +depends=("${MINGW_PACKAGE_PREFIX}-libogg" "${MINGW_PACKAGE_PREFIX}-speexdsp") options=('strip' '!libtool' 'staticlibs') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -source=(http://downloads.us.xiph.org/releases/${_realname}/${_realname}-$pkgver.tar.gz) -md5sums=('6ae7db3bab01e1d4b86bacfa8ca33e81') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +source=(http://downloads.us.xiph.org/releases/${_realname}/${_realname}-$pkgver.tar.gz + 01-mingw-winmm.patch) +md5sums=('6ae7db3bab01e1d4b86bacfa8ca33e81' + '8edb0120f01d93e8202a97ebb1f5fc24') prepare() { cd ${srcdir}/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/01-mingw-winmm.patch + + autoreconf -fiv } build() { - export lt_cv_deplibs_check_method='pass_all' mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} ${srcdir}/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --disable-static + --enable-static make } From eb6e2c0c257be1ee5edd98ef649f8a682f320a3b Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 13 Feb 2015 22:22:56 +0100 Subject: [PATCH 0522/2060] virt-viewer: added opus as dependency. --- mingw-w64-virt-viewer-git/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-virt-viewer-git/PKGBUILD b/mingw-w64-virt-viewer-git/PKGBUILD index a4ee7dbceb..e5da47ec61 100644 --- a/mingw-w64-virt-viewer-git/PKGBUILD +++ b/mingw-w64-virt-viewer-git/PKGBUILD @@ -4,12 +4,13 @@ _realname=virt-viewer _base_ver=2.0.0 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=2.0.0.934.824c4b9 -pkgrel=2 +pkgrel=1 arch=('any') pkgdesc="Displaying the graphical console of a virtual machine (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-spice-gtk" "${MINGW_PACKAGE_PREFIX}-gtk-vnc" - "${MINGW_PACKAGE_PREFIX}-libxml2") + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-opus") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gtk-doc" "${MINGW_PACKAGE_PREFIX}-icoutils") From 9b8974067b22ce82b8ba06af7d92ad5cfbfadfb8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 14 Feb 2015 00:44:07 +0300 Subject: [PATCH 0523/2060] protobuf-c: Update to 1.1.0 --- mingw-w64-protobuf-c/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-protobuf-c/PKGBUILD b/mingw-w64-protobuf-c/PKGBUILD index 42f9e3fc80..f10b4093fd 100644 --- a/mingw-w64-protobuf-c/PKGBUILD +++ b/mingw-w64-protobuf-c/PKGBUILD @@ -2,7 +2,7 @@ _realname=protobuf-c pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.2 +pkgver=1.1.0 pkgrel=1 pkgdesc="Protocol Buffers implementation in C (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') source=("$url/releases/download/v$pkgver/${_realname}-$pkgver.tar.gz") -md5sums=('42f03767ddbd1dbe26cce10bc6e08c84') +md5sums=('884a6e7deb4a2f7b3cc81a4dcabe514a') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From daacb47db932615243dcc9aea3381f548ff18a5e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 14 Feb 2015 00:49:27 +0300 Subject: [PATCH 0524/2060] atk: Update to 2.15.4 --- mingw-w64-atk/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-atk/PKGBUILD b/mingw-w64-atk/PKGBUILD index 6b094b7d0a..552e1fdc26 100644 --- a/mingw-w64-atk/PKGBUILD +++ b/mingw-w64-atk/PKGBUILD @@ -3,8 +3,8 @@ _realname=atk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.14.0 -pkgrel=2 +pkgver=2.15.4 +pkgrel=1 pkgdesc="A library providing a set of interfaces for accessibility (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -17,7 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-glib2>=2.41.0") options=('strip' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/atk/${pkgver%.*}/${_realname}-$pkgver.tar.xz") -md5sums=('ecb7ca8469a5650581b1227d78051b8b') +md5sums=('430879fbffe433af118a2eb9c3bd69bf') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From c5270ef1467cc312c79ccbb4f93088b270aeb658 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 14 Feb 2015 02:12:50 +0300 Subject: [PATCH 0525/2060] Format PKGBUILD's --- mingw-w64-bzip2/PKGBUILD | 18 ++++++++---------- mingw-w64-cairo/PKGBUILD | 28 +++++++++++++++------------- mingw-w64-expat/PKGBUILD | 29 +++++++++++++++-------------- mingw-w64-libiconv/PKGBUILD | 2 +- mingw-w64-sqlite3/PKGBUILD | 2 +- 5 files changed, 40 insertions(+), 39 deletions(-) diff --git a/mingw-w64-bzip2/PKGBUILD b/mingw-w64-bzip2/PKGBUILD index 57fe7bd6ad..e8edcdd9a7 100644 --- a/mingw-w64-bzip2/PKGBUILD +++ b/mingw-w64-bzip2/PKGBUILD @@ -2,7 +2,6 @@ # Contributor: Renato Silva _realname=bzip2 - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.6 pkgrel=3 @@ -13,12 +12,12 @@ license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' 'staticlibs') source=("http://www.bzip.org/${pkgver}/bzip2-${pkgver}.tar.gz" - "bzip2-1.0.5-slash.patch" - "bzip2-1.0.4-bzip2recover.patch" - "bzgrep-debian-1.0.5-6.all.patch" - "bzip2-cygming-1.0.6.src.all.patch" - "bzip2-buildsystem.all.patch" - "bzip2-1.0.6-progress.all.patch") + "bzip2-1.0.5-slash.patch" + "bzip2-1.0.4-bzip2recover.patch" + "bzgrep-debian-1.0.5-6.all.patch" + "bzip2-cygming-1.0.6.src.all.patch" + "bzip2-buildsystem.all.patch" + "bzip2-1.0.6-progress.all.patch") sha1sums=('3f89f861209ce81a6bab1fd1998c0ef311712002' '809c3a95f6f6c26463d804b345d62eed8420c6a6' '85ce76fdb67f52f152bba368c1de81132dcdbdb5' @@ -40,7 +39,6 @@ prepare() { } build() { - unset LDFLAGS mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" "${srcdir}"/${_realname}-${pkgver}/configure \ @@ -49,6 +47,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-shared + make all-dll-shared } @@ -60,8 +59,7 @@ check() { package() { cd "${srcdir}/build-${CARCH}" make DESTDIR="$pkgdir" install - #make PREFIX="${pkgdir}${MINGW_PREFIX}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm - #rm "${pkgdir}${MINGW_PREFIX}/bin/bz"{diff,grep,more} + # rm "${pkgdir}${MINGW_PREFIX}/bin/bz"{diff,grep,more} install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-cairo/PKGBUILD b/mingw-w64-cairo/PKGBUILD index af1364cfca..71f4ce42bd 100644 --- a/mingw-w64-cairo/PKGBUILD +++ b/mingw-w64-cairo/PKGBUILD @@ -10,20 +10,22 @@ arch=('any') url="http://cairographics.org" license=(LGPL2.1 MPL1.1) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-librsvg" - "${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-poppler" - "${MINGW_PACKAGE_PREFIX}-ghostscript" - ) + "${MINGW_PACKAGE_PREFIX}-ghostscript" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-librsvg" + "${MINGW_PACKAGE_PREFIX}-libspectre" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-poppler" + ) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-lzo2" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-pixman") -optdepends=("mingw-w64-glib2: libcairo-gobject") + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-lzo2" + "${MINGW_PACKAGE_PREFIX}-pixman" + "${MINGW_PACKAGE_PREFIX}-zlib" + ) +optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libcairo-gobject") options=('strip' 'staticlibs') source=("http://cairographics.org/releases/cairo-${pkgver}.tar.xz" 0002-fix-using-strings.patch diff --git a/mingw-w64-expat/PKGBUILD b/mingw-w64-expat/PKGBUILD index be66de9933..67f2a0bd07 100644 --- a/mingw-w64-expat/PKGBUILD +++ b/mingw-w64-expat/PKGBUILD @@ -2,7 +2,6 @@ # Contributor: Renato Silva _realname=expat - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.0 pkgrel=4 @@ -16,20 +15,22 @@ source=("http://downloads.sourceforge.net/expat/expat-${pkgver}.tar.gz") md5sums=('dd7dab7a5fea97d2a6a43f511449b7cd') build() { - mkdir -p "${srcdir}/${pkgname}-${pkgver}-build-${CARCH}" - cd "${srcdir}/${pkgname}-${pkgver}-build-${CARCH}" - "${srcdir}"/expat-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ - --enable-shared --enable-static - make + mkdir -p "${srcdir}/${pkgname}-${pkgver}-build-${CARCH}" + cd "${srcdir}/${pkgname}-${pkgver}-build-${CARCH}" + "${srcdir}"/expat-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make } package() { - cd "${srcdir}/${pkgname}-${pkgver}-build-${CARCH}" - make DESTDIR="$pkgdir" install - mv "${pkgdir}${MINGW_PREFIX}/bin/xmlwf" "${pkgdir}${MINGW_PREFIX}/bin/xmlwf.exe" - install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + cd "${srcdir}/${pkgname}-${pkgver}-build-${CARCH}" + make DESTDIR="$pkgdir" install + mv "${pkgdir}${MINGW_PREFIX}/bin/xmlwf" "${pkgdir}${MINGW_PREFIX}/bin/xmlwf.exe" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libiconv/PKGBUILD b/mingw-w64-libiconv/PKGBUILD index c02cc934d1..03114c38a7 100644 --- a/mingw-w64-libiconv/PKGBUILD +++ b/mingw-w64-libiconv/PKGBUILD @@ -2,7 +2,6 @@ # Contributor: Renato Silva _realname=libiconv - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.14 pkgrel=3 @@ -43,6 +42,7 @@ build() { --disable-rpath \ --enable-silent-rules \ --enable-nls + make } diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index fe5fe41b63..2a227ef6c0 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -19,7 +19,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" source=("http://www.sqlite.org/2015/sqlite-autoconf-$_amalgamationver.tar.gz" LICENSE) sha1sums=('1db237523419af7110e1d92c6b766e965f9322e4' - '57efe6441d44391434046058ea0c53ab3221b36f') + 'e2aa07adae13aed713860b74165d3325a18c6792') options=('!strip' 'staticlibs') build() { From 1cd7bdf61c2343983a604c75f2473e685e4d4c50 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 14 Feb 2015 02:15:37 +0300 Subject: [PATCH 0526/2060] shared-mime-info: Update to 1.4 --- mingw-w64-shared-mime-info/PKGBUILD | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mingw-w64-shared-mime-info/PKGBUILD b/mingw-w64-shared-mime-info/PKGBUILD index 98f9cc53a5..b6afd20609 100644 --- a/mingw-w64-shared-mime-info/PKGBUILD +++ b/mingw-w64-shared-mime-info/PKGBUILD @@ -3,8 +3,8 @@ _realname=shared-mime-info pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3 -pkgrel=2 +pkgver=1.4 +pkgrel=1 pkgdesc="Freedesktop.org Shared MIME Info (mingw-w64)" arch=('any') license=(GPL2) @@ -14,10 +14,15 @@ install=${_realname}-${CARCH}.install url="http://freedesktop.org/Software/shared-mime-info" source=(http://freedesktop.org/~hadess/${_realname}-${pkgver}.tar.xz program.manifest) -md5sums=('743720bc4803dd69f55449013d350f31' +md5sums=('16c02f7b658fff2a9c207406d388ea31' '39a5e7ad433d8d83d2c8ac6779dce0d8') options=(!makeflags) +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + autoreconf -fiv +} + build() { mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} @@ -25,7 +30,9 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --disable-update-mimedb + --disable-update-mimedb \ + --disable-default-make-check + make } From 4e67976301f30e523beb6a1385cdc2203ef5aac9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 14 Feb 2015 02:15:58 +0300 Subject: [PATCH 0527/2060] gl2ps: Rebuild. --- mingw-w64-gl2ps/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gl2ps/PKGBUILD b/mingw-w64-gl2ps/PKGBUILD index 846865d429..0975ce767a 100644 --- a/mingw-w64-gl2ps/PKGBUILD +++ b/mingw-w64-gl2ps/PKGBUILD @@ -6,7 +6,7 @@ _realname=gl2ps pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.8 -pkgrel=2 +pkgrel=3 pkgdesc="an OpenGL to PostScript printing library (mingw-w64)" arch=('any') url='http://geuz.org/gl2ps/' @@ -30,16 +30,17 @@ build() { mkdir build-${CARCH} cd build-${CARCH} - cmake ../${_realname}-${pkgver}-source \ + cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -G'MSYS Makefiles' + -G'MSYS Makefiles' \ + ../${_realname}-${pkgver}-source + make } package() { cd "${srcdir}/build-${CARCH}" - make install } From 1309b1055844fe2d1c27d2216f06f0c77f226862 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 13 Feb 2015 23:30:32 +0000 Subject: [PATCH 0528/2060] v8: Fix localtime_s and prepare for newer versions --- ...se-gnuish-ccflags-for-gcc-on-Windows.patch | 12 +++++++++++ ...altime_s-is-not-needed-for-mingw-w64.patch | 20 +++++++++++++++++++ mingw-w64-v8/PKGBUILD | 8 +++++++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-v8/0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch create mode 100644 mingw-w64-v8/0006-localtime_s-is-not-needed-for-mingw-w64.patch diff --git a/mingw-w64-v8/0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch b/mingw-w64-v8/0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch new file mode 100644 index 0000000000..a32f639fe6 --- /dev/null +++ b/mingw-w64-v8/0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch @@ -0,0 +1,12 @@ +--- v8-git-mirror-4.2.47/build/standalone.gypi.orig 2015-02-03 03:26:35.000000000 +0000 ++++ v8-git-mirror-4.2.47/build/standalone.gypi 2015-02-13 11:40:44.605828900 +0000 +@@ -364,6 +364,9 @@ + '_HAS_EXCEPTIONS=0', + ], + }], ++ ['gcc_version!="unknown"', { ++ 'cflags_cc': [ '-Wnon-virtual-dtor', '-fno-rtti', '-std=gnu++0x' ], ++ }], + ], + 'msvs_cygwin_dirs': ['<(DEPTH)/third_party/cygwin'], + 'msvs_disabled_warnings': [4355, 4800], diff --git a/mingw-w64-v8/0006-localtime_s-is-not-needed-for-mingw-w64.patch b/mingw-w64-v8/0006-localtime_s-is-not-needed-for-mingw-w64.patch new file mode 100644 index 0000000000..1cedc13546 --- /dev/null +++ b/mingw-w64-v8/0006-localtime_s-is-not-needed-for-mingw-w64.patch @@ -0,0 +1,20 @@ +--- v8-git-mirror-4.2.47/src/platform-win32.cc.orig 2015-02-13 12:32:02.012827200 +0000 ++++ v8-git-mirror-4.2.47/src/platform-win32.cc 2015-02-13 12:33:09.326827200 +0000 +@@ -42,9 +42,6 @@ + __asm__ __volatile__("xchgl %%eax,%0 ":"=r" (barrier)); + } + +-#endif // __MINGW64_VERSION_MAJOR +- +- + int localtime_s(tm* out_tm, const time_t* time) { + tm* posix_local_time_struct = localtime(time); + if (posix_local_time_struct == NULL) return 1; +@@ -52,6 +49,7 @@ + return 0; + } + ++#endif // __MINGW64_VERSION_MAJOR + + int fopen_s(FILE** pFile, const char* filename, const char* mode) { + *pFile = fopen(filename, mode); diff --git a/mingw-w64-v8/PKGBUILD b/mingw-w64-v8/PKGBUILD index c50aed054b..7f20f51565 100644 --- a/mingw-w64-v8/PKGBUILD +++ b/mingw-w64-v8/PKGBUILD @@ -5,7 +5,7 @@ _realname=v8 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.27.34.6 -pkgrel=1 +pkgrel=2 pkgdesc="Fast and modern Javascript engine (mingw-w64)" arch=('any') url="http://code.google.com/p/v8" @@ -20,6 +20,8 @@ source=("https://github.com/v8/v8/archive/${pkgver}.tar.gz" "0002-OS-TotalPhysicalMemory-needed-for-MinGW-w64-too.patch" "0003-Use-soname_version.dll-not-so.soname_version-on-Windows.patch" "0004-Create-an-import-library-on-Windows.patch" + "0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch" + "0006-localtime_s-is-not-needed-for-mingw-w64.patch" "v8.pc") md5sums=('2e9069c38a985150e6d4d7af2f38689d' 'd13060d09d6a8cbf3da5d0ec773f8e57' @@ -27,6 +29,8 @@ md5sums=('2e9069c38a985150e6d4d7af2f38689d' '26a61fe54cee6bd135d9b8633d4413d2' 'cc9c6d019cc3ac025d2ec76507a68ba1' '4e444573e7cfba10b12e56a02c6503ff' + 'f447bd43d7bb79f7a6b0fcf5dfdb24e1' + 'cf011b3a22124efad02ef190ae143b8f' '02a39154c246e03d8f8e745454c1619c') prepare() { @@ -36,6 +40,8 @@ prepare() { patch -p1 -i ${srcdir}/0002-OS-TotalPhysicalMemory-needed-for-MinGW-w64-too.patch patch -p1 -i ${srcdir}/0003-Use-soname_version.dll-not-so.soname_version-on-Windows.patch patch -p1 -i ${srcdir}/0004-Create-an-import-library-on-Windows.patch + patch -p1 -i ${srcdir}/0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch + patch -p1 -i ${srcdir}/0006-localtime_s-is-not-needed-for-mingw-w64.patch msg 'Fixing: python -> python2' #find -type f -exec sed -e 's_^#!/usr/bin/env python$_&2_' -e 's_^\(#!/usr/bin/env python2\).[45]$_\1_' -e 's_^#!/usr/bin/python$_&2_' -e "s_'python'_'python2'_" -i {} \; From cc09520e750f24c2307c20b62cdcaa19440f7f7a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 14 Feb 2015 13:15:22 +0300 Subject: [PATCH 0529/2060] ffmpeg: Update to 2.5.4 --- mingw-w64-ffmpeg/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index d37a6c6d67..8e81fb1546 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,8 +2,8 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.5.3 -pkgrel=2 +pkgver=2.5.4 +pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" @@ -41,7 +41,7 @@ depends=( ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://ffmpeg.org/releases/$_realname-$pkgver.tar.bz2) -md5sums=('efba7c5cfbea9ce58ff693cd08f90ffa') +md5sums=('af92a816b642d32134a764d2d7f55b75') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 8ad3be08f26016c75f3d2879373c63f8b672e40d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 15 Feb 2015 01:54:47 +0300 Subject: [PATCH 0530/2060] Rebuild harfbuzz, freetype, fontconfig. --- mingw-w64-fontconfig/PKGBUILD | 14 +++++++------- mingw-w64-freetype/PKGBUILD | 2 +- mingw-w64-harfbuzz/PKGBUILD | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mingw-w64-fontconfig/PKGBUILD b/mingw-w64-fontconfig/PKGBUILD index 6082fee42b..43495f1c5e 100644 --- a/mingw-w64-fontconfig/PKGBUILD +++ b/mingw-w64-fontconfig/PKGBUILD @@ -2,24 +2,23 @@ # Contributor: Renato Silva _realname=fontconfig - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.11.1 -pkgrel=2 +pkgrel=3 pkgdesc="A library for configuring and customizing font access (mingw-w64)" arch=('any') url="http://www.fontconfig.org/release" license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-expat>=2.1.0" - "${MINGW_PACKAGE_PREFIX}-freetype>=2.3.11" - "${MINGW_PACKAGE_PREFIX}-bzip2>=1.0.6" - "${MINGW_PACKAGE_PREFIX}-libiconv") + "${MINGW_PACKAGE_PREFIX}-expat>=2.1.0" + "${MINGW_PACKAGE_PREFIX}-freetype>=2.3.11" + "${MINGW_PACKAGE_PREFIX}-bzip2>=1.0.6" + "${MINGW_PACKAGE_PREFIX}-libiconv") options=('staticlibs' 'strip') install=${_realname}-${CARCH}.install source=("http://www.fontconfig.org/release/fontconfig-$pkgver.tar.bz2" - "fontconfig-2.11.0-symlinks-fix.patch") + "fontconfig-2.11.0-symlinks-fix.patch") sha256sums=('dc62447533bca844463a3c3fd4083b57c90f18a70506e7a9f4936b5a1e516a99' '92541375e945261832d4876551f94596fcf540c4edaf789ac0f36de7592c5966') @@ -40,6 +39,7 @@ build() { --disable-docs \ --with-arch=${CARCH} \ as_ln_s="cp -pR" + sed -i 's,all-am: Makefile $(PROGRAMS),all-am:,' test/Makefile make } diff --git a/mingw-w64-freetype/PKGBUILD b/mingw-w64-freetype/PKGBUILD index 559b9044c2..769ec7de05 100644 --- a/mingw-w64-freetype/PKGBUILD +++ b/mingw-w64-freetype/PKGBUILD @@ -4,7 +4,7 @@ _realname=freetype pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.5.5 -pkgrel=2 +pkgrel=3 pkgdesc="TrueType font rendering library (mingw-w64)" arch=('any') url="http://www.freetype.org/" diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 4de9a5c111..9481dc56dc 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -4,7 +4,7 @@ _realname=harfbuzz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.38 -pkgrel=2 +pkgrel=3 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/HarfBuzz" From b7487a9ffda203c8bf84371a8be5169d006e4321 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 15 Feb 2015 02:51:28 +0300 Subject: [PATCH 0531/2060] optipng: Update to 0.7.5 --- mingw-w64-optipng/PKGBUILD | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mingw-w64-optipng/PKGBUILD b/mingw-w64-optipng/PKGBUILD index 53e18fd7ad..9bd6ce0355 100644 --- a/mingw-w64-optipng/PKGBUILD +++ b/mingw-w64-optipng/PKGBUILD @@ -1,19 +1,20 @@ # Maintainer: Alexey Pavlov _realname=optipng - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.7.4 +pkgver=0.7.5 pkgrel=1 -pkgdesc="Compresses PNG files to a smaller size, without losing any information. (mingw-w64)" +pkgdesc="Compresses PNG files to a smaller size, without losing any information (mingw-w64)" arch=('any') url="http://optipng.sourceforge.net/" license=("ZLIB") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-zlib") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-zlib") options=('strip' 'staticlibs') source=("http://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-$pkgver.tar.gz") -md5sums=('8853d89aaf859065e95dcdf98b6bed73') +md5sums=('90ac1ec7945d48c0e9859b977b5df411') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -25,6 +26,7 @@ build() { --prefix=${MINGW_PREFIX} \ --with-system-libpng \ --with-system-zlib + make } From bf795b40109560ff9caa1d2979d89db3fb67dccb Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 15 Feb 2015 11:18:03 +0100 Subject: [PATCH 0532/2060] ghex: new package. --- mingw-w64-ghex/001-nohelp.patch | 11 +++++++ mingw-w64-ghex/002-fread.patch | 11 +++++++ mingw-w64-ghex/003-relocation.patch | 11 +++++++ mingw-w64-ghex/PKGBUILD | 51 +++++++++++++++++++++++++++++ mingw-w64-ghex/ghex-i686.install | 13 ++++++++ mingw-w64-ghex/ghex-x86_64.install | 13 ++++++++ 6 files changed, 110 insertions(+) create mode 100644 mingw-w64-ghex/001-nohelp.patch create mode 100644 mingw-w64-ghex/002-fread.patch create mode 100644 mingw-w64-ghex/003-relocation.patch create mode 100644 mingw-w64-ghex/PKGBUILD create mode 100644 mingw-w64-ghex/ghex-i686.install create mode 100644 mingw-w64-ghex/ghex-x86_64.install diff --git a/mingw-w64-ghex/001-nohelp.patch b/mingw-w64-ghex/001-nohelp.patch new file mode 100644 index 0000000000..65b4aa80d1 --- /dev/null +++ b/mingw-w64-ghex/001-nohelp.patch @@ -0,0 +1,11 @@ +--- ./Makefile.am.orig 2015-02-03 21:31:06.938593300 +0100 ++++ ./Makefile.am 2015-02-03 21:31:09.376081200 +0100 +@@ -2,7 +2,7 @@ + + ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + +-SUBDIRS = data po help src icons ++SUBDIRS = data po src icons + + EXTRA_DIST = \ + COPYING-DOCS \ diff --git a/mingw-w64-ghex/002-fread.patch b/mingw-w64-ghex/002-fread.patch new file mode 100644 index 0000000000..fa44024875 --- /dev/null +++ b/mingw-w64-ghex/002-fread.patch @@ -0,0 +1,11 @@ +--- ./src/hex-document.c.orig 2014-04-14 22:42:15.000000000 +0200 ++++ ./src/hex-document.c 2015-02-15 10:48:42.205722500 +0100 +@@ -652,7 +652,7 @@ + if(!get_document_attributes(doc)) + return FALSE; + +- if((file = fopen(doc->file_name, "r")) == NULL) ++ if((file = fopen(doc->file_name, "rb")) == NULL) + return FALSE; + + doc->gap_size = doc->buffer_size - doc->file_size; diff --git a/mingw-w64-ghex/003-relocation.patch b/mingw-w64-ghex/003-relocation.patch new file mode 100644 index 0000000000..380c9b29cc --- /dev/null +++ b/mingw-w64-ghex/003-relocation.patch @@ -0,0 +1,11 @@ +--- ./src/main.c.orig 2015-02-15 10:55:57.127815500 +0100 ++++ ./src/main.c 2015-02-15 10:56:03.630168400 +0100 +@@ -49,7 +49,7 @@ + install_dir = g_win32_get_package_installation_directory_of_module (NULL); + + if (install_dir) { +- utf8_locale_dir = g_build_filename (install_dir, "share", "locale", NULL); ++ utf8_locale_dir = g_build_filename (install_dir, "lib", "locale", NULL); + locale_dir = g_win32_locale_filename_from_utf8 (utf8_locale_dir); + + g_free (install_dir); diff --git a/mingw-w64-ghex/PKGBUILD b/mingw-w64-ghex/PKGBUILD new file mode 100644 index 0000000000..873e6bf437 --- /dev/null +++ b/mingw-w64-ghex/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: Andrea Zagli + +_realname=ghex +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.10.1 +pkgrel=1 +arch=('any') +pkgdesc="GNOME Hex editor for files (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme") +makedepends=() +license=("GPL 2") +url="http://www.gnome.org" +install=ghex-${CARCH}.install +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-nohelp.patch + 002-fread.patch + 003-relocation.patch) +sha256sums=('34b66cb5c84410c420df72f229d25aee5979e58048a246ed719b046f0c241132' + 'cd87d0040cd37a942ff8a1e3013bc96083920dc959dac0a96b543b8b706585ff' + '8e403c1e7c3f83adc768bfe45bb1ea42ae90fc4dfb7fe9bf4544820541a3241d' + 'd512e07249a3e02f4b35af9a952109da6a6600e96b5ec3882458fdfa79a65c7f') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -i ${srcdir}/001-nohelp.patch + patch -p 0 -i ${srcdir}/002-fread.patch + patch -p 0 -i ${srcdir}/003-relocation.patch + + autoreconf -if +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} diff --git a/mingw-w64-ghex/ghex-i686.install b/mingw-w64-ghex/ghex-i686.install new file mode 100644 index 0000000000..39341fa875 --- /dev/null +++ b/mingw-w64-ghex/ghex-i686.install @@ -0,0 +1,13 @@ +post_install() { + mingw32/bin/gtk-update-icon-cache -f -t /mingw32/share/icons/hicolor + mingw32/bin/gtk-update-icon-cache -f -t /mingw32/share/icons/HighContrast + mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/mingw-w64-ghex/ghex-x86_64.install b/mingw-w64-ghex/ghex-x86_64.install new file mode 100644 index 0000000000..ee12212924 --- /dev/null +++ b/mingw-w64-ghex/ghex-x86_64.install @@ -0,0 +1,13 @@ +post_install() { + mingw64/bin/gtk-update-icon-cache -f -t /mingw64/share/icons/hicolor + mingw64/bin/gtk-update-icon-cache -f -t /mingw64/share/icons/HighContrast + mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} From 21cacc3de46991978b757e4e47ead0d358574331 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 15 Feb 2015 14:01:22 +0300 Subject: [PATCH 0533/2060] ghex: Fix installing locales. --- mingw-w64-ghex/004-localedir-fix.patch | 32 ++++++++++++++++++++++++++ mingw-w64-ghex/PKGBUILD | 18 +++++++++------ 2 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-ghex/004-localedir-fix.patch diff --git a/mingw-w64-ghex/004-localedir-fix.patch b/mingw-w64-ghex/004-localedir-fix.patch new file mode 100644 index 0000000000..390f03b6cb --- /dev/null +++ b/mingw-w64-ghex/004-localedir-fix.patch @@ -0,0 +1,32 @@ +--- ./po/Makefile.in.in 2012-01-18 16:37:06 +0000 ++++ ./po/Makefile.in.in 2013-05-12 17:12:40 +0000 +@@ -33,8 +33,7 @@ + datadir = @datadir@ + datarootdir = @datarootdir@ + libdir = @libdir@ +-DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +107,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +141,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot diff --git a/mingw-w64-ghex/PKGBUILD b/mingw-w64-ghex/PKGBUILD index 873e6bf437..7ed6523517 100644 --- a/mingw-w64-ghex/PKGBUILD +++ b/mingw-w64-ghex/PKGBUILD @@ -9,27 +9,31 @@ pkgdesc="GNOME Hex editor for files (mingw-w64)" options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme") -makedepends=() +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") license=("GPL 2") url="http://www.gnome.org" install=ghex-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-nohelp.patch 002-fread.patch - 003-relocation.patch) + 003-relocation.patch + 004-localedir-fix.patch) sha256sums=('34b66cb5c84410c420df72f229d25aee5979e58048a246ed719b046f0c241132' 'cd87d0040cd37a942ff8a1e3013bc96083920dc959dac0a96b543b8b706585ff' '8e403c1e7c3f83adc768bfe45bb1ea42ae90fc4dfb7fe9bf4544820541a3241d' - 'd512e07249a3e02f4b35af9a952109da6a6600e96b5ec3882458fdfa79a65c7f') + 'd512e07249a3e02f4b35af9a952109da6a6600e96b5ec3882458fdfa79a65c7f' + '658ed0355d655372b8a1b1fc30a45ce4f02abbad51478132ed08d5373f9514d2') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -i ${srcdir}/001-nohelp.patch - patch -p 0 -i ${srcdir}/002-fread.patch - patch -p 0 -i ${srcdir}/003-relocation.patch + patch -p0 -i ${srcdir}/001-nohelp.patch + patch -p0 -i ${srcdir}/002-fread.patch + patch -p0 -i ${srcdir}/003-relocation.patch + patch -p0 -i ${srcdir}/004-localedir-fix.patch - autoreconf -if + autoreconf -ifv } build() { From fb471da16093384d5a13abfb2c401b144fb07f8a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 15 Feb 2015 20:48:16 +0300 Subject: [PATCH 0534/2060] imagemagick: Update to 6.9.0.6 --- mingw-w64-imagemagick/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index 032412b526..c6e8bfd2e1 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -2,7 +2,7 @@ _realname=imagemagick pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.9.0.5 +pkgver=6.9.0.6 pkgrel=1 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') @@ -50,7 +50,7 @@ source=(http://www.imagemagick.org/download/ImageMagick-${pkgver%.*}-${pkgver##* 001-relocate.patch 002-build-fixes.patch winpath.patch) -md5sums=('eabe2c58f946704608c44ffb4e0e1953' +md5sums=('fd481f9fdee33ab218184a1412bae93d' 'SKIP' 'c95a23e8562dbab4e6b0e5407da25209' '7821087a00c459c0d3482508fdc1e25e' From 6d9319379ac0667459035d45638e1144d9351ef8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 16 Feb 2015 06:58:40 +0300 Subject: [PATCH 0535/2060] Update mingw-w64 runtime to git SHA [4fd76bd] --- mingw-w64-crt-git/PKGBUILD | 8 +++++--- mingw-w64-headers-git/PKGBUILD | 10 ++++++---- mingw-w64-winpthreads-git/PKGBUILD | 8 +++++--- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index e007de04c1..072f948a7a 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,8 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -_ver_base=4.0.0 -pkgver=4.0.0.4421.7a87c02 +pkgver=5.0.0.4448.4fd76bd pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -21,7 +20,10 @@ md5sums=('SKIP') pkgver() { cd "$srcdir/${_realname}" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _rev=0 + printf "%s.%s.%s.%s.%s" ${_major} ${_minor} ${_rev} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index d7e8ab5465..90408e786c 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,9 +4,8 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -_ver_base=4.0.0 -pkgver=4.0.0.4421.7a87c02 -pkgrel=2 +pkgver=5.0.0.4448.4fd76bd +pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" license=('custom') @@ -20,7 +19,10 @@ md5sums=('SKIP') pkgver() { cd "$srcdir/$_realname" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _rev=0 + printf "%s.%s.%s.%s.%s" ${_major} ${_minor} ${_rev} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index ef32cb9973..19b0aa381b 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -4,8 +4,7 @@ _realname=winpthreads pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") -_ver_base=4.0.0 -pkgver=4.0.0.4443.54a3822 +pkgver=5.0.0.4448.4fd76bd pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" arch=('any') @@ -25,7 +24,10 @@ md5sums=('SKIP' pkgver() { cd "${srcdir}/${_realname}" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _rev=0 + printf "%s.%s.%s.%s.%s" ${_major} ${_minor} ${_rev} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { From ec10fdd0305000404326b5e495646ce6c8f1aa60 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 16 Feb 2015 14:11:10 +0300 Subject: [PATCH 0536/2060] ghex: Don't need relocate patch. --- mingw-w64-ghex/003-relocation.patch | 11 ----------- mingw-w64-ghex/PKGBUILD | 5 +---- 2 files changed, 1 insertion(+), 15 deletions(-) delete mode 100644 mingw-w64-ghex/003-relocation.patch diff --git a/mingw-w64-ghex/003-relocation.patch b/mingw-w64-ghex/003-relocation.patch deleted file mode 100644 index 380c9b29cc..0000000000 --- a/mingw-w64-ghex/003-relocation.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./src/main.c.orig 2015-02-15 10:55:57.127815500 +0100 -+++ ./src/main.c 2015-02-15 10:56:03.630168400 +0100 -@@ -49,7 +49,7 @@ - install_dir = g_win32_get_package_installation_directory_of_module (NULL); - - if (install_dir) { -- utf8_locale_dir = g_build_filename (install_dir, "share", "locale", NULL); -+ utf8_locale_dir = g_build_filename (install_dir, "lib", "locale", NULL); - locale_dir = g_win32_locale_filename_from_utf8 (utf8_locale_dir); - - g_free (install_dir); diff --git a/mingw-w64-ghex/PKGBUILD b/mingw-w64-ghex/PKGBUILD index 7ed6523517..d723b35d6d 100644 --- a/mingw-w64-ghex/PKGBUILD +++ b/mingw-w64-ghex/PKGBUILD @@ -3,7 +3,7 @@ _realname=ghex pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.10.1 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="GNOME Hex editor for files (mingw-w64)" options=(strip staticlibs) @@ -17,12 +17,10 @@ install=ghex-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-nohelp.patch 002-fread.patch - 003-relocation.patch 004-localedir-fix.patch) sha256sums=('34b66cb5c84410c420df72f229d25aee5979e58048a246ed719b046f0c241132' 'cd87d0040cd37a942ff8a1e3013bc96083920dc959dac0a96b543b8b706585ff' '8e403c1e7c3f83adc768bfe45bb1ea42ae90fc4dfb7fe9bf4544820541a3241d' - 'd512e07249a3e02f4b35af9a952109da6a6600e96b5ec3882458fdfa79a65c7f' '658ed0355d655372b8a1b1fc30a45ce4f02abbad51478132ed08d5373f9514d2') prepare() { @@ -30,7 +28,6 @@ prepare() { patch -p0 -i ${srcdir}/001-nohelp.patch patch -p0 -i ${srcdir}/002-fread.patch - patch -p0 -i ${srcdir}/003-relocation.patch patch -p0 -i ${srcdir}/004-localedir-fix.patch autoreconf -ifv From 3ddb7d2f0ffc9b76b0ac8fd8c8aab68d1a89fefa Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 16 Feb 2015 14:51:32 +0300 Subject: [PATCH 0537/2060] libtool: Update to 2.4.6 --- mingw-w64-libtool/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libtool/PKGBUILD b/mingw-w64-libtool/PKGBUILD index a91766e273..e18b17db01 100644 --- a/mingw-w64-libtool/PKGBUILD +++ b/mingw-w64-libtool/PKGBUILD @@ -3,8 +3,8 @@ _realname=libtool pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.4.5 -pkgrel=2 +pkgver=2.4.6 +pkgrel=1 pkgdesc="A system independent dlopen wrapper for GNU libtool (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libtool" @@ -19,7 +19,7 @@ source=("http://ftp.gnu.org/pub/gnu/libtool/libtool-${pkgver}.tar.xz"{,.sig} 0005-Fix-seems-to-be-moved.patch 0006-Fix-strict-ansi-vs-posix.patch 0007-fix-cr-for-awk-in-configure.all.patch) -md5sums=('ee9c087775aeb98ce53a9c69da865a55' +md5sums=('1bfb9b923f2c1339b4d2ce1807064aa5' 'SKIP' '091163f2cc8c2dd8c8d5574181eb53e1' '2396f4f169edb316d8d076897ff03347' From c4564334eb13c624b32388eda599fc696a8bf5ec Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 23:51:39 +0000 Subject: [PATCH 0538/2060] headers: add dx11 patches --- ...ototype-for-CreateDeviceAndSwapChain.patch | 47 + ...dxgi-Add-interface-for-IDXGISurface1.patch | 258 +++ ...sing-dxgi-1.2-structs-and-interfaces.patch | 1718 +++++++++++++++++ ...ing-d3d11-1.1-structs-and-interfaces.patch | 1157 +++++++++++ mingw-w64-headers-git/PKGBUILD | 26 +- 5 files changed, 3201 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch create mode 100644 mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch create mode 100644 mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch create mode 100644 mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch diff --git a/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch b/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch new file mode 100644 index 0000000000..59959a3749 --- /dev/null +++ b/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch @@ -0,0 +1,47 @@ +From 606f796685f7833ead74c25d4344b648353f6f2f Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 16 Feb 2015 19:02:56 +0000 +Subject: [PATCH 1/4] d3d11: Add prototype for CreateDeviceAndSwapChain + +--- + mingw-w64-headers/direct-x/include/d3d11.h | 3 +++ + mingw-w64-headers/direct-x/include/d3d11.idl | 5 +++++ + 2 files changed, 8 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h +index 34c846b..4896a79 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.h ++++ b/mingw-w64-headers/direct-x/include/d3d11.h +@@ -8857,6 +8857,9 @@ HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,cons + typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT, + const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**, + D3D_FEATURE_LEVEL*,ID3D11DeviceContext**); ++HRESULT WINAPI D3D11CreateDeviceAndSwapChain(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT, ++ const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**, ++ D3D_FEATURE_LEVEL*,ID3D11DeviceContext**); + /* Begin additional prototypes for all interfaces */ + + +diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl +index d5732c9..d2ecbfa 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.idl ++++ b/mingw-w64-headers/direct-x/include/d3d11.idl +@@ -1,6 +1,7 @@ + /* + * Copyright 2010 Rico Schüller + * Copyright 2013 Austin English ++ * Copyright 2015 Martell Malone + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -2134,3 +2135,7 @@ cpp_quote(" UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext** + cpp_quote("typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") + cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") + cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") ++ ++cpp_quote("HRESULT WINAPI D3D11CreateDeviceAndSwapChain(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") ++cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") ++cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") +-- +2.3.0 + diff --git a/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch b/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch new file mode 100644 index 0000000000..5a362963cb --- /dev/null +++ b/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch @@ -0,0 +1,258 @@ +From f9592e22e65a0e6c1d0c390534618e5bb946c2a2 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 16 Feb 2015 19:56:22 +0000 +Subject: [PATCH 2/4] dxgi: Add interface for IDXGISurface1 + +--- + mingw-w64-headers/direct-x/include/dxgi.h | 191 ++++++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/dxgi.idl | 19 +++ + 2 files changed, 210 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/dxgi.h b/mingw-w64-headers/direct-x/include/dxgi.h +index a8a99ed..edfae00 100644 +--- a/mingw-w64-headers/direct-x/include/dxgi.h ++++ b/mingw-w64-headers/direct-x/include/dxgi.h +@@ -42,6 +42,11 @@ typedef interface IDXGIKeyedMutex IDXGIKeyedMutex; + typedef interface IDXGISurface IDXGISurface; + #endif + ++#ifndef __IDXGISurface1_FWD_DEFINED__ ++#define __IDXGISurface1_FWD_DEFINED__ ++typedef interface IDXGISurface1 IDXGISurface1; ++#endif ++ + #ifndef __IDXGIOutput_FWD_DEFINED__ + #define __IDXGIOutput_FWD_DEFINED__ + typedef interface IDXGIOutput IDXGIOutput; +@@ -1018,6 +1023,192 @@ void __RPC_STUB IDXGISurface_Unmap_Stub( + #endif /* __IDXGISurface_INTERFACE_DEFINED__ */ + + /***************************************************************************** ++ * IDXGISurface1 interface ++ */ ++#ifndef __IDXGISurface1_INTERFACE_DEFINED__ ++#define __IDXGISurface1_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGISurface1, 0x4ae63092, 0x6327, 0x4c1b, 0x80,0xae, 0xbf,0xe1,0x2e,0xa3,0x2b,0x86); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("4ae63092-6327-4c1b-80ae-bfe12ea32b86") ++IDXGISurface1 : public IDXGISurface ++{ ++ virtual HRESULT STDMETHODCALLTYPE GetDC( ++ WINBOOL Discard, ++ HDC *dc) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE ReleaseDC( ++ RECT *rect) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGISurface1, 0x4ae63092, 0x6327, 0x4c1b, 0x80,0xae, 0xbf,0xe1,0x2e,0xa3,0x2b,0x86) ++#endif ++#else ++typedef struct IDXGISurface1Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGISurface1* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGISurface1* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGISurface1* This); ++ ++ /*** IDXGIObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ IDXGISurface1* This, ++ REFGUID guid, ++ UINT data_size, ++ const void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ IDXGISurface1* This, ++ REFGUID guid, ++ const IUnknown *object); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ IDXGISurface1* This, ++ REFGUID guid, ++ UINT *data_size, ++ void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *GetParent)( ++ IDXGISurface1* This, ++ REFIID riid, ++ void **parent); ++ ++ /*** IDXGIDeviceSubObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDevice)( ++ IDXGISurface1* This, ++ REFIID riid, ++ void **device); ++ ++ /*** IDXGISurface methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDesc)( ++ IDXGISurface1* This, ++ DXGI_SURFACE_DESC *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *Map)( ++ IDXGISurface1* This, ++ DXGI_MAPPED_RECT *mapped_rect, ++ UINT flags); ++ ++ HRESULT (STDMETHODCALLTYPE *Unmap)( ++ IDXGISurface1* This); ++ ++ /*** IDXGISurface1 methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDC)( ++ IDXGISurface1* This, ++ WINBOOL Discard, ++ HDC *dc); ++ ++ HRESULT (STDMETHODCALLTYPE *ReleaseDC)( ++ IDXGISurface1* This, ++ RECT *rect); ++ ++ END_INTERFACE ++} IDXGISurface1Vtbl; ++interface IDXGISurface1 { ++ CONST_VTBL IDXGISurface1Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGISurface1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGISurface1_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGISurface1_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIObject methods ***/ ++#define IDXGISurface1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) ++#define IDXGISurface1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) ++#define IDXGISurface1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) ++#define IDXGISurface1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) ++/*** IDXGIDeviceSubObject methods ***/ ++#define IDXGISurface1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) ++/*** IDXGISurface methods ***/ ++#define IDXGISurface1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) ++#define IDXGISurface1_Map(This,mapped_rect,flags) (This)->lpVtbl->Map(This,mapped_rect,flags) ++#define IDXGISurface1_Unmap(This) (This)->lpVtbl->Unmap(This) ++/*** IDXGISurface1 methods ***/ ++#define IDXGISurface1_GetDC(This,Discard,dc) (This)->lpVtbl->GetDC(This,Discard,dc) ++#define IDXGISurface1_ReleaseDC(This,rect) (This)->lpVtbl->ReleaseDC(This,rect) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGISurface1_QueryInterface(IDXGISurface1* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGISurface1_AddRef(IDXGISurface1* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGISurface1_Release(IDXGISurface1* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIObject methods ***/ ++static FORCEINLINE HRESULT IDXGISurface1_SetPrivateData(IDXGISurface1* This,REFGUID guid,UINT data_size,const void *data) { ++ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGISurface1_SetPrivateDataInterface(IDXGISurface1* This,REFGUID guid,const IUnknown *object) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); ++} ++static FORCEINLINE HRESULT IDXGISurface1_GetPrivateData(IDXGISurface1* This,REFGUID guid,UINT *data_size,void *data) { ++ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGISurface1_GetParent(IDXGISurface1* This,REFIID riid,void **parent) { ++ return This->lpVtbl->GetParent(This,riid,parent); ++} ++/*** IDXGIDeviceSubObject methods ***/ ++static FORCEINLINE HRESULT IDXGISurface1_GetDevice(IDXGISurface1* This,REFIID riid,void **device) { ++ return This->lpVtbl->GetDevice(This,riid,device); ++} ++/*** IDXGISurface methods ***/ ++static FORCEINLINE HRESULT IDXGISurface1_GetDesc(IDXGISurface1* This,DXGI_SURFACE_DESC *desc) { ++ return This->lpVtbl->GetDesc(This,desc); ++} ++static FORCEINLINE HRESULT IDXGISurface1_Map(IDXGISurface1* This,DXGI_MAPPED_RECT *mapped_rect,UINT flags) { ++ return This->lpVtbl->Map(This,mapped_rect,flags); ++} ++static FORCEINLINE HRESULT IDXGISurface1_Unmap(IDXGISurface1* This) { ++ return This->lpVtbl->Unmap(This); ++} ++/*** IDXGISurface1 methods ***/ ++static FORCEINLINE HRESULT IDXGISurface1_GetDC(IDXGISurface1* This,WINBOOL Discard,HDC *dc) { ++ return This->lpVtbl->GetDC(This,Discard,dc); ++} ++static FORCEINLINE HRESULT IDXGISurface1_ReleaseDC(IDXGISurface1* This,RECT *rect) { ++ return This->lpVtbl->ReleaseDC(This,rect); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE IDXGISurface1_GetDC_Proxy( ++ IDXGISurface1* This, ++ WINBOOL Discard, ++ HDC *dc); ++void __RPC_STUB IDXGISurface1_GetDC_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGISurface1_ReleaseDC_Proxy( ++ IDXGISurface1* This, ++ RECT *rect); ++void __RPC_STUB IDXGISurface1_ReleaseDC_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGISurface1_INTERFACE_DEFINED__ */ ++ ++/***************************************************************************** + * IDXGIOutput interface + */ + #ifndef __IDXGIOutput_INTERFACE_DEFINED__ +diff --git a/mingw-w64-headers/direct-x/include/dxgi.idl b/mingw-w64-headers/direct-x/include/dxgi.idl +index bc9538e..330a2c3 100644 +--- a/mingw-w64-headers/direct-x/include/dxgi.idl ++++ b/mingw-w64-headers/direct-x/include/dxgi.idl +@@ -1,5 +1,6 @@ + /* + * Copyright 2007 Andras Kovacs ++ * Copyright 2015 Martell Malone + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -222,6 +223,24 @@ interface IDXGISurface : IDXGIDeviceSubObject + + [ + object, ++ uuid(4ae63092-6327-4c1b-80ae-bfe12ea32b86), ++ local, ++ pointer_default(unique) ++] ++interface IDXGISurface1 : IDXGISurface ++{ ++ HRESULT GetDC( ++ [in] BOOL Discard, ++ [out] HDC *dc ++ ); ++ ++ HRESULT ReleaseDC( ++ [in] RECT *rect ++ ); ++} ++ ++[ ++ object, + local, + uuid(ae02eedb-c735-4690-8d52-5a8dc20213aa) + ] +-- +2.3.0 + diff --git a/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch b/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch new file mode 100644 index 0000000000..a6cb664567 --- /dev/null +++ b/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch @@ -0,0 +1,1718 @@ +From 5795b28b5cd163b7ade55196f929a7ec5683bf19 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 16 Feb 2015 23:10:00 +0000 +Subject: [PATCH 3/4] dxgi: Add missing dxgi 1.2 structs and interfaces + +--- + mingw-w64-headers/direct-x/include/dxgi1_2.h | 1384 ++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/dxgi1_2.idl | 268 +++++ + 2 files changed, 1652 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.h b/mingw-w64-headers/direct-x/include/dxgi1_2.h +index f621d30..406135b 100644 +--- a/mingw-w64-headers/direct-x/include/dxgi1_2.h ++++ b/mingw-w64-headers/direct-x/include/dxgi1_2.h +@@ -17,6 +17,16 @@ + + /* Forward declarations */ + ++#ifndef __IDXGIDisplayControl_FWD_DEFINED__ ++#define __IDXGIDisplayControl_FWD_DEFINED__ ++typedef interface IDXGIDisplayControl IDXGIDisplayControl; ++#endif ++ ++#ifndef __IDXGIOutputDuplication_FWD_DEFINED__ ++#define __IDXGIOutputDuplication_FWD_DEFINED__ ++typedef interface IDXGIOutputDuplication IDXGIOutputDuplication; ++#endif ++ + #ifndef __IDXGIDevice2_FWD_DEFINED__ + #define __IDXGIDevice2_FWD_DEFINED__ + typedef interface IDXGIDevice2 IDXGIDevice2; +@@ -27,6 +37,21 @@ typedef interface IDXGIDevice2 IDXGIDevice2; + typedef interface IDXGISwapChain1 IDXGISwapChain1; + #endif + ++#ifndef __IDXGIFactory2_FWD_DEFINED__ ++#define __IDXGIFactory2_FWD_DEFINED__ ++typedef interface IDXGIFactory2 IDXGIFactory2; ++#endif ++ ++#ifndef __IDXGIAdapter2_FWD_DEFINED__ ++#define __IDXGIAdapter2_FWD_DEFINED__ ++typedef interface IDXGIAdapter2 IDXGIAdapter2; ++#endif ++ ++#ifndef __IDXGIOutput1_FWD_DEFINED__ ++#define __IDXGIOutput1_FWD_DEFINED__ ++typedef interface IDXGIOutput1 IDXGIOutput1; ++#endif ++ + /* Headers for imported files */ + + #include +@@ -35,6 +60,423 @@ typedef interface IDXGISwapChain1 IDXGISwapChain1; + extern "C" { + #endif + ++/***************************************************************************** ++ * IDXGIDisplayControl interface ++ */ ++#ifndef __IDXGIDisplayControl_INTERFACE_DEFINED__ ++#define __IDXGIDisplayControl_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("ea9dbf1a-c88e-4486-854a-98aa0138f30c") ++IDXGIDisplayControl : public IUnknown ++{ ++ virtual WINBOOL STDMETHODCALLTYPE IsStereoEnabled( ++ ) = 0; ++ ++ virtual void STDMETHODCALLTYPE SetStereoEnabled( ++ WINBOOL enabled) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c) ++#endif ++#else ++typedef struct IDXGIDisplayControlVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGIDisplayControl* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGIDisplayControl* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGIDisplayControl* This); ++ ++ /*** IDXGIDisplayControl methods ***/ ++ WINBOOL (STDMETHODCALLTYPE *IsStereoEnabled)( ++ IDXGIDisplayControl* This); ++ ++ void (STDMETHODCALLTYPE *SetStereoEnabled)( ++ IDXGIDisplayControl* This, ++ WINBOOL enabled); ++ ++ END_INTERFACE ++} IDXGIDisplayControlVtbl; ++interface IDXGIDisplayControl { ++ CONST_VTBL IDXGIDisplayControlVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGIDisplayControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGIDisplayControl_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGIDisplayControl_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIDisplayControl methods ***/ ++#define IDXGIDisplayControl_IsStereoEnabled(This) (This)->lpVtbl->IsStereoEnabled(This) ++#define IDXGIDisplayControl_SetStereoEnabled(This,enabled) (This)->lpVtbl->SetStereoEnabled(This,enabled) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGIDisplayControl_QueryInterface(IDXGIDisplayControl* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGIDisplayControl_AddRef(IDXGIDisplayControl* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGIDisplayControl_Release(IDXGIDisplayControl* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIDisplayControl methods ***/ ++static FORCEINLINE WINBOOL IDXGIDisplayControl_IsStereoEnabled(IDXGIDisplayControl* This) { ++ return This->lpVtbl->IsStereoEnabled(This); ++} ++static FORCEINLINE void IDXGIDisplayControl_SetStereoEnabled(IDXGIDisplayControl* This,WINBOOL enabled) { ++ This->lpVtbl->SetStereoEnabled(This,enabled); ++} ++#endif ++#endif ++ ++#endif ++ ++WINBOOL STDMETHODCALLTYPE IDXGIDisplayControl_IsStereoEnabled_Proxy( ++ IDXGIDisplayControl* This); ++void __RPC_STUB IDXGIDisplayControl_IsStereoEnabled_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++void STDMETHODCALLTYPE IDXGIDisplayControl_SetStereoEnabled_Proxy( ++ IDXGIDisplayControl* This, ++ WINBOOL enabled); ++void __RPC_STUB IDXGIDisplayControl_SetStereoEnabled_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGIDisplayControl_INTERFACE_DEFINED__ */ ++ ++typedef struct DXGI_OUTDUPL_MOVE_RECT { ++ POINT SourcePoint; ++ RECT DestinationRect; ++} DXGI_OUTDUPL_MOVE_RECT; ++typedef struct DXGI_OUTDUPL_DESC { ++ DXGI_MODE_DESC ModeDesc; ++ DXGI_MODE_ROTATION Rotation; ++ WINBOOL DesktopImageInSystemMemory; ++} DXGI_OUTDUPL_DESC; ++typedef struct DXGI_OUTDUPL_POINTER_POSITION { ++ POINT Position; ++ WINBOOL Visible; ++} DXGI_OUTDUPL_POINTER_POSITION; ++typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE { ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x1, ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2, ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4 ++} DXGI_OUTDUPL_POINTER_SHAPE_TYPE; ++typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO { ++ UINT Type; ++ UINT Width; ++ UINT Height; ++ UINT Pitch; ++ POINT HotSpot; ++} DXGI_OUTDUPL_POINTER_SHAPE_INFO; ++typedef struct DXGI_OUTDUPL_FRAME_INFO { ++ LARGE_INTEGER LastPresentTime; ++ LARGE_INTEGER LastMouseUpdateTime; ++ UINT AccumulatedFrames; ++ WINBOOL RectsCoalesced; ++ WINBOOL ProtectedContentMaskedOut; ++ DXGI_OUTDUPL_POINTER_POSITION PointerPosition; ++ UINT TotalMetadataBufferSize; ++ UINT PointerShapeBufferSize; ++} DXGI_OUTDUPL_FRAME_INFO; ++/***************************************************************************** ++ * IDXGIOutputDuplication interface ++ */ ++#ifndef __IDXGIOutputDuplication_INTERFACE_DEFINED__ ++#define __IDXGIOutputDuplication_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("191cfac3-a341-470d-b26e-a864f428319c") ++IDXGIOutputDuplication : public IDXGIObject ++{ ++ virtual void STDMETHODCALLTYPE GetDesc( ++ DXGI_OUTDUPL_DESC *desc) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE AcquireNextFrame( ++ UINT timeout, ++ DXGI_OUTDUPL_FRAME_INFO *frame_info, ++ IDXGIResource **resource) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetFrameDirtyRects( ++ UINT dirty_size, ++ RECT *buffer, ++ UINT *buffer_size) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetFrameMoveRects( ++ UINT move_size, ++ DXGI_OUTDUPL_MOVE_RECT *rect, ++ UINT *rect_size) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetFramePointerShape( ++ UINT shape_size, ++ void *buffer, ++ UINT *buffer_size, ++ DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE MapDesktopSurface( ++ DXGI_MAPPED_RECT *rect) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE UnMapDesktopSurface( ++ ) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE ReleaseFrame( ++ ) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c) ++#endif ++#else ++typedef struct IDXGIOutputDuplicationVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGIOutputDuplication* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGIOutputDuplication* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGIOutputDuplication* This); ++ ++ /*** IDXGIObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ IDXGIOutputDuplication* This, ++ REFGUID guid, ++ UINT data_size, ++ const void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ IDXGIOutputDuplication* This, ++ REFGUID guid, ++ const IUnknown *object); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ IDXGIOutputDuplication* This, ++ REFGUID guid, ++ UINT *data_size, ++ void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *GetParent)( ++ IDXGIOutputDuplication* This, ++ REFIID riid, ++ void **parent); ++ ++ /*** IDXGIOutputDuplication methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc)( ++ IDXGIOutputDuplication* This, ++ DXGI_OUTDUPL_DESC *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *AcquireNextFrame)( ++ IDXGIOutputDuplication* This, ++ UINT timeout, ++ DXGI_OUTDUPL_FRAME_INFO *frame_info, ++ IDXGIResource **resource); ++ ++ HRESULT (STDMETHODCALLTYPE *GetFrameDirtyRects)( ++ IDXGIOutputDuplication* This, ++ UINT dirty_size, ++ RECT *buffer, ++ UINT *buffer_size); ++ ++ HRESULT (STDMETHODCALLTYPE *GetFrameMoveRects)( ++ IDXGIOutputDuplication* This, ++ UINT move_size, ++ DXGI_OUTDUPL_MOVE_RECT *rect, ++ UINT *rect_size); ++ ++ HRESULT (STDMETHODCALLTYPE *GetFramePointerShape)( ++ IDXGIOutputDuplication* This, ++ UINT shape_size, ++ void *buffer, ++ UINT *buffer_size, ++ DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info); ++ ++ HRESULT (STDMETHODCALLTYPE *MapDesktopSurface)( ++ IDXGIOutputDuplication* This, ++ DXGI_MAPPED_RECT *rect); ++ ++ HRESULT (STDMETHODCALLTYPE *UnMapDesktopSurface)( ++ IDXGIOutputDuplication* This); ++ ++ HRESULT (STDMETHODCALLTYPE *ReleaseFrame)( ++ IDXGIOutputDuplication* This); ++ ++ END_INTERFACE ++} IDXGIOutputDuplicationVtbl; ++interface IDXGIOutputDuplication { ++ CONST_VTBL IDXGIOutputDuplicationVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGIOutputDuplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGIOutputDuplication_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGIOutputDuplication_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIObject methods ***/ ++#define IDXGIOutputDuplication_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) ++#define IDXGIOutputDuplication_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) ++#define IDXGIOutputDuplication_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) ++#define IDXGIOutputDuplication_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) ++/*** IDXGIOutputDuplication methods ***/ ++#define IDXGIOutputDuplication_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) ++#define IDXGIOutputDuplication_AcquireNextFrame(This,timeout,frame_info,resource) (This)->lpVtbl->AcquireNextFrame(This,timeout,frame_info,resource) ++#define IDXGIOutputDuplication_GetFrameDirtyRects(This,dirty_size,buffer,buffer_size) (This)->lpVtbl->GetFrameDirtyRects(This,dirty_size,buffer,buffer_size) ++#define IDXGIOutputDuplication_GetFrameMoveRects(This,move_size,rect,rect_size) (This)->lpVtbl->GetFrameMoveRects(This,move_size,rect,rect_size) ++#define IDXGIOutputDuplication_GetFramePointerShape(This,shape_size,buffer,buffer_size,shape_info) (This)->lpVtbl->GetFramePointerShape(This,shape_size,buffer,buffer_size,shape_info) ++#define IDXGIOutputDuplication_MapDesktopSurface(This,rect) (This)->lpVtbl->MapDesktopSurface(This,rect) ++#define IDXGIOutputDuplication_UnMapDesktopSurface(This) (This)->lpVtbl->UnMapDesktopSurface(This) ++#define IDXGIOutputDuplication_ReleaseFrame(This) (This)->lpVtbl->ReleaseFrame(This) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGIOutputDuplication_QueryInterface(IDXGIOutputDuplication* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGIOutputDuplication_AddRef(IDXGIOutputDuplication* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGIOutputDuplication_Release(IDXGIOutputDuplication* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIObject methods ***/ ++static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT data_size,const void *data) { ++ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateDataInterface(IDXGIOutputDuplication* This,REFGUID guid,const IUnknown *object) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_GetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT *data_size,void *data) { ++ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_GetParent(IDXGIOutputDuplication* This,REFIID riid,void **parent) { ++ return This->lpVtbl->GetParent(This,riid,parent); ++} ++/*** IDXGIOutputDuplication methods ***/ ++static FORCEINLINE void IDXGIOutputDuplication_GetDesc(IDXGIOutputDuplication* This,DXGI_OUTDUPL_DESC *desc) { ++ This->lpVtbl->GetDesc(This,desc); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_AcquireNextFrame(IDXGIOutputDuplication* This,UINT timeout,DXGI_OUTDUPL_FRAME_INFO *frame_info,IDXGIResource **resource) { ++ return This->lpVtbl->AcquireNextFrame(This,timeout,frame_info,resource); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameDirtyRects(IDXGIOutputDuplication* This,UINT dirty_size,RECT *buffer,UINT *buffer_size) { ++ return This->lpVtbl->GetFrameDirtyRects(This,dirty_size,buffer,buffer_size); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameMoveRects(IDXGIOutputDuplication* This,UINT move_size,DXGI_OUTDUPL_MOVE_RECT *rect,UINT *rect_size) { ++ return This->lpVtbl->GetFrameMoveRects(This,move_size,rect,rect_size); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFramePointerShape(IDXGIOutputDuplication* This,UINT shape_size,void *buffer,UINT *buffer_size,DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info) { ++ return This->lpVtbl->GetFramePointerShape(This,shape_size,buffer,buffer_size,shape_info); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_MapDesktopSurface(IDXGIOutputDuplication* This,DXGI_MAPPED_RECT *rect) { ++ return This->lpVtbl->MapDesktopSurface(This,rect); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_UnMapDesktopSurface(IDXGIOutputDuplication* This) { ++ return This->lpVtbl->UnMapDesktopSurface(This); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_ReleaseFrame(IDXGIOutputDuplication* This) { ++ return This->lpVtbl->ReleaseFrame(This); ++} ++#endif ++#endif ++ ++#endif ++ ++void STDMETHODCALLTYPE IDXGIOutputDuplication_GetDesc_Proxy( ++ IDXGIOutputDuplication* This, ++ DXGI_OUTDUPL_DESC *desc); ++void __RPC_STUB IDXGIOutputDuplication_GetDesc_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_AcquireNextFrame_Proxy( ++ IDXGIOutputDuplication* This, ++ UINT timeout, ++ DXGI_OUTDUPL_FRAME_INFO *frame_info, ++ IDXGIResource **resource); ++void __RPC_STUB IDXGIOutputDuplication_AcquireNextFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFrameDirtyRects_Proxy( ++ IDXGIOutputDuplication* This, ++ UINT dirty_size, ++ RECT *buffer, ++ UINT *buffer_size); ++void __RPC_STUB IDXGIOutputDuplication_GetFrameDirtyRects_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFrameMoveRects_Proxy( ++ IDXGIOutputDuplication* This, ++ UINT move_size, ++ DXGI_OUTDUPL_MOVE_RECT *rect, ++ UINT *rect_size); ++void __RPC_STUB IDXGIOutputDuplication_GetFrameMoveRects_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFramePointerShape_Proxy( ++ IDXGIOutputDuplication* This, ++ UINT shape_size, ++ void *buffer, ++ UINT *buffer_size, ++ DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info); ++void __RPC_STUB IDXGIOutputDuplication_GetFramePointerShape_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_MapDesktopSurface_Proxy( ++ IDXGIOutputDuplication* This, ++ DXGI_MAPPED_RECT *rect); ++void __RPC_STUB IDXGIOutputDuplication_MapDesktopSurface_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_UnMapDesktopSurface_Proxy( ++ IDXGIOutputDuplication* This); ++void __RPC_STUB IDXGIOutputDuplication_UnMapDesktopSurface_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_ReleaseFrame_Proxy( ++ IDXGIOutputDuplication* This); ++void __RPC_STUB IDXGIOutputDuplication_ReleaseFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGIOutputDuplication_INTERFACE_DEFINED__ */ ++ + typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { + DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, + DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2, +@@ -745,6 +1187,948 @@ void __RPC_STUB IDXGISwapChain1_GetRotation_Stub( + + #endif /* __IDXGISwapChain1_INTERFACE_DEFINED__ */ + ++/***************************************************************************** ++ * IDXGIFactory2 interface ++ */ ++#ifndef __IDXGIFactory2_INTERFACE_DEFINED__ ++#define __IDXGIFactory2_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("50c83a1c-e072-4c48-87b0-3630fa36a6d0") ++IDXGIFactory2 : public IDXGIFactory1 ++{ ++ virtual WINBOOL STDMETHODCALLTYPE IsWindowedStereoEnabled( ++ ) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForHwnd( ++ IUnknown *device, ++ HWND hwnd, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForCoreWindow( ++ IUnknown *device, ++ IUnknown *window, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetSharedResourceAdapterLuid( ++ HANDLE resource, ++ LUID *luid) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusWindow( ++ HWND window, ++ UINT msg, ++ DWORD *cookie) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusEvent( ++ HANDLE event, ++ DWORD *cookie) = 0; ++ ++ virtual void STDMETHODCALLTYPE UnregisterStereoStatus( ++ DWORD cookie) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusWindow( ++ HWND window, ++ UINT msg, ++ DWORD *cookie) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusEvent( ++ HANDLE event, ++ DWORD *cookie) = 0; ++ ++ virtual void STDMETHODCALLTYPE UnregisterOcclusionStatus( ++ DWORD cookie) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForComposition( ++ IUnknown *device, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0) ++#endif ++#else ++typedef struct IDXGIFactory2Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGIFactory2* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGIFactory2* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGIFactory2* This); ++ ++ /*** IDXGIObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ IDXGIFactory2* This, ++ REFGUID guid, ++ UINT data_size, ++ const void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ IDXGIFactory2* This, ++ REFGUID guid, ++ const IUnknown *object); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ IDXGIFactory2* This, ++ REFGUID guid, ++ UINT *data_size, ++ void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *GetParent)( ++ IDXGIFactory2* This, ++ REFIID riid, ++ void **parent); ++ ++ /*** IDXGIFactory methods ***/ ++ HRESULT (STDMETHODCALLTYPE *EnumAdapters)( ++ IDXGIFactory2* This, ++ UINT adapter_idx, ++ IDXGIAdapter **adapter); ++ ++ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)( ++ IDXGIFactory2* This, ++ HWND window, ++ UINT flags); ++ ++ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)( ++ IDXGIFactory2* This, ++ HWND *window); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ DXGI_SWAP_CHAIN_DESC *desc, ++ IDXGISwapChain **swapchain); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)( ++ IDXGIFactory2* This, ++ HMODULE swrast, ++ IDXGIAdapter **adapter); ++ ++ /*** IDXGIFactory1 methods ***/ ++ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)( ++ IDXGIFactory2* This, ++ UINT Adapter, ++ IDXGIAdapter1 **ppAdapter); ++ ++ WINBOOL (STDMETHODCALLTYPE *IsCurrent)( ++ IDXGIFactory2* This); ++ ++ /*** IDXGIFactory2 methods ***/ ++ WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)( ++ IDXGIFactory2* This); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ HWND hwnd, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ IUnknown *window, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++ ++ HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)( ++ IDXGIFactory2* This, ++ HANDLE resource, ++ LUID *luid); ++ ++ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)( ++ IDXGIFactory2* This, ++ HWND window, ++ UINT msg, ++ DWORD *cookie); ++ ++ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)( ++ IDXGIFactory2* This, ++ HANDLE event, ++ DWORD *cookie); ++ ++ void (STDMETHODCALLTYPE *UnregisterStereoStatus)( ++ IDXGIFactory2* This, ++ DWORD cookie); ++ ++ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)( ++ IDXGIFactory2* This, ++ HWND window, ++ UINT msg, ++ DWORD *cookie); ++ ++ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)( ++ IDXGIFactory2* This, ++ HANDLE event, ++ DWORD *cookie); ++ ++ void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)( ++ IDXGIFactory2* This, ++ DWORD cookie); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++ ++ END_INTERFACE ++} IDXGIFactory2Vtbl; ++interface IDXGIFactory2 { ++ CONST_VTBL IDXGIFactory2Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGIFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGIFactory2_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGIFactory2_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIObject methods ***/ ++#define IDXGIFactory2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) ++#define IDXGIFactory2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) ++#define IDXGIFactory2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) ++#define IDXGIFactory2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) ++/*** IDXGIFactory methods ***/ ++#define IDXGIFactory2_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter) ++#define IDXGIFactory2_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags) ++#define IDXGIFactory2_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window) ++#define IDXGIFactory2_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain) ++#define IDXGIFactory2_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter) ++/*** IDXGIFactory1 methods ***/ ++#define IDXGIFactory2_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter) ++#define IDXGIFactory2_IsCurrent(This) (This)->lpVtbl->IsCurrent(This) ++/*** IDXGIFactory2 methods ***/ ++#define IDXGIFactory2_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This) ++#define IDXGIFactory2_CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain) ++#define IDXGIFactory2_CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain) ++#define IDXGIFactory2_GetSharedResourceAdapterLuid(This,resource,luid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,resource,luid) ++#define IDXGIFactory2_RegisterStereoStatusWindow(This,window,msg,cookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,window,msg,cookie) ++#define IDXGIFactory2_RegisterStereoStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,event,cookie) ++#define IDXGIFactory2_UnregisterStereoStatus(This,cookie) (This)->lpVtbl->UnregisterStereoStatus(This,cookie) ++#define IDXGIFactory2_RegisterOcclusionStatusWindow(This,window,msg,cookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,window,msg,cookie) ++#define IDXGIFactory2_RegisterOcclusionStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,event,cookie) ++#define IDXGIFactory2_UnregisterOcclusionStatus(This,cookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,cookie) ++#define IDXGIFactory2_CreateSwapChainForComposition(This,device,desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForComposition(This,device,desc,output,swapchain) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGIFactory2_QueryInterface(IDXGIFactory2* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGIFactory2_AddRef(IDXGIFactory2* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGIFactory2_Release(IDXGIFactory2* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIObject methods ***/ ++static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT data_size,const void *data) { ++ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateDataInterface(IDXGIFactory2* This,REFGUID guid,const IUnknown *object) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_GetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT *data_size,void *data) { ++ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_GetParent(IDXGIFactory2* This,REFIID riid,void **parent) { ++ return This->lpVtbl->GetParent(This,riid,parent); ++} ++/*** IDXGIFactory methods ***/ ++static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters(IDXGIFactory2* This,UINT adapter_idx,IDXGIAdapter **adapter) { ++ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_MakeWindowAssociation(IDXGIFactory2* This,HWND window,UINT flags) { ++ return This->lpVtbl->MakeWindowAssociation(This,window,flags); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_GetWindowAssociation(IDXGIFactory2* This,HWND *window) { ++ return This->lpVtbl->GetWindowAssociation(This,window); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChain(IDXGIFactory2* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) { ++ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_CreateSoftwareAdapter(IDXGIFactory2* This,HMODULE swrast,IDXGIAdapter **adapter) { ++ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter); ++} ++/*** IDXGIFactory1 methods ***/ ++static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters1(IDXGIFactory2* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) { ++ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter); ++} ++static FORCEINLINE WINBOOL IDXGIFactory2_IsCurrent(IDXGIFactory2* This) { ++ return This->lpVtbl->IsCurrent(This); ++} ++/*** IDXGIFactory2 methods ***/ ++static FORCEINLINE WINBOOL IDXGIFactory2_IsWindowedStereoEnabled(IDXGIFactory2* This) { ++ return This->lpVtbl->IsWindowedStereoEnabled(This); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForHwnd(IDXGIFactory2* This,IUnknown *device,HWND hwnd,const DXGI_SWAP_CHAIN_DESC1 *desc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { ++ return This->lpVtbl->CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForCoreWindow(IDXGIFactory2* This,IUnknown *device,IUnknown *window,const DXGI_SWAP_CHAIN_DESC1 *desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { ++ return This->lpVtbl->CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_GetSharedResourceAdapterLuid(IDXGIFactory2* This,HANDLE resource,LUID *luid) { ++ return This->lpVtbl->GetSharedResourceAdapterLuid(This,resource,luid); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusWindow(IDXGIFactory2* This,HWND window,UINT msg,DWORD *cookie) { ++ return This->lpVtbl->RegisterStereoStatusWindow(This,window,msg,cookie); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusEvent(IDXGIFactory2* This,HANDLE event,DWORD *cookie) { ++ return This->lpVtbl->RegisterStereoStatusEvent(This,event,cookie); ++} ++static FORCEINLINE void IDXGIFactory2_UnregisterStereoStatus(IDXGIFactory2* This,DWORD cookie) { ++ This->lpVtbl->UnregisterStereoStatus(This,cookie); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusWindow(IDXGIFactory2* This,HWND window,UINT msg,DWORD *cookie) { ++ return This->lpVtbl->RegisterOcclusionStatusWindow(This,window,msg,cookie); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusEvent(IDXGIFactory2* This,HANDLE event,DWORD *cookie) { ++ return This->lpVtbl->RegisterOcclusionStatusEvent(This,event,cookie); ++} ++static FORCEINLINE void IDXGIFactory2_UnregisterOcclusionStatus(IDXGIFactory2* This,DWORD cookie) { ++ This->lpVtbl->UnregisterOcclusionStatus(This,cookie); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForComposition(IDXGIFactory2* This,IUnknown *device,const DXGI_SWAP_CHAIN_DESC1 *desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { ++ return This->lpVtbl->CreateSwapChainForComposition(This,device,desc,output,swapchain); ++} ++#endif ++#endif ++ ++#endif ++ ++WINBOOL STDMETHODCALLTYPE IDXGIFactory2_IsWindowedStereoEnabled_Proxy( ++ IDXGIFactory2* This); ++void __RPC_STUB IDXGIFactory2_IsWindowedStereoEnabled_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForHwnd_Proxy( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ HWND hwnd, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++void __RPC_STUB IDXGIFactory2_CreateSwapChainForHwnd_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForCoreWindow_Proxy( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ IUnknown *window, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++void __RPC_STUB IDXGIFactory2_CreateSwapChainForCoreWindow_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_GetSharedResourceAdapterLuid_Proxy( ++ IDXGIFactory2* This, ++ HANDLE resource, ++ LUID *luid); ++void __RPC_STUB IDXGIFactory2_GetSharedResourceAdapterLuid_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterStereoStatusWindow_Proxy( ++ IDXGIFactory2* This, ++ HWND window, ++ UINT msg, ++ DWORD *cookie); ++void __RPC_STUB IDXGIFactory2_RegisterStereoStatusWindow_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterStereoStatusEvent_Proxy( ++ IDXGIFactory2* This, ++ HANDLE event, ++ DWORD *cookie); ++void __RPC_STUB IDXGIFactory2_RegisterStereoStatusEvent_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++void STDMETHODCALLTYPE IDXGIFactory2_UnregisterStereoStatus_Proxy( ++ IDXGIFactory2* This, ++ DWORD cookie); ++void __RPC_STUB IDXGIFactory2_UnregisterStereoStatus_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterOcclusionStatusWindow_Proxy( ++ IDXGIFactory2* This, ++ HWND window, ++ UINT msg, ++ DWORD *cookie); ++void __RPC_STUB IDXGIFactory2_RegisterOcclusionStatusWindow_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterOcclusionStatusEvent_Proxy( ++ IDXGIFactory2* This, ++ HANDLE event, ++ DWORD *cookie); ++void __RPC_STUB IDXGIFactory2_RegisterOcclusionStatusEvent_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++void STDMETHODCALLTYPE IDXGIFactory2_UnregisterOcclusionStatus_Proxy( ++ IDXGIFactory2* This, ++ DWORD cookie); ++void __RPC_STUB IDXGIFactory2_UnregisterOcclusionStatus_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForComposition_Proxy( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++void __RPC_STUB IDXGIFactory2_CreateSwapChainForComposition_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGIFactory2_INTERFACE_DEFINED__ */ ++ ++typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY { ++ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, ++ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1, ++ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2, ++ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3, ++ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4 ++} DXGI_GRAPHICS_PREEMPTION_GRANULARITY; ++typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY { ++ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, ++ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1, ++ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2, ++ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3, ++ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4 ++} DXGI_COMPUTE_PREEMPTION_GRANULARITY; ++typedef struct DXGI_ADAPTER_DESC2 { ++ WCHAR Description[128]; ++ UINT VendorId; ++ UINT DeviceId; ++ UINT SubSysId; ++ UINT Revision; ++ SIZE_T DedicatedVideoMemory; ++ SIZE_T DedicatedSystemMemory; ++ SIZE_T SharedSystemMemory; ++ LUID AdapterLuid; ++ UINT Flags; ++ DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; ++ DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; ++} DXGI_ADAPTER_DESC2; ++/***************************************************************************** ++ * IDXGIAdapter2 interface ++ */ ++#ifndef __IDXGIAdapter2_INTERFACE_DEFINED__ ++#define __IDXGIAdapter2_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("0aa1ae0a-fa0e-4b84-8644-e05ff8e5acb5") ++IDXGIAdapter2 : public IDXGIAdapter1 ++{ ++ virtual HRESULT STDMETHODCALLTYPE GetDesc2( ++ DXGI_ADAPTER_DESC2 *desc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5) ++#endif ++#else ++typedef struct IDXGIAdapter2Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGIAdapter2* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGIAdapter2* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGIAdapter2* This); ++ ++ /*** IDXGIObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ IDXGIAdapter2* This, ++ REFGUID guid, ++ UINT data_size, ++ const void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ IDXGIAdapter2* This, ++ REFGUID guid, ++ const IUnknown *object); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ IDXGIAdapter2* This, ++ REFGUID guid, ++ UINT *data_size, ++ void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *GetParent)( ++ IDXGIAdapter2* This, ++ REFIID riid, ++ void **parent); ++ ++ /*** IDXGIAdapter methods ***/ ++ HRESULT (STDMETHODCALLTYPE *EnumOutputs)( ++ IDXGIAdapter2* This, ++ UINT output_idx, ++ IDXGIOutput **output); ++ ++ HRESULT (STDMETHODCALLTYPE *GetDesc)( ++ IDXGIAdapter2* This, ++ DXGI_ADAPTER_DESC *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)( ++ IDXGIAdapter2* This, ++ REFGUID guid, ++ LARGE_INTEGER *umd_version); ++ ++ /*** IDXGIAdapter1 methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDesc1)( ++ IDXGIAdapter2* This, ++ DXGI_ADAPTER_DESC1 *pDesc); ++ ++ /*** IDXGIAdapter2 methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDesc2)( ++ IDXGIAdapter2* This, ++ DXGI_ADAPTER_DESC2 *desc); ++ ++ END_INTERFACE ++} IDXGIAdapter2Vtbl; ++interface IDXGIAdapter2 { ++ CONST_VTBL IDXGIAdapter2Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGIAdapter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGIAdapter2_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGIAdapter2_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIObject methods ***/ ++#define IDXGIAdapter2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) ++#define IDXGIAdapter2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) ++#define IDXGIAdapter2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) ++#define IDXGIAdapter2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) ++/*** IDXGIAdapter methods ***/ ++#define IDXGIAdapter2_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output) ++#define IDXGIAdapter2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) ++#define IDXGIAdapter2_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version) ++/*** IDXGIAdapter1 methods ***/ ++#define IDXGIAdapter2_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc) ++/*** IDXGIAdapter2 methods ***/ ++#define IDXGIAdapter2_GetDesc2(This,desc) (This)->lpVtbl->GetDesc2(This,desc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGIAdapter2_QueryInterface(IDXGIAdapter2* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGIAdapter2_AddRef(IDXGIAdapter2* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGIAdapter2_Release(IDXGIAdapter2* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIObject methods ***/ ++static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT data_size,const void *data) { ++ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateDataInterface(IDXGIAdapter2* This,REFGUID guid,const IUnknown *object) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); ++} ++static FORCEINLINE HRESULT IDXGIAdapter2_GetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT *data_size,void *data) { ++ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIAdapter2_GetParent(IDXGIAdapter2* This,REFIID riid,void **parent) { ++ return This->lpVtbl->GetParent(This,riid,parent); ++} ++/*** IDXGIAdapter methods ***/ ++static FORCEINLINE HRESULT IDXGIAdapter2_EnumOutputs(IDXGIAdapter2* This,UINT output_idx,IDXGIOutput **output) { ++ return This->lpVtbl->EnumOutputs(This,output_idx,output); ++} ++static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc(IDXGIAdapter2* This,DXGI_ADAPTER_DESC *desc) { ++ return This->lpVtbl->GetDesc(This,desc); ++} ++static FORCEINLINE HRESULT IDXGIAdapter2_CheckInterfaceSupport(IDXGIAdapter2* This,REFGUID guid,LARGE_INTEGER *umd_version) { ++ return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version); ++} ++/*** IDXGIAdapter1 methods ***/ ++static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc1(IDXGIAdapter2* This,DXGI_ADAPTER_DESC1 *pDesc) { ++ return This->lpVtbl->GetDesc1(This,pDesc); ++} ++/*** IDXGIAdapter2 methods ***/ ++static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc2(IDXGIAdapter2* This,DXGI_ADAPTER_DESC2 *desc) { ++ return This->lpVtbl->GetDesc2(This,desc); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE IDXGIAdapter2_GetDesc2_Proxy( ++ IDXGIAdapter2* This, ++ DXGI_ADAPTER_DESC2 *desc); ++void __RPC_STUB IDXGIAdapter2_GetDesc2_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */ ++ ++typedef struct DXGI_MODE_DESC1 { ++ UINT Width; ++ UINT Height; ++ DXGI_RATIONAL RefreshRate; ++ DXGI_FORMAT Format; ++ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; ++ DXGI_MODE_SCALING Scaling; ++ WINBOOL Stereo; ++} DXGI_MODE_DESC1; ++/***************************************************************************** ++ * IDXGIOutput1 interface ++ */ ++#ifndef __IDXGIOutput1_INTERFACE_DEFINED__ ++#define __IDXGIOutput1_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("00cddea8-939b-4b83-a340-a685226666cc") ++IDXGIOutput1 : public IDXGIOutput ++{ ++ virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList1( ++ DXGI_FORMAT format, ++ UINT flags, ++ UINT *mode_count, ++ DXGI_MODE_DESC1 *desc) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode1( ++ const DXGI_MODE_DESC1 *mode, ++ DXGI_MODE_DESC1 *closest_match, ++ IUnknown *device) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData1( ++ IDXGIResource *resource) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE DuplicateOutput( ++ IUnknown *device, ++ IDXGIOutputDuplication **output) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc) ++#endif ++#else ++typedef struct IDXGIOutput1Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGIOutput1* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGIOutput1* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGIOutput1* This); ++ ++ /*** IDXGIObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ IDXGIOutput1* This, ++ REFGUID guid, ++ UINT data_size, ++ const void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ IDXGIOutput1* This, ++ REFGUID guid, ++ const IUnknown *object); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ IDXGIOutput1* This, ++ REFGUID guid, ++ UINT *data_size, ++ void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *GetParent)( ++ IDXGIOutput1* This, ++ REFIID riid, ++ void **parent); ++ ++ /*** IDXGIOutput methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDesc)( ++ IDXGIOutput1* This, ++ DXGI_OUTPUT_DESC *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)( ++ IDXGIOutput1* This, ++ DXGI_FORMAT format, ++ UINT flags, ++ UINT *mode_count, ++ DXGI_MODE_DESC *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)( ++ IDXGIOutput1* This, ++ const DXGI_MODE_DESC *mode, ++ DXGI_MODE_DESC *closest_match, ++ IUnknown *device); ++ ++ HRESULT (STDMETHODCALLTYPE *WaitForVBlank)( ++ IDXGIOutput1* This); ++ ++ HRESULT (STDMETHODCALLTYPE *TakeOwnership)( ++ IDXGIOutput1* This, ++ IUnknown *device, ++ WINBOOL exclusive); ++ ++ void (STDMETHODCALLTYPE *ReleaseOwnership)( ++ IDXGIOutput1* This); ++ ++ HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)( ++ IDXGIOutput1* This, ++ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps); ++ ++ HRESULT (STDMETHODCALLTYPE *SetGammaControl)( ++ IDXGIOutput1* This, ++ const DXGI_GAMMA_CONTROL *gamma_control); ++ ++ HRESULT (STDMETHODCALLTYPE *GetGammaControl)( ++ IDXGIOutput1* This, ++ DXGI_GAMMA_CONTROL *gamma_control); ++ ++ HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)( ++ IDXGIOutput1* This, ++ IDXGISurface *surface); ++ ++ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)( ++ IDXGIOutput1* This, ++ IDXGISurface *surface); ++ ++ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)( ++ IDXGIOutput1* This, ++ DXGI_FRAME_STATISTICS *stats); ++ ++ /*** IDXGIOutput1 methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)( ++ IDXGIOutput1* This, ++ DXGI_FORMAT format, ++ UINT flags, ++ UINT *mode_count, ++ DXGI_MODE_DESC1 *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)( ++ IDXGIOutput1* This, ++ const DXGI_MODE_DESC1 *mode, ++ DXGI_MODE_DESC1 *closest_match, ++ IUnknown *device); ++ ++ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)( ++ IDXGIOutput1* This, ++ IDXGIResource *resource); ++ ++ HRESULT (STDMETHODCALLTYPE *DuplicateOutput)( ++ IDXGIOutput1* This, ++ IUnknown *device, ++ IDXGIOutputDuplication **output); ++ ++ END_INTERFACE ++} IDXGIOutput1Vtbl; ++interface IDXGIOutput1 { ++ CONST_VTBL IDXGIOutput1Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGIOutput1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGIOutput1_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGIOutput1_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIObject methods ***/ ++#define IDXGIOutput1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) ++#define IDXGIOutput1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) ++#define IDXGIOutput1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) ++#define IDXGIOutput1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) ++/*** IDXGIOutput methods ***/ ++#define IDXGIOutput1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) ++#define IDXGIOutput1_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc) ++#define IDXGIOutput1_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device) ++#define IDXGIOutput1_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This) ++#define IDXGIOutput1_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive) ++#define IDXGIOutput1_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This) ++#define IDXGIOutput1_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps) ++#define IDXGIOutput1_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control) ++#define IDXGIOutput1_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control) ++#define IDXGIOutput1_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface) ++#define IDXGIOutput1_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface) ++#define IDXGIOutput1_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats) ++/*** IDXGIOutput1 methods ***/ ++#define IDXGIOutput1_GetDisplayModeList1(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList1(This,format,flags,mode_count,desc) ++#define IDXGIOutput1_FindClosestMatchingMode1(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode,closest_match,device) ++#define IDXGIOutput1_GetDisplaySurfaceData1(This,resource) (This)->lpVtbl->GetDisplaySurfaceData1(This,resource) ++#define IDXGIOutput1_DuplicateOutput(This,device,output) (This)->lpVtbl->DuplicateOutput(This,device,output) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGIOutput1_QueryInterface(IDXGIOutput1* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGIOutput1_AddRef(IDXGIOutput1* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGIOutput1_Release(IDXGIOutput1* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIObject methods ***/ ++static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT data_size,const void *data) { ++ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateDataInterface(IDXGIOutput1* This,REFGUID guid,const IUnknown *object) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT *data_size,void *data) { ++ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetParent(IDXGIOutput1* This,REFIID riid,void **parent) { ++ return This->lpVtbl->GetParent(This,riid,parent); ++} ++/*** IDXGIOutput methods ***/ ++static FORCEINLINE HRESULT IDXGIOutput1_GetDesc(IDXGIOutput1* This,DXGI_OUTPUT_DESC *desc) { ++ return This->lpVtbl->GetDesc(This,desc); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList(IDXGIOutput1* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) { ++ return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode(IDXGIOutput1* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) { ++ return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_WaitForVBlank(IDXGIOutput1* This) { ++ return This->lpVtbl->WaitForVBlank(This); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_TakeOwnership(IDXGIOutput1* This,IUnknown *device,WINBOOL exclusive) { ++ return This->lpVtbl->TakeOwnership(This,device,exclusive); ++} ++static FORCEINLINE void IDXGIOutput1_ReleaseOwnership(IDXGIOutput1* This) { ++ This->lpVtbl->ReleaseOwnership(This); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControlCapabilities(IDXGIOutput1* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) { ++ return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_SetGammaControl(IDXGIOutput1* This,const DXGI_GAMMA_CONTROL *gamma_control) { ++ return This->lpVtbl->SetGammaControl(This,gamma_control); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControl(IDXGIOutput1* This,DXGI_GAMMA_CONTROL *gamma_control) { ++ return This->lpVtbl->GetGammaControl(This,gamma_control); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_SetDisplaySurface(IDXGIOutput1* This,IDXGISurface *surface) { ++ return This->lpVtbl->SetDisplaySurface(This,surface); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData(IDXGIOutput1* This,IDXGISurface *surface) { ++ return This->lpVtbl->GetDisplaySurfaceData(This,surface); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetFrameStatistics(IDXGIOutput1* This,DXGI_FRAME_STATISTICS *stats) { ++ return This->lpVtbl->GetFrameStatistics(This,stats); ++} ++/*** IDXGIOutput1 methods ***/ ++static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList1(IDXGIOutput1* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC1 *desc) { ++ return This->lpVtbl->GetDisplayModeList1(This,format,flags,mode_count,desc); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode1(IDXGIOutput1* This,const DXGI_MODE_DESC1 *mode,DXGI_MODE_DESC1 *closest_match,IUnknown *device) { ++ return This->lpVtbl->FindClosestMatchingMode1(This,mode,closest_match,device); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData1(IDXGIOutput1* This,IDXGIResource *resource) { ++ return This->lpVtbl->GetDisplaySurfaceData1(This,resource); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_DuplicateOutput(IDXGIOutput1* This,IUnknown *device,IDXGIOutputDuplication **output) { ++ return This->lpVtbl->DuplicateOutput(This,device,output); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE IDXGIOutput1_GetDisplayModeList1_Proxy( ++ IDXGIOutput1* This, ++ DXGI_FORMAT format, ++ UINT flags, ++ UINT *mode_count, ++ DXGI_MODE_DESC1 *desc); ++void __RPC_STUB IDXGIOutput1_GetDisplayModeList1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutput1_FindClosestMatchingMode1_Proxy( ++ IDXGIOutput1* This, ++ const DXGI_MODE_DESC1 *mode, ++ DXGI_MODE_DESC1 *closest_match, ++ IUnknown *device); ++void __RPC_STUB IDXGIOutput1_FindClosestMatchingMode1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutput1_GetDisplaySurfaceData1_Proxy( ++ IDXGIOutput1* This, ++ IDXGIResource *resource); ++void __RPC_STUB IDXGIOutput1_GetDisplaySurfaceData1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutput1_DuplicateOutput_Proxy( ++ IDXGIOutput1* This, ++ IUnknown *device, ++ IDXGIOutputDuplication **output); ++void __RPC_STUB IDXGIOutput1_DuplicateOutput_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGIOutput1_INTERFACE_DEFINED__ */ ++ + /* Begin additional prototypes for all interfaces */ + + +diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.idl b/mingw-w64-headers/direct-x/include/dxgi1_2.idl +index bba4ab8..eed13bb 100644 +--- a/mingw-w64-headers/direct-x/include/dxgi1_2.idl ++++ b/mingw-w64-headers/direct-x/include/dxgi1_2.idl +@@ -1,5 +1,6 @@ + /* + * Copyright 2014 Jacek Caban for CodeWeavers ++ * Copyright 2015 Martell Malone + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -18,6 +19,114 @@ + + import "dxgi.idl"; + ++[ ++ object, ++ uuid(ea9dbf1a-c88e-4486-854a-98aa0138f30c), ++ local, ++ pointer_default(unique) ++] ++interface IDXGIDisplayControl : IUnknown ++{ ++ BOOL IsStereoEnabled(); ++ ++ void SetStereoEnabled( ++ BOOL enabled ++ ); ++} ++ ++typedef struct DXGI_OUTDUPL_MOVE_RECT ++{ ++ POINT SourcePoint; ++ RECT DestinationRect; ++} DXGI_OUTDUPL_MOVE_RECT; ++ ++typedef struct DXGI_OUTDUPL_DESC ++{ ++ DXGI_MODE_DESC ModeDesc; ++ DXGI_MODE_ROTATION Rotation; ++ BOOL DesktopImageInSystemMemory; ++} DXGI_OUTDUPL_DESC; ++ ++typedef struct DXGI_OUTDUPL_POINTER_POSITION ++{ ++ POINT Position; ++ BOOL Visible; ++} DXGI_OUTDUPL_POINTER_POSITION; ++ ++typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE ++{ ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x1, ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2, ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4 ++} DXGI_OUTDUPL_POINTER_SHAPE_TYPE; ++ ++typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO ++{ ++ UINT Type; ++ UINT Width; ++ UINT Height; ++ UINT Pitch; ++ POINT HotSpot; ++} DXGI_OUTDUPL_POINTER_SHAPE_INFO; ++ ++typedef struct DXGI_OUTDUPL_FRAME_INFO ++{ ++ LARGE_INTEGER LastPresentTime; ++ LARGE_INTEGER LastMouseUpdateTime; ++ UINT AccumulatedFrames; ++ BOOL RectsCoalesced; ++ BOOL ProtectedContentMaskedOut; ++ DXGI_OUTDUPL_POINTER_POSITION PointerPosition; ++ UINT TotalMetadataBufferSize; ++ UINT PointerShapeBufferSize; ++} DXGI_OUTDUPL_FRAME_INFO; ++ ++[ ++ object, ++ uuid(191cfac3-a341-470d-b26e-a864f428319c), ++ local, ++ pointer_default(unique) ++] ++interface IDXGIOutputDuplication : IDXGIObject ++{ ++ void GetDesc( ++ [out] DXGI_OUTDUPL_DESC *desc ++ ); ++ ++ HRESULT AcquireNextFrame( ++ [in] UINT timeout, ++ [out] DXGI_OUTDUPL_FRAME_INFO *frame_info, ++ [out] IDXGIResource **resource ++ ); ++ ++ HRESULT GetFrameDirtyRects( ++ [in] UINT dirty_size, ++ [out] RECT *buffer, ++ [out] UINT *buffer_size ++ ); ++ ++ HRESULT GetFrameMoveRects( ++ [in] UINT move_size, ++ [out] DXGI_OUTDUPL_MOVE_RECT *rect, ++ [out] UINT *rect_size ++ ); ++ ++ HRESULT GetFramePointerShape( ++ [in] UINT shape_size, ++ [out] void *buffer, ++ [out] UINT *buffer_size, ++ [out] DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info ++ ); ++ ++ HRESULT MapDesktopSurface( ++ [out] DXGI_MAPPED_RECT *rect ++ ); ++ ++ HRESULT UnMapDesktopSurface(); ++ ++ HRESULT ReleaseFrame(); ++} ++ + typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { + DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, + DXGI_OFFER_RESOURCE_PRIORITY_NORMAL, +@@ -130,3 +239,162 @@ interface IDXGISwapChain1 : IDXGISwapChain + HRESULT GetRotation( + [out] DXGI_MODE_ROTATION *pRotation); + } ++ ++[ ++ object, ++ uuid(50c83a1c-e072-4c48-87b0-3630fa36a6d0), ++ local, ++ pointer_default(unique) ++] ++interface IDXGIFactory2 : IDXGIFactory1 ++{ ++ BOOL IsWindowedStereoEnabled(); ++ ++ HRESULT CreateSwapChainForHwnd( ++ [in] IUnknown *device, ++ [in] HWND hwnd, ++ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, ++ [in] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, ++ [in] IDXGIOutput *output, ++ [out] IDXGISwapChain1 **swapchain ++ ); ++ ++ HRESULT CreateSwapChainForCoreWindow( ++ [in] IUnknown *device, ++ [in] IUnknown *window, ++ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, ++ [in] IDXGIOutput *output, ++ [out] IDXGISwapChain1 **swapchain ++ ); ++ ++ HRESULT GetSharedResourceAdapterLuid( ++ [in] HANDLE resource, ++ [out] LUID *luid ++ ); ++ ++ HRESULT RegisterStereoStatusWindow( ++ [in] HWND window, ++ [in] UINT msg, ++ [out] DWORD *cookie ++ ); ++ ++ HRESULT RegisterStereoStatusEvent( ++ [in] HANDLE event, ++ [out] DWORD *cookie ++ ); ++ ++ void UnregisterStereoStatus( ++ [in] DWORD cookie ++ ); ++ ++ HRESULT RegisterOcclusionStatusWindow( ++ [in] HWND window, ++ [in] UINT msg, ++ [out] DWORD *cookie ++ ); ++ ++ HRESULT RegisterOcclusionStatusEvent( ++ [in] HANDLE event, ++ [out] DWORD *cookie ++ ); ++ ++ void UnregisterOcclusionStatus( ++ [in] DWORD cookie ++ ); ++ ++ HRESULT CreateSwapChainForComposition( ++ [in] IUnknown *device, ++ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, ++ [in] IDXGIOutput *output, ++ [out] IDXGISwapChain1 **swapchain ++ ); ++ } ++ ++typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY ++{ ++ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, ++ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1, ++ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2, ++ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3, ++ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4, ++} DXGI_GRAPHICS_PREEMPTION_GRANULARITY; ++ ++typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY ++{ ++ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, ++ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1, ++ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2, ++ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3, ++ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4, ++} DXGI_COMPUTE_PREEMPTION_GRANULARITY; ++ ++typedef struct DXGI_ADAPTER_DESC2 ++{ ++ WCHAR Description[128]; ++ UINT VendorId; ++ UINT DeviceId; ++ UINT SubSysId; ++ UINT Revision; ++ SIZE_T DedicatedVideoMemory; ++ SIZE_T DedicatedSystemMemory; ++ SIZE_T SharedSystemMemory; ++ LUID AdapterLuid; ++ UINT Flags; ++ DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; ++ DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; ++} DXGI_ADAPTER_DESC2; ++ ++[ ++ object, ++ uuid(0aa1ae0a-fa0e-4B84-8644-e05ff8e5acb5), ++ local, ++ pointer_default(unique) ++] ++interface IDXGIAdapter2 : IDXGIAdapter1 ++{ ++ HRESULT GetDesc2( ++ [out] DXGI_ADAPTER_DESC2 *desc ++ ); ++} ++ ++typedef struct DXGI_MODE_DESC1 ++{ ++ UINT Width; ++ UINT Height; ++ DXGI_RATIONAL RefreshRate; ++ DXGI_FORMAT Format; ++ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; ++ DXGI_MODE_SCALING Scaling; ++ BOOL Stereo; ++} DXGI_MODE_DESC1; ++ ++[ ++ object, ++ uuid(00cddea8-939b-4b83-a340-a685226666cc), ++ local, ++ pointer_default(unique) ++] ++interface IDXGIOutput1 : IDXGIOutput ++{ ++ HRESULT GetDisplayModeList1( ++ [in] DXGI_FORMAT format, ++ [in] UINT flags, ++ [in, out] UINT *mode_count, ++ [out] DXGI_MODE_DESC1 *desc ++ ); ++ ++ HRESULT FindClosestMatchingMode1( ++ [in] const DXGI_MODE_DESC1 *mode, ++ [out] DXGI_MODE_DESC1 *closest_match, ++ [in] IUnknown *device ++ ); ++ ++ HRESULT GetDisplaySurfaceData1( ++ [in] IDXGIResource *resource ++ ); ++ ++ HRESULT DuplicateOutput( ++ [in] IUnknown *device, ++ [out] IDXGIOutputDuplication **output ++ ); ++} +-- +2.3.0 + diff --git a/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch b/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch new file mode 100644 index 0000000000..6012728853 --- /dev/null +++ b/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch @@ -0,0 +1,1157 @@ +From a4c30c0a15456a8a62af03f5eea02006eb453a87 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 16 Feb 2015 23:40:12 +0000 +Subject: [PATCH 4/4] d3d11: Add missing d3d11 1.1 structs and interfaces + +--- + mingw-w64-headers/direct-x/include/d3d11_1.h | 970 +++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/d3d11_1.idl | 139 ++++ + 2 files changed, 1109 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.h b/mingw-w64-headers/direct-x/include/d3d11_1.h +index ad50171..17183ef 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11_1.h ++++ b/mingw-w64-headers/direct-x/include/d3d11_1.h +@@ -27,6 +27,21 @@ typedef interface ID3DDeviceContextState ID3DDeviceContextState; + typedef interface ID3D11DeviceContext1 ID3D11DeviceContext1; + #endif + ++#ifndef __ID3D11BlendState1_FWD_DEFINED__ ++#define __ID3D11BlendState1_FWD_DEFINED__ ++typedef interface ID3D11BlendState1 ID3D11BlendState1; ++#endif ++ ++#ifndef __ID3D11RasterizerState1_FWD_DEFINED__ ++#define __ID3D11RasterizerState1_FWD_DEFINED__ ++typedef interface ID3D11RasterizerState1 ID3D11RasterizerState1; ++#endif ++ ++#ifndef __ID3D11Device1_FWD_DEFINED__ ++#define __ID3D11Device1_FWD_DEFINED__ ++typedef interface ID3D11Device1 ID3D11Device1; ++#endif ++ + #ifndef __ID3DUserDefinedAnnotation_FWD_DEFINED__ + #define __ID3DUserDefinedAnnotation_FWD_DEFINED__ + typedef interface ID3DUserDefinedAnnotation ID3DUserDefinedAnnotation; +@@ -1872,6 +1887,961 @@ void __RPC_STUB ID3D11DeviceContext1_DiscardView1_Stub( + + #endif /* __ID3D11DeviceContext1_INTERFACE_DEFINED__ */ + ++typedef enum D3D11_COPY_FLAGS { ++ D3D11_COPY_NO_OVERWRITE = 0x1, ++ D3D11_COPY_DISCARD = 0x2 ++} D3D11_COPY_FLAGS; ++typedef enum D3D11_LOGIC_OP { ++ D3D11_LOGIC_OP_CLEAR = 0, ++ D3D11_LOGIC_OP_SET = 1, ++ D3D11_LOGIC_OP_COPY = 2, ++ D3D11_LOGIC_OP_COPY_INVERTED = 3, ++ D3D11_LOGIC_OP_NOOP = 4, ++ D3D11_LOGIC_OP_INVERT = 5, ++ D3D11_LOGIC_OP_AND = 6, ++ D3D11_LOGIC_OP_NAND = 7, ++ D3D11_LOGIC_OP_OR = 8, ++ D3D11_LOGIC_OP_NOR = 9, ++ D3D11_LOGIC_OP_XOR = 10, ++ D3D11_LOGIC_OP_EQUIV = 11, ++ D3D11_LOGIC_OP_AND_REVERSE = 12, ++ D3D11_LOGIC_OP_AND_INVERTED = 13, ++ D3D11_LOGIC_OP_OR_REVERSE = 14, ++ D3D11_LOGIC_OP_OR_INVERTED = 15 ++} D3D11_LOGIC_OP; ++typedef struct D3D11_RENDER_TARGET_BLEND_DESC1 { ++ WINBOOL BlendEnable; ++ WINBOOL LogicOpEnable; ++ D3D11_BLEND SrcBlend; ++ D3D11_BLEND DestBlend; ++ D3D11_BLEND_OP BlendOp; ++ D3D11_BLEND SrcBlendAlpha; ++ D3D11_BLEND DestBlendAlpha; ++ D3D11_BLEND_OP BlendOpAlpha; ++ D3D11_LOGIC_OP LogicOp; ++ UINT8 RenderTargetWriteMask; ++} D3D11_RENDER_TARGET_BLEND_DESC1; ++typedef struct D3D11_BLEND_DESC1 { ++ WINBOOL AlphaToCoverageEnable; ++ WINBOOL IndependentBlendEnable; ++ D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[8]; ++} D3D11_BLEND_DESC1; ++/***************************************************************************** ++ * ID3D11BlendState1 interface ++ */ ++#ifndef __ID3D11BlendState1_INTERFACE_DEFINED__ ++#define __ID3D11BlendState1_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("cc86fabe-da55-401d-85e7-e3c9de2877e9") ++ID3D11BlendState1 : public ID3D11BlendState ++{ ++ virtual void STDMETHODCALLTYPE GetDesc1( ++ D3D11_BLEND_DESC1 *desc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9) ++#endif ++#else ++typedef struct ID3D11BlendState1Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11BlendState1* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11BlendState1* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11BlendState1* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11BlendState1* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11BlendState1* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11BlendState1* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11BlendState1* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ /*** ID3D11BlendState methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc)( ++ ID3D11BlendState1* This, ++ D3D11_BLEND_DESC *pDesc); ++ ++ /*** ID3D11BlendState1 methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc1)( ++ ID3D11BlendState1* This, ++ D3D11_BLEND_DESC1 *desc); ++ ++ END_INTERFACE ++} ID3D11BlendState1Vtbl; ++interface ID3D11BlendState1 { ++ CONST_VTBL ID3D11BlendState1Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11BlendState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11BlendState1_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11BlendState1_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11BlendState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11BlendState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11BlendState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11BlendState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++/*** ID3D11BlendState methods ***/ ++#define ID3D11BlendState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) ++/*** ID3D11BlendState1 methods ***/ ++#define ID3D11BlendState1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11BlendState1_QueryInterface(ID3D11BlendState1* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11BlendState1_AddRef(ID3D11BlendState1* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11BlendState1_Release(ID3D11BlendState1* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11BlendState1_GetDevice(ID3D11BlendState1* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11BlendState1_GetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateDataInterface(ID3D11BlendState1* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++/*** ID3D11BlendState methods ***/ ++static FORCEINLINE void ID3D11BlendState1_GetDesc(ID3D11BlendState1* This,D3D11_BLEND_DESC *pDesc) { ++ This->lpVtbl->GetDesc(This,pDesc); ++} ++/*** ID3D11BlendState1 methods ***/ ++static FORCEINLINE void ID3D11BlendState1_GetDesc1(ID3D11BlendState1* This,D3D11_BLEND_DESC1 *desc) { ++ This->lpVtbl->GetDesc1(This,desc); ++} ++#endif ++#endif ++ ++#endif ++ ++void STDMETHODCALLTYPE ID3D11BlendState1_GetDesc1_Proxy( ++ ID3D11BlendState1* This, ++ D3D11_BLEND_DESC1 *desc); ++void __RPC_STUB ID3D11BlendState1_GetDesc1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11BlendState1_INTERFACE_DEFINED__ */ ++ ++typedef struct D3D11_RASTERIZER_DESC1 { ++ D3D11_FILL_MODE FillMode; ++ D3D11_CULL_MODE CullMode; ++ WINBOOL FrontCounterClockwise; ++ INT DepthBias; ++ float DepthBiasClamp; ++ float SlopeScaledDepthBias; ++ WINBOOL DepthClipEnable; ++ WINBOOL ScissorEnable; ++ WINBOOL MultisampleEnable; ++ WINBOOL AntialiasedLineEnable; ++ UINT ForcedSampleCount; ++} D3D11_RASTERIZER_DESC1; ++/***************************************************************************** ++ * ID3D11RasterizerState1 interface ++ */ ++#ifndef __ID3D11RasterizerState1_INTERFACE_DEFINED__ ++#define __ID3D11RasterizerState1_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("1217d7a6-5039-418c-b042-9cbe256afd6e") ++ID3D11RasterizerState1 : public ID3D11RasterizerState ++{ ++ virtual void STDMETHODCALLTYPE GetDesc1( ++ D3D11_RASTERIZER_DESC1 *desc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e) ++#endif ++#else ++typedef struct ID3D11RasterizerState1Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11RasterizerState1* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11RasterizerState1* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11RasterizerState1* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11RasterizerState1* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11RasterizerState1* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11RasterizerState1* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11RasterizerState1* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ /*** ID3D11RasterizerState methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc)( ++ ID3D11RasterizerState1* This, ++ D3D11_RASTERIZER_DESC *pDesc); ++ ++ /*** ID3D11RasterizerState1 methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc1)( ++ ID3D11RasterizerState1* This, ++ D3D11_RASTERIZER_DESC1 *desc); ++ ++ END_INTERFACE ++} ID3D11RasterizerState1Vtbl; ++interface ID3D11RasterizerState1 { ++ CONST_VTBL ID3D11RasterizerState1Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11RasterizerState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11RasterizerState1_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11RasterizerState1_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11RasterizerState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11RasterizerState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11RasterizerState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11RasterizerState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++/*** ID3D11RasterizerState methods ***/ ++#define ID3D11RasterizerState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) ++/*** ID3D11RasterizerState1 methods ***/ ++#define ID3D11RasterizerState1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11RasterizerState1_QueryInterface(ID3D11RasterizerState1* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11RasterizerState1_AddRef(ID3D11RasterizerState1* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11RasterizerState1_Release(ID3D11RasterizerState1* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11RasterizerState1_GetDevice(ID3D11RasterizerState1* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11RasterizerState1_GetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateDataInterface(ID3D11RasterizerState1* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++/*** ID3D11RasterizerState methods ***/ ++static FORCEINLINE void ID3D11RasterizerState1_GetDesc(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC *pDesc) { ++ This->lpVtbl->GetDesc(This,pDesc); ++} ++/*** ID3D11RasterizerState1 methods ***/ ++static FORCEINLINE void ID3D11RasterizerState1_GetDesc1(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC1 *desc) { ++ This->lpVtbl->GetDesc1(This,desc); ++} ++#endif ++#endif ++ ++#endif ++ ++void STDMETHODCALLTYPE ID3D11RasterizerState1_GetDesc1_Proxy( ++ ID3D11RasterizerState1* This, ++ D3D11_RASTERIZER_DESC1 *desc); ++void __RPC_STUB ID3D11RasterizerState1_GetDesc1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11RasterizerState1_INTERFACE_DEFINED__ */ ++ ++/***************************************************************************** ++ * ID3D11Device1 interface ++ */ ++#ifndef __ID3D11Device1_INTERFACE_DEFINED__ ++#define __ID3D11Device1_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("a04bfb29-08ef-43d6-a49c-a9bdbdcbe686") ++ID3D11Device1 : public ID3D11Device ++{ ++ virtual void STDMETHODCALLTYPE GetImmediateContext1( ++ ID3D11DeviceContext1 **context) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext1( ++ UINT flags, ++ ID3D11DeviceContext1 **context) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateBlendState1( ++ const D3D11_BLEND_DESC1 *desc, ++ ID3D11BlendState1 **state) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState1( ++ const D3D11_RASTERIZER_DESC1 *desc, ++ ID3D11RasterizerState1 **state) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateDeviceContextState( ++ UINT flags, ++ const D3D_FEATURE_LEVEL *levels, ++ UINT levels_count, ++ UINT version, ++ REFIID emu_interface, ++ D3D_FEATURE_LEVEL *level, ++ ID3DDeviceContextState **state) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE OpenSharedResource1( ++ HANDLE resource, ++ REFIID emu_interface, ++ void **data) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE OpenSharedResourceByName( ++ const WCHAR *name, ++ DWORD access, ++ REFIID emu_interface, ++ void **data) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86) ++#endif ++#else ++typedef struct ID3D11Device1Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11Device1* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11Device1* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11Device1* This); ++ ++ /*** ID3D11Device methods ***/ ++ HRESULT (STDMETHODCALLTYPE *CreateBuffer)( ++ ID3D11Device1* This, ++ const D3D11_BUFFER_DESC *pDesc, ++ const D3D11_SUBRESOURCE_DATA *pInitialData, ++ ID3D11Buffer **ppBuffer); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)( ++ ID3D11Device1* This, ++ const D3D11_TEXTURE1D_DESC *pDesc, ++ const D3D11_SUBRESOURCE_DATA *pInitialData, ++ ID3D11Texture1D **ppTexture1D); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)( ++ ID3D11Device1* This, ++ const D3D11_TEXTURE2D_DESC *pDesc, ++ const D3D11_SUBRESOURCE_DATA *pInitialData, ++ ID3D11Texture2D **ppTexture2D); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)( ++ ID3D11Device1* This, ++ const D3D11_TEXTURE3D_DESC *pDesc, ++ const D3D11_SUBRESOURCE_DATA *pInitialData, ++ ID3D11Texture3D **ppTexture3D); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)( ++ ID3D11Device1* This, ++ ID3D11Resource *pResource, ++ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, ++ ID3D11ShaderResourceView **ppSRView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)( ++ ID3D11Device1* This, ++ ID3D11Resource *pResource, ++ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, ++ ID3D11UnorderedAccessView **ppUAView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)( ++ ID3D11Device1* This, ++ ID3D11Resource *pResource, ++ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, ++ ID3D11RenderTargetView **ppRTView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)( ++ ID3D11Device1* This, ++ ID3D11Resource *pResource, ++ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, ++ ID3D11DepthStencilView **ppDepthStencilView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)( ++ ID3D11Device1* This, ++ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs, ++ UINT NumElements, ++ const void *pShaderBytecodeWithInputSignature, ++ SIZE_T BytecodeLength, ++ ID3D11InputLayout **ppInputLayout); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11VertexShader **ppVertexShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11GeometryShader **ppGeometryShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration, ++ UINT NumEntries, ++ const UINT *pBufferStrides, ++ UINT NumStrides, ++ UINT RasterizedStream, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11GeometryShader **ppGeometryShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11PixelShader **ppPixelShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateHullShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11HullShader **ppHullShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDomainShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11DomainShader **ppDomainShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateComputeShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11ComputeShader **ppComputeShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)( ++ ID3D11Device1* This, ++ ID3D11ClassLinkage **ppLinkage); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateBlendState)( ++ ID3D11Device1* This, ++ const D3D11_BLEND_DESC *pBlendStateDesc, ++ ID3D11BlendState **ppBlendState); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)( ++ ID3D11Device1* This, ++ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, ++ ID3D11DepthStencilState **ppDepthStencilState); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)( ++ ID3D11Device1* This, ++ const D3D11_RASTERIZER_DESC *pRasterizerDesc, ++ ID3D11RasterizerState **ppRasterizerState); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)( ++ ID3D11Device1* This, ++ const D3D11_SAMPLER_DESC *pSamplerDesc, ++ ID3D11SamplerState **ppSamplerState); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateQuery)( ++ ID3D11Device1* This, ++ const D3D11_QUERY_DESC *pQueryDesc, ++ ID3D11Query **ppQuery); ++ ++ HRESULT (STDMETHODCALLTYPE *CreatePredicate)( ++ ID3D11Device1* This, ++ const D3D11_QUERY_DESC *pPredicateDesc, ++ ID3D11Predicate **ppPredicate); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateCounter)( ++ ID3D11Device1* This, ++ const D3D11_COUNTER_DESC *pCounterDesc, ++ ID3D11Counter **ppCounter); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)( ++ ID3D11Device1* This, ++ UINT ContextFlags, ++ ID3D11DeviceContext **ppDeferredContext); ++ ++ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)( ++ ID3D11Device1* This, ++ HANDLE hResource, ++ REFIID ReturnedInterface, ++ void **ppResource); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)( ++ ID3D11Device1* This, ++ DXGI_FORMAT Format, ++ UINT *pFormatSupport); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)( ++ ID3D11Device1* This, ++ DXGI_FORMAT Format, ++ UINT SampleCount, ++ UINT *pNumQualityLevels); ++ ++ void (STDMETHODCALLTYPE *CheckCounterInfo)( ++ ID3D11Device1* This, ++ D3D11_COUNTER_INFO *pCounterInfo); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckCounter)( ++ ID3D11Device1* This, ++ const D3D11_COUNTER_DESC *pDesc, ++ D3D11_COUNTER_TYPE *pType, ++ UINT *pActiveCounters, ++ LPSTR szName, ++ UINT *pNameLength, ++ LPSTR szUnits, ++ UINT *pUnitsLength, ++ LPSTR szDescription, ++ UINT *pDescriptionLength); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( ++ ID3D11Device1* This, ++ D3D11_FEATURE Feature, ++ void *pFeatureSupportData, ++ UINT FeatureSupportDataSize); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11Device1* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11Device1* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11Device1* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)( ++ ID3D11Device1* This); ++ ++ UINT (STDMETHODCALLTYPE *GetCreationFlags)( ++ ID3D11Device1* This); ++ ++ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( ++ ID3D11Device1* This); ++ ++ void (STDMETHODCALLTYPE *GetImmediateContext)( ++ ID3D11Device1* This, ++ ID3D11DeviceContext **ppImmediateContext); ++ ++ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)( ++ ID3D11Device1* This, ++ UINT RaiseFlags); ++ ++ UINT (STDMETHODCALLTYPE *GetExceptionMode)( ++ ID3D11Device1* This); ++ ++ /*** ID3D11Device1 methods ***/ ++ void (STDMETHODCALLTYPE *GetImmediateContext1)( ++ ID3D11Device1* This, ++ ID3D11DeviceContext1 **context); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)( ++ ID3D11Device1* This, ++ UINT flags, ++ ID3D11DeviceContext1 **context); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateBlendState1)( ++ ID3D11Device1* This, ++ const D3D11_BLEND_DESC1 *desc, ++ ID3D11BlendState1 **state); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)( ++ ID3D11Device1* This, ++ const D3D11_RASTERIZER_DESC1 *desc, ++ ID3D11RasterizerState1 **state); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)( ++ ID3D11Device1* This, ++ UINT flags, ++ const D3D_FEATURE_LEVEL *levels, ++ UINT levels_count, ++ UINT version, ++ REFIID emu_interface, ++ D3D_FEATURE_LEVEL *level, ++ ID3DDeviceContextState **state); ++ ++ HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)( ++ ID3D11Device1* This, ++ HANDLE resource, ++ REFIID emu_interface, ++ void **data); ++ ++ HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)( ++ ID3D11Device1* This, ++ const WCHAR *name, ++ DWORD access, ++ REFIID emu_interface, ++ void **data); ++ ++ END_INTERFACE ++} ID3D11Device1Vtbl; ++interface ID3D11Device1 { ++ CONST_VTBL ID3D11Device1Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11Device1_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11Device1_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11Device methods ***/ ++#define ID3D11Device1_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer) ++#define ID3D11Device1_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) ++#define ID3D11Device1_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) ++#define ID3D11Device1_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) ++#define ID3D11Device1_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView) ++#define ID3D11Device1_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) ++#define ID3D11Device1_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView) ++#define ID3D11Device1_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) ++#define ID3D11Device1_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) ++#define ID3D11Device1_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) ++#define ID3D11Device1_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) ++#define ID3D11Device1_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) ++#define ID3D11Device1_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) ++#define ID3D11Device1_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) ++#define ID3D11Device1_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) ++#define ID3D11Device1_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) ++#define ID3D11Device1_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage) ++#define ID3D11Device1_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState) ++#define ID3D11Device1_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) ++#define ID3D11Device1_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) ++#define ID3D11Device1_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState) ++#define ID3D11Device1_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery) ++#define ID3D11Device1_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate) ++#define ID3D11Device1_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter) ++#define ID3D11Device1_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext) ++#define ID3D11Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource) ++#define ID3D11Device1_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport) ++#define ID3D11Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) ++#define ID3D11Device1_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo) ++#define ID3D11Device1_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) ++#define ID3D11Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ++#define ID3D11Device1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11Device1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11Device1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++#define ID3D11Device1_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This) ++#define ID3D11Device1_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This) ++#define ID3D11Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) ++#define ID3D11Device1_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext) ++#define ID3D11Device1_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags) ++#define ID3D11Device1_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This) ++/*** ID3D11Device1 methods ***/ ++#define ID3D11Device1_GetImmediateContext1(This,context) (This)->lpVtbl->GetImmediateContext1(This,context) ++#define ID3D11Device1_CreateDeferredContext1(This,flags,context) (This)->lpVtbl->CreateDeferredContext1(This,flags,context) ++#define ID3D11Device1_CreateBlendState1(This,desc,state) (This)->lpVtbl->CreateBlendState1(This,desc,state) ++#define ID3D11Device1_CreateRasterizerState1(This,desc,state) (This)->lpVtbl->CreateRasterizerState1(This,desc,state) ++#define ID3D11Device1_CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state) (This)->lpVtbl->CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state) ++#define ID3D11Device1_OpenSharedResource1(This,resource,emu_interface,data) (This)->lpVtbl->OpenSharedResource1(This,resource,emu_interface,data) ++#define ID3D11Device1_OpenSharedResourceByName(This,name,access,emu_interface,data) (This)->lpVtbl->OpenSharedResourceByName(This,name,access,emu_interface,data) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11Device1_QueryInterface(ID3D11Device1* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11Device1_AddRef(ID3D11Device1* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11Device1_Release(ID3D11Device1* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11Device methods ***/ ++static FORCEINLINE HRESULT ID3D11Device1_CreateBuffer(ID3D11Device1* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) { ++ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateTexture1D(ID3D11Device1* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) { ++ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateTexture2D(ID3D11Device1* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) { ++ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateTexture3D(ID3D11Device1* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) { ++ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateShaderResourceView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) { ++ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateUnorderedAccessView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) { ++ return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateRenderTargetView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) { ++ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) { ++ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateInputLayout(ID3D11Device1* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) { ++ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateVertexShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) { ++ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) { ++ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShaderWithStreamOutput(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) { ++ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreatePixelShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) { ++ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateHullShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) { ++ return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDomainShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) { ++ return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateComputeShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) { ++ return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateClassLinkage(ID3D11Device1* This,ID3D11ClassLinkage **ppLinkage) { ++ return This->lpVtbl->CreateClassLinkage(This,ppLinkage); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState(ID3D11Device1* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) { ++ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilState(ID3D11Device1* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) { ++ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState(ID3D11Device1* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) { ++ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateSamplerState(ID3D11Device1* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) { ++ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateQuery(ID3D11Device1* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) { ++ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreatePredicate(ID3D11Device1* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) { ++ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) { ++ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext(ID3D11Device1* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) { ++ return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext); ++} ++static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource(ID3D11Device1* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) { ++ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CheckFormatSupport(ID3D11Device1* This,DXGI_FORMAT Format,UINT *pFormatSupport) { ++ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CheckMultisampleQualityLevels(ID3D11Device1* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) { ++ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels); ++} ++static FORCEINLINE void ID3D11Device1_CheckCounterInfo(ID3D11Device1* This,D3D11_COUNTER_INFO *pCounterInfo) { ++ This->lpVtbl->CheckCounterInfo(This,pCounterInfo); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CheckCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) { ++ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CheckFeatureSupport(ID3D11Device1* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) { ++ return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize); ++} ++static FORCEINLINE HRESULT ID3D11Device1_GetPrivateData(ID3D11Device1* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11Device1_SetPrivateData(ID3D11Device1* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11Device1_SetPrivateDataInterface(ID3D11Device1* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++static FORCEINLINE D3D_FEATURE_LEVEL ID3D11Device1_GetFeatureLevel(ID3D11Device1* This) { ++ return This->lpVtbl->GetFeatureLevel(This); ++} ++static FORCEINLINE UINT ID3D11Device1_GetCreationFlags(ID3D11Device1* This) { ++ return This->lpVtbl->GetCreationFlags(This); ++} ++static FORCEINLINE HRESULT ID3D11Device1_GetDeviceRemovedReason(ID3D11Device1* This) { ++ return This->lpVtbl->GetDeviceRemovedReason(This); ++} ++static FORCEINLINE void ID3D11Device1_GetImmediateContext(ID3D11Device1* This,ID3D11DeviceContext **ppImmediateContext) { ++ This->lpVtbl->GetImmediateContext(This,ppImmediateContext); ++} ++static FORCEINLINE HRESULT ID3D11Device1_SetExceptionMode(ID3D11Device1* This,UINT RaiseFlags) { ++ return This->lpVtbl->SetExceptionMode(This,RaiseFlags); ++} ++static FORCEINLINE UINT ID3D11Device1_GetExceptionMode(ID3D11Device1* This) { ++ return This->lpVtbl->GetExceptionMode(This); ++} ++/*** ID3D11Device1 methods ***/ ++static FORCEINLINE void ID3D11Device1_GetImmediateContext1(ID3D11Device1* This,ID3D11DeviceContext1 **context) { ++ This->lpVtbl->GetImmediateContext1(This,context); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext1(ID3D11Device1* This,UINT flags,ID3D11DeviceContext1 **context) { ++ return This->lpVtbl->CreateDeferredContext1(This,flags,context); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState1(ID3D11Device1* This,const D3D11_BLEND_DESC1 *desc,ID3D11BlendState1 **state) { ++ return This->lpVtbl->CreateBlendState1(This,desc,state); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState1(ID3D11Device1* This,const D3D11_RASTERIZER_DESC1 *desc,ID3D11RasterizerState1 **state) { ++ return This->lpVtbl->CreateRasterizerState1(This,desc,state); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDeviceContextState(ID3D11Device1* This,UINT flags,const D3D_FEATURE_LEVEL *levels,UINT levels_count,UINT version,REFIID emu_interface,D3D_FEATURE_LEVEL *level,ID3DDeviceContextState **state) { ++ return This->lpVtbl->CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state); ++} ++static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource1(ID3D11Device1* This,HANDLE resource,REFIID emu_interface,void **data) { ++ return This->lpVtbl->OpenSharedResource1(This,resource,emu_interface,data); ++} ++static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResourceByName(ID3D11Device1* This,const WCHAR *name,DWORD access,REFIID emu_interface,void **data) { ++ return This->lpVtbl->OpenSharedResourceByName(This,name,access,emu_interface,data); ++} ++#endif ++#endif ++ ++#endif ++ ++void STDMETHODCALLTYPE ID3D11Device1_GetImmediateContext1_Proxy( ++ ID3D11Device1* This, ++ ID3D11DeviceContext1 **context); ++void __RPC_STUB ID3D11Device1_GetImmediateContext1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateDeferredContext1_Proxy( ++ ID3D11Device1* This, ++ UINT flags, ++ ID3D11DeviceContext1 **context); ++void __RPC_STUB ID3D11Device1_CreateDeferredContext1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateBlendState1_Proxy( ++ ID3D11Device1* This, ++ const D3D11_BLEND_DESC1 *desc, ++ ID3D11BlendState1 **state); ++void __RPC_STUB ID3D11Device1_CreateBlendState1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateRasterizerState1_Proxy( ++ ID3D11Device1* This, ++ const D3D11_RASTERIZER_DESC1 *desc, ++ ID3D11RasterizerState1 **state); ++void __RPC_STUB ID3D11Device1_CreateRasterizerState1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateDeviceContextState_Proxy( ++ ID3D11Device1* This, ++ UINT flags, ++ const D3D_FEATURE_LEVEL *levels, ++ UINT levels_count, ++ UINT version, ++ REFIID emu_interface, ++ D3D_FEATURE_LEVEL *level, ++ ID3DDeviceContextState **state); ++void __RPC_STUB ID3D11Device1_CreateDeviceContextState_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_OpenSharedResource1_Proxy( ++ ID3D11Device1* This, ++ HANDLE resource, ++ REFIID emu_interface, ++ void **data); ++void __RPC_STUB ID3D11Device1_OpenSharedResource1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_OpenSharedResourceByName_Proxy( ++ ID3D11Device1* This, ++ const WCHAR *name, ++ DWORD access, ++ REFIID emu_interface, ++ void **data); ++void __RPC_STUB ID3D11Device1_OpenSharedResourceByName_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11Device1_INTERFACE_DEFINED__ */ ++ + /***************************************************************************** + * ID3DUserDefinedAnnotation interface + */ +diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.idl b/mingw-w64-headers/direct-x/include/d3d11_1.idl +index 928548f..bf11725 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11_1.idl ++++ b/mingw-w64-headers/direct-x/include/d3d11_1.idl +@@ -1,5 +1,6 @@ + /* + * Copyright 2014 Jacek Caban for CodeWeavers ++ * Copyright 2015 Martell Malone + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -164,6 +165,144 @@ interface ID3D11DeviceContext1 : ID3D11DeviceContext + UINT NumRects); + } + ++typedef enum D3D11_COPY_FLAGS ++{ ++ D3D11_COPY_NO_OVERWRITE = 0x1, ++ D3D11_COPY_DISCARD = 0x2, ++} D3D11_COPY_FLAGS; ++ ++typedef enum D3D11_LOGIC_OP ++{ ++ D3D11_LOGIC_OP_CLEAR = 0, ++ D3D11_LOGIC_OP_SET, ++ D3D11_LOGIC_OP_COPY, ++ D3D11_LOGIC_OP_COPY_INVERTED, ++ D3D11_LOGIC_OP_NOOP, ++ D3D11_LOGIC_OP_INVERT, ++ D3D11_LOGIC_OP_AND, ++ D3D11_LOGIC_OP_NAND, ++ D3D11_LOGIC_OP_OR, ++ D3D11_LOGIC_OP_NOR, ++ D3D11_LOGIC_OP_XOR, ++ D3D11_LOGIC_OP_EQUIV, ++ D3D11_LOGIC_OP_AND_REVERSE, ++ D3D11_LOGIC_OP_AND_INVERTED, ++ D3D11_LOGIC_OP_OR_REVERSE, ++ D3D11_LOGIC_OP_OR_INVERTED, ++} D3D11_LOGIC_OP; ++ ++typedef struct D3D11_RENDER_TARGET_BLEND_DESC1 ++{ ++ BOOL BlendEnable; ++ BOOL LogicOpEnable; ++ D3D11_BLEND SrcBlend; ++ D3D11_BLEND DestBlend; ++ D3D11_BLEND_OP BlendOp; ++ D3D11_BLEND SrcBlendAlpha; ++ D3D11_BLEND DestBlendAlpha; ++ D3D11_BLEND_OP BlendOpAlpha; ++ D3D11_LOGIC_OP LogicOp; ++ UINT8 RenderTargetWriteMask; ++} D3D11_RENDER_TARGET_BLEND_DESC1; ++ ++typedef struct D3D11_BLEND_DESC1 ++{ ++ BOOL AlphaToCoverageEnable; ++ BOOL IndependentBlendEnable; ++ D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT]; ++} D3D11_BLEND_DESC1; ++ ++[ ++ uuid(cc86fabe-da55-401d-85e7-e3c9de2877e9), ++ object, ++ local, ++ pointer_default(unique) ++] ++interface ID3D11BlendState1 : ID3D11BlendState ++{ ++ void GetDesc1( ++ [out] D3D11_BLEND_DESC1* desc ++ ); ++} ++ ++typedef struct D3D11_RASTERIZER_DESC1 ++{ ++ D3D11_FILL_MODE FillMode; ++ D3D11_CULL_MODE CullMode; ++ BOOL FrontCounterClockwise; ++ INT DepthBias; ++ float DepthBiasClamp; ++ float SlopeScaledDepthBias; ++ BOOL DepthClipEnable; ++ BOOL ScissorEnable; ++ BOOL MultisampleEnable; ++ BOOL AntialiasedLineEnable; ++ UINT ForcedSampleCount; ++} D3D11_RASTERIZER_DESC1; ++ ++[ ++ uuid(1217d7a6-5039-418c-b042-9cbe256afd6e), ++ object, ++ local, ++ pointer_default(unique) ++] ++interface ID3D11RasterizerState1 : ID3D11RasterizerState ++{ ++ void GetDesc1( ++ [out] D3D11_RASTERIZER_DESC1 *desc ++ ); ++} ++ ++[ ++ uuid(a04bfb29-08ef-43d6-a49c-a9bdbdcbe686), ++ object, ++ local, ++ pointer_default(unique) ++] ++interface ID3D11Device1 : ID3D11Device ++{ ++ void GetImmediateContext1( ++ [out] ID3D11DeviceContext1 **context ++ ); ++ ++ HRESULT CreateDeferredContext1( ++ UINT flags, ++ [out] ID3D11DeviceContext1 **context ++ ); ++ ++ HRESULT CreateBlendState1( ++ [in] const D3D11_BLEND_DESC1 *desc, ++ [out] ID3D11BlendState1 **state ++ ); ++ ++ HRESULT CreateRasterizerState1( ++ [in] const D3D11_RASTERIZER_DESC1 *desc, ++ [out] ID3D11RasterizerState1 **state ++ ); ++ ++ HRESULT CreateDeviceContextState( ++ UINT flags, ++ [size_is(levels_count)] const D3D_FEATURE_LEVEL* levels, ++ UINT levels_count, ++ UINT version, ++ REFIID emu_interface, ++ [out] D3D_FEATURE_LEVEL *level, ++ [out] ID3DDeviceContextState **state ++ ); ++ ++ HRESULT OpenSharedResource1( ++ [in] HANDLE resource, ++ [in] REFIID emu_interface, ++ [out] void **data ++ ); ++ ++ HRESULT OpenSharedResourceByName( ++ [in] const WCHAR *name, ++ [in] DWORD access, ++ [in] REFIID emu_interface, ++ [in] void **data); ++} ++ + [ + uuid(b2daad8b-03d4-4dbf-95eb-32ab4b63d0ab), + object, +-- +2.3.0 + diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 90408e786c..e68c1f7482 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,18 +4,26 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4448.4fd76bd +pkgver=5.0.0.4451.4ef3dd3 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" license=('custom') groups=("${MINGW_PACKAGE_PREFIX}-toolchain" "${MINGW_PACKAGE_PREFIX}") -makedepends=('git') +makedepends=('git' "${MINGW_PACKAGE_PREFIX}-tools") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' '!libtool' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=('SKIP') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" + "0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch" + "0002-dxgi-Add-interface-for-IDXGISurface1.patch" + "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" + "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch") +md5sums=('SKIP' + '1d41bcda2554614bacdfc61dcdac86c2' + 'eb0a3000a68b4c9bce30596e5eada6d3' + '58d04f2eaf1cb77875b54043dffe1ca6' + 'ef97927bf991801a33bcc5f52b2c479c') pkgver() { cd "$srcdir/$_realname" @@ -27,6 +35,14 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} + + git am "${srcdir}/"0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch + git am "${srcdir}/"0002-dxgi-Add-interface-for-IDXGISurface1.patch + git am "${srcdir}/"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch + git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch + + cd ${srcdir}/${_realname}/mingw-w64-headers + touch include/windows.*.h include/wincrypt.h include/prsht.h } build() { @@ -39,7 +55,7 @@ build() { --prefix=${MINGW_PREFIX}/${MINGW_CHOST} \ --enable-sdk=all \ --enable-secure-api \ - --enable-idl + --enable-idl --with-widl } package() { From 0d8d1d4a192c40cb38ea6c4d4d37c3030b573c08 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Tue, 17 Feb 2015 12:51:49 +0100 Subject: [PATCH 0539/2060] glib2: to maintain compatibility with windows xp. --- .../0026-define-HAVE_IF_NAMETOINDEX.patch | 11 ----------- mingw-w64-glib2/0027-no_sys_if_nametoindex.patch | 11 +++++++++++ mingw-w64-glib2/PKGBUILD | 13 ++++++------- 3 files changed, 17 insertions(+), 18 deletions(-) delete mode 100644 mingw-w64-glib2/0026-define-HAVE_IF_NAMETOINDEX.patch create mode 100644 mingw-w64-glib2/0027-no_sys_if_nametoindex.patch diff --git a/mingw-w64-glib2/0026-define-HAVE_IF_NAMETOINDEX.patch b/mingw-w64-glib2/0026-define-HAVE_IF_NAMETOINDEX.patch deleted file mode 100644 index 84f3c37b41..0000000000 --- a/mingw-w64-glib2/0026-define-HAVE_IF_NAMETOINDEX.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- glib-2.42.1/config.h.in.orig 2014-12-14 22:39:09.000000000 +0300 -+++ glib-2.42.1/config.h.in 2014-12-14 22:39:17.174400000 +0300 -@@ -193,7 +193,7 @@ - #undef HAVE_IF_INDEXTONAME - - /* Define to 1 if you have the `if_nametoindex' function. */ --#undef HAVE_IF_NAMETOINDEX -+#define HAVE_IF_NAMETOINDEX 1 - - /* Define to 1 if you have the `inotify_init1' function. */ - #undef HAVE_INOTIFY_INIT1 diff --git a/mingw-w64-glib2/0027-no_sys_if_nametoindex.patch b/mingw-w64-glib2/0027-no_sys_if_nametoindex.patch new file mode 100644 index 0000000000..e2d279db0c --- /dev/null +++ b/mingw-w64-glib2/0027-no_sys_if_nametoindex.patch @@ -0,0 +1,11 @@ +--- glib-2.42.1/gio/gsocket.c.orig.zak 2015-02-17 09:43:45.018111600 +0100 ++++ glib-2.42.1/gio/gsocket.c 2015-02-17 09:43:56.560283500 +0100 +@@ -1929,7 +1929,7 @@ + return TRUE; + } + +-#if !defined(HAVE_IF_NAMETOINDEX) && defined(G_OS_WIN32) ++#if defined(G_OS_WIN32) + static guint + if_nametoindex (const gchar *iface) + { diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 76fdf24984..7b8215f6f5 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -4,7 +4,7 @@ _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.42.1 -pkgrel=3 +pkgrel=4 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" @@ -26,8 +26,8 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.t 0021-use-64bit-stat-for-localfile-size-calc.all.patch 0023-print-in-binary-more-for-testing.all.patch 0024-return-actually-written-data-in-printf.all.patch - 0026-define-HAVE_IF_NAMETOINDEX.patch - 0001-gsocket-block-when-errno-says-it-will-block.patch) + 0001-gsocket-block-when-errno-says-it-will-block.patch + 0027-no_sys_if_nametoindex.patch) md5sums=('89c4119e50e767d3532158605ee9121a' '98c7778b5e8a30dbcdb86bcd15f9c11d' '6eb9d56028ea3bbec3d053254a00a04b' @@ -38,8 +38,8 @@ md5sums=('89c4119e50e767d3532158605ee9121a' '952989e534235721d30b9ee3d89cc225' '217a997ede1b93ac06f96ed869b74378' '500f39baea98d98e4a2f877ad56f55a5' - 'de51a19cc5bfd0d54a59e9ac36cbafa2' - 'c8942cf5035f97ade5ab9c757a210f01') + 'c8942cf5035f97ade5ab9c757a210f01' + 'd06748f2891e1f4e6db5684d5935aefc') prepare() { cd "$srcdir/glib-$pkgver" @@ -54,10 +54,9 @@ prepare() { patch -Np1 -i "$srcdir/0023-print-in-binary-more-for-testing.all.patch" patch -Np1 -i "$srcdir/0024-return-actually-written-data-in-printf.all.patch" patch -Np1 -i "$srcdir/0001-gsocket-block-when-errno-says-it-will-block.patch" + patch -Np1 -i "$srcdir/0027-no_sys_if_nametoindex.patch" NOCONFIGURE=1 ./autogen.sh - - patch -Np1 -i "$srcdir/0026-define-HAVE_IF_NAMETOINDEX.patch" } build() From fd1850b24431b2fb6122b754789c2efd0f31f8bc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 17 Feb 2015 19:32:16 +0300 Subject: [PATCH 0540/2060] mingw-w64-headers: Add missing DX11 enum. --- ...ototype-for-CreateDeviceAndSwapChain.patch | 2 +- ...dxgi-Add-interface-for-IDXGISurface1.patch | 2 +- ...sing-dxgi-1.2-structs-and-interfaces.patch | 2 +- ...ing-d3d11-1.1-structs-and-interfaces.patch | 2 +- .../0005-Add-missing-DirectX11-enum.patch | 59 +++++++++++++++++++ mingw-w64-headers-git/PKGBUILD | 13 ++-- 6 files changed, 71 insertions(+), 9 deletions(-) create mode 100644 mingw-w64-headers-git/0005-Add-missing-DirectX11-enum.patch diff --git a/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch b/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch index 59959a3749..86c5b48e10 100644 --- a/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch +++ b/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch @@ -1,7 +1,7 @@ From 606f796685f7833ead74c25d4344b648353f6f2f Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 19:02:56 +0000 -Subject: [PATCH 1/4] d3d11: Add prototype for CreateDeviceAndSwapChain +Subject: [PATCH 1/5] d3d11: Add prototype for CreateDeviceAndSwapChain --- mingw-w64-headers/direct-x/include/d3d11.h | 3 +++ diff --git a/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch b/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch index 5a362963cb..2bb8f19c94 100644 --- a/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch +++ b/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch @@ -1,7 +1,7 @@ From f9592e22e65a0e6c1d0c390534618e5bb946c2a2 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 19:56:22 +0000 -Subject: [PATCH 2/4] dxgi: Add interface for IDXGISurface1 +Subject: [PATCH 2/5] dxgi: Add interface for IDXGISurface1 --- mingw-w64-headers/direct-x/include/dxgi.h | 191 ++++++++++++++++++++++++++++ diff --git a/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch b/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch index a6cb664567..1775ffa96a 100644 --- a/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch +++ b/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch @@ -1,7 +1,7 @@ From 5795b28b5cd163b7ade55196f929a7ec5683bf19 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 23:10:00 +0000 -Subject: [PATCH 3/4] dxgi: Add missing dxgi 1.2 structs and interfaces +Subject: [PATCH 3/5] dxgi: Add missing dxgi 1.2 structs and interfaces --- mingw-w64-headers/direct-x/include/dxgi1_2.h | 1384 ++++++++++++++++++++++++ diff --git a/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch b/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch index 6012728853..1d97a44648 100644 --- a/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch +++ b/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch @@ -1,7 +1,7 @@ From a4c30c0a15456a8a62af03f5eea02006eb453a87 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 23:40:12 +0000 -Subject: [PATCH 4/4] d3d11: Add missing d3d11 1.1 structs and interfaces +Subject: [PATCH 4/5] d3d11: Add missing d3d11 1.1 structs and interfaces --- mingw-w64-headers/direct-x/include/d3d11_1.h | 970 +++++++++++++++++++++++++ diff --git a/mingw-w64-headers-git/0005-Add-missing-DirectX11-enum.patch b/mingw-w64-headers-git/0005-Add-missing-DirectX11-enum.patch new file mode 100644 index 0000000000..dc6906de48 --- /dev/null +++ b/mingw-w64-headers-git/0005-Add-missing-DirectX11-enum.patch @@ -0,0 +1,59 @@ +From 6be0b32a05605d0d748df6994907761780026861 Mon Sep 17 00:00:00 2001 +From: Alexey Pavlov +Date: Tue, 17 Feb 2015 19:13:53 +0300 +Subject: [PATCH 5/5] Add missing DirectX 11 enum + +--- + mingw-w64-headers/direct-x/include/d3dcommon.h | 11 +++++++++++ + mingw-w64-headers/direct-x/include/d3dcommon.idl | 13 +++++++++++++ + 2 files changed, 24 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/d3dcommon.h b/mingw-w64-headers/direct-x/include/d3dcommon.h +index 5c1e674..04ffd29 100644 +--- a/mingw-w64-headers/direct-x/include/d3dcommon.h ++++ b/mingw-w64-headers/direct-x/include/d3dcommon.h +@@ -290,6 +290,17 @@ typedef enum _D3D_SHADER_VARIABLE_CLASS { + D3D11_SVC_INTERFACE_POINTER = 7, + D3D_SVC_FORCE_DWORD = 0x7fffffff + } D3D_SHADER_VARIABLE_CLASS; ++typedef enum _D3D_SHADER_VARIABLE_FLAGS { ++ D3D_SVF_USERPACKED = 1, ++ D3D_SVF_USED = 2, ++ D3D_SVF_INTERFACE_POINTER = 4, ++ D3D_SVF_INTERFACE_PARAMETER = 8, ++ D3D10_SVF_USERPACKED = 1, ++ D3D10_SVF_USED = 2, ++ D3D11_SVF_INTERFACE_POINTER = 4, ++ D3D11_SVF_INTERFACE_PARAMETER = 8, ++ D3D_SVF_FORCE_DWORD = 0x7fffffff ++} D3D_SHADER_VARIABLE_FLAGS; + typedef enum _D3D_SHADER_VARIABLE_TYPE { + D3D_SVT_VOID = 0, + D3D_SVT_BOOL = 1, +diff --git a/mingw-w64-headers/direct-x/include/d3dcommon.idl b/mingw-w64-headers/direct-x/include/d3dcommon.idl +index f8fe203..3f75afb 100644 +--- a/mingw-w64-headers/direct-x/include/d3dcommon.idl ++++ b/mingw-w64-headers/direct-x/include/d3dcommon.idl +@@ -126,6 +126,19 @@ typedef enum _D3D_SHADER_VARIABLE_CLASS + D3D_SVC_FORCE_DWORD = 0x7fffffff, + } D3D_SHADER_VARIABLE_CLASS; + ++typedef enum _D3D_SHADER_VARIABLE_FLAGS ++{ ++ D3D_SVF_USERPACKED = 1, ++ D3D_SVF_USED = 2, ++ D3D_SVF_INTERFACE_POINTER = 4, ++ D3D_SVF_INTERFACE_PARAMETER = 8, ++ D3D10_SVF_USERPACKED = 1, ++ D3D10_SVF_USED = 2, ++ D3D11_SVF_INTERFACE_POINTER = 4, ++ D3D11_SVF_INTERFACE_PARAMETER = 8, ++ D3D_SVF_FORCE_DWORD = 0x7fffffff ++} D3D_SHADER_VARIABLE_FLAGS; ++ + typedef enum _D3D_SHADER_VARIABLE_TYPE + { + D3D_SVT_VOID, +-- +2.3.0 + diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index e68c1f7482..3037a6b679 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -18,12 +18,14 @@ source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" - "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch") + "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" + "0005-Add-missing-DirectX11-enum.patch") md5sums=('SKIP' - '1d41bcda2554614bacdfc61dcdac86c2' - 'eb0a3000a68b4c9bce30596e5eada6d3' - '58d04f2eaf1cb77875b54043dffe1ca6' - 'ef97927bf991801a33bcc5f52b2c479c') + '0bcf1726f2093c6ed7e998d7e6c9dd16' + '20172a91981ffa87aa6aa5d3001c290b' + '410ff7ad4443a9f2e318c64742b2d358' + '28a4074ee6fcf76b5b13db2a8cd3291c' + '652859ad478448a70c2074a854a313ec') pkgver() { cd "$srcdir/$_realname" @@ -40,6 +42,7 @@ prepare() { git am "${srcdir}/"0002-dxgi-Add-interface-for-IDXGISurface1.patch git am "${srcdir}/"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch + git am "${srcdir}/"0005-Add-missing-DirectX11-enum.patch cd ${srcdir}/${_realname}/mingw-w64-headers touch include/windows.*.h include/wincrypt.h include/prsht.h From e4ca0a1e6356736f4f715fea161705287d58ce67 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 17 Feb 2015 21:46:32 +0300 Subject: [PATCH 0541/2060] mingw-w64-crt: Add DirectX 11 patches. --- ...ototype-for-CreateDeviceAndSwapChain.patch | 47 + ...dxgi-Add-interface-for-IDXGISurface1.patch | 258 +++ ...sing-dxgi-1.2-structs-and-interfaces.patch | 1718 +++++++++++++++++ ...ing-d3d11-1.1-structs-and-interfaces.patch | 1157 +++++++++++ .../0005-Add-missing-DirectX11-enum.patch | 59 + mingw-w64-crt-git/PKGBUILD | 21 +- 6 files changed, 3257 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch create mode 100644 mingw-w64-crt-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch create mode 100644 mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch create mode 100644 mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch create mode 100644 mingw-w64-crt-git/0005-Add-missing-DirectX11-enum.patch diff --git a/mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch b/mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch new file mode 100644 index 0000000000..86c5b48e10 --- /dev/null +++ b/mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch @@ -0,0 +1,47 @@ +From 606f796685f7833ead74c25d4344b648353f6f2f Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 16 Feb 2015 19:02:56 +0000 +Subject: [PATCH 1/5] d3d11: Add prototype for CreateDeviceAndSwapChain + +--- + mingw-w64-headers/direct-x/include/d3d11.h | 3 +++ + mingw-w64-headers/direct-x/include/d3d11.idl | 5 +++++ + 2 files changed, 8 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h +index 34c846b..4896a79 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.h ++++ b/mingw-w64-headers/direct-x/include/d3d11.h +@@ -8857,6 +8857,9 @@ HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,cons + typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT, + const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**, + D3D_FEATURE_LEVEL*,ID3D11DeviceContext**); ++HRESULT WINAPI D3D11CreateDeviceAndSwapChain(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT, ++ const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**, ++ D3D_FEATURE_LEVEL*,ID3D11DeviceContext**); + /* Begin additional prototypes for all interfaces */ + + +diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl +index d5732c9..d2ecbfa 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.idl ++++ b/mingw-w64-headers/direct-x/include/d3d11.idl +@@ -1,6 +1,7 @@ + /* + * Copyright 2010 Rico Schüller + * Copyright 2013 Austin English ++ * Copyright 2015 Martell Malone + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -2134,3 +2135,7 @@ cpp_quote(" UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext** + cpp_quote("typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") + cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") + cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") ++ ++cpp_quote("HRESULT WINAPI D3D11CreateDeviceAndSwapChain(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") ++cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") ++cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") +-- +2.3.0 + diff --git a/mingw-w64-crt-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch b/mingw-w64-crt-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch new file mode 100644 index 0000000000..2bb8f19c94 --- /dev/null +++ b/mingw-w64-crt-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch @@ -0,0 +1,258 @@ +From f9592e22e65a0e6c1d0c390534618e5bb946c2a2 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 16 Feb 2015 19:56:22 +0000 +Subject: [PATCH 2/5] dxgi: Add interface for IDXGISurface1 + +--- + mingw-w64-headers/direct-x/include/dxgi.h | 191 ++++++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/dxgi.idl | 19 +++ + 2 files changed, 210 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/dxgi.h b/mingw-w64-headers/direct-x/include/dxgi.h +index a8a99ed..edfae00 100644 +--- a/mingw-w64-headers/direct-x/include/dxgi.h ++++ b/mingw-w64-headers/direct-x/include/dxgi.h +@@ -42,6 +42,11 @@ typedef interface IDXGIKeyedMutex IDXGIKeyedMutex; + typedef interface IDXGISurface IDXGISurface; + #endif + ++#ifndef __IDXGISurface1_FWD_DEFINED__ ++#define __IDXGISurface1_FWD_DEFINED__ ++typedef interface IDXGISurface1 IDXGISurface1; ++#endif ++ + #ifndef __IDXGIOutput_FWD_DEFINED__ + #define __IDXGIOutput_FWD_DEFINED__ + typedef interface IDXGIOutput IDXGIOutput; +@@ -1018,6 +1023,192 @@ void __RPC_STUB IDXGISurface_Unmap_Stub( + #endif /* __IDXGISurface_INTERFACE_DEFINED__ */ + + /***************************************************************************** ++ * IDXGISurface1 interface ++ */ ++#ifndef __IDXGISurface1_INTERFACE_DEFINED__ ++#define __IDXGISurface1_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGISurface1, 0x4ae63092, 0x6327, 0x4c1b, 0x80,0xae, 0xbf,0xe1,0x2e,0xa3,0x2b,0x86); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("4ae63092-6327-4c1b-80ae-bfe12ea32b86") ++IDXGISurface1 : public IDXGISurface ++{ ++ virtual HRESULT STDMETHODCALLTYPE GetDC( ++ WINBOOL Discard, ++ HDC *dc) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE ReleaseDC( ++ RECT *rect) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGISurface1, 0x4ae63092, 0x6327, 0x4c1b, 0x80,0xae, 0xbf,0xe1,0x2e,0xa3,0x2b,0x86) ++#endif ++#else ++typedef struct IDXGISurface1Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGISurface1* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGISurface1* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGISurface1* This); ++ ++ /*** IDXGIObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ IDXGISurface1* This, ++ REFGUID guid, ++ UINT data_size, ++ const void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ IDXGISurface1* This, ++ REFGUID guid, ++ const IUnknown *object); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ IDXGISurface1* This, ++ REFGUID guid, ++ UINT *data_size, ++ void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *GetParent)( ++ IDXGISurface1* This, ++ REFIID riid, ++ void **parent); ++ ++ /*** IDXGIDeviceSubObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDevice)( ++ IDXGISurface1* This, ++ REFIID riid, ++ void **device); ++ ++ /*** IDXGISurface methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDesc)( ++ IDXGISurface1* This, ++ DXGI_SURFACE_DESC *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *Map)( ++ IDXGISurface1* This, ++ DXGI_MAPPED_RECT *mapped_rect, ++ UINT flags); ++ ++ HRESULT (STDMETHODCALLTYPE *Unmap)( ++ IDXGISurface1* This); ++ ++ /*** IDXGISurface1 methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDC)( ++ IDXGISurface1* This, ++ WINBOOL Discard, ++ HDC *dc); ++ ++ HRESULT (STDMETHODCALLTYPE *ReleaseDC)( ++ IDXGISurface1* This, ++ RECT *rect); ++ ++ END_INTERFACE ++} IDXGISurface1Vtbl; ++interface IDXGISurface1 { ++ CONST_VTBL IDXGISurface1Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGISurface1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGISurface1_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGISurface1_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIObject methods ***/ ++#define IDXGISurface1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) ++#define IDXGISurface1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) ++#define IDXGISurface1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) ++#define IDXGISurface1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) ++/*** IDXGIDeviceSubObject methods ***/ ++#define IDXGISurface1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) ++/*** IDXGISurface methods ***/ ++#define IDXGISurface1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) ++#define IDXGISurface1_Map(This,mapped_rect,flags) (This)->lpVtbl->Map(This,mapped_rect,flags) ++#define IDXGISurface1_Unmap(This) (This)->lpVtbl->Unmap(This) ++/*** IDXGISurface1 methods ***/ ++#define IDXGISurface1_GetDC(This,Discard,dc) (This)->lpVtbl->GetDC(This,Discard,dc) ++#define IDXGISurface1_ReleaseDC(This,rect) (This)->lpVtbl->ReleaseDC(This,rect) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGISurface1_QueryInterface(IDXGISurface1* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGISurface1_AddRef(IDXGISurface1* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGISurface1_Release(IDXGISurface1* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIObject methods ***/ ++static FORCEINLINE HRESULT IDXGISurface1_SetPrivateData(IDXGISurface1* This,REFGUID guid,UINT data_size,const void *data) { ++ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGISurface1_SetPrivateDataInterface(IDXGISurface1* This,REFGUID guid,const IUnknown *object) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); ++} ++static FORCEINLINE HRESULT IDXGISurface1_GetPrivateData(IDXGISurface1* This,REFGUID guid,UINT *data_size,void *data) { ++ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGISurface1_GetParent(IDXGISurface1* This,REFIID riid,void **parent) { ++ return This->lpVtbl->GetParent(This,riid,parent); ++} ++/*** IDXGIDeviceSubObject methods ***/ ++static FORCEINLINE HRESULT IDXGISurface1_GetDevice(IDXGISurface1* This,REFIID riid,void **device) { ++ return This->lpVtbl->GetDevice(This,riid,device); ++} ++/*** IDXGISurface methods ***/ ++static FORCEINLINE HRESULT IDXGISurface1_GetDesc(IDXGISurface1* This,DXGI_SURFACE_DESC *desc) { ++ return This->lpVtbl->GetDesc(This,desc); ++} ++static FORCEINLINE HRESULT IDXGISurface1_Map(IDXGISurface1* This,DXGI_MAPPED_RECT *mapped_rect,UINT flags) { ++ return This->lpVtbl->Map(This,mapped_rect,flags); ++} ++static FORCEINLINE HRESULT IDXGISurface1_Unmap(IDXGISurface1* This) { ++ return This->lpVtbl->Unmap(This); ++} ++/*** IDXGISurface1 methods ***/ ++static FORCEINLINE HRESULT IDXGISurface1_GetDC(IDXGISurface1* This,WINBOOL Discard,HDC *dc) { ++ return This->lpVtbl->GetDC(This,Discard,dc); ++} ++static FORCEINLINE HRESULT IDXGISurface1_ReleaseDC(IDXGISurface1* This,RECT *rect) { ++ return This->lpVtbl->ReleaseDC(This,rect); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE IDXGISurface1_GetDC_Proxy( ++ IDXGISurface1* This, ++ WINBOOL Discard, ++ HDC *dc); ++void __RPC_STUB IDXGISurface1_GetDC_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGISurface1_ReleaseDC_Proxy( ++ IDXGISurface1* This, ++ RECT *rect); ++void __RPC_STUB IDXGISurface1_ReleaseDC_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGISurface1_INTERFACE_DEFINED__ */ ++ ++/***************************************************************************** + * IDXGIOutput interface + */ + #ifndef __IDXGIOutput_INTERFACE_DEFINED__ +diff --git a/mingw-w64-headers/direct-x/include/dxgi.idl b/mingw-w64-headers/direct-x/include/dxgi.idl +index bc9538e..330a2c3 100644 +--- a/mingw-w64-headers/direct-x/include/dxgi.idl ++++ b/mingw-w64-headers/direct-x/include/dxgi.idl +@@ -1,5 +1,6 @@ + /* + * Copyright 2007 Andras Kovacs ++ * Copyright 2015 Martell Malone + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -222,6 +223,24 @@ interface IDXGISurface : IDXGIDeviceSubObject + + [ + object, ++ uuid(4ae63092-6327-4c1b-80ae-bfe12ea32b86), ++ local, ++ pointer_default(unique) ++] ++interface IDXGISurface1 : IDXGISurface ++{ ++ HRESULT GetDC( ++ [in] BOOL Discard, ++ [out] HDC *dc ++ ); ++ ++ HRESULT ReleaseDC( ++ [in] RECT *rect ++ ); ++} ++ ++[ ++ object, + local, + uuid(ae02eedb-c735-4690-8d52-5a8dc20213aa) + ] +-- +2.3.0 + diff --git a/mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch b/mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch new file mode 100644 index 0000000000..1775ffa96a --- /dev/null +++ b/mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch @@ -0,0 +1,1718 @@ +From 5795b28b5cd163b7ade55196f929a7ec5683bf19 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 16 Feb 2015 23:10:00 +0000 +Subject: [PATCH 3/5] dxgi: Add missing dxgi 1.2 structs and interfaces + +--- + mingw-w64-headers/direct-x/include/dxgi1_2.h | 1384 ++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/dxgi1_2.idl | 268 +++++ + 2 files changed, 1652 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.h b/mingw-w64-headers/direct-x/include/dxgi1_2.h +index f621d30..406135b 100644 +--- a/mingw-w64-headers/direct-x/include/dxgi1_2.h ++++ b/mingw-w64-headers/direct-x/include/dxgi1_2.h +@@ -17,6 +17,16 @@ + + /* Forward declarations */ + ++#ifndef __IDXGIDisplayControl_FWD_DEFINED__ ++#define __IDXGIDisplayControl_FWD_DEFINED__ ++typedef interface IDXGIDisplayControl IDXGIDisplayControl; ++#endif ++ ++#ifndef __IDXGIOutputDuplication_FWD_DEFINED__ ++#define __IDXGIOutputDuplication_FWD_DEFINED__ ++typedef interface IDXGIOutputDuplication IDXGIOutputDuplication; ++#endif ++ + #ifndef __IDXGIDevice2_FWD_DEFINED__ + #define __IDXGIDevice2_FWD_DEFINED__ + typedef interface IDXGIDevice2 IDXGIDevice2; +@@ -27,6 +37,21 @@ typedef interface IDXGIDevice2 IDXGIDevice2; + typedef interface IDXGISwapChain1 IDXGISwapChain1; + #endif + ++#ifndef __IDXGIFactory2_FWD_DEFINED__ ++#define __IDXGIFactory2_FWD_DEFINED__ ++typedef interface IDXGIFactory2 IDXGIFactory2; ++#endif ++ ++#ifndef __IDXGIAdapter2_FWD_DEFINED__ ++#define __IDXGIAdapter2_FWD_DEFINED__ ++typedef interface IDXGIAdapter2 IDXGIAdapter2; ++#endif ++ ++#ifndef __IDXGIOutput1_FWD_DEFINED__ ++#define __IDXGIOutput1_FWD_DEFINED__ ++typedef interface IDXGIOutput1 IDXGIOutput1; ++#endif ++ + /* Headers for imported files */ + + #include +@@ -35,6 +60,423 @@ typedef interface IDXGISwapChain1 IDXGISwapChain1; + extern "C" { + #endif + ++/***************************************************************************** ++ * IDXGIDisplayControl interface ++ */ ++#ifndef __IDXGIDisplayControl_INTERFACE_DEFINED__ ++#define __IDXGIDisplayControl_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("ea9dbf1a-c88e-4486-854a-98aa0138f30c") ++IDXGIDisplayControl : public IUnknown ++{ ++ virtual WINBOOL STDMETHODCALLTYPE IsStereoEnabled( ++ ) = 0; ++ ++ virtual void STDMETHODCALLTYPE SetStereoEnabled( ++ WINBOOL enabled) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c) ++#endif ++#else ++typedef struct IDXGIDisplayControlVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGIDisplayControl* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGIDisplayControl* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGIDisplayControl* This); ++ ++ /*** IDXGIDisplayControl methods ***/ ++ WINBOOL (STDMETHODCALLTYPE *IsStereoEnabled)( ++ IDXGIDisplayControl* This); ++ ++ void (STDMETHODCALLTYPE *SetStereoEnabled)( ++ IDXGIDisplayControl* This, ++ WINBOOL enabled); ++ ++ END_INTERFACE ++} IDXGIDisplayControlVtbl; ++interface IDXGIDisplayControl { ++ CONST_VTBL IDXGIDisplayControlVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGIDisplayControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGIDisplayControl_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGIDisplayControl_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIDisplayControl methods ***/ ++#define IDXGIDisplayControl_IsStereoEnabled(This) (This)->lpVtbl->IsStereoEnabled(This) ++#define IDXGIDisplayControl_SetStereoEnabled(This,enabled) (This)->lpVtbl->SetStereoEnabled(This,enabled) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGIDisplayControl_QueryInterface(IDXGIDisplayControl* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGIDisplayControl_AddRef(IDXGIDisplayControl* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGIDisplayControl_Release(IDXGIDisplayControl* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIDisplayControl methods ***/ ++static FORCEINLINE WINBOOL IDXGIDisplayControl_IsStereoEnabled(IDXGIDisplayControl* This) { ++ return This->lpVtbl->IsStereoEnabled(This); ++} ++static FORCEINLINE void IDXGIDisplayControl_SetStereoEnabled(IDXGIDisplayControl* This,WINBOOL enabled) { ++ This->lpVtbl->SetStereoEnabled(This,enabled); ++} ++#endif ++#endif ++ ++#endif ++ ++WINBOOL STDMETHODCALLTYPE IDXGIDisplayControl_IsStereoEnabled_Proxy( ++ IDXGIDisplayControl* This); ++void __RPC_STUB IDXGIDisplayControl_IsStereoEnabled_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++void STDMETHODCALLTYPE IDXGIDisplayControl_SetStereoEnabled_Proxy( ++ IDXGIDisplayControl* This, ++ WINBOOL enabled); ++void __RPC_STUB IDXGIDisplayControl_SetStereoEnabled_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGIDisplayControl_INTERFACE_DEFINED__ */ ++ ++typedef struct DXGI_OUTDUPL_MOVE_RECT { ++ POINT SourcePoint; ++ RECT DestinationRect; ++} DXGI_OUTDUPL_MOVE_RECT; ++typedef struct DXGI_OUTDUPL_DESC { ++ DXGI_MODE_DESC ModeDesc; ++ DXGI_MODE_ROTATION Rotation; ++ WINBOOL DesktopImageInSystemMemory; ++} DXGI_OUTDUPL_DESC; ++typedef struct DXGI_OUTDUPL_POINTER_POSITION { ++ POINT Position; ++ WINBOOL Visible; ++} DXGI_OUTDUPL_POINTER_POSITION; ++typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE { ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x1, ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2, ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4 ++} DXGI_OUTDUPL_POINTER_SHAPE_TYPE; ++typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO { ++ UINT Type; ++ UINT Width; ++ UINT Height; ++ UINT Pitch; ++ POINT HotSpot; ++} DXGI_OUTDUPL_POINTER_SHAPE_INFO; ++typedef struct DXGI_OUTDUPL_FRAME_INFO { ++ LARGE_INTEGER LastPresentTime; ++ LARGE_INTEGER LastMouseUpdateTime; ++ UINT AccumulatedFrames; ++ WINBOOL RectsCoalesced; ++ WINBOOL ProtectedContentMaskedOut; ++ DXGI_OUTDUPL_POINTER_POSITION PointerPosition; ++ UINT TotalMetadataBufferSize; ++ UINT PointerShapeBufferSize; ++} DXGI_OUTDUPL_FRAME_INFO; ++/***************************************************************************** ++ * IDXGIOutputDuplication interface ++ */ ++#ifndef __IDXGIOutputDuplication_INTERFACE_DEFINED__ ++#define __IDXGIOutputDuplication_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("191cfac3-a341-470d-b26e-a864f428319c") ++IDXGIOutputDuplication : public IDXGIObject ++{ ++ virtual void STDMETHODCALLTYPE GetDesc( ++ DXGI_OUTDUPL_DESC *desc) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE AcquireNextFrame( ++ UINT timeout, ++ DXGI_OUTDUPL_FRAME_INFO *frame_info, ++ IDXGIResource **resource) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetFrameDirtyRects( ++ UINT dirty_size, ++ RECT *buffer, ++ UINT *buffer_size) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetFrameMoveRects( ++ UINT move_size, ++ DXGI_OUTDUPL_MOVE_RECT *rect, ++ UINT *rect_size) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetFramePointerShape( ++ UINT shape_size, ++ void *buffer, ++ UINT *buffer_size, ++ DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE MapDesktopSurface( ++ DXGI_MAPPED_RECT *rect) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE UnMapDesktopSurface( ++ ) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE ReleaseFrame( ++ ) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c) ++#endif ++#else ++typedef struct IDXGIOutputDuplicationVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGIOutputDuplication* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGIOutputDuplication* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGIOutputDuplication* This); ++ ++ /*** IDXGIObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ IDXGIOutputDuplication* This, ++ REFGUID guid, ++ UINT data_size, ++ const void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ IDXGIOutputDuplication* This, ++ REFGUID guid, ++ const IUnknown *object); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ IDXGIOutputDuplication* This, ++ REFGUID guid, ++ UINT *data_size, ++ void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *GetParent)( ++ IDXGIOutputDuplication* This, ++ REFIID riid, ++ void **parent); ++ ++ /*** IDXGIOutputDuplication methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc)( ++ IDXGIOutputDuplication* This, ++ DXGI_OUTDUPL_DESC *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *AcquireNextFrame)( ++ IDXGIOutputDuplication* This, ++ UINT timeout, ++ DXGI_OUTDUPL_FRAME_INFO *frame_info, ++ IDXGIResource **resource); ++ ++ HRESULT (STDMETHODCALLTYPE *GetFrameDirtyRects)( ++ IDXGIOutputDuplication* This, ++ UINT dirty_size, ++ RECT *buffer, ++ UINT *buffer_size); ++ ++ HRESULT (STDMETHODCALLTYPE *GetFrameMoveRects)( ++ IDXGIOutputDuplication* This, ++ UINT move_size, ++ DXGI_OUTDUPL_MOVE_RECT *rect, ++ UINT *rect_size); ++ ++ HRESULT (STDMETHODCALLTYPE *GetFramePointerShape)( ++ IDXGIOutputDuplication* This, ++ UINT shape_size, ++ void *buffer, ++ UINT *buffer_size, ++ DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info); ++ ++ HRESULT (STDMETHODCALLTYPE *MapDesktopSurface)( ++ IDXGIOutputDuplication* This, ++ DXGI_MAPPED_RECT *rect); ++ ++ HRESULT (STDMETHODCALLTYPE *UnMapDesktopSurface)( ++ IDXGIOutputDuplication* This); ++ ++ HRESULT (STDMETHODCALLTYPE *ReleaseFrame)( ++ IDXGIOutputDuplication* This); ++ ++ END_INTERFACE ++} IDXGIOutputDuplicationVtbl; ++interface IDXGIOutputDuplication { ++ CONST_VTBL IDXGIOutputDuplicationVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGIOutputDuplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGIOutputDuplication_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGIOutputDuplication_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIObject methods ***/ ++#define IDXGIOutputDuplication_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) ++#define IDXGIOutputDuplication_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) ++#define IDXGIOutputDuplication_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) ++#define IDXGIOutputDuplication_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) ++/*** IDXGIOutputDuplication methods ***/ ++#define IDXGIOutputDuplication_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) ++#define IDXGIOutputDuplication_AcquireNextFrame(This,timeout,frame_info,resource) (This)->lpVtbl->AcquireNextFrame(This,timeout,frame_info,resource) ++#define IDXGIOutputDuplication_GetFrameDirtyRects(This,dirty_size,buffer,buffer_size) (This)->lpVtbl->GetFrameDirtyRects(This,dirty_size,buffer,buffer_size) ++#define IDXGIOutputDuplication_GetFrameMoveRects(This,move_size,rect,rect_size) (This)->lpVtbl->GetFrameMoveRects(This,move_size,rect,rect_size) ++#define IDXGIOutputDuplication_GetFramePointerShape(This,shape_size,buffer,buffer_size,shape_info) (This)->lpVtbl->GetFramePointerShape(This,shape_size,buffer,buffer_size,shape_info) ++#define IDXGIOutputDuplication_MapDesktopSurface(This,rect) (This)->lpVtbl->MapDesktopSurface(This,rect) ++#define IDXGIOutputDuplication_UnMapDesktopSurface(This) (This)->lpVtbl->UnMapDesktopSurface(This) ++#define IDXGIOutputDuplication_ReleaseFrame(This) (This)->lpVtbl->ReleaseFrame(This) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGIOutputDuplication_QueryInterface(IDXGIOutputDuplication* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGIOutputDuplication_AddRef(IDXGIOutputDuplication* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGIOutputDuplication_Release(IDXGIOutputDuplication* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIObject methods ***/ ++static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT data_size,const void *data) { ++ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateDataInterface(IDXGIOutputDuplication* This,REFGUID guid,const IUnknown *object) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_GetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT *data_size,void *data) { ++ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_GetParent(IDXGIOutputDuplication* This,REFIID riid,void **parent) { ++ return This->lpVtbl->GetParent(This,riid,parent); ++} ++/*** IDXGIOutputDuplication methods ***/ ++static FORCEINLINE void IDXGIOutputDuplication_GetDesc(IDXGIOutputDuplication* This,DXGI_OUTDUPL_DESC *desc) { ++ This->lpVtbl->GetDesc(This,desc); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_AcquireNextFrame(IDXGIOutputDuplication* This,UINT timeout,DXGI_OUTDUPL_FRAME_INFO *frame_info,IDXGIResource **resource) { ++ return This->lpVtbl->AcquireNextFrame(This,timeout,frame_info,resource); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameDirtyRects(IDXGIOutputDuplication* This,UINT dirty_size,RECT *buffer,UINT *buffer_size) { ++ return This->lpVtbl->GetFrameDirtyRects(This,dirty_size,buffer,buffer_size); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameMoveRects(IDXGIOutputDuplication* This,UINT move_size,DXGI_OUTDUPL_MOVE_RECT *rect,UINT *rect_size) { ++ return This->lpVtbl->GetFrameMoveRects(This,move_size,rect,rect_size); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFramePointerShape(IDXGIOutputDuplication* This,UINT shape_size,void *buffer,UINT *buffer_size,DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info) { ++ return This->lpVtbl->GetFramePointerShape(This,shape_size,buffer,buffer_size,shape_info); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_MapDesktopSurface(IDXGIOutputDuplication* This,DXGI_MAPPED_RECT *rect) { ++ return This->lpVtbl->MapDesktopSurface(This,rect); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_UnMapDesktopSurface(IDXGIOutputDuplication* This) { ++ return This->lpVtbl->UnMapDesktopSurface(This); ++} ++static FORCEINLINE HRESULT IDXGIOutputDuplication_ReleaseFrame(IDXGIOutputDuplication* This) { ++ return This->lpVtbl->ReleaseFrame(This); ++} ++#endif ++#endif ++ ++#endif ++ ++void STDMETHODCALLTYPE IDXGIOutputDuplication_GetDesc_Proxy( ++ IDXGIOutputDuplication* This, ++ DXGI_OUTDUPL_DESC *desc); ++void __RPC_STUB IDXGIOutputDuplication_GetDesc_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_AcquireNextFrame_Proxy( ++ IDXGIOutputDuplication* This, ++ UINT timeout, ++ DXGI_OUTDUPL_FRAME_INFO *frame_info, ++ IDXGIResource **resource); ++void __RPC_STUB IDXGIOutputDuplication_AcquireNextFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFrameDirtyRects_Proxy( ++ IDXGIOutputDuplication* This, ++ UINT dirty_size, ++ RECT *buffer, ++ UINT *buffer_size); ++void __RPC_STUB IDXGIOutputDuplication_GetFrameDirtyRects_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFrameMoveRects_Proxy( ++ IDXGIOutputDuplication* This, ++ UINT move_size, ++ DXGI_OUTDUPL_MOVE_RECT *rect, ++ UINT *rect_size); ++void __RPC_STUB IDXGIOutputDuplication_GetFrameMoveRects_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFramePointerShape_Proxy( ++ IDXGIOutputDuplication* This, ++ UINT shape_size, ++ void *buffer, ++ UINT *buffer_size, ++ DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info); ++void __RPC_STUB IDXGIOutputDuplication_GetFramePointerShape_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_MapDesktopSurface_Proxy( ++ IDXGIOutputDuplication* This, ++ DXGI_MAPPED_RECT *rect); ++void __RPC_STUB IDXGIOutputDuplication_MapDesktopSurface_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_UnMapDesktopSurface_Proxy( ++ IDXGIOutputDuplication* This); ++void __RPC_STUB IDXGIOutputDuplication_UnMapDesktopSurface_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_ReleaseFrame_Proxy( ++ IDXGIOutputDuplication* This); ++void __RPC_STUB IDXGIOutputDuplication_ReleaseFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGIOutputDuplication_INTERFACE_DEFINED__ */ ++ + typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { + DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, + DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2, +@@ -745,6 +1187,948 @@ void __RPC_STUB IDXGISwapChain1_GetRotation_Stub( + + #endif /* __IDXGISwapChain1_INTERFACE_DEFINED__ */ + ++/***************************************************************************** ++ * IDXGIFactory2 interface ++ */ ++#ifndef __IDXGIFactory2_INTERFACE_DEFINED__ ++#define __IDXGIFactory2_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("50c83a1c-e072-4c48-87b0-3630fa36a6d0") ++IDXGIFactory2 : public IDXGIFactory1 ++{ ++ virtual WINBOOL STDMETHODCALLTYPE IsWindowedStereoEnabled( ++ ) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForHwnd( ++ IUnknown *device, ++ HWND hwnd, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForCoreWindow( ++ IUnknown *device, ++ IUnknown *window, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetSharedResourceAdapterLuid( ++ HANDLE resource, ++ LUID *luid) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusWindow( ++ HWND window, ++ UINT msg, ++ DWORD *cookie) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusEvent( ++ HANDLE event, ++ DWORD *cookie) = 0; ++ ++ virtual void STDMETHODCALLTYPE UnregisterStereoStatus( ++ DWORD cookie) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusWindow( ++ HWND window, ++ UINT msg, ++ DWORD *cookie) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusEvent( ++ HANDLE event, ++ DWORD *cookie) = 0; ++ ++ virtual void STDMETHODCALLTYPE UnregisterOcclusionStatus( ++ DWORD cookie) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForComposition( ++ IUnknown *device, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0) ++#endif ++#else ++typedef struct IDXGIFactory2Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGIFactory2* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGIFactory2* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGIFactory2* This); ++ ++ /*** IDXGIObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ IDXGIFactory2* This, ++ REFGUID guid, ++ UINT data_size, ++ const void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ IDXGIFactory2* This, ++ REFGUID guid, ++ const IUnknown *object); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ IDXGIFactory2* This, ++ REFGUID guid, ++ UINT *data_size, ++ void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *GetParent)( ++ IDXGIFactory2* This, ++ REFIID riid, ++ void **parent); ++ ++ /*** IDXGIFactory methods ***/ ++ HRESULT (STDMETHODCALLTYPE *EnumAdapters)( ++ IDXGIFactory2* This, ++ UINT adapter_idx, ++ IDXGIAdapter **adapter); ++ ++ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)( ++ IDXGIFactory2* This, ++ HWND window, ++ UINT flags); ++ ++ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)( ++ IDXGIFactory2* This, ++ HWND *window); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ DXGI_SWAP_CHAIN_DESC *desc, ++ IDXGISwapChain **swapchain); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)( ++ IDXGIFactory2* This, ++ HMODULE swrast, ++ IDXGIAdapter **adapter); ++ ++ /*** IDXGIFactory1 methods ***/ ++ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)( ++ IDXGIFactory2* This, ++ UINT Adapter, ++ IDXGIAdapter1 **ppAdapter); ++ ++ WINBOOL (STDMETHODCALLTYPE *IsCurrent)( ++ IDXGIFactory2* This); ++ ++ /*** IDXGIFactory2 methods ***/ ++ WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)( ++ IDXGIFactory2* This); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ HWND hwnd, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ IUnknown *window, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++ ++ HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)( ++ IDXGIFactory2* This, ++ HANDLE resource, ++ LUID *luid); ++ ++ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)( ++ IDXGIFactory2* This, ++ HWND window, ++ UINT msg, ++ DWORD *cookie); ++ ++ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)( ++ IDXGIFactory2* This, ++ HANDLE event, ++ DWORD *cookie); ++ ++ void (STDMETHODCALLTYPE *UnregisterStereoStatus)( ++ IDXGIFactory2* This, ++ DWORD cookie); ++ ++ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)( ++ IDXGIFactory2* This, ++ HWND window, ++ UINT msg, ++ DWORD *cookie); ++ ++ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)( ++ IDXGIFactory2* This, ++ HANDLE event, ++ DWORD *cookie); ++ ++ void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)( ++ IDXGIFactory2* This, ++ DWORD cookie); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++ ++ END_INTERFACE ++} IDXGIFactory2Vtbl; ++interface IDXGIFactory2 { ++ CONST_VTBL IDXGIFactory2Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGIFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGIFactory2_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGIFactory2_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIObject methods ***/ ++#define IDXGIFactory2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) ++#define IDXGIFactory2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) ++#define IDXGIFactory2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) ++#define IDXGIFactory2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) ++/*** IDXGIFactory methods ***/ ++#define IDXGIFactory2_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter) ++#define IDXGIFactory2_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags) ++#define IDXGIFactory2_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window) ++#define IDXGIFactory2_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain) ++#define IDXGIFactory2_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter) ++/*** IDXGIFactory1 methods ***/ ++#define IDXGIFactory2_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter) ++#define IDXGIFactory2_IsCurrent(This) (This)->lpVtbl->IsCurrent(This) ++/*** IDXGIFactory2 methods ***/ ++#define IDXGIFactory2_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This) ++#define IDXGIFactory2_CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain) ++#define IDXGIFactory2_CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain) ++#define IDXGIFactory2_GetSharedResourceAdapterLuid(This,resource,luid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,resource,luid) ++#define IDXGIFactory2_RegisterStereoStatusWindow(This,window,msg,cookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,window,msg,cookie) ++#define IDXGIFactory2_RegisterStereoStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,event,cookie) ++#define IDXGIFactory2_UnregisterStereoStatus(This,cookie) (This)->lpVtbl->UnregisterStereoStatus(This,cookie) ++#define IDXGIFactory2_RegisterOcclusionStatusWindow(This,window,msg,cookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,window,msg,cookie) ++#define IDXGIFactory2_RegisterOcclusionStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,event,cookie) ++#define IDXGIFactory2_UnregisterOcclusionStatus(This,cookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,cookie) ++#define IDXGIFactory2_CreateSwapChainForComposition(This,device,desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForComposition(This,device,desc,output,swapchain) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGIFactory2_QueryInterface(IDXGIFactory2* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGIFactory2_AddRef(IDXGIFactory2* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGIFactory2_Release(IDXGIFactory2* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIObject methods ***/ ++static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT data_size,const void *data) { ++ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateDataInterface(IDXGIFactory2* This,REFGUID guid,const IUnknown *object) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_GetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT *data_size,void *data) { ++ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_GetParent(IDXGIFactory2* This,REFIID riid,void **parent) { ++ return This->lpVtbl->GetParent(This,riid,parent); ++} ++/*** IDXGIFactory methods ***/ ++static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters(IDXGIFactory2* This,UINT adapter_idx,IDXGIAdapter **adapter) { ++ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_MakeWindowAssociation(IDXGIFactory2* This,HWND window,UINT flags) { ++ return This->lpVtbl->MakeWindowAssociation(This,window,flags); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_GetWindowAssociation(IDXGIFactory2* This,HWND *window) { ++ return This->lpVtbl->GetWindowAssociation(This,window); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChain(IDXGIFactory2* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) { ++ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_CreateSoftwareAdapter(IDXGIFactory2* This,HMODULE swrast,IDXGIAdapter **adapter) { ++ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter); ++} ++/*** IDXGIFactory1 methods ***/ ++static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters1(IDXGIFactory2* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) { ++ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter); ++} ++static FORCEINLINE WINBOOL IDXGIFactory2_IsCurrent(IDXGIFactory2* This) { ++ return This->lpVtbl->IsCurrent(This); ++} ++/*** IDXGIFactory2 methods ***/ ++static FORCEINLINE WINBOOL IDXGIFactory2_IsWindowedStereoEnabled(IDXGIFactory2* This) { ++ return This->lpVtbl->IsWindowedStereoEnabled(This); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForHwnd(IDXGIFactory2* This,IUnknown *device,HWND hwnd,const DXGI_SWAP_CHAIN_DESC1 *desc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { ++ return This->lpVtbl->CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForCoreWindow(IDXGIFactory2* This,IUnknown *device,IUnknown *window,const DXGI_SWAP_CHAIN_DESC1 *desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { ++ return This->lpVtbl->CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_GetSharedResourceAdapterLuid(IDXGIFactory2* This,HANDLE resource,LUID *luid) { ++ return This->lpVtbl->GetSharedResourceAdapterLuid(This,resource,luid); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusWindow(IDXGIFactory2* This,HWND window,UINT msg,DWORD *cookie) { ++ return This->lpVtbl->RegisterStereoStatusWindow(This,window,msg,cookie); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusEvent(IDXGIFactory2* This,HANDLE event,DWORD *cookie) { ++ return This->lpVtbl->RegisterStereoStatusEvent(This,event,cookie); ++} ++static FORCEINLINE void IDXGIFactory2_UnregisterStereoStatus(IDXGIFactory2* This,DWORD cookie) { ++ This->lpVtbl->UnregisterStereoStatus(This,cookie); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusWindow(IDXGIFactory2* This,HWND window,UINT msg,DWORD *cookie) { ++ return This->lpVtbl->RegisterOcclusionStatusWindow(This,window,msg,cookie); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusEvent(IDXGIFactory2* This,HANDLE event,DWORD *cookie) { ++ return This->lpVtbl->RegisterOcclusionStatusEvent(This,event,cookie); ++} ++static FORCEINLINE void IDXGIFactory2_UnregisterOcclusionStatus(IDXGIFactory2* This,DWORD cookie) { ++ This->lpVtbl->UnregisterOcclusionStatus(This,cookie); ++} ++static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForComposition(IDXGIFactory2* This,IUnknown *device,const DXGI_SWAP_CHAIN_DESC1 *desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { ++ return This->lpVtbl->CreateSwapChainForComposition(This,device,desc,output,swapchain); ++} ++#endif ++#endif ++ ++#endif ++ ++WINBOOL STDMETHODCALLTYPE IDXGIFactory2_IsWindowedStereoEnabled_Proxy( ++ IDXGIFactory2* This); ++void __RPC_STUB IDXGIFactory2_IsWindowedStereoEnabled_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForHwnd_Proxy( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ HWND hwnd, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++void __RPC_STUB IDXGIFactory2_CreateSwapChainForHwnd_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForCoreWindow_Proxy( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ IUnknown *window, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++void __RPC_STUB IDXGIFactory2_CreateSwapChainForCoreWindow_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_GetSharedResourceAdapterLuid_Proxy( ++ IDXGIFactory2* This, ++ HANDLE resource, ++ LUID *luid); ++void __RPC_STUB IDXGIFactory2_GetSharedResourceAdapterLuid_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterStereoStatusWindow_Proxy( ++ IDXGIFactory2* This, ++ HWND window, ++ UINT msg, ++ DWORD *cookie); ++void __RPC_STUB IDXGIFactory2_RegisterStereoStatusWindow_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterStereoStatusEvent_Proxy( ++ IDXGIFactory2* This, ++ HANDLE event, ++ DWORD *cookie); ++void __RPC_STUB IDXGIFactory2_RegisterStereoStatusEvent_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++void STDMETHODCALLTYPE IDXGIFactory2_UnregisterStereoStatus_Proxy( ++ IDXGIFactory2* This, ++ DWORD cookie); ++void __RPC_STUB IDXGIFactory2_UnregisterStereoStatus_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterOcclusionStatusWindow_Proxy( ++ IDXGIFactory2* This, ++ HWND window, ++ UINT msg, ++ DWORD *cookie); ++void __RPC_STUB IDXGIFactory2_RegisterOcclusionStatusWindow_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterOcclusionStatusEvent_Proxy( ++ IDXGIFactory2* This, ++ HANDLE event, ++ DWORD *cookie); ++void __RPC_STUB IDXGIFactory2_RegisterOcclusionStatusEvent_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++void STDMETHODCALLTYPE IDXGIFactory2_UnregisterOcclusionStatus_Proxy( ++ IDXGIFactory2* This, ++ DWORD cookie); ++void __RPC_STUB IDXGIFactory2_UnregisterOcclusionStatus_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForComposition_Proxy( ++ IDXGIFactory2* This, ++ IUnknown *device, ++ const DXGI_SWAP_CHAIN_DESC1 *desc, ++ IDXGIOutput *output, ++ IDXGISwapChain1 **swapchain); ++void __RPC_STUB IDXGIFactory2_CreateSwapChainForComposition_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGIFactory2_INTERFACE_DEFINED__ */ ++ ++typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY { ++ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, ++ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1, ++ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2, ++ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3, ++ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4 ++} DXGI_GRAPHICS_PREEMPTION_GRANULARITY; ++typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY { ++ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, ++ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1, ++ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2, ++ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3, ++ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4 ++} DXGI_COMPUTE_PREEMPTION_GRANULARITY; ++typedef struct DXGI_ADAPTER_DESC2 { ++ WCHAR Description[128]; ++ UINT VendorId; ++ UINT DeviceId; ++ UINT SubSysId; ++ UINT Revision; ++ SIZE_T DedicatedVideoMemory; ++ SIZE_T DedicatedSystemMemory; ++ SIZE_T SharedSystemMemory; ++ LUID AdapterLuid; ++ UINT Flags; ++ DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; ++ DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; ++} DXGI_ADAPTER_DESC2; ++/***************************************************************************** ++ * IDXGIAdapter2 interface ++ */ ++#ifndef __IDXGIAdapter2_INTERFACE_DEFINED__ ++#define __IDXGIAdapter2_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("0aa1ae0a-fa0e-4b84-8644-e05ff8e5acb5") ++IDXGIAdapter2 : public IDXGIAdapter1 ++{ ++ virtual HRESULT STDMETHODCALLTYPE GetDesc2( ++ DXGI_ADAPTER_DESC2 *desc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5) ++#endif ++#else ++typedef struct IDXGIAdapter2Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGIAdapter2* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGIAdapter2* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGIAdapter2* This); ++ ++ /*** IDXGIObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ IDXGIAdapter2* This, ++ REFGUID guid, ++ UINT data_size, ++ const void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ IDXGIAdapter2* This, ++ REFGUID guid, ++ const IUnknown *object); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ IDXGIAdapter2* This, ++ REFGUID guid, ++ UINT *data_size, ++ void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *GetParent)( ++ IDXGIAdapter2* This, ++ REFIID riid, ++ void **parent); ++ ++ /*** IDXGIAdapter methods ***/ ++ HRESULT (STDMETHODCALLTYPE *EnumOutputs)( ++ IDXGIAdapter2* This, ++ UINT output_idx, ++ IDXGIOutput **output); ++ ++ HRESULT (STDMETHODCALLTYPE *GetDesc)( ++ IDXGIAdapter2* This, ++ DXGI_ADAPTER_DESC *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)( ++ IDXGIAdapter2* This, ++ REFGUID guid, ++ LARGE_INTEGER *umd_version); ++ ++ /*** IDXGIAdapter1 methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDesc1)( ++ IDXGIAdapter2* This, ++ DXGI_ADAPTER_DESC1 *pDesc); ++ ++ /*** IDXGIAdapter2 methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDesc2)( ++ IDXGIAdapter2* This, ++ DXGI_ADAPTER_DESC2 *desc); ++ ++ END_INTERFACE ++} IDXGIAdapter2Vtbl; ++interface IDXGIAdapter2 { ++ CONST_VTBL IDXGIAdapter2Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGIAdapter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGIAdapter2_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGIAdapter2_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIObject methods ***/ ++#define IDXGIAdapter2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) ++#define IDXGIAdapter2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) ++#define IDXGIAdapter2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) ++#define IDXGIAdapter2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) ++/*** IDXGIAdapter methods ***/ ++#define IDXGIAdapter2_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output) ++#define IDXGIAdapter2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) ++#define IDXGIAdapter2_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version) ++/*** IDXGIAdapter1 methods ***/ ++#define IDXGIAdapter2_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc) ++/*** IDXGIAdapter2 methods ***/ ++#define IDXGIAdapter2_GetDesc2(This,desc) (This)->lpVtbl->GetDesc2(This,desc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGIAdapter2_QueryInterface(IDXGIAdapter2* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGIAdapter2_AddRef(IDXGIAdapter2* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGIAdapter2_Release(IDXGIAdapter2* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIObject methods ***/ ++static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT data_size,const void *data) { ++ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateDataInterface(IDXGIAdapter2* This,REFGUID guid,const IUnknown *object) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); ++} ++static FORCEINLINE HRESULT IDXGIAdapter2_GetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT *data_size,void *data) { ++ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIAdapter2_GetParent(IDXGIAdapter2* This,REFIID riid,void **parent) { ++ return This->lpVtbl->GetParent(This,riid,parent); ++} ++/*** IDXGIAdapter methods ***/ ++static FORCEINLINE HRESULT IDXGIAdapter2_EnumOutputs(IDXGIAdapter2* This,UINT output_idx,IDXGIOutput **output) { ++ return This->lpVtbl->EnumOutputs(This,output_idx,output); ++} ++static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc(IDXGIAdapter2* This,DXGI_ADAPTER_DESC *desc) { ++ return This->lpVtbl->GetDesc(This,desc); ++} ++static FORCEINLINE HRESULT IDXGIAdapter2_CheckInterfaceSupport(IDXGIAdapter2* This,REFGUID guid,LARGE_INTEGER *umd_version) { ++ return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version); ++} ++/*** IDXGIAdapter1 methods ***/ ++static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc1(IDXGIAdapter2* This,DXGI_ADAPTER_DESC1 *pDesc) { ++ return This->lpVtbl->GetDesc1(This,pDesc); ++} ++/*** IDXGIAdapter2 methods ***/ ++static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc2(IDXGIAdapter2* This,DXGI_ADAPTER_DESC2 *desc) { ++ return This->lpVtbl->GetDesc2(This,desc); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE IDXGIAdapter2_GetDesc2_Proxy( ++ IDXGIAdapter2* This, ++ DXGI_ADAPTER_DESC2 *desc); ++void __RPC_STUB IDXGIAdapter2_GetDesc2_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */ ++ ++typedef struct DXGI_MODE_DESC1 { ++ UINT Width; ++ UINT Height; ++ DXGI_RATIONAL RefreshRate; ++ DXGI_FORMAT Format; ++ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; ++ DXGI_MODE_SCALING Scaling; ++ WINBOOL Stereo; ++} DXGI_MODE_DESC1; ++/***************************************************************************** ++ * IDXGIOutput1 interface ++ */ ++#ifndef __IDXGIOutput1_INTERFACE_DEFINED__ ++#define __IDXGIOutput1_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("00cddea8-939b-4b83-a340-a685226666cc") ++IDXGIOutput1 : public IDXGIOutput ++{ ++ virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList1( ++ DXGI_FORMAT format, ++ UINT flags, ++ UINT *mode_count, ++ DXGI_MODE_DESC1 *desc) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode1( ++ const DXGI_MODE_DESC1 *mode, ++ DXGI_MODE_DESC1 *closest_match, ++ IUnknown *device) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData1( ++ IDXGIResource *resource) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE DuplicateOutput( ++ IUnknown *device, ++ IDXGIOutputDuplication **output) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc) ++#endif ++#else ++typedef struct IDXGIOutput1Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ IDXGIOutput1* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ IDXGIOutput1* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ IDXGIOutput1* This); ++ ++ /*** IDXGIObject methods ***/ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ IDXGIOutput1* This, ++ REFGUID guid, ++ UINT data_size, ++ const void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ IDXGIOutput1* This, ++ REFGUID guid, ++ const IUnknown *object); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ IDXGIOutput1* This, ++ REFGUID guid, ++ UINT *data_size, ++ void *data); ++ ++ HRESULT (STDMETHODCALLTYPE *GetParent)( ++ IDXGIOutput1* This, ++ REFIID riid, ++ void **parent); ++ ++ /*** IDXGIOutput methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDesc)( ++ IDXGIOutput1* This, ++ DXGI_OUTPUT_DESC *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)( ++ IDXGIOutput1* This, ++ DXGI_FORMAT format, ++ UINT flags, ++ UINT *mode_count, ++ DXGI_MODE_DESC *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)( ++ IDXGIOutput1* This, ++ const DXGI_MODE_DESC *mode, ++ DXGI_MODE_DESC *closest_match, ++ IUnknown *device); ++ ++ HRESULT (STDMETHODCALLTYPE *WaitForVBlank)( ++ IDXGIOutput1* This); ++ ++ HRESULT (STDMETHODCALLTYPE *TakeOwnership)( ++ IDXGIOutput1* This, ++ IUnknown *device, ++ WINBOOL exclusive); ++ ++ void (STDMETHODCALLTYPE *ReleaseOwnership)( ++ IDXGIOutput1* This); ++ ++ HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)( ++ IDXGIOutput1* This, ++ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps); ++ ++ HRESULT (STDMETHODCALLTYPE *SetGammaControl)( ++ IDXGIOutput1* This, ++ const DXGI_GAMMA_CONTROL *gamma_control); ++ ++ HRESULT (STDMETHODCALLTYPE *GetGammaControl)( ++ IDXGIOutput1* This, ++ DXGI_GAMMA_CONTROL *gamma_control); ++ ++ HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)( ++ IDXGIOutput1* This, ++ IDXGISurface *surface); ++ ++ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)( ++ IDXGIOutput1* This, ++ IDXGISurface *surface); ++ ++ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)( ++ IDXGIOutput1* This, ++ DXGI_FRAME_STATISTICS *stats); ++ ++ /*** IDXGIOutput1 methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)( ++ IDXGIOutput1* This, ++ DXGI_FORMAT format, ++ UINT flags, ++ UINT *mode_count, ++ DXGI_MODE_DESC1 *desc); ++ ++ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)( ++ IDXGIOutput1* This, ++ const DXGI_MODE_DESC1 *mode, ++ DXGI_MODE_DESC1 *closest_match, ++ IUnknown *device); ++ ++ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)( ++ IDXGIOutput1* This, ++ IDXGIResource *resource); ++ ++ HRESULT (STDMETHODCALLTYPE *DuplicateOutput)( ++ IDXGIOutput1* This, ++ IUnknown *device, ++ IDXGIOutputDuplication **output); ++ ++ END_INTERFACE ++} IDXGIOutput1Vtbl; ++interface IDXGIOutput1 { ++ CONST_VTBL IDXGIOutput1Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define IDXGIOutput1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define IDXGIOutput1_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define IDXGIOutput1_Release(This) (This)->lpVtbl->Release(This) ++/*** IDXGIObject methods ***/ ++#define IDXGIOutput1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) ++#define IDXGIOutput1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) ++#define IDXGIOutput1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) ++#define IDXGIOutput1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) ++/*** IDXGIOutput methods ***/ ++#define IDXGIOutput1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) ++#define IDXGIOutput1_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc) ++#define IDXGIOutput1_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device) ++#define IDXGIOutput1_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This) ++#define IDXGIOutput1_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive) ++#define IDXGIOutput1_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This) ++#define IDXGIOutput1_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps) ++#define IDXGIOutput1_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control) ++#define IDXGIOutput1_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control) ++#define IDXGIOutput1_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface) ++#define IDXGIOutput1_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface) ++#define IDXGIOutput1_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats) ++/*** IDXGIOutput1 methods ***/ ++#define IDXGIOutput1_GetDisplayModeList1(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList1(This,format,flags,mode_count,desc) ++#define IDXGIOutput1_FindClosestMatchingMode1(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode,closest_match,device) ++#define IDXGIOutput1_GetDisplaySurfaceData1(This,resource) (This)->lpVtbl->GetDisplaySurfaceData1(This,resource) ++#define IDXGIOutput1_DuplicateOutput(This,device,output) (This)->lpVtbl->DuplicateOutput(This,device,output) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT IDXGIOutput1_QueryInterface(IDXGIOutput1* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG IDXGIOutput1_AddRef(IDXGIOutput1* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG IDXGIOutput1_Release(IDXGIOutput1* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** IDXGIObject methods ***/ ++static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT data_size,const void *data) { ++ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateDataInterface(IDXGIOutput1* This,REFGUID guid,const IUnknown *object) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT *data_size,void *data) { ++ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetParent(IDXGIOutput1* This,REFIID riid,void **parent) { ++ return This->lpVtbl->GetParent(This,riid,parent); ++} ++/*** IDXGIOutput methods ***/ ++static FORCEINLINE HRESULT IDXGIOutput1_GetDesc(IDXGIOutput1* This,DXGI_OUTPUT_DESC *desc) { ++ return This->lpVtbl->GetDesc(This,desc); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList(IDXGIOutput1* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) { ++ return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode(IDXGIOutput1* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) { ++ return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_WaitForVBlank(IDXGIOutput1* This) { ++ return This->lpVtbl->WaitForVBlank(This); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_TakeOwnership(IDXGIOutput1* This,IUnknown *device,WINBOOL exclusive) { ++ return This->lpVtbl->TakeOwnership(This,device,exclusive); ++} ++static FORCEINLINE void IDXGIOutput1_ReleaseOwnership(IDXGIOutput1* This) { ++ This->lpVtbl->ReleaseOwnership(This); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControlCapabilities(IDXGIOutput1* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) { ++ return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_SetGammaControl(IDXGIOutput1* This,const DXGI_GAMMA_CONTROL *gamma_control) { ++ return This->lpVtbl->SetGammaControl(This,gamma_control); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControl(IDXGIOutput1* This,DXGI_GAMMA_CONTROL *gamma_control) { ++ return This->lpVtbl->GetGammaControl(This,gamma_control); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_SetDisplaySurface(IDXGIOutput1* This,IDXGISurface *surface) { ++ return This->lpVtbl->SetDisplaySurface(This,surface); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData(IDXGIOutput1* This,IDXGISurface *surface) { ++ return This->lpVtbl->GetDisplaySurfaceData(This,surface); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetFrameStatistics(IDXGIOutput1* This,DXGI_FRAME_STATISTICS *stats) { ++ return This->lpVtbl->GetFrameStatistics(This,stats); ++} ++/*** IDXGIOutput1 methods ***/ ++static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList1(IDXGIOutput1* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC1 *desc) { ++ return This->lpVtbl->GetDisplayModeList1(This,format,flags,mode_count,desc); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode1(IDXGIOutput1* This,const DXGI_MODE_DESC1 *mode,DXGI_MODE_DESC1 *closest_match,IUnknown *device) { ++ return This->lpVtbl->FindClosestMatchingMode1(This,mode,closest_match,device); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData1(IDXGIOutput1* This,IDXGIResource *resource) { ++ return This->lpVtbl->GetDisplaySurfaceData1(This,resource); ++} ++static FORCEINLINE HRESULT IDXGIOutput1_DuplicateOutput(IDXGIOutput1* This,IUnknown *device,IDXGIOutputDuplication **output) { ++ return This->lpVtbl->DuplicateOutput(This,device,output); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE IDXGIOutput1_GetDisplayModeList1_Proxy( ++ IDXGIOutput1* This, ++ DXGI_FORMAT format, ++ UINT flags, ++ UINT *mode_count, ++ DXGI_MODE_DESC1 *desc); ++void __RPC_STUB IDXGIOutput1_GetDisplayModeList1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutput1_FindClosestMatchingMode1_Proxy( ++ IDXGIOutput1* This, ++ const DXGI_MODE_DESC1 *mode, ++ DXGI_MODE_DESC1 *closest_match, ++ IUnknown *device); ++void __RPC_STUB IDXGIOutput1_FindClosestMatchingMode1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutput1_GetDisplaySurfaceData1_Proxy( ++ IDXGIOutput1* This, ++ IDXGIResource *resource); ++void __RPC_STUB IDXGIOutput1_GetDisplaySurfaceData1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE IDXGIOutput1_DuplicateOutput_Proxy( ++ IDXGIOutput1* This, ++ IUnknown *device, ++ IDXGIOutputDuplication **output); ++void __RPC_STUB IDXGIOutput1_DuplicateOutput_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __IDXGIOutput1_INTERFACE_DEFINED__ */ ++ + /* Begin additional prototypes for all interfaces */ + + +diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.idl b/mingw-w64-headers/direct-x/include/dxgi1_2.idl +index bba4ab8..eed13bb 100644 +--- a/mingw-w64-headers/direct-x/include/dxgi1_2.idl ++++ b/mingw-w64-headers/direct-x/include/dxgi1_2.idl +@@ -1,5 +1,6 @@ + /* + * Copyright 2014 Jacek Caban for CodeWeavers ++ * Copyright 2015 Martell Malone + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -18,6 +19,114 @@ + + import "dxgi.idl"; + ++[ ++ object, ++ uuid(ea9dbf1a-c88e-4486-854a-98aa0138f30c), ++ local, ++ pointer_default(unique) ++] ++interface IDXGIDisplayControl : IUnknown ++{ ++ BOOL IsStereoEnabled(); ++ ++ void SetStereoEnabled( ++ BOOL enabled ++ ); ++} ++ ++typedef struct DXGI_OUTDUPL_MOVE_RECT ++{ ++ POINT SourcePoint; ++ RECT DestinationRect; ++} DXGI_OUTDUPL_MOVE_RECT; ++ ++typedef struct DXGI_OUTDUPL_DESC ++{ ++ DXGI_MODE_DESC ModeDesc; ++ DXGI_MODE_ROTATION Rotation; ++ BOOL DesktopImageInSystemMemory; ++} DXGI_OUTDUPL_DESC; ++ ++typedef struct DXGI_OUTDUPL_POINTER_POSITION ++{ ++ POINT Position; ++ BOOL Visible; ++} DXGI_OUTDUPL_POINTER_POSITION; ++ ++typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE ++{ ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x1, ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2, ++ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4 ++} DXGI_OUTDUPL_POINTER_SHAPE_TYPE; ++ ++typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO ++{ ++ UINT Type; ++ UINT Width; ++ UINT Height; ++ UINT Pitch; ++ POINT HotSpot; ++} DXGI_OUTDUPL_POINTER_SHAPE_INFO; ++ ++typedef struct DXGI_OUTDUPL_FRAME_INFO ++{ ++ LARGE_INTEGER LastPresentTime; ++ LARGE_INTEGER LastMouseUpdateTime; ++ UINT AccumulatedFrames; ++ BOOL RectsCoalesced; ++ BOOL ProtectedContentMaskedOut; ++ DXGI_OUTDUPL_POINTER_POSITION PointerPosition; ++ UINT TotalMetadataBufferSize; ++ UINT PointerShapeBufferSize; ++} DXGI_OUTDUPL_FRAME_INFO; ++ ++[ ++ object, ++ uuid(191cfac3-a341-470d-b26e-a864f428319c), ++ local, ++ pointer_default(unique) ++] ++interface IDXGIOutputDuplication : IDXGIObject ++{ ++ void GetDesc( ++ [out] DXGI_OUTDUPL_DESC *desc ++ ); ++ ++ HRESULT AcquireNextFrame( ++ [in] UINT timeout, ++ [out] DXGI_OUTDUPL_FRAME_INFO *frame_info, ++ [out] IDXGIResource **resource ++ ); ++ ++ HRESULT GetFrameDirtyRects( ++ [in] UINT dirty_size, ++ [out] RECT *buffer, ++ [out] UINT *buffer_size ++ ); ++ ++ HRESULT GetFrameMoveRects( ++ [in] UINT move_size, ++ [out] DXGI_OUTDUPL_MOVE_RECT *rect, ++ [out] UINT *rect_size ++ ); ++ ++ HRESULT GetFramePointerShape( ++ [in] UINT shape_size, ++ [out] void *buffer, ++ [out] UINT *buffer_size, ++ [out] DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info ++ ); ++ ++ HRESULT MapDesktopSurface( ++ [out] DXGI_MAPPED_RECT *rect ++ ); ++ ++ HRESULT UnMapDesktopSurface(); ++ ++ HRESULT ReleaseFrame(); ++} ++ + typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { + DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, + DXGI_OFFER_RESOURCE_PRIORITY_NORMAL, +@@ -130,3 +239,162 @@ interface IDXGISwapChain1 : IDXGISwapChain + HRESULT GetRotation( + [out] DXGI_MODE_ROTATION *pRotation); + } ++ ++[ ++ object, ++ uuid(50c83a1c-e072-4c48-87b0-3630fa36a6d0), ++ local, ++ pointer_default(unique) ++] ++interface IDXGIFactory2 : IDXGIFactory1 ++{ ++ BOOL IsWindowedStereoEnabled(); ++ ++ HRESULT CreateSwapChainForHwnd( ++ [in] IUnknown *device, ++ [in] HWND hwnd, ++ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, ++ [in] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, ++ [in] IDXGIOutput *output, ++ [out] IDXGISwapChain1 **swapchain ++ ); ++ ++ HRESULT CreateSwapChainForCoreWindow( ++ [in] IUnknown *device, ++ [in] IUnknown *window, ++ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, ++ [in] IDXGIOutput *output, ++ [out] IDXGISwapChain1 **swapchain ++ ); ++ ++ HRESULT GetSharedResourceAdapterLuid( ++ [in] HANDLE resource, ++ [out] LUID *luid ++ ); ++ ++ HRESULT RegisterStereoStatusWindow( ++ [in] HWND window, ++ [in] UINT msg, ++ [out] DWORD *cookie ++ ); ++ ++ HRESULT RegisterStereoStatusEvent( ++ [in] HANDLE event, ++ [out] DWORD *cookie ++ ); ++ ++ void UnregisterStereoStatus( ++ [in] DWORD cookie ++ ); ++ ++ HRESULT RegisterOcclusionStatusWindow( ++ [in] HWND window, ++ [in] UINT msg, ++ [out] DWORD *cookie ++ ); ++ ++ HRESULT RegisterOcclusionStatusEvent( ++ [in] HANDLE event, ++ [out] DWORD *cookie ++ ); ++ ++ void UnregisterOcclusionStatus( ++ [in] DWORD cookie ++ ); ++ ++ HRESULT CreateSwapChainForComposition( ++ [in] IUnknown *device, ++ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, ++ [in] IDXGIOutput *output, ++ [out] IDXGISwapChain1 **swapchain ++ ); ++ } ++ ++typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY ++{ ++ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, ++ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1, ++ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2, ++ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3, ++ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4, ++} DXGI_GRAPHICS_PREEMPTION_GRANULARITY; ++ ++typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY ++{ ++ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, ++ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1, ++ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2, ++ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3, ++ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4, ++} DXGI_COMPUTE_PREEMPTION_GRANULARITY; ++ ++typedef struct DXGI_ADAPTER_DESC2 ++{ ++ WCHAR Description[128]; ++ UINT VendorId; ++ UINT DeviceId; ++ UINT SubSysId; ++ UINT Revision; ++ SIZE_T DedicatedVideoMemory; ++ SIZE_T DedicatedSystemMemory; ++ SIZE_T SharedSystemMemory; ++ LUID AdapterLuid; ++ UINT Flags; ++ DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; ++ DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; ++} DXGI_ADAPTER_DESC2; ++ ++[ ++ object, ++ uuid(0aa1ae0a-fa0e-4B84-8644-e05ff8e5acb5), ++ local, ++ pointer_default(unique) ++] ++interface IDXGIAdapter2 : IDXGIAdapter1 ++{ ++ HRESULT GetDesc2( ++ [out] DXGI_ADAPTER_DESC2 *desc ++ ); ++} ++ ++typedef struct DXGI_MODE_DESC1 ++{ ++ UINT Width; ++ UINT Height; ++ DXGI_RATIONAL RefreshRate; ++ DXGI_FORMAT Format; ++ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; ++ DXGI_MODE_SCALING Scaling; ++ BOOL Stereo; ++} DXGI_MODE_DESC1; ++ ++[ ++ object, ++ uuid(00cddea8-939b-4b83-a340-a685226666cc), ++ local, ++ pointer_default(unique) ++] ++interface IDXGIOutput1 : IDXGIOutput ++{ ++ HRESULT GetDisplayModeList1( ++ [in] DXGI_FORMAT format, ++ [in] UINT flags, ++ [in, out] UINT *mode_count, ++ [out] DXGI_MODE_DESC1 *desc ++ ); ++ ++ HRESULT FindClosestMatchingMode1( ++ [in] const DXGI_MODE_DESC1 *mode, ++ [out] DXGI_MODE_DESC1 *closest_match, ++ [in] IUnknown *device ++ ); ++ ++ HRESULT GetDisplaySurfaceData1( ++ [in] IDXGIResource *resource ++ ); ++ ++ HRESULT DuplicateOutput( ++ [in] IUnknown *device, ++ [out] IDXGIOutputDuplication **output ++ ); ++} +-- +2.3.0 + diff --git a/mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch b/mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch new file mode 100644 index 0000000000..1d97a44648 --- /dev/null +++ b/mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch @@ -0,0 +1,1157 @@ +From a4c30c0a15456a8a62af03f5eea02006eb453a87 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 16 Feb 2015 23:40:12 +0000 +Subject: [PATCH 4/5] d3d11: Add missing d3d11 1.1 structs and interfaces + +--- + mingw-w64-headers/direct-x/include/d3d11_1.h | 970 +++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/d3d11_1.idl | 139 ++++ + 2 files changed, 1109 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.h b/mingw-w64-headers/direct-x/include/d3d11_1.h +index ad50171..17183ef 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11_1.h ++++ b/mingw-w64-headers/direct-x/include/d3d11_1.h +@@ -27,6 +27,21 @@ typedef interface ID3DDeviceContextState ID3DDeviceContextState; + typedef interface ID3D11DeviceContext1 ID3D11DeviceContext1; + #endif + ++#ifndef __ID3D11BlendState1_FWD_DEFINED__ ++#define __ID3D11BlendState1_FWD_DEFINED__ ++typedef interface ID3D11BlendState1 ID3D11BlendState1; ++#endif ++ ++#ifndef __ID3D11RasterizerState1_FWD_DEFINED__ ++#define __ID3D11RasterizerState1_FWD_DEFINED__ ++typedef interface ID3D11RasterizerState1 ID3D11RasterizerState1; ++#endif ++ ++#ifndef __ID3D11Device1_FWD_DEFINED__ ++#define __ID3D11Device1_FWD_DEFINED__ ++typedef interface ID3D11Device1 ID3D11Device1; ++#endif ++ + #ifndef __ID3DUserDefinedAnnotation_FWD_DEFINED__ + #define __ID3DUserDefinedAnnotation_FWD_DEFINED__ + typedef interface ID3DUserDefinedAnnotation ID3DUserDefinedAnnotation; +@@ -1872,6 +1887,961 @@ void __RPC_STUB ID3D11DeviceContext1_DiscardView1_Stub( + + #endif /* __ID3D11DeviceContext1_INTERFACE_DEFINED__ */ + ++typedef enum D3D11_COPY_FLAGS { ++ D3D11_COPY_NO_OVERWRITE = 0x1, ++ D3D11_COPY_DISCARD = 0x2 ++} D3D11_COPY_FLAGS; ++typedef enum D3D11_LOGIC_OP { ++ D3D11_LOGIC_OP_CLEAR = 0, ++ D3D11_LOGIC_OP_SET = 1, ++ D3D11_LOGIC_OP_COPY = 2, ++ D3D11_LOGIC_OP_COPY_INVERTED = 3, ++ D3D11_LOGIC_OP_NOOP = 4, ++ D3D11_LOGIC_OP_INVERT = 5, ++ D3D11_LOGIC_OP_AND = 6, ++ D3D11_LOGIC_OP_NAND = 7, ++ D3D11_LOGIC_OP_OR = 8, ++ D3D11_LOGIC_OP_NOR = 9, ++ D3D11_LOGIC_OP_XOR = 10, ++ D3D11_LOGIC_OP_EQUIV = 11, ++ D3D11_LOGIC_OP_AND_REVERSE = 12, ++ D3D11_LOGIC_OP_AND_INVERTED = 13, ++ D3D11_LOGIC_OP_OR_REVERSE = 14, ++ D3D11_LOGIC_OP_OR_INVERTED = 15 ++} D3D11_LOGIC_OP; ++typedef struct D3D11_RENDER_TARGET_BLEND_DESC1 { ++ WINBOOL BlendEnable; ++ WINBOOL LogicOpEnable; ++ D3D11_BLEND SrcBlend; ++ D3D11_BLEND DestBlend; ++ D3D11_BLEND_OP BlendOp; ++ D3D11_BLEND SrcBlendAlpha; ++ D3D11_BLEND DestBlendAlpha; ++ D3D11_BLEND_OP BlendOpAlpha; ++ D3D11_LOGIC_OP LogicOp; ++ UINT8 RenderTargetWriteMask; ++} D3D11_RENDER_TARGET_BLEND_DESC1; ++typedef struct D3D11_BLEND_DESC1 { ++ WINBOOL AlphaToCoverageEnable; ++ WINBOOL IndependentBlendEnable; ++ D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[8]; ++} D3D11_BLEND_DESC1; ++/***************************************************************************** ++ * ID3D11BlendState1 interface ++ */ ++#ifndef __ID3D11BlendState1_INTERFACE_DEFINED__ ++#define __ID3D11BlendState1_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("cc86fabe-da55-401d-85e7-e3c9de2877e9") ++ID3D11BlendState1 : public ID3D11BlendState ++{ ++ virtual void STDMETHODCALLTYPE GetDesc1( ++ D3D11_BLEND_DESC1 *desc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9) ++#endif ++#else ++typedef struct ID3D11BlendState1Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11BlendState1* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11BlendState1* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11BlendState1* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11BlendState1* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11BlendState1* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11BlendState1* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11BlendState1* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ /*** ID3D11BlendState methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc)( ++ ID3D11BlendState1* This, ++ D3D11_BLEND_DESC *pDesc); ++ ++ /*** ID3D11BlendState1 methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc1)( ++ ID3D11BlendState1* This, ++ D3D11_BLEND_DESC1 *desc); ++ ++ END_INTERFACE ++} ID3D11BlendState1Vtbl; ++interface ID3D11BlendState1 { ++ CONST_VTBL ID3D11BlendState1Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11BlendState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11BlendState1_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11BlendState1_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11BlendState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11BlendState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11BlendState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11BlendState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++/*** ID3D11BlendState methods ***/ ++#define ID3D11BlendState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) ++/*** ID3D11BlendState1 methods ***/ ++#define ID3D11BlendState1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11BlendState1_QueryInterface(ID3D11BlendState1* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11BlendState1_AddRef(ID3D11BlendState1* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11BlendState1_Release(ID3D11BlendState1* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11BlendState1_GetDevice(ID3D11BlendState1* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11BlendState1_GetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateDataInterface(ID3D11BlendState1* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++/*** ID3D11BlendState methods ***/ ++static FORCEINLINE void ID3D11BlendState1_GetDesc(ID3D11BlendState1* This,D3D11_BLEND_DESC *pDesc) { ++ This->lpVtbl->GetDesc(This,pDesc); ++} ++/*** ID3D11BlendState1 methods ***/ ++static FORCEINLINE void ID3D11BlendState1_GetDesc1(ID3D11BlendState1* This,D3D11_BLEND_DESC1 *desc) { ++ This->lpVtbl->GetDesc1(This,desc); ++} ++#endif ++#endif ++ ++#endif ++ ++void STDMETHODCALLTYPE ID3D11BlendState1_GetDesc1_Proxy( ++ ID3D11BlendState1* This, ++ D3D11_BLEND_DESC1 *desc); ++void __RPC_STUB ID3D11BlendState1_GetDesc1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11BlendState1_INTERFACE_DEFINED__ */ ++ ++typedef struct D3D11_RASTERIZER_DESC1 { ++ D3D11_FILL_MODE FillMode; ++ D3D11_CULL_MODE CullMode; ++ WINBOOL FrontCounterClockwise; ++ INT DepthBias; ++ float DepthBiasClamp; ++ float SlopeScaledDepthBias; ++ WINBOOL DepthClipEnable; ++ WINBOOL ScissorEnable; ++ WINBOOL MultisampleEnable; ++ WINBOOL AntialiasedLineEnable; ++ UINT ForcedSampleCount; ++} D3D11_RASTERIZER_DESC1; ++/***************************************************************************** ++ * ID3D11RasterizerState1 interface ++ */ ++#ifndef __ID3D11RasterizerState1_INTERFACE_DEFINED__ ++#define __ID3D11RasterizerState1_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("1217d7a6-5039-418c-b042-9cbe256afd6e") ++ID3D11RasterizerState1 : public ID3D11RasterizerState ++{ ++ virtual void STDMETHODCALLTYPE GetDesc1( ++ D3D11_RASTERIZER_DESC1 *desc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e) ++#endif ++#else ++typedef struct ID3D11RasterizerState1Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11RasterizerState1* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11RasterizerState1* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11RasterizerState1* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11RasterizerState1* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11RasterizerState1* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11RasterizerState1* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11RasterizerState1* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ /*** ID3D11RasterizerState methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc)( ++ ID3D11RasterizerState1* This, ++ D3D11_RASTERIZER_DESC *pDesc); ++ ++ /*** ID3D11RasterizerState1 methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc1)( ++ ID3D11RasterizerState1* This, ++ D3D11_RASTERIZER_DESC1 *desc); ++ ++ END_INTERFACE ++} ID3D11RasterizerState1Vtbl; ++interface ID3D11RasterizerState1 { ++ CONST_VTBL ID3D11RasterizerState1Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11RasterizerState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11RasterizerState1_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11RasterizerState1_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11RasterizerState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11RasterizerState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11RasterizerState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11RasterizerState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++/*** ID3D11RasterizerState methods ***/ ++#define ID3D11RasterizerState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) ++/*** ID3D11RasterizerState1 methods ***/ ++#define ID3D11RasterizerState1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11RasterizerState1_QueryInterface(ID3D11RasterizerState1* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11RasterizerState1_AddRef(ID3D11RasterizerState1* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11RasterizerState1_Release(ID3D11RasterizerState1* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11RasterizerState1_GetDevice(ID3D11RasterizerState1* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11RasterizerState1_GetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateDataInterface(ID3D11RasterizerState1* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++/*** ID3D11RasterizerState methods ***/ ++static FORCEINLINE void ID3D11RasterizerState1_GetDesc(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC *pDesc) { ++ This->lpVtbl->GetDesc(This,pDesc); ++} ++/*** ID3D11RasterizerState1 methods ***/ ++static FORCEINLINE void ID3D11RasterizerState1_GetDesc1(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC1 *desc) { ++ This->lpVtbl->GetDesc1(This,desc); ++} ++#endif ++#endif ++ ++#endif ++ ++void STDMETHODCALLTYPE ID3D11RasterizerState1_GetDesc1_Proxy( ++ ID3D11RasterizerState1* This, ++ D3D11_RASTERIZER_DESC1 *desc); ++void __RPC_STUB ID3D11RasterizerState1_GetDesc1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11RasterizerState1_INTERFACE_DEFINED__ */ ++ ++/***************************************************************************** ++ * ID3D11Device1 interface ++ */ ++#ifndef __ID3D11Device1_INTERFACE_DEFINED__ ++#define __ID3D11Device1_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("a04bfb29-08ef-43d6-a49c-a9bdbdcbe686") ++ID3D11Device1 : public ID3D11Device ++{ ++ virtual void STDMETHODCALLTYPE GetImmediateContext1( ++ ID3D11DeviceContext1 **context) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext1( ++ UINT flags, ++ ID3D11DeviceContext1 **context) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateBlendState1( ++ const D3D11_BLEND_DESC1 *desc, ++ ID3D11BlendState1 **state) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState1( ++ const D3D11_RASTERIZER_DESC1 *desc, ++ ID3D11RasterizerState1 **state) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateDeviceContextState( ++ UINT flags, ++ const D3D_FEATURE_LEVEL *levels, ++ UINT levels_count, ++ UINT version, ++ REFIID emu_interface, ++ D3D_FEATURE_LEVEL *level, ++ ID3DDeviceContextState **state) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE OpenSharedResource1( ++ HANDLE resource, ++ REFIID emu_interface, ++ void **data) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE OpenSharedResourceByName( ++ const WCHAR *name, ++ DWORD access, ++ REFIID emu_interface, ++ void **data) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86) ++#endif ++#else ++typedef struct ID3D11Device1Vtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11Device1* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11Device1* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11Device1* This); ++ ++ /*** ID3D11Device methods ***/ ++ HRESULT (STDMETHODCALLTYPE *CreateBuffer)( ++ ID3D11Device1* This, ++ const D3D11_BUFFER_DESC *pDesc, ++ const D3D11_SUBRESOURCE_DATA *pInitialData, ++ ID3D11Buffer **ppBuffer); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)( ++ ID3D11Device1* This, ++ const D3D11_TEXTURE1D_DESC *pDesc, ++ const D3D11_SUBRESOURCE_DATA *pInitialData, ++ ID3D11Texture1D **ppTexture1D); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)( ++ ID3D11Device1* This, ++ const D3D11_TEXTURE2D_DESC *pDesc, ++ const D3D11_SUBRESOURCE_DATA *pInitialData, ++ ID3D11Texture2D **ppTexture2D); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)( ++ ID3D11Device1* This, ++ const D3D11_TEXTURE3D_DESC *pDesc, ++ const D3D11_SUBRESOURCE_DATA *pInitialData, ++ ID3D11Texture3D **ppTexture3D); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)( ++ ID3D11Device1* This, ++ ID3D11Resource *pResource, ++ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, ++ ID3D11ShaderResourceView **ppSRView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)( ++ ID3D11Device1* This, ++ ID3D11Resource *pResource, ++ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, ++ ID3D11UnorderedAccessView **ppUAView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)( ++ ID3D11Device1* This, ++ ID3D11Resource *pResource, ++ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, ++ ID3D11RenderTargetView **ppRTView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)( ++ ID3D11Device1* This, ++ ID3D11Resource *pResource, ++ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, ++ ID3D11DepthStencilView **ppDepthStencilView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)( ++ ID3D11Device1* This, ++ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs, ++ UINT NumElements, ++ const void *pShaderBytecodeWithInputSignature, ++ SIZE_T BytecodeLength, ++ ID3D11InputLayout **ppInputLayout); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11VertexShader **ppVertexShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11GeometryShader **ppGeometryShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration, ++ UINT NumEntries, ++ const UINT *pBufferStrides, ++ UINT NumStrides, ++ UINT RasterizedStream, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11GeometryShader **ppGeometryShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11PixelShader **ppPixelShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateHullShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11HullShader **ppHullShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDomainShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11DomainShader **ppDomainShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateComputeShader)( ++ ID3D11Device1* This, ++ const void *pShaderBytecode, ++ SIZE_T BytecodeLength, ++ ID3D11ClassLinkage *pClassLinkage, ++ ID3D11ComputeShader **ppComputeShader); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)( ++ ID3D11Device1* This, ++ ID3D11ClassLinkage **ppLinkage); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateBlendState)( ++ ID3D11Device1* This, ++ const D3D11_BLEND_DESC *pBlendStateDesc, ++ ID3D11BlendState **ppBlendState); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)( ++ ID3D11Device1* This, ++ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, ++ ID3D11DepthStencilState **ppDepthStencilState); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)( ++ ID3D11Device1* This, ++ const D3D11_RASTERIZER_DESC *pRasterizerDesc, ++ ID3D11RasterizerState **ppRasterizerState); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)( ++ ID3D11Device1* This, ++ const D3D11_SAMPLER_DESC *pSamplerDesc, ++ ID3D11SamplerState **ppSamplerState); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateQuery)( ++ ID3D11Device1* This, ++ const D3D11_QUERY_DESC *pQueryDesc, ++ ID3D11Query **ppQuery); ++ ++ HRESULT (STDMETHODCALLTYPE *CreatePredicate)( ++ ID3D11Device1* This, ++ const D3D11_QUERY_DESC *pPredicateDesc, ++ ID3D11Predicate **ppPredicate); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateCounter)( ++ ID3D11Device1* This, ++ const D3D11_COUNTER_DESC *pCounterDesc, ++ ID3D11Counter **ppCounter); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)( ++ ID3D11Device1* This, ++ UINT ContextFlags, ++ ID3D11DeviceContext **ppDeferredContext); ++ ++ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)( ++ ID3D11Device1* This, ++ HANDLE hResource, ++ REFIID ReturnedInterface, ++ void **ppResource); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)( ++ ID3D11Device1* This, ++ DXGI_FORMAT Format, ++ UINT *pFormatSupport); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)( ++ ID3D11Device1* This, ++ DXGI_FORMAT Format, ++ UINT SampleCount, ++ UINT *pNumQualityLevels); ++ ++ void (STDMETHODCALLTYPE *CheckCounterInfo)( ++ ID3D11Device1* This, ++ D3D11_COUNTER_INFO *pCounterInfo); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckCounter)( ++ ID3D11Device1* This, ++ const D3D11_COUNTER_DESC *pDesc, ++ D3D11_COUNTER_TYPE *pType, ++ UINT *pActiveCounters, ++ LPSTR szName, ++ UINT *pNameLength, ++ LPSTR szUnits, ++ UINT *pUnitsLength, ++ LPSTR szDescription, ++ UINT *pDescriptionLength); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( ++ ID3D11Device1* This, ++ D3D11_FEATURE Feature, ++ void *pFeatureSupportData, ++ UINT FeatureSupportDataSize); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11Device1* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11Device1* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11Device1* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)( ++ ID3D11Device1* This); ++ ++ UINT (STDMETHODCALLTYPE *GetCreationFlags)( ++ ID3D11Device1* This); ++ ++ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( ++ ID3D11Device1* This); ++ ++ void (STDMETHODCALLTYPE *GetImmediateContext)( ++ ID3D11Device1* This, ++ ID3D11DeviceContext **ppImmediateContext); ++ ++ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)( ++ ID3D11Device1* This, ++ UINT RaiseFlags); ++ ++ UINT (STDMETHODCALLTYPE *GetExceptionMode)( ++ ID3D11Device1* This); ++ ++ /*** ID3D11Device1 methods ***/ ++ void (STDMETHODCALLTYPE *GetImmediateContext1)( ++ ID3D11Device1* This, ++ ID3D11DeviceContext1 **context); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)( ++ ID3D11Device1* This, ++ UINT flags, ++ ID3D11DeviceContext1 **context); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateBlendState1)( ++ ID3D11Device1* This, ++ const D3D11_BLEND_DESC1 *desc, ++ ID3D11BlendState1 **state); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)( ++ ID3D11Device1* This, ++ const D3D11_RASTERIZER_DESC1 *desc, ++ ID3D11RasterizerState1 **state); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)( ++ ID3D11Device1* This, ++ UINT flags, ++ const D3D_FEATURE_LEVEL *levels, ++ UINT levels_count, ++ UINT version, ++ REFIID emu_interface, ++ D3D_FEATURE_LEVEL *level, ++ ID3DDeviceContextState **state); ++ ++ HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)( ++ ID3D11Device1* This, ++ HANDLE resource, ++ REFIID emu_interface, ++ void **data); ++ ++ HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)( ++ ID3D11Device1* This, ++ const WCHAR *name, ++ DWORD access, ++ REFIID emu_interface, ++ void **data); ++ ++ END_INTERFACE ++} ID3D11Device1Vtbl; ++interface ID3D11Device1 { ++ CONST_VTBL ID3D11Device1Vtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11Device1_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11Device1_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11Device methods ***/ ++#define ID3D11Device1_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer) ++#define ID3D11Device1_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) ++#define ID3D11Device1_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) ++#define ID3D11Device1_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) ++#define ID3D11Device1_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView) ++#define ID3D11Device1_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) ++#define ID3D11Device1_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView) ++#define ID3D11Device1_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) ++#define ID3D11Device1_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) ++#define ID3D11Device1_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) ++#define ID3D11Device1_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) ++#define ID3D11Device1_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) ++#define ID3D11Device1_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) ++#define ID3D11Device1_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) ++#define ID3D11Device1_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) ++#define ID3D11Device1_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) ++#define ID3D11Device1_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage) ++#define ID3D11Device1_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState) ++#define ID3D11Device1_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) ++#define ID3D11Device1_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) ++#define ID3D11Device1_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState) ++#define ID3D11Device1_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery) ++#define ID3D11Device1_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate) ++#define ID3D11Device1_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter) ++#define ID3D11Device1_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext) ++#define ID3D11Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource) ++#define ID3D11Device1_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport) ++#define ID3D11Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) ++#define ID3D11Device1_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo) ++#define ID3D11Device1_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) ++#define ID3D11Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ++#define ID3D11Device1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11Device1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11Device1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++#define ID3D11Device1_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This) ++#define ID3D11Device1_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This) ++#define ID3D11Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) ++#define ID3D11Device1_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext) ++#define ID3D11Device1_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags) ++#define ID3D11Device1_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This) ++/*** ID3D11Device1 methods ***/ ++#define ID3D11Device1_GetImmediateContext1(This,context) (This)->lpVtbl->GetImmediateContext1(This,context) ++#define ID3D11Device1_CreateDeferredContext1(This,flags,context) (This)->lpVtbl->CreateDeferredContext1(This,flags,context) ++#define ID3D11Device1_CreateBlendState1(This,desc,state) (This)->lpVtbl->CreateBlendState1(This,desc,state) ++#define ID3D11Device1_CreateRasterizerState1(This,desc,state) (This)->lpVtbl->CreateRasterizerState1(This,desc,state) ++#define ID3D11Device1_CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state) (This)->lpVtbl->CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state) ++#define ID3D11Device1_OpenSharedResource1(This,resource,emu_interface,data) (This)->lpVtbl->OpenSharedResource1(This,resource,emu_interface,data) ++#define ID3D11Device1_OpenSharedResourceByName(This,name,access,emu_interface,data) (This)->lpVtbl->OpenSharedResourceByName(This,name,access,emu_interface,data) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11Device1_QueryInterface(ID3D11Device1* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11Device1_AddRef(ID3D11Device1* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11Device1_Release(ID3D11Device1* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11Device methods ***/ ++static FORCEINLINE HRESULT ID3D11Device1_CreateBuffer(ID3D11Device1* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) { ++ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateTexture1D(ID3D11Device1* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) { ++ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateTexture2D(ID3D11Device1* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) { ++ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateTexture3D(ID3D11Device1* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) { ++ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateShaderResourceView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) { ++ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateUnorderedAccessView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) { ++ return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateRenderTargetView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) { ++ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) { ++ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateInputLayout(ID3D11Device1* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) { ++ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateVertexShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) { ++ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) { ++ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShaderWithStreamOutput(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) { ++ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreatePixelShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) { ++ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateHullShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) { ++ return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDomainShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) { ++ return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateComputeShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) { ++ return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateClassLinkage(ID3D11Device1* This,ID3D11ClassLinkage **ppLinkage) { ++ return This->lpVtbl->CreateClassLinkage(This,ppLinkage); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState(ID3D11Device1* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) { ++ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilState(ID3D11Device1* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) { ++ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState(ID3D11Device1* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) { ++ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateSamplerState(ID3D11Device1* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) { ++ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateQuery(ID3D11Device1* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) { ++ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreatePredicate(ID3D11Device1* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) { ++ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) { ++ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext(ID3D11Device1* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) { ++ return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext); ++} ++static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource(ID3D11Device1* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) { ++ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CheckFormatSupport(ID3D11Device1* This,DXGI_FORMAT Format,UINT *pFormatSupport) { ++ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CheckMultisampleQualityLevels(ID3D11Device1* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) { ++ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels); ++} ++static FORCEINLINE void ID3D11Device1_CheckCounterInfo(ID3D11Device1* This,D3D11_COUNTER_INFO *pCounterInfo) { ++ This->lpVtbl->CheckCounterInfo(This,pCounterInfo); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CheckCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) { ++ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CheckFeatureSupport(ID3D11Device1* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) { ++ return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize); ++} ++static FORCEINLINE HRESULT ID3D11Device1_GetPrivateData(ID3D11Device1* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11Device1_SetPrivateData(ID3D11Device1* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11Device1_SetPrivateDataInterface(ID3D11Device1* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++static FORCEINLINE D3D_FEATURE_LEVEL ID3D11Device1_GetFeatureLevel(ID3D11Device1* This) { ++ return This->lpVtbl->GetFeatureLevel(This); ++} ++static FORCEINLINE UINT ID3D11Device1_GetCreationFlags(ID3D11Device1* This) { ++ return This->lpVtbl->GetCreationFlags(This); ++} ++static FORCEINLINE HRESULT ID3D11Device1_GetDeviceRemovedReason(ID3D11Device1* This) { ++ return This->lpVtbl->GetDeviceRemovedReason(This); ++} ++static FORCEINLINE void ID3D11Device1_GetImmediateContext(ID3D11Device1* This,ID3D11DeviceContext **ppImmediateContext) { ++ This->lpVtbl->GetImmediateContext(This,ppImmediateContext); ++} ++static FORCEINLINE HRESULT ID3D11Device1_SetExceptionMode(ID3D11Device1* This,UINT RaiseFlags) { ++ return This->lpVtbl->SetExceptionMode(This,RaiseFlags); ++} ++static FORCEINLINE UINT ID3D11Device1_GetExceptionMode(ID3D11Device1* This) { ++ return This->lpVtbl->GetExceptionMode(This); ++} ++/*** ID3D11Device1 methods ***/ ++static FORCEINLINE void ID3D11Device1_GetImmediateContext1(ID3D11Device1* This,ID3D11DeviceContext1 **context) { ++ This->lpVtbl->GetImmediateContext1(This,context); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext1(ID3D11Device1* This,UINT flags,ID3D11DeviceContext1 **context) { ++ return This->lpVtbl->CreateDeferredContext1(This,flags,context); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState1(ID3D11Device1* This,const D3D11_BLEND_DESC1 *desc,ID3D11BlendState1 **state) { ++ return This->lpVtbl->CreateBlendState1(This,desc,state); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState1(ID3D11Device1* This,const D3D11_RASTERIZER_DESC1 *desc,ID3D11RasterizerState1 **state) { ++ return This->lpVtbl->CreateRasterizerState1(This,desc,state); ++} ++static FORCEINLINE HRESULT ID3D11Device1_CreateDeviceContextState(ID3D11Device1* This,UINT flags,const D3D_FEATURE_LEVEL *levels,UINT levels_count,UINT version,REFIID emu_interface,D3D_FEATURE_LEVEL *level,ID3DDeviceContextState **state) { ++ return This->lpVtbl->CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state); ++} ++static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource1(ID3D11Device1* This,HANDLE resource,REFIID emu_interface,void **data) { ++ return This->lpVtbl->OpenSharedResource1(This,resource,emu_interface,data); ++} ++static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResourceByName(ID3D11Device1* This,const WCHAR *name,DWORD access,REFIID emu_interface,void **data) { ++ return This->lpVtbl->OpenSharedResourceByName(This,name,access,emu_interface,data); ++} ++#endif ++#endif ++ ++#endif ++ ++void STDMETHODCALLTYPE ID3D11Device1_GetImmediateContext1_Proxy( ++ ID3D11Device1* This, ++ ID3D11DeviceContext1 **context); ++void __RPC_STUB ID3D11Device1_GetImmediateContext1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateDeferredContext1_Proxy( ++ ID3D11Device1* This, ++ UINT flags, ++ ID3D11DeviceContext1 **context); ++void __RPC_STUB ID3D11Device1_CreateDeferredContext1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateBlendState1_Proxy( ++ ID3D11Device1* This, ++ const D3D11_BLEND_DESC1 *desc, ++ ID3D11BlendState1 **state); ++void __RPC_STUB ID3D11Device1_CreateBlendState1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateRasterizerState1_Proxy( ++ ID3D11Device1* This, ++ const D3D11_RASTERIZER_DESC1 *desc, ++ ID3D11RasterizerState1 **state); ++void __RPC_STUB ID3D11Device1_CreateRasterizerState1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateDeviceContextState_Proxy( ++ ID3D11Device1* This, ++ UINT flags, ++ const D3D_FEATURE_LEVEL *levels, ++ UINT levels_count, ++ UINT version, ++ REFIID emu_interface, ++ D3D_FEATURE_LEVEL *level, ++ ID3DDeviceContextState **state); ++void __RPC_STUB ID3D11Device1_CreateDeviceContextState_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_OpenSharedResource1_Proxy( ++ ID3D11Device1* This, ++ HANDLE resource, ++ REFIID emu_interface, ++ void **data); ++void __RPC_STUB ID3D11Device1_OpenSharedResource1_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11Device1_OpenSharedResourceByName_Proxy( ++ ID3D11Device1* This, ++ const WCHAR *name, ++ DWORD access, ++ REFIID emu_interface, ++ void **data); ++void __RPC_STUB ID3D11Device1_OpenSharedResourceByName_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11Device1_INTERFACE_DEFINED__ */ ++ + /***************************************************************************** + * ID3DUserDefinedAnnotation interface + */ +diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.idl b/mingw-w64-headers/direct-x/include/d3d11_1.idl +index 928548f..bf11725 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11_1.idl ++++ b/mingw-w64-headers/direct-x/include/d3d11_1.idl +@@ -1,5 +1,6 @@ + /* + * Copyright 2014 Jacek Caban for CodeWeavers ++ * Copyright 2015 Martell Malone + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -164,6 +165,144 @@ interface ID3D11DeviceContext1 : ID3D11DeviceContext + UINT NumRects); + } + ++typedef enum D3D11_COPY_FLAGS ++{ ++ D3D11_COPY_NO_OVERWRITE = 0x1, ++ D3D11_COPY_DISCARD = 0x2, ++} D3D11_COPY_FLAGS; ++ ++typedef enum D3D11_LOGIC_OP ++{ ++ D3D11_LOGIC_OP_CLEAR = 0, ++ D3D11_LOGIC_OP_SET, ++ D3D11_LOGIC_OP_COPY, ++ D3D11_LOGIC_OP_COPY_INVERTED, ++ D3D11_LOGIC_OP_NOOP, ++ D3D11_LOGIC_OP_INVERT, ++ D3D11_LOGIC_OP_AND, ++ D3D11_LOGIC_OP_NAND, ++ D3D11_LOGIC_OP_OR, ++ D3D11_LOGIC_OP_NOR, ++ D3D11_LOGIC_OP_XOR, ++ D3D11_LOGIC_OP_EQUIV, ++ D3D11_LOGIC_OP_AND_REVERSE, ++ D3D11_LOGIC_OP_AND_INVERTED, ++ D3D11_LOGIC_OP_OR_REVERSE, ++ D3D11_LOGIC_OP_OR_INVERTED, ++} D3D11_LOGIC_OP; ++ ++typedef struct D3D11_RENDER_TARGET_BLEND_DESC1 ++{ ++ BOOL BlendEnable; ++ BOOL LogicOpEnable; ++ D3D11_BLEND SrcBlend; ++ D3D11_BLEND DestBlend; ++ D3D11_BLEND_OP BlendOp; ++ D3D11_BLEND SrcBlendAlpha; ++ D3D11_BLEND DestBlendAlpha; ++ D3D11_BLEND_OP BlendOpAlpha; ++ D3D11_LOGIC_OP LogicOp; ++ UINT8 RenderTargetWriteMask; ++} D3D11_RENDER_TARGET_BLEND_DESC1; ++ ++typedef struct D3D11_BLEND_DESC1 ++{ ++ BOOL AlphaToCoverageEnable; ++ BOOL IndependentBlendEnable; ++ D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT]; ++} D3D11_BLEND_DESC1; ++ ++[ ++ uuid(cc86fabe-da55-401d-85e7-e3c9de2877e9), ++ object, ++ local, ++ pointer_default(unique) ++] ++interface ID3D11BlendState1 : ID3D11BlendState ++{ ++ void GetDesc1( ++ [out] D3D11_BLEND_DESC1* desc ++ ); ++} ++ ++typedef struct D3D11_RASTERIZER_DESC1 ++{ ++ D3D11_FILL_MODE FillMode; ++ D3D11_CULL_MODE CullMode; ++ BOOL FrontCounterClockwise; ++ INT DepthBias; ++ float DepthBiasClamp; ++ float SlopeScaledDepthBias; ++ BOOL DepthClipEnable; ++ BOOL ScissorEnable; ++ BOOL MultisampleEnable; ++ BOOL AntialiasedLineEnable; ++ UINT ForcedSampleCount; ++} D3D11_RASTERIZER_DESC1; ++ ++[ ++ uuid(1217d7a6-5039-418c-b042-9cbe256afd6e), ++ object, ++ local, ++ pointer_default(unique) ++] ++interface ID3D11RasterizerState1 : ID3D11RasterizerState ++{ ++ void GetDesc1( ++ [out] D3D11_RASTERIZER_DESC1 *desc ++ ); ++} ++ ++[ ++ uuid(a04bfb29-08ef-43d6-a49c-a9bdbdcbe686), ++ object, ++ local, ++ pointer_default(unique) ++] ++interface ID3D11Device1 : ID3D11Device ++{ ++ void GetImmediateContext1( ++ [out] ID3D11DeviceContext1 **context ++ ); ++ ++ HRESULT CreateDeferredContext1( ++ UINT flags, ++ [out] ID3D11DeviceContext1 **context ++ ); ++ ++ HRESULT CreateBlendState1( ++ [in] const D3D11_BLEND_DESC1 *desc, ++ [out] ID3D11BlendState1 **state ++ ); ++ ++ HRESULT CreateRasterizerState1( ++ [in] const D3D11_RASTERIZER_DESC1 *desc, ++ [out] ID3D11RasterizerState1 **state ++ ); ++ ++ HRESULT CreateDeviceContextState( ++ UINT flags, ++ [size_is(levels_count)] const D3D_FEATURE_LEVEL* levels, ++ UINT levels_count, ++ UINT version, ++ REFIID emu_interface, ++ [out] D3D_FEATURE_LEVEL *level, ++ [out] ID3DDeviceContextState **state ++ ); ++ ++ HRESULT OpenSharedResource1( ++ [in] HANDLE resource, ++ [in] REFIID emu_interface, ++ [out] void **data ++ ); ++ ++ HRESULT OpenSharedResourceByName( ++ [in] const WCHAR *name, ++ [in] DWORD access, ++ [in] REFIID emu_interface, ++ [in] void **data); ++} ++ + [ + uuid(b2daad8b-03d4-4dbf-95eb-32ab4b63d0ab), + object, +-- +2.3.0 + diff --git a/mingw-w64-crt-git/0005-Add-missing-DirectX11-enum.patch b/mingw-w64-crt-git/0005-Add-missing-DirectX11-enum.patch new file mode 100644 index 0000000000..dc6906de48 --- /dev/null +++ b/mingw-w64-crt-git/0005-Add-missing-DirectX11-enum.patch @@ -0,0 +1,59 @@ +From 6be0b32a05605d0d748df6994907761780026861 Mon Sep 17 00:00:00 2001 +From: Alexey Pavlov +Date: Tue, 17 Feb 2015 19:13:53 +0300 +Subject: [PATCH 5/5] Add missing DirectX 11 enum + +--- + mingw-w64-headers/direct-x/include/d3dcommon.h | 11 +++++++++++ + mingw-w64-headers/direct-x/include/d3dcommon.idl | 13 +++++++++++++ + 2 files changed, 24 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/d3dcommon.h b/mingw-w64-headers/direct-x/include/d3dcommon.h +index 5c1e674..04ffd29 100644 +--- a/mingw-w64-headers/direct-x/include/d3dcommon.h ++++ b/mingw-w64-headers/direct-x/include/d3dcommon.h +@@ -290,6 +290,17 @@ typedef enum _D3D_SHADER_VARIABLE_CLASS { + D3D11_SVC_INTERFACE_POINTER = 7, + D3D_SVC_FORCE_DWORD = 0x7fffffff + } D3D_SHADER_VARIABLE_CLASS; ++typedef enum _D3D_SHADER_VARIABLE_FLAGS { ++ D3D_SVF_USERPACKED = 1, ++ D3D_SVF_USED = 2, ++ D3D_SVF_INTERFACE_POINTER = 4, ++ D3D_SVF_INTERFACE_PARAMETER = 8, ++ D3D10_SVF_USERPACKED = 1, ++ D3D10_SVF_USED = 2, ++ D3D11_SVF_INTERFACE_POINTER = 4, ++ D3D11_SVF_INTERFACE_PARAMETER = 8, ++ D3D_SVF_FORCE_DWORD = 0x7fffffff ++} D3D_SHADER_VARIABLE_FLAGS; + typedef enum _D3D_SHADER_VARIABLE_TYPE { + D3D_SVT_VOID = 0, + D3D_SVT_BOOL = 1, +diff --git a/mingw-w64-headers/direct-x/include/d3dcommon.idl b/mingw-w64-headers/direct-x/include/d3dcommon.idl +index f8fe203..3f75afb 100644 +--- a/mingw-w64-headers/direct-x/include/d3dcommon.idl ++++ b/mingw-w64-headers/direct-x/include/d3dcommon.idl +@@ -126,6 +126,19 @@ typedef enum _D3D_SHADER_VARIABLE_CLASS + D3D_SVC_FORCE_DWORD = 0x7fffffff, + } D3D_SHADER_VARIABLE_CLASS; + ++typedef enum _D3D_SHADER_VARIABLE_FLAGS ++{ ++ D3D_SVF_USERPACKED = 1, ++ D3D_SVF_USED = 2, ++ D3D_SVF_INTERFACE_POINTER = 4, ++ D3D_SVF_INTERFACE_PARAMETER = 8, ++ D3D10_SVF_USERPACKED = 1, ++ D3D10_SVF_USED = 2, ++ D3D11_SVF_INTERFACE_POINTER = 4, ++ D3D11_SVF_INTERFACE_PARAMETER = 8, ++ D3D_SVF_FORCE_DWORD = 0x7fffffff ++} D3D_SHADER_VARIABLE_FLAGS; ++ + typedef enum _D3D_SHADER_VARIABLE_TYPE + { + D3D_SVT_VOID, +-- +2.3.0 + diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 072f948a7a..6342ba6726 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4448.4fd76bd +pkgver=5.0.0.4451.4ef3dd3 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -15,8 +15,18 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-binuti provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' 'staticlibs' '!buildflags' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=('SKIP') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" + "0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch" + "0002-dxgi-Add-interface-for-IDXGISurface1.patch" + "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" + "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" + "0005-Add-missing-DirectX11-enum.patch") +md5sums=('SKIP' + '0bcf1726f2093c6ed7e998d7e6c9dd16' + '20172a91981ffa87aa6aa5d3001c290b' + '410ff7ad4443a9f2e318c64742b2d358' + '28a4074ee6fcf76b5b13db2a8cd3291c' + '652859ad478448a70c2074a854a313ec') pkgver() { cd "$srcdir/${_realname}" @@ -28,6 +38,11 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} + git am "${srcdir}/"0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch + git am "${srcdir}/"0002-dxgi-Add-interface-for-IDXGISurface1.patch + git am "${srcdir}/"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch + git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch + git am "${srcdir}/"0005-Add-missing-DirectX11-enum.patch } build() { From bb068f56a96640ac96f55f4310591b79f12a9588 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Tue, 17 Feb 2015 22:07:34 +0100 Subject: [PATCH 0542/2060] gexiv2: new package. --- mingw-w64-gexiv2/001-win.patch | 19 ++++++++++++++ mingw-w64-gexiv2/PKGBUILD | 48 ++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 mingw-w64-gexiv2/001-win.patch create mode 100644 mingw-w64-gexiv2/PKGBUILD diff --git a/mingw-w64-gexiv2/001-win.patch b/mingw-w64-gexiv2/001-win.patch new file mode 100644 index 0000000000..15e6a94bfa --- /dev/null +++ b/mingw-w64-gexiv2/001-win.patch @@ -0,0 +1,19 @@ +--- ./Makefile.am.orig 2015-02-17 21:26:00.851063100 +0100 ++++ ./Makefile.am 2015-02-17 22:01:53.498641500 +0100 +@@ -130,7 +130,7 @@ + g-ir-compiler --includedir=$(BUILD_DIR) -o $@ $< + + GExiv2-$(GIR_VERSION).gir: lib@PACKAGE_NAME@.la +- g-ir-scanner --verbose \ ++ CC="$(CC)" g-ir-scanner --verbose \ + --namespace=GExiv2 \ + --nsversion=$(GIR_VERSION) \ + --symbol-prefix=@PACKAGE_NAME@ \ +@@ -141,6 +141,6 @@ + -I @PACKAGE_NAME@ \ + $(GEXIV2_public_HEADERS) \ + --library lib@PACKAGE_NAME@.la \ +- $(LIBTOOL) \ ++ --libtool `which libtool` \ + --pkg=gobject-2.0 + diff --git a/mingw-w64-gexiv2/PKGBUILD b/mingw-w64-gexiv2/PKGBUILD new file mode 100644 index 0000000000..a525316c5c --- /dev/null +++ b/mingw-w64-gexiv2/PKGBUILD @@ -0,0 +1,48 @@ +# Maintainer: Andrea Zagli + +_realname=gexiv2 +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.10.2 +pkgrel=1 +arch=('any') +pkgdesc="GObject-based wrapper around the Exiv2 library (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-exiv2" + "${MINGW_PACKAGE_PREFIX}-python2") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gtk-doc" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +options=('strip' 'staticlibs') +license=("LGPL 2.1") +url="http://www.gnome.org/" +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('2fd21f0ed5125e51d02226e7f41be751cfa8ae411a8ed1a651e16b06d79047b2' + '7cf45d8ee2c6e6766a8a13e192014877bcc1aa3eb091ebd99d28e0ef8bb8e166') + +prepare() { + cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/001-win.patch + + AUTOPOINT='intltoolize --automake --copy' autoreconf -fiv +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-introspection + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install +} From a225d93f1c5ec576897d05dff5a224f8f6f232f0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 18 Feb 2015 01:36:59 +0300 Subject: [PATCH 0543/2060] daala: Update to latest git version. --- mingw-w64-daala-git/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-daala-git/PKGBUILD b/mingw-w64-daala-git/PKGBUILD index d10ac6e1a7..de6f7fab5f 100644 --- a/mingw-w64-daala-git/PKGBUILD +++ b/mingw-w64-daala-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=daala pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgdesc="Daala is next-next-gen video compression technology from Xiph.org, Mozilla and others." -pkgver=r890.26a08c0 +pkgver=r1109.07ba88c pkgrel=1 arch=('any') url="https://www.xiph.org/daala/" @@ -44,7 +44,8 @@ build() { --prefix=${MINGW_PREFIX} \ --enable-shared \ --enable-static \ - --enable-tools + --enable-tools \ + --disable-unit-tests make } From 102fa957516d7458fa06a7e34e382658f7f65dc9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 18 Feb 2015 01:38:43 +0300 Subject: [PATCH 0544/2060] ogre3d-hg: Update to version 2.0 branch. Build DX11 render now. --- .../001-remove-march-from-cflags.patch | 12 - .../004-use-mingw-w64-directx.patch | 423 +----------------- .../005-mingw-w64-redeclarations.patch | 35 +- mingw-w64-ogre3d-hg/010-missing-include.patch | 23 + mingw-w64-ogre3d-hg/011-fix-typo.patch | 19 + .../012-add-link-library.patch | 12 + .../013-mingw-stringconverter.patch | 22 + mingw-w64-ogre3d-hg/PKGBUILD | 33 +- mingw-w64-ogre3d-hg/fix-_WIN32-defines.patch | 20 - 9 files changed, 120 insertions(+), 479 deletions(-) delete mode 100644 mingw-w64-ogre3d-hg/001-remove-march-from-cflags.patch create mode 100644 mingw-w64-ogre3d-hg/010-missing-include.patch create mode 100644 mingw-w64-ogre3d-hg/011-fix-typo.patch create mode 100644 mingw-w64-ogre3d-hg/012-add-link-library.patch create mode 100644 mingw-w64-ogre3d-hg/013-mingw-stringconverter.patch delete mode 100644 mingw-w64-ogre3d-hg/fix-_WIN32-defines.patch diff --git a/mingw-w64-ogre3d-hg/001-remove-march-from-cflags.patch b/mingw-w64-ogre3d-hg/001-remove-march-from-cflags.patch deleted file mode 100644 index c30bde8aef..0000000000 --- a/mingw-w64-ogre3d-hg/001-remove-march-from-cflags.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- ogre3d-1.9.0/CMakeLists.txt.orig 2013-12-10 14:50:35.000000000 +0400 -+++ ogre3d-1.9.0/CMakeLists.txt 2013-12-11 00:03:24.029600000 +0400 -@@ -145,9 +145,6 @@ - endif () - if (MINGW) - add_definitions(-D_WIN32_WINNT=0x0500) -- # set architecture to i686, since otherwise some versions of MinGW can't link -- # the atomic primitives -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686") - # Fpermissive required to let some "non-standard" casting operations in the plugins pass - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") - # disable this optimisation because it breaks release builds (reason unknown) diff --git a/mingw-w64-ogre3d-hg/004-use-mingw-w64-directx.patch b/mingw-w64-ogre3d-hg/004-use-mingw-w64-directx.patch index 235ab77957..8935a59c03 100644 --- a/mingw-w64-ogre3d-hg/004-use-mingw-w64-directx.patch +++ b/mingw-w64-ogre3d-hg/004-use-mingw-w64-directx.patch @@ -1,25 +1,18 @@ --- ogre3d-1.9.0/RenderSystems/Direct3D9/include/OgreD3D9Prerequisites.h.orig 2013-12-20 22:01:31.257800000 +0400 +++ ogre3d-1.9.0/RenderSystems/Direct3D9/include/OgreD3D9Prerequisites.h 2013-12-20 22:01:52.177400000 +0400 -@@ -72,7 +72,7 @@ +@@ -72,7 +72,12 @@ #endif #include #include --#include ++#ifdef __MINGW64_VERSION_MAJOR +#include ++#define DXGetErrorDescription DXGetErrorDescription9 ++#else + #include ++#endif namespace Ogre ---- ogre3d-1.9.0/CMake/Packages/FindDirectX.cmake.orig 2013-12-20 22:02:56.585400000 +0400 -+++ ogre3d-1.9.0/CMake/Packages/FindDirectX.cmake 2013-12-20 22:02:59.674200000 +0400 -@@ -55,7 +55,7 @@ - endif(CMAKE_CL_64) - find_library(DirectX9_LIBRARY NAMES d3d9 HINTS ${DirectX9_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX9_LIBPATH_SUFFIX}) - find_library(DirectX9_D3DX9_LIBRARY NAMES d3dx9 HINTS ${DirectX9_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX9_LIBPATH_SUFFIX}) -- find_library(DirectX9_DXERR_LIBRARY NAMES DxErr HINTS ${DirectX9_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX9_LIBPATH_SUFFIX}) -+ find_library(DirectX9_DXERR_LIBRARY NAMES DxErr dxerr9 HINTS ${DirectX9_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX9_LIBPATH_SUFFIX}) - find_library(DirectX9_DXGUID_LIBRARY NAMES dxguid HINTS ${DirectX9_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX9_LIBPATH_SUFFIX}) - - findpkg_finish(DirectX9) --- ogre3d-1.9.0/CMake/Packages/FindDirectX11.cmake.orig 2013-12-20 22:02:56.585400000 +0400 +++ ogre3d-1.9.0/CMake/Packages/FindDirectX11.cmake 2013-12-20 22:02:59.674200000 +0400 @@ -82,7 +82,7 @@ @@ -31,407 +24,3 @@ find_library(DirectX11_DXGUID_LIBRARY NAMES dxguid HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX}) find_library(DirectX11_DXGI_LIBRARY NAMES dxgi HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX}) find_library(DirectX11_D3DCOMPILER_LIBRARY NAMES d3dcompiler HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX}) ---- ogre3d-1.9.0/RenderSystems/Direct3D9/src/OgreD3D9HardwareIndexBuffer.cpp.orig 2013-12-21 00:19:04.505600000 +0400 -+++ ogre3d-1.9.0/RenderSystems/Direct3D9/src/OgreD3D9HardwareIndexBuffer.cpp 2013-12-21 00:19:43.776800000 +0400 -@@ -294,7 +294,7 @@ - - if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, - "Cannot create D3D9 Index buffer: " + msg, - "D3D9HardwareIndexBuffer::createBuffer"); -@@ -303,7 +303,7 @@ - hr = bufferResources->mBuffer->GetDesc(&mBufferDesc); - if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, - "Cannot get D3D9 Index buffer desc: " + msg, - "D3D9HardwareIndexBuffer::createBuffer"); -@@ -399,7 +399,7 @@ - - if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, - "Cannot lock D3D9 vertex buffer: " + msg, - "D3D9HardwareVertexBuffer::_lockBuffer"); -@@ -417,7 +417,7 @@ - hr = bufferResources->mBuffer->Unlock(); - if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, - "Cannot unlock D3D9 vertex buffer: " + msg, - "D3D9HardwareVertexBuffer::_unlockBuffer"); ---- ogre3d-1.9.0/RenderSystems/Direct3D9/src/OgreD3D9HardwareVertexBuffer.cpp.orig 2013-12-20 19:30:44.000000000 +0400 -+++ ogre3d-1.9.0/RenderSystems/Direct3D9/src/OgreD3D9HardwareVertexBuffer.cpp 2013-12-21 00:20:32.651600000 +0400 -@@ -290,7 +290,7 @@ - - if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, - "Cannot restore D3D9 vertex buffer: " + msg, - "D3D9HardwareVertexBuffer::createBuffer"); -@@ -299,7 +299,7 @@ - hr = bufferResources->mBuffer->GetDesc(&mBufferDesc); - if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, - "Cannot get D3D9 Vertex buffer desc: " + msg, - "D3D9HardwareVertexBuffer::createBuffer"); -@@ -396,7 +396,7 @@ - - if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, - "Cannot lock D3D9 vertex buffer: " + msg, - "D3D9HardwareVertexBuffer::_lockBuffer"); -@@ -414,7 +414,7 @@ - hr = bufferResources->mBuffer->Unlock(); - if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, - "Cannot unlock D3D9 vertex buffer: " + msg, - "D3D9HardwareVertexBuffer::_unlockBuffer"); ---- ogre3d-1.9.0/RenderSystems/Direct3D9/src/OgreD3D9RenderSystem.cpp.orig 2013-12-20 19:30:44.000000000 +0400 -+++ ogre3d-1.9.0/RenderSystems/Direct3D9/src/OgreD3D9RenderSystem.cpp 2013-12-21 20:02:33.748800000 +0400 -@@ -1594,7 +1594,7 @@ - //--------------------------------------------------------------------- - String D3D9RenderSystem::getErrorDescription( long errorNumber ) const - { -- const String errMsg = DXGetErrorDescription( errorNumber ); -+ const String errMsg = DXGetErrorDescription9( errorNumber ); - return errMsg; - } - //--------------------------------------------------------------------- -@@ -2923,7 +2923,7 @@ - &depthBufferSurface, NULL); - if( FAILED(hr) ) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT( Exception::ERR_RENDERINGAPI_ERROR, - "Error CreateDepthStencilSurface : " + msg, - "D3D9RenderSystem::_createDepthBufferFor" ); -@@ -3131,7 +3131,7 @@ - } - else if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to GetRenderTarget : " + msg, "D3D9RenderSystem::_setRenderTarget" ); - } - } -@@ -3153,7 +3153,7 @@ - hr = activeDevice->SetRenderTarget( iOldRt, NULL ); - if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to SetRenderTarget(NULL) : " + msg, "D3D9RenderSystem::_setRenderTarget" ); - } - } -@@ -3161,7 +3161,7 @@ - hr = activeDevice->SetRenderTarget( iRt, rt ); - if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to SetRenderTarget : " + msg, "D3D9RenderSystem::_setRenderTarget" ); - } - } -@@ -3169,7 +3169,7 @@ - hr = activeDevice->SetDepthStencilSurface( depthSurface ); - if (FAILED(hr)) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to setDepthStencil : " + msg, "D3D9RenderSystem::_setRenderTarget" ); - } - } -@@ -3234,7 +3234,7 @@ - - if( FAILED( hr = getActiveD3D9Device()->BeginScene() ) ) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Error beginning frame :" + msg, "D3D9RenderSystem::_beginFrame" ); - } - -@@ -3584,7 +3584,7 @@ - - if( FAILED( hr ) ) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Failed to DrawPrimitive : " + msg, "D3D9RenderSystem::_render" ); - } - -@@ -3958,7 +3958,7 @@ - depth, - stencil ) ) ) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Error clearing frame buffer : " - + msg, "D3D9RenderSystem::clearFrameBuffer" ); - } ---- ogre3d-1.9.0/RenderSystems/Direct3D9/src/OgreD3D9Texture.cpp.orig 2013-12-20 19:30:44.000000000 +0400 -+++ ogre3d-1.9.0/RenderSystems/Direct3D9/src/OgreD3D9Texture.cpp 2013-12-21 20:07:57.551800000 +0400 -@@ -119,7 +119,7 @@ - IDirect3DSurface9 *pSrcSurface = 0; - if( FAILED( hr = srcTextureResource->pNormTex->GetSurfaceLevel(0, &pSrcSurface) ) ) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Couldn't blit : " + msg, "D3D9Texture::copyToTexture" ); - } - -@@ -127,7 +127,7 @@ - IDirect3DSurface9 *pDstSurface = 0; - if( FAILED( hr = dstTextureResource->pNormTex->GetSurfaceLevel(0, &pDstSurface) ) ) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - SAFE_RELEASE(pSrcSurface); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Couldn't blit : " + msg, "D3D9Texture::copyToTexture" ); - } -@@ -135,7 +135,7 @@ - // do the blit, it's called StretchRect in D3D9 :) - if( FAILED( hr = it->first->StretchRect( pSrcSurface, NULL, pDstSurface, &dstRC, D3DTEXF_NONE) ) ) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - SAFE_RELEASE(pSrcSurface); - SAFE_RELEASE(pDstSurface); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Couldn't blit : " + msg, "D3D9Texture::copyToTexture" ); -@@ -156,7 +156,7 @@ - IDirect3DSurface9 *pSrcSurface = 0; - if( FAILED( hr =srcTextureResource->pCubeTex->GetCubeMapSurface((D3DCUBEMAP_FACES)face, 0, &pSrcSurface) ) ) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Couldn't blit : " + msg, "D3D9Texture::copyToTexture" ); - } - -@@ -164,7 +164,7 @@ - IDirect3DSurface9 *pDstSurface = 0; - if( FAILED( hr = dstTextureResource->pCubeTex->GetCubeMapSurface((D3DCUBEMAP_FACES)face, 0, &pDstSurface) ) ) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - SAFE_RELEASE(pSrcSurface); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Couldn't blit : " + msg, "D3D9Texture::copyToTexture" ); - } -@@ -172,7 +172,7 @@ - // do the blit, it's called StretchRect in D3D9 :) - if( FAILED( hr = it->first->StretchRect( pSrcSurface, NULL, pDstSurface, &dstRC, D3DTEXF_NONE) ) ) - { -- String msg = DXGetErrorDescription(hr); -+ String msg = DXGetErrorDescription9(hr); - SAFE_RELEASE(pSrcSurface); - SAFE_RELEASE(pDstSurface); - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Couldn't blit : " + msg, "D3D9Texture::copyToTexture" ); -@@ -564,7 +564,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't create cube texture: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't create cube texture: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_loadCubeTex" ); - } - -@@ -573,7 +573,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_loadCubeTex" ); - } - -@@ -698,7 +698,7 @@ - if (FAILED(hr)) - { - OGRE_EXCEPT(Exception::ERR_INTERNAL_ERROR, -- "Unable to load volume texture from " + getName() + ": " + String(DXGetErrorDescription(hr)), -+ "Unable to load volume texture from " + getName() + ": " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_loadVolumeTex"); - } - -@@ -707,7 +707,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_loadVolumeTex" ); - } - -@@ -860,7 +860,7 @@ - if (FAILED(hr)) - { - OGRE_EXCEPT(Exception::ERR_INTERNAL_ERROR, -- "Unable to load texture from " + getName() + " :" + String(DXGetErrorDescription(hr)), -+ "Unable to load texture from " + getName() + " :" + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_loadNormTex"); - } - -@@ -869,7 +869,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_loadNormTex" ); - } - -@@ -1107,7 +1107,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Error creating texture: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Error creating texture: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createNormTex" ); - } - -@@ -1116,7 +1116,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createNormTex" ); - } - -@@ -1127,7 +1127,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get texture description: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get texture description: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createNormTex" ); - } - -@@ -1143,7 +1143,7 @@ - if (FAILED(hr)) - { - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, -- "Unable to create AA render target: " + String(DXGetErrorDescription(hr)), -+ "Unable to create AA render target: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createNormTex"); - } - -@@ -1158,7 +1158,7 @@ - hr = textureResources->pBaseTex->SetAutoGenFilterType(_getBestFilterMethod(d3d9Device)); - if(FAILED(hr)) - { -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Could not set best autogen filter type: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Could not set best autogen filter type: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createNormTex" ); - } - } -@@ -1264,7 +1264,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Error creating texture: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Error creating texture: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createCubeTex" ); - } - -@@ -1273,7 +1273,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createCubeTex" ); - } - -@@ -1284,7 +1284,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get texture description: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get texture description: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createCubeTex" ); - } - -@@ -1300,7 +1300,7 @@ - if (FAILED(hr)) - { - OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, -- "Unable to create AA render target: " + String(DXGetErrorDescription(hr)), -+ "Unable to create AA render target: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createCubeTex"); - } - } -@@ -1314,7 +1314,7 @@ - hr = textureResources->pBaseTex->SetAutoGenFilterType(_getBestFilterMethod(d3d9Device)); - if(FAILED(hr)) - { -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Could not set best autogen filter type: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Could not set best autogen filter type: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createCubeTex" ); - } - } -@@ -1416,7 +1416,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Error creating texture: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Error creating texture: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createVolumeTex" ); - } - -@@ -1425,7 +1425,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get base texture: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createVolumeTex" ); - } - -@@ -1436,7 +1436,7 @@ - if (FAILED(hr)) - { - freeInternalResources(); -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get texture description: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Can't get texture description: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createVolumeTex" ); - } - _setFinalAttributes(d3d9Device, textureResources, -@@ -1448,7 +1448,7 @@ - hr = textureResources->pBaseTex->SetAutoGenFilterType(_getBestFilterMethod(d3d9Device)); - if(FAILED(hr)) - { -- OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Could not set best autogen filter type: " + String(DXGetErrorDescription(hr)), -+ OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Could not set best autogen filter type: " + String(DXGetErrorDescription9(hr)), - "D3D9Texture::_createCubeTex" ); - } - } -@@ -2104,7 +2104,7 @@ - if (FAILED(hr)) - { - OGRE_EXCEPT(Exception::ERR_INTERNAL_ERROR, -- "Unable to copy AA buffer to final buffer: " + String(DXGetErrorDescription(hr)), -+ "Unable to copy AA buffer to final buffer: " + String(DXGetErrorDescription9(hr)), - "D3D9RenderTexture::swapBuffers"); - } - } diff --git a/mingw-w64-ogre3d-hg/005-mingw-w64-redeclarations.patch b/mingw-w64-ogre3d-hg/005-mingw-w64-redeclarations.patch index 815b915e2a..0ce30ad367 100644 --- a/mingw-w64-ogre3d-hg/005-mingw-w64-redeclarations.patch +++ b/mingw-w64-ogre3d-hg/005-mingw-w64-redeclarations.patch @@ -7,33 +7,32 @@ +#ifndef __MINGW64_VERSION_MAJOR void _fastcall __security_check_cookie(intptr_t i); +#endif - } + } #endif -@@ -60,7 +62,9 @@ - // in dynamic AND static builds +@@ -60,7 +60,9 @@ + // in dynamic AND static builds #ifdef __MINGW32__ _chkstk(); -- __security_check_cookie((intptr_t)NULL); +#ifndef __MINGW64_VERSION_MAJOR -+ __security_check_cookie((intptr_t)NULL); -+#endif + __security_check_cookie((intptr_t)NULL); ++#endif #endif - // Create the DirectX 9 rendering api + // Create the DirectX 9 rendering api --- ogre3d-1.9.0/OgreMain/src/WIN32/OgreMinGWSupport.cpp.orig 2013-12-20 19:30:47.000000000 +0400 +++ ogre3d-1.9.0/OgreMain/src/WIN32/OgreMinGWSupport.cpp 2013-12-21 20:48:37.613800000 +0400 -@@ -41,6 +41,7 @@ - //_alloca(); - } - +@@ -41,11 +41,13 @@ + //_alloca(); + } + +#ifndef __MINGW64_VERSION_MAJOR - // MSVC uses security cookies to prevent some buffer overflow attacks. - // provide dummy implementations. - intptr_t __security_cookie; -@@ -48,4 +49,5 @@ - void _fastcall __security_check_cookie(intptr_t i) - { - } + // MSVC uses security cookies to prevent some buffer overflow attacks. + // provide dummy implementations. + intptr_t __security_cookie; + + void _fastcall __security_check_cookie(intptr_t i) + { + } +#endif } diff --git a/mingw-w64-ogre3d-hg/010-missing-include.patch b/mingw-w64-ogre3d-hg/010-missing-include.patch new file mode 100644 index 0000000000..0c22b5d8ce --- /dev/null +++ b/mingw-w64-ogre3d-hg/010-missing-include.patch @@ -0,0 +1,23 @@ +--- ogre3d-1.9.0.r6969.f40744b1106a/RenderSystems/Direct3D11/include/OgreD3D11Texture.h.orig 2015-02-17 10:17:20.838400000 +0300 ++++ ogre3d-1.9.0.r6969.f40744b1106a/RenderSystems/Direct3D11/include/OgreD3D11Texture.h 2015-02-17 10:17:25.768000000 +0300 +@@ -31,6 +31,7 @@ + #include "OgreTexture.h" + #include "OgreRenderTexture.h" + #include "OgreSharedPtr.h" ++#include "OgreD3D11Device.h" + + #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 && !defined(_WIN32_WINNT_WIN8) + #ifndef USE_D3DX11_LIBRARY +--- ogre3d-1.9.0.r6969.f40744b1106a/RenderSystems/Direct3D11/include/OgreD3D11Device.h.orig 2015-02-17 10:17:20.838400000 +0300 ++++ ogre3d-1.9.0.r6969.f40744b1106a/RenderSystems/Direct3D11/include/OgreD3D11Device.h 2015-02-17 10:17:25.768000000 +0300 +@@ -30,6 +30,10 @@ + + + #include "OgreD3D11Prerequisites.h" ++#if (_WIN32_WINNT < 0x600) ++#define _WIN32_WINNT 0x600 ++#endif ++#include + + namespace Ogre + { diff --git a/mingw-w64-ogre3d-hg/011-fix-typo.patch b/mingw-w64-ogre3d-hg/011-fix-typo.patch new file mode 100644 index 0000000000..dd5d938b77 --- /dev/null +++ b/mingw-w64-ogre3d-hg/011-fix-typo.patch @@ -0,0 +1,19 @@ +--- ogre3d-2.0.0.r7490.07ad8061ec8d/RenderSystems/Direct3D11/src/OgreD3D11RenderSystem.cpp.orig 2015-02-17 15:53:51.196000000 +0300 ++++ ogre3d-2.0.0.r7490.07ad8061ec8d/RenderSystems/Direct3D11/src/OgreD3D11RenderSystem.cpp 2015-02-17 15:54:12.427600000 +0300 +@@ -78,12 +78,12 @@ + D3D_DRIVER_TYPE DriverType, + HMODULE Software, + UINT Flags, +- /*_In_reads_opt_( FeatureLevels )*/ CONST D3D_FEATURE_LEVEL* pFeatureLevels, ++ const D3D_FEATURE_LEVEL* pFeatureLevels, + UINT FeatureLevels, + UINT SDKVersion, +- _Out_opt_ ID3D11DeviceN** ppDevice, +- _Out_opt_ D3D_FEATURE_LEVEL* pFeatureLevel, +- _Out_opt_ ID3D11DeviceContextN** ppImmediateContext ) ++ _Out_ ID3D11DeviceN** ppDevice, ++ _Out_ D3D_FEATURE_LEVEL* pFeatureLevel, ++ _Out_ ID3D11DeviceContextN** ppImmediateContext ) + { + #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 + return D3D11CreateDevice(pAdapter, DriverType, Software, Flags, pFeatureLevels, FeatureLevels, SDKVersion, ppDevice, pFeatureLevel, ppImmediateContext); diff --git a/mingw-w64-ogre3d-hg/012-add-link-library.patch b/mingw-w64-ogre3d-hg/012-add-link-library.patch new file mode 100644 index 0000000000..2460c32346 --- /dev/null +++ b/mingw-w64-ogre3d-hg/012-add-link-library.patch @@ -0,0 +1,12 @@ +--- ogre3d-2.0.0.r7490.07ad8061ec8d/RenderSystems/Direct3D11/CMakeLists.txt.orig 2015-02-17 17:14:01.858800000 +0300 ++++ ogre3d-2.0.0.r7490.07ad8061ec8d/RenderSystems/Direct3D11/CMakeLists.txt 2015-02-17 17:14:34.821600000 +0300 +@@ -31,6 +31,9 @@ + if(OGRE_PROFILING AND DirectX9_FOUND) + target_link_libraries(RenderSystem_Direct3D11 ${DirectX9_LIBRARY}) + endif() ++if (MINGW) ++ target_link_libraries(RenderSystem_Direct3D11 psapi) ++endif () + + if(WINDOWS_STORE OR WINDOWS_PHONE) + set_target_properties(RenderSystem_Direct3D11 PROPERTIES VS_WINRT_COMPONENT "true") diff --git a/mingw-w64-ogre3d-hg/013-mingw-stringconverter.patch b/mingw-w64-ogre3d-hg/013-mingw-stringconverter.patch new file mode 100644 index 0000000000..bc888b2b9c --- /dev/null +++ b/mingw-w64-ogre3d-hg/013-mingw-stringconverter.patch @@ -0,0 +1,22 @@ +--- ogre3d-2.0.0.r7490.07ad8061ec8d/OgreMain/include/OgreStringConverter.h.orig 2015-02-18 00:20:40.288600000 +0300 ++++ ogre3d-2.0.0.r7490.07ad8061ec8d/OgreMain/include/OgreStringConverter.h 2015-02-18 00:21:01.223800000 +0300 +@@ -107,7 +107,7 @@ + static String toString(size_t val, + unsigned short width = 0, char fill = ' ', + std::ios::fmtflags flags = std::ios::fmtflags(0)); +- #if OGRE_COMPILER == OGRE_COMPILER_MSVC ++ #if OGRE_COMPILER == OGRE_COMPILER_MSVC || defined(__MINGW32__) + /** Converts an unsigned long to a String. */ + static String toString(unsigned long val, + unsigned short width = 0, char fill = ' ', +--- ogre3d-2.0.0.r7490.07ad8061ec8d/OgreMain/src/OgreStringConverter.cpp.orig 2015-02-18 00:21:25.996600000 +0300 ++++ ogre3d-2.0.0.r7490.07ad8061ec8d/OgreMain/src/OgreStringConverter.cpp 2015-02-18 00:21:36.479800000 +0300 +@@ -128,7 +128,7 @@ + stream << val; + return stream.str(); + } +-#if OGRE_COMPILER == OGRE_COMPILER_MSVC ++#if OGRE_COMPILER == OGRE_COMPILER_MSVC || defined(__MINGW32__) + //----------------------------------------------------------------------- + String StringConverter::toString(unsigned long val, + unsigned short width, char fill, std::ios::fmtflags flags) diff --git a/mingw-w64-ogre3d-hg/PKGBUILD b/mingw-w64-ogre3d-hg/PKGBUILD index 8591367195..8a0a0d4248 100644 --- a/mingw-w64-ogre3d-hg/PKGBUILD +++ b/mingw-w64-ogre3d-hg/PKGBUILD @@ -2,8 +2,8 @@ _realname=ogre3d pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-hg" -_rev=r6969.f40744b1106a -_base_ver=1.9.0 +_rev=r7490.07ad8061ec8d +_base_ver=2.0.0 pkgver=${_base_ver}.${_rev} pkgrel=1 pkgdesc="A cross-platform 3D game engine (mingw-w64)" @@ -28,22 +28,28 @@ depends=("${MINGW_PACKAGE_PREFIX}-boost" ) options=('staticlibs' '!strip') # '!buildflags' source=("${_realname}-${pkgver}.tar.xz"{,.sig} - 001-remove-march-from-cflags.patch 002-endlessworld-fix-cast.patch 003-freeimage-link-with-shared.patch 004-use-mingw-w64-directx.patch 005-mingw-w64-redeclarations.patch 006-cmake-wrong-command.patch - 007-fix-_WIN32-defines2.patch) -md5sums=('d6f82c8a9ef9b82947d0ce388be9ff74' + 007-fix-_WIN32-defines2.patch + 010-missing-include.patch + 011-fix-typo.patch + 012-add-link-library.patch + 013-mingw-stringconverter.patch) +md5sums=('8407e5f28a906107c0e395db31d8f8aa' 'SKIP' - 'a2cbfc846906bbb80c7b05d2d60a2779' '3c00c5584a8edcb4dc07a57697a73d59' '166486655cd358be175f3b32b63e0ca5' - 'ee355ac6d4a271721407f030e34b5651' - '56477180dc083746de83ea2aae3efd90' + '51cf86561d243f3564758c6255b1b0a5' + '57ca4bf629fec2df4aeccb617ad187ac' '31dbe883b2d9d03e767e2e2e7365795e' - '9af326a7f9c7863e25ea265de4a2a223') + '9af326a7f9c7863e25ea265de4a2a223' + '2ada87678777366fa9cdcb5e7d12b650' + 'f7d17b37f835d20a4fd6262d77d9b00a' + '769784029b7059ef89da7ec0186da9cd' + 'abc014b040b651d762d519d7079f19b7') # source PKGBUILD && mksource mksource() { @@ -52,7 +58,7 @@ mksource() { __hgroot='https://bitbucket.org/sinbad' __hgrepo='ogre' __hgbranch='default' - __hgrev="v1-9" + __hgrev="v2-0" hg clone -u ${__hgrev} "${__hgroot}/${__hgrepo}/" ${__hgrepo} #hg clone -b ${__hgbranch} "${__hgroot}${__hgrepo}#${__hgrev}" ${__hgrepo} @@ -79,13 +85,16 @@ mksource() { prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i ${srcdir}/001-remove-march-from-cflags.patch patch -p0 -i ${srcdir}/002-endlessworld-fix-cast.patch patch -p1 -i ${srcdir}/003-freeimage-link-with-shared.patch patch -p1 -i ${srcdir}/004-use-mingw-w64-directx.patch patch -p1 -i ${srcdir}/005-mingw-w64-redeclarations.patch patch -p1 -i ${srcdir}/006-cmake-wrong-command.patch patch -p1 -i ${srcdir}/007-fix-_WIN32-defines2.patch + patch -p1 -i ${srcdir}/010-missing-include.patch + patch -p1 -i ${srcdir}/011-fix-typo.patch + patch -p1 -i ${srcdir}/012-add-link-library.patch + patch -p1 -i ${srcdir}/013-mingw-stringconverter.patch } build() { @@ -125,7 +134,7 @@ package() { else _buildtype=Release fi - + cd "${srcdir}/build-${MINGW_CHOST}" make -j1 install #DESTDIR="$pkgdir" pushd ${pkgdir}${MINGW_PREFIX} > /dev/null diff --git a/mingw-w64-ogre3d-hg/fix-_WIN32-defines.patch b/mingw-w64-ogre3d-hg/fix-_WIN32-defines.patch deleted file mode 100644 index 8a0309c384..0000000000 --- a/mingw-w64-ogre3d-hg/fix-_WIN32-defines.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- ogre3d-1.9.0.r6858.dd4dd5572adc/OgreMain/src/nedmalloc/malloc.c.h.orig 2014-11-16 22:18:12.340400000 +0300 -+++ ogre3d-1.9.0.r6858.dd4dd5572adc/OgreMain/src/nedmalloc/malloc.c.h 2014-11-16 22:34:15.010800000 +0300 -@@ -1330,7 +1330,7 @@ - - /* Declarations for locking */ - #if USE_LOCKS --#ifndef WIN32 -+#ifndef _WIN32 - #include - #if defined (__SVR4) && defined (__sun) /* solaris */ - #include -@@ -1351,7 +1351,7 @@ - #pragma intrinsic (_InterlockedExchange) - #define interlockedcompareexchange _InterlockedCompareExchange - #define interlockedexchange _InterlockedExchange --#endif /* Win32 */ -+#endif /* _WIN32 */ - // --- BEGIN OGRE MODIFICATION --- - // MinGW compatibility - #ifdef __MINGW32__ From 6f2504942c91b1d15878fa1de6e3e057a93d4d75 Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Sun, 15 Feb 2015 17:06:04 +1100 Subject: [PATCH 0545/2060] mpv: Update to 0.8.0 This includes a couple of changes to the packaging: - libjpeg-turbo and libcaca are added as an explicit dependencies. - Several auto-detected dependencies are explicitly enabled at configure time, so configure will return an error if they are not found. The official mpv build scripts have also started to do this. - The man page is now built and installed. - mpv.com is now installed to the correct directory. - encoding-profiles.conf is no longer installed to /etc, since mpv doesn't load config files from there on MinGW. Instead, it's installed next to the example config files in /share/doc/mpv. - The x86_64 and i686 versions are built in different subdirectories, so waf doesn't get confused when building both versions at the same time. - winpty is used to get key bindings working in mintty. --- mingw-w64-mpv/PKGBUILD | 59 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 11 deletions(-) diff --git a/mingw-w64-mpv/PKGBUILD b/mingw-w64-mpv/PKGBUILD index ed95255d9c..cb889ae92d 100644 --- a/mingw-w64-mpv/PKGBUILD +++ b/mingw-w64-mpv/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov +# Contributor: James Ross-Gowan _realname=mpv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.7.2 +pkgver=0.8.0 pkgrel=1 pkgdesc="Video player based on MPlayer/mplayer2 (mingw-w64)" url="http://mpv.io" @@ -16,22 +17,29 @@ depends=("${MINGW_PACKAGE_PREFIX}-ffmpeg" "${MINGW_PACKAGE_PREFIX}-libguess" "${MINGW_PACKAGE_PREFIX}-mpg123" "${MINGW_PACKAGE_PREFIX}-lua" - "${MINGW_PACKAGE_PREFIX}-libdvdnav") + "${MINGW_PACKAGE_PREFIX}-libdvdnav" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libcaca" + "winpty-git") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-python3-docutils" "python" "perl" "pkg-config") source=(https://github.com/mpv-player/${_realname}/archive/v$pkgver.tar.gz) -md5sums=('5081934235bf1d531364f59e5f718024') +md5sums=('b3d02a0db096e77ce38c3946dd631e58') + +# strip doesn't work well with the mpv.com wrapper, so strip manually instead +options=(!strip !emptydirs) prepare() { cd ${_realname}-${pkgver} - /usr/bin/python3 ./bootstrap.py + [ -x ./waf ] || /usr/bin/python3 ./bootstrap.py + sed -i 's:bin/env python$:bin/env python3:' waf } build() { cd "${srcdir}/${_realname}-${pkgver}" - sed -i 's:bin/env python:bin/env python3:' waf DEST_OS=win32 \ TARGET=${MINGW_CHOST} \ @@ -39,11 +47,24 @@ build() { CC=gcc PERL=/usr/bin/perl \ AR=${MINGW_PREFIX}/bin/ar \ WINDRES=${MINGW_PREFIX}/bin/windres \ + RST2MAN=${MINGW_PREFIX}/bin/rst2man3 \ /usr/bin/python3 ./waf configure \ --prefix=${MINGW_PREFIX} \ --check-c-compiler=gcc \ --enable-libmpv-shared \ - --disable-client-api-examples + --enable-libguess \ + --enable-lua \ + --enable-libass \ + --enable-libbluray \ + --enable-dvdread \ + --enable-dvdnav \ + --disable-cdda \ + --enable-enca \ + --enable-mpg123 \ + --enable-lcms2 \ + --enable-caca \ + --enable-jpeg \ + --out="${srcdir}/build-${MINGW_CHOST}" /usr/bin/python3 ./waf build } @@ -53,9 +74,25 @@ package() { export PYTHON=${MINGW_PREFIX}/bin/python3 /usr/bin/python3 ./waf install --destdir="${pkgdir}" - #rm -rf ${pkgdir}${MINGW_PREFIX}/lib - mv ${pkgdir}${MINGW_PREFIX}/bin ${pkgdir}${MINGW_PREFIX}/lib - mkdir -p ${pkgdir}${MINGW_PREFIX}/bin - mv ${pkgdir}${MINGW_PREFIX}/lib/*.exe ${pkgdir}${MINGW_PREFIX}/bin/ - mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ + # For some reason waf installs import libraries to /bin, so move to /lib + mkdir "${pkgdir}${MINGW_PREFIX}/lib" + mv "${pkgdir}${MINGW_PREFIX}/bin/pkgconfig" "${pkgdir}${MINGW_PREFIX}/lib/" + mv "${pkgdir}${MINGW_PREFIX}/bin/"*.a "${pkgdir}${MINGW_PREFIX}/lib/" + sed -i "s:${MINGW_PREFIX}/bin:${MINGW_PREFIX}/lib:" "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/mpv.pc" + + # Strip binaries manually + ${MINGW_PREFIX}/bin/strip "${STRIP_BINARIES}" "${pkgdir}${MINGW_PREFIX}/bin/mpv.exe" + ${MINGW_PREFIX}/bin/strip "${STRIP_BINARIES}" "${pkgdir}${MINGW_PREFIX}/bin/mpv.com" + ${MINGW_PREFIX}/bin/strip "${STRIP_SHARED}" "${pkgdir}${MINGW_PREFIX}/bin/mpv-1.dll" + + # Move encoding-profiles.conf to share/doc alongside the example .conf files. + # mpv doesn't search /etc for configuration on MinGW. + mv "${pkgdir}${MINGW_PREFIX}/etc/mpv/"*.conf "${pkgdir}${MINGW_PREFIX}/share/doc/mpv/" + + # mpv needs winpty for key bindings to work on the terminal + mv "${pkgdir}${MINGW_PREFIX}/bin/mpv.exe" "${pkgdir}${MINGW_PREFIX}/bin/mpv_exe" + _exename=mpv + echo '#!/usr/bin/env bash' > "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" + echo '/usr/bin/winpty "$( dirname ${BASH_SOURCE[0]} )/'${_exename}'.exe" "$@"' >> "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" + mv "${pkgdir}${MINGW_PREFIX}/bin/mpv_exe" "${pkgdir}${MINGW_PREFIX}/bin/mpv.exe" } From d8ed85f3f4b2bb7640098b95c76ee1261c0d83ad Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 18 Feb 2015 15:29:52 +0300 Subject: [PATCH 0546/2060] Fix 32-bit d3d11 library. --- mingw-w64-crt-git/0006-d3d11_32.patch | 114 ++++++++++++++++++++++++++ mingw-w64-crt-git/PKGBUILD | 9 +- 2 files changed, 120 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-crt-git/0006-d3d11_32.patch diff --git a/mingw-w64-crt-git/0006-d3d11_32.patch b/mingw-w64-crt-git/0006-d3d11_32.patch new file mode 100644 index 0000000000..9d1d48e0f0 --- /dev/null +++ b/mingw-w64-crt-git/0006-d3d11_32.patch @@ -0,0 +1,114 @@ +From ddf2219d6eaa7991ef8de76539573f8fc8b85c41 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 18 Feb 2015 15:14:04 +0300 +Subject: [PATCH] Fix 32-bit def file for d3d11.dll. Symbols need have argument + count. + +--- + mingw-w64-crt/lib32/d3d11.def | 92 +++++++++++++++++++++---------------------- + 1 file changed, 46 insertions(+), 46 deletions(-) + +diff --git a/mingw-w64-crt/lib32/d3d11.def b/mingw-w64-crt/lib32/d3d11.def +index fd661e4..80708bc 100644 +--- a/mingw-w64-crt/lib32/d3d11.def ++++ b/mingw-w64-crt/lib32/d3d11.def +@@ -5,50 +5,50 @@ + ; + LIBRARY "d3d11.dll" + EXPORTS +-D3DKMTCloseAdapter +-D3DKMTDestroyAllocation +-D3DKMTDestroyContext +-D3DKMTDestroyDevice +-D3DKMTDestroySynchronizationObject +-D3DKMTQueryAdapterInfo +-D3DKMTSetDisplayPrivateDriverFormat +-D3DKMTSignalSynchronizationObject +-D3DKMTUnlock +-D3DKMTWaitForSynchronizationObject ++D3DKMTCloseAdapter@4 ++D3DKMTDestroyAllocation@4 ++D3DKMTDestroyContext@4 ++D3DKMTDestroyDevice@4 ++D3DKMTDestroySynchronizationObject@4 ++D3DKMTQueryAdapterInfo@4 ++D3DKMTSetDisplayPrivateDriverFormat@4 ++D3DKMTSignalSynchronizationObject@4 ++D3DKMTUnlock@4 ++D3DKMTWaitForSynchronizationObject@4 + EnableFeatureLevelUpgrade +-OpenAdapter10 +-OpenAdapter10_2 +-D3D11CoreCreateDevice +-D3D11CoreCreateLayeredDevice +-D3D11CoreGetLayeredDeviceSize +-D3D11CoreRegisterLayers +-D3D11CreateDevice +-D3D11CreateDeviceAndSwapChain +-D3DKMTCreateAllocation +-D3DKMTCreateContext +-D3DKMTCreateDevice +-D3DKMTCreateSynchronizationObject +-D3DKMTEscape +-D3DKMTGetContextSchedulingPriority +-D3DKMTGetDeviceState +-D3DKMTGetDisplayModeList +-D3DKMTGetMultisampleMethodList +-D3DKMTGetRuntimeData +-D3DKMTGetSharedPrimaryHandle +-D3DKMTLock +-D3DKMTOpenAdapterFromHdc +-D3DKMTOpenResource +-D3DKMTPresent +-D3DKMTQueryAllocationResidency +-D3DKMTQueryResourceInfo +-D3DKMTRender +-D3DKMTSetAllocationPriority +-D3DKMTSetContextSchedulingPriority +-D3DKMTSetDisplayMode +-D3DKMTSetGammaRamp +-D3DKMTSetVidPnSourceOwner +-D3DKMTWaitForVerticalBlankEvent +-D3DPerformance_BeginEvent +-D3DPerformance_EndEvent +-D3DPerformance_GetStatus +-D3DPerformance_SetMarker ++OpenAdapter10@4 ++OpenAdapter10_2@4 ++D3D11CoreCreateDevice@40 ++D3D11CoreCreateLayeredDevice@20 ++D3D11CoreGetLayeredDeviceSize@8 ++D3D11CoreRegisterLayers@8 ++D3D11CreateDevice@40 ++D3D11CreateDeviceAndSwapChain@48 ++D3DKMTCreateAllocation@4 ++D3DKMTCreateContext@4 ++D3DKMTCreateDevice@4 ++D3DKMTCreateSynchronizationObject@4 ++D3DKMTEscape@4 ++D3DKMTGetContextSchedulingPriority@4 ++D3DKMTGetDeviceState@4 ++D3DKMTGetDisplayModeList@4 ++D3DKMTGetMultisampleMethodList@4 ++D3DKMTGetRuntimeData@4 ++D3DKMTGetSharedPrimaryHandle@4 ++D3DKMTLock@4 ++D3DKMTOpenAdapterFromHdc@4 ++D3DKMTOpenResource@4 ++D3DKMTPresent@4 ++D3DKMTQueryAllocationResidency@4 ++D3DKMTQueryResourceInfo@4 ++D3DKMTRender@4 ++D3DKMTSetAllocationPriority@4 ++D3DKMTSetContextSchedulingPriority@4 ++D3DKMTSetDisplayMode@4 ++D3DKMTSetGammaRamp@4 ++D3DKMTSetVidPnSourceOwner@4 ++D3DKMTWaitForVerticalBlankEvent@4 ++D3DPerformance_BeginEvent@8 ++D3DPerformance_EndEvent@4 ++D3DPerformance_GetStatus@4 ++D3DPerformance_SetMarker@8 +-- +2.3.0 + diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 6342ba6726..65ae06c639 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4451.4ef3dd3 +pkgver=5.0.0.4452.f801436 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -20,13 +20,15 @@ source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" - "0005-Add-missing-DirectX11-enum.patch") + "0005-Add-missing-DirectX11-enum.patch" + "0006-d3d11_32.patch") md5sums=('SKIP' '0bcf1726f2093c6ed7e998d7e6c9dd16' '20172a91981ffa87aa6aa5d3001c290b' '410ff7ad4443a9f2e318c64742b2d358' '28a4074ee6fcf76b5b13db2a8cd3291c' - '652859ad478448a70c2074a854a313ec') + '652859ad478448a70c2074a854a313ec' + '8cc67bab94acc6b1c23a6130bc80fbdb') pkgver() { cd "$srcdir/${_realname}" @@ -43,6 +45,7 @@ prepare() { git am "${srcdir}/"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch git am "${srcdir}/"0005-Add-missing-DirectX11-enum.patch + git am "${srcdir}/"0006-d3d11_32.patch } build() { From aa6d79cd4bf28041ed03980e7a2559b09f934b53 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 18 Feb 2015 15:30:47 +0300 Subject: [PATCH 0547/2060] ogre3d-hg: Create UNIX-like folders structure. --- mingw-w64-ogre3d-hg/014-custom-install.patch | 128 +++++++++++++++++++ mingw-w64-ogre3d-hg/PKGBUILD | 29 ++--- 2 files changed, 136 insertions(+), 21 deletions(-) create mode 100644 mingw-w64-ogre3d-hg/014-custom-install.patch diff --git a/mingw-w64-ogre3d-hg/014-custom-install.patch b/mingw-w64-ogre3d-hg/014-custom-install.patch new file mode 100644 index 0000000000..2e3c05e846 --- /dev/null +++ b/mingw-w64-ogre3d-hg/014-custom-install.patch @@ -0,0 +1,128 @@ +--- ogre3d-2.0.0.r7490.07ad8061ec8d/CMake/CMakeLists.txt.orig 2015-02-18 06:49:28.643600000 +0300 ++++ ogre3d-2.0.0.r7490.07ad8061ec8d/CMake/CMakeLists.txt 2015-02-18 06:50:00.389600000 +0300 +@@ -13,7 +13,7 @@ + # directory, but can also be used for custom projects. + ############################################################# + +-if(WIN32 OR APPLE) ++if(MSVC OR APPLE) + set(OGRE_CMAKE_DIR "CMake") + else() + set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") +--- ogre3d-2.0.0.r7490.07ad8061ec8d/Docs/CMakeLists.txt.orig 2015-02-18 06:46:47.946600000 +0300 ++++ ogre3d-2.0.0.r7490.07ad8061ec8d/Docs/CMakeLists.txt 2015-02-18 06:47:05.325000000 +0300 +@@ -13,9 +13,9 @@ + ############################################################### + + # Set docs target directory +-if (WIN32 OR APPLE) ++if (MSVC OR APPLE) + set(OGRE_DOCS_PATH "Docs") +-elseif (UNIX) ++elseif (UNIX OR MINGW) + set(OGRE_DOCS_PATH "share/OGRE/docs") + endif () + +--- ogre3d-2.0.0.r7490.07ad8061ec8d/Samples/CMakeLists.txt.orig 2015-02-18 06:44:38.858000000 +0300 ++++ ogre3d-2.0.0.r7490.07ad8061ec8d/Samples/CMakeLists.txt 2015-02-18 06:45:31.445600000 +0300 +@@ -183,9 +183,9 @@ + + # Install sample sources + if (OGRE_INSTALL_SAMPLES_SOURCE) +- if (WIN32 OR APPLE) ++ if (MSVC OR APPLE) + set(OGRE_SAMPLES_DIR Samples) +- elseif (UNIX) ++ elseif (UNIX OR MINGW) + set(OGRE_SAMPLES_DIR share/OGRE/Samples) + endif () + install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION ${OGRE_SAMPLES_DIR} +--- ogre3d-2.0.0.r7490.07ad8061ec8d/CMake/InstallResources.cmake.orig 2015-02-18 06:34:55.206800000 +0300 ++++ ogre3d-2.0.0.r7490.07ad8061ec8d/CMake/InstallResources.cmake 2015-02-18 06:42:48.448400000 +0300 +@@ -12,22 +12,26 @@ + ################################################################## + + if (WIN32) +- set(OGRE_MEDIA_PATH "Media") ++ set(OGRE_MEDIA_PATH "share/OGRE/Media") + if (WINDOWS_STORE OR WINDOWS_PHONE) + set(OGRE_MEDIA_DIR_REL "${OGRE_MEDIA_PATH}") + set(OGRE_MEDIA_DIR_DBG "${OGRE_MEDIA_PATH}") + set(OGRE_TEST_MEDIA_DIR_REL "${OGRE_MEDIA_PATH}") + set(OGRE_TEST_MEDIA_DIR_DBG "${OGRE_MEDIA_PATH}") + else() +- set(OGRE_MEDIA_DIR_REL "../../${OGRE_MEDIA_PATH}") +- set(OGRE_MEDIA_DIR_DBG "../../${OGRE_MEDIA_PATH}") +- set(OGRE_TEST_MEDIA_DIR_REL "../../Tests/${OGRE_MEDIA_PATH}") +- set(OGRE_TEST_MEDIA_DIR_DBG "../../Tests/${OGRE_MEDIA_PATH}") ++ set(OGRE_MEDIA_DIR_REL "../${OGRE_MEDIA_PATH}") ++ set(OGRE_MEDIA_DIR_DBG "../${OGRE_MEDIA_PATH}") ++ set(OGRE_TEST_MEDIA_DIR_REL "../Tests/${OGRE_MEDIA_PATH}") ++ set(OGRE_TEST_MEDIA_DIR_DBG "../Tests/${OGRE_MEDIA_PATH}") + endif() + set(OGRE_PLUGIN_DIR_REL ".") + set(OGRE_PLUGIN_DIR_DBG ".") + set(OGRE_SAMPLES_DIR_REL ".") + set(OGRE_SAMPLES_DIR_DBG ".") ++ #set(OGRE_PLUGIN_DIR_REL "../lib/OGRE") ++ #set(OGRE_PLUGIN_DIR_DBG "../lib/OGRE") ++ #set(OGRE_SAMPLES_DIR_REL "../lib/OGRE/Samples") ++ #set(OGRE_SAMPLES_DIR_DBG "../lib/OGRE/Samples") + set(OGRE_CFG_INSTALL_PATH "bin") + elseif (APPLE) + set(OGRE_MEDIA_PATH "Media") +--- ogre3d-2.0.0.r7490.07ad8061ec8d/CMake/ConfigureBuild.cmake.orig 2015-02-18 06:56:58.156600000 +0300 ++++ ogre3d-2.0.0.r7490.07ad8061ec8d/CMake/ConfigureBuild.cmake 2015-02-18 06:58:52.333000000 +0300 +@@ -209,10 +209,14 @@ + + + # Create the pkg-config package files on Unix systems +-if (UNIX) ++if (UNIX OR MINGW) + set(OGRE_LIB_SUFFIX "") + set(OGRE_PLUGIN_PREFIX "") +- set(OGRE_PLUGIN_EXT ".so") ++ if (MINGW) ++ set(OGRE_PLUGIN_EXT ".dll") ++ else() ++ set(OGRE_PLUGIN_EXT ".so") ++ endif() + set(OGRE_PAGING_ADDITIONAL_PACKAGES "") + if (OGRE_STATIC) + set(OGRE_LIB_SUFFIX "${OGRE_LIB_SUFFIX}Static") +--- ogre3d-2.0.0.r7490.07ad8061ec8d/CMake/Utils/OgreConfigTargets.cmake.orig 2015-02-18 07:07:53.761600000 +0300 ++++ ogre3d-2.0.0.r7490.07ad8061ec8d/CMake/Utils/OgreConfigTargets.cmake 2015-02-18 07:22:59.553800000 +0300 +@@ -41,7 +41,7 @@ + set(OGRE_RUNTIME_OUTPUT ${OGRE_BINARY_DIR}/bin) + endif () + +-if (WIN32) ++if (MSVC) + set(OGRE_RELEASE_PATH "/Release") + set(OGRE_RELWDBG_PATH "/RelWithDebInfo") + set(OGRE_MINSIZE_PATH "/MinSizeRel") +@@ -52,7 +52,7 @@ + set(OGRE_LIB_DEBUG_PATH "/Debug") + set(OGRE_PLUGIN_PATH "/opt") + set(OGRE_SAMPLE_PATH "/opt/samples") +-elseif (UNIX) ++elseif (UNIX OR MINGW) + set(OGRE_RELEASE_PATH "") + set(OGRE_RELWDBG_PATH "") + set(OGRE_MINSIZE_PATH "") +--- ogre3d-2.0.0.r7497.fe6459e817c4/Samples/Media/CMakeLists.txt.orig 2015-02-18 13:59:42.807600000 +0300 ++++ ogre3d-2.0.0.r7497.fe6459e817c4/Samples/Media/CMakeLists.txt 2015-02-18 13:59:57.800200000 +0300 +@@ -12,11 +12,11 @@ + ############################################################### + + # Set media target directory +-if (WIN32) ++if (MSVC) + set(OGRE_MEDIA_PATH "media") + elseif (APPLE) + set(OGRE_MEDIA_PATH "Media") +-elseif (UNIX) ++elseif (UNIX OR MINGW) + set(OGRE_MEDIA_PATH "share/OGRE/Media") + endif () + diff --git a/mingw-w64-ogre3d-hg/PKGBUILD b/mingw-w64-ogre3d-hg/PKGBUILD index 8a0a0d4248..b32b7c922c 100644 --- a/mingw-w64-ogre3d-hg/PKGBUILD +++ b/mingw-w64-ogre3d-hg/PKGBUILD @@ -2,7 +2,7 @@ _realname=ogre3d pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-hg" -_rev=r7490.07ad8061ec8d +_rev=r7497.fe6459e817c4 _base_ver=2.0.0 pkgver=${_base_ver}.${_rev} pkgrel=1 @@ -37,8 +37,9 @@ source=("${_realname}-${pkgver}.tar.xz"{,.sig} 010-missing-include.patch 011-fix-typo.patch 012-add-link-library.patch - 013-mingw-stringconverter.patch) -md5sums=('8407e5f28a906107c0e395db31d8f8aa' + 013-mingw-stringconverter.patch + 014-custom-install.patch) +md5sums=('f246fbc0979529a332930f70d07c73ae' 'SKIP' '3c00c5584a8edcb4dc07a57697a73d59' '166486655cd358be175f3b32b63e0ca5' @@ -49,7 +50,8 @@ md5sums=('8407e5f28a906107c0e395db31d8f8aa' '2ada87678777366fa9cdcb5e7d12b650' 'f7d17b37f835d20a4fd6262d77d9b00a' '769784029b7059ef89da7ec0186da9cd' - 'abc014b040b651d762d519d7079f19b7') + 'abc014b040b651d762d519d7079f19b7' + '10768fba9873f2bfe923e9a7e416c964') # source PKGBUILD && mksource mksource() { @@ -95,6 +97,7 @@ prepare() { patch -p1 -i ${srcdir}/011-fix-typo.patch patch -p1 -i ${srcdir}/012-add-link-library.patch patch -p1 -i ${srcdir}/013-mingw-stringconverter.patch + patch -p1 -i ${srcdir}/014-custom-install.patch } build() { @@ -136,21 +139,5 @@ package() { fi cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 install #DESTDIR="$pkgdir" - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - - mv bin/${_buildtype}/* bin/ - rm -r bin/${_buildtype} - mv lib/${_buildtype}/* lib/ - rm -r lib/${_buildtype} - - sed -i "s|../../|../|g" \ - bin/plugins.cfg \ - bin/resources.cfg \ - bin/quakemap.cfg - - mkdir -p share/cmake-3.0/Modules - mv CMake/* share/cmake-3.0/Modules/ - rm -r CMake - popd > /dev/null + make -j1 install } From 2c303050b3414b28f2a9936016e537cbf085ea30 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 18 Feb 2015 23:20:25 +0300 Subject: [PATCH 0548/2060] gexiv2: Use msys/gtk-doc for build. --- mingw-w64-gexiv2/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gexiv2/PKGBUILD b/mingw-w64-gexiv2/PKGBUILD index a525316c5c..f4dd54c79d 100644 --- a/mingw-w64-gexiv2/PKGBUILD +++ b/mingw-w64-gexiv2/PKGBUILD @@ -10,9 +10,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-exiv2" "${MINGW_PACKAGE_PREFIX}-python2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gtk-doc" "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection") + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "gtk-doc") options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" From 9b7204002e7e2e1ffe1215d12be82eb7a02b9f28 Mon Sep 17 00:00:00 2001 From: Chilledheart Date: Tue, 27 Jan 2015 18:22:10 +0800 Subject: [PATCH 0549/2060] libevent: 2.0.5 --- mingw-w64-libevent/PKGBUILD | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 mingw-w64-libevent/PKGBUILD diff --git a/mingw-w64-libevent/PKGBUILD b/mingw-w64-libevent/PKGBUILD new file mode 100644 index 0000000000..f3beaabfc5 --- /dev/null +++ b/mingw-w64-libevent/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Alexey Pavlov +# Maintainer: Chilledheart + +_realname=libevent +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.0.22 +pkgrel=1 +pkgdesc="An event notification library" +arch=('any') +url="http://www.monkey.org/~provos/libevent/" +license=('BSD') +makedepends=("${MINGW_PACKAGE_PREFIX}-openssl") +source=(${_realname}-${pkgver}-stable.tar.gz:"https://sourceforge.net/projects/levent/files/${_realname}/${_realname}-2.0/${_realname}-${pkgver}-stable.tar.gz") +md5sums=('c4c56f986aa985677ca1db89630a2e11') + +prepare() { + cd "${srcdir}/${_realname}-$pkgver-stable" +} + +build() { + mkdir -p "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" + "${srcdir}/${_realname}-$pkgver-stable"/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --sysconfdir=${MINGW_PREFIX}/etc + make +} + +package() { + optdepends=("${MINGW_PACKAGE_PREFIX}-python2") + + cd "${srcdir}/build-${CARCH}" + make DESTDIR="$pkgdir" install +} From 51a8bca4a62c8ba6b558706e0cb782da97051049 Mon Sep 17 00:00:00 2001 From: Chilledheart Date: Tue, 27 Jan 2015 20:31:40 +0800 Subject: [PATCH 0550/2060] jansson: 2.7 --- mingw-w64-jansson/PKGBUILD | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 mingw-w64-jansson/PKGBUILD diff --git a/mingw-w64-jansson/PKGBUILD b/mingw-w64-jansson/PKGBUILD new file mode 100644 index 0000000000..dd6a3fdf89 --- /dev/null +++ b/mingw-w64-jansson/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: Alexey Pavlov +# Maintainer: Chilledheart + +_realname=jansson +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.7 +pkgrel=1 +pkgdesc="A C library for encoding, decoding and manipulating JSON data" +arch=('any') +url="http://www.digip.org/jansson/" +license=('MIT') +source=("http://www.digip.org/${_realname}/releases/${_realname}-${pkgver}.tar.gz") +sha1sums=('7d8686d84fd46c7c28d70bf2d5e8961bc002845e') + +prepare() { + cd "${srcdir}/${_realname}-$pkgver" +} + +build() { + mkdir -p "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" + "${srcdir}/${_realname}-$pkgver"/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + make +} + +package() { + cd "${srcdir}/build-${CARCH}" + make DESTDIR="$pkgdir" install +} From 8e42ecbe444d336be92f7badb437d233433fe21c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 19 Feb 2015 18:25:00 +0300 Subject: [PATCH 0551/2060] libunistring: Update to 0.9.5 --- mingw-w64-libunistring/PKGBUILD | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/mingw-w64-libunistring/PKGBUILD b/mingw-w64-libunistring/PKGBUILD index 7beabae532..da178b4f59 100644 --- a/mingw-w64-libunistring/PKGBUILD +++ b/mingw-w64-libunistring/PKGBUILD @@ -2,32 +2,34 @@ _realname=libunistring pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.4 +pkgver=0.9.5 pkgrel=1 pkgdesc="Library for manipulating Unicode strings and C strings. (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libunistring" -license=("GPL") +license=("GPL3") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-libiconv") options=('staticlibs' 'strip') source=("ftp://ftp.gnu.org/gnu/libunistring/libunistring-${pkgver}.tar.gz") -md5sums=('c24a6a3838d9ad4a41a62549312c4226') +md5sums=('1a705bcdcb83799d544137617b377cfd') build() { - export lt_cv_deplibs_check_method='pass_all' - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/libunistring-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --enable-threads=win32 + #export lt_cv_deplibs_check_method='pass_all' + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "${srcdir}"/libunistring-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-threads=win32 - make + make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From fc3fa11c3ee9f04579aafdb9a3a3c32cd37aa1b0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 19 Feb 2015 21:14:21 +0300 Subject: [PATCH 0552/2060] libevent: Fix downloading sources. --- mingw-w64-libevent/PKGBUILD | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libevent/PKGBUILD b/mingw-w64-libevent/PKGBUILD index f3beaabfc5..beaf0c5c67 100644 --- a/mingw-w64-libevent/PKGBUILD +++ b/mingw-w64-libevent/PKGBUILD @@ -9,8 +9,9 @@ pkgdesc="An event notification library" arch=('any') url="http://www.monkey.org/~provos/libevent/" license=('BSD') -makedepends=("${MINGW_PACKAGE_PREFIX}-openssl") -source=(${_realname}-${pkgver}-stable.tar.gz:"https://sourceforge.net/projects/levent/files/${_realname}/${_realname}-2.0/${_realname}-${pkgver}-stable.tar.gz") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-openssl") +source=(https://sourceforge.net/projects/levent/files/${_realname}/${_realname}-2.0/${_realname}-${pkgver}-stable.tar.gz) md5sums=('c4c56f986aa985677ca1db89630a2e11') prepare() { @@ -26,6 +27,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --sysconfdir=${MINGW_PREFIX}/etc + make } From 8ac237be7d4bd14c6aa3df5882576d07ee2d7ae0 Mon Sep 17 00:00:00 2001 From: David Macek Date: Thu, 19 Feb 2015 14:36:55 +0100 Subject: [PATCH 0553/2060] new: geany IDE --- .../0001-Fix-windres-invocation.patch | 37 +++++++++ .../0002-Fix-plugin-compilation.patch | 25 ++++++ mingw-w64-geany/0003-Use-FHS.patch | 69 +++++++++++++++++ .../0004-Fix-genapi-invocation.patch | 41 ++++++++++ mingw-w64-geany/PKGBUILD | 77 +++++++++++++++++++ mingw-w64-geany/geany-i686.install | 11 +++ mingw-w64-geany/geany-x86_64.install | 11 +++ 7 files changed, 271 insertions(+) create mode 100644 mingw-w64-geany/0001-Fix-windres-invocation.patch create mode 100644 mingw-w64-geany/0002-Fix-plugin-compilation.patch create mode 100644 mingw-w64-geany/0003-Use-FHS.patch create mode 100644 mingw-w64-geany/0004-Fix-genapi-invocation.patch create mode 100644 mingw-w64-geany/PKGBUILD create mode 100644 mingw-w64-geany/geany-i686.install create mode 100644 mingw-w64-geany/geany-x86_64.install diff --git a/mingw-w64-geany/0001-Fix-windres-invocation.patch b/mingw-w64-geany/0001-Fix-windres-invocation.patch new file mode 100644 index 0000000000..dd57129186 --- /dev/null +++ b/mingw-w64-geany/0001-Fix-windres-invocation.patch @@ -0,0 +1,37 @@ +From ada38bc30b61401ea36296e6f580cbed7b50b5ce Mon Sep 17 00:00:00 2001 +From: David Macek +Date: Thu, 19 Feb 2015 13:42:35 +0100 +Subject: [PATCH 1/4] Fix windres invocation + +--- + src/Makefile.in | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/Makefile.in b/src/Makefile.in +index c231cfc..528b580 100644 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -547,7 +547,7 @@ nodist_EXTRA_geany_SOURCES = dummy.cxx + @MINGW_TRUE@ -DG_LOG_DOMAIN=\""Geany"\" + + @MINGW_TRUE@geany_LDFLAGS = -mwindows -mms-bitfields +-@MINGW_TRUE@WINDRES = $(host_alias)-windres ++@MINGW_TRUE@WINDRES = windres + all: all-am + + .SUFFIXES: +@@ -968,7 +968,10 @@ uninstall-am: uninstall-binPROGRAMS uninstall-geany_includeHEADERS + + + @MINGW_TRUE@geany_private.res: +-@MINGW_TRUE@ $(WINDRES) -i ../geany_private.rc --input-format=rc -o geany_private.res -O coff; ++@MINGW_TRUE@ cp $(VPATH)/../geany_private.rc ./ ++@MINGW_TRUE@ cp $(VPATH)/../geany.exe.manifest ./ ++@MINGW_TRUE@ cp $(VPATH)/../icons/geany.ico ../icons/ ++@MINGW_TRUE@ $(WINDRES) -i geany_private.rc --input-format=rc -o geany_private.res -O coff; + + @MINGW_TRUE@clean-local: + @MINGW_TRUE@ rm -f geany_private.res +-- +2.3.0 + diff --git a/mingw-w64-geany/0002-Fix-plugin-compilation.patch b/mingw-w64-geany/0002-Fix-plugin-compilation.patch new file mode 100644 index 0000000000..f1ab6a2b8e --- /dev/null +++ b/mingw-w64-geany/0002-Fix-plugin-compilation.patch @@ -0,0 +1,25 @@ +From 7e6446a6c67f47d68317b071ad4767b9f24f2255 Mon Sep 17 00:00:00 2001 +From: David Macek +Date: Thu, 19 Feb 2015 13:44:06 +0100 +Subject: [PATCH 2/4] Fix plugin compilation + +--- + plugins/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/Makefile.in b/plugins/Makefile.in +index 111f135..30ddf6e 100644 +--- a/plugins/Makefile.in ++++ b/plugins/Makefile.in +@@ -463,7 +463,7 @@ splitwindow_la_LDFLAGS = -module -avoid-version + + # build Geany for Windows on non-Windows systems (cross-compile) + # (this is a little hack'ish and surely can be improved) +-@MINGW_TRUE@@PLUGINS_TRUE@DLL_LD_FLAGS = -module -avoid-version ++@MINGW_TRUE@@PLUGINS_TRUE@DLL_LD_FLAGS = + @MINGW_TRUE@@PLUGINS_TRUE@MINGW_CFLAGS = \ + @MINGW_TRUE@@PLUGINS_TRUE@ -DGEANY_DATADIR=\"data\" \ + @MINGW_TRUE@@PLUGINS_TRUE@ -DHAVE_CONFIG_H \ +-- +2.3.0 + diff --git a/mingw-w64-geany/0003-Use-FHS.patch b/mingw-w64-geany/0003-Use-FHS.patch new file mode 100644 index 0000000000..4b62073694 --- /dev/null +++ b/mingw-w64-geany/0003-Use-FHS.patch @@ -0,0 +1,69 @@ +From 45bd465a64e456defcf37f429afe89edf103b4fa Mon Sep 17 00:00:00 2001 +From: David Macek +Date: Thu, 19 Feb 2015 13:52:42 +0100 +Subject: [PATCH 3/4] Use FHS + +--- + plugins/Makefile.in | 2 +- + src/Makefile.in | 2 +- + src/main.c | 4 ++-- + src/plugins.c | 2 +- + 4 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/plugins/Makefile.in b/plugins/Makefile.in +index 30ddf6e..73b54f1 100644 +--- a/plugins/Makefile.in ++++ b/plugins/Makefile.in +@@ -465,7 +465,7 @@ splitwindow_la_LDFLAGS = -module -avoid-version + # (this is a little hack'ish and surely can be improved) + @MINGW_TRUE@@PLUGINS_TRUE@DLL_LD_FLAGS = + @MINGW_TRUE@@PLUGINS_TRUE@MINGW_CFLAGS = \ +-@MINGW_TRUE@@PLUGINS_TRUE@ -DGEANY_DATADIR=\"data\" \ ++@MINGW_TRUE@@PLUGINS_TRUE@ -DGEANY_DATADIR=\"\" \ + @MINGW_TRUE@@PLUGINS_TRUE@ -DHAVE_CONFIG_H \ + @MINGW_TRUE@@PLUGINS_TRUE@ -DGTK \ + @MINGW_TRUE@@PLUGINS_TRUE@ -I$(top_srcdir) \ +diff --git a/src/Makefile.in b/src/Makefile.in +index 528b580..0638b0e 100644 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -537,7 +537,7 @@ nodist_EXTRA_geany_SOURCES = dummy.cxx + @MINGW_FALSE@ -DGTK \ + @MINGW_FALSE@ -DG_LOG_DOMAIN=\""Geany"\" + +-@MINGW_TRUE@AM_CFLAGS = -DGEANY_DATADIR=\"data\" \ ++@MINGW_TRUE@AM_CFLAGS = -DGEANY_DATADIR=\"\" \ + @MINGW_TRUE@ -DGEANY_DOCDIR=\"\" \ + @MINGW_TRUE@ -DGEANY_LIBDIR=\"\" \ + @MINGW_TRUE@ -DGEANY_LOCALEDIR=\"\" \ +diff --git a/src/main.c b/src/main.c +index 0d952bc..fc5ca18 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -414,8 +414,8 @@ static void setup_paths(void) + * documentation and data files */ + gchar *install_dir = win32_get_installation_dir(); + +- data_dir = g_build_filename(install_dir, "data", NULL); /* e.g. C:\Program Files\geany\data */ +- doc_dir = g_build_filename(install_dir, "doc", NULL); ++ data_dir = g_build_filename(install_dir, "share", "geany", NULL); ++ doc_dir = g_build_filename(install_dir, "share", "doc", "geany", "html", NULL); + + g_free(install_dir); + #else +diff --git a/src/plugins.c b/src/plugins.c +index 08523d8..3f17f8c 100644 +--- a/src/plugins.c ++++ b/src/plugins.c +@@ -962,7 +962,7 @@ static gchar *get_plugin_path(void) + gchar *path; + gchar *install_dir = win32_get_installation_dir(); + +- path = g_build_filename(install_dir, "lib", NULL); ++ path = g_build_filename(install_dir, "lib", "geany", NULL); + g_free(install_dir); + + return path; +-- +2.3.0 + diff --git a/mingw-w64-geany/0004-Fix-genapi-invocation.patch b/mingw-w64-geany/0004-Fix-genapi-invocation.patch new file mode 100644 index 0000000000..2be70d4b27 --- /dev/null +++ b/mingw-w64-geany/0004-Fix-genapi-invocation.patch @@ -0,0 +1,41 @@ +From a3d840f370ed2e4478a3d6e865350003bc73e548 Mon Sep 17 00:00:00 2001 +From: David Macek +Date: Thu, 19 Feb 2015 23:16:44 +0100 +Subject: [PATCH 4/4] Fix genapi invocation + +--- + plugins/Makefile.in | 4 ++-- + plugins/genapi.py | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/plugins/Makefile.in b/plugins/Makefile.in +index 73b54f1..ef273e1 100644 +--- a/plugins/Makefile.in ++++ b/plugins/Makefile.in +@@ -958,8 +958,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES \ + + + # systems without python should continue to build OK +-geanyfunctions.h: genapi.py ../src/plugins.c +- python genapi.py || true ++geanyfunctions.h: @srcdir@/genapi.py @srcdir@/../src/plugins.c ++ python2 @srcdir@/genapi.py @srcdir@/../src/plugins.c + + all: geanyfunctions.h + +diff --git a/plugins/genapi.py b/plugins/genapi.py +index 5c798f8..31d3fe3 100644 +--- a/plugins/genapi.py ++++ b/plugins/genapi.py +@@ -36,7 +36,7 @@ import sys + + def get_function_names(): + names = [] +- filep = open('../src/plugins.c') ++ filep = open(sys.argv[1]) + while 1: + line = filep.readline() + if line == "": +-- +2.3.0 + diff --git a/mingw-w64-geany/PKGBUILD b/mingw-w64-geany/PKGBUILD new file mode 100644 index 0000000000..79c2856954 --- /dev/null +++ b/mingw-w64-geany/PKGBUILD @@ -0,0 +1,77 @@ +# Contributor (MSYS2): David Macek +# Maintainer (Arch Linux): Alexander Rødseth +# Contributor (Arch Linux): Angel Velasquez +# Contributor (Arch Linux): Ionut Biru +# Contributor (Arch Linux): William Rea +# Contributor (Arch Linux): Allan McRae + +_realname=geany +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.24.1 +pkgrel=1 +pkgdesc='Fast and lightweight IDE (mingw-w64)' +arch=('any') +url='http://www.geany.org/' +license=('GPL') +depends=("${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme") +makedepends=('perlxml' + 'intltool' + "${MINGW_PACKAGE_PREFIX}-gcc") +install=geany-${CARCH}.install +optdepends=( + #'geany-plugins: various extra features' + #'vte: terminal support' + "${MINGW_PACKAGE_PREFIX}-python2") +source=("http://download.geany.org/${_realname}-${pkgver}.tar.bz2" + "0001-Fix-windres-invocation.patch" + "0002-Fix-plugin-compilation.patch" + "0003-Use-FHS.patch" + "0004-Fix-genapi-invocation.patch") +sha256sums=('7fb505d9b01fe6874890525f837644a6a38c23a372bb068c65ef3673108a8c33' + 'aacd1815833e03ba95853f7a8adf53d848cc68f41c5cddd47f2f1a8425590a81' + 'b96b810359e45bb9a263377bc2dcca0125833bf649153cd5da24d21ee94cfb42' + '8380b1cfa5f58233158c7e4f71d910399026df4bc3abf117087e050ecee323cf' + 'a21ff06e9022bb973f876d4edc003c23f3c244c3638281b58a2b141a6ba893b9') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + + # Python2 fix + sed -i '0,/on/s//on2/' data/templates/files/main.py + + # Syntax highlighting for PKGBUILD files + sed -i 's/Sh=/Sh=PKGBUILD;/' data/filetype_extensions.conf + + patch -p1 -i "${srcdir}/0001-Fix-windres-invocation.patch" + patch -p1 -i "${srcdir}/0002-Fix-plugin-compilation.patch" + patch -p1 -i "${srcdir}/0003-Use-FHS.patch" + patch -p1 -i "${srcdir}/0004-Fix-genapi-invocation.patch" +} + +build() { + mkdir -p "build-${MINGW_CHOST}" + cd "build-${MINGW_CHOST}" + + # libiberty + export LDFLAGS+=" -L${MINGW_PREFIX}/lib/binutils" + + # config.h + export PLUGIN_CFLAGS+=" -I$(pwd)" + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} + make +} + +package() { + cd "build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + mkdir -p "${pkgdir}${MINGW_PREFIX}/lib/geany" + cp plugins/*.dll "${pkgdir}${MINGW_PREFIX}/lib/geany/" + rm -r "${pkgdir}${MINGW_PREFIX}/share/applications" + rm -r "${pkgdir}${MINGW_PREFIX}/share/icons/hicolor/index.theme" +} diff --git a/mingw-w64-geany/geany-i686.install b/mingw-w64-geany/geany-i686.install new file mode 100644 index 0000000000..da50a72875 --- /dev/null +++ b/mingw-w64-geany/geany-i686.install @@ -0,0 +1,11 @@ +post_install() { + mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/mingw-w64-geany/geany-x86_64.install b/mingw-w64-geany/geany-x86_64.install new file mode 100644 index 0000000000..4a2bb1bb75 --- /dev/null +++ b/mingw-w64-geany/geany-x86_64.install @@ -0,0 +1,11 @@ +post_install() { + mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} From 4ecbbf497f81ba884c880241ad90e49199c70785 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 20 Feb 2015 21:20:02 +0300 Subject: [PATCH 0554/2060] emacs-git: Update to git SHA [f6e2518] --- mingw-w64-emacs-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-emacs-git/PKGBUILD b/mingw-w64-emacs-git/PKGBUILD index 49239dda7d..292597d3fc 100644 --- a/mingw-w64-emacs-git/PKGBUILD +++ b/mingw-w64-emacs-git/PKGBUILD @@ -2,7 +2,7 @@ _name='emacs' pkgname="${MINGW_PACKAGE_PREFIX}-${_name}-git" -pkgver=r118176.83087df +pkgver=r120494.226c122 pkgrel=1 pkgdesc=\ "The extensible, customizable, self-documenting, real-time display editor." From c1ceecbdf5d578fad0408f91a19090a02fb8aed7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 20 Feb 2015 21:20:51 +0300 Subject: [PATCH 0555/2060] mingw-w64-headers: Update to git SHA [f6e2518] --- mingw-w64-headers-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 3037a6b679..0140a33c33 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4451.4ef3dd3 +pkgver=5.0.0.4454.f6e2518 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From f85609d28b0179c29447534519dd856056db7ef2 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Fri, 20 Feb 2015 18:26:26 +0000 Subject: [PATCH 0556/2060] vlc-git: added dx11 renderer and updated to latest git --- ...arch-for-freeaddrinfo-in-SOCKET_LIBS.patch | 15 +- ...007-Use-libdir-for-plugins-on-msys2.patch} | 0 ...pollfd-is-defined-from-Vista-onwards.patch | 36 - ...caltime_r-and-gmtime_r-inline-issues.patch | 35 + ...9-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch | 24 + .../0010-d3d11-vout-plugin.patch | 1125 +++++++++++++++++ mingw-w64-vlc-git/PKGBUILD | 27 +- 7 files changed, 1209 insertions(+), 53 deletions(-) rename mingw-w64-vlc-git/{0008-Use-libdir-for-plugins-on-msys2.patch => 0007-Use-libdir-for-plugins-on-msys2.patch} (100%) delete mode 100644 mingw-w64-vlc-git/0007-pollfd-is-defined-from-Vista-onwards.patch create mode 100644 mingw-w64-vlc-git/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch create mode 100644 mingw-w64-vlc-git/0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch create mode 100644 mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch diff --git a/mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch b/mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch index e5e690da97..67cde314af 100644 --- a/mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch +++ b/mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch @@ -1,7 +1,7 @@ -From 0a256df8495ff86a9afcfe1edc571f34e2d81532 Mon Sep 17 00:00:00 2001 +From 19e90aaefd3722f27c4ff201d561b475ffd5d49f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 22 Nov 2014 22:27:10 +0000 -Subject: [PATCH 6/6] Search for freeaddrinfo in SOCKET_LIBS +Subject: [PATCH] Search for freeaddrinfo in SOCKET_LIBS .. using system-specifc headers so that the declaration includes the correct calling convention. @@ -12,7 +12,7 @@ Reverts one of the two changes from 888bc8. 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index d576265..c790c83 100644 +index 513e1fc..1184620 100644 --- a/configure.ac +++ b/configure.ac @@ -298,7 +298,6 @@ case "${host_os}" in @@ -23,7 +23,7 @@ index d576265..c790c83 100644 ;; *) SYS="${host_os}" -@@ -649,6 +648,16 @@ AC_LINK_IFELSE([ +@@ -647,6 +646,16 @@ AC_LINK_IFELSE([ inet_pton(AF_INET, "127.0.0.1", dst); ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])]) AC_CHECK_FUNCS([if_nameindex if_nametoindex]) @@ -36,10 +36,9 @@ index d576265..c790c83 100644 + #include + #endif], [ + freeaddrinfo(0); -+ ])],[AC_DEFINE([HAVE_FREEADDRINFO],[1],[Define to 1 if you have freeaddrinfo function])],[AC_LIBOBJ([freeaddrinfo])]) ++ ])],[],[AC_LIBOBJ([freeaddrinfo])]) VLC_RESTORE_FLAGS + AC_SUBST(SOCKET_LIBS) - AS_IF([test -n "$SOCKET_LIBS"], [ -- -2.1.3 - +2.3.0 \ No newline at end of file diff --git a/mingw-w64-vlc-git/0008-Use-libdir-for-plugins-on-msys2.patch b/mingw-w64-vlc-git/0007-Use-libdir-for-plugins-on-msys2.patch similarity index 100% rename from mingw-w64-vlc-git/0008-Use-libdir-for-plugins-on-msys2.patch rename to mingw-w64-vlc-git/0007-Use-libdir-for-plugins-on-msys2.patch diff --git a/mingw-w64-vlc-git/0007-pollfd-is-defined-from-Vista-onwards.patch b/mingw-w64-vlc-git/0007-pollfd-is-defined-from-Vista-onwards.patch deleted file mode 100644 index c3a2b3607d..0000000000 --- a/mingw-w64-vlc-git/0007-pollfd-is-defined-from-Vista-onwards.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 9f7f14321c30493744d2c7da96351c183e58d4ab Mon Sep 17 00:00:00 2001 -From: martell -Date: Thu, 11 Dec 2014 20:42:25 +0000 -Subject: [PATCH] pollfd is defined from Vista onwards - ---- - configure.ac | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 14b21cc..1e20914 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -658,6 +658,19 @@ AC_LINK_IFELSE( - #endif], [ - freeaddrinfo(0); - ])],[AC_DEFINE([HAVE_FREEADDRINFO],[1],[Define to 1 if you have freeaddrinfo function])],[AC_LIBOBJ([freeaddrinfo])]) -+AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([#ifdef _WIN32 -+ # if _WIN32_WINNT < 0x600 -+ # error Needs vista+ -+ # endif -+ #include -+ #else -+ #include -+ #include -+ #endif], [ -+ struct pollfd pfd; -+ pfd.fd = 1; -+ ])],[AC_DEFINE([HAVE_STRUCT_POLLFD],[1],[Define to 1 if you have pollfd struct])]) - VLC_RESTORE_FLAGS - - AS_IF([test -n "$SOCKET_LIBS"], [ --- -2.2.0 - diff --git a/mingw-w64-vlc-git/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch b/mingw-w64-vlc-git/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch new file mode 100644 index 0000000000..25a6bbbcb4 --- /dev/null +++ b/mingw-w64-vlc-git/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch @@ -0,0 +1,35 @@ +From 36af44c7282b183d205586cb6e059d6b863ef247 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Tue, 13 Jan 2015 12:13:56 +0000 +Subject: [PATCH] Fix localtime_r and gmtime_r inline issues + +--- + configure.ac | 12 +++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 77eddd1..9f59632 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -563,6 +564,18 @@ AC_CHECK_FUNCS(fdatasync,, + + dnl mingw64 implements those as static inline, not functions with C linkage + AC_LINK_IFELSE([ ++ AC_LANG_PROGRAM([#include ], [ ++ struct tm newtime; ++ time_t ltime; ++ localtime_r(<ime, &newtime); ++ ])],[AC_DEFINE([HAVE_LOCALTIME_R],[1],[Define to 1 if you have localtime_r function])],[AC_LIBOBJ([localtime_r])]) ++AC_LINK_IFELSE([ ++ AC_LANG_PROGRAM([#include ], [ ++ time_t ltime; ++ struct tm mytime; ++ gmtime_r(<ime, &mytime); ++ ])],[AC_DEFINE([HAVE_GMTIME_R],[1],[Define to 1 if you have gmtime_r function])],[AC_LIBOBJ([gmtime_r])]) ++AC_LINK_IFELSE([ + AC_LANG_PROGRAM([#include ], [ + char *c; + if (asprintf(&c, "%s %d", "string", 1) == -1) +-- +2.2.1 + diff --git a/mingw-w64-vlc-git/0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch b/mingw-w64-vlc-git/0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch new file mode 100644 index 0000000000..d49e1c1964 --- /dev/null +++ b/mingw-w64-vlc-git/0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch @@ -0,0 +1,24 @@ +From 9814cf1ba3fc83416cf117536fbe253ab488a4ad Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Wed, 18 Feb 2015 15:28:58 +0000 +Subject: [PATCH 10/11] MEDIASUBTYPE_I420 is in add wmcodecdsp.h + +--- + modules/access/dshow/vlc_dshow.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules/access/dshow/vlc_dshow.h b/modules/access/dshow/vlc_dshow.h +index 816884e..be98882 100644 +--- a/modules/access/dshow/vlc_dshow.h ++++ b/modules/access/dshow/vlc_dshow.h +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + #include + + #ifndef __MINGW64_VERSION_MAJOR +-- +2.3.0 + diff --git a/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch b/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch new file mode 100644 index 0000000000..74ef446b73 --- /dev/null +++ b/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch @@ -0,0 +1,1125 @@ +From 4c16bc99b3662a9cb477ef889dbd46fa20e4ab6d Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Wed, 24 Dec 2014 16:37:27 +0000 +Subject: [PATCH 2/2] d3d11 vout plugin + +--- + configure.ac | 7 +- + modules/MODULES_LIST | 1 + + modules/video_output/Makefile.am | 12 + + modules/video_output/msw/common.c | 10 +- + modules/video_output/msw/common.h | 61 +++ + modules/video_output/msw/direct3d11.c | 871 ++++++++++++++++++++++++++++++++++ + modules/video_output/msw/events.c | 10 +- + 7 files changed, 961 insertions(+), 11 deletions(-) + create mode 100644 modules/video_output/msw/direct3d11.c + +diff --git a/configure.ac b/configure.ac +index 47cbd11..e693baf 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3262,7 +3262,12 @@ AS_IF([test "${enable_directx}" != "no"], [ + #include + ]) + +- dnl Direct3D ++ dnl Direct3D11 ++ AC_CHECK_HEADERS(d3d11.h, [ ++ VLC_ADD_PLUGIN([direct3d11]) ++ ]) ++ ++ dnl Direct3D9 + AC_CHECK_HEADERS(d3d9.h, [ + VLC_ADD_PLUGIN([direct3d9]) + ]) +diff --git a/modules/MODULES_LIST b/modules/MODULES_LIST +index b048ba1..b3cb0e5 100644 +--- a/modules/MODULES_LIST ++++ b/modules/MODULES_LIST +@@ -98,6 +98,7 @@ $Id$ + * diracsys: BBC Dirac demuxer + * direct2d: video output module using the Direct2D API + * direct3d9: video output module using the Direct3D9 API ++ * direct3d11: video output module using the Direct3D11 API + * directdraw: video output module using the DirectDraw API + * directfb: Direct Framebuffer video output + * directsound: audio output module using the DirectSound API +diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am +index e05b28f..1a2ae96 100644 +--- a/modules/video_output/Makefile.am ++++ b/modules/video_output/Makefile.am +@@ -181,6 +181,18 @@ libdirect3d9_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)' + vout_LTLIBRARIES += $(LTLIBdirect3d9) + EXTRA_LTLIBRARIES += libdirect3d9_plugin.la + ++libdirect3d11_plugin_la_SOURCES = video_output/msw/direct3d11.c \ ++ video_output/msw/common.c video_output/msw/common.h \ ++ video_output/msw/events.c video_output/msw/events.h \ ++ video_output/msw/builtin_shaders.h \ ++ video_output/msw/win32touch.c video_output/msw/win32touch.h ++libdirect3d11_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \ ++ -DMODULE_NAME_IS_direct3d11 ++libdirect3d11_plugin_la_LIBADD = -lgdi32 -lole32 -luuid ++libdirect3d11_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)' ++vout_LTLIBRARIES += $(LTLIBdirect3d11) ++EXTRA_LTLIBRARIES += libdirect3d11_plugin.la ++ + libdirectdraw_plugin_la_SOURCES = video_output/msw/directdraw.c \ + video_output/msw/common.c video_output/msw/common.h \ + video_output/msw/events.c video_output/msw/events.h \ +diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c +index 75c8a76..b2308ed 100644 +--- a/modules/video_output/msw/common.c ++++ b/modules/video_output/msw/common.c +@@ -72,7 +72,7 @@ int CommonInit(vout_display_t *vd) + + event_cfg_t cfg; + memset(&cfg, 0, sizeof(cfg)); +-#ifdef MODULE_NAME_IS_direct3d9 ++#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) + cfg.use_desktop = sys->use_desktop; + #endif + #ifdef MODULE_NAME_IS_directdraw +@@ -348,7 +348,7 @@ void UpdateRects(vout_display_t *vd, + SWP_NOCOPYBITS|SWP_NOZORDER|SWP_ASYNCWINDOWPOS); + + /* Destination image position and dimensions */ +-#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct2d) ++#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) || defined(MODULE_NAME_IS_direct2d) + rect_dest.left = 0; + rect_dest.right = place.width; + rect_dest.top = 0; +@@ -425,7 +425,7 @@ void UpdateRects(vout_display_t *vd, + /* Apply overlay hardware constraints */ + if (sys->use_overlay) + AlignRect(&rect_src_clipped, sys->i_align_src_boundary, sys->i_align_src_size); +-#elif defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct2d) ++#elif defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) || defined(MODULE_NAME_IS_direct2d) + /* Needed at least with YUV content */ + rect_src_clipped.left &= ~1; + rect_src_clipped.right &= ~1; +@@ -465,7 +465,7 @@ static int CommonControlSetFullscreen(vout_display_t *vd, bool is_fullscreen) + { + vout_display_sys_t *sys = vd->sys; + +-#ifdef MODULE_NAME_IS_direct3d9 ++#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) + if (sys->use_desktop && is_fullscreen) + return VLC_EGENERIC; + #endif +@@ -591,7 +591,7 @@ int CommonControl(vout_display_t *vd, int query, va_list args) + case VOUT_DISPLAY_CHANGE_WINDOW_STATE: { /* unsigned state */ + const unsigned state = va_arg(args, unsigned); + const bool is_on_top = (state & VOUT_WINDOW_STATE_ABOVE) != 0; +-#ifdef MODULE_NAME_IS_direct3d9 ++#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) + if (sys->use_desktop && is_on_top) + return VLC_EGENERIC; + #endif +diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h +index 5cb8c45..a8bf9ce 100644 +--- a/modules/video_output/msw/common.h ++++ b/modules/video_output/msw/common.h +@@ -25,6 +25,11 @@ + #ifdef MODULE_NAME_IS_directdraw + # include + #endif ++#ifdef MODULE_NAME_IS_direct3d11 ++# include ++# include ++# include ++#endif + #ifdef MODULE_NAME_IS_direct3d9 + # include + # include +@@ -135,6 +140,62 @@ struct vout_display_sys_t + ID2D1Bitmap *d2_bitmap; /* D2 bitmap */ + #endif + ++#ifdef MODULE_NAME_IS_direct3d11 ++ bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ ++ /* show video on desktop window ? */ ++ bool use_desktop; ++ struct { ++ bool is_fullscreen; ++ bool is_on_top; ++ RECT win; ++ } desktop_save; ++ vout_display_cfg_t cfg_saved; /* configuration used before going into desktop mode */ ++ ++ // core objects ++ HINSTANCE hdxgi_dll; /* handle of the opened dxgi dll */ ++ HINSTANCE hd3d11_dll; /* handle of the opened d3d11 dll */ ++ HINSTANCE hd3dcompiler_dll; /* handle of the opened d3dcompiler dll */ ++ ++ IDXGIFactory *dxgi_factory; /* DXGI factory */ ++ IDXGIAdapter *dxgi_adapter; /* DXGI adapter */ ++ ID3D11Device *d3ddevice; /* D3D device */ ++ ID3D11DeviceContext *d3dcontext; /* D3D context */ ++ IDXGISwapChain *dxgi_swapChain; /* DXGI swap chain */ ++ D3D_FEATURE_LEVEL d3dfeaturelevel; /* D3D feature level */ ++ ++ ID3D11Texture2D *d3dtexture; ++ ID3D11RenderTargetView *d3drenderTargetView; ++ ID3D11DepthStencilView *d3ddepthStencilView; ++ ID3D11VertexShader *d3dvertexShader; ++ ID3D11PixelShader *d3dpixelShader; ++ ID3D11InputLayout *d3dvertexLayout; ++ ID3D11ShaderResourceView *d3dResView; ++ ID3D11SamplerState *d3dSampState; ++ ++ /* We should find a better way to store this or atleast a shorter name */ ++ PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN OurD3D11CreateDeviceAndSwapChain; ++ PFN_D3D11_CREATE_DEVICE OurD3D11CreateDevice; ++ pD3DCompile OurD3DCompile; ++ ++ DXGI_FORMAT d3dregion_format; ++ ++ int d3dregion_count; ++ struct d3d_region_t *d3dregion; ++ ++ picture_sys_t *picsys; ++ ++ /* */ ++ bool reset_device; ++ bool reopen_device; ++ bool lost_not_ready; ++ bool clear_scene; ++ ++ /* It protects the following variables */ ++ vlc_mutex_t lock; ++ bool ch_desktop; ++ bool desktop_requested; ++#endif ++ + #ifdef MODULE_NAME_IS_direct3d9 + bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ + /* show video on desktop window ? */ +diff --git a/modules/video_output/msw/direct3d11.c b/modules/video_output/msw/direct3d11.c +new file mode 100644 +index 0000000..66ae281 +--- /dev/null ++++ b/modules/video_output/msw/direct3d11.c +@@ -0,0 +1,871 @@ ++/***************************************************************************** ++ * direct3d11.c: Windows Direct3D11 video output module ++ ***************************************************************************** ++ * Copyright (C) 2014-2015 VLC authors and VideoLAN ++ * ++ * Authors: Martell Malone ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU Lesser General Public License as published by ++ * the Free Software Foundation; either version 2.1 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. ++ *****************************************************************************/ ++ ++#ifdef HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include ++#include ++#include ++#include ++ ++#include ++#define COBJMACROS ++#include "common.h" ++#include "builtin_shaders.h" ++ ++/***************************************************************************** ++ * Module descriptor ++ *****************************************************************************/ ++static int Open(vlc_object_t *); ++static void Close(vlc_object_t *); ++ ++#define DESKTOP_LONGTEXT N_(\ ++ "The desktop mode allows you to display the video on the desktop.") ++ ++#define D3D11_HELP N_("Recommended video output for Windows 8 and later versions") ++ ++vlc_module_begin () ++ set_shortname("Direct3D11") ++ set_description(N_("Direct3D11 video output")) ++ set_help(D3D11_HELP) ++ set_category(CAT_VIDEO) ++ set_subcategory(SUBCAT_VIDEO_VOUT) ++ set_capability("vout display", 280) ++ add_shortcut("direct3d11") ++ set_callbacks(Open, Close) ++vlc_module_end () ++ ++/***************************************************************************** ++ * Local prototypes. ++ *****************************************************************************/ ++typedef struct ++{ ++ const char *name; ++ DXGI_FORMAT format; ++ vlc_fourcc_t fourcc; ++ uint32_t rmask; ++ uint32_t gmask; ++ uint32_t bmask; ++} d3d_format_t; ++ ++static const d3d_format_t d3d_formats[] = { ++ { "YV12", DXGI_FORMAT_420_OPAQUE, VLC_CODEC_I420, 0,0,0 }, ++ { "YV12", DXGI_FORMAT_420_OPAQUE, VLC_CODEC_YV12, 0,0,0 }, ++ { "NV12", DXGI_FORMAT_NV12, VLC_CODEC_NV12, 0,0,0 }, ++ { "X8R8G8B8", DXGI_FORMAT_R8G8B8A8_UNORM, VLC_CODEC_RGB32, 0xff0000, 0x00ff00, 0x0000ff }, ++ { "YUY2", DXGI_FORMAT_YUY2, VLC_CODEC_YUYV, 0,0,0 }, ++ { NULL, 0, 0, 0,0,0} ++}; ++ ++static const vlc_fourcc_t d3d_subpicture_chromas[] = { ++ VLC_CODEC_RGBA, ++ 0 ++}; ++ ++struct picture_sys_t ++{ ++ ID3D11Texture2D *surface; ++ ID3D11DeviceContext *context; ++ picture_t *fallback; ++ int pitch; ++}; ++ ++static int Open(vlc_object_t *); ++static void Close(vlc_object_t *object); ++ ++static picture_pool_t *Pool (vout_display_t *, unsigned); ++static void Display(vout_display_t *, picture_t *, subpicture_t *subpicture); ++static void Manage (vout_display_t *); ++ ++static int Direct3D11Create (vout_display_t *); ++static void Direct3D11Destroy(vout_display_t *); ++ ++static int Direct3D11Open (vout_display_t *, video_format_t *); ++static void Direct3D11Close(vout_display_t *); ++ ++static int Direct3D11CreateResources (vout_display_t *, video_format_t *); ++static void Direct3D11DestroyResources(vout_display_t *); ++ ++static int Direct3D11MapSurface(picture_t *); ++ ++static int DesktopCallback(vlc_object_t *, char const *, vlc_value_t, vlc_value_t, void *); ++ ++// I have no idea why dxgi headers do not define this, d3d11 does for its functions ++typedef HRESULT(WINAPI *PFN_CREATE_DXGI_FACTORY)(REFIID riid, void **ppFactory); ++ ++static const char* globShader = "\ ++ Texture2D shaderTexture;\ ++ SamplerState SampleType;\ ++ \ ++ struct VS_INPUT\ ++ {\ ++ float4 Position : POSITION;\ ++ float2 Texture : TEXCOORD0;\ ++ };\ ++ \ ++ struct VS_OUTPUT\ ++ {\ ++ float4 Position : SV_POSITION;\ ++ float2 Texture : TEXCOORD0;\ ++ };\ ++ \ ++ VS_OUTPUT VS( VS_INPUT In )\ ++ {\ ++ VS_OUTPUT Output;\ ++ Output.Position = float4(In.Position.xy, 0.0f, 1.0f);\ ++ Output.Texture = In.Texture;\ ++ return Output;\ ++ }\ ++ \ ++ float4 PS( VS_OUTPUT In ) : SV_TARGET\ ++ {\ ++ float4 textureColor;\ ++ textureColor = shaderTexture.Sample(SampleType, In.Texture);\ ++ return textureColor;\ ++ }\ ++"; ++ ++static int Open(vlc_object_t *object) ++{ ++ vout_display_t *vd = (vout_display_t *)object; ++ vout_display_sys_t *sys; ++ ++ OSVERSIONINFO winVer; ++ winVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); ++ if((GetVersionEx(&winVer) && !object->b_force) ++ && ((winVer.dwMajorVersion > 5 && winVer.dwMinorVersion < 1 ) ++ || (winVer.dwMajorVersion < 6))) ++ // minor versions since Windows 7 are all above 0 ++ return VLC_EGENERIC; ++ ++ vd->sys = sys = calloc(1, sizeof(vout_display_sys_t)); ++ if (!sys) ++ return VLC_ENOMEM; ++ ++ if (Direct3D11Create(vd)) { ++ msg_Err(vd, "Direct3D11 could not be initialized"); ++ Direct3D11Destroy(vd); ++ free(sys); ++ return VLC_EGENERIC; ++ } ++ ++ sys->use_desktop = var_CreateGetBool(vd, "video-wallpaper"); ++ sys->reset_device = false; ++ sys->reopen_device = false; ++ sys->lost_not_ready = false; ++ sys->allow_hw_yuv = var_CreateGetBool(vd, "directx-hw-yuv"); ++ sys->desktop_save.is_fullscreen = vd->cfg->is_fullscreen; ++ sys->desktop_save.is_on_top = false; ++ sys->desktop_save.win.left = var_InheritInteger(vd, "video-x"); ++ sys->desktop_save.win.right = vd->cfg->display.width; ++ sys->desktop_save.win.top = var_InheritInteger(vd, "video-y"); ++ sys->desktop_save.win.bottom = vd->cfg->display.height; ++ ++ if (CommonInit(vd)) ++ goto error; ++ ++ video_format_t fmt; ++ if (Direct3D11Open(vd, &fmt)) { ++ msg_Err(vd, "Direct3D11 could not be opened"); ++ goto error; ++ } ++ ++ vout_display_info_t info = vd->info; ++ info.is_slow = true; ++ info.has_double_click = true; ++ info.has_hide_mouse = false; ++ info.has_pictures_invalid = true; ++ info.has_event_thread = true; ++ ++ // TODO : subtitle support ++ info.subpicture_chromas = NULL; ++ ++ vlc_mutex_init(&sys->lock); ++ sys->ch_desktop = false; ++ sys->desktop_requested = sys->use_desktop; ++ ++ vlc_value_t val; ++ val.psz_string = _("Desktop"); ++ var_Change(vd, "video-wallpaper", VLC_VAR_SETTEXT, &val, NULL); ++ var_AddCallback(vd, "video-wallpaper", DesktopCallback, NULL); ++ ++ video_format_Clean(&vd->fmt); ++ video_format_Copy(&vd->fmt, &fmt); ++ vd->info = info; ++ ++ vd->pool = Pool; ++ vd->prepare = NULL; ++ vd->display = Display; ++ vd->control = CommonControl; ++ vd->manage = Manage; ++ ++ if (sys->use_desktop && vd->cfg->is_fullscreen) ++ vout_display_SendEventFullscreen(vd, false); ++ ++ msg_Dbg(vd, "Direct3D11 Open Succeeded"); ++ ++ return VLC_SUCCESS; ++error: ++ Direct3D11Close(vd); ++ CommonClean(vd); ++ Direct3D11Destroy(vd); ++ free(vd->sys); ++ return VLC_EGENERIC; ++} ++ ++static void Close(vlc_object_t *object) ++{ ++ vout_display_t * vd = (vout_display_t *)object; ++ ++ var_DelCallback(vd, "video-wallpaper", DesktopCallback, NULL); ++ vlc_mutex_destroy(&vd->sys->lock); ++ ++ Direct3D11Close(vd); ++ CommonClean(vd); ++ Direct3D11Destroy(vd); ++ free(vd->sys); ++} ++ ++static picture_pool_t *Pool(vout_display_t *vd, unsigned count) ++{ ++ VLC_UNUSED(count); ++ return vd->sys->pool; ++} ++ ++static void Display(vout_display_t *vd, picture_t *picture, subpicture_t *subpicture) ++{ ++ vout_display_sys_t *sys = vd->sys; ++ ++ if (sys->lost_not_ready) { ++ picture_Release(picture); ++ if (subpicture) ++ subpicture_Delete(subpicture); ++ return; ++ } ++ ++ //float ClearColor[4] = { 1.0f, 0.125f, 0.3f, 1.0f }; // red,green,blue,alpha ++ //ID3D11DeviceContext_ClearRenderTargetView(sys->d3dcontext,sys->d3drenderTargetView, ClearColor ); ++ ID3D11DeviceContext_ClearDepthStencilView(sys->d3dcontext,sys->d3ddepthStencilView, D3D11_CLEAR_DEPTH, 1.0f, 0); ++ // Render the quad ++ ID3D11DeviceContext_VSSetShader(sys->d3dcontext, sys->d3dvertexShader, NULL, 0); ++ ID3D11DeviceContext_PSSetShader(sys->d3dcontext, sys->d3dpixelShader, NULL, 0); ++ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 0, 1, &sys->d3dResView); ++ ID3D11DeviceContext_PSSetSamplers(sys->d3dcontext, 0, 1, &sys->d3dSampState); ++ ID3D11DeviceContext_DrawIndexed(sys->d3dcontext, 6, 0, 0); ++ IDXGISwapChain_Present(sys->dxgi_swapChain, 0, 0); ++ ++ picture_Release(picture); ++ if (subpicture) ++ subpicture_Delete(subpicture); ++ ++ CommonDisplay(vd); ++} ++ ++static void Manage (vout_display_t *vd) ++{ ++ vout_display_sys_t *sys = vd->sys; ++ ++ CommonManage(vd); ++ ++ vlc_mutex_lock(&sys->lock); ++ const bool ch_desktop = sys->ch_desktop; ++ sys->ch_desktop = false; ++ vlc_mutex_unlock(&sys->lock); ++ ++ if (ch_desktop) { ++ sys->reopen_device = true; ++ vout_display_SendEventPicturesInvalid(vd); ++ } ++} ++ ++static HINSTANCE Direct3D11LoadShaderLibrary(void) ++{ ++ HINSTANCE instance = NULL; ++ //d3dcompiler_47 is the latest on windows 8.1 ++ for (int i = 47; i > 23; --i) { ++ TCHAR filename[18]; ++ _sntprintf(filename, 18, TEXT("d3dcompiler_%d.dll"), i); ++ instance = LoadLibrary(filename); ++ if (instance) break; ++ } ++ return instance; ++} ++ ++static int Direct3D11Create(vout_display_t *vd) ++{ ++ vout_display_sys_t *sys = vd->sys; ++ ++ sys->hd3d11_dll = LoadLibrary(TEXT("D3D11.DLL")); ++ if (!sys->hd3d11_dll) { ++ msg_Warn(vd, "cannot load d3d11.dll, aborting"); ++ return VLC_EGENERIC; ++ } ++ ++ sys->hdxgi_dll = LoadLibrary(TEXT("DXGI.DLL")); ++ if (!sys->hdxgi_dll) { ++ msg_Warn(vd, "cannot load dxgi.dll, aborting"); ++ return VLC_EGENERIC; ++ } ++ ++ sys->hd3dcompiler_dll = Direct3D11LoadShaderLibrary(); ++ if (!sys->hd3dcompiler_dll) { ++ msg_Err(vd, "cannot load d3dcompiler.dll, aborting"); ++ return VLC_EGENERIC; ++ } ++ ++ sys->OurD3DCompile = (void *)GetProcAddress(sys->hd3dcompiler_dll, "D3DCompile"); ++ if (!sys->OurD3DCompile) { ++ msg_Err(vd, "Cannot locate reference to D3DCompile in d3dcompiler DLL"); ++ return VLC_EGENERIC; ++ } ++ ++#if 0 ++ ++ // TODO : enable all dxgi versions from 1.3 -> 1.1 ++ PFN_CREATE_DXGI_FACTORY OurCreateDXGIFactory = ++ (void *)GetProcAddress(sys->hdxgi_dll, "CreateDXGIFactory"); ++ if (!OurCreateDXGIFactory) { ++ msg_Err(vd, "Cannot locate reference to CreateDXGIFactory in dxgi DLL"); ++ return VLC_EGENERIC; ++ } ++ ++ // TODO : detect the directx version supported and use IID_IDXGIFactory3 or 2 ++ HRESULT hr = OurCreateDXGIFactory(&IID_IDXGIFactory, (void **)&sys->dxgi_factory); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not create dxgi factory. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ sys->OurD3D11CreateDeviceAndSwapChain = ++ (void *)GetProcAddress(sys->hd3d11_dll, "D3D11CreateDeviceAndSwapChain"); ++ if (!sys->OurD3D11CreateDeviceAndSwapChain) { ++ msg_Err(vd, "Cannot locate reference to D3D11CreateDeviceAndSwapChain in d3d11 DLL"); ++ return VLC_EGENERIC; ++ } ++ ++#else ++ ++ sys->OurD3D11CreateDevice = ++ (void *)GetProcAddress(sys->hd3d11_dll, "D3D11CreateDevice"); ++ if (!sys->OurD3D11CreateDevice) { ++ msg_Err(vd, "Cannot locate reference to D3D11CreateDevice in d3d11 DLL"); ++ return VLC_EGENERIC; ++ } ++ ++#endif ++ ++ return VLC_SUCCESS; ++} ++ ++ ++static void Direct3D11Destroy(vout_display_t *vd) ++{ ++ vout_display_sys_t *sys = vd->sys; ++ ++ if (sys->hdxgi_dll) ++ FreeLibrary(sys->hdxgi_dll); ++ if (sys->hd3d11_dll) ++ FreeLibrary(sys->hd3d11_dll); ++ if (sys->hd3dcompiler_dll) ++ FreeLibrary(sys->hd3dcompiler_dll); ++ ++ // TODO : add release of d3d11 objects here ++ ++ sys->OurD3D11CreateDevice = NULL; ++ sys->OurD3D11CreateDeviceAndSwapChain = NULL; ++ sys->OurD3DCompile = NULL; ++ sys->hdxgi_dll = NULL; ++ sys->hd3d11_dll = NULL; ++ sys->hd3dcompiler_dll = NULL; ++} ++ ++static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) ++{ ++ vout_display_sys_t *sys = vd->sys; ++ UINT creationFlags = 0; ++ HRESULT hr = S_OK; ++ UINT driver = 0; ++ ++ *fmt = vd->source; ++ ++ static const D3D_DRIVER_TYPE driverAttempts[] = { ++ D3D_DRIVER_TYPE_HARDWARE, ++ D3D_DRIVER_TYPE_WARP, ++ D3D_DRIVER_TYPE_REFERENCE, ++ }; ++ ++ /* we use the newest version available to us */ ++ static const D3D_FEATURE_LEVEL featureLevels[] = ++ { ++ D3D_FEATURE_LEVEL_11_1, ++ D3D_FEATURE_LEVEL_11_0, ++ D3D_FEATURE_LEVEL_10_1, ++ D3D_FEATURE_LEVEL_10_0, ++ D3D_FEATURE_LEVEL_9_3, ++ D3D_FEATURE_LEVEL_9_2, ++ D3D_FEATURE_LEVEL_9_1 ++ }; ++ ++#ifndef NDEBUG ++ creationFlags |= D3D11_CREATE_DEVICE_DEBUG; ++#endif ++ ++ DXGI_SWAP_CHAIN_DESC scd; ++ memset(&scd, 0, sizeof(scd)); ++ ++ scd.BufferCount = 1; ++ scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; ++ scd.OutputWindow = sys->hvideownd; ++ scd.SampleDesc.Count = 1; ++ scd.SampleDesc.Quality = 0; ++ scd.Windowed = TRUE; ++ scd.BufferDesc.Width = fmt->i_visible_width * 2; ++ scd.BufferDesc.Height = fmt->i_visible_height; ++ scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; ++ ++#if 0 ++ ++ // TODO : list adapters for the user to choose from ++ hr = IDXGIFactory_EnumAdapters(sys->dxgi_factory, 0, &sys->dxgi_adapter); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not create find factory. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ IDXGIOutput* output; ++ hr = IDXGIAdapter_EnumOutputs(sys->dxgi_adapter, 0, &output); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not Enumerate DXGI Outputs. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ DXGI_MODE_DESC md; ++ memset(&md, 0, sizeof(md)); ++ md.Width = fmt->i_visible_width * 2; ++ md.Height = fmt->i_visible_height; ++ md.Format = scd.BufferDesc.Format; ++ md.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; ++ ++ hr = IDXGIOutput_FindClosestMatchingMode(output, &md, &scd.BufferDesc, NULL); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Failed to find a supported video mode. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ //mode desc doesn't carry over the width and height ++ scd.BufferDesc.Width = fmt->i_visible_width * 2; ++ scd.BufferDesc.Height = fmt->i_visible_height; ++ ++ hr = sys->OurD3D11CreateDeviceAndSwapChain(sys->dxgi_adapter, ++ D3D_DRIVER_TYPE_UNKNOWN, NULL, creationFlags, ++ featureLevels, ARRAYSIZE(featureLevels), ++ D3D11_SDK_VERSION, &scd, &sys->dxgi_swapChain, ++ &sys->d3ddevice, &sys->d3dfeaturelevel, &sys->d3dcontext); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not Create the D3D11 device and SwapChain. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++#else ++ ++ for (driver = 0; driver < ARRAYSIZE(driverAttempts); driver++) { ++ hr = sys->OurD3D11CreateDevice(NULL, driverAttempts[driver], NULL, creationFlags, ++ featureLevels, ARRAYSIZE(featureLevels), D3D11_SDK_VERSION, ++ &sys->d3ddevice, &sys->d3dfeaturelevel, &sys->d3dcontext); ++ if (SUCCEEDED(hr)) break; ++ } ++ ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not Create the D3D11 device. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ IDXGIDevice *pDXGIDevice = NULL; ++ hr = ID3D11Device_QueryInterface(sys->d3ddevice, &IID_IDXGIDevice, (void **)&pDXGIDevice); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not Query DXGI Interface. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ hr = IDXGIDevice_GetAdapter(pDXGIDevice, &sys->dxgi_adapter); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not get the DXGI Adapter. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ hr = IDXGIAdapter_GetParent(sys->dxgi_adapter, &IID_IDXGIFactory, (void**)&sys->dxgi_factory); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not get the DXGI Factory. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ hr = IDXGIFactory_CreateSwapChain(sys->dxgi_factory, (IUnknown*)sys->d3ddevice, &scd, &sys->dxgi_swapChain); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not create the SwapChain. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++#endif ++ ++ UpdateRects(vd, NULL, NULL, true); ++ ++ if (Direct3D11CreateResources(vd, fmt)) { ++ msg_Err(vd, "Failed to allocate resources"); ++ Direct3D11DestroyResources(vd); ++ return VLC_EGENERIC; ++ } ++ ++ EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct3D11 output)"); ++ ++ msg_Dbg(vd, "Direct3D11 device adapter successfully initialized"); ++ return VLC_SUCCESS; ++} ++ ++static void Direct3D11Close(vout_display_t *vd) ++{ ++ vout_display_sys_t *sys = vd->sys; ++ ++ Direct3D11DestroyResources(vd); ++ ID3D11Device_Release(sys->d3ddevice); ++ msg_Dbg(vd, "Direct3D11 device adapter closed"); ++} ++ ++// add goto error in resources ++static int Direct3D11CreateResources(vout_display_t *vd, video_format_t *fmt) ++{ ++ vout_display_sys_t *sys = vd->sys; ++ ID3D11Texture2D* pBackBuffer = NULL; ++ ID3D11Texture2D* pDepthStencil= NULL; ++ HRESULT hr; ++ ++ fmt->i_chroma = VLC_CODEC_RGBA; ++ ++ hr = IDXGISwapChain_GetBuffer(sys->dxgi_swapChain, 0, &IID_ID3D11Texture2D, (LPVOID*)&pBackBuffer); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not get the backbuffer from the Swapchain. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ hr = ID3D11Device_CreateRenderTargetView(sys->d3ddevice, (ID3D11Resource *)pBackBuffer, NULL, &sys->d3drenderTargetView); ++ ++ ID3D11Texture2D_Release(pBackBuffer); ++ ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not create the render view target. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ D3D11_TEXTURE2D_DESC deptTexDesc; ++ memset(&deptTexDesc, 0,sizeof(deptTexDesc)); ++ deptTexDesc.ArraySize = 1; ++ deptTexDesc.BindFlags = D3D11_BIND_DEPTH_STENCIL; ++ deptTexDesc.CPUAccessFlags = 0; ++ deptTexDesc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; ++ deptTexDesc.Width = fmt->i_visible_width * 2; ++ deptTexDesc.Height = fmt->i_visible_height; ++ deptTexDesc.MipLevels = 1; ++ deptTexDesc.MiscFlags = 0; ++ deptTexDesc.SampleDesc.Count = 1; ++ deptTexDesc.SampleDesc.Quality = 0; ++ deptTexDesc.Usage = D3D11_USAGE_DEFAULT; ++ ++ hr = ID3D11Device_CreateTexture2D(sys->d3ddevice, &deptTexDesc, NULL, &pDepthStencil); ++ ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not create the depth stencil texture. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ D3D11_DEPTH_STENCIL_VIEW_DESC depthViewDesc; ++ memset(&depthViewDesc, 0, sizeof(depthViewDesc)); ++ ++ depthViewDesc.Format = deptTexDesc.Format; ++ depthViewDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; ++ depthViewDesc.Texture2D.MipSlice = 0; ++ ++ hr = ID3D11Device_CreateDepthStencilView(sys->d3ddevice, (ID3D11Resource*)pDepthStencil, &depthViewDesc, &sys->d3ddepthStencilView); ++ ++ ID3D11Texture2D_Release(pDepthStencil); ++ ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not create the depth stencil view. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ ID3D11DeviceContext_OMSetRenderTargets(sys->d3dcontext, 1, &sys->d3drenderTargetView, sys->d3ddepthStencilView); ++ ++ D3D11_VIEWPORT vp; ++ vp.Width = (FLOAT)fmt->i_visible_width * 2 * 2; //not sure why it needs to be doubled ++ vp.Height = (FLOAT)fmt->i_visible_height; ++ vp.MinDepth = 0.0f; ++ vp.MaxDepth = 1.0f; ++ vp.TopLeftX = 0; ++ vp.TopLeftY = 0; ++ ++ ID3D11DeviceContext_RSSetViewports(sys->d3dcontext, 1, &vp ); ++ ++ ID3DBlob* pVSBlob = NULL; ++ ++ // TODO : Match the version to the D3D_FEATURE_LEVEL ++ hr = sys->OurD3DCompile(globShader, strlen(globShader), NULL, NULL, NULL, "VS", "vs_5_0", 0, 0, &pVSBlob, NULL); ++ if( FAILED(hr)) { ++ msg_Err(vd, "The Vertex Shader is invalid."); ++ return VLC_EGENERIC; ++ } ++ ++ hr = ID3D11Device_CreateVertexShader(sys->d3ddevice, (void *)ID3D10Blob_GetBufferPointer(pVSBlob), ID3D10Blob_GetBufferSize(pVSBlob), NULL, &sys->d3dvertexShader); ++ ++ if(FAILED(hr)) { ++ ID3D11Device_Release(pVSBlob); ++ msg_Err(vd, "Failed to create the vertex shader."); ++ return VLC_EGENERIC; ++ } ++ ++ D3D11_INPUT_ELEMENT_DESC layout[] = { ++ { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0}, ++ { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0}, ++ }; ++ ++ ID3D11InputLayout* pVertexLayout = NULL; ++ hr = ID3D11Device_CreateInputLayout(sys->d3ddevice, layout, 2, (void *)ID3D10Blob_GetBufferPointer(pVSBlob), ++ ID3D10Blob_GetBufferSize(pVSBlob), &pVertexLayout ); ++ ++ ID3D10Blob_Release(pVSBlob); ++ ++ if(FAILED(hr)) { ++ msg_Err(vd, "Failed to create the vertex input layout"); ++ return VLC_EGENERIC; ++ } ++ ++ ID3D11DeviceContext_IASetInputLayout(sys->d3dcontext, pVertexLayout ); ++ ++ ID3DBlob* pPSBlob = NULL; ++ // TODO : Match the version to the D3D_FEATURE_LEVEL ++ hr = sys->OurD3DCompile(globShader, strlen(globShader), NULL, NULL, NULL, "PS", "ps_5_0", 0, 0, &pPSBlob, NULL); ++ ++ if( FAILED(hr)) { ++ msg_Err(vd, "The Pixel Shader is invalid."); ++ return VLC_EGENERIC; ++ } ++ ++ hr = ID3D11Device_CreatePixelShader(sys->d3ddevice, (void *)ID3D10Blob_GetBufferPointer(pPSBlob), ID3D10Blob_GetBufferSize(pPSBlob), NULL, &sys->d3dpixelShader); ++ ++ ID3D10Blob_Release(pPSBlob); ++ ++ if(FAILED(hr)) { ++ msg_Err(vd, "Failed to create the pixel shader."); ++ return VLC_EGENERIC; ++ } ++ ++ float vertices[] = { ++ -1.0f, -1.0f, -1.0f, 0.0f, 1.0f, ++ 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, ++ 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, ++ -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, ++ }; ++ ++ D3D11_BUFFER_DESC bd; ++ memset(&bd, 0, sizeof(bd)); ++ bd.Usage = D3D11_USAGE_DEFAULT; ++ bd.ByteWidth = sizeof(float) * 5 * 4; ++ bd.BindFlags = D3D11_BIND_VERTEX_BUFFER; ++ bd.CPUAccessFlags = 0; ++ ++ D3D11_SUBRESOURCE_DATA InitData; ++ memset(&InitData, 0, sizeof(InitData)); ++ InitData.pSysMem = vertices; ++ ++ ID3D11Buffer* pVertexBuffer = NULL; ++ hr = ID3D11Device_CreateBuffer(sys->d3ddevice, &bd, &InitData, &pVertexBuffer ); ++ ++ if(FAILED(hr)) { ++ msg_Err(vd, "Failed to create vertex buffer."); ++ return VLC_EGENERIC; ++ } ++ ++ UINT stride = sizeof(float) * 5; ++ UINT offset = 0; ++ ID3D11DeviceContext_IASetVertexBuffers(sys->d3dcontext, 0, 1, &pVertexBuffer, &stride, &offset); ++ ++ ID3D11Buffer_Release(pVertexBuffer); ++ ++ WORD indices[] = { ++ 3, 1, 0, ++ 2, 1, 3, ++ }; ++ ++ bd.Usage = D3D11_USAGE_DEFAULT; ++ bd.ByteWidth = sizeof( WORD ) * 6; ++ bd.BindFlags = D3D11_BIND_INDEX_BUFFER; ++ bd.CPUAccessFlags = 0; ++ InitData.pSysMem = indices; ++ ++ ID3D11Buffer* pIndexBuffer = NULL; ++ hr = ID3D11Device_CreateBuffer(sys->d3ddevice, &bd, &InitData, &pIndexBuffer ); ++ if(FAILED(hr)) { ++ msg_Err(vd, "Failed to create index buffer."); ++ return VLC_EGENERIC; ++ } ++ ++ ID3D11DeviceContext_IASetIndexBuffer(sys->d3dcontext, pIndexBuffer, DXGI_FORMAT_R16_UINT, 0 ); ++ ++ ID3D11Buffer_Release(pVertexBuffer); ++ ++ ID3D11DeviceContext_IASetPrimitiveTopology(sys->d3dcontext, D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); ++ ++ sys->d3dregion_format = DXGI_FORMAT_R8G8B8A8_UNORM; ++ ++ D3D11_TEXTURE2D_DESC texDesc; ++ memset(&texDesc, 0, sizeof(texDesc)); ++ texDesc.Width = fmt->i_visible_width * 2; ++ texDesc.Height = fmt->i_visible_height; ++ texDesc.MipLevels = texDesc.ArraySize = 1; ++ texDesc.Format = sys->d3dregion_format; ++ texDesc.SampleDesc.Count = 1; ++ texDesc.Usage = D3D11_USAGE_DYNAMIC; ++ texDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE; ++ texDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; ++ texDesc.MiscFlags = 0; ++ ++ hr = ID3D11Device_CreateTexture2D(sys->d3ddevice, &texDesc, NULL, &sys->d3dtexture); ++ ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not Create the D3d11 Texture. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ D3D11_SHADER_RESOURCE_VIEW_DESC resviewDesc; ++ memset(&resviewDesc, 0, sizeof(resviewDesc)); ++ resviewDesc.Format = texDesc.Format; ++ resviewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; ++ resviewDesc.Texture2D.MipLevels = texDesc.MipLevels; ++ ++ hr = ID3D11Device_CreateShaderResourceView(sys->d3ddevice, (ID3D11Resource *)sys->d3dtexture, &resviewDesc, &sys->d3dResView); ++ ++ if (FAILED(hr)) { ++ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); ++ msg_Err(vd, "Could not Create the D3d11 Texture ResoureView. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ D3D11_SAMPLER_DESC sampDesc; ++ memset(&sampDesc, 0, sizeof(sampDesc)); ++ sampDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_POINT; ++ sampDesc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP; ++ sampDesc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP; ++ sampDesc.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP; ++ sampDesc.ComparisonFunc = D3D11_COMPARISON_NEVER; ++ sampDesc.MinLOD = 0; ++ sampDesc.MaxLOD = D3D11_FLOAT32_MAX; ++ ++ hr = ID3D11Device_CreateSamplerState(sys->d3ddevice, &sampDesc, &sys->d3dSampState); ++ ++ if (FAILED(hr)) { ++ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); ++ msg_Err(vd, "Could not Create the D3d11 Sampler State. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ picture_sys_t *picsys = malloc(sizeof(*picsys)); ++ if (unlikely(picsys == NULL)) { ++ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); ++ return VLC_ENOMEM; ++ } ++ ++ picsys->surface = sys->d3dtexture; ++ picsys->context = sys->d3dcontext; ++ picsys->fallback = NULL; ++ picsys->pitch = fmt->i_visible_width * 2 * 4; ++ ++ picture_resource_t resource = { .p_sys = picsys }; ++ for (int i = 0; i < PICTURE_PLANE_MAX; i++) ++ resource.p[i].i_lines = fmt->i_visible_height / (i > 0 ? 2 : 1); ++ ++ picture_t *picture = picture_NewFromResource(fmt, &resource); ++ if (!picture) { ++ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); ++ free(picsys); ++ return VLC_ENOMEM; ++ } ++ sys->picsys = picsys; ++ ++ picture_pool_configuration_t pool_cfg; ++ memset(&pool_cfg, 0, sizeof(pool_cfg)); ++ pool_cfg.picture_count = 1; ++ pool_cfg.picture = &picture; ++ pool_cfg.lock = Direct3D11MapSurface; ++ ++ sys->pool = picture_pool_NewExtended(&pool_cfg); ++ if (!sys->pool) { ++ picture_Release(picture); ++ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); ++ return VLC_ENOMEM; ++ } ++ ++ msg_Dbg(vd, "Direct3D11 resources created"); ++ return VLC_SUCCESS; ++} ++ ++static void Direct3D11DestroyResources(vout_display_t *vd) ++{ ++ vout_display_sys_t *sys = vd->sys; ++ ++ if (sys->pool) { ++ picture_sys_t *picsys = sys->picsys; ++ ID3D11Texture2D_Release(picsys->surface); ++ if (picsys->fallback) ++ picture_Release(picsys->fallback); ++ picture_pool_Release(sys->pool); ++ } ++ sys->pool = NULL; ++ ++ msg_Dbg(vd, "Direct3D11 resources destroyed"); ++} ++ ++static int Direct3D11MapSurface(picture_t *picture) ++{ ++ D3D11_MAPPED_SUBRESOURCE mappedResource; ++ ID3D11DeviceContext_Map(picture->p_sys->context, (ID3D11Resource*)picture->p_sys->surface, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); ++ CommonUpdatePicture(picture, NULL, mappedResource.pData, picture->p_sys->pitch); ++ ID3D11DeviceContext_Unmap(picture->p_sys->context,(ID3D11Resource*)picture->p_sys->surface, 0); ++ return VLC_SUCCESS; ++} ++ ++static int DesktopCallback(vlc_object_t *object, char const *psz_cmd, ++ vlc_value_t oldval, vlc_value_t newval, ++ void *p_data) ++{ ++ vout_display_t *vd = (vout_display_t *)object; ++ vout_display_sys_t *sys = vd->sys; ++ VLC_UNUSED(psz_cmd); ++ VLC_UNUSED(oldval); ++ VLC_UNUSED(p_data); ++ ++ vlc_mutex_lock(&sys->lock); ++ const bool ch_desktop = !sys->desktop_requested != !newval.b_bool; ++ sys->ch_desktop |= ch_desktop; ++ sys->desktop_requested = newval.b_bool; ++ vlc_mutex_unlock(&sys->lock); ++ return VLC_SUCCESS; ++} +diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c +index 866b279..cd005d8 100644 +--- a/modules/video_output/msw/events.c ++++ b/modules/video_output/msw/events.c +@@ -620,7 +620,7 @@ static void MouseReleased( event_thread_t *p_event, unsigned button ) + vout_display_SendEventMouseReleased( p_event->vd, button ); + } + +-#ifdef MODULE_NAME_IS_direct3d9 ++#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) + static int CALLBACK + enumWindowsProc(HWND hwnd, LPARAM lParam) + { +@@ -681,7 +681,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event ) + /* Get this module's instance */ + hInstance = GetModuleHandle(NULL); + +- #ifdef MODULE_NAME_IS_direct3d9 ++ #if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) + if( !p_event->use_desktop ) + #endif + { +@@ -692,7 +692,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event ) + else + p_event->hparent = NULL; + } +- #ifdef MODULE_NAME_IS_direct3d9 ++ #if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) + else + { + vout_display_DeleteWindow(vd, NULL); +@@ -865,14 +865,14 @@ static void Win32VoutCloseWindow( event_thread_t *p_event ) + vout_display_t *vd = p_event->vd; + msg_Dbg( vd, "Win32VoutCloseWindow" ); + +- #ifdef MODULE_NAME_IS_direct3d9 ++ #if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) + DestroyWindow( p_event->hvideownd ); + #endif + DestroyWindow( p_event->hwnd ); + if( p_event->hfswnd ) + DestroyWindow( p_event->hfswnd ); + +- #ifdef MODULE_NAME_IS_direct3d9 ++ #if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) + if( !p_event->use_desktop ) + #endif + vout_display_DeleteWindow( vd, p_event->parent_window ); +-- +2.3.0 + diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 45420b7097..ddc6bb5b99 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.59276.be0c8c6 +pkgver=3.0.0.59855.ab2ba6e pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -67,13 +67,15 @@ depends=("${MINGW_PACKAGE_PREFIX}-a52dec" #"${MINGW_PACKAGE_PREFIX}-zvbi" #"${MINGW_PACKAGE_PREFIX}-libupnp" #"${MINGW_PACKAGE_PREFIX}-libtar" - ) makedepends=( "${MINGW_PACKAGE_PREFIX}-gcc" "pkg-config" "${MINGW_PACKAGE_PREFIX}-ncurses" "git" + "autoconf" + "automake" + "libtool" # 'libkate' # 'live-media' # 'libnotify' @@ -115,17 +117,21 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re 0004-pollfd-is-defined-from-Vista-onwards.patch 0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch 0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch - 0007-pollfd-is-defined-from-Vista-onwards.patch - 0008-Use-libdir-for-plugins-on-msys2.patch) + 0007-Use-libdir-for-plugins-on-msys2.patch + 0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch + 0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch + 0010-d3d11-vout-plugin.patch) md5sums=('SKIP' 'c2a4338d8c9396054c1ed45fae221470' '13f5a8bf897b253e0d9626a5ae79bc8d' 'c53c41b440eb42e7a2cda9109a1651c4' '190af6f6e66b786bc481e2be0bde664c' '8cd35991a69b14a1c3ab3b6faa9f15bc' - 'de3700133876d218460f4b0ec6779f55' - '5b8f11f077663c5dd18c9905dcef08ea' - 'b6a010849631177493135b3ad7c5f784') + '78b89fead94d41539dd3a8845e70cadb' + 'b6a010849631177493135b3ad7c5f784' + 'dc623f31cffed63092b192b24ab86f0d' + '298500eb00df672e5088c15a2822792b' + 'cc3344399325f45d0e9f0efe45406c8c') pkgver() { cd $_realname @@ -146,13 +152,16 @@ prepare() { git am "${srcdir}"/0004-pollfd-is-defined-from-Vista-onwards.patch git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch git am "${srcdir}"/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch - #git am "${srcdir}"/0007-pollfd-is-defined-from-Vista-onwards.patch + git am "${srcdir}"/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch if [ "${_variant}" != "winrt" ]; then - git am "${srcdir}"/0008-Use-libdir-for-plugins-on-msys2.patch + git am "${srcdir}"/0007-Use-libdir-for-plugins-on-msys2.patch fi + git am "${srcdir}"/0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch + git am "${srcdir}"/0010-d3d11-vout-plugin.patch + ./bootstrap sed -i -e 's:truetype/freefont:TTF:g' modules/text_renderer/freetype.c From 14143e441bffe1d92ed3e3041d1462125b9c12e3 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 20 Feb 2015 22:49:49 +0000 Subject: [PATCH 0557/2060] python3: Update 0530-mingw-system-libffi.patch As part of the initial import of cross-python on github I'm reviewing these patches. This one had some problems: 1. It used pkg-config to detect libffi in PKGBUILD and removed those same pkg-config checks from configure.ac 2. It skipped a test (aggregate-return-type) that is now fine: https://github.com/xianyi/OpenBLAS/wiki/How-to-use-OpenBLAS-in-Microsoft-Visual-Studio 3. It tested if host_platform was 'mingw' instead of 'win32', despite the idea of using 'mingw' for sys.platform having died long ago. --- .../0530-mingw-system-libffi.patch | 131 ++++-------------- mingw-w64-python3/PKGBUILD | 7 +- 2 files changed, 31 insertions(+), 107 deletions(-) diff --git a/mingw-w64-python3/0530-mingw-system-libffi.patch b/mingw-w64-python3/0530-mingw-system-libffi.patch index 61814599b1..4d5b8a628a 100644 --- a/mingw-w64-python3/0530-mingw-system-libffi.patch +++ b/mingw-w64-python3/0530-mingw-system-libffi.patch @@ -1,82 +1,21 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:21:22.670462400 +0100 -+++ b/configure.ac 2014-10-11 14:21:25.420619700 +0100 -@@ -2533,14 +2533,32 @@ - [], - [with_system_ffi="no"]) - --if test "$with_system_ffi" = "yes" && test -n "$PKG_CONFIG"; then -- LIBFFI_INCLUDEDIR="`"$PKG_CONFIG" libffi --cflags-only-I 2>/dev/null | sed -e 's/^-I//;s/ *$//'`" -+if test "$with_system_ffi" = "yes"; then -+ LIBFFI_INCLUDEDIR="$LIBFFI_INCLUDEDIR" -+fi -+AC_MSG_RESULT($with_system_ffi) -+ -+ac_previous_cppflags=$CPPFLAGS -+CPPFLAGS="-I$LIBFFI_INCLUDEDIR" -+ac_previous_ldflags=$LDFLAGS -+# check for ffi.h -+AC_CHECK_HEADER(ffi.h, [ -+ AC_DEFINE(WITH_SYSTEM_LIBFFI, 1, -+ [Define if we have external libffi.]) -+ ffi_h="yes" -+], -+ffi_h="no" -+) -+if test "$ffi_h" = "yes"; then -+ LIBFFI_INCLUDEDIR="$LIBFFI_INCLUDEDIR" - else - LIBFFI_INCLUDEDIR="" - fi -+CPPFLAGS=$ac_previous_cppflags -+LDFLAGS=$ac_previous_ldflags - AC_SUBST(LIBFFI_INCLUDEDIR) - --AC_MSG_RESULT($with_system_ffi) -+ - - # Check for use of the system libmpdec library - AC_MSG_CHECKING(for --with-system-libmpdec) -diff -urN a/Lib/ctypes/test/test_as_parameter.py b/Lib/ctypes/test/test_as_parameter.py ---- a/Lib/ctypes/test/test_as_parameter.py 2014-10-11 14:21:22.822471100 +0100 -+++ b/Lib/ctypes/test/test_as_parameter.py 2014-10-11 14:21:25.422619800 +0100 -@@ -2,6 +2,7 @@ - from ctypes import * - from ctypes.test import need_symbol - import _ctypes_test -+import sys - - dll = CDLL(_ctypes_test.__file__) - -@@ -169,6 +170,10 @@ - s2h = dll.ret_2h_func(self.wrap(inp)) - self.assertEqual((s2h.x, s2h.y), (99*2, 88*3)) - -+ # This is known cdecl incompatibility between GCC -+ # and MSVC. It is addressed in GCC issue #36834. -+ # Python libffi detect it and complain. -+ @unittest.skipIf(sys.platform == "win32" and sys.version.find("GCC") >= 0, 'XFAIL GCC(mingw)') - def test_struct_return_8H(self): - class S8I(Structure): - _fields_ = [("a", c_int), -diff -urN a/Lib/ctypes/test/test_functions.py b/Lib/ctypes/test/test_functions.py ---- a/Lib/ctypes/test/test_functions.py 2014-10-11 14:21:22.810470400 +0100 -+++ b/Lib/ctypes/test/test_functions.py 2014-10-11 14:21:25.424619900 +0100 -@@ -352,6 +352,10 @@ - s2h = windll.s_ret_2h_func(S2H(99, 88)) - self.assertEqual((s2h.x, s2h.y), (99*2, 88*3)) - -+ # This is known cdecl incompatibility between GCC -+ # and MSVC. It is addressed in GCC issue #36834. -+ # Python libffi detect it and complain. -+ @unittest.skipIf(sys.platform == "win32" and sys.version.find("GCC") >= 0, 'XFAIL GCC(mingw)') - def test_struct_return_8H(self): - class S8I(Structure): - _fields_ = [("a", c_int), -diff -urN a/Modules/_ctypes/libffi/fficonfig.py.in b/Modules/_ctypes/libffi/fficonfig.py.in ---- a/Modules/_ctypes/libffi/fficonfig.py.in 2014-10-11 14:21:23.544512400 +0100 -+++ b/Modules/_ctypes/libffi/fficonfig.py.in 2014-10-11 14:21:25.425619900 +0100 -@@ -23,6 +23,7 @@ +From 461aa7426a9f93bdfb3fb8f6e309ae2c379bbff4 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Fri, 20 Feb 2015 17:01:56 +0000 +Subject: [PATCH] mingw-w64: ctypes/ffi build fixes + +1. Prevent export of DllGetClassObject and DllCanUnloadNow in _ctypes import lib +2. Don't compile src/dlmalloc.c for Windows +3. Use forward slashes for ffi_{build,src}dir +--- + Modules/_ctypes/libffi/fficonfig.py.in | 4 ++++ + setup.py | 8 ++++++++ + 2 files changed, 12 insertions(+) + +diff --git a/Modules/_ctypes/libffi/fficonfig.py.in b/Modules/_ctypes/libffi/fficonfig.py.in +index d102498..0277c64 100644 +--- a/Modules/_ctypes/libffi/fficonfig.py.in ++++ b/Modules/_ctypes/libffi/fficonfig.py.in +@@ -23,6 +23,7 @@ ffi_platforms = { 'FRV': ['src/frv/eabi.S', 'src/frv/ffi.c'], 'S390': ['src/s390/sysv.S', 'src/s390/ffi.c'], 'X86_64': ['src/x86/ffi64.c', 'src/x86/unix64.S', 'src/x86/ffi.c', 'src/x86/sysv.S'], @@ -84,7 +23,7 @@ diff -urN a/Modules/_ctypes/libffi/fficonfig.py.in b/Modules/_ctypes/libffi/ffic 'SH': ['src/sh/sysv.S', 'src/sh/ffi.c'], 'SH64': ['src/sh64/sysv.S', 'src/sh64/ffi.c'], 'PA': ['src/pa/linux.S', 'src/pa/ffi.c'], -@@ -30,6 +31,9 @@ +@@ -30,6 +31,9 @@ ffi_platforms = { 'PA_HPUX': ['src/pa/hpux32.S', 'src/pa/ffi.c'], } @@ -94,42 +33,32 @@ diff -urN a/Modules/_ctypes/libffi/fficonfig.py.in b/Modules/_ctypes/libffi/ffic ffi_sources += ffi_platforms['@TARGET@'] ffi_cflags = '@CFLAGS@' -diff -urN a/pyconfig.h.in b/pyconfig.h.in ---- a/pyconfig.h.in 2014-10-11 14:21:23.287497700 +0100 -+++ b/pyconfig.h.in 2014-10-11 14:21:25.427620100 +0100 -@@ -1352,6 +1352,9 @@ - /* Define if you want to compile in Python-specific mallocs */ - #undef WITH_PYMALLOC - -+/* Define if we have external libffi. */ -+#undef WITH_SYSTEM_LIBFFI -+ - /* Define if you want to compile in rudimentary thread support */ - #undef WITH_THREAD - -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:21:22.671462400 +0100 -+++ b/setup.py 2014-10-11 14:21:25.428620100 +0100 -@@ -1880,6 +1880,11 @@ +diff --git a/setup.py b/setup.py +index 4622d11..5491b8b 100644 +--- a/setup.py ++++ b/setup.py +@@ -1880,6 +1880,10 @@ class PyBuildExt(build_ext): return True def configure_ctypes(self, ext): -+ if host_platform in ['mingw', 'win32']: ++ if host_platform == 'win32': + ext.libraries.extend(['ole32', 'oleaut32', 'uuid']) -+ #AdditionalOptions="/EXPORT:DllGetClassObject,PRIVATE /EXPORT:DllCanUnloadNow,PRIVATE" + ext.export_symbols.extend(['DllGetClassObject PRIVATE', + 'DllCanUnloadNow PRIVATE']) if not self.use_system_libffi: if host_platform == 'darwin': return self.configure_ctypes_darwin(ext) -@@ -1904,6 +1909,10 @@ +@@ -1904,6 +1908,10 @@ class PyBuildExt(build_ext): if not self.verbose: config_args.append("-q") -+ if host_platform in ['mingw', 'win32']: ++ if host_platform == 'win32': + table = str.maketrans('\\', '/') + ffi_builddir = ffi_builddir.translate(table) + ffi_srcdir = ffi_srcdir.translate(table) # Pass empty CFLAGS because we'll just append the resulting # CFLAGS to Python's; -g or -O2 is to be avoided. cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \ +-- +2.3.0 + diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index ed9228bdd3..5574926b4b 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -281,11 +281,6 @@ build() { _extra_config+=("--with-pydebug") fi - LIBFFI_INC=`${MINGW_PREFIX}/bin/pkg-config libffi --cflags-only-I | sed "s|\-I||g"` - pushd ${LIBFFI_INC} > /dev/null - export LIBFFI_INCLUDEDIR=`pwd -W` - popd > /dev/null - # Workaround for conftest error on 64-bit builds export ac_cv_working_tzset=no @@ -418,7 +413,7 @@ sha1sums=('0727d8a8498733baabe6f51632b9bab0cbaa9ada' '8d52a719d7bcb9b03dac6a28cd899a6d83f770bc' '3cc4985c4b73f60c29a45dded5e2a36ecf18364b' 'e514bb32094e62e811bf187ab451e719a522f2fe' - '00ff842554de6c2b4abd8ad7dc5adae62c982980' + 'efbdd52f48140207ef414150563406a214d4252e' '02652e5775dfa3966a09349169bc8c86d5e9a980' '2b81ea5b3f8f06c0ab0df9306ec57dab8410778c' '1892bb2df631f49485deae5a1ee8dbae5691beeb' From 524eb485f4f96dacf1c584aeec6bcb20628b1cc0 Mon Sep 17 00:00:00 2001 From: Josip Date: Sat, 21 Feb 2015 22:13:10 +0100 Subject: [PATCH 0558/2060] gexiv2: fix install of typelib and python overrides --- mingw-w64-gexiv2/001-win.patch | 28 ++++++++++++++++++++++++++-- mingw-w64-gexiv2/PKGBUILD | 4 ++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gexiv2/001-win.patch b/mingw-w64-gexiv2/001-win.patch index 15e6a94bfa..6141c6a74c 100644 --- a/mingw-w64-gexiv2/001-win.patch +++ b/mingw-w64-gexiv2/001-win.patch @@ -1,5 +1,29 @@ ---- ./Makefile.am.orig 2015-02-17 21:26:00.851063100 +0100 -+++ ./Makefile.am 2015-02-17 22:01:53.498641500 +0100 +--- ./configure.ac.orig 2014-09-17 00:09:05.000000000 +0200 ++++ ./configure.ac 2015-02-21 21:20:44.406810300 +0100 +@@ -122,7 +122,7 @@ + if test "x$enable_introspection" = "xyes"; then + # Used to determine where Python wants the .gi file to be installed ... + # if Python is not installed, PYTHON2 and PYTHON3 will be empty +- PYTHON="import gi; print(gi._overridesdir)" ++ PYTHON="import gi; from os.path import abspath; print(abspath(gi._overridesdir))" + PYTHON2_GIDIR=$(python2 -c "$PYTHON") + AC_MSG_RESULT([Python2 GObject Introspection directory: $PYTHON2_GIDIR]) + PYTHON3_GIDIR=$(python3 -c "$PYTHON") +--- ./Makefile.am.orig 2014-09-17 00:07:53.000000000 +0200 ++++ ./Makefile.am 2015-02-21 21:21:24.598425100 +0100 +@@ -4,9 +4,9 @@ + pkgconfigdir = $(libdir)/pkgconfig + GEXIV2_publicdir = $(includedir)/gexiv2 + girdir = $(datadir)/gir-1.0 +-typelibdir = `pkg-config gobject-introspection-no-export-1.0 --variable typelibdir` +-py2gidir = $(PYTHON2_GIDIR) +-py3gidir = $(PYTHON3_GIDIR) ++typelibdir = `pkg-config gobject-introspection-no-export-1.0 --variable typelibdir --dont-define-prefix` ++py2gidir = `cygpath -u $(PYTHON2_GIDIR)` ++py3gidir = `cygpath -u $(PYTHON3_GIDIR)` + vapidir = $(datadir)/vala/vapi + + # Extra package files. # @@ -130,7 +130,7 @@ g-ir-compiler --includedir=$(BUILD_DIR) -o $@ $< diff --git a/mingw-w64-gexiv2/PKGBUILD b/mingw-w64-gexiv2/PKGBUILD index f4dd54c79d..a627d3d3fa 100644 --- a/mingw-w64-gexiv2/PKGBUILD +++ b/mingw-w64-gexiv2/PKGBUILD @@ -3,7 +3,7 @@ _realname=gexiv2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.10.2 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="GObject-based wrapper around the Exiv2 library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" @@ -19,7 +19,7 @@ url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch) sha256sums=('2fd21f0ed5125e51d02226e7f41be751cfa8ae411a8ed1a651e16b06d79047b2' - '7cf45d8ee2c6e6766a8a13e192014877bcc1aa3eb091ebd99d28e0ef8bb8e166') + '1ba351119f9112ba649dd4397b712ee04d8327d5d056d3587f77c824f7846438') prepare() { cd ${_realname}-${pkgver} From 80a3bdb3128ec875f8d15985a417976f0d9a9df7 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 22 Feb 2015 11:35:53 +0100 Subject: [PATCH 0559/2060] gtk-vnc: updated to 0.5.4. --- mingw-w64-gtk-vnc/001-win.patch | 11 ++++++----- mingw-w64-gtk-vnc/PKGBUILD | 6 +++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/mingw-w64-gtk-vnc/001-win.patch b/mingw-w64-gtk-vnc/001-win.patch index 4451425588..8e52842cc5 100644 --- a/mingw-w64-gtk-vnc/001-win.patch +++ b/mingw-w64-gtk-vnc/001-win.patch @@ -1,9 +1,10 @@ ---- ./src/Makefile.am.orig 2014-12-04 21:27:36.942402300 +0100 -+++ ./src/Makefile.am 2014-12-04 21:27:53.303186300 +0100 -@@ -339,6 +339,8 @@ - - if WITH_GOBJECT_INTROSPECTION +--- ./src/Makefile.am.orig 2015-02-22 10:41:30.924804600 +0100 ++++ ./src/Makefile.am 2015-02-22 10:47:02.750957700 +0100 +@@ -353,6 +353,9 @@ + --includedir=$(srcdir) + if HAVE_INTROSPECTION ++ +INTROSPECTION_SCANNER_ENV = CC="$(CC)" + GVNC_INTROSPECTION_SRCS = \ diff --git a/mingw-w64-gtk-vnc/PKGBUILD b/mingw-w64-gtk-vnc/PKGBUILD index f6bfa5340b..bfcb14b425 100644 --- a/mingw-w64-gtk-vnc/PKGBUILD +++ b/mingw-w64-gtk-vnc/PKGBUILD @@ -2,7 +2,7 @@ _realname=gtk-vnc pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.5.3 +pkgver=0.5.4 pkgrel=1 arch=('any') pkgdesc="VNC viewer widget for GTK+ (mingw-w64)" @@ -21,8 +21,8 @@ license=("GPL 2") url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch) -sha256sums=('d490a6c8f40e550d43aef0043ce3bec498ec220d5eb3dc5cdcff8fd561149caf' - 'd814e61a679209b2100c350aa0c0a159196831586dd62286eb608c392f00e28b') +sha256sums=('488aa97a76ce6868160699cd45d4a0ee0fe6f0ad4631737c6ddd84450f6c9ce7' + '503b12e64f6d843fd018e00e3b3221511656d03905516a80a410d44a2deccd40') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 892d75b349eda4c381037bc11c81e154d422a48a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 22 Feb 2015 19:45:42 +0300 Subject: [PATCH 0560/2060] ogre3d-hg: Update to HG commit [1ea8087257eb] --- mingw-w64-ogre3d-hg/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ogre3d-hg/PKGBUILD b/mingw-w64-ogre3d-hg/PKGBUILD index b32b7c922c..c03b2322dc 100644 --- a/mingw-w64-ogre3d-hg/PKGBUILD +++ b/mingw-w64-ogre3d-hg/PKGBUILD @@ -2,7 +2,7 @@ _realname=ogre3d pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-hg" -_rev=r7497.fe6459e817c4 +_rev=r7529.1ea8087257eb _base_ver=2.0.0 pkgver=${_base_ver}.${_rev} pkgrel=1 @@ -21,7 +21,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-hlsl2glsl" "${MINGW_PACKAGE_PREFIX}-intel-tbb" "${MINGW_PACKAGE_PREFIX}-nvidia-cg-toolkit" - "${MINGW_PACKAGE_PREFIX}-ois" + "${MINGW_PACKAGE_PREFIX}-ois-git" "${MINGW_PACKAGE_PREFIX}-tinyxml" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-zziplib" @@ -39,7 +39,7 @@ source=("${_realname}-${pkgver}.tar.xz"{,.sig} 012-add-link-library.patch 013-mingw-stringconverter.patch 014-custom-install.patch) -md5sums=('f246fbc0979529a332930f70d07c73ae' +md5sums=('0e4932c50b16425514100ecbadd467d4' 'SKIP' '3c00c5584a8edcb4dc07a57697a73d59' '166486655cd358be175f3b32b63e0ca5' From 810f19314607a8491942569f82d1d9da46aee729 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 22 Feb 2015 20:30:27 +0300 Subject: [PATCH 0561/2060] gtk-vnc: Install license, introspection libraries. --- mingw-w64-gtk-vnc/PKGBUILD | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gtk-vnc/PKGBUILD b/mingw-w64-gtk-vnc/PKGBUILD index bfcb14b425..456ec43da3 100644 --- a/mingw-w64-gtk-vnc/PKGBUILD +++ b/mingw-w64-gtk-vnc/PKGBUILD @@ -16,8 +16,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" "${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-libview") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-vala") options=('strip' 'staticlibs') -license=("GPL 2") +license=("GPL 2.1") url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch) @@ -36,13 +39,14 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + PYTHON=${MINGW_PREFIX}/bin/python2 \ ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ - --enable-introspection=no \ + --enable-introspection \ --with-python=yes \ --with-gtk=3.0 \ --with-sasl \ @@ -54,4 +58,6 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" } From 601f8e45d48f9d767afb2eac2e821b6b7d3f5280 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 22 Feb 2015 21:06:47 +0300 Subject: [PATCH 0562/2060] gtk2: Update to 2.24.26. --- mingw-w64-gtk2/PKGBUILD | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mingw-w64-gtk2/PKGBUILD b/mingw-w64-gtk2/PKGBUILD index 1649703e9e..7a94ac89e2 100644 --- a/mingw-w64-gtk2/PKGBUILD +++ b/mingw-w64-gtk2/PKGBUILD @@ -3,8 +3,8 @@ _realname=gtk2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.24.25 -pkgrel=3 +pkgver=2.24.26 +pkgrel=1 pkgdesc="GTK+ is a multi-platform toolkit (v2) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -16,8 +16,8 @@ license=(LGPL2.1+) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-gtk-doc" - "${MINGW_PACKAGE_PREFIX}-shared-mime-info") + "${MINGW_PACKAGE_PREFIX}-shared-mime-info" + "gtk-doc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-atk>=1.29.2" "${MINGW_PACKAGE_PREFIX}-pango>=1.20" @@ -41,7 +41,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0012-embed-manifest.all.patch 0013-gtk-revert-recreatecairosurface-commit.patch) -md5sums=('612350704dd3aacb95355a4981930c6f' +md5sums=('4610cc60ff96073b83dc7de254bdaf38' '5105b21ea13dbfbef8975138b4355e7a' '4f4a6df623209e301b77a0e486f8c43d' '6a40366ed05024e1e93dbb9788c6747e' @@ -87,6 +87,7 @@ build() { --enable-shared \ --enable-introspection \ --disable-glibtest + make } From fc2389b6c90893df1652e94ef14f38120a2e5e49 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 22 Feb 2015 18:19:28 +0000 Subject: [PATCH 0563/2060] ag: Update to 0.29.1 + new patches Add feature of language-as-filename rather than just language-as-extension detection. Add lang definitinons for makepkg and autotools Improve lang definitions for make (Qt + Makefile) --- ...full-filenames-as-well-as-extensions.patch | 47 +++++++++++++++++ mingw-w64-ag/0002-lang-autotools-new.patch | 11 ++++ ...file-Makefile-Debug-Makefile-Release.patch | 12 +++++ ...ngw-build.patch => 0004-mingw-build.patch} | 0 mingw-w64-ag/0005-lang-makepkg-new.patch | 11 ++++ mingw-w64-ag/PKGBUILD | 51 +++++++++++++------ 6 files changed, 116 insertions(+), 16 deletions(-) create mode 100644 mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch create mode 100644 mingw-w64-ag/0002-lang-autotools-new.patch create mode 100644 mingw-w64-ag/0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch rename mingw-w64-ag/{001-mingw-build.patch => 0004-mingw-build.patch} (100%) create mode 100644 mingw-w64-ag/0005-lang-makepkg-new.patch diff --git a/mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch b/mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch new file mode 100644 index 0000000000..5c34f5b300 --- /dev/null +++ b/mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch @@ -0,0 +1,47 @@ +--- the_silver_searcher-0.29.1/src/lang.c.orig 2015-02-22 18:08:35.822371800 +0000 ++++ the_silver_searcher-0.29.1/src/lang.c 2015-02-22 18:12:32.962043900 +0000 +@@ -84,17 +84,26 @@ + char *make_lang_regex(char *ext_array, size_t num_exts) { + int regex_capacity = 100; + char *regex = ag_malloc(regex_capacity); +- int regex_length = 3; ++ int regex_length = 1; + int subsequent = 0; ++ const char *dot = "\\."; ++ size_t strlen_dot = strlen(dot); + char *extension; + size_t i; + +- strcpy(regex, "\\.("); ++ strcpy(regex, "("); + + for (i = 0; i < num_exts; ++i) { + extension = ext_array + i * SINGLE_EXT_LEN; + int extension_length = strlen(extension); +- while (regex_length + extension_length + 3 + subsequent > regex_capacity) { ++ const char *start = *extension; ++ int is_extension = (*start == '^') ? 0 : 1; ++ int length = strlen(start); ++ if (is_extension == 0) { ++ start += 1; ++ length -= 1; ++ } ++ while (regex_length + length + 3 + subsequent > regex_capacity) { + regex_capacity *= 2; + regex = ag_realloc(regex, regex_capacity); + } +@@ -103,8 +112,12 @@ + } else { + subsequent = 1; + } +- strcpy(regex + regex_length, extension); +- regex_length += extension_length; ++ if (is_extension == 1) { ++ strcpy(regex + regex_length, dot); ++ regex_length += strlen_dot; ++ } ++ strcpy(regex + regex_length, start); ++ regex_length += length; + } + + regex[regex_length++] = ')'; diff --git a/mingw-w64-ag/0002-lang-autotools-new.patch b/mingw-w64-ag/0002-lang-autotools-new.patch new file mode 100644 index 0000000000..9bd6633236 --- /dev/null +++ b/mingw-w64-ag/0002-lang-autotools-new.patch @@ -0,0 +1,11 @@ +diff -urN the_silver_searcher-0.27.0.orig/src/lang.c the_silver_searcher-0.27.0/src/lang.c +--- the_silver_searcher-0.27.0.orig/src/lang.c 2014-11-15 02:55:17.000000000 +0000 ++++ the_silver_searcher-0.27.0/src/lang.c 2015-02-22 12:11:00.584364900 +0000 +@@ -8,6 +8,7 @@ + { "actionscript", { "as", "mxml" } }, + { "ada", { "ada", "adb", "ads" } }, + { "asm", { "asm", "s" } }, ++ { "autotools", { "ac", "am", "in", "m4", "pc" } }, + { "batch", { "bat", "cmd" } }, + { "cc", { "c", "h", "xs" } }, + { "cfmx", { "cfc", "cfm", "cfml" } }, diff --git a/mingw-w64-ag/0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch b/mingw-w64-ag/0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch new file mode 100644 index 0000000000..0b04304468 --- /dev/null +++ b/mingw-w64-ag/0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch @@ -0,0 +1,12 @@ +diff -urN the_silver_searcher-0.27.0.orig/src/lang.c the_silver_searcher-0.27.0/src/lang.c +--- the_silver_searcher-0.27.0.orig/src/lang.c 2015-02-22 12:12:18.511907300 +0000 ++++ the_silver_searcher-0.27.0/src/lang.c 2015-02-22 12:14:53.790588400 +0000 +@@ -39,7 +39,7 @@ + { "lisp", { "lisp", "lsp" } }, + { "lua", { "lua" } }, + { "m4", { "m4" } }, +- { "make", { "Makefiles", "mk", "mak" } }, ++ { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak" } }, + { "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } }, + { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, + { "matlab", { "m" } }, diff --git a/mingw-w64-ag/001-mingw-build.patch b/mingw-w64-ag/0004-mingw-build.patch similarity index 100% rename from mingw-w64-ag/001-mingw-build.patch rename to mingw-w64-ag/0004-mingw-build.patch diff --git a/mingw-w64-ag/0005-lang-makepkg-new.patch b/mingw-w64-ag/0005-lang-makepkg-new.patch new file mode 100644 index 0000000000..0df8bfa0c7 --- /dev/null +++ b/mingw-w64-ag/0005-lang-makepkg-new.patch @@ -0,0 +1,11 @@ +diff -urN the_silver_searcher-0.27.0.orig/src/lang.c the_silver_searcher-0.27.0/src/lang.c +--- the_silver_searcher-0.27.0.orig/src/lang.c 2015-02-22 13:29:01.378778800 +0000 ++++ the_silver_searcher-0.27.0/src/lang.c 2015-02-22 13:35:00.015227300 +0000 +@@ -40,6 +40,7 @@ + { "lua", { "lua" } }, + { "m4", { "m4" } }, + { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak" } }, ++ { "makepkg", { "^PKGBUILD", "diff", "patch", "in", "install" } }, + { "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } }, + { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, + { "matlab", { "m" } }, diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index 0089fe1a18..f423a2628b 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -1,44 +1,63 @@ # Maintainer: Martell Malone +# Contributor: Ray Donnelly _realname=ag _longname=the_silver_searcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.27.0 +pkgver=0.29.1 pkgrel=1 pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" arch=('any') url="http://geoff.greer.fm/ag" license=("Apache") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-pcre" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-zlib") -options=('strip' 'staticlibs') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-pcre" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-zlib") +options=('staticlibs') # '!strip' 'debug') source=(http://geoff.greer.fm/ag/releases/$_longname-$pkgver.tar.gz - 001-mingw-build.patch) -md5sums=('56ba98da4298e9db1929f34ca05b1627' - '0dbfdf4ddba43446de0f4941844dfcfd') + "0001-lang-allow-full-filenames-as-well-as-extensions.patch" + "0002-lang-autotools-new.patch" + "0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch" + "0004-mingw-build.patch" + "0005-lang-makepkg-new.patch") +md5sums=('be0cb0f64582e758206f5bd7386d4373' + '3ceab96a35115be634b14cc691eec7f6' + '70b62fa84b9caeb025f8e4a57bf96f65' + '40aa7b0c03472ee141cf5afe2343ef04' + '0dbfdf4ddba43446de0f4941844dfcfd' + 'e246c39f073615bedb4ec7d79db6d82b') prepare() { - cd "${srcdir}/${_longname}-${pkgver}" - patch -p1 -i ${srcdir}/001-mingw-build.patch + cd "${srcdir}"/${_longname}-${pkgver} + patch -p1 -i "${srcdir}"/0001-lang-allow-full-filenames-as-well-as-extensions.patch + patch -p1 -i "${srcdir}"/0002-lang-autotools-new.patch + patch -p1 -i "${srcdir}"/0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch + patch -p1 -i "${srcdir}"/0004-mingw-build.patch + patch -p1 -i "${srcdir}"/0005-lang-makepkg-new.patch + + # configure.ac forces -O2, so force it to -O0 if debugging. + if check_option "debug" "y"; then + sed -i "s#-O2#-O0#g" configure.ac + fi autoreconf -fi } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" - ../${_longname}-${pkgver}/configure \ + "${srcdir}"/${_longname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} + --{build,host}=${MINGW_CHOST} make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${CARCH}" make DESTDIR="${pkgdir}" install } From 4f1edc105ddf181ff85dd4ecfc5dab5919aa02d0 Mon Sep 17 00:00:00 2001 From: Josip Date: Sun, 22 Feb 2015 21:58:42 +0100 Subject: [PATCH 0564/2060] goocanvas: adding introspection support --- .../001-convert-python-path-to-unix.patch | 24 ++++---- .../002-fix-introspection.patch | 24 ++++++++ mingw-w64-goocanvas/PKGBUILD | 60 +++++++++++-------- 3 files changed, 73 insertions(+), 35 deletions(-) create mode 100644 mingw-w64-goocanvas/002-fix-introspection.patch diff --git a/mingw-w64-goocanvas/001-convert-python-path-to-unix.patch b/mingw-w64-goocanvas/001-convert-python-path-to-unix.patch index 0507ae1afd..0a75fc6b81 100644 --- a/mingw-w64-goocanvas/001-convert-python-path-to-unix.patch +++ b/mingw-w64-goocanvas/001-convert-python-path-to-unix.patch @@ -1,14 +1,18 @@ ---- goocanvas-2.0.2/configure.in.orig 2014-08-20 19:26:32.167400000 +0400 -+++ goocanvas-2.0.2/configure.in 2014-08-20 19:27:30.074600000 +0400 -@@ -95,6 +95,11 @@ +--- ./configure.in.orig 2013-11-03 17:56:29.000000000 +0100 ++++ ./configure.in 2015-02-22 19:47:45.372532600 +0100 +@@ -94,8 +94,13 @@ + if test "x$enable_python" = "xyes"; then PKG_CHECK_MODULES(PYTHON, [pygobject-3.0 >= $PYGOBJECT_REQUIRED]) - pyoverridesdir=`$PYTHON -c "import gi;print gi._overridesdir"` -+case "$host" in -+ *-*-mingw*) -+ pyoverridesdir=`cygpath -u $pyoverridesdir` -+ ;; -+esac - AC_SUBST(pyoverridesdir) +- pyoverridesdir=`$PYTHON -c "import gi;print gi._overridesdir"` +- AC_SUBST(pyoverridesdir) ++ pyoverridesdir=`$PYTHON -c "import gi; from os.path import abspath; print(abspath(gi._overridesdir))"` ++ case "$host" in ++ *-*-mingw*) ++ pyoverridesdir=`cygpath -u $pyoverridesdir` ++ ;; ++ esac ++ AC_SUBST(pyoverridesdir) fi + AM_CONDITIONAL(ENABLE_PYTHON, test x"$enable_python" = "xyes") diff --git a/mingw-w64-goocanvas/002-fix-introspection.patch b/mingw-w64-goocanvas/002-fix-introspection.patch new file mode 100644 index 0000000000..2006ae76a0 --- /dev/null +++ b/mingw-w64-goocanvas/002-fix-introspection.patch @@ -0,0 +1,24 @@ +--- goocanvas-2.0.2/src/Makefile.am.orig 2013-10-25 17:45:33.000000000 +0200 ++++ goocanvas-2.0.2/src/Makefile.am 2015-01-13 00:13:55.110240700 +0100 +@@ -1,9 +1,9 @@ + ## Process this file with automake to produce Makefile.in + + INCLUDES = \ +- -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ +- -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ +- -DG_LOG_DOMAIN=\"GooCanvas\" \ ++ -DPACKAGE_DATA_DIR="$(datadir)" \ ++ -DPACKAGE_LOCALE_DIR="$(prefix)/$(DATADIRNAME)/locale" \ ++ -DG_LOG_DOMAIN=\'GooCanvas\' \ + @PACKAGE_CFLAGS@ + + # -DG_DISABLE_DEPRECATED -DPANGO_DISABLE_DEPRECATED \ +@@ -158,7 +158,7 @@ + GooCanvas_2_0_gir_SCANNERFLAGS = --identifier-prefix=Goo --symbol-prefix=goo --warn-all + GooCanvas_2_0_gir_INCLUDES = Gtk-3.0 + GooCanvas_2_0_gir_CFLAGS = $(INCLUDES) +-GooCanvas_2_0_gir_LIBS = goocanvas-2.0 ++GooCanvas_2_0_gir_LIBS = $(srcdir)/$(lib_LTLIBRARIES) + GooCanvas_2_0_gir_FILES = $(introspection_sources) + INTROSPECTION_GIRS += GooCanvas-2.0.gir + diff --git a/mingw-w64-goocanvas/PKGBUILD b/mingw-w64-goocanvas/PKGBUILD index 400adf5322..bb01fe3892 100644 --- a/mingw-w64-goocanvas/PKGBUILD +++ b/mingw-w64-goocanvas/PKGBUILD @@ -3,49 +3,59 @@ _realname=goocanvas pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.2 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Canvas widget for GTK+ that uses the Cairo 2D library (mingw-w64)" license=("LGPL 2") url="http://www.gnome.org" depends=("${MINGW_PACKAGE_PREFIX}-gtk3") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-python2" - "make" - "libtool" - "automake-wrapper" - "autoconf" - "gettext" - "libintl" - "patch") + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" + "make" + "libtool" + "automake-wrapper" + "autoconf" + "gettext" + "libintl" + "patch") options=('strip' '!debug' 'staticlibs') source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:3}/${_realname}-$pkgver.tar.xz - 001-convert-python-path-to-unix.patch) + 001-convert-python-path-to-unix.patch + 002-fix-introspection.patch) sha256sums=('f20e5fbef8d1a2633033edbd886dd13146a1b948d1813a9c353a80a29295d1d0' - '0aabbc30449243076c0533efe54d79b5236e000204d510fdbbcb28d9c452ae5f') + '3e792af4245ebc6a73eb83bf89b2c37734c1c8e8442c84780a8f4ad54e9e8888' + '9c7f57c503986f95b57a5551fdfda9571b4403f9000caf95d881ceff8a729d3c') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-convert-python-path-to-unix.patch - + patch -p1 -i ${srcdir}/002-fix-introspection.patch autoreconf -fi + cp -r ${srcdir}/${_realname}-${pkgver} ${srcdir}/${MINGW_CHOST}-${_realname}-python2 + cp -r ${srcdir}/${_realname}-${pkgver} ${srcdir}/${MINGW_CHOST}-${_realname}-python3 } build() { - mkdir -p build-${MINGW_CHOST} - cd build-${MINGW_CHOST} - - ../${_realname}-${pkgver}/configure \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ - --build=${MINGW_CHOST} \ - --prefix=${MINGW_PREFIX} \ - --libexecdir=${MINGW_PREFIX}/lib \ - --enable-introspection=no - make + # we must build things twice + for _python in python{2,3}; do + cd ${srcdir}/${MINGW_CHOST}-${_realname}-${_python} + export CC=gcc + ./configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-introspection=yes \ + PYTHON=${_python} + make + done } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + for _python in python{2,3}; do + cd ${srcdir}/${MINGW_CHOST}-${_realname}-${_python} + make DESTDIR=$pkgdir install + done } From b7ef8723186574705eec3054899f4ffd2207f9d1 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 22 Feb 2015 21:02:58 +0000 Subject: [PATCH 0565/2060] ag: Fix segfault I re-based my new 0001- patch to 0.29.1 carelessly --- ...0001-lang-allow-full-filenames-as-well-as-extensions.patch | 2 +- mingw-w64-ag/PKGBUILD | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch b/mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch index 5c34f5b300..d250abd0bc 100644 --- a/mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch +++ b/mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch @@ -19,7 +19,7 @@ extension = ext_array + i * SINGLE_EXT_LEN; int extension_length = strlen(extension); - while (regex_length + extension_length + 3 + subsequent > regex_capacity) { -+ const char *start = *extension; ++ const char *start = extension; + int is_extension = (*start == '^') ? 0 : 1; + int length = strlen(start); + if (is_extension == 0) { diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index f423a2628b..825eb007a5 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -5,7 +5,7 @@ _realname=ag _longname=the_silver_searcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.29.1 -pkgrel=1 +pkgrel=2 pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" arch=('any') url="http://geoff.greer.fm/ag" @@ -23,7 +23,7 @@ source=(http://geoff.greer.fm/ag/releases/$_longname-$pkgver.tar.gz "0004-mingw-build.patch" "0005-lang-makepkg-new.patch") md5sums=('be0cb0f64582e758206f5bd7386d4373' - '3ceab96a35115be634b14cc691eec7f6' + '42bb985a2e8e6b7bea407e44269cc4d8' '70b62fa84b9caeb025f8e4a57bf96f65' '40aa7b0c03472ee141cf5afe2343ef04' '0dbfdf4ddba43446de0f4941844dfcfd' From 288a607b18d7be9c7a91ddd3ca65534174eee51c Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 23 Feb 2015 14:26:36 +0000 Subject: [PATCH 0566/2060] cling-git: wip build with hacks --- ...-defines-to-_WIN32-as-it-is-a-compil.patch | 4 +- ...e-bash-when-looking-for-gcc-includes.patch | 29 +++++++ ...003-use-size_t-for-void-pointer-cast.patch | 43 +++++++++++ .../0004-Hack-around-missing-functions.patch | 64 ++++++++++++++++ mingw-w64-cling-git/PKGBUILD | 76 +++++++++---------- 5 files changed, 173 insertions(+), 43 deletions(-) create mode 100644 mingw-w64-cling-git/0002-Invoke-bash-when-looking-for-gcc-includes.patch create mode 100644 mingw-w64-cling-git/0003-use-size_t-for-void-pointer-cast.patch create mode 100644 mingw-w64-cling-git/0004-Hack-around-missing-functions.patch diff --git a/mingw-w64-cling-git/0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch b/mingw-w64-cling-git/0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch index 8bfc7b44d9..a37e69f6df 100644 --- a/mingw-w64-cling-git/0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch +++ b/mingw-w64-cling-git/0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch @@ -1,4 +1,4 @@ -From 7e4be1203cfa358b41ef1aca1f5f2ab9592bb511 Mon Sep 17 00:00:00 2001 +From a140f2656c6017f9bf3b823b2d7058140ded73f6 Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 4 Dec 2014 16:01:38 +0000 Subject: [PATCH] change all WIN32 defines to _WIN32 as it is a compiler define @@ -175,5 +175,5 @@ index 8b9dd80..dd9cd6f 100644 -#endif // WIN32 +#endif // ifdef _WIN32 -- -2.2.0 +2.3.0 diff --git a/mingw-w64-cling-git/0002-Invoke-bash-when-looking-for-gcc-includes.patch b/mingw-w64-cling-git/0002-Invoke-bash-when-looking-for-gcc-includes.patch new file mode 100644 index 0000000000..283c5ed5ff --- /dev/null +++ b/mingw-w64-cling-git/0002-Invoke-bash-when-looking-for-gcc-includes.patch @@ -0,0 +1,29 @@ +From 3799f58fabd8236a6f6042a04a457c69b47c0e16 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sun, 22 Feb 2015 19:36:04 +0000 +Subject: [PATCH] Invoke bash when looking for gcc includes + +--- + lib/Interpreter/CIFactory.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/Interpreter/CIFactory.cpp b/lib/Interpreter/CIFactory.cpp +index 4b5b6fa..d7951b5 100644 +--- a/lib/Interpreter/CIFactory.cpp ++++ b/lib/Interpreter/CIFactory.cpp +@@ -411,10 +411,10 @@ namespace { + } + #else // _MSC_VER + static const char *CppInclQuery = +- "echo | LC_ALL=C " LLVM_CXX " -xc++ -E -v - 2>&1 >/dev/null " ++ "bash -c \"echo | LC_ALL=C " LLVM_CXX " -xc++ -E -v - 2>&1 >/dev/null " + "| awk '/^#include +Date: Mon, 8 Dec 2014 18:11:37 +0000 +Subject: [PATCH] use size_t for void pointer cast + +--- + include/cling/Interpreter/Value.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/include/cling/Interpreter/Value.h b/include/cling/Interpreter/Value.h +index 4ebc32a..22b28fd 100644 +--- a/include/cling/Interpreter/Value.h ++++ b/include/cling/Interpreter/Value.h +@@ -10,6 +10,8 @@ + #ifndef CLING_VALUE_H + #define CLING_VALUE_H + ++#include ++ + namespace llvm { + class raw_ostream; + } +@@ -101,7 +103,7 @@ namespace cling { + case kLongDoubleType: + return (T) V.getAs(); + case kPointerType: +- return (T) (unsigned long) V.getAs(); ++ return (T) (size_t) V.getAs(); + case kUnsupportedType: + V.AssertOnUnsupportedTypeCast(); + } +@@ -115,7 +117,7 @@ namespace cling { + EStorageType storageType = V.getStorageType(); + switch (storageType) { + case kPointerType: +- return (T*) (unsigned long) V.getAs(); ++ return (T*) (size_t) V.getAs(); + default: + V.AssertOnUnsupportedTypeCast(); break; + } +-- +2.3.0 + diff --git a/mingw-w64-cling-git/0004-Hack-around-missing-functions.patch b/mingw-w64-cling-git/0004-Hack-around-missing-functions.patch new file mode 100644 index 0000000000..e84c06c618 --- /dev/null +++ b/mingw-w64-cling-git/0004-Hack-around-missing-functions.patch @@ -0,0 +1,64 @@ +From 0a816767085d68ec8e47dea84cbcb399ff80f2b5 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 23 Feb 2015 13:53:35 +0000 +Subject: [PATCH] Hack around missing functions + +--- + lib/Interpreter/IncrementalExecutor.cpp | 41 +++++++++++++++++++++++++++++++++ + 1 file changed, 41 insertions(+) + +diff --git a/lib/Interpreter/IncrementalExecutor.cpp b/lib/Interpreter/IncrementalExecutor.cpp +index 2d7839d..dd2170f 100644 +--- a/lib/Interpreter/IncrementalExecutor.cpp ++++ b/lib/Interpreter/IncrementalExecutor.cpp +@@ -203,6 +203,47 @@ IncrementalExecutor::NotifyLazyFunctionCreators(const std::string& mangled_name) + return ret; + } + ++ FILE *pF = fopen("cling_func.map", "r"); ++ void *pAddr = NULL; ++ fflush(stdout); ++ while (pF) ++ { ++ char sz[512]; ++ if (!fgets(sz, sizeof(sz), pF)) ++ break; ++ ++ char *p = strrchr(sz, ' '); ++ if (!p) ++ continue; ++ ++ p++; ++ ++ char *p2 = strchr(sz, '\r'); ++ if (p2) ++ p2[0] = 0; ++ p2 = strchr(sz, '\n'); ++ if (p2) ++ p2[0] = 0; ++ ++ if (strcmp(p, mangled_name.c_str())) ++ { ++ if (p[0] != '_' || strcmp(p + 1, mangled_name.c_str())) ++ continue; ++ } ++ ++ sscanf(sz, "%x", &pAddr); ++ break; ++ } ++ ++ if (pF) ++ fclose(pF); ++ ++ if (pAddr) ++ { ++ fflush(stdout); ++ return pAddr; ++ } ++ + return HandleMissingFunction(mangled_name); + } + +-- +2.3.0 + diff --git a/mingw-w64-cling-git/PKGBUILD b/mingw-w64-cling-git/PKGBUILD index 3df814f4b0..5ae84bbdcc 100644 --- a/mingw-w64-cling-git/PKGBUILD +++ b/mingw-w64-cling-git/PKGBUILD @@ -2,23 +2,35 @@ _realname=cling -pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-cern-git" "${MINGW_PACKAGE_PREFIX}-clang-cern-git" "${MINGW_PACKAGE_PREFIX}-clang-analyzer-cern-git" "${MINGW_PACKAGE_PREFIX}-llvm-cern-git") -pkgver=2423.232f361 +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-cern-git" + "${MINGW_PACKAGE_PREFIX}-clang-cern-git" + "${MINGW_PACKAGE_PREFIX}-clang-analyzer-cern-git" + "${MINGW_PACKAGE_PREFIX}-llvm-cern-git") +pkgver=2518.6383df2 pkgrel=1 +clingver=cling-patches-r214630 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" license=("custom:University of Illinois/NCSA Open Source License") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "python2" "patch" "groff") depends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=("llvm"::"git+http://root.cern.ch/git/llvm.git#branch=cling-patches" - "clang"::"git+http://root.cern.ch/git/clang.git#branch=cling-patches" +source=("llvm"::"git+http://root.cern.ch/git/llvm.git#tag=$clingver" + "clang"::"git+http://root.cern.ch/git/clang.git#tag=$clingver" "cling"::"git+http://root.cern.ch/git/cling.git" - 0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch - 0001-Add-SEH-exceptions-to-the-clang-frontend.patch -) + "0001-Add-SEH-exceptions-to-the-clang-frontend.patch" + "0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch" + "0002-Invoke-bash-when-looking-for-gcc-includes.patch" + "0003-use-size_t-for-void-pointer-cast.patch" + "0004-Hack-around-missing-functions.patch") + md5sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' 'SKIP' 'SKIP' 'SKIP' @@ -36,12 +48,15 @@ prepare() { #patch -p1 -i ${srcdir}/0001-Add-SEH-exceptions-to-the-clang-frontend.patch cd ${srcdir}/cling - patch -p1 -i ${srcdir}/0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch + git checkout 39c7e56 + git am ${srcdir}/0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch + git am ${srcdir}/0002-Invoke-bash-when-looking-for-gcc-includes.patch + git am ${srcdir}/0003-use-size_t-for-void-pointer-cast.patch + git am ${srcdir}/0004-Hack-around-missing-functions.patch cd ${srcdir} mv ${srcdir}/clang ${srcdir}/llvm/tools/clang mv ${srcdir}/cling ${srcdir}/llvm/tools/cling - } build() { @@ -65,24 +80,7 @@ build() { --with-python=/usr/bin/python2 \ --enable-libffi \ --enable-docs - #--enable-shared - #--enable-embed-stdcxx - #--enable-libcpp - #--enable-cxx11 - # - #--enable-ltdl-install - # - #--with-c-include-dir - #--with-gcc-toolchain - #--with-default-sysroot - #--with-binutils-include - #--with-bug-report-url - make -j1 -} - -check() { - cd "${srcdir}/llvm" - make check + make } package_clang(){ @@ -92,7 +90,7 @@ package_clang(){ conflicts=("${MINGW_PACKAGE_PREFIX}-clang") cd ${srcdir}/llvm/tools/clang local ver="$(git rev-parse HEAD)" - pkgver="r$(git svn find-rev ${ver})" + pkgver="r$(git rev-list --count HEAD)" cd "${srcdir}/llvm/build-${MINGW_CHOST}/tools/clang" make -j1 DESTDIR="$pkgdir" install @@ -106,10 +104,13 @@ package_cling(){ conflicts=("${MINGW_PACKAGE_PREFIX}-cling") cd ${srcdir}/llvm/tools/cling local ver="$(git rev-parse HEAD)" - pkgver="r$(git svn find-rev ${ver})" + pkgver="r$(git rev-list --count HEAD)" cd "${srcdir}/llvm/build-${MINGW_CHOST}/tools/cling" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="$pkgdir" install + + # map hack + nm "${srcdir}/llvm/build-${MINGW_CHOST}"/Release/bin/cling.exe > "${pkgdir}${MINGW_PREFIX}"/bin/cling_func.map } @@ -120,7 +121,7 @@ package_llvm(){ conflicts=("${MINGW_PACKAGE_PREFIX}-llvm") cd ${srcdir}/llvm local ver="$(git rev-parse HEAD)" - pkgver="r$(git svn find-rev ${ver})" + pkgver="r$(git rev-list --count HEAD)" mv "${srcdir}/llvm/tools/clang" "${srcdir}/clang" mv "${srcdir}/llvm/build-${MINGW_CHOST}/tools/clang" "${srcdir}/clang-${MINGW_CHOST}" @@ -148,7 +149,7 @@ package_clang-analyzer() { conflicts=("${MINGW_PACKAGE_PREFIX}-clang-analyzer") cd ${srcdir}/llvm/tools/clang local ver="$(git rev-parse HEAD)" - pkgver="r$(git svn find-rev ${ver})" + pkgver="r$(git rev-list --count HEAD)" install -d ${pkgdir}${MINGW_PREFIX}/{bin,lib/clang-analyzer} for _tool in scan-{build,view}; do @@ -165,13 +166,6 @@ package_clang-analyzer() { mv ${pkgdir}${MINGW_PREFIX}/lib/clang-analyzer/scan-build/scan-build.1 \ ${pkgdir}${MINGW_PREFIX}/share/man/man1/ - # Use Python 2 - #sed -i \ - # -e 's|env python$|&2|' \ - # -e 's|/usr/bin/python$|&2|' \ - # "${pkgdir}${MINGW_PREFIX}/lib/clang-analyzer/scan-view/scan-view" \ - # "${pkgdir}${MINGW_PREFIX}/lib/clang-analyzer/scan-build/set-xcode-analyzer" - # Compile Python scripts python2 -m compileall "${pkgdir}${MINGW_PREFIX}/lib/clang-analyzer" python2 -O -m compileall "${pkgdir}${MINGW_PREFIX}/lib/clang-analyzer" @@ -186,7 +180,7 @@ package_mingw-w64-i686-cling-cern-git(){ package_cling } -package_mingw-w64-i686-clang-cern-analyzer-git(){ +package_mingw-w64-i686-clang-analyzer-cern-git(){ package_clang-analyzer } From 1f4a53f48e80a09e559658dc9d9694902279a4bc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 23 Feb 2015 00:19:08 +0300 Subject: [PATCH 0567/2060] pygments: Update to 2.0.2 --- mingw-w64-python-pygments/PKGBUILD | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/mingw-w64-python-pygments/PKGBUILD b/mingw-w64-python-pygments/PKGBUILD index 6c46352a57..10d92ade99 100644 --- a/mingw-w64-python-pygments/PKGBUILD +++ b/mingw-w64-python-pygments/PKGBUILD @@ -4,15 +4,21 @@ _realname=pygments pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.6 -pkgrel=4 +pkgver=2.0.2 +pkgrel=1 pkgdesc="Python syntax highlighter (mingw-w64)" arch=('any') license=('BSD') url="http://pygments.org/" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(http://pypi.python.org/packages/source/P/Pygments/Pygments-$pkgver.tar.gz) -sha256sums=('799ed4caf77516e54440806d8d9cd82a7607dfdf4e4fb643815171a4b5c921c0') +noextract=("Pygments-${pkgver}.tar.gz") +sha256sums=('7320919084e6dac8f4540638a46447a3bd730fca172afc17d2c03eed22cf4f51') + +prepare() { + # workaround for symlink issue + tar -xf Pygments-${pkgver}.tar.gz || true +} build() { cd "$srcdir" From d1b002869aac150f2c6aee6b5c371c331336dfe6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 23 Feb 2015 11:20:12 +0300 Subject: [PATCH 0568/2060] imagemagick: Update to 6.9.0.7 --- mingw-w64-imagemagick/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index c6e8bfd2e1..2089c5503e 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -2,7 +2,7 @@ _realname=imagemagick pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.9.0.6 +pkgver=6.9.0.7 pkgrel=1 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') @@ -50,7 +50,7 @@ source=(http://www.imagemagick.org/download/ImageMagick-${pkgver%.*}-${pkgver##* 001-relocate.patch 002-build-fixes.patch winpath.patch) -md5sums=('fd481f9fdee33ab218184a1412bae93d' +md5sums=('fcaf0ead3b5cafcb36c7642e2557dccb' 'SKIP' 'c95a23e8562dbab4e6b0e5407da25209' '7821087a00c459c0d3482508fdc1e25e' From 7c38f19f262b818366dd8394e84db304fb34e87c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 23 Feb 2015 18:03:07 +0300 Subject: [PATCH 0569/2060] nasm: Update to 2.11.08 --- mingw-w64-nasm/PKGBUILD | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mingw-w64-nasm/PKGBUILD b/mingw-w64-nasm/PKGBUILD index 1a51b89af9..6c72a42ccb 100644 --- a/mingw-w64-nasm/PKGBUILD +++ b/mingw-w64-nasm/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=nasm - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.11.02 +pkgver=2.11.08 pkgrel=1 pkgdesc="An 80x86 assembler designed for portability and modularity (mingw-w64)" arch=('any') @@ -13,14 +12,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' '!libtool' 'staticlibs' '!makeflags') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://www.nasm.us/pub/nasm/releasebuilds/${pkgver}/${_realname}-${pkgver}.tar.xz) -sha1sums=('d0525883abc6a8a9c0d2207b6872442ee26bfe1b') +sha1sums=('6908296ac437b3ade79fadfaad0efcfd99582f70') prepare() { cd ${srcdir}/${_realname}-${pkgver} } build() { - export MSYS2_ARG_CONV_EXCL="-//OASIS" cp -rf ${srcdir}/${_realname}-${pkgver} ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} ./configure \ From 63e23a573ebc74ac723c9c0433fc6b124ffb27c9 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:41:09 +0000 Subject: [PATCH 0570/2060] ag: Use MSYS2 fork and local patches I will push them to github and try to get them upstreamed tomorrow --- ...w-both-extensions-and-full-filenames.patch | 240 ++++++++++++++++++ ...full-filenames-as-well-as-extensions.patch | 47 ---- mingw-w64-ag/0002-lang-autotools-new.patch | 11 - ...ons-Fix-ordering-problems-with-color.patch | 235 +++++++++++++++++ ...03-lang-Add-autotools-ac-am-in-m4-pc.patch | 24 ++ ...file-Makefile-Debug-Makefile-Release.patch | 12 - ...-Makefile-Makefile.Debug-Makefile.Re.patch | 28 ++ mingw-w64-ag/0004-mingw-build.patch | 61 ----- ...kepkg-PKGBUILD-diff-patch-in-install.patch | 25 ++ mingw-w64-ag/0005-lang-makepkg-new.patch | 11 - mingw-w64-ag/PKGBUILD | 48 ++-- 11 files changed, 579 insertions(+), 163 deletions(-) create mode 100644 mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch delete mode 100644 mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch delete mode 100644 mingw-w64-ag/0002-lang-autotools-new.patch create mode 100644 mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch create mode 100644 mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch delete mode 100644 mingw-w64-ag/0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch create mode 100644 mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch delete mode 100644 mingw-w64-ag/0004-mingw-build.patch create mode 100644 mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch delete mode 100644 mingw-w64-ag/0005-lang-makepkg-new.patch diff --git a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch new file mode 100644 index 0000000000..55aa8f612a --- /dev/null +++ b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch @@ -0,0 +1,240 @@ +From bb58cf2f4b9ab41931b51b5f7a050711fcfbaa75 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 23 Feb 2015 21:46:45 +0000 +Subject: [PATCH 1/5] lang: Allow both extensions and full filenames + +Because many filetypes (e.g. make) are not indicated by the +file extension but instead by the full filename (Makefile). + +Renames extension to pattern, but retains the existing format +where each pattern is treated as an extension. Full filenames +are indicated by prefixing the pattern with a '^'. +--- + src/lang.c | 57 ++++++++++++++++++++++++++++++++++----------------------- + src/lang.h | 24 +++++++++++++----------- + src/options.c | 28 ++++++++++++++-------------- + 3 files changed, 61 insertions(+), 48 deletions(-) + +diff --git a/src/lang.c b/src/lang.c +index 6f150dd..fcdfbbc 100644 +--- a/src/lang.c ++++ b/src/lang.c +@@ -81,20 +81,27 @@ size_t get_lang_count() { + return sizeof(langs) / sizeof(lang_spec_t); + } + +-char *make_lang_regex(char *ext_array, size_t num_exts) { ++char *make_lang_regex(char *pat_array, size_t num_pats) { + int regex_capacity = 100; + char *regex = ag_malloc(regex_capacity); +- int regex_length = 3; ++ int regex_length = 1; + int subsequent = 0; +- char *extension; ++ char *pattern; ++ const char *dot = "\\."; ++ size_t strlen_dot = strlen(dot); + size_t i; + +- strcpy(regex, "\\.("); ++ strcpy(regex, "("); + +- for (i = 0; i < num_exts; ++i) { +- extension = ext_array + i * SINGLE_EXT_LEN; +- int extension_length = strlen(extension); +- while (regex_length + extension_length + 3 + subsequent > regex_capacity) { ++ for (i = 0; i < num_pats; ++i) { ++ pattern = pat_array + i * SINGLE_PAT_LEN; ++ int is_extension = (*pattern == '^') ? 0 : 1; ++ int length = strlen(pattern); ++ if (is_extension == 0) { ++ pattern += 1; ++ length -= 1; ++ } ++ while (regex_length + length + 3 + subsequent > regex_capacity) { + regex_capacity *= 2; + regex = ag_realloc(regex, regex_capacity); + } +@@ -103,8 +110,12 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { + } else { + subsequent = 1; + } +- strcpy(regex + regex_length, extension); +- regex_length += extension_length; ++ if (is_extension == 1) { ++ strcpy(regex + regex_length, dot); ++ regex_length += strlen_dot; ++ } ++ strcpy(regex + regex_length, pattern); ++ regex_length += length; + } + + regex[regex_length++] = ')'; +@@ -113,29 +124,29 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { + return regex; + } + +-size_t combine_file_extensions(size_t *extension_index, size_t len, char **exts) { ++size_t combine_file_patterns(size_t *pattern_index, size_t len, char **pats) { + /* Keep it fixed as 100 for the reason that if you have more than 100 + * file types to search, you'd better search all the files. + * */ +- size_t ext_capacity = 100; +- (*exts) = (char *)ag_malloc(ext_capacity * SINGLE_EXT_LEN); +- memset((*exts), 0, ext_capacity * SINGLE_EXT_LEN); +- size_t num_of_extensions = 0; ++ size_t pat_capacity = 100; ++ (*pats) = (char *)ag_malloc(pat_capacity * SINGLE_PAT_LEN); ++ memset((*pats), 0, pat_capacity * SINGLE_PAT_LEN); ++ size_t num_patterns = 0; + + size_t i; + for (i = 0; i < len; ++i) { + size_t j = 0; +- const char *ext = langs[extension_index[i]].extensions[j]; ++ const char *pat = langs[pattern_index[i]].patterns[j]; + do { +- if (num_of_extensions == ext_capacity) { ++ if (num_patterns == pat_capacity) { + break; + } +- char *pos = (*exts) + num_of_extensions * SINGLE_EXT_LEN; +- strncpy(pos, ext, strlen(ext)); +- ++num_of_extensions; +- ext = langs[extension_index[i]].extensions[++j]; +- } while (ext); ++ char *pos = (*pats) + num_patterns * SINGLE_PAT_LEN; ++ strncpy(pos, pat, strlen(pat)); ++ ++num_patterns; ++ pat = langs[pattern_index[i]].patterns[++j]; ++ } while (pat); + } + +- return num_of_extensions; ++ return num_patterns; + } +diff --git a/src/lang.h b/src/lang.h +index d0007f9..202da4b 100644 +--- a/src/lang.h ++++ b/src/lang.h +@@ -1,12 +1,12 @@ + #ifndef LANG_H + #define LANG_H + +-#define MAX_EXTENSIONS 12 +-#define SINGLE_EXT_LEN 20 ++#define MAX_PATTERNS 12 ++#define SINGLE_PAT_LEN 20 + + typedef struct { + const char *name; +- const char *extensions[MAX_EXTENSIONS]; ++ const char *patterns[MAX_PATTERNS]; + } lang_spec_t; + + extern lang_spec_t langs[]; +@@ -17,20 +17,22 @@ extern lang_spec_t langs[]; + size_t get_lang_count(void); + + /** +-Convert a NULL-terminated array of language extensions +-into a regular expression of the form \.(extension1|extension2...)$ ++Convert a NULL-terminated array of language patterns ++into a regular expression of the form (\.?pattern1|\.?pattern2...)$ ++Patterns that begin with ^ are interpreted as full names, those ++without are interpreted as file extensions. + + Caller is responsible for freeing the returned string. + */ +-char *make_lang_regex(char *ext_array, size_t num_exts); ++char *make_lang_regex(char *pat_array, size_t num_pats); + + + /** +-Combine multiple file type extensions into one array. ++Combine multiple file type patterns into one array. + +-The combined result is returned through *exts*; +-*exts* is one-dimension array, which can contain up to 100 extensions; +-The number of extensions that *exts* actually contain is returned. ++The combined result is returned through *pats*; ++*pats* is one-dimension array, which can contain up to 100 patterns; ++The number of patterns that *pats* actually contain is returned. + */ +-size_t combine_file_extensions(size_t *extension_index, size_t len, char **exts); ++size_t combine_file_patterns(size_t *pattern_index, size_t len, char **pats); + #endif +diff --git a/src/options.c b/src/options.c +index c511dcc..462894b 100644 +--- a/src/options.c ++++ b/src/options.c +@@ -183,9 +183,9 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + size_t longopts_len, full_len; + option_t *longopts; + char *lang_regex = NULL; +- size_t *ext_index = NULL; +- char *extensions = NULL; +- size_t num_exts = 0; ++ size_t *pat_index = NULL; ++ char *patterns = NULL; ++ size_t num_pats = 0; + + init_options(); + +@@ -272,8 +272,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + full_len = (longopts_len + lang_count + 1); + longopts = ag_malloc(full_len * sizeof(option_t)); + memcpy(longopts, base_longopts, sizeof(base_longopts)); +- ext_index = (size_t *)ag_malloc(sizeof(size_t) * lang_count); +- memset(ext_index, 0, sizeof(size_t) * lang_count); ++ pat_index = (size_t *)ag_malloc(sizeof(size_t) * lang_count); ++ memset(pat_index, 0, sizeof(size_t) * lang_count); + + for (i = 0; i < lang_count; i++) { + option_t opt = { langs[i].name, no_argument, NULL, 0 }; +@@ -502,7 +502,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + + for (i = 0; i < lang_count; i++) { + if (strcmp(longopts[opt_index].name, langs[i].name) == 0) { +- ext_index[lang_num++] = i; ++ pat_index[lang_num++] = i; + break; + } + } +@@ -518,16 +518,16 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + } + + +- if (ext_index[0]) { +- num_exts = combine_file_extensions(ext_index, lang_num, &extensions); +- lang_regex = make_lang_regex(extensions, num_exts); ++ if (pat_index[0]) { ++ num_pats = combine_file_patterns(pat_index, lang_num, &patterns); ++ lang_regex = make_lang_regex(patterns, num_pats); + compile_study(&opts.file_search_regex, &opts.file_search_regex_extra, lang_regex, 0, 0); + } + +- if (extensions) { +- free(extensions); ++ if (patterns) { ++ free(patterns); + } +- free(ext_index); ++ free(pat_index); + if (lang_regex) { + free(lang_regex); + } +@@ -564,8 +564,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + for (lang_index = 0; lang_index < lang_count; lang_index++) { + printf(" --%s\n ", langs[lang_index].name); + int j; +- for (j = 0; j < MAX_EXTENSIONS && langs[lang_index].extensions[j]; j++) { +- printf(" .%s", langs[lang_index].extensions[j]); ++ for (j = 0; j < MAX_PATTERNS && langs[lang_index].patterns[j]; j++) { ++ printf(" .%s", langs[lang_index].patterns[j]); + } + printf("\n\n"); + } +-- +2.3.0 + diff --git a/mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch b/mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch deleted file mode 100644 index d250abd0bc..0000000000 --- a/mingw-w64-ag/0001-lang-allow-full-filenames-as-well-as-extensions.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- the_silver_searcher-0.29.1/src/lang.c.orig 2015-02-22 18:08:35.822371800 +0000 -+++ the_silver_searcher-0.29.1/src/lang.c 2015-02-22 18:12:32.962043900 +0000 -@@ -84,17 +84,26 @@ - char *make_lang_regex(char *ext_array, size_t num_exts) { - int regex_capacity = 100; - char *regex = ag_malloc(regex_capacity); -- int regex_length = 3; -+ int regex_length = 1; - int subsequent = 0; -+ const char *dot = "\\."; -+ size_t strlen_dot = strlen(dot); - char *extension; - size_t i; - -- strcpy(regex, "\\.("); -+ strcpy(regex, "("); - - for (i = 0; i < num_exts; ++i) { - extension = ext_array + i * SINGLE_EXT_LEN; - int extension_length = strlen(extension); -- while (regex_length + extension_length + 3 + subsequent > regex_capacity) { -+ const char *start = extension; -+ int is_extension = (*start == '^') ? 0 : 1; -+ int length = strlen(start); -+ if (is_extension == 0) { -+ start += 1; -+ length -= 1; -+ } -+ while (regex_length + length + 3 + subsequent > regex_capacity) { - regex_capacity *= 2; - regex = ag_realloc(regex, regex_capacity); - } -@@ -103,8 +112,12 @@ - } else { - subsequent = 1; - } -- strcpy(regex + regex_length, extension); -- regex_length += extension_length; -+ if (is_extension == 1) { -+ strcpy(regex + regex_length, dot); -+ regex_length += strlen_dot; -+ } -+ strcpy(regex + regex_length, start); -+ regex_length += length; - } - - regex[regex_length++] = ')'; diff --git a/mingw-w64-ag/0002-lang-autotools-new.patch b/mingw-w64-ag/0002-lang-autotools-new.patch deleted file mode 100644 index 9bd6633236..0000000000 --- a/mingw-w64-ag/0002-lang-autotools-new.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -urN the_silver_searcher-0.27.0.orig/src/lang.c the_silver_searcher-0.27.0/src/lang.c ---- the_silver_searcher-0.27.0.orig/src/lang.c 2014-11-15 02:55:17.000000000 +0000 -+++ the_silver_searcher-0.27.0/src/lang.c 2015-02-22 12:11:00.584364900 +0000 -@@ -8,6 +8,7 @@ - { "actionscript", { "as", "mxml" } }, - { "ada", { "ada", "adb", "ads" } }, - { "asm", { "asm", "s" } }, -+ { "autotools", { "ac", "am", "in", "m4", "pc" } }, - { "batch", { "bat", "cmd" } }, - { "cc", { "c", "h", "xs" } }, - { "cfmx", { "cfc", "cfm", "cfml" } }, diff --git a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch new file mode 100644 index 0000000000..279400771d --- /dev/null +++ b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch @@ -0,0 +1,235 @@ +From 4beaed974361f53f2f1aef0d1c10b06a9d49ad0e Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 23 Feb 2015 22:12:15 +0000 +Subject: [PATCH 2/5] options: Fix ordering problems with --color + +Moved around the logic of setting opts.color so that: + +1. If the user explicitly requests or disables it, then + that is respected. + +2. The old location of the isatty check meant that if the + user specified --color, then group would get set to 0, + color would be TRUE and the output would not show any + filenames. + +3. color defaults to TRUE if MSYSCON env. var is "mintty.exe" +--- + configure.ac | 2 +- + src/options.c | 126 ++++++++++++++++++++++++++++++++++------------------------ + src/options.h | 10 +++++ + 3 files changed, 84 insertions(+), 54 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 7116788..e29d1c4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -24,7 +24,7 @@ AX_PTHREAD( + ) + + # Run CFLAGS="-pg" ./configure if you want debug symbols +-CFLAGS="$CFLAGS $PTHREAD_CFLAGS $PCRE_CFLAGS -Wall -Wextra -Wformat=2 -Wno-format-nonliteral -Wshadow -Wpointer-arith -Wcast-qual -Wmissing-prototypes -Wno-missing-braces -std=gnu89 -D_GNU_SOURCE -O2" ++CFLAGS="$CFLAGS $PTHREAD_CFLAGS $PCRE_CFLAGS -Wall -Wextra -Wformat=2 -Wno-format-nonliteral -Wshadow -Wpointer-arith -Wcast-qual -Wmissing-prototypes -Wno-missing-braces -std=gnu89 -D_GNU_SOURCE -O0" + LDFLAGS="$LDFLAGS" + + case $host in +diff --git a/src/options.c b/src/options.c +index 462894b..32d5248 100644 +--- a/src/options.c ++++ b/src/options.c +@@ -113,9 +113,12 @@ void init_options(void) { + memset(&opts, 0, sizeof(opts)); + opts.casing = CASE_DEFAULT; + #ifdef _WIN32 +- opts.color = (getenv("ANSICON") || getenv("CMDER_ROOT")) ? TRUE : FALSE; ++ const char* env_MSYSCON = getenv("MSYSCON"); ++ opts.color = ((getenv("ANSICON") || getenv("CMDER_ROOT") ++ || (env_MSYSCON && !strcmp(env_MSYSCON, "mintty.exe")))) ++ ? COLOR_DEFAULT_TRUE : COLOR_DEFAULT_FALSE; + #else +- opts.color = TRUE; ++ opts.color = COLOR_DEFAULT_TRUE; + #endif + opts.max_matches_per_file = 0; + opts.max_search_depth = DEFAULT_MAX_SEARCH_DEPTH; +@@ -199,7 +202,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + { "before", optional_argument, NULL, 'B' }, + { "break", no_argument, &opts.print_break, 1 }, + { "case-sensitive", no_argument, NULL, 's' }, +- { "color", no_argument, &opts.color, 1 }, ++ { "color", no_argument, &opts.color, COLOR_EXPLICIT_TRUE }, + { "color-line-number", required_argument, NULL, 0 }, + { "color-match", required_argument, NULL, 0 }, + { "color-path", required_argument, NULL, 0 }, +@@ -233,7 +236,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + { "no-recurse", no_argument, NULL, 'n' }, + { "noaffinity", no_argument, &opts.use_thread_affinity, 0 }, + { "nobreak", no_argument, &opts.print_break, 0 }, +- { "nocolor", no_argument, &opts.color, 0 }, ++ { "nocolor", no_argument, &opts.color, COLOR_EXPLICIT_FALSE }, + { "nofilename", no_argument, NULL, 0 }, + { "nofollow", no_argument, &opts.follow_symlinks, 0 }, + { "nogroup", no_argument, &group, 0 }, +@@ -295,22 +298,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + } + } + +- /* If we're not outputting to a terminal. change output to: +- * turn off colors +- * print filenames on every line +- */ +- if (!isatty(fileno(stdout))) { +- opts.color = 0; +- group = 0; +- +- /* Don't search the file that stdout is redirected to */ +- rv = fstat(fileno(stdout), &statbuf); +- if (rv != 0) { +- die("Error fstat()ing stdout"); +- } +- opts.stdout_inode = statbuf.st_ino; +- } +- + int pcre_opts = 0; + while ((ch = getopt_long(argc, argv, "A:aB:C:cDG:g:FfHhiLlm:nop:QRrSsvVtuUwz0", longopts, &opt_index)) != -1) { + switch (ch) { +@@ -612,44 +599,11 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + opts.after = opts.context; + } + +- if (opts.ackmate) { +- opts.color = 0; +- opts.print_break = 1; +- group = 1; +- opts.search_stream = 0; +- } + +- if (opts.vimgrep) { +- opts.color = 0; +- opts.print_break = 0; +- group = 1; +- opts.search_stream = 0; +- opts.print_path = PATH_PRINT_NOTHING; +- } + +- if (opts.parallel) { +- opts.search_stream = 0; +- } + +- if (opts.print_path != PATH_PRINT_DEFAULT || opts.print_break == 0) { +- goto skip_group; +- } + +- if (group) { +- opts.print_break = 1; +- } else { +- opts.print_path = PATH_PRINT_DEFAULT_EACH_LINE; +- opts.print_break = 0; +- } + +-skip_group: +- if (opts.search_stream) { +- opts.print_break = 0; +- opts.print_path = PATH_PRINT_NOTHING; +- if (opts.print_line_numbers != 2) { +- opts.print_line_numbers = 0; +- } +- } + + if (accepts_query && argc > 0) { + // use the provided query +@@ -703,4 +657,70 @@ skip_group: + } + (*paths)[i] = NULL; + (*base_paths)[i] = NULL; ++ ++ /* If we're not outputting to a terminal. change output to: ++ * turn off colors ++ * print filenames on every line ++ */ ++ if (!isatty(fileno(stdout))) { ++ /* Don't search the file that stdout is redirected to */ ++ rv = fstat(fileno(stdout), &statbuf); ++ if (rv != 0) { ++ die("Error fstat()ing stdout"); ++ } ++ opts.stdout_inode = statbuf.st_ino; ++ ++ /* Assume the user knows best */ ++ if (opts.color != COLOR_EXPLICIT_TRUE) { ++ opts.color = COLOR_DEFAULT_FALSE; ++ group = 0; ++ } ++ } ++ ++ ++ if (opts.ackmate) { ++ opts.color = COLOR_EMULATION_FALSE; ++ opts.print_break = 1; ++ group = 1; ++ opts.search_stream = 0; ++ } ++ ++ if (opts.vimgrep) { ++ opts.color = COLOR_EMULATION_FALSE; ++ opts.print_break = 0; ++ group = 1; ++ opts.search_stream = 0; ++ opts.print_path = PATH_PRINT_NOTHING; ++ } ++ ++ if (opts.color == COLOR_DEFAULT_FALSE || opts.color == COLOR_EXPLICIT_FALSE || ++ opts.color == COLOR_EMULATION_FALSE) { ++ opts.color = COLOR_FALSE; ++ } else { ++ opts.color = COLOR_TRUE; ++ } ++ ++ if (opts.parallel) { ++ opts.search_stream = 0; ++ } ++ ++ if (opts.print_path != PATH_PRINT_DEFAULT || opts.print_break == 0) { ++ goto skip_group; ++ } ++ ++ if (group) { ++ opts.print_break = 1; ++ } else { ++ opts.print_path = PATH_PRINT_DEFAULT_EACH_LINE; ++ opts.print_break = 0; ++ } ++ ++skip_group: ++ if (opts.search_stream) { ++ opts.print_break = 0; ++ opts.print_path = PATH_PRINT_NOTHING; ++ if (opts.print_line_numbers != 2) { ++ opts.print_line_numbers = 0; ++ } ++ } + } +diff --git a/src/options.h b/src/options.h +index c7d419f..758f6a0 100644 +--- a/src/options.h ++++ b/src/options.h +@@ -26,6 +26,16 @@ enum path_print_behavior { + PATH_PRINT_NOTHING + }; + ++enum color_behaviour { ++ COLOR_FALSE = 0, ++ COLOR_TRUE = 1, ++ COLOR_DEFAULT_FALSE, ++ COLOR_DEFAULT_TRUE, ++ COLOR_EXPLICIT_FALSE, ++ COLOR_EXPLICIT_TRUE, ++ COLOR_EMULATION_FALSE, ++}; ++ + typedef struct { + int ackmate; + pcre *ackmate_dir_filter; +-- +2.3.0 + diff --git a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch new file mode 100644 index 0000000000..9b8f16c651 --- /dev/null +++ b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch @@ -0,0 +1,24 @@ +From c48aa516a84895e6869109a9ea24b71e696e82d9 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 23 Feb 2015 22:16:54 +0000 +Subject: [PATCH 3/5] lang: Add autotools (ac, am, in, m4, pc) + +--- + src/lang.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/lang.c b/src/lang.c +index fcdfbbc..1c78d7c 100644 +--- a/src/lang.c ++++ b/src/lang.c +@@ -8,6 +8,7 @@ lang_spec_t langs[] = { + { "actionscript", { "as", "mxml" } }, + { "ada", { "ada", "adb", "ads" } }, + { "asm", { "asm", "s" } }, ++ { "autotools", { "ac", "am", "in", "m4", "pc" } }, + { "batch", { "bat", "cmd" } }, + { "cc", { "c", "h", "xs" } }, + { "cfmx", { "cfc", "cfm", "cfml" } }, +-- +2.3.0 + diff --git a/mingw-w64-ag/0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch b/mingw-w64-ag/0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch deleted file mode 100644 index 0b04304468..0000000000 --- a/mingw-w64-ag/0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN the_silver_searcher-0.27.0.orig/src/lang.c the_silver_searcher-0.27.0/src/lang.c ---- the_silver_searcher-0.27.0.orig/src/lang.c 2015-02-22 12:12:18.511907300 +0000 -+++ the_silver_searcher-0.27.0/src/lang.c 2015-02-22 12:14:53.790588400 +0000 -@@ -39,7 +39,7 @@ - { "lisp", { "lisp", "lsp" } }, - { "lua", { "lua" } }, - { "m4", { "m4" } }, -- { "make", { "Makefiles", "mk", "mak" } }, -+ { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak" } }, - { "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } }, - { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, - { "matlab", { "m" } }, diff --git a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch new file mode 100644 index 0000000000..95acaebca1 --- /dev/null +++ b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch @@ -0,0 +1,28 @@ +From c63189188ed3b600d8839edb74cc8aa15c252ee9 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 23 Feb 2015 22:18:27 +0000 +Subject: [PATCH 4/5] lang: Add to make (^Makefile, ^Makefile.Debug, + ^Makefile.Release) + +All additions are full filename patterns. The .Debug and .Release ones +are used by Qt. +--- + src/lang.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lang.c b/src/lang.c +index 1c78d7c..c1d3152 100644 +--- a/src/lang.c ++++ b/src/lang.c +@@ -39,7 +39,7 @@ lang_spec_t langs[] = { + { "lisp", { "lisp", "lsp" } }, + { "lua", { "lua" } }, + { "m4", { "m4" } }, +- { "make", { "Makefiles", "mk", "mak" } }, ++ { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak" } }, + { "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } }, + { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, + { "matlab", { "m" } }, +-- +2.3.0 + diff --git a/mingw-w64-ag/0004-mingw-build.patch b/mingw-w64-ag/0004-mingw-build.patch deleted file mode 100644 index 5796ef9a55..0000000000 --- a/mingw-w64-ag/0004-mingw-build.patch +++ /dev/null @@ -1,61 +0,0 @@ ---- the_silver_searcher-0.27.0/configure.ac.orig 2015-01-19 15:22:41.877800000 +0300 -+++ the_silver_searcher-0.27.0/configure.ac 2015-01-19 15:22:45.902600000 +0300 -@@ -50,6 +50,14 @@ - - AC_CHECK_FUNCS(fgetln getline realpath strlcpy strndup vasprintf madvise posix_fadvise) - -+case "$host" in -+ *-*-mingw*) -+ LIBS="$LIBS -lshlwapi" -+ ;; -+ *) -+ ;; -+esac -+ - AC_CONFIG_FILES([Makefile the_silver_searcher.spec]) - AC_CONFIG_HEADERS([src/config.h]) - ---- the_silver_searcher-0.27.0/src/util.c.orig 2015-01-19 15:24:40.718600000 +0300 -+++ the_silver_searcher-0.27.0/src/util.c 2015-01-19 15:24:43.058600000 +0300 -@@ -9,6 +9,7 @@ - #include "config.h" - - #ifdef _WIN32 -+#include - #define flockfile(x) - #define funlockfile(x) - #define getc_unlocked(x) getc(x) ---- the_silver_searcher-0.27.0/src/print.c.orig 2015-01-19 15:46:04.745600000 +0300 -+++ the_silver_searcher-0.27.0/src/print.c 2015-01-19 15:55:36.813200000 +0300 -@@ -34,9 +34,9 @@ - print_path(path, ':'); - } - if (opts.color) { -- fprintf(out_fd, "%s%lu%s%c", opts.color_line_number, count, color_reset, sep); -+ fprintf(out_fd, "%s%zu%s%c", opts.color_line_number, count, color_reset, sep); - } else { -- fprintf(out_fd, "%lu%c", count, sep); -+ fprintf(out_fd, "%zu%c", count, sep); - } - } - -@@ -149,8 +149,8 @@ - print_line_number(line, ';'); - for (; last_printed_match < cur_match; last_printed_match++) { - fprintf(out_fd, "%lu %lu", -- (matches[last_printed_match].start - prev_line_offset), -- (matches[last_printed_match].end - matches[last_printed_match].start)); -+ (unsigned long)(matches[last_printed_match].start - prev_line_offset), -+ ((unsigned long)matches[last_printed_match].end - matches[last_printed_match].start)); - last_printed_match == cur_match - 1 ? fputc(':', out_fd) : fputc(',', out_fd); - } - print_line(buf, i, prev_line_offset); -@@ -243,7 +243,7 @@ - void print_column_number(const match_t matches[], size_t last_printed_match, - size_t prev_line_offset, const char sep) { - fprintf(out_fd, "%lu%c", -- (matches[last_printed_match].start - prev_line_offset) + 1, -+ (unsigned long)((matches[last_printed_match].start - prev_line_offset) + 1), - sep); - } - diff --git a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch new file mode 100644 index 0000000000..934a0b5508 --- /dev/null +++ b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch @@ -0,0 +1,25 @@ +From b4db25a37466342e13979fe9e64f7f4fbe4a4f3f Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 23 Feb 2015 22:21:26 +0000 +Subject: [PATCH 5/5] lang: Add makepkg (^PKGBUILD, diff, patch, in, install) + +Used by the makepkg build system of ArchLinux and MSYS2 +--- + src/lang.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/lang.c b/src/lang.c +index c1d3152..bf37b20 100644 +--- a/src/lang.c ++++ b/src/lang.c +@@ -40,6 +40,7 @@ lang_spec_t langs[] = { + { "lua", { "lua" } }, + { "m4", { "m4" } }, + { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak" } }, ++ { "makepkg", { "^PKGBUILD", "diff", "patch", "in", "install" } }, + { "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } }, + { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, + { "matlab", { "m" } }, +-- +2.3.0 + diff --git a/mingw-w64-ag/0005-lang-makepkg-new.patch b/mingw-w64-ag/0005-lang-makepkg-new.patch deleted file mode 100644 index 0df8bfa0c7..0000000000 --- a/mingw-w64-ag/0005-lang-makepkg-new.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -urN the_silver_searcher-0.27.0.orig/src/lang.c the_silver_searcher-0.27.0/src/lang.c ---- the_silver_searcher-0.27.0.orig/src/lang.c 2015-02-22 13:29:01.378778800 +0000 -+++ the_silver_searcher-0.27.0/src/lang.c 2015-02-22 13:35:00.015227300 +0000 -@@ -40,6 +40,7 @@ - { "lua", { "lua" } }, - { "m4", { "m4" } }, - { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak" } }, -+ { "makepkg", { "^PKGBUILD", "diff", "patch", "in", "install" } }, - { "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } }, - { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, - { "matlab", { "m" } }, diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index 825eb007a5..31dcc5a531 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -4,8 +4,8 @@ _realname=ag _longname=the_silver_searcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.29.1 -pkgrel=2 +pkgver=r1497.773e96a +pkgrel=1 pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" arch=('any') url="http://geoff.greer.fm/ag" @@ -16,26 +16,32 @@ depends=("${MINGW_PACKAGE_PREFIX}-pcre" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs') # '!strip' 'debug') -source=(http://geoff.greer.fm/ag/releases/$_longname-$pkgver.tar.gz - "0001-lang-allow-full-filenames-as-well-as-extensions.patch" - "0002-lang-autotools-new.patch" - "0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch" - "0004-mingw-build.patch" - "0005-lang-makepkg-new.patch") -md5sums=('be0cb0f64582e758206f5bd7386d4373' - '42bb985a2e8e6b7bea407e44269cc4d8' - '70b62fa84b9caeb025f8e4a57bf96f65' - '40aa7b0c03472ee141cf5afe2343ef04' - '0dbfdf4ddba43446de0f4941844dfcfd' - 'e246c39f073615bedb4ec7d79db6d82b') +source=(#http://geoff.greer.fm/ag/releases/$_longname-$pkgver.tar.gz + "${_realname}"::"git+https://github.com/msys2/the_silver_searcher.git" + "0001-lang-Allow-both-extensions-and-full-filenames.patch" + "0002-options-Fix-ordering-problems-with-color.patch" + "0003-lang-Add-autotools-ac-am-in-m4-pc.patch" + "0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch" + "0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch") +md5sums=('SKIP' + 'c14098e55517569f5a889b3722538a1f' + '5f91dc41b7b2b3fa07e1a1f412e6132b' + 'c5c8e3598798b7c5775b88b5f10ba50a' + '5da026fa76e7c5a409f616a6725a6813' + 'f235cddd834398465544641c76a06f18') + +pkgver() { + cd ${srcdir}/${_realname} + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} prepare() { - cd "${srcdir}"/${_longname}-${pkgver} - patch -p1 -i "${srcdir}"/0001-lang-allow-full-filenames-as-well-as-extensions.patch - patch -p1 -i "${srcdir}"/0002-lang-autotools-new.patch - patch -p1 -i "${srcdir}"/0003-lang-make-add-Makefile-Makefile-Debug-Makefile-Release.patch - patch -p1 -i "${srcdir}"/0004-mingw-build.patch - patch -p1 -i "${srcdir}"/0005-lang-makepkg-new.patch + cd "${srcdir}"/${_realname} + git am "${srcdir}"/0001-lang-Allow-both-extensions-and-full-filenames.patch + git am "${srcdir}"/0002-options-Fix-ordering-problems-with-color.patch + git am "${srcdir}"/0003-lang-Add-autotools-ac-am-in-m4-pc.patch + git am "${srcdir}"/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch + git am "${srcdir}"/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch # configure.ac forces -O2, so force it to -O0 if debugging. if check_option "debug" "y"; then @@ -50,7 +56,7 @@ build() { mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - "${srcdir}"/${_longname}-${pkgver}/configure \ + "${srcdir}"/${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --{build,host}=${MINGW_CHOST} From 36b84f15fdf961a8a1723d1a286534ae5323af5b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 24 Feb 2015 11:41:50 +0300 Subject: [PATCH 0571/2060] ag: Fix version creation. --- mingw-w64-ag/PKGBUILD | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index 31dcc5a531..8b6fee6bde 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -4,14 +4,15 @@ _realname=ag _longname=the_silver_searcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=r1497.773e96a +pkgver=0.29.1.r1497.773e96a pkgrel=1 pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" arch=('any') url="http://geoff.greer.fm/ag" license=("Apache") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git") depends=("${MINGW_PACKAGE_PREFIX}-pcre" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-zlib") @@ -32,7 +33,8 @@ md5sums=('SKIP' pkgver() { cd ${srcdir}/${_realname} - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + local AC_INIT_VER=$(grep AC_INIT configure.ac -A5 | tr '\n' ' ' | sed -e 's/AC_INIT([^,]\+,\s*\[\?\([0-9.a-z]\+\).*/\1/') + printf "%s.r%s.%s" "${AC_INIT_VER}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { From b841adc927b6f3fc7fda19d57a96724da4eccb7f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 24 Feb 2015 23:32:03 +0000 Subject: [PATCH 0572/2060] ag: Better color handling On _WIN32, FIFOs do not have color output disabled since for mintty.exe, console output is via pipes. --- ...w-both-extensions-and-full-filenames.patch | 2 +- ...ons-Fix-ordering-problems-with-color.patch | 36 +++++++++++++------ ...03-lang-Add-autotools-ac-am-in-m4-pc.patch | 2 +- ...-Makefile-Makefile.Debug-Makefile.Re.patch | 2 +- ...kepkg-PKGBUILD-diff-patch-in-install.patch | 2 +- mingw-w64-ag/PKGBUILD | 12 +++---- 6 files changed, 35 insertions(+), 21 deletions(-) diff --git a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch index 55aa8f612a..3459f15607 100644 --- a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch +++ b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch @@ -1,4 +1,4 @@ -From bb58cf2f4b9ab41931b51b5f7a050711fcfbaa75 Mon Sep 17 00:00:00 2001 +From 755575cefe9a2cf592940fad7474896f12ff1771 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 21:46:45 +0000 Subject: [PATCH 1/5] lang: Allow both extensions and full filenames diff --git a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch index 279400771d..4e9fed7498 100644 --- a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch +++ b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch @@ -1,4 +1,4 @@ -From 4beaed974361f53f2f1aef0d1c10b06a9d49ad0e Mon Sep 17 00:00:00 2001 +From 8a9ac7f208f38fb89eb5032ddc68055e6ab98f99 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:12:15 +0000 Subject: [PATCH 2/5] options: Fix ordering problems with --color @@ -8,17 +8,20 @@ Moved around the logic of setting opts.color so that: 1. If the user explicitly requests or disables it, then that is respected. -2. The old location of the isatty check meant that if the +2. Automatic disabling of color doesn't happen for FIFOs + on Windows since mintty.exe console handles are pipes. + +3. The old location of the isatty check meant that if the user specified --color, then group would get set to 0, color would be TRUE and the output would not show any - filenames. + filenames at all. -3. color defaults to TRUE if MSYSCON env. var is "mintty.exe" +4. Default color to TRUE if MSYSCON env. var = mintty.exe --- configure.ac | 2 +- - src/options.c | 126 ++++++++++++++++++++++++++++++++++------------------------ + src/options.c | 137 +++++++++++++++++++++++++++++++++++----------------------- src/options.h | 10 +++++ - 3 files changed, 84 insertions(+), 54 deletions(-) + 3 files changed, 95 insertions(+), 54 deletions(-) diff --git a/configure.ac b/configure.ac index 7116788..e29d1c4 100644 @@ -34,7 +37,7 @@ index 7116788..e29d1c4 100644 case $host in diff --git a/src/options.c b/src/options.c -index 462894b..32d5248 100644 +index 462894b..e2a93b2 100644 --- a/src/options.c +++ b/src/options.c @@ -113,9 +113,12 @@ void init_options(void) { @@ -138,7 +141,7 @@ index 462894b..32d5248 100644 if (accepts_query && argc > 0) { // use the provided query -@@ -703,4 +657,70 @@ skip_group: +@@ -703,4 +657,81 @@ skip_group: } (*paths)[i] = NULL; (*base_paths)[i] = NULL; @@ -154,11 +157,22 @@ index 462894b..32d5248 100644 + die("Error fstat()ing stdout"); + } + opts.stdout_inode = statbuf.st_ino; -+ + /* Assume the user knows best */ + if (opts.color != COLOR_EXPLICIT_TRUE) { -+ opts.color = COLOR_DEFAULT_FALSE; -+ group = 0; ++ /* On Windows redirection to regular file *can* br detected via ++ statbuf.st_mode & S_IFREG (while statbuf.st_ino is always 0) */ ++ if (statbuf.st_ino != 0 ++ || statbuf.st_mode & S_IFREG ++#if !defined(_WIN32) ++ /* On Windows bash.exe pipes cannot be distinguished from cmd.exe ++ pipes or mintty.exe console output (statbuf.st_mode & S_IFIFO) ++ so its best not to disable color output here. */ ++ || statbuf.st_mode & S_IFIFO ++#endif ++ ) { ++ opts.color = COLOR_DEFAULT_FALSE; ++ group = 0; ++ } + } + } + diff --git a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch index 9b8f16c651..ad551a7828 100644 --- a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch +++ b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch @@ -1,4 +1,4 @@ -From c48aa516a84895e6869109a9ea24b71e696e82d9 Mon Sep 17 00:00:00 2001 +From 4d1c15a61d0adfa69e4768fc56cb5ebb18520ba6 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:16:54 +0000 Subject: [PATCH 3/5] lang: Add autotools (ac, am, in, m4, pc) diff --git a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch index 95acaebca1..8da1901ae1 100644 --- a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch +++ b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch @@ -1,4 +1,4 @@ -From c63189188ed3b600d8839edb74cc8aa15c252ee9 Mon Sep 17 00:00:00 2001 +From d8db4babec0dd29744c9b2ba02b8c11a1daceb36 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:18:27 +0000 Subject: [PATCH 4/5] lang: Add to make (^Makefile, ^Makefile.Debug, diff --git a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch index 934a0b5508..3b22b7a35a 100644 --- a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch +++ b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch @@ -1,4 +1,4 @@ -From b4db25a37466342e13979fe9e64f7f4fbe4a4f3f Mon Sep 17 00:00:00 2001 +From 5e9d9bf452f1f4777cc987c22e76bdba3f2098ee Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:21:26 +0000 Subject: [PATCH 5/5] lang: Add makepkg (^PKGBUILD, diff, patch, in, install) diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index 8b6fee6bde..26cbded827 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -5,7 +5,7 @@ _realname=ag _longname=the_silver_searcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.29.1.r1497.773e96a -pkgrel=1 +pkgrel=2 pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" arch=('any') url="http://geoff.greer.fm/ag" @@ -25,11 +25,11 @@ source=(#http://geoff.greer.fm/ag/releases/$_longname-$pkgver.tar.gz "0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch" "0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch") md5sums=('SKIP' - 'c14098e55517569f5a889b3722538a1f' - '5f91dc41b7b2b3fa07e1a1f412e6132b' - 'c5c8e3598798b7c5775b88b5f10ba50a' - '5da026fa76e7c5a409f616a6725a6813' - 'f235cddd834398465544641c76a06f18') + '932f1a99ab4ba7fd83aa381fc83fd673' + '0d6246065ed9502b0cd873c7e190dd13' + '46f89c42a408a55c05d719ac7e039541' + '3e6c13ece8e75dfd6560842112ca8ec9' + '2b568cd783a2a3f5da38b697855956e9') pkgver() { cd ${srcdir}/${_realname} From c8fdf7d82b1e60ec4358ed332932dc1789223290 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 25 Feb 2015 00:18:57 +0000 Subject: [PATCH 0573/2060] python3: Remove unneeded patch 0580-mingw32-test-REPARSE_DATA_BUFFER.patch is no longer needed. .. also fix an incorrect sha1sum. --- ...580-mingw32-test-REPARSE_DATA_BUFFER.patch | 32 ------------------- mingw-w64-python3/PKGBUILD | 7 ++-- 2 files changed, 2 insertions(+), 37 deletions(-) delete mode 100644 mingw-w64-python3/0580-mingw32-test-REPARSE_DATA_BUFFER.patch diff --git a/mingw-w64-python3/0580-mingw32-test-REPARSE_DATA_BUFFER.patch b/mingw-w64-python3/0580-mingw32-test-REPARSE_DATA_BUFFER.patch deleted file mode 100644 index e04d38d6c4..0000000000 --- a/mingw-w64-python3/0580-mingw32-test-REPARSE_DATA_BUFFER.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:21:45.694779300 +0100 -+++ b/configure.ac 2014-10-11 14:21:48.382933000 +0100 -@@ -4363,6 +4363,28 @@ - # check for endianness - AC_C_BIGENDIAN - -+# REPARSE_DATA_BUFFER is in winnt.h on mingw32 and (unusably) ddk/ntifs.h on mingw64. -+case $host in -+ *-*-mingw*) -+AC_CACHE_CHECK([if struct REPARSE_DATA_BUFFER is in winnt.h], -+[ac_cv_struct_reparse_data_buffer_in_winnt_h], -+ [AC_COMPILE_IFELSE( -+ [AC_LANG_PROGRAM( -+ [#include -+ #include ], -+ [REPARSE_DATA_BUFFER rdb], -+ )], -+ [ac_cv_struct_reparse_data_buffer_in_winnt_h=yes], -+ [ac_cv_struct_reparse_data_buffer_in_winnt_h=no] -+ ) -+]) -+if test "x${ac_cv_struct_reparse_data_buffer_in_winnt_h}" = xyes; then -+ AC_DEFINE([REPARSE_DATA_BUFFER_IN_WINNT], [], [REPARSE_DATA_BUFFER in winnt.h]) -+ AC_SUBST(REPARSE_DATA_BUFFER_IN_WINNT) -+fi -+ ;; -+esac -+ - # ABI version string for Python extension modules. This appears between the - # periods in shared library file names, e.g. foo..so. It is calculated - # from the following attributes which affect the ABI of this Python build (in diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 5574926b4b..bbbd712daa 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -17,7 +17,7 @@ _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.4 pkgver=${_pybasever}.2 -pkgrel=7 +pkgrel=8 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -88,7 +88,6 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0560-mingw-use-posix-getpath.patch 0565-mingw-add-ModuleFileName-dir-to-PATH.patch 0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch - 0580-mingw32-test-REPARSE_DATA_BUFFER.patch 0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch 0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch 0610-msys-cygwin-semi-native-build-sysconfig.patch @@ -190,7 +189,6 @@ prepare() { patch -Np1 -i "${srcdir}"/0560-mingw-use-posix-getpath.patch patch -Np1 -i "${srcdir}"/0565-mingw-add-ModuleFileName-dir-to-PATH.patch patch -Np1 -i "${srcdir}"/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch - patch -Np1 -i "${srcdir}"/0580-mingw32-test-REPARSE_DATA_BUFFER.patch patch -Np1 -i "${srcdir}"/0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch patch -Np1 -i "${srcdir}"/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch patch -Np1 -i "${srcdir}"/0610-msys-cygwin-semi-native-build-sysconfig.patch @@ -413,13 +411,12 @@ sha1sums=('0727d8a8498733baabe6f51632b9bab0cbaa9ada' '8d52a719d7bcb9b03dac6a28cd899a6d83f770bc' '3cc4985c4b73f60c29a45dded5e2a36ecf18364b' 'e514bb32094e62e811bf187ab451e719a522f2fe' - 'efbdd52f48140207ef414150563406a214d4252e' + 'cdb77d00db2061c5e44a31876c5efb8db7c65a76' '02652e5775dfa3966a09349169bc8c86d5e9a980' '2b81ea5b3f8f06c0ab0df9306ec57dab8410778c' '1892bb2df631f49485deae5a1ee8dbae5691beeb' '08dfc0c0acd942901011cb9e1fd7a65a6f872771' '2f72a9036599de2ca02e5de1316d7b1771cada08' - '96e514da87da8d0d223cf992d270800bc75d3f7d' 'c596055a0a53b00dacd52940bb6c5b91bcb368b4' 'e58edbb86a508d5ad2e5542e7407e26a59b19053' '567d42d169dea66c32601a78f1953bf39f8bb7d2' From 26263b0d720733db795c28ae06b32f7ed07074e4 Mon Sep 17 00:00:00 2001 From: Chilledheart Date: Wed, 25 Feb 2015 02:32:55 +0800 Subject: [PATCH 0574/2060] qt5: update to 5.4.1 --- mingw-w64-qt5/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 530d582a96..8692f28a24 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -75,7 +75,7 @@ fi _opengl=desktop _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.4.0 +_ver_base=5.4.1 pkgver=${_ver_base//-/} pkgrel=1 arch=('any') @@ -172,7 +172,7 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch 0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch 0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch) -md5sums=('21843b00ecde8956217faab391bc007b' +md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' '53edcf1df69ae8134a196292447ddaa3' From 257471276dfc771ddf4b168fa003a308ae09db07 Mon Sep 17 00:00:00 2001 From: Chilledheart Date: Wed, 25 Feb 2015 12:08:57 +0800 Subject: [PATCH 0575/2060] qt5-static: Update to 5.4.1 --- mingw-w64-qt5-static/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 06ab17b8cc..06d478b7e4 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -75,9 +75,9 @@ fi _opengl=desktop _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.4.0 +_ver_base=5.4.1 pkgver=${_ver_base//-/} -pkgrel=3 +pkgrel=1 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -178,7 +178,7 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch 0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch) -md5sums=('21843b00ecde8956217faab391bc007b' +md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' '53edcf1df69ae8134a196292447ddaa3' From f855c82430dd75f4fb4b64ca2acd8c39e195bfe8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Feb 2015 08:34:19 +0300 Subject: [PATCH 0576/2060] cling: clone llvm/clang sources in different folders than original llvm/clang. --- mingw-w64-cling-git/PKGBUILD | 61 ++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/mingw-w64-cling-git/PKGBUILD b/mingw-w64-cling-git/PKGBUILD index 5ae84bbdcc..cda77dda7a 100644 --- a/mingw-w64-cling-git/PKGBUILD +++ b/mingw-w64-cling-git/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Martell Malone _realname=cling - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-cern-git" "${MINGW_PACKAGE_PREFIX}-clang-cern-git" "${MINGW_PACKAGE_PREFIX}-clang-analyzer-cern-git" @@ -18,8 +17,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "python2" "patch" "groff") depends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=("llvm"::"git+http://root.cern.ch/git/llvm.git#tag=$clingver" - "clang"::"git+http://root.cern.ch/git/clang.git#tag=$clingver" +source=("llvm-cern"::"git+http://root.cern.ch/git/llvm.git#tag=$clingver" + "clang-cern"::"git+http://root.cern.ch/git/clang.git#tag=$clingver" "cling"::"git+http://root.cern.ch/git/cling.git" "0001-Add-SEH-exceptions-to-the-clang-frontend.patch" "0001-change-all-WIN32-defines-to-_WIN32-as-it-is-a-compil.patch" @@ -30,11 +29,11 @@ source=("llvm"::"git+http://root.cern.ch/git/llvm.git#tag=$clingver" md5sums=('SKIP' 'SKIP' 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP') + '19608fb25f3464b661344350822a7cc2' + '8f3f5d7f80ac92f81f9fd1a9af3ab599' + '44e00faa08d2a0877083d85ccb061e63' + '54d60e77f039ea7021349f02ddba720b' + 'c32c339b66cf579c821c00ed177c4837') pkgver() { cd "$srcdir/cling" @@ -55,13 +54,13 @@ prepare() { git am ${srcdir}/0004-Hack-around-missing-functions.patch cd ${srcdir} - mv ${srcdir}/clang ${srcdir}/llvm/tools/clang - mv ${srcdir}/cling ${srcdir}/llvm/tools/cling + mv ${srcdir}/clang-cern ${srcdir}/llvm-cern/tools/clang + mv ${srcdir}/cling ${srcdir}/llvm-cern/tools/cling } build() { - mkdir -p ${srcdir}/llvm/build-${MINGW_CHOST} - cd ${srcdir}/llvm/build-${MINGW_CHOST} + mkdir -p ${srcdir}/llvm-cern/build-${MINGW_CHOST} + cd ${srcdir}/llvm-cern/build-${MINGW_CHOST} echo 'ac_cv_have_decl_strerror_s=${ac_cv_have_decl_strerror_s=no}' > config.cache # Include location of libffi headers in CPPFLAGS @@ -88,11 +87,11 @@ package_clang(){ depends=("${MINGW_PACKAGE_PREFIX}-llvm-cern-git") provides=("${MINGW_PACKAGE_PREFIX}-clang") conflicts=("${MINGW_PACKAGE_PREFIX}-clang") - cd ${srcdir}/llvm/tools/clang + cd ${srcdir}/llvm-cern/tools/clang local ver="$(git rev-parse HEAD)" pkgver="r$(git rev-list --count HEAD)" - cd "${srcdir}/llvm/build-${MINGW_CHOST}/tools/clang" + cd "${srcdir}/llvm-cern/build-${MINGW_CHOST}/tools/clang" make -j1 DESTDIR="$pkgdir" install rm -r ${pkgdir}${MINGW_PREFIX}/docs } @@ -102,15 +101,15 @@ package_cling(){ depends=("${MINGW_PACKAGE_PREFIX}-llvm-cern-git" "${MINGW_PACKAGE_PREFIX}-clang-cern-git") provides=("${MINGW_PACKAGE_PREFIX}-cling") conflicts=("${MINGW_PACKAGE_PREFIX}-cling") - cd ${srcdir}/llvm/tools/cling + cd ${srcdir}/llvm-cern/tools/cling local ver="$(git rev-parse HEAD)" pkgver="r$(git rev-list --count HEAD)" - cd "${srcdir}/llvm/build-${MINGW_CHOST}/tools/cling" + cd "${srcdir}/llvm-cern/build-${MINGW_CHOST}/tools/cling" make -j1 DESTDIR="$pkgdir" install # map hack - nm "${srcdir}/llvm/build-${MINGW_CHOST}"/Release/bin/cling.exe > "${pkgdir}${MINGW_PREFIX}"/bin/cling_func.map + nm "${srcdir}/llvm-cern/build-${MINGW_CHOST}"/Release/bin/cling.exe > "${pkgdir}${MINGW_PREFIX}"/bin/cling_func.map } @@ -119,26 +118,26 @@ package_llvm(){ depends=("${MINGW_PACKAGE_PREFIX}-gcc") provides=("${MINGW_PACKAGE_PREFIX}-llvm") conflicts=("${MINGW_PACKAGE_PREFIX}-llvm") - cd ${srcdir}/llvm + cd ${srcdir}/llvm-cern local ver="$(git rev-parse HEAD)" pkgver="r$(git rev-list --count HEAD)" - mv "${srcdir}/llvm/tools/clang" "${srcdir}/clang" - mv "${srcdir}/llvm/build-${MINGW_CHOST}/tools/clang" "${srcdir}/clang-${MINGW_CHOST}" - mv "${srcdir}/llvm/tools/cling" "${srcdir}/cling" - mv "${srcdir}/llvm/build-${MINGW_CHOST}/tools/cling" "${srcdir}/cling-${MINGW_CHOST}" - cd "${srcdir}/llvm/build-${MINGW_CHOST}" + mv "${srcdir}/llvm-cern/tools/clang" "${srcdir}/clang-cern" + mv "${srcdir}/llvm-cern/build-${MINGW_CHOST}/tools/clang" "${srcdir}/clang-${MINGW_CHOST}" + mv "${srcdir}/llvm-cern/tools/cling" "${srcdir}/cling" + mv "${srcdir}/llvm-cern/build-${MINGW_CHOST}/tools/cling" "${srcdir}/cling-${MINGW_CHOST}" + cd "${srcdir}/llvm-cern/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - mv "${srcdir}/clang" "${srcdir}/llvm/tools/clang" - mv "${srcdir}/clang-${MINGW_CHOST}" "${srcdir}/llvm/build-${MINGW_CHOST}/tools/clang" - mv "${srcdir}/cling" "${srcdir}/llvm/tools/cling" - mv "${srcdir}/cling-${MINGW_CHOST}" "${srcdir}/llvm/build-${MINGW_CHOST}/tools/cling" + mv "${srcdir}/clang-cern" "${srcdir}/llvm-cern/tools/clang" + mv "${srcdir}/clang-${MINGW_CHOST}" "${srcdir}/llvm-cern/build-${MINGW_CHOST}/tools/clang" + mv "${srcdir}/cling" "${srcdir}/llvm-cern/tools/cling" + mv "${srcdir}/cling-${MINGW_CHOST}" "${srcdir}/llvm-cern/build-${MINGW_CHOST}/tools/cling" rm -r ${pkgdir}${MINGW_PREFIX}/docs # Install CMake stuff install -d "${pkgdir}${MINGW_PREFIX}"/share/llvm/cmake/{modules,platforms} - install -Dm644 $srcdir/llvm/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}"/share/llvm/cmake/modules/ - install -Dm644 $srcdir/llvm/cmake/platforms/*.cmake "${pkgdir}${MINGW_PREFIX}"/share/llvm/cmake/platforms/ + install -Dm644 $srcdir/llvm-cern/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}"/share/llvm/cmake/modules/ + install -Dm644 $srcdir/llvm-cern/cmake/platforms/*.cmake "${pkgdir}${MINGW_PREFIX}"/share/llvm/cmake/platforms/ } package_clang-analyzer() { @@ -147,7 +146,7 @@ package_clang-analyzer() { depends=("${MINGW_PACKAGE_PREFIX}-clang-cern-git" "${MINGW_PACKAGE_PREFIX}-python2") provides=("${MINGW_PACKAGE_PREFIX}-clang-analyzer") conflicts=("${MINGW_PACKAGE_PREFIX}-clang-analyzer") - cd ${srcdir}/llvm/tools/clang + cd ${srcdir}/llvm-cern/tools/clang local ver="$(git rev-parse HEAD)" pkgver="r$(git rev-list --count HEAD)" @@ -159,7 +158,7 @@ package_clang-analyzer() { # scan-build looks for clang within the same directory install -d ${pkgdir}${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ - ln -s ${srcdir}/llvm/build-${MINGW_CHOST}/Release/bin/clang.exe ${pkgdir}${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ + ln -s ${srcdir}/llvm-cern/build-${MINGW_CHOST}/Release/bin/clang.exe ${pkgdir}${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ # Relocate man page install -d ${pkgdir}${MINGW_PREFIX}/share/man/man1 From 0225fd8a522a10155e9ca98cb4e41fccc2c54eec Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 26 Feb 2015 07:57:26 +0300 Subject: [PATCH 0577/2060] python3: Update to 3.4.3 --- ...current-dir-in-library-path-if-buildi.patch | 12 ------------ ...yNode_SizeOf-as-PyAPI-for-parser-modu.patch | 12 ------------ .../0500-add-python-config-sh.patch | 2 +- mingw-w64-python3/PKGBUILD | 18 ++++++------------ 4 files changed, 7 insertions(+), 37 deletions(-) delete mode 100644 mingw-w64-python3/0280-issue17219-add-current-dir-in-library-path-if-buildi.patch delete mode 100644 mingw-w64-python3/0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch diff --git a/mingw-w64-python3/0280-issue17219-add-current-dir-in-library-path-if-buildi.patch b/mingw-w64-python3/0280-issue17219-add-current-dir-in-library-path-if-buildi.patch deleted file mode 100644 index 7b290293b0..0000000000 --- a/mingw-w64-python3/0280-issue17219-add-current-dir-in-library-path-if-buildi.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py ---- a/Lib/distutils/command/build_ext.py 2014-10-11 14:19:38.954530100 +0100 -+++ b/Lib/distutils/command/build_ext.py 2014-10-11 14:19:41.476674400 +0100 -@@ -237,7 +237,7 @@ - # Python's library directory must be appended to library_dirs - # See Issues: #1600860, #4366 - if (sysconfig.get_config_var('Py_ENABLE_SHARED')): -- if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): -+ if not sysconfig.python_build: - # building third party extensions - self.library_dirs.append(sysconfig.get_config_var('LIBDIR')) - else: diff --git a/mingw-w64-python3/0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch b/mingw-w64-python3/0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch deleted file mode 100644 index 4d123c55c4..0000000000 --- a/mingw-w64-python3/0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN a/Include/node.h b/Include/node.h ---- a/Include/node.h 2014-10-11 14:20:45.233321100 +0100 -+++ b/Include/node.h 2014-10-11 14:20:46.940418700 +0100 -@@ -21,7 +21,7 @@ - char *str, int lineno, int col_offset); - PyAPI_FUNC(void) PyNode_Free(node *n); - #ifndef Py_LIMITED_API --Py_ssize_t _PyNode_SizeOf(node *n); -+PyAPI_FUNC(Py_ssize_t) _PyNode_SizeOf(node *n); - #endif - - /* Node access functions */ diff --git a/mingw-w64-python3/0500-add-python-config-sh.patch b/mingw-w64-python3/0500-add-python-config-sh.patch index b39ccb2c8b..182faf7f8a 100644 --- a/mingw-w64-python3/0500-add-python-config-sh.patch +++ b/mingw-w64-python3/0500-add-python-config-sh.patch @@ -66,7 +66,7 @@ diff -urN a/Misc/python-config.sh.in b/Misc/python-config.sh.in +if [ "$ABIFLAGS" = "@""ABIFLAGS""@" ] ; then + ABIFLAGS= +fi - LIBS="@LIBS@ $SYSLIBS -lpython${VERSION}${ABIFLAGS}" + LIBS="-lpython${VERSION}${ABIFLAGS} @LIBS@ $SYSLIBS" BASECFLAGS="@BASECFLAGS@" -LDLIBRARY="@LDLIBRARY@" -LINKFORSHARED="@LINKFORSHARED@" diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index bbbd712daa..c0a3dd1353 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -16,8 +16,8 @@ _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.4 -pkgver=${_pybasever}.2 -pkgrel=8 +pkgver=${_pybasever}.3 +pkgrel=1 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -55,7 +55,6 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch 0260-MINGW-compiler-enable-new-dtags.patch 0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch - 0280-issue17219-add-current-dir-in-library-path-if-buildi.patch 0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch 0300-MINGW-configure-for-shared-build.patch 0310-MINGW-dynamic-loading-support.patch @@ -72,7 +71,6 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch 0430-MINGW-find-import-library.patch 0440-MINGW-setup-_ssl-module.patch - 0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch 0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch 0462-MINGW-support-stdcall-without-underscore.patch 0464-use-replace-instead-rename-to-avoid-failure-on-windo.patch @@ -152,9 +150,8 @@ prepare() { patch -Np1 -i "${srcdir}"/0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch patch -Np1 -i "${srcdir}"/0260-MINGW-compiler-enable-new-dtags.patch - plain "Apply Roumen Petrov's extensions patches (25)" + plain "Apply Roumen Petrov's extensions patches (23)" patch -Np1 -i "${srcdir}"/0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch - patch -Np1 -i "${srcdir}"/0280-issue17219-add-current-dir-in-library-path-if-buildi.patch patch -Np1 -i "${srcdir}"/0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch patch -Np1 -i "${srcdir}"/0300-MINGW-configure-for-shared-build.patch patch -Np1 -i "${srcdir}"/0310-MINGW-dynamic-loading-support.patch @@ -171,7 +168,6 @@ prepare() { patch -Np1 -i "${srcdir}"/0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch patch -Np1 -i "${srcdir}"/0430-MINGW-find-import-library.patch patch -Np1 -i "${srcdir}"/0440-MINGW-setup-_ssl-module.patch - patch -Np1 -i "${srcdir}"/0450-MINGW-export-_PyNode_SizeOf-as-PyAPI-for-parser-modu.patch patch -Np1 -i "${srcdir}"/0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch patch -Np1 -i "${srcdir}"/0462-MINGW-support-stdcall-without-underscore.patch patch -Np1 -i "${srcdir}"/0464-use-replace-instead-rename-to-avoid-failure-on-windo.patch @@ -179,7 +175,7 @@ prepare() { patch -Np1 -i "${srcdir}"/0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch patch -Np1 -i "${srcdir}"/0490-MINGW-customize-site.patch - plain "Apply Ray Donnelly's general/cross patches (29)" + plain "Apply Ray Donnelly's general/cross patches (42)" patch -Np1 -i "${srcdir}"/0500-add-python-config-sh.patch patch -Np1 -i "${srcdir}"/0510-cross-darwin-feature.patch patch -Np1 -i "${srcdir}"/0520-py3k-mingw-ntthreads-vs-pthreads.patch @@ -365,7 +361,7 @@ package() { mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe } -sha1sums=('0727d8a8498733baabe6f51632b9bab0cbaa9ada' +sha1sums=('7ca5cd664598bea96eec105aa6453223bb6b4456' '9467bf6fd0e3cfdeedc1c5830b7eadb94369e26d' '4f37060c4caf594e8c176cf79972e6322ca4b553' 'a8d85175d1ae5d617b7314d7d7eb6322951afe69' @@ -384,7 +380,6 @@ sha1sums=('0727d8a8498733baabe6f51632b9bab0cbaa9ada' 'd3e68ba2091f6b61f2440e2ef491373c68bf1d0d' 'de936d717feaa45a44c9b2c83c196af9eb6d83d4' '2e5a03d97d30299bfe23328a01e6811f84da4614' - '3cd7264e2e731664862c2841500bc8b2962f961e' '269f053e3a6e8e063503fded4c7e41ec2f612ecf' 'dd35eda65c8f24c8834ed305befb7fcab17556f1' '1a2f211bd92c435b33169ab6e029663aaa06a87a' @@ -401,14 +396,13 @@ sha1sums=('0727d8a8498733baabe6f51632b9bab0cbaa9ada' '3c0f9cb5a05278dc94029bad6f55b91ce54cb31d' 'f86f285e9aa88843e0ae9969ba04013024a07c5c' 'ca990a81e1189537d05442bf8d1a6f4ef2d5096b' - '15654dedc9fe1f5b11a6d41326a1c21ddd399ac3' '0836a567aa66e50b3a4e8772babf1e7fbc1246ed' '4954cc04a907e9ff630a0d4b0ae60dc6e4aa57f7' '2d505ed36cf50a1bdebffbb367f720a1a6cb0760' 'f55a13ddd950125bb613bd243ef72ac8dd753daa' '679a866c5c257abbc59410bccf6054e7f4f5d8ee' '6fc6a61db76d0689263f3fc6ccfa3fba4829dca7' - '8d52a719d7bcb9b03dac6a28cd899a6d83f770bc' + '1f096c7c4537b7bbf9a7f747093d3ab104534ea2' '3cc4985c4b73f60c29a45dded5e2a36ecf18364b' 'e514bb32094e62e811bf187ab451e719a522f2fe' 'cdb77d00db2061c5e44a31876c5efb8db7c65a76' From d6da48633b4ffc032efc8edc7757e0956f413801 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 26 Feb 2015 09:52:35 +0300 Subject: [PATCH 0578/2060] qbs: Rebuild. --- mingw-w64-qbs/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index 65202f73ef..5c40c6a3b0 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -16,7 +16,7 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.3 -pkgrel=1 +pkgrel=2 _pkgfqn="${_realname}-${pkgver}.src" pkgdesc='Qt Build Suite' url='http://qt-project.org' From 77a8b3ada4324d47e0fc433ff8550d467479d404 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 26 Feb 2015 09:53:09 +0300 Subject: [PATCH 0579/2060] qtcreator: Update to 3.3.1 --- mingw-w64-qtcreator/PKGBUILD | 6 +++--- ...or-3.2.0-Allow-iOS-plugin-on-any-platform.patch | 4 ++-- mingw-w64-qtcreator/qt-creator-i686.install | 14 +++++++------- mingw-w64-qtcreator/qt-creator-x86_64.install | 14 +++++++------- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 98676ce67b..367331d130 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -5,7 +5,7 @@ _realname=qt-creator pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" # WIP for 3.? __pre= -_base_ver=3.3.0 +_base_ver=3.3.1 #_base_ver=3.2.2 pkgver=${_base_ver}${_pre} pkgrel=2 @@ -46,14 +46,14 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v qt-creator-3.3.0-abi-msys-is-Windows.patch qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch) noextract=(${_pkgfqn}.tar.gz) -sha256sums=('27a5c8815fab95f959134047f8315686de4de6f99b0bedfd46b5dedae390525a' +sha256sums=('afefb73a05cdc36cdfb8a760c2b39eb6c366a22ef47c7d365d446092dd1d5331' '18f59946054e667b56276f53ec544d4786c3c249fee6c0bd9b0b565ed4b7cf2d' '6c34b2bad7a24c5922d237dc67fcced14e83d65116f77cd84aa80ae2ebd4aad9' '2f45ff4c2806c90c36f19da07707fef213e50fbf8825fe169e1bce6349efacee' '22253cf29a2c8effebb1cc8313a0f350cf993d7fc404763063e6bd8444fa61f1' '12aef50d3c90dfd5bcd9ac98ebd89d29a23d2420e8adf9c65d818ee2219ef21b' '45b9fc82c7a9364450420920adcdb04a3b67eeb96f64733166da757a5ab91013' - '04715f44a2921306538500978b4e1425a17b5c2552c5f5b6561836858448d4ba' + '96c14f54577bf6cadf5c12018745666a9e99cd8d6a876c29a28b13599a8cb368' '18479a8a8eac63ae7e8dac2f3b18a3345f8e78779cc8b56fde4dc58f0fd4ada6' '1a1738379b0413484fd1ff3521b6bc85d034f5f964311d963dd044b4966b274b' '8244e66b1604d10951f1b32be3269ef453c47e9eb1b80c30be79a124b697ae0a' diff --git a/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-iOS-plugin-on-any-platform.patch b/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-iOS-plugin-on-any-platform.patch index 5a1b9db8eb..35cbdf86d5 100644 --- a/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-iOS-plugin-on-any-platform.patch +++ b/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-iOS-plugin-on-any-platform.patch @@ -5,6 +5,6 @@ \"Version\" : \"$$QTCREATOR_VERSION\", \"CompatVersion\" : \"$$QTCREATOR_COMPAT_VERSION\", - \"Platform\" : \"OS X.*\", - \"Vendor\" : \"Digia Plc\", - \"Copyright\" : \"(C) 2014 Digia Plc\", + \"Vendor\" : \"The Qt Company Ltd\", + \"Copyright\" : \"(C) 2015 The Qt Company Ltd\", \"License\" : [ \"Commercial Usage\", diff --git a/mingw-w64-qtcreator/qt-creator-i686.install b/mingw-w64-qtcreator/qt-creator-i686.install index 1ff2df884f..66189bab13 100644 --- a/mingw-w64-qtcreator/qt-creator-i686.install +++ b/mingw-w64-qtcreator/qt-creator-i686.install @@ -79,19 +79,19 @@ post_install() { _mingw_variant_idsuffix="_x86_64" fi - ./sdktool.exe rmQt "--id" "qt.53.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" > /dev/null 2>&1 || true + ./sdktool.exe rmQt "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" > /dev/null 2>&1 || true ./sdktool.exe addQt \ - "--id" "qt.53.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ - "--name" "Qt 5.3${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ + "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ + "--name" "Qt 5.4${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ "--type" "Qt4ProjectManager.QtVersion.Desktop" \ "--qmake" "/${_mingw_variant}${_library_variant_prefix}/bin/qmake.exe" - ./sdktool.exe rmKit "--id" "qt.53.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" > /dev/null 2>&1 || true + ./sdktool.exe rmKit "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" > /dev/null 2>&1 || true ./sdktool.exe addKit \ - "--id" "qt.53.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" \ - "--name" "Desktop Qt 5.3${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ + "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" \ + "--name" "Desktop Qt 5.4${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ "--toolchain" "ProjectExplorer.ToolChain.Mingw:M2_MinGW-w64${_mingw_variant_idsuffix}" \ - "--qt" "qt.53.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ + "--qt" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ "--debuggerengine" "1" \ "--debugger" "/${_mingw_variant}/bin/gdb.exe" \ "--devicetype" "Desktop" diff --git a/mingw-w64-qtcreator/qt-creator-x86_64.install b/mingw-w64-qtcreator/qt-creator-x86_64.install index a19d052a51..7fc0263c1c 100644 --- a/mingw-w64-qtcreator/qt-creator-x86_64.install +++ b/mingw-w64-qtcreator/qt-creator-x86_64.install @@ -79,19 +79,19 @@ post_install() { _mingw_variant_idsuffix="_x86_64" fi - ./sdktool.exe rmQt "--id" "qt.53.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" > /dev/null 2>&1 || true + ./sdktool.exe rmQt "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" > /dev/null 2>&1 || true ./sdktool.exe addQt \ - "--id" "qt.53.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ - "--name" "Qt 5.3${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ + "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ + "--name" "Qt 5.4${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ "--type" "Qt4ProjectManager.QtVersion.Desktop" \ "--qmake" "/${_mingw_variant}${_library_variant_prefix}/bin/qmake.exe" - ./sdktool.exe rmKit "--id" "qt.53.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" > /dev/null 2>&1 || true + ./sdktool.exe rmKit "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" > /dev/null 2>&1 || true ./sdktool.exe addKit \ - "--id" "qt.53.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" \ - "--name" "Desktop Qt 5.3${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ + "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" \ + "--name" "Desktop Qt 5.4${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ "--toolchain" "ProjectExplorer.ToolChain.Mingw:M2_MinGW-w64${_mingw_variant_idsuffix}" \ - "--qt" "qt.53.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ + "--qt" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ "--debuggerengine" "1" \ "--debugger" "/${_mingw_variant}/bin/gdb.exe" \ "--devicetype" "Desktop" From a016ffc3045b60096d9c06a247ca2781f27b37fe Mon Sep 17 00:00:00 2001 From: Chilledheart Date: Thu, 26 Feb 2015 16:27:55 +0800 Subject: [PATCH 0580/2060] curl: Update to 7.41.0 --- mingw-w64-curl/0001-curl-relocation.patch | 21 +++++++++++++-------- mingw-w64-curl/PKGBUILD | 8 ++++---- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/mingw-w64-curl/0001-curl-relocation.patch b/mingw-w64-curl/0001-curl-relocation.patch index dac3234b38..7531ec1df8 100644 --- a/mingw-w64-curl/0001-curl-relocation.patch +++ b/mingw-w64-curl/0001-curl-relocation.patch @@ -25,21 +25,22 @@ diff -urN curl-7.37.1.orig/lib/curl_config.h.in curl-7.37.1/lib/curl_config.h.in diff -urN curl-7.37.1.orig/lib/Makefile.inc curl-7.37.1/lib/Makefile.inc --- curl-7.37.1.orig/lib/Makefile.inc 2014-06-11 18:52:29.000000000 +0100 +++ curl-7.37.1/lib/Makefile.inc 2014-08-28 21:19:37.748635000 +0100 -@@ -45,7 +45,7 @@ - asyn-thread.c curl_gssapi.c curl_ntlm.c curl_ntlm_wb.c \ +@@ -46,7 +46,7 @@ curl_ntlm_core.c curl_ntlm_msgs.c curl_sasl.c curl_multibyte.c \ hostcheck.c bundles.c conncache.c pipeline.c dotdot.c x509asn1.c \ -- http2.c curl_sasl_sspi.c smb.c curl_sasl_gssapi.c curl_endian.c -+ http2.c curl_sasl_sspi.c smb.c curl_sasl_gssapi.c curl_endian.c pathtools.c + http2.c curl_sasl_sspi.c smb.c curl_sasl_gssapi.c curl_endian.c \ +- curl_des.c ++ curl_des.c pathtools.c LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \ formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \ -@@ -63,7 +63,7 @@ +@@ -64,7 +64,8 @@ curl_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h \ curl_ntlm_msgs.h curl_sasl.h curl_multibyte.h hostcheck.h bundles.h \ conncache.h curl_setup_once.h multihandle.h setup-vms.h pipeline.h \ -- dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h -+ dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h pathtools.h +- dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h ++ dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \ ++ pathtools.h LIB_RCFILES = libcurl.rc @@ -614,7 +615,7 @@ diff -urN curl-7.37.1.orig/lib/url.c curl-7.37.1/lib/url.c /* The last #include file should be: */ #include "memdebug.h" -@@ -552,7 +557,20 @@ +@@ -585,7 +591,20 @@ /* This is our preferred CA cert bundle/path since install time */ #if defined(CURL_CA_BUNDLE) @@ -632,6 +633,10 @@ diff -urN curl-7.37.1.orig/lib/url.c curl-7.37.1/lib/url.c +#else result = setstropt(&set->str[STRING_SSL_CAFILE], (char *) CURL_CA_BUNDLE); +#endif /* defined(__MINGW32__) */ + if(result) + return result; #elif defined(CURL_CA_PATH) result = setstropt(&set->str[STRING_SSL_CAPATH], (char *) CURL_CA_PATH); + if(result) + return result; #endif diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index c58270f95e..d802d4d285 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -2,8 +2,8 @@ _realname=curl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=7.40.0 -pkgrel=2 +pkgver=7.41.0 +pkgrel=1 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" @@ -22,9 +22,9 @@ options=('staticlibs') source=("$url/download/${_realname}-$pkgver.tar.bz2"{,.asc} "0001-curl-relocation.patch" "0002-curl-mingw-enable-static.patch") -md5sums=('8d30594212e65657a5c32030f0998fa9' +md5sums=('87e36f88b7a0f9683fa56f1334562c3a' 'SKIP' - 'e336b6d77d80ecd03bab775e1a1d8740' + '430527b6ecaf41a3023565b3a88ca59c' 'eac9e212e619490966ae47004bec547b') validpgpkeys=('914C533DF9B2ADA2204F586D78E11C6B279D5C91') # Daniel Stenberg From f71124860fcb05af17dfea9caf4e12dc00ab0ad1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 26 Feb 2015 15:32:55 +0300 Subject: [PATCH 0581/2060] qtcreator: Unify naming of Qt versions/kits --- mingw-w64-qtcreator/qt-creator-i686.install | 14 +++++++------- mingw-w64-qtcreator/qt-creator-x86_64.install | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/mingw-w64-qtcreator/qt-creator-i686.install b/mingw-w64-qtcreator/qt-creator-i686.install index 66189bab13..640ea3fbf9 100644 --- a/mingw-w64-qtcreator/qt-creator-i686.install +++ b/mingw-w64-qtcreator/qt-creator-i686.install @@ -79,19 +79,19 @@ post_install() { _mingw_variant_idsuffix="_x86_64" fi - ./sdktool.exe rmQt "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" > /dev/null 2>&1 || true + ./sdktool.exe rmQt "--id" "qt.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" > /dev/null 2>&1 || true ./sdktool.exe addQt \ - "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ - "--name" "Qt 5.4${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ + "--id" "qt.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ + "--name" "Qt ${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ "--type" "Qt4ProjectManager.QtVersion.Desktop" \ "--qmake" "/${_mingw_variant}${_library_variant_prefix}/bin/qmake.exe" - ./sdktool.exe rmKit "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" > /dev/null 2>&1 || true + ./sdktool.exe rmKit "--id" "qt.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" > /dev/null 2>&1 || true ./sdktool.exe addKit \ - "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" \ - "--name" "Desktop Qt 5.4${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ + "--id" "qt.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" \ + "--name" "Desktop Qt ${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ "--toolchain" "ProjectExplorer.ToolChain.Mingw:M2_MinGW-w64${_mingw_variant_idsuffix}" \ - "--qt" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ + "--qt" "qt.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ "--debuggerengine" "1" \ "--debugger" "/${_mingw_variant}/bin/gdb.exe" \ "--devicetype" "Desktop" diff --git a/mingw-w64-qtcreator/qt-creator-x86_64.install b/mingw-w64-qtcreator/qt-creator-x86_64.install index 7fc0263c1c..6f84940d40 100644 --- a/mingw-w64-qtcreator/qt-creator-x86_64.install +++ b/mingw-w64-qtcreator/qt-creator-x86_64.install @@ -79,19 +79,19 @@ post_install() { _mingw_variant_idsuffix="_x86_64" fi - ./sdktool.exe rmQt "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" > /dev/null 2>&1 || true + ./sdktool.exe rmQt "--id" "qt.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" > /dev/null 2>&1 || true ./sdktool.exe addQt \ - "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ - "--name" "Qt 5.4${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ + "--id" "qt.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ + "--name" "Qt ${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ "--type" "Qt4ProjectManager.QtVersion.Desktop" \ "--qmake" "/${_mingw_variant}${_library_variant_prefix}/bin/qmake.exe" - ./sdktool.exe rmKit "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" > /dev/null 2>&1 || true + ./sdktool.exe rmKit "--id" "qt.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" > /dev/null 2>&1 || true ./sdktool.exe addKit \ - "--id" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" \ - "--name" "Desktop Qt 5.4${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ + "--id" "qt.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}_kit" \ + "--name" "Desktop Qt ${_library_variant_suffix} MinGW-w64${_mingw_variant_suffix} (MSYS2)" \ "--toolchain" "ProjectExplorer.ToolChain.Mingw:M2_MinGW-w64${_mingw_variant_idsuffix}" \ - "--qt" "qt.54.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ + "--qt" "qt.M2_MinGW-w64${_mingw_variant_idsuffix}${_library_variant_idsuffix}" \ "--debuggerengine" "1" \ "--debugger" "/${_mingw_variant}/bin/gdb.exe" \ "--devicetype" "Desktop" From 0ce0ba55fa946c895e0486211111e3f2e7773b8e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 26 Feb 2015 23:45:11 +0000 Subject: [PATCH 0582/2060] quassel: Added --- .../0001-MinGW-w64-Adopt-FHS-Layout.patch | 23 ++++++++ mingw-w64-quassel/PKGBUILD | 54 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 mingw-w64-quassel/0001-MinGW-w64-Adopt-FHS-Layout.patch create mode 100644 mingw-w64-quassel/PKGBUILD diff --git a/mingw-w64-quassel/0001-MinGW-w64-Adopt-FHS-Layout.patch b/mingw-w64-quassel/0001-MinGW-w64-Adopt-FHS-Layout.patch new file mode 100644 index 0000000000..ff6b96ad3f --- /dev/null +++ b/mingw-w64-quassel/0001-MinGW-w64-Adopt-FHS-Layout.patch @@ -0,0 +1,23 @@ +--- quassel-0.11.0/CMakeLists.txt.orig 2014-09-23 22:54:20.000000000 +0100 ++++ quassel-0.11.0/CMakeLists.txt 2015-02-26 23:39:02.070875700 +0000 +@@ -427,17 +427,17 @@ + + # Now set up install locations; those are set by KDE if integration is enabled + if(NOT KDE4_FOUND) +- if(WIN32) ++ if(WIN32 AND NOT MINGW) + set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX} CACHE FILEPATH "Install path for binaries") + set(DATA_INSTALL_DIR $ENV{APPDATA}/quassel-irc.org/share/apps CACHE FILEPATH "Install path for data files") + set(ICON_INSTALL_DIR $ENV{APPDATA}/quassel-irc.org/share/icons CACHE FILEPATH "Global icon install path") + set(XDG_APPS_INSTALL_DIR $ENV{APPDATA}/quassel-irc.org/share/applications CACHE FILEPATH "Install path for .desktop files") +- else(WIN32) ++ else(WIN32 AND NOT MINGW) + set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin CACHE FILEPATH "Install path for binaries") + set(DATA_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/apps CACHE FILEPATH "Install path for data files") + set(ICON_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/icons CACHE FILEPATH "Global icon install path") + set(XDG_APPS_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/applications CACHE FILEPATH "Install path for .desktop files") +- endif(WIN32) ++ endif(WIN32 AND NOT MINGW) + endif() + + if(EMBED_DATA) diff --git a/mingw-w64-quassel/PKGBUILD b/mingw-w64-quassel/PKGBUILD new file mode 100644 index 0000000000..e88948e73f --- /dev/null +++ b/mingw-w64-quassel/PKGBUILD @@ -0,0 +1,54 @@ +# $Id$ +# Maintainer (ArchLinux): Vesa Kaihlavirta +# Maintainer (ArchLinux): Jaroslav Lichtblau +# Maintainer (MSYS2): Ray Donnelly + +pkgbase=quassel +pkgname=("${MINGW_PACKAGE_PREFIX}-${pkgbase}") +pkgver=0.11.0 +pkgrel=2 +pkgdesc="Next-generation distributed IRC client (mingw-w64)" +arch=('any') +url="http://quassel-irc.org/" +license=('GPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-qt5") +source=(http://quassel-irc.org/pub/$pkgbase-$pkgver.tar.bz2 + "0001-MinGW-w64-Adopt-FHS-Layout.patch") +sha256sums=('99a191b8bc2a410f7020b890ec57e0be49313f539da9f4843675bb108b0f4504' + 'e7bdf5b0e613dc001f50f6e017abeabb48e4f3409c8cbe3e6d8154c8c6f72cf0') + +prepare() { + cd "${srcdir}"/quassel-${pkgver} + patch -p1 -i "${srcdir}"/0001-MinGW-w64-Adopt-FHS-Layout.patch +} + +build() { + cd "${srcdir}" + [ -d build-${CARCH} ] && rm -rf build-${CARCH} + mkdir build-${CARCH} + + # -DWIN32_LEAN_AND_MEAN=1 because "interface" is used in: + # /mingw64/include/QtDBus/qdbusconnection.h + cd "${srcdir}"/build-${CARCH} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + cmake \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_CXX_FLAGS="${CFLAGS} -DWIN32_LEAN_AND_MEAN=1" \ + -DUSE_QT5=ON \ + -DWITH_KDE=OFF \ + -DWITH_OPENSSL=ON \ + -DCMAKE_BUILD_TYPE="Release" \ + -DWANT_CORE=OFF \ + -DWANT_QTCLIENT=OFF \ + -DWANT_MONO=ON \ + ../quassel-${pkgver}/ \ + -Wno-dev \ + -G'MSYS Makefiles' + make +} + +package() { + cd "${srcdir}"/build-${CARCH} + make DESTDIR="${pkgdir}" install +} From 613cd0230a4dd3fafc02da0b62b572898faa63c7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 27 Feb 2015 00:03:24 +0000 Subject: [PATCH 0583/2060] quassel: Qt5 is a depend, not makedepend --- mingw-w64-quassel/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-quassel/PKGBUILD b/mingw-w64-quassel/PKGBUILD index e88948e73f..0b31d6f05a 100644 --- a/mingw-w64-quassel/PKGBUILD +++ b/mingw-w64-quassel/PKGBUILD @@ -11,8 +11,8 @@ pkgdesc="Next-generation distributed IRC client (mingw-w64)" arch=('any') url="http://quassel-irc.org/" license=('GPL') -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-qt5") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") +depends=("${MINGW_PACKAGE_PREFIX}-qt5") source=(http://quassel-irc.org/pub/$pkgbase-$pkgver.tar.bz2 "0001-MinGW-w64-Adopt-FHS-Layout.patch") sha256sums=('99a191b8bc2a410f7020b890ec57e0be49313f539da9f4843675bb108b0f4504' From 4e222f7ab997a4b7fbbb11c26f0efaea8db3e546 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 27 Feb 2015 10:39:51 +0300 Subject: [PATCH 0584/2060] perl: Update to 5.20.2 --- mingw-w64-perl/001-fhs-directory-structure.patch | 6 +++--- .../003-replace-batch-scripts-with-bare-perl.patch | 2 +- mingw-w64-perl/PKGBUILD | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mingw-w64-perl/001-fhs-directory-structure.patch b/mingw-w64-perl/001-fhs-directory-structure.patch index 3bce11e72c..0da294f648 100644 --- a/mingw-w64-perl/001-fhs-directory-structure.patch +++ b/mingw-w64-perl/001-fhs-directory-structure.patch @@ -181,8 +181,8 @@ diff -aur old/win32/makefile.mk 001/win32/makefile.mk @@ -44,6 +44,7 @@ # path that includes an arbitrary version string. # - #INST_VER *= \5.20.1 -+#INST_VER_PERL *= \perl-5.20.1 + #INST_VER *= \5.20.2 ++#INST_VER_PERL *= \perl-5.20.2 # # Comment this out if you DON'T want your perl installation to have @@ -211,7 +211,7 @@ diff -aur old/win32/makefile.mk 001/win32/makefile.mk @@ -1392,12 +1393,12 @@ copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5201delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5202delta.pod - $(PERLEXE) $(PL2BAT) $(UTILS) + $(PERLEXE) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. diff --git a/mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch b/mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch index 7d10c641e3..3d519beea1 100644 --- a/mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch +++ b/mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch @@ -79,7 +79,7 @@ diff -aur 002/win32/makefile.mk 003/win32/makefile.mk @@ -1393,7 +1356,6 @@ copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5201delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5202delta.pod - $(PERLEXE) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. diff --git a/mingw-w64-perl/PKGBUILD b/mingw-w64-perl/PKGBUILD index 3c80700c51..c4d691e3ec 100644 --- a/mingw-w64-perl/PKGBUILD +++ b/mingw-w64-perl/PKGBUILD @@ -6,8 +6,8 @@ url='http://www.perl.org' pkgdesc='A highly capable, feature-rich programming language (mingw-w64)' license=(GPL1+ Artistic1) arch=(any) -pkgver=5.20.1 -pkgrel=2 +pkgver=5.20.2 +pkgrel=1 install="perl-${CARCH}.install" options=(staticlibs strip '!purge') @@ -24,10 +24,10 @@ source=("http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2" 004-fix-cpan-external-programs.patch 005-disable-custom-mkstemp.patch) -md5sums=('ede5166f949d9a07163bc5b086be9759' - 'a5d3b17a98cb29226cf1b2ec2b760302' +md5sums=('21062666f1c627aeb6dbff3c6952738b' + '366500bf825c66b58ee1289d85eb602a' 'e5fcd10ee424f2f19188d0e63cf2305c' - '9db723a4fadcad7169c0617ff408c753' + '6957e0de21a2ee3318ef12bfce9ebe70' 'cd49b29a251adcc21fe87c66110cdc3a' '5c0ebe22ef7928a16c1597c2a62781ec') From d22c4d55243d905a2b7e5bf1988aa15a3568df3d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 27 Feb 2015 22:19:03 +0300 Subject: [PATCH 0585/2060] winpthreads: Update to git SHA [32db221] --- mingw-w64-winpthreads-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index 19b0aa381b..01825ac3fe 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=winpthreads pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") -pkgver=5.0.0.4448.4fd76bd +pkgver=5.0.0.4455.32db221 pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" arch=('any') From 95cbf719108c1ed0fc87e142effc0aa06ec0f3e4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 27 Feb 2015 22:19:33 +0300 Subject: [PATCH 0586/2060] glfw: Update to 3.1 --- ...-pkg-config-file-generation-on-mingw.patch | 69 ------------------- .../001-cmake-config-location.patch | 11 +++ mingw-w64-glfw/PKGBUILD | 13 ++-- 3 files changed, 17 insertions(+), 76 deletions(-) delete mode 100644 mingw-w64-glfw/0001-enabled-pkg-config-file-generation-on-mingw.patch create mode 100644 mingw-w64-glfw/001-cmake-config-location.patch diff --git a/mingw-w64-glfw/0001-enabled-pkg-config-file-generation-on-mingw.patch b/mingw-w64-glfw/0001-enabled-pkg-config-file-generation-on-mingw.patch deleted file mode 100644 index 25152c4abf..0000000000 --- a/mingw-w64-glfw/0001-enabled-pkg-config-file-generation-on-mingw.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 60f2302..d10f10d 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -154,6 +154,9 @@ endif() - # Use Win32 for window creation - #-------------------------------------------------------------------- - if (_GLFW_WIN32) -+ -+ set(GLFW_PKG_LIBS "${GLFW_PKG_LIBS} -lgdi32 -lwinmm") -+ - # The DLL links against winmm; the static library loads it - # That way, both code paths receive testing - if (BUILD_SHARED_LIBS) -@@ -180,8 +183,12 @@ endif() - # Use WGL for context creation - #-------------------------------------------------------------------- - if (_GLFW_WGL) -+ -+ set(GLFW_PKG_LIBS "${GLFW_PKG_LIBS} -lopengl32") -+ - list(APPEND glfw_INCLUDE_DIRS ${OPENGL_INCLUDE_DIR}) - list(APPEND glfw_LIBRARIES ${OPENGL_gl_LIBRARY}) -+ - endif() - - #-------------------------------------------------------------------- -@@ -308,9 +315,7 @@ if (_GLFW_EGL) - list(APPEND glfw_INCLUDE_DIRS ${EGL_INCLUDE_DIR}) - list(APPEND glfw_LIBRARIES ${EGL_LIBRARY}) - -- if (UNIX) -- set(GLFW_PKG_DEPS "${GLFW_PKG_DEPS} egl") -- endif() -+ set(GLFW_PKG_DEPS "${GLFW_PKG_DEPS} egl") - - if (_GLFW_USE_OPENGL) - list(APPEND glfw_LIBRARIES ${OPENGL_gl_LIBRARY}) -@@ -397,10 +402,8 @@ configure_file(${GLFW_SOURCE_DIR}/src/glfwConfig.cmake.in - configure_file(${GLFW_SOURCE_DIR}/src/glfwConfigVersion.cmake.in - ${GLFW_BINARY_DIR}/src/glfwConfigVersion.cmake @ONLY) - --if (UNIX) -- configure_file(${GLFW_SOURCE_DIR}/src/glfw3.pc.in -- ${GLFW_BINARY_DIR}/src/glfw3.pc @ONLY) --endif() -+configure_file(${GLFW_SOURCE_DIR}/src/glfw3.pc.in -+ ${GLFW_BINARY_DIR}/src/glfw3.pc @ONLY) - - #-------------------------------------------------------------------- - # Add subdirectories -@@ -431,11 +434,9 @@ if (GLFW_INSTALL) - ${GLFW_BINARY_DIR}/src/glfwConfigVersion.cmake - DESTINATION lib${LIB_SUFFIX}/cmake/glfw) - -- if (UNIX) -- install(EXPORT glfwTargets DESTINATION lib${LIB_SUFFIX}/cmake/glfw) -- install(FILES ${GLFW_BINARY_DIR}/src/glfw3.pc -- DESTINATION lib${LIB_SUFFIX}/pkgconfig) -- endif() -+ install(EXPORT glfwTargets DESTINATION lib${LIB_SUFFIX}/cmake/glfw) -+ install(FILES ${GLFW_BINARY_DIR}/src/glfw3.pc -+ DESTINATION lib${LIB_SUFFIX}/pkgconfig) - - # Only generate this target if no higher-level project already has - if (NOT TARGET uninstall) --- -2.0.3 - diff --git a/mingw-w64-glfw/001-cmake-config-location.patch b/mingw-w64-glfw/001-cmake-config-location.patch new file mode 100644 index 0000000000..ed9e529be8 --- /dev/null +++ b/mingw-w64-glfw/001-cmake-config-location.patch @@ -0,0 +1,11 @@ +--- glfw-3.1/CMakeLists.txt.orig 2015-02-27 21:55:29.220000000 +0300 ++++ glfw-3.1/CMakeLists.txt 2015-02-27 22:08:05.389600000 +0300 +@@ -513,7 +513,7 @@ + #-------------------------------------------------------------------- + include(CMakePackageConfigHelpers) + +-if (UNIX) ++if (UNIX OR MINGW) + set(GLFW_CONFIG_PATH "${CMAKE_INSTALL_PREFIX}/lib/cmake/glfw3/") + else() + set(GLFW_CONFIG_PATH "${CMAKE_INSTALL_PREFIX}/") diff --git a/mingw-w64-glfw/PKGBUILD b/mingw-w64-glfw/PKGBUILD index cfb4c9e28b..f88665a654 100644 --- a/mingw-w64-glfw/PKGBUILD +++ b/mingw-w64-glfw/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Martell Malone _realname=glfw - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.0.4 -pkgrel=2 +pkgver=3.1 +pkgrel=1 pkgdesc="A free, open source, portable framework for OpenGL application development. (mingw-w64)" arch=('any') url="http://www.glfw.org/" @@ -15,13 +14,13 @@ optdepends=() conflicts=() options=('staticlibs' 'strip') source=(http://downloads.sourceforge.net/project/glfw/glfw/$pkgver/${_realname}-$pkgver.tar.gz - 0001-enabled-pkg-config-file-generation-on-mingw.patch) -sha1sums=('9b04309418ccbc74b2115d11198b7912669814ee' - '1018e847e3bd3874662788c883bebb453d490267') + 001-cmake-config-location.patch) +sha1sums=('32f2dcc188694fb5823e24cc65c8f69f32f58bb1' + '3c3f953929d9fcb4d7fbac931cad736889156ca1') prepare() { cd "${srcdir}/glfw-${pkgver}" - patch -p1 -i "${srcdir}/0001-enabled-pkg-config-file-generation-on-mingw.patch" + patch -p1 -i "${srcdir}/001-cmake-config-location.patch" } build() { From 2865373748d02fd93f0656db26c96527f3afbf12 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 27 Feb 2015 22:37:08 +0300 Subject: [PATCH 0587/2060] glm: Update to 0.9.6.3 --- mingw-w64-glm/001-remove-missing-define.patch | 11 +++++++++++ mingw-w64-glm/PKGBUILD | 19 +++++++++++++------ 2 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-glm/001-remove-missing-define.patch diff --git a/mingw-w64-glm/001-remove-missing-define.patch b/mingw-w64-glm/001-remove-missing-define.patch new file mode 100644 index 0000000000..bec7e65099 --- /dev/null +++ b/mingw-w64-glm/001-remove-missing-define.patch @@ -0,0 +1,11 @@ +--- a/CMakeLists.txt.orig 2015-02-27 22:26:52.662000000 +0300 ++++ b/CMakeLists.txt 2015-02-27 22:26:58.184400000 +0300 +@@ -129,7 +129,7 @@ + if(CMAKE_COMPILER_IS_GNUCXX) + #add_definitions(-S) + #add_definitions(-s) +- add_definitions(-m64) ++ #add_definitions(-m64) + add_definitions(-O2) + + #add_definitions(-fprofile-arcs -ftest-coverage) gcov diff --git a/mingw-w64-glm/PKGBUILD b/mingw-w64-glm/PKGBUILD index d3bfab9e1a..cbbdab2bf0 100644 --- a/mingw-w64-glm/PKGBUILD +++ b/mingw-w64-glm/PKGBUILD @@ -1,17 +1,23 @@ # Maintainer: Alexey Pavlov _realname=glm - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.5.4 +pkgver=0.9.6.3 pkgrel=1 pkgdesc="C++ mathematics library for 3D software based on the OpenGL Shading Language (GLSL) specification (mingw-w64)" arch=('any') url='http://glm.g-truc.net' license=('MIT') -depends=("") -source=("http://sourceforge.net/projects/ogl-math/files/glm-$pkgver/glm-$pkgver.zip") -md5sums=('fab76fc982b256b46208e5c750ed456a') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +source=("http://sourceforge.net/projects/ogl-math/files/glm-$pkgver/glm-$pkgver.zip" + 001-remove-missing-define.patch) +md5sums=('acd0b517c37ed25c3f11ee155ee8257e' + 'f28ad01cff9055123e82d46b70435b97') + +prepare() { + cd ${_realname} + patch -p1 -i ${srcdir}/001-remove-missing-define.patch +} build() { mkdir $srcdir/build-${MINGW_CHOST} @@ -21,6 +27,7 @@ build() { -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ -DGLM_TEST_ENABLE=ON \ ../${_realname} + make } @@ -33,7 +40,7 @@ package() { find ${pkgdir}${MINGW_PREFIX} -type f -exec chmod 644 {} \; find ${pkgdir}${MINGW_PREFIX} -type d -exec chmod 755 {} \; - install -Dm644 $srcdir/${_realname}/util/FindGLM.cmake ${pkgdir}${MINGW_PREFIX}/share/cmake-3.0/Modules/FindGLM.cmake + #install -Dm644 $srcdir/${_realname}/util/FindGLM.cmake ${pkgdir}${MINGW_PREFIX}/share/cmake-3.1/Modules/FindGLM.cmake install -Dm644 $srcdir/${_realname}/copying.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } From c9f1a1bb0d5815e72e82a966c1a5807b94914569 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 28 Feb 2015 01:43:46 +0300 Subject: [PATCH 0588/2060] mpg123: Update to 1.22.0 --- mingw-w64-mpg123/PKGBUILD | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mingw-w64-mpg123/PKGBUILD b/mingw-w64-mpg123/PKGBUILD index 786f424e20..47ad5797a7 100644 --- a/mingw-w64-mpg123/PKGBUILD +++ b/mingw-w64-mpg123/PKGBUILD @@ -2,8 +2,8 @@ _realname=mpg123 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.21.0 -pkgrel=2 +pkgver=1.22.0 +pkgrel=0 pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3 (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/mpg123" @@ -21,7 +21,7 @@ options=('strip' 'staticlibs' 'libtool') source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2"{,.sig} 0001-update-ac-and-silent-rules.mingw.patch 0002-openal-library.patch) -md5sums=('13a9df5d4e7aa110e4ae27cf30128ce9' +md5sums=('33069bff83413824669c8ecb37e706d5' 'SKIP' '5d01842fa623f7bb53bf22be64aa042d' '9ac9a255f3ab3043915ceec455ccdbec') @@ -45,10 +45,13 @@ build() { --enable-shared \ --enable-static \ --enable-silent-rules - make + + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From f397e18d0d74d32111a254963745585aa79e0970 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 28 Feb 2015 01:44:15 +0300 Subject: [PATCH 0589/2060] sqlite3: Update to 3.8.8.3 --- mingw-w64-sqlite3/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index 2a227ef6c0..3d7e4c847c 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -3,9 +3,9 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3080802 -pkgver=3.8.8.2 -pkgrel=2 +_amalgamationver=3080803 +pkgver=3.8.8.3 +pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') license=(PublicDomain) @@ -18,7 +18,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tcl") source=("http://www.sqlite.org/2015/sqlite-autoconf-$_amalgamationver.tar.gz" LICENSE) -sha1sums=('1db237523419af7110e1d92c6b766e965f9322e4' +sha1sums=('2fe3f6226a2a08a2e814b97cd53e36bb3c597112' 'e2aa07adae13aed713860b74165d3325a18c6792') options=('!strip' 'staticlibs') From 2aa2088c16025a12dc901741a32314e0927ed9e4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 28 Feb 2015 01:44:38 +0300 Subject: [PATCH 0590/2060] xz: Update to 5.2.1 --- mingw-w64-xz/PKGBUILD | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/mingw-w64-xz/PKGBUILD b/mingw-w64-xz/PKGBUILD index 00150d9037..4132940398 100644 --- a/mingw-w64-xz/PKGBUILD +++ b/mingw-w64-xz/PKGBUILD @@ -2,7 +2,7 @@ _realname=xz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.2.0 +pkgver=5.2.1 pkgrel=1 pkgdesc="Library and command line tools for XZ and LZMA compressed files (mingw-w64)" arch=('any') @@ -11,22 +11,28 @@ license=("custom" "GPL" "LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext") options=('staticlibs' 'strip') -source=("$url/xz-${pkgver}.tar.gz") -md5sums=('be585bdf8672e4406632eda3d819e284') +source=("$url/${_realname}-${pkgver}.tar.gz") +md5sums=('3e44c766c3fb4f19e348e646fcd5778a') build() { mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} - ../xz-$pkgver/configure \ + ../${_realname}-$pkgver/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --disable-rpath \ --disable-lzma-links + make } package() { cd "${srcdir}/build-${CARCH}" make DESTDIR="$pkgdir" install + + install -Dm644 ${srcdir}/${_realname}-$pkgver/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING + install -Dm644 ${srcdir}/${_realname}-$pkgver/COPYING.GPLv2 ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.GPLv2 + install -Dm644 ${srcdir}/${_realname}-$pkgver/COPYING.GPLv3 ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.GPLv3 + install -Dm644 ${srcdir}/${_realname}-$pkgver/COPYING.LGPLv2.1 ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LGPLv2.1 } From bd88bcd43a713b16012d842286fed5480cf44610 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 28 Feb 2015 10:54:35 +0300 Subject: [PATCH 0591/2060] gnutls: Update to 3.3.13 --- mingw-w64-gnutls/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index 84e4910b30..08ff10e914 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -2,7 +2,7 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.3.12 +pkgver=3.3.13 pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') @@ -22,7 +22,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/${_realname}-${pkgver}.tar.xz{,.sig} 0004-fix-gtkdoc.all.patch 0005-fix-strtok-conflict.mingw.patch) -md5sums=('a37b20b4352a5f542367ded904729c90' +md5sums=('a7387fe8bf3e604bf518a6da9ab2a4e6' 'SKIP' '86cfab6e7c2ccfcfd1dad9d5024627e3' '77287dc835afbb8cc4e9c4aa6b7adb7b') @@ -59,6 +59,7 @@ build() { --disable-guile \ --disable-libdane \ gl_cv_double_slash_root=yes + make } From 1d573ecba5a8484451782197148728455e4fb66b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 28 Feb 2015 10:55:01 +0300 Subject: [PATCH 0592/2060] glib2: Update to 2.42.2 --- mingw-w64-glib2/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 7b8215f6f5..39c9196d3f 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -3,8 +3,8 @@ _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.42.1 -pkgrel=4 +pkgver=2.42.2 +pkgrel=1 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" @@ -28,7 +28,7 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.t 0024-return-actually-written-data-in-printf.all.patch 0001-gsocket-block-when-errno-says-it-will-block.patch 0027-no_sys_if_nametoindex.patch) -md5sums=('89c4119e50e767d3532158605ee9121a' +md5sums=('ae9ee104932657ed08ef4679556be07f' '98c7778b5e8a30dbcdb86bcd15f9c11d' '6eb9d56028ea3bbec3d053254a00a04b' '46969e815f3ab19582ba33667a52048b' From 435106512552ec5d7e49529472edffd86b6649f2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 28 Feb 2015 12:54:17 +0300 Subject: [PATCH 0593/2060] gtk3: Update to 3.14.9 --- mingw-w64-gtk3/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 91e45433c4..76965c6bd1 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -2,7 +2,7 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.8 +pkgver=3.14.9 pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') @@ -33,7 +33,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0054-no-transparency-for-children.all.patch 0055-skip-testsuite.all.patch Make-reftest-plugins-W32-compatible.patch) -md5sums=('e46a12448b348d384b8bb29f0c22718f' +md5sums=('40902a0b035277011095946e1c61290d' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' '397bf8001d3da75e06b5794e378ae25f' From ed061a75c1391761288b6db1034b9efb334dc048 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 28 Feb 2015 12:08:03 +0000 Subject: [PATCH 0594/2060] imagemagick: Minor PKGBUILD improvements. * Make the debug build verbose * Remove patch-created files in prerpare() --- mingw-w64-imagemagick/PKGBUILD | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index 2089c5503e..f8036c963d 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -59,6 +59,7 @@ md5sums=('fcaf0ead3b5cafcb36c7642e2557dccb' prepare() { cd ImageMagick-${pkgver%.*}-${pkgver##*.} + rm -f magick/pathtools{.c,.h} > /dev/null 2>&1 || true patch -p1 -i ${srcdir}/ImageMagick-6.8.8.1-mingw.patch patch -p1 -i ${srcdir}/001-relocate.patch patch -p1 -i ${srcdir}/002-build-fixes.patch @@ -100,9 +101,13 @@ build() { --without-perl \ --without-x \ --with-windows-font-dir=c:/Windows/fonts \ - $EXTRAOPTS + $EXTRAOPTS \ + CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" - make + if check_option "debug" "y"; then + MAKE_VERBOSE="V=1" + fi + make ${MAKE_VERBOSE} #--enable-opencl \ # --with-gs-font-dir=${MINGW_PREFIX}/ \ @@ -114,7 +119,10 @@ build() { package() { cd ${srcdir}/build-${MINGW_CHOST} - make -j1 DESTDIR="${pkgdir}" install + if check_option "debug" "y"; then + MAKE_VERBOSE="V=1" + fi + make -j1 DESTDIR="${pkgdir}" install ${MAKE_VERBOSE} #find . -name "*.xml" -exec sed -i "s/${MINGW_PREFIX}/newWord/g" '{}' \; From c7ad3f2c117d24c2e6c9199a9457bcc787b8c468 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Sat, 28 Feb 2015 23:46:51 +0000 Subject: [PATCH 0595/2060] vlc-git: remove double width hack from dx11 vout --- .../0010-d3d11-vout-plugin.patch | 36 ++++++++----------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch b/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch index 74ef446b73..0e008c99a9 100644 --- a/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch +++ b/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch @@ -1,7 +1,7 @@ -From 4c16bc99b3662a9cb477ef889dbd46fa20e4ab6d Mon Sep 17 00:00:00 2001 +From 5d9078e9028694a01c9bdbcb12589143ef2156e6 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 24 Dec 2014 16:37:27 +0000 -Subject: [PATCH 2/2] d3d11 vout plugin +Subject: [PATCH] d3d11 vout plugin --- configure.ac | 7 +- @@ -9,9 +9,9 @@ Subject: [PATCH 2/2] d3d11 vout plugin modules/video_output/Makefile.am | 12 + modules/video_output/msw/common.c | 10 +- modules/video_output/msw/common.h | 61 +++ - modules/video_output/msw/direct3d11.c | 871 ++++++++++++++++++++++++++++++++++ + modules/video_output/msw/direct3d11.c | 863 ++++++++++++++++++++++++++++++++++ modules/video_output/msw/events.c | 10 +- - 7 files changed, 961 insertions(+), 11 deletions(-) + 7 files changed, 953 insertions(+), 11 deletions(-) create mode 100644 modules/video_output/msw/direct3d11.c diff --git a/configure.ac b/configure.ac @@ -68,7 +68,7 @@ index e05b28f..1a2ae96 100644 video_output/msw/common.c video_output/msw/common.h \ video_output/msw/events.c video_output/msw/events.h \ diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c -index 75c8a76..b2308ed 100644 +index 1ebe08c..9782a4e 100644 --- a/modules/video_output/msw/common.c +++ b/modules/video_output/msw/common.c @@ -72,7 +72,7 @@ int CommonInit(vout_display_t *vd) @@ -197,10 +197,10 @@ index 5cb8c45..a8bf9ce 100644 /* show video on desktop window ? */ diff --git a/modules/video_output/msw/direct3d11.c b/modules/video_output/msw/direct3d11.c new file mode 100644 -index 0000000..66ae281 +index 0000000..b94af95 --- /dev/null +++ b/modules/video_output/msw/direct3d11.c -@@ -0,0 +1,871 @@ +@@ -0,0 +1,863 @@ +/***************************************************************************** + * direct3d11.c: Windows Direct3D11 video output module + ***************************************************************************** @@ -243,8 +243,6 @@ index 0000000..66ae281 +static int Open(vlc_object_t *); +static void Close(vlc_object_t *); + -+#define DESKTOP_LONGTEXT N_(\ -+ "The desktop mode allows you to display the video on the desktop.") + +#define D3D11_HELP N_("Recommended video output for Windows 8 and later versions") + @@ -290,8 +288,6 @@ index 0000000..66ae281 +{ + ID3D11Texture2D *surface; + ID3D11DeviceContext *context; -+ picture_t *fallback; -+ int pitch; +}; + +static int Open(vlc_object_t *); @@ -508,7 +504,7 @@ index 0000000..66ae281 + //d3dcompiler_47 is the latest on windows 8.1 + for (int i = 47; i > 23; --i) { + TCHAR filename[18]; -+ _sntprintf(filename, 18, TEXT("d3dcompiler_%d.dll"), i); ++ _sntprintf(filename, 18, TEXT("D3DCOMPILER_%d.dll"), i); + instance = LoadLibrary(filename); + if (instance) break; + } @@ -643,7 +639,7 @@ index 0000000..66ae281 + scd.SampleDesc.Count = 1; + scd.SampleDesc.Quality = 0; + scd.Windowed = TRUE; -+ scd.BufferDesc.Width = fmt->i_visible_width * 2; ++ scd.BufferDesc.Width = fmt->i_visible_width; + scd.BufferDesc.Height = fmt->i_visible_height; + scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + @@ -750,6 +746,7 @@ index 0000000..66ae281 + vout_display_sys_t *sys = vd->sys; + + Direct3D11DestroyResources(vd); ++ ID3D11DeviceContext_Release(sys->d3dcontext); + ID3D11Device_Release(sys->d3ddevice); + msg_Dbg(vd, "Direct3D11 device adapter closed"); +} @@ -763,6 +760,7 @@ index 0000000..66ae281 + HRESULT hr; + + fmt->i_chroma = VLC_CODEC_RGBA; ++ sys->d3dregion_format = DXGI_FORMAT_R8G8B8A8_UNORM; + + hr = IDXGISwapChain_GetBuffer(sys->dxgi_swapChain, 0, &IID_ID3D11Texture2D, (LPVOID*)&pBackBuffer); + if (FAILED(hr)) { @@ -819,7 +817,7 @@ index 0000000..66ae281 + ID3D11DeviceContext_OMSetRenderTargets(sys->d3dcontext, 1, &sys->d3drenderTargetView, sys->d3ddepthStencilView); + + D3D11_VIEWPORT vp; -+ vp.Width = (FLOAT)fmt->i_visible_width * 2 * 2; //not sure why it needs to be doubled ++ vp.Width = (FLOAT)fmt->i_visible_width; + vp.Height = (FLOAT)fmt->i_visible_height; + vp.MinDepth = 0.0f; + vp.MaxDepth = 1.0f; @@ -937,11 +935,9 @@ index 0000000..66ae281 + + ID3D11DeviceContext_IASetPrimitiveTopology(sys->d3dcontext, D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); + -+ sys->d3dregion_format = DXGI_FORMAT_R8G8B8A8_UNORM; -+ + D3D11_TEXTURE2D_DESC texDesc; + memset(&texDesc, 0, sizeof(texDesc)); -+ texDesc.Width = fmt->i_visible_width * 2; ++ texDesc.Width = fmt->i_visible_width; + texDesc.Height = fmt->i_visible_height; + texDesc.MipLevels = texDesc.ArraySize = 1; + texDesc.Format = sys->d3dregion_format; @@ -998,8 +994,6 @@ index 0000000..66ae281 + + picsys->surface = sys->d3dtexture; + picsys->context = sys->d3dcontext; -+ picsys->fallback = NULL; -+ picsys->pitch = fmt->i_visible_width * 2 * 4; + + picture_resource_t resource = { .p_sys = picsys }; + for (int i = 0; i < PICTURE_PLANE_MAX; i++) @@ -1037,8 +1031,6 @@ index 0000000..66ae281 + if (sys->pool) { + picture_sys_t *picsys = sys->picsys; + ID3D11Texture2D_Release(picsys->surface); -+ if (picsys->fallback) -+ picture_Release(picsys->fallback); + picture_pool_Release(sys->pool); + } + sys->pool = NULL; @@ -1050,7 +1042,7 @@ index 0000000..66ae281 +{ + D3D11_MAPPED_SUBRESOURCE mappedResource; + ID3D11DeviceContext_Map(picture->p_sys->context, (ID3D11Resource*)picture->p_sys->surface, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); -+ CommonUpdatePicture(picture, NULL, mappedResource.pData, picture->p_sys->pitch); ++ CommonUpdatePicture(picture, NULL, mappedResource.pData, mappedResource.RowPitch); + ID3D11DeviceContext_Unmap(picture->p_sys->context,(ID3D11Resource*)picture->p_sys->surface, 0); + return VLC_SUCCESS; +} From dc6573d6de4c4ed0a520f2f23205ee392c76862e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 1 Mar 2015 23:38:32 +0300 Subject: [PATCH 0596/2060] hicolor-icon-theme: Update to 0.14. Add post-install scripts. --- mingw-w64-hicolor-icon-theme/PKGBUILD | 11 ++++++----- .../hicolor-icon-theme-i686.install | 19 +++++++++++++++++++ .../hicolor-icon-theme-x86_64.install | 19 +++++++++++++++++++ 3 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-hicolor-icon-theme/hicolor-icon-theme-i686.install create mode 100644 mingw-w64-hicolor-icon-theme/hicolor-icon-theme-x86_64.install diff --git a/mingw-w64-hicolor-icon-theme/PKGBUILD b/mingw-w64-hicolor-icon-theme/PKGBUILD index 77153158cd..046e1e6cef 100644 --- a/mingw-w64-hicolor-icon-theme/PKGBUILD +++ b/mingw-w64-hicolor-icon-theme/PKGBUILD @@ -1,19 +1,18 @@ # Maintainer: Alexey Pavlov _realname=hicolor-icon-theme - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.13 +pkgver=0.14 pkgrel=1 pkgdesc="Freedesktop.org Hicolor icon theme (mingw-w64)" arch=('any') url="http://icon-theme.freedesktop.org/wiki/HicolorTheme" license=("GPL2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -depends=() +install=${_realname}-${CARCH}.install options=(!libtool strip staticlibs) -source=("http://icon-theme.freedesktop.org/releases/${_realname}-${pkgver}.tar.gz") -md5sums=('21d0f50aa6b8eef02846cda9e5e9324c') +source=("http://icon-theme.freedesktop.org/releases/${_realname}-${pkgver}.tar.xz") +md5sums=('56d2c6c3a9df5a0acd332430e3f3ae3e') build() { cd ${srcdir}/${_realname}-${pkgver} @@ -27,4 +26,6 @@ build() { package() { cd "${srcdir}/${_realname}-${pkgver}" make DESTDIR="$pkgdir" install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING } diff --git a/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-i686.install b/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-i686.install new file mode 100644 index 0000000000..e9d79a9c1d --- /dev/null +++ b/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-i686.install @@ -0,0 +1,19 @@ +post_install() { + [[ -f mingw32/bin/gtk-update-icon-cache.exe ]] && { + mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/hicolor + } + [[ -f mingw32/bin/gtk-update-icon-cache-3.0.exe ]] && { + mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/hicolor + } + [[ -f mingw32/bin/gdk-pixbuf-query-loaders.exe ]] && { + mingw32/bin/gdk-pixbuf-query-loaders.exe --update-cache + } +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-x86_64.install b/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-x86_64.install new file mode 100644 index 0000000000..0f90cc6ec7 --- /dev/null +++ b/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-x86_64.install @@ -0,0 +1,19 @@ +post_install() { + [[ -f mingw64/bin/gtk-update-icon-cache.exe ]] && { + mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/hicolor + } + [[ -f mingw64/bin/gtk-update-icon-cache-3.0.exe ]] && { + mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/hicolor + } + [[ -f mingw64/bin/gdk-pixbuf-query-loaders.exe ]] && { + mingw64/bin/gdk-pixbuf-query-loaders.exe --update-cache + } +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} From bf1c5cc2f5b93fafaf6642e5eaa7b175230564cc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 1 Mar 2015 23:39:41 +0300 Subject: [PATCH 0597/2060] adwaita-icon-theme: Update to 3.15.1. Do not depends from gtk2. Fix post-install scripts. --- mingw-w64-adwaita-icon-theme/PKGBUILD | 14 ++++++++------ mingw-w64-adwaita-icon-theme/theme-i686.install | 11 +++++++++-- mingw-w64-adwaita-icon-theme/theme-x86_64.install | 11 +++++++++-- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/mingw-w64-adwaita-icon-theme/PKGBUILD b/mingw-w64-adwaita-icon-theme/PKGBUILD index a941fd5dc9..c06ba7cf8d 100644 --- a/mingw-w64-adwaita-icon-theme/PKGBUILD +++ b/mingw-w64-adwaita-icon-theme/PKGBUILD @@ -2,7 +2,7 @@ _realname=adwaita-icon-theme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.0 +pkgver=3.15.1 pkgrel=1 pkgdesc="GNOME icon theme (mingw-w64)" arch=('any') @@ -10,16 +10,14 @@ url="http://www.gnome.org" license=("GPL") makedepends=("intltool") depends=("${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" - "${MINGW_PACKAGE_PREFIX}-icon-naming-utils" - "${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-librsvg" - ) + "${MINGW_PACKAGE_PREFIX}-icon-naming-utils" + "${MINGW_PACKAGE_PREFIX}-librsvg") groups=("${MINGW_PACKAGE_PREFIX}-gnome") options=(!libtool strip staticlibs) install=theme-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 0001-localedir-fix.patch) -sha256sums=('afacb6025a18be007e33a9663b92cee9d2745279bb00107a68e09b2806f9541f' +sha256sums=('12a543f6e646a89601885b61e7f649af2757dd479af271c615d71f07b6c6d97a' '35b66334d0856bc44ef202c8df1bfa11f0be658b31b946ca49afe1c357c61adb') prepare() { @@ -44,4 +42,8 @@ package() { make DESTDIR="$pkgdir" install mkdir -p ${pkgdir}${MINGW_PREFIX}/lib mv ${pkgdir}${MINGW_PREFIX}/share/pkgconfig ${pkgdir}${MINGW_PREFIX}/lib/ + + install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING + install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING_LGPL ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING_LGPL + install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING_CCBYSA3 ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING_CCBYSA3 } diff --git a/mingw-w64-adwaita-icon-theme/theme-i686.install b/mingw-w64-adwaita-icon-theme/theme-i686.install index cd7e21db13..ff105002aa 100644 --- a/mingw-w64-adwaita-icon-theme/theme-i686.install +++ b/mingw-w64-adwaita-icon-theme/theme-i686.install @@ -1,6 +1,13 @@ post_install() { - mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/Adwaita - mingw32/bin/gdk-pixbuf-query-loaders.exe --update-cache + [[ -f mingw32/bin/gtk-update-icon-cache.exe ]] && { + mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/Adwaita + } + [[ -f mingw32/bin/gtk-update-icon-cache-3.0.exe ]] && { + mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/Adwaita + } + [[ -f mingw32/bin/gdk-pixbuf-query-loaders.exe ]] && { + mingw32/bin/gdk-pixbuf-query-loaders.exe --update-cache + } } post_upgrade() { diff --git a/mingw-w64-adwaita-icon-theme/theme-x86_64.install b/mingw-w64-adwaita-icon-theme/theme-x86_64.install index e4196332bd..5eb144e664 100644 --- a/mingw-w64-adwaita-icon-theme/theme-x86_64.install +++ b/mingw-w64-adwaita-icon-theme/theme-x86_64.install @@ -1,6 +1,13 @@ post_install() { - mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/Adwaita - mingw64/bin/gdk-pixbuf-query-loaders.exe --update-cache + [[ -f mingw64/bin/gtk-update-icon-cache.exe ]] && { + mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/Adwaita + } + [[ -f mingw64/bin/gtk-update-icon-cache-3.0.exe ]] && { + mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/Adwaita + } + [[ -f mingw64/bin/gdk-pixbuf-query-loaders.exe ]] && { + mingw64/bin/gdk-pixbuf-query-loaders.exe --update-cache + } } post_upgrade() { From 54365ef768e1569c3319abc1efd5efc0cdd53a4a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 1 Mar 2015 23:41:04 +0300 Subject: [PATCH 0598/2060] gtk2: Add adwaita icon theme to dependencies. Remove unnecessary patch. --- ...k-revert-recreatecairosurface-commit.patch | 89 ------------------- mingw-w64-gtk2/PKGBUILD | 15 ++-- mingw-w64-gtk2/gtk2-i686.install | 9 +- mingw-w64-gtk2/gtk2-x86_64.install | 9 +- 4 files changed, 16 insertions(+), 106 deletions(-) delete mode 100644 mingw-w64-gtk2/0013-gtk-revert-recreatecairosurface-commit.patch diff --git a/mingw-w64-gtk2/0013-gtk-revert-recreatecairosurface-commit.patch b/mingw-w64-gtk2/0013-gtk-revert-recreatecairosurface-commit.patch deleted file mode 100644 index e0d8c708cb..0000000000 --- a/mingw-w64-gtk2/0013-gtk-revert-recreatecairosurface-commit.patch +++ /dev/null @@ -1,89 +0,0 @@ ---- gtk-2.24.23.orig/gdk/win32/gdkdrawable-win32.c 2014-03-18 02:19:03.000000000 +0100 -+++ gtk-2.24.23/gdk/win32/gdkdrawable-win32.c 2014-05-29 15:57:21.843450500 +0200 -@@ -144,7 +144,6 @@ - static void gdk_drawable_impl_win32_finalize (GObject *object); - - static const cairo_user_data_key_t gdk_win32_cairo_key; --static const cairo_user_data_key_t gdk_win32_cairo_hdc_key; - - G_DEFINE_TYPE (GdkDrawableImplWin32, _gdk_drawable_impl_win32, GDK_TYPE_DRAWABLE) - -@@ -1910,33 +1909,13 @@ - } - } - --static void --gdk_win32_cairo_surface_release_hdc (void *data) --{ -- _gdk_win32_drawable_release_dc (GDK_DRAWABLE (data)); --} -- - cairo_surface_t * - _gdk_windowing_create_cairo_surface (GdkDrawable *drawable, - gint width, - gint height) - { -- cairo_surface_t *surface; -- HDC hdc; -- -- hdc = _gdk_win32_drawable_acquire_dc (drawable); -- if (!hdc) -- return NULL; -- -- surface = cairo_win32_surface_create (hdc); -- -- /* Whenever the cairo surface is destroyed, we need to release the -- * HDC that was acquired */ -- cairo_surface_set_user_data (surface, &gdk_win32_cairo_hdc_key, -- drawable, -- gdk_win32_cairo_surface_release_hdc); -- -- return surface; -+ /* width and height are determined from the DC */ -+ return gdk_win32_ref_cairo_surface (drawable); - } - - static void -@@ -1944,6 +1923,7 @@ - { - GdkDrawableImplWin32 *impl = data; - -+ _gdk_win32_drawable_release_dc (GDK_DRAWABLE (impl)); - impl->cairo_surface = NULL; - } - -@@ -1958,14 +1938,14 @@ - - if (!impl->cairo_surface) - { -- /* width and height are determined from the DC */ -- impl->cairo_surface = _gdk_windowing_create_cairo_surface (drawable, 0, 0); -+ HDC hdc = _gdk_win32_drawable_acquire_dc (drawable); -+ if (!hdc) -+ return NULL; -+ -+ impl->cairo_surface = cairo_win32_surface_create (hdc); - -- /* Whenever the cairo surface is destroyed, we need to clear the -- * pointer that we had stored here */ - cairo_surface_set_user_data (impl->cairo_surface, &gdk_win32_cairo_key, -- drawable, -- gdk_win32_cairo_surface_destroy); -+ drawable, gdk_win32_cairo_surface_destroy); - } - else - cairo_surface_reference (impl->cairo_surface); -@@ -2044,11 +2024,9 @@ - if (impl->cairo_surface) - { - cairo_surface_finish (impl->cairo_surface); -- cairo_surface_set_user_data (impl->cairo_surface, &gdk_win32_cairo_hdc_key, NULL, NULL); - cairo_surface_set_user_data (impl->cairo_surface, &gdk_win32_cairo_key, NULL, NULL); - } - -- /* impl->hdc_count doesn't have to be 0 here; as there may still be surfaces -- * created with gdk_windowing_create_cairo_surface() out there, which are not -- * managed internally by the drawable */ -+ g_assert (impl->hdc_count == 0); -+ - } diff --git a/mingw-w64-gtk2/PKGBUILD b/mingw-w64-gtk2/PKGBUILD index 7a94ac89e2..a5d4f22586 100644 --- a/mingw-w64-gtk2/PKGBUILD +++ b/mingw-w64-gtk2/PKGBUILD @@ -4,7 +4,7 @@ _realname=gtk2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.24.26 -pkgrel=1 +pkgrel=2 pkgdesc="GTK+ is a multi-platform toolkit (v2) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -16,14 +16,14 @@ license=(LGPL2.1+) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-shared-mime-info" "gtk-doc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" "${MINGW_PACKAGE_PREFIX}-atk>=1.29.2" - "${MINGW_PACKAGE_PREFIX}-pango>=1.20" - "${MINGW_PACKAGE_PREFIX}-glib2>=2.28.0" "${MINGW_PACKAGE_PREFIX}-cairo>=1.6" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2>=2.21.0" + "${MINGW_PACKAGE_PREFIX}-glib2>=2.28.0" + "${MINGW_PACKAGE_PREFIX}-pango>=1.20" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") optdepends=("${MINGW_PACKAGE_PREFIX}-gnome-icon-theme: Default icon theme") install=gtk2-${CARCH}.install @@ -38,8 +38,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0009-give-cc-to-gir-scanner.mingw.patch 0010-put-gtk-dll-into-path.mingw.patch 0011-gir-for-gdkwin32.mingw.patch - 0012-embed-manifest.all.patch - 0013-gtk-revert-recreatecairosurface-commit.patch) + 0012-embed-manifest.all.patch) md5sums=('4610cc60ff96073b83dc7de254bdaf38' '5105b21ea13dbfbef8975138b4355e7a' @@ -51,8 +50,7 @@ md5sums=('4610cc60ff96073b83dc7de254bdaf38' 'e8bd83e4eb9877d009ad57458cf5a6b0' '9e0296da2986be7697cf343563b85d1f' '91d12fc6da9026deb0f94f38ab22a3ec' - '864a719c5fea860ced90cacab5545b1d' - '1dbf362025860675ace96bdfaa96f283') + '864a719c5fea860ced90cacab5545b1d') prepare() { cd gtk+-$pkgver @@ -65,7 +63,6 @@ prepare() { patch -p1 -i ${srcdir}/0010-put-gtk-dll-into-path.mingw.patch patch -p1 -i ${srcdir}/0011-gir-for-gdkwin32.mingw.patch #patch -p1 -i ${srcdir}/0012-embed-manifest.all.patch - patch -p1 -i ${srcdir}/0013-gtk-revert-recreatecairosurface-commit.patch autoreconf -fi } diff --git a/mingw-w64-gtk2/gtk2-i686.install b/mingw-w64-gtk2/gtk2-i686.install index fdc232abe9..b0ef811e17 100644 --- a/mingw-w64-gtk2/gtk2-i686.install +++ b/mingw-w64-gtk2/gtk2-i686.install @@ -1,12 +1,13 @@ post_install() { - mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/hicolor - mingw32/bin/gtk-query-immodules-2.0 --update-cache + mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/hicolor + mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/Adwaita + mingw32/bin/gtk-query-immodules-2.0 --update-cache } post_upgrade() { - post_install + post_install } pre_remove() { - rm -f mingw32/lib/gtk-2.0/2.10.0/immodules.cache + rm -f mingw32/lib/gtk-2.0/2.10.0/immodules.cache } diff --git a/mingw-w64-gtk2/gtk2-x86_64.install b/mingw-w64-gtk2/gtk2-x86_64.install index 137a31964f..1aa4ccb042 100644 --- a/mingw-w64-gtk2/gtk2-x86_64.install +++ b/mingw-w64-gtk2/gtk2-x86_64.install @@ -1,12 +1,13 @@ post_install() { - mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/hicolor - mingw64/bin/gtk-query-immodules-2.0 --update-cache + mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/hicolor + mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/Adwaita + mingw64/bin/gtk-query-immodules-2.0 --update-cache } post_upgrade() { - post_install + post_install } pre_remove() { - rm -f mingw64/lib/gtk-2.0/2.10.0/immodules.cache + rm -f mingw64/lib/gtk-2.0/2.10.0/immodules.cache } \ No newline at end of file From ee6861c7316d99bf9df596dbee8e0bd5d322b542 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 1 Mar 2015 23:42:06 +0300 Subject: [PATCH 0599/2060] gtk3: Add adwaita icon theme to dependencies. Fix post-install scripts. --- mingw-w64-gtk3/PKGBUILD | 7 +++--- mingw-w64-gtk3/gtk3-i686.install | 34 ++++++++++++++++-------------- mingw-w64-gtk3/gtk3-x86_64.install | 34 ++++++++++++++++-------------- 3 files changed, 40 insertions(+), 35 deletions(-) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 76965c6bd1..c1672e7464 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.14.9 -pkgrel=1 +pkgrel=2 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -17,12 +17,13 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" makedepends+=("autoconf" "automake" "libtool") # autotools are required because several Makefile.am are modified depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" "${MINGW_PACKAGE_PREFIX}-atk" - "${MINGW_PACKAGE_PREFIX}-pango" - "${MINGW_PACKAGE_PREFIX}-glib2>=2.41.0" "${MINGW_PACKAGE_PREFIX}-cairo" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" + "${MINGW_PACKAGE_PREFIX}-glib2>=2.41.0" "${MINGW_PACKAGE_PREFIX}-json-glib" + "${MINGW_PACKAGE_PREFIX}-pango" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" diff --git a/mingw-w64-gtk3/gtk3-i686.install b/mingw-w64-gtk3/gtk3-i686.install index 1b09e7f352..9a816e1baf 100644 --- a/mingw-w64-gtk3/gtk3-i686.install +++ b/mingw-w64-gtk3/gtk3-i686.install @@ -1,18 +1,19 @@ post_install() { - mkdir -p mingw32/lib/gtk-3.0 - mingw32/bin/gtk-query-immodules-3.0.exe > mingw32/lib/gtk-3.0/immodules.cache - mingw32/bin/gtk-update-icon-cache-3.0 -f -t mingw32/share/icons/hicolor - mingw32/bin/glib-compile-schemas.exe mingw32/share/glib-2.0/schemas + mkdir -p mingw32/lib/gtk-3.0 + mingw32/bin/gtk-query-immodules-3.0.exe > mingw32/lib/gtk-3.0/immodules.cache + mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/hicolor + mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/Adwaita + mingw32/bin/glib-compile-schemas.exe mingw32/share/glib-2.0/schemas - settingsfile=mingw32/etc/gtk-3.0/settings.ini - if test ! -f $settingsfile - then - echo [Settings]>>$settingsfile - echo gtk-xft-antialias=1>>$settingsfile - echo gtk-xft-hinting=1>>$settingsfile - echo gtk-xft-hintstyle=hintfull>>$settingsfile - echo gtk-xft-rgba=rgb>>$settingsfile - fi + settingsfile=mingw32/etc/gtk-3.0/settings.ini + if test ! -f $settingsfile + then + echo [Settings]>>$settingsfile + echo gtk-xft-antialias=1>>$settingsfile + echo gtk-xft-hinting=1>>$settingsfile + echo gtk-xft-hintstyle=hintfull>>$settingsfile + echo gtk-xft-rgba=rgb>>$settingsfile + fi } post_upgrade() { @@ -20,7 +21,8 @@ post_upgrade() { } post_remove() { - rm -f mingw32/lib/gtk-3.0/immodules.cache - mingw32/bin/glib-compile-schemas.exe mingw32/share/glib-2.0/schemas - mingw32/bin/gtk-update-icon-cache-3.0 -f -t mingw32/share/icons/hicolor + rm -f mingw32/lib/gtk-3.0/immodules.cache + mingw32/bin/glib-compile-schemas.exe mingw32/share/glib-2.0/schemas + mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/hicolor + mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/Adwaita } diff --git a/mingw-w64-gtk3/gtk3-x86_64.install b/mingw-w64-gtk3/gtk3-x86_64.install index 7f0ad01f90..ccb3c37ae7 100644 --- a/mingw-w64-gtk3/gtk3-x86_64.install +++ b/mingw-w64-gtk3/gtk3-x86_64.install @@ -1,18 +1,19 @@ post_install() { - mkdir -p mingw64/lib/gtk-3.0 - mingw64/bin/gtk-query-immodules-3.0.exe > mingw64/lib/gtk-3.0/immodules.cache - mingw64/bin/gtk-update-icon-cache-3.0 -f -t mingw64/share/icons/hicolor - mingw64/bin/glib-compile-schemas.exe mingw64/share/glib-2.0/schemas + mkdir -p mingw64/lib/gtk-3.0 + mingw64/bin/gtk-query-immodules-3.0.exe > mingw64/lib/gtk-3.0/immodules.cache + mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/hicolor + mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/Adwaita + mingw64/bin/glib-compile-schemas.exe mingw64/share/glib-2.0/schemas - settingsfile=mingw64/etc/gtk-3.0/settings.ini - if test ! -f $settingsfile - then - echo [Settings]>>$settingsfile - echo gtk-xft-antialias=1>>$settingsfile - echo gtk-xft-hinting=1>>$settingsfile - echo gtk-xft-hintstyle=hintfull>>$settingsfile - echo gtk-xft-rgba=rgb>>$settingsfile - fi + settingsfile=mingw64/etc/gtk-3.0/settings.ini + if test ! -f $settingsfile + then + echo [Settings]>>$settingsfile + echo gtk-xft-antialias=1>>$settingsfile + echo gtk-xft-hinting=1>>$settingsfile + echo gtk-xft-hintstyle=hintfull>>$settingsfile + echo gtk-xft-rgba=rgb>>$settingsfile + fi } post_upgrade() { @@ -20,7 +21,8 @@ post_upgrade() { } post_remove() { - rm -f mingw64/lib/gtk-3.0/immodules.cache - mingw64/bin/glib-compile-schemas.exe mingw64/share/glib-2.0/schemas - mingw64/bin/gtk-update-icon-cache-3.0 -f -t mingw64/share/icons/hicolor + rm -f mingw64/lib/gtk-3.0/immodules.cache + mingw64/bin/glib-compile-schemas.exe mingw64/share/glib-2.0/schemas + mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/hicolor + mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/Adwaita } From e947362ce59167a687892a759dd512a5619a828d Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Sun, 1 Mar 2015 20:47:51 +0000 Subject: [PATCH 0600/2060] vlc-git: dx11 vout add support for NV12 --- .../0010-d3d11-vout-plugin.patch | 368 +++++++++--------- 1 file changed, 186 insertions(+), 182 deletions(-) diff --git a/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch b/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch index 0e008c99a9..7574f272a2 100644 --- a/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch +++ b/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch @@ -1,4 +1,4 @@ -From 5d9078e9028694a01c9bdbcb12589143ef2156e6 Mon Sep 17 00:00:00 2001 +From 4d05fdc69f06e84ab16f02a4d70111855e06a3f0 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 24 Dec 2014 16:37:27 +0000 Subject: [PATCH] d3d11 vout plugin @@ -7,11 +7,11 @@ Subject: [PATCH] d3d11 vout plugin configure.ac | 7 +- modules/MODULES_LIST | 1 + modules/video_output/Makefile.am | 12 + - modules/video_output/msw/common.c | 10 +- - modules/video_output/msw/common.h | 61 +++ - modules/video_output/msw/direct3d11.c | 863 ++++++++++++++++++++++++++++++++++ + modules/video_output/msw/common.c | 23 +- + modules/video_output/msw/common.h | 41 ++ + modules/video_output/msw/direct3d11.c | 888 ++++++++++++++++++++++++++++++++++ modules/video_output/msw/events.c | 10 +- - 7 files changed, 953 insertions(+), 11 deletions(-) + 7 files changed, 974 insertions(+), 8 deletions(-) create mode 100644 modules/video_output/msw/direct3d11.c diff --git a/configure.ac b/configure.ac @@ -68,19 +68,36 @@ index e05b28f..1a2ae96 100644 video_output/msw/common.c video_output/msw/common.h \ video_output/msw/events.c video_output/msw/events.h \ diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c -index 1ebe08c..9782a4e 100644 +index 1ebe08c..cbdd15b 100644 --- a/modules/video_output/msw/common.c +++ b/modules/video_output/msw/common.c -@@ -72,7 +72,7 @@ int CommonInit(vout_display_t *vd) +@@ -214,6 +214,25 @@ int CommonUpdatePicture(picture_t *picture, picture_t **fallback, + picture->p->i_pitch = pitch; + picture->p->i_lines = picture->format.i_visible_height; - event_cfg_t cfg; - memset(&cfg, 0, sizeof(cfg)); --#ifdef MODULE_NAME_IS_direct3d9 -+#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) - cfg.use_desktop = sys->use_desktop; - #endif - #ifdef MODULE_NAME_IS_directdraw -@@ -348,7 +348,7 @@ void UpdateRects(vout_display_t *vd, ++ /* Fill chroma planes for biplanar YUV */ ++ if (picture->format.i_chroma == VLC_CODEC_NV12 || ++ picture->format.i_chroma == VLC_CODEC_NV21) { ++ ++ for (int n = 1; n < picture->i_planes; n++) { ++ const plane_t *o = &picture->p[n-1]; ++ plane_t *p = &picture->p[n]; ++ ++ p->p_pixels = o->p_pixels + o->i_lines * o->i_pitch; ++ p->i_pitch = pitch; ++ p->i_lines = picture->format.i_visible_height; ++ } ++ /* The dx/d3d buffer is always allocated as NV12 */ ++ if (vlc_fourcc_AreUVPlanesSwapped(picture->format.i_chroma, VLC_CODEC_NV12)) { ++ // TODO : Swap NV21 UV planes to match NV12 ++ return VLC_EGENERIC; ++ } ++ } ++ + /* Fill chroma planes for planar YUV */ + if (picture->format.i_chroma == VLC_CODEC_I420 || + picture->format.i_chroma == VLC_CODEC_J420 || +@@ -348,7 +367,7 @@ void UpdateRects(vout_display_t *vd, SWP_NOCOPYBITS|SWP_NOZORDER|SWP_ASYNCWINDOWPOS); /* Destination image position and dimensions */ @@ -89,7 +106,7 @@ index 1ebe08c..9782a4e 100644 rect_dest.left = 0; rect_dest.right = place.width; rect_dest.top = 0; -@@ -425,7 +425,7 @@ void UpdateRects(vout_display_t *vd, +@@ -425,7 +444,7 @@ void UpdateRects(vout_display_t *vd, /* Apply overlay hardware constraints */ if (sys->use_overlay) AlignRect(&rect_src_clipped, sys->i_align_src_boundary, sys->i_align_src_size); @@ -98,26 +115,8 @@ index 1ebe08c..9782a4e 100644 /* Needed at least with YUV content */ rect_src_clipped.left &= ~1; rect_src_clipped.right &= ~1; -@@ -465,7 +465,7 @@ static int CommonControlSetFullscreen(vout_display_t *vd, bool is_fullscreen) - { - vout_display_sys_t *sys = vd->sys; - --#ifdef MODULE_NAME_IS_direct3d9 -+#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) - if (sys->use_desktop && is_fullscreen) - return VLC_EGENERIC; - #endif -@@ -591,7 +591,7 @@ int CommonControl(vout_display_t *vd, int query, va_list args) - case VOUT_DISPLAY_CHANGE_WINDOW_STATE: { /* unsigned state */ - const unsigned state = va_arg(args, unsigned); - const bool is_on_top = (state & VOUT_WINDOW_STATE_ABOVE) != 0; --#ifdef MODULE_NAME_IS_direct3d9 -+#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) - if (sys->use_desktop && is_on_top) - return VLC_EGENERIC; - #endif diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h -index 5cb8c45..a8bf9ce 100644 +index 5cb8c45..f9ed5bf 100644 --- a/modules/video_output/msw/common.h +++ b/modules/video_output/msw/common.h @@ -25,6 +25,11 @@ @@ -132,64 +131,44 @@ index 5cb8c45..a8bf9ce 100644 #ifdef MODULE_NAME_IS_direct3d9 # include # include -@@ -135,6 +140,62 @@ struct vout_display_sys_t +@@ -135,6 +140,42 @@ struct vout_display_sys_t ID2D1Bitmap *d2_bitmap; /* D2 bitmap */ #endif +#ifdef MODULE_NAME_IS_direct3d11 -+ bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ -+ /* show video on desktop window ? */ -+ bool use_desktop; -+ struct { -+ bool is_fullscreen; -+ bool is_on_top; -+ RECT win; -+ } desktop_save; -+ vout_display_cfg_t cfg_saved; /* configuration used before going into desktop mode */ -+ -+ // core objects + HINSTANCE hdxgi_dll; /* handle of the opened dxgi dll */ + HINSTANCE hd3d11_dll; /* handle of the opened d3d11 dll */ + HINSTANCE hd3dcompiler_dll; /* handle of the opened d3dcompiler dll */ + + IDXGIFactory *dxgi_factory; /* DXGI factory */ + IDXGIAdapter *dxgi_adapter; /* DXGI adapter */ ++ IDXGISwapChain *dxgi_swapChain; /* DXGI swap chain */ ++ + ID3D11Device *d3ddevice; /* D3D device */ + ID3D11DeviceContext *d3dcontext; /* D3D context */ -+ IDXGISwapChain *dxgi_swapChain; /* DXGI swap chain */ -+ D3D_FEATURE_LEVEL d3dfeaturelevel; /* D3D feature level */ + + ID3D11Texture2D *d3dtexture; ++ ID3D11ShaderResourceView *d3dresViewY; ++ ID3D11ShaderResourceView *d3dresViewU; ++ ID3D11ShaderResourceView *d3dresViewV; + ID3D11RenderTargetView *d3drenderTargetView; + ID3D11DepthStencilView *d3ddepthStencilView; + ID3D11VertexShader *d3dvertexShader; + ID3D11PixelShader *d3dpixelShader; + ID3D11InputLayout *d3dvertexLayout; -+ ID3D11ShaderResourceView *d3dResView; -+ ID3D11SamplerState *d3dSampState; ++ ID3D11SamplerState *d3dsampState; ++ ++ D3D_FEATURE_LEVEL d3dfeaturelevel; + + /* We should find a better way to store this or atleast a shorter name */ + PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN OurD3D11CreateDeviceAndSwapChain; + PFN_D3D11_CREATE_DEVICE OurD3D11CreateDevice; + pD3DCompile OurD3DCompile; + -+ DXGI_FORMAT d3dregion_format; -+ -+ int d3dregion_count; -+ struct d3d_region_t *d3dregion; ++ DXGI_FORMAT d3dFormat; ++ vlc_fourcc_t vlcFormat; + + picture_sys_t *picsys; -+ -+ /* */ -+ bool reset_device; -+ bool reopen_device; -+ bool lost_not_ready; -+ bool clear_scene; -+ -+ /* It protects the following variables */ -+ vlc_mutex_t lock; -+ bool ch_desktop; -+ bool desktop_requested; +#endif + #ifdef MODULE_NAME_IS_direct3d9 @@ -197,10 +176,10 @@ index 5cb8c45..a8bf9ce 100644 /* show video on desktop window ? */ diff --git a/modules/video_output/msw/direct3d11.c b/modules/video_output/msw/direct3d11.c new file mode 100644 -index 0000000..b94af95 +index 0000000..2bdf30d --- /dev/null +++ b/modules/video_output/msw/direct3d11.c -@@ -0,0 +1,863 @@ +@@ -0,0 +1,888 @@ +/***************************************************************************** + * direct3d11.c: Windows Direct3D11 video output module + ***************************************************************************** @@ -252,31 +231,23 @@ index 0000000..b94af95 + set_help(D3D11_HELP) + set_category(CAT_VIDEO) + set_subcategory(SUBCAT_VIDEO_VOUT) -+ set_capability("vout display", 280) ++ set_capability("vout display", 240) + add_shortcut("direct3d11") + set_callbacks(Open, Close) +vlc_module_end () + -+/***************************************************************************** -+ * Local prototypes. -+ *****************************************************************************/ +typedef struct +{ + const char *name; + DXGI_FORMAT format; + vlc_fourcc_t fourcc; -+ uint32_t rmask; -+ uint32_t gmask; -+ uint32_t bmask; +} d3d_format_t; + +static const d3d_format_t d3d_formats[] = { -+ { "YV12", DXGI_FORMAT_420_OPAQUE, VLC_CODEC_I420, 0,0,0 }, -+ { "YV12", DXGI_FORMAT_420_OPAQUE, VLC_CODEC_YV12, 0,0,0 }, -+ { "NV12", DXGI_FORMAT_NV12, VLC_CODEC_NV12, 0,0,0 }, -+ { "X8R8G8B8", DXGI_FORMAT_R8G8B8A8_UNORM, VLC_CODEC_RGB32, 0xff0000, 0x00ff00, 0x0000ff }, -+ { "YUY2", DXGI_FORMAT_YUY2, VLC_CODEC_YUYV, 0,0,0 }, -+ { NULL, 0, 0, 0,0,0} ++ { "NV12", DXGI_FORMAT_NV12, VLC_CODEC_NV12 }, ++ { "YUY2", DXGI_FORMAT_YUY2, VLC_CODEC_YUYV }, ++ { "RGBA", DXGI_FORMAT_R8G8B8A8_UNORM, VLC_CODEC_RGBA }, ++ { NULL, 0, 0 } +}; + +static const vlc_fourcc_t d3d_subpicture_chromas[] = { @@ -295,7 +266,6 @@ index 0000000..b94af95 + +static picture_pool_t *Pool (vout_display_t *, unsigned); +static void Display(vout_display_t *, picture_t *, subpicture_t *subpicture); -+static void Manage (vout_display_t *); + +static int Direct3D11Create (vout_display_t *); +static void Direct3D11Destroy(vout_display_t *); @@ -308,15 +278,10 @@ index 0000000..b94af95 + +static int Direct3D11MapSurface(picture_t *); + -+static int DesktopCallback(vlc_object_t *, char const *, vlc_value_t, vlc_value_t, void *); -+ +// I have no idea why dxgi headers do not define this, d3d11 does for its functions +typedef HRESULT(WINAPI *PFN_CREATE_DXGI_FACTORY)(REFIID riid, void **ppFactory); + -+static const char* globShader = "\ -+ Texture2D shaderTexture;\ -+ SamplerState SampleType;\ -+ \ ++static const char* globVertexShaderDefault = "\ + struct VS_INPUT\ + {\ + float4 Position : POSITION;\ @@ -336,12 +301,79 @@ index 0000000..b94af95 + Output.Texture = In.Texture;\ + return Output;\ + }\ ++"; ++ ++static const char* globPixelShaderDefault = "\ ++ Texture2D shaderTexture;\ ++ SamplerState SampleType;\ + \ -+ float4 PS( VS_OUTPUT In ) : SV_TARGET\ ++ struct PS_INPUT\ + {\ -+ float4 textureColor;\ -+ textureColor = shaderTexture.Sample(SampleType, In.Texture);\ -+ return textureColor;\ ++ float4 Position : SV_POSITION;\ ++ float2 Texture : TEXCOORD0;\ ++ };\ ++ \ ++ float4 PS( PS_INPUT In ) : SV_TARGET\ ++ {\ ++ return shaderTexture.Sample(SampleType, In.Texture);\ ++ }\ ++"; ++ ++static const char* globPixelShaderBiplanarYUV2RGB = "\ ++ Texture2D shaderTextureY;\ ++ Texture2D shaderTextureUV;\ ++ SamplerState SampleType;\ ++ \ ++ struct PS_INPUT\ ++ {\ ++ float4 Position : SV_POSITION;\ ++ float2 Texture : TEXCOORD0;\ ++ };\ ++ \ ++ float4 PS( PS_INPUT In ) : SV_TARGET\ ++ {\ ++ float3 yuv;\ ++ float4 rgba;\ ++ yuv.x = shaderTextureY.Sample(SampleType, In.Texture).x;\ ++ yuv.yz = shaderTextureUV.Sample(SampleType, In.Texture).xy;\ ++ yuv.x = 1.164 * (yuv.x-0.0625);\ ++ yuv.y = yuv.y - 0.5;\ ++ yuv.z = yuv.z - 0.5;\ ++ rgba.x = saturate(yuv.x + 1.596 * yuv.z);\ ++ rgba.y = saturate(yuv.x - 0.813 * yuv.z - 0.391 * yuv.y);\ ++ rgba.z = saturate(yuv.x + 2.018 * yuv.y);\ ++ rgba.w = 1.0;\ ++ return rgba;\ ++ }\ ++"; ++ ++static const char* globPixelShaderTriplanarYUV2RGB = "\ ++ Texture2D shaderTextureY;\ ++ Texture2D shaderTextureU;\ ++ Texture2D shaderTextureV;\ ++ SamplerState SampleType;\ ++ \ ++ struct PS_INPUT\ ++ {\ ++ float4 Position : SV_POSITION;\ ++ float2 Texture : TEXCOORD0;\ ++ };\ ++ \ ++ float4 PS( PS_INPUT In ) : SV_TARGET\ ++ {\ ++ float3 yuv;\ ++ float4 rgba;\ ++ yuv.x = shaderTextureY.Sample(SampleType, In.Texture).x;\ ++ yuv.y = shaderTextureU.Sample(SampleType, In.Texture).x;\ ++ yuv.z = shaderTextureV.Sample(SampleType, In.Texture).x;\ ++ yuv.x = 1.164 * (yuv.x-0.0625);\ ++ yuv.y = yuv.y - 0.5;\ ++ yuv.z = yuv.z - 0.5;\ ++ rgba.x = saturate(yuv.x + 1.596 * yuv.z);\ ++ rgba.y = saturate(yuv.x - 0.813 * yuv.z - 0.391 * yuv.y);\ ++ rgba.z = saturate(yuv.x + 2.018 * yuv.y);\ ++ rgba.w = 1.0;\ ++ return rgba;\ + }\ +"; + @@ -369,21 +401,12 @@ index 0000000..b94af95 + return VLC_EGENERIC; + } + -+ sys->use_desktop = var_CreateGetBool(vd, "video-wallpaper"); -+ sys->reset_device = false; -+ sys->reopen_device = false; -+ sys->lost_not_ready = false; -+ sys->allow_hw_yuv = var_CreateGetBool(vd, "directx-hw-yuv"); -+ sys->desktop_save.is_fullscreen = vd->cfg->is_fullscreen; -+ sys->desktop_save.is_on_top = false; -+ sys->desktop_save.win.left = var_InheritInteger(vd, "video-x"); -+ sys->desktop_save.win.right = vd->cfg->display.width; -+ sys->desktop_save.win.top = var_InheritInteger(vd, "video-y"); -+ sys->desktop_save.win.bottom = vd->cfg->display.height; -+ + if (CommonInit(vd)) + goto error; + ++ sys->d3dFormat = d3d_formats[0].format; ++ sys->vlcFormat = d3d_formats[0].fourcc; ++ + video_format_t fmt; + if (Direct3D11Open(vd, &fmt)) { + msg_Err(vd, "Direct3D11 could not be opened"); @@ -400,15 +423,6 @@ index 0000000..b94af95 + // TODO : subtitle support + info.subpicture_chromas = NULL; + -+ vlc_mutex_init(&sys->lock); -+ sys->ch_desktop = false; -+ sys->desktop_requested = sys->use_desktop; -+ -+ vlc_value_t val; -+ val.psz_string = _("Desktop"); -+ var_Change(vd, "video-wallpaper", VLC_VAR_SETTEXT, &val, NULL); -+ var_AddCallback(vd, "video-wallpaper", DesktopCallback, NULL); -+ + video_format_Clean(&vd->fmt); + video_format_Copy(&vd->fmt, &fmt); + vd->info = info; @@ -417,10 +431,7 @@ index 0000000..b94af95 + vd->prepare = NULL; + vd->display = Display; + vd->control = CommonControl; -+ vd->manage = Manage; -+ -+ if (sys->use_desktop && vd->cfg->is_fullscreen) -+ vout_display_SendEventFullscreen(vd, false); ++ vd->manage = CommonManage; + + msg_Dbg(vd, "Direct3D11 Open Succeeded"); + @@ -437,9 +448,6 @@ index 0000000..b94af95 +{ + vout_display_t * vd = (vout_display_t *)object; + -+ var_DelCallback(vd, "video-wallpaper", DesktopCallback, NULL); -+ vlc_mutex_destroy(&vd->sys->lock); -+ + Direct3D11Close(vd); + CommonClean(vd); + Direct3D11Destroy(vd); @@ -456,21 +464,22 @@ index 0000000..b94af95 +{ + vout_display_sys_t *sys = vd->sys; + -+ if (sys->lost_not_ready) { -+ picture_Release(picture); -+ if (subpicture) -+ subpicture_Delete(subpicture); -+ return; -+ } -+ + //float ClearColor[4] = { 1.0f, 0.125f, 0.3f, 1.0f }; // red,green,blue,alpha + //ID3D11DeviceContext_ClearRenderTargetView(sys->d3dcontext,sys->d3drenderTargetView, ClearColor ); + ID3D11DeviceContext_ClearDepthStencilView(sys->d3dcontext,sys->d3ddepthStencilView, D3D11_CLEAR_DEPTH, 1.0f, 0); + // Render the quad + ID3D11DeviceContext_VSSetShader(sys->d3dcontext, sys->d3dvertexShader, NULL, 0); + ID3D11DeviceContext_PSSetShader(sys->d3dcontext, sys->d3dpixelShader, NULL, 0); -+ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 0, 1, &sys->d3dResView); -+ ID3D11DeviceContext_PSSetSamplers(sys->d3dcontext, 0, 1, &sys->d3dSampState); ++ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 0, 1, &sys->d3dresViewY); ++ ++ if (sys->vlcFormat == VLC_CODEC_NV12 || ++ sys->vlcFormat == VLC_CODEC_YUYV) ++ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 1, 1, &sys->d3dresViewU); ++ ++ if (sys->vlcFormat == VLC_CODEC_YUYV) ++ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 2, 1, &sys->d3dresViewV); ++ ++ ID3D11DeviceContext_PSSetSamplers(sys->d3dcontext, 0, 1, &sys->d3dsampState); + ID3D11DeviceContext_DrawIndexed(sys->d3dcontext, 6, 0, 0); + IDXGISwapChain_Present(sys->dxgi_swapChain, 0, 0); + @@ -481,23 +490,6 @@ index 0000000..b94af95 + CommonDisplay(vd); +} + -+static void Manage (vout_display_t *vd) -+{ -+ vout_display_sys_t *sys = vd->sys; -+ -+ CommonManage(vd); -+ -+ vlc_mutex_lock(&sys->lock); -+ const bool ch_desktop = sys->ch_desktop; -+ sys->ch_desktop = false; -+ vlc_mutex_unlock(&sys->lock); -+ -+ if (ch_desktop) { -+ sys->reopen_device = true; -+ vout_display_SendEventPicturesInvalid(vd); -+ } -+} -+ +static HINSTANCE Direct3D11LoadShaderLibrary(void) +{ + HINSTANCE instance = NULL; @@ -661,7 +653,7 @@ index 0000000..b94af95 + + DXGI_MODE_DESC md; + memset(&md, 0, sizeof(md)); -+ md.Width = fmt->i_visible_width * 2; ++ md.Width = fmt->i_visible_width; + md.Height = fmt->i_visible_height; + md.Format = scd.BufferDesc.Format; + md.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; @@ -673,7 +665,7 @@ index 0000000..b94af95 + } + + //mode desc doesn't carry over the width and height -+ scd.BufferDesc.Width = fmt->i_visible_width * 2; ++ scd.BufferDesc.Width = fmt->i_visible_width; + scd.BufferDesc.Height = fmt->i_visible_height; + + hr = sys->OurD3D11CreateDeviceAndSwapChain(sys->dxgi_adapter, @@ -752,6 +744,7 @@ index 0000000..b94af95 +} + +// add goto error in resources ++// seperate out into createshaders +static int Direct3D11CreateResources(vout_display_t *vd, video_format_t *fmt) +{ + vout_display_sys_t *sys = vd->sys; @@ -759,8 +752,7 @@ index 0000000..b94af95 + ID3D11Texture2D* pDepthStencil= NULL; + HRESULT hr; + -+ fmt->i_chroma = VLC_CODEC_RGBA; -+ sys->d3dregion_format = DXGI_FORMAT_R8G8B8A8_UNORM; ++ fmt->i_chroma = sys->vlcFormat; + + hr = IDXGISwapChain_GetBuffer(sys->dxgi_swapChain, 0, &IID_ID3D11Texture2D, (LPVOID*)&pBackBuffer); + if (FAILED(hr)) { @@ -783,7 +775,7 @@ index 0000000..b94af95 + deptTexDesc.BindFlags = D3D11_BIND_DEPTH_STENCIL; + deptTexDesc.CPUAccessFlags = 0; + deptTexDesc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; -+ deptTexDesc.Width = fmt->i_visible_width * 2; ++ deptTexDesc.Width = fmt->i_visible_width; + deptTexDesc.Height = fmt->i_visible_height; + deptTexDesc.MipLevels = 1; + deptTexDesc.MiscFlags = 0; @@ -824,12 +816,12 @@ index 0000000..b94af95 + vp.TopLeftX = 0; + vp.TopLeftY = 0; + -+ ID3D11DeviceContext_RSSetViewports(sys->d3dcontext, 1, &vp ); ++ ID3D11DeviceContext_RSSetViewports(sys->d3dcontext, 1, &vp); + + ID3DBlob* pVSBlob = NULL; + + // TODO : Match the version to the D3D_FEATURE_LEVEL -+ hr = sys->OurD3DCompile(globShader, strlen(globShader), NULL, NULL, NULL, "VS", "vs_5_0", 0, 0, &pVSBlob, NULL); ++ hr = sys->OurD3DCompile(globVertexShaderDefault, strlen(globVertexShaderDefault), NULL, NULL, NULL, "VS", "vs_5_0", 0, 0, &pVSBlob, NULL); + if( FAILED(hr)) { + msg_Err(vd, "The Vertex Shader is invalid."); + return VLC_EGENERIC; @@ -863,7 +855,12 @@ index 0000000..b94af95 + + ID3DBlob* pPSBlob = NULL; + // TODO : Match the version to the D3D_FEATURE_LEVEL -+ hr = sys->OurD3DCompile(globShader, strlen(globShader), NULL, NULL, NULL, "PS", "ps_5_0", 0, 0, &pPSBlob, NULL); ++ if (sys->vlcFormat == VLC_CODEC_NV12) ++ hr = sys->OurD3DCompile(globPixelShaderBiplanarYUV2RGB, strlen(globPixelShaderBiplanarYUV2RGB), NULL, NULL, NULL, "PS", "ps_5_0", 0, 0, &pPSBlob, NULL); ++ else if (sys->vlcFormat == VLC_CODEC_YUYV) ++ hr = sys->OurD3DCompile(globPixelShaderTriplanarYUV2RGB, strlen(globPixelShaderTriplanarYUV2RGB), NULL, NULL, NULL, "PS", "ps_5_0", 0, 0, &pPSBlob, NULL); ++ else ++ hr = sys->OurD3DCompile(globPixelShaderDefault, strlen(globPixelShaderDefault), NULL, NULL, NULL, "PS", "ps_5_0", 0, 0, &pPSBlob, NULL); + + if( FAILED(hr)) { + msg_Err(vd, "The Pixel Shader is invalid."); @@ -940,7 +937,7 @@ index 0000000..b94af95 + texDesc.Width = fmt->i_visible_width; + texDesc.Height = fmt->i_visible_height; + texDesc.MipLevels = texDesc.ArraySize = 1; -+ texDesc.Format = sys->d3dregion_format; ++ texDesc.Format = sys->d3dFormat; + texDesc.SampleDesc.Count = 1; + texDesc.Usage = D3D11_USAGE_DYNAMIC; + texDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE; @@ -948,24 +945,47 @@ index 0000000..b94af95 + texDesc.MiscFlags = 0; + + hr = ID3D11Device_CreateTexture2D(sys->d3ddevice, &texDesc, NULL, &sys->d3dtexture); -+ + if (FAILED(hr)) { -+ msg_Err(vd, "Could not Create the D3d11 Texture. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; ++ msg_Err(vd, "Could not Create the D3d11 Texture. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; + } + + D3D11_SHADER_RESOURCE_VIEW_DESC resviewDesc; + memset(&resviewDesc, 0, sizeof(resviewDesc)); -+ resviewDesc.Format = texDesc.Format; ++ resviewDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + resviewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; + resviewDesc.Texture2D.MipLevels = texDesc.MipLevels; + -+ hr = ID3D11Device_CreateShaderResourceView(sys->d3ddevice, (ID3D11Resource *)sys->d3dtexture, &resviewDesc, &sys->d3dResView); ++ if (sys->vlcFormat == VLC_CODEC_NV12) ++ resviewDesc.Format = DXGI_FORMAT_R8_UNORM; + ++ hr = ID3D11Device_CreateShaderResourceView(sys->d3ddevice, (ID3D11Resource *)sys->d3dtexture, &resviewDesc, &sys->d3dresViewY); + if (FAILED(hr)) { -+ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); -+ msg_Err(vd, "Could not Create the D3d11 Texture ResoureView. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; ++ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); ++ msg_Err(vd, "Could not Create the Y D3d11 Texture ResoureView. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ if (sys->vlcFormat == VLC_CODEC_NV12) ++ resviewDesc.Format = DXGI_FORMAT_R8G8_UNORM; ++ ++ if (sys->vlcFormat == VLC_CODEC_NV12 || ++ sys->vlcFormat == VLC_CODEC_YUYV) { ++ hr = ID3D11Device_CreateShaderResourceView(sys->d3ddevice, (ID3D11Resource *)sys->d3dtexture, &resviewDesc, &sys->d3dresViewU); ++ if (FAILED(hr)) { ++ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); ++ msg_Err(vd, "Could not Create the U D3d11 Texture ResoureView. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ } ++ ++ if (sys->vlcFormat == VLC_CODEC_YUYV) { ++ hr = ID3D11Device_CreateShaderResourceView(sys->d3ddevice, (ID3D11Resource *)sys->d3dtexture, &resviewDesc, &sys->d3dresViewV); ++ if (FAILED(hr)) { ++ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); ++ msg_Err(vd, "Could not Create the V D3d11 Texture ResoureView. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } + } + + D3D11_SAMPLER_DESC sampDesc; @@ -978,7 +998,7 @@ index 0000000..b94af95 + sampDesc.MinLOD = 0; + sampDesc.MaxLOD = D3D11_FLOAT32_MAX; + -+ hr = ID3D11Device_CreateSamplerState(sys->d3ddevice, &sampDesc, &sys->d3dSampState); ++ hr = ID3D11Device_CreateSamplerState(sys->d3ddevice, &sampDesc, &sys->d3dsampState); + + if (FAILED(hr)) { + if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); @@ -1028,6 +1048,8 @@ index 0000000..b94af95 +{ + vout_display_sys_t *sys = vd->sys; + ++ //Destroy Shaders ++ + if (sys->pool) { + picture_sys_t *picsys = sys->picsys; + ID3D11Texture2D_Release(picsys->surface); @@ -1046,24 +1068,6 @@ index 0000000..b94af95 + ID3D11DeviceContext_Unmap(picture->p_sys->context,(ID3D11Resource*)picture->p_sys->surface, 0); + return VLC_SUCCESS; +} -+ -+static int DesktopCallback(vlc_object_t *object, char const *psz_cmd, -+ vlc_value_t oldval, vlc_value_t newval, -+ void *p_data) -+{ -+ vout_display_t *vd = (vout_display_t *)object; -+ vout_display_sys_t *sys = vd->sys; -+ VLC_UNUSED(psz_cmd); -+ VLC_UNUSED(oldval); -+ VLC_UNUSED(p_data); -+ -+ vlc_mutex_lock(&sys->lock); -+ const bool ch_desktop = !sys->desktop_requested != !newval.b_bool; -+ sys->ch_desktop |= ch_desktop; -+ sys->desktop_requested = newval.b_bool; -+ vlc_mutex_unlock(&sys->lock); -+ return VLC_SUCCESS; -+} diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c index 866b279..cd005d8 100644 --- a/modules/video_output/msw/events.c From 81884c055b1202ecb52c837a38381b9e53c078bd Mon Sep 17 00:00:00 2001 From: David Macek Date: Sun, 1 Mar 2015 22:06:15 +0100 Subject: [PATCH 0601/2060] pngcrush: Update to v1.7.84 --- mingw-w64-pngcrush/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-pngcrush/PKGBUILD b/mingw-w64-pngcrush/PKGBUILD index f7812e0314..37d6874c3a 100644 --- a/mingw-w64-pngcrush/PKGBUILD +++ b/mingw-w64-pngcrush/PKGBUILD @@ -2,7 +2,7 @@ _realname=pngcrush pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.7.83 +pkgver=1.7.84 pkgrel=1 pkgdesc="A tool for optimizing the compression of PNG files (mingw-w64)" arch=('any') @@ -12,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-zlib") source=("http://downloads.sourceforge.net/pmt/${_realname}-${pkgver}-nolib.tar.gz" LICENSE) -md5sums=('8ec6e7aabeddbf2db4c1979292d7b631' +md5sums=('ee96d73c620f21a46c33abfa350ccfc9' 'e6446a786d939c98fcada57f9ae6de1f') prepare() { From 4d5f828edfd8f9b660a11ed6277ff61b1031dfc9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 2 Mar 2015 10:15:42 +0300 Subject: [PATCH 0602/2060] poco: Update to 1.6.0. Fix building. --- ...lement-wide-character-startup-module.patch | 4 +-- .../008-Add-Mingw32-W64-configuration.patch | 2 +- mingw-w64-poco/011-cmake-mingw.patch | 8 ++--- mingw-w64-poco/012-find-mysql.patch | 36 +++++++++++++++++++ .../013-POCO_WIN32_UTF8-redefinition.patch | 11 ++++++ mingw-w64-poco/PKGBUILD | 29 ++++++++------- 6 files changed, 68 insertions(+), 22 deletions(-) create mode 100644 mingw-w64-poco/012-find-mysql.patch create mode 100644 mingw-w64-poco/013-POCO_WIN32_UTF8-redefinition.patch diff --git a/mingw-w64-poco/007-MinGW-doesnt-implement-wide-character-startup-module.patch b/mingw-w64-poco/007-MinGW-doesnt-implement-wide-character-startup-module.patch index aacc5e9c64..047bb2f342 100644 --- a/mingw-w64-poco/007-MinGW-doesnt-implement-wide-character-startup-module.patch +++ b/mingw-w64-poco/007-MinGW-doesnt-implement-wide-character-startup-module.patch @@ -18,7 +18,7 @@ index 9078092..dcca468 100644 // Macro to implement main() // -#if defined(_WIN32) && defined(POCO_WIN32_UTF8) && !defined(POCO_NO_WSTRING) -+#if (defined(_WIN32) || defined(_WIN64)) && defined(POCO_WIN32_UTF8) && !defined(POCO_NO_WSTRING) && !defined(MINGW32) ++#if (defined(_WIN32) || defined(_WIN64)) && defined(POCO_WIN32_UTF8) && !defined(POCO_NO_WSTRING) && !defined(__MINGW32__) #define POCO_APP_MAIN(App) \ int wmain(int argc, wchar_t** argv) \ { \ @@ -31,7 +31,7 @@ index 1b9bf82..6b94dc0 100644 // Macro to implement main() // -#if defined(_WIN32) && defined(POCO_WIN32_UTF8) -+#if defined(_WIN32) && defined(POCO_WIN32_UTF8) && !defined(MINGW32) ++#if defined(_WIN32) && defined(POCO_WIN32_UTF8) && !defined(__MINGW32__) #define POCO_SERVER_MAIN(App) \ int wmain(int argc, wchar_t** argv) \ { \ diff --git a/mingw-w64-poco/008-Add-Mingw32-W64-configuration.patch b/mingw-w64-poco/008-Add-Mingw32-W64-configuration.patch index baad4f0434..34019b7854 100644 --- a/mingw-w64-poco/008-Add-Mingw32-W64-configuration.patch +++ b/mingw-w64-poco/008-Add-Mingw32-W64-configuration.patch @@ -82,7 +82,7 @@ index 0000000..95662df +# +# System Specific Flags +# -+SYSFLAGS = -Wall -m64 -D_WIN64 -DMINGW32 -DWINVER=0x500 -DPOCO_NO_FPENVIRONMENT -DPCRE_STATIC -DPOCO_THREAD_STACK_SIZE -DPOCO_STATIC ++SYSFLAGS = -Wall -m64 -D_WIN64 -DWINVER=0x501 -DPOCO_NO_FPENVIRONMENT -DPCRE_STATIC -DPOCO_THREAD_STACK_SIZE -DPOCO_STATIC +# -DFoundation_Config_INCLUDED +# +# System Specific Libraries diff --git a/mingw-w64-poco/011-cmake-mingw.patch b/mingw-w64-poco/011-cmake-mingw.patch index 9bdd42e1f8..2724c3773b 100644 --- a/mingw-w64-poco/011-cmake-mingw.patch +++ b/mingw-w64-poco/011-cmake-mingw.patch @@ -3,14 +3,14 @@ @@ -151,9 +151,7 @@ if (CMAKE_COMPILER_IS_MINGW) - add_definitions(-DWC_NO_BEST_FIT_CHARS=0x400 -DPOCO_WIN32_UTF8) -- add_definitions(-mno-cygwin -D_WIN32 -DMINGW32 -DWINVER=0x500 -DODBCVER=0x0300 -DPOCO_THREAD_STACK_SIZE -DFoundation_Config_INCLUDED ) + add_definitions(-DWC_NO_BEST_FIT_CHARS=0x400 -DPOCO_WIN32_UTF8) +- add_definitions(-mno-cygwin -D_WIN32 -DMINGW32 -DWINVER=0x500 -DODBCVER=0x0300 -DPOCO_THREAD_STACK_SIZE -DFoundation_Config_INCLUDED ) - link_directories(/usr/local/lib /usr/lib) - include_directories(/usr/local/include /usr/include) -+ add_definitions(-D_WIN32 -DMINGW32 -DWINVER=0x500 -DPOCO_NO_FPENVIRONMENT -DODBCVER=0x0300 -DPOCO_THREAD_STACK_SIZE -DFoundation_Config_INCLUDED ) ++ add_definitions(-D_WIN32 -DWINVER=0x501 -DPOCO_NO_FPENVIRONMENT -DODBCVER=0x0300 -DPOCO_THREAD_STACK_SIZE) endif (CMAKE_COMPILER_IS_MINGW) - if (CMAKE_COMPILER_IS_CYGWIN) + if (CYGWIN) --- poco-poco-1.5.4-release/cmake/PocoMacros.cmake.orig 2014-11-17 12:31:47.705800000 +0300 +++ poco-poco-1.5.4-release/cmake/PocoMacros.cmake 2014-11-17 12:32:39.209200000 +0300 @@ -24,8 +24,13 @@ diff --git a/mingw-w64-poco/012-find-mysql.patch b/mingw-w64-poco/012-find-mysql.patch new file mode 100644 index 0000000000..3d55a3821c --- /dev/null +++ b/mingw-w64-poco/012-find-mysql.patch @@ -0,0 +1,36 @@ +--- poco-poco-1.6.0-release/cmake/FindMySQL.cmake.orig 2015-03-02 09:27:14.895200000 +0300 ++++ poco-poco-1.6.0-release/cmake/FindMySQL.cmake 2015-03-02 09:33:06.774600000 +0300 +@@ -1,14 +1,14 @@ + find_path(MYSQL_INCLUDE_DIR mysql.h +- /usr/include/mysql +- /usr/local/include/mysql +- /opt/mysql/mysql/include +- /opt/mysql/mysql/include/mysql +- /usr/local/mysql/include +- /usr/local/mysql/include/mysql +- $ENV{MYSQL_INCLUDE_DIR} +- $ENV{MYSQL_DIR}/include +- $ENV{ProgramFiles}/MySQL/*/include +- $ENV{SystemDrive}/MySQL/*/include) ++ /usr ++ /usr/local ++ /opt/mysql/mysql ++ /usr/local/mysql ++ $ENV{MYSQL_INCLUDE_DIR} ++ $ENV{MYSQL_DIR}/include ++ $ENV{ProgramFiles}/MySQL/*/include ++ $ENV{SystemDrive}/MySQL/*/include ++ PATH_SUFFIXES ++ include include/mysql include/mariadb) + + if (WIN32) + if (CMAKE_BUILD_TYPE STREQUAL Debug) +@@ -20,7 +20,7 @@ + add_definitions(-DDBUG_OFF) + endif (CMAKE_BUILD_TYPE STREQUAL Debug) + +- find_library(MYSQL_LIB NAMES mysqlclient ++ find_library(MYSQL_LIB NAMES mysqlclient mariadbclient + PATHS + $ENV{MYSQL_DIR}/lib/${libsuffixDist} + $ENV{MYSQL_DIR}/libmysql/${libsuffixBuild} diff --git a/mingw-w64-poco/013-POCO_WIN32_UTF8-redefinition.patch b/mingw-w64-poco/013-POCO_WIN32_UTF8-redefinition.patch new file mode 100644 index 0000000000..c79b7f09ba --- /dev/null +++ b/mingw-w64-poco/013-POCO_WIN32_UTF8-redefinition.patch @@ -0,0 +1,11 @@ +--- poco-poco-1.6.0-release/Foundation/include/Poco/Config.h.orig 2015-03-02 09:52:02.328400000 +0300 ++++ poco-poco-1.6.0-release/Foundation/include/Poco/Config.h 2015-03-02 09:53:15.274000000 +0300 +@@ -23,7 +23,7 @@ + // Define to enable Windows Unicode (UTF-8) support + // NOTE: As of POCO C++ Libraries release 1.6.0, compiling POCO + // without POCO_WIN32_UTF8 defined on Windows is deprecated. +-#define POCO_WIN32_UTF8 ++// #define POCO_WIN32_UTF8 + + + // Define to enable C++11 support diff --git a/mingw-w64-poco/PKGBUILD b/mingw-w64-poco/PKGBUILD index 49e1a06a22..8adbe7c468 100644 --- a/mingw-w64-poco/PKGBUILD +++ b/mingw-w64-poco/PKGBUILD @@ -2,7 +2,7 @@ _realname=poco pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.4 +pkgver=1.6.0 pkgrel=1 pkgdesc="POrtable COmponents C++ Libraries (mingw-w64)" arch=('any') @@ -11,6 +11,7 @@ license=("boost") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-libmariadbclient" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-pcre" "${MINGW_PACKAGE_PREFIX}-sqlite3" @@ -28,19 +29,23 @@ source=(https://github.com/pocoproject/poco/archive/${_realname}-${pkgver}-relea 009-Fix-compilation-on-WIN64-target.patch 010-remove-warnings.patch 011-cmake-mingw.patch + 012-find-mysql.patch + 013-POCO_WIN32_UTF8-redefinition.patch 100-fix-mingw-config.patch) -md5sums=('cf045f4f64d2d439294686ff7dcc6fd6' +md5sums=('44af65dbbd26126c4203a2d9c42c96d1' 'dc6b7d75f579fa97b28ab6c07e62517e' 'd57c5432708b13f5d1ccbd5c67a49996' '3b5dd43a3d6be5f6d2612d4f850d3b63' '221473673ab508c5ada2725e4a1fe466' '5be1be3d1e5b8b72c7efdc09aa1ceff7' 'f5847e1ff54fba6ff87eb3620a8ed717' - '07a7c3fa639ad38cb0b005825255b5db' - 'edf178d3fb8c02c1a7da81ce89a193fd' + '6a821451f0ae40db2801becce3c67bdf' + 'c5fa0bacfade712a5c5cf706f3c99ee4' 'f3aa357f69168abb2919ddb912664c1e' 'cb90582b6bbae7b1231ad5cdd290eeb0' - '9ab977d32e32d0e0306486508ae6b8f1' + '840e76174514740463379ddb03611523' + '50b56ac82b87697cf03f966c198cb6fd' + '5c8fe24b1fc4a5f9c357eb65b35a49f6' 'cee49c612b14edb3ae57d0e0b9329f3c') prepare() { @@ -56,6 +61,8 @@ prepare() { patch -p1 -i ${srcdir}/009-Fix-compilation-on-WIN64-target.patch patch -p1 -i ${srcdir}/010-remove-warnings.patch patch -p1 -i ${srcdir}/011-cmake-mingw.patch + patch -p1 -i ${srcdir}/012-find-mysql.patch + patch -p1 -i ${srcdir}/013-POCO_WIN32_UTF8-redefinition.patch patch -p1 -i ${srcdir}/100-fix-mingw-config.patch } @@ -78,18 +85,10 @@ build() { -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ - -DPOCO_UNBUNDLED=OFF \ + -DPOCO_UNBUNDLED=ON \ -DENABLE_MONGODB=OFF \ ../${_realname}-${_realname}-${pkgver}-release - - #"${srcdir}"/${_realname}-${_realname}-${pkgver}-release/configure \ - # --prefix=${MINGW_PREFIX} \ - # --config=${_config} \ - # --shared - - # --unbundled - # --static make } @@ -100,5 +99,5 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make #DESTDIR="$pkgdir" install + make install } From f2cf69b16a099eec4ad4110a08551ce36a09b070 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 2 Mar 2015 13:49:38 +0300 Subject: [PATCH 0603/2060] mpc: Update to 1.0.3 --- mingw-w64-mpc/PKGBUILD | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mingw-w64-mpc/PKGBUILD b/mingw-w64-mpc/PKGBUILD index b1dbc00791..b1ae0e17b6 100644 --- a/mingw-w64-mpc/PKGBUILD +++ b/mingw-w64-mpc/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=mpc - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.2 -pkgrel=2 +pkgver=1.0.3 +pkgrel=1 pkgdesc="Multiple precision complex arithmetic library (mingw-w64)" groups=("${MINGW_PACKAGE_PREFIX}") url='http://www.multiprecision.org' @@ -14,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-mpfr") makedepends=("${MINGW_PACKAGE_PREFIX}-gmp>=5.0" "${MINGW_PACKAGE_PREFIX}-mpfr") options=('staticlibs' '!emptydirs') source=("http://www.multiprecision.org/mpc/download/${_realname}-${pkgver}.tar.gz") -sha1sums=('5072d82ab50ec36cc8c0e320b5c377adb48abe70') +sha1sums=('b8be66396c726fdc36ebb0f692ed8a8cca3bcc66') build() { mkdir -p ${srcdir}/build-${MINGW_CHOST} From b71b548be77321712e39c301475faeb92d10943e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 2 Mar 2015 13:53:02 +0300 Subject: [PATCH 0604/2060] poco: Remove check function. --- mingw-w64-poco/PKGBUILD | 5 ----- 1 file changed, 5 deletions(-) diff --git a/mingw-w64-poco/PKGBUILD b/mingw-w64-poco/PKGBUILD index 8adbe7c468..17d9a23b39 100644 --- a/mingw-w64-poco/PKGBUILD +++ b/mingw-w64-poco/PKGBUILD @@ -92,11 +92,6 @@ build() { make } -check() { - cd "${srcdir}/build-${MINGW_CHOST}" - make check -} - package() { cd "${srcdir}/build-${MINGW_CHOST}" make install From 697d669eab1a293c1f63285fc2dc705c455a459d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 2 Mar 2015 13:53:44 +0300 Subject: [PATCH 0605/2060] sip: Update to 4.16.6 --- mingw-w64-sip/0001-mingw-python.patch | 3 ++- mingw-w64-sip/PKGBUILD | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-sip/0001-mingw-python.patch b/mingw-w64-sip/0001-mingw-python.patch index 76a1c4a7eb..e7f36e530d 100644 --- a/mingw-w64-sip/0001-mingw-python.patch +++ b/mingw-w64-sip/0001-mingw-python.patch @@ -20,7 +20,7 @@ diff -uNr sip-4.16.2/configure.py sip-4.16.2-mingw/configure.py build_platform = "win32-msvc2010" elif py_version >= 0x020600: build_platform = "win32-msvc2008" -@@ -211,16 +214,28 @@ +@@ -211,16 +214,29 @@ plat_py_inc_dir = sysconfig.get_python_inc() plat_py_conf_inc_dir = os.path.dirname(sysconfig.get_config_h_filename()) @@ -46,6 +46,7 @@ diff -uNr sip-4.16.2/configure.py sip-4.16.2-mingw/configure.py + plat_bin_dir = temp_sys_exec_prefix + "/bin" + temp_sys_prefix = os.popen(' '.join(['cygpath', '--unix', sys.prefix])).readline().strip() + plat_sip_dir = temp_sys_prefix + "/share/sip" ++ plat_py_venv_inc_dir = os.popen(' '.join(['cygpath', '--unix', plat_py_venv_inc_dir])).readline().strip() + else: + plat_py_lib_dir = lib_dir + "/config" + plat_bin_dir = sys.exec_prefix + "/bin" diff --git a/mingw-w64-sip/PKGBUILD b/mingw-w64-sip/PKGBUILD index 105b4730b1..686e509600 100644 --- a/mingw-w64-sip/PKGBUILD +++ b/mingw-w64-sip/PKGBUILD @@ -3,7 +3,7 @@ _realname=sip pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=4.16.5 +pkgver=4.16.6 pkgrel=1 pkgdesc="Tool to create Python bindings for C and C++ libraries" arch=('any') @@ -15,8 +15,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" source=("http://downloads.sourceforge.net/project/pyqt/${_realname}/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.gz" "0001-mingw-python.patch") -md5sums=('6d01ea966a53e4c7ae5c5e48c40e49e5' - 'a01b87229009bacfeb440366dd932648') +md5sums=('44e87c4c98206f465d3f07f4caa0c903' + '0f812155edb59dd9dcb7bd187c5646ae') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 1b2a2026a8fb462c49bfca41f410b66325e662c4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 2 Mar 2015 13:54:14 +0300 Subject: [PATCH 0606/2060] pyqt5: Update to 5.4.1 --- mingw-w64-pyqt5/PKGBUILD | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mingw-w64-pyqt5/PKGBUILD b/mingw-w64-pyqt5/PKGBUILD index 95da75c657..0642f00f29 100644 --- a/mingw-w64-pyqt5/PKGBUILD +++ b/mingw-w64-pyqt5/PKGBUILD @@ -2,7 +2,7 @@ _realname=pyqt5 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-common" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=5.4.0 +pkgver=5.4.1 pkgrel=1 pkgdesc="Qt5 bindings for Python (mingw-w64)" arch=('any') @@ -12,14 +12,14 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-sip" "${MINGW_PACKAGE_PREFIX}-python3-sip" "${MINGW_PACKAGE_PREFIX}-qt5") options=('strip' 'staticlibs') -source=(#"http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-$pkgver/PyQt-gpl-$pkgver.tar.gz" - "http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-${pkgver%.*}/PyQt-gpl-${pkgver%.*}.tar.gz" +source=("http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-$pkgver/PyQt-gpl-$pkgver.tar.gz" + #"http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-${pkgver%.*}/PyQt-gpl-${pkgver%.*}.tar.gz" 001-mingw-python.patch) -md5sums=('7f2eb79eaf3d7e5e7df5a4e9c8c9340e' +md5sums=('a07bd7c426c7cda39f9a5072ee724aba' '3b11ff26e229e256ee13f484422047d9') prepare() { - cd "${srcdir}"/PyQt-gpl-${pkgver%.*} + cd "${srcdir}"/PyQt-gpl-${pkgver} #Apply patches patch -p1 -i "${srcdir}"/001-mingw-python.patch @@ -28,7 +28,7 @@ prepare() { build() { for builddir in python{2,3}-${MINGW_CHOST}; do [[ -d $builddir ]] && rm -rf $builddir - cp -r PyQt-gpl-${pkgver%.*} $builddir + cp -r PyQt-gpl-${pkgver} $builddir pushd $builddir [[ "${builddir%-${MINGW_CHOST}}" == "python2" ]] && { local _sipdir=Py2-Qt5 From aa3b223f6d4b0a8a29e6f8b1a8ab2d5d843d6ec2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 2 Mar 2015 15:43:00 +0300 Subject: [PATCH 0607/2060] libgcrypt: Update to 1.6.3 --- mingw-w64-libgcrypt/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgcrypt/PKGBUILD b/mingw-w64-libgcrypt/PKGBUILD index b401078648..5bcba1d77a 100644 --- a/mingw-w64-libgcrypt/PKGBUILD +++ b/mingw-w64-libgcrypt/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgcrypt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.2 +pkgver=1.6.3 pkgrel=1 pkgdesc="General purpose cryptographic library based on the code from GnuPG (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ source=("ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${pkgver}.tar.bz2" 'libgcrypt-use-correct-def-file.patch' 'libgcrypt-use-correct-asm-code-for-win64.patch' 'Smarter-fig2dev-detection.all.patch') -md5sums=('b54395a93cb1e57619943c082da09d5f' +md5sums=('4262c3aadf837500756c2051a5c4ae5e' '7bb247584a66a83677c618aec812ca9b' '531e089caca74b5daf130b7173c2a5c5' '5c7326890ac7b6304d31edfdc97063f6' From d342a930ac410d1db6ab2cb98f9c93b05ea2d49a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 2 Mar 2015 15:48:52 +0300 Subject: [PATCH 0608/2060] ruby: Update to 2.2.1 --- mingw-w64-ruby/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ruby/PKGBUILD b/mingw-w64-ruby/PKGBUILD index cef463b81d..8a0b8d8c5b 100644 --- a/mingw-w64-ruby/PKGBUILD +++ b/mingw-w64-ruby/PKGBUILD @@ -2,7 +2,7 @@ _realname=ruby pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.2.0 +pkgver=2.2.1 pkgrel=1 pkgdesc="An object-oriented language for quick and easy programming (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ source=("http://cache.ruby-lang.org/pub/ruby/${pkgver%.*}/ruby-${pkgver}.tar.bz2 0001-mingw-w64-time-functions.patch 0002-use-gnu-printf.patch 0003-fix-check-types.patch) -md5sums=('d03cd4690fec1fff81d096d1c1255fde' +md5sums=('06973777736d8e6bdad8dcaa469a9da3' '4256c35613e6dc15c164015ae8977d4a' '6d54f98b9e3a0d0077e9348dc7f69482' 'f9170e918fa7b7118d241d238d7a0e3b') From 05c927ecaaa5e5b5a714c1919c1e62b959c4acc8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 2 Mar 2015 18:16:53 +0300 Subject: [PATCH 0609/2060] discount: Update to 2.1.8 --- mingw-w64-discount/PKGBUILD | 12 +++--- .../discount-mingw-building.patch | 41 ++++++++++++++++--- 2 files changed, 41 insertions(+), 12 deletions(-) diff --git a/mingw-w64-discount/PKGBUILD b/mingw-w64-discount/PKGBUILD index 29e262282f..88a911f952 100644 --- a/mingw-w64-discount/PKGBUILD +++ b/mingw-w64-discount/PKGBUILD @@ -2,8 +2,8 @@ _realname=discount pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.6 -pkgrel=2 +pkgver=2.1.8 +pkgrel=1 pkgdesc="A Markdown implementation written in C (mingw-w64)" arch=('any') url="http://www.pell.portland.or.us/~orc/Code/discount/" @@ -11,14 +11,14 @@ license=('custom:BSD') provides=("${MINGW_PACKAGE_PREFIX}-markdown") conflicts=("${MINGW_PACKAGE_PREFIX}-markdown") options=('strip' 'staticlibs') -source=(http://www.pell.portland.or.us/~orc/Code/discount/${_realname}-$pkgver.tar.bz2 +source=(http://www.pell.portland.or.us/~orc/Code/discount/${_realname}-$pkgver.tar.gz discount-mingw-building.patch) -md5sums=('6f44e627777b6392f8f4a3280642482a' - '5235a54f0a3e8e61a11c42f3541e9582') +md5sums=('fcb1e7a3d19c2e666655fa8a28066e76' + 'f24ced063ce7229bcbdefc18db52b976') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -p0 -i ${srcdir}/discount-mingw-building.patch + patch -p1 -i ${srcdir}/discount-mingw-building.patch } build() { diff --git a/mingw-w64-discount/discount-mingw-building.patch b/mingw-w64-discount/discount-mingw-building.patch index b4890c0800..f4c5ada9d8 100644 --- a/mingw-w64-discount/discount-mingw-building.patch +++ b/mingw-w64-discount/discount-mingw-building.patch @@ -1,5 +1,5 @@ ---- configure.inc.orig 2013-12-06 10:26:52.855400000 +0400 -+++ configure.inc 2013-12-06 13:49:37.149800000 +0400 +--- discount-2.1.8/configure.inc.orig 2015-01-25 05:07:28.000000000 +0300 ++++ discount-2.1.8/configure.inc 2015-03-02 16:26:36.475000000 +0300 @@ -725,7 +725,11 @@ if [ "$DEST" ]; then rm -f /tmp/b$$ @@ -13,7 +13,15 @@ TLOG " ($DEST)" echo "$DEST exists, and ln -s works" PROG_LN_S="$DEST -s" -@@ -1207,6 +1211,9 @@ +@@ -876,6 +880,7 @@ + # windows machine; BYTE, WORD, DWORD already + # defined + echo "#include " >> $__cwd/config.h ++ echo "s;@DWORD@;DWORD;g" >> $__cwd/config.sub + TLOG " (defined in WinDef.h)" + return 0 + fi +@@ -1218,6 +1223,9 @@ AC_PROG_CC LOGN "checking for C compiler option to produce PIC " @@ -23,7 +31,7 @@ echo "int some_variable = 0;" > ngc$$.c if $AC_CC -c -fPIC -o ngc$$ ngc$$.c $LIBS; then -@@ -1219,6 +1226,7 @@ +@@ -1230,6 +1238,7 @@ fi __remove ngc$$ ngc$$.c return $__rc @@ -31,7 +39,7 @@ } -@@ -1311,6 +1319,41 @@ +@@ -1322,6 +1331,41 @@ chmod +x librarian.sh } @@ -73,7 +81,7 @@ # # AC_CC_SHLIBS checks if the C compiler can produce shared libraries -@@ -1335,6 +1378,10 @@ +@@ -1346,6 +1390,10 @@ LOG "(no)" __rc=1 fi @@ -84,3 +92,24 @@ elif $AC_CC $AC_PICFLAG -shared -o ngc$$.so ngc$$.c; then __AC_ELF_LIBRARIAN LOG "(yes; -shared)" +@@ -1402,7 +1450,7 @@ + + AC_SUB 'INSTALL' "$PROG_INSTALL" + AC_SUB 'INSTALL_PROGRAM' "$PROG_INSTALL -s -m 755" +- AC_SUB 'INSTALL_DATA' "$PROG_INSTALL -m 444" ++ AC_SUB 'INSTALL_DATA' "$PROG_INSTALL -m 644" + + # finally build a little directory installer + # if mkdir -p works, use that, otherwise use install -d, +--- discount-2.1.8/mkdio.h.in.orig 2015-03-02 16:30:39.824800000 +0300 ++++ discount-2.1.8/mkdio.h.in 2015-03-02 16:33:45.267200000 +0300 +@@ -2,6 +2,9 @@ + #define _MKDIO_D + + #include ++#ifdef _WIN32 ++#include ++#endif + + typedef void MMIOT; + From 7026818117759a5d0d184e5e0e2c10e19936f629 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Tue, 3 Mar 2015 05:51:45 +0000 Subject: [PATCH 0610/2060] vlc-git: final vout with windows store support to send to videolan --- .../0010-d3d11-vout-plugin.patch | 631 +++++++++++------- mingw-w64-vlc-git/PKGBUILD | 4 +- 2 files changed, 378 insertions(+), 257 deletions(-) diff --git a/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch b/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch index 7574f272a2..c002cbf6c5 100644 --- a/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch +++ b/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch @@ -1,4 +1,4 @@ -From 4d05fdc69f06e84ab16f02a4d70111855e06a3f0 Mon Sep 17 00:00:00 2001 +From 397e1204a80500c90d58cf52801dcf8adf3074c5 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 24 Dec 2014 16:37:27 +0000 Subject: [PATCH] d3d11 vout plugin @@ -6,16 +6,16 @@ Subject: [PATCH] d3d11 vout plugin --- configure.ac | 7 +- modules/MODULES_LIST | 1 + - modules/video_output/Makefile.am | 12 + - modules/video_output/msw/common.c | 23 +- - modules/video_output/msw/common.h | 41 ++ - modules/video_output/msw/direct3d11.c | 888 ++++++++++++++++++++++++++++++++++ - modules/video_output/msw/events.c | 10 +- - 7 files changed, 974 insertions(+), 8 deletions(-) + modules/video_output/Makefile.am | 16 + + modules/video_output/msw/common.c | 33 +- + modules/video_output/msw/common.h | 46 +- + modules/video_output/msw/direct3d11.c | 940 ++++++++++++++++++++++++++++++++++ + modules/video_output/msw/events.c | 17 +- + 7 files changed, 1049 insertions(+), 11 deletions(-) create mode 100644 modules/video_output/msw/direct3d11.c diff --git a/configure.ac b/configure.ac -index 47cbd11..e693baf 100644 +index c5c5d39..0fffb40 100644 --- a/configure.ac +++ b/configure.ac @@ -3262,7 +3262,12 @@ AS_IF([test "${enable_directx}" != "no"], [ @@ -33,7 +33,7 @@ index 47cbd11..e693baf 100644 VLC_ADD_PLUGIN([direct3d9]) ]) diff --git a/modules/MODULES_LIST b/modules/MODULES_LIST -index b048ba1..b3cb0e5 100644 +index e8865dc..4a57c42 100644 --- a/modules/MODULES_LIST +++ b/modules/MODULES_LIST @@ -98,6 +98,7 @@ $Id$ @@ -45,21 +45,25 @@ index b048ba1..b3cb0e5 100644 * directfb: Direct Framebuffer video output * directsound: audio output module using the DirectSound API diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am -index e05b28f..1a2ae96 100644 +index e05b28f..5aaeafb 100644 --- a/modules/video_output/Makefile.am +++ b/modules/video_output/Makefile.am -@@ -181,6 +181,18 @@ libdirect3d9_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)' +@@ -181,6 +181,22 @@ libdirect3d9_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)' vout_LTLIBRARIES += $(LTLIBdirect3d9) EXTRA_LTLIBRARIES += libdirect3d9_plugin.la +libdirect3d11_plugin_la_SOURCES = video_output/msw/direct3d11.c \ -+ video_output/msw/common.c video_output/msw/common.h \ -+ video_output/msw/events.c video_output/msw/events.h \ -+ video_output/msw/builtin_shaders.h \ -+ video_output/msw/win32touch.c video_output/msw/win32touch.h ++ video_output/msw/common.c video_output/msw/common.h \ ++ video_output/msw/events.c video_output/msw/events.h \ ++ video_output/msw/builtin_shaders.h \ ++ video_output/msw/win32touch.c video_output/msw/win32touch.h +libdirect3d11_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \ -+ -DMODULE_NAME_IS_direct3d11 ++ -DMODULE_NAME_IS_direct3d11 ++if !HAVE_WINSTORE +libdirect3d11_plugin_la_LIBADD = -lgdi32 -lole32 -luuid ++else ++libdirect3d11_plugin_la_LIBADD = -ld3dcompiler -lole32 -luuid ++endif +libdirect3d11_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)' +vout_LTLIBRARIES += $(LTLIBdirect3d11) +EXTRA_LTLIBRARIES += libdirect3d11_plugin.la @@ -68,10 +72,34 @@ index e05b28f..1a2ae96 100644 video_output/msw/common.c video_output/msw/common.h \ video_output/msw/events.c video_output/msw/events.h \ diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c -index 1ebe08c..cbdd15b 100644 +index 1ebe08c..802450d 100644 --- a/modules/video_output/msw/common.c +++ b/modules/video_output/msw/common.c -@@ -214,6 +214,25 @@ int CommonUpdatePicture(picture_t *picture, picture_t **fallback, +@@ -4,7 +4,8 @@ + * Copyright (C) 2001-2009 VLC authors and VideoLAN + * $Id$ + * +- * Authors: Gildas Bazin ++ * Authors: Martell Malone , ++ * Gildas Bazin + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by +@@ -117,6 +118,13 @@ void CommonClean(vout_display_t *vd) + RestoreScreensaver(vd); + } + ++/* */ ++picture_pool_t *CommonPool(vout_display_t *vd, unsigned count) ++{ ++ VLC_UNUSED(count); ++ return vd->sys->pool; ++} ++ + void CommonManage(vout_display_t *vd) + { + vout_display_sys_t *sys = vd->sys; +@@ -214,6 +222,25 @@ int CommonUpdatePicture(picture_t *picture, picture_t **fallback, picture->p->i_pitch = pitch; picture->p->i_lines = picture->format.i_visible_height; @@ -89,7 +117,7 @@ index 1ebe08c..cbdd15b 100644 + } + /* The dx/d3d buffer is always allocated as NV12 */ + if (vlc_fourcc_AreUVPlanesSwapped(picture->format.i_chroma, VLC_CODEC_NV12)) { -+ // TODO : Swap NV21 UV planes to match NV12 ++ /* TODO : Swap NV21 UV planes to match NV12 */ + return VLC_EGENERIC; + } + } @@ -97,7 +125,7 @@ index 1ebe08c..cbdd15b 100644 /* Fill chroma planes for planar YUV */ if (picture->format.i_chroma == VLC_CODEC_I420 || picture->format.i_chroma == VLC_CODEC_J420 || -@@ -348,7 +367,7 @@ void UpdateRects(vout_display_t *vd, +@@ -348,7 +375,7 @@ void UpdateRects(vout_display_t *vd, SWP_NOCOPYBITS|SWP_NOZORDER|SWP_ASYNCWINDOWPOS); /* Destination image position and dimensions */ @@ -106,7 +134,7 @@ index 1ebe08c..cbdd15b 100644 rect_dest.left = 0; rect_dest.right = place.width; rect_dest.top = 0; -@@ -425,7 +444,7 @@ void UpdateRects(vout_display_t *vd, +@@ -425,7 +452,7 @@ void UpdateRects(vout_display_t *vd, /* Apply overlay hardware constraints */ if (sys->use_overlay) AlignRect(&rect_src_clipped, sys->i_align_src_boundary, sys->i_align_src_size); @@ -116,70 +144,89 @@ index 1ebe08c..cbdd15b 100644 rect_src_clipped.left &= ~1; rect_src_clipped.right &= ~1; diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h -index 5cb8c45..f9ed5bf 100644 +index 5cb8c45..b02fa27 100644 --- a/modules/video_output/msw/common.h +++ b/modules/video_output/msw/common.h -@@ -25,6 +25,11 @@ +@@ -4,7 +4,8 @@ + * Copyright (C) 2001-2009 VLC authors and VideoLAN + * $Id$ + * +- * Authors: Gildas Bazin ++ * Authors: Martell Malone , ++ * Gildas Bazin , + * Damien Fouilleul + * + * This program is free software; you can redistribute it and/or modify it +@@ -25,6 +26,15 @@ #ifdef MODULE_NAME_IS_directdraw # include #endif +#ifdef MODULE_NAME_IS_direct3d11 +# include ++#if VLC_WINSTORE_APP ++# include ++#else +# include ++#endif +# include +#endif #ifdef MODULE_NAME_IS_direct3d9 # include # include -@@ -135,6 +140,42 @@ struct vout_display_sys_t +@@ -135,6 +145,38 @@ struct vout_display_sys_t ID2D1Bitmap *d2_bitmap; /* D2 bitmap */ #endif +#ifdef MODULE_NAME_IS_direct3d11 ++#if !VLC_WINSTORE_APP + HINSTANCE hdxgi_dll; /* handle of the opened dxgi dll */ + HINSTANCE hd3d11_dll; /* handle of the opened d3d11 dll */ + HINSTANCE hd3dcompiler_dll; /* handle of the opened d3dcompiler dll */ -+ -+ IDXGIFactory *dxgi_factory; /* DXGI factory */ -+ IDXGIAdapter *dxgi_adapter; /* DXGI adapter */ -+ IDXGISwapChain *dxgi_swapChain; /* DXGI swap chain */ -+ ++ IDXGIAdapter *dxgiadapter; /* DXGI adapter */ ++ IDXGIFactory *dxgifactory; /* DXGI factory */ ++ IDXGISwapChain *dxgiswapChain; /* DXGI 1.0 swap chain */ ++ /* We should find a better way to store this or atleast a shorter name */ ++ PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN OurD3D11CreateDeviceAndSwapChain; ++ PFN_D3D11_CREATE_DEVICE OurD3D11CreateDevice; ++ pD3DCompile OurD3DCompile; ++#else ++ IDXGISwapChain1 *dxgiswapChain; /* DXGI 1.1 swap chain */ ++#endif + ID3D11Device *d3ddevice; /* D3D device */ + ID3D11DeviceContext *d3dcontext; /* D3D context */ -+ + ID3D11Texture2D *d3dtexture; + ID3D11ShaderResourceView *d3dresViewY; -+ ID3D11ShaderResourceView *d3dresViewU; -+ ID3D11ShaderResourceView *d3dresViewV; ++ ID3D11ShaderResourceView *d3dresViewUV; + ID3D11RenderTargetView *d3drenderTargetView; + ID3D11DepthStencilView *d3ddepthStencilView; + ID3D11VertexShader *d3dvertexShader; + ID3D11PixelShader *d3dpixelShader; + ID3D11InputLayout *d3dvertexLayout; + ID3D11SamplerState *d3dsampState; -+ -+ D3D_FEATURE_LEVEL d3dfeaturelevel; -+ -+ /* We should find a better way to store this or atleast a shorter name */ -+ PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN OurD3D11CreateDeviceAndSwapChain; -+ PFN_D3D11_CREATE_DEVICE OurD3D11CreateDevice; -+ pD3DCompile OurD3DCompile; -+ -+ DXGI_FORMAT d3dFormat; -+ vlc_fourcc_t vlcFormat; -+ -+ picture_sys_t *picsys; ++ picture_sys_t *picsys; ++ D3D_FEATURE_LEVEL d3dfeaturelevel; ++ DXGI_FORMAT d3dFormat; ++ vlc_fourcc_t vlcFormat; +#endif + #ifdef MODULE_NAME_IS_direct3d9 bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ /* show video on desktop window ? */ +@@ -209,6 +251,8 @@ void UpdateRects (vout_display_t *, + bool is_forced); + void AlignRect(RECT *, int align_boundary, int align_size); + ++picture_pool_t *CommonPool(vout_display_t *, unsigned); ++ + /***************************************************************************** + * Constants + *****************************************************************************/ diff --git a/modules/video_output/msw/direct3d11.c b/modules/video_output/msw/direct3d11.c new file mode 100644 -index 0000000..2bdf30d +index 0000000..7914e1d --- /dev/null +++ b/modules/video_output/msw/direct3d11.c -@@ -0,0 +1,888 @@ +@@ -0,0 +1,940 @@ +/***************************************************************************** + * direct3d11.c: Windows Direct3D11 video output module + ***************************************************************************** @@ -209,21 +256,26 @@ index 0000000..2bdf30d +#include +#include +#include -+#include + -+#include +#define COBJMACROS -+#include "common.h" -+#include "builtin_shaders.h" ++#include ++ ++/* avoided until we can deal with c++/cx in gcc ++# define INITGUID ++# include */ ++ ++#include "common.h" ++ ++#if !VLC_WINSTORE_APP ++#define D3D11CreateDeviceAndSwapChain(args...) sys->OurD3D11CreateDeviceAndSwapChain(args) ++#define D3D11CreateDevice(args...) sys->OurD3D11CreateDevice(args) ++#define D3DCompile(args...) sys->OurD3DCompile(args) ++#endif + -+/***************************************************************************** -+ * Module descriptor -+ *****************************************************************************/ +static int Open(vlc_object_t *); +static void Close(vlc_object_t *); + -+ -+#define D3D11_HELP N_("Recommended video output for Windows 8 and later versions") ++#define D3D11_HELP N_("Recommended video output for Windows RT and Windows Phone") + +vlc_module_begin () + set_shortname("Direct3D11") @@ -245,7 +297,6 @@ index 0000000..2bdf30d + +static const d3d_format_t d3d_formats[] = { + { "NV12", DXGI_FORMAT_NV12, VLC_CODEC_NV12 }, -+ { "YUY2", DXGI_FORMAT_YUY2, VLC_CODEC_YUYV }, + { "RGBA", DXGI_FORMAT_R8G8B8A8_UNORM, VLC_CODEC_RGBA }, + { NULL, 0, 0 } +}; @@ -257,15 +308,15 @@ index 0000000..2bdf30d + +struct picture_sys_t +{ -+ ID3D11Texture2D *surface; ++ ID3D11Texture2D *texture; + ID3D11DeviceContext *context; +}; + +static int Open(vlc_object_t *); +static void Close(vlc_object_t *object); + -+static picture_pool_t *Pool (vout_display_t *, unsigned); -+static void Display(vout_display_t *, picture_t *, subpicture_t *subpicture); ++static void Prepare(vout_display_t *, picture_t *, subpicture_t *subpicture); ++static void Display(vout_display_t *, picture_t *, subpicture_t *subpicture); + +static int Direct3D11Create (vout_display_t *); +static void Direct3D11Destroy(vout_display_t *); @@ -276,11 +327,17 @@ index 0000000..2bdf30d +static int Direct3D11CreateResources (vout_display_t *, video_format_t *); +static void Direct3D11DestroyResources(vout_display_t *); + -+static int Direct3D11MapSurface(picture_t *); ++static int Direct3D11MapTexture(picture_t *); + -+// I have no idea why dxgi headers do not define this, d3d11 does for its functions ++/* All the #if 0 contain an alternative method to setup dx11 ++ They both need to be benchmarked to see which performs better */ ++#if 0 ++/* I have no idea why MS decided dxgi headers do not define this ++ As they do have prototypes for d3d11 functions */ +typedef HRESULT(WINAPI *PFN_CREATE_DXGI_FACTORY)(REFIID riid, void **ppFactory); ++#endif + ++/* TODO: Move to a direct3d11_shaders header */ +static const char* globVertexShaderDefault = "\ + struct VS_INPUT\ + {\ @@ -347,65 +404,22 @@ index 0000000..2bdf30d + }\ +"; + -+static const char* globPixelShaderTriplanarYUV2RGB = "\ -+ Texture2D shaderTextureY;\ -+ Texture2D shaderTextureU;\ -+ Texture2D shaderTextureV;\ -+ SamplerState SampleType;\ -+ \ -+ struct PS_INPUT\ -+ {\ -+ float4 Position : SV_POSITION;\ -+ float2 Texture : TEXCOORD0;\ -+ };\ -+ \ -+ float4 PS( PS_INPUT In ) : SV_TARGET\ -+ {\ -+ float3 yuv;\ -+ float4 rgba;\ -+ yuv.x = shaderTextureY.Sample(SampleType, In.Texture).x;\ -+ yuv.y = shaderTextureU.Sample(SampleType, In.Texture).x;\ -+ yuv.z = shaderTextureV.Sample(SampleType, In.Texture).x;\ -+ yuv.x = 1.164 * (yuv.x-0.0625);\ -+ yuv.y = yuv.y - 0.5;\ -+ yuv.z = yuv.z - 0.5;\ -+ rgba.x = saturate(yuv.x + 1.596 * yuv.z);\ -+ rgba.y = saturate(yuv.x - 0.813 * yuv.z - 0.391 * yuv.y);\ -+ rgba.z = saturate(yuv.x + 2.018 * yuv.y);\ -+ rgba.w = 1.0;\ -+ return rgba;\ -+ }\ -+"; -+ +static int Open(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; -+ vout_display_sys_t *sys; -+ -+ OSVERSIONINFO winVer; -+ winVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); -+ if((GetVersionEx(&winVer) && !object->b_force) -+ && ((winVer.dwMajorVersion > 5 && winVer.dwMinorVersion < 1 ) -+ || (winVer.dwMajorVersion < 6))) -+ // minor versions since Windows 7 are all above 0 -+ return VLC_EGENERIC; -+ -+ vd->sys = sys = calloc(1, sizeof(vout_display_sys_t)); -+ if (!sys) -+ return VLC_ENOMEM; + + if (Direct3D11Create(vd)) { + msg_Err(vd, "Direct3D11 could not be initialized"); + Direct3D11Destroy(vd); -+ free(sys); + return VLC_EGENERIC; + } + + if (CommonInit(vd)) + goto error; + -+ sys->d3dFormat = d3d_formats[0].format; -+ sys->vlcFormat = d3d_formats[0].fourcc; ++ /* TODO : A fallback system */ ++ vd->sys->d3dFormat = d3d_formats[0].format; ++ vd->sys->vlcFormat = d3d_formats[0].fourcc; + + video_format_t fmt; + if (Direct3D11Open(vd, &fmt)) { @@ -413,22 +427,22 @@ index 0000000..2bdf30d + goto error; + } + -+ vout_display_info_t info = vd->info; -+ info.is_slow = true; -+ info.has_double_click = true; -+ info.has_hide_mouse = false; ++ vout_display_info_t info = vd->info; ++ info.is_slow = true; ++ info.has_double_click = true; ++ info.has_hide_mouse = false; + info.has_pictures_invalid = true; -+ info.has_event_thread = true; ++ info.has_event_thread = true; + -+ // TODO : subtitle support -+ info.subpicture_chromas = NULL; ++ /* TODO : subtitle support */ ++ info.subpicture_chromas = NULL; + + video_format_Clean(&vd->fmt); + video_format_Copy(&vd->fmt, &fmt); + vd->info = info; + -+ vd->pool = Pool; -+ vd->prepare = NULL; ++ vd->pool = CommonPool; ++ vd->prepare = Prepare; + vd->display = Display; + vd->control = CommonControl; + vd->manage = CommonManage; @@ -454,35 +468,37 @@ index 0000000..2bdf30d + free(vd->sys); +} + -+static picture_pool_t *Pool(vout_display_t *vd, unsigned count) ++static void Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpicture) +{ -+ VLC_UNUSED(count); -+ return vd->sys->pool; ++ vout_display_sys_t *sys = vd->sys; ++ VLC_UNUSED(subpicture); ++ VLC_UNUSED(picture); ++ ++ /* float ClearColor[4] = { 1.0f, 0.125f, 0.3f, 1.0f }; */ ++ /* ID3D11DeviceContext_ClearRenderTargetView(sys->d3dcontext,sys->d3drenderTargetView, ClearColor); */ ++ ID3D11DeviceContext_ClearDepthStencilView(sys->d3dcontext,sys->d3ddepthStencilView, D3D11_CLEAR_DEPTH, 1.0f, 0); ++ ++ /* Render the quad */ ++ ID3D11DeviceContext_VSSetShader(sys->d3dcontext, sys->d3dvertexShader, NULL, 0); ++ ID3D11DeviceContext_PSSetShader(sys->d3dcontext, sys->d3dpixelShader, NULL, 0); ++ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 0, 1, &sys->d3dresViewY); ++ ++ if (sys->vlcFormat == VLC_CODEC_NV12) ++ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 1, 1, &sys->d3dresViewUV); ++ ++ ID3D11DeviceContext_PSSetSamplers(sys->d3dcontext, 0, 1, &sys->d3dsampState); ++ ID3D11DeviceContext_DrawIndexed(sys->d3dcontext, 6, 0, 0); +} + +static void Display(vout_display_t *vd, picture_t *picture, subpicture_t *subpicture) +{ + vout_display_sys_t *sys = vd->sys; + -+ //float ClearColor[4] = { 1.0f, 0.125f, 0.3f, 1.0f }; // red,green,blue,alpha -+ //ID3D11DeviceContext_ClearRenderTargetView(sys->d3dcontext,sys->d3drenderTargetView, ClearColor ); -+ ID3D11DeviceContext_ClearDepthStencilView(sys->d3dcontext,sys->d3ddepthStencilView, D3D11_CLEAR_DEPTH, 1.0f, 0); -+ // Render the quad -+ ID3D11DeviceContext_VSSetShader(sys->d3dcontext, sys->d3dvertexShader, NULL, 0); -+ ID3D11DeviceContext_PSSetShader(sys->d3dcontext, sys->d3dpixelShader, NULL, 0); -+ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 0, 1, &sys->d3dresViewY); -+ -+ if (sys->vlcFormat == VLC_CODEC_NV12 || -+ sys->vlcFormat == VLC_CODEC_YUYV) -+ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 1, 1, &sys->d3dresViewU); -+ -+ if (sys->vlcFormat == VLC_CODEC_YUYV) -+ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 2, 1, &sys->d3dresViewV); -+ -+ ID3D11DeviceContext_PSSetSamplers(sys->d3dcontext, 0, 1, &sys->d3dsampState); -+ ID3D11DeviceContext_DrawIndexed(sys->d3dcontext, 6, 0, 0); -+ IDXGISwapChain_Present(sys->dxgi_swapChain, 0, 0); -+ ++#if VLC_WINSTORE_APP ++ IDXGISwapChain1_Present(sys->dxgiswapChain, 0, 0); ++#else ++ IDXGISwapChain_Present(sys->dxgiswapChain, 0, 0); ++#endif + picture_Release(picture); + if (subpicture) + subpicture_Delete(subpicture); @@ -490,11 +506,12 @@ index 0000000..2bdf30d + CommonDisplay(vd); +} + ++#if !VLC_WINSTORE_APP +static HINSTANCE Direct3D11LoadShaderLibrary(void) +{ + HINSTANCE instance = NULL; -+ //d3dcompiler_47 is the latest on windows 8.1 -+ for (int i = 47; i > 23; --i) { ++ /* d3dcompiler_47 is the latest on windows 8.1 */ ++ for (int i = 47; i > 41; --i) { + TCHAR filename[18]; + _sntprintf(filename, 18, TEXT("D3DCOMPILER_%d.dll"), i); + instance = LoadLibrary(filename); @@ -502,67 +519,104 @@ index 0000000..2bdf30d + } + return instance; +} ++#endif + +static int Direct3D11Create(vout_display_t *vd) +{ -+ vout_display_sys_t *sys = vd->sys; + -+ sys->hd3d11_dll = LoadLibrary(TEXT("D3D11.DLL")); -+ if (!sys->hd3d11_dll) { ++#if !VLC_WINSTORE_APP ++ ++ HINSTANCE hd3d11_dll = LoadLibrary(TEXT("D3D11.DLL")); ++ if (!hd3d11_dll) { + msg_Warn(vd, "cannot load d3d11.dll, aborting"); + return VLC_EGENERIC; + } + -+ sys->hdxgi_dll = LoadLibrary(TEXT("DXGI.DLL")); -+ if (!sys->hdxgi_dll) { -+ msg_Warn(vd, "cannot load dxgi.dll, aborting"); -+ return VLC_EGENERIC; -+ } ++ #if 0 ++ HINSTANCE hdxgi_dll = LoadLibrary(TEXT("DXGI.DLL")); ++ if (!hdxgi_dll) { ++ msg_Warn(vd, "cannot load dxgi.dll, aborting"); ++ return VLC_EGENERIC; ++ } ++ #endif + -+ sys->hd3dcompiler_dll = Direct3D11LoadShaderLibrary(); -+ if (!sys->hd3dcompiler_dll) { ++ HINSTANCE hd3dcompiler_dll = Direct3D11LoadShaderLibrary(); ++ if (!hd3dcompiler_dll) { + msg_Err(vd, "cannot load d3dcompiler.dll, aborting"); + return VLC_EGENERIC; + } + ++#else ++ ++ IDXGISwapChain1* dxgiswapChain = var_InheritInteger(vd, "winrt-dxgiswapchain"); ++ if (!dxgiswapChain) ++ return VLC_EGENERIC; ++ ID3D11Device* d3ddevice = var_InheritInteger(vd, "winrt-d3ddevice"); ++ if (!d3ddevice) ++ return VLC_EGENERIC; ++ ID3D11DeviceContext* d3dcontext = var_InheritInteger(vd, "winrt-d3dcontext"); ++ if (!d3dcontext) ++ return VLC_EGENERIC; ++ ++#endif ++ ++ vout_display_sys_t *sys = vd->sys = calloc(1, sizeof(vout_display_sys_t)); ++ if (!sys) ++ return VLC_ENOMEM; ++ ++#if !VLC_WINSTORE_APP ++ ++ sys->hd3d11_dll = hd3d11_dll; ++ sys->hd3dcompiler_dll = hd3dcompiler_dll; ++ + sys->OurD3DCompile = (void *)GetProcAddress(sys->hd3dcompiler_dll, "D3DCompile"); + if (!sys->OurD3DCompile) { + msg_Err(vd, "Cannot locate reference to D3DCompile in d3dcompiler DLL"); + return VLC_EGENERIC; + } + -+#if 0 ++ #if 0 + -+ // TODO : enable all dxgi versions from 1.3 -> 1.1 -+ PFN_CREATE_DXGI_FACTORY OurCreateDXGIFactory = -+ (void *)GetProcAddress(sys->hdxgi_dll, "CreateDXGIFactory"); -+ if (!OurCreateDXGIFactory) { -+ msg_Err(vd, "Cannot locate reference to CreateDXGIFactory in dxgi DLL"); -+ return VLC_EGENERIC; -+ } ++ sys->hdxgi_dll = hdxgi_dll; + -+ // TODO : detect the directx version supported and use IID_IDXGIFactory3 or 2 -+ HRESULT hr = OurCreateDXGIFactory(&IID_IDXGIFactory, (void **)&sys->dxgi_factory); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not create dxgi factory. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } ++ /* TODO : enable all dxgi versions from 1.3 -> 1.1 */ ++ PFN_CREATE_DXGI_FACTORY OurCreateDXGIFactory = ++ (void *)GetProcAddress(sys->hdxgi_dll, "CreateDXGIFactory"); ++ if (!OurCreateDXGIFactory) { ++ msg_Err(vd, "Cannot locate reference to CreateDXGIFactory in dxgi DLL"); ++ return VLC_EGENERIC; ++ } + -+ sys->OurD3D11CreateDeviceAndSwapChain = -+ (void *)GetProcAddress(sys->hd3d11_dll, "D3D11CreateDeviceAndSwapChain"); -+ if (!sys->OurD3D11CreateDeviceAndSwapChain) { -+ msg_Err(vd, "Cannot locate reference to D3D11CreateDeviceAndSwapChain in d3d11 DLL"); -+ return VLC_EGENERIC; -+ } ++ /* TODO : detect the directx version supported and use IID_IDXGIFactory3 or 2 */ ++ HRESULT hr = OurCreateDXGIFactory(&IID_IDXGIFactory, (void **)&sys->dxgifactory); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not create dxgi factory. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ sys->OurD3D11CreateDeviceAndSwapChain = ++ (void *)GetProcAddress(sys->hd3d11_dll, "D3D11CreateDeviceAndSwapChain"); ++ if (!sys->OurD3D11CreateDeviceAndSwapChain) { ++ msg_Err(vd, "Cannot locate reference to D3D11CreateDeviceAndSwapChain in d3d11 DLL"); ++ return VLC_EGENERIC; ++ } ++ ++ #else ++ ++ sys->OurD3D11CreateDevice = ++ (void *)GetProcAddress(sys->hd3d11_dll, "D3D11CreateDevice"); ++ if (!sys->OurD3D11CreateDevice) { ++ msg_Err(vd, "Cannot locate reference to D3D11CreateDevice in d3d11 DLL"); ++ return VLC_EGENERIC; ++ } ++ ++ #endif + +#else + -+ sys->OurD3D11CreateDevice = -+ (void *)GetProcAddress(sys->hd3d11_dll, "D3D11CreateDevice"); -+ if (!sys->OurD3D11CreateDevice) { -+ msg_Err(vd, "Cannot locate reference to D3D11CreateDevice in d3d11 DLL"); -+ return VLC_EGENERIC; -+ } ++ sys->dxgiswapChain = dxgiswapChain; ++ sys->d3ddevice = d3ddevice; ++ sys->d3dcontext = d3dcontext; + +#endif + @@ -572,16 +626,22 @@ index 0000000..2bdf30d + +static void Direct3D11Destroy(vout_display_t *vd) +{ ++ ++#if !VLC_WINSTORE_APP ++ + vout_display_sys_t *sys = vd->sys; + -+ if (sys->hdxgi_dll) -+ FreeLibrary(sys->hdxgi_dll); ++ #if 0 ++ if (sys->hdxgi_dll) ++ FreeLibrary(sys->hdxgi_dll); ++ #endif ++ + if (sys->hd3d11_dll) + FreeLibrary(sys->hd3d11_dll); + if (sys->hd3dcompiler_dll) + FreeLibrary(sys->hd3dcompiler_dll); + -+ // TODO : add release of d3d11 objects here ++ /* TODO : add release of d3d11 objects here */ + + sys->OurD3D11CreateDevice = NULL; + sys->OurD3D11CreateDeviceAndSwapChain = NULL; @@ -589,24 +649,24 @@ index 0000000..2bdf30d + sys->hdxgi_dll = NULL; + sys->hd3d11_dll = NULL; + sys->hd3dcompiler_dll = NULL; ++#else ++ ++ VLC_UNUSED(vd); ++ ++#endif ++ +} + +static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) +{ + vout_display_sys_t *sys = vd->sys; -+ UINT creationFlags = 0; -+ HRESULT hr = S_OK; -+ UINT driver = 0; -+ + *fmt = vd->source; + -+ static const D3D_DRIVER_TYPE driverAttempts[] = { -+ D3D_DRIVER_TYPE_HARDWARE, -+ D3D_DRIVER_TYPE_WARP, -+ D3D_DRIVER_TYPE_REFERENCE, -+ }; ++#if !VLC_WINSTORE_APP ++ ++ UINT creationFlags = 0; ++ HRESULT hr = S_OK; + -+ /* we use the newest version available to us */ + static const D3D_FEATURE_LEVEL featureLevels[] = + { + D3D_FEATURE_LEVEL_11_1, @@ -622,30 +682,45 @@ index 0000000..2bdf30d + creationFlags |= D3D11_CREATE_DEVICE_DEBUG; +#endif + ++#if VLC_WINSTORE_APP ++ DXGI_SWAP_CHAIN_DESC1 scd; ++#else + DXGI_SWAP_CHAIN_DESC scd; -+ memset(&scd, 0, sizeof(scd)); ++#endif + ++ memset(&scd, 0, sizeof(scd)); + scd.BufferCount = 1; + scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; -+ scd.OutputWindow = sys->hvideownd; + scd.SampleDesc.Count = 1; + scd.SampleDesc.Quality = 0; -+ scd.Windowed = TRUE; + scd.BufferDesc.Width = fmt->i_visible_width; + scd.BufferDesc.Height = fmt->i_visible_height; + scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + ++#if VLC_WINSTORE_APP ++ /* TODO : check different values for performance */ ++ scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; ++ scd.BufferCount = 2; ++ scd.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; ++ scd.Flags = DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER; ++ scd.AlphaMode = DXGI_ALPHA_MODE_PREMULTIPLIED; ++ scd.Scaling = DXGI_SCALING_NONE; ++#else ++ scd.Windowed = TRUE; ++ scd.OutputWindow = sys->hvideownd; ++#endif ++ +#if 0 + -+ // TODO : list adapters for the user to choose from -+ hr = IDXGIFactory_EnumAdapters(sys->dxgi_factory, 0, &sys->dxgi_adapter); ++ /* TODO : list adapters for the user to choose from */ ++ hr = IDXGIFactory_EnumAdapters(sys->dxgifactory, 0, &sys->dxgiadapter); + if (FAILED(hr)) { + msg_Err(vd, "Could not create find factory. (hr=0x%lX)", hr); + return VLC_EGENERIC; + } + + IDXGIOutput* output; -+ hr = IDXGIAdapter_EnumOutputs(sys->dxgi_adapter, 0, &output); ++ hr = IDXGIAdapter_EnumOutputs(sys->dxgiadapter, 0, &output); + if (FAILED(hr)) { + msg_Err(vd, "Could not Enumerate DXGI Outputs. (hr=0x%lX)", hr); + return VLC_EGENERIC; @@ -664,15 +739,15 @@ index 0000000..2bdf30d + return VLC_EGENERIC; + } + -+ //mode desc doesn't carry over the width and height ++ /* mode desc doesn't carry over the width and height*/ + scd.BufferDesc.Width = fmt->i_visible_width; + scd.BufferDesc.Height = fmt->i_visible_height; + -+ hr = sys->OurD3D11CreateDeviceAndSwapChain(sys->dxgi_adapter, -+ D3D_DRIVER_TYPE_UNKNOWN, NULL, creationFlags, -+ featureLevels, ARRAYSIZE(featureLevels), -+ D3D11_SDK_VERSION, &scd, &sys->dxgi_swapChain, -+ &sys->d3ddevice, &sys->d3dfeaturelevel, &sys->d3dcontext); ++ hr = D3D11CreateDeviceAndSwapChain(sys->dxgiadapter, ++ D3D_DRIVER_TYPE_UNKNOWN, NULL, creationFlags, ++ featureLevels, ARRAYSIZE(featureLevels), ++ D3D11_SDK_VERSION, &scd, &sys->dxgiswapChain, ++ &sys->d3ddevice, &sys->d3dfeaturelevel, &sys->d3dcontext); + if (FAILED(hr)) { + msg_Err(vd, "Could not Create the D3D11 device and SwapChain. (hr=0x%lX)", hr); + return VLC_EGENERIC; @@ -680,10 +755,16 @@ index 0000000..2bdf30d + +#else + -+ for (driver = 0; driver < ARRAYSIZE(driverAttempts); driver++) { -+ hr = sys->OurD3D11CreateDevice(NULL, driverAttempts[driver], NULL, creationFlags, -+ featureLevels, ARRAYSIZE(featureLevels), D3D11_SDK_VERSION, -+ &sys->d3ddevice, &sys->d3dfeaturelevel, &sys->d3dcontext); ++ static const D3D_DRIVER_TYPE driverAttempts[] = { ++ D3D_DRIVER_TYPE_HARDWARE, ++ D3D_DRIVER_TYPE_WARP, ++ D3D_DRIVER_TYPE_REFERENCE, ++ }; ++ ++ for (UINT driver = 0; driver < ARRAYSIZE(driverAttempts); driver++) { ++ hr = D3D11CreateDevice(NULL, driverAttempts[driver], NULL, creationFlags, ++ featureLevels, ARRAYSIZE(featureLevels), D3D11_SDK_VERSION, ++ &sys->d3ddevice, &sys->d3dfeaturelevel, &sys->d3dcontext); + if (SUCCEEDED(hr)) break; + } + @@ -699,24 +780,49 @@ index 0000000..2bdf30d + return VLC_EGENERIC; + } + -+ hr = IDXGIDevice_GetAdapter(pDXGIDevice, &sys->dxgi_adapter); ++ hr = IDXGIDevice_GetAdapter(pDXGIDevice, &sys->dxgiadapter); + if (FAILED(hr)) { + msg_Err(vd, "Could not get the DXGI Adapter. (hr=0x%lX)", hr); + return VLC_EGENERIC; + } + -+ hr = IDXGIAdapter_GetParent(sys->dxgi_adapter, &IID_IDXGIFactory, (void**)&sys->dxgi_factory); ++ hr = IDXGIAdapter_GetParent(sys->dxgiadapter, &IID_IDXGIFactory, (void **)&sys->dxgifactory); + if (FAILED(hr)) { + msg_Err(vd, "Could not get the DXGI Factory. (hr=0x%lX)", hr); + return VLC_EGENERIC; + } + -+ hr = IDXGIFactory_CreateSwapChain(sys->dxgi_factory, (IUnknown*)sys->d3ddevice, &scd, &sys->dxgi_swapChain); ++#if VLC_WINSTORE_APP ++ hr = IDXGIFactory2_CreateSwapChainForComposition(sys->dxgifactory, (IUnknown *)sys->d3ddevice, &scd, NULL, &sys->dxgiswapChain); ++#else ++ hr = IDXGIFactory_CreateSwapChain(sys->dxgifactory, (IUnknown *)sys->d3ddevice, &scd, &sys->dxgiswapChain); ++#endif ++ + if (FAILED(hr)) { + msg_Err(vd, "Could not create the SwapChain. (hr=0x%lX)", hr); + return VLC_EGENERIC; + } + ++#if VLC_WINSTORE_APP /* avoided until we can deal with c++/cx in gcc */ ++ /* TODO: figure out how to get "ISwapChainPanel ^panel" into brokenpanel in gcc */ ++ ISwapChainPanel *brokenpanel; ++ ISwapChainPanelNative *panelNative; ++ hr = ISwapChainPanelNative_QueryInterface(brokenpanel, &IID_ISwapChainPanelNative, (void **)&pDXGIDevice); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not get the Native Panel. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++ hr = ISwapChainPanelNative_SetSwapChain(panelNative, sys->dxgiswapChain); ++ if (FAILED(hr)) { ++ msg_Err(vd, "Could not link the SwapChain with the Native Panel. (hr=0x%lX)", hr); ++ return VLC_EGENERIC; ++ } ++ ++#endif ++ ++#endif ++ +#endif + + UpdateRects(vd, NULL, NULL, true); @@ -743,8 +849,8 @@ index 0000000..2bdf30d + msg_Dbg(vd, "Direct3D11 device adapter closed"); +} + -+// add goto error in resources -+// seperate out into createshaders ++/* TODO : handle errors better ++ TODO : seperate out into smaller functions like createshaders */ +static int Direct3D11CreateResources(vout_display_t *vd, video_format_t *fmt) +{ + vout_display_sys_t *sys = vd->sys; @@ -754,7 +860,7 @@ index 0000000..2bdf30d + + fmt->i_chroma = sys->vlcFormat; + -+ hr = IDXGISwapChain_GetBuffer(sys->dxgi_swapChain, 0, &IID_ID3D11Texture2D, (LPVOID*)&pBackBuffer); ++ hr = IDXGISwapChain_GetBuffer(sys->dxgiswapChain, 0, &IID_ID3D11Texture2D, (LPVOID *)&pBackBuffer); + if (FAILED(hr)) { + msg_Err(vd, "Could not get the backbuffer from the Swapchain. (hr=0x%lX)", hr); + return VLC_EGENERIC; @@ -797,7 +903,7 @@ index 0000000..2bdf30d + depthViewDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; + depthViewDesc.Texture2D.MipSlice = 0; + -+ hr = ID3D11Device_CreateDepthStencilView(sys->d3ddevice, (ID3D11Resource*)pDepthStencil, &depthViewDesc, &sys->d3ddepthStencilView); ++ hr = ID3D11Device_CreateDepthStencilView(sys->d3ddevice, (ID3D11Resource *)pDepthStencil, &depthViewDesc, &sys->d3ddepthStencilView); + + ID3D11Texture2D_Release(pDepthStencil); + @@ -820,14 +926,17 @@ index 0000000..2bdf30d + + ID3DBlob* pVSBlob = NULL; + -+ // TODO : Match the version to the D3D_FEATURE_LEVEL -+ hr = sys->OurD3DCompile(globVertexShaderDefault, strlen(globVertexShaderDefault), NULL, NULL, NULL, "VS", "vs_5_0", 0, 0, &pVSBlob, NULL); ++ /* TODO : Match the version to the D3D_FEATURE_LEVEL */ ++ hr = D3DCompile(globVertexShaderDefault, strlen(globVertexShaderDefault), ++ NULL, NULL, NULL, "VS", "vs_4_0_level_9_1", 0, 0, &pVSBlob, NULL); ++ + if( FAILED(hr)) { + msg_Err(vd, "The Vertex Shader is invalid."); + return VLC_EGENERIC; + } + -+ hr = ID3D11Device_CreateVertexShader(sys->d3ddevice, (void *)ID3D10Blob_GetBufferPointer(pVSBlob), ID3D10Blob_GetBufferSize(pVSBlob), NULL, &sys->d3dvertexShader); ++ hr = ID3D11Device_CreateVertexShader(sys->d3ddevice, (void *)ID3D10Blob_GetBufferPointer(pVSBlob), ++ ID3D10Blob_GetBufferSize(pVSBlob), NULL, &sys->d3dvertexShader); + + if(FAILED(hr)) { + ID3D11Device_Release(pVSBlob); @@ -842,7 +951,7 @@ index 0000000..2bdf30d + + ID3D11InputLayout* pVertexLayout = NULL; + hr = ID3D11Device_CreateInputLayout(sys->d3ddevice, layout, 2, (void *)ID3D10Blob_GetBufferPointer(pVSBlob), -+ ID3D10Blob_GetBufferSize(pVSBlob), &pVertexLayout ); ++ ID3D10Blob_GetBufferSize(pVSBlob), &pVertexLayout); + + ID3D10Blob_Release(pVSBlob); + @@ -851,23 +960,26 @@ index 0000000..2bdf30d + return VLC_EGENERIC; + } + -+ ID3D11DeviceContext_IASetInputLayout(sys->d3dcontext, pVertexLayout ); ++ ID3D11DeviceContext_IASetInputLayout(sys->d3dcontext, pVertexLayout); + + ID3DBlob* pPSBlob = NULL; -+ // TODO : Match the version to the D3D_FEATURE_LEVEL ++ ++ /* TODO : Match the version to the D3D_FEATURE_LEVEL */ + if (sys->vlcFormat == VLC_CODEC_NV12) -+ hr = sys->OurD3DCompile(globPixelShaderBiplanarYUV2RGB, strlen(globPixelShaderBiplanarYUV2RGB), NULL, NULL, NULL, "PS", "ps_5_0", 0, 0, &pPSBlob, NULL); -+ else if (sys->vlcFormat == VLC_CODEC_YUYV) -+ hr = sys->OurD3DCompile(globPixelShaderTriplanarYUV2RGB, strlen(globPixelShaderTriplanarYUV2RGB), NULL, NULL, NULL, "PS", "ps_5_0", 0, 0, &pPSBlob, NULL); ++ hr = D3DCompile(globPixelShaderBiplanarYUV2RGB, strlen(globPixelShaderBiplanarYUV2RGB), ++ NULL, NULL, NULL, "PS", "ps_4_0_level_9_1", 0, 0, &pPSBlob, NULL); + else -+ hr = sys->OurD3DCompile(globPixelShaderDefault, strlen(globPixelShaderDefault), NULL, NULL, NULL, "PS", "ps_5_0", 0, 0, &pPSBlob, NULL); ++ hr = D3DCompile(globPixelShaderDefault, strlen(globPixelShaderDefault), ++ NULL, NULL, NULL, "PS", "ps_4_0_level_9_1", 0, 0, &pPSBlob, NULL); ++ + + if( FAILED(hr)) { + msg_Err(vd, "The Pixel Shader is invalid."); + return VLC_EGENERIC; + } + -+ hr = ID3D11Device_CreatePixelShader(sys->d3ddevice, (void *)ID3D10Blob_GetBufferPointer(pPSBlob), ID3D10Blob_GetBufferSize(pPSBlob), NULL, &sys->d3dpixelShader); ++ hr = ID3D11Device_CreatePixelShader(sys->d3ddevice, (void *)ID3D10Blob_GetBufferPointer(pPSBlob), ++ ID3D10Blob_GetBufferSize(pPSBlob), NULL, &sys->d3dpixelShader); + + ID3D10Blob_Release(pPSBlob); + @@ -895,7 +1007,7 @@ index 0000000..2bdf30d + InitData.pSysMem = vertices; + + ID3D11Buffer* pVertexBuffer = NULL; -+ hr = ID3D11Device_CreateBuffer(sys->d3ddevice, &bd, &InitData, &pVertexBuffer ); ++ hr = ID3D11Device_CreateBuffer(sys->d3ddevice, &bd, &InitData, &pVertexBuffer); + + if(FAILED(hr)) { + msg_Err(vd, "Failed to create vertex buffer."); @@ -914,19 +1026,19 @@ index 0000000..2bdf30d + }; + + bd.Usage = D3D11_USAGE_DEFAULT; -+ bd.ByteWidth = sizeof( WORD ) * 6; ++ bd.ByteWidth = sizeof(WORD)*6; + bd.BindFlags = D3D11_BIND_INDEX_BUFFER; + bd.CPUAccessFlags = 0; + InitData.pSysMem = indices; + + ID3D11Buffer* pIndexBuffer = NULL; -+ hr = ID3D11Device_CreateBuffer(sys->d3ddevice, &bd, &InitData, &pIndexBuffer ); ++ hr = ID3D11Device_CreateBuffer(sys->d3ddevice, &bd, &InitData, &pIndexBuffer); + if(FAILED(hr)) { + msg_Err(vd, "Failed to create index buffer."); + return VLC_EGENERIC; + } + -+ ID3D11DeviceContext_IASetIndexBuffer(sys->d3dcontext, pIndexBuffer, DXGI_FORMAT_R16_UINT, 0 ); ++ ID3D11DeviceContext_IASetIndexBuffer(sys->d3dcontext, pIndexBuffer, DXGI_FORMAT_R16_UINT, 0); + + ID3D11Buffer_Release(pVertexBuffer); + @@ -966,12 +1078,9 @@ index 0000000..2bdf30d + return VLC_EGENERIC; + } + -+ if (sys->vlcFormat == VLC_CODEC_NV12) ++ if (sys->vlcFormat == VLC_CODEC_NV12) { + resviewDesc.Format = DXGI_FORMAT_R8G8_UNORM; -+ -+ if (sys->vlcFormat == VLC_CODEC_NV12 || -+ sys->vlcFormat == VLC_CODEC_YUYV) { -+ hr = ID3D11Device_CreateShaderResourceView(sys->d3ddevice, (ID3D11Resource *)sys->d3dtexture, &resviewDesc, &sys->d3dresViewU); ++ hr = ID3D11Device_CreateShaderResourceView(sys->d3ddevice, (ID3D11Resource *)sys->d3dtexture, &resviewDesc, &sys->d3dresViewUV); + if (FAILED(hr)) { + if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); + msg_Err(vd, "Could not Create the U D3d11 Texture ResoureView. (hr=0x%lX)", hr); @@ -979,15 +1088,6 @@ index 0000000..2bdf30d + } + } + -+ if (sys->vlcFormat == VLC_CODEC_YUYV) { -+ hr = ID3D11Device_CreateShaderResourceView(sys->d3ddevice, (ID3D11Resource *)sys->d3dtexture, &resviewDesc, &sys->d3dresViewV); -+ if (FAILED(hr)) { -+ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); -+ msg_Err(vd, "Could not Create the V D3d11 Texture ResoureView. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ } -+ + D3D11_SAMPLER_DESC sampDesc; + memset(&sampDesc, 0, sizeof(sampDesc)); + sampDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_POINT; @@ -1012,7 +1112,7 @@ index 0000000..2bdf30d + return VLC_ENOMEM; + } + -+ picsys->surface = sys->d3dtexture; ++ picsys->texture = sys->d3dtexture; + picsys->context = sys->d3dcontext; + + picture_resource_t resource = { .p_sys = picsys }; @@ -1031,7 +1131,7 @@ index 0000000..2bdf30d + memset(&pool_cfg, 0, sizeof(pool_cfg)); + pool_cfg.picture_count = 1; + pool_cfg.picture = &picture; -+ pool_cfg.lock = Direct3D11MapSurface; ++ pool_cfg.lock = Direct3D11MapTexture; + + sys->pool = picture_pool_NewExtended(&pool_cfg); + if (!sys->pool) { @@ -1048,11 +1148,10 @@ index 0000000..2bdf30d +{ + vout_display_sys_t *sys = vd->sys; + -+ //Destroy Shaders -+ ++ /* TODO: Destroy Shaders? */ + if (sys->pool) { + picture_sys_t *picsys = sys->picsys; -+ ID3D11Texture2D_Release(picsys->surface); ++ ID3D11Texture2D_Release(picsys->texture); + picture_pool_Release(sys->pool); + } + sys->pool = NULL; @@ -1060,19 +1159,29 @@ index 0000000..2bdf30d + msg_Dbg(vd, "Direct3D11 resources destroyed"); +} + -+static int Direct3D11MapSurface(picture_t *picture) ++static int Direct3D11MapTexture(picture_t *picture) +{ + D3D11_MAPPED_SUBRESOURCE mappedResource; -+ ID3D11DeviceContext_Map(picture->p_sys->context, (ID3D11Resource*)picture->p_sys->surface, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); ++ ID3D11DeviceContext_Map(picture->p_sys->context, (ID3D11Resource *)picture->p_sys->texture, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); + CommonUpdatePicture(picture, NULL, mappedResource.pData, mappedResource.RowPitch); -+ ID3D11DeviceContext_Unmap(picture->p_sys->context,(ID3D11Resource*)picture->p_sys->surface, 0); ++ ID3D11DeviceContext_Unmap(picture->p_sys->context,(ID3D11Resource *)picture->p_sys->texture, 0); + return VLC_SUCCESS; +} diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c -index 866b279..cd005d8 100644 +index 866b279..4711326 100644 --- a/modules/video_output/msw/events.c +++ b/modules/video_output/msw/events.c -@@ -620,7 +620,7 @@ static void MouseReleased( event_thread_t *p_event, unsigned button ) +@@ -4,7 +4,8 @@ + * Copyright (C) 2001-2009 VLC authors and VideoLAN + * $Id$ + * +- * Authors: Gildas Bazin ++ * Authors: Martell Malone , ++ * Gildas Bazin + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by +@@ -620,7 +621,7 @@ static void MouseReleased( event_thread_t *p_event, unsigned button ) vout_display_SendEventMouseReleased( p_event->vd, button ); } @@ -1081,7 +1190,7 @@ index 866b279..cd005d8 100644 static int CALLBACK enumWindowsProc(HWND hwnd, LPARAM lParam) { -@@ -681,7 +681,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event ) +@@ -681,7 +682,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event ) /* Get this module's instance */ hInstance = GetModuleHandle(NULL); @@ -1090,7 +1199,7 @@ index 866b279..cd005d8 100644 if( !p_event->use_desktop ) #endif { -@@ -692,7 +692,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event ) +@@ -692,7 +693,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event ) else p_event->hparent = NULL; } @@ -1099,7 +1208,19 @@ index 866b279..cd005d8 100644 else { vout_display_DeleteWindow(vd, NULL); -@@ -865,14 +865,14 @@ static void Win32VoutCloseWindow( event_thread_t *p_event ) +@@ -719,7 +720,11 @@ static int Win32VoutCreateWindow( event_thread_t *p_event ) + wc.hIcon = p_event->vlc_icon; /* load the vlc big icon */ + wc.hCursor = p_event->is_cursor_hidden ? p_event->cursor_empty : + p_event->cursor_arrow; ++#if !VLC_WINSTORE_APP + wc.hbrBackground = GetStockObject(BLACK_BRUSH); /* background color */ ++#else ++ wc.hbrBackground = NULL; ++#endif + wc.lpszMenuName = NULL; /* no menu */ + wc.lpszClassName = p_event->class_main; /* use a special class */ + +@@ -865,14 +870,14 @@ static void Win32VoutCloseWindow( event_thread_t *p_event ) vout_display_t *vd = p_event->vd; msg_Dbg( vd, "Win32VoutCloseWindow" ); @@ -1117,5 +1238,5 @@ index 866b279..cd005d8 100644 #endif vout_display_DeleteWindow( vd, p_event->parent_window ); -- -2.3.0 +2.3.1 diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index ddc6bb5b99..33ed07c54c 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.59855.ab2ba6e +pkgver=3.0.0.60014.fd21eb0 pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -131,7 +131,7 @@ md5sums=('SKIP' 'b6a010849631177493135b3ad7c5f784' 'dc623f31cffed63092b192b24ab86f0d' '298500eb00df672e5088c15a2822792b' - 'cc3344399325f45d0e9f0efe45406c8c') + '4b7e57474dd2225a3a94e3c18279ddc4') pkgver() { cd $_realname From 89a5340a553c253efdaab739ad39926a9bd9ae25 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 4 Mar 2015 00:48:22 +0300 Subject: [PATCH 0611/2060] jsoncpp: Update to 1.4.4 --- mingw-w64-jsoncpp/PKGBUILD | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/mingw-w64-jsoncpp/PKGBUILD b/mingw-w64-jsoncpp/PKGBUILD index 685f24702e..fa0b0c7ddc 100644 --- a/mingw-w64-jsoncpp/PKGBUILD +++ b/mingw-w64-jsoncpp/PKGBUILD @@ -2,22 +2,19 @@ _realname=jsoncpp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.0 +pkgver=1.4.4 pkgrel=1 pkgdesc="A C++ library for interacting with JSON (mingw-w64)" arch=('any') url="https://github.com/open-source-parsers/jsoncpp" license=('MIT') - makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-python2" ) - options=('staticlibs' '!strip' '!buildflags') - source=("https://github.com/open-source-parsers/jsoncpp/archive/$pkgver.tar.gz") -md5sums=('50a2dd1cf84a7870584a786f069fc059') +md5sums=('741b97e374bfd357b30cfcfe232d1914') build() { mkdir "${srcdir}/build-${CARCH}" From 9b2b7545537fe5c5d8299711d9a2b3f042a5b1a0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 4 Mar 2015 00:49:06 +0300 Subject: [PATCH 0612/2060] libxml++: Update to 2.38.0 --- mingw-w64-libxml++/PKGBUILD | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libxml++/PKGBUILD b/mingw-w64-libxml++/PKGBUILD index 600a990360..b1adffc5e3 100644 --- a/mingw-w64-libxml++/PKGBUILD +++ b/mingw-w64-libxml++/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=libxml++ - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.37.1 +pkgver=2.38.0 pkgrel=1 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -14,7 +13,7 @@ options=('strip' 'staticlibs') license=('LGPL') url="http://libxmlplusplus.sourceforge.net/" source=("http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") -md5sums=('2f9372a6eba6e40206c11f558a8fbc32') +md5sums=('36c2c7a8b7a09aa2118c70a0d51bf4b1') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From aa7944caa48eb892b52a4f59020ea9efd1f54eb0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 4 Mar 2015 21:06:07 +0300 Subject: [PATCH 0613/2060] opencv: Update to 2.4.11 --- mingw-w64-opencv/PKGBUILD | 19 ++++++-------- mingw-w64-opencv/mingw-w64-cmake.patch | 33 ------------------------- mingw-w64-opencv/upstream-40efd17.patch | 25 ------------------- 3 files changed, 8 insertions(+), 69 deletions(-) delete mode 100644 mingw-w64-opencv/upstream-40efd17.patch diff --git a/mingw-w64-opencv/PKGBUILD b/mingw-w64-opencv/PKGBUILD index e101f0bbed..eadfea712e 100644 --- a/mingw-w64-opencv/PKGBUILD +++ b/mingw-w64-opencv/PKGBUILD @@ -2,18 +2,18 @@ _realname=opencv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.4.10 -pkgrel=2 +pkgver=2.4.11 +pkgrel=1 pkgdesc="Open Source Computer Vision Library (mingw-w64)" arch=('any') url="http://opencv.org/" depends=(#"${MINGW_PACKAGE_PREFIX}-gst-plugins-base0.10" + "${MINGW_PACKAGE_PREFIX}-intel-tbb" + "${MINGW_PACKAGE_PREFIX}-jasper" "${MINGW_PACKAGE_PREFIX}-libjpeg" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-jasper" "${MINGW_PACKAGE_PREFIX}-openexr" - "${MINGW_PACKAGE_PREFIX}-intel-tbb" "${MINGW_PACKAGE_PREFIX}-zlib" #"${MINGW_PACKAGE_PREFIX}-qt5" #"${MINGW_PACKAGE_PREFIX}-gtkglext" @@ -34,13 +34,11 @@ source=(#"http://downloads.sourceforge.net/opencvlibrary/${_realname}-$pkgver.zi https://github.com/Itseez/opencv/archive/$pkgver.tar.gz 'mingw-w64-cmake.patch' 'free-tls-keys-on-dll-unload.patch' - 'solve_deg3-underflow.patch' - 'upstream-40efd17.patch') -md5sums=('3346a59310d788d3845f4fd6043a108a' - '94672506dd30d8113904cd0514047da7' + 'solve_deg3-underflow.patch') +md5sums=('fa06384719cb0be48183b4de972f0b2a' + '7d1bcc9f01753cf2c38fbe45b0c7cb82' '91fcecdc23a870cafad6f51c2a45e647' - 'ae03a59cf1202d5eafa94c2aac419ae6' - '4099f3949fc7215d34e5ef09d6bbe36c') + 'ae03a59cf1202d5eafa94c2aac419ae6') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -48,7 +46,6 @@ prepare() { patch -Np1 -i "$srcdir/mingw-w64-cmake.patch" patch -Np1 -i "$srcdir/free-tls-keys-on-dll-unload.patch" patch -Np1 -i "$srcdir/solve_deg3-underflow.patch" - patch -Np1 -i "$srcdir/upstream-40efd17.patch" } build() { diff --git a/mingw-w64-opencv/mingw-w64-cmake.patch b/mingw-w64-opencv/mingw-w64-cmake.patch index 12fd266ee9..c95a671cd8 100644 --- a/mingw-w64-opencv/mingw-w64-cmake.patch +++ b/mingw-w64-opencv/mingw-w64-cmake.patch @@ -46,39 +46,6 @@ diff -Naur a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake diff -Naur a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake --- a/cmake/OpenCVGenPkgconfig.cmake 2014-10-01 14:33:36.000000000 +0700 +++ b/cmake/OpenCVGenPkgconfig.cmake 2014-10-02 23:18:25.505210700 +0700 -@@ -10,7 +10,7 @@ - # ------------------------------------------------------------------------------------------- - set(prefix "${CMAKE_INSTALL_PREFIX}") - set(exec_prefix "\${prefix}") --set(libdir "") #TODO: need link paths for OpenCV_EXTRA_COMPONENTS -+set(libdir "\${prefix}/${OPENCV_LIB_INSTALL_PATH}") - set(includedir "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}") - - if(CMAKE_BUILD_TYPE MATCHES "Release") -@@ -35,10 +35,11 @@ - ocv_list_reverse(OpenCV_EXTRA_COMPONENTS) - - #build the list of components --set(OpenCV_LIB_COMPONENTS_ "") -+set(OpenCV_LIB_COMPONENTS_ "-L\${libdir}") - foreach(CVLib ${OpenCV_LIB_COMPONENTS}) - get_target_property(libpath ${CVLib} LOCATION_${CMAKE_BUILD_TYPE}) - get_filename_component(libname "${libpath}" NAME) -+ get_filename_component(lname "${libpath}" NAME_WE) - - if(INSTALL_TO_MANGLED_PATHS) - set(libname "${libname}.${OPENCV_VERSION}") -@@ -51,7 +52,9 @@ - set(installDir "${OPENCV_LIB_INSTALL_PATH}") - endif() - -- set(OpenCV_LIB_COMPONENTS_ "${OpenCV_LIB_COMPONENTS_} \${exec_prefix}/${installDir}/${libname}") -+ string(REPLACE "libopencv" "-lopencv" lname "${lname}") -+ string(REPLACE "${OPENCV_DLLVERSION}" "" lname "${lname}") -+ set(OpenCV_LIB_COMPONENTS_ "${OpenCV_LIB_COMPONENTS_} ${lname}") - endforeach() - - # add extra dependencies required for OpenCV @@ -80,6 +83,6 @@ "${CMAKE_BINARY_DIR}/unix-install/${OPENCV_PC_FILE_NAME}" @ONLY) diff --git a/mingw-w64-opencv/upstream-40efd17.patch b/mingw-w64-opencv/upstream-40efd17.patch deleted file mode 100644 index 9cfd19af9b..0000000000 --- a/mingw-w64-opencv/upstream-40efd17.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0f2b7fbc451a34c9eba34616e726985b7a0d14b1 Mon Sep 17 00:00:00 2001 -From: Anatoly Baksheev -Date: Sat, 18 Oct 2014 18:12:36 +0400 -Subject: [PATCH] viz: fixed memory leak, issue 3961 - ---- - modules/viz/src/vtk/vtkImageMatSource.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/modules/viz/src/vtk/vtkImageMatSource.cpp b/modules/viz/src/vtk/vtkImageMatSource.cpp -index 58a5642..6586175 100644 ---- a/modules/viz/src/vtk/vtkImageMatSource.cpp -+++ b/modules/viz/src/vtk/vtkImageMatSource.cpp -@@ -52,7 +52,7 @@ namespace cv { namespace viz - cv::viz::vtkImageMatSource::vtkImageMatSource() - { - this->SetNumberOfInputPorts(0); -- this->ImageData = vtkImageData::New(); -+ this->ImageData = vtkSmartPointer::New(); - } - - int cv::viz::vtkImageMatSource::RequestInformation(vtkInformation *, vtkInformationVector**, vtkInformationVector *outputVector) --- -1.8.3.msysgit.0 - From c66a8307864bb7743fb5490598c1a07968470a75 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 4 Mar 2015 21:06:55 +0300 Subject: [PATCH 0614/2060] openimageio: Update to 1.5.12 --- mingw-w64-openimageio/PKGBUILD | 6 +- mingw-w64-openimageio/fix-mingw-w64.patch | 68 +++++------------------ 2 files changed, 16 insertions(+), 58 deletions(-) diff --git a/mingw-w64-openimageio/PKGBUILD b/mingw-w64-openimageio/PKGBUILD index 06f0c8a515..647e0ba47a 100644 --- a/mingw-w64-openimageio/PKGBUILD +++ b/mingw-w64-openimageio/PKGBUILD @@ -2,7 +2,7 @@ _realname=openimageio pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.15 +pkgver=1.5.12 pkgrel=1 pkgdesc="A library for reading and writing images, including classes, utilities, and applications (mingw-w64)" arch=('any') @@ -36,8 +36,8 @@ options=('strip' 'buildflags') source=(https://github.com/OpenImageIO/oiio/archive/Release-$pkgver.tar.gz fix-mingw-w64.patch workaround-ansidecl-h-PTR-define-conflict.patch) -md5sums=('8911cf6103e9fe3638912908bb4faa19' - 'babd1767de324a53cb50d2a74a1ac2ae' +md5sums=('9139027f4030e7103ea8b1557dfcb210' + '58f3082fc728e7cc3ba6ec4d4368e4fe' '1bf4c840ee73d37ebdfc98d3ea527ed4') prepare() { diff --git a/mingw-w64-openimageio/fix-mingw-w64.patch b/mingw-w64-openimageio/fix-mingw-w64.patch index 65d0f18b59..04145ab091 100644 --- a/mingw-w64-openimageio/fix-mingw-w64.patch +++ b/mingw-w64-openimageio/fix-mingw-w64.patch @@ -9,46 +9,17 @@ if (VERBOSE) message (STATUS "Boost found ${Boost_FOUND} ") message (STATUS "Boost version ${Boost_VERSION}") ---- a/src/include/OpenImageIO/fmath.h -+++ b/src/include/OpenImageIO/fmath.h -@@ -46,6 +46,7 @@ - #include - #include - #include -+#include - - #if defined(_MSC_VER) && _MSC_VER < 1600 - typedef __int8 int8_t; -@@ -912,7 +913,7 @@ - +--- a/src/include/OpenImageIO/missing_math.h ++++ b/src/include/OpenImageIO/missing_math.h +@@ -106,7 +106,7 @@ + OIIO_NAMESPACE_ENTER { -#ifdef _WIN32 +#if defined(_WIN32) && !defined(__GNUC__) // Windows doesn't define these functions from math.h #define hypotf _hypotf #define copysign(x,y) _copysign(x,y) -@@ -1065,7 +1066,7 @@ - #endif /* _WIN32 */ - - --#ifndef _MSC_VER -+#ifdef __GNUC__ - // Some systems have isnan, isinf and isfinite in the std namespace. - // FIXME: remove these later - using std::isnan; -@@ -1277,9 +1278,11 @@ - // For certain platforms, direct them to use OIIO's implementations. - - #ifdef _WIN32 -+#ifndef __GNUC__ - using OIIO::truncf; - using OIIO::log2f; - using OIIO::exp2f; -+#endif - # if defined(_MSC_VER) && _MSC_VER < 1800 /* Needed for MSVS prior to 2013 */ - using OIIO::isnan; - using OIIO::isfinite; --- a/src/include/OpenImageIO/osdep.h +++ b/src/include/OpenImageIO/osdep.h @@ -33,7 +33,9 @@ @@ -92,28 +63,6 @@ #include ---- a/src/libOpenImageIO/imagebufalgo.cpp -+++ b/src/libOpenImageIO/imagebufalgo.cpp -@@ -47,6 +47,7 @@ - #include - #include - #include -+#include - - #include "imagebuf.h" - #include "imagebufalgo.h" -@@ -1313,9 +1313,9 @@ - if (error) - continue; // ignore errors - // now, draw to our target surface -- for (int j = 0; j < slot->bitmap.rows; ++j) { -+ for (unsigned int j = 0; j < slot->bitmap.rows; ++j) { - int ry = y + j - slot->bitmap_top; -- for (int i = 0; i < slot->bitmap.width; ++i) { -+ for (unsigned int i = 0; i < slot->bitmap.width; ++i) { - int rx = x + i + slot->bitmap_left; - float b = slot->bitmap.buffer[slot->bitmap.pitch*j+i] / 255.0f; - R.getpixel (rx, ry, pixelcolor); --- a/src/libOpenImageIO/imageinput.cpp +++ b/src/libOpenImageIO/imageinput.cpp @@ -32,6 +32,7 @@ @@ -291,6 +240,15 @@ --- a/CMakeLists.txt 2013-12-30 01:06:13.042400000 +0400 +++ b/CMakeLists.txt 2013-12-30 01:06:22.293200000 +0400 +@@ -70,7 +70,7 @@ + # include_directories(SYSTEM...) when using clang or gcc. + set (CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ") + # Ensure this macro is set for stdint.h +- add_definitions ("-D__STDC_LIMIT_MACROS") ++ add_definitions ("-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS") + # this allows native instructions to be used for sqrtf instead of a function call + add_definitions ("-fno-math-errno") + endif () @@ -423,7 +423,7 @@ set (CPACK_GENERATOR "TGZ;STGZ;PackageMaker") set (CPACK_SOURCE_GENERATOR "TGZ") From c48f106b916f48ae7d386cf3cee4b3b441b12d90 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 4 Mar 2015 21:20:25 +0300 Subject: [PATCH 0615/2060] gst-plugins-bad: Rebuild with new opencv. --- mingw-w64-gst-plugins-bad/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gst-plugins-bad/PKGBUILD b/mingw-w64-gst-plugins-bad/PKGBUILD index afe1e8c455..c44596d032 100644 --- a/mingw-w64-gst-plugins-bad/PKGBUILD +++ b/mingw-w64-gst-plugins-bad/PKGBUILD @@ -3,7 +3,7 @@ _realname=gst-plugins-bad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.5 -pkgrel=1 +pkgrel=2 pkgdesc="GStreamer Multimedia Framework Bad Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" From dbdb0bb4d6d702d99a2153a8c36e8333d566aae4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Mar 2015 00:42:24 +0300 Subject: [PATCH 0616/2060] glib2: Rebuild --- mingw-w64-glib2/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 39c9196d3f..18ff8022f1 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -4,7 +4,7 @@ _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.42.2 -pkgrel=1 +pkgrel=2 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" From 20b2a54b7d7af5d69aa78b824300ae862e729a8a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Mar 2015 00:42:45 +0300 Subject: [PATCH 0617/2060] gtk2: Update to 2.24.27 --- mingw-w64-gtk2/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gtk2/PKGBUILD b/mingw-w64-gtk2/PKGBUILD index a5d4f22586..fc82460162 100644 --- a/mingw-w64-gtk2/PKGBUILD +++ b/mingw-w64-gtk2/PKGBUILD @@ -3,8 +3,8 @@ _realname=gtk2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.24.26 -pkgrel=2 +pkgver=2.24.27 +pkgrel=1 pkgdesc="GTK+ is a multi-platform toolkit (v2) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -40,7 +40,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0011-gir-for-gdkwin32.mingw.patch 0012-embed-manifest.all.patch) -md5sums=('4610cc60ff96073b83dc7de254bdaf38' +md5sums=('b1e890e15602c5bcb40d85b13fe046fd' '5105b21ea13dbfbef8975138b4355e7a' '4f4a6df623209e301b77a0e486f8c43d' '6a40366ed05024e1e93dbb9788c6747e' From a70906b35fbc5a63310b006274f5b20e9d483875 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Mar 2015 10:02:31 +0300 Subject: [PATCH 0618/2060] intel-tbb: Update to 4.3.20150209 --- mingw-w64-intel-tbb/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-intel-tbb/PKGBUILD b/mingw-w64-intel-tbb/PKGBUILD index 2478b755b9..02c1934b48 100644 --- a/mingw-w64-intel-tbb/PKGBUILD +++ b/mingw-w64-intel-tbb/PKGBUILD @@ -2,7 +2,7 @@ _realname=intel-tbb pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.3_20141023 +pkgver=4.3_20150209 pkgrel=1 pkgdesc='High level abstract threading library (mingw-w64)' depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") @@ -13,7 +13,7 @@ url='http://www.threadingbuildingblocks.org/' license=('GPL') source=("http://threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb${pkgver/\./}oss_src.tgz" 'tbb-disable_windows_api.patch') -sha1sums=('aaecdc97049fbe3c623be46c4e1261b74a1a41a3' +sha1sums=('cb17bee2a9c98a2b98f3ff16208c1c1fae29e6ab' '13784f69be6915a0e9d751bfa5b6cc0166449ac7') prepare () { From d3e2fa672dc67271165919be5c94168424086f41 Mon Sep 17 00:00:00 2001 From: John Stowers Date: Thu, 5 Mar 2015 12:03:38 +0100 Subject: [PATCH 0619/2060] poco: fix tarball location --- mingw-w64-poco/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-poco/PKGBUILD b/mingw-w64-poco/PKGBUILD index 17d9a23b39..98fb53676e 100644 --- a/mingw-w64-poco/PKGBUILD +++ b/mingw-w64-poco/PKGBUILD @@ -17,7 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-sqlite3" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') -source=(https://github.com/pocoproject/poco/archive/${_realname}-${pkgver}-release.tar.gz +source=(https://codeload.github.com/pocoproject/poco/tar.gz/${_realname}-${pkgver}-release 001-WIN32-defines-instead-hardcoded-values.patch 002-enable-C++11-if-compiler-supports-it.patch 003-check-for-WIN64-and-enable-LLP64-schema.patch From c133805341ff40b262298893e13afd312da58183 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Mar 2015 12:23:44 +0300 Subject: [PATCH 0620/2060] cython: Update to 0.22 --- mingw-w64-cython/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-cython/PKGBUILD b/mingw-w64-cython/PKGBUILD index 7241ad1bfd..a09c565dd6 100644 --- a/mingw-w64-cython/PKGBUILD +++ b/mingw-w64-cython/PKGBUILD @@ -3,8 +3,8 @@ _realname=cython pkgname=("${MINGW_PACKAGE_PREFIX}-cython" "${MINGW_PACKAGE_PREFIX}-cython2") -pkgver=0.21 -pkgrel=2 +pkgver=0.22 +pkgrel=1 pkgdesc="C-Extensions for Python (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -16,7 +16,7 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-gcc" ) source=("http://cython.org/release/Cython-$pkgver.tar.gz") -md5sums=('6c9c4d19ba485fe8cd88e23b57ac7886') +md5sums=('1ae25add4ef7b63ee9b4af697300d6b6') prepare() { cp -a $_realname-$pkgver $_realname-py2-$pkgver-${CARCH} From 7c3190394fe62e19d7d051604b77c8c03696fd98 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Mar 2015 12:24:58 +0300 Subject: [PATCH 0621/2060] libidn: Update to 1.30 --- mingw-w64-libidn/PKGBUILD | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mingw-w64-libidn/PKGBUILD b/mingw-w64-libidn/PKGBUILD index 19758b5f44..9d25812340 100644 --- a/mingw-w64-libidn/PKGBUILD +++ b/mingw-w64-libidn/PKGBUILD @@ -2,19 +2,19 @@ _realname=libidn pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.29 +pkgver=1.30 pkgrel=1 pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libidn" license=("GPL3, LGPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gtk-doc") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "gtk-doc") depends=("${MINGW_PACKAGE_PREFIX}-gettext") options=('staticlibs' 'strip') source=("ftp://ftp.gnu.org/gnu/libidn/libidn-${pkgver}.tar.gz" - 0001-fix-gtkdoc.all.patch - 0002-fix-gdoc.all.patch) -sha1sums=('e0959eec9a03fd8053379b0aeab447c546c05ab2' + 0001-fix-gtkdoc.all.patch + 0002-fix-gdoc.all.patch) +sha1sums=('557e1e37f0978e975b21bcdc243c198cb708bb75' '42baea83d76aeaa99e50f551d98dade8a5394fe3' '730dfdfdf3c2878113224c104f9c6c213010d7f0') @@ -38,6 +38,7 @@ build() { --disable-csharp \ --disable-java \ --enable-threads=win32 + make } From 6a88b72f69e71c55172922e626c81c4634ce2ae2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Mar 2015 15:44:18 +0300 Subject: [PATCH 0622/2060] openshadinglanguage-git: Upgrade to git SHA [9eef4a8] --- .../0001-mingw-w64-fix.patch | 55 ---------------- .../0004-use-find_package-for-LLVM.patch | 23 ------- ...-Fix-weird-array-out-of-bounds-error.patch | 21 ------- .../0008-Install-dlls.patch | 38 ------------ .../0009-Fix-shader_is_defined.patch | 11 ---- .../0009-llvm-35.patch | 38 ------------ .../0010-fix-compare-ints.patch | 55 ---------------- mingw-w64-openshadinglanguage-git/PKGBUILD | 62 +++++++------------ 8 files changed, 23 insertions(+), 280 deletions(-) delete mode 100644 mingw-w64-openshadinglanguage-git/0001-mingw-w64-fix.patch delete mode 100644 mingw-w64-openshadinglanguage-git/0004-use-find_package-for-LLVM.patch delete mode 100644 mingw-w64-openshadinglanguage-git/0006-Fix-weird-array-out-of-bounds-error.patch delete mode 100644 mingw-w64-openshadinglanguage-git/0008-Install-dlls.patch delete mode 100644 mingw-w64-openshadinglanguage-git/0009-Fix-shader_is_defined.patch delete mode 100644 mingw-w64-openshadinglanguage-git/0009-llvm-35.patch delete mode 100644 mingw-w64-openshadinglanguage-git/0010-fix-compare-ints.patch diff --git a/mingw-w64-openshadinglanguage-git/0001-mingw-w64-fix.patch b/mingw-w64-openshadinglanguage-git/0001-mingw-w64-fix.patch deleted file mode 100644 index cd84a7a1ab..0000000000 --- a/mingw-w64-openshadinglanguage-git/0001-mingw-w64-fix.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- OpenShadingLanguage-Release-1.4.0/src/liboslcomp/CMakeLists.txt.orig 2013-12-30 03:09:12.982200000 +0400 -+++ OpenShadingLanguage-Release-1.4.0/src/liboslcomp/CMakeLists.txt 2013-12-30 03:09:24.869400000 +0400 -@@ -23,9 +23,4 @@ - TARGET_LINK_LIBRARIES ( oslcomp ${OPENIMAGEIO_LIBRARY} ${Boost_LIBRARIES} ${CMAKE_DL_LIBS}) - LINK_ILMBASE ( oslcomp ) - --if (BUILDSTATIC) -- INSTALL ( TARGETS oslcomp LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) --else () -- INSTALL ( TARGETS oslcomp LIBRARY DESTINATION lib ) --endif () -- -+INSTALL ( TARGETS oslcomp LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) ---- OpenShadingLanguage-Release-1.4.0/src/liboslquery/CMakeLists.txt.orig 2013-11-25 22:41:29.000000000 +0400 -+++ OpenShadingLanguage-Release-1.4.0/src/liboslquery/CMakeLists.txt 2013-12-30 03:16:20.074200000 +0400 -@@ -14,8 +14,4 @@ - TARGET_LINK_LIBRARIES ( oslquery ${OPENIMAGEIO_LIBRARY} ${Boost_LIBRARIES} ) - LINK_ILMBASE ( oslquery ) - --if (BUILDSTATIC) -- INSTALL ( TARGETS oslquery LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) --else () -- INSTALL ( TARGETS oslquery LIBRARY DESTINATION lib ) --endif () -+INSTALL ( TARGETS oslquery LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) ---- OpenShadingLanguage-Release-1.4.0/src/liboslexec/CMakeLists.txt.orig 2013-12-30 03:15:11.207600000 +0400 -+++ OpenShadingLanguage-Release-1.4.0/src/liboslexec/CMakeLists.txt 2013-12-30 03:15:43.577600000 +0400 -@@ -129,11 +129,7 @@ - ADD_DEPENDENCIES (oslexec "${CMAKE_CURRENT_SOURCE_DIR}/liboslcexec.map") - LINK_ILMBASE ( oslexec ) - --if (BUILDSTATIC) -- INSTALL ( TARGETS oslexec LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) --else () -- INSTALL ( TARGETS oslexec LIBRARY DESTINATION lib ) --endif () -+INSTALL ( TARGETS oslexec LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) - - # Unit tests - add_executable (closure_test closure_test.cpp) ---- OpenShadingLanguage-Release-1.4.0/src/testshade/CMakeLists.txt.orig 2013-12-30 03:16:54.039600000 +0400 -+++ OpenShadingLanguage-Release-1.4.0/src/testshade/CMakeLists.txt 2013-12-30 03:17:18.561400000 +0400 -@@ -15,11 +15,7 @@ - TARGET_LINK_LIBRARIES (libtestshade oslexec oslcomp oslquery ${OPENIMAGEIO_LIBRARY} ${Boost_LIBRARIES} ${CMAKE_DL_LIBS} ${LLVM_LIBRARY} ) - SET_TARGET_PROPERTIES (libtestshade PROPERTIES PREFIX "") - --if (BUILDSTATIC) -- INSTALL ( TARGETS libtestshade LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) --else () -- INSTALL (TARGETS libtestshade LIBRARY DESTINATION lib ) --endif () -+INSTALL ( TARGETS libtestshade LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) - - # The 'testshade_dso' executable - ADD_EXECUTABLE ( testshade_dso testshade_dso.cpp ) diff --git a/mingw-w64-openshadinglanguage-git/0004-use-find_package-for-LLVM.patch b/mingw-w64-openshadinglanguage-git/0004-use-find_package-for-LLVM.patch deleted file mode 100644 index d9cb3e7ab1..0000000000 --- a/mingw-w64-openshadinglanguage-git/0004-use-find_package-for-LLVM.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- OpenShadingLanguage-Release-1.4.0/src/liboslexec/CMakeLists.txt.orig 2014-01-06 01:46:24.519674100 +0000 -+++ OpenShadingLanguage-Release-1.4.0/src/liboslexec/CMakeLists.txt 2014-01-06 01:46:49.636363500 +0000 -@@ -68,6 +68,20 @@ - LIST (APPEND LLVM_COMPILE_FLAGS "-D${def}") - endforeach() - -+ # From http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project -+ find_package(LLVM) -+ -+ if( NOT LLVM_FOUND ) -+ message(FATAL_ERROR "LLVM package can't be found. Set CMAKE_PREFIX_PATH variable to LLVM's installation prefix.") -+ endif() -+ -+ include_directories( ${LLVM_INCLUDE_DIRS} ) -+ link_directories( ${LLVM_LIBRARY_DIRS} ) -+ -+ llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit native) -+ -+ target_link_libraries(${REQ_LLVM_LIBRARIES}) -+ - # First try looking in their build (clang++ first, then llvm-g++) - FIND_PROGRAM(LLVM_BC_GENERATOR NAMES "clang++" "llvm-g++" PATHS "${LLVM_DIRECTORY}/bin" NO_DEFAULT_PATH NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH) - diff --git a/mingw-w64-openshadinglanguage-git/0006-Fix-weird-array-out-of-bounds-error.patch b/mingw-w64-openshadinglanguage-git/0006-Fix-weird-array-out-of-bounds-error.patch deleted file mode 100644 index 189c880edd..0000000000 --- a/mingw-w64-openshadinglanguage-git/0006-Fix-weird-array-out-of-bounds-error.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- openshadinglanguage/src/liboslexec/llvm_ops.cpp.orig 2014-01-08 03:14:01.832821800 +0000 -+++ openshadinglanguage/src/liboslexec/llvm_ops.cpp 2014-01-08 03:14:27.816307900 +0000 -@@ -1388,14 +1388,15 @@ - ((float *)alpha)[0] = local_result[chans]; - - // Correct our str texture space gradients into xyz-space gradients -+ int max_chans = std::min(chans, 4); - if (dresultdx) -- for (int i = 0; i < chans; ++i) -+ for (int i = 0; i < max_chans; ++i) - ((float *)dresultdx)[i] = dresultds[i] * dPdx[0] + dresultdt[i] * dPdx[1] + dresultdr[i] * dPdx[2]; - if (dresultdy) -- for (int i = 0; i < chans; ++i) -+ for (int i = 0; i < max_chans; ++i) - ((float *)dresultdy)[i] = dresultds[i] * dPdy[0] + dresultdt[i] * dPdy[1] + dresultdr[i] * dPdy[2]; - if (dresultdz) -- for (int i = 0; i < chans; ++i) -+ for (int i = 0; i < max_chans; ++i) - ((float *)dresultdz)[i] = dresultds[i] * dPdz[0] + dresultdt[i] * dPdz[1] + dresultdr[i] * dPdz[2]; - if (dalphadx) - ((float *)dalphadx)[0] = dresultds[chans] * dPdx[0] + dresultdt[chans] * dPdx[1] + dresultdr[chans] * dPdx[2]; diff --git a/mingw-w64-openshadinglanguage-git/0008-Install-dlls.patch b/mingw-w64-openshadinglanguage-git/0008-Install-dlls.patch deleted file mode 100644 index 460c77e065..0000000000 --- a/mingw-w64-openshadinglanguage-git/0008-Install-dlls.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- openshadinglanguage/src/liboslcomp/CMakeLists.txt.orig 2014-01-08 18:46:41.676194700 +0000 -+++ openshadinglanguage/src/liboslcomp/CMakeLists.txt 2014-01-08 19:11:05.339740900 +0000 -@@ -23,4 +23,4 @@ - TARGET_LINK_LIBRARIES ( oslcomp ${OPENIMAGEIO_LIBRARY} ${Boost_LIBRARIES} ${CMAKE_DL_LIBS}) - LINK_ILMBASE ( oslcomp ) - --INSTALL ( TARGETS oslcomp LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) -+INSTALL ( TARGETS oslcomp LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin) ---- openshadinglanguage/src/liboslexec/CMakeLists.txt.orig 2014-01-08 18:46:41.743201400 +0000 -+++ openshadinglanguage/src/liboslexec/CMakeLists.txt 2014-01-08 19:10:57.563740900 +0000 -@@ -136,7 +136,7 @@ - ADD_DEPENDENCIES (oslexec "${CMAKE_CURRENT_SOURCE_DIR}/liboslcexec.map") - LINK_ILMBASE ( oslexec ) - --INSTALL ( TARGETS oslexec LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) -+INSTALL ( TARGETS oslexec LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin) - - # Unit tests - add_executable (accum_test accum_test.cpp) ---- openshadinglanguage/src/testshade/CMakeLists.txt.orig 2014-01-08 18:46:41.679195000 +0000 -+++ openshadinglanguage/src/testshade/CMakeLists.txt 2014-01-08 19:11:39.321740900 +0000 -@@ -14,7 +14,7 @@ - TARGET_LINK_LIBRARIES (libtestshade oslexec oslcomp oslquery ${OPENIMAGEIO_LIBRARY} ${Boost_LIBRARIES} ${CMAKE_DL_LIBS} ${LLVM_LIBRARY} ) - SET_TARGET_PROPERTIES (libtestshade PROPERTIES PREFIX "") - --INSTALL ( TARGETS libtestshade LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) -+INSTALL ( TARGETS libtestshade LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin) - - # The 'testshade_dso' executable - ADD_EXECUTABLE ( testshade_dso testshade_dso.cpp ) ---- openshadinglanguage/src/liboslquery/CMakeLists.txt.orig 2014-01-08 18:46:41.679195000 +0000 -+++ openshadinglanguage/src/liboslquery/CMakeLists.txt 2014-01-08 19:11:39.321740900 +0000 -@@ -14,4 +14,4 @@ - TARGET_LINK_LIBRARIES ( oslquery ${OPENIMAGEIO_LIBRARY} ${Boost_LIBRARIES} ) - LINK_ILMBASE ( oslquery ) - --INSTALL ( TARGETS oslquery LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) -+INSTALL ( TARGETS oslquery LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin) diff --git a/mingw-w64-openshadinglanguage-git/0009-Fix-shader_is_defined.patch b/mingw-w64-openshadinglanguage-git/0009-Fix-shader_is_defined.patch deleted file mode 100644 index 38bb7c570a..0000000000 --- a/mingw-w64-openshadinglanguage-git/0009-Fix-shader_is_defined.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- openshadinglanguage/src/liboslcomp/oslcomp_pvt.h.orig 2014-04-16 17:05:16.783394800 +0000 -+++ openshadinglanguage/src/liboslcomp/oslcomp_pvt.h 2014-04-16 17:05:38.243394800 +0000 -@@ -107,7 +107,7 @@ - bool error_encountered () const { return m_err; } - - /// Has a shader already been defined? -- bool shader_is_defined () const { return m_shader; } -+ bool shader_is_defined () const { return m_shader ? true : false; } - - /// Define the shader we're compiling with the given AST root. - /// diff --git a/mingw-w64-openshadinglanguage-git/0009-llvm-35.patch b/mingw-w64-openshadinglanguage-git/0009-llvm-35.patch deleted file mode 100644 index 2420fe4b87..0000000000 --- a/mingw-w64-openshadinglanguage-git/0009-llvm-35.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- openshadinglanguage/src/liboslexec/llvm_util.cpp.orig 2014-04-16 17:05:16.783394800 +0000 -+++ openshadinglanguage/src/liboslexec/llvm_util.cpp 2014-04-16 17:05:38.243394800 +0000 -@@ -46,7 +46,11 @@ - # include - # include - # include --# include -+# if OSL_LLVM_VERSION > 34 -+# include -+# else -+# include -+# endif - # if OSL_LLVM_VERSION >= 34 - # include - # else -@@ -92,7 +92,11 @@ - #include - #include - #include --#include -+# if OSL_LLVM_VERSION > 34 -+# include -+# else -+# include -+# endif - #include - #include - #include -@@ -380,7 +380,9 @@ - // than opt-out, and the following variable was removed. - llvm::DisablePrettyStackTrace = true; - #endif -+#if OSL_LLVM_VERSION <= 34 - llvm::llvm_start_multithreaded (); // enable it to be thread-safe -+#endif - - #if USE_MCJIT - llvm::InitializeAllTargets(); \ No newline at end of file diff --git a/mingw-w64-openshadinglanguage-git/0010-fix-compare-ints.patch b/mingw-w64-openshadinglanguage-git/0010-fix-compare-ints.patch deleted file mode 100644 index 199efcc935..0000000000 --- a/mingw-w64-openshadinglanguage-git/0010-fix-compare-ints.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -Naur openshadinglanguage-orig/src/liboslcomp/symtab.cpp openshadinglanguage/src/liboslcomp/symtab.cpp ---- openshadinglanguage-orig/src/liboslcomp/symtab.cpp 2014-08-31 21:12:36.509200000 +0400 -+++ openshadinglanguage/src/liboslcomp/symtab.cpp 2014-08-31 21:28:41.286000000 +0400 -@@ -343,7 +343,7 @@ - std::cout << " (" << s->name() - << " in scope " << s->scope() << ")"; - std::cout << " :\n"; -- for (size_t i = 0; i < s->numfields(); ++i) { -+ for (int i = 0; i < s->numfields(); ++i) { - const StructSpec::FieldSpec & f (s->field(i)); - std::cout << "\t" << f.name << " : " - << f.type.string() << "\n"; -diff -Naur openshadinglanguage-orig/src/liboslexec/shadingsys.cpp openshadinglanguage/src/liboslexec/shadingsys.cpp ---- openshadinglanguage-orig/src/liboslexec/shadingsys.cpp 2014-08-31 21:12:36.587200000 +0400 -+++ openshadinglanguage/src/liboslexec/shadingsys.cpp 2014-08-31 21:31:52.245600000 +0400 -@@ -1647,7 +1647,7 @@ - // as connections between their respective fields. - StructSpec *srcstruct = srccon.type.structspec(); - StructSpec *dststruct = dstcon.type.structspec(); -- for (size_t i = 0; i < srcstruct->numfields(); ++i) { -+ for (int i = 0; i < srcstruct->numfields(); ++i) { - std::string s = Strutil::format("%s.%s", srcparam, srcstruct->field(i).name.c_str()); - std::string d = Strutil::format("%s.%s", dstparam, dststruct->field(i).name.c_str()); - ConnectShaders (srclayer, s.c_str(), dstlayer, d.c_str()); -diff -Naur openshadinglanguage-orig/src/liboslexec/typespec.cpp openshadinglanguage/src/liboslexec/typespec.cpp ---- openshadinglanguage-orig/src/liboslexec/typespec.cpp 2014-08-31 21:12:36.587200000 +0400 -+++ openshadinglanguage/src/liboslexec/typespec.cpp 2014-08-31 21:27:42.218600000 +0400 -@@ -101,7 +101,7 @@ - ASSERT (a && b); - if (a->numfields() != b->numfields()) - return false; -- for (size_t i = 0; i < a->numfields(); ++i) -+ for (int i = 0; i < a->numfields(); ++i) - if (! equivalent (a->field(i).type, b->field(i).type)) - return false; - return true; -diff -Naur openshadinglanguage-orig/src/liboslexec/lpeparse.cpp openshadinglanguage/src/liboslexec/lpeparse.cpp ---- openshadinglanguage-orig/src/liboslexec/lpeparse.cpp 2014-08-31 21:44:27.475800000 +0400 -+++ openshadinglanguage/src/liboslexec/lpeparse.cpp 2014-08-31 22:42:14.737400000 +0400 -@@ -72,13 +72,13 @@ - m_minus_stop.insert(Labels::STOP); - - if (user_events) -- for (int i = 0; i < user_events->size(); ++i) -+ for (size_t i = 0; i < user_events->size(); ++i) - { - m_label_position[(*user_events)[i]] = 0; - m_basic_labels.insert((*user_events)[i]); - } - if (user_scatterings) -- for (int i = 0; i < user_scatterings->size(); ++i) -+ for (size_t i = 0; i < user_scatterings->size(); ++i) - { - m_label_position[(*user_scatterings)[i]] = 1; - m_basic_labels.insert((*user_scatterings)[i]); diff --git a/mingw-w64-openshadinglanguage-git/PKGBUILD b/mingw-w64-openshadinglanguage-git/PKGBUILD index 424c038c9e..5f71107081 100644 --- a/mingw-w64-openshadinglanguage-git/PKGBUILD +++ b/mingw-w64-openshadinglanguage-git/PKGBUILD @@ -2,9 +2,9 @@ _realname=openshadinglanguage pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -_ver_base=1.5 -pkgver=1.5.1381.52ba3ae -pkgrel=2 +_ver_base=1.6 +pkgver=1.6.1507.9eef4a8 +pkgrel=1 pkgdesc="Advanced shading language for production GI renderers (mingw-w64)" arch=('any') url="https://github.com/imageworks/OpenShadingLanguage/" @@ -12,15 +12,14 @@ license=("custom") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-glew" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-openimageio" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-intel-tbb" - "${MINGW_PACKAGE_PREFIX}-ilmbase" - "${MINGW_PACKAGE_PREFIX}-openexr" - ) + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-glew" + "${MINGW_PACKAGE_PREFIX}-ilmbase" + "${MINGW_PACKAGE_PREFIX}-intel-tbb" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-openexr" + "${MINGW_PACKAGE_PREFIX}-openimageio") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-clang" "${MINGW_PACKAGE_PREFIX}-gcc" @@ -28,25 +27,15 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-pkg-config" "git") source=("${_realname}"::"git+https://github.com/imageworks/OpenShadingLanguage.git" - 0001-mingw-w64-fix.patch 0002-dont-add-flex-include-dir.patch 0003-fix-OIIO-windows.patch 0005-Fix-cast-from-void-ptr.patch - 0006-Fix-weird-array-out-of-bounds-error.patch - 0007-Fix-bad-casts-with-intptr_t.patch - 0008-Install-dlls.patch - 0009-llvm-35.patch - 0010-fix-compare-ints.patch) + 0007-Fix-bad-casts-with-intptr_t.patch) md5sums=('SKIP' - 'c225e66cd0a59a674b331b26374ba082' '78526dd22cea1d42238609a9cdfef816' '9c73b150c2696024a44397ef94584463' '73851a8ec414f099fe1195ea18d756f9' - '33d03ef6eb6433c0df111098a6c7b177' - '85ed91acdd3bd974a18b8d1c9ae3e79b' - '7816fd1cd6d2fcbb2547384aa14c7760' - '9c996fd52bef0ecd5b34db1c930b5173' - '662f4003eade3afd4e00ea3dd39d4d21') + '85ed91acdd3bd974a18b8d1c9ae3e79b') pkgver() { cd "$srcdir/$_realname" @@ -55,38 +44,34 @@ pkgver() { prepare() { cd ${srcdir}/$_realname - patch -p1 -i ${srcdir}/0001-mingw-w64-fix.patch patch -p1 -i ${srcdir}/0002-dont-add-flex-include-dir.patch patch -p1 -i ${srcdir}/0003-fix-OIIO-windows.patch patch -p1 -i ${srcdir}/0005-Fix-cast-from-void-ptr.patch - patch -p1 -i ${srcdir}/0006-Fix-weird-array-out-of-bounds-error.patch patch -p1 -i ${srcdir}/0007-Fix-bad-casts-with-intptr_t.patch - patch -p1 -i ${srcdir}/0008-Install-dlls.patch - #patch -p1 -i ${srcdir}/0009-llvm-35.patch - patch -p1 -i ${srcdir}/0010-fix-compare-ints.patch } build() { export OPENIMAGEIOHOME=${MINGW_PREFIX} export LLVM_DIRECTORY=${MINGW_PREFIX} + local _extra_libs=$(${MINGW_PREFIX}/bin/llvm-config --system-libs) + CFLAGS+=" -std=c++11 -D_USE_MATH_DEFINES" + CXXFLAGS+=" -std=c++11 -DTINYFORMAT_ALLOW_WCHAR_STRINGS -D_USE_MATH_DEFINES" + [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DILMBASE_CUSTOM=True \ + -DILMBASE_CUSTOM_INCLUDE_DIR=${MINGW_PREFIX}/include \ + -DILMBASE_CUSTOM_LIB_DIR=${MINGW_PREFIX}/lib \ + -DILMBASE_CUSTOM_LIBRARIES="Half Iex Imath IlmThread" \ + -DEXTRA_OSLEXEC_LIBRARIES="${_extra_libs}" \ -DLLVM_STATIC=1 \ - -DCMAKE_CXX_FLAGS="-DTINYFORMAT_ALLOW_WCHAR_STRINGS -Wno-error=unused-but-set-variable -std=gnu++11" \ - -DEXTRA_OSLEXEC_LIBRARIES="-lz -lffi -lncurses -lshell32 -lpsapi -limagehlp -lm" \ ../$_realname - #-DVERBOSE=1 - # -DILMBASE_CUSTOM=True \ - # -DILMBASE_CUSTOM_INCLUDE_DIR=${MINGW_PREFIX}/include \ - # -DILMBASE_CUSTOM_LIB_DIR=${MINGW_PREFIX}/lib \ - # -DILMBASE_CUSTOM_LIBRARIES="Half Iex Imath IlmThread" \ # $PWD/src/liboslcomp PATH addition needed for running oslc.exe during the build (for liboslcomp.dll) # ${MINGW_PREFIX}/bin PATH addition needed for finding libboost_system-mt.dll when running oslc.exe. - #PATH=$PWD/src/liboslcomp:${MINGW_PREFIX}/bin:"${PATH}" make VERBOSE=1 PATH="$PWD/src/liboslcomp:${PATH}" make } @@ -100,5 +85,4 @@ package() { mv "${pkgdir}${MINGW_PREFIX}"/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname} # TODO: Tell upstream about this shit mv "${pkgdir}${MINGW_PREFIX}"/{CHANGES,README.md,INSTALL} "${pkgdir}${MINGW_PREFIX}"/share/OSL/ mv "${pkgdir}${MINGW_PREFIX}"/doc "${pkgdir}${MINGW_PREFIX}"/share/OSL/doc - #mv "${pkgdir}${MINGW_PREFIX}"/shaders "${pkgdir}${MINGW_PREFIX}"/share/OSL/shadersE } From 1c71b9bb926aa6c490b5a9443de9cdf06b468ed1 Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Thu, 5 Mar 2015 23:05:02 +0600 Subject: [PATCH 0623/2060] vtk: Update to 6.2.0 --- mingw-w64-vtk/PKGBUILD | 82 +++++++++++++++++------------- mingw-w64-vtk/vtk-mingw-w64.patch | 35 ------------- mingw-w64-vtk/win64-ptr-cast.patch | 9 ++-- 3 files changed, 50 insertions(+), 76 deletions(-) diff --git a/mingw-w64-vtk/PKGBUILD b/mingw-w64-vtk/PKGBUILD index f281b5a30c..e4ab0f9487 100644 --- a/mingw-w64-vtk/PKGBUILD +++ b/mingw-w64-vtk/PKGBUILD @@ -2,43 +2,47 @@ _realname=vtk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.1.0 -pkgrel=2 +pkgver=6.2.0 +pkgrel=1 pkgdesc="A software system for 3D computer graphics, image processing and visualization (mingw-w64)" arch=('any') url="http://www.vtk.org/" -license=("BSD" "GPL") +license=("BSD") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-expat" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-hdf5" - "${MINGW_PACKAGE_PREFIX}-intel-tbb" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-libogg" - "${MINGW_PACKAGE_PREFIX}-libtheora" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-ffmpeg" - "${MINGW_PACKAGE_PREFIX}-qt5") + "${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-ffmpeg" + "${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-hdf5" + "${MINGW_PACKAGE_PREFIX}-intel-tbb" + "${MINGW_PACKAGE_PREFIX}-jsoncpp" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libogg" + "${MINGW_PACKAGE_PREFIX}-libtheora" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-qt5" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-postgresql" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-tk") -optdepends=("${MINGW_PACKAGE_PREFIX}-python2: Python bindings" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-libmariadbclient" + "${MINGW_PACKAGE_PREFIX}-postgresql" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-tk") +optdepends=("${MINGW_PACKAGE_PREFIX}-boost: InfovisBoost and InfovisBoostGraphAlgorithms modules" + "${MINGW_PACKAGE_PREFIX}-libmariadbclient: interface to MariaDB" + "${MINGW_PACKAGE_PREFIX}-postgresql: interface to PostgreSQL" + "${MINGW_PACKAGE_PREFIX}-python2: Python bindings" "${MINGW_PACKAGE_PREFIX}-python2-matplotlib: Matplotlib renderer" "${MINGW_PACKAGE_PREFIX}-tk: TCL bindings, Python Tk widgets") -source=(https://github.com/Kitware/VTK/archive/v$pkgver.tar.gz - vtk-mingw-w64.patch - win64-ptr-cast.patch) -md5sums=('452362f336173018ec9dd9815c18f603' - '1491fe59e872e60e29b5bcdb8ce490a4' - '4305d95a5e99f99b108ea45f167f8e4b') - -VTK_SUFFIX=$(echo "${pkgver}" | sed 's|\([0-9]*\.[0-9]*\).*$|\1|') +source=("https://github.com/Kitware/VTK/archive/v$pkgver.tar.gz" + "vtk-mingw-w64.patch" + "win64-ptr-cast.patch") +md5sums=('742a2b3fbe5520c75d2a3925e8774040' + '1534dad8934905a0a54870ab4273dad0' + '5205a6a4c29ece320e5a6646150d8593') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -48,7 +52,8 @@ prepare() { } build() { - CXXFLAGS+=" -std=gnu++11" + CFLAGS+=" ${CPPFLAGS}" + CXXFLAGS+=" ${CPPFLAGS} -std=gnu++11" [[ "$CARCH" = 'i686' ]] && { _cmakeopts=('-DVTK_USE_64BIT_IDS=OFF') } @@ -59,11 +64,11 @@ build() { [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} - ${MINGW_PREFIX}/bin/cmake.exe \ + ${MINGW_PREFIX}/bin/cmake.exe -Wno-dev \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DVTK_INSTALL_QT_PLUGIN_DIR=${pkgdir}${MINGW_PREFIX}/share/qt5/plugins/designer \ - -DVTK_INSTALL_TCL_DIR=${pkgdir}${MINGW_PREFIX}/lib/vtk-${VTK_SUFFIX} \ + -DVTK_INSTALL_TCL_DIR=${pkgdir}${MINGW_PREFIX}/lib/vtk-${pkgver%.*} \ -DBUILD_DOCUMENTATION=OFF \ -DBUILD_EXAMPLES=OFF \ -DBUILD_TESTING=OFF \ @@ -81,7 +86,7 @@ build() { -DVTK_USE_SYSTEM_GL2PS=OFF \ -DVTK_USE_SYSTEM_HDF5=ON \ -DVTK_USE_SYSTEM_JPEG=ON \ - -DVTK_USE_SYSTEM_JSONCPP=OFF \ + -DVTK_USE_SYSTEM_JSONCPP=ON \ -DVTK_USE_SYSTEM_LIBPROJ4=OFF \ -DVTK_USE_SYSTEM_LIBXML2=ON \ -DVTK_USE_SYSTEM_NETCDF=OFF \ @@ -91,10 +96,15 @@ build() { -DVTK_USE_SYSTEM_ZLIB=ON \ -DVTK_USE_VIDEO_FOR_WINDOWS=ON \ -DModule_vtkIOFFMPEG=ON \ - -DModule_vtkIOMySQL=OFF \ + -DModule_vtkIOMySQL=ON \ + -DMYSQL_INCLUDE_DIRECTORIES=${MINGW_PREFIX}/include/mariadb \ + -DMYSQL_LIBRARY=${MINGW_PREFIX}/lib/libmariadb.dll.a \ + -DModule_vtkInfovisBoost=ON \ + -DModule_vtkInfovisBoostGraphAlgorithms=ON \ -DModule_vtkIOODBC=OFF \ -DModule_vtkIOPostgreSQL=ON \ -DModule_vtkPythonInterpreter=ON \ + -DModule_vtkFiltersReebGraph=ON \ -DModule_vtkRenderingFreeTypeFontConfig=ON \ -DModule_vtkRenderingMatplotlib=ON \ -DVTK_WRAP_JAVA=OFF \ @@ -122,7 +132,7 @@ package() { export PREFIX_DEPS=`pwd -W` popd > /dev/null - pushd ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}-${VTK_SUFFIX} > /dev/null + pushd ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}-${pkgver%.*} > /dev/null sed -s 's|Qt5::|Qt5|g' -i ./VTKTargets*.cmake sed -s "s|${PREFIX_DEPS}|\${_IMPORT_PREFIX}|g" -i ./VTKTargets.cmake find . -name '*.cmake' -exec \ diff --git a/mingw-w64-vtk/vtk-mingw-w64.patch b/mingw-w64-vtk/vtk-mingw-w64.patch index 6aa607aacc..c0d96ff43e 100644 --- a/mingw-w64-vtk/vtk-mingw-w64.patch +++ b/mingw-w64-vtk/vtk-mingw-w64.patch @@ -36,41 +36,6 @@ diff -Naur VTK-6.1.0.a/Common/Core/vtkConditionVariable.h VTK-6.1.0.b/Common/Cor # else // 0 typedef struct { -diff -Naur VTK-6.1.0.a/Common/Core/vtkWin32Header.h VTK-6.1.0.b/Common/Core/vtkWin32Header.h ---- VTK-6.1.0.a/Common/Core/vtkWin32Header.h 2014-01-21 23:22:59.000000000 +0700 -+++ VTK-6.1.0.b/Common/Core/vtkWin32Header.h 2014-09-21 00:06:12.505562700 +0700 -@@ -87,16 +87,18 @@ - # define VTK_WORKAROUND_WINDOWS_MANGLE - #endif - --#if defined(_MSC_VER) // Visual studio --#pragma warning ( disable : 4311 ) --#pragma warning ( disable : 4312 ) -+#if defined(_MSC_VER) || defined(__MINGW32__) -+# ifdef _MSC_VER -+# pragma warning ( disable : 4311 ) -+# pragma warning ( disable : 4312 ) -+# endif - # define vtkGetWindowLong GetWindowLongPtr - # define vtkSetWindowLong SetWindowLongPtr - # define vtkLONG LONG_PTR - # define vtkGWL_WNDPROC GWLP_WNDPROC - # define vtkGWL_HINSTANCE GWLP_HINSTANCE - # define vtkGWL_USERDATA GWLP_USERDATA --#else // non-Visual studio -+#else - # define vtkGetWindowLong GetWindowLong - # define vtkSetWindowLong SetWindowLong - # define vtkLONG LONG -@@ -109,7 +111,7 @@ - # define vtkGWL_HINSTANCE GWL_HINSTANCE - # define vtkGWL_USERDATA GWL_USERDATA - # endif --#endif // -+#endif - - #endif - diff -Naur VTK-6.1.0.a/Filters/General/vtkMultiThreshold.h VTK-6.1.0.b/Filters/General/vtkMultiThreshold.h --- VTK-6.1.0.a/Filters/General/vtkMultiThreshold.h 2014-01-21 23:22:59.000000000 +0700 +++ VTK-6.1.0.b/Filters/General/vtkMultiThreshold.h 2014-09-21 05:32:57.474083800 +0700 diff --git a/mingw-w64-vtk/win64-ptr-cast.patch b/mingw-w64-vtk/win64-ptr-cast.patch index c95197e422..1009dcf610 100644 --- a/mingw-w64-vtk/win64-ptr-cast.patch +++ b/mingw-w64-vtk/win64-ptr-cast.patch @@ -1,8 +1,7 @@ -diff --git a/IO/Video/vtkWin32VideoSource.cxx b/IO/Video/vtkWin32VideoSource.cxx -index c75434c..611520c 100644 ---- a/IO/Video/vtkWin32VideoSource.cxx -+++ b/IO/Video/vtkWin32VideoSource.cxx -@@ -339,7 +339,7 @@ void vtkWin32VideoSource::Initialize() +diff -Naur a/IO/Video/vtkWin32VideoSource.cxx b/IO/Video/vtkWin32VideoSource.cxx +--- a/IO/Video/vtkWin32VideoSource.cxx 2015-03-03 06:56:42.000000000 +0600 ++++ b/IO/Video/vtkWin32VideoSource.cxx 2015-03-04 18:47:05.859427800 +0600 +@@ -349,7 +349,7 @@ } // set user data for callbacks From 6eeb60788f75184ddaf419157ab3ceee5b5135bb Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Thu, 5 Mar 2015 23:08:07 +0600 Subject: [PATCH 0624/2060] opencv: Relocate patches. Rebuild for updated vtk --- mingw-w64-opencv/PKGBUILD | 6 +- .../free-tls-keys-on-dll-unload.patch | 18 ++--- mingw-w64-opencv/mingw-w64-cmake.patch | 72 +++++++++---------- 3 files changed, 48 insertions(+), 48 deletions(-) diff --git a/mingw-w64-opencv/PKGBUILD b/mingw-w64-opencv/PKGBUILD index eadfea712e..599a9244b4 100644 --- a/mingw-w64-opencv/PKGBUILD +++ b/mingw-w64-opencv/PKGBUILD @@ -3,7 +3,7 @@ _realname=opencv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.4.11 -pkgrel=1 +pkgrel=2 pkgdesc="Open Source Computer Vision Library (mingw-w64)" arch=('any') url="http://opencv.org/" @@ -36,8 +36,8 @@ source=(#"http://downloads.sourceforge.net/opencvlibrary/${_realname}-$pkgver.zi 'free-tls-keys-on-dll-unload.patch' 'solve_deg3-underflow.patch') md5sums=('fa06384719cb0be48183b4de972f0b2a' - '7d1bcc9f01753cf2c38fbe45b0c7cb82' - '91fcecdc23a870cafad6f51c2a45e647' + '8d7819b9507cc070511ac3c64fd2bfb0' + '0f3f69b677d129260322ccf3e9412962' 'ae03a59cf1202d5eafa94c2aac419ae6') prepare() { diff --git a/mingw-w64-opencv/free-tls-keys-on-dll-unload.patch b/mingw-w64-opencv/free-tls-keys-on-dll-unload.patch index 0221ce9241..10027eb80b 100644 --- a/mingw-w64-opencv/free-tls-keys-on-dll-unload.patch +++ b/mingw-w64-opencv/free-tls-keys-on-dll-unload.patch @@ -1,6 +1,6 @@ diff -Naur a/modules/core/src/alloc.cpp b/modules/core/src/alloc.cpp ---- a/modules/core/src/alloc.cpp 2014-10-01 14:33:36.000000000 +0700 -+++ b/modules/core/src/alloc.cpp 2014-10-02 23:40:21.133326500 +0700 +--- a/modules/core/src/alloc.cpp 2015-02-25 18:10:31.000000000 +0600 ++++ b/modules/core/src/alloc.cpp 2015-03-05 22:17:56.243231600 +0600 @@ -56,7 +56,7 @@ #if CV_USE_SYSTEM_MALLOC @@ -11,8 +11,8 @@ diff -Naur a/modules/core/src/alloc.cpp b/modules/core/src/alloc.cpp void* fastMalloc( size_t size ) diff -Naur a/modules/core/src/precomp.hpp b/modules/core/src/precomp.hpp ---- a/modules/core/src/precomp.hpp 2014-10-01 14:33:36.000000000 +0700 -+++ b/modules/core/src/precomp.hpp 2014-10-02 23:40:21.133326500 +0700 +--- a/modules/core/src/precomp.hpp 2015-02-25 18:10:31.000000000 +0600 ++++ b/modules/core/src/precomp.hpp 2015-03-05 22:17:56.243231600 +0600 @@ -83,8 +83,8 @@ @@ -25,8 +25,8 @@ diff -Naur a/modules/core/src/precomp.hpp b/modules/core/src/precomp.hpp template struct OpAdd diff -Naur a/modules/core/src/rand.cpp b/modules/core/src/rand.cpp ---- a/modules/core/src/rand.cpp 2014-10-01 14:33:36.000000000 +0700 -+++ b/modules/core/src/rand.cpp 2014-10-02 23:40:21.133326500 +0700 +--- a/modules/core/src/rand.cpp 2015-02-25 18:10:31.000000000 +0600 ++++ b/modules/core/src/rand.cpp 2015-03-05 22:17:56.258831700 +0600 @@ -752,10 +752,15 @@ #endif static DWORD tlsRNGKey = TLS_OUT_OF_INDEXES; @@ -48,9 +48,9 @@ diff -Naur a/modules/core/src/rand.cpp b/modules/core/src/rand.cpp RNG& theRNG() diff -Naur a/modules/core/src/system.cpp b/modules/core/src/system.cpp ---- a/modules/core/src/system.cpp 2014-10-01 14:33:36.000000000 +0700 -+++ b/modules/core/src/system.cpp 2014-10-02 23:40:21.133326500 +0700 -@@ -1079,8 +1079,8 @@ +--- a/modules/core/src/system.cpp 2015-02-25 18:10:31.000000000 +0600 ++++ b/modules/core/src/system.cpp 2015-03-05 22:17:56.258831700 +0600 +@@ -1082,8 +1082,8 @@ { if (fdwReason == DLL_THREAD_DETACH || fdwReason == DLL_PROCESS_DETACH) { diff --git a/mingw-w64-opencv/mingw-w64-cmake.patch b/mingw-w64-opencv/mingw-w64-cmake.patch index c95a671cd8..7b74f4ce02 100644 --- a/mingw-w64-opencv/mingw-w64-cmake.patch +++ b/mingw-w64-opencv/mingw-w64-cmake.patch @@ -1,6 +1,18 @@ +diff -Naur a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake +--- a/cmake/OpenCVDetectCXXCompiler.cmake 2015-02-25 18:10:31.000000000 +0600 ++++ b/cmake/OpenCVDetectCXXCompiler.cmake 2015-03-05 22:18:10.532856700 +0600 +@@ -147,7 +147,7 @@ + execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpmachine + OUTPUT_VARIABLE OPENCV_GCC_TARGET_MACHINE + OUTPUT_STRIP_TRAILING_WHITESPACE) +- if(CMAKE_OPENCV_GCC_TARGET_MACHINE MATCHES "64") ++ if(CMAKE_OPENCV_GCC_TARGET_MACHINE MATCHES "amd64|x86_64|AMD64") + set(MINGW64 1) + set(OpenCV_ARCH x64) + else() diff -Naur a/cmake/OpenCVDetectPython.cmake b/cmake/OpenCVDetectPython.cmake ---- a/cmake/OpenCVDetectPython.cmake 2014-10-01 14:33:36.000000000 +0700 -+++ b/cmake/OpenCVDetectPython.cmake 2014-10-02 23:18:25.505210700 +0700 +--- a/cmake/OpenCVDetectPython.cmake 2015-02-25 18:10:31.000000000 +0600 ++++ b/cmake/OpenCVDetectPython.cmake 2015-03-05 22:18:10.517256700 +0600 @@ -52,7 +52,7 @@ endif() @@ -11,8 +23,8 @@ diff -Naur a/cmake/OpenCVDetectPython.cmake b/cmake/OpenCVDetectPython.cmake RESULT_VARIABLE PYTHON_CVPY_PROCESS OUTPUT_VARIABLE PYTHON_STD_PACKAGES_PATH diff -Naur a/cmake/OpenCVFindOpenEXR.cmake b/cmake/OpenCVFindOpenEXR.cmake ---- a/cmake/OpenCVFindOpenEXR.cmake 2014-10-01 14:33:36.000000000 +0700 -+++ b/cmake/OpenCVFindOpenEXR.cmake 2014-10-02 23:18:25.505210700 +0700 +--- a/cmake/OpenCVFindOpenEXR.cmake 2015-02-25 18:10:31.000000000 +0600 ++++ b/cmake/OpenCVFindOpenEXR.cmake 2015-03-05 22:18:10.517256700 +0600 @@ -13,7 +13,7 @@ SET(OPENEXR_LIBSEARCH_SUFFIXES "") file(TO_CMAKE_PATH "$ENV{ProgramFiles}" ProgramFiles_ENV_PATH) @@ -23,8 +35,8 @@ diff -Naur a/cmake/OpenCVFindOpenEXR.cmake b/cmake/OpenCVFindOpenEXR.cmake if(CMAKE_CL_64) SET(OPENEXR_LIBSEARCH_SUFFIXES x64/Release x64 x64/Debug) diff -Naur a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake ---- a/cmake/OpenCVGenConfig.cmake 2014-10-01 14:33:36.000000000 +0700 -+++ b/cmake/OpenCVGenConfig.cmake 2014-10-02 23:18:25.505210700 +0700 +--- a/cmake/OpenCVGenConfig.cmake 2015-02-25 18:10:31.000000000 +0600 ++++ b/cmake/OpenCVGenConfig.cmake 2015-03-05 22:18:10.532856700 +0600 @@ -101,7 +101,7 @@ configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig.cmake" @ONLY) configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig-version.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig-version.cmake" @ONLY) @@ -44,9 +56,9 @@ diff -Naur a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake set(OpenCV2_INCLUDE_DIRS_CONFIGCMAKE "\"\"") diff -Naur a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake ---- a/cmake/OpenCVGenPkgconfig.cmake 2014-10-01 14:33:36.000000000 +0700 -+++ b/cmake/OpenCVGenPkgconfig.cmake 2014-10-02 23:18:25.505210700 +0700 -@@ -80,6 +83,6 @@ +--- a/cmake/OpenCVGenPkgconfig.cmake 2015-02-25 18:10:31.000000000 +0600 ++++ b/cmake/OpenCVGenPkgconfig.cmake 2015-03-05 22:18:10.532856700 +0600 +@@ -100,6 +100,6 @@ "${CMAKE_BINARY_DIR}/unix-install/${OPENCV_PC_FILE_NAME}" @ONLY) @@ -55,9 +67,9 @@ diff -Naur a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake install(FILES ${CMAKE_BINARY_DIR}/unix-install/${OPENCV_PC_FILE_NAME} DESTINATION ${OPENCV_LIB_INSTALL_PATH}/pkgconfig COMPONENT dev) endif() diff -Naur a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake ---- a/cmake/OpenCVModule.cmake 2014-10-01 14:33:36.000000000 +0700 -+++ b/cmake/OpenCVModule.cmake 2014-10-02 23:18:25.505210700 +0700 -@@ -585,7 +585,9 @@ +--- a/cmake/OpenCVModule.cmake 2015-02-25 18:10:31.000000000 +0600 ++++ b/cmake/OpenCVModule.cmake 2015-03-05 22:18:10.532856700 +0600 +@@ -584,7 +584,9 @@ endif() set_target_properties(${the_module} PROPERTIES @@ -69,9 +81,9 @@ diff -Naur a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH} LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH} diff -Naur a/cmake/templates/OpenCVConfig.cmake.in b/cmake/templates/OpenCVConfig.cmake.in ---- a/cmake/templates/OpenCVConfig.cmake.in 2014-10-01 14:33:36.000000000 +0700 -+++ b/cmake/templates/OpenCVConfig.cmake.in 2014-10-02 23:20:38.776244800 +0700 -@@ -75,7 +75,7 @@ +--- a/cmake/templates/OpenCVConfig.cmake.in 2015-02-25 18:10:31.000000000 +0600 ++++ b/cmake/templates/OpenCVConfig.cmake.in 2015-03-05 22:18:10.532856700 +0600 +@@ -97,7 +97,7 @@ # Extract the directory where *this* file has been installed (determined at cmake run-time) get_filename_component(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH CACHE) @@ -81,9 +93,9 @@ diff -Naur a/cmake/templates/OpenCVConfig.cmake.in b/cmake/templates/OpenCVConfi set(OpenCV_INSTALL_PATH "${OpenCV_CONFIG_PATH}/../../..") else() diff -Naur a/CMakeLists.txt b/CMakeLists.txt ---- a/CMakeLists.txt 2014-10-01 14:33:36.000000000 +0700 -+++ b/CMakeLists.txt 2014-10-02 23:18:25.505210700 +0700 -@@ -104,20 +104,6 @@ +--- a/CMakeLists.txt 2015-02-25 18:10:31.000000000 +0600 ++++ b/CMakeLists.txt 2015-03-05 22:18:10.532856700 +0600 +@@ -111,20 +111,6 @@ endif() endif() @@ -104,7 +116,7 @@ diff -Naur a/CMakeLists.txt b/CMakeLists.txt # ---------------------------------------------------------------------------- # OpenCV cmake options # ---------------------------------------------------------------------------- -@@ -184,12 +170,12 @@ +@@ -191,12 +177,12 @@ OCV_OPTION(BUILD_ANDROID_PACKAGE "Build platform-specific package for Google Play" OFF IF ANDROID ) # 3rd party libs @@ -123,7 +135,7 @@ diff -Naur a/CMakeLists.txt b/CMakeLists.txt OCV_OPTION(BUILD_TBB "Download and build TBB from source" ANDROID ) # OpenCV installation options -@@ -261,7 +247,7 @@ +@@ -268,7 +254,7 @@ endif() endif() @@ -132,7 +144,7 @@ diff -Naur a/CMakeLists.txt b/CMakeLists.txt set(OPENCV_DOC_INSTALL_PATH doc) elseif(INSTALL_TO_MANGLED_PATHS) set(OPENCV_DOC_INSTALL_PATH share/OpenCV-${OPENCV_VERSION}/doc) -@@ -269,7 +255,7 @@ +@@ -276,7 +262,7 @@ set(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc) endif() @@ -141,7 +153,7 @@ diff -Naur a/CMakeLists.txt b/CMakeLists.txt if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH) set(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/") else() -@@ -309,7 +295,7 @@ +@@ -316,7 +302,7 @@ else() set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib") set(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}") @@ -150,7 +162,7 @@ diff -Naur a/CMakeLists.txt b/CMakeLists.txt if(OpenCV_STATIC) set(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}") else() -@@ -635,7 +621,7 @@ +@@ -652,7 +638,7 @@ endif() # for UNIX it does not make sense as LICENSE and readme will be part of the package automatically @@ -158,16 +170,4 @@ diff -Naur a/CMakeLists.txt b/CMakeLists.txt +if(ANDROID OR NOT UNIX AND NOT MINGW) install(FILES ${OPENCV_LICENSE_FILE} PERMISSIONS OWNER_READ GROUP_READ WORLD_READ - DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT libs) -diff -Naur opencv.a/cmake/OpenCVDetectCXXCompiler.cmake opencv.b/cmake/OpenCVDetectCXXCompiler.cmake ---- opencv.a/cmake/OpenCVDetectCXXCompiler.cmake 2014-10-01 14:33:36.000000000 +0700 -+++ opencv.b/cmake/OpenCVDetectCXXCompiler.cmake 2014-10-28 03:46:24.726004000 +0600 -@@ -145,7 +145,7 @@ - execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpmachine - OUTPUT_VARIABLE OPENCV_GCC_TARGET_MACHINE - OUTPUT_STRIP_TRAILING_WHITESPACE) -- if(CMAKE_OPENCV_GCC_TARGET_MACHINE MATCHES "64") -+ if(CMAKE_OPENCV_GCC_TARGET_MACHINE MATCHES "amd64|x86_64|AMD64") - set(MINGW64 1) - set(OpenCV_ARCH x64) - else() + DESTINATION . COMPONENT libs) From a31c8a9e7a5d27bcdf7c5c95c43d3f0baa1200ee Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Thu, 5 Mar 2015 23:08:41 +0600 Subject: [PATCH 0625/2060] itk: Update to 4.7.1 --- mingw-w64-itk/PKGBUILD | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/mingw-w64-itk/PKGBUILD b/mingw-w64-itk/PKGBUILD index ec3a4473d5..c7b82ac764 100644 --- a/mingw-w64-itk/PKGBUILD +++ b/mingw-w64-itk/PKGBUILD @@ -2,28 +2,28 @@ _realname=itk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.6.1 +pkgver=4.7.1 pkgrel=1 pkgdesc="An open-source C++ toolkit for medical image processing (mingw-w64)" arch=('any') url="http://www.itk.org/" -license=("Apache" "GPL") +license=("Apache") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-expat" - "${MINGW_PACKAGE_PREFIX}-fftw" - "${MINGW_PACKAGE_PREFIX}-hdf5" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-zlib") + "${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-fftw" + "${MINGW_PACKAGE_PREFIX}-hdf5" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-opencv" - "${MINGW_PACKAGE_PREFIX}-vtk") + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-opencv" + "${MINGW_PACKAGE_PREFIX}-vtk") optdepends=("${MINGW_PACKAGE_PREFIX}-opencv: ITK-OpenCV bridge" - "${MINGW_PACKAGE_PREFIX}-vtk: ITK-VTK bridge") + "${MINGW_PACKAGE_PREFIX}-vtk: ITK-VTK bridge") source=(https://github.com/InsightSoftwareConsortium/ITK/archive/v$pkgver.tar.gz) -md5sums=('50993b721839f22c8b7a4d76bab23adc') +md5sums=('f0360608582cb93d36a113f03309945b') build() { CXXFLAGS+=" -std=gnu++11" @@ -75,10 +75,8 @@ package() { export PREFIX_DEPS=`pwd -W` popd > /dev/null - ITK_SUFFIX=$(echo "${pkgver}" | sed 's|\([0-9]*\.[0-9]*\).*$|\1|') - sed -s "s|${PREFIX_DEPS}|\${_IMPORT_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}-${ITK_SUFFIX}/ITKTargets-release.cmake - find "${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}-${ITK_SUFFIX}" -name '*.cmake' -exec \ + -i ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}-${pkgver%.*}/ITKTargets-release.cmake + find "${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}-${pkgver%.*}" -name '*.cmake' -exec \ sed -s "s|${PREFIX_DEPS}|\${ITK_INSTALL_PREFIX}|g" -i {} \; } From d863e1aa7c54444e0fe5e2bbb63d33746a82cb92 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 5 Mar 2015 21:26:49 +0300 Subject: [PATCH 0626/2060] blender: Update to 2.73a --- mingw-w64-blender/OSL_1_5-api.patch | 79 +++++++++++++++++++++++ mingw-w64-blender/PKGBUILD | 35 ++++++---- mingw-w64-blender/osl-deprecate-api.patch | 11 ++++ 3 files changed, 112 insertions(+), 13 deletions(-) create mode 100644 mingw-w64-blender/OSL_1_5-api.patch diff --git a/mingw-w64-blender/OSL_1_5-api.patch b/mingw-w64-blender/OSL_1_5-api.patch new file mode 100644 index 0000000000..4655e55000 --- /dev/null +++ b/mingw-w64-blender/OSL_1_5-api.patch @@ -0,0 +1,79 @@ +From 01cebb6e91dce40772a1f9444a09eef7ba97ea7b Mon Sep 17 00:00:00 2001 +From: Thomas Dinges +Date: Wed, 28 Jan 2015 01:07:59 +0100 +Subject: [PATCH] OSL: Updates for OSL 1.5 API changes. + +* create() and destroy() are deprecated since OSL 1.5, use regular constructors / destructors. +--- + intern/cycles/render/osl.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp +index 7b22d20..45b4d28 100644 +--- a/intern/cycles/render/osl.cpp ++++ b/intern/cycles/render/osl.cpp +@@ -189,7 +189,7 @@ void OSLShaderManager::shading_system_init() + if(ss_shared_users == 0) { + services_shared = new OSLRenderServices(); + +- ss_shared = OSL::ShadingSystem::create(services_shared, ts_shared, &errhandler); ++ ss_shared = new OSL::ShadingSystem(services_shared, ts_shared, &errhandler); + ss_shared->attribute("lockgeom", 1); + ss_shared->attribute("commonspace", "world"); + ss_shared->attribute("searchpath:shader", path_get("shader")); +@@ -238,7 +238,7 @@ void OSLShaderManager::shading_system_free() + ss_shared_users--; + + if(ss_shared_users == 0) { +- OSL::ShadingSystem::destroy(ss_shared); ++ delete ss_shared; + ss_shared = NULL; + + delete services_shared; +@@ -270,7 +270,7 @@ bool OSLShaderManager::osl_compile(const string& inputfile, const string& output + stdosl_path = path_get("shader/stdosl.h"); + + /* compile */ +- OSL::OSLCompiler *compiler = OSL::OSLCompiler::create(); ++ OSL::OSLCompiler *compiler = new OSL::OSLCompiler(); + bool ok = compiler->compile(string_view(inputfile), options, string_view(stdosl_path)); + delete compiler; + +-- +2.3.0 + +From f8c650aa7a8fd72a85f9bb1297b02510b089702a Mon Sep 17 00:00:00 2001 +From: Sergey Sharybin +Date: Thu, 5 Feb 2015 12:06:24 +0500 +Subject: [PATCH] Fix T43561: Wrong include path to standard OSL headers + +Issue was in fact only visible in certain circumstances: + +- OSL was compiled with Boost Wave +- or system's cpp didn't handle space between -I and path + +Now made it so both wave and cpp code paths are always happy. + +Original patch from Shane Ambler with own modifications to +mimic what variable holds on more verbose. +--- + intern/cycles/render/osl.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp +index 45b4d28..9d6f412 100644 +--- a/intern/cycles/render/osl.cpp ++++ b/intern/cycles/render/osl.cpp +@@ -264,8 +264,8 @@ bool OSLShaderManager::osl_compile(const string& inputfile, const string& output + options.push_back(outputfile); + + /* specify standard include path */ +- options.push_back("-I"); +- options.push_back(shader_path); ++ string include_path_arg = string("-I") + shader_path; ++ options.push_back(include_path_arg); + + stdosl_path = path_get("shader/stdosl.h"); + +-- +2.3.0 diff --git a/mingw-w64-blender/PKGBUILD b/mingw-w64-blender/PKGBUILD index 71a56104e1..a792c76385 100644 --- a/mingw-w64-blender/PKGBUILD +++ b/mingw-w64-blender/PKGBUILD @@ -10,7 +10,13 @@ _realname=blender pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.73 +_basever=2.73 +_minorchar=a +[[ -z ${_minorchar} ]] && { + pkgver=${_basever} +} || { + pkgver=${_basever}.${_minorchar} +} _pyver=3.4 pkgrel=1 pkgdesc="A fully integrated 3D graphics creation suite (mingw-w64)" @@ -30,7 +36,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-opencollada" "${MINGW_PACKAGE_PREFIX}-opencolorio" "${MINGW_PACKAGE_PREFIX}-openimageio" - "${MINGW_PACKAGE_PREFIX}-openshadinglanguage" + "${MINGW_PACKAGE_PREFIX}-openshadinglanguage-git" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-numpy" "${MINGW_PACKAGE_PREFIX}-wintab-sdk") @@ -39,8 +45,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-llvm") #optdepends=('cuda: cycles renderer cuda support') options=(!strip staticlibs !debug) install=blender-${CARCH}.install -source=(#http://mirror.cs.umn.edu/blender.org/source/$_realname-$pkgver.tar.gz - http://download.blender.org/source/$_realname-$pkgver.tar.gz +source=(#http://mirror.cs.umn.edu/blender.org/source/$_realname-${_basever}${_minorchar}.tar.gz + http://download.blender.org/source/$_realname-${_basever}${_minorchar}.tar.gz "mingw-w64-cmake.patch" "fix-mingw-w64-definitions.patch" "mingw-dont-install-3rdparty.patch" @@ -49,8 +55,9 @@ source=(#http://mirror.cs.umn.edu/blender.org/source/$_realname-$pkgver.tar.gz "mingw-DEBUG-libmv-avoid-too-many-sections.patch" "mingw-DEBUG-dont-suffix-libs-with-_d.patch" "mingw-use-X11-like-path-layout.patch" - "osl-deprecate-api.patch") -md5sums=('8e546e622c6dfc1f0231636270bdf8de' + "osl-deprecate-api.patch" + "OSL_1_5-api.patch") +md5sums=('ea3f3ffe6fe03775c35d69dab0aeece9' 'e32610ddacfbc60c5677e31dec227c34' 'e8b4320882752c68eeba9b57f7951d1a' '1969914e11d0a4f74dbfeddad742c9da' @@ -59,10 +66,11 @@ md5sums=('8e546e622c6dfc1f0231636270bdf8de' 'e8dbeac11a43dc307fe826cd41100b8e' '4d104bac37e549eb32cffd473550412e' 'bdac7b47c5886bbcede99516a67de0c2' - '407dd78ee33dd9ab1212ba93af396d6c') + 'f18097fb6ee4aaaeeabbefb0be9c8e92' + '240f6599dbb694d882197d27b78eb98c') prepare() { - cd "$srcdir"/$_realname-$pkgver + cd "$srcdir"/$_realname-${_basever}${_minorchar} patch -p1 -i "${srcdir}"/mingw-w64-cmake.patch patch -p1 -i "${srcdir}"/fix-mingw-w64-definitions.patch patch -p1 -i "${srcdir}"/mingw-dont-install-3rdparty.patch @@ -72,6 +80,7 @@ prepare() { patch -p1 -i "${srcdir}"/mingw-DEBUG-dont-suffix-libs-with-_d.patch patch -p1 -i "${srcdir}"/mingw-use-X11-like-path-layout.patch patch -p1 -i "${srcdir}"/osl-deprecate-api.patch + patch -p1 -i "${srcdir}"/OSL_1_5-api.patch } build() { @@ -122,7 +131,7 @@ build() { -DWITH_OPENMP=ON \ -DWITH_LLVM=ON \ -DLLVM_STATIC=ON \ - ../${_realname}-${pkgver} + ../${_realname}-${_basever}${_minorchar} # Remove the openjpeg line once blender accepts my patch make #-j1 VERBOSE=1 @@ -136,9 +145,9 @@ package() { rm ${pkgdir}${MINGW_PREFIX}/bin/msgfmt.exe mv ${pkgdir}${MINGW_PREFIX}/bin/*.a ${pkgdir}${MINGW_PREFIX}/lib/ - ${MINGW_PREFIX}/bin/python3 -m compileall "${pkgdir}${MINGW_PREFIX}/share/blender/${pkgver}" + ${MINGW_PREFIX}/bin/python3 -m compileall "${pkgdir}${MINGW_PREFIX}/share/blender/${_basever}" ${MINGW_PREFIX}/bin/python3 -m compileall \ - ${pkgdir}${MINGW_PREFIX}/share/blender/${pkgver}/scripts/startup \ - ${pkgdir}${MINGW_PREFIX}/share/blender/${pkgver}/scripts/modules \ - ${pkgdir}${MINGW_PREFIX}/share/blender/${pkgver}/scripts/addons + ${pkgdir}${MINGW_PREFIX}/share/blender/${_basever}/scripts/startup \ + ${pkgdir}${MINGW_PREFIX}/share/blender/${_basever}/scripts/modules \ + ${pkgdir}${MINGW_PREFIX}/share/blender/${_basever}/scripts/addons } diff --git a/mingw-w64-blender/osl-deprecate-api.patch b/mingw-w64-blender/osl-deprecate-api.patch index ff8d1edd6e..7e44167769 100644 --- a/mingw-w64-blender/osl-deprecate-api.patch +++ b/mingw-w64-blender/osl-deprecate-api.patch @@ -9,3 +9,14 @@ } void OSLShader::register_closures(OSLShadingSystem *ss_) +--- blender-2.73/intern/cycles/render/osl.cpp.orig 2014-07-28 22:50:06.466400000 +0400 ++++ blender-2.73/intern/cycles/render/osl.cpp 2014-07-28 22:50:06.466400000 +0400 +@@ -248,7 +248,7 @@ + + bool OSLShaderManager::osl_compile(const string& inputfile, const string& outputfile) + { +- vector options; ++ vector options; + string stdosl_path; + string shader_path = path_get("shader"); + From 599285497c0141605adf11a3d09d37de0b4e69b0 Mon Sep 17 00:00:00 2001 From: Chilledheart Date: Tue, 27 Jan 2015 20:32:02 +0800 Subject: [PATCH 0627/2060] curl: add winssl variant configuring with gnutls is conflict with openssl or winssl option. removing it should be safe. --- mingw-w64-curl/PKGBUILD | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index d802d4d285..16164f3960 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -1,4 +1,7 @@ # Maintainer: Alexey Pavlov +_variant=-openssl +#_variant=-winssl +#_variant=-gnutls _realname=curl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" @@ -11,13 +14,17 @@ license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-c-ares" - "${MINGW_PACKAGE_PREFIX}-ca-certificates" - "${MINGW_PACKAGE_PREFIX}-gnutls" "${MINGW_PACKAGE_PREFIX}-libidn" "${MINGW_PACKAGE_PREFIX}-libssh2" - "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-rtmpdump") + "${MINGW_PACKAGE_PREFIX}-rtmpdump" + $([[ "$_variant" == "-openssl" ]] && echo \ + "${MINGW_PACKAGE_PREFIX}-ca-certificates" \ + "${MINGW_PACKAGE_PREFIX}-openssl") + $([[ "$_variant" == "-gnutls" ]] && echo \ + "${MINGW_PACKAGE_PREFIX}-ca-certificates" \ + "${MINGW_PACKAGE_PREFIX}-gnutls") + ) options=('staticlibs') source=("$url/download/${_realname}-$pkgver.tar.bz2"{,.asc} "0001-curl-relocation.patch" @@ -44,16 +51,33 @@ build() { extra_config+=( --disable-debug ) fi mkdir -p "${srcdir}/build-${CARCH}" + + local -a _variant_config + if [ "${_variant}" = "-winssl" ]; then + _variant_config+=("--without-ssl") + _variant_config+=("--without-gnutls") + _variant_config+=("--with-winssl") + _variant_config+=("--without-ca-bundle") + _variant_config+=("--without-ca-path") + elif [ "${_variant}" = "-gnutls" ]; then + _variant_config+=("--without-ssl") + _variant_config+=("--with-gnutls") + _variant_config+=("--with-ca-bundle=${MINGW_PREFIX}/ssl/certs/ca-bundle.crt") + elif [ "${_variant}" = "-openssl" ]; then + _variant_config+=("--without-gnutls") + _variant_config+=("--with-ssl") + _variant_config+=("--with-ca-bundle=${MINGW_PREFIX}/ssl/certs/ca-bundle.crt") + fi cd "${srcdir}/build-${CARCH}" "${srcdir}"/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --with-ca-bundle=${MINGW_PREFIX}/ssl/certs/ca-bundle.crt \ --without-random \ --enable-static \ --enable-shared \ + "${_variant_config[@]}" \ "${extra_config[@]}" make } From a106294eef61f6cc80ec0bd89d2c47682acdf42d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 6 Mar 2015 22:49:46 +0000 Subject: [PATCH 0628/2060] indent: Added --- mingw-w64-indent/PKGBUILD | 67 +++++++++++++ mingw-w64-indent/indent-2.2.11-LC_ALL.patch | 17 ++++ .../indent-2.2.11-decimal_format.patch | 98 +++++++++++++++++++ .../indent-2.2.11-disable-documentation.patch | 21 ++++ mingw-w64-indent/indent-2.2.11-segfault.patch | 16 +++ ....2.11-win32-wildexp-automake-support.patch | 30 ++++++ 6 files changed, 249 insertions(+) create mode 100644 mingw-w64-indent/PKGBUILD create mode 100644 mingw-w64-indent/indent-2.2.11-LC_ALL.patch create mode 100644 mingw-w64-indent/indent-2.2.11-decimal_format.patch create mode 100644 mingw-w64-indent/indent-2.2.11-disable-documentation.patch create mode 100644 mingw-w64-indent/indent-2.2.11-segfault.patch create mode 100644 mingw-w64-indent/indent-2.2.11-win32-wildexp-automake-support.patch diff --git a/mingw-w64-indent/PKGBUILD b/mingw-w64-indent/PKGBUILD new file mode 100644 index 0000000000..9a5082073b --- /dev/null +++ b/mingw-w64-indent/PKGBUILD @@ -0,0 +1,67 @@ +# $Id$ +# Maintainer (MSYS2): Ray Donnelly + +_realname=indent +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.2.11 +pkgrel=3 +pkgdesc="C language source code formatting program (mingw-w64)" +arch=('any') +url="https://www.gnu.org/software/indent/" +license=('GPL3') +makedepends=('texinfo-tex') +source=(http://ftp.de.debian.org/debian/pool/main/i/indent/${_realname}_${pkgver}.orig.tar.gz + indent-2.2.11-segfault.patch + indent-2.2.11-LC_ALL.patch + indent-2.2.11-decimal_format.patch + indent-2.2.11-win32-wildexp-automake-support.patch + indent-2.2.11-disable-documentation.patch) +sha1sums=('9b242528bbc4914464117c69ffae9df24d3fa4a7' + '31a6dcd5edcac4decac81dbb52bc9415b8b148e4' + '91b210b666de59ca44524288a4c1ebd213570daa' + '2b7d5a725fe307ce81565f920a0a66b319b50c91' + '2593b852bcacd5897d7aab5470d36c761c73838e' + '37962fa20909f698eeafec7609020b30b2c26ea6') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + rm -rf regression/input/float-constant-suffix.c \ + regression/standard/float-constant-suffix.c > /dev/null 2>&1 || true + + patch -Np1 -i ../indent-2.2.11-segfault.patch + + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=205692 + patch -Np1 -i ../indent-2.2.11-LC_ALL.patch + + # https://lists.gnu.org/archive/html/bug-indent/2011-08/msg00000.html + patch -Np1 -i ../indent-2.2.11-decimal_format.patch + + patch -Np1 -i ../indent-2.2.11-win32-wildexp-automake-support.patch + + patch -Np1 -i ../indent-2.2.11-disable-documentation.patch + + # sed -i 's/-number/-number-sections/' doc/Makefile.in + + autoreconf -vfi +} + +build() { + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mkdir "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + "${srcdir}"/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --{host,build}=${MINGW_CHOST} + make -j1 +} + +check() { + cd "${srcdir}"/${_realname}-${pkgver}/regression + make test +} + +package() { + cd "${srcdir}"/build-${CARCH} + make DESTDIR="${pkgdir}" install + rm "${pkgdir}"${MINGW_PREFIX}/bin/texinfo2man.exe +} diff --git a/mingw-w64-indent/indent-2.2.11-LC_ALL.patch b/mingw-w64-indent/indent-2.2.11-LC_ALL.patch new file mode 100644 index 0000000000..0ffe56d3c9 --- /dev/null +++ b/mingw-w64-indent/indent-2.2.11-LC_ALL.patch @@ -0,0 +1,17 @@ +From: Santiago Vila +Subject: setlocale using LC_ALL, not LC_MESSAGES +Bug-Debian: http://bugs.debian.org/205692 + +--- a/src/indent.c ++++ b/src/indent.c +@@ -1008,8 +1008,8 @@ + BOOLEAN using_stdin = false; + exit_values_ty exit_status; + +-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES) && defined (HAVE_LCCTYPES) +- setlocale(LC_MESSAGES, ""); ++#if defined (HAVE_SETLOCALE) ++ setlocale(LC_ALL, ""); + #endif + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); diff --git a/mingw-w64-indent/indent-2.2.11-decimal_format.patch b/mingw-w64-indent/indent-2.2.11-decimal_format.patch new file mode 100644 index 0000000000..ea34d0ea71 --- /dev/null +++ b/mingw-w64-indent/indent-2.2.11-decimal_format.patch @@ -0,0 +1,98 @@ +From ff47ab3b90333bdfaa40b86cb548e92a01787345 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Thu, 25 Aug 2011 11:26:24 +0200 +Subject: [PATCH] Do not split decimal float suffix from constant + +N1312 draft of ISO/IEC WDTR24732 defines additional floating types +with given suffixes: + +_Decimal32 DF, df +_Decimal64 DD, dd +_Decimal128 DL, dl + +These suffixes must stick on numeric part of the constant as classic +float or long float does. +--- + regression/TEST | 3 ++- + regression/input/float-constant-suffix.c | 13 +++++++++++++ + regression/standard/float-constant-suffix.c | 13 +++++++++++++ + src/lexi.c | 9 +++++++++ + 4 files changed, 37 insertions(+), 1 deletions(-) + create mode 100644 regression/input/float-constant-suffix.c + create mode 100644 regression/standard/float-constant-suffix.c + +diff --git a/regression/TEST b/regression/TEST +index c860ef2..1402ddf 100755 +--- a/regression/TEST ++++ b/regression/TEST +@@ -35,7 +35,8 @@ EXAMPLES="do.c else.c for.c func-def.c lshift.c ncs.c \ + + BUGS="case-label.c one-line-1.c one-line-2.c one-line-3.c \ + one-line-4.c struct-decl.c sizeof-in-while.c line-break-comment.c \ +- macro.c enum.c elif.c nested.c wrapped-string.c minus_predecrement.c" ++ macro.c enum.c elif.c nested.c wrapped-string.c minus_predecrement.c \ ++ float-constant-suffix.c" + + INDENTSRC="args.c backup.h backup.c dirent_def.h globs.c indent.h \ + indent.c indent_globs.h io.c lexi.c memcpy.c parse.c pr_comment.c \ +diff --git a/regression/input/float-constant-suffix.c b/regression/input/float-constant-suffix.c +new file mode 100644 +index 0000000..58f5310 +--- /dev/null ++++ b/regression/input/float-constant-suffix.c +@@ -0,0 +1,13 @@ ++float foo = 1.0F; ++float foo = 1.0f; ++double foo = 1.0; ++double foo = 1.0; ++long double foo = 1.0L; ++long double foo = 1.0l; ++ ++_Decimal32 foo = 1.0DF; ++_Decimal32 foo = 1.0df; ++_Decimal64 foo = 1.0DD; ++_Decimal64 foo = 1.0dd; ++_Decimal128 foo = 1.0DL; ++_Decimal128 foo = 1.0dl; +diff --git a/regression/standard/float-constant-suffix.c b/regression/standard/float-constant-suffix.c +new file mode 100644 +index 0000000..58f5310 +--- /dev/null ++++ b/regression/standard/float-constant-suffix.c +@@ -0,0 +1,13 @@ ++float foo = 1.0F; ++float foo = 1.0f; ++double foo = 1.0; ++double foo = 1.0; ++long double foo = 1.0L; ++long double foo = 1.0l; ++ ++_Decimal32 foo = 1.0DF; ++_Decimal32 foo = 1.0df; ++_Decimal64 foo = 1.0DD; ++_Decimal64 foo = 1.0dd; ++_Decimal128 foo = 1.0DL; ++_Decimal128 foo = 1.0dl; +diff --git a/src/lexi.c b/src/lexi.c +index abc2bfa..eafb65e 100644 +--- a/src/lexi.c ++++ b/src/lexi.c +@@ -330,6 +330,15 @@ extern codes_ty lexi(void) + { + buf_ptr++; + } ++ else if (*buf_ptr == 'D' || *buf_ptr == 'd') ++ { ++ if (buf_ptr[1] == 'F' || buf_ptr[1] == 'f' || ++ buf_ptr[1] == 'D' || buf_ptr[1] == 'd' || ++ buf_ptr[1] == 'L' || buf_ptr[1] == 'l') ++ { ++ buf_ptr+=2; ++ } ++ } + else + { + while (*buf_ptr == 'U' || *buf_ptr == 'u' || *buf_ptr == 'L' || *buf_ptr == 'l') +-- +1.7.6 + diff --git a/mingw-w64-indent/indent-2.2.11-disable-documentation.patch b/mingw-w64-indent/indent-2.2.11-disable-documentation.patch new file mode 100644 index 0000000000..8a6a6e42c9 --- /dev/null +++ b/mingw-w64-indent/indent-2.2.11-disable-documentation.patch @@ -0,0 +1,21 @@ +--- indent-2.2.11/configure.ac.orig 2015-03-06 22:17:50.197484100 +0000 ++++ indent-2.2.11/configure.ac 2015-03-06 22:18:02.402705900 +0000 +@@ -65,7 +65,6 @@ + po/Makefile.in + Makefile + src/Makefile +- doc/Makefile + man/Makefile + ], + [touch Makefile.in]) +--- indent-2.2.11/Makefile.am.orig 2008-05-21 21:18:40.000000000 +0100 ++++ indent-2.2.11/Makefile.am 2015-03-06 22:23:57.682642900 +0000 +@@ -1,7 +1,7 @@ + ## Process this file with automake to produce Makefile.in + AUTOMAKE_OPTIONS = no-texinfo.tex + +-SUBDIRS = intl src doc po man ++SUBDIRS = intl src po man + + BUILT_SOURCES = + diff --git a/mingw-w64-indent/indent-2.2.11-segfault.patch b/mingw-w64-indent/indent-2.2.11-segfault.patch new file mode 100644 index 0000000000..e919224809 --- /dev/null +++ b/mingw-w64-indent/indent-2.2.11-segfault.patch @@ -0,0 +1,16 @@ +--- a/man/texinfo2man.c ++++ b/man/texinfo2man.c +@@ -287,6 +287,13 @@ + char buf[1024]; + int line_no = 0; + ++ if (argc != 3) ++ { ++ fprintf(stderr, "Usage: %s \n", argv[0]); ++ fprintf(stderr, " The man page will be written to stdout.\n"); ++ return -1; ++ } ++ + texinfoname = argv[2]; + + in = fopen (argv[2], "r"); diff --git a/mingw-w64-indent/indent-2.2.11-win32-wildexp-automake-support.patch b/mingw-w64-indent/indent-2.2.11-win32-wildexp-automake-support.patch new file mode 100644 index 0000000000..8aec4e63d1 --- /dev/null +++ b/mingw-w64-indent/indent-2.2.11-win32-wildexp-automake-support.patch @@ -0,0 +1,30 @@ +--- indent-2.2.11/configure.ac.orig 2010-01-31 16:22:49.000000000 +0000 ++++ indent-2.2.11/configure.ac 2015-03-06 22:12:50.392705100 +0000 +@@ -50,6 +50,8 @@ + AC_CHECK_FUNCS(strchr memcpy memmove utime) + AC_CHECK_HEADERS(unistd.h string.h malloc.h utime.h sys/utime.h) + ++AM_CONDITIONAL([WIN32], [test "x$host_os" = xmingw32]) ++ + if test "$ac_cv_func_utime" = yes ; then + if test "$ac_cv_header_utime_h" = yes ; then + indent_UTIMBUF +--- indent-2.2.11/src/Makefile.am.orig 2015-03-06 17:34:02.942327300 +0000 ++++ indent-2.2.11/src/Makefile.am 2015-03-06 17:34:15.723827300 +0000 +@@ -1,10 +1,15 @@ + AUTOMAKE_OPTIONS = 1.2 gnits + + bin_PROGRAMS = indent ++if WIN32 ++indent_SOURCES = indent.c args.c backup.c comments.c lexi.c parse.c globs.c code_io.c output.c utils.c handletoken.c wildexp.c ++else + indent_SOURCES = indent.c args.c backup.c comments.c lexi.c parse.c globs.c code_io.c output.c utils.c handletoken.c ++EXTRA_DIST_WILDEXP_C = wildexp.c ++endif + noinst_HEADERS = indent.h args.h backup.h comments.h lexi.h parse.h globs.h code_io.h output.h utils.h sys.h libgettext.h handletoken.h + indent_LDADD = $(INTLLIBS) +-EXTRA_DIST = @PACKAGE@.gperf @PACKAGE@-cc.gperf wildexp.c gperf.c gperf-cc.c \ ++EXTRA_DIST = @PACKAGE@.gperf @PACKAGE@-cc.gperf $(EXTRA_DIST_WILDEXP_C) gperf.c gperf-cc.c \ + @PACKAGE@.dsp \ + config.h.vc++ \ + config.h.vms From 8f367ac80837e00def62f07cdfd3b20213c69a3d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 7 Mar 2015 00:14:37 +0000 Subject: [PATCH 0629/2060] astyle: Added --- mingw-w64-astyle/PKGBUILD | 28 ++++++++++++++++++++ mingw-w64-astyle/mingw-w64-fix-install.patch | 11 ++++++++ 2 files changed, 39 insertions(+) create mode 100644 mingw-w64-astyle/PKGBUILD create mode 100644 mingw-w64-astyle/mingw-w64-fix-install.patch diff --git a/mingw-w64-astyle/PKGBUILD b/mingw-w64-astyle/PKGBUILD new file mode 100644 index 0000000000..46a3e13cb7 --- /dev/null +++ b/mingw-w64-astyle/PKGBUILD @@ -0,0 +1,28 @@ +# Maintainer: Ray Donnelly + +_realname=astyle +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.05.1 +pkgrel=1 +arch=('any') +source=("http://sourceforge.net/projects/${_realname}/files/${_realname}/${_realname}%202.05.1/${_realname}_${pkgver}_linux.tar.gz" + "mingw-w64-fix-install.patch") +sha1sums=('b2ccedbb49f7f892afd6a9a59a67b57c36c41df3' + 'd36a9cb920c52d36fe9e53decfad5049f7c44324') + +prepare() { + cd "${srcdir}"/${_realname} + patch -p1 -i "${srcdir}"/mingw-w64-fix-install.patch +} + +build() { + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mv "${srcdir}"/${_realname} "${srcdir}"/build-${CARCH} + cd "${srcdir}"/build-${CARCH}/build/gcc + make +} + +package() { + cd "${srcdir}"/build-${CARCH}/build/gcc + make install prefix=${pkgdir}${MINGW_PREFIX} +} diff --git a/mingw-w64-astyle/mingw-w64-fix-install.patch b/mingw-w64-astyle/mingw-w64-fix-install.patch new file mode 100644 index 0000000000..bf969c1787 --- /dev/null +++ b/mingw-w64-astyle/mingw-w64-fix-install.patch @@ -0,0 +1,11 @@ +--- build-x86_64/build/gcc/Makefile.orig 2014-12-11 14:42:25.000000000 +0000 ++++ build-x86_64/build/gcc/Makefile 2015-03-07 00:05:08.142425600 +0000 +@@ -35,7 +35,7 @@ + CBASEFLAGS = -W -Wall -fno-rtti -fno-exceptions + JAVAINCS = -I$(JAVA_HOME)/include + CXX = g++ +-INSTALL=install -o $(USER) -g $(USER) ++INSTALL=install + + ################################################## + From 83a7247f02b16c57a4eb6faea410f23bc917d06f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 7 Mar 2015 09:52:36 +0300 Subject: [PATCH 0630/2060] harfbuzz: Update to 0.9.39 --- mingw-w64-harfbuzz/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 9481dc56dc..08a4a0492b 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -3,8 +3,8 @@ _realname=harfbuzz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.38 -pkgrel=3 +pkgver=0.9.39 +pkgrel=1 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/HarfBuzz" @@ -20,7 +20,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") -sha256sums=('6736f383b4edfcaaeb6f3292302ca382d617d8c79948bb2dd2e8f86cdccfd514') +sha256sums=('1717344b6e782d3fb57180da792fba661c2f0b1cb32ecbf373c219c801d6136b') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 5879815ca436ebd99fdd72fdb6eb1e75e7cb2dba Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 7 Mar 2015 09:53:46 +0300 Subject: [PATCH 0631/2060] libsigc++: Update to 2.4.1 --- mingw-w64-libsigc++/PKGBUILD | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libsigc++/PKGBUILD b/mingw-w64-libsigc++/PKGBUILD index b5564a2f9f..bb692c1786 100644 --- a/mingw-w64-libsigc++/PKGBUILD +++ b/mingw-w64-libsigc++/PKGBUILD @@ -2,7 +2,7 @@ _realname=libsigc++ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.4.0 +pkgver=2.4.1 pkgrel=1 pkgdesc="Libsigc++ implements a full callback system for use in widget libraries - V2 (mingw-w64)" arch=('any') @@ -12,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/GNOME/sources/libsigc++/${pkgver%.*}/libsigc++-${pkgver}.tar.xz") -sha256sums=('7593d5fa9187bbad7c6868dce375ce3079a805f3f1e74236143bceb15a37cd30') +sha256sums=('540443492a68e77e30db8d425f3c0b1299c825bf974d9bfc31ae7efafedc19ec') build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" @@ -24,10 +24,13 @@ build() { --enable-static \ --enable-shared \ --disable-documentation + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 0db1cbd6f9992cdfa434eda3fc13b288dfd07bbc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 7 Mar 2015 09:54:52 +0300 Subject: [PATCH 0632/2060] qtcreator: Update to 3.3.2 --- mingw-w64-qtcreator/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 367331d130..9dda823cf2 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -5,7 +5,7 @@ _realname=qt-creator pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" # WIP for 3.? __pre= -_base_ver=3.3.1 +_base_ver=3.3.2 #_base_ver=3.2.2 pkgver=${_base_ver}${_pre} pkgrel=2 @@ -46,7 +46,7 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v qt-creator-3.3.0-abi-msys-is-Windows.patch qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch) noextract=(${_pkgfqn}.tar.gz) -sha256sums=('afefb73a05cdc36cdfb8a760c2b39eb6c366a22ef47c7d365d446092dd1d5331' +sha256sums=('6ef76d23c778a58caffb487b8bc6a192defa2d5dd5fab1ecf8eb70d53ccfb98a' '18f59946054e667b56276f53ec544d4786c3c249fee6c0bd9b0b565ed4b7cf2d' '6c34b2bad7a24c5922d237dc67fcced14e83d65116f77cd84aa80ae2ebd4aad9' '2f45ff4c2806c90c36f19da07707fef213e50fbf8825fe169e1bce6349efacee' From e02d06cfcf309b89c75b111995b2164a77c313cf Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 7 Mar 2015 17:28:19 +0000 Subject: [PATCH 0633/2060] creduce-git: Add astyle and indent depends --- mingw-w64-creduce-git/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-creduce-git/PKGBUILD b/mingw-w64-creduce-git/PKGBUILD index 861335e11e..c16ead2b91 100644 --- a/mingw-w64-creduce-git/PKGBUILD +++ b/mingw-w64-creduce-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=creduce pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${_realname}-git-perl-${CARCH}") -pkgver=creduce.2.2.0.13.gbd8882c +pkgver=creduce.2.2.0.18.g3f1d123 pkgrel=1 arch=('any') url='https://github.com/csmith-project/creduce' @@ -57,14 +57,14 @@ package_mingw-w64-creduce-git() { package_creduce-git-perl() { pkgdesc='A C program reducer - perl scripts' depends=('delta' -# 'astyle' -# 'indent' 'perl-Benchmark-Timer' 'perl-Exporter-Lite' 'perl-File-Which' 'perl-Getopt-Tabular' 'perl-Regexp-Common' 'perl-Sys-CPU' + "${MINGW_PACKAGE_PREFIX}-astyle" + "${MINGW_PACKAGE_PREFIX}-indent" ) cd "$srcdir/${CARCH}" make DESTDIR="$pkgdir" install From b7322876f89bff51da5239440571b2db1cbb8dbd Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 7 Mar 2015 21:45:01 +0300 Subject: [PATCH 0634/2060] astyle: Add missing PKGBUILD fields. --- mingw-w64-astyle/PKGBUILD | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mingw-w64-astyle/PKGBUILD b/mingw-w64-astyle/PKGBUILD index 46a3e13cb7..ba7f0a4420 100644 --- a/mingw-w64-astyle/PKGBUILD +++ b/mingw-w64-astyle/PKGBUILD @@ -4,9 +4,12 @@ _realname=astyle pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.05.1 pkgrel=1 +pkgdesc='A free, fast and small automatic formatter for C, C++, C#, and Java source code (mingw-w64)' arch=('any') +license=('LGPL') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") source=("http://sourceforge.net/projects/${_realname}/files/${_realname}/${_realname}%202.05.1/${_realname}_${pkgver}_linux.tar.gz" - "mingw-w64-fix-install.patch") + "mingw-w64-fix-install.patch") sha1sums=('b2ccedbb49f7f892afd6a9a59a67b57c36c41df3' 'd36a9cb920c52d36fe9e53decfad5049f7c44324') From f3ec82225f2119f3ae0caec01370c9312beb037b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 7 Mar 2015 23:19:25 +0300 Subject: [PATCH 0635/2060] blender-git: Update to git SHA [c32ded3] --- mingw-w64-blender-git/PKGBUILD | 84 ++++++++------ .../fix-mingw-w64-definitions.patch | 24 ++-- ...mingw-DEBUG-dont-suffix-libs-with-_d.patch | 20 ++++ ...-DEBUG-libmv-avoid-too-many-sections.patch | 12 ++ mingw-w64-blender-git/mingw-w64-cmake.patch | 103 +++++++++++------- mingw-w64-blender-git/osl-deprecate-api.patch | 11 ++ 6 files changed, 165 insertions(+), 89 deletions(-) create mode 100644 mingw-w64-blender-git/mingw-DEBUG-dont-suffix-libs-with-_d.patch create mode 100644 mingw-w64-blender-git/mingw-DEBUG-libmv-avoid-too-many-sections.patch create mode 100644 mingw-w64-blender-git/osl-deprecate-api.patch diff --git a/mingw-w64-blender-git/PKGBUILD b/mingw-w64-blender-git/PKGBUILD index 91ff36c586..3287efb78e 100644 --- a/mingw-w64-blender-git/PKGBUILD +++ b/mingw-w64-blender-git/PKGBUILD @@ -5,8 +5,8 @@ _realname=blender pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -blender_version=2.71 -pkgver=r56781.47ebf96 +blender_version=2.74 +pkgver=r58316.c32ded3 _pyver=3.4 pkgrel=1 pkgdesc="A fully integrated 3D graphics creation suite (mingw-w64)" @@ -14,26 +14,28 @@ arch=('any') license=('GPL') url="http://www.blender.org" depends=("${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-glew" - "${MINGW_PACKAGE_PREFIX}-ffmpeg" - "${MINGW_PACKAGE_PREFIX}-fftw" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libsndfile" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-openexr" - "${MINGW_PACKAGE_PREFIX}-openal" - "${MINGW_PACKAGE_PREFIX}-opencollada" - "${MINGW_PACKAGE_PREFIX}-opencolorio" - "${MINGW_PACKAGE_PREFIX}-openimageio" - "${MINGW_PACKAGE_PREFIX}-openshadinglanguage" - "${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-python3-numpy" - "${MINGW_PACKAGE_PREFIX}-wintab-sdk") -makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-clang" "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-glew" + "${MINGW_PACKAGE_PREFIX}-ffmpeg" + "${MINGW_PACKAGE_PREFIX}-fftw" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libsndfile" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-openexr" + "${MINGW_PACKAGE_PREFIX}-openal" + "${MINGW_PACKAGE_PREFIX}-opencollada" + "${MINGW_PACKAGE_PREFIX}-opencolorio" + "${MINGW_PACKAGE_PREFIX}-openimageio" + "${MINGW_PACKAGE_PREFIX}-openshadinglanguage-git" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python3-numpy" + "${MINGW_PACKAGE_PREFIX}-wintab-sdk") +makedepends=("${MINGW_PACKAGE_PREFIX}-clang" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" "git") #[[ $CARCH == x86_64 ]] && makedepends+=('cuda') -optdepends=('cuda: cycles renderer cuda support') +#optdepends=('cuda: cycles renderer cuda support') options=(!strip staticlibs !buildflags) #install=blender.install source=("${_realname}"::"git://git.blender.org/blender.git" @@ -44,18 +46,24 @@ source=("${_realname}"::"git://git.blender.org/blender.git" "fix-mingw-w64-definitions.patch" "mingw-dont-install-3rdparty.patch" "fix-finding-glew.patch" + "fix-define-syntax.patch" + "mingw-DEBUG-libmv-avoid-too-many-sections.patch" + "mingw-DEBUG-dont-suffix-libs-with-_d.patch" "mingw-use-X11-like-path-layout.patch" - "fix-define-syntax.patch") + "osl-deprecate-api.patch") md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - '803bad7d8a6bd148f88a1b66d36be31f' - '39e931d7652c9c95982330d95bfdd2e3' + 'c3426eb608350bdedb89c531b72cff36' + '545eaf9f3268b96d1cb2764c51ec063d' '1969914e11d0a4f74dbfeddad742c9da' 'b11e3fe76c4433abb53c12e723dfbe4f' + '9c5a4e230d1c9081096d53d206cc03b4' + 'e8dbeac11a43dc307fe826cd41100b8e' + '4d104bac37e549eb32cffd473550412e' 'bdac7b47c5886bbcede99516a67de0c2' - '9c5a4e230d1c9081096d53d206cc03b4') + '407dd78ee33dd9ab1212ba93af396d6c') pkgver() { cd "$srcdir/$_realname" @@ -64,12 +72,15 @@ pkgver() { prepare() { cd "$srcdir/$_realname" - patch -p1 -i ${srcdir}/mingw-w64-cmake.patch - patch -p1 -i ${srcdir}/fix-mingw-w64-definitions.patch - patch -p1 -i ${srcdir}/mingw-dont-install-3rdparty.patch - patch -p1 -i ${srcdir}/fix-finding-glew.patch - patch -p1 -i ${srcdir}/fix-define-syntax.patch - patch -p1 -i ${srcdir}/mingw-use-X11-like-path-layout.patch + patch -p1 -i "${srcdir}"/mingw-w64-cmake.patch + patch -p1 -i "${srcdir}"/fix-mingw-w64-definitions.patch + patch -p1 -i "${srcdir}"/mingw-dont-install-3rdparty.patch + patch -p1 -i "${srcdir}"/fix-finding-glew.patch + patch -p1 -i "${srcdir}"/fix-define-syntax.patch + patch -p1 -i "${srcdir}"/mingw-DEBUG-libmv-avoid-too-many-sections.patch + patch -p1 -i "${srcdir}"/mingw-DEBUG-dont-suffix-libs-with-_d.patch + patch -p1 -i "${srcdir}"/mingw-use-X11-like-path-layout.patch + patch -p1 -i "${srcdir}"/osl-deprecate-api.patch cp -rf $srcdir/translations/* $srcdir/$_realname/release/datafiles/locale/ cp -rf $srcdir/addons/* $srcdir/$_realname/release/scripts/addons/ @@ -132,9 +143,14 @@ package() { cd "$srcdir/build-${MINGW_CHOST}" make install - ${MINGW_PREFIX}/bin/python3 -m compileall "${pkgdir}${MINGW_PREFIX}/bin/$blender_version" + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib + cp -r bin ${pkgdir}${MINGW_PREFIX}/ + rm ${pkgdir}${MINGW_PREFIX}/bin/msgfmt.exe + mv ${pkgdir}${MINGW_PREFIX}/bin/*.a ${pkgdir}${MINGW_PREFIX}/lib/ + + ${MINGW_PREFIX}/bin/python3 -m compileall "${pkgdir}${MINGW_PREFIX}/share/blender/$blender_version" ${MINGW_PREFIX}/bin/python3 -m compileall \ - ${pkgdir}${MINGW_PREFIX}/bin/$blender_version/scripts/startup \ - ${pkgdir}${MINGW_PREFIX}/bin/$blender_version/scripts/modules \ - ${pkgdir}${MINGW_PREFIX}/bin/$blender_version/scripts/addons + ${pkgdir}${MINGW_PREFIX}/share/blender/$blender_version/scripts/startup \ + ${pkgdir}${MINGW_PREFIX}/share/blender/$blender_version/scripts/modules \ + ${pkgdir}${MINGW_PREFIX}/share/blender/$blender_version/scripts/addons } diff --git a/mingw-w64-blender-git/fix-mingw-w64-definitions.patch b/mingw-w64-blender-git/fix-mingw-w64-definitions.patch index 152aeb2ef2..629e384343 100644 --- a/mingw-w64-blender-git/fix-mingw-w64-definitions.patch +++ b/mingw-w64-blender-git/fix-mingw-w64-definitions.patch @@ -90,23 +90,26 @@ diff -Naur blender/extern/libmv/third_party/glog/src/windows/port.h blender-pp/e /* SSE intrinsics headers */ -#ifndef FREE_WINDOWS64 - #ifdef __KERNEL_SSE2__ - #include /* SSE 1 */ -@@ -95,14 +94,6 @@ - #include /* SSE 4.1 */ + #ifdef _MSC_VER + #include +@@ -95,17 +94,6 @@ + #endif -#else - -/* MinGW64 has conflicting declarations for these SSE headers in . - * Since we can't avoid including , better only include that */ +-#define NOGDI +-#define NOMINMAX +-#define WIN32_LEAN_AND_MEAN -#include - -#endif - #endif - #endif /* __UTIL_OPTIMIZATION_H__ */ + #endif diff -Naur blender/intern/cycles/util/util_types.h blender-pp/intern/cycles/util/util_types.h --- blender/intern/cycles/util/util_types.h 2014-01-14 08:17:57.658600000 +0400 +++ blender-pp/intern/cycles/util/util_types.h 2014-01-14 08:47:39.800000000 +0400 @@ -210,14 +213,3 @@ diff -Naur blender/source/blender/blenlib/BLI_winstuff.h blender-pp/source/blend /* python uses HAVE_SSIZE_T */ # ifndef HAVE_SSIZE_T # define HAVE_SSIZE_T 1 -diff -Naur blender/source/blender/blenlib/intern/rand.c blender-pp/source/blender/blenlib/intern/rand.c ---- blender/source/blender/blenlib/intern/rand.c 2014-01-14 08:18:15.661000000 +0400 -+++ blender-pp/source/blender/blenlib/intern/rand.c 2014-01-14 07:08:38.456800000 +0400 -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - - #include "MEM_guardedalloc.h" - diff --git a/mingw-w64-blender-git/mingw-DEBUG-dont-suffix-libs-with-_d.patch b/mingw-w64-blender-git/mingw-DEBUG-dont-suffix-libs-with-_d.patch new file mode 100644 index 0000000000..1c1cf2026e --- /dev/null +++ b/mingw-w64-blender-git/mingw-DEBUG-dont-suffix-libs-with-_d.patch @@ -0,0 +1,20 @@ +--- blender-2.72/build_files/cmake/macros.cmake.orig 2014-10-07 11:53:48.545534700 +0100 ++++ blender-2.72/build_files/cmake/macros.cmake 2014-10-07 11:55:10.141534700 +0100 +@@ -294,7 +294,7 @@ + if(WITH_PYTHON) # AND NOT WITH_PYTHON_MODULE # WIN32 needs + target_link_libraries(${target} ${PYTHON_LINKFLAGS}) + +- if(WIN32 AND NOT UNIX) ++ if(WIN32 AND NOT UNIX AND NOT MINGW) + file_list_suffix(PYTHON_LIBRARIES_DEBUG "${PYTHON_LIBRARIES}" "_d") + target_link_libraries_debug(${target} "${PYTHON_LIBRARIES_DEBUG}") + target_link_libraries_optimized(${target} "${PYTHON_LIBRARIES}") +@@ -366,7 +366,7 @@ + target_link_libraries(${target} ${FFMPEG_LIBRARIES}) + endif() + if(WITH_OPENCOLLADA) +- if(WIN32 AND NOT UNIX) ++ if(WIN32 AND NOT UNIX AND NOT MINGW) + file_list_suffix(OPENCOLLADA_LIBRARIES_DEBUG "${OPENCOLLADA_LIBRARIES}" "_d") + target_link_libraries_debug(${target} "${OPENCOLLADA_LIBRARIES_DEBUG}") + target_link_libraries_optimized(${target} "${OPENCOLLADA_LIBRARIES}") diff --git a/mingw-w64-blender-git/mingw-DEBUG-libmv-avoid-too-many-sections.patch b/mingw-w64-blender-git/mingw-DEBUG-libmv-avoid-too-many-sections.patch new file mode 100644 index 0000000000..811cf0f13b --- /dev/null +++ b/mingw-w64-blender-git/mingw-DEBUG-libmv-avoid-too-many-sections.patch @@ -0,0 +1,12 @@ +--- blender-2.72/extern/libmv/CMakeLists.txt.orig 2014-10-07 11:57:07.942534700 +0100 ++++ blender-2.72/extern/libmv/CMakeLists.txt 2014-10-07 11:36:50.624534700 +0100 +@@ -170,6 +170,9 @@ + ) + + if(WIN32) ++ # To avoid ..\fundamental.cc.obj: too many sections (35985) ++ set_source_files_properties(libmv/multiview/fundamental.cc PROPERTIES COMPILE_FLAGS "-g0") ++ set_source_files_properties(libmv/simple_pipeline/resect.cc PROPERTIES COMPILE_FLAGS "-g0") + list(APPEND INC + third_party/glog/src/windows + ) diff --git a/mingw-w64-blender-git/mingw-w64-cmake.patch b/mingw-w64-blender-git/mingw-w64-cmake.patch index 9bf2111cb1..762f67fc19 100644 --- a/mingw-w64-blender-git/mingw-w64-cmake.patch +++ b/mingw-w64-blender-git/mingw-w64-cmake.patch @@ -1,6 +1,6 @@ ---- blender/CMakeLists.txt.orig 2014-04-08 00:22:36.736800000 +0400 -+++ blender/CMakeLists.txt 2014-04-08 06:51:03.051600000 +0400 -@@ -171,6 +171,8 @@ +--- blender-2.73/CMakeLists.txt.orig 2015-01-07 18:32:07.000000000 +0300 ++++ blender-2.73/CMakeLists.txt 2015-01-10 20:57:50.362800000 +0300 +@@ -251,6 +251,8 @@ if(UNIX AND NOT APPLE) option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" ON) option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON) @@ -9,16 +9,16 @@ else() # not an option for other OS's set(WITH_SYSTEM_GLEW OFF) -@@ -579,7 +581,7 @@ - #----------------------------------------------------------------------------- - #Platform specifics +@@ -781,7 +781,7 @@ + + endif() -if(UNIX AND NOT APPLE) +if((UNIX AND NOT APPLE) OR MINGW) macro(find_package_wrapper) - string(TOUPPER ${ARGV0} _NAME_UPPER) if(WITH_STATIC_LIBS) -@@ -598,15 +600,29 @@ + set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES}) +@@ -799,15 +799,29 @@ find_package_wrapper(ZLIB REQUIRED) find_package_wrapper(Freetype REQUIRED) @@ -48,7 +48,7 @@ endif() if(WITH_IMAGE_OPENEXR) -@@ -670,7 +686,11 @@ +@@ -896,7 +896,11 @@ endif() if(WITH_CODEC_FFMPEG) @@ -60,7 +60,7 @@ set(FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries") mark_as_advanced(FFMPEG) -@@ -699,6 +719,9 @@ +@@ -928,6 +928,9 @@ if(OPENCOLLADA_FOUND) find_package_wrapper(XML2) find_package_wrapper(PCRE) @@ -70,7 +70,23 @@ else() set(WITH_OPENCOLLADA OFF) endif() -@@ -855,8 +878,13 @@ +@@ -940,11 +940,15 @@ + endif() + find_package_wrapper(OpenShadingLanguage) + if(OSL_FOUND) ++ if(MINGW) ++ list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} ${OSL_LIB_EXEC} ${OSL_LIB_QUERY}) ++ else() + if(${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6") + # Note: --whole-archive is needed to force loading of all symbols in liboslexec, + # otherwise LLVM is missing the osl_allocate_closure_component function + set(OSL_LIBRARIES ${OSL_OSLCOMP_LIBRARY} -Wl,--whole-archive ${OSL_OSLEXEC_LIBRARY} -Wl,--no-whole-archive ${OSL_OSLQUERY_LIBRARY}) + endif() ++ endif() + else() + message(STATUS "OSL not found, disabling it from Cycles") + set(WITH_CYCLES_OSL OFF) +@@ -1121,8 +1121,13 @@ endif() if(WITH_LLVM OR WITH_SDL_DYNLOAD) @@ -84,21 +100,7 @@ endif() if(WITH_CYCLES_OSL) -@@ -867,9 +895,13 @@ - find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib) - find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib) - find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib) -+ if(MINGW) -+ list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} ${OSL_LIB_EXEC} ${OSL_LIB_QUERY}) -+ else() - # Note: --whole-archive is needed to force loading of all symbols in liboslexec, - # otherwise LLVM is missing the osl_allocate_closure_component function - list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -Wl,--whole-archive ${OSL_LIB_EXEC} -Wl,--no-whole-archive ${OSL_LIB_QUERY}) -+ endif() - find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include) - find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin) - -@@ -883,6 +915,45 @@ +@@ -1130,6 +1130,50 @@ endif() endif() @@ -123,7 +125,12 @@ + else() + message(STATUS "Compiling with MinGW-w32.") + endif() -+ list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi) ++ list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi -ldbghelp) ++ ++ if(WITH_INPUT_IME) ++ list(APPEND PLATFORM_LINKLIBS imm32) ++ endif() ++ + set(PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing") + if(WITH_MINGW64) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") @@ -142,9 +149,9 @@ + endif() + else() # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed - set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread") + list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm) -@@ -958,12 +1031,12 @@ +@@ -1229,12 +1229,12 @@ set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel") endif() @@ -157,13 +164,12 @@ - if(MSVC) - set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid psapi) - -@@ -1329,229 +1402,6 @@ - + # needed for some MSVC installations + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO") +@@ -1585,247 +1585,6 @@ # used in many places so include globally, like OpenGL blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}") -- + - elseif(CMAKE_COMPILER_IS_GNUCC) - # keep GCC specific stuff here - include(CheckCSourceCompiles) @@ -178,7 +184,12 @@ - - if(WITH_MINGW64) - message(STATUS "Compiling for 64 bit with MinGW-w64.") -- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw64) +- execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) +- if(GCC_VERSION VERSION_GREATER 4.9 OR GCC_VERSION VERSION_EQUAL 4.9) +- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw64_gcc49) +- else() +- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw64) +- endif() - else() - message(STATUS "Compiling for 32 bit with MinGW-w32.") - set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw32) @@ -188,7 +199,12 @@ - endif() - endif() - -- list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi) +- list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi -ldbghelp) +- +- if(WITH_INPUT_IME) +- list(APPEND PLATFORM_LINKLIBS -limm32) +- endif() +- - set(PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing") - - if(WITH_MINGW64) @@ -342,11 +358,12 @@ - set(OPENIMAGEIO_LIBRARIES OpenImageIO) - set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) - set(OPENIMAGEIO_DEFINITIONS "") +- set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe") - endif() - - if(WITH_LLVM) -- set(LLVM_DIRECTORY ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation") -- set(LLVM_LIBPATH ${LLVM_DIRECTORY}/lib) +- set(LLVM_ROOT_DIR ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation") +- set(LLVM_LIBPATH ${LLVM_ROOT_DIR}/lib) - # Explicitly set llvm lib order. - #---- WARNING ON GCC ORDER OF LIBS IS IMPORTANT, DO NOT CHANGE! --------- - set(LLVM_LIBRARY LLVMSelectionDAG LLVMCodeGen LLVMScalarOpts LLVMAnalysis LLVMArchive @@ -379,6 +396,13 @@ - set(OPENCOLORIO_DEFINITIONS) - endif() - +- if(WITH_SDL) +- set(SDL ${LIBDIR}/sdl) +- set(SDL_INCLUDE_DIR ${SDL}/include) +- set(SDL_LIBRARY SDL) +- set(SDL_LIBPATH ${SDL}/lib) +- endif() +- - set(PLATFORM_LINKFLAGS "-Xlinker --stack=2097152") - - ## DISABLE - causes linking errors @@ -386,6 +410,7 @@ - # set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-libgcc -static-libstdc++") - - endif() - +- # Things common to both mingw and MSVC should go here + set(WINTAB_INC ${LIBDIR}/wintab/include) diff --git a/mingw-w64-blender-git/osl-deprecate-api.patch b/mingw-w64-blender-git/osl-deprecate-api.patch new file mode 100644 index 0000000000..ff8d1edd6e --- /dev/null +++ b/mingw-w64-blender-git/osl-deprecate-api.patch @@ -0,0 +1,11 @@ +--- blender-2.73/intern/cycles/kernel/osl/osl_closures.cpp.orig 2015-01-11 15:22:14.583200000 +0300 ++++ blender-2.73/intern/cycles/kernel/osl/osl_closures.cpp 2015-01-11 15:22:23.334800000 +0300 +@@ -189,7 +189,7 @@ + /* optimization: it's possible to not use a prepare function at all and + * only initialize the actual class when accessing the closure component + * data, but then we need to map the id to the class somehow */ +- ss->register_closure(name, id, params, prepare, NULL, 16); ++ ss->register_closure(name, id, params, prepare, NULL/*, 16*/); + } + + void OSLShader::register_closures(OSLShadingSystem *ss_) From 4fb22496887a7b9f823bc8151dfa498eaf85056e Mon Sep 17 00:00:00 2001 From: David Macek Date: Mon, 9 Mar 2015 23:36:31 +0100 Subject: [PATCH 0636/2060] pngcrush: Update to v1.7.85 --- mingw-w64-pngcrush/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-pngcrush/PKGBUILD b/mingw-w64-pngcrush/PKGBUILD index 37d6874c3a..43e95c2186 100644 --- a/mingw-w64-pngcrush/PKGBUILD +++ b/mingw-w64-pngcrush/PKGBUILD @@ -2,7 +2,7 @@ _realname=pngcrush pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.7.84 +pkgver=1.7.85 pkgrel=1 pkgdesc="A tool for optimizing the compression of PNG files (mingw-w64)" arch=('any') @@ -12,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-zlib") source=("http://downloads.sourceforge.net/pmt/${_realname}-${pkgver}-nolib.tar.gz" LICENSE) -md5sums=('ee96d73c620f21a46c33abfa350ccfc9' +md5sums=('3c18235755e509f129b9ff86d5076da4' 'e6446a786d939c98fcada57f9ae6de1f') prepare() { From 355cb501bd18e60b32b79472bc5e2feda5fc8db8 Mon Sep 17 00:00:00 2001 From: David Macek Date: Mon, 9 Mar 2015 23:38:55 +0100 Subject: [PATCH 0637/2060] scite: Update to v3.5.4 --- mingw-w64-scite/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index 158fb7b733..847fa485cc 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -3,8 +3,8 @@ _realname=scite pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") -pkgver=3.5.3 -pkgrel=2 +pkgver=3.5.4 +pkgrel=1 arch=('any') url='http://www.scintilla.org/SciTE.html' license=('custom:scite') @@ -15,7 +15,7 @@ source=("http://downloads.sourceforge.net/scintilla/${_realname}${pkgver//./}.tg "0001-Use-POSIX-tools-in-makefiles.patch" "0002-Prefix-library-names.patch" "0003-Use-FHS.patch") -md5sums=('44df4b3e25d346189ddc688c689dcf05' +md5sums=('5438237551c50a9d57fce80dc23a4494' 'd4bd88fa3e173d26d9cacaef12b1d6f9' '2a9ec192f43f82d4b26b4a6667de350a' '17011da4ced7269d787433b599a1ae92') From 40ee28216f0f9cb134a853e16cbabdf7a82ce423 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 9 Mar 2015 22:51:26 +0000 Subject: [PATCH 0638/2060] python3: More of 'prefer unix sep if MSYSTEM' os.getcwd and _getfullpathname Also stopped using 0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch as I'm fairly sure it's not necessary. --- ...sys-mingw-prefer-unix-sep-if-MSYSTEM.patch | 196 ++++++++++++++---- .../0810-remove_path_max.default.patch | 2 +- mingw-w64-python3/PKGBUILD | 11 +- 3 files changed, 162 insertions(+), 47 deletions(-) diff --git a/mingw-w64-python3/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch b/mingw-w64-python3/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch index 57344775f7..ef46a6abc5 100644 --- a/mingw-w64-python3/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch +++ b/mingw-w64-python3/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch @@ -1,23 +1,19 @@ -diff -urN a/Include/osdefs.h b/Include/osdefs.h ---- a/Include/osdefs.h 2014-10-11 14:21:54.729296000 +0100 -+++ b/Include/osdefs.h 2014-10-11 14:21:56.586402200 +0100 -@@ -10,8 +10,13 @@ - /* Mod by chrish: QNX has WATCOM, but isn't DOS */ - #if !defined(__QNX__) - #if defined(MS_WINDOWS) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__DJGPP__) -+#if defined(__MINGW32__) -+#define SEP L'/' -+#define ALTSEP L'\\' -+#else - #define SEP L'\\' - #define ALTSEP L'/' -+#endif - #define MAXPATHLEN 256 - #define DELIM L';' - #define DELIMSTR ";" -diff -urN a/Lib/ntpath.py b/Lib/ntpath.py ---- a/Lib/ntpath.py 2014-10-11 14:21:53.975252900 +0100 -+++ b/Lib/ntpath.py 2014-10-11 14:21:56.588402400 +0100 +diff -urN Python-3.4.3.orig/Include/pythonrun.h Python-3.4.3/Include/pythonrun.h +--- Python-3.4.3.orig/Include/pythonrun.h 2015-03-09 19:25:39.911000000 +0000 ++++ Python-3.4.3/Include/pythonrun.h 2015-03-09 20:48:19.093996600 +0000 +@@ -22,6 +22,9 @@ + } PyCompilerFlags; + #endif + ++PyAPI_FUNC(void) Py_NormalizeSepsW(wchar_t *); ++PyAPI_FUNC(void) Py_NormalizeSepsA(char *); ++ + PyAPI_FUNC(void) Py_SetProgramName(wchar_t *); + PyAPI_FUNC(wchar_t *) Py_GetProgramName(void); + +diff -urN Python-3.4.3.orig/Lib/ntpath.py Python-3.4.3/Lib/ntpath.py +--- Python-3.4.3.orig/Lib/ntpath.py 2015-03-09 19:26:05.869000000 +0000 ++++ Python-3.4.3/Lib/ntpath.py 2015-03-09 17:57:36.932182800 +0000 @@ -24,9 +24,13 @@ curdir = '.' pardir = '..' @@ -62,10 +58,48 @@ diff -urN a/Lib/ntpath.py b/Lib/ntpath.py def _get_dot(path): if isinstance(path, bytes): -diff -urN a/Python/pythonrun.c b/Python/pythonrun.c ---- a/Python/pythonrun.c 2014-10-11 14:21:53.853245900 +0100 -+++ b/Python/pythonrun.c 2014-10-11 14:21:56.591402500 +0100 -@@ -871,17 +871,34 @@ +diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodule.c +--- Python-3.4.3.orig/Modules/posixmodule.c 2015-03-09 19:25:39.179000000 +0000 ++++ Python-3.4.3/Modules/posixmodule.c 2015-03-09 20:56:03.480148100 +0000 +@@ -3474,6 +3474,7 @@ + PyMem_RawFree(wbuf2); + return PyErr_SetFromWindowsErr(0); + } ++ Py_NormalizeSepsW(wbuf2); + resobj = PyUnicode_FromWideChar(wbuf2, len); + if (wbuf2 != wbuf) + PyMem_RawFree(wbuf2); +@@ -3955,7 +3956,10 @@ + result = GetFullPathNameW(wpath, result, woutbufp, &wtemp); + } + if (result) ++ { ++ Py_NormalizeSepsW(woutbufp); + v = PyUnicode_FromWideChar(woutbufp, wcslen(woutbufp)); ++ } + else + v = win32_error_object("GetFullPathNameW", po); + if (woutbufp != woutbuf) +@@ -3976,6 +3980,7 @@ + win32_error("GetFullPathName", path); + return NULL; + } ++ Py_NormalizeSepsA(outbuf); + if (PyUnicode_Check(PyTuple_GetItem(args, 0))) { + return PyUnicode_Decode(outbuf, strlen(outbuf), + Py_FileSystemDefaultEncoding, NULL); +@@ -4039,6 +4044,7 @@ + if(!CloseHandle(hFile)) + return win32_error_object("CloseHandle", po); + ++ Py_NormalizeSepsW(target_path); + target_path[result_length] = 0; + result = PyUnicode_FromWideChar(target_path, result_length); + PyMem_Free(target_path); +diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c +--- Python-3.4.3.orig/Python/pythonrun.c 2015-03-09 19:26:05.877000000 +0000 ++++ Python-3.4.3/Python/pythonrun.c 2015-03-09 20:57:32.059005100 +0000 +@@ -870,17 +870,118 @@ PyInterpreterState_Delete(interp); } @@ -77,7 +111,105 @@ diff -urN a/Python/pythonrun.c b/Python/pythonrun.c #else -static wchar_t *progname = L"python3"; +static wchar_t progname[PATH_MAX+1] = L"python3"; ++#endif ++ ++static wchar_t ++Py_GetSepW(wchar_t *name) ++{ ++ char* msystem = NULL; ++ static wchar_t sep = L'\0'; ++#ifdef _WIN32 ++ /* https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247%28v=vs.85%29.aspx ++ * The "\\?\" prefix .. indicate that the path should be passed to the system with minimal ++ * modification, which means that you cannot use forward slashes to represent path separators ++ */ ++ if (memcmp(name, L"\\\\?\\", sizeof(L"\\\\?\\") - sizeof(wchar_t)) == 0) ++ { ++ return L'\\'; ++ } ++#endif ++ if (sep != L'\0') ++ return sep; ++#if defined(__MINGW32__) ++ msystem = Py_GETENV("MSYSTEM"); ++#endif ++ if (msystem != NULL) ++ sep = L'/'; ++ else ++ sep = L'\\'; ++ return sep; ++} ++ ++static wchar_t ++Py_GetAltSepW(wchar_t *name) ++{ ++ char sep = Py_GetSepW(name); ++ if (sep == L'/') ++ return L'\\'; ++ return L'/'; ++} ++ ++static char ++Py_GetSepA(char *name) ++{ ++ char* msystem = NULL; ++ static char sep = '\0'; ++#ifdef _WIN32 ++ /* https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247%28v=vs.85%29.aspx ++ * The "\\?\" prefix .. indicate that the path should be passed to the system with minimal ++ * modification, which means that you cannot use forward slashes to represent path separators ++ */ ++ if (memcmp(name, "\\\\?\\", sizeof("\\\\?\\") - sizeof(char)) == 0) ++ { ++ return '\\'; ++ } ++#endif ++ if (sep != '\0') ++ return sep; ++#if defined(__MINGW32__) ++ msystem = Py_GETENV("MSYSTEM"); #endif ++ if (msystem != NULL) ++ sep = '/'; ++ else ++ sep = '\\'; ++ return sep; ++} ++ ++static wchar_t ++Py_GetAltSepA(char *name) ++{ ++ char sep = Py_GetSepA(name); ++ if (sep == '/') ++ return '\\'; ++ return '/'; ++} ++ ++void ++Py_NormalizeSepsW(wchar_t *name) ++{ ++ wchar_t sep = Py_GetSepW(name); ++ wchar_t altsep = Py_GetAltSepW(name); ++ wchar_t* seps; ++ seps = wcschr(name, altsep); ++ while(seps) { ++ *seps = sep; ++ seps = wcschr(seps, altsep); ++ } ++} ++ ++void ++Py_NormalizeSepsA(char *name) ++{ ++ char sep = Py_GetSepA(name); ++ char altsep = Py_GetAltSepA(name); ++ char* seps; ++ seps = strchr(name, altsep); ++ while(seps) { ++ *seps = sep; ++ seps = strchr(seps, altsep); ++ } ++} void Py_SetProgramName(wchar_t *pn) @@ -86,21 +218,7 @@ diff -urN a/Python/pythonrun.c b/Python/pythonrun.c - progname = pn; + wcsncpy(progname, pn, PATH_MAX); + pn = &progname[0]; -+#ifdef __MINGW32__ -+ { -+ char* msystem; -+ wchar_t altsep, sep; -+ wchar_t* seps; -+ msystem = Py_GETENV("MSYSTEM"); -+ altsep = msystem ? L'\\' : L'/'; -+ sep = msystem ? L'/' : L'\\'; -+ seps = wcschr(pn, altsep); -+ while(seps) { -+ *seps = sep; -+ seps = wcschr(seps, altsep); -+ } -+ } -+#endif ++ Py_NormalizeSepsW(pn); } wchar_t * diff --git a/mingw-w64-python3/0810-remove_path_max.default.patch b/mingw-w64-python3/0810-remove_path_max.default.patch index 39e41d481c..27b47c73a1 100644 --- a/mingw-w64-python3/0810-remove_path_max.default.patch +++ b/mingw-w64-python3/0810-remove_path_max.default.patch @@ -2,9 +2,9 @@ diff -urN a/Include/osdefs.h b/Include/osdefs.h --- a/Include/osdefs.h 2014-10-11 14:23:05.655352800 +0100 +++ b/Include/osdefs.h 2014-10-11 14:23:07.572462400 +0100 @@ -17,7 +17,6 @@ + #if defined(MS_WINDOWS) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__DJGPP__) #define SEP L'\\' #define ALTSEP L'/' - #endif -#define MAXPATHLEN 256 #define DELIM L';' #define DELIMSTR ";" diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index c0a3dd1353..30d93e2fff 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -17,7 +17,7 @@ _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.4 pkgver=${_pybasever}.3 -pkgrel=1 +pkgrel=2 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -35,7 +35,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-tcl" "${MINGW_PACKAGE_PREFIX}-tk") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -options=('!makeflags' 'staticlibs' 'strip' '!debug') +options=('!makeflags' 'staticlibs') # '!strip' 'debug') source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0000-make-_sysconfigdata.py-relocatable.patch 0100-MINGW-BASE-use-NT-thread-model.patch @@ -86,7 +86,6 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0560-mingw-use-posix-getpath.patch 0565-mingw-add-ModuleFileName-dir-to-PATH.patch 0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch - 0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch 0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch 0610-msys-cygwin-semi-native-build-sysconfig.patch 0620-mingw-sysconfig-like-posix.patch @@ -185,7 +184,6 @@ prepare() { patch -Np1 -i "${srcdir}"/0560-mingw-use-posix-getpath.patch patch -Np1 -i "${srcdir}"/0565-mingw-add-ModuleFileName-dir-to-PATH.patch patch -Np1 -i "${srcdir}"/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch - patch -Np1 -i "${srcdir}"/0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch patch -Np1 -i "${srcdir}"/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch patch -Np1 -i "${srcdir}"/0610-msys-cygwin-semi-native-build-sysconfig.patch patch -Np1 -i "${srcdir}"/0620-mingw-sysconfig-like-posix.patch @@ -411,8 +409,7 @@ sha1sums=('7ca5cd664598bea96eec105aa6453223bb6b4456' '1892bb2df631f49485deae5a1ee8dbae5691beeb' '08dfc0c0acd942901011cb9e1fd7a65a6f872771' '2f72a9036599de2ca02e5de1316d7b1771cada08' - 'c596055a0a53b00dacd52940bb6c5b91bcb368b4' - 'e58edbb86a508d5ad2e5542e7407e26a59b19053' + '4f37fd679e4521414b86902e100238b07577925e' '567d42d169dea66c32601a78f1953bf39f8bb7d2' '3d48fcf13644952c0bb2a68b834339f5174a9b4c' '70390a1be147a4a1b3d40a6935fdd4396e586c06' @@ -431,7 +428,7 @@ sha1sums=('7ca5cd664598bea96eec105aa6453223bb6b4456' '2df995b6f7e74c7fe9c3254a387956c5a3fd511e' 'bdfb78cf48559cc4ce949b75a9a18510e54e6435' 'c7687e0c9513778cacc4f02868b056321c1fad15' - '54882599bda70b76fe7b35f8347f16e3b19cb91d' + '2f24fe286920c29c29b479ee33176416e74d20c1' 'caf84500bd312dce117af4243729dde8b0377f9f' '15a30a6841889fc4df268eb6000158486075814b' '44d7e77532dcdd4bafadf23c728e115130be9bd5' From 39ad0e354d595717da7fce32448b114481e03660 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 9 Mar 2015 12:27:30 +0300 Subject: [PATCH 0639/2060] ffmpeg: Update to 2.6 --- mingw-w64-ffmpeg/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 8e81fb1546..88874edfac 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,7 +2,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.5.4 +pkgver=2.6 pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') @@ -41,7 +41,7 @@ depends=( ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://ffmpeg.org/releases/$_realname-$pkgver.tar.bz2) -md5sums=('af92a816b642d32134a764d2d7f55b75') +md5sums=('5bf6097833a3fea6a9e51b0a456c6922') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 1981c1e06bdf4996e34bc1ab4b7479cb2399e4eb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 10 Mar 2015 08:37:35 +0300 Subject: [PATCH 0640/2060] mesa: Update to 10.5.0 --- mingw-w64-mesa/PKGBUILD | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index e097dbb339..0053eb7831 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,21 +2,24 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.4.4 +pkgver=10.5.0 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') depends=("") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-clang" "scons" "libxml2-python" "python2") -#groups=("${MINGW_PACKAGE_PREFIX}") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-clang" + "scons" + "libxml2-python" + "python2-mako") url="http://www.mesa3d.org" license=('MIT') options=('staticlibs' 'strip') -source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2 +source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('62faf98ac79c5587f8e917e187419e6c' +md5sums=('133c5264a0c81d23168a65435ad23ede' + 'SKIP' '3eaea880ab48f851c392c2106a616e21') -noextract=("MesaLib-${pkgver}.tar.bz2") case ${MINGW_CHOST} in i686*) @@ -28,15 +31,12 @@ case ${MINGW_CHOST} in esac prepare() { - cd ${startdir} - [ -d $srcdir/Mesa-$pkgver ] || tar -xjvf MesaLib-${pkgver}.tar.bz2 -C $srcdir - - cd ${srcdir}/Mesa-$pkgver + cd ${srcdir}/${_realname}-$pkgver patch -p1 -i ${srcdir}/001-extra-libs.patch } build() { - cd ${srcdir}/Mesa-$pkgver + cd ${srcdir}/${_realname}-$pkgver LLVM=${MINGW_PREFIX} \ CFLAGS="-march=core2 -pipe -D_USE_MATH_DEFINES" \ @@ -46,11 +46,11 @@ build() { } package() { - cd ${srcdir}/Mesa-$pkgver + cd ${srcdir}/${_realname}-$pkgver mkdir -p ${pkgdir}${MINGW_PREFIX}/bin #mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/mesa - local _dll_files=( $(find ${srcdir}/Mesa-$pkgver -type f -name "*.dll") ) + local _dll_files=( $(find ${srcdir}/${_realname}-$pkgver -type f -name "*.dll") ) cp -f ${_dll_files[@]} ${pkgdir}${MINGW_PREFIX}/bin/ #local _dlla_files=( $(find ${srcdir}/Mesa-$pkgver -type f -name "*.a") ) #cp -f ${_dlla_files[@]} ${pkgdir}${MINGW_PREFIX}/lib/mesa/ From 7594ec1cb40aa97d3dcfe259bbb401e67dc23e85 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 10 Mar 2015 09:03:54 +0300 Subject: [PATCH 0641/2060] python-mako: Fix typo in "pkgdir" --- mingw-w64-python-mako/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-python-mako/PKGBUILD b/mingw-w64-python-mako/PKGBUILD index 40d5978679..cf28c212e4 100644 --- a/mingw-w64-python-mako/PKGBUILD +++ b/mingw-w64-python-mako/PKGBUILD @@ -4,7 +4,7 @@ _realname=mako pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=1.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="A super-fast templating language that borrows the best ideas from the existing templating languages (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -69,7 +69,7 @@ package_python2-mako() { sed -e "s|mako-render|mako-render2|g" -i ${pkgdir}${MINGW_PREFIX}/bin/mako-render2.exe.manifest } - install -Dm644 LICENSE "${pkgdi}${MINGW_PREFIX}/share/licenses/python2-${_realname}/COPYING" + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/COPYING" } package_python3-mako() { @@ -87,7 +87,7 @@ package_python3-mako() { sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${_f} done - install -Dm644 LICENSE "${pkgdi}${MINGW_PREFIX}/share/licenses/python3-${_realname}/COPYING" + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/COPYING" } package_mingw-w64-i686-python2-mako() { From 531cad9e1568e6a94b1cf247c3034199f1d58c7e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 10 Mar 2015 09:23:11 +0300 Subject: [PATCH 0642/2060] libpeas: Update to 1.13.0 --- mingw-w64-libpeas/0003-localedir-fix.patch | 33 +++++++++++ mingw-w64-libpeas/PKGBUILD | 69 +++++++++++----------- 2 files changed, 69 insertions(+), 33 deletions(-) create mode 100644 mingw-w64-libpeas/0003-localedir-fix.patch diff --git a/mingw-w64-libpeas/0003-localedir-fix.patch b/mingw-w64-libpeas/0003-localedir-fix.patch new file mode 100644 index 0000000000..76a3f230e2 --- /dev/null +++ b/mingw-w64-libpeas/0003-localedir-fix.patch @@ -0,0 +1,33 @@ +=== modified file 'Makefile.in.in' +--- a/po/Makefile.in.in 2012-01-18 16:37:06 +0000 ++++ b/po/Makefile.in.in 2013-05-12 17:12:40 +0000 +@@ -33,8 +33,7 @@ + datadir = @datadir@ + datarootdir = @datarootdir@ + libdir = @libdir@ +-DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +107,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +141,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot diff --git a/mingw-w64-libpeas/PKGBUILD b/mingw-w64-libpeas/PKGBUILD index 0c2cba06d2..7c3886b429 100644 --- a/mingw-w64-libpeas/PKGBUILD +++ b/mingw-w64-libpeas/PKGBUILD @@ -2,61 +2,64 @@ _realname=libpeas pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.12.1 +pkgver=1.13.0 pkgrel=1 pkgdesc="A GObject-based plugins engine (mingw-w64)" arch=('any') url="http://www.gtk.org" license=("LGPL2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-gtk-doc" - "intltool" - "${MINGW_PACKAGE_PREFIX}-python3-gobject" - "${MINGW_PACKAGE_PREFIX}-python2-gobject" - "${MINGW_PACKAGE_PREFIX}-glade") + "${MINGW_PACKAGE_PREFIX}-glade" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-python3-gobject" + "${MINGW_PACKAGE_PREFIX}-python2-gobject" + "gtk-doc" + "intltool") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" ) options=('strip' 'staticlibs') install=${_realname}-${CARCH}.install source=(http://download.gnome.org/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz - 0002-give-cc-to-gir-scanner.all.patch) -md5sums=('2bd146e4cb2335843c6145f81e0a8d0e' - 'b79cae8a6794dc2511f6fcceaa809111') + 0002-give-cc-to-gir-scanner.all.patch + 0003-localedir-fix.patch) +md5sums=('493c68b67fd45813c5161b5755a0c92a' + 'b79cae8a6794dc2511f6fcceaa809111' + 'ee5129050dae05733df41aec8cf36b40') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0002-give-cc-to-gir-scanner.all.patch + patch -p1 -i ${srcdir}/0003-localedir-fix.patch autoreconf -fi } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/${_realname}-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --sysconfdir=${MINGW_PREFIX}/etc \ - --localstatedir=${MINGW_PREFIX}/var \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --enable-static \ - --enable-shared \ - --enable-python2 \ - --enable-python3 \ - --enable-glade-catalog \ - --enable-gtk \ - DATADIRNAME=share + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ${srcdir}/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --sysconfdir=${MINGW_PREFIX}/etc \ + --localstatedir=${MINGW_PREFIX}/var \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-static \ + --enable-shared \ + --enable-python2 \ + --enable-python3 \ + --enable-glade-catalog \ + --enable-gtk - # https://bugzilla.gnome.org/show_bug.cgi?id=655517 - sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool - make -j1 V=1 + make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install + + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From d3029c079782c5521dc14cfdcaebcb8332555f3b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 10 Mar 2015 09:26:50 +0300 Subject: [PATCH 0643/2060] python-markupsafe: Rebuild. --- mingw-w64-python-markupsafe/PKGBUILD | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mingw-w64-python-markupsafe/PKGBUILD b/mingw-w64-python-markupsafe/PKGBUILD index aa0d31d2d4..35f7df8765 100644 --- a/mingw-w64-python-markupsafe/PKGBUILD +++ b/mingw-w64-python-markupsafe/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=markupsafe - pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.23 -pkgrel=1 +pkgrel=2 pkgdesc="Implements a XML/HTML/XHTML Markup safe string for Python (mingw-w64)" arch=('any') license=('custom') From 474f4130c711500fd864891b520d920a615f38b5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 10 Mar 2015 10:16:23 +0300 Subject: [PATCH 0644/2060] numpy: Update to 1.9.2 --- mingw-w64-python-numpy/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-numpy/PKGBUILD b/mingw-w64-python-numpy/PKGBUILD index be69ab4d0a..3023bc693f 100644 --- a/mingw-w64-python-numpy/PKGBUILD +++ b/mingw-w64-python-numpy/PKGBUILD @@ -3,7 +3,7 @@ _realname=numpy pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.9.1 +pkgver=1.9.2 pkgrel=1 pkgdesc="Scientific tools for Python (mingw-w64)" arch=('any') @@ -20,7 +20,7 @@ source=(http://downloads.sourceforge.net/numpy/${_realname}-${pkgver}.tar.gz fix-finding-python2.patch gfortran-better-version-check.patch fix-testsuite.patch) -md5sums=('78842b73560ec378142665e712ae4ad9' +md5sums=('a1ed53432dbcd256398898d35bc8e645' '6f03968645956c24216763b6ccce609d' '58aff1fb52401458bfd6a03c9b3b5e32' '84e65671dc50c0a0e5fa40a1dd25359d') From 84930e5f1753132125d4c3c719b964d001952010 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Tue, 10 Mar 2015 14:40:40 +0000 Subject: [PATCH 0645/2060] vlc-git: remove upstreamed patches --- ...pollfd-is-defined-from-Vista-onwards.patch | 28 - ...arch-for-freeaddrinfo-in-SOCKET_LIBS.patch | 44 - ...9-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch | 24 - .../0010-d3d11-vout-plugin.patch | 1242 ----------------- ...on-WINSTORE-for-QueueTimer-functions.patch | 24 + ...y-build-correct-modules-for-WINSTORE.patch | 332 +++++ mingw-w64-vlc-git/PKGBUILD | 27 +- 7 files changed, 365 insertions(+), 1356 deletions(-) delete mode 100644 mingw-w64-vlc-git/0004-pollfd-is-defined-from-Vista-onwards.patch delete mode 100644 mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch delete mode 100644 mingw-w64-vlc-git/0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch delete mode 100644 mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch create mode 100644 mingw-w64-vlc-git/0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch create mode 100644 mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch diff --git a/mingw-w64-vlc-git/0004-pollfd-is-defined-from-Vista-onwards.patch b/mingw-w64-vlc-git/0004-pollfd-is-defined-from-Vista-onwards.patch deleted file mode 100644 index 3828b259aa..0000000000 --- a/mingw-w64-vlc-git/0004-pollfd-is-defined-from-Vista-onwards.patch +++ /dev/null @@ -1,28 +0,0 @@ -From a2a48f6d68908351363c1320e78bf233eed122d1 Mon Sep 17 00:00:00 2001 -From: martell -Date: Thu, 11 Dec 2014 19:04:53 +0000 -Subject: [PATCH] pollfd is defined from Vista onwards - ---- - include/vlc_fixups.h | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h -index cee1254..86c58b8 100644 ---- a/include/vlc_fixups.h -+++ b/include/vlc_fixups.h -@@ -270,6 +270,11 @@ int inet_pton(int, const char *, void *); - const char *inet_ntop(int, const void *, char *, int); - #endif - -+/* Windows has pollfd from Vista+ */ -+#if (_WIN32_WINNT >= 0x0600) -+#define HAVE_STRUCT_POLLFD -+#endif -+ - #ifndef HAVE_STRUCT_POLLFD - enum - { --- -2.2.0 - diff --git a/mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch b/mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch deleted file mode 100644 index 67cde314af..0000000000 --- a/mingw-w64-vlc-git/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 19e90aaefd3722f27c4ff201d561b475ffd5d49f Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Sat, 22 Nov 2014 22:27:10 +0000 -Subject: [PATCH] Search for freeaddrinfo in SOCKET_LIBS - -.. using system-specifc headers so that the declaration -includes the correct calling convention. - -Reverts one of the two changes from 888bc8. ---- - configure.ac | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 513e1fc..1184620 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -298,7 +298,6 @@ case "${host_os}" in - *os2*) - SYS=os2 - LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem" -- AC_LIBOBJ([freeaddrinfo]) - ;; - *) - SYS="${host_os}" -@@ -647,6 +646,16 @@ AC_LINK_IFELSE([ - inet_pton(AF_INET, "127.0.0.1", dst); - ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])]) - AC_CHECK_FUNCS([if_nameindex if_nametoindex]) -+AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([#ifdef _WIN32 -+ #include -+ #include -+ #else -+ #include -+ #include -+ #endif], [ -+ freeaddrinfo(0); -+ ])],[],[AC_LIBOBJ([freeaddrinfo])]) - VLC_RESTORE_FLAGS - AC_SUBST(SOCKET_LIBS) - --- -2.3.0 \ No newline at end of file diff --git a/mingw-w64-vlc-git/0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch b/mingw-w64-vlc-git/0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch deleted file mode 100644 index d49e1c1964..0000000000 --- a/mingw-w64-vlc-git/0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9814cf1ba3fc83416cf117536fbe253ab488a4ad Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Wed, 18 Feb 2015 15:28:58 +0000 -Subject: [PATCH 10/11] MEDIASUBTYPE_I420 is in add wmcodecdsp.h - ---- - modules/access/dshow/vlc_dshow.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/modules/access/dshow/vlc_dshow.h b/modules/access/dshow/vlc_dshow.h -index 816884e..be98882 100644 ---- a/modules/access/dshow/vlc_dshow.h -+++ b/modules/access/dshow/vlc_dshow.h -@@ -37,6 +37,7 @@ - #include - #include - #include -+#include - #include - - #ifndef __MINGW64_VERSION_MAJOR --- -2.3.0 - diff --git a/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch b/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch deleted file mode 100644 index c002cbf6c5..0000000000 --- a/mingw-w64-vlc-git/0010-d3d11-vout-plugin.patch +++ /dev/null @@ -1,1242 +0,0 @@ -From 397e1204a80500c90d58cf52801dcf8adf3074c5 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Wed, 24 Dec 2014 16:37:27 +0000 -Subject: [PATCH] d3d11 vout plugin - ---- - configure.ac | 7 +- - modules/MODULES_LIST | 1 + - modules/video_output/Makefile.am | 16 + - modules/video_output/msw/common.c | 33 +- - modules/video_output/msw/common.h | 46 +- - modules/video_output/msw/direct3d11.c | 940 ++++++++++++++++++++++++++++++++++ - modules/video_output/msw/events.c | 17 +- - 7 files changed, 1049 insertions(+), 11 deletions(-) - create mode 100644 modules/video_output/msw/direct3d11.c - -diff --git a/configure.ac b/configure.ac -index c5c5d39..0fffb40 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3262,7 +3262,12 @@ AS_IF([test "${enable_directx}" != "no"], [ - #include - ]) - -- dnl Direct3D -+ dnl Direct3D11 -+ AC_CHECK_HEADERS(d3d11.h, [ -+ VLC_ADD_PLUGIN([direct3d11]) -+ ]) -+ -+ dnl Direct3D9 - AC_CHECK_HEADERS(d3d9.h, [ - VLC_ADD_PLUGIN([direct3d9]) - ]) -diff --git a/modules/MODULES_LIST b/modules/MODULES_LIST -index e8865dc..4a57c42 100644 ---- a/modules/MODULES_LIST -+++ b/modules/MODULES_LIST -@@ -98,6 +98,7 @@ $Id$ - * diracsys: BBC Dirac demuxer - * direct2d: video output module using the Direct2D API - * direct3d9: video output module using the Direct3D9 API -+ * direct3d11: video output module using the Direct3D11 API - * directdraw: video output module using the DirectDraw API - * directfb: Direct Framebuffer video output - * directsound: audio output module using the DirectSound API -diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am -index e05b28f..5aaeafb 100644 ---- a/modules/video_output/Makefile.am -+++ b/modules/video_output/Makefile.am -@@ -181,6 +181,22 @@ libdirect3d9_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)' - vout_LTLIBRARIES += $(LTLIBdirect3d9) - EXTRA_LTLIBRARIES += libdirect3d9_plugin.la - -+libdirect3d11_plugin_la_SOURCES = video_output/msw/direct3d11.c \ -+ video_output/msw/common.c video_output/msw/common.h \ -+ video_output/msw/events.c video_output/msw/events.h \ -+ video_output/msw/builtin_shaders.h \ -+ video_output/msw/win32touch.c video_output/msw/win32touch.h -+libdirect3d11_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \ -+ -DMODULE_NAME_IS_direct3d11 -+if !HAVE_WINSTORE -+libdirect3d11_plugin_la_LIBADD = -lgdi32 -lole32 -luuid -+else -+libdirect3d11_plugin_la_LIBADD = -ld3dcompiler -lole32 -luuid -+endif -+libdirect3d11_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)' -+vout_LTLIBRARIES += $(LTLIBdirect3d11) -+EXTRA_LTLIBRARIES += libdirect3d11_plugin.la -+ - libdirectdraw_plugin_la_SOURCES = video_output/msw/directdraw.c \ - video_output/msw/common.c video_output/msw/common.h \ - video_output/msw/events.c video_output/msw/events.h \ -diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c -index 1ebe08c..802450d 100644 ---- a/modules/video_output/msw/common.c -+++ b/modules/video_output/msw/common.c -@@ -4,7 +4,8 @@ - * Copyright (C) 2001-2009 VLC authors and VideoLAN - * $Id$ - * -- * Authors: Gildas Bazin -+ * Authors: Martell Malone , -+ * Gildas Bazin - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published by -@@ -117,6 +118,13 @@ void CommonClean(vout_display_t *vd) - RestoreScreensaver(vd); - } - -+/* */ -+picture_pool_t *CommonPool(vout_display_t *vd, unsigned count) -+{ -+ VLC_UNUSED(count); -+ return vd->sys->pool; -+} -+ - void CommonManage(vout_display_t *vd) - { - vout_display_sys_t *sys = vd->sys; -@@ -214,6 +222,25 @@ int CommonUpdatePicture(picture_t *picture, picture_t **fallback, - picture->p->i_pitch = pitch; - picture->p->i_lines = picture->format.i_visible_height; - -+ /* Fill chroma planes for biplanar YUV */ -+ if (picture->format.i_chroma == VLC_CODEC_NV12 || -+ picture->format.i_chroma == VLC_CODEC_NV21) { -+ -+ for (int n = 1; n < picture->i_planes; n++) { -+ const plane_t *o = &picture->p[n-1]; -+ plane_t *p = &picture->p[n]; -+ -+ p->p_pixels = o->p_pixels + o->i_lines * o->i_pitch; -+ p->i_pitch = pitch; -+ p->i_lines = picture->format.i_visible_height; -+ } -+ /* The dx/d3d buffer is always allocated as NV12 */ -+ if (vlc_fourcc_AreUVPlanesSwapped(picture->format.i_chroma, VLC_CODEC_NV12)) { -+ /* TODO : Swap NV21 UV planes to match NV12 */ -+ return VLC_EGENERIC; -+ } -+ } -+ - /* Fill chroma planes for planar YUV */ - if (picture->format.i_chroma == VLC_CODEC_I420 || - picture->format.i_chroma == VLC_CODEC_J420 || -@@ -348,7 +375,7 @@ void UpdateRects(vout_display_t *vd, - SWP_NOCOPYBITS|SWP_NOZORDER|SWP_ASYNCWINDOWPOS); - - /* Destination image position and dimensions */ --#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct2d) -+#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) || defined(MODULE_NAME_IS_direct2d) - rect_dest.left = 0; - rect_dest.right = place.width; - rect_dest.top = 0; -@@ -425,7 +452,7 @@ void UpdateRects(vout_display_t *vd, - /* Apply overlay hardware constraints */ - if (sys->use_overlay) - AlignRect(&rect_src_clipped, sys->i_align_src_boundary, sys->i_align_src_size); --#elif defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct2d) -+#elif defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) || defined(MODULE_NAME_IS_direct2d) - /* Needed at least with YUV content */ - rect_src_clipped.left &= ~1; - rect_src_clipped.right &= ~1; -diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h -index 5cb8c45..b02fa27 100644 ---- a/modules/video_output/msw/common.h -+++ b/modules/video_output/msw/common.h -@@ -4,7 +4,8 @@ - * Copyright (C) 2001-2009 VLC authors and VideoLAN - * $Id$ - * -- * Authors: Gildas Bazin -+ * Authors: Martell Malone , -+ * Gildas Bazin , - * Damien Fouilleul - * - * This program is free software; you can redistribute it and/or modify it -@@ -25,6 +26,15 @@ - #ifdef MODULE_NAME_IS_directdraw - # include - #endif -+#ifdef MODULE_NAME_IS_direct3d11 -+# include -+#if VLC_WINSTORE_APP -+# include -+#else -+# include -+#endif -+# include -+#endif - #ifdef MODULE_NAME_IS_direct3d9 - # include - # include -@@ -135,6 +145,38 @@ struct vout_display_sys_t - ID2D1Bitmap *d2_bitmap; /* D2 bitmap */ - #endif - -+#ifdef MODULE_NAME_IS_direct3d11 -+#if !VLC_WINSTORE_APP -+ HINSTANCE hdxgi_dll; /* handle of the opened dxgi dll */ -+ HINSTANCE hd3d11_dll; /* handle of the opened d3d11 dll */ -+ HINSTANCE hd3dcompiler_dll; /* handle of the opened d3dcompiler dll */ -+ IDXGIAdapter *dxgiadapter; /* DXGI adapter */ -+ IDXGIFactory *dxgifactory; /* DXGI factory */ -+ IDXGISwapChain *dxgiswapChain; /* DXGI 1.0 swap chain */ -+ /* We should find a better way to store this or atleast a shorter name */ -+ PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN OurD3D11CreateDeviceAndSwapChain; -+ PFN_D3D11_CREATE_DEVICE OurD3D11CreateDevice; -+ pD3DCompile OurD3DCompile; -+#else -+ IDXGISwapChain1 *dxgiswapChain; /* DXGI 1.1 swap chain */ -+#endif -+ ID3D11Device *d3ddevice; /* D3D device */ -+ ID3D11DeviceContext *d3dcontext; /* D3D context */ -+ ID3D11Texture2D *d3dtexture; -+ ID3D11ShaderResourceView *d3dresViewY; -+ ID3D11ShaderResourceView *d3dresViewUV; -+ ID3D11RenderTargetView *d3drenderTargetView; -+ ID3D11DepthStencilView *d3ddepthStencilView; -+ ID3D11VertexShader *d3dvertexShader; -+ ID3D11PixelShader *d3dpixelShader; -+ ID3D11InputLayout *d3dvertexLayout; -+ ID3D11SamplerState *d3dsampState; -+ picture_sys_t *picsys; -+ D3D_FEATURE_LEVEL d3dfeaturelevel; -+ DXGI_FORMAT d3dFormat; -+ vlc_fourcc_t vlcFormat; -+#endif -+ - #ifdef MODULE_NAME_IS_direct3d9 - bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ - /* show video on desktop window ? */ -@@ -209,6 +251,8 @@ void UpdateRects (vout_display_t *, - bool is_forced); - void AlignRect(RECT *, int align_boundary, int align_size); - -+picture_pool_t *CommonPool(vout_display_t *, unsigned); -+ - /***************************************************************************** - * Constants - *****************************************************************************/ -diff --git a/modules/video_output/msw/direct3d11.c b/modules/video_output/msw/direct3d11.c -new file mode 100644 -index 0000000..7914e1d ---- /dev/null -+++ b/modules/video_output/msw/direct3d11.c -@@ -0,0 +1,940 @@ -+/***************************************************************************** -+ * direct3d11.c: Windows Direct3D11 video output module -+ ***************************************************************************** -+ * Copyright (C) 2014-2015 VLC authors and VideoLAN -+ * -+ * Authors: Martell Malone -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU Lesser General Public License as published by -+ * the Free Software Foundation; either version 2.1 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public License -+ * along with this program; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. -+ *****************************************************************************/ -+ -+#ifdef HAVE_CONFIG_H -+# include "config.h" -+#endif -+ -+#include -+#include -+#include -+ -+#define COBJMACROS -+#include -+ -+/* avoided until we can deal with c++/cx in gcc -+# define INITGUID -+# include */ -+ -+#include "common.h" -+ -+#if !VLC_WINSTORE_APP -+#define D3D11CreateDeviceAndSwapChain(args...) sys->OurD3D11CreateDeviceAndSwapChain(args) -+#define D3D11CreateDevice(args...) sys->OurD3D11CreateDevice(args) -+#define D3DCompile(args...) sys->OurD3DCompile(args) -+#endif -+ -+static int Open(vlc_object_t *); -+static void Close(vlc_object_t *); -+ -+#define D3D11_HELP N_("Recommended video output for Windows RT and Windows Phone") -+ -+vlc_module_begin () -+ set_shortname("Direct3D11") -+ set_description(N_("Direct3D11 video output")) -+ set_help(D3D11_HELP) -+ set_category(CAT_VIDEO) -+ set_subcategory(SUBCAT_VIDEO_VOUT) -+ set_capability("vout display", 240) -+ add_shortcut("direct3d11") -+ set_callbacks(Open, Close) -+vlc_module_end () -+ -+typedef struct -+{ -+ const char *name; -+ DXGI_FORMAT format; -+ vlc_fourcc_t fourcc; -+} d3d_format_t; -+ -+static const d3d_format_t d3d_formats[] = { -+ { "NV12", DXGI_FORMAT_NV12, VLC_CODEC_NV12 }, -+ { "RGBA", DXGI_FORMAT_R8G8B8A8_UNORM, VLC_CODEC_RGBA }, -+ { NULL, 0, 0 } -+}; -+ -+static const vlc_fourcc_t d3d_subpicture_chromas[] = { -+ VLC_CODEC_RGBA, -+ 0 -+}; -+ -+struct picture_sys_t -+{ -+ ID3D11Texture2D *texture; -+ ID3D11DeviceContext *context; -+}; -+ -+static int Open(vlc_object_t *); -+static void Close(vlc_object_t *object); -+ -+static void Prepare(vout_display_t *, picture_t *, subpicture_t *subpicture); -+static void Display(vout_display_t *, picture_t *, subpicture_t *subpicture); -+ -+static int Direct3D11Create (vout_display_t *); -+static void Direct3D11Destroy(vout_display_t *); -+ -+static int Direct3D11Open (vout_display_t *, video_format_t *); -+static void Direct3D11Close(vout_display_t *); -+ -+static int Direct3D11CreateResources (vout_display_t *, video_format_t *); -+static void Direct3D11DestroyResources(vout_display_t *); -+ -+static int Direct3D11MapTexture(picture_t *); -+ -+/* All the #if 0 contain an alternative method to setup dx11 -+ They both need to be benchmarked to see which performs better */ -+#if 0 -+/* I have no idea why MS decided dxgi headers do not define this -+ As they do have prototypes for d3d11 functions */ -+typedef HRESULT(WINAPI *PFN_CREATE_DXGI_FACTORY)(REFIID riid, void **ppFactory); -+#endif -+ -+/* TODO: Move to a direct3d11_shaders header */ -+static const char* globVertexShaderDefault = "\ -+ struct VS_INPUT\ -+ {\ -+ float4 Position : POSITION;\ -+ float2 Texture : TEXCOORD0;\ -+ };\ -+ \ -+ struct VS_OUTPUT\ -+ {\ -+ float4 Position : SV_POSITION;\ -+ float2 Texture : TEXCOORD0;\ -+ };\ -+ \ -+ VS_OUTPUT VS( VS_INPUT In )\ -+ {\ -+ VS_OUTPUT Output;\ -+ Output.Position = float4(In.Position.xy, 0.0f, 1.0f);\ -+ Output.Texture = In.Texture;\ -+ return Output;\ -+ }\ -+"; -+ -+static const char* globPixelShaderDefault = "\ -+ Texture2D shaderTexture;\ -+ SamplerState SampleType;\ -+ \ -+ struct PS_INPUT\ -+ {\ -+ float4 Position : SV_POSITION;\ -+ float2 Texture : TEXCOORD0;\ -+ };\ -+ \ -+ float4 PS( PS_INPUT In ) : SV_TARGET\ -+ {\ -+ return shaderTexture.Sample(SampleType, In.Texture);\ -+ }\ -+"; -+ -+static const char* globPixelShaderBiplanarYUV2RGB = "\ -+ Texture2D shaderTextureY;\ -+ Texture2D shaderTextureUV;\ -+ SamplerState SampleType;\ -+ \ -+ struct PS_INPUT\ -+ {\ -+ float4 Position : SV_POSITION;\ -+ float2 Texture : TEXCOORD0;\ -+ };\ -+ \ -+ float4 PS( PS_INPUT In ) : SV_TARGET\ -+ {\ -+ float3 yuv;\ -+ float4 rgba;\ -+ yuv.x = shaderTextureY.Sample(SampleType, In.Texture).x;\ -+ yuv.yz = shaderTextureUV.Sample(SampleType, In.Texture).xy;\ -+ yuv.x = 1.164 * (yuv.x-0.0625);\ -+ yuv.y = yuv.y - 0.5;\ -+ yuv.z = yuv.z - 0.5;\ -+ rgba.x = saturate(yuv.x + 1.596 * yuv.z);\ -+ rgba.y = saturate(yuv.x - 0.813 * yuv.z - 0.391 * yuv.y);\ -+ rgba.z = saturate(yuv.x + 2.018 * yuv.y);\ -+ rgba.w = 1.0;\ -+ return rgba;\ -+ }\ -+"; -+ -+static int Open(vlc_object_t *object) -+{ -+ vout_display_t *vd = (vout_display_t *)object; -+ -+ if (Direct3D11Create(vd)) { -+ msg_Err(vd, "Direct3D11 could not be initialized"); -+ Direct3D11Destroy(vd); -+ return VLC_EGENERIC; -+ } -+ -+ if (CommonInit(vd)) -+ goto error; -+ -+ /* TODO : A fallback system */ -+ vd->sys->d3dFormat = d3d_formats[0].format; -+ vd->sys->vlcFormat = d3d_formats[0].fourcc; -+ -+ video_format_t fmt; -+ if (Direct3D11Open(vd, &fmt)) { -+ msg_Err(vd, "Direct3D11 could not be opened"); -+ goto error; -+ } -+ -+ vout_display_info_t info = vd->info; -+ info.is_slow = true; -+ info.has_double_click = true; -+ info.has_hide_mouse = false; -+ info.has_pictures_invalid = true; -+ info.has_event_thread = true; -+ -+ /* TODO : subtitle support */ -+ info.subpicture_chromas = NULL; -+ -+ video_format_Clean(&vd->fmt); -+ video_format_Copy(&vd->fmt, &fmt); -+ vd->info = info; -+ -+ vd->pool = CommonPool; -+ vd->prepare = Prepare; -+ vd->display = Display; -+ vd->control = CommonControl; -+ vd->manage = CommonManage; -+ -+ msg_Dbg(vd, "Direct3D11 Open Succeeded"); -+ -+ return VLC_SUCCESS; -+error: -+ Direct3D11Close(vd); -+ CommonClean(vd); -+ Direct3D11Destroy(vd); -+ free(vd->sys); -+ return VLC_EGENERIC; -+} -+ -+static void Close(vlc_object_t *object) -+{ -+ vout_display_t * vd = (vout_display_t *)object; -+ -+ Direct3D11Close(vd); -+ CommonClean(vd); -+ Direct3D11Destroy(vd); -+ free(vd->sys); -+} -+ -+static void Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpicture) -+{ -+ vout_display_sys_t *sys = vd->sys; -+ VLC_UNUSED(subpicture); -+ VLC_UNUSED(picture); -+ -+ /* float ClearColor[4] = { 1.0f, 0.125f, 0.3f, 1.0f }; */ -+ /* ID3D11DeviceContext_ClearRenderTargetView(sys->d3dcontext,sys->d3drenderTargetView, ClearColor); */ -+ ID3D11DeviceContext_ClearDepthStencilView(sys->d3dcontext,sys->d3ddepthStencilView, D3D11_CLEAR_DEPTH, 1.0f, 0); -+ -+ /* Render the quad */ -+ ID3D11DeviceContext_VSSetShader(sys->d3dcontext, sys->d3dvertexShader, NULL, 0); -+ ID3D11DeviceContext_PSSetShader(sys->d3dcontext, sys->d3dpixelShader, NULL, 0); -+ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 0, 1, &sys->d3dresViewY); -+ -+ if (sys->vlcFormat == VLC_CODEC_NV12) -+ ID3D11DeviceContext_PSSetShaderResources(sys->d3dcontext, 1, 1, &sys->d3dresViewUV); -+ -+ ID3D11DeviceContext_PSSetSamplers(sys->d3dcontext, 0, 1, &sys->d3dsampState); -+ ID3D11DeviceContext_DrawIndexed(sys->d3dcontext, 6, 0, 0); -+} -+ -+static void Display(vout_display_t *vd, picture_t *picture, subpicture_t *subpicture) -+{ -+ vout_display_sys_t *sys = vd->sys; -+ -+#if VLC_WINSTORE_APP -+ IDXGISwapChain1_Present(sys->dxgiswapChain, 0, 0); -+#else -+ IDXGISwapChain_Present(sys->dxgiswapChain, 0, 0); -+#endif -+ picture_Release(picture); -+ if (subpicture) -+ subpicture_Delete(subpicture); -+ -+ CommonDisplay(vd); -+} -+ -+#if !VLC_WINSTORE_APP -+static HINSTANCE Direct3D11LoadShaderLibrary(void) -+{ -+ HINSTANCE instance = NULL; -+ /* d3dcompiler_47 is the latest on windows 8.1 */ -+ for (int i = 47; i > 41; --i) { -+ TCHAR filename[18]; -+ _sntprintf(filename, 18, TEXT("D3DCOMPILER_%d.dll"), i); -+ instance = LoadLibrary(filename); -+ if (instance) break; -+ } -+ return instance; -+} -+#endif -+ -+static int Direct3D11Create(vout_display_t *vd) -+{ -+ -+#if !VLC_WINSTORE_APP -+ -+ HINSTANCE hd3d11_dll = LoadLibrary(TEXT("D3D11.DLL")); -+ if (!hd3d11_dll) { -+ msg_Warn(vd, "cannot load d3d11.dll, aborting"); -+ return VLC_EGENERIC; -+ } -+ -+ #if 0 -+ HINSTANCE hdxgi_dll = LoadLibrary(TEXT("DXGI.DLL")); -+ if (!hdxgi_dll) { -+ msg_Warn(vd, "cannot load dxgi.dll, aborting"); -+ return VLC_EGENERIC; -+ } -+ #endif -+ -+ HINSTANCE hd3dcompiler_dll = Direct3D11LoadShaderLibrary(); -+ if (!hd3dcompiler_dll) { -+ msg_Err(vd, "cannot load d3dcompiler.dll, aborting"); -+ return VLC_EGENERIC; -+ } -+ -+#else -+ -+ IDXGISwapChain1* dxgiswapChain = var_InheritInteger(vd, "winrt-dxgiswapchain"); -+ if (!dxgiswapChain) -+ return VLC_EGENERIC; -+ ID3D11Device* d3ddevice = var_InheritInteger(vd, "winrt-d3ddevice"); -+ if (!d3ddevice) -+ return VLC_EGENERIC; -+ ID3D11DeviceContext* d3dcontext = var_InheritInteger(vd, "winrt-d3dcontext"); -+ if (!d3dcontext) -+ return VLC_EGENERIC; -+ -+#endif -+ -+ vout_display_sys_t *sys = vd->sys = calloc(1, sizeof(vout_display_sys_t)); -+ if (!sys) -+ return VLC_ENOMEM; -+ -+#if !VLC_WINSTORE_APP -+ -+ sys->hd3d11_dll = hd3d11_dll; -+ sys->hd3dcompiler_dll = hd3dcompiler_dll; -+ -+ sys->OurD3DCompile = (void *)GetProcAddress(sys->hd3dcompiler_dll, "D3DCompile"); -+ if (!sys->OurD3DCompile) { -+ msg_Err(vd, "Cannot locate reference to D3DCompile in d3dcompiler DLL"); -+ return VLC_EGENERIC; -+ } -+ -+ #if 0 -+ -+ sys->hdxgi_dll = hdxgi_dll; -+ -+ /* TODO : enable all dxgi versions from 1.3 -> 1.1 */ -+ PFN_CREATE_DXGI_FACTORY OurCreateDXGIFactory = -+ (void *)GetProcAddress(sys->hdxgi_dll, "CreateDXGIFactory"); -+ if (!OurCreateDXGIFactory) { -+ msg_Err(vd, "Cannot locate reference to CreateDXGIFactory in dxgi DLL"); -+ return VLC_EGENERIC; -+ } -+ -+ /* TODO : detect the directx version supported and use IID_IDXGIFactory3 or 2 */ -+ HRESULT hr = OurCreateDXGIFactory(&IID_IDXGIFactory, (void **)&sys->dxgifactory); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not create dxgi factory. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ sys->OurD3D11CreateDeviceAndSwapChain = -+ (void *)GetProcAddress(sys->hd3d11_dll, "D3D11CreateDeviceAndSwapChain"); -+ if (!sys->OurD3D11CreateDeviceAndSwapChain) { -+ msg_Err(vd, "Cannot locate reference to D3D11CreateDeviceAndSwapChain in d3d11 DLL"); -+ return VLC_EGENERIC; -+ } -+ -+ #else -+ -+ sys->OurD3D11CreateDevice = -+ (void *)GetProcAddress(sys->hd3d11_dll, "D3D11CreateDevice"); -+ if (!sys->OurD3D11CreateDevice) { -+ msg_Err(vd, "Cannot locate reference to D3D11CreateDevice in d3d11 DLL"); -+ return VLC_EGENERIC; -+ } -+ -+ #endif -+ -+#else -+ -+ sys->dxgiswapChain = dxgiswapChain; -+ sys->d3ddevice = d3ddevice; -+ sys->d3dcontext = d3dcontext; -+ -+#endif -+ -+ return VLC_SUCCESS; -+} -+ -+ -+static void Direct3D11Destroy(vout_display_t *vd) -+{ -+ -+#if !VLC_WINSTORE_APP -+ -+ vout_display_sys_t *sys = vd->sys; -+ -+ #if 0 -+ if (sys->hdxgi_dll) -+ FreeLibrary(sys->hdxgi_dll); -+ #endif -+ -+ if (sys->hd3d11_dll) -+ FreeLibrary(sys->hd3d11_dll); -+ if (sys->hd3dcompiler_dll) -+ FreeLibrary(sys->hd3dcompiler_dll); -+ -+ /* TODO : add release of d3d11 objects here */ -+ -+ sys->OurD3D11CreateDevice = NULL; -+ sys->OurD3D11CreateDeviceAndSwapChain = NULL; -+ sys->OurD3DCompile = NULL; -+ sys->hdxgi_dll = NULL; -+ sys->hd3d11_dll = NULL; -+ sys->hd3dcompiler_dll = NULL; -+#else -+ -+ VLC_UNUSED(vd); -+ -+#endif -+ -+} -+ -+static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) -+{ -+ vout_display_sys_t *sys = vd->sys; -+ *fmt = vd->source; -+ -+#if !VLC_WINSTORE_APP -+ -+ UINT creationFlags = 0; -+ HRESULT hr = S_OK; -+ -+ static const D3D_FEATURE_LEVEL featureLevels[] = -+ { -+ D3D_FEATURE_LEVEL_11_1, -+ D3D_FEATURE_LEVEL_11_0, -+ D3D_FEATURE_LEVEL_10_1, -+ D3D_FEATURE_LEVEL_10_0, -+ D3D_FEATURE_LEVEL_9_3, -+ D3D_FEATURE_LEVEL_9_2, -+ D3D_FEATURE_LEVEL_9_1 -+ }; -+ -+#ifndef NDEBUG -+ creationFlags |= D3D11_CREATE_DEVICE_DEBUG; -+#endif -+ -+#if VLC_WINSTORE_APP -+ DXGI_SWAP_CHAIN_DESC1 scd; -+#else -+ DXGI_SWAP_CHAIN_DESC scd; -+#endif -+ -+ memset(&scd, 0, sizeof(scd)); -+ scd.BufferCount = 1; -+ scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; -+ scd.SampleDesc.Count = 1; -+ scd.SampleDesc.Quality = 0; -+ scd.BufferDesc.Width = fmt->i_visible_width; -+ scd.BufferDesc.Height = fmt->i_visible_height; -+ scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; -+ -+#if VLC_WINSTORE_APP -+ /* TODO : check different values for performance */ -+ scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; -+ scd.BufferCount = 2; -+ scd.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; -+ scd.Flags = DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER; -+ scd.AlphaMode = DXGI_ALPHA_MODE_PREMULTIPLIED; -+ scd.Scaling = DXGI_SCALING_NONE; -+#else -+ scd.Windowed = TRUE; -+ scd.OutputWindow = sys->hvideownd; -+#endif -+ -+#if 0 -+ -+ /* TODO : list adapters for the user to choose from */ -+ hr = IDXGIFactory_EnumAdapters(sys->dxgifactory, 0, &sys->dxgiadapter); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not create find factory. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ IDXGIOutput* output; -+ hr = IDXGIAdapter_EnumOutputs(sys->dxgiadapter, 0, &output); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not Enumerate DXGI Outputs. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ DXGI_MODE_DESC md; -+ memset(&md, 0, sizeof(md)); -+ md.Width = fmt->i_visible_width; -+ md.Height = fmt->i_visible_height; -+ md.Format = scd.BufferDesc.Format; -+ md.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; -+ -+ hr = IDXGIOutput_FindClosestMatchingMode(output, &md, &scd.BufferDesc, NULL); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Failed to find a supported video mode. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ /* mode desc doesn't carry over the width and height*/ -+ scd.BufferDesc.Width = fmt->i_visible_width; -+ scd.BufferDesc.Height = fmt->i_visible_height; -+ -+ hr = D3D11CreateDeviceAndSwapChain(sys->dxgiadapter, -+ D3D_DRIVER_TYPE_UNKNOWN, NULL, creationFlags, -+ featureLevels, ARRAYSIZE(featureLevels), -+ D3D11_SDK_VERSION, &scd, &sys->dxgiswapChain, -+ &sys->d3ddevice, &sys->d3dfeaturelevel, &sys->d3dcontext); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not Create the D3D11 device and SwapChain. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+#else -+ -+ static const D3D_DRIVER_TYPE driverAttempts[] = { -+ D3D_DRIVER_TYPE_HARDWARE, -+ D3D_DRIVER_TYPE_WARP, -+ D3D_DRIVER_TYPE_REFERENCE, -+ }; -+ -+ for (UINT driver = 0; driver < ARRAYSIZE(driverAttempts); driver++) { -+ hr = D3D11CreateDevice(NULL, driverAttempts[driver], NULL, creationFlags, -+ featureLevels, ARRAYSIZE(featureLevels), D3D11_SDK_VERSION, -+ &sys->d3ddevice, &sys->d3dfeaturelevel, &sys->d3dcontext); -+ if (SUCCEEDED(hr)) break; -+ } -+ -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not Create the D3D11 device. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ IDXGIDevice *pDXGIDevice = NULL; -+ hr = ID3D11Device_QueryInterface(sys->d3ddevice, &IID_IDXGIDevice, (void **)&pDXGIDevice); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not Query DXGI Interface. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ hr = IDXGIDevice_GetAdapter(pDXGIDevice, &sys->dxgiadapter); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not get the DXGI Adapter. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ hr = IDXGIAdapter_GetParent(sys->dxgiadapter, &IID_IDXGIFactory, (void **)&sys->dxgifactory); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not get the DXGI Factory. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+#if VLC_WINSTORE_APP -+ hr = IDXGIFactory2_CreateSwapChainForComposition(sys->dxgifactory, (IUnknown *)sys->d3ddevice, &scd, NULL, &sys->dxgiswapChain); -+#else -+ hr = IDXGIFactory_CreateSwapChain(sys->dxgifactory, (IUnknown *)sys->d3ddevice, &scd, &sys->dxgiswapChain); -+#endif -+ -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not create the SwapChain. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+#if VLC_WINSTORE_APP /* avoided until we can deal with c++/cx in gcc */ -+ /* TODO: figure out how to get "ISwapChainPanel ^panel" into brokenpanel in gcc */ -+ ISwapChainPanel *brokenpanel; -+ ISwapChainPanelNative *panelNative; -+ hr = ISwapChainPanelNative_QueryInterface(brokenpanel, &IID_ISwapChainPanelNative, (void **)&pDXGIDevice); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not get the Native Panel. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ hr = ISwapChainPanelNative_SetSwapChain(panelNative, sys->dxgiswapChain); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not link the SwapChain with the Native Panel. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+#endif -+ -+#endif -+ -+#endif -+ -+ UpdateRects(vd, NULL, NULL, true); -+ -+ if (Direct3D11CreateResources(vd, fmt)) { -+ msg_Err(vd, "Failed to allocate resources"); -+ Direct3D11DestroyResources(vd); -+ return VLC_EGENERIC; -+ } -+ -+ EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct3D11 output)"); -+ -+ msg_Dbg(vd, "Direct3D11 device adapter successfully initialized"); -+ return VLC_SUCCESS; -+} -+ -+static void Direct3D11Close(vout_display_t *vd) -+{ -+ vout_display_sys_t *sys = vd->sys; -+ -+ Direct3D11DestroyResources(vd); -+ ID3D11DeviceContext_Release(sys->d3dcontext); -+ ID3D11Device_Release(sys->d3ddevice); -+ msg_Dbg(vd, "Direct3D11 device adapter closed"); -+} -+ -+/* TODO : handle errors better -+ TODO : seperate out into smaller functions like createshaders */ -+static int Direct3D11CreateResources(vout_display_t *vd, video_format_t *fmt) -+{ -+ vout_display_sys_t *sys = vd->sys; -+ ID3D11Texture2D* pBackBuffer = NULL; -+ ID3D11Texture2D* pDepthStencil= NULL; -+ HRESULT hr; -+ -+ fmt->i_chroma = sys->vlcFormat; -+ -+ hr = IDXGISwapChain_GetBuffer(sys->dxgiswapChain, 0, &IID_ID3D11Texture2D, (LPVOID *)&pBackBuffer); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not get the backbuffer from the Swapchain. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ hr = ID3D11Device_CreateRenderTargetView(sys->d3ddevice, (ID3D11Resource *)pBackBuffer, NULL, &sys->d3drenderTargetView); -+ -+ ID3D11Texture2D_Release(pBackBuffer); -+ -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not create the render view target. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ D3D11_TEXTURE2D_DESC deptTexDesc; -+ memset(&deptTexDesc, 0,sizeof(deptTexDesc)); -+ deptTexDesc.ArraySize = 1; -+ deptTexDesc.BindFlags = D3D11_BIND_DEPTH_STENCIL; -+ deptTexDesc.CPUAccessFlags = 0; -+ deptTexDesc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; -+ deptTexDesc.Width = fmt->i_visible_width; -+ deptTexDesc.Height = fmt->i_visible_height; -+ deptTexDesc.MipLevels = 1; -+ deptTexDesc.MiscFlags = 0; -+ deptTexDesc.SampleDesc.Count = 1; -+ deptTexDesc.SampleDesc.Quality = 0; -+ deptTexDesc.Usage = D3D11_USAGE_DEFAULT; -+ -+ hr = ID3D11Device_CreateTexture2D(sys->d3ddevice, &deptTexDesc, NULL, &pDepthStencil); -+ -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not create the depth stencil texture. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ D3D11_DEPTH_STENCIL_VIEW_DESC depthViewDesc; -+ memset(&depthViewDesc, 0, sizeof(depthViewDesc)); -+ -+ depthViewDesc.Format = deptTexDesc.Format; -+ depthViewDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; -+ depthViewDesc.Texture2D.MipSlice = 0; -+ -+ hr = ID3D11Device_CreateDepthStencilView(sys->d3ddevice, (ID3D11Resource *)pDepthStencil, &depthViewDesc, &sys->d3ddepthStencilView); -+ -+ ID3D11Texture2D_Release(pDepthStencil); -+ -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not create the depth stencil view. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ ID3D11DeviceContext_OMSetRenderTargets(sys->d3dcontext, 1, &sys->d3drenderTargetView, sys->d3ddepthStencilView); -+ -+ D3D11_VIEWPORT vp; -+ vp.Width = (FLOAT)fmt->i_visible_width; -+ vp.Height = (FLOAT)fmt->i_visible_height; -+ vp.MinDepth = 0.0f; -+ vp.MaxDepth = 1.0f; -+ vp.TopLeftX = 0; -+ vp.TopLeftY = 0; -+ -+ ID3D11DeviceContext_RSSetViewports(sys->d3dcontext, 1, &vp); -+ -+ ID3DBlob* pVSBlob = NULL; -+ -+ /* TODO : Match the version to the D3D_FEATURE_LEVEL */ -+ hr = D3DCompile(globVertexShaderDefault, strlen(globVertexShaderDefault), -+ NULL, NULL, NULL, "VS", "vs_4_0_level_9_1", 0, 0, &pVSBlob, NULL); -+ -+ if( FAILED(hr)) { -+ msg_Err(vd, "The Vertex Shader is invalid."); -+ return VLC_EGENERIC; -+ } -+ -+ hr = ID3D11Device_CreateVertexShader(sys->d3ddevice, (void *)ID3D10Blob_GetBufferPointer(pVSBlob), -+ ID3D10Blob_GetBufferSize(pVSBlob), NULL, &sys->d3dvertexShader); -+ -+ if(FAILED(hr)) { -+ ID3D11Device_Release(pVSBlob); -+ msg_Err(vd, "Failed to create the vertex shader."); -+ return VLC_EGENERIC; -+ } -+ -+ D3D11_INPUT_ELEMENT_DESC layout[] = { -+ { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0}, -+ { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0}, -+ }; -+ -+ ID3D11InputLayout* pVertexLayout = NULL; -+ hr = ID3D11Device_CreateInputLayout(sys->d3ddevice, layout, 2, (void *)ID3D10Blob_GetBufferPointer(pVSBlob), -+ ID3D10Blob_GetBufferSize(pVSBlob), &pVertexLayout); -+ -+ ID3D10Blob_Release(pVSBlob); -+ -+ if(FAILED(hr)) { -+ msg_Err(vd, "Failed to create the vertex input layout"); -+ return VLC_EGENERIC; -+ } -+ -+ ID3D11DeviceContext_IASetInputLayout(sys->d3dcontext, pVertexLayout); -+ -+ ID3DBlob* pPSBlob = NULL; -+ -+ /* TODO : Match the version to the D3D_FEATURE_LEVEL */ -+ if (sys->vlcFormat == VLC_CODEC_NV12) -+ hr = D3DCompile(globPixelShaderBiplanarYUV2RGB, strlen(globPixelShaderBiplanarYUV2RGB), -+ NULL, NULL, NULL, "PS", "ps_4_0_level_9_1", 0, 0, &pPSBlob, NULL); -+ else -+ hr = D3DCompile(globPixelShaderDefault, strlen(globPixelShaderDefault), -+ NULL, NULL, NULL, "PS", "ps_4_0_level_9_1", 0, 0, &pPSBlob, NULL); -+ -+ -+ if( FAILED(hr)) { -+ msg_Err(vd, "The Pixel Shader is invalid."); -+ return VLC_EGENERIC; -+ } -+ -+ hr = ID3D11Device_CreatePixelShader(sys->d3ddevice, (void *)ID3D10Blob_GetBufferPointer(pPSBlob), -+ ID3D10Blob_GetBufferSize(pPSBlob), NULL, &sys->d3dpixelShader); -+ -+ ID3D10Blob_Release(pPSBlob); -+ -+ if(FAILED(hr)) { -+ msg_Err(vd, "Failed to create the pixel shader."); -+ return VLC_EGENERIC; -+ } -+ -+ float vertices[] = { -+ -1.0f, -1.0f, -1.0f, 0.0f, 1.0f, -+ 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -+ 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, -+ -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -+ }; -+ -+ D3D11_BUFFER_DESC bd; -+ memset(&bd, 0, sizeof(bd)); -+ bd.Usage = D3D11_USAGE_DEFAULT; -+ bd.ByteWidth = sizeof(float) * 5 * 4; -+ bd.BindFlags = D3D11_BIND_VERTEX_BUFFER; -+ bd.CPUAccessFlags = 0; -+ -+ D3D11_SUBRESOURCE_DATA InitData; -+ memset(&InitData, 0, sizeof(InitData)); -+ InitData.pSysMem = vertices; -+ -+ ID3D11Buffer* pVertexBuffer = NULL; -+ hr = ID3D11Device_CreateBuffer(sys->d3ddevice, &bd, &InitData, &pVertexBuffer); -+ -+ if(FAILED(hr)) { -+ msg_Err(vd, "Failed to create vertex buffer."); -+ return VLC_EGENERIC; -+ } -+ -+ UINT stride = sizeof(float) * 5; -+ UINT offset = 0; -+ ID3D11DeviceContext_IASetVertexBuffers(sys->d3dcontext, 0, 1, &pVertexBuffer, &stride, &offset); -+ -+ ID3D11Buffer_Release(pVertexBuffer); -+ -+ WORD indices[] = { -+ 3, 1, 0, -+ 2, 1, 3, -+ }; -+ -+ bd.Usage = D3D11_USAGE_DEFAULT; -+ bd.ByteWidth = sizeof(WORD)*6; -+ bd.BindFlags = D3D11_BIND_INDEX_BUFFER; -+ bd.CPUAccessFlags = 0; -+ InitData.pSysMem = indices; -+ -+ ID3D11Buffer* pIndexBuffer = NULL; -+ hr = ID3D11Device_CreateBuffer(sys->d3ddevice, &bd, &InitData, &pIndexBuffer); -+ if(FAILED(hr)) { -+ msg_Err(vd, "Failed to create index buffer."); -+ return VLC_EGENERIC; -+ } -+ -+ ID3D11DeviceContext_IASetIndexBuffer(sys->d3dcontext, pIndexBuffer, DXGI_FORMAT_R16_UINT, 0); -+ -+ ID3D11Buffer_Release(pVertexBuffer); -+ -+ ID3D11DeviceContext_IASetPrimitiveTopology(sys->d3dcontext, D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); -+ -+ D3D11_TEXTURE2D_DESC texDesc; -+ memset(&texDesc, 0, sizeof(texDesc)); -+ texDesc.Width = fmt->i_visible_width; -+ texDesc.Height = fmt->i_visible_height; -+ texDesc.MipLevels = texDesc.ArraySize = 1; -+ texDesc.Format = sys->d3dFormat; -+ texDesc.SampleDesc.Count = 1; -+ texDesc.Usage = D3D11_USAGE_DYNAMIC; -+ texDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE; -+ texDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; -+ texDesc.MiscFlags = 0; -+ -+ hr = ID3D11Device_CreateTexture2D(sys->d3ddevice, &texDesc, NULL, &sys->d3dtexture); -+ if (FAILED(hr)) { -+ msg_Err(vd, "Could not Create the D3d11 Texture. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ D3D11_SHADER_RESOURCE_VIEW_DESC resviewDesc; -+ memset(&resviewDesc, 0, sizeof(resviewDesc)); -+ resviewDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; -+ resviewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; -+ resviewDesc.Texture2D.MipLevels = texDesc.MipLevels; -+ -+ if (sys->vlcFormat == VLC_CODEC_NV12) -+ resviewDesc.Format = DXGI_FORMAT_R8_UNORM; -+ -+ hr = ID3D11Device_CreateShaderResourceView(sys->d3ddevice, (ID3D11Resource *)sys->d3dtexture, &resviewDesc, &sys->d3dresViewY); -+ if (FAILED(hr)) { -+ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); -+ msg_Err(vd, "Could not Create the Y D3d11 Texture ResoureView. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ if (sys->vlcFormat == VLC_CODEC_NV12) { -+ resviewDesc.Format = DXGI_FORMAT_R8G8_UNORM; -+ hr = ID3D11Device_CreateShaderResourceView(sys->d3ddevice, (ID3D11Resource *)sys->d3dtexture, &resviewDesc, &sys->d3dresViewUV); -+ if (FAILED(hr)) { -+ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); -+ msg_Err(vd, "Could not Create the U D3d11 Texture ResoureView. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ } -+ -+ D3D11_SAMPLER_DESC sampDesc; -+ memset(&sampDesc, 0, sizeof(sampDesc)); -+ sampDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_POINT; -+ sampDesc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP; -+ sampDesc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP; -+ sampDesc.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP; -+ sampDesc.ComparisonFunc = D3D11_COMPARISON_NEVER; -+ sampDesc.MinLOD = 0; -+ sampDesc.MaxLOD = D3D11_FLOAT32_MAX; -+ -+ hr = ID3D11Device_CreateSamplerState(sys->d3ddevice, &sampDesc, &sys->d3dsampState); -+ -+ if (FAILED(hr)) { -+ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); -+ msg_Err(vd, "Could not Create the D3d11 Sampler State. (hr=0x%lX)", hr); -+ return VLC_EGENERIC; -+ } -+ -+ picture_sys_t *picsys = malloc(sizeof(*picsys)); -+ if (unlikely(picsys == NULL)) { -+ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); -+ return VLC_ENOMEM; -+ } -+ -+ picsys->texture = sys->d3dtexture; -+ picsys->context = sys->d3dcontext; -+ -+ picture_resource_t resource = { .p_sys = picsys }; -+ for (int i = 0; i < PICTURE_PLANE_MAX; i++) -+ resource.p[i].i_lines = fmt->i_visible_height / (i > 0 ? 2 : 1); -+ -+ picture_t *picture = picture_NewFromResource(fmt, &resource); -+ if (!picture) { -+ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); -+ free(picsys); -+ return VLC_ENOMEM; -+ } -+ sys->picsys = picsys; -+ -+ picture_pool_configuration_t pool_cfg; -+ memset(&pool_cfg, 0, sizeof(pool_cfg)); -+ pool_cfg.picture_count = 1; -+ pool_cfg.picture = &picture; -+ pool_cfg.lock = Direct3D11MapTexture; -+ -+ sys->pool = picture_pool_NewExtended(&pool_cfg); -+ if (!sys->pool) { -+ picture_Release(picture); -+ if(sys->d3dtexture) ID3D11Texture2D_Release(sys->d3dtexture); -+ return VLC_ENOMEM; -+ } -+ -+ msg_Dbg(vd, "Direct3D11 resources created"); -+ return VLC_SUCCESS; -+} -+ -+static void Direct3D11DestroyResources(vout_display_t *vd) -+{ -+ vout_display_sys_t *sys = vd->sys; -+ -+ /* TODO: Destroy Shaders? */ -+ if (sys->pool) { -+ picture_sys_t *picsys = sys->picsys; -+ ID3D11Texture2D_Release(picsys->texture); -+ picture_pool_Release(sys->pool); -+ } -+ sys->pool = NULL; -+ -+ msg_Dbg(vd, "Direct3D11 resources destroyed"); -+} -+ -+static int Direct3D11MapTexture(picture_t *picture) -+{ -+ D3D11_MAPPED_SUBRESOURCE mappedResource; -+ ID3D11DeviceContext_Map(picture->p_sys->context, (ID3D11Resource *)picture->p_sys->texture, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); -+ CommonUpdatePicture(picture, NULL, mappedResource.pData, mappedResource.RowPitch); -+ ID3D11DeviceContext_Unmap(picture->p_sys->context,(ID3D11Resource *)picture->p_sys->texture, 0); -+ return VLC_SUCCESS; -+} -diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c -index 866b279..4711326 100644 ---- a/modules/video_output/msw/events.c -+++ b/modules/video_output/msw/events.c -@@ -4,7 +4,8 @@ - * Copyright (C) 2001-2009 VLC authors and VideoLAN - * $Id$ - * -- * Authors: Gildas Bazin -+ * Authors: Martell Malone , -+ * Gildas Bazin - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published by -@@ -620,7 +621,7 @@ static void MouseReleased( event_thread_t *p_event, unsigned button ) - vout_display_SendEventMouseReleased( p_event->vd, button ); - } - --#ifdef MODULE_NAME_IS_direct3d9 -+#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) - static int CALLBACK - enumWindowsProc(HWND hwnd, LPARAM lParam) - { -@@ -681,7 +682,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event ) - /* Get this module's instance */ - hInstance = GetModuleHandle(NULL); - -- #ifdef MODULE_NAME_IS_direct3d9 -+ #if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) - if( !p_event->use_desktop ) - #endif - { -@@ -692,7 +693,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event ) - else - p_event->hparent = NULL; - } -- #ifdef MODULE_NAME_IS_direct3d9 -+ #if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) - else - { - vout_display_DeleteWindow(vd, NULL); -@@ -719,7 +720,11 @@ static int Win32VoutCreateWindow( event_thread_t *p_event ) - wc.hIcon = p_event->vlc_icon; /* load the vlc big icon */ - wc.hCursor = p_event->is_cursor_hidden ? p_event->cursor_empty : - p_event->cursor_arrow; -+#if !VLC_WINSTORE_APP - wc.hbrBackground = GetStockObject(BLACK_BRUSH); /* background color */ -+#else -+ wc.hbrBackground = NULL; -+#endif - wc.lpszMenuName = NULL; /* no menu */ - wc.lpszClassName = p_event->class_main; /* use a special class */ - -@@ -865,14 +870,14 @@ static void Win32VoutCloseWindow( event_thread_t *p_event ) - vout_display_t *vd = p_event->vd; - msg_Dbg( vd, "Win32VoutCloseWindow" ); - -- #ifdef MODULE_NAME_IS_direct3d9 -+ #if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) - DestroyWindow( p_event->hvideownd ); - #endif - DestroyWindow( p_event->hwnd ); - if( p_event->hfswnd ) - DestroyWindow( p_event->hfswnd ); - -- #ifdef MODULE_NAME_IS_direct3d9 -+ #if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11) - if( !p_event->use_desktop ) - #endif - vout_display_DeleteWindow( vd, p_event->parent_window ); --- -2.3.1 - diff --git a/mingw-w64-vlc-git/0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch b/mingw-w64-vlc-git/0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch new file mode 100644 index 0000000000..e529257eb1 --- /dev/null +++ b/mingw-w64-vlc-git/0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch @@ -0,0 +1,24 @@ +From e956727cf7fbe8fdd164a92cdc582cc839a2ec7d Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 5 Mar 2015 01:01:53 +0000 +Subject: [PATCH] Add include on WINSTORE for QueueTimer functions + + +diff --git a/src/win32/thread.c b/src/win32/thread.c +index 2f94fab..0f62610 100644 +--- a/src/win32/thread.c ++++ b/src/win32/thread.c +@@ -46,6 +46,10 @@ static vlc_cond_t super_variable; + + /*** Common helpers ***/ + #if VLC_WINSTORE_APP ++#include ++#ifndef TLS_OUT_OF_INDEXES ++#define TLS_OUT_OF_INDEXES (~0u) ++#endif + static bool isCancelled(void); + #endif + +-- +2.3.1 + diff --git a/mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch b/mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch new file mode 100644 index 0000000000..eccfcedcba --- /dev/null +++ b/mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch @@ -0,0 +1,332 @@ +From fede6304a6858f7858dbd2f30fe70e51d03f0995 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 5 Mar 2015 01:43:37 +0000 +Subject: [PATCH] Only build correct modules for WINSTORE + +--- + modules/access/Makefile.am | 6 ++++++ + modules/audio_filter/Makefile.am | 36 ++++++++++++++++++++++------------ + modules/audio_output/Makefile.am | 2 ++ + modules/codec/Makefile.am | 8 ++++++++ + modules/control/Makefile.am | 23 ++++++++++++++-------- + modules/services_discovery/Makefile.am | 4 ++++ + modules/video_filter/Makefile.am | 2 ++ + modules/video_output/Makefile.am | 6 ++++++ + modules/video_splitter/Makefile.am | 2 ++ + 9 files changed, 69 insertions(+), 20 deletions(-) + +diff --git a/modules/access/Makefile.am b/modules/access/Makefile.am +index 3bc9146..724c296 100644 +--- a/modules/access/Makefile.am ++++ b/modules/access/Makefile.am +@@ -255,8 +255,10 @@ if HAVE_DARWIN + libcdda_plugin_la_LIBADD += -liconv + libcdda_plugin_la_LDFLAGS += -Wl,-framework,IOKit,-framework,CoreFoundation + endif ++if !HAVE_WINSTORE + EXTRA_LTLIBRARIES += libcdda_plugin.la + access_LTLIBRARIES += $(LTLIBcdda) ++endif + + libvcd_plugin_la_SOURCES = access/vcd/vcd.c access/vcd/cdrom.c access/vcd/cdrom.h access/vcd/cdrom_internals.h + libvcd_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(accessdir)' +@@ -264,8 +266,10 @@ if HAVE_DARWIN + libvcd_plugin_la_LIBADD = -liconv + libvcd_plugin_la_LDFLAGS += -Wl,-framework,IOKit,-framework,CoreFoundation + endif ++if !HAVE_WINSTORE + EXTRA_LTLIBRARIES += libvcd_plugin.la + access_LTLIBRARIES += $(LTLIBvcd) ++endif + + libvcdx_plugin_la_SOURCES = \ + access/vcdx/access.h access/vcdx/access.c \ +@@ -410,8 +414,10 @@ if HAVE_WIN32 + libsmb_plugin_la_LIBADD += -lmpr + endif + libsmb_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(accessdir)' ++if !HAVE_WINSTORE + access_LTLIBRARIES += $(LTLIBsmb) + EXTRA_LTLIBRARIES += libsmb_plugin.la ++endif + + libdsm_plugin_la_SOURCES = access/dsm/access.c access/dsm/sd.c + libdsm_plugin_la_CFLAGS = $(AM_CFLAGS) $(DSM_CFLAGS) +diff --git a/modules/audio_filter/Makefile.am b/modules/audio_filter/Makefile.am +index c7b866e..fa6972e 100644 +--- a/modules/audio_filter/Makefile.am ++++ b/modules/audio_filter/Makefile.am +@@ -1,22 +1,45 @@ + audio_filterdir = $(pluginsdir)/audio_filter ++audio_filter_LTLIBRARIES = + + libaudiobargraph_a_plugin_la_SOURCES = audio_filter/audiobargraph_a.c + libaudiobargraph_a_plugin_la_LIBADD = $(LIBM) ++if !HAVE_WINSTORE ++audio_filter_LTLIBRARIES += libaudiobargraph_a_plugin.la ++endif ++ + libchorus_flanger_plugin_la_SOURCES = audio_filter/chorus_flanger.c + libchorus_flanger_plugin_la_LIBADD = $(LIBM) ++audio_filter_LTLIBRARIES += libchorus_flanger_plugin.la ++ + libcompressor_plugin_la_SOURCES = audio_filter/compressor.c + libcompressor_plugin_la_LIBADD = $(LIBM) ++audio_filter_LTLIBRARIES += libcompressor_plugin.la ++ + libequalizer_plugin_la_SOURCES = audio_filter/equalizer.c \ + audio_filter/equalizer_presets.h + libequalizer_plugin_la_LIBADD = $(LIBM) ++audio_filter_LTLIBRARIES += libequalizer_plugin.la ++ + libkaraoke_plugin_la_SOURCES = audio_filter/karaoke.c ++audio_filter_LTLIBRARIES += libkaraoke_plugin.la ++ + libnormvol_plugin_la_SOURCES = audio_filter/normvol.c + libnormvol_plugin_la_LIBADD = $(LIBM) ++audio_filter_LTLIBRARIES += libnormvol_plugin.la ++ + libgain_plugin_la_SOURCES = audio_filter/gain.c ++audio_filter_LTLIBRARIES += libgain_plugin.la ++ + libparam_eq_plugin_la_SOURCES = audio_filter/param_eq.c + libparam_eq_plugin_la_LIBADD = $(LIBM) ++audio_filter_LTLIBRARIES += libparam_eq_plugin.la ++ + libscaletempo_plugin_la_SOURCES = audio_filter/scaletempo.c ++audio_filter_LTLIBRARIES += libscaletempo_plugin.la ++ + libstereo_widen_plugin_la_SOURCES = audio_filter/stereo_widen.c ++audio_filter_LTLIBRARIES += libstereo_widen_plugin.la ++ + libspatializer_plugin_la_SOURCES = \ + audio_filter/spatializer/allpass.cpp \ + audio_filter/spatializer/allpass.hpp \ +@@ -29,19 +52,8 @@ libspatializer_plugin_la_SOURCES = \ + audio_filter/spatializer/revmodel.hpp \ + audio_filter/spatializer/spatializer.cpp + libspatializer_plugin_la_LIBADD = $(LIBM) ++audio_filter_LTLIBRARIES += libspatializer_plugin.la + +-audio_filter_LTLIBRARIES = \ +- libaudiobargraph_a_plugin.la \ +- libchorus_flanger_plugin.la \ +- libcompressor_plugin.la \ +- libequalizer_plugin.la \ +- libkaraoke_plugin.la \ +- libnormvol_plugin.la \ +- libgain_plugin.la \ +- libparam_eq_plugin.la \ +- libscaletempo_plugin.la \ +- libspatializer_plugin.la \ +- libstereo_widen_plugin.la + + # Channel mixers + libdolby_surround_decoder_plugin_la_SOURCES = \ +diff --git a/modules/audio_output/Makefile.am b/modules/audio_output/Makefile.am +index 589e5fe..3ef943e 100644 +--- a/modules/audio_output/Makefile.am ++++ b/modules/audio_output/Makefile.am +@@ -94,8 +94,10 @@ libwaveout_plugin_la_SOURCES = audio_output/waveout.c \ + audio_output/windows_audio_common.h + libwaveout_plugin_la_LIBADD = -lwinmm + if HAVE_WIN32 ++if !HAVE_WINSTORE + aout_LTLIBRARIES += libwaveout_plugin.la + endif ++endif + + libauhal_plugin_la_SOURCES = audio_output/auhal.c \ + audio_output/TPCircularBuffer.h audio_output/TPCircularBuffer.c +diff --git a/modules/codec/Makefile.am b/modules/codec/Makefile.am +index 9c31230..d08d525 100644 +--- a/modules/codec/Makefile.am ++++ b/modules/codec/Makefile.am +@@ -345,8 +345,10 @@ libdxva2_plugin_la_SOURCES = \ + codec/avcodec/dxva2.c + libdxva2_plugin_la_LIBADD = -lole32 -lshlwapi -luuid + if HAVE_AVCODEC_DXVA2 ++if !HAVE_WINSTORE + codec_LTLIBRARIES += libdxva2_plugin.la + endif ++endif + + libvda_plugin_la_SOURCES = \ + video_chroma/copy.c video_chroma/copy.h \ +@@ -477,8 +479,10 @@ codec_LTLIBRARIES += $(LTLIBtwolame) + libcrystalhd_plugin_la_SOURCES = codec/crystalhd.c codec/h264_nal.c codec/h264_nal.h + libcrystalhd_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)' + libcrystalhd_plugin_la_LIBADD = $(LIBS_crystalhd) ++if !HAVE_WINSTORE + EXTRA_LTLIBRARIES += libcrystalhd_plugin.la + codec_LTLIBRARIES += $(LTLIBcrystalhd) ++endif + + libqsv_plugin_la_SOURCES = codec/qsv.c + libqsv_plugin_la_CFLAGS = $(AM_CFLAGS) $(MFX_CFLAGS) +@@ -494,9 +498,11 @@ libdmo_plugin_la_SOURCES = codec/dmo/dmo.c codec/dmo/dmo.h codec/dmo/buffer.c + libqsv_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) + libdmo_plugin_la_LIBADD = $(LIBM) + if HAVE_WIN32 ++if !HAVE_WINSTORE + libdmo_plugin_la_LIBADD += -lole32 -luuid + codec_LTLIBRARIES += libdmo_plugin.la + endif ++endif + + libmft_plugin_la_SOURCES = codec/mft.c codec/h264_nal.c codec/h264_nal.h + if HAVE_WIN32 +@@ -507,8 +513,10 @@ endif + libquicktime_plugin_la_SOURCES = codec/quicktime.c + libquicktime_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)' + libquicktime_plugin_la_LIBADD = $(LIBM) ++if !HAVE_WINSTORE + EXTRA_LTLIBRARIES += libquicktime_plugin.la + codec_LTLIBRARIES += $(LTLIBquicktime) ++endif + + libgstdecode_plugin_la_SOURCES = codec/gstdecode.c + libgstdecode_plugin_la_CFLAGS = $(AM_CFLAGS) $(GST_VIDEO_CFLAGS) $(GST_APP_CFLAGS) +diff --git a/modules/control/Makefile.am b/modules/control/Makefile.am +index 70a8486..b732876 100644 +--- a/modules/control/Makefile.am ++++ b/modules/control/Makefile.am +@@ -1,20 +1,27 @@ + controldir = $(pluginsdir)/control ++control_LTLIBRARIES = + + libdummy_plugin_la_SOURCES = control/dummy.c control/intromsg.h ++control_LTLIBRARIES += libdummy_plugin.la ++ + libgestures_plugin_la_SOURCES = control/gestures.c ++control_LTLIBRARIES += libgestures_plugin.la ++ + libhotkeys_plugin_la_SOURCES = control/hotkeys.c + libhotkeys_plugin_la_LIBADD = $(LIBM) ++control_LTLIBRARIES += libhotkeys_plugin.la ++ + libnetsync_plugin_la_SOURCES = control/netsync.c + libnetsync_plugin_la_LIBADD = $(SOCKET_LIBS) ++if !HAVE_WINSTORE ++control_LTLIBRARIES += libnetsync_plugin.la ++endif ++ + liboldrc_plugin_la_SOURCES = control/rc.c control/intromsg.h + liboldrc_plugin_la_LIBADD = $(SOCKET_LIBS) $(LIBM) +- +-control_LTLIBRARIES = \ +- libdummy_plugin.la \ +- libgestures_plugin.la \ +- libhotkeys_plugin.la \ +- libnetsync_plugin.la \ +- liboldrc_plugin.la ++if !HAVE_WINSTORE ++control_LTLIBRARIES += liboldrc_plugin.la ++endif + + liblirc_plugin_la_SOURCES = control/lirc.c + liblirc_plugin_la_LIBADD = -llirc_client +@@ -64,8 +71,8 @@ libntservice_plugin_la_SOURCES = control/ntservice.c + libwin_hotkeys_plugin_la_SOURCES = control/globalhotkeys/win32.c + libwin_msg_plugin_la_SOURCES = control/win_msg.c + if HAVE_WIN32 +-control_LTLIBRARIES += libntservice_plugin.la + if !HAVE_WINSTORE ++control_LTLIBRARIES += libntservice_plugin.la + control_LTLIBRARIES += libwin_hotkeys_plugin.la libwin_msg_plugin.la + endif + endif +diff --git a/modules/services_discovery/Makefile.am b/modules/services_discovery/Makefile.am +index b526338..15cf2c1 100644 +--- a/modules/services_discovery/Makefile.am ++++ b/modules/services_discovery/Makefile.am +@@ -11,7 +11,9 @@ sd_LTLIBRARIES += libpodcast_plugin.la + libsap_plugin_la_SOURCES = services_discovery/sap.c + libsap_plugin_la_CFLAGS = $(AM_CFLAGS) $(CFLAGS_sap) + libsap_plugin_la_LIBADD = $(LIBS_sap) $(SOCKET_LIBS) ++if !HAVE_WINSTORE + sd_LTLIBRARIES += libsap_plugin.la ++endif + + libbonjour_plugin_la_SOURCES = services_discovery/bonjour.c + libbonjour_plugin_la_CFLAGS = $(AM_CFLAGS) $(BONJOUR_CFLAGS) +@@ -61,8 +63,10 @@ endif + + libwindrive_plugin_la_SOURCES = services_discovery/windrive.c + if HAVE_WIN32 ++if !HAVE_WINSTORE + sd_LTLIBRARIES += libwindrive_plugin.la + endif ++endif + + libos2drive_plugin_la_SOURCES = services_discovery/os2drive.c + if HAVE_OS2 +diff --git a/modules/video_filter/Makefile.am b/modules/video_filter/Makefile.am +index dc2b5b4..882758d 100644 +--- a/modules/video_filter/Makefile.am ++++ b/modules/video_filter/Makefile.am +@@ -128,8 +128,10 @@ libatmo_plugin_la_SOURCES = video_filter/atmo/atmo.cpp \ + video_filter/atmo/FnordlichtConnection.cpp video_filter/atmo/FnordlichtConnection.h \ + video_filter/atmo/AtmoPacketQueue.cpp video_filter/atmo/AtmoPacketQueue.h + libatmo_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(video_filterdir)' ++if !HAVE_WINSTORE + video_filter_LTLIBRARIES += $(LTLIBatmo) + EXTRA_LTLIBRARIES += libatmo_plugin.la ++endif + + libdeinterlace_plugin_la_SOURCES = \ + video_filter/deinterlace/deinterlace.c video_filter/deinterlace/deinterlace.h \ +diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am +index 5aaeafb..943ad6a 100644 +--- a/modules/video_output/Makefile.am ++++ b/modules/video_output/Makefile.am +@@ -166,8 +166,10 @@ libdirect2d_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \ + -DMODULE_NAME_IS_direct2d + libdirect2d_plugin_la_LIBADD = -lgdi32 -lole32 -luuid + libdirect2d_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)' ++if !HAVE_WINSTORE + vout_LTLIBRARIES += $(LTLIBdirect2d) + EXTRA_LTLIBRARIES += libdirect2d_plugin.la ++endif + + libdirect3d9_plugin_la_SOURCES = video_output/msw/direct3d9.c \ + video_output/msw/common.c video_output/msw/common.h \ +@@ -178,8 +180,10 @@ libdirect3d9_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \ + -DMODULE_NAME_IS_direct3d9 + libdirect3d9_plugin_la_LIBADD = -lgdi32 -lole32 -luuid + libdirect3d9_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)' ++if !HAVE_WINSTORE + vout_LTLIBRARIES += $(LTLIBdirect3d9) + EXTRA_LTLIBRARIES += libdirect3d9_plugin.la ++endif + + libdirect3d11_plugin_la_SOURCES = video_output/msw/direct3d11.c \ + video_output/msw/common.c video_output/msw/common.h \ +@@ -205,8 +209,10 @@ libdirectdraw_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \ + -DMODULE_NAME_IS_directdraw + libdirectdraw_plugin_la_LIBADD = -luser32 -lgdi32 -lole32 -luuid + if HAVE_DIRECTX ++if !HAVE_WINSTORE + vout_LTLIBRARIES += libdirectdraw_plugin.la + endif ++endif + + libglwin32_plugin_la_SOURCES = video_output/msw/glwin32.c \ + video_output/opengl.c video_output/opengl.h \ +diff --git a/modules/video_splitter/Makefile.am b/modules/video_splitter/Makefile.am +index f0e023c..f6f952b 100644 +--- a/modules/video_splitter/Makefile.am ++++ b/modules/video_splitter/Makefile.am +@@ -12,7 +12,9 @@ libpanoramix_plugin_la_SOURCES = video_splitter/panoramix.c + libpanoramix_plugin_la_CFLAGS = $(AM_CFLAGS) + libpanoramix_plugin_la_LIBADD = $(LIBM) + if HAVE_WIN32 ++if !HAVE_WINSTORE + splitter_LTLIBRARIES += libpanoramix_plugin.la ++endif + else + if HAVE_XCB_RANDR + libpanoramix_plugin_la_CFLAGS += $(XCB_RANDR_CFLAGS) +-- +2.3.1 + diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 33ed07c54c..236d37552a 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -114,24 +114,20 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re 0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch 0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch 0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - 0004-pollfd-is-defined-from-Vista-onwards.patch 0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch - 0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch 0007-Use-libdir-for-plugins-on-msys2.patch 0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch - 0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch - 0010-d3d11-vout-plugin.patch) + 0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch + 0012-Only-build-correct-modules-for-WINSTORE.patch) md5sums=('SKIP' 'c2a4338d8c9396054c1ed45fae221470' '13f5a8bf897b253e0d9626a5ae79bc8d' 'c53c41b440eb42e7a2cda9109a1651c4' - '190af6f6e66b786bc481e2be0bde664c' '8cd35991a69b14a1c3ab3b6faa9f15bc' - '78b89fead94d41539dd3a8845e70cadb' 'b6a010849631177493135b3ad7c5f784' 'dc623f31cffed63092b192b24ab86f0d' - '298500eb00df672e5088c15a2822792b' - '4b7e57474dd2225a3a94e3c18279ddc4') + '6063839d14c066b042fc927d735addbb' + '389c43a2b9a8bbe36f589c35018cfb98') pkgver() { cd $_realname @@ -149,19 +145,16 @@ prepare() { git am "${srcdir}"/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch git am "${srcdir}"/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - git am "${srcdir}"/0004-pollfd-is-defined-from-Vista-onwards.patch git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch - git am "${srcdir}"/0006-Search-for-freeaddrinfo-in-SOCKET_LIBS.patch git am "${srcdir}"/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch + git am "${srcdir}"/0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch + git am "${srcdir}"/0012-Only-build-correct-modules-for-WINSTORE.patch if [ "${_variant}" != "winrt" ]; then git am "${srcdir}"/0007-Use-libdir-for-plugins-on-msys2.patch fi - git am "${srcdir}"/0009-MEDIASUBTYPE_I420-is-in-wmcodecdsp.patch - git am "${srcdir}"/0010-d3d11-vout-plugin.patch - ./bootstrap sed -i -e 's:truetype/freefont:TTF:g' modules/text_renderer/freetype.c @@ -185,11 +178,8 @@ build() { if [ "${_variant}" = "winrt" ]; then #WinRT - EXTRA_CPPFLAGS+=" -D_WIN32_WINNT=0x602 -DWINVER=0x602 -DWINSTORECOMPAT -D_UNICODE -DUNICODE -DHAVE_WINRT" - - #todo: ask about CFLAGS. i.e building in full WinRT mode not compat - CFLAGS+=" -D_WIN32_WINNT=0x602 -DWINVER=0x602 -DWINSTORECOMPAT -D_UNICODE -DUNICODE -DHAVE_WINRT" - CFLAGS+=" -DNDEBUG -DWINAPI_FAMILY=WINAPI_FAMILY_APP -DHAVE_WINRT" + EXTRA_CPPFLAGS+="-D_WIN32_WINNT=0x602 -DWINVER=0x602 -DWINSTORECOMPAT -D_UNICODE -DUNICODE -DWINAPI_FAMILY=WINAPI_FAMILY_APP -DHAVE_WINRT" + EXTRA_CFLAGS+="-DNDEBUG ${EXTRA_CPPFLAGS}" EXTRA_LDFLAGS+=" -lnormaliz -lwinstorecompat -lruntimeobject" ${MINGW_CHOST}-gcc -dumpspecs | sed -e 's/-lmingwex/-lwinstorecompat -lmingwex -lwinstorecompat -lole32 -lruntimeobject/' -e 's/-lmsvcrt/-lmsvcr110/' > newspecfile @@ -199,6 +189,7 @@ if [ "${_variant}" = "winrt" ]; then echo "$NEWSPECFILE" #WinRT + CFLAGS="${EXTRA_CFLAGS}" \ CPPFLAGS="${EXTRA_CPPFLAGS}" \ LDFLAGS="${EXTRA_LDFLAGS}" \ CC="${MINGW_CHOST}-gcc -specs=$NEWSPECFILE" \ From a1fbb10ee8841aa217b2663148f8cee15aa10a07 Mon Sep 17 00:00:00 2001 From: David Macek Date: Tue, 10 Mar 2015 16:25:46 +0100 Subject: [PATCH 0646/2060] new: ansicon-git, clink-git --- .../0001-Do-not-invoke-cmd-in-makefile.patch | 42 +++++ mingw-w64-ansicon-git/PKGBUILD | 62 ++++++++ mingw-w64-ansicon-git/ansicon.bat | 56 +++++++ mingw-w64-clink-git/0001-Relocation.patch | 143 ++++++++++++++++++ mingw-w64-clink-git/PKGBUILD | 85 +++++++++++ 5 files changed, 388 insertions(+) create mode 100644 mingw-w64-ansicon-git/0001-Do-not-invoke-cmd-in-makefile.patch create mode 100644 mingw-w64-ansicon-git/PKGBUILD create mode 100644 mingw-w64-ansicon-git/ansicon.bat create mode 100644 mingw-w64-clink-git/0001-Relocation.patch create mode 100644 mingw-w64-clink-git/PKGBUILD diff --git a/mingw-w64-ansicon-git/0001-Do-not-invoke-cmd-in-makefile.patch b/mingw-w64-ansicon-git/0001-Do-not-invoke-cmd-in-makefile.patch new file mode 100644 index 0000000000..c0fe83b85c --- /dev/null +++ b/mingw-w64-ansicon-git/0001-Do-not-invoke-cmd-in-makefile.patch @@ -0,0 +1,42 @@ +From ba0444146c35848917101b28f3463cd0df08a02d Mon Sep 17 00:00:00 2001 +From: David Macek +Date: Tue, 10 Mar 2015 00:22:35 +0100 +Subject: [PATCH] Do not invoke cmd in makefile + +--- + makefile.gcc | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/makefile.gcc b/makefile.gcc +index 7000335..281cbe7 100644 +--- a/makefile.gcc ++++ b/makefile.gcc +@@ -90,7 +90,7 @@ ansicon32: x86 x86/ansicon.exe x86/ANSI32.dll x64 x64/ANSI32.dll + ansicon64: x64 x64/ansicon.exe x64/ANSI64.dll + + x86: +- cmd /c "mkdir x86" ++ mkdir x86 + + x86/ansicon.exe: x86/ansicon.o $(X86OBJS) x86/procrva.o x86/ansiconv.o + $(LDmsg)$(CC) -m32 $+ -s -o $@ $(IVER) +@@ -99,7 +99,7 @@ x86/ANSI32.dll: x86/ANSI.o $(X86OBJS) x86/ansiv.o + $(LDmsg)$(CC) -m32 $+ -s -o $@ -mdll -Wl,-shared,--image-base,0xAC0000 + + x64: +- cmd /c "mkdir x64" ++ mkdir x64 + + x64/ansicon.exe: x64/ansicon.o $(X64OBJS) x64/ansiconv.o + $(LDmsg)$(CC) -m64 $+ -s -o $@ $(IVER) +@@ -121,5 +121,5 @@ x64/util.o: version.h + # Need two commands, because if the directory doesn't exist, it won't delete + # anything at all. + clean: +- -cmd /c "del x86\*.o 2>nul" +- -cmd /c "del x64\*.o 2>nul" ++ rm -f x86\*.o ++ rm -f x64\*.o +-- +2.3.1 + diff --git a/mingw-w64-ansicon-git/PKGBUILD b/mingw-w64-ansicon-git/PKGBUILD new file mode 100644 index 0000000000..e7b2901bb1 --- /dev/null +++ b/mingw-w64-ansicon-git/PKGBUILD @@ -0,0 +1,62 @@ +# Maintainer: David Macek + +_realname=ansicon +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=1.70.r65.3acc7a9 +pkgrel=1 +pkgdesc="Process ANSI escape sequences for Windows console programs (mingw-w64)" +arch=('any') +url="http://adoxa.altervista.org/ansicon/" +license=("zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "git") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +source=("git+https://github.com/adoxa/ansicon.git" + "0001-Do-not-invoke-cmd-in-makefile.patch" + "ansicon.bat") +md5sums=('SKIP' + '50d56e1bb2591b895305e0070b96699a' + 'd4d49365e78f08c50849c6a1af078b94') + +pkgver() { + cd ${srcdir}/${_realname} + printf "%s.r%s.%s" "$(grep PVERSA version.h | sed -r 's/.*"(.+)".*/\1/')" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}/${_realname}" + patch -p1 -i "${srcdir}/0001-Do-not-invoke-cmd-in-makefile.patch" +} + +build() { + local _bit + case ${CARCH} in + x86_64) _bit=64 ;; + i686) _bit=32 ;; + esac + + cd "${srcdir}/${_realname}" + ARCH=${_bit} make -f makefile.gcc +} + +package() { + local _arch _bit + case ${CARCH} in + x86_64) _arch=64; _bit=64 ;; + i686) _arch=86; _bit=32 ;; + esac + + cd "${srcdir}/${_realname}" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" + cp "${srcdir}/ansicon.bat" "${pkgdir}${MINGW_PREFIX}/bin" + cp "x${_arch}/ansicon.exe" "${pkgdir}${MINGW_PREFIX}/bin/ansicon_x${_arch}.exe" + cp "x${_arch}/ansi${_bit}.dll" "${pkgdir}${MINGW_PREFIX}/bin/ansi${_bit}.dll" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}" + cp readme.* sequences.txt G1.* "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" + cp LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" +} diff --git a/mingw-w64-ansicon-git/ansicon.bat b/mingw-w64-ansicon-git/ansicon.bat new file mode 100644 index 0000000000..d32d5198a0 --- /dev/null +++ b/mingw-w64-ansicon-git/ansicon.bat @@ -0,0 +1,56 @@ +:: +:: Copyright (c) 2012 Martin Ridgers +:: +:: +:: Permission is hereby granted, free of charge, to any person obtaining a copy +:: of this software and associated documentation files (the "Software"), to deal +:: in the Software without restriction, including without limitation the rights +:: to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +:: copies of the Software, and to permit persons to whom the Software is +:: furnished to do so, subject to the following conditions: +:: +:: The above copyright notice and this permission notice shall be included in +:: all copies or substantial portions of the Software. +:: +:: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +:: IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +:: FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +:: AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +:: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +:: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +:: SOFTWARE. +:: + +@echo off + +:: Pass through to appropriate loader. +:: +if /i "%PROCESSOR_ARCHITECTURE%"=="x86" ( + call :loader_x86 %* +) else if /i "%PROCESSOR_ARCHITECTURE%"=="amd64" ( + call :loader_x64 %* +) + +:end +goto :eof + +:: Helper functions to avoid cmd.exe's issues with brackets. +:loader_x86 +if exist "%~dp0../../mingw32/bin/%~n0_x86.exe" ( + "%~dp0../../mingw32/bin/%~n0_x86.exe" %* + exit /b 0 +) else ( + echo Cannot find "%~dp0../../mingw32/bin/%~n0_x86.exe" >&2 + exit /b 1 +) + +:loader_x64 +if exist "%~dp0../../mingw64/bin/%~n0_x64.exe" ( + "%~dp0../../mingw64/bin/%~n0_x64.exe" %* + exit /b 0 +) else ( + echo Cannot find "%~dp0../../mingw64/bin/%~n0_x84.exe" >&2 + exit /b 1 +) + +exit /b 0 diff --git a/mingw-w64-clink-git/0001-Relocation.patch b/mingw-w64-clink-git/0001-Relocation.patch new file mode 100644 index 0000000000..3ebfa1a75f --- /dev/null +++ b/mingw-w64-clink-git/0001-Relocation.patch @@ -0,0 +1,143 @@ +From dc7df971d8acf85c30263c9c267add272a5a3b3d Mon Sep 17 00:00:00 2001 +From: David Macek +Date: Tue, 10 Mar 2015 02:11:40 +0100 +Subject: [PATCH] Relocation + +--- + clink/dll/lua.c | 1 + + clink/dll/rl_env.c | 2 +- + clink/loader/clink.bat | 18 ++++++++++++------ + clink/shared/paths.c | 46 ++++++++++++++++++++++++++-------------------- + 4 files changed, 40 insertions(+), 27 deletions(-) + +diff --git a/clink/dll/lua.c b/clink/dll/lua.c +index f734870..b0d94b9 100644 +--- a/clink/dll/lua.c ++++ b/clink/dll/lua.c +@@ -699,6 +699,7 @@ lua_State* initialise_lua() + if (g_inject_args.script_path[0] == '\0') + { + get_dll_dir(buffer, sizeof_array(buffer)); ++ str_cat(buffer, "/../share/clink", sizeof_array(buffer)); + } + else + { +diff --git a/clink/dll/rl_env.c b/clink/dll/rl_env.c +index 41c527c..fb35bb5 100644 +--- a/clink/dll/rl_env.c ++++ b/clink/dll/rl_env.c +@@ -142,7 +142,7 @@ void prepare_env_for_inputrc() + + strcpy(buffer, inputrc_eq); + get_dll_dir(buffer + size - 1, sizeof_array(buffer) - size); +- str_cat(buffer, "/clink_inputrc_base", sizeof_array(buffer)); ++ str_cat(buffer, "/../share/clink/clink_inputrc_base", sizeof_array(buffer)); + + putenv(buffer); + } +diff --git a/clink/loader/clink.bat b/clink/loader/clink.bat +index 1cafb84..cd0a524 100644 +--- a/clink/loader/clink.bat ++++ b/clink/loader/clink.bat +@@ -58,16 +58,22 @@ goto :eof + + :: Helper functions to avoid cmd.exe's issues with brackets. + :loader_x86 +-if exist "%~dpn0_x86.exe" ( +- "%~dpn0_x86.exe" %* ++if exist "%~dp0../../mingw32/bin/%~n0_x86.exe" ( ++ "%~dp0../../mingw32/bin/%~n0_x86.exe" %* ++ exit /b 0 ++) else ( ++ echo Cannot find "%~dp0../../mingw32/bin/%~n0_x86.exe" >&2 ++ exit /b 1 + ) +-exit /b 0 + + :loader_x64 +-if exist "%~dpn0_x64.exe" ( +- "%~dpn0_x64.exe" %* ++if exist "%~dp0../../mingw64/bin/%~n0_x64.exe" ( ++ "%~dp0../../mingw64/bin/%~n0_x64.exe" %* ++ exit /b 0 ++) else ( ++ echo Cannot find "%~dp0../../mingw64/bin/%~n0_x64.exe" >&2 ++ exit /b 1 + ) +-exit /b 0 + + :launch + start "" cmd.exe /s /k ""%~dpnx0" inject %clink_profile_arg% && title Clink" +diff --git a/clink/shared/paths.c b/clink/shared/paths.c +index 35bec17..4d278c7 100644 +--- a/clink/shared/paths.c ++++ b/clink/shared/paths.c +@@ -74,18 +74,34 @@ void get_dll_dir(char* buffer, int size) + void get_config_dir(char* buffer, int size) + { + static int once = 1; ++ static char conf_dir[MAX_PATH] = { 1 }; + +- // Maybe the user specified an alternative location? +- if (g_config_dir_override != NULL) ++ // Just the once, get user's conf folder. ++ if (conf_dir[0] == 1) + { +- str_cpy(buffer, g_config_dir_override, size); +- } +- else +- { +- get_dll_dir(buffer, size); +- str_cat(buffer, ".\\profile", size); ++ // Maybe the user specified an alternative location? ++ if (g_config_dir_override != NULL) ++ { ++ str_cpy(conf_dir, g_config_dir_override, sizeof_array(conf_dir)); ++ } ++ else ++ { ++ const char* str; ++ if ((str = getenv("USERPROFILE")) != NULL) ++ { ++ str_cpy(conf_dir, str, sizeof_array(conf_dir)); ++ str_cat(conf_dir, "/.clink", sizeof_array(conf_dir)); ++ } ++ else ++ { ++ GetTempPath(sizeof_array(conf_dir), conf_dir); ++ str_cat(conf_dir, "./clink", sizeof_array(conf_dir)); ++ } ++ } + } + ++ str_cpy(buffer, conf_dir, size); ++ + // Try and create the directory if it doesn't already exist. Just this once. + if (once) + { +@@ -108,20 +124,10 @@ void get_log_dir(char* buffer, int size) + static once = 1; + static char log_dir[MAX_PATH] = { 1 }; + +- // Just the once, get user's appdata folder. ++ // Just the once, get user's temp folder. + if (log_dir[0] == 1) + { +- if (SHGetFolderPath(0, CSIDL_LOCAL_APPDATA, NULL, 0, log_dir) != S_OK) +- { +- const char* str; +- if ((str = getenv("USERPROFILE")) == NULL) +- { +- GetTempPath(sizeof_array(log_dir), log_dir); +- } +- +- str_cpy(log_dir, str, sizeof_array(log_dir)); +- } +- ++ GetTempPath(sizeof_array(log_dir), log_dir); + str_cat(log_dir, "./clink", sizeof_array(log_dir)); + } + +-- +1.9.4.msysgit.2 + diff --git a/mingw-w64-clink-git/PKGBUILD b/mingw-w64-clink-git/PKGBUILD new file mode 100644 index 0000000000..3a0c3633ed --- /dev/null +++ b/mingw-w64-clink-git/PKGBUILD @@ -0,0 +1,85 @@ +# Maintainer: David Macek + +# TODO: compile docs (uses pandoc, which is in Haskell) + +_realname=clink +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=0.4.4.r616.a60c0a0 +pkgrel=1 +pkgdesc="Bash's powerful command line editing in cmd.exe (mingw-w64)" +arch=('any') +url="http://mridgers.github.io/clink" +license=("GPL3") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-premake" + "git") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +source=("git+https://github.com/mridgers/clink.git" + "0001-Relocation.patch") +md5sums=('SKIP' + 'd2db572d903d8bc09873c0588b452a90') + +pkgver() { + cd ${srcdir}/${_realname} + printf "%s.r%s.%s" "$(git describe --tags --abbrev=0)" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}/${_realname}" + git am "${srcdir}/0001-Relocation.patch" + sed '/premake.override/d' -i premake4.lua +} + +build() { + local _dbg _bit + case ${CARCH} in + i686) _bit=32 ;; + x86_64) _bit=64 ;; + esac + if check_option "debug" "y"; then + _dbg=debug + else + _dbg=release + fi + + cd "${srcdir}/${_realname}" + premake4 --clink_ver="$(git describe --tags --abbrev=0)" gmake + cd .build/gmake + rm -rf obj/${_dbg}/x${_bit} bin/${_dbg} + + sed -r 's/AS_STR[(]([^)]+)[)]/"AS_STR(\1)"/g' -i *.make + sed -r 's/[12]>nul//g' -i *.make + sed -r 's/-m32.*/\0 -static-libgcc/' -i *.make + sed 's~copy /y~cp~g' -i *.make + sed 's~\\\*.lua"~"/*.lua~' -i *.make + + CC=gcc make config=${_dbg}${_bit} +} + +package() { + local _dbg _arch + case ${CARCH} in + i686) _arch=86 ;; + x86_64) _arch=64 ;; + esac + if check_option "debug" "y"; then + _dbg=debug + else + _dbg=release + fi + + cd "${srcdir}/${_realname}/.build/gmake/bin/${_dbg}" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" + cp clink_x${_arch}.exe clink_dll_x${_arch}.dll clink.bat "${pkgdir}${MINGW_PREFIX}/bin" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}" + cp CHANGES "${srcdir}/${_realname}/docs/clink.md" "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/${_realname}" + cp *.lua clink_inputrc_base "${pkgdir}${MINGW_PREFIX}/share/${_realname}" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" + cp LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" +} From 3aceca51ebd2f3a44c7fb0ad25b1e9ec72751c19 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 10 Mar 2015 22:21:54 +0000 Subject: [PATCH 0647/2060] creduce-git: Made into a mingw-w64 package only Though it does use msys2 perl .. --- mingw-w64-creduce-git/PKGBUILD | 58 ++++++++-------------------------- 1 file changed, 13 insertions(+), 45 deletions(-) diff --git a/mingw-w64-creduce-git/PKGBUILD b/mingw-w64-creduce-git/PKGBUILD index c16ead2b91..2938797db8 100644 --- a/mingw-w64-creduce-git/PKGBUILD +++ b/mingw-w64-creduce-git/PKGBUILD @@ -1,9 +1,20 @@ # Maintainer: Ray Donnelly _realname=creduce -pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${_realname}-git-perl-${CARCH}") +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=creduce.2.2.0.18.g3f1d123 pkgrel=1 +pkgdesc="A C program reducer (mingw-w64)" +depends=('delta' + 'perl-Benchmark-Timer' + 'perl-Exporter-Lite' + 'perl-File-Which' + 'perl-Getopt-Tabular' + 'perl-Regexp-Common' + 'perl-Sys-CPU' + "${MINGW_PACKAGE_PREFIX}-astyle" + "${MINGW_PACKAGE_PREFIX}-indent") arch=('any') url='https://github.com/csmith-project/creduce' license=('custom:University of Illinois/NCSA Open Source License') @@ -35,13 +46,10 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} - make } -package_mingw-w64-creduce-git() { - pkgdesc='A C program reducer (mingw-w64)' - depends=("${_realname}-git-perl-${CARCH}") +package() { cd "$srcdir/${CARCH}" make DESTDIR="$pkgdir" install install -Dm644 "../$_realname/COPYING" "$pkgdir${MINGW_PREFIX}/share/licenses/$_realname/COPYING" @@ -51,44 +59,4 @@ package_mingw-w64-creduce-git() { # .. to msys2 perl. sed "s|${MINGW_PREFIX}|/usr|g" \ -i $pkgdir${MINGW_PREFIX}/bin/creduce - rm -rf $pkgdir${MINGW_PREFIX}/share/creduce/perl } - -package_creduce-git-perl() { - pkgdesc='A C program reducer - perl scripts' - depends=('delta' - 'perl-Benchmark-Timer' - 'perl-Exporter-Lite' - 'perl-File-Which' - 'perl-Getopt-Tabular' - 'perl-Regexp-Common' - 'perl-Sys-CPU' - "${MINGW_PACKAGE_PREFIX}-astyle" - "${MINGW_PACKAGE_PREFIX}-indent" - ) - cd "$srcdir/${CARCH}" - make DESTDIR="$pkgdir" install - # Use sed to switch to MSYS2 perl instead of MinGW-w64 perl. - rm -rf $pkgdir${MINGW_PREFIX}/{bin,libexec} - mv $pkgdir${MINGW_PREFIX} $pkgdir/usr -} - -package_mingw-w64-x86_64-creduce-git() { - package_mingw-w64-creduce-git -} - -package_mingw-w64-i686-creduce-git() { - package_mingw-w64-creduce-git -} - -package_creduce-git-perl-i686() { - package_creduce-git-perl -} - -package_creduce-git-perl-x86_64() { - package_creduce-git-perl -} - -# configure: WARNING: You must install Artistic Style before running C-Reduce -# configure: WARNING: You must install GNU Indent before running C-Reduce -# configure: WARNING: Read the INSTALL file for info about C-Reduce dependencies From 373db866083f35fd244a32fc2eade3630c14d1e6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 11 Mar 2015 09:06:34 +0300 Subject: [PATCH 0648/2060] codelite-git: Update to git SHA [g2748295] --- mingw-w64-codelite-git/PKGBUILD | 23 +++++++++++---- .../codelite-clang-deprecated.patch | 11 -------- .../codelite-php-linking.patch | 28 +++++-------------- .../include-winsock-header.patch | 13 +++++++++ .../mingw-posix-layout.patch | 14 ++++++++++ .../mingw-use-wx-manifests.patch | 16 +++++++++++ .../use-gnu-extensions.patch | 15 ++++++++++ .../windows-headers-conflict.patch | 18 ++++++++++++ 8 files changed, 100 insertions(+), 38 deletions(-) delete mode 100644 mingw-w64-codelite-git/codelite-clang-deprecated.patch create mode 100644 mingw-w64-codelite-git/include-winsock-header.patch create mode 100644 mingw-w64-codelite-git/mingw-posix-layout.patch create mode 100644 mingw-w64-codelite-git/mingw-use-wx-manifests.patch create mode 100644 mingw-w64-codelite-git/use-gnu-extensions.patch create mode 100644 mingw-w64-codelite-git/windows-headers-conflict.patch diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index d1b56bc510..6af8040b41 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=codelite pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=6.1.1.449.g727603e +pkgver=7.0.148.g2748295 pkgrel=1 pkgdesc="Open-source, cross platform IDE for the C/C++ programming languages (mingw-w64)" arch=('any') @@ -22,11 +22,19 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "git") options=(strip staticlibs !debug) source=("${_realname}::git+https://github.com/eranif/codelite.git" - codelite-clang-deprecated.patch + windows-headers-conflict.patch + include-winsock-header.patch + mingw-use-wx-manifests.patch + use-gnu-extensions.patch + mingw-posix-layout.patch codelite-php-linking.patch) md5sums=('SKIP' - 'a8017445f2b5c68b39dcb2b76cc08427' - 'ea63b613ccf30683272eaae5d2c47ebd') + '90b7cca657631d9aefbe0c6cf0af5f6c' + '12ab2e97f45429259f93ca9c0c46784b' + 'd7ec793d6c39874f04c1c2d8f366005b' + 'f7ce106c3565835c019fbcda0f9bea56' + 'e8385c31ad144df0cc0fabb769dfb3fb' + 'f7f39966d3f36ae09c0536a72400ae7d') pkgver() { cd "$_realname" @@ -35,7 +43,11 @@ pkgver() { prepare() { cd "$srcdir/$_realname" - patch -p1 -i ${srcdir}/codelite-clang-deprecated.patch + patch -p1 -i ${srcdir}/windows-headers-conflict.patch + patch -p1 -i ${srcdir}/include-winsock-header.patch + patch -p1 -i ${srcdir}/mingw-use-wx-manifests.patch + patch -p1 -i ${srcdir}/use-gnu-extensions.patch + patch -p1 -i ${srcdir}/mingw-posix-layout.patch patch -p1 -i ${srcdir}/codelite-php-linking.patch } @@ -49,7 +61,6 @@ build() { fi cd $srcdir/${_realname} - ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DPREFIX=${pkgdir}${MINGW_PREFIX} \ diff --git a/mingw-w64-codelite-git/codelite-clang-deprecated.patch b/mingw-w64-codelite-git/codelite-clang-deprecated.patch deleted file mode 100644 index 5b37bc7492..0000000000 --- a/mingw-w64-codelite-git/codelite-clang-deprecated.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- codelite/LiteEditor/clang_pch_maker_thread.cpp.orig 2014-07-06 14:54:17.618600000 +0400 -+++ codelite/LiteEditor/clang_pch_maker_thread.cpp 2014-07-06 14:55:02.094200000 +0400 -@@ -434,7 +434,7 @@ - // First time, need to create it - unsigned flags; - if(reparse) { -- flags = CXTranslationUnit_CXXPrecompiledPreamble | CXTranslationUnit_CacheCompletionResults | -+ flags = CXTranslationUnit_CacheCompletionResults | - CXTranslationUnit_PrecompiledPreamble | CXTranslationUnit_Incomplete | - CXTranslationUnit_DetailedPreprocessingRecord | CXTranslationUnit_CXXChainedPCH; - } else { diff --git a/mingw-w64-codelite-git/codelite-php-linking.patch b/mingw-w64-codelite-git/codelite-php-linking.patch index dff907890e..f653c4c401 100644 --- a/mingw-w64-codelite-git/codelite-php-linking.patch +++ b/mingw-w64-codelite-git/codelite-php-linking.patch @@ -1,29 +1,15 @@ -From 107248e0dd32f612a8b6c87bdc63be2795091ae1 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Fri, 5 Dec 2014 23:10:22 +0300 -Subject: [PATCH] Need Wx HTML module for linking. - ---- - codelitephp/CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/codelitephp/CMakeLists.txt b/codelitephp/CMakeLists.txt -index bbd7926..c170642 100644 ---- a/codelitephp/CMakeLists.txt -+++ b/codelitephp/CMakeLists.txt -@@ -16,10 +16,10 @@ project( ${PLUGIN_NAME} ) +--- codelite/codelitephp/CMakeLists.txt.orig 2015-03-11 06:33:40.701800000 +0300 ++++ codelite/codelitephp/CMakeLists.txt 2015-03-11 06:33:58.766600000 +0300 +@@ -15,10 +15,10 @@ # It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'. if (WITH_WEBVIEW) message("-- Internal Web Browser is enabled") -- find_package(wxWidgets COMPONENTS adv aui base core xml xrc net stc webview REQUIRED) -+ find_package(wxWidgets COMPONENTS adv aui base core html xml xrc net stc webview REQUIRED) +- find_package(wxWidgets COMPONENTS adv aui base core html xml xrc net stc webview REQUIRED) ++ find_package(wxWidgets COMPONENTS adv aui base core html propgrid xml xrc net stc webview REQUIRED) else() message("-- Internal Web Browser is disabled") -- find_package(wxWidgets COMPONENTS adv aui base core xml xrc net stc REQUIRED) -+ find_package(wxWidgets COMPONENTS adv aui base core html xml xrc net stc REQUIRED) +- find_package(wxWidgets COMPONENTS adv aui base core html xml xrc net stc REQUIRED) ++ find_package(wxWidgets COMPONENTS adv aui base core html propgrid xml xrc net stc REQUIRED) endif() # wxWidgets include (this will do all the magic to configure everything) --- -2.2.0 - diff --git a/mingw-w64-codelite-git/include-winsock-header.patch b/mingw-w64-codelite-git/include-winsock-header.patch new file mode 100644 index 0000000000..a6279e951d --- /dev/null +++ b/mingw-w64-codelite-git/include-winsock-header.patch @@ -0,0 +1,13 @@ +--- codelite/CodeLite/SocketAPI/clSocketBase.h.orig 2015-03-10 21:05:03.519200000 +0300 ++++ codelite/CodeLite/SocketAPI/clSocketBase.h 2015-03-10 21:05:18.807200000 +0300 +@@ -32,9 +32,7 @@ + #include "codelite_exports.h" + + #ifdef _WIN32 +-#ifndef _WIN64 +-# include +-#endif ++#include + + typedef SOCKET socket_t; + typedef int socklen_t; diff --git a/mingw-w64-codelite-git/mingw-posix-layout.patch b/mingw-w64-codelite-git/mingw-posix-layout.patch new file mode 100644 index 0000000000..fc4f553b8d --- /dev/null +++ b/mingw-w64-codelite-git/mingw-posix-layout.patch @@ -0,0 +1,14 @@ +--- codelite/CodeLite/cl_standard_paths.cpp.orig 2015-03-11 00:17:21.501400000 +0300 ++++ codelite/CodeLite/cl_standard_paths.cpp 2015-03-11 00:17:51.047800000 +0300 +@@ -125,7 +125,11 @@ + + wxString clStandardPaths::GetProjectTemplatesDir() const + { ++#ifdef USE_POSIX_LAYOUT ++ wxFileName fn(GetDataDir() + wxT(INSTALL_DIR), ""); ++#else + wxFileName fn(GetDataDir(), ""); ++#endif + fn.AppendDir("templates"); + fn.AppendDir("projects"); + return fn.GetPath(); diff --git a/mingw-w64-codelite-git/mingw-use-wx-manifests.patch b/mingw-w64-codelite-git/mingw-use-wx-manifests.patch new file mode 100644 index 0000000000..8e3be292d7 --- /dev/null +++ b/mingw-w64-codelite-git/mingw-use-wx-manifests.patch @@ -0,0 +1,16 @@ +--- codelite/LiteEditor/code_parser.rc.orig 2015-03-10 23:32:02.096800000 +0300 ++++ codelite/LiteEditor/code_parser.rc 2015-03-10 23:32:36.214000000 +0300 +@@ -25,11 +25,13 @@ + + aaaaa ICON "res/cubes.ico" + #include "wx/msw/wx.rc" ++#ifndef __MINGW32__ + #if WIN64 + 1 24 "wx/msw/amd64.manifest" + #else + 1 24 "wx/msw/wx.manifest" + #endif ++#endif + + /////////////////////////////////////////////////////////////////////////////// + // Version information diff --git a/mingw-w64-codelite-git/use-gnu-extensions.patch b/mingw-w64-codelite-git/use-gnu-extensions.patch new file mode 100644 index 0000000000..1e7fd35438 --- /dev/null +++ b/mingw-w64-codelite-git/use-gnu-extensions.patch @@ -0,0 +1,15 @@ +--- codelite/CMakeLists.txt.orig 2015-03-11 00:04:27.169200000 +0300 ++++ codelite/CMakeLists.txt 2015-03-11 00:05:10.755600000 +0300 +@@ -218,7 +218,11 @@ + + set( PLUGINS_DIR "${CL_PREFIX}/${CL_INSTALL_LIBDIR}/codelite") + add_definitions(-DYY_NEVER_INTERACTIVE=1) +-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" ) ++if(CMAKE_COMPILER_IS_GNUCXX) ++ set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11" ) ++else() ++ set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" ) ++endif() + + if (NOT MINGW) + add_definitions(-DINSTALL_DIR=\"${CL_PREFIX}/share/codelite\") diff --git a/mingw-w64-codelite-git/windows-headers-conflict.patch b/mingw-w64-codelite-git/windows-headers-conflict.patch new file mode 100644 index 0000000000..13608c9b3e --- /dev/null +++ b/mingw-w64-codelite-git/windows-headers-conflict.patch @@ -0,0 +1,18 @@ +--- codelite/CodeLite/cl_ssh.cpp.orig 2015-03-10 16:06:29.957600000 +0300 ++++ codelite/CodeLite/cl_ssh.cpp 2015-03-10 16:06:35.058800000 +0300 +@@ -27,10 +27,13 @@ + + #include + #include +-#include "cl_ssh.h" +-#include + #include + #include ++#ifdef __WXMSW__ ++#include "wx/msw/winundef.h" ++#endif ++#include "cl_ssh.h" ++#include + + wxDEFINE_EVENT(wxEVT_SSH_COMMAND_OUTPUT, clCommandEvent); + wxDEFINE_EVENT(wxEVT_SSH_COMMAND_COMPLETED, clCommandEvent); From 108019112bc722fe33366b7427f3fa607e25c68c Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 11 Mar 2015 08:49:48 +0000 Subject: [PATCH 0649/2060] clang-svn: updated the mingw-w64 driver --- ... => 0001-Add-Clang-MinGW-w64-driver.patch} | 49 +++++++++---------- mingw-w64-clang-svn/PKGBUILD | 8 +-- 2 files changed, 28 insertions(+), 29 deletions(-) rename mingw-w64-clang-svn/{0001-Add-Clang-MinGW-w64-driver-patch.patch => 0001-Add-Clang-MinGW-w64-driver.patch} (96%) diff --git a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver-patch.patch b/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch similarity index 96% rename from mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver-patch.patch rename to mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch index e2d99ad28c..ea98f14962 100644 --- a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver-patch.patch +++ b/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch @@ -1,28 +1,32 @@ -From 5bcdda9e18a129c025e29a0cebcc733996dbd373 Mon Sep 17 00:00:00 2001 +From 1da7b8c97af06fee45b1e753c6453fbf988cd7c1 Mon Sep 17 00:00:00 2001 From: Martell Malone -Date: Thu, 6 Nov 2014 01:11:07 +0000 -Subject: [PATCH] Add Clang MinGW-w64 driver patch +Date: Wed, 11 Mar 2015 08:39:44 +0000 +Subject: [PATCH] Add Clang MinGW-w64 driver This adds the MinGW-w64 driver to clang with the new triplets compnerd introduced to clang. Based off of rubenvb's driver patch from January 2014. + +Update: + +March 2015: removed seh code as clang detects itself as of commit b27216c --- include/clang/Driver/Options.td | 5 + lib/Driver/CMakeLists.txt | 1 + lib/Driver/Driver.cpp | 7 +- - lib/Driver/MinGWToolChain.cpp | 195 ++++++++++++++++++++++++++++++++++++ - lib/Driver/ToolChains.h | 30 ++++++ + lib/Driver/MinGWToolChain.cpp | 191 +++++++++++++++++++++++++++++++++++ + lib/Driver/ToolChains.h | 29 ++++++ lib/Driver/Tools.cpp | 204 ++++++++++++++++++++++++++++++++++++++ lib/Driver/Tools.h | 33 ++++++ lib/Frontend/InitHeaderSearch.cpp | 64 ++---------- - 8 files changed, 476 insertions(+), 63 deletions(-) + 8 files changed, 471 insertions(+), 63 deletions(-) create mode 100644 lib/Driver/MinGWToolChain.cpp diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td -index db0fce9..a85354d 100644 +index 977e925..ef144f0 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td -@@ -1069,6 +1069,11 @@ def march_EQ : Joined<["-"], "march=">, Group; +@@ -1125,6 +1125,11 @@ def march_EQ : Joined<["-"], "march=">, Group; def masm_EQ : Joined<["-"], "masm=">, Group, Flags<[DriverOption]>; def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group; def mconstant_cfstrings : Flag<["-"], "mconstant-cfstrings">, Group; @@ -47,10 +51,10 @@ index 412840b..8d88f96 100644 SanitizerArgs.cpp Tool.cpp diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index f827aaf..b6f2e6d 100644 +index a0c9233..30f2823 100644 --- a/lib/Driver/Driver.cpp +++ b/lib/Driver/Driver.cpp -@@ -2040,12 +2040,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, +@@ -2070,12 +2070,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, TC = new toolchains::Generic_GCC(*this, Target, Args); break; case llvm::Triple::GNU: @@ -66,10 +70,10 @@ index f827aaf..b6f2e6d 100644 TC = new toolchains::CrossWindowsToolChain(*this, Target, Args); diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp new file mode 100644 -index 0000000..e250c3d +index 0000000..3b6901c --- /dev/null +++ b/lib/Driver/MinGWToolChain.cpp -@@ -0,0 +1,195 @@ +@@ -0,0 +1,191 @@ +//===--- MinGWToolChain.cpp - MinGWToolChain Implementation -----------------------===// +// +// The LLVM Compiler Infrastructure @@ -181,10 +185,6 @@ index 0000000..e250c3d + return getArch() == llvm::Triple::x86_64; +} + -+bool MinGW::UseSEHExceptions() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ +void MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, + ArgStringList &CC1Args) const { + if (DriverArgs.hasArg(options::OPT_nostdinc)) @@ -266,10 +266,10 @@ index 0000000..e250c3d +#endif +} diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h -index 532a7cf..0f93231 100644 +index 90893c3..e8d803e 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h -@@ -520,6 +520,36 @@ protected: +@@ -519,6 +519,35 @@ protected: }; @@ -283,7 +283,6 @@ index 532a7cf..0f93231 100644 + bool isPICDefault() const override; + bool isPIEDefault() const override; + bool isPICDefaultForced() const override; -+ bool UseSEHExceptions() const override; + + void + AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, @@ -307,10 +306,10 @@ index 532a7cf..0f93231 100644 class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic_ELF { public: diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 174df12..7a72d4d 100644 +index 3c6827a..d450c54 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp -@@ -8090,6 +8090,210 @@ std::unique_ptr visualstudio::Compile::GetCommand( +@@ -8284,6 +8284,210 @@ std::unique_ptr visualstudio::Compile::GetCommand( CmdArgs); } @@ -522,10 +521,10 @@ index 174df12..7a72d4d 100644 /// XCore Tools // We pass assemble and link construction to the xcc tool. diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h -index 59af8a0..bd43966 100644 +index 93a19fb..64158b5 100644 --- a/lib/Driver/Tools.h +++ b/lib/Driver/Tools.h -@@ -612,6 +612,39 @@ namespace visualstudio { +@@ -616,6 +616,39 @@ namespace visualstudio { }; } // end namespace visualstudio @@ -566,7 +565,7 @@ index 59af8a0..bd43966 100644 StringRef getARMFloatABI(const Driver &D, const llvm::opt::ArgList &Args, const llvm::Triple &Triple); diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp -index 998ccf9..2ff77c4 100644 +index a518a0a..2df89b2 100644 --- a/lib/Frontend/InitHeaderSearch.cpp +++ b/lib/Frontend/InitHeaderSearch.cpp @@ -82,11 +82,6 @@ public: @@ -689,5 +688,5 @@ index 998ccf9..2ff77c4 100644 if (llvm::sys::fs::exists("/usr/lib/gcc47")) AddPath("/usr/include/c++/4.7", CXXSystem, false); -- -2.1.3 +2.3.1 diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 06229ed111..825310b509 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -8,7 +8,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn" #"${MINGW_PACKAGE_PREFIX}-compiler-rt-svn" ) -pkgver=54346.9443d04 +pkgver=56101.57b4d93 pkgrel=1 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') @@ -30,14 +30,14 @@ source=(#"llvm"::"svn+http://llvm.org/svn/llvm-project/llvm/trunk" "rt"::"git+http://llvm.org/git/compiler-rt.git" "testsuite"::"git+http://llvm.org/git/test-suite.git" #"libcxx"::"git+http://llvm.org/git/libcxx.git" - 0001-Add-Clang-MinGW-w64-driver-patch.patch + 0001-Add-Clang-MinGW-w64-driver.patch ) md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' - 'b50272e4c3dc3a678219447b4961a65b') + '479f4582fdcb3063aadbcbcfd6c3fc18') pkgver_internal() { if [ ! -d "$1" ]; then @@ -89,7 +89,7 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --with-sysroot=${MINGW_PREFIX} \ - --enable-targets=x86,x86_64,cpp \ + --enable-targets=arm,cpp,x86,x86_64 \ --enable-optimized \ --disable-assertions \ --disable-pthreads \ From c0d822258f5277d30ebb8b325e2b9e5bed1f6187 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 11 Mar 2015 08:53:18 +0000 Subject: [PATCH 0650/2060] vlc-git: winRT mode is now buildable from PKGBUILD --- ...y-build-correct-modules-for-WINSTORE.patch | 66 +++- ...-AllocConsole-reference-for-WINSTORE.patch | 23 ++ .../0014-dx11-vout-add-WINSTORE-support.patch | 296 ++++++++++++++++++ mingw-w64-vlc-git/PKGBUILD | 18 +- 4 files changed, 382 insertions(+), 21 deletions(-) create mode 100644 mingw-w64-vlc-git/0013-remove-AllocConsole-reference-for-WINSTORE.patch create mode 100644 mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch diff --git a/mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch b/mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch index eccfcedcba..d6f2f10566 100644 --- a/mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch +++ b/mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch @@ -1,20 +1,34 @@ -From fede6304a6858f7858dbd2f30fe70e51d03f0995 Mon Sep 17 00:00:00 2001 +From e6e3e8aa15791a7f4fb3f200dadf95b704bb6f56 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Thu, 5 Mar 2015 01:43:37 +0000 Subject: [PATCH] Only build correct modules for WINSTORE --- - modules/access/Makefile.am | 6 ++++++ - modules/audio_filter/Makefile.am | 36 ++++++++++++++++++++++------------ - modules/audio_output/Makefile.am | 2 ++ - modules/codec/Makefile.am | 8 ++++++++ - modules/control/Makefile.am | 23 ++++++++++++++-------- - modules/services_discovery/Makefile.am | 4 ++++ - modules/video_filter/Makefile.am | 2 ++ - modules/video_output/Makefile.am | 6 ++++++ - modules/video_splitter/Makefile.am | 2 ++ - 9 files changed, 69 insertions(+), 20 deletions(-) +Must look at libdirectsound and libmft. +They should be buildable but are not +Must find out why :) +diff --git a/Makefile.am b/Makefile.am +index b66c21b..25dfb30 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -981,6 +981,7 @@ dist_noinst_SCRIPTS += test/run_vlc.sh + # Installing plugins cache + ############################################################################### + install-exec-hook: ++if !HAVE_WINSTORE + if test "$(build)" = "$(host)"; then \ + PATH="$(DESTDIR)$(bindir):$$PATH" \ + LD_LIBRARY_PATH="$(DESTDIR)$(libdir):$$LD_LIBRARY_PATH" \ +@@ -989,7 +990,7 @@ install-exec-hook: + else \ + echo "Cross-compilation: cache generation skipped!" ; \ + fi +- ++endif + uninstall-hook: + rm -f -- "$(DESTDIR)$(vlclibdir)/plugins/plugins.dat" + diff --git a/modules/access/Makefile.am b/modules/access/Makefile.am index 3bc9146..724c296 100644 --- a/modules/access/Makefile.am @@ -124,10 +138,25 @@ index c7b866e..fa6972e 100644 # Channel mixers libdolby_surround_decoder_plugin_la_SOURCES = \ diff --git a/modules/audio_output/Makefile.am b/modules/audio_output/Makefile.am -index 589e5fe..3ef943e 100644 +index 589e5fe..a0441b2 100644 --- a/modules/audio_output/Makefile.am +++ b/modules/audio_output/Makefile.am -@@ -94,8 +94,10 @@ libwaveout_plugin_la_SOURCES = audio_output/waveout.c \ +@@ -72,11 +72,14 @@ endif + endif + + libdirectsound_plugin_la_SOURCES = audio_output/directsound.c \ ++libdirectsound_plugin_la_CFLAGS = $(AM_CFLAGS) + audio_output/windows_audio_common.h + libdirectsound_plugin_la_LIBADD = -lole32 + if HAVE_DIRECTX ++if !HAVE_WINSTORE + aout_LTLIBRARIES += libdirectsound_plugin.la + endif ++endif + + libkai_plugin_la_SOURCES = audio_output/kai.c + libkai_plugin_la_LIBADD = $(KAI_LIBS) +@@ -94,8 +97,10 @@ libwaveout_plugin_la_SOURCES = audio_output/waveout.c \ audio_output/windows_audio_common.h libwaveout_plugin_la_LIBADD = -lwinmm if HAVE_WIN32 @@ -139,7 +168,7 @@ index 589e5fe..3ef943e 100644 libauhal_plugin_la_SOURCES = audio_output/auhal.c \ audio_output/TPCircularBuffer.h audio_output/TPCircularBuffer.c diff --git a/modules/codec/Makefile.am b/modules/codec/Makefile.am -index 9c31230..d08d525 100644 +index 9c31230..1f8c7e4 100644 --- a/modules/codec/Makefile.am +++ b/modules/codec/Makefile.am @@ -345,8 +345,10 @@ libdxva2_plugin_la_SOURCES = \ @@ -164,7 +193,7 @@ index 9c31230..d08d525 100644 libqsv_plugin_la_SOURCES = codec/qsv.c libqsv_plugin_la_CFLAGS = $(AM_CFLAGS) $(MFX_CFLAGS) -@@ -494,9 +498,11 @@ libdmo_plugin_la_SOURCES = codec/dmo/dmo.c codec/dmo/dmo.h codec/dmo/buffer.c +@@ -494,21 +498,27 @@ libdmo_plugin_la_SOURCES = codec/dmo/dmo.c codec/dmo/dmo.h codec/dmo/buffer.c libqsv_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) libdmo_plugin_la_LIBADD = $(LIBM) if HAVE_WIN32 @@ -176,7 +205,12 @@ index 9c31230..d08d525 100644 libmft_plugin_la_SOURCES = codec/mft.c codec/h264_nal.c codec/h264_nal.h if HAVE_WIN32 -@@ -507,8 +513,10 @@ endif ++if !HAVE_WINSTORE + libmft_plugin_la_LIBADD = -lole32 -luuid -lmfuuid -lmfplat + codec_LTLIBRARIES += libmft_plugin.la + endif ++endif + libquicktime_plugin_la_SOURCES = codec/quicktime.c libquicktime_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)' libquicktime_plugin_la_LIBADD = $(LIBM) diff --git a/mingw-w64-vlc-git/0013-remove-AllocConsole-reference-for-WINSTORE.patch b/mingw-w64-vlc-git/0013-remove-AllocConsole-reference-for-WINSTORE.patch new file mode 100644 index 0000000000..1ede81edea --- /dev/null +++ b/mingw-w64-vlc-git/0013-remove-AllocConsole-reference-for-WINSTORE.patch @@ -0,0 +1,23 @@ +From e4b28e32b706666286d861dbc0a93f796ad968e0 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Tue, 10 Mar 2015 19:36:25 +0000 +Subject: [PATCH] remove AllocConsole reference for WINSTORE + + +diff --git a/modules/control/intromsg.h b/modules/control/intromsg.h +index 7af9520..a946a0a 100644 +--- a/modules/control/intromsg.h ++++ b/modules/control/intromsg.h +@@ -23,7 +23,9 @@ static inline void intf_consoleIntroMsg(intf_thread_t *intf) + { + if (getenv( "PWD" ) == NULL) /* detect Cygwin shell or Wine */ + { ++#if !VLC_WINSTORE_APP + AllocConsole(); ++#endif + freopen("CONOUT$", "w", stdout); + freopen("CONOUT$", "w", stderr); + freopen("CONIN$", "r", stdin); +-- +2.3.1 + diff --git a/mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch b/mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch new file mode 100644 index 0000000000..9405fa5d42 --- /dev/null +++ b/mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch @@ -0,0 +1,296 @@ +From 0d41b3966dc4e0b41e5da7a618896b087ab19bfe Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Tue, 10 Mar 2015 19:34:09 +0000 +Subject: [PATCH] dx11 vout: add WINSTORE support + + +diff --git a/include/vlc_windows_interfaces.h b/include/vlc_windows_interfaces.h +index e4c41f2..85ac475 100644 +--- a/include/vlc_windows_interfaces.h ++++ b/include/vlc_windows_interfaces.h +@@ -38,13 +38,13 @@ + + /* rpcndr.h defines small not only for idl */ + #undef small +- ++#if !VLC_WINSTORE_APP + /* mingw.org fails to define this */ + #ifndef __ITaskbarList3_INTERFACE_DEFINED__ + #define __ITaskbarList3_INTERFACE_DEFINED__ + const GUID CLSID_TaskbarList ={ 0x56FDF344,0xFD6D,0x11d0,{0x95,0x8A,0x00,0x60,0x97,0xC9,0xA0,0x90}}; + const GUID IID_ITaskbarList3 = { 0xea1afb91,0x9e28,0x4b86,{0x90,0xe9,0x9e,0x9f,0x8a,0x5e,0xef,0xaf}}; +- ++#endif + + typedef enum TBPFLAG + { +@@ -204,10 +204,10 @@ struct ITaskbarList3Vtbl + + long ( WINAPI *ThumbBarUpdateButtons )(ITaskbarList3 *This, HWND hwnd, + UINT cButtons, LPTHUMBBUTTON pButton); +- ++#if !VLC_WINSTORE_APP + long ( WINAPI *ThumbBarSetImageList )(ITaskbarList3 *This, HWND hwnd, + HIMAGELIST himl); +- ++#endif + long ( WINAPI *SetOverlayIcon )(ITaskbarList3 *This, HWND hwnd, + HICON hIcon, LPCWSTR pszDescription); + +diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am +index 943ad6a..1505a9f 100644 +--- a/modules/video_output/Makefile.am ++++ b/modules/video_output/Makefile.am +@@ -186,13 +186,13 @@ EXTRA_LTLIBRARIES += libdirect3d9_plugin.la + endif + + libdirect3d11_plugin_la_SOURCES = video_output/msw/direct3d11.c \ +- video_output/msw/common.c video_output/msw/common.h \ +- video_output/msw/events.c video_output/msw/events.h \ +- video_output/msw/builtin_shaders.h \ +- video_output/msw/win32touch.c video_output/msw/win32touch.h ++ video_output/msw/common.c video_output/msw/common.h + libdirect3d11_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \ + -DMODULE_NAME_IS_direct3d11 + if !HAVE_WINSTORE ++libdirect3d11_plugin_la_SOURCES += video_output/msw/events.c \ ++ video_output/msw/events.h video_output/msw/builtin_shaders.h \ ++ video_output/msw/win32touch.c video_output/msw/win32touch.h + libdirect3d11_plugin_la_LIBADD = -lgdi32 -lole32 -luuid + else + libdirect3d11_plugin_la_LIBADD = -ld3dcompiler -lole32 -luuid +diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c +index 8de44fd..a028515 100644 +--- a/modules/video_output/msw/common.c ++++ b/modules/video_output/msw/common.c +@@ -42,26 +42,30 @@ + + #include + ++#if !VLC_WINSTORE_APP + static void CommonChangeThumbnailClip(vout_display_t *, bool show); + static int CommonControlSetFullscreen(vout_display_t *, bool is_fullscreen); + + static void DisableScreensaver(vout_display_t *); + static void RestoreScreensaver(vout_display_t *); ++#endif + + /* */ + int CommonInit(vout_display_t *vd) + { + vout_display_sys_t *sys = vd->sys; + +- sys->hwnd = NULL; +- sys->hvideownd = NULL; +- sys->hparent = NULL; +- sys->hfswnd = NULL; +- sys->changes = 0; ++ sys->hwnd = NULL; ++ sys->hvideownd = NULL; ++ sys->hparent = NULL; ++ sys->hfswnd = NULL; ++ sys->changes = 0; ++ sys->is_first_display = true; ++ sys->is_on_top = false; ++ ++#if !VLC_WINSTORE_APP + SetRectEmpty(&sys->rect_display); + SetRectEmpty(&sys->rect_parent); +- sys->is_first_display = true; +- sys->is_on_top = false; + + var_Create(vd, "video-deco", VLC_VAR_BOOL | VLC_VAR_DOINHERIT); + var_Create(vd, "disable-screensaver", VLC_VAR_BOOL | VLC_VAR_DOINHERIT); +@@ -70,7 +74,7 @@ int CommonInit(vout_display_t *vd) + sys->event = EventThreadCreate(vd); + if (!sys->event) + return VLC_EGENERIC; +- ++#endif + event_cfg_t cfg; + memset(&cfg, 0, sizeof(cfg)); + #ifdef MODULE_NAME_IS_direct3d9 +@@ -83,7 +87,7 @@ int CommonInit(vout_display_t *vd) + cfg.y = var_InheritInteger(vd, "video-y"); + cfg.width = vd->cfg->display.width; + cfg.height = vd->cfg->display.height; +- ++#if !VLC_WINSTORE_APP + event_hwnd_t hwnd; + if (EventThreadStart(sys->event, &hwnd, &cfg)) + return VLC_EGENERIC; +@@ -100,7 +104,7 @@ int CommonInit(vout_display_t *vd) + } + + DisableScreensaver (vd); +- ++#endif + return VLC_SUCCESS; + } + +@@ -108,14 +112,14 @@ int CommonInit(vout_display_t *vd) + void CommonClean(vout_display_t *vd) + { + vout_display_sys_t *sys = vd->sys; +- ++#if !VLC_WINSTORE_APP + if (sys->event) { + CommonChangeThumbnailClip(vd, false); + EventThreadStop(sys->event); + EventThreadDestroy(sys->event); + } +- + RestoreScreensaver(vd); ++#endif + } + + /* */ +@@ -133,7 +137,7 @@ void CommonManage(vout_display_t *vd) + * messages. But since window can stay blocked into this function for a + * long time (for example when you move your window on the screen), I + * decided to isolate PeekMessage in another thread. */ +- ++#if !VLC_WINSTORE_APP + /* If we do not control our window, we check for geometry changes + * ourselves because the parent might not send us its events. */ + if (sys->hparent) { +@@ -166,10 +170,10 @@ void CommonManage(vout_display_t *vd) + UpdateRects(vd, NULL, NULL, true); + } + } +- + /* HasMoved means here resize or move */ + if (EventThreadGetAndResetHasMoved(sys->event)) + UpdateRects(vd, NULL, NULL, false); ++#endif + } + + /** +@@ -179,7 +183,7 @@ void CommonManage(vout_display_t *vd) + void CommonDisplay(vout_display_t *vd) + { + vout_display_sys_t *sys = vd->sys; +- ++#if !VLC_WINSTORE_APP + if (!sys->is_first_display) + return; + +@@ -194,6 +198,7 @@ void CommonDisplay(vout_display_t *vd) + SWP_NOSIZE| + SWP_NOZORDER); + sys->is_first_display = false; ++#endif + } + + /** +@@ -272,6 +277,7 @@ void AlignRect(RECT *r, int align_boundary, int align_size) + r->right = ((r->right - r->left + align_size/2) & ~align_size) + r->left; + } + ++#if !VLC_WINSTORE_APP + /* */ + static void CommonChangeThumbnailClip(vout_display_t *vd, bool show) + { +@@ -709,3 +715,5 @@ static void RestoreScreensaver(vout_display_t *vd) + sys->i_spi_screensaveactive, NULL, 0); + } + } ++ ++#endif +diff --git a/modules/video_output/msw/direct3d11.c b/modules/video_output/msw/direct3d11.c +index ba129f6..b4071a0 100644 +--- a/modules/video_output/msw/direct3d11.c ++++ b/modules/video_output/msw/direct3d11.c +@@ -42,7 +42,7 @@ + # define D3D11CreateDevice(args...) sys->OurD3D11CreateDevice(args) + # define D3DCompile(args...) sys->OurD3DCompile(args) + #else +-# define IDXGISwapChain_Present(args...) IDXGISwapChain_Present1(args) ++//# define IDXGISwapChain_Present(a,b,c) IDXGISwapChain_Present1(a,b,c) + # define IDXGIFactory_CreateSwapChain(a,b,c,d) IDXGIFactory2_CreateSwapChainForComposition(a,b,c,NULL,d) + # define DXGI_SWAP_CHAIN_DESC DXGI_SWAP_CHAIN_DESC1 + #endif +@@ -104,9 +104,9 @@ static void Direct3D11DestroyResources(vout_display_t *); + + static int Direct3D11MapTexture(picture_t *); + +-/* All the #if 0 contain an alternative method to setup dx11 ++/* All the #ifdef METHOD_2 contain an alternative method to setup dx11 + They both need to be benchmarked to see which performs better */ +-#if 0 ++#ifdef METHOD_2 + /* I have no idea why MS decided dxgi headers do not define this + As they do have prototypes for d3d11 functions */ + typedef HRESULT(WINAPI *PFN_CREATE_DXGI_FACTORY)(REFIID riid, void **ppFactory); +@@ -219,7 +219,9 @@ static int Open(vlc_object_t *object) + vd->pool = CommonPool; + vd->prepare = Prepare; + vd->display = Display; ++#if !VLC_WINSTORE_APP + vd->control = CommonControl; ++#endif + vd->manage = CommonManage; + + msg_Dbg(vd, "Direct3D11 Open Succeeded"); +@@ -304,7 +306,7 @@ static int Direct3D11Create(vout_display_t *vd) + return VLC_EGENERIC; + } + +-# if 0 ++# ifdef METHOD_2 + HINSTANCE hdxgi_dll = LoadLibrary(TEXT("DXGI.DLL")); + if (!hdxgi_dll) { + msg_Warn(vd, "cannot load dxgi.dll, aborting"); +@@ -347,7 +349,7 @@ static int Direct3D11Create(vout_display_t *vd) + return VLC_EGENERIC; + } + +-# if 0 ++# ifdef METHOD_2 + + sys->hdxgi_dll = hdxgi_dll; + +@@ -403,7 +405,7 @@ static void Direct3D11Destroy(vout_display_t *vd) + + vout_display_sys_t *sys = vd->sys; + +-# if 0 ++# ifdef METHOD_2 + if (sys->hdxgi_dll) + FreeLibrary(sys->hdxgi_dll); + # endif +@@ -477,7 +479,7 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) + scd.OutputWindow = sys->hvideownd; + # endif + +-# if 0 ++# ifdef METHOD_2 + + /* TODO : list adapters for the user to choose from */ + hr = IDXGIFactory_EnumAdapters(sys->dxgifactory, 0, &sys->dxgiadapter); +@@ -584,18 +586,19 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) + + # endif + # endif +-#endif + +- UpdateRects(vd, NULL, NULL, true); + ++ UpdateRects(vd, NULL, NULL, true); ++#endif + if (Direct3D11CreateResources(vd, fmt)) { + msg_Err(vd, "Failed to allocate resources"); + Direct3D11DestroyResources(vd); + return VLC_EGENERIC; + } + ++#if !VLC_WINSTORE_APP + EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct3D11 output)"); +- ++#endif + msg_Dbg(vd, "Direct3D11 device adapter successfully initialized"); + return VLC_SUCCESS; + } +-- +2.3.1 + diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 236d37552a..ef029bf621 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -118,7 +118,9 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re 0007-Use-libdir-for-plugins-on-msys2.patch 0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch 0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch - 0012-Only-build-correct-modules-for-WINSTORE.patch) + 0012-Only-build-correct-modules-for-WINSTORE.patch + 0013-remove-AllocConsole-reference-for-WINSTORE.patch + 0014-dx11-vout-add-WINSTORE-support.patch) md5sums=('SKIP' 'c2a4338d8c9396054c1ed45fae221470' '13f5a8bf897b253e0d9626a5ae79bc8d' @@ -126,8 +128,10 @@ md5sums=('SKIP' '8cd35991a69b14a1c3ab3b6faa9f15bc' 'b6a010849631177493135b3ad7c5f784' 'dc623f31cffed63092b192b24ab86f0d' - '6063839d14c066b042fc927d735addbb' - '389c43a2b9a8bbe36f589c35018cfb98') + '3ab07dce68513b6d37321f36141a8340' + 'c3d58a3f6ce7e82f68aa6c32453643bb' + '0b3303af4b3d68cf5317f025975adb32' + 'c9eb72a2a8126f2a5c643069eed757b7') pkgver() { cd $_realname @@ -147,14 +151,18 @@ prepare() { git am "${srcdir}"/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch git am "${srcdir}"/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch - git am "${srcdir}"/0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch - git am "${srcdir}"/0012-Only-build-correct-modules-for-WINSTORE.patch if [ "${_variant}" != "winrt" ]; then git am "${srcdir}"/0007-Use-libdir-for-plugins-on-msys2.patch + fi + git am "${srcdir}"/0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch + git am "${srcdir}"/0012-Only-build-correct-modules-for-WINSTORE.patch + git am "${srcdir}"/0013-remove-AllocConsole-reference-for-WINSTORE.patch + git am "${srcdir}"/0014-dx11-vout-add-WINSTORE-support.patch + ./bootstrap sed -i -e 's:truetype/freefont:TTF:g' modules/text_renderer/freetype.c From 4f284a97b8ad095f00f7cf724051e8765e193540 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 11 Mar 2015 09:41:43 +0300 Subject: [PATCH 0651/2060] wxwidgets: Rebuild. --- mingw-w64-wxwidgets/PKGBUILD | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/mingw-w64-wxwidgets/PKGBUILD b/mingw-w64-wxwidgets/PKGBUILD index ef27bac8d8..c66a781766 100644 --- a/mingw-w64-wxwidgets/PKGBUILD +++ b/mingw-w64-wxwidgets/PKGBUILD @@ -3,25 +3,26 @@ _realname=wxWidgets pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2 -pkgrel=2 +pkgrel=3 pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)" arch=('any') license=("custom:wxWindows") groups=("${MINGW_PACKAGE_PREFIX}") url="http://www.wxwidgets.org/" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-xz" - "${MINGW_PACKAGE_PREFIX}-expat" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-cppunit") + "${MINGW_PACKAGE_PREFIX}-cppunit" + "${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-zlib" + ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2") options=('strip' 'staticlibs' 'buildflags') source=(http://downloads.sourceforge.net/wxwindows/wxWidgets-${pkgver}.tar.bz2 "wxWidgets-3.0.0-gcc-codelight.patch") -sha1sums=('1f69b4aa101fe3d7b4cd8aea855f073270161489' +sha1sums=('6461eab4428c0a8b9e41781b8787510484dea800' '05a3471dcf735d86defe0df00dcb8e9ff0698290') prepare() { @@ -30,6 +31,7 @@ prepare() { } build() { + CXXFLAGS+=" -std=gnu++11" [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} @@ -49,6 +51,7 @@ build() { --enable-unicode \ --enable-accessibility \ --disable-precomp-headers + make #VERBOSE=1 } From 6ff3ab255305e56362501612abe5ff499d0ed3dc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 11 Mar 2015 16:18:24 +0300 Subject: [PATCH 0652/2060] poppler: Update to 0.32.0 --- mingw-w64-poppler/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index 7904d52db4..c180f6c49e 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -2,7 +2,7 @@ _realname=poppler pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.31.0 +pkgver=0.32.0 pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') @@ -28,7 +28,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" options=('strip' 'staticlibs') source=("http://poppler.freedesktop.org/poppler-${pkgver}.tar.xz" "give-cc-to-gir-scanner.mingw.patch") -md5sums=('b631498668562ba47732785e54808468' +md5sums=('a97985f7af6c388e42a53dead85d4ef4' '727c1b414987f6ee2ba841d9db57a967') prepare() { From 26aaae69c3455def4d951be7e94e714707ff9b35 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 11 Mar 2015 16:19:11 +0300 Subject: [PATCH 0653/2060] babl-git: Update to git SHA [c9690f8] --- mingw-w64-babl-git/PKGBUILD | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-babl-git/PKGBUILD b/mingw-w64-babl-git/PKGBUILD index 261d03e640..e374941201 100644 --- a/mingw-w64-babl-git/PKGBUILD +++ b/mingw-w64-babl-git/PKGBUILD @@ -4,13 +4,15 @@ _realname=babl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r745.21571c7 +pkgver=r768.c9690f8 pkgrel=1 pkgdesc="Dynamic Pixel Format Translation Library (mingw-w64)" arch=('any') url="http://gegl.org/babl/" license=("GPL-3.0+" "LGPL-3.0+") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-librsvg" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-librsvg" + "${MINGW_PACKAGE_PREFIX}-pkg-config" "git") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' 'staticlibs') From 28e3ba9cc4bf786383cc23044cbbd2cc664fe9e1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 11 Mar 2015 16:19:48 +0300 Subject: [PATCH 0654/2060] gegl-git: Update to git SHA [06aea8e] --- mingw-w64-gegl-git/PKGBUILD | 61 ++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/mingw-w64-gegl-git/PKGBUILD b/mingw-w64-gegl-git/PKGBUILD index fdd7661eec..61b1fb485a 100644 --- a/mingw-w64-gegl-git/PKGBUILD +++ b/mingw-w64-gegl-git/PKGBUILD @@ -1,44 +1,43 @@ # Maintainer: Alexey Pavlov _realname=gegl - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r6300.2726ed7 +pkgver=r6521.06aea8e pkgrel=1 pkgdesc="Generic Graphics Library (mingw-w64)" arch=('any') url="http://gegl.org/gegl/" license=("GPL-3.0+" "LGPL-3.0+") -makedepends=(asciidoc - #"${MINGW_PACKAGE_PREFIX}-ffmpeg" - "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-lua" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-ruby" - "${MINGW_PACKAGE_PREFIX}-vala") +makedepends=("asciidoc" + #"${MINGW_PACKAGE_PREFIX}-ffmpeg" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-lua" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-ruby" + "${MINGW_PACKAGE_PREFIX}-vala") depends=("${MINGW_PACKAGE_PREFIX}-babl-git" - "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-exiv2" - "${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-jasper" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-librsvg" - "${MINGW_PACKAGE_PREFIX}-libspiro" - "${MINGW_PACKAGE_PREFIX}-libwebp" - "${MINGW_PACKAGE_PREFIX}-lcms" - "${MINGW_PACKAGE_PREFIX}-lensfun" - "${MINGW_PACKAGE_PREFIX}-openexr" - "${MINGW_PACKAGE_PREFIX}-pango" - "${MINGW_PACKAGE_PREFIX}-SDL") + "${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-exiv2" + "${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-librsvg" + "${MINGW_PACKAGE_PREFIX}-libspiro" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-lcms" + "${MINGW_PACKAGE_PREFIX}-lensfun" + "${MINGW_PACKAGE_PREFIX}-openexr" + "${MINGW_PACKAGE_PREFIX}-pango" + "${MINGW_PACKAGE_PREFIX}-SDL") #optdepends=("${MINGW_PACKAGE_PREFIX}-openexr: for using the openexr plugin" # "${MINGW_PACKAGE_PREFIX}-ffmpeg: for using the ffmpeg plugin" # "${MINGW_PACKAGE_PREFIX}-librsvg: for using the svg plugin" @@ -47,7 +46,7 @@ options=('strip' 'staticlibs') source=("${_realname}"::"git://git.gnome.org/gegl" 0001-give-cc-to-gir-scanner.all.patch) sha1sums=('SKIP' - '6ce3626a529d51c87d8a531b273d10a1ce89b6ca') + 'aabcead7c7a81b875840cbd233826ff4920c042f') pkgver() { cd "$srcdir/$_realname" @@ -61,7 +60,7 @@ prepare() { } build() { - export lt_cv_deplibs_check_method='pass_all' + # export lt_cv_deplibs_check_method='pass_all' mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" PKG_CONFIG=${MINGW_PREFIX}/bin/pkg-config.exe \ From a7c6738780928afa23c2ce0c7a68ba2b460aa167 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 11 Mar 2015 16:20:21 +0300 Subject: [PATCH 0655/2060] evince: Update to 3.14.2 --- mingw-w64-evince/PKGBUILD | 26 ++++++++++++++------------ mingw-w64-evince/evince-i686.install | 6 +++--- mingw-w64-evince/evince-x86_64.install | 6 +++--- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index 0de08870f5..c3b3cb0d86 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -2,21 +2,20 @@ _realname=evince pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.1 -pkgrel=2 +pkgver=3.14.2 +pkgrel=1 arch=('any') pkgdesc="Document (PostScript, PDF) viewer (mingw-w64)" options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-libgxps" - "${MINGW_PACKAGE_PREFIX}-libspectre" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-djvulibre" - "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" - "${MINGW_PACKAGE_PREFIX}-poppler" - "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme") + "${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-djvulibre" + "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-libgxps" + "${MINGW_PACKAGE_PREFIX}-libspectre" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-poppler") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" @@ -33,7 +32,7 @@ url="http://www.gnome.org" install=evince-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-give-cc-to-gir-scanner.mingw.patch) -sha256sums=('13ec728d6957aa18ba21a3a66504dd52b8607596337f30f0908b62b5fcc14507' +sha256sums=('4c591d0b879092a5f6c9140b75f15bdea3665a332e9b384957c453fd67bf0070' '2b704ea359fd73fb6ee905868b4b61246bb143cf783d7f970425a5236daa0686') prepare() { @@ -57,10 +56,13 @@ build() { --disable-dbus \ --disable-browser-plugin \ --disable-nautilus + make } package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-evince/evince-i686.install b/mingw-w64-evince/evince-i686.install index 375e708c36..fcc957e480 100644 --- a/mingw-w64-evince/evince-i686.install +++ b/mingw-w64-evince/evince-i686.install @@ -1,11 +1,11 @@ post_install() { - mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas + mingw32/bin/glib-compile-schemas mingw32/share/glib-2.0/schemas } post_upgrade() { - post_install $1 + post_install $1 } post_remove() { - post_install $1 + post_install $1 } diff --git a/mingw-w64-evince/evince-x86_64.install b/mingw-w64-evince/evince-x86_64.install index d43ee14ce7..6bcf50799c 100644 --- a/mingw-w64-evince/evince-x86_64.install +++ b/mingw-w64-evince/evince-x86_64.install @@ -1,11 +1,11 @@ post_install() { - mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas + mingw64/bin/glib-compile-schemas mingw64/share/glib-2.0/schemas } post_upgrade() { - post_install $1 + post_install $1 } post_remove() { - post_install $1 + post_install $1 } From cfc047deb27595f20a4a31993145ef79b739af56 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 11 Mar 2015 16:20:45 +0300 Subject: [PATCH 0656/2060] gdal: Update to 1.11.2 --- mingw-w64-gdal/01-sqlite387-r27950.patch | 63 ------------------------ mingw-w64-gdal/PKGBUILD | 19 ++++--- 2 files changed, 9 insertions(+), 73 deletions(-) delete mode 100644 mingw-w64-gdal/01-sqlite387-r27950.patch diff --git a/mingw-w64-gdal/01-sqlite387-r27950.patch b/mingw-w64-gdal/01-sqlite387-r27950.patch deleted file mode 100644 index 409dcbd8cd..0000000000 --- a/mingw-w64-gdal/01-sqlite387-r27950.patch +++ /dev/null @@ -1,63 +0,0 @@ ---- a/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp (revision 27729) -+++ b/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp (revision 27950) -@@ -36,4 +36,23 @@ - #ifdef HAVE_SQLITE_VFS - -+/************************************************************************/ -+/* OGR2SQLITE_Register() */ -+/************************************************************************/ -+ -+CPL_C_START -+int CPL_DLL OGR2SQLITE_static_register (sqlite3* hDB, char **pzErrMsg, void* pApi); -+CPL_C_END -+ -+/* We call this function so that each time a db is created, */ -+/* OGR2SQLITE_static_register is called, to initialize the sqlite3_api */ -+/* structure with the right pointers. */ -+/* We need to declare this function before including sqlite3ext.h, since */ -+/* sqlite 3.8.7, sqlite3_auto_extension can be a macro (#5725) */ -+ -+void OGR2SQLITE_Register() -+{ -+ sqlite3_auto_extension ((void (*)(void)) OGR2SQLITE_static_register); -+} -+ - #define VIRTUAL_OGR_DYNAMIC_EXTENSION_ENABLED - //#define DEBUG_OGR2SQLITE -@@ -2401,16 +2420,11 @@ - /************************************************************************/ - --CPL_C_START --int CPL_DLL OGR2SQLITE_static_register (sqlite3 * hDB, char **pzErrMsg, -- const sqlite3_api_routines * pApi); --CPL_C_END -- - #ifndef WIN32 - extern const struct sqlite3_api_routines OGRSQLITE_static_routines; - #endif - --int OGR2SQLITE_static_register (sqlite3 * hDB, char **pzErrMsg, -- const sqlite3_api_routines * pApi) --{ -+int OGR2SQLITE_static_register (sqlite3 * hDB, char **pzErrMsg, void * _pApi) -+{ -+ const sqlite3_api_routines * pApi = (const sqlite3_api_routines * )_pApi; - #ifndef WIN32 - if( pApi->create_module == NULL ) -@@ -2448,16 +2462,3 @@ - } - --/************************************************************************/ --/* OGR2SQLITE_Register() */ --/************************************************************************/ -- --/* We call this function so that each time a db is created, */ --/* OGR2SQLITE_static_register is called, to initialize the sqlite3_api */ --/* structure with the right pointers. */ -- --void OGR2SQLITE_Register() --{ -- sqlite3_auto_extension ((void (*)(void)) OGR2SQLITE_static_register); --} -- - #endif // HAVE_SQLITE_VFS diff --git a/mingw-w64-gdal/PKGBUILD b/mingw-w64-gdal/PKGBUILD index dbca17409e..fe13b2cefb 100644 --- a/mingw-w64-gdal/PKGBUILD +++ b/mingw-w64-gdal/PKGBUILD @@ -5,8 +5,8 @@ _realname=gdal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.11.1 -pkgrel=4 +pkgver=1.11.2 +pkgrel=1 pkgdesc="A translator library for raster geospatial data formats (mingw-w64)" arch=('any') url="http://www.gdal.org/" @@ -38,15 +38,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-cfitsio" options=(strip staticlibs) source=(http://download.osgeo.org/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz - 01-sqlite387-r27950.patch 02-poppler-0_31-compatibility.patch) -sha256sums=('f46b5944a8cabc8516673f231f466131cdfd2cdc6677dbee5d96ec7fc58a3340' - 'be80696d6520d7a6c8fda0b3fc3f66c8b3415c371f76c8e2bfb63d3a544b1c1e' +sha256sums=('66bc8192d24e314a66ed69285186d46e6999beb44fc97eeb9c76d82a117c0845' '76fe85f69ac13944aa4cf1b0fea80077806591b19040c825cc86ed06257268ac') prepare() { - cd "${srcdir}/${_realname}-$pkgver" - patch -p1 -i ${srcdir}/01-sqlite387-r27950.patch + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} + cd "${srcdir}/build-${MINGW_CHOST}" patch -p2 -i ${srcdir}/02-poppler-0_31-compatibility.patch sed -i "s|/usr/local|${MINGW_PREFIX}|g" configure.in @@ -60,7 +59,7 @@ prepare() { } build() { - cd "${srcdir}/${_realname}-$pkgver" + cd "${srcdir}/build-${MINGW_CHOST}" CFLAGS+=" -fno-strict-aliasing" @@ -79,12 +78,12 @@ build() { sed -i GDALmake.opt -e "s|EXE_DEP_LIBS.*|EXE_DEP_LIBS = \$\(GDAL_SLIB\)|g" sed -i GNUmakefile -e "s|\$(GDAL_ROOT)\/||g" - make + make # make man } package () { - cd "${srcdir}/${_realname}-$pkgver" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install make DESTDIR="${pkgdir}" install-man From 965dcaf94621660a26c3466c8e2019c91610b358 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 11 Mar 2015 16:21:12 +0300 Subject: [PATCH 0657/2060] gimp: Rebuild with popper 0.32.0 --- mingw-w64-gimp/PKGBUILD | 43 +++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/mingw-w64-gimp/PKGBUILD b/mingw-w64-gimp/PKGBUILD index b9682d01bc..c4c41ad5da 100644 --- a/mingw-w64-gimp/PKGBUILD +++ b/mingw-w64-gimp/PKGBUILD @@ -3,36 +3,32 @@ _realname=gimp pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.8.14 -pkgrel=2 +pkgrel=3 pkgdesc="GNU Image Manipulation Program (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") url="http://www.gimp.org/" license=('GPL' 'LGPL') -depends=("${MINGW_PACKAGE_PREFIX}-python2-pygtk" - "${MINGW_PACKAGE_PREFIX}-lcms2" - "${MINGW_PACKAGE_PREFIX}-xpm-nox" - "${MINGW_PACKAGE_PREFIX}-libwmf" - "${MINGW_PACKAGE_PREFIX}-librsvg" - "${MINGW_PACKAGE_PREFIX}-libmng" - "${MINGW_PACKAGE_PREFIX}-dbus-glib" - "${MINGW_PACKAGE_PREFIX}-libexif" - "${MINGW_PACKAGE_PREFIX}-gegl" - "${MINGW_PACKAGE_PREFIX}-jasper" - "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" - "${MINGW_PACKAGE_PREFIX}-babl" - "${MINGW_PACKAGE_PREFIX}-openexr" - "${MINGW_PACKAGE_PREFIX}-webkitgtk2" - "${MINGW_PACKAGE_PREFIX}-poppler" - "${MINGW_PACKAGE_PREFIX}-curl" - "${MINGW_PACKAGE_PREFIX}-ghostscript" +depends=("${MINGW_PACKAGE_PREFIX}-babl-git" + "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-dbus-glib" + "${MINGW_PACKAGE_PREFIX}-gegl-git" + "${MINGW_PACKAGE_PREFIX}-ghostscript" + "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" + "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-libexif" + "${MINGW_PACKAGE_PREFIX}-libmng" + "${MINGW_PACKAGE_PREFIX}-librsvg" + "${MINGW_PACKAGE_PREFIX}-libwmf" + "${MINGW_PACKAGE_PREFIX}-openexr" + "${MINGW_PACKAGE_PREFIX}-poppler" + "${MINGW_PACKAGE_PREFIX}-python2-pygtk" + "${MINGW_PACKAGE_PREFIX}-webkitgtk2" + "${MINGW_PACKAGE_PREFIX}-xpm-nox" ) makedepends=('intltool' - "${MINGW_PACKAGE_PREFIX}-iso-codes" - "${MINGW_PACKAGE_PREFIX}-curl" - "${MINGW_PACKAGE_PREFIX}-webkitgtk2" - "${MINGW_PACKAGE_PREFIX}-poppler" - "${MINGW_PACKAGE_PREFIX}-ghostscript") + "${MINGW_PACKAGE_PREFIX}-iso-codes") options=('strip' 'makeflags') install=gimp-${CARCH}.install source=(http://download.gimp.org/pub/gimp/v${pkgver%.*}/${_realname}-${pkgver}.tar.bz2 @@ -82,6 +78,7 @@ build() { --with-pdbgen \ --with-directx-sdk=${MINGW_PREFIX}/${MINGW_CHOST} \ --without-x + make } From 2b996b6aebebe40147697512fa2c4e0f414a25ed Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 11 Mar 2015 16:59:38 +0300 Subject: [PATCH 0658/2060] inkscape: Rebuild with popper 0.32.0 --- mingw-w64-inkscape/PKGBUILD | 11 ++++++----- mingw-w64-inkscape/inkscape-i686.install | 6 +++--- mingw-w64-inkscape/inkscape-x86_64.install | 6 +++--- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index 5b18ba2885..572aa94a24 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -11,16 +11,17 @@ fi _realname=inkscape pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.91 -pkgrel=3 +pkgrel=5 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') url="http://inkscape.sourceforge.net/" license=("GPL" "LGPL") install=inkscape-${CARCH}.install makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-boost" - "intltool") + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-boost" + "intltool" + ) depends=( "${MINGW_PACKAGE_PREFIX}-aspell" "${MINGW_PACKAGE_PREFIX}-gc" @@ -40,7 +41,7 @@ depends=( "${MINGW_PACKAGE_PREFIX}-python2" $([[ "${_use_gtk3}" == "yes" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-gdl" ) \ - ) + ) optdepends=(#"${MINGW_PACKAGE_PREFIX}-pstoedit: latex formulas" #"${MINGW_PACKAGE_PREFIX}-texlive-core: latex formulas" "${MINGW_PACKAGE_PREFIX}-python2-numpy: some extensions" diff --git a/mingw-w64-inkscape/inkscape-i686.install b/mingw-w64-inkscape/inkscape-i686.install index 30b8420eb7..77f4cb0728 100644 --- a/mingw-w64-inkscape/inkscape-i686.install +++ b/mingw-w64-inkscape/inkscape-i686.install @@ -1,11 +1,11 @@ post_install() { - mingw32/bin/gtk-update-icon-cache -f -t mingw32/share/icons/hicolor + mingw32/bin/gtk-update-icon-cache -f -t mingw32/share/icons/hicolor } post_upgrade() { - post_install + post_install } post_remove() { - post_install + post_install } diff --git a/mingw-w64-inkscape/inkscape-x86_64.install b/mingw-w64-inkscape/inkscape-x86_64.install index a64dc9ee18..e6737dd337 100644 --- a/mingw-w64-inkscape/inkscape-x86_64.install +++ b/mingw-w64-inkscape/inkscape-x86_64.install @@ -1,11 +1,11 @@ post_install() { - mingw64/bin/gtk-update-icon-cache -f -t mingw64/share/icons/hicolor + mingw64/bin/gtk-update-icon-cache -f -t mingw64/share/icons/hicolor } post_upgrade() { - post_install + post_install } post_remove() { - post_install + post_install } From 5e3210fd50a6bfda2c9ef63e08d2282ac4b60405 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 12 Mar 2015 22:50:56 +0300 Subject: [PATCH 0659/2060] cairo: Update to 1.14.2 --- mingw-w64-cairo/0002-fix-using-strings.patch | 15 ------- .../0027-Bug-53121-hack-around.all.patch | 39 ------------------- mingw-w64-cairo/PKGBUILD | 24 +++++------- ...ash-in-fill-xrgb32-lerp-opaque-spans.patch | 29 -------------- 4 files changed, 9 insertions(+), 98 deletions(-) delete mode 100644 mingw-w64-cairo/0002-fix-using-strings.patch delete mode 100644 mingw-w64-cairo/0027-Bug-53121-hack-around.all.patch delete mode 100644 mingw-w64-cairo/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch diff --git a/mingw-w64-cairo/0002-fix-using-strings.patch b/mingw-w64-cairo/0002-fix-using-strings.patch deleted file mode 100644 index 789a1904fc..0000000000 --- a/mingw-w64-cairo/0002-fix-using-strings.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- cairo-1.14.0/build/aclocal.float.m4.orig 2014-10-14 01:46:33.000000000 +0000 -+++ cairo-1.14.0/build/aclocal.float.m4 2014-10-14 06:16:08.348180700 +0000 -@@ -31,10 +31,10 @@ - - ]])], [ - --if strings - conftest | grep noonsees >/dev/null ; then -+if strings - conftest$ac_exeext | grep noonsees >/dev/null ; then - ax_cv_c_float_words_bigendian=yes - fi --if strings - conftest | grep seesnoon >/dev/null ; then -+if strings - conftest$ac_exeext | grep seesnoon >/dev/null ; then - if test "$ax_cv_c_float_words_bigendian" = unknown; then - ax_cv_c_float_words_bigendian=no - else diff --git a/mingw-w64-cairo/0027-Bug-53121-hack-around.all.patch b/mingw-w64-cairo/0027-Bug-53121-hack-around.all.patch deleted file mode 100644 index 9c1e3490db..0000000000 --- a/mingw-w64-cairo/0027-Bug-53121-hack-around.all.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 844455c14f8e9e4767fd661e475a9c6fdea9d22e Mon Sep 17 00:00:00 2001 -From: Massimo Valentini -Date: Wed, 11 Sep 2013 18:10:38 +0200 -Subject: [PATCH] Bug 53121 - My program runs successfully with... - -Cairo-1.10.2, but getting SIGSEGV with 1.12.2. ---- - src/win32/cairo-win32-display-surface.c | 8 ++++---- - 1 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/win32/cairo-win32-display-surface.c b/src/win32/cairo-win32-display-surface.c -index 5ecdbee..965f2c4 100644 ---- a/src/win32/cairo-win32-display-surface.c -+++ b/src/win32/cairo-win32-display-surface.c -@@ -455,17 +455,17 @@ _cairo_win32_display_surface_map_to_image (void *abstract_sur - surface->fallback = - _cairo_win32_display_surface_create_for_dc (surface->win32.dc, - surface->win32.format, -- surface->win32.extents.width, -- surface->win32.extents.height); -+ surface->win32.extents.x + surface->win32.extents.width, -+ surface->win32.extents.y + surface->win32.extents.height); - if (unlikely (status = surface->fallback->status)) - goto err; - - if (!BitBlt (to_win32_surface(surface->fallback)->dc, -- 0, 0, -+ surface->win32.extents.x, surface->win32.extents.y, - surface->win32.extents.width, - surface->win32.extents.height, - surface->win32.dc, -- 0, 0, -+ surface->win32.extents.x, surface->win32.extents.y, - SRCCOPY)) { - status = _cairo_error (CAIRO_STATUS_DEVICE_ERROR); - goto err; --- -1.7.6.5 - diff --git a/mingw-w64-cairo/PKGBUILD b/mingw-w64-cairo/PKGBUILD index 71f4ce42bd..8d49aeeaff 100644 --- a/mingw-w64-cairo/PKGBUILD +++ b/mingw-w64-cairo/PKGBUILD @@ -3,8 +3,8 @@ _realname=cairo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.14.0 -pkgrel=3 +pkgver=1.14.2 +pkgrel=1 pkgdesc="Cairo vector graphics library (mingw-w64)" arch=('any') url="http://cairographics.org" @@ -28,37 +28,31 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libcairo-gobject") options=('strip' 'staticlibs') source=("http://cairographics.org/releases/cairo-${pkgver}.tar.xz" - 0002-fix-using-strings.patch 0009-standalone-headers.mingw.patch 0013-mozilla-transparent-windows.all.patch 0022-dont-fail-argb-similar.all.patch - 0026-create-argb-fonts.all.patch - 0027-Bug-53121-hack-around.all.patch - fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch) -sha1sums=('53cf589b983412ea7f78feee2e1ba9cea6e3ebae' - 'eed29a424e5e0bc9bd8d651b6237e541273c3f93' + 0026-create-argb-fonts.all.patch) +sha1sums=('c8da68aa66ca0855b5d0ff552766d3e8679e1d24' '58c548d2791ba20dd7f6e328ff596f746df3aa10' 'b4b8c6f4931814e7e77ddeb98fecaf70cb807e04' 'fa601d6d2b2c75b0b1608ab3fa9c2e5b6cc31c9e' - '9c0e533614782a41af2c3806a43ab7fe9d6a5431' - 'b74c9998d960a64fbf606ebe0284187add0da55a' - '00b79ab41635a4f42311721bebbb9b3d49f09f46') + '9c0e533614782a41af2c3806a43ab7fe9d6a5431') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0002-fix-using-strings.patch + #patch -p1 -i ${srcdir}/0002-fix-using-strings.patch patch -p1 -i ${srcdir}/0009-standalone-headers.mingw.patch patch -p1 -i ${srcdir}/0013-mozilla-transparent-windows.all.patch patch -p1 -i ${srcdir}/0022-dont-fail-argb-similar.all.patch patch -p1 -i ${srcdir}/0026-create-argb-fonts.all.patch - patch -p1 -i ${srcdir}/0027-Bug-53121-hack-around.all.patch - patch -p1 -i ${srcdir}/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch + #patch -p1 -i ${srcdir}/0027-Bug-53121-hack-around.all.patch + #patch -p1 -i ${srcdir}/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch autoreconf -fi } build() { - export lt_cv_deplibs_check_method='pass_all' + # export lt_cv_deplibs_check_method='pass_all' mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" CFLAGS+=" -Wno-implicit-function-declaration" diff --git a/mingw-w64-cairo/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch b/mingw-w64-cairo/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch deleted file mode 100644 index 1be0a62ad7..0000000000 --- a/mingw-w64-cairo/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 5c82d91a5e15d29b1489dcb413b24ee7fdf59934 Mon Sep 17 00:00:00 2001 -From: Bryce Harrington -Date: Wed, 3 Dec 2014 19:28:15 -0800 -Subject: image: Fix crash in _fill_xrgb32_lerp_opaque_spans - -If a span length is negative don't go out of bounds processing the fill -data. - -Patch thanks to Ilya Sakhnenko on mailing list. - -Signed-off-by: Bryce Harrington - -diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c -index 6ff0f09..48072f8 100644 ---- a/src/cairo-image-compositor.c -+++ b/src/cairo-image-compositor.c -@@ -2242,10 +2242,10 @@ _fill_xrgb32_lerp_opaque_spans (void *abstract_renderer, int y, int h, - spans[0].x, y, len, 1, r->u.fill.pixel); - } else { - uint32_t *d = (uint32_t*)(r->u.fill.data + r->u.fill.stride*y + spans[0].x*4); -- while (len--) -+ while (len-- > 0) - *d++ = r->u.fill.pixel; - } -- } else while (len--) { -+ } else while (len-- > 0) { - *d = lerp8x4 (r->u.fill.pixel, a, *d); - d++; - } From 0aefd260a0f9fa0b442ad006ffd8809db03d6b9b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 12 Mar 2015 22:51:33 +0300 Subject: [PATCH 0660/2060] cmake: Update to 3.2.1 --- mingw-w64-cmake/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 400792e021..6f39fba053 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -2,7 +2,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.1.3 +pkgver=3.2.1 pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') @@ -21,7 +21,7 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "dont-install-bundle.patch" "wxWidgets-module.patch" "qt5-static-plugin-support.patch") -md5sums=('5697a77503bb5636f4b4057dcc02aa32' +md5sums=('63f436aa19b5efc37017759c8d3953ca' '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' '09ea9092ca85e482de79886bd0c09144' From ae679d31acbbc83251a364993830514f49cdef06 Mon Sep 17 00:00:00 2001 From: David Macek Date: Fri, 13 Mar 2015 01:46:27 +0100 Subject: [PATCH 0661/2060] cmake: updated to v3.2.1, added missing dependency --- mingw-w64-cmake/PKGBUILD | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 400792e021..90372d3288 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -2,16 +2,19 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.1.3 +pkgver=3.2.1 pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" license=("MIT") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-qt5") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-qt5") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-jsoncpp" "${MINGW_PACKAGE_PREFIX}-libarchive" "${MINGW_PACKAGE_PREFIX}-zlib") optdepends=("${MINGW_PACKAGE_PREFIX}-qt5: CMake Qt GUI") @@ -21,7 +24,7 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "dont-install-bundle.patch" "wxWidgets-module.patch" "qt5-static-plugin-support.patch") -md5sums=('5697a77503bb5636f4b4057dcc02aa32' +md5sums=('63f436aa19b5efc37017759c8d3953ca' '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' '09ea9092ca85e482de79886bd0c09144' From 01b6bc4c0bffb6ce6b4f8c87182498d6d1ef9f0a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Mar 2015 08:38:31 +0300 Subject: [PATCH 0662/2060] wxwidgets: Do not build with "-std=gnu++11" as it break other progs. --- mingw-w64-wxwidgets/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-wxwidgets/PKGBUILD b/mingw-w64-wxwidgets/PKGBUILD index c66a781766..426f24b946 100644 --- a/mingw-w64-wxwidgets/PKGBUILD +++ b/mingw-w64-wxwidgets/PKGBUILD @@ -3,7 +3,7 @@ _realname=wxWidgets pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2 -pkgrel=3 +pkgrel=5 pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)" arch=('any') license=("custom:wxWindows") @@ -31,7 +31,7 @@ prepare() { } build() { - CXXFLAGS+=" -std=gnu++11" + #CXXFLAGS+=" -std=gnu++11" [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} From c58330f77906e796e8e479bf476df0bf47d2d77c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Mar 2015 11:47:52 +0300 Subject: [PATCH 0663/2060] codelite-git: Update to git SHA [ga86ea67] --- mingw-w64-codelite-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index 6af8040b41..df6ea283dc 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=codelite pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=7.0.148.g2748295 +pkgver=7.0.157.ga86ea67 pkgrel=1 pkgdesc="Open-source, cross platform IDE for the C/C++ programming languages (mingw-w64)" arch=('any') From a80f173d822b83353fdf67a2fdcb8926998bcf02 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Mar 2015 11:50:34 +0300 Subject: [PATCH 0664/2060] tcl: Update to 8.6.4 --- ...dont-link-shared-with--static-libgcc.patch | 106 +++++++++--------- mingw-w64-tcl/PKGBUILD | 10 +- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/mingw-w64-tcl/010-dont-link-shared-with--static-libgcc.patch b/mingw-w64-tcl/010-dont-link-shared-with--static-libgcc.patch index 0e9a8a84fe..81e9114eb9 100644 --- a/mingw-w64-tcl/010-dont-link-shared-with--static-libgcc.patch +++ b/mingw-w64-tcl/010-dont-link-shared-with--static-libgcc.patch @@ -1,6 +1,6 @@ -diff -urN tcl8.6.3.orig/pkgs/itcl4.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/itcl4.0.2/tclconfig/tcl.m4 ---- tcl8.6.3.orig/pkgs/itcl4.0.2/tclconfig/tcl.m4 2014-08-26 16:23:03.000000000 +0100 -+++ tcl8.6.3/pkgs/itcl4.0.2/tclconfig/tcl.m4 2014-11-03 21:10:40.124589900 +0000 +diff -urN tcl8.6.4.orig/pkgs/itcl4.0.3/tclconfig/tcl.m4 tcl8.6.4/pkgs/itcl4.0.3/tclconfig/tcl.m4 +--- tcl8.6.4.orig/pkgs/itcl4.0.3/tclconfig/tcl.m4 2014-08-26 16:23:03.000000000 +0100 ++++ tcl8.6.4/pkgs/itcl4.0.3/tclconfig/tcl.m4 2014-11-03 21:10:40.124589900 +0000 @@ -3354,9 +3354,6 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi @@ -8,12 +8,12 @@ diff -urN tcl8.6.3.orig/pkgs/itcl4.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/itcl4.0.2/ - if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" - fi - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" -diff -urN tcl8.6.3.orig/pkgs/sqlite3.8.7.1/configure tcl8.6.3/pkgs/sqlite3.8.7.1/configure ---- tcl8.6.3.orig/pkgs/sqlite3.8.7.1/configure 2014-08-15 15:09:19.000000000 +0100 -+++ tcl8.6.3/pkgs/sqlite3.8.7.1/configure 2014-11-03 21:10:50.245375100 +0000 + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" +diff -urN tcl8.6.4.orig/pkgs/sqlite3.8.8.3/configure tcl8.6.4/pkgs/sqlite3.8.8.3/configure +--- tcl8.6.4.orig/pkgs/sqlite3.8.8.3/configure 2014-08-15 15:09:19.000000000 +0100 ++++ tcl8.6.4/pkgs/sqlite3.8.8.3/configure 2014-11-03 21:10:50.245375100 +0000 @@ -8710,9 +8710,6 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi @@ -21,12 +21,12 @@ diff -urN tcl8.6.3.orig/pkgs/sqlite3.8.7.1/configure tcl8.6.3/pkgs/sqlite3.8.7.1 - if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" - fi - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" -diff -urN tcl8.6.3.orig/pkgs/sqlite3.8.7.1/tclconfig/tcl.m4 tcl8.6.3/pkgs/sqlite3.8.7.1/tclconfig/tcl.m4 ---- tcl8.6.3.orig/pkgs/sqlite3.8.7.1/tclconfig/tcl.m4 2014-08-26 16:23:05.000000000 +0100 -+++ tcl8.6.3/pkgs/sqlite3.8.7.1/tclconfig/tcl.m4 2014-11-03 21:53:20.090664400 +0000 + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" +diff -urN tcl8.6.4.orig/pkgs/sqlite3.8.8.3/tclconfig/tcl.m4 tcl8.6.4/pkgs/sqlite3.8.8.3/tclconfig/tcl.m4 +--- tcl8.6.4.orig/pkgs/sqlite3.8.8.3/tclconfig/tcl.m4 2014-08-26 16:23:05.000000000 +0100 ++++ tcl8.6.4/pkgs/sqlite3.8.8.3/tclconfig/tcl.m4 2014-11-03 21:53:20.090664400 +0000 @@ -3354,9 +3354,6 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi @@ -34,12 +34,12 @@ diff -urN tcl8.6.3.orig/pkgs/sqlite3.8.7.1/tclconfig/tcl.m4 tcl8.6.3/pkgs/sqlite - if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" - fi - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" -diff -urN tcl8.6.3.orig/pkgs/tdbc1.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/tdbc1.0.2/tclconfig/tcl.m4 ---- tcl8.6.3.orig/pkgs/tdbc1.0.2/tclconfig/tcl.m4 2014-08-14 18:25:28.000000000 +0100 -+++ tcl8.6.3/pkgs/tdbc1.0.2/tclconfig/tcl.m4 2014-11-03 21:53:17.562843400 +0000 + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" +diff -urN tcl8.6.4.orig/pkgs/tdbc1.0.3/tclconfig/tcl.m4 tcl8.6.4/pkgs/tdbc1.0.3/tclconfig/tcl.m4 +--- tcl8.6.4.orig/pkgs/tdbc1.0.3/tclconfig/tcl.m4 2014-08-14 18:25:28.000000000 +0100 ++++ tcl8.6.4/pkgs/tdbc1.0.3/tclconfig/tcl.m4 2014-11-03 21:53:17.562843400 +0000 @@ -3354,9 +3354,6 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi @@ -47,12 +47,12 @@ diff -urN tcl8.6.3.orig/pkgs/tdbc1.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/tdbc1.0.2/ - if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" - fi - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" -diff -urN tcl8.6.3.orig/pkgs/tdbcmysql1.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/tdbcmysql1.0.2/tclconfig/tcl.m4 ---- tcl8.6.3.orig/pkgs/tdbcmysql1.0.2/tclconfig/tcl.m4 2014-08-26 16:23:06.000000000 +0100 -+++ tcl8.6.3/pkgs/tdbcmysql1.0.2/tclconfig/tcl.m4 2014-11-03 21:53:14.185914500 +0000 + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" +diff -urN tcl8.6.4.orig/pkgs/tdbcmysql1.0.3/tclconfig/tcl.m4 tcl8.6.4/pkgs/tdbcmysql1.0.3/tclconfig/tcl.m4 +--- tcl8.6.4.orig/pkgs/tdbcmysql1.0.3/tclconfig/tcl.m4 2014-08-26 16:23:06.000000000 +0100 ++++ tcl8.6.4/pkgs/tdbcmysql1.0.3/tclconfig/tcl.m4 2014-11-03 21:53:14.185914500 +0000 @@ -3354,9 +3354,6 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi @@ -60,12 +60,12 @@ diff -urN tcl8.6.3.orig/pkgs/tdbcmysql1.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/tdbcm - if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" - fi - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" -diff -urN tcl8.6.3.orig/pkgs/tdbcodbc1.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/tdbcodbc1.0.2/tclconfig/tcl.m4 ---- tcl8.6.3.orig/pkgs/tdbcodbc1.0.2/tclconfig/tcl.m4 2014-08-26 16:23:06.000000000 +0100 -+++ tcl8.6.3/pkgs/tdbcodbc1.0.2/tclconfig/tcl.m4 2014-11-03 21:11:17.741366700 +0000 + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" +diff -urN tcl8.6.4.orig/pkgs/tdbcodbc1.0.3/tclconfig/tcl.m4 tcl8.6.4/pkgs/tdbcodbc1.0.3/tclconfig/tcl.m4 +--- tcl8.6.4.orig/pkgs/tdbcodbc1.0.3/tclconfig/tcl.m4 2014-08-26 16:23:06.000000000 +0100 ++++ tcl8.6.4/pkgs/tdbcodbc1.0.3/tclconfig/tcl.m4 2014-11-03 21:11:17.741366700 +0000 @@ -3354,9 +3354,6 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi @@ -73,12 +73,12 @@ diff -urN tcl8.6.3.orig/pkgs/tdbcodbc1.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/tdbcod - if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" - fi - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" -diff -urN tcl8.6.3.orig/pkgs/tdbcpostgres1.0.2/configure tcl8.6.3/pkgs/tdbcpostgres1.0.2/configure ---- tcl8.6.3.orig/pkgs/tdbcpostgres1.0.2/configure 2014-08-14 18:59:04.000000000 +0100 -+++ tcl8.6.3/pkgs/tdbcpostgres1.0.2/configure 2014-11-03 21:11:28.422723000 +0000 + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" +diff -urN tcl8.6.4.orig/pkgs/tdbcpostgres1.0.3/configure tcl8.6.4/pkgs/tdbcpostgres1.0.3/configure +--- tcl8.6.4.orig/pkgs/tdbcpostgres1.0.3/configure 2014-08-14 18:59:04.000000000 +0100 ++++ tcl8.6.4/pkgs/tdbcpostgres1.0.3/configure 2014-11-03 21:11:28.422723000 +0000 @@ -9234,9 +9234,6 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi @@ -86,12 +86,12 @@ diff -urN tcl8.6.3.orig/pkgs/tdbcpostgres1.0.2/configure tcl8.6.3/pkgs/tdbcpostg - if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" - fi - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" -diff -urN tcl8.6.3.orig/pkgs/tdbcpostgres1.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/tdbcpostgres1.0.2/tclconfig/tcl.m4 ---- tcl8.6.3.orig/pkgs/tdbcpostgres1.0.2/tclconfig/tcl.m4 2014-08-26 16:23:06.000000000 +0100 -+++ tcl8.6.3/pkgs/tdbcpostgres1.0.2/tclconfig/tcl.m4 2014-11-03 21:11:35.450615500 +0000 + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" +diff -urN tcl8.6.4.orig/pkgs/tdbcpostgres1.0.3/tclconfig/tcl.m4 tcl8.6.4/pkgs/tdbcpostgres1.0.3/tclconfig/tcl.m4 +--- tcl8.6.4.orig/pkgs/tdbcpostgres1.0.3/tclconfig/tcl.m4 2014-08-26 16:23:06.000000000 +0100 ++++ tcl8.6.4/pkgs/tdbcpostgres1.0.3/tclconfig/tcl.m4 2014-11-03 21:11:35.450615500 +0000 @@ -3354,9 +3354,6 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi @@ -99,12 +99,12 @@ diff -urN tcl8.6.3.orig/pkgs/tdbcpostgres1.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/td - if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" - fi - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" -diff -urN tcl8.6.3.orig/pkgs/tdbcsqlite3-1.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/tdbcsqlite3-1.0.2/tclconfig/tcl.m4 ---- tcl8.6.3.orig/pkgs/tdbcsqlite3-1.0.2/tclconfig/tcl.m4 2014-08-26 16:23:07.000000000 +0100 -+++ tcl8.6.3/pkgs/tdbcsqlite3-1.0.2/tclconfig/tcl.m4 2014-11-03 21:11:42.045452900 +0000 + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" +diff -urN tcl8.6.4.orig/pkgs/tdbcsqlite3-1.0.3/tclconfig/tcl.m4 tcl8.6.4/pkgs/tdbcsqlite3-1.0.3/tclconfig/tcl.m4 +--- tcl8.6.4.orig/pkgs/tdbcsqlite3-1.0.3/tclconfig/tcl.m4 2014-08-26 16:23:07.000000000 +0100 ++++ tcl8.6.4/pkgs/tdbcsqlite3-1.0.3/tclconfig/tcl.m4 2014-11-03 21:11:42.045452900 +0000 @@ -3354,9 +3354,6 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi @@ -112,12 +112,12 @@ diff -urN tcl8.6.3.orig/pkgs/tdbcsqlite3-1.0.2/tclconfig/tcl.m4 tcl8.6.3/pkgs/td - if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" - fi - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" -diff -urN tcl8.6.3.orig/pkgs/thread2.7.1/tclconfig/tcl.m4 tcl8.6.3/pkgs/thread2.7.1/tclconfig/tcl.m4 ---- tcl8.6.3.orig/pkgs/thread2.7.1/tclconfig/tcl.m4 2014-08-26 16:23:07.000000000 +0100 -+++ tcl8.6.3/pkgs/thread2.7.1/tclconfig/tcl.m4 2014-11-03 21:11:50.460521500 +0000 + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" +diff -urN tcl8.6.4.orig/pkgs/thread2.7.2/tclconfig/tcl.m4 tcl8.6.4/pkgs/thread2.7.2/tclconfig/tcl.m4 +--- tcl8.6.4.orig/pkgs/thread2.7.2/tclconfig/tcl.m4 2014-08-26 16:23:07.000000000 +0100 ++++ tcl8.6.4/pkgs/thread2.7.2/tclconfig/tcl.m4 2014-11-03 21:11:50.460521500 +0000 @@ -3354,9 +3354,6 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi @@ -125,12 +125,12 @@ diff -urN tcl8.6.3.orig/pkgs/thread2.7.1/tclconfig/tcl.m4 tcl8.6.3/pkgs/thread2. - if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" - fi - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else - eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" -diff -urN tcl8.6.3.orig/win/tcl.m4 tcl8.6.3/win/tcl.m4 ---- tcl8.6.3.orig/win/tcl.m4 2014-08-26 16:23:09.000000000 +0100 -+++ tcl8.6.3/win/tcl.m4 2014-11-03 21:12:59.195749700 +0000 + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" +diff -urN tcl8.6.4.orig/win/tcl.m4 tcl8.6.4/win/tcl.m4 +--- tcl8.6.4.orig/win/tcl.m4 2014-08-26 16:23:09.000000000 +0100 ++++ tcl8.6.4/win/tcl.m4 2014-11-03 21:12:59.195749700 +0000 @@ -635,7 +635,6 @@ if test "${GCC}" = "yes" ; then diff --git a/mingw-w64-tcl/PKGBUILD b/mingw-w64-tcl/PKGBUILD index e94738c516..d94901b2c9 100644 --- a/mingw-w64-tcl/PKGBUILD +++ b/mingw-w64-tcl/PKGBUILD @@ -3,7 +3,7 @@ _realname=tcl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=8.6.3 +pkgver=8.6.4 pkgrel=1 pkgdesc="The Tcl scripting language (mingw-w64)" arch=('any') @@ -22,7 +22,7 @@ source=("http://downloads.sourceforge.net/sourceforge/tcl/tcl${pkgver}-src.tar.g 009-fix-using-gnu-print.patch 010-dont-link-shared-with--static-libgcc.patch) -md5sums=('db382feca91754b7f93da16dc4cdad1f' +md5sums=('d7cbb91f1ded1919370a30edd1534304' '04e6b9f4e67ff4d23e60b2aa56777d5a' 'f9fd38a4bac21c094e48f7f1585d5412' '312640178d8e976aa64c634c92685fc0' @@ -30,7 +30,7 @@ md5sums=('db382feca91754b7f93da16dc4cdad1f' 'cf2dbfd13418aac404e8b532e7cabe98' 'f700b69022005a8d6fa3a4d5929af5ed' '7fddcb8c90dec92dfbd55672c7ee6c84' - 'a84fd6d6dec1f127818b870fbe43ea2f') + '1a4ca13317204bbd3f4776051fd87f44') prepare() { cd "${srcdir}/tcl${pkgver}" @@ -80,8 +80,8 @@ package() { local _libver=${pkgver%.*} _libver=${_libver//./} - local _odbc_ver=1.0.2 - local _itcl_ver=4.0.2 + local _odbc_ver=1.0.3 + local _itcl_ver=4.0.3 sed \ -e "s|^\(TCL_BUILD_LIB_SPEC\)='.*|\1='-Wl,${MINGW_PREFIX}/lib/libtcl${_libver}.dll.a'|" \ -e "s|^\(TCL_SRC_DIR\)='.*'|\1='${MINGW_PREFIX}/include/tcl${pkgver%.*}/tcl-private'|" \ From 16c4517eebc85edb12d4782cbed025ba6e9eda0b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 13 Mar 2015 13:02:29 +0300 Subject: [PATCH 0665/2060] tk: Update to 8.6.4 --- mingw-w64-tk/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-tk/PKGBUILD b/mingw-w64-tk/PKGBUILD index 21fad76789..a0f218406f 100644 --- a/mingw-w64-tk/PKGBUILD +++ b/mingw-w64-tk/PKGBUILD @@ -3,7 +3,7 @@ _realname=tk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=8.6.3 +pkgver=8.6.4 pkgrel=1 pkgdesc="A windowing toolkit for use with tcl (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ source=("http://downloads.sourceforge.net/sourceforge/tcl/tk${pkgver}-src.tar.gz 004-install-man.mingw.patch 006-prevent-tclStubsPtr-segfault.patch 008-dont-link-shared-with--static-libgcc.patch) -sha1sums=('244ddc0f64cc3d429c9d86135d0bbe2cf06c9360' +sha1sums=('ad24c59ac2e7453d1ed2bad0d7d18a01eabc5226' 'f198c1a47f4adf9dbca628889267a8740482fe69' '5029b27e01826f640fb17daf6f96c13d3f0de293' 'a96a89cea2823a8f1857885aa8d71d96a829e06b' From 52404b608791d06a483102d1a6db435a49af3bd0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 14 Mar 2015 13:01:21 +0300 Subject: [PATCH 0666/2060] libssh2: Update to 1.5.0 --- mingw-w64-libssh2/PKGBUILD | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/mingw-w64-libssh2/PKGBUILD b/mingw-w64-libssh2/PKGBUILD index 79605400a9..4937e0222e 100644 --- a/mingw-w64-libssh2/PKGBUILD +++ b/mingw-w64-libssh2/PKGBUILD @@ -1,34 +1,36 @@ # Maintainer: Alexey Pavlov _realname=libssh2 - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.3 -pkgrel=2 +pkgver=1.5.0 +pkgrel=1 pkgdesc="A library implementing the SSH2 protocol as defined by Internet Drafts (mingw-w64)" arch=('any') url="http://www.libssh2.org" license=("BSD") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib") groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') source=("$url/download/${_realname}-$pkgver.tar.gz") -md5sums=('071004c60c5d6f90354ad1b701013a0b') +md5sums=('e7fa3f5c6bd2d67a9b360ff726bbc6ba') build() { - mkdir -p "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" + mkdir -p "${srcdir}//build-${CARCH}" + cd "${srcdir}/build-${CARCH}" "${srcdir}"/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --with-openssl + make } package() { - cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" + cd "${srcdir}/build-${CARCH}" make DESTDIR="$pkgdir" install + + install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From 832065fd9583478928c18bd5bee340043790e111 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 14 Mar 2015 13:01:52 +0300 Subject: [PATCH 0667/2060] libtasn1: Update to 4.3 --- mingw-w64-libtasn1/PKGBUILD | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libtasn1/PKGBUILD b/mingw-w64-libtasn1/PKGBUILD index aa603f66cf..61ce56cf29 100644 --- a/mingw-w64-libtasn1/PKGBUILD +++ b/mingw-w64-libtasn1/PKGBUILD @@ -2,17 +2,17 @@ _realname=libtasn1 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.2 +pkgver=4.3 pkgrel=1 pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libidn" license=("GPL3, LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-libwinpthread") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://ftp.gnu.org/gnu/libtasn1/${_realname}-${pkgver}.tar.gz"{,.sig}) -md5sums=('414df906df421dee0a5cf7548788d153' +md5sums=('67e98988f966a34fbf1b82d33eef9e7e' 'SKIP') prepare() { @@ -26,11 +26,17 @@ build() { --prefix=${MINGW_PREFIX}\ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install + + install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.LIB "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE.LIB" } From dd49d82ed8c145859868bcc0b4399bcd8cd9d8a2 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 14 Mar 2015 12:43:03 +0100 Subject: [PATCH 0668/2060] libgweather: update to 3.14.3 and install license. --- mingw-w64-libgweather/PKGBUILD | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgweather/PKGBUILD b/mingw-w64-libgweather/PKGBUILD index 4d4857af2e..b354a80fb7 100644 --- a/mingw-w64-libgweather/PKGBUILD +++ b/mingw-w64-libgweather/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgweather pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.2 +pkgver=3.14.3 pkgrel=1 arch=('any') pkgdesc="GWeather shared library (mingw-w64)" @@ -23,7 +23,7 @@ url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch 002-localedir-fix.patch) -sha256sums=('aa0d03132fc6c446cf549df1d91e319e1abcc676f1d9f8bc1dc01f033dcff493' +sha256sums=('04dd25064cdc7715c1bf5fc476c8596d640cbcb3551217867195cef16bbbbf6b' '54aafa1ec47f818855cb8d17bb4f7f4458505a54b08c9fc51bfd4bbc1d6c37a2' '6677acc97b0322170339479df46435f14eb232df2d36e607029af3bd1f1a4eb0') @@ -52,4 +52,6 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From a8f96e000e836d4da13ecb8525ed1790d93a766b Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 14 Mar 2015 18:11:59 +0100 Subject: [PATCH 0669/2060] devhelp: new package. --- mingw-w64-devhelp/001-win.patch | 90 ++++++++++++++++++++++++ mingw-w64-devhelp/PKGBUILD | 56 +++++++++++++++ mingw-w64-devhelp/devhelp-i686.install | 11 +++ mingw-w64-devhelp/devhelp-x86_64.install | 11 +++ 4 files changed, 168 insertions(+) create mode 100644 mingw-w64-devhelp/001-win.patch create mode 100644 mingw-w64-devhelp/PKGBUILD create mode 100644 mingw-w64-devhelp/devhelp-i686.install create mode 100644 mingw-w64-devhelp/devhelp-x86_64.install diff --git a/mingw-w64-devhelp/001-win.patch b/mingw-w64-devhelp/001-win.patch new file mode 100644 index 0000000000..e27e568662 --- /dev/null +++ b/mingw-w64-devhelp/001-win.patch @@ -0,0 +1,90 @@ +--- ./m4/intltool.m4.orig 2013-05-15 13:07:27.000000000 +0200 ++++ ./m4/intltool.m4 2015-03-14 17:51:28.198407000 +0100 +@@ -155,31 +155,6 @@ + # Substitute ALL_LINGUAS so we can use it in po/Makefile + AC_SUBST(ALL_LINGUAS) + +-# Set DATADIRNAME correctly if it is not set yet +-# (copied from glib-gettext.m4) +-if test -z "$DATADIRNAME"; then +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[]], +- [[extern int _nl_msg_cat_cntr; +- return _nl_msg_cat_cntr]])], +- [DATADIRNAME=share], +- [case $host in +- *-*-solaris*) +- dnl On Solaris, if bind_textdomain_codeset is in libc, +- dnl GNU format message catalog is always supported, +- dnl since both are added to the libc all together. +- dnl Hence, we'd like to go with DATADIRNAME=share +- dnl in this case. +- AC_CHECK_FUNC(bind_textdomain_codeset, +- [DATADIRNAME=share], [DATADIRNAME=lib]) +- ;; +- *) +- [DATADIRNAME=lib] +- ;; +- esac]) +-fi +-AC_SUBST(DATADIRNAME) +- + IT_PO_SUBDIR([po]) + + ]) +--- ./src/dh-book-manager.c.orig 2013-02-05 19:18:57.000000000 +0100 ++++ ./src/dh-book-manager.c 2015-03-14 17:51:23.006765300 +0100 +@@ -528,8 +528,7 @@ + + /* Build the path of the directory where the final + * devhelp book resides */ +- book_dir_path = g_build_filename (G_DIR_SEPARATOR_S, +- dir_path, ++ book_dir_path = g_build_filename (dir_path, + name, + NULL); + +--- ./src/dh-link.c.orig 2011-08-21 12:00:05.000000000 +0200 ++++ ./src/dh-link.c 2015-03-14 17:56:00.731796500 +0100 +@@ -234,7 +234,8 @@ + else + base = link->book->base; + +- uri = g_strconcat ("file://", base, "/", link->filename, NULL, NULL); ++ uri = g_strconcat ("file:///", base, "/", link->filename, NULL, NULL); ++ uri = g_strjoinv("/", g_strsplit(uri, "\\", -1)); + + return uri; + } +--- ./src/dh-main.c.orig 2013-02-01 15:35:06.000000000 +0100 ++++ ./src/dh-main.c 2015-03-14 17:51:23.019765900 +0100 +@@ -103,7 +103,13 @@ + gint status; + + setlocale (LC_ALL, ""); ++#ifdef G_OS_WIN32 ++ gchar *dir = g_win32_get_package_installation_directory_of_module (NULL); ++ bindtextdomain (GETTEXT_PACKAGE, g_build_filename (dir, "share", "locale", NULL)); ++ g_free (dir); ++#else + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); ++#endif + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); + +--- ./src/dh-util.c.orig 2013-05-15 13:05:20.000000000 +0200 ++++ ./src/dh-util.c 2015-03-14 17:51:23.025767100 +0100 +@@ -131,7 +131,13 @@ + va_start (args, first_part); + + if (datadir == NULL) { ++#ifdef G_OS_WIN32 ++ gchar *dir = g_win32_get_package_installation_directory_of_module (NULL); ++ datadir = g_build_filename (dir, "share", NULL); ++ g_free (dir); ++#else + datadir = g_strdup (DATADIR); ++#endif + } + + /* 2 = 1 initial component + terminating NULL element. */ diff --git a/mingw-w64-devhelp/PKGBUILD b/mingw-w64-devhelp/PKGBUILD new file mode 100644 index 0000000000..daeb3a55a9 --- /dev/null +++ b/mingw-w64-devhelp/PKGBUILD @@ -0,0 +1,56 @@ +# Maintainer: Andrea Zagli + +_realname=devhelp +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.8.2 +pkgrel=1 +arch=('any') +pkgdesc="Remote desktop client for the GNOME Desktop (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" + "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" + "${MINGW_PACKAGE_PREFIX}-webkitgtk3" + "${MINGW_PACKAGE_PREFIX}-python2") +makedepends=("${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-vala") +options=('strip' 'staticlibs') +license=("GPL 2") +url="http://www.gnome.org" +install=${_realname}-${CARCH}.install +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('a245b53824c6f2ff89245ff807bb2140bde74951ea6f1d759a0fd0c6959ca9f7' + '0ed77884d958aa94af910591a61f33895a5f6d9b4f7e4852de6ab543d4487b50') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -b -V simple -p1 -i ${srcdir}/001-win.patch + + ACLOCAL_FLAGS="-I libgd $ACLOCAL_FLAGS" \ + AUTOPOINT='intltoolize --automake --copy' \ + autoreconf -fi +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --with-webkit2=no + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} diff --git a/mingw-w64-devhelp/devhelp-i686.install b/mingw-w64-devhelp/devhelp-i686.install new file mode 100644 index 0000000000..375e708c36 --- /dev/null +++ b/mingw-w64-devhelp/devhelp-i686.install @@ -0,0 +1,11 @@ +post_install() { + mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/mingw-w64-devhelp/devhelp-x86_64.install b/mingw-w64-devhelp/devhelp-x86_64.install new file mode 100644 index 0000000000..d43ee14ce7 --- /dev/null +++ b/mingw-w64-devhelp/devhelp-x86_64.install @@ -0,0 +1,11 @@ +post_install() { + mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} From cb85b0a0bcaf9830af0070c8d325e7f5f817760b Mon Sep 17 00:00:00 2001 From: Josip Date: Sat, 14 Mar 2015 23:51:50 +0100 Subject: [PATCH 0670/2060] glib2: fix not showing folder icons in gtkfilechooserdialog gio's g_content_type_from_mime_type ("inode/directory") not working in windows so reverting that --- mingw-w64-glib2/0028-inode_directory.patch | 11 +++++++++++ mingw-w64-glib2/PKGBUILD | 9 ++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-glib2/0028-inode_directory.patch diff --git a/mingw-w64-glib2/0028-inode_directory.patch b/mingw-w64-glib2/0028-inode_directory.patch new file mode 100644 index 0000000000..fbfa12773d --- /dev/null +++ b/mingw-w64-glib2/0028-inode_directory.patch @@ -0,0 +1,11 @@ +--- a/gio/glocalfileinfo.c 2015-02-26 03:57:52.000000000 +0100 ++++ b/gio/glocalfileinfo.c 2015-03-14 14:04:17.044446300 +0100 +@@ -1220,7 +1220,7 @@ + (symlink_broken || (flags & G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS))) + return g_content_type_from_mime_type ("inode/symlink"); + else if (statbuf != NULL && S_ISDIR(statbuf->st_mode)) +- return g_content_type_from_mime_type ("inode/directory"); ++ return g_strdup ("inode/directory"); + #ifndef G_OS_WIN32 + else if (statbuf != NULL && S_ISCHR(statbuf->st_mode)) + return g_content_type_from_mime_type ("inode/chardevice"); diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 18ff8022f1..7dcb7e425b 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -4,7 +4,7 @@ _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.42.2 -pkgrel=2 +pkgrel=3 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" @@ -27,7 +27,8 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.t 0023-print-in-binary-more-for-testing.all.patch 0024-return-actually-written-data-in-printf.all.patch 0001-gsocket-block-when-errno-says-it-will-block.patch - 0027-no_sys_if_nametoindex.patch) + 0027-no_sys_if_nametoindex.patch + 0028-inode_directory.patch) md5sums=('ae9ee104932657ed08ef4679556be07f' '98c7778b5e8a30dbcdb86bcd15f9c11d' '6eb9d56028ea3bbec3d053254a00a04b' @@ -39,7 +40,8 @@ md5sums=('ae9ee104932657ed08ef4679556be07f' '217a997ede1b93ac06f96ed869b74378' '500f39baea98d98e4a2f877ad56f55a5' 'c8942cf5035f97ade5ab9c757a210f01' - 'd06748f2891e1f4e6db5684d5935aefc') + 'd06748f2891e1f4e6db5684d5935aefc' + '6c06cdfcbf877fb560e0be393a043d56') prepare() { cd "$srcdir/glib-$pkgver" @@ -55,6 +57,7 @@ prepare() { patch -Np1 -i "$srcdir/0024-return-actually-written-data-in-printf.all.patch" patch -Np1 -i "$srcdir/0001-gsocket-block-when-errno-says-it-will-block.patch" patch -Np1 -i "$srcdir/0027-no_sys_if_nametoindex.patch" + patch -Np1 -i "$srcdir/0028-inode_directory.patch" NOCONFIGURE=1 ./autogen.sh } From 532adfe4cf5ba56b8a522cf490c1a96fe14cf25c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 15 Mar 2015 18:55:41 +0300 Subject: [PATCH 0671/2060] libgweather: Fix build dependencies. --- mingw-w64-libgweather/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-libgweather/PKGBUILD b/mingw-w64-libgweather/PKGBUILD index b354a80fb7..669304b7dc 100644 --- a/mingw-w64-libgweather/PKGBUILD +++ b/mingw-w64-libgweather/PKGBUILD @@ -12,10 +12,10 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-geocode-glib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gtk-doc" "${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-glade" + "gtk-doc" "intltool") options=('strip' 'staticlibs') license=("LGPL 2.1") From bb6a9eba7c3a5d774412631528b6efa62aeebbd8 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sun, 15 Mar 2015 19:32:51 +0100 Subject: [PATCH 0672/2060] fossil: New package --- mingw-w64-fossil/PKGBUILD | 46 ++++++++++ mingw-w64-fossil/win.patch | 170 +++++++++++++++++++++++++++++++++++++ 2 files changed, 216 insertions(+) create mode 100644 mingw-w64-fossil/PKGBUILD create mode 100644 mingw-w64-fossil/win.patch diff --git a/mingw-w64-fossil/PKGBUILD b/mingw-w64-fossil/PKGBUILD new file mode 100644 index 0000000000..bf8b980591 --- /dev/null +++ b/mingw-w64-fossil/PKGBUILD @@ -0,0 +1,46 @@ +# Contributor (MSYS2): David Macek +# Maintainer (Arch Linux): Anatol Pomozov +# Contributor (Arch Linux): Daniel YC Lin +# Contributor (Arch Linux): Konstantin Plotnikov + +_realname=fossil +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.32 +pkgrel=1 +pkgdesc='Simple, high-reliability, distributed software configuration management (mingw-w64)' +arch=('any') +license=('BSD') +url='http://www.fossil-scm.org/' +depends=("${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-tcl") +optdepends=("${MINGW_PACKAGE_PREFIX}-putty: SSH transport") +source=("https://www.fossil-scm.org/download/${_realname}-src-${pkgver}.tar.gz" + "win.patch") +sha256sums=('cd79c333eb9e86fbb8c17bf5cdf31c387e4ab768eede623aed21adfdbcad686e' + '6fea72791e000134508a4d33269ffc9d811a9613cad8685dd62d7ef33689dca7') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i "${srcdir}/win.patch" + # this doesn't get expanded, so delete it just to be sure + sed -i '/ENABLE_MINIZ/d' Makefile.in +} + +build() { + mkdir -p "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" + MSYS2_ARG_CONV_EXCL=--prefix ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --disable-internal-sqlite + make \ + CFLAGS+="-DBROKEN_MINGW_CMDLINE=not_actually_broken" +} + +package() { + cd "${srcdir}/build-${CARCH}" + make DESTDIR="${pkgdir}" install +} diff --git a/mingw-w64-fossil/win.patch b/mingw-w64-fossil/win.patch new file mode 100644 index 0000000000..f479f77eca --- /dev/null +++ b/mingw-w64-fossil/win.patch @@ -0,0 +1,170 @@ +diff -Naur orig/Makefile.in fossil-1.32/Makefile.in +--- orig/Makefile.in 2015-03-14 14:20:34.000000000 +0100 ++++ fossil-1.32/Makefile.in 2015-03-15 18:56:34.462619100 +0100 +@@ -39,10 +39,10 @@ + TCLSH = tclsh + +-LIB = @LDFLAGS@ @EXTRA_LDFLAGS@ @LIBS@ ++LIB = @LDFLAGS@ @EXTRA_LDFLAGS@ @LIBS@ -lws2_32 + TCCFLAGS = @EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H -D_HAVE_SQLITE_CONFIG_H + INSTALLDIR = $(DESTDIR)@prefix@/bin + USE_SYSTEM_SQLITE = @USE_SYSTEM_SQLITE@ + FOSSIL_ENABLE_MINIZ = @FOSSIL_ENABLE_MINIZ@ + + include $(SRCDIR)/main.mk + +diff -Naur orig/src/checkin.c fossil-1.32/src/checkin.c +--- orig/src/checkin.c 2015-03-14 14:20:34.000000000 +0100 ++++ fossil-1.32/src/checkin.c 2015-03-15 19:09:44.570333300 +0100 +@@ -841,15 +841,6 @@ + if( zEditor==0 ){ + zEditor = fossil_getenv("EDITOR"); + } +-#if defined(_WIN32) || defined(__CYGWIN__) +- if( zEditor==0 ){ +- zEditor = mprintf("%s\\notepad.exe", fossil_getenv("SYSTEMROOT")); +-#if defined(__CYGWIN__) +- zEditor = fossil_utf8_to_filename(zEditor); +- blob_add_cr(pPrompt); +-#endif +- } +-#endif + if( zEditor==0 ){ + blob_append(pPrompt, + "#\n" +@@ -867,9 +858,6 @@ + blob_str(&fname)); + blob_reset(&fname); + } +-#if defined(_WIN32) +- blob_add_cr(pPrompt); +-#endif + blob_write_to_file(pPrompt, zFile); + if( zEditor ){ + zCmd = mprintf("%s \"%s\"", zEditor, zFile); +@@ -936,16 +924,7 @@ + int parent_rid + ){ + Blob prompt; +-#if defined(_WIN32) || defined(__CYGWIN__) +- int bomSize; +- const unsigned char *bom = get_utf8_bom(&bomSize); +- blob_init(&prompt, (const char *) bom, bomSize); +- if( zInit && zInit[0]) { +- blob_append(&prompt, zInit, -1); +- } +-#else + blob_init(&prompt, zInit, -1); +-#endif + blob_append(&prompt, + "\n" + "# Enter a commit message for this check-in. Lines beginning with # are ignored.\n" +diff -Naur orig/src/db.c fossil-1.32/src/db.c +--- orig/src/db.c 2015-03-14 14:20:34.000000000 +0100 ++++ fossil-1.32/src/db.c 2015-03-15 19:11:17.812005900 +0100 +@@ -928,41 +928,20 @@ + db_close_config(); + } + zHome = fossil_getenv("FOSSIL_HOME"); +-#if defined(_WIN32) || defined(__CYGWIN__) + if( zHome==0 ){ +- zHome = fossil_getenv("LOCALAPPDATA"); +- if( zHome==0 ){ +- zHome = fossil_getenv("APPDATA"); +- if( zHome==0 ){ +- char *zDrive = fossil_getenv("HOMEDRIVE"); +- char *zPath = fossil_getenv("HOMEPATH"); +- if( zDrive && zPath ) zHome = mprintf("%s%s", zDrive, zPath); +- } +- } +- } +- if( zHome==0 ){ +- fossil_fatal("cannot locate home directory - please set the " +- "FOSSIL_HOME, LOCALAPPDATA, APPDATA, or HOMEPATH " +- "environment variables"); ++ zHome = fossil_getenv("HOME"); + } +-#else + if( zHome==0 ){ +- zHome = fossil_getenv("HOME"); ++ zHome = fossil_getenv("USERPROFILE"); + } + if( zHome==0 ){ + fossil_fatal("cannot locate home directory - please set the " +- "FOSSIL_HOME or HOME environment variables"); ++ "FOSSIL_HOME, USERPROFILE or HOME environment variables"); + } +-#endif + if( file_isdir(zHome)!=1 ){ + fossil_fatal("invalid home directory: %s", zHome); + } +-#if defined(_WIN32) || defined(__CYGWIN__) +- /* . filenames give some window systems problems and many apps problems */ +- zDbName = mprintf("%//_fossil", zHome); +-#else + zDbName = mprintf("%s/.fossil", zHome); +-#endif + if( file_size(zDbName)<1024*3 ){ + if( file_access(zHome, W_OK) ){ + fossil_fatal("home directory %s must be writeable", zHome); +@@ -1446,12 +1425,13 @@ + if( zUser==0 ){ + #if defined(_WIN32) + zUser = fossil_getenv("USERNAME"); +-#else +- zUser = fossil_getenv("USER"); ++#endif ++ if( zUser==0 ){ ++ zUser = fossil_getenv("USER"); ++ } + if( zUser==0 ){ + zUser = fossil_getenv("LOGNAME"); + } +-#endif + } + if( zUser==0 ){ + zUser = "root"; +@@ -2250,11 +2230,7 @@ + fossil_fatal("already within an open tree rooted at %s", g.zLocalRoot); + } + db_open_repository(g.argv[2]); +-#if defined(_WIN32) || defined(__CYGWIN__) +-# define LOCALDB_NAME "./_FOSSIL_" +-#else + # define LOCALDB_NAME "./.fslckout" +-#endif + db_init_database(LOCALDB_NAME, zLocalSchema, + #ifdef FOSSIL_LOCAL_WAL + "COMMIT; PRAGMA journal_mode=WAL; BEGIN;", +diff -Naur orig/src/diffcmd.c fossil-1.32/src/diffcmd.c +--- orig/src/diffcmd.c 2015-03-14 14:20:34.000000000 +0100 ++++ fossil-1.32/src/diffcmd.c 2015-03-15 19:11:56.557745800 +0100 +@@ -606,11 +606,7 @@ + const char *zName; + + if( guiDiff ){ +-#if defined(_WIN32) +- zDefault = "WinDiff.exe"; +-#else + zDefault = 0; +-#endif + zName = "gdiff-command"; + }else{ + zDefault = 0; +diff -Naur orig/src/stash.c fossil-1.32/src/stash.c +--- orig/src/stash.c 2015-03-14 14:20:34.000000000 +0100 ++++ fossil-1.32/src/stash.c 2015-03-15 19:19:23.878640100 +0100 +@@ -160,13 +160,7 @@ + if( zComment==0 ){ + Blob prompt; /* Prompt for stash comment */ + Blob comment; /* User comment reply */ +-#if defined(_WIN32) || defined(__CYGWIN__) +- int bomSize; +- const unsigned char *bom = get_utf8_bom(&bomSize); +- blob_init(&prompt, (const char *) bom, bomSize); +-#else + blob_zero(&prompt); +-#endif + blob_append(&prompt, + "\n" + "# Enter a description of what is being stashed. Lines beginning\n" From e5bc01876aaac2f683c39d31ebfaca0ee06cbe98 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sun, 15 Mar 2015 19:35:52 +0100 Subject: [PATCH 0673/2060] putty: Add conflicts and provides --- mingw-w64-putty/PKGBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-putty/PKGBUILD b/mingw-w64-putty/PKGBUILD index c34856ad0f..bb1cdc4d14 100644 --- a/mingw-w64-putty/PKGBUILD +++ b/mingw-w64-putty/PKGBUILD @@ -8,7 +8,7 @@ _realname=putty pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _base_ver=0.63 pkgver=0.63.r10297 -pkgrel=2 +pkgrel=3 pkgdesc="A free telnet/SSH client (mingw-w64)" arch=('any') url="http://www.chiark.greenend.org.uk/~sgtatham/putty/" @@ -17,6 +17,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "subversion") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") optdepends=("${MINGW_PACKAGE_PREFIX}-putty-ssh: ssh wrapper for plink") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") source=("$_realname::svn+svn://svn.tartarus.org/sgt/putty" '0001-fixes.patch' '0002-casts.patch' From 3c0f54013ab906d50a921ca6d3edaa43befe939f Mon Sep 17 00:00:00 2001 From: David Macek Date: Sun, 15 Mar 2015 20:22:58 +0100 Subject: [PATCH 0674/2060] sqlite-analyzer: New package --- mingw-w64-sqlite-analyzer/LICENSE | 25 +++++++++++++++++ mingw-w64-sqlite-analyzer/PKGBUILD | 45 ++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 mingw-w64-sqlite-analyzer/LICENSE create mode 100644 mingw-w64-sqlite-analyzer/PKGBUILD diff --git a/mingw-w64-sqlite-analyzer/LICENSE b/mingw-w64-sqlite-analyzer/LICENSE new file mode 100644 index 0000000000..6985d5b8b5 --- /dev/null +++ b/mingw-w64-sqlite-analyzer/LICENSE @@ -0,0 +1,25 @@ +All of the code and documentation in SQLite has been dedicated to the public +domain by the authors. All code authors, and representatives of the companies +they work for, have signed affidavits dedicating their contributions to the +public domain and originals of those signed affidavits are stored in a firesafe +at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, +compile, sell, or distribute the original SQLite code, either in source code +form or as a compiled binary, for any purpose, commercial or non-commercial, +and by any means. + +The previous paragraph applies to the deliverable code and documentation in +SQLite - those parts of the SQLite library that you actually bundle and ship +with a larger application. Some scripts used as part of the build process (for +example the "configure" scripts generated by autoconf) might fall under other +open-source licenses. Nothing from these build scripts ever reaches the final +deliverable SQLite library, however, and so the licenses associated with those +scripts should not be a factor in assessing your rights to copy and use the +SQLite library. + +All of the deliverable code in SQLite has been written from scratch. No code has +been taken from other projects or from the open internet. Every line of code can +be traced back to its original author, and all of those authors have public +domain dedications on file. So the SQLite code base is clean and is +uncontaminated with licensed code from other projects. + +Source: http://www.sqlite.org/copyright.html diff --git a/mingw-w64-sqlite-analyzer/PKGBUILD b/mingw-w64-sqlite-analyzer/PKGBUILD new file mode 100644 index 0000000000..3963a4cb47 --- /dev/null +++ b/mingw-w64-sqlite-analyzer/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: David Macek + +_realname=sqlite-analyzer +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.8.8.3 +pkgrel=1 +pkgdesc="An analysis program SQLite database files (mingw-w64)" +url="http://www.sqlite.org/" +arch=('any') +license=(PublicDomain) +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-tcl") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-fossil") +source=("LICENSE") +md5sums=('99ad5d4fba7d423c054b7bc74133253a') + +prepare() { + if [ ! -f sqlite.fossil ]; then + fossil clone http://www.sqlite.org/cgi/src sqlite.fossil + fi + if [ ! -f .fslckout ]; then + fossil open sqlite.fossil + fi + fossil update version-${pkgver} +} + +build() { + mkdir -p "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" + CFLAGS+=" -fexceptions -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_ENABLE_RTREE=1 -fno-strict-aliasing" + ../configure \ + --prefix=${MINGW_PREFIX} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --enable-threadsafe + make sqlite3_analyzer.exe +} + +package() { + cd ${srcdir}/build-${CARCH} + install -Dm755 .libs/sqlite3_analyzer.exe "${pkgdir}${MINGW_PREFIX}/bin/sqlite3_analyzer.exe" + install -Dm644 "${srcdir}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From e85d8fca9ddc8bbeced4fdb0ecbba62fb4e2e9b2 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sun, 15 Mar 2015 21:44:06 +0100 Subject: [PATCH 0675/2060] port-scanner: New package --- mingw-w64-port-scanner/PKGBUILD | 35 ++ mingw-w64-port-scanner/paths.patch | 729 +++++++++++++++++++++++++++++ 2 files changed, 764 insertions(+) create mode 100644 mingw-w64-port-scanner/PKGBUILD create mode 100644 mingw-w64-port-scanner/paths.patch diff --git a/mingw-w64-port-scanner/PKGBUILD b/mingw-w64-port-scanner/PKGBUILD new file mode 100644 index 0000000000..6b14d1bf7f --- /dev/null +++ b/mingw-w64-port-scanner/PKGBUILD @@ -0,0 +1,35 @@ +# Maintainer: David Macek + +_realname=port-scanner +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1.3 +pkgrel=1 +pkgdesc="A multi threaded TCP port scanner from SecPoint.com (mingw-w64)" +arch=('any') +url="https://www.secpoint.com/multi-threaded-tcp-port-scanner.html" +license=('BSD') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +source=("https://www.secpoint.com/freetools/threaded-port-scanner-${pkgver}.zip" + "paths.patch") +md5sums=('e37be464831f874dc1c867fed4fdd680' + 'ee5682884609812aa6aafe3349148372') + +prepare() { + cd "${srcdir}/threaded-port-scanner-${pkgver}" + rm -f pathtools.c pathtools.h + patch -p1 -i "${srcdir}/paths.patch" # also adds -lws2_32 + mkdir -p "${srcdir}/build-${CARCH}" + cp * "${srcdir}/build-${CARCH}" +} + +build() { + cd "${srcdir}/build-${CARCH}" + make +} + +package() { + cd "${srcdir}/build-${CARCH}" + install -Dm755 pscan.exe "${pkgdir}${MINGW_PREFIX}/bin/pscan.exe" + install -Dm644 oui.txt "${pkgdir}${MINGW_PREFIX}/share/port-scanner/oui.txt" + install -Dm644 port-numbers.txt "${pkgdir}${MINGW_PREFIX}/share/port-scanner/port-numbers.txt" +} diff --git a/mingw-w64-port-scanner/paths.patch b/mingw-w64-port-scanner/paths.patch new file mode 100644 index 0000000000..c1ad331c23 --- /dev/null +++ b/mingw-w64-port-scanner/paths.patch @@ -0,0 +1,729 @@ +diff -Naur orig/main.c threaded-port-scanner-1.3/main.c +--- orig/main.c 2011-03-21 16:22:38.000000000 +0100 ++++ threaded-port-scanner-1.3/main.c 2015-03-15 21:38:18.996312400 +0100 +@@ -20,6 +20,8 @@ + #include + #ifdef WIN32 + #include ++#include ++#include "pathtools.h" + #else + #include + #include +@@ -29,11 +31,19 @@ + + extern long int bestPortsArray[]; + ++#define BINDIR "/mingw$$/bin" ++#define DATADIR "/mingw$$/share/port-scanner" ++static char exe_path[PATH_MAX], ++ data_path[PATH_MAX], ++ arp_path[PATH_MAX], ++ oui_path[PATH_MAX], ++ ports_path[PATH_MAX]; ++ + #define SLEEP_TIME_MSEC 5 + #define MAX_PORT_STANDARD 1024 +-#define ARP_TABLE_FILENAME "./arp_table.txt" +-#define OUI_FILENAME "./oui.txt" +-#define PORT_RES_FILENAME "./port-numbers.txt" ++#define ARP_TABLE_FILENAME "arpdump" ++#define OUI_FILENAME "oui.txt" ++#define PORT_RES_FILENAME "port-numbers.txt" + + #define OPTIONS_ALL_PORTS 0x00000001 + #define OPTIONS_RESOLVE_PORTS 0x00000002 +@@ -505,7 +515,7 @@ + void resolve_MAC(char *mac) + { + int i; +- char *p, *b = read_file(OUI_FILENAME); ++ char *p, *b = read_file(oui_path); + mac[8] = 0; + for (i = 0; i < 8; i++) if (mac[i] >= 'a' && mac[i] <= 'f') mac[i] &= 0xDF; + p = strstr(b, mac); +@@ -530,13 +540,13 @@ + strcpy(ips, net_get_aip(IP)); + + #ifdef WIN32 +- sprintf(buff, "arp -a %s > "ARP_TABLE_FILENAME, ips); ++ sprintf(buff, "arp -a %s > %s", ips, arp_path); + #else + sprintf(buff, "arp -a | grep %s | awk '{ print $4 }' > "ARP_TABLE_FILENAME, ips); + #endif + r = system(buff); + +- b = read_file(ARP_TABLE_FILENAME); ++ b = read_file(arp_path); + #ifdef WIN32 + p = strstr(b, ips); + #else +@@ -564,11 +574,7 @@ + } + free(b); + +-#ifdef WIN32 +- system("erase "ARP_TABLE_FILENAME); +-#else +- r = system("rm "ARP_TABLE_FILENAME); +-#endif ++ DeleteFile(arp_path); + } + + int main(int argc, char *argv[]) +@@ -583,9 +589,31 @@ + + parse_arguments(argc, argv); + ++ { // paths ++ get_executable_path(argv[0], exe_path, sizeof(exe_path) / sizeof(exe_path[0])); ++ if (strrchr(exe_path, '/') != NULL) ++ strrchr(exe_path, '/')[1] = '\0'; ++ ++ strcpy(data_path, exe_path); ++ strcat(data_path, get_relative_path(BINDIR, DATADIR)); ++ simplify_path(data_path); ++ ++ strcpy(ports_path, data_path); ++ strcat(ports_path, "/"); ++ strcat(ports_path, PORT_RES_FILENAME); ++ ++ strcpy(oui_path, data_path); ++ strcat(oui_path, "/"); ++ strcat(oui_path, OUI_FILENAME); ++ ++ GetTempPath(PATH_MAX, arp_path); ++ strcat(arp_path, ARP_TABLE_FILENAME); ++ _itoa(_getpid(), &arp_path[strlen(arp_path)], 10); ++ } ++ + print_config(); + +- if (options & OPTIONS_RESOLVE_PORTS) port_res_file = read_file(PORT_RES_FILENAME); ++ if (options & OPTIONS_RESOLVE_PORTS) port_res_file = read_file(ports_path); + scanner(); + if (options & OPTIONS_RESOLVE_PORTS) free(port_res_file); + if (options & OPTIONS_RESOLVE_MAC) print_MAC(); +diff -Naur orig/Makefile threaded-port-scanner-1.3/Makefile +--- orig/Makefile 2011-03-03 15:09:51.000000000 +0100 ++++ threaded-port-scanner-1.3/Makefile 2015-03-15 21:37:31.182078300 +0100 +@@ -1,14 +1,17 @@ + CXX := gcc + CXXFLAGS := -std=gnu99 -O2 -Wall -ggdb + +-OBJECTS := main.o net.o ++OBJECTS := main.o net.o pathtools.o + + pscan: $(OBJECTS) +- $(CXX) $(OBJECTS) -o pscan ++ $(CXX) $(OBJECTS) -lws2_32 -o pscan + +-main.o: main.c ++main.o: main.c pathtools.h + $(CXX) $(INCLUDES) $(CXXFLAGS) -c main.c -o main.o + + net.o: net.c + $(CXX) $(CXXFLAGS) -c net.c -o net.o + ++pathtools.o: pathtools.c pathtools.h ++ $(CXX) $(CXXFLAGS) -c pathtools.c -o pathtools.o ++ +diff -Naur orig/pathtools.c threaded-port-scanner-1.3/pathtools.c +--- orig/pathtools.c 1970-01-01 01:00:00.000000000 +0100 ++++ threaded-port-scanner-1.3/pathtools.c 2015-03-15 21:37:31.182078300 +0100 +@@ -0,0 +1,538 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++#include ++#endif ++#include ++ ++/* If you don't define this, then get_executable_path() ++ can only use argv[0] which will often not work well */ ++#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH ++ ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++/* Nothing needed, unistd.h is enough. */ ++#elif defined(__APPLE__) ++#include ++#elif defined(_WIN32) ++#define WIN32_MEAN_AND_LEAN ++#include ++#include ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ ++#include "pathtools.h" ++ ++char * ++malloc_copy_string(char const * original) ++{ ++ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); ++ if (result != NULL) ++ { ++ strcpy (result, original); ++ } ++ return result; ++} ++ ++void ++sanitise_path(char * path) ++{ ++ size_t path_size = strlen (path); ++ ++ /* Replace any '\' with '/' */ ++ char * path_p = path; ++ while ((path_p = strchr (path_p, '\\')) != NULL) ++ { ++ *path_p = '/'; ++ } ++ /* Replace any '//' with '/' */ ++ path_p = path; ++ while ((path_p = strstr (path_p, "//")) != NULL) ++ { ++ memmove (path_p, path_p + 1, path_size--); ++ } ++ return; ++} ++ ++char * ++get_relative_path(char const * from_in, char const * to_in) ++{ ++ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); ++ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); ++ size_t max_size = (from_size + to_size) * 2 + 4; ++ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); ++ char * from; ++ char * to; ++ char * common_part; ++ char * result; ++ size_t count; ++ ++ /* No to, return "./" */ ++ if (to_in == NULL) ++ { ++ return malloc_copy_string ("./"); ++ } ++ ++ /* If alloca failed or no from was given return a copy of to */ ++ if ( from_in == NULL ++ || scratch_space == NULL ) ++ { ++ return malloc_copy_string (to_in); ++ } ++ ++ from = scratch_space; ++ strcpy (from, from_in); ++ to = from + from_size + 1; ++ strcpy (to, to_in); ++ common_part = to + to_size + 1; ++ result = common_part + max_size; ++ simplify_path (from); ++ simplify_path (to); ++ ++ result[0] = '\0'; ++ ++ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ ++ size_t match_size = 0; /* The running (and final) match size. */ ++ size_t largest_size = (from_size > to_size) ? from_size : to_size; ++ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; ++ char from_c; ++ char to_c; ++ for (match_size = 0; match_size < largest_size; ++match_size) ++ { ++ /* To simplify the logic, always pretend the strings end with '/' */ ++ from_c = (match_size < from_size) ? from[match_size] : '/'; ++ to_c = (match_size < to_size) ? to[match_size] : '/'; ++ ++ if (from_c != to_c) ++ { ++ if (from_c != '\0' || to_c != '\0') ++ { ++ match_size = match_size_dirsep; ++ } ++ break; ++ } ++ else if (from_c == '/') ++ { ++ match_size_dirsep = match_size; ++ } ++ } ++ strncpy (common_part, from, match_size); ++ common_part[match_size] = '\0'; ++ from += match_size; ++ to += match_size; ++ size_t ndotdots = 0; ++ char const* from_last = from + strlen(from) - 1; ++ while ((from = strchr (from, '/')) && from != from_last) ++ { ++ ++ndotdots; ++ ++from; ++ } ++ for (count = 0; count < ndotdots; ++count) ++ { ++ strcat(result, "../"); ++ } ++ if (strlen(to) > 0) ++ { ++ strcat(result, to+1); ++ } ++ /* Make sure that if to ends with '/' result does the same, and ++ vice-versa. */ ++ size_t size_result = strlen(result); ++ if ((to_final_is_slash == 1) ++ && (!size_result || result[size_result-1] != '/')) ++ { ++ strcat (result, "/"); ++ } ++ else if (!to_final_is_slash ++ && size_result && result[size_result-1] == '/') ++ { ++ result[size_result-1] = '\0'; ++ } ++ ++ return malloc_copy_string (result); ++} ++ ++void ++simplify_path(char * path) ++{ ++ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ ++ ssize_t i, j; ++ size_t tok_size; ++ size_t in_size = strlen (path); ++ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; ++ char * result = path; ++ sanitise_path(result); ++ char * result_p = result; ++ ++ do ++ { ++ ++n_toks; ++ ++result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ result_p = result; ++ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); ++ n_toks = 0; ++ do ++ { ++ if (result_p > result) ++ { ++ *result_p++ = '\0'; ++ } ++ else if (*result_p == '/') ++ { ++ /* A leading / creates an empty initial token. */ ++ toks[n_toks++] = result_p; ++ *result_p++ = '\0'; ++ } ++ toks[n_toks++] = result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ /* Remove all non-leading '.' and any '..' we can match ++ with an earlier forward path (i.e. neither '.' nor '..') */ ++ for (i = 1; i < n_toks; ++i) ++ { ++ int removals[2] = { -1, -1 }; ++ if ( strcmp (toks[i], "." ) == 0) ++ { ++ removals[0] = i; ++ } ++ else if ( strcmp (toks[i], ".." ) == 0) ++ { ++ /* Search backwards for a forward path to collapse. ++ If none are found then the .. also stays. */ ++ for (j = i - 1; j > -1; --j) ++ { ++ if ( strcmp (toks[j], "." ) ++ && strcmp (toks[j], ".." ) ) ++ { ++ removals[0] = j; ++ removals[1] = i; ++ break; ++ } ++ } ++ } ++ for (j = 0; j < 2; ++j) ++ { ++ if (removals[j] >= 0) /* Can become -2 */ ++ { ++ --n_toks; ++ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); ++ --i; ++ if (!j) ++ { ++ --removals[1]; ++ } ++ } ++ } ++ } ++ result_p = result; ++ for (i = 0; i < n_toks; ++i) ++ { ++ tok_size = strlen(toks[i]); ++ memcpy (result_p, toks[i], tok_size); ++ result_p += tok_size; ++ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) ++ { ++ *result_p = '/'; ++ ++result_p; ++ } ++ } ++ *result_p = '\0'; ++} ++ ++/* Returns actual_to by calculating the relative path from -> to and ++ applying that to actual_from. An assumption that actual_from is a ++ dir is made, and it may or may not end with a '/' */ ++char const * ++get_relocated_path (char const * from, char const * to, char const * actual_from) ++{ ++ char const * relative_from_to = get_relative_path (from, to); ++ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); ++ return actual_to; ++} ++ ++int ++get_executable_path(char const * argv0, char * result, ssize_t max_size) ++{ ++ char * system_result = (char *) alloca (max_size); ++ ssize_t system_result_size = -1; ++ ssize_t result_size = -1; ++ ++ if (system_result != NULL) ++ { ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++ system_result_size = readlink("/proc/self/exe", system_result, max_size); ++#elif defined(__APPLE__) ++ uint32_t bufsize = (uint32_t)max_size; ++ if (_NSGetExecutablePath(system_result, &bufsize) == 0) ++ { ++ system_result_size = (ssize_t)bufsize; ++ } ++#elif defined(_WIN32) ++ unsigned long bufsize = (unsigned long)max_size; ++ system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); ++ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) ++ { ++ /* Error, possibly not enough space. */ ++ system_result_size = -1; ++ } ++ else ++ { ++ /* Early conversion to unix slashes instead of more changes ++ everywhere else .. */ ++ char * winslash; ++ system_result[system_result_size] = '\0'; ++ while ((winslash = strchr (system_result, '\\')) != NULL) ++ { ++ *winslash = '/'; ++ } ++ } ++#else ++#warning "Don't know how to get executable path on this system" ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ } ++ /* Use argv0 as a default in-case of failure */ ++ if (system_result_size != -1) ++ { ++ strncpy (result, system_result, system_result_size); ++ result[system_result_size] = '\0'; ++ } ++ else ++ { ++ if (argv0 != NULL) ++ { ++ strncpy (result, argv0, max_size); ++ result[max_size-1] = '\0'; ++ } ++ else ++ { ++ result[0] = '\0'; ++ } ++ } ++ result_size = strlen (result); ++ return result_size; ++} ++ ++char const * ++strip_n_prefix_folders(char const * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return NULL; ++ } ++ ++ if (path[0] != '/') ++ { ++ return path; ++ } ++ ++ char const * last = path; ++ while (n-- && path != NULL) ++ { ++ last = path; ++ path = strchr (path + 1, '/'); ++ } ++ return (path == NULL) ? last : path; ++} ++ ++void ++strip_n_suffix_folders(char * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return; ++ } ++ while (n--) ++ { ++ if (strrchr (path + 1, '/')) ++ { ++ *strrchr (path + 1, '/') = '\0'; ++ } ++ else ++ { ++ return; ++ } ++ } ++ return; ++} ++ ++size_t ++split_path_list(char const * path_list, char split_char, char *** arr) ++{ ++ size_t path_count; ++ size_t path_list_size; ++ char const * path_list_p; ++ ++ path_list_p = path_list; ++ if (path_list == NULL || path_list[0] == '\0') ++ { ++ return 0; ++ } ++ path_list_size = strlen (path_list); ++ ++ path_count = 0; ++ do ++ { ++ ++path_count; ++ ++path_list_p; ++ } ++ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); ++ ++ /* allocate everything in one go. */ ++ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); ++ if (all_memory == NULL) ++ return 0; ++ *arr = (char **)all_memory; ++ all_memory += sizeof (char *) * path_count; ++ ++ path_count = 0; ++ path_list_p = path_list; ++ char const * next_path_list_p = 0; ++ do ++ { ++ next_path_list_p = strchr (path_list_p, split_char); ++ if (next_path_list_p != NULL) ++ { ++ ++next_path_list_p; ++ } ++ size_t this_size = (next_path_list_p != NULL) ++ ? next_path_list_p - path_list_p - 1 ++ : &path_list[path_list_size] - path_list_p; ++ memcpy (all_memory, path_list_p, this_size); ++ all_memory[this_size] = '\0'; ++ (*arr)[path_count++] = all_memory; ++ all_memory += this_size + 1; ++ } while ((path_list_p = next_path_list_p) != NULL); ++ ++ return path_count; ++} ++ ++char * ++get_relocated_path_list(char const * from, char const * to_path_list) ++{ ++ char exe_path[MAX_PATH]; ++ char * temp; ++ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ if ((temp = strrchr (exe_path, '/')) != NULL) ++ { ++ temp[1] = '\0'; ++ } ++ ++ char **arr = NULL; ++ /* Ask Alexey why he added this. Are we not 100% sure ++ that we're dealing with unix paths here? */ ++ char split_char = ':'; ++ if (strchr (to_path_list, ';')) ++ { ++ split_char = ';'; ++ } ++ size_t count = split_path_list (to_path_list, split_char, &arr); ++ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ ++ size_t exe_path_size = strlen (exe_path); ++ size_t i; ++ /* Space required is: ++ count * (exe_path_size + strlen (rel_to_datadir)) ++ rel_to_datadir upper bound is: ++ (count * strlen (from)) + (3 * num_slashes (from)) ++ + strlen(arr[i]) + 1. ++ .. pathalogically num_slashes (from) is strlen (from) ++ (from = ////////) */ ++ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; ++ for (i = 0; i < count; ++i) ++ { ++ space_required += strlen (arr[i]); ++ } ++ char * scratch = (char *) alloca (space_required); ++ if (scratch == NULL) ++ return NULL; ++ for (i = 0; i < count; ++i) ++ { ++ char * rel_to_datadir = get_relative_path (from, arr[i]); ++ scratch[0] = '\0'; ++ arr[i] = scratch; ++ strcat (scratch, exe_path); ++ strcat (scratch, rel_to_datadir); ++ simplify_path (arr[i]); ++ size_t arr_i_size = strlen (arr[i]); ++ result_size += arr_i_size; ++ scratch = arr[i] + arr_i_size + 1; ++ } ++ char * result = (char *) malloc (result_size); ++ if (result == NULL) ++ { ++ return NULL; ++ } ++ result[0] = '\0'; ++ for (i = 0; i < count; ++i) ++ { ++ strcat (result, arr[i]); ++ if (i != count-1) ++ { ++#if defined(_WIN32) ++ strcat (result, ";"); ++#else ++ strcat (result, ":"); ++#endif ++ } ++ } ++ free ((void*)arr); ++ return result; ++} ++ ++char * ++single_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} +diff -Naur orig/pathtools.h threaded-port-scanner-1.3/pathtools.h +--- orig/pathtools.h 1970-01-01 01:00:00.000000000 +0100 ++++ threaded-port-scanner-1.3/pathtools.h 2015-03-15 21:37:31.182078300 +0100 +@@ -0,0 +1,53 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#ifndef PATHTOOLS_H ++#define PATHTOOLS_H ++ ++#include ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++ ++char * malloc_copy_string(char const * original); ++ ++/* In-place replaces any '\' with '/' and any '//' with '/' */ ++void sanitise_path(char * path); ++ ++/* Uses a host OS specific function to determine the path of the executable, ++ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ ++int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ ++/* Where possible, in-place removes occourances of '.' and 'path/..' */ ++void simplify_path(char * path); ++ ++/* Allocates (via malloc) and returns the path to get from from to to. */ ++char * get_relative_path(char const * from, char const * to); ++ ++size_t split_path_list(char const * path_list, char split_char, char *** arr); ++ ++/* Advances path along by the amount that removes n prefix folders. */ ++char const * ++strip_n_prefix_folders(char const * path, size_t n); ++ ++/* NULL terminates path to remove n suffix folders. */ ++void ++strip_n_suffix_folders(char * path, size_t n); ++ ++char const * get_relocated_path (char const * from, char const * to, char const * actual_from); ++char * get_relocated_path_list(char const * from, char const * to_path_list); ++ ++char * single_path_relocation(const char *from, const char *to); ++char * pathlist_relocation(const char *from_path, const char *to_path_list); ++ ++#endif /* PATHTOOLS_H */ From b6d8e59e509f79d99b6af70219572fea16641530 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 16 Mar 2015 15:32:01 +0300 Subject: [PATCH 0676/2060] db: Build with unicode support. --- mingw-w64-db/PKGBUILD | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mingw-w64-db/PKGBUILD b/mingw-w64-db/PKGBUILD index ad96230424..082fef2157 100644 --- a/mingw-w64-db/PKGBUILD +++ b/mingw-w64-db/PKGBUILD @@ -4,7 +4,7 @@ _realname=db pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=6.0.19 -pkgrel=1 +pkgrel=2 pkgdesc="The Berkeley DB embedded database system (mingw-w64)" arch=('any') url="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" @@ -24,6 +24,9 @@ prepare() } build() { + CFLAGS+=" -DUNICODE -D_UNICODE" + CXXFLAGS+=" -DUNICODE -D_UNICODE" + [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} ../${_realname}-${pkgver}/dist/configure \ --build=${MINGW_CHOST} \ @@ -43,6 +46,7 @@ build() { --disable-tcl \ --disable-replication \ --docdir='${prefix}/share/doc/db' + make LIBSO_LIBS=-lpthread } From 309a48021c83a2a5ec6928cd2b24769edb2aaea5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 16 Mar 2015 16:06:13 +0300 Subject: [PATCH 0677/2060] mesa: Update to 10.5.1 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 0053eb7831..cea31bebdc 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,7 +2,7 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.5.0 +pkgver=10.5.1 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('133c5264a0c81d23168a65435ad23ede' +md5sums=('203dba1fb6b503802fa6625181b26d31' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From c40c165d61c0392da729a82edc8939e4a54cfe15 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 17 Mar 2015 00:46:38 +0000 Subject: [PATCH 0678/2060] python3: Fixes for os.sep changes. Moved 0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch to 0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch so that 0560 can use the new functions it provides (Py_GetSep{A,W}, Py_NormalizeSeps{A,W}) Starting to wonder if these changes aren't too invasive overall, but in for a penny in for a pound. --- ...ys-mingw-prefer-unix-sep-if-MSYSTEM.patch} | 161 ++++++++++++++++-- .../0560-mingw-use-posix-getpath.patch | 105 +++--------- ...mingw-add-ModuleFileName-dir-to-PATH.patch | 14 +- ...s-cygwin-semi-native-build-sysconfig.patch | 2 +- mingw-w64-python3/PKGBUILD | 16 +- 5 files changed, 189 insertions(+), 109 deletions(-) rename mingw-w64-python3/{0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch => 0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch} (50%) diff --git a/mingw-w64-python3/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch b/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch similarity index 50% rename from mingw-w64-python3/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch rename to mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch index ef46a6abc5..7f639a313f 100644 --- a/mingw-w64-python3/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch +++ b/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch @@ -1,10 +1,13 @@ diff -urN Python-3.4.3.orig/Include/pythonrun.h Python-3.4.3/Include/pythonrun.h ---- Python-3.4.3.orig/Include/pythonrun.h 2015-03-09 19:25:39.911000000 +0000 -+++ Python-3.4.3/Include/pythonrun.h 2015-03-09 20:48:19.093996600 +0000 -@@ -22,6 +22,9 @@ +--- Python-3.4.3.orig/Include/pythonrun.h 2015-03-16 22:56:30.069069500 +0000 ++++ Python-3.4.3/Include/pythonrun.h 2015-03-16 22:56:42.100091200 +0000 +@@ -22,6 +22,12 @@ } PyCompilerFlags; #endif ++PyAPI_FUNC(wchar_t) Py_GetSepW(wchar_t *); ++PyAPI_FUNC(char) Py_GetSepA(char *); ++ +PyAPI_FUNC(void) Py_NormalizeSepsW(wchar_t *); +PyAPI_FUNC(void) Py_NormalizeSepsA(char *); + @@ -12,8 +15,8 @@ diff -urN Python-3.4.3.orig/Include/pythonrun.h Python-3.4.3/Include/pythonrun.h PyAPI_FUNC(wchar_t *) Py_GetProgramName(void); diff -urN Python-3.4.3.orig/Lib/ntpath.py Python-3.4.3/Lib/ntpath.py ---- Python-3.4.3.orig/Lib/ntpath.py 2015-03-09 19:26:05.869000000 +0000 -+++ Python-3.4.3/Lib/ntpath.py 2015-03-09 17:57:36.932182800 +0000 +--- Python-3.4.3.orig/Lib/ntpath.py 2015-03-16 22:56:41.117289500 +0000 ++++ Python-3.4.3/Lib/ntpath.py 2015-03-16 22:56:42.100091200 +0000 @@ -24,9 +24,13 @@ curdir = '.' pardir = '..' @@ -58,9 +61,109 @@ diff -urN Python-3.4.3.orig/Lib/ntpath.py Python-3.4.3/Lib/ntpath.py def _get_dot(path): if isinstance(path, bytes): +diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c +--- Python-3.4.3.orig/Modules/getpath.c 2015-03-16 22:56:29.959869300 +0000 ++++ Python-3.4.3/Modules/getpath.c 2015-03-16 22:58:57.393731900 +0000 +@@ -135,7 +135,7 @@ + reduce(wchar_t *dir) + { + size_t i = wcslen(dir); +- while (i > 0 && dir[i] != SEP) ++ while (i > 0 && dir[i] != Py_GetSepW(dir)) + --i; + dir[i] = '\0'; + } +@@ -207,12 +207,12 @@ + joinpath(wchar_t *buffer, wchar_t *stuff) + { + size_t n, k; +- if (stuff[0] == SEP) ++ if (stuff[0] == Py_GetSepW(buffer)) + n = 0; + else { + n = wcslen(buffer); +- if (n > 0 && buffer[n-1] != SEP && n < MAXPATHLEN) +- buffer[n++] = SEP; ++ if (n > 0 && buffer[n-1] != Py_GetSepW(buffer) && n < MAXPATHLEN) ++ buffer[n++] = Py_GetSepW(buffer); + } + if (n > MAXPATHLEN) + Py_FatalError("buffer overflow in getpath.c's joinpath()"); +@@ -228,7 +228,7 @@ + static void + copy_absolute(wchar_t *path, wchar_t *p, size_t pathlen) + { +- if (p[0] == SEP) ++ if (p[0] == Py_GetSepW(p) || (p[0] != 0 && p[1] == L':')) + wcscpy(path, p); + else { + if (!_Py_wgetcwd(path, pathlen)) { +@@ -236,7 +236,7 @@ + wcscpy(path, p); + return; + } +- if (p[0] == '.' && p[1] == SEP) ++ if (p[0] == '.' && p[1] == Py_GetSepW(path)) + p += 2; + joinpath(path, p); + } +@@ -248,7 +248,7 @@ + { + wchar_t buffer[MAXPATHLEN+1]; + +- if (path[0] == SEP) ++ if (path[0] == Py_GetSepW(path)) + return; + copy_absolute(buffer, path, MAXPATHLEN+1); + wcscpy(path, buffer); +@@ -461,7 +461,7 @@ + extern wchar_t *Py_GetProgramName(void); + + static wchar_t delimiter[2] = {DELIM, '\0'}; +- static wchar_t separator[2] = {SEP, '\0'}; ++ wchar_t separator[2] = {Py_GetSepW(NULL), '\0'}; + char *_rtpypath = Py_GETENV("PYTHONPATH"); /* XXX use wide version on Windows */ + wchar_t *rtpypath = NULL; + wchar_t *home = Py_GetPythonHome(); +@@ -512,7 +512,7 @@ + * other way to find a directory to start the search from. If + * $PATH isn't exported, you lose. + */ +- if (wcschr(prog, SEP)) ++ if (wcschr(prog, Py_GetSepW(prog))) + wcsncpy(progpath, prog, MAXPATHLEN); + #ifdef __APPLE__ + /* On Mac OS X, if a script uses an interpreter of the form +@@ -561,7 +561,7 @@ + else + progpath[0] = '\0'; + PyMem_RawFree(path_buffer); +- if (progpath[0] != SEP && progpath[0] != '\0') ++ if (progpath[0] != separator[0] && progpath[0] != '\0' && progpath[1] != L':' ) + absolutize(progpath); + wcsncpy(argv0_path, progpath, MAXPATHLEN); + argv0_path[MAXPATHLEN] = '\0'; +@@ -719,7 +719,7 @@ + while (1) { + wchar_t *delim = wcschr(defpath, DELIM); + +- if (defpath[0] != SEP) ++ if (defpath[0] != separator[0] && defpath[0] != '\0' && defpath[1] != L':') + /* Paths are relative to prefix */ + bufsz += prefixsz; + +@@ -760,7 +760,7 @@ + while (1) { + wchar_t *delim = wcschr(defpath, DELIM); + +- if (defpath[0] != SEP) { ++ if (defpath[0] != separator[0] && defpath[0] != '\0' && defpath[1] != L':') { + wcscat(buf, prefix); + wcscat(buf, separator); + } diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodule.c ---- Python-3.4.3.orig/Modules/posixmodule.c 2015-03-09 19:25:39.179000000 +0000 -+++ Python-3.4.3/Modules/posixmodule.c 2015-03-09 20:56:03.480148100 +0000 +--- Python-3.4.3.orig/Modules/posixmodule.c 2015-03-16 22:56:29.928669200 +0000 ++++ Python-3.4.3/Modules/posixmodule.c 2015-03-16 22:56:42.100091200 +0000 @@ -3474,6 +3474,7 @@ PyMem_RawFree(wbuf2); return PyErr_SetFromWindowsErr(0); @@ -97,9 +200,9 @@ diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodu result = PyUnicode_FromWideChar(target_path, result_length); PyMem_Free(target_path); diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c ---- Python-3.4.3.orig/Python/pythonrun.c 2015-03-09 19:26:05.877000000 +0000 -+++ Python-3.4.3/Python/pythonrun.c 2015-03-09 20:57:32.059005100 +0000 -@@ -870,17 +870,118 @@ +--- Python-3.4.3.orig/Python/pythonrun.c 2015-03-16 22:56:30.724270600 +0000 ++++ Python-3.4.3/Python/pythonrun.c 2015-03-16 22:56:42.115691300 +0000 +@@ -871,17 +871,124 @@ PyInterpreterState_Delete(interp); } @@ -113,7 +216,7 @@ diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c +static wchar_t progname[PATH_MAX+1] = L"python3"; +#endif + -+static wchar_t ++wchar_t +Py_GetSepW(wchar_t *name) +{ + char* msystem = NULL; @@ -123,7 +226,7 @@ diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c + * The "\\?\" prefix .. indicate that the path should be passed to the system with minimal + * modification, which means that you cannot use forward slashes to represent path separators + */ -+ if (memcmp(name, L"\\\\?\\", sizeof(L"\\\\?\\") - sizeof(wchar_t)) == 0) ++ if (name != NULL && memcmp(name, L"\\\\?\\", sizeof(L"\\\\?\\") - sizeof(wchar_t)) == 0) + { + return L'\\'; + } @@ -149,7 +252,7 @@ diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c + return L'/'; +} + -+static char ++char +Py_GetSepA(char *name) +{ + char* msystem = NULL; @@ -159,7 +262,7 @@ diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c + * The "\\?\" prefix .. indicate that the path should be passed to the system with minimal + * modification, which means that you cannot use forward slashes to represent path separators + */ -+ if (memcmp(name, "\\\\?\\", sizeof("\\\\?\\") - sizeof(char)) == 0) ++ if (name != NULL && memcmp(name, "\\\\?\\", sizeof("\\\\?\\") - sizeof(char)) == 0) + { + return '\\'; + } @@ -191,6 +294,9 @@ diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c + wchar_t sep = Py_GetSepW(name); + wchar_t altsep = Py_GetAltSepW(name); + wchar_t* seps; ++ if (wcslen(name) > 1 && name[1] == L':') { ++ name[0] = towupper(name[0]); ++ } + seps = wcschr(name, altsep); + while(seps) { + *seps = sep; @@ -204,6 +310,9 @@ diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c + char sep = Py_GetSepA(name); + char altsep = Py_GetAltSepA(name); + char* seps; ++ if (strlen(name) > 1 && name[1] == ':') { ++ name[0] = toupper(name[0]); ++ } + seps = strchr(name, altsep); + while(seps) { + *seps = sep; @@ -222,3 +331,27 @@ diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c } wchar_t * +diff -urN Python-3.4.3.orig/Python/sysmodule.c Python-3.4.3/Python/sysmodule.c +--- Python-3.4.3.orig/Python/sysmodule.c 2015-03-16 22:56:30.724270600 +0000 ++++ Python-3.4.3/Python/sysmodule.c 2015-03-16 22:56:42.115691300 +0000 +@@ -1983,7 +1983,7 @@ + argv0 = fullpath; + } + #endif +- p = wcsrchr(argv0, SEP); ++ p = wcsrchr(argv0, Py_GetSepW(argv0)); + } + if (p != NULL) { + n = p + 1 - argv0; +diff -urN Python-3.4.3.orig/Python/traceback.c Python-3.4.3/Python/traceback.c +--- Python-3.4.3.orig/Python/traceback.c 2015-03-16 22:56:30.693070600 +0000 ++++ Python-3.4.3/Python/traceback.c 2015-03-16 22:56:42.115691300 +0000 +@@ -199,7 +199,7 @@ + filepath = PyBytes_AS_STRING(filebytes); + + /* Search tail of filename in sys.path before giving up */ +- tail = strrchr(filepath, SEP); ++ tail = strrchr(filepath, Py_GetSepW(filepath)); + if (tail == NULL) + tail = filepath; + else diff --git a/mingw-w64-python3/0560-mingw-use-posix-getpath.patch b/mingw-w64-python3/0560-mingw-use-posix-getpath.patch index 091fa4badd..298053d7ad 100644 --- a/mingw-w64-python3/0560-mingw-use-posix-getpath.patch +++ b/mingw-w64-python3/0560-mingw-use-posix-getpath.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:21:34.252124800 +0100 -+++ b/configure.ac 2014-10-11 14:21:37.003282200 +0100 -@@ -5031,7 +5031,7 @@ +diff -urN Python-3.4.3.orig/configure.ac Python-3.4.3/configure.ac +--- Python-3.4.3.orig/configure.ac 2015-03-10 19:54:16.269472000 +0000 ++++ Python-3.4.3/configure.ac 2015-03-10 19:54:18.129848200 +0000 +@@ -5016,7 +5016,7 @@ case $host in *-*-mingw*) dnl default sys.path calculations for windows platforms @@ -10,9 +10,9 @@ diff -urN a/configure.ac b/configure.ac ;; esac -diff -urN a/Include/fileutils.h b/Include/fileutils.h ---- a/Include/fileutils.h 2014-10-11 14:21:35.290184200 +0100 -+++ b/Include/fileutils.h 2014-10-11 14:21:37.005282300 +0100 +diff -urN Python-3.4.3.orig/Include/fileutils.h Python-3.4.3/Include/fileutils.h +--- Python-3.4.3.orig/Include/fileutils.h 2015-03-10 19:54:16.551268400 +0000 ++++ Python-3.4.3/Include/fileutils.h 2015-03-10 19:54:18.129848200 +0000 @@ -15,7 +15,7 @@ const wchar_t *text, size_t *error_pos); @@ -22,9 +22,9 @@ diff -urN a/Include/fileutils.h b/Include/fileutils.h PyAPI_FUNC(int) _Py_wstat( const wchar_t* path, struct stat *buf); -diff -urN a/Modules/getpath.c b/Modules/getpath.c ---- a/Modules/getpath.c 2014-10-11 14:21:35.080172200 +0100 -+++ b/Modules/getpath.c 2014-10-11 14:21:37.006282300 +0100 +diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c +--- Python-3.4.3.orig/Modules/getpath.c 2015-03-10 19:54:17.192860200 +0000 ++++ Python-3.4.3/Modules/getpath.c 2015-03-10 20:00:49.860494500 +0000 @@ -10,6 +10,10 @@ #include #endif @@ -63,43 +63,7 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c } static int -@@ -207,7 +219,11 @@ - joinpath(wchar_t *buffer, wchar_t *stuff) - { - size_t n, k; -+#ifdef MS_WINDOWS -+ if (stuff[0] == SEP || (stuff[0] != 0 && stuff[1] == L':')) -+#else - if (stuff[0] == SEP) -+#endif - n = 0; - else { - n = wcslen(buffer); -@@ -228,7 +244,11 @@ - static void - copy_absolute(wchar_t *path, wchar_t *p, size_t pathlen) - { -+#ifdef MS_WINDOWS -+ if (p[0] == SEP || (p[0] != 0 && p[1] == L':')) -+#else - if (p[0] == SEP) -+#endif - wcscpy(path, p); - else { - if (!_Py_wgetcwd(path, pathlen)) { -@@ -248,7 +268,11 @@ - { - wchar_t buffer[MAXPATHLEN+1]; - -+#ifdef MS_WINDOWS -+ if (path[0] == SEP || (path[0] != 0 && path[1] == L':')) -+#else - if (path[0] == SEP) -+#endif - return; - copy_absolute(buffer, path, MAXPATHLEN+1); - wcscpy(path, buffer); -@@ -455,6 +479,35 @@ +@@ -455,6 +479,26 @@ return 0; } @@ -108,23 +72,14 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c +int GetWindowsModulePaths() +{ + int result = 0; -+ wchar_t* seps; + result = GetModuleFileNameW(NULL, progpath, MAXPATHLEN); -+ seps = wcschr(progpath, L'\\'); -+ while(seps) { -+ *seps = L'/'; -+ seps = wcschr(seps, L'\\'); -+ } ++ Py_NormalizeSepsW(progpath); + dllpath[0] = 0; +#ifdef Py_ENABLE_SHARED + if (PyWin_DLLhModule) { + if((GetModuleFileNameW(PyWin_DLLhModule, dllpath, MAXPATHLEN) > 0)) { + result = 1; -+ seps = wcschr(dllpath, L'\\'); -+ while(seps) { -+ *seps = L'/'; -+ seps = wcschr(seps, L'\\'); -+ } ++ Py_NormalizeSepsW(dllpath); + } + } +#endif @@ -135,7 +90,7 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c static void calculate_path(void) { -@@ -533,6 +586,10 @@ +@@ -533,6 +577,10 @@ } } #endif /* __APPLE__ */ @@ -146,19 +101,7 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c else if (path) { while (1) { wchar_t *delim = wcschr(path, DELIM); -@@ -561,7 +618,11 @@ - else - progpath[0] = '\0'; - PyMem_RawFree(path_buffer); -+#ifdef MS_WINDOWS -+ if (progpath[0] != '\0' && progpath[0] != SEP && progpath[1] != L':') -+#else - if (progpath[0] != SEP && progpath[0] != '\0') -+#endif - absolutize(progpath); - wcsncpy(argv0_path, progpath, MAXPATHLEN); - argv0_path[MAXPATHLEN] = '\0'; -@@ -871,7 +932,43 @@ +@@ -871,7 +923,45 @@ } @@ -184,10 +127,12 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c + /* If there is a python3.dll next to the python3y.dll, + assume this is a build tree; use that DLL */ + wcscpy(py3path, dllpath); -+ s = wcsrchr(py3path, L'\\'); ++ s = wcsrchr(py3path, Py_GetSepW(py3path)); + if (!s) + s = py3path; -+ wcscpy(s, L"\\python3.dll"); ++ else ++ s += 1; ++ wcscpy(s, L"python3.dll"); + hPython3 = LoadLibraryExW(py3path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); + if (hPython3 != NULL) + return 1; @@ -203,10 +148,10 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c +#ifdef __cplusplus +} +#endif -diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c ---- a/Modules/posixmodule.c 2014-10-11 14:21:35.095173000 +0100 -+++ b/Modules/posixmodule.c 2014-10-11 14:21:37.010282600 +0100 -@@ -1019,7 +1019,7 @@ +diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodule.c +--- Python-3.4.3.orig/Modules/posixmodule.c 2015-03-10 19:54:17.083661600 +0000 ++++ Python-3.4.3/Modules/posixmodule.c 2015-03-10 19:54:18.145448000 +0000 +@@ -1042,7 +1042,7 @@ } /* A helper used by a number of POSIX-only functions */ @@ -215,7 +160,7 @@ diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c static int _parse_off_t(PyObject* arg, void* addr) { -@@ -3689,7 +3689,7 @@ +@@ -3710,7 +3710,7 @@ Py_END_ALLOW_THREADS /* FindNextFile sets error to ERROR_NO_MORE_FILES if it got to the end of the directory. */ @@ -224,7 +169,7 @@ diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c Py_DECREF(list); list = path_error(path); goto exit; -@@ -3744,7 +3744,7 @@ +@@ -3765,7 +3765,7 @@ Py_END_ALLOW_THREADS /* FindNextFile sets error to ERROR_NO_MORE_FILES if it got to the end of the directory. */ diff --git a/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch b/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch index 7e44981da9..1b1054699d 100644 --- a/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch +++ b/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch @@ -15,18 +15,18 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c + new_path = (wchar_t *)alloca(sizeof(wchar_t)*(wcslen(L"PATH=")+wcslen(module_path)+1+wcslen(path_buffer)+1)); + if (new_path) { + wchar_t *slashes, *end; -+ wcscpy( new_path, L"PATH=" ); -+ wcscat( new_path, module_path ); -+ slashes = wcschr( new_path, L'/' ); ++ wcscpy(new_path, L"PATH="); ++ wcscat(new_path, module_path); ++ slashes = wcschr(new_path, L'/'); + while (slashes) { -+ *slashes = '\\'; ++ *slashes = L'\\'; + slashes = wcschr( slashes+1, L'/' ); + } -+ end = wcsrchr(new_path, L'\\') ? wcsrchr(new_path, L'\\') : new_path + wcslen(new_path); ++ end = wcsrchr(new_path, Py_GetSepW(NULL)) ? wcsrchr(new_path, Py_GetSepW(NULL)) : new_path + wcslen(new_path); + end[0] = L';'; + end[1] = L'\0'; -+ wcscat( new_path, path_buffer ); -+ _wputenv( new_path ); ++ wcscat(new_path, path_buffer); ++ _wputenv(new_path); + PyMem_RawFree(path_buffer); + } + } diff --git a/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch b/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch index 1c906500b2..a20aef3750 100644 --- a/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch +++ b/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch @@ -107,7 +107,7 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in -DEXEC_PREFIX='"$(exec_prefix)"' \ -DVERSION='"$(VERSION)"' \ - -DVPATH='"$(VPATH)"' \ -+ -DVPATH='"$(VPATH_b2h)"' \ ++ -DVPATH='"$(VPATH)"' \ -o $@ $(srcdir)/Modules/getpath.c # default sys.path calculations for windows platforms diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 30d93e2fff..d6906abde1 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -17,7 +17,7 @@ _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.4 pkgver=${_pybasever}.3 -pkgrel=2 +pkgrel=3 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -83,10 +83,10 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0530-mingw-system-libffi.patch 0540-mingw-semicolon-DELIM.patch 0550-mingw-regen-use-stddef_h.patch + 0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch 0560-mingw-use-posix-getpath.patch 0565-mingw-add-ModuleFileName-dir-to-PATH.patch 0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch - 0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch 0610-msys-cygwin-semi-native-build-sysconfig.patch 0620-mingw-sysconfig-like-posix.patch 0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch @@ -181,10 +181,12 @@ prepare() { patch -Np1 -i "${srcdir}"/0530-mingw-system-libffi.patch patch -Np1 -i "${srcdir}"/0540-mingw-semicolon-DELIM.patch patch -Np1 -i "${srcdir}"/0550-mingw-regen-use-stddef_h.patch + patch -Np1 -i "${srcdir}"/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch patch -Np1 -i "${srcdir}"/0560-mingw-use-posix-getpath.patch patch -Np1 -i "${srcdir}"/0565-mingw-add-ModuleFileName-dir-to-PATH.patch patch -Np1 -i "${srcdir}"/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch - patch -Np1 -i "${srcdir}"/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch + # 0610- changed to not using -DVPATH='"$(VPATH_b2h)"' anymore since VPATH is + # relative, therefore getpath.c:355: joinpath(prefix, vpath) works naturally patch -Np1 -i "${srcdir}"/0610-msys-cygwin-semi-native-build-sysconfig.patch patch -Np1 -i "${srcdir}"/0620-mingw-sysconfig-like-posix.patch patch -Np1 -i "${srcdir}"/0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch @@ -406,11 +408,11 @@ sha1sums=('7ca5cd664598bea96eec105aa6453223bb6b4456' 'cdb77d00db2061c5e44a31876c5efb8db7c65a76' '02652e5775dfa3966a09349169bc8c86d5e9a980' '2b81ea5b3f8f06c0ab0df9306ec57dab8410778c' - '1892bb2df631f49485deae5a1ee8dbae5691beeb' - '08dfc0c0acd942901011cb9e1fd7a65a6f872771' + '424b57ada4e0b6977e812a6e74ffd63058c3cb06' + '0f096226937aae88bf38369bd5f8ff3134a82bb0' + 'b06b6cd0f1488e473bfb7fc1147cd64f4e9b560b' '2f72a9036599de2ca02e5de1316d7b1771cada08' - '4f37fd679e4521414b86902e100238b07577925e' - '567d42d169dea66c32601a78f1953bf39f8bb7d2' + 'af2d97c195c27fa0c3f4e32ec7bad6747e7d94cc' '3d48fcf13644952c0bb2a68b834339f5174a9b4c' '70390a1be147a4a1b3d40a6935fdd4396e586c06' '48ab620460a7de37871b74ba3bab59a7bc791802' From ab5ef8754d1608c3128e798824a7496874a615d7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 17 Mar 2015 15:28:13 +0000 Subject: [PATCH 0679/2060] python3: Fix for when os.sep is \ sys.prefix was one folder too shallow due to a reduce() vs lib/python?? disagreement. --- ...sys-mingw-prefer-unix-sep-if-MSYSTEM.patch | 50 ++++++++++++------- mingw-w64-python3/PKGBUILD | 2 +- 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch b/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch index 7f639a313f..1feab25cbe 100644 --- a/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch +++ b/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch @@ -1,6 +1,6 @@ diff -urN Python-3.4.3.orig/Include/pythonrun.h Python-3.4.3/Include/pythonrun.h ---- Python-3.4.3.orig/Include/pythonrun.h 2015-03-16 22:56:30.069069500 +0000 -+++ Python-3.4.3/Include/pythonrun.h 2015-03-16 22:56:42.100091200 +0000 +--- Python-3.4.3.orig/Include/pythonrun.h 2015-03-17 14:11:48.550537200 +0000 ++++ Python-3.4.3/Include/pythonrun.h 2015-03-17 14:11:49.728537200 +0000 @@ -22,6 +22,12 @@ } PyCompilerFlags; #endif @@ -15,8 +15,8 @@ diff -urN Python-3.4.3.orig/Include/pythonrun.h Python-3.4.3/Include/pythonrun.h PyAPI_FUNC(wchar_t *) Py_GetProgramName(void); diff -urN Python-3.4.3.orig/Lib/ntpath.py Python-3.4.3/Lib/ntpath.py ---- Python-3.4.3.orig/Lib/ntpath.py 2015-03-16 22:56:41.117289500 +0000 -+++ Python-3.4.3/Lib/ntpath.py 2015-03-16 22:56:42.100091200 +0000 +--- Python-3.4.3.orig/Lib/ntpath.py 2015-03-17 14:11:42.000537200 +0000 ++++ Python-3.4.3/Lib/ntpath.py 2015-03-17 14:11:49.731537200 +0000 @@ -24,9 +24,13 @@ curdir = '.' pardir = '..' @@ -62,8 +62,8 @@ diff -urN Python-3.4.3.orig/Lib/ntpath.py Python-3.4.3/Lib/ntpath.py def _get_dot(path): if isinstance(path, bytes): diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c ---- Python-3.4.3.orig/Modules/getpath.c 2015-03-16 22:56:29.959869300 +0000 -+++ Python-3.4.3/Modules/getpath.c 2015-03-16 22:58:57.393731900 +0000 +--- Python-3.4.3.orig/Modules/getpath.c 2015-03-17 14:11:48.335537200 +0000 ++++ Python-3.4.3/Modules/getpath.c 2015-03-17 15:08:01.585542500 +0000 @@ -135,7 +135,7 @@ reduce(wchar_t *dir) { @@ -125,7 +125,21 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c char *_rtpypath = Py_GETENV("PYTHONPATH"); /* XXX use wide version on Windows */ wchar_t *rtpypath = NULL; wchar_t *home = Py_GetPythonHome(); -@@ -512,7 +512,7 @@ +@@ -490,11 +490,12 @@ + #endif + wchar_t *_pythonpath, *_prefix, *_exec_prefix; + wchar_t *lib_python; ++ const char * lib_python_VERSION = (Py_GetSepA(NULL) == '/') ? "lib/python" VERSION : "lib\\python" VERSION; + + _pythonpath = _Py_char2wchar(PYTHONPATH, NULL); + _prefix = _Py_char2wchar(PREFIX, NULL); + _exec_prefix = _Py_char2wchar(EXEC_PREFIX, NULL); +- lib_python = _Py_char2wchar("lib/python" VERSION, NULL); ++ lib_python = _Py_char2wchar(lib_python_VERSION, NULL); + + if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) { + Py_FatalError( +@@ -512,7 +513,7 @@ * other way to find a directory to start the search from. If * $PATH isn't exported, you lose. */ @@ -134,7 +148,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c wcsncpy(progpath, prog, MAXPATHLEN); #ifdef __APPLE__ /* On Mac OS X, if a script uses an interpreter of the form -@@ -561,7 +561,7 @@ +@@ -561,7 +562,7 @@ else progpath[0] = '\0'; PyMem_RawFree(path_buffer); @@ -143,7 +157,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c absolutize(progpath); wcsncpy(argv0_path, progpath, MAXPATHLEN); argv0_path[MAXPATHLEN] = '\0'; -@@ -719,7 +719,7 @@ +@@ -719,7 +720,7 @@ while (1) { wchar_t *delim = wcschr(defpath, DELIM); @@ -152,7 +166,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c /* Paths are relative to prefix */ bufsz += prefixsz; -@@ -760,7 +760,7 @@ +@@ -760,7 +761,7 @@ while (1) { wchar_t *delim = wcschr(defpath, DELIM); @@ -162,8 +176,8 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c wcscat(buf, separator); } diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodule.c ---- Python-3.4.3.orig/Modules/posixmodule.c 2015-03-16 22:56:29.928669200 +0000 -+++ Python-3.4.3/Modules/posixmodule.c 2015-03-16 22:56:42.100091200 +0000 +--- Python-3.4.3.orig/Modules/posixmodule.c 2015-03-17 14:11:48.299537200 +0000 ++++ Python-3.4.3/Modules/posixmodule.c 2015-03-17 14:11:49.742537200 +0000 @@ -3474,6 +3474,7 @@ PyMem_RawFree(wbuf2); return PyErr_SetFromWindowsErr(0); @@ -200,8 +214,8 @@ diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodu result = PyUnicode_FromWideChar(target_path, result_length); PyMem_Free(target_path); diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c ---- Python-3.4.3.orig/Python/pythonrun.c 2015-03-16 22:56:30.724270600 +0000 -+++ Python-3.4.3/Python/pythonrun.c 2015-03-16 22:56:42.115691300 +0000 +--- Python-3.4.3.orig/Python/pythonrun.c 2015-03-17 14:11:49.077537200 +0000 ++++ Python-3.4.3/Python/pythonrun.c 2015-03-17 14:11:49.746537200 +0000 @@ -871,17 +871,124 @@ PyInterpreterState_Delete(interp); } @@ -332,8 +346,8 @@ diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c wchar_t * diff -urN Python-3.4.3.orig/Python/sysmodule.c Python-3.4.3/Python/sysmodule.c ---- Python-3.4.3.orig/Python/sysmodule.c 2015-03-16 22:56:30.724270600 +0000 -+++ Python-3.4.3/Python/sysmodule.c 2015-03-16 22:56:42.115691300 +0000 +--- Python-3.4.3.orig/Python/sysmodule.c 2015-03-17 14:11:49.071537200 +0000 ++++ Python-3.4.3/Python/sysmodule.c 2015-03-17 14:11:49.750537200 +0000 @@ -1983,7 +1983,7 @@ argv0 = fullpath; } @@ -344,8 +358,8 @@ diff -urN Python-3.4.3.orig/Python/sysmodule.c Python-3.4.3/Python/sysmodule.c if (p != NULL) { n = p + 1 - argv0; diff -urN Python-3.4.3.orig/Python/traceback.c Python-3.4.3/Python/traceback.c ---- Python-3.4.3.orig/Python/traceback.c 2015-03-16 22:56:30.693070600 +0000 -+++ Python-3.4.3/Python/traceback.c 2015-03-16 22:56:42.115691300 +0000 +--- Python-3.4.3.orig/Python/traceback.c 2015-03-17 14:11:49.085537200 +0000 ++++ Python-3.4.3/Python/traceback.c 2015-03-17 14:11:49.753537200 +0000 @@ -199,7 +199,7 @@ filepath = PyBytes_AS_STRING(filebytes); diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index d6906abde1..86220dcb8a 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -408,7 +408,7 @@ sha1sums=('7ca5cd664598bea96eec105aa6453223bb6b4456' 'cdb77d00db2061c5e44a31876c5efb8db7c65a76' '02652e5775dfa3966a09349169bc8c86d5e9a980' '2b81ea5b3f8f06c0ab0df9306ec57dab8410778c' - '424b57ada4e0b6977e812a6e74ffd63058c3cb06' + 'f92f4b827502a91dc22873346fd9415f53ae3c97' '0f096226937aae88bf38369bd5f8ff3134a82bb0' 'b06b6cd0f1488e473bfb7fc1147cd64f4e9b560b' '2f72a9036599de2ca02e5de1316d7b1771cada08' From eb09d9484900f5ce0a4be90ec474a0bfe046ee1d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 17 Mar 2015 21:18:33 +0300 Subject: [PATCH 0680/2060] graphicsmagick: Update to 1.3.21 --- mingw-w64-graphicsmagick/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-graphicsmagick/PKGBUILD b/mingw-w64-graphicsmagick/PKGBUILD index 505ca53688..403f7fa047 100644 --- a/mingw-w64-graphicsmagick/PKGBUILD +++ b/mingw-w64-graphicsmagick/PKGBUILD @@ -2,8 +2,8 @@ _realname=graphicsmagick pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.20 -pkgrel=2 +pkgver=1.3.21 +pkgrel=1 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') url="http://www.graphicsmagick.org/" @@ -36,7 +36,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-ghostscript: for Ghostscript support" options=('staticlibs' 'strip' 'libtool') source=(http://sourceforge.net/projects/graphicsmagick/files/${_realname}/${pkgver}/GraphicsMagick-${pkgver}.tar.xz 001-relocate.patch) -md5sums=('5bb456e3466026ada6f12cc53c9776dc' +md5sums=('f86fe89ea413720a3b04c59c8d5271a2' '44ebff623519daa9be86ee6a6aaea2b6') prepare() { @@ -71,6 +71,7 @@ build() { --without-dps \ --without-perl \ --without-x + make } From 7fde57042bf707a57b1d7813a1f95267321a79e9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 19 Mar 2015 09:37:15 +0300 Subject: [PATCH 0681/2060] binutils: Add patch from upstream. --- .../0200-relocs-from-msvc.patch | 22 +++++++++++++++++++ mingw-w64-binutils/PKGBUILD | 11 +++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-binutils/0200-relocs-from-msvc.patch diff --git a/mingw-w64-binutils/0200-relocs-from-msvc.patch b/mingw-w64-binutils/0200-relocs-from-msvc.patch new file mode 100644 index 0000000000..4a81cff24b --- /dev/null +++ b/mingw-w64-binutils/0200-relocs-from-msvc.patch @@ -0,0 +1,22 @@ +X-Git-Url: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blobdiff_plain;f=bfd%2Fpeicode.h;h=200ef5e88476210d46387fe9da242aacb4d8ef59;hp=e36568aa2070ab5fa5282c0ddcf19f934d039a2e;hb=27aaeda0cdf9f69625b96e3abdb25c8fdbbb3435;hpb=273a49858fa9c8d73de87167618ef99d70f9731a + +diff --git a/bfd/peicode.h b/bfd/peicode.h +index e36568a..200ef5e 100644 +--- a/bfd/peicode.h ++++ b/bfd/peicode.h +@@ -973,6 +973,15 @@ pe_ILF_build_a_bfd (bfd * abfd, + } + else + #endif ++#ifdef AMD64MAGIC ++ if (magic == AMD64MAGIC) ++ { ++ pe_ILF_make_a_symbol_reloc (&vars, (bfd_vma) jtab[i].offset, ++ BFD_RELOC_32_PCREL, (asymbol **) imp_sym, ++ imp_index); ++ } ++ else ++#endif + pe_ILF_make_a_symbol_reloc (&vars, (bfd_vma) jtab[i].offset, + BFD_RELOC_32, (asymbol **) imp_sym, + imp_index); diff --git a/mingw-w64-binutils/PKGBUILD b/mingw-w64-binutils/PKGBUILD index fe7642dd73..c98371ac71 100644 --- a/mingw-w64-binutils/PKGBUILD +++ b/mingw-w64-binutils/PKGBUILD @@ -4,7 +4,7 @@ _realname=binutils pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.25 -pkgrel=2 +pkgrel=3 pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('any') url="http://www.gnu.org/software/binutils/" @@ -28,7 +28,8 @@ source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2{,.sig} 0014-dont-link-binutils-to-libiberty.mingw.patch 0015-dont-link-ld-to-libiberty.mingw.patch 0017-fix-iconv-linking.all.patch - 0110-binutils-mingw-gnu-print.patch) + 0110-binutils-mingw-gnu-print.patch + 0200-relocs-from-msvc.patch) md5sums=('d9f3303f802a5b6b0bb73a335ab89d66' 'SKIP' 'f3be04ed70b9d352a2c0e2a80b0706b2' @@ -43,7 +44,8 @@ md5sums=('d9f3303f802a5b6b0bb73a335ab89d66' '6d3610000f041f66ada0a956101faeec' '33b5eda35272e88b1c308e66484db958' '66eeb2af697f5f1d0f372185aa2fb737' - '1c34f5ee0ee5d5008a617e1638362d43') + '1c34f5ee0ee5d5008a617e1638362d43' + 'b627e17f72c54281b8a01f1c1cc5a11a') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -60,6 +62,9 @@ prepare() { #patch -p1 -i "${srcdir}"/0015-dont-link-ld-to-libiberty.mingw.patch #patch -p1 -i "${srcdir}"/0017-fix-iconv-linking.all.patch patch -p1 -i "${srcdir}"/0110-binutils-mingw-gnu-print.patch + + # https://sourceware.org/bugzilla/show_bug.cgi?id=16598 + patch -p1 -i "${srcdir}"/0200-relocs-from-msvc.patch } From d6bce8f8ad019cc05fb446121470a00ac7d3bc39 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Thu, 19 Mar 2015 10:27:53 +0100 Subject: [PATCH 0682/2060] Add libepoxy package --- ...043ca2a48d88d920fd46f3fe0097f359.all.patch | 24 + ...746f6c0557b863a38648ae1646658951.all.patch | 7915 +++++++++++++++++ mingw-w64-libepoxy/PKGBUILD | 51 + 3 files changed, 7990 insertions(+) create mode 100755 mingw-w64-libepoxy/0001-135f7bf1043ca2a48d88d920fd46f3fe0097f359.all.patch create mode 100755 mingw-w64-libepoxy/0002-e9ce388f746f6c0557b863a38648ae1646658951.all.patch create mode 100644 mingw-w64-libepoxy/PKGBUILD diff --git a/mingw-w64-libepoxy/0001-135f7bf1043ca2a48d88d920fd46f3fe0097f359.all.patch b/mingw-w64-libepoxy/0001-135f7bf1043ca2a48d88d920fd46f3fe0097f359.all.patch new file mode 100755 index 0000000000..156075605b --- /dev/null +++ b/mingw-w64-libepoxy/0001-135f7bf1043ca2a48d88d920fd46f3fe0097f359.all.patch @@ -0,0 +1,24 @@ +From 135f7bf1043ca2a48d88d920fd46f3fe0097f359 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Sat, 10 Jan 2015 11:18:50 +1300 +Subject: [PATCH] wgl: Fix an extra break statement. + +This would have leaked our TLS indices on process exit. + +Fixes #32 +--- + src/dispatch_wgl.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/dispatch_wgl.c b/src/dispatch_wgl.c +index 5b3a8ef..2bc5fc1 100644 +--- a/src/dispatch_wgl.c ++++ b/src/dispatch_wgl.c +@@ -130,7 +130,6 @@ DllMain(HINSTANCE dll, DWORD reason, LPVOID reserved) + + data = TlsGetValue(wgl_tls_index); + LocalFree(data); +- break; + + if (reason == DLL_PROCESS_DETACH) { + TlsFree(gl_tls_index); diff --git a/mingw-w64-libepoxy/0002-e9ce388f746f6c0557b863a38648ae1646658951.all.patch b/mingw-w64-libepoxy/0002-e9ce388f746f6c0557b863a38648ae1646658951.all.patch new file mode 100755 index 0000000000..9ef09b5628 --- /dev/null +++ b/mingw-w64-libepoxy/0002-e9ce388f746f6c0557b863a38648ae1646658951.all.patch @@ -0,0 +1,7915 @@ +From e9ce388f746f6c0557b863a38648ae1646658951 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Sat, 10 Jan 2015 11:59:10 +1300 +Subject: [PATCH] Import registry from SVN 29350 + +--- + registry/egl.xml | 302 ++++- + registry/gl.xml | 3305 ++++++++++++++++++++++++++++++++++++++++++++++++------ + registry/glx.xml | 127 ++- + registry/wgl.xml | 408 +++---- + 4 files changed, 3593 insertions(+), 549 deletions(-) + +diff --git a/registry/egl.xml b/registry/egl.xml +index 6f6ebc3..a407a61 100644 +--- a/registry/egl.xml ++++ b/registry/egl.xml +@@ -54,22 +54,25 @@ + typedef unsigned int EGLenum; + typedef intptr_t EGLAttribKHR; + typedef intptr_t EGLAttrib; ++ typedef void *EGLClientBuffer; + typedef void *EGLConfig; + typedef void *EGLContext; ++ typedef void *EGLDeviceEXT; + typedef void *EGLDisplay; +- typedef void *EGLSurface; +- typedef void *EGLClientBuffer; +- typedef void (*__eglMustCastToProperFunctionPointerType)(void); +- typedef void *EGLImageKHR; + typedef void *EGLImage; +- typedef void *EGLSyncKHR; ++ typedef void *EGLImageKHR; ++ typedef void *EGLOutputLayerEXT; ++ typedef void *EGLOutputPortEXT; ++ typedef void *EGLStreamKHR; ++ typedef void *EGLSurface; + typedef void *EGLSync; ++ typedef void *EGLSyncKHR; ++ typedef void *EGLSyncNV; ++ typedef void (*__eglMustCastToProperFunctionPointerType)(void); + typedef khronos_utime_nanoseconds_t EGLTimeKHR; + typedef khronos_utime_nanoseconds_t EGLTime; +- typedef void *EGLSyncNV; + typedef khronos_utime_nanoseconds_t EGLTimeNV; + typedef khronos_utime_nanoseconds_t EGLuint64NV; +- typedef void *EGLStreamKHR; + typedef khronos_uint64_t EGLuint64KHR; + typedef int EGLNativeFileDescriptorKHR; + typedef khronos_ssize_t EGLsizeiANDROID; +@@ -172,10 +175,14 @@ + + + ++ + ++ + + + ++ ++ + + + +@@ -370,6 +377,7 @@ + + + ++ + + + +@@ -453,8 +461,10 @@ + + + +- ++ ++ + ++ + + + +@@ -549,7 +559,8 @@ + + + +- ++ ++ + + + +@@ -572,7 +583,25 @@ + + + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -611,7 +640,9 @@ + + + +- ++ ++ ++ + + + +@@ -623,8 +654,24 @@ + + + +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + +- +- +- ++ ++ ++ + + + +@@ -715,6 +761,14 @@ + const EGLint *attrib_list + + ++ EGLImage eglCreateImage ++ EGLDisplay dpy ++ EGLContext ctx ++ EGLenum target ++ EGLClientBuffer buffer ++ const EGLAttrib *attrib_list ++ ++ + EGLImageKHR eglCreateImageKHR + EGLDisplay dpy + EGLContext ctx +@@ -833,9 +887,15 @@ + EGLContext ctx + + ++ EGLBoolean eglDestroyImage ++ EGLDisplay dpy ++ EGLImage image ++ ++ + EGLBoolean eglDestroyImageKHR + EGLDisplay dpy + EGLImageKHR image ++ + + + EGLBoolean eglDestroyStreamKHR +@@ -911,6 +971,22 @@ + EGLint eglGetError + + ++ EGLBoolean eglGetOutputLayersEXT ++ EGLDisplay dpy ++ const EGLAttrib *attrib_list ++ EGLOutputLayerEXT *layers ++ EGLint max_layers ++ EGLint *num_layers ++ ++ ++ EGLBoolean eglGetOutputPortsEXT ++ EGLDisplay dpy ++ const EGLAttrib *attrib_list ++ EGLOutputPortEXT *ports ++ EGLint max_ports ++ EGLint *num_ports ++ ++ + EGLDisplay eglGetPlatformDisplay + EGLenum platform + void *native_display +@@ -977,6 +1053,20 @@ + EGLContext ctx + + ++ EGLBoolean eglOutputLayerAttribEXT ++ EGLDisplay dpy ++ EGLOutputLayerEXT layer ++ EGLint attribute ++ EGLAttrib value ++ ++ ++ EGLBoolean eglOutputPortAttribEXT ++ EGLDisplay dpy ++ EGLOutputPortEXT port ++ EGLint attribute ++ EGLAttrib value ++ ++ + EGLBoolean eglPostSubBufferNV + EGLDisplay dpy + EGLSurface surface +@@ -996,6 +1086,29 @@ + EGLint *value + + ++ EGLBoolean eglQueryDeviceAttribEXT ++ EGLDeviceEXT device ++ EGLint attribute ++ EGLAttrib *value ++ ++ ++ const char *eglQueryDeviceStringEXT ++ EGLDeviceEXT device ++ EGLint name ++ ++ ++ EGLBoolean eglQueryDevicesEXT ++ EGLint max_devices ++ EGLDeviceEXT *devices ++ EGLint *num_devices ++ ++ ++ EGLBoolean eglQueryDisplayAttribEXT ++ EGLDisplay dpy ++ EGLint attribute ++ EGLAttrib *value ++ ++ + EGLBoolean eglQueryNativeDisplayNV + EGLDisplay dpy + EGLNativeDisplayType *display_id +@@ -1013,6 +1126,32 @@ + EGLNativeWindowType *window + + ++ EGLBoolean eglQueryOutputLayerAttribEXT ++ EGLDisplay dpy ++ EGLOutputLayerEXT layer ++ EGLint attribute ++ EGLAttrib *value ++ ++ ++ const char *eglQueryOutputLayerStringEXT ++ EGLDisplay dpy ++ EGLOutputLayerEXT layer ++ EGLint name ++ ++ ++ EGLBoolean eglQueryOutputPortAttribEXT ++ EGLDisplay dpy ++ EGLOutputPortEXT port ++ EGLint attribute ++ EGLAttrib *value ++ ++ ++ const char *eglQueryOutputPortStringEXT ++ EGLDisplay dpy ++ EGLOutputPortEXT port ++ EGLint name ++ ++ + EGLBoolean eglQueryStreamKHR + EGLDisplay dpy + EGLStreamKHR stream +@@ -1075,6 +1214,13 @@ + EGLGetBlobFuncANDROID get + + ++ EGLBoolean eglSetDamageRegionKHR ++ EGLDisplay dpy ++ EGLSurface surface ++ EGLint *rects ++ EGLint n_rects ++ ++ + EGLBoolean eglSignalSyncKHR + EGLDisplay dpy + EGLSyncKHR sync +@@ -1103,6 +1249,12 @@ + EGLStreamKHR stream + + ++ EGLBoolean eglStreamConsumerOutputEXT ++ EGLDisplay dpy ++ EGLStreamKHR stream ++ EGLOutputLayerEXT layer ++ ++ + EGLBoolean eglStreamConsumerReleaseKHR + EGLDisplay dpy + EGLStreamKHR stream +@@ -1127,6 +1279,13 @@ + EGLint n_rects + + ++ EGLBoolean eglSwapBuffersWithDamageKHR ++ EGLDisplay dpy ++ EGLSurface surface ++ EGLint *rects ++ EGLint n_rects ++ ++ + EGLBoolean eglSwapBuffersRegionNOK + EGLDisplay dpy + EGLSurface surface +@@ -1424,6 +1583,12 @@ + + + ++ ++ ++ ++ ++ ++ + + + +@@ -1481,6 +1646,11 @@ + + + ++ ++ ++ ++ ++ + + + +@@ -1500,6 +1670,27 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -1531,6 +1722,38 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -1538,6 +1761,11 @@ + + + ++ ++ ++ ++ ++ + + + +@@ -1554,6 +1782,11 @@ + + + ++ ++ ++ ++ ++ + + + +@@ -1747,6 +1980,12 @@ + + + ++ ++ ++ ++ ++ ++ + + + +@@ -1841,6 +2080,11 @@ + + + ++ ++ ++ ++ ++ + + + +@@ -1902,6 +2146,13 @@ + + + ++ ++ ++ ++ ++ ++ ++ + + + +@@ -1909,6 +2160,11 @@ + + + ++ ++ ++ ++ ++ + + + +@@ -1962,5 +2218,15 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + +diff --git a/registry/gl.xml b/registry/gl.xml +index 6d63b4d..ccff497 100644 +--- a/registry/gl.xml ++++ b/registry/gl.xml +@@ -1726,9 +1726,11 @@ typedef unsigned int GLhandleARB; + + + ++ + + + ++ + + + +@@ -1990,8 +1992,11 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + ++ + + + +@@ -2054,6 +2059,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -2078,6 +2084,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -2132,8 +2139,11 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + ++ + + + +@@ -2203,6 +2213,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -2320,10 +2331,24 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + ++ + + + +@@ -2364,6 +2389,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -2379,6 +2405,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -2430,7 +2457,9 @@ typedef unsigned int GLhandleARB; + + + +- ++ ++ ++ + + + +@@ -2537,11 +2566,15 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + + + ++ + ++ + + + +@@ -2659,12 +2692,15 @@ typedef unsigned int GLhandleARB; + + + ++ + + + + ++ + + ++ + + + +@@ -2725,9 +2761,11 @@ typedef unsigned int GLhandleARB; + + + ++ + + +- ++ ++ + + + +@@ -2754,8 +2792,11 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + ++ + + + +@@ -2795,7 +2836,9 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + + + +@@ -2859,7 +2902,9 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + + + +@@ -2907,23 +2952,31 @@ typedef unsigned int GLhandleARB; + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + ++ + ++ + + + +@@ -2939,9 +2992,7 @@ typedef unsigned int GLhandleARB; + + + +- +- +- ++ + + + +@@ -3335,7 +3386,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -3412,7 +3463,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -3459,6 +3510,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -3507,7 +3559,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -3527,13 +3579,13 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + + +- ++ + + + +@@ -3652,7 +3704,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -3663,7 +3715,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -3709,7 +3761,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -3735,8 +3787,8 @@ typedef unsigned int GLhandleARB; + + + +- +- ++ ++ + + + +@@ -3745,9 +3797,11 @@ typedef unsigned int GLhandleARB; + + + ++ + + + ++ + + + +@@ -3768,7 +3822,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -3822,16 +3876,26 @@ typedef unsigned int GLhandleARB; + + + ++ + + ++ ++ + + ++ ++ + + ++ ++ + + ++ ++ + + ++ + + + +@@ -3840,13 +3904,24 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ ++ + ++ ++ + ++ + ++ ++ + ++ ++ + + ++ + + + +@@ -3926,7 +4001,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -3934,7 +4009,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -3978,9 +4053,13 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + ++ + ++ + + + +@@ -3998,7 +4077,28 @@ typedef unsigned int GLhandleARB; + + + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -4050,7 +4150,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -4131,10 +4231,12 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + +- ++ ++ ++ + + + +@@ -4143,7 +4245,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -4159,7 +4261,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -4192,7 +4294,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -4217,13 +4319,13 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + + +- ++ + + + +@@ -4249,7 +4351,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -4321,21 +4423,25 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + +- ++ + + +- ++ ++ ++ + + + + +- ++ + + +- ++ ++ ++ + + + +@@ -4410,8 +4516,10 @@ typedef unsigned int GLhandleARB; + + + ++ + + ++ + + + +@@ -4463,7 +4571,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -4624,7 +4732,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -4649,6 +4757,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -4737,7 +4846,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -4766,14 +4875,14 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + + + +- ++ + + + +@@ -4806,14 +4915,14 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +- ++ + + +- ++ + + + +@@ -4944,7 +5053,9 @@ typedef unsigned int GLhandleARB; + + + +- ++ ++ ++ + + + +@@ -4984,7 +5095,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -5137,7 +5248,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -5165,7 +5276,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -5202,7 +5313,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -5353,7 +5464,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -5407,7 +5518,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -5495,13 +5606,13 @@ typedef unsigned int GLhandleARB; + + + +- ++ + +- ++ + + + +- ++ + + + +@@ -5590,9 +5701,11 @@ typedef unsigned int GLhandleARB; + + + +- ++ + ++ + ++ + + + +@@ -5607,15 +5720,16 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + + + +- ++ + ++ + + + +@@ -5745,14 +5859,14 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + + + +- ++ + + + +@@ -5811,13 +5925,16 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + +- ++ + ++ + ++ + ++ + + + +@@ -5923,7 +6040,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -5945,9 +6062,13 @@ typedef unsigned int GLhandleARB; + + + +- ++ ++ ++ + +- ++ ++ ++ + + + +@@ -5966,7 +6087,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -5974,26 +6095,28 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + + +- ++ + +- ++ + + + + + ++ + + + + + + ++ + + + +@@ -6014,13 +6137,13 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +- ++ + +- ++ + + + +@@ -6028,12 +6151,16 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + +- ++ ++ ++ + +- ++ ++ ++ + + + +@@ -6159,7 +6286,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6183,7 +6310,9 @@ typedef unsigned int GLhandleARB; + + + +- ++ ++ ++ + + + +@@ -6204,7 +6333,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6216,7 +6345,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6231,7 +6360,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6264,7 +6393,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6275,6 +6404,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -6288,22 +6418,26 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + + + +- ++ + ++ + + ++ + + + ++ + + ++ + + + +@@ -6344,7 +6478,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6411,10 +6545,10 @@ typedef unsigned int GLhandleARB; + + +- ++ + + +- ++ + + + +@@ -6460,10 +6594,12 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + +- ++ ++ ++ + + + +@@ -6491,7 +6627,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6507,7 +6643,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6561,15 +6697,15 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +- ++ + + + +- ++ + + + +@@ -6585,7 +6721,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6597,7 +6733,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6626,7 +6762,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6634,7 +6770,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6645,7 +6781,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6740,7 +6876,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6835,7 +6971,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6856,7 +6992,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6871,11 +7007,18 @@ typedef unsigned int GLhandleARB; + + + +- ++ ++ ++ ++ ++ ++ + ++ + ++ + +- ++ + + + +@@ -6898,7 +7041,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -6924,6 +7067,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -6938,6 +7082,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -6953,34 +7098,60 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ + ++ ++ + + + +@@ -6992,14 +7163,20 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + +- ++ ++ ++ + +- ++ ++ ++ + +- ++ ++ ++ + + + +@@ -7010,7 +7187,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -7085,23 +7262,29 @@ typedef unsigned int GLhandleARB; + + + +- ++ ++ ++ + + + + +- ++ + + + + + +- ++ + + +- ++ ++ ++ + +- ++ ++ ++ + + + +@@ -7113,9 +7296,13 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + ++ + ++ + + + +@@ -7124,14 +7311,14 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + +- ++ + +- ++ + + + +@@ -7171,7 +7358,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -7182,21 +7369,27 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + ++ + + ++ + + + + ++ + + ++ + + ++ + + ++ + + + +@@ -7245,7 +7438,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -7404,14 +7597,17 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + + ++ + ++ + ++ + + + +@@ -7422,17 +7618,20 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + ++ + + + + + + +- ++ + +- ++ + + + +@@ -7443,11 +7642,13 @@ typedef unsigned int GLhandleARB; + + + ++ + +- ++ ++ + + +- ++ + + + +@@ -7504,7 +7705,9 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + + + +@@ -7521,18 +7724,18 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + + + +- ++ + + + +- ++ + + + +@@ -7573,9 +7776,9 @@ typedef unsigned int GLhandleARB; + + + +- ++ + +- ++ + + + +@@ -7594,30 +7797,33 @@ typedef unsigned int GLhandleARB; + + + +- + + + ++ + ++ + ++ + +- ++ + + + + + + +- ++ ++ + +- ++ + + + + + + +- ++ + + + +@@ -7626,17 +7832,20 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + +- ++ ++ ++ ++ + + + + +- ++ + + + +@@ -7660,7 +7869,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -7681,10 +7890,10 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + +- ++ + + + +@@ -7703,14 +7912,14 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + + + + +- ++ + + + +@@ -7718,7 +7927,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -7731,7 +7940,9 @@ typedef unsigned int GLhandleARB; + + + +- ++ ++ ++ + + + +@@ -7746,14 +7957,20 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + ++ + + + + ++ + ++ + ++ + + + +@@ -7761,7 +7978,9 @@ typedef unsigned int GLhandleARB; + + + +- ++ ++ ++ + + + +@@ -7771,6 +7990,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -7803,8 +8023,11 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + ++ + + + +@@ -7814,31 +8037,76 @@ typedef unsigned int GLhandleARB; + + + ++ + + + + + ++ + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +- ++ ++ ++ ++ ++ ++ ++ ++ + + +- ++ ++ ++ ++ + + + +- ++ ++ ++ ++ ++ ++ + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + +- ++ + + + +@@ -7847,9 +8115,9 @@ typedef unsigned int GLhandleARB; + + + +- ++ + +- ++ + + + +@@ -7867,7 +8135,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -7878,7 +8146,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -7893,7 +8161,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -7904,11 +8172,13 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +- ++ ++ ++ + + + +@@ -7918,7 +8188,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -7928,7 +8198,15 @@ typedef unsigned int GLhandleARB; + + + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + +- +- ++ ++ + + + +@@ -8505,6 +8783,11 @@ typedef unsigned int GLhandleARB; + + + ++ void glBindTextureUnit ++ GLuint unit ++ GLuint texture ++ ++ + GLuint glBindTextureUnitParameterEXT + GLenum unit + GLenum value +@@ -8657,10 +8940,10 @@ typedef unsigned int GLhandleARB; + const GLubyte *bitmap + + +- void glBlendBarrierNV ++ void glBlendBarrierKHR + + +- void glBlendBarrierKHR ++ void glBlendBarrierNV + + + void glBlendColor +@@ -8746,6 +9029,13 @@ typedef unsigned int GLhandleARB; + + + ++ void glBlendEquationSeparateiEXT ++ GLuint buf ++ GLenum modeRGB ++ GLenum modeAlpha ++ ++ ++ + void glBlendEquationi + GLuint buf + GLenum mode +@@ -8757,6 +9047,12 @@ typedef unsigned int GLhandleARB; + + + ++ void glBlendEquationiEXT ++ GLuint buf ++ GLenum mode ++ ++ ++ + void glBlendFunc + GLenum sfactor + GLenum dfactor +@@ -8829,6 +9125,15 @@ typedef unsigned int GLhandleARB; + + + ++ void glBlendFuncSeparateiEXT ++ GLuint buf ++ GLenum srcRGB ++ GLenum dstRGB ++ GLenum srcAlpha ++ GLenum dstAlpha ++ ++ ++ + void glBlendFunci + GLuint buf + GLenum src +@@ -8842,6 +9147,13 @@ typedef unsigned int GLhandleARB; + + + ++ void glBlendFunciEXT ++ GLuint buf ++ GLenum src ++ GLenum dst ++ ++ ++ + void glBlendParameteriNV + GLenum pname + GLint value +@@ -8903,6 +9215,21 @@ typedef unsigned int GLhandleARB; + + + ++ void glBlitNamedFramebuffer ++ GLuint readFramebuffer ++ GLuint drawFramebuffer ++ GLint srcX0 ++ GLint srcY0 ++ GLint srcX1 ++ GLint srcY1 ++ GLint dstX0 ++ GLint dstY0 ++ GLint dstX1 ++ GLint dstY1 ++ GLbitfield mask ++ GLenum filter ++ ++ + void glBufferAddressRangeNV + GLenum pname + GLuint index +@@ -8925,6 +9252,13 @@ typedef unsigned int GLhandleARB; + + + ++ void glBufferPageCommitmentARB ++ GLenum target ++ GLintptr offset ++ GLsizeiptr size ++ GLboolean commit ++ ++ + void glBufferParameteriAPPLE + GLenum target + GLenum pname +@@ -8980,6 +9314,11 @@ typedef unsigned int GLhandleARB; + GLenum target + + ++ GLenum glCheckNamedFramebufferStatus ++ GLuint framebuffer ++ GLenum target ++ ++ + GLenum glCheckNamedFramebufferStatusEXT + GLuint framebuffer + GLenum target +@@ -9132,6 +9471,14 @@ typedef unsigned int GLhandleARB; + + + ++ void glClearNamedBufferData ++ GLuint buffer ++ GLenum internalformat ++ GLenum format ++ GLenum type ++ const void *data ++ ++ + void glClearNamedBufferDataEXT + GLuint buffer + GLenum internalformat +@@ -9140,6 +9487,16 @@ typedef unsigned int GLhandleARB; + const void *data + + ++ void glClearNamedBufferSubData ++ GLuint buffer ++ GLenum internalformat ++ GLintptr offset ++ GLsizei size ++ GLenum format ++ GLenum type ++ const void *data ++ ++ + void glClearNamedBufferSubDataEXT + GLuint buffer + GLenum internalformat +@@ -9150,6 +9507,34 @@ typedef unsigned int GLhandleARB; + const void *data + + ++ void glClearNamedFramebufferfi ++ GLuint framebuffer ++ GLenum buffer ++ const GLfloat depth ++ GLint stencil ++ ++ ++ void glClearNamedFramebufferfv ++ GLuint framebuffer ++ GLenum buffer ++ GLint drawbuffer ++ const GLfloat *value ++ ++ ++ void glClearNamedFramebufferiv ++ GLuint framebuffer ++ GLenum buffer ++ GLint drawbuffer ++ const GLint *value ++ ++ ++ void glClearNamedFramebufferuiv ++ GLuint framebuffer ++ GLenum buffer ++ GLint drawbuffer ++ const GLuint *value ++ ++ + void glClearStencil + GLint s + +@@ -9207,6 +9592,11 @@ typedef unsigned int GLhandleARB; + + + ++ void glClipControl ++ GLenum origin ++ GLenum depth ++ ++ + void glClipPlane + GLenum plane + const GLdouble *equation +@@ -9629,6 +10019,15 @@ typedef unsigned int GLhandleARB; + GLboolean a + + ++ void glColorMaskiEXT ++ GLuint index ++ GLboolean r ++ GLboolean g ++ GLboolean b ++ GLboolean a ++ ++ ++ + void glColorMaterial + GLenum face + GLenum mode +@@ -10138,6 +10537,16 @@ typedef unsigned int GLhandleARB; + const void *bits + + ++ void glCompressedTextureSubImage1D ++ GLuint texture ++ GLint level ++ GLint xoffset ++ GLsizei width ++ GLenum format ++ GLsizei imageSize ++ const void *data ++ ++ + void glCompressedTextureSubImage1DEXT + GLuint texture + GLenum target +@@ -10149,6 +10558,18 @@ typedef unsigned int GLhandleARB; + const void *bits + + ++ void glCompressedTextureSubImage2D ++ GLuint texture ++ GLint level ++ GLint xoffset ++ GLint yoffset ++ GLsizei width ++ GLsizei height ++ GLenum format ++ GLsizei imageSize ++ const void *data ++ ++ + void glCompressedTextureSubImage2DEXT + GLuint texture + GLenum target +@@ -10162,6 +10583,20 @@ typedef unsigned int GLhandleARB; + const void *bits + + ++ void glCompressedTextureSubImage3D ++ GLuint texture ++ GLint level ++ GLint xoffset ++ GLint yoffset ++ GLint zoffset ++ GLsizei width ++ GLsizei height ++ GLsizei depth ++ GLenum format ++ GLsizei imageSize ++ const void *data ++ ++ + void glCompressedTextureSubImage3DEXT + GLuint texture + GLenum target +@@ -10407,6 +10842,25 @@ typedef unsigned int GLhandleARB; + GLsizei srcDepth + + ++ void glCopyImageSubDataEXT ++ GLuint srcName ++ GLenum srcTarget ++ GLint srcLevel ++ GLint srcX ++ GLint srcY ++ GLint srcZ ++ GLuint dstName ++ GLenum dstTarget ++ GLint dstLevel ++ GLint dstX ++ GLint dstY ++ GLint dstZ ++ GLsizei srcWidth ++ GLsizei srcHeight ++ GLsizei srcDepth ++ ++ ++ + void glCopyImageSubDataNV + GLuint srcName + GLenum srcTarget +@@ -10484,6 +10938,14 @@ typedef unsigned int GLhandleARB; + GLsizei height + + ++ void glCopyNamedBufferSubData ++ GLuint readBuffer ++ GLuint writeBuffer ++ GLintptr readOffset ++ GLintptr writeOffset ++ GLsizei size ++ ++ + void glCopyPathNV + GLuint resultPath + GLuint srcPath +@@ -10662,6 +11124,15 @@ typedef unsigned int GLhandleARB; + GLsizei sourceLevelCount + + ++ void glCopyTextureSubImage1D ++ GLuint texture ++ GLint level ++ GLint xoffset ++ GLint x ++ GLint y ++ GLsizei width ++ ++ + void glCopyTextureSubImage1DEXT + GLuint texture + GLenum target +@@ -10672,6 +11143,17 @@ typedef unsigned int GLhandleARB; + GLsizei width + + ++ void glCopyTextureSubImage2D ++ GLuint texture ++ GLint level ++ GLint xoffset ++ GLint yoffset ++ GLint x ++ GLint y ++ GLsizei width ++ GLsizei height ++ ++ + void glCopyTextureSubImage2DEXT + GLuint texture + GLenum target +@@ -10684,6 +11166,18 @@ typedef unsigned int GLhandleARB; + GLsizei height + + ++ void glCopyTextureSubImage3D ++ GLuint texture ++ GLint level ++ GLint xoffset ++ GLint yoffset ++ GLint zoffset ++ GLint x ++ GLint y ++ GLsizei width ++ GLsizei height ++ ++ + void glCopyTextureSubImage3DEXT + GLuint texture + GLenum target +@@ -10735,6 +11229,16 @@ typedef unsigned int GLhandleARB; + GLenum operation + + ++ void glCreateBuffers ++ GLsizei n ++ GLuint *buffers ++ ++ ++ void glCreateFramebuffers ++ GLsizei n ++ GLuint *framebuffers ++ ++ + void glCreatePerfQueryINTEL + GLuint queryId + GLuint *queryHandle +@@ -10747,6 +11251,27 @@ typedef unsigned int GLhandleARB; + + + ++ void glCreateProgramPipelines ++ GLsizei n ++ GLuint *pipelines ++ ++ ++ void glCreateQueries ++ GLenum target ++ GLsizei n ++ GLuint *ids ++ ++ ++ void glCreateRenderbuffers ++ GLsizei n ++ GLuint *renderbuffers ++ ++ ++ void glCreateSamplers ++ GLsizei n ++ GLuint *samplers ++ ++ + GLuint glCreateShader + GLenum type + +@@ -10779,6 +11304,22 @@ typedef unsigned int GLhandleARB; + GLbitfield flags + + ++ void glCreateTextures ++ GLenum target ++ GLsizei n ++ GLuint *textures ++ ++ ++ void glCreateTransformFeedbacks ++ GLsizei n ++ GLuint *ids ++ ++ ++ void glCreateVertexArrays ++ GLsizei n ++ GLuint *arrays ++ ++ + void glCullFace + GLenum mode + +@@ -11190,12 +11731,24 @@ typedef unsigned int GLhandleARB; + const GLdouble *v + + ++ void glDepthRangeArrayfvNV ++ GLuint first ++ GLsizei count ++ const GLfloat *v ++ ++ + void glDepthRangeIndexed + GLuint index + GLdouble n + GLdouble f + + ++ void glDepthRangeIndexedfNV ++ GLuint index ++ GLfloat n ++ GLfloat f ++ ++ + void glDepthRangedNV + GLdouble zNear + GLdouble zFar +@@ -11275,6 +11828,11 @@ typedef unsigned int GLhandleARB; + GLuint id + + ++ void glDisableVertexArrayAttrib ++ GLuint vaobj ++ GLuint index ++ ++ + void glDisableVertexArrayAttribEXT + GLuint vaobj + GLuint index +@@ -11304,6 +11862,18 @@ typedef unsigned int GLhandleARB; + GLuint index + + ++ void glDisableiEXT ++ GLenum target ++ GLuint index ++ ++ ++ ++ void glDisableiNV ++ GLenum target ++ GLuint index ++ ++ ++ + void glDiscardFramebufferEXT + GLenum target + GLsizei numAttachments +@@ -11379,6 +11949,15 @@ typedef unsigned int GLhandleARB; + GLsizei instancecount + GLuint baseinstance + ++ ++ void glDrawArraysInstancedBaseInstanceEXT ++ GLenum mode ++ GLint first ++ GLsizei count ++ GLsizei instancecount ++ GLuint baseinstance ++ ++ + + void glDrawArraysInstancedEXT + GLenum mode +@@ -11397,7 +11976,7 @@ typedef unsigned int GLhandleARB; + + + void glDrawBuffer +- GLenum mode ++ GLenum buf + + + +@@ -11463,6 +12042,15 @@ typedef unsigned int GLhandleARB; + GLint basevertex + + ++ void glDrawElementsBaseVertexEXT ++ GLenum mode ++ GLsizei count ++ GLenum type ++ const void *indices ++ GLint basevertex ++ ++ ++ + void glDrawElementsIndirect + GLenum mode + GLenum type +@@ -11504,6 +12092,16 @@ typedef unsigned int GLhandleARB; + GLuint baseinstance + + ++ void glDrawElementsInstancedBaseInstanceEXT ++ GLenum mode ++ GLsizei count ++ GLenum type ++ const void *indices ++ GLsizei instancecount ++ GLuint baseinstance ++ ++ ++ + void glDrawElementsInstancedBaseVertex + GLenum mode + GLsizei count +@@ -11513,6 +12111,16 @@ typedef unsigned int GLhandleARB; + GLint basevertex + + ++ void glDrawElementsInstancedBaseVertexEXT ++ GLenum mode ++ GLsizei count ++ GLenum type ++ const void *indices ++ GLsizei instancecount ++ GLint basevertex ++ ++ ++ + void glDrawElementsInstancedBaseVertexBaseInstance + GLenum mode + GLsizei count +@@ -11522,6 +12130,17 @@ typedef unsigned int GLhandleARB; + GLint basevertex + GLuint baseinstance + ++ ++ void glDrawElementsInstancedBaseVertexBaseInstanceEXT ++ GLenum mode ++ GLsizei count ++ GLenum type ++ const void *indices ++ GLsizei instancecount ++ GLint basevertex ++ GLuint baseinstance ++ ++ + + void glDrawElementsInstancedEXT + GLenum mode +@@ -11592,6 +12211,17 @@ typedef unsigned int GLhandleARB; + GLint basevertex + + ++ void glDrawRangeElementsBaseVertexEXT ++ GLenum mode ++ GLuint start ++ GLuint end ++ GLsizei count ++ GLenum type ++ const void *indices ++ GLint basevertex ++ ++ ++ + void glDrawRangeElementsEXT + GLenum mode + GLuint start +@@ -11778,6 +12408,11 @@ typedef unsigned int GLhandleARB; + GLuint id + + ++ void glEnableVertexArrayAttrib ++ GLuint vaobj ++ GLuint index ++ ++ + void glEnableVertexArrayAttribEXT + GLuint vaobj + GLuint index +@@ -11807,6 +12442,18 @@ typedef unsigned int GLhandleARB; + GLuint index + + ++ void glEnableiNV ++ GLenum target ++ GLuint index ++ ++ ++ ++ void glEnableiEXT ++ GLenum target ++ GLuint index ++ ++ ++ + void glEnd + + +@@ -12147,6 +12794,12 @@ typedef unsigned int GLhandleARB; + + + ++ void glFlushMappedNamedBufferRange ++ GLuint buffer ++ GLintptr offset ++ GLsizei length ++ ++ + void glFlushMappedNamedBufferRangeEXT + GLuint buffer + GLintptr offset +@@ -12855,6 +13508,10 @@ typedef unsigned int GLhandleARB; + GLenum target + + ++ void glGenerateTextureMipmap ++ GLuint texture ++ ++ + void glGenerateTextureMipmapEXT + GLuint texture + GLenum target +@@ -12947,7 +13604,7 @@ typedef unsigned int GLhandleARB; + GLuint program + GLuint uniformBlockIndex + GLenum pname +- GLint *params ++ GLint *params + + + void glGetActiveUniformName +@@ -12961,9 +13618,9 @@ typedef unsigned int GLhandleARB; + void glGetActiveUniformsiv + GLuint program + GLsizei uniformCount +- const GLuint *uniformIndices ++ const GLuint *uniformIndices + GLenum pname +- GLint *params ++ GLint *params + + + void glGetActiveVaryingNV +@@ -13249,6 +13906,13 @@ typedef unsigned int GLhandleARB; + + + ++ void glGetCompressedTextureImage ++ GLuint texture ++ GLint level ++ GLsizei bufSize ++ void *pixels ++ ++ + void glGetCompressedTextureImageEXT + GLuint texture + GLenum target +@@ -13256,6 +13920,19 @@ typedef unsigned int GLhandleARB; + void *img + + ++ void glGetCompressedTextureSubImage ++ GLuint texture ++ GLint level ++ GLint xoffset ++ GLint yoffset ++ GLint zoffset ++ GLsizei width ++ GLsizei height ++ GLsizei depth ++ GLsizei bufSize ++ void *pixels ++ ++ + void glGetConvolutionFilter + GLenum target + GLenum format +@@ -13374,7 +14051,7 @@ typedef unsigned int GLhandleARB; + void glGetDoublei_vEXT + GLenum pname + GLuint index +- GLdouble *params ++ GLdouble *params + + + +@@ -13449,10 +14126,17 @@ typedef unsigned int GLhandleARB; + GLfloat *data + + ++ void glGetFloati_vNV ++ GLenum target ++ GLuint index ++ GLfloat *data ++ ++ ++ + void glGetFloati_vEXT + GLenum pname + GLuint index +- GLfloat *params ++ GLfloat *params + + + +@@ -13542,12 +14226,19 @@ typedef unsigned int GLhandleARB; + GLint *params + + ++ GLenum glGetGraphicsResetStatus ++ ++ + GLenum glGetGraphicsResetStatusARB + + + GLenum glGetGraphicsResetStatusEXT + + ++ GLenum glGetGraphicsResetStatusKHR ++ ++ ++ + GLhandleARB glGetHandleARB + GLenum pname + +@@ -13713,6 +14404,15 @@ typedef unsigned int GLhandleARB; + GLint *params + + ++ void glGetInternalformatSampleivNV ++ GLenum target ++ GLenum internalformat ++ GLsizei samples ++ GLenum pname ++ GLsizei bufSize ++ GLint *params ++ ++ + void glGetInvariantBooleanvEXT + GLuint id + GLenum value +@@ -14036,6 +14736,18 @@ typedef unsigned int GLhandleARB; + + + ++ void glGetNamedBufferParameteri64v ++ GLuint buffer ++ GLenum pname ++ GLint64 *params ++ ++ ++ void glGetNamedBufferParameteriv ++ GLuint buffer ++ GLenum pname ++ GLint *params ++ ++ + void glGetNamedBufferParameterivEXT + GLuint buffer + GLenum pname +@@ -14048,12 +14760,25 @@ typedef unsigned int GLhandleARB; + GLuint64EXT *params + + ++ void glGetNamedBufferPointerv ++ GLuint buffer ++ GLenum pname ++ void **params ++ ++ + void glGetNamedBufferPointervEXT + GLuint buffer + GLenum pname + void **params + + ++ void glGetNamedBufferSubData ++ GLuint buffer ++ GLintptr offset ++ GLsizei size ++ void *data ++ ++ + void glGetNamedBufferSubDataEXT + GLuint buffer + GLintptr offset +@@ -14061,6 +14786,13 @@ typedef unsigned int GLhandleARB; + void *data + + ++ void glGetNamedFramebufferAttachmentParameteriv ++ GLuint framebuffer ++ GLenum attachment ++ GLenum pname ++ GLint *params ++ ++ + void glGetNamedFramebufferAttachmentParameterivEXT + GLuint framebuffer + GLenum attachment +@@ -14068,6 +14800,12 @@ typedef unsigned int GLhandleARB; + GLint *params + + ++ void glGetNamedFramebufferParameteriv ++ GLuint framebuffer ++ GLenum pname ++ GLint *param ++ ++ + void glGetNamedFramebufferParameterivEXT + GLuint framebuffer + GLenum pname +@@ -14116,6 +14854,12 @@ typedef unsigned int GLhandleARB; + GLint *params + + ++ void glGetNamedRenderbufferParameteriv ++ GLuint renderbuffer ++ GLenum pname ++ GLint *params ++ ++ + void glGetNamedRenderbufferParameterivEXT + GLuint renderbuffer + GLenum pname +@@ -14645,6 +15389,17 @@ typedef unsigned int GLhandleARB; + GLchar *name + + ++ void glGetProgramResourcefvNV ++ GLuint program ++ GLenum programInterface ++ GLuint index ++ GLsizei propCount ++ const GLenum *props ++ GLsizei bufSize ++ GLsizei *length ++ GLfloat *params ++ ++ + void glGetProgramResourceiv + GLuint program + GLenum programInterface +@@ -14702,6 +15457,34 @@ typedef unsigned int GLhandleARB; + + + ++ void glGetQueryBufferObjecti64v ++ GLuint id ++ GLuint buffer ++ GLenum pname ++ GLintptr offset ++ ++ ++ void glGetQueryBufferObjectiv ++ GLuint id ++ GLuint buffer ++ GLenum pname ++ GLintptr offset ++ ++ ++ void glGetQueryBufferObjectui64v ++ GLuint id ++ GLuint buffer ++ GLenum pname ++ GLintptr offset ++ ++ ++ void glGetQueryBufferObjectuiv ++ GLuint id ++ GLuint buffer ++ GLenum pname ++ GLintptr offset ++ ++ + void glGetQueryIndexediv + GLenum target + GLuint index +@@ -14825,12 +15608,26 @@ typedef unsigned int GLhandleARB; + GLint *params + + ++ void glGetSamplerParameterIivEXT ++ GLuint sampler ++ GLenum pname ++ GLint *params ++ ++ ++ + void glGetSamplerParameterIuiv + GLuint sampler + GLenum pname + GLuint *params + + ++ void glGetSamplerParameterIuivEXT ++ GLuint sampler ++ GLenum pname ++ GLuint *params ++ ++ ++ + void glGetSamplerParameterfv + GLuint sampler + GLenum pname +@@ -15129,6 +15926,15 @@ typedef unsigned int GLhandleARB; + GLuint texture + + ++ void glGetTextureImage ++ GLuint texture ++ GLint level ++ GLenum format ++ GLenum type ++ GLsizei bufSize ++ void *pixels ++ ++ + void glGetTextureImageEXT + GLuint texture + GLenum target +@@ -15138,6 +15944,13 @@ typedef unsigned int GLhandleARB; + void *pixels + + ++ void glGetTextureLevelParameterfv ++ GLuint texture ++ GLint level ++ GLenum pname ++ GLfloat *params ++ ++ + void glGetTextureLevelParameterfvEXT + GLuint texture + GLenum target +@@ -15146,6 +15959,13 @@ typedef unsigned int GLhandleARB; + GLfloat *params + + ++ void glGetTextureLevelParameteriv ++ GLuint texture ++ GLint level ++ GLenum pname ++ GLint *params ++ ++ + void glGetTextureLevelParameterivEXT + GLuint texture + GLenum target +@@ -15154,6 +15974,12 @@ typedef unsigned int GLhandleARB; + GLint *params + + ++ void glGetTextureParameterIiv ++ GLuint texture ++ GLenum pname ++ GLint *params ++ ++ + void glGetTextureParameterIivEXT + GLuint texture + GLenum target +@@ -15161,6 +15987,12 @@ typedef unsigned int GLhandleARB; + GLint *params + + ++ void glGetTextureParameterIuiv ++ GLuint texture ++ GLenum pname ++ GLuint *params ++ ++ + void glGetTextureParameterIuivEXT + GLuint texture + GLenum target +@@ -15168,6 +16000,12 @@ typedef unsigned int GLhandleARB; + GLuint *params + + ++ void glGetTextureParameterfv ++ GLuint texture ++ GLenum pname ++ GLfloat *params ++ ++ + void glGetTextureParameterfvEXT + GLuint texture + GLenum target +@@ -15175,6 +16013,12 @@ typedef unsigned int GLhandleARB; + GLfloat *params + + ++ void glGetTextureParameteriv ++ GLuint texture ++ GLenum pname ++ GLint *params ++ ++ + void glGetTextureParameterivEXT + GLuint texture + GLenum target +@@ -15192,6 +16036,21 @@ typedef unsigned int GLhandleARB; + GLuint sampler + + ++ void glGetTextureSubImage ++ GLuint texture ++ GLint level ++ GLint xoffset ++ GLint yoffset ++ GLint zoffset ++ GLsizei width ++ GLsizei height ++ GLsizei depth ++ GLenum format ++ GLenum type ++ GLsizei bufSize ++ void *pixels ++ ++ + void glGetTrackMatrixivNV + GLenum target + GLuint address +@@ -15227,6 +16086,26 @@ typedef unsigned int GLhandleARB; + GLint *location + + ++ void glGetTransformFeedbacki64_v ++ GLuint xfb ++ GLenum pname ++ GLuint index ++ GLint64 *param ++ ++ ++ void glGetTransformFeedbacki_v ++ GLuint xfb ++ GLenum pname ++ GLuint index ++ GLint *param ++ ++ ++ void glGetTransformFeedbackiv ++ GLuint xfb ++ GLenum pname ++ GLint *param ++ ++ + void glGetTranslatedShaderSourceANGLE + GLuint shader + GLsizei bufsize +@@ -15276,38 +16155,38 @@ typedef unsigned int GLhandleARB; + void glGetUniformdv + GLuint program + GLint location +- GLdouble *params ++ GLdouble *params + + + void glGetUniformfv + GLuint program + GLint location +- GLfloat *params ++ GLfloat *params + + + void glGetUniformfvARB + GLhandleARB programObj + GLint location +- GLfloat *params ++ GLfloat *params + + + + void glGetUniformi64vNV + GLuint program + GLint location +- GLint64EXT *params ++ GLint64EXT *params + + + void glGetUniformiv + GLuint program + GLint location +- GLint *params ++ GLint *params + + + void glGetUniformivARB + GLhandleARB programObj + GLint location +- GLint *params ++ GLint *params + + + +@@ -15371,6 +16250,20 @@ typedef unsigned int GLhandleARB; + const GLchar *name + + ++ void glGetVertexArrayIndexed64iv ++ GLuint vaobj ++ GLuint index ++ GLenum pname ++ GLint64 *param ++ ++ ++ void glGetVertexArrayIndexediv ++ GLuint vaobj ++ GLuint index ++ GLenum pname ++ GLint *param ++ ++ + void glGetVertexArrayIntegeri_vEXT + GLuint vaobj + GLuint index +@@ -15397,6 +16290,12 @@ typedef unsigned int GLhandleARB; + void **param + + ++ void glGetVertexArrayiv ++ GLuint vaobj ++ GLenum pname ++ GLint *param ++ ++ + void glGetVertexAttribArrayObjectfvATI + GLuint index + GLenum pname +@@ -15607,6 +16506,14 @@ typedef unsigned int GLhandleARB; + GLuint *params + + ++ void glGetnColorTable ++ GLenum target ++ GLenum format ++ GLenum type ++ GLsizei bufSize ++ void *table ++ ++ + void glGetnColorTableARB + GLenum target + GLenum format +@@ -15615,6 +16522,13 @@ typedef unsigned int GLhandleARB; + void *table + + ++ void glGetnCompressedTexImage ++ GLenum target ++ GLint lod ++ GLsizei bufSize ++ void *pixels ++ ++ + void glGetnCompressedTexImageARB + GLenum target + GLint lod +@@ -15622,6 +16536,14 @@ typedef unsigned int GLhandleARB; + void *img + + ++ void glGetnConvolutionFilter ++ GLenum target ++ GLenum format ++ GLenum type ++ GLsizei bufSize ++ void *image ++ ++ + void glGetnConvolutionFilterARB + GLenum target + GLenum format +@@ -15630,6 +16552,15 @@ typedef unsigned int GLhandleARB; + void *image + + ++ void glGetnHistogram ++ GLenum target ++ GLboolean reset ++ GLenum format ++ GLenum type ++ GLsizei bufSize ++ void *values ++ ++ + void glGetnHistogramARB + GLenum target + GLboolean reset +@@ -15639,6 +16570,13 @@ typedef unsigned int GLhandleARB; + void *values + + ++ void glGetnMapdv ++ GLenum target ++ GLenum query ++ GLsizei bufSize ++ GLdouble *v ++ ++ + void glGetnMapdvARB + GLenum target + GLenum query +@@ -15646,6 +16584,13 @@ typedef unsigned int GLhandleARB; + GLdouble *v + + ++ void glGetnMapfv ++ GLenum target ++ GLenum query ++ GLsizei bufSize ++ GLfloat *v ++ ++ + void glGetnMapfvARB + GLenum target + GLenum query +@@ -15653,6 +16598,13 @@ typedef unsigned int GLhandleARB; + GLfloat *v + + ++ void glGetnMapiv ++ GLenum target ++ GLenum query ++ GLsizei bufSize ++ GLint *v ++ ++ + void glGetnMapivARB + GLenum target + GLenum query +@@ -15660,6 +16612,15 @@ typedef unsigned int GLhandleARB; + GLint *v + + ++ void glGetnMinmax ++ GLenum target ++ GLboolean reset ++ GLenum format ++ GLenum type ++ GLsizei bufSize ++ void *values ++ ++ + void glGetnMinmaxARB + GLenum target + GLboolean reset +@@ -15669,29 +16630,63 @@ typedef unsigned int GLhandleARB; + void *values + + ++ void glGetnPixelMapfv ++ GLenum map ++ GLsizei bufSize ++ GLfloat *values ++ ++ + void glGetnPixelMapfvARB + GLenum map + GLsizei bufSize + GLfloat *values + + ++ void glGetnPixelMapuiv ++ GLenum map ++ GLsizei bufSize ++ GLuint *values ++ ++ + void glGetnPixelMapuivARB + GLenum map + GLsizei bufSize + GLuint *values + + ++ void glGetnPixelMapusv ++ GLenum map ++ GLsizei bufSize ++ GLushort *values ++ ++ + void glGetnPixelMapusvARB + GLenum map + GLsizei bufSize + GLushort *values + + ++ void glGetnPolygonStipple ++ GLsizei bufSize ++ GLubyte *pattern ++ ++ + void glGetnPolygonStippleARB + GLsizei bufSize + GLubyte *pattern + + ++ void glGetnSeparableFilter ++ GLenum target ++ GLenum format ++ GLenum type ++ GLsizei rowBufSize ++ void *row ++ GLsizei columnBufSize ++ void *column ++ void *span ++ ++ + void glGetnSeparableFilterARB + GLenum target + GLenum format +@@ -15703,6 +16698,15 @@ typedef unsigned int GLhandleARB; + void *span + + ++ void glGetnTexImage ++ GLenum target ++ GLint level ++ GLenum format ++ GLenum type ++ GLsizei bufSize ++ void *pixels ++ ++ + void glGetnTexImageARB + GLenum target + GLint level +@@ -15712,6 +16716,13 @@ typedef unsigned int GLhandleARB; + void *img + + ++ void glGetnUniformdv ++ GLuint program ++ GLint location ++ GLsizei bufSize ++ GLdouble *params ++ ++ + void glGetnUniformdvARB + GLuint program + GLint location +@@ -15719,6 +16730,13 @@ typedef unsigned int GLhandleARB; + GLdouble *params + + ++ void glGetnUniformfv ++ GLuint program ++ GLint location ++ GLsizei bufSize ++ GLfloat *params ++ ++ + void glGetnUniformfvARB + GLuint program + GLint location +@@ -15733,6 +16751,21 @@ typedef unsigned int GLhandleARB; + GLfloat *params + + ++ void glGetnUniformfvKHR ++ GLuint program ++ GLint location ++ GLsizei bufSize ++ GLfloat *params ++ ++ ++ ++ void glGetnUniformiv ++ GLuint program ++ GLint location ++ GLsizei bufSize ++ GLint *params ++ ++ + void glGetnUniformivARB + GLuint program + GLint location +@@ -15747,6 +16780,21 @@ typedef unsigned int GLhandleARB; + GLint *params + + ++ void glGetnUniformivKHR ++ GLuint program ++ GLint location ++ GLsizei bufSize ++ GLint *params ++ ++ ++ ++ void glGetnUniformuiv ++ GLuint program ++ GLint location ++ GLsizei bufSize ++ GLuint *params ++ ++ + void glGetnUniformuivARB + GLuint program + GLint location +@@ -15754,6 +16802,14 @@ typedef unsigned int GLhandleARB; + GLuint *params + + ++ void glGetnUniformuivKHR ++ GLuint program ++ GLint location ++ GLsizei bufSize ++ GLuint *params ++ ++ ++ + void glGlobalAlphaFactorbSUN + GLbyte factor + +@@ -15998,6 +17054,22 @@ typedef unsigned int GLhandleARB; + const GLenum *attachments + + ++ void glInvalidateNamedFramebufferData ++ GLuint framebuffer ++ GLsizei numAttachments ++ const GLenum *attachments ++ ++ ++ void glInvalidateNamedFramebufferSubData ++ GLuint framebuffer ++ GLsizei numAttachments ++ const GLenum *attachments ++ GLint x ++ GLint y ++ GLsizei width ++ GLsizei height ++ ++ + void glInvalidateSubFramebuffer + GLenum target + GLsizei numAttachments +@@ -16057,6 +17129,18 @@ typedef unsigned int GLhandleARB; + GLuint index + + ++ GLboolean glIsEnablediEXT ++ GLenum target ++ GLuint index ++ ++ ++ ++ GLboolean glIsEnablediNV ++ GLenum target ++ GLuint index ++ ++ ++ + GLboolean glIsFenceAPPLE + GLuint fence + +@@ -16715,11 +17799,23 @@ typedef unsigned int GLhandleARB; + GLfixed v2 + + ++ void *glMapNamedBuffer ++ GLuint buffer ++ GLenum access ++ ++ + void *glMapNamedBufferEXT + GLuint buffer + GLenum access + + ++ void *glMapNamedBufferRange ++ GLuint buffer ++ GLintptr offset ++ GLsizei length ++ GLbitfield access ++ ++ + void *glMapNamedBufferRangeEXT + GLuint buffer + GLintptr offset +@@ -16893,10 +17989,25 @@ typedef unsigned int GLhandleARB; + + + ++ void glMatrixLoad3x2fNV ++ GLenum matrixMode ++ const GLfloat *m ++ ++ ++ void glMatrixLoad3x3fNV ++ GLenum matrixMode ++ const GLfloat *m ++ ++ + void glMatrixLoadIdentityEXT + GLenum mode + + ++ void glMatrixLoadTranspose3x3fNV ++ GLenum matrixMode ++ const GLfloat *m ++ ++ + void glMatrixLoadTransposedEXT + GLenum mode + const GLdouble *m +@@ -16922,6 +18033,21 @@ typedef unsigned int GLhandleARB; + + + ++ void glMatrixMult3x2fNV ++ GLenum matrixMode ++ const GLfloat *m ++ ++ ++ void glMatrixMult3x3fNV ++ GLenum matrixMode ++ const GLfloat *m ++ ++ ++ void glMatrixMultTranspose3x3fNV ++ GLenum matrixMode ++ const GLfloat *m ++ ++ + void glMatrixMultTransposedEXT + GLenum mode + const GLdouble *m +@@ -17116,6 +18242,23 @@ typedef unsigned int GLhandleARB; + + + ++ void glMultiDrawArraysIndirectEXT ++ GLenum mode ++ const void *indirect ++ GLsizei drawcount ++ GLsizei stride ++ ++ ++ ++ void glMultiDrawArraysIndirectBindlessCountNV ++ GLenum mode ++ const void *indirect ++ GLsizei drawCount ++ GLsizei maxDrawCount ++ GLsizei stride ++ GLint vertexBufferCount ++ ++ + void glMultiDrawArraysIndirectBindlessNV + GLenum mode + const void *indirect +@@ -17156,6 +18299,16 @@ typedef unsigned int GLhandleARB; + const GLint *basevertex + + ++ void glMultiDrawElementsBaseVertexEXT ++ GLenum mode ++ const GLsizei *count ++ GLenum type ++ const void *const*indices ++ GLsizei primcount ++ const GLint *basevertex ++ ++ ++ + void glMultiDrawElementsEXT + GLenum mode + const GLsizei *count +@@ -17173,6 +18326,15 @@ typedef unsigned int GLhandleARB; + GLsizei stride + + ++ void glMultiDrawElementsIndirectEXT ++ GLenum mode ++ GLenum type ++ const void *indirect ++ GLsizei drawcount ++ GLsizei stride ++ ++ ++ + void glMultiDrawElementsIndirectAMD + GLenum mode + GLenum type +@@ -17182,6 +18344,16 @@ typedef unsigned int GLhandleARB; + + + ++ void glMultiDrawElementsIndirectBindlessCountNV ++ GLenum mode ++ GLenum type ++ const void *indirect ++ GLsizei drawCount ++ GLsizei maxDrawCount ++ GLsizei stride ++ GLint vertexBufferCount ++ ++ + void glMultiDrawElementsIndirectBindlessNV + GLenum mode + GLenum type +@@ -18110,6 +19282,13 @@ typedef unsigned int GLhandleARB; + const void *pixels + + ++ void glNamedBufferData ++ GLuint buffer ++ GLsizei size ++ const void *data ++ GLenum usage ++ ++ + void glNamedBufferDataEXT + GLuint buffer + GLsizeiptr size +@@ -18117,6 +19296,27 @@ typedef unsigned int GLhandleARB; + GLenum usage + + ++ void glNamedBufferPageCommitmentARB ++ GLuint buffer ++ GLintptr offset ++ GLsizeiptr size ++ GLboolean commit ++ ++ ++ void glNamedBufferPageCommitmentEXT ++ GLuint buffer ++ GLintptr offset ++ GLsizeiptr size ++ GLboolean commit ++ ++ ++ void glNamedBufferStorage ++ GLuint buffer ++ GLsizei size ++ const void *data ++ GLbitfield flags ++ ++ + void glNamedBufferStorageEXT + GLuint buffer + GLsizeiptr size +@@ -18124,6 +19324,13 @@ typedef unsigned int GLhandleARB; + GLbitfield flags + + ++ void glNamedBufferSubData ++ GLuint buffer ++ GLintptr offset ++ GLsizei size ++ const void *data ++ ++ + void glNamedBufferSubDataEXT + GLuint buffer + GLintptr offset +@@ -18139,12 +19346,41 @@ typedef unsigned int GLhandleARB; + GLsizeiptr size + + ++ void glNamedFramebufferDrawBuffer ++ GLuint framebuffer ++ GLenum buf ++ ++ ++ void glNamedFramebufferDrawBuffers ++ GLuint framebuffer ++ GLsizei n ++ const GLenum *bufs ++ ++ ++ void glNamedFramebufferParameteri ++ GLuint framebuffer ++ GLenum pname ++ GLint param ++ ++ + void glNamedFramebufferParameteriEXT + GLuint framebuffer + GLenum pname + GLint param + + ++ void glNamedFramebufferReadBuffer ++ GLuint framebuffer ++ GLenum src ++ ++ ++ void glNamedFramebufferRenderbuffer ++ GLuint framebuffer ++ GLenum attachment ++ GLenum renderbuffertarget ++ GLuint renderbuffer ++ ++ + void glNamedFramebufferRenderbufferEXT + GLuint framebuffer + GLenum attachment +@@ -18152,6 +19388,13 @@ typedef unsigned int GLhandleARB; + GLuint renderbuffer + + ++ void glNamedFramebufferTexture ++ GLuint framebuffer ++ GLenum attachment ++ GLuint texture ++ GLint level ++ ++ + void glNamedFramebufferTexture1DEXT + GLuint framebuffer + GLenum attachment +@@ -18192,6 +19435,14 @@ typedef unsigned int GLhandleARB; + GLenum face + + ++ void glNamedFramebufferTextureLayer ++ GLuint framebuffer ++ GLenum attachment ++ GLuint texture ++ GLint level ++ GLint layer ++ ++ + void glNamedFramebufferTextureLayerEXT + GLuint framebuffer + GLenum attachment +@@ -18304,6 +19555,13 @@ typedef unsigned int GLhandleARB; + const void *string + + ++ void glNamedRenderbufferStorage ++ GLuint renderbuffer ++ GLenum internalformat ++ GLsizei width ++ GLsizei height ++ ++ + void glNamedRenderbufferStorageEXT + GLuint renderbuffer + GLenum internalformat +@@ -18311,6 +19569,14 @@ typedef unsigned int GLhandleARB; + GLsizei height + + ++ void glNamedRenderbufferStorageMultisample ++ GLuint renderbuffer ++ GLsizei samples ++ GLenum internalformat ++ GLsizei width ++ GLsizei height ++ ++ + void glNamedRenderbufferStorageMultisampleCoverageEXT + GLuint renderbuffer + GLsizei coverageSamples +@@ -18672,6 +19938,12 @@ typedef unsigned int GLhandleARB; + GLint value + + ++ void glPatchParameteriEXT ++ GLenum pname ++ GLint value ++ ++ ++ + void glPathColorGenNV + GLenum color + GLenum genMode +@@ -18709,6 +19981,26 @@ typedef unsigned int GLhandleARB; + GLenum genMode + + ++ GLenum glPathGlyphIndexArrayNV ++ GLuint firstPathName ++ GLenum fontTarget ++ const void *fontName ++ GLbitfield fontStyle ++ GLuint firstGlyphIndex ++ GLsizei numGlyphs ++ GLuint pathParameterTemplate ++ GLfloat emScale ++ ++ ++ GLenum glPathGlyphIndexRangeNV ++ GLenum fontTarget ++ const void *fontName ++ GLbitfield fontStyle ++ GLuint pathParameterTemplate ++ GLfloat emScale ++ GLuint baseAndCount[2] ++ ++ + void glPathGlyphRangeNV + GLuint firstPathName + GLenum fontTarget +@@ -18734,6 +20026,18 @@ typedef unsigned int GLhandleARB; + GLfloat emScale + + ++ GLenum glPathMemoryGlyphIndexArrayNV ++ GLuint firstPathName ++ GLenum fontTarget ++ GLsizeiptr fontSize ++ const void *fontData ++ GLsizei faceIndex ++ GLuint firstGlyphIndex ++ GLsizei numGlyphs ++ GLuint pathParameterTemplate ++ GLfloat emScale ++ ++ + void glPathParameterfNV + GLuint path + GLenum pname +@@ -19104,6 +20408,13 @@ typedef unsigned int GLhandleARB; + GLfixed units + + ++ void glPolygonOffsetClampEXT ++ GLfloat factor ++ GLfloat units ++ GLfloat clamp ++ ++ ++ + void glPolygonStipple + const GLubyte *mask + +@@ -19165,6 +20476,17 @@ typedef unsigned int GLhandleARB; + GLuint key1 + + ++ void glPrimitiveBoundingBoxEXT ++ GLfloat minX ++ GLfloat minY ++ GLfloat minZ ++ GLfloat minW ++ GLfloat maxX ++ GLfloat maxY ++ GLfloat maxZ ++ GLfloat maxW ++ ++ + void glPrimitiveRestartIndex + GLuint index + +@@ -19516,6 +20838,14 @@ typedef unsigned int GLhandleARB; + + + ++ void glProgramPathFragmentInputGenNV ++ GLuint program ++ GLint location ++ GLenum genMode ++ GLint components ++ const GLfloat *coeffs ++ ++ + void glProgramStringARB + GLenum target + GLenum format +@@ -20723,7 +22053,7 @@ typedef unsigned int GLhandleARB; + + + void glReadBuffer +- GLenum mode ++ GLenum src + + + +@@ -20753,6 +22083,17 @@ typedef unsigned int GLhandleARB; + + + ++ void glReadnPixels ++ GLint x ++ GLint y ++ GLsizei width ++ GLsizei height ++ GLenum format ++ GLenum type ++ GLsizei bufSize ++ void *data ++ ++ + void glReadnPixelsARB + GLint x + GLint y +@@ -20762,6 +22103,7 @@ typedef unsigned int GLhandleARB; + GLenum type + GLsizei bufSize + void *data ++ + + + void glReadnPixelsEXT +@@ -20773,6 +22115,19 @@ typedef unsigned int GLhandleARB; + GLenum type + GLsizei bufSize + void *data ++ ++ ++ ++ void glReadnPixelsKHR ++ GLint x ++ GLint y ++ GLsizei width ++ GLsizei height ++ GLenum format ++ GLenum type ++ GLsizei bufSize ++ void *data ++ + + + void glRectd +@@ -21253,12 +22608,26 @@ typedef unsigned int GLhandleARB; + const GLint *param + + ++ void glSamplerParameterIivEXT ++ GLuint sampler ++ GLenum pname ++ const GLint *param ++ ++ ++ + void glSamplerParameterIuiv + GLuint sampler + GLenum pname + const GLuint *param + + ++ void glSamplerParameterIuivEXT ++ GLuint sampler ++ GLenum pname ++ const GLuint *param ++ ++ ++ + void glSamplerParameterf + GLuint sampler + GLenum pname +@@ -21323,6 +22692,13 @@ typedef unsigned int GLhandleARB; + const GLint *v + + ++ void glScissorArrayvNV ++ GLuint first ++ GLsizei count ++ const GLint *v ++ ++ ++ + void glScissorIndexed + GLuint index + GLint left +@@ -21331,11 +22707,26 @@ typedef unsigned int GLhandleARB; + GLsizei height + + ++ void glScissorIndexedNV ++ GLuint index ++ GLint left ++ GLint bottom ++ GLsizei width ++ GLsizei height ++ ++ ++ + void glScissorIndexedv + GLuint index + const GLint *v + + ++ void glScissorIndexedvNV ++ GLuint index ++ const GLint *v ++ ++ ++ + void glSecondaryColor3b + GLbyte red + GLbyte green +@@ -21863,6 +23254,44 @@ typedef unsigned int GLhandleARB; + GLuint mask + + ++ void glStencilThenCoverFillPathInstancedNV ++ GLsizei numPaths ++ GLenum pathNameType ++ const void *paths ++ GLuint pathBase ++ GLenum fillMode ++ GLuint mask ++ GLenum coverMode ++ GLenum transformType ++ const GLfloat *transformValues ++ ++ ++ void glStencilThenCoverFillPathNV ++ GLuint path ++ GLenum fillMode ++ GLuint mask ++ GLenum coverMode ++ ++ ++ void glStencilThenCoverStrokePathInstancedNV ++ GLsizei numPaths ++ GLenum pathNameType ++ const void *paths ++ GLuint pathBase ++ GLint reference ++ GLuint mask ++ GLenum coverMode ++ GLenum transformType ++ const GLfloat *transformValues ++ ++ ++ void glStencilThenCoverStrokePathNV ++ GLuint path ++ GLint reference ++ GLuint mask ++ GLenum coverMode ++ ++ + void glStopInstrumentsSGIX + GLint marker + +@@ -22005,6 +23434,15 @@ typedef unsigned int GLhandleARB; + GLsizeiptr size + + ++ void glTexBufferRangeEXT ++ GLenum target ++ GLenum internalformat ++ GLuint buffer ++ GLintptr offset ++ GLsizeiptr size ++ ++ ++ + void glTexBumpParameterfvATI + GLenum pname + const GLfloat *param +@@ -23092,10 +24530,19 @@ typedef unsigned int GLhandleARB; + + + ++ void glTextureBarrier ++ ++ + void glTextureBarrierNV + + + ++ void glTextureBuffer ++ GLuint texture ++ GLenum internalformat ++ GLuint buffer ++ ++ + void glTextureBufferEXT + GLuint texture + GLenum target +@@ -23103,6 +24550,14 @@ typedef unsigned int GLhandleARB; + GLuint buffer + + ++ void glTextureBufferRange ++ GLuint texture ++ GLenum internalformat ++ GLuint buffer ++ GLintptr offset ++ GLsizei size ++ ++ + void glTextureBufferRangeEXT + GLuint texture + GLenum target +@@ -23228,6 +24683,12 @@ typedef unsigned int GLhandleARB; + GLboolean resident + + ++ void glTextureParameterIiv ++ GLuint texture ++ GLenum pname ++ const GLint *params ++ ++ + void glTextureParameterIivEXT + GLuint texture + GLenum target +@@ -23235,6 +24696,12 @@ typedef unsigned int GLhandleARB; + const GLint *params + + ++ void glTextureParameterIuiv ++ GLuint texture ++ GLenum pname ++ const GLuint *params ++ ++ + void glTextureParameterIuivEXT + GLuint texture + GLenum target +@@ -23242,6 +24709,12 @@ typedef unsigned int GLhandleARB; + const GLuint *params + + ++ void glTextureParameterf ++ GLuint texture ++ GLenum pname ++ GLfloat param ++ ++ + void glTextureParameterfEXT + GLuint texture + GLenum target +@@ -23250,6 +24723,12 @@ typedef unsigned int GLhandleARB; + + + ++ void glTextureParameterfv ++ GLuint texture ++ GLenum pname ++ const GLfloat *param ++ ++ + void glTextureParameterfvEXT + GLuint texture + GLenum target +@@ -23257,6 +24736,12 @@ typedef unsigned int GLhandleARB; + const GLfloat *params + + ++ void glTextureParameteri ++ GLuint texture ++ GLenum pname ++ GLint param ++ ++ + void glTextureParameteriEXT + GLuint texture + GLenum target +@@ -23265,6 +24750,12 @@ typedef unsigned int GLhandleARB; + + + ++ void glTextureParameteriv ++ GLuint texture ++ GLenum pname ++ const GLint *param ++ ++ + void glTextureParameterivEXT + GLuint texture + GLenum target +@@ -23284,6 +24775,13 @@ typedef unsigned int GLhandleARB; + GLuint renderbuffer + + ++ void glTextureStorage1D ++ GLuint texture ++ GLsizei levels ++ GLenum internalformat ++ GLsizei width ++ ++ + void glTextureStorage1DEXT + GLuint texture + GLenum target +@@ -23292,6 +24790,14 @@ typedef unsigned int GLhandleARB; + GLsizei width + + ++ void glTextureStorage2D ++ GLuint texture ++ GLsizei levels ++ GLenum internalformat ++ GLsizei width ++ GLsizei height ++ ++ + void glTextureStorage2DEXT + GLuint texture + GLenum target +@@ -23301,6 +24807,15 @@ typedef unsigned int GLhandleARB; + GLsizei height + + ++ void glTextureStorage2DMultisample ++ GLuint texture ++ GLsizei samples ++ GLenum internalformat ++ GLsizei width ++ GLsizei height ++ GLboolean fixedsamplelocations ++ ++ + void glTextureStorage2DMultisampleEXT + GLuint texture + GLenum target +@@ -23311,6 +24826,15 @@ typedef unsigned int GLhandleARB; + GLboolean fixedsamplelocations + + ++ void glTextureStorage3D ++ GLuint texture ++ GLsizei levels ++ GLenum internalformat ++ GLsizei width ++ GLsizei height ++ GLsizei depth ++ ++ + void glTextureStorage3DEXT + GLuint texture + GLenum target +@@ -23321,6 +24845,16 @@ typedef unsigned int GLhandleARB; + GLsizei depth + + ++ void glTextureStorage3DMultisample ++ GLuint texture ++ GLsizei samples ++ GLenum internalformat ++ GLsizei width ++ GLsizei height ++ GLsizei depth ++ GLboolean fixedsamplelocations ++ ++ + void glTextureStorage3DMultisampleEXT + GLuint texture + GLenum target +@@ -23343,6 +24877,16 @@ typedef unsigned int GLhandleARB; + GLbitfield flags + + ++ void glTextureSubImage1D ++ GLuint texture ++ GLint level ++ GLint xoffset ++ GLsizei width ++ GLenum format ++ GLenum type ++ const void *pixels ++ ++ + void glTextureSubImage1DEXT + GLuint texture + GLenum target +@@ -23354,6 +24898,18 @@ typedef unsigned int GLhandleARB; + const void *pixels + + ++ void glTextureSubImage2D ++ GLuint texture ++ GLint level ++ GLint xoffset ++ GLint yoffset ++ GLsizei width ++ GLsizei height ++ GLenum format ++ GLenum type ++ const void *pixels ++ ++ + void glTextureSubImage2DEXT + GLuint texture + GLenum target +@@ -23367,6 +24923,20 @@ typedef unsigned int GLhandleARB; + const void *pixels + + ++ void glTextureSubImage3D ++ GLuint texture ++ GLint level ++ GLint xoffset ++ GLint yoffset ++ GLint zoffset ++ GLsizei width ++ GLsizei height ++ GLsizei depth ++ GLenum format ++ GLenum type ++ const void *pixels ++ ++ + void glTextureSubImage3DEXT + GLuint texture + GLenum target +@@ -23393,6 +24963,18 @@ typedef unsigned int GLhandleARB; + GLuint numlayers + + ++ void glTextureViewEXT ++ GLuint texture ++ GLenum target ++ GLuint origtexture ++ GLenum internalformat ++ GLuint minlevel ++ GLuint numlevels ++ GLuint minlayer ++ GLuint numlayers ++ ++ ++ + void glTrackMatrixNV + GLenum target + GLuint address +@@ -23402,11 +24984,25 @@ typedef unsigned int GLhandleARB; + + + void glTransformFeedbackAttribsNV +- GLuint count ++ GLsizei count + const GLint *attribs + GLenum bufferMode + + ++ void glTransformFeedbackBufferBase ++ GLuint xfb ++ GLuint index ++ GLuint buffer ++ ++ ++ void glTransformFeedbackBufferRange ++ GLuint xfb ++ GLuint index ++ GLuint buffer ++ GLintptr offset ++ GLsizei size ++ ++ + void glTransformFeedbackStreamAttribsNV + GLsizei count + const GLint *attribs +@@ -23478,7 +25074,7 @@ typedef unsigned int GLhandleARB; + void glUniform1dv + GLint location + GLsizei count +- const GLdouble *value ++ const GLdouble *value + + + void glUniform1f +@@ -23495,13 +25091,13 @@ typedef unsigned int GLhandleARB; + void glUniform1fv + GLint location + GLsizei count +- const GLfloat *value ++ const GLfloat *value + + + void glUniform1fvARB + GLint location + GLsizei count +- const GLfloat *value ++ const GLfloat *value + + + +@@ -23518,7 +25114,7 @@ typedef unsigned int GLhandleARB; + void glUniform1i64vNV + GLint location + GLsizei count +- const GLint64EXT *value ++ const GLint64EXT *value + + + void glUniform1iARB +@@ -23530,13 +25126,13 @@ typedef unsigned int GLhandleARB; + void glUniform1iv + GLint location + GLsizei count +- const GLint *value ++ const GLint *value + + + void glUniform1ivARB + GLint location + GLsizei count +- const GLint *value ++ const GLint *value + + + +@@ -23553,7 +25149,7 @@ typedef unsigned int GLhandleARB; + void glUniform1ui64vNV + GLint location + GLsizei count +- const GLuint64EXT *value ++ const GLuint64EXT *value + + + void glUniform1uiEXT +@@ -23565,13 +25161,13 @@ typedef unsigned int GLhandleARB; + void glUniform1uiv + GLint location + GLsizei count +- const GLuint *value ++ const GLuint *value + + + void glUniform1uivEXT + GLint location + GLsizei count +- const GLuint *value ++ const GLuint *value + + + +@@ -23584,7 +25180,7 @@ typedef unsigned int GLhandleARB; + void glUniform2dv + GLint location + GLsizei count +- const GLdouble *value ++ const GLdouble *value + + + void glUniform2f +@@ -23603,13 +25199,13 @@ typedef unsigned int GLhandleARB; + void glUniform2fv + GLint location + GLsizei count +- const GLfloat *value ++ const GLfloat *value + + + void glUniform2fvARB + GLint location + GLsizei count +- const GLfloat *value ++ const GLfloat *value + + + +@@ -23641,13 +25237,13 @@ typedef unsigned int GLhandleARB; + void glUniform2iv + GLint location + GLsizei count +- const GLint *value ++ const GLint *value + + + void glUniform2ivARB + GLint location + GLsizei count +- const GLint *value ++ const GLint *value + + + +@@ -23699,7 +25295,7 @@ typedef unsigned int GLhandleARB; + void glUniform3dv + GLint location + GLsizei count +- const GLdouble *value ++ const GLdouble *value + + + void glUniform3f +@@ -23720,13 +25316,13 @@ typedef unsigned int GLhandleARB; + void glUniform3fv + GLint location + GLsizei count +- const GLfloat *value ++ const GLfloat *value + + + void glUniform3fvARB + GLint location + GLsizei count +- const GLfloat *value ++ const GLfloat *value + + + +@@ -23761,13 +25357,13 @@ typedef unsigned int GLhandleARB; + void glUniform3iv + GLint location + GLsizei count +- const GLint *value ++ const GLint *value + + + void glUniform3ivARB + GLint location + GLsizei count +- const GLint *value ++ const GLint *value + + + +@@ -23823,7 +25419,7 @@ typedef unsigned int GLhandleARB; + void glUniform4dv + GLint location + GLsizei count +- const GLdouble *value ++ const GLdouble *value + + + void glUniform4f +@@ -23846,13 +25442,13 @@ typedef unsigned int GLhandleARB; + void glUniform4fv + GLint location + GLsizei count +- const GLfloat *value ++ const GLfloat *value + + + void glUniform4fvARB + GLint location + GLsizei count +- const GLfloat *value ++ const GLfloat *value + + + +@@ -23890,13 +25486,13 @@ typedef unsigned int GLhandleARB; + void glUniform4iv + GLint location + GLsizei count +- const GLint *value ++ const GLint *value + + + void glUniform4ivARB + GLint location + GLsizei count +- const GLint *value ++ const GLint *value + + + +@@ -23982,21 +25578,21 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLdouble *value ++ const GLdouble *value + + + void glUniformMatrix2fv + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + void glUniformMatrix2fvARB + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24004,14 +25600,14 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLdouble *value ++ const GLdouble *value + + + void glUniformMatrix2x3fv + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24019,7 +25615,7 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24027,14 +25623,14 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLdouble *value ++ const GLdouble *value + + + void glUniformMatrix2x4fv + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24042,7 +25638,7 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24050,21 +25646,21 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLdouble *value ++ const GLdouble *value + + + void glUniformMatrix3fv + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + void glUniformMatrix3fvARB + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24072,14 +25668,14 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLdouble *value ++ const GLdouble *value + + + void glUniformMatrix3x2fv + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24087,7 +25683,7 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24095,14 +25691,14 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLdouble *value ++ const GLdouble *value + + + void glUniformMatrix3x4fv + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24110,7 +25706,7 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24118,21 +25714,21 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLdouble *value ++ const GLdouble *value + + + void glUniformMatrix4fv + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + void glUniformMatrix4fvARB + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24140,14 +25736,14 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLdouble *value ++ const GLdouble *value + + + void glUniformMatrix4x2fv + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24155,7 +25751,7 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24163,14 +25759,14 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLdouble *value ++ const GLdouble *value + + + void glUniformMatrix4x3fv + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24178,7 +25774,7 @@ typedef unsigned int GLhandleARB; + GLint location + GLsizei count + GLboolean transpose +- const GLfloat *value ++ const GLfloat *value + + + +@@ -24196,7 +25792,7 @@ typedef unsigned int GLhandleARB; + void glUniformui64vNV + GLint location + GLsizei count +- const GLuint64EXT *value ++ const GLuint64EXT *value + + + void glUnlockArraysEXT +@@ -24216,6 +25812,10 @@ typedef unsigned int GLhandleARB; + + + ++ GLboolean glUnmapNamedBuffer ++ GLuint buffer ++ ++ + GLboolean glUnmapNamedBufferEXT + GLuint buffer + +@@ -24390,6 +25990,7 @@ typedef unsigned int GLhandleARB; + + void glVertex2bOES + GLbyte x ++ GLbyte y + + + void glVertex2bvOES +@@ -24462,6 +26063,7 @@ typedef unsigned int GLhandleARB; + void glVertex3bOES + GLbyte x + GLbyte y ++ GLbyte z + + + void glVertex3bvOES +@@ -24541,6 +26143,7 @@ typedef unsigned int GLhandleARB; + GLbyte x + GLbyte y + GLbyte z ++ GLbyte w + + + void glVertex4bvOES +@@ -24622,6 +26225,37 @@ typedef unsigned int GLhandleARB; + const GLfixed *coords + + ++ void glVertexArrayAttribBinding ++ GLuint vaobj ++ GLuint attribindex ++ GLuint bindingindex ++ ++ ++ void glVertexArrayAttribFormat ++ GLuint vaobj ++ GLuint attribindex ++ GLint size ++ GLenum type ++ GLboolean normalized ++ GLuint relativeoffset ++ ++ ++ void glVertexArrayAttribIFormat ++ GLuint vaobj ++ GLuint attribindex ++ GLint size ++ GLenum type ++ GLuint relativeoffset ++ ++ ++ void glVertexArrayAttribLFormat ++ GLuint vaobj ++ GLuint attribindex ++ GLint size ++ GLenum type ++ GLuint relativeoffset ++ ++ + void glVertexArrayBindVertexBufferEXT + GLuint vaobj + GLuint bindingindex +@@ -24630,6 +26264,12 @@ typedef unsigned int GLhandleARB; + GLsizei stride + + ++ void glVertexArrayBindingDivisor ++ GLuint vaobj ++ GLuint bindingindex ++ GLuint divisor ++ ++ + void glVertexArrayColorOffsetEXT + GLuint vaobj + GLuint buffer +@@ -24646,6 +26286,11 @@ typedef unsigned int GLhandleARB; + GLintptr offset + + ++ void glVertexArrayElementBuffer ++ GLuint vaobj ++ GLuint buffer ++ ++ + void glVertexArrayFogCoordOffsetEXT + GLuint vaobj + GLuint buffer +@@ -24787,6 +26432,23 @@ typedef unsigned int GLhandleARB; + GLuint divisor + + ++ void glVertexArrayVertexBuffer ++ GLuint vaobj ++ GLuint bindingindex ++ GLuint buffer ++ GLintptr offset ++ GLsizei stride ++ ++ ++ void glVertexArrayVertexBuffers ++ GLuint vaobj ++ GLuint first ++ GLsizei count ++ const GLuint *buffers ++ const GLintptr *offsets ++ const GLsizei *strides ++ ++ + void glVertexArrayVertexOffsetEXT + GLuint vaobj + GLuint buffer +@@ -26670,6 +28332,13 @@ typedef unsigned int GLhandleARB; + const GLfloat *v + + ++ void glViewportArrayvNV ++ GLuint first ++ GLsizei count ++ const GLfloat *v ++ ++ ++ + void glViewportIndexedf + GLuint index + GLfloat x +@@ -26678,11 +28347,26 @@ typedef unsigned int GLhandleARB; + GLfloat h + + ++ void glViewportIndexedfNV ++ GLuint index ++ GLfloat x ++ GLfloat y ++ GLfloat w ++ GLfloat h ++ ++ ++ + void glViewportIndexedfv + GLuint index + const GLfloat *v + + ++ void glViewportIndexedfvNV ++ GLuint index ++ const GLfloat *v ++ ++ ++ + void glWaitSync + GLsync sync + GLbitfield flags +@@ -27121,6 +28805,51 @@ typedef unsigned int GLhandleARB; + GLenum outZ + GLenum outW + ++ ++ void glCoverageModulationNV ++ GLenum components ++ ++ ++ void glCoverageModulationTableNV ++ GLsizei n ++ const GLfloat *v ++ ++ ++ void glFragmentCoverageColorNV ++ GLuint color ++ ++ ++ void glFramebufferSampleLocationsfvNV ++ GLenum target ++ GLuint start ++ GLsizei count ++ const GLfloat *v ++ ++ ++ void glGetCoverageModulationTableNV ++ GLsizei bufsize ++ GLfloat *v ++ ++ ++ void glNamedFramebufferSampleLocationsfvNV ++ GLuint framebuffer ++ GLuint start ++ GLsizei count ++ const GLfloat *v ++ ++ ++ void glRasterSamplesEXT ++ GLuint samples ++ GLboolean fixedsamplelocations ++ ++ ++ void glResolveDepthValuesNV ++ ++ ++ void glSubpixelPrecisionBiasNV ++ GLuint xbits ++ GLuint ybits ++ + + + +@@ -28955,11 +30684,13 @@ typedef unsigned int GLhandleARB; + + + ++ + + + + + ++ + + + +@@ -28978,6 +30709,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -30303,6 +32035,12 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ + + + +@@ -30523,6 +32261,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -30940,6 +32679,192 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -32675,6 +34600,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -32757,7 +34683,6 @@ typedef unsigned int GLhandleARB; + + + +- + + + +@@ -32885,8 +34810,31 @@ typedef unsigned int GLhandleARB; + + + +- +- ++ ++ ++ ++ + + + +@@ -32968,6 +34916,20 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -33099,10 +35061,7 @@ typedef unsigned int GLhandleARB; + + + +- +- +- +- ++ + + + +@@ -33116,6 +35075,14 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -33209,6 +35176,12 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ + + + +@@ -33300,6 +35273,17 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -33359,12 +35343,18 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ + + + +- + +- + + + +@@ -33374,6 +35364,12 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ + + + +@@ -33425,6 +35421,140 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -33638,11 +35768,6 @@ typedef unsigned int GLhandleARB; + + + +- +- +- +- +- + + + +@@ -33721,8 +35846,6 @@ typedef unsigned int GLhandleARB; + + + +- +- + + + +@@ -33769,6 +35892,12 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ + + + +@@ -34252,6 +36381,21 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -34730,10 +36874,8 @@ typedef unsigned int GLhandleARB; + + + +- +- +- +- ++ ++ + + + +@@ -34766,11 +36908,24 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + +- ++ + + + +@@ -34856,6 +37011,11 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ + + + +@@ -35148,9 +37308,7 @@ typedef unsigned int GLhandleARB; + + + +- + +- + + + +@@ -35178,6 +37336,12 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ + + + +@@ -36069,6 +38233,13 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ + + + +@@ -36087,6 +38258,13 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ + + + +@@ -36264,6 +38442,11 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ + + + +@@ -36745,6 +38928,54 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -36876,6 +39107,45 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -36950,6 +39220,9 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ + + + +@@ -37006,10 +39279,7 @@ typedef unsigned int GLhandleARB; + + + +- +- +- +- ++ + + + +@@ -37047,16 +39317,19 @@ typedef unsigned int GLhandleARB; + + + +- +- +- +- ++ + + + + + + ++ ++ ++ ++ ++ ++ + + + +@@ -37184,10 +39457,7 @@ typedef unsigned int GLhandleARB; + + + +- +- +- +- ++ + + + +@@ -37206,6 +39476,19 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -37221,6 +39504,19 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -37230,6 +39526,18 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -37367,6 +39675,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -37428,7 +39737,9 @@ typedef unsigned int GLhandleARB; + + + ++ + ++ + + + +@@ -37451,6 +39762,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -37477,6 +39789,59 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -37550,6 +39915,41 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -37608,10 +40008,20 @@ typedef unsigned int GLhandleARB; + + + +- ++ + ++ ++ ++ ++ ++ ++ ++ ++ ++ + + ++ + + + +@@ -37649,6 +40059,17 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -37725,6 +40146,18 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -37867,6 +40300,16 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -38428,25 +40871,41 @@ typedef unsigned int GLhandleARB; + + + +- ++ + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -38561,6 +41020,41 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -38701,7 +41195,13 @@ typedef unsigned int GLhandleARB; + + + +- ++ ++ ++ ++ ++ ++ ++ + + + +@@ -38787,7 +41287,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -38797,6 +41297,15 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -38996,6 +41505,11 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ + + + +@@ -39023,6 +41537,13 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ + + + +@@ -39052,6 +41573,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -39061,6 +41583,28 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -39103,10 +41647,8 @@ typedef unsigned int GLhandleARB; + + + +- +- +- +- ++ ++ + + + +@@ -39269,12 +41811,25 @@ typedef unsigned int GLhandleARB; + + + ++ + + + + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -39342,7 +41897,7 @@ typedef unsigned int GLhandleARB; + + + +- ++ + + + +@@ -39396,13 +41951,11 @@ typedef unsigned int GLhandleARB; + + + +- + + + + + +- + + + +@@ -39471,9 +42024,6 @@ typedef unsigned int GLhandleARB; + + + +- +- +- + + + +@@ -39500,9 +42050,6 @@ typedef unsigned int GLhandleARB; + + + +- +- +- + + + +@@ -39515,15 +42062,80 @@ typedef unsigned int GLhandleARB; + + + +- +- +- +- + + + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -39653,6 +42265,11 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ + + + +@@ -39674,8 +42291,26 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + ++ ++ + + + +@@ -39704,6 +42339,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -39713,7 +42349,6 @@ typedef unsigned int GLhandleARB; + + + +- + + + +@@ -39787,10 +42422,7 @@ typedef unsigned int GLhandleARB; + + + +- +- +- +- ++ + + + +@@ -39966,6 +42598,13 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ + + + +@@ -40303,6 +42942,31 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -40348,6 +43012,10 @@ typedef unsigned int GLhandleARB; + + + ++ ++ ++ ++ + + + +@@ -40372,6 +43040,7 @@ typedef unsigned int GLhandleARB; + + + ++ + + + +@@ -40713,22 +43382,18 @@ typedef unsigned int GLhandleARB; + + + +- +- +- ++ ++ ++ + + +- +- +- +- +- +- ++ ++ + + +- +- +- ++ ++ ++ + + + +@@ -40887,8 +43552,8 @@ typedef unsigned int GLhandleARB; + + + +- +- ++ ++ + + + +diff --git a/registry/glx.xml b/registry/glx.xml +index 224f893..025e9f9 100644 +--- a/registry/glx.xml ++++ b/registry/glx.xml +@@ -84,11 +84,14 @@ typedef unsigned __int64 uint64_t; + + + ++ + + + + ++ + ++ + + + +@@ -331,6 +334,7 @@ typedef unsigned __int64 uint64_t; + + + ++ + + + +@@ -385,7 +389,9 @@ typedef unsigned __int64 uint64_t; + + + +- ++ ++ ++ + + + +@@ -677,6 +683,20 @@ typedef unsigned __int64 uint64_t; + int iVideoBuffer + + ++ void glXBlitContextFramebufferAMD ++ GLXContext dstCtx ++ GLint srcX0 ++ GLint srcY0 ++ GLint srcX1 ++ GLint srcY1 ++ GLint dstX0 ++ GLint dstY0 ++ GLint dstX1 ++ GLint dstY1 ++ GLbitfield mask ++ GLenum filter ++ ++ + int glXChannelRectSGIX + Display *display + int screen +@@ -714,6 +734,28 @@ typedef unsigned __int64 uint64_t; + int *attribList + + ++ void glXCopyBufferSubDataNV ++ Display *dpy ++ GLXContext readCtx ++ GLXContext writeCtx ++ GLenum readTarget ++ GLenum writeTarget ++ GLintptr readOffset ++ GLintptr writeOffset ++ GLsizeiptr size ++ ++ ++ void glXNamedCopyBufferSubDataNV ++ Display *dpy ++ GLXContext readCtx ++ GLXContext writeCtx ++ GLuint readBuffer ++ GLuint writeBuffer ++ GLintptr readOffset ++ GLintptr writeOffset ++ GLsizeiptr size ++ ++ + void glXCopyContext + Display *dpy + GLXContext src +@@ -751,6 +793,17 @@ typedef unsigned __int64 uint64_t; + int height + + ++ GLXContext glXCreateAssociatedContextAMD ++ unsigned int id ++ GLXContext share_list ++ ++ ++ GLXContext glXCreateAssociatedContextAttribsAMD ++ unsigned int id ++ GLXContext share_context ++ const int *attribList ++ ++ + GLXContext glXCreateContextAttribsARB + Display *dpy + GLXFBConfig config +@@ -850,6 +903,10 @@ typedef unsigned __int64 uint64_t; + GLfloat seconds + + ++ Bool glXDeleteAssociatedContextAMD ++ GLXContext ctx ++ ++ + void glXDestroyContext + Display *dpy + GLXContext ctx +@@ -896,11 +953,21 @@ typedef unsigned __int64 uint64_t; + int *nelements + + ++ unsigned int *glXEnumerateVideoDevicesNV ++ Display *dpy ++ int screen ++ int *nelements ++ ++ + void glXFreeContextEXT + Display *dpy + GLXContext context + + ++ unsigned int glXGetAGPOffsetMESA ++ const void *pointer ++ ++ + const char *glXGetClientString + Display *dpy + int name +@@ -913,10 +980,17 @@ typedef unsigned __int64 uint64_t; + int *value + + ++ unsigned int glXGetContextGPUIDAMD ++ GLXContext ctx ++ ++ + GLXContextID glXGetContextIDEXT + const GLXContext context + + ++ GLXContext glXGetCurrentAssociatedContextAMD ++ ++ + GLXContext glXGetCurrentContext + + +@@ -960,6 +1034,19 @@ typedef unsigned __int64 uint64_t; + int *nelements + + ++ unsigned int glXGetGPUIDsAMD ++ unsigned int maxCount ++ unsigned int *ids ++ ++ ++ int glXGetGPUInfoAMD ++ unsigned int id ++ int property ++ GLenum dataType ++ unsigned int size ++ void *data ++ ++ + Bool glXGetMscRateOML + Display *dpy + GLXDrawable drawable +@@ -1074,6 +1161,10 @@ typedef unsigned __int64 uint64_t; + GLXVideoCaptureDeviceNV device + + ++ Bool glXMakeAssociatedContextCurrentAMD ++ GLXContext ctx ++ ++ + Bool glXMakeContextCurrent + Display *dpy + GLXDrawable draw +@@ -1367,16 +1458,6 @@ typedef unsigned __int64 uint64_t; + + void glXWaitX + +- +- unsigned int *glXEnumerateVideoDevicesNV +- Display *dpy +- int screen +- int *nelements +- +- +- unsigned int glXGetAGPOffsetMESA +- const void *pointer +- + + + +@@ -1559,6 +1640,22 @@ typedef unsigned __int64 uint64_t; + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -1803,6 +1900,12 @@ typedef unsigned __int64 uint64_t; + + + ++ ++ ++ ++ ++ ++ + + + +@@ -1853,7 +1956,7 @@ typedef unsigned __int64 uint64_t; + + + +- ++ + + + +diff --git a/registry/wgl.xml b/registry/wgl.xml +index 102185a..55569d9 100644 +--- a/registry/wgl.xml ++++ b/registry/wgl.xml +@@ -168,6 +168,7 @@ + extensions and API versions). --> + + ++ + + + +@@ -326,11 +327,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -372,7 +373,9 @@ + + + +- ++ ++ ++ + + + +@@ -1373,6 +1376,44 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -1385,15 +1426,80 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + + + +- ++ + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -1452,29 +1558,9 @@ + + + +- +- +- +- +- +- +- +- +- ++ + +- +- +- +- +- +- +- +- +- +- +- +- +- ++ + + + +@@ -1517,52 +1603,34 @@ + + + +- +- +- +- +- +- ++ + +- ++ + + +- ++ + +- +- +- +- +- +- +- +- ++ + + +- ++ + +- +- +- +- ++ + + +- ++ + +- +- +- +- ++ + + +- ++ + +- ++ + + +- ++ + +- ++ + + + +@@ -1578,6 +1646,11 @@ + + + ++ ++ ++ ++ ++ + + + +@@ -1585,6 +1658,12 @@ + + + ++ ++ ++ ++ ++ ++ + + + +@@ -1655,43 +1734,19 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ + +- +- ++ + + +- ++ + +- +- ++ ++ + + +- ++ + +- +- +- +- +- +- + + + +@@ -1765,9 +1820,33 @@ + + + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- + + + +@@ -1783,23 +1862,21 @@ + + + +- +- +- +- +- +- +- +- +- +- ++ + +- ++ ++ ++ ++ ++ ++ ++ + + +- ++ + +- ++ ++ + + + +@@ -1810,29 +1887,6 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + + +@@ -1859,40 +1913,6 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + + +@@ -1904,53 +1924,43 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + +- ++ + ++ ++ + + +- ++ + +- ++ ++ ++ ++ ++ ++ + + + diff --git a/mingw-w64-libepoxy/PKGBUILD b/mingw-w64-libepoxy/PKGBUILD new file mode 100644 index 0000000000..3eeb97cb9f --- /dev/null +++ b/mingw-w64-libepoxy/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: Ignacio Casal Quinteiro + +_realname=libepoxy +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.2 +pkgrel=1 +pkgdesc="A library for handling OpenGL function pointer management for you. (mingw-w64)" +arch=('any') +url="https://github.com/anholt/libepoxy" +license=("MIT") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + ) +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-python3" + "util-macros") +options=('strip' 'staticlibs') +source=(https://github.com/anholt/${_realname}/archive/v${pkgver}.tar.gz + 0001-135f7bf1043ca2a48d88d920fd46f3fe0097f359.all.patch + 0002-e9ce388f746f6c0557b863a38648ae1646658951.all.patch) +sha256sums=('42c328440f60a5795835c5ec4bdfc1329e75bba16b6e22b3a87ed17e9679e8f6' + 'd1569d83c2b669f167b94e091e978fd277f5ac7eebcccd75e8ca2e0f5728cee6' + 'cb5685dedbb63aa298c4017f4a764774566f6c0b076b12e355b2d5e346867761') + +prepare() { + cd ${srcdir}/${_realname}-${pkgver} + + patch -Np1 -i "$srcdir/0001-135f7bf1043ca2a48d88d920fd46f3fe0097f359.all.patch" + patch -Np1 -i "$srcdir/0002-e9ce388f746f6c0557b863a38648ae1646658951.all.patch" + + autoreconf -fi +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install +} From 3ef9ba93786af8c5f44b2ddcf1e99bb30100e190 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 19 Mar 2015 13:15:22 +0300 Subject: [PATCH 0683/2060] mingw-w64 runtime: Update to git SHA [1c3d2c1] --- mingw-w64-crt-git/0006-d3d11_32.patch | 114 -------------------------- mingw-w64-crt-git/PKGBUILD | 9 +- mingw-w64-headers-git/PKGBUILD | 2 +- 3 files changed, 4 insertions(+), 121 deletions(-) delete mode 100644 mingw-w64-crt-git/0006-d3d11_32.patch diff --git a/mingw-w64-crt-git/0006-d3d11_32.patch b/mingw-w64-crt-git/0006-d3d11_32.patch deleted file mode 100644 index 9d1d48e0f0..0000000000 --- a/mingw-w64-crt-git/0006-d3d11_32.patch +++ /dev/null @@ -1,114 +0,0 @@ -From ddf2219d6eaa7991ef8de76539573f8fc8b85c41 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Wed, 18 Feb 2015 15:14:04 +0300 -Subject: [PATCH] Fix 32-bit def file for d3d11.dll. Symbols need have argument - count. - ---- - mingw-w64-crt/lib32/d3d11.def | 92 +++++++++++++++++++++---------------------- - 1 file changed, 46 insertions(+), 46 deletions(-) - -diff --git a/mingw-w64-crt/lib32/d3d11.def b/mingw-w64-crt/lib32/d3d11.def -index fd661e4..80708bc 100644 ---- a/mingw-w64-crt/lib32/d3d11.def -+++ b/mingw-w64-crt/lib32/d3d11.def -@@ -5,50 +5,50 @@ - ; - LIBRARY "d3d11.dll" - EXPORTS --D3DKMTCloseAdapter --D3DKMTDestroyAllocation --D3DKMTDestroyContext --D3DKMTDestroyDevice --D3DKMTDestroySynchronizationObject --D3DKMTQueryAdapterInfo --D3DKMTSetDisplayPrivateDriverFormat --D3DKMTSignalSynchronizationObject --D3DKMTUnlock --D3DKMTWaitForSynchronizationObject -+D3DKMTCloseAdapter@4 -+D3DKMTDestroyAllocation@4 -+D3DKMTDestroyContext@4 -+D3DKMTDestroyDevice@4 -+D3DKMTDestroySynchronizationObject@4 -+D3DKMTQueryAdapterInfo@4 -+D3DKMTSetDisplayPrivateDriverFormat@4 -+D3DKMTSignalSynchronizationObject@4 -+D3DKMTUnlock@4 -+D3DKMTWaitForSynchronizationObject@4 - EnableFeatureLevelUpgrade --OpenAdapter10 --OpenAdapter10_2 --D3D11CoreCreateDevice --D3D11CoreCreateLayeredDevice --D3D11CoreGetLayeredDeviceSize --D3D11CoreRegisterLayers --D3D11CreateDevice --D3D11CreateDeviceAndSwapChain --D3DKMTCreateAllocation --D3DKMTCreateContext --D3DKMTCreateDevice --D3DKMTCreateSynchronizationObject --D3DKMTEscape --D3DKMTGetContextSchedulingPriority --D3DKMTGetDeviceState --D3DKMTGetDisplayModeList --D3DKMTGetMultisampleMethodList --D3DKMTGetRuntimeData --D3DKMTGetSharedPrimaryHandle --D3DKMTLock --D3DKMTOpenAdapterFromHdc --D3DKMTOpenResource --D3DKMTPresent --D3DKMTQueryAllocationResidency --D3DKMTQueryResourceInfo --D3DKMTRender --D3DKMTSetAllocationPriority --D3DKMTSetContextSchedulingPriority --D3DKMTSetDisplayMode --D3DKMTSetGammaRamp --D3DKMTSetVidPnSourceOwner --D3DKMTWaitForVerticalBlankEvent --D3DPerformance_BeginEvent --D3DPerformance_EndEvent --D3DPerformance_GetStatus --D3DPerformance_SetMarker -+OpenAdapter10@4 -+OpenAdapter10_2@4 -+D3D11CoreCreateDevice@40 -+D3D11CoreCreateLayeredDevice@20 -+D3D11CoreGetLayeredDeviceSize@8 -+D3D11CoreRegisterLayers@8 -+D3D11CreateDevice@40 -+D3D11CreateDeviceAndSwapChain@48 -+D3DKMTCreateAllocation@4 -+D3DKMTCreateContext@4 -+D3DKMTCreateDevice@4 -+D3DKMTCreateSynchronizationObject@4 -+D3DKMTEscape@4 -+D3DKMTGetContextSchedulingPriority@4 -+D3DKMTGetDeviceState@4 -+D3DKMTGetDisplayModeList@4 -+D3DKMTGetMultisampleMethodList@4 -+D3DKMTGetRuntimeData@4 -+D3DKMTGetSharedPrimaryHandle@4 -+D3DKMTLock@4 -+D3DKMTOpenAdapterFromHdc@4 -+D3DKMTOpenResource@4 -+D3DKMTPresent@4 -+D3DKMTQueryAllocationResidency@4 -+D3DKMTQueryResourceInfo@4 -+D3DKMTRender@4 -+D3DKMTSetAllocationPriority@4 -+D3DKMTSetContextSchedulingPriority@4 -+D3DKMTSetDisplayMode@4 -+D3DKMTSetGammaRamp@4 -+D3DKMTSetVidPnSourceOwner@4 -+D3DKMTWaitForVerticalBlankEvent@4 -+D3DPerformance_BeginEvent@8 -+D3DPerformance_EndEvent@4 -+D3DPerformance_GetStatus@4 -+D3DPerformance_SetMarker@8 --- -2.3.0 - diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 65ae06c639..0ebfa767e4 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4452.f801436 +pkgver=5.0.0.4472.1c3d2c1 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -20,15 +20,13 @@ source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" - "0005-Add-missing-DirectX11-enum.patch" - "0006-d3d11_32.patch") + "0005-Add-missing-DirectX11-enum.patch") md5sums=('SKIP' '0bcf1726f2093c6ed7e998d7e6c9dd16' '20172a91981ffa87aa6aa5d3001c290b' '410ff7ad4443a9f2e318c64742b2d358' '28a4074ee6fcf76b5b13db2a8cd3291c' - '652859ad478448a70c2074a854a313ec' - '8cc67bab94acc6b1c23a6130bc80fbdb') + '652859ad478448a70c2074a854a313ec') pkgver() { cd "$srcdir/${_realname}" @@ -45,7 +43,6 @@ prepare() { git am "${srcdir}/"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch git am "${srcdir}/"0005-Add-missing-DirectX11-enum.patch - git am "${srcdir}/"0006-d3d11_32.patch } build() { diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 0140a33c33..23e9f4e580 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4454.f6e2518 +pkgver=5.0.0.4472.1c3d2c1 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From 4c54e1e8c6e8531a578e9d89634d5321bd51c970 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 20 Mar 2015 10:40:17 +0300 Subject: [PATCH 0684/2060] openssl: Update to 1.0.2a --- mingw-w64-openssl/PKGBUILD | 34 +- mingw-w64-openssl/openssl-1.0.1-ipv6.patch | 678 ------------------ mingw-w64-openssl/openssl-1.0.1-x32.patch | 22 +- mingw-w64-openssl/openssl-1.0.2-ipv6.patch | 611 ++++++++++++++++ .../openssl-1.0.2-s_client-verify.patch | 17 + ...ch => openssl-1.0.2a-parallel-build.patch} | 253 ++++--- 6 files changed, 803 insertions(+), 812 deletions(-) delete mode 100644 mingw-w64-openssl/openssl-1.0.1-ipv6.patch create mode 100644 mingw-w64-openssl/openssl-1.0.2-ipv6.patch create mode 100644 mingw-w64-openssl/openssl-1.0.2-s_client-verify.patch rename mingw-w64-openssl/{openssl-1.0.1-parallel-build.patch => openssl-1.0.2a-parallel-build.patch} (82%) diff --git a/mingw-w64-openssl/PKGBUILD b/mingw-w64-openssl/PKGBUILD index d192a3c343..d844e9dabc 100644 --- a/mingw-w64-openssl/PKGBUILD +++ b/mingw-w64-openssl/PKGBUILD @@ -2,7 +2,9 @@ _realname=openssl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.0.2 +_ver=1.0.2a +# use a pacman compatible version scheme +pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} pkgrel=1 arch=('any') pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (mingw-w64)" @@ -11,40 +13,44 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' '!buildflags' 'staticlibs') license=('BSD') url="http://www.openssl.org" -noextract=(${_realname}-${pkgver}.tar.gz) -source=(http://www.openssl.org/source/${_realname}-$pkgver.tar.gz{,.asc} +noextract=(${_realname}-${_ver}.tar.gz) +source=(http://www.openssl.org/source/${_realname}-${_ver}.tar.gz{,.asc} 'openssl-1.0.0a-ldflags.patch' 'openssl-1.0.0d-windres.patch' - 'openssl-1.0.1-parallel-build.patch' + 'openssl-1.0.2a-parallel-build.patch' 'openssl-1.0.1-x32.patch' 'openssl-0.9.6-x509.patch' + 'openssl-1.0.2-s_client-verify.patch' 'openssl-1.0.1i-relocation.patch') -md5sums=('38373013fc85c790aabf8837969c5eba' +md5sums=('a06c547dac9044161a477211049f60ef' 'SKIP' '9e0abad8dd17079815d9e92345c5adcb' '835a78dbe9c8690dbdd9190aaf5432e7' - '12b97a21380bd471d0c9705e7dc8a23b' - 'f10e6de3515a15128faae808287a8c84' + '1d363d5e19c6eb4144b49f9daadefd5f' + '87610b76871d53d4b6f07374000dae87' 'cae4eea6db48a254653fd1903cfabd15' + 'c7856c88da72348a76a666d42cba0f46' 'd8ed0865f35216a5e420e37d7a4e2515') +validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491') prepare() { cd $startdir/ # Clean up old sources so re-patching doesn't fail. - [ -d $srcdir/${_realname}-$pkgver ] && rm -rf $srcdir/${_realname}-$pkgver - tar -xzvf ${_realname}-${pkgver}.tar.gz -C $srcdir - cd $srcdir/${_realname}-$pkgver + [[ -d $srcdir/${_realname}-${_ver} ]] && rm -rf $srcdir/${_realname}-${_ver} + tar -xzvf ${_realname}-${_ver}.tar.gz -C $srcdir + cd $srcdir/${_realname}-${_ver} patch -p1 -i ${srcdir}/openssl-1.0.0a-ldflags.patch patch -p1 -i ${srcdir}/openssl-1.0.0d-windres.patch - patch -p1 -i ${srcdir}/openssl-1.0.1-parallel-build.patch + patch -p1 -i ${srcdir}/openssl-1.0.2a-parallel-build.patch + patch -p1 -i ${srcdir}/openssl-1.0.2-s_client-verify.patch patch -p1 -i ${srcdir}/openssl-1.0.1-x32.patch patch -p1 -i ${srcdir}/openssl-0.9.6-x509.patch patch -p1 -i ${srcdir}/openssl-1.0.1i-relocation.patch # No support for out-of-source builds mkdir -p $srcdir/build-${CARCH} - cp -a ${srcdir}/${_realname}-${pkgver}/* ${srcdir}/build-${CARCH} + cp -a ${srcdir}/${_realname}-${_ver}/* ${srcdir}/build-${CARCH} # Use mingw cflags instead of hardcoded ones sed -i -e '/^"mingw"/ s/-fomit-frame-pointer -O3 -march=i486 -Wall/-O2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4/' ${srcdir}/build-${CARCH}/Configure @@ -71,12 +77,16 @@ build() enable-mdc2 \ enable-tlsext \ enable-rfc3779 + make ZLIB_INCLUDE=-"I${MINGW_PREFIX}/include" depend all -j1 } package() { cd "$srcdir/build-${CARCH}" make -j1 INSTALL_PREFIX="$pkgdir" MANDIR=${MINGW_PREFIX}/share/man MANSUFFIX=ssl install + + install -D -m644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + chmod -R 755 "${pkgdir}${MINGW_PREFIX}"/bin chmod -R 644 "${pkgdir}${MINGW_PREFIX}"/lib chmod -R 755 "${pkgdir}${MINGW_PREFIX}"/lib/engines diff --git a/mingw-w64-openssl/openssl-1.0.1-ipv6.patch b/mingw-w64-openssl/openssl-1.0.1-ipv6.patch deleted file mode 100644 index 4955c65d31..0000000000 --- a/mingw-w64-openssl/openssl-1.0.1-ipv6.patch +++ /dev/null @@ -1,678 +0,0 @@ -http://rt.openssl.org/Ticket/Display.html?id=2051 -user/pass: guest/guest - -Index: apps/s_apps.h -=================================================================== -RCS file: /v/openssl/cvs/openssl/apps/s_apps.h,v -retrieving revision 1.21.2.1 -diff -u -r1.21.2.1 s_apps.h ---- apps/s_apps.h 4 Sep 2009 17:42:04 -0000 1.21.2.1 -+++ apps/s_apps.h 28 Dec 2011 00:28:14 -0000 -@@ -148,7 +148,7 @@ - #define PORT_STR "4433" - #define PROTOCOL "tcp" - --int do_server(int port, int type, int *ret, int (*cb) (char *hostname, int s, unsigned char *context), unsigned char *context); -+int do_server(int port, int type, int *ret, int (*cb) (char *hostname, int s, unsigned char *context), unsigned char *context, int use_ipv4, int use_ipv6); - #ifdef HEADER_X509_H - int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx); - #endif -@@ -156,7 +156,7 @@ - int set_cert_stuff(SSL_CTX *ctx, char *cert_file, char *key_file); - int set_cert_key_stuff(SSL_CTX *ctx, X509 *cert, EVP_PKEY *key); - #endif --int init_client(int *sock, char *server, int port, int type); -+int init_client(int *sock, char *server, int port, int type, int use_ipv4, int use_ipv6); - int should_retry(int i); - int extract_port(char *str, short *port_ptr); - int extract_host_port(char *str,char **host_ptr,unsigned char *ip,short *p); -Index: apps/s_cb.c -=================================================================== -RCS file: /v/openssl/cvs/openssl/apps/s_cb.c,v -retrieving revision 1.27.2.8.2.2 -diff -u -r1.27.2.8.2.2 s_cb.c ---- apps/s_cb.c 13 Nov 2011 13:13:13 -0000 1.27.2.8.2.2 -+++ apps/s_cb.c 28 Dec 2011 00:28:14 -0000 -Index: apps/s_client.c -=================================================================== -RCS file: /v/openssl/cvs/openssl/apps/s_client.c,v -retrieving revision 1.123.2.6.2.10 -diff -u -r1.123.2.6.2.10 s_client.c ---- apps/s_client.c 14 Dec 2011 22:18:02 -0000 1.123.2.6.2.10 -+++ apps/s_client.c 28 Dec 2011 00:28:14 -0000 -@@ -285,6 +285,9 @@ - { - BIO_printf(bio_err,"usage: s_client args\n"); - BIO_printf(bio_err,"\n"); -+#if OPENSSL_USE_IPV6 -+ BIO_printf(bio_err," -6 - use IPv6\n"); -+#endif - BIO_printf(bio_err," -host host - use -connect instead\n"); - BIO_printf(bio_err," -port port - use -connect instead\n"); - BIO_printf(bio_err," -connect host:port - who to connect to (default is %s:%s)\n",SSL_HOST_NAME,PORT_STR); -@@ -564,6 +567,7 @@ - int sbuf_len,sbuf_off; - fd_set readfds,writefds; - short port=PORT; -+ int use_ipv4, use_ipv6; - int full_log=1; - char *host=SSL_HOST_NAME; - char *cert_file=NULL,*key_file=NULL; -@@ -609,7 +613,11 @@ - #endif - char *sess_in = NULL; - char *sess_out = NULL; -- struct sockaddr peer; -+#if OPENSSL_USE_IPV6 -+ struct sockaddr_storage peer; -+#else -+ struct sockaddr_in peer; -+#endif - int peerlen = sizeof(peer); - int enable_timeouts = 0 ; - long socket_mtu = 0; -@@ -630,6 +638,8 @@ - meth=SSLv2_client_method(); - #endif - -+ use_ipv4 = 1; -+ use_ipv6 = 0; - apps_startup(); - c_Pause=0; - c_quiet=0; -@@ -951,6 +961,13 @@ - jpake_secret = *++argv; - } - #endif -+#if OPENSSL_USE_IPV6 -+ else if (strcmp(*argv,"-6") == 0) -+ { -+ use_ipv4 = 0; -+ use_ipv6 = 1; -+ } -+#endif - else if (strcmp(*argv,"-use_srtp") == 0) - { - if (--argc < 1) goto bad; -@@ -967,7 +984,7 @@ - keymatexportlen=atoi(*(++argv)); - if (keymatexportlen == 0) goto bad; - } -- else -+ else - { - BIO_printf(bio_err,"unknown option %s\n",*argv); - badop=1; -@@ -1259,7 +1276,7 @@ - - re_start: - -- if (init_client(&s,host,port,socket_type) == 0) -+ if (init_client(&s,host,port,socket_type,use_ipv4,use_ipv6) == 0) - { - BIO_printf(bio_err,"connect:errno=%d\n",get_last_socket_error()); - SHUTDOWN(s); -@@ -1285,7 +1302,7 @@ - { - - sbio=BIO_new_dgram(s,BIO_NOCLOSE); -- if (getsockname(s, &peer, (void *)&peerlen) < 0) -+ if (getsockname(s, (struct sockaddr *)&peer, (void *)&peerlen) < 0) - { - BIO_printf(bio_err, "getsockname:errno=%d\n", - get_last_socket_error()); -@@ -2036,7 +2061,7 @@ - BIO_printf(bio,"Expansion: %s\n", - expansion ? SSL_COMP_get_name(expansion) : "NONE"); - #endif -- -+ - #ifdef SSL_DEBUG - { - /* Print out local port of connection: useful for debugging */ -=================================================================== -RCS file: /v/openssl/cvs/openssl/apps/s_server.c,v -retrieving revision 1.136.2.15.2.13 -diff -u -r1.136.2.15.2.13 s_server.c ---- apps/s_server.c 27 Dec 2011 14:23:22 -0000 1.136.2.15.2.13 -+++ apps/s_server.c 28 Dec 2011 00:28:14 -0000 -@@ -558,6 +558,10 @@ - # endif - BIO_printf(bio_err," -use_srtp profiles - Offer SRTP key management with a colon-separated profile list"); - #endif -+ BIO_printf(bio_err," -4 - use IPv4 only\n"); -+#if OPENSSL_USE_IPV6 -+ BIO_printf(bio_err," -6 - use IPv6 only\n"); -+#endif - BIO_printf(bio_err," -keymatexport label - Export keying material using label\n"); - BIO_printf(bio_err," -keymatexportlen len - Export len bytes of keying material (default 20)\n"); - } -@@ -943,6 +947,7 @@ - int state=0; - const SSL_METHOD *meth=NULL; - int socket_type=SOCK_STREAM; -+ int use_ipv4, use_ipv6; - ENGINE *e=NULL; - char *inrand=NULL; - int s_cert_format = FORMAT_PEM, s_key_format = FORMAT_PEM; -@@ -981,6 +986,12 @@ - /* #error no SSL version enabled */ - #endif - -+ use_ipv4 = 1; -+#if OPENSSL_USE_IPV6 -+ use_ipv6 = 1; -+#else -+ use_ipv6 = 0; -+#endif - local_argc=argc; - local_argv=argv; - -@@ -1329,6 +1340,18 @@ - jpake_secret = *(++argv); - } - #endif -+ else if (strcmp(*argv,"-4") == 0) -+ { -+ use_ipv4 = 1; -+ use_ipv6 = 0; -+ } -+#if OPENSSL_USE_IPV6 -+ else if (strcmp(*argv,"-6") == 0) -+ { -+ use_ipv4 = 0; -+ use_ipv6 = 1; -+ } -+#endif - else if (strcmp(*argv,"-use_srtp") == 0) - { - if (--argc < 1) goto bad; -@@ -1884,9 +1907,9 @@ - BIO_printf(bio_s_out,"ACCEPT\n"); - (void)BIO_flush(bio_s_out); - if (www) -- do_server(port,socket_type,&accept_socket,www_body, context); -+ do_server(port,socket_type,&accept_socket,www_body, context, use_ipv4, use_ipv6); - else -- do_server(port,socket_type,&accept_socket,sv_body, context); -+ do_server(port,socket_type,&accept_socket,sv_body, context, use_ipv4, use_ipv6); - print_stats(bio_s_out,ctx); - ret=0; - end: -Index: apps/s_socket.c -=================================================================== -RCS file: /v/openssl/cvs/openssl/apps/s_socket.c,v -retrieving revision 1.43.2.3.2.2 -diff -u -r1.43.2.3.2.2 s_socket.c ---- apps/s_socket.c 2 Dec 2011 14:39:40 -0000 1.43.2.3.2.2 -+++ apps/s_socket.c 28 Dec 2011 00:28:14 -0000 -@@ -97,16 +97,16 @@ - #include "netdb.h" - #endif - --static struct hostent *GetHostByName(char *name); -+static struct hostent *GetHostByName(char *name, int domain); - #if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)) - static void ssl_sock_cleanup(void); - #endif - static int ssl_sock_init(void); --static int init_client_ip(int *sock,unsigned char ip[4], int port, int type); --static int init_server(int *sock, int port, int type); --static int init_server_long(int *sock, int port,char *ip, int type); -+static int init_client_ip(int *sock,unsigned char *ip, int port, int type, int domain); -+static int init_server(int *sock, int port, int type, int use_ipv4, int use_ipv6); -+static int init_server_long(int *sock, int port,char *ip, int type, int use_ipv4, int use_ipv6); - static int do_accept(int acc_sock, int *sock, char **host); --static int host_ip(char *str, unsigned char ip[4]); -+static int host_ip(char *str, unsigned char *ip, int domain); - - #ifdef OPENSSL_SYS_WIN16 - #define SOCKET_PROTOCOL 0 /* more microsoft stupidity */ -@@ -234,38 +234,76 @@ - return(1); - } - --int init_client(int *sock, char *host, int port, int type) -+int init_client(int *sock, char *host, int port, int type, int use_ipv4, int use_ipv6) - { -+#if OPENSSL_USE_IPV6 -+ unsigned char ip[16]; -+#else - unsigned char ip[4]; -+#endif - -- memset(ip, '\0', sizeof ip); -- if (!host_ip(host,&(ip[0]))) -+ if (!use_ipv4 && !use_ipv6) - return 0; -- return init_client_ip(sock,ip,port,type); -- } -- --static int init_client_ip(int *sock, unsigned char ip[4], int port, int type) -- { -- unsigned long addr; -+#if OPENSSL_USE_IPV6 -+ /* we are fine here */ -+#else -+ if (use_ipv6) -+ return 0; -+#endif -+ if (use_ipv4) -+ if (host_ip(host,ip,AF_INET)) -+ return(init_client_ip(sock,ip,port,type,AF_INET)); -+#if OPENSSL_USE_IPV6 -+ if (use_ipv6) -+ if (host_ip(host,ip,AF_INET6)) -+ return(init_client_ip(sock,ip,port,type,AF_INET6)); -+#endif -+ return 0; -+ } -+ -+static int init_client_ip(int *sock, unsigned char ip[4], int port, int type, int domain) -+ { -+#if OPENSSL_USE_IPV6 -+ struct sockaddr_storage them; -+ struct sockaddr_in *them_in = (struct sockaddr_in *)&them; -+ struct sockaddr_in6 *them_in6 = (struct sockaddr_in6 *)&them; -+#else - struct sockaddr_in them; -+ struct sockaddr_in *them_in = &them; -+#endif -+ socklen_t addr_len; - int s,i; - - if (!ssl_sock_init()) return(0); - - memset((char *)&them,0,sizeof(them)); -- them.sin_family=AF_INET; -- them.sin_port=htons((unsigned short)port); -- addr=(unsigned long) -- ((unsigned long)ip[0]<<24L)| -- ((unsigned long)ip[1]<<16L)| -- ((unsigned long)ip[2]<< 8L)| -- ((unsigned long)ip[3]); -- them.sin_addr.s_addr=htonl(addr); -+ if (domain == AF_INET) -+ { -+ addr_len = (socklen_t)sizeof(struct sockaddr_in); -+ them_in->sin_family=AF_INET; -+ them_in->sin_port=htons((unsigned short)port); -+#ifndef BIT_FIELD_LIMITS -+ memcpy(&them_in->sin_addr.s_addr, ip, 4); -+#else -+ memcpy(&them_in->sin_addr, ip, 4); -+#endif -+ } -+ else -+#if OPENSSL_USE_IPV6 -+ { -+ addr_len = (socklen_t)sizeof(struct sockaddr_in6); -+ them_in6->sin6_family=AF_INET6; -+ them_in6->sin6_port=htons((unsigned short)port); -+ memcpy(&(them_in6->sin6_addr), ip, sizeof(struct in6_addr)); -+ } -+#else -+ return(0); -+#endif - - if (type == SOCK_STREAM) -- s=socket(AF_INET,SOCK_STREAM,SOCKET_PROTOCOL); -+ s=socket(domain,SOCK_STREAM,SOCKET_PROTOCOL); - else /* ( type == SOCK_DGRAM) */ -- s=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); -+ s=socket(domain,SOCK_DGRAM,IPPROTO_UDP); - - if (s == INVALID_SOCKET) { perror("socket"); return(0); } - -@@ -277,29 +315,27 @@ - if (i < 0) { perror("keepalive"); return(0); } - } - #endif -- -- if (connect(s,(struct sockaddr *)&them,sizeof(them)) == -1) -+ if (connect(s,(struct sockaddr *)&them,addr_len) == -1) - { closesocket(s); perror("connect"); return(0); } - *sock=s; - return(1); - } - --int do_server(int port, int type, int *ret, int (*cb)(char *hostname, int s, unsigned char *context), unsigned char *context) -+int do_server(int port, int type, int *ret, int (*cb)(char *hostname, int s, unsigned char *context), unsigned char *context, int use_ipv4, int use_ipv6) - { - int sock; - char *name = NULL; - int accept_socket = 0; - int i; - -- if (!init_server(&accept_socket,port,type)) return(0); -- -+ if (!init_server(&accept_socket,port,type, use_ipv4, use_ipv6)) return(0); - if (ret != NULL) - { - *ret=accept_socket; - /* return(1);*/ - } -- for (;;) -- { -+ for (;;) -+ { - if (type==SOCK_STREAM) - { - if (do_accept(accept_socket,&sock,&name) == 0) -@@ -322,41 +358,88 @@ - } - } - --static int init_server_long(int *sock, int port, char *ip, int type) -+static int init_server_long(int *sock, int port, char *ip, int type, int use_ipv4, int use_ipv6) - { - int ret=0; -+ int domain; -+#if OPENSSL_USE_IPV6 -+ struct sockaddr_storage server; -+ struct sockaddr_in *server_in = (struct sockaddr_in *)&server; -+ struct sockaddr_in6 *server_in6 = (struct sockaddr_in6 *)&server; -+#else - struct sockaddr_in server; -+ struct sockaddr_in *server_in = &server; -+#endif -+ socklen_t addr_len; - int s= -1; - -+ if (!use_ipv4 && !use_ipv6) -+ goto err; -+#if OPENSSL_USE_IPV6 -+ /* we are fine here */ -+#else -+ if (use_ipv6) -+ goto err; -+#endif - if (!ssl_sock_init()) return(0); - -- memset((char *)&server,0,sizeof(server)); -- server.sin_family=AF_INET; -- server.sin_port=htons((unsigned short)port); -- if (ip == NULL) -- server.sin_addr.s_addr=INADDR_ANY; -- else --/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */ --#ifndef BIT_FIELD_LIMITS -- memcpy(&server.sin_addr.s_addr,ip,4); -+#if OPENSSL_USE_IPV6 -+ domain = use_ipv6 ? AF_INET6 : AF_INET; - #else -- memcpy(&server.sin_addr,ip,4); -+ domain = AF_INET; - #endif -- -- if (type == SOCK_STREAM) -- s=socket(AF_INET,SOCK_STREAM,SOCKET_PROTOCOL); -- else /* type == SOCK_DGRAM */ -- s=socket(AF_INET, SOCK_DGRAM,IPPROTO_UDP); -+ if (type == SOCK_STREAM) -+ s=socket(domain,SOCK_STREAM,SOCKET_PROTOCOL); -+ else /* type == SOCK_DGRAM */ -+ s=socket(domain, SOCK_DGRAM,IPPROTO_UDP); - - if (s == INVALID_SOCKET) goto err; - #if defined SOL_SOCKET && defined SO_REUSEADDR -+ { -+ int j = 1; -+ setsockopt(s, SOL_SOCKET, SO_REUSEADDR, -+ (void *) &j, sizeof j); -+ } -+#endif -+#if OPENSSL_USE_IPV6 -+ if ((use_ipv4 == 0) && (use_ipv6 == 1)) - { -- int j = 1; -- setsockopt(s, SOL_SOCKET, SO_REUSEADDR, -- (void *) &j, sizeof j); -+ const int on = 1; -+ -+ setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, -+ (const void *) &on, sizeof(int)); - } - #endif -- if (bind(s,(struct sockaddr *)&server,sizeof(server)) == -1) -+ if (domain == AF_INET) -+ { -+ addr_len = (socklen_t)sizeof(struct sockaddr_in); -+ memset(server_in, 0, sizeof(struct sockaddr_in)); -+ server_in->sin_family=AF_INET; -+ server_in->sin_port = htons((unsigned short)port); -+ if (ip == NULL) -+ server_in->sin_addr.s_addr = htonl(INADDR_ANY); -+ else -+/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */ -+#ifndef BIT_FIELD_LIMITS -+ memcpy(&server_in->sin_addr.s_addr, ip, 4); -+#else -+ memcpy(&server_in->sin_addr, ip, 4); -+#endif -+ } -+#if OPENSSL_USE_IPV6 -+ else -+ { -+ addr_len = (socklen_t)sizeof(struct sockaddr_in6); -+ memset(server_in6, 0, sizeof(struct sockaddr_in6)); -+ server_in6->sin6_family = AF_INET6; -+ server_in6->sin6_port = htons((unsigned short)port); -+ if (ip == NULL) -+ server_in6->sin6_addr = in6addr_any; -+ else -+ memcpy(&server_in6->sin6_addr, ip, sizeof(struct in6_addr)); -+ } -+#endif -+ if (bind(s, (struct sockaddr *)&server, addr_len) == -1) - { - #ifndef OPENSSL_SYS_WINDOWS - perror("bind"); -@@ -375,16 +458,23 @@ - return(ret); - } - --static int init_server(int *sock, int port, int type) -+static int init_server(int *sock, int port, int type, int use_ipv4, int use_ipv6) - { -- return(init_server_long(sock, port, NULL, type)); -+ return(init_server_long(sock, port, NULL, type, use_ipv4, use_ipv6)); - } - - static int do_accept(int acc_sock, int *sock, char **host) - { - int ret; - struct hostent *h1,*h2; -- static struct sockaddr_in from; -+#if OPENSSL_USE_IPV6 -+ struct sockaddr_storage from; -+ struct sockaddr_in *from_in = (struct sockaddr_in *)&from; -+ struct sockaddr_in6 *from_in6 = (struct sockaddr_in6 *)&from; -+#else -+ struct sockaddr_in from; -+ struct sockaddr_in *from_in = &from; -+#endif - int len; - /* struct linger ling; */ - -@@ -431,13 +521,23 @@ - */ - - if (host == NULL) goto end; -+#if OPENSSL_USE_IPV6 -+ if (from.ss_family == AF_INET) -+#else -+ if (from.sin_family == AF_INET) -+#endif - #ifndef BIT_FIELD_LIMITS -- /* I should use WSAAsyncGetHostByName() under windows */ -- h1=gethostbyaddr((char *)&from.sin_addr.s_addr, -- sizeof(from.sin_addr.s_addr),AF_INET); -+ /* I should use WSAAsyncGetHostByName() under windows */ -+ h1=gethostbyaddr((char *)&from_in->sin_addr.s_addr, -+ sizeof(from_in->sin_addr.s_addr), AF_INET); - #else -- h1=gethostbyaddr((char *)&from.sin_addr, -- sizeof(struct in_addr),AF_INET); -+ h1=gethostbyaddr((char *)&from_in->sin_addr, -+ sizeof(struct in_addr), AF_INET); -+#endif -+#if OPENSSL_USE_IPV6 -+ else -+ h1=gethostbyaddr((char *)&from_in6->sin6_addr, -+ sizeof(struct in6_addr), AF_INET6); - #endif - if (h1 == NULL) - { -@@ -454,15 +554,23 @@ - } - BUF_strlcpy(*host,h1->h_name,strlen(h1->h_name)+1); - -- h2=GetHostByName(*host); -+#if OPENSSL_USE_IPV6 -+ h2=GetHostByName(*host, from.ss_family); -+#else -+ h2=GetHostByName(*host, from.sin_family); -+#endif - if (h2 == NULL) - { - BIO_printf(bio_err,"gethostbyname failure\n"); - return(0); - } -- if (h2->h_addrtype != AF_INET) -+#if OPENSSL_USE_IPV6 -+ if (h2->h_addrtype != from.ss_family) -+#else -+ if (h2->h_addrtype != from.sin_family) -+#endif - { -- BIO_printf(bio_err,"gethostbyname addr is not AF_INET\n"); -+ BIO_printf(bio_err,"gethostbyname addr address is not correct\n"); - return(0); - } - } -@@ -477,7 +585,7 @@ - char *h,*p; - - h=str; -- p=strchr(str,':'); -+ p=strrchr(str,':'); - if (p == NULL) - { - BIO_printf(bio_err,"no port defined\n"); -@@ -485,7 +593,7 @@ - } - *(p++)='\0'; - -- if ((ip != NULL) && !host_ip(str,ip)) -+ if ((ip != NULL) && !host_ip(str,ip,AF_INET)) - goto err; - if (host_ptr != NULL) *host_ptr=h; - -@@ -496,48 +604,58 @@ - return(0); - } - --static int host_ip(char *str, unsigned char ip[4]) -+static int host_ip(char *str, unsigned char *ip, int domain) - { -- unsigned int in[4]; -+ unsigned int in[4]; -+ unsigned long l; - int i; - -- if (sscanf(str,"%u.%u.%u.%u",&(in[0]),&(in[1]),&(in[2]),&(in[3])) == 4) -+ if ((domain == AF_INET) && -+ (sscanf(str,"%u.%u.%u.%u",&(in[0]),&(in[1]),&(in[2]),&(in[3])) == 4)) - { -+ - for (i=0; i<4; i++) - if (in[i] > 255) - { - BIO_printf(bio_err,"invalid IP address\n"); - goto err; - } -- ip[0]=in[0]; -- ip[1]=in[1]; -- ip[2]=in[2]; -- ip[3]=in[3]; -- } -+ l=htonl((in[0]<<24L)|(in[1]<<16L)|(in[2]<<8L)|in[3]); -+ memcpy(ip, &l, 4); -+ return 1; -+ } -+#if OPENSSL_USE_IPV6 -+ else if ((domain == AF_INET6) && -+ (inet_pton(AF_INET6, str, ip) == 1)) -+ return 1; -+#endif - else - { /* do a gethostbyname */ - struct hostent *he; - - if (!ssl_sock_init()) return(0); - -- he=GetHostByName(str); -+ he=GetHostByName(str,domain); - if (he == NULL) - { - BIO_printf(bio_err,"gethostbyname failure\n"); - goto err; - } - /* cast to short because of win16 winsock definition */ -- if ((short)he->h_addrtype != AF_INET) -+ if ((short)he->h_addrtype != domain) - { -- BIO_printf(bio_err,"gethostbyname addr is not AF_INET\n"); -+ BIO_printf(bio_err,"gethostbyname addr family is not correct\n"); - return(0); - } -- ip[0]=he->h_addr_list[0][0]; -- ip[1]=he->h_addr_list[0][1]; -- ip[2]=he->h_addr_list[0][2]; -- ip[3]=he->h_addr_list[0][3]; -+ if (domain == AF_INET) -+ memset(ip, 0, 4); -+#if OPENSSL_USE_IPV6 -+ else -+ memset(ip, 0, 16); -+#endif -+ memcpy(ip, he->h_addr_list[0], he->h_length); -+ return 1; - } -- return(1); - err: - return(0); - } -@@ -574,7 +692,7 @@ - static unsigned long ghbn_hits=0L; - static unsigned long ghbn_miss=0L; - --static struct hostent *GetHostByName(char *name) -+static struct hostent *GetHostByName(char *name, int domain) - { - struct hostent *ret; - int i,lowi=0; -@@ -589,14 +707,20 @@ - } - if (ghbn_cache[i].order > 0) - { -- if (strncmp(name,ghbn_cache[i].name,128) == 0) -+ if ((strncmp(name,ghbn_cache[i].name,128) == 0) && -+ (ghbn_cache[i].ent.h_addrtype == domain)) - break; - } - } - if (i == GHBN_NUM) /* no hit*/ - { - ghbn_miss++; -- ret=gethostbyname(name); -+ if (domain == AF_INET) -+ ret=gethostbyname(name); -+#if OPENSSL_USE_IPV6 -+ else -+ ret=gethostbyname2(name, AF_INET6); -+#endif - if (ret == NULL) return(NULL); - /* else add to cache */ - if(strlen(name) < sizeof ghbn_cache[0].name) diff --git a/mingw-w64-openssl/openssl-1.0.1-x32.patch b/mingw-w64-openssl/openssl-1.0.1-x32.patch index 229858bd6c..985b78de4b 100644 --- a/mingw-w64-openssl/openssl-1.0.1-x32.patch +++ b/mingw-w64-openssl/openssl-1.0.1-x32.patch @@ -8,22 +8,22 @@ Signed-Off-By: Nitin A Kamble 2011/07/13 ported the patch to the 1.0.0e version Signed-Off-By: Nitin A Kamble 2011/12/01 -Index: openssl-1.0.0e/Configure +Index: openssl-1.0.2a/Configure =================================================================== ---- openssl-1.0.0e.orig/Configure -+++ openssl-1.0.0e/Configure +--- openssl-1.0.2a.orig/Configure ++++ openssl-1.0.2a/Configure @@ -393,6 +393,7 @@ my %table=( - "debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + "debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "debug-linux-generic64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - "debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", + "debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", +"linux-x32", "gcc:-DL_ENDIAN -DTERMIO -O2 -pipe -g -feliminate-unused-debug-types -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "dist", "cc:-O::(unknown)::::::", # Basic configs that should work on any (32 and less bit) box -Index: openssl-1.0.0e/crypto/bn/asm/x86_64-gcc.c +Index: openssl-1.0.2a/crypto/bn/asm/x86_64-gcc.c =================================================================== ---- openssl-1.0.0e.orig/crypto/bn/asm/x86_64-gcc.c -+++ openssl-1.0.0e/crypto/bn/asm/x86_64-gcc.c +--- openssl-1.0.2a.orig/crypto/bn/asm/x86_64-gcc.c ++++ openssl-1.0.2a/crypto/bn/asm/x86_64-gcc.c @@ -192,9 +192,9 @@ BN_ULONG bn_add_words (BN_ULONG *rp, con asm volatile (" subq %0,%0 \n" /* clear carry */ " jmp 1f \n" @@ -50,10 +50,10 @@ Index: openssl-1.0.0e/crypto/bn/asm/x86_64-gcc.c " lea 1(%2),%2 \n" " loop 1b \n" " sbbq %0,%0 \n":"=&r" (ret), "+c"(n), -Index: openssl-1.0.0e/crypto/bn/bn.h +Index: openssl-1.0.2a/crypto/bn/bn.h =================================================================== ---- openssl-1.0.0e.orig/crypto/bn/bn.h -+++ openssl-1.0.0e/crypto/bn/bn.h +--- openssl-1.0.2a.orig/crypto/bn/bn.h ++++ openssl-1.0.2a/crypto/bn/bn.h @@ -172,6 +172,13 @@ extern "C" { # endif # endif diff --git a/mingw-w64-openssl/openssl-1.0.2-ipv6.patch b/mingw-w64-openssl/openssl-1.0.2-ipv6.patch new file mode 100644 index 0000000000..27574ea616 --- /dev/null +++ b/mingw-w64-openssl/openssl-1.0.2-ipv6.patch @@ -0,0 +1,611 @@ +http://rt.openssl.org/Ticket/Display.html?id=2051&user=guest&pass=guest + +--- openssl-1.0.2/apps/s_apps.h ++++ openssl-1.0.2/apps/s_apps.h +@@ -154,7 +154,7 @@ + int do_server(int port, int type, int *ret, + int (*cb) (char *hostname, int s, int stype, + unsigned char *context), unsigned char *context, +- int naccept); ++ int naccept, int use_ipv4, int use_ipv6); + #ifdef HEADER_X509_H + int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx); + #endif +@@ -167,7 +167,8 @@ + int ssl_print_curves(BIO *out, SSL *s, int noshared); + #endif + int ssl_print_tmp_key(BIO *out, SSL *s); +-int init_client(int *sock, char *server, int port, int type); ++int init_client(int *sock, char *server, int port, int type, ++ int use_ipv4, int use_ipv6); + int should_retry(int i); + int extract_port(char *str, short *port_ptr); + int extract_host_port(char *str, char **host_ptr, unsigned char *ip, +--- openssl-1.0.2/apps/s_client.c ++++ openssl-1.0.2/apps/s_client.c +@@ -302,6 +302,10 @@ + { + BIO_printf(bio_err, "usage: s_client args\n"); + BIO_printf(bio_err, "\n"); ++ BIO_printf(bio_err, " -4 - use IPv4 only\n"); ++#if OPENSSL_USE_IPV6 ++ BIO_printf(bio_err, " -6 - use IPv6 only\n"); ++#endif + BIO_printf(bio_err, " -host host - use -connect instead\n"); + BIO_printf(bio_err, " -port port - use -connect instead\n"); + BIO_printf(bio_err, +@@ -658,6 +662,7 @@ + int sbuf_len, sbuf_off; + fd_set readfds, writefds; + short port = PORT; ++ int use_ipv4, use_ipv6; + int full_log = 1; + char *host = SSL_HOST_NAME; + char *cert_file = NULL, *key_file = NULL, *chain_file = NULL; +@@ -709,7 +714,11 @@ + #endif + char *sess_in = NULL; + char *sess_out = NULL; +- struct sockaddr peer; ++#if OPENSSL_USE_IPV6 ++ struct sockaddr_storage peer; ++#else ++ struct sockaddr_in peer; ++#endif + int peerlen = sizeof(peer); + int fallback_scsv = 0; + int enable_timeouts = 0; +@@ -737,6 +746,12 @@ + + meth = SSLv23_client_method(); + ++ use_ipv4 = 1; ++#if OPENSSL_USE_IPV6 ++ use_ipv6 = 1; ++#else ++ use_ipv6 = 0; ++#endif + apps_startup(); + c_Pause = 0; + c_quiet = 0; +@@ -1096,6 +1111,16 @@ + jpake_secret = *++argv; + } + #endif ++ else if (strcmp(*argv,"-4") == 0) { ++ use_ipv4 = 1; ++ use_ipv6 = 0; ++ } ++#if OPENSSL_USE_IPV6 ++ else if (strcmp(*argv,"-6") == 0) { ++ use_ipv4 = 0; ++ use_ipv6 = 1; ++ } ++#endif + #ifndef OPENSSL_NO_SRTP + else if (strcmp(*argv, "-use_srtp") == 0) { + if (--argc < 1) +@@ -1421,7 +1446,7 @@ + + re_start: + +- if (init_client(&s, host, port, socket_type) == 0) { ++ if (init_client(&s, host, port, socket_type, use_ipv4, use_ipv6) == 0) { + BIO_printf(bio_err, "connect:errno=%d\n", get_last_socket_error()); + SHUTDOWN(s); + goto end; +@@ -1444,7 +1469,7 @@ + if (socket_type == SOCK_DGRAM) { + + sbio = BIO_new_dgram(s, BIO_NOCLOSE); +- if (getsockname(s, &peer, (void *)&peerlen) < 0) { ++ if (getsockname(s, (struct sockaddr *)&peer, (void *)&peerlen) < 0) { + BIO_printf(bio_err, "getsockname:errno=%d\n", + get_last_socket_error()); + SHUTDOWN(s); +--- openssl-1.0.2/apps/s_server.c ++++ openssl-1.0.2/apps/s_server.c +@@ -643,6 +643,10 @@ + BIO_printf(bio_err, + " -alpn arg - set the advertised protocols for the ALPN extension (comma-separated list)\n"); + #endif ++ BIO_printf(bio_err, " -4 - use IPv4 only\n"); ++#if OPENSSL_USE_IPV6 ++ BIO_printf(bio_err, " -6 - use IPv6 only\n"); ++#endif + BIO_printf(bio_err, + " -keymatexport label - Export keying material using label\n"); + BIO_printf(bio_err, +@@ -1070,6 +1074,7 @@ + int state = 0; + const SSL_METHOD *meth = NULL; + int socket_type = SOCK_STREAM; ++ int use_ipv4, use_ipv6; + ENGINE *e = NULL; + char *inrand = NULL; + int s_cert_format = FORMAT_PEM, s_key_format = FORMAT_PEM; +@@ -1111,6 +1116,12 @@ + + meth = SSLv23_server_method(); + ++ use_ipv4 = 1; ++#if OPENSSL_USE_IPV6 ++ use_ipv6 = 1; ++#else ++ use_ipv6 = 0; ++#endif + local_argc = argc; + local_argv = argv; + +@@ -1503,6 +1514,16 @@ + jpake_secret = *(++argv); + } + #endif ++ else if (strcmp(*argv,"-4") == 0) { ++ use_ipv4 = 1; ++ use_ipv6 = 0; ++ } ++#if OPENSSL_USE_IPV6 ++ else if (strcmp(*argv,"-6") == 0) { ++ use_ipv4 = 0; ++ use_ipv6 = 1; ++ } ++#endif + #ifndef OPENSSL_NO_SRTP + else if (strcmp(*argv, "-use_srtp") == 0) { + if (--argc < 1) +@@ -2023,13 +2044,13 @@ + (void)BIO_flush(bio_s_out); + if (rev) + do_server(port, socket_type, &accept_socket, rev_body, context, +- naccept); ++ naccept, use_ipv4, use_ipv6); + else if (www) + do_server(port, socket_type, &accept_socket, www_body, context, +- naccept); ++ naccept, use_ipv4, use_ipv6); + else + do_server(port, socket_type, &accept_socket, sv_body, context, +- naccept); ++ naccept, use_ipv4, use_ipv6); + print_stats(bio_s_out, ctx); + ret = 0; + end: +--- openssl-1.0.2/apps/s_socket.c ++++ openssl-1.0.2/apps/s_socket.c +@@ -101,16 +101,16 @@ + # include "netdb.h" + # endif + +-static struct hostent *GetHostByName(char *name); ++static struct hostent *GetHostByName(char *name, int domain); + # if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)) + static void ssl_sock_cleanup(void); + # endif + static int ssl_sock_init(void); +-static int init_client_ip(int *sock, unsigned char ip[4], int port, int type); +-static int init_server(int *sock, int port, int type); +-static int init_server_long(int *sock, int port, char *ip, int type); ++static int init_client_ip(int *sock, unsigned char *ip, int port, int type, int domain); ++static int init_server(int *sock, int port, int type, int use_ipv4, int use_ipv6); ++static int init_server_long(int *sock, int port, char *ip, int type, int use_ipv4, int use_ipv6); + static int do_accept(int acc_sock, int *sock, char **host); +-static int host_ip(char *str, unsigned char ip[4]); ++static int host_ip(char *str, unsigned char *ip, int domain); + + # ifdef OPENSSL_SYS_WIN16 + # define SOCKET_PROTOCOL 0 /* more microsoft stupidity */ +@@ -231,38 +231,68 @@ + return (1); + } + +-int init_client(int *sock, char *host, int port, int type) ++int init_client(int *sock, char *host, int port, int type, int use_ipv4, int use_ipv6) + { ++# if OPENSSL_USE_IPV6 ++ unsigned char ip[16]; ++# else + unsigned char ip[4]; ++# endif + +- memset(ip, '\0', sizeof ip); +- if (!host_ip(host, &(ip[0]))) +- return 0; +- return init_client_ip(sock, ip, port, type); +-} +- +-static int init_client_ip(int *sock, unsigned char ip[4], int port, int type) +-{ +- unsigned long addr; ++ if (use_ipv4) ++ if (host_ip(host, ip, AF_INET)) ++ return(init_client_ip(sock, ip, port, type, AF_INET)); ++# if OPENSSL_USE_IPV6 ++ if (use_ipv6) ++ if (host_ip(host, ip, AF_INET6)) ++ return(init_client_ip(sock, ip, port, type, AF_INET6)); ++# endif ++ return 0; ++} ++ ++static int init_client_ip(int *sock, unsigned char ip[4], int port, int type, int domain) ++{ ++# if OPENSSL_USE_IPV6 ++ struct sockaddr_storage them; ++ struct sockaddr_in *them_in = (struct sockaddr_in *)&them; ++ struct sockaddr_in6 *them_in6 = (struct sockaddr_in6 *)&them; ++# else + struct sockaddr_in them; ++ struct sockaddr_in *them_in = &them; ++# endif ++ socklen_t addr_len; + int s, i; + + if (!ssl_sock_init()) + return (0); + + memset((char *)&them, 0, sizeof(them)); +- them.sin_family = AF_INET; +- them.sin_port = htons((unsigned short)port); +- addr = (unsigned long) +- ((unsigned long)ip[0] << 24L) | +- ((unsigned long)ip[1] << 16L) | +- ((unsigned long)ip[2] << 8L) | ((unsigned long)ip[3]); +- them.sin_addr.s_addr = htonl(addr); ++ if (domain == AF_INET) { ++ addr_len = (socklen_t)sizeof(struct sockaddr_in); ++ them_in->sin_family=AF_INET; ++ them_in->sin_port=htons((unsigned short)port); ++# ifndef BIT_FIELD_LIMITS ++ memcpy(&them_in->sin_addr.s_addr, ip, 4); ++# else ++ memcpy(&them_in->sin_addr, ip, 4); ++# endif ++ } ++ else ++# if OPENSSL_USE_IPV6 ++ { ++ addr_len = (socklen_t)sizeof(struct sockaddr_in6); ++ them_in6->sin6_family=AF_INET6; ++ them_in6->sin6_port=htons((unsigned short)port); ++ memcpy(&(them_in6->sin6_addr), ip, sizeof(struct in6_addr)); ++ } ++# else ++ return(0); ++# endif + + if (type == SOCK_STREAM) +- s = socket(AF_INET, SOCK_STREAM, SOCKET_PROTOCOL); ++ s = socket(domain, SOCK_STREAM, SOCKET_PROTOCOL); + else /* ( type == SOCK_DGRAM) */ +- s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); ++ s = socket(domain, SOCK_DGRAM, IPPROTO_UDP); + + if (s == INVALID_SOCKET) { + perror("socket"); +@@ -280,7 +310,7 @@ + } + # endif + +- if (connect(s, (struct sockaddr *)&them, sizeof(them)) == -1) { ++ if (connect(s, (struct sockaddr *)&them, addr_len) == -1) { + closesocket(s); + perror("connect"); + return (0); +@@ -292,14 +322,14 @@ + int do_server(int port, int type, int *ret, + int (*cb) (char *hostname, int s, int stype, + unsigned char *context), unsigned char *context, +- int naccept) ++ int naccept, int use_ipv4, int use_ipv6) + { + int sock; + char *name = NULL; + int accept_socket = 0; + int i; + +- if (!init_server(&accept_socket, port, type)) ++ if (!init_server(&accept_socket, port, type, use_ipv4, use_ipv6)) + return (0); + + if (ret != NULL) { +@@ -328,32 +358,41 @@ + } + } + +-static int init_server_long(int *sock, int port, char *ip, int type) ++static int init_server_long(int *sock, int port, char *ip, int type, int use_ipv4, int use_ipv6) + { + int ret = 0; ++ int domain; ++# if OPENSSL_USE_IPV6 ++ struct sockaddr_storage server; ++ struct sockaddr_in *server_in = (struct sockaddr_in *)&server; ++ struct sockaddr_in6 *server_in6 = (struct sockaddr_in6 *)&server; ++# else + struct sockaddr_in server; ++ struct sockaddr_in *server_in = &server; ++# endif ++ socklen_t addr_len; + int s = -1; + ++ if (!use_ipv4 && !use_ipv6) ++ goto err; ++# if OPENSSL_USE_IPV6 ++ /* we are fine here */ ++# else ++ if (use_ipv6) ++ goto err; ++# endif + if (!ssl_sock_init()) + return (0); + +- memset((char *)&server, 0, sizeof(server)); +- server.sin_family = AF_INET; +- server.sin_port = htons((unsigned short)port); +- if (ip == NULL) +- server.sin_addr.s_addr = INADDR_ANY; +- else +-/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */ +-# ifndef BIT_FIELD_LIMITS +- memcpy(&server.sin_addr.s_addr, ip, 4); ++#if OPENSSL_USE_IPV6 ++ domain = use_ipv6 ? AF_INET6 : AF_INET; + # else +- memcpy(&server.sin_addr, ip, 4); ++ domain = AF_INET; + # endif +- + if (type == SOCK_STREAM) +- s = socket(AF_INET, SOCK_STREAM, SOCKET_PROTOCOL); +- else /* type == SOCK_DGRAM */ +- s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); ++ s=socket(domain, SOCK_STREAM, SOCKET_PROTOCOL); ++ else /* type == SOCK_DGRAM */ ++ s=socket(domain, SOCK_DGRAM, IPPROTO_UDP); + + if (s == INVALID_SOCKET) + goto err; +@@ -363,7 +402,42 @@ + setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void *)&j, sizeof j); + } + # endif +- if (bind(s, (struct sockaddr *)&server, sizeof(server)) == -1) { ++# if OPENSSL_USE_IPV6 ++ if ((use_ipv4 == 0) && (use_ipv6 == 1)) { ++ const int on = 1; ++ ++ setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, ++ (const void *) &on, sizeof(int)); ++ } ++# endif ++ if (domain == AF_INET) { ++ addr_len = (socklen_t)sizeof(struct sockaddr_in); ++ memset(server_in, 0, sizeof(struct sockaddr_in)); ++ server_in->sin_family=AF_INET; ++ server_in->sin_port = htons((unsigned short)port); ++ if (ip == NULL) ++ server_in->sin_addr.s_addr = htonl(INADDR_ANY); ++ else ++/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */ ++# ifndef BIT_FIELD_LIMITS ++ memcpy(&server_in->sin_addr.s_addr, ip, 4); ++# else ++ memcpy(&server_in->sin_addr, ip, 4); ++# endif ++ } ++# if OPENSSL_USE_IPV6 ++ else { ++ addr_len = (socklen_t)sizeof(struct sockaddr_in6); ++ memset(server_in6, 0, sizeof(struct sockaddr_in6)); ++ server_in6->sin6_family = AF_INET6; ++ server_in6->sin6_port = htons((unsigned short)port); ++ if (ip == NULL) ++ server_in6->sin6_addr = in6addr_any; ++ else ++ memcpy(&server_in6->sin6_addr, ip, sizeof(struct in6_addr)); ++ } ++# endif ++ if (bind(s, (struct sockaddr *)&server, addr_len) == -1) { + # ifndef OPENSSL_SYS_WINDOWS + perror("bind"); + # endif +@@ -381,16 +455,23 @@ + return (ret); + } + +-static int init_server(int *sock, int port, int type) ++static int init_server(int *sock, int port, int type, int use_ipv4, int use_ipv6) + { +- return (init_server_long(sock, port, NULL, type)); ++ return (init_server_long(sock, port, NULL, type, use_ipv4, use_ipv6)); + } + + static int do_accept(int acc_sock, int *sock, char **host) + { + int ret; + struct hostent *h1, *h2; +- static struct sockaddr_in from; ++#if OPENSSL_USE_IPV6 ++ struct sockaddr_storage from; ++ struct sockaddr_in *from_in = (struct sockaddr_in *)&from; ++ struct sockaddr_in6 *from_in6 = (struct sockaddr_in6 *)&from; ++#else ++ struct sockaddr_in from; ++ struct sockaddr_in *from_in = &from; ++#endif + int len; + /* struct linger ling; */ + +@@ -440,14 +521,25 @@ + + if (host == NULL) + goto end; ++# if OPENSSL_USE_IPV6 ++ if (from.ss_family == AF_INET) ++# else ++ if (from.sin_family == AF_INET) ++# endif + # ifndef BIT_FIELD_LIMITS +- /* I should use WSAAsyncGetHostByName() under windows */ +- h1 = gethostbyaddr((char *)&from.sin_addr.s_addr, +- sizeof(from.sin_addr.s_addr), AF_INET); ++ /* I should use WSAAsyncGetHostByName() under windows */ ++ h1 = gethostbyaddr((char *)&from_in->sin_addr.s_addr, ++ sizeof(from_in->sin_addr.s_addr), AF_INET); + # else +- h1 = gethostbyaddr((char *)&from.sin_addr, +- sizeof(struct in_addr), AF_INET); ++ h1 = gethostbyaddr((char *)&from_in->sin_addr, ++ sizeof(struct in_addr), AF_INET); ++# endif ++# if OPENSSL_USE_IPV6 ++ else ++ h1 = gethostbyaddr((char *)&from_in6->sin6_addr, ++ sizeof(struct in6_addr), AF_INET6); + # endif ++ + if (h1 == NULL) { + BIO_printf(bio_err, "bad gethostbyaddr\n"); + *host = NULL; +@@ -460,14 +552,22 @@ + } + BUF_strlcpy(*host, h1->h_name, strlen(h1->h_name) + 1); + +- h2 = GetHostByName(*host); ++# if OPENSSL_USE_IPV6 ++ h2=GetHostByName(*host, from.ss_family); ++# else ++ h2=GetHostByName(*host, from.sin_family); ++# endif + if (h2 == NULL) { + BIO_printf(bio_err, "gethostbyname failure\n"); + closesocket(ret); + return (0); + } +- if (h2->h_addrtype != AF_INET) { +- BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n"); ++# if OPENSSL_USE_IPV6 ++ if (h2->h_addrtype != from.ss_family) { ++# else ++ if (h2->h_addrtype != from.sin_family) { ++# endif ++ BIO_printf(bio_err, "gethostbyname addr is not correct\n"); + closesocket(ret); + return (0); + } +@@ -483,14 +583,14 @@ + char *h, *p; + + h = str; +- p = strchr(str, ':'); ++ p = strrchr(str, ':'); + if (p == NULL) { + BIO_printf(bio_err, "no port defined\n"); + return (0); + } + *(p++) = '\0'; + +- if ((ip != NULL) && !host_ip(str, ip)) ++ if ((ip != NULL) && !host_ip(str, ip, AF_INET)) + goto err; + if (host_ptr != NULL) + *host_ptr = h; +@@ -502,44 +602,51 @@ + return (0); + } + +-static int host_ip(char *str, unsigned char ip[4]) ++static int host_ip(char *str, unsigned char *ip, int domain) + { + unsigned int in[4]; ++ unsigned long l; + int i; + +- if (sscanf(str, "%u.%u.%u.%u", &(in[0]), &(in[1]), &(in[2]), &(in[3])) == +- 4) { ++ if ((domain == AF_INET) && (sscanf(str, "%u.%u.%u.%u", &(in[0]), &(in[1]), &(in[2]), &(in[3])) == 4)) { + for (i = 0; i < 4; i++) + if (in[i] > 255) { + BIO_printf(bio_err, "invalid IP address\n"); + goto err; + } +- ip[0] = in[0]; +- ip[1] = in[1]; +- ip[2] = in[2]; +- ip[3] = in[3]; +- } else { /* do a gethostbyname */ ++ l=htonl((in[0]<<24L)|(in[1]<<16L)|(in[2]<<8L)|in[3]); ++ memcpy(ip, &l, 4); ++ return 1; ++ } ++# if OPENSSL_USE_IPV6 ++ else if ((domain == AF_INET6) && (inet_pton(AF_INET6, str, ip) == 1)) ++ return 1; ++# endif ++ else { /* do a gethostbyname */ + struct hostent *he; + + if (!ssl_sock_init()) + return (0); + +- he = GetHostByName(str); ++ he = GetHostByName(str, domain); + if (he == NULL) { + BIO_printf(bio_err, "gethostbyname failure\n"); + goto err; + } + /* cast to short because of win16 winsock definition */ +- if ((short)he->h_addrtype != AF_INET) { +- BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n"); ++ if ((short)he->h_addrtype != domain) { ++ BIO_printf(bio_err, "gethostbyname addr is not correct\n"); + return (0); + } +- ip[0] = he->h_addr_list[0][0]; +- ip[1] = he->h_addr_list[0][1]; +- ip[2] = he->h_addr_list[0][2]; +- ip[3] = he->h_addr_list[0][3]; ++ if (domain == AF_INET) ++ memset(ip, 0, 4); ++# if OPENSSL_USE_IPV6 ++ else ++ memset(ip, 0, 16); ++# endif ++ memcpy(ip, he->h_addr_list[0], he->h_length); ++ return 1; + } +- return (1); + err: + return (0); + } +@@ -573,7 +680,7 @@ + static unsigned long ghbn_hits = 0L; + static unsigned long ghbn_miss = 0L; + +-static struct hostent *GetHostByName(char *name) ++static struct hostent *GetHostByName(char *name, int domain) + { + struct hostent *ret; + int i, lowi = 0; +@@ -585,13 +692,18 @@ + lowi = i; + } + if (ghbn_cache[i].order > 0) { +- if (strncmp(name, ghbn_cache[i].name, 128) == 0) ++ if ((strncmp(name, ghbn_cache[i].name, 128) == 0) && (ghbn_cache[i].ent.h_addrtype == domain)) + break; + } + } + if (i == GHBN_NUM) { /* no hit */ + ghbn_miss++; +- ret = gethostbyname(name); ++ if (domain == AF_INET) ++ ret = gethostbyname(name); ++# if OPENSSL_USE_IPV6 ++ else ++ ret = gethostbyname2(name, AF_INET6); ++# endif + if (ret == NULL) + return (NULL); + /* else add to cache */ diff --git a/mingw-w64-openssl/openssl-1.0.2-s_client-verify.patch b/mingw-w64-openssl/openssl-1.0.2-s_client-verify.patch new file mode 100644 index 0000000000..803a91dde9 --- /dev/null +++ b/mingw-w64-openssl/openssl-1.0.2-s_client-verify.patch @@ -0,0 +1,17 @@ +https://bugs.gentoo.org/472584 +http://rt.openssl.org/Ticket/Display.html?id=2387&user=guest&pass=guest + +fix verification handling in s_client. when loading paths, make sure +we properly fallback to setting the default paths. + +--- openssl-1.0.2/apps/s_client.c ++++ openssl-1.0.2/apps/s_client.c +@@ -1337,7 +1337,7 @@ + + SSL_CTX_set_verify(ctx, verify, verify_callback); + +- if ((!SSL_CTX_load_verify_locations(ctx, CAfile, CApath)) || ++ if ((!SSL_CTX_load_verify_locations(ctx, CAfile, CApath)) && + (!SSL_CTX_set_default_verify_paths(ctx))) { + /* + * BIO_printf(bio_err,"error setting default verify locations\n"); diff --git a/mingw-w64-openssl/openssl-1.0.1-parallel-build.patch b/mingw-w64-openssl/openssl-1.0.2a-parallel-build.patch similarity index 82% rename from mingw-w64-openssl/openssl-1.0.1-parallel-build.patch rename to mingw-w64-openssl/openssl-1.0.2a-parallel-build.patch index 896f88d123..280b8e0b57 100644 --- a/mingw-w64-openssl/openssl-1.0.1-parallel-build.patch +++ b/mingw-w64-openssl/openssl-1.0.2a-parallel-build.patch @@ -1,105 +1,7 @@ -http://rt.openssl.org/Ticket/Display.html?id=2084 +http://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest ---- a/Makefile.org -+++ b/Makefile.org -@@ -247,17 +247,17 @@ - build_libs: build_crypto build_ssl build_engines - - build_crypto: -- @dir=crypto; target=all; $(BUILD_ONE_CMD) -+ +@dir=crypto; target=all; $(BUILD_ONE_CMD) --build_ssl: -+build_ssl: build_crypto -- @dir=ssl; target=all; $(BUILD_ONE_CMD) -+ +@dir=ssl; target=all; $(BUILD_ONE_CMD) --build_engines: -+build_engines: build_crypto -- @dir=engines; target=all; $(BUILD_ONE_CMD) -+ +@dir=engines; target=all; $(BUILD_ONE_CMD) --build_apps: -+build_apps: build_libs -- @dir=apps; target=all; $(BUILD_ONE_CMD) -+ +@dir=apps; target=all; $(BUILD_ONE_CMD) --build_tests: -+build_tests: build_libs -- @dir=test; target=all; $(BUILD_ONE_CMD) -+ +@dir=test; target=all; $(BUILD_ONE_CMD) --build_tools: -+build_tools: build_libs -- @dir=tools; target=all; $(BUILD_ONE_CMD) -+ +@dir=tools; target=all; $(BUILD_ONE_CMD) - - all_testapps: build_libs build_testapps - build_testapps: -@@ -497,9 +497,9 @@ - dist_pem_h: - (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) - --install: all install_docs install_sw -+install: install_docs install_sw - --install_sw: -+install_dirs: - @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ - $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \ - $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \ -@@ -508,6 +508,13 @@ - $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ - $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ - $(INSTALL_PREFIX)$(OPENSSLDIR)/private -+ @$(PERL) $(TOP)/util/mkdir-p.pl \ -+ $(INSTALL_PREFIX)$(MANDIR)/man1 \ -+ $(INSTALL_PREFIX)$(MANDIR)/man3 \ -+ $(INSTALL_PREFIX)$(MANDIR)/man5 \ -+ $(INSTALL_PREFIX)$(MANDIR)/man7 -+ -+install_sw: install_dirs - @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\ - do \ - (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ -@@ -511,7 +511,7 @@ - (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ - chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ - done; -- @set -e; target=install; $(RECURSIVE_BUILD_CMD) -+ +@set -e; target=install; $(RECURSIVE_BUILD_CMD) - @set -e; liblist="$(LIBS)"; for i in $$liblist ;\ - do \ - if [ -f "$$i" ]; then \ -@@ -593,12 +600,7 @@ - done; \ - done - --install_docs: -- @$(PERL) $(TOP)/util/mkdir-p.pl \ -- $(INSTALL_PREFIX)$(MANDIR)/man1 \ -- $(INSTALL_PREFIX)$(MANDIR)/man3 \ -- $(INSTALL_PREFIX)$(MANDIR)/man5 \ -- $(INSTALL_PREFIX)$(MANDIR)/man7 -+install_docs: install_dirs - @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \ - here="`pwd`"; \ - filecase=; \ ---- a/Makefile.shared -+++ b/Makefile.shared -@@ -105,6 +105,7 @@ LINK_SO= \ - SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ - LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ - LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ -+ [ -e $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX ] && exit 0; \ - LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ - $${SHAREDCMD} $${SHAREDFLAGS} \ - -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ -@@ -122,6 +124,7 @@ SYMLINK_SO= \ - done; \ - fi; \ - if [ -n "$$SHLIB_SOVER" ]; then \ -+ [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \ - ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \ - ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \ - fi; \ ---- a/crypto/Makefile -+++ b/crypto/Makefile +--- openssl-1.0.2a/crypto/Makefile ++++ openssl-1.0.2a/crypto/Makefile @@ -85,11 +85,11 @@ @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi @@ -121,9 +23,9 @@ http://rt.openssl.org/Ticket/Display.html?id=2084 -$(LIB): $(LIBOBJ) +$(LIB): $(LIBOBJ) | subdirs $(AR) $(LIB) $(LIBOBJ) + test -z "$(FIPSLIBDIR)" || $(AR) $(LIB) $(FIPSLIBDIR)fipscanister.o $(RANLIB) $(LIB) || echo Never mind. - -@@ -110,7 +110,7 @@ +@@ -111,7 +111,7 @@ fi libs: @@ -132,7 +34,7 @@ http://rt.openssl.org/Ticket/Display.html?id=2084 install: @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... -@@ -119,7 +119,7 @@ +@@ -120,7 +120,7 @@ (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ done; @@ -141,8 +43,25 @@ http://rt.openssl.org/Ticket/Display.html?id=2084 lint: @target=lint; $(RECURSIVE_MAKE) ---- a/engines/Makefile -+++ b/engines/Makefile +--- openssl-1.0.2a/crypto/objects/Makefile ++++ openssl-1.0.2a/crypto/objects/Makefile +@@ -44,11 +44,11 @@ + # objects.pl both reads and writes obj_mac.num + obj_mac.h: objects.pl objects.txt obj_mac.num + $(PERL) objects.pl objects.txt obj_mac.num obj_mac.h +- @sleep 1; touch obj_mac.h; sleep 1 + +-obj_xref.h: objxref.pl obj_xref.txt obj_mac.num ++# This doesn't really need obj_mac.h, but since that rule reads & writes ++# obj_mac.num, we can't run in parallel with it. ++obj_xref.h: objxref.pl obj_xref.txt obj_mac.num obj_mac.h + $(PERL) objxref.pl obj_mac.num obj_xref.txt > obj_xref.h +- @sleep 1; touch obj_xref.h; sleep 1 + + files: + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO +--- openssl-1.0.2a/engines/Makefile ++++ openssl-1.0.2a/engines/Makefile @@ -72,7 +72,7 @@ all: lib subdirs @@ -170,9 +89,105 @@ http://rt.openssl.org/Ticket/Display.html?id=2084 tags: ctags $(SRC) ---- a/test/Makefile -+++ b/test/Makefile -@@ -123,7 +123,7 @@ +--- openssl-1.0.2a/Makefile.org ++++ openssl-1.0.2a/Makefile.org +@@ -274,17 +274,17 @@ + build_libs: build_crypto build_ssl build_engines + + build_crypto: +- @dir=crypto; target=all; $(BUILD_ONE_CMD) +-build_ssl: +- @dir=ssl; target=all; $(BUILD_ONE_CMD) +-build_engines: +- @dir=engines; target=all; $(BUILD_ONE_CMD) +-build_apps: +- @dir=apps; target=all; $(BUILD_ONE_CMD) +-build_tests: +- @dir=test; target=all; $(BUILD_ONE_CMD) +-build_tools: +- @dir=tools; target=all; $(BUILD_ONE_CMD) ++ +@dir=crypto; target=all; $(BUILD_ONE_CMD) ++build_ssl: build_crypto ++ +@dir=ssl; target=all; $(BUILD_ONE_CMD) ++build_engines: build_crypto ++ +@dir=engines; target=all; $(BUILD_ONE_CMD) ++build_apps: build_libs ++ +@dir=apps; target=all; $(BUILD_ONE_CMD) ++build_tests: build_libs ++ +@dir=test; target=all; $(BUILD_ONE_CMD) ++build_tools: build_libs ++ +@dir=tools; target=all; $(BUILD_ONE_CMD) + + all_testapps: build_libs build_testapps + build_testapps: +@@ -536,9 +536,9 @@ + dist_pem_h: + (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + +-install: all install_docs install_sw ++install: install_docs install_sw + +-install_sw: ++install_dirs: + @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ + $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \ + $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \ +@@ -547,12 +547,19 @@ + $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ + $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ + $(INSTALL_PREFIX)$(OPENSSLDIR)/private ++ @$(PERL) $(TOP)/util/mkdir-p.pl \ ++ $(INSTALL_PREFIX)$(MANDIR)/man1 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man3 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man5 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man7 ++ ++install_sw: install_dirs + @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\ + do \ + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ + done; +- @set -e; target=install; $(RECURSIVE_BUILD_CMD) ++ +@set -e; target=install; $(RECURSIVE_BUILD_CMD) + @set -e; liblist="$(LIBS)"; for i in $$liblist ;\ + do \ + if [ -f "$$i" ]; then \ +@@ -636,12 +643,7 @@ + done; \ + done + +-install_docs: +- @$(PERL) $(TOP)/util/mkdir-p.pl \ +- $(INSTALL_PREFIX)$(MANDIR)/man1 \ +- $(INSTALL_PREFIX)$(MANDIR)/man3 \ +- $(INSTALL_PREFIX)$(MANDIR)/man5 \ +- $(INSTALL_PREFIX)$(MANDIR)/man7 ++install_docs: install_dirs + @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \ + here="`pwd`"; \ + filecase=; \ +--- openssl-1.0.2a/Makefile.shared ++++ openssl-1.0.2a/Makefile.shared +@@ -105,6 +105,7 @@ + SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ + LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ + LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ ++ [ -e $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX ] && exit 0; \ + LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ + $${SHAREDCMD} $${SHAREDFLAGS} \ + -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ +@@ -122,6 +123,7 @@ + done; \ + fi; \ + if [ -n "$$SHLIB_SOVER" ]; then \ ++ [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \ + ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \ + ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \ + fi; \ +--- openssl-1.0.2a/test/Makefile ++++ openssl-1.0.2a/test/Makefile +@@ -133,7 +133,7 @@ tags: ctags $(SRC) @@ -181,7 +196,7 @@ http://rt.openssl.org/Ticket/Display.html?id=2084 apps: @(cd ..; $(MAKE) DIRS=apps all) -@@ -365,109 +365,109 @@ +@@ -402,121 +402,121 @@ link_app.$${shlib_target} $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO) @@ -300,6 +315,10 @@ http://rt.openssl.org/Ticket/Display.html?id=2084 - @target=$(EVPTEST); $(BUILD_CMD) + +@target=$(EVPTEST); $(BUILD_CMD) + $(EVPEXTRATEST)$(EXE_EXT): $(EVPEXTRATEST).o $(DLIBCRYPTO) +- @target=$(EVPEXTRATEST); $(BUILD_CMD) ++ +@target=$(EVPEXTRATEST); $(BUILD_CMD) + $(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO) - @target=$(ECDSATEST); $(BUILD_CMD) + +@target=$(ECDSATEST); $(BUILD_CMD) @@ -324,9 +343,21 @@ http://rt.openssl.org/Ticket/Display.html?id=2084 - @target=$(SRPTEST); $(BUILD_CMD) + +@target=$(SRPTEST); $(BUILD_CMD) + $(V3NAMETEST)$(EXE_EXT): $(V3NAMETEST).o $(DLIBCRYPTO) +- @target=$(V3NAMETEST); $(BUILD_CMD) ++ +@target=$(V3NAMETEST); $(BUILD_CMD) + + $(HEARTBEATTEST)$(EXE_EXT): $(HEARTBEATTEST).o $(DLIBCRYPTO) +- @target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC) ++ +@target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC) + + $(CONSTTIMETEST)$(EXE_EXT): $(CONSTTIMETEST).o +- @target=$(CONSTTIMETEST) $(BUILD_CMD) ++ +@target=$(CONSTTIMETEST) $(BUILD_CMD) + #$(AESTEST).o: $(AESTEST).c # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c -@@ -480,7 +480,7 @@ +@@ -529,7 +529,7 @@ # fi dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO) From 6386bd32bc0e595e3e13d331afa7a9dade7867b4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 20 Mar 2015 10:53:04 +0300 Subject: [PATCH 0685/2060] swig: Update to 3.0.5 --- mingw-w64-swig/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-swig/PKGBUILD b/mingw-w64-swig/PKGBUILD index 6318bd9dbc..b62c6047ac 100644 --- a/mingw-w64-swig/PKGBUILD +++ b/mingw-w64-swig/PKGBUILD @@ -2,7 +2,7 @@ _realname=swig pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.0.3 +pkgver=3.0.5 pkgrel=1 pkgdesc="Generate scripting interfaces to C/C++ code" arch=('any') @@ -17,7 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-ruby") source=(http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz 001-relocate.patch) -sha1sums=('e68e1fbdf92ae34c0949c9babef10c8800377b93' +sha1sums=('271813b317e4836853d2249fc8ce2df34c2a062a' '2df8f0deca96ffa2a3625070e31483ba10817ec5') prepare() { From ddc6ee2ef0fe7597f32443f5a7d6870213ea3d59 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 20 Mar 2015 11:53:05 +0300 Subject: [PATCH 0686/2060] ffmpeg: Update to 2.6.1 --- mingw-w64-ffmpeg/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 88874edfac..9dfaa282bf 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,7 +2,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.6 +pkgver=2.6.1 pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') @@ -41,7 +41,7 @@ depends=( ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://ffmpeg.org/releases/$_realname-$pkgver.tar.bz2) -md5sums=('5bf6097833a3fea6a9e51b0a456c6922') +md5sums=('62b5a37525fdf79aedd4a51a64793ed7') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -96,6 +96,7 @@ build() { --enable-zlib \ --disable-doc #--enable-pthreads + make } From d744b955097f37c036155ec1bab0d28a580187b3 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sat, 21 Mar 2015 03:28:42 +0100 Subject: [PATCH 0687/2060] lua, lua51: Fix build and add a .dll.a link library --- mingw-w64-lua/PKGBUILD | 37 +++++++++++++++--------- mingw-w64-lua/implib.patch | 11 ++++++++ mingw-w64-lua51/PKGBUILD | 54 +++++++++++++++++++++--------------- mingw-w64-lua51/implib.patch | 11 ++++++++ 4 files changed, 78 insertions(+), 35 deletions(-) create mode 100644 mingw-w64-lua/implib.patch create mode 100644 mingw-w64-lua51/implib.patch diff --git a/mingw-w64-lua/PKGBUILD b/mingw-w64-lua/PKGBUILD index 5957fa93cb..3d55eada50 100644 --- a/mingw-w64-lua/PKGBUILD +++ b/mingw-w64-lua/PKGBUILD @@ -3,40 +3,51 @@ _realname=lua pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.2.3 -pkgrel=4 +pkgrel=5 pkgdesc="A powerful light-weight programming language designed for extending applications. (mingw-w64)" arch=('any') url="http://www.lua.org/" license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip' 'emptydirs') -source=($url/ftp/lua-$pkgver.tar.gz - 'lua.pc') +source=("$url/ftp/lua-$pkgver.tar.gz" + 'lua.pc' + 'implib.patch') md5sums=('dc7f94ec6ff15c985d2d6ad0f1b35654' - 'e7ba6c2b695b0b84a5ea0cbff5fc9067') + 'e7ba6c2b695b0b84a5ea0cbff5fc9067' + '39ed0d1e9eece585f7c0f2c49136dd01') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + cp "${srcdir}/lua.pc" . + patch -p0 -i "${srcdir}/implib.patch" + + mkdir -p "${srcdir}/build-${CARCH}" + cp -r * "${srcdir}/build-${CARCH}" +} build() { - cp ${srcdir}/lua.pc ${srcdir}/${_realname}-${pkgver}/ - cd ${srcdir}/${_realname}-${pkgver} + cd "${srcdir}/build-${CARCH}" sed -e "s|%VER%|${pkgver%.*}|g;s|%REL%|$pkgver|g" \ -e "s|/usr|${MINGW_PREFIX}|g" \ -i lua.pc - make -j1 \ AR="ar rcu" \ RANLIB="ranlib" \ STRIP="strip" \ CC="${MINGW_CHOST}-gcc" \ - INSTALL_TOP="${pkgdir}${MINGW_PREFIX}" \ - INSTALL_MAN="${pkgdir}${MINGW_PREFIX}"/share/man/man1 \ - TO_BIN="lua.exe luac.exe lua52.dll" \ - mingw install - make clean + mingw } package() { - cd ${srcdir}/${_realname}-${pkgver} + cd "${srcdir}/build-${CARCH}" + make \ + TO_BIN="lua.exe luac.exe lua52.dll" \ + TO_LIB="liblua.a liblua.dll.a" \ + INSTALL_TOP="${pkgdir}${MINGW_PREFIX}" \ + INSTALL_MAN="${pkgdir}${MINGW_PREFIX}"/share/man/man1 \ + install install -Dm644 lua.pc "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/lua.pc install -Dm644 lua.pc "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/lua5.2.pc diff --git a/mingw-w64-lua/implib.patch b/mingw-w64-lua/implib.patch new file mode 100644 index 0000000000..651f8d8738 --- /dev/null +++ b/mingw-w64-lua/implib.patch @@ -0,0 +1,11 @@ +--- src/Makefile.orig 2013-11-11 12:45:49.000000000 +0100 ++++ src/Makefile 2015-03-20 22:35:13.646812100 +0100 +@@ -110,7 +110,7 @@ + + mingw: + $(MAKE) "LUA_A=lua52.dll" "LUA_T=lua.exe" \ +- "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ ++ "AR=$(CC) -shared -Wl,--out-implib,liblua.dll.a -o" "RANLIB=strip --strip-unneeded" \ + "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe + $(MAKE) "LUAC_T=luac.exe" luac.exe + diff --git a/mingw-w64-lua51/PKGBUILD b/mingw-w64-lua51/PKGBUILD index 334ccecdf3..2e1a050fd7 100644 --- a/mingw-w64-lua51/PKGBUILD +++ b/mingw-w64-lua51/PKGBUILD @@ -4,23 +4,20 @@ _realname=lua51 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.1.5 -pkgrel=2 +pkgrel=3 pkgdesc="A powerful light-weight programming language designed for extending applications. Version 5.1.x. (mingw-w64)" arch=('any') url="http://www.lua.org/" license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip' 'emptydirs') -source=($url/ftp/lua-$pkgver.tar.gz) -md5sums=('2e115fe26e435e33b0d5c022e4490567') +source=("$url/ftp/lua-$pkgver.tar.gz" + 'implib.patch') +md5sums=('2e115fe26e435e33b0d5c022e4490567' + 'cfbde7b555098a85e3b3fede0822d25a') -build() { - cd ${srcdir}/lua-${pkgver} - - sed -e 's:llua:llua5.1:' \ - -e 's:/include:/include/lua5.1:' \ - -e "s:/usr/local:${MINGW_PREFIX}:" \ - -i etc/lua.pc\ +prepare() { + cd "${srcdir}/lua-${pkgver}" sed -r -e '/^LUA_(SO|A|T)=/ s/lua/lua5.1/' \ -e '/^LUAC_T=/ s/luac/luac5.1/' \ @@ -28,26 +25,39 @@ build() { -e 's/luac.exe/luac5.1.exe/' \ -e 's/luac.exe/luac5.1.exe/' \ -i src/Makefile + patch -p0 -i "${srcdir}/implib.patch" + + mkdir -p "${srcdir}/build-${CARCH}" + cp -r * "${srcdir}/build-${CARCH}" +} + +build() { + cd "${srcdir}/build-${CARCH}" + sed -e 's:llua:llua5.1:' \ + -e 's:/include:/include/lua5.1:' \ + -e "s:/usr/local:${MINGW_PREFIX}:" \ + -i etc/lua.pc make -j1 \ AR="ar rcu" \ RANLIB="ranlib" \ STRIP="strip" \ CC="${MINGW_CHOST}-gcc" \ - INSTALL_TOP="${pkgdir}${MINGW_PREFIX}" \ - INSTALL_DATA='cp -d' \ - INSTALL_INC="${pkgdir}${MINGW_PREFIX}"/include/lua5.1 \ - INSTALL_MAN="${pkgdir}${MINGW_PREFIX}"/share/man/man1 \ - TO_BIN="lua5.1.exe luac5.1.exe lua51.dll" \ - TO_LIB="liblua5.1.a" \ - mingw install - make clean + mingw } -package(){ - cd ${srcdir}/lua-${pkgver} - install -Dm644 etc/lua.pc ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/lua5.1.pc - install -d "${pkgdir}${MINGW_PREFIX}/share/doc/$_realname" +package() { + cd "${srcdir}/build-${CARCH}" + make \ + TO_BIN="lua5.1.exe luac5.1.exe lua51.dll" \ + TO_LIB="liblua5.1.a liblua5.1.dll.a" \ + INSTALL_DATA='cp -d' \ + INSTALL_TOP="${pkgdir}${MINGW_PREFIX}" \ + INSTALL_INC="${pkgdir}${MINGW_PREFIX}"/include/lua5.1 \ + INSTALL_MAN="${pkgdir}${MINGW_PREFIX}"/share/man/man1 \ + install + install -Dm644 etc/lua.pc "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/lua5.1.pc + install -d "${pkgdir}${MINGW_PREFIX}"/share/doc/$_realname install -m644 doc/*.{gif,png,css,html} "${pkgdir}${MINGW_PREFIX}"/share/doc/${_realname} install -Dm644 COPYRIGHT "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/COPYRIGHT diff --git a/mingw-w64-lua51/implib.patch b/mingw-w64-lua51/implib.patch new file mode 100644 index 0000000000..04013b8c61 --- /dev/null +++ b/mingw-w64-lua51/implib.patch @@ -0,0 +1,11 @@ +--- src/Makefile.orig 2015-03-21 02:28:50.676835400 +0100 ++++ src/Makefile 2015-03-21 02:30:35.989929400 +0100 +@@ -105,7 +105,7 @@ + + mingw: + $(MAKE) "LUA_A=lua51.dll" "LUA_T=lua5.1.exe" \ +- "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ ++ "AR=$(CC) -shared -Wl,--out-implib=liblua5.1.dll.a -o" "RANLIB=strip --strip-unneeded" \ + "MYCFLAGS=-DLUA_BUILD_AS_DLL" "MYLIBS=" "MYLDFLAGS=-s" lua5.1.exe + $(MAKE) "LUAC_T=luac5.1.exe" luac5.1.exe + From c0095d7bd46f293ff0c5c0f2499b17b48bf07e9e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 21 Mar 2015 09:09:37 +0300 Subject: [PATCH 0688/2060] gcc: Fix patch for custom crt library --- .../170-Add--mcrtdll-option-for-msvcrt-stubbing.patch | 2 +- mingw-w64-gcc/PKGBUILD | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch b/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch index 8aee0f644a..db5c693515 100644 --- a/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch +++ b/mingw-w64-gcc/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch @@ -19,7 +19,7 @@ diff -urN gcc-4.9.2.orig/gcc/config/i386/mingw32.h gcc-4.9.2/gcc/config/i386/min "%{mthreads:-lmingwthrd} -lmingw32 \ "SHARED_LIBGCC_SPEC" \ - -lmoldname -lmingwex -lmsvcrt" -+ -lmoldname -lmingwex %{!mcrtdll=*:-lmsvcrt}%{mcrtdll=*:-l%*}" ++ -lmoldname -lmingwex %{!mcrtdll=*:-lmsvcrt} %{mcrtdll=*:-l%*}" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index d81d1dd0c4..427ccba8e0 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -13,7 +13,7 @@ pkgname=( "${MINGW_PACKAGE_PREFIX}-${_realname}-objc" ) pkgver=4.9.2 -pkgrel=4 +pkgrel=5 pkgdesc="GCC for the MinGW-w64" arch=('any') url="http://gcc.gnu.org" @@ -64,7 +64,7 @@ md5sums=('4df8ee253b7f3863ad0b86359cd39c43' 'c9967332940eb2b23820faeb48db6e72' '9e07f25b8813191eebd7fda684b1e2dd' '60fdccbd072e2b2e724ff879d31ec57e' - '799ab93387ce29009bfb64b06bb29f8c' + '3b8b5d9e8c20c0d75fa01a32215ada02' '347336d5a318e5e8b3cde29e9174413c' 'bf00d36f0d6bfc1fcb461c1b99461be4' '40cb437805e2f7a006aa0d0c3098ab0f' From 0e823bed94dfaba098e30629a8c7dc771a8552da Mon Sep 17 00:00:00 2001 From: David Macek Date: Sat, 21 Mar 2015 03:31:14 +0100 Subject: [PATCH 0689/2060] lua-lpeg, lua51-lpeg: New packages --- mingw-w64-lua-lpeg/LICENSE | 7 ++ mingw-w64-lua-lpeg/PKGBUILD | 83 +++++++++++++++++++++ mingw-w64-lua-lpeg/lpeg-0.12-makefile.patch | 37 +++++++++ 3 files changed, 127 insertions(+) create mode 100644 mingw-w64-lua-lpeg/LICENSE create mode 100644 mingw-w64-lua-lpeg/PKGBUILD create mode 100644 mingw-w64-lua-lpeg/lpeg-0.12-makefile.patch diff --git a/mingw-w64-lua-lpeg/LICENSE b/mingw-w64-lua-lpeg/LICENSE new file mode 100644 index 0000000000..71163fb9db --- /dev/null +++ b/mingw-w64-lua-lpeg/LICENSE @@ -0,0 +1,7 @@ +Copyright © 2008 Lua.org, PUC-Rio. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/mingw-w64-lua-lpeg/PKGBUILD b/mingw-w64-lua-lpeg/PKGBUILD new file mode 100644 index 0000000000..4ee0174283 --- /dev/null +++ b/mingw-w64-lua-lpeg/PKGBUILD @@ -0,0 +1,83 @@ +# Maintainer: David Macek +# Contributor (Arch Linux): Gustavo Alvarez + +_realname=lpeg +pkgname=("${MINGW_PACKAGE_PREFIX}-lua-${_realname}" + "${MINGW_PACKAGE_PREFIX}-lua51-${_realname}") +pkgver=0.12 +pkgrel=1 +arch=('any') +url='http://www.inf.puc-rio.br/~roberto/lpeg' +license=('MIT') +makedepends=("${MINGW_PACKAGE_PREFIX}-lua" + "${MINGW_PACKAGE_PREFIX}-lua51" + "${MINGW_PACKAGE_PREFIX}-gcc") +source=("http://www.inf.puc-rio.br/~roberto/${_realname}/${_realname}-${pkgver}.tar.gz" + "lpeg-0.12-makefile.patch" + "LICENSE") +md5sums=('4abb3c28cd8b6565c6a65e88f06c9162' + '8f2f06957131ccb64413433c08e18d65' + 'dccb97b431c3a3ccaacc216c6242e9fd') + +prepare() { + cd "${_realname}-${pkgver}" + patch -p1 -i "${srcdir}/lpeg-0.12-makefile.patch" + sed -i 's/lpeg.so/lpeg.dll/' makefile + + mkdir -p "${srcdir}/build-${CARCH}" "${srcdir}/build-51-${CARCH}" + cp -rf * "${srcdir}/build-${CARCH}" + sed -i 's/env lua5.1/env lua/' "${srcdir}/build-${CARCH}/test.lua" + cp -rf * "${srcdir}/build-51-${CARCH}" +} + +build() { + cd "${srcdir}/build-${CARCH}" + make LUADIR=${MINGW_PREFIX}/include LDFLAGS="$(pkg-config lua --libs)" + + cd "${srcdir}/build-51-${CARCH}" + make LUADIR=${MINGW_PREFIX}/include/lua5.1 LDFLAGS="$(pkg-config lua5.1 --libs)" +} + +check() { + cd "${srcdir}/build-${CARCH}" + make test + + cd "${srcdir}/build-51-${CARCH}" + make test +} + +package_mingw-w64-lua-lpeg() { + pkgdesc='Pattern-matching library for Lua 5.2 (mingw-w64)' + depends=("${MINGW_PACKAGE_PREFIX}-lua") + + cd "${srcdir}/build-${CARCH}" + install -Dm755 lpeg.dll "${pkgdir}${MINGW_PREFIX}/lib/lua/5.2/lpeg.dll" + install -Dm644 re.lua "${pkgdir}${MINGW_PREFIX}/share/lua/5.2/re.lua" + install -Dm644 "${srcdir}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/lua-lpeg/LICENSE" +} + +package_mingw-w64-lua51-lpeg() { + pkgdesc='Pattern-matching library for Lua 5.1 (mingw-w64)' + depends=("${MINGW_PACKAGE_PREFIX}-lua51") + + cd "${srcdir}/build-51-${CARCH}" + install -Dm755 lpeg.dll "${pkgdir}${MINGW_PREFIX}/lib/lua/5.1/lpeg.dll" + install -Dm644 re.lua "${pkgdir}${MINGW_PREFIX}/share/lua/5.1/re.lua" + install -Dm644 "${srcdir}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/lua51-lpeg/LICENSE" +} + +package_mingw-w64-i686-lua-lpeg() { + package_mingw-w64-lua-lpeg +} + +package_mingw-w64-x86_64-lua-lpeg() { + package_mingw-w64-lua-lpeg +} + +package_mingw-w64-i686-lua51-lpeg() { + package_mingw-w64-lua51-lpeg +} + +package_mingw-w64-x86_64-lua51-lpeg() { + package_mingw-w64-lua51-lpeg +} diff --git a/mingw-w64-lua-lpeg/lpeg-0.12-makefile.patch b/mingw-w64-lua-lpeg/lpeg-0.12-makefile.patch new file mode 100644 index 0000000000..62eb497ce7 --- /dev/null +++ b/mingw-w64-lua-lpeg/lpeg-0.12-makefile.patch @@ -0,0 +1,37 @@ +--- lpeg-0.12/makefile ++++ lpeg-0.12/makefile +@@ -1,7 +1,7 @@ + LIBNAME = lpeg + LUADIR = /usr/include/lua5.1/ + +-COPT = -O2 ++#COPT = -O2 + # COPT = -DLPEG_DEBUG -g + + CWARNS = -Wall -Wextra -pedantic \ +@@ -22,21 +22,21 @@ + # -Wunreachable-code \ + + +-CFLAGS = $(CWARNS) $(COPT) -ansi -I$(LUADIR) -fPIC ++CFLAGS += $(CWARNS) $(COPT) -ansi -I$(LUADIR) -fPIC + CC = gcc + + FILES = lpvm.o lpcap.o lptree.o lpcode.o lpprint.o + + # For Linux + linux: +- make lpeg.so "DLLFLAGS = -shared -fPIC" ++ $(MAKE) lpeg.so "DLLFLAGS = -shared -fPIC" + + # For Mac OS + macosx: +- make lpeg.so "DLLFLAGS = -bundle -undefined dynamic_lookup" ++ $(MAKE) lpeg.so "DLLFLAGS = -bundle -undefined dynamic_lookup" + + lpeg.so: $(FILES) +- env $(CC) $(DLLFLAGS) $(FILES) -o lpeg.so ++ env $(CC) $(CFLAGS) $(DLLFLAGS) $(FILES) -o lpeg.so $(LDFLAGS) + + $(FILES): makefile + From 07b6029ef24ad280602614ee04c14ca2b0aa898f Mon Sep 17 00:00:00 2001 From: David Macek Date: Sat, 21 Mar 2015 03:34:06 +0100 Subject: [PATCH 0690/2060] lua: Update to v5.2.4 --- mingw-w64-lua/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-lua/PKGBUILD b/mingw-w64-lua/PKGBUILD index 3d55eada50..ce9742ed26 100644 --- a/mingw-w64-lua/PKGBUILD +++ b/mingw-w64-lua/PKGBUILD @@ -2,8 +2,8 @@ _realname=lua pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.2.3 -pkgrel=5 +pkgver=5.2.4 +pkgrel=1 pkgdesc="A powerful light-weight programming language designed for extending applications. (mingw-w64)" arch=('any') url="http://www.lua.org/" @@ -13,7 +13,7 @@ options=('staticlibs' 'strip' 'emptydirs') source=("$url/ftp/lua-$pkgver.tar.gz" 'lua.pc' 'implib.patch') -md5sums=('dc7f94ec6ff15c985d2d6ad0f1b35654' +md5sums=('913fdb32207046b273fdb17aad70be13' 'e7ba6c2b695b0b84a5ea0cbff5fc9067' '39ed0d1e9eece585f7c0f2c49136dd01') From 04e80fd5da780b83adf32c0d9aee90c6fd01af75 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sat, 21 Mar 2015 13:07:00 +0100 Subject: [PATCH 0691/2060] lua, lua51: Fix lua lib search paths (pkgrel not incremented) --- mingw-w64-lua/PKGBUILD | 3 +++ mingw-w64-lua/searchpath.patch | 14 ++++++++++++++ mingw-w64-lua51/PKGBUILD | 3 +++ mingw-w64-lua51/searchpath.patch | 13 +++++++++++++ 4 files changed, 33 insertions(+) create mode 100644 mingw-w64-lua/searchpath.patch create mode 100644 mingw-w64-lua51/searchpath.patch diff --git a/mingw-w64-lua/PKGBUILD b/mingw-w64-lua/PKGBUILD index ce9742ed26..d71cfd35ff 100644 --- a/mingw-w64-lua/PKGBUILD +++ b/mingw-w64-lua/PKGBUILD @@ -12,15 +12,18 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip' 'emptydirs') source=("$url/ftp/lua-$pkgver.tar.gz" 'lua.pc' + 'searchpath.patch' 'implib.patch') md5sums=('913fdb32207046b273fdb17aad70be13' 'e7ba6c2b695b0b84a5ea0cbff5fc9067' + '201ee806b08404749770214296be1fa4' '39ed0d1e9eece585f7c0f2c49136dd01') prepare() { cd "${srcdir}/${_realname}-${pkgver}" cp "${srcdir}/lua.pc" . patch -p0 -i "${srcdir}/implib.patch" + patch -p0 -i "${srcdir}/searchpath.patch" mkdir -p "${srcdir}/build-${CARCH}" cp -r * "${srcdir}/build-${CARCH}" diff --git a/mingw-w64-lua/searchpath.patch b/mingw-w64-lua/searchpath.patch new file mode 100644 index 0000000000..741ffa32b4 --- /dev/null +++ b/mingw-w64-lua/searchpath.patch @@ -0,0 +1,14 @@ +--- src/luaconf.h.orig 2013-11-21 18:26:16.000000000 +0100 ++++ src/luaconf.h 2015-03-21 13:02:03.550621100 +0100 +@@ -89,8 +89,9 @@ + ** In Windows, any exclamation mark ('!') in the path is replaced by the + ** path of the directory of the executable file of the current process. + */ +-#define LUA_LDIR "!\\lua\\" +-#define LUA_CDIR "!\\" ++#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "\\" ++#define LUA_LDIR "!\\..\\share\\lua\\" LUA_VDIR ++#define LUA_CDIR "!\\..\\lib\\lua\\" LUA_VDIR + #define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" ".\\?.lua" diff --git a/mingw-w64-lua51/PKGBUILD b/mingw-w64-lua51/PKGBUILD index 2e1a050fd7..408a4c8c5b 100644 --- a/mingw-w64-lua51/PKGBUILD +++ b/mingw-w64-lua51/PKGBUILD @@ -12,8 +12,10 @@ license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip' 'emptydirs') source=("$url/ftp/lua-$pkgver.tar.gz" + 'searchpath.patch' 'implib.patch') md5sums=('2e115fe26e435e33b0d5c022e4490567' + '6eaf36fb486420035acbd82ce94743bb' 'cfbde7b555098a85e3b3fede0822d25a') prepare() { @@ -26,6 +28,7 @@ prepare() { -e 's/luac.exe/luac5.1.exe/' \ -i src/Makefile patch -p0 -i "${srcdir}/implib.patch" + patch -p0 -i "${srcdir}/searchpath.patch" mkdir -p "${srcdir}/build-${CARCH}" cp -r * "${srcdir}/build-${CARCH}" diff --git a/mingw-w64-lua51/searchpath.patch b/mingw-w64-lua51/searchpath.patch new file mode 100644 index 0000000000..3003e21e01 --- /dev/null +++ b/mingw-w64-lua51/searchpath.patch @@ -0,0 +1,13 @@ +--- src/luaconf.h.orig 2008-02-11 17:25:08.000000000 +0100 ++++ src/luaconf.h 2015-03-21 13:04:23.674094700 +0100 +@@ -85,8 +85,8 @@ + ** In Windows, any exclamation mark ('!') in the path is replaced by the + ** path of the directory of the executable file of the current process. + */ +-#define LUA_LDIR "!\\lua\\" +-#define LUA_CDIR "!\\" ++#define LUA_LDIR "!\\..\\share\\lua\\5.1\\" ++#define LUA_CDIR "!\\..\\lib\\lua\\5.1\\" + #define LUA_PATH_DEFAULT \ + ".\\?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua" From 3b5a0be17a44aa0aaa0fbcc280f9cf9bf50b63dd Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Sun, 15 Mar 2015 16:04:24 +0000 Subject: [PATCH 0692/2060] ninja: update to 1.5.3 --- mingw-w64-ninja/PKGBUILD | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/mingw-w64-ninja/PKGBUILD b/mingw-w64-ninja/PKGBUILD index c0d5df9f95..08770e8baf 100644 --- a/mingw-w64-ninja/PKGBUILD +++ b/mingw-w64-ninja/PKGBUILD @@ -3,7 +3,7 @@ _realname=ninja pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.5.1 +pkgver=1.5.3 pkgrel=1 pkgdesc="Ninja is a small build system with a focus on speed (mingw-w64)" arch=('any') @@ -13,18 +13,23 @@ depends=() options=('strip' 'staticlibs') makedepends=("python2") source=("https://github.com/martine/ninja/archive/v${pkgver}.tar.gz") -md5sums=('59f4f1cf5d9bb0d7877a6d5a5afd770a') +md5sums=('67d11a83dceea0378908ce5e7477b6fb') prepare () { cd ${srcdir}/ninja-${pkgver} + #linking assumes windows cmd line but we are bash :) + sed -i 's|cmd /c $ar cqs $out.tmp $in && move /Y $out.tmp $out|$ar crs $out $in|g' ${srcdir}/ninja-${pkgver}/configure.py } build() { mkdir -p "${pkgdir}${MINGW_PREFIX}"/bin cd ${srcdir}/ninja-${pkgver} - ./bootstrap.py --platform mingw + ./configure.py --bootstrap --platform mingw } package() { - mv "${srcdir}/ninja-${pkgver}/ninja.exe" "${pkgdir}${MINGW_PREFIX}"/bin/ + mkdir -p "${pkgdir}${MINGW_PREFIX}"/bin + mv "${srcdir}/ninja-${pkgver}/ninja.exe" "${pkgdir}${MINGW_PREFIX}"/bin/ + #mkdir -p "${pkgdir}${MINGW_PREFIX}"/lib + #mv "${srcdir}/ninja-${pkgver}/build/libninja.a" "${pkgdir}${MINGW_PREFIX}"/lib/ } From b2b958aafb296fbf69990bf0db5b92e0d533cd6a Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Sat, 21 Mar 2015 17:03:55 +0000 Subject: [PATCH 0693/2060] clang-svn: add arm mingw-w64 targets --- .../0001-Add-Clang-MinGW-w64-driver.patch | 107 ++++----- .../0002-Fixup-all-windows-ARM-targets.patch | 118 ++++++++++ mingw-w64-clang-svn/PKGBUILD | 217 +++++++++++++----- 3 files changed, 322 insertions(+), 120 deletions(-) create mode 100644 mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch diff --git a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch b/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch index ea98f14962..2d625d9c00 100644 --- a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch +++ b/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch @@ -1,6 +1,6 @@ -From 1da7b8c97af06fee45b1e753c6453fbf988cd7c1 Mon Sep 17 00:00:00 2001 +From f0de404b5b83cc180f0f34471f8142071bdfbcd3 Mon Sep 17 00:00:00 2001 From: Martell Malone -Date: Wed, 11 Mar 2015 08:39:44 +0000 +Date: Fri, 20 Mar 2015 23:26:15 +0000 Subject: [PATCH] Add Clang MinGW-w64 driver This adds the MinGW-w64 driver to clang with the @@ -10,23 +10,13 @@ off of rubenvb's driver patch from January 2014. Update: March 2015: removed seh code as clang detects itself as of commit b27216c +Updated to the latest git --- - include/clang/Driver/Options.td | 5 + - lib/Driver/CMakeLists.txt | 1 + - lib/Driver/Driver.cpp | 7 +- - lib/Driver/MinGWToolChain.cpp | 191 +++++++++++++++++++++++++++++++++++ - lib/Driver/ToolChains.h | 29 ++++++ - lib/Driver/Tools.cpp | 204 ++++++++++++++++++++++++++++++++++++++ - lib/Driver/Tools.h | 33 ++++++ - lib/Frontend/InitHeaderSearch.cpp | 64 ++---------- - 8 files changed, 471 insertions(+), 63 deletions(-) - create mode 100644 lib/Driver/MinGWToolChain.cpp - diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td -index 977e925..ef144f0 100644 +index 5a37a64..e7653e7 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td -@@ -1125,6 +1125,11 @@ def march_EQ : Joined<["-"], "march=">, Group; +@@ -1134,6 +1134,11 @@ def march_EQ : Joined<["-"], "march=">, Group; def masm_EQ : Joined<["-"], "masm=">, Group, Flags<[DriverOption]>; def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group; def mconstant_cfstrings : Flag<["-"], "mconstant-cfstrings">, Group; @@ -50,24 +40,6 @@ index 412840b..8d88f96 100644 Phases.cpp SanitizerArgs.cpp Tool.cpp -diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index a0c9233..30f2823 100644 ---- a/lib/Driver/Driver.cpp -+++ b/lib/Driver/Driver.cpp -@@ -2070,12 +2070,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, - TC = new toolchains::Generic_GCC(*this, Target, Args); - break; - case llvm::Triple::GNU: -- // FIXME: We need a MinGW toolchain. Use the default Generic_GCC -- // toolchain for now as the default case would below otherwise. -- if (Target.isOSBinFormatELF()) -- TC = new toolchains::Generic_ELF(*this, Target, Args); -- else -- TC = new toolchains::Generic_GCC(*this, Target, Args); -+ TC = new toolchains::MinGW(*this, Target, Args); - break; - case llvm::Triple::Itanium: - TC = new toolchains::CrossWindowsToolChain(*this, Target, Args); diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp new file mode 100644 index 0000000..3b6901c @@ -265,6 +237,24 @@ index 0000000..3b6901c + + "/include/c++/" + GCCVersion + "/backward"); +#endif +} +diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp +index c619c8c..d3fe34f 100644 +--- a/lib/Driver/Driver.cpp ++++ b/lib/Driver/Driver.cpp +@@ -2073,12 +2073,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, + TC = new toolchains::Generic_GCC(*this, Target, Args); + break; + case llvm::Triple::GNU: +- // FIXME: We need a MinGW toolchain. Use the default Generic_GCC +- // toolchain for now as the default case would below otherwise. +- if (Target.isOSBinFormatELF()) +- TC = new toolchains::Generic_ELF(*this, Target, Args); +- else +- TC = new toolchains::Generic_GCC(*this, Target, Args); ++ TC = new toolchains::MinGW(*this, Target, Args); + break; + case llvm::Triple::Itanium: + TC = new toolchains::CrossWindowsToolChain(*this, Target, Args); diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h index 90893c3..e8d803e 100644 --- a/lib/Driver/ToolChains.h @@ -306,10 +296,10 @@ index 90893c3..e8d803e 100644 class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic_ELF { public: diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 3c6827a..d450c54 100644 +index 94c71ac..daa5fdc 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp -@@ -8284,6 +8284,210 @@ std::unique_ptr visualstudio::Compile::GetCommand( +@@ -8318,6 +8318,210 @@ std::unique_ptr visualstudio::Compile::GetCommand( CmdArgs); } @@ -565,7 +555,7 @@ index 93a19fb..64158b5 100644 StringRef getARMFloatABI(const Driver &D, const llvm::opt::ArgList &Args, const llvm::Triple &Triple); diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp -index a518a0a..2df89b2 100644 +index 9b4f7e5..d6b57de 100644 --- a/lib/Frontend/InitHeaderSearch.cpp +++ b/lib/Frontend/InitHeaderSearch.cpp @@ -82,11 +82,6 @@ public: @@ -599,50 +589,46 @@ index a518a0a..2df89b2 100644 void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, const HeaderSearchOptions &HSOpts) { -@@ -232,6 +215,9 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, +@@ -232,6 +215,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, + case llvm::Triple::NetBSD: case llvm::Triple::OpenBSD: case llvm::Triple::Bitrig: - break; + case llvm::Triple::Win32: -+ if (triple.getEnvironment() == llvm::Triple::GNU) -+ break; + break; default: // FIXME: temporary hack: hard-coded paths. - AddPath("/usr/local/include", System, false); -@@ -269,7 +255,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, +@@ -270,7 +254,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, switch (os) { case llvm::Triple::Linux: llvm_unreachable("Include management is handled in the driver."); - + break; - case llvm::Triple::Haiku: - AddPath("/boot/common/include", System, false); - AddPath("/boot/develop/headers/os", System, false); -@@ -309,30 +295,11 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - case llvm::Triple::Win32: - switch (triple.getEnvironment()) { + case llvm::Triple::CloudABI: { + // //include + SmallString<128> P = StringRef(HSOpts.ResourceDir); +@@ -320,28 +304,9 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, default: llvm_unreachable("Include management is handled in the driver."); -+ break; case llvm::Triple::Cygnus: AddPath("/usr/include/w32api", System, false); ++ AddPath("/usr/include", ExternCSystem, false); break; case llvm::Triple::GNU: - // mingw-w64 crt include paths - // /i686-w64-mingw32/include - SmallString<128> P = StringRef(HSOpts.ResourceDir); - llvm::sys::path::append(P, "../../../i686-w64-mingw32/include"); -- AddPath(P.str(), System, false); +- AddPath(P, System, false); - - // /x86_64-w64-mingw32/include - P.resize(HSOpts.ResourceDir.size()); - llvm::sys::path::append(P, "../../../x86_64-w64-mingw32/include"); -- AddPath(P.str(), System, false); +- AddPath(P, System, false); - - // mingw.org crt include paths - // /include - P.resize(HSOpts.ResourceDir.size()); - llvm::sys::path::append(P, "../../../include"); -- AddPath(P.str(), System, false); +- AddPath(P, System, false); - AddPath("/mingw/include", System, false); -#if defined(LLVM_ON_WIN32) - AddPath("c:/mingw/include", System, false); @@ -650,16 +636,15 @@ index a518a0a..2df89b2 100644 break; } break; -@@ -340,7 +307,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, +@@ -352,6 +317,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, + switch (os) { + case llvm::Triple::CloudABI: + case llvm::Triple::RTEMS: ++ case llvm::Triple::Win32: break; - } - -- if ( os != llvm::Triple::RTEMS ) -+ if ( os != llvm::Triple::RTEMS && !triple.isWindowsGNUEnvironment() ) + default: AddPath("/usr/include", ExternCSystem, false); - } - -@@ -403,26 +370,9 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp +@@ -418,26 +384,9 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.2"); break; case llvm::Triple::GNU: @@ -688,5 +673,5 @@ index a518a0a..2df89b2 100644 if (llvm::sys::fs::exists("/usr/lib/gcc47")) AddPath("/usr/include/c++/4.7", CXXSystem, false); -- -2.3.1 +2.3.3 diff --git a/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch b/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch new file mode 100644 index 0000000000..4245dfe94e --- /dev/null +++ b/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch @@ -0,0 +1,118 @@ +From e41da429bc2ba3eb15673f3ba5e3039ad6113cd3 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Fri, 20 Mar 2015 22:43:51 +0000 +Subject: [PATCH 2/2] Fixup all windows ARM targets + + +diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp +index a9611fe..396bd3f 100644 +--- a/lib/Basic/Targets.cpp ++++ b/lib/Basic/Targets.cpp +@@ -4655,10 +4655,27 @@ public: + } + }; + ++// Windows ARM, MS (C++) ABI ++class MicrosoftARMTargetInfo : public WindowsARMTargetInfo { ++public: ++ MicrosoftARMTargetInfo(const llvm::Triple &Triple) ++ : WindowsARMTargetInfo(Triple) { ++ TheCXXABI.set(TargetCXXABI::Microsoft); ++ } ++ ++ void getTargetDefines(const LangOptions &Opts, ++ MacroBuilder &Builder) const override { ++ WindowsARMTargetInfo::getTargetDefines(Opts, Builder); ++ WindowsARMTargetInfo::getVisualStudioDefines(Opts, Builder); ++ } ++}; ++} // end anonymous namespace. ++ ++namespace { + // Windows ARM + Itanium C++ ABI Target +-class ItaniumWindowsARMleTargetInfo : public WindowsARMTargetInfo { ++class ItaniumWindowsARMTargetInfo : public WindowsARMTargetInfo { + public: +- ItaniumWindowsARMleTargetInfo(const llvm::Triple &Triple) ++ ItaniumWindowsARMTargetInfo(const llvm::Triple &Triple) + : WindowsARMTargetInfo(Triple) { + TheCXXABI.set(TargetCXXABI::GenericARM); + } +@@ -4671,23 +4688,51 @@ public: + WindowsARMTargetInfo::getVisualStudioDefines(Opts, Builder); + } + }; ++} + +-// Windows ARM, MS (C++) ABI +-class MicrosoftARMleTargetInfo : public WindowsARMTargetInfo { ++namespace { ++// ARM MinGW target ++class MinGWARMTargetInfo : public WindowsARMTargetInfo { + public: +- MicrosoftARMleTargetInfo(const llvm::Triple &Triple) ++ MinGWARMTargetInfo(const llvm::Triple &Triple) + : WindowsARMTargetInfo(Triple) { +- TheCXXABI.set(TargetCXXABI::Microsoft); ++ TheCXXABI.set(TargetCXXABI::GenericARM); + } + + void getTargetDefines(const LangOptions &Opts, + MacroBuilder &Builder) const override { + WindowsARMTargetInfo::getTargetDefines(Opts, Builder); +- WindowsARMTargetInfo::getVisualStudioDefines(Opts, Builder); ++ DefineStd(Builder, "WIN32", Opts); ++ DefineStd(Builder, "WINNT", Opts); ++ Builder.defineMacro("_ARM_"); ++ addMinGWDefines(Opts, Builder); + } + }; +-} ++} // end anonymous namespace + ++namespace { ++// ARM Cygwin target ++class CygwinARMTargetInfo : public ARMleTargetInfo { ++public: ++ CygwinARMTargetInfo(const llvm::Triple &Triple) ++ : ARMleTargetInfo(Triple) { ++ TLSSupported = false; ++ WCharType = UnsignedShort; ++ DoubleAlign = LongLongAlign = 64; ++ DescriptionString = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"; ++ } ++ void getTargetDefines(const LangOptions &Opts, ++ MacroBuilder &Builder) const override { ++ ARMleTargetInfo::getTargetDefines(Opts, Builder); ++ Builder.defineMacro("_ARM_"); ++ Builder.defineMacro("__CYGWIN__"); ++ Builder.defineMacro("__CYGWIN32__"); ++ DefineStd(Builder, "unix", Opts); ++ if (Opts.CPlusPlus) ++ Builder.defineMacro("_GNU_SOURCE"); ++ } ++}; ++} // end anonymous namespace + + namespace { + class DarwinARMTargetInfo : +@@ -6654,10 +6699,14 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { + switch (Triple.getEnvironment()) { + default: + return new ARMleTargetInfo(Triple); ++ case llvm::Triple::Cygnus: ++ return new CygwinARMTargetInfo(Triple); ++ case llvm::Triple::GNU: ++ return new MinGWARMTargetInfo(Triple); + case llvm::Triple::Itanium: +- return new ItaniumWindowsARMleTargetInfo(Triple); ++ return new ItaniumWindowsARMTargetInfo(Triple); + case llvm::Triple::MSVC: +- return new MicrosoftARMleTargetInfo(Triple); ++ return new MicrosoftARMTargetInfo(Triple); + } + default: + return new ARMleTargetInfo(Triple); +-- +2.3.3 + diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 825310b509..c57e2e7731 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -2,13 +2,15 @@ # Contributor: Ray Donnelly _realname=clang -pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" +pkgname=("${MINGW_PACKAGE_PREFIX}-lld-svn" + "${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-analyzer-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-tools-extra-svn" - "${MINGW_PACKAGE_PREFIX}-llvm-svn" #"${MINGW_PACKAGE_PREFIX}-compiler-rt-svn" - ) -pkgver=56101.57b4d93 + "${MINGW_PACKAGE_PREFIX}-llvm-svn") + +#pkgname="${MINGW_PACKAGE_PREFIX}-llvm-toolchain-svn" +pkgver=56263.fbb819f pkgrel=1 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') @@ -20,24 +22,22 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "python2" "tar" "subversion" "git") depends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=(#"llvm"::"svn+http://llvm.org/svn/llvm-project/llvm/trunk" - #"clang"::"svn+http://llvm.org/svn/llvm-project/cfe/trunk" - #"rt"::"svn+http://llvm.org/svn/llvm-project/compiler-rt/trunk" - #"testsuite"::"svn+http://llvm.org/svn/llvm-project/test-suite/trunk" - "llvm"::"git+http://llvm.org/git/llvm.git" +source=("llvm"::"git+http://llvm.org/git/llvm.git" + "lld"::"git+http://llvm.org/git/lld.git" "clang"::"git+http://llvm.org/git/clang.git" "clang-tools-extra"::"git+http://llvm.org/git/clang-tools-extra.git" - "rt"::"git+http://llvm.org/git/compiler-rt.git" - "testsuite"::"git+http://llvm.org/git/test-suite.git" + #"rt"::"git+http://llvm.org/git/compiler-rt.git" + #"testsuite"::"git+http://llvm.org/git/test-suite.git" #"libcxx"::"git+http://llvm.org/git/libcxx.git" 0001-Add-Clang-MinGW-w64-driver.patch - ) + 0002-Fixup-all-windows-ARM-targets.patch) + md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - 'SKIP' - '479f4582fdcb3063aadbcbcfd6c3fc18') + '85d6188c604f2048ee6f577280064a58' + 'c9993989d05e61aa967f0bc74736e69a') pkgver_internal() { if [ ! -d "$1" ]; then @@ -64,51 +64,111 @@ prepare() { cmake/modules/Makefile cd "${srcdir}"/clang - git am "${srcdir}"/0001-Add-Clang-MinGW-w64-driver-patch.patch + git am "${srcdir}"/0001-Add-Clang-MinGW-w64-driver.patch + git am "${srcdir}"/0002-Fixup-all-windows-ARM-targets.patch cd "${srcdir}" + mv lld llvm/tools/lld mv clang llvm/tools/clang mv clang-tools-extra llvm/tools/clang/tools/extra - mv rt llvm/projects/compiler-rt - mv testsuite llvm/projects/test-suite +# mv rt llvm/projects/compiler-rt +# mv testsuite llvm/projects/test-suite # mv libcxx llvm/projects/libcxx } build() { - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} - mkdir -p "${srcdir}"/build-${CARCH} - cd "${srcdir}"/build-${CARCH} - echo 'ac_cv_have_decl_strerror_s=${ac_cv_have_decl_strerror_s=no}' > config.cache + [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} + mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} # Include location of libffi headers in CPPFLAGS - CPPFLAGS+=" $(pkg-config --cflags libffi)" + #CPPFLAGS+=" $(pkg-config --cflags libffi)" + FFI_INCLUDE_DIR="$(pkg-config --cflags libffi)" + FFI_INCLUDE_DIR=$(echo $FFI_INCLUDE_DIR | sed 's|-I||g') - ../llvm/configure \ - -C \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --with-sysroot=${MINGW_PREFIX} \ - --enable-targets=arm,cpp,x86,x86_64 \ - --enable-optimized \ - --disable-assertions \ - --disable-pthreads \ - --with-python=/usr/bin/python2 \ - --enable-libffi \ - --enable-docs + # "Ninja" cant install each component seperately + # https://github.com/martine/ninja/issues/932 + # "MSYS Makefiles" + # msys python2 cannot be used with mingw cmake because of path conversions - make VERBOSE=1 - make -C ../llvm/docs -f Makefile.sphinx man - make -C ../llvm/docs -f Makefile.sphinx html - make -C ../llvm/tools/clang/docs -f Makefile.sphinx html + + PATH=${MINGW_PREFIX}/bin \ + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MinGW Makefiles" \ + -DCMAKE_C_COMPILER="${MINGW_PREFIX}/bin/gcc.exe" \ + -DCMAKE_CXX_COMPILER="${MINGW_PREFIX}/bin/g++.exe" \ + -DFFI_INCLUDE_DIR="${FFI_INCLUDE_DIR}" \ + -DCMAKE_C_FLAGS="${CFLAGS}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS} ${CPPFLAGS}" \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_TARGETS_TO_BUILD="ARM;CppBackend;X86" \ + -DLLVM_ENABLE_ASSERTIONS=OFF \ + -DLLVM_ENABLE_THREADS=0 \ + -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \ + -DLLVM_ENABLE_FFI=ON \ + -DLLVM_ENABLE_SPHINX=ON \ + ../llvm + +# ../llvm/configure \ +# -C \ +# --prefix=${MINGW_PREFIX} \ +# --build=${MINGW_CHOST} \ +# --host=${MINGW_CHOST} \ +# --with-sysroot=${MINGW_PREFIX} \ +# --enable-targets=arm,cpp,x86,x86_64 \ +# --enable-optimized \ +# --disable-assertions \ +# --disable-pthreads \ +# --with-python=/usr/bin/python2 \ +# --enable-libffi \ +# --enable-docs + + #ninja + mingw32-make + #make -C ../llvm/docs -f Makefile.sphinx man + #make -C ../llvm/docs -f Makefile.sphinx html + #make -C ../llvm/tools/clang/docs -f Makefile.sphinx html } -check() { - cd "${srcdir}"/build-${CARCH} - # Remove || true once testcase doesn't cause failures. - make check || true +#check() { +# cd "${srcdir}"/build-${CARCH} +# # Remove || true once testcase doesn't cause failures. +# make check || true +#} + +#Suite package + +package_llvm-toolchain(){ + pkgdesc="Low Level Virtual Machine Suite" + provides=("${MINGW_PACKAGE_PREFIX}-llvm" + "${MINGW_PACKAGE_PREFIX}-lld" + "${MINGW_PACKAGE_PREFIX}-clang" + "${MINGW_PACKAGE_PREFIX}-clang-tools-extra" + "${MINGW_PACKAGE_PREFIX}-clang-analyzer") + + conflicts=("${MINGW_PACKAGE_PREFIX}-llvm" + "${MINGW_PACKAGE_PREFIX}-lld" + "${MINGW_PACKAGE_PREFIX}-clang" + "${MINGW_PACKAGE_PREFIX}-clang-tools-extra" + "${MINGW_PACKAGE_PREFIX}-clang-analyzer") + pkgver=$(pkgver_internal "${srcdir}"/llvm) + + cd build-${CARCH} + DESTDIR="$pkgdir" ninja install + mv ${pkgdir}/msys64${MINGW_PREFIX} ${pkgdir} + rm -rf ${pkgdir}/msys64 } +package_mingw-w64-i686-llvm-toolchain-svn(){ + package_llvm-toolchain +} + +package_mingw-w64-x86_64-llvm-toolchain-svn(){ + package_llvm-toolchain +} + +# Seperate Packages + package_clang(){ pkgdesc="C language family frontend for LLVM" depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") @@ -122,9 +182,14 @@ package_clang(){ mv build-${CARCH}/tools/clang/tools/extra clang-tools-extra-${CARCH} cd build-${CARCH}/tools/clang - make -j1 DESTDIR="$pkgdir" install + #ninja clang install + mingw32-make -j1 DESTDIR="$pkgdir" install + + mv ${pkgdir}/msys64${MINGW_PREFIX} ${pkgdir} + rm -rf ${pkgdir}/msys64 + # Fix mis-named clang doc folder (is llvm, should be clang) - mv "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm "${pkgdir}"${MINGW_PREFIX}/share/doc/clang + #mv "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm "${pkgdir}"${MINGW_PREFIX}/share/doc/clang # .. Unmove cd "${srcdir}" @@ -132,9 +197,9 @@ package_clang(){ mv clang-tools-extra-${CARCH} build-${CARCH}/tools/clang/tools/extra # Install html docs - install -d "${pkgdir}"${MINGW_PREFIX}/share/doc/clang/html - cp -rf "${srcdir}"/llvm/tools/clang/docs/_build/html/* "${pkgdir}"${MINGW_PREFIX}/share/doc/clang/html/ - rm -r "${pkgdir}"${MINGW_PREFIX}/share/doc/clang/html/_sources + #install -d "${pkgdir}"${MINGW_PREFIX}/share/doc/clang/html + #cp -rf "${srcdir}"/llvm/tools/clang/docs/_build/html/* "${pkgdir}"${MINGW_PREFIX}/share/doc/clang/html/ + #rm -r "${pkgdir}"${MINGW_PREFIX}/share/doc/clang/html/_sources } package_clang-tools-extra(){ @@ -146,16 +211,33 @@ package_clang-tools-extra(){ pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang/tools/extra) cd "${srcdir}"/build-${CARCH}/tools/clang/tools/extra - make -j1 DESTDIR="$pkgdir" install + mingw32-make -j1 DESTDIR="$pkgdir" install + + mv ${pkgdir}/msys64${MINGW_PREFIX} ${pkgdir} + rm -rf ${pkgdir}/msys64 } # package_compiler-rt(){ # pkgver=$(pkgver_internal "${srcdir}"/compiler-rt) # } +package_lld(){ + pkgdesc="Linker tools for LLVM" + depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") + provides=("${MINGW_PACKAGE_PREFIX}-lld") + conflicts=("${MINGW_PACKAGE_PREFIX}-lld") + pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/lld) + + cd build-${CARCH}/tools/lld + mingw32-make -j1 DESTDIR="$pkgdir" install + + mv ${pkgdir}/msys64${MINGW_PREFIX} ${pkgdir} + rm -rf ${pkgdir}/msys64 +} + package_llvm(){ pkgdesc="Low Level Virtual Machine" - depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "${MINGW_PACKAGE_PREFIX}-compiler-rt" + #depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "${MINGW_PACKAGE_PREFIX}-compiler-rt" provides=("${MINGW_PACKAGE_PREFIX}-llvm") conflicts=("${MINGW_PACKAGE_PREFIX}-llvm") install=llvm-${CARCH}.install @@ -166,27 +248,36 @@ package_llvm(){ mv llvm/tools/clang clang mv build-${CARCH}/tools/clang clang-${CARCH} + mv llvm/tools/lld lld + mv build-${CARCH}/tools/lld lld-${CARCH} + cd build-${CARCH} - make -j1 DESTDIR="$pkgdir" install + mingw32-make -j1 DESTDIR="$pkgdir" install + + mv ${pkgdir}/msys64${MINGW_PREFIX} ${pkgdir} + rm -rf ${pkgdir}/msys64 # .. Unmove cd "${srcdir}" mv clang llvm/tools/clang mv clang-${CARCH} build-${CARCH}/tools/clang + mv lld llvm/tools/lld + mv lld-${CARCH} build-${CARCH}/tools/lld + # Install man pages - install -d "${pkgdir}"${MINGW_PREFIX}/share/man/man1 - cp "${srcdir}"/llvm/docs/_build/man/*.1 "${pkgdir}"${MINGW_PREFIX}/share/man/man1/ + #install -d "${pkgdir}"${MINGW_PREFIX}/share/man/man1 + #cp "${srcdir}"/llvm/docs/_build/man/*.1 "${pkgdir}"${MINGW_PREFIX}/share/man/man1/ # Install html docs - install -d "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html - cp -rf "${srcdir}"/llvm/docs/_build/html/* "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html/ - rm -r "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html/_sources + #install -d "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html + #cp -rf "${srcdir}"/llvm/docs/_build/html/* "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html/ + #rm -r "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html/_sources # Install CMake stuff install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} - install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/modules/ - install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/platforms/ + install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/modules/" + install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/platforms/" } package_clang-analyzer() { @@ -207,7 +298,7 @@ package_clang-analyzer() { # scan-build looks for clang within the same directory install -d "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ - ln -s "${srcdir}"/build-${CARCH}/Release/bin/clang.exe "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ + ln -s "${srcdir}"/build-${CARCH}/bin/clang.exe "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ # Relocate man page install -d "${pkgdir}"${MINGW_PREFIX}/share/man/man1 @@ -243,6 +334,10 @@ package_mingw-w64-i686-clang-tools-extra-svn(){ # package_compiler-rt # } +package_mingw-w64-i686-lld-svn(){ + package_lld +} + package_mingw-w64-i686-llvm-svn(){ package_llvm } @@ -263,6 +358,10 @@ package_mingw-w64-x86_64-clang-tools-extra-svn(){ # package_compiler-rt # } +package_mingw-w64-x86_64-lld-svn(){ + package_lld +} + package_mingw-w64-x86_64-llvm-svn(){ package_llvm } From 439adaf1dac82fe440fa90c49b7e6068a48d4554 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sat, 21 Mar 2015 18:33:06 +0100 Subject: [PATCH 0694/2060] nodejs: Cosmetic fixes --- mingw-w64-nodejs/PKGBUILD | 52 ++++++++++------------------------- mingw-w64-nodejs/node-gyp | 17 ++++++++++++ mingw-w64-nodejs/node-gyp.cmd | 5 ++++ 3 files changed, 37 insertions(+), 37 deletions(-) create mode 100644 mingw-w64-nodejs/node-gyp create mode 100644 mingw-w64-nodejs/node-gyp.cmd diff --git a/mingw-w64-nodejs/PKGBUILD b/mingw-w64-nodejs/PKGBUILD index 6597cb4e51..a8d4f53200 100644 --- a/mingw-w64-nodejs/PKGBUILD +++ b/mingw-w64-nodejs/PKGBUILD @@ -21,7 +21,7 @@ makedepends=("python2" "make" "gyp-svn") # "${MINGW_PACKAGE_PREFIX}-libuv" # "${MINGW_PACKAGE_PREFIX}-openssl" # "${MINGW_PACKAGE_PREFIX}-zlib") -depends=("${MINGW_PACKAGE_PREFIX}-openssl" "winpty-git") +depends=("${MINGW_PACKAGE_PREFIX}-openssl" "winpty") #options=('!emptydirs' '!strip') # 'debug') source=("http://nodejs.org/dist/v${pkgver}/node-v${pkgver}.tar.gz" @@ -46,7 +46,9 @@ source=("http://nodejs.org/dist/v${pkgver}/node-v${pkgver}.tar.gz" "0201-v8-3.26.33-Include-win32-headers-h-then-undef-MemoryBarrier.patch" "0203-v8-3.26.33-Use-soname_version.dll-not-so.soname_version-on-Windows.patch" "0300-uv-Use-4-arg-swprintf-on-MinGW-w64.patch" - "0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch") + "0301-uv-Set-WIN32_WINNT_to_0x501_for_XP.patch" + 'node-gyp' + 'node-gyp.cmd') md5sums=('2c00d8cf243753996eecdc4f6e2a2d11' '0f5ef2b9965f6e921f5f41a21055d170' @@ -68,7 +70,9 @@ md5sums=('2c00d8cf243753996eecdc4f6e2a2d11' '9828f204d7068faa656b83c738b67f5e' '0be71da4648801fba9aef222919cf611' '1f389190a61075b31675090fa4a60f53' - '389ff9955ef2b7b3414551dc7f9e34e5') + '389ff9955ef2b7b3414551dc7f9e34e5' + '5062d922c98b26608d1107c820880ee0' + '38f2c7558ef3d3160d97964ac2553bc3') prepare() { @@ -179,45 +183,19 @@ package() { install -D -m644 LICENSE \ "$pkgdir"/${MINGW_PREFIX}/share/licenses/nodejs/LICENSE - cat > "${pkgdir}"${MINGW_PREFIX}/bin/node-gyp <<< '#!/bin/sh - (set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix + install -m755 "${srcdir}/node-gyp" "${pkgdir}"${MINGW_PREFIX}/bin/node-gyp + install -m755 "${srcdir}/node-gyp.cmd" "${pkgdir}"${MINGW_PREFIX}/bin/node-gyp.cmd + install -m755 "${pkgdir}${MINGW_PREFIX}/lib/node_modules/npm/bin/npm.cmd" "${pkgdir}${MINGW_PREFIX}/bin/npm.cmd" - basedir=`dirname "$0"` - - case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; - esac - - if [ -x "$basedir/node.exe" ]; then - "$basedir/node.exe" "$basedir/../lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "$@" - else - node "$basedir/../lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "$@" - fi' - - cat > "${pkgdir}"${MINGW_PREFIX}/bin/node-gyp.cmd <<< ' - @IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\lib\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" %* - ) ELSE ( - node "%~dp0\..\lib\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" %* - )' - - # Use winpty-git script to invoke node. Please don't move this into a patch as - # hopefully one day we won't need this hack. - mv "${pkgdir}"${MINGW_PREFIX}/bin/node.exe "${pkgdir}"${MINGW_PREFIX}/bin/node_exe - _exename="node" + # Use winpty to wrap the exe when executed from bash. Please don't move this into a patch as hopefully one day we won't need this hack. + local _exename="node" + mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe echo "#!/usr/bin/env bash" > "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" echo '/usr/bin/winpty "$( dirname ${BASH_SOURCE[0]} )/'${_exename}'.exe" "$@"' >> "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" - mv "${pkgdir}"${MINGW_PREFIX}/bin/node_exe "${pkgdir}"${MINGW_PREFIX}/bin/node.exe - - cp "${pkgdir}${MINGW_PREFIX}/lib/node_modules/npm/bin/npm.cmd" "${pkgdir}${MINGW_PREFIX}/bin/npm.cmd" + mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe # copy missing manpages - cp -R "${pkgdir}${MINGW_PREFIX}/lib/node_modules/npm/man" "${pkgdir}${MINGW_PREFIX}/share" + cp -r "${pkgdir}${MINGW_PREFIX}/lib/node_modules/npm/man" "${pkgdir}${MINGW_PREFIX}/share" - # It seems that some paths need fixing: - # npm does the right thing with these files if you install a package globally. - # node /mingw64/lib/node_modules/npm/bin/npm-cli.js -g install coffee-script - # Creates correct coffee and coffee.cmd. - # But it installs the packages in /mingw64/bin/node_modules instead of /mingw64/lib/node_modules. # /mingw64/lib/node_modules/npm/lib/npm.js is ridden with tests for win32, so that should probably be changed someday. } diff --git a/mingw-w64-nodejs/node-gyp b/mingw-w64-nodejs/node-gyp new file mode 100644 index 0000000000..27831904db --- /dev/null +++ b/mingw-w64-nodejs/node-gyp @@ -0,0 +1,17 @@ +#!/bin/sh +(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix + +basedir=`dirname "$0"` + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node.exe" ]; then + "$basedir/node.exe" "$basedir/../lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "$@" + ret=$? +else + node "$basedir/../lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "$@" + ret=$? +fi +exit $ret diff --git a/mingw-w64-nodejs/node-gyp.cmd b/mingw-w64-nodejs/node-gyp.cmd new file mode 100644 index 0000000000..2e6859a2e9 --- /dev/null +++ b/mingw-w64-nodejs/node-gyp.cmd @@ -0,0 +1,5 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\lib\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" %* +) ELSE ( + node "%~dp0\..\lib\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" %* +) From d1051589d70b86a4c0ecb8346b61931eb9585c19 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sun, 22 Mar 2015 01:48:20 +0100 Subject: [PATCH 0695/2060] lua, lua51: Add winpty wrapper (pkgrel not incremented) --- mingw-w64-lua/PKGBUILD | 10 ++++++++++ mingw-w64-lua51/PKGBUILD | 10 +++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/mingw-w64-lua/PKGBUILD b/mingw-w64-lua/PKGBUILD index d71cfd35ff..07d6e1d333 100644 --- a/mingw-w64-lua/PKGBUILD +++ b/mingw-w64-lua/PKGBUILD @@ -1,4 +1,5 @@ # Maintainer: Alexey Pavlov +# Contributor: David Macek _realname=lua pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" @@ -8,6 +9,7 @@ pkgdesc="A powerful light-weight programming language designed for extending app arch=('any') url="http://www.lua.org/" license=('MIT') +depends=('winpty') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip' 'emptydirs') source=("$url/ftp/lua-$pkgver.tar.gz" @@ -51,6 +53,14 @@ package() { INSTALL_TOP="${pkgdir}${MINGW_PREFIX}" \ INSTALL_MAN="${pkgdir}${MINGW_PREFIX}"/share/man/man1 \ install + + # Use winpty to wrap the exe when executed from bash. Please don't move this into a patch as hopefully one day we won't need this hack. + local _exename="lua" + mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe + echo "#!/usr/bin/env bash" > "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" + echo '/usr/bin/winpty "$( dirname ${BASH_SOURCE[0]} )/'${_exename}'.exe" "$@"' >> "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" + mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe + install -Dm644 lua.pc "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/lua.pc install -Dm644 lua.pc "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/lua5.2.pc diff --git a/mingw-w64-lua51/PKGBUILD b/mingw-w64-lua51/PKGBUILD index 408a4c8c5b..3d7fbb1a8f 100644 --- a/mingw-w64-lua51/PKGBUILD +++ b/mingw-w64-lua51/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Alexey Pavlov +# Contributor: David Macek _realname=lua51 - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.1.5 pkgrel=3 @@ -9,6 +9,7 @@ pkgdesc="A powerful light-weight programming language designed for extending app arch=('any') url="http://www.lua.org/" license=('MIT') +depends=('winpty') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip' 'emptydirs') source=("$url/ftp/lua-$pkgver.tar.gz" @@ -64,6 +65,13 @@ package() { install -m644 doc/*.{gif,png,css,html} "${pkgdir}${MINGW_PREFIX}"/share/doc/${_realname} install -Dm644 COPYRIGHT "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/COPYRIGHT + # Use winpty to wrap the exe when executed from bash. Please don't move this into a patch as hopefully one day we won't need this hack. + local _exename="lua5.1" + mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe + echo "#!/usr/bin/env bash" > "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" + echo '/usr/bin/winpty "$( dirname ${BASH_SOURCE[0]} )/'${_exename}'.exe" "$@"' >> "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" + mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe + cd "${pkgdir}${MINGW_PREFIX}"/share/man/man1 mv lua.1 lua5.1.1 mv luac.1 luac5.1.1 From 61cb698f72352e94c43f90cf4e39738f439f2b7f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 22 Mar 2015 11:41:07 +0300 Subject: [PATCH 0696/2060] gcc: Build release packages. --- mingw-w64-gcc/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 427ccba8e0..793328cddc 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -31,7 +31,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-ada" makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" 'lndir') #checkdepends=('dejagnu') optdepends=() -options=('!strip' 'debug' 'staticlibs' '!emptydirs') +options=('strip' '!debug' 'staticlibs' '!emptydirs') source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.bz2" '000-relocatex-libintl-0.18.3.1.mingw.patch' '001-gcc-4.8-libstdc++export.patch' From 54c6db2f6c592ffee4354d998002521ed042b769 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 22 Mar 2015 14:15:32 +0300 Subject: [PATCH 0697/2060] harfbuzz: Update to 0.9.40 --- mingw-w64-harfbuzz/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 08a4a0492b..005a20429e 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -3,7 +3,7 @@ _realname=harfbuzz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.39 +pkgver=0.9.40 pkgrel=1 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') @@ -20,7 +20,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") -sha256sums=('1717344b6e782d3fb57180da792fba661c2f0b1cb32ecbf373c219c801d6136b') +sha256sums=('1771d53583be6d91ca961854b2a24fb239ef0545eed221ae3349abae0ab8321f') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From bcfde126afca350249a396e5bd3f5de525452492 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 23 Mar 2015 10:17:53 +0300 Subject: [PATCH 0698/2060] glib2: Update to 2.43.4 --- ...-block-when-errno-says-it-will-block.patch | 274 ------------------ mingw-w64-glib2/PKGBUILD | 9 +- 2 files changed, 3 insertions(+), 280 deletions(-) delete mode 100644 mingw-w64-glib2/0001-gsocket-block-when-errno-says-it-will-block.patch diff --git a/mingw-w64-glib2/0001-gsocket-block-when-errno-says-it-will-block.patch b/mingw-w64-glib2/0001-gsocket-block-when-errno-says-it-will-block.patch deleted file mode 100644 index 6cd226dd1b..0000000000 --- a/mingw-w64-glib2/0001-gsocket-block-when-errno-says-it-will-block.patch +++ /dev/null @@ -1,274 +0,0 @@ -From 177ff38e103a76b7cd153c4c8014159eb6a9eb60 Mon Sep 17 00:00:00 2001 -From: Ignacio Casal Quinteiro -Date: Mon, 22 Dec 2014 16:38:50 +0100 -Subject: [PATCH] gsocket: block when errno says it will block - -On windows it may happen we recreate a gsocket -out of a fd from another gsocket that already -got the FD_WRITE event. If this happens in order -to get another FD_WRITE we need to have tried an -operation that might need such event. What we do -here is to first try to do the operation and -then if errno specifies that we might block then -wait for that event to occur. - -https://bugzilla.gnome.org/show_bug.cgi?id=741707 ---- - gio/gsocket.c | 147 ++++++++++++++++++++++++++++++---------------------------- - 1 file changed, 77 insertions(+), 70 deletions(-) - -diff --git a/gio/gsocket.c b/gio/gsocket.c -index d9e135d..f144674 100644 ---- a/gio/gsocket.c -+++ b/gio/gsocket.c -@@ -2230,31 +2230,31 @@ g_socket_accept (GSocket *socket, - - while (TRUE) - { -- if (socket->priv->blocking && -- !g_socket_condition_wait (socket, -- G_IO_IN, cancellable, error)) -- return NULL; -- - if ((ret = accept (socket->priv->fd, NULL, 0)) < 0) - { - int errsv = get_socket_errno (); - -- win32_unset_event_mask (socket, FD_ACCEPT); -- - if (errsv == EINTR) - continue; - -- if (socket->priv->blocking) -- { - #ifdef WSAEWOULDBLOCK -- if (errsv == WSAEWOULDBLOCK) -- continue; -+ if (errsv == WSAEWOULDBLOCK) - #else -- if (errsv == EWOULDBLOCK || -- errsv == EAGAIN) -- continue; -+ if (errsv == EWOULDBLOCK || -+ errsv == EAGAIN) - #endif -- } -+ { -+ win32_unset_event_mask (socket, FD_ACCEPT); -+ -+ if (socket->priv->blocking) -+ { -+ if (!g_socket_condition_wait (socket, -+ G_IO_IN, cancellable, error)) -+ return NULL; -+ -+ continue; -+ } -+ } - - g_set_error (error, G_IO_ERROR, - socket_io_error_from_errno (errsv), -@@ -2368,6 +2368,8 @@ g_socket_connect (GSocket *socket, - if (errsv == WSAEWOULDBLOCK) - #endif - { -+ win32_unset_event_mask (socket, FD_CONNECT); -+ - if (socket->priv->blocking) - { - if (g_socket_condition_wait (socket, G_IO_OUT, cancellable, error)) -@@ -2602,11 +2604,6 @@ g_socket_receive_with_blocking (GSocket *socket, - - while (1) - { -- if (blocking && -- !g_socket_condition_wait (socket, -- G_IO_IN, cancellable, error)) -- return -1; -- - if ((ret = recv (socket->priv->fd, buffer, size, 0)) < 0) - { - int errsv = get_socket_errno (); -@@ -2614,17 +2611,24 @@ g_socket_receive_with_blocking (GSocket *socket, - if (errsv == EINTR) - continue; - -- if (blocking) -- { - #ifdef WSAEWOULDBLOCK -- if (errsv == WSAEWOULDBLOCK) -- continue; -+ if (errsv == WSAEWOULDBLOCK) - #else -- if (errsv == EWOULDBLOCK || -- errsv == EAGAIN) -- continue; -+ if (errsv == EWOULDBLOCK || -+ errsv == EAGAIN) - #endif -- } -+ { -+ win32_unset_event_mask (socket, FD_READ); -+ -+ if (blocking) -+ { -+ if (!g_socket_condition_wait (socket, -+ G_IO_IN, cancellable, error)) -+ return -1; -+ -+ continue; -+ } -+ } - - win32_unset_event_mask (socket, FD_READ); - -@@ -2777,11 +2781,6 @@ g_socket_send_with_blocking (GSocket *socket, - - while (1) - { -- if (blocking && -- !g_socket_condition_wait (socket, -- G_IO_OUT, cancellable, error)) -- return -1; -- - if ((ret = send (socket->priv->fd, buffer, size, G_SOCKET_DEFAULT_SEND_FLAGS)) < 0) - { - int errsv = get_socket_errno (); -@@ -2790,21 +2789,23 @@ g_socket_send_with_blocking (GSocket *socket, - continue; - - #ifdef WSAEWOULDBLOCK -- if (errsv == WSAEWOULDBLOCK) -- win32_unset_event_mask (socket, FD_WRITE); --#endif -- -- if (blocking) -- { --#ifdef WSAEWOULDBLOCK -- if (errsv == WSAEWOULDBLOCK) -- continue; -+ if (errsv == WSAEWOULDBLOCK) - #else -- if (errsv == EWOULDBLOCK || -- errsv == EAGAIN) -- continue; -+ if (errsv == EWOULDBLOCK || -+ errsv == EAGAIN) - #endif -- } -+ { -+ win32_unset_event_mask (socket, FD_WRITE); -+ -+ if (blocking) -+ { -+ if (!g_socket_condition_wait (socket, -+ G_IO_OUT, cancellable, error)) -+ return -1; -+ -+ continue; -+ } -+ } - - g_set_error (error, G_IO_ERROR, - socket_io_error_from_errno (errsv), -@@ -3874,11 +3875,6 @@ g_socket_send_message (GSocket *socket, - - while (1) - { -- if (socket->priv->blocking && -- !g_socket_condition_wait (socket, -- G_IO_OUT, cancellable, error)) -- return -1; -- - result = sendmsg (socket->priv->fd, &msg, flags | G_SOCKET_DEFAULT_SEND_FLAGS); - if (result < 0) - { -@@ -3890,7 +3886,13 @@ g_socket_send_message (GSocket *socket, - if (socket->priv->blocking && - (errsv == EWOULDBLOCK || - errsv == EAGAIN)) -- continue; -+ { -+ if (!g_socket_condition_wait (socket, -+ G_IO_OUT, cancellable, error)) -+ return -1; -+ -+ continue; -+ } - - g_set_error (error, G_IO_ERROR, - socket_io_error_from_errno (errsv), -@@ -3942,11 +3944,6 @@ g_socket_send_message (GSocket *socket, - - while (1) - { -- if (socket->priv->blocking && -- !g_socket_condition_wait (socket, -- G_IO_OUT, cancellable, error)) -- return -1; -- - if (address) - result = WSASendTo (socket->priv->fd, - bufs, num_vectors, -@@ -3967,11 +3964,18 @@ g_socket_send_message (GSocket *socket, - continue; - - if (errsv == WSAEWOULDBLOCK) -- win32_unset_event_mask (socket, FD_WRITE); -+ { -+ win32_unset_event_mask (socket, FD_WRITE); - -- if (socket->priv->blocking && -- errsv == WSAEWOULDBLOCK) -- continue; -+ if (socket->priv->blocking) -+ { -+ if (!g_socket_condition_wait (socket, -+ G_IO_OUT, cancellable, error)) -+ return -1; -+ -+ continue; -+ } -+ } - - g_set_error (error, G_IO_ERROR, - socket_io_error_from_errno (errsv), -@@ -4634,11 +4638,6 @@ g_socket_receive_message (GSocket *socket, - /* do it */ - while (1) - { -- if (socket->priv->blocking && -- !g_socket_condition_wait (socket, -- G_IO_IN, cancellable, error)) -- return -1; -- - addrlen = sizeof addr; - if (address) - result = WSARecvFrom (socket->priv->fd, -@@ -4658,11 +4657,19 @@ g_socket_receive_message (GSocket *socket, - if (errsv == WSAEINTR) - continue; - -- win32_unset_event_mask (socket, FD_READ); -+ if (errsv == WSAEWOULDBLOCK) -+ { -+ win32_unset_event_mask (socket, FD_READ); - -- if (socket->priv->blocking && -- errsv == WSAEWOULDBLOCK) -- continue; -+ if (socket->priv->blocking) -+ { -+ if (!g_socket_condition_wait (socket, -+ G_IO_IN, cancellable, error)) -+ return -1; -+ -+ continue; -+ } -+ } - - g_set_error (error, G_IO_ERROR, - socket_io_error_from_errno (errsv), --- -2.1.0 - diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 7dcb7e425b..220dc565bc 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -3,8 +3,8 @@ _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.42.2 -pkgrel=3 +pkgver=2.43.4 +pkgrel=1 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" @@ -26,10 +26,9 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.t 0021-use-64bit-stat-for-localfile-size-calc.all.patch 0023-print-in-binary-more-for-testing.all.patch 0024-return-actually-written-data-in-printf.all.patch - 0001-gsocket-block-when-errno-says-it-will-block.patch 0027-no_sys_if_nametoindex.patch 0028-inode_directory.patch) -md5sums=('ae9ee104932657ed08ef4679556be07f' +md5sums=('2f28879252c660a65aa3139ec499776b' '98c7778b5e8a30dbcdb86bcd15f9c11d' '6eb9d56028ea3bbec3d053254a00a04b' '46969e815f3ab19582ba33667a52048b' @@ -39,7 +38,6 @@ md5sums=('ae9ee104932657ed08ef4679556be07f' '952989e534235721d30b9ee3d89cc225' '217a997ede1b93ac06f96ed869b74378' '500f39baea98d98e4a2f877ad56f55a5' - 'c8942cf5035f97ade5ab9c757a210f01' 'd06748f2891e1f4e6db5684d5935aefc' '6c06cdfcbf877fb560e0be393a043d56') @@ -55,7 +53,6 @@ prepare() { patch -Np1 -i "$srcdir/0021-use-64bit-stat-for-localfile-size-calc.all.patch" patch -Np1 -i "$srcdir/0023-print-in-binary-more-for-testing.all.patch" patch -Np1 -i "$srcdir/0024-return-actually-written-data-in-printf.all.patch" - patch -Np1 -i "$srcdir/0001-gsocket-block-when-errno-says-it-will-block.patch" patch -Np1 -i "$srcdir/0027-no_sys_if_nametoindex.patch" patch -Np1 -i "$srcdir/0028-inode_directory.patch" From 44ab01b212155076d32e6602404d17a02aa57331 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 23 Mar 2015 10:40:35 +0300 Subject: [PATCH 0699/2060] gtk3: Update to 3.16.0 --- .../0035-enable-rgba-w32-windows.all.patch | 2 +- mingw-w64-gtk3/0055-skip-testsuite.all.patch | 8 +++---- mingw-w64-gtk3/PKGBUILD | 22 +++++++++---------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/mingw-w64-gtk3/0035-enable-rgba-w32-windows.all.patch b/mingw-w64-gtk3/0035-enable-rgba-w32-windows.all.patch index 2bd2cc5891..ad1148a657 100644 --- a/mingw-w64-gtk3/0035-enable-rgba-w32-windows.all.patch +++ b/mingw-w64-gtk3/0035-enable-rgba-w32-windows.all.patch @@ -1,9 +1,9 @@ --- gtk+-3.12.0/gdk/win32/gdkwindow-win32.c.orig 2014-03-24 17:28:56.000000000 +0000 +++ gtk+-3.12.0/gdk/win32/gdkwindow-win32.c 2014-04-06 19:32:28.642347700 +0000 @@ -38,6 +38,9 @@ - #include "gdkdisplayprivate.h" #include "gdkvisualprivate.h" #include "gdkwin32window.h" + #include "gdkglcontext-win32.h" +#ifdef HAVE_W32_DWM +#include +#endif diff --git a/mingw-w64-gtk3/0055-skip-testsuite.all.patch b/mingw-w64-gtk3/0055-skip-testsuite.all.patch index c3e75ff9d4..8e32ee2ac2 100644 --- a/mingw-w64-gtk3/0055-skip-testsuite.all.patch +++ b/mingw-w64-gtk3/0055-skip-testsuite.all.patch @@ -4,8 +4,8 @@ ## Makefile.am for GTK+ include $(top_srcdir)/Makefile.decl --SRC_SUBDIRS = util gdk gtk libgail-util modules demos tests testsuite examples -+SRC_SUBDIRS = util gdk gtk libgail-util modules +-SRC_SUBDIRS = gdk gtk libgail-util modules demos tests testsuite examples ++SRC_SUBDIRS = gdk gtk libgail-util modules SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} @@ -15,8 +15,8 @@ || { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } \ && DISPLAY=:$$XID && export DISPLAY --SRC_SUBDIRS = util gdk gtk libgail-util modules demos tests testsuite examples -+SRC_SUBDIRS = util gdk gtk libgail-util modules +-SRC_SUBDIRS = gdk gtk libgail-util modules demos tests testsuite examples ++SRC_SUBDIRS = gdk gtk libgail-util modules SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} MAINTAINERCLEANFILES = \ diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index c1672e7464..0c4024d847 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -2,8 +2,8 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.9 -pkgrel=2 +pkgver=3.16.0 +pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -18,12 +18,12 @@ makedepends+=("autoconf" "automake" "libtool") # autotools are required because several Makefile.am are modified depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" - "${MINGW_PACKAGE_PREFIX}-atk" - "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" - "${MINGW_PACKAGE_PREFIX}-glib2>=2.41.0" + "${MINGW_PACKAGE_PREFIX}-atk>=2.15.1" + "${MINGW_PACKAGE_PREFIX}-cairo>=1.14.0" + "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2>=2.30.0" + "${MINGW_PACKAGE_PREFIX}-glib2>=2.43.4" "${MINGW_PACKAGE_PREFIX}-json-glib" - "${MINGW_PACKAGE_PREFIX}-pango" + "${MINGW_PACKAGE_PREFIX}-pango>=1.36.7" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" @@ -34,18 +34,18 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0054-no-transparency-for-children.all.patch 0055-skip-testsuite.all.patch Make-reftest-plugins-W32-compatible.patch) -md5sums=('40902a0b035277011095946e1c61290d' +md5sums=('11c97ce2527956e0ddb5ad5b236e4572' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' - '397bf8001d3da75e06b5794e378ae25f' + '3aa19ea25cc1d7693ae57f8e80f88440' 'ad383a497a9134355e0a549f844c3a33' '31d098e6856ddc8dde7259ae572f8bf1' - '751ee83452f3e06a460a8867f8e479b8' + '939ecf0b7c985e947c6bf48dfd3b8df0' '864d4b2cd6f72115cc78a393ccd96b47') prepare() { cd "${srcdir}/gtk+-${pkgver}" - patch -Np1 -i "${srcdir}"/0010-put-gtk-dll-into-path.mingw.patch + #patch -Np1 -i "${srcdir}"/0010-put-gtk-dll-into-path.mingw.patch patch -Np1 -i "${srcdir}"/0013-fix-mingw-w64-fstat-call.mingw.patch patch -Np1 -i "${srcdir}"/0035-enable-rgba-w32-windows.all.patch patch -Np1 -i "${srcdir}"/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch From fc9fab4225412fb55be1e884519f7f83e9ebdc7b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 24 Mar 2015 14:03:51 +0300 Subject: [PATCH 0700/2060] libtre: Rebuild. --- mingw-w64-libtre-git/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libtre-git/PKGBUILD b/mingw-w64-libtre-git/PKGBUILD index 7bc39def0a..279ac59ff1 100644 --- a/mingw-w64-libtre-git/PKGBUILD +++ b/mingw-w64-libtre-git/PKGBUILD @@ -6,7 +6,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=r122.c2f5d13 -pkgrel=2 +pkgrel=3 pkgdesc="The approximate regex matching library and agrep command line tool (mingw-w64)" url="https://github.com/laurikari/tre" arch=('any') @@ -43,7 +43,8 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --enable-shared \ - --enable-static + --enable-static \ + --without-libintl-prefix make } From 07b84dbe6108d3b61208889124f080f9034d74fa Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 24 Mar 2015 14:05:05 +0300 Subject: [PATCH 0701/2060] libsystre: Update to 1.0.1 --- mingw-w64-libsystre/PKGBUILD | 4 ++-- mingw-w64-libsystre/systre-1.0.0.tar.xz | Bin 219040 -> 0 bytes mingw-w64-libsystre/systre-1.0.1.tar.xz | Bin 0 -> 220464 bytes 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 mingw-w64-libsystre/systre-1.0.0.tar.xz create mode 100644 mingw-w64-libsystre/systre-1.0.1.tar.xz diff --git a/mingw-w64-libsystre/PKGBUILD b/mingw-w64-libsystre/PKGBUILD index 2bcc35704c..3cd5d7d289 100644 --- a/mingw-w64-libsystre/PKGBUILD +++ b/mingw-w64-libsystre/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" provides="${MINGW_PACKAGE_PREFIX}-libgnurx" conflicts="${MINGW_PACKAGE_PREFIX}-libgnurx" replaces="${MINGW_PACKAGE_PREFIX}-libgnurx" -pkgver=1.0.0 +pkgver=1.0.1 pkgrel=1 pkgdesc="Wrapper library around TRE that provides POSIX API (mingw-w64)" arch=('any') @@ -15,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-libtre") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(systre-${pkgver}.tar.xz) -sha1sums=('d531bc8858091f4d0e4bb0ea8ee966d896e10a16') +sha1sums=('a1d5c6f6a06113bb2aa0e86603cec3d209650253') prepare() { cd systre-${pkgver} diff --git a/mingw-w64-libsystre/systre-1.0.0.tar.xz b/mingw-w64-libsystre/systre-1.0.0.tar.xz deleted file mode 100644 index 4d4551bb8d10f983aa5897951e8b8d17a3bd0d1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219040 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

dFKtjJB6tKArkVb7mnnaIB`GC}WWhb@ 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

i^da_E|x zB;=-bLv-k&M#HgM10{3H;QAX-bFAWs0i+LL!il@+)zZSvyl{1-567ln8o>Zq_t5|G z^yfNxjmC6Ix))Dhmd02U(*$NZtui$U?7Vg46^&o}>FPc%M`rB;xsx&iQsd)?m`W@e z(1?(YtY)&Qcw%Rekj2>yFa>^+h$y72_c8s%hA(5*x#%OI(eXVjA~mgnQ+KP14rDhsUmGqpw2g-7 zks>DOAq5esr-M=BG4-6zN|>DhQ$Vc0Rva)JAwhgu;2Hdu@fu7SvIWRXs5Ni3J}MC} ze^0U9FQIkYJ8c9!EXT61g86)1$~zmU{i*Lv`s6-dmxSrme9qt}3~p9(Gm{HXyIMqC z6&bUcnwE1-1pZIvy|abuU7Ahtn#9~>X{ShqWZJvzZ>oT#CxEz{R?Vy@mZu)OdZfN* zh?idGH(nlqG?pwnGwbA(boQDvuMpPnLS@Jz^!~)yc`Lwv$PO{ZJS~RxfgVbWc%`>) z9!VIgs%bTCDshe2-mhj|>^-lLd7h!wJ6m9OVQlu?F^)|YTz;YWHO0WbL4AcPu{NJK zN*!#dBa-a{Y5bcg@Z+kbxyC59Z26nt3<9k6{#hi2qYpoEve@NFIqtDv8w?hSXx2Yu zOKywHTH?b%-Lz_Wk)nNR5CRl!V}4lYFw_y@^A_uvgio%ROCkAA@SlCqk45{H;t4An z9Eo6_O)0U*g_{>a-?79mgq1A!MB2XG7X{7QVSvtp%szfq*|ZC*ZG|b@&H+!|%KQ&S z5@jephH3b-MCBrlPY%wdgT{DWggDUq8;yZ>)<$y6Ikn#u#UvV6}jP&1D9aAXH9Ww>>0Ve)V7~wRb*LfL@nY_BNjOA&LvXP`XSnl24wu$r$+f;Q4(#uW1ofX=qj1L z_z67#QxNOYM(RuSNZpo{4~YLe-%n;0W=Mbcd#=OHyQ!EeneRb$nk&`Jcl8I)z$sZ0 zp26^BjIrCoE+ZS?I^Q_n;&ytSI>$l&4=0U=BBBokS&mMH)&$}H70I}$-g@WH7oAoWDI z!}?LUXX`mpv_4?ZYb&ghnbU2sJkayf>!*k+^5+X3*M<=C6iGYc!!8c=Mq-QqXPl*g zesnNo90~bdmnw+9XPsgCftZ=dvBD8+fHpzos(xwL`a(N?iLU0^8rkI2FduV`pQdSJ z=39;;OWtpoed~R#;AQ6cza1eRlV{-i%uMBdx&ULNNU{7Q&@24)k*uAhpOx3J zSN5f{wji>HAN@CIpFqQRCVcO=RhXaLd zYV;6S8(~AAFJ|VV`q=HEzU`6hQ}{6Uej6!qR`f1_X(8OM^Hef@6qMLt|Z%Wt~U zUJuwu=gx_XsXk(^$4(|8OR`dMSRtF=K7IK;TS-4OhyxY0gg=MJAD5uz2+f$wr(+&- zJa6;@a+dO=S4oQ20zLgj^mc*%s0idWdd6>{(n<5QAvU`Kc$9;qzcR#ai*+e!k9Q2g zIbl2h)BPUZ+NCEE3f3*G&ohK%YJ#jGx^~+x;Z!!*jrrID#=OSFcZ2XsKr-V}{GJz> zsj)^aS61&&keCj+s}0|STJ+bi74X@TF$e8z0^-I1U@6%nVTk@$08vD6y=Ved&xmS$ zlE=D1_^@%5ymsSW$`UXb%Av@5+ed&f8pxNfxhBCx5rQvg)f(2EjfzBFwcdU!?^X~t z34~Z$OxK12n#&y043=7#nt~Q*$uF%$$x4=1dY=@{uidEsAtEhCF|(IIX__F{mK^cn zKgS`f%@~Td5We@yzdSrczHq`O)B4xRF-1owv}y?knmFa!l72HWQ`Qr=4my}9vTWyb z!oC%Wcrp4Jw;GH9ek>GJ^#(-z5pLZy3p`;B!3x|BsBbC|7zZ4)aS|pXq~Z1rNHbyT zV){lOay5b77zM0uIBYD)`8$BFz_mwL%<)9X-oz7bPF<>DxusDyJid3s3LtjVtX0ni z!mhOD{&S6HGXC9lXTk(y=krzhTP+o5I)SLGz-rIhvHp8u8Oh=x55BxUAs>R_Jq$XM zGnd)*BNW-1KqUzG+v!GpcF9H4PGslkub}IOV*`aiP`n8sYn?>jP1~pu#bwCPb=!W| zO|HBLeYbrLxkOYPT-Bl%9;ehv{l#$3HYNO7s2-^NIro)Bc!CIG=A~ghsNSOWNnu~4 zdGug1HjTe`IjMZ$Y<|$OwErlDdT)G7>xSO%d9PF0eCa9G<(kzLKL}Lu<|ic%%Zk9E~XfxK2`753Ov& zPESuxt50M^g^&hHz^_MJk>Lf%gX7#zdV(NVIOQDhg9^cZRO=>A-fM$e3D3H5o{<#9 zw}%YMQoqAQQ0l2p;*E2%**jTy2F2}!qT(V1398fKsa8RtQob=R90vG6`Q`!3iKYiWy6}Z<@SN8jnF ze4GfDlf$jN{b)$^r1BsXTwvg=_P^m`N5u^Zbk9;jmFpwwgNn@RRk#&?gCqf99aKP~ z`&{O|zMUxC0LMD{#EMk4msR zClE5FC_^LVB(Jw#Qk)K5*g4|k4*F#OXt9(~A_vlV=RS<%6La8^8K&qzoe3byviLLg zL>RQI58nYw=cMe zbAawBaQ2ziXwx$=aAwCShM%>PDIQd2Ye>{CzI#H+HQzuwn=Sa+OpZ1>`HQC+i-4_> zUDcY!vJUYs(KbBi4G&Gz2jv+04(Ue6E7MF8NqrRej9S_L9xSiy-&+0cK7Ih~Ojr+R zX>iks1-^hF;Si6^YsK<>x(;TMQ}$GB*IWSDf zHHfTK6y-?;5C8~gpu5}UI^ayBqcvVkRmhfOKkp6o3;1y;$@gU9=cyel^pck=hh@uo z^;7KG{fI`#_=ySwyMV!P?lOS63#<%m)8ec&Qfe~ONssCwPWwfrgU}czzCoWL(Pb(s zcFE-B=p4{q9ul<_f2kxT%Jy2}8e_MSuq^e|%kej2mVb7e^@wdy8u!Jis}4l%xKm7t zF^_&OX^?8la3H?>mtxXVVCYj6QK;Yn9xo|F?ZT~MnzbuJghS$VT{n!tcsUdf3X<)S z-_A|=gNxo~71+4TVg?)`9a?yvb~4V=o&e(rlQRjvWHk3D z2FSN$8$WblUsPKb?ls1OQIRI7VceB`PvM>T>Z#`@LCKnM%ggbk8evq<dHAZzb8`@oO!I4Cgk6uFXr5?XGned!()MFWXEr0p1Kqv9!n@de z<-0x_LiWUB`Z0CqP-(W035_@cm50bBjcPxTeH$aY6)BA{moza!vYSgtAU1|0Nx#G8 zZRocL0p85!-@xftYE561t+YB9-nmdU? zuGlovuAxOnYgu^?o%f*6HHLW(EQ_#qC|ssnX0@4LeMbXaCI6I-C+F zb|#Jvha#)UnFlEG*2tr^S;OwcbA5Yy#@BV6r40jI-wNg$S`vcTAg@m55?w(A=l@+|cX6qw>JK9LA6{c@aM|p`5C*k7a-&GS}+-cI&qAjX&ovNGdPIi)SM(@QGLNIL_x9V1%mDU8Iywl)n0H_2$iLt z1&U>4PhmXCiu)EkOg0LZYH-81CJLE4-H}~&t{PpTzR-&k(`OZaObknW{D8AC=;bU! z#vneidO{S#qlb^c|F4s<==-(lIJsZk=Q|b7^z5-DN%6-tD2D|YkkiQxyNSI*i=E;l zOh{gt(on4$$3JV@Zz{WRKUJ8B)R!**b7>Ddwy#r6$17#?3zeP5*O_)yLLEX3-5wS} z#&_ukU*d8G?7N4z0Vq=8gl|GMHtcA8iB26Nn`P7(_prwXMhiFhu!(qTQ}kJq3Dh%S zcUk((b`SrEySM9+*sQf+;MpvX^K*ha@EL+Uas5H!LugKvOBL1<-?pHGnDB;3b}3T{ z83NIqwI8xCdJrfYPKkXmR2&#Lw>t{4s{>_-sYlQb12W~4($@8hxVw%1Ah)Z-VeOeM1uHfP)F_!ut<8OV$;NKZmY*a-|>9}1Aj>xI3 z4Mh)>1~UjlHW-%PyBu&@0RTt=W!M+(yrv=Jb%Zn-c6f|~RpXxl2A5zwuBS8nobQrA z|6ULO$IC5$9yE*VzFDSy`J1wy^v(Wvq5@Tk0#=HwuCyUe7?0%rm)B`ad#X;<(nVO5 zth)wdQ{!nxgBg0*T=MoywgAs39(zuh{v`tn0XsA8o!sA>W#3a_!)`zY8;6IvFcAc2 z5%$cc%7?p{{B|?P*NMgx{%z6$DAytQIoBkE{FO3%BBsY60HIDpZL zW{RyI;G7i=UTJdYDBLV$e+}|2B^`LGPWEB_*Kbgu7M;OW36+acJb=GD0>VVt{d`RC zT2;1d8WBHNS>b)+q;5~acs)(#?gn^rJ^A47S2`>)AWCX zilCX^e68GM*=|DAA)paA?xLQ{7@zkhl3{K$&d4Di_s}ys=kSw7o~uLXzxYY}^Q8T%cpfM#ztkZ0 zH%;8T6rCXT8FI{Q zskJFWzku`slbC=QCA%-V5Lu{-qmYPrw=eE)@x6ULkj$=ek%g3k>)~c1+{uPl!}QmC zn^~PAF@1KRFCM&U8d^DazwDF_0ZVKlou}|{qSpgwjcajd%?i}>I+9DKcBD~4L|0rh zEd>HCNZu?KmEu8uwGcB9EA-NkDu04hkm+(YtFN@I)Y)<33 z`0-T1uhw_6rC&AmT<%X0BF5CvAvu)FaN|haPbk2^gF6Lt*QK)v1;ktRPJSyA0ut$3 z5Yr}na`M3{{s6=kny|?_T>gfeVi-rSwISGAA}%Mvu;@#os@y|bQc+0-)VJczZ{!Z? z_&O!#TsP6+AAwMDH5EdzEY{4ni+W3B`5wSG#MB&BQZ*B`+dN_&t;V7qW;kaktvNm} zWp_YV;43dGkhc;+PWPyD=^mtL&F)^&7peAV7dtJ(~!lPUct2e@vDui8`yTsdiP|{R(AqKd_MCn+b#rIM$ZdNG83e%s&3dBIT_s zQ_V;8D8=830|7PCKKRlwvHP|y0tPmoo@y4ZPH4rM03?B_+E6JXMtt1&hJ1LmnnNG? z)2dR4?^ed`g}pQhe2^cyKRI4hHOm==yA`*<+)jaJ!9OH)^GJJT-`npZ;xKo?VB>ws z=kLj`Ifgidw8AxX=es1}kYsiZ=F5nQc~=aIFd6DVv5-vn7~DVtUa- z+e{ROjnRI>2xF*#Z1-X&G&6U^0Y*j=dfF`qnHPPP#Rq->{*v~78Ns4Wf*JKjk5p*A zdUHYC(xi-m|7(Q5DKS+`5z$vCWQrhCs)lsOQMU!) zQ8Z)u(iLPRRs1aIR=6a`-*X@H=~zH-5`Yb#+!hgMvE|`xQZ} zut!~9EyWoDnp;9zlx~(f_j9I_7(mi6TKBWu;ikxTHIGWNW_RA8M-~&4Uc93TMQ8XP z>u&bW|6MKt@qjqJT@v)Kof&5cY1YLoDBysGCsDaxppfC|{<-uowH(?@H?se&RTERC2urEmiS7OMXc6g&hN|SOZ$~I*FTNc-086B}lJ;&B zU2g1w__FiEurcfFa24!0Yxu@$L*1Wc`4Jyh3HU+hT~BRY)lFzU!b+p`|N43)bC{yw z?~iVz7lDLy#+f^TAjO$EXaQqJ;OB2i1&qDl+BAKbGeHy}<*I0WLbhg$5=7fLi`2o4 zg9EpZNWr`*;p+rXu1dNb9_Yop&dx^yQbFAH_#Hc+ea`ln19&5{ZLGPd!b&-}%CB*I zwxMCA^v9$$TyXsh#Uy+UsL-eoSBDDJCBZ1|&XCgpr&jzV;SKc2$+8&E6irK*0Mi(h zcDN?6GUwlbv>8C`dr+m^56$}tirowB@2NAz3`M^CV24`_7BARmB(0MQ&*!S&EMqv; zI7VVM%q}~!g?a>tD%8AtZ$(LuJ`gd4WZLUd2(H<~aNi&2qKmB)C_hbEM-^^km9jJ< ztq~c?neC3!w_7C+Us75WwSWj7$mN`X47i_-)%b;2*);!!JR7J&f68ioign%vfxnl^NfIK%ec_}oYa|N9tUY|o1ryR%Gd@By?2u&}d3N?=8?W`miWFJLzp=w1Idtbs|rGpGCo^{r;?^@~;Jaa!FtlrB`ju zzqB%&x|}`{mipV$pFu!$9ZMy$ zvdS#)ACR2#gn6d~8p8gwM+!4#NMplS_BPrvsXDUPL{o(QOe6pjWo}nY5=?8%UlEfW zLR#BK_2z)Y$AY+1fOMqZfFBe#HSF3Ucq0*XdogKiO=-9)cwwa-js83=M@t#*GWJ^< z+{urA+e{;p8nUY_!r|Q~>F5YH^HE?hAc3`VxCF^RzdCn+>LxvsRd1G>-YkT$MC)W( zT&_zb5g^QhtG?2vJ^#vS3BN?hVXIRtAP|Bp)0C{OchPNvRv&*ZsoJppD zKz8^dlq(=ra0K9TE4>1r70?lqy1E@{ltOU|8=eOrEb$MGIc zy7?CbZsZ)Ye~}e?URv&M&3MF{VMxPyhmjvAPN#BC>O|dim7cxAEG|LpvbaU3YPCNQ?`q2csck9_moKpW6RBvN9G!Y+1E!4)=T`s^|umg^(Cv3=~yd%2&F0zE?M(Kk$t zDhrY1kh+z*-$^i1{+Aale~e7q8v8{+6(M|TMhAR0E3<5iD#*^#Kri;XyJ zZotEuUfBTg?RNNmV=qq@vhpkeE{2Q5ZeMf-nQVNl;+&8Uy9je^`_^5PXd!X6_Q zqXQ;y6zbR~A@oL>r5!VP%dZR2*YSYlbxd>u&PUmLyzQ3Kj3!pSAdq8)0_N1S*vZwW zN|49wN1)V5G$jyS#psvH*9|3qjp2`-F#tBx!OKTpQwc{AHP)vdYM}mknR9CP{*sQR z>9Gj(F?2O|wbUvla~YXv?^QD4visgBB`u)ks1`dl&w`!XDI-LVqN^OdQ4*w3Fe zO0uXG8;D2bW0m|ue}@N+R

3 zYcr&u$LtT2&$T$&R#Ii--K<@R{X&f5tVWT!k+5#{S_D~rbqgC0_Eg!L*luoG-Yzm` zV&j<982LKNwu?>JzpPRabb}(L5~gP36$j4;j6jvUdOq4Za$T^%3})}*{++^+E~`dI zvT%LZ=EL;{a*3}p2_Wklx~B8n%0EsL)qf&Wt!xn(2>Nb20b$68JB)sU_fd!V>`T2l zIeBdnE%kbS24M&uhFc9wA6HPa;i!`L5m~OTsZv1avO%tAYJ2yKa+>bc|Agkky!r(? zB~F|H)t^wagEUcZc*05a9l~GSAhlo`mHsnhm-Ar{vDF(zbLN!W>-@eARG-wOtci_V z_%*lx*G&mgtzV&gA?ZD^KlB5h)&6qcFT$5B9DMACdGNY8&!!gl)mTTaGO{M>j4XFs zH$K|OB69#QCSmQ^ey(lykM|=_!Q{7Bfnz4#-DAEM>9_TKfb_YMO|J#B0g8B+*$nHV zyj}?ME0!h*WPc$4G;I7wmMURVGRv~qvI;XojJP9#wPEO24rES#zc6_(-$z4bkEMMO z+p&L^L@}P5aLNDf#U_`O%)bSSZ6v~V(KYIj2ip41M*jWqNE++~p~Kos$D8kj#iikJ zgGfU)f1>)y?Seb|zG#6pZR#+?tkA>>@lkmDzqd%(+Jy zzyymxo3#6~JPr9{=iCF7rhf7C?k#=`)_m2yYl1?Wk(wpxtJ1igP5i=utC-r3R+NE` zCr`yDu#i({t>b<0Dz|Xd6L`WL0M;3pkpVBmsV`HupmlxErrCzamE;O<8G2% z|9@OC<(rC2+tIWoJUKbuB-onP90QS9N$asNzd?=QSJH{GXbHg30RNUjd=8JN(%9ti z0yD=u-CN?{K;!xpkq`B*U3X(zO`z40 zl(~-Ao>qkwe+EshdBWsC_Y7ITMa_oX^LsOkO!5D1s`16gAHs9_1$Ke}wXAJ8boZl0 zKiW^+cD)}<(V@_mY^tvsY+~|Tf8F)5Z%gz~?oXH~6e{$k#-J+^afi)Wkt*5QDj7HF zrKHyaIQ$3_(+*MI!0g3PYxQ#Yc+O3Da~C@V8FZeAv7UOcSO(k=M^r%|GN21@#zT)@ zTW=+zYiPP@ANE?QDb;So6R?Dgi1An-HJi{w6t`&67hQ(i6=!_IoVHM0nJ2@)L; z=Y!)rdN0MJ`@*akXxWiL-G%8P>b7HJYzN03O-qY-6%{?zD($#tcIMx@pwh71)gwA9 zuosVhcvgpD)1f3n)*9CGou(adXPR&WCXjwtbTkxZK4gC__p{!BYaW}GakYOHVo;>i zD)r5%cv8Np2{YLV5g;2{;pHRvlWnM~|1WE)rjzB5k>8b2+#PqM>4MuzU9n+((ITUu zK}S08pbKoe~+29Lt?BFLWuG>`IH2F0AWpvbc1?6#ArmrE6$c%Q4Z9VUU9(B)k?3bJ4a)?Q1u~1QpER7{_~g(6pLBN+G$~z|A_N zHSEC9D0;wCW#W+3A=6gq%QLgm230@y41cN~+VmwZ9AfF+P5TIJ2i9tOnNDLgMT>v` zxH<;E8*FkWcNB#z49(JX+LQ8-N%tipm*2uf=S`GFD<K>Why!QFMB_WM z-k06S`c{)bJ^x{j<()d=3M`|sROs{6u4AZ7u2YwcyeP z8xSYuAx|cRo`>sHLDcAIq1s08_^z81Q<)c(u$w%`#H(wdm~Vm zTY{!|+8~;GyiCBWaHea&ni*onQZ}th$S?53ODz*$>gI3cghCXLwi^Gko!b@nJGt6L z0x0;SpF4%R%0qF)dtyBkukK1H&z1Zg9*jk_(OjBSpKr5L#Xy4Bo@J;&0; zE`IP^YKTB6G!bhEKZV(KL3B@Ev@UyZxVqMR)ZLsk}q2>U%sNziZc z_zl>#0`Qaou(^g{53+BU<+8<*jY*BO`oLrwnU1)?x$`be3!=7vG!B59V4s*{^C;Sn z+~ru>_V7PZVEl5yIdRrj?N^2wO0q)6AwNx|HL5@*m2Du{c#W zo7?Hz@L5!MgKf^bH#SUlIg0VIpKgo{~lOej{bbfc*0O&fipq7=7KVR+PDg+1Yq;t+EinA==k zWAu=6C8KaVefrc*XWS}uqe6T%p5F1JaPE;ddbKR>Q1qx3R0!)xZO(eQbSU7rnSU z@5>OhN?$x*E?SVCs}Bzd(D(@_9*SxOOJc$KcIevlwP`Ow$*z-bV0|36j!CN1Bg8^_ zdNlu0j;uvCWsI?92Tkhxi-nda27p0rXbm9YoU9+#6o_-(F;h^QWdJ0m2ZR*I7B+f& zAw`_bk00v2P>sqx`ZE!`HE}q$MN&~lxZBD)6V9bH_{-}E9)i-)#TCcM(RH;bNU~aL zm`H`JizczmLf+x@hC<6VEDGnnQk1&1=^cZ-^9p!=Du=35blX?@eQmQ92m!jEqc7B1 zlljZ6a+#oZ$9<$8u#oxRJ9|5;b^s2EwS5(3RtOBQV&XZc7yPypJvxp=&%>lpe@Zx4 z$s0&4=A+nB%xeMi@sNc_J~o8fJa`cK24HZmOw?0ygfcI-OgX!cx)`jOa7z3|^Pv!X zz9!~m%smDM?Pv+AgMu+GZ`B|x@pVwi-_S4!L6IlR3N1NecaQ4gjnBy_DCIx>tP3ib zFu+GtuvMoV7eC?>4|bN-VgrP}o*;~quoVx;50NS2fTcBiRU5s^gU#@|so#^v8;=+Cf)3^%RZs&ARq0EEEvZT@M`UC`$3QDO zo^H;XGU+J&^^J@l+|H;7KM<^nUi(gCSgDT}tnv*)7FHX}I4~tiZAh>_4|4(QrfsQt za4>jrz~8QjGe|gr*XG=2DZVP~>Y`g35ifc|{}9gIv=U4@GRIEuWlj}6px~MI zbo~C+;++}-&+4Q)+l+c1Ma2!|k52$;YVeA1yUB{^ZdNM#W{Q0Y(IY7-|C^IfBSb%J z$Gu5f7AK$j-<3g^tU#x}z{&!@mzk0qdURGjO}Jbe9wb13hYm54tfB4dm0YnPtg}yL zCnP6ln4V-N&x#4{wpL1$1KX1c1Wb?s?cx;E4R1raeXZw~OvZ)uEzhflbf<$|@7y(C zk>xU>*G=@7IK_B!q^Bcjb0$&F1(ot-Lc6<-EAg1Tmv&19z<|Hly-PfRtsBdTHZfX= z?R|0`C8lML(}(B3v-e_b>{vPT2vr9D2boPg1@>_vyAnP0d&m;(LY|R&3)n(J9s?wA z35Ze&%{BcJ1}|-Fp2tlth49e!ZrBItoIjW=3u$VR)fN&T1X$}AmnuY(_D#t*$T@V# z1b4_u*e&*1Dj*mw3lZm(6AP4u%8_d`@1rex3A|UB?QY~t*U_=(-XCSHq4|yVP^0^` z>DiM>tNcmJX#RYUF?(OzUh&q!|FxAD7+z$#y_E)w{Di`rpbmFQj%DmLKy;SLSG z^S?DG@ufvP1SSaf893)R8PY2S|0D#oai3qczPV)8P8HIH(C(q$9}o^kaZ0k1S(9|b zfivOOGd9wM=My&?^j#<+h$4ss)f*BemG=E*jz?XwnTjWDNp6G*jzKX2b|8sw4=4!y znl~A2Ie_@4WGzUQnX1?vq=0czX;z~vmqV*;cCj^NGP;=+7l6L;S3JtcP&v!DHvDo(BSnCVbcV)>f6voNxBNSmRP$ZdvneQzpr+;fk7D< zg?7qvL@@PD^RYecBnKO^<(%VlH8OT74{7_gw=u&ZCYy$kQh0N=;?!F4+uRy}|z`LcOQ_68C02V3H6p!&yeum>8GJ+E?@d1UC*U?st7g{F<_><@X|TgZ2;< zAi8UuDkt*WZ<2|{l81t=2G(HCmMpEvMRAs)sCZ&)#^^Y@hlsR*NavC7p`zvb9nrl^y7{ zOD`F`Z>Plv&}w)VjD+`195Q&nrPMaPlDA!OHW|+z2*sSR;J)xr`I_U8Pd{tc9bDVuYRn{y2$pEV);b8&+*g=IIy6p}DG zsJ6HQ{iJG=8&XhK%5eu`d&faN4}W?)EVf|_O80*0JWpF2cn>g z{9N<(_0U4a=6w8nk2BTkFSNRWoIMR1h$TfV{j9LCWd^+eB#eW^KM>#Ti13*6idT6Dh)yjPAsAoU{<4X&HE68Cz%v^>i|GwtZ|!h) zz97_-;X;s#61f=PQP2H4CK@D8TCahyJV32}p^E(^?+b@VR5F^Sqm`-HhmMSA#`p#G z4Ry?UXp=D34lGUr@e($DT0bPlV_HaXY>yE70rm&2w=#WtF!6jt)k_xBCZ$Sj05}RE z*-e7`Ol%t(t!w882|yY;EiLNN_8cj!aviACzs2`64S%k##T0{LHI%y=w&)hoZyw_y zc6sv2HZMUZ4t}$gN$_A{kHCtYs+z0c{7!<%PfYuJL`nl(yVg6HXY)yxpLEJvsy=0E zs@3D+1jT|Q1T8=S>%|F-QW=XNgj8F<@%@(ov3iWnKiydbAI$0`tOliDQkp2cnwsV> zIZ054^2)eE)F?5k2%%D{?Z_PY?Klvu0n^y*keex^R=25!3a{V6l6C!XAehXvG&Ehq zU6F-#D-eER9>{aw+YBYju{_q=#Zh`=%#9-`Lj2C@@lAODiZG@4>U}+HC*%^qE%^Wf z_P^>*d=#ublB`y}=W5=jB&0HMYUB&^d@UnFxe{DHcX~1B^Fj*x8aCN1u*UNCH3VIT zh%+ZRQOyG3cy?g7uqe5FoaDL+58z{ zg`2x!M^b6ZeZ>Q zEGc%QrrOOq-T}dY1eW93fKjQq0vAt=@z!_}Fk9)AA@_R5lv0rjD4QM;`ck9%FzQlE zhM0FM`>iFD-_#zALMG8D9PZot+Z_Ssz(7OFQ`hz^T1mz_y}3tWbZ0C zO)bA(2xGe^S377ewWcO6wY*1o^@(mp$tF%dTsOspr+G0farurQ$XavQy!A`!f{0fg zcyxO4M#YOCX((a82v4hW*n!X$T4aAm6M{Xc+3Ik^ytp`8rQpa2GM-&f6BRK6ccl}% zsO)QUKYf7^Br$Du(%vFSW>iEG6*>(*vYXqFC6#Blq8+SYv_6*rPd;iWQ69MgMI!jw z@)$d@pXew+Fi~mCgY9HB5OJuI!E}+8XlVZ@pPIEDMnqrnmkkPMC#SUI!rFU5#~K=9xkz2#$2rE<8BZP_j^p|i+;GEMQV|X=hb?!P(H1n zATNVJ-EV`i7lLVcVtj#%v@A1g*uvvkAYctj1&tPDKNJtKOVaF9Yn58kli*9Q@Fsmw zwDJznYec5r3`1r9^m#S!8GGrr(q-IZ1n~nucqhSU3_k9Y+Iz7|laXinNb?@IPz9rb zz?p3;3dnm5R%-v5OsRe>qi9*ixV@U|=9$k6aPa%W^j?HA+-bi@1(ELUH}xpcGh4%QWeN}#y|Jr+_;(`%86JlV;tCNi zs#E;&5dF_>a8&X%IxO5gDSjbmqLCDDt#8a7m`&u{|71s>5MApwVF)-X>?8jZQQ-@6s0|7vLnWa2=l;f@>`agya8X*812e@OyA znbYOdlV7h}Eg7ezo_+|%&(-WC+W1_?3wcwja}?%E;jEc|?_rZ+k5(}UJF%3pWT#x9 z{vanRFfwy&M`EhVyc}Tusv!)34g%H+zGl`oawY>4e^J(*aABzoyyy+eY~zm1=<_^% zVX4Ym`9z2)6b|OG2O^EEO4rT`;VzlkhG$ZR{C0yRE+JUaCy|NWT?hBupJRret*3Ng zB=tdr{`H#`9K)G#s$_dID@5LtAa;yI7r_XdMvg$2VT#vLisp)zFSKiOU?R-{Kg1k* ztWx`)bl(8cKx49bV~(bDt5-x-j{&`qD;oTX%Y*LNzHSRk(um;mN=f?$`Gd@MQT5Nc zZv%lG4I;s{`^cwDM-`(*8q_sig2xxrLV0fATFu!3E7aohn8mmq8AR|V4cgh5korJ< zfh$d`LNFRC4ai?Co*FkajtUZ^s+#Cg-@F{4tIc|du*E`kq_$`hgZH5N=l4qk6~Vy$ zS~DnPNd)TXo;yDRTAlR351A!1Nb74Yvh_>#B_P<6Wkw<SDzfX47IM=aU!q1jXaF{%j^ZPf2oB@k{W_WN+MhNUZi%&y9~>2J2PQr& z-O%X}c7kbVl>>-e0^N@mt8ivH8231sG&GU0vF?iz{C4M@bQ2qSoKWGoeyWE3rOw0G za3dXQ_s_LN{g(kl^^|&nWmXhC>rjUdNiuVerBUO}0l$=;Kg^%OS@G3f!6dBkhQeO~ zYh+>^Df$=_RzHGw8at{pbr7juHm5N1;LEDCA zazU{wRuq5q+1ZAdAEWVa%QIXBCJAIY^S>Mlbvk^kxgXlua*7|iIWl|6!PSNXnYidi zWz6Ue`g-|Gk-GfV{;SXcHQM5-yI_(OjzWDXnXaI;WN#|K+Q9k5z0g)0 z)4^dF^N-=RvRmwI(D7nMglB&LNqN6v^0#C*}qJ%ThqIB;@vg8 zSir?DKHjkAH7h`fUv?Nw&t5O(E^KipU}&l{l4i+(YG4m#w-bvA#PC>+3#)#7(AUZo z33nyGbJ}a*4GyRqIiSWA^e)KJ?iJ-$!3C zwG6@blDvvwo&4=BQ>1cx+|=bQS{{8Ca=YCQENR$;hn5sSRUXMGw1Z(fXT78XwPEX{bAVvj!G++$OSq;QU7Gxu*!7 zb$Y}Hb!|#9?)hRjL8K|I4AioEB+p#CGq8y5n}X#5*mu$a5ExfQtD?|oy6h&N{ggX2 z==~@sP~92lhtEKiQQycP1Xls_5UMT_8ELe#@Y)u%Sq(7%EpY=Z3runnc`-S@(erdI zI(HU&hE*+#g@iraYFxn3?xW90W6|sMgm?=Wj^mAJhh4l zKM~=9t6Qt)tuwZFdw`eeocg7>MUp9bNU1n{Nw{3n80r7KMAaI~9(nuPHzg!gi7`u)pXdnz%C$z%B=VW3Z~5x>99Idv?YqydJu4a6Lz%Lf2A~{ z!ePirYs&jrTau}_Tw}Lc`pCvfrg{UrxWYuU1Z+YPlDgsrqA^@pFB26(b92sAj}hn} z<2>^}H3{C@rp4cL%$NVB8yM7v)9PUgjgqPd;XRCW91jJO3oVv@O)UWzZu+=!T`_;S zhw*cz5C2I+zNioZ{nF!k2FMqS)1z~XO&mxN*KS4Tn_a2K>9;ZfO+d20ErS6UO;9V4 zNw_u-51--}$8?o9z-lOn@)2?fZD`L@i)7tE1w6vE;Fd4vNKV-4Dr1~y=0MF;yJ%v^ z*R_e42Jaq~v6Hipg8!u>86$PL!ljWdyos`j)}Bfi2>fFMAdhSf1_U#BSWSX~^sTvz zdZQQByA(!c;WZGD-H)`spbwPio?yuxCcFPqBRaF>Vq|BysWiky`!xGHheCiI1FG7o zy;xJi2Hzaz{V31Um=4%jlINR|sM7vny)y z<6q}?aZw-yU+b4R&qL}G{wNXoYGPp8h}|+wv;%ARd0-1x|I|WQa#W7>yjkk#rWV&q z5xs6$!oqun7tfLtXy7 zkAK`%>$zz^z=@amw$f)`$R{@GAusKW?HPn1RyD(&Sfx?7^oHhBMo41fG_rN) zhS15_&j|^?A|i1%wgr2bfg~VTb549uqAXM0F(W8hl0lLQLT!A*IUA+K>j~&8e*Joh z7;65(MhI(ri1*A$>h^ping%_UiaWPr2wanyl<}arnou(`j{ijzSaGkaZ2BoY9k^K3 z0hjmma5J;J)Qew^*$1qZ!ht^sZ8?3!`s*$P{sDH@H8mqLo@ctoFHd4E{VCX^2rSsB zO`}tn{?=>yjm{+NB96;w-T`K2J$<@hF?LcJC$k*6s+_XIU_wMQfn@K=pFSNI!Y>3j zf_@x&G?Kx&%w)Y(-oSRE#~FfbN%Bf>?t~N@`Ml{yY&5(u_`vpKvbc)>vHlRaK{xUZE+)vzD03O* z{O}%D$(YH7PLI}en@TG4f7h7xb#M-omc}kL{+O^;I4DpgW!gmTN+LCD492GZv^&@< z@Jfie>w%wRZ5)8sMhRMvsW%RY!=Gv*W3ys)UuUYp(#;UaQMHN$r4vwK=JJDnNFx&-`BrK8GuEWQ4hse z!3!lrjYk_5z-YkQhA9+C*fnJ-Ek+5{K9`K2DVr@j7A23n@{su!Bv?K!lqG9|yExG%$dP zT0iAT$Fi=|Q;IYz!v}_7qHgHl2C1>q+He^1TaSQa-HBrTg@GAvEEzwnP@0W`Utll5 zg9-!6xO!Vmk;iHg6S)T8&PS;a`X3*ROx0ZLwai~oYs|)i7Zh3x;Wu8OJ&hJYyG(q-Q)QND88CT859&KyzVI+-D=UCV)*r;I4KA$w!S zSW>6%0AUyNkQHH)z4vu&$q7_{JD08y`331&^uXqAmDQ2+NV;?np>VM9!&NKL$!+8B zkeHs76u{q6LIZM*HDrkG%3a4_fcSS1PQ>vP-A1U-l^CXlcgh&! zEiX!?tl6++B0+d~A~oBiDn{*c8eZ*>HkqfBafG!kiTy6r6E3Rf(UnLYI}^*5F#6dl zh478WDa8vs%bZwEyNRfG3^>61sGQ}kJ*$XRF-D>SDf8c>foMhy8d0A)foAzqpVb1U z$P+Qh5q5oYA-4Yb7E(*2WY3i6NZ1Dyb1N@3#wShAwZ`sUhDSl;8;qJBfns`1tTEknFZm+X}+4EdsAcT9>&D2;&pjB=^4K)c~Zk$hACAlJ?^4(RgCvW z;cN%m@0G+NjzH}cR6hGXrk5~hAWqIn1>${hCd8Fdp;Hy1XR-Ux14B*jENIDS7swyn zo&bLbvK91RkbxQiDUe1UW&OP2`BN?MhUf)xMr%2bwT|RReq^P8oEKzuFsp4f(AMllKxLdRL18?*ptTRZ328nt-sDJdh z&aPBNX)wa@d$jw1<8Kh6Bea_GrvXW+x9cfAmR03XKki~ORYm`$8Ni-;_wcIj-H}fP z`A(};dxbXZD+BL8MgY`e=b^r_UPJbdU`qetSL9FZ&uB*sggW)zJ;s<+5>SD@JeXLQ*4ZixJr;*G*S+A+b#I6jv zkbveZEtj0&>3J-B?07I4-BD;aF#}_GNF}1Je2f1v%*SE}zd~YMRC=)c9v|*RiR#pWKD!ua-7JJ=%9YqPq1&}_W z1{L$TRdE^X#m#pE&^hRB6geD!EW@xB)xJGb{q*P2&4e&u;2Mg{C&Vbm@8mbR~%#6oO7i z%Rv*ER`23$ZI5mW;zD1vW#>Gpzcv<}&XiF3p&vF9QU$xrrodG_PyKIFeA6hJem$>7 zZBpjsmMBabCh%8M7037Z7fl&A8l66`55KcFk{D0MWoy*MZ>O6JBDo-n3;);g^v>C> z`tk%H{O#)L0Bf=egj#31`oQcNrR8^%g z7vrddtB8zNJ9dlfS${~O5&(V*Nb*b$iv$nu5}uH|gO)>`I3k)Psa{#&eKL6@8fvgd zFM8uEpS~GWc|;^s_^-v!2r2Q`iP~8~!C00##b46h}6r#S? zl4;bBqaa)J!TFI7gZPc1Pmxwko_9So<=c_Wd+Q?Lji2OYLm%74`o;IZ%YE_+M~h>E zRz1DB&i`1@aCs633IZU06zFIRBRr0&pC<_b|246Ov&w=p6bqn3SNeZ|!@%_CI>k!& zhIe9{wFMN(Fo=BBJ~icZJo8sM4^KlMSS1swXO~ClT$f{HS$+?v=#aRm^XQ8@9vM4) z4?W?EtIwYrpG4{WE-eAb8khH+Vp^#`mn~>l%V56$^LPnU&duupKR~;#TlRhH;%kz73v z)txJP4>$Gl1i6Ll)oB!cY5~=toVsHvZ&vF<3{rjm(!OQadpI_^PC7QovO9v$wFdkh z$;0&qBL+97x~|$&9WprFAIMJtv<;c3YH%mus7k~G6j56k*~~DLCguBn(;|BzAHXXS ziWVj7j*g0H*yu&?`pDq#4I}aOJX|}4QdM;pzxqNDc_o3rh#=?&5^Hr_JRQEh@tB4! z8TNldhCb(e3K-Ika;qCyA9UpgR=;K#o$c>1Y86Acve~i`5?@fUv{ccL(97=h`k1r# z7?r^7P1M0SrpPs89IFy-r&?I)v@w>SUebZy<~jmKV7P-KXbzvEggOs@`*bMu0Vg83 z?-*gb@REeXWwrf4cyY?lb01#iZ1D9D3%k|%|9*o0aE#ypX8#be`h;Inemyo#iO+gQ z_AS5Xo^V$+_bY{0!Jh5@i4?HwpSXM=VErp9GEtY7DVgP&)?HavhZIsZ&c|!%)LfwTgb8JV2YBtG8X^Librs1p@rE~RS zr%BOq7eEGnMA?ar0G^QiSbB*%xoOqD5Hp3q#sW3HFPo5*S>#}~3gKY+? z1Kij@!}Jy)5pn@uq6U+8Pwh?9&hb>-9;oxlPo8 zvfu_6$-vaX7|S!RqEM%*`?obX*`e{}%~JsyjhO_BOUd~8O>}!K&5AeGehiWC`pQ+?7(p_$@{XEoN#R|j{>C+6TPQc+%s`E;c+JwT+Fv5pU_h}iSI<-?FRC@?^X1$G* zhOLQpr9q$VOQcB7SRYt`$ygB6d1!%1IXty5WI&>fHA)@E`7QWrjKo>Hvv)_8>EmA^5UV{mEqqfp=O$&~0{xLF zIV62Ea4ZkY2%&5(_LfqXK<=eDqd!+ndxO2FbYmc@cBJq?tKfA<*I?Wc4oJ>vh6R=$ zz%vXRqG~yM&JA$vb1hdU#;#Jt1n)c=%eZP&gE_#AU@|@mW2Q~gf-zhmPrC=r9wfs# zBdoRym|rSp7YfGKTGin!4%^nieOaeHOv(hCix1ZlI68#sK+ea=9UaLeAr*J;txN{H>X3^)uAlH)$Jpik{4oR3sO=cxpn?)?=a&C8)!-n zmvN-^^h5Mme$9Nu?uq7SD78cl63STO#C z-Qm5cSGY$fb#W~bi{QM;9MS&8i*(JiMQ++Bc(W~Nlz%5a(*Xi*l|st4-r;@L8L1+R&}u8ec@COxshK%q5CFGsldeFdAl0`( z{4)$b0<{oDd6Gye1q}ms)~!l3#?HZTvyqQJc4a^T;6YhiSLPJ)G2txjVd|pmMTsI8 z=e*0~;H3ua_2!>F?$s~Q4MCOrdWRp-)SC&)Z2&CZh}+71c`0x0a>>&FZ@-j?{THHi z%TyJl9t1+;!{o$h1L1aK4z6I*qZ&a)Y`V0PYfGHSAhe)-soqqKQ)hzd6N$N1aG8#} zTEgr<^wY@AOr+dnGHG+l4c4K{D5!J#!~Tx7FB6=D2ME>H{TK!Oi5ZToLdUa`iIDIJy!K#9~w{ux4z^u?|9Mr9n=WH{nUif>UvVnsyK zhnvo%hqx5>hNq0|U~9IWiv|9$wRme`-|m9ZU<59um#WD00;XK=lwcj(#rL5PVaQfe z*XV+-dVCex3p0YeyQpH-w26&;B&+`Tt7d}4Ue+thX3^Mf4>@8MwF4YVy%&qU-Jm-f zP0AI_ACWCat(`eUFPc)@FoX7cA!DRPpUa)cAHhEznc*3v4z zhrHj4v`I1BHbv>PC_kb%O3(^$bh1SUm+cjU3zM{YSLC2ctAnkq#UN zfZq@EedKgDAA$Jr3%^9{#WRPbXwJfl2Wx6k8!rL&7U&P5eIfVS|C-@Wk9Y4=AlN6% zjOoV(zbnD#b5eA+b;({!Wb6OwK)66sG_Z7#R2lXV9FGeNG`yWKH)SOCf%4oasTH&P znO@2wV=|prdqBjS?k^xiOoggj{s1wN6y4w#g28^E_wZ&FG}NU&X}$ivO@)r_f)nBxQ79{A{iNM$H9)Bunwr($F!l{0Ruk4^;afZt=(?yoxsZ7v$r?q7|#x5>s*x` zk8q!bL2PAaKX*L>ls#3m6a??c!)ig0hG!AKMz_sKZ_tyiFqpqajQEoJ?8}LM?}_rb z=x&D_w?P3?s{hx!l)-VF5{A~qTxcpiOcg{o8qH&<(p#rFr-_BifjZG1xUL-UP2}o1 z-{^WFy{+)iA^@q?x_)(ydei}FS8#tI69-&m=o2ubPj8%=*AJ77d@@C#-rx$P!P?!v z1WTtS1u=RP8FdL`n%lEuGu0z?}B5u9I* z7-%lm6X4m``MY{>+FTV{g2HZQz!7?wM6J7YU>x)_Up`{k8)*~E*ZPI&%O{|F`6+h6 zv{3GHU?baQ^`L!RdEFaPQ9fRmibBq$RrT8kDm^O0e2vg&@7dF1+Zx|DFwRnpofbPm z?9wD>zwP+{HuJ)55B66%ovhxKPzazG$)kPnRZNWJn&|gg|LQ6T_CC#0)&*0?uekdI z2paKiP~A}8hAor_{W$LSAW@*^1WCRzB29aorc|LgG1utK>dUBhFq7J^VMy(bs9NKR zZAvm?5K4!vr*Zx-+&HW`0B)%cx}@x?5F>vyZxbR=i3%Pi0hRH$QGKUmF4@f~Xz?PdqgE z<4{Bn)pr)uO;7Ktj_$L8{HI%pYm0n;Y^^>4-}zOVO4hLc8b^IyPol{}a*s|&$#!?H z{7Z5zwhE2vtR6HvsEoNO*nPUFB3zeJawl}Z6$mr-tVQCl5Wf<}LUU30{HmuOdegad zl|NiR_K%y!RDC7I0_arvMMu_gy%ik=ZUEdOr?ZKS4jVR~t64`Gbq5Wd-Bzn<`b)%7z#Z z@+woepZh3qm+?rApVepQt6at-uZcOo;Ra*aK<8mM)?h%y?3hC4GMEPqzHzPMSZbu< zBJAPZIj!6y{L@&El_?9ieIKz-kh1(XDjHik%eLJc{+2DyELeDpOFWW+Y6ouC^sd3u zIc1(OU#h8&Rm}V)_d=L@wFf9SRt$BcNl>MNw}o8D-_CW2XvALKdMfU#)=OzTC0dz!odFF^p!jxz`W%P4vs^t#`4pWe#1r z9F!|M&e|?-?J9Y$+R-D|K*sq0X8>0EZr?tXb+&cb^51c>}jZCs|(y7om^qm}>>D=_7 zM{Lt`tii#3eaatKN9vbug;xx&iD4YF{mxyR(0-@FSx`J z`4_k_9#kL@y6Jbj!%UInkOZwu5eHVd+28DDlon3vZO_)f`qz4W6Qfzbon;7TWoO~^d} zbZDitZ)n&Q2=<{TT<&_?$;;vEA|u<01;R{&$kUwVWU_*CO9Oe%<-}-Ke`a41ayaB( z>X{P8HYvHM1JXC4XxsgT8eeqLJpohRb%cj$Wk~nk>tPgWvXCx5KQ$dycs11{&qjds zJj`N7MMTM5)Iob^Tv=Kg*JHX5OMP;_vHh1*I>vf+gKIB+!~* ze@RAT!#s;GZx4C7pBb(xU$WM5o0*EUdVR~Wdm;rE zntQ*%PIFiu?e|-Vlp{R9jX%*iJ|%JM5X>F08&;!PD9e7^qqC`wkn@AMvLVUgVP~X| zW;Y2Ad{~VK5ff`#sKhh5M2^*#TTYw8RL7w=SgRew2Hvk;X8r^cXp#kGqoE%TlU_S1 zd9OV$@a=w6qO{4$@)>%SdVJ79nrV&w34vh|1PHvay0F|62s;cgN4;2!zXdl|B03Qe zD5!TIDblr|OR%^}Q_@}65=SAPQ&GGptI#G)u{H(*c-kCUg4jtc<69eqWtMh&`ldja z{QdP>6FV}_@E(n5mmRka-)?r~I?yH5CL7kl+I`#j&~; zSQ?a?ft1hqqpQP2=YYh}tyu3&Mqfm?_1mbuxBJjJs4iEIOycP?1l`g{g^K1PnKVL< zzaiaU+=ypTYF5oR1>hu3k{-=)pKYAYAqPG?7P6_KVby-b z?@H%2(b9Q!B7N|mZ&UdPk?+CKAP~B=Tbz=?>n%@%J+)zkA&zv<;eHmRnjpPoOJrCbM_da||S)dN9%-hc$1{N?`363q#>&@%Kq+<*Amn_#IVk>S~SMTIC#M+-DBKk*g?{-;q1nT5DiZ$#d_JSP0Ina z{j<)R6)-SpC7UD>y`j^451Z{0 zblPN)*>>C!u$163WD(l4_T!wtWRLpP?q;9UHhS*G8z81=(K!+ zsN0Q{NbB(i0P?d}6r>bD_x?T5G*gir7<@t#-bQ&O!AFkeJ{nTV`t<(D4gM7~k>uV< zZX#)UYg1Xa>N5d8w_tS?1qZY!(q)o4VL;e?Q9R_OepPWWJ9*xqf1sE8w)U-Tl;kH= z&E;CV*hw#&lu=(xc$*CDm8p_2toF7&#;5n0%ohCC!rHR%k ztNXDMYPJ9BF-eTYQb0U<)CpV%mR7DUuIzofXqkf;tSWJZ+vf5~%}Cq|JRg(x+WKd# zCiG#F@a0L(DF!bOJaig(-iq7pen}%y?iJ1?D?@Wav-upTe^wSopX*wKUZljpQBw$~ zL-Y$JRF0$N);^vJ)^mT$s&wmntj^r;`L*F4F`!>hgz)Si<^hT1oR20k??@AD%BV&@ zAeT@Sn`fTsPD@6}W6oS{MNYIo`DR6vwpl5X*rD9c}IpYp_jcSFWq%B8$vL z_Rq~WhZ9B?RUBTTu-CIQ<5!4ofk*`WEa)=QFv}hiE&SckhXXLjkZ0qc{3K|i`5ON{ zGVYDKmlw&)9h7sW-&7ixU8NuT3T-L5lZ^88#Cb&~;R2;nN#F7TEz;QH>kwC;Hyjr3 zuQqm_VZvC1OluqhiE9x*&~2 zam>U-H^kM~yN0YP8AhUq_MhL*BGxzK&5K;tWZ8e8ZZk_rJC*(RpGe}VNa!6-jD!*` z(&7C}5KP|<#SMNuH2Wnyn>2Uj*k3oDT{?OnJ!WKeqY@K@L@nCZxXPN%s{4Vtx!n03 zQ?$e(v(~ckz=Yd>BP*6+6@nzd1{bGbP8E3LWn&LHpDSB=!EKm@Yb7r;^T(Ze2Hych z%UH8SqLpHv5lN~vR*UQ$P-V&p(wcc6wJW7FDCC)Ee6bghWd8<)gE0U!VLzL!Nm_!b z0)JiB2xs&L77mRu$$=qOK#E0)nPS#-D*6`5wcj+gfS!tIJwAd^eZw|AX4|fb>Bh85 zXE^p0R^j`7Z}Ohi*#Q+}KtS9e(OH;l$+X?9lmPu)MR{t%@U}Ssy#V{oR(y4rlS5Jk zG^qsH-SaaS`=bYfvFcWF8UAGEd&uUFFQY1S)nVV4xM$Ft0Dpc@%{Yz?cv^=l@xwWiN1XZ1D4Ty z3z~xDZX2Dn!gq85+E3r2m$b=T>brypjQPZ-914vzpMd?NL{ImHWUkP|XNH{^5ucRya9^N$uUgdmbN(7m z;y|sfjm>NW)zMKa+EKYWvx8VOktC7C5b^5M31*9uDtj*q7N>mmXT$TdlTUW|ckR6&mp4k+#6S~7TaN5k45jt= zw^Gku3kGhB0X|O}Y0nw%xYHPe0D!-=Qj_qRMCsGW5TsT7E5hWVV56W?`0IwYjgW*| zK3st{|D1hHwo`s$CqC_b`1RQgcdq!TuF1OPz$t8ziIt=iPWK8aIK1MXfDff2-;{52m(h5vg&dsnI?C~_$-M(X^N3( z3R@26LgYxzW+Z0^+rA`*gyJWRX*{$CcmyEW3Jn>+ePkq;l{x#6Cs}a@D~Y6i0|i2o zRrGXF>X;G*Ghb$nCEQJ?<_g#DfI5fhtcfx*qEV0`4HzYXhPWq+IgJHLgqXs2;B$^H z3eSA?OF{D_L_*%DauX272lo07#`fN(8#SF_k5%e6k5Z-Tm^ClL6#im+g5 zHkMkJmj+;QJozf1DU= zcQz>(M@+kKiP?7nQtf!--nqetXwSI9=18p|)J$;b7}U&knHZVDH*==S-F5X(&@+ub zMpkb~ABF~dSa3Im$26dXeI*Vy>?kKu4g>v?&tJh!=RRmTz+sDsTjuy*2=_&g0WzD0hIgkt)_mkAqwoxIL9k3?wLt|g z-E)QMk{DpUL$aDokBp9dUXlJ&=D7@MW@MK;mbt{5Hk!A5+t5#P+l+cXoEtX%-dv9& zg9AON9R%to zg`pxrr$;0i9MmD9hVG7)_{uJ(kl1an(6F{9e|&715s!h028gSF8w4>m7s(ZIq3LN5 z9iAZi9gL#FN+?R$NrI{XKWeyfhgC>wR+HdxSoAl8%>XxN4KExZy)LUUTW}+sCBMhd zNR2Cxvabc-y(Bk*srQ5lUGM%AoZ7POW^E0(WLH=>(?3(-B7~HaRUoQ?JyhWZ&D3j# zWsnsU-qxw4FfzmwuQqXE-p@;l9~G#prkI4n-GV3Dk?7y zTflsJj)bi-e8-h*gaY8jRI++o)>C+>gplGxKR~wp1Nt3`HWkjaCx7Zib?Is#y5EkFaihUl&8eQ+{VGR<53kxR0_|co_{nqwAf!fm70;YhOLY7))1k17~l*mDzR^-)Z2+ofJ zZ6-nvSHz~;vC;^%7d6Y$+oog3F z%gH)sV+&n?KzV9Y)?OFjozMmZgoHu4+TW_^lUva7A*s3wu)^0^7K1EK@g^8iard(yWd1y!^(-hy%Z>K}Q@kpyV ztgZj#YS81~jJJc006Zxx(HXhxXt4olw!9f*h6veE#6YXg|ImK%<&=QfWy32>>+6^U zra8-sT|u=_K5|PxUN8c{iefZt3u4a8rEh-2oqz`NFjYR(l>z9u z7Kz;3B2G1CoB5ekK-OT4h^SJ0uip;6)H$^`5{fq7%_!Dd_3q zEF`O39{4$3gcvpq8GNS{j{f7mhRJeIg))sLwQpNVxfrlVRMY_nP8md%T={y#Hyycr zoL>n&Jf^BQyFHh!+?C1&T%+(!3W=+-UKjmQA)$Nxf{qz#HW@Gix@t`o{jc-B=XR|Q z@)e8h_0EZ_FA@KI_IQDzr;(&Z=v`E%>sWmhmgZcZkaG(=kG->@rtVhgyEK!t2;F0J+DI_g&l!ryP0O4axsfQrj(Fxk|%L zS=zS0kPXn&4;Je>&-Eq@VdC$jcXi4I{JxAls!pw0(qE=&j2$~FL(84QLRAGfas7$W z7~0Kq=Dq9AA3mdM30U(Eu@Q>UMFGT5n@!eJ3n+Yy(VuvVDPAk+c3feCXq@r4Z2^~kUT1MRwh^t z#Z&m^1FoLW5F+^Xle&(J7^_G+{i`yp$-3h$fI=`+h}%uy)g(iBld64n5)tfLPxYf2 zQ)>;cy_mz3V&U(;@l-yN<#yM##C4mK*F_!SO4 zU?4s2DPUg&FhISP&tR=={R68s)0nH&@V@(M?cBnecDP#ROur0lwMxk6TU!!^0Ntd1 z5xs4Py2K>|(YF-0&{2!<;8|=*tl#I=U#q}Cz8%1O9S|C%lEIvg@PymavUuIpqAWK`?7%{R%|H4J>`*QHQ{szNkR=bpS#r ztk!p`sTmYyfE;tIZIvR^B}Uo)LDI$a<&*(dXc4hUTm=nsuTlGekx!SBQW566W`DvNnx54V9_Olr;gn!Ho z+*LS%?U2O!;dcO6o|}rA4_+zu%nsjfHdzlum3f1XKzUR^psn}&wc-YKBlD^qB*KfN z+m@zOAf#}P`c+bxNN2mTk1D?(`jIgcMxgVL7gPX`JVz4}P;?>XPtg|LJ^og#+$h4p zrLk%bDXk^H$(W-KY+_6;Fd-`;gioe%NxUBn=&dP+US#Y12)Y(gG((xRK6BBmP9h^MAOSloGDyOs&VDCu$R83k* zuqdEpi#HWvI0p~d*S^&^3hPt^!Af<@wiPkar#^&13WUpyx_rN{bs;9r_>V|B>0YU6 zK_b>7WyK(>FE*_UT3ksaYnRxLae0C%+=sh>flLt1W{Y1kmA6m#@~P<$M=4;}+TA^y zum-Y#CY@b^i~bwyiPCn!nptrU$r3fZrLW2#=#JGkUyup{v*;;effOE#Nx(-Ve7A1E zrlbV%7n|qYS<72Y;ZKMm+Z-&*QjT?qkOITKaDkwbF}5eGQ7bce&~TeST6%CwKhJ9b zV3EdVzk43OiJhm^u{QKsFq`fWxNvu#oa?`WvARaw4>WRF4$&toe}LzJM?#OQHzy~j zArolZV`}*FOJo-+)`^p%ZH`SYG}$Hpkv# zF>DV$*qztlkyIX@ll&YA&c*V{KD6z(NF z=Rd$v&X*Eb+Z{);C4;J%j@tII3*^K792cf#sMare1!F+cj!pzI8uJT|N?e{=;?+~m z8TB~u`EA{7HQN(5ef>_N#^WXNcof==FLS?9T$f3tvzP&jg`Eo^ZsecR)pzO?Zo$FI z?(i2e-L%u54D$uza8=egG00a4sG5)1*k0wjSZ24~X_!H88xklXj^X9W zS@m{ot1y!g8JEc$<{^~6l+Dpbhee61Q+US=_&*_Up*pJUnlW=o5&y3xhNyd^j71%` z7W-l(&QE9Fk6S+*9i_ZqxdK#Cu<8v~VvQ#zb&wbri2Rh4Wy|uUF~!7iE39XLB~0#o zxn<_@l2E0jZi)aP zixO!#s_jpLq|INmOkikhO_}(MS}mV)DAiG@ta+T&Y)XP69NSSB0!4B}`vw#Xz;5l$ z9v)qJR&|R|uXRXn+pE#zcqM641655(EGCh>jHjaFWouTub)f}FVdL6FL0HPq9Vlk1 za#{-SH~H^TceMb;kskO?!Paq1UA!ZDiy>ioJrjf(n1zT>y&6s&Z=-i>G7~rQ zxHk$;>H8nAF_;%A>$uZU$*3oyDut&2Fm_2Wyv*b5b`BdkOZ#ZI8$<&bsM18 zsBnB9L+w-h4I5<50g6WOtz;4u_Femng9?5_>03H|nUepmqG|8i)-Ne=)tnYTX%Jd< zIFGUkJGFyxzwX>9FZtSV@9jddo;^5|`pAlJx!-?Y@fZ^D=piU*A7~X>e40$?9pU;Q z)|Ly>bN@z6nV=T!D_X$zxj??E^%Fl*p|A`Dt$5OIK0I*U|BUeZm`p8PvCz%018VSl zW=}Q%Yy(qgRe8(_X8el0vcXiuto4y?F7sFU5MCUs$tJV%TT!O4X_zo;5~rS#K*Sf` zcPEIIe^e5nJ$WBj>zrN*mAeYF)FzVjEoa#XN-P16xi24rx3Vm2^u;&*bEsqp;_Tl0*OEKl+f%MIuC9LpYYf2T8u$vTcK4q5>dTjPZZ>ZnN8a^wqPon`U2QZdicrv-bsMhSwXr^_#|~$y z-XQo4$>tmYXX(1d00D=63dr!9cn4^qUKKF6V!BLeDl_}F;4ju>IH|LU?GuruYAE3{2!0tVZ{@9?IpoKnLbdq}iTesh2P+Mj5!lTuQ-; ztrxn0MThcDVTU^#J;-8etxJFQl8gHCUX3JOl|#HJ-Y!>~Z9Rl-!*piC9`$ zGP%ZW0e=0rvFXs;Ss0|84v5Ke!HXwGQ@cEUhOU4HuWW`$^+W><7KFK$=THW)1}4QD?j#ou8a55R84PA;*F;p8w$o2{W6=+`W7{x z*OUj;Ses4V5W3OYHY^y|Iyo5(ctMtJDb0u%a}Zf>Uk^s6s*4aFA3`Qfr#$Gl=EqgB zCvlS|Qy;_A+lDBtm4rz0L#+?T3r$;d0VIK>&u9iFZn>NsdkNesT%R(NSP-Z_vcOC^ zlCqolg!UU3ilUch@mc=aXOh$kpXFK~t6CN5s##>wp&KW)tHyx09;_koCrBk9l3u#{ z3)RxJa3ODl-{_|)DUcG&f+SA=wE>82YW&iypARGolpbYUKmDaK<3;X!=ZJvFTlsw_S6h}c#gnS z8pZTC1p5yQFXuBP!($vr!ClRG!Rxm>^Bn?6Fw)+F=_9sm)aw(NrM zLy8T#bn~;z&ds#z>j2NIz~m(ia;7)i(zc5`yv;eeiqJi57~z&{FkOL<`@pv=tjr&; zP6lvk-%c%QQ8sr#sQfe1{H}dqw6kXF_;*Hz%Cb5A$l$r-qLw`!8@B8!^v{+mLeM(G z*;_aSM0!I+P${uym!kN=7t?^PcK@v&H`2ly8_?*&TJ+@eeO3n6q|u>y_}jd`O;6Pn zWRVstj>5?5&&j9C*{2>Qjvy(%3Z=2Iy@3-{5Xea13lKOIS)4E)r%s~2HCbjmV)@3a zH9iklKk~~t(dsrIdQO_3WS3s_Mm#0ILd3ZZo-~EWpG?<(X!jJ&$5wh`18}0T>+}nY zr8G7P!PkPfd;AjIJ?I*(x?#aJ!e6q7^1Gi{CwaGe`ZbhhZ@>CoCHt`bJJt^(Pn_Lo zcT@>sSOddIEmm%R8ERe2B3d$ZHVFI%V?ETqnmd9D#WoT!`D0X+tESKnP0iuCPii?> zOWDtNDzLI$nFxHQ>Notjp84Q{%N)fu>PdlL@`Ga(J~QgP22`U{aQK9qa4r%^X~ z!W#YePERlTLI_}=_0^cVv_ucG5Owsg+gMH<5ys`{ZT^HWO3jDa8$U?h-W#?NL46fx zRp^5+yx26jTwK=Dc+(%|BVE!(rqy_r3+5VUjMHHm&7_H`Yuj2sMY|0Rbt@?lOUW=w z4T>rsiIb(~hSlbGL2yeAz!urdeMIP5q0Wrei{I&Nh{ejmS(X(rtuHTv!?cQX{20L( zOR`VZyEU|Iyq0Mp)H_CifOsWp(_Lpvq@X!2ezu1A-nOicJ=7F0`~ z!t*{IV>I=MSQ{x_IMLI*uA#88xdZ}gIj!di!sk$~&l+l1lS0@a{ubjQj$~VqX z9I>GHpD_{t+%Uwio^5rbk;z+>pJ5GeFDHU4Tudt}c(jh(x;Clea~WyrB&pTDE7Y?) zE_p9t=$Z-P`!>k#D0`Amwc%UBe8OleHIu2FLEjZ%z2M6XV5TkAREd0W^G>(jJS+0o zjyp~f`3^#ecF+@5`c<}`QjAH2N^m~QTFlw~T?gnY?)5D~xSof9Auy(P;()#-R|jCG zzD%}=9aGcQZ*K;WkfL`uz5Cwrpl%cNp9BMU7<(d`_WbAu4js~roT#>Ma+$@{h`NNw zQhgWCCgNd*kYFmhZk!;;U_y0u1KjZ=6)W;3oP=mdK7;q*-^SvAJ-^~|2-fJOpUuvju++*Zi zUi!gLC&q#{irR9W%wcsIW6t445E*E0wLsBdI4Q}p508j(Cb^5=qqw9DN&elZY&$w3 z^DS{njXaL8MA{{~@T5Wr!>0Et)}^Wc1B|#i9J+^B$QZ~oxa0IRx0{_&rZ+BCJB>ts z`t02QL|l^w_m0=t04Ei|zl&@*70Y3D6~mpI1~skxM~H ziX`le^Cy1GNvq2jXd67M_!-yjNqvS_so z0HGqCBGBe4o<`K@6Z1XO?8R$|{dYz^_THn|%L`W&>4Mf#`MYc$kTcIgxwk>eX(0c2 zu8n~UNFvQP|8SgU1yJX#!uXwBhG+Zbji?c0nOiq4>Z0xDlormw|G89D^w5W0gT2k>9}@(O3Ama)BX?V{3rVv(j~)&mJNrA$?wOZ z6Y_;R*7=Bq)OwEBfRhUL4bjJvV-;GT&U%h5Pg7`x{0BZ_eK6DfyG&dnb#cQ#wLk1$ zzTw&}jTTQaviO){cs_DpNB`P2h_e>5WE?qB$b^3x}hjn|`3xCSQlwTrSZtQ*h7U%KzhC}G;A+uX$@hLOq!{Ak(?9-(X zr$MjiUd{CCOe5YkC#RI_TYH}tGrt$I!ZG3j60>EQaYrqe7YmVIRBI*u+hkP`?MU(AJW^I}IaYTsF1`9c1 zy=^#F)=O}b=haY3Y}E&*n{a+!4+|eUo2kQIx%p3XdmB?k37kSziv6}OKkeg0Jh)e1 zyX2_V7%cF7+v-uhgIQ>+KaCLgoJU>H3ZO8<+#@{~MQckAX1&yA=s|#GF?zA+J9yp> zJm{UKMucXhS5f}LM>tQzHju<*{>!|Tef|44@y=5Et&&C)1lo}~`N?0dmfS10$!B~;=u8yA+f=XyqULrerdDa(Wtzc_fGy-fU=^zPr@IU1+ugDJ?Q;Xzf zLw)3=CLw&^)PMB1;S4d;vSQ6md;xtDKM~QGNbF;^4U>KT zP{xMtafCT`hbVUz?R*)*V4Z;9P;$b#Lq(x-;kgevNm)%L2c2UxgArN`8P< zH{|Gk;*`$P$G#snmh_X~-&rKjeOLX#VZp1>Ilc)S_P@sn@kX#O_B#*_LYZV|u$56D zEA3qJam4kC3_;JbF)W*k`5C;mRMjxKx?u1eZ>Sz>8%d|YUs*i3`p3NnVm3#>-T?oU zkx40BBR7GDj=DGE;LI%(Au!m7qZ0ayveLwbM*W>=v^{W5V!Z61h?(IhcZZP-#-uoub; zDMNL}+jv*bmLdPjt|&^pH&T8E17Nc>SQfrM&!FG^3h!!E`=2SbG>Qr6j>vG3tN<-g z@_%;Tf?iQ2o%<wQ&rM{55*wnk?L(*j$*ix2NcW#yDCJ&L@w> z$SFaJP_{JE^Te`6fP}RDQr=_1FU0M`yP2-oD($(!BAgCn4~5BpI_A=J2g7A)YE2e$ zPd}t{#M4eV9{J1p1T6A0h*ssh04^QBJb-_d2Km^prEKCyMw{D>BqA3%u3sjl54B!h ztchUlj8&0*L!G7L@(({9BW?UnqsqCjRWcNf`wMpDE7?Q%RjTdeW(c{-!5A+^$-p)u zk5>$B*~i%Jnsme=LV0A&kKg4vP11&!R{5G_i(A6Qvw0_NV%sGWaK(YWn$f_eGmYWj z1SL~zWs*86j6<;Yyc4pp1tNf#^sx=`rg&q_CpPT?`1^kj=vx-CdRtsmzbf59*$?er z4ok?hbsfu3!{|TkghKh&vcraAXT+7BoEipYEEw?WBe+vRmBbYKVQP*2ckVkR!*Z+I zxFuV7tP31A(K1k3;y~~$=`Ox8Yh@{n>+kGpOK(%s7S)IQWzth%$vD_szs7uG2E@2i zO=D*t6mwrRIiDdo`Y(4wJOxi7>8H8BScJx=6qy(RQ913`0vARi)y*}8MkX85W7JV) z!iy4JQarS+ModJFfy#Zl7y$NihOs+&xYI6GMATJLK{}2rk!MMf=n~vtuX2vNEQkQs zl~1_md*O{XpM(eHDg%AUdue}MyDq;SuT~LeqY3ql0=>g9%ZQ|){lan^Y10s04+o=+ zYof#Bzr$bIl4@+ckshFr-Il9}2`pnE07Bb%`#S4_APQUG?k#|{d4?zW7Yj(EcERiU z-6qP-5TWOfB}n~Est|UkdMe*x5-T6IxDEnEB`7giuh%^A9#R-VT&@PjP3h}xK9Jh@ zEc9oCa8sgzX2sn3ZUJ7Jd1zTUk?#ffY3tNiRgS`+yAWKY#vn$RagF~_?Atxx#Ahcx`wq76l?JUbW-%k~g|-RacN3+YF`Hv}fa;V=Tx#jIO>N**77E z7wBC0ARbzL|1P$vvoljJY_g*=@#$Rp{=&9+oQH}b&T5AsK6qie&Gi#0nUFJH3i@Zr zBxgnsUQ7ciR37CAuQ!$EmE#PDlHY>(9{g{vn{n{9t2WMP2=$?v&XGkQdf;9yyNorF zZ20Z(s$|UI(?>@Cy$FzASIyyz4LSMaqi^3^U~%&XR@!^LI&3F@dl{yesqvN%Uo&p z%oY=7cW`+gq~`r2eMrS_=lMjbvrb@B#@H?DonFCaSD?6leCq$<>;uY*bW+RPOddXr zfp!}U#D$vc+w5wSot26oJ4vo2XE6whyHML|c8@_&G&F>vEOTipHo(_3*yAO28ZGc| zx#>#-OGq_GHwQY%!+(UQgqkIg1S3J^MM6|<^<&lN1miXtg|Gu)o6%%m)7$||lr(;a zP<6~pO4 zlLGi89#BxS6G>6QM*jZlPpvLrK}Dtg51{Mzf73RTI6N*Vc7Idc|vM= z4(m2~4PAnyF>0ZT(y;5<6${3L)GMeto3Q+DvzT7G^dtCFb@dp>!mCZJf7q%U%go=p zThMW%?)yfbe&OG5$9#iF)b$g!@Nw%vn5R=L(z^mEl#-gXe`6C+tSDJ$Bk?qW#?F_U zY@n-cFPxY4lu+1F9=>r~FX{?FM}$EjyEh<+0tiFZL#U>Smz!07v6F^6L4l-1iu#Ra zPHf#5G0HnvP?oD_`uL-WLJ{P-pM_n3LOdKP1B@Rj_ zLi7;|u;yXnO1|Z>v{@YCC{BA0nnf(ZxvD-!7(36tbFzL84Uyrq zF;Wu~qM85c>ow)Fm>v^fZKcs^2<}3kE@(>95DWF~ooa_8e6O!dM3X4T(vo=tsB|h@ zFRu2w2%x$oPmt#>>$I@fMrPtHmf%Xu+Eywwy&OP@w9^QQs&`6H_X;&qQA#X=>>JBg z?|v|DA%e3IlP;ceGN}rP@Y-EsWJqz`e(g$Mtb0wp%;5_votG>~hmbjo^>_)tv(5j_ zmC&`ltuwk_%0WThx$G@t9k9+cD%SqhjJWv>yT#wC@5f}XAYqQWrW_|7o4kI@0y?Rf z5+bt~!lS9hhmDiz>O6=R{x(Z`7m_-Da`gj`q|{^kr1zk~4RjDKfH=OKKFc;I9tx`= zdR0fufJZ%KsQZ!0=CZ2xbEZac3D#$J=UV>DDP+o^a?8~&oJD`dVoenOUh|t>ar6lr za4rrWBPq(IxD7mk17lw}g8^lW)`2r(+9>;02nI9D{Bk;}`SF{4MBKX9RNNQsPoWd} zNpUO{$W$S)H-?iWfPSdV!ev9Bk{zDefnfYMEX&WgA-Z)VN(vPj8UX<`4c?*Dk0ru` zQ+=B~lnc^h?SsYdFcGfxH4UR44cDwgHny94aw<@ve@vqsbKYBmAs-zaqjt0WeYGim z;)zzagKT9X`=$a?@-@+ediHd1d1;^~v1K3#^ z*?^1Ck9375d2|hLX}{KU)JIe-*6p?n#R-?a^123mBDo7lfBx6+VV#*5`gJtBR`iLkLu=NcTv@6 z6puyMiV}a(8`^ddWqptzEsUr>_VE>mjau{C^37JG$L}|?|5kdp$MoDPxwsM6`I*Jn zg2v1P4c0X7LGT^p&lei#Mfz(!iBAsEUK~`{GSkPTZZsDp;OM@SKL(7YiTY$k@P9uj zX_X;=fCvMd$#ICOnfgmoQ)ljRsX0F^G!vyP2qb%X5EW2t9y$pRJQ4Shfwkezw`82d zA5JxCeCqSJm^_MxgZZlG*B#L)@lo~ETzA(>)1&z|`Z2Z~!;)}3TD5XKHb;s{icXXT z`I1YWUIAkCjo^R+fy2(*m5(!r9ts|0zCH&BW{qfwE1kN%!lLqQkr3SVKY0jjEC$2< zBp6()Co@Lf<;R1;Isr8BCP(%i_#+rsE>C=$F2|rLu_n45HWDDdB{TG%DWrgj_d@;4 zvznVCwQI?Rk{bKDh2v`$q{Vln>Qqsb$Fw$kr7uU1agi_`!2a|~#~2*tV$}WFuZTWg zty9LSe#9FUdKw#w&tyi>1455_4#+G25O5JYB|TSKPve7X$u0phg)UVYz%@XKgvA}z zG&+1QJ=zFv;`aX2QbQ@t&LC!VEqab==x&F)hoL9JOu{2gb_&H{r=dOH6J5a_OnkhE zeXx{xSgnu6LV|9+Zy+-D+0j2*so7LX^AX>~**35MaP1AIg`Slks%ylr;qNx(|=ZrJQA2K&4EVw{4iX{IyaaZgwd zz6`vdb|ug*wPXOAPueFx9UKf-oz$AXtHRI$xuj;sMUo5ZBC863k~Su=YB)7~H7RmB z;#snDSAj^ViB+Z@gd^K%c-4t(4NKA5 z32Z4thbF(36y;o}Q@@+}bXH$xCb$51ZqWk)(qzI)?EW#JwXZw6Oe}Os@39cER@d*O z{g(lD)%h+3yo(X8}d2g^_ zayi_dMO;!a8{f;5A65(368PNrvvycq$-%;Z8eVsV%_ec$2(IMGV?)y%rJi z4g_J|m3i3K8COsWmY81NXH8Dh2$A2jPFfgpn#~*OgmRvgc;poL-!(WI>gX_qRi)(cH-vdfQbO{DcrTe2p;r@0Ice-8w~@o<$h7q z#c`5PUF@$vn@8>!@!?|=s3;@}sMxa8+EGzasnYxo*z`zr$1O5g%Adx>eCVGLOh%zm z2}i2d_9?;4G%vX>3Oi%JhgszdlEOf**8PC;t2zI}{x<^x&9haqwTjXmQ%peou{UpO zDKzlbr6ob1_E8xvn6+25F;#}*Z0*SD=ITFSnmpk79BJUhlH{i!1=r|82a7FGlg%yF z^bZUO*!7rCk*UAQe46DiJb?NCrrmMN5y=BKPNU(Yz zz?k27$%xos3So$31{|&Rg}opK;>#qTsH&Ybv&9WbG6Qi${lGy$;C#b={NUwv?x+D= zh`QiV)DjN83*Dp>^cip2E(a=Q^ueRHAn|-oS-{;Ac#=A0(?oMHX%SK!DqeP;I0DCX zago=U0R%b9Oh&0zvzf~qs3f#0k&Kp5K-NVWGw!Af*$uUwR{^_`si(=h6Q@634#>+? zScr?q>BSvPeterM1it3I7(K=dkQ7DY&S_c_+Od2l)K9TfOkbKDqJm8tw@@`R4_u(^ z<~*HE4OseuET6sazeTgaK+E(-KnJgu!N{|{*j_)C7Zk;`1XL7UUB=YOQuPg*M9M-r z+LJb}OcJk~4*Gn2t~C1=A{(;%u)LBsx#%s&z-js915Q;P(GNN@AedRt-*((PsXJ(* z-bcpNO;-!%Rnmzejfy5^bUXB0LzCtM30KEAM^6BJO=V$Tfkg(U+$FO6|HKMfNq1C6 z{5H2sQGh3Da>$iE1s>ZAwEdF&zQLjhrhR15^boKpE6by|8O3CoJDi+a6}U!_p?ROE zd&1XIsg9A*TBZ3^ClsB|zyDMUN#+6Bw8~gd7I$hK+WZIG68@u;YyOacV9IS-0%3yM z*2uy7js^GhU(<}^1BzEvn45S)E0Za{X+`YxRpq7WVf+5{=6f~*N{A?^T`&FWhARkX zW8V>Xz(e(OEw)|1sN17pTKIGWiPCvt`3>x=d8HS%+5ZQNbm8K^udrI~Sj^&wQW|t> z5%A4UQxi|MnAxN}AgW+>hn^+TwAq($d>Uge*yGMH(DW4GFim$}PwvUDBDnB{6;1E6 zWUYE_v+ok57NeeKaq-=`aXjbey9N7XLRa*HSN=MDF4ZC5e&#CnTtHo01V};(KAeFK zMGg-;vrcWj3rI^rHP#P!9lNad`AMNKJ(=g-#t_PU3*^kb%WXP-YzgBHB>5xmU?n3S zw2R6}$@j0qXM~Xq`or){=3ef?;bAfU6HLAK3}ls=DyL(MRjoLfG@={Sz&d+q#qoDr z><%Z1cWxsnI0}T$W%mxRIx5;%=MNy_RDfiPRLr3hol191F!>n7wuDEQ$V89bzaM zZ*ZllEe{;P#|T4xs(F|&+Dt^*ag)SXIsGt+>Q07(o19tW7OUup`4B)1uZ$=K67Ss7 zMcc+w`m_Lb!cy61M)*xlETOxVCo- z7U1A5abKZaNr-&QAD5E}N)p(~mVL75Xgi|ll*_|$6cE%``dZz2wks~adGM{kK*;o` zmjC;-q=N6PMXUg_gq|Q3^8E2_x)`bYjg0~0B9voFCvIZMBA})w)ZOxS%n>OpPqyj7)U& z6sb=I;6S!|M!g+N31q0|+Wbd}#rx(mm=1ly0BC(0x1oPniWDO zjAVg%^f#ve=}!G3JfIClKo&3NwWIplyGef(9v5miPw>{rr`d>)Zz(%+UL1{XJP~$z zDlIBj$%Uo3cp9KDR0KC;&%CeMnAyAJmbiPHYlIKVPe_iTxrx$}ryR-sM z4#Y6%H6UU2`wZxOPy4=TNe_8!(@s>vVcj*Heh7hqZh%-@M5sZ2LB+rGE zPug*p*6Fk|Gy(;VrNnK50_PO`NKDyW|GzW?W&5ALW{iE|Z@Qh7+RBGmp!OS%#v>(w z6t|SD#)U3ZST@2)$Bnmm6I^_T6?Jg?H+|>0ITE)+5}qVe zr$x`Gp2$vBvtjDLlT|!y@+WYqepc<`XtN*lq@*wDWGmdutnj;8EwAsBcm3PXHb7ZqB7 zgv@614su-fS*qLS*HW0)iw87R`U5jCTMp>jg6u!4<54HkZ)UFFj6R zrBM&#+IB<$mSp^XxOSE1Kpjg80z6nszu}(>j8!u4?035mSzG~^#+pM2ltNE9U!iqa z-i4B=bo_f_3u|)o_SK6q1Uj(^kR9^u1`>W}1&3!V8{Ye|a`l1(JOrIS$ZF+O zuuorfTchFKk+nN(YuO}(>8%Ila6!=EFw;xgS1O=alaC!mZ>AFrmbd&yESPN_=yAX* z`#Db4ozNwg`DujnI|=&*6w0eZ%>;#~FyIz{q6DBxZ)s8Tlr;8m1UE3ywne%K7zkXB zTcCE3_)SjkpZr;`JR%KW%!8(g89?NzsS`w#6=ap>Oe|!(GLl{ zp^?9YzGY@ePCjNgcMZma4jU~EolxEj*IaGXh4XY@ec7K|e3{`bJCDplOjpFYA+9s$ z*#EE+hN5MNbihAE!X&QziZ|(K#_E%}yD(!6t7w0UvwKK@l0IbS!Zmd7r)>4Q1d0Yu7-R}U=&-C%zPEA zyk^?vsQfW{8(a&IdSe3$TfnDq0z5c_Ef7U)tQ7CVM_JK*?C}c^l0N8pYxE})0Dy@s zMB1%_+JCd4iHc`9Yx2Xbn7g?EN7?M4@2h32wwNZAO=Emd{O(k2WW~d&O*E5OyvDH* za;}MvFcLC>7k}TgR)hmOz_>fhlFmF@@s6EgXlE5(k3r=#n`&q5Q)I4;I_zn#ZzMZnjT)P_47$S^H@LvF$iLs- z)M}{o1gN-z$;TiKzYEH2{@e-QwpRQWpK~n;R#`NTZs5{t$C-S3bwH2j$72=0-iV9N z>=@P%6Lx20)V?U}ShO25i^b@}Gm#z*1UKh(hT+DuRuc3^`} zBT%YU$o9Rq>#-7MOtmvcVdMhvqj~I^gx;YHGHov&N*p&HG-CB(y1jL%y#ZV$hO75Q z{mf&}*o$;HXnA^}{ub=2kO7pL;eSAxh$LV$_!2}7GCS&s$o})6xU95mbCB(>)*DP; zvJc!3oj;bRYgx!{O-4wAwGKz`MM~qb{5HXyUr$482wAn53KGqX!6;2oXVvejIEvrI zZpq0-HNZ*uuXIJsOP|CKnyU~~-+gFTm%ej2q|v?jbUKk!BPU$c9zb79I9*5HjL-t) zIuPMh?MBAv}oPiX(IC=yN z85bA4c$praGPPVT%KFH$zNu1mP=;%@#JMC5eAL zZMMW`(cy1kAjDe}|L|a>>;0^iN(-t?k&1|B&Lz$Hn9E5Vbe9T*SEb%80XOvMGE5;W z$Jt=FFvUq%>+iHtsCEjRFgjW$ zW=TMpR+}4%CLLBHvB^ikvy+Ydj5op~Sm#m`j#y;ypNUs7yP|p%Gr|bWUsG=s8-kj< zaZ~m1i`zpuZCp+(h5=H>oQFZ1R74blgoDJ;?D!Vo!PZ7Osw3B_a!-!GVCqwCBxvV5 z*JVm8yTtRjk^x=?Hhi}rlS}8@KLy|Cx%^tZsus$tApXZx=e*p+HO)*mVbi#x$&WbM zzTzIjF*+4E#XKb-5nVFhJUyFCGO@h~qg^ENiUs{e<=0(KK zHXS~po(N6Nct2VFql{Prx6Ie!+<`;xqZUTZDBY`}6-6Y*v?})kddNHUScaZ;czeMw z0HPo4j}ctVY19VjUThLb;|{O<`gx?X6&=Vk)7WBBzw_bCeU?>PSUN=yXR?{0kS*}) z31ZtHa5=03Q^{UA@KeokN+~aS>Wj~<)J=-h0RQX6B&+iOK+bghw5)Jvf>Q>|XH1Ab zMv1LMm}u_Z$@jnXCul)K^M9dOZ6ClS*A<*Ro(WLE0+F@-nac8jKQgDxs2O{Iv*4GW zOMHkOatT1pt$OUnu_|T%5nx(ke!<*jHU9`#kc>~-jA>{Z<44nS_&vg5Pd0_e>v95k zaSS75bf~h)hA>CW#q>;;6L>KorY7tkTCH7IjNQB3LXK%562lt+@7WO#uJ8cYzJ=Zg zcwBrX3!!Onoi)4v7GCN`KSCNyF~C_7>KDvfRtYp~#`QGNchx?89?R*-#iGvi@R6jo zfsJ&R{>~hs#BT~*>H$=n6SfJdAI7v8IR~?@Np;?ga6yP3UyqE}p(tCVcFk-?}r|YeJIUfr>Y#f|xydw@7XF;P! zE*|s+(6z_VyS#9*#ZDNhE8LakWi11p{AjA{xCdPSdIIht&Y;I>FpYDZJ0pvebH+*_ z%F90Q_TGE{${&1K$W?@v(Y3kx?<8us_^bVnvhGFt|{3)LJ8X*2m62coHhIi_J6eU5nUUmGhEHKIUYVxM`Oi$4hcW zE;G<9``d5H)aAwXWx_VC(#XdE+{4l=G5&_Acq)lr&k;J_4Bz+{W$YqJoW0mnrhIdH z_|)}FCquzs2t}Ac7~oR$IW>)Sbbc6H9L9JaR&MF=mMT|LM@9%dHnw%hYTS%{M!(=514EWY}Gv{M73!q z;SyMcnx*6}5`l&6jJWmFKcBtUWWItxGGwKqQtZNira2y9WXY5@@s-%JLApsAhNvlY zXWay+>+gcwp)pg;hC2(ezq?*?Rg~@?FmDD6r^kic<2ySJMBhLt0g9tF^-FvbPksK_ z^QvGe-GiDe-@?n9?6Y@{)NkN;L5f`1yVonvkkg69=?uy$K955#G@z-1MEmg9x$J-8 z2E}Qj|Cgr?NBTo2#;?WR-lsu!h`)l@X^9s$?bbN%i~tC&6<`j+ zrDPdX0N`=@u2adYgD~ngvwtsxigo*@r2I-4p6!zxZs30w%`!w;AP~Jgp6qK-dv}Rl z&GX@P*TldFpjD@=S0TLeb)ihrc9R5>%u&(Y6|xvDy+%-LMzUYmv=t# zMtFg+ob(0IljyXAfNzKik?pt!DG3DDXnL%rW9vCNc2-0ZT<7iLcTl+mIf|*dP|9dQ zURBi3G*UV$#xR02N~IX+12+IfEdFrdWyJ0DNJVDWjp+~j`ZEHXa~J@yafbkMj`-`% zJ7Dvc=kVHrcpmAM4O1hsdAd}k(0&ik_6ONcge#&ZM;I-XYU@qb8+q9AQ~RpOHq<>b zJ2$EjDe-wJg3CnM${D1Xklf*?p4ub&Da+41f~Ie|N(`lW8kU+-ScdH3l1apch_Bv} z?I4TeA&&uGy-d&~ubZ)*c*4VwG1eE*Rj$(4d0phW5t?brYk$O5HRgqWcmFM-+GyNE zTZc8F=#rQ|ncRW87Xwa;DFpTlZiiw2OOQ6*z*`KMy+uD>7?2*gO?H3e2OW*{?|7si z1IbR<@&X92zIduSK39(O8PvcbEi&<^w-PT;ok?Q9#fnI}J$53;5&2}9bRFh&e45qS z*a3m@x{Jzvg8zJ&*aKN_zcN&`gvhc+!awas44oVE!nlRtLhN)L6obkN#Z-Ego6j@d z!ERfSW#)pt!8!6U@MP?iv3>w>+OC3Ey)3R4o0(X><2&lXOFlr5rZ#hsKeagKYKnKa zjJa13d)<2f-2`@lr4O6b_3$W5m!_HA>{pGxH?!W26KDimbnBUp9#8(1=kp5QHG9q0 z*=t}RuB3xugvz-!I(s<#4=Ov{Vcpg{D!5Q*m`IXU+fw(;8%_ zO*Y_i1}|n`%<4oZgJ*5c*IJP9=*u8^ELj=vQ^+UQpB-|0B8i&6KDZEFHfa{uh;6uD zfosnAdZsPF9E#8#2ot|;&riui+Rm0%_ifg)HQ4^sS#`YyVRJxr*w$HJ6%?fb+#fAx zeq`OhiKpoR+6LqfWbsGo7$H8Kap0U$k_8pzDy>GCZw;1Noz%mY=8^f1jgyC%W8B*# ztHG+A%w>IVKeK!SuSN4yTVV!(0vI8VJ8YYc-tsp(k@f&XXqy z>`mQQx9Ie>ybhyENG{1y+{g9Ju!gJ_oV%x3U$sW0JROrRN+^{w4H)eRw@TL19n zFJ`&X5zi)N3qqq8F(nFkp+CL<1$wuz`dDfhMaJ`RjC|16Mh_K@DA&5eLD+=QAXz&H zL$~8dotqHQK~79dFwUBuE$-@*jkeSFP$RIq)Gcv~gerICpM+?soFxRGY(Mgb>X5Vc zXQ%FhNE1O0J85NTax~&C`CFfjVK-eRV1MDp^wbId3ivSp{DyjRDmymf-{G@Dh_};V zW8!swb@-!IP3}12jegd~8`FnNL)J3Y#{cd_??Qhn=USi-Li@p5aFC44DuTzBDr}SdL01CmicnLa_$M1kqs{Zy(D>mty3BTcf4;|B7J?rAL+>f{5&Y#K zZAIsx(QhPrt;hRfziaa0sVbQGi&G;3Y@~2{d!a_;AIjC$roD0#XI<9!p=v081>(sl z&!AN7ui>mJn&s2O#VZ!`xT^R#s>WT7{NpHG(DC?v7?C&kb}5pe%BbxgZ$Aam#f*p$ zQvQ)!c3#7f)oSj*drG6k=90cVaZeqn1c^v3f(>qYc7qMw}a9Q-(0UG9sJ!egM zao5?niv<%!I4ey(I8nej5^#0 zCHnl9hXU{$K*SCT|eGw6bum* zJe~UO#w%7^%uKZ0SKtS4m0^VZm4w2Eb2{UeqcYHnW0Wr6 zoVV$op!dkf+Yy-HwHfc#xt5)jFg1T63vT%m|FMXc%TW!KPJ3!IJ}cCG|8tFVJn&Jw z%xBCPCh?vqMv4^kvLQ%bf?JrVwS>x#f;YBnb#6dn*dF5sJTB2F2pEC@D{TiVoNfj`u90IMbW=G(! zdsx&vHK74oG2^^eqAJ-3G&z#!#LX8*RtbKQBs8SEj#eQwIXQd^QPBfq9E5?M*;erd zjJT3gvLQrXjf&H)h6AT${~z)qc3+_*ZOkS-pijbcd|3J}1?Xt!9c-2PqVK&Hr}vNg z|7m>H%tb-yEP`}TP_GR9Wxom9GfyZplKSAsmKYB++zY~$?~D{&rq({R$feR0-p{r9 zGh>2No3M-%Uq?m*5qJdUdgRP7wRnLnkez;8E>M*a#SLG7OuR&Y_)zs^0ux+JI^Y0a z*J(6e8O;@4PNcb=cLYpcWT6hzh`CX5{JN|5mh{Z*wU;9b`(-ln%h0am$%E^mMJBkw z|8^!rm{fLk1iyu~K?DHslaJ)Idfzc6o!6oF=H2rZnh+jU4%UAQg5?u;<1(! z-n*TqZr_sMyZhFm7nXC7+jATJR3H2ewLAEuN7;PSeiT8cnvR5Bl`DxWcb~$M(Y;Hz zoV>(uZfYbI(p9=(pH~O$@9bQT*eNp&FewFRz z-^nm12veK%FV=UvDhr~qW}92{#iYzy8z({P2oyw3d&~JpVZ3Oqy(3i+MBOMVcO&S5 z*OcD}CG;N3{J&w#Nj;i&O!%%`uGqvUZtKH;7RxG*N(f}EE>Hj&wb#johYO|BoI8l};aWJb0MP^dhq8CQSh74&Z8_(tM1d6Y$4uUN6)X+6y) z8tk09&<8Md?;KOky4i$xj~vpX2jet~a20OZ+XX;LB?b{!0yCH4R-B_;Wi!M?$Ima^6hYjuMg1=fK9#^q-`ny*3uJaDgsRVi#{4BR$!{I7_$^BW3sn8D8 zDZ8#E`KQB$wrjr(?Ae=T>&O?JBV!~Db2I-tmIAM9@$05Yp=`EQo@sde8243o#`pCV zX+Ai%Gz!jOe0QqD)00fraZ#9|LGsXgRai7u7e!h^9c(AySA2>pP{3(o+Df;QtAk$c zqbWq%X}@3so_sMjnlQ~P&v%7rc$`mXofQbSI;n90WCCkC%5v<5MeE8v8gBt2_}B zR}i17#W~J!hFXs-jd=Af{(DM0juE0X_G)JvJfP}d$$O8$(@GFn0EE7rukxZERA!4m zTQ-9r22=>s4q|h&pW*#g0cx!CxtLUkvJaBc391@V`S>w+1tM0S<^4rQaptdDNiKIM zW8!A`i}hp2PS_>{5@K@L9K1>?QYxvR%AbCbu(U{rQ5bR@-)#rtM9>L@+8`&fvLFpf zW2D*kx)1ahk)^h1mx;|iAAaRHlb!rzGDI3P!A?`eI=f8<`64-)stanjNyOm#Vn$lG z?kMD9rJQ@SW$;xLplKKFeSvtW*Fy%Fr>a$c>P=~se+A_@fdQy6LmBY9JJ?I^NJ9#! z#v4H0i*>Agb8Nu-$9oRnz=Wwyy5~|xc$MDM`)$R}obGRF;-V`=G(On*{)SV4mFFEC z5A*lVX#+9eKlH)#7Wj*5>F}nCI_U5O*4fvo-?*(>Xa>0 z5n+7aSRi=HG=E_ZuWt~nTw&g8nQ<1D*z9n7m$_gcr47M_u#b?U6fjdBw==T>DX}x3 z#d7ZOf`s4<;);AjAiUY6lpgWrr z8TBU)0%^(V+FSem=(Ki;xs$hUX6k90Op5|^CKszR`Hw&{jTm8$_YomAC4Y%2SIB;$ zI9r((Q3^=Q6SgogKlfM~t20x@M*=RurDdP1x$?gorMaG@{>-u+?g0TDnj;!9fBJFf z%O~3o^qb9%F8!T|=kmKou{4@Jl{aDf_!uOpBGzYNpN)(!Kvs^HfGKkq{@)rABP9tT z1s@@zo|1ZQ(9?DwJQGNIF1+Bu%Vzl0)N3MggS;~`77454+4*u?lpXnq>CoEertDxp zr3hCrU2}T#SwQ8BWNLMhHORJlmWG(R$d!vKErN-!NV;LSP<^tJ{oCYi6_N_THFX;! z4|wF(MmIfoE7yNxPvejxm;y2g;M#HH&RNBRLz9zTD2Hd$Akgg^v3ND!t7EB0KHAjx z+;3Mz30w#bi)xcg-Eb_5kMQApvB-FE=mJvNcpEKZ5qcMC{iqntJ8wMl@0nS?g9+f_ zAQ8X=^IFrjlWziI%R3yL78t7e-7QsxHH!WcHCLhUflVi z^svu*@6G%O5WD5;K-jSwH_%1lvdhR?iD#*(Cx-bOscmlwtV>Y0Ac60TSigp^Ae5!J zDwOvB5;G+6k+Lh#X`UZOgjLeh^}A+J4CvFw3~$qeFP1fTw)T(Fc5bmPX=uciN3(1lpJ87z=X~bHlLH55Jr#D!&&4a2HygTY^A;j(!Mify6Z|g+l!|e z(*?=<%Y1b1c_z(1)mOgs^uH%6eo3`2eB+h>CoeQ3*N9t8a2(PDyto%xl#tsLm-9s} z1i3^XWj-H%Hj70Q^6GYG?och`mQXxBlSSc$C&=bv$82%nudWrwrps&z%?}DmUTzMVM;__sHRYR`I)Jkjkw1qQsnklL%4iD{iuvPqEq^Pn*GR^{71vB zdn+MG?xxT6=_CsX{|_!8>BlCi&;3KLSYO?EPD4VRu`E*go*p!-&k-~JNcX>nayNeg z7+1cfQ)78E=-|7NM1PL{&eUSY$c)#kH&=f{-Dfh^^HcavHq`0Xj{Gd)0I?`c5Y$di zLU;PBzGkTkjyGx%mF2Q>$DcDPlG*IG&b2LXF-p*+aFcY zYLO@E#t*us6jdfM!|zvmOQfZbi0KMFuCAZHe6@upDDa%#q69sGd#-B$Z7WV6YUl1s z^J+@QlAfdgJt{Snnl7E-Url1^c1?NSgioXd*_)fU7nAfVCH?vYi! z#|dp*8b@%#MXl!-EHac&0D|~NW$dHR1`ujtN)yX(z% znP@A%97ZBFMhA;wSx!@*8mZpv3_|RllaB;q@K=ap%fA%vkLh7$b(A(t$7iyEJ}Ri{ zjg->(@zE6L!Nf{1mlJyRl3{L^rOuN5PnMMKgPALw?ocSA59hfO?uh^zGC<9+ty*_$ zN!KLJNV|C=`>}U4+B!gD#;WFxGfrW_yymbo&qo+GuVMSq&1s&xJ>Op*(sTRG;3m-I zbSIN$86Q=go;6zaPdQ;U+}SUzbMhl>N@jwLTf?&gmPZTl*9~W?R0)xaiAo_r2Drav zJ$;Ynuh1#vXpy@|b=+L}|IYaAtlM7nnyT)UY#8r|ie%H0l?amQwAW851T zRZY+)XVhI>uG5N3nFUdM%AWkGLc#)$__v$1m@!!0&z$r@k7Q)12fW~i*zDK9Y5yVL zMu;PPrrvVVN}q&vg$a^lUH(V+%}!Q96#KT@pxz4YjrT~#1N4@8-{@cs{pKxLaSslv zPQ`qm0K?sj-Kam+)97Jn_G+4^5L<&6n-LCx=~^5_$1PqrQo62@(GucJ-MOHCNy=hE zM{UOd3uz}#P910wpH;naSkZAw!428pP(E#PdTcb5Z!o(lDetiYaRtAoQIL|8yUT`F z;iF@SI#DwtW0rQ4D}5>qCe|Ll=#2;lMh6|P@eWs}Sk-f5(bR`nBe)oM*1sAIm){DJ z|Crbg*_*9f6QKHqIvVbm0mAZWa+&>2`zHmxY7NQf$@PI?RQ z(IMT>`z^a+S3UaH*qheL()R2-q3xJ;==X}rS8=mfJx};y;uH#j`hO&E8F5|p3FHTN z!0%#873r?VpoQCc)KsCXGCuet(=_s12;?+ZXQ&sb|{zQ&R8RWT(lxB2hPwk2u z_%uup8Gz3n%?GbLoX4v|U*nqY2V4(^Ic52@qK~u2^f&|17CqyYN;%Z}g4d z=<7gg#K6--*aBf=fXP@k1nd(pTj!_Sl;rqZAd|U$ao?iDNlqg+7b5~fS9OV*p-i?L zbm{T(wM9w2S|2r=1dt3-#<(rG*^6w>2y`_^=d6@xGxK^F9D`)wcEE;f0j4Bd7ou?W zsv!mQ6t8rPdbM$7^kauvS&Ompb5AB6-I;qouk`+nB(hXHoXqF8q*xu8E3#?=?nT*j zw>?t}F63iyITyxBkh}sJchpAWG3s$Mg!xjbDm~vRZYJoSNsCuVN<3}TT|jH$eFxq> zx5YY!QF=W0+WK&}r=+tWs3?JQ8d60yAOC@|M3?x7?9#qQ(c}r{)R3XZXi2#4rf4Nv z6T0yFll}dt8(R=;4LS;`UNljSj-q>|rqZ~y86ZjWidWz8z*ExQSV9)g)F zr{;`FfuuSe)>8dQu6ld1n*CJ02Dx_0Nv}MZdiygkY)4b0IDhmf+f^E7ih_o8^Sh_N zh^#2!C@3)+M|^eLuDvCsq7mD&551s8H3>_@=th(4B3&b9zjI0-5|5O2v0SnJ-DaE_ z(wo=Z$C?u&`_f0_aGQ-J#@CL7a={BiFU-B8m9J}*HnJG4e@MjdUu$b_lBhX4_uxv{Kj?niwP{^N*-LbgZ8ivq^59cS42T7C@80jO1Mjvbri& zpxnQyPH?Um^s-=C^p59SdSOr%Ti%H8L8CJinjFt_8ByFLIEF zE{aV!m=0VB!!{@CR@_yp^qw%SbzAgCrG!4tRL(A4rBevKosjJ3Q$ru`zn5uo-ssNv z9^!aMGK{qVj~T^hB9aPo;(a6_r?mP|HWcCqb*^A}v!Q!@5m~=jJwDK*Y8h)m##>`J z0aMl`y=>%7KOl^%RS%QmQc4wb(qpl~=mc4gItrXF32quba3YQ7g_jLdHLp|M6Q3Hs z3)NIyK2!X?AYLq2GF9ZX_HYz+Ou@I!Fi3Xc=d_z5mt39_wbFF_Hk^=4Zy_N)gj2oB)U!e`hldmhg{{dj2DWiFtEl zLDOuDCC4pz4$wFep4?&HXuqxM3NI)`Nx_!p0D+95-k7>Ulf_)1BadQT>3^nk-$DiEfO$PVIx^(O8OS83o7ecPepnzMuzX0@gJ{xA2a z?Xs+^zZF*C>>CQsv5{emJA?6SEH`Q14zGZ>Bx5-?5-mC(i(;GU!gOf;OA~cu@?SsG zt!ZhdYToM-wVQa7&FJj=87Adf?UO2R2y5*7v2U=h{Xx6W+)7L-nL<5> zh(MUb7lirTQcHp^ ze0!t$U$NLmFYx8HMmcrjPA%+gp@*uiN(aZvwCbQqEz-5%Z+crHb^m<&>+*}vg%qRJ z791Vyob$H!0`p*bPRp}YXAc>8d&YR}Umeh)v>)Q3c0ak%lYm#Wxaqw0>w08RlKF%s zv)g8uDZsO&n%lMO_Rr#zyX2@>fboTrSryla(z)0wU9z_JOBPPo*%LAWa4~Dv4I6K` z3dpr6I3dPhd;g94+&lH6*`OI>&>xRV*L&e%*e1{Fa5>_`s*&@}Z(Y&iaDV+;A$X*9 zcD4R@5zA87?<--SP_tn8d=e|0=gZnfh>|XX*IKRpZ+c8norfdH%O;LU79MP(x-f4r z@OzWA*HLNF69(ce3DAPrAopM{WzuzN_ zegOmTUEZL*8qv{|b@>B$!c`X$`riky&ZO7!-!`f5TY95Vp~+gb){B%jC7pQ)viYyK zYAZ8Qfq#>v*YS)mmj|so2^!A89_C6ymKt~&>RzCo8kT;qPfJ!B!#AgE)DD=5Q?5gj zwubiSX`Rt%-TnvRszCdD*<3MElkl%Qpzvs08ggQ|2I2?&>J_1zzo0 z^69zn1y=>-)qvHa((7XBdk4{<{%V&7wz%u8-zPHM*-dhJVwo;scjN9DyLzx9bdS&A zhS;`m-Am9Wn7De5s2I$ca2q&ZAL;hMVI-y~avJt4xVVG^MK784!4dc}jousa9PBfo zsR}%Nc47;hOQkr~ZLDd+?~3&+Kl(}wVGBjECv=F;3NkX8fBov=x;P8IH?dyqJ*Vqu zpPmN~=%Z9Dy1WBw^aCm15tFNq?D=6W5|s3wQ{V!iDcION%tT~j_>8-j8iE=6TNIGn zEmh871-&mVBhT+<3RAHC6xaoyJ2WZ9IXVyAM=b~q*DLHLI7`qXgV@g;o3EYPR&2?@ z+%+R=0qO$2$?R8&f9<08h1^xcLCB{x{4^(At7{w5JWQI^mWvwxbu+I*q}Z@4&m>cV z!~t>FH}mukx?C6E5kR#q8Th$$L3TGk|IR)tZ2AF%!|E}ZC=;K&jGE+%+2^)kv71I^ zasxAS7EoZ-zF2f?VT2TCK)shIL{)o!4$*d6S%pc>hb$c zg;q-W;0g!P5#&;WFEfNt0N8=kGYNTPrEdjylx{P)_NKI`pGSa7ZM`pw&Vj9y0hjQ? zKV);JPJaASsb+gL=6Kfj*{+tEN{Qfvz#u=+p!1pipLt*zPQoZ>!W7w2*TfL1Ht}J*K48gwzHq_w15__GVK3Ohu%7zRKtPk*fg7dWbCr3ryiL_E zBrGq7Gmv#tEA)%fJON&~eiZ`N;N-BG)<*P(m5;J3b!|WlvF!ibV8wuZ3~~}33*mot zhFxr_4i2dgD!`%Vh3uKdKC!M?ND!)WY%28l=mG&&iC$mJlTo;W9+q}*9wZ68EG#97 z(m=#VPD^^2QyAw-=t8L4t@Vq(Yl(MVcJ0PU$*G_bsn@fXa)TbJu`- zTm9d0<>W{R5qD(&SdoDUFGLx!wSZHGDgiY}zu_AS0}UJXVi{urK_e_et~nDq%Onc) zK4y`g=5u3zOTL?=ACaEl>(Ckn4b~#p%?vZt&NK(b`{7s+Ji*VsRH(dnaiyL?a2o}l{5sTpHRU%Ei$z{2H zF)l<16fy8Y(w?ioiSig9VR_0@R7{BYWy*tl8XfIs*EGr2aOr7P4?$4g-=Op>_< zyfQtw*svy-X?8~@aB<-{bVMC$K<`|ylS5V!g<}l(9RDmgDuh09#2yxBU2Kbl(04gv_jdWW@_(VHM)g(U>GKcerzu)G|ffD`0{ zw@(G0Uvo)Z4_P-%1f~>yY9KZ#{r(zuw;-+nKvDY`p~lT0tDMWtad1gkq#|G%VOL6u zsW1NZ+>w{5#g{4WP|KzIcaf6D$yyOYS;a~trjFcqoqxNEWaEz}fMa>mOqp}z1t{)w zaqgI_^Jap0bw@VAaNiNZ6Mz1DvI|Q!SYMgXVQ%4E5{-%n+;=Q6obHS7Z1u~W}5YksZK~ikn^(1{crthLiqxR#e{A#M`jnjK=s$R+-9N>eWPTW2O zMTkBjTz^i(3pQ{SK6NH+#9T;P!vfYC&qKihQ22RF(VqRqaIo{S?uRImc?N4Xowl!Q zk{z?lHYHhpu>l)4H*;6!sP6C-D8$QgK_s^vMxkNpQDYi z-*y1S!Vk6Ow4Jysj}sFdK2iO5djm_mO{O!>`D%DL%AiJP+Tw)xj=y*x)Q|9HmxsfgDhmPU+y_*n%1 z%AxiUhA1AebY?B*)ML@;E@o%X8Oi`DFB>oyFgk$6k!0U(g{XhCnJZUyn9-brTK9{| zs*waI3CDsbL3z_#kkSiA71p>yP0ivEU|tCdda*7n58$K@&998oH&SOau;dtj1EFlJ z7urYUWf%sY>2$=}X0YTGmXiR_TL1t6el}6zfkB0<00E1-4S=9gr9NRyvBYQl0ssI2 H00dcD1}=GC literal 0 HcmV?d00001 From 4054cc4b9c0654a28b0d7765427aa9dc0ca75649 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 24 Mar 2015 14:06:03 +0300 Subject: [PATCH 0702/2060] ncurses: Update to 5.9.20150321. Add workaround to link with libsystre library (gnurx) --- mingw-w64-ncurses/001-use-libsystre.patch | 14 ++++++++++++++ mingw-w64-ncurses/PKGBUILD | 18 ++++++++++++------ 2 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-ncurses/001-use-libsystre.patch diff --git a/mingw-w64-ncurses/001-use-libsystre.patch b/mingw-w64-ncurses/001-use-libsystre.patch new file mode 100644 index 0000000000..9acec64740 --- /dev/null +++ b/mingw-w64-ncurses/001-use-libsystre.patch @@ -0,0 +1,14 @@ +--- ncurses-5.9-20150321/configure.orig 2015-03-24 11:53:12.221966500 +0200 ++++ ncurses-5.9-20150321/configure 2015-03-24 11:53:18.504338200 +0200 +@@ -14915,6 +14915,11 @@ + if test `eval echo '${'$as_ac_Lib'}'` = yes; then + + cf_add_libs="-l$cf_regex_lib" ++case $host_os in #(vi ++mingw*) ++ cf_add_libs="$cf_add_libs -ltre -lintl -liconv" ++ ;; ++esac + # Filter out duplicates - this happens with badly-designed ".pc" files... + for cf_add_1lib in $LIBS + do diff --git a/mingw-w64-ncurses/PKGBUILD b/mingw-w64-ncurses/PKGBUILD index cc17584e74..127742d726 100644 --- a/mingw-w64-ncurses/PKGBUILD +++ b/mingw-w64-ncurses/PKGBUILD @@ -3,19 +3,25 @@ _realname=ncurses pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _base_ver=5.9 -_date_rev=20150110 +_date_rev=20150321 pkgver=${_base_ver}.${_date_rev} pkgrel=1 pkgdesc="System V Release 4.0 curses emulation library" arch=('any') -depends=("${MINGW_PACKAGE_PREFIX}-libgnurx") -makedepends=("${MINGW_PACKAGE_PREFIX}-libgnurx" "${MINGW_PACKAGE_PREFIX}-gcc") -#groups=("${MINGW_PACKAGE_PREFIX}") +depends=("${MINGW_PACKAGE_PREFIX}-libsystre") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") url="http://www.gnu.org/software/ncurses/" license=('MIT') options=('staticlibs' 'strip') -source=("${_realname}-${pkgver}.tar.gz"::http://invisible-island.net/datafiles/current/${_realname}.tar.gz) -md5sums=('30d78068f8cd0911575ec1cfec682d42') +source=("${_realname}-${pkgver}.tar.gz"::http://invisible-island.net/datafiles/current/${_realname}.tar.gz + 001-use-libsystre.patch) +md5sums=('9b017587092b9ef673e5ea72108791a1' + 'b669861903d0699b6535b7c6e028880d') + +prepare() { + cd $_realname-${_base_ver}-${_date_rev} + patch -p1 -i ${srcdir}/001-use-libsystre.patch +} build() { mkdir -p build-${MINGW_CHOST} From f73a0c3dd371d6d3bd41b422e78fc99a33ecc720 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 12:58:22 +0100 Subject: [PATCH 0703/2060] glib2: update to 2.44.0 --- mingw-w64-glib2/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 220dc565bc..dc79583b8a 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -3,7 +3,7 @@ _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.43.4 +pkgver=2.44.0 pkgrel=1 url="http://www.gtk.org/" arch=('any') @@ -28,7 +28,7 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.t 0024-return-actually-written-data-in-printf.all.patch 0027-no_sys_if_nametoindex.patch 0028-inode_directory.patch) -md5sums=('2f28879252c660a65aa3139ec499776b' +md5sums=('74cf7b4ea200b76e42a4c22c8daf0f93' '98c7778b5e8a30dbcdb86bcd15f9c11d' '6eb9d56028ea3bbec3d053254a00a04b' '46969e815f3ab19582ba33667a52048b' From 653c92042811b4d01efefef93f2069bd6a8e569f Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 13:03:07 +0100 Subject: [PATCH 0704/2060] gtk3: do not check gettext For some reason xgettext crashes when run from the configure script. Remove that check for now since anyway we know we have the right gettext. --- mingw-w64-gtk3/PKGBUILD | 7 +++++-- mingw-w64-gtk3/do-not-check-xgettext.patch | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-gtk3/do-not-check-xgettext.patch diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 0c4024d847..824e956d90 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -33,7 +33,8 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch 0054-no-transparency-for-children.all.patch 0055-skip-testsuite.all.patch - Make-reftest-plugins-W32-compatible.patch) + Make-reftest-plugins-W32-compatible.patch + do-not-check-xgettext.patch) md5sums=('11c97ce2527956e0ddb5ad5b236e4572' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' @@ -41,7 +42,8 @@ md5sums=('11c97ce2527956e0ddb5ad5b236e4572' 'ad383a497a9134355e0a549f844c3a33' '31d098e6856ddc8dde7259ae572f8bf1' '939ecf0b7c985e947c6bf48dfd3b8df0' - '864d4b2cd6f72115cc78a393ccd96b47') + '864d4b2cd6f72115cc78a393ccd96b47' + 'c345e55743b995f9bfcb0f67afd83d9c') prepare() { cd "${srcdir}/gtk+-${pkgver}" @@ -52,6 +54,7 @@ prepare() { patch -Np1 -i "${srcdir}"/0054-no-transparency-for-children.all.patch patch -Np1 -i "${srcdir}"/0055-skip-testsuite.all.patch #patch -Np1 -i "${srcdir}"/Make-reftest-plugins-W32-compatible.patch + patch -Np1 -i "${srcdir}"/do-not-check-xgettext.patch autoreconf -i } diff --git a/mingw-w64-gtk3/do-not-check-xgettext.patch b/mingw-w64-gtk3/do-not-check-xgettext.patch new file mode 100644 index 0000000000..101c5cb407 --- /dev/null +++ b/mingw-w64-gtk3/do-not-check-xgettext.patch @@ -0,0 +1,19 @@ +diff --git a/configure.ac b/configure.ac +index f7c6438..4b141ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -666,14 +666,6 @@ fi + ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`" + AM_GLIB_GNU_GETTEXT + +-AC_MSG_CHECKING([whether xgettext supports ui files]) +-if $ac_cv_path_XGETTEXT --output=- --language=Glade $srcdir/gtk/ui/gtkfilechooserwidget.ui > /dev/null 2>&1; then +- AC_MSG_RESULT([yes]) +-else +- AC_MSG_RESULT([no]) +- AC_MSG_ERROR([GNU gettext 0.18.3 or newer is required]) +-fi +- + LIBS="$LIBS $INTLLIBS" + AC_CONFIG_COMMANDS([po-properties], + [[case "$CONFIG_FILES" in *po-properties/Makefile.in*) From efeb62b3e801dec004ef6d17ed6c6d23c8abf5a4 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 13:05:18 +0100 Subject: [PATCH 0705/2060] gtksourceview3: update to version 3.16.0 --- mingw-w64-gtksourceview3/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gtksourceview3/PKGBUILD b/mingw-w64-gtksourceview3/PKGBUILD index ef31fefea3..da96670992 100644 --- a/mingw-w64-gtksourceview3/PKGBUILD +++ b/mingw-w64-gtksourceview3/PKGBUILD @@ -2,7 +2,7 @@ _realname=gtksourceview pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.14.3 +pkgver=3.16.0 pkgrel=1 pkgdesc="A text widget adding syntax highlighting and more to GNOME (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" options=(!libtool strip staticlibs) source=("http://ftp.gnome.org/pub/gnome/sources/gtksourceview/${pkgver%.*}/gtksourceview-${pkgver}.tar.xz" 0006-hack-convert-path-back-to-unix.patch) -md5sums=('ede804aed4cb19aed6ec9f08aa877052' +md5sums=('d4e3b50ed497d48b8fcf09e7ffa3d039' '324c9e3bb2e4fa2a4977653ce6ed6ef9') prepare() { From 94db5c1a1e2307e55509c467d44699021c857cb1 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 13:07:02 +0100 Subject: [PATCH 0706/2060] adwaita-icon-theme: update to version 3.16.0 --- mingw-w64-adwaita-icon-theme/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-adwaita-icon-theme/PKGBUILD b/mingw-w64-adwaita-icon-theme/PKGBUILD index c06ba7cf8d..58cb6c0725 100644 --- a/mingw-w64-adwaita-icon-theme/PKGBUILD +++ b/mingw-w64-adwaita-icon-theme/PKGBUILD @@ -2,7 +2,7 @@ _realname=adwaita-icon-theme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.15.1 +pkgver=3.16.0 pkgrel=1 pkgdesc="GNOME icon theme (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ options=(!libtool strip staticlibs) install=theme-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 0001-localedir-fix.patch) -sha256sums=('12a543f6e646a89601885b61e7f649af2757dd479af271c615d71f07b6c6d97a' +sha256sums=('a3c8ad3b099ca571b423811a20ee9a7a43498cfa04d299719ee43cd7af6f6eb1' '35b66334d0856bc44ef202c8df1bfa11f0be658b31b946ca49afe1c357c61adb') prepare() { From a944adcc6acc9022fe48a0a25de659b4dca33ac0 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 13:08:43 +0100 Subject: [PATCH 0707/2060] atk: update to version 2.16.0 --- mingw-w64-atk/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-atk/PKGBUILD b/mingw-w64-atk/PKGBUILD index 552e1fdc26..3029545175 100644 --- a/mingw-w64-atk/PKGBUILD +++ b/mingw-w64-atk/PKGBUILD @@ -3,7 +3,7 @@ _realname=atk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.15.4 +pkgver=2.16.0 pkgrel=1 pkgdesc="A library providing a set of interfaces for accessibility (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-glib2>=2.41.0") options=('strip' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/atk/${pkgver%.*}/${_realname}-$pkgver.tar.xz") -md5sums=('430879fbffe433af118a2eb9c3bd69bf') +md5sums=('c7c5002bd6e58b4723a165f1bf312116') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 78ed4f6e0107b1dda7fe65b949463a9886d4d75d Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 13:11:59 +0100 Subject: [PATCH 0708/2060] libpeas: update to version 1.14.0 --- mingw-w64-libpeas/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libpeas/PKGBUILD b/mingw-w64-libpeas/PKGBUILD index 7c3886b429..c85a2085d8 100644 --- a/mingw-w64-libpeas/PKGBUILD +++ b/mingw-w64-libpeas/PKGBUILD @@ -2,7 +2,7 @@ _realname=libpeas pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.13.0 +pkgver=1.14.0 pkgrel=1 pkgdesc="A GObject-based plugins engine (mingw-w64)" arch=('any') @@ -25,7 +25,7 @@ install=${_realname}-${CARCH}.install source=(http://download.gnome.org/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz 0002-give-cc-to-gir-scanner.all.patch 0003-localedir-fix.patch) -md5sums=('493c68b67fd45813c5161b5755a0c92a' +md5sums=('1347653703ba4d50dd746845c35d010a' 'b79cae8a6794dc2511f6fcceaa809111' 'ee5129050dae05733df41aec8cf36b40') From b55a844ffba2272a2daf0ed038369752245293c8 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 13:15:49 +0100 Subject: [PATCH 0709/2060] libgit2-glib: update to version 0.22.2 --- mingw-w64-libgit2-glib/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgit2-glib/PKGBUILD b/mingw-w64-libgit2-glib/PKGBUILD index d7bdf6b993..233c8e604f 100644 --- a/mingw-w64-libgit2-glib/PKGBUILD +++ b/mingw-w64-libgit2-glib/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgit2-glib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.0.24 +pkgver=0.22.2 pkgrel=1 arch=('any') pkgdesc="A glib wrapper library around the libgit2 git access library (mingw-w64)" @@ -17,7 +17,7 @@ options=('strip' 'staticlibs') license=("LGPL") url="https://wiki.gnome.org/Projects/Libgit2-glib" source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz") -sha256sums=('8a0a6f65d86f2c8cb9bcb20c5e0ea6fd02271399292a71fc7e6852f13adbbdb8') +sha256sums=('ca9ddc3b51dd421399e2a914ea87771a101ba2cb19146d92c93f8689f0a3eb12') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From d06c8590c0cf706da43e022a81005cee19817c85 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 14:47:55 +0100 Subject: [PATCH 0710/2060] libpeas: call the right update-icon-cache binary --- mingw-w64-libpeas/libpeas-i686.install | 2 +- mingw-w64-libpeas/libpeas-x86_64.install | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libpeas/libpeas-i686.install b/mingw-w64-libpeas/libpeas-i686.install index da50a72875..62459f29d3 100644 --- a/mingw-w64-libpeas/libpeas-i686.install +++ b/mingw-w64-libpeas/libpeas-i686.install @@ -1,5 +1,5 @@ post_install() { - mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/hicolor + mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/hicolor } post_upgrade() { diff --git a/mingw-w64-libpeas/libpeas-x86_64.install b/mingw-w64-libpeas/libpeas-x86_64.install index 4a2bb1bb75..f2f0233676 100644 --- a/mingw-w64-libpeas/libpeas-x86_64.install +++ b/mingw-w64-libpeas/libpeas-x86_64.install @@ -1,5 +1,5 @@ post_install() { - mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/hicolor + mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/hicolor } post_upgrade() { From b8e9695a0a4b0a39b3f8e38d9a84dcc99df2bc33 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 14:49:43 +0100 Subject: [PATCH 0711/2060] gedit: update to 3.16.0 --- mingw-w64-gedit/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gedit/PKGBUILD b/mingw-w64-gedit/PKGBUILD index 574d7290f8..dabc5e5129 100644 --- a/mingw-w64-gedit/PKGBUILD +++ b/mingw-w64-gedit/PKGBUILD @@ -2,7 +2,7 @@ _realname=gedit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.2 +pkgver=3.16.0 pkgrel=1 arch=('any') pkgdesc="A text editor for GNOME (mingw-w64)" @@ -26,7 +26,7 @@ license=("GPL") url="http://www.gnome.org" install=gedit-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz) -sha256sums=('e5174147180721485c4c3791628bfdc8452efbed120c6b6b2e4210299caf71c0') +sha256sums=('794647e9b3e3fdd062f8c59942e7517c429f5a7a7fb42e31f88dcc0b47db03cb') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 69e533c01bdcd24e333bd2807cefdb4649beb228 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 14:50:43 +0100 Subject: [PATCH 0712/2060] gedit-plugins: update to version 3.16.0 --- mingw-w64-gedit-plugins/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gedit-plugins/PKGBUILD b/mingw-w64-gedit-plugins/PKGBUILD index 9bada1e654..93d651476b 100644 --- a/mingw-w64-gedit-plugins/PKGBUILD +++ b/mingw-w64-gedit-plugins/PKGBUILD @@ -2,7 +2,7 @@ _realname=gedit-plugins pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.0 +pkgver=3.16.0 pkgrel=1 arch=('any') pkgdesc="Collection of plugins for the gedit Text Editor (mingw-w64)" @@ -20,7 +20,7 @@ license=("GPL") url="https://wiki.gnome.org/Apps/Gedit/ShippedPlugins" install=gedit-plugins-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz) -sha256sums=('ae0e45eeb7fbac6f5eb17c932d5ea32359ed7c399eabcb7a7878c6e4566b09aa') +sha256sums=('b685b84ada8ca04f6aa201e402a0208591be4a37b874595a0a85d0a14b52f191') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From cb6505ad07a2f5a95338b5ff5fc8bcea112a885a Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 14:52:39 +0100 Subject: [PATCH 0713/2060] gsettings-desktop-schemas: update to version 3.16.0 --- mingw-w64-gsettings-desktop-schemas/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gsettings-desktop-schemas/PKGBUILD b/mingw-w64-gsettings-desktop-schemas/PKGBUILD index 4fc1497e36..8f7807c949 100644 --- a/mingw-w64-gsettings-desktop-schemas/PKGBUILD +++ b/mingw-w64-gsettings-desktop-schemas/PKGBUILD @@ -2,7 +2,7 @@ _realname=gsettings-desktop-schemas pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.0 +pkgver=3.16.0 pkgrel=1 arch=('any') url="http://live.gnome.org/" @@ -13,7 +13,7 @@ license=('GPL') options=('strip' 'staticlibs') install=schemas-${CARCH}.install source=("http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz") -md5sums=('14df59945fc9027b303ecfa75200a0c9') +sha256sums=('26388d5b4d4ec1a345b2e382dff057ad9a216c50cc35bf54aa264c34280cb709') prepare() { cd "$srcdir/${_realname}-$pkgver" From d072c81c8da390dde01973169057a4daa6132b74 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 14:54:21 +0100 Subject: [PATCH 0714/2060] vala: update to version 0.28.0 --- mingw-w64-vala/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-vala/PKGBUILD b/mingw-w64-vala/PKGBUILD index b2f0dc3d67..fc2c3eec28 100644 --- a/mingw-w64-vala/PKGBUILD +++ b/mingw-w64-vala/PKGBUILD @@ -2,7 +2,7 @@ _realname=vala pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.27.1 +pkgver=0.28.0 pkgrel=1 pkgdesc="Compiler for the GObject type system (mingw-w64)" arch=('any') @@ -14,7 +14,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" depends=("${MINGW_PACKAGE_PREFIX}-glib2") source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-change-pkg-config-invocations.mingw.patch) -sha256sums=('0bce939c011c34478da840f869b3c24d02e8f1c92691c587c1fe289a5533cd77' +sha256sums=('0d9e3bd3f82145664875f7c29b2f544ba92d2814f75412948f774c0727fc977f' 'c588a3a69097aae30ada1d543001d5029865b1dd1f46132d9e60d12e1833b325') prepare() { From 34aa54dab82cff0a430af40f02317ae3155f71e9 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 24 Mar 2015 15:43:17 +0100 Subject: [PATCH 0715/2060] libpeas: fix crash on gc collect This was making gedit to crash when closing several tabs --- .../0004-fix-crash-on-gc-collect.patch | 43 +++++++++++++++++++ mingw-w64-libpeas/PKGBUILD | 7 ++- 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-libpeas/0004-fix-crash-on-gc-collect.patch diff --git a/mingw-w64-libpeas/0004-fix-crash-on-gc-collect.patch b/mingw-w64-libpeas/0004-fix-crash-on-gc-collect.patch new file mode 100644 index 0000000000..b4612517e1 --- /dev/null +++ b/mingw-w64-libpeas/0004-fix-crash-on-gc-collect.patch @@ -0,0 +1,43 @@ +diff --git a/loaders/python/peas-python-internal.py b/loaders/python/peas-python-internal.py +index 1f96ee1..029648f 100644 +--- a/loaders/python/peas-python-internal.py ++++ b/loaders/python/peas-python-internal.py +@@ -48,7 +48,6 @@ class Hooks(object): + sys.path.insert(0, PEAS_PYEXECDIR) + gettext.install(GETTEXT_PACKAGE, PEAS_LOCALEDIR) + +- self.__idle_gc = 0 + self.__module_cache = {} + self.__extension_cache = {} + +@@ -152,30 +151,17 @@ class Hooks(object): + module_gtypes[gtype] = None + return None + +- def __run_gc(self): +- gc.collect() +- +- self.__idle_gc = 0 +- return False +- + def garbage_collect(self): + # We run the GC right now and we schedule + # a further collection in the main loop + gc.collect() + +- if self.__idle_gc == 0: +- self.__idle_gc = GLib.idle_add(self.__run_gc) +- GLib.source_set_name_by_id(self.__idle_gc, '[libpeas] run_gc') +- + def all_plugins_unloaded(self): + pass + + def exit(self): + gc.collect() + +- if self.__idle_gc != 0: +- GLib.source_remove(self.__idle_gc) +- + + if os.getenv('PEAS_PYTHON_PROFILE') is not None: + import cProfile diff --git a/mingw-w64-libpeas/PKGBUILD b/mingw-w64-libpeas/PKGBUILD index c85a2085d8..d8321f87c8 100644 --- a/mingw-w64-libpeas/PKGBUILD +++ b/mingw-w64-libpeas/PKGBUILD @@ -24,15 +24,18 @@ options=('strip' 'staticlibs') install=${_realname}-${CARCH}.install source=(http://download.gnome.org/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz 0002-give-cc-to-gir-scanner.all.patch - 0003-localedir-fix.patch) + 0003-localedir-fix.patch + 0004-fix-crash-on-gc-collect.patch) md5sums=('1347653703ba4d50dd746845c35d010a' 'b79cae8a6794dc2511f6fcceaa809111' - 'ee5129050dae05733df41aec8cf36b40') + 'ee5129050dae05733df41aec8cf36b40' + '4c1889c21cd595c5ffa0c5c81387d7c8') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0002-give-cc-to-gir-scanner.all.patch patch -p1 -i ${srcdir}/0003-localedir-fix.patch + patch -p1 -i ${srcdir}/0004-fix-crash-on-gc-collect.patch autoreconf -fi } From 3e1d4958cc16acee6df671f2ec59b476bf62f037 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Tue, 24 Mar 2015 15:09:50 +0000 Subject: [PATCH 0716/2060] clang-svn: Updated Driver, still broken though --- .../0001-Add-Clang-MinGW-w64-driver.patch | 53 ++++++++++--------- .../0002-Fixup-all-windows-ARM-targets.patch | 2 +- mingw-w64-clang-svn/PKGBUILD | 8 +-- 3 files changed, 33 insertions(+), 30 deletions(-) diff --git a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch b/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch index 2d625d9c00..4d4e4053a7 100644 --- a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch +++ b/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch @@ -1,6 +1,6 @@ -From f0de404b5b83cc180f0f34471f8142071bdfbcd3 Mon Sep 17 00:00:00 2001 +From 7a45a58c7136fe48aacf85e2a98fb18d5aabd079 Mon Sep 17 00:00:00 2001 From: Martell Malone -Date: Fri, 20 Mar 2015 23:26:15 +0000 +Date: Tue, 24 Mar 2015 15:02:53 +0000 Subject: [PATCH] Add Clang MinGW-w64 driver This adds the MinGW-w64 driver to clang with the @@ -10,7 +10,7 @@ off of rubenvb's driver patch from January 2014. Update: March 2015: removed seh code as clang detects itself as of commit b27216c -Updated to the latest git + updated to head --- diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index 5a37a64..e7653e7 100644 @@ -40,6 +40,24 @@ index 412840b..8d88f96 100644 Phases.cpp SanitizerArgs.cpp Tool.cpp +diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp +index c619c8c..d3fe34f 100644 +--- a/lib/Driver/Driver.cpp ++++ b/lib/Driver/Driver.cpp +@@ -2073,12 +2073,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, + TC = new toolchains::Generic_GCC(*this, Target, Args); + break; + case llvm::Triple::GNU: +- // FIXME: We need a MinGW toolchain. Use the default Generic_GCC +- // toolchain for now as the default case would below otherwise. +- if (Target.isOSBinFormatELF()) +- TC = new toolchains::Generic_ELF(*this, Target, Args); +- else +- TC = new toolchains::Generic_GCC(*this, Target, Args); ++ TC = new toolchains::MinGW(*this, Target, Args); + break; + case llvm::Triple::Itanium: + TC = new toolchains::CrossWindowsToolChain(*this, Target, Args); diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp new file mode 100644 index 0000000..3b6901c @@ -237,24 +255,6 @@ index 0000000..3b6901c + + "/include/c++/" + GCCVersion + "/backward"); +#endif +} -diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index c619c8c..d3fe34f 100644 ---- a/lib/Driver/Driver.cpp -+++ b/lib/Driver/Driver.cpp -@@ -2073,12 +2073,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, - TC = new toolchains::Generic_GCC(*this, Target, Args); - break; - case llvm::Triple::GNU: -- // FIXME: We need a MinGW toolchain. Use the default Generic_GCC -- // toolchain for now as the default case would below otherwise. -- if (Target.isOSBinFormatELF()) -- TC = new toolchains::Generic_ELF(*this, Target, Args); -- else -- TC = new toolchains::Generic_GCC(*this, Target, Args); -+ TC = new toolchains::MinGW(*this, Target, Args); - break; - case llvm::Triple::Itanium: - TC = new toolchains::CrossWindowsToolChain(*this, Target, Args); diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h index 90893c3..e8d803e 100644 --- a/lib/Driver/ToolChains.h @@ -555,7 +555,7 @@ index 93a19fb..64158b5 100644 StringRef getARMFloatABI(const Driver &D, const llvm::opt::ArgList &Args, const llvm::Triple &Triple); diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp -index 9b4f7e5..d6b57de 100644 +index 9b4f7e5..101e6ad 100644 --- a/lib/Frontend/InitHeaderSearch.cpp +++ b/lib/Frontend/InitHeaderSearch.cpp @@ -82,11 +82,6 @@ public: @@ -606,8 +606,11 @@ index 9b4f7e5..d6b57de 100644 case llvm::Triple::CloudABI: { // //include SmallString<128> P = StringRef(HSOpts.ResourceDir); -@@ -320,28 +304,9 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, +@@ -318,30 +302,12 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, + case llvm::Triple::Win32: + switch (triple.getEnvironment()) { default: llvm_unreachable("Include management is handled in the driver."); ++ break; case llvm::Triple::Cygnus: AddPath("/usr/include/w32api", System, false); + AddPath("/usr/include", ExternCSystem, false); @@ -636,7 +639,7 @@ index 9b4f7e5..d6b57de 100644 break; } break; -@@ -352,6 +317,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, +@@ -352,6 +318,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, switch (os) { case llvm::Triple::CloudABI: case llvm::Triple::RTEMS: @@ -644,7 +647,7 @@ index 9b4f7e5..d6b57de 100644 break; default: AddPath("/usr/include", ExternCSystem, false); -@@ -418,26 +384,9 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp +@@ -418,26 +385,9 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.2"); break; case llvm::Triple::GNU: diff --git a/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch b/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch index 4245dfe94e..42c71de8f9 100644 --- a/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch +++ b/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch @@ -42,7 +42,7 @@ index a9611fe..396bd3f 100644 WindowsARMTargetInfo::getVisualStudioDefines(Opts, Builder); } }; -+} ++} // end anonymous namespace -// Windows ARM, MS (C++) ABI -class MicrosoftARMleTargetInfo : public WindowsARMTargetInfo { diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index c57e2e7731..f8584e5c8b 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -2,11 +2,11 @@ # Contributor: Ray Donnelly _realname=clang -pkgname=("${MINGW_PACKAGE_PREFIX}-lld-svn" - "${MINGW_PACKAGE_PREFIX}-${_realname}-svn" +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-analyzer-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-tools-extra-svn" #"${MINGW_PACKAGE_PREFIX}-compiler-rt-svn" + "${MINGW_PACKAGE_PREFIX}-lld-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn") #pkgname="${MINGW_PACKAGE_PREFIX}-llvm-toolchain-svn" @@ -36,8 +36,8 @@ md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - '85d6188c604f2048ee6f577280064a58' - 'c9993989d05e61aa967f0bc74736e69a') + 'c410d98df8f3436c905b1685c0c8defd' + '3a43f737b79f8d14e11bf1edfc1b85a2') pkgver_internal() { if [ ! -d "$1" ]; then From dce74f09fa481951d9eb9adc69d029aef9669dd4 Mon Sep 17 00:00:00 2001 From: David Macek Date: Tue, 24 Mar 2015 16:14:11 +0100 Subject: [PATCH 0717/2060] ntldd: New package - LRN's ldd for PE binaries --- mingw-w64-ntldd-git/PKGBUILD | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mingw-w64-ntldd-git/PKGBUILD diff --git a/mingw-w64-ntldd-git/PKGBUILD b/mingw-w64-ntldd-git/PKGBUILD new file mode 100644 index 0000000000..72fda12071 --- /dev/null +++ b/mingw-w64-ntldd-git/PKGBUILD @@ -0,0 +1,34 @@ +# Maintainer: David Macek + +_realname=ntldd +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=r6.fbb52f1 +pkgrel=1 +pkgdesc="Tracks dependencides in Windows PE binaries (mingw-w64)" +arch=('any') +url="https://github.com/LRN/ntldd" +license=("GPL3") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "git") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +source=("git+http://github.com/LRN/ntldd.git") +md5sums=('SKIP') + +pkgver() { + cd "${srcdir}/${_realname}" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +build() { + cd "${srcdir}/${_realname}" + ./makeldd.sh +} + +package() { + cd "${srcdir}/${_realname}" + install -Dm755 ntldd.exe "${pkgdir}${MINGW_PREFIX}/bin/ntldd.exe" + install -Dm644 libntldd.h "${pkgdir}${MINGW_PREFIX}/include/libntldd.h" + install -Dm644 libntldd.a "${pkgdir}${MINGW_PREFIX}/lib/libntldd.a" + install -Dm644 README "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/README" +} From ab0928c3280f159848f0d20e63c062ea63116557 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 24 Mar 2015 20:44:15 +0300 Subject: [PATCH 0718/2060] adwaita-icon-theme: Remove obsolete patch. --- .../0001-localedir-fix.patch | 77 ------------------- mingw-w64-adwaita-icon-theme/PKGBUILD | 9 +-- 2 files changed, 3 insertions(+), 83 deletions(-) delete mode 100644 mingw-w64-adwaita-icon-theme/0001-localedir-fix.patch diff --git a/mingw-w64-adwaita-icon-theme/0001-localedir-fix.patch b/mingw-w64-adwaita-icon-theme/0001-localedir-fix.patch deleted file mode 100644 index 6d5d1d8abd..0000000000 --- a/mingw-w64-adwaita-icon-theme/0001-localedir-fix.patch +++ /dev/null @@ -1,77 +0,0 @@ ---- a/m4/intltool.m4.orig 2014-08-15 23:20:04.371400000 +0400 -+++ b/m4/intltool.m4 2014-08-15 23:21:28.549000000 +0400 -@@ -155,31 +155,6 @@ - # Substitute ALL_LINGUAS so we can use it in po/Makefile - AC_SUBST(ALL_LINGUAS) - --# Set DATADIRNAME correctly if it is not set yet --# (copied from glib-gettext.m4) --if test -z "$DATADIRNAME"; then -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[]], -- [[extern int _nl_msg_cat_cntr; -- return _nl_msg_cat_cntr]])], -- [DATADIRNAME=share], -- [case $host in -- *-*-solaris*) -- dnl On Solaris, if bind_textdomain_codeset is in libc, -- dnl GNU format message catalog is always supported, -- dnl since both are added to the libc all together. -- dnl Hence, we'd like to go with DATADIRNAME=share -- dnl in this case. -- AC_CHECK_FUNC(bind_textdomain_codeset, -- [DATADIRNAME=share], [DATADIRNAME=lib]) -- ;; -- *) -- [DATADIRNAME=lib] -- ;; -- esac]) --fi --AC_SUBST(DATADIRNAME) -- - IT_PO_SUBDIR([po]) - - ]) ---- a/po/Makefile.in.in.orig 2014-08-15 23:15:13.750400000 +0400 -+++ b/po/Makefile.in.in 2014-08-15 23:19:03.934000000 +0400 -@@ -33,8 +33,7 @@ - datadir = @datadir@ - datarootdir = @datarootdir@ - libdir = @libdir@ --DATADIRNAME = @DATADIRNAME@ --itlocaledir = $(prefix)/$(DATADIRNAME)/locale -+localedir = @localedir@ - subdir = po - install_sh = @install_sh@ - # Automake >= 1.8 provides @mkdir_p@. -@@ -108,7 +107,7 @@ - install-data-yes: all - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ -+ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ -@@ -142,8 +141,8 @@ - uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - - check: all $(GETTEXT_PACKAGE).pot ---- adwaita-icon-theme-3.14.0/configure.ac.orig 2014-09-23 20:09:21.907400000 +0500 -+++ adwaita-icon-theme-3.14.0/configure.ac 2014-09-23 20:09:35.666600000 +0500 -@@ -13,7 +13,7 @@ - - GETTEXT_PACKAGE="${PACKAGE}" - AC_SUBST(GETTEXT_PACKAGE) --localedir='$(prefix)/$(DATADIRNAME)/locale' -+localedir='$(datarootdir)/locale' - AC_SUBST(localedir) - - # Workaround to make aclocal get the right flags diff --git a/mingw-w64-adwaita-icon-theme/PKGBUILD b/mingw-w64-adwaita-icon-theme/PKGBUILD index 58cb6c0725..f74c8c979d 100644 --- a/mingw-w64-adwaita-icon-theme/PKGBUILD +++ b/mingw-w64-adwaita-icon-theme/PKGBUILD @@ -15,15 +15,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" groups=("${MINGW_PACKAGE_PREFIX}-gnome") options=(!libtool strip staticlibs) install=theme-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz - 0001-localedir-fix.patch) -sha256sums=('a3c8ad3b099ca571b423811a20ee9a7a43498cfa04d299719ee43cd7af6f6eb1' - '35b66334d0856bc44ef202c8df1bfa11f0be658b31b946ca49afe1c357c61adb') +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz) +sha256sums=('a3c8ad3b099ca571b423811a20ee9a7a43498cfa04d299719ee43cd7af6f6eb1') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0001-localedir-fix.patch - autoreconf -fvi } build() { @@ -34,6 +30,7 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} + make } From e93e419627f4e2fbcd2092423ae50b427fda5018 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 24 Mar 2015 21:57:23 +0300 Subject: [PATCH 0719/2060] glib-networking: Update to 2.44.0 --- mingw-w64-glib-networking/PKGBUILD | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mingw-w64-glib-networking/PKGBUILD b/mingw-w64-glib-networking/PKGBUILD index 6b97d0b3eb..c12fcc17d0 100644 --- a/mingw-w64-glib-networking/PKGBUILD +++ b/mingw-w64-glib-networking/PKGBUILD @@ -2,13 +2,16 @@ _realname=glib-networking pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.42.0 +pkgver=2.44.0 pkgrel=1 pkgdesc="Network-related GIO modules for glib (mingw-w64)" arch=(any) url="http://ftp.gnome.org/pub/GNOME/sources/libsoup" license=("LGPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" "intltool") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" + "intltool") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libgcrypt" "${MINGW_PACKAGE_PREFIX}-gnutls" @@ -21,7 +24,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_rea 0001-dont-overwrite-prefix-remain-relative.mingw.patch 0001-hack-path.patch 0002-relative-system-ca-file.mingw.patch) -md5sums=('d1935e6974da7f39d265303c87a8389b' +md5sums=('6989b20cf3b26dd5ae272e04a9acb0b3' '6c55845f6c66fc8401915d1561b6872d' '5b72f575aee2cd8d7b30f580ebca4971' 'b96895469c4dc36e172056763aa0d014') @@ -45,6 +48,7 @@ build() { --without-gnome-proxy \ --with-ca-certificates=../ssl/certs/ca-bundle.crt \ --with-pkcs11 + make } From 8ab68a901cee2f46976764152349d33e774c2897 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 24 Mar 2015 21:58:18 +0300 Subject: [PATCH 0720/2060] libsoup: Update to 2.50.0 --- .../0002-fix-keyword-conflict.patch | 12 ---- .../0003-fix-missing-symbol.patch | 10 --- mingw-w64-libsoup/0004-localedir-fix.patch | 66 +++++++++++++++++++ mingw-w64-libsoup/PKGBUILD | 13 ++-- 4 files changed, 73 insertions(+), 28 deletions(-) delete mode 100644 mingw-w64-libsoup/0003-fix-missing-symbol.patch create mode 100644 mingw-w64-libsoup/0004-localedir-fix.patch diff --git a/mingw-w64-libsoup/0002-fix-keyword-conflict.patch b/mingw-w64-libsoup/0002-fix-keyword-conflict.patch index 299b131c90..c90c0d9a2a 100644 --- a/mingw-w64-libsoup/0002-fix-keyword-conflict.patch +++ b/mingw-w64-libsoup/0002-fix-keyword-conflict.patch @@ -60,15 +60,3 @@ diff -Naur libsoup-2.48.0-orig/libsoup/soup-content-sniffer.c libsoup-2.48.0/lib G_DEFINE_TYPE_WITH_CODE (SoupContentSniffer, soup_content_sniffer, G_TYPE_OBJECT, -diff -Naur libsoup-2.48.0-orig/libsoup/soup-server.h libsoup-2.48.0/libsoup/soup-server.h ---- libsoup-2.48.0-orig/libsoup/soup-server.h 2014-09-23 03:02:43.000000000 +0500 -+++ libsoup-2.48.0/libsoup/soup-server.h 2014-09-23 15:13:34.844000000 +0500 -@@ -80,7 +80,7 @@ - - SOUP_AVAILABLE_IN_2_48 - gboolean soup_server_listen (SoupServer *server, -- GSocketAddress *interface, -+ GSocketAddress *interface_name, - SoupServerListenOptions options, - GError **error); - SOUP_AVAILABLE_IN_2_48 diff --git a/mingw-w64-libsoup/0003-fix-missing-symbol.patch b/mingw-w64-libsoup/0003-fix-missing-symbol.patch deleted file mode 100644 index fbac28b249..0000000000 --- a/mingw-w64-libsoup/0003-fix-missing-symbol.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- libsoup-2.48.0/libsoup/libsoup-2.4.sym.orig 2014-09-23 17:36:58.531800000 +0500 -+++ libsoup-2.48.0/libsoup/libsoup-2.4.sym 2014-09-23 17:37:07.938600000 +0500 -@@ -348,7 +348,6 @@ - soup_server_get_async_context - soup_server_get_listener - soup_server_get_listeners --soup_server_get_gsocket - soup_server_get_port - soup_server_get_type - soup_server_get_uris diff --git a/mingw-w64-libsoup/0004-localedir-fix.patch b/mingw-w64-libsoup/0004-localedir-fix.patch new file mode 100644 index 0000000000..516bacea95 --- /dev/null +++ b/mingw-w64-libsoup/0004-localedir-fix.patch @@ -0,0 +1,66 @@ +--- a/po/Makefile.in.in 2012-01-18 16:37:06 +0000 ++++ b/po/Makefile.in.in 2013-05-12 17:12:40 +0000 +@@ -33,8 +33,7 @@ + datadir = @datadir@ + datarootdir = @datarootdir@ + libdir = @libdir@ +-DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +107,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +141,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot +--- a/m4/intltool.m4 2012-02-20 14:50:33 +0000 ++++ b/m4/intltool.m4 2013-05-12 17:12:40 +0000 +@@ -155,31 +155,6 @@ + # Substitute ALL_LINGUAS so we can use it in po/Makefile + AC_SUBST(ALL_LINGUAS) + +-# Set DATADIRNAME correctly if it is not set yet +-# (copied from glib-gettext.m4) +-if test -z "$DATADIRNAME"; then +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[]], +- [[extern int _nl_msg_cat_cntr; +- return _nl_msg_cat_cntr]])], +- [DATADIRNAME=share], +- [case $host in +- *-*-solaris*) +- dnl On Solaris, if bind_textdomain_codeset is in libc, +- dnl GNU format message catalog is always supported, +- dnl since both are added to the libc all together. +- dnl Hence, we'd like to go with DATADIRNAME=share +- dnl in this case. +- AC_CHECK_FUNC(bind_textdomain_codeset, +- [DATADIRNAME=share], [DATADIRNAME=lib]) +- ;; +- *) +- [DATADIRNAME=lib] +- ;; +- esac]) +-fi +-AC_SUBST(DATADIRNAME) +- + IT_PO_SUBDIR([po]) + + ]) diff --git a/mingw-w64-libsoup/PKGBUILD b/mingw-w64-libsoup/PKGBUILD index 5337314776..8a0ae7e9aa 100644 --- a/mingw-w64-libsoup/PKGBUILD +++ b/mingw-w64-libsoup/PKGBUILD @@ -2,7 +2,7 @@ _realname=libsoup pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.48.0 +pkgver=2.50.0 pkgrel=1 pkgdesc="HTTP client/server library (mingw-w64)" arch=(any) @@ -18,17 +18,17 @@ options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz" 0001-give-cc-to-gir-scanner.mingw.patch 0002-fix-keyword-conflict.patch - 0003-fix-missing-symbol.patch) -md5sums=('51ccb76f5262945e1f0316fdc46de567' + 0004-localedir-fix.patch) +md5sums=('9a84d66e1b7ccd3bd340574b11eccc15' 'a1ddc19ab3f73bbddda1d41a6a7de399' - '6b449ba6f360871f18577e6b3e90b8fe' - 'da12af3cca187a76f5493c120c4ed79f') + '48305a9372aa62df66f49271ce3eebb9' + 'ee2cc56c1448c32020288c817b81ff7f') prepare() { cd "$srcdir/${_realname}-$pkgver" patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.mingw.patch patch -p1 -i ${srcdir}/0002-fix-keyword-conflict.patch - patch -p1 -i ${srcdir}/0003-fix-missing-symbol.patch + patch -p1 -i ${srcdir}/0004-localedir-fix.patch autoreconf -fi } @@ -43,6 +43,7 @@ build() { --without-apache-module-dir \ --with-gnome \ --enable-introspection + make } From afbd53ecfd3c9c00d51c8db7415f464b5f7f26cb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 24 Mar 2015 22:07:46 +0300 Subject: [PATCH 0721/2060] geocode-glib: Update to 3.16.0 --- mingw-w64-geocode-glib/001-locale.patch | 10 ++++++++++ mingw-w64-geocode-glib/PKGBUILD | 8 ++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/mingw-w64-geocode-glib/001-locale.patch b/mingw-w64-geocode-glib/001-locale.patch index 6669f6dab9..1bce28f993 100644 --- a/mingw-w64-geocode-glib/001-locale.patch +++ b/mingw-w64-geocode-glib/001-locale.patch @@ -1,5 +1,15 @@ --- geocode-glib-3.13.3-orig/geocode-glib/geocode-glib.c 2014-06-25 00:37:44.000000000 +0200 +++ geocode-glib-3.13.3/geocode-glib/geocode-glib.c 2014-08-15 16:22:59.265705500 +0200 +@@ -25,7 +25,9 @@ + #include + #include + #include ++#ifndef __MINGW32__ + #include ++#endif + #include + + /** @@ -186,5 +186,9 @@ char * _geocode_object_get_lang (void) diff --git a/mingw-w64-geocode-glib/PKGBUILD b/mingw-w64-geocode-glib/PKGBUILD index c4c2945fd5..efc59cb2c9 100644 --- a/mingw-w64-geocode-glib/PKGBUILD +++ b/mingw-w64-geocode-glib/PKGBUILD @@ -2,7 +2,7 @@ _realname=geocode-glib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.0 +pkgver=3.16.0 pkgrel=1 arch=('any') pkgdesc="geocoding and reverse geocoding GLib library using Yahoo! Place Finder (mingw-w64)" @@ -14,7 +14,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-gtk-doc" + "gtk-doc" "make" "libtool" "automake-wrapper" @@ -26,8 +26,8 @@ source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_rea 001-locale.patch 002-symbols.patch 003-give-cc-to-gir-scanner.all.patch) -sha256sums=('a19b21a92b8cbfa29a5ae6616c2fdca8567e97480f7bb5c955905f6ae1c72010' - '3e694f9b07a989cfbd362a4c117cad8d873cbb202b912ecaa2ee409bfbb5168b' +sha256sums=('125f4838ac90c4e372a01f997a1ae34c873ee4ed87e04319986619dd26d86eb1' + '7379362319bab800b464ae4cf1d33e05f51bf500d8b0f65be63c05036f040c34' 'e7ddcaf273910b35b60991bf1db1d9dcff38bad09123dd43033cddcfbee224b2' '946437e815fc17ddcb4f4c7b52dd80bd1460363e37d211d97ac7ba5e32f49e9a') From 77cbce4fcea572afb404edac019a935a1fbbde46 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 24 Mar 2015 22:13:16 +0300 Subject: [PATCH 0722/2060] libgweather: Update to 3.16.0 --- mingw-w64-libgweather/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgweather/PKGBUILD b/mingw-w64-libgweather/PKGBUILD index 669304b7dc..d6985f9fa2 100644 --- a/mingw-w64-libgweather/PKGBUILD +++ b/mingw-w64-libgweather/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgweather pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.3 +pkgver=3.16.0 pkgrel=1 arch=('any') pkgdesc="GWeather shared library (mingw-w64)" @@ -23,7 +23,7 @@ url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch 002-localedir-fix.patch) -sha256sums=('04dd25064cdc7715c1bf5fc476c8596d640cbcb3551217867195cef16bbbbf6b' +sha256sums=('eacb755a95268bb65f6e027ec236de36fb0f486a8bb938e98e82377836373f74' '54aafa1ec47f818855cb8d17bb4f7f4458505a54b08c9fc51bfd4bbc1d6c37a2' '6677acc97b0322170339479df46435f14eb232df2d36e607029af3bd1f1a4eb0') From 6b06709e9c8d2c369b906bef16e73f4afee8a441 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 24 Mar 2015 23:41:27 +0300 Subject: [PATCH 0723/2060] cogl: Update to 1.20.0 --- mingw-w64-cogl/PKGBUILD | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/mingw-w64-cogl/PKGBUILD b/mingw-w64-cogl/PKGBUILD index 114e462402..60e1779f0f 100644 --- a/mingw-w64-cogl/PKGBUILD +++ b/mingw-w64-cogl/PKGBUILD @@ -2,31 +2,30 @@ _realname=cogl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.18.2 +pkgver=1.20.0 pkgrel=1 -pkgdesc="An object oriented GL/GLES Abstraction/Utility Layer. (mingw-w64)" +pkgdesc="An object oriented GL/GLES Abstraction/Utility Layer (mingw-w64)" arch=('any') url="http://www.clutter-project.org/" license=('GPL2') -makedepends=('automake' 'libtool' 'intltool' 'itstool' 'gtk-doc' 'gnome-doc-utils' 'yelp-tools' 'git') +makedepends=('automake' 'libtool' 'intltool' 'itstool' 'gtk-doc' 'gnome-doc-utils' 'yelp-tools') depends=("${MINGW_PACKAGE_PREFIX}-pango" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" ) options=(!libtool strip staticlibs) -source=(#http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-$pkgver.tar.xz - "git://git.gnome.org/$_realname#tag=${pkgver}" +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz "0001-msys2-fix-introspection-build.patch" "0002-windows-gl-headers.patch") -md5sums=('SKIP' +md5sums=('5b28897194d9ff76a574a9493d1f7ee0' '66134daa1df08ebfa143b12c08f3290e' '8686270ab5eae668eae11e2606aa7ce0') prepare() { - cd ${_realname} + cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-msys2-fix-introspection-build.patch patch -p1 -i ${srcdir}/0002-windows-gl-headers.patch - NOCONFIGURE=1 ./autogen.sh - #autoreconf -fi + + autoreconf -fiv } build() { @@ -34,7 +33,7 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ../${_realname}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -42,6 +41,7 @@ build() { --enable-shared \ --enable-silent-rules \ --disable-gtk-doc + make } From 61751dacc36963a8eb1ccf7bed8e98a27d59da76 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 24 Mar 2015 23:52:12 +0300 Subject: [PATCH 0724/2060] clutter: Update to 1.22.0 --- mingw-w64-clutter/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-clutter/PKGBUILD b/mingw-w64-clutter/PKGBUILD index fb52b6d08f..4cdb6afc8a 100644 --- a/mingw-w64-clutter/PKGBUILD +++ b/mingw-w64-clutter/PKGBUILD @@ -2,7 +2,7 @@ _realname=clutter pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.20.0 +pkgver=1.22.0 pkgrel=1 pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces. (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname} "0001-msys2-add-header-for-BOOL-defintion.patch" "0002-msys2-add-CC-flags-to-gir-scanner.patch") -md5sums=('a8a33a57a944c6d7c7c013ce9aa3222b' +md5sums=('788c488d795103e4c201fae1b032cb89' '3a92db8341129b0db058d47f97062f65' '993eabbeb6fa31af855a593956727e6f') From 280c6e192459f0f87c51ad15d237f35446743bf3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 00:11:00 +0300 Subject: [PATCH 0725/2060] libgee: Update to 0.18.0 --- mingw-w64-libgee/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgee/PKGBUILD b/mingw-w64-libgee/PKGBUILD index c8b7a15764..6d1802eb52 100644 --- a/mingw-w64-libgee/PKGBUILD +++ b/mingw-w64-libgee/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgee pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.16.1 +pkgver=0.18.0 pkgrel=1 arch=('any') pkgdesc="A collection library providing GObject-based interfaces and classes for commonly used data structures (mingw-w64)" @@ -15,7 +15,7 @@ options=('strip' 'staticlibs') license=("LGPL2+") url="https://wiki.gnome.org/Projects/Libgee" source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz") -sha256sums=('d95f8ea8e78f843c71b1958fa2fb445e4a325e4821ec23d0d5108d8170e564a5') +sha256sums=('4ad99ef937d071b4883c061df40bfe233f7649d50c354cf81235f180b4244399') prepare() { cd "${srcdir}"/${_realname}-${pkgver} @@ -34,6 +34,7 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib + make -j1 } From 19422d403d604d80d6daccb8063aefad0b3646a5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 09:54:26 +0300 Subject: [PATCH 0726/2060] exiv2: Rebuild. --- mingw-w64-exiv2/PKGBUILD | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mingw-w64-exiv2/PKGBUILD b/mingw-w64-exiv2/PKGBUILD index db2ebeea51..1f7e93bd70 100644 --- a/mingw-w64-exiv2/PKGBUILD +++ b/mingw-w64-exiv2/PKGBUILD @@ -2,10 +2,9 @@ # Contributor: Ray Donnelly _realname=exiv2 - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.24 -pkgrel=3 +pkgrel=4 pkgdesc="Exif and Iptc metadata manipulation library and tools (mingw-w64)" arch=('any') url="http://exiv2.org" @@ -38,7 +37,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-shared \ - --disable-static + --enable-static # Fix executables extensions sed -i 's|BINARY = $(BINSRC:.cpp=)|BINARY = $(BINSRC:.cpp=$(EXEEXT))|; @@ -54,5 +53,4 @@ package() { make || true cp src/.libs/localtime.o src/ make DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } From d0669fee3469038acb421b2618c0ca09bd5af84a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 09:54:44 +0300 Subject: [PATCH 0727/2060] gexiv2: Update to 0.10.3 --- mingw-w64-gexiv2/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gexiv2/PKGBUILD b/mingw-w64-gexiv2/PKGBUILD index a627d3d3fa..e4f3b6f6b7 100644 --- a/mingw-w64-gexiv2/PKGBUILD +++ b/mingw-w64-gexiv2/PKGBUILD @@ -2,8 +2,8 @@ _realname=gexiv2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.10.2 -pkgrel=2 +pkgver=0.10.3 +pkgrel=1 arch=('any') pkgdesc="GObject-based wrapper around the Exiv2 library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" @@ -18,7 +18,7 @@ license=("LGPL 2.1") url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch) -sha256sums=('2fd21f0ed5125e51d02226e7f41be751cfa8ae411a8ed1a651e16b06d79047b2' +sha256sums=('390cfb966197fa9f3f32200bc578d7c7f3560358c235e6419657206a362d3988' '1ba351119f9112ba649dd4397b712ee04d8327d5d056d3587f77c824f7846438') prepare() { @@ -39,6 +39,7 @@ build() { --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ --enable-introspection + make } From da1b35f6f1a164dc97b463121621a568a66393cd Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 09:55:07 +0300 Subject: [PATCH 0728/2060] glibmm: Update to 2.44.0 --- mingw-w64-glibmm/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-glibmm/PKGBUILD b/mingw-w64-glibmm/PKGBUILD index 6a4c9c4245..1e3059126d 100644 --- a/mingw-w64-glibmm/PKGBUILD +++ b/mingw-w64-glibmm/PKGBUILD @@ -2,8 +2,8 @@ _realname=glibmm pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.42.0 -pkgrel=2 +pkgver=2.44.0 +pkgrel=1 pkgdesc="Glib-- (glibmm) is a C++ interface for glib (mingw-w64)" arch=('any') url="http://www.gtkmm.org" @@ -12,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-libsigc++" "${MINGW_PACKAGE_PREFIX}-glib2") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/GNOME/sources/glibmm/${pkgver%.*}/glibmm-$pkgver.tar.xz") -sha256sums=('985083d97378d234da27a7243587cc0d186897a4b2d3c1286f794089be1a3397') +sha256sums=('1b0ac0425d24895507c0e0e8088a464c7ae2d289c47afa1c11f63278fc672ea8') prepare() { cd "${srcdir}"/${_realname}-${pkgver} @@ -28,6 +28,7 @@ build() { --enable-static \ --enable-shared \ --disable-documentation + make } From 1b1ac2322782242a153ae7c4617d0df6c8a97ad2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 10:15:08 +0300 Subject: [PATCH 0729/2060] pangomm: Update to 2.36.0 --- mingw-w64-pangomm/PKGBUILD | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mingw-w64-pangomm/PKGBUILD b/mingw-w64-pangomm/PKGBUILD index 59b9065741..00c77ea9b4 100644 --- a/mingw-w64-pangomm/PKGBUILD +++ b/mingw-w64-pangomm/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=pangomm - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.34.0 -pkgrel=2 +pkgver=2.36.0 +pkgrel=0 pkgdesc="C++ bindings for pango (mingw-w64)" arch=('any') url="http://gtkmm.sourceforge.net" @@ -13,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-cairomm" "${MINGW_PACKAGE_PREFIX}-glibmm" "${MINGW_PACKAGE_PREFIX}-pango") options=(staticlibs strip) source=("http://ftp.gnome.org/pub/GNOME/sources/pangomm/${pkgver%.*}/pangomm-$pkgver.tar.xz") -sha256sums=('0e82bbff62f626692a00f3772d8b17169a1842b8cc54d5f2ddb1fec2cede9e41') +sha256sums=('a8d96952c708d7726bed260d693cece554f8f00e48b97cccfbf4f5690b6821f0') prepare() { cd "$srcdir/pangomm-$pkgver" @@ -32,11 +31,11 @@ build() { --enable-shared \ --enable-static \ --disable-documentation + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } From f6644d71ed9148298e276ab7c65437886be8d36c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 10:16:02 +0300 Subject: [PATCH 0730/2060] gtkmm3: Update to 3.16.0 --- mingw-w64-gtkmm3/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gtkmm3/PKGBUILD b/mingw-w64-gtkmm3/PKGBUILD index 65d34b87f4..f1d0a76cf2 100644 --- a/mingw-w64-gtkmm3/PKGBUILD +++ b/mingw-w64-gtkmm3/PKGBUILD @@ -2,7 +2,7 @@ _realname=gtkmm3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.0 +pkgver=3.16.0 pkgrel=1 pkgdesc="C++ bindings for gtk3 (mingw-w64)" arch=('any') @@ -12,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-atkmm" "${MINGW_PACKAGE_PREFIX}-pangomm" "${MINGW_PACKAGE_PREFIX}-gtk3") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/GNOME/sources/gtkmm/${pkgver%.*}/gtkmm-$pkgver.tar.xz") -sha256sums=('d9f528a62c6ec226fa08287c45c7465b2dce5aae5068e9ac48d30a64a378e48b') +sha256sums=('9b8d4af5e1bb64e52b53bc8ef471ef43e1b9d11a829f16ef54c3a92985b0dd0c') build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" From aced418ecce93c13633667e6dceb8800002900af Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 10:37:06 +0300 Subject: [PATCH 0731/2060] json-glib: Update to 1.0.4 --- mingw-w64-json-glib/PKGBUILD | 14 ++++++------- mingw-w64-json-glib/fix-enums.patch | 31 ----------------------------- 2 files changed, 6 insertions(+), 39 deletions(-) delete mode 100644 mingw-w64-json-glib/fix-enums.patch diff --git a/mingw-w64-json-glib/PKGBUILD b/mingw-w64-json-glib/PKGBUILD index d938d53c52..1c854692f6 100644 --- a/mingw-w64-json-glib/PKGBUILD +++ b/mingw-w64-json-glib/PKGBUILD @@ -2,8 +2,8 @@ _realname=json-glib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.2 -pkgrel=2 +pkgver=1.0.4 +pkgrel=1 arch=('any') pkgdesc="JSON-GLib implements a full suite of JSON-related tools using GLib and GObject (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2") @@ -14,16 +14,13 @@ options=('strip' 'staticlibs') license=("LGPL2+") url="https://wiki.gnome.org/Projects/JsonGlib" source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz" - 0001-Give-CC-to-gir-scanner.patch - fix-enums.patch) -sha256sums=('887bd192da8f5edc53b490ec51bf3ffebd958a671f5963e4f3af32c22e35660a' - 'd3d789fcd1466dde7b42ffe200f699f508bdb477fbabac8c7e0d36703f17a747' - 'f44360c24df92da63d85d8465af28e433a3c5f53905296c1c26835a5f24907dc') + 0001-Give-CC-to-gir-scanner.patch) +sha256sums=('80f3593cb6bd13f1465828e46a9f740e2e9bd3cd2257889442b3e62bd6de05cd' + 'd3d789fcd1466dde7b42ffe200f699f508bdb477fbabac8c7e0d36703f17a747') prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -Np1 -i "${srcdir}/0001-Give-CC-to-gir-scanner.patch" - patch -Np1 -i "${srcdir}/fix-enums.patch" autoreconf -f -i } @@ -37,6 +34,7 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib + make } diff --git a/mingw-w64-json-glib/fix-enums.patch b/mingw-w64-json-glib/fix-enums.patch deleted file mode 100644 index fecaf5c6a7..0000000000 --- a/mingw-w64-json-glib/fix-enums.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/json-glib/json-enum-types.c.in b/json-glib/json-enum-types.c.in -index 8b82049..a2a13b4 100644 ---- a/json-glib/json-enum-types.c.in -+++ b/json-glib/json-enum-types.c.in -@@ -1,4 +1,5 @@ - /*** BEGIN file-header ***/ -+#include "config.h" - #include "json-enum-types.h" - /*** END file-header ***/ - -@@ -11,7 +12,8 @@ - - /*** BEGIN value-header ***/ - GType --@enum_name@_get_type(void) { -+@enum_name@_get_type (void) -+{ - static volatile gsize g_enum_type_id__volatile = 0; - - if (g_once_init_enter (&g_enum_type_id__volatile)) -@@ -26,9 +28,8 @@ GType - /*** BEGIN value-tail ***/ - { 0, NULL, NULL } - }; -- GType g_enum_type_id; - -- g_enum_type_id = -+ GType g_enum_type_id = - g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); - - g_once_init_leave (&g_enum_type_id__volatile, g_enum_type_id); From b70b9b2da120c9aa49f07dcc64a925f707842000 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 10:43:08 +0300 Subject: [PATCH 0732/2060] evince: Update to 3.16.0 --- mingw-w64-evince/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index c3b3cb0d86..ee97014bd0 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -2,7 +2,7 @@ _realname=evince pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.2 +pkgver=3.16.0 pkgrel=1 arch=('any') pkgdesc="Document (PostScript, PDF) viewer (mingw-w64)" @@ -32,7 +32,7 @@ url="http://www.gnome.org" install=evince-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-give-cc-to-gir-scanner.mingw.patch) -sha256sums=('4c591d0b879092a5f6c9140b75f15bdea3665a332e9b384957c453fd67bf0070' +sha256sums=('5138e2d05ccfe5e40df0c840b34f334c1f2bc03e5456aa954e64673d504ccd04' '2b704ea359fd73fb6ee905868b4b61246bb143cf783d7f970425a5236daa0686') prepare() { From de18574bd4f9a4069c3bef320f9c996a957ce863 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 11:45:22 +0300 Subject: [PATCH 0733/2060] gnome-icon-theme: Update to 3.12.0 --- .../0001-localedir-fix.patch | 77 +++++++++++++++++++ mingw-w64-gnome-icon-theme/PKGBUILD | 29 ++++--- mingw-w64-gnome-icon-theme/theme-i686.install | 7 +- .../theme-x86_64.install | 7 +- 4 files changed, 106 insertions(+), 14 deletions(-) create mode 100644 mingw-w64-gnome-icon-theme/0001-localedir-fix.patch diff --git a/mingw-w64-gnome-icon-theme/0001-localedir-fix.patch b/mingw-w64-gnome-icon-theme/0001-localedir-fix.patch new file mode 100644 index 0000000000..a2a4b5f35e --- /dev/null +++ b/mingw-w64-gnome-icon-theme/0001-localedir-fix.patch @@ -0,0 +1,77 @@ +--- a/configure.ac 2012-01-18 16:37:06 +0000 ++++ b/configure.ac 2013-05-12 17:12:40 +0000 +@@ -13,8 +13,6 @@ + + GETTEXT_PACKAGE="${PACKAGE}" + AC_SUBST(GETTEXT_PACKAGE) +-localedir='$(prefix)/$(DATADIRNAME)/locale' +-AC_SUBST(localedir) + + # Workaround to make aclocal get the right flags + AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}") +--- a/po/Makefile.in.in 2012-01-18 16:37:06 +0000 ++++ b/po/Makefile.in.in 2013-05-12 17:12:40 +0000 +@@ -33,8 +33,7 @@ + datadir = @datadir@ + datarootdir = @datarootdir@ + libdir = @libdir@ +-DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +107,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +141,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot +--- a/m4/intltool.m4 2012-02-20 14:50:33 +0000 ++++ b/m4/intltool.m4 2013-05-12 17:12:40 +0000 +@@ -155,31 +155,6 @@ + # Substitute ALL_LINGUAS so we can use it in po/Makefile + AC_SUBST(ALL_LINGUAS) + +-# Set DATADIRNAME correctly if it is not set yet +-# (copied from glib-gettext.m4) +-if test -z "$DATADIRNAME"; then +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[]], +- [[extern int _nl_msg_cat_cntr; +- return _nl_msg_cat_cntr]])], +- [DATADIRNAME=share], +- [case $host in +- *-*-solaris*) +- dnl On Solaris, if bind_textdomain_codeset is in libc, +- dnl GNU format message catalog is always supported, +- dnl since both are added to the libc all together. +- dnl Hence, we'd like to go with DATADIRNAME=share +- dnl in this case. +- AC_CHECK_FUNC(bind_textdomain_codeset, +- [DATADIRNAME=share], [DATADIRNAME=lib]) +- ;; +- *) +- [DATADIRNAME=lib] +- ;; +- esac]) +-fi +-AC_SUBST(DATADIRNAME) +- + IT_PO_SUBDIR([po]) + + ]) diff --git a/mingw-w64-gnome-icon-theme/PKGBUILD b/mingw-w64-gnome-icon-theme/PKGBUILD index 325795fe42..501c64c4da 100644 --- a/mingw-w64-gnome-icon-theme/PKGBUILD +++ b/mingw-w64-gnome-icon-theme/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=gnome-icon-theme - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.11.5 +pkgver=3.12.0 pkgrel=1 pkgdesc="GNOME icon theme (mingw-w64)" arch=('any') @@ -11,30 +10,36 @@ url="http://www.gnome.org" license=("GPL") makedepends=("intltool") depends=("${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" - "${MINGW_PACKAGE_PREFIX}-icon-naming-utils" - "${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-gnome-icon-theme-symbolic" - ) + "${MINGW_PACKAGE_PREFIX}-icon-naming-utils" + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-gnome-icon-theme-symbolic") groups=("${MINGW_PACKAGE_PREFIX}-gnome") options=(!libtool strip staticlibs) install=theme-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz) -sha256sums=('345dce06d4071f7c71b2659aa8834f70349a49fe8f91e6f0006606456dfeb230') +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 0001-localedir-fix.patch) +sha256sums=('359e720b9202d3aba8d477752c4cd11eced368182281d51ffd64c8572b4e503a' + 'bf568bb64316cc225ea32e27193639c678973b5f2e66f697e794699af08c62f1') + +prepare() { + cd ${srcdir}/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/0001-localedir-fix.patch + autoreconf -fiv +} build() { cd ${srcdir}/${_realname}-${pkgver} ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} + --host=${MINGW_CHOST} \ + --datarootdir=${MINGW_PREFIX}/share + make } package() { cd "${srcdir}/${_realname}-${pkgver}" make DESTDIR="$pkgdir" install - mkdir -p ${pkgdir}${MINGW_PREFIX}/lib - mv ${pkgdir}${MINGW_PREFIX}/share/pkgconfig ${pkgdir}${MINGW_PREFIX}/lib/ - mv ${pkgdir}${MINGW_PREFIX}/lib/locale ${pkgdir}${MINGW_PREFIX}/share/ rm -f "${pkgdir}${MINGW_PREFIX}/share/icons/gnome/icon-theme.cache" } diff --git a/mingw-w64-gnome-icon-theme/theme-i686.install b/mingw-w64-gnome-icon-theme/theme-i686.install index 704dd942d0..a8e97e8ff2 100644 --- a/mingw-w64-gnome-icon-theme/theme-i686.install +++ b/mingw-w64-gnome-icon-theme/theme-i686.install @@ -1,5 +1,10 @@ post_install() { - mingw32/bin/gtk-update-icon-cache -q -t -f /mingw32/share/icons/gnome + [[ -f mingw32/bin/gtk-update-icon-cache.exe ]] && { + mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/gnome + } + [[ -f mingw32/bin/gtk-update-icon-cache-3.0.exe ]] && { + mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/gnome + } } post_upgrade() { diff --git a/mingw-w64-gnome-icon-theme/theme-x86_64.install b/mingw-w64-gnome-icon-theme/theme-x86_64.install index c23e407459..a805535ee9 100644 --- a/mingw-w64-gnome-icon-theme/theme-x86_64.install +++ b/mingw-w64-gnome-icon-theme/theme-x86_64.install @@ -1,5 +1,10 @@ post_install() { - mingw64/bin/gtk-update-icon-cache -q -t -f /mingw64/share/icons/gnome + [[ -f mingw64/bin/gtk-update-icon-cache.exe ]] && { + mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/gnome + } + [[ -f mingw64/bin/gtk-update-icon-cache-3.0.exe ]] && { + mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/gnome + } } post_upgrade() { From 3751c703e8e5ec5e348d7ac758d5ecabf3c034d0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 11:50:16 +0300 Subject: [PATCH 0734/2060] gobject-introspection: WIP updating to 1.44.0 --- .../0060-LRN.patch | 230 ++++++++++++++++++ mingw-w64-gobject-introspection/PKGBUILD | 15 +- 2 files changed, 239 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-gobject-introspection/0060-LRN.patch diff --git a/mingw-w64-gobject-introspection/0060-LRN.patch b/mingw-w64-gobject-introspection/0060-LRN.patch new file mode 100644 index 0000000000..2cdb5c90b0 --- /dev/null +++ b/mingw-w64-gobject-introspection/0060-LRN.patch @@ -0,0 +1,230 @@ +@@ -, +, @@ + =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= + Makefile-gir.am | 2 +- + Makefile-giscanner.am | 5 +++++ + Makefile-tools.am | 14 ++++++++++++-- + Makefile.am | 17 +++++++++-------- + Makefile.introspection | 2 +- + common.mk | 2 +- + giscanner/scannermain.py | 4 ++-- + giscanner/utils.py | 33 ++++++++++++++++++++++++++++++++- + misc/g-ir-scanner-w32-wrapper | 37 +++++++++++++++++++++++++++++++++++++ + tools/g-ir-scanner.in | 2 +- + 10 files changed, 101 insertions(+), 17 deletions(-) + create mode 100644 misc/g-ir-scanner-w32-wrapper +--- a/Makefile-gir.am ++++ a/Makefile-gir.am +@@ -87,7 +87,7 @@ endif + + BUILT_GIRSOURCES += GLib-2.0.gir + +-GLib-2.0.gir: g-ir-scanner g-ir-compiler$(EXEEXT) ++GLib-2.0.gir: g-ir-scanner-build g-ir-compiler$(EXEEXT) + + gir/DBusGLib-1.0.typelib: GObject-2.0.gir + +--- a/Makefile-giscanner.am ++++ a/Makefile-giscanner.am +@@ -129,3 +129,8 @@ _giscanner_la_LDFLAGS += \ + endif + + _giscanner_la_SOURCES = giscanner/giscannermodule.c ++ ++if OS_WIN32 ++wrapperdir = $(pkglibdir) ++wrapper_SCRIPTS = misc/g-ir-scanner-w32-wrapper ++endif +--- a/Makefile-tools.am ++++ a/Makefile-tools.am +@@ -10,7 +10,12 @@ EXTRA_DIST += \ + tools/g-ir-annotation-tool.in \ + tools/g-ir-doc-tool.in + +-TOOL_SUBSTITUTIONS = sed -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON\@,$(PYTHON), ++TOOL_SUBSTITUTIONS = sed -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON\@,$(PYTHON), -e "s,@G_IR_SCANNER_W32_WRAPPER\@,$(G_IR_SCANNER_W32_WRAPPER)," ++if OS_WIN32 ++TOOL_SUBSTITUTIONS_BUILD = sed -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON\@,$(PYTHON), -e "s,@G_IR_SCANNER_W32_WRAPPER\@,$(abs_top_srcdir)/misc/g-ir-scanner-w32-wrapper ," ++else ++TOOL_SUBSTITUTIONS_BUILD = sed -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON\@,$(PYTHON), -e s,@G_IR_SCANNER_W32_WRAPPER\@,, ++endif + + g-ir-scanner: tools/g-ir-scanner.in _giscanner.la Makefile + $(AM_V_GEN) $(TOOL_SUBSTITUTIONS) $< > $@.tmp && mv $@.tmp $@ +@@ -24,6 +29,11 @@ g-ir-doc-tool: tools/g-ir-doc-tool.in _giscanner.la Makefile + $(AM_V_GEN) $(TOOL_SUBSTITUTIONS) $< > $@.tmp && mv $@.tmp $@ + @chmod a+x $@ + ++g-ir-scanner-build: tools/g-ir-scanner.in _giscanner.la Makefile ++ $(AM_V_GEN) $(TOOL_SUBSTITUTIONS_BUILD) $< > $@.tmp && mv $@.tmp $@ ++ @chmod a+x $@ ++ @chmod a+x $(top_srcdir)/misc/g-ir-scanner-w32-wrapper ++ + g_ir_compiler_SOURCES = tools/compiler.c + g_ir_compiler_CPPFLAGS = -DGIREPO_DEFAULT_SEARCH_PATH="\"$(libdir)\"" \ + -I$(top_srcdir)/girepository +@@ -46,4 +56,4 @@ GCOVSOURCES = \ + $(g_ir_compiler_SOURCES) \ + $(g_ir_generate_SOURCES) + +-CLEANFILES += g-ir-scanner g-ir-annotation-tool g-ir-doc-tool ++CLEANFILES += g-ir-scanner g-ir-scanner-build g-ir-annotation-tool g-ir-doc-tool +--- a/Makefile.am ++++ a/Makefile.am +@@ -47,14 +47,15 @@ m4_DATA = m4/introspection.m4 + makedir = $(datadir)/gobject-introspection-1.0 + dist_make_DATA = Makefile.introspection + +-EXTRA_DIST += \ +- COPYING.LGPL \ +- COPYING.GPL \ +- CONTRIBUTORS \ +- $(pkgconfig_DATA) \ +- $(man_MANS) \ +- $(m4_DATA) \ +- misc/pep8.py \ ++EXTRA_DIST += \ ++ COPYING.LGPL \ ++ COPYING.GPL \ ++ CONTRIBUTORS \ ++ $(pkgconfig_DATA) \ ++ $(man_MANS) \ ++ $(m4_DATA) \ ++ misc/g-ir-scanner-w32-wrapper \ ++ misc/pep8.py \ + misc/pyflakes.py + + # Default pep8.py --exclude + emacs backup files +--- a/Makefile.introspection ++++ a/Makefile.introspection +@@ -146,7 +146,7 @@ $(1): $$($(_gir_name)_FILES) + $($(_gir_name)_CFLAGS) \ + --cflags-end \ + $($(_gir_name)_LDFLAGS) \ +- $$^ \ ++ --files-begin $$^ \ + --output $(1) + endef + +--- a/common.mk ++++ a/common.mk +@@ -13,7 +13,7 @@ INTROSPECTION_SCANNER = \ + PYTHONPATH=$(top_builddir):$(top_srcdir) \ + UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \ + UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \ +- $(top_builddir)/g-ir-scanner ++ $(top_builddir)/g-ir-scanner-build + + INTROSPECTION_SCANNER_ARGS = \ + --verbose \ +--- a/giscanner/scannermain.py ++++ a/giscanner/scannermain.py +@@ -468,10 +468,10 @@ def write_output(data, options): + except IOError as e: + _error("while writing output: %s" % (e.strerror, )) + +- + def scanner_main(args): ++ loaded_args = utils.maybe_load_args_from_file(args) + parser = _get_option_parser() +- (options, args) = parser.parse_args(args) ++ (options, args) = parser.parse_args(loaded_args) + + if options.passthrough_gir: + passthrough_gir(options.passthrough_gir, sys.stdout) +--- a/giscanner/utils.py ++++ a/giscanner/utils.py +@@ -22,7 +22,7 @@ import re + import os + import subprocess + import platform +- ++import shlex + + _debugflags = None + +@@ -75,6 +75,37 @@ def to_underscores_noprefix(name): + return name + + ++def load_args_from_file(filename): ++ with open(filename, 'rb') as source: ++ return shlex.split(source.read()) ++ ++def maybe_load_args_from_file(args): ++ processed_args = [] ++ skip = False ++ is_input_file = False ++ argfilelen = len('--argfile=') ++ for argn, arg in enumerate(args): ++ if skip: ++ processed_args.append(arg) ++ continue ++ elif arg == '--': ++ skip = True ++ processed_args.append(arg) ++ continue ++ if is_input_file: ++ processed_args.extend(load_args_from_file(arg)) ++ is_input_file = False ++ continue ++ if arg == '--argfile' and argn + 1 < len(args): ++ is_input_file = True ++ continue ++ elif arg.startswith('--argfile=') and len(arg) > argfilelen: ++ processed_args.extend(load_args_from_file(arg[argfilelen:])) ++ continue ++ processed_args.append(arg) ++ return processed_args ++ ++ + _libtool_pat = re.compile("dlname='([A-z0-9\.\-\+]+)'\n") + + +--- a/misc/g-ir-scanner-w32-wrapper ++++ a/misc/g-ir-scanner-w32-wrapper +@@ -0,0 +1,37 @@ ++#!/bin/sh ++# This script is a w32 wrapper for g-ir-scanner, ++# it will put all arguments after "--files-begin" into a tempfile ++# and replace them with --argfile before invoking g-ir-scanner ++ ++new_args= ++while (( "$#" )); do ++ if test "x$1" == "x--files-begin" ++ then ++ shift ++ break ++ else ++ echo "$1" | grep -e '[^\] ' &>/dev/null ++ space_check=$? ++ if test "x$space_check" == "x0" ++ then ++ new_args="$new_args \"$1\"" ++ else ++ new_args="$new_args $1" ++ fi ++ fi ++ shift ++done ++ ++argfile=$(mktemp) ++for x in $* ++do ++ # this is more compatible (if slower) than calling cygpath ++ dosedx=$(cmd //C echo $x) ++ echo -n "$dosedx " >>$argfile ++done ++ ++$new_args --argfile $argfile ++result=$? ++rm -f $argfile ++ ++exit $result +--- a/tools/g-ir-scanner.in ++++ a/tools/g-ir-scanner.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!@G_IR_SCANNER_W32_WRAPPER@@PYTHON@ + # -*- Mode: Python -*- + # GObject-Introspection - a framework for introspecting GObject libraries + # Copyright (C) 2008 Johan Dahlin diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index 35f7003370..312bc7543b 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -2,8 +2,8 @@ _realname=gobject-introspection pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.42.0 -pkgrel=3 +pkgver=1.44.0 +pkgrel=1 pkgdesc="GObject Introspection can scan C header and source files in order to generate introspection typelib files (mingw-w64)" arch=('any') url="https://live.gnome.org/GObjectIntrospection" @@ -22,14 +22,16 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${pkgver%.* 0021-tests-no-undefined.patch 0022-change-pkg-config-invocations.mingw.patch 0050-dont-load-msvcrt.patch - 0055-fix-python-detection.patch) + 0055-fix-python-detection.patch + 0060-LRN.patch) -md5sums=('4fa52f6b67367d9c1b99b98683ced202' +md5sums=('7ef8a1db7f74f4193a2397b1587eb913' 'f0ecde986ebf1f0e28b752f9c36fb6c1' '69ef34e2f57abc8afe1b9f6fa3786e97' '8d3589fb959a0a68ce7ce9051fa441fe' 'e3598d539258678eef8dde2216419faf' - '6d809bf266e42a20b31a7acbaf0384d1') + '6d809bf266e42a20b31a7acbaf0384d1' + '1dfd956934a6532a5a66d2b251019a36') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -38,6 +40,7 @@ prepare() { patch -p1 -i ${srcdir}/0022-change-pkg-config-invocations.mingw.patch patch -p1 -i ${srcdir}/0050-dont-load-msvcrt.patch patch -p1 -i ${srcdir}/0055-fix-python-detection.patch + patch -p1 -i ${srcdir}/0060-LRN.patch autoreconf -fi } @@ -58,5 +61,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' -o -name '*.manifest' | xargs -rtl1 rm + } From 69d3683cfdb6cab67e41077e1d120cbad4a48366 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 12:24:32 +0300 Subject: [PATCH 0735/2060] libgit2: Update to 0.22.2 --- mingw-w64-libgit2/002-windows-headers.patch | 15 +++++++++++ mingw-w64-libgit2/PKGBUILD | 28 ++++++++++----------- 2 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 mingw-w64-libgit2/002-windows-headers.patch diff --git a/mingw-w64-libgit2/002-windows-headers.patch b/mingw-w64-libgit2/002-windows-headers.patch new file mode 100644 index 0000000000..499803fa2a --- /dev/null +++ b/mingw-w64-libgit2/002-windows-headers.patch @@ -0,0 +1,15 @@ +--- libgit2-0.22.2/src/openssl_stream.c.orig 2015-03-25 11:59:25.797000000 +0300 ++++ libgit2-0.22.2/src/openssl_stream.c 2015-03-25 12:03:30.654600000 +0300 +@@ -9,8 +9,12 @@ + + #include + #include ++#ifdef _WIN32 ++#include ++#else + #include + #include ++#endif + + #include "global.h" + #include "posix.h" diff --git a/mingw-w64-libgit2/PKGBUILD b/mingw-w64-libgit2/PKGBUILD index eec631eeff..e45e93c73b 100644 --- a/mingw-w64-libgit2/PKGBUILD +++ b/mingw-w64-libgit2/PKGBUILD @@ -2,32 +2,30 @@ _realname=libgit2 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=0.21.5 +pkgver=0.22.2 pkgrel=1 pkgdesc='A linkable library for Git (mingw-w64)' arch=('any') url='https://github.com/libgit2/libgit2' license=('GPL2' 'custom') -_pkgfqn=v${pkgver}.tar.gz -source=("https://github.com/libgit2/libgit2/archive/${_pkgfqn}" - 001-fix-pkg-config.patch) -md5sums=('6f1d64b2d50239f0c518cb45fbe3da4a' - '341f5b8f48d1a489b157dc5300628960') options=('strip') depends=("${MINGW_PACKAGE_PREFIX}-http-parser" - "${MINGW_PACKAGE_PREFIX}-libssh2" - "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-zlib") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" 'p7zip') - -noextract=(${_pkgfqn}) + "${MINGW_PACKAGE_PREFIX}-libssh2" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") +_pkgfqn=v${pkgver}.tar.gz +source=("https://github.com/libgit2/libgit2/archive/${_pkgfqn}" + 001-fix-pkg-config.patch + 002-windows-headers.patch) +md5sums=('7b21448c471dc76a3ca4801b61ac856a' + '341f5b8f48d1a489b157dc5300628960' + '0ce56d74377548c04434ed50bf3c6aa7') prepare() { - cd ${srcdir} - msg "Extracting ${_pkgfqn} due to git folder tag" - 7z x "$startdir/${_pkgfqn}" -so | 7z x -aoa -si -ttar -o"${srcdir}" cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-fix-pkg-config.patch + patch -p1 -i ${srcdir}/002-windows-headers.patch } build() { From 26b5e1af7ebf53b86d672b2366c9cdd67feb2f0b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 12:46:33 +0300 Subject: [PATCH 0736/2060] gtk3: Fix dependencies. --- mingw-w64-gtk3/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 824e956d90..32becd7e5d 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.0 -pkgrel=1 +pkgrel=2 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -24,6 +24,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-glib2>=2.43.4" "${MINGW_PACKAGE_PREFIX}-json-glib" "${MINGW_PACKAGE_PREFIX}-pango>=1.36.7" + "${MINGW_PACKAGE_PREFIX}-libepoxy" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" From 79980b500c7117b96ab92b9b0b762ec5ade69bb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98ystein=20Krog?= Date: Thu, 19 Mar 2015 09:58:46 +0100 Subject: [PATCH 0737/2060] ffms2: Add package --- mingw-w64-ffms2/PKGBUILD | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 mingw-w64-ffms2/PKGBUILD diff --git a/mingw-w64-ffms2/PKGBUILD b/mingw-w64-ffms2/PKGBUILD new file mode 100644 index 0000000000..d4b928b6ff --- /dev/null +++ b/mingw-w64-ffms2/PKGBUILD @@ -0,0 +1,39 @@ +_realname=ffms2 +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=2.20 +pkgrel=1 +pkgdesc="A cross-platform wrapper library around libav/FFmpeg" +arch=('any') +url="https://github.com/FFMS/ffms2/" +groups=("${MINGW_PACKAGE_PREFIX}") +license=('MIT') +options=('staticlibs' 'strip') +depends=("${MINGW_PACKAGE_PREFIX}-ffmpeg") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +source=("https://github.com/FFMS/ffms2/archive/${pkgver}.tar.gz") +sha1sums=('bf09d8ed54e5aad86b352b4d335d29da016f2014') + +packagedir=${_realname}-${pkgver} + +prepare() { + cd "${srcdir}/${packagedir}" +} + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ../${packagedir}/configure \ + --prefix=${MINGW_PREFIX} \ + --host=${MINGW_CHOST} \ + --build=${CARCH%%-*} \ + --disable-debug \ + --disable-static \ + --enable-shared + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install +} From 9e2e9eed6e5c08bc1074313a297562af8aac3e79 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 15:57:48 +0300 Subject: [PATCH 0738/2060] ANGLE: Update to git commit 30d6c255d238c3064980a22f66fecf0ef9bb58d0 --- .../0000-General-fixes-for-ANGLE-2.1.patch | 477 +++++ ...pilation-for-MSVC-2008-and-std-tuple.patch | 31 - ...-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch | 33 - ...ix-compilation-with-MinGW-gcc-64-bit.patch | 35 - ...-to-link-ANGLE-statically-for-single.patch | 89 +- ...Fix-build-when-SSE2-is-not-available.patch | 77 - ...of-libGLESv2-with-older-MinGW-w64-he.patch | 53 - ...007-Make-DX9-DX11-mutually-exclusive.patch | 143 -- ...y-load-D3D-compiler-from-a-list-of-k.patch | 73 - ...y-load-D3D-compiler-from-a-list-or-t.patch | 64 + .../0009-ANGLE-Support-WinRT.patch | 1868 +++++++---------- ...able-D3D11-for-feature-level-9-cards.patch | 963 +++++---- ...ation-error-on-MinGW-caused-by-trace.patch | 37 - ...0012-ANGLE-fix-semantic-index-lookup.patch | 30 +- ...support-for-querying-platform-device.patch | 100 + ...Allow-for-universal-program-binaries.patch | 93 - ...internal-index-buffer-for-level-9-ha.patch | 256 --- ...e-multithreaded-devices-if-necessary.patch | 69 + ...15-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch | 533 +++++ ...0017-ANGLE-Fix-compilation-with-D3D9.patch | 62 + ...leasing-textures-after-we-kill-D3D11.patch | 106 + ...le-OS-from-GENERATOR-a-bit-for-MSYS2.patch | 6 +- ...r-.cpp-.h-to-libGLESv2-instead-of-co.patch | 237 --- .../D3DCompiler_43-i686.dll | Bin 2106216 -> 0 bytes .../D3DCompiler_43-x86_64.dll | Bin 2526056 -> 0 bytes mingw-w64-angleproject-git/PKGBUILD | 238 ++- ...gleproject-disable-debug-annotations.patch | 33 + .../angleproject-export-shader-symbols.patch | 71 +- ...angleproject-fix-mingw-compatibility.patch | 224 -- ...eproject-fix-renderer9-stencilformat.patch | 23 - .../angleproject-fix-trace_event.patch | 28 - ...lude-import-library-and-use-def-file.patch | 71 +- ...t-prevent-multiple-definition-errors.patch | 39 + .../angleproject-undo-shader-renames.patch | 162 ++ mingw-w64-angleproject-git/commit-409078f | 363 ++++ mingw-w64-angleproject-git/commit-4de44cb | 747 +++++++ mingw-w64-angleproject-git/libEGL_mingw32.def | 41 + .../libGLESv2_mingw32.def | 296 +++ 38 files changed, 4720 insertions(+), 3051 deletions(-) create mode 100644 mingw-w64-angleproject-git/0000-General-fixes-for-ANGLE-2.1.patch delete mode 100644 mingw-w64-angleproject-git/0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch delete mode 100644 mingw-w64-angleproject-git/0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch delete mode 100644 mingw-w64-angleproject-git/0003-Fix-compilation-with-MinGW-gcc-64-bit.patch delete mode 100644 mingw-w64-angleproject-git/0005-Fix-build-when-SSE2-is-not-available.patch delete mode 100644 mingw-w64-angleproject-git/0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch delete mode 100644 mingw-w64-angleproject-git/0007-Make-DX9-DX11-mutually-exclusive.patch delete mode 100644 mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch create mode 100644 mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t.patch delete mode 100644 mingw-w64-angleproject-git/0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch create mode 100644 mingw-w64-angleproject-git/0013-ANGLE-Add-support-for-querying-platform-device.patch delete mode 100644 mingw-w64-angleproject-git/0013-ANGLE-Allow-for-universal-program-binaries.patch delete mode 100644 mingw-w64-angleproject-git/0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch create mode 100644 mingw-w64-angleproject-git/0014-Let-ANGLE-use-multithreaded-devices-if-necessary.patch create mode 100644 mingw-w64-angleproject-git/0015-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch create mode 100644 mingw-w64-angleproject-git/0017-ANGLE-Fix-compilation-with-D3D9.patch create mode 100644 mingw-w64-angleproject-git/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch delete mode 100644 mingw-w64-angleproject-git/0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch delete mode 100644 mingw-w64-angleproject-git/D3DCompiler_43-i686.dll delete mode 100644 mingw-w64-angleproject-git/D3DCompiler_43-x86_64.dll create mode 100644 mingw-w64-angleproject-git/angleproject-disable-debug-annotations.patch delete mode 100644 mingw-w64-angleproject-git/angleproject-fix-mingw-compatibility.patch delete mode 100644 mingw-w64-angleproject-git/angleproject-fix-renderer9-stencilformat.patch delete mode 100644 mingw-w64-angleproject-git/angleproject-fix-trace_event.patch create mode 100644 mingw-w64-angleproject-git/angleproject-prevent-multiple-definition-errors.patch create mode 100644 mingw-w64-angleproject-git/angleproject-undo-shader-renames.patch create mode 100644 mingw-w64-angleproject-git/commit-409078f create mode 100644 mingw-w64-angleproject-git/commit-4de44cb create mode 100644 mingw-w64-angleproject-git/libEGL_mingw32.def create mode 100644 mingw-w64-angleproject-git/libGLESv2_mingw32.def diff --git a/mingw-w64-angleproject-git/0000-General-fixes-for-ANGLE-2.1.patch b/mingw-w64-angleproject-git/0000-General-fixes-for-ANGLE-2.1.patch new file mode 100644 index 0000000000..ad3187ec7c --- /dev/null +++ b/mingw-w64-angleproject-git/0000-General-fixes-for-ANGLE-2.1.patch @@ -0,0 +1,477 @@ +From bd27c33a4a7c48bd14b9b6c18c8cdce1c3aae155 Mon Sep 17 00:00:00 2001 +From: Andrew Knight +Date: Fri, 14 Nov 2014 10:53:40 +0200 +Subject: [PATCH] General fixes for ANGLE 2.1 + +- Fix commit.h include (use hard-coded version) +- Fix export mismatch in libEGL.cpp and libGLESv2.cpp +- Normalize all precompiled shader names and includes +- Remove third-party event tracing; it was hardly used in ANGLE + and not enabled in Qt builds anyway. + +Change-Id: I22254aed62e89a26756ca0784bae95909189c0f9 +--- + src/3rdparty/angle/src/commit.h | 6 +- + src/3rdparty/angle/src/common/version.h | 2 +- + .../src/common/winrt/CoreWindowNativeWindow.cpp | 2 +- + src/3rdparty/angle/src/libEGL/libEGL.cpp | 3 + + src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp | 4 ++ + src/3rdparty/angle/src/libGLESv2/libGLESv2.def | 3 - + .../src/libGLESv2/renderer/d3d/HLSLCompiler.cpp | 3 - + .../src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp | 66 +++++++++++----------- + .../src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp | 12 ++-- + .../renderer/d3d/d3d11/PixelTransfer11.cpp | 10 ++-- + .../libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp | 4 +- + .../renderer/d3d/d3d11/shaders/Clear11.hlsl | 4 ++ + .../src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp | 20 +++---- + .../src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp | 12 ---- + .../libGLESv2/renderer/d3d/d3d9/shaders/Blit.ps | 6 +- + .../libGLESv2/renderer/d3d/d3d9/shaders/Blit.vs | 4 +- + 16 files changed, 76 insertions(+), 85 deletions(-) + +diff --git a/src/3rdparty/angle/src/commit.h b/src/3rdparty/angle/src/commit.h +index 4c89a65..08fc893 100644 +--- a/src/3rdparty/angle/src/commit.h ++++ b/src/3rdparty/angle/src/commit.h +@@ -7,8 +7,6 @@ + // This is a default commit hash header, when git is not available. + // + +-#define ANGLE_COMMIT_HASH "unknown hash" ++#define ANGLE_COMMIT_HASH "30d6c255d238" + #define ANGLE_COMMIT_HASH_SIZE 12 +-#define ANGLE_COMMIT_DATE "unknown date" +- +-#define ANGLE_DISABLE_PROGRAM_BINARY_LOAD ++#define ANGLE_COMMIT_DATE "2014-11-13 17:37:03 +0000" +diff --git a/src/3rdparty/angle/src/common/version.h b/src/3rdparty/angle/src/common/version.h +index d9148d1..f01e024 100644 +--- a/src/3rdparty/angle/src/common/version.h ++++ b/src/3rdparty/angle/src/common/version.h +@@ -1,4 +1,4 @@ +-#include "id/commit.h" ++#include "../commit.h" + + #define ANGLE_MAJOR_VERSION 2 + #define ANGLE_MINOR_VERSION 1 +diff --git a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp +index 0de16f4..0e63fa5 100644 +--- a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp ++++ b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp +@@ -184,4 +184,4 @@ long ConvertDipsToPixels(float dips) + static const float dipsPerInch = 96.0f; + return lround((dips * GetLogicalDpi() / dipsPerInch)); + } +-} +\ No newline at end of file ++} +diff --git a/src/3rdparty/angle/src/libEGL/libEGL.cpp b/src/3rdparty/angle/src/libEGL/libEGL.cpp +index 851b723..6110698 100644 +--- a/src/3rdparty/angle/src/libEGL/libEGL.cpp ++++ b/src/3rdparty/angle/src/libEGL/libEGL.cpp +@@ -6,6 +6,9 @@ + + // libEGL.cpp: Implements the exported EGL functions. + ++#undef EGLAPI ++#define EGLAPI ++ + #include + + #include "common/debug.h" +diff --git a/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp b/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp +index 2306168..587950a 100644 +--- a/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp +@@ -6,6 +6,10 @@ + + // libGLESv2.cpp: Implements the exported OpenGL ES 2.0 functions. + ++#undef GL_APICALL ++#define GL_APICALL ++#define GL_GLEXT_PROTOTYPES ++ + #include "common/version.h" + #include "common/utilities.h" + +diff --git a/src/3rdparty/angle/src/libGLESv2/libGLESv2.def b/src/3rdparty/angle/src/libGLESv2/libGLESv2.def +index 88dceb3..33557eb 100644 +--- a/src/3rdparty/angle/src/libGLESv2/libGLESv2.def ++++ b/src/3rdparty/angle/src/libGLESv2/libGLESv2.def +@@ -294,6 +294,3 @@ EXPORTS + glBindTexImage @158 NONAME + glCreateRenderer @177 NONAME + glDestroyRenderer @178 NONAME +- +- ; Setting up TRACE macro callbacks +- SetTraceFunctionPointers @284 +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp +index 5c44fe0..bfeaf51 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp +@@ -11,8 +11,6 @@ + #include "common/features.h" + #include "common/utilities.h" + +-#include "third_party/trace_event/trace_event.h" +- + // Definitions local to the translation unit + namespace + { +@@ -120,7 +118,6 @@ HLSLCompiler::~HLSLCompiler() + + bool HLSLCompiler::initialize() + { +- TRACE_EVENT0("gpu", "initializeCompiler"); + #if !defined(ANGLE_ENABLE_WINDOWS_STORE) + #if defined(ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES) + // Find a D3DCompiler module that had already been loaded based on a predefined list of versions. +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp +index 8ed1650..91e7552 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp +@@ -13,39 +13,39 @@ + #include "libGLESv2/main.h" + #include "libGLESv2/formatutils.h" + +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughdepth2d11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dui11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2di11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2d11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dui11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2di11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2d11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dui11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2di11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2d11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dui11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2di11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum2d11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h" +- +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3d11vs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3d11gs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dui11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3di11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3d11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dui11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3di11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3d11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dui11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3di11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3d11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dui11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3di11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum3d11ps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2dvs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughdepth2dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2duips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2duips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2duips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2duips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum2dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2dps.h" ++ ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3dvs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3dgs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3duips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3duips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3duips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3duips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum3dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha3dps.h" + + #include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/swizzlef2dps.h" + #include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/swizzlei2dps.h" +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp +index 12905d0..4630762 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp +@@ -15,14 +15,14 @@ + #include "libGLESv2/FramebufferAttachment.h" + + // Precompiled shaders +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloat11vs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloatvs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloatps.h" + +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuint11vs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuint11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuintvs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuintps.h" + +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsint11vs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsint11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsintvs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsintps.h" + + namespace rx + { +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp +index 1bc2bd8..a4072d8 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp +@@ -22,11 +22,11 @@ + #include "libGLESv2/Context.h" + + // Precompiled shaders +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_vs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_gs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4f.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4i.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexturevs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexturegs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4fps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4ips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4uips.h" + + namespace rx + { +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp +index 3fcacf6..834b7bd 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp +@@ -12,8 +12,8 @@ + #include "libGLESv2/renderer/d3d/d3d11/Renderer11.h" + + // Precompiled shaders +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2dvs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dps.h" + + #include "common/features.h" + #include "common/NativeWindow.h" +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/shaders/Clear11.hlsl b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/shaders/Clear11.hlsl +index 6deef2b..b4cf380 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/shaders/Clear11.hlsl ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/shaders/Clear11.hlsl +@@ -13,10 +13,12 @@ struct PS_OutputFloat + float4 color1 : SV_TARGET1; + float4 color2 : SV_TARGET2; + float4 color3 : SV_TARGET3; ++#if SM4 + float4 color4 : SV_TARGET4; + float4 color5 : SV_TARGET5; + float4 color6 : SV_TARGET6; + float4 color7 : SV_TARGET7; ++#endif + }; + + PS_OutputFloat PS_ClearFloat(in float4 inPosition : SV_POSITION, in float4 inColor : COLOR) +@@ -26,10 +28,12 @@ PS_OutputFloat PS_ClearFloat(in float4 inPosition : SV_POSITION, in float4 inCol + outColor.color1 = inColor; + outColor.color2 = inColor; + outColor.color3 = inColor; ++#if SM4 + outColor.color4 = inColor; + outColor.color5 = inColor; + outColor.color6 = inColor; + outColor.color7 = inColor; ++#endif + return outColor; + } + +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp +index d4fcd17..2ca7a9c 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp +@@ -27,20 +27,20 @@ namespace + + const BYTE* const g_shaderCode[] = + { +- g_vs20_standardvs, +- g_vs20_flipyvs, +- g_ps20_passthroughps, +- g_ps20_luminanceps, +- g_ps20_componentmaskps ++ g_vs20_VS_standard, ++ g_vs20_VS_flipy, ++ g_ps20_PS_passthrough, ++ g_ps20_PS_luminance, ++ g_ps20_PS_componentmask + }; + + const size_t g_shaderSize[] = + { +- sizeof(g_vs20_standardvs), +- sizeof(g_vs20_flipyvs), +- sizeof(g_ps20_passthroughps), +- sizeof(g_ps20_luminanceps), +- sizeof(g_ps20_componentmaskps) ++ sizeof(g_vs20_VS_standard), ++ sizeof(g_vs20_VS_flipy), ++ sizeof(g_ps20_PS_passthrough), ++ sizeof(g_ps20_PS_luminance), ++ sizeof(g_ps20_PS_componentmask) + }; + } + +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp +index 3bac4ba..82963ec 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp +@@ -42,8 +42,6 @@ + #include "common/features.h" + #include "common/utilities.h" + +-#include "third_party/trace_event/trace_event.h" +- + #include + + // Can also be enabled by defining FORCE_REF_RAST in the project's predefined macros +@@ -185,7 +183,6 @@ EGLint Renderer9::initialize() + return EGL_NOT_INITIALIZED; + } + +- TRACE_EVENT0("gpu", "GetModuleHandle_d3d9"); + mD3d9Module = GetModuleHandle(TEXT("d3d9.dll")); + + if (mD3d9Module == NULL) +@@ -202,14 +199,12 @@ EGLint Renderer9::initialize() + // desktop. Direct3D9Ex is available in Windows Vista and later if suitable drivers are available. + if (ANGLE_D3D9EX == ANGLE_ENABLED && Direct3DCreate9ExPtr && SUCCEEDED(Direct3DCreate9ExPtr(D3D_SDK_VERSION, &mD3d9Ex))) + { +- TRACE_EVENT0("gpu", "D3d9Ex_QueryInterface"); + ASSERT(mD3d9Ex); + mD3d9Ex->QueryInterface(__uuidof(IDirect3D9), reinterpret_cast(&mD3d9)); + ASSERT(mD3d9); + } + else + { +- TRACE_EVENT0("gpu", "Direct3DCreate9"); + mD3d9 = Direct3DCreate9(D3D_SDK_VERSION); + } + +@@ -228,7 +223,6 @@ EGLint Renderer9::initialize() + + // Give up on getting device caps after about one second. + { +- TRACE_EVENT0("gpu", "GetDeviceCaps"); + for (int i = 0; i < 10; ++i) + { + result = mD3d9->GetDeviceCaps(mAdapter, mDeviceType, &mDeviceCaps); +@@ -263,7 +257,6 @@ EGLint Renderer9::initialize() + } + + { +- TRACE_EVENT0("gpu", "GetAdapterIdentifier"); + mD3d9->GetAdapterIdentifier(mAdapter, 0, &mAdapterIdentifier); + } + +@@ -300,7 +293,6 @@ EGLint Renderer9::initialize() + static const TCHAR className[] = TEXT("STATIC"); + + { +- TRACE_EVENT0("gpu", "CreateWindowEx"); + mDeviceWindow = CreateWindowEx(WS_EX_NOACTIVATE, className, windowName, WS_DISABLED | WS_POPUP, 0, 0, 1, 1, HWND_MESSAGE, NULL, GetModuleHandle(NULL), NULL); + } + +@@ -308,7 +300,6 @@ EGLint Renderer9::initialize() + DWORD behaviorFlags = D3DCREATE_FPU_PRESERVE | D3DCREATE_NOWINDOWCHANGES; + + { +- TRACE_EVENT0("gpu", "D3d9_CreateDevice"); + result = mD3d9->CreateDevice(mAdapter, mDeviceType, mDeviceWindow, behaviorFlags | D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE, &presentParameters, &mDevice); + } + if (result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY || result == D3DERR_DEVICELOST) +@@ -318,7 +309,6 @@ EGLint Renderer9::initialize() + + if (FAILED(result)) + { +- TRACE_EVENT0("gpu", "D3d9_CreateDevice2"); + result = mD3d9->CreateDevice(mAdapter, mDeviceType, mDeviceWindow, behaviorFlags | D3DCREATE_SOFTWARE_VERTEXPROCESSING, &presentParameters, &mDevice); + + if (FAILED(result)) +@@ -330,13 +320,11 @@ EGLint Renderer9::initialize() + + if (mD3d9Ex) + { +- TRACE_EVENT0("gpu", "mDevice_QueryInterface"); + result = mDevice->QueryInterface(__uuidof(IDirect3DDevice9Ex), (void**)&mDeviceEx); + ASSERT(SUCCEEDED(result)); + } + + { +- TRACE_EVENT0("gpu", "ShaderCache initialize"); + mVertexShaderCache.initialize(mDevice); + mPixelShaderCache.initialize(mDevice); + } +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.ps b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.ps +index dc357d0..eb43eb3 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.ps ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.ps +@@ -11,7 +11,7 @@ uniform float4 add : c1; + + // Passthrough Pixel Shader + // Outputs texture 0 sampled at texcoord 0. +-float4 passthroughps(float4 texcoord : TEXCOORD0) : COLOR ++float4 PS_passthrough(float4 texcoord : TEXCOORD0) : COLOR + { + return tex2D(tex, texcoord.xy); + }; +@@ -19,7 +19,7 @@ float4 passthroughps(float4 texcoord : TEXCOORD0) : COLOR + // Luminance Conversion Pixel Shader + // Performs a mad operation using the LA data from the texture with mult.xw and add.xw. + // Returns data in the form of llla +-float4 luminanceps(float4 texcoord : TEXCOORD0) : COLOR ++float4 PS_luminance(float4 texcoord : TEXCOORD0) : COLOR + { + return (tex2D(tex, texcoord.xy).xw * mult.xw + add.xw).xxxy; + }; +@@ -27,7 +27,7 @@ float4 luminanceps(float4 texcoord : TEXCOORD0) : COLOR + // RGB/A Component Mask Pixel Shader + // Performs a mad operation using the texture's RGBA data with mult.xyzw and add.xyzw. + // Returns data in the form of rgba +-float4 componentmaskps(float4 texcoord : TEXCOORD0) : COLOR ++float4 PS_componentmask(float4 texcoord : TEXCOORD0) : COLOR + { + return tex2D(tex, texcoord.xy) * mult + add; + }; +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.vs b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.vs +index 3a36980..3bd611b 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.vs ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.vs +@@ -17,7 +17,7 @@ uniform float4 halfPixelSize : c0; + // Outputs the homogenous position as-is. + // Outputs a tex coord with (0,0) in the upper-left corner of the screen and (1,1) in the bottom right. + // C0.X must be negative half-pixel width, C0.Y must be half-pixel height. C0.ZW must be 0. +-VS_OUTPUT standardvs(in float4 position : POSITION) ++VS_OUTPUT VS_standard(in float4 position : POSITION) + { + VS_OUTPUT Out; + +@@ -32,7 +32,7 @@ VS_OUTPUT standardvs(in float4 position : POSITION) + // Outputs the homogenous position as-is. + // Outputs a tex coord with (0,1) in the upper-left corner of the screen and (1,0) in the bottom right. + // C0.XY must be the half-pixel width and height. C0.ZW must be 0. +-VS_OUTPUT flipyvs(in float4 position : POSITION) ++VS_OUTPUT VS_flipy(in float4 position : POSITION) + { + VS_OUTPUT Out; + +-- +1.9.4.msysgit.1 + diff --git a/mingw-w64-angleproject-git/0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch b/mingw-w64-angleproject-git/0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch deleted file mode 100644 index 06ab16abdb..0000000000 --- a/mingw-w64-angleproject-git/0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 88297d02fd1aed6cac258b72d9d0a8baabad6203 Mon Sep 17 00:00:00 2001 -From: Thomas Hartmann -Date: Mon, 17 Feb 2014 16:56:51 +0200 -Subject: [PATCH] Fix compilation for MSVC 2008 and std::tuple - -For MSVC 2008 make_tuple is in the tr1 namespace. - -Change-Id: I4a51f6cabdf068993869b404b12ed1484a21a9d4 ---- - src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp -index 610a5ef..51d7f0b 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp -@@ -81,7 +81,11 @@ IndexRangeCache::IndexRange::IndexRange(GLenum typ, intptr_t off, GLsizei c) - - bool IndexRangeCache::IndexRange::operator<(const IndexRange& rhs) const - { -+#if defined(_MSC_VER) && _MSC_VER < 1600 -+ return std::tr1::make_tuple(type, offset, count) < std::tr1::make_tuple(rhs.type, rhs.offset, rhs.count); -+#else - return std::make_tuple(type, offset, count) < std::make_tuple(rhs.type, rhs.offset, rhs.count); -+#endif - } - - IndexRangeCache::IndexBounds::IndexBounds() --- -1.8.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch b/mingw-w64-angleproject-git/0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch deleted file mode 100644 index 8b91d4b8ea..0000000000 --- a/mingw-w64-angleproject-git/0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 95e3ca47772ef0552662b1d04b7ee08d9d1d2338 Mon Sep 17 00:00:00 2001 -From: Kai Koehne -Date: Mon, 17 Feb 2014 16:59:19 +0200 -Subject: [PATCH] Fix compilation of ANGLE with mingw-tdm64 gcc 4.8.1 - -Do not rely on sprintf_s being declared/defined. This also fixes -deployment to Windows XP. - -See https://chromium-review.googlesource.com/#/c/182975/ for a similar -commit proposed upstream. - -Task-number: QTBUG-36242 -Change-Id: I520e2f61aeab34963e7a57baafd413c7db93f110 ---- - src/3rdparty/angle/src/libEGL/Display.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/3rdparty/angle/src/libEGL/Display.cpp b/src/3rdparty/angle/src/libEGL/Display.cpp -index a382c3b..13ef701 100644 ---- a/src/3rdparty/angle/src/libEGL/Display.cpp -+++ b/src/3rdparty/angle/src/libEGL/Display.cpp -@@ -523,7 +523,7 @@ void Display::initVendorString() - if (mRenderer && mRenderer->getLUID(&adapterLuid)) - { - char adapterLuidString[64]; -- sprintf_s(adapterLuidString, sizeof(adapterLuidString), " (adapter LUID: %08x%08x)", adapterLuid.HighPart, adapterLuid.LowPart); -+ snprintf(adapterLuidString, sizeof(adapterLuidString), " (adapter LUID: %08x%08x)", adapterLuid.HighPart, adapterLuid.LowPart); - - mVendorString += adapterLuidString; - } --- -1.8.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0003-Fix-compilation-with-MinGW-gcc-64-bit.patch b/mingw-w64-angleproject-git/0003-Fix-compilation-with-MinGW-gcc-64-bit.patch deleted file mode 100644 index 7d70057a9a..0000000000 --- a/mingw-w64-angleproject-git/0003-Fix-compilation-with-MinGW-gcc-64-bit.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a03d8f647816767525489a2b26663d897f0264a0 Mon Sep 17 00:00:00 2001 -From: Kai Koehne -Date: Tue, 18 Feb 2014 09:34:39 +0200 -Subject: [PATCH] Fix compilation with MinGW gcc 64 bit - -Fix compilation of ANGLE with gcc 4.8.0 64 bit: The - - reinterpret_cast(void*) - -was causing - - error: cast from 'const void*' to 'long unsigned int' loses precision - -Task-number: QTBUG-34395 -Change-Id: Ibde75dd4b5536f3827bdf0ab02a15e93a1a8a4f0 ---- - src/3rdparty/angle/src/third_party/trace_event/trace_event.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h -index 1880056..637cf9a 100644 ---- a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h -+++ b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h -@@ -587,7 +587,7 @@ const unsigned long long noEventId = 0; - class TraceID { - public: - explicit TraceID(const void* id, unsigned char* flags) : -- m_data(static_cast(reinterpret_cast(id))) -+ m_data(reinterpret_cast(id)) - { - *flags |= TRACE_EVENT_FLAG_MANGLE_ID; - } --- -1.8.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch b/mingw-w64-angleproject-git/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch index 2c95c5bcfa..45a3f17cca 100644 --- a/mingw-w64-angleproject-git/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch +++ b/mingw-w64-angleproject-git/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch @@ -1,7 +1,7 @@ -From 9b24b25eeb5ca97d7978c6840fdb1e903bf63a55 Mon Sep 17 00:00:00 2001 +From 3a39939b5eba9f788789961c4800ba62618f758c Mon Sep 17 00:00:00 2001 From: Friedemann Kleint -Date: Tue, 18 Feb 2014 09:52:52 +0200 -Subject: [PATCH] Make it possible to link ANGLE statically for +Date: Tue, 11 Nov 2014 10:26:32 +0200 +Subject: [PATCH 04/16] Make it possible to link ANGLE statically for single-thread use. Fix exports and provide static instances of thread-local @@ -9,10 +9,10 @@ data depending on QT_OPENGL_ES_2_ANGLE_STATIC. Change-Id: Ifab25a820adf5953bb3b09036de53dbf7f1a7fd5 --- - src/3rdparty/angle/include/KHR/khrplatform.h | 2 +- - src/3rdparty/angle/src/libEGL/main.cpp | 6 ++++++ - src/3rdparty/angle/src/libGLESv2/main.cpp | 6 ++++++ - 3 files changed, 13 insertions(+), 1 deletion(-) + src/3rdparty/angle/include/KHR/khrplatform.h | 2 +- + src/3rdparty/angle/src/libEGL/main.cpp | 10 ++++++++++ + src/3rdparty/angle/src/libGLESv2/main.cpp | 10 ++++++++-- + 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/3rdparty/angle/include/KHR/khrplatform.h b/src/3rdparty/angle/include/KHR/khrplatform.h index c9e6f17..1ac2d3f 100644 @@ -28,41 +28,82 @@ index c9e6f17..1ac2d3f 100644 #elif defined (__SYMBIAN32__) # define KHRONOS_APICALL IMPORT_C diff --git a/src/3rdparty/angle/src/libEGL/main.cpp b/src/3rdparty/angle/src/libEGL/main.cpp -index 80dcc34..772b8eb 100644 +index d1489f2..e88cad7 100644 --- a/src/3rdparty/angle/src/libEGL/main.cpp +++ b/src/3rdparty/angle/src/libEGL/main.cpp -@@ -106,7 +106,13 @@ namespace egl +@@ -49,6 +49,8 @@ void DeallocateCurrent() + + } + ++#ifndef QT_OPENGL_ES_2_ANGLE_STATIC ++ + extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) + { + switch (reason) +@@ -108,16 +110,24 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved + return TRUE; + } + ++#endif // !QT_OPENGL_ES_2_ANGLE_STATIC ++ + namespace egl + { Current *GetCurrentData() { +#ifndef QT_OPENGL_ES_2_ANGLE_STATIC - Current *current = (Current*)TlsGetValue(currentTLS); -+#else -+ // No precautions for thread safety taken as ANGLE is used single-threaded in Qt. -+ static Current s_current = { EGL_SUCCESS, EGL_OPENGL_ES_API, EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE }; -+ Current *current = &s_current; -+#endif + Current *current = reinterpret_cast(GetTLSValue(currentTLS)); // ANGLE issue 488: when the dll is loaded after thread initialization, // thread local storage (current) might not exist yet. + return (current ? current : AllocateCurrent()); ++#else ++ // No precautions for thread safety taken as ANGLE is used single-threaded in Qt. ++ static Current current = { EGL_SUCCESS, EGL_OPENGL_ES_API, EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE }; ++ return ¤t; ++#endif + } + + void recordError(const Error &error) diff --git a/src/3rdparty/angle/src/libGLESv2/main.cpp b/src/3rdparty/angle/src/libGLESv2/main.cpp -index 50e2593..6b459d3 100644 +index 3ac00d5..00f63ae 100644 --- a/src/3rdparty/angle/src/libGLESv2/main.cpp +++ b/src/3rdparty/angle/src/libGLESv2/main.cpp -@@ -89,7 +89,13 @@ namespace gl +@@ -74,7 +74,7 @@ void DeallocateCurrent() + + } + +-#ifdef ANGLE_PLATFORM_WINDOWS ++#if defined(ANGLE_PLATFORM_WINDOWS) && !defined(QT_OPENGL_ES_2_ANGLE_STATIC) + extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) + { + switch (reason) +@@ -117,18 +117,24 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved + + return TRUE; + } +-#endif ++#endif // ANGLE_PLATFORM_WINDOWS && !QT_OPENGL_ES_2_ANGLE_STATIC + + namespace gl + { Current *GetCurrentData() { +#ifndef QT_OPENGL_ES_2_ANGLE_STATIC - Current *current = (Current*)TlsGetValue(currentTLS); -+#else -+ // No precautions for thread safety taken as ANGLE is used single-threaded in Qt. -+ static Current s_current = { 0, 0 }; -+ Current *current = &s_current; -+#endif + Current *current = reinterpret_cast(GetTLSValue(currentTLS)); // ANGLE issue 488: when the dll is loaded after thread initialization, // thread local storage (current) might not exist yet. + return (current ? current : AllocateCurrent()); ++#else ++ // No precautions for thread safety taken as ANGLE is used single-threaded in Qt. ++ static Current current = { 0, 0 }; ++ return ¤t; ++#endif + } + + void makeCurrent(Context *context, egl::Display *display, egl::Surface *surface) -- -1.8.4.msysgit.0 +1.9.4.msysgit.1 diff --git a/mingw-w64-angleproject-git/0005-Fix-build-when-SSE2-is-not-available.patch b/mingw-w64-angleproject-git/0005-Fix-build-when-SSE2-is-not-available.patch deleted file mode 100644 index 475ec55b0e..0000000000 --- a/mingw-w64-angleproject-git/0005-Fix-build-when-SSE2-is-not-available.patch +++ /dev/null @@ -1,77 +0,0 @@ -From cebc37237a74a130dffaefad0a10da17abc42981 Mon Sep 17 00:00:00 2001 -From: Andy Shaw -Date: Tue, 18 Feb 2014 09:59:17 +0200 -Subject: [PATCH] Fix build when SSE2 is not available. - -Although SSE2 support is detected at runtime it still may not be -available at build time, so we have to ensure it only uses SSE2 -when it is available at build time too. - -Change-Id: I86c45a6466ab4cec79aa0f62b0d5230a78ad825a ---- - src/3rdparty/angle/src/libGLESv2/mathutil.h | 2 ++ - src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp | 6 +++++- - 2 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/src/3rdparty/angle/src/libGLESv2/mathutil.h b/src/3rdparty/angle/src/libGLESv2/mathutil.h -index f902131..6474b66 100644 ---- a/src/3rdparty/angle/src/libGLESv2/mathutil.h -+++ b/src/3rdparty/angle/src/libGLESv2/mathutil.h -@@ -92,6 +92,7 @@ inline bool supportsSSE2() - return supports; - } - -+#if defined(_M_IX86) || defined(_M_AMD64) // ARM doesn't provide __cpuid() - int info[4]; - __cpuid(info, 0); - -@@ -101,6 +102,7 @@ inline bool supportsSSE2() - - supports = (info[3] >> 26) & 1; - } -+#endif - - checked = true; - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp -index 8511946..cd12d8c 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp -@@ -373,11 +373,13 @@ void Image9::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei heigh - switch (mInternalFormat) - { - case GL_ALPHA8_EXT: -+#if defined(__SSE2__) - if (gl::supportsSSE2()) - { - loadAlphaDataToBGRASSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits); - } - else -+#endif - { - loadAlphaDataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits); - } -@@ -413,11 +415,13 @@ void Image9::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei heigh - loadRGB565DataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits); - break; - case GL_RGBA8_OES: -+#if defined(__SSE2__) - if (gl::supportsSSE2()) - { - loadRGBAUByteDataToBGRASSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits); - } - else -+#endif - { - loadRGBAUByteDataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits); - } -@@ -729,4 +733,4 @@ void Image9::copy(GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, - mDirty = true; - } - --} -\ No newline at end of file -+} --- -1.8.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch b/mingw-w64-angleproject-git/0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch deleted file mode 100644 index cf31245b95..0000000000 --- a/mingw-w64-angleproject-git/0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 68ba96d224a84389567f506661a78c32b307e84d Mon Sep 17 00:00:00 2001 -From: Kai Koehne -Date: Tue, 18 Feb 2014 10:29:14 +0200 -Subject: [PATCH] Fix compilation of libGLESv2 with older MinGW-w64 - headers - -Fix compilation of libGLESv2 for mingw-headers predating MinGW-w64 -svn commit 5567 (like MinGW-builds gcc 4.7.2-rev8, the toolchain -we officially support). - -Commit 5567 added the D3DCOMPILER_DLL define to d3dcompiler.h, but with -a trailing semicolon that has then fixed in commit 5783. Any toolchain -that ships MinGW-w64 headers from a version in between (like -MinGW-builds gcc 4.7.2-rev11) will unfortunately remain broken. - -Change-Id: I31272a1a991c4fc0f1611f8fb7510be51d6bb925 ---- - .../angle/src/libGLESv2/renderer/Renderer.cpp | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -index 3407353..e74120d 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -@@ -24,6 +24,25 @@ - #define D3DERR_OUTOFVIDEOMEMORY MAKE_HRESULT(1, 0x876, 380) - #endif - -+#ifdef __MINGW32__ -+ -+#ifndef D3DCOMPILER_DLL -+ -+// Add define + typedefs for older MinGW-w64 headers (pre 5783) -+ -+#define D3DCOMPILER_DLL L"d3dcompiler_43.dll" -+ -+HRESULT WINAPI D3DCompile(const void *data, SIZE_T data_size, const char *filename, -+ const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint, -+ const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages); -+typedef HRESULT (WINAPI *pD3DCompile)(const void *data, SIZE_T data_size, const char *filename, -+ const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint, -+ const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages); -+ -+#endif // D3DCOMPILER_DLL -+ -+#endif // __MINGW32__ -+ - namespace rx - { - --- -1.8.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0007-Make-DX9-DX11-mutually-exclusive.patch b/mingw-w64-angleproject-git/0007-Make-DX9-DX11-mutually-exclusive.patch deleted file mode 100644 index 62a88d42c7..0000000000 --- a/mingw-w64-angleproject-git/0007-Make-DX9-DX11-mutually-exclusive.patch +++ /dev/null @@ -1,143 +0,0 @@ -From e1b26c6669cafb5c1298d6e5476c24686fccf1bd Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Thu, 20 Feb 2014 16:46:15 +0200 -Subject: [PATCH] Make DX9/DX11 support configurable - -ANGLE supports selecting the renderer on creation, choosing between -D3D11 and D3D9 backends. This patch improves upon this by enabling the -D3D backend(s) at compile time. This can make the binary size smaller -(no extra render is built) and ensures compatibility with Windows Runtime -when building only the D3D11 renderer. - -Change-Id: Id9473e0e631721083fe4026d475e37603a144c37 ---- - src/3rdparty/angle/src/libEGL/Display.cpp | 4 +++- - src/3rdparty/angle/src/libGLESv2/Texture.cpp | 6 +++++- - src/3rdparty/angle/src/libGLESv2/precompiled.h | 10 +++++++--- - .../angle/src/libGLESv2/renderer/Renderer.cpp | 19 +++++++++++++------ - 4 files changed, 28 insertions(+), 11 deletions(-) - -diff --git a/src/3rdparty/angle/src/libEGL/Display.cpp b/src/3rdparty/angle/src/libEGL/Display.cpp -index 13ef701..a7f5f5a 100644 ---- a/src/3rdparty/angle/src/libEGL/Display.cpp -+++ b/src/3rdparty/angle/src/libEGL/Display.cpp -@@ -471,7 +471,6 @@ bool Display::hasExistingWindowSurface(HWND window) - - void Display::initExtensionString() - { -- HMODULE swiftShader = GetModuleHandle(TEXT("swiftshader_d3d9.dll")); - bool shareHandleSupported = mRenderer->getShareHandleSupport(); - - mExtensionString = ""; -@@ -487,10 +486,13 @@ void Display::initExtensionString() - - mExtensionString += "EGL_ANGLE_query_surface_pointer "; - -+#if defined(ANGLE_ENABLE_D3D9) -+ HMODULE swiftShader = GetModuleHandle(TEXT("swiftshader_d3d9.dll")); - if (swiftShader) - { - mExtensionString += "EGL_ANGLE_software_display "; - } -+#endif - - if (shareHandleSupported) - { -diff --git a/src/3rdparty/angle/src/libGLESv2/Texture.cpp b/src/3rdparty/angle/src/libGLESv2/Texture.cpp -index 3deecaf..3257d05 100644 ---- a/src/3rdparty/angle/src/libGLESv2/Texture.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/Texture.cpp -@@ -14,7 +14,11 @@ - #include "libGLESv2/main.h" - #include "libGLESv2/mathutil.h" - #include "libGLESv2/utilities.h" --#include "libGLESv2/renderer/d3d9/Blit.h" -+#if defined(ANGLE_ENABLE_D3D9) -+# include "libGLESv2/renderer/d3d9/Blit.h" -+#else -+# define D3DFMT_UNKNOWN DXGI_FORMAT_UNKNOWN -+#endif - #include "libGLESv2/Renderbuffer.h" - #include "libGLESv2/renderer/Image.h" - #include "libGLESv2/renderer/Renderer.h" -diff --git a/src/3rdparty/angle/src/libGLESv2/precompiled.h b/src/3rdparty/angle/src/libGLESv2/precompiled.h -index 58ad181..79490b1 100644 ---- a/src/3rdparty/angle/src/libGLESv2/precompiled.h -+++ b/src/3rdparty/angle/src/libGLESv2/precompiled.h -@@ -32,10 +32,14 @@ - #include - #include - --#include --#include --#include --#include -+#if defined(ANGLE_ENABLE_D3D9) -+# include -+#endif -+#if defined(ANGLE_ENABLE_D3D11) -+# include -+# include -+# include -+#endif - #include - - #ifdef _MSC_VER -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -index 86be93f..3407353 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -@@ -11,14 +11,17 @@ - #include "libGLESv2/main.h" - #include "libGLESv2/Program.h" - #include "libGLESv2/renderer/Renderer.h" --#include "libGLESv2/renderer/d3d9/Renderer9.h" --#include "libGLESv2/renderer/d3d11/Renderer11.h" -+#if defined(ANGLE_ENABLE_D3D9) -+# include "libGLESv2/renderer/d3d9/Renderer9.h" -+#endif -+#if defined(ANGLE_ENABLE_D3D11) -+# include "libGLESv2/renderer/d3d11/Renderer11.h" -+#endif - #include "libGLESv2/utilities.h" - #include "third_party/trace_event/trace_event.h" - --#if !defined(ANGLE_ENABLE_D3D11) --// Enables use of the Direct3D 11 API for a default display, when available --#define ANGLE_ENABLE_D3D11 0 -+#ifndef D3DERR_OUTOFVIDEOMEMORY -+#define D3DERR_OUTOFVIDEOMEMORY MAKE_HRESULT(1, 0x876, 380) - #endif - - namespace rx -@@ -177,7 +180,8 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayT - rx::Renderer *renderer = NULL; - EGLint status = EGL_BAD_ALLOC; - -- if (ANGLE_ENABLE_D3D11 || -+#if defined(ANGLE_ENABLE_D3D11) -+ if (displayId == EGL_DEFAULT_DISPLAY || - displayId == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE || - displayId == EGL_D3D11_ONLY_DISPLAY_ANGLE) - { -@@ -200,7 +204,9 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayT - // Failed to create a D3D11 renderer, try creating a D3D9 renderer - delete renderer; - } -+#endif // ANGLE_ENABLE_D3D11 - -+#if defined(ANGLE_ENABLE_D3D9) - bool softwareDevice = (displayId == EGL_SOFTWARE_DISPLAY_ANGLE); - renderer = new rx::Renderer9(display, hDc, softwareDevice); - -@@ -213,6 +219,7 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayT - { - return renderer; - } -+#endif // ANGLE_ENABLE_D3D9 - - return NULL; - } --- -1.8.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch b/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch deleted file mode 100644 index c7cfafc246..0000000000 --- a/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 0fede57f6fc052942b910995fdfa4cd76a32f586 Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Tue, 18 Feb 2014 12:11:45 +0200 -Subject: [PATCH] ANGLE: Dynamically load D3D compiler from a list or the - environment - -If the default compiler cannot be found, load it from a list of DLL names, -including a non-versioned proxy DLL provided by Qt. On Desktop Windows, -the default compiler can also be specified by an environment variable, -QT_D3DCOMPILER_DLL. - -Change-Id: I0d7a8a8a36cc571836f8fa59ea14513b9b19c19b ---- - .../angle/src/libGLESv2/renderer/Renderer.cpp | 34 ++++++++++++++++++++-- - 1 file changed, 32 insertions(+), 2 deletions(-) - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -index e74120d..94cbc0e 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -@@ -43,6 +43,10 @@ typedef HRESULT (WINAPI *pD3DCompile)(const void *data, SIZE_T data_size, const - - #endif // __MINGW32__ - -+#ifndef QT_D3DCOMPILER_DLL -+#define QT_D3DCOMPILER_DLL D3DCOMPILER_DLL -+#endif -+ - namespace rx - { - -@@ -77,10 +81,36 @@ bool Renderer::initializeCompiler() - } - #endif // ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES - -- if (!mD3dCompilerModule) -+ // Load the compiler DLL specified by the environment, or default to QT_D3DCOMPILER_DLL -+#if !defined(ANGLE_OS_WINRT) -+ const wchar_t *defaultCompiler = _wgetenv(L"QT_D3DCOMPILER_DLL"); -+ if (!defaultCompiler) -+ defaultCompiler = QT_D3DCOMPILER_DLL; -+#else // !ANGLE_OS_WINRT -+# ifdef _DEBUG -+ const wchar_t *defaultCompiler = L"d3dcompiler_qtd.dll"; -+# else -+ const wchar_t *defaultCompiler = L"d3dcompiler_qt.dll"; -+# endif -+#endif // ANGLE_OS_WINRT -+ -+ const wchar_t *compilerDlls[] = { -+ defaultCompiler, -+ L"d3dcompiler_47.dll", -+ L"d3dcompiler_46.dll", -+ L"d3dcompiler_45.dll", -+ L"d3dcompiler_44.dll", -+ L"d3dcompiler_43.dll", -+ 0 -+ }; -+ -+ // Load the first available known compiler DLL -+ for (int i = 0; compilerDlls[i]; ++i) - { - // Load the version of the D3DCompiler DLL associated with the Direct3D version ANGLE was built with. -- mD3dCompilerModule = LoadLibrary(D3DCOMPILER_DLL); -+ mD3dCompilerModule = LoadLibrary(compilerDlls[i]); -+ if (mD3dCompilerModule) -+ break; - } - - if (!mD3dCompilerModule) --- -1.8.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t.patch b/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t.patch new file mode 100644 index 0000000000..801db67682 --- /dev/null +++ b/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t.patch @@ -0,0 +1,64 @@ +From 4a5960465d1632ab089320fcbba4af294d58fd9a Mon Sep 17 00:00:00 2001 +From: Andrew Knight +Date: Fri, 7 Nov 2014 14:05:36 +0200 +Subject: [PATCH 08/16] ANGLE: Dynamically load D3D compiler from a list or the + environment + +If the default compiler cannot be found, load it from a list of DLL names, +including a non-versioned proxy DLL provided by Qt. On Desktop Windows, +the default compiler can also be specified by an environment variable, +QT_D3DCOMPILER_DLL. + +Change-Id: I0d7a8a8a36cc571836f8fa59ea14513b9b19c19b +--- + .../src/libGLESv2/renderer/d3d/HLSLCompiler.cpp | 27 ++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp +index bfeaf51..9d003b4 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp +@@ -11,6 +11,10 @@ + #include "common/features.h" + #include "common/utilities.h" + ++#ifndef QT_D3DCOMPILER_DLL ++#define QT_D3DCOMPILER_DLL D3DCOMPILER_DLL ++#endif ++ + // Definitions local to the translation unit + namespace + { +@@ -132,6 +136,29 @@ bool HLSLCompiler::initialize() + } + #endif // ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES + ++ // Load the compiler DLL specified by the environment, or default to QT_D3DCOMPILER_DLL ++ const wchar_t *defaultCompiler = _wgetenv(L"QT_D3DCOMPILER_DLL"); ++ if (!defaultCompiler) ++ defaultCompiler = QT_D3DCOMPILER_DLL; ++ ++ const wchar_t *compilerDlls[] = { ++ defaultCompiler, ++ L"d3dcompiler_47.dll", ++ L"d3dcompiler_46.dll", ++ L"d3dcompiler_45.dll", ++ L"d3dcompiler_44.dll", ++ L"d3dcompiler_43.dll", ++ 0 ++ }; ++ ++ // Load the first available known compiler DLL ++ for (int i = 0; compilerDlls[i]; ++i) ++ { ++ mD3DCompilerModule = LoadLibrary(compilerDlls[i]); ++ if (mD3DCompilerModule) ++ break; ++ } ++ + if (!mD3DCompilerModule) + { + // Load the version of the D3DCompiler DLL associated with the Direct3D version ANGLE was built with. +-- +1.9.4.msysgit.1 + diff --git a/mingw-w64-angleproject-git/0009-ANGLE-Support-WinRT.patch b/mingw-w64-angleproject-git/0009-ANGLE-Support-WinRT.patch index d40748ae75..a38fb4ea13 100644 --- a/mingw-w64-angleproject-git/0009-ANGLE-Support-WinRT.patch +++ b/mingw-w64-angleproject-git/0009-ANGLE-Support-WinRT.patch @@ -1,1181 +1,837 @@ -From 46b8b123ada1787c68525cd07dcdbfdbc003bcc5 Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Thu, 20 Feb 2014 16:49:13 +0200 -Subject: [PATCH] ANGLE: Support WinRT +From 4d150ba3814f824f1cadaedbdb83d0ac79d0e1a2 Mon Sep 17 00:00:00 2001 +From: Andrew Knight +Date: Fri, 14 Nov 2014 09:28:11 +0200 +Subject: [PATCH 09/16] ANGLE: Support WinRT -This enables EGL for WinRT's native types, and adjusts some codepaths -to accommodate differences between desktop Windows and WinRT. +Tweak ANGLE's existing support for WinRT to allow for changing the +window size on Windows Phone. -- WinRT native handles added to eglplatform.h -- References to native handles in libEGL/libGLESv2 follow eglplatform.h -- D3D 11.1 structures and methods used when necessary -- TLS replaced with thread attribute -- LocalAlloc/Free replaced with Heap API - -Change-Id: Ia90377e700d335a1c569c2145008dd4b0dfd84d3 -Reviewed-by: Friedemann Kleint +Change-Id: Ia312b5318b977838a2953f1f530487cbf24974bc --- - src/3rdparty/angle/include/EGL/eglplatform.h | 10 ++- - .../angle/src/compiler/translator/osinclude.h | 20 +++--- - .../src/compiler/translator/ossource_posix.cpp | 8 +++ - .../angle/src/compiler/translator/ossource_win.cpp | 8 +++ - .../src/compiler/translator/ossource_winrt.cpp | 75 ++++++++++++++++++++++ - src/3rdparty/angle/src/libEGL/Display.cpp | 11 ++-- - src/3rdparty/angle/src/libEGL/Display.h | 7 +- - src/3rdparty/angle/src/libEGL/Surface.cpp | 42 +++++++++++- - src/3rdparty/angle/src/libEGL/Surface.h | 6 +- - src/3rdparty/angle/src/libEGL/libEGL.cpp | 4 +- - src/3rdparty/angle/src/libEGL/main.cpp | 29 ++++++++- - src/3rdparty/angle/src/libGLESv2/Context.cpp | 1 + - src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp | 1 + - src/3rdparty/angle/src/libGLESv2/main.cpp | 27 ++++++++ - src/3rdparty/angle/src/libGLESv2/main.h | 2 +- - src/3rdparty/angle/src/libGLESv2/precompiled.h | 45 ++++++++++++- - .../angle/src/libGLESv2/renderer/Renderer.cpp | 15 +++-- - .../angle/src/libGLESv2/renderer/Renderer.h | 3 +- - .../angle/src/libGLESv2/renderer/SwapChain.h | 5 +- - .../src/libGLESv2/renderer/d3d11/Renderer11.cpp | 13 +++- - .../src/libGLESv2/renderer/d3d11/Renderer11.h | 5 +- - .../src/libGLESv2/renderer/d3d11/SwapChain11.cpp | 37 +++++++++-- - .../src/libGLESv2/renderer/d3d11/SwapChain11.h | 2 +- - .../libGLESv2/renderer/d3d11/shaders/Clear11.hlsl | 4 ++ - src/3rdparty/angle/src/libGLESv2/utilities.cpp | 48 ++++++++++++++ - 25 files changed, 378 insertions(+), 50 deletions(-) - create mode 100644 src/3rdparty/angle/src/compiler/translator/ossource_winrt.cpp + src/3rdparty/angle/include/EGL/eglplatform.h | 5 +- + src/3rdparty/angle/src/common/NativeWindow.h | 7 +- + src/3rdparty/angle/src/common/platform.h | 4 +- + .../angle/src/common/win32/NativeWindow.cpp | 2 +- + .../src/common/winrt/CoreWindowNativeWindow.cpp | 87 +++++++++++++--------- + .../src/common/winrt/CoreWindowNativeWindow.h | 48 ++---------- + .../src/common/winrt/InspectableNativeWindow.cpp | 8 +- + .../src/common/winrt/InspectableNativeWindow.h | 7 +- + .../common/winrt/SwapChainPanelNativeWindow.cpp | 2 +- + .../src/common/winrt/SwapChainPanelNativeWindow.h | 2 +- + src/3rdparty/angle/src/libEGL/Display.h | 1 + + src/3rdparty/angle/src/libEGL/Surface.cpp | 45 ++++++++--- + src/3rdparty/angle/src/libEGL/Surface.h | 4 + + src/3rdparty/angle/src/libEGL/libEGL.cpp | 20 +++++ + .../src/libGLESv2/renderer/d3d/d3d11/Renderer11.h | 2 +- + .../libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp | 74 +++++++++++------- + .../src/libGLESv2/renderer/d3d/d3d11/SwapChain11.h | 2 + + 17 files changed, 189 insertions(+), 131 deletions(-) diff --git a/src/3rdparty/angle/include/EGL/eglplatform.h b/src/3rdparty/angle/include/EGL/eglplatform.h -index 34283f2..eb15ae5 100644 +index 3793e57..2eb3674 100644 --- a/src/3rdparty/angle/include/EGL/eglplatform.h +++ b/src/3rdparty/angle/include/EGL/eglplatform.h -@@ -67,7 +67,15 @@ - * implementations. - */ - --#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ -+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP) /* Windows Runtime */ -+ -+struct IUnknown; -+ -+typedef int EGLNativeDisplayType; -+typedef void *EGLNativePixmapType; -+typedef IUnknown *EGLNativeWindowType; -+ -+#elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN 1 +@@ -73,13 +73,14 @@ #endif -diff --git a/src/3rdparty/angle/src/compiler/translator/osinclude.h b/src/3rdparty/angle/src/compiler/translator/osinclude.h -index c3063d6..cccfa63 100644 ---- a/src/3rdparty/angle/src/compiler/translator/osinclude.h -+++ b/src/3rdparty/angle/src/compiler/translator/osinclude.h -@@ -13,7 +13,11 @@ - // - - #if defined(_WIN32) || defined(_WIN64) -+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP) -+#define ANGLE_OS_WINRT -+#else - #define ANGLE_OS_WIN -+#endif - #elif defined(__APPLE__) || defined(__linux__) || \ - defined(__FreeBSD__) || defined(__OpenBSD__) || \ - defined(__NetBSD__) || defined(__DragonFly__) || \ -@@ -25,7 +29,7 @@ - #error Unsupported platform. - #endif - --#if defined(ANGLE_OS_WIN) -+#if defined(ANGLE_OS_WIN) || defined(ANGLE_OS_WINRT) - #define STRICT - #define VC_EXTRALEAN 1 #include -@@ -44,23 +48,17 @@ - #if defined(ANGLE_OS_WIN) - typedef DWORD OS_TLSIndex; - #define OS_INVALID_TLS_INDEX (TLS_OUT_OF_INDEXES) -+#elif defined(ANGLE_OS_WINRT) -+typedef size_t OS_TLSIndex; -+#define OS_INVALID_TLS_INDEX ((DWORD)0xFFFFFF) - #elif defined(ANGLE_OS_POSIX) - typedef pthread_key_t OS_TLSIndex; - #define OS_INVALID_TLS_INDEX (static_cast(-1)) - #endif // ANGLE_OS_WIN - OS_TLSIndex OS_AllocTLSIndex(); -+void *OS_GetTLSValue(OS_TLSIndex nIndex); - bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue); - bool OS_FreeTLSIndex(OS_TLSIndex nIndex); +-typedef HDC EGLNativeDisplayType; + typedef HBITMAP EGLNativePixmapType; --inline void* OS_GetTLSValue(OS_TLSIndex nIndex) --{ -- ASSERT(nIndex != OS_INVALID_TLS_INDEX); --#if defined(ANGLE_OS_WIN) -- return TlsGetValue(nIndex); --#elif defined(ANGLE_OS_POSIX) -- return pthread_getspecific(nIndex); --#endif // ANGLE_OS_WIN +-#if defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP /* Windows Store */ ++#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_PC_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) /* Windows Store */ + #include ++typedef IInspectable* EGLNativeDisplayType; + typedef IInspectable* EGLNativeWindowType; + #else ++typedef HDC EGLNativeDisplayType; + typedef HWND EGLNativeWindowType; + #endif + +diff --git a/src/3rdparty/angle/src/common/NativeWindow.h b/src/3rdparty/angle/src/common/NativeWindow.h +index dc5fc8f..9e93aea 100644 +--- a/src/3rdparty/angle/src/common/NativeWindow.h ++++ b/src/3rdparty/angle/src/common/NativeWindow.h +@@ -44,10 +44,11 @@ typedef IDXGIFactory DXGIFactory; + + namespace rx + { ++ + class NativeWindow + { +- public: +- explicit NativeWindow(EGLNativeWindowType window); ++public: ++ explicit NativeWindow(EGLNativeWindowType window, EGLNativeDisplayType display); + + bool initialize(); + bool getClientRect(LPRECT rect); +@@ -58,9 +59,11 @@ class NativeWindow + DXGISwapChain** swapChain); + + inline EGLNativeWindowType getNativeWindow() const { return mWindow; } ++ inline EGLNativeDisplayType getNativeDisplay() const { return mDisplay; } + + private: + EGLNativeWindowType mWindow; ++ EGLNativeDisplayType mDisplay; + + #if defined(ANGLE_ENABLE_WINDOWS_STORE) + std::shared_ptr mImpl; +diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h +index cd12dba..0065ec7 100644 +--- a/src/3rdparty/angle/src/common/platform.h ++++ b/src/3rdparty/angle/src/common/platform.h +@@ -34,7 +34,7 @@ + #endif + + #ifdef ANGLE_PLATFORM_WINDOWS +-# if defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP ++# if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_PC_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) + # define ANGLE_ENABLE_WINDOWS_STORE 1 + # endif + # ifndef STRICT +@@ -67,7 +67,9 @@ + # if defined(ANGLE_ENABLE_WINDOWS_STORE) + # include + # if defined(_DEBUG) ++# if (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) + # include ++# endif + # include + # endif + # endif +diff --git a/src/3rdparty/angle/src/common/win32/NativeWindow.cpp b/src/3rdparty/angle/src/common/win32/NativeWindow.cpp +index aa2bfa4..2440747 100644 +--- a/src/3rdparty/angle/src/common/win32/NativeWindow.cpp ++++ b/src/3rdparty/angle/src/common/win32/NativeWindow.cpp +@@ -16,7 +16,7 @@ bool IsValidEGLNativeWindowType(EGLNativeWindowType window) + return (IsWindow(window) == TRUE); + } + +-NativeWindow::NativeWindow(EGLNativeWindowType window) : mWindow(window) ++NativeWindow::NativeWindow(EGLNativeWindowType window, EGLNativeDisplayType display) : mWindow(window), mDisplay(display) + { + } + +diff --git a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp +index 0e63fa5..9b65c15 100644 +--- a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp ++++ b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp +@@ -6,21 +6,25 @@ + + // CoreWindowNativeWindow.cpp: NativeWindow for managing ICoreWindow native window types. + +-#include ++#include + #include "common/winrt/CoreWindowNativeWindow.h" + using namespace ABI::Windows::Foundation::Collections; + + namespace rx + { ++ ++typedef ITypedEventHandler SizeChangedHandler; ++ + CoreWindowNativeWindow::~CoreWindowNativeWindow() + { + unregisterForSizeChangeEvents(); + } + +-bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet *propertySet) ++bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, EGLNativeDisplayType display, IPropertySet *propertySet) + { + ComPtr props = propertySet; + ComPtr win = window; ++ ComPtr displayInformation = display; + SIZE swapChainSize = {}; + bool swapChainSizeSpecified = false; + HRESULT result = S_OK; +@@ -47,6 +51,29 @@ bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet + + if (SUCCEEDED(result)) + { ++ result = displayInformation.As(&mDisplayInformation); ++ } ++ ++ if (SUCCEEDED(result)) ++ { ++#if WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP ++ ComPtr displayInformation2; ++ result = mDisplayInformation.As(&displayInformation2); ++ ASSERT(SUCCEEDED(result)); ++ ++ result = displayInformation2->get_RawPixelsPerViewPixel(&mScaleFactor); ++ ASSERT(SUCCEEDED(result)); ++#else ++ ABI::Windows::Graphics::Display::ResolutionScale resolutionScale; ++ result = mDisplayInformation->get_ResolutionScale(&resolutionScale); ++ ASSERT(SUCCEEDED(result)); ++ ++ mScaleFactor = DOUBLE(resolutionScale) / 100.0; ++#endif ++ } ++ ++ if (SUCCEEDED(result)) ++ { + // If a swapchain size is specfied, then the automatic resize + // behaviors implemented by the host should be disabled. The swapchain + // will be still be scaled when being rendered to fit the bounds +@@ -60,7 +87,14 @@ bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet + } + else + { +- result = GetCoreWindowSizeInPixels(mCoreWindow, &mClientRect); ++ ABI::Windows::Foundation::Rect rect; ++ HRESULT result = mCoreWindow->get_Bounds(&rect); ++ if (SUCCEEDED(result)) ++ { ++ LONG width = std::floor(rect.Width * mScaleFactor + 0.5); ++ LONG height = std::floor(rect.Height * mScaleFactor + 0.5); ++ mClientRect = { 0, 0, width, height }; ++ } + } + } + +@@ -76,12 +110,8 @@ bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet + + bool CoreWindowNativeWindow::registerForSizeChangeEvents() + { +- ComPtr sizeChangedHandler; +- HRESULT result = Microsoft::WRL::MakeAndInitialize(sizeChangedHandler.ReleaseAndGetAddressOf(), this->shared_from_this()); +- if (SUCCEEDED(result)) +- { +- result = mCoreWindow->add_SizeChanged(sizeChangedHandler.Get(), &mSizeChangedEventToken); +- } ++ HRESULT result = mCoreWindow->add_SizeChanged(Callback(this, &CoreWindowNativeWindow::onSizeChanged).Get(), ++ &mSizeChangedEventToken); + + if (SUCCEEDED(result)) + { +@@ -126,7 +156,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, DXGIFactor + if (SUCCEEDED(result)) + { + +-#if (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) ++#if (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) // This block is disabled for Qt applications, as the resize events are expected + // Test if swapchain supports resize. On Windows Phone devices, this will return DXGI_ERROR_UNSUPPORTED. On + // other devices DXGI_ERROR_INVALID_CALL should be returned because the combination of flags passed + // (DXGI_SWAP_CHAIN_FLAG_NONPREROTATED | DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE) are invalid flag combinations. +@@ -152,36 +182,19 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, DXGIFactor + return result; + } + +-HRESULT GetCoreWindowSizeInPixels(const ComPtr& coreWindow, RECT *windowSize) ++// Basically, this shouldn't be used on Phone ++HRESULT CoreWindowNativeWindow::onSizeChanged(ABI::Windows::UI::Core::ICoreWindow *, ABI::Windows::UI::Core::IWindowSizeChangedEventArgs *e) + { +- ABI::Windows::Foundation::Rect bounds; +- HRESULT result = coreWindow->get_Bounds(&bounds); +- if (SUCCEEDED(result)) ++ ABI::Windows::Foundation::Size size; ++ if (SUCCEEDED(e->get_Size(&size))) + { +- *windowSize = { 0, 0, ConvertDipsToPixels(bounds.Width), ConvertDipsToPixels(bounds.Height) }; ++ SIZE windowSizeInPixels = { ++ std::floor(size.Width * mScaleFactor + 0.5), ++ std::floor(size.Height * mScaleFactor + 0.5) ++ }; ++ setNewClientSize(windowSizeInPixels); + } + +- return result; -} - - #endif // __OSINCLUDE_H -diff --git a/src/3rdparty/angle/src/compiler/translator/ossource_posix.cpp b/src/3rdparty/angle/src/compiler/translator/ossource_posix.cpp -index 90a3757..d4bba4c 100644 ---- a/src/3rdparty/angle/src/compiler/translator/ossource_posix.cpp -+++ b/src/3rdparty/angle/src/compiler/translator/ossource_posix.cpp -@@ -33,6 +33,14 @@ OS_TLSIndex OS_AllocTLSIndex() +-static float GetLogicalDpi() +-{ +- ComPtr displayProperties; +- float dpi = 96.0f; +- +- if (SUCCEEDED(GetActivationFactory(HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayProperties).Get(), displayProperties.GetAddressOf()))) +- { +- if (SUCCEEDED(displayProperties->get_LogicalDpi(&dpi))) +- { +- return dpi; +- } +- } +- return dpi; +-} +- +-long ConvertDipsToPixels(float dips) +-{ +- static const float dipsPerInch = 96.0f; +- return lround((dips * GetLogicalDpi() / dipsPerInch)); ++ return S_OK; } - - -+void *OS_GetTLSValue(OS_TLSIndex nIndex) -+{ -+ ASSERT(nIndex != OS_INVALID_TLS_INDEX); -+ -+ return pthread_getspecific(nIndex); -+} -+ -+ - bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) - { - if (nIndex == OS_INVALID_TLS_INDEX) { -diff --git a/src/3rdparty/angle/src/compiler/translator/ossource_win.cpp b/src/3rdparty/angle/src/compiler/translator/ossource_win.cpp -index 2cc5871..abd8bc7 100644 ---- a/src/3rdparty/angle/src/compiler/translator/ossource_win.cpp -+++ b/src/3rdparty/angle/src/compiler/translator/ossource_win.cpp -@@ -29,6 +29,14 @@ OS_TLSIndex OS_AllocTLSIndex() } +diff --git a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.h b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.h +index 0c6222d..1c55124 100644 +--- a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.h ++++ b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.h +@@ -11,67 +11,29 @@ + #include "common/winrt/InspectableNativeWindow.h" + #include +- +-typedef ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CUI__CCore__CCoreWindow_Windows__CUI__CCore__CWindowSizeChangedEventArgs_t IWindowSizeChangedEventHandler; ++#include -+void *OS_GetTLSValue(OS_TLSIndex nIndex) -+{ -+ ASSERT(nIndex != OS_INVALID_TLS_INDEX); -+ -+ return TlsGetValue(nIndex); -+} -+ -+ - bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) + namespace rx { - if (nIndex == OS_INVALID_TLS_INDEX) { -diff --git a/src/3rdparty/angle/src/compiler/translator/ossource_winrt.cpp b/src/3rdparty/angle/src/compiler/translator/ossource_winrt.cpp -new file mode 100644 -index 0000000..bb061ca ---- /dev/null -+++ b/src/3rdparty/angle/src/compiler/translator/ossource_winrt.cpp -@@ -0,0 +1,75 @@ -+// -+// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+// -+ -+#include "compiler/translator/osinclude.h" -+// -+// This file contains contains Windows Runtime specific functions -+// -+ -+#if !defined(ANGLE_OS_WINRT) -+#error Trying to build a WinRT specific file in a non-WinRT build. -+#endif -+ -+#include -+ -+ -+// -+// Thread Local Storage Operations -+// -+__declspec(thread) std::vector *tls = nullptr; -+__declspec(thread) std::vector *freeIndices = nullptr; -+ -+OS_TLSIndex OS_AllocTLSIndex() -+{ -+ if (!tls) -+ tls = new std::vector; -+ -+ if (freeIndices && !freeIndices->empty()) { -+ OS_TLSIndex index = freeIndices->back(); -+ freeIndices->pop_back(); -+ return index; -+ } else { -+ tls->push_back(nullptr); -+ return tls->size() - 1; -+ } -+} -+ -+ -+void *OS_GetTLSValue(OS_TLSIndex nIndex) -+{ -+ ASSERT(nIndex != OS_INVALID_TLS_INDEX); -+ ASSERT(tls); -+ -+ return tls->at(nIndex); -+} -+ -+ -+bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) -+{ -+ if (!tls || nIndex >= tls->size() || nIndex == OS_INVALID_TLS_INDEX) { -+ ASSERT(0 && "OS_SetTLSValue(): Invalid TLS Index"); -+ return false; -+ } -+ -+ tls->at(nIndex) = lpvValue; -+ return true; -+} -+ -+ -+bool OS_FreeTLSIndex(OS_TLSIndex nIndex) -+{ -+ if (!tls || nIndex >= tls->size() || nIndex == OS_INVALID_TLS_INDEX) { -+ ASSERT(0 && "OS_SetTLSValue(): Invalid TLS Index"); -+ return false; -+ } -+ -+ if (!freeIndices) -+ freeIndices = new std::vector; -+ -+ freeIndices->push_back(nIndex); -+ -+ return true; -+} -diff --git a/src/3rdparty/angle/src/libEGL/Display.cpp b/src/3rdparty/angle/src/libEGL/Display.cpp -index a7f5f5a..e75a4b6 100644 ---- a/src/3rdparty/angle/src/libEGL/Display.cpp -+++ b/src/3rdparty/angle/src/libEGL/Display.cpp -@@ -1,3 +1,4 @@ -+#include "../libGLESv2/precompiled.h" - // - // Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved. - // Use of this source code is governed by a BSD-style license that can be -@@ -40,13 +41,13 @@ egl::Display *Display::getDisplay(EGLNativeDisplayType displayId) +-long ConvertDipsToPixels(float dips); - // FIXME: Check if displayId is a valid display device context - -- egl::Display *display = new egl::Display(displayId, (HDC)displayId); -+ egl::Display *display = new egl::Display(displayId); - - displays[displayId] = display; - return display; - } - --Display::Display(EGLNativeDisplayType displayId, HDC deviceContext) : mDc(deviceContext) -+Display::Display(EGLNativeDisplayType displayId) + class CoreWindowNativeWindow : public InspectableNativeWindow, public std::enable_shared_from_this { - mDisplayId = displayId; - mRenderer = NULL; -@@ -71,7 +72,7 @@ bool Display::initialize() - return true; - } + public: + ~CoreWindowNativeWindow(); -- mRenderer = glCreateRenderer(this, mDc, mDisplayId); -+ mRenderer = glCreateRenderer(this, mDisplayId); - - if (!mRenderer) - { -@@ -186,7 +187,7 @@ bool Display::getConfigAttrib(EGLConfig config, EGLint attribute, EGLint *value) +- bool initialize(EGLNativeWindowType window, IPropertySet *propertySet); ++ bool initialize(EGLNativeWindowType window, EGLNativeDisplayType display, IPropertySet *propertySet); + bool registerForSizeChangeEvents(); + void unregisterForSizeChangeEvents(); + HRESULT createSwapChain(ID3D11Device *device, DXGIFactory *factory, DXGI_FORMAT format, unsigned int width, unsigned int height, DXGISwapChain **swapChain); - - --EGLSurface Display::createWindowSurface(HWND window, EGLConfig config, const EGLint *attribList) -+EGLSurface Display::createWindowSurface(EGLNativeWindowType window, EGLConfig config, const EGLint *attribList) - { - const Config *configuration = mConfigSet.get(config); - EGLint postSubBufferSupported = EGL_FALSE; -@@ -456,7 +457,7 @@ bool Display::isValidSurface(egl::Surface *surface) - return mSurfaceSet.find(surface) != mSurfaceSet.end(); - } - --bool Display::hasExistingWindowSurface(HWND window) -+bool Display::hasExistingWindowSurface(EGLNativeWindowType window) - { - for (SurfaceSet::iterator surface = mSurfaceSet.begin(); surface != mSurfaceSet.end(); surface++) - { -diff --git a/src/3rdparty/angle/src/libEGL/Display.h b/src/3rdparty/angle/src/libEGL/Display.h -index c816e4e..cd07bb3 100644 ---- a/src/3rdparty/angle/src/libEGL/Display.h -+++ b/src/3rdparty/angle/src/libEGL/Display.h -@@ -38,7 +38,7 @@ class Display - bool getConfigs(EGLConfig *configs, const EGLint *attribList, EGLint configSize, EGLint *numConfig); - bool getConfigAttrib(EGLConfig config, EGLint attribute, EGLint *value); - -- EGLSurface createWindowSurface(HWND window, EGLConfig config, const EGLint *attribList); -+ EGLSurface createWindowSurface(EGLNativeWindowType window, EGLConfig config, const EGLint *attribList); - EGLSurface createOffscreenSurface(EGLConfig config, HANDLE shareHandle, const EGLint *attribList); - EGLContext createContext(EGLConfig configHandle, const gl::Context *shareContext, bool notifyResets, bool robustAccess); - -@@ -49,7 +49,7 @@ class Display - bool isValidConfig(EGLConfig config); - bool isValidContext(gl::Context *context); - bool isValidSurface(egl::Surface *surface); -- bool hasExistingWindowSurface(HWND window); -+ bool hasExistingWindowSurface(EGLNativeWindowType window); - - rx::Renderer *getRenderer() { return mRenderer; }; - -@@ -63,12 +63,11 @@ class Display private: - DISALLOW_COPY_AND_ASSIGN(Display); - -- Display(EGLNativeDisplayType displayId, HDC deviceContext); -+ Display(EGLNativeDisplayType displayId); - - bool restoreLostDevice(); - - EGLNativeDisplayType mDisplayId; -- const HDC mDc; - - bool mSoftwareDevice; - -diff --git a/src/3rdparty/angle/src/libEGL/Surface.cpp b/src/3rdparty/angle/src/libEGL/Surface.cpp -index 12f8dfd..3443355 100644 ---- a/src/3rdparty/angle/src/libEGL/Surface.cpp -+++ b/src/3rdparty/angle/src/libEGL/Surface.cpp -@@ -1,3 +1,4 @@ -+#include "../libGLESv2/precompiled.h" - // - // Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. - // Use of this source code is governed by a BSD-style license that can be -@@ -22,10 +23,15 @@ - #include "libEGL/main.h" - #include "libEGL/Display.h" - -+#if defined(ANGLE_OS_WINRT) -+#include -+#include -+#endif ++ HRESULT onSizeChanged(ABI::Windows::UI::Core::ICoreWindow *, ABI::Windows::UI::Core::IWindowSizeChangedEventArgs *); + - namespace egl - { + ComPtr mCoreWindow; ++ ComPtr mDisplayInformation; + ComPtr> mPropertyMap; + }; --Surface::Surface(Display *display, const Config *config, HWND window, EGLint fixedSize, EGLint width, EGLint height, EGLint postSubBufferSupported) -+Surface::Surface(Display *display, const Config *config, EGLNativeWindowType window, EGLint fixedSize, EGLint width, EGLint height, EGLint postSubBufferSupported) - : mDisplay(display), mConfig(config), mWindow(window), mPostSubBufferSupported(postSubBufferSupported) - { - mRenderer = mDisplay->getRenderer(); -@@ -98,6 +104,7 @@ bool Surface::resetSwapChain() +-[uuid(7F924F66-EBAE-40E5-A10B-B8F35E245190)] +-class CoreWindowSizeChangedHandler : +- public Microsoft::WRL::RuntimeClass, IWindowSizeChangedEventHandler> +-{ +- public: +- CoreWindowSizeChangedHandler() { } +- HRESULT RuntimeClassInitialize(std::shared_ptr host) +- { +- if (!host) +- { +- return E_INVALIDARG; +- } +- +- mHost = host; +- return S_OK; +- } +- +- // IWindowSizeChangedEventHandler +- IFACEMETHOD(Invoke)(ABI::Windows::UI::Core::ICoreWindow *sender, ABI::Windows::UI::Core::IWindowSizeChangedEventArgs *sizeChangedEventArgs) +- { +- std::shared_ptr host = mHost.lock(); +- if (host) +- { +- ABI::Windows::Foundation::Size windowSize; +- if (SUCCEEDED(sizeChangedEventArgs->get_Size(&windowSize))) +- { +- SIZE windowSizeInPixels = { ConvertDipsToPixels(windowSize.Width), ConvertDipsToPixels(windowSize.Height) }; +- host->setNewClientSize(windowSizeInPixels); +- } +- } +- +- return S_OK; +- } +- +- private: +- std::weak_ptr mHost; +-}; +- +-HRESULT GetCoreWindowSizeInPixels(const ComPtr& coreWindow, RECT *windowSize); + } - if (mWindow) - { -+#if !defined(ANGLE_OS_WINRT) - RECT windowRect; - if (!GetClientRect(getWindowHandle(), &windowRect)) + #endif // COMMON_WINRT_COREWINDOWNATIVEWINDOW_H_ +diff --git a/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.cpp b/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.cpp +index c062a48..0589f6d 100644 +--- a/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.cpp ++++ b/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.cpp +@@ -11,9 +11,9 @@ + + namespace rx + { +-NativeWindow::NativeWindow(EGLNativeWindowType window) ++NativeWindow::NativeWindow(EGLNativeWindowType window, EGLNativeDisplayType display) ++ : mWindow(window), mDisplay(display) + { +- mWindow = window; + } + + bool NativeWindow::initialize() +@@ -40,7 +40,7 @@ bool NativeWindow::initialize() + mImpl = std::make_shared(); + if (mImpl) { -@@ -109,6 +116,16 @@ bool Surface::resetSwapChain() - - width = windowRect.right - windowRect.left; - height = windowRect.bottom - windowRect.top; -+#else -+ ABI::Windows::Foundation::Rect windowRect; -+ ABI::Windows::UI::Core::ICoreWindow *window; -+ HRESULT hr = mWindow->QueryInterface(IID_PPV_ARGS(&window)); -+ if (FAILED(hr)) -+ return false; -+ window->get_Bounds(&windowRect); -+ width = windowRect.Width; -+ height = windowRect.Height; -+#endif +- return mImpl->initialize(mWindow, propertySet.Get()); ++ return mImpl->initialize(mWindow, mDisplay, propertySet.Get()); + } + } + else if (IsSwapChainPanel(mWindow, &swapChainPanel)) +@@ -48,7 +48,7 @@ bool NativeWindow::initialize() + mImpl = std::make_shared(); + if (mImpl) + { +- return mImpl->initialize(mWindow, propertySet.Get()); ++ return mImpl->initialize(mWindow, mDisplay, propertySet.Get()); + } } else +diff --git a/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.h b/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.h +index c625348..402941a 100644 +--- a/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.h ++++ b/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.h +@@ -32,13 +32,14 @@ class InspectableNativeWindow + mRequiresSwapChainScaling(false), + mClientRectChanged(false), + mClientRect({0,0,0,0}), +- mNewClientRect({0,0,0,0}) ++ mNewClientRect({0,0,0,0}), ++ mScaleFactor(1.0) { -@@ -221,7 +238,7 @@ bool Surface::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) - return true; + mSizeChangedEventToken.value = 0; + } + virtual ~InspectableNativeWindow(){} + +- virtual bool initialize(EGLNativeWindowType window, IPropertySet *propertySet) = 0; ++ virtual bool initialize(EGLNativeWindowType window, EGLNativeDisplayType display, IPropertySet *propertySet) = 0; + virtual HRESULT createSwapChain(ID3D11Device *device, DXGIFactory *factory, DXGI_FORMAT format, unsigned int width, unsigned int height, DXGISwapChain **swapChain) = 0; + virtual bool registerForSizeChangeEvents() = 0; + virtual void unregisterForSizeChangeEvents() = 0; +@@ -49,6 +50,7 @@ class InspectableNativeWindow + if (mClientRectChanged && mSupportsSwapChainResize) + { + mClientRect = mNewClientRect; ++ mClientRectChanged = false; + } + + *rect = mClientRect; +@@ -76,6 +78,7 @@ protected: + RECT mClientRect; + RECT mNewClientRect; + bool mClientRectChanged; ++ DOUBLE mScaleFactor; + + EventRegistrationToken mSizeChangedEventToken; + }; +diff --git a/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.cpp b/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.cpp +index 4e4fb6d..268dfbd 100644 +--- a/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.cpp ++++ b/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.cpp +@@ -18,7 +18,7 @@ SwapChainPanelNativeWindow::~SwapChainPanelNativeWindow() + unregisterForSizeChangeEvents(); } --HWND Surface::getWindowHandle() -+EGLNativeWindowType Surface::getWindowHandle() +-bool SwapChainPanelNativeWindow::initialize(EGLNativeWindowType window, IPropertySet *propertySet) ++bool SwapChainPanelNativeWindow::initialize(EGLNativeWindowType window, EGLNativeDisplayType display, IPropertySet *propertySet) { - return mWindow; - } -@@ -230,6 +247,7 @@ HWND Surface::getWindowHandle() - #define kSurfaceProperty _TEXT("Egl::SurfaceOwner") - #define kParentWndProc _TEXT("Egl::SurfaceParentWndProc") + ComPtr props = propertySet; + ComPtr win = window; +diff --git a/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.h b/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.h +index e88f554..5bbf274 100644 +--- a/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.h ++++ b/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.h +@@ -18,7 +18,7 @@ class SwapChainPanelNativeWindow : public InspectableNativeWindow, public std::e + public: + ~SwapChainPanelNativeWindow(); -+#if !defined(ANGLE_OS_WINRT) - static LRESULT CALLBACK SurfaceWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) +- bool initialize(EGLNativeWindowType window, IPropertySet *propertySet); ++ bool initialize(EGLNativeWindowType window, EGLNativeDisplayType display, IPropertySet *propertySet); + bool registerForSizeChangeEvents(); + void unregisterForSizeChangeEvents(); + HRESULT createSwapChain(ID3D11Device *device, DXGIFactory *factory, DXGI_FORMAT format, unsigned int width, unsigned int height, DXGISwapChain **swapChain); +diff --git a/src/3rdparty/angle/src/libEGL/Display.h b/src/3rdparty/angle/src/libEGL/Display.h +index 378323a..b3ffcc8 100644 +--- a/src/3rdparty/angle/src/libEGL/Display.h ++++ b/src/3rdparty/angle/src/libEGL/Display.h +@@ -67,6 +67,7 @@ class Display + + const char *getExtensionString() const; + const char *getVendorString() const; ++ EGLNativeDisplayType getDisplayId() const { return mDisplayId; } + + private: + DISALLOW_COPY_AND_ASSIGN(Display); +diff --git a/src/3rdparty/angle/src/libEGL/Surface.cpp b/src/3rdparty/angle/src/libEGL/Surface.cpp +index 3414656..b664a85 100644 +--- a/src/3rdparty/angle/src/libEGL/Surface.cpp ++++ b/src/3rdparty/angle/src/libEGL/Surface.cpp +@@ -31,7 +31,7 @@ namespace egl { - if (message == WM_SIZE) -@@ -243,9 +261,13 @@ static LRESULT CALLBACK SurfaceWindowProc(HWND hwnd, UINT message, WPARAM wparam - WNDPROC prevWndFunc = reinterpret_cast(GetProp(hwnd, kParentWndProc)); - return CallWindowProc(prevWndFunc, hwnd, message, wparam, lparam); + + Surface::Surface(Display *display, const Config *config, EGLNativeWindowType window, EGLint fixedSize, EGLint width, EGLint height, EGLint postSubBufferSupported) +- : mDisplay(display), mConfig(config), mNativeWindow(window), mPostSubBufferSupported(postSubBufferSupported) ++ : mDisplay(display), mConfig(config), mNativeWindow(window, display->getDisplayId()), mPostSubBufferSupported(postSubBufferSupported) + { + //TODO(jmadill): MANGLE refactor. (note, can't call makeRendererD3D because of dll export issues) + mRenderer = static_cast(mDisplay->getRenderer()); +@@ -47,6 +47,8 @@ Surface::Surface(Display *display, const Config *config, EGLNativeWindowType win + mSwapInterval = -1; + mWidth = width; + mHeight = height; ++ mFixedWidth = mWidth; ++ mFixedHeight = mHeight; + setSwapInterval(1); + mFixedSize = fixedSize; + +@@ -54,7 +56,7 @@ Surface::Surface(Display *display, const Config *config, EGLNativeWindowType win } + + Surface::Surface(Display *display, const Config *config, HANDLE shareHandle, EGLint width, EGLint height, EGLenum textureFormat, EGLenum textureType) +- : mDisplay(display), mNativeWindow(NULL), mConfig(config), mShareHandle(shareHandle), mWidth(width), mHeight(height), mPostSubBufferSupported(EGL_FALSE) ++ : mDisplay(display), mNativeWindow(NULL, NULL), mConfig(config), mShareHandle(shareHandle), mWidth(width), mHeight(height), mPostSubBufferSupported(EGL_FALSE) + { + //TODO(jmadill): MANGLE refactor. (note, can't call makeRendererD3D because of dll export issues) + mRenderer = static_cast(mDisplay->getRenderer()); +@@ -71,6 +73,8 @@ Surface::Surface(Display *display, const Config *config, HANDLE shareHandle, EGL + setSwapInterval(1); + // This constructor is for offscreen surfaces, which are always fixed-size. + mFixedSize = EGL_TRUE; ++ mFixedWidth = mWidth; ++ mFixedHeight = mHeight; + } + + Surface::~Surface() +@@ -157,10 +161,13 @@ Error Surface::resetSwapChain() + + Error Surface::resizeSwapChain(int backbufferWidth, int backbufferHeight) + { +- ASSERT(backbufferWidth >= 0 && backbufferHeight >= 0); + ASSERT(mSwapChain); + +- EGLint status = mSwapChain->resize(std::max(1, backbufferWidth), std::max(1, backbufferHeight)); ++#if !defined(ANGLE_ENABLE_WINDOWS_STORE) ++ backbufferWidth = std::max(1, backbufferWidth); ++ backbufferHeight = std::max(1, backbufferHeight); +#endif ++ EGLint status = mSwapChain->resize(backbufferWidth, backbufferHeight); - void Surface::subclassWindow() - { -+#if defined(ANGLE_OS_WINRT) -+ mWindowSubclassed = false; -+#else - if (!mWindow) + if (status == EGL_CONTEXT_LOST) { - return; -@@ -269,10 +291,12 @@ void Surface::subclassWindow() - SetProp(mWindow, kSurfaceProperty, reinterpret_cast(this)); - SetProp(mWindow, kParentWndProc, reinterpret_cast(oldWndProc)); - mWindowSubclassed = true; -+#endif - } +@@ -209,14 +216,14 @@ Error Surface::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) + return Error(EGL_SUCCESS); + } - void Surface::unsubclassWindow() - { -+#if !defined(ANGLE_OS_WINRT) - if(!mWindowSubclassed) +- if (x + width > mWidth) ++ if (x + width > abs(mWidth)) { - return; -@@ -295,10 +319,12 @@ void Surface::unsubclassWindow() - RemoveProp(mWindow, kSurfaceProperty); - RemoveProp(mWindow, kParentWndProc); - mWindowSubclassed = false; -+#endif - } +- width = mWidth - x; ++ width = abs(mWidth) - x; + } - bool Surface::checkForOutOfDateSwapChain() - { -+#if !defined(ANGLE_OS_WINRT) - RECT client; - if (!GetClientRect(getWindowHandle(), &client)) +- if (y + height > mHeight) ++ if (y + height > abs(mHeight)) { -@@ -309,6 +335,16 @@ bool Surface::checkForOutOfDateSwapChain() - // Grow the buffer now, if the window has grown. We need to grow now to avoid losing information. - clientWidth = client.right - client.left; - clientHeight = client.bottom - client.top; -+#else -+ ABI::Windows::Foundation::Rect windowRect; -+ ABI::Windows::UI::Core::ICoreWindow *window; -+ HRESULT hr = mWindow->QueryInterface(IID_PPV_ARGS(&window)); -+ if (FAILED(hr)) -+ return false; -+ window->get_Bounds(&windowRect); -+ int clientWidth = windowRect.Width; -+ int clientHeight = windowRect.Height; -+#endif +- height = mHeight - y; ++ height = abs(mHeight) - y; + } + + if (width == 0 || height == 0) +@@ -224,6 +231,9 @@ Error Surface::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) + return Error(EGL_SUCCESS); + } + ++ ASSERT(width > 0); ++ ASSERT(height > 0); ++ + EGLint status = mSwapChain->swapRect(x, y, width, height); + + if (status == EGL_CONTEXT_LOST) +@@ -352,6 +362,13 @@ bool Surface::checkForOutOfDateSwapChain() sizeDirty = clientWidth != getWidth() || clientHeight != getHeight(); } ++ if (mFixedSize && (mWidth != mFixedWidth || mHeight != mFixedHeight)) ++ { ++ clientWidth = mFixedWidth; ++ clientHeight = mFixedHeight; ++ sizeDirty = true; ++ } ++ + bool wasDirty = (mSwapIntervalDirty || sizeDirty); + + if (mSwapIntervalDirty) +@@ -378,7 +395,7 @@ bool Surface::checkForOutOfDateSwapChain() + + Error Surface::swap() + { +- return swapRect(0, 0, mWidth, mHeight); ++ return swapRect(0, 0, abs(mWidth), abs(mHeight)); + } + + Error Surface::postSubBuffer(EGLint x, EGLint y, EGLint width, EGLint height) +@@ -471,6 +488,16 @@ EGLint Surface::isFixedSize() const + return mFixedSize; + } + ++void Surface::setFixedWidth(EGLint width) ++{ ++ mFixedWidth = width; ++} ++ ++void Surface::setFixedHeight(EGLint height) ++{ ++ mFixedHeight = height; ++} ++ + EGLenum Surface::getFormat() const + { + return mConfig->mRenderTargetFormat; diff --git a/src/3rdparty/angle/src/libEGL/Surface.h b/src/3rdparty/angle/src/libEGL/Surface.h -index 938b800..1d2303c 100644 +index 662fe21..46382d0 100644 --- a/src/3rdparty/angle/src/libEGL/Surface.h +++ b/src/3rdparty/angle/src/libEGL/Surface.h -@@ -34,7 +34,7 @@ class Config; - class Surface - { - public: -- Surface(Display *display, const egl::Config *config, HWND window, EGLint fixedSize, EGLint width, EGLint height, EGLint postSubBufferSupported); -+ Surface(Display *display, const egl::Config *config, EGLNativeWindowType window, EGLint fixedSize, EGLint width, EGLint height, EGLint postSubBufferSupported); - Surface(Display *display, const egl::Config *config, HANDLE shareHandle, EGLint width, EGLint height, EGLenum textureFormat, EGLenum textureTarget); +@@ -70,6 +70,8 @@ class Surface + virtual gl::Texture2D *getBoundTexture() const; - ~Surface(); -@@ -43,7 +43,7 @@ class Surface - void release(); - bool resetSwapChain(); + EGLint isFixedSize() const; ++ void setFixedWidth(EGLint width); ++ void setFixedHeight(EGLint height); -- HWND getWindowHandle(); -+ EGLNativeWindowType getWindowHandle(); - bool swap(); - bool postSubBuffer(EGLint x, EGLint y, EGLint width, EGLint height); - -@@ -79,7 +79,7 @@ private: - bool resetSwapChain(int backbufferWidth, int backbufferHeight); - bool swapRect(EGLint x, EGLint y, EGLint width, EGLint height); - -- const HWND mWindow; // Window that the surface is created for. -+ const EGLNativeWindowType mWindow; // Window that the surface is created for. - bool mWindowSubclassed; // Indicates whether we successfully subclassed mWindow for WM_RESIZE hooking + private: + DISALLOW_COPY_AND_ASSIGN(Surface); +@@ -91,6 +93,8 @@ class Surface const egl::Config *mConfig; // EGL config surface was created with EGLint mHeight; // Height of surface + EGLint mWidth; // Width of surface ++ EGLint mFixedHeight; // Pending height of the surface ++ EGLint mFixedWidth; // Pending width of the surface + // EGLint horizontalResolution; // Horizontal dot pitch + // EGLint verticalResolution; // Vertical dot pitch + // EGLBoolean largestPBuffer; // If true, create largest pbuffer possible diff --git a/src/3rdparty/angle/src/libEGL/libEGL.cpp b/src/3rdparty/angle/src/libEGL/libEGL.cpp -index 0ea46d4..b2944d5 100644 +index 6110698..dc20d85 100644 --- a/src/3rdparty/angle/src/libEGL/libEGL.cpp +++ b/src/3rdparty/angle/src/libEGL/libEGL.cpp -@@ -308,14 +308,16 @@ EGLSurface __stdcall eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EG - return EGL_NO_SURFACE; - } - -+#if !defined(ANGLE_OS_WINRT) - HWND window = (HWND)win; - - if (!IsWindow(window)) - { - return egl::error(EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE); - } -+#endif - -- return display->createWindowSurface(window, config, attrib_list); -+ return display->createWindowSurface(win, config, attrib_list); - } - catch(std::bad_alloc&) - { -diff --git a/src/3rdparty/angle/src/libEGL/main.cpp b/src/3rdparty/angle/src/libEGL/main.cpp -index 772b8eb..e972691 100644 ---- a/src/3rdparty/angle/src/libEGL/main.cpp -+++ b/src/3rdparty/angle/src/libEGL/main.cpp -@@ -1,3 +1,4 @@ -+#include "../libGLESv2/precompiled.h" - // - // Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. - // Use of this source code is governed by a BSD-style license that can be -@@ -10,14 +11,23 @@ - - #include "common/debug.h" - -+#if !defined(ANGLE_OS_WINRT) - static DWORD currentTLS = TLS_OUT_OF_INDEXES; -+#else -+static __declspec(thread) void *currentTLS = 0; -+#endif - - namespace egl - { - - Current *AllocateCurrent() - { -+#if !defined(ANGLE_OS_WINRT) - Current *current = (egl::Current*)LocalAlloc(LPTR, sizeof(egl::Current)); -+#else -+ currentTLS = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(Current)); -+ Current *current = (egl::Current*)currentTLS; -+#endif - - if (!current) - { -@@ -25,8 +35,10 @@ Current *AllocateCurrent() - return NULL; +@@ -706,6 +706,26 @@ EGLBoolean __stdcall eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint + return EGL_FALSE; } -+#if !defined(ANGLE_OS_WINRT) - ASSERT(currentTLS != TLS_OUT_OF_INDEXES); - TlsSetValue(currentTLS, current); -+#endif - - current->error = EGL_SUCCESS; - current->API = EGL_OPENGL_ES_API; -@@ -39,12 +51,20 @@ Current *AllocateCurrent() - - void DeallocateCurrent() - { -+#if !defined(ANGLE_OS_WINRT) - void *current = TlsGetValue(currentTLS); - - if (current) - { - LocalFree((HLOCAL)current); - } -+#else -+ if (currentTLS) ++ switch (attribute) + { -+ HeapFree(GetProcessHeap(), 0, currentTLS); -+ currentTLS = 0; ++ case EGL_WIDTH: ++ if (!eglSurface->isFixedSize() || !value) { ++ recordError(egl::Error(EGL_BAD_PARAMETER)); ++ return EGL_FALSE; ++ } ++ eglSurface->setFixedWidth(value); ++ return EGL_TRUE; ++ case EGL_HEIGHT: ++ if (!eglSurface->isFixedSize() || !value) { ++ recordError(egl::Error(EGL_BAD_PARAMETER)); ++ return EGL_FALSE; ++ } ++ eglSurface->setFixedHeight(value); ++ return EGL_TRUE; ++ default: ++ break; + } -+#endif - } - - } -@@ -69,13 +89,14 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved - } - } - #endif -- -+#if !defined(ANGLE_OS_WINRT) - currentTLS = TlsAlloc(); - - if (currentTLS == TLS_OUT_OF_INDEXES) - { - return FALSE; - } -+#endif - } - // Fall throught to initialize index - case DLL_THREAD_ATTACH: -@@ -91,7 +112,9 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved - case DLL_PROCESS_DETACH: - { - egl::DeallocateCurrent(); -+#if !defined(ANGLE_OS_WINRT) - TlsFree(currentTLS); -+#endif - } - break; - default: -@@ -107,7 +130,11 @@ namespace egl - - Current *GetCurrentData() - { -+#if !defined(ANGLE_OS_WINRT) - Current *current = (Current*)TlsGetValue(currentTLS); -+#else -+ Current *current = (Current*)currentTLS; -+#endif - - // ANGLE issue 488: when the dll is loaded after thread initialization, - // thread local storage (current) might not exist yet. -diff --git a/src/3rdparty/angle/src/libGLESv2/Context.cpp b/src/3rdparty/angle/src/libGLESv2/Context.cpp -index 1a058b6..e651785 100644 ---- a/src/3rdparty/angle/src/libGLESv2/Context.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/Context.cpp -@@ -1076,6 +1076,7 @@ void Context::setRenderbufferStorage(GLsizei width, GLsizei height, GLenum inter - case GL_RGB565: - case GL_RGB8_OES: - case GL_RGBA8_OES: -+ case GL_BGRA8_EXT: - renderbuffer = new gl::Colorbuffer(mRenderer,width, height, internalformat, samples); - break; - case GL_STENCIL_INDEX8: -diff --git a/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp b/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp -index a33481e..814dfbf 100644 ---- a/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp -@@ -4895,6 +4895,7 @@ void __stdcall glRenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samp - case GL_RGBA8_OES: - case GL_STENCIL_INDEX8: - case GL_DEPTH24_STENCIL8_OES: -+ case GL_BGRA8_EXT: - context->setRenderbufferStorage(width, height, internalformat, samples); - break; - default: -diff --git a/src/3rdparty/angle/src/libGLESv2/main.cpp b/src/3rdparty/angle/src/libGLESv2/main.cpp -index 6b459d3..95f4b8d 100644 ---- a/src/3rdparty/angle/src/libGLESv2/main.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/main.cpp -@@ -11,14 +11,23 @@ - - #include "libGLESv2/Context.h" - -+#if !defined(ANGLE_OS_WINRT) - static DWORD currentTLS = TLS_OUT_OF_INDEXES; -+#else -+static __declspec(thread) void *currentTLS = 0; -+#endif - - namespace gl - { - - Current *AllocateCurrent() - { -+#if !defined(ANGLE_OS_WINRT) - Current *current = (Current*)LocalAlloc(LPTR, sizeof(Current)); -+#else -+ currentTLS = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(Current)); -+ Current *current = (Current*)currentTLS; -+#endif - - if (!current) - { -@@ -26,8 +35,10 @@ Current *AllocateCurrent() - return NULL; - } - -+#if !defined(ANGLE_OS_WINRT) - ASSERT(currentTLS != TLS_OUT_OF_INDEXES); - TlsSetValue(currentTLS, current); -+#endif - - current->context = NULL; - current->display = NULL; -@@ -37,12 +48,20 @@ Current *AllocateCurrent() - - void DeallocateCurrent() - { -+#if !defined(ANGLE_OS_WINRT) - void *current = TlsGetValue(currentTLS); - - if (current) - { - LocalFree((HLOCAL)current); - } -+#else -+ if (currentTLS) -+ { -+ HeapFree(GetProcessHeap(), 0, currentTLS); -+ currentTLS = 0; -+ } -+#endif - } - - } -@@ -53,12 +72,14 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved - { - case DLL_PROCESS_ATTACH: - { -+#if !defined(ANGLE_OS_WINRT) - currentTLS = TlsAlloc(); - - if (currentTLS == TLS_OUT_OF_INDEXES) - { - return FALSE; - } -+#endif - } - // Fall throught to initialize index - case DLL_THREAD_ATTACH: -@@ -74,7 +95,9 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved - case DLL_PROCESS_DETACH: - { - gl::DeallocateCurrent(); -+#if !defined(ANGLE_OS_WINRT) - TlsFree(currentTLS); -+#endif - } - break; - default: -@@ -90,7 +113,11 @@ namespace gl - - Current *GetCurrentData() - { -+#if !defined(ANGLE_OS_WINRT) - Current *current = (Current*)TlsGetValue(currentTLS); -+#else -+ Current *current = (Current*)currentTLS; -+#endif - - // ANGLE issue 488: when the dll is loaded after thread initialization, - // thread local storage (current) might not exist yet. -diff --git a/src/3rdparty/angle/src/libGLESv2/main.h b/src/3rdparty/angle/src/libGLESv2/main.h -index b413f23..69465c9 100644 ---- a/src/3rdparty/angle/src/libGLESv2/main.h -+++ b/src/3rdparty/angle/src/libGLESv2/main.h -@@ -57,7 +57,7 @@ gl::Context *glCreateContext(const gl::Context *shareContext, rx::Renderer *rend - void glDestroyContext(gl::Context *context); - void glMakeCurrent(gl::Context *context, egl::Display *display, egl::Surface *surface); - gl::Context *glGetCurrentContext(); --rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayType displayId); -+rx::Renderer *glCreateRenderer(egl::Display *display, EGLNativeDisplayType displayId); - void glDestroyRenderer(rx::Renderer *renderer); - - __eglMustCastToProperFunctionPointerType __stdcall glGetProcAddress(const char *procname); -diff --git a/src/3rdparty/angle/src/libGLESv2/precompiled.h b/src/3rdparty/angle/src/libGLESv2/precompiled.h -index 79490b1..2ff09f5 100644 ---- a/src/3rdparty/angle/src/libGLESv2/precompiled.h -+++ b/src/3rdparty/angle/src/libGLESv2/precompiled.h -@@ -32,15 +32,56 @@ - #include - #include - -+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP) -+# define ANGLE_OS_WINRT -+# if WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP -+# define ANGLE_OS_WINPHONE -+# endif -+#endif + - #if defined(ANGLE_ENABLE_D3D9) - # include - #endif - #if defined(ANGLE_ENABLE_D3D11) --# include -+# if !defined(ANGLE_OS_WINRT) -+# include -+# else -+# include -+# define Sleep(x) WaitForSingleObjectEx(GetCurrentThread(), x, FALSE) -+# define GetVersion() WINVER -+# define LoadLibrary(x) LoadPackagedLibrary(x, NULL) -+# endif - # include - # include - #endif --#include -+#if !defined(ANGLE_OS_WINPHONE) -+# include -+#endif -+ -+#ifndef D3DCOMPILE_OPTIMIZATION_LEVEL0 -+#define D3DCOMPILE_OPTIMIZATION_LEVEL0 (1 << 14) -+#endif -+#ifndef D3DCOMPILE_OPTIMIZATION_LEVEL1 -+#define D3DCOMPILE_OPTIMIZATION_LEVEL1 0 -+#endif -+#ifndef D3DCOMPILE_OPTIMIZATION_LEVEL2 -+#define D3DCOMPILE_OPTIMIZATION_LEVEL2 ((1 << 14) | (1 << 15)) -+#endif -+#ifndef D3DCOMPILE_OPTIMIZATION_LEVEL3 -+#define D3DCOMPILE_OPTIMIZATION_LEVEL3 (1 << 15) -+#endif -+#ifndef D3DCOMPILE_DEBUG -+#define D3DCOMPILE_DEBUG (1 << 0) -+#endif -+#ifndef D3DCOMPILE_SKIP_OPTIMIZATION -+#define D3DCOMPILE_SKIP_OPTIMIZATION (1 << 2) -+#endif -+#ifndef D3DCOMPILE_AVOID_FLOW_CONTROL -+#define D3DCOMPILE_AVOID_FLOW_CONTROL (1 << 9) -+#endif -+#ifndef D3DCOMPILE_PREFER_FLOW_CONTROL -+#define D3DCOMPILE_PREFER_FLOW_CONTROL (1 << 10) -+#endif + UNIMPLEMENTED(); // FIXME - #ifdef _MSC_VER - #include -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -index 94cbc0e..5278113 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp -@@ -224,17 +224,22 @@ ShaderBlob *Renderer::compileToBinary(gl::InfoLog &infoLog, const char *hlsl, co - extern "C" - { - --rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayType displayId) -+rx::Renderer *glCreateRenderer(egl::Display *display, EGLNativeDisplayType displayId) - { - rx::Renderer *renderer = NULL; - EGLint status = EGL_BAD_ALLOC; - -+#if defined(ANGLE_OS_WINRT) -+ if (displayId == EGL_DEFAULT_DISPLAY) -+ displayId = EGL_D3D11_ONLY_DISPLAY_ANGLE; -+#endif -+ - #if defined(ANGLE_ENABLE_D3D11) - if (displayId == EGL_DEFAULT_DISPLAY || - displayId == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE || - displayId == EGL_D3D11_ONLY_DISPLAY_ANGLE) - { -- renderer = new rx::Renderer11(display, hDc); -+ renderer = new rx::Renderer11(display); - - if (renderer) - { -@@ -257,7 +262,7 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayT - - #if defined(ANGLE_ENABLE_D3D9) - bool softwareDevice = (displayId == EGL_SOFTWARE_DISPLAY_ANGLE); -- renderer = new rx::Renderer9(display, hDc, softwareDevice); -+ renderer = new rx::Renderer9(display, displayId, softwareDevice); - - if (renderer) - { -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.h b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.h -index 7244a0a..79578b2 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.h -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.h -@@ -1,3 +1,4 @@ -+#include "../precompiled.h" - // - // Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved. - // Use of this source code is governed by a BSD-style license that can be -@@ -113,7 +114,7 @@ class Renderer - - virtual void sync(bool block) = 0; - -- virtual SwapChain *createSwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat) = 0; -+ virtual SwapChain *createSwapChain(EGLNativeWindowType window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat) = 0; - - virtual void setSamplerState(gl::SamplerType type, int index, const gl::SamplerState &sampler) = 0; - virtual void setTexture(gl::SamplerType type, int index, gl::Texture *texture) = 0; -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain.h b/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain.h -index f09f19b..8231fbc 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain.h -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain.h -@@ -1,3 +1,4 @@ -+#include "../precompiled.h" - // - // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. - // Use of this source code is governed by a BSD-style license that can be -@@ -22,7 +23,7 @@ namespace rx - class SwapChain - { - public: -- SwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat) -+ SwapChain(EGLNativeWindowType window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat) - : mWindow(window), mShareHandle(shareHandle), mBackBufferFormat(backBufferFormat), mDepthBufferFormat(depthBufferFormat) - { - } -@@ -37,7 +38,7 @@ class SwapChain - virtual HANDLE getShareHandle() {return mShareHandle;}; - - protected: -- const HWND mWindow; // Window that the surface is created for. -+ const EGLNativeWindowType mWindow; // Window that the surface is created for. - const GLenum mBackBufferFormat; - const GLenum mDepthBufferFormat; - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp -index d9fcb7a..7f166fd 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp -@@ -66,7 +66,7 @@ enum - MAX_TEXTURE_IMAGE_UNITS_VTF_SM4 = 16 - }; - --Renderer11::Renderer11(egl::Display *display, HDC hDc) : Renderer(display), mDc(hDc) -+Renderer11::Renderer11(egl::Display *display) : Renderer(display) - { - mVertexDataManager = NULL; - mIndexDataManager = NULL; -@@ -137,6 +137,7 @@ EGLint Renderer11::initialize() - return EGL_NOT_INITIALIZED; - } - -+#if !defined(ANGLE_OS_WINRT) - mDxgiModule = LoadLibrary(TEXT("dxgi.dll")); - mD3d11Module = LoadLibrary(TEXT("d3d11.dll")); - -@@ -146,6 +147,7 @@ EGLint Renderer11::initialize() - return EGL_NOT_INITIALIZED; - } - -+ - // create the D3D11 device - ASSERT(mDevice == NULL); - PFN_D3D11_CREATE_DEVICE D3D11CreateDevice = (PFN_D3D11_CREATE_DEVICE)GetProcAddress(mD3d11Module, "D3D11CreateDevice"); -@@ -155,6 +157,7 @@ EGLint Renderer11::initialize() - ERR("Could not retrieve D3D11CreateDevice address - aborting!\n"); - return EGL_NOT_INITIALIZED; - } -+#endif - - D3D_FEATURE_LEVEL featureLevels[] = - { -@@ -203,8 +206,12 @@ EGLint Renderer11::initialize() - } - } - -+#if !defined(ANGLE_OS_WINRT) - IDXGIDevice *dxgiDevice = NULL; -- result = mDevice->QueryInterface(__uuidof(IDXGIDevice), (void**)&dxgiDevice); -+#else -+ IDXGIDevice1 *dxgiDevice = NULL; -+#endif -+ result = mDevice->QueryInterface(IID_PPV_ARGS(&dxgiDevice)); - - if (FAILED(result)) - { -@@ -522,7 +529,7 @@ void Renderer11::sync(bool block) - } - } - --SwapChain *Renderer11::createSwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat) -+SwapChain *Renderer11::createSwapChain(EGLNativeWindowType window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat) - { - return new rx::SwapChain11(this, window, shareHandle, backBufferFormat, depthBufferFormat); - } -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h -index 1b6760b..ba3f0c6 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h -@@ -39,7 +39,7 @@ enum - class Renderer11 : public Renderer - { - public: -- Renderer11(egl::Display *display, HDC hDc); -+ Renderer11(egl::Display *display); - virtual ~Renderer11(); - - static Renderer11 *makeRenderer11(Renderer *renderer); -@@ -52,7 +52,7 @@ class Renderer11 : public Renderer - - virtual void sync(bool block); - -- virtual SwapChain *createSwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat); -+ virtual SwapChain *createSwapChain(EGLNativeWindowType window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat); - - virtual void setSamplerState(gl::SamplerType type, int index, const gl::SamplerState &sampler); - virtual void setTexture(gl::SamplerType type, int index, gl::Texture *texture); -@@ -203,7 +203,6 @@ class Renderer11 : public Renderer + recordError(egl::Error(EGL_SUCCESS)); +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h +index 1655f1d..c789cae 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h +@@ -231,7 +231,7 @@ class Renderer11 : public RendererD3D HMODULE mD3d11Module; HMODULE mDxgiModule; - HDC mDc; ++ EGLNativeDisplayType mDc; + std::vector mAvailableFeatureLevels; + D3D_DRIVER_TYPE mDriverType; - bool mDeviceLost; +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp +index 834b7bd..52c8a81 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp +@@ -42,6 +42,8 @@ SwapChain11::SwapChain11(Renderer11 *renderer, NativeWindow nativeWindow, HANDLE + mPassThroughPS = NULL; + mWidth = -1; + mHeight = -1; ++ mRotateL = false; ++ mRotateR = false; + mSwapInterval = 0; + mAppCreatedShareHandle = mShareHandle != NULL; + mPassThroughResourcesInit = false; +@@ -92,10 +94,11 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei + ASSERT(device != NULL); -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.cpp -index d2b53a7..bd97d5c 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.cpp -@@ -18,7 +18,7 @@ - namespace rx - { + // D3D11 does not allow zero size textures +- ASSERT(backbufferWidth >= 1); +- ASSERT(backbufferHeight >= 1); ++ ASSERT(backbufferWidth != 0); ++ ASSERT(backbufferHeight != 0); --SwapChain11::SwapChain11(Renderer11 *renderer, HWND window, HANDLE shareHandle, -+SwapChain11::SwapChain11(Renderer11 *renderer, EGLNativeWindowType window, HANDLE shareHandle, - GLenum backBufferFormat, GLenum depthBufferFormat) - : mRenderer(renderer), SwapChain(window, shareHandle, backBufferFormat, depthBufferFormat) - { -@@ -361,25 +361,50 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap - - if (mWindow) + // Preserve the render target content ++#if !defined(ANGLE_ENABLE_WINDOWS_STORE) + ID3D11Texture2D *previousOffscreenTexture = mOffscreenTexture; + if (previousOffscreenTexture) { -+#if !defined(ANGLE_OS_WINRT) - IDXGIFactory *factory = mRenderer->getDxgiFactory(); - - DXGI_SWAP_CHAIN_DESC swapChainDesc = {0}; -- swapChainDesc.BufferCount = 2; - swapChainDesc.BufferDesc.Format = gl_d3d11::ConvertRenderbufferFormat(mBackBufferFormat); - swapChainDesc.BufferDesc.Width = backbufferWidth; - swapChainDesc.BufferDesc.Height = backbufferHeight; -+ swapChainDesc.BufferCount = 2; - swapChainDesc.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; - swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED; - swapChainDesc.BufferDesc.RefreshRate.Numerator = 0; - swapChainDesc.BufferDesc.RefreshRate.Denominator = 1; -+ swapChainDesc.Windowed = TRUE; -+ swapChainDesc.OutputWindow = mWindow; -+#else -+ IDXGIFactory2 *factory; -+ HRESULT result = mRenderer->getDxgiFactory()->QueryInterface(IID_PPV_ARGS(&factory)); -+ ASSERT(SUCCEEDED(result)); -+ -+ DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {0}; -+ swapChainDesc.Format = gl_d3d11::ConvertRenderbufferFormat(mBackBufferFormat); -+ swapChainDesc.Width = backbufferWidth; -+ swapChainDesc.Height = backbufferHeight; -+ swapChainDesc.Stereo = FALSE; -+#if !defined(ANGLE_OS_WINPHONE) -+ swapChainDesc.BufferCount = 2; -+ swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; -+#else -+ swapChainDesc.BufferCount = 1; -+ swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; -+#endif -+#endif - swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - swapChainDesc.Flags = 0; -- swapChainDesc.OutputWindow = mWindow; - swapChainDesc.SampleDesc.Count = 1; - swapChainDesc.SampleDesc.Quality = 0; -- swapChainDesc.Windowed = TRUE; - -+#if !defined(ANGLE_OS_WINRT) - HRESULT result = factory->CreateSwapChain(device, &swapChainDesc, &mSwapChain); -+#else -+ IDXGISwapChain1 *swapChain; -+ result = factory->CreateSwapChainForCoreWindow(device, mWindow, &swapChainDesc, NULL, &swapChain); -+ mSwapChain = swapChain; -+#endif - - if (FAILED(result)) - { -@@ -390,6 +415,7 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap - { - return EGL_CONTEXT_LOST; - } -+#if !defined(ANGLE_OS_WINRT) - else - { - // We cannot create a swap chain for an HWND that is owned by a different process on some versions of -@@ -408,6 +434,9 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap - return EGL_BAD_ALLOC; - } - } -+#else -+ return EGL_BAD_ALLOC; -+#endif - } - - result = mSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&mBackBufferTexture); -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.h -index 8001046..2a030c8 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.h -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.h -@@ -19,7 +19,7 @@ class Renderer11; - class SwapChain11 : public SwapChain - { - public: -- SwapChain11(Renderer11 *renderer, HWND window, HANDLE shareHandle, -+ SwapChain11(Renderer11 *renderer, EGLNativeWindowType window, HANDLE shareHandle, - GLenum backBufferFormat, GLenum depthBufferFormat); - virtual ~SwapChain11(); - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/shaders/Clear11.hlsl b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/shaders/Clear11.hlsl -index 042ac69..cb132dc 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/shaders/Clear11.hlsl -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/shaders/Clear11.hlsl -@@ -12,10 +12,12 @@ struct PS_OutputMultiple - float4 color1 : SV_TARGET1; - float4 color2 : SV_TARGET2; - float4 color3 : SV_TARGET3; -+#ifdef SM4 - float4 color4 : SV_TARGET4; - float4 color5 : SV_TARGET5; - float4 color6 : SV_TARGET6; - float4 color7 : SV_TARGET7; -+#endif - }; - - PS_OutputMultiple PS_ClearMultiple(in float4 inPosition : SV_POSITION, in float4 inColor : COLOR) -@@ -25,10 +27,12 @@ PS_OutputMultiple PS_ClearMultiple(in float4 inPosition : SV_POSITION, in float4 - outColor.color1 = inColor; - outColor.color2 = inColor; - outColor.color3 = inColor; -+#ifdef SM4 - outColor.color4 = inColor; - outColor.color5 = inColor; - outColor.color6 = inColor; - outColor.color7 = inColor; -+#endif - return outColor; - } - -diff --git a/src/3rdparty/angle/src/libGLESv2/utilities.cpp b/src/3rdparty/angle/src/libGLESv2/utilities.cpp -index 32df49e..30765ff 100644 ---- a/src/3rdparty/angle/src/libGLESv2/utilities.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/utilities.cpp -@@ -9,6 +9,14 @@ - - #include "libGLESv2/utilities.h" - #include "libGLESv2/mathutil.h" -+#if defined(ANGLE_OS_WINRT) -+# include -+# include -+# include -+# include -+ using namespace Microsoft::WRL; -+ using namespace ABI::Windows::Storage; -+#endif - - namespace gl - { -@@ -737,6 +745,7 @@ bool IsTriangleMode(GLenum drawMode) - - std::string getTempPath() - { -+#if !defined(ANGLE_OS_WINRT) - char path[MAX_PATH]; - DWORD pathLen = GetTempPathA(sizeof(path) / sizeof(path[0]), path); - if (pathLen == 0) -@@ -751,6 +760,45 @@ std::string getTempPath() - UNREACHABLE(); - return std::string(); +@@ -103,6 +106,7 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei } -+#else -+ static std::string path; -+ -+ while (path.empty()) { -+ ComPtr factory; -+ Wrappers::HStringReference classId(RuntimeClass_Windows_Storage_ApplicationData); -+ HRESULT result = RoGetActivationFactory(classId.Get(), IID_PPV_ARGS(&factory)); -+ if (FAILED(result)) -+ break; -+ -+ ComPtr applicationData; -+ result = factory->get_Current(&applicationData); -+ if (FAILED(result)) -+ break; -+ -+ ComPtr storageFolder; -+ result = applicationData->get_LocalFolder(&storageFolder); -+ if (FAILED(result)) -+ break; -+ -+ ComPtr localFolder; -+ result = storageFolder.As(&localFolder); -+ if (FAILED(result)) -+ break; -+ -+ HSTRING localFolderPath; -+ result = localFolder->get_Path(&localFolderPath); -+ if (FAILED(result)) -+ break; -+ -+ std::wstring_convert< std::codecvt_utf8 > converter; -+ path = converter.to_bytes(WindowsGetStringRawBuffer(localFolderPath, NULL)); -+ if (path.empty()) -+ { -+ UNREACHABLE(); -+ break; -+ } -+ } + const int previousWidth = mWidth; + const int previousHeight = mHeight; +#endif - - return path; + + releaseOffscreenTexture(); + +@@ -136,8 +140,8 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei + D3D11_TEXTURE2D_DESC offscreenTextureDesc = {0}; + mOffscreenTexture->GetDesc(&offscreenTextureDesc); + +- if (offscreenTextureDesc.Width != (UINT)backbufferWidth || +- offscreenTextureDesc.Height != (UINT)backbufferHeight || ++ if (offscreenTextureDesc.Width != UINT(abs(backbufferWidth)) || ++ offscreenTextureDesc.Height != UINT(abs(backbufferHeight)) || + offscreenTextureDesc.Format != backbufferFormatInfo.texFormat || + offscreenTextureDesc.MipLevels != 1 || + offscreenTextureDesc.ArraySize != 1) +@@ -152,8 +156,8 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei + const bool useSharedResource = !mNativeWindow.getNativeWindow() && mRenderer->getShareHandleSupport(); + + D3D11_TEXTURE2D_DESC offscreenTextureDesc = {0}; +- offscreenTextureDesc.Width = backbufferWidth; +- offscreenTextureDesc.Height = backbufferHeight; ++ offscreenTextureDesc.Width = abs(backbufferWidth); ++ offscreenTextureDesc.Height = abs(backbufferHeight); + offscreenTextureDesc.Format = backbufferFormatInfo.texFormat; + offscreenTextureDesc.MipLevels = 1; + offscreenTextureDesc.ArraySize = 1; +@@ -233,8 +237,8 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei + if (mDepthBufferFormat != GL_NONE) + { + D3D11_TEXTURE2D_DESC depthStencilTextureDesc; +- depthStencilTextureDesc.Width = backbufferWidth; +- depthStencilTextureDesc.Height = backbufferHeight; ++ depthStencilTextureDesc.Width = abs(backbufferWidth); ++ depthStencilTextureDesc.Height = abs(backbufferHeight); + depthStencilTextureDesc.Format = depthBufferFormatInfo.texFormat; + depthStencilTextureDesc.MipLevels = 1; + depthStencilTextureDesc.ArraySize = 1; +@@ -286,6 +290,7 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei + mWidth = backbufferWidth; + mHeight = backbufferHeight; + ++#if !defined(ANGLE_ENABLE_WINDOWS_STORE) + if (previousOffscreenTexture != NULL) + { + D3D11_BOX sourceBox = {0}; +@@ -307,6 +312,7 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei + swapRect(0, 0, mWidth, mHeight); + } + } ++#endif + + return EGL_SUCCESS; } +@@ -320,8 +326,16 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight) + return EGL_BAD_ACCESS; + } + ++ // Windows Phone works around the rotation limitation by using negative values for the swap chain size ++#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) ++ mRotateL = backbufferWidth < 0; // Landscape/InvertedLandscape ++ mRotateR = backbufferHeight < 0; // InvertedPortrait/InvertedLandscape ++ backbufferWidth = abs(backbufferWidth); ++ backbufferHeight = abs(backbufferHeight); ++#endif ++ + // EGL allows creating a surface with 0x0 dimension, however, DXGI does not like 0x0 swapchains +- if (backbufferWidth < 1 || backbufferHeight < 1) ++ if (backbufferWidth == 0 || backbufferHeight == 0) + { + return EGL_SUCCESS; + } +@@ -329,6 +343,7 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight) + // Can only call resize if we have already created our swap buffer and resources + ASSERT(mSwapChain && mBackBufferTexture && mBackBufferRTView); + ++#if !defined(ANGLE_ENABLE_WINDOWS_STORE) || (WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) // The swap chain is not directly resized on Windows Phone + SafeRelease(mBackBufferTexture); + SafeRelease(mBackBufferRTView); + +@@ -366,6 +381,7 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight) + { + d3d11::SetDebugName(mBackBufferRTView, "Back buffer render target"); + } ++#endif + + return resetOffscreenTexture(backbufferWidth, backbufferHeight); + } +@@ -512,16 +528,6 @@ EGLint SwapChain11::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) + ID3D11Device *device = mRenderer->getDevice(); + ID3D11DeviceContext *deviceContext = mRenderer->getDeviceContext(); + +- // Set vertices +- D3D11_MAPPED_SUBRESOURCE mappedResource; +- HRESULT result = deviceContext->Map(mQuadVB, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); +- if (FAILED(result)) +- { +- return EGL_BAD_ACCESS; +- } +- +- d3d11::PositionTexCoordVertex *vertices = static_cast(mappedResource.pData); +- + // Create a quad in homogeneous coordinates + float x1 = (x / float(mWidth)) * 2.0f - 1.0f; + float y1 = (y / float(mHeight)) * 2.0f - 1.0f; +@@ -533,10 +539,23 @@ EGLint SwapChain11::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) + float u2 = (x + width) / float(mWidth); + float v2 = (y + height) / float(mHeight); + +- d3d11::SetPositionTexCoordVertex(&vertices[0], x1, y1, u1, v1); +- d3d11::SetPositionTexCoordVertex(&vertices[1], x1, y2, u1, v2); +- d3d11::SetPositionTexCoordVertex(&vertices[2], x2, y1, u2, v1); +- d3d11::SetPositionTexCoordVertex(&vertices[3], x2, y2, u2, v2); ++ const bool rotateL = mRotateL; ++ const bool rotateR = mRotateR; ++ ++ // Set vertices ++ D3D11_MAPPED_SUBRESOURCE mappedResource; ++ HRESULT result = deviceContext->Map(mQuadVB, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); ++ if (FAILED(result)) ++ { ++ return EGL_BAD_ACCESS; ++ } ++ ++ d3d11::PositionTexCoordVertex *vertices = static_cast(mappedResource.pData); ++ ++ d3d11::SetPositionTexCoordVertex(&vertices[0], x1, y1, rotateL ? u2 : u1, rotateR ? v2 : v1); ++ d3d11::SetPositionTexCoordVertex(&vertices[1], x1, y2, rotateR ? u2 : u1, rotateL ? v1 : v2); ++ d3d11::SetPositionTexCoordVertex(&vertices[2], x2, y1, rotateR ? u1 : u2, rotateL ? v2 : v1); ++ d3d11::SetPositionTexCoordVertex(&vertices[3], x2, y2, rotateL ? u1 : u2, rotateR ? v1 : v2); + + deviceContext->Unmap(mQuadVB, 0); + +@@ -564,10 +583,11 @@ EGLint SwapChain11::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) + + // Set the viewport + D3D11_VIEWPORT viewport; +- viewport.TopLeftX = 0; +- viewport.TopLeftY = 0; +- viewport.Width = mWidth; +- viewport.Height = mHeight; ++ viewport.TopLeftX = 0.0f; ++ viewport.TopLeftY = 0.0f; ++ const bool invertViewport = (mRotateL || mRotateR) && !(mRotateL && mRotateR); ++ viewport.Width = FLOAT(invertViewport ? mHeight : mWidth); ++ viewport.Height = FLOAT(invertViewport ? mWidth : mHeight); + viewport.MinDepth = 0.0f; + viewport.MaxDepth = 1.0f; + deviceContext->RSSetViewports(1, &viewport); +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.h +index 22401d8..77509ed 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.h ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.h +@@ -52,6 +52,8 @@ class SwapChain11 : public SwapChain + Renderer11 *mRenderer; + EGLint mHeight; + EGLint mWidth; ++ bool mRotateL; ++ bool mRotateR; + bool mAppCreatedShareHandle; + unsigned int mSwapInterval; + bool mPassThroughResourcesInit; -- -1.8.4.msysgit.0 +1.9.4.msysgit.1 diff --git a/mingw-w64-angleproject-git/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch b/mingw-w64-angleproject-git/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch index 34c881ba21..dd2768cf3e 100644 --- a/mingw-w64-angleproject-git/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch +++ b/mingw-w64-angleproject-git/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch @@ -1,87 +1,497 @@ -From e84f947df4ae095eae600550749b3a4e8de5ee8b Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Thu, 20 Feb 2014 16:51:36 +0200 -Subject: [PATCH] ANGLE: Enable D3D11 for feature level 9 cards +From 829bf86c57357d3c8ec598b92fcfdb1849e84075 Mon Sep 17 00:00:00 2001 +From: Andrew Knight +Date: Tue, 11 Nov 2014 17:11:54 +0200 +Subject: [PATCH 10/16] ANGLE: Enable D3D11 for feature level 9 cards Enable use of ANGLE on lower-end hardware, such as Surface RT and Windows Phone 8. -Based on https://codereview.appspot.com/12917046/ - Change-Id: Ice536802e4eedc1d264abd0dd65960638fce59e4 --- - .../angle/src/libGLESv2/renderer/d3d11/Image11.cpp | 7 +- - .../libGLESv2/renderer/d3d11/RenderStateCache.cpp | 5 +- - .../src/libGLESv2/renderer/d3d11/Renderer11.cpp | 90 ++++++++++++++++++++-- - .../src/libGLESv2/renderer/d3d11/Renderer11.h | 1 + - .../libGLESv2/renderer/d3d11/TextureStorage11.cpp | 10 +-- - .../libGLESv2/renderer/d3d11/renderer11_utils.cpp | 4 +- - .../libGLESv2/renderer/d3d11/renderer11_utils.h | 2 +- - 7 files changed, 100 insertions(+), 19 deletions(-) + src/3rdparty/angle/src/libGLESv2/angletypes.cpp | 6 +- + .../src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp | 69 ++++--- + .../src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp | 4 +- + .../src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp | 7 +- + .../renderer/d3d/d3d11/PixelTransfer11.cpp | 9 +- + .../libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | 226 +++++++++++++-------- + .../src/libGLESv2/renderer/d3d/d3d11/Renderer11.h | 1 + + .../renderer/d3d/d3d11/TextureStorage11.cpp | 4 +- + .../libGLESv2/renderer/d3d/d3d11/formatutils11.cpp | 4 +- + .../renderer/d3d/d3d11/renderer11_utils.cpp | 2 +- + 10 files changed, 208 insertions(+), 124 deletions(-) -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp -index 2b07b9d..5d039a3 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp -@@ -142,7 +142,7 @@ bool Image11::redefine(Renderer *renderer, GLint internalformat, GLsizei width, - mHeight = height; - mInternalFormat = internalformat; - // compute the d3d format that will be used -- mDXGIFormat = gl_d3d11::ConvertTextureFormat(internalformat); -+ mDXGIFormat = gl_d3d11::ConvertTextureFormat(internalformat, mRenderer->getFeatureLevel()); - mActualFormat = d3d11_gl::ConvertTextureInternalFormat(mDXGIFormat); +diff --git a/src/3rdparty/angle/src/libGLESv2/angletypes.cpp b/src/3rdparty/angle/src/libGLESv2/angletypes.cpp +index 6fd02e0..5a0cfc5 100644 +--- a/src/3rdparty/angle/src/libGLESv2/angletypes.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/angletypes.cpp +@@ -12,6 +12,8 @@ + #include "libGLESv2/State.h" + #include "libGLESv2/VertexArray.h" - if (mStagingTexture) -@@ -191,7 +191,10 @@ void Image11::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei heig - switch (mInternalFormat) ++#include ++ + namespace gl + { + +@@ -24,8 +26,8 @@ SamplerState::SamplerState() + maxAnisotropy(1.0f), + baseLevel(0), + maxLevel(1000), +- minLod(-1000.0f), +- maxLod(1000.0f), ++ minLod(-FLT_MAX), ++ maxLod(FLT_MAX), + compareMode(GL_NONE), + compareFunc(GL_LEQUAL), + swizzleRed(GL_RED), +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp +index 91e7552..06aea9b 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp +@@ -209,7 +209,7 @@ Blit11::Blit11(Renderer11 *renderer) + pointSamplerDesc.BorderColor[2] = 0.0f; + pointSamplerDesc.BorderColor[3] = 0.0f; + pointSamplerDesc.MinLOD = 0.0f; +- pointSamplerDesc.MaxLOD = 0.0f; ++ pointSamplerDesc.MaxLOD = mRenderer->isLevel9() ? D3D11_FLOAT32_MAX : 0.0f; + + result = device->CreateSamplerState(&pointSamplerDesc, &mPointSampler); + ASSERT(SUCCEEDED(result)); +@@ -228,7 +228,7 @@ Blit11::Blit11(Renderer11 *renderer) + linearSamplerDesc.BorderColor[2] = 0.0f; + linearSamplerDesc.BorderColor[3] = 0.0f; + linearSamplerDesc.MinLOD = 0.0f; +- linearSamplerDesc.MaxLOD = 0.0f; ++ linearSamplerDesc.MaxLOD = mRenderer->isLevel9() ? D3D11_FLOAT32_MAX : 0.0f; + + result = device->CreateSamplerState(&linearSamplerDesc, &mLinearSampler); + ASSERT(SUCCEEDED(result)); +@@ -290,28 +290,31 @@ Blit11::Blit11(Renderer11 *renderer) + ASSERT(SUCCEEDED(result)); + d3d11::SetDebugName(mQuad2DVS, "Blit11 2D vertex shader"); + +- result = device->CreatePixelShader(g_PS_PassthroughDepth2D, ArraySize(g_PS_PassthroughDepth2D), NULL, &mDepthPS); +- ASSERT(SUCCEEDED(result)); +- d3d11::SetDebugName(mDepthPS, "Blit11 2D depth pixel shader"); +- +- D3D11_INPUT_ELEMENT_DESC quad3DLayout[] = ++ if (!renderer->isLevel9()) { - case GL_ALPHA8_EXT: -- loadAlphaDataToNative(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData); -+ if (mRenderer->getFeatureLevel() >= D3D_FEATURE_LEVEL_10_0) -+ loadAlphaDataToNative(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData); -+ else -+ loadAlphaDataToBGRA(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData); - break; - case GL_LUMINANCE8_EXT: - loadLuminanceDataToNativeOrBGRA(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData, false); -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp -index 0047e04..a1c324c 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp -@@ -419,7 +419,8 @@ ID3D11SamplerState *RenderStateCache::getSamplerState(const gl::SamplerState &sa - samplerDesc.BorderColor[2] = 0.0f; - samplerDesc.BorderColor[3] = 0.0f; - samplerDesc.MinLOD = gl_d3d11::ConvertMinLOD(samplerState.minFilter, samplerState.lodOffset); -- samplerDesc.MaxLOD = gl_d3d11::ConvertMaxLOD(samplerState.minFilter, samplerState.lodOffset); -+ samplerDesc.MaxLOD = mDevice->GetFeatureLevel() >= D3D_FEATURE_LEVEL_10_0 -+ ? gl_d3d11::ConvertMaxLOD(samplerState.minFilter, samplerState.lodOffset) : FLT_MAX; +- { "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, +- { "LAYER", 0, DXGI_FORMAT_R32_UINT, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0 }, +- { "TEXCOORD", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 }, +- }; +- +- result = device->CreateInputLayout(quad3DLayout, ArraySize(quad3DLayout), g_VS_Passthrough3D, ArraySize(g_VS_Passthrough3D), &mQuad3DIL); +- ASSERT(SUCCEEDED(result)); +- d3d11::SetDebugName(mQuad3DIL, "Blit11 3D input layout"); +- +- result = device->CreateVertexShader(g_VS_Passthrough3D, ArraySize(g_VS_Passthrough3D), NULL, &mQuad3DVS); +- ASSERT(SUCCEEDED(result)); +- d3d11::SetDebugName(mQuad3DVS, "Blit11 3D vertex shader"); ++ result = device->CreatePixelShader(g_PS_PassthroughDepth2D, ArraySize(g_PS_PassthroughDepth2D), NULL, &mDepthPS); ++ ASSERT(SUCCEEDED(result)); ++ d3d11::SetDebugName(mDepthPS, "Blit11 2D depth pixel shader"); - ID3D11SamplerState *dx11SamplerState = NULL; - HRESULT result = mDevice->CreateSamplerState(&samplerDesc, &dx11SamplerState); -@@ -435,4 +436,4 @@ ID3D11SamplerState *RenderStateCache::getSamplerState(const gl::SamplerState &sa +- result = device->CreateGeometryShader(g_GS_Passthrough3D, ArraySize(g_GS_Passthrough3D), NULL, &mQuad3DGS); +- ASSERT(SUCCEEDED(result)); +- d3d11::SetDebugName(mQuad3DGS, "Renderer11 copy 3D texture geometry shader"); ++ D3D11_INPUT_ELEMENT_DESC quad3DLayout[] = ++ { ++ { "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, ++ { "LAYER", 0, DXGI_FORMAT_R32_UINT, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0 }, ++ { "TEXCOORD", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 }, ++ }; ++ ++ result = device->CreateInputLayout(quad3DLayout, ArraySize(quad3DLayout), g_VS_Passthrough3D, ArraySize(g_VS_Passthrough3D), &mQuad3DIL); ++ ASSERT(SUCCEEDED(result)); ++ d3d11::SetDebugName(mQuad3DIL, "Blit11 3D input layout"); ++ ++ result = device->CreateVertexShader(g_VS_Passthrough3D, ArraySize(g_VS_Passthrough3D), NULL, &mQuad3DVS); ++ ASSERT(SUCCEEDED(result)); ++ d3d11::SetDebugName(mQuad3DVS, "Blit11 3D vertex shader"); ++ ++ result = device->CreateGeometryShader(g_GS_Passthrough3D, ArraySize(g_GS_Passthrough3D), NULL, &mQuad3DGS); ++ ASSERT(SUCCEEDED(result)); ++ d3d11::SetDebugName(mQuad3DGS, "Renderer11 copy 3D texture geometry shader"); ++ } + + buildShaderMap(); + +@@ -970,22 +973,27 @@ void Blit11::buildShaderMap() + ID3D11Device *device = mRenderer->getDevice(); + + add2DBlitShaderToMap(GL_RGBA, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2D, "Blit11 2D RGBA pixel shader" )); +- add2DBlitShaderToMap(GL_RGBA_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2DUI, "Blit11 2D RGBA UI pixel shader" )); +- add2DBlitShaderToMap(GL_RGBA_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRGBA2DI, "Blit11 2D RGBA I pixel shader" )); + add2DBlitShaderToMap(GL_BGRA_EXT, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2D, "Blit11 2D BGRA pixel shader" )); + add2DBlitShaderToMap(GL_RGB, false, d3d11::CompilePS(device, g_PS_PassthroughRGB2D, "Blit11 2D RGB pixel shader" )); +- add2DBlitShaderToMap(GL_RGB_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRGB2DUI, "Blit11 2D RGB UI pixel shader" )); +- add2DBlitShaderToMap(GL_RGB_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRGB2DI, "Blit11 2D RGB I pixel shader" )); + add2DBlitShaderToMap(GL_RG, false, d3d11::CompilePS(device, g_PS_PassthroughRG2D, "Blit11 2D RG pixel shader" )); +- add2DBlitShaderToMap(GL_RG_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRG2DUI, "Blit11 2D RG UI pixel shader" )); +- add2DBlitShaderToMap(GL_RG_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRG2DI, "Blit11 2D RG I pixel shader" )); + add2DBlitShaderToMap(GL_RED, false, d3d11::CompilePS(device, g_PS_PassthroughR2D, "Blit11 2D R pixel shader" )); +- add2DBlitShaderToMap(GL_RED_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughR2DUI, "Blit11 2D R UI pixel shader" )); +- add2DBlitShaderToMap(GL_RED_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughR2DI, "Blit11 2D R I pixel shader" )); + add2DBlitShaderToMap(GL_ALPHA, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2D, "Blit11 2D alpha pixel shader" )); + add2DBlitShaderToMap(GL_LUMINANCE, false, d3d11::CompilePS(device, g_PS_PassthroughLum2D, "Blit11 2D lum pixel shader" )); + add2DBlitShaderToMap(GL_LUMINANCE_ALPHA, false, d3d11::CompilePS(device, g_PS_PassthroughLumAlpha2D, "Blit11 2D luminance alpha pixel shader")); + ++ addSwizzleShaderToMap(GL_FLOAT, D3D_SRV_DIMENSION_TEXTURE2D, d3d11::CompilePS(device, g_PS_SwizzleF2D, "Blit11 2D F swizzle pixel shader" )); ++ ++ if (mRenderer->isLevel9()) ++ return; ++ ++ add2DBlitShaderToMap(GL_RGBA_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2DUI, "Blit11 2D RGBA UI pixel shader" )); ++ add2DBlitShaderToMap(GL_RGBA_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRGBA2DI, "Blit11 2D RGBA I pixel shader" )); ++ add2DBlitShaderToMap(GL_RGB_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRGB2DUI, "Blit11 2D RGB UI pixel shader" )); ++ add2DBlitShaderToMap(GL_RGB_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRGB2DI, "Blit11 2D RGB I pixel shader" )); ++ add2DBlitShaderToMap(GL_RG_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRG2DUI, "Blit11 2D RG UI pixel shader" )); ++ add2DBlitShaderToMap(GL_RG_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRG2DI, "Blit11 2D RG I pixel shader" )); ++ add2DBlitShaderToMap(GL_RED_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughR2DUI, "Blit11 2D R UI pixel shader" )); ++ add2DBlitShaderToMap(GL_RED_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughR2DI, "Blit11 2D R I pixel shader" )); + add3DBlitShaderToMap(GL_RGBA, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA3D, "Blit11 3D RGBA pixel shader" )); + add3DBlitShaderToMap(GL_RGBA_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA3DUI, "Blit11 3D UI RGBA pixel shader" )); + add3DBlitShaderToMap(GL_RGBA_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRGBA3DI, "Blit11 3D I RGBA pixel shader" )); +@@ -1003,7 +1011,6 @@ void Blit11::buildShaderMap() + add3DBlitShaderToMap(GL_LUMINANCE, false, d3d11::CompilePS(device, g_PS_PassthroughLum3D, "Blit11 3D luminance pixel shader" )); + add3DBlitShaderToMap(GL_LUMINANCE_ALPHA, false, d3d11::CompilePS(device, g_PS_PassthroughLumAlpha3D, "Blit11 3D luminance alpha pixel shader")); + +- addSwizzleShaderToMap(GL_FLOAT, D3D_SRV_DIMENSION_TEXTURE2D, d3d11::CompilePS(device, g_PS_SwizzleF2D, "Blit11 2D F swizzle pixel shader" )); + addSwizzleShaderToMap(GL_UNSIGNED_INT, D3D_SRV_DIMENSION_TEXTURE2D, d3d11::CompilePS(device, g_PS_SwizzleUI2D, "Blit11 2D UI swizzle pixel shader")); + addSwizzleShaderToMap(GL_INT, D3D_SRV_DIMENSION_TEXTURE2D, d3d11::CompilePS(device, g_PS_SwizzleI2D, "Blit11 2D I swizzle pixel shader" )); + +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp +index 2d5fa3c..5aab379 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp +@@ -753,7 +753,9 @@ void Buffer11::NativeBuffer11::fillBufferDesc(D3D11_BUFFER_DESC* bufferDesc, Ren + + case BUFFER_USAGE_VERTEX_OR_TRANSFORM_FEEDBACK: + bufferDesc->Usage = D3D11_USAGE_DEFAULT; +- bufferDesc->BindFlags = D3D11_BIND_VERTEX_BUFFER | D3D11_BIND_STREAM_OUTPUT; ++ bufferDesc->BindFlags = D3D11_BIND_VERTEX_BUFFER; ++ if (!renderer->isLevel9()) ++ bufferDesc->BindFlags |= D3D11_BIND_STREAM_OUTPUT; + bufferDesc->CPUAccessFlags = 0; + break; + +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp +index 4630762..7185a05 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp +@@ -104,7 +104,7 @@ Clear11::Clear11(Renderer11 *renderer) + rsDesc.DepthBias = 0; + rsDesc.DepthBiasClamp = 0.0f; + rsDesc.SlopeScaledDepthBias = 0.0f; +- rsDesc.DepthClipEnable = FALSE; ++ rsDesc.DepthClipEnable = renderer->isLevel9(); + rsDesc.ScissorEnable = FALSE; + rsDesc.MultisampleEnable = FALSE; + rsDesc.AntialiasedLineEnable = FALSE; +@@ -114,6 +114,11 @@ Clear11::Clear11(Renderer11 *renderer) + d3d11::SetDebugName(mRasterizerState, "Clear11 masked clear rasterizer state"); + + mFloatClearShader = CreateClearShader(device, DXGI_FORMAT_R32G32B32A32_FLOAT, g_VS_ClearFloat, g_PS_ClearFloat); ++ if (mRenderer->isLevel9()) { ++ memset(&mUintClearShader, 0, sizeof(ClearShader)); ++ memset(&mIntClearShader, 0, sizeof(ClearShader)); ++ return; ++ } + mUintClearShader = CreateClearShader(device, DXGI_FORMAT_R32G32B32A32_UINT, g_VS_ClearUint, g_PS_ClearUint ); + mIntClearShader = CreateClearShader(device, DXGI_FORMAT_R32G32B32A32_SINT, g_VS_ClearSint, g_PS_ClearSint ); + } +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp +index a4072d8..6a3d347 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp +@@ -133,10 +133,13 @@ gl::Error PixelTransfer11::loadResources() + return gl::Error(GL_OUT_OF_MEMORY, "Failed to create internal buffer to texture vertex shader."); + } + +- mBufferToTextureGS = d3d11::CompileGS(device, g_GS_BufferToTexture, "BufferToTexture GS"); +- if (!mBufferToTextureGS) ++ if (!mRenderer->isLevel9()) + { +- return gl::Error(GL_OUT_OF_MEMORY, "Failed to create internal buffer to texture geometry shader."); ++ mBufferToTextureGS = d3d11::CompileGS(device, g_GS_BufferToTexture, "BufferToTexture GS"); ++ if (!mBufferToTextureGS) ++ { ++ return gl::Error(GL_OUT_OF_MEMORY, "Failed to create internal buffer to texture geometry shader."); ++ } + } + + gl::Error error = buildShaderMap(); +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp +index ffc6cc9..f6ba930 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp +@@ -153,6 +153,24 @@ Renderer11::Renderer11(egl::Display *display, EGLNativeDisplayType hDc, const eg + } + } + ++#if !defined(ANGLE_ENABLE_D3D9) ++ if (requestedMajorVersion == EGL_DONT_CARE || requestedMajorVersion >= 9) ++ { ++ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 3) ++ { ++ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3); ++ } ++ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 2) ++ { ++ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_2); ++ } ++ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 1) ++ { ++ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_1); ++ } ++ } ++#endif ++ + mDriverType = (attributes.get(EGL_PLATFORM_ANGLE_USE_WARP_ANGLE, EGL_FALSE) == EGL_TRUE) ? D3D_DRIVER_TYPE_WARP + : D3D_DRIVER_TYPE_HARDWARE; + } +@@ -1170,6 +1188,83 @@ gl::Error Renderer11::drawElements(GLenum mode, GLsizei count, GLenum type, cons + return gl::Error(GL_NO_ERROR); } } - --} -\ No newline at end of file ++template ++static void fillLineLoopIndices(GLenum type, GLsizei count, const GLvoid *indices, T *data) ++{ ++ switch (type) ++ { ++ case GL_NONE: // Non-indexed draw ++ for (int i = 0; i < count; i++) ++ { ++ data[i] = i; ++ } ++ data[count] = 0; ++ break; ++ case GL_UNSIGNED_BYTE: ++ for (int i = 0; i < count; i++) ++ { ++ data[i] = static_cast(indices)[i]; ++ } ++ data[count] = static_cast(indices)[0]; ++ break; ++ case GL_UNSIGNED_SHORT: ++ for (int i = 0; i < count; i++) ++ { ++ data[i] = static_cast(indices)[i]; ++ } ++ data[count] = static_cast(indices)[0]; ++ break; ++ case GL_UNSIGNED_INT: ++ for (int i = 0; i < count; i++) ++ { ++ data[i] = static_cast(indices)[i]; ++ } ++ data[count] = static_cast(indices)[0]; ++ break; ++ default: UNREACHABLE(); ++ } ++} ++ ++template ++static void fillTriangleFanIndices(GLenum type, unsigned int numTris, const GLvoid *indices, T *data) ++{ ++ switch (type) ++ { ++ case GL_NONE: // Non-indexed draw ++ for (unsigned int i = 0; i < numTris; i++) ++ { ++ data[i*3 + 0] = 0; ++ data[i*3 + 1] = i + 1; ++ data[i*3 + 2] = i + 2; ++ } ++ break; ++ case GL_UNSIGNED_BYTE: ++ for (unsigned int i = 0; i < numTris; i++) ++ { ++ data[i*3 + 0] = static_cast(indices)[0]; ++ data[i*3 + 1] = static_cast(indices)[i + 1]; ++ data[i*3 + 2] = static_cast(indices)[i + 2]; ++ } ++ break; ++ case GL_UNSIGNED_SHORT: ++ for (unsigned int i = 0; i < numTris; i++) ++ { ++ data[i*3 + 0] = static_cast(indices)[0]; ++ data[i*3 + 1] = static_cast(indices)[i + 1]; ++ data[i*3 + 2] = static_cast(indices)[i + 2]; ++ } ++ break; ++ case GL_UNSIGNED_INT: ++ for (unsigned int i = 0; i < numTris; i++) ++ { ++ data[i*3 + 0] = static_cast(indices)[0]; ++ data[i*3 + 1] = static_cast(indices)[i + 1]; ++ data[i*3 + 2] = static_cast(indices)[i + 2]; ++ } ++ break; ++ default: UNREACHABLE(); ++ } +} -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp -index 7f166fd..31d976d 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp -@@ -164,6 +164,11 @@ EGLint Renderer11::initialize() - D3D_FEATURE_LEVEL_11_0, - D3D_FEATURE_LEVEL_10_1, - D3D_FEATURE_LEVEL_10_0, -+#if !defined(ANGLE_ENABLE_D3D9) -+ D3D_FEATURE_LEVEL_9_3, -+ D3D_FEATURE_LEVEL_9_2, -+ D3D_FEATURE_LEVEL_9_1, -+#endif - }; - HRESULT result = S_OK; -@@ -1533,7 +1538,7 @@ void Renderer11::applyUniforms(gl::ProgramBinary *programBinary, gl::UniformArra + gl::Error Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices, int minIndex, gl::Buffer *elementArrayBuffer) + { +@@ -1189,10 +1284,13 @@ gl::Error Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *ind + indices = bufferData + offset; + } + ++ // TODO: some level 9 hardware supports 32-bit indices; test and store support instead ++ const int indexType = isLevel9() ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT; ++ + if (!mLineLoopIB) + { + mLineLoopIB = new StreamingIndexBufferInterface(this); +- gl::Error error = mLineLoopIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, GL_UNSIGNED_INT); ++ gl::Error error = mLineLoopIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, indexType); + if (error.isError()) + { + SafeDelete(mLineLoopIB); +@@ -1203,7 +1301,8 @@ gl::Error Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *ind + // Checked by Renderer11::applyPrimitiveType + ASSERT(count >= 0); + +- if (static_cast(count) + 1 > (std::numeric_limits::max() / sizeof(unsigned int))) ++ int indexTypeSize = indexType == GL_UNSIGNED_SHORT ? sizeof(unsigned short) : sizeof(unsigned int); ++ if (static_cast(count) + 1 > (std::numeric_limits::max() / indexTypeSize)) + { + return gl::Error(GL_OUT_OF_MEMORY, "Failed to create a 32-bit looping index buffer for GL_LINE_LOOP, too many indices required."); + } +@@ -1223,42 +1322,12 @@ gl::Error Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *ind + return error; + } + +- unsigned int *data = reinterpret_cast(mappedMemory); ++ if (indexType == GL_UNSIGNED_SHORT) ++ fillLineLoopIndices(type, count, indices, reinterpret_cast(mappedMemory)); ++ else ++ fillLineLoopIndices(type, count, indices, reinterpret_cast(mappedMemory)); + unsigned int indexBufferOffset = offset; + +- switch (type) +- { +- case GL_NONE: // Non-indexed draw +- for (int i = 0; i < count; i++) +- { +- data[i] = i; +- } +- data[count] = 0; +- break; +- case GL_UNSIGNED_BYTE: +- for (int i = 0; i < count; i++) +- { +- data[i] = static_cast(indices)[i]; +- } +- data[count] = static_cast(indices)[0]; +- break; +- case GL_UNSIGNED_SHORT: +- for (int i = 0; i < count; i++) +- { +- data[i] = static_cast(indices)[i]; +- } +- data[count] = static_cast(indices)[0]; +- break; +- case GL_UNSIGNED_INT: +- for (int i = 0; i < count; i++) +- { +- data[i] = static_cast(indices)[i]; +- } +- data[count] = static_cast(indices)[0]; +- break; +- default: UNREACHABLE(); +- } +- + error = mLineLoopIB->unmapBuffer(); + if (error.isError()) + { +@@ -1300,10 +1369,12 @@ gl::Error Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid * + indices = bufferData + offset; + } + ++ const int indexType = isLevel9() ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT; ++ + if (!mTriangleFanIB) + { + mTriangleFanIB = new StreamingIndexBufferInterface(this); +- gl::Error error = mTriangleFanIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, GL_UNSIGNED_INT); ++ gl::Error error = mTriangleFanIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, indexType); + if (error.isError()) + { + SafeDelete(mTriangleFanIB); +@@ -1316,13 +1387,14 @@ gl::Error Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid * + + const unsigned int numTris = count - 2; + +- if (numTris > (std::numeric_limits::max() / (sizeof(unsigned int) * 3))) ++ int indexTypeSize = indexType == GL_UNSIGNED_SHORT ? sizeof(unsigned short) : sizeof(unsigned int); ++ if (numTris > (std::numeric_limits::max() / (indexTypeSize * 3))) + { + return gl::Error(GL_OUT_OF_MEMORY, "Failed to create a scratch index buffer for GL_TRIANGLE_FAN, too many indices required."); + } + +- const unsigned int spaceNeeded = (numTris * 3) * sizeof(unsigned int); +- gl::Error error = mTriangleFanIB->reserveBufferSpace(spaceNeeded, GL_UNSIGNED_INT); ++ const unsigned int spaceNeeded = (numTris * 3) * indexTypeSize; ++ gl::Error error = mTriangleFanIB->reserveBufferSpace(spaceNeeded, indexType); + if (error.isError()) + { + return error; +@@ -1336,45 +1408,12 @@ gl::Error Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid * + return error; + } + +- unsigned int *data = reinterpret_cast(mappedMemory); +- unsigned int indexBufferOffset = offset; ++ if (indexType == GL_UNSIGNED_SHORT) ++ fillTriangleFanIndices(type, numTris, indices, reinterpret_cast(mappedMemory)); ++ else ++ fillTriangleFanIndices(type, numTris, indices, reinterpret_cast(mappedMemory)); + +- switch (type) +- { +- case GL_NONE: // Non-indexed draw +- for (unsigned int i = 0; i < numTris; i++) +- { +- data[i*3 + 0] = 0; +- data[i*3 + 1] = i + 1; +- data[i*3 + 2] = i + 2; +- } +- break; +- case GL_UNSIGNED_BYTE: +- for (unsigned int i = 0; i < numTris; i++) +- { +- data[i*3 + 0] = static_cast(indices)[0]; +- data[i*3 + 1] = static_cast(indices)[i + 1]; +- data[i*3 + 2] = static_cast(indices)[i + 2]; +- } +- break; +- case GL_UNSIGNED_SHORT: +- for (unsigned int i = 0; i < numTris; i++) +- { +- data[i*3 + 0] = static_cast(indices)[0]; +- data[i*3 + 1] = static_cast(indices)[i + 1]; +- data[i*3 + 2] = static_cast(indices)[i + 2]; +- } +- break; +- case GL_UNSIGNED_INT: +- for (unsigned int i = 0; i < numTris; i++) +- { +- data[i*3 + 0] = static_cast(indices)[0]; +- data[i*3 + 1] = static_cast(indices)[i + 1]; +- data[i*3 + 2] = static_cast(indices)[i + 2]; +- } +- break; +- default: UNREACHABLE(); +- } ++ unsigned int indexBufferOffset = offset; + + error = mTriangleFanIB->unmapBuffer(); + if (error.isError()) +@@ -1634,7 +1673,7 @@ gl::Error Renderer11::applyUniforms(const ProgramImpl &program, const std::vecto } // needed for the point sprite geometry shader @@ -90,337 +500,138 @@ index 7f166fd..31d976d 100644 { mDeviceContext->GSSetConstantBuffers(0, 1, &mDriverConstantBufferPS); mCurrentGeometryConstantBuffer = mDriverConstantBufferPS; -@@ -1956,6 +1961,11 @@ bool Renderer11::testDeviceResettable() - D3D_FEATURE_LEVEL_11_0, - D3D_FEATURE_LEVEL_10_1, - D3D_FEATURE_LEVEL_10_0, -+#if !defined(ANGLE_ENABLE_D3D9) -+ D3D_FEATURE_LEVEL_9_3, -+ D3D_FEATURE_LEVEL_9_2, -+ D3D_FEATURE_LEVEL_9_1, -+#endif - }; - - ID3D11Device* dummyDevice; -@@ -2139,6 +2149,11 @@ float Renderer11::getTextureMaxAnisotropy() const - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: - return D3D10_MAX_MAXANISOTROPY; -+ case D3D_FEATURE_LEVEL_9_3: -+ case D3D_FEATURE_LEVEL_9_2: -+ return 16; -+ case D3D_FEATURE_LEVEL_9_1: -+ return D3D_FL9_1_DEFAULT_MAX_ANISOTROPY; - default: UNREACHABLE(); - return 0; - } -@@ -2158,6 +2173,11 @@ Range Renderer11::getViewportBounds() const - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: - return Range(D3D10_VIEWPORT_BOUNDS_MIN, D3D10_VIEWPORT_BOUNDS_MAX); -+ case D3D_FEATURE_LEVEL_9_3: -+ return Range(D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION * -2, D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION * 2); -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: -+ return Range(D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION * -2, D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION * 2); - default: UNREACHABLE(); - return Range(0, 0); - } -@@ -2172,6 +2192,10 @@ unsigned int Renderer11::getMaxVertexTextureImageUnits() const - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: - return MAX_TEXTURE_IMAGE_UNITS_VTF_SM4; -+ case D3D_FEATURE_LEVEL_9_3: -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: -+ return 0; - default: UNREACHABLE(); - return 0; - } -@@ -2195,14 +2219,14 @@ unsigned int Renderer11::getReservedFragmentUniformVectors() const - unsigned int Renderer11::getMaxVertexUniformVectors() const - { - META_ASSERT(MAX_VERTEX_UNIFORM_VECTORS_D3D11 <= D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT); -- ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_10_0); -+ ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_9_1); - return MAX_VERTEX_UNIFORM_VECTORS_D3D11; - } - - unsigned int Renderer11::getMaxFragmentUniformVectors() const - { - META_ASSERT(MAX_FRAGMENT_UNIFORM_VECTORS_D3D11 <= D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT); -- ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_10_0); -+ ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_9_1); - return MAX_FRAGMENT_UNIFORM_VECTORS_D3D11; - } - -@@ -2216,6 +2240,10 @@ unsigned int Renderer11::getMaxVaryingVectors() const - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: - return D3D10_VS_OUTPUT_REGISTER_COUNT; -+ case D3D_FEATURE_LEVEL_9_3: -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: -+ return 8; - default: UNREACHABLE(); - return 0; - } -@@ -2229,6 +2257,10 @@ bool Renderer11::getNonPower2TextureSupport() const - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: - return true; -+ case D3D_FEATURE_LEVEL_9_3: -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: -+ return false; - default: UNREACHABLE(); - return false; - } -@@ -2242,6 +2274,11 @@ bool Renderer11::getOcclusionQuerySupport() const - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: - return true; -+ case D3D_FEATURE_LEVEL_9_3: -+ case D3D_FEATURE_LEVEL_9_2: -+ return true; -+ case D3D_FEATURE_LEVEL_9_1: -+ return false; - default: UNREACHABLE(); - return false; - } -@@ -2254,7 +2291,11 @@ bool Renderer11::getInstancingSupport() const - case D3D_FEATURE_LEVEL_11_0: - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: -- return true; -+ case D3D_FEATURE_LEVEL_9_3: -+ return true; -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: -+ return false; - default: UNREACHABLE(); - return false; - } -@@ -2276,6 +2317,11 @@ bool Renderer11::getDerivativeInstructionSupport() const - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: - return true; -+ case D3D_FEATURE_LEVEL_9_3: -+ return true; -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: -+ return false; - default: UNREACHABLE(); - return false; - } -@@ -2294,6 +2340,9 @@ int Renderer11::getMajorShaderModel() const +@@ -1938,7 +1977,10 @@ int Renderer11::getMajorShaderModel() const + { case D3D_FEATURE_LEVEL_11_0: return D3D11_SHADER_MAJOR_VERSION; // 5 case D3D_FEATURE_LEVEL_10_1: return D3D10_1_SHADER_MAJOR_VERSION; // 4 - case D3D_FEATURE_LEVEL_10_0: return D3D10_SHADER_MAJOR_VERSION; // 4 +- case D3D_FEATURE_LEVEL_10_0: return D3D10_SHADER_MAJOR_VERSION; // 4 ++ case D3D_FEATURE_LEVEL_10_0: + case D3D_FEATURE_LEVEL_9_3: + case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: return D3D10_SHADER_MAJOR_VERSION; // 4 (level 9) ++ case D3D_FEATURE_LEVEL_9_1: return D3D10_SHADER_MAJOR_VERSION; // 4 default: UNREACHABLE(); return 0; } } -@@ -2305,6 +2354,9 @@ int Renderer11::getMinorShaderModel() const +@@ -1949,7 +1991,10 @@ int Renderer11::getMinorShaderModel() const + { case D3D_FEATURE_LEVEL_11_0: return D3D11_SHADER_MINOR_VERSION; // 0 case D3D_FEATURE_LEVEL_10_1: return D3D10_1_SHADER_MINOR_VERSION; // 1 - case D3D_FEATURE_LEVEL_10_0: return D3D10_SHADER_MINOR_VERSION; // 0 +- case D3D_FEATURE_LEVEL_10_0: return D3D10_SHADER_MINOR_VERSION; // 0 ++ case D3D_FEATURE_LEVEL_10_0: + case D3D_FEATURE_LEVEL_9_3: + case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: return D3D10_SHADER_MINOR_VERSION; // 0 (level 9) ++ case D3D_FEATURE_LEVEL_9_1: return D3D10_SHADER_MINOR_VERSION; // 0 default: UNREACHABLE(); return 0; } } -@@ -2330,6 +2382,11 @@ int Renderer11::getMaxViewportDimension() const - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: - return D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 8192 -+ case D3D_FEATURE_LEVEL_9_3: -+ return D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 4096 -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: -+ return D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 2048 - default: UNREACHABLE(); - return 0; - } -@@ -2342,6 +2399,9 @@ int Renderer11::getMaxTextureWidth() const - case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 16384 - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: return D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 8192 -+ case D3D_FEATURE_LEVEL_9_3: return D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 4096 -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: return D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 2048 - default: UNREACHABLE(); return 0; - } - } -@@ -2353,6 +2413,9 @@ int Renderer11::getMaxTextureHeight() const - case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 16384 - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: return D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 8192 -+ case D3D_FEATURE_LEVEL_9_3: return D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 4096 -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: return D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 2048 - default: UNREACHABLE(); return 0; - } - } -@@ -2364,6 +2427,9 @@ bool Renderer11::get32BitIndexSupport() const - case D3D_FEATURE_LEVEL_11_0: - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: return D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP >= 32; // true -+ case D3D_FEATURE_LEVEL_9_3: -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: return false; - default: UNREACHABLE(); return false; - } - } -@@ -2410,6 +2476,8 @@ unsigned int Renderer11::getMaxRenderTargets() const - { - META_ASSERT(D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS); - META_ASSERT(D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS); -+ META_ASSERT(D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS); -+ META_ASSERT(D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS); +@@ -2455,6 +2500,7 @@ gl::Error Renderer11::compileToExecutable(gl::InfoLog &infoLog, const std::strin + unsigned int profileMajorVersion = 0; + unsigned int profileMinorVersion = 0; ++ const char *profileSuffix = NULL; switch (mFeatureLevel) { -@@ -2417,6 +2485,9 @@ unsigned int Renderer11::getMaxRenderTargets() const - return D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; // 8 - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: -+ case D3D_FEATURE_LEVEL_9_3: // return D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT; // 4 + case D3D_FEATURE_LEVEL_11_0: +@@ -2469,12 +2515,30 @@ gl::Error Renderer11::compileToExecutable(gl::InfoLog &infoLog, const std::strin + profileMajorVersion = 4; + profileMinorVersion = 0; + break; ++ case D3D_FEATURE_LEVEL_9_3: ++ profileMajorVersion = 4; ++ profileMinorVersion = 0; ++ profileSuffix = "_level_9_3"; ++ break; + case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: // return D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT; // 1 - // Feature level 10.0 and 10.1 cards perform very poorly when the pixel shader - // outputs to multiple RTs that are not bound. - // TODO: Remove pixel shader outputs for render targets that are not bound. -@@ -2603,7 +2674,7 @@ bool Renderer11::copyTexture(ID3D11ShaderResourceView *source, const gl::Rectang - samplerDesc.BorderColor[2] = 0.0f; - samplerDesc.BorderColor[3] = 0.0f; - samplerDesc.MinLOD = 0.0f; -- samplerDesc.MaxLOD = 0.0f; -+ samplerDesc.MaxLOD = mDevice->GetFeatureLevel() >= D3D_FEATURE_LEVEL_10_0 ? 0.0f : FLT_MAX; - - result = mDevice->CreateSamplerState(&samplerDesc, &mCopySampler); - ASSERT(SUCCEEDED(result)); -@@ -2848,7 +2919,7 @@ ShaderExecutable *Renderer11::loadExecutable(const void *function, size_t length - - ShaderExecutable *Renderer11::compileToExecutable(gl::InfoLog &infoLog, const char *shaderHLSL, rx::ShaderType type, D3DWorkaroundType workaround) - { -- const char *profile = NULL; -+ std::string profile; - - switch (type) - { -@@ -2866,7 +2937,12 @@ ShaderExecutable *Renderer11::compileToExecutable(gl::InfoLog &infoLog, const ch - return NULL; ++ profileMajorVersion = 4; ++ profileMinorVersion = 0; ++ profileSuffix = "_level_9_2"; ++ break; ++ case D3D_FEATURE_LEVEL_9_1: ++ profileMajorVersion = 4; ++ profileMinorVersion = 0; ++ profileSuffix = "_level_9_1"; ++ break; ++ break; + default: + UNREACHABLE(); + return gl::Error(GL_INVALID_OPERATION); } -- ID3DBlob *binary = (ID3DBlob*)compileToBinary(infoLog, shaderHLSL, profile, D3DCOMPILE_OPTIMIZATION_LEVEL0, false); -+ if (mFeatureLevel == D3D_FEATURE_LEVEL_9_3) -+ profile += "_level_9_3"; -+ else if (mFeatureLevel == D3D_FEATURE_LEVEL_9_2 || mFeatureLevel == D3D_FEATURE_LEVEL_9_1) -+ profile += "_level_9_1"; -+ -+ ID3DBlob *binary = (ID3DBlob*)compileToBinary(infoLog, shaderHLSL, profile.c_str(), D3DCOMPILE_OPTIMIZATION_LEVEL0, false); - if (!binary) - return NULL; + std::string profile = FormatString("%s_%u_%u", profileType, profileMajorVersion, profileMinorVersion); ++ if (profileSuffix) ++ profile += profileSuffix; -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h -index ba3f0c6..a8a722c 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h -@@ -177,6 +177,7 @@ class Renderer11 : public Renderer + UINT flags = D3DCOMPILE_OPTIMIZATION_LEVEL2; + +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h +index c789cae..d44bd2f 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h +@@ -188,6 +188,7 @@ class Renderer11 : public RendererD3D ID3D11Device *getDevice() { return mDevice; } ID3D11DeviceContext *getDeviceContext() { return mDeviceContext; }; - IDXGIFactory *getDxgiFactory() { return mDxgiFactory; }; -+ D3D_FEATURE_LEVEL getFeatureLevel() { return mFeatureLevel; } + DXGIFactory *getDxgiFactory() { return mDxgiFactory; }; ++ bool isLevel9() { return mFeatureLevel <= D3D_FEATURE_LEVEL_9_3; } - bool getRenderTargetResource(gl::Renderbuffer *colorbuffer, unsigned int *subresourceIndex, ID3D11Texture2D **resource); - void unapplyRenderTargets(); -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp -index 5f6ea21..fdfbe52 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp -@@ -222,14 +222,14 @@ TextureStorage11_2D::TextureStorage11_2D(Renderer *renderer, SwapChain11 *swapch - } + Blit11 *getBlitter() { return mBlit; } - TextureStorage11_2D::TextureStorage11_2D(Renderer *renderer, int levels, GLenum internalformat, GLenum usage, bool forceRenderable, GLsizei width, GLsizei height) -- : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat), usage, forceRenderable)) -+ : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat, Renderer11::makeRenderer11(renderer)->getFeatureLevel()), usage, forceRenderable)) - { - for (unsigned int i = 0; i < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++) - { - mRenderTarget[i] = NULL; +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.cpp +index 4287918..74af27e 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.cpp +@@ -744,7 +744,7 @@ gl::Error TextureStorage11_2D::getResource(ID3D11Resource **outResource) + D3D11_TEXTURE2D_DESC desc; + desc.Width = mTextureWidth; // Compressed texture size constraints? + desc.Height = mTextureHeight; +- desc.MipLevels = mMipLevels; ++ desc.MipLevels = mRenderer->isLevel9() ? 1 : mMipLevels; + desc.ArraySize = 1; + desc.Format = mTextureFormat; + desc.SampleDesc.Count = 1; +@@ -863,7 +863,7 @@ gl::Error TextureStorage11_2D::createSRV(int baseLevel, int mipLevels, DXGI_FORM + srvDesc.Format = format; + srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; + srvDesc.Texture2D.MostDetailedMip = mTopLevel + baseLevel; +- srvDesc.Texture2D.MipLevels = mipLevels; ++ srvDesc.Texture2D.MipLevels = mRenderer->isLevel9() ? -1 : mipLevels; + + ID3D11Device *device = mRenderer->getDevice(); + HRESULT result = device->CreateShaderResourceView(texture, &srvDesc, outSRV); +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/formatutils11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/formatutils11.cpp +index 1ea916d..90a879e 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/formatutils11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/formatutils11.cpp +@@ -557,7 +557,7 @@ D3D11LoadFunctionMap BuildD3D11LoadFunctionMap() + InsertLoadFunction(&map, GL_ALPHA, GL_HALF_FLOAT_OES, LoadA16FToRGBA16F ); + + // From GL_EXT_texture_storage +- InsertLoadFunction(&map, GL_ALPHA8_EXT, GL_UNSIGNED_BYTE, LoadToNative ); ++ InsertLoadFunction(&map, GL_ALPHA8_EXT, GL_UNSIGNED_BYTE, LoadA8ToRGBA8 ); + InsertLoadFunction(&map, GL_LUMINANCE8_EXT, GL_UNSIGNED_BYTE, LoadL8ToRGBA8 ); + InsertLoadFunction(&map, GL_LUMINANCE8_ALPHA8_EXT, GL_UNSIGNED_BYTE, LoadLA8ToRGBA8 ); + InsertLoadFunction(&map, GL_ALPHA32F_EXT, GL_FLOAT, LoadA32FToRGBA32F ); +@@ -795,7 +795,7 @@ static D3D11ES3FormatMap BuildD3D11FormatMap() + + // From GL_EXT_texture_storage + // | GL internal format | D3D11 texture format | D3D11 SRV format | D3D11 RTV format | D3D11 DSV format | +- InsertD3D11FormatInfo(&map, GL_ALPHA8_EXT, DXGI_FORMAT_A8_UNORM, DXGI_FORMAT_A8_UNORM, DXGI_FORMAT_A8_UNORM, DXGI_FORMAT_UNKNOWN ); ++ InsertD3D11FormatInfo(&map, GL_ALPHA8_EXT, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_UNKNOWN ); + InsertD3D11FormatInfo(&map, GL_LUMINANCE8_EXT, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_UNKNOWN ); + InsertD3D11FormatInfo(&map, GL_ALPHA32F_EXT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN ); + InsertD3D11FormatInfo(&map, GL_LUMINANCE32F_EXT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN ); +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp +index 9ffc32e..cbfe557 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp +@@ -284,7 +284,7 @@ static bool GetNPOTTextureSupport(D3D_FEATURE_LEVEL featureLevel) + // From http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876.aspx + case D3D_FEATURE_LEVEL_9_3: + case D3D_FEATURE_LEVEL_9_2: +- case D3D_FEATURE_LEVEL_9_1: return false; ++ case D3D_FEATURE_LEVEL_9_1: return true; // Provided that mipmaps & wrap modes are not used + + default: UNREACHABLE(); return false; } - -- DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat); -+ DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat, mRenderer->getFeatureLevel()); - if (d3d11::IsDepthStencilFormat(convertedFormat)) - { - mTextureFormat = d3d11::GetDepthTextureFormat(convertedFormat); -@@ -331,7 +331,7 @@ RenderTarget *TextureStorage11_2D::getRenderTarget(int level) - srvDesc.Format = mShaderResourceFormat; - srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; - srvDesc.Texture2D.MostDetailedMip = level; -- srvDesc.Texture2D.MipLevels = 1; -+ srvDesc.Texture2D.MipLevels = level ? 1 : -1; - - ID3D11ShaderResourceView *srv; - result = device->CreateShaderResourceView(mTexture, &srvDesc, &srv); -@@ -440,7 +440,7 @@ void TextureStorage11_2D::generateMipmap(int level) - } - - TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, int levels, GLenum internalformat, GLenum usage, bool forceRenderable, int size) -- : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat), usage, forceRenderable)) -+ : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat, Renderer11::makeRenderer11(renderer)->getFeatureLevel()), usage, forceRenderable)) - { - for (unsigned int i = 0; i < 6; i++) - { -@@ -450,7 +450,7 @@ TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, int levels, GLe - } - } - -- DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat); -+ DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat, mRenderer->getFeatureLevel()); - if (d3d11::IsDepthStencilFormat(convertedFormat)) - { - mTextureFormat = d3d11::GetDepthTextureFormat(convertedFormat); -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp -index 6f06024..34b8259 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp -@@ -329,7 +329,7 @@ DXGI_FORMAT ConvertRenderbufferFormat(GLenum format) - return DXGI_FORMAT_R8G8B8A8_UNORM; - } - --DXGI_FORMAT ConvertTextureFormat(GLenum internalformat) -+DXGI_FORMAT ConvertTextureFormat(GLenum internalformat, D3D_FEATURE_LEVEL featureLevel) - { - switch (internalformat) - { -@@ -342,7 +342,7 @@ DXGI_FORMAT ConvertTextureFormat(GLenum internalformat) - case GL_LUMINANCE8_ALPHA8_EXT: - return DXGI_FORMAT_R8G8B8A8_UNORM; - case GL_ALPHA8_EXT: -- return DXGI_FORMAT_A8_UNORM; -+ return featureLevel >= D3D_FEATURE_LEVEL_10_0 ? DXGI_FORMAT_A8_UNORM : DXGI_FORMAT_B8G8R8A8_UNORM; - case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: - case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: - return DXGI_FORMAT_BC1_UNORM; -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h -index 1bc48c1..70ad4fe 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h -@@ -32,7 +32,7 @@ FLOAT ConvertMinLOD(GLenum minFilter, unsigned int lodOffset); - FLOAT ConvertMaxLOD(GLenum minFilter, unsigned int lodOffset); - - DXGI_FORMAT ConvertRenderbufferFormat(GLenum format); --DXGI_FORMAT ConvertTextureFormat(GLenum format); -+DXGI_FORMAT ConvertTextureFormat(GLenum format, D3D_FEATURE_LEVEL featureLevel); - } - - namespace d3d11_gl -- -1.8.4.msysgit.0 +1.9.4.msysgit.1 diff --git a/mingw-w64-angleproject-git/0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch b/mingw-w64-angleproject-git/0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch deleted file mode 100644 index fdee11d324..0000000000 --- a/mingw-w64-angleproject-git/0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 8ea24fcce69900f42299fd01772714a566f9111e Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Mon, 24 Feb 2014 11:08:23 +0200 -Subject: [PATCH] ANGLE: Fix compilation error on MinGW caused by trace_event.h - -The event trace header in ANGLE's third_party directory has an unused -template which causes a compilation error on MinGW. Disable this part -of the code. - -Change-Id: I167eac56507fafba34e3eb5ce6071d8f136a4e41 ---- - src/3rdparty/angle/src/third_party/trace_event/trace_event.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h -index 637cf9a..96ac910 100644 ---- a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h -+++ b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h -@@ -791,6 +791,7 @@ private: - // TraceEventSamplingStateScope records the current sampling state - // and sets a new sampling state. When the scope exists, it restores - // the sampling state having recorded. -+#if 0 // This is not used by ANGLE and causes a compilation error on MinGW - template - class SamplingStateScope { - public: -@@ -818,6 +819,7 @@ public: - private: - const char* m_previousState; - }; -+#endif - - } // namespace TraceEvent - --- -1.8.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0012-ANGLE-fix-semantic-index-lookup.patch b/mingw-w64-angleproject-git/0012-ANGLE-fix-semantic-index-lookup.patch index fe16d1d7b2..afc9f256a1 100644 --- a/mingw-w64-angleproject-git/0012-ANGLE-fix-semantic-index-lookup.patch +++ b/mingw-w64-angleproject-git/0012-ANGLE-fix-semantic-index-lookup.patch @@ -1,7 +1,7 @@ -From 15b694fa33cf76f93de62b8106972083f5fb3114 Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Fri, 21 Feb 2014 13:34:21 +0200 -Subject: [PATCH] ANGLE: fix semantic index lookup +From bbfd3cfcf6e1195d86368b61ce39504ce6acda50 Mon Sep 17 00:00:00 2001 +From: Andrew Knight +Date: Wed, 12 Nov 2014 17:09:23 +0200 +Subject: [PATCH 12/16] ANGLE: fix semantic index lookup The sorted semantic index table was returning a direct mapping to the new indices, instead of the old indices. This caused a mismatch in the @@ -9,15 +9,15 @@ GL type lookup for the translated attribute. Change-Id: I75d05ed707f56c45210e3dcbc277f894e3dc5a48 --- - src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp | 2 +- - src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp | 4 ++-- + src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp | 2 +- + .../angle/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp -index 41a83b6..13c515a 100644 +index 0619023..6d64b38 100644 --- a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp +++ b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp -@@ -2643,7 +2643,7 @@ void ProgramBinary::sortAttributesByLayout(rx::TranslatedAttribute attributes[MA +@@ -1216,7 +1216,7 @@ void ProgramBinary::sortAttributesByLayout(rx::TranslatedAttribute attributes[MA for (int i = 0; i < MAX_VERTEX_ATTRIBS; i++) { int oldIndex = mAttributesByLayout[i]; @@ -26,11 +26,11 @@ index 41a83b6..13c515a 100644 attributes[i] = oldTranslatedAttributes[oldIndex]; } } -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp -index 3418e89..4940b8c 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp -@@ -103,10 +103,10 @@ GLenum InputLayoutCache::applyVertexBuffers(TranslatedAttribute attributes[gl::M +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.cpp +index e41f238..ff90a6a 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.cpp +@@ -113,10 +113,10 @@ gl::Error InputLayoutCache::applyVertexBuffers(TranslatedAttribute attributes[gl // Record the type of the associated vertex shader vector in our key // This will prevent mismatched vertex shaders from using the same input layout GLint attributeSize; @@ -40,9 +40,9 @@ index 3418e89..4940b8c 100644 ilKey.elements[ilKey.elementCount].desc.SemanticName = semanticName; - ilKey.elements[ilKey.elementCount].desc.SemanticIndex = sortedSemanticIndices[i]; + ilKey.elements[ilKey.elementCount].desc.SemanticIndex = i; - ilKey.elements[ilKey.elementCount].desc.Format = attributes[i].attribute->mArrayEnabled ? vertexBuffer->getDXGIFormat(*attributes[i].attribute) : DXGI_FORMAT_R32G32B32A32_FLOAT; + ilKey.elements[ilKey.elementCount].desc.Format = vertexFormatInfo.nativeFormat; ilKey.elements[ilKey.elementCount].desc.InputSlot = i; ilKey.elements[ilKey.elementCount].desc.AlignedByteOffset = 0; -- -1.8.4.msysgit.0 +1.9.4.msysgit.1 diff --git a/mingw-w64-angleproject-git/0013-ANGLE-Add-support-for-querying-platform-device.patch b/mingw-w64-angleproject-git/0013-ANGLE-Add-support-for-querying-platform-device.patch new file mode 100644 index 0000000000..b43dcc368b --- /dev/null +++ b/mingw-w64-angleproject-git/0013-ANGLE-Add-support-for-querying-platform-device.patch @@ -0,0 +1,100 @@ +From 5ef9348de2624c21be1c9fddd265fec5a0851d25 Mon Sep 17 00:00:00 2001 +From: Andrew Knight +Date: Thu, 13 Nov 2014 15:34:26 +0200 +Subject: [PATCH 13/16] ANGLE: Add support for querying platform device + +The EGL_EXT_device_base extension allows for querying the platform +device of the graphics hardware via eglQueryDisplayAttribEXT(). +As that extension is not supported by ANGLE, this patch adds similar +functionality to the existing eglQuerySurfacePointerANGLE API. When +EGL_DEVICE_EXT is passed as the queried attribute, the underlying +D3D/DXGI device pointer is passed back to the caller via the value +argument. + +The D3D device is needed for video support in QtMultimedia as well as +the IDXGIDevice3::Trim() calls required by the Windows Store. + +Change-Id: Ibdf228d81d6604e56db9dd8597d7cd2983ebc428 +--- + src/3rdparty/angle/src/libEGL/libEGL.cpp | 50 +++++++++++++++++++++++++------- + 1 file changed, 39 insertions(+), 11 deletions(-) + +diff --git a/src/3rdparty/angle/src/libEGL/libEGL.cpp b/src/3rdparty/angle/src/libEGL/libEGL.cpp +index dc20d85..68399d6 100644 +--- a/src/3rdparty/angle/src/libEGL/libEGL.cpp ++++ b/src/3rdparty/angle/src/libEGL/libEGL.cpp +@@ -17,6 +17,9 @@ + #include "libGLESv2/Texture.h" + #include "libGLESv2/main.h" + #include "libGLESv2/renderer/SwapChain.h" ++#if defined(ANGLE_ENABLE_D3D11) ++# include "libGLESv2/renderer/d3d/d3d11/Renderer11.h" ++#endif + + #include "libEGL/main.h" + #include "libEGL/Display.h" +@@ -582,25 +585,50 @@ EGLBoolean __stdcall eglQuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surf + egl::Display *display = static_cast(dpy); + egl::Surface *eglSurface = (egl::Surface*)surface; + +- if (!validateSurface(display, eglSurface)) +- { +- return EGL_FALSE; +- } +- +- if (surface == EGL_NO_SURFACE) +- { +- recordError(egl::Error(EGL_BAD_SURFACE)); +- return EGL_FALSE; +- } +- + switch (attribute) + { + case EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE: + { ++ if (!validateSurface(display, eglSurface)) ++ { ++ return EGL_FALSE; ++ } ++ ++ if (surface == EGL_NO_SURFACE) ++ { ++ recordError(egl::Error(EGL_BAD_SURFACE)); ++ return EGL_FALSE; ++ } ++ + rx::SwapChain *swapchain = eglSurface->getSwapChain(); + *value = (void*) (swapchain ? swapchain->getShareHandle() : NULL); + } + break; ++#if defined(ANGLE_ENABLE_D3D11) ++ case EGL_DEVICE_EXT: ++ { ++ if (!validateDisplay(display)) ++ { ++ return EGL_FALSE; ++ } ++ ++ rx::Renderer *renderer = display->getRenderer(); ++ if (!renderer) ++ { ++ *value = NULL; ++ break; ++ } ++ ++ if (renderer->getMajorShaderModel() < 4) ++ { ++ recordError(egl::Error(EGL_BAD_CONTEXT)); ++ return EGL_FALSE; ++ } ++ ++ *value = static_cast(renderer)->getDevice(); ++ } ++ break; ++#endif + default: + recordError(egl::Error(EGL_BAD_ATTRIBUTE)); + return EGL_FALSE; +-- +1.9.4.msysgit.1 + diff --git a/mingw-w64-angleproject-git/0013-ANGLE-Allow-for-universal-program-binaries.patch b/mingw-w64-angleproject-git/0013-ANGLE-Allow-for-universal-program-binaries.patch deleted file mode 100644 index 11c32880df..0000000000 --- a/mingw-w64-angleproject-git/0013-ANGLE-Allow-for-universal-program-binaries.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 5eeb4a06f182b4fc0e3dcb82f47fcf4286890f94 Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Fri, 21 Feb 2014 08:35:01 +0200 -Subject: [PATCH] ANGLE: Allow for universal program binaries - -As a safety precaution, ANGLE writes the commit hash, optimization level, -and adapter ID to its binary format. However, this hurts portability -between systems by making shader pre-compilation/caching artificially -system-specific. - -The shader compiler doesn't take the target adapter into account, and the -optimization level information discarded by ANGLE anyway. So, allow ANGLE -to bypass these checks on systems where precompilation is required (i.e. -WinRT). The default mechanism still applies unless -ANGLE_ENABLE_UNIVERSAL_BINARY is passed as a define. - -Change-Id: Iec6d833fd7010ed163978557238f00e7ac6ae416 ---- - src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp -index 8896665..41a83b6 100644 ---- a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp -@@ -1637,6 +1637,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length) - return false; - } - -+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY) - unsigned char commitString[ANGLE_COMMIT_HASH_SIZE]; - stream.read(commitString, ANGLE_COMMIT_HASH_SIZE); - if (memcmp(commitString, ANGLE_COMMIT_HASH, sizeof(unsigned char) * ANGLE_COMMIT_HASH_SIZE) != 0) -@@ -1652,6 +1653,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length) - infoLog.append("Mismatched compilation flags."); - return false; - } -+#endif - - for (int i = 0; i < MAX_VERTEX_ATTRIBS; ++i) - { -@@ -1742,6 +1744,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length) - - const char *ptr = (const char*) binary + stream.offset(); - -+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY) - const GUID *binaryIdentifier = (const GUID *) ptr; - ptr += sizeof(GUID); - -@@ -1751,6 +1754,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length) - infoLog.append("Invalid program binary."); - return false; - } -+#endif - - const char *pixelShaderFunction = ptr; - ptr += pixelShaderSize; -@@ -1808,9 +1812,10 @@ bool ProgramBinary::save(void* binary, GLsizei bufSize, GLsizei *length) - stream.write(GL_PROGRAM_BINARY_ANGLE); - stream.write(ANGLE_MAJOR_VERSION); - stream.write(ANGLE_MINOR_VERSION); -+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY) - stream.write(ANGLE_COMMIT_HASH, ANGLE_COMMIT_HASH_SIZE); - stream.write(ANGLE_COMPILE_OPTIMIZATION_LEVEL); -- -+#endif - for (unsigned int i = 0; i < MAX_VERTEX_ATTRIBS; ++i) - { - stream.write(mLinkedAttribute[i].type); -@@ -1866,7 +1871,9 @@ bool ProgramBinary::save(void* binary, GLsizei bufSize, GLsizei *length) - UINT geometryShaderSize = (mGeometryExecutable != NULL) ? mGeometryExecutable->getLength() : 0; - stream.write(geometryShaderSize); - -+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY) - GUID identifier = mRenderer->getAdapterIdentifier(); -+#endif - - GLsizei streamLength = stream.length(); - const void *streamData = stream.data(); -@@ -1889,8 +1896,10 @@ bool ProgramBinary::save(void* binary, GLsizei bufSize, GLsizei *length) - memcpy(ptr, streamData, streamLength); - ptr += streamLength; - -+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY) - memcpy(ptr, &identifier, sizeof(GUID)); - ptr += sizeof(GUID); -+#endif - - memcpy(ptr, mPixelExecutable->getFunction(), pixelShaderSize); - ptr += pixelShaderSize; --- -1.8.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch b/mingw-w64-angleproject-git/0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch deleted file mode 100644 index 52dfcd6da2..0000000000 --- a/mingw-w64-angleproject-git/0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch +++ /dev/null @@ -1,256 +0,0 @@ -From d7eb7ea643f00d47447d755b4a2125922d69a3b3 Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Thu, 20 Mar 2014 13:21:29 +0200 -Subject: [PATCH] ANGLE D3D11: Fix internal index buffer for level 9 hardware - -Some level 9 hardware does not support 32-bit indices, and in most -places this is already checked. It would appear that most phone -hardware actually does support 32-bit indices, and so this bug wasn't -caught until testing on the Surface RT. This is not surprising, as some -level 9 resources are only a minimum for the hardware spec, not the -true limit of the device/driver. - -This patch provides the general fix to use 16-bit indices on such -hardware, but a whitelist of known good GPUs should be added to enable -32-bit indices where available. - -Change-Id: I282ede5dd4a323037ade6c44b7cfac2c6445b491 ---- - .../src/libGLESv2/renderer/d3d11/Renderer11.cpp | 169 ++++++++++++--------- - 1 file changed, 94 insertions(+), 75 deletions(-) - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp -index 31d976d..2de477b 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp -@@ -1137,6 +1137,84 @@ void Renderer11::drawElements(GLenum mode, GLsizei count, GLenum type, const GLv - } - } - -+template -+static void fillLineLoopIndices(GLenum type, GLsizei count, const GLvoid *indices, T *data) -+{ -+ switch (type) -+ { -+ case GL_NONE: // Non-indexed draw -+ for (int i = 0; i < count; i++) -+ { -+ data[i] = i; -+ } -+ data[count] = 0; -+ break; -+ case GL_UNSIGNED_BYTE: -+ for (int i = 0; i < count; i++) -+ { -+ data[i] = static_cast(indices)[i]; -+ } -+ data[count] = static_cast(indices)[0]; -+ break; -+ case GL_UNSIGNED_SHORT: -+ for (int i = 0; i < count; i++) -+ { -+ data[i] = static_cast(indices)[i]; -+ } -+ data[count] = static_cast(indices)[0]; -+ break; -+ case GL_UNSIGNED_INT: -+ for (int i = 0; i < count; i++) -+ { -+ data[i] = static_cast(indices)[i]; -+ } -+ data[count] = static_cast(indices)[0]; -+ break; -+ default: UNREACHABLE(); -+ } -+} -+ -+template -+static void fillTriangleFanIndices(GLenum type, unsigned int numTris, const GLvoid *indices, T *data) -+{ -+ switch (type) -+ { -+ case GL_NONE: // Non-indexed draw -+ for (unsigned int i = 0; i < numTris; i++) -+ { -+ data[i*3 + 0] = 0; -+ data[i*3 + 1] = i + 1; -+ data[i*3 + 2] = i + 2; -+ } -+ break; -+ case GL_UNSIGNED_BYTE: -+ for (unsigned int i = 0; i < numTris; i++) -+ { -+ data[i*3 + 0] = static_cast(indices)[0]; -+ data[i*3 + 1] = static_cast(indices)[i + 1]; -+ data[i*3 + 2] = static_cast(indices)[i + 2]; -+ } -+ break; -+ case GL_UNSIGNED_SHORT: -+ for (unsigned int i = 0; i < numTris; i++) -+ { -+ data[i*3 + 0] = static_cast(indices)[0]; -+ data[i*3 + 1] = static_cast(indices)[i + 1]; -+ data[i*3 + 2] = static_cast(indices)[i + 2]; -+ } -+ break; -+ case GL_UNSIGNED_INT: -+ for (unsigned int i = 0; i < numTris; i++) -+ { -+ data[i*3 + 0] = static_cast(indices)[0]; -+ data[i*3 + 1] = static_cast(indices)[i + 1]; -+ data[i*3 + 2] = static_cast(indices)[i + 2]; -+ } -+ break; -+ default: UNREACHABLE(); -+ } -+} -+ - void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices, int minIndex, gl::Buffer *elementArrayBuffer) - { - // Get the raw indices for an indexed draw -@@ -1148,10 +1226,12 @@ void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices, - indices = static_cast(storage->getData()) + offset; - } - -+ const int indexType = get32BitIndexSupport() ? GL_UNSIGNED_INT : GL_UNSIGNED_SHORT; -+ - if (!mLineLoopIB) - { - mLineLoopIB = new StreamingIndexBufferInterface(this); -- if (!mLineLoopIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, GL_UNSIGNED_INT)) -+ if (!mLineLoopIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, indexType)) - { - delete mLineLoopIB; - mLineLoopIB = NULL; -@@ -1171,7 +1251,7 @@ void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices, - } - - const unsigned int spaceNeeded = (static_cast(count) + 1) * sizeof(unsigned int); -- if (!mLineLoopIB->reserveBufferSpace(spaceNeeded, GL_UNSIGNED_INT)) -+ if (!mLineLoopIB->reserveBufferSpace(spaceNeeded, indexType)) - { - ERR("Could not reserve enough space in looping index buffer for GL_LINE_LOOP."); - return gl::error(GL_OUT_OF_MEMORY); -@@ -1185,42 +1265,12 @@ void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices, - return gl::error(GL_OUT_OF_MEMORY); - } - -- unsigned int *data = reinterpret_cast(mappedMemory); -+ if (indexType == GL_UNSIGNED_SHORT) -+ fillLineLoopIndices(type, count, indices, reinterpret_cast(mappedMemory)); -+ else -+ fillLineLoopIndices(type, count, indices, reinterpret_cast(mappedMemory)); - unsigned int indexBufferOffset = offset; - -- switch (type) -- { -- case GL_NONE: // Non-indexed draw -- for (int i = 0; i < count; i++) -- { -- data[i] = i; -- } -- data[count] = 0; -- break; -- case GL_UNSIGNED_BYTE: -- for (int i = 0; i < count; i++) -- { -- data[i] = static_cast(indices)[i]; -- } -- data[count] = static_cast(indices)[0]; -- break; -- case GL_UNSIGNED_SHORT: -- for (int i = 0; i < count; i++) -- { -- data[i] = static_cast(indices)[i]; -- } -- data[count] = static_cast(indices)[0]; -- break; -- case GL_UNSIGNED_INT: -- for (int i = 0; i < count; i++) -- { -- data[i] = static_cast(indices)[i]; -- } -- data[count] = static_cast(indices)[0]; -- break; -- default: UNREACHABLE(); -- } -- - if (!mLineLoopIB->unmapBuffer()) - { - ERR("Could not unmap index buffer for GL_LINE_LOOP."); -@@ -1251,10 +1301,12 @@ void Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid *indic - indices = static_cast(storage->getData()) + offset; - } - -+ const int indexType = get32BitIndexSupport() ? GL_UNSIGNED_INT : GL_UNSIGNED_SHORT; -+ - if (!mTriangleFanIB) - { - mTriangleFanIB = new StreamingIndexBufferInterface(this); -- if (!mTriangleFanIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, GL_UNSIGNED_INT)) -+ if (!mTriangleFanIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, indexType)) - { - delete mTriangleFanIB; - mTriangleFanIB = NULL; -@@ -1276,7 +1328,7 @@ void Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid *indic - } - - const unsigned int spaceNeeded = (numTris * 3) * sizeof(unsigned int); -- if (!mTriangleFanIB->reserveBufferSpace(spaceNeeded, GL_UNSIGNED_INT)) -+ if (!mTriangleFanIB->reserveBufferSpace(spaceNeeded, indexType)) - { - ERR("Could not reserve enough space in scratch index buffer for GL_TRIANGLE_FAN."); - return gl::error(GL_OUT_OF_MEMORY); -@@ -1290,45 +1342,12 @@ void Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid *indic - return gl::error(GL_OUT_OF_MEMORY); - } - -- unsigned int *data = reinterpret_cast(mappedMemory); -+ if (indexType == GL_UNSIGNED_SHORT) -+ fillTriangleFanIndices(type, numTris, indices, reinterpret_cast(mappedMemory)); -+ else -+ fillTriangleFanIndices(type, numTris, indices, reinterpret_cast(mappedMemory)); - unsigned int indexBufferOffset = offset; - -- switch (type) -- { -- case GL_NONE: // Non-indexed draw -- for (unsigned int i = 0; i < numTris; i++) -- { -- data[i*3 + 0] = 0; -- data[i*3 + 1] = i + 1; -- data[i*3 + 2] = i + 2; -- } -- break; -- case GL_UNSIGNED_BYTE: -- for (unsigned int i = 0; i < numTris; i++) -- { -- data[i*3 + 0] = static_cast(indices)[0]; -- data[i*3 + 1] = static_cast(indices)[i + 1]; -- data[i*3 + 2] = static_cast(indices)[i + 2]; -- } -- break; -- case GL_UNSIGNED_SHORT: -- for (unsigned int i = 0; i < numTris; i++) -- { -- data[i*3 + 0] = static_cast(indices)[0]; -- data[i*3 + 1] = static_cast(indices)[i + 1]; -- data[i*3 + 2] = static_cast(indices)[i + 2]; -- } -- break; -- case GL_UNSIGNED_INT: -- for (unsigned int i = 0; i < numTris; i++) -- { -- data[i*3 + 0] = static_cast(indices)[0]; -- data[i*3 + 1] = static_cast(indices)[i + 1]; -- data[i*3 + 2] = static_cast(indices)[i + 2]; -- } -- break; -- default: UNREACHABLE(); -- } - - if (!mTriangleFanIB->unmapBuffer()) - { --- -1.8.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0014-Let-ANGLE-use-multithreaded-devices-if-necessary.patch b/mingw-w64-angleproject-git/0014-Let-ANGLE-use-multithreaded-devices-if-necessary.patch new file mode 100644 index 0000000000..9ceb34d964 --- /dev/null +++ b/mingw-w64-angleproject-git/0014-Let-ANGLE-use-multithreaded-devices-if-necessary.patch @@ -0,0 +1,69 @@ +From 5b3bc73210ed1847d9bd7a94f06cc0d5de8e0b89 Mon Sep 17 00:00:00 2001 +From: Michael Bruning +Date: Thu, 13 Nov 2014 15:40:10 +0200 +Subject: [PATCH 14/16] Let ANGLE use multithreaded devices if necessary. + +This is needed to prevent lock-ups in application that use ANGLE from +multiple threads, as e.g. QtWebEngine based applications do. + +The environment variable QT_D3DCREATE_MULTITHREADED is used to +communicate this from the QtWebEngine module. + +Change-Id: Ibd5a5c75eb68af567d420d9a35efb3490c93b27c +--- + src/3rdparty/angle/src/common/platform.h | 1 + + .../angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | 10 ++++++++++ + .../angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp | 4 ++++ + 3 files changed, 15 insertions(+) + +diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h +index 0065ec7..8b2190d 100644 +--- a/src/3rdparty/angle/src/common/platform.h ++++ b/src/3rdparty/angle/src/common/platform.h +@@ -57,6 +57,7 @@ + + # if defined(ANGLE_ENABLE_D3D11) + # include ++# include + # include + # include + # include +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp +index f6ba930..46b9984 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp +@@ -258,6 +258,16 @@ EGLint Renderer11::initialize() + } + + #if !defined(ANGLE_ENABLE_WINDOWS_STORE) ++ static wchar_t *qt_d3dcreate_multihreaded_var = _wgetenv(L"QT_D3DCREATE_MULTITHREADED"); ++ if (qt_d3dcreate_multihreaded_var && wcsstr(qt_d3dcreate_multihreaded_var, L"1")) ++ { ++ ID3D10Multithread *multithread; ++ result = mDevice->QueryInterface(IID_PPV_ARGS(&multithread)); ++ ASSERT(SUCCEEDED(result)); ++ result = multithread->SetMultithreadProtected(true); ++ ASSERT(SUCCEEDED(result)); ++ multithread->Release(); ++ } + #if !ANGLE_SKIP_DXGI_1_2_CHECK + // In order to create a swap chain for an HWND owned by another process, DXGI 1.2 is required. + // The easiest way to check is to query for a IDXGIDevice2. +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp +index 82963ec..4c552b2 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp +@@ -299,6 +299,10 @@ EGLint Renderer9::initialize() + D3DPRESENT_PARAMETERS presentParameters = getDefaultPresentParameters(); + DWORD behaviorFlags = D3DCREATE_FPU_PRESERVE | D3DCREATE_NOWINDOWCHANGES; + ++ static wchar_t *qt_d3dcreate_multihreaded_var = _wgetenv(L"QT_D3DCREATE_MULTITHREADED"); ++ if (qt_d3dcreate_multihreaded_var && wcsstr(qt_d3dcreate_multihreaded_var, L"1")) ++ behaviorFlags |= D3DCREATE_MULTITHREADED; ++ + { + result = mD3d9->CreateDevice(mAdapter, mDeviceType, mDeviceWindow, behaviorFlags | D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE, &presentParameters, &mDevice); + } +-- +1.9.4.msysgit.1 + diff --git a/mingw-w64-angleproject-git/0015-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch b/mingw-w64-angleproject-git/0015-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch new file mode 100644 index 0000000000..1acdef7176 --- /dev/null +++ b/mingw-w64-angleproject-git/0015-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch @@ -0,0 +1,533 @@ +From d9a9219ea2181dd4c1939d05747a21b67f16a906 Mon Sep 17 00:00:00 2001 +From: Andrew Knight +Date: Thu, 13 Nov 2014 16:33:53 +0200 +Subject: [PATCH 15/16] ANGLE: Fix -angle-d3d11 on MSVC2010 + +Allow the D3D11 renderer to build with the June 2010 DirectX SDK. + +Change-Id: I2343acedab16845d6a0d4a53cf3145f583efc4a7 +--- + src/3rdparty/angle/src/common/platform.h | 8 +- + src/3rdparty/angle/src/libGLESv2/Context.cpp | 8 +- + src/3rdparty/angle/src/libGLESv2/Data.h | 2 +- + src/3rdparty/angle/src/libGLESv2/State.cpp | 6 +- + .../src/libGLESv2/renderer/d3d/RendererD3D.cpp | 4 +- + .../libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | 4 +- + .../renderer/d3d/d3d11/renderer11_utils.cpp | 137 +++++++++++++++++++++ + 7 files changed, 156 insertions(+), 13 deletions(-) + +diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h +index 8b2190d..972eee2 100644 +--- a/src/3rdparty/angle/src/common/platform.h ++++ b/src/3rdparty/angle/src/common/platform.h +@@ -52,17 +52,21 @@ + + # if defined(ANGLE_ENABLE_D3D9) + # include ++# if !defined(COMPILER_IMPLEMENTATION) + # include ++# endif + # endif + + # if defined(ANGLE_ENABLE_D3D11) + # include + # include + # include + # include + # include + # include ++# if !defined(COMPILER_IMPLEMENTATION) + # include ++# endif + # endif + + # if defined(ANGLE_ENABLE_WINDOWS_STORE) +diff --git a/src/3rdparty/angle/src/libGLESv2/Context.cpp b/src/3rdparty/angle/src/libGLESv2/Context.cpp +index fe9b1a2..b87689c 100644 +--- a/src/3rdparty/angle/src/libGLESv2/Context.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/Context.cpp +@@ -168,9 +168,9 @@ Context::~Context() + } + mIncompleteTextures.clear(); + +- for (auto &zeroTexture : mZeroTextures) ++ for (TextureMap::iterator i = mZeroTextures.begin(); i != mZeroTextures.end(); i++) + { +- zeroTexture.second.set(NULL); ++ i->second.set(NULL); + } + mZeroTextures.clear(); + +@@ -354,7 +354,7 @@ void Context::deleteFenceSync(GLsync fenceSync) + + void Context::deleteVertexArray(GLuint vertexArray) + { +- auto vertexArrayObject = mVertexArrayMap.find(vertexArray); ++ VertexArrayMap::iterator vertexArrayObject = mVertexArrayMap.find(vertexArray); + + if (vertexArrayObject != mVertexArrayMap.end()) + { +@@ -460,7 +460,7 @@ FenceSync *Context::getFenceSync(GLsync handle) const + + VertexArray *Context::getVertexArray(GLuint handle) const + { +- auto vertexArray = mVertexArrayMap.find(handle); ++ VertexArrayMap::const_iterator vertexArray = mVertexArrayMap.find(handle); + + if (vertexArray == mVertexArrayMap.end()) + { +diff --git a/src/3rdparty/angle/src/libGLESv2/Data.h b/src/3rdparty/angle/src/libGLESv2/Data.h +index cff872a..9234403 100644 +--- a/src/3rdparty/angle/src/libGLESv2/Data.h ++++ b/src/3rdparty/angle/src/libGLESv2/Data.h +@@ -14,7 +14,7 @@ + namespace gl + { + +-struct Data final ++struct Data + { + public: + Data(GLint clientVersion, const State &state, const Caps &caps, +diff --git a/src/3rdparty/angle/src/libGLESv2/State.cpp b/src/3rdparty/angle/src/libGLESv2/State.cpp +index e7acda2..b5b62f5 100644 +--- a/src/3rdparty/angle/src/libGLESv2/State.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/State.cpp +@@ -665,13 +665,13 @@ void State::detachTexture(const TextureMap &zeroTextures, GLuint texture) + + void State::initializeZeroTextures(const TextureMap &zeroTextures) + { +- for (const auto &zeroTexture : zeroTextures) ++ for (TextureMap::const_iterator i = zeroTextures.begin(); i != zeroTextures.end(); i++) + { +- auto &samplerTextureArray = mSamplerTextures[zeroTexture.first]; ++ TextureBindingVector &samplerTextureArray = mSamplerTextures[i->first]; + + for (size_t textureUnit = 0; textureUnit < samplerTextureArray.size(); ++textureUnit) + { +- samplerTextureArray[textureUnit].set(zeroTexture.second.get()); ++ samplerTextureArray[textureUnit].set(i->second.get()); + } + } + } +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp +index 6f58243..97da6da 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp +@@ -27,9 +27,9 @@ RendererD3D::RendererD3D(egl::Display *display) + + RendererD3D::~RendererD3D() + { +- for (auto &incompleteTexture : mIncompleteTextures) ++ for (gl::TextureMap::iterator i = mIncompleteTextures.begin(); i != mIncompleteTextures.end(); ++i) + { +- incompleteTexture.second.set(NULL); ++ i->second.set(NULL); + } + mIncompleteTextures.clear(); + } +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp +index 46b9984..a28fd78 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp +@@ -873,7 +873,7 @@ bool Renderer11::applyPrimitiveType(GLenum mode, GLsizei count) + + void Renderer11::unsetSRVsWithResource(gl::SamplerType samplerType, const ID3D11Resource *resource) + { +- auto ¤tSRVs = (samplerType == gl::SAMPLER_VERTEX ? mCurVertexSRVs : mCurPixelSRVs); ++ std::vector ¤tSRVs = (samplerType == gl::SAMPLER_VERTEX ? mCurVertexSRVs : mCurPixelSRVs); + + for (size_t resourceIndex = 0; resourceIndex < currentSRVs.size(); ++resourceIndex) + { +@@ -3398,7 +3398,7 @@ Workarounds Renderer11::generateWorkarounds() const + + void Renderer11::setShaderResource(gl::SamplerType shaderType, UINT resourceSlot, ID3D11ShaderResourceView *srv) + { +- auto ¤tSRVs = (shaderType == gl::SAMPLER_VERTEX ? mCurVertexSRVs : mCurPixelSRVs); ++ std::vector ¤tSRVs = (shaderType == gl::SAMPLER_VERTEX ? mCurVertexSRVs : mCurPixelSRVs); + + ASSERT(static_cast(resourceSlot) < currentSRVs.size()); + +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp +index cbfe557..5831c57 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp +@@ -18,6 +18,85 @@ + + #include + ++#ifndef D3D_FL9_1_DEFAULT_MAX_ANISOTROPY ++# define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2 ++#endif ++#ifndef D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT ++# define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1 ++#endif ++#ifndef D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT ++# define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4 ++#endif ++#ifndef D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT ++# define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535 ++#endif ++#ifndef D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT ++# define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575 ++#endif ++#ifndef D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION ++# define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512 ++#endif ++#ifndef D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION ++# define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096 ++#endif ++#ifndef D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION ++# define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048 ++#endif ++#ifndef D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ++# define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256 ++#endif ++#ifndef D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION ++# define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096 ++#endif ++#ifndef D3D11_REQ_TEXTURECUBE_DIMENSION ++# define D3D11_REQ_TEXTURECUBE_DIMENSION 16384 ++#endif ++#ifndef D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ++# define D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION 2048 ++#endif ++#ifndef D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ++# define D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 2048 ++#endif ++#ifndef D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ++# define D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP 32 ++#endif ++#ifndef D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ++# define D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP 32 ++#endif ++#ifndef D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT ++# define D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT 32 ++#endif ++#ifndef D3D11_STANDARD_VERTEX_ELEMENT_COUNT ++# define D3D11_STANDARD_VERTEX_ELEMENT_COUNT 32 ++#endif ++#ifndef D3D10_1_SO_BUFFER_SLOT_COUNT ++# define D3D10_1_SO_BUFFER_SLOT_COUNT 4 ++#endif ++#ifndef D3D11_SO_BUFFER_SLOT_COUNT ++# define D3D11_SO_BUFFER_SLOT_COUNT 4 ++#endif ++#ifndef D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ++# define D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT 14 ++#endif ++#ifndef D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT ++# define D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT 16 ++#endif ++#ifndef D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ++# define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE -8 ++#endif ++#ifndef D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ++# define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE 7 ++#endif ++#ifndef D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ++# define D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT 4096 ++#endif ++#ifndef D3D11_PS_INPUT_REGISTER_COUNT ++# define D3D11_PS_INPUT_REGISTER_COUNT 32 ++#endif ++#ifndef D3D10_1_VS_OUTPUT_REGISTER_COUNT ++# define D3D10_1_VS_OUTPUT_REGISTER_COUNT 32 ++#endif ++ + namespace rx + { + +@@ -276,7 +355,9 @@ static bool GetNPOTTextureSupport(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: + case D3D_FEATURE_LEVEL_10_1: + case D3D_FEATURE_LEVEL_10_0: return true; +@@ -294,7 +375,9 @@ static float GetMaximumAnisotropy(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_MAX_MAXANISOTROPY; + + case D3D_FEATURE_LEVEL_10_1: +@@ -314,7 +397,9 @@ static bool GetOcclusionQuerySupport(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: + case D3D_FEATURE_LEVEL_10_1: + case D3D_FEATURE_LEVEL_10_0: return true; +@@ -334,7 +419,9 @@ static bool GetEventQuerySupport(D3D_FEATURE_LEVEL featureLevel) + + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: + case D3D_FEATURE_LEVEL_10_1: + case D3D_FEATURE_LEVEL_10_0: +@@ -352,7 +439,9 @@ static bool GetInstancingSupport(D3D_FEATURE_LEVEL featureLevel) + + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: + case D3D_FEATURE_LEVEL_10_1: + case D3D_FEATURE_LEVEL_10_0: +@@ -375,7 +464,9 @@ static bool GetDerivativeInstructionSupport(D3D_FEATURE_LEVEL featureLevel) + + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: + case D3D_FEATURE_LEVEL_10_1: + case D3D_FEATURE_LEVEL_10_0: +@@ -393,7 +484,9 @@ static size_t GetMaximumSimultaneousRenderTargets(D3D_FEATURE_LEVEL featureLevel + + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; + + case D3D_FEATURE_LEVEL_10_1: +@@ -411,7 +504,9 @@ static size_t GetMaximum2DTextureSize(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; + + case D3D_FEATURE_LEVEL_10_1: +@@ -429,7 +524,9 @@ static size_t GetMaximumCubeMapTextureSize(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURECUBE_DIMENSION; + + case D3D_FEATURE_LEVEL_10_1: +@@ -447,7 +544,9 @@ static size_t GetMaximum2DTextureArraySize(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION; + + case D3D_FEATURE_LEVEL_10_1: +@@ -465,7 +564,9 @@ static size_t GetMaximum3DTextureSize(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION; + + case D3D_FEATURE_LEVEL_10_1: +@@ -483,7 +584,9 @@ static size_t GetMaximumViewportSize(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_VIEWPORT_BOUNDS_MAX; + + case D3D_FEATURE_LEVEL_10_1: +@@ -507,7 +610,9 @@ static size_t GetMaximumDrawIndexedIndexCount(D3D_FEATURE_LEVEL featureLevel) + + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: + case D3D_FEATURE_LEVEL_10_1: + case D3D_FEATURE_LEVEL_10_0: return std::numeric_limits::max(); +@@ -529,7 +634,9 @@ static size_t GetMaximumDrawVertexCount(D3D_FEATURE_LEVEL featureLevel) + + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: + case D3D_FEATURE_LEVEL_10_1: + case D3D_FEATURE_LEVEL_10_0: return std::numeric_limits::max(); +@@ -546,7 +653,9 @@ static size_t GetMaximumVertexInputSlots(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_STANDARD_VERTEX_ELEMENT_COUNT; + + case D3D_FEATURE_LEVEL_10_1: return D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT; +@@ -566,7 +675,9 @@ static size_t GetMaximumVertexUniformVectors(D3D_FEATURE_LEVEL featureLevel) + // TODO(geofflang): Remove hard-coded limit once the gl-uniform-arrays test can pass + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return 1024; // D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT; + + case D3D_FEATURE_LEVEL_10_1: +@@ -591,7 +702,9 @@ static size_t GetMaximumVertexUniformBlocks(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - GetReservedVertexUniformBuffers(); + + case D3D_FEATURE_LEVEL_10_1: +@@ -618,7 +731,9 @@ static size_t GetMaximumVertexOutputVectors(D3D_FEATURE_LEVEL featureLevel) + + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_VS_OUTPUT_REGISTER_COUNT - GetReservedVertexOutputVectors(); + + case D3D_FEATURE_LEVEL_10_1: return D3D10_1_VS_OUTPUT_REGISTER_COUNT - GetReservedVertexOutputVectors(); +@@ -637,7 +752,9 @@ static size_t GetMaximumVertexTextureUnits(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; + + case D3D_FEATURE_LEVEL_10_1: +@@ -659,7 +776,9 @@ static size_t GetMaximumPixelUniformVectors(D3D_FEATURE_LEVEL featureLevel) + // TODO(geofflang): Remove hard-coded limit once the gl-uniform-arrays test can pass + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return 1024; // D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT; + + case D3D_FEATURE_LEVEL_10_1: +@@ -684,7 +803,9 @@ static size_t GetMaximumPixelUniformBlocks(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - GetReservedPixelUniformBuffers(); + + case D3D_FEATURE_LEVEL_10_1: +@@ -703,7 +824,9 @@ static size_t GetMaximumPixelInputVectors(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_PS_INPUT_REGISTER_COUNT - GetReservedVertexOutputVectors(); + + case D3D_FEATURE_LEVEL_10_1: +@@ -722,7 +845,9 @@ static size_t GetMaximumPixelTextureUnits(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; + + case D3D_FEATURE_LEVEL_10_1: +@@ -741,7 +866,9 @@ static int GetMinimumTexelOffset(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE; + + case D3D_FEATURE_LEVEL_10_1: +@@ -760,7 +887,9 @@ static int GetMaximumTexelOffset(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE; + case D3D_FEATURE_LEVEL_10_1: + case D3D_FEATURE_LEVEL_10_0: return D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE; +@@ -783,7 +912,9 @@ static size_t GetMaximumConstantBufferSize(D3D_FEATURE_LEVEL featureLevel) + + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT * bytesPerComponent; + + case D3D_FEATURE_LEVEL_10_1: +@@ -802,7 +933,9 @@ static size_t GetMaximumStreamOutputBuffers(D3D_FEATURE_LEVEL featureLevel) + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return D3D11_SO_BUFFER_SLOT_COUNT; + + case D3D_FEATURE_LEVEL_10_1: return D3D10_1_SO_BUFFER_SLOT_COUNT; +@@ -820,7 +953,9 @@ static size_t GetMaximumStreamOutputInterleavedComponents(D3D_FEATURE_LEVEL feat + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: + + case D3D_FEATURE_LEVEL_10_1: +@@ -838,7 +973,9 @@ static size_t GetMaximumStreamOutputSeparateComponents(D3D_FEATURE_LEVEL feature + { + switch (featureLevel) + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + case D3D_FEATURE_LEVEL_11_1: ++#endif + case D3D_FEATURE_LEVEL_11_0: return GetMaximumStreamOutputInterleavedComponents(featureLevel) / + GetMaximumStreamOutputBuffers(featureLevel); + +-- +1.9.4.msysgit.1 + diff --git a/mingw-w64-angleproject-git/0017-ANGLE-Fix-compilation-with-D3D9.patch b/mingw-w64-angleproject-git/0017-ANGLE-Fix-compilation-with-D3D9.patch new file mode 100644 index 0000000000..4ada6d41d2 --- /dev/null +++ b/mingw-w64-angleproject-git/0017-ANGLE-Fix-compilation-with-D3D9.patch @@ -0,0 +1,62 @@ +From d7839cc052de126cc3b457fe41963fd9c7e91846 Mon Sep 17 00:00:00 2001 +From: Kai Koehne +Date: Mon, 17 Nov 2014 15:10:10 +0100 +Subject: [PATCH] ANGLE: Fix compilation with D3D9 + +Fixes a regression introduced in c6df5fe3ed0f2a722 that +broke compilation with d3d9 (namely, -target xp). + +Task-number: QTBUG-42714 +Change-Id: I1a5e9682d5463bfa082a5d0c062399a131a7cf52 +--- + src/3rdparty/angle/src/common/NativeWindow.h | 7 ++++++- + src/3rdparty/angle/src/common/platform.h | 1 + + src/3rdparty/angle/src/common/win32/NativeWindow.cpp | 2 +- + 3 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/3rdparty/angle/src/common/NativeWindow.h b/src/3rdparty/angle/src/common/NativeWindow.h +index 9e93aea..c4a0e42 100644 +--- a/src/3rdparty/angle/src/common/NativeWindow.h ++++ b/src/3rdparty/angle/src/common/NativeWindow.h +@@ -54,7 +54,12 @@ public: + bool getClientRect(LPRECT rect); + bool isIconic(); + +- HRESULT createSwapChain(ID3D11Device* device, DXGIFactory* factory, ++# if defined(ANGLE_ENABLE_D3D11) ++ typedef ID3D11Device Device; ++#else ++ typedef IDirect3DDevice9 Device; ++#endif ++ HRESULT createSwapChain(Device* device, DXGIFactory* factory, + DXGI_FORMAT format, UINT width, UINT height, + DXGISwapChain** swapChain); + +diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h +index 0001e71..5bf97f9 100644 +--- a/src/3rdparty/angle/src/common/platform.h ++++ b/src/3rdparty/angle/src/common/platform.h +@@ -52,6 +52,7 @@ + + # if defined(ANGLE_ENABLE_D3D9) + # include ++# include + # if !defined(COMPILER_IMPLEMENTATION) + # include + # endif +diff --git a/src/3rdparty/angle/src/common/win32/NativeWindow.cpp b/src/3rdparty/angle/src/common/win32/NativeWindow.cpp +index 2440747..46082a2 100644 +--- a/src/3rdparty/angle/src/common/win32/NativeWindow.cpp ++++ b/src/3rdparty/angle/src/common/win32/NativeWindow.cpp +@@ -35,7 +35,7 @@ bool NativeWindow::isIconic() + return IsIconic(mWindow) == TRUE; + } + +-HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory, ++HRESULT NativeWindow::createSwapChain(NativeWindow::Device* device, DXGIFactory* factory, + DXGI_FORMAT format, unsigned int width, unsigned int height, + DXGISwapChain** swapChain) + { +-- +1.9.4.msysgit.0 + diff --git a/mingw-w64-angleproject-git/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch b/mingw-w64-angleproject-git/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch new file mode 100644 index 0000000000..97847ad684 --- /dev/null +++ b/mingw-w64-angleproject-git/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch @@ -0,0 +1,106 @@ +From 014d3fcf6011109491b0489da9c1abb1fdc6dbdc Mon Sep 17 00:00:00 2001 +From: Kai Koehne +Date: Mon, 24 Nov 2014 10:52:03 +0100 +Subject: [PATCH] ANGLE: Fix releasing textures after we kill D3D11 + +Cherry-pick upstream commit cc4cd2925b9a4f1142a86df131345a861c9d7cd9 +to fix crashes on exit. + +Task-number: QTBUG-42772 +Change-Id: Ib74be17f2b5fdd58f9e0568e1da74ba19e943019 +--- + src/3rdparty/angle/src/libGLESv2/Context.cpp | 6 ------ + src/3rdparty/angle/src/libGLESv2/Context.h | 1 - + src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp | 5 +++++ + src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h | 2 ++ + src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | 2 ++ + src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp | 2 ++ + 6 files changed, 11 insertions(+), 7 deletions(-) + +diff --git a/src/3rdparty/angle/src/libGLESv2/Context.cpp b/src/3rdparty/angle/src/libGLESv2/Context.cpp +index b87689c..3772da6 100644 +--- a/src/3rdparty/angle/src/libGLESv2/Context.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/Context.cpp +@@ -162,12 +162,6 @@ Context::~Context() + deleteTransformFeedback(mTransformFeedbackMap.begin()->first); + } + +- for (TextureMap::iterator i = mIncompleteTextures.begin(); i != mIncompleteTextures.end(); i++) +- { +- i->second.set(NULL); +- } +- mIncompleteTextures.clear(); +- + for (TextureMap::iterator i = mZeroTextures.begin(); i != mZeroTextures.end(); i++) + { + i->second.set(NULL); +diff --git a/src/3rdparty/angle/src/libGLESv2/Context.h b/src/3rdparty/angle/src/libGLESv2/Context.h +index 1e890de..0699592 100644 +--- a/src/3rdparty/angle/src/libGLESv2/Context.h ++++ b/src/3rdparty/angle/src/libGLESv2/Context.h +@@ -247,7 +247,6 @@ class Context + int mClientVersion; + + TextureMap mZeroTextures; +- TextureMap mIncompleteTextures; + + typedef std::unordered_map FramebufferMap; + FramebufferMap mFramebufferMap; +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp +index 97da6da..5cddd8a 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp +@@ -27,6 +27,11 @@ RendererD3D::RendererD3D(egl::Display *display) + + RendererD3D::~RendererD3D() + { ++ cleanup(); ++} ++ ++void RendererD3D::cleanup() ++{ + for (gl::TextureMap::iterator i = mIncompleteTextures.begin(); i != mIncompleteTextures.end(); ++i) + { + i->second.set(NULL); +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h +index 9919207..a2f7787 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h +@@ -160,6 +160,8 @@ class RendererD3D : public Renderer + const gl::Rectangle *scissor, bool blitRenderTarget, + bool blitDepth, bool blitStencil, GLenum filter) = 0; + ++ void cleanup(); ++ + egl::Display *mDisplay; + + private: +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp +index e6d7f30..777308e 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp +@@ -1870,6 +1870,8 @@ bool Renderer11::testDeviceResettable() + + void Renderer11::release() + { ++ RendererD3D::cleanup(); ++ + releaseShaderCompiler(); + releaseDeviceResources(); + +diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp +index 601cd24..18e6e2d 100644 +--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp ++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp +@@ -151,6 +151,8 @@ Renderer9::~Renderer9() + + void Renderer9::release() + { ++ RendererD3D::cleanup(); ++ + releaseShaderCompiler(); + releaseDeviceResources(); + +-- +1.9.4.msysgit.0 + diff --git a/mingw-w64-angleproject-git/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch b/mingw-w64-angleproject-git/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch index 8a717cf0dd..dcd1b16275 100644 --- a/mingw-w64-angleproject-git/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch +++ b/mingw-w64-angleproject-git/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch @@ -11,12 +11,12 @@ diff --git a/build/common.gypi b/build/common.gypi index b0a497f..db85e04 100644 --- a/build/common.gypi +++ b/build/common.gypi -@@ -228,7 +228,7 @@ +@@ -200,7 +200,7 @@ }, 'conditions': [ -- [ 'OS == "win" and MSVS_VERSION != "2010e" and MSVS_VERSION != "2012e"', -+ [ 'OS == "win" and GENERATOR == "msvs" and MSVS_VERSION != "2010e" and MSVS_VERSION != "2012e"', +- ['angle_build_winrt==0 and OS == "win" and MSVS_VERSION != "2010e"', ++ ['angle_build_winrt==0 and OS == "win" and GENERATOR == "msvs" and MSVS_VERSION != "2010e" and MSVS_VERSION != "2012e"', { 'Debug_x64': { diff --git a/mingw-w64-angleproject-git/0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch b/mingw-w64-angleproject-git/0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch deleted file mode 100644 index 089ac20089..0000000000 --- a/mingw-w64-angleproject-git/0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch +++ /dev/null @@ -1,237 +0,0 @@ -From 873f5103485641cda5bff523edcd417e28840532 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Fri, 7 Feb 2014 17:15:51 +0000 -Subject: [PATCH 2/2] Move event_tracer{.cpp,.h} to libGLESv2 instead of common - ---- - src/common/event_tracer.cpp | 49 ------------------------------- - src/common/event_tracer.h | 41 -------------------------- - src/libGLESv2/event_tracer.cpp | 49 +++++++++++++++++++++++++++++++ - src/libGLESv2/event_tracer.h | 41 ++++++++++++++++++++++++++ - src/third_party/trace_event/trace_event.h | 2 +- - 5 files changed, 91 insertions(+), 91 deletions(-) - delete mode 100644 src/common/event_tracer.cpp - delete mode 100644 src/common/event_tracer.h - create mode 100644 src/libGLESv2/event_tracer.cpp - create mode 100644 src/libGLESv2/event_tracer.h - -diff --git a/src/common/event_tracer.cpp b/src/common/event_tracer.cpp -deleted file mode 100644 -index 142373d..0000000 ---- a/src/common/event_tracer.cpp -+++ /dev/null -@@ -1,49 +0,0 @@ --// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. --// Use of this source code is governed by a BSD-style license that can be --// found in the LICENSE file. -- --#include "common/event_tracer.h" -- --namespace gl --{ -- --GetCategoryEnabledFlagFunc g_getCategoryEnabledFlag; --AddTraceEventFunc g_addTraceEvent; -- --} // namespace gl -- --extern "C" { -- --void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc getCategoryEnabledFlag, -- AddTraceEventFunc addTraceEvent) --{ -- gl::g_getCategoryEnabledFlag = getCategoryEnabledFlag; -- gl::g_addTraceEvent = addTraceEvent; --} -- --} // extern "C" -- --namespace gl --{ -- --const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name) --{ -- if (g_getCategoryEnabledFlag) -- { -- return g_getCategoryEnabledFlag(name); -- } -- static unsigned char disabled = 0; -- return &disabled; --} -- --void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id, -- int numArgs, const char** argNames, const unsigned char* argTypes, -- const unsigned long long* argValues, unsigned char flags) --{ -- if (g_addTraceEvent) -- { -- g_addTraceEvent(phase, categoryGroupEnabled, name, id, numArgs, argNames, argTypes, argValues, flags); -- } --} -- --} // namespace gl -diff --git a/src/common/event_tracer.h b/src/common/event_tracer.h -deleted file mode 100644 -index 14b7b29..0000000 ---- a/src/common/event_tracer.h -+++ /dev/null -@@ -1,41 +0,0 @@ --// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. --// Use of this source code is governed by a BSD-style license that can be --// found in the LICENSE file. -- --#ifndef COMMON_EVENT_TRACER_H_ --#define COMMON_EVENT_TRACER_H_ -- --#if !defined(TRACE_ENTRY) --#if defined(_WIN32) --#define TRACE_ENTRY __stdcall --#else --#define TRACE_ENTRY --#endif // // _WIN32 --#endif //TRACE_ENTRY -- --extern "C" { -- --typedef const unsigned char* (*GetCategoryEnabledFlagFunc)(const char* name); --typedef void (*AddTraceEventFunc)(char phase, const unsigned char* categoryGroupEnabled, const char* name, -- unsigned long long id, int numArgs, const char** argNames, -- const unsigned char* argTypes, const unsigned long long* argValues, -- unsigned char flags); -- --// extern "C" so that it has a reasonable name for GetProcAddress. --void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc get_category_enabled_flag, -- AddTraceEventFunc add_trace_event_func); -- --} -- --namespace gl --{ -- --const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name); -- --void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id, -- int numArgs, const char** argNames, const unsigned char* argTypes, -- const unsigned long long* argValues, unsigned char flags); -- --} -- --#endif // COMMON_EVENT_TRACER_H_ -diff --git a/src/libGLESv2/event_tracer.cpp b/src/libGLESv2/event_tracer.cpp -new file mode 100644 -index 0000000..b38e7c3 ---- /dev/null -+++ b/src/libGLESv2/event_tracer.cpp -@@ -0,0 +1,49 @@ -+// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+#include "event_tracer.h" -+ -+namespace gl -+{ -+ -+GetCategoryEnabledFlagFunc g_getCategoryEnabledFlag; -+AddTraceEventFunc g_addTraceEvent; -+ -+} // namespace gl -+ -+extern "C" { -+ -+void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc getCategoryEnabledFlag, -+ AddTraceEventFunc addTraceEvent) -+{ -+ gl::g_getCategoryEnabledFlag = getCategoryEnabledFlag; -+ gl::g_addTraceEvent = addTraceEvent; -+} -+ -+} // extern "C" -+ -+namespace gl -+{ -+ -+const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name) -+{ -+ if (g_getCategoryEnabledFlag) -+ { -+ return g_getCategoryEnabledFlag(name); -+ } -+ static unsigned char disabled = 0; -+ return &disabled; -+} -+ -+void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id, -+ int numArgs, const char** argNames, const unsigned char* argTypes, -+ const unsigned long long* argValues, unsigned char flags) -+{ -+ if (g_addTraceEvent) -+ { -+ g_addTraceEvent(phase, categoryGroupEnabled, name, id, numArgs, argNames, argTypes, argValues, flags); -+ } -+} -+ -+} // namespace gl -diff --git a/src/libGLESv2/event_tracer.h b/src/libGLESv2/event_tracer.h -new file mode 100644 -index 0000000..14b7b29 ---- /dev/null -+++ b/src/libGLESv2/event_tracer.h -@@ -0,0 +1,41 @@ -+// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+#ifndef COMMON_EVENT_TRACER_H_ -+#define COMMON_EVENT_TRACER_H_ -+ -+#if !defined(TRACE_ENTRY) -+#if defined(_WIN32) -+#define TRACE_ENTRY __stdcall -+#else -+#define TRACE_ENTRY -+#endif // // _WIN32 -+#endif //TRACE_ENTRY -+ -+extern "C" { -+ -+typedef const unsigned char* (*GetCategoryEnabledFlagFunc)(const char* name); -+typedef void (*AddTraceEventFunc)(char phase, const unsigned char* categoryGroupEnabled, const char* name, -+ unsigned long long id, int numArgs, const char** argNames, -+ const unsigned char* argTypes, const unsigned long long* argValues, -+ unsigned char flags); -+ -+// extern "C" so that it has a reasonable name for GetProcAddress. -+void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc get_category_enabled_flag, -+ AddTraceEventFunc add_trace_event_func); -+ -+} -+ -+namespace gl -+{ -+ -+const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name); -+ -+void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id, -+ int numArgs, const char** argNames, const unsigned char* argTypes, -+ const unsigned long long* argValues, unsigned char flags); -+ -+} -+ -+#endif // COMMON_EVENT_TRACER_H_ -diff --git a/src/third_party/trace_event/trace_event.h b/src/third_party/trace_event/trace_event.h -index 1880056..ebd5a1e 100644 ---- a/src/third_party/trace_event/trace_event.h -+++ b/src/third_party/trace_event/trace_event.h -@@ -144,7 +144,7 @@ - - #include - --#include "common/event_tracer.h" -+#include "libGLESv2/event_tracer.h" - - // By default, const char* argument values are assumed to have long-lived scope - // and will not be copied. Use this macro to force a const char* to be copied. --- -1.8.5.3 - diff --git a/mingw-w64-angleproject-git/D3DCompiler_43-i686.dll b/mingw-w64-angleproject-git/D3DCompiler_43-i686.dll deleted file mode 100644 index ab9616191fa73b5f624b85d430b3ee95d3e3c278..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2106216 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

opkKgG?0H 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⁣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

IQ{+flxV&>Y-3RLd|51PS zi9&@4wUbc~D^xR~Y8mBHsCNi;lu_dq>UBajGwL>ldYMqIjOwRQYYElPD3d}h1xjB< zBLf-2priK+4Go%l2oCuEu9|ywM=^S*5=a#2l4bsQ2pnR) z%hAJ%{QK@+V6Cbo9;Bs#3Q+6M(0GKe0!EtYu`iR3RMiHCos;R81{ajbRS)`G%rOr+_Jp+M-Z>2sM;Z z0fmYu)HFstsZd|iPLcfl(p|gNXYr0Cnkb3IOzBdT@4!b}#;EZM^*W)}GU_&kdYMpL z7}Zaq)&g}(7Ph>gRm0vLcTq9ef{($QYi%6S^OP9-zgjJbf>j+T>OOV+iBbU^ z+W%N8221Q(mRtOdQKUA05=(QQ!^VwuWeJ#PLqBe@4+OY^C`XVj9!9E$oJoY7OCnZB=0qLfVE-Z19v}K?|sZ=s? zJczM=vN)Kw=%lLA(4CZPb8tR*Qe)d%rau7>irg}m2cMEVuy$7MF%thq8UGfh|261k z{4`cY=*7`o&uo8LrS>_aXcim^^=l5*Wd^;2!|r23TkwyOQ6LWK z$cqjliFd>uKZ6Or(tM>*jdJh0IaHiU+$5gzJ7q~7#Ytqp~M`A#!E60}AxlKmsO zvp`L@uPoi*=|@`wo}Rp8(p{fraiP9n{T$UuJG*YN4%DopWsEb7trn$V!-g}P`1wh; zbU@tfB-^yPIQuWeo*LXQ-k)R}`~Y+d0JZ?P8gPD2k}U%?HSiw`|7<*;e>lnZGk_KF z)I%se_}?%u$yNdQ3}E_6l5PBgB-`tNR=^R^#o>7~@Y50gemo6nhBW&BLw`Svj#H%Z z|0!5nn$eU-s?^i2xu)AS-SG>B>J-STLZ;awj;o$Md-b+hlKb@SXR)MQ*MC6j^=SjI zqUicMsOt;d=Fd?se*jzr)T-wPcoP0jl;u=FA%Oe|mcZ=;ya0F=uorL~@G0OMfce2B z+W^4rfC+$^fJXpN0s??7fHwg3fKz}rKp4;qbu}0;25>K6F5n43CEyo;-vRakngE{x z%&6aA0<3_(fa?Kvz!1O)!2jky5_LTp@BrX3z%Ky51MCAd0oI_N*8$d3ea8fWNG=|E|cZ#g=5yxOn>agMTt%`Mb`Dt($IuI{{r| z1=m;oeGk#a|4P5O$fj?Xr#c@sW1<+7hk^ZKw||!bn_3N3Cj1gl4OQl-%c5MOFdjpH zNopWKRAN{hO${*?1*&X#$BaP?n}-1c8nrEw#J{f-V)f!?5Gq7f2O)+>5qi7mgBQq) zko-M#ajYh#V7Tl)docv33bYOytcJj0nhVE`aM;Lk9UQ6TAewY?B*8Hfj(ici1MzWg zbj}SX#tqryFs_FivNPp_l%9tjRg|ydY{|V#Wy*ddc&#F~aY{qka=8oigTfxfoSAgf zUgwR2jeE+!Ohd*}^j5}soymP2qo6v(+oF$m!H!AzLuilll{cHb&<}Wy-}HLii)E>n z#93ezs#kfN(mN1=!hI+Zg2aeEnW>0q-`5K>ldV5Mv{w$MxAdxLSyF{>xX%?2shHne1Rc?UuK;HO0`M)MOVeVfYF~DA$5{Kq*9H2Q z%aZ9B$j>rJ#t!kz+iA6d&kD}}$eD@CD-gHGus4x&K4VkJxs9FI!YQSTXeyUJ_I^{z zDBR$r>!*B06^_d;eR4-WbTVpf9OR>6ksz4OrNVNQ<9<`oF@19f4z_#_Owy;K$>~qo zBsa!O;#CCD%=3t!m&hr(e4d=?jIAc;5_XouDdnmpKPlE#7g1BbhD50^|GsaHjkudi zI$y4bQM#Q7BqfP78joD!5|$D)C+VNZ(hyhpon=28XGw`4X?r=8*cOuP zkEbt)Oo;y|dyAp;RmVQ9*39qC{7!|GxNtnEp=eRC$J^{d)?VBB{ZCOsTxgVpo$T>K zl+ZMv%4L-#lsSje3!5Xwy3&eX1uM8urN|O%VDTy%OoSWc;bMzs!~ z203%snGPpR9QmFyV;pKlHBltiRV0BC$Qoqw^GU5N-y9PO%aQbio&&jM?DGd&@G=(l zV5e$jIXYi$r@u-7y$))4Zr4ehOiABBmYJ+fuH_Wp93o3>P@cAp5w9?UO6Cy1Z{T;c zUPVa-EVCis&cb&(%MS)jgBJZ~~?)nP=GU$8-9{182{p1vM%2u(>lKe0;X=?iPze~j zO>#6#=|cU0b!8jo%c{`dpwIy-Z50Q15S$^=g3!+%vfv%};#Am&fH)^iB(8YCfSoHb zl7zJQ{5LW#@OXgJHi+M}7l=_bGo1>=n!fsxNr5OE*;xH&=o`BtUSH z73jFw3qco6MJ90m%WP9aOyhS8zemhLUQS0a@RTzKl~i@u(@PE`Zt-{N0dCG`TH=&h zMYlKxw3fpW9V90WZEjHmCpHdAEhtG$EHY>_vYgo{nAReod@qH&X&?WnR zOgFuaHEY3H0oHeh#cyQrDiTpP@UzFq!uOd7X};Es6tN$qJR+9FBkE7BERN%KKEMv?Z+*V-iMC?+i<#oNB8Qm-n3OpW=zyS2!W09T-Qny&jq-H%S zv%n?Bp6!c9S#|?%R+`BOQut229TKwzB7vq-R&-WmyWZ5pfYIja+(z`@wPG7oD{u#< z*)76<116-?>|?}V(MT}1k@Q5lC4Wyp8hk3UnPicm zHQAL<1{G{zBvoiN@EQd%;>LK;TASZJuC!FmaX%PR0VFoEiA03pr{C%w*E83FLb>tNDkiXJyqmIO8 zjl56$igq$b%i(NhqPS2JnEb+z)aAl&zBZHnXd#A=HxgZd=~{7j zx}I)8UWbNoWto~*#(5Gc{S;W;h_b1GBd;Jo>{=i>P9Tme?Q4O?cv!iD3TBhN8m}l* zOCFm|af!7U*d+a5u#ojFLti3xONMC+n2VRt`@ljntX`4G<06=Nhg~zokSgvTh_S*0 zs?ZRvf{CB_&%`~6xEfT5J=rBD6D6uvezarlpBtn;$38OKfj(ojey@)T4 z!X?ZIj-ZU$!bzV;D+dN~4%gB0Cs3nss7A3eM02`An1`j}LsK!JD6Ok1P(ABpTNzGm z1+h(Y6`YfIgy`JSIV-_B(7^cy=kCG=2eSJlyLeMCf>=!3xLUhL0U7n z&uMm-b=6ta0eW5L+DwejS@x_=@|jbCXXJc{+peuk+g(Q$*CSAAKZL4-n(#X3^$Quzn4LyXn zN&JhzXPj61oh#2#Y&7)u#E>#2?Ae*A9Yu=4O+d%mS8r`CvvD^wW)50t9=?%LLlo*F zYVGZWOhZMG49DwhWyEoT_4W#6az=RPIp#0g;FCe++iS0cCoVcryVqmPpw!F=xrsue z39H`z39%X>3e2?6CO_5V-yweY+P6`3RBk0VB1P3l=O9}-nqYR9p=G0=1`mS{-FG&; za0&lm8pVFhUN~ET7wRU`75x;W?1TB}lI!v65=N|IWpPeJ!c=TXG+9gLh*A&{8eR(Z zLJNAKCDsdT`qKX!J!_XZb3MXFyV}jsPYrjqP+zW~;S?6}yTl(s zjWp0(AaH54t|WU799b4K@+^DHZia7)$39Z_G-}=}Gf`noJB?`{mI;rfj}N|+6J%Ey zieAb6Z{-RMJ#yr~5q#UkpFuC*Wml)Ug-cwoQbY|PmT@%0`0%eh!x$W$VR+z&+okr@ z0vAV zHo+|HIQ?#1_#OVMw($`Bsx7mBs67PS zlqdqF+mKYjl!5!>e3veJ(}*~Jp&o}#2eMH9&5(EBzbJ2q6~7;tb4?s3Nyu}euQA^5 zw7Iv%ORGTJY}P8$*+#R*<+%TBt)$M1^U?E@&GDXW$2=3XTl9mVIIcY;>xqtdFWF@! zYpA%ne9=_gh6XltP5fPn-u}LeaV0mbnHYChcAWQGx+0RiW@7wZ*|>(UFDHX0qmk3l zHa#~PK@zZ}$Ne~B$yymgirdWA%Fl?8S(X{1$pRy*q!E%zf(u$7Pql$c>gfviq3VrR zRDAfuMc7{idK1tz4ffmx0fh5)ao)U09sN+C{Ad^$v#j;@Di9BFsx@TlgA)cT`7`jv z&OyH*i3Uq30Vsc86xI1U6O5@%HbG(^W@7!g_K2H)(_z-pMwcBhTgkTg=K^Von`iP5 z_v324$~EwD(VTT@y=wlSM`@x(nDv3Q4~Y#2rz7$`RS zKJOgzb%FMKMB)|;C-*ZLFC(wUzv-|PS7Hi}b_*wvdbUX~p+Ycr7@IjJ?>;a~i<&Wp zfN293sbOyt9Eip+;46MJ#Lu%L&@Cat4mzyTY5R(+ta#x ztm8saH|y>R@x}%y0_;7}SCe%bqpI z(cR&AF9day=RMef9SyoFq*g1if$(hN5U`j$&p-UZDEjKW&^za6McYWUm#+KeDcCRn z7Unij`8OZM7s$V_gMO>p>30L^R%5HI9!zlyaHmaLWF_@#{v?_cU*rjif0qe_^!^HB zkIb(?t#6>%$Uz5o|%8Q%%#uFo_Y@f8hJp;L#I`Pc1%ee~w~`W0vq z!2s(?&Yz*JU1YRTbc+!k8HCN5p>0v9`x%uI8fD$TTE-R&wq4PTQZzkhXf+CTBcqb_ z0M&xd6*$2!U%qk#sIsgpALmk|8rHd1QI})%U6I;}nA)WXFgiixU@_*rQFE>NBCZd5 zBu9z4MFZy;q__q}TJ@mhFy6Z)z*rPO6Hr`Zb*jc*$Mgeh`028w^j$ z+*XV1#7a9C23t_hfn8MK_0H{SEEWL`EXmZt&7sMG$>EIibUOxSeXF*hzV}O$w)@$h zYWjX@(ssWzX}e#VwB0XF+U}PoZTFK&TQ*@f$hVK0y20Bwyo++AZ=jOc5f{ka9=s1t zyeoD@En&yfL>Z=TBPFQX_dagSaa4k2^sh?^zTF!o$VCtCp#{TQ)rx^jYec5=#joKB zG-Ruw%m;4t$A$~&@wqnrYu)s77k0zJmAFPn+bhSCKPSTPJ-Dq;3hP&uBeFnQ7~%hh z@JcDqy9t&;^L76cJ5^1^S{oq`ZJ=NppO@cwf>62O)kkc00Acsui&tupyr$opGFz z0oYRO7v4pFJL2>YGY-4h@NMv8uqDwWYP+E8frf7Xo>jP?dDzcGM17T@h-G_^wM-wz z-bbQMvKb`YBpXzd9E4L>G|AjZlOzHe6F150akhdfJ$fzm)B`X~N*(x+&0j_BLbb$y z_LMELhrWx(s*puKRX3q(x;9cxN^5C&7xAip=+f)SHtHo&hTD~@KXSK)L0xKxY*6+ZxXVum9+OB|3Lmsonk#)&iTlcc-GKdocK}BLuL8~jJ^&n8m1Nrpcp2~;z#jlR z0Y3*c0R9Z<`kj#bU2UoPWS9^$rfxK|gFIzND1p=%<90~9ZiFeGjPtOoL;D}XbRi&vFpvYW?_gHx^9t%xC;w6%*cvpL&e5^h=J&E+6)tg1EhC8-#Uf;YfgiV z)dprEPS{^Y#EKdbiZWPlkFInGmzs{xL5%vhrVh*2A`V&wd zzv+RJ#|$;&@YwD!wdpqL2OTbxXV3)SxFeW79`SxP;xub#&m^q}WYjtMHR>ch@`%zD zU_%7dLXW)>C)UD^?d@a21&6j3^lDs3!>)?_H z6W1YYLjgH}CjqaiXJiaf{lS76v$AsCfH?%dfjFXM`QODDQ6c|p;euoR(iX1j6gp}+ zCf+{Hm0gU=_LZ69y#p4R$e;jx_I}7d_v5CTZh(FhY7Ll?OUpw%5w;l6dh>{OD`H{k znOj-V{3WD@0YW>9Y`KMl)23l(4_p*at__Pqx%Gc#?~a_0w54KQFU?P$b1ed^Q1Vgl z>@Wx$vumyHfxb+fwo~f8m{V&t$z@R9z;Sp8wg!P!dXhD74@l4PtZ{N6UK)vui=@&WjgAM&W934)K)ut=VzQojZ9(tEj^X!=S?y+ z0_vt;qPVaggckfoy)$Y9<*nksF@0mk%j^~9y$$+hZ}&-#!nWcBBpBMGWYb%^QGr?z z#e)z!;$0oBnOUo6AL_tf+Sx|*UE-dMxFhtDhSaq`8*2-Uwfa{i99nPYLn-wIS;Dc} z^i0~PBOwc1hLnQM1@Ivp*LkkVg5lf9Iz(Rfx~1NB4^&d{veXQbu^_c@4(*MD!9~F`^Sh9>vUtSu@)Slx%ize zVtpcp>!C=}Ehb3TD4a6$U|n?w^<4hiP%^Rz@}kMy3STwSKoKH%z|{>Z5jx<$2i;tr zf0AKM?)%Qp{O}SJSjY?%3bt=02|lHekecwG3z({Kp$g}c$Hk?Dm`%*zCV_KrJ2nZg zZpZ=n5bkLVhJ$_OBF;OAsBl6hudSlmQ9l-NbXL5L4{+#KuFqDNs6U|w!AJDmR!rr_ zAS2A3Ezd3NBv455g;SML#lgfuVH@2KClj`X9k9h&XbFCTsVdt%q_a_;tXMFVwt)R{ zU|%Ec3~mub5hGj|l4vhh^*LPDXCSvp?|=b$s?5meL6vzgBP7h;oQ#3cTn!_(Z%*!6 z?fhg>3UvZe_kN_LNq3m45AOiPhUqACC%%f8$G3{bKyEwN(TjhHguF?G%ps|j>*$-3 zhdO*J>d(eeot@N^s15^#Z9I&MA#_f_r`(@#C3gA_htFpwn>RVY~{^3-CY(K*?z zP2(>9K3l@ATtm|?T_c07bSBgpE(|>D%zX^i)(Vsx&bCJs&o6%LgP9L z!-J8>dRd2E@bIx$R06HYv*R$Wl! zMTUsJxbUIFinuL5;6(Adj!|7e5id*(LcZf!#8l&0J<@+C97Dnqy zjVE*X`=GbGp_8e_gihAx5=V}p5weiT0?3_2+ut#9;BsGF!N)*XAb!RSm>ZlYkzF)O zYh?<_sF3mvIlcsPw?-xpJ30{`j600$?y&mONm|3yJ&;;KEkDa_@)tHaOdpqh8*j7v zx|1iCpr!!Dib|td{WPTN8^;uJ7;uhx9ue78(IY?B5J)W;&!Xt4u8xU9_$kAe?=n&< z_3I5Z+b%{i#zC_qF9ctWhPs79Nkw<-WvI{%f+D>#nX+hr^KhYPFgnpGE3bXNL+Q|@ zyFlcTXD)0ZBZuA0Ij9<3S+}mPH}NX9c?+)M;5&#B!P5;#MK&>!x;>Y850LOe3utO* zXlViGQJ1*$-3Ub+zI(dq<4WWmqB+YaU`|{;*Q(d55 z0%{D5znzVZIIV(f@DEh15XqT5zMH{l@Yd7PUHp@3n4}X5M1cKiY1kdn1-lVr(TL`9 zM6{b!fD?g8(SJ&zNfAtexDQU`gGA-c(1kMz^4RLCTY<<>F=I~RJc=QG;rrWO0P?AwV>f94STnd2h2oe1l>}q(L%XN&{h}3~zleQbO+{5cZu^%Xo+B zEx{>NZkR+mTU?9G9O#I6_h=-{3kXB8>CTq$aD10eM}3y5*qYHN3q+}mjSH(5ZlYfj zX-*GFPZU`*T&g)a8EFn4rmRr<_>4u;pBhc2Z#4Zgoc@DRpH7T;0cRsPJ42I5$S_B} zNU8(Ew3OE~%-t#UG}LL36vlB{&9Sup7VXu);}|Kg&79VkQ6HMzbIEaRI>(0P5Ej=U z#Vo2^#`1Y%*Bem zJ(Amy3p*?;d`n>{VJRgs1(VxD;#yVSWlj8bf&JTWDM!(vlvZWXUwe^0Fo(2GF00>z z1Y>4s1UD6kXWLb`c;hg_5~n_%{1(T9gsu;wdV}CLV;+WdvRF_V$ZOwuH^FtqIr#xZx$}l?JSN z8TU<5Kp*1S320RS{bt6Bt?DS%=vm91|bozW?r7_b3FZ_1j_d$mURifi+wzD zA4`=iE!;~WD~{dWl*b@ueOydHz7Q78&rqN~+{GwGR4VG9XDw5BzJgty9$G5GxJ5qv z;fYz9Tttgqhj<4qld9_oKJa=2I+=KqO0>D^blJ^_EE{Ljduh1-Kg_)kd{ou7=s!t@ zWQ2hkG}r(EM;$c^wb9@ejA%lbBm$8MX%eaew%T_i*IEcO5X2yG63KWtmG)|-t@dIc zZEdf;(iU4()C7=$N|jn_p<){=ZO`0EZB(kka+&vCd!Lz12)CcU-|zE#@5hIev*(<3 z_Mf%aUVH7e*IIi#f&)UDyAzodUM-e{)Z+QSQska=|7Rxgtc25EKl8b#SxrL?Whr|< zsHQ4tV{%rGX>Qhydd0q*>{MeK?C$`9fTf&$*=CSkj6|0$YLy zN_yi5LVSAb>_VCuXT;;G%^+wcm4t(e3x&q6(_-(IovPLNBS=++2iem$NC ze`fVwW_>5?^}=Q>hLNbQX2ufZ5VewPvQI&YtXdjc0#I3#{bznUZ+=fw)_CnFz_lSpgns|8Zc@m)J^tfn{rZ`%f zS22%oKV%=5wV|RA32L2?1+n`64N08Nk9^WNJt0y8iDN}_dU9m4ak@A%9%76XLWq+6 zM9F@HWIsN7VJ3SN3}L%X){!c2IW{ZtA?;9k->dS@!DcI68*9-a`@u}}mI(CzG_;sS z8mG_kb^Ju0oF3`x_<>4{(rXaov{x^gjMJli9bzbFoF3!rkQIn=+UM(7rxO0i8sqfX z$V%h%CnC#@)8|L-Hcnp_`Df$wC6UjS6T0kA3hIJLqj5SA2^*&`jLbDoUlhR>^5RIP zaXJ{e-Z*_}P;sq#24GFE63ueP zBEPR=B4njT8S!5zprx0wN9$UqDNcWvJkp+3i&gOfRCw~;1HYmZne~<`mX%%zwZ2I0 z;rPC;y}Wi5mrZJj^`h07LHq^%TI_ga0jUO

)q-qrZC9o-JHS<*-3OqV`f*mtXPT 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⪚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

=PIn;pVSmOr?pz#>!KG=EUGvWtWB$#K=XV;7T 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 z

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 P7Bbj^zjM)+Hmew9qB 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�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

TR4a_J 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

FQc)>c5F3;EJub=Vi9CkAqwPO>aKjCzfAG-i+ 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 z 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⪚&6BdT7H{un_HLTl9Nj!<;>p{+ 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

0D%`nN@; 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

!Qpn zMvm88#nka4Fz#+K!iv&)8da2H zd`fMZI3vnnB%(MW;$F_QKAoru5%?MTfcjl_Z`khLVPepDq6+FYqKYVvnWn8e*zWE* z|7U#nyA{#^fx#=;G2nYW2wlRfI+4j5(RC9H!EZb01o!Hz%FBnZ}t>8}*jMBW>#+y;Cs0(uU^n&6*lx(~e6K|?@@A}%P z6Iw^?VMP0aCuea|I4?8&p0jh%&u)q3w`F_2_%S@(ftn<8<89ej{-kQ#F7T_QmU^OU z@#a3%KfEEPm5IPp;7uUODs0Oh3xM$kzw|;`JfayoF0_fSoux=n$jq5VnA_Ha85|n< zn^vINx@}^5Ehi45AQIin_lVVTp<`Y14V*?6wTlkP80d)NIuOy8-$grS$HB%SWFH`&*YR7`qo#)&O#&TsW#Lc@>ShKdZfWUQ>RZ(Co% zZIe3J{YpS0B;fnykc;l+KnUT<0l=n_|AA1K^~a2+n>p-pf>-kjo6H%Q&d1!Np z@?P%AH3ZvVf{8m97}&c=7_!z$ogxHNRC=4eHn!DC8NaojHxAe7HsIG1XMQr@UJXN) z9d)8YnGl|_6Dgg-T05)k;3SzREY%Cn;^P1^36c;}mvQa&)|#ZgK3UW9aiSKr*_kct z=YB2ZZWE(U!abvMtjA{X4)_>U3>U?joQ9bDtks8LB}zCLd^wGOwlxu}6&E_fbM!T^ zqCOeHc(kxNxtW0Esk5jp)UuT$Cl``ix6@j%kb0ES=p?!bVqyIgg_%2hc)Msj{i)Bb z;nJT0VlX+K^$g6LvS^W?j-^`Zvz+>&9cJ2&_U4LN%f8xZrfVqE<#g_#P;{n=`iNsh zX867f|4?x27J(@m+h20p|6G$CPssb^2By16(?C;O#K7ZSV?;BbFet& zFO#q561;WRymfSF;-??Fw6<#DAa-cpafkmaH-$0RMiD`~8)Fl1X_ox_8obeWCn@rK zsV4?vbj^eAWKAS}%Y?}41Kz(#dSIULJ<+B$n!8ZuqGj0y?qH!Z;}$0sT!^)5Y@d16 zM`(Ox+aCs%^$ujd$ay)*#OO`WtxwMl^iGoJ0O3bDZ>J|A1)tQ${|V_yt&}s7c+-=n zrYFtf;q2^W@Psm4|RusmD|FYv6EjZU{>lpeA$AQE*)5JJ2B1}3!5S{ zpNeGauE2#c!qYg!eK-VYb1m6YK%1LuZwjXGSP)I$(SY@CL5(?bQ4`uhD_g>kY`%HL1ccefCuJ-(*XWE>n8ZliO{X0oXgm6870x8pD|a3 zMJxG>tNjUlCNC*@TS1Uo1?(6UR1L)o++g0$?s=2oNr%oE>a1F{f{*geK@^WjiCd+t z5^H&UDJz6C=P>klXz>t}%z2UcTKWR?d#GU)>0H2=8Ob^Br{A$DEf3IhQPYSdYeiq zhwDD?y15w-F7FzW5zu>bw3?tUWOp}FSxD|~%=2f|C&6hK!!XsNyIaXumT1(8XdoPg zYdgrBWSi>z8|pr24N|Tp&yjg3tNEOk=KZtd42aBIVrVW zWMVqJD~^!P9+kTpBrfi3d-lq^g}1i5yR!4{(E=xinxzM84$ZgV4Vs#(0JqK`b+?A?m&#ZFxTd zY1@|F{RKM;L7ge(jp1C5Wz4PI5(>{U-4~me;)uOo|JK;}<^E1Py_X}V`u~$WNmx!_ zj@k_~3;dQy;lnWId&Ag^FNZi{tZsjPH+eE&$saQ^mef$+3j7+i{xY z(t{>^PPys?aIIYucLSsQI3n;TpfjU{dN;;1xBJ_0pRX@%*{37*w(O`I zjD64T9{4r`zIOL*3l^RMe#8ETb3e`#O7@{@^*}KDm^i5XC|T9a(j^^Sia!}MQs`F8 z2yf;r>fEhZe$rdeDUG{XDhp0}Hgv-T8@!pGsF57WC0XJNxu$I7*YGT73@Yiz!tQODD<3eC z+zX2eP?fQ_oshUtS9=19bM;#_HgS%A>&H5&-*FcB^&vdVH|bI9*u+u#ojNv=)9-AG zJfb3XDl$l(FUW?!j;EKgw<8ua7F;Ny3D5Y4>`ULZg!dG>6D6nPz(ArkWrkn*@@s{T0|6&> zf=VslSF@<9ondz##;qHF814Sgw<)YWjuku^ze&MliTm$9uW>Ywb(VI65}eN4_^T&- z0$B2T*HvSk&J=yrb4|)l5I+6rjZ6$Xcf?68^QCnBw$@eE(afWb4ZO?k0Fz>bnmiO~ zfs?v{9g!1i?$}TFF6V;o-v82Tg^Tvp{LpkV^?4P!KyTde5USmN$BC;bm{a=bx-X$r4ZwCbMKk}IW&IJ~bE3~4bGSKXmA(B( zS&Q*DJHWh3#KK_E$)xDA@%R+I>2$HLQ`{Qg2fZhExXAZmtlb+^+`1}H8Q7CO97T-I z)?&n>g>A{T(M3K0H7Tug~e%#0)hd9-jhlQQ*gAQ)!zpCB$`6 zVml>V=v~mim!`z8D4`|vR;;vy-kO#^s#wCR!Nn!~+!(Wje^*-I ze{84cTEYv>E5Z@7gdr_qtBJn#|FnLpTkAn+VyANxz1Imn)y+j=a!njkQxhyqs_{Ex zRO!T59<4q)o%c~pWe)e>qZN=z`#t7;Vj%dnfkihbc*Cz!<5YEU3z{r&n*LKeA-a( zKbf71KO^;=_Fy$=G+*Pa3V)qLvB;$(Uh*Z*gsU$^%akA1*}d9yLHvhBq&fl%u}Z5C zJH@Yuco(e`ewKFsVD2lDml}d*u=ysid6j{(LGMlQ+!Mo&M804n7)!FP+=Y)R6s^?+ zcbj{C(U`7gN2H_8>Q!4Oz>oXqkx06|Pu-EcTe?!@-Kemzryw}oQ;PL&1l}>XW=GV1 zPfiwn4}Xw+LcAb~>j`uzJL$Uz$msGV%nx>xS>ge35fX{;^d#T##+|GuM zOLt8RarZRFj+8C#)(ws-aNeN!A)E4zB=0k$b*p178xte(HzHR7&Y611ljPg6^w5g% zQJj|!;g~xcN!T*V5Mk?n^Rq}l1ZGW4fPF}eCrLu$Bq&JYxQ;*9Bo0&RlMx+%9z;Nq z{ezO9Tf>A@LX0h}&fpWRokUR`+w0=z&uoPTf zPnWY7wMlZe-)N>43XFq|O=D^fguP2wP)N{8!e5L+YmH%OdTBdPiHzQ5e>BIuKxVdd zC6_9mz4Ltx&-Z`_uE>7}dIVoIRXh~EW{ zQ(D&awC!oziC}$4w5bLb`77De-=p&3Ge0BQ$~-jFujcWCtN*n8;QEYgCAeBc6!X3$ z%lLYSs9AwlKpZ=HjVDCK!b%$u$seX`Qt=fZ46?ov?zHXh!h0ox``qCIqLkLyhx7D5 z^l_J7tY=X-rCq8_Bn5|=TC6)BYRht`AMU2wJNJY!laFP z9$#qLLj>wElEv=S@#+P>4!OM{cRTynZ1*Yd=&Hy>GmpumrldzB&5SiR1Pf2V1XV{n zdTOVnLqqrH7f8~MQ23Ci^QS~Icd8fixkpbaXVgw^^PiMjTq&iJy*4 zTvN+DB~LSrlMa%v7U>B~q@UtrcTqjJ>BagRl-ENyo~9s1XK@(F=G?}vW{7RU@lP0I zs^EBT@&go{aN%8WT|xGEo2W||xmUgZ1agm!Hu`2K^}w(angubIP+{T}Z1mjTFIJrtXOXL61d2Sbsx{CJs>Vy|Awp#AqmQKpGIE_s>2UG5V)7|2K)z zuh1y^#ONWq`oBetKK@gY7`@#1|3r))?oW&wvMb(HJdf?!PO~274)OCv4VhfHi~pmSU)N}+urI&w-q#` zv$2ARSRnYzROB*%7Jzs-iV;m8VaTZ^Lk_w4VtKmt5EgujG!qHSB+#*_Z@F9rFpWq^iQ1F`0G|rOu z*pW)V+7!pk0dDnu&O0UgFn}lp>P&3n53864DQ3Iv0eVyNC9FN1&R_CB>z;2RGdvz85ELhF=SJDARHHtre$g>u)Moz{UPH1zae7 z*@9U5vIb$HO|*al?n-y~-L?g|SW|tlSbb6ZM)iM-_KoUqr+Tz+K~rVhXA5KAJ;gAG z;{Jk$Lu4+E_U$IpUDAtK+7bPqpaR1@_HaV}2r-4t`ZFOv-0WVAHHAY%m!Tg14kHhpO4bjZ#52CO< zmt|_6k4mPK4h`F1dg~HKI$bkNNyywwnpDshfI*V<=WfY8BLpSfNk4w941~Ai;Bn*9 zn0xbGQH5$AtT7Fa5y&ZD6Hg}t(e$mHVK1(YrE#>uurro!HZSN4zM&U$X5Ew+4DeDs znhpmdna`rXzH~vPcd+^$>Al#%T{ilF)Y+Hbj-O=qd|e~$efEtHWq;jVNDMU&{-kFg z9!%ff9PEfU4Mr7j^0o{|ib5BJ79k-{d3J2c3puvuON8n z1)JJ~Zm`8pG=k*a9O_>{IciMc*?E`RjXQv2^2&v>^8}%o}pyY2y*#Zx2p{48)+!AXH%y~vty3_s%sX#V$4Oytcak=}&6(Y{ZQeh(O;;ml= z#YrLR<1bTx9DX_K8h-f`-0f+xiQg3yn>;@18gBNlGquJh#rEfZZ;0Yk`*E$~3%Nt+ z7+j2#k~h7XUv%!Ps@;9*g$EH0?EPz$I=CLKbr_!F~rr;+pQ5yIfNp%!H;fSGr$j?lFKAO*6{xW+ydRz-1Gj zhFxQe6%=0vHwa?}Hwd=|Hwe21HwX_0HwY64Hwb43HwbI@|AiaeApwJl3sU0n5HNhh z7cl&z&)y-FQqg`VAd1fSi~fUOG%SH*%U|UG6q3f{|4u3A|B7VryC;;$V1+P3WUxXQ z5lLVEUkM|A^`#Oa{1waizsCQ)>hXV9Wnad`&gL}z9|5$qxPnsX~bz?B&pH7{Mw;3Xp(*5}qQiu0)hR zDR>8mNyN!abm~=lAI1f_<=I}43gu=RCaKh;TnB;FVt4395Dm$|xGRh;vY zRgC|hw}xLqn|28Q;RPVNvuk7SjE3@qx6}DN&7gyPT}(s6>mSMbBDJ1p($&0R zMD*EuYCKK{!uU_OUX(#@V z`6_v`{!R_9w(>vhKDdf(dRsx3`%mv$zw3-A3C>F^Nawvl1f z$UJOhJOnrhbz_+u5vtWSDv^UR*xQttRM?bgEMQH)%WEp?!lt=((8G%m(i$Mh$>C5f zmEIA4z`pt+uVQZe0ZB}pR3~?Fcc}!;#_djjNEto?28U?I4+N!rrl#%L_rd@TQeCHO zGTl@K`5=EEH^Tbh!K#pTPiETVr7C`2tU{sp^l{u8Kr^d$TI#TWGXj6zB3*)&HbnfB zOb$|MMwMuV$h?rEW>z znO@pQSMv?Q2eFD)R>SOx4S>2S^dWE9S*_$VbXGxBB%{HK>iyt8M2X^C)Vsty)2*0G z_soPuk%8X$-|E|o^}g8|uAiWx3D=DuQ$ z`4EDRM4M-yMo>fL?&BDa_A=3gmk47!a&!Xc@I+|bzsEIo7I0Q#>ND5A9obcZtG_FghlIgL_j5|-h*(JsCuA+Q@SMu#>`o2EXpiK*_5CMrZBAL7FLv#cC6Gv-# zi{~c^6|KIIchV0`^hBklBm-DZX|d&8GfVbOGn|t#UUWJy;RIB+_UCaMav#$Ah1?(O zC+@D)55_oJ{otZk^|N=0QqLmug_^J5k;QA|(C9uWU3V3}3Z${Gms0c)4zV8xcf1vB zf4w@`vDz-=W#y9bfLRj+?2$-qLvEi)+1G1@ar|K9?ko-IF*>Jz?Xk?KkL`V}5Lu%;2|%KRg*5-}h_`G_ z4v$Uz7l~D!&JFyf!}>ao-i#MNwl5SkFk;;-V(vfc8MJ&!@YkxnLw*(mlV3pQ6=8)) zO34ycwd11aZjw)4zh_|9p6GZ|_?ber@tK?AGoQ|LHwBeQ#QONXAiFfUx}ii>DO3yq+bUHxU}CLDQ~|!Li?xd=_Ax` z6~(+y^{6KsNL^-oVv5m|^$@;bSqOysv57Mo@YJ!%`SF$=cQ}P5cdL_`dzSH&kCGwp zjxSU`t5dng!o>>^OX19g<=?if^NvBS=SI@s@8dgiH?J7X67q4sf`5416g)JNe#|R) z8wE>C%UX|L{~AhUw~a}Pc5Ee#{U)vCzqNDkbiPIHEU{iq)^UX8t8w#Is> zHTEX=h|>BLR|OGb9IKq-s`UGWCH>@-^0A#reC0^EQ9hB)V-w?;$k}6)moh=OjjWio z+$wsO}sxNzRWcPly4%OPiUMI^N~ z1D;e8v5ZZOq&w|av9}Dxp6v7$zvV$ql=~bh3v)Gk^J2bLJ?*OO(do8F zonK?)l@?Ey8B)A#|8237`*|ehK}e8X%w-*dpXQnE)I@%kjZF+&O{c1Ib5)I!wLO8q zFNnf+k`ut7LqE(FoI8KUV<+{m{LLo|OMa#SWbRP|9{4SL%S=}%xlanJC-sef^=xqN z#3YJ3Ft94*&#D~S72ekuSAKNnpl^RbigD8CsagZOWqwDzk^BSxOqoT#lM$6qSv#BZ6DWTc>8q=#rjWp9 zYI`>9WOmk1Ow5zSAwtx!12Olsjj@)u z2-FSSc`XMYr2^tA%A6+H`6O$^nZfS^;WBk+S@g0pKQLu%-a{L0ynI}(ScfiDiOfBL zQlGcHX%}&(sc}p8tE)BN37FwtV{N}Jn?6FWE>4PE0Q7EqHd-w41U$d+(3iXt2{czR z_uqHW^Ksn}dw89Qv&x**LS6TpKy~`<=DqS7+i2s?s%#m*5_f;4sbiNb2*U*{jk6f_ zgtAXRY&!N?W-JspP9wjGBj;56uQx#6JJ<7u=DOvCp_Y}i*_;45zK6))P6(OJDy<-J zjBt3U>+dMkWdrDGV6$xtmzP@D>9>&L8+aD@{Pl#l{76+Jb^UCEt(uv#RbOwbcE)X@ z@JC(WG(*kTI;-pzEYZL3V(@W0M`jLE!`RyDxkC2|NjR(SHZw&RX8@mxt8wt00ou5X z9XcqvFUJfo(Rq~!onuy1ZLkwY)o$4GSuA914&z?lUvGyPP`M#~#hyBSn z&9{6MOP>`>C)@TeH4L*1CF>bWVrK$qviTj7K`oii^h=aBXRL1hBY=@>Y|Xy%l9i+*02(Yt_YcX_ zZVEbQK0Jeu><1-28$rm{>@SKR9L5I-LZ+9+<55>X7^JS6{#gHd(iLaIfT5A2y!*7@ z-cD1_jG(OCgQncJ?3QA=2TJvUDi+RqCxoPrV#%rAXE&wKm?iu=S~TFoRosk1F3E07G|DL zvgX9OQ|d#Q-vGG!PuPJ>r(n`{|YQULnsq*!*wL-t&N&|8v|9;Q?7(5=hQ+mOf?HHaS&+J32nbaqw73wZ+~y&k)*Y2_IxaJa}I8 zs$D__gfCk{1>V=Kw}g`Y9%KpMH1+(%#6RUtacuC8jb`-S6**Ps*Rdc70FX zMm2G&c@p-CZROj#BG0mNL2K*UU!H|z)0p8F?Oi+8bhA)kh=104b*%9wS|{mGh=_5= zE5;>E+){xhl&gMA_Q~%be6OEe33G@0`mj&J8%rje&~sxgA0`LIa0eV4YXSaaE$=2i zRoGzsXdh<#|C*&Fbbju8@(SU4EVh)@NV?i@?EGl_CU-|D6Ri$qf&<`sTKPX!>`z30 zrsKu2QWvxMKRX?7Psf+@Xhnn^OD30&HHgB^#gA_~!vG2o48&yTWvms{yyNBVP6ns= z&$7vH%BJNiD$m6KBl{)p=vp;hgV~ubkkQL#Hwfc{O9u+hba*+jmEeow^entWzOK__ zX(n8pY|qL86?`aS zgQFR9tmh31oz#E|B6%p5<+YJa&3+WEwfSV!9gVM?zpqZL+*hLwzCM`!_#_Oo>i!&& z8JBTIiQtNIa;&IBh`?8u!9Rr2+mHC8MANnK9(PV>29VW&N4L*8ln0CSfVOk6)6^#kSy9X-?O^|Bx3qJ$=79bjhz(Ya)N675s`@Zs!;F5=Zsm-nAzt4htg{ zw7l7ESXD@VI)@&MgBkSuTuv$=^d-n8I1`e{Jle4hys0SDP5Y$2R2nb^Pw%5v`E49( z@u`@mERV!pMBVey()q;lq)Ke+*^_^gUYae(g5eym*r`XeXg-4iy)9=@EWO=TTrczq z@Fx`<=;0Do?WaFR)x14>^G1ynjhB!r|MuJwN!tPyq;#|*Elf4vY{^cv-#F#p@HU2# zxJC*KvH)H%>;_>Jq8Ps|ZR56V6P~YFfxEPY+G@sa%Acd1I2YxbHsDzCT9Uf|p?v>6 zUsx;odaz~3oEJd~cg?0kz~!4}B#^>C&mWx}$uakgVy6!SKmrt@U%cNx|JdX)yg#%! z7rZ9{Tw!T~nhNXlq2db>+artB=&tS^=bE0v`gfe^d-6w%n)b{e0=jqK&DZI!d;T%W zqhjv9!Ujc`HTJ&iNL!S57FPq0`5HadVR$+k(BxM#lM0B?XVRww^RG*OUOKXe`!s3k zAganBn#y26XJsQOKxf#_I|&Z7JQ8ZHFuxX-VbFnHrwL3Vz+0}OC44AH!#+Lo08q-# zmiLoVJxIC$wP@xoK_%~1DXYasNaA}>TA@Jpg%eF~->zApI?$SmD)WqiXe(+6_O`b1 zw2I$)?>C@da6VBdtfBKbSV(OZ_C<(rOZ$0^sffS#;C|6;$> z#ixSgi@jY;E!(qmZ7t(WEmP;8l5FbS%?9xgklG-J`7lI)5W7_f@2NB^7P5eK6M)A< za2-U!D{OaCX9D(wcS<%D?b z>RE2a?~Ts0T&y6CZ^hg?w5mtf=0@=)eIR&v zSRqs(-0I0nJn9v7V&woEiQflje4d?738j@4q}2c`Ap5Ehn$qS)-LuJOju|f&o0-$# zYL9Np-%^4|=x;eh`t!->2wgwJZtVGElB0-En7pEhLdHyasp$pAc7G zT+fDxi#ct_hT2HFW<<1Oodwy$0a+h5g|9F5QcW4@J>h6~@g;$|_J8y;M&KV;Cx@(t zlMf)MbJxqDuxdCkJ=HkJ1zTR2lnI@VUDS7agW%EtC=OEizFyYL8@<&>fVq!2oO$Yj zx*^8Q2sg7$`TyEM&FfX&Tb0ZJ{6sl3P~<0e74f0v2RvH~?_ha?7E|D4B=VcG*LItQ zI8>y~zL-BCaeBq-ogp*=GI~}EcbYAKq{{Pj{)nVgAea}XNG*Gv#n;QiQJYpMUr$oH zF#G!7^@RA1&MIpeGk&+>SMA{3x`CMQk~y%%pAze@k59y({}ui;k{(uM5(Q}!N|0tp zll{iyW`M_*4G=py8CK#9P?Lu%#x=KYRHWmH+KAAZ5*Ay0q0^^CEUa47o{U5j-&)2go|r(q0S8l$oy+LHaxZ+!^t zi!eUtZbTgdyT3K7{N_YIyR7UJly4!}V|~(9_6glX3tzK8JIQ`>G*r^7ZXjwCz3a}N zWZore9<0s}7}ssAgZdA|pM=&ciFbh6OtXKGci$oVq8&s%XufzLV0E3;0R~vnN5>=) zS0`WL6ihH89o6d}8PrI4MPIBV~`e zI-#PLVWnE4?wipJ8LVIjh)EH}$n)c;q%hmcuE}PD{xsgVW0%N2r;;8FdMgyN&rlMpWp9 zL1MY2O$wAPrP)Tsh4rDR^c%7HK4awjoOWfz{Ue|?D}u)ma)n5`Ei0R>mU^di61)Ni zrV(@Y(24dUi9G^2<(=+WI3eIH9jg*WQIvR#k|=7B`MT060iz1QHR7(Zn-DV5`FrzV zJB|9F>2z)uOkY+Jzctz7#wQRvBfzdhQEt^!KGT~dbRE- zj2TdRsxap&yMwmEyKQ#C3E4=p-n&%{Y(~LoEQaS=ECzU&mM&lbZ zldJu7F!DlwPlL-7 z3J}MpUeGwp-_^C8B#OIwc+9;*n|gKb!-}o^O2t-w_Mlt&ar3lnEB}XiusyqQslS!6 zrgG!W419I&JG`v4CjE@vj;ooX(vH@4-61*%pk?>xs1Nvk{sr&z4xLMEI0dZ_v1eJq;QNuU1TZyn4CdpBd=6c2DDjX!{tG zx*_*>;GE+5Q{=rmI{=HlV~2XsyXvbMO}Y3CNz}4d^j`ZP7kDV>;}Qd5Bj;sHU<*So4=Ugu+(6 zaZ+e(D-A*d8O75h z3_jAU5J`M$UTI^ZLHRhL(MEeiA`<5OzN{p+^-IJkJ!WJ<<>D zBe@_AzNZG?4^2G7Ny$A$QRH4Jbrk^g8A3RoV9d95U+>hA1Ada6Dkj;L+%+Y zHH46${FlmcrI4oL8Cv^3&iEnsmU=~uc5^1~uKqMBNbis^+uXR18C=TD&hYrUg^CBK zAnSy$jk+&dM5!$_N9`F4#Ev@xkN~kUoSm8^s|s*pCi`4=D*A3)?H74VY(R`S-^ASW zk7Bov=26&v-Gqy)HXjoc&OO%zl3?BQq-v0Q0`V`;OMxWB=a5w$+0kVLk}x4m`~W7| zs+*;BC)Q-hNdV@=sXl+_S;MOA!8 zuT53vgK)r1y;%eTTHw&Ok9a>4nxyu&O|;XhIL`RS@##^y`(SxExhF@5T9Wm|LquZq z3})V%+qPkf-0bcneDMYk?6i99gjw31oabVsoL0DhFN$+N2RF{^k#wY1zEc>0wnI+a zwHWE?eX;b6T_iS2&)yhIw{;^FLU-HR#h7dW=kQ$IzVq^n0s2B|2heL!vFAI>Fu%?!Y8PBE}UruM_Tx0d1BqXtSS^y6EgUlT^xp9sPT7a^cXP>D!OPpr> zq6qU~EMLot;U`!Y8qG=lVlcH#B3#|%wx38W<)l{dL^}$IyJ{=rBWUr+?5=s*dL%39 z4X+SPxEnW^(>0{@yv^<<0SP2$4BQw|WTS^4!@Vwq{#;D5s6V6ZT486>QgtS0zkcP+crjlI7|+5)F@53fHF5zcz-R2=I4 z)WHkh-y_YZ(`oqj{%e2*1ND`!gVSj|Cy*w71VgEmD<)V8rY9R^fm?%!QKH5weox?2 zIBe!a06H}J85OWP{&^Q#%@dLRHDA6E;N)`6)6rJ*L~t9U-^T!f2IZ0u=O5nNy_)QR)x036MaqF}K^4{peqP zL&S@YRkf4bB$erA0&NJFKytVY^?K$Hb~<0973LGkyLr~FXHTg!%=)VbTarKWP%pFm z{%l;v2MBhM`7Q z>L*&&Do3xOk(NLBZ=6;~Oa5nxSR6pQ@Hjc)1atZx1?6Z)gAEejn0y9c_}~zQ2bOD=Cq^t@!FO zUKL4(f((K$2{=6J9O(@jx|E6R$C(deQDXa6G<&K*NIrY3%a1KO!!*(>IC`D@3_=95A zW?*=^1JlAnx8VWO@dpXOgmhw;4lOgB#k2PV;0u2#3Lh=>6nZ85ghKtY<e3@%ZkXx~DPgv1Zz8ilWeXY(gtAKfaAAI+c)9e#6^7y1MRtaAeq-O{ zHbY7~7x4nn2#k9g_PF!sRH<|TA^EgnpZ~OVV)1-eobYo|F9!BY_y~1&P+Ge?207Md zzKUNG;|3IYUC$M4$LxAbE-E(sP};Q{o|s{I zkclC|=$ihP#!lxk1`+;L@kTMfrE&D7ht~;v?5au+Nu)gebo2U<2%%S15iSMw% zZ20QEOV7gmr#f*Ns~@ONM$`)sPN3tF`)PY%@?2wHwI%!0ud^I5gOfPR*8%KBYjy)I zo=N+*7$)tY;^lcP0oj$F;kT$=$n`kAAP5`_laS^1!Yz~QoyGqS2_Ox@ikSPO6|`#k z4yTp{VOMBwv|BVQ<-4UgKL^<@zk#bh_-=WGH)WILEMCcj{=3CamDBl6-gTV+#tZz! z+`JA6Sb`gw#_WZhwznv;;a1)j#&qm@nGs;luh^hX5u4c%OAY9KDJ&>wpTCyW@W)3Y zBOvfaiad}%0~&2U!yr2o&*yrO{Fd+`J^j-fPO48&`tPMRoP9kjsWa(#5CP+{<4P-u z;pEw7c#~!$(Pgl+(K*#d(gWQ+C~#Khj-gLCb$o*yeZ&WS?st-Yl*b2c-}$nQ4|+*4 zL7z+>{)Y58EuV&a2deCJ?{G#Ru^ZcKPk1PTO;zqXMRpn=Z3xg$zw*&`bU z7{k1-Wk6}i`48^~WEK)U^;NR#Sx2`dMf{C zQEqnj+-p6+IZuG&15BDQ{v^JPE6ZOr{VBz~@^(u4cz?45-S>c??%aSP1WhIW>u(JN zG4yr$!G$rwXJ0Nj5C0EfXC|;SvjM;aY^e79%4*+u##H;?hnbnc%uHbB&F77nZ%Sdz z52(t6ne!@OW@MKaQ}&P|&=6DB0!@Cj0L4N}zSfT^D@d8jDGpX=rTE53P~mV|iOT+x zg{GzqV-2z)~QV%ONJf6ub%;L!w!flrn99c0aDO>+% zpW~IKh48ytB|oQIPo+)9+|P~G?1z?%s|-HEA4E%wbmNKhyB6)@MxXj0=>yj!L$K7u z)TD>8vIltrh#+GcUGuZR%U0!j&qn2V)*tGJ6;rsT5)5v*Tzd$!cQ>PJ2gDM8%sCdiHii+F3ii;p82Jvseg2D6+BoVy?HwWOB~8}aP$oafyi^@S%?ni$M?@CzND4$W*b!@N8X{i-uX$gpIt@lW>x@5u zfEcL=XCI$kKkD4K3i(?9U`M1_3A_n6dZ9TZh;7eJe-CKWXW2iU^A;P`j4Sufp@5Bf zx{If|SGbjHbu+M~P^hWpJP1wrmH0v@<#MA#K_KMjE%Phk?+hIgYNGB9z~{A%Qw?mM zLP?H9pFZ{BoXk7U&#%fAehtG?6;)0A+jC*L{IHzmE|XL~hKX$0y*dy|e@CAY%+gu% zF+Fp`ox#WId1B1GcpP>nzY*yma2we9-yh^f0>13-#;MPnJ>i5fKe(uN?%>GD7uDvE z;baiaeAB#)ra4tmDErkj-YS^N+;F?c%Hydd?P^;n9qx=x#8geeeDCdMr?Zri$~uqG zX(Mx&d6{0SpX?FT=v6VDD%wf%4wxN#>yTd`Hh^SLcOZjOIRf>*Nq?1UB(x!=P

W z=~Jql&>l&S5$==qQ0&VS0QPv0EEH??SDYvC9aIH&p+ zi&)ifMl_vJ7$)-c>v)y<-5O@Pm0Lo~ewQB6dZ}MMQP)lv{oBuMc>UYouYdb*#a7xD z#N;!(>-4vI9gDjmo(`Rl$fItp&XfqZk;-RQ zPzx?KnZ^q+Qag^01hOCPG&VIPkg#Wt$V4Z>4ErrvTjf%hTHc-WeTjpodY$$6p}LBh zS!$a(AQGuR_;WIxJR5gkK!?<$Bpc2*U#0b6$J&o=bkEGCwc*U?3c;TI0204MdtMn} z?3)Q2HiB&w#GU$#;2vzN$sg6tgD4NqeEYT`iaD_HRvvE3OxC13ysM^cPpRn8{w3M8 zifIEDF@mTKliREmBuEMZ$m!$-lQWGY z39}h$>AUrIkN92<|GUG`NI2qd?Pipwmv0d-jQFr3q4#A6IWHI_5mG{LqV>f{=p9Z^ zUJy@DZir`)LS(MSa^lJCn#*h&%oLsURwSJMQhgX*?V(Zk4&sMD8A0y-Zsgy*$y8L` z8w|)_nyHg%BA6IYN46DQQ%_{yi{<#6S%(v=kDv~jIC^3N5#{KK4AOfX9k_|d)#hj4ALo4GFof@nDqv{0u30*-qEg3~Ph_t&4dmFv%ge(T>v?PmRfPS!u1 zzM3RQR|k9`I9f|D!QFJR07U=0tijCWj%ZKc!0a0f23M8nc1i(hsx?NYW2<*`H zPg?dj?!KlenAdAgNrqc3rDc0-{$ToeW|33mP(8uR!1kjRG^;~(DJh$M6B;8~0l47af3nVYSHsy-4Neij{+&B4HcQBO;qX@64jVrMJHxld7&4)eDitD)HSLiJC=vmDSoAmF@W-Xzi8Qh=1VtTX) z&(BUz-RY!%sa8dc&a^YdanG9~=^ZPkD9wX@Q#75Lg@V4utC(~IW}XWEJhcXb6I&rf z_tSVZ)3zX(Zf%>CIeVn@@DLn~U@Yg|)Nx@|JTs#qaj84}sLd8&nLHf?H?EU}z-j54 zO69kmNG?hOZAWH4g~t1eh`UV7PgqDXs^v5&ls+?_KCLm1VFrl{w`D&Qwe)9@-$S1* zNYAcEG%`Huwl&}fU`dc+?!Exn32lNq;k(GNYKTze)Qyo-cWC49dr`s$WWQ{N&; z8^bwl^u|*BHZRDUF+@tOVC4{2Ah{4m%`Wf|j?;C#*_^DnKc9Ax44$YTRvCtfWVOT$ z;O>>4r+K*L4QH_;ANa(c$ZUoXUkf0W0sj|?zhQi3uhB&j`14rw{zzRa9XUg;Id_$K zVsqM4qFc^{Gh_oaCgOhHo)B}x-yzb;p~`vtB@UU2nfGM&%XOY9&{eu~_j(xhV%gG!Uz%)U@+O|ey*%TM0xx5aG%|FoN(3VA2*|q=>Mc8Iat@O_ zLiW(WTNoDObqIK=OChQ%OC{s=EvBn0f z^t@F45HZf@GLFA8E3qi|cak&7b?{Cy%1dTw*;zRY$}ycw1HN zdfr9d%dvQ3=v~;r%j8M+%3Mit4wB)3I&FDryir65q$57{dF*^ZMl28Z_{Mff#$^2x z%{ZMW8qTTA5oC-W6fK^H*gKtkVW9rZ7Ob=fcwJ98K8z3g220QKg!I_mAgL+tRj)0R zy;2h)7UlO99=97si|05I>bhGJ5rszi*jys)ffPmiI}R?S)<`_PjTS%z2pt$JmqQh+%?7Oq0yqL49sctXtw&B-=s z5(dXI$(5K(#)x!2qnsbP)D68xNEW4exP}$~gbkO|d6B@vBZFR)-7|TFWd#;f#y&}# z_Y=6+=^V=Aa{TLb?qi;Vh14GnB|^3=`qCP8vDbBFqm+7&7rdA8&1+2Rp=_2F#t#n`qd8y3=`uy_8?hh4xZ@Ij7l6f&B$s%Kvu!Q@Qb6YKfiH3>wl3 z1Gz<*lz7A17qbe9L2g8LP@4)9FT)N>DdbDgdYrxUpmj8NcHtgoq7SlgD|p;*;WAn& z0uad#>c23Bk;yG<@r=J#BEM#>AaLC*hD^G6FAMzsYXy5%T&p(To3$dahFPoP0$tCW z3hpY-1It|%7ib5Mv_RwdH9G^#674zJlgJR+n3TlQzpkaTq4ckX!MJPHD2+5r%g64B z6z^nD!fn|jEJ>UZCe$Ra;&NpB)(m~0USeoY(TIcxA{taL8WibW($0^?$v4nf6(gO*IW6~GreMom;^He(DVDc zWrsyn37d--!5;Y3);g_S+G{uV>@qV`S8Ceb-{$K{JJ_DL=4=*P3!5?Hj~3QNJO0Fx zlpX~;3TS_7vBYv#CCQ#clhc-2n&-++3Top{TaNQqp(o8f)CbcEXYo>aFj+*4j71CG zvg~0qh?vQ=r-iq1cW9AVrgmZLqYgmQcf{Qr17UX`X5X2!* zDGTS$$nj6*;pBHloClu5@;fuync{{Rq3P4LFK`jt${)ad0qz*G)k=vW)ooLRu?2#U zV2DHATL}}LefCATxcy9Hm&?=A#2V2M;0PQFqI_7?e0qk{xg5+Xv%nm~+p>=8Lu~!B z97k$giC#2Zr5VbR)V!=BrZ%j=Ar?QTo<;B)HVO+(Q@G`Tv*b^L=wC~Dpfgg-0aORf zOOko%PBcf|??@fM`6KFto+xAG2x^1UAfuPqaT%4tgu`IR%<*I)fnS~uXD&kghOt>F zJ#BhyB0=*KsO5Zp0U3|F%c_$O!k6WH`hwgT=?jY0z?C7=4lX)ilm^2dm(n1&h+ZR| zHwU4Tbl#Kv8|4B0q33^Hb8sOYrzOTah$;9hnuE2{96T;Q9S+Uc9DIPlrR!0op#A#x z&4czW>Y6#Tii7EYQE?FP<`&4yu3#eQ+i$fQ$Xe@_=?n92s2CBHfO)gjk>JG$>hUp`@#q^7^|%xM=! z(=`{k8?+<=t2|I%H?#)?0O8o?##^)BeZpuAPL>3xDe5AAmd@Zv@fNl*FTRP%o8jvV zIJ5~Y=^x&)slyP>wkiesX8I~+6J7NB!}%H)l8g4Y5^Ov&ae&6>+vIGY^Rm!WC)!(j z!geRoX{)rxc&a$59fI>hDgosJF)uJbuxKVD9M44;4F>-tdn4N(%iho-`g3+Uzb5cC z+}cf)s=(jVcwoDRkDTP=soAt4^esVakZf)2MC7A%qD(+)wvi_x9nI`DA|fRYh!v6c zk_8crA#9QRK&&zdC3TI4Qb@@Rn}OYJe#!>6j0a@{LmpbBN)J(m8Q3^Guv1OES#LbJ zAytkCJ#xSCbWyd&^HttpDe#~_CQlwpC#*nJTTyeA>ICDs!`H8tMD($eKy-7yt}y1S z4@t`JrA@Xn(OVjD-jT)2JCcbi^DGa#ljyE1^F&`dJ+Z0dc$4r?Uj zft@10CVtu`v#Un5|Hu&86`TlE zB}ST{QKgM!M4mL}i9FYG#x;BBFG@ULQpp*Tcn)Da_tRke!U&RHMB7%@nc)I~f!T6P zVZRvSIx_>{J-+C!oB{MH#oaZH(q;zEw!7`dyNc_d2UK1^4ZXxHZ4w2n)U40@Gy_h<~2bXU0qB z0n}W*zEE^3LQ!VZ>D*3(4C+z+xV@7>_hm(-mqrH{!nv^}d+P!;c6etR3%~b%>5EC% z3VMI|fZ55EjWzlPeka9+%KipvX&B0a%8qDKahO?@cE;a%YqsWW#nFD+Y`xkrMkV#k zgy6cxbe14d><9FBs0L(QY4mr72)M(i(LF^Qjk%m_!%&3P{ZP-I|M=fTJ;UBEp`O>l z38hrEm6#_&3T}K1`QOG_rk#@f2=nkG%)^Tc%yY%pe9S{UZSDBrBSJZq_~)40y+T$e zWAM*?irp=gH55AzcdxrYkIBxq?0}nvc_ut$)=stwNVxy-?=KfBu@2s<*=xUGEgc8@ zcxR}Gck+&pbMk`>$DwX%QT|mO^Nw5bndBucDCvt8Ua#jJ;8lp7x;eUUmxq7WO8+n= zQwKT?jo1%|HDbScL(;VY`;))*P?AgrZ-(+GBNpUC#O_z(L1e1%k)P)+R6j&k2E!ER z_F(6u!ug$?ER2R#==isX9?%UvKz7e$;(G}`B|r^OT>?qDWTsJ{ zHLf>;&t3$dO}xILDEHhx3`V=`aY^i1yyB?tEHQa*+;s}9fEe_Lh(X2un6ORhwmxK_ zyKn>DfrxTr#C_g5dG>1Od)R1Zu#Tf<_N)Y$OQT@2I{@e$;pQ!1Ch;kJN4&1;hem%H#>#E7OC#r zjY6@|OSE9h?xgJN6hc9KM|kH=&K=3uv&Y$T=f(%_MHooLl!2QviF2yc)4mQS+%hFy z^Dg*cOYM|&=v@GXS{7Vb9c+2eS^Q<_dVZj*a`AgZZumB7_ZiZ_?vOL0<_R}^huExv zlnNG}jLv-0YFW+Hq~o`7RAWwRjxf^iNV*0Cs7bX1gm+F3|CpTRfbtQ9vwhuJavzf* zee?EkCRrN)d&Tj;&X{&G{?{wUzcV}KQ9J&y`=^LM{$9#H?2o@!<9|4NoGo`&#EgG( z=I>8eEB}|dcY%+pJQM#DlVBvk2?&Y;5=gMI@e+x&;AoqJGdg1@N~>0?XtTw#?ACVE zFat=nPA&t)V^&&gYcKmN-FAOvce}sRZL6rgOoBkT2!T`y;DuXt#_0vI5=7hif1l?) za|=Py_5b_)_nLlcNxX7DSY& z_SfAMAW~M{BY_ehX``rmjRZ>N?^q5012atV+qUGy2M2)d^?z%hO)Sx9aj)WnQIO-yrEtfi@0%jIwQ zT<0MHrL$cAl0W^-w%7qK*l*Ji-V-F z2L_m(USr|!l(dA%QjM-AHy!qkI7el%g{hXGAf%83a}5Wny84$EDMk?Hu)IWmgzc84+Pp<2)hrr>VGmb__ok*fX{`({%f>nBwt!;ySL)esfG zQ*!V}XXfM^!c4kUR)nLWiuh4Vd3hK$Upbdn=~@YjLh(4vy+pvV39_NyRkctQfb~3A z8o&HDX3P^?eCG66;wCaP`rCdjDrQz0+rE4gtKN7${;H~+qa-#cRl9mHS?ps;XP!uR~o~B)6d))2UmO_iYwIjpJ-P3CZiY{tWlRVEV~_rt1d#VPkKvT9l02e#u1qlYMkOSGp1tsV_nwVHrjV2XPh*g`r`rrh1>V zKiK)j{#AIJF1jb+gn^kVbp&G!9-IXp;HMxcQOfD;-UQeX{+#VRALzUfR1-=ktB*hm z#H!8luM;&aGR>U!n0z2Sf5op^`D&fWL$#F6?P8GMk zAes(N$QBF&DMr{~5nn*=x)e`7EaRoL#u=d|JWoPj$iaxvoiY`lk*T;@0!(it`+Del zoOSxiVls#xFw&K4=(*qdBqNn{vNBRj(k)1LNVz~yQt9yH9cH#A5yQvjt7M|U?*`fW za@CZw?I734dv2=|R;vrjYx&rTyVafbd2K{8woE!4CHXCxT8@A#TB(j>+g5h6lx)_@ zhtF8}&&c1_t-C-}N~sx)eNgkFX;S&mqW%$3s{Z5#=k7Q9O}wy}ow3zrb5<;HIzhA4flU*G^oBt--}g%w@p_jHBET92*LJ5EHd$phh60v=TvThVXP zl6~bP@_-e6fFF!&^c^wzdkcH-UrlGeEZ?JMC%J}B@_M>3kA)m>A8XU}TOqHmy!h9; zmCAmE1RDi(KNXtf`Vs(Y^mAL|$Bzl7fg3n`$xgQeKvRL?n~AsCE#Oq{i}5GiBi^zv zEwe~=!O3%y?BX%mRXTkDqEEP&*nG{5x^mzg9YnbgY`&{%4m+o8ZX=vt#`Kv@{F%EE z&#c>Yh`xf?rE+G-KYw0TNc~sDoxSZa&`2lk2|C4iEG(T_5ITq(m&-)&_WyeU>WT1< z1`+`^An1y}OM|27)Iy&>$vQ3tx^hy}gsut9kNk*lpzbZ{^cN+EI}a{z{D;DVwgZ-1 z8ksw1nqcYSPP@6c-}3Z?&kA@R^#jJxJn_XVZE(7<1tu>|b&K0QW~~u@tbw+B=x>gk1$oy`u*p3Pxj{B8lQ3_zR8y&Xd5fc@P(TcJCrjqCxS_8J~Fo*XVWf3cJV0u^3<9aqk=b*KhK^ z(I}S?;NPg%1u%&^v9f{QFbkR>rA(otx*DSt3lxiFy%1A~j9gD`#N$tLvo)f=v|4{5 z**^@ag&g@jf3@1{G0Ql+gBS=166?5Sr4pYhCDJjNj^uEqKibLJk$cB_p$4x4I2?AK zg&;|x`;)Qy(tNC*oL>6mC*@TVQ!I@?{2N*Q6lddtLp|LdwD4@lR`q)RZ-GdLP=+?* zt+Y;UDD8h_O>1$ab^(R~8Xp$Qp_J_lIYjWgvi{kk78;+Pp$K6`z*(t8@6>cqiJ}#~ zfyV4Bl~7tyTY90P`wPLR*ZF^t&Hz!+fws3X_D$xZ z*ZH;3ed-8LHt?WEbOs(bd1ozUKX@Eiof-<0{2t9*7@9Q1R&dC@8D4zl!?Fv6za;rT zB&+@B1q9G#YC#8tDcBmn@6XCIPEONuxOa*}IV+?)coHF=dA3{Ey%rG{NQ!Z%DgH#U zj?PIt?(dEddrj0b$8{$no=Vxopy!a_IJ2o)E23jq+7w&taT+2}?$3J;QIz)~v)`BES6;vp{&&-JSfrXa%BMBVn<~kfb zR-=-U?ESN@PdoB4P~~F4eS>rFCH;~q)a$$wK;4YXL%SsOb!S7nxiDw3JWp595DF_+ zUoF0vCvy!II2gR+V)1)4t)~@zh{mq`mf;!NI9Hxwo#7d%Wv~9xppigOq=TJtFL}(w z*7K6|!Y!q4wQtfsDKZ=Ek-VSevGr`Tmj9A_UgrQX_O0VjLk~$bukV<5Nx!{uSmDvx z0PK=_IRr0h6zBuT-zu~{sSxS_2~atzo+Z9m9UzzDLmT}lc7df8eT+LYL(VNLmG~*8 zOmzoR-8w@MN4!B-+eD$ZCbbA6VC%Rqg3qW^zf@@!%$*Tl!d@h$BgxO0jHNfoev}#B zUGmFCBb=ASkEt&{{7>?2?J(1KJeBC9GqAhi5@D)G!}FT6Ghuvfyq~cRAlOh0(t7M= zCD|gk2eB{f0nY)*O?|M&t-p#E>*{_q7ooHBYO<8rzbM2%V)|ilv!7mI9F6~s@{Ho) zG{;DN2*L>W4H04GZw+)7e;l`jlKQOBY`1p_%lv?F?V+=CTwh~}5}O>Ol_y{F1e{ih zzxU5l`8-rJeb>sHs{%>fCiJ@X7{8E9kNIcmZf-xtoMX}Ry)HG=x#z3fC(PcwtLt&1 zKg;KI(ZQ9;VwBh`<@(K6H*)<i5H-Tlx`uPYI`|}w=S)y|z%a$NQNR zh>BtERXr^1zUY%hKHx%HVy!k3t7wu%HKK+WJsQ=C8fNr&CU0tAJ)8yx6Rv7y<#~6Y zxu;*D3z_Zk6soyT5);sPUE*MAS}!2wk6*@fO6eO#l{v*%qg7_n=dAa3+_Bnv3}4u{ z8k|F1BngTncE#`fw{WpOr%$|fe#H0uopFg`nxn0#ths~p1k z2td zBz9;@Mzw7qCiaBY+6y-QtWXqpoxhIIz87wAuFpxzQFwwi;GUPtx&(p)Vn5m2)-^b< z2f4d6!yjOq_jxXZ;KHZL)XurVnKuI|c%`hX29G1-qF@0`rww_IHka{C<-5KG;%wW)bXp@T0!Y&;8ZgIp+*Qp>y$j~0&Hfr zhbQb=ZE~=pXL3y!{j>Gf1E@~8^cVi>dVjXjdO&Q>c=_|!MF2WHEZbpfZqZ|UOChCH ztfoJ4m?vE{yP64M%P0>{t8Z}D>wdamwsmQ+q#i%tlKy4Q;U>B5oz^Iqy(Nvy8cFEs zvI456JaAv|b_8c)Ee^!etkQKa_>)+WRtSFc_-IOHQkAstB@t zuX#P+cw}W>$Kvnau{qg}HRX5g+z+f{0Id+9J($ zC(79J-}AQB`ZHX0gi&b6EGX|eZncKM_)`tZpgk2M9<`mZ zEuF<=l`FPZwD6hwD??TOMayi@^Uddm7r{TnS9weNot3f(ZO_<_#dl8MT)&csyv`xQ zbO_ZI!FaBa+h9j{U9y2;T2ZkLXBJm5syet?56A+u+R$aEY=S*iB`d2ejmZfQci<(w zS{>(6W@4^v3>s~>iE(WtpPNh()Lq34jlcUSJS6+?^(@J|tLB79*~g;Vu+{!)=&o|0 zqSZGHFZr;qB%J zh4sqxiYxFJIOcj^$0?Btej47tmv?OE#RaR{-fFbk?qJ`**9LvrCeZ*slbW+oWP=~@ z5Y{JUY~inb4q5bK!J6J+=hf5hAvATex1it?&R85cG3_wGL9E6g3(sZgK$b9NKTJ{h z@B{**9HpT}TN%|uk$)_NcI$vf*r_f-OP^<3^LKPgnD&kQGQeg$>xIuBW`3qNwXH9f zk+s(-3d07VH2yc4Rqx8Xs^;0po-Pg#=P&yFpR%EeDkMjzKSyn*O~|KT=ccRxuc|6d zt#AMQ*MM8Vc@cRZao37U#DQSr44NnX&UNF7T*KpGtW=LG4}G3mA+mM>mMHuTvy^A; z3XPieqzsZSN_@NyNK{OftXFULk1kQ$xpk@6>9$+; zi-E^(InIYDiO77GhDmXAohv^}x2(tf1V2TaBjz_1Y z)K~xq!SB2HjkQ-+6P7Resg|T3jQC$iZ3p$w4)aK}Z(u#hC z%Ummv_eEheLcxS; zj@>tYXs>Qo=V6dkzIIamvWoBpI>1SdQgqmGA7o+`8sItJye>K1gDZp8DtwcORtp{f z()hetQttGQM}5vW1zOiQBOdn8zi+i&v&}Ag#x5H1l&8niO4=|cEI~0^=@hYF8DbNe z1+0S-HLT!Av!UQGw;sbIZI!esTgggNK8R0fS0J@HOi;HzB;UneJ5vH*s$G9Vujgwz zYvmn^AhuKdRG|`1icIia_@!%{;)m_R;-~8NUDGk~;UpCT1S(50nIlWXZAkJDQI1Of z54q0NSnkE@8oD7YgI#@6}_Kds@it?kWSIo-?xqc-+t(a znSYtG2Io>W5E8+oo;6t=K!~~wsz_mP(z2{3&&cQ3s_ZDU3T=aZk@g~ku;)8+^|1sfv@4mopRj@JHWD!D6<32Z(!TUK+j! zo!cY~859EelDndH@HySQJ%0xbGJe@{>%+651;_DI60`X2*BK+@*Wu|zH_7#3^sWPR z#Pi2HsUF9uN%a(v^iFETRKQ;YV@kRh)bo0PyVZIV7%Gv%S)F0y~(xrxE#4K@_%tMeRJDYt!zh|jX>z_VWvVjLG++9 z!=C2KyODc~#jQ81z}6vL&7x>bS{o3HvvBY z=1=)zsV-Tm{b1-^Ge7afC##AEMm;aT(n=*??xqR zg2`K;73JlLBjA*HBz#3&K+FTNP_-ydOXZ13d2*N>n_#khrC0^Pj;d+^SmAZHCehcq z&ox$<=cG=%4^t-(nT>+ydVm?K`p$+`@q2!3Fs_0yPqKK0M>EF!-(>_X*y6* zku0{Jd=;N@h9TpjS(;j-&4Q~TdV|+Pe6ri}MqE8`&{!k>kxLmERm?i>SS8<@kvInK z(bh!M1T+sDa zL}-n{4@`|$c-cFkR8};Oa#E^9fR(qbLoUE}5HEYy7!EdZ4;dEfo6(b;)n;cl7kA zb#d1M>r1iMt(P%l&FjG-;%4!%xNP&{5qJzI#`!z+IffNqLrfUUwaje=Cndf{N%ZsX|d!xPx)CxLn67E7YcrA}31&{49z~h6G7FaF{ z9R}TN|JC5?ZsH~+I&EwG#Vf_qKeok<5lM-mzZ?Asw#mFOk*)EWmt_q7xPxZx{EY3h zv{;x{nRfZ3XSCAOR+B6-OAiWlZcpb}aJj2p%g8F#6@Q)R4uuzyosv#H34X!*2 z8Jg`}^#hp1*&W3{a7H#q@ZEHNE}R58)`qE%2FQIbUH!luGp7GKi`>6NX7Ea9)H}nt zW_X<)@6R>k9s#nrX50|JvuOxSQd5oisU7Pw7^0q*Aaq^CM z#Vnbe2>myzIOPOE?0_%w*M>nIs*--z1@pa8h~xaL#qc<;QB< zE~~-0A8rx@OBX*>{!+`RmU24DkIQP0@>HHL*AiK1p*I?#4woKX_EA(t^EE#nW~Xyd zyFc{zs_S$emvBl9U+bUs_(J*=zM7LJPD0lur#t$N`0&2w$d|bL66?1B`R4)acSDe}SAmV?BhvMIy{v^(fE^Y>hY0koEh` zujH;@@8Y4>?~@mu#`+}*N~)pbM^(C+IQVRIN^E|5odr9pdRVxV(4?cooQB!B<$EQU?RZ9rJm9aINl?|>A0soSScbHMVwy376k3WGaKKN;Wh zk3-DnyU^s2nEXiic1MMCZF**}EpNMlnVlE!sFP{^?LE2E`o+*t(|YJbr!lP;;W@&X zwf(Zxg9i*_#*siP+urh zdM}TjpRA4hyF6{&O(FsHFAIiMFxt87ny?-4><(Sk;H=O-Ik5)MCQ5;Nx}_LPM6Y=^ zh5t;ua-QGyV28QbrpcmGAu?Yy9EVy*1aP0)D%&F|xKQLs)@kW?dBgFrcYF@ zIMpGhQ}xNlCNfqcfWEO|{62asHKEVLZN=xbcaBGUgzL+3H!u-a4~YTaoQn9&Qd4>T z&##JzZSIRr1Yd$7+S|-ix$SA4%$(L_!R1n zR7^}IOK+o={an4Y0%k>2QG)%<-rcS+?hSG!=C8OuIR8UxLwUXre2l0 z{tmTeJF{!4#pBGrqQj;z&+I0iXmVOt1Ne>>`O7tA7s*f78j+tJEqY+PHNW)Ww5l}I z(V_>ni+hvuNuztKD>& zKtDfP|CtidL{_H55?EJn;4k(wr$!>KNsYHP{_9JHmc1TQT1KXhw}pjREy|LUB!qJ+ zC9yAFP(w)v{*FrnoH)bTwaC=k%pv))(p zy0>F&6*33TC|m7;7tl(RAE-Au+;%o=Gkpg+yQb4SvVaELF&6A4`eCo_*|@05uKZo} z*>E)$K>;PX#4FpYWXda_DeJK-x7wbqp)zOVK(AdHi*5?pe6(_7bW?adFGP4uZglgC zV36(U4x{P7Rn+T@t@0JUi3P{r8Po5!9iMEqiu)YlMqy^Xy=o0_Y~nwDu%EL#Z!K&) zQLzZ$WVC0UW6!WX&n+UL%N=;%ei@O^=}A&BeTy5@)OWzyz}L&3wxeCSUHl=Q^QmrH zYko5Q8L!kRN6pE^l&h~5b*d#hX9lTqPGr7N-H@+AbRtNC5TNwDF+K1ZMlEbReFA-_ zzmEuXg6(#eQsYb^5ZMaBpC*FQFUCOUZtW+_%o6fqXb401_tnb@j zxjwofTrSrq;*~MbTiG4m7#i(!b^^Yg-8S`0+KyK=lal~i`D?&scYaEN6&QHd>uf1Y z`f9f4_~(#<$XRdq?U(jIf>@G|Y}W5Y;~~H&Fk>n=hQb0T0xK(;xB0LPNc2_{qAEuWZ@ysJP%C0bBA=O~JlZLogW(>yWN z)mc2;_B`GEdugi3SA+k*q`B=V7uH|TbUq+rce7dm6+c-)>8Z(^mqGK9yN2o|?SbGb zk_h4$2 z$+L#?xfv@}>+H0Mf0G6_J|IuD%Fl1x1IK~My%eXH@B8QXIP1Zo+Cb-6l9Jvnago7n za<%R8uY6sEq@@?T(N`~8t@p4j>NdB$EQ&`P*U*x}1vc*tv!49ZMB#w0!0|{*mH{m& z_%Es=d>d5G!0WRFmDd+Ul6!K{ICCoSGpH>2c~pCf_99b2Ufnq7c<8FTzdCc~juIpKGuVGk!LQV%IgVTDPWh@R4*jlbE2I zd~iyNqdXIWHX_lu^-`~N(`81nBUM6zo$cC5t#tZK{3q_McJt8(^&YvL7g#rMqz=U< zYxy_L9h&lsFATrZWl7<$@0Dt$CHlmjUFep`1GY_qzob^FsFYrKNN49Fqh-bgyH)%{ zva@roPRu%wnn?BIVVmnFJ?#f{M z2-=Y3C7lMIA2P-s&r4S87l3EWD}w7AeE^fhh5+-=3}92oeRS--BD%nDJX>peV?~bn ziB395T!(=t4Kq^33Cu9V)Q8S=>L;>W)`Qn;1sdRWgrjppvKY%wCRi;FzQLNef;F!P zYY6;!&`_Grk^9E|J{3^EW(Jbdnqm>G}#t#M`bKPX^;))l3);{5r8d)q0tcYNn@xeT6M7z6k4x*ZH14?~}rjg4%vcLkZ)M z#y;|jjO}JikzAU!(m*=L&@;z^6%ozrgH@|( z-q2#FTPW~G8!YYk5dyW(3p!Wve?rh1alT}7gXeYee03h4FL&|evWDo(X*}PU#`A8)^MlDTE@J#; zauU_w?m*i%)O@kfTo>yDjyi1zoHZ^AE*z7Kf-{XcA)O3F|HMa*IU56&nUBQ$Wk&*K z@#F;S$zzkPC*PQyB(u?gzwMb+_C1NT{A6IhR*P+Lz9tACaGr3#c4Bny*Deo4{}wvm zC%g_zHv5%eS#O~1cyf#`SL?|Eh9Z%866@*|H8_r0x8KbHj?ejvJ@7kk03x@cdMMf>_>so!>I!02!T&bQ1* zSGWVYJZ~W0_poxuXI5^K@(z6gu@w&N3Y6`Xg{*jlkHlU6^eUcfJKN1FoCD~@Z zh+{C&ENcpZOF%~j{JXedvAxGphl?Z4UAnIK3tob^agOk(!ZX#n%NnzpY$UR<<;${m zbX^C{+CiF(UyS;P72f17n;^hso)d2=d9e2&j6xK{us*nd=xh+qx;-`JbXK#0@ z!qyB`$ew(_`~Q#m;ydsEGH9>UA*iAp!~c;!J~>(bI-3@(a(bRD=bX@-z7t3Uefwc| zL&Ie5YIdc_W?a(zg5B~aPej5?Tq=wdkYRa;WCB)Fnuj^cVFDJgct02>;GN<3&ho+D zljH;CXAdwsGf^cfb}{1Ci0srRybSyl|7IH+2{OaJs9mXqJ;<=>1}U&d?IOU0=7OTf8dRG z!PmbGe;@cdz%HpMYFGBU5LZ}pT?x5jv9l=;-d`Xr`kfJW*8iUfn@>OTmb5|O8u9f0o-a%2m=}M3n7(%kxw{ReTbY^RU*DtkbO{e8av{z-}yGt8OYQ;A{W`g zo{7IG7eSlq;H-HhCmYQ!CHKi@T46FE%wY)EQ@ zPUFRhA9qVgF%DKSs)-N2hEN|fs#QRk3eQ>F`azGbaFUEs4HPRhZsci#4*q1d9)^dI^cT4ztuhF0dAb`q zTaeY=Wbsk-#ga%)g#S25h`w9);!g)_4&>-p{LZL=Gw}++J-o|6v-mPHXUNY+`B@=K z?}c)OZd3@?RfjJU9ULgPFg#g^+{RMRUz^vNj?NJ!(_93aTG5cMSI@)b%UN#4)mP-} zvTIRM`yHv>O8>$a*uNHS6r7wHxwQ3J`%c@{xk_PGsR0`cy%4N9Y6~M45r!ozZ%n+D za#yPMiEz_hI$PsEyxpuPg`gSPj`%-w(Qm>WgU)viHahN-nLaGNWJE4rGBh?0wPe6M zccFv`cwV2Co^`2og@-ppUka5pM0bQH8s<^P;MYKNSt$+9UQABO^A%S&XRqfxo43d* zHQ@F*Qj*)_e;jI&OG2dFHFbtKvBm^lvnyLL_7b@&9KR9!1)XtDYCwfQG7#OZYg`eV z#C}ANi&nP64@y*r|K2~}(4^q}Zzwy9R{!2l!D$DI*88uP@!jt=MCabCuJ0^9%e_|X zUaS5@XYm>CwTbSvu>_xwaj%t{Yxk7|J$vsRD-N_9aPcRpX)ywLViPMyaV`<#EEnxE z=h^ik`uTi%O%^H_6BA0V$Fa0fNCuSKmt}4LM*dPh;}Xb3I1k65*<0fu|BP8W6)x6o zk6*%-EP@Hm2s)0?j9}-uokd94&WKi5bUR-uR#yP)h@n%PlV=jfAa1Gt`I>P(=qxu> z=bO?({;M*F?yE7G8D5PE&5^08mZ_-?&v17OjFuIiuI3B9WZ5qwjpoKB6M*_~IT^#0 z6w1k2{?6jjoGcbVH(xI6TmVhfp_HX~&r~S`{z3fRAow54hd+LW0)JP|(piwD;=(_F zjVt_rduu-Ycf|jTD_QvGFYr&Ek-J>p%L4ajR6v=fo|&^*W*Ys`^|D@G42^7vZqM9g z!3zfQk7fQ+11=(CbK1(>b9Zr8w(0Q-cY%MuFt^8zr&!Fn>svN<9t$vI?g9rn*u9hN zS9(>t8Hhe7-PHX`Z{lrFW*$~{26yhtE^AS-dAjd=4{JJS{bts5&N|Oo(_8MlJZDXx z{XS6by{zxC?{$5D_LhA7+8%GbP1C|Z z4_en`u^MY+p6^*&&pUES{f z?sLdUfHHB9?9+EZiAcMNt|m0sU$a-W3)%e|@0c>L(FKaNuQuQmIuSn;gI(+dcCoP% zh1mt^+1mU♹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 z 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�GC(l)vlv6#JW&q%t2RKUmZ z1Jg%nyC&;bu)?x_Rlof*EVVJsyhX$0V&-RMT;Iv|HEip;057AJ5dB~%^R#O}WzPKJ zA6(^X*1#H|MgB2keE-vkplx(HF7efD>9q*`k?eU5geA#i@ci zxO7_avNim9C9b@~CWa<0=$Bn_y^ne>J6Qn%{zR$dHG6mmPBOuy7^@&ApSH$^jG~$U zxW)jpi-h?gVA8~aQda^|hNvls&nt*p_-=-%w2}Ntm}?up8s{hDxd)GN7?-F<$G&JB zjt@Ms5qT`^=NxL-&QaJchw(p`#1NJw1&$^*jg4QwHFYbN1ldsIq&iKLs#7I8>S_yKn= zrhdQ?N>8zs$l9(5e~5j9JD81UWdg*MyKrMQF7f@Spg!noxjE=MUhtMHR5qD5nTDT2 zTvx$f&kx>OIB785kloe1fe6Tf=rne_wM-x%f!Tp|OJ}_}CWGg5{UyU&mi2=ClgMX(bN5 zG&U-Y$|l#CO-4dC?~P?D={c<1LYi(o2l~RokxY~cG#jIG`M@r7854dMo7(kU){iq3 zriXZ#a8`wxj$E2k+|=ae7@Hi=kfF&51+XxDjRD~8Mu0%u05C_Qje6Y*47pyh@5ng?iL#Q5y*i4Hjny`4Hw^%>`v3|+s2xTnM!~$ZG@T@V26>W0t z*^JW{%~d-irvdIs(o=P{PG8tM{d)s`Rr(gRfrR}3i1gsX$f0z4AF!^RLj?)C4o2RR zK9M)@UWlgtFZTR1%W~$1a8cP3`zEi%dP0)R7Wn ztTyF_KJi~HFWvKw;;1U;l}-ooZDb8+=Z%h1E7pqTZ)8EF{xulgENdnP%2-nX6}cMLj#v$QLgkA+p@%7Z z2R98~uLk-LKY?18Fz74BeN+^D$2d%WchXseJ|(SOL5JBDOv39po)&k_M#*RmV6^SN z$0L_vA5#nshj`azU3oyv*#|_>jp3g51=ZL(L@PzoX69*&sbg4tkUNIx$7rywq5GS= z;oY3hZ3TBsQ9Hr`$`^V3xJ8}sPm3~5uZqZBwcGpky_P! zOiV@oWJL6&vEEHnaELWQ<&#i&uq@6#LvgTg{QdSxJhXM0PKmzWEFjsgq=bJiYA>;Z zf@4>}e^5LAufYF|cKlbv|IBv$*G1lf*3NYr*-9=VE8nZfE|$bA$RC{)OXA31@O84L ztXIHEWgxInEij>9Sq^_JUT;&%=OY)yu)FDpX!K@u%}GhkwK3chJuTDmqIZAvIy*}qi|~Eup1F*pB!G? zmC&kls3rFOWqP3T9s)Y8MN~cf$*9xXe-r#aZ^wTt{J&_&e@EmzP$t&Q+NCzmh3({T zvG_WLDt<%-BR*H~QSR&J7$_^{!#q1J4@yvO9lTWy* zHoFO=Aa(((*OLxXN9C`_QnbWUpgwlDTOS-9XtjwB)hVX4JhvtbJP^&CrX9eV>w{#x zkpp{uPKpM{XW|@U8X13~ZW-1`eWgQbV2V*+cSP9X2ws{i=GY-w9e`qXU@y;Va6te% z(FSI(i7lSc*lI0w-$6I-H}g>OfL{FkE+E`_-tcuIEtrf$hWj`~aw7xip=skZV*_%O|+z%$CX*N59cVk;j z^}T=rL)Te+!Zfbq23&h}uq516vK#eAU-N?{`|w&6EIAmV^X1|ZBpMtcQo|ulz#s)D zOZw|m7zZ6iV3Q4ODhZoh?EM)BAddx0b~J-R_T|Bn!%Zc76|`4^B_A|j1nh9UuYDO% zJ3z-o4~oZAXi+?Pt_zkNYEFZLz`1Mc>w$-xwjni{v0KH4qjEJZy4@O>0&A0hJsFCy z$sC%6vgJ7QRrU91LG^1w8j3_AX1lh6s_tNIF1_(dZGk?yO^CS%)hE3X8djh5#%GKA zq&F^D#$N}L(p!wf4MxZPEt++%4JAPbh6?X+NLBbIy~4H70=93hvxBqQzU2{f$iC$e z6&AMu%VzA>f)A5f%MrE1Vam1%HeSZc6L#HV6fHGEpXhs9eXxAdTr5q?69;I zZ>;*JT-a^Rd&O?t18t^SOTl5GIy^e#gZ9>i77)DfC!hrJS3M#49cW=hP%C1V^5P7MyDE;Oxwz04r3cH@naGTez zDdq+~pnWy5B^aDvqJ~lvV^9bu465`&#yhahSFghYE9FbuFr8iH3H^;`P~GCq@czpn z8=|f(w_+7nFw5=Xu1#WdC*G;y9~+G0bmbkN=bYT0*AB37CMi@lEz^*jJcrosH8^ai$@9{!=gVJFv2yVv#Ep8jEoz zz<*NY+3jZ4ev!whyoS*E1HV*cB8Z0F%-rzr0K4!mz;bk_{=4ZyzqG+AesC21 zj`+zs=L=LR*eD%*avXfJ5}!C6*VW<_-*`edWb6A+#e0s>NHghrrnkSS`GQQHj=+5; z?=7JbW@gN{56a7)YR$RcF}Rzsr6iOtAaEs9X<(|q(y>HwrZP#Us>)$45X{6^u4jJQ zP4d%zI!}5SZ)?uyazz_)ok`X2c%$nk+*NnNyaq^^th292WeZme-}|&#a}{$#!G*H$ zcJN+kI>_>J$S=amDN6F&u={{S%oMv<^)v7wvAU*Ev+Jm#;W7I`fJMF}a?@=jAL?{} z2M#E>bVB1B90+OL00;J=7i@#v8xyMox(3pX`x~hVPnGt_>RD79JBiHEdYFM*aCD1P zKtNKJI0?u$N2nYV6DMNTF)$j4dZ#-=Zuo97R>vevuQ|n4E!2lRWikybny}k8WB73K z*gvQlx@eOz`sY$qQ9f*n4zU{z-yybA+sBepRZW==TzG~(>^hKQ0IAx>HAAOV(AM^9 zK7p3%<|o`cb1mpkyL6{QUVtH7EljFt1C<=R?=&u~qgb-xY@CFNs~u5M5247|XHRvd zXH_(2t8K=pk>W8aHpF8ut>Fz9$<+fy1x=QRA=i|1t zSTS$HRuoU@De8@pVXr(4%w(5`d2HONNBy(4_I-@4RbO0)ffA1{hg;{?LGa6+ir!Cn z_CFslp8fa#m~E}CL2$H@dQo@iDx#2+#B#0`Co0s_%Cw!~Jg5S2n_(DFei@s0-we;V zi1_OlJK0f)b}F6h7Q%Z+I2$Svok@VcdrYn+KJn~E)!Q)btjdONL<^#St|86N19dUd z2}R(tyb94R%R+ch>w;#!avveQnL!i6V;OKtCwH)1!YsGVJ1sJtn9jd}AcBz30AA!4 zz%o*#yQBhBq$eOJQsl;12JNaHR6GY%=U-90o#FcKK!eUyLkS|6up+fH{3v>MRj4Bj z@T7$z65K9hL+fGvVm(qs=ScnHVb(7&yPwiY3oc;&q6AcB*Syo1&9&knjUs%P5vZIP zC{~B2GbpJJJj874iW!aOWkDNOPe5ZbpwPf!84LiEgV9|VHmWcftRKIWl1(k~;8 z1{k?R^f<*q(oV7KIJAHZ-U%VZQpprU(e>!rl7lZl6JX8;7$f7n2MqM4bO2p=BIBIR z#r(OZ#JZ#z(V}yHS(il7A`4*;A`B-3D`3d!$0!URJA=x#Gd!jzBG#Z_MoiB$U|PVK zT5I`)XI0FPkQlWSaU&gopurINOx^+ER23UX=ER8dl8Q|>mhd5Tm7qT^{FL}CLSS_v zbc>$=K=*t=rHH`Ke}zZdSoFXfI7O1rs(W0?vAHy7P)m6ksi-u-jHQ^u&Kk%?;|`CO zl;`GqH6sJjXUIE6BIKKsqcVwz~7KTl@P-X2~f zeV8?y&oR<>7lZP>+WfRzU>(%Xa6bqdj;E5B7e7ej9^ZvnI?O{J8s<=A_$-$wzC9co zOpNwsIDj{a{^)id{y<*lH{)EJ2PqNx(?KF~cyIt^j2!$o_8G@)G)w!b(c2xLWAqmH zpQrm@o#;PJ_rD_1zf$)!m}yS|Df*wBKhO6 z2tMlJ?;p{C^|4$V*v&1*7vd^8yIb6YAKmK@XIrW{k zj_Ex-ry>3KYjaFz;du&i{@RFp=;7yj1Lq2F%`q*-^CIG30hmhwPXoL&@JvU%`|!-g z^AMgT!0iB@e|?yPN=w4d&6FgpF~hbFQ-?H5(%`{ZHD;n!gIJ}82wvB&&PPa!V^|cYrl!8-y87w@Z6#v`X)E|O~bPZ^}h|z2Y7a?hrY>8 ze(&Nb*p5jnJZIv06VJ#Us8duat>{Conv>~&vT@6z?oLj=duNX6wl{N3hw)_L>9Y%b zg7*OU+jbLgq$U2qCCVek7+}Uns?npBy94z1TRzA!Me+QwFUNEa9v9r_1zD6s#VqTmt(ABoa1V&a$JgHV?krzb0HIGK_gBa^N4?Wut@|mvLajyH3|L8?GDkw zU;mxIrE2C4P?Z1K7wh4$j;c2K_-Cy8ev22Yz78=A`;C&lJuvq2c6IpgztQAN!)q!o zrFK-Ww^0N0^>^ViY=9{<(|J0(!XG_Hhh~-ab!?eK5t1}aXY3}tg3ssDib{;owBReb zb?mh+cOKq!T3I#TPBMGAiss0{^JMNOad?zFgbRRBfIJ!n9>!zVpPoAxx)qP-@-w9}}jkcK?@wHWcCl-}fy=kM8!gNNwQ zE6p1CE&5oxqXZ)!4D9^%-7y%Cm&H{q3pyJ&bt6j<5Mx@NfWY(>6O^gO^m7$U((-wW zbV6VS%I_-ro1_$-#N-LxNc8@#t@^$elXseMk)6|!SK%b-ebF~G5wX^OigeL8thKB7?d?zQZfG^Q_XWBdtWHE{ik+EaDc$*A0FxeH^g1iqTiNW^m0Kb>qYOtm!O-=?e^4H%cglO?|crylS=q?Nx z+zAX&g4!Of%Qk#JO2Bn8nd{_QQ3i4c2@KcA-8AMaApEJ``f;2r8HZLgbDVJ$$BHnITx^@!Re zd;5d+k-yNI0Eo6eI4)O|!MZCsD3sw3Z#x6X%;xOCL&?5gsAEMJ3VxP?r^w{iKqbW+ zl`YEhj3DMvoGTC%ZwSgI_jCL2&VYSzpNB>{@A=01?*=cALYwe^ne06a>>r>VzYZ}x z9X4Fz?(I5vW2q+2sKs8Qh<^~pfNe8Q>UiMI2*jns-rN0mTT*=gqfNOA@%XeYYK8d% zXFJ}TYsZO+-mNwuft{j7ivLH7+P5V$S6ZfDfI|xDo-(oB|8f6@a4H}9`SvGRdX9$R z=$KJme4=V6wM?{8z+=Q3Q4^EUdNl~Ocmo*p9%`b!AIn3g22N#s11Gfl+)Ry9n77pA zy*03$so_osG29>qPjaBClc}(C6gK;>(&b676^ytG|M<>uK`iX%udR8?yM*FXTW@kqq0J{mL#}{2Bi!aI? zU%B)}W`DAn(6#A*CQjAPKB4)G5e)L`dHy5UP;9V1u-qDM7{Hm;_RoL*cvO}91!F{< zZQofTc9TS`w!i)PpY*sj#<-y6A6gzDOZ?XGR2^{PkXYm~#>jLb0Yz58Ejn;*2sS_Z z*D*pS@44ip{7l|~u^pi}@dZ%PV}C1`Z* zMZQNoLHtHnUSyYxMY&XSp3qCg6Xl{GjuW;xib^be(T3IrOjkyV4i}{jP`BYETd~Vg zba(oUTxihT9?^BV1=QXKhe)Tr66TVQp5)`M;^FC4hswqLT;d#<`iZB?#Y9Le%FiM5 z+m|lM5=Z;bdx;28Nh+N*(|a3EUM;#Sea0Cc%8i%|mJ#IFjixtLevXbF8}hpn`H8Q~ zVL!=20o`YR8BcmbAunK6j*CO;!3X}%i>ad4|u=qEM7tRn=l@7n9{N4Cu`YXl1*(BaxR4={BT}58d#wgdWNJr8kqk+^!=p1oYf}vkv&LF4GU=aY;>0lTG+#~ zfvu4Z4D*SG2KGhA)~LNeATXy%jVs?(G(3IASr~*H_BZ`}`&#gG&Fiizh1ck!oLWd9UzL z`zlfGYdyFh6R<9BU?`%T-^HQ|v@gu50=~tKaWLdXC$wKQutNk(Hn6w6r5?S3>F{W9 z`Rm~EvA~TMN6m3!AnWW3Zem^~`FO?`23wQHh)s6^-o? zLt~rLDtcE$=XE5Onjd9jbHg&SqAzqbVt=C1*=_Ls2D9`;qi$_N-c=#rcW7P4*EvME zEPQ~7%i^D9!EGD*@gZjH^MyFU6laMAd&4_vO)gX%hKt==og9Lx&+;tNX(y8an94$d z} zH5KOC5$Ac&KGn-)CuW{&qVNxTygm1raf0B_?I8CT7*X|5UTu z8=!YaGrvBK7NGAV-TvIr=xD+Iz+1D<(n6XgZlBbe94!PRc-p*c%(O~0`o>+&&8f6- zWxpn{vae z9ANxN)zO3o^#W@efG?a{(O_R*H1m%Pa6DGvW-dr-g}gg>t1Vo?Xa%XTw{T&DQ<0uv zU_}qsonXnU=%A&%6*TX`JVDU8$1H|f@Un3F3_ab^-MZ@iFY0>5uiMt~c!r0w6lm(O$UC zl-lQDZl7lOLrX!O9E;MqXRsW5f_-95^z|miF?T7I^btJ^g3rXA$nY`7;r`Xpwtsb4JTw9lb_+zC4a~7Ib=xw4%h=Q|FCgBL7*WD>h&Z1;rTsT9~PNMw=7v5aw5}E~v zia<1Bvabhd=`8N%>j)|8C@M93`$o|m8gK*Uo~kd1@<`-+6SD#64lIqlYb5aw^gLad#r2LG=1(+2qh_ z*Kq?JZhj9D9C7mMcu0pOu0#h1mLaKD0baet6YHBn|69&~PmcbSbGh+URN4$!SE zn;e*DD78Rj>Kk%EPAsmJ^bHM9auDb?-7m{aV|$WPb3JywBudTNMs80Tr`nz#{1uI< zbsIABfT2D0W&J1{6&lUV?3U1;x+;9*@^kM-uE4&lE$z3by|(t-(_cH?K279QUE9N%3hKTI<(=$|$DV1W_8Z_^@USPjPN3Mb9Z z>*{zfCoLR}QP0 zipL?Cd(bd(sbM=+Z#P!``{|UwvEq9sR(uGcCk#Moe{46_Qq7Ly-DF6h z4YC?-Xg1fmp_Vo#+7L)y+LS)ZrUNWiG04l`#pUIBt>k4-r@#cFL0lq3Ww{`O!9R@R z@&Ldnt@UgR5w1OPdD_2PSHefwnT4*MP8*!3DT@J#%dfvN#AI>#D#iSn>UuRz2v$<>4@TG|v}025O2&qU|34@7a591U|6%VG=fCpUUeZ{m*yq4cr%&+u9?*fa)j4U?QMB~QmvV>Ex{rqiSJ8dQdffZ8dOQl;&fJ4Q8JJK(4?^Qw4B9UjgZ44tDb?vXRkVmY zqgg~3j0ZUla~9R2lb_r~EirZer;gzx^}DnFF#F!2Kl*MW^!KmWv+3`zU!SVKQXC;i z-N)IcD@t`>I*ABZ!gA8+bNKfUDtjr60U zcI5w4k^DEFHT_?nmj0JG{TTP^vCf*(n}IkzrK7+zlG5{t-8rSSqkV>_l{|ci-ckjJ zkDh*7^v_>7dvpaSKcq_z+{K^t%ktsa=50Fr#t^5yV{uk3u@?&oPFsVBrE)^H2v3<_ zomu5+%xuIA)2W!>5UE8vIl)*zwx?}a*O+A|G355jJFFk_($m(46UeCnzwk7+pF9t? z>ezU2*@zCnVDp=X`Lz}`Kk;l9$!^0*S-t}siK*2Q$rgRWy~L8TTptrg2PzPB#$j7W z`o;Vi>_Rk6?#xtaDFku;0)4vPOdmI0+NSm}KG$K_FjhmD!YRchiS~9lWrQGX9Z#;* zp9~VjCb6O@5-(MMYT~E#fwd#o9DzurWNlZ%aE^& zzksOI{o1N!6OuD{qk$+KO&jPtTN52yj$f+0O&j9GZ>;$3B7UjuZQ9UP{E{u-v;q6^ z@S7-pyNll*;@2d8X>iuGAxZr96u-U1FU>PGZAcNn=ZW9*#c!(k?Ja&U5WjuIFFsQP zpC*1U6uIINl!@Cxa|;T`q`^3pmvxbqoQ74g@}zUWGJaWBt8 z9CsWSP8t6TvbLEr5IZXJ#n4v{kDK#py9U}HJkY;b)xb9g>=RH=L$Y% z_iPcKrBEdo0V^j3s_Z46k2|wUx!j32kCmA*mSfh9<(REw zIcD3~Q!}F@ZoQ1#AmjRE+;$n)aGC-m<-M*R3LD;0)(rKm7;`-<#!@fKT0JYqUN7^w zUMi-Z^SHd8%UXRsE2g2I72~UC#kAIQ^4jV-dF}O_Ji}T}o_X!5$$K**V;g1aV1B)6e3_(upe>Sa1)VJEHqh~sZofHr94#hQ56DOYeT7>R$UMzd z{gI?Cpx>3W74&vV+d*%ZbTR1XC0#Nt_%}&bA^2fQ*MVLw>3Yx}NjHF=FKOSj;7pJZ zsD3)>k(G7>2iXxsGLDqsHblHu((RxJOWH8qR83xjMLIxVAZZKe9+I|B5B`d5BS-ppEiL15p2vv=8)JNwKx>k=mIfDsgg_0Dk@R?nd{PWlsiaFl-yrF7&_$B20q~=KlJp_? zLP@uR#u-~8Ep4FVB;5`gelSJ2p)7a=Bxy+Kv0BvFLmX6vAd(Sl$pqL^W~%l}+6o#2 zN)c`c{j{WuK|d<#643Wby1Xp7RFZXN?!`jaW$t-G&t>l0>FO(Ui*Bd2EOY||vd_fZ zFXe`{y^I@H!%XgR%rm)Rwany()jE@nj^dfJ^PI^IYxzvsiO-Y`+ssoNwvKjHRK9)C z5t<*=7)U@3glR0;2gOBzksA3!4A#nk8^krU*TDxh4Ft^<9Ir0YS$wWcTo4WOy|QAQe2$5SP328}HN zTz)`fQI4RkpfTAlX#4cwCz32d@cWW32fa(uRiL*>x(+mrM@1O|{SQeufL<$UALu_x zx^;T61|$;JDjEj(WI%?_=b$QT7?9Rk65Ni6H%Z!n+FdMZGiZmTEue=;+6wwIN!vkN zBwY-eY-|#;1a!Ql%Vz|S>-7M^-$~_$4$u{)tDA{Jvddar*4E~)G~beaqnbR$MH{5ydQ3 z-I~yqr0<3`QmQqwzO9kpV$*e8A)K+~u%hiz1 za{1C(uGVyxt4(UFJ)Pw;%YmOoYRf9iyIq#|lKw1Ld4HCxs{h&L^4&+}Jp-i*Zbb2m z@^0@%L9}ebR2}4?Hq;6#^Y6*hSA{aLQ_^*y8zo&2S~u1jKtChHeLaH@NwOWmYb0$z zW3WQfX3%7;k>V|&=SbSxD>xM-*`PM?WP>f#!TM^>ir286Rs%s=| zDG63evKYa-9aRo`nhdW3eVwH1L64NQ5A?N?ZUs$a8Oqjn&=*PCd~@(Tkd(zVP(@;N zJIW60Pq(9rLF;x@3Fv?CM(@!KWliCZ29bk%_0< zQDow&65|7Xx1?J^>%*8f(4{iGeOi!e1`<#%>@F;0HkhhMa8L=^T}YGO+gPS|^fp$| zdT(O~t=mz>pmjT{4fM~ljFZjQE@`saK9RI}M(`a;mLpj2ZK^=~Wq2KEy?R(6j$S>i zp!Mou2dxidic3ZHpfr(vCEN9?Qf@!%O1WKcE9LeRc9!UE4APD=OFPP1#?`}K#_ea7 zw4)lN9c7op7z}6nQ0A1#VGM>dVlJ}ov|&uAc3mn~&H)xv+37R~Xg~((9Ve9qz2me@ z<1WfNO?Cy-cn+{+8YiWE8YiV~x*U;B=Q%+03{Hw=2G?}!4DO=rGq{T?p21xdOh}Ow zBvs4-)|GKm>dQ{<3L^E~igcJ(+>d-h0mm;?UP5WXcvLqhC@lwMMp9bz47PyQGuR4R z&tN-fJ%fv<2}7B*TaMuSBpWJL%O%}Do!dXd3~v9BR54Dq%n04A7XUdqj?|7PR!FUw z<>l$pt9&= zCTfrLF%z{%dR?yvt&f=+Ku9IGkoiOTrWb{J(0Wm50Ie4V zYCiO$K+T6<6skb$MWGI~Ue|rogI=&l_8Lgf!#gSnO2Ib% zLF!~t@X4akI)ledW|;?QBeE%8L#edkO1UVsmvSC7$UJD1d0?1z_B?11d4Qdxs3SLF zev?Y2=nL6=D&U|7^o6?lbR`EBQ}?KtsxQVZ2}9jlA4!`*n|xK))*K`jX&tAR($5qLL8$#HkOcKTA|A=#`Rg1HD+% z?Vu|pZMZo&O_COr7Mir77h6G(k+dB&ISQxnV$fGfy5#2I#ULR>1KJc_IlVbZ%<(9u z>TVKTg^2pZX&vZqWd~gk`ZGy4fPPQXn6ud~$uH2BG z)gU34n1fL|j12<{>75c~1|69=1%0y&w}PH1Y0RlOC0T-C-PkAxts5Iu2XteD>c9mO zUq3yFZSg_~F(-JEEzVu}Nw#<$^*9h!x5a(nrQ71Ipc~QSi;{xAR=35eKh|yWsu>Ym zydJ^2E#3fHx5a&+bz8g@v~G)+lFVk)D2AZ<$u*KWSM1V|s14Q$odIQt|T5o`S zp!Ei*6|`<_v~|px8fJ1|WS+@=QPoWDi|S^wEnYuU*y83{c%!t%eKWZeXq9uOXi#jF z4efHy)G&+tBFijpfUL8)0VVJvEu3^s#aBWVlh6_U1&buS^TeXM&vUCYOY zZXxL)Fut(OprE?3?wja}kBSrMijRtgbj3$S2VGmoy04*Y+gS9hxZ>mDWpp)jG0zGIe$W^=kq_B5OG3#ktx&}@!A z%R{p{dS7h7cs`>ndK}K<}XLlJ?1aPEK{qT*EFZIJ%)J}@&0!C?H}_eeF%^Fl3sMh{APmS zmvMGmpq1Y*-doa(?ZEQL{3O4(UB1^UXSd4Jxd|}Kbhpa)w#oOl%lR71>F?G2k=kz- zLPZL1J4&kl)uax^1~tko3-3}{im32bO1cX4Es~~!JVnwCpvOv@3bj+xRH$<$O@(@p zq^VG+OWM#;c&#Xy-DGevXwl@5YC(%8hq48jfyRiDd%zo>-kv)TF=iq(0YD0SRzx-tq9ihvmLaapN8~~ z{4|5s^V0%a&rd68JwNTB_53Ubt>W6;OJ9)`8aZ6OD?bj$WK&4k)No9B0tdxi2TGy4w0Xh z3{%a>lk$_RAmuexFkLfL!Ss@DfW~yqm_h5Bp?o6EQ13^@cpQ#G#4WL+`u2jPsiHh7 zX{spt!Xm0DdOJ-OMQ^8D<@c1fUOdl%B0HOSqR5Id6N;>8uTW&iQ#gvOXeY~)xxK1N z=5`wETtquCr#K|K0+ zAqDz)AqDz)(OS2Ul~RmjDeA{@tLYoZQW(lv3UfJ2VJT-RtmUUjagq$~hzxDTLI&1| z>^WNHmw>hmmZd>{3GfxOEUm@dbF>$;MhtS%lUXi$vdBeGR=McOe(Hj$$lHCG#5S#{ zLawqmKPbgOMWDb`y$xi|wvJBQf})^z+E&oI{n~)mO}AftpmqDTy{DKg6FJ_C?N>`L zwqLEir2U$~_G?3iuwSc471DmylWw(gHsGU(jaZcwb2gM0b2ii!b2ik=PcwDnPR<5P z)hXG4MewvAA4`dO(~&1{+01ApzlK)cWN&MZEypbyHF&NKrx@Nj6vkF^?RYrlhds3T zcR#HL?nWD*VqLc5mF%sR!n%s(#`_6`6}vrLwht)?>wvc)D0^EtQJ;{a+N9jVTtF}(cajr z5Et8_wf9_D4@s7^OynR4t3Bpka1 zu#A;dkDWdTp+@~pm(qqi4cobPgo~|OdyVhTUhqry3Lz1ugo_7gTSKw%o1;r}nx<&X zQsA+`w^`3ZZ`vPUKNK#~T8eCIij(28IjInSU~w~vZep^1q1Zk?&wd=4S{YlQ#)mE` z)S`=Qp7O8a1augno&|Js6101Piu{fW7sK~?D0V}%-B8uZw#QL2*lyXe)|J=v!ev*y zNQL5^6jpD*&bh|QE^q`PQgo6V3GD1i)nn5xp9qazk#PUvH*LmIS*Fc)qyI2mu=!#W zTIlYV0_`{gkW{|^88-+K%d;(?*SP=O3ZHRqml9CF7Dpyxa+j{69xN=XQ}w^+(`u|e+U(vv~bD_ z+&Z-Vrk8!)ab`f3v*w^;8r>u&>akdT8={D4?r6ODKlZQUjD98Li&kBc4HP7NE+XruM$X$_x@K|e`n>sJe zF=XK-dX*W3mF3vN^={zDIJDxvO1N3t3Y2ATR~H=C+wv_H$8c<@OPy=M!x$u?n^@By z91Z43h`A76cV22om!he0cR_ls{4~XRd*Z4n`+2zz@Wc+E9HZC zLgp+w3#Jr)mSBG>5LBggGjQVSCZF1t|Tg3R)A( zsjh*Z1V`_|CC;`$^kSSQFtyl)?$_wK2<4l68Z@1)@583<37O`J*InPaf_mN# zSKT=Q4sU~s7C`MZ)sT7Q(8d;P&C0+=+ZNL@GMyA};-xOzD7$I-QhGdaJS3fKC)GNP zd!5>k1p}K4Y+Ebljqzp4p<7r-AK)@{`JDhvUVLvZ<>GB@=E^ zkufL8quWp=+~UrnpYEO=VZk{_b8&Ew_O(m9!H$h;wx;=?416ziK7tM*Q=y)Lew?M; z>g}5piq_sk-q=Ri=glhAX4)NENT_e%9DBjQEd{nWD&~*!-kN1_+2)Y;mUL(jyV%B{ zF76G$c_nGD8+mk@6VcTy($xsk6U<)sss{vCx1x zr)laRnkX?;Q9^sqXy;@fMSD!!BjMlf0$1)GmU&>Mn92FT)~X?nN|;L{2ZTmbOHkla z@37m4+##w_0h+e8+YW{8wR6#$pbb*zqA8hcu@9LWsYXlrIaMP(!algUs7ALUkm_%= zdR2#gh%|S$5Igd!WA7Za4Vz3Wun+VXP+5M@bKEkwo9M2B>qIet?l#;SKd&}ek6X0X z1zKz1qN8+(ys4JHkBRfG$ks_!Hdw^{9`xFQhwsuKEw-a+cWHmH0s=?RID7JbZlwAsnB{n+$6n4Xq{mDGH%O*-yDAfg+ z_*>$#?Vlg(G9C=Uo!^eI%l2MHE8*vL-EdwsOyS#vx$3?a`4digvzeN=cIwV#y&mnd zO+}B|RA?G8!koRE{CuUr3)RZR=-R}=u5e=k+$4OB_UdRAPS_v=9XlBBAuh;Sbt)Vh zPBqViBh{(qts_#SA}J;}DyQYOu>Z4tRk;p0QGjdz9ExcR31 z&{{g$zo7R-r*jj430C27Pklf@_n(|}4|c&{f7TK7JbC5AFK%dy2DbL;Y_NG3XDY#wo?4C;d4XkOq&fD^ zT8q<{XpDx_mmb4%7IFHL^I}iwIsv!nE{C_JT4 z8a$;B7_i&en7w5P;q$Hb4)(DPMliL3n%Y77^5ay9~0p)XLYx*P#j@r;^ca6OEyQ zFCr0z-lBEjpR*RWuea#yR|btNL`F3;XQ*hgm&4L<4|j3}R|6SZ3B3bY~oAuMEE zi92mfd|__7yA+0=`_ft@k9HP&i&htDZ=q{))GmU{_*z&*fm^|wMWjz*1PKIPq{A_& zOPzJ?Db+CWO6NCAbwdD0?QJX2<(O*5LXlcQ;?kfMf9~s+2K!~4AM3t&X%K}j)qQ~{ z80WrVX)xx8pN;N#ngWQ5tL&kyhv}%i92JV$>Rf@Q2A;bhK%wS>xOTf%oEUfwvXFQS z#%L3@5Nya1a0-O(c$O8(c4=ioNG6Jk%d=y;AI4%`hnp}i@6Gu5-fmgTlscG{B;y15>H(?ZwC>#BWr+(K5J7Z=4g0& zMtZWv$O4wpjzGdUC@cFFTXaPihu0qERN;GkSP6~6GH{G^?#K!A%($B5_%W)NZAmL+%C}e zWN!;pqVlr0-^EGrRR-^#7{FK+Y=JLe3*qDz_@p@)?Swe+Ld>3Q^dFLZDkstOP?0M= z-##QiVn(mU^R4;R2TrFx5Ti%@pbuQgec&kcfr|x%`aqg65mP7B*~~<+XjHF7TN#hK zhe}Q+Mh14-<5r1x;A8}M0(?Qi^(r1zhN#1fEmSWE#T2Sj%L~*58eF2*MqHce4KTOA zm?RcKD$a>|KXl8cSTv`h zG8(2*lC;H`eF(cT9-4#k&>WGGV_?ke$IOzWb`Hivb1)v7gYnQDjECk3Lv9RmaRWa` zFYq=VVLUVkhTP)_6b8*hf*|(7dbkgAd`@y;ulI+qp#-6wsE4#PsF@6-Y%V&{g{T!D z^FgAKd^^Qo0`;3@p~LV|;A+sJeS{;Qj_p#sHyOei2aNC8rY4(~tHgJHDkh@3WE@b8 zheFZDqqYy`|Cqf^dso?Dupp0c8hbe9deZhw)+K6~%Bl>OwaAv~Yni_`J zS?w*j$;b#O+TL)=Qi_FMsTUl?ZZK3)?!OgInTycSD=>thQmFNEb$+q~N(tq`TADY6 z+Uqf9ubY@1Yt3kP8BK04gz5CEf!9N&S-&T2ncT`k3C1x`vRrJ<0zcU0g93j|;m^kyfw4ZqH%zFo>xDFz3 z80g+t=pByUh|DYaZ4u$HwuGyOQ_ZywKWXGQC!F%AKx5LzGd&)2A@CO{rUnChku0wC zRNvT~*$xiz5yUu2d9`HGQgWjE?7 z?^M#GLT*=XRHaKw*hfm3;;|S!B{67&N{|Dd5;N{F)KGcgP4AlxSzs z6vV?bxiQ~NPDV$?7kWoQXEY)JM6W;2a|ryFnzt4smh8i5Pc48FgG)0Qm3sVDJJ2X(>4 zUYp}MCszOb6PfMZO^B?#O08gRT7HC)L(TfOCwWWnNaV1UF;V|6kq@zGBoku)jM%kl zS4SBB7EXOxvRIOAb2KCazwb#Jp)N;l&Ol=O8$`?hS!j*)1XkaG6|^?*oMfxLUuaEX zR#)Ouo8~?zP9uL3Ld}FU5b6rS>7hs}e@pU))Crk>U`{u3@-99np>kO$%6ka)IkU<< zCsx1yDAKnCk-_Q{u&Paa{+u}7)Fe3F&73OeQafnfIkDP%pHS6Zh^*$6GpB!?6Q?d2 zLZ}6T)9uXZ*>mEwvA^I%~Iy7!zo<-aaC-6S}TV@|8j$mu`nJc>EpC^!`}C+|6NnsbSeiFB>zj24^* zX=mj0pEB>!dqhG1wL5Vt6r6H?-$U=VIydP5iPLoE^t0gfEq>AGU4BlSCTvQ51%bZ>joEn(Zm*>Q3RIMll8w96+3Qk#}bKbA=ioVU z+SOZdB3-L#kKng9?Y(ni)TWB8`#U0|29wQ-8ockESUt$BNY~2iv1IDkX6=n|a;SOL zbkoVy|4&Wl1Wx3Gh=$nr(4{tKM}*^VVYM+;=FTnzKT1%6j9RI9<)0DBska8o_B0jZJ@hqwxLtLQzf@L(OSnW|g=E z_V@k_(|@r)Fyu!aGDSdgF2(x-FEQl84T1}eyCH&_(^K@ISz`!tA4C4iTxc98AXf>< zAhLG@a~Sdzo4{n(2?*I5Q1*iaDP+iP%;g>(vJ?ceb~8aPVaW3JLY5a8f;{^>C={fR z2ouYg(Ju?kJ{>b?o4^c;O9tj}sz~-9mx-G4Qv~xRV=g7kYm6Cv9;X{YkQnbu0tI>U}hvt55~-4%<%~3h)7%B#e_L> zo=E;xFN)-Uk05?m55XrVg9P8on2fIkCY2MX<|KfqO)DV86O4#T7Km#Zfr4QLg|d7b zVX7G8vYR*a#G^iODWa+Eb(5Z$Gdfn#{CYRYfL!sX8&mu?& zobxD0dXF$Ej2XwTntHyD@iXQg1O&cG5edJDF`fvf5)?#!o-l7Q=Ew^oSt}y%dQf1p z*3-M5X3T|WmM2TdQ^T0gn9rHzxtTHBpBL{sRh}FnPab1dGM^_SGP68`-X)oPGv?18 zp`VO2nf5`i;UVhiI0OWKNET_I$C$tNmYA$uJgiN78~1_T44KZ5%lZh2n)foE)uv6s zZJ>b>V;S)`W}@af@vJs&5AnE%5kna<3A3J%SH zgRJX81qztSrTnlDKUDJ`0|Ce=f?ULqehjJAA=wPsKoBEC5*bpX3tNw8wQ1`~*u%Yq zPJZO}?;z(j-XnxfB+b6gh;~LqvG&!x?*Xk%8%&5t8Sw!l#^^jQz_Z%4Dk?1t8Sy3~ zUeZOKC3t*BlHS0GR~Ru{mvpC)^bwNuDn>LgB3)N&wUBfisWpWWk1>MsOep?pJgZF$ z5RdPAiqx)RM3&B@70;m6iNvIpA$Kxlqz=gg0mxkh`3E3s-dvEiX?G$C$i!&`7qxW& zrB`DnH!+hUok=mCfyv#(WEMlB7Ks9TpI*{R@eG|oBNa6#L%v!lAQv+Pjos6rP*<-b zOgdwtuN0U~{3c-X1SabUz3P`Fk?IeY3e1=YW|w$Z)?&gOU`!)pUg#@y2R5T-wZpf|Lc$)Xa9dRoMg z+nLM!3?0Jt^hw+YE@jAMhCIR$HE%TtDELi+bYVy_L;O1AMTUGskWb7)F;0ejrb7-e zkx$@iwTm%kRP)Jm$^EmOhED;C&*VOk?La% z`3pmk)hij(OqlJA`Is@UMlk;bg}yjMnEzwUy6&RsZi`@cgQ9d_2+T6ZOdocbx~&)l zQI*U&#*ixrGL<3447o&y^aVlbCdf4mxn+S!)My=|2uRjqg7jv{Xok#X2s+hL#{7*i zKlBj&>_Z|bXCE%eQ!Bk!)ZFES*#!(j8|RBxZ99x!$hGO7eCy{57oTqKmZaX$g2#=W5@?O zWEVqvqyzFGL#}3s5kXYY^Nunkn;`QTGL#_$bVwf%c+n(+jAzId3@Oqfc81(d5GzA+ z8B(D`N*VGuf^=udwG4Schpc2sGeM3dh(u>Ilr(h++FqE~+) z{*MtRM#LjXB>5+S$R$KIBVrlxI~|b@qBd_Dh_i$%bz z_(eXxPiRqPXA|N==J6r(s7H{HV~vQiix59|6RF+Hh^;zeBM9`PM+tHO5bxAzaDSaq z0f|aG$f#86FkWCr&oQLC>@d;{AiyY(AaxA6mm!07NESn;5#%<8EM~~{I%K4PWUU~` zNQTU2$RZswhat}q*Wi2=krH42H^&8Q|FwVqMm5$c1kLOZWB zB%nhMG9;CH!A%VLnIYW~L@G`*fIvf)N07fTL}kce9g-y=gQgLr5)d_QGKc&H7YKF> z;YD7KAjml8GM%|BLXddT9FFrGK`v)VF+$A+qU49a6-Q zl?0i>kgW_^qC+YevW_5EGvoz^JfTA#V8}ZJIiDfz4B4hbUS-G$f_&daB>H`Ze5FGU z3rOCD@YNI8#gIQTq!)rjqT@gyr}GK&PljC2kRdu`AVX#mL<2-kyO~2C!v#5g72}I> z2bO_Z%;onSx{O2Bv`UWiJT3tzL+)a$>q#B*5C}Aw`v}sXArF@e?Ot}N;0cv{W(i2n-wCpTAxX^TAsylc0b#ZiL`}O8BXjGT8EX2tzRzhbD4Hp zc(?Qm9~PszwAd@}m-`HA8pPZeR{5Qvqad)q0L$HdF;1+zrM04dr*^;}NOWX;;4rQC z;a<^p_ygDk;ZUR1WwjJReW(f-cen7i%0!3vx~Nc`!n=Sy$72?CQ#{9GP4^rHLh<|* zZK@$pj*7O;AB@h}sjjTXovE7GU^~Td{L|T8)8PA=4%)Kdv^NVaR1FNk((E_!a(^Hu zV{7fQ`+=`r_9yZCXYos$-PL8Z;x<&sID3By6t{8WmSTw8cyUWn#celnOFTk75Rlal zN)>N$BEkMZvLj=wLtRFTe%+VjtWnw)cCpL*5UEblnv`%;##V2k{XA{!o;D@JzbAk- zcAlmfr)_^lo97iuoxwc-3qx78F13s1_p}XFm(}5c=Xg|QqCXgCTJKkvtwMkn?eYDL z(D|88EN$*r=v`KiP$z9%2LnY#_H>ECrs$XgC_JPIsjzr)0PQV451EU76c((TV=qT8 z@AD#my*Ccfdg$H{!dRwEs)D+UL5uS+!JHPe`Vg$etE1ZJCE|$1K)sVzzG1yO7WoFA z#qLS0nk;c(N!<|DNXy67{D9{CLd|d2oGl?6mL9k3i~^-1>cn=6c?ZRGS{&MxM zr)V|L;dKmCYo9@+x_XsO;y`R<`0koZ`6;i>Gs6Xu(b8WiCx? z2N6nhh`ApUJDH+X6KMHq&7@oEzs;3UowPv+fmcc?bv^tZDn(BE2!ApPK1={3Y z-W8muH)8*cch0vs57vjhH&sWX45sxlEvlzhFhETgD=>c~Dc!M(?VZY0hx+U)JcLjV z&BCGtsd^vV&kr2hTYY>_Q&VEP=OBIyy=(3V-Vvoo)69saZFi6}hd9sSp^87$Pf^i) zxJToEAeG2!#M?-d@`YZ{b0kUQo`7Q9i9{-@p~$$^bK<;;Q0Qi@(SIbtABgj`^+V#J zA$84DK&zf7@EaON8-28Tkp4hdrGIm66ycNnf$q3b`tPe<^EW(ug(R)@&`Cclqn?U) z$0WAbMim&}Dj2x8@+<7;cblEYw~CDKDxMQY)2b^`lpNXzgvY{x5W+nt;^E6ogmgDm+XT^% zkHYbs$T8InMV|VA%L>K?yQJ^?)NmbP);K zVMl@ryv}5*TmzigH+yq|t$FT^w4at+M3=X(y#TFCs>}az9IA>jpdn5X+Q3v=Lyo5X z+L7MmKG-3OMbSG^steV{=D-pt28s@EajDqNf=9$&v3*ssHv3Dwz&(Uq3Shs)R`pp)?5oszd76)%{LFg=ZaY!Ie2 znqD@t%%K6EAlyJx8R+>#I2>#OO60y#=Atb0KhUOCF7%<@OFuUp4;zAq zV2@A+_5a0QyQvL11oozvk~;O8NK#pHF1u#Rk05#Vgl|^}Mq17hSNHkI_;}LxmB=TNxGq5p%Z^$d zOaZxp+!0Xb1_gubpoOKvA2?1Slg$1gujJzl3@^cdZ(@2F_fUvoDLNHOX|OjUi$*x( zMDSA3TC=z#eP*0M6{f}nwU{d&*X0Mk(_4dctH`qc#$nI(SxXa2hkQnA3qB;0STB-G zS|fceLwvekkEzZ|-2`mf-qbb*_I(=;E5`@ilXY>6#ghNvvmdUlX_HgM3}kvqYi z+e&UmI#MF^-AbwUrp&3}&bAJTLEl6dVSiqJHOfoJep!7iXGKymmZQpyvD_b*BXTx& zm)H0Z&$Rw(jR$7hvMSvBKTkZiA3KJybB0C+iZFP{VVa=|Tc}*xw+SbdjK+lHo~vWn zVY%mO)cypp*6yPbkJgCC{lez_QjWo)Mhhoci(5JCer&h!z5jM{iwIi&Y2Ca6=z(%wIL2P$~v_<&leq|?KVv{bhgO?cM z_9rUW>Yu9U*Gn1OTtf**0t~7%Uga^QcOts;|1v?3Wg^>7PW$&KrTzDz{wL>DL^n{g z)K5|*r^XOFJRrYPG|+7xK)GSV=-jkyA-ZP_bA6DNw&KTFam6s#K)v+RH>jwo{+{lb%HWI`8WvS5m^|7jMQrpur!_k7CF|#-&VCii4UM z<1jU`3L)5Nj&ZrDVy{u{qI%X1Q+vpxc^MHsov%GWO{1ui{v*+z#%MLUQ^k}KoQMFo z1;~SxbXy|-Ai!i zzRMGgbys?VJ>BJ=;Dzof^q|ZWw7SQ8PK>FXy>c0K7DxB5TtVGMpWRD8GT8Z^dX_%h zl#Fc&yXY}llYO?Ku{IkF6e8$&q7elhlp~=rl%_2sn5WI?Z%YUz>UUB8ww{npYT|Nj z1&th!?blY+5zpP8Hj}@tmy)q7p%wX~B(y@u|2~J_Nr%Fo4$a4i?(d6)Nr=MYVcc6l0OAj6(EG{~ev4Cs%9 z3boZw(9;!9;n#DxUlxt&(N!a12`!<4rp>Eq#BSQWf=26}!zM}ux`P&k)KiGO^&jr) zNbt*)_ffpgD8=SSDutqvWt`fMrd}3=?<}FPECRta6evae!jb!AEf~*BKgn#!MKii1 za4U^_x7gMZpyESqe0=Ws#JPh9j!)D^CE{iNk5Z9G2E&rB$+fRkfuJ~bcttor*)e2# zU$-%wpSm@_FD70)c6Gyzg_y<_KANQK7+L3Z|DM7ljCUk9Jda;O!}jARbo=U4_B5~qO~^OpABDx9_HfGc zi?JbotKN7-{4dOk_`vCCKi~*X--`aDbLBTqEr1Q_+7b5Wh$%K_^|s0$!@MzzG^^O;+)RE&)}ra8!8x|EZwAD>oZtoIhd_zKNL$hRW)>K6 z=d3ESc$p=k>mR{$4fJ9XzbM0W|% zZ_>*wxRU=4IPcT_9Vrt?W-T}SOL%NRj*^$27oj%q)G#^JSSvJG5MOmoLN`9&AiO2K zqq03%iw6UL@`TM5X&RNUzu)|ESlNK~&_G-H!znKA?<6w4r27W)*TmavRzp5{lFdGTf2v~YjO9XX<0e7 z47M-kUf>vr0(J-zjp>FpNf<|rr~Vf*fAJsH^JbxTs6ZWWE>iPTi_}q;@z=wcAA;Tn z#{8pqNn^e`6U#Xea-dLad_9cbTUgXZ-cgwC4W|r;$l2Sl6aQk@^j4Q`-~4{2_0^eJ z7y}qA0+Ry`-i}%h32emZ&!w$mhA<6+7X!BR4SM6$$-0NCQ`#Aqb|*A(Ak?qQ1|i^V zWQiG$f;Ce4GYhE#@(g+h0L*x7b)XQm2w zgj6I7H25HFcc8MfzrC*TYQRNfV=8heoRTkIx1R>p-GpPo;3EjvM#MP0Gpvcq(w}ix zHUDmht*v5#@GRj_2dZ;pYK~TR5zZ$TD!qL~3|MyhEKCL)8Ug@ZJSO6Q0Xb;XcyfGCANj0v^zOAm) zE6_&5H3R0X9Jx34otH37OMI}P8+t-VXdx z7>uW6(`mjZI{R*bPgnSE5RDBv2COub@3%gh0ym2WG2=k@33Q)pnA_c{4q-QZODVq; zD0H^j<*l$_1isv6iBOdS}ntxz3`6+aw#ffrYPSd4LgbTHufeQvAS`ltRf(O$j=PBWL z*f$eeS>0KwXs@O!>#QHv=oeE%tgqezT4 z24HXuPd^yOBm4fC>Vz#+Q;M6VSCb&7nj1h1`O0#K;pl>qxXs>HmOJu1Q_Z!YQ2<=V zJucfG)3VEP>(IvcE%Z*ejP%B=fp>VO~bs4ENFs`n^wdiR14B)LU)mN zNYSzjy@}ZcUM0SOy2;NVrOVc6T0vv6Lfa10vUflz8YYF27le3&@10sfOo7+Yl>^ry zaG1BS2PPolN_{Qvyu-tITMZ4<$wF?5L4ma$saT!;rG3b)nHF~?Im5Cl-icqp;b(H- zL*UT0@aIF9EeTHhwDE~9+t~QZ7;Q_$8#TEXq`7kxfuScc2)CjqLTvDK+2ScS3@V%J z{|%AT-<5yT+io1tt;0EH@e{hQLFkmbCtgH zQnaXHxykYFB+MGXu`fR1Dt#+La50HV_s+ijU<+6}mlN-;nFr|Ox=4EL0h;%t2^r`4 zT4N!6?l}khU=3^EsuN!>gwJWUsM!Heb)Mrx=5~2~2;zhim4>L-VbG&kIadrkj<4^^ z>rolbnO?`$@tf3V-}+j4?bk!E`~}~-oYg*M^SlXz%?@u#*x{Y@t9tj73LM#~cR!#` zc~~(y;phvls{ZOwD<4;#n;h!IXVsz?9O{%NxQ%*Uow$yM?vJB;$0-*zoA5?3thB>c zFx5PXJ8dUAgQ`-7#c0NwZsP|7Y3Wi9*0qh8R2~-bz0ViMM04 zKQ{8&;jO;F{({}-(x$8iZxoiUP9wDeV1nEmbs2ImY3z-ExJYEFzp)4MT`{)OTxk>K zzt5NeeRqAPc|D99$~6D>#Ek6@<8BtP(Ksp@684^AzWiOGX}>=f+GHU~A3LF~sPV~; zXf9O#rmoNe2`Q6kd>axbE&XimeuxX{dK}wD@e%YkwjS4``s>AHAw*>fe=vhQ+(s7L=tgD_r2fiB0>k9MWkvn z%7T3TGWkZQP^y0i1lWQ6WgRsk+eyIK;Kxr(HO6M_FzzAtBD-CviPc??KmPU4qTV16 zNW4afE*OX^(EC92oSDdfzh9^Tg#}3y5|Spe{U~@;Q&$#V>J@p3e4xUg-Du2D_TFzE zmir^d`F`B{8)H!LDI7JW+OYKK9V?*M1b!ct!t6$Rcp0=3-~Z-EZ^Ik0G62EbG(R3} zg(}U7Lq7e5xcRrEw9reG?Cr);uu~sNava(G1PWRVH3ZpB@T`TD8=ijqgHis*1gie1 zZ~_mdY{C2EOGa%%!StEw{n;%fA)eqRtIXxEzP_2#=HG^w;Qe^C4Vt9ty>;=!15my3 z5|Kh9UTpsH;9G29AEUeex!~@B!kuA zH|EEqzcCK4PC)v7P>KV3e;|Bm zK4hY3{%#~df}d0m3CvGs-2beI8xk-$s z8zz_XBVSyH82O1L$9-=muJ$)}g9t(zDaTflXjMyX*r&j8@DH;ynPlg-N(kH^snBKbbNwF#R+VM>ZPH5$G3TUTBq% zJG6<<7HUP!+TBlTl`lKA($}%Nt4Z-zr{23~c?foagWS*>gAU`j+QfDKmIR|;D|$ik zG}^;{e2B3d_v?m=uu`Tx3`3<5wvnx9lWEx$tPn7noe!WTc>6ok5?FLa=aY3es5e`8 zsjz)%^%e|;(+xZtYyKPiEO++*$L+I!Nc(IHQb+b#zOc{!g}cu7S&XpHJT2rKRG4VN zv?N?L`=wXfw}ZqP>LYolUey5id~Bk%WnMEtzP!!bDq&XKbRyu!)9ucec`Q zAzs=CIOQXBf#Ux-`hS)h_2vJw)c$9w{m)Wc^*>APf0o++EVch1T599ZVySsd|AnQd zf8R=_*>F3~9l?hzby5KT_(rwOJqBmWVU6uBoVOC7S#EXG{=oG|u#Bq(pFXalFCx}g z#=D%80+)V)&oVg61V?izwx-Gq{gGo_z=TIKIB{bv%@nE_m4s%IgJ_&U<-oTJ%%JwB zsq17%?zq15um=Q#%)}}=yAFrVg{rC3^!e`ye;(m66%Ra?76`m{Q&NoQr}&Bk{!p}H zyCDV(1;p#{HJ}6&k#_w{NF>d)GY6@5c}n&h@Y4n(_dTTARBeZGD^l($X+a<*e?O8R zxGBizA!L#9D-utK7X$|3t8z!;P1Urp^W@ZZmNs8YtaEv9#fO7voU?_bq)<}KA}QVI zp|%L045G8c^oef0V6`JK4qwYKyNfl-7_jUOyZ`|(kyuMBxLk0|?3sQUwqPv63_ko| z=UbZd7XW~}{CF*YfSOO=NZb*Da{`Nyg`6esN&jBZlfQ7BnhZze>jrJf>5i#K`U=|< zvf>OVUH9ce_Yv>f_?|jmYCS+&ZXNyjrX9ivHwg17z+ozGdsXE{Foz-{&{Og7*eCTxHJd^5d zd?xgS<4w!3wGcxI1IAY6IBYG!fkp1{nGbg+hNV9}^UO2dOe^9+dt)YJ3fJR{r=|JF zAOwbsF)rgTPB`~Ae(BVjv8Q691Ik)Z;4Lz1W8n#ZFFs(JFtbZ#snIcH2(4Pcsea8B z-{Hqp{X8BFY;<}HqoOFAyE<%1rWKD0&T^hU)nRL@c+q>!!w&6Z|K~=<|4B5CF1rQ; zaQMBSN}v4V@SQ>bd^i(PwYQsxvxbZf| zo#>&|I!qQV|7RjqhY5!U_0aO$i8O2D+qF^O2RzLId{z}tak5`rkvgLbYEQciGUK{3 zKZ@9-JG9wf@TY%hv_QkTn0xu;M89?dQ@Ge&L7${7fdirizAheepJ#wm_iN~*EIzn? zQ84gJ1xpmbY!J?5+*|~`FUE)6ZBwulA-qM2in*3PWFMlhWeez23aOybID@uVHKi6{ z)fugma)oKdpvq58HHYvu5$wyc(;@gNJ~+$z_ef?HBBK~vPamf1-x~F`EhyMH-Nbvx z0ME5_SeDnZ1Pi$nn*y=4dbt^2|5E82K2{GTP~XrkoMM5%RO~&|7l`IZ93}!Gtew`W z=yiv(^ptOVCHS^CXmaG+-Xw)iJUc@5!wyjbf6!|{D>7EpfMyU{r2#uFEcm?KEqyLk zfR_=t^jFt?nO#jQXs3_1b+)gsEdPJTJ*G-x92%6DO{W#%kdbVkBmLG)SE2C-vQaI2gvoO?c;nE4 zsv!nZU+~SZ;ye2ASDlUr1Dl=RTVt{CY2Q55mvqyLL?KDKf>UO2LKoJgc>I0U`~|jm zD;~$Ut^zE_!WYb#3J*TRI<(Kc*Hlp@qPisN5stTbbu!f>ad?3I48K{_BbTf|qvC6h zVgnPx(3sE}WkU+nakvsnN-E{X0I>vbctDLo_j=ubUxke7gt$~?CB6?Q)H-@t6m2-F zP=e~{ff|I4cQ}@M_ArBEyP}Q$J}~qRszdY`RmfPV&WMXA32Y7};4oseEw;4uzuc=4s zu;1y4LhltVIAP5@rajPx^IquCKa*!>jG<7S-(ILLIqpy|4{voEKgCK>tXbF+W1G96 z;-%n-j_O&6MMs!b+ZRj8d_;WNMqMpAQ(e_gTGOMi->^2@Eq2uK0!_h&rW0Cf0ah1j zM+%HL#A8vHX3Rn*>X&DUUDKQQ`6{oWgy1XmmUfdr*8E(Q0du>GZHxP&_Hg$o+-{^T z(czS>*W+|I?frI#$)9!v``4Vt_no%)E8jzppE*l;jn?j<@?@es(DKo6%45KzZ|J`? z1Ft%8J%j;XMz6VIiG0L5n`nT82}?lTf(Pa1@`kK;WbUJYh2o*hnjZ z!zuqFv>H433p5>SYzAG>yU6t#aW0Pq2fsm!1N6_$o!U7%gtXJT+3bTwT3ewOtl4d< z`2lItVxu4%EUSCkNDVFM&(zqjo{2J)y0n-qtS&5^6ElZ2KaF(PI;A-ti>+EJ(i2RO&j~+KJZc(Y))8+M=mX=5|8Kv(Gr)IcQfch z?P#I)wafE0RssB4k?qRu=l&M^Y+);hTMM?(EQoZTAIo@+(g5!?sAhd^jNzs1G#BNnlL z0wR(~?Yq;H`QpS#GM@$mB$H1o*JA&STjYHrC$cpTo$zFrH!lQH3cWesJfu@b5tcenwS-G&qLj4Pg-A6cX5HcoL4ydOFG=7J*Pvvs0_! zqGf-lulc0DAQjyZ)*2ON#*fD^Vd)n%CZJV*-)y3E&;+-dQau4F-(A@&H)T6k=~pIX zAEfZ$13*Bj?pV){(UpskZFND)Y@hr0&9Q3%BnE|8$5IX=+^X#-VgY?95(CTX&1)6y4Omat$E3TbJfU<)AxtXOn`2)&BlwJut(py5R=lxnPq zsCbQBP_FWWSYAW~?t;01P&8shRKyjcw*`fj8v$Ri|L>W3cJn;j_WJp=`JBu%XJ*d4 zpP4yxW=7{vKiYE~L0)VsOBAJ-DESye`TKxA$oKVoY`(jTzV}TY&?}6+@``c|!6 zL%hIh4wzGy7gz47hv}hotGZi1vf6btpcU|$#Jl%CPK6XFI>x-+fDQ=Zbt` z-Sz947aZ{z?-gqb-?{fawevewz752@LH;bEHl7My)X@nQCT3mzUU zew#8fx^r4Kf7#dk`03B=d-VqnlOS~39)^^@#AGIcS~NZ$99^Rw%XBJL^3r9X(II)= zzEQsK$8hJ&*7}o|KBKX~8Xw>H)Qfvxq&IBp-Aq3EdC&P>E=AUn>#tguSaVfB1P7vY zQbTYB3UVi(&ph%KyLSK0y87FHxo*xc5M2aa`q6bupDofyHSNVc#e+-4utH;)Z4YM5 zg?=WXajd&)U9dFnZrHxpJXZ&o{tInufJ31M4Mrrv+lss*(>~_EV z*Q2)8uPUh2?c;m4;Z+r^S?w{?X?D~X-~D|5ahkE-(0jY_zj1?rO*qGLBfAD)7&gN0Qql4KwJh-~<{B_4NCp{u}+0g@QQML}>TMO5|;ONua zc=7#zOUbLjza>v4JlUL;Rfp6cWVc&vNPAlee--4q&-}6e}+KLiquG`L3_74fFB+YyG zJXXppU*GS$@i)u9gaW0i4}Mb5NV0LqVe@xw(5D;E;eoYtQ19P}4QyJ1Gc-oR#jNA6LiFFU=6YIW5*7yd{TUs`9Q4+7>o30=_nh^)|KAU(YF(r0Jz5ZD>UUy2 z;RjS6xKZ0^8gbii3H4(8I_@SQg<*|v2cInMuzpp8ZLfUQgs!~s>uMvjS5;mF=8?+P zAZh}Vd!+JMzDSdLesH~wYBS&WyWg23kWsv@S=te~jEddY+=PX9q~G?;zI&AdO3C}0 zzlM$BVgx$H656+*kz%*ac;AA55UBY5g6I1I&-cBa@4G$UmqWZ5_5-EwQU@^~`xZ=l zV#|BJpYeP@?fIVad{275cYD4c^?XlwzH^@M`#j(Gc)suSe2;s+Z}oiN;`zSG^F3Dj zF3Mu5(( z9awq(hu)vRn8o!M6t{iDz@86q*!ilp$rr01S*z<4*}j%luD2tb_T!}=ouz+00iZvL zan+fb?Q1i$^cA;#LuOB%p}#`un{K>)t(o%_yMfzGz4Y}As+<1ZmVUv|Pj6qFo~5t2 z?Hkg2Ze!hi)!KDRe;p{&zwV!;KQT-H8Um31Jcd0ry8V+QeA`%BDJ6B;zC&?))|!ZV zHKJbZMASPQkvILpS^7`o5Bj4RSDm?N``Sgb=~vwL4U6`?L|eRSZA!_eKtVP&OSaUB zz4Y5=>EA;D=#ODsb!Pwewf(d76}Npu|DMkn`s1T`kO&PfAc?~zhajDqXd9{4&$mbw{Bm%b++Ucw|&FbJwIZ5 z>MC==)Qh1^&0KYPqNf1^kX(>+npnRc-ab;uethbAKcELFXhER9{(HqnFi@g+lx+t z!I&fI_qLJ!J$b!wV}B-KNO09vKYrHjTkvm`j`H84{k>)Ov&-zKl-b`}W?xcfZ!fcl zjJ=qTqDlPPmB`7uz5N$YGqtex%N|_BvVZT66`pmAhM9G5`$>iD-N2PlMN-C`bzfoJ z4-kHU`1TGx@P-M9f3>f>?7@usf8)sg>ACK={8ZiFa!~jDPv^+q`wt#orf~o2!QB(; ze(Ay8`_=uNgS)5IedWR3N7Q}p!QIEy{f*TA`P*pQ%PDK!_Tt*#T4rBTW^XUEhsx}K zT~nO*cq_12ANv;k(zwssANxQ3Yx|K8nfBw>muWu-Y9Fqzk+{-?<$7B^38?6xEOxTn+tzrF?`_7h5z%?V*da4&E>xs{>nEO{^DZzHE%Bbk;U+V zHy8fTON#ktcK&ASzZm|?Hy8fmV)!+0F8q>h3j@)y+Zlj#45`eX6GL} zc9@lfor2tqvv&$|4q874oPt14gY8ZI-}KHbqZc_Cy@RBuxh(t>=;$0UJqHQ@Gw$p4 z=4Z$M&+uO;3%}uD;Ta#?@$?1cRc3zU+JEV_@4e}+(s-lpd#^3pcU-OW_Pu(+uvXkb z@>5xsp8HV&I$(Lsrsr&5{Jq8aYq`|Uda_4!}pci)?G?FT8(yN>hc=ly6U9k4tP68_?{@XHPs zzBK-^&Us<`C-c;`k(TXPkR^WdX)vsG_h8iDyc0N_yOsX@e09$O@?)6Dj>t!Uq;kOTA8mwYF^wL+vG);j;NcvW;Y8NrSGW04l6tQV zaExLIKn;wocxImy4@o==4A)3J6_j{ibG~V^As26}ls0FPG-RUb`XpBjJTzZwi0l6Q z=F2aDryjQEt9(cApD#x}V$EfIp9EZoUCs9ZS>RRdYJM8H4mj&kYu?58gTUR`)%-Q^ z8qo4XYxX=aUseDg#;)eo#CII#Q`q%a(^@61sfe_0Y07C@HJ$J``PF~Tml@zy{HfWX z`8h9^Ys@sHqi%lG-!ZxQ@=oBm$1J^u&Y*M-N2D_qmd?Sp$(CF!Q>6JN{M`p+ihipq zq^hqXS#+;@aK5|^xY2d5;e>i%wJkf1>k!g*HZY01nocAjkyMRD`l<$;XoW;y!E6gj z+b}RxBW=`2TVHIlF&E7^bHg$>TPt&Mn~U3A+~)Sh^R1K3Ij6EhDmirRxasL3u93ie z`7H2sO|SH*d#cKh!%wL1f=l1;HHo?tncWe0r-T&h+QFVB_1sE5H_fjb3>AX; zs>wjEg4Mzr+DigDN-KS8k8A^?zanjc3JGNWI7jQ49TuAw(lJ!+OH1OU9!Ub;wD@qu zkvP6b)&biz4&7uYFFu@Ge_osu(lV)*P+t{!rYt8M>ZVf0mh{LJaO^Wmi@KU30(Hwm zcbIa=kE8-+{-_7_SM-Cs(g-i@kzPXwXRo~@C>{83!han!E6e@Y1*DERE6dVj%4(i1 z*MZ+Bn_p9(>G=E*Z73$OUC}~aK0F!91vAy@ssU}6G*8nmC)Xt81)$U} zQzAYb{`war2TU5 znyX7j$cWM#{c(rXPj*OF>1n&k&Y>+-`0!4+Qo^*QFzqayv*F~z4ygj}JQe;19sN!K zdz21#{XPYlQoHhrsT!%DsFx7^zH%tych`EJ4*F>*jxs2ZXZ+rFc^pV7uWF-=X2|z+ ztwg875}t@iaJWtasV4FIb2{co$8)Wj7V_+Lg`{h^R=TK*u2hY5^|ep7Y33gp$U{A{AhxchMA$rmnMC1LUy%r=s@2JyxbZx2ZAuIkCkbilOFb(Fo9 z|5$yad;>6i54(Qf1#HrEDeofP%Flgx%`<$yJZvt~D0Ax?Ww*%_ykNTC*f)W@$IYj@ zm+YoK%ls&gy7$s@8iLZ0ib}(lNTGJJCZ~PONrWXa+$@QqCP}0kC9$is(4M#R0NY2Y z3&V3oqQ7pC(}AJi+OpQ~3xQ+RZsH3Y_Y%(VMaIP;+KVTwQ(GyutE=;slXKD))V-FU zJk=n_0ozKnYJ51SDJV_QX-b8psjq%AlB-QS?ICH0Z?x}hDa7)Plk~GpBpn`b=7nTl zs#WIg>MC^RZF_4@#|E56cpG_bBut~zD76`lo3SJdP&boKgX{s!xNQ0+X)nVYzCqYx zx(nZlO5d)ik1zRfhL<*(-|q${)UNeFn)k!O*Toag)Ghp*y0zt)B@WtRJMFZc z@a=szuE||>61<~Mj;)68Gz6qU=Osgwl?U&ja#7n?oz%2MSJcUFVC(ZXZTkHWU|8+i z4`wJ+#y%h3wBJf!SZ7s@teUElzHCI6G0zH~XXh#!M}HzB?*z>J!OgD^r|EcqSQY}C zriu5Ud<(we^+&jo_lD&wz(3=6K7ShDX5s_>X?z}kPRkr=d5#(S0QIeN*})3Rkp517 z``=S5mjc&o`b{4FIHx5bErVuuKVar!wBh>UIq(^+e;tQKGXDt4b-;?3-LluQCRO3b z<1hcU8d*J7BZ1$!aZx{BoTK$V7|DbOYLm{|T3I_4kmN*27SLuAw4v(Nv;BDB3pJ7k z3?FpoY}y`uc;cMAx<+0GMn6ZpQh&5h)2_UD{K=Iy(gI9q+OX<(5*RP0725mZXv5xc zrmfR%OMGk#G=U9NV?kIB6`+ad-NC=p46S-IoNAKb)lUhoo7L zQRG%u!JLP7=b889oEF+9<6ujl+y7hm9;z+kN;6oS-a4Ht`O@3aM1BUVlCR&x+WfUD zF&bQtBM)evZ@ybF_1EdzP5a}XwZ8*5{DN}h<(qhxae(#Mm={l&LiK#<3(l8I_7?rs zn118K<8Nfne0c~c_vghss{^u{zNj(>=j4E#oHE}TXQp0en0vmQ4a@(~r!JYQlH(ay zj+(BN>hrW^h%|Hs&Ac-{q-%>B<*gabue@&a+fRNq-vh3hcFl}yj=1KiYmT|*IOgad z=9#dsW9l#RM{7@DI@phN?dvhAMj3YPAH$r3{qwH;P3^@AUuUDrLPzWn|gdV8{3 zwC}N2+WaAv((JriVOM0fuPEM7V$PG?&?COL-5ARp`g#* z<&P>cVT>j%-%H5nfwYFjuHQEU>($;IkmhOTO%qW+UU^y;p5_Vb&_0J|B68YPy`0GW zd#=+YE$L=>FfD`rrSsBEYeGH)l#i)iyu%uLKKye2mhQsbe8*%w$NCF8PH&C$-k2zK z=ZXyUYi?ywHbpd7%$SxPd3zWwpT|!Ne(Ld4l!1Bu7#U(?O`$qt$HnpM+GIEI_f@XkkG|l;iOPC_ zi3Z|~A`hyQu?Jh^H$d_wTX*Glb^FjmEz+s(%4-Q9A#5dKeQsKx(DjBlW6|Z+h06S# zOmU4cdRB{k3&`s{%#=+?yf~*TEM2sVF5>7Ks%M>CCtW-3D$Lss3ZpTp`&?|lcHqNP z#L1T$C`5TIbz!d~QxKz!+O4^bs@WkNmAcz6F^1B6Rfo5ujJoT~Gg+ zsAPU==a4=(lc#`q!<)H4nlUU<%er!&Bp4gxh1PuYq?KFO!=t@<8{69;4*=zD+>5ts zuNJfRvhv3;^2b{EJ3M}iD+^_v+4XFLOqR+zCKPO22U$a^JoCmP&!O!+ z*&xpX(Slo7Lw=kIuY82DNco6!K~OHpR?9h*V+fvM)>A!U=^3t<9^@`P%;kCp=N3Bh z@yXVlE3@cskhcP6ovCG)Vm|G~QTDku>LK1>+qH6C+O-d-;mUD@8;>@~-vHAe+;Bde z8_tLG@S4OcQ8^AMuLm#QSygM+W-E|`AD*q1MUN*9lX1*z`)rB!h zQb8Gcy-pqgHorogOG2^)KMQc{!Yzc~O8k2L#GB3fFQ;=qxRfcUQP$n}0yoso@-{Ed z^87lP-{;(*a$dJsOZG{&bDt#mBov69i9}Yjsoi*}yz$;Jj;WVzRYGgBz z{4-_MSS5`U%#*b3zze-@4u=?O`jG4m*m+X)iW)f^NNYHgM%K_CoR#Y#(@WKqsRHd~(MlPCiT9`@0`c`h5Pxgn0s7LDOQ|aLxX>GWt#( zeTqI^oKM^JJC9VKNE(3LX)b@F-*|C$omwX?JKc5at}59@zYV2oO&vI>z6V!ZUYEF| z8eUf|_kFv_XUU@%r~F}Bc`f{5qESY_RV{PBT`hT&e=*<7vF}#9?la>rh(GmH!fSq^ z;SK9(Ti#V$sL2G=)k);xItR_xBMYrV78*g05mxzf&g2<+dg7*P`2=v$>ssz~t(&Xm zcA#JFN`EH2KW;i=!l>UN^{45BR&XfhqvymbCH9=ze@fRfmO5S4j2CUv<;29!=51NY z=c}a&F!S$_D?4K>^WjNbzPnoL64g>LX{BwZ0)CvPw+!b*=SXz5?tig9BW#`1BGtLd zOdzd2+FheT+sZRq4!CExQQa3+v)9}&t$qp!}5j z3=i5A=~_2kln1b;)!zUnNt6sGB_^Yoy1pI9q?gGgrmoQon3T9gpO`PYCQo8A!pH#T z__$rq{~VKEDQkDlGj2OE)$end8n*9_d4|^Im`eLeOpR;aomOtJ1yj><7pDFy?y_{_ zmsH6msgFBt&L&(cL zHF?%hX)SL#yGJ$wfxo%ssB1G1&S?%xbGBBR;it{;>E^)(`UCuPeUID^c-LNDTzqjY zZQv}@wElo{u>lHL>EvHdur^4@mBsks5nfyzIeGPsR>rLP>L-kbi~c4di+~9Yr*n@f zckNDnd)?eIDaVS;taGAIBxD2#{+)1I%Y^gcv|p6roJQu1Lt*xgYNc_|?hrd2A?aXE z*g>1>7;G&R*ES|kcO~SpyNSodA?7>q-Gp4EcAa<4z|+}RRzD@Ykqzycws5sLMgyKF8Y8xyg=(h`Ds@5xT@i)Rq#~y*4v{d%}A0c5cHygDZpAIQ#E!m*EH6B_lQs`n?6%q;^gF zRM5ElaP&iOI44piMn|rZ{dt!^k9?_JD!$wnPSUYyfh#n=&+<}Es6)f+yX`)gc&4UA|Sv`=i-zFi|;ydA@l z%cfZG4O+Ra{5CEp0AmA$BYyq92$)bhTFzT5_Q!2zWc7qI=^?%l?HE2|`ugP4ak=vs zaS2zrbg~uV#TnTi?YfqBt@9&|dlDJvi9ceClxh<$RedrMGSrqQ{= zJ%YR0@ASAkQP!Uo;ewG`CoTP4vQ3@`yz4g~PG=I#&5QH@+`=}w_>eZ)W6~qyvul6H zZ)nK!T(6t$`;>E^*>%im-sI+1ITPreL*8PnxtTlHGmkKOLLRqx9J$~_#a%f&_vk0M zvoa(rr)p$H3i;_!2))l@o7OfAFvg6xw#pQ6rN&|QDO67B$GdY1f-m`S)Xn%Gk%hj5EVQzi9_rqMvwNVm?17@QonkN4)z{W~9e=Sw z?gR1~7Q22w4(u+{f*0=&u>=DCdZv z96|p!drGOCjEW~kXE~vQ#NeeOE{ftq?*MWF5ZrQ)I(;zm)3cd z@>#Q{IUZ^HJQ4bx|*IR{ZBN=FM(+{4L-ZZSLP?apoTemo3IL= zbk};xV!Y!;y6~%!#~bA9fYAj4@3U*(%KX@}g})m8F&)oqB=g@5aw~ApUbj5TaXKbb zuF)T$4+ePU@ID;zPu|!d{r`c^m`9J;hto8r;K4qB@SPczF(MlpZIFeZBaWc0E1zA* zBm7mC`7=6ntOL-`$QvCxcZ^Pdra?Xdc;)UsoGG6w@#37f1m!K+8tH@IAu}_xd!xfV zy_miaUz>3G+Aw@=Xt|`1Ymm=r$(oiN-%pQGQ?STl~G5WWx|Xmt-Zjk3!NgrLRR{xsC*nSb4j-ycyaF8 z0W%xiBOb(iWPL7d0a9m{G;KBB1CL0>$#2Xj4;fXrwhF0v#pVH)Yj|1u8upHXoTdq! ze*XZtRqfg~r&ws;ifgYqh8(vtSN?NP3*<_!qQ*7VMnj7m&X9J$04-0 z2|Ks-;WfYDb-&Atw{ydid?yoca?D>eR&7+2?&X*(#M$m(PX_py4)h$n2%vcXT z0$%kyOL%mpYrqv{YwFk3$KiGIL?3%Unl6)(O@4UZ8-k)ufvxd-REshsS z@*QWq99qP9xe%QT&H$7&f^cg_elxU?w%UvCMMA73!^WBTeMGhbhen7~`|H#)V_&!@ zB4Ne#1*LBWb9w>$M%u@hiZ@KW3!Qamp?KvKdic_gt8L_+c^7%Na>ZULmn*7Y%h#G@ zvMVAL-4VG(<6VHR;S}eA(D`X2zfoijsvG9@WBT)xR=!i{jL0E#BeF-sE<`VL20a(n z{hd?Dujt!R*|^Ge57D#lJv* zs~8TtUYuETUOuZwG4eCcTRl}PcdCEg4`!_xqU>~^$LnU~R5z-ojxEpVWUb_ZKWI4J ze<6K#?+Uq}$IZldqn%S}`l6523J*L=XVfh-_>ULou8A`mk8@f`PNSaJLc5=I9YdOE zOYj>Vr_r^1uvUHuT&c9Q{=n(F&4+&@Aa8)HEc5S#kjdOQ$IQu`7`*IqS2r|g6Ke*<pEL%L(st@k91(jI*vBtHg{4W!@bg0PR4 zwR>z{HzU93Lq8{Pwfk-UW77ZcA-MwBs^OvMvn#L3`u!MP{h=0kDf;@XW9)ic+x=VM z-76%sIwbc3yIp!ddz8M5zhId^r%iP%k2X4%nuf{Bki4%dBx@RNn)LgdK+?7A_X|L$ z+O_Pc|NU_EO(fZ4A$Z3X_~ z#i<|k@;3mRnrxZr_qo72wQIYWW^ZqTHcTJzxhcIN_VhgAOMAuiAg7fz$Z(wewMi@c zqpjpg^Jv=2NkO?2xJBcL1td0=qrZ{T5ylNf|lCWKr*Wd==pUBO6qH4j*Ls~AFzzMXi(z?j=nUq$r=t6In$%C6F15ph$fP%lmsWf(>v3mD0+fl)9nw^* zmd*IztL4@=s^t%EeENOTzG|5)#+Mp2?j@YcBWBjoKTf89oZ<@~@1g#jw~2c))XZIz zZanfRdegxAW}7elegRmacFosxvvK#~hLF#A!rAjjEz zyMDh4Y*o7nU%Nk!w&)FK_TiaNaC+Cw=FL9EmO#?rQ*~0eC6uX22M5eKM|cpr@);{X zL3T3aKku$-n0#)Yy#M)m5^g08OGC1BA}aHl8+9dCir~`Q^PL$zO^sGRQp>oAuk(U``0mPx^k~;ufEUSTg6oW8!;J8q@tEp9>Dr%k?O%Jyx_=#0-Pb>C?Wba@{gKN38ofnCkw}53PLyQ|%ic zn`icZw_vJ$!QbDS{xEIhVwwEH zJbCiEd9o-kkL4a0AD>OO|9<)DQh!B4b*p7a8NcH76w?dp~S3YreX%k>OH zoe5LIYhNs*W#*HY+xcX?k2!w!5a}IWNLybZy{z3z+6!*J^W?cPho0ZsxKZI z;i{`1$(#J+YpABehf_XXhKtXylm-sC6wl6Ry(Ocz-ZFa<@-bjjhb>S29s$-FJMom?`P8&0GTIcv0Ii9iODCYf#4b{pL z_;%Yvw)`ir>z0WxcKgg1xvS+F^bo`rQj?JA0 z%9DI<^Q&Y&ZZX_~Wp3siczTH29p31nUs1M|1W8Z0&b$7D=+e2J>?+|Vw z+*Cg9b#rPerDpZ4j$k}lOJBWNx}7f{aDJU53PoIV)0V1UXEW_TM*DA+&Rw(ZU)$IK z^v#|RVa(YX_HeqLrD8^eWR$aN0p?cROEQQ&;OHtj8s1yH2c$>OS->M@+Rs-fS2f6= zfoVh7+wDm$$_o&d{)jJDD zJb1g7t!Q90%}Q5n#%8W-c17iaZ*O1cmxzWzI+@(#eecj&_zI_znA z{5dteIB*_i&Kb@|>ebw7@uZdJYgwnYtj(Pn_2>fBNz)d4T3Pd#JSHlq0IzErbsp@F z>t4L+6Y%}wnfd%p_0oMaymA3yx;URUgMKvne=+p`qMU&XXH}oENdiN0@%oLotK1?c z0r;q*(EeB+W22ko(=>g2CL zR(XFjdWlnv8QNAnc*7%@Lzul*SHGaYf%S1?olI&t=;-$b;6AlSk#|qsMjOA~k2mwO zyTu#UuG7bLk1kWx@kql`m1ZJRC!=+BvT?DEL%+v?HLhL1e*qk-cBMUWmvJxQis?w* zVd#{?s^9FLKKk+bj4RIVqCD5|D>n@Tp*s0NZJpfd#;M=`3yc-x9R7}R_u;a;#2YTY zkaOjvq1m}jss>zHgiAkNRVS;esoNzskNW*nK-8}39KPGQ`*5kd(BGL27hleqr0jP& zt9_f)6~cKVjVp^M$=b2bsgqmWc=WpkxYo7n_lRy9m@G0 zL#q_t)a!S}8%Mks-A!kgSjo4|bH>ec@`Z?e8JI4{H9Rg}oZXxL4zj&lrMNdeKv;{v zeSdtf?sJbb=G;yl-dft{)-c+R2GE~7W& zkNd*fHu8vQOVu`#V0voz*dHbCM~Hi(6gOAWasEMh%=7S==io8Fg~vQQ%VX3%$vQOq zxO5LcM!)?bbB~85>eidm*0e`|7?BjP=1`k<{r)AeNbROh7CO=4Vo}z{FvWmrk5{O_Q_OVVtq~sBzZANVF^;Gwf0 z4m#d&cI-I8X?BitierbS)AE+b;VqBBTYd;{fp=sqpEZ2xkZSn%gv`!(tefFWhF|W2 zXMG2rbz6yN702D=zmtEUm~Q=k3Ai@t$$vRc^AFA&F8!5=JOr#boN(|m{XYE$@?WGg zaj3H&F16Gt510R9L{7ebmX3Zu4fHBq!@m!8_QOHP8_teL3mxxxlyK{N^79cn{Mv}z z=cZG?!(Twx$F=MCHNdr{_>OY+!)1?jeBm@*)5{$%?f62@95{zLNQ}~|-(cn$ZW_{` zi^wjZv(J{5ey`feeU@rBZEmr%A1=GZ@rJW)WhrfCVX3VY^O(6TBG&-4YmnTzqaiHlBxH;DCO;Zurfg!#MOV*RPR>K8#H13FLCS**AE+ z%w3G%TkyY4(_za0aX(JeHubR7LL&eTFMZ2b9+AqVJHEPQls}m?oWj0P%GR-d-wphs z7zg#~!^O~jnPGgNK7{db5#!-v#>2xMFC81#(h?8T`i?K6k&go2Gc;bDqjD_vSM2@I=zh5OKWC1P$X9{gnopyfKh0J&^x)bQyc=QC7e+YYB#{k~+_;7ehFJ(Lg`j2$$ zExXuyl2ib?ipL~QnxdEeNqW6=KZ*%_<>q~Rq&FhZ$ zflOHL0=(yLeK`Ci&gCvv;2F)I+3U2r>|VTWPZ8P^_vj2-DW2B*=sUu4C*ZxG#*1_2 z>b>l&fk@w6WO=i<+aNPBci(X54f6aR&T1l>O!({7xII}ms%bu|t zdw}~M|Ety`%SI2-gL5vamP;tdj|_2t&W&~-)V62#e2^2FxbJnvGTe=T?8jLa;*Ltyx!Iowp|me^fpte0%LOLv!P$Hnd16}gHF7O7Z@??( z_u=r9*6(INBT%>JhC$qku%tV~-eoEen)X9Z<(bwp*> z_UuZU`z}ri%PG@g>1U02By#)clcZ_V-pFTV?(ah8{%(<}G~@TV>}CFoCc3&OI1a6N=;BwUzqLBa*-J6?Zw{`wx>^DyfnO>jdmI?m2pq+F}q z+z;!P-zfP{pK8d$oqFbBgPvJE=gchM)w5i753`4QEPNm#-`|pu zf&O9|**oQ|j_zXxhgy8@=H38@J^V?t@13-|BD4<1T7jPk^Gi7+At@lI^q{ZbR{=Mv zUB`l{DnCxo))T(Y@FRbCr>;`!&NEuk1C>egr0*XwH!8ow*u2w_<=il9hC1eF?p;r5 zjX!sFmwft~E?KmS_|1NB5T4oK!#nVSw#!SW2DlZOxE9vR!c>PWWbA7%wB=hS-S>#p z&7`A2;#>T86Fc()G7tTWsx6fDrh3`Ly%$ODy;#b<7l&}~MHBnWP3&Qtv&|XkoKr97 z{4+mGg0f^Qx-^Wr^{G0k-{syTu)Irt3V7$y;=$QDi+P8_jIZN|bjdA?&~sXC>qWoo zmv+gqYS(&U&g;W{Fd!eKEX^3<3G3X>ol#l#9##{I%6`@C-M8A_*c%^a@yfg} zdQYdMfX)+azI=A?da}%~)kik>?5d76Wdz+R+TXC%c}m{gDQ5v$m#)vQbnzR)ukKfR z-8^SVaw_{beT4EdeSFNN^0^u6w8UhgS;)5f=V z%IiRCjV%NHUV05>qIR7ZPD3XfGJZ<9mo~KQNP7EM!arj zY@uKCK0{8!4ZN>IE&~c0&de*h!`*{3cWH9Jj_v~)-Mg%wiQv8py}N<=qSDBp&@Qh7 z=1zVs8+V=R#XC#p(C5&PI}bYMjW6^Xsf#x1qHWN9<4fy_bbIbL&p2+HG@h|9w#jWb zwfXLh@!{~3#Lp1my;sJIv;2Ct?OVMg&TntAdPk1RmEeaRTkH*MrmaoT)~E+_e<<_A z!tyrhKCDgBZ?kQ~XV-hi@!x9d4ZX?(_#fHbDjS|?m5WX!e2n$e6zwKUzfIMO*UdSy zT8^a6a{pR^QwuqjKO22%>QB%64Scm#HY-eXuaIZ0;=@xWBOR@BAFxN`)0qkV--k10 z?8o`e_EDdDw$Gj;MX!-_0C99U{PH3C`nFc?;b`L?j<_TyTjV4leUdFBpS`zAdhr{= zZ)KU^IC^T$&XJ;b-4x|_X~(wlktbT@YrweDG;eq`N(>#5C^{nHEMx0%iv)%`xyx(T zU%Z?7CF3h|fTYgdM<@?%OZ|Usk_&;?l@{}z-kE?TCb%ali~bTarN9ttAderXi9Ne5 z_4&wTZBoNezShKDgFpx24c|r23SDF`-rffmp*?XgSl{ej$Mznyh0Iqw4=DeebkjJ# zg13r}Zj`ZgT83J0?7w?)rr!KGBf}Z=pJLJUjszR!e}EaK)gP7qt-J%W8M(zwToz5Y zOCsCBJx!#CwMH=23>F$s~p(5|A`#*4R0wAYoxoY30?b6Tsz4$tP zi%a#Q{diX&2 z-tz_SvQR%-&y3D8*jP7JEOUwxis+4f0zcp}fzuKgK!_&e8S!u={@F zU@W6y265p z_>deAjRyKfNrvI--6h`EAgckZ2XA?v59jhcAFk9EIIp~}L4F7n28#7+b>zKxXD}p# z=<}D)Sn zQRZ=aX146CpVmwIJLvH3s+ZnVZ9VDt*+5k7rmWys<+urCah`CF%4gvD?%RUsI)(20x_a3F6yNmI@4J9ejazxk1oD6SyAMx1DduDy&}l%|H4L3f z<}Y4a?)j*+=5MmMUbZgaZV#my)3dYagQE-S#alg5cU|=)V_uGX?Rz-8#94tJ&Ir@0(G&2Dr)qpX?rP9(42IBS|3;@7(;O}#^3<0$0nWW|HLbEk2bw#4}!53Y2d z74vC(pA~c9d+X%mKv?_wNp*4(X;?-Y7LkSoX=wAL!Rxm?4JBFaGWJE6qcf!ROd4n( z9-O0f$rxew-MT~QAgP{`uCq&Tlngk_>ty*1YussMxQvnA@c$0@debf>1q0!vT@&&? z#GrpoXlTc}CNs@)FJ%v`z3X5p}8Kyw}~iu3D~}<_=%#4cSjR zG(f%TdkE)Y&gI=*=28Ba^?3j5#(KFC{_)j`dbvIumC@k_*)oHU5p~0iXCS6LT+gmB z-nYQNTei4&KO0@|?pa-LbGLDVaP4A!XnpF~Z0EZ2DaL)^zSGGE^{n4JfLqkAWlZ_) zhtsg0aQ0kmNtQ8S+hCKV2UyRXULzwvv9x`5l?^e+^xt@bfJZVl>XNr1{{p8K}u9eHzN_Xq5=H8MMc>m0eOTSM6#?`Ln zkcGdM<5=4#J>lH*9(h)z>Ec~U>oneZ?BhIFF7>nhOWSto{_bKOYTjs*<}Su9@Cfs6 zDthu;N^&1=MGA5LSotAuCY0t8)aw-ThKWYW)CJ`!;My~6+39yBa<&n*Yku(O!)bk# zg>xEsZ}~=(Zg*$O@`ABnRm<;yJ%+ZnCF+d1i4WhwUN3lkf5D44JX2*(FNfu2c)<&_ z@!w{d3k|wEWz>td!^{V&|H(W>}AGTBk}f&(froDB0ZkDk}~}yW%?;-e@2q?t7T~~>zFfbxt812?aM%62zRpw zb0zZ0Pa$*vj0snA)AEL{H@uy1d|ImVvwAd4O*q3-BMtt$NGK)R)!`A&kuR3{!;5&6 z=n$FjB=$QaTOj}Oka<^aK;_KQzw%B^6ZS3kT{5*7e-0lCqvTD0E6!hl?klnrWYXGC z#$L5@vp_`Ah!9)?d`6ztD~EU9Mf- z^|umJX?WXbx-34m7k|b0#>(Q$xbfw_ZS(gOrvCoy+SOfummVO#(X#l|Ui=l~i@w93 zzi~G{`Ie2Z1yg^Ax^{Kf-~9)OFIN_y+Kazpd?RJ?72Np7ueR|$jH$nA*RJmRd*cA{ z70TjMd+}F{uTU0W@=05N11|jw-1xrW+SOfuD>0RZxBe1;_qR{A7k|b0(r5e2Gvme= zb?Gm3<2%;1tGoU#JwSW|W$~%K_$$UYSr*^88((6ZEzhGc^|#)&tGoX0KR|pVW$~%K z_$$WO|4x7Y3T}M4PrL0CQ-4)%eCn>hH;VD;Su9tMqGQCk#;Ip~Ro;-Y^XVeq1ms^a z?)yA(F9M(Zsl5|W_Z!u3(M*5F-k&gnslP)$YwhY^f5%}e%`;uQspG*aGiK#UkC`|0 zRSd+Bu9ZWES2Erm%idHGjtp1{yEtm<{o^;KAOitd(fNM`<>M!G(<%)m|C|V!&LW6KGY++2md0b{wlN9J%p+5AGp}; zTFGuq-J3u6!`9y?FqO`CFg0&eF8(Rk{(DSjVbc5&>%J3H%lKYQX1ekd*ZynQ{oPy5 z&c0lWsq`MeaW|&c#j}{~49j0!d*#1b_scMq&W|y*PO3j< z?I&O&eUWD{_4ijyrF-Zl*5C1%T6Y&>a&lZQbL~4^_wc2bP8w6|avLU6e!0=L-{!g} zKi*^NbR%Xv?ps{@$1ycsf5p^x{@G91bo@U|O~-FA)qNi(8Y^<`h;`qEsqWL5-QWi< zv-l5SD*i*5T3_2R1DFNZJ#@Ks--xNdH)u=Rw-&l>$b`yrAJ!(y`yBTF-|en5%5cug zpsY;kUI2GH4Y4QM7tT3)o_L~G*0UBr0e)lNwMyGF!t#zDIUF$e7!aR+p9ri^LtoeX z$Y&~%h57Jd_I#nI_Z60h@88%X=K{rhJoI}DaJ|wqYl>>)?!%GZ@^Axh?~yTJvKTJQ zT^=5s+2*SDn-&uK~U1k`|*oQCl(Q!NocI z(CmaO%spFXg=yE2i0@ge(9gp?atE;4gjYSEMWT8>Uc7y~hP!^5*caor>Eeu8>Ne8# ztx~%B>Ckph<&cB!sXR@*Chm<1*#*pK+|P&Q`P4i)dZtb0b7y+T6!&3FbRZAw@nJxd-+=6S#7S76 z{fLkp!T7ZtfAxelZvhg{>&J{KgB3X|2aU4cMsER~1#^$eKTO`GMSzGKIABENJ@;4xRzRkCOC)p?7q;|Ir`*6C)mSz1bABq~B-{yRw6Uqub>hz=7!c+{)Rue}(~izB||QM_vcc;oZo+;Co; z)y+oFJ5^KC^|t5f(Pi%Qo~Ngto=y{pefU!)D{ofO(` zMlWuYhk@7y&@yd=bI~50m2Yvcz)rhQX6{X;|8O3|x5Hp)CEDbY9&`tav}m8B9$e{d zE&5tB?YH>0R^k3u`S%A}C8yy?lYU?EU#)Vh+RgaFUfOh>AFpZ6qOafy>&&Z?d9RrF zpwle_%|?bba9^uD1tcz1+RS36Xyf!BbEoi7o%q~ioH@Z=^@q&emu2o||L$^EUjg2& zX%+5`ITG;Z*^6`fL()H0i(V4>nECZ_^k{dOsv%9%yzJsg58bfM49sna+562c8L87tkjb&&pYgWLc- zt>Lv@46!HS!P&88_D(0Wx5~c5TeGSweGspCo7?NIZ4dW)-0eNj+ymfo zH*aHJ&OH-3G?U!6H?XNet^oq?g?^0vF6yq5@SW#0$PvJliI*{(JZOAA|Ju&L>pS0G zywRb&9F3ezF&=m><=KB~gWLjSG%oU1ZdbQwflcae`X>7q<+w6BrLv^0!%y}u; z<1a+zPr!uIT3jWIvz!;gkKUW*b2D}A$2pp>L02Em?4^F%zc=abIV30+Q%9eQ%A8L} zCH+2|Fa16bSnt~Pdk3&W?MhqAnEv6zyZQBnRUG9z=ArMbuafmc4HDVO+auJX#y@az zRIUbYQ2KhW5qn8t_`bfK;&m&#-$r$H(oS2D{k!_vIn7S1laTC<$~S=5m8QAR@;dIb z{Gzl?UC*5VOA<_dUA%tmUG`rV?>!k~ZuyMtsh8Hh^^&>>TAC;7!HctfD{T9b?vwnb zUj8!EEPrCJZ7=(A&!WTf6gn&o?0rF>ongvd=hf)B6@sQW$11!g5S?iabM{cdygNN=*yvi;gh0sX&r~)30}OmG4Oi- zwhvEQ`&mVQ90+`Xyz7d2hSl&iD`57yWr7thdI`dQvZPx5eml`G!EYOWbx%BsU!zlo z-$0pPr+yCW0p3|k+x}4~gyrl%h1vJfICXAFoKwU(L7Z9QL`PZQ3ikP15tbGBTZF#^ z{@U;t#h>1r=k;gizU;fAEivF+6q1Y3tw3M0V07=?5yHedb1d<$B;MnQ_juy%C(e^Z zn&1mS@?SM=@TvW9l(B{dul^PRo$6QHA2_xDM~t(Dnm6rB_>B=ykaz;b;|rtrA8NdW zDaL8f7p#)v8UIPgmRWSHR!#%1G3lZn;TeYSGe`5e>A4)-Lhx+WYxcSs{r)Wtd2{}c zk+P?gH|u85MQ6WO_xhguFmD4u-)Z42{^gC6(VTxwl{0GPMBwk5hEC2r5Vm!i`RNq% z5Z2|vp(p~GSwGI0o*q`J%8#rQqL z;VnJ&uVp+j*N-#$+1(O`P7pc)=y>CB8Y@}*y5qa@3DPj|w~%}vxKC-S?mz7~G98u5 zsd}HAS%YkGZzO=nTivQAbgQ_VEyX>BJ7;yPl&<_NB$ol<54vgP9&#@(z8D?<)EUy| ztQRw5BR#rSAE23O_^~^=lOGt>@TMDYj#C3#**_MIP+r;B-+ImL&I zpU(N%=`-Yr?4TSrd^%^0-X`Yts{yMw+E1S13z+vg8^p}4;L@7cjo|IRc>V0V*6h8` zM|LvbLB})Gl5VD4oL+QZon~pvw5D5<&D?Fr{RzDH+Dm?V(WmWYKX>+ItSvv;Q6uw# zYqwB-`c4Jy(&$&FXlEX`l76Kti|SunBew$+8cy5TaFcj(@r9gsB)(ahv>kIaKieoP zhxf+XA1dC$XVa1la{dr#`w%p>pQjqdi!-{e@YW7^f5)!U{=a+H);&|4Vh*!~xnL50 zw3+)T;dS$$>@LjBoArn(DaYuA#7lZ1rX78jwZdB5#3>{AJZsZ zJInNA^leMZyXO@@K7J_gz^3k$4(C>xU5&c!8TpcFztai&HYu8z2Y*2(jXXex7SPX^ zNdK>^J|3mflZZbQ4NEZDeThgSUXO712K zRT#Y(+PT(KQI=NdC*D=na;L`2CVbm4ciX|Yym+(rroI|?mTsrY#1B!Ov}OKzpWCJf z9Jl{2td@s?O&8ld>G#ioe%G$wpFq}ksM@uiO`T`lOE_&OGigJk6i#(Prq88Ko=@I4 z%NR6@ahUrpoMAB>iaw+HENK7g=KfITI^E2Xy3tYXrtO*;2!8DPiZ|Qd-6Jc3N8Pmf z?3ydwi@GI?f>F~eNn$e{RU zE^O{RM@Md?r$?>@0w1yQmfO|s&%m^%E28%o@a{a}eE0=HSpa?WcE^<7?;7#Zb?W9w z-E(N@oAPI0shd5RM33}qoH3OTATOPm)dlyuyLWt(8_fs(q!ZaR;JpvQhr>_0sYm`3 z$hmpa?@MDna*NvU2*@2nZ>N4Y8b2j`lyjm}gN(25@P&^vM+iA*h)MvoeT``QGItcz zp|^;RV~V>924^|3rZMxEgj@#nZY93fkhIP;BI9FBnqo|vU`%4n@%nKZ^bU1>+e&9W zHlNWy@YXjlqBMj^nP2#DhOdQW_>T$s7O+PBDXz?)S>rHoZX%scgXTO!#@;8g2%T2$ zQ1nThY#+*#2hB&~=7f9*c&133wW1ei?;@R*pJZa;U^IKDX{PXX6zd~vaYNtOffr-!h z{8-+z&6lPGQ)4ZI9P6dCFYcDuzd_5)*&2N~N87{@`t<06x9(~xFe5dmIW_Fa2U%-v z>6U?F*r7%r&aSOu%%fNX%#NEG4cq^(-STbVnqpXZxEEInJLC`R^t0Z}RXxH{Jtf*vAI@n&pSW}vv-Sbbd;$X>({>={d(mGx1FCi{lbKdO zPVZc0o!Y`WwQ-`I`5W_D&gKNTTgFSvX`REK4ed5fSt~z+9|qxv{eSF|GhXVFEc6{c zQ^ooF)g5sUx%W*qF#a{lt;}<7q8_@KXSL?6Y%~4yF8LPljHa`b zH_@}mplL@cXADxFUUz%HhrgWqb6s*aaO@>E-}?PapjYk9dS7QZJRo8Gl<@WNznQrb zm}c(o3GcM?=DNfFZKf_ANrv6IQ52aN_vW&$j_tDdkc^z%CC8l7CEGNPI^^Gbsz_@u zZw7eqRTWb8GTu~RLb-{RkG^!3Q65kEr(st z+1YLApmKhwjq^hd=+ZZ^7Pc?Vz)Kg0d5^vlKH4ljyZm!3Z8y@zd0AlFrM5ivJJwA- zt6kgNHugz5o9n|XAJnnd6V}SbSgQ{;Ps;qL z^1;1><(%CSS+ISG%-NbDr))weLnFFp>(RGD-x|Z(C@iB*oh%(EOAkimLkEUP)!q#G z!0w?ke|r@AVKQw~rc7?6jnrqczM3H8syT13h_l8j?vv4ET=mW?lJoXPWZ`bo-HtBq ztwW_^6K^pz4wH%SsfyU^8l6%0HPp6Ldni>M;D^_NZ|-Wd2D*?wU)3Iyg{)mGt4Fi` z%@eri30)(27iP(Y?IYxzYIMU>M~q25<_5m5@h^+XWwezgw2ces_odwbE2Z6)?ho%{ zWA}}b3BW-5ltTV`$Dj2}CU*hNxqLE9T33yc7l0{ET9?c(>2BIa(%js+YL~7vO#PRP zk@>(4v}534f`bbth#P4ljoGhtMC=bf@!9CG=CEjYC%mT@1P?bQ)%I_895baQZ!@q3Nb* z%@`lfkHi?cd~1n33$$rj zne`t$y7nRox_ciVCLgaIPd_OZG)HxD>$hBW6KEZEtt*i~0`)ILzduLzv(9>^n)chv zxdD93T=Qo^eOK&`#sbCV$8wKK>QOn ze`>CMl6l$Kbsq!2in&Z`<0f3nPsb|!Vmi;I`)QlteXn5L`es}{a~$VSZN9w3LB7FT zk;{8HBji%}s~5n}Ifrp~UN!BHbuxUGL`J#&&gRF8CHEV}(xmy)vZ>~LG~i~}znQFm z(M>Uvbyk}_qwRRKSSGd>%WkDJ`HD%<&8*RC8RKa?qc^)X8npJTmic2{c;#&R>_*xs zP_~gcH*s%?{&p?>W_>mM3HnZ!_MIfW+1f%W4}`V+VeX@vZ_@FC`xhT9mUX~Zjf?V7 zbM4|{xz5;i%{n~nX4*xXo4HFueG{MFn+(S3osl7DFc)R+&*)OQ3{9iu^kVrTVBYI6 zyh-M!ZuX0voT;*&4*8!KmGfxllkhLWU*BsA`J1yj#vINB&3nm=#qrIBvJqJLN&8J9 zdz>+buzBP)yIb{xgu|PASoaU@@!tnCQe3q^g_qKS9+pDc2i&9aM%kz1CisQjX?tmI z-k1pe`ey>yuc~OOuC?Y23i9f@V9Q%R6}&~(#wDz|O6*yN;Ssi6Jz8D_%06YkN6l{n zF}3TNLpy7T+AI?$<*xO_co3vby#q_<^(N<_r{vw=foYD8mLCC0O~=HSB|$ga=6SP$ z{V8|QQ*A!}^eDLs*x}Q09ujm*-QlMX`LbQ!yqL`6ocZ)l&SChTnVh2>TN~vZM%NEH zlCgPEkG7qjngSWIoHL0}lP7I=o$TkSPt|P^^s{H~tfyz9-9N>5%k6hBP2-H6oG%lA zq{eCPw{iBvJTZ=WqOhIyRFXXiYk&yzQ828RKiKMbG5v|Ligldy#%L>rQZ*xAUI7kj zoTQO%S3hrNzI3YpsECY$HVSRX-HaFExV+*h?PrAKca7*s=@R|CopG~ z_7t}ney)?F=y;R7zr|VhFVV+f)(IIBa?`qHUlw%p7`toPxA3Nf>UiidcX;8B=(luD ziJ_J&Cbw=P?`Awew_w1{+$&9@Gl#X2(c!asWLJKNzQN3R!hF^IwOrW(bp2WL!&(6I z%@5~F$iO|L-t0(>XqXBIpYtE&N-kU$va3*@k#fG@xc9F{Mj{AkU4&*oe?`OaL~p>Y}A z50&r*<}&x3K_2I^hMCXa@|;jOtNVd_(Or>*;U#)DE;%|^J___`T<4;Lp!PV<{iYD# z4EO>h9PqdE+0nu(B;o6$P&vq=S-dHZ&i~1^-;&9^2Qb-tq;I`kW%FJ$#HQEr_iTCi z&1~6yinHAf51oF!0G$~J zHV5B%X3xW&;OBvjCSEb-m#`;{opNZO9(L33Je*r{Rwyp}Cf0HGO{{<}=XzJab$G3&S$x}TMrJGUjVn>>gp1`g<&^cOMQs` zw~TrA!)boJ&j{_vKMt1$rRN>sXWZq$z<%RrAeopd&^tRq+ zc#QQmdh(`y(Uy;(+h({t4m4@JO4~Wp3%MB{EOpsE!`5dt^;vO}Ckuv4HIQ|?=8s08 z?jbiSInA!&i_aV`hcqqpgno!`IGcD2sp}|lhWs@zX>qD9#w_o6PuEz%Z|IpZT%Mmv zS!rH$-eO(}x_Q?Rm+N~oWCQDtM8ycny~*w98JDyz#?dGIOW;%YW%wX?l==V@MH?E)`WJ)iHJ=LN$S z9mW36;~kAIoq_H6*y`%ODI58>9QsN#ah9`|ufH3;gC|l>b9nm$n(EWMU>Mu}PqOWw znaqr}F0P);;jsQW|JS%o+c@3}x|w`bRCu{wxu?82zg)fP$cVH4I+`*IzBA-y^9J+% zzD8d9zR|Ha9vypy{dDYU*|v5Jlc#_lO}`jf?e0;`;piV^zdfAuwMg~YP#AC25c&jr zvL4+j6aR!v&TV-YdR^MN?X*mp<{d5Zp0Qn}9d2F3Ik%=6`zCLi0>Sq{gKnuk9c$3w zo=$EFdf-lJlT;>&s4w+7FIe>MBCXCWP)wlO`&phCLAx))+^uJ`y`f6Uuy z`=T;?Gi9S?m1bAJ1W=~_x+aF+$e}_X@>4!0@#}s6U>qK2j-&VIw~eTYnR1DLH!4ej zW|N-I8{~)c9;wckklzLHx9~d;zi67Dk%8IipEx+(RJ)_{I?$o<7I1#j4nLZGi?92x zBj6v>eMh@b>6KX5pLbhcLtcS}cWU`4|B18DPWVnq_)qZPLjGf-oZYal$KTf@6ZAK- znlI7s+k6>H#{VSWPhD0`kIL799VQ(y=GbwZ|Epcc6ZSLepK{Aoc`((h7^XF{Q|!%D z7n0Uz#|=Z}uRwH*=3k8Y%S}V&RgG8sB77(HPr0eg1$%`keItSnkRZKXBXHK<(YHou zBuJC7?B7ERtMd5t;c#?;K2!Jm~H0{l|KLlciHj@+0D7V z%HZf3PB^U5GsT&Uk(WtCY@c5=6n#U;4w$%@kJy{Wf^KF%6LvGaZ|XL;0@-S0?~U$} zoBT0tDq~vwuwz==n4{!%V6Ub%ma`7_B}ME{jGTHq?LKMmSOvqmJv!W3tuxwQFLGP$ z#nKizO8y2Ee9o0Y&>n>sLAXd-IB!fJ@4Zhh&$fluf5hcQV2g=Q+c;wle5jDS#*3Tb zD~G~UZiEko)pAR7GvD%rYVy!DwN8l(p1CABM|&eKO~3(7UwL`>>HCb)G(UUxn=jcr zjohsrpAN+379i{M&}#dvD3Ex-&09QF7Ss20tC7EgXRq^>J(EPQW3}GNMP6{GlNDW+ zDXWshg7P@#)n~5&nedy!t$2veGX?Ayk$VhjBjF3}{4=`0+>oz7c5#~iSl<6z)jLFL zyE9}NJkxp1pQl%FcW<-hPkQS{$~w-78a54)m5s==!XH@LJ3^`{r$z87b2v{i`_US| zeA$=Rjg!9tv$s+%6LMq%?QJallp^>k1@KdXV{I_3(<#!WV?!p5f@UTL3%Clgtm7C50>nkbX9KKX4|-N(hVHa zGzyp}_zu-WX>_nse?fmYPjnfnajl=uEa~jdk)MKNtjl7H;a{}5`!D9q2Od4=n(6Nz zTYf9&W{bmhZtn-Vw;&exy#>*A{up@!nD$FsPHKJ&X#E2ACo<)U?zrq~AJ2I!{OL}5 zGG|z!Fh*9bOw!}&;5KT}Ab2=;YrM=myz3#GkfUj2POC?rrxv-CV3;oM%@O9Og!uts zzJq_1aKSL%Uozz{+$Wsqalg4IrSGw-=#3Hb1~h*r{2#iHmfvvSaXWfYMlznc(LJ>% zKR{bB_xdjHf3MGbC|4fpjmrJq!{keynQ|B7S~K(dXIPI#pFqQWm95w2b4uhPApS-D zHomKODr3Sl=IUb^7p5~V9LM*SOE{bun%_ewN~h;1gpCqb<4U=kJ?T`|KGP`gV=3=& zJZ6pK&5&W`Q8R`l=9S0?=an-(W4Jlb?$fiFxUyKT0bb43au8$AT30MDXxiGR+Ifcn|CF1N z0Um-3uz$xyby@QMX<9t7$;EOSu<#xmubR&XD%7s=vM%iB*2`WxKxgm1(RTuO-@NCB z%X7&w%yVP==D8ZHxA~}}B63uc`L{D4IjBN;=$b-lCOxl=^{C2~s#e4{`=W%I&)S*O zYbQz9CESC%v`{)VZ>CO5nQOxCMt%~0W>8{Z%d6?cLirL9`x3N|MC6fb_}`2#L3evz z&6^X9^=8fB3-PS`x;4JY%qZfJkt_@Qb7;`b)P2~^)(3AxEjI6WCRml4_S;rET855+ zAN^(WX6C>`3A%ZO$iya9cPi)QoC_7QCL7Ua^N|=fTDAj=l-8t4TMD?@dxPxR7u#`D z^WOETJh}bTd9qPyMk2eA{2=wUIOMMUuRLVf%!|6ZHl!z*eIi9?-v{QdV+Hrf7Ms;b zTUNr}+iLps2zecN!OstKVbIN+g$}h&bfHy*-=mg|Bjh8%lzUzMR5PXo-Spei-0XTH zTl_a`z00F=IqBKEWPNXxR90~&2<-ObW(^;96XSmiVYX_RT%Dt$tU=Kgh+E1%k1}D7 z%;{!*PaF~EuV6gp4B>t~JJGt)brt-tSGlwFT1?_C`dzG>I$58!!xZi32md)3R__52 z_GrSYzO|sAr)#;zR<6|Skr+#aK4W$HXG_hVm^=V9Xqx72Nc5NBUzoIShXnmo_Xw$9 zZ5vhJ$d#3VIbSe)9(xBS=z)VwCQ&(=Gn*{t9{=8}w!upB zsdP9ID%m(((sAd3dky+z2P z6wA4tC9(k7{L|ot#FC7c#1{-}ipF_>$g#9RJ)Ed#M#e{G(vQ`CnL=$X-3l0^hPs}dGNS(RYtvgdHP20 zILWIR%h*vWs{68NcFx49$**z`VLNAk56P$rBfJ)W7GO1@_1Qz0uzQLa-^jYCo%PX~ z$o>G+zCvEjo+2jM_zg+(bN5Yp%o(g}!yVC~atNqbTFrm&cE0ti?5VyXK|k}Ri}y7v z8(_HGc5how_bi$*Oyb@(gWUM1_gvW>TmLphV(htCHoD}qI2#+z*%qfSD>$5n! zkI6?Xkb~fCFR(_d(K>2OMtODl-gMf5 zmGjl|TH@LE-!`1JHLyhE3f?VBGPZKouWt+m!+0wDxYMkzxf?P}%AQD{DQULx# zcZ~FCyyRKUQ_9B30cTh9r+{{~Yrp2~1U|P3lXBPgRgbJhkk;&NPn1aaNfJz>XiA3Z z^JZ^fZr_M$cHh|Zqf)u;$EDK#meW7aT4@M-tDw8p+2OalV$<%loZ85{=3jnXB7Xsr z54ikxPo%8rPXTxHW&&;2=@UuSb%(~G;~@LHA&j$?Uo4i!FBQvn;_|*VOuofl>@l5l zZW`VJpQ*~1F^M%7%lCjon&!h<@-Td=2fK6S-p-hOp1tht6?#6&oF52RRIEDCIp1v? zl+gUwkha~+Ab;3Tc7*w*Ix20mi)9S@CX6f#;X`&aXZ8=%Oxui{0L>7sUmH)z&C!M2 zh`ZGJ;j!BNU5$D7 z?UZaeg?-2g>_f^sGi7QrCYkq}(+smF*Ysnvkck1d6xsZ!`M}AA(*BUOtGW1;LTPn& zH7CzN=EK?5{I>;#vPtb`zQ{KIAve|>Avz7m`Xv;%x-n0M(&yY_Y&U1t%(=mQ7WHOJ zZ|@26YUhdaJae9TPpZp5rLp6SwtX+2C2{uN@#<`ev(AbyMiRj2IW9=peJpY>tcQbd z8rCF6%k#jJ?e2Rzv$zA;=VsS!$mhZ{X5H4qP4CpYO;#ft0<PREEgUrO4J z6Xi2U%UwW=##P2$y57mm8{D6&Et8<1(FM!?iEnL#Gg}oYS9;2P##0gCCJQNnlDYn>zVx(y104@x>7eO9oL$uC#|cdIr;K7ko7R%qH;5x@B&y1 z2HmY({&8YjtKLN>AEus9%a@Bz&zJd1YxZvAr8(ec-w~O}ybPa&?>6)ux=XQX*P!cS z17P*y(w127huq8jLt=N`|E^{XClvs9BfkG&0?IWX79ls zEEvYqz1cduDzkU0xC2mKz+Hem?gE7GR5kq(xg?-LG5QKXO(p^YjBvgA`gmrE>tQfk>eu1o$rZ)pUY|u`DHV$ne zv@vM)9*4%C3a4#1EiO;*qkBb?(PQ7|^A_jG;>L)ai`;V|a$JST_!e@e&0U_3yf!U& z+HdW6&hvTW{C3{^HhHIi1??uCaG0VoLs)Nc*5dRhXx~)cpj}U))2||)TF3i-T1GWh zoH+t*nvTZH{w3&U@4unTjFS(gGixa5;s?<21sw9}kk1Xed8OR>;ErM`=T=6>o_%FZ z$0=xg8sP_Aon_w#);(>K@q%@i{|;2p-;O^gaCU`mx1OA?^t-kTJsW4o6~m=u75vRd z`Hs>I(k8uH`W)-`pr5yDsH}qDHr&dRCd{3ISH{aL$l3gs?>VqHTYj`VM}Dw9S9Wiu z?`#?&&5e1osh;t)_h@PCgvZ!ERq7e@Yif^`B^A?I(;p{rflQn0`BA2LKW5L_s%=i^ z5$0ab>B8L6Pz7{bU%dRp|2C?%|Nq>SB&|jXENnFwJYC;`1HPthDo`b z`YZ_3n)`^zDR$=}SC>zF)%%F(kO-t__7?gEQb(l9D?x7W341GDb@OZewcS2UdV%zF z_Mp4fuXi+SqQl=YJV-pIt+Ur^dMqk`0hT_dWky>M+MmpjCmAc-*q0eSDFHt-&dxM4 zWNpZfbBCLGH+jaOv9)stjjgU6G}b$PkmarE*)wO($Sw%73sTKG^6POq`H{Hvx-`@6 z>h~F-OZ`vg{tEPCppQZy^3yU-i?4_~>Dk)n+sr)#({Hx=-`iUzt$!XT&j8gsiTf{k z@|VV#bl0P=3BT#AQO0&o;#_7jdv)F;LC>M?)q^xeV^p8WG2-8aJY?eL->Jk2+^X?v zz8FV?Zsv~OPWx_|smCc}5kDh zb)8PRR^+FJ5fjI?zd|>n#&b$kP9gkE9pj*h5?<3t`RiPrmX491VBKvw$K-pm>hL@Y zId8t1eB0eaU*4_%IQ+-rUl{Ul)$fk0-mqfjWu)|m>HN^b9Z|Zl`|B#80 zWRaO`xvVE4f1LyHFUCK{{25L2w{=`BI#z2MCjAn9&!sTzHV)Y)?zCm&o{{Jat8J?4 zV4++EbeQ~zF<*;)kJ^=&0iPwp7^7iQ?&d5o7NYeE2I;-a8jZ8{eF138tj=mB!r3J5o+_rMoLtCm z&-S&N8}sB|;Glj3-=yZ~O?lF(_B`bSXkQo~b~j^7T!OTAPh#GIQQk=+qsqqLd~tqfU2A??T4HkCwwP>GdL4IqSvznC zKspP;emZ{Po{fJr&Ck<&ysWoI?{^w~+`gmywwPQG?9sUOo4VN>2Hd)(|vLWtM!C(%PoHgT@yRQD;4X`-P6rsce5sim(-^ZLe~m?<7(B) zn5+QW_vp9NhJ*HL=)Hn=3Vf&%_)w$UM@Sa5D(@9xoDGJxZ&-15P5%$?5@>7ZN9BC@ zF$K^SunsNQAFC)Sx#*7Le!zFgpILJucS&54 z+MJM|IrDSteBEIyZQ=>!|AF*3Ktt|?Yxyv`eU@>TO4Gou<{N>e+RZ-7o-u~pb^Jq~ zCrE4LA$vK4p-+|3Z^qH5d>vwKf6A7FuVu?#jWeca8~bPrKbD}o)%WrY`d-?lug2{d z6Qfyb-de8CmUf`vyMB2f>zSPIMQZ1HK|ibGYL4g2V0SrL&*t^nvI|(E^b>f;sdJK- z)jpXxrVz(;FX(UMI64&vtPm-hj$BdgG;d7BRBwzo$una*{ZQ*n{WXu}=yt0HBHtqo z>}q}kIH+l2SMy7&vZYh)S{ChRc~N9wL++-p%<)3BdY7R0bZ>ZPr58z_=>^lVd7Yce ztN*?6OS9!PV7}(XoK1X#v1TXZ@M9A6)Ai19?-5bnjDAba5c@4{7iCK~u-$!&nm@24 zTW(dm=CS>o#y{nzZM5?d#`;~f(QinQ-sbU9@$1A-qw9l|)ndv=ALv8(wOV5!=*9kN%}w*^D)rjB`wE0|i zhq3$DV;Fnmhb^xjm$%k!C34vVyyN_R{eBh!obiU;SVMI((CFDPdu6F+>$&%+_G8ea1kWs+^|7u)LVo&g zI_v4ttgEwJdy7=?j$j}@n-+4kq-A+l`S7gZS5?I1sLf%XRb}HSxd<@dLq62}Ctz9| z`7m=-PS|Z?mQ3tr-PehJ(00zrb*)6)5!Uy?xU4Kop^WC<<7nF8Xy$eQ+hc3FADtK_ z&6 z#?5jG`di&=QNA&pq4GO)JyRsDA08z)z)zm`1LEP^Lw23F38(VYL3g8f@ud`( znw7H6Q|qOpx3uqv%b}lMf}~ zzcE%I4QAFPtxHD9=@*ZZ0~)8wwjk>~2L4qZd9)$tg(4* zxoDJp7ch4ywT{_Wgxn~LIR2-kg$cPytdCELjDa9yAjlYqk*EzrQT;}`pSf`vHio@Q^ ztYUwwD;2vQs-*m_%tZxl$i3Ys`93XQc;!Jia|ZM} z`W}7ls(KbR4qYOEus%`yXzuJJXHu>wn=mQ&LUb*5ms6)R(DBqqZ_fvgSJ}J{b5?Hl z{v+A@qnC<3+1LtnQto$qe(pK8@fmhvkhU{isO$(!L>_J26Rw8FX-lE+(5=o+mEs#fV z)FAGPappt4l;55w-vqi{Ue)|?Giy6zXHMD6f_gW+vhAGRY=s9vTl8hG!(qugVZ(0R zmnN>C+>s}HG`@-~sUWVY#5JC{iij)b&Q3$&h7FQo>2c{dCXWi`*F!(*ByYT=Zn)Lx zO9{3=^sE^nGuDof_+HXgeo|+F1l`PUToRN0m&RnN(&;$SJ)5?3 zmIU3sNm0^0P4%30_}W+PeXLP3Hcgk7J>z4KPk(UxeA6GAnJZd>*wdt=e7at01KDa} z{jT~-)o&N@w&sI+3fWa(7U8o9A0@n=t%v*#|7@Z(2hy;*{3Z$Ob9PF0{OTcI@5C%Q zu`?pmk&!%_IkSxQ=Qwy+8H?>%UioD?(h3}S3E3fCKOn24_mhI|R^JbAzE{J)sNh}O znSD|QUJ3eI@28}6y^|_wTSqONMLh)sbxMZZj7+?q8Pe`LX?N|k$0R)4>X^iTn<>kH zvLD&<3E9nh4jvM8CD7$TmkphsNd?1sIp}OdR!DEQS$Pn`(nj;v^~rQ3SdZKXY<20V z`AuXhH>y1jkG%U-<_zvIwxer1xxj=?`D>f)Jw<|X6qTtg8alayvT&X)kD9!=B!Kvj z^_y7JF-{2bP3kr#KaQ-G{nn5j-uO7esT@?uUGJFC_p=ydqSdM!eWV2Aw`WZwB!lx& zZC|or9CD`Pq(;+F-Mh$`sP3Y?_NZjjCZdex!7!fkC^s`-C#)<%#}`ZG+UAGaYpBuCxIx_~wB$%er?Ys^yW}D&mn!en0SE+ml zsMtr`QyF)9N1(?fk2aAn`J8R2KGk3tZ~PEs;zx*J$w8 ziEu|HNbl=(G7>ecQgr{PeO%*hYblY>-B%)up3!t@Thyskb9X4{p2^-6chw^jboUC8 zd%i!VD>}s^?iySo(;_9Z+r%lxJRkcuwX6IKbKDr(pz1odI<@k{VN87^Ul54LLx=K= zWX#^@YO{IoIft{qMVuf0MDxx()0rb7H#5G6-K;L=KN$j-jQ0w-t<*AtRCZ zH}O$6LA&NDEsWJk#on+wTShPL(@CY}+H>CwEHarH#wA95q! z5S@l2ypv$!>PwF)v+BV?t1l_!|v*c{} zKl9=L%;Eg!l!}<-Z{`+$7xF!N23s*&#=IWTZ+~J;J_79a>6*5Ss7a=pi$g-nTmvZ~`}4e@z5=E{xiJ+JHJoU%Pj)+MuLb#;!^v%Vhn5_3+C zKUWOn-eG_Fj8@!yckkjXxtMXWx;hIznK?3IF)hWO+|_s!hr_egdx^y%nfF}A3oW~N z^*HW2jFTiy!+ElL-|}Tthke_p@}W|>7^r5&;c$N6Ri?o90Q!j&wJjhkL0%+CkTY zqvfX$jh0Rgo2`60<&B5kjUE-sIcGC`-nNVyZ4;HZtLU zvX%<$&CoJJJB}&ug|!#^)taw_O!bE<{hlty(}^d<^B4OGy>liN znNqbrD)#_eT{M&Q#5lJYoUrksk04px@PyUh!7L6NYjKuIlHV-vJSX9 zPCg%UGxv17j=nQ^BLU60UWTrqiUY`F|D?|k315{ZDmpz|j!nKekVxXKUh)VX_TKmpcr)d#7=x%v><5B1?{E zJv2R;Bg6GBLYL)NYu*#Lq3;GT@#xqGFF{zpgxqzm!CluiL3eLF_YjkXGM;_z_=-`y zjoDWl_WmKd^EXG4sYbU0PXpU-FBRh=&6g)@#s$Y1B~!{s+UoR~NthjyBYSGadsAZHvxZcpvnpNJ>qrt=#4 z*Sw_YV(920KUumbCO?t1{22K~mPE{x(m`7 z-3ZLtsqYP^Yx~1!(;v+EvLH`B18meZ#^tbXuy0-!bi(82OwYV|RjuV#Bu#;^-f)$l zpsm!ff@ym)5#Of`Nj zy1{^?rsMZf?iU2zE#JRS$Cs8}+ttJ5H$eK>5ppM-tRE&7KzjTkcY-x1crOb`k1ym- zxWu=k@+Dx}ugNbusHVe1I=bD-+47A+|IoduayzFaz8aOCK%3I*+*NU+gx%=Fs;eV; zEcL@g(9d5C{R_mgL*uwGgFDO9WC7u$gx9!Je%fx+=#`g~%U;Bs2f2B)%41$S2L5Wr zB+d;>4=dNu!MB_7g?hH{o3n1=d*eSVW#0$M9^NS?*;0c-n_p+ood?%`Wu}x zm!om7gBhLjv27)nw!&LHjB)Aj@HBnAR0?k@m3uTT9S4Xn=w|sTIWk)3$pAma?tRgR zK)W3^GprM#<+@V&3Gnt@7bp1)x$#X+4W+UTxV1~akvi)!pvyJ;PzyXo60#8<$5{1|Cv!E17=e3Hc^jS2Q_~zk&gnM zn&!7N<=gNNcUE)Hr5!nmr0u`KFkW=9L@$qY4Wg1w9e1C}x17&Bavp8)T&etRiCh7c z|5m?W!gf8gAbc+2?fGUnyxmKm71~S3DMFJ@{oNkCo59j~(qQy{4sOaADX#;aE}gL5 z@OcIdt8_)fM#^rbHD!9Y7jjdb4Wtz#E$%~y(khxhl(}ctV5|GF?=E>WTSYI<9U)|G zLmFn7mppWZPR2cT-%j5uO6DW4mnUP`OO0WFF=nTckZRL1>o_M*GS6k7^O7w?HUH?m zJZVt7o)>i6`|}}p{SM}YAgz={YTRAFgCF_(T-j&hrf|te$W6~Gant()L3evL z!TSt5gXiPAt{HfqsQg=&oC(-Dg|?7pSHBIwqL=wDoi~UpIB$gfb>3iJ@#l?TTuxV( zDZBVJ@UnoW-*8rRnEOQ`f660q%`mwgNFU2X?u4tla+quc(!&Ma?HLrZOVyl1Rd5cq zIJG{sZwIhPPnW6HI%(ZmDjB;<(N94+=vdVq4Y_$IXUfT)%uPvTlQuINx7mAlp6cYJ zo{BezZg{d!)NuzLLZvae6zJA?b*%&cNZkegk-!fZ+Fdw|gze?%FNJ0*;U^J(Ea8Ww z#p?}27XJx*o~Pf^T*zJkSo%9nlYDe@FDvAxYc9Bz2tjjOjZNIbi;1JbXoWM-yft)rHk(QK)T_07~|3ZF>eL(lfTz*4ae(;VK9G6;qp zjV=bl+BH}>9<%>n9M*-~#k%SpAiaHu-1*i-l6@GE9xmjr^`1ob>6_g9|5jA0|DfeW z-aBb`?bLfeKM9AOlOb~mdm>?t3{@Z=qX%iG+1b~qE+Z{}*~Pp9>@n$RJ^N#lwsXrX z35DUzpq4N*sH175qi@COIyD%^+$UXZ_5NuZZBLZSi$Li?Tjy$i2Z*X&--haC-^)2? zX1mUry!#OJH+_0&C=O5Wovbr=#7z6`c#Zo_|5Xxr4`8T-+%yi>)Im3ITDD9}o+{I7 zPmyUAv(TwKv+rHlDm%Z&E-jXC1G_Yz<~$6Yos2KJoR?TVsEiYVFrME(p=HwZPu{|MCtu3`Xv;*+jg#4*s@=@1(~N)0P4|7tOG9*C z*${XiONEzj%L`1NX*;Z4;(z8X00lp;G&c`@Do1&zh<|>f`DwZ+SH1@9cKK2BD@${w zMeSOC)O*NnZA8{qpxc2nlOU~`PZrxZ#@qgyBfkU=3?mNRbJSYdgOEFESH6}bD*==C z#thj=TA9SFZ(xM{wA^?vXw0)NPR&$x@#75oyZmwo z5*gMccYsJchjp#v?^Ss^cQQ|m*xz^mujP#__TE|2qw$lTnn(OSOI}dB(Lnr99Q8(-V9b!^{cExzfC3oIC(5`V;Bh zmMOP&&XG^y{_)zgS;ruo&|Vn|EFeC7rwg zYpY-wBWt02>y8XFZp5DAZ9X9Os+NJS8T;fd)x84f)wn62kX?BzgpDFw89}x(b<7y~8?eQsPrFBlV%SZL|FM;0q*lXdpK8nxyS>02{rUoU z_QxX6G(w6uagPcejyde}^nC=qKN^hF>gX;P|IIc1ws?DqoC)-re4w%k^CsX0wNHz1 z*Juf6$~9s4EcWoc%^PW77NWOz5H6PBI|HqJnx@nAP>I|QYNe~ zf7b6{-lI)O?=h6`RKDkUzGo)oIwLI{{DZVG;dsQv*-E?zH7{E3#2Y0ZO{>ox-W~B| zkyeznBBT|J$G&kpP32bEecEqqd%Rd)2dXr`lUQGNqSu5u)Vxzx%RI_>V`Lx#;oSJr zrFVw)n-j>>-3Ch@$-8m|ayJk)Zo2nAlQKCg&7E>+B!>F&1Ne)H zW8W{4-_!h#L*9w-QNnB7DfcLII`K!+<2Uo(!f^gHEMr}yqAK(q-q<1Nj`@I?Qy`{BUGza|kj{OMlXfbEx?wm00^4!Cj#*Kx@x@tT+U-z;egQpR6x95DJ zb8qf%svZ>XK(gK`V7-IP2>nX?2fP}1E6T5tc4Vu6lO?YJ<*#d*ur5rqtKVtAW$&l{ zD$5Oh4EiXvAwMlE;tbN;^Usq)-(}COkdeJNOFj$SzCFEx2?lY(-&MrIW zo4ESubsRV&>}JlW&XD1RkEDm!zS_PhlqWl9(R>+dF`Fb6>9cu>CB-aAf)wZ*0bf#AGqBwAYqF$Zozl9LC(a=A20HP1{wS?MJdP zTlNE6G#<0&r40w%%=;PD{oh1vz6^chz|wr1zM8!ckCPWt@njnRl-mgQxw=2oxhX{J z=5@wJX=h$fhUfK~O(pUGaL<3+bkgnWcjnC{veEggId)5lG^pM5C!OCJ=ZHJxm#@5I zeV??@#Gi^|B>GWUCq!9O1kSU z8#kR(rkk)~cO5%$?>>$;S>E6OyHWWr@n;bxN|*>?LiDB`&IqS(=8>79e0n7j?&fee zuO`dvBb(1EmX9nfmTj6h?Yr!6C$;llSCVrg#y6Ee4u&y%hy8=fZCmZ8tv-L)w%W$> z*qf~Hm_5ilW)H~Zif!;TzZ`1sIv$qaFj^J>v)*uJ$oLy_E6}&ykhw>W$H)b@>z(lt zp)hu>4-Yhluy=U{gxt*7 z)56$uA9a3zh~6tgpO^O)8J@_j@pYn?XAhH?bB0N+A7AY@-iPjU^A-$~1>FyF5Ae%k z?p?a^+}71Y)D`u0n7XoSNX~}gRp|M!mCHOKEPrV3aOs+uKHSaPypy$gJ9{MbbTmQjkuPoMo0Kn9%{m$0V$DOtBmr!>+SX~EASu(9VTS_`P(?SL!mb7{vhb{_TB#q9>_l*?p$dwnJsIr)m z!4thV2ZeJXM)s$T?q$OaBa93_T$mohco9z`WYZ&0vsO&xzsNiM6w^!l{WM%N-*C9! z?lkwU|LhCbG-#sKP$aYd(dSk=nDi*Bg#ovC#zcwXHqb9iX#&6fL#+M#4sUb#HisJ> zu6Ou6hfi@h?r@gF|BTr9UUj(B;om#|?asc{;aeQO#^G9r&vW<`ho?C_%HfE^z3zLu z9PV`Z35UPs@Yft}ad@-C8y)_b!yj>Ysl(L{pW*N%hj+X52T|U^-?ykI{r$w@mmGf8 z;Wr%~@_Rl$dtHbpUU*hn24p%xn)8R=Dk99cD;i$uJdp1A44!`1Xm&3nsc%Q>< z4)1jML5J^l_%??(I(&`835QoYywu?;htG8QbcZV(KE~nk4i`F{<8X$F^50y@J5Gkak$yx&pG^MhaYr!hr_!Z z_S?vXvTWJB#>O+(Eni)?aQT|rhPrjKc<{21tzVN^w`xstr3iPr=Nw;o@!Ta<3+67V zyhQS`&&00QW#`}^$;j&E4Gn8oh@28xxvs8GsGH``>{It^ z^}Ot6VqIgReM*+CSi2^iTtSuUgQ!qArnKwU%#T zzcXh>^6Eq#$*o*lS$W}txpOO*Tq5jGH0@PumM7~fweHnz@UjhS_@0l-YVtrrYuA`8 z{oGq-TyGe(%(?tt=GQe)W9MJ~k-8P6eb)T5kDqC>_Oi^U$}exIBO`UoYZtA$eBJVO zSI?uG*2_O5A6m68xnX%j)w;DwL)R9$prNiVA*;MIX;m(;JR7NQSU=acw_m9Fg1Y2~ zmN#sulV1#4ShqYezm8&Ed$s&r{m%0JI@PAp$g?Jtjo>+BHqJ<&6PUDD)U98y@u0_J zNCQ#Po>tA3V)Z?DZS95z*G=Y%oIZHb+SEs2KgW+@Zf)&4ViCDz@cA2(i4Dp5b(e3r z;sV<9nkxwRbCc>kN`QtX|MZCY%nc0EEUZ1R6eKu7te;RZ) z4QYI8xV`khPJ9wO7c^k;K}oAA`&&SnnOzlp^;4 zbO9|u8&E!KsKoK_xHLy(%usoNc)kxj4ZHxn0=xs{L?_BbpaPf=tORZVz5qM~>;&3@ z#|TSF$zWErL*NGvg?GydxA0<;a1tu)h{*r^Iw#7x`v-N5ttB%^B91n zYF%Bzj%%9a;<}X$E;EbkhEZY}jh|o&MfaH=o|y@4Un53jLIG0N@?YK%2lf5(sXSp1?>PxB*E0 zS_W07%zKCQncs}2%$4_KrOZ|TnVT|~_2&8Jrq691<(uPszF%a`k;k7dxvfIY_r137 zCnZljdtPO{=gZ$rOx^zVC%?3+vg5LUO#EH(ZRZ#L=@XS#e(t%u=H(3e?9q>Yx$^Ii zx6FU-#=P5ayy-iYkI(-3gFk)e>~W1xJX^W;sjgf9*!1*S-@SAD+&!QC=!KI{{_Gox zuItX&^Wts4{`;5S`qRh1_Q84g{r+Pw?|c2|<2K$nY5tVh=&v1mB=+)??QhQi(?gwq zedABR{lGPM{d7Uyz8~I^^WY;bMK6El%ef?YZsW-*VUQpPsY1{en|B%zvif z`*%M&=hs(!cgx8OzCQM`pKh5`HsPt4_I&r$8OuL&&79>IUi^cPKX$=&dEZ+$=ehqn z?z0)+-~7puZ_S@mHs^sqp8UY%S8mvT%$)0Y+}FLQ_PR4WUcB)171w6$n^1k#C*HZ^ z#?$V2^OT}%R!p2Xqix6Rqi+7$teejI{BHTjbEm$rX-Tx?v4byv>cPRMKDBYd8AHGI zg$*bDYWgY1Us<|;!mnoj*V)aNoc!RYzu$Jz^AFtg;Qim6`BMGP5f3fCcmBoSj!m0* zcK5L-R-AvqBR~1*#M>{9Y-{`V6W70W@Tsw1{==qAF1lm(<5iy+UwGa*b(jC+6SqH_ zvE}*^-N*j=-k8+q};127!nwH2U(3S8r`y6JDq8yUtu?r@>QF^8iLi^GThX2TB@ z-}~;iT;FRsSgNL@yg~k;-E>sSD9yOr5OBwECyWWE;qfqLbsuDnqO`tQX)&k56Wp0K z9&6SxeP&HJl^n_b)A8#V9c_9hD>l8pd_ZL4wfQqflMmu`;rr5X`E%hlf5G(pFSY6U zHl?vKX&Go-_NVD#GFBI_@vwRIzcrk;Uk0{Z{W8$_)AMntDbkdRo_Jq%cBTsRJLv2_ zUD;iOP53<*TDs;ttlfsT`LkwQFE-!qd(1c3?=ePG-hTNht@}*Z9&8v_-o_IAW_3SI zxq6huph1Hb1`Qs}ENEDy?64UlfF5<=*YZ=FZ;dtxM;l+RKA`Ddj0bKA)LdVXx_S?P!9r#t@x&R^&7VEi+k|6b?Mi45y@ z3mUG%`L{ZM9X$0L{qH>9`EPap!=0bTqx6%VfAe#;{IZA9oN}>PI2}!hZ~)H+}WqxXTy~`dx66-hqD}xIvjEM?YnI{y$-+XaJR!RINa&* zK8M>J-sSKPhqpPr@CKV7{hY)7+PB(t=@l^xRr#E_0!`TA$))_8u`Af0D$ZgK|lW; z_$h?xuS@xN;inMxUz&=)2S0_de{ISirk^tY()=4z{xSR%?9b2Nj#T-?@ly!dn7@ly!<-$V|O6&?%4r;)hd8PcDuq!kJt$q)d%9MW_?g|}1Ps%^um;O-#Lx=Q% zav-jDDNXrTVpmWR5Ivf$0Yqk};%~vO&zyAI;_$k<5fB!_vPeb(gZ#sg1 zGyV$p*Pp%xKLz{i@861_g8lXPZ%g@Ui2nW^NAT~$U%~$R)A!(~V1NDnWjQ_y=GWgp zmh#g8{r%%d@Gr+-!Tx;u15J@8HJb${c(1b$#;m`#ChPBq-|g&!)RW(y4_SZTe%(dk z@Y|ch@o#l@KmMlMZU4B(;hq&XeDqq2efL(kKHucRb+~X_oc(~aw>j*GyVd!3IrqH| zi;KVa8k>$hWAky)*$+6p)UAiMxp>;P*l=xrKK%F{mS*ce#o<{FFLb!akH^Jd@7x<5 z-sJFBhqpW2_Oy+6hoi4_<*~%!7KabH@CO|};P7sT_d1+#;hP+8b@}PoXVd9&xX0mx zu3itg`mVghmRqZDcm8dAEq#Z>2OU1-aLj#2+~IPE7dl+yaHGSUT)t`?Zg%e59o9Ce zzpelDOgldCj>UTi4KntgZ(CeA*kT(RF@9&??eKw!^WSZ8+~Fk|)?V)HjYF-y(%GvV zjz+C}VW!1f9X{yrtl`#ulfwrbo|0wV8y&8xvE^Fr@Ir@YJ6!H?$7Wm32OM7Xgthl9 zvGluLy;k4o>Z8fxsIynOdAHET=i{ie_bjvV`0hSF=-hqWJ=;jIpDa=38- z+%SN9dia_F!c{rGmq;-sJGsi8ehec_pczKmNv?i$7kEP`l?zTj9S)*IIFSI)6ML zD7}^e=mxv|4MewP06PDB2BN!l0J<)`5XEh zh;GRMbjsJzx*v${P}$+@Px&4C8;GuIfb^6PqQ8OY77jqC{1N>PL{~Wgo$^ieHxS*d zG&=u#{qOVph2MTmf1t#s{0nqSn@(pkbC`dr^QbgGzyA%yNA~-(-`;$3Ki@tMSb z_i>QUgU)ZC?_Q0=Qk}E&Ew(50nKN#n-~4>_*cG9M^2w^tWV&uACHei zHKmI=2O$F|2OFtIyygI{|o)} z(!bA)1EkmJ%EkBpSLvp>^#0ZI^wW#|n{=(ew)M9=?E}-l&;JfTJ)h2ZKhpR4=5Blr6_nOcDKi73yJ$^g0^H%z-&{u&+8t4C2evH4qOkW@Q>r_8K zKK9#3#{m2PBhejcKj(jOdU~_&vGZ$sKK*^*Ky-a27B(HJ{07=z`TZh&9QD)paeDrJ zI)9w?bK{5iaggr)^|G$0?Jra={|~H}mkh98E_UUSUM^-FW4-LtrMJ&_qtkZw{`%Y& ztY5BvdHzqY&s*I%=jX#!H+KcX`SbmcG#-~Yx+C*b{FE$yS33INzd9bL=d<$We{CEO z(WOR#a30lmq;dTJ^zuAXy$@8L?@IT-P@d^Ep!F04o!^3>{P`d#y@uB?>h7B{8oNI~ zs=H68Zfe(`zn)EB2l)PnFaFb50u`K)^P*Ux$pC9J$?K*EL~vSc{e)sOCNVOx&2UjyS99izJBk= z>yH!uc}zN;-*5f!q4by+2l^dpoa^fk;TZh>;HTqbKc55fQ;tM;ql>P8N4${5PKk4fip>m-g{@;Gy=<`9+ z+snK0L3BOr)1|l1ccXisf6~{^{C;TG4V35m{1ZD;1^b_t*1tOb`sL}*69et{)A`^b zIk*+!qSDrea z`RgX%->?05r6avYx86#x_kZ`ic(hB{Zx6xm3y!G^y&x_29|^9LwT ze>@vV9)%ZZ&Cf4q|NDHpf#gvNk3ct&JPI05-!(md+)Y29E=Z&E^Xuo+r}N!ia7m~0 zzt10+2I8~wDzEwZ@%h-N6W7lCeUYD@f1lV7?_)ooezC#9$6@LI7v_ie%hR^NP(4tdH3OVi`}g4e_UvQ7KWrL+ZmMhOes~}Ibm{%Tw;!=T z3?R3b-rxQ7{QmdvjuTyFktU6+$J#-`i!2m zbPh)sT!*};^r&~A-}j!ibT4p(25 zX%n+A-|Clls2o{$>>hw_oXepfT{>NhqcaCYsjuO!BWL!*`}8LLz&_)DYQFn-+g0F` zLdGN2*FgO9f$AsjV)vW9Uv7SR4OBlzIl54I+1k zdDEW%)pGXf|6eKR<}y2f7$t133>8guX1^T$_UF$ZjRVk4Is#qI0Cc`Smx0o&8h~y} zT6#XcpHJuA4;^WIXm|Y8Jr3`3c!$H=9KOflEe_x6@J5HPb2#a6gTu8BFLk)u;YAJ) zG(J^2|8j@p4#yl8hkM#Bf4Ixx4u{(uZgsfD;bw=M98Ne~<8YP33mvX>c$UNE4o`77 z?r@>QF^8iLi^GTh)8@0s;e!r$Ieft34u|(T+~)9Zhg%)q?r@94TODq8c$33T4mUcS zaJbi$uST;=dWhbtYP<#4&fQyh*vT8?yGv zhy%aftDBm298*8v?2l^$wX3c{R^QyL!4@xZ*dG@v{rmCmAS&+LD@jCuzCCVia_}}^ zE=hY@|KEXpt0&KfMknnDtjYf#=WbF{H(yQw9Sw%1pl-fwEc#ATZbKX)D`Kq}()4`->H5n^3x7S*e@SrMuyDShu}jvGse<;pjGN zpW^UBhwB~Qo@v`vv%`%JAN1)Su=G)fHQoOcey#t^kkQQdU7%CfaZvyX)4wbhLp;sAv2&l(h@oz^Cl|`5pk3o;}Y|N@p z`8A;7u`-d-=vD@rP9rVw6rdin;(LH9%!&!*o9f~ZNL`Hitlvps_XhGVCjZ3gMW^>60_nPCJ&Wq zm=$k0nmk}u{3#%cS@9o$L&-9Oi_n*S5VPvdz65Bvi!uQ(ooe%+06z#s4o;9(@a$={ zjjjn&1zrKDyW+cmoH#l2)qNv)*lf&0Xm6*H4sa{^QT$!CV^;hUP>)&h zPb*0mv*Lq*y7z!TJeThxEycwP=nt3`mjkzAt_1%#pzTM_94ZySH2Rm~r_aJ2v*LfA zGgNx-FO%4!q0$X3rM?u8I+uK7R$LEMU{>4;lwocI{{bk#toZVaXaify3{GG^h*@!B z3H61!34HIxlr?#41^*n-F+_3ZCA4|MC_V+)j=2(iGjPu@CrC4RZykBy+dIIgt)>qW zrV4xwP~Sbl;6ZCJSC@(6a$r7Y#j}AWm=%A-xhKH)0$aadX7Iwb&=5xPr9dfW#SK6f zX2o|q_ZDzT!lqjeegiP&d?oz`Fzp$<;2OU10`hR}Q27$ju%*o4pJQHvS@DfGK!aKF z%|JP3#g7AV%pKsr0#VG0zuYubUcIx-;I>Z;l>?X+%SOrwv*HJV-I!a!ANi!~ci_@b z*}Rp5uK=`c6X0h6&3_j-emnI=dngAl1N2)G;6cqcObk2^m__?n{GmH&5117{21GF{ z-UA#ON&dl;H@kGfZvv*Q?i?!lfcAIAHvlb+dx~!anlU$nFWzFyxd#0CyDV+%=V{|# zr2i78{2uCO8{-~n#lbfK4H^<_SElm=!+?RAN?K_7Hsmv*NdaQp}1U+fM#5w}C(T zHR|pS@&F$5@KEW(tav)G53}N%AEggsR=fk)hFS5#)}gWqa~1d|U>faK@m`=1v*P<7 zJKVvg;>A6N=)E4buwzLT`d!O=GQ z&Yvep415isYl9~6l|NwaBYYEhc{}qW@g%@KKja&5m%WVhz#`lgzXHs{ta$5BsT<6S zTYv)0ik|=?m^;92&)T#)z-RrEG4mzL8QlCU>)rzX9dPi1GJ`W-WbVhTcqXtLv*J^L z?U*aU9|mfYjHTdre#1C}S@HNT@`G9N_P1%z>*-VA9si&Y7O=(upY;y$V^&imwFXm=!+^ynPDeZ5C-}N6ng{6}&tLckRpIUjSS9cEv+-Nf)!?lgmgKv*IdX zDQ3kNO^(WZ%r)TcNAm{YdddO(46upsQrt9+_c1Ule*V~~EW)ffHk~)?Fe^R{n1;Cu z{B>Z*oy@J^*m2|sv*Jg9Cd`U|4J0rt{yVS)vy_uB-U;5#7?l8@d!qfW8t^LK=;+;p zJNQ0e>yOF|e)Ht0Y{abij>@RiVpjYWpc=E{-vaY7m(PvLmjE3bTfyx>8F^N`@{Fit zVOHD#yq(YYg4^dsC1}8EQm@6X2sV6yD=;N9Izd; z;%@_6Fe~l?He&7ppKxZ>jG2|-tAMui%MAVz<|*_q#hGXE1~g{H)1A2zybIV)eiZ-n z+$dT?%M2cK9%YWX96Yaz^k_d-;9q`_HvlgvlP++5byT|PYYFfx7gE=hPY-y)hoZ8N z@QRonW^gmG@Xj)W@4uY#!L0bJKoqm$Zvlrk(;vZW zYw1(8fhO={z@ncqmx1@K#2vHZ7l1fs#V-R9%st@B^_1^^$_;!Eu=N-0P5wWo&OJ`b z@$uhxY_;c|J+vobXl0`q>_-)$1bzN@H;XXb0^UR@HIH4-uOv1${$rxOmMqIcL zZhM67**6UDnaJGO$sC5Ylj%d+;)mNvPqr6(JwaP=@wTTJYg`;k;&AZ+a{L?G08Mc{bT{{6-Ih`=aJn(-rtg&{&m!7q@`M-YyQhyur!knU%tb6adA8G;^Ob5CocA1 z&M|SZob<&-H_=K63&WFC`9KypeRo#UU|w!$m~*&;b0K zXstF4@uo9rJXjFr*bkT!xHyAU;bJWrf&1bARpcN58Qv@?<7S3i>p71HvwGSNc_0{WBQ8taIs`9^~A+38~J~@ z7$&8-n7qj%xGdPIF9Hc1-Q75#N*-? za$+{;h2N4ETuk_y^%=Lp2_g31#5lslZ`eLSx%d<9<(^`~{GD8~l>3f2m(0Y);yv-E z8W+p=F&4P!CS|zzI4Qx!d87yzKO;6g1o!W!FK%N!f&c&SzW(38@2bE3I)==lPs9gE z4K6-Ks&F5iaFG7FmA1gChgpC4o6A0U#jostl63(7|G(oaKKvW~c8X^exP@fl;%mS2 z%@15$6LT@;4{IAcT>Ka9;<^jK3r<+i8xD9gf3<1^^>M+!h~B#}Z4&rfg9)bbX4YGn zc4mU9%w*2M0mRFCE>0w4aPgA13H;4+p10u*#EFXoN$a1TqAbU|QZ9}m9dU61(Kdc) z+H+oBr`upbe1dUMX9rwBa&htRgai|Zi{~dMnBxz!4J=DeF#B;gTtI5MuZcGPesv8l zUO=kw|NA$s_4lsr>C~V87rPTD?u3m*eG-CknO2|J;4c22u-1Y9`*(%)_l0fU5=-E;vdA0i-TPBHSUHf18MWt zf+#P$Ex|+v@;)BCo`i8RLYi<>mSBSSbFSH3r|<-+;9e=-Foyob#cRgWC%E`w%*7z- zNO=gpIG#DcebWz1J&Y@_1zfO(MBnRx8;I_kVuuHqd#t@;Z_ID@g?|eo6Y`VfY`>am3M+Xcv7VP9{rn zAMF0PRW~O*5_2;-!JJJrrs8xmlXi(;kt$ql|AgiKCmHi8);eQ@Lx`Jg#2utBE*>F0 zaZ|&bAsd(jqJso*@eZ;O7d>PqF8awNJOFo+T-Fe=&C^_KxL8PzT*dqL@G`O+7rT=t z+zF2mjfI(-V2VlOK<=mTIkFTNOP^s}aB&!^!NpoK29Ln0)2!nJ;MYX`EM7XD>wO!~ zV6cREa2Kp34%#m6C0V%mD~VH|%t$cZh_(^uk^prUKOufR1b-zumpI^A)-L)aO1w;c z1?z~m5q}}m*jGGjW`e249q>7#>%tHJAX*d5a|xysne!m8v*3@U8W;Z{mAH96!JJEU zeDMiVjf-e%MN)*XfH1W;uyor!Y*^ zClNSqj#ci3J`!C&;b&w7{VD!L%J2v@b7TDp|3{iQmv|Ft#9h!$bbX1hk)Dj5xP)}Y z1Mr%8)_GmfO>|yyE?LTP#3iH_55UCvRzKU|NuuXiQ_HnXN~xRJgB0OnH7UTo@M|)& zh&c>x3s~baSi9f_B!G)IksvPikCnUORWGp*b#}r#iJlF_(_|8L6BA$N+QDtG`Blbi zAZrx7-p~AJUvUYE@Qfi|^BQA-dtm=M+Rl01u-_8uJPL;%GUrj|1H5S&{dtnQ!I@+O zF4mI-c-QLNAiU{4tKVGk9}=Ap?4=L3?GsHrE_NX&(hH)z1aHB`9%KjZf}@Fp z=TdQ0JaxduzY_VEc);@8pZ9(<#x<>6k5<|1ce^tuSc%Ig!O*SH6MOqv*9@s*nrO#?12C3U#C ziOj@9u=ZB^?E&T?{PMQM=$aOWmz2f&6P|Os>YCmc&Q{lWVluuA2) zSTv4$<6<9DgNq}dpf7N-{K-U9hKmPha_!*a`?IX=#XY2ma<_o+x+y+Yl)`of7}xn)30@Ge~izh;L3Lx_kpZe@c9PD;sM4EeoTD0 zIAt~4OXM)DsuaCn|Tq8Ecpu)Y%8WCXRIOJ8?=+uK3wd+CDBa6#l_pHKQ6vS%5d=; zQi6-Wkk%DEW5C}@7UkmE%~rWMh#X-XH~f-lewuF*&66aVwu|5HVx9Exz7RY~T5$7y zqPdXhb%!{Xlyk2XA19@_c#ss~;>lRKV|Su)ldhDD(@8EazDDA4@#qhn>yJ)R{)TVD z&5w-BPpnb6_)D1U2p8M!(Y);xWj0=k+u<-$zci{nApDk8 z@_Jl6EV???M8 zo%-P70aAvGf0Gj2)FqkpH>~5>VVgHCx4{>Qo}>Km`0mkaPK$Vr@m$0vb}iQcl4hmnmy6`r#9~aBpCYueoSW5!9xU^le@#6tF zsC}|2p%2AZi31luA$B|jcO)d6h4fDZ&QDA>GjZ{{q-5j4#Wlo@hhXRAD+ zO<&3b@RtmZkDJV7Q$QT!d5(gGq$4iAo|SA`$MM}280eI2T5z#bL9z+qVkK$B#jFdG z%^chgtBct8EBXZX>Yf~ZPH@3_#ngj!*bkq-ntiB)AD-&L_HC(8&t$WcXqzxRd|k3} zuAsee;~=(KO}pR|cO;v5#?A*Dh@Q8_D~Irne2yvJMIu)+Z{bFA{P#{#?j4$JcH`n1 z70IRv7xPF19)jD3C7VgKB@FwzX(#n@!@S}271x~|4kWudzBuJ>#upcBNdxYOsrN8m ztPghhe9Zl@ndtKfF@8j{Ig!eH7w{U=g1g`Fa_j?%^T)aN!;?u-SxwwpY@BsXW=)AT{<`1c$?cxLXC7U8#e25g_Uih-g z>3^}!SjK2yrzp?FkKi`gnM98R9~e)aDHk6i4Y&_p=Shw}lepjqr1iRjDEH%j`cv%p zK(g`SZule7+TwVau_Auf1RvZTbLS(;=3%0_5roHy+GQprn@pnbT!{m!X*W z55sm7t>cK-5F76mhy#eh-LRVIT;e*?mpY5vNKf4Lc(QqtMBDpRGT+^?`pN^xPoa&B zwHIzBEx+?T2Fq(17hD`q8gMVXVF7)`F~yxPF>i74H`4k)=FFmGbLK17@$K-!SFPha z;B#al#}VEBWHSvHe|VQ`3Ky?^k8|VVAX2JrVEgy2{IQUQ9pRsa=izw{Lv!` zQ_POB^bg!j7UJU1q#hR|v2v4;V%jBBPCwY-ourn}NyRB-5-z?;#^B;E;=;uRDJiBH z_rn`AQp_~!Qz6YFv!VPB9~J@hqZk z9PqIm>zH1ccUFq2)EtAmJ5o110xvu}#k8dGIu5Qlhkn7ujU<4F;2G!ApSXCgJ;l`E z;?=~1JK<2G&(y^1^Qb@Tw%CdIa0lE)YIvRz_Yw~-)?SoiD)h_)>q#*#zDG)NvFKu} zTpUOWDR;v)#7TR_ySk>BuDCdXbi}=Ia5u)6YupWsE=e&Zv|X$r4qQA)?CKNP){$az zIlefOw9e4`6&#a+3%Tr7bqR-336(pWIh@X=al-sUIG3&2n?&0q4 zDdyg*I6n6&4_ri=C>Jm2LI308<;0IW;iE*y7o9zs11g7uNhR)v5BExm-bcJJd?W3p zJOa1&NihX@7{=Y4Vr;m$k{r2$_a$IPU+RX7*ON`S=qIc206f?)#rmEY>^*?_#vE|L z0j`wjXNztaAi?Eq58oTexZ+|HS%`;W+^x(#p4r3!gZY2B_%3P0gK$4tii&NTs-XM9Ju%osl&y)pG+}x za1WeEw6B=`6yu1CPfelyxHy-T;NmG#gtG{lZDh`IzLN~!eVRFsi(RL(w%|^fJDs`u zCi4O2KFgfvnavJI5v>UxxZpYVWls9xgy%UI^Vth8n?-#n7uS+9T--%UaM3lJH3WCV z_ee+TCSLafV~vZqznEfNLxSnWVao|Gsp+6_@7t>d8@tgFm%Hg*}=Mu*)p`N(-&Qj`$i$Ssq7cW>wJ#hydM56VC$H*MY#p~Xt zp14>>Jh=D~apOTa;T@|EURX!^QZ5cz&V0bdUsf>Za4|K&_P98PoVbKJ2J1+4UpVAl z>QA|N_&u&YTugbN>j)R`Cw1CaB+-50kOtN+?F)bTfI8!1>PqU2i(`mO`@%XB-50L; zkUCQ?p8XMX7#B-PGA_PJTD#Hbu$gFIamL5oV<;E%8|iag>_t}L;>%>I_Jz$Px-XpZ z3G-X~!n4-0-s0jlWCSiQBxTwcHk0VS@K}&_fO4_ldhXr0SWRrW_$@Jb7{+~S?JJ(M zfjW2PSrI<|8TSKRTuK^ovEAparML|i5uH~&Onj7!6E|@_TzrL8;$kZ)*S?$Cmz3b* zE>eh#|9nZ`;^H|??8Dp^Cy^s~1m=EC-EcenJY>zc5InGrx@jBuMlYd~%QoT-WCSi=yo>pOi%$_JF1}10cmS^dK6c%~y}K=s!1X`I>I1j`WR-{E zzHn?C_{Sd0&E6Dq=03}9Fmu1Qq?#jLcz*!qB&M3(xOgpT!d>vwq*T*@i+>P5F3wL*H8XMXD4B$dDJiLD3~qssyR`}d#&&i(t0vDHE#WuLOob<%Sjif6cf~R^gjwg8!swZVc z&nMzTq-HGdGsBf+3@$d33OodNT}#{b{Rg=4hE!8bc>p$*P(NN@gkg`~jJ2QFCNO+U zs%gf>f&r-}h&$lAq4fU@%3*dzYV^AYVjogW8^vLy5ck3J?zE2YfB~{&FW)(Yhe+Ax zf+$boCAhgO)yyWUj~@;nmTIPP-HA_|-b0dcaSu8EGvBL$f0O;VIC=za$35`Pkz5zFMchRUE}l7xd2%6r2tU3zHTwRl zc#Q0(T+FGYe{nlJf3&rYIEbvGTzrBo#eJ~mK5H9s6`4c1xQEo>5qSUo^iSIY}!VuJ`@hS*yG`t z!wHXA$MM4O1g;I$4Z0q++zoGjEVezYm`J&<7dUB>K1^L-?r-GgX7=fT4NpX!n0Ob?totroy#6bHQ$hEU%|QWTJDDh?^)Y8 z;Odx%VEp@B`|bH01U^WTslWI*Y2{o#_%T_Sq~9N){tc`xtlOfCRO4>=KGAuD@aB)L zbGhJTlI-HWLHObt=KTQf<8T=X;Q{#LTB|J)xFl$eQ4ofS+7*Gt>sU+KUc7C6s;S4t z;bbB1fj**t;~<_U1*~aeyH8n*a2vdmR37HDD!BJc#uOJ@NHHFP!?*F=z&h`NKagl0 z;Mv<*hZA^)hdoIF+l$weEZhaZ_<{DaulbR+o#b-;igl!wJ``7zBe*!_C;9>R!3klW zE11t>XfJCoE|%?M4&ZM1_I~c&=kV+VpZqyCH{gGyk>l77P=6BrE-P##hJD3R2kGa| zJTJk#7S?J!2!|Z9#?B4jk9h=Mebj2Z6OJOQ4zVwM>ksOHiviMt2jNbl{t+h}rwx>g zkCPzogZH1H&dXVc;TlrO{1KZ^axcTh9mI}@Vb@cPDfJY;B};K}`sq|ti~HawWEyio zy!t=Z9b9~fl;YxaQjGiHR~^!fU-xKuc}|+irQ8W$$hF)Ld*!E@6a5)ec=RmGO~*9j zK0D2LCNnqS8Rw)KFLe|H3)r6Xitk*QW}0yEQ__fs;IYCqb9@YQtV^1?pG2nfy>VFOOfw-|e2xTh zKRiZCsgHQ*x-?USi}zm7d2w+rvEgDkRvv*j+>jQ%u060zX#E*O7TSW6vJX}FJ zE^fRt&CJBbtz;4|en-aOVfgx8R$Bt_zELrUFWzg7g&$^BTIF`wd>?)R`@)YW&~MZ~ z2pg+8KJ^j*c!DOF5;SqS%i}clWeoF*C_cHaw#kWWm9)N!nAKQzUyqac4;9_4= zhP&YkQo;7(2X$$t7#FvbLOcx5eIv~{*x0oaoq!NopgH|~O? zi0((?!wqR>8ta%ikyPV8*!ctIB;ONoz-Nj2#1994#JT^b4)E@eIj@sB3C(J&4{dNT z(ed4IN29e(7~ZvpI*(?1cz)2jejU(kW}TsKHuyy|bK@`OC;a>y{@-%`9SywmTiWst zpX~s_`()IKUdnXO!Z_Eo_gALx>+2J;aB5Va_40Q?5br zZeqv92Z;^$!Y~=5pt zk`&`&mt>nMz{Q?K2(3Xj0}4z}pJZG&S;#m{`#3wFx2@o!7{j2Lz$mAL38GjY*Fs&R25(KbGK zoai`W;4IpLiyx85e*SG2JW8@C7yls!7vnox+t}bxvY+k6i_W$2ti<=^;bkO%izCTQ zTzrUBd3v9-TJK&q-#QnVHg`X7KOfxR-BpdKB z9MOgIvbKmB7ja%(>_IAV7o60Um}I$YdA=HOx2 zxrfd4-NyY6-b_vu@OdKKOv1SMBMIRVxUMJ1VJ?N>e$sU(_a=Cp*l_Xmb^P}Zp5fut z>)8$$*OO*E1o!r#U$`D4@Ryqz8~qm9EjII2Uz_n$9)?>7+Dwfc=9SsZH2T2~uNg$U zIF1YUyTfLDyP2PG-4ObMZ9;I{Q062qb{l0gCAfGkDZ*Xw9-@C2BNp9jGv%C1tRSVh z_|<5xJ6zmPR33qI@3)ya+z)>lYcoeaGlPk~6Xk|WVjh5LQ>=5@VNng^ z&3HNC+^II>nnpe0na^-ta7^)T(iaz>BgMGbXS&VUaj`$K;o@z?;NmC}xsP=KE||e} z!F&+=&*Zwm-S9;cO6qYj{dwjdE@qP&Ts)6d;STsXX`~ND|16tXii@9+T08`= z^YQ;&^dY=tHhs&!PPlOnV}ys`Pjeaf-i#MKcRqd2H6p&SfaBnPIPoR=i|u_dexY^! z+Tcwj!ZV(D*DK6_T)dkEa1WeC>TvPdSDBx3H`uW`{4OY*FI>-*YtzfP*UQRfg)N&jTd?Dt3`0l$L>puDrUj82Y^UN>aMY=M##g(KZ9)y>_ zZ>>L0c!!+tC5rP%4aXOE5f3h2*kHNXowzA?!sm#dXB;c(OQL5X+lMyuHqmRYAUs7> z9$95GPk&^c*9QkTavVJi!8gblp0C6XYv@BcJG48ZQygkf#;o?Zr75Biq_gLfNfyee) z_hqx6>zL@dA_5zJrXI|VAbkFSb&dPs_oRwCh?5V}UR<0_T(}?J*TQv_#JS+hhq>P| z)&ck%*}#~Jg}*SLadFoXu1#D#Kx*&^EI!JbKwpV@ztVTOcpf?aYC)8R_zqmWnry(G z&>LaW16lHALHpt4V95Q32R)u@TrqHV<(O| z#d?T~lS!l#*C1R?blwm=O|(|qPP68>GS*xpE?E7KHSYd@nYaI09yaNwzD;`cIt{@V zqJ72jXQZ1Gdpbq=EFQ+i*J3Vy5c9y9>E=(OI`9uejk~RNOb>jOXkG>2t?kmI&w+0E z4^g?TJ?AC*9%cky7oQ&eZ9^A)E#{$wbn_pHwkt8+%q2Qk0JcxEj^l@E$<{V@n44nN z!44;o=rc3iMs%Do+>{z?J8U5;kHGje%YASy(Y_)0vMqLAc$#RP5gi%nCd7OYuP2ST zIDpjSZa5^%I+q*nAgX^DmUpn+4L>A0R}kiB$JzoruG2nIN?yTihGkd zgVf@pdmwWa7psT|7oQ{*xcEHji~C{vt*k9c+?!y-ZCo3A{(*nq!M@br3}IX1#>Fct z(v1@ruOklJ1!s~t>M3@-Gu<2+&F{0pD@Zdge(vU6xVVkf<6*dbIDK2mSi?QU&N0Qe z?q=L^v7WTv%r-Foo^;c-p7(fR{TTWO7aK_&9)j)0S$$=LEktdMz{|#S{7t+DhkGC5 z__+87Y28SBtI|z(a{O)H2ZMs&PTZ(aq)sD=yP1W zob<(=@CQ=O+>XHeywr_jimgvFS8y@oDaKUig71^)8V-+4VV*E{riOh=A20l!>}GrMscFn}T%1c*;eKeQr<*a< z-v%F@K^wWQy>R4n^fhDTfrFlB+;KO2g6O^`9wen~FaAY}aIwuS)+O8q7m;H6Dgf(z z)Q#f=VCUJa&uk+Oc!BGuJ>M&a!$}J+jv^u40~Zs$XDIf1k$rLTR$_2B+&qUl#PLJ$ zIPv4+d2?BRaPh)c;dpv$B7g7!DaKQPbGDR?O)=U^qUR#C((aX1{V^| zd9laKte?2pk2K(J_%PA-Vk4zTuHQ^2jKb;39k9!KYaMpLxKFLQ zWP{fb8{3E_8)z?e6HAE)cfoT$<9cTs53DDv4zX6iOFyU1Y$Ns}rP>}&Bt?v)IASAf z87|&Wl5sCA+!U+N=5+Hfi9WY{$+IQVXW8Pfq!1T}HBoO|^pIR!{3%u*f&bfLwaW>2 zk^Sv>{Q^6Ln9sOaM1r_jP3rN$Hts1z{UDy$&T)7xDPGykJj9*wYodCF;Xg#Ye-*QTt<50 z;yTh555dA+R^1$M{`d5c%Hba*I)8Svwvg!O1<+5_mHKs5TwL5s;_(PP=STXPwu>dC5f`VDdfW$B5Iu7S;n<(7`gq~%MD+~7Lt(4jwTHeX zs%H>x+{?AYaU$@NpDE|s@xrAFXUjC*1G z->m+z!70C6edvQ%|6%o&5B_tUcG2gyKhw=Er&!nM2RB?#G)5s9ciM7s80k5UYZHzl zg}69|vjYtw#zU@l#36x&oH^T_&ABjeej|9jOe+%@E|!} z%6%5jNy#u9a4|p{@E|-pHN!N~S7HTOg^NAYGE5yV_91g{@nPb{#ks_T`{A2J^HBVN zR8TISA|<%k)<*qtu`?;a-7q5~BYIr~GBeDDSsBsm#Q|?7HntJ(B*(e##K%b(7w_vp z{c-UT(uj+zNj)we&(1Ilag&o_hLHLlye|!Rky>0lNT%Tt_+&2Szi|(R>+)$YE^a3t zJPapw%!q#1)CXTL&M=10yaMp?t1^tAz7=z?&M-4^u~NasDpHM$Q)A^m=k!LtwUnMOo`Hck_|5S!)#>J1OaxPq4N9u8LJ6VW_;jCxqf1c&U zwzKG4T)dD};12i!*}sw3hVX44ZNbH_W^;U8ta^cK3Kt(IHMqEv6yaj~7nyIkcya;t z$Ho3HS=)%iNde^^_`=JK`#1c4GHfAZaPjB5kRzY-91b5MJ8*F>*@TO=qyZOg-}B$Nm`kSNqMc}a zu{Wv4#hGLT?uSQqXPDhFMXg9qRR$C!JpAr3f*>}LHJH<2JNHj@Az zhLy*e|IaXXaQ<1D{M#Mc2*ZV$(KRpvuk1oOYnS*XDd0XReowM+aZy+P+$JubxYQ~) zj!e_*GPWPZIKsoEg>#8*F3&X0xcKoEnWhmJ*OPi&{EsZe#nxi#fZMLhG@VElE*AF8 z@y@xf~|jUD&GR+5a1 z?MgDu@wYe*Y$f|~TklLWxev!-E%m|1ewijnc?e!SAk!?xopA7wOjC=yVbxIDf{Uw0 zW|~So2=w-A-+*x(*hK6cQ@mzfrisVJ|29y!&lppf_8IdG7w;n>+ymo2&olvC z%-GBvz{P9GOxy)GlS#Pv*BA65F2;YEY07aM97}R(yLe_3$Hm2=Td2d=yk`a9`HD8< z;s>M&7e675xY$JMadA8G;kK_c%`HT)Q{3>(?=p>3=Y^>|ne(_EzOy^iY@nZmu=WSW zlyY(Fe&)~yzIz4_kRx~m-qS+AGnYKD`(frY_c$k<^DF(y-1ft{{ApXgkKu4I6MH4k{a3~#+}Nf9rQW05trHsyDGSNWvtu@ z?wW{+DZkeh|Z?7LUN3|LChjd=Cd!UzlZVxH!Ks z%e1!eJ}|tiYnC~Ji}T5D+z)fR5uOJ`JBh=^%$u|LJqgxZ_yh^#;;WJ-AB3$&}nq@lT;(C&di*0YC zU7ymo@Ft?~Ly8kg4Sgd1L8@?jS(ceb^xDk_L$_x||1F6aHz>=v*+%R}T(}c{O`N!x zI5^7`;G(OXzQx61#Ngt6Byt|@g5Q$;xY%w;mf3)d>7+s1z~e)ylb&NMsLQad=x<8c z;m>ZXPa-gVIOk%nir%}~XKF!|K72p!ho9Yp^B!Ob-ao=>qZfKcWtpJ1hg--I`btcz zr2V*fAqnCRxaB^a`4EPSpQbH)nA>p3vsru|#Ci*BW-$l;V10%giGJ@?JVpGpOHB7= z86R$kcM-it6F(u7C>Oscm3RcE&d!Ry))1c|wcJm|EyRn9ZC|k52Ky5oQ(R6;D*3Dg zHW3FNhR?o8U8%EZn@`{3qL)JSoD(d88vQzC_}2v1uoL@+)f>TycOp ztO7-*o)Y3@e#t0Z5uEAoiy*^{cV_+(7~+2#kK!-Fm<^29hrlRf09aE zY$esW826u5F2==Wn^MYc@cXoE)3Tm91F!Ft&2RZpe;6#vHUY{*a3Ar|7V*&kvP}st z+OEttMYwo&k8BfZ4-)yrAk3d_$Y*WX1 z#bssLrV1CgkP)~zW)R26#VJJPKKK^VeO6pYTwGsb+Td*C#O?5EqHV;1#Lm9rOk%_R z@MEHF#I2-t9rs_DT%K)?;C8r_oY3bH@R~ca%?`@NnL}v{F1|*V;sH3YBHPTt#XE=> z7yrGJ`s3pCyQniR))6NjfKQCbHeGRXBgw+WW)g>sKaHer!Gb7#l~%d9i>N#d`;5*u zyK(XFaoMI37u$``Hubm-CU~-q4;OEEFxyPR#Svr-?t!&c*`^G4R%e^RWCX8q#9v5P z%Egx-%Qm^V*i7PaF=ZnC#`bnNaT4{xeQ*g0;bND^sShq5n@oLh@uDZ_H(b1jcyJG_ zpOPK@zG4u5M^qp2uc_Il7#A;nCfgL^P8gn^&2LyT-{85=W}9iaICduU4Hus#BXA#_ z^9f_YYb8H?b4_;iJ5B+Zy*Ar4#POa39JDUmEW||*nTd-&Qic2BPsG7I6dzijZ93xO zq))Sr!NnR9Ioc`8S$G&17m*+yfIC0SHs$9rrm&S1a91XcU-YwbYRTAJiO^kfaHn^A*;@ZaT@FwEM#gn^P zA8;}71J@}o*8a$R!2R$Tsi059c0bX#xY+q1eS(WAhdAGv{MH1V-7d$3aq$xp!o}Sr zh>K6h=NKREgI|y;+9J9Va*P`nM-Uh8flEnW-UAW;A;q|un3!V!L>m+og=0v~q;D*!Ea-yG2``{p(h^B(btt;*hpF^7oY3Mv2gKq62QeJB#4X4W932E{_Grni-q@s;AfU^ zeQ`^xcYqBg^TM+GA=fgLR>r%D>t2T%nYK}J3e@b9AC!$2>yE!a{?FJ zUYuhZaM4bhaM2el_rq{k>o^hkW;d(<1MqjUgL;bHF3m9;aPd|Wz{T2_i*FM@om-soa*!fDv0vEfJDm(-ycelpc2U|!5<>J(yIi?gBKOqIU*i4FXF};^n zZikm%n-l%ssS^&k&T==rx_6F=V|ynI-$LKA21ejjeRGUqo``SuV_dfIemHE`pSI)T zpqPuJ$tKD@a0NNOl;=a(W*~LK#ZM?5-?F~h|+(E>ez*o(FPF2`*ms5Pgd~;qO(n3pWq5 z%_CObyzr$*>2u2c@CQ;bmEVwrr-%&~S3E{tpQaCCkhI|9MzRAB!Q_ctvvcVm_!>E) z=M8w(q@3vYjh%4bWa`7czz++apj`is3HBz%fAgLs?DHgJfs0QOgNv(4&WezhOIPv)HB_nlzkBF=@2C8Qj8sZ5~`;zCl(`XGKzyto*N zxtRZoRW6pqTpSm3u{P%7`k0HyVs2h#ee<(_Z^i{~B-6Ma#l*$T16=GxT)21*apPj| zSh)+XCwd(ng2iUE=7a ztSz|MKOAc!h`U(w^s4S%{1I@34m8;xIA>_rR9r*7gzj@e2Br z`&1DA8L-^En`8b*+@tt=xX??S>?_VA4%`n*8)z4ENqpu5+J%b`tYq%l*&e2SOuKOL zvDLI67hfbZad8P*h>N`%t#TLqme@I$xbYL_AuetwA?haXB4J!S6f2LwSJrTyP%chc z%Us39w9lB6xR^z1aIrI~!X0qwX7=Tp3c#u+#+7mR!hT!m!yCDu!f%NS7Y`CA9)VTg z({GH67j7lGFNa~{KGvKiTsyF|)#_&#EdSSXHyn|eYwVoM1M8A1F1F9fHPdi$!P&Wd2a5OY;UZFw2jEloTvNcas1Hs$FE=`-;_aPsO<&q8-cNes zUf8D~*CeyO_jMeq4MeR_=o{yX2Zp z97l{?lxrGrG2>#|jEe^@$u&Ne!*egC&bRQq4M#ZWANpDJ5F0K|Ad%kG4eld)oi1K+ z8Rw%8Vh=J2cfqVHt!?aZ9MN^^g^P%d{ujgDY5PLP4z@3*y|@iJi2gQ{xZ|o^vw<-c z^RLb|0bH!Qp5x=zc zkZa-?3p=bKrBCzyANc1S>WquYbLj_M%p@mj*d8t?nr}hac^=!P@r(zDk}Qo2e1*i} z0oX+Jp1jy`ey*wKHJx}NS%^De84330xBlQGq#hTaB@1ysTwZ5wBc34BC>NXGpdaus zY`er7M;rX$E!yd%-{51*E%(BcL~EK^k!z+CjfUt4Yq<(bn&<6_&IXNtGy84qLU_%_dcOmwXUVTbSXqVFY&zYq`Y64&m?Gj2Qt z8+PWIWcoq8@%ub;q7D597myY_ushFO`a@oHe4XJubA;@m-0aCSHxQjm978rxF774) zT--zaxOj~CwC~k)P{$xBTx4}_zwig$W0$f~9vhd)kJo5wb(kJ3ir}IoDE*ANGm2Jd~Jk-cHJoUUx2AzF9+z(SSW81?wv+}L)+QISJ z`KB-P$_uZ{$+zxJuxGBdjSJ2vS~vXgV9X;hH9y~s;aaf6{Il{+xg6fq(Q+63mXuH~ zrk}$xaq%K@yn*-k;3FiCa`CZPxfi~4Zob*UHhwtAo^Mvk;imKQO)VaRzn^cN%XFd- z3+Ojq5Bi|F!0Ia->_oH{iQ`D?kxo&1@fKWsitNCBFsHM%uM<8<^luWq@J*tBzZro4 z60Li-3-e7cQp!C@96*Y2@#eyOW5>mz#D__dm+p@_8cMDChX%9#VmexmPj=aPeHCat9ni^xbJOr#t7u#fyl+#U8|l zi`U1>U2r-SQjUv{lTzFV4-joHR`_8?`rcvq}koJSm# z`{96ctFPSfNfJ+e#8X2Ucf)%@u+7kX(~R5Thoqr}zt0Qr^w5X6IEr|254`6AYn}1H z$H)<$ImP4$8TXf22Vl(v#u^s`WEC#%AxrTH+&-D(<6*dL3i~s!95q}=q=5R1U(KT5 zr|>;Mc&3lF5x2qB|!ZTi?4zx?0O_t(f`pcXb7mJ7&cf#sL zY{S0d&NtWw55q^7(B2Y`2^-0N)?V@6WgH(DCy-TIlVRfu>O(z4@PYv4xcDBa!^LOb zWo^WL|F6Asfs=B4|Np&*GE|HTlRZ5h4U(rslZv5(MTeoVsIN&|Hd3RKrD9672!pVE zliBm^d8il>gRlsLVo?l*MKKgMlK=ag5uUEXT-k+YHdFFnu`?|0D zy6N8xvvhv(+P)U_N(3lG8^XgdsG2JI2% zzd#$%!l$srLVN{Z#MYvPuJ?&Iv~VOQ$Awd{m1rOQ8Y^Nx70&&DF^d-d8Ykw_!Vw=c z7SO^tW}t=bKA{b0VFtEq1@Q(C+D!b@W?>j>`5GU>&O7KYwD1fpiWcT$1!$osB|{aW zg?U&IExaswTv&w3`2pC1<)MWSrDmvMXyLP1e{>AKpO&Fmx$hRkipLxu)cr~ zVRBsfI2J@l;rCdGz7Uq3nxPh?JZD&jn#WicuEYw^!rRZt zP$SX8d$GZ2VJp@ft#UKejb~@59hc%aScMrJ7k-8*wD5-U+{=SJgN6~T87+)sLA0>; z67CBvd=8W2G59@}FZTj%-VEhI3!5g<7ii%dSP!&tGu9cMfIFwq&R^Mgy(~ku#pFBm zga+2a_!6Fltw#&DU@OtWFR*g7uxmkvT8b79!4{!CF#U4QA#d2>&?|U7pEdHp1z3Wd zBRuEI41S+0zJ(uP>(B{UIRigSjSai_GE_0w5#Ej!qJ@<+xp%a1H8u_{d>-q87B*r1 z(ZY9<$K&t|Onz69@RRx6?*e}I6Lz^C|Dz4K3yaboVV8y63tCu%Ek%dn_(hBjwD8=U zGt@M+aJ(4W2Nz?Rv_Uwei0fuiyTXy!RN8yhTGZxT7dk{a%y~A43PcvTN zeI>N@HTKEj5oP!jE$oH0M+@&O=N{!87{cUu7*43bKU_!Hy9%G9g#)l2XyGU<7cKN+ z{n5hdn4IH>cVbJo@p*f=9rK}u2iB8|&_WNEix$qp+M|U>Jwn^i!XcO(_dw4I#u)k2 z3qM`SHQ75&z{=H(P2M*Q-D~h0KJma#YiS>Kf&oWhJGRnCun60T7C!JwhFXgjK8meG z3wL7WX!UA_`WBnb{42cSHR1#gt7c*w%R~#`z!X~8f+Zeh zE`VFH^=M%td0f4hp%!9W*YI2n{<4wrg%)<%M4QkCJPq5ij_(bF#n?u)a7i40qJ<%B zC0aP(WBiGB!^<%9V`>$c*i0Owg)_F$PPA~$7xZ(RnHwvkuS!X_+;jzQbk zj7RnXgq7Gx`d#=6=0XeK!kp+h?EDRJbqMn;%*C1+*TQ?SCUg+Ki^=C6g$E^QKU&xo zTZ%SepKmji{GLbQrPwsI@HT8bIsp&+j{9VPz<@{oNZ%2k20Xsi%9(DM`3wC>{xRWC zm^{N(yED}2luVvs;s>}XHB&$9Pr#~!EFFfsPP4TA^h`A!llSt&)kz(NBXg~Dym0j> zOGkyHt@GV*;02j_kIoJMc2TDO%!Uu%{WnVo;Q^B@ZHKcly|)Q}%+J*OHfnOFx^`No zT0&p@VYz7fNI1losq)dncQFrIc*v|w)f+ABbzPxo)qlLKv-UBT>4=YCt$774o zK3IxH*6@rK4!S#26{Cf@SP|L-uf^o|Yzn`?_<|wLZ_o*958*CsBieosF@wqZ!fI?S z$Ayj9O0@7PEQpT5YnI{@-b;8ZHXbcJ=U#k*7G8+;M+>jTdZ7LA2|146ge(7^sqErU z_zb4dF*s@&?R=HF37&^-L<yXkpsJ#4TFb7n9?{A=osu z2hPQ|@R<$aI;;sTe6*bFqlNEaJ$3Jia=0*#%t232>7CwQsM+?uWq0ioC9RWXS%v3FCp*?IJ7xu!|b6j`^ z7MAnj)yd<+Fc#!^6qY~A*x*@M7`9zWo3~Jl!cQNkkI=%D2z`gP!~R$%_aYqe1pS2; zo`)q)r;p%xY&}{yJ$c*@yFACeaGfaJgk_S$g}-7pw6ObH?(1_t&j6iRGg@e3O=vfK z7n8l^IQ-%jauM}a0^ac|ar<+3%_XmKUlq(>@LtS@4#Feeq(RoeFgYHBOWS3s_FPB!64vTx z?+YH)AxmvR3lF#R8np0etPU-F`G_nv4=sEfD?rC#vm;AI>Bl%6*(FQGF2z^yfQ&4) z5-rTe%F!kqhK=X7!nN7_9WDG3>yK7BS;~Q}+-TuLSZ}oO9V`4u8f5Q(Fp)E~8J;!dtOj?A63!)>QgsID4w_G;AEPBrL~E!m_iG8UXi8ZH_$KBveb=OA)jXuemOl$<)MYMui}2u!iM=-%0LTW$Lwg~ zR!pIV%@1c$=kj?2_z@OD+e@-kcdSQe#x-1lMR{N06Id7>h2zVJRqoLTca(EKyXCV< z__8uf*G_Kub`?J4{5U+U+B$B)$7{3r+%(sLuQlRpIR_s3Nb(%`_eU)qhR?0AbPSGM zWoa*Ld7O6A7YVp1f*;TU`15M~fVMxGrLKR%QEu!`s&R2HddT(s7veF0nz|OgQU(VvOtfq2~kZnqJsvqov)j zHL2C6EOq{e+ym!(Vdlq-YwpE_Q$L}9IqrkUZsxssCg_H9wphpgaKL9)8{F`&&#mJ@ zxV6R7>I=purazAX&)Ld&;rd=!yUjW$3RAzav>m1;EI->}n{SgEPWsL|#|N9XTRH}7 zzqi^Dg?IdD=^(sjr=|UH{Lhy5!RL2buMPi_rAl|x9{MQ!E8|9G>-yOb(^D*Mhj+Be zwtj9A_Btq=&)VQ0n9(lVdNvA&w$D}t9QVMVux4UFb;wr7U{d#*a0=$--i41InyrSR zh0kIA(Zcy1vy}rKfCZhh_4>jGPdY4HuczF?!z~?#-XoId!1fMH8}MQ*o$Cn49+|BY z^ZA}$Sb)XRKKL^xpH;SJWV3~pt=4f|_-#aFnIp zupHCRj$z12oA9~tkYjl-wD79l*~*C)-iA5Q!XJ*yRyMTildayyWZfZLaeTIFK?^&W z^c~uO&!0fQ)BYF?^v4(SOc_3SVp7B9C-K^O?2SYJ&}_9H9e}%rS?Ab?XRF<3WUE5P zkv*4l&cvUbBOG)V{zMCVjO3ot!oQE9U(sPW@!V{+miGAI;PbLo5bc5S3$oQbbOK&< z5wAsi;Va`U9fOBY%vO0EH(-1czS>Fdf^8>f>pWwJFJd}h!3kGnt0>QueX#aQ{ELpl zkLL2;@?Ow0j~Jrwys*psY_;-p_Bn;O(yuZ{!^KPRKj#ZixSc*l3m?W5It=fmWB5GQj23=|HKBzkyh;1e!Z0Ssg)d^u z&@q_*wiUNNxNE)TXZwb1HTqra9=)&z+ejOP8@4bO(85o!I&=bV_>{i8i{tPY%*1cP z#?OdPbQG3<&U>_>4RF9V;)>V0;n=Skr)XipPR1$P2Nz==w9xqzh8CWelA}7Kg+VMG zEqo8#aUF9pyu3}0vN4DH;QiP%Vq5qWHV!Sk!_|6-akiw{xAq*Cvv}1 zH^QH>*_Tp_!rcRMlm{(rmd`Gu1eIWma|ApsX_E7wuHJ`=yT_&LbPx$R)7w`?}rgHYw+9f9DZ+Nj`F@rPJ>V6=BUAF;d5AT zbPSF@lRjhJEliw^Z_&bbBk?WTfICO!==H1`oul6L6#m^hUiJ0QJ@Cq!>ap8@aoD+Z**hpeY*k%IPK?`riI->({88*HXKc@gw z{+6RQ?%-!b;L(>5t7zdMEP@smU?H>*rcb0Vh)+8#xzvhP_av@8nej_(#NiLvVEiE5 zK8+Ya3xC4+@DM+%g0H4q@!*94On&aeJtIfeVoT^3;g3FI11-$Diguv=&@q$vL<=9A z#e1QJ8?oN#=ej`5BwK@F$b;cCOg=25cQ7h5H zpRgcW-9{hX#rgLWSMcTga`^s8`VOwWU-AX(S=fpdG1i1#i)laFgoCjij0@qT%kVQ= z7{wy!7<4YT#)}C{lR6BaFD2i}d%;i3taB1@;S>1qOZpTBpP>z$6Nc|&?a5=pXSb0z z%J{A%_zTvI_J2*keM9_Hdxzm`*f_?W@R>slWuS%Wc0;vC+hJZu!`h>UKFna;39~vG zJU?N*2`6GLuMnT`N~{?zJoX4fMbW~Mm>d^giiOcWc!wM(rwKbb3>BbG5MG59qJ`B- z9fmQiT>J)y9Lf1;VMB(Y{AiVFs1te`ssNw3VHvh=Q+Lg8(Gj$8Cl*4hUc5gh`(1H( z)zOCX(szE?{#fg{8~$({_a5p&y=SQI*lgZQ_`&gp8jlu!hK)og;1<)+HEIG5A805K z?eV}PPBzqF&N1Mi)44v{16wi4nQEw^Y*>4a3kP8>ySi(38fK{VXyH-VTC~uG)uDw$ zv1RBO{1TH~Eu22wP)j%Q**`c7TZHz*uP~{B?IR2|0FyZ=0gYTk*L5bGd8VP~3qP#J z#^E2~>E{^Ai58B)c4e^d2QS20&|cW%+~jrOj-*y&4b>lua=*e`uyVBU!1L%+w6Hto zM+=X_yl4|n$TL(v?f1b)u^kgx`@jj8(AQ|;EbJ+?AGVodsA9Aoes-DV=L9^Zz|h|b zBV2~9qs_t!EP@Whcd(`80pZ)z4K)od+=PusC*YGa>0jC=>^zt8f);ki3~4jG02{{n z!W-`4I9hlwwzZIbJh%eeg%&m^kH_Jphv{SD#|OKY@mjPA53R87#elQ0jl5QPZl$4` z(89~H2-*if!Q|Pc@X;!K&OHkALxx&{7B0pL(Zc(%0(1~QRF6N&Az?VM0iQoYT?B8# z;%MQ#Mq&~z{48v!m1tqwBfJ+{7{eB!h3_VhC*Vnsl56Nwp${7-{R{8HOmq;=T7iG$ zXI|jgm6rCx*sA3Cg|9qjC_nKpOn;pILJNP05VvUIZfqD@*!2lw5pBYIFfTbrSb>d1 z3%5VXIcVX}SP!(Y%Tx3>+JHOOaR0=ZdK%xZC1&t>6rS+{?U6MOT#U*13czQQ$JLA6 zBPR7&;w3|MY~q?|VOLC{g%hx?8~Lt9cqz6KEu4i#(85Bj2`yZbJRXGWusV(lvtDK_ zpoKlKBD8QKHX9v><6g1a9EQ7IHB{y<`eL1-e#NAn_Sg7#%*Juy39obiKX=z0fsUbt zJFqxfxI1|~_=ch0izWLDKC*#45GJ1A!6%qp-)J_}typ{FT=+fKdLN&wf!*IDx1de< z6Q*m+_YGBxiH^eaK1jv}Y`-x%M&P=nj>E;9tm6SV;6qEh;RMV^p9+7#TD~G?VERXl zNwgh0F?psST!w|v!fLD-oq(g_R$tpcHqz~?__oYHr~I5tlD5nkLvoTGhkE;gRAEc9c!Xkq*d zL-j@rul$mJK?}{V@B>>yao(^4=8y$pKcI13~<%eTCb+vLD ztj3}o7tZh8RfW*P35R!80krT+%#Ri>#(d}idNKzK_ZHio-scU9HbKz!)ZTif~+3S2dpZ6|TZYqNDITtO-8|SLJk7 zLA3BiEP#%|6aznSzHoe3`T#Aw60@WIa4D9K7JiRynM1yU?w(!MI<#;K_7qxp3s#2~ z9@?v`T7))WKITIU&poEA8ip3m#`>d$#h48pgzK@vjB#Q6W4o#zXyFA|I$Ag$+wlS4 zAq<DgI_2qrV&v4Eu zv=zVkVW(5A;|9#dn&}AKVm%?7s9b;;uExRCZ^DS_zXf5Cz&))?_Y_jKa6l-P#H%%I)$qX}EF zTr>|kly4!iF`gKM-`&_%xrk@AsH?i`R@%nB1mTw3>8~%TL*TEN_*^*Pj;<<9e+kdQ zf@m)sa3}4&m_C9rtd8r%;go=-eQ@JlyIUf4Xbo7!>;^9X!+ayR{%w=mp{#W*g!@^ zj>7gu-Bc$2G2ppa-9=mDXY7d*I)(br(`sz%Q}!=mZ?Gq?`U3d|~Rn z-BbbX6h4P}(84CnjgG;$?(3$UXkpGn_yldjisjb(hT*pAZYrO4s+w-9AGS5GhjPPJ zwbnUN_%k+-G<>78BJcM)L;j6eW;?{r{ zW4(E;53a?YI-fSfgC6UqMxyO-&EwWJWAObay74oV^aXt86Z-fF&WBfSrafrkj!(O( zmc#j718~M?^dH&}r+nT`*Bd@KMQH|!tvNzVqSPDwh}Fzhb=<~;4hf0 z#e@^La-UpBI0f^fg??-pIsiL;LtK5q{lbyhV2%q<{jQtpj26zqwh{w===p*E<$N!^ z2itfa`4GN>O+&}vgjTD~KA69=n=0b`IDGaee28y_NB>MrqJ@oEF**v**k!ff0}uYi zx{d+w$K<|((6!srZulc6@u`007$(o!0&uhHuIJMPoR>n|JF5c|%ww zn&ZONSQ9!52c%iAb;B!@+7F+@=5b%bW7E566hmOL61FSat;ATwjB?0@{tTqUjV}p5L;n!Giv^uc6dK{Dc zH4fsLQ#*XZ{2LTva$M+Z-(7X)eBoPIIyw$t?_ix1hp!);)G%_0rK9i^yLC+u+=S`2 z!2yR_+6{}6IslLDXuZ}AFYnaddS-DL-{FX@Z(+WGeoWdHJE6PkcA|Biz$x9;*i*?v zZsu!Pg-N{>hF>Oi0?v0^=PZJ|F=PRwTL)i0gXeX$GX~$vr61AF@ai+IbLPR>XIb|(4^BKg*=AUUNt<0G z`F)CGcpt_~F6`~G≷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 src/copy_compiler_dll.bat + chmod +x src/copy_compiler_dll.bat +} + build() { cd "${srcdir}"/angleproject export PYTHON=/usr/bin/python2 - # Make sure an import library is created and the correct .def file is used during the build - patch -p0 -i "${srcdir}"/angleproject-include-import-library-and-use-def-file.patch - # .def pieces taken from http://qt.gitorious.org/qt/qtbase/commit/b2c44985e740d0a0ea86b7b9f4cc849258ac2340 - patch -p0 -i "${srcdir}"/angleproject-fix-mingw-compatibility.patch - - # WebKit depends on symbols which are used in the static library called translator - # This static library is linked into the libGLESv2 shared library - # To allow building WebKit export the required symbols in the libGLESv2 shared library - patch -p0 -i "${srcdir}"/angleproject-export-shader-symbols.patch - - # Fix missing methods in trace_event.h - patch -p0 -i "${srcdir}"/angleproject-fix-trace_event.patch - - # Fix stencil format method in renderer9_utils.cpp - patch -p0 -i "${srcdir}"/angleproject-fix-renderer9-stencilformat.patch - - # Untangle OS and GENERATOR some. - patch -p1 -i "${srcdir}"/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch - - # Fix multiply defined 'SetTraceFunctionPointers' - patch -p1 -i "${srcdir}"/0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch - - # Patches from Qt5 - patch -p4 -i "${srcdir}"/0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch - patch -p4 -i "${srcdir}"/0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch - #patch -p4 -i "${srcdir}"/0003-Fix-compilation-with-MinGW-gcc-64-bit.patch - #patch -p4 -i "${srcdir}"/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch - patch -p4 -i "${srcdir}"/0005-Fix-build-when-SSE2-is-not-available.patch - #patch -p4 -i "${srcdir}"/0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch - #patch -p4 -i "${srcdir}"/0007-Make-DX9-DX11-mutually-exclusive.patch - #patch -p4 -i "${srcdir}"/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch - #patch -p4 -i "${srcdir}"/0009-ANGLE-Support-WinRT.patch - patch -p4 -i "${srcdir}"/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch - #patch -p4 -i "${srcdir}"/0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch - patch -p4 -i "${srcdir}"/0012-ANGLE-fix-semantic-index-lookup.patch - #patch -p4 -i "${srcdir}"/0013-ANGLE-Allow-for-universal-program-binaries.patch - #patch -p4 -i "${srcdir}"/0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch - - export CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4" - export CXXFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4" + #export CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4" + #export CXXFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4" sed -i -e 's_python _python2 _g' -e 's_"python"_"python2"_g' -e "s_'python'_'python2'_g" -e 's_/usr/bin/python_/usr/bin/python2_g' $(find -type f) sed -i -e 's|vsprintf_s|vsprintf|g' $(find . \( -name '*.h' -or -name '*.cpp' \) -and -type f) @@ -128,29 +139,47 @@ build() { _target="win64" fi - gyp -D OS=win --format make -D TARGET=$_target --depth . -I ../build/common.gypi ../src/build_angle.gyp + gyp -D OS=win --format make -D MSVS_VERSION="" -D TARGET=$_target --depth . -I ../build/common.gypi ../src/angle.gyp - # Fix linking of libtranslator.a - sed -i \ - -e s@'$(obj).target/$(TARGET)/../src/common/event_tracer.o'@@g \ - -e s@'$(obj).target/$(TARGET)/../src/common/RefCountObject.o'@@g \ - -e s@'$(obj).target/$(TARGET)/../src/common/debug.o'@@g \ - "${srcdir}"/angleproject/src/translator{,_static}.target.mk + # Make sure the correct libraries are linked in + sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid'@ ../src/libGLESv2.target.mk + sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid -L. -lGLESv2'@ ../src/libEGL.target.mk # LINK=g++ is to prevent using flock to serialize linking. LINK=g++ make -j1 V=1 CXXFLAGS="-std=c++11 -msse2 -DUNICODE -D_UNICODE" ${MINGW_PREFIX}/bin/ar rcs libGLESv2.a \ - out/Debug/obj.target/libGLESv2/../src/common/*.o \ - out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/*.o \ - out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/d3d9/*.o \ - out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/d3d11/*.o \ - out/Debug/obj.target/libGLESv2/../src/libGLESv2/*.o \ - #out/Debug/obj.target/../src/libtranslator.a \ - #out/Debug/obj.target/../src/libpreprocessor.a + out/Debug/obj.target/src/common/*.o \ + out/Debug/obj.target/src/common/win32/*.o \ + out/Debug/obj.target/src/compiler/translator/*.o \ + out/Debug/obj.target/src/compiler/translator/depgraph/*.o \ + out/Debug/obj.target/src/compiler/translator/timing/*.o \ + out/Debug/obj.target/src/compiler/preprocessor/*.o \ + out/Debug/obj.target/src/third_party/compiler/*.o \ + out/Debug/obj.target/src/third_party/murmurhash/*.o \ + out/Debug/obj.target/src/third_party/systeminfo/*.o \ + out/Debug/obj.target/src/libGLESv2/*.o \ + out/Debug/obj.target/src/libGLESv2/renderer/*.o \ + out/Debug/obj.target/src/libGLESv2/renderer/d3d/*.o \ + out/Debug/obj.target/src/libGLESv2/renderer/d3d/d3d9/*.o \ + out/Debug/obj.target/src/libGLESv2/renderer/d3d/d3d11/*.o + ${MINGW_PREFIX}/bin/ar rcs libEGL.a \ - out/Debug/obj.target/libEGL/../src/common/*.o \ - out/Debug/obj.target/libEGL/../src/libEGL/*.o + out/Debug/obj.target/libEGL/../src/common/RefCountObject.o \ + out/Debug/obj.target/libEGL/../src/common/angleutils.o \ + out/Debug/obj.target/libEGL/../src/common/debug.o \ + out/Debug/obj.target/libEGL/../src/common/event_tracer.o \ + out/Debug/obj.target/libEGL/../src/common/mathutil.o \ + out/Debug/obj.target/libEGL/../src/common/tls.o \ + out/Debug/obj.target/libEGL/../src/common/utilities.o \ + out/Debug/obj.target/libEGL/../src/libEGL/AttributeMap.o \ + out/Debug/obj.target/libEGL/../src/libEGL/Config.o \ + out/Debug/obj.target/libEGL/../src/libEGL/Display.o \ + out/Debug/obj.target/libEGL/../src/libEGL/Error.o \ + out/Debug/obj.target/libEGL/../src/libEGL/Surface.o \ + out/Debug/obj.target/libEGL/../src/libEGL/libEGL.o \ + out/Debug/obj.target/libEGL/../src/libEGL/main.o \ + out/Debug/obj.target/libEGL/../src/common/win32/NativeWindow.o popd } @@ -178,5 +207,4 @@ package() { popd - install -Dm755 ${srcdir}/D3DCompiler_43-${CARCH}.dll "${pkgdir}${MINGW_PREFIX}"/bin/D3DCompiler_43.dll } diff --git a/mingw-w64-angleproject-git/angleproject-disable-debug-annotations.patch b/mingw-w64-angleproject-git/angleproject-disable-debug-annotations.patch new file mode 100644 index 0000000000..1df4e5ca83 --- /dev/null +++ b/mingw-w64-angleproject-git/angleproject-disable-debug-annotations.patch @@ -0,0 +1,33 @@ +--- angle/src/libGLESv2.gypi.orig 2014-12-29 14:50:37.625335694 +0100 ++++ angle/src/libGLESv2.gypi 2014-12-29 14:51:18.659761527 +0100 +@@ -483,11 +483,6 @@ + { + 'Debug_Base': + { +- 'defines': +- [ +- 'ANGLE_ENABLE_DEBUG_ANNOTATIONS', +- 'ANGLE_GENERATE_SHADER_DEBUG_INFO' +- ], + 'msvs_settings': + { + 'VCLinkerTool': +--- angle/src/libEGL.gypi.orig 2014-12-29 16:05:56.119799976 +0100 ++++ angle/src/libEGL.gypi 2014-12-29 16:06:17.452019110 +0100 +@@ -171,16 +171,6 @@ + ], + }, + }, +- 'configurations': +- { +- 'Debug_Base': +- { +- 'defines': +- [ +- 'ANGLE_ENABLE_DEBUG_ANNOTATIONS', +- ], +- }, +- }, + }, + ], + }, diff --git a/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch b/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch index dabb859311..91bc337638 100644 --- a/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch +++ b/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch @@ -1,37 +1,36 @@ ---- src/libGLESv2/libGLESv2.def.orig 2014-01-06 11:49:13.494061976 +0100 -+++ src/libGLESv2/libGLESv2.def 2014-01-06 11:49:15.984075067 +0100 -@@ -186,3 +186,14 @@ EXPORTS - - ; Setting up TRACE macro callbacks - SetTraceFunctionPointers @180 -+ -+ ; WebKit dependencies.. -+ ShInitBuiltInResources @200 NONAME -+ ShInitialize @201 NONAME -+ ShDestruct @202 NONAME -+ ShGetInfo @203 NONAME -+ ShGetInfoLog @204 NONAME -+ ShGetObjectCode @207 NONAME -+ ShCompile @208 NONAME -+ ShConstructCompiler @209 NONAME -+ ShGetVariableInfo @210 NONAME ---- src/libGLESv2/libGLESv2_mingw32.def.orig 2014-01-06 13:17:51.686441162 +0100 -+++ src/libGLESv2/libGLESv2_mingw32.def 2014-01-06 13:17:21.853045374 +0100 -@@ -180,3 +180,17 @@ EXPORTS - glGetCurrentContext @147 NONAME - glGetProcAddress@4 @148 NONAME - glBindTexImage@4 @158 NONAME -+ glCreateRenderer @177 NONAME -+ glDestroyRenderer @178 NONAME -+ glDrawBuffersEXT@8 @179 NONAME +--- angle/src/libGLESv2/libGLESv2.def.orig 2014-12-30 12:59:07.560620988 +0100 ++++ angle/src/libGLESv2/libGLESv2.def 2014-12-30 13:00:22.381399755 +0100 +@@ -294,3 +294,15 @@ + glBindTexImage @158 NONAME + glCreateRenderer @177 NONAME + glDestroyRenderer @178 NONAME ++ ++ ; WebKit dependencies ++ ShInitBuiltInResources @300 NONAME ++ ShInitialize @301 NONAME ++ ShDestruct @302 NONAME ++ ShGetInfo @303 NONAME ++ ShGetInfoLog @304 NONAME ++ ShGetVariableInfo @305 NONAME ++ ShGetObjectCode @306 NONAME ++ ShCompile @307 NONAME ++ ShConstructCompiler @308 NONAME ++ +--- angle/src/libGLESv2/libGLESv2_mingw32.def.orig 2014-12-30 12:59:07.561620998 +0100 ++++ angle/src/libGLESv2/libGLESv2_mingw32.def 2014-12-30 13:01:37.782182097 +0100 +@@ -294,3 +294,15 @@ + glBindTexImage@4 @158 NONAME + glCreateRenderer @177 NONAME + glDestroyRenderer @178 NONAME ++ ++ ; WebKit dependencies ++ ShInitBuiltInResources @300 NONAME ++ ShInitialize @301 NONAME ++ ShDestruct @302 NONAME ++ ShGetInfo @303 NONAME ++ ShGetInfoLog @304 NONAME ++ ShGetVariableInfo @305 NONAME ++ ShGetObjectCode @306 NONAME ++ ShCompile @307 NONAME ++ ShConstructCompiler @308 NONAME + -+ ; WebKit dependencies.. -+ ShInitBuiltInResources @200 NONAME -+ ShInitialize @201 NONAME -+ ShDestruct @202 NONAME -+ ShGetInfo @203 NONAME -+ ShGetInfoLog @204 NONAME -+ ShGetObjectCode @207 NONAME -+ ShCompile @208 NONAME -+ ShConstructCompiler @209 NONAME -+ ShGetVariableInfo @210 NONAME diff --git a/mingw-w64-angleproject-git/angleproject-fix-mingw-compatibility.patch b/mingw-w64-angleproject-git/angleproject-fix-mingw-compatibility.patch deleted file mode 100644 index a0444194d8..0000000000 --- a/mingw-w64-angleproject-git/angleproject-fix-mingw-compatibility.patch +++ /dev/null @@ -1,224 +0,0 @@ ---- /dev/null -+++ src/libEGL/libEGL_mingw32.def -@@ -0,0 +1,36 @@ -+LIBRARY libEGL -+EXPORTS -+ eglBindAPI@4 @14 -+ eglBindTexImage@12 @20 -+ eglChooseConfig@20 @7 -+ eglCopyBuffers@12 @33 -+ eglCreateContext@16 @23 -+ eglCreatePbufferFromClientBuffer@20 @18 -+ eglCreatePbufferSurface@12 @10 -+ eglCreatePixmapSurface@16 @11 -+ eglCreateWindowSurface@16 @9 -+ eglDestroyContext@8 @24 -+ eglDestroySurface@8 @12 -+ eglGetConfigAttrib@16 @8 -+ eglGetConfigs@16 @6 -+ eglGetCurrentContext@0 @26 -+ eglGetCurrentDisplay@0 @28 -+ eglGetCurrentSurface@4 @27 -+ eglGetDisplay@4 @2 -+ eglGetError@0 @1 -+ eglGetProcAddress@4 @34 -+ eglInitialize@12 @3 -+ eglMakeCurrent@16 @25 -+ eglQueryAPI@0 @15 -+ eglQueryContext@16 @29 -+ eglQueryString@8 @5 -+ eglQuerySurface@16 @13 -+ eglReleaseTexImage@12 @21 -+ eglReleaseThread@0 @17 -+ eglSurfaceAttrib@16 @19 -+ eglSwapBuffers@8 @32 -+ eglSwapInterval@8 @22 -+ eglTerminate@4 @4 -+ eglWaitClient@0 @16 -+ eglWaitGL@0 @30 -+ eglWaitNative@4 @31 ---- /dev/null -+++ src/libGLESv2/libGLESv2_mingw32.def -@@ -0,0 +1,182 @@ -+LIBRARY libGLESv2 -+EXPORTS -+ glActiveTexture@4 @1 -+ glAttachShader@8 @2 -+ glBindAttribLocation@12 @3 -+ glBindBuffer@8 @4 -+ glBindFramebuffer@8 @5 -+ glBindRenderbuffer@8 @6 -+ glBindTexture@8 @7 -+ glBlendColor@16 @8 -+ glBlendEquation@4 @9 -+ glBlendEquationSeparate@8 @10 -+ glBlendFunc@8 @11 -+ glBlendFuncSeparate@16 @12 -+ glBufferData@16 @13 -+ glBufferSubData@16 @14 -+ glCheckFramebufferStatus@4 @15 -+ glClear@4 @16 -+ glClearColor@16 @17 -+ glClearDepthf@4 @18 -+ glClearStencil@4 @19 -+ glColorMask@16 @20 -+ glCompileShader@4 @21 -+ glCompressedTexImage2D@32 @22 -+ glCompressedTexSubImage2D@36 @23 -+ glCopyTexImage2D@32 @24 -+ glCopyTexSubImage2D@32 @25 -+ glCreateProgram@0 @26 -+ glCreateShader@4 @27 -+ glCullFace@4 @28 -+ glDeleteBuffers@8 @29 -+ glDeleteFramebuffers@8 @30 -+ glDeleteProgram@4 @32 -+ glDeleteRenderbuffers@8 @33 -+ glDeleteShader@4 @34 -+ glDeleteTextures@8 @31 -+ glDepthFunc@4 @36 -+ glDepthMask@4 @37 -+ glDepthRangef@8 @38 -+ glDetachShader@8 @35 -+ glDisable@4 @39 -+ glDisableVertexAttribArray@4 @40 -+ glDrawArrays@12 @41 -+ glDrawElements@16 @42 -+ glEnable@4 @43 -+ glEnableVertexAttribArray@4 @44 -+ glFinish@0 @45 -+ glFlush@0 @46 -+ glFramebufferRenderbuffer@16 @47 -+ glFramebufferTexture2D@20 @48 -+ glFrontFace@4 @49 -+ glGenBuffers@8 @50 -+ glGenFramebuffers@8 @52 -+ glGenRenderbuffers@8 @53 -+ glGenTextures@8 @54 -+ glGenerateMipmap@4 @51 -+ glGetActiveAttrib@28 @55 -+ glGetActiveUniform@28 @56 -+ glGetAttachedShaders@16 @57 -+ glGetAttribLocation@8 @58 -+ glGetBooleanv@8 @59 -+ glGetBufferParameteriv@12 @60 -+ glGetError@0 @61 -+ glGetFloatv@8 @62 -+ glGetFramebufferAttachmentParameteriv@16 @63 -+ glGetIntegerv@8 @64 -+ glGetProgramInfoLog@16 @66 -+ glGetProgramiv@12 @65 -+ glGetRenderbufferParameteriv@12 @67 -+ glGetShaderInfoLog@16 @69 -+ glGetShaderPrecisionFormat@16 @70 -+ glGetShaderSource@16 @71 -+ glGetShaderiv@12 @68 -+ glGetString@4 @72 -+ glGetTexParameterfv@12 @73 -+ glGetTexParameteriv@12 @74 -+ glGetUniformLocation@8 @77 -+ glGetUniformfv@12 @75 -+ glGetUniformiv@12 @76 -+ glGetVertexAttribPointerv@12 @80 -+ glGetVertexAttribfv@12 @78 -+ glGetVertexAttribiv@12 @79 -+ glHint@8 @81 -+ glIsBuffer@4 @82 -+ glIsEnabled@4 @83 -+ glIsFramebuffer@4 @84 -+ glIsProgram@4 @85 -+ glIsRenderbuffer@4 @86 -+ glIsShader@4 @87 -+ glIsTexture@4 @88 -+ glLineWidth@4 @89 -+ glLinkProgram@4 @90 -+ glPixelStorei@8 @91 -+ glPolygonOffset@8 @92 -+ glReadPixels@28 @93 -+ glReleaseShaderCompiler@0 @94 -+ glRenderbufferStorage@16 @95 -+ glSampleCoverage@8 @96 -+ glScissor@16 @97 -+ glShaderBinary@20 @98 -+ glShaderSource@16 @99 -+ glStencilFunc@12 @100 -+ glStencilFuncSeparate@16 @101 -+ glStencilMask@4 @102 -+ glStencilMaskSeparate@8 @103 -+ glStencilOp@12 @104 -+ glStencilOpSeparate@16 @105 -+ glTexImage2D@36 @106 -+ glTexParameterf@12 @107 -+ glTexParameterfv@12 @108 -+ glTexParameteri@12 @109 -+ glTexParameteriv@12 @110 -+ glTexSubImage2D@36 @111 -+ glUniform1f@8 @112 -+ glUniform1fv@12 @113 -+ glUniform1i@8 @114 -+ glUniform1iv@12 @115 -+ glUniform2f@12 @116 -+ glUniform2fv@12 @117 -+ glUniform2i@12 @118 -+ glUniform2iv@12 @119 -+ glUniform3f@16 @120 -+ glUniform3fv@12 @121 -+ glUniform3i@16 @122 -+ glUniform3iv@12 @123 -+ glUniform4f@20 @124 -+ glUniform4fv@12 @125 -+ glUniform4i@20 @126 -+ glUniform4iv@12 @127 -+ glUniformMatrix2fv@16 @128 -+ glUniformMatrix3fv@16 @129 -+ glUniformMatrix4fv@16 @130 -+ glUseProgram@4 @131 -+ glValidateProgram@4 @132 -+ glVertexAttrib1f@8 @133 -+ glVertexAttrib1fv@8 @134 -+ glVertexAttrib2f@12 @135 -+ glVertexAttrib2fv@8 @136 -+ glVertexAttrib3f@16 @137 -+ glVertexAttrib3fv@8 @138 -+ glVertexAttrib4f@20 @139 -+ glVertexAttrib4fv@8 @140 -+ glVertexAttribPointer@24 @141 -+ glViewport@16 @142 -+ -+ ; Extensions -+ glTexImage3DOES@40 @143 -+ glBlitFramebufferANGLE@40 @149 -+ glRenderbufferStorageMultisampleANGLE@20 @150 -+ glDeleteFencesNV@8 @151 -+ glFinishFenceNV@4 @152 -+ glGenFencesNV@8 @153 -+ glGetFenceivNV@12 @154 -+ glIsFenceNV@4 @155 -+ glSetFenceNV@8 @156 -+ glTestFenceNV@4 @157 -+ glGetTranslatedShaderSourceANGLE@16 @159 -+ glTexStorage2DEXT@20 @160 -+ glGetGraphicsResetStatusEXT@0 @161 -+ glReadnPixelsEXT@32 @162 -+ glGetnUniformfvEXT@16 @163 -+ glGetnUniformivEXT@16 @164 -+ glGenQueriesEXT@8 @165 -+ glDeleteQueriesEXT@8 @166 -+ glIsQueryEXT@4 @167 -+ glBeginQueryEXT@8 @168 -+ glEndQueryEXT@4 @169 -+ glGetQueryivEXT@12 @170 -+ glGetQueryObjectuivEXT@12 @171 -+ glVertexAttribDivisorANGLE@8 @172 -+ glDrawArraysInstancedANGLE@16 @173 -+ glDrawElementsInstancedANGLE@20 @174 -+ glProgramBinaryOES@16 @175 -+ glGetProgramBinaryOES@20 @176 -+ -+ ; EGL dependencies -+ glCreateContext @144 NONAME -+ glDestroyContext @145 NONAME -+ glMakeCurrent @146 NONAME -+ glGetCurrentContext @147 NONAME -+ glGetProcAddress@4 @148 NONAME -+ glBindTexImage@4 @158 NONAME diff --git a/mingw-w64-angleproject-git/angleproject-fix-renderer9-stencilformat.patch b/mingw-w64-angleproject-git/angleproject-fix-renderer9-stencilformat.patch deleted file mode 100644 index a0b931767c..0000000000 --- a/mingw-w64-angleproject-git/angleproject-fix-renderer9-stencilformat.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- src.orig/libGLESv2/renderer/d3d9/renderer9_utils.cpp 2014-01-17 22:54:45.401522829 +0100 -+++ src/libGLESv2/renderer/d3d9/renderer9_utils.cpp 2014-01-17 22:54:52.004935151 +0100 -@@ -13,6 +13,7 @@ - #include "libGLESv2/Context.h" - - #include "common/debug.h" -+#include - - namespace gl_d3d9 - { -@@ -381,9 +382,12 @@ GLenum ConvertDepthStencilFormat(D3DFORM - return GL_DEPTH_COMPONENT16; - case D3DFMT_D24S8: - return GL_DEPTH24_STENCIL8_OES; -+ case D3DFMT_D32: -+ return GL_DEPTH_COMPONENT16; - case D3DFMT_UNKNOWN: - return GL_NONE; - default: -+ printf("unknown D3DFORMAT (stencil format): %d\n", (int)format); - UNREACHABLE(); - } - diff --git a/mingw-w64-angleproject-git/angleproject-fix-trace_event.patch b/mingw-w64-angleproject-git/angleproject-fix-trace_event.patch deleted file mode 100644 index fd04d82fb3..0000000000 --- a/mingw-w64-angleproject-git/angleproject-fix-trace_event.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- src/third_party/trace_event/trace_event.h.orig 2014-01-06 10:40:41.106093009 +0100 -+++ src/third_party/trace_event/trace_event.h 2014-01-06 10:40:09.310989874 +0100 -@@ -587,7 +587,7 @@ const unsigned long long noEventId = 0; - class TraceID { - public: - explicit TraceID(const void* id, unsigned char* flags) : -- m_data(static_cast(reinterpret_cast(id))) -+ m_data((unsigned long long)id) - { - *flags |= TRACE_EVENT_FLAG_MANGLE_ID; - } -@@ -806,14 +806,14 @@ public: - } - - // FIXME: Make load/store to traceSamplingState[] thread-safe and atomic. -- static inline const char* current() -+ /*static inline const char* current() - { - return reinterpret_cast(*gl::traceSamplingState[BucketNumber]); - } - static inline void set(const char* categoryAndName) - { - *gl::traceSamplingState[BucketNumber] = reinterpret_cast(const_cast(categoryAndName)); -- } -+ }*/ - - private: - const char* m_previousState; diff --git a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch index e32d436113..034a2e0d9d 100644 --- a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch +++ b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch @@ -1,45 +1,30 @@ ---- src.orig/libEGL.gypi 2014-01-11 12:17:37.971020837 +0100 -+++ src/libEGL.gypi 2014-01-11 12:20:05.406870084 +0100 -@@ -13,6 +13,14 @@ - 'target_name': 'libEGL', - 'type': 'shared_library', - 'dependencies': [ 'libGLESv2', 'commit_id' ], -+ 'conditions': [ -+ ['TARGET=="win32" and GENERATOR == "make"', { -+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL_mingw32.def -Wl,--whole-archive -L. -lGLESv2 -ld3d9 -ldxguid -Wl,--no-whole-archive' ], +--- angle/src/libGLESv2.gypi.orig 2014-12-29 16:26:05.272220904 +0100 ++++ angle/src/libGLESv2.gypi 2014-12-29 16:27:33.694129236 +0100 +@@ -531,6 +531,12 @@ + { + 'msvs_enable_winphone' : '1', + }], ++ ['TARGET=="win32"', { ++ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2_mingw32.def' ], ++ }], ++ ['TARGET=="win64"', { ++ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2.def' ], ++ }], + ], + 'configurations': + { +--- angle/src/libEGL.gypi.orig 2014-12-29 16:27:51.546312626 +0100 ++++ angle/src/libEGL.gypi 2014-12-29 16:28:53.332947338 +0100 +@@ -146,6 +146,12 @@ + { + 'msvs_enable_winphone' : '1', + }], ++ ['TARGET=="win32"', { ++ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL_mingw32.def' ], + }], -+ ['TARGET=="win64" and GENERATOR == "make"', { -+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL.def -Wl,--whole-archive -L. -lGLESv2 -ld3d9 -ldxguid -Wl,--no-whole-archive' ], ++ ['TARGET=="win64"', { ++ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL.def' ], + }], -+ ], - 'include_dirs': - [ - '.', ---- src.orig/libGLESv2.gypi 2014-01-11 12:17:37.971020837 +0100 -+++ src/libGLESv2.gypi 2014-01-11 12:19:22.916166993 +0100 -@@ -23,6 +23,14 @@ - 'target_name': 'libGLESv2', - 'type': 'shared_library', - 'dependencies': [ 'translator', 'commit_id', 'copy_compiler_dll' ], -+ 'conditions': [ -+ ['TARGET=="win32" and GENERATOR == "make"', { -+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2_mingw32.def -Wl,--whole-archive -ld3d9 -ldxguid -Wl,--no-whole-archive' ], -+ }], -+ ['TARGET=="win64" and GENERATOR == "make"', { -+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2.def -Wl,--whole-archive -ld3d9 -ldxguid -Wl,--no-whole-archive' ], -+ }], -+ ], - 'include_dirs': - [ - '.', ---- src.orig/angle.gypi 2014-01-11 12:28:41.414124056 +0100 -+++ src/angle.gypi 2014-01-11 12:31:06.065777743 +0100 -@@ -38,7 +38,7 @@ - 'message': 'Copying D3D Compiler DLL...', - 'inputs': [ 'copy_compiler_dll.bat' ], - 'outputs': [ '<(PRODUCT_DIR)/D3DCompiler_46.dll' ], -- 'action': ["<(angle_relative_src_path)/copy_compiler_dll.bat", "$(PlatformName)", "<(windows_sdk_path)", "<(PRODUCT_DIR)" ], -+ 'action': ["touch", '<(PRODUCT_DIR)/D3DCompiler_46.dll' ], - } - ] #actions - }, + ], + 'includes': [ '../build/common_defines.gypi', ], + 'msvs_settings': diff --git a/mingw-w64-angleproject-git/angleproject-prevent-multiple-definition-errors.patch b/mingw-w64-angleproject-git/angleproject-prevent-multiple-definition-errors.patch new file mode 100644 index 0000000000..836fffcd20 --- /dev/null +++ b/mingw-w64-angleproject-git/angleproject-prevent-multiple-definition-errors.patch @@ -0,0 +1,39 @@ +--- angle/src/libGLESv2.gypi.orig 2014-12-29 15:37:12.356076212 +0100 ++++ angle/src/libGLESv2.gypi 2014-12-29 15:37:36.310322769 +0100 +@@ -21,25 +21,11 @@ + '../include/GLSLANG/ShaderVars.h', + '../include/KHR/khrplatform.h', + '../include/angle_gl.h', +- 'common/RefCountObject.cpp', +- 'common/RefCountObject.h', +- 'common/angleutils.cpp', +- 'common/angleutils.h', +- 'common/blocklayout.cpp', +- 'common/blocklayout.h', + 'common/debug.cpp', + 'common/debug.h', +- 'common/event_tracer.cpp', +- 'common/event_tracer.h', + 'common/features.h', +- 'common/mathutil.cpp', +- 'common/mathutil.h', + 'common/platform.h', + 'common/NativeWindow.h', +- 'common/tls.cpp', +- 'common/tls.h', +- 'common/utilities.cpp', +- 'common/utilities.h', + 'common/version.h', + 'libGLESv2/BinaryStream.h', + 'libGLESv2/Buffer.cpp', +--- angle/src/compiler.gypi.orig 2014-12-30 16:14:45.387688544 +0100 ++++ angle/src/compiler.gypi 2014-12-30 16:14:52.091758591 +0100 +@@ -27,8 +27,6 @@ + 'common/angleutils.cpp', + 'common/blocklayout.cpp', + 'common/blocklayout.h', +- 'common/debug.cpp', +- 'common/debug.h', + 'common/event_tracer.cpp', + 'common/event_tracer.h', + 'common/mathutil.cpp', diff --git a/mingw-w64-angleproject-git/angleproject-undo-shader-renames.patch b/mingw-w64-angleproject-git/angleproject-undo-shader-renames.patch new file mode 100644 index 0000000000..470756ab8d --- /dev/null +++ b/mingw-w64-angleproject-git/angleproject-undo-shader-renames.patch @@ -0,0 +1,162 @@ +--- angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp 2014-12-29 14:58:14.398042285 +0100 ++++ angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp.orig 2014-12-29 14:57:55.097843925 +0100 +@@ -27,20 +27,20 @@ + + const BYTE* const g_shaderCode[] = + { +- g_vs20_VS_standard, +- g_vs20_VS_flipy, +- g_ps20_PS_passthrough, +- g_ps20_PS_luminance, +- g_ps20_PS_componentmask ++ g_vs20_standardvs, ++ g_vs20_flipyvs, ++ g_ps20_passthroughps, ++ g_ps20_luminanceps, ++ g_ps20_componentmaskps + }; + + const size_t g_shaderSize[] = + { +- sizeof(g_vs20_VS_standard), +- sizeof(g_vs20_VS_flipy), +- sizeof(g_ps20_PS_passthrough), +- sizeof(g_ps20_PS_luminance), +- sizeof(g_ps20_PS_componentmask) ++ sizeof(g_vs20_standardvs), ++ sizeof(g_vs20_flipyvs), ++ sizeof(g_ps20_passthroughps), ++ sizeof(g_ps20_luminanceps), ++ sizeof(g_ps20_componentmaskps) + }; + } + +--- angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp.orig 2014-12-29 15:05:57.769805226 +0100 ++++ angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp 2014-12-29 15:06:40.179241153 +0100 +@@ -13,39 +13,39 @@ + #include "libGLESv2/main.h" + #include "libGLESv2/formatutils.h" + +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2dvs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughdepth2dps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2duips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2duips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2duips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2duips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum2dps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughdepth2d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dui11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2di11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dui11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2di11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dui11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2di11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dui11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2di11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum2d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h" + +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3dvs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3dgs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3duips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3duips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3duips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3duips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum3dps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha3dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3d11vs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3d11gs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dui11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3di11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dui11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3di11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dui11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3di11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dui11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3di11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum3d11ps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h" + + #include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/swizzlef2dps.h" + #include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/swizzlei2dps.h" +--- angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp.orig 2014-12-29 15:07:22.962680910 +0100 ++++ angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp 2014-12-29 15:07:33.924793589 +0100 +@@ -15,14 +15,14 @@ + #include "libGLESv2/FramebufferAttachment.h" + + // Precompiled shaders +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloatvs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloatps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloat11vs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps.h" + +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuintvs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuintps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuint11vs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuint11ps.h" + +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsintvs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsintps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsint11vs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsint11ps.h" + + namespace rx + { +--- angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp.orig 2014-12-29 15:08:04.781110747 +0100 ++++ angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp 2014-12-29 15:08:16.912235446 +0100 +@@ -22,11 +22,11 @@ + #include "libGLESv2/Context.h" + + // Precompiled shaders +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexturevs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexturegs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4fps.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4ips.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4uips.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_vs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_gs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4f.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4i.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h" + + namespace rx + { +--- angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp.orig 2014-12-29 15:08:54.720624075 +0100 ++++ angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp 2014-12-29 15:09:04.775727437 +0100 +@@ -12,8 +12,8 @@ + #include "libGLESv2/renderer/d3d/d3d11/Renderer11.h" + + // Precompiled shaders +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2dvs.h" +-#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dps.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h" ++#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d11ps.h" + + #include "common/features.h" + #include "common/NativeWindow.h" diff --git a/mingw-w64-angleproject-git/commit-409078f b/mingw-w64-angleproject-git/commit-409078f new file mode 100644 index 0000000000..af016deb7c --- /dev/null +++ b/mingw-w64-angleproject-git/commit-409078f @@ -0,0 +1,363 @@ +commit 409078f1e7c4ec79a1cbc58e3d0b3c399831ac5b +Author: Zhenyao Mo +Date: Tue Oct 28 13:23:18 2014 -0700 + + Remove ShGetVariableInfo() and related code. + + BUG=angle:775 + TEST=chromium builds and runs fine + + Change-Id: Ic62d3a3c9a8f034880b77a96f7f1c6be2691985e + Reviewed-on: https://chromium-review.googlesource.com/226004 + Tested-by: Zhenyao Mo + Reviewed-by: Jamie Madill + Reviewed-by: Shannon Woods + +diff --git a/include/GLSLANG/ShaderLang.h b/include/GLSLANG/ShaderLang.h +index 76012cf..def4946 100644 +--- a/include/GLSLANG/ShaderLang.h ++++ b/include/GLSLANG/ShaderLang.h +@@ -48,7 +48,7 @@ extern "C" { + + // Version number for shader translation API. + // It is incremented every time the API changes. +-#define ANGLE_SH_VERSION 130 ++#define ANGLE_SH_VERSION 131 + + typedef enum { + SH_GLES2_SPEC = 0x8B40, +@@ -86,21 +86,8 @@ typedef enum { + } ShShaderOutput; + + typedef enum { +- SH_PRECISION_HIGHP = 0x5001, +- SH_PRECISION_MEDIUMP = 0x5002, +- SH_PRECISION_LOWP = 0x5003, +- SH_PRECISION_UNDEFINED = 0 +-} ShPrecisionType; +- +-typedef enum { + SH_INFO_LOG_LENGTH = 0x8B84, + SH_OBJECT_CODE_LENGTH = 0x8B88, // GL_SHADER_SOURCE_LENGTH +- SH_ACTIVE_UNIFORMS = 0x8B86, +- SH_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87, +- SH_ACTIVE_ATTRIBUTES = 0x8B89, +- SH_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A, +- SH_VARYINGS = 0x8BBB, +- SH_VARYING_MAX_LENGTH = 0x8BBC, + SH_MAPPED_NAME_MAX_LENGTH = 0x6000, + SH_NAME_MAX_LENGTH = 0x6001, + SH_HASHED_NAME_MAX_LENGTH = 0x6002, +@@ -364,17 +351,6 @@ COMPILER_EXPORT int ShCompile( + // including the null termination character. + // SH_OBJECT_CODE_LENGTH: the number of characters in the object code + // including the null termination character. +-// SH_ACTIVE_ATTRIBUTES: the number of active attribute variables. +-// SH_ACTIVE_ATTRIBUTE_MAX_LENGTH: the length of the longest active attribute +-// variable name including the null +-// termination character. +-// SH_ACTIVE_UNIFORMS: the number of active uniform variables. +-// SH_ACTIVE_UNIFORM_MAX_LENGTH: the length of the longest active uniform +-// variable name including the null +-// termination character. +-// SH_VARYINGS: the number of varying variables. +-// SH_VARYING_MAX_LENGTH: the length of the longest varying variable name +-// including the null termination character. + // SH_MAPPED_NAME_MAX_LENGTH: the length of the mapped variable name including + // the null termination character. + // SH_NAME_MAX_LENGTH: the max length of a user-defined name including the +@@ -410,44 +386,6 @@ COMPILER_EXPORT void ShGetInfoLog(const ShHandle handle, char* infoLog); + // ShGetInfo with SH_OBJECT_CODE_LENGTH. + COMPILER_EXPORT void ShGetObjectCode(const ShHandle handle, char* objCode); + +-// Returns information about a shader variable. +-// Parameters: +-// handle: Specifies the compiler +-// variableType: Specifies the variable type; options include +-// SH_ACTIVE_ATTRIBUTES, SH_ACTIVE_UNIFORMS, SH_VARYINGS. +-// index: Specifies the index of the variable to be queried. +-// length: Returns the number of characters actually written in the string +-// indicated by name (excluding the null terminator) if a value other +-// than NULL is passed. +-// size: Returns the size of the variable. +-// type: Returns the data type of the variable. +-// precision: Returns the precision of the variable. +-// staticUse: Returns 1 if the variable is accessed in a statement after +-// pre-processing, whether or not run-time flow of control will +-// cause that statement to be executed. +-// Returns 0 otherwise. +-// name: Returns a null terminated string containing the name of the +-// variable. It is assumed that name has enough memory to accormodate +-// the variable name. The size of the buffer required to store the +-// variable name can be obtained by calling ShGetInfo with +-// SH_ACTIVE_ATTRIBUTE_MAX_LENGTH, SH_ACTIVE_UNIFORM_MAX_LENGTH, +-// SH_VARYING_MAX_LENGTH. +-// mappedName: Returns a null terminated string containing the mapped name of +-// the variable, It is assumed that mappedName has enough memory +-// (SH_MAPPED_NAME_MAX_LENGTH), or NULL if don't care about the +-// mapped name. If the name is not mapped, then name and mappedName +-// are the same. +-COMPILER_EXPORT void ShGetVariableInfo(const ShHandle handle, +- ShShaderInfo variableType, +- int index, +- size_t* length, +- int* size, +- sh::GLenum* type, +- ShPrecisionType* precision, +- int* staticUse, +- char* name, +- char* mappedName); +- + // Returns information about a name hashing entry from the latest compile. + // Parameters: + // handle: Specifies the compiler +diff --git a/src/compiler/translator/Compiler.cpp b/src/compiler/translator/Compiler.cpp +index 2824064..a93d7e6 100644 +--- a/src/compiler/translator/Compiler.cpp ++++ b/src/compiler/translator/Compiler.cpp +@@ -384,7 +384,6 @@ void TCompiler::clearResults() + uniforms.clear(); + expandedUniforms.clear(); + varyings.clear(); +- expandedVaryings.clear(); + interfaceBlocks.clear(); + + builtInFunctionEmulator.Cleanup(); +@@ -518,10 +517,8 @@ void TCompiler::collectVariables(TIntermNode* root) + symbolTable); + root->traverse(&collect); + +- // For backwards compatiblity with ShGetVariableInfo, expand struct +- // uniforms and varyings into separate variables for each field. +- sh::ExpandVariables(uniforms, &expandedUniforms); +- sh::ExpandVariables(varyings, &expandedVaryings); ++ // This is for enforcePackingRestriction(). ++ sh::ExpandUniforms(uniforms, &expandedUniforms); + } + + bool TCompiler::enforcePackingRestrictions() +diff --git a/src/compiler/translator/Compiler.h b/src/compiler/translator/Compiler.h +index 6d1e225..145ecb4 100644 +--- a/src/compiler/translator/Compiler.h ++++ b/src/compiler/translator/Compiler.h +@@ -72,9 +72,7 @@ class TCompiler : public TShHandleBase + const std::vector &getAttributes() const { return attributes; } + const std::vector &getOutputVariables() const { return outputVariables; } + const std::vector &getUniforms() const { return uniforms; } +- const std::vector &getExpandedUniforms() const { return expandedUniforms; } + const std::vector &getVaryings() const { return varyings; } +- const std::vector &getExpandedVaryings() const { return expandedVaryings; } + const std::vector &getInterfaceBlocks() const { return interfaceBlocks; } + + ShHashFunction64 getHashFunction() const { return hashFunction; } +@@ -144,7 +142,6 @@ class TCompiler : public TShHandleBase + std::vector uniforms; + std::vector expandedUniforms; + std::vector varyings; +- std::vector expandedVaryings; + std::vector interfaceBlocks; + + private: +diff --git a/src/compiler/translator/ShaderLang.cpp b/src/compiler/translator/ShaderLang.cpp +index 144ef90..35dac5f 100644 +--- a/src/compiler/translator/ShaderLang.cpp ++++ b/src/compiler/translator/ShaderLang.cpp +@@ -37,72 +37,6 @@ bool isInitialized = false; + // and the shading language compiler. + // + +-static bool CheckVariableMaxLengths(const ShHandle handle, +- size_t expectedValue) +-{ +- size_t activeUniformLimit = 0; +- ShGetInfo(handle, SH_ACTIVE_UNIFORM_MAX_LENGTH, &activeUniformLimit); +- size_t activeAttribLimit = 0; +- ShGetInfo(handle, SH_ACTIVE_ATTRIBUTE_MAX_LENGTH, &activeAttribLimit); +- size_t varyingLimit = 0; +- ShGetInfo(handle, SH_VARYING_MAX_LENGTH, &varyingLimit); +- return (expectedValue == activeUniformLimit && +- expectedValue == activeAttribLimit && +- expectedValue == varyingLimit); +-} +- +-bool CheckMappedNameMaxLength(const ShHandle handle, size_t expectedValue) +-{ +- size_t mappedNameMaxLength = 0; +- ShGetInfo(handle, SH_MAPPED_NAME_MAX_LENGTH, &mappedNameMaxLength); +- return (expectedValue == mappedNameMaxLength); +-} +- +-template +-const sh::ShaderVariable *ReturnVariable(const std::vector &infoList, int index) +-{ +- if (index < 0 || static_cast(index) >= infoList.size()) +- { +- return NULL; +- } +- +- return &infoList[index]; +-} +- +-const sh::ShaderVariable *GetVariable(const TCompiler *compiler, ShShaderInfo varType, int index) +-{ +- switch (varType) +- { +- case SH_ACTIVE_ATTRIBUTES: +- return ReturnVariable(compiler->getAttributes(), index); +- case SH_ACTIVE_UNIFORMS: +- return ReturnVariable(compiler->getExpandedUniforms(), index); +- case SH_VARYINGS: +- return ReturnVariable(compiler->getExpandedVaryings(), index); +- default: +- UNREACHABLE(); +- return NULL; +- } +-} +- +-ShPrecisionType ConvertPrecision(sh::GLenum precision) +-{ +- switch (precision) +- { +- case GL_HIGH_FLOAT: +- case GL_HIGH_INT: +- return SH_PRECISION_HIGHP; +- case GL_MEDIUM_FLOAT: +- case GL_MEDIUM_INT: +- return SH_PRECISION_MEDIUMP; +- case GL_LOW_FLOAT: +- case GL_LOW_INT: +- return SH_PRECISION_LOWP; +- default: +- return SH_PRECISION_UNDEFINED; +- } +-} +- + template + const std::vector *GetVariableList(const TCompiler *compiler, ShaderVariableType variableType); + +@@ -315,24 +249,6 @@ void ShGetInfo(const ShHandle handle, ShShaderInfo pname, size_t* params) + case SH_OBJECT_CODE_LENGTH: + *params = compiler->getInfoSink().obj.size() + 1; + break; +- case SH_ACTIVE_UNIFORMS: +- *params = compiler->getExpandedUniforms().size(); +- break; +- case SH_ACTIVE_UNIFORM_MAX_LENGTH: +- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); +- break; +- case SH_ACTIVE_ATTRIBUTES: +- *params = compiler->getAttributes().size(); +- break; +- case SH_ACTIVE_ATTRIBUTE_MAX_LENGTH: +- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); +- break; +- case SH_VARYINGS: +- *params = compiler->getExpandedVaryings().size(); +- break; +- case SH_VARYING_MAX_LENGTH: +- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); +- break; + case SH_MAPPED_NAME_MAX_LENGTH: + // Use longer length than MAX_SHORTENED_IDENTIFIER_SIZE to + // handle array and struct dereferences. +@@ -400,58 +316,6 @@ void ShGetObjectCode(const ShHandle handle, char* objCode) + strcpy(objCode, infoSink.obj.c_str()); + } + +-void ShGetVariableInfo(const ShHandle handle, +- ShShaderInfo varType, +- int index, +- size_t* length, +- int* size, +- sh::GLenum* type, +- ShPrecisionType* precision, +- int* staticUse, +- char* name, +- char* mappedName) +-{ +- if (!handle || !size || !type || !precision || !staticUse || !name) +- return; +- ASSERT((varType == SH_ACTIVE_ATTRIBUTES) || +- (varType == SH_ACTIVE_UNIFORMS) || +- (varType == SH_VARYINGS)); +- +- TShHandleBase* base = reinterpret_cast(handle); +- TCompiler* compiler = base->getAsCompiler(); +- if (compiler == 0) +- return; +- +- const sh::ShaderVariable *varInfo = GetVariable(compiler, varType, index); +- if (!varInfo) +- { +- return; +- } +- +- if (length) *length = varInfo->name.size(); +- *size = varInfo->elementCount(); +- *type = varInfo->type; +- *precision = ConvertPrecision(varInfo->precision); +- *staticUse = varInfo->staticUse ? 1 : 0; +- +- // This size must match that queried by +- // SH_ACTIVE_UNIFORM_MAX_LENGTH, SH_ACTIVE_ATTRIBUTE_MAX_LENGTH, SH_VARYING_MAX_LENGTH +- // in ShGetInfo, below. +- size_t variableLength = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); +- ASSERT(CheckVariableMaxLengths(handle, variableLength)); +- strncpy(name, varInfo->name.c_str(), variableLength); +- name[variableLength - 1] = 0; +- if (mappedName) +- { +- // This size must match that queried by +- // SH_MAPPED_NAME_MAX_LENGTH in ShGetInfo, below. +- size_t maxMappedNameLength = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); +- ASSERT(CheckMappedNameMaxLength(handle, maxMappedNameLength)); +- strncpy(mappedName, varInfo->mappedName.c_str(), maxMappedNameLength); +- mappedName[maxMappedNameLength - 1] = 0; +- } +-} +- + void ShGetNameHashingEntry(const ShHandle handle, + int index, + char* name, +diff --git a/src/compiler/translator/VariableInfo.cpp b/src/compiler/translator/VariableInfo.cpp +index cd92706..d8e1378 100644 +--- a/src/compiler/translator/VariableInfo.cpp ++++ b/src/compiler/translator/VariableInfo.cpp +@@ -466,9 +466,8 @@ bool CollectVariables::visitBinary(Visit, TIntermBinary *binaryNode) + return true; + } + +-template +-void ExpandVariables(const std::vector &compact, +- std::vector *expanded) ++void ExpandUniforms(const std::vector &compact, ++ std::vector *expanded) + { + for (size_t variableIndex = 0; variableIndex < compact.size(); variableIndex++) + { +@@ -477,7 +476,4 @@ void ExpandVariables(const std::vector &compact, + } + } + +-template void ExpandVariables(const std::vector &, std::vector *); +-template void ExpandVariables(const std::vector &, std::vector *); +- + } +diff --git a/src/compiler/translator/VariableInfo.h b/src/compiler/translator/VariableInfo.h +index 9c6b6ba..92d376d 100644 +--- a/src/compiler/translator/VariableInfo.h ++++ b/src/compiler/translator/VariableInfo.h +@@ -59,10 +59,9 @@ class CollectVariables : public TIntermTraverser + const TSymbolTable &mSymbolTable; + }; + +-// Expand struct variables to flattened lists of split variables +-template +-void ExpandVariables(const std::vector &compact, +- std::vector *expanded); ++// Expand struct uniforms to flattened lists of split variables ++void ExpandUniforms(const std::vector &compact, ++ std::vector *expanded); + + } + diff --git a/mingw-w64-angleproject-git/commit-4de44cb b/mingw-w64-angleproject-git/commit-4de44cb new file mode 100644 index 0000000000..4c1c63ecbe --- /dev/null +++ b/mingw-w64-angleproject-git/commit-4de44cb @@ -0,0 +1,747 @@ +commit 4de44cb67e9e36966fb1993c0be35659a47182ef +Author: Zhenyao Mo +Date: Wed Oct 29 18:03:46 2014 -0700 + + Change ShaderLang APIs from c style to c++ style. + + BUG=angle:816 + TEST=gpu_unittests,angle_unittests,webgl_conformance + + Change-Id: I0b46c11f6055a82511bb946a6dc491360835526e + Reviewed-on: https://chromium-review.googlesource.com/226410 + Reviewed-by: Zhenyao Mo + Tested-by: Zhenyao Mo + +diff --git a/include/GLSLANG/ShaderLang.h b/include/GLSLANG/ShaderLang.h +index 0c1f8a0..647fed6 100644 +--- a/include/GLSLANG/ShaderLang.h ++++ b/include/GLSLANG/ShaderLang.h +@@ -27,6 +27,10 @@ + + #include "KHR/khrplatform.h" + ++#include ++#include ++#include ++ + // + // This is the platform independent interface between an OGL driver + // and the shading language compiler. +@@ -42,13 +46,9 @@ typedef unsigned int GLenum; + // Note: make sure to increment ANGLE_SH_VERSION when changing ShaderVars.h + #include "ShaderVars.h" + +-#ifdef __cplusplus +-extern "C" { +-#endif +- + // Version number for shader translation API. + // It is incremented every time the API changes. +-#define ANGLE_SH_VERSION 131 ++#define ANGLE_SH_VERSION 132 + + typedef enum { + SH_GLES2_SPEC = 0x8B40, +@@ -88,18 +88,6 @@ typedef enum { + SH_HLSL11_OUTPUT = 0x8B48 + } ShShaderOutput; + +-typedef enum { +- SH_INFO_LOG_LENGTH = 0x8B84, +- SH_OBJECT_CODE_LENGTH = 0x8B88, // GL_SHADER_SOURCE_LENGTH +- SH_MAPPED_NAME_MAX_LENGTH = 0x6000, +- SH_NAME_MAX_LENGTH = 0x6001, +- SH_HASHED_NAME_MAX_LENGTH = 0x6002, +- SH_HASHED_NAMES_COUNT = 0x6003, +- SH_SHADER_VERSION = 0x6004, +- SH_RESOURCES_STRING_LENGTH = 0x6005, +- SH_OUTPUT_TYPE = 0x6006 +-} ShShaderInfo; +- + // Compile options. + typedef enum { + SH_VALIDATE = 0, +@@ -198,14 +186,14 @@ typedef enum { + // + // Driver must call this first, once, before doing any other + // compiler operations. +-// If the function succeeds, the return value is nonzero, else zero. ++// If the function succeeds, the return value is true, else false. + // +-COMPILER_EXPORT int ShInitialize(); ++COMPILER_EXPORT bool ShInitialize(); + // + // Driver should call this at shutdown. +-// If the function succeeds, the return value is nonzero, else zero. ++// If the function succeeds, the return value is true, else false. + // +-COMPILER_EXPORT int ShFinalize(); ++COMPILER_EXPORT bool ShFinalize(); + + // The 64 bits hash function. The first parameter is the input string; the + // second parameter is the string length. +@@ -273,7 +261,7 @@ typedef struct + // Parameters: + // resources: The object to initialize. Will be comparable with memcmp. + // +-COMPILER_EXPORT void ShInitBuiltInResources(ShBuiltInResources* resources); ++COMPILER_EXPORT void ShInitBuiltInResources(ShBuiltInResources *resources); + + // + // ShHandle held by but opaque to the driver. It is allocated, +@@ -282,18 +270,15 @@ COMPILER_EXPORT void ShInitBuiltInResources(ShBuiltInResources* resources); + // + // If handle creation fails, 0 will be returned. + // +-typedef void* ShHandle; ++typedef void *ShHandle; + + // +-// Returns the a concatenated list of the items in ShBuiltInResources as a string. ++// Returns the a concatenated list of the items in ShBuiltInResources as a ++// null-terminated string. + // This function must be updated whenever ShBuiltInResources is changed. + // Parameters: + // handle: Specifies the handle of the compiler to be used. +-// outStringLen: Specifies the size of the buffer, in number of characters. The size +-// of the buffer required to store the resources string can be obtained +-// by calling ShGetInfo with SH_RESOURCES_STRING_LENGTH. +-// outStr: Returns a null-terminated string representing all the built-in resources. +-COMPILER_EXPORT void ShGetBuiltInResourcesString(const ShHandle handle, size_t outStringLen, char *outStr); ++COMPILER_EXPORT const std::string &ShGetBuiltInResourcesString(const ShHandle handle); + + // + // Driver calls these to create and destroy compiler objects. +@@ -311,12 +296,12 @@ COMPILER_EXPORT ShHandle ShConstructCompiler( + sh::GLenum type, + ShShaderSpec spec, + ShShaderOutput output, +- const ShBuiltInResources* resources); ++ const ShBuiltInResources *resources); + COMPILER_EXPORT void ShDestruct(ShHandle handle); + + // + // Compiles the given shader source. +-// If the function succeeds, the return value is nonzero, else zero. ++// If the function succeeds, the return value is true, else false. + // Parameters: + // handle: Specifies the handle of compiler to be used. + // shaderStrings: Specifies an array of pointers to null-terminated strings +@@ -338,74 +323,36 @@ COMPILER_EXPORT void ShDestruct(ShHandle handle); + // SH_VARIABLES: Extracts attributes, uniforms, and varyings. + // Can be queried by calling ShGetVariableInfo(). + // +-COMPILER_EXPORT int ShCompile( ++COMPILER_EXPORT bool ShCompile( + const ShHandle handle, +- const char* const shaderStrings[], ++ const char * const shaderStrings[], + size_t numStrings, +- int compileOptions +- ); ++ int compileOptions); + +-// Returns a parameter from a compiled shader. +-// Parameters: +-// handle: Specifies the compiler +-// pname: Specifies the parameter to query. +-// The following parameters are defined: +-// SH_INFO_LOG_LENGTH: the number of characters in the information log +-// including the null termination character. +-// SH_OBJECT_CODE_LENGTH: the number of characters in the object code +-// including the null termination character. +-// SH_MAPPED_NAME_MAX_LENGTH: the length of the mapped variable name including +-// the null termination character. +-// SH_NAME_MAX_LENGTH: the max length of a user-defined name including the +-// null termination character. +-// SH_HASHED_NAME_MAX_LENGTH: the max length of a hashed name including the +-// null termination character. +-// SH_HASHED_NAMES_COUNT: the number of hashed names from the latest compile. +-// SH_SHADER_VERSION: the version of the shader language +-// SH_OUTPUT_TYPE: the currently set language output type +-// +-// params: Requested parameter +-COMPILER_EXPORT void ShGetInfo(const ShHandle handle, +- ShShaderInfo pname, +- size_t* params); ++// Return the version of the shader language. ++COMPILER_EXPORT int ShGetShaderVersion(const ShHandle handle); ++ ++// Return the currently set language output type. ++COMPILER_EXPORT ShShaderOutput ShGetShaderOutputType( ++ const ShHandle handle); + +-// Returns nul-terminated information log for a compiled shader. ++// Returns null-terminated information log for a compiled shader. + // Parameters: + // handle: Specifies the compiler +-// infoLog: Specifies an array of characters that is used to return +-// the information log. It is assumed that infoLog has enough memory +-// to accomodate the information log. The size of the buffer required +-// to store the returned information log can be obtained by calling +-// ShGetInfo with SH_INFO_LOG_LENGTH. +-COMPILER_EXPORT void ShGetInfoLog(const ShHandle handle, char* infoLog); ++COMPILER_EXPORT const std::string &ShGetInfoLog(const ShHandle handle); + + // Returns null-terminated object code for a compiled shader. + // Parameters: + // handle: Specifies the compiler +-// infoLog: Specifies an array of characters that is used to return +-// the object code. It is assumed that infoLog has enough memory to +-// accomodate the object code. The size of the buffer required to +-// store the returned object code can be obtained by calling +-// ShGetInfo with SH_OBJECT_CODE_LENGTH. +-COMPILER_EXPORT void ShGetObjectCode(const ShHandle handle, char* objCode); +- +-// Returns information about a name hashing entry from the latest compile. ++COMPILER_EXPORT const std::string &ShGetObjectCode(const ShHandle handle); ++ ++// Returns a (original_name, hash) map containing all the user defined ++// names in the shader, including variable names, function names, struct ++// names, and struct field names. + // Parameters: + // handle: Specifies the compiler +-// index: Specifies the index of the name hashing entry to be queried. +-// name: Returns a null terminated string containing the user defined name. +-// It is assumed that name has enough memory to accomodate the name. +-// The size of the buffer required to store the user defined name can +-// be obtained by calling ShGetInfo with SH_NAME_MAX_LENGTH. +-// hashedName: Returns a null terminated string containing the hashed name of +-// the uniform variable, It is assumed that hashedName has enough +-// memory to accomodate the name. The size of the buffer required +-// to store the name can be obtained by calling ShGetInfo with +-// SH_HASHED_NAME_MAX_LENGTH. +-COMPILER_EXPORT void ShGetNameHashingEntry(const ShHandle handle, +- int index, +- char* name, +- char* hashedName); ++COMPILER_EXPORT const std::map *ShGetNameHashingMap( ++ const ShHandle handle); + + // Shader variable inspection. + // Returns a pointer to a list of variables of the designated type. +@@ -425,17 +372,17 @@ typedef struct + int size; + } ShVariableInfo; + +-// Returns 1 if the passed in variables pack in maxVectors following ++// Returns true if the passed in variables pack in maxVectors following + // the packing rules from the GLSL 1.017 spec, Appendix A, section 7. +-// Returns 0 otherwise. Also look at the SH_ENFORCE_PACKING_RESTRICTIONS ++// Returns false otherwise. Also look at the SH_ENFORCE_PACKING_RESTRICTIONS + // flag above. + // Parameters: + // maxVectors: the available rows of registers. + // varInfoArray: an array of variable info (types and sizes). + // varInfoArraySize: the size of the variable array. +-COMPILER_EXPORT int ShCheckVariablesWithinPackingLimits( ++COMPILER_EXPORT bool ShCheckVariablesWithinPackingLimits( + int maxVectors, +- ShVariableInfo* varInfoArray, ++ ShVariableInfo *varInfoArray, + size_t varInfoArraySize); + + // Gives the compiler-assigned register for an interface block. +@@ -446,7 +393,7 @@ COMPILER_EXPORT int ShCheckVariablesWithinPackingLimits( + // interfaceBlockName: Specifies the interface block + // indexOut: output variable that stores the assigned register + COMPILER_EXPORT bool ShGetInterfaceBlockRegister(const ShHandle handle, +- const char *interfaceBlockName, ++ const std::string &interfaceBlockName, + unsigned int *indexOut); + + // Gives the compiler-assigned register for uniforms in the default +@@ -458,11 +405,7 @@ COMPILER_EXPORT bool ShGetInterfaceBlockRegister(const ShHandle handle, + // interfaceBlockName: Specifies the uniform + // indexOut: output variable that stores the assigned register + COMPILER_EXPORT bool ShGetUniformRegister(const ShHandle handle, +- const char *uniformName, ++ const std::string &uniformName, + unsigned int *indexOut); + +-#ifdef __cplusplus +-} +-#endif +- + #endif // _COMPILER_INTERFACE_INCLUDED_ +diff --git a/src/compiler/translator/Compiler.h b/src/compiler/translator/Compiler.h +index 145ecb4..b6c9d13 100644 +--- a/src/compiler/translator/Compiler.h ++++ b/src/compiler/translator/Compiler.h +@@ -80,7 +80,7 @@ class TCompiler : public TShHandleBase + TSymbolTable& getSymbolTable() { return symbolTable; } + ShShaderSpec getShaderSpec() const { return shaderSpec; } + ShShaderOutput getOutputType() const { return outputType; } +- std::string getBuiltInResourcesString() const { return builtInResourcesString; } ++ const std::string &getBuiltInResourcesString() const { return builtInResourcesString; } + + // Get the resources set by InitBuiltInSymbolTable + const ShBuiltInResources& getResources() const; +diff --git a/src/compiler/translator/ShaderLang.cpp b/src/compiler/translator/ShaderLang.cpp +index 35dac5f..0d6a1d6 100644 +--- a/src/compiler/translator/ShaderLang.cpp ++++ b/src/compiler/translator/ShaderLang.cpp +@@ -84,32 +84,48 @@ const std::vector *GetShaderVariables(const ShHandle handle, ShaderVariabl + return GetVariableList(compiler, variableType); + } + ++TCompiler *GetCompilerFromHandle(ShHandle handle) ++{ ++ if (!handle) ++ return NULL; ++ TShHandleBase *base = static_cast(handle); ++ return base->getAsCompiler(); + } + ++TranslatorHLSL *GetTranslatorHLSLFromHandle(ShHandle handle) ++{ ++ if (!handle) ++ return NULL; ++ TShHandleBase *base = static_cast(handle); ++ return base->getAsTranslatorHLSL(); ++} ++ ++} // namespace anonymous ++ + // + // Driver must call this first, once, before doing any other compiler operations. + // Subsequent calls to this function are no-op. + // +-int ShInitialize() ++bool ShInitialize() + { + if (!isInitialized) + { + isInitialized = InitProcess(); + } +- return isInitialized ? 1 : 0; ++ return isInitialized; + } + + // + // Cleanup symbol tables + // +-int ShFinalize() ++bool ShFinalize() + { + if (isInitialized) + { + DetachProcess(); + isInitialized = false; + } +- return 1; ++ return true; + } + + // +@@ -190,23 +206,13 @@ void ShDestruct(ShHandle handle) + DeleteCompiler(base->getAsCompiler()); + } + +-void ShGetBuiltInResourcesString(const ShHandle handle, size_t outStringLen, char *outString) ++const std::string &ShGetBuiltInResourcesString(const ShHandle handle) + { +- if (!handle || !outString) +- { +- return; +- } +- +- TShHandleBase *base = static_cast(handle); +- TCompiler *compiler = base->getAsCompiler(); +- if (!compiler) +- { +- return; +- } +- +- strncpy(outString, compiler->getBuiltInResourcesString().c_str(), outStringLen); +- outString[outStringLen - 1] = '\0'; ++ TCompiler *compiler = GetCompilerFromHandle(handle); ++ ASSERT(compiler); ++ return compiler->getBuiltInResourcesString(); + } ++ + // + // Do an actual compile on the given strings. The result is left + // in the given compile object. +@@ -214,149 +220,62 @@ void ShGetBuiltInResourcesString(const ShHandle handle, size_t outStringLen, cha + // Return: The return value of ShCompile is really boolean, indicating + // success or failure. + // +-int ShCompile( ++bool ShCompile( + const ShHandle handle, +- const char* const shaderStrings[], ++ const char *const shaderStrings[], + size_t numStrings, + int compileOptions) + { +- if (handle == 0) +- return 0; +- +- TShHandleBase* base = reinterpret_cast(handle); +- TCompiler* compiler = base->getAsCompiler(); +- if (compiler == 0) +- return 0; ++ TCompiler *compiler = GetCompilerFromHandle(handle); ++ ASSERT(compiler); + +- bool success = compiler->compile(shaderStrings, numStrings, compileOptions); +- return success ? 1 : 0; ++ return compiler->compile(shaderStrings, numStrings, compileOptions); + } + +-void ShGetInfo(const ShHandle handle, ShShaderInfo pname, size_t* params) ++int ShGetShaderVersion(const ShHandle handle) + { +- if (!handle || !params) +- return; +- +- TShHandleBase* base = static_cast(handle); +- TCompiler* compiler = base->getAsCompiler(); +- if (!compiler) return; ++ TCompiler* compiler = GetCompilerFromHandle(handle); ++ ASSERT(compiler); ++ return compiler->getShaderVersion(); ++} + +- switch(pname) +- { +- case SH_INFO_LOG_LENGTH: +- *params = compiler->getInfoSink().info.size() + 1; +- break; +- case SH_OBJECT_CODE_LENGTH: +- *params = compiler->getInfoSink().obj.size() + 1; +- break; +- case SH_MAPPED_NAME_MAX_LENGTH: +- // Use longer length than MAX_SHORTENED_IDENTIFIER_SIZE to +- // handle array and struct dereferences. +- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); +- break; +- case SH_NAME_MAX_LENGTH: +- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); +- break; +- case SH_HASHED_NAME_MAX_LENGTH: +- if (compiler->getHashFunction() == NULL) { +- *params = 0; +- } else { +- // 64 bits hashing output requires 16 bytes for hex +- // representation. +- const char HashedNamePrefix[] = HASHED_NAME_PREFIX; +- (void)HashedNamePrefix; +- *params = 16 + sizeof(HashedNamePrefix); +- } +- break; +- case SH_HASHED_NAMES_COUNT: +- *params = compiler->getNameMap().size(); +- break; +- case SH_SHADER_VERSION: +- *params = compiler->getShaderVersion(); +- break; +- case SH_RESOURCES_STRING_LENGTH: +- *params = compiler->getBuiltInResourcesString().length() + 1; +- break; +- case SH_OUTPUT_TYPE: +- *params = compiler->getOutputType(); +- break; +- default: UNREACHABLE(); +- } ++ShShaderOutput ShGetShaderOutputType(const ShHandle handle) ++{ ++ TCompiler* compiler = GetCompilerFromHandle(handle); ++ ASSERT(compiler); ++ return compiler->getOutputType(); + } + + // + // Return any compiler log of messages for the application. + // +-void ShGetInfoLog(const ShHandle handle, char* infoLog) ++const std::string &ShGetInfoLog(const ShHandle handle) + { +- if (!handle || !infoLog) +- return; ++ TCompiler *compiler = GetCompilerFromHandle(handle); ++ ASSERT(compiler); + +- TShHandleBase* base = static_cast(handle); +- TCompiler* compiler = base->getAsCompiler(); +- if (!compiler) return; +- +- TInfoSink& infoSink = compiler->getInfoSink(); +- strcpy(infoLog, infoSink.info.c_str()); ++ TInfoSink &infoSink = compiler->getInfoSink(); ++ return infoSink.info.str(); + } + + // + // Return any object code. + // +-void ShGetObjectCode(const ShHandle handle, char* objCode) ++const std::string &ShGetObjectCode(const ShHandle handle) + { +- if (!handle || !objCode) +- return; ++ TCompiler *compiler = GetCompilerFromHandle(handle); ++ ASSERT(compiler); + +- TShHandleBase* base = static_cast(handle); +- TCompiler* compiler = base->getAsCompiler(); +- if (!compiler) return; +- +- TInfoSink& infoSink = compiler->getInfoSink(); +- strcpy(objCode, infoSink.obj.c_str()); ++ TInfoSink &infoSink = compiler->getInfoSink(); ++ return infoSink.obj.str(); + } + +-void ShGetNameHashingEntry(const ShHandle handle, +- int index, +- char* name, +- char* hashedName) ++const std::map *ShGetNameHashingMap( ++ const ShHandle handle) + { +- if (!handle || !name || !hashedName || index < 0) +- return; +- +- TShHandleBase* base = static_cast(handle); +- TCompiler* compiler = base->getAsCompiler(); +- if (!compiler) return; +- +- const NameMap& nameMap = compiler->getNameMap(); +- if (index >= static_cast(nameMap.size())) +- return; +- +- NameMap::const_iterator it = nameMap.begin(); +- for (int i = 0; i < index; ++i) +- ++it; +- +- size_t len = it->first.length() + 1; +- size_t max_len = 0; +- ShGetInfo(handle, SH_NAME_MAX_LENGTH, &max_len); +- if (len > max_len) { +- ASSERT(false); +- len = max_len; +- } +- strncpy(name, it->first.c_str(), len); +- // To be on the safe side in case the source is longer than expected. +- name[len - 1] = '\0'; +- +- len = it->second.length() + 1; +- max_len = 0; +- ShGetInfo(handle, SH_HASHED_NAME_MAX_LENGTH, &max_len); +- if (len > max_len) { +- ASSERT(false); +- len = max_len; +- } +- strncpy(hashedName, it->second.c_str(), len); +- // To be on the safe side in case the source is longer than expected. +- hashedName[len - 1] = '\0'; ++ TCompiler *compiler = GetCompilerFromHandle(handle); ++ ASSERT(compiler); ++ return &(compiler->getNameMap()); + } + + const std::vector *ShGetUniforms(const ShHandle handle) +@@ -384,11 +303,11 @@ const std::vector *ShGetInterfaceBlocks(const ShHandle handl + return GetShaderVariables(handle, SHADERVAR_INTERFACEBLOCK); + } + +-int ShCheckVariablesWithinPackingLimits( +- int maxVectors, ShVariableInfo* varInfoArray, size_t varInfoArraySize) ++bool ShCheckVariablesWithinPackingLimits( ++ int maxVectors, ShVariableInfo *varInfoArray, size_t varInfoArraySize) + { + if (varInfoArraySize == 0) +- return 1; ++ return true; + ASSERT(varInfoArray); + std::vector variables; + for (size_t ii = 0; ii < varInfoArraySize; ++ii) +@@ -397,24 +316,17 @@ int ShCheckVariablesWithinPackingLimits( + variables.push_back(var); + } + VariablePacker packer; +- return packer.CheckVariablesWithinPackingLimits(maxVectors, variables) ? 1 : 0; ++ return packer.CheckVariablesWithinPackingLimits(maxVectors, variables); + } + + bool ShGetInterfaceBlockRegister(const ShHandle handle, +- const char *interfaceBlockName, ++ const std::string &interfaceBlockName, + unsigned int *indexOut) + { +- if (!handle || !interfaceBlockName || !indexOut) +- { +- return false; +- } ++ ASSERT(indexOut); + +- TShHandleBase* base = static_cast(handle); +- TranslatorHLSL* translator = base->getAsTranslatorHLSL(); +- if (!translator) +- { +- return false; +- } ++ TranslatorHLSL *translator = GetTranslatorHLSLFromHandle(handle); ++ ASSERT(translator); + + if (!translator->hasInterfaceBlock(interfaceBlockName)) + { +@@ -426,20 +338,12 @@ bool ShGetInterfaceBlockRegister(const ShHandle handle, + } + + bool ShGetUniformRegister(const ShHandle handle, +- const char *uniformName, ++ const std::string &uniformName, + unsigned int *indexOut) + { +- if (!handle || !uniformName || !indexOut) +- { +- return false; +- } +- +- TShHandleBase* base = static_cast(handle); +- TranslatorHLSL* translator = base->getAsTranslatorHLSL(); +- if (!translator) +- { +- return false; +- } ++ ASSERT(indexOut); ++ TranslatorHLSL *translator = GetTranslatorHLSLFromHandle(handle); ++ ASSERT(translator); + + if (!translator->hasUniform(uniformName)) + { +diff --git a/src/libGLESv2/renderer/d3d/ShaderD3D.cpp b/src/libGLESv2/renderer/d3d/ShaderD3D.cpp +index d08a81d..44e73e5 100644 +--- a/src/libGLESv2/renderer/d3d/ShaderD3D.cpp ++++ b/src/libGLESv2/renderer/d3d/ShaderD3D.cpp +@@ -102,7 +102,7 @@ void ShaderD3D::initializeCompiler() + { + if (!mFragmentCompiler) + { +- int result = ShInitialize(); ++ bool result = ShInitialize(); + + if (result) + { +@@ -252,23 +252,16 @@ + result = ShCompile(compiler, sourceStrings, ArraySize(sourceStrings), compileOptions | SH_SOURCE_PATH); + } + +- size_t shaderVersion = 100; +- ShGetInfo(compiler, SH_SHADER_VERSION, &shaderVersion); ++ mShaderVersion = ShGetShaderVersion(compiler); + +- mShaderVersion = static_cast(shaderVersion); +- +- if (shaderVersion == 300 && data.clientVersion < 3) ++ if (mShaderVersion == 300 && data.clientVersion < 3) + { + mInfoLog = "GLSL ES 3.00 is not supported by OpenGL ES 2.0 contexts"; + TRACE("\n%s", mInfoLog.c_str()); + } + else if (result) + { +- size_t objCodeLen = 0; +- ShGetInfo(compiler, SH_OBJECT_CODE_LENGTH, &objCodeLen); +- +- std::vector outputHLSL(objCodeLen); +- ShGetObjectCode(compiler, outputHLSL.data()); ++ mHlsl = ShGetObjectCode(compiler); + + #ifdef _DEBUG + // Prefix hlsl shader with commented out glsl shader +@@ -288,10 +281,8 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source) + curPos = (nextLine == std::string::npos) ? std::string::npos : (nextLine + 1); + } + hlslStream << "\n\n"; +- hlslStream << outputHLSL.data(); ++ hlslStream << mHlsl; + mHlsl = hlslStream.str(); +-#else +- mHlsl = outputHLSL.data(); + #endif + + mUniforms = *GetShaderVariables(ShGetUniforms(compiler)); +@@ -303,7 +294,7 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source) + if (uniform.staticUse) + { + unsigned int index = -1; +- bool result = ShGetUniformRegister(compiler, uniform.name.c_str(), &index); ++ bool result = ShGetUniformRegister(compiler, uniform.name, &index); + UNUSED_ASSERTION_VARIABLE(result); + ASSERT(result); + +@@ -320,7 +311,7 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source) + if (interfaceBlock.staticUse) + { + unsigned int index = -1; +- bool result = ShGetInterfaceBlockRegister(compiler, interfaceBlock.name.c_str(), &index); ++ bool result = ShGetInterfaceBlockRegister(compiler, interfaceBlock.name, &index); + UNUSED_ASSERTION_VARIABLE(result); + ASSERT(result); + +@@ -330,14 +321,9 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source) + } + else + { +- size_t infoLogLen = 0; +- ShGetInfo(compiler, SH_INFO_LOG_LENGTH, &infoLogLen); ++ mInfoLog = ShGetInfoLog(compiler); + +- std::vector infoLog(infoLogLen); +- ShGetInfoLog(compiler, infoLog.data()); +- mInfoLog = infoLog.data(); +- +- TRACE("\n%s", infoLog.data()); ++ TRACE("\n%s", mInfoLog.c_str()); + } + } + +@@ -419,10 +405,7 @@ + default: UNREACHABLE(); return SH_HLSL9_OUTPUT; + } + +- size_t outputType = 0; +- ShGetInfo(compiler, SH_OUTPUT_TYPE, &outputType); +- +- return static_cast(outputType); ++ return ShGetShaderOutputType(compiler); + } + + bool ShaderD3D::compile(const gl::Data &data, const std::string &source) +diff --git a/tests/compiler_tests/ExpressionLimit_test.cpp b/tests/compiler_tests/ExpressionLimit_test.cpp +index 0236064..1dc2be6 100644 +--- a/tests/compiler_tests/ExpressionLimit_test.cpp ++++ b/tests/compiler_tests/ExpressionLimit_test.cpp +@@ -144,19 +144,18 @@ protected: + // substring in the error log. This way we know the error is specific + // to the issue we are testing. + bool CheckShaderCompilation(ShHandle compiler, +- const char* source, ++ const char *source, + int compileOptions, +- const char* expected_error) { ++ const char *expected_error) ++ { + bool success = ShCompile(compiler, &source, 1, compileOptions) != 0; +- if (success) { ++ if (success) ++ { + success = !expected_error; +- } else { +- size_t bufferLen = 0; +- ShGetInfo(compiler, SH_INFO_LOG_LENGTH, &bufferLen); +- char* buffer(new char [bufferLen]); +- ShGetInfoLog(compiler, buffer); +- std::string log(buffer, buffer + bufferLen); +- delete [] buffer; ++ } ++ else ++ { ++ std::string log = ShGetInfoLog(compiler); + if (expected_error) + success = log.find(expected_error) != std::string::npos; + diff --git a/mingw-w64-angleproject-git/libEGL_mingw32.def b/mingw-w64-angleproject-git/libEGL_mingw32.def new file mode 100644 index 0000000000..492ad4d0cf --- /dev/null +++ b/mingw-w64-angleproject-git/libEGL_mingw32.def @@ -0,0 +1,41 @@ +LIBRARY libEGL +EXPORTS + eglBindAPI@4 @14 + eglBindTexImage@12 @20 + eglChooseConfig@20 @7 + eglCopyBuffers@12 @33 + eglCreateContext@16 @23 + eglCreatePbufferFromClientBuffer@20 @18 + eglCreatePbufferSurface@12 @10 + eglCreatePixmapSurface@16 @11 + eglCreateWindowSurface@16 @9 + eglDestroyContext@8 @24 + eglDestroySurface@8 @12 + eglGetConfigAttrib@16 @8 + eglGetConfigs@16 @6 + eglGetCurrentContext@0 @26 + eglGetCurrentDisplay@0 @28 + eglGetCurrentSurface@4 @27 + eglGetDisplay@4 @2 + eglGetError@0 @1 + eglGetProcAddress@4 @34 + eglInitialize@12 @3 + eglMakeCurrent@16 @25 + eglQueryAPI@0 @15 + eglQueryContext@16 @29 + eglQueryString@8 @5 + eglQuerySurface@16 @13 + eglReleaseTexImage@12 @21 + eglReleaseThread@0 @17 + eglSurfaceAttrib@16 @19 + eglSwapBuffers@8 @32 + eglSwapInterval@8 @22 + eglTerminate@4 @4 + eglWaitClient@0 @16 + eglWaitGL@0 @30 + eglWaitNative@4 @31 + + ; Extensions + eglGetPlatformDisplayEXT@12 @35 + eglQuerySurfacePointerANGLE@16 @36 + eglPostSubBufferNV@24 @37 diff --git a/mingw-w64-angleproject-git/libGLESv2_mingw32.def b/mingw-w64-angleproject-git/libGLESv2_mingw32.def new file mode 100644 index 0000000000..18ffcf6a0d --- /dev/null +++ b/mingw-w64-angleproject-git/libGLESv2_mingw32.def @@ -0,0 +1,296 @@ +LIBRARY libGLESv2 +EXPORTS + glActiveTexture@4 @1 + glAttachShader@8 @2 + glBindAttribLocation@12 @3 + glBindBuffer@8 @4 + glBindFramebuffer@8 @5 + glBindRenderbuffer@8 @6 + glBindTexture@8 @7 + glBlendColor@16 @8 + glBlendEquation@4 @9 + glBlendEquationSeparate@8 @10 + glBlendFunc@8 @11 + glBlendFuncSeparate@16 @12 + glBufferData@16 @13 + glBufferSubData@16 @14 + glCheckFramebufferStatus@4 @15 + glClear@4 @16 + glClearColor@16 @17 + glClearDepthf@4 @18 + glClearStencil@4 @19 + glColorMask@16 @20 + glCompileShader@4 @21 + glCompressedTexImage2D@32 @22 + glCompressedTexSubImage2D@36 @23 + glCopyTexImage2D@32 @24 + glCopyTexSubImage2D@32 @25 + glCreateProgram@0 @26 + glCreateShader@4 @27 + glCullFace@4 @28 + glDeleteBuffers@8 @29 + glDeleteFramebuffers@8 @30 + glDeleteProgram@4 @32 + glDeleteRenderbuffers@8 @33 + glDeleteShader@4 @34 + glDeleteTextures@8 @31 + glDepthFunc@4 @36 + glDepthMask@4 @37 + glDepthRangef@8 @38 + glDetachShader@8 @35 + glDisable@4 @39 + glDisableVertexAttribArray@4 @40 + glDrawArrays@12 @41 + glDrawElements@16 @42 + glEnable@4 @43 + glEnableVertexAttribArray@4 @44 + glFinish@0 @45 + glFlush@0 @46 + glFramebufferRenderbuffer@16 @47 + glFramebufferTexture2D@20 @48 + glFrontFace@4 @49 + glGenBuffers@8 @50 + glGenFramebuffers@8 @52 + glGenRenderbuffers@8 @53 + glGenTextures@8 @54 + glGenerateMipmap@4 @51 + glGetActiveAttrib@28 @55 + glGetActiveUniform@28 @56 + glGetAttachedShaders@16 @57 + glGetAttribLocation@8 @58 + glGetBooleanv@8 @59 + glGetBufferParameteriv@12 @60 + glGetError@0 @61 + glGetFloatv@8 @62 + glGetFramebufferAttachmentParameteriv@16 @63 + glGetIntegerv@8 @64 + glGetProgramInfoLog@16 @66 + glGetProgramiv@12 @65 + glGetRenderbufferParameteriv@12 @67 + glGetShaderInfoLog@16 @69 + glGetShaderPrecisionFormat@16 @70 + glGetShaderSource@16 @71 + glGetShaderiv@12 @68 + glGetString@4 @72 + glGetTexParameterfv@12 @73 + glGetTexParameteriv@12 @74 + glGetUniformLocation@8 @77 + glGetUniformfv@12 @75 + glGetUniformiv@12 @76 + glGetVertexAttribPointerv@12 @80 + glGetVertexAttribfv@12 @78 + glGetVertexAttribiv@12 @79 + glHint@8 @81 + glIsBuffer@4 @82 + glIsEnabled@4 @83 + glIsFramebuffer@4 @84 + glIsProgram@4 @85 + glIsRenderbuffer@4 @86 + glIsShader@4 @87 + glIsTexture@4 @88 + glLineWidth@4 @89 + glLinkProgram@4 @90 + glPixelStorei@8 @91 + glPolygonOffset@8 @92 + glReadPixels@28 @93 + glReleaseShaderCompiler@0 @94 + glRenderbufferStorage@16 @95 + glSampleCoverage@8 @96 + glScissor@16 @97 + glShaderBinary@20 @98 + glShaderSource@16 @99 + glStencilFunc@12 @100 + glStencilFuncSeparate@16 @101 + glStencilMask@4 @102 + glStencilMaskSeparate@8 @103 + glStencilOp@12 @104 + glStencilOpSeparate@16 @105 + glTexImage2D@36 @106 + glTexParameterf@12 @107 + glTexParameterfv@12 @108 + glTexParameteri@12 @109 + glTexParameteriv@12 @110 + glTexSubImage2D@36 @111 + glUniform1f@8 @112 + glUniform1fv@12 @113 + glUniform1i@8 @114 + glUniform1iv@12 @115 + glUniform2f@12 @116 + glUniform2fv@12 @117 + glUniform2i@12 @118 + glUniform2iv@12 @119 + glUniform3f@16 @120 + glUniform3fv@12 @121 + glUniform3i@16 @122 + glUniform3iv@12 @123 + glUniform4f@20 @124 + glUniform4fv@12 @125 + glUniform4i@20 @126 + glUniform4iv@12 @127 + glUniformMatrix2fv@16 @128 + glUniformMatrix3fv@16 @129 + glUniformMatrix4fv@16 @130 + glUseProgram@4 @131 + glValidateProgram@4 @132 + glVertexAttrib1f@8 @133 + glVertexAttrib1fv@8 @134 + glVertexAttrib2f@12 @135 + glVertexAttrib2fv@8 @136 + glVertexAttrib3f@16 @137 + glVertexAttrib3fv@8 @138 + glVertexAttrib4f@20 @139 + glVertexAttrib4fv@8 @140 + glVertexAttribPointer@24 @141 + glViewport@16 @142 + + ; Extensions + glTexImage3DOES@40 @143 + glBlitFramebufferANGLE@40 @149 + glRenderbufferStorageMultisampleANGLE@20 @150 + glDeleteFencesNV@8 @151 + glFinishFenceNV@4 @152 + glGenFencesNV@8 @153 + glGetFenceivNV@12 @154 + glIsFenceNV@4 @155 + glSetFenceNV@8 @156 + glTestFenceNV@4 @157 + glGetTranslatedShaderSourceANGLE@16 @159 + glTexStorage2DEXT@20 @160 + glGetGraphicsResetStatusEXT@0 @161 + glReadnPixelsEXT@32 @162 + glGetnUniformfvEXT@16 @163 + glGetnUniformivEXT@16 @164 + glGenQueriesEXT@8 @165 + glDeleteQueriesEXT@8 @166 + glIsQueryEXT@4 @167 + glBeginQueryEXT@8 @168 + glEndQueryEXT@4 @169 + glGetQueryivEXT@12 @170 + glGetQueryObjectuivEXT@12 @171 + glVertexAttribDivisorANGLE@8 @172 + glDrawArraysInstancedANGLE@16 @173 + glDrawElementsInstancedANGLE@20 @174 + glProgramBinaryOES@16 @175 + glGetProgramBinaryOES@20 @176 + glDrawBuffersEXT@8 @179 + glMapBufferOES@8 @285 + glUnmapBufferOES@4 @286 + glGetBufferPointervOES@12 @287 + glMapBufferRangeEXT@16 @288 + glFlushMappedBufferRangeEXT@12 @289 + + ; GLES 3.0 Functions + glReadBuffer@4 @180 + glDrawRangeElements@24 @181 + glTexImage3D@40 @182 + glTexSubImage3D@44 @183 + glCopyTexSubImage3D@36 @184 + glCompressedTexImage3D@36 @185 + glCompressedTexSubImage3D@44 @186 + glGenQueries@8 @187 + glDeleteQueries@8 @188 + glIsQuery@4 @189 + glBeginQuery@8 @190 + glEndQuery@4 @191 + glGetQueryiv@12 @192 + glGetQueryObjectuiv@12 @193 + glUnmapBuffer@4 @194 + glGetBufferPointerv@12 @195 + glDrawBuffers@8 @196 + glUniformMatrix2x3fv@16 @197 + glUniformMatrix3x2fv@16 @198 + glUniformMatrix2x4fv@16 @199 + glUniformMatrix4x2fv@16 @200 + glUniformMatrix3x4fv@16 @201 + glUniformMatrix4x3fv@16 @202 + glBlitFramebuffer@40 @203 + glRenderbufferStorageMultisample@20 @204 + glFramebufferTextureLayer@20 @205 + glMapBufferRange@16 @206 + glFlushMappedBufferRange@12 @207 + glBindVertexArray@4 @208 + glDeleteVertexArrays@8 @209 + glGenVertexArrays@8 @210 + glIsVertexArray@4 @211 + glGetIntegeri_v@12 @212 + glBeginTransformFeedback@4 @213 + glEndTransformFeedback@0 @214 + glBindBufferRange@20 @215 + glBindBufferBase@12 @216 + glTransformFeedbackVaryings@16 @217 + glGetTransformFeedbackVarying@28 @218 + glVertexAttribIPointer@20 @219 + glGetVertexAttribIiv@12 @220 + glGetVertexAttribIuiv@12 @221 + glVertexAttribI4i@20 @222 + glVertexAttribI4ui@20 @223 + glVertexAttribI4iv@8 @224 + glVertexAttribI4uiv@8 @225 + glGetUniformuiv@12 @226 + glGetFragDataLocation@8 @227 + glUniform1ui@8 @228 + glUniform2ui@12 @229 + glUniform3ui@16 @230 + glUniform4ui@20 @231 + glUniform1uiv@12 @232 + glUniform2uiv@12 @233 + glUniform3uiv@12 @234 + glUniform4uiv@12 @235 + glClearBufferiv@12 @236 + glClearBufferuiv@12 @237 + glClearBufferfv@12 @238 + glClearBufferfi@16 @239 + glGetStringi@8 @240 + glCopyBufferSubData@20 @241 + glGetUniformIndices@16 @242 + glGetActiveUniformsiv@20 @243 + glGetUniformBlockIndex@8 @244 + glGetActiveUniformBlockiv@16 @245 + glGetActiveUniformBlockName@20 @246 + glUniformBlockBinding@12 @247 + glDrawArraysInstanced@16 @248 + glDrawElementsInstanced@20 @249 + glFenceSync@8 @250 + glIsSync@4 @251 + glDeleteSync@4 @252 + glClientWaitSync@16 @253 + glWaitSync@16 @254 + glGetInteger64v@8 @255 + glGetSynciv@20 @256 + glGetInteger64i_v@12 @257 + glGetBufferParameteri64v@12 @258 + glGenSamplers@8 @259 + glDeleteSamplers@8 @260 + glIsSampler@4 @261 + glBindSampler@8 @262 + glSamplerParameteri@12 @263 + glSamplerParameteriv@12 @264 + glSamplerParameterf@12 @265 + glSamplerParameterfv@12 @266 + glGetSamplerParameteriv@12 @267 + glGetSamplerParameterfv@12 @268 + glVertexAttribDivisor@8 @269 + glBindTransformFeedback@8 @270 + glDeleteTransformFeedbacks@8 @271 + glGenTransformFeedbacks@8 @272 + glIsTransformFeedback@4 @273 + glPauseTransformFeedback@0 @274 + glResumeTransformFeedback@0 @275 + glGetProgramBinary@20 @276 + glProgramBinary@16 @277 + glProgramParameteri@12 @278 + glInvalidateFramebuffer@12 @279 + glInvalidateSubFramebuffer@28 @280 + glTexStorage2D@20 @281 + glTexStorage3D@24 @282 + glGetInternalformativ@20 @283 + + ; EGL dependencies + glCreateContext @144 NONAME + glDestroyContext @145 NONAME + glMakeCurrent @146 NONAME + glGetCurrentContext @147 NONAME + glGetProcAddress@4 @148 NONAME + glBindTexImage@4 @158 NONAME + glCreateRenderer @177 NONAME + glDestroyRenderer @178 NONAME From d2e5862ebbb43a4f515caff312edfa3fc51c5300 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 16:15:21 +0300 Subject: [PATCH 0739/2060] gobject-introspection: Fix building --- .../0065-fix-compare-uname-output.patch | 48 +++++++++++++++++++ mingw-w64-gobject-introspection/PKGBUILD | 9 ++-- 2 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch diff --git a/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch b/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch new file mode 100644 index 0000000000..9167d7061a --- /dev/null +++ b/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch @@ -0,0 +1,48 @@ +diff -Naur gobject-introspection-1.44.0-orig/Makefile.in gobject-introspection-1.44.0/Makefile.in +--- gobject-introspection-1.44.0-orig/Makefile.in 2015-03-25 13:43:11.690600000 +0300 ++++ gobject-introspection-1.44.0/Makefile.in 2015-03-25 16:06:41.757000000 +0300 +@@ -972,7 +972,7 @@ + # a command-line argument --libtool="/bin/sh ../../libtool" into + # --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path + # because we already "know" where the libtool configure produced is. +-_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) ++_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) + + # Macros for AM_SILENT_RULES prettiness + _gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) +diff -Naur gobject-introspection-1.44.0-orig/Makefile.introspection gobject-introspection-1.44.0/Makefile.introspection +--- gobject-introspection-1.44.0-orig/Makefile.introspection 2015-03-25 13:42:43.704200000 +0300 ++++ gobject-introspection-1.44.0/Makefile.introspection 2015-03-25 16:06:53.067000000 +0300 +@@ -68,7 +68,7 @@ + # a command-line argument --libtool="/bin/sh ../../libtool" into + # --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path + # because we already "know" where the libtool configure produced is. +-_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) ++_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) + + # Macros for AM_SILENT_RULES prettiness + _gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) +diff -Naur gobject-introspection-1.44.0-orig/tests/offsets/Makefile.in gobject-introspection-1.44.0/tests/offsets/Makefile.in +--- gobject-introspection-1.44.0-orig/tests/offsets/Makefile.in 2015-03-25 13:43:12.408200000 +0300 ++++ gobject-introspection-1.44.0/tests/offsets/Makefile.in 2015-03-25 16:07:19.431000000 +0300 +@@ -666,7 +666,7 @@ + # a command-line argument --libtool="/bin/sh ../../libtool" into + # --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path + # because we already "know" where the libtool configure produced is. +-_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) ++_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) + + # Macros for AM_SILENT_RULES prettiness + _gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) +diff -Naur gobject-introspection-1.44.0-orig/tests/scanner/Makefile.in gobject-introspection-1.44.0/tests/scanner/Makefile.in +--- gobject-introspection-1.44.0-orig/tests/scanner/Makefile.in 2015-03-25 13:43:12.798200000 +0300 ++++ gobject-introspection-1.44.0/tests/scanner/Makefile.in 2015-03-25 16:07:33.268200000 +0300 +@@ -765,7 +765,7 @@ + # a command-line argument --libtool="/bin/sh ../../libtool" into + # --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path + # because we already "know" where the libtool configure produced is. +-_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) ++_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) + + # Macros for AM_SILENT_RULES prettiness + _gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index 312bc7543b..00bf827beb 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -23,7 +23,8 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${pkgver%.* 0022-change-pkg-config-invocations.mingw.patch 0050-dont-load-msvcrt.patch 0055-fix-python-detection.patch - 0060-LRN.patch) + 0060-LRN.patch + 0065-fix-compare-uname-output.patch) md5sums=('7ef8a1db7f74f4193a2397b1587eb913' 'f0ecde986ebf1f0e28b752f9c36fb6c1' @@ -31,7 +32,8 @@ md5sums=('7ef8a1db7f74f4193a2397b1587eb913' '8d3589fb959a0a68ce7ce9051fa441fe' 'e3598d539258678eef8dde2216419faf' '6d809bf266e42a20b31a7acbaf0384d1' - '1dfd956934a6532a5a66d2b251019a36') + '1dfd956934a6532a5a66d2b251019a36' + '608c5b9c90a5b95b1669be74d2473fe1') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -41,6 +43,7 @@ prepare() { patch -p1 -i ${srcdir}/0050-dont-load-msvcrt.patch patch -p1 -i ${srcdir}/0055-fix-python-detection.patch patch -p1 -i ${srcdir}/0060-LRN.patch + patch -p1 -i ${srcdir}/0065-fix-compare-uname-output.patch autoreconf -fi } @@ -55,11 +58,11 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-silent-rules + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - } From c1671506bec194cad65cb7be4d8cf71797544b84 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 16:25:04 +0300 Subject: [PATCH 0740/2060] pygobject: Update to 3.16.0 --- mingw-w64-pygobject/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-pygobject/PKGBUILD b/mingw-w64-pygobject/PKGBUILD index fd9a2d1629..b3e0ee9848 100644 --- a/mingw-w64-pygobject/PKGBUILD +++ b/mingw-w64-pygobject/PKGBUILD @@ -2,7 +2,7 @@ _realname=pygobject pkgname=("${MINGW_PACKAGE_PREFIX}-python2-gobject" "${MINGW_PACKAGE_PREFIX}-python3-gobject" "${MINGW_PACKAGE_PREFIX}-pygobject-devel") -pkgver=3.14.0 +pkgver=3.16.0 pkgrel=1 pkgdesc="Allows you to load glade interface files in a program at runtime (mingw-w64)" arch=(any) @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-gnome-common") options=('staticlibs' 'strip') source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) -md5sums=('17722912afa982a6feace4bb9bf52778') +md5sums=('fedf819b15300c3898b3da9b32a1e719') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From fd42db911c202c03e8fc0fbce37b23737c18060b Mon Sep 17 00:00:00 2001 From: Ivan Nedrehagen Date: Wed, 25 Mar 2015 14:31:16 +0100 Subject: [PATCH 0741/2060] workaround to a bug where pwd / -W returns a path with slashes. --- mingw-w64-pkg-config/0005-mangle.mingw.patch | 14 +++++++------- mingw-w64-pkg-config/PKGBUILD | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mingw-w64-pkg-config/0005-mangle.mingw.patch b/mingw-w64-pkg-config/0005-mangle.mingw.patch index 4435ec3d07..cbb228dd30 100644 --- a/mingw-w64-pkg-config/0005-mangle.mingw.patch +++ b/mingw-w64-pkg-config/0005-mangle.mingw.patch @@ -12,28 +12,28 @@ diff --git a/check/check-sysroot b/check/check-sysroot index 0820206..d03d1c7 100755 --- a/check/check-sysroot +++ b/check/check-sysroot -@@ -6,6 +6,11 @@ set -e - +@@ -6,6 +6,12 @@ set -e + export PKG_CONFIG_SYSROOT_DIR=/sysroot - + +# MSYS mangles / paths to its own root in windows format. This probably +# means sysroot doesn't work there, but match what pkg-config passes +# back anyway. +[ "x$OSTYPE" = "xmsys" ] && root=$(cd / && pwd -W) || root= ++root=${root%/} + RESULT="" run_test --cflags simple - + @@ -20,8 +25,8 @@ if [ "$list_indirect_deps" = yes ]; then fi run_test --libs --static simple - + -RESULT="-I/sysroot/public-dep/include" +RESULT="-I$root/sysroot/public-dep/include" run_test --cflags public-dep - + -RESULT="-L/sysroot/public-dep/lib -lpublic-dep" +RESULT="-L$root/sysroot/public-dep/lib -lpublic-dep" run_test --libs public-dep -- 1.8.1.4 - diff --git a/mingw-w64-pkg-config/PKGBUILD b/mingw-w64-pkg-config/PKGBUILD index 0e8b73b293..4d6d4878c0 100644 --- a/mingw-w64-pkg-config/PKGBUILD +++ b/mingw-w64-pkg-config/PKGBUILD @@ -27,7 +27,7 @@ md5sums=('aa3c86e67551adc3ac865160e34a2a0d' '073729fca79eb7415a88eec68504dc92' 'a14107b8eb8640aac2e59798467128a3' 'a605f371133ea78af740109a2b690a69' - '2b5a8f14761eaee3ccc35d8d24aace9f' + '0824f3b39004b24168b98280160e4045' '27602f99a978c28f963afe9313fd1604' 'e1b804a1b0a15e9af895f6fd92907f23' '2ba25b1a52a48afa0d2e1b0e06aaa07c' From bf7b331a2689c8a0c776415b5c9df2a5b938288b Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 25 Mar 2015 17:10:30 +0100 Subject: [PATCH 0742/2060] libchamplain: updated to 0.12.10. --- mingw-w64-libchamplain/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libchamplain/PKGBUILD b/mingw-w64-libchamplain/PKGBUILD index 62fad54cfb..5239924af0 100644 --- a/mingw-w64-libchamplain/PKGBUILD +++ b/mingw-w64-libchamplain/PKGBUILD @@ -2,7 +2,7 @@ _realname=libchamplain pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.12.9 +pkgver=0.12.10 pkgrel=1 arch=('any') pkgdesc="C library providing ClutterActor to display maps (mingw-w64)" @@ -22,7 +22,7 @@ url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch 002-give-cc-to-gir-scanner.mingw.patch) -sha256sums=('b25ce832334976c07bf9564bf7f31e628881c69cf871a256cf4530cb277917e3' +sha256sums=('bf53ceb2405d4e23a14596a53ecc2a821b003f8c69de4a7de3a39d6e99462b05' '6aba93f69b14ac384b65dbca00933728cbfe9c34cdd4d562037638b074a7a3e9' '721fb1d7c51ee1c54eebea06bce43fc1a1a8ae44eaae6111dd81a61dc8fcf4a1') From 1cab737eeab86e1b2afb925be7b51a0f66de5b6e Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 25 Mar 2015 17:29:16 +0100 Subject: [PATCH 0743/2060] libchamplain: license installation. --- mingw-w64-libchamplain/PKGBUILD | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mingw-w64-libchamplain/PKGBUILD b/mingw-w64-libchamplain/PKGBUILD index 5239924af0..f3454ff56e 100644 --- a/mingw-w64-libchamplain/PKGBUILD +++ b/mingw-w64-libchamplain/PKGBUILD @@ -54,4 +54,6 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 310632c9806e55ab75deb2f9ec42bac6af25cd94 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 25 Mar 2015 18:04:29 +0100 Subject: [PATCH 0744/2060] libical-glib: new package. --- mingw-w64-libical-glib/001-win.patch | 21 ++++++++++++ mingw-w64-libical-glib/PKGBUILD | 50 ++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 mingw-w64-libical-glib/001-win.patch create mode 100644 mingw-w64-libical-glib/PKGBUILD diff --git a/mingw-w64-libical-glib/001-win.patch b/mingw-w64-libical-glib/001-win.patch new file mode 100644 index 0000000000..c1e4f9a4ed --- /dev/null +++ b/mingw-w64-libical-glib/001-win.patch @@ -0,0 +1,21 @@ +--- ./src/build-tools/generator.c.orig 2015-03-25 17:48:37.812068900 +0100 ++++ ./src/build-tools/generator.c 2015-03-25 17:48:40.060777800 +0100 +@@ -84,7 +84,7 @@ + + if (iter == strlen (full_flag)) { + full_comment = g_new (gchar, strlen (para->comment) - strlen (full_flag) + 1); +- stpcpy (full_comment, para->comment + strlen(full_flag)); ++ g_stpcpy (full_comment, para->comment + strlen(full_flag)); + buffer = g_strconcat (res, "\n * ", full_comment, NULL); + g_free (res); + res = buffer; +--- ./src/libical-glib/Makefile.am.orig 2015-03-25 17:47:15.849595300 +0100 ++++ ./src/libical-glib/Makefile.am 2015-03-25 17:47:22.483886100 +0100 +@@ -131,6 +131,7 @@ + INTROSPECTION_COMPILER_ARGS = \ + --includedir=$(srcdir) \ + $(NULL) ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + if HAVE_INTROSPECTION + introspection_sources = $(libical_glib_1_0_la_SOURCES) diff --git a/mingw-w64-libical-glib/PKGBUILD b/mingw-w64-libical-glib/PKGBUILD new file mode 100644 index 0000000000..bea8736d51 --- /dev/null +++ b/mingw-w64-libical-glib/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: Andrea Zagli + +_realname=libical-glib +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.0.2 +pkgrel=1 +arch=('any') +pkgdesc="An iCalendar library based on libical and introspectable by GObject Introspection (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-libical" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-libxml2") +makedepends=("gtk-doc" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +options=('strip' 'staticlibs') +license=("LGPL 2.1") +url="http://www.gnome.org/" +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('0ea3726bc9aff063b223d071465f2f87ef63507b92c8cb36e45a4e4e48de75a4' + '4e34ccb69bd5356071b4d0ee96cf5b7148f6ae7dd3815861dee4fbb8e99156fd') + +prepare() { + cd ${_realname}-${pkgver} + + patch -b -V simple -p1 -i ${srcdir}/001-win.patch + + autoreconf -fi +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-introspection=yes + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} From 6e5ade34023b9da4f14774acc20d6f4251353459 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 21:29:19 +0300 Subject: [PATCH 0745/2060] libchamplain: Fix build deps. --- mingw-w64-libchamplain/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libchamplain/PKGBUILD b/mingw-w64-libchamplain/PKGBUILD index f3454ff56e..29f61c191d 100644 --- a/mingw-w64-libchamplain/PKGBUILD +++ b/mingw-w64-libchamplain/PKGBUILD @@ -13,9 +13,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-clutter" "${MINGW_PACKAGE_PREFIX}-libsoup" "${MINGW_PACKAGE_PREFIX}-memphis") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gtk-doc" "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection") + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "gtk-doc") options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" @@ -48,6 +48,7 @@ build() { --enable-memphis \ --enable-introspection \ --enable-vala + make } From 5bd45567d0ee224bf23444a2541b78b678f9553d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 25 Mar 2015 21:30:11 +0300 Subject: [PATCH 0746/2060] gobject-introspection: Pass wrapper path to make. --- mingw-w64-gobject-introspection/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index 00bf827beb..4166945df1 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -59,7 +59,7 @@ build() { --host=${MINGW_CHOST} \ --enable-silent-rules - make + make G_IR_SCANNER_W32_WRAPPER="${MINGW_PREFIX}/lib/gobject-introspection/g-ir-scanner-w32-wrapper " } package() { From 091e65751b4961085904583b496625ccea5aa59d Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 25 Mar 2015 22:45:34 +0100 Subject: [PATCH 0747/2060] eog: updated to 3.16.0. --- mingw-w64-eog/001-win.patch | 26 --- mingw-w64-eog/002-relocation-support.patch | 188 +++++---------------- mingw-w64-eog/PKGBUILD | 9 +- 3 files changed, 46 insertions(+), 177 deletions(-) diff --git a/mingw-w64-eog/001-win.patch b/mingw-w64-eog/001-win.patch index 4f974f0764..9371f98205 100644 --- a/mingw-w64-eog/001-win.patch +++ b/mingw-w64-eog/001-win.patch @@ -292,32 +292,6 @@ #include #include -@@ -4746,24 +4745,8 @@ - * By ensuring we keep the GAppInfo around, we avoid the - * possibility of that situation occurring. - */ -- static GDesktopAppInfo *app_info = NULL; -- static gboolean initialised; - -- if (!initialised) { -- gchar *editor; -- -- editor = g_settings_get_string (window->priv->ui_settings, -- EOG_CONF_UI_EXTERNAL_EDITOR); -- -- if (editor != NULL) { -- app_info = g_desktop_app_info_new (editor); -- } -- -- initialised = TRUE; -- g_free (editor); -- } -- -- return (GAppInfo *) app_info; -+ return NULL; - } - - static void --- ./src/Makefile.am.orig 2014-10-15 21:46:54.750243900 +0200 +++ ./src/Makefile.am 2014-10-16 20:30:25.278428300 +0200 @@ -186,21 +186,21 @@ diff --git a/mingw-w64-eog/002-relocation-support.patch b/mingw-w64-eog/002-relocation-support.patch index 57a4e039ef..6a1d991152 100644 --- a/mingw-w64-eog/002-relocation-support.patch +++ b/mingw-w64-eog/002-relocation-support.patch @@ -1,7 +1,6 @@ -diff -Naur eog-3.14.1-orig/src/eog-application.c eog-3.14.1/src/eog-application.c ---- eog-3.14.1-orig/src/eog-application.c 2014-07-22 13:42:43.000000000 +0400 -+++ eog-3.14.1/src/eog-application.c 2014-10-19 11:41:44.795200000 +0400 -@@ -284,8 +284,20 @@ +--- ./src/eog-application.c.orig 2015-03-19 21:02:08.000000000 +0100 ++++ ./src/eog-application.c 2015-03-25 21:54:04.447015200 +0100 +@@ -318,8 +318,20 @@ g_object_unref (provider); /* Add application specific icons to search path */ @@ -23,7 +22,7 @@ diff -Naur eog-3.14.1-orig/src/eog-application.c eog-3.14.1/src/eog-application. gtk_window_set_default_icon_name ("eog"); g_set_application_name (_("Image Viewer")); -@@ -307,6 +319,7 @@ +@@ -342,6 +354,7 @@ G_CALLBACK (on_extension_removed), app); peas_extension_set_call (app->priv->extensions, "activate"); @@ -31,164 +30,59 @@ diff -Naur eog-3.14.1-orig/src/eog-application.c eog-3.14.1/src/eog-application. } static void -@@ -442,8 +455,20 @@ - - priv->ui_settings = g_settings_new (EOG_CONF_UI); - -+ gchar * eog_toolbar_file; -+#ifdef G_OS_WIN32 -+{ -+ gchar *dir; -+ -+ dir = g_win32_get_package_installation_directory_of_module (NULL); -+ eog_toolbar_file = g_build_filename (dir, "share", "eog", "eog-toolbar.xml", NULL); -+ g_free (dir); -+} -+#else -+ eog_toolbar_file = g_strdup (EOG_DATA_DIR G_DIR_SEPARATOR_S "eog-toolbar.xml"); -+#endif - egg_toolbars_model_load_names (priv->toolbars_model, -- EOG_DATA_DIR "/eog-toolbar.xml"); -+ eog_toolbar_file); - - if (G_LIKELY (dot_dir != NULL)) - priv->toolbars_file = g_build_filename -@@ -453,13 +478,14 @@ - priv->toolbars_file)) { - - egg_toolbars_model_load_toolbars (priv->toolbars_model, -- EOG_DATA_DIR "/eog-toolbar.xml"); -+ eog_toolbar_file); - } - - egg_toolbars_model_set_flags (priv->toolbars_model, 0, - EGG_TB_MODEL_NOT_REMOVABLE); - - eog_application_load_accelerators (); -+ g_free(eog_toolbar_file); - } - - /** -@@ -780,12 +806,26 @@ - - priv->toolbars_model = egg_toolbars_model_new (); - -+ gchar * eog_toolbar_file; -+#ifdef G_OS_WIN32 -+{ -+ gchar *dir; -+ -+ dir = g_win32_get_package_installation_directory_of_module (NULL); -+ eog_toolbar_file = g_build_filename (dir, "share", "eog", "eog-toolbar.xml", NULL); -+ g_free (dir); -+} -+#else -+ eog_toolbar_file = g_strdup (EOG_DATA_DIR G_DIR_SEPARATOR_S "eog-toolbar.xml"); -+#endif - egg_toolbars_model_load_names (priv->toolbars_model, -- EOG_DATA_DIR "/eog-toolbar.xml"); -+ eog_toolbar_file); - egg_toolbars_model_load_toolbars (priv->toolbars_model, -- EOG_DATA_DIR "/eog-toolbar.xml"); -+ eog_toolbar_file); - egg_toolbars_model_set_flags (priv->toolbars_model, 0, - EGG_TB_MODEL_NOT_REMOVABLE); -+ -+ g_free(eog_toolbar_file); - } - - static void -diff -Naur eog-3.14.1-orig/src/eog-plugin-engine.c eog-3.14.1/src/eog-plugin-engine.c ---- eog-3.14.1-orig/src/eog-plugin-engine.c 2014-01-14 00:17:51.000000000 +0400 -+++ eog-3.14.1/src/eog-plugin-engine.c 2014-10-19 11:49:44.495200000 +0400 -@@ -85,7 +85,19 @@ - const gchar * const * system_data_dirs; - GError *error = NULL; - -- private_path = g_build_filename (LIBDIR, "eog", -+ gchar * eog_lib_dir; -+#ifdef G_OS_WIN32 -+{ -+ gchar *dir; -+ -+ dir = g_win32_get_package_installation_directory_of_module (NULL); -+ eog_lib_dir = g_build_filename (dir, "lib", NULL); -+ g_free (dir); -+} -+#else -+ eog_lib_dir = g_strdup (LIBDIR); -+#endif -+ private_path = g_build_filename (eog_lib_dir, - "girepository-1.0", NULL); - - /* This should be moved to libpeas */ -@@ -117,6 +129,7 @@ - } - - g_free (private_path); -+ g_free (eog_lib_dir); - - engine = EOG_PLUGIN_ENGINE (g_object_new (EOG_TYPE_PLUGIN_ENGINE, - NULL)); -@@ -150,10 +163,24 @@ +--- ./src/eog-plugin-engine.c.orig 2014-01-13 21:17:51.000000000 +0100 ++++ ./src/eog-plugin-engine.c 2015-03-25 21:58:09.584059500 +0100 +@@ -150,10 +150,33 @@ } /* Find system-wide plugins */ -- eog_debug_message (DEBUG_PLUGINS, "Adding system plugin dir (" -- EOG_PLUGIN_DIR ")to plugins search path"); -+ gchar * eog_plugin_dir; -+ gchar * eog_data_plugin_dir; +#ifdef G_OS_WIN32 +{ -+ gchar *dir; ++ gchar *dir; ++ gchar *eog_plugin_dir; ++ gchar *eog_data_plugin_dir; ++ gchar *debug_message; + -+ dir = g_win32_get_package_installation_directory_of_module (NULL); -+ eog_plugin_dir = g_build_filename (dir, "lib", "eog", "plugins", NULL); -+ eog_data_plugin_dir = g_build_filename (dir, "share", "eog", "plugins", NULL); -+ g_free (dir); ++ dir = g_win32_get_package_installation_directory_of_module (NULL); ++ eog_plugin_dir = g_build_filename (dir, "lib", "eog", "plugins", NULL); ++ eog_data_plugin_dir = g_build_filename (dir, "share", "eog", "plugins", NULL); ++ g_free (dir); ++ ++ debug_message = g_strdup_printf ("Adding system plugin dir (%s) to plugins search path", eog_plugin_dir); ++ eog_debug_message (DEBUG_PLUGINS, debug_message); ++ peas_engine_add_search_path (PEAS_ENGINE (engine), ++ eog_plugin_dir, eog_data_plugin_dir); ++ ++ g_free (eog_plugin_dir); ++ g_free (eog_data_plugin_dir); ++ g_free (debug_message); +} +#else -+ eog_plugin_dir = g_strdup (EOG_PLUGIN_DIR); -+ eog_data_plugin_dir = g_strdup (EOG_PLUGIN_DATA_DIR); -+#endif -+ eog_debug_message (DEBUG_PLUGINS, "Adding system plugin dir (%s) to plugins search path", eog_plugin_dir); + eog_debug_message (DEBUG_PLUGINS, "Adding system plugin dir (" + EOG_PLUGIN_DIR ")to plugins search path"); peas_engine_add_search_path (PEAS_ENGINE (engine), -- EOG_PLUGIN_DIR, EOG_PLUGIN_DATA_DIR); -+ eog_plugin_dir, eog_data_plugin_dir); + EOG_PLUGIN_DIR, EOG_PLUGIN_DATA_DIR); ++#endif g_settings_bind (engine->priv->plugins_settings, EOG_CONF_PLUGINS_ACTIVE_PLUGINS, -@@ -162,6 +190,8 @@ - G_SETTINGS_BIND_DEFAULT); +--- ./src/main.c.orig 2015-02-08 15:16:05.000000000 +0100 ++++ ./src/main.c 2015-03-25 21:54:04.655026900 +0100 +@@ -92,7 +92,17 @@ + GError *error = NULL; + GOptionContext *ctx; - g_free (user_plugin_path); -+ g_free (eog_plugin_dir); -+ g_free (eog_data_plugin_dir); - - return engine; - } -diff -Naur eog-3.14.1-orig/src/eog-thumbnail.c eog-3.14.1/src/eog-thumbnail.c ---- eog-3.14.1-orig/src/eog-thumbnail.c 2014-03-22 23:09:38.000000000 +0400 -+++ eog-3.14.1/src/eog-thumbnail.c 2014-10-19 12:16:07.387600000 +0400 -@@ -533,7 +533,20 @@ - void - eog_thumbnail_init (void) - { -+ gchar * eog_data_dir; +#ifdef G_OS_WIN32 +{ -+ gchar *dir; ++ gchar *dir; + -+ dir = g_win32_get_package_installation_directory_of_module (NULL); -+ eog_data_dir = g_build_filename (dir, "share", "eog", "/pixmaps/thumbnail-frame.png", NULL); -+ g_free (dir); ++ dir = g_win32_get_package_installation_directory_of_module (NULL); ++ bindtextdomain (PACKAGE, g_build_filename (dir, "share", "locale", NULL)); ++ g_free (dir); +} +#else -+ eog_data_dir = g_strdup (EOG_DATA_DIR "/pixmaps/thumbnail-frame.png"); + bindtextdomain (PACKAGE, EOG_LOCALE_DIR); +#endif - if (frame == NULL) { -- frame = gdk_pixbuf_new_from_file (EOG_DATA_DIR "/pixmaps/thumbnail-frame.png", NULL); -+ frame = gdk_pixbuf_new_from_file (eog_data_dir, NULL); - } -+ g_free (eog_data_dir); - } + bind_textdomain_codeset (PACKAGE, "UTF-8"); + textdomain (PACKAGE); + diff --git a/mingw-w64-eog/PKGBUILD b/mingw-w64-eog/PKGBUILD index 5b1aaa469f..773370ac88 100644 --- a/mingw-w64-eog/PKGBUILD +++ b/mingw-w64-eog/PKGBUILD @@ -2,7 +2,7 @@ _realname=eog pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.3 +pkgver=3.16.0 pkgrel=1 arch=('any') pkgdesc="Eye of GNOME graphics viewer program (mingw-w64)" @@ -29,9 +29,9 @@ source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_real 002-relocation-support.patch 003-fix-install-dirs.patch 004-give-cc-to-gir-scanner.mingw.patch) -sha256sums=('c05a3c0a75c3c5d42f41eadca9e23753d1fa59bc37fb5826909b468b9be1cf59' - '1309ea222055d951fbe5c1c9be0245adecdfe221ee9ce0b2cef8fab3597d3864' - '2a1b947202e765011ee37c40786baee96c04e23962a481bcee36757cabc3c669' +sha256sums=('289f659ce593adb15868d73895634b5f4445c87fe84715eb598405d1d0e7a85e' + '31db56ea4d64059e60c478a7ba1475d9beaf65f2c42967909adbb41843c2d129' + 'a7e897da94d7033fd2ad4d81129f7a60cd0f68bd8d887c079c79cef802d02a4d' 'abc9df56f5fc2213ba6efdcdad269534496d6eda900194b4000910dacf4042d9' '8fd79bb5f0e411d682abd7cffa3b9b8476cf8a073ea17c2e0bd1a386e3b060e0') @@ -42,6 +42,7 @@ prepare() { patch -p1 -i ${srcdir}/002-relocation-support.patch patch -p1 -i ${srcdir}/003-fix-install-dirs.patch patch -p1 -i ${srcdir}/004-give-cc-to-gir-scanner.mingw.patch + autoreconf -isf } From 72b332e16fb7968c61ca7597b928068c2fcc3078 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 25 Mar 2015 22:51:06 +0100 Subject: [PATCH 0748/2060] eog-plugins: updated to 3.16.0 (relocation: WIP). --- mingw-w64-eog-plugins/001-win.patch | 28 ++++++++++++++-------------- mingw-w64-eog-plugins/PKGBUILD | 8 ++++---- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/mingw-w64-eog-plugins/001-win.patch b/mingw-w64-eog-plugins/001-win.patch index 80587f3bab..cd3a554e06 100644 --- a/mingw-w64-eog-plugins/001-win.patch +++ b/mingw-w64-eog-plugins/001-win.patch @@ -1,15 +1,15 @@ ---- ./configure.ac.orig 2014-10-18 00:09:48.261871000 +0200 -+++ ./configure.ac 2014-10-18 00:09:50.288980900 +0200 +--- ./configure.ac.orig 2015-03-25 18:12:11.388179700 +0100 ++++ ./configure.ac 2015-03-25 18:12:49.726012100 +0100 @@ -46,6 +46,7 @@ - glib-2.0 >= 2.32.0 - gtk+-3.0 >= 3.3.8 + glib-2.0 >= 2.38.0 + gtk+-3.0 >= 3.14.0 libpeas-1.0 >= 0.7.4 + libpeas-gtk-1.0 >= 0.7.4 - eog >= 3.11.4 + eog >= 3.15.90 ]) AC_SUBST(EOG_LIBS) --- ./plugins/exif-display/Makefile.am.orig 2014-08-10 17:37:36.000000000 +0200 -+++ ./plugins/exif-display/Makefile.am 2014-10-17 22:27:17.935709100 +0200 ++++ ./plugins/exif-display/Makefile.am 2015-03-25 18:12:11.398181200 +0100 @@ -25,10 +25,11 @@ eog-exif-display-plugin-setup.h @@ -24,7 +24,7 @@ eog-exif-display-plugin-resources.c: eog-exif-display-plugin.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/eog-exif-display-plugin.gresource.xml) --- ./plugins/fit-to-width/Makefile.am.orig 2014-08-09 20:39:08.000000000 +0200 -+++ ./plugins/fit-to-width/Makefile.am 2014-10-17 22:38:10.051051300 +0200 ++++ ./plugins/fit-to-width/Makefile.am 2015-03-25 18:12:11.448183500 +0100 @@ -15,9 +15,9 @@ eog-fit-to-width-plugin.c @@ -38,7 +38,7 @@ # Plugin Info --- ./plugins/hide-titlebar/Makefile.am.orig 2014-08-09 20:39:08.000000000 +0200 -+++ ./plugins/hide-titlebar/Makefile.am 2014-10-17 22:38:33.070962400 +0200 ++++ ./plugins/hide-titlebar/Makefile.am 2015-03-25 18:12:11.455184100 +0100 @@ -15,9 +15,9 @@ eog-hide-titlebar-plugin.c @@ -52,7 +52,7 @@ # Plugin Info --- ./plugins/light-theme/Makefile.am.orig 2014-08-09 20:39:08.000000000 +0200 -+++ ./plugins/light-theme/Makefile.am 2014-10-17 22:38:39.586328900 +0200 ++++ ./plugins/light-theme/Makefile.am 2015-03-25 18:12:11.461204300 +0100 @@ -15,9 +15,9 @@ eog-light-theme-plugin.c @@ -66,7 +66,7 @@ # Plugin Info --- ./plugins/map/Makefile.am.orig 2014-08-09 20:39:08.000000000 +0200 -+++ ./plugins/map/Makefile.am 2014-10-17 22:39:13.779262400 +0200 ++++ ./plugins/map/Makefile.am 2015-03-25 18:12:11.474185900 +0100 @@ -18,7 +18,9 @@ libmap_la_LDFLAGS = \ $(PLUGIN_LIBTOOL_FLAGS) \ @@ -79,7 +79,7 @@ # Plugin Info --- ./plugins/postasa/Makefile.am.orig 2014-08-09 20:39:08.000000000 +0200 -+++ ./plugins/postasa/Makefile.am 2014-10-17 22:39:32.713163200 +0200 ++++ ./plugins/postasa/Makefile.am 2015-03-25 18:12:11.532189200 +0100 @@ -24,10 +24,12 @@ libpostasa_la_LDFLAGS = \ @@ -95,8 +95,8 @@ eog-postasa-plugin-resources.c: eog-postasa-plugin.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/eog-postasa-plugin.gresource.xml) $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --internal --target=$@ --sourcedir=$(srcdir) --generate-source $(srcdir)/eog-postasa-plugin.gresource.xml ---- ./plugins/postr/Makefile.am.orig 2014-10-17 22:46:12.801774300 +0200 -+++ ./plugins/postr/Makefile.am 2014-10-17 22:46:21.972346700 +0200 +--- ./plugins/postr/Makefile.am.orig 2015-02-15 14:53:30.000000000 +0100 ++++ ./plugins/postr/Makefile.am 2015-03-25 18:12:11.563210600 +0100 @@ -15,9 +15,10 @@ eog-postr-plugin.c @@ -111,7 +111,7 @@ # Plugin Info --- ./plugins/send-by-mail/Makefile.am.orig 2014-08-09 20:39:08.000000000 +0200 -+++ ./plugins/send-by-mail/Makefile.am 2014-10-17 22:39:44.313194800 +0200 ++++ ./plugins/send-by-mail/Makefile.am 2015-03-25 18:12:11.593212500 +0100 @@ -15,9 +15,9 @@ eog-send-by-mail-plugin.c diff --git a/mingw-w64-eog-plugins/PKGBUILD b/mingw-w64-eog-plugins/PKGBUILD index 58b6d5c56f..cea48327a2 100644 --- a/mingw-w64-eog-plugins/PKGBUILD +++ b/mingw-w64-eog-plugins/PKGBUILD @@ -2,7 +2,7 @@ _realname=eog-plugins pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.1 +pkgver=3.16.0 pkgrel=1 arch=('any') pkgdesc="Eye of GNOME graphics viewer program - plugins (mingw-w64)" @@ -20,14 +20,14 @@ url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch 002-champlain.patch) -sha256sums=('12070173d875d6e9f70d8b918bbf3dfcc5af8c1681e4fabf212dae96b85318f5' - '8dcb1e721785460d58f32911c52de3b41ddeb23cc3326ba07f5c95ec60471818' +sha256sums=('6fab1c1e0705fc2b0e4a63caf3ba1c5b64b4eaa1301e4cbc04bb934428b68450' + '7b5a599b0fb719156747627944cae4b1107ffb8f11bcaddf0c8100d89c93548d' '3b7fab068ff3739fed247f72abbc18accb409b9008593e806f5c4e3df1d9b32d') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/001-win.patch + patch -b -V simple -p1 -i ${srcdir}/001-win.patch patch -p1 -i ${srcdir}/002-champlain.patch autoreconf -isf From d85b178bf330da5fc41fc60604da983771e517f3 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 26 Mar 2015 14:49:33 +0100 Subject: [PATCH 0749/2060] gnome-calculator: new package (i16n WIP). --- mingw-w64-gnome-calculator/001-win.patch | 290 ++++++++++++++++++ mingw-w64-gnome-calculator/PKGBUILD | 57 ++++ .../gnome-calculator-i686.install | 11 + .../gnome-calculator-x86_64.install | 11 + 4 files changed, 369 insertions(+) create mode 100644 mingw-w64-gnome-calculator/001-win.patch create mode 100644 mingw-w64-gnome-calculator/PKGBUILD create mode 100644 mingw-w64-gnome-calculator/gnome-calculator-i686.install create mode 100644 mingw-w64-gnome-calculator/gnome-calculator-x86_64.install diff --git a/mingw-w64-gnome-calculator/001-win.patch b/mingw-w64-gnome-calculator/001-win.patch new file mode 100644 index 0000000000..99b63741c9 --- /dev/null +++ b/mingw-w64-gnome-calculator/001-win.patch @@ -0,0 +1,290 @@ +--- ./m4/intltool.m4.orig 2015-03-22 19:20:14.000000000 +0100 ++++ ./m4/intltool.m4 2015-03-26 13:46:45.996450400 +0100 +@@ -155,31 +155,6 @@ + # Substitute ALL_LINGUAS so we can use it in po/Makefile + AC_SUBST(ALL_LINGUAS) + +-# Set DATADIRNAME correctly if it is not set yet +-# (copied from glib-gettext.m4) +-if test -z "$DATADIRNAME"; then +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[]], +- [[extern int _nl_msg_cat_cntr; +- return _nl_msg_cat_cntr]])], +- [DATADIRNAME=share], +- [case $host in +- *-*-solaris*) +- dnl On Solaris, if bind_textdomain_codeset is in libc, +- dnl GNU format message catalog is always supported, +- dnl since both are added to the libc all together. +- dnl Hence, we'd like to go with DATADIRNAME=share +- dnl in this case. +- AC_CHECK_FUNC(bind_textdomain_codeset, +- [DATADIRNAME=share], [DATADIRNAME=lib]) +- ;; +- *) +- [DATADIRNAME=lib] +- ;; +- esac]) +-fi +-AC_SUBST(DATADIRNAME) +- + IT_PO_SUBDIR([po]) + + ]) +--- ./Makefile.am.orig 2015-01-29 16:28:18.000000000 +0100 ++++ ./Makefile.am 2015-03-26 13:46:46.046485300 +0100 +@@ -1,4 +1,4 @@ +-SUBDIRS = po src search-provider data help ++SUBDIRS = po src search-provider data + + # Temporary fix for JHBuild, see https://bugzilla.gnome.org/show_bug.cgi?id=641652 + ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 +--- ./po/Makefile.in.in.orig 2015-03-22 19:20:14.000000000 +0100 ++++ ./po/Makefile.in.in 2015-03-26 13:46:46.049487500 +0100 +@@ -33,8 +33,7 @@ + datadir = @datadir@ + datarootdir = @datarootdir@ + libdir = @libdir@ +-DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +107,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +141,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot +--- ./search-provider/Makefile.am.orig 2015-01-29 16:28:18.000000000 +0100 ++++ ./search-provider/Makefile.am 2015-03-26 13:46:46.051488900 +0100 +@@ -1,6 +1,12 @@ ++# The valac command is always executed in the sources directory, not the build ++# directory. If $(top_srcdir) is used, it will be relative to the build directory. ++vapidir = ../vapi ++ ++ + libexec_PROGRAMS = gnome-calculator-search-provider + + gnome_calculator_search_provider_SOURCES = \ ++ $(vapidir)/windows.vapi \ + search-provider.vala + + gnome_calculator_search_provider_VALAFLAGS = \ +--- ./search-provider/search-provider.vala.orig 2015-01-29 16:28:18.000000000 +0100 ++++ ./search-provider/search-provider.vala 2015-03-26 13:46:46.053490400 +0100 +@@ -23,11 +23,13 @@ + { + int exit_status; + +- var tsep_string = Posix.nl_langinfo (Posix.NLItem.THOUSEP); ++ string tsep_string; ++ Windows.GetLocaleInfo(0x0400, 0x0000000f, out tsep_string, 4); + if (tsep_string == null || tsep_string == "") + tsep_string = " "; + +- var decimal = Posix.nl_langinfo (Posix.NLItem.RADIXCHAR); ++ string decimal; ++ Windows.GetLocaleInfo(0x0400, 0x0000000e, out decimal, 4); + if (decimal == null) + decimal = ""; + +--- ./src/gcalccmd.vala.orig 2015-01-29 16:28:18.000000000 +0100 ++++ ./src/gcalccmd.vala 2015-03-26 13:46:46.055491800 +0100 +@@ -15,11 +15,13 @@ + + static void solve (string equation) + { +- var tsep_string = Posix.nl_langinfo (Posix.NLItem.THOUSEP); ++ string tsep_string; ++ Windows.GetLocaleInfo(0x0400, 0x0000000f, out tsep_string, 4); + if (tsep_string == null || tsep_string == "") + tsep_string = " "; + +- var decimal = Posix.nl_langinfo (Posix.NLItem.RADIXCHAR); ++ string decimal; ++ Windows.GetLocaleInfo(0x0400, 0x0000000e, out decimal, 4); + if (decimal == null) + decimal = ""; + +@@ -82,5 +84,5 @@ + if (requires_new_line) + stdout.printf ("\n"); + +- return Posix.EXIT_SUCCESS; ++ return 0; + } +--- ./src/gnome-calculator.vala.orig 2015-01-29 16:28:18.000000000 +0100 ++++ ./src/gnome-calculator.vala 2015-03-26 13:46:46.058494000 +0100 +@@ -142,17 +142,20 @@ + { + /* NOTE: Is not translated so can be easily parsed */ + stderr.printf ("%1$s %2$s\n", program_name, VERSION); +- return Posix.EXIT_SUCCESS; ++ return 0; + } + + if (options.contains ("solve")) + { + var solve_equation = (string) options.lookup_value ("solve", VariantType.STRING); +- var tsep_string = Posix.nl_langinfo (Posix.NLItem.THOUSEP); ++ ++ string tsep_string; ++ Windows.GetLocaleInfo(0x0400, 0x0000000f, out tsep_string, 4); + if (tsep_string == null || tsep_string == "") + tsep_string = " "; + +- var decimal = Posix.nl_langinfo (Posix.NLItem.RADIXCHAR); ++ string decimal; ++ Windows.GetLocaleInfo(0x0400, 0x0000000e, out decimal, 4); + if (decimal == null) + decimal = ""; + +@@ -169,17 +172,17 @@ + var serializer = new Serializer (DisplayFormat.AUTOMATIC, 10, 9); + serializer.set_representation_base (representation_base); + stdout.printf ("%s\n", serializer.to_string (result)); +- return Posix.EXIT_SUCCESS; ++ return 0; + } + else if (error == ErrorCode.MP) + { + stderr.printf ("Error: %s\n", Number.error); +- return Posix.EXIT_FAILURE; ++ return 1; + } + else + { + stderr.printf ("Error: %s\n", mp_error_code_to_string (error)); +- return Posix.EXIT_FAILURE; ++ return 1; + } + } + +@@ -264,7 +267,10 @@ + public static int main (string[] args) + { + Intl.setlocale (LocaleCategory.ALL, ""); +- Intl.bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); ++ ++ string p = Win32.get_package_installation_directory_of_module (null); ++ Intl.bindtextdomain (GETTEXT_PACKAGE, Path.build_filename (p, "share", "locale")); ++ + Intl.bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + Intl.textdomain (GETTEXT_PACKAGE); + +--- ./src/Makefile.am.orig 2015-01-29 16:28:18.000000000 +0100 ++++ ./src/Makefile.am 2015-03-26 13:46:46.060512900 +0100 +@@ -1,6 +1,10 @@ + bin_PROGRAMS = gnome-calculator gcalccmd + noinst_PROGRAMS = test-number test-equation test-serializer + ++# The valac command is always executed in the sources directory, not the build ++# directory. If $(top_srcdir) is used, it will be relative to the build directory. ++vapidir = ../vapi ++ + TESTS = test-number test-equation test-serializer + + AM_CPPFLAGS = \ +@@ -17,6 +21,7 @@ + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(top_srcdir)/data/ --generate-source $< + + gnome_calculator_SOURCES = \ ++ $(vapidir)/windows.vapi \ + config.vapi \ + mpfr.vapi \ + gnome-calculator.vala \ +@@ -55,6 +60,7 @@ + -lgmp + + gcalccmd_SOURCES = \ ++ $(vapidir)/windows.vapi \ + config.vapi \ + mpfr.vapi \ + gcalccmd.vala \ +@@ -80,6 +86,7 @@ + -lgmp + + test_number_SOURCES = \ ++ $(vapidir)/windows.vapi \ + config.vapi \ + mpfr.vapi \ + test-number.vala \ +@@ -99,6 +106,7 @@ + -lgmp + + test_equation_SOURCES = \ ++ $(vapidir)/windows.vapi \ + config.vapi \ + mpfr.vapi \ + test-equation.vala \ +@@ -124,6 +132,7 @@ + -lgmp + + test_serializer_SOURCES = \ ++ $(vapidir)/windows.vapi \ + config.vapi \ + mpfr.vapi \ + test-serializer.vala \ +--- ./src/math-equation.vala.orig 2015-01-29 16:28:18.000000000 +0100 ++++ ./src/math-equation.vala 2015-03-26 13:46:46.063497600 +0100 +@@ -477,7 +477,8 @@ + get_bounds (out start, out end); + + var text = get_text (start, end, false); +- var tsep_string = Posix.nl_langinfo (Posix.NLItem.THOUSEP); ++ string tsep_string; ++ Windows.GetLocaleInfo(0x0400, 0x0000000f, out tsep_string, 4); + if (tsep_string == null || tsep_string == "") + tsep_string = " "; + text = text.replace (tsep_string, ""); +--- ./src/serializer.vala.orig 2015-01-29 16:28:18.000000000 +0100 ++++ ./src/serializer.vala 2015-03-26 14:37:21.466912900 +0100 +@@ -37,15 +37,18 @@ + + public Serializer (DisplayFormat format, int number_base, int trailing_digits) + { +- var radix_string = Posix.nl_langinfo (Posix.NLItem.RADIXCHAR); ++ /*string radix_string; ++ Windows.GetLocaleInfo(0x0400, 0x0000000e, out radix_string, 4); + if (radix_string != null && radix_string != "") + radix = radix_string.locale_to_utf8 (-1, null, null).get_char (0); +- else ++ else*/ + radix = '.'; +- var tsep_string = Posix.nl_langinfo (Posix.NLItem.THOUSEP); ++ ++ /*string tsep_string; ++ Windows.GetLocaleInfo(0x0400, 0x0000000f, out tsep_string, 4); + if (tsep_string != null && tsep_string != "") + tsep = tsep_string.locale_to_utf8 (-1, null, null).get_char (0); +- else ++ else*/ + tsep = ' '; + tsep_count = 3; + +--- ./vapi/windows.vapi.orig 2015-03-26 13:46:45.987442900 +0100 ++++ ./vapi/windows.vapi 2015-03-26 13:46:46.068501200 +0100 +@@ -1 +1,6 @@ ++[CCode (lower_case_cprefix="", cheader_filename="winnls.h")] ++namespace Windows ++{ ++ public int GetLocaleInfo (int locale, int LCType, out string lpLCData, int cchData); ++} + diff --git a/mingw-w64-gnome-calculator/PKGBUILD b/mingw-w64-gnome-calculator/PKGBUILD new file mode 100644 index 0000000000..a4bc481ca8 --- /dev/null +++ b/mingw-w64-gnome-calculator/PKGBUILD @@ -0,0 +1,57 @@ +# Maintainer: Andrea Zagli + +_realname=gnome-calculator +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.16.0 +pkgrel=1 +arch=('any') +pkgdesc="GNOME desktop calculator (mingw-w64)" +options=(!strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gtksourceview3" + "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-mpfr") +makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +license=("GPL 2") +url="http://www.gnome.org" +install=${_realname}-${CARCH}.install +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('bbc2fbc4692e30a2b12755bf79a4dce6288b5d419f81331d738a47da27b71519' + '93ffcebe9de2ed50c3b57453cad082690eed39616876bf77b0445cc75ac45a7f') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + mkdir vapi + echo "" > vapi/windows.vapi + + patch -b -V simple -p1 -i ${srcdir}/001-win.patch + + autoreconf -f -i +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} diff --git a/mingw-w64-gnome-calculator/gnome-calculator-i686.install b/mingw-w64-gnome-calculator/gnome-calculator-i686.install new file mode 100644 index 0000000000..fcc957e480 --- /dev/null +++ b/mingw-w64-gnome-calculator/gnome-calculator-i686.install @@ -0,0 +1,11 @@ +post_install() { + mingw32/bin/glib-compile-schemas mingw32/share/glib-2.0/schemas +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/mingw-w64-gnome-calculator/gnome-calculator-x86_64.install b/mingw-w64-gnome-calculator/gnome-calculator-x86_64.install new file mode 100644 index 0000000000..6bcf50799c --- /dev/null +++ b/mingw-w64-gnome-calculator/gnome-calculator-x86_64.install @@ -0,0 +1,11 @@ +post_install() { + mingw64/bin/glib-compile-schemas mingw64/share/glib-2.0/schemas +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} From f0add11520998b38be898d251035107c1d6453ba Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 26 Mar 2015 22:01:40 +0000 Subject: [PATCH 0750/2060] qt5-static: Build qcollectiongenerator with minimal platform plugin For qt5-static, it needed the .pro file to contain: QTPLUGIN.platforms = qminimal Fixes https://github.com/Alexpux/MINGW-packages/issues/509 --- ...imal-platform-plugin-for-qcollectiongenerator.patch | 8 ++++++++ mingw-w64-qt5-static/PKGBUILD | 10 ++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-qt5-static/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch diff --git a/mingw-w64-qt5-static/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch b/mingw-w64-qt5-static/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch new file mode 100644 index 0000000000..c0bdc21da3 --- /dev/null +++ b/mingw-w64-qt5-static/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch @@ -0,0 +1,8 @@ +--- qt-everywhere-opensource-src-5.4.1/qttools/src/assistant/qcollectiongenerator/qcollectiongenerator.pro.orig 2015-03-26 21:59:29.662519600 +0000 ++++ qt-everywhere-opensource-src-5.4.1/qttools/src/assistant/qcollectiongenerator/qcollectiongenerator.pro 2015-03-26 21:59:33.804756600 +0000 +@@ -1,4 +1,5 @@ + QT += network help-private ++QTPLUGIN.platforms = qminimal + TARGET = qcollectiongenerator + SOURCES += ../shared/helpgenerator.cpp \ + main.cpp \ diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 06d478b7e4..b9591bf72e 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.1 pkgver=${_ver_base//-/} -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -177,7 +177,8 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch 0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch 0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch - 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch) + 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch + 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch) md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' @@ -219,7 +220,8 @@ md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' 'd66b2afce490ab8a82feae08c747e367' '92fb1954fe3ab91d99a09c7f8a878218' 'ab2cac300aa7a908ea8840649f0b51fc' - '7d8093f2b8b0347304159c0e5836f3aa') + '7d8093f2b8b0347304159c0e5836f3aa' + '1c157d0d46ebc5eac60633986ac8aee6') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -328,13 +330,13 @@ prepare() { patch -p1 -i ${srcdir}/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch # Patches so that qt5-static can be used with cmake. - # I don't think it's possible to create static plugins, I may be wrong; PLUGIN might DTRT. patch -p1 -i ${srcdir}/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch patch -p1 -i ${srcdir}/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch patch -p1 -i ${srcdir}/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch patch -p1 -i ${srcdir}/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch patch -p1 -i ${srcdir}/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch patch -p1 -i ${srcdir}/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch + patch -p1 -i ${srcdir}/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch # See: https://bugreports.qt-project.org/browse/QTBUG-37902 # _ver_num=${_ver_base%%-*} From 413c6e16013d5de1e9860231137ed86979307385 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 26 Mar 2015 22:08:23 +0000 Subject: [PATCH 0751/2060] gettext: Remove patch-created files --- mingw-w64-gettext/PKGBUILD | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index 024011ceba..e0bf1fabef 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -34,6 +34,11 @@ md5sums=('d3511af1e604a3478900d2c2b4a4a48e' prepare() { cd "$srcdir/${_realname}-$pkgver" + rm -rf gettext-runtime/intl/canonicalize.c \ + gettext-runtime/intl/relocatex.c \ + gettext-runtime/intl/relocatex.h \ + MINGW-PATCHES/README-relocatex-libintl.txt || true + patch -p1 -i ${srcdir}/00-relocatex-libintl-0.18.3.1.patch patch -p0 -i ${srcdir}/04-mingw-script-slash-fix.mingw.patch patch -p0 -i ${srcdir}/05-always-use-libintl-vsnprintf.mingw.patch From 37253730424a6ca121c775ac38b6474531aa92db Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 26 Mar 2015 22:36:00 +0000 Subject: [PATCH 0752/2060] qt5-static: Fix sha1sum --- mingw-w64-qt5-static/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index b9591bf72e..0e07854526 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -221,7 +221,7 @@ md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' '92fb1954fe3ab91d99a09c7f8a878218' 'ab2cac300aa7a908ea8840649f0b51fc' '7d8093f2b8b0347304159c0e5836f3aa' - '1c157d0d46ebc5eac60633986ac8aee6') + '51016015352313cdd749ae1ff3e14614') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) From fff949491ed8054987c50f989f0aa34765d18a2c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 27 Mar 2015 10:48:25 +0300 Subject: [PATCH 0753/2060] mingw-w64 runtime update to git SHA [790a654] --- ...sing-dxgi-1.2-structs-and-interfaces.patch | 771 +---------- ...ing-d3d11-1.1-structs-and-interfaces.patch | 1133 +---------------- mingw-w64-headers-git/PKGBUILD | 6 +- 3 files changed, 21 insertions(+), 1889 deletions(-) diff --git a/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch b/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch index 1775ffa96a..47e653dec8 100644 --- a/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch +++ b/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch @@ -29,20 +29,10 @@ index f621d30..406135b 100644 #ifndef __IDXGIDevice2_FWD_DEFINED__ #define __IDXGIDevice2_FWD_DEFINED__ typedef interface IDXGIDevice2 IDXGIDevice2; -@@ -27,6 +37,21 @@ typedef interface IDXGIDevice2 IDXGIDevice2; - typedef interface IDXGISwapChain1 IDXGISwapChain1; +@@ -36,6 +46,11 @@ typedef interface IDXGIDevice2 IDXGIDevice2; + typedef interface IDXGIAdapter2 IDXGIAdapter2; #endif -+#ifndef __IDXGIFactory2_FWD_DEFINED__ -+#define __IDXGIFactory2_FWD_DEFINED__ -+typedef interface IDXGIFactory2 IDXGIFactory2; -+#endif -+ -+#ifndef __IDXGIAdapter2_FWD_DEFINED__ -+#define __IDXGIAdapter2_FWD_DEFINED__ -+typedef interface IDXGIAdapter2 IDXGIAdapter2; -+#endif -+ +#ifndef __IDXGIOutput1_FWD_DEFINED__ +#define __IDXGIOutput1_FWD_DEFINED__ +typedef interface IDXGIOutput1 IDXGIOutput1; @@ -475,640 +465,10 @@ index f621d30..406135b 100644 typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2, -@@ -745,6 +1187,948 @@ void __RPC_STUB IDXGISwapChain1_GetRotation_Stub( +@@ -1385,6 +1385,318 @@ void __RPC_STUB IDXGISwapChain1_GetRotation_Stub( - #endif /* __IDXGISwapChain1_INTERFACE_DEFINED__ */ + #endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */ -+/***************************************************************************** -+ * IDXGIFactory2 interface -+ */ -+#ifndef __IDXGIFactory2_INTERFACE_DEFINED__ -+#define __IDXGIFactory2_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("50c83a1c-e072-4c48-87b0-3630fa36a6d0") -+IDXGIFactory2 : public IDXGIFactory1 -+{ -+ virtual WINBOOL STDMETHODCALLTYPE IsWindowedStereoEnabled( -+ ) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForHwnd( -+ IUnknown *device, -+ HWND hwnd, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForCoreWindow( -+ IUnknown *device, -+ IUnknown *window, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE GetSharedResourceAdapterLuid( -+ HANDLE resource, -+ LUID *luid) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusWindow( -+ HWND window, -+ UINT msg, -+ DWORD *cookie) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusEvent( -+ HANDLE event, -+ DWORD *cookie) = 0; -+ -+ virtual void STDMETHODCALLTYPE UnregisterStereoStatus( -+ DWORD cookie) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusWindow( -+ HWND window, -+ UINT msg, -+ DWORD *cookie) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusEvent( -+ HANDLE event, -+ DWORD *cookie) = 0; -+ -+ virtual void STDMETHODCALLTYPE UnregisterOcclusionStatus( -+ DWORD cookie) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForComposition( -+ IUnknown *device, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0) -+#endif -+#else -+typedef struct IDXGIFactory2Vtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ IDXGIFactory2* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ IDXGIFactory2* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ IDXGIFactory2* This); -+ -+ /*** IDXGIObject methods ***/ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ IDXGIFactory2* This, -+ REFGUID guid, -+ UINT data_size, -+ const void *data); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ IDXGIFactory2* This, -+ REFGUID guid, -+ const IUnknown *object); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ IDXGIFactory2* This, -+ REFGUID guid, -+ UINT *data_size, -+ void *data); -+ -+ HRESULT (STDMETHODCALLTYPE *GetParent)( -+ IDXGIFactory2* This, -+ REFIID riid, -+ void **parent); -+ -+ /*** IDXGIFactory methods ***/ -+ HRESULT (STDMETHODCALLTYPE *EnumAdapters)( -+ IDXGIFactory2* This, -+ UINT adapter_idx, -+ IDXGIAdapter **adapter); -+ -+ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)( -+ IDXGIFactory2* This, -+ HWND window, -+ UINT flags); -+ -+ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)( -+ IDXGIFactory2* This, -+ HWND *window); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ DXGI_SWAP_CHAIN_DESC *desc, -+ IDXGISwapChain **swapchain); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)( -+ IDXGIFactory2* This, -+ HMODULE swrast, -+ IDXGIAdapter **adapter); -+ -+ /*** IDXGIFactory1 methods ***/ -+ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)( -+ IDXGIFactory2* This, -+ UINT Adapter, -+ IDXGIAdapter1 **ppAdapter); -+ -+ WINBOOL (STDMETHODCALLTYPE *IsCurrent)( -+ IDXGIFactory2* This); -+ -+ /*** IDXGIFactory2 methods ***/ -+ WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)( -+ IDXGIFactory2* This); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ HWND hwnd, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ IUnknown *window, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+ -+ HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)( -+ IDXGIFactory2* This, -+ HANDLE resource, -+ LUID *luid); -+ -+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)( -+ IDXGIFactory2* This, -+ HWND window, -+ UINT msg, -+ DWORD *cookie); -+ -+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)( -+ IDXGIFactory2* This, -+ HANDLE event, -+ DWORD *cookie); -+ -+ void (STDMETHODCALLTYPE *UnregisterStereoStatus)( -+ IDXGIFactory2* This, -+ DWORD cookie); -+ -+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)( -+ IDXGIFactory2* This, -+ HWND window, -+ UINT msg, -+ DWORD *cookie); -+ -+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)( -+ IDXGIFactory2* This, -+ HANDLE event, -+ DWORD *cookie); -+ -+ void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)( -+ IDXGIFactory2* This, -+ DWORD cookie); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+ -+ END_INTERFACE -+} IDXGIFactory2Vtbl; -+interface IDXGIFactory2 { -+ CONST_VTBL IDXGIFactory2Vtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define IDXGIFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define IDXGIFactory2_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define IDXGIFactory2_Release(This) (This)->lpVtbl->Release(This) -+/*** IDXGIObject methods ***/ -+#define IDXGIFactory2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) -+#define IDXGIFactory2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) -+#define IDXGIFactory2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) -+#define IDXGIFactory2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) -+/*** IDXGIFactory methods ***/ -+#define IDXGIFactory2_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter) -+#define IDXGIFactory2_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags) -+#define IDXGIFactory2_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window) -+#define IDXGIFactory2_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain) -+#define IDXGIFactory2_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter) -+/*** IDXGIFactory1 methods ***/ -+#define IDXGIFactory2_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter) -+#define IDXGIFactory2_IsCurrent(This) (This)->lpVtbl->IsCurrent(This) -+/*** IDXGIFactory2 methods ***/ -+#define IDXGIFactory2_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This) -+#define IDXGIFactory2_CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain) -+#define IDXGIFactory2_CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain) -+#define IDXGIFactory2_GetSharedResourceAdapterLuid(This,resource,luid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,resource,luid) -+#define IDXGIFactory2_RegisterStereoStatusWindow(This,window,msg,cookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,window,msg,cookie) -+#define IDXGIFactory2_RegisterStereoStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,event,cookie) -+#define IDXGIFactory2_UnregisterStereoStatus(This,cookie) (This)->lpVtbl->UnregisterStereoStatus(This,cookie) -+#define IDXGIFactory2_RegisterOcclusionStatusWindow(This,window,msg,cookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,window,msg,cookie) -+#define IDXGIFactory2_RegisterOcclusionStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,event,cookie) -+#define IDXGIFactory2_UnregisterOcclusionStatus(This,cookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,cookie) -+#define IDXGIFactory2_CreateSwapChainForComposition(This,device,desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForComposition(This,device,desc,output,swapchain) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT IDXGIFactory2_QueryInterface(IDXGIFactory2* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG IDXGIFactory2_AddRef(IDXGIFactory2* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG IDXGIFactory2_Release(IDXGIFactory2* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** IDXGIObject methods ***/ -+static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT data_size,const void *data) { -+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateDataInterface(IDXGIFactory2* This,REFGUID guid,const IUnknown *object) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_GetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT *data_size,void *data) { -+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_GetParent(IDXGIFactory2* This,REFIID riid,void **parent) { -+ return This->lpVtbl->GetParent(This,riid,parent); -+} -+/*** IDXGIFactory methods ***/ -+static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters(IDXGIFactory2* This,UINT adapter_idx,IDXGIAdapter **adapter) { -+ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_MakeWindowAssociation(IDXGIFactory2* This,HWND window,UINT flags) { -+ return This->lpVtbl->MakeWindowAssociation(This,window,flags); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_GetWindowAssociation(IDXGIFactory2* This,HWND *window) { -+ return This->lpVtbl->GetWindowAssociation(This,window); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChain(IDXGIFactory2* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) { -+ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_CreateSoftwareAdapter(IDXGIFactory2* This,HMODULE swrast,IDXGIAdapter **adapter) { -+ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter); -+} -+/*** IDXGIFactory1 methods ***/ -+static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters1(IDXGIFactory2* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) { -+ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter); -+} -+static FORCEINLINE WINBOOL IDXGIFactory2_IsCurrent(IDXGIFactory2* This) { -+ return This->lpVtbl->IsCurrent(This); -+} -+/*** IDXGIFactory2 methods ***/ -+static FORCEINLINE WINBOOL IDXGIFactory2_IsWindowedStereoEnabled(IDXGIFactory2* This) { -+ return This->lpVtbl->IsWindowedStereoEnabled(This); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForHwnd(IDXGIFactory2* This,IUnknown *device,HWND hwnd,const DXGI_SWAP_CHAIN_DESC1 *desc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { -+ return This->lpVtbl->CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForCoreWindow(IDXGIFactory2* This,IUnknown *device,IUnknown *window,const DXGI_SWAP_CHAIN_DESC1 *desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { -+ return This->lpVtbl->CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_GetSharedResourceAdapterLuid(IDXGIFactory2* This,HANDLE resource,LUID *luid) { -+ return This->lpVtbl->GetSharedResourceAdapterLuid(This,resource,luid); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusWindow(IDXGIFactory2* This,HWND window,UINT msg,DWORD *cookie) { -+ return This->lpVtbl->RegisterStereoStatusWindow(This,window,msg,cookie); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusEvent(IDXGIFactory2* This,HANDLE event,DWORD *cookie) { -+ return This->lpVtbl->RegisterStereoStatusEvent(This,event,cookie); -+} -+static FORCEINLINE void IDXGIFactory2_UnregisterStereoStatus(IDXGIFactory2* This,DWORD cookie) { -+ This->lpVtbl->UnregisterStereoStatus(This,cookie); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusWindow(IDXGIFactory2* This,HWND window,UINT msg,DWORD *cookie) { -+ return This->lpVtbl->RegisterOcclusionStatusWindow(This,window,msg,cookie); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusEvent(IDXGIFactory2* This,HANDLE event,DWORD *cookie) { -+ return This->lpVtbl->RegisterOcclusionStatusEvent(This,event,cookie); -+} -+static FORCEINLINE void IDXGIFactory2_UnregisterOcclusionStatus(IDXGIFactory2* This,DWORD cookie) { -+ This->lpVtbl->UnregisterOcclusionStatus(This,cookie); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForComposition(IDXGIFactory2* This,IUnknown *device,const DXGI_SWAP_CHAIN_DESC1 *desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { -+ return This->lpVtbl->CreateSwapChainForComposition(This,device,desc,output,swapchain); -+} -+#endif -+#endif -+ -+#endif -+ -+WINBOOL STDMETHODCALLTYPE IDXGIFactory2_IsWindowedStereoEnabled_Proxy( -+ IDXGIFactory2* This); -+void __RPC_STUB IDXGIFactory2_IsWindowedStereoEnabled_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForHwnd_Proxy( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ HWND hwnd, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+void __RPC_STUB IDXGIFactory2_CreateSwapChainForHwnd_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForCoreWindow_Proxy( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ IUnknown *window, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+void __RPC_STUB IDXGIFactory2_CreateSwapChainForCoreWindow_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_GetSharedResourceAdapterLuid_Proxy( -+ IDXGIFactory2* This, -+ HANDLE resource, -+ LUID *luid); -+void __RPC_STUB IDXGIFactory2_GetSharedResourceAdapterLuid_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterStereoStatusWindow_Proxy( -+ IDXGIFactory2* This, -+ HWND window, -+ UINT msg, -+ DWORD *cookie); -+void __RPC_STUB IDXGIFactory2_RegisterStereoStatusWindow_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterStereoStatusEvent_Proxy( -+ IDXGIFactory2* This, -+ HANDLE event, -+ DWORD *cookie); -+void __RPC_STUB IDXGIFactory2_RegisterStereoStatusEvent_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+void STDMETHODCALLTYPE IDXGIFactory2_UnregisterStereoStatus_Proxy( -+ IDXGIFactory2* This, -+ DWORD cookie); -+void __RPC_STUB IDXGIFactory2_UnregisterStereoStatus_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterOcclusionStatusWindow_Proxy( -+ IDXGIFactory2* This, -+ HWND window, -+ UINT msg, -+ DWORD *cookie); -+void __RPC_STUB IDXGIFactory2_RegisterOcclusionStatusWindow_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterOcclusionStatusEvent_Proxy( -+ IDXGIFactory2* This, -+ HANDLE event, -+ DWORD *cookie); -+void __RPC_STUB IDXGIFactory2_RegisterOcclusionStatusEvent_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+void STDMETHODCALLTYPE IDXGIFactory2_UnregisterOcclusionStatus_Proxy( -+ IDXGIFactory2* This, -+ DWORD cookie); -+void __RPC_STUB IDXGIFactory2_UnregisterOcclusionStatus_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForComposition_Proxy( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+void __RPC_STUB IDXGIFactory2_CreateSwapChainForComposition_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __IDXGIFactory2_INTERFACE_DEFINED__ */ -+ -+typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY { -+ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, -+ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1, -+ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2, -+ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3, -+ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4 -+} DXGI_GRAPHICS_PREEMPTION_GRANULARITY; -+typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY { -+ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, -+ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1, -+ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2, -+ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3, -+ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4 -+} DXGI_COMPUTE_PREEMPTION_GRANULARITY; -+typedef struct DXGI_ADAPTER_DESC2 { -+ WCHAR Description[128]; -+ UINT VendorId; -+ UINT DeviceId; -+ UINT SubSysId; -+ UINT Revision; -+ SIZE_T DedicatedVideoMemory; -+ SIZE_T DedicatedSystemMemory; -+ SIZE_T SharedSystemMemory; -+ LUID AdapterLuid; -+ UINT Flags; -+ DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; -+ DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; -+} DXGI_ADAPTER_DESC2; -+/***************************************************************************** -+ * IDXGIAdapter2 interface -+ */ -+#ifndef __IDXGIAdapter2_INTERFACE_DEFINED__ -+#define __IDXGIAdapter2_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("0aa1ae0a-fa0e-4b84-8644-e05ff8e5acb5") -+IDXGIAdapter2 : public IDXGIAdapter1 -+{ -+ virtual HRESULT STDMETHODCALLTYPE GetDesc2( -+ DXGI_ADAPTER_DESC2 *desc) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5) -+#endif -+#else -+typedef struct IDXGIAdapter2Vtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ IDXGIAdapter2* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ IDXGIAdapter2* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ IDXGIAdapter2* This); -+ -+ /*** IDXGIObject methods ***/ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ IDXGIAdapter2* This, -+ REFGUID guid, -+ UINT data_size, -+ const void *data); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ IDXGIAdapter2* This, -+ REFGUID guid, -+ const IUnknown *object); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ IDXGIAdapter2* This, -+ REFGUID guid, -+ UINT *data_size, -+ void *data); -+ -+ HRESULT (STDMETHODCALLTYPE *GetParent)( -+ IDXGIAdapter2* This, -+ REFIID riid, -+ void **parent); -+ -+ /*** IDXGIAdapter methods ***/ -+ HRESULT (STDMETHODCALLTYPE *EnumOutputs)( -+ IDXGIAdapter2* This, -+ UINT output_idx, -+ IDXGIOutput **output); -+ -+ HRESULT (STDMETHODCALLTYPE *GetDesc)( -+ IDXGIAdapter2* This, -+ DXGI_ADAPTER_DESC *desc); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)( -+ IDXGIAdapter2* This, -+ REFGUID guid, -+ LARGE_INTEGER *umd_version); -+ -+ /*** IDXGIAdapter1 methods ***/ -+ HRESULT (STDMETHODCALLTYPE *GetDesc1)( -+ IDXGIAdapter2* This, -+ DXGI_ADAPTER_DESC1 *pDesc); -+ -+ /*** IDXGIAdapter2 methods ***/ -+ HRESULT (STDMETHODCALLTYPE *GetDesc2)( -+ IDXGIAdapter2* This, -+ DXGI_ADAPTER_DESC2 *desc); -+ -+ END_INTERFACE -+} IDXGIAdapter2Vtbl; -+interface IDXGIAdapter2 { -+ CONST_VTBL IDXGIAdapter2Vtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define IDXGIAdapter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define IDXGIAdapter2_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define IDXGIAdapter2_Release(This) (This)->lpVtbl->Release(This) -+/*** IDXGIObject methods ***/ -+#define IDXGIAdapter2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) -+#define IDXGIAdapter2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) -+#define IDXGIAdapter2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) -+#define IDXGIAdapter2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) -+/*** IDXGIAdapter methods ***/ -+#define IDXGIAdapter2_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output) -+#define IDXGIAdapter2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) -+#define IDXGIAdapter2_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version) -+/*** IDXGIAdapter1 methods ***/ -+#define IDXGIAdapter2_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc) -+/*** IDXGIAdapter2 methods ***/ -+#define IDXGIAdapter2_GetDesc2(This,desc) (This)->lpVtbl->GetDesc2(This,desc) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT IDXGIAdapter2_QueryInterface(IDXGIAdapter2* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG IDXGIAdapter2_AddRef(IDXGIAdapter2* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG IDXGIAdapter2_Release(IDXGIAdapter2* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** IDXGIObject methods ***/ -+static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT data_size,const void *data) { -+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); -+} -+static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateDataInterface(IDXGIAdapter2* This,REFGUID guid,const IUnknown *object) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); -+} -+static FORCEINLINE HRESULT IDXGIAdapter2_GetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT *data_size,void *data) { -+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); -+} -+static FORCEINLINE HRESULT IDXGIAdapter2_GetParent(IDXGIAdapter2* This,REFIID riid,void **parent) { -+ return This->lpVtbl->GetParent(This,riid,parent); -+} -+/*** IDXGIAdapter methods ***/ -+static FORCEINLINE HRESULT IDXGIAdapter2_EnumOutputs(IDXGIAdapter2* This,UINT output_idx,IDXGIOutput **output) { -+ return This->lpVtbl->EnumOutputs(This,output_idx,output); -+} -+static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc(IDXGIAdapter2* This,DXGI_ADAPTER_DESC *desc) { -+ return This->lpVtbl->GetDesc(This,desc); -+} -+static FORCEINLINE HRESULT IDXGIAdapter2_CheckInterfaceSupport(IDXGIAdapter2* This,REFGUID guid,LARGE_INTEGER *umd_version) { -+ return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version); -+} -+/*** IDXGIAdapter1 methods ***/ -+static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc1(IDXGIAdapter2* This,DXGI_ADAPTER_DESC1 *pDesc) { -+ return This->lpVtbl->GetDesc1(This,pDesc); -+} -+/*** IDXGIAdapter2 methods ***/ -+static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc2(IDXGIAdapter2* This,DXGI_ADAPTER_DESC2 *desc) { -+ return This->lpVtbl->GetDesc2(This,desc); -+} -+#endif -+#endif -+ -+#endif -+ -+HRESULT STDMETHODCALLTYPE IDXGIAdapter2_GetDesc2_Proxy( -+ IDXGIAdapter2* This, -+ DXGI_ADAPTER_DESC2 *desc); -+void __RPC_STUB IDXGIAdapter2_GetDesc2_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */ -+ +typedef struct DXGI_MODE_DESC1 { + UINT Width; + UINT Height; @@ -1550,128 +910,11 @@ index bba4ab8..eed13bb 100644 typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, DXGI_OFFER_RESOURCE_PRIORITY_NORMAL, -@@ -130,3 +239,162 @@ interface IDXGISwapChain1 : IDXGISwapChain - HRESULT GetRotation( - [out] DXGI_MODE_ROTATION *pRotation); +@@ -232,3 +239,45 @@ interface IDXGISwapChain1 : IDXGISwapChain + { + HRESULT GetDesc2([out] DXGI_ADAPTER_DESC2 *pDesc); } + -+[ -+ object, -+ uuid(50c83a1c-e072-4c48-87b0-3630fa36a6d0), -+ local, -+ pointer_default(unique) -+] -+interface IDXGIFactory2 : IDXGIFactory1 -+{ -+ BOOL IsWindowedStereoEnabled(); -+ -+ HRESULT CreateSwapChainForHwnd( -+ [in] IUnknown *device, -+ [in] HWND hwnd, -+ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, -+ [in] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, -+ [in] IDXGIOutput *output, -+ [out] IDXGISwapChain1 **swapchain -+ ); -+ -+ HRESULT CreateSwapChainForCoreWindow( -+ [in] IUnknown *device, -+ [in] IUnknown *window, -+ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, -+ [in] IDXGIOutput *output, -+ [out] IDXGISwapChain1 **swapchain -+ ); -+ -+ HRESULT GetSharedResourceAdapterLuid( -+ [in] HANDLE resource, -+ [out] LUID *luid -+ ); -+ -+ HRESULT RegisterStereoStatusWindow( -+ [in] HWND window, -+ [in] UINT msg, -+ [out] DWORD *cookie -+ ); -+ -+ HRESULT RegisterStereoStatusEvent( -+ [in] HANDLE event, -+ [out] DWORD *cookie -+ ); -+ -+ void UnregisterStereoStatus( -+ [in] DWORD cookie -+ ); -+ -+ HRESULT RegisterOcclusionStatusWindow( -+ [in] HWND window, -+ [in] UINT msg, -+ [out] DWORD *cookie -+ ); -+ -+ HRESULT RegisterOcclusionStatusEvent( -+ [in] HANDLE event, -+ [out] DWORD *cookie -+ ); -+ -+ void UnregisterOcclusionStatus( -+ [in] DWORD cookie -+ ); -+ -+ HRESULT CreateSwapChainForComposition( -+ [in] IUnknown *device, -+ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, -+ [in] IDXGIOutput *output, -+ [out] IDXGISwapChain1 **swapchain -+ ); -+ } -+ -+typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY -+{ -+ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, -+ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1, -+ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2, -+ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3, -+ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4, -+} DXGI_GRAPHICS_PREEMPTION_GRANULARITY; -+ -+typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY -+{ -+ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, -+ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1, -+ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2, -+ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3, -+ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4, -+} DXGI_COMPUTE_PREEMPTION_GRANULARITY; -+ -+typedef struct DXGI_ADAPTER_DESC2 -+{ -+ WCHAR Description[128]; -+ UINT VendorId; -+ UINT DeviceId; -+ UINT SubSysId; -+ UINT Revision; -+ SIZE_T DedicatedVideoMemory; -+ SIZE_T DedicatedSystemMemory; -+ SIZE_T SharedSystemMemory; -+ LUID AdapterLuid; -+ UINT Flags; -+ DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; -+ DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; -+} DXGI_ADAPTER_DESC2; -+ -+[ -+ object, -+ uuid(0aa1ae0a-fa0e-4B84-8644-e05ff8e5acb5), -+ local, -+ pointer_default(unique) -+] -+interface IDXGIAdapter2 : IDXGIAdapter1 -+{ -+ HRESULT GetDesc2( -+ [out] DXGI_ADAPTER_DESC2 *desc -+ ); -+} -+ +typedef struct DXGI_MODE_DESC1 +{ + UINT Width; diff --git a/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch b/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch index 1d97a44648..01897bbf65 100644 --- a/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch +++ b/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch @@ -12,1004 +12,25 @@ diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.h b/mingw-w64-headers/di index ad50171..17183ef 100644 --- a/mingw-w64-headers/direct-x/include/d3d11_1.h +++ b/mingw-w64-headers/direct-x/include/d3d11_1.h -@@ -27,6 +27,21 @@ typedef interface ID3DDeviceContextState ID3DDeviceContextState; - typedef interface ID3D11DeviceContext1 ID3D11DeviceContext1; +@@ -59,6 +59,11 @@ void __RPC_STUB ID3D11DeviceContext1_DiscardView1_Stub( + extern "C" { #endif -+#ifndef __ID3D11BlendState1_FWD_DEFINED__ -+#define __ID3D11BlendState1_FWD_DEFINED__ -+typedef interface ID3D11BlendState1 ID3D11BlendState1; -+#endif -+ -+#ifndef __ID3D11RasterizerState1_FWD_DEFINED__ -+#define __ID3D11RasterizerState1_FWD_DEFINED__ -+typedef interface ID3D11RasterizerState1 ID3D11RasterizerState1; -+#endif -+ -+#ifndef __ID3D11Device1_FWD_DEFINED__ -+#define __ID3D11Device1_FWD_DEFINED__ -+typedef interface ID3D11Device1 ID3D11Device1; -+#endif -+ - #ifndef __ID3DUserDefinedAnnotation_FWD_DEFINED__ - #define __ID3DUserDefinedAnnotation_FWD_DEFINED__ - typedef interface ID3DUserDefinedAnnotation ID3DUserDefinedAnnotation; -@@ -1872,6 +1887,961 @@ void __RPC_STUB ID3D11DeviceContext1_DiscardView1_Stub( - - #endif /* __ID3D11DeviceContext1_INTERFACE_DEFINED__ */ - +typedef enum D3D11_COPY_FLAGS { + D3D11_COPY_NO_OVERWRITE = 0x1, + D3D11_COPY_DISCARD = 0x2 +} D3D11_COPY_FLAGS; -+typedef enum D3D11_LOGIC_OP { -+ D3D11_LOGIC_OP_CLEAR = 0, -+ D3D11_LOGIC_OP_SET = 1, -+ D3D11_LOGIC_OP_COPY = 2, -+ D3D11_LOGIC_OP_COPY_INVERTED = 3, -+ D3D11_LOGIC_OP_NOOP = 4, -+ D3D11_LOGIC_OP_INVERT = 5, -+ D3D11_LOGIC_OP_AND = 6, -+ D3D11_LOGIC_OP_NAND = 7, -+ D3D11_LOGIC_OP_OR = 8, -+ D3D11_LOGIC_OP_NOR = 9, -+ D3D11_LOGIC_OP_XOR = 10, -+ D3D11_LOGIC_OP_EQUIV = 11, -+ D3D11_LOGIC_OP_AND_REVERSE = 12, -+ D3D11_LOGIC_OP_AND_INVERTED = 13, -+ D3D11_LOGIC_OP_OR_REVERSE = 14, -+ D3D11_LOGIC_OP_OR_INVERTED = 15 -+} D3D11_LOGIC_OP; -+typedef struct D3D11_RENDER_TARGET_BLEND_DESC1 { -+ WINBOOL BlendEnable; -+ WINBOOL LogicOpEnable; -+ D3D11_BLEND SrcBlend; -+ D3D11_BLEND DestBlend; -+ D3D11_BLEND_OP BlendOp; -+ D3D11_BLEND SrcBlendAlpha; -+ D3D11_BLEND DestBlendAlpha; -+ D3D11_BLEND_OP BlendOpAlpha; -+ D3D11_LOGIC_OP LogicOp; -+ UINT8 RenderTargetWriteMask; -+} D3D11_RENDER_TARGET_BLEND_DESC1; -+typedef struct D3D11_BLEND_DESC1 { -+ WINBOOL AlphaToCoverageEnable; -+ WINBOOL IndependentBlendEnable; -+ D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[8]; -+} D3D11_BLEND_DESC1; -+/***************************************************************************** -+ * ID3D11BlendState1 interface -+ */ -+#ifndef __ID3D11BlendState1_INTERFACE_DEFINED__ -+#define __ID3D11BlendState1_INTERFACE_DEFINED__ + -+DEFINE_GUID(IID_ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("cc86fabe-da55-401d-85e7-e3c9de2877e9") -+ID3D11BlendState1 : public ID3D11BlendState -+{ -+ virtual void STDMETHODCALLTYPE GetDesc1( -+ D3D11_BLEND_DESC1 *desc) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9) -+#endif -+#else -+typedef struct ID3D11BlendState1Vtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11BlendState1* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11BlendState1* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11BlendState1* This); -+ -+ /*** ID3D11DeviceChild methods ***/ -+ void (STDMETHODCALLTYPE *GetDevice)( -+ ID3D11BlendState1* This, -+ ID3D11Device **ppDevice); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11BlendState1* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11BlendState1* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11BlendState1* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ /*** ID3D11BlendState methods ***/ -+ void (STDMETHODCALLTYPE *GetDesc)( -+ ID3D11BlendState1* This, -+ D3D11_BLEND_DESC *pDesc); -+ -+ /*** ID3D11BlendState1 methods ***/ -+ void (STDMETHODCALLTYPE *GetDesc1)( -+ ID3D11BlendState1* This, -+ D3D11_BLEND_DESC1 *desc); -+ -+ END_INTERFACE -+} ID3D11BlendState1Vtbl; -+interface ID3D11BlendState1 { -+ CONST_VTBL ID3D11BlendState1Vtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11BlendState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11BlendState1_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11BlendState1_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11DeviceChild methods ***/ -+#define ID3D11BlendState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) -+#define ID3D11BlendState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11BlendState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11BlendState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+/*** ID3D11BlendState methods ***/ -+#define ID3D11BlendState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) -+/*** ID3D11BlendState1 methods ***/ -+#define ID3D11BlendState1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11BlendState1_QueryInterface(ID3D11BlendState1* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11BlendState1_AddRef(ID3D11BlendState1* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11BlendState1_Release(ID3D11BlendState1* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11DeviceChild methods ***/ -+static FORCEINLINE void ID3D11BlendState1_GetDevice(ID3D11BlendState1* This,ID3D11Device **ppDevice) { -+ This->lpVtbl->GetDevice(This,ppDevice); -+} -+static FORCEINLINE HRESULT ID3D11BlendState1_GetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateDataInterface(ID3D11BlendState1* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+/*** ID3D11BlendState methods ***/ -+static FORCEINLINE void ID3D11BlendState1_GetDesc(ID3D11BlendState1* This,D3D11_BLEND_DESC *pDesc) { -+ This->lpVtbl->GetDesc(This,pDesc); -+} -+/*** ID3D11BlendState1 methods ***/ -+static FORCEINLINE void ID3D11BlendState1_GetDesc1(ID3D11BlendState1* This,D3D11_BLEND_DESC1 *desc) { -+ This->lpVtbl->GetDesc1(This,desc); -+} -+#endif -+#endif -+ -+#endif -+ -+void STDMETHODCALLTYPE ID3D11BlendState1_GetDesc1_Proxy( -+ ID3D11BlendState1* This, -+ D3D11_BLEND_DESC1 *desc); -+void __RPC_STUB ID3D11BlendState1_GetDesc1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11BlendState1_INTERFACE_DEFINED__ */ -+ -+typedef struct D3D11_RASTERIZER_DESC1 { -+ D3D11_FILL_MODE FillMode; -+ D3D11_CULL_MODE CullMode; -+ WINBOOL FrontCounterClockwise; -+ INT DepthBias; -+ float DepthBiasClamp; -+ float SlopeScaledDepthBias; -+ WINBOOL DepthClipEnable; -+ WINBOOL ScissorEnable; -+ WINBOOL MultisampleEnable; -+ WINBOOL AntialiasedLineEnable; -+ UINT ForcedSampleCount; -+} D3D11_RASTERIZER_DESC1; -+/***************************************************************************** -+ * ID3D11RasterizerState1 interface -+ */ -+#ifndef __ID3D11RasterizerState1_INTERFACE_DEFINED__ -+#define __ID3D11RasterizerState1_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("1217d7a6-5039-418c-b042-9cbe256afd6e") -+ID3D11RasterizerState1 : public ID3D11RasterizerState -+{ -+ virtual void STDMETHODCALLTYPE GetDesc1( -+ D3D11_RASTERIZER_DESC1 *desc) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e) -+#endif -+#else -+typedef struct ID3D11RasterizerState1Vtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11RasterizerState1* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11RasterizerState1* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11RasterizerState1* This); -+ -+ /*** ID3D11DeviceChild methods ***/ -+ void (STDMETHODCALLTYPE *GetDevice)( -+ ID3D11RasterizerState1* This, -+ ID3D11Device **ppDevice); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11RasterizerState1* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11RasterizerState1* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11RasterizerState1* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ /*** ID3D11RasterizerState methods ***/ -+ void (STDMETHODCALLTYPE *GetDesc)( -+ ID3D11RasterizerState1* This, -+ D3D11_RASTERIZER_DESC *pDesc); -+ -+ /*** ID3D11RasterizerState1 methods ***/ -+ void (STDMETHODCALLTYPE *GetDesc1)( -+ ID3D11RasterizerState1* This, -+ D3D11_RASTERIZER_DESC1 *desc); -+ -+ END_INTERFACE -+} ID3D11RasterizerState1Vtbl; -+interface ID3D11RasterizerState1 { -+ CONST_VTBL ID3D11RasterizerState1Vtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11RasterizerState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11RasterizerState1_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11RasterizerState1_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11DeviceChild methods ***/ -+#define ID3D11RasterizerState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) -+#define ID3D11RasterizerState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11RasterizerState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11RasterizerState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+/*** ID3D11RasterizerState methods ***/ -+#define ID3D11RasterizerState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) -+/*** ID3D11RasterizerState1 methods ***/ -+#define ID3D11RasterizerState1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11RasterizerState1_QueryInterface(ID3D11RasterizerState1* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11RasterizerState1_AddRef(ID3D11RasterizerState1* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11RasterizerState1_Release(ID3D11RasterizerState1* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11DeviceChild methods ***/ -+static FORCEINLINE void ID3D11RasterizerState1_GetDevice(ID3D11RasterizerState1* This,ID3D11Device **ppDevice) { -+ This->lpVtbl->GetDevice(This,ppDevice); -+} -+static FORCEINLINE HRESULT ID3D11RasterizerState1_GetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateDataInterface(ID3D11RasterizerState1* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+/*** ID3D11RasterizerState methods ***/ -+static FORCEINLINE void ID3D11RasterizerState1_GetDesc(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC *pDesc) { -+ This->lpVtbl->GetDesc(This,pDesc); -+} -+/*** ID3D11RasterizerState1 methods ***/ -+static FORCEINLINE void ID3D11RasterizerState1_GetDesc1(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC1 *desc) { -+ This->lpVtbl->GetDesc1(This,desc); -+} -+#endif -+#endif -+ -+#endif -+ -+void STDMETHODCALLTYPE ID3D11RasterizerState1_GetDesc1_Proxy( -+ ID3D11RasterizerState1* This, -+ D3D11_RASTERIZER_DESC1 *desc); -+void __RPC_STUB ID3D11RasterizerState1_GetDesc1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11RasterizerState1_INTERFACE_DEFINED__ */ -+ -+/***************************************************************************** -+ * ID3D11Device1 interface -+ */ -+#ifndef __ID3D11Device1_INTERFACE_DEFINED__ -+#define __ID3D11Device1_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("a04bfb29-08ef-43d6-a49c-a9bdbdcbe686") -+ID3D11Device1 : public ID3D11Device -+{ -+ virtual void STDMETHODCALLTYPE GetImmediateContext1( -+ ID3D11DeviceContext1 **context) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext1( -+ UINT flags, -+ ID3D11DeviceContext1 **context) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateBlendState1( -+ const D3D11_BLEND_DESC1 *desc, -+ ID3D11BlendState1 **state) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState1( -+ const D3D11_RASTERIZER_DESC1 *desc, -+ ID3D11RasterizerState1 **state) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateDeviceContextState( -+ UINT flags, -+ const D3D_FEATURE_LEVEL *levels, -+ UINT levels_count, -+ UINT version, -+ REFIID emu_interface, -+ D3D_FEATURE_LEVEL *level, -+ ID3DDeviceContextState **state) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE OpenSharedResource1( -+ HANDLE resource, -+ REFIID emu_interface, -+ void **data) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE OpenSharedResourceByName( -+ const WCHAR *name, -+ DWORD access, -+ REFIID emu_interface, -+ void **data) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86) -+#endif -+#else -+typedef struct ID3D11Device1Vtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11Device1* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11Device1* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11Device1* This); -+ -+ /*** ID3D11Device methods ***/ -+ HRESULT (STDMETHODCALLTYPE *CreateBuffer)( -+ ID3D11Device1* This, -+ const D3D11_BUFFER_DESC *pDesc, -+ const D3D11_SUBRESOURCE_DATA *pInitialData, -+ ID3D11Buffer **ppBuffer); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)( -+ ID3D11Device1* This, -+ const D3D11_TEXTURE1D_DESC *pDesc, -+ const D3D11_SUBRESOURCE_DATA *pInitialData, -+ ID3D11Texture1D **ppTexture1D); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)( -+ ID3D11Device1* This, -+ const D3D11_TEXTURE2D_DESC *pDesc, -+ const D3D11_SUBRESOURCE_DATA *pInitialData, -+ ID3D11Texture2D **ppTexture2D); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)( -+ ID3D11Device1* This, -+ const D3D11_TEXTURE3D_DESC *pDesc, -+ const D3D11_SUBRESOURCE_DATA *pInitialData, -+ ID3D11Texture3D **ppTexture3D); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)( -+ ID3D11Device1* This, -+ ID3D11Resource *pResource, -+ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, -+ ID3D11ShaderResourceView **ppSRView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)( -+ ID3D11Device1* This, -+ ID3D11Resource *pResource, -+ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, -+ ID3D11UnorderedAccessView **ppUAView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)( -+ ID3D11Device1* This, -+ ID3D11Resource *pResource, -+ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, -+ ID3D11RenderTargetView **ppRTView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)( -+ ID3D11Device1* This, -+ ID3D11Resource *pResource, -+ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, -+ ID3D11DepthStencilView **ppDepthStencilView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)( -+ ID3D11Device1* This, -+ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs, -+ UINT NumElements, -+ const void *pShaderBytecodeWithInputSignature, -+ SIZE_T BytecodeLength, -+ ID3D11InputLayout **ppInputLayout); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11VertexShader **ppVertexShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11GeometryShader **ppGeometryShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration, -+ UINT NumEntries, -+ const UINT *pBufferStrides, -+ UINT NumStrides, -+ UINT RasterizedStream, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11GeometryShader **ppGeometryShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11PixelShader **ppPixelShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateHullShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11HullShader **ppHullShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDomainShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11DomainShader **ppDomainShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateComputeShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11ComputeShader **ppComputeShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)( -+ ID3D11Device1* This, -+ ID3D11ClassLinkage **ppLinkage); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateBlendState)( -+ ID3D11Device1* This, -+ const D3D11_BLEND_DESC *pBlendStateDesc, -+ ID3D11BlendState **ppBlendState); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)( -+ ID3D11Device1* This, -+ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, -+ ID3D11DepthStencilState **ppDepthStencilState); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)( -+ ID3D11Device1* This, -+ const D3D11_RASTERIZER_DESC *pRasterizerDesc, -+ ID3D11RasterizerState **ppRasterizerState); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)( -+ ID3D11Device1* This, -+ const D3D11_SAMPLER_DESC *pSamplerDesc, -+ ID3D11SamplerState **ppSamplerState); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateQuery)( -+ ID3D11Device1* This, -+ const D3D11_QUERY_DESC *pQueryDesc, -+ ID3D11Query **ppQuery); -+ -+ HRESULT (STDMETHODCALLTYPE *CreatePredicate)( -+ ID3D11Device1* This, -+ const D3D11_QUERY_DESC *pPredicateDesc, -+ ID3D11Predicate **ppPredicate); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateCounter)( -+ ID3D11Device1* This, -+ const D3D11_COUNTER_DESC *pCounterDesc, -+ ID3D11Counter **ppCounter); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)( -+ ID3D11Device1* This, -+ UINT ContextFlags, -+ ID3D11DeviceContext **ppDeferredContext); -+ -+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)( -+ ID3D11Device1* This, -+ HANDLE hResource, -+ REFIID ReturnedInterface, -+ void **ppResource); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)( -+ ID3D11Device1* This, -+ DXGI_FORMAT Format, -+ UINT *pFormatSupport); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)( -+ ID3D11Device1* This, -+ DXGI_FORMAT Format, -+ UINT SampleCount, -+ UINT *pNumQualityLevels); -+ -+ void (STDMETHODCALLTYPE *CheckCounterInfo)( -+ ID3D11Device1* This, -+ D3D11_COUNTER_INFO *pCounterInfo); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckCounter)( -+ ID3D11Device1* This, -+ const D3D11_COUNTER_DESC *pDesc, -+ D3D11_COUNTER_TYPE *pType, -+ UINT *pActiveCounters, -+ LPSTR szName, -+ UINT *pNameLength, -+ LPSTR szUnits, -+ UINT *pUnitsLength, -+ LPSTR szDescription, -+ UINT *pDescriptionLength); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( -+ ID3D11Device1* This, -+ D3D11_FEATURE Feature, -+ void *pFeatureSupportData, -+ UINT FeatureSupportDataSize); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11Device1* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11Device1* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11Device1* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)( -+ ID3D11Device1* This); -+ -+ UINT (STDMETHODCALLTYPE *GetCreationFlags)( -+ ID3D11Device1* This); -+ -+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( -+ ID3D11Device1* This); -+ -+ void (STDMETHODCALLTYPE *GetImmediateContext)( -+ ID3D11Device1* This, -+ ID3D11DeviceContext **ppImmediateContext); -+ -+ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)( -+ ID3D11Device1* This, -+ UINT RaiseFlags); -+ -+ UINT (STDMETHODCALLTYPE *GetExceptionMode)( -+ ID3D11Device1* This); -+ -+ /*** ID3D11Device1 methods ***/ -+ void (STDMETHODCALLTYPE *GetImmediateContext1)( -+ ID3D11Device1* This, -+ ID3D11DeviceContext1 **context); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)( -+ ID3D11Device1* This, -+ UINT flags, -+ ID3D11DeviceContext1 **context); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateBlendState1)( -+ ID3D11Device1* This, -+ const D3D11_BLEND_DESC1 *desc, -+ ID3D11BlendState1 **state); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)( -+ ID3D11Device1* This, -+ const D3D11_RASTERIZER_DESC1 *desc, -+ ID3D11RasterizerState1 **state); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)( -+ ID3D11Device1* This, -+ UINT flags, -+ const D3D_FEATURE_LEVEL *levels, -+ UINT levels_count, -+ UINT version, -+ REFIID emu_interface, -+ D3D_FEATURE_LEVEL *level, -+ ID3DDeviceContextState **state); -+ -+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)( -+ ID3D11Device1* This, -+ HANDLE resource, -+ REFIID emu_interface, -+ void **data); -+ -+ HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)( -+ ID3D11Device1* This, -+ const WCHAR *name, -+ DWORD access, -+ REFIID emu_interface, -+ void **data); -+ -+ END_INTERFACE -+} ID3D11Device1Vtbl; -+interface ID3D11Device1 { -+ CONST_VTBL ID3D11Device1Vtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11Device1_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11Device1_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11Device methods ***/ -+#define ID3D11Device1_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer) -+#define ID3D11Device1_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) -+#define ID3D11Device1_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) -+#define ID3D11Device1_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) -+#define ID3D11Device1_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView) -+#define ID3D11Device1_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) -+#define ID3D11Device1_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView) -+#define ID3D11Device1_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) -+#define ID3D11Device1_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) -+#define ID3D11Device1_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) -+#define ID3D11Device1_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) -+#define ID3D11Device1_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) -+#define ID3D11Device1_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) -+#define ID3D11Device1_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) -+#define ID3D11Device1_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) -+#define ID3D11Device1_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) -+#define ID3D11Device1_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage) -+#define ID3D11Device1_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState) -+#define ID3D11Device1_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) -+#define ID3D11Device1_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) -+#define ID3D11Device1_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState) -+#define ID3D11Device1_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery) -+#define ID3D11Device1_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate) -+#define ID3D11Device1_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter) -+#define ID3D11Device1_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext) -+#define ID3D11Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource) -+#define ID3D11Device1_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport) -+#define ID3D11Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) -+#define ID3D11Device1_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo) -+#define ID3D11Device1_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) -+#define ID3D11Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) -+#define ID3D11Device1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11Device1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11Device1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+#define ID3D11Device1_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This) -+#define ID3D11Device1_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This) -+#define ID3D11Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) -+#define ID3D11Device1_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext) -+#define ID3D11Device1_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags) -+#define ID3D11Device1_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This) -+/*** ID3D11Device1 methods ***/ -+#define ID3D11Device1_GetImmediateContext1(This,context) (This)->lpVtbl->GetImmediateContext1(This,context) -+#define ID3D11Device1_CreateDeferredContext1(This,flags,context) (This)->lpVtbl->CreateDeferredContext1(This,flags,context) -+#define ID3D11Device1_CreateBlendState1(This,desc,state) (This)->lpVtbl->CreateBlendState1(This,desc,state) -+#define ID3D11Device1_CreateRasterizerState1(This,desc,state) (This)->lpVtbl->CreateRasterizerState1(This,desc,state) -+#define ID3D11Device1_CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state) (This)->lpVtbl->CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state) -+#define ID3D11Device1_OpenSharedResource1(This,resource,emu_interface,data) (This)->lpVtbl->OpenSharedResource1(This,resource,emu_interface,data) -+#define ID3D11Device1_OpenSharedResourceByName(This,name,access,emu_interface,data) (This)->lpVtbl->OpenSharedResourceByName(This,name,access,emu_interface,data) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11Device1_QueryInterface(ID3D11Device1* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11Device1_AddRef(ID3D11Device1* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11Device1_Release(ID3D11Device1* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11Device methods ***/ -+static FORCEINLINE HRESULT ID3D11Device1_CreateBuffer(ID3D11Device1* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) { -+ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture1D(ID3D11Device1* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) { -+ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture2D(ID3D11Device1* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) { -+ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture3D(ID3D11Device1* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) { -+ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateShaderResourceView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) { -+ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateUnorderedAccessView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) { -+ return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateRenderTargetView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) { -+ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) { -+ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateInputLayout(ID3D11Device1* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) { -+ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateVertexShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) { -+ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) { -+ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShaderWithStreamOutput(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) { -+ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreatePixelShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) { -+ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateHullShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) { -+ return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDomainShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) { -+ return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateComputeShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) { -+ return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateClassLinkage(ID3D11Device1* This,ID3D11ClassLinkage **ppLinkage) { -+ return This->lpVtbl->CreateClassLinkage(This,ppLinkage); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState(ID3D11Device1* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) { -+ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilState(ID3D11Device1* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) { -+ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState(ID3D11Device1* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) { -+ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateSamplerState(ID3D11Device1* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) { -+ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateQuery(ID3D11Device1* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) { -+ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreatePredicate(ID3D11Device1* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) { -+ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) { -+ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext(ID3D11Device1* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) { -+ return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext); -+} -+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource(ID3D11Device1* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) { -+ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CheckFormatSupport(ID3D11Device1* This,DXGI_FORMAT Format,UINT *pFormatSupport) { -+ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CheckMultisampleQualityLevels(ID3D11Device1* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) { -+ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels); -+} -+static FORCEINLINE void ID3D11Device1_CheckCounterInfo(ID3D11Device1* This,D3D11_COUNTER_INFO *pCounterInfo) { -+ This->lpVtbl->CheckCounterInfo(This,pCounterInfo); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CheckCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) { -+ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CheckFeatureSupport(ID3D11Device1* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) { -+ return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize); -+} -+static FORCEINLINE HRESULT ID3D11Device1_GetPrivateData(ID3D11Device1* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11Device1_SetPrivateData(ID3D11Device1* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11Device1_SetPrivateDataInterface(ID3D11Device1* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+static FORCEINLINE D3D_FEATURE_LEVEL ID3D11Device1_GetFeatureLevel(ID3D11Device1* This) { -+ return This->lpVtbl->GetFeatureLevel(This); -+} -+static FORCEINLINE UINT ID3D11Device1_GetCreationFlags(ID3D11Device1* This) { -+ return This->lpVtbl->GetCreationFlags(This); -+} -+static FORCEINLINE HRESULT ID3D11Device1_GetDeviceRemovedReason(ID3D11Device1* This) { -+ return This->lpVtbl->GetDeviceRemovedReason(This); -+} -+static FORCEINLINE void ID3D11Device1_GetImmediateContext(ID3D11Device1* This,ID3D11DeviceContext **ppImmediateContext) { -+ This->lpVtbl->GetImmediateContext(This,ppImmediateContext); -+} -+static FORCEINLINE HRESULT ID3D11Device1_SetExceptionMode(ID3D11Device1* This,UINT RaiseFlags) { -+ return This->lpVtbl->SetExceptionMode(This,RaiseFlags); -+} -+static FORCEINLINE UINT ID3D11Device1_GetExceptionMode(ID3D11Device1* This) { -+ return This->lpVtbl->GetExceptionMode(This); -+} -+/*** ID3D11Device1 methods ***/ -+static FORCEINLINE void ID3D11Device1_GetImmediateContext1(ID3D11Device1* This,ID3D11DeviceContext1 **context) { -+ This->lpVtbl->GetImmediateContext1(This,context); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext1(ID3D11Device1* This,UINT flags,ID3D11DeviceContext1 **context) { -+ return This->lpVtbl->CreateDeferredContext1(This,flags,context); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState1(ID3D11Device1* This,const D3D11_BLEND_DESC1 *desc,ID3D11BlendState1 **state) { -+ return This->lpVtbl->CreateBlendState1(This,desc,state); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState1(ID3D11Device1* This,const D3D11_RASTERIZER_DESC1 *desc,ID3D11RasterizerState1 **state) { -+ return This->lpVtbl->CreateRasterizerState1(This,desc,state); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDeviceContextState(ID3D11Device1* This,UINT flags,const D3D_FEATURE_LEVEL *levels,UINT levels_count,UINT version,REFIID emu_interface,D3D_FEATURE_LEVEL *level,ID3DDeviceContextState **state) { -+ return This->lpVtbl->CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state); -+} -+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource1(ID3D11Device1* This,HANDLE resource,REFIID emu_interface,void **data) { -+ return This->lpVtbl->OpenSharedResource1(This,resource,emu_interface,data); -+} -+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResourceByName(ID3D11Device1* This,const WCHAR *name,DWORD access,REFIID emu_interface,void **data) { -+ return This->lpVtbl->OpenSharedResourceByName(This,name,access,emu_interface,data); -+} -+#endif -+#endif -+ -+#endif -+ -+void STDMETHODCALLTYPE ID3D11Device1_GetImmediateContext1_Proxy( -+ ID3D11Device1* This, -+ ID3D11DeviceContext1 **context); -+void __RPC_STUB ID3D11Device1_GetImmediateContext1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateDeferredContext1_Proxy( -+ ID3D11Device1* This, -+ UINT flags, -+ ID3D11DeviceContext1 **context); -+void __RPC_STUB ID3D11Device1_CreateDeferredContext1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateBlendState1_Proxy( -+ ID3D11Device1* This, -+ const D3D11_BLEND_DESC1 *desc, -+ ID3D11BlendState1 **state); -+void __RPC_STUB ID3D11Device1_CreateBlendState1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateRasterizerState1_Proxy( -+ ID3D11Device1* This, -+ const D3D11_RASTERIZER_DESC1 *desc, -+ ID3D11RasterizerState1 **state); -+void __RPC_STUB ID3D11Device1_CreateRasterizerState1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateDeviceContextState_Proxy( -+ ID3D11Device1* This, -+ UINT flags, -+ const D3D_FEATURE_LEVEL *levels, -+ UINT levels_count, -+ UINT version, -+ REFIID emu_interface, -+ D3D_FEATURE_LEVEL *level, -+ ID3DDeviceContextState **state); -+void __RPC_STUB ID3D11Device1_CreateDeviceContextState_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_OpenSharedResource1_Proxy( -+ ID3D11Device1* This, -+ HANDLE resource, -+ REFIID emu_interface, -+ void **data); -+void __RPC_STUB ID3D11Device1_OpenSharedResource1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_OpenSharedResourceByName_Proxy( -+ ID3D11Device1* This, -+ const WCHAR *name, -+ DWORD access, -+ REFIID emu_interface, -+ void **data); -+void __RPC_STUB ID3D11Device1_OpenSharedResourceByName_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11Device1_INTERFACE_DEFINED__ */ -+ - /***************************************************************************** - * ID3DUserDefinedAnnotation interface - */ + typedef enum D3D11_LOGIC_OP { + D3D11_LOGIC_OP_CLEAR = 0, + D3D11_LOGIC_OP_SET = 1, diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.idl b/mingw-w64-headers/direct-x/include/d3d11_1.idl index 928548f..bf11725 100644 --- a/mingw-w64-headers/direct-x/include/d3d11_1.idl +++ b/mingw-w64-headers/direct-x/include/d3d11_1.idl -@@ -1,5 +1,6 @@ - /* - * Copyright 2014 Jacek Caban for CodeWeavers -+ * Copyright 2015 Martell Malone - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -164,6 +165,144 @@ interface ID3D11DeviceContext1 : ID3D11DeviceContext - UINT NumRects); - } +@@ -22,6 +22,12 @@ interface ID3D11DeviceContext1 : ID3D11DeviceContext + import "d3dcommon.idl"; + import "d3d11.idl"; +typedef enum D3D11_COPY_FLAGS +{ @@ -1017,141 +38,9 @@ index 928548f..bf11725 100644 + D3D11_COPY_DISCARD = 0x2, +} D3D11_COPY_FLAGS; + -+typedef enum D3D11_LOGIC_OP -+{ -+ D3D11_LOGIC_OP_CLEAR = 0, -+ D3D11_LOGIC_OP_SET, -+ D3D11_LOGIC_OP_COPY, -+ D3D11_LOGIC_OP_COPY_INVERTED, -+ D3D11_LOGIC_OP_NOOP, -+ D3D11_LOGIC_OP_INVERT, -+ D3D11_LOGIC_OP_AND, -+ D3D11_LOGIC_OP_NAND, -+ D3D11_LOGIC_OP_OR, -+ D3D11_LOGIC_OP_NOR, -+ D3D11_LOGIC_OP_XOR, -+ D3D11_LOGIC_OP_EQUIV, -+ D3D11_LOGIC_OP_AND_REVERSE, -+ D3D11_LOGIC_OP_AND_INVERTED, -+ D3D11_LOGIC_OP_OR_REVERSE, -+ D3D11_LOGIC_OP_OR_INVERTED, -+} D3D11_LOGIC_OP; -+ -+typedef struct D3D11_RENDER_TARGET_BLEND_DESC1 -+{ -+ BOOL BlendEnable; -+ BOOL LogicOpEnable; -+ D3D11_BLEND SrcBlend; -+ D3D11_BLEND DestBlend; -+ D3D11_BLEND_OP BlendOp; -+ D3D11_BLEND SrcBlendAlpha; -+ D3D11_BLEND DestBlendAlpha; -+ D3D11_BLEND_OP BlendOpAlpha; -+ D3D11_LOGIC_OP LogicOp; -+ UINT8 RenderTargetWriteMask; -+} D3D11_RENDER_TARGET_BLEND_DESC1; -+ -+typedef struct D3D11_BLEND_DESC1 -+{ -+ BOOL AlphaToCoverageEnable; -+ BOOL IndependentBlendEnable; -+ D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT]; -+} D3D11_BLEND_DESC1; -+ -+[ -+ uuid(cc86fabe-da55-401d-85e7-e3c9de2877e9), -+ object, -+ local, -+ pointer_default(unique) -+] -+interface ID3D11BlendState1 : ID3D11BlendState -+{ -+ void GetDesc1( -+ [out] D3D11_BLEND_DESC1* desc -+ ); -+} -+ -+typedef struct D3D11_RASTERIZER_DESC1 -+{ -+ D3D11_FILL_MODE FillMode; -+ D3D11_CULL_MODE CullMode; -+ BOOL FrontCounterClockwise; -+ INT DepthBias; -+ float DepthBiasClamp; -+ float SlopeScaledDepthBias; -+ BOOL DepthClipEnable; -+ BOOL ScissorEnable; -+ BOOL MultisampleEnable; -+ BOOL AntialiasedLineEnable; -+ UINT ForcedSampleCount; -+} D3D11_RASTERIZER_DESC1; -+ -+[ -+ uuid(1217d7a6-5039-418c-b042-9cbe256afd6e), -+ object, -+ local, -+ pointer_default(unique) -+] -+interface ID3D11RasterizerState1 : ID3D11RasterizerState -+{ -+ void GetDesc1( -+ [out] D3D11_RASTERIZER_DESC1 *desc -+ ); -+} -+ -+[ -+ uuid(a04bfb29-08ef-43d6-a49c-a9bdbdcbe686), -+ object, -+ local, -+ pointer_default(unique) -+] -+interface ID3D11Device1 : ID3D11Device -+{ -+ void GetImmediateContext1( -+ [out] ID3D11DeviceContext1 **context -+ ); -+ -+ HRESULT CreateDeferredContext1( -+ UINT flags, -+ [out] ID3D11DeviceContext1 **context -+ ); -+ -+ HRESULT CreateBlendState1( -+ [in] const D3D11_BLEND_DESC1 *desc, -+ [out] ID3D11BlendState1 **state -+ ); -+ -+ HRESULT CreateRasterizerState1( -+ [in] const D3D11_RASTERIZER_DESC1 *desc, -+ [out] ID3D11RasterizerState1 **state -+ ); -+ -+ HRESULT CreateDeviceContextState( -+ UINT flags, -+ [size_is(levels_count)] const D3D_FEATURE_LEVEL* levels, -+ UINT levels_count, -+ UINT version, -+ REFIID emu_interface, -+ [out] D3D_FEATURE_LEVEL *level, -+ [out] ID3DDeviceContextState **state -+ ); -+ -+ HRESULT OpenSharedResource1( -+ [in] HANDLE resource, -+ [in] REFIID emu_interface, -+ [out] void **data -+ ); -+ -+ HRESULT OpenSharedResourceByName( -+ [in] const WCHAR *name, -+ [in] DWORD access, -+ [in] REFIID emu_interface, -+ [in] void **data); -+} -+ - [ - uuid(b2daad8b-03d4-4dbf-95eb-32ab4b63d0ab), - object, + typedef enum D3D11_LOGIC_OP { + D3D11_LOGIC_OP_CLEAR = 0, + D3D11_LOGIC_OP_SET, -- 2.3.0 diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 23e9f4e580..bad5b9c1e8 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4472.1c3d2c1 +pkgver=5.0.0.4478.790a654 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" @@ -23,8 +23,8 @@ source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" md5sums=('SKIP' '0bcf1726f2093c6ed7e998d7e6c9dd16' '20172a91981ffa87aa6aa5d3001c290b' - '410ff7ad4443a9f2e318c64742b2d358' - '28a4074ee6fcf76b5b13db2a8cd3291c' + 'bdca4fc47725678f08cc23c96d130151' + '9973c46a1dc331fd07c4b3dc6f5472a0' '652859ad478448a70c2074a854a313ec') pkgver() { From bcfb27c5db87cc9f7b19ffb07c74dc291da9c919 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 27 Mar 2015 14:56:24 +0300 Subject: [PATCH 0754/2060] ANGLE: WIP of current git build. --- .../0000-General-fixes-for-ANGLE-2.1.patch | 477 ---------- .../0000-build-fix.patch | 103 +++ ...-to-link-ANGLE-statically-for-single.patch | 109 --- ...y-load-D3D-compiler-from-a-list-or-t.patch | 64 -- .../0009-ANGLE-Support-WinRT.patch | 837 ------------------ ...able-D3D11-for-feature-level-9-cards.patch | 637 ------------- ...0012-ANGLE-fix-semantic-index-lookup.patch | 48 - ...support-for-querying-platform-device.patch | 100 --- ...e-multithreaded-devices-if-necessary.patch | 69 -- ...15-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch | 533 ----------- ...0017-ANGLE-Fix-compilation-with-D3D9.patch | 62 -- ...leasing-textures-after-we-kill-D3D11.patch | 106 --- ...le-OS-from-GENERATOR-a-bit-for-MSYS2.patch | 25 - mingw-w64-angleproject-git/PKGBUILD | 175 ++-- ...gleproject-disable-debug-annotations.patch | 33 - .../angleproject-export-shader-symbols.patch | 26 +- ...lude-import-library-and-use-def-file.patch | 44 +- ...t-prevent-multiple-definition-errors.patch | 39 - .../angleproject-undo-shader-renames.patch | 162 ---- mingw-w64-angleproject-git/commit-409078f | 363 -------- mingw-w64-angleproject-git/commit-4de44cb | 747 ---------------- mingw-w64-angleproject-git/libEGL_mingw32.def | 12 + .../libGLESv2_mingw32.def | 8 + 23 files changed, 218 insertions(+), 4561 deletions(-) delete mode 100644 mingw-w64-angleproject-git/0000-General-fixes-for-ANGLE-2.1.patch create mode 100644 mingw-w64-angleproject-git/0000-build-fix.patch delete mode 100644 mingw-w64-angleproject-git/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch delete mode 100644 mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t.patch delete mode 100644 mingw-w64-angleproject-git/0009-ANGLE-Support-WinRT.patch delete mode 100644 mingw-w64-angleproject-git/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch delete mode 100644 mingw-w64-angleproject-git/0012-ANGLE-fix-semantic-index-lookup.patch delete mode 100644 mingw-w64-angleproject-git/0013-ANGLE-Add-support-for-querying-platform-device.patch delete mode 100644 mingw-w64-angleproject-git/0014-Let-ANGLE-use-multithreaded-devices-if-necessary.patch delete mode 100644 mingw-w64-angleproject-git/0015-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch delete mode 100644 mingw-w64-angleproject-git/0017-ANGLE-Fix-compilation-with-D3D9.patch delete mode 100644 mingw-w64-angleproject-git/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch delete mode 100644 mingw-w64-angleproject-git/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch delete mode 100644 mingw-w64-angleproject-git/angleproject-disable-debug-annotations.patch delete mode 100644 mingw-w64-angleproject-git/angleproject-prevent-multiple-definition-errors.patch delete mode 100644 mingw-w64-angleproject-git/angleproject-undo-shader-renames.patch delete mode 100644 mingw-w64-angleproject-git/commit-409078f delete mode 100644 mingw-w64-angleproject-git/commit-4de44cb diff --git a/mingw-w64-angleproject-git/0000-General-fixes-for-ANGLE-2.1.patch b/mingw-w64-angleproject-git/0000-General-fixes-for-ANGLE-2.1.patch deleted file mode 100644 index ad3187ec7c..0000000000 --- a/mingw-w64-angleproject-git/0000-General-fixes-for-ANGLE-2.1.patch +++ /dev/null @@ -1,477 +0,0 @@ -From bd27c33a4a7c48bd14b9b6c18c8cdce1c3aae155 Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Fri, 14 Nov 2014 10:53:40 +0200 -Subject: [PATCH] General fixes for ANGLE 2.1 - -- Fix commit.h include (use hard-coded version) -- Fix export mismatch in libEGL.cpp and libGLESv2.cpp -- Normalize all precompiled shader names and includes -- Remove third-party event tracing; it was hardly used in ANGLE - and not enabled in Qt builds anyway. - -Change-Id: I22254aed62e89a26756ca0784bae95909189c0f9 ---- - src/3rdparty/angle/src/commit.h | 6 +- - src/3rdparty/angle/src/common/version.h | 2 +- - .../src/common/winrt/CoreWindowNativeWindow.cpp | 2 +- - src/3rdparty/angle/src/libEGL/libEGL.cpp | 3 + - src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp | 4 ++ - src/3rdparty/angle/src/libGLESv2/libGLESv2.def | 3 - - .../src/libGLESv2/renderer/d3d/HLSLCompiler.cpp | 3 - - .../src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp | 66 +++++++++++----------- - .../src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp | 12 ++-- - .../renderer/d3d/d3d11/PixelTransfer11.cpp | 10 ++-- - .../libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp | 4 +- - .../renderer/d3d/d3d11/shaders/Clear11.hlsl | 4 ++ - .../src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp | 20 +++---- - .../src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp | 12 ---- - .../libGLESv2/renderer/d3d/d3d9/shaders/Blit.ps | 6 +- - .../libGLESv2/renderer/d3d/d3d9/shaders/Blit.vs | 4 +- - 16 files changed, 76 insertions(+), 85 deletions(-) - -diff --git a/src/3rdparty/angle/src/commit.h b/src/3rdparty/angle/src/commit.h -index 4c89a65..08fc893 100644 ---- a/src/3rdparty/angle/src/commit.h -+++ b/src/3rdparty/angle/src/commit.h -@@ -7,8 +7,6 @@ - // This is a default commit hash header, when git is not available. - // - --#define ANGLE_COMMIT_HASH "unknown hash" -+#define ANGLE_COMMIT_HASH "30d6c255d238" - #define ANGLE_COMMIT_HASH_SIZE 12 --#define ANGLE_COMMIT_DATE "unknown date" -- --#define ANGLE_DISABLE_PROGRAM_BINARY_LOAD -+#define ANGLE_COMMIT_DATE "2014-11-13 17:37:03 +0000" -diff --git a/src/3rdparty/angle/src/common/version.h b/src/3rdparty/angle/src/common/version.h -index d9148d1..f01e024 100644 ---- a/src/3rdparty/angle/src/common/version.h -+++ b/src/3rdparty/angle/src/common/version.h -@@ -1,4 +1,4 @@ --#include "id/commit.h" -+#include "../commit.h" - - #define ANGLE_MAJOR_VERSION 2 - #define ANGLE_MINOR_VERSION 1 -diff --git a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp -index 0de16f4..0e63fa5 100644 ---- a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp -+++ b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp -@@ -184,4 +184,4 @@ long ConvertDipsToPixels(float dips) - static const float dipsPerInch = 96.0f; - return lround((dips * GetLogicalDpi() / dipsPerInch)); - } --} -\ No newline at end of file -+} -diff --git a/src/3rdparty/angle/src/libEGL/libEGL.cpp b/src/3rdparty/angle/src/libEGL/libEGL.cpp -index 851b723..6110698 100644 ---- a/src/3rdparty/angle/src/libEGL/libEGL.cpp -+++ b/src/3rdparty/angle/src/libEGL/libEGL.cpp -@@ -6,6 +6,9 @@ - - // libEGL.cpp: Implements the exported EGL functions. - -+#undef EGLAPI -+#define EGLAPI -+ - #include - - #include "common/debug.h" -diff --git a/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp b/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp -index 2306168..587950a 100644 ---- a/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp -@@ -6,6 +6,10 @@ - - // libGLESv2.cpp: Implements the exported OpenGL ES 2.0 functions. - -+#undef GL_APICALL -+#define GL_APICALL -+#define GL_GLEXT_PROTOTYPES -+ - #include "common/version.h" - #include "common/utilities.h" - -diff --git a/src/3rdparty/angle/src/libGLESv2/libGLESv2.def b/src/3rdparty/angle/src/libGLESv2/libGLESv2.def -index 88dceb3..33557eb 100644 ---- a/src/3rdparty/angle/src/libGLESv2/libGLESv2.def -+++ b/src/3rdparty/angle/src/libGLESv2/libGLESv2.def -@@ -294,6 +294,3 @@ EXPORTS - glBindTexImage @158 NONAME - glCreateRenderer @177 NONAME - glDestroyRenderer @178 NONAME -- -- ; Setting up TRACE macro callbacks -- SetTraceFunctionPointers @284 -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp -index 5c44fe0..bfeaf51 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp -@@ -11,8 +11,6 @@ - #include "common/features.h" - #include "common/utilities.h" - --#include "third_party/trace_event/trace_event.h" -- - // Definitions local to the translation unit - namespace - { -@@ -120,7 +118,6 @@ HLSLCompiler::~HLSLCompiler() - - bool HLSLCompiler::initialize() - { -- TRACE_EVENT0("gpu", "initializeCompiler"); - #if !defined(ANGLE_ENABLE_WINDOWS_STORE) - #if defined(ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES) - // Find a D3DCompiler module that had already been loaded based on a predefined list of versions. -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp -index 8ed1650..91e7552 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp -@@ -13,39 +13,39 @@ - #include "libGLESv2/main.h" - #include "libGLESv2/formatutils.h" - --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughdepth2d11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dui11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2di11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2d11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dui11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2di11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2d11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dui11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2di11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2d11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dui11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2di11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum2d11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h" -- --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3d11vs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3d11gs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dui11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3di11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3d11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dui11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3di11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3d11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dui11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3di11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3d11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dui11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3di11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum3d11ps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2dvs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughdepth2dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2duips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2duips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2duips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2duips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum2dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2dps.h" -+ -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3dvs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3dgs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3duips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3duips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3duips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3duips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum3dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha3dps.h" - - #include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/swizzlef2dps.h" - #include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/swizzlei2dps.h" -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp -index 12905d0..4630762 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp -@@ -15,14 +15,14 @@ - #include "libGLESv2/FramebufferAttachment.h" - - // Precompiled shaders --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloat11vs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloatvs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloatps.h" - --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuint11vs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuint11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuintvs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuintps.h" - --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsint11vs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsint11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsintvs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsintps.h" - - namespace rx - { -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp -index 1bc2bd8..a4072d8 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp -@@ -22,11 +22,11 @@ - #include "libGLESv2/Context.h" - - // Precompiled shaders --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_vs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_gs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4f.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4i.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexturevs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexturegs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4fps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4ips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4uips.h" - - namespace rx - { -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp -index 3fcacf6..834b7bd 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp -@@ -12,8 +12,8 @@ - #include "libGLESv2/renderer/d3d/d3d11/Renderer11.h" - - // Precompiled shaders --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2dvs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dps.h" - - #include "common/features.h" - #include "common/NativeWindow.h" -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/shaders/Clear11.hlsl b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/shaders/Clear11.hlsl -index 6deef2b..b4cf380 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/shaders/Clear11.hlsl -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/shaders/Clear11.hlsl -@@ -13,10 +13,12 @@ struct PS_OutputFloat - float4 color1 : SV_TARGET1; - float4 color2 : SV_TARGET2; - float4 color3 : SV_TARGET3; -+#if SM4 - float4 color4 : SV_TARGET4; - float4 color5 : SV_TARGET5; - float4 color6 : SV_TARGET6; - float4 color7 : SV_TARGET7; -+#endif - }; - - PS_OutputFloat PS_ClearFloat(in float4 inPosition : SV_POSITION, in float4 inColor : COLOR) -@@ -26,10 +28,12 @@ PS_OutputFloat PS_ClearFloat(in float4 inPosition : SV_POSITION, in float4 inCol - outColor.color1 = inColor; - outColor.color2 = inColor; - outColor.color3 = inColor; -+#if SM4 - outColor.color4 = inColor; - outColor.color5 = inColor; - outColor.color6 = inColor; - outColor.color7 = inColor; -+#endif - return outColor; - } - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp -index d4fcd17..2ca7a9c 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp -@@ -27,20 +27,20 @@ namespace - - const BYTE* const g_shaderCode[] = - { -- g_vs20_standardvs, -- g_vs20_flipyvs, -- g_ps20_passthroughps, -- g_ps20_luminanceps, -- g_ps20_componentmaskps -+ g_vs20_VS_standard, -+ g_vs20_VS_flipy, -+ g_ps20_PS_passthrough, -+ g_ps20_PS_luminance, -+ g_ps20_PS_componentmask - }; - - const size_t g_shaderSize[] = - { -- sizeof(g_vs20_standardvs), -- sizeof(g_vs20_flipyvs), -- sizeof(g_ps20_passthroughps), -- sizeof(g_ps20_luminanceps), -- sizeof(g_ps20_componentmaskps) -+ sizeof(g_vs20_VS_standard), -+ sizeof(g_vs20_VS_flipy), -+ sizeof(g_ps20_PS_passthrough), -+ sizeof(g_ps20_PS_luminance), -+ sizeof(g_ps20_PS_componentmask) - }; - } - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp -index 3bac4ba..82963ec 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp -@@ -42,8 +42,6 @@ - #include "common/features.h" - #include "common/utilities.h" - --#include "third_party/trace_event/trace_event.h" -- - #include - - // Can also be enabled by defining FORCE_REF_RAST in the project's predefined macros -@@ -185,7 +183,6 @@ EGLint Renderer9::initialize() - return EGL_NOT_INITIALIZED; - } - -- TRACE_EVENT0("gpu", "GetModuleHandle_d3d9"); - mD3d9Module = GetModuleHandle(TEXT("d3d9.dll")); - - if (mD3d9Module == NULL) -@@ -202,14 +199,12 @@ EGLint Renderer9::initialize() - // desktop. Direct3D9Ex is available in Windows Vista and later if suitable drivers are available. - if (ANGLE_D3D9EX == ANGLE_ENABLED && Direct3DCreate9ExPtr && SUCCEEDED(Direct3DCreate9ExPtr(D3D_SDK_VERSION, &mD3d9Ex))) - { -- TRACE_EVENT0("gpu", "D3d9Ex_QueryInterface"); - ASSERT(mD3d9Ex); - mD3d9Ex->QueryInterface(__uuidof(IDirect3D9), reinterpret_cast(&mD3d9)); - ASSERT(mD3d9); - } - else - { -- TRACE_EVENT0("gpu", "Direct3DCreate9"); - mD3d9 = Direct3DCreate9(D3D_SDK_VERSION); - } - -@@ -228,7 +223,6 @@ EGLint Renderer9::initialize() - - // Give up on getting device caps after about one second. - { -- TRACE_EVENT0("gpu", "GetDeviceCaps"); - for (int i = 0; i < 10; ++i) - { - result = mD3d9->GetDeviceCaps(mAdapter, mDeviceType, &mDeviceCaps); -@@ -263,7 +257,6 @@ EGLint Renderer9::initialize() - } - - { -- TRACE_EVENT0("gpu", "GetAdapterIdentifier"); - mD3d9->GetAdapterIdentifier(mAdapter, 0, &mAdapterIdentifier); - } - -@@ -300,7 +293,6 @@ EGLint Renderer9::initialize() - static const TCHAR className[] = TEXT("STATIC"); - - { -- TRACE_EVENT0("gpu", "CreateWindowEx"); - mDeviceWindow = CreateWindowEx(WS_EX_NOACTIVATE, className, windowName, WS_DISABLED | WS_POPUP, 0, 0, 1, 1, HWND_MESSAGE, NULL, GetModuleHandle(NULL), NULL); - } - -@@ -308,7 +300,6 @@ EGLint Renderer9::initialize() - DWORD behaviorFlags = D3DCREATE_FPU_PRESERVE | D3DCREATE_NOWINDOWCHANGES; - - { -- TRACE_EVENT0("gpu", "D3d9_CreateDevice"); - result = mD3d9->CreateDevice(mAdapter, mDeviceType, mDeviceWindow, behaviorFlags | D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE, &presentParameters, &mDevice); - } - if (result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY || result == D3DERR_DEVICELOST) -@@ -318,7 +309,6 @@ EGLint Renderer9::initialize() - - if (FAILED(result)) - { -- TRACE_EVENT0("gpu", "D3d9_CreateDevice2"); - result = mD3d9->CreateDevice(mAdapter, mDeviceType, mDeviceWindow, behaviorFlags | D3DCREATE_SOFTWARE_VERTEXPROCESSING, &presentParameters, &mDevice); - - if (FAILED(result)) -@@ -330,13 +320,11 @@ EGLint Renderer9::initialize() - - if (mD3d9Ex) - { -- TRACE_EVENT0("gpu", "mDevice_QueryInterface"); - result = mDevice->QueryInterface(__uuidof(IDirect3DDevice9Ex), (void**)&mDeviceEx); - ASSERT(SUCCEEDED(result)); - } - - { -- TRACE_EVENT0("gpu", "ShaderCache initialize"); - mVertexShaderCache.initialize(mDevice); - mPixelShaderCache.initialize(mDevice); - } -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.ps b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.ps -index dc357d0..eb43eb3 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.ps -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.ps -@@ -11,7 +11,7 @@ uniform float4 add : c1; - - // Passthrough Pixel Shader - // Outputs texture 0 sampled at texcoord 0. --float4 passthroughps(float4 texcoord : TEXCOORD0) : COLOR -+float4 PS_passthrough(float4 texcoord : TEXCOORD0) : COLOR - { - return tex2D(tex, texcoord.xy); - }; -@@ -19,7 +19,7 @@ float4 passthroughps(float4 texcoord : TEXCOORD0) : COLOR - // Luminance Conversion Pixel Shader - // Performs a mad operation using the LA data from the texture with mult.xw and add.xw. - // Returns data in the form of llla --float4 luminanceps(float4 texcoord : TEXCOORD0) : COLOR -+float4 PS_luminance(float4 texcoord : TEXCOORD0) : COLOR - { - return (tex2D(tex, texcoord.xy).xw * mult.xw + add.xw).xxxy; - }; -@@ -27,7 +27,7 @@ float4 luminanceps(float4 texcoord : TEXCOORD0) : COLOR - // RGB/A Component Mask Pixel Shader - // Performs a mad operation using the texture's RGBA data with mult.xyzw and add.xyzw. - // Returns data in the form of rgba --float4 componentmaskps(float4 texcoord : TEXCOORD0) : COLOR -+float4 PS_componentmask(float4 texcoord : TEXCOORD0) : COLOR - { - return tex2D(tex, texcoord.xy) * mult + add; - }; -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.vs b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.vs -index 3a36980..3bd611b 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.vs -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/shaders/Blit.vs -@@ -17,7 +17,7 @@ uniform float4 halfPixelSize : c0; - // Outputs the homogenous position as-is. - // Outputs a tex coord with (0,0) in the upper-left corner of the screen and (1,1) in the bottom right. - // C0.X must be negative half-pixel width, C0.Y must be half-pixel height. C0.ZW must be 0. --VS_OUTPUT standardvs(in float4 position : POSITION) -+VS_OUTPUT VS_standard(in float4 position : POSITION) - { - VS_OUTPUT Out; - -@@ -32,7 +32,7 @@ VS_OUTPUT standardvs(in float4 position : POSITION) - // Outputs the homogenous position as-is. - // Outputs a tex coord with (0,1) in the upper-left corner of the screen and (1,0) in the bottom right. - // C0.XY must be the half-pixel width and height. C0.ZW must be 0. --VS_OUTPUT flipyvs(in float4 position : POSITION) -+VS_OUTPUT VS_flipy(in float4 position : POSITION) - { - VS_OUTPUT Out; - --- -1.9.4.msysgit.1 - diff --git a/mingw-w64-angleproject-git/0000-build-fix.patch b/mingw-w64-angleproject-git/0000-build-fix.patch new file mode 100644 index 0000000000..e434a649a5 --- /dev/null +++ b/mingw-w64-angleproject-git/0000-build-fix.patch @@ -0,0 +1,103 @@ +diff --git a/src/angle.gyp b/src/angle.gyp +index 4095547..3db4840 100644 +--- a/src/angle.gyp ++++ b/src/angle.gyp +@@ -76,7 +76,7 @@ + [ + { + 'destination': '<(angle_gen_path)', +- 'files': [ 'copy_compiler_dll.bat', '<(angle_id_script_base)' ], ++ 'files': [ '<(angle_id_script_base)' ], + }, + ], + 'conditions': +@@ -206,10 +206,10 @@ + 'outputs': [ '<(PRODUCT_DIR)/d3dcompiler_47.dll' ], + 'action': + [ +- "<(angle_gen_path)/copy_compiler_dll.bat", +- "$(PlatformName)", +- "<(windows_sdk_path)", +- "<(PRODUCT_DIR)" ++# "<(angle_gen_path)/copy_compiler_dll.bat", ++# "$(PlatformName)", ++# "<(windows_sdk_path)", ++# "<(PRODUCT_DIR)" + ], + }, + ], #actions +diff --git a/src/common/mathutil.h b/src/common/mathutil.h +index e096b1a..716aeb6 100644 +--- a/src/common/mathutil.h ++++ b/src/common/mathutil.h +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + + namespace gl + { +diff --git a/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp b/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp +index cdf3b8e..59aacb8 100644 +--- a/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp ++++ b/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp +@@ -55,6 +55,7 @@ + #include "libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlef2darrayps.h" + #include "libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlei2darrayps.h" + #include "libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzleui2darrayps.h" ++#include + + namespace rx + { +diff --git a/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp b/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp +index ae42f36..0f1fed8 100644 +--- a/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp ++++ b/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp +@@ -16,6 +16,7 @@ + #include "libANGLE/renderer/d3d/d3d11/renderer11_utils.h" + #include "libANGLE/renderer/d3d/d3d11/Renderer11.h" + #include "third_party/murmurhash/MurmurHash3.h" ++#include + + namespace rx + { +diff --git a/src/libANGLE/renderer/gl/renderergl_utils.cpp b/src/libANGLE/renderer/gl/renderergl_utils.cpp +index 4223b40..f11e7a7 100644 +--- a/src/libANGLE/renderer/gl/renderergl_utils.cpp ++++ b/src/libANGLE/renderer/gl/renderergl_utils.cpp +@@ -11,6 +11,7 @@ + + #include "libANGLE/Caps.h" + #include "libANGLE/renderer/gl/FunctionsGL.h" ++#include + + namespace rx + { +diff --git a/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h b/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h +index c4b79ee..f22609b 100644 +--- a/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h ++++ b/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h +@@ -23,7 +23,7 @@ typedef HGLRC(WINAPI *PFNWGLCREATELAYERCONTEXTPROC)(HDC, int); + typedef BOOL(WINAPI *PFNWGLDELETECONTEXTPROC)(HGLRC); + typedef HGLRC(WINAPI *PFNWGLGETCURRENTCONTEXTPROC)(VOID); + typedef HDC(WINAPI *PFNWGLGETCURRENTDCPROC)(VOID); +-typedef PROC(WINAPI *PFNWGLGETPROCADDRESSPROC)(LPCSTR); ++typedef void*(WINAPI *PFNWGLGETPROCADDRESSPROC)(LPCSTR); + typedef BOOL(WINAPI *PFNWGLMAKECURRENTPROC)(HDC, HGLRC); + typedef BOOL(WINAPI *PFNWGLSHARELISTSPROC)(HGLRC, HGLRC); + typedef BOOL(WINAPI *PFNWGLUSEFONTBITMAPSAPROC)(HDC, DWORD, DWORD, DWORD); +diff --git a/src/libGLESv2.gypi b/src/libGLESv2.gypi +index b8d9944..a581c8d 100644 +--- a/src/libGLESv2.gypi ++++ b/src/libGLESv2.gypi +@@ -716,6 +716,9 @@ + 'msvs_enable_winphone' : '1', + }], + ], ++ 'libraries': [ ++ '-ldxguid -ld3d9 -lgdi32' ++ ] + }, + ], + } diff --git a/mingw-w64-angleproject-git/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch b/mingw-w64-angleproject-git/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch deleted file mode 100644 index 45a3f17cca..0000000000 --- a/mingw-w64-angleproject-git/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 3a39939b5eba9f788789961c4800ba62618f758c Mon Sep 17 00:00:00 2001 -From: Friedemann Kleint -Date: Tue, 11 Nov 2014 10:26:32 +0200 -Subject: [PATCH 04/16] Make it possible to link ANGLE statically for - single-thread use. - -Fix exports and provide static instances of thread-local -data depending on QT_OPENGL_ES_2_ANGLE_STATIC. - -Change-Id: Ifab25a820adf5953bb3b09036de53dbf7f1a7fd5 ---- - src/3rdparty/angle/include/KHR/khrplatform.h | 2 +- - src/3rdparty/angle/src/libEGL/main.cpp | 10 ++++++++++ - src/3rdparty/angle/src/libGLESv2/main.cpp | 10 ++++++++-- - 3 files changed, 19 insertions(+), 3 deletions(-) - -diff --git a/src/3rdparty/angle/include/KHR/khrplatform.h b/src/3rdparty/angle/include/KHR/khrplatform.h -index c9e6f17..1ac2d3f 100644 ---- a/src/3rdparty/angle/include/KHR/khrplatform.h -+++ b/src/3rdparty/angle/include/KHR/khrplatform.h -@@ -97,7 +97,7 @@ - *------------------------------------------------------------------------- - * This precedes the return type of the function in the function prototype. - */ --#if defined(_WIN32) && !defined(__SCITECH_SNAP__) -+#if defined(_WIN32) && !defined(__SCITECH_SNAP__) && !defined(QT_OPENGL_ES_2_ANGLE_STATIC) - # define KHRONOS_APICALL __declspec(dllimport) - #elif defined (__SYMBIAN32__) - # define KHRONOS_APICALL IMPORT_C -diff --git a/src/3rdparty/angle/src/libEGL/main.cpp b/src/3rdparty/angle/src/libEGL/main.cpp -index d1489f2..e88cad7 100644 ---- a/src/3rdparty/angle/src/libEGL/main.cpp -+++ b/src/3rdparty/angle/src/libEGL/main.cpp -@@ -49,6 +49,8 @@ void DeallocateCurrent() - - } - -+#ifndef QT_OPENGL_ES_2_ANGLE_STATIC -+ - extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) - { - switch (reason) -@@ -108,16 +110,24 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved - return TRUE; - } - -+#endif // !QT_OPENGL_ES_2_ANGLE_STATIC -+ - namespace egl - { - - Current *GetCurrentData() - { -+#ifndef QT_OPENGL_ES_2_ANGLE_STATIC - Current *current = reinterpret_cast(GetTLSValue(currentTLS)); - - // ANGLE issue 488: when the dll is loaded after thread initialization, - // thread local storage (current) might not exist yet. - return (current ? current : AllocateCurrent()); -+#else -+ // No precautions for thread safety taken as ANGLE is used single-threaded in Qt. -+ static Current current = { EGL_SUCCESS, EGL_OPENGL_ES_API, EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE }; -+ return ¤t; -+#endif - } - - void recordError(const Error &error) -diff --git a/src/3rdparty/angle/src/libGLESv2/main.cpp b/src/3rdparty/angle/src/libGLESv2/main.cpp -index 3ac00d5..00f63ae 100644 ---- a/src/3rdparty/angle/src/libGLESv2/main.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/main.cpp -@@ -74,7 +74,7 @@ void DeallocateCurrent() - - } - --#ifdef ANGLE_PLATFORM_WINDOWS -+#if defined(ANGLE_PLATFORM_WINDOWS) && !defined(QT_OPENGL_ES_2_ANGLE_STATIC) - extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) - { - switch (reason) -@@ -117,18 +117,24 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved - - return TRUE; - } --#endif -+#endif // ANGLE_PLATFORM_WINDOWS && !QT_OPENGL_ES_2_ANGLE_STATIC - - namespace gl - { - - Current *GetCurrentData() - { -+#ifndef QT_OPENGL_ES_2_ANGLE_STATIC - Current *current = reinterpret_cast(GetTLSValue(currentTLS)); - - // ANGLE issue 488: when the dll is loaded after thread initialization, - // thread local storage (current) might not exist yet. - return (current ? current : AllocateCurrent()); -+#else -+ // No precautions for thread safety taken as ANGLE is used single-threaded in Qt. -+ static Current current = { 0, 0 }; -+ return ¤t; -+#endif - } - - void makeCurrent(Context *context, egl::Display *display, egl::Surface *surface) --- -1.9.4.msysgit.1 - diff --git a/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t.patch b/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t.patch deleted file mode 100644 index 801db67682..0000000000 --- a/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 4a5960465d1632ab089320fcbba4af294d58fd9a Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Fri, 7 Nov 2014 14:05:36 +0200 -Subject: [PATCH 08/16] ANGLE: Dynamically load D3D compiler from a list or the - environment - -If the default compiler cannot be found, load it from a list of DLL names, -including a non-versioned proxy DLL provided by Qt. On Desktop Windows, -the default compiler can also be specified by an environment variable, -QT_D3DCOMPILER_DLL. - -Change-Id: I0d7a8a8a36cc571836f8fa59ea14513b9b19c19b ---- - .../src/libGLESv2/renderer/d3d/HLSLCompiler.cpp | 27 ++++++++++++++++++++++ - 1 file changed, 27 insertions(+) - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp -index bfeaf51..9d003b4 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp -@@ -11,6 +11,10 @@ - #include "common/features.h" - #include "common/utilities.h" - -+#ifndef QT_D3DCOMPILER_DLL -+#define QT_D3DCOMPILER_DLL D3DCOMPILER_DLL -+#endif -+ - // Definitions local to the translation unit - namespace - { -@@ -132,6 +136,29 @@ bool HLSLCompiler::initialize() - } - #endif // ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES - -+ // Load the compiler DLL specified by the environment, or default to QT_D3DCOMPILER_DLL -+ const wchar_t *defaultCompiler = _wgetenv(L"QT_D3DCOMPILER_DLL"); -+ if (!defaultCompiler) -+ defaultCompiler = QT_D3DCOMPILER_DLL; -+ -+ const wchar_t *compilerDlls[] = { -+ defaultCompiler, -+ L"d3dcompiler_47.dll", -+ L"d3dcompiler_46.dll", -+ L"d3dcompiler_45.dll", -+ L"d3dcompiler_44.dll", -+ L"d3dcompiler_43.dll", -+ 0 -+ }; -+ -+ // Load the first available known compiler DLL -+ for (int i = 0; compilerDlls[i]; ++i) -+ { -+ mD3DCompilerModule = LoadLibrary(compilerDlls[i]); -+ if (mD3DCompilerModule) -+ break; -+ } -+ - if (!mD3DCompilerModule) - { - // Load the version of the D3DCompiler DLL associated with the Direct3D version ANGLE was built with. --- -1.9.4.msysgit.1 - diff --git a/mingw-w64-angleproject-git/0009-ANGLE-Support-WinRT.patch b/mingw-w64-angleproject-git/0009-ANGLE-Support-WinRT.patch deleted file mode 100644 index a38fb4ea13..0000000000 --- a/mingw-w64-angleproject-git/0009-ANGLE-Support-WinRT.patch +++ /dev/null @@ -1,837 +0,0 @@ -From 4d150ba3814f824f1cadaedbdb83d0ac79d0e1a2 Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Fri, 14 Nov 2014 09:28:11 +0200 -Subject: [PATCH 09/16] ANGLE: Support WinRT - -Tweak ANGLE's existing support for WinRT to allow for changing the -window size on Windows Phone. - -Change-Id: Ia312b5318b977838a2953f1f530487cbf24974bc ---- - src/3rdparty/angle/include/EGL/eglplatform.h | 5 +- - src/3rdparty/angle/src/common/NativeWindow.h | 7 +- - src/3rdparty/angle/src/common/platform.h | 4 +- - .../angle/src/common/win32/NativeWindow.cpp | 2 +- - .../src/common/winrt/CoreWindowNativeWindow.cpp | 87 +++++++++++++--------- - .../src/common/winrt/CoreWindowNativeWindow.h | 48 ++---------- - .../src/common/winrt/InspectableNativeWindow.cpp | 8 +- - .../src/common/winrt/InspectableNativeWindow.h | 7 +- - .../common/winrt/SwapChainPanelNativeWindow.cpp | 2 +- - .../src/common/winrt/SwapChainPanelNativeWindow.h | 2 +- - src/3rdparty/angle/src/libEGL/Display.h | 1 + - src/3rdparty/angle/src/libEGL/Surface.cpp | 45 ++++++++--- - src/3rdparty/angle/src/libEGL/Surface.h | 4 + - src/3rdparty/angle/src/libEGL/libEGL.cpp | 20 +++++ - .../src/libGLESv2/renderer/d3d/d3d11/Renderer11.h | 2 +- - .../libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp | 74 +++++++++++------- - .../src/libGLESv2/renderer/d3d/d3d11/SwapChain11.h | 2 + - 17 files changed, 189 insertions(+), 131 deletions(-) - -diff --git a/src/3rdparty/angle/include/EGL/eglplatform.h b/src/3rdparty/angle/include/EGL/eglplatform.h -index 3793e57..2eb3674 100644 ---- a/src/3rdparty/angle/include/EGL/eglplatform.h -+++ b/src/3rdparty/angle/include/EGL/eglplatform.h -@@ -73,13 +73,14 @@ - #endif - #include - --typedef HDC EGLNativeDisplayType; - typedef HBITMAP EGLNativePixmapType; - --#if defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP /* Windows Store */ -+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_PC_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) /* Windows Store */ - #include -+typedef IInspectable* EGLNativeDisplayType; - typedef IInspectable* EGLNativeWindowType; - #else -+typedef HDC EGLNativeDisplayType; - typedef HWND EGLNativeWindowType; - #endif - -diff --git a/src/3rdparty/angle/src/common/NativeWindow.h b/src/3rdparty/angle/src/common/NativeWindow.h -index dc5fc8f..9e93aea 100644 ---- a/src/3rdparty/angle/src/common/NativeWindow.h -+++ b/src/3rdparty/angle/src/common/NativeWindow.h -@@ -44,10 +44,11 @@ typedef IDXGIFactory DXGIFactory; - - namespace rx - { -+ - class NativeWindow - { -- public: -- explicit NativeWindow(EGLNativeWindowType window); -+public: -+ explicit NativeWindow(EGLNativeWindowType window, EGLNativeDisplayType display); - - bool initialize(); - bool getClientRect(LPRECT rect); -@@ -58,9 +59,11 @@ class NativeWindow - DXGISwapChain** swapChain); - - inline EGLNativeWindowType getNativeWindow() const { return mWindow; } -+ inline EGLNativeDisplayType getNativeDisplay() const { return mDisplay; } - - private: - EGLNativeWindowType mWindow; -+ EGLNativeDisplayType mDisplay; - - #if defined(ANGLE_ENABLE_WINDOWS_STORE) - std::shared_ptr mImpl; -diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h -index cd12dba..0065ec7 100644 ---- a/src/3rdparty/angle/src/common/platform.h -+++ b/src/3rdparty/angle/src/common/platform.h -@@ -34,7 +34,7 @@ - #endif - - #ifdef ANGLE_PLATFORM_WINDOWS --# if defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP -+# if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_PC_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) - # define ANGLE_ENABLE_WINDOWS_STORE 1 - # endif - # ifndef STRICT -@@ -67,7 +67,9 @@ - # if defined(ANGLE_ENABLE_WINDOWS_STORE) - # include - # if defined(_DEBUG) -+# if (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) - # include -+# endif - # include - # endif - # endif -diff --git a/src/3rdparty/angle/src/common/win32/NativeWindow.cpp b/src/3rdparty/angle/src/common/win32/NativeWindow.cpp -index aa2bfa4..2440747 100644 ---- a/src/3rdparty/angle/src/common/win32/NativeWindow.cpp -+++ b/src/3rdparty/angle/src/common/win32/NativeWindow.cpp -@@ -16,7 +16,7 @@ bool IsValidEGLNativeWindowType(EGLNativeWindowType window) - return (IsWindow(window) == TRUE); - } - --NativeWindow::NativeWindow(EGLNativeWindowType window) : mWindow(window) -+NativeWindow::NativeWindow(EGLNativeWindowType window, EGLNativeDisplayType display) : mWindow(window), mDisplay(display) - { - } - -diff --git a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp -index 0e63fa5..9b65c15 100644 ---- a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp -+++ b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.cpp -@@ -6,21 +6,25 @@ - - // CoreWindowNativeWindow.cpp: NativeWindow for managing ICoreWindow native window types. - --#include -+#include - #include "common/winrt/CoreWindowNativeWindow.h" - using namespace ABI::Windows::Foundation::Collections; - - namespace rx - { -+ -+typedef ITypedEventHandler SizeChangedHandler; -+ - CoreWindowNativeWindow::~CoreWindowNativeWindow() - { - unregisterForSizeChangeEvents(); - } - --bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet *propertySet) -+bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, EGLNativeDisplayType display, IPropertySet *propertySet) - { - ComPtr props = propertySet; - ComPtr win = window; -+ ComPtr displayInformation = display; - SIZE swapChainSize = {}; - bool swapChainSizeSpecified = false; - HRESULT result = S_OK; -@@ -47,6 +51,29 @@ bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet - - if (SUCCEEDED(result)) - { -+ result = displayInformation.As(&mDisplayInformation); -+ } -+ -+ if (SUCCEEDED(result)) -+ { -+#if WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP -+ ComPtr displayInformation2; -+ result = mDisplayInformation.As(&displayInformation2); -+ ASSERT(SUCCEEDED(result)); -+ -+ result = displayInformation2->get_RawPixelsPerViewPixel(&mScaleFactor); -+ ASSERT(SUCCEEDED(result)); -+#else -+ ABI::Windows::Graphics::Display::ResolutionScale resolutionScale; -+ result = mDisplayInformation->get_ResolutionScale(&resolutionScale); -+ ASSERT(SUCCEEDED(result)); -+ -+ mScaleFactor = DOUBLE(resolutionScale) / 100.0; -+#endif -+ } -+ -+ if (SUCCEEDED(result)) -+ { - // If a swapchain size is specfied, then the automatic resize - // behaviors implemented by the host should be disabled. The swapchain - // will be still be scaled when being rendered to fit the bounds -@@ -60,7 +87,14 @@ bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet - } - else - { -- result = GetCoreWindowSizeInPixels(mCoreWindow, &mClientRect); -+ ABI::Windows::Foundation::Rect rect; -+ HRESULT result = mCoreWindow->get_Bounds(&rect); -+ if (SUCCEEDED(result)) -+ { -+ LONG width = std::floor(rect.Width * mScaleFactor + 0.5); -+ LONG height = std::floor(rect.Height * mScaleFactor + 0.5); -+ mClientRect = { 0, 0, width, height }; -+ } - } - } - -@@ -76,12 +110,8 @@ bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet - - bool CoreWindowNativeWindow::registerForSizeChangeEvents() - { -- ComPtr sizeChangedHandler; -- HRESULT result = Microsoft::WRL::MakeAndInitialize(sizeChangedHandler.ReleaseAndGetAddressOf(), this->shared_from_this()); -- if (SUCCEEDED(result)) -- { -- result = mCoreWindow->add_SizeChanged(sizeChangedHandler.Get(), &mSizeChangedEventToken); -- } -+ HRESULT result = mCoreWindow->add_SizeChanged(Callback(this, &CoreWindowNativeWindow::onSizeChanged).Get(), -+ &mSizeChangedEventToken); - - if (SUCCEEDED(result)) - { -@@ -126,7 +156,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, DXGIFactor - if (SUCCEEDED(result)) - { - --#if (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) -+#if (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) // This block is disabled for Qt applications, as the resize events are expected - // Test if swapchain supports resize. On Windows Phone devices, this will return DXGI_ERROR_UNSUPPORTED. On - // other devices DXGI_ERROR_INVALID_CALL should be returned because the combination of flags passed - // (DXGI_SWAP_CHAIN_FLAG_NONPREROTATED | DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE) are invalid flag combinations. -@@ -152,36 +182,19 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, DXGIFactor - return result; - } - --HRESULT GetCoreWindowSizeInPixels(const ComPtr& coreWindow, RECT *windowSize) -+// Basically, this shouldn't be used on Phone -+HRESULT CoreWindowNativeWindow::onSizeChanged(ABI::Windows::UI::Core::ICoreWindow *, ABI::Windows::UI::Core::IWindowSizeChangedEventArgs *e) - { -- ABI::Windows::Foundation::Rect bounds; -- HRESULT result = coreWindow->get_Bounds(&bounds); -- if (SUCCEEDED(result)) -+ ABI::Windows::Foundation::Size size; -+ if (SUCCEEDED(e->get_Size(&size))) - { -- *windowSize = { 0, 0, ConvertDipsToPixels(bounds.Width), ConvertDipsToPixels(bounds.Height) }; -+ SIZE windowSizeInPixels = { -+ std::floor(size.Width * mScaleFactor + 0.5), -+ std::floor(size.Height * mScaleFactor + 0.5) -+ }; -+ setNewClientSize(windowSizeInPixels); - } - -- return result; --} -- --static float GetLogicalDpi() --{ -- ComPtr displayProperties; -- float dpi = 96.0f; -- -- if (SUCCEEDED(GetActivationFactory(HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayProperties).Get(), displayProperties.GetAddressOf()))) -- { -- if (SUCCEEDED(displayProperties->get_LogicalDpi(&dpi))) -- { -- return dpi; -- } -- } -- return dpi; --} -- --long ConvertDipsToPixels(float dips) --{ -- static const float dipsPerInch = 96.0f; -- return lround((dips * GetLogicalDpi() / dipsPerInch)); -+ return S_OK; - } - } -diff --git a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.h b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.h -index 0c6222d..1c55124 100644 ---- a/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.h -+++ b/src/3rdparty/angle/src/common/winrt/CoreWindowNativeWindow.h -@@ -11,67 +11,29 @@ - - #include "common/winrt/InspectableNativeWindow.h" - #include -- --typedef ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CUI__CCore__CCoreWindow_Windows__CUI__CCore__CWindowSizeChangedEventArgs_t IWindowSizeChangedEventHandler; -+#include - - namespace rx - { --long ConvertDipsToPixels(float dips); - - class CoreWindowNativeWindow : public InspectableNativeWindow, public std::enable_shared_from_this - { - public: - ~CoreWindowNativeWindow(); - -- bool initialize(EGLNativeWindowType window, IPropertySet *propertySet); -+ bool initialize(EGLNativeWindowType window, EGLNativeDisplayType display, IPropertySet *propertySet); - bool registerForSizeChangeEvents(); - void unregisterForSizeChangeEvents(); - HRESULT createSwapChain(ID3D11Device *device, DXGIFactory *factory, DXGI_FORMAT format, unsigned int width, unsigned int height, DXGISwapChain **swapChain); - - private: -+ HRESULT onSizeChanged(ABI::Windows::UI::Core::ICoreWindow *, ABI::Windows::UI::Core::IWindowSizeChangedEventArgs *); -+ - ComPtr mCoreWindow; -+ ComPtr mDisplayInformation; - ComPtr> mPropertyMap; - }; - --[uuid(7F924F66-EBAE-40E5-A10B-B8F35E245190)] --class CoreWindowSizeChangedHandler : -- public Microsoft::WRL::RuntimeClass, IWindowSizeChangedEventHandler> --{ -- public: -- CoreWindowSizeChangedHandler() { } -- HRESULT RuntimeClassInitialize(std::shared_ptr host) -- { -- if (!host) -- { -- return E_INVALIDARG; -- } -- -- mHost = host; -- return S_OK; -- } -- -- // IWindowSizeChangedEventHandler -- IFACEMETHOD(Invoke)(ABI::Windows::UI::Core::ICoreWindow *sender, ABI::Windows::UI::Core::IWindowSizeChangedEventArgs *sizeChangedEventArgs) -- { -- std::shared_ptr host = mHost.lock(); -- if (host) -- { -- ABI::Windows::Foundation::Size windowSize; -- if (SUCCEEDED(sizeChangedEventArgs->get_Size(&windowSize))) -- { -- SIZE windowSizeInPixels = { ConvertDipsToPixels(windowSize.Width), ConvertDipsToPixels(windowSize.Height) }; -- host->setNewClientSize(windowSizeInPixels); -- } -- } -- -- return S_OK; -- } -- -- private: -- std::weak_ptr mHost; --}; -- --HRESULT GetCoreWindowSizeInPixels(const ComPtr& coreWindow, RECT *windowSize); - } - - #endif // COMMON_WINRT_COREWINDOWNATIVEWINDOW_H_ -diff --git a/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.cpp b/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.cpp -index c062a48..0589f6d 100644 ---- a/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.cpp -+++ b/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.cpp -@@ -11,9 +11,9 @@ - - namespace rx - { --NativeWindow::NativeWindow(EGLNativeWindowType window) -+NativeWindow::NativeWindow(EGLNativeWindowType window, EGLNativeDisplayType display) -+ : mWindow(window), mDisplay(display) - { -- mWindow = window; - } - - bool NativeWindow::initialize() -@@ -40,7 +40,7 @@ bool NativeWindow::initialize() - mImpl = std::make_shared(); - if (mImpl) - { -- return mImpl->initialize(mWindow, propertySet.Get()); -+ return mImpl->initialize(mWindow, mDisplay, propertySet.Get()); - } - } - else if (IsSwapChainPanel(mWindow, &swapChainPanel)) -@@ -48,7 +48,7 @@ bool NativeWindow::initialize() - mImpl = std::make_shared(); - if (mImpl) - { -- return mImpl->initialize(mWindow, propertySet.Get()); -+ return mImpl->initialize(mWindow, mDisplay, propertySet.Get()); - } - } - else -diff --git a/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.h b/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.h -index c625348..402941a 100644 ---- a/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.h -+++ b/src/3rdparty/angle/src/common/winrt/InspectableNativeWindow.h -@@ -32,13 +32,14 @@ class InspectableNativeWindow - mRequiresSwapChainScaling(false), - mClientRectChanged(false), - mClientRect({0,0,0,0}), -- mNewClientRect({0,0,0,0}) -+ mNewClientRect({0,0,0,0}), -+ mScaleFactor(1.0) - { - mSizeChangedEventToken.value = 0; - } - virtual ~InspectableNativeWindow(){} - -- virtual bool initialize(EGLNativeWindowType window, IPropertySet *propertySet) = 0; -+ virtual bool initialize(EGLNativeWindowType window, EGLNativeDisplayType display, IPropertySet *propertySet) = 0; - virtual HRESULT createSwapChain(ID3D11Device *device, DXGIFactory *factory, DXGI_FORMAT format, unsigned int width, unsigned int height, DXGISwapChain **swapChain) = 0; - virtual bool registerForSizeChangeEvents() = 0; - virtual void unregisterForSizeChangeEvents() = 0; -@@ -49,6 +50,7 @@ class InspectableNativeWindow - if (mClientRectChanged && mSupportsSwapChainResize) - { - mClientRect = mNewClientRect; -+ mClientRectChanged = false; - } - - *rect = mClientRect; -@@ -76,6 +78,7 @@ protected: - RECT mClientRect; - RECT mNewClientRect; - bool mClientRectChanged; -+ DOUBLE mScaleFactor; - - EventRegistrationToken mSizeChangedEventToken; - }; -diff --git a/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.cpp b/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.cpp -index 4e4fb6d..268dfbd 100644 ---- a/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.cpp -+++ b/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.cpp -@@ -18,7 +18,7 @@ SwapChainPanelNativeWindow::~SwapChainPanelNativeWindow() - unregisterForSizeChangeEvents(); - } - --bool SwapChainPanelNativeWindow::initialize(EGLNativeWindowType window, IPropertySet *propertySet) -+bool SwapChainPanelNativeWindow::initialize(EGLNativeWindowType window, EGLNativeDisplayType display, IPropertySet *propertySet) - { - ComPtr props = propertySet; - ComPtr win = window; -diff --git a/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.h b/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.h -index e88f554..5bbf274 100644 ---- a/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.h -+++ b/src/3rdparty/angle/src/common/winrt/SwapChainPanelNativeWindow.h -@@ -18,7 +18,7 @@ class SwapChainPanelNativeWindow : public InspectableNativeWindow, public std::e - public: - ~SwapChainPanelNativeWindow(); - -- bool initialize(EGLNativeWindowType window, IPropertySet *propertySet); -+ bool initialize(EGLNativeWindowType window, EGLNativeDisplayType display, IPropertySet *propertySet); - bool registerForSizeChangeEvents(); - void unregisterForSizeChangeEvents(); - HRESULT createSwapChain(ID3D11Device *device, DXGIFactory *factory, DXGI_FORMAT format, unsigned int width, unsigned int height, DXGISwapChain **swapChain); -diff --git a/src/3rdparty/angle/src/libEGL/Display.h b/src/3rdparty/angle/src/libEGL/Display.h -index 378323a..b3ffcc8 100644 ---- a/src/3rdparty/angle/src/libEGL/Display.h -+++ b/src/3rdparty/angle/src/libEGL/Display.h -@@ -67,6 +67,7 @@ class Display - - const char *getExtensionString() const; - const char *getVendorString() const; -+ EGLNativeDisplayType getDisplayId() const { return mDisplayId; } - - private: - DISALLOW_COPY_AND_ASSIGN(Display); -diff --git a/src/3rdparty/angle/src/libEGL/Surface.cpp b/src/3rdparty/angle/src/libEGL/Surface.cpp -index 3414656..b664a85 100644 ---- a/src/3rdparty/angle/src/libEGL/Surface.cpp -+++ b/src/3rdparty/angle/src/libEGL/Surface.cpp -@@ -31,7 +31,7 @@ namespace egl - { - - Surface::Surface(Display *display, const Config *config, EGLNativeWindowType window, EGLint fixedSize, EGLint width, EGLint height, EGLint postSubBufferSupported) -- : mDisplay(display), mConfig(config), mNativeWindow(window), mPostSubBufferSupported(postSubBufferSupported) -+ : mDisplay(display), mConfig(config), mNativeWindow(window, display->getDisplayId()), mPostSubBufferSupported(postSubBufferSupported) - { - //TODO(jmadill): MANGLE refactor. (note, can't call makeRendererD3D because of dll export issues) - mRenderer = static_cast(mDisplay->getRenderer()); -@@ -47,6 +47,8 @@ Surface::Surface(Display *display, const Config *config, EGLNativeWindowType win - mSwapInterval = -1; - mWidth = width; - mHeight = height; -+ mFixedWidth = mWidth; -+ mFixedHeight = mHeight; - setSwapInterval(1); - mFixedSize = fixedSize; - -@@ -54,7 +56,7 @@ Surface::Surface(Display *display, const Config *config, EGLNativeWindowType win - } - - Surface::Surface(Display *display, const Config *config, HANDLE shareHandle, EGLint width, EGLint height, EGLenum textureFormat, EGLenum textureType) -- : mDisplay(display), mNativeWindow(NULL), mConfig(config), mShareHandle(shareHandle), mWidth(width), mHeight(height), mPostSubBufferSupported(EGL_FALSE) -+ : mDisplay(display), mNativeWindow(NULL, NULL), mConfig(config), mShareHandle(shareHandle), mWidth(width), mHeight(height), mPostSubBufferSupported(EGL_FALSE) - { - //TODO(jmadill): MANGLE refactor. (note, can't call makeRendererD3D because of dll export issues) - mRenderer = static_cast(mDisplay->getRenderer()); -@@ -71,6 +73,8 @@ Surface::Surface(Display *display, const Config *config, HANDLE shareHandle, EGL - setSwapInterval(1); - // This constructor is for offscreen surfaces, which are always fixed-size. - mFixedSize = EGL_TRUE; -+ mFixedWidth = mWidth; -+ mFixedHeight = mHeight; - } - - Surface::~Surface() -@@ -157,10 +161,13 @@ Error Surface::resetSwapChain() - - Error Surface::resizeSwapChain(int backbufferWidth, int backbufferHeight) - { -- ASSERT(backbufferWidth >= 0 && backbufferHeight >= 0); - ASSERT(mSwapChain); - -- EGLint status = mSwapChain->resize(std::max(1, backbufferWidth), std::max(1, backbufferHeight)); -+#if !defined(ANGLE_ENABLE_WINDOWS_STORE) -+ backbufferWidth = std::max(1, backbufferWidth); -+ backbufferHeight = std::max(1, backbufferHeight); -+#endif -+ EGLint status = mSwapChain->resize(backbufferWidth, backbufferHeight); - - if (status == EGL_CONTEXT_LOST) - { -@@ -209,14 +216,14 @@ Error Surface::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) - return Error(EGL_SUCCESS); - } - -- if (x + width > mWidth) -+ if (x + width > abs(mWidth)) - { -- width = mWidth - x; -+ width = abs(mWidth) - x; - } - -- if (y + height > mHeight) -+ if (y + height > abs(mHeight)) - { -- height = mHeight - y; -+ height = abs(mHeight) - y; - } - - if (width == 0 || height == 0) -@@ -224,6 +231,9 @@ Error Surface::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) - return Error(EGL_SUCCESS); - } - -+ ASSERT(width > 0); -+ ASSERT(height > 0); -+ - EGLint status = mSwapChain->swapRect(x, y, width, height); - - if (status == EGL_CONTEXT_LOST) -@@ -352,6 +362,13 @@ bool Surface::checkForOutOfDateSwapChain() - sizeDirty = clientWidth != getWidth() || clientHeight != getHeight(); - } - -+ if (mFixedSize && (mWidth != mFixedWidth || mHeight != mFixedHeight)) -+ { -+ clientWidth = mFixedWidth; -+ clientHeight = mFixedHeight; -+ sizeDirty = true; -+ } -+ - bool wasDirty = (mSwapIntervalDirty || sizeDirty); - - if (mSwapIntervalDirty) -@@ -378,7 +395,7 @@ bool Surface::checkForOutOfDateSwapChain() - - Error Surface::swap() - { -- return swapRect(0, 0, mWidth, mHeight); -+ return swapRect(0, 0, abs(mWidth), abs(mHeight)); - } - - Error Surface::postSubBuffer(EGLint x, EGLint y, EGLint width, EGLint height) -@@ -471,6 +488,16 @@ EGLint Surface::isFixedSize() const - return mFixedSize; - } - -+void Surface::setFixedWidth(EGLint width) -+{ -+ mFixedWidth = width; -+} -+ -+void Surface::setFixedHeight(EGLint height) -+{ -+ mFixedHeight = height; -+} -+ - EGLenum Surface::getFormat() const - { - return mConfig->mRenderTargetFormat; -diff --git a/src/3rdparty/angle/src/libEGL/Surface.h b/src/3rdparty/angle/src/libEGL/Surface.h -index 662fe21..46382d0 100644 ---- a/src/3rdparty/angle/src/libEGL/Surface.h -+++ b/src/3rdparty/angle/src/libEGL/Surface.h -@@ -70,6 +70,8 @@ class Surface - virtual gl::Texture2D *getBoundTexture() const; - - EGLint isFixedSize() const; -+ void setFixedWidth(EGLint width); -+ void setFixedHeight(EGLint height); - - private: - DISALLOW_COPY_AND_ASSIGN(Surface); -@@ -91,6 +93,8 @@ class Surface - const egl::Config *mConfig; // EGL config surface was created with - EGLint mHeight; // Height of surface - EGLint mWidth; // Width of surface -+ EGLint mFixedHeight; // Pending height of the surface -+ EGLint mFixedWidth; // Pending width of the surface - // EGLint horizontalResolution; // Horizontal dot pitch - // EGLint verticalResolution; // Vertical dot pitch - // EGLBoolean largestPBuffer; // If true, create largest pbuffer possible -diff --git a/src/3rdparty/angle/src/libEGL/libEGL.cpp b/src/3rdparty/angle/src/libEGL/libEGL.cpp -index 6110698..dc20d85 100644 ---- a/src/3rdparty/angle/src/libEGL/libEGL.cpp -+++ b/src/3rdparty/angle/src/libEGL/libEGL.cpp -@@ -706,6 +706,26 @@ EGLBoolean __stdcall eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint - return EGL_FALSE; - } - -+ switch (attribute) -+ { -+ case EGL_WIDTH: -+ if (!eglSurface->isFixedSize() || !value) { -+ recordError(egl::Error(EGL_BAD_PARAMETER)); -+ return EGL_FALSE; -+ } -+ eglSurface->setFixedWidth(value); -+ return EGL_TRUE; -+ case EGL_HEIGHT: -+ if (!eglSurface->isFixedSize() || !value) { -+ recordError(egl::Error(EGL_BAD_PARAMETER)); -+ return EGL_FALSE; -+ } -+ eglSurface->setFixedHeight(value); -+ return EGL_TRUE; -+ default: -+ break; -+ } -+ - UNIMPLEMENTED(); // FIXME - - recordError(egl::Error(EGL_SUCCESS)); -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h -index 1655f1d..c789cae 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h -@@ -231,7 +231,7 @@ class Renderer11 : public RendererD3D - - HMODULE mD3d11Module; - HMODULE mDxgiModule; -- HDC mDc; -+ EGLNativeDisplayType mDc; - std::vector mAvailableFeatureLevels; - D3D_DRIVER_TYPE mDriverType; - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp -index 834b7bd..52c8a81 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp -@@ -42,6 +42,8 @@ SwapChain11::SwapChain11(Renderer11 *renderer, NativeWindow nativeWindow, HANDLE - mPassThroughPS = NULL; - mWidth = -1; - mHeight = -1; -+ mRotateL = false; -+ mRotateR = false; - mSwapInterval = 0; - mAppCreatedShareHandle = mShareHandle != NULL; - mPassThroughResourcesInit = false; -@@ -92,10 +94,11 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei - ASSERT(device != NULL); - - // D3D11 does not allow zero size textures -- ASSERT(backbufferWidth >= 1); -- ASSERT(backbufferHeight >= 1); -+ ASSERT(backbufferWidth != 0); -+ ASSERT(backbufferHeight != 0); - - // Preserve the render target content -+#if !defined(ANGLE_ENABLE_WINDOWS_STORE) - ID3D11Texture2D *previousOffscreenTexture = mOffscreenTexture; - if (previousOffscreenTexture) - { -@@ -103,6 +106,7 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei - } - const int previousWidth = mWidth; - const int previousHeight = mHeight; -+#endif - - releaseOffscreenTexture(); - -@@ -136,8 +140,8 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei - D3D11_TEXTURE2D_DESC offscreenTextureDesc = {0}; - mOffscreenTexture->GetDesc(&offscreenTextureDesc); - -- if (offscreenTextureDesc.Width != (UINT)backbufferWidth || -- offscreenTextureDesc.Height != (UINT)backbufferHeight || -+ if (offscreenTextureDesc.Width != UINT(abs(backbufferWidth)) || -+ offscreenTextureDesc.Height != UINT(abs(backbufferHeight)) || - offscreenTextureDesc.Format != backbufferFormatInfo.texFormat || - offscreenTextureDesc.MipLevels != 1 || - offscreenTextureDesc.ArraySize != 1) -@@ -152,8 +156,8 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei - const bool useSharedResource = !mNativeWindow.getNativeWindow() && mRenderer->getShareHandleSupport(); - - D3D11_TEXTURE2D_DESC offscreenTextureDesc = {0}; -- offscreenTextureDesc.Width = backbufferWidth; -- offscreenTextureDesc.Height = backbufferHeight; -+ offscreenTextureDesc.Width = abs(backbufferWidth); -+ offscreenTextureDesc.Height = abs(backbufferHeight); - offscreenTextureDesc.Format = backbufferFormatInfo.texFormat; - offscreenTextureDesc.MipLevels = 1; - offscreenTextureDesc.ArraySize = 1; -@@ -233,8 +237,8 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei - if (mDepthBufferFormat != GL_NONE) - { - D3D11_TEXTURE2D_DESC depthStencilTextureDesc; -- depthStencilTextureDesc.Width = backbufferWidth; -- depthStencilTextureDesc.Height = backbufferHeight; -+ depthStencilTextureDesc.Width = abs(backbufferWidth); -+ depthStencilTextureDesc.Height = abs(backbufferHeight); - depthStencilTextureDesc.Format = depthBufferFormatInfo.texFormat; - depthStencilTextureDesc.MipLevels = 1; - depthStencilTextureDesc.ArraySize = 1; -@@ -286,6 +290,7 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei - mWidth = backbufferWidth; - mHeight = backbufferHeight; - -+#if !defined(ANGLE_ENABLE_WINDOWS_STORE) - if (previousOffscreenTexture != NULL) - { - D3D11_BOX sourceBox = {0}; -@@ -307,6 +312,7 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei - swapRect(0, 0, mWidth, mHeight); - } - } -+#endif - - return EGL_SUCCESS; - } -@@ -320,8 +326,16 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight) - return EGL_BAD_ACCESS; - } - -+ // Windows Phone works around the rotation limitation by using negative values for the swap chain size -+#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) -+ mRotateL = backbufferWidth < 0; // Landscape/InvertedLandscape -+ mRotateR = backbufferHeight < 0; // InvertedPortrait/InvertedLandscape -+ backbufferWidth = abs(backbufferWidth); -+ backbufferHeight = abs(backbufferHeight); -+#endif -+ - // EGL allows creating a surface with 0x0 dimension, however, DXGI does not like 0x0 swapchains -- if (backbufferWidth < 1 || backbufferHeight < 1) -+ if (backbufferWidth == 0 || backbufferHeight == 0) - { - return EGL_SUCCESS; - } -@@ -329,6 +343,7 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight) - // Can only call resize if we have already created our swap buffer and resources - ASSERT(mSwapChain && mBackBufferTexture && mBackBufferRTView); - -+#if !defined(ANGLE_ENABLE_WINDOWS_STORE) || (WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) // The swap chain is not directly resized on Windows Phone - SafeRelease(mBackBufferTexture); - SafeRelease(mBackBufferRTView); - -@@ -366,6 +381,7 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight) - { - d3d11::SetDebugName(mBackBufferRTView, "Back buffer render target"); - } -+#endif - - return resetOffscreenTexture(backbufferWidth, backbufferHeight); - } -@@ -512,16 +528,6 @@ EGLint SwapChain11::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) - ID3D11Device *device = mRenderer->getDevice(); - ID3D11DeviceContext *deviceContext = mRenderer->getDeviceContext(); - -- // Set vertices -- D3D11_MAPPED_SUBRESOURCE mappedResource; -- HRESULT result = deviceContext->Map(mQuadVB, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); -- if (FAILED(result)) -- { -- return EGL_BAD_ACCESS; -- } -- -- d3d11::PositionTexCoordVertex *vertices = static_cast(mappedResource.pData); -- - // Create a quad in homogeneous coordinates - float x1 = (x / float(mWidth)) * 2.0f - 1.0f; - float y1 = (y / float(mHeight)) * 2.0f - 1.0f; -@@ -533,10 +539,23 @@ EGLint SwapChain11::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) - float u2 = (x + width) / float(mWidth); - float v2 = (y + height) / float(mHeight); - -- d3d11::SetPositionTexCoordVertex(&vertices[0], x1, y1, u1, v1); -- d3d11::SetPositionTexCoordVertex(&vertices[1], x1, y2, u1, v2); -- d3d11::SetPositionTexCoordVertex(&vertices[2], x2, y1, u2, v1); -- d3d11::SetPositionTexCoordVertex(&vertices[3], x2, y2, u2, v2); -+ const bool rotateL = mRotateL; -+ const bool rotateR = mRotateR; -+ -+ // Set vertices -+ D3D11_MAPPED_SUBRESOURCE mappedResource; -+ HRESULT result = deviceContext->Map(mQuadVB, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); -+ if (FAILED(result)) -+ { -+ return EGL_BAD_ACCESS; -+ } -+ -+ d3d11::PositionTexCoordVertex *vertices = static_cast(mappedResource.pData); -+ -+ d3d11::SetPositionTexCoordVertex(&vertices[0], x1, y1, rotateL ? u2 : u1, rotateR ? v2 : v1); -+ d3d11::SetPositionTexCoordVertex(&vertices[1], x1, y2, rotateR ? u2 : u1, rotateL ? v1 : v2); -+ d3d11::SetPositionTexCoordVertex(&vertices[2], x2, y1, rotateR ? u1 : u2, rotateL ? v2 : v1); -+ d3d11::SetPositionTexCoordVertex(&vertices[3], x2, y2, rotateL ? u1 : u2, rotateR ? v1 : v2); - - deviceContext->Unmap(mQuadVB, 0); - -@@ -564,10 +583,11 @@ EGLint SwapChain11::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) - - // Set the viewport - D3D11_VIEWPORT viewport; -- viewport.TopLeftX = 0; -- viewport.TopLeftY = 0; -- viewport.Width = mWidth; -- viewport.Height = mHeight; -+ viewport.TopLeftX = 0.0f; -+ viewport.TopLeftY = 0.0f; -+ const bool invertViewport = (mRotateL || mRotateR) && !(mRotateL && mRotateR); -+ viewport.Width = FLOAT(invertViewport ? mHeight : mWidth); -+ viewport.Height = FLOAT(invertViewport ? mWidth : mHeight); - viewport.MinDepth = 0.0f; - viewport.MaxDepth = 1.0f; - deviceContext->RSSetViewports(1, &viewport); -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.h -index 22401d8..77509ed 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.h -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.h -@@ -52,6 +52,8 @@ class SwapChain11 : public SwapChain - Renderer11 *mRenderer; - EGLint mHeight; - EGLint mWidth; -+ bool mRotateL; -+ bool mRotateR; - bool mAppCreatedShareHandle; - unsigned int mSwapInterval; - bool mPassThroughResourcesInit; --- -1.9.4.msysgit.1 - diff --git a/mingw-w64-angleproject-git/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch b/mingw-w64-angleproject-git/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch deleted file mode 100644 index dd2768cf3e..0000000000 --- a/mingw-w64-angleproject-git/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch +++ /dev/null @@ -1,637 +0,0 @@ -From 829bf86c57357d3c8ec598b92fcfdb1849e84075 Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Tue, 11 Nov 2014 17:11:54 +0200 -Subject: [PATCH 10/16] ANGLE: Enable D3D11 for feature level 9 cards - -Enable use of ANGLE on lower-end hardware, such as Surface RT and -Windows Phone 8. - -Change-Id: Ice536802e4eedc1d264abd0dd65960638fce59e4 ---- - src/3rdparty/angle/src/libGLESv2/angletypes.cpp | 6 +- - .../src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp | 69 ++++--- - .../src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp | 4 +- - .../src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp | 7 +- - .../renderer/d3d/d3d11/PixelTransfer11.cpp | 9 +- - .../libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | 226 +++++++++++++-------- - .../src/libGLESv2/renderer/d3d/d3d11/Renderer11.h | 1 + - .../renderer/d3d/d3d11/TextureStorage11.cpp | 4 +- - .../libGLESv2/renderer/d3d/d3d11/formatutils11.cpp | 4 +- - .../renderer/d3d/d3d11/renderer11_utils.cpp | 2 +- - 10 files changed, 208 insertions(+), 124 deletions(-) - -diff --git a/src/3rdparty/angle/src/libGLESv2/angletypes.cpp b/src/3rdparty/angle/src/libGLESv2/angletypes.cpp -index 6fd02e0..5a0cfc5 100644 ---- a/src/3rdparty/angle/src/libGLESv2/angletypes.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/angletypes.cpp -@@ -12,6 +12,8 @@ - #include "libGLESv2/State.h" - #include "libGLESv2/VertexArray.h" - -+#include -+ - namespace gl - { - -@@ -24,8 +26,8 @@ SamplerState::SamplerState() - maxAnisotropy(1.0f), - baseLevel(0), - maxLevel(1000), -- minLod(-1000.0f), -- maxLod(1000.0f), -+ minLod(-FLT_MAX), -+ maxLod(FLT_MAX), - compareMode(GL_NONE), - compareFunc(GL_LEQUAL), - swizzleRed(GL_RED), -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp -index 91e7552..06aea9b 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp -@@ -209,7 +209,7 @@ Blit11::Blit11(Renderer11 *renderer) - pointSamplerDesc.BorderColor[2] = 0.0f; - pointSamplerDesc.BorderColor[3] = 0.0f; - pointSamplerDesc.MinLOD = 0.0f; -- pointSamplerDesc.MaxLOD = 0.0f; -+ pointSamplerDesc.MaxLOD = mRenderer->isLevel9() ? D3D11_FLOAT32_MAX : 0.0f; - - result = device->CreateSamplerState(&pointSamplerDesc, &mPointSampler); - ASSERT(SUCCEEDED(result)); -@@ -228,7 +228,7 @@ Blit11::Blit11(Renderer11 *renderer) - linearSamplerDesc.BorderColor[2] = 0.0f; - linearSamplerDesc.BorderColor[3] = 0.0f; - linearSamplerDesc.MinLOD = 0.0f; -- linearSamplerDesc.MaxLOD = 0.0f; -+ linearSamplerDesc.MaxLOD = mRenderer->isLevel9() ? D3D11_FLOAT32_MAX : 0.0f; - - result = device->CreateSamplerState(&linearSamplerDesc, &mLinearSampler); - ASSERT(SUCCEEDED(result)); -@@ -290,28 +290,31 @@ Blit11::Blit11(Renderer11 *renderer) - ASSERT(SUCCEEDED(result)); - d3d11::SetDebugName(mQuad2DVS, "Blit11 2D vertex shader"); - -- result = device->CreatePixelShader(g_PS_PassthroughDepth2D, ArraySize(g_PS_PassthroughDepth2D), NULL, &mDepthPS); -- ASSERT(SUCCEEDED(result)); -- d3d11::SetDebugName(mDepthPS, "Blit11 2D depth pixel shader"); -- -- D3D11_INPUT_ELEMENT_DESC quad3DLayout[] = -+ if (!renderer->isLevel9()) - { -- { "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, -- { "LAYER", 0, DXGI_FORMAT_R32_UINT, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0 }, -- { "TEXCOORD", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 }, -- }; -- -- result = device->CreateInputLayout(quad3DLayout, ArraySize(quad3DLayout), g_VS_Passthrough3D, ArraySize(g_VS_Passthrough3D), &mQuad3DIL); -- ASSERT(SUCCEEDED(result)); -- d3d11::SetDebugName(mQuad3DIL, "Blit11 3D input layout"); -- -- result = device->CreateVertexShader(g_VS_Passthrough3D, ArraySize(g_VS_Passthrough3D), NULL, &mQuad3DVS); -- ASSERT(SUCCEEDED(result)); -- d3d11::SetDebugName(mQuad3DVS, "Blit11 3D vertex shader"); -+ result = device->CreatePixelShader(g_PS_PassthroughDepth2D, ArraySize(g_PS_PassthroughDepth2D), NULL, &mDepthPS); -+ ASSERT(SUCCEEDED(result)); -+ d3d11::SetDebugName(mDepthPS, "Blit11 2D depth pixel shader"); - -- result = device->CreateGeometryShader(g_GS_Passthrough3D, ArraySize(g_GS_Passthrough3D), NULL, &mQuad3DGS); -- ASSERT(SUCCEEDED(result)); -- d3d11::SetDebugName(mQuad3DGS, "Renderer11 copy 3D texture geometry shader"); -+ D3D11_INPUT_ELEMENT_DESC quad3DLayout[] = -+ { -+ { "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, -+ { "LAYER", 0, DXGI_FORMAT_R32_UINT, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0 }, -+ { "TEXCOORD", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 }, -+ }; -+ -+ result = device->CreateInputLayout(quad3DLayout, ArraySize(quad3DLayout), g_VS_Passthrough3D, ArraySize(g_VS_Passthrough3D), &mQuad3DIL); -+ ASSERT(SUCCEEDED(result)); -+ d3d11::SetDebugName(mQuad3DIL, "Blit11 3D input layout"); -+ -+ result = device->CreateVertexShader(g_VS_Passthrough3D, ArraySize(g_VS_Passthrough3D), NULL, &mQuad3DVS); -+ ASSERT(SUCCEEDED(result)); -+ d3d11::SetDebugName(mQuad3DVS, "Blit11 3D vertex shader"); -+ -+ result = device->CreateGeometryShader(g_GS_Passthrough3D, ArraySize(g_GS_Passthrough3D), NULL, &mQuad3DGS); -+ ASSERT(SUCCEEDED(result)); -+ d3d11::SetDebugName(mQuad3DGS, "Renderer11 copy 3D texture geometry shader"); -+ } - - buildShaderMap(); - -@@ -970,22 +973,27 @@ void Blit11::buildShaderMap() - ID3D11Device *device = mRenderer->getDevice(); - - add2DBlitShaderToMap(GL_RGBA, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2D, "Blit11 2D RGBA pixel shader" )); -- add2DBlitShaderToMap(GL_RGBA_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2DUI, "Blit11 2D RGBA UI pixel shader" )); -- add2DBlitShaderToMap(GL_RGBA_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRGBA2DI, "Blit11 2D RGBA I pixel shader" )); - add2DBlitShaderToMap(GL_BGRA_EXT, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2D, "Blit11 2D BGRA pixel shader" )); - add2DBlitShaderToMap(GL_RGB, false, d3d11::CompilePS(device, g_PS_PassthroughRGB2D, "Blit11 2D RGB pixel shader" )); -- add2DBlitShaderToMap(GL_RGB_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRGB2DUI, "Blit11 2D RGB UI pixel shader" )); -- add2DBlitShaderToMap(GL_RGB_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRGB2DI, "Blit11 2D RGB I pixel shader" )); - add2DBlitShaderToMap(GL_RG, false, d3d11::CompilePS(device, g_PS_PassthroughRG2D, "Blit11 2D RG pixel shader" )); -- add2DBlitShaderToMap(GL_RG_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRG2DUI, "Blit11 2D RG UI pixel shader" )); -- add2DBlitShaderToMap(GL_RG_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRG2DI, "Blit11 2D RG I pixel shader" )); - add2DBlitShaderToMap(GL_RED, false, d3d11::CompilePS(device, g_PS_PassthroughR2D, "Blit11 2D R pixel shader" )); -- add2DBlitShaderToMap(GL_RED_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughR2DUI, "Blit11 2D R UI pixel shader" )); -- add2DBlitShaderToMap(GL_RED_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughR2DI, "Blit11 2D R I pixel shader" )); - add2DBlitShaderToMap(GL_ALPHA, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2D, "Blit11 2D alpha pixel shader" )); - add2DBlitShaderToMap(GL_LUMINANCE, false, d3d11::CompilePS(device, g_PS_PassthroughLum2D, "Blit11 2D lum pixel shader" )); - add2DBlitShaderToMap(GL_LUMINANCE_ALPHA, false, d3d11::CompilePS(device, g_PS_PassthroughLumAlpha2D, "Blit11 2D luminance alpha pixel shader")); - -+ addSwizzleShaderToMap(GL_FLOAT, D3D_SRV_DIMENSION_TEXTURE2D, d3d11::CompilePS(device, g_PS_SwizzleF2D, "Blit11 2D F swizzle pixel shader" )); -+ -+ if (mRenderer->isLevel9()) -+ return; -+ -+ add2DBlitShaderToMap(GL_RGBA_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2DUI, "Blit11 2D RGBA UI pixel shader" )); -+ add2DBlitShaderToMap(GL_RGBA_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRGBA2DI, "Blit11 2D RGBA I pixel shader" )); -+ add2DBlitShaderToMap(GL_RGB_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRGB2DUI, "Blit11 2D RGB UI pixel shader" )); -+ add2DBlitShaderToMap(GL_RGB_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRGB2DI, "Blit11 2D RGB I pixel shader" )); -+ add2DBlitShaderToMap(GL_RG_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRG2DUI, "Blit11 2D RG UI pixel shader" )); -+ add2DBlitShaderToMap(GL_RG_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRG2DI, "Blit11 2D RG I pixel shader" )); -+ add2DBlitShaderToMap(GL_RED_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughR2DUI, "Blit11 2D R UI pixel shader" )); -+ add2DBlitShaderToMap(GL_RED_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughR2DI, "Blit11 2D R I pixel shader" )); - add3DBlitShaderToMap(GL_RGBA, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA3D, "Blit11 3D RGBA pixel shader" )); - add3DBlitShaderToMap(GL_RGBA_INTEGER, false, d3d11::CompilePS(device, g_PS_PassthroughRGBA3DUI, "Blit11 3D UI RGBA pixel shader" )); - add3DBlitShaderToMap(GL_RGBA_INTEGER, true, d3d11::CompilePS(device, g_PS_PassthroughRGBA3DI, "Blit11 3D I RGBA pixel shader" )); -@@ -1003,7 +1011,6 @@ void Blit11::buildShaderMap() - add3DBlitShaderToMap(GL_LUMINANCE, false, d3d11::CompilePS(device, g_PS_PassthroughLum3D, "Blit11 3D luminance pixel shader" )); - add3DBlitShaderToMap(GL_LUMINANCE_ALPHA, false, d3d11::CompilePS(device, g_PS_PassthroughLumAlpha3D, "Blit11 3D luminance alpha pixel shader")); - -- addSwizzleShaderToMap(GL_FLOAT, D3D_SRV_DIMENSION_TEXTURE2D, d3d11::CompilePS(device, g_PS_SwizzleF2D, "Blit11 2D F swizzle pixel shader" )); - addSwizzleShaderToMap(GL_UNSIGNED_INT, D3D_SRV_DIMENSION_TEXTURE2D, d3d11::CompilePS(device, g_PS_SwizzleUI2D, "Blit11 2D UI swizzle pixel shader")); - addSwizzleShaderToMap(GL_INT, D3D_SRV_DIMENSION_TEXTURE2D, d3d11::CompilePS(device, g_PS_SwizzleI2D, "Blit11 2D I swizzle pixel shader" )); - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp -index 2d5fa3c..5aab379 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp -@@ -753,7 +753,9 @@ void Buffer11::NativeBuffer11::fillBufferDesc(D3D11_BUFFER_DESC* bufferDesc, Ren - - case BUFFER_USAGE_VERTEX_OR_TRANSFORM_FEEDBACK: - bufferDesc->Usage = D3D11_USAGE_DEFAULT; -- bufferDesc->BindFlags = D3D11_BIND_VERTEX_BUFFER | D3D11_BIND_STREAM_OUTPUT; -+ bufferDesc->BindFlags = D3D11_BIND_VERTEX_BUFFER; -+ if (!renderer->isLevel9()) -+ bufferDesc->BindFlags |= D3D11_BIND_STREAM_OUTPUT; - bufferDesc->CPUAccessFlags = 0; - break; - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp -index 4630762..7185a05 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp -@@ -104,7 +104,7 @@ Clear11::Clear11(Renderer11 *renderer) - rsDesc.DepthBias = 0; - rsDesc.DepthBiasClamp = 0.0f; - rsDesc.SlopeScaledDepthBias = 0.0f; -- rsDesc.DepthClipEnable = FALSE; -+ rsDesc.DepthClipEnable = renderer->isLevel9(); - rsDesc.ScissorEnable = FALSE; - rsDesc.MultisampleEnable = FALSE; - rsDesc.AntialiasedLineEnable = FALSE; -@@ -114,6 +114,11 @@ Clear11::Clear11(Renderer11 *renderer) - d3d11::SetDebugName(mRasterizerState, "Clear11 masked clear rasterizer state"); - - mFloatClearShader = CreateClearShader(device, DXGI_FORMAT_R32G32B32A32_FLOAT, g_VS_ClearFloat, g_PS_ClearFloat); -+ if (mRenderer->isLevel9()) { -+ memset(&mUintClearShader, 0, sizeof(ClearShader)); -+ memset(&mIntClearShader, 0, sizeof(ClearShader)); -+ return; -+ } - mUintClearShader = CreateClearShader(device, DXGI_FORMAT_R32G32B32A32_UINT, g_VS_ClearUint, g_PS_ClearUint ); - mIntClearShader = CreateClearShader(device, DXGI_FORMAT_R32G32B32A32_SINT, g_VS_ClearSint, g_PS_ClearSint ); - } -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp -index a4072d8..6a3d347 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp -@@ -133,10 +133,13 @@ gl::Error PixelTransfer11::loadResources() - return gl::Error(GL_OUT_OF_MEMORY, "Failed to create internal buffer to texture vertex shader."); - } - -- mBufferToTextureGS = d3d11::CompileGS(device, g_GS_BufferToTexture, "BufferToTexture GS"); -- if (!mBufferToTextureGS) -+ if (!mRenderer->isLevel9()) - { -- return gl::Error(GL_OUT_OF_MEMORY, "Failed to create internal buffer to texture geometry shader."); -+ mBufferToTextureGS = d3d11::CompileGS(device, g_GS_BufferToTexture, "BufferToTexture GS"); -+ if (!mBufferToTextureGS) -+ { -+ return gl::Error(GL_OUT_OF_MEMORY, "Failed to create internal buffer to texture geometry shader."); -+ } - } - - gl::Error error = buildShaderMap(); -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -index ffc6cc9..f6ba930 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -@@ -153,6 +153,24 @@ Renderer11::Renderer11(egl::Display *display, EGLNativeDisplayType hDc, const eg - } - } - -+#if !defined(ANGLE_ENABLE_D3D9) -+ if (requestedMajorVersion == EGL_DONT_CARE || requestedMajorVersion >= 9) -+ { -+ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 3) -+ { -+ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3); -+ } -+ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 2) -+ { -+ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_2); -+ } -+ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 1) -+ { -+ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_1); -+ } -+ } -+#endif -+ - mDriverType = (attributes.get(EGL_PLATFORM_ANGLE_USE_WARP_ANGLE, EGL_FALSE) == EGL_TRUE) ? D3D_DRIVER_TYPE_WARP - : D3D_DRIVER_TYPE_HARDWARE; - } -@@ -1170,6 +1188,83 @@ gl::Error Renderer11::drawElements(GLenum mode, GLsizei count, GLenum type, cons - return gl::Error(GL_NO_ERROR); - } - } -+template -+static void fillLineLoopIndices(GLenum type, GLsizei count, const GLvoid *indices, T *data) -+{ -+ switch (type) -+ { -+ case GL_NONE: // Non-indexed draw -+ for (int i = 0; i < count; i++) -+ { -+ data[i] = i; -+ } -+ data[count] = 0; -+ break; -+ case GL_UNSIGNED_BYTE: -+ for (int i = 0; i < count; i++) -+ { -+ data[i] = static_cast(indices)[i]; -+ } -+ data[count] = static_cast(indices)[0]; -+ break; -+ case GL_UNSIGNED_SHORT: -+ for (int i = 0; i < count; i++) -+ { -+ data[i] = static_cast(indices)[i]; -+ } -+ data[count] = static_cast(indices)[0]; -+ break; -+ case GL_UNSIGNED_INT: -+ for (int i = 0; i < count; i++) -+ { -+ data[i] = static_cast(indices)[i]; -+ } -+ data[count] = static_cast(indices)[0]; -+ break; -+ default: UNREACHABLE(); -+ } -+} -+ -+template -+static void fillTriangleFanIndices(GLenum type, unsigned int numTris, const GLvoid *indices, T *data) -+{ -+ switch (type) -+ { -+ case GL_NONE: // Non-indexed draw -+ for (unsigned int i = 0; i < numTris; i++) -+ { -+ data[i*3 + 0] = 0; -+ data[i*3 + 1] = i + 1; -+ data[i*3 + 2] = i + 2; -+ } -+ break; -+ case GL_UNSIGNED_BYTE: -+ for (unsigned int i = 0; i < numTris; i++) -+ { -+ data[i*3 + 0] = static_cast(indices)[0]; -+ data[i*3 + 1] = static_cast(indices)[i + 1]; -+ data[i*3 + 2] = static_cast(indices)[i + 2]; -+ } -+ break; -+ case GL_UNSIGNED_SHORT: -+ for (unsigned int i = 0; i < numTris; i++) -+ { -+ data[i*3 + 0] = static_cast(indices)[0]; -+ data[i*3 + 1] = static_cast(indices)[i + 1]; -+ data[i*3 + 2] = static_cast(indices)[i + 2]; -+ } -+ break; -+ case GL_UNSIGNED_INT: -+ for (unsigned int i = 0; i < numTris; i++) -+ { -+ data[i*3 + 0] = static_cast(indices)[0]; -+ data[i*3 + 1] = static_cast(indices)[i + 1]; -+ data[i*3 + 2] = static_cast(indices)[i + 2]; -+ } -+ break; -+ default: UNREACHABLE(); -+ } -+} - - gl::Error Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices, int minIndex, gl::Buffer *elementArrayBuffer) - { -@@ -1189,10 +1284,13 @@ gl::Error Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *ind - indices = bufferData + offset; - } - -+ // TODO: some level 9 hardware supports 32-bit indices; test and store support instead -+ const int indexType = isLevel9() ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT; -+ - if (!mLineLoopIB) - { - mLineLoopIB = new StreamingIndexBufferInterface(this); -- gl::Error error = mLineLoopIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, GL_UNSIGNED_INT); -+ gl::Error error = mLineLoopIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, indexType); - if (error.isError()) - { - SafeDelete(mLineLoopIB); -@@ -1203,7 +1301,8 @@ gl::Error Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *ind - // Checked by Renderer11::applyPrimitiveType - ASSERT(count >= 0); - -- if (static_cast(count) + 1 > (std::numeric_limits::max() / sizeof(unsigned int))) -+ int indexTypeSize = indexType == GL_UNSIGNED_SHORT ? sizeof(unsigned short) : sizeof(unsigned int); -+ if (static_cast(count) + 1 > (std::numeric_limits::max() / indexTypeSize)) - { - return gl::Error(GL_OUT_OF_MEMORY, "Failed to create a 32-bit looping index buffer for GL_LINE_LOOP, too many indices required."); - } -@@ -1223,42 +1322,12 @@ gl::Error Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *ind - return error; - } - -- unsigned int *data = reinterpret_cast(mappedMemory); -+ if (indexType == GL_UNSIGNED_SHORT) -+ fillLineLoopIndices(type, count, indices, reinterpret_cast(mappedMemory)); -+ else -+ fillLineLoopIndices(type, count, indices, reinterpret_cast(mappedMemory)); - unsigned int indexBufferOffset = offset; - -- switch (type) -- { -- case GL_NONE: // Non-indexed draw -- for (int i = 0; i < count; i++) -- { -- data[i] = i; -- } -- data[count] = 0; -- break; -- case GL_UNSIGNED_BYTE: -- for (int i = 0; i < count; i++) -- { -- data[i] = static_cast(indices)[i]; -- } -- data[count] = static_cast(indices)[0]; -- break; -- case GL_UNSIGNED_SHORT: -- for (int i = 0; i < count; i++) -- { -- data[i] = static_cast(indices)[i]; -- } -- data[count] = static_cast(indices)[0]; -- break; -- case GL_UNSIGNED_INT: -- for (int i = 0; i < count; i++) -- { -- data[i] = static_cast(indices)[i]; -- } -- data[count] = static_cast(indices)[0]; -- break; -- default: UNREACHABLE(); -- } -- - error = mLineLoopIB->unmapBuffer(); - if (error.isError()) - { -@@ -1300,10 +1369,12 @@ gl::Error Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid * - indices = bufferData + offset; - } - -+ const int indexType = isLevel9() ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT; -+ - if (!mTriangleFanIB) - { - mTriangleFanIB = new StreamingIndexBufferInterface(this); -- gl::Error error = mTriangleFanIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, GL_UNSIGNED_INT); -+ gl::Error error = mTriangleFanIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, indexType); - if (error.isError()) - { - SafeDelete(mTriangleFanIB); -@@ -1316,13 +1387,14 @@ gl::Error Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid * - - const unsigned int numTris = count - 2; - -- if (numTris > (std::numeric_limits::max() / (sizeof(unsigned int) * 3))) -+ int indexTypeSize = indexType == GL_UNSIGNED_SHORT ? sizeof(unsigned short) : sizeof(unsigned int); -+ if (numTris > (std::numeric_limits::max() / (indexTypeSize * 3))) - { - return gl::Error(GL_OUT_OF_MEMORY, "Failed to create a scratch index buffer for GL_TRIANGLE_FAN, too many indices required."); - } - -- const unsigned int spaceNeeded = (numTris * 3) * sizeof(unsigned int); -- gl::Error error = mTriangleFanIB->reserveBufferSpace(spaceNeeded, GL_UNSIGNED_INT); -+ const unsigned int spaceNeeded = (numTris * 3) * indexTypeSize; -+ gl::Error error = mTriangleFanIB->reserveBufferSpace(spaceNeeded, indexType); - if (error.isError()) - { - return error; -@@ -1336,45 +1408,12 @@ gl::Error Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid * - return error; - } - -- unsigned int *data = reinterpret_cast(mappedMemory); -- unsigned int indexBufferOffset = offset; -+ if (indexType == GL_UNSIGNED_SHORT) -+ fillTriangleFanIndices(type, numTris, indices, reinterpret_cast(mappedMemory)); -+ else -+ fillTriangleFanIndices(type, numTris, indices, reinterpret_cast(mappedMemory)); - -- switch (type) -- { -- case GL_NONE: // Non-indexed draw -- for (unsigned int i = 0; i < numTris; i++) -- { -- data[i*3 + 0] = 0; -- data[i*3 + 1] = i + 1; -- data[i*3 + 2] = i + 2; -- } -- break; -- case GL_UNSIGNED_BYTE: -- for (unsigned int i = 0; i < numTris; i++) -- { -- data[i*3 + 0] = static_cast(indices)[0]; -- data[i*3 + 1] = static_cast(indices)[i + 1]; -- data[i*3 + 2] = static_cast(indices)[i + 2]; -- } -- break; -- case GL_UNSIGNED_SHORT: -- for (unsigned int i = 0; i < numTris; i++) -- { -- data[i*3 + 0] = static_cast(indices)[0]; -- data[i*3 + 1] = static_cast(indices)[i + 1]; -- data[i*3 + 2] = static_cast(indices)[i + 2]; -- } -- break; -- case GL_UNSIGNED_INT: -- for (unsigned int i = 0; i < numTris; i++) -- { -- data[i*3 + 0] = static_cast(indices)[0]; -- data[i*3 + 1] = static_cast(indices)[i + 1]; -- data[i*3 + 2] = static_cast(indices)[i + 2]; -- } -- break; -- default: UNREACHABLE(); -- } -+ unsigned int indexBufferOffset = offset; - - error = mTriangleFanIB->unmapBuffer(); - if (error.isError()) -@@ -1634,7 +1673,7 @@ gl::Error Renderer11::applyUniforms(const ProgramImpl &program, const std::vecto - } - - // needed for the point sprite geometry shader -- if (mCurrentGeometryConstantBuffer != mDriverConstantBufferPS) -+ if (mFeatureLevel >= D3D_FEATURE_LEVEL_10_0 && mCurrentGeometryConstantBuffer != mDriverConstantBufferPS) - { - mDeviceContext->GSSetConstantBuffers(0, 1, &mDriverConstantBufferPS); - mCurrentGeometryConstantBuffer = mDriverConstantBufferPS; -@@ -1938,7 +1977,10 @@ int Renderer11::getMajorShaderModel() const - { - case D3D_FEATURE_LEVEL_11_0: return D3D11_SHADER_MAJOR_VERSION; // 5 - case D3D_FEATURE_LEVEL_10_1: return D3D10_1_SHADER_MAJOR_VERSION; // 4 -- case D3D_FEATURE_LEVEL_10_0: return D3D10_SHADER_MAJOR_VERSION; // 4 -+ case D3D_FEATURE_LEVEL_10_0: -+ case D3D_FEATURE_LEVEL_9_3: -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: return D3D10_SHADER_MAJOR_VERSION; // 4 - default: UNREACHABLE(); return 0; - } - } -@@ -1949,7 +1991,10 @@ int Renderer11::getMinorShaderModel() const - { - case D3D_FEATURE_LEVEL_11_0: return D3D11_SHADER_MINOR_VERSION; // 0 - case D3D_FEATURE_LEVEL_10_1: return D3D10_1_SHADER_MINOR_VERSION; // 1 -- case D3D_FEATURE_LEVEL_10_0: return D3D10_SHADER_MINOR_VERSION; // 0 -+ case D3D_FEATURE_LEVEL_10_0: -+ case D3D_FEATURE_LEVEL_9_3: -+ case D3D_FEATURE_LEVEL_9_2: -+ case D3D_FEATURE_LEVEL_9_1: return D3D10_SHADER_MINOR_VERSION; // 0 - default: UNREACHABLE(); return 0; - } - } -@@ -2455,6 +2500,7 @@ gl::Error Renderer11::compileToExecutable(gl::InfoLog &infoLog, const std::strin - - unsigned int profileMajorVersion = 0; - unsigned int profileMinorVersion = 0; -+ const char *profileSuffix = NULL; - switch (mFeatureLevel) - { - case D3D_FEATURE_LEVEL_11_0: -@@ -2469,12 +2515,30 @@ gl::Error Renderer11::compileToExecutable(gl::InfoLog &infoLog, const std::strin - profileMajorVersion = 4; - profileMinorVersion = 0; - break; -+ case D3D_FEATURE_LEVEL_9_3: -+ profileMajorVersion = 4; -+ profileMinorVersion = 0; -+ profileSuffix = "_level_9_3"; -+ break; -+ case D3D_FEATURE_LEVEL_9_2: -+ profileMajorVersion = 4; -+ profileMinorVersion = 0; -+ profileSuffix = "_level_9_2"; -+ break; -+ case D3D_FEATURE_LEVEL_9_1: -+ profileMajorVersion = 4; -+ profileMinorVersion = 0; -+ profileSuffix = "_level_9_1"; -+ break; -+ break; - default: - UNREACHABLE(); - return gl::Error(GL_INVALID_OPERATION); - } - - std::string profile = FormatString("%s_%u_%u", profileType, profileMajorVersion, profileMinorVersion); -+ if (profileSuffix) -+ profile += profileSuffix; - - UINT flags = D3DCOMPILE_OPTIMIZATION_LEVEL2; - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h -index c789cae..d44bd2f 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h -@@ -188,6 +188,7 @@ class Renderer11 : public RendererD3D - ID3D11Device *getDevice() { return mDevice; } - ID3D11DeviceContext *getDeviceContext() { return mDeviceContext; }; - DXGIFactory *getDxgiFactory() { return mDxgiFactory; }; -+ bool isLevel9() { return mFeatureLevel <= D3D_FEATURE_LEVEL_9_3; } - - Blit11 *getBlitter() { return mBlit; } - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.cpp -index 4287918..74af27e 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.cpp -@@ -744,7 +744,7 @@ gl::Error TextureStorage11_2D::getResource(ID3D11Resource **outResource) - D3D11_TEXTURE2D_DESC desc; - desc.Width = mTextureWidth; // Compressed texture size constraints? - desc.Height = mTextureHeight; -- desc.MipLevels = mMipLevels; -+ desc.MipLevels = mRenderer->isLevel9() ? 1 : mMipLevels; - desc.ArraySize = 1; - desc.Format = mTextureFormat; - desc.SampleDesc.Count = 1; -@@ -863,7 +863,7 @@ gl::Error TextureStorage11_2D::createSRV(int baseLevel, int mipLevels, DXGI_FORM - srvDesc.Format = format; - srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; - srvDesc.Texture2D.MostDetailedMip = mTopLevel + baseLevel; -- srvDesc.Texture2D.MipLevels = mipLevels; -+ srvDesc.Texture2D.MipLevels = mRenderer->isLevel9() ? -1 : mipLevels; - - ID3D11Device *device = mRenderer->getDevice(); - HRESULT result = device->CreateShaderResourceView(texture, &srvDesc, outSRV); -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/formatutils11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/formatutils11.cpp -index 1ea916d..90a879e 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/formatutils11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/formatutils11.cpp -@@ -557,7 +557,7 @@ D3D11LoadFunctionMap BuildD3D11LoadFunctionMap() - InsertLoadFunction(&map, GL_ALPHA, GL_HALF_FLOAT_OES, LoadA16FToRGBA16F ); - - // From GL_EXT_texture_storage -- InsertLoadFunction(&map, GL_ALPHA8_EXT, GL_UNSIGNED_BYTE, LoadToNative ); -+ InsertLoadFunction(&map, GL_ALPHA8_EXT, GL_UNSIGNED_BYTE, LoadA8ToRGBA8 ); - InsertLoadFunction(&map, GL_LUMINANCE8_EXT, GL_UNSIGNED_BYTE, LoadL8ToRGBA8 ); - InsertLoadFunction(&map, GL_LUMINANCE8_ALPHA8_EXT, GL_UNSIGNED_BYTE, LoadLA8ToRGBA8 ); - InsertLoadFunction(&map, GL_ALPHA32F_EXT, GL_FLOAT, LoadA32FToRGBA32F ); -@@ -795,7 +795,7 @@ static D3D11ES3FormatMap BuildD3D11FormatMap() - - // From GL_EXT_texture_storage - // | GL internal format | D3D11 texture format | D3D11 SRV format | D3D11 RTV format | D3D11 DSV format | -- InsertD3D11FormatInfo(&map, GL_ALPHA8_EXT, DXGI_FORMAT_A8_UNORM, DXGI_FORMAT_A8_UNORM, DXGI_FORMAT_A8_UNORM, DXGI_FORMAT_UNKNOWN ); -+ InsertD3D11FormatInfo(&map, GL_ALPHA8_EXT, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_UNKNOWN ); - InsertD3D11FormatInfo(&map, GL_LUMINANCE8_EXT, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_UNKNOWN ); - InsertD3D11FormatInfo(&map, GL_ALPHA32F_EXT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN ); - InsertD3D11FormatInfo(&map, GL_LUMINANCE32F_EXT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN ); -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp -index 9ffc32e..cbfe557 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp -@@ -284,7 +284,7 @@ static bool GetNPOTTextureSupport(D3D_FEATURE_LEVEL featureLevel) - // From http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876.aspx - case D3D_FEATURE_LEVEL_9_3: - case D3D_FEATURE_LEVEL_9_2: -- case D3D_FEATURE_LEVEL_9_1: return false; -+ case D3D_FEATURE_LEVEL_9_1: return true; // Provided that mipmaps & wrap modes are not used - - default: UNREACHABLE(); return false; - } --- -1.9.4.msysgit.1 - diff --git a/mingw-w64-angleproject-git/0012-ANGLE-fix-semantic-index-lookup.patch b/mingw-w64-angleproject-git/0012-ANGLE-fix-semantic-index-lookup.patch deleted file mode 100644 index afc9f256a1..0000000000 --- a/mingw-w64-angleproject-git/0012-ANGLE-fix-semantic-index-lookup.patch +++ /dev/null @@ -1,48 +0,0 @@ -From bbfd3cfcf6e1195d86368b61ce39504ce6acda50 Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Wed, 12 Nov 2014 17:09:23 +0200 -Subject: [PATCH 12/16] ANGLE: fix semantic index lookup - -The sorted semantic index table was returning a direct mapping to the -new indices, instead of the old indices. This caused a mismatch in the -GL type lookup for the translated attribute. - -Change-Id: I75d05ed707f56c45210e3dcbc277f894e3dc5a48 ---- - src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp | 2 +- - .../angle/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.cpp | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp -index 0619023..6d64b38 100644 ---- a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp -@@ -1216,7 +1216,7 @@ void ProgramBinary::sortAttributesByLayout(rx::TranslatedAttribute attributes[MA - for (int i = 0; i < MAX_VERTEX_ATTRIBS; i++) - { - int oldIndex = mAttributesByLayout[i]; -- sortedSemanticIndices[i] = mSemanticIndex[oldIndex]; -+ sortedSemanticIndices[i] = oldIndex; - attributes[i] = oldTranslatedAttributes[oldIndex]; - } - } -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.cpp -index e41f238..ff90a6a 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.cpp -@@ -113,10 +113,10 @@ gl::Error InputLayoutCache::applyVertexBuffers(TranslatedAttribute attributes[gl - // Record the type of the associated vertex shader vector in our key - // This will prevent mismatched vertex shaders from using the same input layout - GLint attributeSize; -- programBinary->getActiveAttribute(ilKey.elementCount, 0, NULL, &attributeSize, &ilKey.elements[ilKey.elementCount].glslElementType, NULL); -+ programBinary->getActiveAttribute(sortedSemanticIndices[i], 0, NULL, &attributeSize, &ilKey.elements[ilKey.elementCount].glslElementType, NULL); - - ilKey.elements[ilKey.elementCount].desc.SemanticName = semanticName; -- ilKey.elements[ilKey.elementCount].desc.SemanticIndex = sortedSemanticIndices[i]; -+ ilKey.elements[ilKey.elementCount].desc.SemanticIndex = i; - ilKey.elements[ilKey.elementCount].desc.Format = vertexFormatInfo.nativeFormat; - ilKey.elements[ilKey.elementCount].desc.InputSlot = i; - ilKey.elements[ilKey.elementCount].desc.AlignedByteOffset = 0; --- -1.9.4.msysgit.1 - diff --git a/mingw-w64-angleproject-git/0013-ANGLE-Add-support-for-querying-platform-device.patch b/mingw-w64-angleproject-git/0013-ANGLE-Add-support-for-querying-platform-device.patch deleted file mode 100644 index b43dcc368b..0000000000 --- a/mingw-w64-angleproject-git/0013-ANGLE-Add-support-for-querying-platform-device.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 5ef9348de2624c21be1c9fddd265fec5a0851d25 Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Thu, 13 Nov 2014 15:34:26 +0200 -Subject: [PATCH 13/16] ANGLE: Add support for querying platform device - -The EGL_EXT_device_base extension allows for querying the platform -device of the graphics hardware via eglQueryDisplayAttribEXT(). -As that extension is not supported by ANGLE, this patch adds similar -functionality to the existing eglQuerySurfacePointerANGLE API. When -EGL_DEVICE_EXT is passed as the queried attribute, the underlying -D3D/DXGI device pointer is passed back to the caller via the value -argument. - -The D3D device is needed for video support in QtMultimedia as well as -the IDXGIDevice3::Trim() calls required by the Windows Store. - -Change-Id: Ibdf228d81d6604e56db9dd8597d7cd2983ebc428 ---- - src/3rdparty/angle/src/libEGL/libEGL.cpp | 50 +++++++++++++++++++++++++------- - 1 file changed, 39 insertions(+), 11 deletions(-) - -diff --git a/src/3rdparty/angle/src/libEGL/libEGL.cpp b/src/3rdparty/angle/src/libEGL/libEGL.cpp -index dc20d85..68399d6 100644 ---- a/src/3rdparty/angle/src/libEGL/libEGL.cpp -+++ b/src/3rdparty/angle/src/libEGL/libEGL.cpp -@@ -17,6 +17,9 @@ - #include "libGLESv2/Texture.h" - #include "libGLESv2/main.h" - #include "libGLESv2/renderer/SwapChain.h" -+#if defined(ANGLE_ENABLE_D3D11) -+# include "libGLESv2/renderer/d3d/d3d11/Renderer11.h" -+#endif - - #include "libEGL/main.h" - #include "libEGL/Display.h" -@@ -582,25 +585,50 @@ EGLBoolean __stdcall eglQuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surf - egl::Display *display = static_cast(dpy); - egl::Surface *eglSurface = (egl::Surface*)surface; - -- if (!validateSurface(display, eglSurface)) -- { -- return EGL_FALSE; -- } -- -- if (surface == EGL_NO_SURFACE) -- { -- recordError(egl::Error(EGL_BAD_SURFACE)); -- return EGL_FALSE; -- } -- - switch (attribute) - { - case EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE: - { -+ if (!validateSurface(display, eglSurface)) -+ { -+ return EGL_FALSE; -+ } -+ -+ if (surface == EGL_NO_SURFACE) -+ { -+ recordError(egl::Error(EGL_BAD_SURFACE)); -+ return EGL_FALSE; -+ } -+ - rx::SwapChain *swapchain = eglSurface->getSwapChain(); - *value = (void*) (swapchain ? swapchain->getShareHandle() : NULL); - } - break; -+#if defined(ANGLE_ENABLE_D3D11) -+ case EGL_DEVICE_EXT: -+ { -+ if (!validateDisplay(display)) -+ { -+ return EGL_FALSE; -+ } -+ -+ rx::Renderer *renderer = display->getRenderer(); -+ if (!renderer) -+ { -+ *value = NULL; -+ break; -+ } -+ -+ if (renderer->getMajorShaderModel() < 4) -+ { -+ recordError(egl::Error(EGL_BAD_CONTEXT)); -+ return EGL_FALSE; -+ } -+ -+ *value = static_cast(renderer)->getDevice(); -+ } -+ break; -+#endif - default: - recordError(egl::Error(EGL_BAD_ATTRIBUTE)); - return EGL_FALSE; --- -1.9.4.msysgit.1 - diff --git a/mingw-w64-angleproject-git/0014-Let-ANGLE-use-multithreaded-devices-if-necessary.patch b/mingw-w64-angleproject-git/0014-Let-ANGLE-use-multithreaded-devices-if-necessary.patch deleted file mode 100644 index 9ceb34d964..0000000000 --- a/mingw-w64-angleproject-git/0014-Let-ANGLE-use-multithreaded-devices-if-necessary.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 5b3bc73210ed1847d9bd7a94f06cc0d5de8e0b89 Mon Sep 17 00:00:00 2001 -From: Michael Bruning -Date: Thu, 13 Nov 2014 15:40:10 +0200 -Subject: [PATCH 14/16] Let ANGLE use multithreaded devices if necessary. - -This is needed to prevent lock-ups in application that use ANGLE from -multiple threads, as e.g. QtWebEngine based applications do. - -The environment variable QT_D3DCREATE_MULTITHREADED is used to -communicate this from the QtWebEngine module. - -Change-Id: Ibd5a5c75eb68af567d420d9a35efb3490c93b27c ---- - src/3rdparty/angle/src/common/platform.h | 1 + - .../angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | 10 ++++++++++ - .../angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp | 4 ++++ - 3 files changed, 15 insertions(+) - -diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h -index 0065ec7..8b2190d 100644 ---- a/src/3rdparty/angle/src/common/platform.h -+++ b/src/3rdparty/angle/src/common/platform.h -@@ -57,6 +57,7 @@ - - # if defined(ANGLE_ENABLE_D3D11) - # include -+# include - # include - # include - # include -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -index f6ba930..46b9984 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -@@ -258,6 +258,16 @@ EGLint Renderer11::initialize() - } - - #if !defined(ANGLE_ENABLE_WINDOWS_STORE) -+ static wchar_t *qt_d3dcreate_multihreaded_var = _wgetenv(L"QT_D3DCREATE_MULTITHREADED"); -+ if (qt_d3dcreate_multihreaded_var && wcsstr(qt_d3dcreate_multihreaded_var, L"1")) -+ { -+ ID3D10Multithread *multithread; -+ result = mDevice->QueryInterface(IID_PPV_ARGS(&multithread)); -+ ASSERT(SUCCEEDED(result)); -+ result = multithread->SetMultithreadProtected(true); -+ ASSERT(SUCCEEDED(result)); -+ multithread->Release(); -+ } - #if !ANGLE_SKIP_DXGI_1_2_CHECK - // In order to create a swap chain for an HWND owned by another process, DXGI 1.2 is required. - // The easiest way to check is to query for a IDXGIDevice2. -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp -index 82963ec..4c552b2 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp -@@ -299,6 +299,10 @@ EGLint Renderer9::initialize() - D3DPRESENT_PARAMETERS presentParameters = getDefaultPresentParameters(); - DWORD behaviorFlags = D3DCREATE_FPU_PRESERVE | D3DCREATE_NOWINDOWCHANGES; - -+ static wchar_t *qt_d3dcreate_multihreaded_var = _wgetenv(L"QT_D3DCREATE_MULTITHREADED"); -+ if (qt_d3dcreate_multihreaded_var && wcsstr(qt_d3dcreate_multihreaded_var, L"1")) -+ behaviorFlags |= D3DCREATE_MULTITHREADED; -+ - { - result = mD3d9->CreateDevice(mAdapter, mDeviceType, mDeviceWindow, behaviorFlags | D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE, &presentParameters, &mDevice); - } --- -1.9.4.msysgit.1 - diff --git a/mingw-w64-angleproject-git/0015-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch b/mingw-w64-angleproject-git/0015-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch deleted file mode 100644 index 1acdef7176..0000000000 --- a/mingw-w64-angleproject-git/0015-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch +++ /dev/null @@ -1,533 +0,0 @@ -From d9a9219ea2181dd4c1939d05747a21b67f16a906 Mon Sep 17 00:00:00 2001 -From: Andrew Knight -Date: Thu, 13 Nov 2014 16:33:53 +0200 -Subject: [PATCH 15/16] ANGLE: Fix -angle-d3d11 on MSVC2010 - -Allow the D3D11 renderer to build with the June 2010 DirectX SDK. - -Change-Id: I2343acedab16845d6a0d4a53cf3145f583efc4a7 ---- - src/3rdparty/angle/src/common/platform.h | 8 +- - src/3rdparty/angle/src/libGLESv2/Context.cpp | 8 +- - src/3rdparty/angle/src/libGLESv2/Data.h | 2 +- - src/3rdparty/angle/src/libGLESv2/State.cpp | 6 +- - .../src/libGLESv2/renderer/d3d/RendererD3D.cpp | 4 +- - .../libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | 4 +- - .../renderer/d3d/d3d11/renderer11_utils.cpp | 137 +++++++++++++++++++++ - 7 files changed, 156 insertions(+), 13 deletions(-) - -diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h -index 8b2190d..972eee2 100644 ---- a/src/3rdparty/angle/src/common/platform.h -+++ b/src/3rdparty/angle/src/common/platform.h -@@ -52,17 +52,21 @@ - - # if defined(ANGLE_ENABLE_D3D9) - # include -+# if !defined(COMPILER_IMPLEMENTATION) - # include -+# endif - # endif - - # if defined(ANGLE_ENABLE_D3D11) - # include - # include - # include - # include - # include - # include -+# if !defined(COMPILER_IMPLEMENTATION) - # include -+# endif - # endif - - # if defined(ANGLE_ENABLE_WINDOWS_STORE) -diff --git a/src/3rdparty/angle/src/libGLESv2/Context.cpp b/src/3rdparty/angle/src/libGLESv2/Context.cpp -index fe9b1a2..b87689c 100644 ---- a/src/3rdparty/angle/src/libGLESv2/Context.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/Context.cpp -@@ -168,9 +168,9 @@ Context::~Context() - } - mIncompleteTextures.clear(); - -- for (auto &zeroTexture : mZeroTextures) -+ for (TextureMap::iterator i = mZeroTextures.begin(); i != mZeroTextures.end(); i++) - { -- zeroTexture.second.set(NULL); -+ i->second.set(NULL); - } - mZeroTextures.clear(); - -@@ -354,7 +354,7 @@ void Context::deleteFenceSync(GLsync fenceSync) - - void Context::deleteVertexArray(GLuint vertexArray) - { -- auto vertexArrayObject = mVertexArrayMap.find(vertexArray); -+ VertexArrayMap::iterator vertexArrayObject = mVertexArrayMap.find(vertexArray); - - if (vertexArrayObject != mVertexArrayMap.end()) - { -@@ -460,7 +460,7 @@ FenceSync *Context::getFenceSync(GLsync handle) const - - VertexArray *Context::getVertexArray(GLuint handle) const - { -- auto vertexArray = mVertexArrayMap.find(handle); -+ VertexArrayMap::const_iterator vertexArray = mVertexArrayMap.find(handle); - - if (vertexArray == mVertexArrayMap.end()) - { -diff --git a/src/3rdparty/angle/src/libGLESv2/Data.h b/src/3rdparty/angle/src/libGLESv2/Data.h -index cff872a..9234403 100644 ---- a/src/3rdparty/angle/src/libGLESv2/Data.h -+++ b/src/3rdparty/angle/src/libGLESv2/Data.h -@@ -14,7 +14,7 @@ - namespace gl - { - --struct Data final -+struct Data - { - public: - Data(GLint clientVersion, const State &state, const Caps &caps, -diff --git a/src/3rdparty/angle/src/libGLESv2/State.cpp b/src/3rdparty/angle/src/libGLESv2/State.cpp -index e7acda2..b5b62f5 100644 ---- a/src/3rdparty/angle/src/libGLESv2/State.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/State.cpp -@@ -665,13 +665,13 @@ void State::detachTexture(const TextureMap &zeroTextures, GLuint texture) - - void State::initializeZeroTextures(const TextureMap &zeroTextures) - { -- for (const auto &zeroTexture : zeroTextures) -+ for (TextureMap::const_iterator i = zeroTextures.begin(); i != zeroTextures.end(); i++) - { -- auto &samplerTextureArray = mSamplerTextures[zeroTexture.first]; -+ TextureBindingVector &samplerTextureArray = mSamplerTextures[i->first]; - - for (size_t textureUnit = 0; textureUnit < samplerTextureArray.size(); ++textureUnit) - { -- samplerTextureArray[textureUnit].set(zeroTexture.second.get()); -+ samplerTextureArray[textureUnit].set(i->second.get()); - } - } - } -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp -index 6f58243..97da6da 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp -@@ -27,9 +27,9 @@ RendererD3D::RendererD3D(egl::Display *display) - - RendererD3D::~RendererD3D() - { -- for (auto &incompleteTexture : mIncompleteTextures) -+ for (gl::TextureMap::iterator i = mIncompleteTextures.begin(); i != mIncompleteTextures.end(); ++i) - { -- incompleteTexture.second.set(NULL); -+ i->second.set(NULL); - } - mIncompleteTextures.clear(); - } -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -index 46b9984..a28fd78 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -@@ -873,7 +873,7 @@ bool Renderer11::applyPrimitiveType(GLenum mode, GLsizei count) - - void Renderer11::unsetSRVsWithResource(gl::SamplerType samplerType, const ID3D11Resource *resource) - { -- auto ¤tSRVs = (samplerType == gl::SAMPLER_VERTEX ? mCurVertexSRVs : mCurPixelSRVs); -+ std::vector ¤tSRVs = (samplerType == gl::SAMPLER_VERTEX ? mCurVertexSRVs : mCurPixelSRVs); - - for (size_t resourceIndex = 0; resourceIndex < currentSRVs.size(); ++resourceIndex) - { -@@ -3398,7 +3398,7 @@ Workarounds Renderer11::generateWorkarounds() const - - void Renderer11::setShaderResource(gl::SamplerType shaderType, UINT resourceSlot, ID3D11ShaderResourceView *srv) - { -- auto ¤tSRVs = (shaderType == gl::SAMPLER_VERTEX ? mCurVertexSRVs : mCurPixelSRVs); -+ std::vector ¤tSRVs = (shaderType == gl::SAMPLER_VERTEX ? mCurVertexSRVs : mCurPixelSRVs); - - ASSERT(static_cast(resourceSlot) < currentSRVs.size()); - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp -index cbfe557..5831c57 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp -@@ -18,6 +18,85 @@ - - #include - -+#ifndef D3D_FL9_1_DEFAULT_MAX_ANISOTROPY -+# define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2 -+#endif -+#ifndef D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT -+# define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1 -+#endif -+#ifndef D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT -+# define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4 -+#endif -+#ifndef D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT -+# define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535 -+#endif -+#ifndef D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT -+# define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575 -+#endif -+#ifndef D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION -+# define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512 -+#endif -+#ifndef D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION -+# define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096 -+#endif -+#ifndef D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION -+# define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048 -+#endif -+#ifndef D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION -+# define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256 -+#endif -+#ifndef D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION -+# define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096 -+#endif -+#ifndef D3D11_REQ_TEXTURECUBE_DIMENSION -+# define D3D11_REQ_TEXTURECUBE_DIMENSION 16384 -+#endif -+#ifndef D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION -+# define D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION 2048 -+#endif -+#ifndef D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION -+# define D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 2048 -+#endif -+#ifndef D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP -+# define D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP 32 -+#endif -+#ifndef D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP -+# define D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP 32 -+#endif -+#ifndef D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT -+# define D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT 32 -+#endif -+#ifndef D3D11_STANDARD_VERTEX_ELEMENT_COUNT -+# define D3D11_STANDARD_VERTEX_ELEMENT_COUNT 32 -+#endif -+#ifndef D3D10_1_SO_BUFFER_SLOT_COUNT -+# define D3D10_1_SO_BUFFER_SLOT_COUNT 4 -+#endif -+#ifndef D3D11_SO_BUFFER_SLOT_COUNT -+# define D3D11_SO_BUFFER_SLOT_COUNT 4 -+#endif -+#ifndef D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT -+# define D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT 14 -+#endif -+#ifndef D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT -+# define D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT 16 -+#endif -+#ifndef D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE -+# define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE -8 -+#endif -+#ifndef D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE -+# define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE 7 -+#endif -+#ifndef D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT -+# define D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT 4096 -+#endif -+#ifndef D3D11_PS_INPUT_REGISTER_COUNT -+# define D3D11_PS_INPUT_REGISTER_COUNT 32 -+#endif -+#ifndef D3D10_1_VS_OUTPUT_REGISTER_COUNT -+# define D3D10_1_VS_OUTPUT_REGISTER_COUNT 32 -+#endif -+ - namespace rx - { - -@@ -276,7 +355,9 @@ static bool GetNPOTTextureSupport(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: return true; -@@ -294,7 +375,9 @@ static float GetMaximumAnisotropy(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_MAX_MAXANISOTROPY; - - case D3D_FEATURE_LEVEL_10_1: -@@ -314,7 +397,9 @@ static bool GetOcclusionQuerySupport(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: return true; -@@ -334,7 +419,9 @@ static bool GetEventQuerySupport(D3D_FEATURE_LEVEL featureLevel) - - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: -@@ -352,7 +439,9 @@ static bool GetInstancingSupport(D3D_FEATURE_LEVEL featureLevel) - - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: -@@ -375,7 +464,9 @@ static bool GetDerivativeInstructionSupport(D3D_FEATURE_LEVEL featureLevel) - - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: -@@ -393,7 +484,9 @@ static size_t GetMaximumSimultaneousRenderTargets(D3D_FEATURE_LEVEL featureLevel - - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; - - case D3D_FEATURE_LEVEL_10_1: -@@ -411,7 +504,9 @@ static size_t GetMaximum2DTextureSize(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; - - case D3D_FEATURE_LEVEL_10_1: -@@ -429,7 +524,9 @@ static size_t GetMaximumCubeMapTextureSize(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURECUBE_DIMENSION; - - case D3D_FEATURE_LEVEL_10_1: -@@ -447,7 +544,9 @@ static size_t GetMaximum2DTextureArraySize(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION; - - case D3D_FEATURE_LEVEL_10_1: -@@ -465,7 +564,9 @@ static size_t GetMaximum3DTextureSize(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION; - - case D3D_FEATURE_LEVEL_10_1: -@@ -483,7 +584,9 @@ static size_t GetMaximumViewportSize(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_VIEWPORT_BOUNDS_MAX; - - case D3D_FEATURE_LEVEL_10_1: -@@ -507,7 +610,9 @@ static size_t GetMaximumDrawIndexedIndexCount(D3D_FEATURE_LEVEL featureLevel) - - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: return std::numeric_limits::max(); -@@ -529,7 +634,9 @@ static size_t GetMaximumDrawVertexCount(D3D_FEATURE_LEVEL featureLevel) - - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: return std::numeric_limits::max(); -@@ -546,7 +653,9 @@ static size_t GetMaximumVertexInputSlots(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_STANDARD_VERTEX_ELEMENT_COUNT; - - case D3D_FEATURE_LEVEL_10_1: return D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT; -@@ -566,7 +675,9 @@ static size_t GetMaximumVertexUniformVectors(D3D_FEATURE_LEVEL featureLevel) - // TODO(geofflang): Remove hard-coded limit once the gl-uniform-arrays test can pass - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return 1024; // D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT; - - case D3D_FEATURE_LEVEL_10_1: -@@ -591,7 +702,9 @@ static size_t GetMaximumVertexUniformBlocks(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - GetReservedVertexUniformBuffers(); - - case D3D_FEATURE_LEVEL_10_1: -@@ -618,7 +731,9 @@ static size_t GetMaximumVertexOutputVectors(D3D_FEATURE_LEVEL featureLevel) - - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_VS_OUTPUT_REGISTER_COUNT - GetReservedVertexOutputVectors(); - - case D3D_FEATURE_LEVEL_10_1: return D3D10_1_VS_OUTPUT_REGISTER_COUNT - GetReservedVertexOutputVectors(); -@@ -637,7 +752,9 @@ static size_t GetMaximumVertexTextureUnits(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; - - case D3D_FEATURE_LEVEL_10_1: -@@ -659,7 +776,9 @@ static size_t GetMaximumPixelUniformVectors(D3D_FEATURE_LEVEL featureLevel) - // TODO(geofflang): Remove hard-coded limit once the gl-uniform-arrays test can pass - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return 1024; // D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT; - - case D3D_FEATURE_LEVEL_10_1: -@@ -684,7 +803,9 @@ static size_t GetMaximumPixelUniformBlocks(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - GetReservedPixelUniformBuffers(); - - case D3D_FEATURE_LEVEL_10_1: -@@ -703,7 +824,9 @@ static size_t GetMaximumPixelInputVectors(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_PS_INPUT_REGISTER_COUNT - GetReservedVertexOutputVectors(); - - case D3D_FEATURE_LEVEL_10_1: -@@ -722,7 +845,9 @@ static size_t GetMaximumPixelTextureUnits(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; - - case D3D_FEATURE_LEVEL_10_1: -@@ -741,7 +866,9 @@ static int GetMinimumTexelOffset(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE; - - case D3D_FEATURE_LEVEL_10_1: -@@ -760,7 +887,9 @@ static int GetMaximumTexelOffset(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE; - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: return D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE; -@@ -783,7 +912,9 @@ static size_t GetMaximumConstantBufferSize(D3D_FEATURE_LEVEL featureLevel) - - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT * bytesPerComponent; - - case D3D_FEATURE_LEVEL_10_1: -@@ -802,7 +933,9 @@ static size_t GetMaximumStreamOutputBuffers(D3D_FEATURE_LEVEL featureLevel) - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return D3D11_SO_BUFFER_SLOT_COUNT; - - case D3D_FEATURE_LEVEL_10_1: return D3D10_1_SO_BUFFER_SLOT_COUNT; -@@ -820,7 +953,9 @@ static size_t GetMaximumStreamOutputInterleavedComponents(D3D_FEATURE_LEVEL feat - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: - - case D3D_FEATURE_LEVEL_10_1: -@@ -838,7 +973,9 @@ static size_t GetMaximumStreamOutputSeparateComponents(D3D_FEATURE_LEVEL feature - { - switch (featureLevel) - { -+#if !defined(_MSC_VER) || (_MSC_VER >= 1800) - case D3D_FEATURE_LEVEL_11_1: -+#endif - case D3D_FEATURE_LEVEL_11_0: return GetMaximumStreamOutputInterleavedComponents(featureLevel) / - GetMaximumStreamOutputBuffers(featureLevel); - --- -1.9.4.msysgit.1 - diff --git a/mingw-w64-angleproject-git/0017-ANGLE-Fix-compilation-with-D3D9.patch b/mingw-w64-angleproject-git/0017-ANGLE-Fix-compilation-with-D3D9.patch deleted file mode 100644 index 4ada6d41d2..0000000000 --- a/mingw-w64-angleproject-git/0017-ANGLE-Fix-compilation-with-D3D9.patch +++ /dev/null @@ -1,62 +0,0 @@ -From d7839cc052de126cc3b457fe41963fd9c7e91846 Mon Sep 17 00:00:00 2001 -From: Kai Koehne -Date: Mon, 17 Nov 2014 15:10:10 +0100 -Subject: [PATCH] ANGLE: Fix compilation with D3D9 - -Fixes a regression introduced in c6df5fe3ed0f2a722 that -broke compilation with d3d9 (namely, -target xp). - -Task-number: QTBUG-42714 -Change-Id: I1a5e9682d5463bfa082a5d0c062399a131a7cf52 ---- - src/3rdparty/angle/src/common/NativeWindow.h | 7 ++++++- - src/3rdparty/angle/src/common/platform.h | 1 + - src/3rdparty/angle/src/common/win32/NativeWindow.cpp | 2 +- - 3 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/src/3rdparty/angle/src/common/NativeWindow.h b/src/3rdparty/angle/src/common/NativeWindow.h -index 9e93aea..c4a0e42 100644 ---- a/src/3rdparty/angle/src/common/NativeWindow.h -+++ b/src/3rdparty/angle/src/common/NativeWindow.h -@@ -54,7 +54,12 @@ public: - bool getClientRect(LPRECT rect); - bool isIconic(); - -- HRESULT createSwapChain(ID3D11Device* device, DXGIFactory* factory, -+# if defined(ANGLE_ENABLE_D3D11) -+ typedef ID3D11Device Device; -+#else -+ typedef IDirect3DDevice9 Device; -+#endif -+ HRESULT createSwapChain(Device* device, DXGIFactory* factory, - DXGI_FORMAT format, UINT width, UINT height, - DXGISwapChain** swapChain); - -diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h -index 0001e71..5bf97f9 100644 ---- a/src/3rdparty/angle/src/common/platform.h -+++ b/src/3rdparty/angle/src/common/platform.h -@@ -52,6 +52,7 @@ - - # if defined(ANGLE_ENABLE_D3D9) - # include -+# include - # if !defined(COMPILER_IMPLEMENTATION) - # include - # endif -diff --git a/src/3rdparty/angle/src/common/win32/NativeWindow.cpp b/src/3rdparty/angle/src/common/win32/NativeWindow.cpp -index 2440747..46082a2 100644 ---- a/src/3rdparty/angle/src/common/win32/NativeWindow.cpp -+++ b/src/3rdparty/angle/src/common/win32/NativeWindow.cpp -@@ -35,7 +35,7 @@ bool NativeWindow::isIconic() - return IsIconic(mWindow) == TRUE; - } - --HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory, -+HRESULT NativeWindow::createSwapChain(NativeWindow::Device* device, DXGIFactory* factory, - DXGI_FORMAT format, unsigned int width, unsigned int height, - DXGISwapChain** swapChain) - { --- -1.9.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch b/mingw-w64-angleproject-git/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch deleted file mode 100644 index 97847ad684..0000000000 --- a/mingw-w64-angleproject-git/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 014d3fcf6011109491b0489da9c1abb1fdc6dbdc Mon Sep 17 00:00:00 2001 -From: Kai Koehne -Date: Mon, 24 Nov 2014 10:52:03 +0100 -Subject: [PATCH] ANGLE: Fix releasing textures after we kill D3D11 - -Cherry-pick upstream commit cc4cd2925b9a4f1142a86df131345a861c9d7cd9 -to fix crashes on exit. - -Task-number: QTBUG-42772 -Change-Id: Ib74be17f2b5fdd58f9e0568e1da74ba19e943019 ---- - src/3rdparty/angle/src/libGLESv2/Context.cpp | 6 ------ - src/3rdparty/angle/src/libGLESv2/Context.h | 1 - - src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp | 5 +++++ - src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h | 2 ++ - src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | 2 ++ - src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp | 2 ++ - 6 files changed, 11 insertions(+), 7 deletions(-) - -diff --git a/src/3rdparty/angle/src/libGLESv2/Context.cpp b/src/3rdparty/angle/src/libGLESv2/Context.cpp -index b87689c..3772da6 100644 ---- a/src/3rdparty/angle/src/libGLESv2/Context.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/Context.cpp -@@ -162,12 +162,6 @@ Context::~Context() - deleteTransformFeedback(mTransformFeedbackMap.begin()->first); - } - -- for (TextureMap::iterator i = mIncompleteTextures.begin(); i != mIncompleteTextures.end(); i++) -- { -- i->second.set(NULL); -- } -- mIncompleteTextures.clear(); -- - for (TextureMap::iterator i = mZeroTextures.begin(); i != mZeroTextures.end(); i++) - { - i->second.set(NULL); -diff --git a/src/3rdparty/angle/src/libGLESv2/Context.h b/src/3rdparty/angle/src/libGLESv2/Context.h -index 1e890de..0699592 100644 ---- a/src/3rdparty/angle/src/libGLESv2/Context.h -+++ b/src/3rdparty/angle/src/libGLESv2/Context.h -@@ -247,7 +247,6 @@ class Context - int mClientVersion; - - TextureMap mZeroTextures; -- TextureMap mIncompleteTextures; - - typedef std::unordered_map FramebufferMap; - FramebufferMap mFramebufferMap; -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp -index 97da6da..5cddd8a 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp -@@ -27,6 +27,11 @@ RendererD3D::RendererD3D(egl::Display *display) - - RendererD3D::~RendererD3D() - { -+ cleanup(); -+} -+ -+void RendererD3D::cleanup() -+{ - for (gl::TextureMap::iterator i = mIncompleteTextures.begin(); i != mIncompleteTextures.end(); ++i) - { - i->second.set(NULL); -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h -index 9919207..a2f7787 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h -@@ -160,6 +160,8 @@ class RendererD3D : public Renderer - const gl::Rectangle *scissor, bool blitRenderTarget, - bool blitDepth, bool blitStencil, GLenum filter) = 0; - -+ void cleanup(); -+ - egl::Display *mDisplay; - - private: -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -index e6d7f30..777308e 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp -@@ -1870,6 +1870,8 @@ bool Renderer11::testDeviceResettable() - - void Renderer11::release() - { -+ RendererD3D::cleanup(); -+ - releaseShaderCompiler(); - releaseDeviceResources(); - -diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp -index 601cd24..18e6e2d 100644 ---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp -+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp -@@ -151,6 +151,8 @@ Renderer9::~Renderer9() - - void Renderer9::release() - { -+ RendererD3D::cleanup(); -+ - releaseShaderCompiler(); - releaseDeviceResources(); - --- -1.9.4.msysgit.0 - diff --git a/mingw-w64-angleproject-git/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch b/mingw-w64-angleproject-git/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch deleted file mode 100644 index dcd1b16275..0000000000 --- a/mingw-w64-angleproject-git/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b4275810a50e298b4d8b038f6842a56ee7711471 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Fri, 7 Feb 2014 12:58:41 +0000 -Subject: [PATCH 1/2] Untangle OS from GENERATOR a bit for MSYS2 - ---- - build/common.gypi | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/build/common.gypi b/build/common.gypi -index b0a497f..db85e04 100644 ---- a/build/common.gypi -+++ b/build/common.gypi -@@ -200,7 +200,7 @@ - }, - 'conditions': - [ -- ['angle_build_winrt==0 and OS == "win" and MSVS_VERSION != "2010e"', -+ ['angle_build_winrt==0 and OS == "win" and GENERATOR == "msvs" and MSVS_VERSION != "2010e" and MSVS_VERSION != "2012e"', - { - 'Debug_x64': - { --- -1.8.5.3 - diff --git a/mingw-w64-angleproject-git/PKGBUILD b/mingw-w64-angleproject-git/PKGBUILD index 9ec72018e3..74a2c7c7a2 100644 --- a/mingw-w64-angleproject-git/PKGBUILD +++ b/mingw-w64-angleproject-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=angleproject pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=2.1.r3427 +pkgver=2.1.r3927 pkgrel=1 pkgdesc='Angle project built from git source (mingw-w64)' arch=('any') @@ -15,54 +15,22 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" 'gyp-svn' 'git') provides=("${MINGW_PACKAGE_PREFIX}-angleproject") conflicts=("${MINGW_PACKAGE_PREFIX}-angleproject") options=('!strip' 'staticlibs') -source=("angleproject"::git+https://chromium.googlesource.com/angle/angle#commit=30d6c255d238c3064980a22f66fecf0ef9bb58d0 - 0000-General-fixes-for-ANGLE-2.1.patch - 0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch - 0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t.patch - 0009-ANGLE-Support-WinRT.patch - 0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch - 0012-ANGLE-fix-semantic-index-lookup.patch - 0013-ANGLE-Add-support-for-querying-platform-device.patch - 0014-Let-ANGLE-use-multithreaded-devices-if-necessary.patch - 0015-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch - 0017-ANGLE-Fix-compilation-with-D3D9.patch - 0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch - angleproject-disable-debug-annotations.patch +source=("angleproject"::git+https://chromium.googlesource.com/angle/angle + 0000-build-fix.patch angleproject-export-shader-symbols.patch angleproject-include-import-library-and-use-def-file.patch - angleproject-prevent-multiple-definition-errors.patch - angleproject-undo-shader-renames.patch - 0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch - commit-4de44cb - commit-409078f libEGL_mingw32.def libGLESv2_mingw32.def) md5sums=('SKIP' - 'b14a834c2d51c7af99f8aaf089851d23' - 'fa43f37117af18de3badfc4481ee3639' - 'fe69049b10928166ef62e1786a13e61b' - 'e573a80dec8b594bf6244ea4a28ce438' - 'b64f5fc4838d7157753f8255613ca511' - 'baf253bebf28653468e18b92d84f4431' - '25b88bcf7132e62c6717c145177ea157' - '8fdd8266b8b2c276dbf4e66d2947e5e3' - 'db79439f3b889c02138ff847c7e7357f' - '780bc9ce3c0008910707b2df20c3430c' - '2787c0a067665b02c161c7392b7175e4' - 'f2289e55621764d05e16a71ba09dd779' - '19a72088f614a5f22004b2687a73f3ad' - '8374ba08ca0cc5620ac2c94209122134' - '8f54b19db99483c9ee37054d302bf806' - 'f44242b0abb63290bd571a953bae34b9' - 'ac2b570ba5505b7531495e61de68ea5d' - 'cce58c740f92bf1b2f7ca4a58999a5fc' - 'a94c3e8bfe9e62198b8b51311f28c9a5' - '7d563b2218692a5ea232c1a7aa77e2a1' - 'ebee3837c9f9ad9e9b49061a2274b963') + '0bc113aa37af7dd1721184857fbcb28f' + '70615a5e327a53fd60cc4dec916842c0' + '6c41327ef0fb26b4bdcc7fcf8f52116f' + '232a2f50c3b55247f95fecfab1bec60e' + 'f5519fd7fc7f654c0805fbd802a5722d') pkgver() { cd "$srcdir/angleproject" - local _major=$(head -n 4 src/common/version.h | grep 'ANGLE_MAJOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') - local _minor=$(head -n 4 src/common/version.h | grep 'ANGLE_MINOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _major=$(head -n 14 src/common/version.h | grep 'ANGLE_MAJOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _minor=$(head -n 14 src/common/version.h | grep 'ANGLE_MINOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') printf "%s.%s.r%s" "$_major" "$_minor" "$(git rev-list --count HEAD)" } @@ -73,34 +41,7 @@ prepare() { cp ${srcdir}/libGLESv2_mingw32.def src/libGLESv2/ ### Fedora team patches ### - - patch -p4 -i ${srcdir}/0000-General-fixes-for-ANGLE-2.1.patch - patch -p4 -i ${srcdir}/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch - patch -p4 -i ${srcdir}/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t.patch - patch -p4 -i ${srcdir}/0009-ANGLE-Support-WinRT.patch - patch -p4 -i ${srcdir}/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch - patch -p4 -i ${srcdir}/0012-ANGLE-fix-semantic-index-lookup.patch - patch -p4 -i ${srcdir}/0013-ANGLE-Add-support-for-querying-platform-device.patch - patch -p4 -i ${srcdir}/0014-Let-ANGLE-use-multithreaded-devices-if-necessary.patch - patch -p4 -i ${srcdir}/0015-ANGLE-Fix-angle-d3d11-on-MSVC2010.patch - patch -p4 -i ${srcdir}/0017-ANGLE-Fix-compilation-with-D3D9.patch - patch -p4 -i ${srcdir}/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch - - # Disable some debug code as it depends on the ID3DUserDefinedAnnotation - # interface which isn't available in mingw-w64 yet - # Patch for this is currently pending at http://source.winehq.org/patches/data/108405 - patch -p1 -i ${srcdir}/angleproject-disable-debug-annotations.patch - - # Undo a change from 0000-General-fixes-for-ANGLE-2.1.patch which renames - # some shader references, but which doesn't rename the precompiled shaders - patch -p1 -i ${srcdir}/angleproject-undo-shader-renames.patch - - # Prevent multiple definition errors during the final link of libGLESv2 - patch -p1 -i ${srcdir}/angleproject-prevent-multiple-definition-errors.patch - - # Revert commit 4de44cb and commit 409078f as qt5-qtwebkit still depends on it - patch -p1 -R -i ${srcdir}/commit-4de44cb - patch -p1 -R -i ${srcdir}/commit-409078f + patch -p1 -i ${srcdir}/0000-build-fix.patch # Make sure an import library is created and the correct .def file is used during the build patch -p1 -i ${srcdir}/angleproject-include-import-library-and-use-def-file.patch @@ -110,13 +51,8 @@ prepare() { # To allow building WebKit export the required symbols in the libGLESv2 shared library patch -p1 -i ${srcdir}/angleproject-export-shader-symbols.patch - ### MSYS2 team patches ### - - # Untangle OS and GENERATOR some. - patch -p1 -i "${srcdir}"/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch - - echo "" > src/copy_compiler_dll.bat - chmod +x src/copy_compiler_dll.bat + #echo "" > src/copy_compiler_dll.bat + #chmod +x src/copy_compiler_dll.bat } build() { @@ -130,8 +66,6 @@ build() { sed -i -e 's_python _python2 _g' -e 's_"python"_"python2"_g' -e "s_'python'_'python2'_g" -e 's_/usr/bin/python_/usr/bin/python2_g' $(find -type f) sed -i -e 's|vsprintf_s|vsprintf|g' $(find . \( -name '*.h' -or -name '*.cpp' \) -and -type f) - mkdir -p build-${MINGW_CHOST} && pushd build-${MINGW_CHOST} - if [ "${MINGW_CHOST}" = "i686-w64-mingw32" ] then _target="win32" @@ -139,72 +73,65 @@ build() { _target="win64" fi - gyp -D OS=win --format make -D MSVS_VERSION="" -D TARGET=$_target --depth . -I ../build/common.gypi ../src/angle.gyp + gyp -D OS=win --format make -D MSVS_VERSION="" -D TARGET=$_target --depth . -I build/common.gypi src/angle.gyp # Make sure the correct libraries are linked in - sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid'@ ../src/libGLESv2.target.mk - sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid -L. -lGLESv2'@ ../src/libEGL.target.mk + #sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid'@ ../src/libGLESv2.target.mk + #sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid -L. -lGLESv2'@ ../src/libEGL.target.mk # LINK=g++ is to prevent using flock to serialize linking. LINK=g++ make -j1 V=1 CXXFLAGS="-std=c++11 -msse2 -DUNICODE -D_UNICODE" - ${MINGW_PREFIX}/bin/ar rcs libGLESv2.a \ - out/Debug/obj.target/src/common/*.o \ - out/Debug/obj.target/src/common/win32/*.o \ - out/Debug/obj.target/src/compiler/translator/*.o \ - out/Debug/obj.target/src/compiler/translator/depgraph/*.o \ - out/Debug/obj.target/src/compiler/translator/timing/*.o \ - out/Debug/obj.target/src/compiler/preprocessor/*.o \ - out/Debug/obj.target/src/third_party/compiler/*.o \ - out/Debug/obj.target/src/third_party/murmurhash/*.o \ - out/Debug/obj.target/src/third_party/systeminfo/*.o \ - out/Debug/obj.target/src/libGLESv2/*.o \ - out/Debug/obj.target/src/libGLESv2/renderer/*.o \ - out/Debug/obj.target/src/libGLESv2/renderer/d3d/*.o \ - out/Debug/obj.target/src/libGLESv2/renderer/d3d/d3d9/*.o \ - out/Debug/obj.target/src/libGLESv2/renderer/d3d/d3d11/*.o + # ${MINGW_PREFIX}/bin/ar rcs libGLESv2.a \ + # out/Debug/obj.target/src/common/*.o \ + # out/Debug/obj.target/src/common/win32/*.o \ + # out/Debug/obj.target/src/compiler/translator/*.o \ + # out/Debug/obj.target/src/compiler/translator/depgraph/*.o \ + # out/Debug/obj.target/src/compiler/translator/timing/*.o \ + # out/Debug/obj.target/src/compiler/preprocessor/*.o \ + # out/Debug/obj.target/src/third_party/compiler/*.o \ + # out/Debug/obj.target/src/third_party/murmurhash/*.o \ + # out/Debug/obj.target/src/third_party/systeminfo/*.o \ + # out/Debug/obj.target/src/libGLESv2/*.o \ + # out/Debug/obj.target/src/libANGLE/renderer/*.o \ + # out/Debug/obj.target/src/libANGLE/renderer/d3d/*.o \ + # out/Debug/obj.target/src/libANGLE/renderer/d3d/d3d9/*.o \ + # out/Debug/obj.target/src/libANGLE/renderer/d3d/d3d11/*.o - ${MINGW_PREFIX}/bin/ar rcs libEGL.a \ - out/Debug/obj.target/libEGL/../src/common/RefCountObject.o \ - out/Debug/obj.target/libEGL/../src/common/angleutils.o \ - out/Debug/obj.target/libEGL/../src/common/debug.o \ - out/Debug/obj.target/libEGL/../src/common/event_tracer.o \ - out/Debug/obj.target/libEGL/../src/common/mathutil.o \ - out/Debug/obj.target/libEGL/../src/common/tls.o \ - out/Debug/obj.target/libEGL/../src/common/utilities.o \ - out/Debug/obj.target/libEGL/../src/libEGL/AttributeMap.o \ - out/Debug/obj.target/libEGL/../src/libEGL/Config.o \ - out/Debug/obj.target/libEGL/../src/libEGL/Display.o \ - out/Debug/obj.target/libEGL/../src/libEGL/Error.o \ - out/Debug/obj.target/libEGL/../src/libEGL/Surface.o \ - out/Debug/obj.target/libEGL/../src/libEGL/libEGL.o \ - out/Debug/obj.target/libEGL/../src/libEGL/main.o \ - out/Debug/obj.target/libEGL/../src/common/win32/NativeWindow.o - - popd + # ${MINGW_PREFIX}/bin/ar rcs libEGL.a \ + # out/Debug/obj.target/libEGL/../src/common/RefCountObject.o \ + # out/Debug/obj.target/libEGL/../src/common/angleutils.o \ + # out/Debug/obj.target/libEGL/../src/common/debug.o \ + # out/Debug/obj.target/libEGL/../src/common/event_tracer.o \ + # out/Debug/obj.target/libEGL/../src/common/mathutil.o \ + # out/Debug/obj.target/libEGL/../src/common/tls.o \ + # out/Debug/obj.target/libEGL/../src/common/utilities.o \ + # out/Debug/obj.target/libEGL/../src/libEGL/AttributeMap.o \ + # out/Debug/obj.target/libEGL/../src/libEGL/Config.o \ + # out/Debug/obj.target/libEGL/../src/libEGL/Display.o \ + # out/Debug/obj.target/libEGL/../src/libEGL/Error.o \ + # out/Debug/obj.target/libEGL/../src/libEGL/Surface.o \ + # out/Debug/obj.target/libEGL/../src/libEGL/libEGL.o \ + # out/Debug/obj.target/libEGL/../src/libEGL/main.o \ + # out/Debug/obj.target/libEGL/../src/common/win32/NativeWindow.o } package() { cd "${srcdir}"/angleproject - pushd build-${MINGW_CHOST} mkdir -p "${pkgdir}${MINGW_PREFIX}"/{bin,lib,include} - install out/Debug/src/libGLESv2.dll "${pkgdir}${MINGW_PREFIX}"/bin/libGLESv2.dll - install out/Debug/src/libEGL.dll "${pkgdir}${MINGW_PREFIX}"/bin/libEGL.dll + install out/Debug/lib.target/libGLESv2.dll "${pkgdir}${MINGW_PREFIX}"/bin/libGLESv2.dll + install out/Debug/lib.target/libEGL.dll "${pkgdir}${MINGW_PREFIX}"/bin/libEGL.dll ${MINGW_PREFIX}/bin/strip --strip-unneeded "${pkgdir}${MINGW_PREFIX}"/bin/*.dll - install libGLESv2.a "${pkgdir}${MINGW_PREFIX}"/lib/ - install libEGL.a "${pkgdir}${MINGW_PREFIX}"/lib/ + #install libGLESv2.a "${pkgdir}${MINGW_PREFIX}"/lib/ + #install libEGL.a "${pkgdir}${MINGW_PREFIX}"/lib/ - ${MINGW_PREFIX}/bin/strip --strip-debug "${pkgdir}${MINGW_PREFIX}"/lib/libEGL.a install libEGL.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/ install libGLESv2.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/ ${MINGW_PREFIX}/bin/strip --strip-unneeded "${pkgdir}${MINGW_PREFIX}"/lib/*.dll.a cp -Rv ../include/* "${pkgdir}${MINGW_PREFIX}"/include/ - - popd - } diff --git a/mingw-w64-angleproject-git/angleproject-disable-debug-annotations.patch b/mingw-w64-angleproject-git/angleproject-disable-debug-annotations.patch deleted file mode 100644 index 1df4e5ca83..0000000000 --- a/mingw-w64-angleproject-git/angleproject-disable-debug-annotations.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- angle/src/libGLESv2.gypi.orig 2014-12-29 14:50:37.625335694 +0100 -+++ angle/src/libGLESv2.gypi 2014-12-29 14:51:18.659761527 +0100 -@@ -483,11 +483,6 @@ - { - 'Debug_Base': - { -- 'defines': -- [ -- 'ANGLE_ENABLE_DEBUG_ANNOTATIONS', -- 'ANGLE_GENERATE_SHADER_DEBUG_INFO' -- ], - 'msvs_settings': - { - 'VCLinkerTool': ---- angle/src/libEGL.gypi.orig 2014-12-29 16:05:56.119799976 +0100 -+++ angle/src/libEGL.gypi 2014-12-29 16:06:17.452019110 +0100 -@@ -171,16 +171,6 @@ - ], - }, - }, -- 'configurations': -- { -- 'Debug_Base': -- { -- 'defines': -- [ -- 'ANGLE_ENABLE_DEBUG_ANNOTATIONS', -- ], -- }, -- }, - }, - ], - }, diff --git a/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch b/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch index 91bc337638..2d94a9a921 100644 --- a/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch +++ b/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch @@ -1,9 +1,27 @@ --- angle/src/libGLESv2/libGLESv2.def.orig 2014-12-30 12:59:07.560620988 +0100 +++ angle/src/libGLESv2/libGLESv2.def 2014-12-30 13:00:22.381399755 +0100 -@@ -294,3 +294,15 @@ - glBindTexImage @158 NONAME - glCreateRenderer @177 NONAME - glDestroyRenderer @178 NONAME +@@ -144,6 +144,7 @@ + glViewport @142 + + ; Extensions ++ glTexImage3DOES @143 + glBlitFramebufferANGLE @149 + glRenderbufferStorageMultisampleANGLE @150 + glDeleteFencesNV @151 +@@ -291,3 +292,25 @@ + ANGLEPlatformCurrent @290 + ANGLEPlatformInitialize @291 + ANGLEPlatformShutdown @292 ++ ++ ; EGL dependencies ++ glCreateContext @144 NONAME ++ glDestroyContext @145 NONAME ++ glMakeCurrent @146 NONAME ++ glGetCurrentContext @147 NONAME ++ glGetProcAddress @148 NONAME ++ glBindTexImage @158 NONAME ++ glCreateRenderer @177 NONAME ++ glDestroyRenderer @178 NONAME + + ; WebKit dependencies + ShInitBuiltInResources @300 NONAME diff --git a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch index 034a2e0d9d..91f60897ac 100644 --- a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch +++ b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch @@ -1,30 +1,30 @@ ---- angle/src/libGLESv2.gypi.orig 2014-12-29 16:26:05.272220904 +0100 -+++ angle/src/libGLESv2.gypi 2014-12-29 16:27:33.694129236 +0100 -@@ -531,6 +531,12 @@ +--- angleproject/src/libEGL.gypi.orig 2015-03-27 12:16:37.200400000 +0300 ++++ angleproject/src/libEGL.gypi 2015-03-27 12:21:32.352400000 +0300 +@@ -47,6 +47,12 @@ { 'msvs_enable_winphone' : '1', }], + ['TARGET=="win32"', { -+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2_mingw32.def' ], ++ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a src/libEGL/libEGL_mingw32.def' ], + }], + ['TARGET=="win64"', { -+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2.def' ], ++ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a src/libEGL/libEGL.def' ], + }], ], - 'configurations': - { ---- angle/src/libEGL.gypi.orig 2014-12-29 16:27:51.546312626 +0100 -+++ angle/src/libEGL.gypi 2014-12-29 16:28:53.332947338 +0100 -@@ -146,6 +146,12 @@ - { - 'msvs_enable_winphone' : '1', - }], -+ ['TARGET=="win32"', { -+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL_mingw32.def' ], -+ }], -+ ['TARGET=="win64"', { -+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL.def' ], -+ }], - ], - 'includes': [ '../build/common_defines.gypi', ], - 'msvs_settings': + }, + ], +--- angleproject/src/libGLESv2.gypi.orig 2015-03-27 12:17:45.575200000 +0300 ++++ angleproject/src/libGLESv2.gypi 2015-03-27 12:19:50.032000000 +0300 +@@ -721,6 +721,12 @@ + { + 'msvs_enable_winphone' : '1', + }], ++ ['TARGET=="win32"', { ++ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a src/libGLESv2/libGLESv2_mingw32.def' ], ++ }], ++ ['TARGET=="win64"', { ++ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a src/libGLESv2/libGLESv2.def' ], ++ }], + ], + 'libraries': [ + '-ldxguid -ld3d9 -lgdi32' diff --git a/mingw-w64-angleproject-git/angleproject-prevent-multiple-definition-errors.patch b/mingw-w64-angleproject-git/angleproject-prevent-multiple-definition-errors.patch deleted file mode 100644 index 836fffcd20..0000000000 --- a/mingw-w64-angleproject-git/angleproject-prevent-multiple-definition-errors.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- angle/src/libGLESv2.gypi.orig 2014-12-29 15:37:12.356076212 +0100 -+++ angle/src/libGLESv2.gypi 2014-12-29 15:37:36.310322769 +0100 -@@ -21,25 +21,11 @@ - '../include/GLSLANG/ShaderVars.h', - '../include/KHR/khrplatform.h', - '../include/angle_gl.h', -- 'common/RefCountObject.cpp', -- 'common/RefCountObject.h', -- 'common/angleutils.cpp', -- 'common/angleutils.h', -- 'common/blocklayout.cpp', -- 'common/blocklayout.h', - 'common/debug.cpp', - 'common/debug.h', -- 'common/event_tracer.cpp', -- 'common/event_tracer.h', - 'common/features.h', -- 'common/mathutil.cpp', -- 'common/mathutil.h', - 'common/platform.h', - 'common/NativeWindow.h', -- 'common/tls.cpp', -- 'common/tls.h', -- 'common/utilities.cpp', -- 'common/utilities.h', - 'common/version.h', - 'libGLESv2/BinaryStream.h', - 'libGLESv2/Buffer.cpp', ---- angle/src/compiler.gypi.orig 2014-12-30 16:14:45.387688544 +0100 -+++ angle/src/compiler.gypi 2014-12-30 16:14:52.091758591 +0100 -@@ -27,8 +27,6 @@ - 'common/angleutils.cpp', - 'common/blocklayout.cpp', - 'common/blocklayout.h', -- 'common/debug.cpp', -- 'common/debug.h', - 'common/event_tracer.cpp', - 'common/event_tracer.h', - 'common/mathutil.cpp', diff --git a/mingw-w64-angleproject-git/angleproject-undo-shader-renames.patch b/mingw-w64-angleproject-git/angleproject-undo-shader-renames.patch deleted file mode 100644 index 470756ab8d..0000000000 --- a/mingw-w64-angleproject-git/angleproject-undo-shader-renames.patch +++ /dev/null @@ -1,162 +0,0 @@ ---- angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp 2014-12-29 14:58:14.398042285 +0100 -+++ angle/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp.orig 2014-12-29 14:57:55.097843925 +0100 -@@ -27,20 +27,20 @@ - - const BYTE* const g_shaderCode[] = - { -- g_vs20_VS_standard, -- g_vs20_VS_flipy, -- g_ps20_PS_passthrough, -- g_ps20_PS_luminance, -- g_ps20_PS_componentmask -+ g_vs20_standardvs, -+ g_vs20_flipyvs, -+ g_ps20_passthroughps, -+ g_ps20_luminanceps, -+ g_ps20_componentmaskps - }; - - const size_t g_shaderSize[] = - { -- sizeof(g_vs20_VS_standard), -- sizeof(g_vs20_VS_flipy), -- sizeof(g_ps20_PS_passthrough), -- sizeof(g_ps20_PS_luminance), -- sizeof(g_ps20_PS_componentmask) -+ sizeof(g_vs20_standardvs), -+ sizeof(g_vs20_flipyvs), -+ sizeof(g_ps20_passthroughps), -+ sizeof(g_ps20_luminanceps), -+ sizeof(g_ps20_componentmaskps) - }; - } - ---- angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp.orig 2014-12-29 15:05:57.769805226 +0100 -+++ angle/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp 2014-12-29 15:06:40.179241153 +0100 -@@ -13,39 +13,39 @@ - #include "libGLESv2/main.h" - #include "libGLESv2/formatutils.h" - --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2dvs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughdepth2dps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2duips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2duips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2duips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2duips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum2dps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughdepth2d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dui11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2di11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dui11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2di11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dui11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg2di11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2dui11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr2di11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum2d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h" - --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3dvs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3dgs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3duips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3duips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3duips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3duips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum3dps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha3dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3d11vs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough3d11gs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dui11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3di11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dui11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3di11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dui11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrg3di11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3dui11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughr3di11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlum3d11ps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h" - - #include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/swizzlef2dps.h" - #include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/swizzlei2dps.h" ---- angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp.orig 2014-12-29 15:07:22.962680910 +0100 -+++ angle/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp 2014-12-29 15:07:33.924793589 +0100 -@@ -15,14 +15,14 @@ - #include "libGLESv2/FramebufferAttachment.h" - - // Precompiled shaders --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloatvs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloatps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloat11vs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearfloat11ps.h" - --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuintvs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuintps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuint11vs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearuint11ps.h" - --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsintvs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsintps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsint11vs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/clearsint11ps.h" - - namespace rx - { ---- angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp.orig 2014-12-29 15:08:04.781110747 +0100 -+++ angle/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp 2014-12-29 15:08:16.912235446 +0100 -@@ -22,11 +22,11 @@ - #include "libGLESv2/Context.h" - - // Precompiled shaders --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexturevs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexturegs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4fps.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4ips.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture_4uips.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_vs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_gs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4f.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4i.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h" - - namespace rx - { ---- angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp.orig 2014-12-29 15:08:54.720624075 +0100 -+++ angle/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp 2014-12-29 15:09:04.775727437 +0100 -@@ -12,8 +12,8 @@ - #include "libGLESv2/renderer/d3d/d3d11/Renderer11.h" - - // Precompiled shaders --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2dvs.h" --#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dps.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h" -+#include "libGLESv2/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d11ps.h" - - #include "common/features.h" - #include "common/NativeWindow.h" diff --git a/mingw-w64-angleproject-git/commit-409078f b/mingw-w64-angleproject-git/commit-409078f deleted file mode 100644 index af016deb7c..0000000000 --- a/mingw-w64-angleproject-git/commit-409078f +++ /dev/null @@ -1,363 +0,0 @@ -commit 409078f1e7c4ec79a1cbc58e3d0b3c399831ac5b -Author: Zhenyao Mo -Date: Tue Oct 28 13:23:18 2014 -0700 - - Remove ShGetVariableInfo() and related code. - - BUG=angle:775 - TEST=chromium builds and runs fine - - Change-Id: Ic62d3a3c9a8f034880b77a96f7f1c6be2691985e - Reviewed-on: https://chromium-review.googlesource.com/226004 - Tested-by: Zhenyao Mo - Reviewed-by: Jamie Madill - Reviewed-by: Shannon Woods - -diff --git a/include/GLSLANG/ShaderLang.h b/include/GLSLANG/ShaderLang.h -index 76012cf..def4946 100644 ---- a/include/GLSLANG/ShaderLang.h -+++ b/include/GLSLANG/ShaderLang.h -@@ -48,7 +48,7 @@ extern "C" { - - // Version number for shader translation API. - // It is incremented every time the API changes. --#define ANGLE_SH_VERSION 130 -+#define ANGLE_SH_VERSION 131 - - typedef enum { - SH_GLES2_SPEC = 0x8B40, -@@ -86,21 +86,8 @@ typedef enum { - } ShShaderOutput; - - typedef enum { -- SH_PRECISION_HIGHP = 0x5001, -- SH_PRECISION_MEDIUMP = 0x5002, -- SH_PRECISION_LOWP = 0x5003, -- SH_PRECISION_UNDEFINED = 0 --} ShPrecisionType; -- --typedef enum { - SH_INFO_LOG_LENGTH = 0x8B84, - SH_OBJECT_CODE_LENGTH = 0x8B88, // GL_SHADER_SOURCE_LENGTH -- SH_ACTIVE_UNIFORMS = 0x8B86, -- SH_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87, -- SH_ACTIVE_ATTRIBUTES = 0x8B89, -- SH_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A, -- SH_VARYINGS = 0x8BBB, -- SH_VARYING_MAX_LENGTH = 0x8BBC, - SH_MAPPED_NAME_MAX_LENGTH = 0x6000, - SH_NAME_MAX_LENGTH = 0x6001, - SH_HASHED_NAME_MAX_LENGTH = 0x6002, -@@ -364,17 +351,6 @@ COMPILER_EXPORT int ShCompile( - // including the null termination character. - // SH_OBJECT_CODE_LENGTH: the number of characters in the object code - // including the null termination character. --// SH_ACTIVE_ATTRIBUTES: the number of active attribute variables. --// SH_ACTIVE_ATTRIBUTE_MAX_LENGTH: the length of the longest active attribute --// variable name including the null --// termination character. --// SH_ACTIVE_UNIFORMS: the number of active uniform variables. --// SH_ACTIVE_UNIFORM_MAX_LENGTH: the length of the longest active uniform --// variable name including the null --// termination character. --// SH_VARYINGS: the number of varying variables. --// SH_VARYING_MAX_LENGTH: the length of the longest varying variable name --// including the null termination character. - // SH_MAPPED_NAME_MAX_LENGTH: the length of the mapped variable name including - // the null termination character. - // SH_NAME_MAX_LENGTH: the max length of a user-defined name including the -@@ -410,44 +386,6 @@ COMPILER_EXPORT void ShGetInfoLog(const ShHandle handle, char* infoLog); - // ShGetInfo with SH_OBJECT_CODE_LENGTH. - COMPILER_EXPORT void ShGetObjectCode(const ShHandle handle, char* objCode); - --// Returns information about a shader variable. --// Parameters: --// handle: Specifies the compiler --// variableType: Specifies the variable type; options include --// SH_ACTIVE_ATTRIBUTES, SH_ACTIVE_UNIFORMS, SH_VARYINGS. --// index: Specifies the index of the variable to be queried. --// length: Returns the number of characters actually written in the string --// indicated by name (excluding the null terminator) if a value other --// than NULL is passed. --// size: Returns the size of the variable. --// type: Returns the data type of the variable. --// precision: Returns the precision of the variable. --// staticUse: Returns 1 if the variable is accessed in a statement after --// pre-processing, whether or not run-time flow of control will --// cause that statement to be executed. --// Returns 0 otherwise. --// name: Returns a null terminated string containing the name of the --// variable. It is assumed that name has enough memory to accormodate --// the variable name. The size of the buffer required to store the --// variable name can be obtained by calling ShGetInfo with --// SH_ACTIVE_ATTRIBUTE_MAX_LENGTH, SH_ACTIVE_UNIFORM_MAX_LENGTH, --// SH_VARYING_MAX_LENGTH. --// mappedName: Returns a null terminated string containing the mapped name of --// the variable, It is assumed that mappedName has enough memory --// (SH_MAPPED_NAME_MAX_LENGTH), or NULL if don't care about the --// mapped name. If the name is not mapped, then name and mappedName --// are the same. --COMPILER_EXPORT void ShGetVariableInfo(const ShHandle handle, -- ShShaderInfo variableType, -- int index, -- size_t* length, -- int* size, -- sh::GLenum* type, -- ShPrecisionType* precision, -- int* staticUse, -- char* name, -- char* mappedName); -- - // Returns information about a name hashing entry from the latest compile. - // Parameters: - // handle: Specifies the compiler -diff --git a/src/compiler/translator/Compiler.cpp b/src/compiler/translator/Compiler.cpp -index 2824064..a93d7e6 100644 ---- a/src/compiler/translator/Compiler.cpp -+++ b/src/compiler/translator/Compiler.cpp -@@ -384,7 +384,6 @@ void TCompiler::clearResults() - uniforms.clear(); - expandedUniforms.clear(); - varyings.clear(); -- expandedVaryings.clear(); - interfaceBlocks.clear(); - - builtInFunctionEmulator.Cleanup(); -@@ -518,10 +517,8 @@ void TCompiler::collectVariables(TIntermNode* root) - symbolTable); - root->traverse(&collect); - -- // For backwards compatiblity with ShGetVariableInfo, expand struct -- // uniforms and varyings into separate variables for each field. -- sh::ExpandVariables(uniforms, &expandedUniforms); -- sh::ExpandVariables(varyings, &expandedVaryings); -+ // This is for enforcePackingRestriction(). -+ sh::ExpandUniforms(uniforms, &expandedUniforms); - } - - bool TCompiler::enforcePackingRestrictions() -diff --git a/src/compiler/translator/Compiler.h b/src/compiler/translator/Compiler.h -index 6d1e225..145ecb4 100644 ---- a/src/compiler/translator/Compiler.h -+++ b/src/compiler/translator/Compiler.h -@@ -72,9 +72,7 @@ class TCompiler : public TShHandleBase - const std::vector &getAttributes() const { return attributes; } - const std::vector &getOutputVariables() const { return outputVariables; } - const std::vector &getUniforms() const { return uniforms; } -- const std::vector &getExpandedUniforms() const { return expandedUniforms; } - const std::vector &getVaryings() const { return varyings; } -- const std::vector &getExpandedVaryings() const { return expandedVaryings; } - const std::vector &getInterfaceBlocks() const { return interfaceBlocks; } - - ShHashFunction64 getHashFunction() const { return hashFunction; } -@@ -144,7 +142,6 @@ class TCompiler : public TShHandleBase - std::vector uniforms; - std::vector expandedUniforms; - std::vector varyings; -- std::vector expandedVaryings; - std::vector interfaceBlocks; - - private: -diff --git a/src/compiler/translator/ShaderLang.cpp b/src/compiler/translator/ShaderLang.cpp -index 144ef90..35dac5f 100644 ---- a/src/compiler/translator/ShaderLang.cpp -+++ b/src/compiler/translator/ShaderLang.cpp -@@ -37,72 +37,6 @@ bool isInitialized = false; - // and the shading language compiler. - // - --static bool CheckVariableMaxLengths(const ShHandle handle, -- size_t expectedValue) --{ -- size_t activeUniformLimit = 0; -- ShGetInfo(handle, SH_ACTIVE_UNIFORM_MAX_LENGTH, &activeUniformLimit); -- size_t activeAttribLimit = 0; -- ShGetInfo(handle, SH_ACTIVE_ATTRIBUTE_MAX_LENGTH, &activeAttribLimit); -- size_t varyingLimit = 0; -- ShGetInfo(handle, SH_VARYING_MAX_LENGTH, &varyingLimit); -- return (expectedValue == activeUniformLimit && -- expectedValue == activeAttribLimit && -- expectedValue == varyingLimit); --} -- --bool CheckMappedNameMaxLength(const ShHandle handle, size_t expectedValue) --{ -- size_t mappedNameMaxLength = 0; -- ShGetInfo(handle, SH_MAPPED_NAME_MAX_LENGTH, &mappedNameMaxLength); -- return (expectedValue == mappedNameMaxLength); --} -- --template --const sh::ShaderVariable *ReturnVariable(const std::vector &infoList, int index) --{ -- if (index < 0 || static_cast(index) >= infoList.size()) -- { -- return NULL; -- } -- -- return &infoList[index]; --} -- --const sh::ShaderVariable *GetVariable(const TCompiler *compiler, ShShaderInfo varType, int index) --{ -- switch (varType) -- { -- case SH_ACTIVE_ATTRIBUTES: -- return ReturnVariable(compiler->getAttributes(), index); -- case SH_ACTIVE_UNIFORMS: -- return ReturnVariable(compiler->getExpandedUniforms(), index); -- case SH_VARYINGS: -- return ReturnVariable(compiler->getExpandedVaryings(), index); -- default: -- UNREACHABLE(); -- return NULL; -- } --} -- --ShPrecisionType ConvertPrecision(sh::GLenum precision) --{ -- switch (precision) -- { -- case GL_HIGH_FLOAT: -- case GL_HIGH_INT: -- return SH_PRECISION_HIGHP; -- case GL_MEDIUM_FLOAT: -- case GL_MEDIUM_INT: -- return SH_PRECISION_MEDIUMP; -- case GL_LOW_FLOAT: -- case GL_LOW_INT: -- return SH_PRECISION_LOWP; -- default: -- return SH_PRECISION_UNDEFINED; -- } --} -- - template - const std::vector *GetVariableList(const TCompiler *compiler, ShaderVariableType variableType); - -@@ -315,24 +249,6 @@ void ShGetInfo(const ShHandle handle, ShShaderInfo pname, size_t* params) - case SH_OBJECT_CODE_LENGTH: - *params = compiler->getInfoSink().obj.size() + 1; - break; -- case SH_ACTIVE_UNIFORMS: -- *params = compiler->getExpandedUniforms().size(); -- break; -- case SH_ACTIVE_UNIFORM_MAX_LENGTH: -- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); -- break; -- case SH_ACTIVE_ATTRIBUTES: -- *params = compiler->getAttributes().size(); -- break; -- case SH_ACTIVE_ATTRIBUTE_MAX_LENGTH: -- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); -- break; -- case SH_VARYINGS: -- *params = compiler->getExpandedVaryings().size(); -- break; -- case SH_VARYING_MAX_LENGTH: -- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); -- break; - case SH_MAPPED_NAME_MAX_LENGTH: - // Use longer length than MAX_SHORTENED_IDENTIFIER_SIZE to - // handle array and struct dereferences. -@@ -400,58 +316,6 @@ void ShGetObjectCode(const ShHandle handle, char* objCode) - strcpy(objCode, infoSink.obj.c_str()); - } - --void ShGetVariableInfo(const ShHandle handle, -- ShShaderInfo varType, -- int index, -- size_t* length, -- int* size, -- sh::GLenum* type, -- ShPrecisionType* precision, -- int* staticUse, -- char* name, -- char* mappedName) --{ -- if (!handle || !size || !type || !precision || !staticUse || !name) -- return; -- ASSERT((varType == SH_ACTIVE_ATTRIBUTES) || -- (varType == SH_ACTIVE_UNIFORMS) || -- (varType == SH_VARYINGS)); -- -- TShHandleBase* base = reinterpret_cast(handle); -- TCompiler* compiler = base->getAsCompiler(); -- if (compiler == 0) -- return; -- -- const sh::ShaderVariable *varInfo = GetVariable(compiler, varType, index); -- if (!varInfo) -- { -- return; -- } -- -- if (length) *length = varInfo->name.size(); -- *size = varInfo->elementCount(); -- *type = varInfo->type; -- *precision = ConvertPrecision(varInfo->precision); -- *staticUse = varInfo->staticUse ? 1 : 0; -- -- // This size must match that queried by -- // SH_ACTIVE_UNIFORM_MAX_LENGTH, SH_ACTIVE_ATTRIBUTE_MAX_LENGTH, SH_VARYING_MAX_LENGTH -- // in ShGetInfo, below. -- size_t variableLength = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); -- ASSERT(CheckVariableMaxLengths(handle, variableLength)); -- strncpy(name, varInfo->name.c_str(), variableLength); -- name[variableLength - 1] = 0; -- if (mappedName) -- { -- // This size must match that queried by -- // SH_MAPPED_NAME_MAX_LENGTH in ShGetInfo, below. -- size_t maxMappedNameLength = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); -- ASSERT(CheckMappedNameMaxLength(handle, maxMappedNameLength)); -- strncpy(mappedName, varInfo->mappedName.c_str(), maxMappedNameLength); -- mappedName[maxMappedNameLength - 1] = 0; -- } --} -- - void ShGetNameHashingEntry(const ShHandle handle, - int index, - char* name, -diff --git a/src/compiler/translator/VariableInfo.cpp b/src/compiler/translator/VariableInfo.cpp -index cd92706..d8e1378 100644 ---- a/src/compiler/translator/VariableInfo.cpp -+++ b/src/compiler/translator/VariableInfo.cpp -@@ -466,9 +466,8 @@ bool CollectVariables::visitBinary(Visit, TIntermBinary *binaryNode) - return true; - } - --template --void ExpandVariables(const std::vector &compact, -- std::vector *expanded) -+void ExpandUniforms(const std::vector &compact, -+ std::vector *expanded) - { - for (size_t variableIndex = 0; variableIndex < compact.size(); variableIndex++) - { -@@ -477,7 +476,4 @@ void ExpandVariables(const std::vector &compact, - } - } - --template void ExpandVariables(const std::vector &, std::vector *); --template void ExpandVariables(const std::vector &, std::vector *); -- - } -diff --git a/src/compiler/translator/VariableInfo.h b/src/compiler/translator/VariableInfo.h -index 9c6b6ba..92d376d 100644 ---- a/src/compiler/translator/VariableInfo.h -+++ b/src/compiler/translator/VariableInfo.h -@@ -59,10 +59,9 @@ class CollectVariables : public TIntermTraverser - const TSymbolTable &mSymbolTable; - }; - --// Expand struct variables to flattened lists of split variables --template --void ExpandVariables(const std::vector &compact, -- std::vector *expanded); -+// Expand struct uniforms to flattened lists of split variables -+void ExpandUniforms(const std::vector &compact, -+ std::vector *expanded); - - } - diff --git a/mingw-w64-angleproject-git/commit-4de44cb b/mingw-w64-angleproject-git/commit-4de44cb deleted file mode 100644 index 4c1c63ecbe..0000000000 --- a/mingw-w64-angleproject-git/commit-4de44cb +++ /dev/null @@ -1,747 +0,0 @@ -commit 4de44cb67e9e36966fb1993c0be35659a47182ef -Author: Zhenyao Mo -Date: Wed Oct 29 18:03:46 2014 -0700 - - Change ShaderLang APIs from c style to c++ style. - - BUG=angle:816 - TEST=gpu_unittests,angle_unittests,webgl_conformance - - Change-Id: I0b46c11f6055a82511bb946a6dc491360835526e - Reviewed-on: https://chromium-review.googlesource.com/226410 - Reviewed-by: Zhenyao Mo - Tested-by: Zhenyao Mo - -diff --git a/include/GLSLANG/ShaderLang.h b/include/GLSLANG/ShaderLang.h -index 0c1f8a0..647fed6 100644 ---- a/include/GLSLANG/ShaderLang.h -+++ b/include/GLSLANG/ShaderLang.h -@@ -27,6 +27,10 @@ - - #include "KHR/khrplatform.h" - -+#include -+#include -+#include -+ - // - // This is the platform independent interface between an OGL driver - // and the shading language compiler. -@@ -42,13 +46,9 @@ typedef unsigned int GLenum; - // Note: make sure to increment ANGLE_SH_VERSION when changing ShaderVars.h - #include "ShaderVars.h" - --#ifdef __cplusplus --extern "C" { --#endif -- - // Version number for shader translation API. - // It is incremented every time the API changes. --#define ANGLE_SH_VERSION 131 -+#define ANGLE_SH_VERSION 132 - - typedef enum { - SH_GLES2_SPEC = 0x8B40, -@@ -88,18 +88,6 @@ typedef enum { - SH_HLSL11_OUTPUT = 0x8B48 - } ShShaderOutput; - --typedef enum { -- SH_INFO_LOG_LENGTH = 0x8B84, -- SH_OBJECT_CODE_LENGTH = 0x8B88, // GL_SHADER_SOURCE_LENGTH -- SH_MAPPED_NAME_MAX_LENGTH = 0x6000, -- SH_NAME_MAX_LENGTH = 0x6001, -- SH_HASHED_NAME_MAX_LENGTH = 0x6002, -- SH_HASHED_NAMES_COUNT = 0x6003, -- SH_SHADER_VERSION = 0x6004, -- SH_RESOURCES_STRING_LENGTH = 0x6005, -- SH_OUTPUT_TYPE = 0x6006 --} ShShaderInfo; -- - // Compile options. - typedef enum { - SH_VALIDATE = 0, -@@ -198,14 +186,14 @@ typedef enum { - // - // Driver must call this first, once, before doing any other - // compiler operations. --// If the function succeeds, the return value is nonzero, else zero. -+// If the function succeeds, the return value is true, else false. - // --COMPILER_EXPORT int ShInitialize(); -+COMPILER_EXPORT bool ShInitialize(); - // - // Driver should call this at shutdown. --// If the function succeeds, the return value is nonzero, else zero. -+// If the function succeeds, the return value is true, else false. - // --COMPILER_EXPORT int ShFinalize(); -+COMPILER_EXPORT bool ShFinalize(); - - // The 64 bits hash function. The first parameter is the input string; the - // second parameter is the string length. -@@ -273,7 +261,7 @@ typedef struct - // Parameters: - // resources: The object to initialize. Will be comparable with memcmp. - // --COMPILER_EXPORT void ShInitBuiltInResources(ShBuiltInResources* resources); -+COMPILER_EXPORT void ShInitBuiltInResources(ShBuiltInResources *resources); - - // - // ShHandle held by but opaque to the driver. It is allocated, -@@ -282,18 +270,15 @@ COMPILER_EXPORT void ShInitBuiltInResources(ShBuiltInResources* resources); - // - // If handle creation fails, 0 will be returned. - // --typedef void* ShHandle; -+typedef void *ShHandle; - - // --// Returns the a concatenated list of the items in ShBuiltInResources as a string. -+// Returns the a concatenated list of the items in ShBuiltInResources as a -+// null-terminated string. - // This function must be updated whenever ShBuiltInResources is changed. - // Parameters: - // handle: Specifies the handle of the compiler to be used. --// outStringLen: Specifies the size of the buffer, in number of characters. The size --// of the buffer required to store the resources string can be obtained --// by calling ShGetInfo with SH_RESOURCES_STRING_LENGTH. --// outStr: Returns a null-terminated string representing all the built-in resources. --COMPILER_EXPORT void ShGetBuiltInResourcesString(const ShHandle handle, size_t outStringLen, char *outStr); -+COMPILER_EXPORT const std::string &ShGetBuiltInResourcesString(const ShHandle handle); - - // - // Driver calls these to create and destroy compiler objects. -@@ -311,12 +296,12 @@ COMPILER_EXPORT ShHandle ShConstructCompiler( - sh::GLenum type, - ShShaderSpec spec, - ShShaderOutput output, -- const ShBuiltInResources* resources); -+ const ShBuiltInResources *resources); - COMPILER_EXPORT void ShDestruct(ShHandle handle); - - // - // Compiles the given shader source. --// If the function succeeds, the return value is nonzero, else zero. -+// If the function succeeds, the return value is true, else false. - // Parameters: - // handle: Specifies the handle of compiler to be used. - // shaderStrings: Specifies an array of pointers to null-terminated strings -@@ -338,74 +323,36 @@ COMPILER_EXPORT void ShDestruct(ShHandle handle); - // SH_VARIABLES: Extracts attributes, uniforms, and varyings. - // Can be queried by calling ShGetVariableInfo(). - // --COMPILER_EXPORT int ShCompile( -+COMPILER_EXPORT bool ShCompile( - const ShHandle handle, -- const char* const shaderStrings[], -+ const char * const shaderStrings[], - size_t numStrings, -- int compileOptions -- ); -+ int compileOptions); - --// Returns a parameter from a compiled shader. --// Parameters: --// handle: Specifies the compiler --// pname: Specifies the parameter to query. --// The following parameters are defined: --// SH_INFO_LOG_LENGTH: the number of characters in the information log --// including the null termination character. --// SH_OBJECT_CODE_LENGTH: the number of characters in the object code --// including the null termination character. --// SH_MAPPED_NAME_MAX_LENGTH: the length of the mapped variable name including --// the null termination character. --// SH_NAME_MAX_LENGTH: the max length of a user-defined name including the --// null termination character. --// SH_HASHED_NAME_MAX_LENGTH: the max length of a hashed name including the --// null termination character. --// SH_HASHED_NAMES_COUNT: the number of hashed names from the latest compile. --// SH_SHADER_VERSION: the version of the shader language --// SH_OUTPUT_TYPE: the currently set language output type --// --// params: Requested parameter --COMPILER_EXPORT void ShGetInfo(const ShHandle handle, -- ShShaderInfo pname, -- size_t* params); -+// Return the version of the shader language. -+COMPILER_EXPORT int ShGetShaderVersion(const ShHandle handle); -+ -+// Return the currently set language output type. -+COMPILER_EXPORT ShShaderOutput ShGetShaderOutputType( -+ const ShHandle handle); - --// Returns nul-terminated information log for a compiled shader. -+// Returns null-terminated information log for a compiled shader. - // Parameters: - // handle: Specifies the compiler --// infoLog: Specifies an array of characters that is used to return --// the information log. It is assumed that infoLog has enough memory --// to accomodate the information log. The size of the buffer required --// to store the returned information log can be obtained by calling --// ShGetInfo with SH_INFO_LOG_LENGTH. --COMPILER_EXPORT void ShGetInfoLog(const ShHandle handle, char* infoLog); -+COMPILER_EXPORT const std::string &ShGetInfoLog(const ShHandle handle); - - // Returns null-terminated object code for a compiled shader. - // Parameters: - // handle: Specifies the compiler --// infoLog: Specifies an array of characters that is used to return --// the object code. It is assumed that infoLog has enough memory to --// accomodate the object code. The size of the buffer required to --// store the returned object code can be obtained by calling --// ShGetInfo with SH_OBJECT_CODE_LENGTH. --COMPILER_EXPORT void ShGetObjectCode(const ShHandle handle, char* objCode); -- --// Returns information about a name hashing entry from the latest compile. -+COMPILER_EXPORT const std::string &ShGetObjectCode(const ShHandle handle); -+ -+// Returns a (original_name, hash) map containing all the user defined -+// names in the shader, including variable names, function names, struct -+// names, and struct field names. - // Parameters: - // handle: Specifies the compiler --// index: Specifies the index of the name hashing entry to be queried. --// name: Returns a null terminated string containing the user defined name. --// It is assumed that name has enough memory to accomodate the name. --// The size of the buffer required to store the user defined name can --// be obtained by calling ShGetInfo with SH_NAME_MAX_LENGTH. --// hashedName: Returns a null terminated string containing the hashed name of --// the uniform variable, It is assumed that hashedName has enough --// memory to accomodate the name. The size of the buffer required --// to store the name can be obtained by calling ShGetInfo with --// SH_HASHED_NAME_MAX_LENGTH. --COMPILER_EXPORT void ShGetNameHashingEntry(const ShHandle handle, -- int index, -- char* name, -- char* hashedName); -+COMPILER_EXPORT const std::map *ShGetNameHashingMap( -+ const ShHandle handle); - - // Shader variable inspection. - // Returns a pointer to a list of variables of the designated type. -@@ -425,17 +372,17 @@ typedef struct - int size; - } ShVariableInfo; - --// Returns 1 if the passed in variables pack in maxVectors following -+// Returns true if the passed in variables pack in maxVectors following - // the packing rules from the GLSL 1.017 spec, Appendix A, section 7. --// Returns 0 otherwise. Also look at the SH_ENFORCE_PACKING_RESTRICTIONS -+// Returns false otherwise. Also look at the SH_ENFORCE_PACKING_RESTRICTIONS - // flag above. - // Parameters: - // maxVectors: the available rows of registers. - // varInfoArray: an array of variable info (types and sizes). - // varInfoArraySize: the size of the variable array. --COMPILER_EXPORT int ShCheckVariablesWithinPackingLimits( -+COMPILER_EXPORT bool ShCheckVariablesWithinPackingLimits( - int maxVectors, -- ShVariableInfo* varInfoArray, -+ ShVariableInfo *varInfoArray, - size_t varInfoArraySize); - - // Gives the compiler-assigned register for an interface block. -@@ -446,7 +393,7 @@ COMPILER_EXPORT int ShCheckVariablesWithinPackingLimits( - // interfaceBlockName: Specifies the interface block - // indexOut: output variable that stores the assigned register - COMPILER_EXPORT bool ShGetInterfaceBlockRegister(const ShHandle handle, -- const char *interfaceBlockName, -+ const std::string &interfaceBlockName, - unsigned int *indexOut); - - // Gives the compiler-assigned register for uniforms in the default -@@ -458,11 +405,7 @@ COMPILER_EXPORT bool ShGetInterfaceBlockRegister(const ShHandle handle, - // interfaceBlockName: Specifies the uniform - // indexOut: output variable that stores the assigned register - COMPILER_EXPORT bool ShGetUniformRegister(const ShHandle handle, -- const char *uniformName, -+ const std::string &uniformName, - unsigned int *indexOut); - --#ifdef __cplusplus --} --#endif -- - #endif // _COMPILER_INTERFACE_INCLUDED_ -diff --git a/src/compiler/translator/Compiler.h b/src/compiler/translator/Compiler.h -index 145ecb4..b6c9d13 100644 ---- a/src/compiler/translator/Compiler.h -+++ b/src/compiler/translator/Compiler.h -@@ -80,7 +80,7 @@ class TCompiler : public TShHandleBase - TSymbolTable& getSymbolTable() { return symbolTable; } - ShShaderSpec getShaderSpec() const { return shaderSpec; } - ShShaderOutput getOutputType() const { return outputType; } -- std::string getBuiltInResourcesString() const { return builtInResourcesString; } -+ const std::string &getBuiltInResourcesString() const { return builtInResourcesString; } - - // Get the resources set by InitBuiltInSymbolTable - const ShBuiltInResources& getResources() const; -diff --git a/src/compiler/translator/ShaderLang.cpp b/src/compiler/translator/ShaderLang.cpp -index 35dac5f..0d6a1d6 100644 ---- a/src/compiler/translator/ShaderLang.cpp -+++ b/src/compiler/translator/ShaderLang.cpp -@@ -84,32 +84,48 @@ const std::vector *GetShaderVariables(const ShHandle handle, ShaderVariabl - return GetVariableList(compiler, variableType); - } - -+TCompiler *GetCompilerFromHandle(ShHandle handle) -+{ -+ if (!handle) -+ return NULL; -+ TShHandleBase *base = static_cast(handle); -+ return base->getAsCompiler(); - } - -+TranslatorHLSL *GetTranslatorHLSLFromHandle(ShHandle handle) -+{ -+ if (!handle) -+ return NULL; -+ TShHandleBase *base = static_cast(handle); -+ return base->getAsTranslatorHLSL(); -+} -+ -+} // namespace anonymous -+ - // - // Driver must call this first, once, before doing any other compiler operations. - // Subsequent calls to this function are no-op. - // --int ShInitialize() -+bool ShInitialize() - { - if (!isInitialized) - { - isInitialized = InitProcess(); - } -- return isInitialized ? 1 : 0; -+ return isInitialized; - } - - // - // Cleanup symbol tables - // --int ShFinalize() -+bool ShFinalize() - { - if (isInitialized) - { - DetachProcess(); - isInitialized = false; - } -- return 1; -+ return true; - } - - // -@@ -190,23 +206,13 @@ void ShDestruct(ShHandle handle) - DeleteCompiler(base->getAsCompiler()); - } - --void ShGetBuiltInResourcesString(const ShHandle handle, size_t outStringLen, char *outString) -+const std::string &ShGetBuiltInResourcesString(const ShHandle handle) - { -- if (!handle || !outString) -- { -- return; -- } -- -- TShHandleBase *base = static_cast(handle); -- TCompiler *compiler = base->getAsCompiler(); -- if (!compiler) -- { -- return; -- } -- -- strncpy(outString, compiler->getBuiltInResourcesString().c_str(), outStringLen); -- outString[outStringLen - 1] = '\0'; -+ TCompiler *compiler = GetCompilerFromHandle(handle); -+ ASSERT(compiler); -+ return compiler->getBuiltInResourcesString(); - } -+ - // - // Do an actual compile on the given strings. The result is left - // in the given compile object. -@@ -214,149 +220,62 @@ void ShGetBuiltInResourcesString(const ShHandle handle, size_t outStringLen, cha - // Return: The return value of ShCompile is really boolean, indicating - // success or failure. - // --int ShCompile( -+bool ShCompile( - const ShHandle handle, -- const char* const shaderStrings[], -+ const char *const shaderStrings[], - size_t numStrings, - int compileOptions) - { -- if (handle == 0) -- return 0; -- -- TShHandleBase* base = reinterpret_cast(handle); -- TCompiler* compiler = base->getAsCompiler(); -- if (compiler == 0) -- return 0; -+ TCompiler *compiler = GetCompilerFromHandle(handle); -+ ASSERT(compiler); - -- bool success = compiler->compile(shaderStrings, numStrings, compileOptions); -- return success ? 1 : 0; -+ return compiler->compile(shaderStrings, numStrings, compileOptions); - } - --void ShGetInfo(const ShHandle handle, ShShaderInfo pname, size_t* params) -+int ShGetShaderVersion(const ShHandle handle) - { -- if (!handle || !params) -- return; -- -- TShHandleBase* base = static_cast(handle); -- TCompiler* compiler = base->getAsCompiler(); -- if (!compiler) return; -+ TCompiler* compiler = GetCompilerFromHandle(handle); -+ ASSERT(compiler); -+ return compiler->getShaderVersion(); -+} - -- switch(pname) -- { -- case SH_INFO_LOG_LENGTH: -- *params = compiler->getInfoSink().info.size() + 1; -- break; -- case SH_OBJECT_CODE_LENGTH: -- *params = compiler->getInfoSink().obj.size() + 1; -- break; -- case SH_MAPPED_NAME_MAX_LENGTH: -- // Use longer length than MAX_SHORTENED_IDENTIFIER_SIZE to -- // handle array and struct dereferences. -- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); -- break; -- case SH_NAME_MAX_LENGTH: -- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec()); -- break; -- case SH_HASHED_NAME_MAX_LENGTH: -- if (compiler->getHashFunction() == NULL) { -- *params = 0; -- } else { -- // 64 bits hashing output requires 16 bytes for hex -- // representation. -- const char HashedNamePrefix[] = HASHED_NAME_PREFIX; -- (void)HashedNamePrefix; -- *params = 16 + sizeof(HashedNamePrefix); -- } -- break; -- case SH_HASHED_NAMES_COUNT: -- *params = compiler->getNameMap().size(); -- break; -- case SH_SHADER_VERSION: -- *params = compiler->getShaderVersion(); -- break; -- case SH_RESOURCES_STRING_LENGTH: -- *params = compiler->getBuiltInResourcesString().length() + 1; -- break; -- case SH_OUTPUT_TYPE: -- *params = compiler->getOutputType(); -- break; -- default: UNREACHABLE(); -- } -+ShShaderOutput ShGetShaderOutputType(const ShHandle handle) -+{ -+ TCompiler* compiler = GetCompilerFromHandle(handle); -+ ASSERT(compiler); -+ return compiler->getOutputType(); - } - - // - // Return any compiler log of messages for the application. - // --void ShGetInfoLog(const ShHandle handle, char* infoLog) -+const std::string &ShGetInfoLog(const ShHandle handle) - { -- if (!handle || !infoLog) -- return; -+ TCompiler *compiler = GetCompilerFromHandle(handle); -+ ASSERT(compiler); - -- TShHandleBase* base = static_cast(handle); -- TCompiler* compiler = base->getAsCompiler(); -- if (!compiler) return; -- -- TInfoSink& infoSink = compiler->getInfoSink(); -- strcpy(infoLog, infoSink.info.c_str()); -+ TInfoSink &infoSink = compiler->getInfoSink(); -+ return infoSink.info.str(); - } - - // - // Return any object code. - // --void ShGetObjectCode(const ShHandle handle, char* objCode) -+const std::string &ShGetObjectCode(const ShHandle handle) - { -- if (!handle || !objCode) -- return; -+ TCompiler *compiler = GetCompilerFromHandle(handle); -+ ASSERT(compiler); - -- TShHandleBase* base = static_cast(handle); -- TCompiler* compiler = base->getAsCompiler(); -- if (!compiler) return; -- -- TInfoSink& infoSink = compiler->getInfoSink(); -- strcpy(objCode, infoSink.obj.c_str()); -+ TInfoSink &infoSink = compiler->getInfoSink(); -+ return infoSink.obj.str(); - } - --void ShGetNameHashingEntry(const ShHandle handle, -- int index, -- char* name, -- char* hashedName) -+const std::map *ShGetNameHashingMap( -+ const ShHandle handle) - { -- if (!handle || !name || !hashedName || index < 0) -- return; -- -- TShHandleBase* base = static_cast(handle); -- TCompiler* compiler = base->getAsCompiler(); -- if (!compiler) return; -- -- const NameMap& nameMap = compiler->getNameMap(); -- if (index >= static_cast(nameMap.size())) -- return; -- -- NameMap::const_iterator it = nameMap.begin(); -- for (int i = 0; i < index; ++i) -- ++it; -- -- size_t len = it->first.length() + 1; -- size_t max_len = 0; -- ShGetInfo(handle, SH_NAME_MAX_LENGTH, &max_len); -- if (len > max_len) { -- ASSERT(false); -- len = max_len; -- } -- strncpy(name, it->first.c_str(), len); -- // To be on the safe side in case the source is longer than expected. -- name[len - 1] = '\0'; -- -- len = it->second.length() + 1; -- max_len = 0; -- ShGetInfo(handle, SH_HASHED_NAME_MAX_LENGTH, &max_len); -- if (len > max_len) { -- ASSERT(false); -- len = max_len; -- } -- strncpy(hashedName, it->second.c_str(), len); -- // To be on the safe side in case the source is longer than expected. -- hashedName[len - 1] = '\0'; -+ TCompiler *compiler = GetCompilerFromHandle(handle); -+ ASSERT(compiler); -+ return &(compiler->getNameMap()); - } - - const std::vector *ShGetUniforms(const ShHandle handle) -@@ -384,11 +303,11 @@ const std::vector *ShGetInterfaceBlocks(const ShHandle handl - return GetShaderVariables(handle, SHADERVAR_INTERFACEBLOCK); - } - --int ShCheckVariablesWithinPackingLimits( -- int maxVectors, ShVariableInfo* varInfoArray, size_t varInfoArraySize) -+bool ShCheckVariablesWithinPackingLimits( -+ int maxVectors, ShVariableInfo *varInfoArray, size_t varInfoArraySize) - { - if (varInfoArraySize == 0) -- return 1; -+ return true; - ASSERT(varInfoArray); - std::vector variables; - for (size_t ii = 0; ii < varInfoArraySize; ++ii) -@@ -397,24 +316,17 @@ int ShCheckVariablesWithinPackingLimits( - variables.push_back(var); - } - VariablePacker packer; -- return packer.CheckVariablesWithinPackingLimits(maxVectors, variables) ? 1 : 0; -+ return packer.CheckVariablesWithinPackingLimits(maxVectors, variables); - } - - bool ShGetInterfaceBlockRegister(const ShHandle handle, -- const char *interfaceBlockName, -+ const std::string &interfaceBlockName, - unsigned int *indexOut) - { -- if (!handle || !interfaceBlockName || !indexOut) -- { -- return false; -- } -+ ASSERT(indexOut); - -- TShHandleBase* base = static_cast(handle); -- TranslatorHLSL* translator = base->getAsTranslatorHLSL(); -- if (!translator) -- { -- return false; -- } -+ TranslatorHLSL *translator = GetTranslatorHLSLFromHandle(handle); -+ ASSERT(translator); - - if (!translator->hasInterfaceBlock(interfaceBlockName)) - { -@@ -426,20 +338,12 @@ bool ShGetInterfaceBlockRegister(const ShHandle handle, - } - - bool ShGetUniformRegister(const ShHandle handle, -- const char *uniformName, -+ const std::string &uniformName, - unsigned int *indexOut) - { -- if (!handle || !uniformName || !indexOut) -- { -- return false; -- } -- -- TShHandleBase* base = static_cast(handle); -- TranslatorHLSL* translator = base->getAsTranslatorHLSL(); -- if (!translator) -- { -- return false; -- } -+ ASSERT(indexOut); -+ TranslatorHLSL *translator = GetTranslatorHLSLFromHandle(handle); -+ ASSERT(translator); - - if (!translator->hasUniform(uniformName)) - { -diff --git a/src/libGLESv2/renderer/d3d/ShaderD3D.cpp b/src/libGLESv2/renderer/d3d/ShaderD3D.cpp -index d08a81d..44e73e5 100644 ---- a/src/libGLESv2/renderer/d3d/ShaderD3D.cpp -+++ b/src/libGLESv2/renderer/d3d/ShaderD3D.cpp -@@ -102,7 +102,7 @@ void ShaderD3D::initializeCompiler() - { - if (!mFragmentCompiler) - { -- int result = ShInitialize(); -+ bool result = ShInitialize(); - - if (result) - { -@@ -252,23 +252,16 @@ - result = ShCompile(compiler, sourceStrings, ArraySize(sourceStrings), compileOptions | SH_SOURCE_PATH); - } - -- size_t shaderVersion = 100; -- ShGetInfo(compiler, SH_SHADER_VERSION, &shaderVersion); -+ mShaderVersion = ShGetShaderVersion(compiler); - -- mShaderVersion = static_cast(shaderVersion); -- -- if (shaderVersion == 300 && data.clientVersion < 3) -+ if (mShaderVersion == 300 && data.clientVersion < 3) - { - mInfoLog = "GLSL ES 3.00 is not supported by OpenGL ES 2.0 contexts"; - TRACE("\n%s", mInfoLog.c_str()); - } - else if (result) - { -- size_t objCodeLen = 0; -- ShGetInfo(compiler, SH_OBJECT_CODE_LENGTH, &objCodeLen); -- -- std::vector outputHLSL(objCodeLen); -- ShGetObjectCode(compiler, outputHLSL.data()); -+ mHlsl = ShGetObjectCode(compiler); - - #ifdef _DEBUG - // Prefix hlsl shader with commented out glsl shader -@@ -288,10 +281,8 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source) - curPos = (nextLine == std::string::npos) ? std::string::npos : (nextLine + 1); - } - hlslStream << "\n\n"; -- hlslStream << outputHLSL.data(); -+ hlslStream << mHlsl; - mHlsl = hlslStream.str(); --#else -- mHlsl = outputHLSL.data(); - #endif - - mUniforms = *GetShaderVariables(ShGetUniforms(compiler)); -@@ -303,7 +294,7 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source) - if (uniform.staticUse) - { - unsigned int index = -1; -- bool result = ShGetUniformRegister(compiler, uniform.name.c_str(), &index); -+ bool result = ShGetUniformRegister(compiler, uniform.name, &index); - UNUSED_ASSERTION_VARIABLE(result); - ASSERT(result); - -@@ -320,7 +311,7 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source) - if (interfaceBlock.staticUse) - { - unsigned int index = -1; -- bool result = ShGetInterfaceBlockRegister(compiler, interfaceBlock.name.c_str(), &index); -+ bool result = ShGetInterfaceBlockRegister(compiler, interfaceBlock.name, &index); - UNUSED_ASSERTION_VARIABLE(result); - ASSERT(result); - -@@ -330,14 +321,9 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source) - } - else - { -- size_t infoLogLen = 0; -- ShGetInfo(compiler, SH_INFO_LOG_LENGTH, &infoLogLen); -+ mInfoLog = ShGetInfoLog(compiler); - -- std::vector infoLog(infoLogLen); -- ShGetInfoLog(compiler, infoLog.data()); -- mInfoLog = infoLog.data(); -- -- TRACE("\n%s", infoLog.data()); -+ TRACE("\n%s", mInfoLog.c_str()); - } - } - -@@ -419,10 +405,7 @@ - default: UNREACHABLE(); return SH_HLSL9_OUTPUT; - } - -- size_t outputType = 0; -- ShGetInfo(compiler, SH_OUTPUT_TYPE, &outputType); -- -- return static_cast(outputType); -+ return ShGetShaderOutputType(compiler); - } - - bool ShaderD3D::compile(const gl::Data &data, const std::string &source) -diff --git a/tests/compiler_tests/ExpressionLimit_test.cpp b/tests/compiler_tests/ExpressionLimit_test.cpp -index 0236064..1dc2be6 100644 ---- a/tests/compiler_tests/ExpressionLimit_test.cpp -+++ b/tests/compiler_tests/ExpressionLimit_test.cpp -@@ -144,19 +144,18 @@ protected: - // substring in the error log. This way we know the error is specific - // to the issue we are testing. - bool CheckShaderCompilation(ShHandle compiler, -- const char* source, -+ const char *source, - int compileOptions, -- const char* expected_error) { -+ const char *expected_error) -+ { - bool success = ShCompile(compiler, &source, 1, compileOptions) != 0; -- if (success) { -+ if (success) -+ { - success = !expected_error; -- } else { -- size_t bufferLen = 0; -- ShGetInfo(compiler, SH_INFO_LOG_LENGTH, &bufferLen); -- char* buffer(new char [bufferLen]); -- ShGetInfoLog(compiler, buffer); -- std::string log(buffer, buffer + bufferLen); -- delete [] buffer; -+ } -+ else -+ { -+ std::string log = ShGetInfoLog(compiler); - if (expected_error) - success = log.find(expected_error) != std::string::npos; - diff --git a/mingw-w64-angleproject-git/libEGL_mingw32.def b/mingw-w64-angleproject-git/libEGL_mingw32.def index 492ad4d0cf..dde91748ed 100644 --- a/mingw-w64-angleproject-git/libEGL_mingw32.def +++ b/mingw-w64-angleproject-git/libEGL_mingw32.def @@ -39,3 +39,15 @@ EXPORTS eglGetPlatformDisplayEXT@12 @35 eglQuerySurfacePointerANGLE@16 @36 eglPostSubBufferNV@24 @37 + + ; 1.5 entry points + eglCreateSync@12 @38 + eglDestroySyn@8 @39 + eglClientWaitSync@16 @40 + eglGetSyncAttrib@16 @41 + eglCreateImage@20 @42 + eglDestroyImage@8 @43 + eglGetPlatformDisplay@12 @44 + eglCreatePlatformWindowSurface@16 @45 + eglCreatePlatformPixmapSurface@16 @46 + eglWaitSync@12 @47 diff --git a/mingw-w64-angleproject-git/libGLESv2_mingw32.def b/mingw-w64-angleproject-git/libGLESv2_mingw32.def index 18ffcf6a0d..c5b015ff6e 100644 --- a/mingw-w64-angleproject-git/libGLESv2_mingw32.def +++ b/mingw-w64-angleproject-git/libGLESv2_mingw32.def @@ -285,6 +285,14 @@ EXPORTS glTexStorage3D@24 @282 glGetInternalformativ@20 @283 + ; Setting up TRACE macro callbacks + SetTraceFunctionPointers @284 + + ; ANGLE Platform Implementation + ANGLEPlatformCurrent @290 + ANGLEPlatformInitialize @291 + ANGLEPlatformShutdown @292 + ; EGL dependencies glCreateContext @144 NONAME glDestroyContext @145 NONAME From 420ebacd23af616e81ae9c27c729f0ca77c4adf7 Mon Sep 17 00:00:00 2001 From: David Macek Date: Fri, 27 Mar 2015 17:38:23 +0100 Subject: [PATCH 0755/2060] glpk: Fix crash in 64-bit build, add GMP support --- mingw-w64-glpk/PKGBUILD | 31 ++++++++++++++++++++---------- mingw-w64-glpk/timeval-64bit.patch | 17 ++++++++++++++++ 2 files changed, 38 insertions(+), 10 deletions(-) create mode 100644 mingw-w64-glpk/timeval-64bit.patch diff --git a/mingw-w64-glpk/PKGBUILD b/mingw-w64-glpk/PKGBUILD index 434c604234..838d093cbf 100644 --- a/mingw-w64-glpk/PKGBUILD +++ b/mingw-w64-glpk/PKGBUILD @@ -3,36 +3,47 @@ _realname=glpk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.55 -pkgrel=1 -pkgdesc="GNU Linear Programming Kit : solve LP, MIP and other problems (mingw-w64)" +pkgrel=2 +pkgdesc="GNU Linear Programming Kit: solve LP, MIP and other problems (mingw-w64)" arch=('any') url="http://www.gnu.org/software/glpk/glpk.html" license=('GPL') -options=('staticlibs') -source=(http://ftp.gnu.org/gnu/glpk/glpk-${pkgver}.tar.gz) -sha1sums=('893058aada022a8dfc63c675ebcd7e7e86a3a363') +depends=("${MINGW_PACKAGE_PREFIX}-gmp") +options=('staticlibs' !strip debug) +source=("http://ftp.gnu.org/gnu/glpk/glpk-${pkgver}.tar.gz" + 'timeval-64bit.patch') +sha1sums=('893058aada022a8dfc63c675ebcd7e7e86a3a363' + '18a4315cf751c0e1121d25dbb115aa6187324128') prepare () { cd "${srcdir}/glpk-${pkgver}" sed -i "s|-version-info|-no-undefined -version-info|g" src/Makefile.am autoreconf -vfi + patch -p1 -i "${srcdir}/timeval-64bit.patch" } build() { cd "${srcdir}" [ -d build-${CARCH} ] && rm -rf build-${CARCH} - mkdir -p build-${CARCH} && pushd build-${CARCH} + mkdir -p build-${CARCH} && cd build-${CARCH} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --enable-static + --enable-static \ + --with-gmp \ + --with-gnu-ld make } -package() { - cd "${srcdir}/build-${CARCH}" - make DESTDIR="${pkgdir}" install +check() { + cd "${srcdir}/build-${CARCH}" + make check +} + +package() { + cd "${srcdir}/build-${CARCH}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-glpk/timeval-64bit.patch b/mingw-w64-glpk/timeval-64bit.patch new file mode 100644 index 0000000000..3537d5efe8 --- /dev/null +++ b/mingw-w64-glpk/timeval-64bit.patch @@ -0,0 +1,17 @@ +diff -Naur glpk-4.55.orig/src/env/time.c glpk-4.55/src/env/time.c +--- glpk-4.55.orig/src/env/time.c 2015-03-27 02:15:07.371110800 +0100 ++++ glpk-4.55/src/env/time.c 2015-03-27 17:24:58.926888700 +0100 +@@ -54,10 +54,12 @@ + double glp_time(void) + { struct timeval tv; + struct tm *tm; ++ time_t sec; + int j; + double t; + gettimeofday(&tv, NULL); +- tm = gmtime(&tv.tv_sec); ++ sec = tv.tv_sec; ++ tm = gmtime(&sec); + j = jday(tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year); + xassert(j >= 0); + t = ((((double)(j - EPOCH) * 24.0 + (double)tm->tm_hour) * 60.0 + From 500baa2857897c9c200485771a4b8bae1b527326 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sat, 28 Mar 2015 00:31:08 +0100 Subject: [PATCH 0756/2060] opencollada: Update to r1079, fix cmake files --- mingw-w64-opencollada-git/PKGBUILD | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mingw-w64-opencollada-git/PKGBUILD b/mingw-w64-opencollada-git/PKGBUILD index 4f16606de3..e2bf7d4166 100644 --- a/mingw-w64-opencollada-git/PKGBUILD +++ b/mingw-w64-opencollada-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=opencollada pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r1027.729147d +pkgver=r1079.2effbf1 pkgrel=1 pkgdesc="Stream based reader and writer library for COLLADA files (mingw-w64)" arch=('any') @@ -46,4 +46,8 @@ build() { package() { cd "${srcdir}"/build-${MINGW_CHOST} make -j1 install + + # replace absolute paths in .cmake scripts + sed -i '1i get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)' "${pkgdir}${MINGW_PREFIX}/lib/${_realname}/cmake"/*Targets*.cmake + sed -i "s;$(cygpath -ma "${pkgdir}${MINGW_PREFIX}");\${PACKAGE_PREFIX_DIR};" "${pkgdir}${MINGW_PREFIX}/lib/${_realname}/cmake"/*Targets*.cmake } From 537b796fef1253dc64c83676a07d690600ee33a0 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 28 Mar 2015 09:56:43 +0100 Subject: [PATCH 0757/2060] librest: new package. --- mingw-w64-librest/001-win.patch | 20 ++++++++++++ mingw-w64-librest/PKGBUILD | 55 +++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 mingw-w64-librest/001-win.patch create mode 100644 mingw-w64-librest/PKGBUILD diff --git a/mingw-w64-librest/001-win.patch b/mingw-w64-librest/001-win.patch new file mode 100644 index 0000000000..d037747683 --- /dev/null +++ b/mingw-w64-librest/001-win.patch @@ -0,0 +1,20 @@ +--- ./rest/Makefile.am.orig 2014-09-03 14:01:16.000000000 +0200 ++++ ./rest/Makefile.am 2015-03-27 18:20:11.647583400 +0100 +@@ -124,6 +124,7 @@ + Rest_@API_VERSION_AM@_gir_EXPORT_PACKAGES = rest-@API_VERSION@ + REST_CINCLUDES=$(patsubst %,--c-include='rest/%',$(shell echo $(lib_headers))) + INTROSPECTION_SCANNER_ARGS = $(REST_CINCLUDES) ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + girdir = $(datadir)/gir-1.0 + dist_gir_DATA = $(INTROSPECTION_GIRS) +--- ./rest-extras/Makefile.am.orig 2015-03-27 18:19:35.128554000 +0100 ++++ ./rest-extras/Makefile.am 2015-03-27 18:20:01.215165100 +0100 +@@ -51,6 +51,7 @@ + # need to include ../rest when scanning/compiling + INTROSPECTION_SCANNER_ARGS = --add-include-path=$(top_builddir)/rest --identifier-prefix= + INTROSPECTION_COMPILER_ARGS = --includedir=$(top_builddir)/rest ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + REST_EXTRAS_CINCLUDES=$(patsubst %,--c-include='rest/%',$(shell echo $(lib_headers))) + INTROSPECTION_SCANNER_ARGS += $(REST_EXTRAS_CINCLUDES) diff --git a/mingw-w64-librest/PKGBUILD b/mingw-w64-librest/PKGBUILD new file mode 100644 index 0000000000..03f65d6feb --- /dev/null +++ b/mingw-w64-librest/PKGBUILD @@ -0,0 +1,55 @@ +# Maintainer: Andrea Zagli + +_realname=rest +pkgname="${MINGW_PACKAGE_PREFIX}-lib${_realname}" +pkgver=0.7.93 +pkgrel=1 +arch=('any') +pkgdesc="Helper library for RESTful services (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-libsoup" + "${MINGW_PACKAGE_PREFIX}-libxml2") +makedepends=("${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "gtk-doc" + "intltool") +options=('strip' 'staticlibs') +license=("LGPL 2.1") +url="http://www.gnome.org/" +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('c710644455340a44ddc005c645c466f05c0d779993138ea21a62c6082108b216' + 'c7b1ebbc45071b08493758b6953e19cec4d7eac1b8e95fdb67011797b4a26a93') + +prepare() { + cd ${_realname}-${pkgver} + + patch -b -V simple -p1 -i ${srcdir}/001-win.patch + + autoreconf -fiv +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + mkdir -p docs/reference/rest/html + cp -rf ../${_realname}-${pkgver}/docs/reference/rest/html/* docs/reference/rest/html + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-introspection \ + --without-ca-certificates + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/lib${_realname}/COPYING" +} From ca30cb7b57e1138c03812389c89642bf6ca56438 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 28 Mar 2015 11:47:33 +0100 Subject: [PATCH 0758/2060] phodav: updated to 2.0. --- mingw-w64-phodav/001-win.patch | 98 ++++++++++++++++++++++++++++++---- mingw-w64-phodav/PKGBUILD | 15 ++++-- 2 files changed, 98 insertions(+), 15 deletions(-) diff --git a/mingw-w64-phodav/001-win.patch b/mingw-w64-phodav/001-win.patch index 4db02fa3b4..1816d6622c 100644 --- a/mingw-w64-phodav/001-win.patch +++ b/mingw-w64-phodav/001-win.patch @@ -1,11 +1,89 @@ ---- ./Makefile.am.orig 2014-12-06 13:45:36.146090200 +0100 -+++ ./Makefile.am 2014-12-06 13:46:11.013246100 +0100 -@@ -8,7 +8,7 @@ - makeflags_1 = - AM_MAKEFLAGS = $(makeflags_$(V)) +--- ./doc/Makefile.am.orig 2015-03-28 11:22:54.627520700 +0100 ++++ ./doc/Makefile.am 2015-03-28 11:23:10.053773500 +0100 +@@ -1,21 +1,4 @@ + SUBDIRS = reference --SUBDIRS = . po spice libphodav doc -+SUBDIRS = . po spice libphodav - lib_LTLIBRARIES = libphodav-1.0.la - bin_PROGRAMS = chezdav - sbin_PROGRAMS = spice-webdavd +-MAN1_TXT = chezdav.txt +- +-if HAVE_DOCTOOLS +-# Manual pages are generated from .txt via Docbook +-man1_MANS = ${MAN1_TXT:%.txt=%.1} +- +-SUFFIXES = .txt .xml .1 +- +-.xml.1: +- $(XMLTO) man $< 2>&1 +- +-.txt.xml: +- $(ASCIIDOC) --backend=docbook --doctype=manpage -o $@ $< +-endif +- +-EXTRA_DIST = $(MAN1_TXT) +-CLEANFILES = $(man1_MANS) + + -include $(top_srcdir)/git.mk +--- ./m4/intltool.m4.orig 2015-03-28 11:13:05.423072100 +0100 ++++ ./m4/intltool.m4 2015-03-28 11:24:53.078804700 +0100 +@@ -155,31 +155,6 @@ + # Substitute ALL_LINGUAS so we can use it in po/Makefile + AC_SUBST(ALL_LINGUAS) + +-# Set DATADIRNAME correctly if it is not set yet +-# (copied from glib-gettext.m4) +-if test -z "$DATADIRNAME"; then +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[]], +- [[extern int _nl_msg_cat_cntr; +- return _nl_msg_cat_cntr]])], +- [DATADIRNAME=share], +- [case $host in +- *-*-solaris*) +- dnl On Solaris, if bind_textdomain_codeset is in libc, +- dnl GNU format message catalog is always supported, +- dnl since both are added to the libc all together. +- dnl Hence, we'd like to go with DATADIRNAME=share +- dnl in this case. +- AC_CHECK_FUNC(bind_textdomain_codeset, +- [DATADIRNAME=share], [DATADIRNAME=lib]) +- ;; +- *) +- [DATADIRNAME=lib] +- ;; +- esac]) +-fi +-AC_SUBST(DATADIRNAME) +- + IT_PO_SUBDIR([po]) + + ]) +--- ./po/Makefile.in.in.orig 2015-03-28 11:14:58.472814600 +0100 ++++ ./po/Makefile.in.in 2015-03-28 11:24:28.814784300 +0100 +@@ -34,7 +34,7 @@ + datarootdir = @datarootdir@ + libdir = @libdir@ + DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +108,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +142,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot diff --git a/mingw-w64-phodav/PKGBUILD b/mingw-w64-phodav/PKGBUILD index ae4ce5411a..cadb2f0e3f 100644 --- a/mingw-w64-phodav/PKGBUILD +++ b/mingw-w64-phodav/PKGBUILD @@ -2,7 +2,7 @@ _realname=phodav pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.4 +pkgver=2.0 pkgrel=1 arch=('any') pkgdesc="A WebDAV server using libsoup (mingw-w64)" @@ -10,17 +10,17 @@ depends=("${MINGW_PACKAGE_PREFIX}-libsoup") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gtk-doc") options=('strip' 'staticlibs') -license=("GPL 2") +license=("LGPL 2.1") url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver}/${_realname}-$pkgver.tar.xz 001-win.patch) -sha256sums=('5d14bfd4d733f680fca6875586308879b78a3c4892bd95a2d8dc4aabd24614b6' - 'f125c902a291bf0e0bfa1e49732e0724c4d06bfa95b7e0f6e1678cdf34c163ae') +sha256sums=('53b42faf2d6edfb0072dbbbe9b8360d8603cca2cacd142df8d1781b9ba0cb9ed' + '2480a0b804924fd1cfa3dd6a949cdb2250d487cead2f1b1d30ba8cf8e3ec0246') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/001-win.patch + patch -b -V simple -p1 -i ${srcdir}/001-win.patch autoreconf -isf } @@ -29,6 +29,9 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + mkdir -p doc/reference/html + cp -rf ../${_realname}-${pkgver}/doc/reference/html/* doc/reference/html + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ @@ -42,4 +45,6 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/lib${_realname}/COPYING" } From ee12dbf9269aa9a9896c8ef75db80ec706d46019 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 28 Mar 2015 16:44:27 +0100 Subject: [PATCH 0759/2060] latexila: updated to 3.16.0. --- mingw-w64-latexila/001-win.patch | 80 ++++++++++++++++++-------------- mingw-w64-latexila/PKGBUILD | 20 +++++--- 2 files changed, 58 insertions(+), 42 deletions(-) diff --git a/mingw-w64-latexila/001-win.patch b/mingw-w64-latexila/001-win.patch index d68a5c3f00..0656b3d257 100644 --- a/mingw-w64-latexila/001-win.patch +++ b/mingw-w64-latexila/001-win.patch @@ -1,16 +1,34 @@ ---- ./src/build_command_runner.vala.orig 2015-01-07 14:51:22.000000000 +0100 -+++ ./src/build_command_runner.vala 2015-01-18 13:16:23.871049000 +0100 -@@ -77,7 +77,7 @@ - { - if (_child_pid != null) - { -- Posix.kill (_child_pid, Posix.SIGTERM); -+ Windows.TerminateProcess (_child_pid, 0); - _child_pid = null; - } - } ---- ./src/main.vala.orig 2015-01-18 13:22:27.137947500 +0100 -+++ ./src/main.vala 2015-01-18 13:22:56.681820000 +0100 +--- ./src/liblatexila/latexila-build-tools-default.c.orig 2015-03-28 16:20:54.001369500 +0100 ++++ ./src/liblatexila/latexila-build-tools-default.c 2015-03-28 16:23:21.414277500 +0100 +@@ -171,9 +171,15 @@ + gchar *path; + GFile *file; + +- path = g_build_filename (DATA_DIR, "build_tools.xml", NULL); ++ gchar *datadir; ++ ++ datadir = g_win32_get_package_installation_directory_of_module (NULL); ++ ++ path = g_build_filename (datadir, "share", "latexila", "build_tools.xml", NULL); + file = g_file_new_for_path (path); ++ + g_free (path); ++ g_free (datadir); + + return file; + } +--- ./src/liblatexila/Makefile.am.orig 2015-03-18 13:48:13.000000000 +0100 ++++ ./src/liblatexila/Makefile.am 2015-03-28 15:35:50.719027800 +0100 +@@ -71,6 +71,7 @@ + if HAVE_INTROSPECTION + -include $(INTROSPECTION_MAKEFILE) + ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + INTROSPECTION_SCANNER_ARGS = \ + -I$(top_srcdir) \ + -I$(top_builddir) \ +--- ./src/main.vala.orig 2015-03-18 13:48:13.000000000 +0100 ++++ ./src/main.vala 2015-03-28 15:35:50.938038600 +0100 @@ -21,6 +21,16 @@ using Gtk; @@ -45,33 +63,23 @@ init_i18n (); CmdLineData data = parse_cmd_line_options (args); ---- ./src/Makefile.am.orig 2015-01-07 14:51:22.000000000 +0100 -+++ ./src/Makefile.am 2015-01-18 13:16:23.882768000 +0100 -@@ -69,7 +69,8 @@ - $(vala_files) \ - $(vapidir)/config.vapi \ - $(vapidir)/gedit.vapi \ -- $(vapidir)/menu_tool_action.vapi -+ $(vapidir)/menu_tool_action.vapi \ -+ $(vapidir)/windows.vapi +--- ./src/Makefile.am.orig 2015-03-18 13:48:13.000000000 +0100 ++++ ./src/Makefile.am 2015-03-28 15:35:50.944039500 +0100 +@@ -9,7 +9,7 @@ + --pkg gee-0.8 \ + --pkg posix \ + --target-glib=2.40 \ +- --vapidir liblatexila \ ++ --vapidir $(abs_top_builddir)/src/liblatexila \ + --pkg latexila - latexila_CPPFLAGS = \ - -I$(top_srcdir) \ ---- ./vapi/config.vapi.orig 2015-01-18 13:17:20.283903200 +0100 -+++ ./vapi/config.vapi 2015-01-18 13:17:24.942519000 +0100 + # The valac command is always executed in the sources directory, not the build +--- ./vapi/config.vapi.orig 2015-03-18 13:48:13.000000000 +0100 ++++ ./vapi/config.vapi 2015-03-28 15:35:50.952048500 +0100 @@ -1,5 +1,5 @@ - [CCode (prefix = "", lower_case_cprefix = "", cheader_filename = "config.h")] + [CCode (lower_case_cprefix = "", cheader_filename = "config.h")] -namespace Config +namespace RealConfig { public const string PACKAGE_NAME; public const string PACKAGE_VERSION; ---- ./vapi/windows.vapi.orig 2015-01-18 13:16:23.836870200 +0100 -+++ ./vapi/windows.vapi 2015-01-18 13:16:23.912062700 +0100 -@@ -1 +1,6 @@ -+[CCode (lower_case_cprefix="", cheader_filename="windows.h")] -+namespace Windows -+{ -+ public bool TerminateProcess (GLib.Pid hProcess, uint uExitCode); -+} - diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD index 265bf30095..8288de6e79 100644 --- a/mingw-w64-latexila/PKGBUILD +++ b/mingw-w64-latexila/PKGBUILD @@ -2,7 +2,7 @@ _realname=latexila pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.3 +pkgver=3.16.0 pkgrel=1 arch=('any') pkgdesc="LaTeX editor designed for the GNOME desktop (mingw-w64)" @@ -19,14 +19,13 @@ url="http://www.gnome.org" install=latexila-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch) -sha256sums=('bdc46a52cba778646af05ade9ea7cc639e34f8aafdb640ad2217f21d067c7039' - 'a90bc6f730e79504c167c5d34c8781e2af6156867433ac1d47188f43ddf787be') +sha256sums=('5737864dfd35a32c02e18f37ec8cb80824f599090faefba3b8b92f8e0a5453b3' + '94159afb2c0f0688c375ddcce3bf7750e7179c40d394847c665bc492632e3942') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - echo "" > vapi/windows.vapi - patch -p1 -b -V simple -z .orig -i ${srcdir}/001-win.patch + patch -p1 -b -V simple -i ${srcdir}/001-win.patch autoreconf -sf } @@ -35,12 +34,19 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + mkdir -p data/build_tools + cp -rf ../${_realname}-${pkgver}/data/build_tools/* data/build_tools + + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --libexecdir=${MINGW_PREFIX}/lib + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-introspection make } @@ -48,4 +54,6 @@ package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 3187670fd7aed0ec588228052c434a236dcdeb64 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 28 Mar 2015 18:28:31 +0000 Subject: [PATCH 0760/2060] webkitgtk3: Remove patch-created file --- mingw-w64-webkitgtk3/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-webkitgtk3/PKGBUILD b/mingw-w64-webkitgtk3/PKGBUILD index 2fb7b3191a..497d33d03c 100644 --- a/mingw-w64-webkitgtk3/PKGBUILD +++ b/mingw-w64-webkitgtk3/PKGBUILD @@ -76,6 +76,7 @@ source=(http://webkitgtk.org/releases/webkitgtk-${pkgver}.tar.xz prepare() { cd ${srcdir}/${_realname}-${pkgver} + rm -rf Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp || true patch -p1 -i ${srcdir}/0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch patch -p1 -i ${srcdir}/0002-webkitgtk-mingw-use-gcc-asm.mingw.patch patch -p1 -i ${srcdir}/0003-webkit-dont-build-dump-render-tree.mingw.patch From 5058a3bc1f63313c290428a1fb3484e22a2316ff Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Wed, 25 Mar 2015 20:01:22 -0300 Subject: [PATCH 0761/2060] python-pywin32: Some improvements. The package is still not building but situation is a bit better now. * Try to actually build pywin32. * Replace failing patch with some experimental fixes. * Source code refactoring. * Add makedepends. --- ...W-w64-Import-distutils-mingwcompiler.patch | 14 --- .../001-experimental-fixes.patch | 21 +++++ mingw-w64-python-pywin32/PKGBUILD | 89 ++++++++----------- 3 files changed, 57 insertions(+), 67 deletions(-) delete mode 100644 mingw-w64-python-pywin32/0001-MinGW-w64-Import-distutils-mingwcompiler.patch create mode 100644 mingw-w64-python-pywin32/001-experimental-fixes.patch diff --git a/mingw-w64-python-pywin32/0001-MinGW-w64-Import-distutils-mingwcompiler.patch b/mingw-w64-python-pywin32/0001-MinGW-w64-Import-distutils-mingwcompiler.patch deleted file mode 100644 index 2f68753ae2..0000000000 --- a/mingw-w64-python-pywin32/0001-MinGW-w64-Import-distutils-mingwcompiler.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- pywin32-219-x86_64/setup.py.orig 2014-10-27 00:17:26.065460800 +0000 -+++ pywin32-219-x86_64/setup.py 2014-10-27 00:31:35.736355300 +0000 -@@ -97,7 +97,10 @@ - # py24 and earlier - bdist_msi = None - --from distutils.msvccompiler import get_build_version -+if (sys.platform == "win32" and sys.version.find("GCC") >= 0): -+ from distutils.mingwcompiler import get_build_version -+else: -+ from distutils.msvccompiler import get_build_version - from distutils import log - - # some modules need a static CRT to avoid problems caused by them having a diff --git a/mingw-w64-python-pywin32/001-experimental-fixes.patch b/mingw-w64-python-pywin32/001-experimental-fixes.patch new file mode 100644 index 0000000000..980b0cd69b --- /dev/null +++ b/mingw-w64-python-pywin32/001-experimental-fixes.patch @@ -0,0 +1,21 @@ +diff -aur old/setup.py 001/setup.py +--- old/setup.py 2014-05-03 11:37:18.000000000 -0300 ++++ 001/setup.py 2015-03-25 20:05:46.116630400 -0300 +@@ -224,7 +224,7 @@ + # languishing and will probably never be fixed for Python 2.6... + if sys.version_info > (2,6): + from distutils.spawn import spawn +- from distutils.msvc9compiler import MSVCCompiler ++ from distutils.msvccompiler import MSVCCompiler + MSVCCompiler._orig_spawn = MSVCCompiler.spawn + MSVCCompiler._orig_link = MSVCCompiler.link + +@@ -293,7 +293,7 @@ + MSVCCompiler.link = monkeypatched_link + + +-sdk_dir = find_platform_sdk_dir() ++sdk_dir = find_platform_sdk_dir() or '' + + class WinExt (Extension): + # Base class for all win32 extensions, with some predefined diff --git a/mingw-w64-python-pywin32/PKGBUILD b/mingw-w64-python-pywin32/PKGBUILD index b6c22f9d1d..82d25f3ac0 100644 --- a/mingw-w64-python-pywin32/PKGBUILD +++ b/mingw-w64-python-pywin32/PKGBUILD @@ -1,67 +1,50 @@ # Maintainer: Ray Donnelly +# Contributor: Renato Silva -_realname=pywin32 -pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" - "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +_realname='pywin32' +url='http://sourceforge.net/projects/pywin32' +pkgdesc='Python for Windows Extensions (mingw-w64)' +license=('PSF') +arch=('any') pkgver=219 pkgrel=1 -pkgdesc='Python for Windows Extensions (mingw-w64)' -groups=("${MINGW_PACKAGE_PREFIX}") -arch=('any') -url='https://sourceforge.net/projects/pywin32' -license=('PSF') + +makedepends=(${MINGW_PACKAGE_PREFIX}-python2 ${MINGW_PACKAGE_PREFIX}-python3 rsync) +pkgname=(${MINGW_PACKAGE_PREFIX}-python2-${_realname} ${MINGW_PACKAGE_PREFIX}-python3-${_realname}) +groups=(${MINGW_PACKAGE_PREFIX}) + source=("http://prdownloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.zip" - "0001-MinGW-w64-Import-distutils-mingwcompiler.patch") + 001-experimental-fixes.patch) sha1sums=('1eb8039f9e15f53f56a9e1b54f00cd2c0f63ff8e' - '0b3883b57a9d2575c98629239ddb87e53b3f35d5') + '0c428f1b1fb1b0778d178daaef02da69e259313b') prepare() { - pushd $_realname-$pkgver - patch -p1 -i "${srcdir}"/0001-MinGW-w64-Import-distutils-mingwcompiler.patch - popd - [ -d $_realname-py2-$pkgver-${CARCH} ] && rm -rf $_realname-py2-$pkgver-${CARCH} - cp -a $_realname-$pkgver $_realname-py2-$pkgver-${CARCH} - [ -d $_realname-$pkgver-${CARCH} ] && rm -rf $_realname-$pkgver-${CARCH} - mv $_realname-$pkgver $_realname-$pkgver-${CARCH} + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 < "${startdir}"/001-experimental-fixes.patch } -# check() { -# cd "${srcdir}"/build-${CARCH} -# make check -# } - -package2() { - depends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools") - cd $_realname-py2-$pkgver-${CARCH} - - DISTUTILS_DEBUG=1 \ - MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ - --root="${pkgdir}" --optimize=1 +build() { + for _python in python2 python3; do + msg2 "Synchronizing ${_python} build directory" + rsync --recursive --times "${srcdir}/${_realname}-${pkgver}"/* "${srcdir}/build-${_python}-${CARCH}-${_realname}-${pkgver}" + cd "${srcdir}/build-${_python}-${CARCH}-${_realname}-${pkgver}" + INCLUDE="${MINGW_PREFIX}/include:${MINGW_PREFIX}/${CARCH}-w64-mingw32/include" \ + ${MINGW_PREFIX}/bin/${_python} setup.py build --compiler=mingw32 + done } -package3() { - depends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools") - cd $_realname-$pkgver-${CARCH} - - DISTUTILS_DEBUG=1 \ - MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup3.py install --prefix=${MINGW_PREFIX} \ - --root="${pkgdir}" --optimize=1 +_package() { + depends=(${MINGW_PACKAGE_PREFIX}-${_python}-setuptools) + cd "${srcdir}/build-${_python}-${CARCH}-${_realname}-${pkgver}" + DISTUTILS_DEBUG=1 \ + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/${_python} setup.py install \ + --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" \ + --optimize=1 } -package_mingw-w64-x86_64-python2-pywin32() { - package2 -} - -package_mingw-w64-i686-python2-pywin32() { - package2 -} - -package_mingw-w64-x86_64-python3-pywin32() { - package3 -} - -package_mingw-w64-i686-python3-pywin32() { - package3 -} +package_mingw-w64-i686-python2-pywin32() { _python=python2 _package; } +package_mingw-w64-i686-python3-pywin32() { _python=python3 _package; } +package_mingw-w64-x86_64-python2-pywin32() { _python=python2 _package; } +package_mingw-w64-x86_64-python3-pywin32() { _python=python3 _package; } From 04fd9a2c9b0f92123465d36305cc426b26df2c7a Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Thu, 26 Mar 2015 00:26:09 -0300 Subject: [PATCH 0762/2060] python-pywin32: Some more progress towards building. --- .../001-experimental-fixes.patch | 69 ++++++++++++++++++- mingw-w64-python-pywin32/PKGBUILD | 3 +- 2 files changed, 69 insertions(+), 3 deletions(-) diff --git a/mingw-w64-python-pywin32/001-experimental-fixes.patch b/mingw-w64-python-pywin32/001-experimental-fixes.patch index 980b0cd69b..4ec99903b6 100644 --- a/mingw-w64-python-pywin32/001-experimental-fixes.patch +++ b/mingw-w64-python-pywin32/001-experimental-fixes.patch @@ -1,6 +1,6 @@ -diff -aur old/setup.py 001/setup.py +diff --strip-trailing-cr -aur old/setup.py 001/setup.py --- old/setup.py 2014-05-03 11:37:18.000000000 -0300 -+++ 001/setup.py 2015-03-25 20:05:46.116630400 -0300 ++++ 001/setup.py 2015-03-25 23:28:00.347036000 -0300 @@ -224,7 +224,7 @@ # languishing and will probably never be fixed for Python 2.6... if sys.version_info > (2,6): @@ -19,3 +19,68 @@ diff -aur old/setup.py 001/setup.py class WinExt (Extension): # Base class for all win32 extensions, with some predefined +diff --strip-trailing-cr -aur old/win32/src/PySECURITY_DESCRIPTOR.cpp 001/win32/src/PySECURITY_DESCRIPTOR.cpp +--- old/win32/src/PySECURITY_DESCRIPTOR.cpp 2011-03-19 10:51:22.000000000 -0300 ++++ 001/win32/src/PySECURITY_DESCRIPTOR.cpp 2015-03-25 23:35:09.176365400 -0300 +@@ -5,6 +5,7 @@ + #include "PyWinObjects.h" + #include "PySecurityObjects.h" + #include "structmember.h" ++#include + + #ifndef NO_PYWINTYPES_SECURITY + BOOL (WINAPI *setsecuritydescriptorcontrol)(PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL)=NULL; +@@ -786,7 +787,7 @@ + { + ob_type = &PySECURITY_DESCRIPTORType; + _Py_NewReference(this); +- cb = max(cb, SECURITY_DESCRIPTOR_MIN_LENGTH); ++ cb = std::max((long long unsigned int)cb, SECURITY_DESCRIPTOR_MIN_LENGTH); + PSECURITY_DESCRIPTOR psd = malloc(cb); + this->m_psd=NULL; + if (::InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION)) +diff --strip-trailing-cr -aur old/win32/src/PySecurityObjects.h 001/win32/src/PySecurityObjects.h +--- old/win32/src/PySecurityObjects.h 2011-03-19 10:51:22.000000000 -0300 ++++ 001/win32/src/PySecurityObjects.h 2015-03-25 23:29:45.425492600 -0300 +@@ -121,7 +121,7 @@ + static PyObject *GetSubAuthorityCount(PyObject *self, PyObject *args); + static PyObject *GetSubAuthority(PyObject *self, PyObject *args); + static PyObject *GetSidIdentifierAuthority(PyObject *self, PyObject *args); +- static struct PyMethodDef PySID::methods[]; ++ static struct PyMethodDef methods[]; + + protected: + PSID m_psid; +@@ -159,7 +159,7 @@ + /* Python support */ + int compare(PyObject *ob); + static void deallocFunc(PyObject *ob); +- static struct PyMethodDef PyACL::methods[]; ++ static struct PyMethodDef methods[]; + + static PyObject *Initialize(PyObject *self, PyObject *args); + static PyObject *IsValid(PyObject *self, PyObject *args); +diff --strip-trailing-cr -aur old/win32/src/PyWinObjects.h 001/win32/src/PyWinObjects.h +--- old/win32/src/PyWinObjects.h 2011-03-19 10:51:22.000000000 -0300 ++++ 001/win32/src/PyWinObjects.h 2015-03-25 23:29:25.800392400 -0300 +@@ -52,7 +52,7 @@ + PyObject *str(); + PyObject *repr(); + int compare(PyObject *ob); +- PyObject *PyTime::richcompare(PyObject *other, int op); ++ PyObject *richcompare(PyObject *other, int op); + + int print(FILE *fp, int flags); + Py_hash_t hash(void); +diff --strip-trailing-cr -aur old/win32/src/PyWinTypesmodule.cpp 001/win32/src/PyWinTypesmodule.cpp +--- old/win32/src/PyWinTypesmodule.cpp 2012-09-24 10:17:36.000000000 -0300 ++++ 001/win32/src/PyWinTypesmodule.cpp 2015-03-25 23:38:45.812576700 -0300 +@@ -1139,7 +1139,7 @@ + } + + // Function to format a python traceback into a character string. +-#define GPEM_ERROR(what) {errorMsg = "";goto done;} ++#define GPEM_ERROR(what) {errorMsg = "";goto done;} + char *GetPythonTraceback(PyObject *exc_type, PyObject *exc_value, PyObject *exc_tb) + { + // Sleep (30000); // Time enough to attach the debugger (barely) diff --git a/mingw-w64-python-pywin32/PKGBUILD b/mingw-w64-python-pywin32/PKGBUILD index 82d25f3ac0..9fb0fb03e6 100644 --- a/mingw-w64-python-pywin32/PKGBUILD +++ b/mingw-w64-python-pywin32/PKGBUILD @@ -16,7 +16,7 @@ groups=(${MINGW_PACKAGE_PREFIX}) source=("http://prdownloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.zip" 001-experimental-fixes.patch) sha1sums=('1eb8039f9e15f53f56a9e1b54f00cd2c0f63ff8e' - '0c428f1b1fb1b0778d178daaef02da69e259313b') + '3a42fd3d639db7ec3cd1baa130a047dd592a93fe') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -28,6 +28,7 @@ build() { msg2 "Synchronizing ${_python} build directory" rsync --recursive --times "${srcdir}/${_realname}-${pkgver}"/* "${srcdir}/build-${_python}-${CARCH}-${_realname}-${pkgver}" cd "${srcdir}/build-${_python}-${CARCH}-${_realname}-${pkgver}" + LIB="${MINGW_PREFIX}/lib:${MINGW_PREFIX}/${CARCH}-w64-mingw32/lib" \ INCLUDE="${MINGW_PREFIX}/include:${MINGW_PREFIX}/${CARCH}-w64-mingw32/include" \ ${MINGW_PREFIX}/bin/${_python} setup.py build --compiler=mingw32 done From 90cbe5a1a368bd0b935be70700610498d6e6b707 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 28 Mar 2015 16:44:27 +0100 Subject: [PATCH 0763/2060] latexila: updated to 3.16.0. --- mingw-w64-latexila/001-win.patch | 80 ++++++++++++++++++-------------- mingw-w64-latexila/PKGBUILD | 20 +++++--- 2 files changed, 58 insertions(+), 42 deletions(-) diff --git a/mingw-w64-latexila/001-win.patch b/mingw-w64-latexila/001-win.patch index d68a5c3f00..0656b3d257 100644 --- a/mingw-w64-latexila/001-win.patch +++ b/mingw-w64-latexila/001-win.patch @@ -1,16 +1,34 @@ ---- ./src/build_command_runner.vala.orig 2015-01-07 14:51:22.000000000 +0100 -+++ ./src/build_command_runner.vala 2015-01-18 13:16:23.871049000 +0100 -@@ -77,7 +77,7 @@ - { - if (_child_pid != null) - { -- Posix.kill (_child_pid, Posix.SIGTERM); -+ Windows.TerminateProcess (_child_pid, 0); - _child_pid = null; - } - } ---- ./src/main.vala.orig 2015-01-18 13:22:27.137947500 +0100 -+++ ./src/main.vala 2015-01-18 13:22:56.681820000 +0100 +--- ./src/liblatexila/latexila-build-tools-default.c.orig 2015-03-28 16:20:54.001369500 +0100 ++++ ./src/liblatexila/latexila-build-tools-default.c 2015-03-28 16:23:21.414277500 +0100 +@@ -171,9 +171,15 @@ + gchar *path; + GFile *file; + +- path = g_build_filename (DATA_DIR, "build_tools.xml", NULL); ++ gchar *datadir; ++ ++ datadir = g_win32_get_package_installation_directory_of_module (NULL); ++ ++ path = g_build_filename (datadir, "share", "latexila", "build_tools.xml", NULL); + file = g_file_new_for_path (path); ++ + g_free (path); ++ g_free (datadir); + + return file; + } +--- ./src/liblatexila/Makefile.am.orig 2015-03-18 13:48:13.000000000 +0100 ++++ ./src/liblatexila/Makefile.am 2015-03-28 15:35:50.719027800 +0100 +@@ -71,6 +71,7 @@ + if HAVE_INTROSPECTION + -include $(INTROSPECTION_MAKEFILE) + ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + INTROSPECTION_SCANNER_ARGS = \ + -I$(top_srcdir) \ + -I$(top_builddir) \ +--- ./src/main.vala.orig 2015-03-18 13:48:13.000000000 +0100 ++++ ./src/main.vala 2015-03-28 15:35:50.938038600 +0100 @@ -21,6 +21,16 @@ using Gtk; @@ -45,33 +63,23 @@ init_i18n (); CmdLineData data = parse_cmd_line_options (args); ---- ./src/Makefile.am.orig 2015-01-07 14:51:22.000000000 +0100 -+++ ./src/Makefile.am 2015-01-18 13:16:23.882768000 +0100 -@@ -69,7 +69,8 @@ - $(vala_files) \ - $(vapidir)/config.vapi \ - $(vapidir)/gedit.vapi \ -- $(vapidir)/menu_tool_action.vapi -+ $(vapidir)/menu_tool_action.vapi \ -+ $(vapidir)/windows.vapi +--- ./src/Makefile.am.orig 2015-03-18 13:48:13.000000000 +0100 ++++ ./src/Makefile.am 2015-03-28 15:35:50.944039500 +0100 +@@ -9,7 +9,7 @@ + --pkg gee-0.8 \ + --pkg posix \ + --target-glib=2.40 \ +- --vapidir liblatexila \ ++ --vapidir $(abs_top_builddir)/src/liblatexila \ + --pkg latexila - latexila_CPPFLAGS = \ - -I$(top_srcdir) \ ---- ./vapi/config.vapi.orig 2015-01-18 13:17:20.283903200 +0100 -+++ ./vapi/config.vapi 2015-01-18 13:17:24.942519000 +0100 + # The valac command is always executed in the sources directory, not the build +--- ./vapi/config.vapi.orig 2015-03-18 13:48:13.000000000 +0100 ++++ ./vapi/config.vapi 2015-03-28 15:35:50.952048500 +0100 @@ -1,5 +1,5 @@ - [CCode (prefix = "", lower_case_cprefix = "", cheader_filename = "config.h")] + [CCode (lower_case_cprefix = "", cheader_filename = "config.h")] -namespace Config +namespace RealConfig { public const string PACKAGE_NAME; public const string PACKAGE_VERSION; ---- ./vapi/windows.vapi.orig 2015-01-18 13:16:23.836870200 +0100 -+++ ./vapi/windows.vapi 2015-01-18 13:16:23.912062700 +0100 -@@ -1 +1,6 @@ -+[CCode (lower_case_cprefix="", cheader_filename="windows.h")] -+namespace Windows -+{ -+ public bool TerminateProcess (GLib.Pid hProcess, uint uExitCode); -+} - diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD index 265bf30095..8288de6e79 100644 --- a/mingw-w64-latexila/PKGBUILD +++ b/mingw-w64-latexila/PKGBUILD @@ -2,7 +2,7 @@ _realname=latexila pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.3 +pkgver=3.16.0 pkgrel=1 arch=('any') pkgdesc="LaTeX editor designed for the GNOME desktop (mingw-w64)" @@ -19,14 +19,13 @@ url="http://www.gnome.org" install=latexila-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch) -sha256sums=('bdc46a52cba778646af05ade9ea7cc639e34f8aafdb640ad2217f21d067c7039' - 'a90bc6f730e79504c167c5d34c8781e2af6156867433ac1d47188f43ddf787be') +sha256sums=('5737864dfd35a32c02e18f37ec8cb80824f599090faefba3b8b92f8e0a5453b3' + '94159afb2c0f0688c375ddcce3bf7750e7179c40d394847c665bc492632e3942') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - echo "" > vapi/windows.vapi - patch -p1 -b -V simple -z .orig -i ${srcdir}/001-win.patch + patch -p1 -b -V simple -i ${srcdir}/001-win.patch autoreconf -sf } @@ -35,12 +34,19 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + mkdir -p data/build_tools + cp -rf ../${_realname}-${pkgver}/data/build_tools/* data/build_tools + + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --libexecdir=${MINGW_PREFIX}/lib + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-introspection make } @@ -48,4 +54,6 @@ package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From c15efe952bf5a1f7d970bba9091acfa80993486c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 29 Mar 2015 12:57:47 +0300 Subject: [PATCH 0764/2060] gobject-introspection: WIP patch for Win32 platform --- ...ments-to-g-ir-scanner-through-a-.all.patch | 510 ++++++++++++++++++ .../0060-LRN.patch | 230 -------- .../0065-fix-compare-uname-output.patch | 6 +- mingw-w64-gobject-introspection/PKGBUILD | 17 +- 4 files changed, 522 insertions(+), 241 deletions(-) create mode 100644 mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch delete mode 100644 mingw-w64-gobject-introspection/0060-LRN.patch diff --git a/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch b/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch new file mode 100644 index 0000000000..0a47d8c35b --- /dev/null +++ b/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch @@ -0,0 +1,510 @@ +diff -urN gobject-introspection-1.44.0.orig/configure.ac gobject-introspection-1.44.0/configure.ac +--- gobject-introspection-1.44.0.orig/configure.ac 2015-03-28 10:27:07.153340700 +0000 ++++ gobject-introspection-1.44.0/configure.ac 2015-03-28 10:37:39.175597300 +0000 +@@ -31,12 +31,18 @@ + case "$host" in + *-*-mingw*) + os_win32=yes ++ COMMENT_ON_W32='#' ++ COMMENT_ON_NONW32= + ;; + *) + os_win32=no ++ COMMENT_ON_W32= ++ COMMENT_ON_NONW32='#' + ;; + esac + AM_CONDITIONAL(OS_WIN32, [test "x$os_win32" = "xyes"]) ++AC_SUBST(COMMENT_ON_W32) ++AC_SUBST(COMMENT_ON_NONW32) + + # Checks for programs. + AC_PROG_CC +@@ -358,6 +361,7 @@ tests/warn/Makefile + docs/Makefile + docs/reference/Makefile + docs/reference/version.xml ++Makefile.introspection + gobject-introspection-1.0.pc + gobject-introspection-no-export-1.0.pc + config.h.win32 +diff -urN gobject-introspection-1.44.0.orig/giscanner/scannermain.py gobject-introspection-1.44.0/giscanner/scannermain.py +--- gobject-introspection-1.44.0.orig/giscanner/scannermain.py 2015-03-28 10:27:07.281356900 +0000 ++++ gobject-introspection-1.44.0/giscanner/scannermain.py 2015-03-28 10:38:09.507449000 +0000 +@@ -470,8 +470,9 @@ + + + def scanner_main(args): ++ loaded_args = utils.maybe_load_args_from_file(args) + parser = _get_option_parser() +- (options, args) = parser.parse_args(args) ++ (options, args) = parser.parse_args(loaded_args) + + if options.passthrough_gir: + passthrough_gir(options.passthrough_gir, sys.stdout) +diff -urN gobject-introspection-1.44.0.orig/giscanner/utils.py gobject-introspection-1.44.0/giscanner/utils.py +--- gobject-introspection-1.44.0.orig/giscanner/utils.py 2015-03-28 10:27:07.285857500 +0000 ++++ gobject-introspection-1.44.0/giscanner/utils.py 2015-03-28 10:56:45.401149500 +0000 +@@ -22,6 +22,7 @@ + import os + import subprocess + import platform ++import shlex + + + _debugflags = None +@@ -75,6 +76,59 @@ + return name + + ++def cygmsys_mangle(arg): ++ shell = which(os.environ.get('SHELL', 'sh.exe')) ++ p = subprocess.Popen([shell, '-c' 'cmd //C echo ' + arg], stdout=subprocess.PIPE) ++ result, _ = p.communicate() ++ return result.rstrip ('\n').rstrip ('\r') if p.returncode == 0 else None ++ ++ ++def load_args_from_file(filename): ++ with open(filename, 'rb') as source: ++ contents = source.read().decode('UTF-8') ++ result = shlex.split(contents) ++ if os.name != 'nt': ++ args = [] ++ for arg in result: ++ mangled = cygmsys_mangle(arg) ++ if mangled is not None: ++ args.append(mangled) ++ result = args ++ return result ++ ++ ++def maybe_load_args_from_file(args): ++ if os.name != 'nt': ++ return args ++ ++ processed_args = [] ++ skip = False ++ is_input_file = False ++ argfilelen = len('--argfile=') ++ for argn, arg in enumerate(args): ++ if skip: ++ processed_args.append(arg) ++ continue ++ elif arg == '--': ++ skip = True ++ processed_args.append(arg) ++ continue ++ ++ if is_input_file: ++ processed_args.extend(load_args_from_file(arg)) ++ is_input_file = False ++ continue ++ ++ if arg == '--argfile' and argn + 1 < len(args): ++ is_input_file = True ++ continue ++ elif arg.startswith('--argfile=') and len(arg) > argfilelen: ++ processed_args.extend(load_args_from_file(arg[argfilelen:])) ++ continue ++ processed_args.append(arg) ++ return processed_args ++ ++ + _libtool_pat = re.compile("dlname='([A-z0-9\.\-\+]+)'\n") + + +diff -urN gobject-introspection-1.44.0.orig/Makefile.am gobject-introspection-1.44.0/Makefile.am +--- gobject-introspection-1.44.0.orig/Makefile.am 2015-03-28 10:27:07.296358800 +0000 ++++ gobject-introspection-1.44.0/Makefile.am 2015-03-28 10:32:10.348841600 +0000 +@@ -15,7 +15,7 @@ + TESTS = + + include common.mk +-include Makefile.introspection ++include Makefile.introspection.in + + include Makefile-cmph.am + include Makefile-girepository.am +diff -urN gobject-introspection-1.44.0.orig/Makefile.introspection gobject-introspection-1.44.0/Makefile.introspection +--- gobject-introspection-1.44.0.orig/Makefile.introspection 2015-03-28 10:27:07.296858900 +0000 ++++ gobject-introspection-1.44.0/Makefile.introspection 1970-01-01 00:00:00.000000000 +0000 +@@ -1,166 +0,0 @@ +-# -*- Mode: make -*- +-# Copyright 2009-2010 Johan Dahlin +-# +-# This file is free software; the author(s) gives unlimited +-# permission to copy and/or distribute it, with or without +-# modifications, as long as this notice is preserved. +-# +-# * Input variables: +-# +-# INTROSPECTION_GIRS - List of GIRS that should be generated +-# INTROSPECTION_SCANNER - Command to invoke scanner, normally set by +-# GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4 +-# INTROSPECTION_SCANNER_ARGS - Additional args to pass in to the scanner +-# INTROSPECTION_SCANNER_ENV - Environment variables to set before running +-# the scanner +-# INTROSPECTION_COMPILER - Command to invoke compiler, normally set by +-# GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4 +-# INTROSPECTION_COMPILER_ARGS - Additional args to pass in to the compiler +-# +-# * Simple tutorial +-# +-# Add this to configure.ac: +-# -Wno-portability to AM_INIT_AUTOMAKE +-# GOBJECT_INTROSPECTION_CHECK([0.6.7]) +-# +-# Add this to Makefile.am where your library/program is built: +-# include $(INTROSPECTION_MAKEFILE) +-# INTROSPECTION_GIRS = YourLib-1.0.gir +-# YourLib-1.0.gir: libyourlib.la +-# YourLib_1_0_gir_NAMESPACE = YourLib +-# YourLib_1_0_gir_VERSION = 1.0 +-# YourLib_1_0_gir_LIBS = libyourlib.la +-# YourLib_1_0_gir_FILES = $(libyourlib_1_0_SOURCES) +-# girdir = $(datadir)/gir-1.0 +-# dist_gir_DATA = YourLib-1.0.gir +-# typelibdir = $(libdir)/girepository-1.0 +-# typelib_DATA = YourLib-1.0.typelib +-# CLEANFILES = $(dist_gir_DATA) $(typelib_DATA) +-# +- +-# Make sure the required variables are set, these should under normal +-# circumstances come from introspection.m4 +-$(if $(INTROSPECTION_SCANNER),,$(error Need to define INTROSPECTION_SCANNER)) +-$(if $(INTROSPECTION_COMPILER),,$(error Need to define INTROSPECTION_COMPILER)) +- +-# Private functions +- +-## Transform the gir filename to something which can reference through a variable +-## without automake/make complaining, eg Gtk-2.0.gir -> Gtk_2_0_gir +-_gir_name = $(subst /,_,$(subst -,_,$(subst .,_,$(1)))) +- +-# Namespace and Version is either fetched from the gir filename +-# or the _NAMESPACE/_VERSION variable combo +-_gir_namespace = $(or $($(_gir_name)_NAMESPACE),$(firstword $(subst -, ,$(notdir $(1))))) +-_gir_version = $(or $($(_gir_name)_VERSION),$(lastword $(subst -, ,$(1:.gir=)))) +- +-# _PROGRAM is an optional variable which needs it's own --program argument +-_gir_program = $(if $($(_gir_name)_PROGRAM),--program=$($(_gir_name)_PROGRAM)) +- +-# Variables which provides a list of things +-_gir_libraries = $(foreach lib,$($(_gir_name)_LIBS),--library=$(lib)) +-_gir_packages = $(foreach pkg,$($(_gir_name)_PACKAGES),--pkg=$(pkg)) +-_gir_includes = $(foreach include,$($(_gir_name)_INCLUDES),--include=$(include)) +-_gir_export_packages = $(foreach pkg,$($(_gir_name)_EXPORT_PACKAGES),--pkg-export=$(pkg)) +- +-# Reuse the LIBTOOL variable from automake if it's set, but +-# work around MSYS weirdness: When running g-ir-scanner, MSYS changes +-# a command-line argument --libtool="/bin/sh ../../libtool" into +-# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path +-# because we already "know" where the libtool configure produced is. +-_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) +- +-# Macros for AM_SILENT_RULES prettiness +-_gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) +- +-_gir_silent_scanner_prefix = $(_gir_silent_scanner_prefix_$(V)) +-_gir_silent_scanner_prefix_ = $(_gir_silent_scanner_prefix_$(_gir_verbosity)) +-_gir_silent_scanner_prefix_0 = @echo " GISCAN $(1)"; +-_gir_silent_scanner_opts = $(_gir_silent_scanner_opts_$(V)) +-_gir_silent_scanner_opts_ = $(_gir_silent_scanner_opts_$(_gir_verbosity)) +-_gir_silent_scanner_opts_0 = --quiet +- +-_gir_silent_compiler = $(_gir_silent_compiler_$(V)) +-_gir_silent_compiler_ = $(_gir_silent_compiler_$(_gir_verbosity)) +-_gir_silent_compiler_0 = @echo " GICOMP $(1)"; +- +-# +-# Creates a GIR by scanning C headers/sources +-# $(1) - Name of the gir file (output) +-# +-# If output is Gtk-2.0.gir then you should name the variables like +-# Gtk_2_0_gir_NAMESPACE, Gtk_2_0_gir_VERSION etc. +-# Required variables: +-# FILES - C sources and headers which should be scanned +-# +-# One of these variables are required: +-# LIBS - Library where the symbol represented in the gir can be found +-# PROGRAM - Program where the symbol represented in the gir can be found +-# +-# Optional variables +-# NAMESPACE - Namespace of the gir, first letter capital, +-# rest should be lower case, for instance: 'Gtk', 'Clutter', 'ClutterGtk'. +-# If not present the namespace will be fetched from the gir filename, +-# the part before the first dash. For 'Gtk-2.0', namespace will be 'Gtk'. +-# VERSION - Version of the gir, if not present, will be fetched from gir +-# filename, the part after the first dash. For 'Gtk-2.0', version will be '2.0'. +-# LIBTOOL - Command to invoke libtool, usually set by automake +-# SCANNERFLAGS - Flags to pass in to the scanner, see g-ir-scanner(1) for a list +-# CFLAGS - Flags to pass in to the parser when scanning headers +-# LDFLAGS - Linker flags used by the scanner +-# PACKAGES - list of pkg-config names which cflags are required to parse +-# the headers of this gir +-# INCLUDES - Gir files to include without the .gir suffix, for instance +-# GLib-2.0, Gtk-2.0. This is needed for all libraries which you depend on that +-# provides introspection information. +-# EXPORT_PACKAGES - list of pkg-config names that are provided by this gir. +-# By default the names in the PACKAGES variable will be used. +-# +- +-define introspection-scanner +- +-# Basic sanity check, to make sure required variables are set +-$(if $($(_gir_name)_FILES),,$(error Need to define $(_gir_name)_FILES)) +-$(if $(or $(findstring --header-only,$($(_gir_name)_SCANNERFLAGS)), +- $($(_gir_name)_LIBS), +- $($(_gir_name)_PROGRAM)),, +- $(error Need to define $(_gir_name)_LIBS or $(_gir_name)_PROGRAM)) +- +-# Only dependencies we know are actually filenames goes into _FILES, make +-# sure these are built before running the scanner. Libraries and programs +-# needs to be added manually. +-$(1): $$($(_gir_name)_FILES) +- @ $(MKDIR_P) $(dir $(1)) +- $(_gir_silent_scanner_prefix) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \ +- $(INTROSPECTION_SCANNER_ARGS) \ +- --namespace=$(_gir_namespace) \ +- --nsversion=$(_gir_version) \ +- $(_gir_libtool) \ +- $(_gir_packages) \ +- $(_gir_includes) \ +- $(_gir_export_packages) \ +- $(_gir_program) \ +- $(_gir_libraries) \ +- $($(_gir_name)_SCANNERFLAGS) \ +- --cflags-begin \ +- $($(_gir_name)_CFLAGS) \ +- --cflags-end \ +- $($(_gir_name)_LDFLAGS) \ +- $$^ \ +- --output $(1) +-endef +- +-$(foreach gir,$(INTROSPECTION_GIRS),$(eval $(call introspection-scanner,$(gir)))) +- +-# +-# Compiles a gir into a typelib +-# $(1): gir filename (input) +-# $(2): typelib filename (output) +-# +-define introspection-compiler +-$(_gir_silent_compiler) $(INTROSPECTION_COMPILER) $(INTROSPECTION_COMPILER_ARGS) --includedir=. $(1) -o $(2) +-endef +- +-# Simple rule to compile a typelib. +-%.typelib: %.gir +- $(call introspection-compiler,$<,$@) +diff -urN gobject-introspection-1.44.0.orig/Makefile.introspection.in gobject-introspection-1.44.0/Makefile.introspection.in +--- gobject-introspection-1.44.0.orig/Makefile.introspection.in 1970-01-01 00:00:00.000000000 +0000 ++++ gobject-introspection-1.44.0/Makefile.introspection.in 2015-03-28 10:35:59.923493900 +0000 +@@ -0,0 +1,187 @@ ++# -*- Mode: make -*- ++# Copyright 2009-2010 Johan Dahlin ++# ++# This file is free software; the author(s) gives unlimited ++# permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++# ++# * Input variables: ++# ++# INTROSPECTION_GIRS - List of GIRS that should be generated ++# INTROSPECTION_SCANNER - Command to invoke scanner, normally set by ++# GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4 ++# INTROSPECTION_SCANNER_ARGS - Additional args to pass in to the scanner ++# INTROSPECTION_SCANNER_ENV - Environment variables to set before running ++# the scanner ++# INTROSPECTION_COMPILER - Command to invoke compiler, normally set by ++# GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4 ++# INTROSPECTION_COMPILER_ARGS - Additional args to pass in to the compiler ++# ++# * Simple tutorial ++# ++# Add this to configure.ac: ++# -Wno-portability to AM_INIT_AUTOMAKE ++# GOBJECT_INTROSPECTION_CHECK([0.6.7]) ++# ++# Add this to Makefile.am where your library/program is built: ++# include $(INTROSPECTION_MAKEFILE) ++# INTROSPECTION_GIRS = YourLib-1.0.gir ++# YourLib-1.0.gir: libyourlib.la ++# YourLib_1_0_gir_NAMESPACE = YourLib ++# YourLib_1_0_gir_VERSION = 1.0 ++# YourLib_1_0_gir_LIBS = libyourlib.la ++# YourLib_1_0_gir_FILES = $(libyourlib_1_0_SOURCES) ++# girdir = $(datadir)/gir-1.0 ++# dist_gir_DATA = YourLib-1.0.gir ++# typelibdir = $(libdir)/girepository-1.0 ++# typelib_DATA = YourLib-1.0.typelib ++# CLEANFILES = $(dist_gir_DATA) $(typelib_DATA) ++# ++ ++# Make sure the required variables are set, these should under normal ++# circumstances come from introspection.m4 ++$(if $(INTROSPECTION_SCANNER),,$(error Need to define INTROSPECTION_SCANNER)) ++$(if $(INTROSPECTION_COMPILER),,$(error Need to define INTROSPECTION_COMPILER)) ++ ++# Private functions ++ ++## Transform the gir filename to something which can reference through a variable ++## without automake/make complaining, eg Gtk-2.0.gir -> Gtk_2_0_gir ++_gir_name = $(subst /,_,$(subst -,_,$(subst .,_,$(1)))) ++ ++# Namespace and Version is either fetched from the gir filename ++# or the _NAMESPACE/_VERSION variable combo ++_gir_namespace = $(or $($(_gir_name)_NAMESPACE),$(firstword $(subst -, ,$(notdir $(1))))) ++_gir_version = $(or $($(_gir_name)_VERSION),$(lastword $(subst -, ,$(1:.gir=)))) ++ ++# _PROGRAM is an optional variable which needs it's own --program argument ++_gir_program = $(if $($(_gir_name)_PROGRAM),--program=$($(_gir_name)_PROGRAM)) ++ ++# Variables which provides a list of things ++_gir_libraries = $(foreach lib,$($(_gir_name)_LIBS),--library=$(lib)) ++_gir_packages = $(foreach pkg,$($(_gir_name)_PACKAGES),--pkg=$(pkg)) ++_gir_includes = $(foreach include,$($(_gir_name)_INCLUDES),--include=$(include)) ++_gir_export_packages = $(foreach pkg,$($(_gir_name)_EXPORT_PACKAGES),--pkg-export=$(pkg)) ++ ++# Reuse the LIBTOOL variable from automake if it's set, but ++# work around MSYS weirdness: When running g-ir-scanner, MSYS changes ++# a command-line argument --libtool="/bin/sh ../../libtool" into ++# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path ++# because we already "know" where the libtool configure produced is. ++_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) ++ ++# Macros for AM_SILENT_RULES prettiness ++_gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) ++ ++_gir_silent_scanner_prefix = $(_gir_silent_scanner_prefix_$(V)) ++_gir_silent_scanner_prefix_ = $(_gir_silent_scanner_prefix_$(_gir_verbosity)) ++_gir_silent_scanner_prefix_0 = @echo " GISCAN $(1)"; ++_gir_silent_scanner_opts = $(_gir_silent_scanner_opts_$(V)) ++_gir_silent_scanner_opts_ = $(_gir_silent_scanner_opts_$(_gir_verbosity)) ++_gir_silent_scanner_opts_0 = --quiet ++ ++_gir_silent_compiler = $(_gir_silent_compiler_$(V)) ++_gir_silent_compiler_ = $(_gir_silent_compiler_$(_gir_verbosity)) ++_gir_silent_compiler_0 = @echo " GICOMP $(1)"; ++ ++# ++# Creates a GIR by scanning C headers/sources ++# $(1) - Name of the gir file (output) ++# ++# If output is Gtk-2.0.gir then you should name the variables like ++# Gtk_2_0_gir_NAMESPACE, Gtk_2_0_gir_VERSION etc. ++# Required variables: ++# FILES - C sources and headers which should be scanned ++# ++# One of these variables are required: ++# LIBS - Library where the symbol represented in the gir can be found ++# PROGRAM - Program where the symbol represented in the gir can be found ++# ++# Optional variables ++# NAMESPACE - Namespace of the gir, first letter capital, ++# rest should be lower case, for instance: 'Gtk', 'Clutter', 'ClutterGtk'. ++# If not present the namespace will be fetched from the gir filename, ++# the part before the first dash. For 'Gtk-2.0', namespace will be 'Gtk'. ++# VERSION - Version of the gir, if not present, will be fetched from gir ++# filename, the part after the first dash. For 'Gtk-2.0', version will be '2.0'. ++# LIBTOOL - Command to invoke libtool, usually set by automake ++# SCANNERFLAGS - Flags to pass in to the scanner, see g-ir-scanner(1) for a list ++# CFLAGS - Flags to pass in to the parser when scanning headers ++# LDFLAGS - Linker flags used by the scanner ++# PACKAGES - list of pkg-config names which cflags are required to parse ++# the headers of this gir ++# INCLUDES - Gir files to include without the .gir suffix, for instance ++# GLib-2.0, Gtk-2.0. This is needed for all libraries which you depend on that ++# provides introspection information. ++# EXPORT_PACKAGES - list of pkg-config names that are provided by this gir. ++# By default the names in the PACKAGES variable will be used. ++# ++ ++define introspection-scanner ++ ++# Basic sanity check, to make sure required variables are set ++$(if $($(_gir_name)_FILES),,$(error Need to define $(_gir_name)_FILES)) ++$(if $(or $(findstring --header-only,$($(_gir_name)_SCANNERFLAGS)), ++ $($(_gir_name)_LIBS), ++ $($(_gir_name)_PROGRAM)),, ++ $(error Need to define $(_gir_name)_LIBS or $(_gir_name)_PROGRAM)) ++ ++# Only dependencies we know are actually filenames goes into _FILES, make ++# sure these are built before running the scanner. Libraries and programs ++# needs to be added manually. ++@COMMENT_ON_W32@$(1): $$($(_gir_name)_FILES) ++@COMMENT_ON_W32@ @ $(MKDIR_P) $(dir $(1)) ++@COMMENT_ON_W32@ $(_gir_silent_scanner_prefix) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \ ++@COMMENT_ON_W32@ $(INTROSPECTION_SCANNER_ARGS) \ ++@COMMENT_ON_W32@ --namespace=$(_gir_namespace) \ ++@COMMENT_ON_W32@ --nsversion=$(_gir_version) \ ++@COMMENT_ON_W32@ $(_gir_libtool) \ ++@COMMENT_ON_W32@ $(_gir_packages) \ ++@COMMENT_ON_W32@ $(_gir_includes) \ ++@COMMENT_ON_W32@ $(_gir_export_packages) \ ++@COMMENT_ON_W32@ $(_gir_program) \ ++@COMMENT_ON_W32@ $(_gir_libraries) \ ++@COMMENT_ON_W32@ $($(_gir_name)_SCANNERFLAGS) \ ++@COMMENT_ON_W32@ --cflags-begin \ ++@COMMENT_ON_W32@ $($(_gir_name)_CFLAGS) \ ++@COMMENT_ON_W32@ --cflags-end \ ++@COMMENT_ON_W32@ $($(_gir_name)_LDFLAGS) \ ++@COMMENT_ON_W32@ $$^ \ ++@COMMENT_ON_W32@ --output $(1) ++ ++@COMMENT_ON_NONW32@$(1): $$($(_gir_name)_FILES) ++@COMMENT_ON_NONW32@ @ $(MKDIR_P) $(dir $(1)) ++@COMMENT_ON_NONW32@ @ echo $$^ > $(1).files ++@COMMENT_ON_NONW32@ $(_gir_silent_scanner_prefix) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \ ++@COMMENT_ON_NONW32@ $(INTROSPECTION_SCANNER_ARGS) \ ++@COMMENT_ON_NONW32@ --namespace=$(_gir_namespace) \ ++@COMMENT_ON_NONW32@ --nsversion=$(_gir_version) \ ++@COMMENT_ON_NONW32@ $(_gir_libtool) \ ++@COMMENT_ON_NONW32@ $(_gir_packages) \ ++@COMMENT_ON_NONW32@ $(_gir_includes) \ ++@COMMENT_ON_NONW32@ $(_gir_export_packages) \ ++@COMMENT_ON_NONW32@ $(_gir_program) \ ++@COMMENT_ON_NONW32@ $(_gir_libraries) \ ++@COMMENT_ON_NONW32@ $($(_gir_name)_SCANNERFLAGS) \ ++@COMMENT_ON_NONW32@ --cflags-begin \ ++@COMMENT_ON_NONW32@ $($(_gir_name)_CFLAGS) \ ++@COMMENT_ON_NONW32@ --cflags-end \ ++@COMMENT_ON_NONW32@ $($(_gir_name)_LDFLAGS) \ ++@COMMENT_ON_NONW32@ --argfile=$(1).files \ ++@COMMENT_ON_NONW32@ --output $(1) ++endef ++ ++$(foreach gir,$(INTROSPECTION_GIRS),$(eval $(call introspection-scanner,$(gir)))) ++ ++# ++# Compiles a gir into a typelib ++# $(1): gir filename (input) ++# $(2): typelib filename (output) ++# ++define introspection-compiler ++$(_gir_silent_compiler) $(INTROSPECTION_COMPILER) $(INTROSPECTION_COMPILER_ARGS) --includedir=. $(1) -o $(2) ++endef ++ ++# Simple rule to compile a typelib. ++%.typelib: %.gir ++ $(call introspection-compiler,$<,$@) +diff -urN gobject-introspection-1.44.0.orig/tests/offsets/Makefile.am gobject-introspection-1.44.0/tests/offsets/Makefile.am +--- gobject-introspection-1.44.0.orig/tests/offsets/Makefile.am 2015-03-28 10:27:07.303359700 +0000 ++++ gobject-introspection-1.44.0/tests/offsets/Makefile.am 2015-03-28 10:57:08.321560000 +0000 +@@ -1,5 +1,5 @@ + include $(top_srcdir)/common.mk +-include $(top_srcdir)/Makefile.introspection ++include $(top_srcdir)/Makefile.introspection.in + + BUILT_SOURCES = + CLEANFILES = +diff -urN gobject-introspection-1.44.0.orig/tests/scanner/Makefile.am gobject-introspection-1.44.0/tests/scanner/Makefile.am +--- gobject-introspection-1.44.0.orig/tests/scanner/Makefile.am 2015-03-28 10:27:07.346865300 +0000 ++++ gobject-introspection-1.44.0/tests/scanner/Makefile.am 2015-03-28 10:57:16.107548700 +0000 +@@ -1,7 +1,7 @@ + NULL ?= + + include $(top_srcdir)/common.mk +-include $(top_srcdir)/Makefile.introspection ++include $(top_srcdir)/Makefile.introspection.in + + SUBDIRS = . annotationparser + diff --git a/mingw-w64-gobject-introspection/0060-LRN.patch b/mingw-w64-gobject-introspection/0060-LRN.patch deleted file mode 100644 index 2cdb5c90b0..0000000000 --- a/mingw-w64-gobject-introspection/0060-LRN.patch +++ /dev/null @@ -1,230 +0,0 @@ -@@ -, +, @@ - =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= - Makefile-gir.am | 2 +- - Makefile-giscanner.am | 5 +++++ - Makefile-tools.am | 14 ++++++++++++-- - Makefile.am | 17 +++++++++-------- - Makefile.introspection | 2 +- - common.mk | 2 +- - giscanner/scannermain.py | 4 ++-- - giscanner/utils.py | 33 ++++++++++++++++++++++++++++++++- - misc/g-ir-scanner-w32-wrapper | 37 +++++++++++++++++++++++++++++++++++++ - tools/g-ir-scanner.in | 2 +- - 10 files changed, 101 insertions(+), 17 deletions(-) - create mode 100644 misc/g-ir-scanner-w32-wrapper ---- a/Makefile-gir.am -+++ a/Makefile-gir.am -@@ -87,7 +87,7 @@ endif - - BUILT_GIRSOURCES += GLib-2.0.gir - --GLib-2.0.gir: g-ir-scanner g-ir-compiler$(EXEEXT) -+GLib-2.0.gir: g-ir-scanner-build g-ir-compiler$(EXEEXT) - - gir/DBusGLib-1.0.typelib: GObject-2.0.gir - ---- a/Makefile-giscanner.am -+++ a/Makefile-giscanner.am -@@ -129,3 +129,8 @@ _giscanner_la_LDFLAGS += \ - endif - - _giscanner_la_SOURCES = giscanner/giscannermodule.c -+ -+if OS_WIN32 -+wrapperdir = $(pkglibdir) -+wrapper_SCRIPTS = misc/g-ir-scanner-w32-wrapper -+endif ---- a/Makefile-tools.am -+++ a/Makefile-tools.am -@@ -10,7 +10,12 @@ EXTRA_DIST += \ - tools/g-ir-annotation-tool.in \ - tools/g-ir-doc-tool.in - --TOOL_SUBSTITUTIONS = sed -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON\@,$(PYTHON), -+TOOL_SUBSTITUTIONS = sed -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON\@,$(PYTHON), -e "s,@G_IR_SCANNER_W32_WRAPPER\@,$(G_IR_SCANNER_W32_WRAPPER)," -+if OS_WIN32 -+TOOL_SUBSTITUTIONS_BUILD = sed -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON\@,$(PYTHON), -e "s,@G_IR_SCANNER_W32_WRAPPER\@,$(abs_top_srcdir)/misc/g-ir-scanner-w32-wrapper ," -+else -+TOOL_SUBSTITUTIONS_BUILD = sed -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON\@,$(PYTHON), -e s,@G_IR_SCANNER_W32_WRAPPER\@,, -+endif - - g-ir-scanner: tools/g-ir-scanner.in _giscanner.la Makefile - $(AM_V_GEN) $(TOOL_SUBSTITUTIONS) $< > $@.tmp && mv $@.tmp $@ -@@ -24,6 +29,11 @@ g-ir-doc-tool: tools/g-ir-doc-tool.in _giscanner.la Makefile - $(AM_V_GEN) $(TOOL_SUBSTITUTIONS) $< > $@.tmp && mv $@.tmp $@ - @chmod a+x $@ - -+g-ir-scanner-build: tools/g-ir-scanner.in _giscanner.la Makefile -+ $(AM_V_GEN) $(TOOL_SUBSTITUTIONS_BUILD) $< > $@.tmp && mv $@.tmp $@ -+ @chmod a+x $@ -+ @chmod a+x $(top_srcdir)/misc/g-ir-scanner-w32-wrapper -+ - g_ir_compiler_SOURCES = tools/compiler.c - g_ir_compiler_CPPFLAGS = -DGIREPO_DEFAULT_SEARCH_PATH="\"$(libdir)\"" \ - -I$(top_srcdir)/girepository -@@ -46,4 +56,4 @@ GCOVSOURCES = \ - $(g_ir_compiler_SOURCES) \ - $(g_ir_generate_SOURCES) - --CLEANFILES += g-ir-scanner g-ir-annotation-tool g-ir-doc-tool -+CLEANFILES += g-ir-scanner g-ir-scanner-build g-ir-annotation-tool g-ir-doc-tool ---- a/Makefile.am -+++ a/Makefile.am -@@ -47,14 +47,15 @@ m4_DATA = m4/introspection.m4 - makedir = $(datadir)/gobject-introspection-1.0 - dist_make_DATA = Makefile.introspection - --EXTRA_DIST += \ -- COPYING.LGPL \ -- COPYING.GPL \ -- CONTRIBUTORS \ -- $(pkgconfig_DATA) \ -- $(man_MANS) \ -- $(m4_DATA) \ -- misc/pep8.py \ -+EXTRA_DIST += \ -+ COPYING.LGPL \ -+ COPYING.GPL \ -+ CONTRIBUTORS \ -+ $(pkgconfig_DATA) \ -+ $(man_MANS) \ -+ $(m4_DATA) \ -+ misc/g-ir-scanner-w32-wrapper \ -+ misc/pep8.py \ - misc/pyflakes.py - - # Default pep8.py --exclude + emacs backup files ---- a/Makefile.introspection -+++ a/Makefile.introspection -@@ -146,7 +146,7 @@ $(1): $$($(_gir_name)_FILES) - $($(_gir_name)_CFLAGS) \ - --cflags-end \ - $($(_gir_name)_LDFLAGS) \ -- $$^ \ -+ --files-begin $$^ \ - --output $(1) - endef - ---- a/common.mk -+++ a/common.mk -@@ -13,7 +13,7 @@ INTROSPECTION_SCANNER = \ - PYTHONPATH=$(top_builddir):$(top_srcdir) \ - UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \ - UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \ -- $(top_builddir)/g-ir-scanner -+ $(top_builddir)/g-ir-scanner-build - - INTROSPECTION_SCANNER_ARGS = \ - --verbose \ ---- a/giscanner/scannermain.py -+++ a/giscanner/scannermain.py -@@ -468,10 +468,10 @@ def write_output(data, options): - except IOError as e: - _error("while writing output: %s" % (e.strerror, )) - -- - def scanner_main(args): -+ loaded_args = utils.maybe_load_args_from_file(args) - parser = _get_option_parser() -- (options, args) = parser.parse_args(args) -+ (options, args) = parser.parse_args(loaded_args) - - if options.passthrough_gir: - passthrough_gir(options.passthrough_gir, sys.stdout) ---- a/giscanner/utils.py -+++ a/giscanner/utils.py -@@ -22,7 +22,7 @@ import re - import os - import subprocess - import platform -- -+import shlex - - _debugflags = None - -@@ -75,6 +75,37 @@ def to_underscores_noprefix(name): - return name - - -+def load_args_from_file(filename): -+ with open(filename, 'rb') as source: -+ return shlex.split(source.read()) -+ -+def maybe_load_args_from_file(args): -+ processed_args = [] -+ skip = False -+ is_input_file = False -+ argfilelen = len('--argfile=') -+ for argn, arg in enumerate(args): -+ if skip: -+ processed_args.append(arg) -+ continue -+ elif arg == '--': -+ skip = True -+ processed_args.append(arg) -+ continue -+ if is_input_file: -+ processed_args.extend(load_args_from_file(arg)) -+ is_input_file = False -+ continue -+ if arg == '--argfile' and argn + 1 < len(args): -+ is_input_file = True -+ continue -+ elif arg.startswith('--argfile=') and len(arg) > argfilelen: -+ processed_args.extend(load_args_from_file(arg[argfilelen:])) -+ continue -+ processed_args.append(arg) -+ return processed_args -+ -+ - _libtool_pat = re.compile("dlname='([A-z0-9\.\-\+]+)'\n") - - ---- a/misc/g-ir-scanner-w32-wrapper -+++ a/misc/g-ir-scanner-w32-wrapper -@@ -0,0 +1,37 @@ -+#!/bin/sh -+# This script is a w32 wrapper for g-ir-scanner, -+# it will put all arguments after "--files-begin" into a tempfile -+# and replace them with --argfile before invoking g-ir-scanner -+ -+new_args= -+while (( "$#" )); do -+ if test "x$1" == "x--files-begin" -+ then -+ shift -+ break -+ else -+ echo "$1" | grep -e '[^\] ' &>/dev/null -+ space_check=$? -+ if test "x$space_check" == "x0" -+ then -+ new_args="$new_args \"$1\"" -+ else -+ new_args="$new_args $1" -+ fi -+ fi -+ shift -+done -+ -+argfile=$(mktemp) -+for x in $* -+do -+ # this is more compatible (if slower) than calling cygpath -+ dosedx=$(cmd //C echo $x) -+ echo -n "$dosedx " >>$argfile -+done -+ -+$new_args --argfile $argfile -+result=$? -+rm -f $argfile -+ -+exit $result ---- a/tools/g-ir-scanner.in -+++ a/tools/g-ir-scanner.in -@@ -1,4 +1,4 @@ --#!@PYTHON@ -+#!@G_IR_SCANNER_W32_WRAPPER@@PYTHON@ - # -*- Mode: Python -*- - # GObject-Introspection - a framework for introspecting GObject libraries - # Copyright (C) 2008 Johan Dahlin diff --git a/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch b/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch index 9167d7061a..fd50b9218f 100644 --- a/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch +++ b/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch @@ -10,9 +10,9 @@ diff -Naur gobject-introspection-1.44.0-orig/Makefile.in gobject-introspection-1 # Macros for AM_SILENT_RULES prettiness _gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) -diff -Naur gobject-introspection-1.44.0-orig/Makefile.introspection gobject-introspection-1.44.0/Makefile.introspection ---- gobject-introspection-1.44.0-orig/Makefile.introspection 2015-03-25 13:42:43.704200000 +0300 -+++ gobject-introspection-1.44.0/Makefile.introspection 2015-03-25 16:06:53.067000000 +0300 +diff -Naur gobject-introspection-1.44.0-orig/Makefile.introspection.in gobject-introspection-1.44.0/Makefile.introspection.in +--- gobject-introspection-1.44.0-orig/Makefile.introspection.in 2015-03-25 13:42:43.704200000 +0300 ++++ gobject-introspection-1.44.0/Makefile.introspection.in 2015-03-25 16:06:53.067000000 +0300 @@ -68,7 +68,7 @@ # a command-line argument --libtool="/bin/sh ../../libtool" into # --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index 4166945df1..a4c6214d98 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -3,13 +3,14 @@ _realname=gobject-introspection pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.44.0 -pkgrel=1 +pkgrel=2 pkgdesc="GObject Introspection can scan C header and source files in order to generate introspection typelib files (mingw-w64)" arch=('any') url="https://live.gnome.org/GObjectIntrospection" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "python3") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-cairo" @@ -21,28 +22,28 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${pkgver%.* 0018-debug-rmtree-errors.mingw.patch 0021-tests-no-undefined.patch 0022-change-pkg-config-invocations.mingw.patch + 0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch 0050-dont-load-msvcrt.patch 0055-fix-python-detection.patch - 0060-LRN.patch 0065-fix-compare-uname-output.patch) md5sums=('7ef8a1db7f74f4193a2397b1587eb913' 'f0ecde986ebf1f0e28b752f9c36fb6c1' '69ef34e2f57abc8afe1b9f6fa3786e97' '8d3589fb959a0a68ce7ce9051fa441fe' + 'bb1c749aa860e4981bfcc5324b610180' 'e3598d539258678eef8dde2216419faf' '6d809bf266e42a20b31a7acbaf0384d1' - '1dfd956934a6532a5a66d2b251019a36' - '608c5b9c90a5b95b1669be74d2473fe1') + 'e348d9ac65e380dd05e68818ab139dba') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0018-debug-rmtree-errors.mingw.patch patch -p1 -i ${srcdir}/0021-tests-no-undefined.patch patch -p1 -i ${srcdir}/0022-change-pkg-config-invocations.mingw.patch + patch -p1 -i ${srcdir}/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch patch -p1 -i ${srcdir}/0050-dont-load-msvcrt.patch patch -p1 -i ${srcdir}/0055-fix-python-detection.patch - patch -p1 -i ${srcdir}/0060-LRN.patch patch -p1 -i ${srcdir}/0065-fix-compare-uname-output.patch autoreconf -fi @@ -57,9 +58,9 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --enable-silent-rules + --disable-silent-rules - make G_IR_SCANNER_W32_WRAPPER="${MINGW_PREFIX}/lib/gobject-introspection/g-ir-scanner-w32-wrapper " + make -j1 V=1 } package() { From c2c88bab0c023b30816d31cf90d8186593993832 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 29 Mar 2015 13:23:22 +0300 Subject: [PATCH 0765/2060] qwt-qt5: Fix installation folders. --- mingw-w64-qwt-qt5/PKGBUILD | 6 +++--- mingw-w64-qwt-qt5/qwtconfig-msys2.pri | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-qwt-qt5/PKGBUILD b/mingw-w64-qwt-qt5/PKGBUILD index 55dc27fc68..5c2a1f6297 100644 --- a/mingw-w64-qwt-qt5/PKGBUILD +++ b/mingw-w64-qwt-qt5/PKGBUILD @@ -6,7 +6,7 @@ _realname=qwt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt5" pkgver=6.1.1 pkgrel=1 -pkgdesc="Qt Widgets for Technical Applications" +pkgdesc="Qt Widgets for Technical Applications (mingw-w64)" arch=('any') license=("custom:$pkgname") url="http://qwt.sourceforge.net/" @@ -18,7 +18,7 @@ source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$pkgver.tar. "transform_cpp_static_const.patch" "transform_h_static_const.patch") md5sums=('fe4bdd561ef5584924e72e15bcf46b9e' - 'cb2fcbe950fd61056ef13069c824d700' + '2bb4059cc41cba7e9e18d921e3fe8a0d' 'c650213b9223bd75d6e192a280c16030' '2ef486784fa0232ce845a3ef295a47ae') @@ -56,5 +56,5 @@ package() { popd > /dev/null sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/mkspecs/features/qwtconfig.pri + -i ${pkgdir}${MINGW_PREFIX}/share/qt5/mkspecs/features/qwtconfig.pri } diff --git a/mingw-w64-qwt-qt5/qwtconfig-msys2.pri b/mingw-w64-qwt-qt5/qwtconfig-msys2.pri index 5e07f648a7..a5e595d30f 100644 --- a/mingw-w64-qwt-qt5/qwtconfig-msys2.pri +++ b/mingw-w64-qwt-qt5/qwtconfig-msys2.pri @@ -27,7 +27,7 @@ QWT_INSTALL_LIBS = $${QWT_INSTALL_PREFIX}/lib # Designer plugin ###################################################################### -QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/plugins/designer +QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/share/qt5/plugins/designer ###################################################################### # Features @@ -41,7 +41,7 @@ QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/plugins/designer # with every Qt upgrade. ###################################################################### -QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/mkspecs/features +QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/share/qt5/mkspecs/features ###################################################################### # Build the static/shared libraries. From 471dd06261583eeefec45a876d60697935d06667 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 29 Mar 2015 13:57:21 +0300 Subject: [PATCH 0766/2060] phodav: Fix build deps. --- mingw-w64-phodav/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-phodav/PKGBUILD b/mingw-w64-phodav/PKGBUILD index cadb2f0e3f..b3ff0cce6b 100644 --- a/mingw-w64-phodav/PKGBUILD +++ b/mingw-w64-phodav/PKGBUILD @@ -8,7 +8,7 @@ arch=('any') pkgdesc="A WebDAV server using libsoup (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-libsoup") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gtk-doc") + "gtk-doc") options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org" From f6954b90a928b67e22d3c94c8306eee97e17adc0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 29 Mar 2015 13:57:44 +0300 Subject: [PATCH 0767/2060] libpng: Update to 1.6.17 --- mingw-w64-libpng/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libpng/PKGBUILD b/mingw-w64-libpng/PKGBUILD index ff866379f7..14e01dee40 100644 --- a/mingw-w64-libpng/PKGBUILD +++ b/mingw-w64-libpng/PKGBUILD @@ -2,7 +2,7 @@ _realname=libpng pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.16 +pkgver=1.6.17 pkgrel=1 arch=('any') pkgdesc="A collection of routines used to create PNG format graphics (mingw-w64)" @@ -15,8 +15,8 @@ options=('strip' '!libtool' 'staticlibs') source=("http://downloads.sourceforge.net/sourceforge/libpng/libpng-$pkgver.tar.xz" "http://downloads.sourceforge.net/project/libpng-apng/libpng16/$pkgver/libpng-$pkgver-apng.patch.gz") -md5sums=('23b7286b5d4a86de950fd2ffc5cac742' - '52de72a29e5d0428a0e527be74b99c24') +md5sums=('430a9b76b78533235cd4b9b26ce75c7e' + 'f68d34f10bcc7f43b8c3dce5708e1933') prepare() { cd "$srcdir/libpng-$pkgver" From 2df77e421d66f9ce198268cf3b3bd07dad7404c5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 29 Mar 2015 14:03:02 +0300 Subject: [PATCH 0768/2060] Extend .gitignore. --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index c1c5c8ed07..1878e0d5fa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,9 @@ *.tar.xz *.tar.gz *.tar.bz2 +*.tgz +*.zip +*.rar +*.sig */src/ */pkg/ \ No newline at end of file From 10b0b7577dc327f55c627d4a8bcd27df99d6013b Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 29 Mar 2015 13:51:55 +0200 Subject: [PATCH 0769/2060] libgsf: new package. --- mingw-w64-libgsf/001-win.patch | 76 ++++++++++++++++++++++++++++++++++ mingw-w64-libgsf/PKGBUILD | 56 +++++++++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 mingw-w64-libgsf/001-win.patch create mode 100644 mingw-w64-libgsf/PKGBUILD diff --git a/mingw-w64-libgsf/001-win.patch b/mingw-w64-libgsf/001-win.patch new file mode 100644 index 0000000000..a980dae4b2 --- /dev/null +++ b/mingw-w64-libgsf/001-win.patch @@ -0,0 +1,76 @@ +--- ./gsf/Makefile.am.orig 2014-12-15 05:31:48.000000000 +0100 ++++ ./gsf/Makefile.am 2015-03-28 16:52:56.424200300 +0100 +@@ -150,6 +150,8 @@ + + if HAVE_INTROSPECTION + ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" ++ + INTROSPECTION_GIRS += Gsf-1.gir + + Gsf-1.gir: $(INTROSPECTION_SCANNER) libgsf-1.la Makefile +--- ./m4/intltool.m4.orig 2015-02-05 00:40:27.000000000 +0100 ++++ ./m4/intltool.m4 2015-03-28 16:52:56.434201100 +0100 +@@ -155,31 +155,6 @@ + # Substitute ALL_LINGUAS so we can use it in po/Makefile + AC_SUBST(ALL_LINGUAS) + +-# Set DATADIRNAME correctly if it is not set yet +-# (copied from glib-gettext.m4) +-if test -z "$DATADIRNAME"; then +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[]], +- [[extern int _nl_msg_cat_cntr; +- return _nl_msg_cat_cntr]])], +- [DATADIRNAME=share], +- [case $host in +- *-*-solaris*) +- dnl On Solaris, if bind_textdomain_codeset is in libc, +- dnl GNU format message catalog is always supported, +- dnl since both are added to the libc all together. +- dnl Hence, we'd like to go with DATADIRNAME=share +- dnl in this case. +- AC_CHECK_FUNC(bind_textdomain_codeset, +- [DATADIRNAME=share], [DATADIRNAME=lib]) +- ;; +- *) +- [DATADIRNAME=lib] +- ;; +- esac]) +-fi +-AC_SUBST(DATADIRNAME) +- + IT_PO_SUBDIR([po]) + + ]) +--- ./po/Makefile.in.in.orig 2015-03-28 16:53:16.017219400 +0100 ++++ ./po/Makefile.in.in 2015-03-28 16:53:42.228125500 +0100 +@@ -34,7 +34,7 @@ + datarootdir = @datarootdir@ + libdir = @libdir@ + DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +108,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +142,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot diff --git a/mingw-w64-libgsf/PKGBUILD b/mingw-w64-libgsf/PKGBUILD new file mode 100644 index 0000000000..607d122481 --- /dev/null +++ b/mingw-w64-libgsf/PKGBUILD @@ -0,0 +1,56 @@ +# Maintainer: Andrea Zagli + +_realname=libgsf +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.14.32 +pkgrel=1 +arch=('any') +pkgdesc="An extensible I/O abstraction library for dealing with structured file formats (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-zlib" + "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2") +makedepends=("${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "gtk-doc" + "intltool") +options=('strip' 'staticlibs') +license=("LGPL 2.1") +url="http://www.gnome.org/" +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('13bf38b848c01e20eb89a48150b6f864434ee4dfbb6301ddf6f4080a36cd99e9' + 'a6408ee4cca51afb8c910d467d0036c7aa5520e0486366aad47a5a39b5ecdc1b') + +prepare() { + cd ${_realname}-${pkgver} + + patch -b -V simple -p1 -i ${srcdir}/001-win.patch + + autoreconf -fiv +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + mkdir -p doc/html + cp -rf ../${_realname}-${pkgver}/doc/html/* doc/html + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-introspection + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" +} From 928f18173b0d1ac4b0a9b4295c72c6c0f701aece Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 29 Mar 2015 20:44:51 +0300 Subject: [PATCH 0770/2060] libgsf: Fix installing g-i files. --- mingw-w64-libgsf/002-get-unix-path-for-git.patch | 15 +++++++++++++++ mingw-w64-libgsf/PKGBUILD | 8 +++++--- 2 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-libgsf/002-get-unix-path-for-git.patch diff --git a/mingw-w64-libgsf/002-get-unix-path-for-git.patch b/mingw-w64-libgsf/002-get-unix-path-for-git.patch new file mode 100644 index 0000000000..08c0298cdc --- /dev/null +++ b/mingw-w64-libgsf/002-get-unix-path-for-git.patch @@ -0,0 +1,15 @@ +--- libgsf-1.14.32/configure.ac.orig 2015-03-29 20:26:00.811400000 +0300 ++++ libgsf-1.14.32/configure.ac 2015-03-29 20:28:13.752800000 +0300 +@@ -126,10 +126,10 @@ + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + if test "x$INTROSPECTION_GIRDIR" = x; then +- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` ++ INTROSPECTION_GIRDIR=`$PKG_CONFIG --dont-define-prefix --variable=girdir gobject-introspection-1.0` + fi + if test "x$INTROSPECTION_TYPELIBDIR" = x; then +- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" ++ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --dont-define-prefix --variable=typelibdir gobject-introspection-1.0)" + fi + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` diff --git a/mingw-w64-libgsf/PKGBUILD b/mingw-w64-libgsf/PKGBUILD index 607d122481..3b10d2fe21 100644 --- a/mingw-w64-libgsf/PKGBUILD +++ b/mingw-w64-libgsf/PKGBUILD @@ -18,15 +18,17 @@ options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz - 001-win.patch) + 001-win.patch + 002-get-unix-path-for-git.patch) sha256sums=('13bf38b848c01e20eb89a48150b6f864434ee4dfbb6301ddf6f4080a36cd99e9' - 'a6408ee4cca51afb8c910d467d0036c7aa5520e0486366aad47a5a39b5ecdc1b') + 'a6408ee4cca51afb8c910d467d0036c7aa5520e0486366aad47a5a39b5ecdc1b' + 'f08db8333d2b4a369737a77969b5896d408a4d9992fab6f1c9c44ddeae25c516') prepare() { cd ${_realname}-${pkgver} patch -b -V simple -p1 -i ${srcdir}/001-win.patch - + patch -b -V simple -p1 -i ${srcdir}/002-get-unix-path-for-git.patch autoreconf -fiv } From 8cf5b5a8708ca688068085b5a4b3f8423c08d160 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 29 Mar 2015 22:10:11 +0300 Subject: [PATCH 0771/2060] cmake: Remove obsolete patch. --- mingw-w64-cmake/PKGBUILD | 11 ++--------- mingw-w64-cmake/wxWidgets-module.patch | 14 -------------- 2 files changed, 2 insertions(+), 23 deletions(-) delete mode 100644 mingw-w64-cmake/wxWidgets-module.patch diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 90372d3288..6f96bf2e1f 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -3,7 +3,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.2.1 -pkgrel=1 +pkgrel=2 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -22,32 +22,25 @@ options=('staticlibs') # '!strip' 'debug') source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" - "wxWidgets-module.patch" "qt5-static-plugin-support.patch") md5sums=('63f436aa19b5efc37017759c8d3953ca' '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' - '09ea9092ca85e482de79886bd0c09144' '6461b89ff7d1ca0c4022801dff8475a7') prepare() { cd ${_realname}-${pkgver} patch -Np1 -i ${srcdir}/disable-response-files-for-msys.patch patch -Np1 -i ${srcdir}/dont-install-bundle.patch - patch -Np1 -i ${srcdir}/wxWidgets-module.patch patch -Np1 -i ${srcdir}/qt5-static-plugin-support.patch } build() { - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_LIB=`pwd -W` - popd > /dev/null - mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" MSYSTEM=MINGW "${srcdir}"/${_realname}-${pkgver}/configure \ - --prefix=${PREFIX_LIB} \ + --prefix=${MINGW_PREFIX} \ --system-libs \ --no-system-expat \ --qt-gui \ diff --git a/mingw-w64-cmake/wxWidgets-module.patch b/mingw-w64-cmake/wxWidgets-module.patch deleted file mode 100644 index 3872f35373..0000000000 --- a/mingw-w64-cmake/wxWidgets-module.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -Naur cmake-3.0.1.orig/Modules/FindwxWidgets.cmake cmake-3.0.1.wxfix/Modules/FindwxWidgets.cmake ---- cmake-3.0.1.orig/Modules/FindwxWidgets.cmake 2014-07-31 10:03:56.000000000 -0500 -+++ cmake-3.0.1.wxfix/Modules/FindwxWidgets.cmake 2014-08-14 12:02:11.604331400 -0500 -@@ -792,6 +792,10 @@ - wxWidgets_CXX_FLAGS "${wxWidgets_CXX_FLAGS}") - string(REPLACE "-I" "" - wxWidgets_INCLUDE_DIRS "${wxWidgets_INCLUDE_DIRS}") -+ -+ # Flags are a string, not a list, fix it here -+ string(REPLACE ";" " " -+ wxWidgets_CXX_FLAGS "${wxWidgets_CXX_FLAGS}") - - DBG_MSG_V("wxWidgets_DEFINITIONS=${wxWidgets_DEFINITIONS}") - DBG_MSG_V("wxWidgets_INCLUDE_DIRS=${wxWidgets_INCLUDE_DIRS}") From 737c0e095e52f58fa6ab3bec5585bb20ab6235e9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 30 Mar 2015 06:14:52 +0300 Subject: [PATCH 0772/2060] mesa: Update to 10.5.2 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index cea31bebdc..630e081601 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,7 +2,7 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.5.1 +pkgver=10.5.2 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('203dba1fb6b503802fa6625181b26d31' +md5sums=('528b3b0c0ff330766b9788da04a9fabd' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From 4d5da853ccbd393064c62a3f948d2554a3b07d35 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 30 Mar 2015 06:15:31 +0300 Subject: [PATCH 0773/2060] libtasn1: Update libtasn1 to 4.4 --- mingw-w64-libtasn1/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libtasn1/PKGBUILD b/mingw-w64-libtasn1/PKGBUILD index 61ce56cf29..c73822acac 100644 --- a/mingw-w64-libtasn1/PKGBUILD +++ b/mingw-w64-libtasn1/PKGBUILD @@ -2,7 +2,7 @@ _realname=libtasn1 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.3 +pkgver=4.4 pkgrel=1 pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications (mingw-w64)" arch=('any') @@ -12,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://ftp.gnu.org/gnu/libtasn1/${_realname}-${pkgver}.tar.gz"{,.sig}) -md5sums=('67e98988f966a34fbf1b82d33eef9e7e' +md5sums=('c26d76d1309dd339365c563076599912' 'SKIP') prepare() { From 35f3efd9d8c4279431010ddd54644539423cdd9a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 30 Mar 2015 16:37:24 +0300 Subject: [PATCH 0774/2060] webkitgtk: Update to 2.4.8 (WIP) --- ...eference-to-nonexisting-header.mingw.patch | 11 +- ...02-webkitgtk-mingw-use-gcc-asm.mingw.patch | 2 +- ...it-dont-build-dump-render-tree.mingw.patch | 10 - ...-dont-declare-readwritebarrier.mingw.patch | 11 - ...prevent-no-error-name-conflict.mingw.patch | 16 - ...7-webkitgtk-mingw-fix-includes.mingw.patch | 14 +- ...-fix-angle-windows-compilation.mingw.patch | 10 +- ...t-multiple-plugins-definitions.mingw.patch | 58 ++-- .../0011-webkitgtk-mingw-opengl.mingw.patch | 18 +- ...gtk-dont-build-test-webkit-api.mingw.patch | 14 +- ...3-webkitgtk-redo-commit-148663.mingw.patch | 99 ------ ...und-conflicting-htonl-on-win64.mingw.patch | 23 -- .../0015-use-gstatbuf.all.patch | 11 - ...016-non-volatile-refc-in-audio.mingw.patch | 16 - ...-make-sure-correct-gcc-is-used.mingw.patch | 147 +++++---- ...1-use-configured-python-for-this.all.patch | 21 +- ...bs-to-get-smaller-debug-builds.mingw.patch | 13 - .../0025-webkitgtk-2.2.5-icu-libraries.patch | 11 - .../0026-webkitgtk-mingw-gnu-print.patch | 64 ---- ...ocation-before-return-switchable.all.patch | 32 ++ .../0027-webkitgtk-windows-fix-egl.patch | 13 - ...Use-after-free-in-WTF-threading-code.patch | 15 - ...pass-python-and-cflags-to-girscanner.patch | 63 ---- ...bkit-dont-build-dump-render-tree.all.patch | 14 + .../0101-webkitgtk-2.4.3-gcc-asm.all.patch | 26 ++ .../0103-webkitgtk-2.4.3-win-format.all.patch | 11 + ...-webkitgtk-2.4.3-misc-win-errors.all.patch | 45 +++ .../0105-webkitgtk-2.4.3-warnings.all.patch | 57 ++++ .../0106-enable-jit.all.patch | 236 ++++++++++++++ ...ce.autotools.FindDependencies.m4.all.patch | 35 ++ ...02-preprocessor.pm-make_names.pl.all.patch | 31 ++ .../1004-math.h_related.all.patch | 56 ++++ mingw-w64-webkitgtk3/1005-misc.all.patch | 107 +++++++ .../3000-export-more-symbols-on-w32.all.patch | 17 + .../4000-fix-gmutexlocker-conflict.all.patch | 301 ++++++++++++++++++ mingw-w64-webkitgtk3/PKGBUILD | 225 ++++++------- 36 files changed, 1251 insertions(+), 602 deletions(-) delete mode 100644 mingw-w64-webkitgtk3/0003-webkit-dont-build-dump-render-tree.mingw.patch delete mode 100644 mingw-w64-webkitgtk3/0004-webkitgtk-mingw-dont-declare-readwritebarrier.mingw.patch delete mode 100644 mingw-w64-webkitgtk3/0006-webkitgtk-mingw-prevent-no-error-name-conflict.mingw.patch delete mode 100644 mingw-w64-webkitgtk3/0013-webkitgtk-redo-commit-148663.mingw.patch delete mode 100644 mingw-w64-webkitgtk3/0014-webkitgtk-workaround-conflicting-htonl-on-win64.mingw.patch delete mode 100644 mingw-w64-webkitgtk3/0015-use-gstatbuf.all.patch delete mode 100644 mingw-w64-webkitgtk3/0016-non-volatile-refc-in-audio.mingw.patch delete mode 100644 mingw-w64-webkitgtk3/0024-use-stabs-to-get-smaller-debug-builds.mingw.patch delete mode 100644 mingw-w64-webkitgtk3/0025-webkitgtk-2.2.5-icu-libraries.patch delete mode 100644 mingw-w64-webkitgtk3/0026-webkitgtk-mingw-gnu-print.patch create mode 100644 mingw-w64-webkitgtk3/0027-destroy-invocation-before-return-switchable.all.patch delete mode 100644 mingw-w64-webkitgtk3/0027-webkitgtk-windows-fix-egl.patch delete mode 100644 mingw-w64-webkitgtk3/0028-Use-after-free-in-WTF-threading-code.patch delete mode 100644 mingw-w64-webkitgtk3/0029-pass-python-and-cflags-to-girscanner.patch create mode 100644 mingw-w64-webkitgtk3/0029-webkit-dont-build-dump-render-tree.all.patch create mode 100644 mingw-w64-webkitgtk3/0101-webkitgtk-2.4.3-gcc-asm.all.patch create mode 100644 mingw-w64-webkitgtk3/0103-webkitgtk-2.4.3-win-format.all.patch create mode 100644 mingw-w64-webkitgtk3/0104-webkitgtk-2.4.3-misc-win-errors.all.patch create mode 100644 mingw-w64-webkitgtk3/0105-webkitgtk-2.4.3-warnings.all.patch create mode 100644 mingw-w64-webkitgtk3/0106-enable-jit.all.patch create mode 100644 mingw-w64-webkitgtk3/1001-Source.autotools.FindDependencies.m4.all.patch create mode 100644 mingw-w64-webkitgtk3/1002-preprocessor.pm-make_names.pl.all.patch create mode 100644 mingw-w64-webkitgtk3/1004-math.h_related.all.patch create mode 100644 mingw-w64-webkitgtk3/1005-misc.all.patch create mode 100644 mingw-w64-webkitgtk3/3000-export-more-symbols-on-w32.all.patch create mode 100644 mingw-w64-webkitgtk3/4000-fix-gmutexlocker-conflict.all.patch diff --git a/mingw-w64-webkitgtk3/0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch b/mingw-w64-webkitgtk3/0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch index 36efd3ee2d..d6f50e5d6e 100644 --- a/mingw-w64-webkitgtk3/0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch +++ b/mingw-w64-webkitgtk3/0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch @@ -1,13 +1,10 @@ ---- webkitgtk-2.2.3/Source/WTF/wtf/Platform.h.orig 2013-12-04 19:44:46.333861578 +0100 -+++ webkitgtk-2.2.3/Source/WTF/wtf/Platform.h 2013-12-04 19:44:52.559923235 +0100 -@@ -627,11 +627,6 @@ - #define HAVE_SYS_TIMEB_H 1 +--- webkitgtk-2.4.8/Source/WTF/wtf/Platform.h.orig 2015-03-24 06:06:58.439159200 +0000 ++++ webkitgtk-2.4.8/Source/WTF/wtf/Platform.h 2015-03-24 06:10:16.432801200 +0000 +@@ -608,8 +608,6 @@ #define HAVE_ALIGNED_MALLOC 1 #define HAVE_ISDEBUGGERPRESENT 1 -- --#if !PLATFORM(QT) + -#include --#endif - #endif diff --git a/mingw-w64-webkitgtk3/0002-webkitgtk-mingw-use-gcc-asm.mingw.patch b/mingw-w64-webkitgtk3/0002-webkitgtk-mingw-use-gcc-asm.mingw.patch index fe47e4a124..d3a6b6dce3 100644 --- a/mingw-w64-webkitgtk3/0002-webkitgtk-mingw-use-gcc-asm.mingw.patch +++ b/mingw-w64-webkitgtk3/0002-webkitgtk-mingw-use-gcc-asm.mingw.patch @@ -5,7 +5,7 @@ { #if ENABLE(COMPARE_AND_SWAP) -#if !OS(WINDOWS) && (CPU(X86) || CPU(X86_64)) -+#if COMPILER(GCC) && (CPU(X86) || CPU(X86_64)) ++#if (!OS(WINDOWS) || COMPILER(GCC)) && (CPU(X86) || CPU(X86_64)) unsigned char result; asm volatile( "lock; cmpxchgb %3, %2\n\t" diff --git a/mingw-w64-webkitgtk3/0003-webkit-dont-build-dump-render-tree.mingw.patch b/mingw-w64-webkitgtk3/0003-webkit-dont-build-dump-render-tree.mingw.patch deleted file mode 100644 index 3a4ba7f8b2..0000000000 --- a/mingw-w64-webkitgtk3/0003-webkit-dont-build-dump-render-tree.mingw.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/Tools/GNUmakefile.am -+++ b/Tools/GNUmakefile.am -@@ -3,7 +3,6 @@ - - if ENABLE_WEBKIT1 - noinst_PROGRAMS += \ -- Programs/DumpRenderTree \ - Programs/GtkLauncher - endif - diff --git a/mingw-w64-webkitgtk3/0004-webkitgtk-mingw-dont-declare-readwritebarrier.mingw.patch b/mingw-w64-webkitgtk3/0004-webkitgtk-mingw-dont-declare-readwritebarrier.mingw.patch deleted file mode 100644 index 8944d2bf3a..0000000000 --- a/mingw-w64-webkitgtk3/0004-webkitgtk-mingw-dont-declare-readwritebarrier.mingw.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- webkitgtk-2.2.3/Source/WTF/wtf/Atomics.h.orig 2013-12-04 19:53:50.995225126 +0100 -+++ webkitgtk-2.2.3/Source/WTF/wtf/Atomics.h 2013-12-04 19:56:24.103724030 +0100 -@@ -65,7 +65,7 @@ - #if OS(WINDOWS) - #if OS(WINCE) - #include --#else -+#elif !COMPILER(MINGW) - extern "C" void _ReadWriteBarrier(void); - #pragma intrinsic(_ReadWriteBarrier) - #endif diff --git a/mingw-w64-webkitgtk3/0006-webkitgtk-mingw-prevent-no-error-name-conflict.mingw.patch b/mingw-w64-webkitgtk3/0006-webkitgtk-mingw-prevent-no-error-name-conflict.mingw.patch deleted file mode 100644 index 64b052be63..0000000000 --- a/mingw-w64-webkitgtk3/0006-webkitgtk-mingw-prevent-no-error-name-conflict.mingw.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- webkitgtk-2.2.3/Source/WebCore/platform/graphics/GraphicsContext3D.h.orig 2013-12-04 22:08:10.625202381 +0100 -+++ webkitgtk-2.2.3/Source/WebCore/platform/graphics/GraphicsContext3D.h 2013-12-04 22:16:51.331228349 +0100 -@@ -43,9 +43,11 @@ - #endif - - // FIXME: Find a better way to avoid the name confliction for NO_ERROR. --#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) -+#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) - #undef NO_ERROR --#elif PLATFORM(GTK) -+#endif -+ -+#if PLATFORM(GTK) - // This define is from the X11 headers, but it's used below, so we must undefine it. - #undef VERSION - #endif diff --git a/mingw-w64-webkitgtk3/0007-webkitgtk-mingw-fix-includes.mingw.patch b/mingw-w64-webkitgtk3/0007-webkitgtk-mingw-fix-includes.mingw.patch index 2f17df958e..3848b54dae 100644 --- a/mingw-w64-webkitgtk3/0007-webkitgtk-mingw-fix-includes.mingw.patch +++ b/mingw-w64-webkitgtk3/0007-webkitgtk-mingw-fix-includes.mingw.patch @@ -1,12 +1,10 @@ ---- webkitgtk-2.2.3/Source/Platform/GNUmakefile.am.orig 2013-12-04 22:54:03.522928222 +0100 -+++ webkitgtk-2.2.3/Source/Platform/GNUmakefile.am 2013-12-04 22:54:28.684175941 +0100 -@@ -55,7 +55,8 @@ - -I$(srcdir)/Source/WebCore/platform/network/gtk \ +--- webkitgtk-2.4.8/Source/Platform/GNUmakefile.am.orig 2015-03-24 06:13:32.994761400 +0000 ++++ webkitgtk-2.4.8/Source/Platform/GNUmakefile.am 2015-03-24 06:14:09.445890100 +0000 +@@ -58,6 +58,7 @@ -I$(srcdir)/Source/WebCore/platform/network/soup \ -I$(srcdir)/Source/WebCore/platform/text \ -- -I$(srcdir)/Source/WebCore/platform/text/transcoder -+ -I$(srcdir)/Source/WebCore/platform/text/transcoder \ -+ -I$(srcdir)/Source/WebCore/platform/win + -I$(srcdir)/Source/WebCore/platform/text/icu \ ++ -I$(srcdir)/Source/WebCore/platform/win \ + -I$(srcdir)/Source/WebCore/platform/text/transcoder noinst_LTLIBRARIES += \ - libPlatform.la \ diff --git a/mingw-w64-webkitgtk3/0008-webkit-fix-angle-windows-compilation.mingw.patch b/mingw-w64-webkitgtk3/0008-webkit-fix-angle-windows-compilation.mingw.patch index c44dd1ccba..0f7d6fb4c1 100644 --- a/mingw-w64-webkitgtk3/0008-webkit-fix-angle-windows-compilation.mingw.patch +++ b/mingw-w64-webkitgtk3/0008-webkit-fix-angle-windows-compilation.mingw.patch @@ -61,16 +61,16 @@ + --- webkitgtk-2.2.3/Source/ThirdParty/ANGLE/GNUmakefile.am.orig 2013-12-04 23:12:01.034574086 +0100 +++ webkitgtk-2.2.3/Source/ThirdParty/ANGLE/GNUmakefile.am 2013-12-04 23:19:09.719774371 +0100 -@@ -80,7 +80,6 @@ +@@ -75,7 +75,6 @@ + Source/ThirdParty/ANGLE/src/compiler/MapLongVariableNames.h \ Source/ThirdParty/ANGLE/src/compiler/MMap.h \ - Source/ThirdParty/ANGLE/src/compiler/NodeSearch.h \ Source/ThirdParty/ANGLE/src/compiler/osinclude.h \ - Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp \ Source/ThirdParty/ANGLE/src/compiler/OutputESSL.cpp \ Source/ThirdParty/ANGLE/src/compiler/OutputESSL.h \ - Source/ThirdParty/ANGLE/src/compiler/OutputGLSLBase.cpp \ -@@ -161,3 +160,10 @@ - Source/ThirdParty/ANGLE/src/compiler/VersionGLSL.h \ + Source/ThirdParty/ANGLE/src/compiler/OutputGLSL.cpp \ +@@ -154,3 +153,10 @@ + Source/ThirdParty/ANGLE/src/compiler/VariableInfo.h \ Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.cpp \ Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.h + diff --git a/mingw-w64-webkitgtk3/0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch b/mingw-w64-webkitgtk3/0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch index 709a706943..0fc165e1ce 100644 --- a/mingw-w64-webkitgtk3/0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch +++ b/mingw-w64-webkitgtk3/0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch @@ -1,35 +1,29 @@ ---- a/Source/WebCore/GNUmakefile.list.am.orig 2013-12-05 18:16:06.814020249 +0100 -+++ b/Source/WebCore/GNUmakefile.list.am 2013-12-05 19:08:48.105560181 +0100 -@@ -6261,22 +6261,25 @@ - Source/WebCore/platform/graphics/glx/GLContextGLX.h - endif # END USE_GLX - else -+if !TARGET_WIN32 - webcore_sources += \ - Source/WebCore/plugins/PluginPackageNone.cpp \ - Source/WebCore/plugins/PluginViewNone.cpp -+endif # END !TARGET_WIN32 - endif # END TARGET_X11 - -+if USE_OPENGL -+platformgtk_sources += \ -+ Source/WebCore/platform/graphics/GLContext.cpp \ -+ Source/WebCore/platform/graphics/GLContext.h \ -+ Source/WebCore/platform/gtk/RedirectedXCompositeWindow.cpp \ -+ Source/WebCore/platform/gtk/RedirectedXCompositeWindow.h -+endif # END USE_OPENGL -+ - if TARGET_X11_OR_WAYLAND +--- webkitgtk-2.4.8/Source/WebCore/GNUmakefile.list.am.orig 2015-03-24 06:14:46.327573500 +0000 ++++ webkitgtk-2.4.8/Source/WebCore/GNUmakefile.list.am 2015-03-24 06:17:07.769534300 +0000 +@@ -6263,6 +6263,13 @@ platformgtk_sources += \ Source/WebCore/platform/cairo/WidgetBackingStoreCairo.h \ Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp --if USE_OPENGL --platformgtk_sources += \ -- Source/WebCore/platform/graphics/GLContext.cpp \ -- Source/WebCore/platform/graphics/GLContext.h \ -- Source/WebCore/platform/gtk/RedirectedXCompositeWindow.cpp \ -- Source/WebCore/platform/gtk/RedirectedXCompositeWindow.h --endif # END USE_OPENGL - if USE_EGL - webcoregtk_sources += \ - Source/WebCore/platform/graphics/egl/GLContextEGL.cpp \ ++if USE_EGL ++webcoregtk_sources += \ ++ Source/WebCore/platform/graphics/egl/GLContextEGL.cpp \ ++ Source/WebCore/platform/graphics/egl/GLContextEGL.h ++endif # END USE_EGL ++endif # END TARGET_X11_OR_WAYLAND ++ + if USE_OPENGL + platformgtk_sources += \ + Source/WebCore/platform/graphics/GLContext.cpp \ +@@ -6270,12 +6277,6 @@ + Source/WebCore/platform/gtk/RedirectedXCompositeWindow.cpp \ + Source/WebCore/platform/gtk/RedirectedXCompositeWindow.h + endif # END USE_OPENGL +-if USE_EGL +-webcoregtk_sources += \ +- Source/WebCore/platform/graphics/egl/GLContextEGL.cpp \ +- Source/WebCore/platform/graphics/egl/GLContextEGL.h +-endif # END USE_EGL +-endif # END TARGET_X11_OR_WAYLAND + + if TARGET_WIN32 + webcore_sources += \ diff --git a/mingw-w64-webkitgtk3/0011-webkitgtk-mingw-opengl.mingw.patch b/mingw-w64-webkitgtk3/0011-webkitgtk-mingw-opengl.mingw.patch index b238a65d42..c8cefab82f 100644 --- a/mingw-w64-webkitgtk3/0011-webkitgtk-mingw-opengl.mingw.patch +++ b/mingw-w64-webkitgtk3/0011-webkitgtk-mingw-opengl.mingw.patch @@ -21,23 +21,23 @@ acceleration_description="$acceleration_description)" fi ---- webkitgtk-2.2.3/Source/WebCore/platform/graphics/OpenGLShims.cpp.orig 2013-12-05 21:50:59.704893040 +0100 -+++ webkitgtk-2.2.3/Source/WebCore/platform/graphics/OpenGLShims.cpp 2013-12-05 21:52:14.032617235 +0100 +--- webkitgtk-2.4.8/Source/WebCore/platform/graphics/OpenGLShims.cpp.orig 2015-03-24 06:18:02.320461400 +0000 ++++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/OpenGLShims.cpp 2015-03-24 06:19:23.355751600 +0000 @@ -22,7 +22,7 @@ #define DISABLE_SHIMS #include "OpenGLShims.h" --#if !PLATFORM(QT) && !PLATFORM(WIN) -+#if !PLATFORM(QT) && !OS(WINDOWS) +-#if !PLATFORM(WIN) ++#if !OS(WINDOWS) #include #endif -@@ -44,10 +44,10 @@ - return reinterpret_cast(context->getProcAddress(procName)); - return 0; +@@ -37,10 +37,10 @@ + return &table; } --#elif PLATFORM(WIN) -+#elif OS(WINDOWS) + +-#if PLATFORM(WIN) ++#if OS(WINDOWS) static void* getProcAddress(const char* procName) { - return GetProcAddress(GetModuleHandleA("libGLESv2"), procName); diff --git a/mingw-w64-webkitgtk3/0012-webkitgtk-dont-build-test-webkit-api.mingw.patch b/mingw-w64-webkitgtk3/0012-webkitgtk-dont-build-test-webkit-api.mingw.patch index cae56466d0..4fe5270243 100644 --- a/mingw-w64-webkitgtk3/0012-webkitgtk-dont-build-test-webkit-api.mingw.patch +++ b/mingw-w64-webkitgtk3/0012-webkitgtk-dont-build-test-webkit-api.mingw.patch @@ -1,10 +1,12 @@ ---- webkitgtk-2.2.5/Tools/TestWebKitAPI/GNUmakefile.am.orig 2014-03-05 07:24:20.597608800 +0000 -+++ webkitgtk-2.2.5/Tools/TestWebKitAPI/GNUmakefile.am 2014-03-05 07:29:56.239729900 +0000 -@@ -114,7 +114,6 @@ +--- webkitgtk-2.4.8/Tools/TestWebKitAPI/GNUmakefile.am.orig 2015-03-24 06:20:02.480719800 +0000 ++++ webkitgtk-2.4.8/Tools/TestWebKitAPI/GNUmakefile.am 2015-03-24 06:20:35.275884300 +0000 +@@ -111,8 +111,7 @@ + noinst_PROGRAMS += \ Programs/TestWebKitAPI/WTF/TestWTF \ - Programs/TestWebKitAPI/JavaScriptCore/TestJavaScriptCore \ -- Programs/TestWebKitAPI/WebCore/TestWebCore \ - Programs/TestWebKitAPI/WebCoreGtk/TestWebCoreGtk +- Programs/TestWebKitAPI/JavaScriptCore/TestJavaScriptCore \ +- Programs/TestWebKitAPI/WebCore/TestWebCore ++ Programs/TestWebKitAPI/JavaScriptCore/TestJavaScriptCore if ENABLE_WEBKIT1 + noinst_PROGRAMS += \ diff --git a/mingw-w64-webkitgtk3/0013-webkitgtk-redo-commit-148663.mingw.patch b/mingw-w64-webkitgtk3/0013-webkitgtk-redo-commit-148663.mingw.patch deleted file mode 100644 index 607ecbcccc..0000000000 --- a/mingw-w64-webkitgtk3/0013-webkitgtk-redo-commit-148663.mingw.patch +++ /dev/null @@ -1,99 +0,0 @@ ---- webkitgtk-2.2.3/Source/JavaScriptCore/jit/JITStubsX86_64.h.orig 2013-12-14 15:36:33.948695738 +0100 -+++ webkitgtk-2.2.3/Source/JavaScriptCore/jit/JITStubsX86_64.h 2013-12-14 15:57:48.788612387 +0100 -@@ -43,7 +43,7 @@ - - namespace JSC { - --#if COMPILER(GCC) -+#if COMPILER(GCC) && !OS(WINDOWS) - - // These ASSERTs remind you that, if you change the layout of JITStackFrame, you - // need to change the assembly trampolines below to match. -@@ -289,7 +289,86 @@ - ); - #endif // USE(MASM_PROBE) - --#endif // COMPILER(GCC) -+#elif COMPILER(GCC) && OS(WINDOWS) -+ -+// These ASSERTs remind you that, if you change the layout of JITStackFrame, you -+// need to change the assembly trampolines below to match. -+COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment); -+COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x58, JITStackFrame_stub_argument_space_matches_ctiTrampoline); -+ -+asm ( -+".text\n" -+".globl " SYMBOL_STRING(ctiTrampoline) "\n" -+HIDE_SYMBOL(ctiTrampoline) "\n" -+SYMBOL_STRING(ctiTrampoline) ":" "\n" -+ // Dump register parameters to their home address -+ "movq %r9, 0x20(%rsp)" "\n" -+ "movq %r8, 0x18(%rsp)" "\n" -+ "movq %rdx, 0x10(%rsp)" "\n" -+ "movq %rcx, 0x8(%rsp)" "\n" -+ -+ "pushq %rbp" "\n" -+ "movq %rsp, %rbp" "\n" -+ "pushq %r12" "\n" -+ "pushq %r13" "\n" -+ "pushq %r14" "\n" -+ "pushq %r15" "\n" -+ "pushq %rbx" "\n" -+ -+ // Decrease rsp to point to the start of our JITStackFrame -+ "subq $0x58, %rsp" "\n" -+ "movq $512, %r12" "\n" -+ "movq $0xFFFF000000000000, %r14" "\n" -+ "movq $0xFFFF000000000002, %r15" "\n" -+ "movq %r8, %r13" "\n" -+ "call *%rcx" "\n" -+ "addq $0x58, %rsp" "\n" -+ "popq %rbx" "\n" -+ "popq %r15" "\n" -+ "popq %r14" "\n" -+ "popq %r13" "\n" -+ "popq %r12" "\n" -+ "popq %rbp" "\n" -+ "ret" "\n" -+".globl " SYMBOL_STRING(ctiTrampolineEnd) "\n" -+HIDE_SYMBOL(ctiTrampolineEnd) "\n" -+SYMBOL_STRING(ctiTrampolineEnd) ":" "\n" -+); -+ -+asm ( -+".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" -+HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" -+SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" -+ "movq %rsp, %rcx" "\n" -+ "call " LOCAL_REFERENCE(cti_vm_throw) "\n" -+ "int3" "\n" -+); -+ -+asm ( -+".globl " SYMBOL_STRING(ctiVMHandleException) "\n" -+HIDE_SYMBOL(ctiVMHandleException) "\n" -+SYMBOL_STRING(ctiVMHandleException) ":" "\n" -+ "movq %r13, %rdi" "\n" -+ "call " LOCAL_REFERENCE(cti_vm_handle_exception) "\n" -+ // When cti_vm_handle_exception returns, rax has callFrame and rdx has handler address -+ "jmp *%rdx" "\n" -+); -+ -+asm ( -+".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" -+HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" -+SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" -+ "addq $0x58, %rsp" "\n" -+ "popq %rbx" "\n" -+ "popq %r15" "\n" -+ "popq %r14" "\n" -+ "popq %r13" "\n" -+ "popq %r12" "\n" -+ "popq %rbp" "\n" -+ "ret" "\n" -+); -+ -+#endif // COMPILER(GCC) && !OS(WINDOWS) - - #if COMPILER(MSVC) - diff --git a/mingw-w64-webkitgtk3/0014-webkitgtk-workaround-conflicting-htonl-on-win64.mingw.patch b/mingw-w64-webkitgtk3/0014-webkitgtk-workaround-conflicting-htonl-on-win64.mingw.patch deleted file mode 100644 index dcfb9626bb..0000000000 --- a/mingw-w64-webkitgtk3/0014-webkitgtk-workaround-conflicting-htonl-on-win64.mingw.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- webkitgtk-2.2.3/Source/WTF/wtf/ByteOrder.h.orig 2013-12-11 22:37:44.176510725 +0100 -+++ webkitgtk-2.2.3/Source/WTF/wtf/ByteOrder.h 2013-12-11 22:52:27.280475698 +0100 -@@ -49,17 +49,17 @@ - inline uint16_t ntohs(uint16_t x) { return x; } - inline uint16_t htons(uint16_t x) { return x; } - inline uint32_t ntohl(uint32_t x) { return x; } --inline uint32_t htonl(uint32_t x) { return x; } -+inline u_long htonl(u_long x) { return x; } - #elif CPU(MIDDLE_ENDIAN) - inline uint16_t ntohs(uint16_t x) { return x; } - inline uint16_t htons(uint16_t x) { return x; } - inline uint32_t ntohl(uint32_t x) { return WTF::wswap32(x); } --inline uint32_t htonl(uint32_t x) { return WTF::wswap32(x); } -+inline u_long htonl(u_long x) { return WTF::wswap32(x); } - #else - inline uint16_t ntohs(uint16_t x) { return WTF::bswap16(x); } - inline uint16_t htons(uint16_t x) { return WTF::bswap16(x); } - inline uint32_t ntohl(uint32_t x) { return WTF::bswap32(x); } --inline uint32_t htonl(uint32_t x) { return WTF::bswap32(x); } -+inline u_long htonl(u_long x) { return WTF::bswap32(x); } - #endif - - #endif // OS(WINDOWS) diff --git a/mingw-w64-webkitgtk3/0015-use-gstatbuf.all.patch b/mingw-w64-webkitgtk3/0015-use-gstatbuf.all.patch deleted file mode 100644 index db6d31fcf2..0000000000 --- a/mingw-w64-webkitgtk3/0015-use-gstatbuf.all.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- webkitgtk-2.2.5/Source/WebCore/platform/gtk/FileSystemGtk.cpp.orig 2014-02-17 11:24:05.000000000 +0000 -+++ webkitgtk-2.2.5/Source/WebCore/platform/gtk/FileSystemGtk.cpp 2014-03-05 09:17:20.497546700 +0000 -@@ -148,7 +148,7 @@ - if (filename.isNull()) - return false; - -- struct stat statResult; -+ GStatBuf statResult; - gint result = g_stat(filename.data(), &statResult); - if (result) - return false; diff --git a/mingw-w64-webkitgtk3/0016-non-volatile-refc-in-audio.mingw.patch b/mingw-w64-webkitgtk3/0016-non-volatile-refc-in-audio.mingw.patch deleted file mode 100644 index f0a0635e4b..0000000000 --- a/mingw-w64-webkitgtk3/0016-non-volatile-refc-in-audio.mingw.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- webkitgtk-2.2.5/Source/WebCore/Modules/webaudio/AudioNode.h.orig 2014-02-17 11:24:03.000000000 +0000 -+++ webkitgtk-2.2.5/Source/WebCore/Modules/webaudio/AudioNode.h 2014-03-05 16:49:58.061619400 +0000 -@@ -212,8 +212,13 @@ - double m_lastNonSilentTime; - - // Ref-counting -+#if OS(WINCE) || COMPILER(MINGW) -+ int m_normalRefCount; -+ int m_connectionRefCount; -+#else - volatile int m_normalRefCount; - volatile int m_connectionRefCount; -+#endif - - bool m_isMarkedForDeletion; - bool m_isDisabled; diff --git a/mingw-w64-webkitgtk3/0017-make-sure-correct-gcc-is-used.mingw.patch b/mingw-w64-webkitgtk3/0017-make-sure-correct-gcc-is-used.mingw.patch index 107b07311a..7292e5531b 100644 --- a/mingw-w64-webkitgtk3/0017-make-sure-correct-gcc-is-used.mingw.patch +++ b/mingw-w64-webkitgtk3/0017-make-sure-correct-gcc-is-used.mingw.patch @@ -1,19 +1,3 @@ ---- webkitgtk-2.2.5/Source/WebCore/GNUmakefile.am.orig 2014-02-17 11:24:03.000000000 +0000 -+++ webkitgtk-2.2.5/Source/WebCore/GNUmakefile.am 2014-03-06 03:36:36.981456500 +0000 -@@ -415,11 +415,11 @@ - - .SECONDARY: - DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file) $(idl_attributes_file) -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< - - .SECONDARY: - DerivedSources/WebCore/JSInternalSettingsGenerated.h: DerivedSources/WebCore/InternalSettingsGenerated.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file) $(idl_attributes_file) -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< - - # See https://bugs.webkit.org/show_bug.cgi?id=76388 - # We need to introduce a manual dependency to prevent non-generated sources from --- webkitgtk-2.2.5/Source/WebCore/bindings/gobject/GNUmakefile.am.orig 2014-02-17 11:24:03.000000000 +0000 +++ webkitgtk-2.2.5/Source/WebCore/bindings/gobject/GNUmakefile.am 2014-03-06 03:37:20.327460800 +0000 @@ -491,7 +491,7 @@ @@ -36,9 +20,9 @@ -I $(srcdir)/Source/WebCore/bindings/scripts \ -I $(srcdir)/Tools/WebKitTestRunner/InjectedBundle/Bindings \ $(srcdir)/Source/WebCore/bindings/scripts/generate-bindings.pl \ ---- webkitgtk-2.2.5/Source/WebCore/GNUmakefile.am.orig 2014-03-06 03:39:25.219320000 +0000 -+++ webkitgtk-2.2.5/Source/WebCore/GNUmakefile.am 2014-03-06 03:52:00.890778100 +0000 -@@ -143,13 +143,13 @@ +--- webkitgtk-2.4.8/Source/WebCore/GNUmakefile.am.orig 2015-01-07 09:45:42.000000000 +0000 ++++ webkitgtk-2.4.8/Source/WebCore/GNUmakefile.am 2015-03-24 06:25:23.730513400 +0000 +@@ -150,13 +150,13 @@ $(GENSOURCES_WEBCORE)/XPathGrammar.h: $(GENSOURCES_WEBCORE)/XPathGrammar.cpp $(GENSOURCES_WEBCORE)/XPathGrammar.cpp: $(WebCore)/xml/XPathGrammar.y $(AM_V_GEN) @@ -54,7 +38,7 @@ # ---- # SVG Support -@@ -195,13 +195,13 @@ +@@ -202,13 +202,13 @@ DerivedSources/WebCore/SVGNames.cpp: DerivedSources/WebCore/SVGElementFactory.cpp DerivedSources/WebCore/JSSVGElementWrapperFactory.cpp: DerivedSources/WebCore/SVGElementFactory.cpp DerivedSources/WebCore/SVGElementFactory.cpp: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/svg/svgtags.in $(WebCore)/svg/svgattrs.in @@ -70,7 +54,7 @@ if USE_TEXTURE_MAPPER_GL webcore_cppflags += \ -@@ -227,7 +227,7 @@ +@@ -234,7 +234,7 @@ DerivedSources/WebCore/CSSPropertyNames.h: $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/makeprop.pl $(AM_V_GEN) $(AM_V_at)cat $(WEBCORE_CSS_PROPERTY_NAMES) > CSSPropertyNames.in @@ -79,7 +63,7 @@ $(AM_V_at)mv CSSPropertyNames* $(GENSOURCES_WEBCORE) # Lower case all the values, as CSS values are case-insensitive -@@ -235,27 +235,27 @@ +@@ -242,29 +242,29 @@ DerivedSources/WebCore/CSSValueKeywords.h: $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/makevalues.pl $(AM_V_GEN) $(AM_V_at)cat $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in @@ -89,13 +73,17 @@ # XML Viewer CSS DerivedSources/WebCore/XMLViewerCSS.h: $(WebCore)/xml/XMLViewer.css -- $(AM_V_GEN)$(PERL) $(WebCore)/inspector/xxd.pl XMLViewer_css $(WebCore)/xml/XMLViewer.css $(GENSOURCES_WEBCORE)/XMLViewerCSS.h -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(WebCore)/inspector/xxd.pl XMLViewer_css $(WebCore)/xml/XMLViewer.css $(GENSOURCES_WEBCORE)/XMLViewerCSS.h +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/cssmin.py <$(WebCore)/xml/XMLViewer.css > $(GENSOURCES_WEBCORE)/XMLViewer.min.css +- $(AM_V_GEN)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl XMLViewer_css $(GENSOURCES_WEBCORE)/XMLViewer.min.css $(GENSOURCES_WEBCORE)/XMLViewerCSS.h ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/cssmin.py <$(WebCore)/xml/XMLViewer.css > $(GENSOURCES_WEBCORE)/XMLViewer.min.css ++ $(AM_V_GEN)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl XMLViewer_css $(GENSOURCES_WEBCORE)/XMLViewer.min.css $(GENSOURCES_WEBCORE)/XMLViewerCSS.h # XML Viewer JS DerivedSources/WebCore/XMLViewerJS.h: $(WebCore)/xml/XMLViewer.js -- $(AM_V_GEN)$(PERL) $(WebCore)/inspector/xxd.pl XMLViewer_js $(WebCore)/xml/XMLViewer.js $(GENSOURCES_WEBCORE)/XMLViewerJS.h -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(WebCore)/inspector/xxd.pl XMLViewer_js $(WebCore)/xml/XMLViewer.js $(GENSOURCES_WEBCORE)/XMLViewerJS.h +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/xml/XMLViewer.js > $(GENSOURCES_WEBCORE)/XMLViewer.min.js +- $(AM_V_GEN)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl XMLViewer_js $(GENSOURCES_WEBCORE)/XMLViewer.min.js $(GENSOURCES_WEBCORE)/XMLViewerJS.h ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/xml/XMLViewer.js > $(GENSOURCES_WEBCORE)/XMLViewer.min.js ++ $(AM_V_GEN)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl XMLViewer_js $(GENSOURCES_WEBCORE)/XMLViewer.min.js $(GENSOURCES_WEBCORE)/XMLViewerJS.h # HTML entity names DerivedSources/WebCore/HTMLEntityTable.cpp: $(WebCore)/html/parser/HTMLEntityNames.in $(WebCore)/html/parser/create-html-entity-table @@ -112,7 +100,7 @@ # user agent style sheets USER_AGENT_STYLE_SHEETS = \ -@@ -287,11 +287,11 @@ +@@ -296,11 +296,11 @@ DerivedSources/WebCore/UserAgentStyleSheetsData.cpp: DerivedSources/WebCore/UserAgentStyleSheets.h DerivedSources/WebCore/UserAgentStyleSheets.h: $(WebCore)/css/make-css-file-arrays.pl $(WebCore)/bindings/scripts/preprocessor.pm $(USER_AGENT_STYLE_SHEETS) @@ -126,8 +114,8 @@ # HTML tag and attribute names -@@ -300,36 +300,36 @@ - DerivedSources/WebCore/HTMLElementFactory.h: DerivedSources/WebCore/HTMLNames.cpp +@@ -310,26 +310,26 @@ + DerivedSources/WebCore/HTMLElementTypeHelpers.h: DerivedSources/WebCore/HTMLNames.h DerivedSources/WebCore/HTMLNames.cpp: DerivedSources/WebCore/HTMLNames.h DerivedSources/WebCore/HTMLNames.h: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/html/HTMLTagNames.in $(WebCore)/html/HTMLAttributeNames.in - $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --extraDefines "$(feature_defines)" --factory --wrapperFactory --outputDir "$(GENSOURCES_WEBCORE)" @@ -160,42 +148,66 @@ dom_binding_idls += \ DerivedSources/WebCore/InternalSettingsGenerated.idl +@@ -356,11 +356,11 @@ + $(WebCore)/inspector/protocol/Worker.json + + DerivedSources/WebCore/InspectorWeb.json: $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(WebCore_INSPECTOR_DOMAINS) +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(WebCore)/inspector/protocol > $(GENSOURCES_WEBCORE)/InspectorWeb.json ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(WebCore)/inspector/protocol > $(GENSOURCES_WEBCORE)/InspectorWeb.json # All Web Inspector generated files are created with this one call to CodeGeneratorInspector.py - DerivedSources/WebCore/InspectorProtocolVersion.h : $(WebCore)/inspector/Inspector.json $(WebCore)/inspector/generate-inspector-protocol-version -- $(AM_V_GEN)$(PYTHON) $(WebCore)/inspector/generate-inspector-protocol-version -o $(GENSOURCES_WEBCORE)/InspectorProtocolVersion.h $(WebCore)/inspector/Inspector.json -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(WebCore)/inspector/generate-inspector-protocol-version -o $(GENSOURCES_WEBCORE)/InspectorProtocolVersion.h $(WebCore)/inspector/Inspector.json + DerivedSources/WebCore/InspectorWebBackendDispatchers.cpp: $(GENSOURCES_WEBCORE)/InspectorWeb.json $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspectorStrings.py $(GENSOURCES_JAVASCRIPTCORE)/InspectorJSTypeBuilders.h +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $(GENSOURCES_WEBCORE)/InspectorWeb.json $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json --output_h_dir $(GENSOURCES_WEBCORE) --output_cpp_dir $(GENSOURCES_WEBCORE) --output_js_dir $(GENSOURCES_WEBCORE) --output_type Web ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $(GENSOURCES_WEBCORE)/InspectorWeb.json $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json --output_h_dir $(GENSOURCES_WEBCORE) --output_cpp_dir $(GENSOURCES_WEBCORE) --output_js_dir $(GENSOURCES_WEBCORE) --output_type Web + $(AM_V_at)touch $@ + DerivedSources/WebCore/InspectorWebTypeBuilders.h: DerivedSources/WebCore/InspectorWebTypeBuilders.cpp + DerivedSources/WebCore/InspectorWebTypeBuilders.cpp: DerivedSources/WebCore/InspectorWebFrontendDispatchers.h +@@ -370,16 +370,16 @@ + DerivedSources/WebCore/InspectorWebBackendDispatchers.h: DerivedSources/WebCore/InspectorWebBackendDispatchers.cpp + + DerivedSources/WebCore/InspectorOverlayPage.h: $(WebCore)/inspector/InspectorOverlayPage.html $(WebCore)/inspector/InspectorOverlayPage.css $(WebCore)/inspector/InspectorOverlayPage.js +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/inline-and-minify-stylesheets-and-scripts.py $(WebCore)/inspector/InspectorOverlayPage.html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.combined.html +- $(AM_V_GEN)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InspectorOverlayPage_html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.combined.html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.h ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/inline-and-minify-stylesheets-and-scripts.py $(WebCore)/inspector/InspectorOverlayPage.html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.combined.html ++ $(AM_V_GEN)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InspectorOverlayPage_html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.combined.html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.h + + DerivedSources/WebCore/CommandLineAPIModuleSource.h: $(WebCore)/inspector/CommandLineAPIModuleSource.js +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/inspector/CommandLineAPIModuleSource.js > $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.min.js +- $(AM_V_GEN)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl CommandLineAPIModuleSource_js $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.min.js $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.h ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/inspector/CommandLineAPIModuleSource.js > $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.min.js ++ $(AM_V_GEN)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl CommandLineAPIModuleSource_js $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.min.js $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.h - DerivedSources/WebCore/InspectorBackendDispatcher.cpp: $(WebCore)/inspector/Inspector.json $(WebCore)/inspector/CodeGeneratorInspector.py -- $(AM_V_GEN)$(PYTHON) $(WebCore)/inspector/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_WEBCORE) --output_cpp_dir $(GENSOURCES_WEBCORE) --output_js_dir $(GENSOURCES_WEBCORE) -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(WebCore)/inspector/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_WEBCORE) --output_cpp_dir $(GENSOURCES_WEBCORE) --output_js_dir $(GENSOURCES_WEBCORE) - DerivedSources/WebCore/InspectorTypeBuilder.h: DerivedSources/WebCore/InspectorTypeBuilder.cpp - DerivedSources/WebCore/InspectorTypeBuilder.cpp: DerivedSources/WebCore/InspectorFrontend.h - DerivedSources/WebCore/InspectorFrontend.h: DerivedSources/WebCore/InspectorFrontend.cpp -@@ -337,11 +337,11 @@ - DerivedSources/WebCore/InspectorBackendCommands.js: DerivedSources/WebCore/InspectorBackendDispatcher.h - DerivedSources/WebCore/InspectorBackendDispatcher.h: DerivedSources/WebCore/InspectorBackendDispatcher.cpp - DerivedSources/WebCore/InspectorOverlayPage.h: $(WebCore)/inspector/InspectorOverlayPage.html -- $(AM_V_GEN)$(PERL) $(WebCore)/inspector/xxd.pl InspectorOverlayPage_html $(WebCore)/inspector/InspectorOverlayPage.html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.h -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(WebCore)/inspector/xxd.pl InspectorOverlayPage_html $(WebCore)/inspector/InspectorOverlayPage.html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.h DerivedSources/WebCore/InjectedScriptCanvasModuleSource.h: $(WebCore)/inspector/InjectedScriptCanvasModuleSource.js -- $(AM_V_GEN)$(PERL) $(WebCore)/inspector/xxd.pl InjectedScriptCanvasModuleSource_js $(WebCore)/inspector/InjectedScriptCanvasModuleSource.js $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.h -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(WebCore)/inspector/xxd.pl InjectedScriptCanvasModuleSource_js $(WebCore)/inspector/InjectedScriptCanvasModuleSource.js $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.h - DerivedSources/WebCore/InjectedScriptSource.h: $(WebCore)/inspector/InjectedScriptSource.js -- $(AM_V_GEN)$(PERL) $(WebCore)/inspector/xxd.pl InjectedScriptSource_js $(WebCore)/inspector/InjectedScriptSource.js $(GENSOURCES_WEBCORE)/InjectedScriptSource.h -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(WebCore)/inspector/xxd.pl InjectedScriptSource_js $(WebCore)/inspector/InjectedScriptSource.js $(GENSOURCES_WEBCORE)/InjectedScriptSource.h +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/inspector/InjectedScriptCanvasModuleSource.js > $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.min.js +- $(AM_V_GEN)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptCanvasModuleSource_js $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.min.js $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.h ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/inspector/InjectedScriptCanvasModuleSource.js > $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.min.js ++ $(AM_V_GEN)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptCanvasModuleSource_js $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.min.js $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.h if ENABLE_WEB_AUDIO # Installing HRTF database wav files -@@ -405,7 +405,7 @@ +@@ -448,7 +448,7 @@ $(AM_V_GEN) - $(AM_V_at)echo -n > $(idl_files_list) - $(AM_V_at)($(foreach idl, $(dom_binding_idls), echo $(idl) &&) echo -n) >> $(idl_files_list) + $(AM_V_at)true > $(idl_files_list) + $(AM_V_at)($(foreach idl, $(dom_binding_idls), echo $(idl) &&) true) >> $(idl_files_list) - $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/preprocess-idls.pl --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --idlFilesList $(idl_files_list) --windowConstructorsFile $(window_constructors_file) --workerGlobalScopeConstructorsFile $(workerglobalscope_constructors_file) --sharedWorkerGlobalScopeConstructorsFile $(sharedworkerglobalscope_constructors_file) --dedicatedWorkerGlobalScopeConstructorsFile $(dedicatedworkerglobalscope_constructors_file) --supplementalDependencyFile $@ + $(AM_V_at)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/preprocess-idls.pl --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --idlFilesList $(idl_files_list) --windowConstructorsFile $(window_constructors_file) --workerGlobalScopeConstructorsFile $(workerglobalscope_constructors_file) --sharedWorkerGlobalScopeConstructorsFile $(sharedworkerglobalscope_constructors_file) --dedicatedWorkerGlobalScopeConstructorsFile $(dedicatedworkerglobalscope_constructors_file) --supplementalDependencyFile $@ + $(AM_V_at)touch $@ .PHONY: $(window_constructors_file) $(workerglobalscope_constructors_file) $(sharedworkerglobalscope_constructors_file) $(dedicatedworkerglobalscope_constructors_file) +@@ -459,11 +459,11 @@ + .SECONDARY: + DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file) $(idl_attributes_file) +- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< ++ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< + + .SECONDARY: + DerivedSources/WebCore/JSInternalSettingsGenerated.h: DerivedSources/WebCore/InternalSettingsGenerated.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file) $(idl_attributes_file) +- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< ++ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< + + # See https://bugs.webkit.org/show_bug.cgi?id=76388 + # We need to introduce a manual dependency to prevent non-generated sources from --- webkitgtk-2.2.5/Source/WebCore/bindings/gobject/GNUmakefile.am.orig 2014-03-06 03:39:25.220820200 +0000 +++ webkitgtk-2.2.5/Source/WebCore/bindings/gobject/GNUmakefile.am 2014-03-06 03:52:55.371196200 +0000 @@ -466,10 +466,10 @@ @@ -237,9 +249,9 @@ && echo timestamp > $(@F) BUILT_SOURCES += $(top_builddir)/stamp-webkittestrunner-forwarding-headers ---- webkitgtk-2.2.5/Source/JavaScriptCore/GNUmakefile.am.orig 2014-02-17 11:24:02.000000000 +0000 -+++ webkitgtk-2.2.5/Source/JavaScriptCore/GNUmakefile.am 2014-03-06 03:55:05.726249200 +0000 -@@ -81,24 +81,24 @@ +--- webkitgtk-2.4.8/Source/JavaScriptCore/GNUmakefile.am.orig 2015-03-24 06:23:10.630111800 +0000 ++++ webkitgtk-2.4.8/Source/JavaScriptCore/GNUmakefile.am 2015-03-24 06:27:35.103695600 +0000 +@@ -95,25 +95,25 @@ $(shell mkdir -p DerivedSources/JavaScriptCore) DerivedSources/JavaScriptCore/Lexer.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/parser/Keywords.table @@ -261,15 +273,40 @@ DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h: $(javascriptcore_sources) $(llint_nosources) $(offlineasm_nosources) - $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@ + $(AM_V_GEN)CC=$(CC) $(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@ + $(AM_V_at)touch $@ $(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h DerivedSources/JavaScriptCore/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT) - $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@ + $(AM_V_GEN)CC=$(CC) $(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@ + $(AM_V_at)touch $@ $(libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_OBJECTS): DerivedSources/JavaScriptCore/LLIntAssembly.h +@@ -253,12 +253,12 @@ + $(JavaScriptCore)/inspector/protocol/Runtime.json + DerivedSources/JavaScriptCore/InspectorJS.json: $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore_INSPECTOR_DOMAINS) +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore)/inspector/protocol > $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore)/inspector/protocol > $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json + + # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders + # Copy generated header files to DerivedSources/JavaScriptCore/inspector so that WebCore's ForwardingHeader style of #include will work. + DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.cpp: DerivedSources/JavaScriptCore/InspectorJS.json $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspectorStrings.py +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_JAVASCRIPTCORE) --output_cpp_dir $(GENSOURCES_JAVASCRIPTCORE) --output_js_dir $(GENSOURCES_JAVASCRIPTCORE) --output_type JavaScript ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_JAVASCRIPTCORE) --output_cpp_dir $(GENSOURCES_JAVASCRIPTCORE) --output_js_dir $(GENSOURCES_JAVASCRIPTCORE) --output_type JavaScript + $(AM_V_at)touch $@ + mkdir -p DerivedSources/JavaScriptCore/inspector + cp DerivedSources/JavaScriptCore/InspectorJSTypeBuilders.h DerivedSources/JavaScriptCore/InspectorJSFrontendDispatchers.h DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.h DerivedSources/JavaScriptCore/inspector +@@ -270,6 +270,6 @@ + DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.h: DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.cpp + + DerivedSources/JavaScriptCore/InjectedScriptSource.h: $(JavaScriptCore)/inspector/InjectedScriptSource.js $(INSPECTOR_SCRIPTS_DIR)/xxd.pl $(INSPECTOR_SCRIPTS_DIR)/jsmin.py +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py < $< > $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js +- $(AM_V_at)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptSource_js $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js $@ ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py < $< > $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js ++ $(AM_V_at)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptSource_js $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js $@ + $(AM_V_at)rm -rf $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js --- webkitgtk-2.2.5/Source/Platform/GNUmakefile.am.orig 2014-03-06 03:39:24.590740200 +0000 +++ webkitgtk-2.2.5/Source/Platform/GNUmakefile.am 2014-03-06 03:55:39.352519200 +0000 @@ -123,8 +123,8 @@ diff --git a/mingw-w64-webkitgtk3/0021-use-configured-python-for-this.all.patch b/mingw-w64-webkitgtk3/0021-use-configured-python-for-this.all.patch index f00308386c..5f5428baf3 100644 --- a/mingw-w64-webkitgtk3/0021-use-configured-python-for-this.all.patch +++ b/mingw-w64-webkitgtk3/0021-use-configured-python-for-this.all.patch @@ -1,11 +1,22 @@ ---- webkitgtk-2.2.5/Tools/GNUmakefile.am.orig 2014-03-06 21:39:54.549599500 +0000 -+++ webkitgtk-2.2.5/Tools/GNUmakefile.am 2014-03-07 03:09:13.386653100 +0000 -@@ -340,7 +340,7 @@ - endif +--- webkitgtk-2.4.8/Tools/gtk/GNUmakefile.am.orig 2015-01-07 09:45:43.000000000 +0000 ++++ webkitgtk-2.4.8/Tools/gtk/GNUmakefile.am 2015-03-24 06:29:42.649391900 +0000 +@@ -35,7 +35,7 @@ + gtkdoc-webkitdom.cfg - docs-build.stamp: $(docs_build_stamp_list) + docs-build.stamp: $(docs_build_dependencies) - CC=$(CC) $(srcdir)/Tools/gtk/generate-gtkdoc + CC=$(CC) $(PYTHON) $(srcdir)/Tools/gtk/generate-gtkdoc @touch docs-build.stamp clean-local: doc-clean-local +--- webkitgtk-2.4.8/Source/WebInspectorUI/GNUmakefile.am.orig 2015-01-07 09:45:43.000000000 +0000 ++++ webkitgtk-2.4.8/Source/WebInspectorUI/GNUmakefile.am 2015-03-24 07:19:52.380579200 +0000 +@@ -13,7 +13,7 @@ + $(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py + $(AM_V_GEN) + $(AM_V_at)mkdir -p ${GENSOURCES_WEBINSPECTOR_UI} +- $(AM_V_at)$(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py --output $@ $(inspector_files) ++ $(AM_V_at)$(PYTHON) $(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py --output $@ $(inspector_files) + + ${GENSOURCES_WEBINSPECTOR_UI}/GResourceBundle.c: DerivedSources/WebInspectorUI/GResourceBundle.xml + $(AM_V_GEN) diff --git a/mingw-w64-webkitgtk3/0024-use-stabs-to-get-smaller-debug-builds.mingw.patch b/mingw-w64-webkitgtk3/0024-use-stabs-to-get-smaller-debug-builds.mingw.patch deleted file mode 100644 index 5fb964f7fe..0000000000 --- a/mingw-w64-webkitgtk3/0024-use-stabs-to-get-smaller-debug-builds.mingw.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- webkitgtk-2.2.5/Source/autotools/SetupCompilerFlags.m4.orig 2014-02-17 11:24:13.000000000 +0000 -+++ webkitgtk-2.2.5/Source/autotools/SetupCompilerFlags.m4 2014-03-07 12:21:56.378818300 +0000 -@@ -32,8 +32,8 @@ - CXXFLAGS="$CXXFLAGS -g1" - CFLAGS="$CFLAGS -g1" - elif test "$enable_debug_symbols" != "no"; then -- CXXFLAGS="$CXXFLAGS -g" -- CFLAGS="$CFLAGS -g" -+ CXXFLAGS="$CXXFLAGS -gstabs" -+ CFLAGS="$CFLAGS -gstabs" - fi - - # Add the appropriate 'O' level for optimized builds. diff --git a/mingw-w64-webkitgtk3/0025-webkitgtk-2.2.5-icu-libraries.patch b/mingw-w64-webkitgtk3/0025-webkitgtk-2.2.5-icu-libraries.patch deleted file mode 100644 index 18fcd5a9ba..0000000000 --- a/mingw-w64-webkitgtk3/0025-webkitgtk-2.2.5-icu-libraries.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- webkitgtk-2.2.5/Source/autotools/FindDependencies.m4.orig 2014-03-07 22:47:16.704400000 +0400 -+++ webkitgtk-2.2.5/Source/autotools/FindDependencies.m4 2014-03-07 22:50:52.967200000 +0400 -@@ -110,7 +110,7 @@ - ;; - *-*-mingw*) - UNICODE_CFLAGS="" -- UNICODE_LIBS="-licui18n -licuuc" -+ UNICODE_LIBS="-licuin -licuuc" - AC_CHECK_HEADERS([unicode/uchar.h], [], [AC_MSG_ERROR([Could not find ICU headers.])]) - ;; - *) diff --git a/mingw-w64-webkitgtk3/0026-webkitgtk-mingw-gnu-print.patch b/mingw-w64-webkitgtk3/0026-webkitgtk-mingw-gnu-print.patch deleted file mode 100644 index 2028e23bc5..0000000000 --- a/mingw-w64-webkitgtk3/0026-webkitgtk-mingw-gnu-print.patch +++ /dev/null @@ -1,64 +0,0 @@ ---- webkitgtk-2.2.5/Tools/TestWebKitAPI/Tests/WTF/IntegerToStringConversion.cpp.orig 2014-03-08 18:03:07.528800000 +0400 -+++ webkitgtk-2.2.5/Tools/TestWebKitAPI/Tests/WTF/IntegerToStringConversion.cpp 2014-03-08 18:05:39.769200000 +0400 -@@ -42,7 +42,7 @@ - const char PrintfFormatTrait::format[] = "%ld"; - - template<> struct PrintfFormatTrait { static const char format[]; }; --#if OS(WINDOWS) && !PLATFORM(QT) -+#if OS(WINDOWS) && !PLATFORM(QT) && !defined(__USE_MINGW_ANSI_STDIO) - const char PrintfFormatTrait::format[] = "%I64i"; - #else - const char PrintfFormatTrait::format[] = "%lli"; -@@ -58,7 +58,7 @@ - const char PrintfFormatTrait::format[] = "%lu"; - - template<> struct PrintfFormatTrait { static const char format[]; }; --#if OS(WINDOWS) && !PLATFORM(QT) -+#if OS(WINDOWS) && !PLATFORM(QT) && !defined(__USE_MINGW_ANSI_STDIO) - const char PrintfFormatTrait::format[] = "%I64u"; - #else - const char PrintfFormatTrait::format[] = "%llu"; ---- webkitgtk-2.2.5/Source/WebCore/loader/FTPDirectoryParser.cpp.orig 2014-03-08 18:53:11.563600000 +0400 -+++ webkitgtk-2.2.5/Source/WebCore/loader/FTPDirectoryParser.cpp 2014-03-08 18:55:30.965200000 +0400 -@@ -188,7 +188,7 @@ - if (pos < linelen && line[pos] == ',') - { - unsigned long long seconds = 0; --#if OS(WINDOWS) -+#if OS(WINDOWS) && !defined(__USE_MINGW_ANSI_STDIO) - sscanf(p + 1, "%I64u", &seconds); - #else - sscanf(p + 1, "%llu", &seconds); ---- webkitgtk-2.2.5/Source/WebCore/loader/icon/IconDatabase.cpp.orig 2014-03-08 19:04:04.267000000 +0400 -+++ webkitgtk-2.2.5/Source/WebCore/loader/icon/IconDatabase.cpp 2014-03-08 19:04:17.386600000 +0400 -@@ -1711,7 +1711,7 @@ - SQLiteStatement pageDeleteSQL(m_syncDB, "DELETE FROM PageURL WHERE rowid = (?);"); - pageDeleteSQL.prepare(); - for (size_t i = 0; i < numToDelete; ++i) { --#if OS(WINDOWS) -+#if OS(WINDOWS) && !defined(__USE_MINGW_ANSI_STDIO) - LOG(IconDatabase, "Pruning page with rowid %I64i from disk", static_cast(pageIDsToDelete[i])); - #else - LOG(IconDatabase, "Pruning page with rowid %lli from disk", static_cast(pageIDsToDelete[i])); ---- webkitgtk-2.2.5/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp.orig 2014-03-08 19:07:17.561400000 +0400 -+++ webkitgtk-2.2.5/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp 2014-03-08 19:07:28.621800000 +0400 -@@ -767,7 +767,7 @@ - } - - if (error) --#if OS(WINDOWS) -+#if OS(WINDOWS) && !defined(__USE_MINGW_ANSI_STDIO) - LOG_ERROR("Failed to set quota %I64u in tracker database for origin %s", quota, origin->databaseIdentifier().ascii().data()); - #else - LOG_ERROR("Failed to set quota %llu in tracker database for origin %s", quota, origin->databaseIdentifier().ascii().data()); ---- webkitgtk-2.2.5/Source/WebCore/platform/sql/SQLiteDatabase.cpp.orig 2014-03-08 19:09:22.623000000 +0400 -+++ webkitgtk-2.2.5/Source/WebCore/platform/sql/SQLiteDatabase.cpp 2014-03-08 19:09:26.913000000 +0400 -@@ -178,7 +178,7 @@ - SQLiteStatement statement(*this, "PRAGMA max_page_count = " + String::number(newMaxPageCount)); - statement.prepare(); - if (statement.step() != SQLResultRow) --#if OS(WINDOWS) -+#if OS(WINDOWS) && !defined(__USE_MINGW_ANSI_STDIO) - LOG_ERROR("Failed to set maximum size of database to %I64i bytes", static_cast(size)); - #else - LOG_ERROR("Failed to set maximum size of database to %lli bytes", static_cast(size)); diff --git a/mingw-w64-webkitgtk3/0027-destroy-invocation-before-return-switchable.all.patch b/mingw-w64-webkitgtk3/0027-destroy-invocation-before-return-switchable.all.patch new file mode 100644 index 0000000000..e000b7c313 --- /dev/null +++ b/mingw-w64-webkitgtk3/0027-destroy-invocation-before-return-switchable.all.patch @@ -0,0 +1,32 @@ +--- webkitgtk-2.2.6/Source/WTF/wtf/ThreadingWin.cpp.orig 2014-03-19 07:53:02.000000000 +0000 ++++ webkitgtk-2.2.6/Source/WTF/wtf/ThreadingWin.cpp 2014-04-15 10:18:07.793755700 +0000 +@@ -212,14 +212,26 @@ + + static unsigned __stdcall wtfThreadEntryPoint(void* param) + { +- OwnPtr invocation = adoptPtr(static_cast(param)); +- invocation->function(invocation->data); ++ if (getenv ("WEBKIT_DONTFIX_INVOCATION_DESTRUCTOR")) ++ { ++ OwnPtr invocation = adoptPtr(static_cast(param)); ++ invocation->function(invocation->data); + + #if !USE(PTHREADS) && OS(WINDOWS) ++ // Do the TLS cleanup. ++ ThreadSpecificThreadExit(); ++#endif ++ return 0; ++ } ++ else ++ { ++ OwnPtr invocation = adoptPtr(static_cast(param)); ++ invocation->function(invocation->data); ++ } ++#if !USE(PTHREADS) && OS(WINDOWS) + // Do the TLS cleanup. + ThreadSpecificThreadExit(); + #endif +- + return 0; + } + diff --git a/mingw-w64-webkitgtk3/0027-webkitgtk-windows-fix-egl.patch b/mingw-w64-webkitgtk3/0027-webkitgtk-windows-fix-egl.patch deleted file mode 100644 index a0fd52199d..0000000000 --- a/mingw-w64-webkitgtk3/0027-webkitgtk-windows-fix-egl.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- webkitgtk-2.2.5/Source/WebCore/platform/graphics/GLContext.h.orig 2013-12-11 22:37:44.176510725 +0100 -+++ webkitgtk-2.2.5/Source/WebCore/platform/graphics/GLContext.h 2013-12-11 22:52:27.280475698 +0100 -@@ -25,8 +25,8 @@ - #include - #include - --#if USE(EGL) && !PLATFORM(GTK) --#include "eglplatform.h" -+#if USE(EGL) -+#include - typedef EGLNativeWindowType GLNativeWindowType; - #else - typedef uint64_t GLNativeWindowType; diff --git a/mingw-w64-webkitgtk3/0028-Use-after-free-in-WTF-threading-code.patch b/mingw-w64-webkitgtk3/0028-Use-after-free-in-WTF-threading-code.patch deleted file mode 100644 index d79f5f6e89..0000000000 --- a/mingw-w64-webkitgtk3/0028-Use-after-free-in-WTF-threading-code.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- webkitgtk-2.2.5/Source/WTF/wtf/ThreadingWin.cpp.orig 2014-02-17 11:24:03.000000000 +0000 -+++ webkitgtk-2.2.5/Source/WTF/wtf/ThreadingWin.cpp 2014-03-12 07:21:46.144842200 +0000 -@@ -212,8 +212,10 @@ - - static unsigned __stdcall wtfThreadEntryPoint(void* param) - { -- OwnPtr invocation = adoptPtr(static_cast(param)); -- invocation->function(invocation->data); -+ { -+ OwnPtr invocation = adoptPtr(static_cast(param)); -+ invocation->function(invocation->data); -+ } - - #if !USE(PTHREADS) && OS(WINDOWS) - // Do the TLS cleanup. diff --git a/mingw-w64-webkitgtk3/0029-pass-python-and-cflags-to-girscanner.patch b/mingw-w64-webkitgtk3/0029-pass-python-and-cflags-to-girscanner.patch deleted file mode 100644 index f01c1a07e3..0000000000 --- a/mingw-w64-webkitgtk3/0029-pass-python-and-cflags-to-girscanner.patch +++ /dev/null @@ -1,63 +0,0 @@ ---- webkitgtk-2.2.5/GNUmakefile.in.orig 2014-03-28 14:01:52.271600000 +0400 -+++ webkitgtk-2.2.5/GNUmakefile.in 2014-03-28 14:06:34.709600000 +0400 -@@ -78633,7 +78633,9 @@ - - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@WebKit2-@WEBKITGTK_API_VERSION@.gir: $(G_IR_SCANNER) libwebkit2gtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ $(AM_V_GEN) \ -+@ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ CC=$(CC) \ - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ CFLAGS="$(CFLAGS) -Wno-deprecated-declarations" \ -+@ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ $(PYTHON) \ - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ $(G_IR_SCANNER) \ - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ --quiet \ - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ --warn-all \ -@@ -78656,6 +78658,8 @@ - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ --add-include-path=$(WebKit2) \ - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ --add-include-path=$(top_builddir) \ - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ --c-include="webkit2/webkit2.h" \ -+@ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ $(GTK_CFLAGS) \ -+@ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ $(LIBSOUP_CFLAGS) \ - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ -I$(srcdir)/Source \ - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ -I$(WebKit2) \ - @ENABLE_INTROSPECTION_TRUE@@ENABLE_WEBKIT2_TRUE@ -I$(GENSOURCES) \ ---- webkitgtk-2.2.5/Source/WebKit/gtk/GNUmakefile.am.orig 2014-03-28 14:02:42.675200000 +0400 -+++ webkitgtk-2.2.5/Source/WebKit/gtk/GNUmakefile.am 2014-03-28 14:05:16.538000000 +0400 -@@ -289,7 +289,9 @@ - if ENABLE_INTROSPECTION - WebKit-@WEBKITGTK_API_VERSION@.gir: $(G_IR_SCANNER) JavaScriptCore-@WEBKITGTK_API_VERSION@.gir libwebkitgtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la - $(AM_V_GEN) \ -+ CC=$(CC) \ - CFLAGS="$(CFLAGS) -Wno-deprecated-declarations" \ -+ $(PYTHON) \ - $(G_IR_SCANNER) \ - --quiet \ - --warn-all \ -@@ -313,6 +315,8 @@ - --add-include-path=$(top_builddir) \ - --c-include="webkit/webkit.h" \ - -DBUILDING_WEBKIT \ -+ $(GTK_CFLAGS) \ -+ $(LIBSOUP_CFLAGS) \ - -I$(srcdir)/Source \ - -I$(WebKit) \ - -I$(GENSOURCES) \ ---- webkitgtk-2.2.5/Source/WebKit2/GNUmakefile.am.orig 2014-03-28 14:03:01.629200000 +0400 -+++ webkitgtk-2.2.5/Source/WebKit2/GNUmakefile.am 2014-03-28 14:05:00.111200000 +0400 -@@ -281,7 +281,9 @@ - - WebKit2-@WEBKITGTK_API_VERSION@.gir: $(G_IR_SCANNER) libwebkit2gtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la - $(AM_V_GEN) \ -+ CC=$(CC) \ - CFLAGS="$(CFLAGS) -Wno-deprecated-declarations" \ -+ $(PYTHON) \ - $(G_IR_SCANNER) \ - --quiet \ - --warn-all \ -@@ -304,6 +306,8 @@ - --add-include-path=$(WebKit2) \ - --add-include-path=$(top_builddir) \ - --c-include="webkit2/webkit2.h" \ -+ $(GTK_CFLAGS) \ -+ $(LIBSOUP_CFLAGS) \ - -I$(srcdir)/Source \ - -I$(WebKit2) \ - -I$(GENSOURCES) \ diff --git a/mingw-w64-webkitgtk3/0029-webkit-dont-build-dump-render-tree.all.patch b/mingw-w64-webkitgtk3/0029-webkit-dont-build-dump-render-tree.all.patch new file mode 100644 index 0000000000..4c48e9b64c --- /dev/null +++ b/mingw-w64-webkitgtk3/0029-webkit-dont-build-dump-render-tree.all.patch @@ -0,0 +1,14 @@ +--- webkitgtk-2.4.8/Tools/GNUmakefile.am.orig 2015-03-24 06:37:08.188968200 +0000 ++++ webkitgtk-2.4.8/Tools/GNUmakefile.am 2015-03-24 06:37:37.567198800 +0000 +@@ -1,11 +1,6 @@ + noinst_PROGRAMS += \ + Programs/ImageDiff + +-if ENABLE_WEBKIT1 +-noinst_PROGRAMS += \ +- Programs/DumpRenderTree +-endif +- + # libWebCoreInternals + # We must split off the window.internals implementation into a separate + # convenience library because it requires a different include path order diff --git a/mingw-w64-webkitgtk3/0101-webkitgtk-2.4.3-gcc-asm.all.patch b/mingw-w64-webkitgtk3/0101-webkitgtk-2.4.3-gcc-asm.all.patch new file mode 100644 index 0000000000..66d0ca104f --- /dev/null +++ b/mingw-w64-webkitgtk3/0101-webkitgtk-2.4.3-gcc-asm.all.patch @@ -0,0 +1,26 @@ +--- a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp ++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp +@@ -487,7 +487,12 @@ JSValue CLoop::execute(CallFrame* callFrame, Opcode entryOpcode, bool isInitiali + rBasePC.vp = codeBlock->instructions().begin(); + #endif // USE(JSVALUE64) + ++#if ENABLE(COMPUTED_GOTO_OPCODES) + goto llint_generic_return_point; ++#else ++ /* (most probably) causes null pointer dereference: ++ * NEXT_INSTRUCTION(); */ ++#endif + + } // END doReturnHelper. + +--- a/Source/WTF/wtf/Platform.h ++++ b/Source/WTF/wtf/Platform.h +@@ -794,7 +794,7 @@ + #endif + + /* Configure the interpreter */ +-#if COMPILER(GCC) ++#if COMPILER(GCC) && !OS(WINDOWS) + #define HAVE_COMPUTED_GOTO 1 + #endif + diff --git a/mingw-w64-webkitgtk3/0103-webkitgtk-2.4.3-win-format.all.patch b/mingw-w64-webkitgtk3/0103-webkitgtk-2.4.3-win-format.all.patch new file mode 100644 index 0000000000..a33686c357 --- /dev/null +++ b/mingw-w64-webkitgtk3/0103-webkitgtk-2.4.3-win-format.all.patch @@ -0,0 +1,11 @@ +--- a/Source/autotools/SetupCompilerFlags.m4 ++++ b/Source/autotools/SetupCompilerFlags.m4 +@@ -1,7 +1,7 @@ + # Use C99 as the language standard for C code. + CFLAGS="$CFLAGS -pthread -std=c99" + # Use the C++11 standard. Do not warn about C++11 incompatibilities. +-CXXFLAGS="$CXXFLAGS -pthread -std=c++11 -Wno-c++11-compat" ++CXXFLAGS="$CXXFLAGS -pthread -std=c++11 -Wno-c++11-compat -D__USE_MINGW_ANSI_STDIO=1" + + # Clang requires suppression of unused arguments warnings. + if test "$c_compiler" = "clang"; then diff --git a/mingw-w64-webkitgtk3/0104-webkitgtk-2.4.3-misc-win-errors.all.patch b/mingw-w64-webkitgtk3/0104-webkitgtk-2.4.3-misc-win-errors.all.patch new file mode 100644 index 0000000000..c785fb42f5 --- /dev/null +++ b/mingw-w64-webkitgtk3/0104-webkitgtk-2.4.3-misc-win-errors.all.patch @@ -0,0 +1,45 @@ +--- a/Source/JavaScriptCore/heap/HeapStatistics.cpp ++++ b/Source/JavaScriptCore/heap/HeapStatistics.cpp +@@ -132,6 +132,7 @@ void HeapStatistics::logStatistics() + + void HeapStatistics::exitWithFailure() + { ++ exit(-1); + } + + void HeapStatistics::reportSuccess() +--- a/Source/WTF/wtf/win/GDIObject.h ++++ b/Source/WTF/wtf/win/GDIObject.h +@@ -111,7 +111,7 @@ template inline void swap(GDIObject& a, GDIObject& b) + } + + // Nearly all GDI types use the same DeleteObject call. +-template inline void deleteObject(T object) ++template inline void deleteObject(T object) + { + if (object) + ::DeleteObject(object); +--- a/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp ++++ b/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp +@@ -37,6 +37,10 @@ + #include + #endif + ++#ifndef M_PI_2 ++#define M_PI_2 1.57079632679489661923 ++#endif ++ + namespace WebCore { + + cairo_subpixel_order_t convertFontConfigSubpixelOrder(int fontConfigOrder) +--- a/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp ++++ b/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp +@@ -32,7 +32,7 @@ + + #include + #include "GraphicsContextPlatformPrivateCairo.h" +-#include ++#include + + using namespace std; + diff --git a/mingw-w64-webkitgtk3/0105-webkitgtk-2.4.3-warnings.all.patch b/mingw-w64-webkitgtk3/0105-webkitgtk-2.4.3-warnings.all.patch new file mode 100644 index 0000000000..c6a2e3dbf0 --- /dev/null +++ b/mingw-w64-webkitgtk3/0105-webkitgtk-2.4.3-warnings.all.patch @@ -0,0 +1,57 @@ +--- a/Source/JavaScriptCore/runtime/JSObject.cpp ++++ b/Source/JavaScriptCore/runtime/JSObject.cpp +@@ -819,7 +819,7 @@ ContiguousJSValues JSObject::genericConvertDoubleToContiguous(VM& vm) + currentAsValue->clear(); + continue; + } +- JSValue v; ++ JSValue v = jsNumber(value); + switch (mode) { + case EncodeValueAsDouble: + v = JSValue(JSValue::EncodeAsDouble, value); +--- a/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp ++++ b/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp +@@ -535,7 +535,7 @@ bool TParseContext::constructorErrorCheck(const TSourceLoc& line, TIntermNode* n + return true; + } + +- if (op == EOpConstructStruct && !type->isArray() && int(type->getStruct()->fields().size()) != function.getParamCount()) { ++ if (op == EOpConstructStruct && !type->isArray() && int(type->getStruct()->fields().size()) != int(function.getParamCount())) { + error(line, "Number of constructor parameters does not match the number of structure fields", "constructor"); + return true; + } +--- a/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp ++++ b/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp +@@ -4,7 +4,9 @@ + // found in the LICENSE file. + // + ++#ifdef _MSC_VER + #pragma warning(disable: 4718) ++#endif + + #include "compiler/depgraph/DependencyGraph.h" + #include "compiler/depgraph/DependencyGraphBuilder.h" +--- a/Source/WTF/wtf/text/WTFString.h ++++ b/Source/WTF/wtf/text/WTFString.h +@@ -32,6 +32,9 @@ + #include + #endif + ++/* avoid renaming to libintl_printf (see WTF_ATTRIBUTE_PRINTF) */ ++#undef printf ++ + namespace WTF { + + class CString; +--- a/Source/autotools/ltmain.sh ++++ b/Source/autotools/ltmain.sh +@@ -4178,7 +4178,7 @@ EOF + /* declarations of non-ANSI functions */ + #if defined(__MINGW32__) + # ifdef __STRICT_ANSI__ +-int _putenv (const char *); ++int __declspec(dllimport) _putenv (const char *); + # endif + #elif defined(__CYGWIN__) + # ifdef __STRICT_ANSI__ diff --git a/mingw-w64-webkitgtk3/0106-enable-jit.all.patch b/mingw-w64-webkitgtk3/0106-enable-jit.all.patch new file mode 100644 index 0000000000..4e63b6706f --- /dev/null +++ b/mingw-w64-webkitgtk3/0106-enable-jit.all.patch @@ -0,0 +1,236 @@ +--- webkitgtk-2.4.1.old/Source/JavaScriptCore/jit/JITStubsX86.h 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/JavaScriptCore/jit/JITStubsX86.h 2014-06-20 19:42:30 +0000 +@@ -32,6 +32,7 @@ + #define JITStubsX86_h + + #include "JITStubsX86Common.h" ++#include + + #if !CPU(X86) + #error "JITStubsX86.h should only be #included if CPU(X86)" +@@ -198,6 +199,225 @@ SYMBOL_STRING(ctiMasmProbeTrampolineEnd) + ); + #endif // USE(MASM_PROBE) + ++#if OS(WINDOWS) && ENABLE(JIT) ++extern "C" { ++ ++ // FIXME: Since Windows doesn't use the LLInt, we have inline stubs here. ++ // Until the LLInt is changed to support Windows, these stub needs to be updated. ++ asm ( ++ ".globl " SYMBOL_STRING(callToJavaScript) "\n" ++ HIDE_SYMBOL(callToJavaScript) "\n" ++ SYMBOL_STRING(callToJavaScript) ":" "\n" ++ "mov (%esp),%edx" "\n" ++ "push %ebp" "\n" ++ "mov %ebp,%eax" "\n" ++ "mov %esp,%ebp" "\n" ++ "push %esi" "\n" ++ "push %edi" "\n" ++ "push %ebx" "\n" ++ "sub $0x1c,%esp" "\n" ++ "mov 0x34(%esp),%ecx" "\n" ++ "mov 0x38(%esp),%esi" "\n" ++ "mov 0x3c(%esp),%ebp" "\n" ++ "sub $0x20,%ebp" "\n" ++ "movl $0x0,0x24(%ebp)" "\n" ++ "movl $0x0,0x20(%ebp)" "\n" ++ "movl $0x0,0x1c(%ebp)" "\n" ++ "mov %ecx,0x18(%ebp)" "\n" ++ "mov (%ecx),%ebx" "\n" ++ "movl $0x0,0x14(%ebp)" "\n" ++ "mov %ebx,0x10(%ebp)" "\n" ++ "movl $0x0,0xc(%ebp)" "\n" ++ "movl $0x1,0x8(%ebp)" "\n" ++ "mov %edx,0x4(%ebp)" "\n" ++ "mov %eax,0x0(%ebp)" "\n" ++ "mov %ebp,%eax" "\n" ++ ++ "mov 0x28(%esi),%edx" "\n" ++ "add $0x5,%edx" "\n" ++ "shl $0x3,%edx" "\n" ++ "sub %edx,%ebp" "\n" ++ "mov %eax,0x0(%ebp)" "\n" ++ ++ "mov $0x5,%eax" "\n" ++ ++ ".copyHeaderLoop:" "\n" ++ "sub $0x1,%eax" "\n" ++ "mov (%esi,%eax,8),%ecx" "\n" ++ "mov %ecx,0x8(%ebp,%eax,8)" "\n" ++ "mov 0x4(%esi,%eax,8),%ecx" "\n" ++ "mov %ecx,0xc(%ebp,%eax,8)" "\n" ++ "test %eax,%eax" "\n" ++ "jne .copyHeaderLoop" "\n" ++ ++ "mov 0x18(%esi),%edx" "\n" ++ "sub $0x1,%edx" "\n" ++ "mov 0x28(%esi),%ecx" "\n" ++ "sub $0x1,%ecx" "\n" ++ ++ "cmp %ecx,%edx" "\n" ++ "je .copyArgs" "\n" ++ ++ "xor %eax,%eax" "\n" ++ "mov $0xfffffffc,%ebx" "\n" ++ ++ ".fillExtraArgsLoop:" "\n" ++ "sub $0x1,%ecx" "\n" ++ "mov %eax,0x30(%ebp,%ecx,8)" "\n" ++ "mov %ebx,0x34(%ebp,%ecx,8)" "\n" ++ "cmp %ecx,%edx" "\n" ++ "jne .fillExtraArgsLoop" "\n" ++ ++ ".copyArgs:" "\n" ++ "mov 0x2c(%esi),%eax" "\n" ++ ++ ".copyArgsLoop:" "\n" ++ "test %edx,%edx" "\n" ++ "je .copyArgsDone" "\n" ++ "sub $0x1,%edx" "\n" ++ "mov (%eax,%edx,8),%ecx" "\n" ++ "mov 0x4(%eax,%edx,8),%ebx" "\n" ++ "mov %ecx,0x30(%ebp,%edx,8)" "\n" ++ "mov %ebx,0x34(%ebp,%edx,8)" "\n" ++ "jmp .copyArgsLoop" "\n" ++ ++ ".copyArgsDone:" "\n" ++ "mov 0x34(%esp),%ecx" "\n" ++ "mov %ebp,(%ecx)" "\n" ++ ++ "call *0x30(%esp)" "\n" ++ ++ "cmpl $0x1,0x8(%ebp)" "\n" ++ "je .calleeFramePopped" "\n" ++ "mov 0x0(%ebp),%ebp" "\n" ++ ++ ".calleeFramePopped:" "\n" ++ "mov 0x18(%ebp),%ecx" "\n" ++ "mov 0x10(%ebp),%ebx" "\n" ++ "mov %ebx,(%ecx)" "\n" ++ ++ "add $0x1c,%esp" "\n" ++ "pop %ebx" "\n" ++ "pop %edi" "\n" ++ "pop %esi" "\n" ++ "pop %ebp" "\n" ++ "ret" "\n" ++ ++ ".globl " SYMBOL_STRING(returnFromJavaScript) "\n" ++ HIDE_SYMBOL(returnFromJavaScript) "\n" ++ SYMBOL_STRING(returnFromJavaScript) ":" "\n" ++ "add $0x1c,%esp" "\n" ++ "pop %ebx" "\n" ++ "pop %edi" "\n" ++ "pop %esi" "\n" ++ "pop %ebp" "\n" ++ "ret" "\n" ++ ++ ".globl " SYMBOL_STRING(callToNativeFunction) "\n" ++ HIDE_SYMBOL(callToNativeFunction) "\n" ++ SYMBOL_STRING(callToNativeFunction) ":" "\n" ++ "mov (%esp),%edx" "\n" ++ "push %ebp" "\n" ++ "mov %ebp,%eax" "\n" ++ "mov %esp,%ebp" "\n" ++ "push %esi" "\n" ++ "push %edi" "\n" ++ "push %ebx" "\n" ++ "sub $0x1c,%esp" "\n" ++ "mov 0x34(%esp),%ecx" "\n" ++ "mov 0x38(%esp),%esi" "\n" ++ "mov 0x3c(%esp),%ebp" "\n" ++ "sub $0x20,%ebp" "\n" ++ "movl $0x0,0x24(%ebp)" "\n" ++ "movl $0x0,0x20(%ebp)" "\n" ++ "movl $0x0,0x1c(%ebp)" "\n" ++ "mov %ecx,0x18(%ebp)" "\n" ++ "mov (%ecx),%ebx" "\n" ++ "movl $0x0,0x14(%ebp)" "\n" ++ "mov %ebx,0x10(%ebp)" "\n" ++ "movl $0x0,0xc(%ebp)" "\n" ++ "movl $0x1,0x8(%ebp)" "\n" ++ "mov %edx,0x4(%ebp)" "\n" ++ "mov %eax,0x0(%ebp)" "\n" ++ "mov %ebp,%eax" "\n" ++ ++ "mov 0x28(%esi),%edx" "\n" ++ "add $0x5,%edx" "\n" ++ "shl $0x3,%edx" "\n" ++ "sub %edx,%ebp" "\n" ++ "mov %eax,0x0(%ebp)" "\n" ++ ++ "mov $0x5,%eax" "\n" ++ ++ "copyHeaderLoop:" "\n" ++ "sub $0x1,%eax" "\n" ++ "mov (%esi,%eax,8),%ecx" "\n" ++ "mov %ecx,0x8(%ebp,%eax,8)" "\n" ++ "mov 0x4(%esi,%eax,8),%ecx" "\n" ++ "mov %ecx,0xc(%ebp,%eax,8)" "\n" ++ "test %eax,%eax" "\n" ++ "jne copyHeaderLoop" "\n" ++ ++ "mov 0x18(%esi),%edx" "\n" ++ "sub $0x1,%edx" "\n" ++ "mov 0x28(%esi),%ecx" "\n" ++ "sub $0x1,%ecx" "\n" ++ ++ "cmp %ecx,%edx" "\n" ++ "je copyArgs" "\n" ++ ++ "xor %eax,%eax" "\n" ++ "mov $0xfffffffc,%ebx" "\n" ++ ++ "fillExtraArgsLoop:" "\n" ++ "sub $0x1,%ecx" "\n" ++ "mov %eax,0x30(%ebp,%ecx,8)" "\n" ++ "mov %ebx,0x34(%ebp,%ecx,8)" "\n" ++ "cmp %ecx,%edx" "\n" ++ "jne fillExtraArgsLoop" "\n" ++ ++ "copyArgs:" "\n" ++ "mov 0x2c(%esi),%eax" "\n" ++ ++ "copyArgsLoop:" "\n" ++ "test %edx,%edx" "\n" ++ "je copyArgsDone" "\n" ++ "sub $0x1,%edx" "\n" ++ "mov (%eax,%edx,8),%ecx" "\n" ++ "mov 0x4(%eax,%edx,8),%ebx" "\n" ++ "mov %ecx,0x30(%ebp,%edx,8)" "\n" ++ "mov %ebx,0x34(%ebp,%edx,8)" "\n" ++ "jmp copyArgsLoop" "\n" ++ ++ "copyArgsDone:" "\n" ++ "mov 0x34(%esp),%ecx" "\n" ++ "mov %ebp,(%ecx)" "\n" ++ ++ "mov 0x30(%esp),%edi" "\n" ++ "mov %ebp,0x30(%esp)" "\n" ++ "mov %ebp,%ecx" "\n" ++ "call *%edi" "\n" ++ ++ "cmpl $0x1,0x8(%ebp)" "\n" ++ "je calleeFramePopped" "\n" ++ "mov 0x0(%ebp),%ebp" "\n" ++ ++ "calleeFramePopped:" "\n" ++ "mov 0x18(%ebp),%ecx" "\n" ++ "mov 0x10(%ebp),%ebx" "\n" ++ "mov %ebx,(%ecx)" "\n" ++ ++ "add $0x1c,%esp" "\n" ++ "pop %ebx" "\n" ++ "pop %edi" "\n" ++ "pop %esi" "\n" ++ "pop %ebp" "\n" ++ "ret" "\n" ++ ); ++} ++ ++#endif // OS(WINDOWS) && ENABLE(JIT) ++ + #endif // COMPILER(GCC) + + #if COMPILER(MSVC) diff --git a/mingw-w64-webkitgtk3/1001-Source.autotools.FindDependencies.m4.all.patch b/mingw-w64-webkitgtk3/1001-Source.autotools.FindDependencies.m4.all.patch new file mode 100644 index 0000000000..0cb996d4d9 --- /dev/null +++ b/mingw-w64-webkitgtk3/1001-Source.autotools.FindDependencies.m4.all.patch @@ -0,0 +1,35 @@ +--- webkitgtk-2.4.1.old/Source/autotools/FindDependencies.m4 2014-05-16 19:07:53 +0000 ++++ webkitgtk-2.4.1/Source/autotools/FindDependencies.m4 2014-05-17 07:38:01 +0000 +@@ -109,8 +109,14 @@ case "$host" in + UNICODE_LIBS="-licucore" + ;; + *-*-mingw*) +- UNICODE_CFLAGS="" +- UNICODE_LIBS="-licui18n -licuuc" ++ PKG_CHECK_MODULES(ICU, icu-i18n, ,) ++ if test "x$ICU_LIBS" = "x" ; then ++ UNICODE_CFLAGS="" ++ UNICODE_LIBS="-licui18n -licuuc" ++ else ++ UNICODE_CFLAGS="$ICU_CFLAGS" ++ UNICODE_LIBS="$ICU_LIBS" ++ fi + AC_CHECK_HEADERS([unicode/uchar.h], [], [AC_MSG_ERROR([Could not find ICU headers.])]) + ;; + *) +@@ -455,7 +461,14 @@ if test "$found_opengl" = "yes"; then + OPENGL_LIBS="-lGLESv2" + else + acceleration_description="$acceleration_description (gl" +- OPENGL_LIBS="-lGL" ++ case "$host" in ++ *-*-mingw*) ++ OPENGL_LIBS="-lopengl32" ++ ;; ++ *) ++ OPENGL_LIBS="-lGL" ++ ;; ++ esac + fi + if test "$enable_egl" = "yes"; then + acceleration_description="$acceleration_description, egl" diff --git a/mingw-w64-webkitgtk3/1002-preprocessor.pm-make_names.pl.all.patch b/mingw-w64-webkitgtk3/1002-preprocessor.pm-make_names.pl.all.patch new file mode 100644 index 0000000000..1bc7d0d19e --- /dev/null +++ b/mingw-w64-webkitgtk3/1002-preprocessor.pm-make_names.pl.all.patch @@ -0,0 +1,31 @@ +--- webkitgtk-2.4.1.old/Source/WebCore/bindings/scripts/preprocessor.pm 2014-05-16 19:07:53 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/bindings/scripts/preprocessor.pm 2014-05-17 07:38:01 +0000 +@@ -51,6 +51,8 @@ sub applyPreprocessor + $preprocessor = "/usr/sfw/bin/gcc"; + } elsif (-x "/usr/bin/clang") { + $preprocessor = "/usr/bin/clang"; ++ } elsif ($Config{osname} eq 'msys') { ++ $preprocessor = "gcc"; + } else { + $preprocessor = "/usr/bin/gcc"; + } +@@ -71,7 +73,7 @@ sub applyPreprocessor + @macros = map { "-D$_" } @macros; + + my $pid = 0; +- if ($Config{osname} eq "cygwin" || $Config{osname} eq 'MSWin32') { ++ if ($Config{osname} eq "cygwin" || $Config{osname} eq 'MSWin32' || $Config{osname} eq 'msys') { + # This call can fail if Windows rebases cygwin, so retry a few times until it succeeds. + for (my $tries = 0; !$pid && ($tries < 20); $tries++) { + eval { +--- webkitgtk-2.4.1.old/Source/WebCore/dom/make_names.pl 2014-05-16 19:07:53 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/dom/make_names.pl 2014-05-17 07:38:01 +0000 +@@ -69,6 +69,8 @@ if ($ENV{CC}) { + $gccLocation = "/usr/sfw/bin/gcc"; + } elsif ($Config::Config{"osname"} eq "darwin" && $ENV{SDKROOT}) { + chomp($gccLocation = `xcrun -find cc -sdk '$ENV{SDKROOT}'`); ++} elsif ($Config::Config{"osname"} eq "msys") { ++ $gccLocation = "gcc"; + } else { + $gccLocation = "/usr/bin/cc"; + } diff --git a/mingw-w64-webkitgtk3/1004-math.h_related.all.patch b/mingw-w64-webkitgtk3/1004-math.h_related.all.patch new file mode 100644 index 0000000000..59a3cdfc39 --- /dev/null +++ b/mingw-w64-webkitgtk3/1004-math.h_related.all.patch @@ -0,0 +1,56 @@ +--- webkitgtk-2.4.1.old/Source/WTF/wtf/MathExtras.h 2014-05-16 19:07:53 +0000 ++++ webkitgtk-2.4.1/Source/WTF/wtf/MathExtras.h 2014-05-17 07:38:01 +0000 +@@ -67,6 +67,12 @@ const double piOverFourDouble = M_PI_4; + const float piOverFourFloat = static_cast(M_PI_4); + #endif + ++#ifndef M_SQRT2 ++const double sqrtOfTwoDouble = 1.41421356237309504880; ++#else ++const double sqrtOfTwoDouble = M_SQRT2; ++#endif ++ + #if OS(DARWIN) + + // Work around a bug in the Mac OS X libc where ceil(-0.1) return +0. +--- webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp 2014-05-16 19:07:53 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp 2014-05-17 07:38:01 +0000 +@@ -32,6 +32,7 @@ + #include + #include FT_TRUETYPE_TABLES_H + #include ++#include + + #if !PLATFORM(EFL) + #include +@@ -120,7 +121,7 @@ static void rotateCairoMatrixForVertical + // combination of rotation (R) and translation (T) applied on the + // horizontal matrix (H). V = H . R . T, where R rotates by -90 degrees + // and T translates by font size towards y axis. +- cairo_matrix_rotate(matrix, -M_PI_2); ++ cairo_matrix_rotate(matrix, -piOverTwoDouble); + cairo_matrix_translate(matrix, 0.0, 1.0); + } + +--- webkitgtk-2.4.1.old/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp 2014-05-16 19:07:53 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp 2014-05-17 07:38:01 +0000 +@@ -71,8 +71,8 @@ void RenderMathMLMenclose::computePrefer + size_t notationalValueSize = notationValues.size(); + for (size_t i = 0; i < notationalValueSize; i++) { + if (notationValues[i] == "circle") { +- m_minPreferredLogicalWidth = minPreferredLogicalWidth() * float(M_SQRT2); +- m_maxPreferredLogicalWidth = maxPreferredLogicalWidth() * float(M_SQRT2); ++ m_minPreferredLogicalWidth = minPreferredLogicalWidth() * float(sqrtOfTwoDouble); ++ m_maxPreferredLogicalWidth = maxPreferredLogicalWidth() * float(sqrtOfTwoDouble); + } + } + +@@ -86,7 +86,7 @@ void RenderMathMLMenclose::updateLogical + size_t notationalValueSize = notationValues.size(); + for (size_t i = 0; i < notationalValueSize; i++) + if (notationValues[i] == "circle") +- setLogicalHeight(logicalHeight() * float(M_SQRT2)); ++ setLogicalHeight(logicalHeight() * float(sqrtOfTwoDouble)); + } + + void RenderMathMLMenclose::paint(PaintInfo& info, const LayoutPoint& paintOffset) diff --git a/mingw-w64-webkitgtk3/1005-misc.all.patch b/mingw-w64-webkitgtk3/1005-misc.all.patch new file mode 100644 index 0000000000..db35dd1aa1 --- /dev/null +++ b/mingw-w64-webkitgtk3/1005-misc.all.patch @@ -0,0 +1,107 @@ +diff --git a/Source/WTF/wtf/threads/BinarySemaphore.h b/Source/WTF/wtf/threads/BinarySemaphore.h +index de51d47..cae1023 100644 +--- a/Source/WTF/wtf/threads/BinarySemaphore.h ++++ b/Source/WTF/wtf/threads/BinarySemaphore.h +@@ -41,12 +41,12 @@ public: + WTF_EXPORT_PRIVATE void signal(); + WTF_EXPORT_PRIVATE bool wait(double absoluteTime); + +-#if OS(WINDOWS) ++#if PLATFORM(WIN) + HANDLE event() const { return m_event; } + #endif + + private: +-#if OS(WINDOWS) ++#if PLATFORM(WIN) + HANDLE m_event; + #else + bool m_isSet; +diff --git a/Source/WebCore/platform/gtk/FileSystemGtk.cpp b/Source/WebCore/platform/gtk/FileSystemGtk.cpp +index 9ebeca5..e741d1c 100644 +--- a/Source/WebCore/platform/gtk/FileSystemGtk.cpp ++++ b/Source/WebCore/platform/gtk/FileSystemGtk.cpp +@@ -23,6 +23,10 @@ + #include "config.h" + #include "FileSystem.h" + ++#if OS(WINDOWS) ++#include ++#endif ++ + #include "FileMetadata.h" + #include "UUID.h" + #include +diff --git a/Source/WebCore/rendering/RenderBlock.h b/Source/WebCore/rendering/RenderBlock.h +index 5aa29e0..c29b078 100644 +--- a/Source/WebCore/rendering/RenderBlock.h ++++ b/Source/WebCore/rendering/RenderBlock.h +@@ -611,8 +611,8 @@ public: + unsigned m_beingDestroyed : 1; + unsigned m_hasMarkupTruncation : 1; + unsigned m_hasBorderOrPaddingLogicalWidthChanged : 1; +- enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; + unsigned m_lineLayoutPath : 2; ++ enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; + + // RenderRubyBase objects need to be able to split and merge, moving their children around + // (calling moveChildTo, moveAllChildrenTo, and makeChildrenNonInline). +--- a/Source/WebCore/platform/graphics/GraphicsContext3D.h ++++ b/Source/WebCore/platform/graphics/GraphicsContext3D.h +@@ -43,9 +43,11 @@ + #endif + + // FIXME: Find a better way to avoid the name confliction for NO_ERROR. +-#if PLATFORM(WIN) ++#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) + #undef NO_ERROR +-#elif PLATFORM(GTK) ++#endif ++ ++#if PLATFORM(GTK) + // This define is from the X11 headers, but it's used below, so we must undefine it. + #undef VERSION + #endif +--- a/Source/WebCore/html/canvas/WebGLRenderingContext.cpp ++++ b/Source/WebCore/html/canvas/WebGLRenderingContext.cpp +@@ -85,6 +85,14 @@ + #include + #include + ++#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) ++#undef NO_ERROR ++#endif ++ ++#if PLATFORM(GTK) ++#undef VERSION ++#endif ++ + namespace WebCore { + + const double secondsBetweenRestoreAttempts = 1.0; +--- a/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp ++++ b/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp +@@ -49,6 +49,10 @@ + #include + #include + ++#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) ++#undef NO_ERROR ++#endif ++ + namespace WebCore { + + Extensions3DOpenGLCommon::Extensions3DOpenGLCommon(GraphicsContext3D* context) +--- a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp ++++ b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp +@@ -29,6 +29,10 @@ + + #include + ++#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) ++#undef NO_ERROR ++#endif ++ + #define STRINGIFY(...) #__VA_ARGS__ + + namespace WebCore { diff --git a/mingw-w64-webkitgtk3/3000-export-more-symbols-on-w32.all.patch b/mingw-w64-webkitgtk3/3000-export-more-symbols-on-w32.all.patch new file mode 100644 index 0000000000..da7a2790b8 --- /dev/null +++ b/mingw-w64-webkitgtk3/3000-export-more-symbols-on-w32.all.patch @@ -0,0 +1,17 @@ +--- webkitgtk-2.4.8/GNUmakefile.am.orig 2015-01-07 09:45:40.000000000 +0000 ++++ webkitgtk-2.4.8/GNUmakefile.am 2015-03-24 10:51:01.592364800 +0000 +@@ -182,7 +182,13 @@ + # It breaks the build on other platforms, so we use it conditionally + if OS_WIN32 + no_undefined = -no-undefined +-version_script = -export-symbols-regex "^(webkit_|k?JS).*" ++#global: ++# webkit_*; ++# WebProcessMainGtk; ++# NetworkProcessMain; ++# _ZN6WebKit22WebGtkExtensionManager10initializeEPK14OpaqueWKBundlePKv; ++# _ZN6WebKit22WebGtkExtensionManager6sharedEv; ++version_script = -export-symbols-regex "^(webkit_|k?JS|WebProcessMainGtk|NetworkProcessMain|.*ZN6WebKit22WebGtkExtensionManager10initializeEPK14OpaqueWKBundlePKv|.*ZN6WebKit22WebGtkExtensionManager6sharedEv).*" + endif + + if OS_GNU diff --git a/mingw-w64-webkitgtk3/4000-fix-gmutexlocker-conflict.all.patch b/mingw-w64-webkitgtk3/4000-fix-gmutexlocker-conflict.all.patch new file mode 100644 index 0000000000..71f7beb557 --- /dev/null +++ b/mingw-w64-webkitgtk3/4000-fix-gmutexlocker-conflict.all.patch @@ -0,0 +1,301 @@ +--- webkitgtk-2.4.8/Source/WTF/wtf/gobject/GMutexLocker.h.orig 2015-01-07 09:45:42.000000000 +0000 ++++ webkitgtk-2.4.8/Source/WTF/wtf/gobject/GMutexLocker.h 2015-03-24 20:50:18.848356400 +0000 +@@ -29,18 +29,18 @@ + + namespace WebCore { + +-class GMutexLocker { +- WTF_MAKE_NONCOPYABLE(GMutexLocker); WTF_MAKE_FAST_ALLOCATED; ++class GWTFMutexLocker { ++ WTF_MAKE_NONCOPYABLE(GWTFMutexLocker); WTF_MAKE_FAST_ALLOCATED; + + public: +- inline explicit GMutexLocker(GMutex* mutex) ++ inline explicit GWTFMutexLocker(GMutex* mutex) + : m_mutex(mutex) + , m_val(0) + { + lock(); + } + +- inline ~GMutexLocker() { unlock(); } ++ inline ~GWTFMutexLocker() { unlock(); } + + inline void lock() + { +--- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp.orig 2015-01-07 09:45:43.000000000 +0000 ++++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2015-03-24 20:53:07.273243700 +0000 +@@ -316,7 +316,7 @@ + #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) && !USE(COORDINATED_GRAPHICS) + PassRefPtr MediaPlayerPrivateGStreamerBase::updateTexture(TextureMapper* textureMapper) + { +- GMutexLocker lock(m_bufferMutex); ++ GWTFMutexLocker lock(m_bufferMutex); + if (!m_buffer) + return nullptr; + +@@ -366,7 +366,7 @@ + g_return_if_fail(GST_IS_BUFFER(buffer)); + + { +- GMutexLocker lock(m_bufferMutex); ++ GWTFMutexLocker lock(m_bufferMutex); + gst_buffer_replace(&m_buffer, buffer); + } + +@@ -398,7 +398,7 @@ + if (!m_player->visible()) + return; + +- GMutexLocker lock(m_bufferMutex); ++ GWTFMutexLocker lock(m_bufferMutex); + if (!m_buffer) + return; + +--- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp.orig 2015-01-07 09:45:43.000000000 +0000 ++++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp 2015-03-24 20:53:18.224134200 +0000 +@@ -118,7 +118,7 @@ + WebKitVideoSink* sink = reinterpret_cast(data); + WebKitVideoSinkPrivate* priv = sink->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ GWTFMutexLocker lock(priv->bufferMutex); + GstBuffer* buffer = priv->buffer; + priv->buffer = 0; + priv->timeoutId = 0; +@@ -140,7 +140,7 @@ + WebKitVideoSink* sink = WEBKIT_VIDEO_SINK(baseSink); + WebKitVideoSinkPrivate* priv = sink->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ GWTFMutexLocker lock(priv->bufferMutex); + + if (priv->unlocked) + return GST_FLOW_OK; +@@ -279,7 +279,7 @@ + + static void unlockBufferMutex(WebKitVideoSinkPrivate* priv) + { +- GMutexLocker lock(priv->bufferMutex); ++ GWTFMutexLocker lock(priv->bufferMutex); + + if (priv->buffer) { + gst_buffer_unref(priv->buffer); +@@ -305,7 +305,7 @@ + WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; + + { +- GMutexLocker lock(priv->bufferMutex); ++ GWTFMutexLocker lock(priv->bufferMutex); + priv->unlocked = false; + } + +@@ -330,7 +330,7 @@ + { + WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ GWTFMutexLocker lock(priv->bufferMutex); + priv->unlocked = false; + return TRUE; + } +--- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp.orig 2015-01-07 09:45:43.000000000 +0000 ++++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2015-03-24 20:53:33.226039200 +0000 +@@ -346,7 +346,7 @@ + + switch (propID) { + case PROP_IRADIO_MODE: { +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + priv->iradioMode = g_value_get_boolean(value); + break; + } +@@ -364,7 +364,7 @@ + WebKitWebSrc* src = WEBKIT_WEB_SRC(object); + WebKitWebSrcPrivate* priv = src->priv; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + switch (propID) { + case PROP_IRADIO_MODE: + g_value_set_boolean(value, priv->iradioMode); +@@ -417,7 +417,7 @@ + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + bool seeking = priv->seekID; + +@@ -476,7 +476,7 @@ + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + priv->startID = 0; + priv->corsAccessCheck = CORSNoCheck; +@@ -573,7 +573,7 @@ + return ret; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + GST_DEBUG_OBJECT(src, "READY->PAUSED"); +@@ -604,7 +604,7 @@ + gst_query_parse_duration(query, &format, NULL); + + GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format)); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (format == GST_FORMAT_BYTES && src->priv->size > 0) { + gst_query_set_duration(query, format, src->priv->size); + result = TRUE; +@@ -612,7 +612,7 @@ + break; + } + case GST_QUERY_URI: { +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + gst_query_set_uri(query, src->priv->uri); + result = TRUE; + break; +@@ -653,7 +653,7 @@ + WebKitWebSrc* src = WEBKIT_WEB_SRC(handler); + gchar* ret; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + ret = g_strdup(src->priv->uri); + return ret; + } +@@ -668,7 +668,7 @@ + return FALSE; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + g_free(priv->uri); + priv->uri = 0; +@@ -704,7 +704,7 @@ + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->needDataID) + return FALSE; +@@ -725,7 +725,7 @@ + + GST_DEBUG_OBJECT(src, "Need more data: %u", length); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (priv->needDataID || !priv->paused) { + return; + } +@@ -739,7 +739,7 @@ + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->enoughDataID) + return FALSE; +@@ -760,7 +760,7 @@ + + GST_DEBUG_OBJECT(src, "Have enough data"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (priv->enoughDataID || priv->paused) { + return; + } +@@ -774,7 +774,7 @@ + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->seekID) + return FALSE; +@@ -792,7 +792,7 @@ + WebKitWebSrcPrivate* priv = src->priv; + + GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (offset == priv->offset && priv->requestedOffset == priv->offset) + return TRUE; + +@@ -811,7 +811,7 @@ + void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player) + { + ASSERT(player); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + src->priv->player = player; + } + +@@ -841,7 +841,7 @@ + + mapGstBuffer(buffer); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + priv->buffer = adoptGRef(buffer); + locker.unlock(); + +@@ -867,7 +867,7 @@ + return; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + priv->corsAccessCheck = corsAccessCheck; + +@@ -966,7 +966,7 @@ + WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src); + WebKitWebSrcPrivate* priv = src->priv; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + GST_LOG_OBJECT(src, "Have %lld bytes of data", priv->buffer ? static_cast(gst_buffer_get_size(priv->buffer.get())) : length); + +@@ -1035,7 +1035,7 @@ + + GST_DEBUG_OBJECT(src, "Have EOS"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (!priv->seekID) { + locker.unlock(); + gst_app_src_end_of_stream(priv->appsrc); +@@ -1194,7 +1194,7 @@ + + GST_ERROR_OBJECT(src, "Request was blocked"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + uri.reset(g_strdup(src->priv->uri)); + locker.unlock(); + +@@ -1208,7 +1208,7 @@ + + GST_ERROR_OBJECT(src, "Cannot show URL"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + uri.reset(g_strdup(src->priv->uri)); + locker.unlock(); + diff --git a/mingw-w64-webkitgtk3/PKGBUILD b/mingw-w64-webkitgtk3/PKGBUILD index 497d33d03c..a856dd8351 100644 --- a/mingw-w64-webkitgtk3/PKGBUILD +++ b/mingw-w64-webkitgtk3/PKGBUILD @@ -2,107 +2,105 @@ _realname=webkitgtk pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}2" "${MINGW_PACKAGE_PREFIX}-${_realname}3") -pkgver=2.2.8 +pkgver=2.4.8 pkgrel=1 pkgdesc="GTK+ Web content engine library (mingw-w64)" arch=('any') url="http://webkitgtk.org/" license=("custom") -options=('!libtool' 'strip' '!debug' 'staticlibs') +options=('!libtool' 'strip' '!debug' 'staticlibs' 'buildflags') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-gtk3" - "bison" - "flex" - "gperf" - "libtool" - "gtk-doc" - "perl" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-ruby" - ) -depends=( - "${MINGW_PACKAGE_PREFIX}-angleproject" - "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-enchant" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-gst-plugins-base" - "${MINGW_PACKAGE_PREFIX}-gstreamer" - "${MINGW_PACKAGE_PREFIX}-geoclue" - "${MINGW_PACKAGE_PREFIX}-harfbuzz" - "${MINGW_PACKAGE_PREFIX}-icu" - "${MINGW_PACKAGE_PREFIX}-libidn" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libsoup" - "${MINGW_PACKAGE_PREFIX}-sqlite3" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-libxslt" - "${MINGW_PACKAGE_PREFIX}-libwebp" - "${MINGW_PACKAGE_PREFIX}-pango" - "${MINGW_PACKAGE_PREFIX}-xz" - ) + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-gtk3" + "bison" + "flex" + "gperf" + "libtool" + "gtk-doc" + "perl" + "python2" + "${MINGW_PACKAGE_PREFIX}-ruby" + ) +depends=("${MINGW_PACKAGE_PREFIX}-angleproject" + "${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-enchant" + "${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gst-plugins-base" + "${MINGW_PACKAGE_PREFIX}-gstreamer" + "${MINGW_PACKAGE_PREFIX}-geoclue" + "${MINGW_PACKAGE_PREFIX}-harfbuzz" + "${MINGW_PACKAGE_PREFIX}-icu" + "${MINGW_PACKAGE_PREFIX}-libidn" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libsoup" + "${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-pango" + "${MINGW_PACKAGE_PREFIX}-xz" + ) source=(http://webkitgtk.org/releases/webkitgtk-${pkgver}.tar.xz - 0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch - 0002-webkitgtk-mingw-use-gcc-asm.mingw.patch - 0003-webkit-dont-build-dump-render-tree.mingw.patch - 0004-webkitgtk-mingw-dont-declare-readwritebarrier.mingw.patch - 0005-webkitgtk-mingw-compile-fix.mingw.patch - 0006-webkitgtk-mingw-prevent-no-error-name-conflict.mingw.patch - 0007-webkitgtk-mingw-fix-includes.mingw.patch - 0008-webkit-fix-angle-windows-compilation.mingw.patch - 0009-webkitgtk-mingw-m-pi.mingw.patch - 0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch - 0011-webkitgtk-mingw-opengl.mingw.patch - 0012-webkitgtk-dont-build-test-webkit-api.mingw.patch - 0013-webkitgtk-redo-commit-148663.mingw.patch - 0014-webkitgtk-workaround-conflicting-htonl-on-win64.mingw.patch - 0015-use-gstatbuf.all.patch - 0016-non-volatile-refc-in-audio.mingw.patch - 0017-make-sure-correct-gcc-is-used.mingw.patch - 0018-use-la-libs-for-g-i.all.patch - 0021-use-configured-python-for-this.all.patch - 0023-use-path-instead-of-ld-library-path-on.mingw.patch - 0024-use-stabs-to-get-smaller-debug-builds.mingw.patch - 0025-webkitgtk-2.2.5-icu-libraries.patch - 0026-webkitgtk-mingw-gnu-print.patch - 0027-webkitgtk-windows-fix-egl.patch - 0028-Use-after-free-in-WTF-threading-code.patch - 0029-pass-python-and-cflags-to-girscanner.patch) + 0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch + 0002-webkitgtk-mingw-use-gcc-asm.mingw.patch + 0005-webkitgtk-mingw-compile-fix.mingw.patch + 0007-webkitgtk-mingw-fix-includes.mingw.patch + 0008-webkit-fix-angle-windows-compilation.mingw.patch + 0009-webkitgtk-mingw-m-pi.mingw.patch + 0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch + 0011-webkitgtk-mingw-opengl.mingw.patch + 0012-webkitgtk-dont-build-test-webkit-api.mingw.patch + 0017-make-sure-correct-gcc-is-used.mingw.patch + 0018-use-la-libs-for-g-i.all.patch + 0021-use-configured-python-for-this.all.patch + 0023-use-path-instead-of-ld-library-path-on.mingw.patch + 0027-destroy-invocation-before-return-switchable.all.patch + 0029-webkit-dont-build-dump-render-tree.all.patch + 0101-webkitgtk-2.4.3-gcc-asm.all.patch + 0103-webkitgtk-2.4.3-win-format.all.patch + 0104-webkitgtk-2.4.3-misc-win-errors.all.patch + 0105-webkitgtk-2.4.3-warnings.all.patch + 0106-enable-jit.all.patch + 1001-Source.autotools.FindDependencies.m4.all.patch + 1002-preprocessor.pm-make_names.pl.all.patch + 1004-math.h_related.all.patch + 1005-misc.all.patch + 3000-export-more-symbols-on-w32.all.patch + 4000-fix-gmutexlocker-conflict.all.patch) prepare() { cd ${srcdir}/${_realname}-${pkgver} - rm -rf Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp || true patch -p1 -i ${srcdir}/0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch patch -p1 -i ${srcdir}/0002-webkitgtk-mingw-use-gcc-asm.mingw.patch - patch -p1 -i ${srcdir}/0003-webkit-dont-build-dump-render-tree.mingw.patch - patch -p1 -i ${srcdir}/0004-webkitgtk-mingw-dont-declare-readwritebarrier.mingw.patch patch -p1 -i ${srcdir}/0005-webkitgtk-mingw-compile-fix.mingw.patch - patch -p1 -i ${srcdir}/0006-webkitgtk-mingw-prevent-no-error-name-conflict.mingw.patch patch -p1 -i ${srcdir}/0007-webkitgtk-mingw-fix-includes.mingw.patch patch -p1 -i ${srcdir}/0008-webkit-fix-angle-windows-compilation.mingw.patch patch -p1 -i ${srcdir}/0009-webkitgtk-mingw-m-pi.mingw.patch patch -p1 -i ${srcdir}/0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch patch -p1 -i ${srcdir}/0011-webkitgtk-mingw-opengl.mingw.patch patch -p1 -i ${srcdir}/0012-webkitgtk-dont-build-test-webkit-api.mingw.patch - patch -p1 -i ${srcdir}/0013-webkitgtk-redo-commit-148663.mingw.patch - patch -p1 -i ${srcdir}/0014-webkitgtk-workaround-conflicting-htonl-on-win64.mingw.patch - patch -p1 -i ${srcdir}/0015-use-gstatbuf.all.patch - patch -p1 -i ${srcdir}/0016-non-volatile-refc-in-audio.mingw.patch patch -p1 -i ${srcdir}/0017-make-sure-correct-gcc-is-used.mingw.patch patch -p1 -i ${srcdir}/0018-use-la-libs-for-g-i.all.patch patch -p1 -i ${srcdir}/0021-use-configured-python-for-this.all.patch patch -p1 -i ${srcdir}/0023-use-path-instead-of-ld-library-path-on.mingw.patch - patch -p1 -i ${srcdir}/0024-use-stabs-to-get-smaller-debug-builds.mingw.patch - patch -p1 -i ${srcdir}/0025-webkitgtk-2.2.5-icu-libraries.patch - patch -p1 -i ${srcdir}/0026-webkitgtk-mingw-gnu-print.patch - patch -p1 -i ${srcdir}/0027-webkitgtk-windows-fix-egl.patch - patch -p1 -i ${srcdir}/0028-Use-after-free-in-WTF-threading-code.patch - patch -p1 -i ${srcdir}/0029-pass-python-and-cflags-to-girscanner.patch + patch -p1 -i ${srcdir}/0027-destroy-invocation-before-return-switchable.all.patch + patch -p1 -i ${srcdir}/0029-webkit-dont-build-dump-render-tree.all.patch + patch -p1 -i ${srcdir}/0101-webkitgtk-2.4.3-gcc-asm.all.patch + patch -p1 -i ${srcdir}/0103-webkitgtk-2.4.3-win-format.all.patch + patch -p1 -i ${srcdir}/0104-webkitgtk-2.4.3-misc-win-errors.all.patch + patch -p1 -i ${srcdir}/0105-webkitgtk-2.4.3-warnings.all.patch + patch -p1 -i ${srcdir}/0106-enable-jit.all.patch + patch -p1 -i ${srcdir}/1001-Source.autotools.FindDependencies.m4.all.patch + patch -p1 -i ${srcdir}/1002-preprocessor.pm-make_names.pl.all.patch + patch -p1 -i ${srcdir}/1004-math.h_related.all.patch + patch -p1 -i ${srcdir}/1005-misc.all.patch + patch -p1 -i ${srcdir}/3000-export-more-symbols-on-w32.all.patch + patch -p1 -i ${srcdir}/4000-fix-gmutexlocker-conflict.all.patch autoreconf --verbose --install -I Source/autotools @@ -114,7 +112,7 @@ _build() { _ver="$1"; shift cd ${srcdir}/build-${_ver} - export PYTHON=${MINGW_PREFIX}/bin/python2 + export PYTHON=/usr/bin/python2 export RUBY=${MINGW_PREFIX}/bin/ruby ../${_realname}-${pkgver}/configure \ @@ -122,11 +120,10 @@ _build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --disable-debug \ - --enable-debug-symbols \ --enable-introspection \ --disable-credential-storage \ --disable-accelerated-compositing \ - --enable-jit \ + --enable-debug-symbols=min \ --disable-webkit2 \ --disable-glibtest \ --disable-static \ @@ -135,18 +132,28 @@ _build() { --enable-spellcheck \ --enable-optimizations \ --enable-geolocation \ - --with-target=win32 \ + --disable-x11-target \ + --enable-win32-target \ --enable-gles2=no \ --enable-egl=no \ "$@" - PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${srcdir}/build-${_ver}/SourceJavaScriptCore \ - make V=1 all stamp-po + make } build() { - _build gtk3 --disable-gtk-doc --disable-webkit2 --with-gtk=3.0 - _build gtk2 --disable-gtk-doc --disable-webkit2 --with-gtk=2.0 + local _jit_flag= + case ${MINGW_CHOST} in + i686*) + _jit_flag="-enable-jit" + ;; + x86_64*) + _jit_flag="-disable-jit" + ;; + esac + + _build gtk3 --disable-gtk-doc --disable-webkit2 --with-gtk=3.0 ${_jit_flag} + _build gtk2 --disable-gtk-doc --disable-webkit2 --with-gtk=2.0 ${_jit_flag} } package_webkitgtk2() { @@ -183,30 +190,30 @@ package_mingw-w64-x86_64-webkitgtk3() { package_webkitgtk3 } -md5sums=('047f13fabc67003c9019e75a494c3faf' - '7408cd3f6624076ffb41c7b4364faee5' - 'b353ef80d7cab43524aaf5bf510d1778' - '15587d5007fabb1700e2ed4a04085c30' - 'fd7ffaa30ddb9146f56a74602bb5ce9d' +md5sums=('bcdcef8e1ba28dbd5bb05f86c79f76b8' + '2ae45596c0b2d632fdd8ead551bd462b' + 'f6274cc4664f531ceb4040aa706e8ef6' 'd09eb8edbf720c331d01a58f65eaa0a6' - '288b3d33b3a9826fa5dc3ce748ef1b11' - '29ab03a44da205dcd38156d63dfee22b' - '8f9b6a0ef1da6a8b26d7e23c2ca03e31' + 'a14fdd341b980ca21064305e11990332' + '60f28fd809bb3aa0c8c791325bb29d3d' '05fe8cc73be6493d8e2269b900d03cfb' - '49505091057a55fb26cc0a837f472c4a' - 'be25ec74f31e48e9b177e551290ded7f' - '84190dfb3082e2a46bf924c179f6f02e' - '2d8c6f57eed675032748dfbbc2e3e022' - 'b3668d854977f02686db56b0036e14bc' - 'e05eca1b6fe088dcef0f72971f8540e1' - 'c8e10c09e64e7ea9e53de01748e35190' - '166ae22cb089e0861525004ec9eb9820' + '11328cfd06c73e26abe6468a7dfafa23' + 'db16e2d9e6d20f9568d98371b10b8719' + '3cdc56cfae595eefce12414f027907b7' + 'c020b0863576574f6f9e17396f4f6cfa' '054075647ddf38b5e2b2f8226a5043f0' - '1f1901b881d992261cf97e1c14939667' + '8277aefbe66157e4673f63105c0ff0f1' 'ab2a01c8c34bdec57a6b4fa71d9ccdaf' - '84417e71df0b4ebe919ef89cdeedd380' - '78e8c4c15f52ebf42f0aa66fe28acc22' - '615feb1233082dadc2f63faa01ce778f' - '292b9380c711202a166c05d84af61fa7' - '290c2221a0caebe24650f09e08a9f4dd' - '9dfc2658031dbc73606495450690e08d') + 'eeff9b56a17c8c5165aa501404d6b9f3' + 'cd60095167b0f70f26c71e2898c776a5' + 'e36f95bd1d0ffaf52046e584a7094b56' + 'dc979053d76c9c769aa5a2391523a52d' + '03c9f2c8bdef2ef8fb42afcf47b46e05' + '0f661078e789d307e0856ca0cb09fd15' + '75926bb66e75c6d3158f4f4c5a74b59d' + '58942deeaac6fabb63e51eaf2b3d65b6' + '31ae582391c95d200b5337414e90da73' + 'dca0ab5e9a305f993ace0e519e6b6c4f' + '1350a969b3b5c9c85c3524dd7be232e8' + 'f173518598f8c482ac946f5ff566a521' + '6a761e17596562208cb6cd2ef6d413a2') From a779ad3c1346cfe87f49a671f58139de163a85ca Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 31 Mar 2015 13:05:33 +0300 Subject: [PATCH 0775/2060] gnutls: Update to 3.3.14 --- mingw-w64-gnutls/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index 08ff10e914..a0caf18dc8 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -2,7 +2,7 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.3.13 +pkgver=3.3.14 pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') @@ -22,7 +22,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/${_realname}-${pkgver}.tar.xz{,.sig} 0004-fix-gtkdoc.all.patch 0005-fix-strtok-conflict.mingw.patch) -md5sums=('a7387fe8bf3e604bf518a6da9ab2a4e6' +md5sums=('7f4465f8c564cf9cb8f5cb38b909f7ca' 'SKIP' '86cfab6e7c2ccfcfd1dad9d5024627e3' '77287dc835afbb8cc4e9c4aa6b7adb7b') From 46de770a40e2f844faa215ee19d046774dcfc246 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 31 Mar 2015 20:49:50 +0100 Subject: [PATCH 0776/2060] qt5-static: Consider junction points as symlinks This reverts a reversion of a commit that added this originally. The reasons for the reversion seem weird and only hand-wavingly explained - we discussed this on qt's private dev IRC channel and decided this was a good idea - roughly. This is the first part of a fix for: https://github.com/msys2/msys2.github.io/issues/4 --- ...-Revert-Revert-fix-NTFS-mount-points.patch | 123 ++++++++++++++++++ mingw-w64-qt5-static/PKGBUILD | 12 +- 2 files changed, 132 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-qt5-static/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch diff --git a/mingw-w64-qt5-static/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch b/mingw-w64-qt5-static/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch new file mode 100644 index 0000000000..29810630d3 --- /dev/null +++ b/mingw-w64-qt5-static/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch @@ -0,0 +1,123 @@ +From 1d9aff66270aba6d16077f460aa85fbf161aba99 Mon Sep 17 00:00:00 2001 +From: Joerg Bornemann +Date: Tue, 17 Jan 2012 14:21:05 +0100 +Subject: [PATCH] Revert "Revert "fix NTFS mount points"" + +This reverts commit 49d1b068987d0895b2429b3d87beb561d9fbcbd7 + +Because of https://github.com/msys2/msys2.github.io/issues/4 + +.. bringing back: + +fix NTFS mount points + +NTFS mount points are not treated as symlinks, because they might +not have a link target. +This is the case when a volume is mounted as a single mount point +without a drive letter. +This patch fixes building Qt in an NTFS mount point. + +Task-number: QTBUG-20431 +Change-Id: Ie2e15212e1a7ca7fa0067b7ca8857e243e42c21a +Reviewed-by: Thomas Hartmann +--- + src/corelib/io/qfilesystemengine_win.cpp | 10 ++++++---- + src/corelib/io/qfilesystemiterator_win.cpp | 2 +- + src/corelib/io/qfilesystemmetadata_p.h | 23 +++++++++++++++++------ + 3 files changed, 24 insertions(+), 11 deletions(-) + +diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp +index 221cea3..fa56d7c 100644 +--- a/src/corelib/io/qfilesystemengine_win.cpp ++++ b/src/corelib/io/qfilesystemengine_win.cpp +@@ -914,9 +914,10 @@ static bool tryFindFallback(const QFileSystemEntry &fname, QFileSystemMetaData & + int errorCode = GetLastError(); + if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { + WIN32_FIND_DATA findData; +- if (getFindData(fname.nativeFilePath(), findData) ++ const QString nativeFilePath = fname.nativeFilePath(); ++ if (getFindData(nativeFilePath, findData) + && findData.dwFileAttributes != INVALID_FILE_ATTRIBUTES) { +- data.fillFromFindData(findData, true, fname.isDriveRoot()); ++ data.fillFromFindData(findData, true, fname.isDriveRoot(), nativeFilePath); + filledData = true; + } + } +@@ -1031,8 +1032,9 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM + data.knownFlagsMask |= QFileSystemMetaData::LinkType; + if (data.fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) { + WIN32_FIND_DATA findData; +- if (getFindData(fname.nativeFilePath(), findData)) +- data.fillFromFindData(findData, true); ++ const QString nativeFilePath = fname.nativeFilePath(); ++ if (getFindData(nativeFilePath, findData)) ++ data.fillFromFindData(findData, true, false, nativeFilePath); + } + } + data.knownFlagsMask |= what; +diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp +index 6351a35..6fa22ef 100644 +--- a/src/corelib/io/qfilesystemiterator_win.cpp ++++ b/src/corelib/io/qfilesystemiterator_win.cpp +@@ -138,7 +138,7 @@ bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaDa + fileEntry = QFileSystemEntry(dirPath + fileName); + metaData = QFileSystemMetaData(); + if (!fileName.endsWith(QLatin1String(".lnk"))) { +- metaData.fillFromFindData(findData, true); ++ metaData.fillFromFindData(findData, true, false, fileEntry.nativeFilePath()); + } + return true; + } +diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h +index da9576b..266111e 100644 +--- a/src/corelib/io/qfilesystemmetadata_p.h ++++ b/src/corelib/io/qfilesystemmetadata_p.h +@@ -211,7 +211,7 @@ public: + + #if defined(Q_OS_WIN) + inline void fillFromFileAttribute(DWORD fileAttribute, bool isDriveRoot = false); +- inline void fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType = false, bool isDriveRoot = false); ++ inline void fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType = false, bool isDriveRoot = false, const QString &nativeFullFilePath = QString()); + # ifndef Q_OS_WINRT + inline void fillFromFindInfo(BY_HANDLE_FILE_INFORMATION &fileInfo); + # endif +@@ -308,7 +308,7 @@ inline void QFileSystemMetaData::fillFromFileAttribute(DWORD fileAttribute,bool + knownFlagsMask |= FileType | DirectoryType | HiddenAttribute | ExistsAttribute; + } + +-inline void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType, bool isDriveRoot) ++inline void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType, bool isDriveRoot, const QString &nativeFullFilePath) + { + fillFromFileAttribute(findData.dwFileAttributes, isDriveRoot); + creationTime_ = findData.ftCreationTime; +@@ -326,12 +326,23 @@ inline void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, boo + knownFlagsMask |= LinkType; + entryFlags &= ~LinkType; + #if !defined(Q_OS_WINCE) +- if ((fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) +- && (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK)) { +- entryFlags |= LinkType; ++ if (fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) { ++ if (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK) { ++ entryFlags |= LinkType; ++ } else if (findData.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT) { ++ // Junctions and mount points are implemented as NTFS reparse points. ++ // But mount points cannot be treated as symlinks because they might ++ // not have a link target. ++ wchar_t buf[50]; ++ QString path = nativeFullFilePath; ++ if (!path.endsWith(QLatin1Char('\\'))) ++ path.append(QLatin1Char('\\')); ++ BOOL isMountPoint = GetVolumeNameForVolumeMountPoint(reinterpret_cast(path.utf16()), buf, sizeof(buf) / sizeof(wchar_t)); ++ if (!isMountPoint) ++ entryFlags |= LinkType; ++ } + } + #endif +- + } + } + +-- +2.3.4 + diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 0e07854526..05b14ff3cd 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.1 pkgver=${_ver_base//-/} -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -178,7 +178,8 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch 0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch - 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch) + 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch + 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch) md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' @@ -221,7 +222,8 @@ md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' '92fb1954fe3ab91d99a09c7f8a878218' 'ab2cac300aa7a908ea8840649f0b51fc' '7d8093f2b8b0347304159c0e5836f3aa' - '51016015352313cdd749ae1ff3e14614') + '51016015352313cdd749ae1ff3e14614' + '9bc9c1177134d0f2fd782db3f394a318') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -338,6 +340,10 @@ prepare() { patch -p1 -i ${srcdir}/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch patch -p1 -i ${srcdir}/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch + pushd qtbase > /dev/null + patch -p1 -i ${srcdir}/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch + popd > /dev/null + # See: https://bugreports.qt-project.org/browse/QTBUG-37902 # _ver_num=${_ver_base%%-*} # sed -i "s/^MODULE_VERSION = .*$/MODULE_VERSION = ${_ver_num}/g" qtenginio/.qmake.conf From 889a8aea922bc89ae7f445bbfc9c8bd48a01507b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 31 Mar 2015 20:50:19 +0100 Subject: [PATCH 0777/2060] qt-installer-framework: Don't remove files that symlink outside path This is the second (and last) part of a fix for: https://github.com/msys2/msys2.github.io/issues/4 --- ...move-files-that-live-outside-of-path.patch | 49 +++++++++++++++++++ mingw-w64-qt-installer-framework/PKGBUILD | 17 +++++-- 2 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-qt-installer-framework/0006-Don-t-remove-files-that-live-outside-of-path.patch diff --git a/mingw-w64-qt-installer-framework/0006-Don-t-remove-files-that-live-outside-of-path.patch b/mingw-w64-qt-installer-framework/0006-Don-t-remove-files-that-live-outside-of-path.patch new file mode 100644 index 0000000000..4fff25a9ab --- /dev/null +++ b/mingw-w64-qt-installer-framework/0006-Don-t-remove-files-that-live-outside-of-path.patch @@ -0,0 +1,49 @@ +From f743afd0ed931648ba1a407b1dd6ec7740bf0dce Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 30 Mar 2015 13:46:51 +0100 +Subject: [PATCH] Don't remove files that live outside of path + +If a file is symlinked outside of path in QInstaller::removeFiles +then it gets removed regardless. This will cause e.g. users' HOME +directories to get removed on MSYS2. +--- + src/libs/installer/fileutils.cpp | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/src/libs/installer/fileutils.cpp b/src/libs/installer/fileutils.cpp +index 5556e9e..5498425 100644 +--- a/src/libs/installer/fileutils.cpp ++++ b/src/libs/installer/fileutils.cpp +@@ -179,7 +179,29 @@ void QInstaller::removeFiles(const QString &path, bool ignoreErrors) + const QFileInfoList entries = QDir(path).entryInfoList(QDir::AllEntries | QDir::Hidden); + foreach (const QFileInfo &fi, entries) { + if (fi.isSymLink() || fi.isFile()) { ++ // Don't remove symlinks that point outside of path ++ // as this can delete for example, the HOME folder. ++ QFileInfo toRoot(fi); ++ QString prevToRoot; ++ bool symLinksOutsidePath = false; ++ do ++ { ++ if (toRoot.isSymLink()) { ++ QString symLinkTarget = toRoot.symLinkTarget(); ++ if (symLinkTarget.indexOf(path) != 0) { ++ symLinksOutsidePath = true; ++ break; ++ } ++ } ++ prevToRoot = toRoot.absoluteFilePath(); ++ toRoot = QFileInfo(toRoot.dir().absolutePath()); ++ } while (toRoot.exists() && toRoot.dir().absolutePath() != prevToRoot); + QFile f(fi.filePath()); ++ if (symLinksOutsidePath) { ++ qDebug() << "Not removing " << f.fileName() ++ << " as it symlinks outside path " << path; ++ continue; ++ } + if (!f.remove()) { + const QString errorMessage = QCoreApplication::translate("QInstaller", + "Could not remove file %1: %2").arg(f.fileName(), f.errorString()); +-- +2.3.4 + diff --git a/mingw-w64-qt-installer-framework/PKGBUILD b/mingw-w64-qt-installer-framework/PKGBUILD index 964488839f..24d4a6de38 100644 --- a/mingw-w64-qt-installer-framework/PKGBUILD +++ b/mingw-w64-qt-installer-framework/PKGBUILD @@ -17,12 +17,14 @@ source=("${_realname}"::"git://gitorious.org/${_realname}/${_realname}.git" "0002-add-installation-stuff-to-pro-files.patch" "0003-add-recursive-option-to-rmdir-operation.patch" "0004-add-dirExists-fuction.patch" - "0005-Fix-RunProgram-variable-substitution.patch") + "0005-Fix-RunProgram-variable-substitution.patch" + "0006-Don-t-remove-files-that-live-outside-of-path.patch") md5sums=('SKIP' '614046f9d32cf592c98856c195bbbba6' 'd4ca5e1b2a30a26eaf37d69c24444587' '61d67ae4eee1a326fad6c0f8d2d33b7a' - 'fea0554f56d3a1b99cffc350c3f7709b') + 'fea0554f56d3a1b99cffc350c3f7709b' + 'f06b88ea442426651bfaf5a8967f63cc') pkgver() { cd "$srcdir"/${_realname} @@ -36,21 +38,28 @@ prepare() { git am "${srcdir}"/0004-add-dirExists-fuction.patch # Apply patch from https://bugreports.qt-project.org/browse/QTIFW-397 git am "${srcdir}"/0005-Fix-RunProgram-variable-substitution.patch + # This requires ../mingw-w64-qt5-static/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch + # to fix the problem for junction points. Together they fix: + # https://github.com/msys2/msys2.github.io/issues/4 + git am "${srcdir}"/0006-Don-t-remove-files-that-live-outside-of-path.patch } build() { local _config - cd "${srcdir}"/${_realname} + cd "${srcdir}" + [ -d build-${CARCH} ] && rm -rf build-${CARCH} + mv ${_realname} build-${CARCH} if check_option "debug" "n"; then _config="release" else _config="debug" fi + cd build-${CARCH} ${MINGW_PREFIX}/qt5-static/bin/qmake.exe installerfw.pro CONFIG+="${_config}" CONFIG+=no_testcase_installs make } package() { - cd "${srcdir}"/${_realname} + cd "${srcdir}"/build-${CARCH} make INSTALL_ROOT="${pkgdir}${MINGW_PREFIX}" install } From 98fcb195089b76a7fd2c58e4c25f0610366c4f89 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 1 Apr 2015 12:21:23 +0300 Subject: [PATCH 0778/2060] qt-ifw: Fix URL. --- mingw-w64-qt-installer-framework/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-qt-installer-framework/PKGBUILD b/mingw-w64-qt-installer-framework/PKGBUILD index 24d4a6de38..0c71b3f7ba 100644 --- a/mingw-w64-qt-installer-framework/PKGBUILD +++ b/mingw-w64-qt-installer-framework/PKGBUILD @@ -3,7 +3,7 @@ _realname=installer-framework pkgname="${MINGW_PACKAGE_PREFIX}-qt-${_realname}-git" pkgdesc="The Qt Installer Framework used for the Qt SDK installer" -pkgver=r2504.c945bbd +pkgver=r2630.ce703ed pkgrel=1 arch=('any') url='http://qt-project.org/' @@ -13,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-qt5-static" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-make" "git") options=('strip' 'staticlibs') #options=('!strip' 'debug' 'staticlibs') -source=("${_realname}"::"git://gitorious.org/${_realname}/${_realname}.git" +source=("${_realname}"::"git+https://github.com/qtproject/${_realname}.git" "0002-add-installation-stuff-to-pro-files.patch" "0003-add-recursive-option-to-rmdir-operation.patch" "0004-add-dirExists-fuction.patch" @@ -24,7 +24,7 @@ md5sums=('SKIP' 'd4ca5e1b2a30a26eaf37d69c24444587' '61d67ae4eee1a326fad6c0f8d2d33b7a' 'fea0554f56d3a1b99cffc350c3f7709b' - 'f06b88ea442426651bfaf5a8967f63cc') + 'bce0847b5d5438fcf934149646ec8ea5') pkgver() { cd "$srcdir"/${_realname} From cd0003d9903b73ce3287b7ebef42fd5134e98d9e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 1 Apr 2015 12:27:34 +0100 Subject: [PATCH 0779/2060] qt-installer-framework: Refresh patches --- ...-recursive-option-to-rmdir-operation.patch | 38 +++++++++---------- ...Fix-RunProgram-variable-substitution.patch | 12 +++--- mingw-w64-qt-installer-framework/PKGBUILD | 4 +- 3 files changed, 26 insertions(+), 28 deletions(-) diff --git a/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch b/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch index 6b974cdab0..399abb748e 100644 --- a/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch +++ b/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch @@ -1,41 +1,39 @@ -From 5e9f73436fdc118b714236c947f3a40c40bd0c55 Mon Sep 17 00:00:00 2001 +From 23f5bd1e920ce1e71faa6064c27104bfd192af2c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 7 May 2014 17:09:33 +0100 -Subject: [PATCH 3/5] add recursive option to rmdir operation +Subject: [PATCH 1/4] add recursive option to rmdir operation --- - src/libs/kdtools/kdupdaterupdateoperations.cpp | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) + src/libs/kdtools/kdupdaterupdateoperations.cpp | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libs/kdtools/kdupdaterupdateoperations.cpp b/src/libs/kdtools/kdupdaterupdateoperations.cpp -index be123fe..ba8376c 100644 +index 90dbc7d..45cec27 100644 --- a/src/libs/kdtools/kdupdaterupdateoperations.cpp +++ b/src/libs/kdtools/kdupdaterupdateoperations.cpp -@@ -546,9 +546,9 @@ bool RmdirOperation::performOperation() +@@ -525,7 +525,8 @@ void RmdirOperation::backup() + bool RmdirOperation::performOperation() { // Requires only one parameter. That is the name of the file to remove. - const QStringList args = this->arguments(); -- if (args.count() != 1) { -+ if (args.count() < 1 || args.count() > 2) { - setError(InvalidArguments); -- setErrorString(tr("Invalid arguments: %1 arguments given, 1 expected.").arg(args.count())); -+ setErrorString(tr("Invalid arguments: %1 arguments given, 1 or 2 expected.").arg(args.count())); +- if (!checkArgumentCount(1)) ++ // A second optional parameter of true indicates recursive deletion. ++ if (!checkArgumentCount(1) && !checkArgumentCount(2)) + return false; + + const QString firstArg = arguments().at(0); +@@ -536,8 +537,11 @@ bool RmdirOperation::performOperation() return false; } -@@ -559,8 +559,11 @@ bool RmdirOperation::performOperation() - return false; - } - -+ bool isRecursive = (args.count() == 2 && args.last() == QLatin1String("true")) ? true : false; ++ bool isRecursive = (arguments().count() == 2 && arguments().last() == QLatin1String("true")) ? true : false; + errno = 0; -- const bool removed = dir.rmdir(args.first()); +- const bool removed = dir.rmdir(firstArg); + const bool removed = isRecursive ? dir.removeRecursively() -+ : dir.rmdir(args.first()); ++ : dir.rmdir(firstArg); setValue(QLatin1String("removed"), removed); if (!removed) { setError(UserDefinedError); -- -2.0.0 +2.3.4 diff --git a/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch b/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch index 5041e66b4f..3bf7dcd4ba 100644 --- a/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch +++ b/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch @@ -1,7 +1,7 @@ -From 5df843efbc4bb1a6529e9a941a6f44d36ba7978f Mon Sep 17 00:00:00 2001 +From dd786f77b8db729128287c908cf7c35b482ade2c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 16 Jun 2014 20:32:48 +0100 -Subject: [PATCH 5/5] Fix RunProgram variable substitution +Subject: [PATCH] Fix RunProgram variable substitution Patch from https://bugreports.qt-project.org/browse/QTIFW-397 Using @TargetDir@/blah.exe would use only the @@ -11,11 +11,11 @@ default value of TargetDir, and ignored any user modification. 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp -index 5a7ed98..c2c70e3 100644 +index 6c4fcb5..d2d9eb4 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp -@@ -2436,8 +2436,9 @@ void FinishedPage::leaving() - +@@ -3019,8 +3019,9 @@ void FinishedPage::leaving() + */ void FinishedPage::handleFinishClicked() { + // Applied patch from https://bugreports.qt-project.org/browse/QTIFW-397 @@ -26,5 +26,5 @@ index 5a7ed98..c2c70e3 100644 const QStringList args = packageManagerCore()->replaceVariables(packageManagerCore() ->values(scRunProgramArguments)); -- -2.0.0 +2.3.4 diff --git a/mingw-w64-qt-installer-framework/PKGBUILD b/mingw-w64-qt-installer-framework/PKGBUILD index 0c71b3f7ba..1ecce7e434 100644 --- a/mingw-w64-qt-installer-framework/PKGBUILD +++ b/mingw-w64-qt-installer-framework/PKGBUILD @@ -21,9 +21,9 @@ source=("${_realname}"::"git+https://github.com/qtproject/${_realname}.git" "0006-Don-t-remove-files-that-live-outside-of-path.patch") md5sums=('SKIP' '614046f9d32cf592c98856c195bbbba6' - 'd4ca5e1b2a30a26eaf37d69c24444587' + '7b62c737eeac2ff27c00bf88be66c166' '61d67ae4eee1a326fad6c0f8d2d33b7a' - 'fea0554f56d3a1b99cffc350c3f7709b' + '60256394727e6030eec58b2f2b0cf292' 'bce0847b5d5438fcf934149646ec8ea5') pkgver() { From 375848ff5b61ddf0aec8b206f614607b7144ac9e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 1 Apr 2015 15:33:04 +0100 Subject: [PATCH 0780/2060] qt-installer-framework: Link qmltooling again Since it's used since we don't define QT_QML_NO_DEBUGGER when building qt5-static (nor do we want to). --- ...vent-qmake-linking-qmltooling-plugin.patch | 46 +++++++++++++++++++ mingw-w64-qt-installer-framework/PKGBUILD | 7 ++- 2 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-qt-installer-framework/0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch diff --git a/mingw-w64-qt-installer-framework/0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch b/mingw-w64-qt-installer-framework/0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch new file mode 100644 index 0000000000..99d208b0dd --- /dev/null +++ b/mingw-w64-qt-installer-framework/0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch @@ -0,0 +1,46 @@ +From aa36062b4aff3fae4ed9204103e2f84183262e77 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 1 Apr 2015 15:01:08 +0100 +Subject: [PATCH] Don't prevent qmake linking qmltooling plugin + +Since it seems to be necessary. For now, I've removed the +deliberate exclusion for win32 only, but I can't see why +qmltooling wouldn't be necessary on all platforms. If Qt5 +had been built with QT_QML_NO_DEBUGGER defined then this +wouldn't have been an issue, but being able to debug QML +isn't something I'd like to disable. +--- + src/sdk/sdk.pro | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/src/sdk/sdk.pro b/src/sdk/sdk.pro +index 68fb234..1285109 100644 +--- a/src/sdk/sdk.pro ++++ b/src/sdk/sdk.pro +@@ -18,7 +18,22 @@ CONFIG(static, static|shared) { + # prevent qmake from automatically linking in imageformats, bearer, qmltooling plugins + QTPLUGIN.imageformats = - + QTPLUGIN.bearer = - +- QTPLUGIN.qmltooling = - ++ # .. except link qmltooling on Windows ++ # though most likely all plaforms need ++ # this since without it the link fails ++ # g++ -Wl,-s -static -Wl,-subsystem,windows -mthreads -o ../../bin/installerbase.exe object_script.installerbase.Release \ ++ # -lmingw32 -LC:/msys64/mingw64/qt5-static/lib -lqtmain -LC:/repo/mingw-w64-qt-installer-framework/src/build-x86_64/lib \ ++ # -linstaller -l7z -lQt5WinExtras -lQt5UiTools -lQt5Widgets -lQt5Concurrent -lQt5Qml -lQt5Network -ldnsapi -lssl -lcrypto -lcrypt32 -lQt5Xml \ ++ # -LC:/msys64/mingw64/qt5-static/share/qt5/plugins/platforms -lqwindows -lwinspool -lshlwapi -lQt5PlatformSupport -lQt5Gui \ ++ # -lcomdlg32 -loleaut32 -limm32 -lwinmm -lglu32 -lopengl32 -lgdi32 -lqtharfbuzzng -lQt5Core -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lmpr ++ # C:/msys64/mingw64/qt5-static/lib\libQt5Qml.a(qqmldebugserver.o):qqmldebugserver.cpp:(.text+0x4f95): undefined reference to `QTcpServerConnection::QTcpServerConnection()' ++ # .. the above link command line needs the following appended to it to work: ++ # -LC:/msys64/mingw64/qt5-static/share/qt5/plugins/qmltooling qmldbg_tcp ++ # From qt5: qtdeclarative/src/qml/debugger/qqmldebugserver.cpp:289 ++ # if defined(QT_STATIC) && ! defined(QT_QML_NO_DEBUGGER) ++ # .. = new QTcpServerConnection; .. ++ # .. so maybe we should look into defining QT_QML_NO_DEBUGGER, but I think I'd rather be able to debug QML than not. ++ !win32:QTPLUGIN.qmltooling = - + } + + DESTDIR = $$IFW_APP_PATH +-- +2.3.4 + diff --git a/mingw-w64-qt-installer-framework/PKGBUILD b/mingw-w64-qt-installer-framework/PKGBUILD index 1ecce7e434..be618394fe 100644 --- a/mingw-w64-qt-installer-framework/PKGBUILD +++ b/mingw-w64-qt-installer-framework/PKGBUILD @@ -18,13 +18,15 @@ source=("${_realname}"::"git+https://github.com/qtproject/${_realname}.git" "0003-add-recursive-option-to-rmdir-operation.patch" "0004-add-dirExists-fuction.patch" "0005-Fix-RunProgram-variable-substitution.patch" - "0006-Don-t-remove-files-that-live-outside-of-path.patch") + "0006-Don-t-remove-files-that-live-outside-of-path.patch" + "0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch") md5sums=('SKIP' '614046f9d32cf592c98856c195bbbba6' '7b62c737eeac2ff27c00bf88be66c166' '61d67ae4eee1a326fad6c0f8d2d33b7a' '60256394727e6030eec58b2f2b0cf292' - 'bce0847b5d5438fcf934149646ec8ea5') + 'bce0847b5d5438fcf934149646ec8ea5' + '648c0235e6af8b3787ec1f10c0cbc43d') pkgver() { cd "$srcdir"/${_realname} @@ -42,6 +44,7 @@ prepare() { # to fix the problem for junction points. Together they fix: # https://github.com/msys2/msys2.github.io/issues/4 git am "${srcdir}"/0006-Don-t-remove-files-that-live-outside-of-path.patch + git am "${srcdir}"/0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch } build() { From 457bbfac8260d5df56b4d2c7518a2ed0302783ab Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 1 Apr 2015 21:35:01 +0200 Subject: [PATCH 0781/2060] totem-pl-parser: new package. --- mingw-w64-totem-pl-parser/001-win.patch | 112 ++++++++++++++++++++++++ mingw-w64-totem-pl-parser/PKGBUILD | 56 ++++++++++++ 2 files changed, 168 insertions(+) create mode 100644 mingw-w64-totem-pl-parser/001-win.patch create mode 100644 mingw-w64-totem-pl-parser/PKGBUILD diff --git a/mingw-w64-totem-pl-parser/001-win.patch b/mingw-w64-totem-pl-parser/001-win.patch new file mode 100644 index 0000000000..94b017f820 --- /dev/null +++ b/mingw-w64-totem-pl-parser/001-win.patch @@ -0,0 +1,112 @@ +--- ./m4/intltool.m4.orig 2014-07-23 14:02:09.000000000 +0200 ++++ ./m4/intltool.m4 2015-04-01 21:14:20.543805300 +0200 +@@ -155,31 +155,6 @@ + # Substitute ALL_LINGUAS so we can use it in po/Makefile + AC_SUBST(ALL_LINGUAS) + +-# Set DATADIRNAME correctly if it is not set yet +-# (copied from glib-gettext.m4) +-if test -z "$DATADIRNAME"; then +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[]], +- [[extern int _nl_msg_cat_cntr; +- return _nl_msg_cat_cntr]])], +- [DATADIRNAME=share], +- [case $host in +- *-*-solaris*) +- dnl On Solaris, if bind_textdomain_codeset is in libc, +- dnl GNU format message catalog is always supported, +- dnl since both are added to the libc all together. +- dnl Hence, we'd like to go with DATADIRNAME=share +- dnl in this case. +- AC_CHECK_FUNC(bind_textdomain_codeset, +- [DATADIRNAME=share], [DATADIRNAME=lib]) +- ;; +- *) +- [DATADIRNAME=lib] +- ;; +- esac]) +-fi +-AC_SUBST(DATADIRNAME) +- + IT_PO_SUBDIR([po]) + + ]) +--- ./plparse/Makefile.am.orig 2014-01-13 10:17:47.000000000 +0100 ++++ ./plparse/Makefile.am 2015-04-01 21:14:20.570806300 +0200 +@@ -194,6 +194,7 @@ + INTROSPECTION_GIRS = + INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --add-include-path=$(builddir) --warn-all + INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + if HAVE_INTROSPECTION + introspection_sources = \ +--- ./plparse/plparser.symbols.orig 2011-09-18 12:33:29.000000000 +0200 ++++ ./plparse/plparser.symbols 2015-04-01 21:14:20.578806900 +0200 +@@ -4,7 +4,6 @@ + totem_cd_get_human_readable_name + totem_cd_has_medium + totem_cd_mrl_from_type +-totem_disc_media_type_get_type + totem_disc_media_type_quark + totem_pl_parser_add_ignored_mimetype + totem_pl_parser_add_ignored_scheme +@@ -14,7 +13,6 @@ + totem_pl_parser_error_get_type + totem_pl_parser_error_quark + totem_pl_parser_get_type +-totemplparser_marshal_VOID__STRING_STRING_STRING + totem_pl_parser_new + totem_pl_parser_parse + totem_pl_parser_parse_async +--- ./plparse/totem-pl-parser.c.orig 2015-02-17 15:27:48.000000000 +0100 ++++ ./plparse/totem-pl-parser.c 2015-04-01 21:16:17.484317500 +0200 +@@ -662,8 +662,14 @@ + static gpointer + totem_pl_parser_real_init_i18n (gpointer data) + { +- bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); ++ gchar *dir; ++ gchar *path; ++ dir = g_win32_get_package_installation_directory_of_module (NULL); ++ path = g_build_filename (dir, "share", "locale", NULL); ++ bindtextdomain (GETTEXT_PACKAGE, path); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); ++ g_free (path); ++ g_free (dir); + return NULL; + } + +--- ./po/Makefile.in.in.orig 2014-07-23 14:02:09.000000000 +0200 ++++ ./po/Makefile.in.in 2015-04-01 21:14:20.596808200 +0200 +@@ -33,8 +33,7 @@ + datadir = @datadir@ + datarootdir = @datarootdir@ + libdir = @libdir@ +-DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +107,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +141,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot diff --git a/mingw-w64-totem-pl-parser/PKGBUILD b/mingw-w64-totem-pl-parser/PKGBUILD new file mode 100644 index 0000000000..104c1c8fbd --- /dev/null +++ b/mingw-w64-totem-pl-parser/PKGBUILD @@ -0,0 +1,56 @@ +# Maintainer: Andrea Zagli + +_realname=totem-pl-parser +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.10.4 +pkgrel=1 +arch=('any') +pkgdesc="Simple GObject-based library to parse and save a host of playlist formats (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-libsoup" + "${MINGW_PACKAGE_PREFIX}-libarchive" + "${MINGW_PACKAGE_PREFIX}-libgcrypt") +makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "gtk-doc") +license=("LGPL 2") +url="http://www.gnome.org" +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('482353f8466b1cab06d99c0a112a4adc414bf43b9c8f3bd636570d20d1f4e265' + '30115c31fc0907eea7b71c57a586bee5c93ec1dac59a7778331fddc1416461d1') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -b -V simple -p1 -i ${srcdir}/001-win.patch + + autoreconf -f -i +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --disable-gmime-i-know-what-im-doing + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" +} From 528bf07be34b14e33380b11b0eb6551ef41ec5e9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 2 Apr 2015 20:05:49 +0300 Subject: [PATCH 0782/2060] blender: Update to 2.74 --- mingw-w64-blender/OSL_1_5-api.patch | 79 ------------------- mingw-w64-blender/PKGBUILD | 17 ++-- .../fix-mingw-w64-definitions.patch | 11 --- mingw-w64-blender/mingw-w64-cmake.patch | 71 ++++++++++------- mingw-w64-blender/osl-deprecate-api.patch | 11 --- 5 files changed, 50 insertions(+), 139 deletions(-) delete mode 100644 mingw-w64-blender/OSL_1_5-api.patch diff --git a/mingw-w64-blender/OSL_1_5-api.patch b/mingw-w64-blender/OSL_1_5-api.patch deleted file mode 100644 index 4655e55000..0000000000 --- a/mingw-w64-blender/OSL_1_5-api.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 01cebb6e91dce40772a1f9444a09eef7ba97ea7b Mon Sep 17 00:00:00 2001 -From: Thomas Dinges -Date: Wed, 28 Jan 2015 01:07:59 +0100 -Subject: [PATCH] OSL: Updates for OSL 1.5 API changes. - -* create() and destroy() are deprecated since OSL 1.5, use regular constructors / destructors. ---- - intern/cycles/render/osl.cpp | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp -index 7b22d20..45b4d28 100644 ---- a/intern/cycles/render/osl.cpp -+++ b/intern/cycles/render/osl.cpp -@@ -189,7 +189,7 @@ void OSLShaderManager::shading_system_init() - if(ss_shared_users == 0) { - services_shared = new OSLRenderServices(); - -- ss_shared = OSL::ShadingSystem::create(services_shared, ts_shared, &errhandler); -+ ss_shared = new OSL::ShadingSystem(services_shared, ts_shared, &errhandler); - ss_shared->attribute("lockgeom", 1); - ss_shared->attribute("commonspace", "world"); - ss_shared->attribute("searchpath:shader", path_get("shader")); -@@ -238,7 +238,7 @@ void OSLShaderManager::shading_system_free() - ss_shared_users--; - - if(ss_shared_users == 0) { -- OSL::ShadingSystem::destroy(ss_shared); -+ delete ss_shared; - ss_shared = NULL; - - delete services_shared; -@@ -270,7 +270,7 @@ bool OSLShaderManager::osl_compile(const string& inputfile, const string& output - stdosl_path = path_get("shader/stdosl.h"); - - /* compile */ -- OSL::OSLCompiler *compiler = OSL::OSLCompiler::create(); -+ OSL::OSLCompiler *compiler = new OSL::OSLCompiler(); - bool ok = compiler->compile(string_view(inputfile), options, string_view(stdosl_path)); - delete compiler; - --- -2.3.0 - -From f8c650aa7a8fd72a85f9bb1297b02510b089702a Mon Sep 17 00:00:00 2001 -From: Sergey Sharybin -Date: Thu, 5 Feb 2015 12:06:24 +0500 -Subject: [PATCH] Fix T43561: Wrong include path to standard OSL headers - -Issue was in fact only visible in certain circumstances: - -- OSL was compiled with Boost Wave -- or system's cpp didn't handle space between -I and path - -Now made it so both wave and cpp code paths are always happy. - -Original patch from Shane Ambler with own modifications to -mimic what variable holds on more verbose. ---- - intern/cycles/render/osl.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp -index 45b4d28..9d6f412 100644 ---- a/intern/cycles/render/osl.cpp -+++ b/intern/cycles/render/osl.cpp -@@ -264,8 +264,8 @@ bool OSLShaderManager::osl_compile(const string& inputfile, const string& output - options.push_back(outputfile); - - /* specify standard include path */ -- options.push_back("-I"); -- options.push_back(shader_path); -+ string include_path_arg = string("-I") + shader_path; -+ options.push_back(include_path_arg); - - stdosl_path = path_get("shader/stdosl.h"); - --- -2.3.0 diff --git a/mingw-w64-blender/PKGBUILD b/mingw-w64-blender/PKGBUILD index a792c76385..d019be5c4b 100644 --- a/mingw-w64-blender/PKGBUILD +++ b/mingw-w64-blender/PKGBUILD @@ -10,8 +10,8 @@ _realname=blender pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_basever=2.73 -_minorchar=a +_basever=2.74 +_minorchar= [[ -z ${_minorchar} ]] && { pkgver=${_basever} } || { @@ -55,19 +55,17 @@ source=(#http://mirror.cs.umn.edu/blender.org/source/$_realname-${_basever}${_mi "mingw-DEBUG-libmv-avoid-too-many-sections.patch" "mingw-DEBUG-dont-suffix-libs-with-_d.patch" "mingw-use-X11-like-path-layout.patch" - "osl-deprecate-api.patch" - "OSL_1_5-api.patch") -md5sums=('ea3f3ffe6fe03775c35d69dab0aeece9' - 'e32610ddacfbc60c5677e31dec227c34' - 'e8b4320882752c68eeba9b57f7951d1a' + "osl-deprecate-api.patch") +md5sums=('488151953d69d63bedd8ed59f92daf3b' + 'c3426eb608350bdedb89c531b72cff36' + '545eaf9f3268b96d1cb2764c51ec063d' '1969914e11d0a4f74dbfeddad742c9da' 'b11e3fe76c4433abb53c12e723dfbe4f' '9c5a4e230d1c9081096d53d206cc03b4' 'e8dbeac11a43dc307fe826cd41100b8e' '4d104bac37e549eb32cffd473550412e' 'bdac7b47c5886bbcede99516a67de0c2' - 'f18097fb6ee4aaaeeabbefb0be9c8e92' - '240f6599dbb694d882197d27b78eb98c') + '407dd78ee33dd9ab1212ba93af396d6c') prepare() { cd "$srcdir"/$_realname-${_basever}${_minorchar} @@ -80,7 +78,6 @@ prepare() { patch -p1 -i "${srcdir}"/mingw-DEBUG-dont-suffix-libs-with-_d.patch patch -p1 -i "${srcdir}"/mingw-use-X11-like-path-layout.patch patch -p1 -i "${srcdir}"/osl-deprecate-api.patch - patch -p1 -i "${srcdir}"/OSL_1_5-api.patch } build() { diff --git a/mingw-w64-blender/fix-mingw-w64-definitions.patch b/mingw-w64-blender/fix-mingw-w64-definitions.patch index 1c6ac77e27..629e384343 100644 --- a/mingw-w64-blender/fix-mingw-w64-definitions.patch +++ b/mingw-w64-blender/fix-mingw-w64-definitions.patch @@ -213,14 +213,3 @@ diff -Naur blender/source/blender/blenlib/BLI_winstuff.h blender-pp/source/blend /* python uses HAVE_SSIZE_T */ # ifndef HAVE_SSIZE_T # define HAVE_SSIZE_T 1 -diff -Naur blender/source/blender/blenlib/intern/rand.c blender-pp/source/blender/blenlib/intern/rand.c ---- blender/source/blender/blenlib/intern/rand.c 2014-01-14 08:18:15.661000000 +0400 -+++ blender-pp/source/blender/blenlib/intern/rand.c 2014-01-14 07:08:38.456800000 +0400 -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - - #include "MEM_guardedalloc.h" - diff --git a/mingw-w64-blender/mingw-w64-cmake.patch b/mingw-w64-blender/mingw-w64-cmake.patch index 2c268d1dca..762f67fc19 100644 --- a/mingw-w64-blender/mingw-w64-cmake.patch +++ b/mingw-w64-blender/mingw-w64-cmake.patch @@ -1,6 +1,6 @@ --- blender-2.73/CMakeLists.txt.orig 2015-01-07 18:32:07.000000000 +0300 +++ blender-2.73/CMakeLists.txt 2015-01-10 20:57:50.362800000 +0300 -@@ -250,6 +250,8 @@ +@@ -251,6 +251,8 @@ if(UNIX AND NOT APPLE) option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" ON) option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON) @@ -9,7 +9,7 @@ else() # not an option for other OS's set(WITH_SYSTEM_GLEW OFF) -@@ -776,7 +778,7 @@ +@@ -781,7 +781,7 @@ endif() @@ -18,7 +18,7 @@ macro(find_package_wrapper) if(WITH_STATIC_LIBS) set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES}) -@@ -794,15 +796,29 @@ +@@ -799,15 +799,29 @@ find_package_wrapper(ZLIB REQUIRED) find_package_wrapper(Freetype REQUIRED) @@ -48,7 +48,7 @@ endif() if(WITH_IMAGE_OPENEXR) -@@ -873,7 +889,11 @@ +@@ -896,7 +896,11 @@ endif() if(WITH_CODEC_FFMPEG) @@ -60,7 +60,7 @@ set(FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries") mark_as_advanced(FFMPEG) -@@ -901,6 +921,9 @@ +@@ -928,6 +928,9 @@ if(OPENCOLLADA_FOUND) find_package_wrapper(XML2) find_package_wrapper(PCRE) @@ -70,7 +70,23 @@ else() set(WITH_OPENCOLLADA OFF) endif() -@@ -1061,8 +1084,13 @@ +@@ -940,11 +940,15 @@ + endif() + find_package_wrapper(OpenShadingLanguage) + if(OSL_FOUND) ++ if(MINGW) ++ list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} ${OSL_LIB_EXEC} ${OSL_LIB_QUERY}) ++ else() + if(${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6") + # Note: --whole-archive is needed to force loading of all symbols in liboslexec, + # otherwise LLVM is missing the osl_allocate_closure_component function + set(OSL_LIBRARIES ${OSL_OSLCOMP_LIBRARY} -Wl,--whole-archive ${OSL_OSLEXEC_LIBRARY} -Wl,--no-whole-archive ${OSL_OSLQUERY_LIBRARY}) + endif() ++ endif() + else() + message(STATUS "OSL not found, disabling it from Cycles") + set(WITH_CYCLES_OSL OFF) +@@ -1121,8 +1121,13 @@ endif() if(WITH_LLVM OR WITH_SDL_DYNLOAD) @@ -84,21 +100,7 @@ endif() if(WITH_CYCLES_OSL) -@@ -1073,9 +1101,13 @@ - find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib) - find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib) - find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib) -+ if(MINGW) -+ list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} ${OSL_LIB_EXEC} ${OSL_LIB_QUERY}) -+ else() - # Note: --whole-archive is needed to force loading of all symbols in liboslexec, - # otherwise LLVM is missing the osl_allocate_closure_component function - list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -Wl,--whole-archive ${OSL_LIB_EXEC} -Wl,--no-whole-archive ${OSL_LIB_QUERY}) -+ endif() - find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include) - find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin) - -@@ -1087,6 +1119,50 @@ +@@ -1130,6 +1130,50 @@ endif() endif() @@ -123,7 +125,7 @@ + else() + message(STATUS "Compiling with MinGW-w32.") + endif() -+ list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi) ++ list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi -ldbghelp) + + if(WITH_INPUT_IME) + list(APPEND PLATFORM_LINKLIBS imm32) @@ -149,7 +151,7 @@ # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm) -@@ -1140,12 +1216,12 @@ +@@ -1229,12 +1229,12 @@ set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel") endif() @@ -164,7 +166,7 @@ # needed for some MSVC installations set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO") -@@ -1488,234 +1564,6 @@ +@@ -1585,247 +1585,6 @@ # used in many places so include globally, like OpenGL blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}") @@ -182,7 +184,12 @@ - - if(WITH_MINGW64) - message(STATUS "Compiling for 64 bit with MinGW-w64.") -- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw64) +- execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) +- if(GCC_VERSION VERSION_GREATER 4.9 OR GCC_VERSION VERSION_EQUAL 4.9) +- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw64_gcc49) +- else() +- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw64) +- endif() - else() - message(STATUS "Compiling for 32 bit with MinGW-w32.") - set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw32) @@ -192,7 +199,7 @@ - endif() - endif() - -- list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi) +- list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi -ldbghelp) - - if(WITH_INPUT_IME) - list(APPEND PLATFORM_LINKLIBS -limm32) @@ -351,11 +358,12 @@ - set(OPENIMAGEIO_LIBRARIES OpenImageIO) - set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) - set(OPENIMAGEIO_DEFINITIONS "") +- set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe") - endif() - - if(WITH_LLVM) -- set(LLVM_DIRECTORY ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation") -- set(LLVM_LIBPATH ${LLVM_DIRECTORY}/lib) +- set(LLVM_ROOT_DIR ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation") +- set(LLVM_LIBPATH ${LLVM_ROOT_DIR}/lib) - # Explicitly set llvm lib order. - #---- WARNING ON GCC ORDER OF LIBS IS IMPORTANT, DO NOT CHANGE! --------- - set(LLVM_LIBRARY LLVMSelectionDAG LLVMCodeGen LLVMScalarOpts LLVMAnalysis LLVMArchive @@ -388,6 +396,13 @@ - set(OPENCOLORIO_DEFINITIONS) - endif() - +- if(WITH_SDL) +- set(SDL ${LIBDIR}/sdl) +- set(SDL_INCLUDE_DIR ${SDL}/include) +- set(SDL_LIBRARY SDL) +- set(SDL_LIBPATH ${SDL}/lib) +- endif() +- - set(PLATFORM_LINKFLAGS "-Xlinker --stack=2097152") - - ## DISABLE - causes linking errors diff --git a/mingw-w64-blender/osl-deprecate-api.patch b/mingw-w64-blender/osl-deprecate-api.patch index 7e44167769..ff8d1edd6e 100644 --- a/mingw-w64-blender/osl-deprecate-api.patch +++ b/mingw-w64-blender/osl-deprecate-api.patch @@ -9,14 +9,3 @@ } void OSLShader::register_closures(OSLShadingSystem *ss_) ---- blender-2.73/intern/cycles/render/osl.cpp.orig 2014-07-28 22:50:06.466400000 +0400 -+++ blender-2.73/intern/cycles/render/osl.cpp 2014-07-28 22:50:06.466400000 +0400 -@@ -248,7 +248,7 @@ - - bool OSLShaderManager::osl_compile(const string& inputfile, const string& outputfile) - { -- vector options; -+ vector options; - string stdosl_path; - string shader_path = path_get("shader"); - From 002067adc7b4b1901cf723a8de4d2ba2e06f3f6e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 2 Apr 2015 20:06:10 +0300 Subject: [PATCH 0783/2060] openblas: Update to 0.2.14 --- mingw-w64-openblas/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-openblas/PKGBUILD b/mingw-w64-openblas/PKGBUILD index 5a2dbbc3e5..03593646fd 100644 --- a/mingw-w64-openblas/PKGBUILD +++ b/mingw-w64-openblas/PKGBUILD @@ -3,7 +3,7 @@ _realname=OpenBLAS pkgname="${MINGW_PACKAGE_PREFIX}-openblas" -pkgver=0.2.13 +pkgver=0.2.14 pkgrel=1 pkgdesc="An optimized BLAS library based on GotoBLAS2 1.13 BSD, providing optimized blas, lapack, and cblas. (mingw-w64)" arch=('any') @@ -22,7 +22,7 @@ makedepends=("perl" options=('!buildflags' '!makeflags' 'strip' 'staticlibs') source=(${_realname}-v${pkgver}.tar.gz::http://github.com/xianyi/OpenBLAS/archive/v${pkgver}.tar.gz) install=(${_realname}.install) -md5sums=('bba7b37b5a5b6674fda91dcb2faab145') +md5sums=('53cda7f420e1ba0ea55de536b24c9701') build() { cd "$srcdir/$_realname-$pkgver" From 7fec2429a57cfa57edb9ce3a117b0e55d5f98e70 Mon Sep 17 00:00:00 2001 From: David Macek Date: Fri, 3 Apr 2015 01:02:41 +0200 Subject: [PATCH 0784/2060] aria2: Update to 1.18.10 and fix issues Removed unnecessary dependencies - libgmp, libnettle and libgcrypt are not needed when compiling with OpenSSL - libexpat is not needed when compiling with libxml2 Removed patch that was upstreamed: 0001-libintl-vprintf Added patches: - mingw-inline: autoconf didn't correctly detect {asc,local}time_r, which caused conflicts with the in-tree replacements - windows-libintl: libintl flags were passed only to the final executable link command, but are needed for linking the library (this removes the need for augmenting LIBS from PKGBUILD) Now installing bash auto-completion script. Removed aria2{rpc,mon} scripts from share/doc, because they are present in bin. Probably fixes #245. --- mingw-w64-aria2/0001-libintl-vprintf.patch | 12 ----- mingw-w64-aria2/PKGBUILD | 39 +++++++------- mingw-w64-aria2/mingw-inline.patch | 62 ++++++++++++++++++++++ mingw-w64-aria2/windows-libintl.patch | 14 +++++ 4 files changed, 96 insertions(+), 31 deletions(-) delete mode 100644 mingw-w64-aria2/0001-libintl-vprintf.patch create mode 100644 mingw-w64-aria2/mingw-inline.patch create mode 100644 mingw-w64-aria2/windows-libintl.patch diff --git a/mingw-w64-aria2/0001-libintl-vprintf.patch b/mingw-w64-aria2/0001-libintl-vprintf.patch deleted file mode 100644 index 09a0c08956..0000000000 --- a/mingw-w64-aria2/0001-libintl-vprintf.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- src/OutputFile.h.orig 2014-09-11 18:24:10.000000000 +0200 -+++ src/OutputFile.h 2014-10-05 03:19:06.818377800 +0200 -@@ -40,6 +40,9 @@ - #include - #include - -+// include just to cancel libintl's #define vprintf libintl_vprintf -+#include -+ - namespace aria2 { - - class OutputFile { diff --git a/mingw-w64-aria2/PKGBUILD b/mingw-w64-aria2/PKGBUILD index e38867a4c4..0803c76691 100644 --- a/mingw-w64-aria2/PKGBUILD +++ b/mingw-w64-aria2/PKGBUILD @@ -2,8 +2,8 @@ _realname=aria2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.18.8 -pkgrel=2 +pkgver=1.18.10 +pkgrel=1 pkgdesc="A multi-protocol & multi-source, cross platform download utility (mingw-w64)" arch=('any') url="http://aria2.sourceforge.net/" @@ -15,36 +15,34 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-c-ares" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-sqlite3" - "${MINGW_PACKAGE_PREFIX}-gmp" - "${MINGW_PACKAGE_PREFIX}-nettle" "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-libgcrypt" "${MINGW_PACKAGE_PREFIX}-libiconv" - "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-libuv") optdepends=( "${MINGW_PACKAGE_PREFIX}-ruby: aria2rpc and aria2mon") -source=("http://sourceforge.net/projects/aria2/files/stable/$_realname-$pkgver/$_realname-$pkgver.tar.xz" - '0001-libintl-vprintf.patch') -md5sums=('3e03b8a6faf36fd76e6ffb58b5d6f6a5' - '67473d1562bce194b78e64f67adff650') +source=("http://sourceforge.net/projects/aria2/files/stable/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz" + 'mingw-inline.patch' + 'windows-libintl.patch') +md5sums=('cf46c9f19a175366536e9815326c3891' + '87cb82e55fb023021980e1c6994e42ff' + '25d25975420c8ca3c3dbffe3d89fa657') prepare() { - cd "${srcdir}"/${_realname}-${pkgver} - patch -p0 -i "${srcdir}"/0001-libintl-vprintf.patch + cd "${_realname}-${pkgver}" + patch -p1 -i "${srcdir}/mingw-inline.patch" + patch -p1 -i "${srcdir}/windows-libintl.patch" + autoreconf -fi } build() { - mkdir -p "${srcdir}"/build-${CARCH} - cd "${srcdir}"/build-${CARCH} - - # add missing library - export LIBS=-lintl + mkdir -p "build-${CARCH}" + cd "build-${CARCH}" # disabling gnutls and wintls so we will fall back to openssl ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ + --with-bashcompletiondir=${MINGW_PREFIX}/share/bash-completion/completions \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-static \ @@ -56,11 +54,14 @@ build() { } package() { - cd "${srcdir}"/build-${CARCH} + cd "build-${CARCH}" make DESTDIR="${pkgdir}" install - cd "${srcdir}"/${_realname}-${pkgver} + + cd "../${_realname}-${pkgver}" + install -Dm0755 doc/xmlrpc/aria2rpc "${pkgdir}"${MINGW_PREFIX}/bin/aria2rpc install -Dm0755 doc/xmlrpc/aria2mon "${pkgdir}"${MINGW_PREFIX}/bin/aria2mon echo '@ruby -- "%~dp0aria2rpc" %*' > "${pkgdir}"${MINGW_PREFIX}/bin/aria2rpc.cmd echo '@ruby -- "%~dp0aria2mon" %*' > "${pkgdir}"${MINGW_PREFIX}/bin/aria2mon.cmd + rm "$pkgdir"${MINGW_PREFIX}/share/doc/${_realname}/xmlrpc/aria2{rpc,mon} } diff --git a/mingw-w64-aria2/mingw-inline.patch b/mingw-w64-aria2/mingw-inline.patch new file mode 100644 index 0000000000..3be9077059 --- /dev/null +++ b/mingw-w64-aria2/mingw-inline.patch @@ -0,0 +1,62 @@ +--- aria2-1.18.10/configure.ac.orig 2015-02-23 15:34:01.000000000 +0100 ++++ aria2-1.18.10/configure.ac 2015-04-02 21:03:27.947473400 +0200 +@@ -29,9 +29,10 @@ + *mingw*) + win_build=yes + LIBS="$LIBS -lws2_32 -lwsock32 -lgdi32 -lwinmm -liphlpapi -lpsapi" +- # C++ headers defines __USE_MINGW_ANSI_STDIO to 1 unconditionally. +- # We have to use it as well nonetheless. +- CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $CPPFLAGS" ++ # Define _POSIX_C_SOURCE to 1. This makes {asc,local}time_r available ++ # from even without (un)helpful interference from , ++ # and also defines __USE_MINGW_ANSI_STDIO. ++ CPPFLAGS="-D_POSIX_C_SOURCE=1 $CPPFLAGS" + # Build with ASLR (dynamicbase) and NX compatiblity (nxcompat) + # Enable pie once upstream/binutils gets fixed to produce correct binaries with it. + LDFLAGS="$LDFLAGS -Wl,--dynamicbase -Wl,--nxcompat" +@@ -840,10 +840,32 @@ + [test "x$have_posix_fallocate" = "xyes" || test "x$have_fallocate" = "xyes" \ + || test "x$have_osx" = "xyes" || test "x$win_build" = "xyes"]) + ++AC_MSG_CHECKING([for asctime_r]) ++AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ++ #include ++ ]], [[ ++ struct tm r; char *c; ++ asctime_r(&r, c); ++ ]])], ++ [AM_CONDITIONAL([HAVE_ASCTIME_R], true) ++ AC_MSG_RESULT([yes]) ++ AC_DEFINE([HAVE_ASCTIME_R], [1], [Define to 1 if you have the `asctime_r' function or macro.])], ++ [AC_MSG_RESULT([no]) ++ AM_CONDITIONAL([HAVE_ASCTIME_R], false)]) ++ ++AC_MSG_CHECKING([for localtime_r]) ++AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ++ #include ++ ]], [[ ++ time_t t; struct tm r; ++ localtime_r(&t, &r); ++ ]])], ++ [AM_CONDITIONAL([HAVE_LOCALTIME_R], true) ++ AC_MSG_RESULT([yes]) ++ AC_DEFINE([HAVE_LOCALTIME_R], [1], [Define to 1 if you have the `localtime_r' function or macro.])], ++ [AC_MSG_RESULT([no]) ++ AM_CONDITIONAL([HAVE_LOCALTIME_R], false)]) + +-AC_CHECK_FUNCS([asctime_r], +- [AM_CONDITIONAL([HAVE_ASCTIME_R], true)], +- [AM_CONDITIONAL([HAVE_ASCTIME_R], false)]) + AC_CHECK_FUNCS([basename], + [AM_CONDITIONAL([HAVE_BASENAME], true)], + [AM_CONDITIONAL([HAVE_BASENAME], false)]) +@@ -855,9 +873,6 @@ + AC_CHECK_FUNCS([gettimeofday], + [AM_CONDITIONAL([HAVE_GETTIMEOFDAY], true)], + [AM_CONDITIONAL([HAVE_GETTIMEOFDAY], false)]) +-AC_CHECK_FUNCS([localtime_r], +- [AM_CONDITIONAL([HAVE_LOCALTIME_R], true)], +- [AM_CONDITIONAL([HAVE_LOCALTIME_R], false)]) + AC_CHECK_FUNCS([strptime], + [AM_CONDITIONAL([HAVE_STRPTIME], true)], + [AM_CONDITIONAL([HAVE_STRPTIME], false)]) diff --git a/mingw-w64-aria2/windows-libintl.patch b/mingw-w64-aria2/windows-libintl.patch new file mode 100644 index 0000000000..8f5738cef4 --- /dev/null +++ b/mingw-w64-aria2/windows-libintl.patch @@ -0,0 +1,14 @@ +--- aria2-1.18.10/src/Makefile.am.orig 2015-04-02 22:02:29.635051500 +0200 ++++ aria2-1.18.10/src/Makefile.am 2015-04-02 22:02:39.234635300 +0200 +@@ -713,9 +713,9 @@ + + libaria2_la_SOURCES = $(SRCS) + +-libaria2_la_LIBADD = @WSLAY_LIBS@ ++libaria2_la_LIBADD = @WSLAY_LIBS@ @LTLIBINTL@ + +-LDADD = libaria2.la @LIBINTL@ @ALLOCA@ #-lprofiler ++LDADD = libaria2.la @ALLOCA@ #-lprofiler + #aria2c_LDFLAGS = -pg + AM_CPPFLAGS = -Wall\ + -I$(top_srcdir)/lib -I$(top_srcdir)/intl\ From 94e9fb228e2ba231ab4a1daffd469401d4906e6a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 3 Apr 2015 09:12:57 +0300 Subject: [PATCH 0785/2060] xerces-c: Update to 3.1.2 --- mingw-w64-xerces-c/001-no-undefined.patch | 11 +++++++++++ mingw-w64-xerces-c/PKGBUILD | 22 +++++++++++++++------- 2 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-xerces-c/001-no-undefined.patch diff --git a/mingw-w64-xerces-c/001-no-undefined.patch b/mingw-w64-xerces-c/001-no-undefined.patch new file mode 100644 index 0000000000..a6e18fefb7 --- /dev/null +++ b/mingw-w64-xerces-c/001-no-undefined.patch @@ -0,0 +1,11 @@ +--- xerces-c-3.1.2/src/Makefile.am.orig 2015-04-03 09:08:15.128000000 +0300 ++++ xerces-c-3.1.2/src/Makefile.am 2015-04-03 09:08:23.848400000 +0300 +@@ -33,7 +33,7 @@ + # + AM_CPPFLAGS = + +-libxerces_c_la_LDFLAGS = -release ${INTERFACE_VER_D} ++libxerces_c_la_LDFLAGS = -release ${INTERFACE_VER_D} -no-undefined + + # This sets {install}/include as target for the headers + libxerces_c_ladir = ${includedir} diff --git a/mingw-w64-xerces-c/PKGBUILD b/mingw-w64-xerces-c/PKGBUILD index 71a74e6505..99a848b669 100644 --- a/mingw-w64-xerces-c/PKGBUILD +++ b/mingw-w64-xerces-c/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=xerces-c - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.1.1 -pkgrel=2 +pkgver=3.1.2 +pkgrel=1 pkgdesc="A validating XML parser written in a portable subset of C++. (mingw-w64)" arch=('any') url="http://xerces.apache.org/xerces-c" @@ -12,8 +11,17 @@ license=("APACHE") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") # "${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-icu" options=('staticlibs' 'strip') -source=("http://mirrors.sonic.net/apache/xerces/c/3/sources/xerces-c-$pkgver.tar.gz") -md5sums=('6a8ec45d83c8cfb1584c5a5345cb51ae') +source=("http://mirrors.sonic.net/apache/xerces/c/3/sources/xerces-c-$pkgver.tar.gz" + 001-no-undefined.patch) +md5sums=('9eb1048939e88d6a7232c67569b23985' + '65846bed6ac34fdcc2dfbaf6245f37f6') + +prepare() { + cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/001-no-undefined.patch + + autoreconf -fiv +} build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" @@ -23,11 +31,11 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} - make libxerces_c_la_LDFLAGS="-release 3.1 -no-undefined" + + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.bat' -o -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } From d8db7e3d9889119a3db7cdcf70efc10587f0b057 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 3 Apr 2015 10:00:35 +0300 Subject: [PATCH 0786/2060] mpg123: Update to 1.22.1 --- mingw-w64-mpg123/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-mpg123/PKGBUILD b/mingw-w64-mpg123/PKGBUILD index 47ad5797a7..e9b1372d3d 100644 --- a/mingw-w64-mpg123/PKGBUILD +++ b/mingw-w64-mpg123/PKGBUILD @@ -2,8 +2,8 @@ _realname=mpg123 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.22.0 -pkgrel=0 +pkgver=1.22.1 +pkgrel=1 pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3 (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/mpg123" @@ -21,7 +21,7 @@ options=('strip' 'staticlibs' 'libtool') source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2"{,.sig} 0001-update-ac-and-silent-rules.mingw.patch 0002-openal-library.patch) -md5sums=('33069bff83413824669c8ecb37e706d5' +md5sums=('abf310c716d56c283561eff0903bcb69' 'SKIP' '5d01842fa623f7bb53bf22be64aa042d' '9ac9a255f3ab3043915ceec455ccdbec') From 09240298d20503ad2ce3edf0615912396f279955 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 1 Apr 2015 22:59:02 +0200 Subject: [PATCH 0787/2060] gmime: new package. --- mingw-w64-gmime/001-win.patch | 26 +++++++++++++++++ mingw-w64-gmime/PKGBUILD | 54 +++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 mingw-w64-gmime/001-win.patch create mode 100644 mingw-w64-gmime/PKGBUILD diff --git a/mingw-w64-gmime/001-win.patch b/mingw-w64-gmime/001-win.patch new file mode 100644 index 0000000000..4a6ee871da --- /dev/null +++ b/mingw-w64-gmime/001-win.patch @@ -0,0 +1,26 @@ +--- ./gmime/Makefile.am.orig 2014-02-02 13:27:55.000000000 +0100 ++++ ./gmime/Makefile.am 2015-04-01 22:30:44.606566100 +0200 +@@ -43,7 +43,6 @@ + gmime-filter-strip.c \ + gmime-filter-windows.c \ + gmime-filter-yenc.c \ +- gmime-gpg-context.c \ + gmime-header.c \ + gmime-iconv.c \ + gmime-iconv-utils.c \ +@@ -98,7 +97,6 @@ + gmime-filter-strip.h \ + gmime-filter-windows.h \ + gmime-filter-yenc.h \ +- gmime-gpg-context.h \ + gmime-header.h \ + gmime-iconv.h \ + gmime-iconv-utils.h \ +@@ -177,6 +175,7 @@ + INTROSPECTION_GIRS = + INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) + INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + if HAVE_INTROSPECTION + GMime-2.6.gir: libgmime-2.6.la diff --git a/mingw-w64-gmime/PKGBUILD b/mingw-w64-gmime/PKGBUILD new file mode 100644 index 0000000000..de024bd5a5 --- /dev/null +++ b/mingw-w64-gmime/PKGBUILD @@ -0,0 +1,54 @@ +# Maintainer: Andrea Zagli + +_realname=gmime +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.6.20 +pkgrel=1 +arch=('any') +pkgdesc="Glorious MIME Utility Library (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-libiconv") +makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "gtk-doc") +license=("LGPL 2.1") +url="http://www.gnome.org" +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-win.patch) +sha256sums=('e0a170fb264c2ae4cecd852f4e7aaddb8d58e8f3f0b569ce2d2a4704f55bdf65' + 'f1fd6b8ad76f083be818623c1083c777880bb56356f87735fb407f5da0ec66a8') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -b -V simple -p1 -i ${srcdir}/001-win.patch + + autoreconf -f -i +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-cryptography=no + + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} From 83c2c26ef8cf524d72bf832fd693c2c69d4c020d Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 1 Apr 2015 23:15:09 +0200 Subject: [PATCH 0788/2060] totem-pl-parser: added gmime dependency. --- mingw-w64-totem-pl-parser/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-totem-pl-parser/PKGBUILD b/mingw-w64-totem-pl-parser/PKGBUILD index 104c1c8fbd..862ec00592 100644 --- a/mingw-w64-totem-pl-parser/PKGBUILD +++ b/mingw-w64-totem-pl-parser/PKGBUILD @@ -3,14 +3,15 @@ _realname=totem-pl-parser pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.10.4 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Simple GObject-based library to parse and save a host of playlist formats (mingw-w64)" options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libsoup" "${MINGW_PACKAGE_PREFIX}-libarchive" - "${MINGW_PACKAGE_PREFIX}-libgcrypt") + "${MINGW_PACKAGE_PREFIX}-libgcrypt" + "${MINGW_PACKAGE_PREFIX}-gmime") makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" @@ -42,8 +43,7 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --libexecdir=${MINGW_PREFIX}/lib \ - --disable-gmime-i-know-what-im-doing + --libexecdir=${MINGW_PREFIX}/lib make } From e99222f87e8513a829d9c413c2c6605a683cd8e0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 4 Apr 2015 19:52:58 +0300 Subject: [PATCH 0789/2060] icu: Update to 55.1 --- mingw-w64-icu/0014-mingwize-pkgdata.mingw.patch | 9 +-------- mingw-w64-icu/PKGBUILD | 8 ++++---- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/mingw-w64-icu/0014-mingwize-pkgdata.mingw.patch b/mingw-w64-icu/0014-mingwize-pkgdata.mingw.patch index b8882fee69..051673c62f 100644 --- a/mingw-w64-icu/0014-mingwize-pkgdata.mingw.patch +++ b/mingw-w64-icu/0014-mingwize-pkgdata.mingw.patch @@ -1,6 +1,6 @@ --- icu/source/tools/pkgdata/pkgdata.cpp.orig 2013-10-04 20:49:38.000000000 +0000 +++ icu/source/tools/pkgdata/pkgdata.cpp 2014-02-06 19:09:43.258525500 +0000 -@@ -868,27 +868,16 @@ +@@ -868,21 +868,10 @@ const char* FILE_EXTENSION_SEP = uprv_strlen(pkgDataFlags[SO_EXT]) == 0 ? "" : "."; const char* FILE_SUFFIX = pkgDataFlags[LIB_EXT_ORDER][0] == '.' ? "." : ""; @@ -22,13 +22,6 @@ if(o->verbose) { fprintf(stdout, "# libFileName[LIB_FILE] = %s\n", libFileNames[LIB_FILE]); } - - #if U_PLATFORM == U_PF_MINGW -- sprintf(libFileNames[LIB_FILE_MINGW], "%s%s.lib", pkgDataFlags[LIBPREFIX], libName); -+ sprintf(libFileNames[LIB_FILE_MINGW], "%s%s.a", pkgDataFlags[LIBPREFIX], libName); - #elif U_PLATFORM == U_PF_CYGWIN - sprintf(libFileNames[LIB_FILE_CYGWIN], "cyg%s%s%s", - libName, --- icu/source/tools/pkgdata/pkgtypes.h.orig 2013-10-04 20:49:38.000000000 +0000 +++ icu/source/tools/pkgdata/pkgtypes.h 2014-02-06 19:10:24.970822300 +0000 @@ -138,10 +138,10 @@ diff --git a/mingw-w64-icu/PKGBUILD b/mingw-w64-icu/PKGBUILD index 092c7e5859..920c42be49 100644 --- a/mingw-w64-icu/PKGBUILD +++ b/mingw-w64-icu/PKGBUILD @@ -3,8 +3,8 @@ _realname=icu pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-libs") -pkgver=54.1 -pkgrel=3 +pkgver=55.1 +pkgrel=1 arch=('any') pkgdesc="International Components for Unicode library (mingw-w64)" arch=('any') @@ -26,7 +26,7 @@ source=("http://download.icu-project.org/files/icu4c/${pkgver}/icu4c-${pkgver//. 0014-mingwize-pkgdata.mingw.patch 0015-debug.mingw.patch 0016-icu-pkgconfig.patch) -md5sums=('e844caed8f2ca24c088505b0d6271bc0' +md5sums=('e2d523df79d6cb7855c2fbe284f4db29' '4c8143786ed499184e64fc5a1a1d0fdf' 'eb56b72df2ca0dc77261c4f2adc5c8ad' '9c63125f7bdd88871c89e13ee62ac02b' @@ -34,7 +34,7 @@ md5sums=('e844caed8f2ca24c088505b0d6271bc0' 'cce2427d95bcb4a364df5ab605c3e9a3' 'ee93f131a132f7e65d11d15a467b7abc' 'f43d08a14a3e723977178fed136e58b1' - 'f7a59e098b2eda845b627137488b0573' + '74415f3f3876b5f2f7cea0c5d367c5c6' 'd1accfbefbcd399a4a28a4a4e0737915' '3f13cf5733c4a9363c5823a24d3fba85') prepare() { From 50c05bea0aabaa17e4e216059262ceea33c4bf87 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 4 Apr 2015 19:53:25 +0300 Subject: [PATCH 0790/2060] boost: Rebuild with icu-55.1 --- mingw-w64-boost/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-boost/PKGBUILD b/mingw-w64-boost/PKGBUILD index 92eefe126c..fdfb1c100e 100644 --- a/mingw-w64-boost/PKGBUILD +++ b/mingw-w64-boost/PKGBUILD @@ -4,15 +4,15 @@ _realname=boost pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.57.0 _boostver=${pkgver//./_} -pkgrel=1 +pkgrel=2 pkgdesc="Free peer-reviewed portable C++ source libraries (mingw-w64)" arch=('any') url="http://www.boost.org/" license=('custom') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-icu") + "${MINGW_PACKAGE_PREFIX}-icu" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3") From 7164d9a36c13dfce84a79b6abdfd509ee8cc99dd Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 4 Apr 2015 19:53:49 +0300 Subject: [PATCH 0791/2060] python-icu: Rebuild with icu-55.1 --- mingw-w64-python-icu/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-python-icu/PKGBUILD b/mingw-w64-python-icu/PKGBUILD index b8f25820a8..7fe87e7ac9 100644 --- a/mingw-w64-python-icu/PKGBUILD +++ b/mingw-w64-python-icu/PKGBUILD @@ -3,7 +3,7 @@ _realname=PyICU pkgname=("${MINGW_PACKAGE_PREFIX}-python2-icu" "${MINGW_PACKAGE_PREFIX}-python3-icu") pkgver=1.8 -pkgrel=1 +pkgrel=2 pkgdesc="Python extension wrapping the ICU C++ API" arch=('any') license=('BSD') From 0b71b64d969d421ca4046177d807ba9f8187f6e6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 4 Apr 2015 19:54:06 +0300 Subject: [PATCH 0792/2060] libcdr: Rebuild with icu-55.1 --- mingw-w64-libcdr/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-libcdr/PKGBUILD b/mingw-w64-libcdr/PKGBUILD index 69bf34480a..2f5845b259 100644 --- a/mingw-w64-libcdr/PKGBUILD +++ b/mingw-w64-libcdr/PKGBUILD @@ -3,7 +3,7 @@ _realname=libcdr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.1.1 -pkgrel=1 +pkgrel=2 pkgdesc="CorelDraw file format importer library for LibreOffice (mingw-w64)" arch=('any') license=('GPL2' 'LGPL2.1' 'MPL') From 18b689cc7a8a7d0d5401de6e420006c3096fae25 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 4 Apr 2015 19:56:01 +0300 Subject: [PATCH 0793/2060] libvmime-git: Update to git SHA [3848556]. Rebuild with icu-55.1 --- mingw-w64-libvmime-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-libvmime-git/PKGBUILD b/mingw-w64-libvmime-git/PKGBUILD index 70caa0556b..6ea978f8b0 100644 --- a/mingw-w64-libvmime-git/PKGBUILD +++ b/mingw-w64-libvmime-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=libvmime pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r1001.f3c9002 +pkgver=r1024.3848556 pkgrel=1 pkgdesc="An open source solution for working with MIME messages and Internet messaging services like IMAP, POP or SMTP." url="http://www.vmime.org/" From 7f91b9399084dd0ec1f9ab018234ab6355d5e066 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 4 Apr 2015 19:56:27 +0300 Subject: [PATCH 0794/2060] harfbuzz: Rebuild with icu-55.1 --- mingw-w64-harfbuzz/PKGBUILD | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 005a20429e..0235695eba 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -4,19 +4,19 @@ _realname=harfbuzz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.40 -pkgrel=1 +pkgrel=2 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/HarfBuzz" license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-icu" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-cairo") + "${MINGW_PACKAGE_PREFIX}-icu" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-glib2") options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") @@ -30,7 +30,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -38,6 +38,7 @@ build() { --enable-static \ --enable-introspection \ --with-gobject + make } @@ -49,6 +50,5 @@ check(){ package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 7604245a55e614f6284e4c048482061c97970da9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 4 Apr 2015 20:32:28 +0300 Subject: [PATCH 0795/2060] poppler: Rebuild with icu-55.1 --- mingw-w64-poppler/PKGBUILD | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index c180f6c49e..ba934eadac 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -3,7 +3,7 @@ _realname=poppler pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.32.0 -pkgrel=1 +pkgrel=2 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') url="http://poppler.freedesktop.org" @@ -13,16 +13,16 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-qt5") -depends=("${MINGW_PACKAGE_PREFIX}-icu" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-curl" - "${MINGW_PACKAGE_PREFIX}-openjpeg" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-poppler-data") +depends=("${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-icu" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-openjpeg" + "${MINGW_PACKAGE_PREFIX}-poppler-data" + "${MINGW_PACKAGE_PREFIX}-zlib") optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" "${MINGW_PACKAGE_PREFIX}-qt5: libpoppler-qt5") options=('strip' 'staticlibs') @@ -42,7 +42,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ From d7719011e3bfa9a3288fb18d0ebe6cdcd5b9bbe5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 4 Apr 2015 20:48:19 +0300 Subject: [PATCH 0796/2060] gobject-introspection: Update patch for Windows support. --- ...ments-to-g-ir-scanner-through-a-.all.patch | 275 +++++++++--------- mingw-w64-gobject-introspection/PKGBUILD | 9 +- 2 files changed, 144 insertions(+), 140 deletions(-) diff --git a/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch b/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch index 0a47d8c35b..ee072467c0 100644 --- a/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch +++ b/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch @@ -1,122 +1,19 @@ -diff -urN gobject-introspection-1.44.0.orig/configure.ac gobject-introspection-1.44.0/configure.ac ---- gobject-introspection-1.44.0.orig/configure.ac 2015-03-28 10:27:07.153340700 +0000 -+++ gobject-introspection-1.44.0/configure.ac 2015-03-28 10:37:39.175597300 +0000 -@@ -31,12 +31,18 @@ - case "$host" in - *-*-mingw*) - os_win32=yes -+ COMMENT_ON_W32='#' -+ COMMENT_ON_NONW32= - ;; - *) - os_win32=no -+ COMMENT_ON_W32= -+ COMMENT_ON_NONW32='#' - ;; - esac - AM_CONDITIONAL(OS_WIN32, [test "x$os_win32" = "xyes"]) -+AC_SUBST(COMMENT_ON_W32) -+AC_SUBST(COMMENT_ON_NONW32) - - # Checks for programs. - AC_PROG_CC -@@ -358,6 +361,7 @@ tests/warn/Makefile - docs/Makefile - docs/reference/Makefile - docs/reference/version.xml -+Makefile.introspection - gobject-introspection-1.0.pc - gobject-introspection-no-export-1.0.pc - config.h.win32 -diff -urN gobject-introspection-1.44.0.orig/giscanner/scannermain.py gobject-introspection-1.44.0/giscanner/scannermain.py ---- gobject-introspection-1.44.0.orig/giscanner/scannermain.py 2015-03-28 10:27:07.281356900 +0000 -+++ gobject-introspection-1.44.0/giscanner/scannermain.py 2015-03-28 10:38:09.507449000 +0000 -@@ -470,8 +470,9 @@ - - - def scanner_main(args): -+ loaded_args = utils.maybe_load_args_from_file(args) - parser = _get_option_parser() -- (options, args) = parser.parse_args(args) -+ (options, args) = parser.parse_args(loaded_args) - - if options.passthrough_gir: - passthrough_gir(options.passthrough_gir, sys.stdout) -diff -urN gobject-introspection-1.44.0.orig/giscanner/utils.py gobject-introspection-1.44.0/giscanner/utils.py ---- gobject-introspection-1.44.0.orig/giscanner/utils.py 2015-03-28 10:27:07.285857500 +0000 -+++ gobject-introspection-1.44.0/giscanner/utils.py 2015-03-28 10:56:45.401149500 +0000 -@@ -22,6 +22,7 @@ - import os - import subprocess - import platform -+import shlex - - - _debugflags = None -@@ -75,6 +76,59 @@ - return name - - -+def cygmsys_mangle(arg): -+ shell = which(os.environ.get('SHELL', 'sh.exe')) -+ p = subprocess.Popen([shell, '-c' 'cmd //C echo ' + arg], stdout=subprocess.PIPE) -+ result, _ = p.communicate() -+ return result.rstrip ('\n').rstrip ('\r') if p.returncode == 0 else None -+ -+ -+def load_args_from_file(filename): -+ with open(filename, 'rb') as source: -+ contents = source.read().decode('UTF-8') -+ result = shlex.split(contents) -+ if os.name != 'nt': -+ args = [] -+ for arg in result: -+ mangled = cygmsys_mangle(arg) -+ if mangled is not None: -+ args.append(mangled) -+ result = args -+ return result -+ -+ -+def maybe_load_args_from_file(args): -+ if os.name != 'nt': -+ return args -+ -+ processed_args = [] -+ skip = False -+ is_input_file = False -+ argfilelen = len('--argfile=') -+ for argn, arg in enumerate(args): -+ if skip: -+ processed_args.append(arg) -+ continue -+ elif arg == '--': -+ skip = True -+ processed_args.append(arg) -+ continue -+ -+ if is_input_file: -+ processed_args.extend(load_args_from_file(arg)) -+ is_input_file = False -+ continue -+ -+ if arg == '--argfile' and argn + 1 < len(args): -+ is_input_file = True -+ continue -+ elif arg.startswith('--argfile=') and len(arg) > argfilelen: -+ processed_args.extend(load_args_from_file(arg[argfilelen:])) -+ continue -+ processed_args.append(arg) -+ return processed_args -+ -+ - _libtool_pat = re.compile("dlname='([A-z0-9\.\-\+]+)'\n") - - -diff -urN gobject-introspection-1.44.0.orig/Makefile.am gobject-introspection-1.44.0/Makefile.am ---- gobject-introspection-1.44.0.orig/Makefile.am 2015-03-28 10:27:07.296358800 +0000 -+++ gobject-introspection-1.44.0/Makefile.am 2015-03-28 10:32:10.348841600 +0000 -@@ -15,7 +15,7 @@ +@@ -, +, @@ + =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= + Makefile.am | 2 +- + Makefile.introspection | 166 ---------------------------------------- + Makefile.introspection.in | 187 ++++++++++++++++++++++++++++++++++++++++++++++ + configure.ac | 7 ++ + giscanner/scannermain.py | 3 +- + giscanner/utils.py | 54 +++++++++++++ + tests/offsets/Makefile.am | 2 +- + tests/scanner/Makefile.am | 2 +- + 8 files changed, 253 insertions(+), 170 deletions(-) + delete mode 100644 Makefile.introspection + create mode 100644 Makefile.introspection.in +--- a/Makefile.am ++++ a/Makefile.am +@@ -15,7 +15,7 @@ EXTRA_PROGRAMS = TESTS = include common.mk @@ -125,10 +22,9 @@ diff -urN gobject-introspection-1.44.0.orig/Makefile.am gobject-introspection-1. include Makefile-cmph.am include Makefile-girepository.am -diff -urN gobject-introspection-1.44.0.orig/Makefile.introspection gobject-introspection-1.44.0/Makefile.introspection ---- gobject-introspection-1.44.0.orig/Makefile.introspection 2015-03-28 10:27:07.296858900 +0000 -+++ gobject-introspection-1.44.0/Makefile.introspection 1970-01-01 00:00:00.000000000 +0000 -@@ -1,166 +0,0 @@ +--- a/Makefile.introspection ++++ a/Makefile.introspection +@@ -1,166 +0,0 @@ -# -*- Mode: make -*- -# Copyright 2009-2010 Johan Dahlin -# @@ -295,10 +191,9 @@ diff -urN gobject-introspection-1.44.0.orig/Makefile.introspection gobject-intro -# Simple rule to compile a typelib. -%.typelib: %.gir - $(call introspection-compiler,$<,$@) -diff -urN gobject-introspection-1.44.0.orig/Makefile.introspection.in gobject-introspection-1.44.0/Makefile.introspection.in ---- gobject-introspection-1.44.0.orig/Makefile.introspection.in 1970-01-01 00:00:00.000000000 +0000 -+++ gobject-introspection-1.44.0/Makefile.introspection.in 2015-03-28 10:35:59.923493900 +0000 -@@ -0,0 +1,187 @@ +--- a/Makefile.introspection.in ++++ a/Makefile.introspection.in +@@ -0,0 +1,187 @@ +# -*- Mode: make -*- +# Copyright 2009-2010 Johan Dahlin +# @@ -486,20 +381,130 @@ diff -urN gobject-introspection-1.44.0.orig/Makefile.introspection.in gobject-in +# Simple rule to compile a typelib. +%.typelib: %.gir + $(call introspection-compiler,$<,$@) -diff -urN gobject-introspection-1.44.0.orig/tests/offsets/Makefile.am gobject-introspection-1.44.0/tests/offsets/Makefile.am ---- gobject-introspection-1.44.0.orig/tests/offsets/Makefile.am 2015-03-28 10:27:07.303359700 +0000 -+++ gobject-introspection-1.44.0/tests/offsets/Makefile.am 2015-03-28 10:57:08.321560000 +0000 -@@ -1,5 +1,5 @@ +--- a/configure.ac ++++ a/configure.ac +@@ -31,12 +31,18 @@ AC_CANONICAL_HOST + case "$host" in + *-*-mingw*) + os_win32=yes ++ COMMENT_ON_W32='#' ++ COMMENT_ON_NONW32= + ;; + *) + os_win32=no ++ COMMENT_ON_W32= ++ COMMENT_ON_NONW32='#' + ;; + esac + AM_CONDITIONAL(OS_WIN32, [test "x$os_win32" = "xyes"]) ++AC_SUBST(COMMENT_ON_W32) ++AC_SUBST(COMMENT_ON_NONW32) + + # Checks for programs. + AC_PROG_CC +@@ -358,6 +364,7 @@ tests/warn/Makefile + docs/Makefile + docs/reference/Makefile + docs/reference/version.xml ++Makefile.introspection + gobject-introspection-1.0.pc + gobject-introspection-no-export-1.0.pc + config.h.win32 +--- a/giscanner/scannermain.py ++++ a/giscanner/scannermain.py +@@ -470,8 +470,9 @@ def write_output(data, options): + + + def scanner_main(args): ++ loaded_args = utils.maybe_load_args_from_file(args) + parser = _get_option_parser() +- (options, args) = parser.parse_args(args) ++ (options, args) = parser.parse_args(loaded_args) + + if options.passthrough_gir: + passthrough_gir(options.passthrough_gir, sys.stdout) +--- a/giscanner/utils.py ++++ a/giscanner/utils.py +@@ -22,6 +22,7 @@ import re + import os + import subprocess + import platform ++import shlex + + + _debugflags = None +@@ -75,6 +76,59 @@ def to_underscores_noprefix(name): + return name + + ++def cygmsys_mangle(arg): ++ shell = which(os.environ.get('SHELL', 'sh.exe')) ++ p = subprocess.Popen([shell, '-c', 'cmd //C echo ' + arg], stdout=subprocess.PIPE) ++ result, _ = p.communicate() ++ return result.rstrip('\n').rstrip('\r') if p.returncode == 0 else None ++ ++ ++def load_args_from_file(filename): ++ with open(filename, 'rb') as source: ++ contents = source.read().decode('UTF-8') ++ result = shlex.split(contents) ++ if os.name == 'nt': ++ args = [] ++ for arg in result: ++ mangled = cygmsys_mangle(arg) ++ if mangled is not None: ++ args.append(mangled) ++ result = args ++ return result ++ ++ ++def maybe_load_args_from_file(args): ++ if os.name != 'nt': ++ return args ++ ++ processed_args = [] ++ skip = False ++ is_input_file = False ++ argfilelen = len('--argfile=') ++ for argn, arg in enumerate(args): ++ if skip: ++ processed_args.append(arg) ++ continue ++ elif arg == '--': ++ skip = True ++ processed_args.append(arg) ++ continue ++ ++ if is_input_file: ++ processed_args.extend(load_args_from_file(arg)) ++ is_input_file = False ++ continue ++ ++ if arg == '--argfile' and argn + 1 < len(args): ++ is_input_file = True ++ continue ++ elif arg.startswith('--argfile=') and len(arg) > argfilelen: ++ processed_args.extend(load_args_from_file(arg[argfilelen:])) ++ continue ++ processed_args.append(arg) ++ return processed_args ++ ++ + _libtool_pat = re.compile("dlname='([A-z0-9\.\-\+]+)'\n") + + +--- a/tests/offsets/Makefile.am ++++ a/tests/offsets/Makefile.am +@@ -1,5 +1,5 @@ include $(top_srcdir)/common.mk -include $(top_srcdir)/Makefile.introspection +include $(top_srcdir)/Makefile.introspection.in BUILT_SOURCES = CLEANFILES = -diff -urN gobject-introspection-1.44.0.orig/tests/scanner/Makefile.am gobject-introspection-1.44.0/tests/scanner/Makefile.am ---- gobject-introspection-1.44.0.orig/tests/scanner/Makefile.am 2015-03-28 10:27:07.346865300 +0000 -+++ gobject-introspection-1.44.0/tests/scanner/Makefile.am 2015-03-28 10:57:16.107548700 +0000 -@@ -1,7 +1,7 @@ +--- a/tests/scanner/Makefile.am ++++ a/tests/scanner/Makefile.am +@@ -1,7 +1,7 @@ NULL ?= include $(top_srcdir)/common.mk diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index a4c6214d98..dd14e975d5 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -3,14 +3,13 @@ _realname=gobject-introspection pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.44.0 -pkgrel=2 +pkgrel=3 pkgdesc="GObject Introspection can scan C header and source files in order to generate introspection typelib files (mingw-w64)" arch=('any') url="https://live.gnome.org/GObjectIntrospection" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "python3") + "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-cairo" @@ -31,7 +30,7 @@ md5sums=('7ef8a1db7f74f4193a2397b1587eb913' 'f0ecde986ebf1f0e28b752f9c36fb6c1' '69ef34e2f57abc8afe1b9f6fa3786e97' '8d3589fb959a0a68ce7ce9051fa441fe' - 'bb1c749aa860e4981bfcc5324b610180' + 'a5c7e19ce0031f3388f4912bf0d83f7a' 'e3598d539258678eef8dde2216419faf' '6d809bf266e42a20b31a7acbaf0384d1' 'e348d9ac65e380dd05e68818ab139dba') @@ -60,7 +59,7 @@ build() { --host=${MINGW_CHOST} \ --disable-silent-rules - make -j1 V=1 + make } package() { From 65c8ac0cc9b46977895b014aac91f1d65488f271 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 4 Apr 2015 23:24:05 +0300 Subject: [PATCH 0797/2060] glade: Rebuild. Fix dependencies. --- mingw-w64-glade/PKGBUILD | 22 +++++++++++----------- mingw-w64-glade/glade-i686.install | 2 +- mingw-w64-glade/glade-x86_64.install | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/mingw-w64-glade/PKGBUILD b/mingw-w64-glade/PKGBUILD index f141427321..34083867b9 100644 --- a/mingw-w64-glade/PKGBUILD +++ b/mingw-w64-glade/PKGBUILD @@ -3,23 +3,23 @@ _realname=glade pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.18.3 -pkgrel=2 +pkgrel=3 pkgdesc="User interface builder for GTK+ and GNOME (mingw-w64)" arch=('any') url="http://glade.gnome.org" license=("GPL" "LGPL") options=('strip' '!debug' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme") + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-gtk-doc" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-python2-gobject2" - 'intltool' - 'itstool' - 'docbook-xsl') + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-python2-gobject2" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "gtk-doc" + "intltool" + "itstool" + "docbook-xsl") optdepends=("${MINGW_PACKAGE_PREFIX}-python2: Python widgets support" #'devhelp: help browser' ) @@ -55,7 +55,7 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - #cd "${srcdir}/${_realname}-${pkgver}" + PYTHON=${MINGW_PREFIX}/bin/python2 \ ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ diff --git a/mingw-w64-glade/glade-i686.install b/mingw-w64-glade/glade-i686.install index da50a72875..62459f29d3 100644 --- a/mingw-w64-glade/glade-i686.install +++ b/mingw-w64-glade/glade-i686.install @@ -1,5 +1,5 @@ post_install() { - mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/hicolor + mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/hicolor } post_upgrade() { diff --git a/mingw-w64-glade/glade-x86_64.install b/mingw-w64-glade/glade-x86_64.install index 4a2bb1bb75..f2f0233676 100644 --- a/mingw-w64-glade/glade-x86_64.install +++ b/mingw-w64-glade/glade-x86_64.install @@ -1,5 +1,5 @@ post_install() { - mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/hicolor + mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/hicolor } post_upgrade() { From 98ddd123fd9966c203822b43d5d3f166649f859e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 4 Apr 2015 23:46:28 +0300 Subject: [PATCH 0798/2060] qt5: Rebuild with icu-55.1. Add patches from qt5-static. --- ...static-cmake-link-ws2_32-and--static.patch | 15 ++ ...ction-as-not-all-are-suffixed-Plugin.patch | 20 +++ ...-to-use-static-builds-of-Qt-with-CMa.patch | 60 +++++++ ...ted-libraries-in-prl-files-for-CMake.patch | 32 ++++ ...ate_cmake-prl-file-has-no-lib-prefix.patch | 13 ++ ...ke-also-link-plugins-and-plugin-deps.patch | 149 ++++++++++++++++++ ...form-plugin-for-qcollectiongenerator.patch | 8 + ...-Revert-Revert-fix-NTFS-mount-points.patch | 123 +++++++++++++++ mingw-w64-qt5/PKGBUILD | 35 +++- 9 files changed, 452 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-qt5/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch create mode 100644 mingw-w64-qt5/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch create mode 100644 mingw-w64-qt5/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch create mode 100644 mingw-w64-qt5/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch create mode 100644 mingw-w64-qt5/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch create mode 100644 mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch create mode 100644 mingw-w64-qt5/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch create mode 100644 mingw-w64-qt5/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch diff --git a/mingw-w64-qt5/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch b/mingw-w64-qt5/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch new file mode 100644 index 0000000000..969fe359b3 --- /dev/null +++ b/mingw-w64-qt5/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch @@ -0,0 +1,15 @@ +--- qt-everywhere-opensource-src-5.3.2.orig/qtbase/src/corelib/Qt5CoreConfigExtras.cmake.in.orig 2014-11-09 00:54:20.852201500 +0000 ++++ qt-everywhere-opensource-src-5.3.2/qtbase/src/corelib/Qt5CoreConfigExtras.cmake.in 2014-11-09 00:55:52.437439900 +0000 +@@ -165,3 +165,12 @@ + set(_Qt5CTestMacros \"${_Qt5CoreConfigDir}/Qt5CTestMacros.cmake\") + + _qt5_Core_check_file_exists(${_Qt5CTestMacros}) ++ ++get_target_property(_libType Qt5::Core TYPE) ++if(_libType STREQUAL \"STATIC_LIBRARY\" AND WIN32) ++ set(_isExe $,EXECUTABLE>) ++ # INTERFACE_LINK_LIBRARIES is used to pass a linker flag (-static) ++ # and a library (ws2_32) ++ set_target_properties(Qt5::Core PROPERTIES \"INTERFACE_LINK_LIBRARIES\" \"$<${_isExe}:-static;ws2_32>\") ++ unset(_isExe) ++endif() diff --git a/mingw-w64-qt5/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch b/mingw-w64-qt5/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch new file mode 100644 index 0000000000..b53e5c2f55 --- /dev/null +++ b/mingw-w64-qt5/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch @@ -0,0 +1,20 @@ +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2015-01-04 22:22:54.714460900 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-01-04 22:34:11.801082600 +0000 +@@ -283,7 +283,16 @@ + + !!ENDIF // CMAKE_DEBUG_TYPE + +- file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ unset(pluginTargets) ++ if (pluginTargetsMaybe) ++ foreach(pluginTarget ${pluginTargetsMaybe}) ++ file(STRINGS ${pluginTarget} matched REGEX Qt5$${CMAKE_MODULE_NAME}_PLUGINS) ++ if (matched) ++ list(APPEND pluginTargets ${pluginTarget}) ++ endif() ++ endforeach() ++ endif() + + macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) + set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) diff --git a/mingw-w64-qt5/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch b/mingw-w64-qt5/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch new file mode 100644 index 0000000000..b45c4b454c --- /dev/null +++ b/mingw-w64-qt5/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch @@ -0,0 +1,60 @@ +diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 10:34:57.668743500 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 14:40:54.557845500 +0000 +@@ -57,13 +57,13 @@ + !!ENDIF + _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) + set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES +- \"INTERFACE_LINK_LIBRARIES\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" ++ \"INTERFACE_LINK_LIBRARIES\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" + \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} + !!IF !isEmpty(CMAKE_LIB_SONAME) + \"IMPORTED_SONAME_${Configuration}\" \"$${CMAKE_LIB_SONAME}\" + !!ENDIF + # For backward compatibility with CMake < 2.8.12 +- \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" ++ \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" + ) + + !!IF !isEmpty(CMAKE_WINDOWS_BUILD) +@@ -197,6 +197,40 @@ + !!IF !isEmpty(CMAKE_STATIC_TYPE) + add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") ++# Excerpt from: ++ ++# From ae6d4c77eb338be3f2189bfaffdcd3c38cc57333 Mon Sep 17 00:00:00 2001 ++# From: Stephen Kelly ++# Date: Tue, 21 Aug 2012 13:12:57 +0200 ++# Subject: [PATCH] Make it possible to use static builds of Qt with CMake. ++# ++# Parse the prl files generated by qmake to get the link dependencies. They ++# contain all the information we need, and they are the only location with ++# all the right information. ++macro(macro_process_prl_file prl_file_location Configuration) ++ if (EXISTS \"${prl_file_location}\") ++ file(STRINGS \"${prl_file_location}\" prl_strings REGEX \"QMAKE_PRL_LIBS\") ++ string(REGEX REPLACE \"QMAKE_PRL_LIBS *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings} ) ++ string(STRIP ${static_depends} static_depends) ++ if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) ++ set(_list_sep \";\") ++ endif() ++ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES \"${_list_sep}${static_depends}\") ++ endif() ++endmacro() ++ ++!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) ++ macro_process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG) ++!!ELSE ++ macro_process_prl_file(\"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG) ++!!ENDIF ++!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) ++ macro_process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE) ++!!ELSE ++ macro_process_prl_file(\"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE) ++!!ENDIF ++ ++# Excerpt from: end + !!ELSE + add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) + !!ENDIF diff --git a/mingw-w64-qt5/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch b/mingw-w64-qt5/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch new file mode 100644 index 0000000000..b84c06071b --- /dev/null +++ b/mingw-w64-qt5/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch @@ -0,0 +1,32 @@ +diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 15:16:58.576095000 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-14 10:10:27.960078400 +0000 +@@ -209,9 +209,8 @@ + # all the right information. + macro(macro_process_prl_file prl_file_location Configuration) + if (EXISTS \"${prl_file_location}\") +- file(STRINGS \"${prl_file_location}\" prl_strings REGEX \"QMAKE_PRL_LIBS\") +- string(REGEX REPLACE \"QMAKE_PRL_LIBS *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings} ) +- string(STRIP ${static_depends} static_depends) ++ file(STRINGS \"${prl_file_location}\" prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE\") ++ string(REGEX REPLACE \"QMAKE_PRL_LIBS_FOR_CMAKE *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings} ) + if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) + set(_list_sep \";\") + endif() +diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/qmake/generators/makefile.cpp qt-everywhere-opensource-src-5.4.0/qtbase/qmake/generators/makefile.cpp +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/qmake/generators/makefile.cpp 2014-12-13 15:16:49.416878800 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/qmake/generators/makefile.cpp 2014-12-14 10:11:38.093945800 +0000 +@@ -1009,6 +1009,13 @@ + for (ProStringList::Iterator it = libs.begin(); it != libs.end(); ++it) + t << project->values((*it).toKey()).join(' ').replace('\\', "\\\\") << " "; + t << endl; ++ t << "QMAKE_PRL_LIBS_FOR_CMAKE = "; ++ QString sep; ++ for (ProStringList::Iterator it = libs.begin(); it != libs.end(); ++it) { ++ t << sep << project->values((*it).toKey()).join(';').replace('\\', "\\\\"); ++ sep = ';'; ++ } ++ t << endl; + } + } + diff --git a/mingw-w64-qt5/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch b/mingw-w64-qt5/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch new file mode 100644 index 0000000000..a7bd7384c1 --- /dev/null +++ b/mingw-w64-qt5/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch @@ -0,0 +1,13 @@ +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/create_cmake.prf.orig 2014-12-14 20:11:38.710428500 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/create_cmake.prf 2014-12-14 22:16:48.451709600 +0000 +@@ -214,8 +214,8 @@ + CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.a + CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a + +- CMAKE_PRL_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.prl +- CMAKE_PRL_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.prl ++ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl ++ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl + } else { + isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = a + CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.$${QMAKE_EXTENSION_IMPORTLIB} diff --git a/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch b/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch new file mode 100644 index 0000000000..90f5d21db2 --- /dev/null +++ b/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch @@ -0,0 +1,149 @@ +diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-01-03 22:54:41.110170600 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-01-03 22:58:39.875293700 +0000 +@@ -56,14 +56,17 @@ + set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\") + !!ENDIF + _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) ++ if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) ++ set(_list_sep \";\") ++ endif() + set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES +- \"INTERFACE_LINK_LIBRARIES\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" ++ \"INTERFACE_LINK_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_list_sep}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" + \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} + !!IF !isEmpty(CMAKE_LIB_SONAME) + \"IMPORTED_SONAME_${Configuration}\" \"$${CMAKE_LIB_SONAME}\" + !!ENDIF + # For backward compatibility with CMake < 2.8.12 +- \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" ++ \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}${_list_sep}${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}\" + ) + + !!IF !isEmpty(CMAKE_WINDOWS_BUILD) +@@ -207,17 +210,31 @@ + # Parse the prl files generated by qmake to get the link dependencies. They + # contain all the information we need, and they are the only location with + # all the right information. ++ ++# .. changed so that if can be called multiple times, once for the module itself and once for each ++# plugin, each time, appending to _Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES ++ + macro(macro_process_prl_file prl_file_location Configuration) + if (EXISTS \"${prl_file_location}\") + file(STRINGS \"${prl_file_location}\" prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE\") + string(REGEX REPLACE \"QMAKE_PRL_LIBS_FOR_CMAKE *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings} ) +- if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) ++ if (_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES) + set(_list_sep \";\") + endif() +- set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES \"${_list_sep}${static_depends}\") ++ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}${_list_sep}${static_depends}\") + endif() + endmacro() + ++macro(macro_process_plugin_prl_file prl_file_location Configuration LIB_DIRECTORY LIB_LOCATION) ++ # First add the (static) plugin itself. ++ if (_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES) ++ set(_list_sep \";\") ++ endif() ++ set(_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES}${_list_sep}${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/${LIB_DIRECTORY}/${LIB_LOCATION}\") ++ # .. then its dependencies. ++ macro_process_prl_file(${prl_file_location} ${Configuration}) ++endmacro() ++ + !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) + macro_process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG) + !!ELSE +@@ -230,6 +247,7 @@ + !!ENDIF + + # Excerpt from: end ++ + !!ELSE + add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) + !!ENDIF +@@ -242,6 +260,44 @@ + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY + INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) + ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ unset(pluginTargets) ++ if (pluginTargetsMaybe) ++ foreach(pluginTarget ${pluginTargetsMaybe}) ++ file(STRINGS ${pluginTarget} matched REGEX Qt5$${CMAKE_MODULE_NAME}_PLUGINS) ++ if (matched) ++ list(APPEND pluginTargets ${pluginTarget}) ++ endif() ++ endforeach() ++ endif() ++ ++ macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) ++ set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) ++ ++!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) ++ set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") ++!!ELSE ++ set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") ++!!ENDIF ++ _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) ++ set_target_properties(Qt5::${Plugin} PROPERTIES ++ \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} ++ ) ++ get_filename_component(_plugindir ${PLUGIN_LOCATION} PATH) ++ get_filename_component(_plugindirname ${_plugindir} NAME) ++ get_filename_component(_pluginname ${PLUGIN_LOCATION} NAME) ++ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY STATIC_PLUGINS ${Plugin}) ++ string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/share/qt5/plugins/${_plugindirname}/\\\\1.prl\" plugin_prl_file_location ${_pluginname}) ++ macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"share/qt5/plugins\" ${PLUGIN_LOCATION} ) ++ ++ endmacro() ++ ++ if (pluginTargets) ++ foreach(pluginTarget ${pluginTargets}) ++ include(${pluginTarget}) ++ endforeach() ++ endif() ++ + !!IF !isEmpty(CMAKE_RELEASE_TYPE) + !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) + _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" ) +@@ -316,38 +363,6 @@ + + !!ENDIF // CMAKE_DEBUG_TYPE + +- file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") +- unset(pluginTargets) +- if (pluginTargetsMaybe) +- foreach(pluginTarget ${pluginTargetsMaybe}) +- file(STRINGS ${pluginTarget} matched REGEX Qt5$${CMAKE_MODULE_NAME}_PLUGINS) +- if (matched) +- list(APPEND pluginTargets ${pluginTarget}) +- endif() +- endforeach() +- endif() +- +- macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) +- set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) +- +-!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) +- set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") +-!!ELSE +- set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") +-!!ENDIF +- _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) +- set_target_properties(Qt5::${Plugin} PROPERTIES +- \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} +- ) +- endmacro() +- +- if (pluginTargets) +- foreach(pluginTarget ${pluginTargets}) +- include(${pluginTarget}) +- endforeach() +- endif() +- +- + !!IF !isEmpty(CMAKE_MODULE_EXTRAS) + include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") + !!ENDIF diff --git a/mingw-w64-qt5/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch b/mingw-w64-qt5/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch new file mode 100644 index 0000000000..c0bdc21da3 --- /dev/null +++ b/mingw-w64-qt5/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch @@ -0,0 +1,8 @@ +--- qt-everywhere-opensource-src-5.4.1/qttools/src/assistant/qcollectiongenerator/qcollectiongenerator.pro.orig 2015-03-26 21:59:29.662519600 +0000 ++++ qt-everywhere-opensource-src-5.4.1/qttools/src/assistant/qcollectiongenerator/qcollectiongenerator.pro 2015-03-26 21:59:33.804756600 +0000 +@@ -1,4 +1,5 @@ + QT += network help-private ++QTPLUGIN.platforms = qminimal + TARGET = qcollectiongenerator + SOURCES += ../shared/helpgenerator.cpp \ + main.cpp \ diff --git a/mingw-w64-qt5/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch b/mingw-w64-qt5/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch new file mode 100644 index 0000000000..29810630d3 --- /dev/null +++ b/mingw-w64-qt5/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch @@ -0,0 +1,123 @@ +From 1d9aff66270aba6d16077f460aa85fbf161aba99 Mon Sep 17 00:00:00 2001 +From: Joerg Bornemann +Date: Tue, 17 Jan 2012 14:21:05 +0100 +Subject: [PATCH] Revert "Revert "fix NTFS mount points"" + +This reverts commit 49d1b068987d0895b2429b3d87beb561d9fbcbd7 + +Because of https://github.com/msys2/msys2.github.io/issues/4 + +.. bringing back: + +fix NTFS mount points + +NTFS mount points are not treated as symlinks, because they might +not have a link target. +This is the case when a volume is mounted as a single mount point +without a drive letter. +This patch fixes building Qt in an NTFS mount point. + +Task-number: QTBUG-20431 +Change-Id: Ie2e15212e1a7ca7fa0067b7ca8857e243e42c21a +Reviewed-by: Thomas Hartmann +--- + src/corelib/io/qfilesystemengine_win.cpp | 10 ++++++---- + src/corelib/io/qfilesystemiterator_win.cpp | 2 +- + src/corelib/io/qfilesystemmetadata_p.h | 23 +++++++++++++++++------ + 3 files changed, 24 insertions(+), 11 deletions(-) + +diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp +index 221cea3..fa56d7c 100644 +--- a/src/corelib/io/qfilesystemengine_win.cpp ++++ b/src/corelib/io/qfilesystemengine_win.cpp +@@ -914,9 +914,10 @@ static bool tryFindFallback(const QFileSystemEntry &fname, QFileSystemMetaData & + int errorCode = GetLastError(); + if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { + WIN32_FIND_DATA findData; +- if (getFindData(fname.nativeFilePath(), findData) ++ const QString nativeFilePath = fname.nativeFilePath(); ++ if (getFindData(nativeFilePath, findData) + && findData.dwFileAttributes != INVALID_FILE_ATTRIBUTES) { +- data.fillFromFindData(findData, true, fname.isDriveRoot()); ++ data.fillFromFindData(findData, true, fname.isDriveRoot(), nativeFilePath); + filledData = true; + } + } +@@ -1031,8 +1032,9 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM + data.knownFlagsMask |= QFileSystemMetaData::LinkType; + if (data.fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) { + WIN32_FIND_DATA findData; +- if (getFindData(fname.nativeFilePath(), findData)) +- data.fillFromFindData(findData, true); ++ const QString nativeFilePath = fname.nativeFilePath(); ++ if (getFindData(nativeFilePath, findData)) ++ data.fillFromFindData(findData, true, false, nativeFilePath); + } + } + data.knownFlagsMask |= what; +diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp +index 6351a35..6fa22ef 100644 +--- a/src/corelib/io/qfilesystemiterator_win.cpp ++++ b/src/corelib/io/qfilesystemiterator_win.cpp +@@ -138,7 +138,7 @@ bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaDa + fileEntry = QFileSystemEntry(dirPath + fileName); + metaData = QFileSystemMetaData(); + if (!fileName.endsWith(QLatin1String(".lnk"))) { +- metaData.fillFromFindData(findData, true); ++ metaData.fillFromFindData(findData, true, false, fileEntry.nativeFilePath()); + } + return true; + } +diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h +index da9576b..266111e 100644 +--- a/src/corelib/io/qfilesystemmetadata_p.h ++++ b/src/corelib/io/qfilesystemmetadata_p.h +@@ -211,7 +211,7 @@ public: + + #if defined(Q_OS_WIN) + inline void fillFromFileAttribute(DWORD fileAttribute, bool isDriveRoot = false); +- inline void fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType = false, bool isDriveRoot = false); ++ inline void fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType = false, bool isDriveRoot = false, const QString &nativeFullFilePath = QString()); + # ifndef Q_OS_WINRT + inline void fillFromFindInfo(BY_HANDLE_FILE_INFORMATION &fileInfo); + # endif +@@ -308,7 +308,7 @@ inline void QFileSystemMetaData::fillFromFileAttribute(DWORD fileAttribute,bool + knownFlagsMask |= FileType | DirectoryType | HiddenAttribute | ExistsAttribute; + } + +-inline void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType, bool isDriveRoot) ++inline void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType, bool isDriveRoot, const QString &nativeFullFilePath) + { + fillFromFileAttribute(findData.dwFileAttributes, isDriveRoot); + creationTime_ = findData.ftCreationTime; +@@ -326,12 +326,23 @@ inline void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, boo + knownFlagsMask |= LinkType; + entryFlags &= ~LinkType; + #if !defined(Q_OS_WINCE) +- if ((fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) +- && (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK)) { +- entryFlags |= LinkType; ++ if (fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) { ++ if (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK) { ++ entryFlags |= LinkType; ++ } else if (findData.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT) { ++ // Junctions and mount points are implemented as NTFS reparse points. ++ // But mount points cannot be treated as symlinks because they might ++ // not have a link target. ++ wchar_t buf[50]; ++ QString path = nativeFullFilePath; ++ if (!path.endsWith(QLatin1Char('\\'))) ++ path.append(QLatin1Char('\\')); ++ BOOL isMountPoint = GetVolumeNameForVolumeMountPoint(reinterpret_cast(path.utf16()), buf, sizeof(buf) / sizeof(wchar_t)); ++ if (!isMountPoint) ++ entryFlags |= LinkType; ++ } + } + #endif +- + } + } + +-- +2.3.4 + diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 8692f28a24..a5e81c595a 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.1 pkgver=${_ver_base//-/} -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -171,7 +171,15 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0032-qt-5.3.2-Disable-jitted-Regexp-for-Mingw-64-bit-94712.patch 0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch 0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch - 0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch) + 0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch + 0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch + 0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch + 0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch + 0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch + 0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch + 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch + 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch + 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch) md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' @@ -207,7 +215,15 @@ md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' '516036cb0721d1603009e01f5bd728aa' '47e70b9a063aa99aba0096007ed5b83d' '3049f9e43e24f7eaafb4659c72ca4789' - 'cbef002e6f4b0d043ca6a6e9d60ceca5') + 'cbef002e6f4b0d043ca6a6e9d60ceca5' + 'fbf568c6ed68ab4a372e03f9b84dafe8' + 'f323f5016ab38ceb3f10673ef9ae4337' + 'd66b2afce490ab8a82feae08c747e367' + '92fb1954fe3ab91d99a09c7f8a878218' + 'ab2cac300aa7a908ea8840649f0b51fc' + '7d8093f2b8b0347304159c0e5836f3aa' + '51016015352313cdd749ae1ff3e14614' + '9bc9c1177134d0f2fd782db3f394a318') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -315,6 +331,19 @@ prepare() { patch -p1 -i ${srcdir}/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch patch -p1 -i ${srcdir}/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch + # Patches so that qt5-static can be used with cmake. + patch -p1 -i ${srcdir}/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch + patch -p1 -i ${srcdir}/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch + patch -p1 -i ${srcdir}/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch + patch -p1 -i ${srcdir}/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch + patch -p1 -i ${srcdir}/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch + patch -p1 -i ${srcdir}/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch + patch -p1 -i ${srcdir}/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch + + pushd qtbase > /dev/null + patch -p1 -i ${srcdir}/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch + popd > /dev/null + # See: https://bugreports.qt-project.org/browse/QTBUG-37902 # _ver_num=${_ver_base%%-*} # sed -i "s/^MODULE_VERSION = .*$/MODULE_VERSION = ${_ver_num}/g" qtenginio/.qmake.conf From 87b796dc06242aa1a21923be94e888795c209c70 Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 5 Apr 2015 19:32:12 +0800 Subject: [PATCH 0799/2060] flexdll: new package Signed-off-by: Junjie Mao --- .../0001-Fix-the-List.hd-exception.patch | 30 ++++++++ ...rt2.o-into-the-default-library-searc.patch | 25 +++++++ ...s-of-stdout-to-workaround-the-missin.patch | 38 ++++++++++ mingw-w64-flexdll/PKGBUILD | 72 +++++++++++++++++++ 4 files changed, 165 insertions(+) create mode 100644 mingw-w64-flexdll/0001-Fix-the-List.hd-exception.patch create mode 100644 mingw-w64-flexdll/0002-Add-path-to-libcrt2.o-into-the-default-library-searc.patch create mode 100644 mingw-w64-flexdll/0003-Remove-the-usages-of-stdout-to-workaround-the-missin.patch create mode 100644 mingw-w64-flexdll/PKGBUILD diff --git a/mingw-w64-flexdll/0001-Fix-the-List.hd-exception.patch b/mingw-w64-flexdll/0001-Fix-the-List.hd-exception.patch new file mode 100644 index 0000000000..d2e37249a7 --- /dev/null +++ b/mingw-w64-flexdll/0001-Fix-the-List.hd-exception.patch @@ -0,0 +1,30 @@ +From 504e2c48dd2ae889f5b76efcde5da18580dcbab3 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Thu, 2 Apr 2015 19:18:55 +0800 +Subject: [PATCH] Fix the 'List.hd []' exception + +get_output may return [] if the cmd prints nothing, leading get_output1 +to fail due to a 'List.hd []'. 'gcc -print-sysroot' is such a case. + +Signed-off-by: Junjie Mao +--- + reloc.ml | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/reloc.ml b/reloc.ml +index e175802..5f92e10 100644 +--- a/reloc.ml ++++ b/reloc.ml +@@ -85,7 +85,9 @@ let get_output ?(use_bash = false) ?(accept_error=false) cmd = + r + + let get_output1 ?use_bash cmd = +- List.hd (get_output ?use_bash cmd) ++ match (get_output ?use_bash cmd) with ++ | [] -> "" ++ | h :: t -> h + + + (* Preparing command line *) +-- +2.3.4 diff --git a/mingw-w64-flexdll/0002-Add-path-to-libcrt2.o-into-the-default-library-searc.patch b/mingw-w64-flexdll/0002-Add-path-to-libcrt2.o-into-the-default-library-searc.patch new file mode 100644 index 0000000000..91f0b2e291 --- /dev/null +++ b/mingw-w64-flexdll/0002-Add-path-to-libcrt2.o-into-the-default-library-searc.patch @@ -0,0 +1,25 @@ +From 862fa31ae745b9fecf8a5663a1ff1c757ca18a9d Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Sat, 4 Apr 2015 18:49:50 +0800 +Subject: [PATCH] Add path to libcrt2.o into the default library search + path + +Signed-off-by: Junjie Mao +--- + reloc.ml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/reloc.ml b/reloc.ml +index 5f92e10..b4b96bd 100644 +--- a/reloc.ml ++++ b/reloc.ml +@@ -1059,6 +1059,7 @@ let setup_toolchain () = + [ + Filename.dirname (get_output1 (!gcc ^ " -print-libgcc-file-name")); + get_output1 (!gcc ^ " -print-sysroot") ^ "/mingw/lib"; ++ (match !toolchain with | `MINGW -> "/mingw32" | `MINGW64 -> "/mingw64" | _ -> "") ^ "/" ^ pre ^ "/lib"; + ]; + default_libs := + ["-lmingw32"; "-lgcc"; "-lmoldname"; "-lmingwex"; "-lmsvcrt"; +-- +2.3.4 diff --git a/mingw-w64-flexdll/0003-Remove-the-usages-of-stdout-to-workaround-the-missin.patch b/mingw-w64-flexdll/0003-Remove-the-usages-of-stdout-to-workaround-the-missin.patch new file mode 100644 index 0000000000..0d35c4f1ee --- /dev/null +++ b/mingw-w64-flexdll/0003-Remove-the-usages-of-stdout-to-workaround-the-missin.patch @@ -0,0 +1,38 @@ +From d5c628a8b9a263a74874612638ff5426c4eff36a Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Sat, 4 Apr 2015 19:08:51 +0800 +Subject: [PATCH] Remove the usages of stdout to workaround the missing of + __getreent + +Signed-off-by: Junjie Mao +--- + test/dump.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/test/dump.c b/test/dump.c +index 0d6d700..bb4abe7 100644 +--- a/test/dump.c ++++ b/test/dump.c +@@ -25,9 +25,9 @@ int main(int argc, char **argv) + int i; + torun *torun; + +- printf("INIT\n"); fflush(stdout); ++ printf("INIT\n"); + flexdll_dump_exports(NULL); +- printf("OK\n"); fflush(stdout); ++ printf("OK\n"); + for (i = 1; i < argc; i++) { + printf("** Loading %s\n", argv[i]); + handle = flexdll_dlopen(argv[i], FLEXDLL_RTLD_GLOBAL); +@@ -39,7 +39,7 @@ int main(int argc, char **argv) + if (NULL == handle) { printf("error: %s\n", flexdll_dlerror()); exit(2); } + + torun = flexdll_dlsym(handle, "torun"); +- printf("Now running %p...\n", torun); fflush(stdout); ++ printf("Now running %p...\n", torun); + if (torun) torun(); + } + exit(0); +-- +2.3.4 diff --git a/mingw-w64-flexdll/PKGBUILD b/mingw-w64-flexdll/PKGBUILD new file mode 100644 index 0000000000..00c6d5e4ab --- /dev/null +++ b/mingw-w64-flexdll/PKGBUILD @@ -0,0 +1,72 @@ +# Maintainer: Junjie Mao + +_realname=flexdll +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=0.31 +pkgrel=1 +pkgdesc='An implementation of a dlopen-like API for Windows' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='http://alain.frisch.fr/flexdll.html' +license=('zlib/libpng License') +makedepends=("${MINGW_PACKAGE_PREFIX}-ocaml") +source=("http://alain.frisch.fr/flexdll/${_realname}-${pkgver}.tar.gz" + "0001-Fix-the-List.hd-exception.patch" + "0002-Add-path-to-libcrt2.o-into-the-default-library-searc.patch" + "0003-Remove-the-usages-of-stdout-to-workaround-the-missin.patch") +sha1sums=('7ca63bf8d6c731fd95e0d434a8cfbcc718b99d62' + '642c99ad0d2035ef028254aff41dbff49014bed3' + '31ebdca246a4df6069d733350c9a2b8c94d33dec' + '43f232f04934a0c7797f05e8db03f04ae156d8c4') + +env=${MINGW_PREFIX#/} +if [ "${env}" == "mingw32" ]; then + chain="mingw" +else + chain="mingw64" +fi +_pkg="${_realname}-${pkgver}" +_pkgsrc="${env}-${_pkg}" +noextract=(${_pkg}.tar.gz) +prepare() { + cd $startdir/ + [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} + tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} + + cd ${srcdir} + mv ${_realname} ${_pkgsrc} + cd ${_pkgsrc} + + patch -p1 -i ${srcdir}/0001-Fix-the-List.hd-exception.patch + patch -p1 -i ${srcdir}/0002-Add-path-to-libcrt2.o-into-the-default-library-searc.patch + patch -p1 -i ${srcdir}/0003-Remove-the-usages-of-stdout-to-workaround-the-missin.patch +} + +build() { + cd ${srcdir}/${_pkgsrc} + + export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml + make flexlink.exe -j1 + make build_${chain} -j1 +} + +check() { + # The test demo works on x86_64 but fails on i686. Root causes of the failure + # is still unknown, but the tool is good enough to be used in other + # applications such as ocaml and coq. + plain "skip" +} + +package() { + cd ${srcdir}/${_pkgsrc} + + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ + install flexlink.exe ${pkgdir}${MINGW_PREFIX}/bin/ + install flexdll_${chain}.o ${pkgdir}${MINGW_PREFIX}/bin/ + install flexdll_initer_${chain}.o ${pkgdir}${MINGW_PREFIX}/bin/ + for f in flexdll.h flexdll.c flexdll_initer.c default.manifest default_amd64.manifest; do + install ${f} ${pkgdir}${MINGW_PREFIX}/bin/ + done + [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + [ -f CHANGES ] && install -Dm644 CHANGES ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/CHANGES +} From 1e0a11a8875e7eb3d27d10b796d6b5ddfe6ab1d0 Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 5 Apr 2015 19:32:39 +0800 Subject: [PATCH 0800/2060] ocaml: new package Signed-off-by: Junjie Mao --- ...e-Makefile.mingw-to-Makefile.mingw32.patch | 381 ++++++++++++++++++ ...0002-Adapt-to-msys2-directory-layout.patch | 79 ++++ .../0003-Install-manuals-in-msys2.patch | 60 +++ ...ader-has-the-extension-.exe-in-msys2.patch | 33 ++ ...ibraries-to-lib-ocaml-instead-of-lib.patch | 39 ++ mingw-w64-ocaml/PKGBUILD | 80 ++++ 6 files changed, 672 insertions(+) create mode 100644 mingw-w64-ocaml/0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch create mode 100644 mingw-w64-ocaml/0002-Adapt-to-msys2-directory-layout.patch create mode 100644 mingw-w64-ocaml/0003-Install-manuals-in-msys2.patch create mode 100644 mingw-w64-ocaml/0004-camlheader-has-the-extension-.exe-in-msys2.patch create mode 100644 mingw-w64-ocaml/0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch create mode 100644 mingw-w64-ocaml/PKGBUILD diff --git a/mingw-w64-ocaml/0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch b/mingw-w64-ocaml/0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch new file mode 100644 index 0000000000..70dc975394 --- /dev/null +++ b/mingw-w64-ocaml/0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch @@ -0,0 +1,381 @@ +From 360ad82fa708c1d4456d09ba8f76d10962ea55d6 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Wed, 1 Apr 2015 08:47:09 +0800 +Subject: [PATCH] Rename Makefile.mingw to Makefile.mingw32 + +Signed-off-by: Junjie Mao +--- + config/Makefile.mingw | 177 ------------------------------------------------ + config/Makefile.mingw32 | 177 ++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 177 insertions(+), 177 deletions(-) + delete mode 100644 config/Makefile.mingw + create mode 100644 config/Makefile.mingw32 + +diff --git a/config/Makefile.mingw b/config/Makefile.mingw +deleted file mode 100644 +index c204980..0000000 +--- a/config/Makefile.mingw ++++ /dev/null +@@ -1,177 +0,0 @@ +-######################################################################### +-# # +-# OCaml # +-# # +-# Xavier Leroy, projet Cristal, INRIA Rocquencourt # +-# # +-# Copyright 1999 Institut National de Recherche en Informatique et # +-# en Automatique. All rights reserved. This file is distributed # +-# under the terms of the GNU Library General Public License, with # +-# the special exception on linking described in file ../LICENSE. # +-# # +-######################################################################### +- +-# Configuration for Windows, Mingw compiler +- +-######### General configuration +- +-PREFIX=C:/ocamlmgw +- +-### Remove this to disable compiling ocamldebug +-WITH_DEBUGGER=ocamldebugger +- +-### Remove this to disable compiling ocamlbuild +-WITH_OCAMLBUILD=ocamlbuild +- +-### Remove this to disable compiling ocamldoc +-WITH_OCAMLDOC=ocamldoc +- +-### Where to install the binaries +-BINDIR=$(PREFIX)/bin +- +-### Where to install the standard library +-LIBDIR=$(PREFIX)/lib +- +-### Where to install the stub DLLs +-STUBLIBDIR=$(LIBDIR)/stublibs +- +-### Where to install the info files +-DISTRIB=$(PREFIX) +- +-### Where to install the man pages +-MANDIR=$(PREFIX)/man +- +-########## Toolchain and OS dependencies +- +-TOOLCHAIN=mingw +- +-### Toolchain prefix +-TARGET=i686-w64-mingw32 +-HOST=i686-w64-mingw32 +- +-TOOLPREF=$(TARGET)- +- +-CCOMPTYPE=cc +-O=o +-A=a +-S=s +-SO=s.o +-EXE=.exe +-EXT_DLL=.dll +-EXT_OBJ=.$(O) +-EXT_LIB=.$(A) +-EXT_ASM=.$(S) +-MANEXT=1 +-SHARPBANGSCRIPTS=false +-PTHREAD_LINK= +-X11_INCLUDES= +-X11_LINK= +-BYTECCRPATH= +-SUPPORTS_SHARED_LIBRARIES=true +-SHAREDCCCOMPOPTS= +-MKSHAREDLIBRPATH= +-NATIVECCPROFOPTS= +-NATIVECCRPATH= +-ASM=$(TOOLPREF)as +-ASPP=$(TOOLPREF)gcc -c +-ASPPPROFFLAGS= +-PROFILING=noprof +-DYNLINKOPTS= +-CC_PROFILE= +-SYSTHREAD_SUPPORT=true +-EXTRALIBS= +-NATDYNLINK=true +-CMXS=cmxs +-RUNTIMED=noruntimed +-ASM_CFI_SUPPORTED=false +-UNIXLIB=win32unix +-GRAPHLIB=win32graph +- +-########## Configuration for the bytecode compiler +- +-### Which C compiler to use for the bytecode interpreter. +-BYTECC=$(TOOLPREF)gcc +- +-### Additional compile-time options for $(BYTECC). (For static linking.) +-BYTECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused +- +-### Additional link-time options for $(BYTECC). (For static linking.) +-BYTECCLINKOPTS= +- +-### Additional compile-time options for $(BYTECC). (For building a DLL.) +-DLLCCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused -DCAML_DLL +- +-### Libraries needed +-BYTECCLIBS=-lws2_32 +-NATIVECCLIBS=-lws2_32 +- +-### How to invoke the C preprocessor +-CPP=$(BYTECC) -E +- +-### Flexlink +-FLEXLINK=flexlink -chain mingw -stack 16777216 -link -static-libgcc +-FLEXDIR:=$(shell $(FLEXLINK) -where) +-IFLEXDIR=-I"$(FLEXDIR)" +-MKDLL=$(FLEXLINK) +-MKEXE=$(FLEXLINK) -exe +-MKMAINDLL=$(FLEXLINK) -maindll +- +-### How to build a static library +-MKLIB=rm -f $(1); $(TOOLPREF)ar rc $(1) $(2); $(RANLIB) $(1) +-#ml let mklib out files opts = Printf.sprintf "rm -f %s && %sar rcs %s %s %s" out toolpref opts out files;; +- +-### Canonicalize the name of a system library +-SYSLIB=-l$(1) +-#ml let syslib x = "-l"^x;; +- +-### The ranlib command +-RANLIB=$(TOOLPREF)ranlib +-RANLIBCMD=$(TOOLPREF)ranlib +- +-### The ar command +-ARCMD=$(TOOLPREF)ar +- +-############# Configuration for the native-code compiler +- +-### Name of architecture for the native-code compiler +-ARCH=i386 +- +-### Name of architecture model for the native-code compiler. +-MODEL=default +- +-### Name of operating system family for the native-code compiler. +-SYSTEM=mingw +- +-### Which C compiler to use for the native-code compiler. +-NATIVECC=$(BYTECC) +- +-### Additional compile-time options for $(NATIVECC). +-NATIVECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused +- +-### Additional link-time options for $(NATIVECC) +-NATIVECCLINKOPTS= +- +-### Build partially-linked object file +-PACKLD=$(TOOLPREF)ld -r $(NATIVECCLINKOPTS) -o # must have a space after '-o' +- +-############# Configuration for the contributed libraries +- +-OTHERLIBRARIES=win32unix str num win32graph dynlink bigarray systhreads +- +-### Name of the target architecture for the "num" library +-BNG_ARCH=ia32 +-BNG_ASM_LEVEL=1 +- +-############# Aliases for common commands +- +-MAKEREC=$(MAKE) -f Makefile.nt +-MAKECMD=$(MAKE) +- +-############# for the testsuite makefiles +-#ml let topdir = "" and wintopdir = "";; +-OTOPDIR=$(WINTOPDIR) +-CTOPDIR=$(TOPDIR) +-CYGPATH=cygpath -m +-DIFF=diff -q --strip-trailing-cr +-CANKILL=false +-SET_LD_PATH=PATH="$(PATH):$(LD_PATH)" +diff --git a/config/Makefile.mingw32 b/config/Makefile.mingw32 +new file mode 100644 +index 0000000..c204980 +--- /dev/null ++++ b/config/Makefile.mingw32 +@@ -0,0 +1,177 @@ ++######################################################################### ++# # ++# OCaml # ++# # ++# Xavier Leroy, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999 Institut National de Recherche en Informatique et # ++# en Automatique. All rights reserved. This file is distributed # ++# under the terms of the GNU Library General Public License, with # ++# the special exception on linking described in file ../LICENSE. # ++# # ++######################################################################### ++ ++# Configuration for Windows, Mingw compiler ++ ++######### General configuration ++ ++PREFIX=C:/ocamlmgw ++ ++### Remove this to disable compiling ocamldebug ++WITH_DEBUGGER=ocamldebugger ++ ++### Remove this to disable compiling ocamlbuild ++WITH_OCAMLBUILD=ocamlbuild ++ ++### Remove this to disable compiling ocamldoc ++WITH_OCAMLDOC=ocamldoc ++ ++### Where to install the binaries ++BINDIR=$(PREFIX)/bin ++ ++### Where to install the standard library ++LIBDIR=$(PREFIX)/lib ++ ++### Where to install the stub DLLs ++STUBLIBDIR=$(LIBDIR)/stublibs ++ ++### Where to install the info files ++DISTRIB=$(PREFIX) ++ ++### Where to install the man pages ++MANDIR=$(PREFIX)/man ++ ++########## Toolchain and OS dependencies ++ ++TOOLCHAIN=mingw ++ ++### Toolchain prefix ++TARGET=i686-w64-mingw32 ++HOST=i686-w64-mingw32 ++ ++TOOLPREF=$(TARGET)- ++ ++CCOMPTYPE=cc ++O=o ++A=a ++S=s ++SO=s.o ++EXE=.exe ++EXT_DLL=.dll ++EXT_OBJ=.$(O) ++EXT_LIB=.$(A) ++EXT_ASM=.$(S) ++MANEXT=1 ++SHARPBANGSCRIPTS=false ++PTHREAD_LINK= ++X11_INCLUDES= ++X11_LINK= ++BYTECCRPATH= ++SUPPORTS_SHARED_LIBRARIES=true ++SHAREDCCCOMPOPTS= ++MKSHAREDLIBRPATH= ++NATIVECCPROFOPTS= ++NATIVECCRPATH= ++ASM=$(TOOLPREF)as ++ASPP=$(TOOLPREF)gcc -c ++ASPPPROFFLAGS= ++PROFILING=noprof ++DYNLINKOPTS= ++CC_PROFILE= ++SYSTHREAD_SUPPORT=true ++EXTRALIBS= ++NATDYNLINK=true ++CMXS=cmxs ++RUNTIMED=noruntimed ++ASM_CFI_SUPPORTED=false ++UNIXLIB=win32unix ++GRAPHLIB=win32graph ++ ++########## Configuration for the bytecode compiler ++ ++### Which C compiler to use for the bytecode interpreter. ++BYTECC=$(TOOLPREF)gcc ++ ++### Additional compile-time options for $(BYTECC). (For static linking.) ++BYTECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused ++ ++### Additional link-time options for $(BYTECC). (For static linking.) ++BYTECCLINKOPTS= ++ ++### Additional compile-time options for $(BYTECC). (For building a DLL.) ++DLLCCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused -DCAML_DLL ++ ++### Libraries needed ++BYTECCLIBS=-lws2_32 ++NATIVECCLIBS=-lws2_32 ++ ++### How to invoke the C preprocessor ++CPP=$(BYTECC) -E ++ ++### Flexlink ++FLEXLINK=flexlink -chain mingw -stack 16777216 -link -static-libgcc ++FLEXDIR:=$(shell $(FLEXLINK) -where) ++IFLEXDIR=-I"$(FLEXDIR)" ++MKDLL=$(FLEXLINK) ++MKEXE=$(FLEXLINK) -exe ++MKMAINDLL=$(FLEXLINK) -maindll ++ ++### How to build a static library ++MKLIB=rm -f $(1); $(TOOLPREF)ar rc $(1) $(2); $(RANLIB) $(1) ++#ml let mklib out files opts = Printf.sprintf "rm -f %s && %sar rcs %s %s %s" out toolpref opts out files;; ++ ++### Canonicalize the name of a system library ++SYSLIB=-l$(1) ++#ml let syslib x = "-l"^x;; ++ ++### The ranlib command ++RANLIB=$(TOOLPREF)ranlib ++RANLIBCMD=$(TOOLPREF)ranlib ++ ++### The ar command ++ARCMD=$(TOOLPREF)ar ++ ++############# Configuration for the native-code compiler ++ ++### Name of architecture for the native-code compiler ++ARCH=i386 ++ ++### Name of architecture model for the native-code compiler. ++MODEL=default ++ ++### Name of operating system family for the native-code compiler. ++SYSTEM=mingw ++ ++### Which C compiler to use for the native-code compiler. ++NATIVECC=$(BYTECC) ++ ++### Additional compile-time options for $(NATIVECC). ++NATIVECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused ++ ++### Additional link-time options for $(NATIVECC) ++NATIVECCLINKOPTS= ++ ++### Build partially-linked object file ++PACKLD=$(TOOLPREF)ld -r $(NATIVECCLINKOPTS) -o # must have a space after '-o' ++ ++############# Configuration for the contributed libraries ++ ++OTHERLIBRARIES=win32unix str num win32graph dynlink bigarray systhreads ++ ++### Name of the target architecture for the "num" library ++BNG_ARCH=ia32 ++BNG_ASM_LEVEL=1 ++ ++############# Aliases for common commands ++ ++MAKEREC=$(MAKE) -f Makefile.nt ++MAKECMD=$(MAKE) ++ ++############# for the testsuite makefiles ++#ml let topdir = "" and wintopdir = "";; ++OTOPDIR=$(WINTOPDIR) ++CTOPDIR=$(TOPDIR) ++CYGPATH=cygpath -m ++DIFF=diff -q --strip-trailing-cr ++CANKILL=false ++SET_LD_PATH=PATH="$(PATH):$(LD_PATH)" +-- +2.3.4 diff --git a/mingw-w64-ocaml/0002-Adapt-to-msys2-directory-layout.patch b/mingw-w64-ocaml/0002-Adapt-to-msys2-directory-layout.patch new file mode 100644 index 0000000000..9a5ebbd875 --- /dev/null +++ b/mingw-w64-ocaml/0002-Adapt-to-msys2-directory-layout.patch @@ -0,0 +1,79 @@ +From aba4874ac9db486398a83608bbbce0bb5223b1b5 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Wed, 1 Apr 2015 08:53:36 +0800 +Subject: [PATCH] Adapt to msys2 directory layout + +Signed-off-by: Junjie Mao +--- + config/Makefile.mingw32 | 11 +++++++---- + config/Makefile.mingw64 | 11 +++++++---- + 2 files changed, 14 insertions(+), 8 deletions(-) + +diff --git a/config/Makefile.mingw32 b/config/Makefile.mingw32 +index c204980..032b8ed 100644 +--- a/config/Makefile.mingw32 ++++ b/config/Makefile.mingw32 +@@ -15,7 +15,7 @@ + + ######### General configuration + +-PREFIX=C:/ocamlmgw ++PREFIX?=/mingw32 + + ### Remove this to disable compiling ocamldebug + WITH_DEBUGGER=ocamldebugger +@@ -108,13 +108,16 @@ NATIVECCLIBS=-lws2_32 + ### How to invoke the C preprocessor + CPP=$(BYTECC) -E + ++### Additional link-time options for $(MKEXE). ++MKEXELINKOPTS=-L$(shell cygpath -m /mingw32/i686-w64-mingw32/lib) ++ + ### Flexlink + FLEXLINK=flexlink -chain mingw -stack 16777216 -link -static-libgcc + FLEXDIR:=$(shell $(FLEXLINK) -where) + IFLEXDIR=-I"$(FLEXDIR)" +-MKDLL=$(FLEXLINK) +-MKEXE=$(FLEXLINK) -exe +-MKMAINDLL=$(FLEXLINK) -maindll ++MKDLL=$(FLEXLINK) $(MKEXELINKOPTS) ++MKEXE=$(FLEXLINK) -exe $(MKEXELINKOPTS) ++MKMAINDLL=$(FLEXLINK) -maindll $(MKEXELINKOPTS) + + ### How to build a static library + MKLIB=rm -f $(1); $(TOOLPREF)ar rc $(1) $(2); $(RANLIB) $(1) +diff --git a/config/Makefile.mingw64 b/config/Makefile.mingw64 +index 0a3bdfb..566aab3 100644 +--- a/config/Makefile.mingw64 ++++ b/config/Makefile.mingw64 +@@ -15,7 +15,7 @@ + + ######### General configuration + +-PREFIX=C:/ocamlmgw64 ++PREFIX?=/mingw64 + + ### Remove this to disable compiling ocamldebug + WITH_DEBUGGER=ocamldebugger +@@ -108,13 +108,16 @@ NATIVECCLIBS=-lws2_32 + ### How to invoke the C preprocessor + CPP=$(BYTECC) -E + ++### Additional link-time options for $(MKEXE). ++MKEXELINKOPTS=-L$(shell cygpath -m /mingw64/x86_64-w64-mingw32/lib) ++ + ### Flexlink + FLEXLINK=flexlink -chain mingw64 -stack 33554432 + FLEXDIR:=$(shell $(FLEXLINK) -where) + IFLEXDIR=-I"$(FLEXDIR)" +-MKDLL=$(FLEXLINK) +-MKEXE=$(FLEXLINK) -exe +-MKMAINDLL=$(FLEXLINK) -maindll ++MKDLL=$(FLEXLINK) $(MKEXELINKOPTS) ++MKEXE=$(FLEXLINK) -exe $(MKEXELINKOPTS) ++MKMAINDLL=$(FLEXLINK) -maindll $(MKEXELINKOPTS) + + ### How to build a static library + MKLIB=rm -f $(1); $(TOOLPREF)ar rc $(1) $(2); $(RANLIB) $(1) +-- +2.3.4 diff --git a/mingw-w64-ocaml/0003-Install-manuals-in-msys2.patch b/mingw-w64-ocaml/0003-Install-manuals-in-msys2.patch new file mode 100644 index 0000000000..73139d4cc3 --- /dev/null +++ b/mingw-w64-ocaml/0003-Install-manuals-in-msys2.patch @@ -0,0 +1,60 @@ +From 0eb523e80cfa15e7b77c250bc1b2fa8e49cfa5e6 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Fri, 3 Apr 2015 07:54:14 +0800 +Subject: [PATCH] Install manuals in msys2 + +Signed-off-by: Junjie Mao +--- + Makefile.nt | 2 ++ + config/Makefile.mingw32 | 2 +- + config/Makefile.mingw64 | 2 +- + 3 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/Makefile.nt b/Makefile.nt +index 16b53fe..cbc5618 100644 +--- a/Makefile.nt ++++ b/Makefile.nt +@@ -237,6 +237,7 @@ installbyt: + mkdir -p $(INSTALL_LIBDIR) + mkdir -p $(INSTALL_STUBLIBDIR) + mkdir -p $(INSTALL_COMPLIBDIR) ++ mkdir -p $(INSTALL_MANDIR)/man$(MANEXT); + cp VERSION $(INSTALL_LIBDIR)/ + cd byterun ; $(MAKEREC) install + cp ocamlc $(INSTALL_BINDIR)/ocamlc.exe +@@ -252,6 +253,7 @@ installbyt: + cp expunge $(INSTALL_LIBDIR)/expunge.exe + cp toplevel/topdirs.cmi $(INSTALL_LIBDIR) + cd tools ; $(MAKEREC) install ++ cd man; $(MAKE) install + for i in $(OTHERLIBRARIES); do \ + $(MAKEREC) -C otherlibs/$$i install || exit $$?; \ + done +diff --git a/config/Makefile.mingw32 b/config/Makefile.mingw32 +index 032b8ed..c283724 100644 +--- a/config/Makefile.mingw32 ++++ b/config/Makefile.mingw32 +@@ -39,7 +39,7 @@ STUBLIBDIR=$(LIBDIR)/stublibs + DISTRIB=$(PREFIX) + + ### Where to install the man pages +-MANDIR=$(PREFIX)/man ++MANDIR=$(PREFIX)/share/man + + ########## Toolchain and OS dependencies + +diff --git a/config/Makefile.mingw64 b/config/Makefile.mingw64 +index 566aab3..a7ca30e 100644 +--- a/config/Makefile.mingw64 ++++ b/config/Makefile.mingw64 +@@ -39,7 +39,7 @@ STUBLIBDIR=$(LIBDIR)/stublibs + DISTRIB=$(PREFIX) + + ### Where to install the man pages +-MANDIR=$(PREFIX)/man ++MANDIR=$(PREFIX)/share/man + + ########## Toolchain and OS dependencies + +-- +2.3.4 diff --git a/mingw-w64-ocaml/0004-camlheader-has-the-extension-.exe-in-msys2.patch b/mingw-w64-ocaml/0004-camlheader-has-the-extension-.exe-in-msys2.patch new file mode 100644 index 0000000000..099499751e --- /dev/null +++ b/mingw-w64-ocaml/0004-camlheader-has-the-extension-.exe-in-msys2.patch @@ -0,0 +1,33 @@ +From 027aac26cd33573e20f843a5ec3217c061359921 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Fri, 3 Apr 2015 08:18:50 +0800 +Subject: [PATCH] camlheader has the extension .exe in msys2 + +Signed-off-by: Junjie Mao +--- + bytecomp/bytelink.ml | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/bytecomp/bytelink.ml b/bytecomp/bytelink.ml +index c0f8f6a..f3216e0 100644 +--- a/bytecomp/bytelink.ml ++++ b/bytecomp/bytelink.ml +@@ -304,7 +304,15 @@ let link_bytecode ppf tolink exec_name standalone = + let inchan = open_in_bin (find_in_path !load_path header) in + copy_file inchan outchan; + close_in inchan +- with Not_found | Sys_error _ -> () ++ with Not_found | Sys_error _ -> ++ try ++ let header = ++ if String.length !Clflags.use_runtime > 0 ++ then "camlheader_ur.exe" else "camlheader" ^ !Clflags.runtime_variant ^ ".exe" in ++ let inchan = open_in_bin (find_in_path !load_path header) in ++ copy_file inchan outchan; ++ close_in inchan ++ with Not_found | Sys_error _ -> () + end; + Bytesections.init_record outchan; + (* The path to the bytecode interpreter (in use_runtime mode) *) +-- +2.3.4 diff --git a/mingw-w64-ocaml/0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch b/mingw-w64-ocaml/0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch new file mode 100644 index 0000000000..24e8ad2544 --- /dev/null +++ b/mingw-w64-ocaml/0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch @@ -0,0 +1,39 @@ +From 63eb66c59e70a8137b260e8e911350e4fd653d15 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Sat, 4 Apr 2015 10:38:46 +0800 +Subject: [PATCH] Install libraries to /lib/ocaml instead of /lib + +Signed-off-by: Junjie Mao +--- + config/Makefile.mingw32 | 2 +- + config/Makefile.mingw64 | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/config/Makefile.mingw32 b/config/Makefile.mingw32 +index c283724..1faf861 100644 +--- a/config/Makefile.mingw32 ++++ b/config/Makefile.mingw32 +@@ -30,7 +30,7 @@ WITH_OCAMLDOC=ocamldoc + BINDIR=$(PREFIX)/bin + + ### Where to install the standard library +-LIBDIR=$(PREFIX)/lib ++LIBDIR=$(PREFIX)/lib/ocaml + + ### Where to install the stub DLLs + STUBLIBDIR=$(LIBDIR)/stublibs +diff --git a/config/Makefile.mingw64 b/config/Makefile.mingw64 +index a7ca30e..7442363 100644 +--- a/config/Makefile.mingw64 ++++ b/config/Makefile.mingw64 +@@ -30,7 +30,7 @@ WITH_OCAMLDOC=ocamldoc + BINDIR=$(PREFIX)/bin + + ### Where to install the standard library +-LIBDIR=$(PREFIX)/lib ++LIBDIR=$(PREFIX)/lib/ocaml + + ### Where to install the stub DLLs + STUBLIBDIR=$(LIBDIR)/stublibs +-- +2.3.4 diff --git a/mingw-w64-ocaml/PKGBUILD b/mingw-w64-ocaml/PKGBUILD new file mode 100644 index 0000000000..14c6226782 --- /dev/null +++ b/mingw-w64-ocaml/PKGBUILD @@ -0,0 +1,80 @@ +# Maintainer: Junjie Mao + +_realname=ocaml +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=4.02.1 +pkgrel=1 +pkgdesc='An industrial strength programming language supporting functional, imperative and object-oriented styles.' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='http://ocaml.org/' +license=('Q Public Licence 1.0' 'GPL2') +depends=("${MINGW_PACKAGE_PREFIX}-flexdll") +makedepends=("diffutils") +source=("http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz" + "0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch" + "0002-Adapt-to-msys2-directory-layout.patch" + "0003-Install-manuals-in-msys2.patch" + "0004-camlheader-has-the-extension-.exe-in-msys2.patch" + "0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch") +sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' + '5b56a2ecff40d53158578d5a41e1eb992f3dcdc6' + 'ee16e23932922f6f9fcc48072d564b90a3b66246' + 'a780a6c94aaedcd0d19a7fbc26e09776b581a8af' + 'e1f6b201c25b61d39404406c82684f6c8d70d23a' + '17010515bd9715ed36300165643d8f3ad01288cf') + +env=${MINGW_PREFIX#/} +_pkg="${_realname}-${pkgver}" +_pkgsrc="${env}-${_pkg}" +noextract=(${_pkg}.tar.gz) +prepare() { + for prog in ar as ld ranlib; do + no_prefix=${MINGW_PREFIX}/bin/${prog}.exe + with_prefix=${MINGW_PREFIX}/bin/${CARCH}-w64-mingw32-${prog}.exe + if [ -f "${no_prefix}" ] && [ ! -f "${with_prefix}" ]; then + cp ${no_prefix} ${with_prefix} + echo ${no_prefix}, ${with_prefix} + fi + done + + cd $startdir/ + [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} + tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} + + cd ${srcdir} + mv ${_pkg} ${_pkgsrc} + cd ${_pkgsrc} + + patch -p1 -i ${srcdir}/0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch + patch -p1 -i ${srcdir}/0002-Adapt-to-msys2-directory-layout.patch + patch -p1 -i ${srcdir}/0003-Install-manuals.patch + patch -p1 -i ${srcdir}/0004-camlheader-has-the-extension-.exe-in-msys2.patch + patch -p1 -i ${srcdir}/0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch +} + +build() { + cd ${srcdir}/${_pkgsrc} + cp config/m-nt.h config/m.h + cp config/s-nt.h config/s.h + cp config/Makefile.${env} config/Makefile + + make -f Makefile.nt world PREFIX="$(cygpath -m ${MINGW_PREFIX})" -j1 + make -f Makefile.nt bootstrap PREFIX="$(cygpath -m ${MINGW_PREFIX})" -j1 + make -f Makefile.nt opt PREFIX="$(cygpath -m ${MINGW_PREFIX})" -j1 + make -f Makefile.nt opt.opt PREFIX="$(cygpath -m ${MINGW_PREFIX})" -j1 +} + +check() { + # The testsuite refuses to compile due to lack of headers such as sys/resource.h + plain "skip" +} + +package() { + cd ${srcdir}/${_pkgsrc} + make -f Makefile.nt install PREFIX="${pkgdir}${MINGW_PREFIX}" -j1 + [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + + mkdir -p ${pkgdir}/etc/profile.d + echo '[ "$MSYSTEM" = "'$(echo ${env} | tr "[:lower:]" "[:upper:]")'" ] && export OCAMLLIB='${MINGW_PREFIX}'/lib/ocaml' > ${pkgdir}/etc/profile.d/ocaml.${env}.sh +} From b3f7863791a30152150d42c11a114151d3f1bd22 Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 5 Apr 2015 19:33:22 +0800 Subject: [PATCH 0801/2060] ocaml-findlib: new package Signed-off-by: Junjie Mao --- mingw-w64-ocaml-findlib/PKGBUILD | 50 ++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 mingw-w64-ocaml-findlib/PKGBUILD diff --git a/mingw-w64-ocaml-findlib/PKGBUILD b/mingw-w64-ocaml-findlib/PKGBUILD new file mode 100644 index 0000000000..7407ef716a --- /dev/null +++ b/mingw-w64-ocaml-findlib/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: Junjie Mao + +_realname=ocaml-findlib +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1.5.5 +pkgrel=1 +pkgdesc='OCaml library manager' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='http://projects.camlcity.org/projects/findlib.html' +license=('custom') +depends=("${MINGW_PACKAGE_PREFIX}-ocaml") +source=("http://download.camlcity.org/download/findlib-1.5.5.tar.gz") +sha1sums=('3221121c4b5adacc050aa361475eee59b2698afa') + +env=${MINGW_PREFIX#/} +_pkg="findlib-${pkgver}" +_pkgsrc="${env}-${_pkg}" +noextract=(${_pkg}.tar.gz) +prepare() { + cd $startdir/ + [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} + tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} + + cd ${srcdir} + mv ${_pkg} ${_pkgsrc} + cd ${_pkgsrc} +} + +build() { + cd ${srcdir}/${_pkgsrc} + export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml + ./configure -system win32 \ + -sitelib ${MINGW_PREFIX}/lib/ocaml \ + -mandir ${MINGW_PREFIX}/share/man \ + -no-camlp4 + make all -j1 + make opt -j1 +} + +check() { + # The package does not include a testsuite + plain "skip" +} + +package() { + cd ${srcdir}/${_pkgsrc} + make install prefix=${pkgdir} + [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE +} From 7f2b00189dc722f7db97dfd93f1158a4f5cb59f5 Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 5 Apr 2015 19:33:35 +0800 Subject: [PATCH 0802/2060] ocaml-camlp4: new package Signed-off-by: Junjie Mao --- ...ote-preprocessor-command-to-ocamldep.patch | 29 +++++++ .../0002-Add-DESTDIR-in-configure.patch | 83 +++++++++++++++++++ mingw-w64-ocaml-camlp4/PKGBUILD | 60 ++++++++++++++ 3 files changed, 172 insertions(+) create mode 100644 mingw-w64-ocaml-camlp4/0001-Properly-quote-preprocessor-command-to-ocamldep.patch create mode 100644 mingw-w64-ocaml-camlp4/0002-Add-DESTDIR-in-configure.patch create mode 100644 mingw-w64-ocaml-camlp4/PKGBUILD diff --git a/mingw-w64-ocaml-camlp4/0001-Properly-quote-preprocessor-command-to-ocamldep.patch b/mingw-w64-ocaml-camlp4/0001-Properly-quote-preprocessor-command-to-ocamldep.patch new file mode 100644 index 0000000000..9b94d530f1 --- /dev/null +++ b/mingw-w64-ocaml-camlp4/0001-Properly-quote-preprocessor-command-to-ocamldep.patch @@ -0,0 +1,29 @@ +From b50f443639a6d6c36d5cd492d8f8da81b5beb5ce Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Fri, 3 Apr 2015 09:58:18 +0800 +Subject: [PATCH] Properly quote preprocessor command to ocamldep + +Build in msys2 fails with not able to execute +''''camlp4\boot\camlp4boot.native' -D OPT' as the preprocessor for +ocamldep because the path is outside the quotes. + +Signed-off-by: Junjie Mao +--- + myocamlbuild.ml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/myocamlbuild.ml b/myocamlbuild.ml +index 0573bef..d318c64 100644 +--- a/myocamlbuild.ml ++++ b/myocamlbuild.ml +@@ -84,7 +84,7 @@ let () = + let dep = "camlp4"/"boot"/exe in + let cmd = + let ( / ) = Filename.concat in +- "camlp4"/"boot"/exe ++ "'" ^ "camlp4"/"boot"/exe ^ "'" + in + (Some dep, cmd) + in +-- +2.3.4 diff --git a/mingw-w64-ocaml-camlp4/0002-Add-DESTDIR-in-configure.patch b/mingw-w64-ocaml-camlp4/0002-Add-DESTDIR-in-configure.patch new file mode 100644 index 0000000000..976838d949 --- /dev/null +++ b/mingw-w64-ocaml-camlp4/0002-Add-DESTDIR-in-configure.patch @@ -0,0 +1,83 @@ +From 528dc19da11d3b35e61a81b142430252db1db30b Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Fri, 3 Apr 2015 10:53:09 +0800 +Subject: [PATCH] Add DESTDIR in configure + +Signed-off-by: Junjie Mao +--- + Makefile | 4 ++-- + build/install.sh | 4 ++-- + configure | 8 +++++++- + 3 files changed, 11 insertions(+), 5 deletions(-) + +diff --git a/Makefile b/Makefile +index c8bd7a4..0ee0046 100644 +--- a/Makefile ++++ b/Makefile +@@ -23,8 +23,8 @@ install: + + .PHONY: install-META + install-META: camlp4/META +- mkdir -p ${PKGDIR}/camlp4/ +- cp -f camlp4/META ${PKGDIR}/camlp4/ ++ mkdir -p ${DESTDIR}${PKGDIR}/camlp4/ ++ cp -f camlp4/META ${DESTDIR}${PKGDIR}/camlp4/ + + camlp4/META: camlp4/META.in + sed -e s/@@VERSION@@/${version}/g $? > $@ +diff --git a/build/install.sh b/build/install.sh +index 9d98d6c..220e878 100644 +--- a/build/install.sh ++++ b/build/install.sh +@@ -26,8 +26,8 @@ SAVED_LIBDIR="${LIBDIR}" + + . ./config.sh + +-BINDIR="${SAVED_BINDIR:-${BINDIR}}" +-LIBDIR="${SAVED_LIBDIR:-${LIBDIR}}" ++BINDIR="$DESTDIR${SAVED_BINDIR:-${BINDIR}}" ++LIBDIR="$DESTDIR${SAVED_LIBDIR:-${LIBDIR}}" + + not_installed=$PWD/_build/not_installed + +diff --git a/configure b/configure +index e859501..551f46e 100644 +--- a/configure ++++ b/configure +@@ -17,8 +17,11 @@ for i in "$@"; do + --pkgdir=*) + PKGDIR=${i##*=} + ;; ++ --destdir=*) ++ DESTDIR=${i##*=} ++ ;; + *) +- echo "usage: ./configure [--bindir=

] [--libdir=] [--pkgdir=]" 1>&2 ++ echo "usage: ./configure [--bindir=] [--libdir=] [--pkgdir=] [--destdir=]" 1>&2 + exit 2 + ;; + esac +@@ -44,6 +47,7 @@ OCAMLC="`which ocamlc`" + LIBDIR="${LIBDIR:-$standard_library}" + BINDIR="${BINDIR:-`dirname $OCAMLC`}" + PKGDIR="${PKGDIR:-$standard_library}" ++DESTDIR="${DESTDIR}" + + if [ -x "`which ocamlopt`" ]; then + OB_FLAGS="" +@@ -58,6 +62,7 @@ EXE="$ext_exe" + LIBDIR="$LIBDIR" + BINDIR="$BINDIR" + PKGDIR="$PKGDIR" ++DESTDIR="$DESTDIR" + OB_FLAGS=$OB_FLAGS + EOF + +@@ -65,4 +70,5 @@ cat >> myocamlbuild_config.ml < + +_realname=ocaml-camlp4 +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=4.02.1 +pkgrel=1 +pkgdesc='Pre-Processor-Pretty-Printer for OCaml' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='https://github.com/ocaml/camlp4' +license=('LGPL2') +depends=("${MINGW_PACKAGE_PREFIX}-ocaml") +makedepends=("${MINGW_PACKAGE_PREFIX}-flexdll") +source=("${_realname}-${pkgver}.tar.gz::https://github.com/ocaml/camlp4/archive/4.02.1.tar.gz" + "0001-Properly-quote-preprocessor-command-to-ocamldep.patch" + "0002-Add-DESTDIR-in-configure.patch") +sha1sums=('c16d9ae3693612c71e12d2880ec911772b8d23c3' + 'eb7a59d2e184f368d735670bea96571aa861f97b' + '6aa01135f05a5e943412bf728f90ced871c6a064') + +env=${MINGW_PREFIX#/} +_pkg="${_realname}-${pkgver}" +_pkgsrc="${env}-${_pkg}" +noextract=(${_pkg}.tar.gz) +prepare() { + cd $startdir/ + [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} + tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} + cd ${srcdir} + mv camlp4-${pkgver} ${_pkgsrc} + cd ${_pkgsrc} + + patch -p1 -i ${srcdir}/0001-Properly-quote-preprocessor-command-to-ocamldep.patch + patch -p1 -i ${srcdir}/0002-Add-DESTDIR-in-configure.patch +} + +build() { + cd ${srcdir}/${_pkgsrc} + export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml + ./configure --bindir=${MINGW_PREFIX}/bin \ + --libdir=${MINGW_PREFIX}/lib/ocaml \ + --pkgdir=${MINGW_PREFIX}/lib/ocaml \ + --destdir=${pkgdir} + make all -j1 +} + +check() { + # The package does not include an automatic test process + plain "skip" +} + +package() { + cd ${srcdir}/${_pkgsrc} + make install -j1 + make install-META -j1 + [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + + mkdir -p ${pkgdir}/etc/profile.d + echo '[ "$MSYSTEM" = "'$(echo ${env} | tr "[:lower:]" "[:upper:]")'" ] && export CAMLP4LIB='${MINGW_PREFIX}'/lib/ocaml' > ${pkgdir}/etc/profile.d/camlp4.${env}.sh +} From a1cb06218b018aec28a3b7d6265480063594a4ea Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 5 Apr 2015 19:33:51 +0800 Subject: [PATCH 0803/2060] libart_lgpl: new package Signed-off-by: Junjie Mao --- .../0001-Fix-an-installation-path-bug.patch | 26 +++++++++ mingw-w64-libart_lgpl/PKGBUILD | 53 +++++++++++++++++++ .../libart_lgpl-2.3.19-upstream_fix-1.patch | 28 ++++++++++ 3 files changed, 107 insertions(+) create mode 100644 mingw-w64-libart_lgpl/0001-Fix-an-installation-path-bug.patch create mode 100644 mingw-w64-libart_lgpl/PKGBUILD create mode 100644 mingw-w64-libart_lgpl/libart_lgpl-2.3.19-upstream_fix-1.patch diff --git a/mingw-w64-libart_lgpl/0001-Fix-an-installation-path-bug.patch b/mingw-w64-libart_lgpl/0001-Fix-an-installation-path-bug.patch new file mode 100644 index 0000000000..8c08a6bb39 --- /dev/null +++ b/mingw-w64-libart_lgpl/0001-Fix-an-installation-path-bug.patch @@ -0,0 +1,26 @@ +From 6d7c1a8ba616351711829f26b36ff18f5e18ee10 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Fri, 3 Apr 2015 20:45:14 +0800 +Subject: [PATCH] Fix an installation path bug + +Signed-off-by: Junjie Mao +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index f60343d..4501dd8 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -919,7 +919,7 @@ art_config.h: gen_art_config$(EXEEXT) + ./gen_art_config > art_config.h + + @OS_WIN32_TRUE@install-libtool-import-lib: +-@OS_WIN32_TRUE@ $(INSTALL) .libs/libart_lgpl_2.dll.a $(DESTDIR)$(libdir) ++@OS_WIN32_TRUE@ $(INSTALL) -D .libs/libart_lgpl_2.dll.a $(DESTDIR)$(libdir)/libart_lgpl_2.dll.a + @OS_WIN32_TRUE@uninstall-libtool-import-lib: + @OS_WIN32_TRUE@ -rm $(DESTDIR)$(libdir)/libart_lgpl_2.dll.a + @OS_WIN32_FALSE@install-libtool-import-lib: +-- +2.3.4 + diff --git a/mingw-w64-libart_lgpl/PKGBUILD b/mingw-w64-libart_lgpl/PKGBUILD new file mode 100644 index 0000000000..586f3852a7 --- /dev/null +++ b/mingw-w64-libart_lgpl/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer: Junjie Mao + +_realname=libart_lgpl +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=2.3.19 +pkgrel=1 +pkgdesc='library for high-performance 2D graphics' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='http://www.levien.com/libart' +license=('custom') +source=("http://ftp.gnome.org/pub/gnome/sources/libart_lgpl/2.3/libart_lgpl-2.3.19.tar.bz2" + "http://www.linuxfromscratch.org/patches/blfs/6.3/libart_lgpl-2.3.19-upstream_fix-1.patch" + "0001-Fix-an-installation-path-bug.patch") +sha1sums=('7f1ff36c91cdc8f14b62acb50836f52a0c735b9e' + 'b901b64b6ef370ef1eeeb5aa374b91c7fed5534f' + '1079fcc8b813ce55b445278493fb831a91e347e6') + +prepare() { + cd $srcdir/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/libart_lgpl-2.3.19-upstream_fix-1.patch + patch -p1 -i ${srcdir}/0001-Fix-an-installation-path-bug.patch +} + +build() { + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --exec-prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared + cp ../${_realname}-${pkgver}/libart.def libart.def + make +} + +check() { + # The package ships with some test tools but provides no automatic check mechanisms + plain "skip" +} + +package() { + cd "${srcdir}"/build-${CARCH} + make install DESTDIR="${pkgdir}" + + cd "$srcdir"/${_realname}-${pkgver} + [ -f COPYING ] && install -Dm644 COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING + [ -f AUTHORS ] && install -Dm644 AUTHORS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/AUTHORS + [ -f NEWS ] && install -Dm644 NEWS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/NEWS +} diff --git a/mingw-w64-libart_lgpl/libart_lgpl-2.3.19-upstream_fix-1.patch b/mingw-w64-libart_lgpl/libart_lgpl-2.3.19-upstream_fix-1.patch new file mode 100644 index 0000000000..68d60ed49f --- /dev/null +++ b/mingw-w64-libart_lgpl/libart_lgpl-2.3.19-upstream_fix-1.patch @@ -0,0 +1,28 @@ +Submitted By: Randy McMurchy +Date: 2007-04-09 +Initial Package Version: 2.3.19 +Upstream Status: In upstream CVS +Origin: Upstream +Description: Fixes an error during the installation of KDE-Libs + + +diff -Naur libart_lgpl-2.3.19.orig/art_misc.h libart_lgpl-2.3.19/art_misc.h +--- libart_lgpl-2.3.19.orig/art_misc.h 2007-01-01 18:59:22.000000000 -0500 ++++ libart_lgpl-2.3.19/art_misc.h 2007-03-20 23:04:52.000000000 -0400 +@@ -34,9 +34,15 @@ + #include + #endif + ++#ifdef __cplusplus ++extern "C" { ++#endif + void *art_alloc(size_t size); + void art_free(void *ptr); + void *art_realloc(void *ptr, size_t size); ++#ifdef __cplusplus ++} ++#endif /* __cplusplus */ + + /* These aren't, strictly speaking, configuration macros, but they're + damn handy to have around, and may be worth playing with for + From 0da3c822f8237f22c2ffcfeae8fc306e5ff8355f Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 5 Apr 2015 19:34:12 +0800 Subject: [PATCH 0804/2060] libgnomecanvas: new package Signed-off-by: Junjie Mao --- mingw-w64-libgnomecanvas/PKGBUILD | 51 +++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 mingw-w64-libgnomecanvas/PKGBUILD diff --git a/mingw-w64-libgnomecanvas/PKGBUILD b/mingw-w64-libgnomecanvas/PKGBUILD new file mode 100644 index 0000000000..09d5c43cd4 --- /dev/null +++ b/mingw-w64-libgnomecanvas/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: Junjie Mao + +_realname=libgnomecanvas +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=2.30.3 +pkgrel=1 +pkgdesc='The GNOME canvas library' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +depends=("${MINGW_PACKAGE_PREFIX}-libglade" + "${MINGW_PACKAGE_PREFIX}-libart_lgpl" + "${MINGW_PACKAGE_PREFIX}-gtk2" + "intltool") +url='https://developer.gnome.org/libgnomecanvas/stable/GnomeCanvas.html' +license=('LGPL2') +source=("http://ftp.acc.umu.se/pub/gnome/sources/libgnomecanvas/2.30/libgnomecanvas-2.30.3.tar.gz") +sha1sums=('e73e0739d28c0772728621ae151c9a7d9b6d3dfd') + +prepare() { + cd $srcdir/${_realname}-${pkgver} +} + +build() { + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --exec-prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared \ + --enable-glade + make +} + +check() { + # The test case fails due to a warning on a deprecated property + plain "skip" +} + +package() { + cd "${srcdir}"/build-${CARCH} + make install DESTDIR="${pkgdir}" + + cd "$srcdir"/${_realname}-${pkgver} + [ -f COPYING.LIB ] && install -Dm644 COPYING.LIB ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB + [ -f AUTHORS ] && install -Dm644 AUTHORS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/AUTHORS + [ -f NEWS ] && install -Dm644 NEWS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/NEWS +} From d6e167d5280178625cd74e5c12560c446f40604d Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 5 Apr 2015 19:34:31 +0800 Subject: [PATCH 0805/2060] ocaml-lablgtk: new package Signed-off-by: Junjie Mao --- ...Fix-a-path-issue-during-installation.patch | 29 ++++++++ mingw-w64-ocaml-lablgtk/PKGBUILD | 73 +++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 mingw-w64-ocaml-lablgtk/0001-Fix-a-path-issue-during-installation.patch create mode 100644 mingw-w64-ocaml-lablgtk/PKGBUILD diff --git a/mingw-w64-ocaml-lablgtk/0001-Fix-a-path-issue-during-installation.patch b/mingw-w64-ocaml-lablgtk/0001-Fix-a-path-issue-during-installation.patch new file mode 100644 index 0000000000..de1498a003 --- /dev/null +++ b/mingw-w64-ocaml-lablgtk/0001-Fix-a-path-issue-during-installation.patch @@ -0,0 +1,29 @@ +From 322d53d676ec55a4b28e8d24787e54e97c2fc140 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Sun, 5 Apr 2015 10:51:34 +0800 +Subject: [PATCH] Fix a path issue during installation + +Signed-off-by: Junjie Mao +--- + configure | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index 8cdc264..39f59e5 100644 +--- a/configure ++++ b/configure +@@ -2677,9 +2677,9 @@ if test "$OCAMLFIND" = no; then + FINDLIBDIR="" + OCAMLLDCONF="" + else +-FINDLIBDIR="`ocamlfind printconf destdir | tr -d '\\r'`" ++FINDLIBDIR="`ocamlfind printconf destdir | sed 's/\\\\/\\\\\\\\/g' | xargs cygpath -u`" + echo "$OCAMLFIND library path is $FINDLIBDIR" +-OCAMLLDCONF="`ocamlfind printconf ldconf | tr -d '\\r'`" ++OCAMLLDCONF="`ocamlfind printconf ldconf | sed 's/\\\\/\\\\\\\\/g' | xargs cygpath -u`" + echo "$OCAMLFIND ldconf path is $OCAMLLDCONF" + fi + +-- +2.3.4 + diff --git a/mingw-w64-ocaml-lablgtk/PKGBUILD b/mingw-w64-ocaml-lablgtk/PKGBUILD new file mode 100644 index 0000000000..94856c7a9a --- /dev/null +++ b/mingw-w64-ocaml-lablgtk/PKGBUILD @@ -0,0 +1,73 @@ +# Maintainer: Junjie Mao + +_realname=ocaml-lablgtk +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=2.18.3 +pkgrel=1 +pkgdesc='An Ocaml interface to the GIMP Tool Kit.' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='http://lablgtk.forge.ocamlcore.org/' +license=('LGPL') +depends=("${MINGW_PACKAGE_PREFIX}-ocaml" + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-libglade" + "${MINGW_PACKAGE_PREFIX}-librsvg" + "${MINGW_PACKAGE_PREFIX}-gtksourceview2" + "${MINGW_PACKAGE_PREFIX}-gtkspell" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-ocaml-findlib" + ) +makedepends=("${MINGW_PACKAGE_PREFIX}-flexdll") +source=("https://forge.ocamlcore.org/frs/download.php/1479/lablgtk-2.18.3.tar.gz" + "0001-Fix-a-path-issue-during-installation.patch") +sha1sums=('b8ecc3b160fcbce73062f3bad23a2a3b1c2735d3' + '8aae142b4c50038f9284c3427b22d75df6f3018e') + +env=${MINGW_PREFIX#/} +_pkg="lablgtk-${pkgver}" +_pkgsrc="${env}-${_pkg}" +noextract=(${_pkg}.tar.gz) +prepare() { + cd $startdir/ + [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} + tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} + + cd ${srcdir} + mv ${_pkg} ${_pkgsrc} + cd ${_pkgsrc} + + patch -p1 -i ${srcdir}/0001-Fix-a-path-issue-during-installation.patch +} + +build() { + cd ${srcdir}/${_pkgsrc} + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared \ + --disable-gtktest + sed -i "s/-pthread/-lpthread/g" config.make + make + make opt +} + +check() { + # The package does not include an automatic test process + plain "skip" +} + +package() { + cd ${srcdir}/${_pkgsrc} + make install DESTDIR="${pkgdir}" + + for f in COPYING LGPL; do + [ -f ${f} ] && install -Dm644 ${f} ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/${f} + done + + # do not append to ld.conf + rm ${pkgdir}${MINGW_PREFIX}/lib/ocaml/ld.conf +} From 0077608120ef2059fb785f5f8728c65b3831cf0b Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 5 Apr 2015 19:34:52 +0800 Subject: [PATCH 0806/2060] coq: new package Signed-off-by: Junjie Mao --- ...ies-are-located-at-lib-coq-instead-o.patch | 26 +++++++ mingw-w64-coq/PKGBUILD | 69 +++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 mingw-w64-coq/0001-Guess-the-libraries-are-located-at-lib-coq-instead-o.patch create mode 100644 mingw-w64-coq/PKGBUILD diff --git a/mingw-w64-coq/0001-Guess-the-libraries-are-located-at-lib-coq-instead-o.patch b/mingw-w64-coq/0001-Guess-the-libraries-are-located-at-lib-coq-instead-o.patch new file mode 100644 index 0000000000..dbbcbdb60d --- /dev/null +++ b/mingw-w64-coq/0001-Guess-the-libraries-are-located-at-lib-coq-instead-o.patch @@ -0,0 +1,26 @@ +From dab04e936fd8c195843ac0b4a40201c46142da4a Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Sun, 5 Apr 2015 16:46:03 +0800 +Subject: [PATCH] Guess the libraries are located at lib/coq/ instead of lib/ + +Signed-off-by: Junjie Mao +--- + lib/envars.ml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/envars.ml b/lib/envars.ml +index 3040dd4..3a25e9c 100644 +--- a/lib/envars.ml ++++ b/lib/envars.ml +@@ -34,7 +34,7 @@ let reldir instdir testfile oth = + + let guess_coqlib () = + let file = "states/initial.coq" in +- reldir (if Coq_config.arch = "win32" then ["lib"] else ["lib";"coq"]) file ++ reldir (if Coq_config.arch = "win32" then ["lib";"coq"] else ["lib";"coq"]) file + (fun () -> + let coqlib = match Coq_config.coqlib with + | Some coqlib -> coqlib +-- +2.3.4 + diff --git a/mingw-w64-coq/PKGBUILD b/mingw-w64-coq/PKGBUILD new file mode 100644 index 0000000000..ecb4261dcc --- /dev/null +++ b/mingw-w64-coq/PKGBUILD @@ -0,0 +1,69 @@ +# Maintainer: Junjie Mao + +_realname=coq +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=8.4pl5 +pkgrel=1 +pkgdesc='A formal proof management system' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='https://coq.inria.fr/' +license=('LGPL 2.1') +depends=("${MINGW_PACKAGE_PREFIX}-ocaml" + "${MINGW_PACKAGE_PREFIX}-ocaml-camlp4" + "${MINGW_PACKAGE_PREFIX}-ocaml-lablgtk") +source=("https://coq.inria.fr/distrib/V8.4pl5/files/coq-8.4pl5.tar.gz" + "0001-Guess-the-libraries-are-located-at-lib-coq-instead-o.patch") +sha1sums=('107717cbaef3a469e8ff775ae54dbbc457935816' + '5683480358e92b4eb38adc2402dd0febf37ebb2e') + +env=${MINGW_PREFIX#/} +_pkg="${_realname}-${pkgver}" +_pkgsrc="${env}-${_pkg}" +noextract=(${_pkg}.tar.gz) +prepare() { + cd $startdir/ + [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} + tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} + + cd ${srcdir} + mv ${_pkg} ${_pkgsrc} + cd ${_pkgsrc} + + patch -p1 -i ${srcdir}/0001-Guess-the-libraries-are-located-at-lib-coq-instead-o.patch +} + +build() { + cd ${srcdir}/${_pkgsrc} + export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml + ./configure -prefix ${MINGW_PREFIX} \ + -bindir ${MINGW_PREFIX}/bin \ + -libdir ${MINGW_PREFIX}/lib/coq \ + -mandir ${MINGW_PREFIX}/share/man \ + -configdir ${MINGW_PREFIX}/etc/xdg/coq \ + -datadir ${MINGW_PREFIX}/share/coq \ + -docdir ${MINGW_PREFIX}/share/doc/coq \ + -emacslib ${MINGW_PREFIX}/share/emacs/site-lisp/coq \ + -coqdocdir ${MINGW_PREFIX}/share/texmf/tex \ + -usecamlp4 -arch win32 + make revision + make coq + make coqide -j1 +} + +check() { + # Some tests fail due to the following reasons: + # * Some signals are not available + # * lockf (lock a file region) fails + # These cases also fail with the official binaries. + plain "skip" +} + +package() { + cd ${srcdir}/${_pkgsrc} + export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml + make install COQINSTALLPREFIX=${pkgdir}/ OLDROOT=$(cygpath -m /) + [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + [ -f COPYRIGHT ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + [ -f CREDITS ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE +} From bfd63522d810b389094f065f52b709cc9220c8d7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 5 Apr 2015 22:38:31 +0300 Subject: [PATCH 0807/2060] libglade: Rebuild --- mingw-w64-libglade/PKGBUILD | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/mingw-w64-libglade/PKGBUILD b/mingw-w64-libglade/PKGBUILD index 599314f31a..7f50c90d04 100644 --- a/mingw-w64-libglade/PKGBUILD +++ b/mingw-w64-libglade/PKGBUILD @@ -1,23 +1,24 @@ # Maintainer: Alexey Pavlov _realname=libglade - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.6.4 -pkgrel=2 +pkgrel=3 pkgdesc="Allows you to load glade interface files in a program at runtime (mingw-w64)" arch=(any) url="http://www.gnome.org" license=('LGPL') -depends=("${MINGW_PACKAGE_PREFIX}-gtk2>=2.16.0" "${MINGW_PACKAGE_PREFIX}-libxml2>=2.7.3") -groups=("${MINGW_PACKAGE_PREFIX}") -makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-gtk2>=2.16.0" + "${MINGW_PACKAGE_PREFIX}-libxml2>=2.7.3") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-pkg-config") optdepends=("${MINGW_PACKAGE_PREFIX}-python2: libglade-convert script") options=('staticlibs' 'strip') source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/2.6/${_realname}-${pkgver}.tar.bz2 - libglade-2.0.1-nowarning.patch - libglade-secondary.patch - libglade-link-against-gmodule.patch) + libglade-2.0.1-nowarning.patch + libglade-secondary.patch + libglade-link-against-gmodule.patch) md5sums=('d1776b40f4e166b5e9c107f1c8fe4139' '4f879c0ce550004905aa0fb24f25c353' '833d0feb0ffb01d99577b7ab92dbea89' @@ -43,6 +44,7 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} + make } @@ -50,5 +52,4 @@ package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install -j1 install -m755 libglade-convert "${pkgdir}${MINGW_PREFIX}/bin/" - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } From 29f4d24df069dde404ae3adba1556a0202d80e51 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 5 Apr 2015 22:39:05 +0300 Subject: [PATCH 0808/2060] libart_gpl: Format PKGBUILD. --- mingw-w64-libart_lgpl/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libart_lgpl/PKGBUILD b/mingw-w64-libart_lgpl/PKGBUILD index 586f3852a7..9e2a190410 100644 --- a/mingw-w64-libart_lgpl/PKGBUILD +++ b/mingw-w64-libart_lgpl/PKGBUILD @@ -4,14 +4,15 @@ _realname=libart_lgpl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.3.19 pkgrel=1 -pkgdesc='library for high-performance 2D graphics' -groups=("${MINGW_PACKAGE_PREFIX}") +pkgdesc="Library for high-performance 2D graphics (mingw-w64)" +depends=() +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") arch=('any') url='http://www.levien.com/libart' license=('custom') source=("http://ftp.gnome.org/pub/gnome/sources/libart_lgpl/2.3/libart_lgpl-2.3.19.tar.bz2" - "http://www.linuxfromscratch.org/patches/blfs/6.3/libart_lgpl-2.3.19-upstream_fix-1.patch" - "0001-Fix-an-installation-path-bug.patch") + "http://www.linuxfromscratch.org/patches/blfs/6.3/libart_lgpl-2.3.19-upstream_fix-1.patch" + "0001-Fix-an-installation-path-bug.patch") sha1sums=('7f1ff36c91cdc8f14b62acb50836f52a0c735b9e' 'b901b64b6ef370ef1eeeb5aa374b91c7fed5534f' '1079fcc8b813ce55b445278493fb831a91e347e6') From f85b06c51602fabcce8cf624de40d3b351e84bb9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 5 Apr 2015 22:39:40 +0300 Subject: [PATCH 0809/2060] libgnomecanvas: Format PKGBUILD. --- mingw-w64-libgnomecanvas/PKGBUILD | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libgnomecanvas/PKGBUILD b/mingw-w64-libgnomecanvas/PKGBUILD index 09d5c43cd4..138cfde179 100644 --- a/mingw-w64-libgnomecanvas/PKGBUILD +++ b/mingw-w64-libgnomecanvas/PKGBUILD @@ -7,10 +7,13 @@ pkgrel=1 pkgdesc='The GNOME canvas library' groups=("${MINGW_PACKAGE_PREFIX}") arch=('any') -depends=("${MINGW_PACKAGE_PREFIX}-libglade" - "${MINGW_PACKAGE_PREFIX}-libart_lgpl" - "${MINGW_PACKAGE_PREFIX}-gtk2" - "intltool") +depends=("${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-libart_lgpl" + "${MINGW_PACKAGE_PREFIX}-libglade") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "intltool") url='https://developer.gnome.org/libgnomecanvas/stable/GnomeCanvas.html' license=('LGPL2') source=("http://ftp.acc.umu.se/pub/gnome/sources/libgnomecanvas/2.30/libgnomecanvas-2.30.3.tar.gz") @@ -32,6 +35,7 @@ build() { --enable-static \ --enable-shared \ --enable-glade + make } From 2f4afbe572c4e934e111a32d2aa7dff740b10b04 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 5 Apr 2015 23:39:38 +0300 Subject: [PATCH 0810/2060] ocaml: Simplifying PKGBUILD. --- ...e-Makefile.mingw-to-Makefile.mingw32.patch | 381 ------------------ mingw-w64-ocaml/PKGBUILD | 67 ++- 2 files changed, 25 insertions(+), 423 deletions(-) delete mode 100644 mingw-w64-ocaml/0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch diff --git a/mingw-w64-ocaml/0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch b/mingw-w64-ocaml/0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch deleted file mode 100644 index 70dc975394..0000000000 --- a/mingw-w64-ocaml/0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch +++ /dev/null @@ -1,381 +0,0 @@ -From 360ad82fa708c1d4456d09ba8f76d10962ea55d6 Mon Sep 17 00:00:00 2001 -From: Junjie Mao -Date: Wed, 1 Apr 2015 08:47:09 +0800 -Subject: [PATCH] Rename Makefile.mingw to Makefile.mingw32 - -Signed-off-by: Junjie Mao ---- - config/Makefile.mingw | 177 ------------------------------------------------ - config/Makefile.mingw32 | 177 ++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 177 insertions(+), 177 deletions(-) - delete mode 100644 config/Makefile.mingw - create mode 100644 config/Makefile.mingw32 - -diff --git a/config/Makefile.mingw b/config/Makefile.mingw -deleted file mode 100644 -index c204980..0000000 ---- a/config/Makefile.mingw -+++ /dev/null -@@ -1,177 +0,0 @@ --######################################################################### --# # --# OCaml # --# # --# Xavier Leroy, projet Cristal, INRIA Rocquencourt # --# # --# Copyright 1999 Institut National de Recherche en Informatique et # --# en Automatique. All rights reserved. This file is distributed # --# under the terms of the GNU Library General Public License, with # --# the special exception on linking described in file ../LICENSE. # --# # --######################################################################### -- --# Configuration for Windows, Mingw compiler -- --######### General configuration -- --PREFIX=C:/ocamlmgw -- --### Remove this to disable compiling ocamldebug --WITH_DEBUGGER=ocamldebugger -- --### Remove this to disable compiling ocamlbuild --WITH_OCAMLBUILD=ocamlbuild -- --### Remove this to disable compiling ocamldoc --WITH_OCAMLDOC=ocamldoc -- --### Where to install the binaries --BINDIR=$(PREFIX)/bin -- --### Where to install the standard library --LIBDIR=$(PREFIX)/lib -- --### Where to install the stub DLLs --STUBLIBDIR=$(LIBDIR)/stublibs -- --### Where to install the info files --DISTRIB=$(PREFIX) -- --### Where to install the man pages --MANDIR=$(PREFIX)/man -- --########## Toolchain and OS dependencies -- --TOOLCHAIN=mingw -- --### Toolchain prefix --TARGET=i686-w64-mingw32 --HOST=i686-w64-mingw32 -- --TOOLPREF=$(TARGET)- -- --CCOMPTYPE=cc --O=o --A=a --S=s --SO=s.o --EXE=.exe --EXT_DLL=.dll --EXT_OBJ=.$(O) --EXT_LIB=.$(A) --EXT_ASM=.$(S) --MANEXT=1 --SHARPBANGSCRIPTS=false --PTHREAD_LINK= --X11_INCLUDES= --X11_LINK= --BYTECCRPATH= --SUPPORTS_SHARED_LIBRARIES=true --SHAREDCCCOMPOPTS= --MKSHAREDLIBRPATH= --NATIVECCPROFOPTS= --NATIVECCRPATH= --ASM=$(TOOLPREF)as --ASPP=$(TOOLPREF)gcc -c --ASPPPROFFLAGS= --PROFILING=noprof --DYNLINKOPTS= --CC_PROFILE= --SYSTHREAD_SUPPORT=true --EXTRALIBS= --NATDYNLINK=true --CMXS=cmxs --RUNTIMED=noruntimed --ASM_CFI_SUPPORTED=false --UNIXLIB=win32unix --GRAPHLIB=win32graph -- --########## Configuration for the bytecode compiler -- --### Which C compiler to use for the bytecode interpreter. --BYTECC=$(TOOLPREF)gcc -- --### Additional compile-time options for $(BYTECC). (For static linking.) --BYTECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused -- --### Additional link-time options for $(BYTECC). (For static linking.) --BYTECCLINKOPTS= -- --### Additional compile-time options for $(BYTECC). (For building a DLL.) --DLLCCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused -DCAML_DLL -- --### Libraries needed --BYTECCLIBS=-lws2_32 --NATIVECCLIBS=-lws2_32 -- --### How to invoke the C preprocessor --CPP=$(BYTECC) -E -- --### Flexlink --FLEXLINK=flexlink -chain mingw -stack 16777216 -link -static-libgcc --FLEXDIR:=$(shell $(FLEXLINK) -where) --IFLEXDIR=-I"$(FLEXDIR)" --MKDLL=$(FLEXLINK) --MKEXE=$(FLEXLINK) -exe --MKMAINDLL=$(FLEXLINK) -maindll -- --### How to build a static library --MKLIB=rm -f $(1); $(TOOLPREF)ar rc $(1) $(2); $(RANLIB) $(1) --#ml let mklib out files opts = Printf.sprintf "rm -f %s && %sar rcs %s %s %s" out toolpref opts out files;; -- --### Canonicalize the name of a system library --SYSLIB=-l$(1) --#ml let syslib x = "-l"^x;; -- --### The ranlib command --RANLIB=$(TOOLPREF)ranlib --RANLIBCMD=$(TOOLPREF)ranlib -- --### The ar command --ARCMD=$(TOOLPREF)ar -- --############# Configuration for the native-code compiler -- --### Name of architecture for the native-code compiler --ARCH=i386 -- --### Name of architecture model for the native-code compiler. --MODEL=default -- --### Name of operating system family for the native-code compiler. --SYSTEM=mingw -- --### Which C compiler to use for the native-code compiler. --NATIVECC=$(BYTECC) -- --### Additional compile-time options for $(NATIVECC). --NATIVECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused -- --### Additional link-time options for $(NATIVECC) --NATIVECCLINKOPTS= -- --### Build partially-linked object file --PACKLD=$(TOOLPREF)ld -r $(NATIVECCLINKOPTS) -o # must have a space after '-o' -- --############# Configuration for the contributed libraries -- --OTHERLIBRARIES=win32unix str num win32graph dynlink bigarray systhreads -- --### Name of the target architecture for the "num" library --BNG_ARCH=ia32 --BNG_ASM_LEVEL=1 -- --############# Aliases for common commands -- --MAKEREC=$(MAKE) -f Makefile.nt --MAKECMD=$(MAKE) -- --############# for the testsuite makefiles --#ml let topdir = "" and wintopdir = "";; --OTOPDIR=$(WINTOPDIR) --CTOPDIR=$(TOPDIR) --CYGPATH=cygpath -m --DIFF=diff -q --strip-trailing-cr --CANKILL=false --SET_LD_PATH=PATH="$(PATH):$(LD_PATH)" -diff --git a/config/Makefile.mingw32 b/config/Makefile.mingw32 -new file mode 100644 -index 0000000..c204980 ---- /dev/null -+++ b/config/Makefile.mingw32 -@@ -0,0 +1,177 @@ -+######################################################################### -+# # -+# OCaml # -+# # -+# Xavier Leroy, projet Cristal, INRIA Rocquencourt # -+# # -+# Copyright 1999 Institut National de Recherche en Informatique et # -+# en Automatique. All rights reserved. This file is distributed # -+# under the terms of the GNU Library General Public License, with # -+# the special exception on linking described in file ../LICENSE. # -+# # -+######################################################################### -+ -+# Configuration for Windows, Mingw compiler -+ -+######### General configuration -+ -+PREFIX=C:/ocamlmgw -+ -+### Remove this to disable compiling ocamldebug -+WITH_DEBUGGER=ocamldebugger -+ -+### Remove this to disable compiling ocamlbuild -+WITH_OCAMLBUILD=ocamlbuild -+ -+### Remove this to disable compiling ocamldoc -+WITH_OCAMLDOC=ocamldoc -+ -+### Where to install the binaries -+BINDIR=$(PREFIX)/bin -+ -+### Where to install the standard library -+LIBDIR=$(PREFIX)/lib -+ -+### Where to install the stub DLLs -+STUBLIBDIR=$(LIBDIR)/stublibs -+ -+### Where to install the info files -+DISTRIB=$(PREFIX) -+ -+### Where to install the man pages -+MANDIR=$(PREFIX)/man -+ -+########## Toolchain and OS dependencies -+ -+TOOLCHAIN=mingw -+ -+### Toolchain prefix -+TARGET=i686-w64-mingw32 -+HOST=i686-w64-mingw32 -+ -+TOOLPREF=$(TARGET)- -+ -+CCOMPTYPE=cc -+O=o -+A=a -+S=s -+SO=s.o -+EXE=.exe -+EXT_DLL=.dll -+EXT_OBJ=.$(O) -+EXT_LIB=.$(A) -+EXT_ASM=.$(S) -+MANEXT=1 -+SHARPBANGSCRIPTS=false -+PTHREAD_LINK= -+X11_INCLUDES= -+X11_LINK= -+BYTECCRPATH= -+SUPPORTS_SHARED_LIBRARIES=true -+SHAREDCCCOMPOPTS= -+MKSHAREDLIBRPATH= -+NATIVECCPROFOPTS= -+NATIVECCRPATH= -+ASM=$(TOOLPREF)as -+ASPP=$(TOOLPREF)gcc -c -+ASPPPROFFLAGS= -+PROFILING=noprof -+DYNLINKOPTS= -+CC_PROFILE= -+SYSTHREAD_SUPPORT=true -+EXTRALIBS= -+NATDYNLINK=true -+CMXS=cmxs -+RUNTIMED=noruntimed -+ASM_CFI_SUPPORTED=false -+UNIXLIB=win32unix -+GRAPHLIB=win32graph -+ -+########## Configuration for the bytecode compiler -+ -+### Which C compiler to use for the bytecode interpreter. -+BYTECC=$(TOOLPREF)gcc -+ -+### Additional compile-time options for $(BYTECC). (For static linking.) -+BYTECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused -+ -+### Additional link-time options for $(BYTECC). (For static linking.) -+BYTECCLINKOPTS= -+ -+### Additional compile-time options for $(BYTECC). (For building a DLL.) -+DLLCCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused -DCAML_DLL -+ -+### Libraries needed -+BYTECCLIBS=-lws2_32 -+NATIVECCLIBS=-lws2_32 -+ -+### How to invoke the C preprocessor -+CPP=$(BYTECC) -E -+ -+### Flexlink -+FLEXLINK=flexlink -chain mingw -stack 16777216 -link -static-libgcc -+FLEXDIR:=$(shell $(FLEXLINK) -where) -+IFLEXDIR=-I"$(FLEXDIR)" -+MKDLL=$(FLEXLINK) -+MKEXE=$(FLEXLINK) -exe -+MKMAINDLL=$(FLEXLINK) -maindll -+ -+### How to build a static library -+MKLIB=rm -f $(1); $(TOOLPREF)ar rc $(1) $(2); $(RANLIB) $(1) -+#ml let mklib out files opts = Printf.sprintf "rm -f %s && %sar rcs %s %s %s" out toolpref opts out files;; -+ -+### Canonicalize the name of a system library -+SYSLIB=-l$(1) -+#ml let syslib x = "-l"^x;; -+ -+### The ranlib command -+RANLIB=$(TOOLPREF)ranlib -+RANLIBCMD=$(TOOLPREF)ranlib -+ -+### The ar command -+ARCMD=$(TOOLPREF)ar -+ -+############# Configuration for the native-code compiler -+ -+### Name of architecture for the native-code compiler -+ARCH=i386 -+ -+### Name of architecture model for the native-code compiler. -+MODEL=default -+ -+### Name of operating system family for the native-code compiler. -+SYSTEM=mingw -+ -+### Which C compiler to use for the native-code compiler. -+NATIVECC=$(BYTECC) -+ -+### Additional compile-time options for $(NATIVECC). -+NATIVECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused -+ -+### Additional link-time options for $(NATIVECC) -+NATIVECCLINKOPTS= -+ -+### Build partially-linked object file -+PACKLD=$(TOOLPREF)ld -r $(NATIVECCLINKOPTS) -o # must have a space after '-o' -+ -+############# Configuration for the contributed libraries -+ -+OTHERLIBRARIES=win32unix str num win32graph dynlink bigarray systhreads -+ -+### Name of the target architecture for the "num" library -+BNG_ARCH=ia32 -+BNG_ASM_LEVEL=1 -+ -+############# Aliases for common commands -+ -+MAKEREC=$(MAKE) -f Makefile.nt -+MAKECMD=$(MAKE) -+ -+############# for the testsuite makefiles -+#ml let topdir = "" and wintopdir = "";; -+OTOPDIR=$(WINTOPDIR) -+CTOPDIR=$(TOPDIR) -+CYGPATH=cygpath -m -+DIFF=diff -q --strip-trailing-cr -+CANKILL=false -+SET_LD_PATH=PATH="$(PATH):$(LD_PATH)" --- -2.3.4 diff --git a/mingw-w64-ocaml/PKGBUILD b/mingw-w64-ocaml/PKGBUILD index 14c6226782..ef4b5788c0 100644 --- a/mingw-w64-ocaml/PKGBUILD +++ b/mingw-w64-ocaml/PKGBUILD @@ -4,65 +4,48 @@ _realname=ocaml pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=4.02.1 pkgrel=1 -pkgdesc='An industrial strength programming language supporting functional, imperative and object-oriented styles.' -groups=("${MINGW_PACKAGE_PREFIX}") +pkgdesc="An industrial strength programming language supporting functional, imperative and object-oriented styles (mingw-w64)" arch=('any') url='http://ocaml.org/' license=('Q Public Licence 1.0' 'GPL2') depends=("${MINGW_PACKAGE_PREFIX}-flexdll") -makedepends=("diffutils") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "diffutils") source=("http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz" - "0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch" - "0002-Adapt-to-msys2-directory-layout.patch" - "0003-Install-manuals-in-msys2.patch" - "0004-camlheader-has-the-extension-.exe-in-msys2.patch" - "0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch") + "0002-Adapt-to-msys2-directory-layout.patch" + "0003-Install-manuals-in-msys2.patch" + "0004-camlheader-has-the-extension-.exe-in-msys2.patch" + "0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch") sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' - '5b56a2ecff40d53158578d5a41e1eb992f3dcdc6' 'ee16e23932922f6f9fcc48072d564b90a3b66246' 'a780a6c94aaedcd0d19a7fbc26e09776b581a8af' 'e1f6b201c25b61d39404406c82684f6c8d70d23a' '17010515bd9715ed36300165643d8f3ad01288cf') -env=${MINGW_PREFIX#/} -_pkg="${_realname}-${pkgver}" -_pkgsrc="${env}-${_pkg}" -noextract=(${_pkg}.tar.gz) prepare() { - for prog in ar as ld ranlib; do - no_prefix=${MINGW_PREFIX}/bin/${prog}.exe - with_prefix=${MINGW_PREFIX}/bin/${CARCH}-w64-mingw32-${prog}.exe - if [ -f "${no_prefix}" ] && [ ! -f "${with_prefix}" ]; then - cp ${no_prefix} ${with_prefix} - echo ${no_prefix}, ${with_prefix} - fi - done + cd ${srcdir}/${_realname}-${pkgver} - cd $startdir/ - [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} - tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} + mv config/Makefile.mingw{,32} + cp config/m-nt.h config/m.h + cp config/s-nt.h config/s.h - cd ${srcdir} - mv ${_pkg} ${_pkgsrc} - cd ${_pkgsrc} - - patch -p1 -i ${srcdir}/0001-Rename-Makefile.mingw-to-Makefile.mingw32.patch patch -p1 -i ${srcdir}/0002-Adapt-to-msys2-directory-layout.patch - patch -p1 -i ${srcdir}/0003-Install-manuals.patch + patch -p1 -i ${srcdir}/0003-Install-manuals-in-msys2.patch patch -p1 -i ${srcdir}/0004-camlheader-has-the-extension-.exe-in-msys2.patch patch -p1 -i ${srcdir}/0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch } build() { - cd ${srcdir}/${_pkgsrc} - cp config/m-nt.h config/m.h - cp config/s-nt.h config/s.h - cp config/Makefile.${env} config/Makefile + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} + + cd ${srcdir}/build-${MINGW_CHOST} + cp config/Makefile.${MINGW_PREFIX#/} config/Makefile - make -f Makefile.nt world PREFIX="$(cygpath -m ${MINGW_PREFIX})" -j1 - make -f Makefile.nt bootstrap PREFIX="$(cygpath -m ${MINGW_PREFIX})" -j1 - make -f Makefile.nt opt PREFIX="$(cygpath -m ${MINGW_PREFIX})" -j1 - make -f Makefile.nt opt.opt PREFIX="$(cygpath -m ${MINGW_PREFIX})" -j1 + make -f Makefile.nt world PREFIX="${MINGW_PREFIX}" TOOLPREF= -j1 + make -f Makefile.nt bootstrap PREFIX="${MINGW_PREFIX}" TOOLPREF= -j1 + make -f Makefile.nt opt PREFIX="${MINGW_PREFIX}" TOOLPREF= -j1 + make -f Makefile.nt opt.opt PREFIX="${MINGW_PREFIX}" TOOLPREF= -j1 } check() { @@ -71,10 +54,10 @@ check() { } package() { - cd ${srcdir}/${_pkgsrc} - make -f Makefile.nt install PREFIX="${pkgdir}${MINGW_PREFIX}" -j1 + cd ${srcdir}/build-${MINGW_CHOST} + make -f Makefile.nt install TOOLPREF= PREFIX="${pkgdir}${MINGW_PREFIX}" -j1 [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE - mkdir -p ${pkgdir}/etc/profile.d - echo '[ "$MSYSTEM" = "'$(echo ${env} | tr "[:lower:]" "[:upper:]")'" ] && export OCAMLLIB='${MINGW_PREFIX}'/lib/ocaml' > ${pkgdir}/etc/profile.d/ocaml.${env}.sh + mkdir -p ${pkgdir}${MINGW_PREFIX}/etc/profile.d + echo '[ "$MSYSTEM" = "'$(echo ${MINGW_PREFIX#/} | tr "[:lower:]" "[:upper:]")'" ] && export OCAMLLIB='${MINGW_PREFIX}'/lib/ocaml' > ${pkgdir}${MINGW_PREFIX}/etc/profile.d/ocaml.sh } From 7e20e5a43f0cbde70f9d41f7d8e6490a5908ed20 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 5 Apr 2015 23:53:33 +0300 Subject: [PATCH 0811/2060] flexdll: Simplifying PKGBUILD. --- mingw-w64-flexdll/PKGBUILD | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/mingw-w64-flexdll/PKGBUILD b/mingw-w64-flexdll/PKGBUILD index 00c6d5e4ab..08fc25d9d7 100644 --- a/mingw-w64-flexdll/PKGBUILD +++ b/mingw-w64-flexdll/PKGBUILD @@ -4,8 +4,7 @@ _realname=flexdll pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.31 pkgrel=1 -pkgdesc='An implementation of a dlopen-like API for Windows' -groups=("${MINGW_PACKAGE_PREFIX}") +pkgdesc="An implementation of a dlopen-like API for Windows (mingw-w64)" arch=('any') url='http://alain.frisch.fr/flexdll.html' license=('zlib/libpng License') @@ -19,23 +18,14 @@ sha1sums=('7ca63bf8d6c731fd95e0d434a8cfbcc718b99d62' '31ebdca246a4df6069d733350c9a2b8c94d33dec' '43f232f04934a0c7797f05e8db03f04ae156d8c4') -env=${MINGW_PREFIX#/} -if [ "${env}" == "mingw32" ]; then +if [ "${CARCH}" == "i686" ]; then chain="mingw" else chain="mingw64" fi -_pkg="${_realname}-${pkgver}" -_pkgsrc="${env}-${_pkg}" -noextract=(${_pkg}.tar.gz) -prepare() { - cd $startdir/ - [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} - tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} - cd ${srcdir} - mv ${_realname} ${_pkgsrc} - cd ${_pkgsrc} +prepare() { + cd ${srcdir}/${_realname} patch -p1 -i ${srcdir}/0001-Fix-the-List.hd-exception.patch patch -p1 -i ${srcdir}/0002-Add-path-to-libcrt2.o-into-the-default-library-searc.patch @@ -43,7 +33,9 @@ prepare() { } build() { - cd ${srcdir}/${_pkgsrc} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf ${_realname} build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml make flexlink.exe -j1 @@ -58,7 +50,7 @@ check() { } package() { - cd ${srcdir}/${_pkgsrc} + cd ${srcdir}/build-${MINGW_CHOST} mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ install flexlink.exe ${pkgdir}${MINGW_PREFIX}/bin/ From 389d5104aa31dcec4dbcd750b5378877f43ecf56 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 6 Apr 2015 00:15:44 +0300 Subject: [PATCH 0812/2060] ocaml packages: Simplifuing PKGBUILD's. --- mingw-w64-ocaml-camlp4/PKGBUILD | 29 ++++++++------------- mingw-w64-ocaml-findlib/PKGBUILD | 23 ++++++----------- mingw-w64-ocaml-lablgtk/PKGBUILD | 44 ++++++++++++-------------------- 3 files changed, 36 insertions(+), 60 deletions(-) diff --git a/mingw-w64-ocaml-camlp4/PKGBUILD b/mingw-w64-ocaml-camlp4/PKGBUILD index fbae18df35..8e859c5092 100644 --- a/mingw-w64-ocaml-camlp4/PKGBUILD +++ b/mingw-w64-ocaml-camlp4/PKGBUILD @@ -4,38 +4,31 @@ _realname=ocaml-camlp4 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=4.02.1 pkgrel=1 -pkgdesc='Pre-Processor-Pretty-Printer for OCaml' -groups=("${MINGW_PACKAGE_PREFIX}") +pkgdesc="Pre-Processor-Pretty-Printer for OCaml (mingw-w64)" arch=('any') url='https://github.com/ocaml/camlp4' license=('LGPL2') depends=("${MINGW_PACKAGE_PREFIX}-ocaml") makedepends=("${MINGW_PACKAGE_PREFIX}-flexdll") source=("${_realname}-${pkgver}.tar.gz::https://github.com/ocaml/camlp4/archive/4.02.1.tar.gz" - "0001-Properly-quote-preprocessor-command-to-ocamldep.patch" - "0002-Add-DESTDIR-in-configure.patch") + "0001-Properly-quote-preprocessor-command-to-ocamldep.patch" + "0002-Add-DESTDIR-in-configure.patch") sha1sums=('c16d9ae3693612c71e12d2880ec911772b8d23c3' 'eb7a59d2e184f368d735670bea96571aa861f97b' '6aa01135f05a5e943412bf728f90ced871c6a064') -env=${MINGW_PREFIX#/} -_pkg="${_realname}-${pkgver}" -_pkgsrc="${env}-${_pkg}" -noextract=(${_pkg}.tar.gz) prepare() { - cd $startdir/ - [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} - tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} - cd ${srcdir} - mv camlp4-${pkgver} ${_pkgsrc} - cd ${_pkgsrc} + cd ${srcdir}/camlp4-${pkgver} patch -p1 -i ${srcdir}/0001-Properly-quote-preprocessor-command-to-ocamldep.patch patch -p1 -i ${srcdir}/0002-Add-DESTDIR-in-configure.patch } build() { - cd ${srcdir}/${_pkgsrc} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf camlp4-${pkgver} build-${MINGW_CHOST} + + cd ${srcdir}/build-${MINGW_CHOST} export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml ./configure --bindir=${MINGW_PREFIX}/bin \ --libdir=${MINGW_PREFIX}/lib/ocaml \ @@ -50,11 +43,11 @@ check() { } package() { - cd ${srcdir}/${_pkgsrc} + cd ${srcdir}/build-${MINGW_CHOST} make install -j1 make install-META -j1 [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE - mkdir -p ${pkgdir}/etc/profile.d - echo '[ "$MSYSTEM" = "'$(echo ${env} | tr "[:lower:]" "[:upper:]")'" ] && export CAMLP4LIB='${MINGW_PREFIX}'/lib/ocaml' > ${pkgdir}/etc/profile.d/camlp4.${env}.sh + mkdir -p ${pkgdir}${MINGW_PREFIX}/etc/profile.d + echo '[ "$MSYSTEM" = "'$(echo ${MINGW_PREFIX#/} | tr "[:lower:]" "[:upper:]")'" ] && export CAMLP4LIB='${MINGW_PREFIX}'/lib/ocaml' > ${pkgdir}${MINGW_PREFIX}/etc/profile.d/camlp4.sh } diff --git a/mingw-w64-ocaml-findlib/PKGBUILD b/mingw-w64-ocaml-findlib/PKGBUILD index 7407ef716a..52934b4fd4 100644 --- a/mingw-w64-ocaml-findlib/PKGBUILD +++ b/mingw-w64-ocaml-findlib/PKGBUILD @@ -4,8 +4,7 @@ _realname=ocaml-findlib pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.5.5 pkgrel=1 -pkgdesc='OCaml library manager' -groups=("${MINGW_PACKAGE_PREFIX}") +pkgdesc="OCaml library manager (mingw-w64)" arch=('any') url='http://projects.camlcity.org/projects/findlib.html' license=('custom') @@ -13,23 +12,17 @@ depends=("${MINGW_PACKAGE_PREFIX}-ocaml") source=("http://download.camlcity.org/download/findlib-1.5.5.tar.gz") sha1sums=('3221121c4b5adacc050aa361475eee59b2698afa') -env=${MINGW_PREFIX#/} -_pkg="findlib-${pkgver}" -_pkgsrc="${env}-${_pkg}" -noextract=(${_pkg}.tar.gz) prepare() { - cd $startdir/ - [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} - tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} - - cd ${srcdir} - mv ${_pkg} ${_pkgsrc} - cd ${_pkgsrc} + plain "skip" } build() { - cd ${srcdir}/${_pkgsrc} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf findlib-${pkgver} build-${MINGW_CHOST} + + cd ${srcdir}/build-${MINGW_CHOST} export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml + PATH=${MINGW_PREFIX}/lib/ocaml/stublibs:$PATH \ ./configure -system win32 \ -sitelib ${MINGW_PREFIX}/lib/ocaml \ -mandir ${MINGW_PREFIX}/share/man \ @@ -44,7 +37,7 @@ check() { } package() { - cd ${srcdir}/${_pkgsrc} + cd ${srcdir}/build-${MINGW_CHOST} make install prefix=${pkgdir} [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-ocaml-lablgtk/PKGBUILD b/mingw-w64-ocaml-lablgtk/PKGBUILD index 94856c7a9a..fc5bc6442d 100644 --- a/mingw-w64-ocaml-lablgtk/PKGBUILD +++ b/mingw-w64-ocaml-lablgtk/PKGBUILD @@ -4,52 +4,42 @@ _realname=ocaml-lablgtk pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.18.3 pkgrel=1 -pkgdesc='An Ocaml interface to the GIMP Tool Kit.' -groups=("${MINGW_PACKAGE_PREFIX}") +pkgdesc="An Ocaml interface to the GIMP Tool Kit (mingw-w64)" arch=('any') url='http://lablgtk.forge.ocamlcore.org/' license=('LGPL') depends=("${MINGW_PACKAGE_PREFIX}-ocaml" - "${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-libglade" - "${MINGW_PACKAGE_PREFIX}-librsvg" - "${MINGW_PACKAGE_PREFIX}-gtksourceview2" - "${MINGW_PACKAGE_PREFIX}-gtkspell" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-ocaml-findlib" - ) -makedepends=("${MINGW_PACKAGE_PREFIX}-flexdll") + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-libglade" + "${MINGW_PACKAGE_PREFIX}-librsvg" + "${MINGW_PACKAGE_PREFIX}-gtksourceview2" + "${MINGW_PACKAGE_PREFIX}-gtkspell" + "${MINGW_PACKAGE_PREFIX}-ocaml-findlib" + ) +makedepends=("${MINGW_PACKAGE_PREFIX}-flexdll" + "${MINGW_PACKAGE_PREFIX}-ocaml-camlp4" + "${MINGW_PACKAGE_PREFIX}-pkg-config") source=("https://forge.ocamlcore.org/frs/download.php/1479/lablgtk-2.18.3.tar.gz" - "0001-Fix-a-path-issue-during-installation.patch") + "0001-Fix-a-path-issue-during-installation.patch") sha1sums=('b8ecc3b160fcbce73062f3bad23a2a3b1c2735d3' '8aae142b4c50038f9284c3427b22d75df6f3018e') -env=${MINGW_PREFIX#/} -_pkg="lablgtk-${pkgver}" -_pkgsrc="${env}-${_pkg}" -noextract=(${_pkg}.tar.gz) prepare() { - cd $startdir/ - [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} - tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} - - cd ${srcdir} - mv ${_pkg} ${_pkgsrc} - cd ${_pkgsrc} - + cd ${srcdir}/lablgtk-${pkgver} patch -p1 -i ${srcdir}/0001-Fix-a-path-issue-during-installation.patch } build() { - cd ${srcdir}/${_pkgsrc} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf lablgtk-${pkgver} build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --enable-static \ - --enable-shared \ --disable-gtktest + sed -i "s/-pthread/-lpthread/g" config.make make make opt From c4c2da5ddab9463a29160d1e3d69d24b73178bbf Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 6 Apr 2015 22:07:54 +0300 Subject: [PATCH 0813/2060] flexdll: Install files into library folder. --- mingw-w64-flexdll/PKGBUILD | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mingw-w64-flexdll/PKGBUILD b/mingw-w64-flexdll/PKGBUILD index 08fc25d9d7..70036a7973 100644 --- a/mingw-w64-flexdll/PKGBUILD +++ b/mingw-w64-flexdll/PKGBUILD @@ -52,13 +52,17 @@ check() { package() { cd ${srcdir}/build-${MINGW_CHOST} - mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ - install flexlink.exe ${pkgdir}${MINGW_PREFIX}/bin/ - install flexdll_${chain}.o ${pkgdir}${MINGW_PREFIX}/bin/ - install flexdll_initer_${chain}.o ${pkgdir}${MINGW_PREFIX}/bin/ + install -Dm755 flexlink.exe ${pkgdir}${MINGW_PREFIX}/bin/flexlink.exe + + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/flexdll + install flexdll_${chain}.o ${pkgdir}${MINGW_PREFIX}/lib/flexdll/ + install flexdll_initer_${chain}.o ${pkgdir}${MINGW_PREFIX}/lib/flexdll/ for f in flexdll.h flexdll.c flexdll_initer.c default.manifest default_amd64.manifest; do - install ${f} ${pkgdir}${MINGW_PREFIX}/bin/ + install ${f} ${pkgdir}${MINGW_PREFIX}/lib/flexdll/ done [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE [ -f CHANGES ] && install -Dm644 CHANGES ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/CHANGES + + mkdir -p ${pkgdir}${MINGW_PREFIX}/etc/profile.d + echo '[ "$MSYSTEM" = "'$(echo ${MINGW_PREFIX#/} | tr "[:lower:]" "[:upper:]")'" ] && export FLEXDIR='${MINGW_PREFIX}'/lib/flexdll' > ${pkgdir}${MINGW_PREFIX}/etc/profile.d/flexdll.sh } From bc5363826ca851724abc098299a4605ac3e218ad Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 6 Apr 2015 22:08:17 +0300 Subject: [PATCH 0814/2060] coq: Simplify PKGBUILD. --- mingw-w64-coq/PKGBUILD | 48 ++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 28 deletions(-) diff --git a/mingw-w64-coq/PKGBUILD b/mingw-w64-coq/PKGBUILD index ecb4261dcc..2feeb7a101 100644 --- a/mingw-w64-coq/PKGBUILD +++ b/mingw-w64-coq/PKGBUILD @@ -4,48 +4,40 @@ _realname=coq pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=8.4pl5 pkgrel=1 -pkgdesc='A formal proof management system' -groups=("${MINGW_PACKAGE_PREFIX}") +pkgdesc="A formal proof management system (mingw-w64)" arch=('any') url='https://coq.inria.fr/' license=('LGPL 2.1') depends=("${MINGW_PACKAGE_PREFIX}-ocaml" - "${MINGW_PACKAGE_PREFIX}-ocaml-camlp4" - "${MINGW_PACKAGE_PREFIX}-ocaml-lablgtk") + "${MINGW_PACKAGE_PREFIX}-ocaml-camlp4" + "${MINGW_PACKAGE_PREFIX}-ocaml-lablgtk") source=("https://coq.inria.fr/distrib/V8.4pl5/files/coq-8.4pl5.tar.gz" - "0001-Guess-the-libraries-are-located-at-lib-coq-instead-o.patch") + "0001-Guess-the-libraries-are-located-at-lib-coq-instead-o.patch") sha1sums=('107717cbaef3a469e8ff775ae54dbbc457935816' '5683480358e92b4eb38adc2402dd0febf37ebb2e') -env=${MINGW_PREFIX#/} -_pkg="${_realname}-${pkgver}" -_pkgsrc="${env}-${_pkg}" -noextract=(${_pkg}.tar.gz) prepare() { - cd $startdir/ - [ -d ${srcdir}/${_pkgsrc} ] && rm -rf ${srcdir}/${_pkgsrc} - tar -xzf ${startdir}/${_pkg}.tar.gz -C ${srcdir} - - cd ${srcdir} - mv ${_pkg} ${_pkgsrc} - cd ${_pkgsrc} - + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-Guess-the-libraries-are-located-at-lib-coq-instead-o.patch } build() { - cd ${srcdir}/${_pkgsrc} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml ./configure -prefix ${MINGW_PREFIX} \ - -bindir ${MINGW_PREFIX}/bin \ - -libdir ${MINGW_PREFIX}/lib/coq \ - -mandir ${MINGW_PREFIX}/share/man \ - -configdir ${MINGW_PREFIX}/etc/xdg/coq \ - -datadir ${MINGW_PREFIX}/share/coq \ - -docdir ${MINGW_PREFIX}/share/doc/coq \ - -emacslib ${MINGW_PREFIX}/share/emacs/site-lisp/coq \ - -coqdocdir ${MINGW_PREFIX}/share/texmf/tex \ - -usecamlp4 -arch win32 + -bindir ${MINGW_PREFIX}/bin \ + -libdir ${MINGW_PREFIX}/lib/coq \ + -mandir ${MINGW_PREFIX}/share/man \ + -configdir ${MINGW_PREFIX}/etc/xdg/coq \ + -datadir ${MINGW_PREFIX}/share/coq \ + -docdir ${MINGW_PREFIX}/share/doc/coq \ + -emacslib ${MINGW_PREFIX}/share/emacs/site-lisp/coq \ + -coqdocdir ${MINGW_PREFIX}/share/texmf/tex \ + -usecamlp4 -arch win32 + make revision make coq make coqide -j1 @@ -60,7 +52,7 @@ check() { } package() { - cd ${srcdir}/${_pkgsrc} + cd ${srcdir}/build-${MINGW_CHOST} export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml make install COQINSTALLPREFIX=${pkgdir}/ OLDROOT=$(cygpath -m /) [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE From febbea525f4169053f8f0823a8e85a9e21040576 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 6 Apr 2015 22:01:50 +0200 Subject: [PATCH 0815/2060] gdl: updated to 3.16.0. --- mingw-w64-gdl/001-win.patch | 87 +++++++++++++++++++++++++++++++++++++ mingw-w64-gdl/PKGBUILD | 61 ++++++++++++++++---------- 2 files changed, 125 insertions(+), 23 deletions(-) create mode 100644 mingw-w64-gdl/001-win.patch diff --git a/mingw-w64-gdl/001-win.patch b/mingw-w64-gdl/001-win.patch new file mode 100644 index 0000000000..6688f8e54d --- /dev/null +++ b/mingw-w64-gdl/001-win.patch @@ -0,0 +1,87 @@ +--- ./gdl/Makefile.am.orig 2012-11-21 21:05:57.000000000 +0100 ++++ ./gdl/Makefile.am 2015-04-05 18:41:18.851937700 +0200 +@@ -136,8 +136,9 @@ + + -include $(INTROSPECTION_MAKEFILE) + INTROSPECTION_GIRS = +-INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) ++INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --c-include gdl/gdl.h + INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + if HAVE_INTROSPECTION + introspection_sources = $(libgdl_3_la_SOURCES) +@@ -149,7 +150,6 @@ + Gdl_3_gir_LIBS = libgdl-3.la + Gdl_3_gir_FILES = $(introspection_sources) + Gdl_3_gir_EXPORT_PACKAGES = gdl-3.0 +-Gdl_3_gir_SCANNERFLAGS = --c-include gdl/gdl.h + INTROSPECTION_GIRS += Gdl-3.gir + + girdir = $(datadir)/gir-1.0 +--- ./m4/intltool.m4.orig 2015-03-21 08:44:19.000000000 +0100 ++++ ./m4/intltool.m4 2015-04-05 18:41:18.858938200 +0200 +@@ -155,31 +155,6 @@ + # Substitute ALL_LINGUAS so we can use it in po/Makefile + AC_SUBST(ALL_LINGUAS) + +-# Set DATADIRNAME correctly if it is not set yet +-# (copied from glib-gettext.m4) +-if test -z "$DATADIRNAME"; then +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[]], +- [[extern int _nl_msg_cat_cntr; +- return _nl_msg_cat_cntr]])], +- [DATADIRNAME=share], +- [case $host in +- *-*-solaris*) +- dnl On Solaris, if bind_textdomain_codeset is in libc, +- dnl GNU format message catalog is always supported, +- dnl since both are added to the libc all together. +- dnl Hence, we'd like to go with DATADIRNAME=share +- dnl in this case. +- AC_CHECK_FUNC(bind_textdomain_codeset, +- [DATADIRNAME=share], [DATADIRNAME=lib]) +- ;; +- *) +- [DATADIRNAME=lib] +- ;; +- esac]) +-fi +-AC_SUBST(DATADIRNAME) +- + IT_PO_SUBDIR([po]) + + ]) +--- ./po/Makefile.in.in.orig 2015-04-05 18:41:35.994660600 +0200 ++++ ./po/Makefile.in.in 2015-04-05 18:42:02.375335400 +0200 +@@ -33,8 +33,7 @@ + datadir = @datadir@ + datarootdir = @datarootdir@ + libdir = @libdir@ +-DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +107,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +141,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot diff --git a/mingw-w64-gdl/PKGBUILD b/mingw-w64-gdl/PKGBUILD index 6ca980109b..c0c6cff395 100644 --- a/mingw-w64-gdl/PKGBUILD +++ b/mingw-w64-gdl/PKGBUILD @@ -4,37 +4,52 @@ _realname=gdl pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} -pkgver=3.14.0 +pkgver=3.16.0 pkgrel=1 pkgdesc="GNOME Docking Library (mingw-w64)" arch=('any') -license=('GPL') +license=('LGPL 2') url="http://www.gnome.org/" -depends=("${MINGW_PACKAGE_PREFIX}-gtk3") -makedepends=("${MINGW_PACKAGE_PREFIX}-gtk-doc" - "intltool" +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-libxml2") +makedepends=("${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-python2") -options=('staticlibs') -source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz) -sha256sums=('4b903c28a8894a82b997a1732a443c8b1d6a510304b3c3b511023339ff5d01db') + "intltool" + "gtk-doc") +options=('strip' 'staticlibs') +source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz + 001-win.patch) +sha256sums=('34cbe104f5df9a20ea26aa8acca2b6d1a73035448aa854162c598e90f4e6ff80' + 'ba2f1eed43f926df573ec299b973929499e1da78c0f15157a4ec4ae40057afa1') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -b -V simple -p1 -i ${srcdir}/001-win.patch + + autoreconf -f -i +} build() { - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} - mkdir "${srcdir}"/build-${CARCH} - cd "${srcdir}"/build-${CARCH} - PYTHON=${MINGW_PREFIX}/bin/python2 \ - "${srcdir}"/${_realname}-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --{build,host}=${MINGW_HOST} \ - --sysconfdir=${MINGW_PREFIX}/etc \ - --localstatedir=${MINGW_PREFIX}/var \ - --enable-static \ - --enable-shared - make CC=${MINGW_PREFIX}/bin/gcc + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-introspection + make } package() { - cd "${srcdir}"/build-${CARCH} - make DESTDIR="$pkgdir" install + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 6afc13876254406181005b27a1db0eb47bd1046b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 7 Apr 2015 10:00:19 +0300 Subject: [PATCH 0816/2060] libvpx: Update to 1.4.0 --- .../0001-enable-shared-on.mingw.patch | 169 ++++++++++-------- mingw-w64-libvpx/0002-no-pthreads.mingw.patch | 16 +- ...003-cross-with-native-binutils.mingw.patch | 39 ++-- mingw-w64-libvpx/0004-implib.mingw.patch | 20 --- mingw-w64-libvpx/0005-fix-exports.mingw.patch | 9 +- .../0006-instll-implib.mingw.patch | 7 +- .../0008-fix-ln-on-install.mingw.patch | 12 +- mingw-w64-libvpx/PKGBUILD | 35 ++-- 8 files changed, 147 insertions(+), 160 deletions(-) delete mode 100644 mingw-w64-libvpx/0004-implib.mingw.patch diff --git a/mingw-w64-libvpx/0001-enable-shared-on.mingw.patch b/mingw-w64-libvpx/0001-enable-shared-on.mingw.patch index 94082f1f7f..58c31823d5 100644 --- a/mingw-w64-libvpx/0001-enable-shared-on.mingw.patch +++ b/mingw-w64-libvpx/0001-enable-shared-on.mingw.patch @@ -1,6 +1,70 @@ ---- libvpx-v1.2.0/configure.orig 2013-09-04 18:49:22.000000000 +0000 -+++ libvpx-v1.2.0/configure 2013-10-02 08:57:41.927885400 +0000 -@@ -458,9 +459,13 @@ +diff -Naur libvpx-1.4.0-orig/build/make/configure.sh libvpx-1.4.0/build/make/configure.sh +--- libvpx-1.4.0-orig/build/make/configure.sh 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.4.0/build/make/configure.sh 2015-04-07 09:41:34.049400000 +0300 +@@ -556,11 +556,14 @@ + --libdir=*) + libdir="${optval}" + ;; ++ --bindir=*) ++ bindir="${optval}" ++ ;; + --sdk-path=*) + [ -d "${optval}" ] || die "Not a directory: ${optval}" + sdk_path="${optval}" + ;; +- --libc|--as|--prefix|--libdir|--sdk-path) ++ --libc|--as|--prefix|--libdir|--bindir|--sdk-path) + die "Option ${opt} requires argument" + ;; + --help|-h) +@@ -589,9 +592,14 @@ + prefix="${prefix%/}" + libdir="${libdir:-${prefix}/lib}" + libdir="${libdir%/}" ++ bindir="${bindir:-${prefix}/bin}" ++ bindir="${bindir%/}" + if [ "${libdir#${prefix}}" = "${libdir}" ]; then + die "Libdir ${libdir} must be a subdirectory of ${prefix}" + fi ++ if [ "${bindir#${prefix}}" = "${bindir}" ]; then ++ die "Bindir ${bindir} must be a subdirectory of ${prefix}" ++ fi + } + + post_process_cmdline() { +diff -Naur libvpx-1.4.0-orig/build/make/Makefile libvpx-1.4.0/build/make/Makefile +--- libvpx-1.4.0-orig/build/make/Makefile 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.4.0/build/make/Makefile 2015-04-07 09:41:34.049400000 +0300 +@@ -297,7 +297,7 @@ + $(qexec)$$(LD) -shared $$(LDFLAGS) \ + -Wl,--no-undefined -Wl,-soname,$$(SONAME) \ + -Wl,--version-script,$$(EXPORTS_FILE) -o $$@ \ +- $$(filter %.o,$$^) $$(extralibs) ++ -Wl,--out-implib=$$(subst $(2),.dll.a,$(1)) $$(filter %.o,$$^) $$(extralibs) + endef + + define dl_template +@@ -383,7 +383,7 @@ + .libs: $(LIBS) + @touch $@ + $(foreach lib,$(filter %_g.a,$(LIBS)),$(eval $(call archive_template,$(lib)))) +-$(foreach lib,$(filter %so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR).$(SO_VERSION_PATCH),$(LIBS)),$(eval $(call so_template,$(lib)))) ++$(foreach lib,$(filter %-$(VERSION_MAJOR).dll,$(LIBS)),$(eval $(call so_template,$(lib),-$(VERSION_MAJOR).dll))) + $(foreach lib,$(filter %$(SO_VERSION_MAJOR).dylib,$(LIBS)),$(eval $(call dl_template,$(lib)))) + + INSTALL-LIBS=$(call cond_enabled,CONFIG_INSTALL_LIBS,INSTALL-LIBS) +diff -Naur libvpx-1.4.0-orig/configure libvpx-1.4.0/configure +--- libvpx-1.4.0-orig/configure 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.4.0/configure 2015-04-07 09:41:34.049400000 +0300 +@@ -516,6 +516,7 @@ + DIST_DIR?=\$(DESTDIR)${prefix} + endif + LIBSUBDIR=${libdir##${prefix}/} ++BINSUBDIR=${bindir##${prefix}/} + + VERSION_STRING=${VERSION_STRING} + +@@ -549,9 +550,13 @@ # magic happens after the command line has been parsed. if ! enabled linux; then if enabled gnu; then @@ -16,63 +80,22 @@ fi fi fi ---- libvpx-v1.0.0/build/make/Makefile.orig 2012-01-27 22:36:39 +0400 -+++ libvpx-v1.0.0/build/make/Makefile 2012-04-16 01:33:19 +0400 -@@ -316,7 +316,7 @@ - .libs: $(LIBS) - @touch $@ - $(foreach lib,$(filter %_g.a,$(LIBS)),$(eval $(call archive_template,$(lib)))) --$(foreach lib,$(filter %so.$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH),$(LIBS)),$(eval $(call so_template,$(lib)))) -+$(foreach lib,$(filter %-$(VERSION_MAJOR).dll,$(LIBS)),$(eval $(call so_template,$(lib)))) - $(foreach lib,$(filter %$(VERSION_MAJOR).dylib,$(LIBS)),$(eval $(call dl_template,$(lib)))) +diff -Naur libvpx-1.4.0-orig/examples.mk libvpx-1.4.0/examples.mk +--- libvpx-1.4.0-orig/examples.mk 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.4.0/examples.mk 2015-04-07 09:41:34.065000000 +0300 +@@ -275,7 +275,7 @@ - INSTALL-LIBS=$(call cond_enabled,CONFIG_INSTALL_LIBS,INSTALL-LIBS) ---- libvpx-v1.0.0/configure.orig 2012-04-16 01:18:31 +0400 -+++ libvpx-v1.0.0/configure 2012-04-16 02:01:35 +0400 -@@ -406,6 +406,7 @@ - DIST_DIR?=\$(DESTDIR)${prefix} - endif - LIBSUBDIR=${libdir##${prefix}/} -+BINSUBDIR=${bindir##${prefix}/} - - VERSION_STRING=${VERSION_STRING} - ---- libvpx-v1.0.0/build/make/configure.sh.orig 2012-01-27 22:36:39 +0400 -+++ libvpx-v1.0.0/build/make/configure.sh 2012-04-16 02:15:12 +0400 -@@ -477,11 +477,14 @@ - --libdir=*) - libdir="${optval}" - ;; -+ --bindir=*) -+ bindir="${optval}" -+ ;; - --sdk-path=*) - [ -d "${optval}" ] || die "Not a directory: ${optval}" - sdk_path="${optval}" - ;; -- --libc|--as|--prefix|--libdir|--sdk-path) -+ --libc|--as|--prefix|--libdir|--bindir|--sdk-path) - die "Option ${opt} requires argument" - ;; - --help|-h) show_help -@@ -508,9 +511,14 @@ - prefix="${prefix%/}" - libdir="${libdir:-${prefix}/lib}" - libdir="${libdir%/}" -+ bindir="${bindir:-${prefix}/bin}" -+ bindir="${bindir%/}" - if [ "${libdir#${prefix}}" = "${libdir}" ]; then - die "Libdir ${libdir} must be a subdirectory of ${prefix}" - fi -+ if [ "${bindir#${prefix}}" = "${bindir}" ]; then -+ die "Bindir ${bindir} must be a subdirectory of ${prefix}" -+ fi - } - - ---- libvpx-v1.3.0/libs.mk.orig 2014-01-10 20:12:42.000000000 +0000 -+++ libvpx-v1.3.0/libs.mk 2014-02-09 17:56:21.946849800 +0000 -@@ -162,6 +162,7 @@ + # Instantiate linker template for all examples. + CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx) +-SHARED_LIB_SUF=$(if $(filter darwin%,$(TGT_OS)),.dylib,.so) ++SHARED_LIB_SUF=$(if $(filter darwin%,$(TGT_OS)),.dylib,.dll) + CODEC_LIB_SUF=$(if $(CONFIG_SHARED),$(SHARED_LIB_SUF),.a) + $(foreach bin,$(BINS-yes),\ + $(if $(BUILD_OBJS),$(eval $(bin):\ +diff -Naur libvpx-1.4.0-orig/libs.mk libvpx-1.4.0/libs.mk +--- libvpx-1.4.0-orig/libs.mk 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.4.0/libs.mk 2015-04-07 09:41:34.065000000 +0300 +@@ -131,6 +131,7 @@ INSTALL_MAPS += include/vpx/% $(SRC_PATH_BARE)/vpx/% INSTALL_MAPS += include/vpx/% $(SRC_PATH_BARE)/vpx_ports/% INSTALL_MAPS += $(LIBSUBDIR)/% % @@ -80,17 +103,16 @@ INSTALL_MAPS += src/% $(SRC_PATH_BARE)/% ifeq ($(CONFIG_MSVS),yes) INSTALL_MAPS += $(foreach p,$(VS_PLATFORMS),$(LIBSUBDIR)/$(p)/% $(p)/Release/%) -@@ -271,19 +272,19 @@ +@@ -239,18 +240,18 @@ LIBVPX_SO_SYMLINKS := $(addprefix $(LIBSUBDIR)/, \ libvpx.dylib ) else --LIBVPX_SO := libvpx.so.$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH) +-LIBVPX_SO := libvpx.so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR).$(SO_VERSION_PATCH) +LIBVPX_SO := libvpx-$(VERSION_MAJOR).dll EXPORT_FILE := libvpx.ver - SYM_LINK := libvpx.so -LIBVPX_SO_SYMLINKS := $(addprefix $(LIBSUBDIR)/, \ -- libvpx.so libvpx.so.$(VERSION_MAJOR) \ -- libvpx.so.$(VERSION_MAJOR).$(VERSION_MINOR)) +- libvpx.so libvpx.so.$(SO_VERSION_MAJOR) \ +- libvpx.so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR)) +LIBVPX_SO_SYMLINKS := $(addprefix $(BINSUBDIR)/, \ + libvpx.dll libvpx-$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH).dll \ + libvpx-$(VERSION_MAJOR).$(VERSION_MINOR).dll) @@ -100,12 +122,12 @@ $(notdir $(LIBVPX_SO_SYMLINKS)) $(BUILD_PFX)$(LIBVPX_SO): $(LIBVPX_OBJS) $(EXPORT_FILE) $(BUILD_PFX)$(LIBVPX_SO): extralibs += -lm --$(BUILD_PFX)$(LIBVPX_SO): SONAME = libvpx.so.$(VERSION_MAJOR) +-$(BUILD_PFX)$(LIBVPX_SO): SONAME = libvpx.so.$(SO_VERSION_MAJOR) +$(BUILD_PFX)$(LIBVPX_SO): SONAME = libvpx-$(VERSION_MAJOR).dll $(BUILD_PFX)$(LIBVPX_SO): EXPORTS_FILE = $(EXPORT_FILE) libvpx.ver: $(call enabled,CODEC_EXPORTS) -@@ -314,7 +315,7 @@ +@@ -281,7 +282,7 @@ INSTALL-LIBS-$(BUILD_LIBVPX_SO) += $(LIBVPX_SO_SYMLINKS) @@ -114,8 +136,8 @@ LIBS-$(BUILD_LIBVPX) += vpx.pc -@@ -476,7 +477,7 @@ - INSTALL-SRCS-$(CONFIG_CODEC_SRCS) += $(LIBVPX_TEST_SRCS) +@@ -443,7 +444,7 @@ + BINS-$(BUILD_LIBVPX) += $(LIBVPX_TEST_BINS) CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx) -CODEC_LIB_SUF=$(if $(CONFIG_SHARED),.so,.a) @@ -123,14 +145,3 @@ $(foreach bin,$(LIBVPX_TEST_BINS),\ $(if $(BUILD_LIBVPX),$(eval $(bin): \ lib$(CODEC_LIB)$(CODEC_LIB_SUF) libgtest.a ))\ ---- libvpx-v1.3.0/examples.mk.orig 2014-02-09 17:35:42.615974800 +0000 -+++ libvpx-v1.3.0/examples.mk 2014-02-09 17:58:15.301744100 +0000 -@@ -191,7 +191,7 @@ - - # Instantiate linker template for all examples. - CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx) --SHARED_LIB_SUF=$(if $(filter darwin%,$(TGT_OS)),.dylib,.so) -+SHARED_LIB_SUF=$(if $(filter darwin%,$(TGT_OS)),.dylib,.dll) - CODEC_LIB_SUF=$(if $(CONFIG_SHARED),$(SHARED_LIB_SUF),.a) - $(foreach bin,$(BINS-yes),\ - $(if $(BUILD_OBJS),$(eval $(bin):\ diff --git a/mingw-w64-libvpx/0002-no-pthreads.mingw.patch b/mingw-w64-libvpx/0002-no-pthreads.mingw.patch index 327af598b2..cb63882aaf 100644 --- a/mingw-w64-libvpx/0002-no-pthreads.mingw.patch +++ b/mingw-w64-libvpx/0002-no-pthreads.mingw.patch @@ -1,6 +1,7 @@ ---- libvpx-v1.1.0/configure.orig 2012-09-15 16:20:38 +0400 -+++ libvpx-v1.1.0/configure 2012-09-15 16:24:16 +0400 -@@ -224,7 +224,6 @@ +diff -Naur libvpx-1.4.0-orig/configure libvpx-1.4.0/configure +--- libvpx-1.4.0-orig/configure 2015-04-07 09:41:34.642200000 +0300 ++++ libvpx-1.4.0/configure 2015-04-07 09:41:34.720200000 +0300 +@@ -277,7 +277,6 @@ vpx_ports stdint_h alt_tree_layout @@ -8,16 +9,17 @@ sys_mman_h unistd_h " -@@ -487,7 +486,6 @@ +@@ -611,7 +610,6 @@ EOF # check system headers check_header stdint.h - check_header pthread.h check_header sys/mman.h + check_header unistd.h # for sysconf(3) and friends. - check_header vpx/vpx_integer.h -I${source_path} && enable vpx_ports ---- libvpx-v1.1.0/vp8/common/generic/systemdependent.c.orig 2012-05-09 03:14:00 +0400 -+++ libvpx-v1.1.0/vp8/common/generic/systemdependent.c 2012-09-15 16:44:06 +0400 +diff -Naur libvpx-1.4.0-orig/vp8/common/generic/systemdependent.c libvpx-1.4.0/vp8/common/generic/systemdependent.c +--- libvpx-1.4.0-orig/vp8/common/generic/systemdependent.c 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.4.0/vp8/common/generic/systemdependent.c 2015-04-07 09:41:34.720200000 +0300 @@ -21,7 +21,8 @@ #if CONFIG_MULTITHREAD #if HAVE_UNISTD_H && !defined(__OS2__) diff --git a/mingw-w64-libvpx/0003-cross-with-native-binutils.mingw.patch b/mingw-w64-libvpx/0003-cross-with-native-binutils.mingw.patch index 15ce4a9daf..90072e7a2b 100644 --- a/mingw-w64-libvpx/0003-cross-with-native-binutils.mingw.patch +++ b/mingw-w64-libvpx/0003-cross-with-native-binutils.mingw.patch @@ -1,23 +1,24 @@ ---- libvpx-v1.2.0/build/make/configure.sh.orig 2013-10-02 08:59:30.678194900 +0000 -+++ libvpx-v1.2.0/build/make/configure.sh 2013-10-02 09:00:28.811576900 +0000 -@@ -584,13 +584,13 @@ +diff -Naur libvpx-1.4.0-orig/build/make/configure.sh libvpx-1.4.0/build/make/configure.sh +--- libvpx-1.4.0-orig/build/make/configure.sh 2015-04-07 09:41:34.626600000 +0300 ++++ libvpx-1.4.0/build/make/configure.sh 2015-04-07 09:41:35.172600000 +0300 +@@ -607,13 +607,13 @@ } setup_gnu_toolchain() { -- CC=${CC:-${CROSS}gcc} -- CXX=${CXX:-${CROSS}g++} -- AR=${AR:-${CROSS}ar} -- LD=${LD:-${CROSS}${link_with_cc:-ld}} -- AS=${AS:-${CROSS}as} -- STRIP=${STRIP:-${CROSS}strip} -- NM=${NM:-${CROSS}nm} -+ CC=${CC:-gcc} -+ CXX=${CXX:-g++} -+ AR=${AR:-ar} -+ LD=${LD:-${link_with_cc:-ld}} -+ AS=${AS:-as} -+ STRIP=${STRIP:-strip} -+ NM=${NM:-nm} - AS_SFX=.s - EXE_SFX= +- CC=${CC:-${CROSS}gcc} +- CXX=${CXX:-${CROSS}g++} +- AR=${AR:-${CROSS}ar} +- LD=${LD:-${CROSS}${link_with_cc:-ld}} +- AS=${AS:-${CROSS}as} +- STRIP=${STRIP:-${CROSS}strip} +- NM=${NM:-${CROSS}nm} ++ CC=${CC:-gcc} ++ CXX=${CXX:-g++} ++ AR=${AR:-ar} ++ LD=${LD:-${link_with_cc:-ld}} ++ AS=${AS:-as} ++ STRIP=${STRIP:-strip} ++ NM=${NM:-nm} + AS_SFX=.s + EXE_SFX= } diff --git a/mingw-w64-libvpx/0004-implib.mingw.patch b/mingw-w64-libvpx/0004-implib.mingw.patch deleted file mode 100644 index 50d19bafa2..0000000000 --- a/mingw-w64-libvpx/0004-implib.mingw.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- libvpx-v1.3.0/build/make/Makefile.orig 2014-02-09 17:58:58.119181200 +0000 -+++ libvpx-v1.3.0/build/make/Makefile 2014-02-09 18:01:00.974781900 +0000 -@@ -270,7 +270,7 @@ - $(qexec)$$(LD) -shared $$(LDFLAGS) \ - -Wl,--no-undefined -Wl,-soname,$$(SONAME) \ - -Wl,--version-script,$$(EXPORTS_FILE) -o $$@ \ -- $$(filter %.o,$$^) $$(extralibs) -+ -Wl,--out-implib=$$(subst $(2),.dll.a,$(1)) $$(filter %.o,$$^) $$(extralibs) - endef - - define dl_template -@@ -351,7 +351,7 @@ - .libs: $(LIBS) - @touch $@ - $(foreach lib,$(filter %_g.a,$(LIBS)),$(eval $(call archive_template,$(lib)))) --$(foreach lib,$(filter %-$(VERSION_MAJOR).dll,$(LIBS)),$(eval $(call so_template,$(lib)))) -+$(foreach lib,$(filter %-$(VERSION_MAJOR).dll,$(LIBS)),$(eval $(call so_template,$(lib),-$(VERSION_MAJOR).dll))) - $(foreach lib,$(filter %$(VERSION_MAJOR).dylib,$(LIBS)),$(eval $(call dl_template,$(lib)))) - - INSTALL-LIBS=$(call cond_enabled,CONFIG_INSTALL_LIBS,INSTALL-LIBS) diff --git a/mingw-w64-libvpx/0005-fix-exports.mingw.patch b/mingw-w64-libvpx/0005-fix-exports.mingw.patch index 0bba2916c6..17bff59377 100644 --- a/mingw-w64-libvpx/0005-fix-exports.mingw.patch +++ b/mingw-w64-libvpx/0005-fix-exports.mingw.patch @@ -1,8 +1,9 @@ ---- libvpx-v1.1.0/vpx/exports_enc.orig 2012-05-08 23:14:00.000000000 +0000 -+++ libvpx-v1.1.0/vpx/exports_enc 2013-07-31 12:26:36.692171900 +0000 -@@ -1,6 +1,7 @@ - text vpx_codec_enc_config_default +diff -Naur libvpx-1.4.0-orig/vpx/exports_enc libvpx-1.4.0/vpx/exports_enc +--- libvpx-1.4.0-orig/vpx/exports_enc 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.4.0/vpx/exports_enc 2015-04-07 09:41:36.904200000 +0300 +@@ -2,6 +2,7 @@ text vpx_codec_enc_config_set + text vpx_codec_enc_init_multi_ver text vpx_codec_enc_init_ver +text vpx_codec_enc_init_multi_ver text vpx_codec_encode diff --git a/mingw-w64-libvpx/0006-instll-implib.mingw.patch b/mingw-w64-libvpx/0006-instll-implib.mingw.patch index f8c2824304..7c86daff13 100644 --- a/mingw-w64-libvpx/0006-instll-implib.mingw.patch +++ b/mingw-w64-libvpx/0006-instll-implib.mingw.patch @@ -1,6 +1,7 @@ ---- libvpx-v1.1.0/libs.mk.orig 2013-07-31 12:18:41.045772500 +0000 -+++ libvpx-v1.1.0/libs.mk 2013-07-31 12:56:22.862986800 +0000 -@@ -126,6 +126,7 @@ +diff -Naur libvpx-1.4.0-orig/libs.mk libvpx-1.4.0/libs.mk +--- libvpx-1.4.0-orig/libs.mk 2015-04-07 09:41:34.642200000 +0300 ++++ libvpx-1.4.0/libs.mk 2015-04-07 09:41:37.325400000 +0300 +@@ -168,6 +168,7 @@ endif else INSTALL-LIBS-$(CONFIG_STATIC) += $(LIBSUBDIR)/libvpx.a diff --git a/mingw-w64-libvpx/0008-fix-ln-on-install.mingw.patch b/mingw-w64-libvpx/0008-fix-ln-on-install.mingw.patch index d8d51acbb1..687c473297 100644 --- a/mingw-w64-libvpx/0008-fix-ln-on-install.mingw.patch +++ b/mingw-w64-libvpx/0008-fix-ln-on-install.mingw.patch @@ -1,6 +1,7 @@ ---- libvpx-v1.3.0/libs.mk.orig 2014-02-09 18:20:42.290790000 +0000 -+++ libvpx-v1.3.0/libs.mk 2014-02-09 18:38:54.500983000 +0000 -@@ -301,7 +301,7 @@ +diff -Naur libvpx-1.4.0-orig/libs.mk libvpx-1.4.0/libs.mk +--- libvpx-1.4.0-orig/libs.mk 2015-04-07 09:41:37.746600000 +0300 ++++ libvpx-1.4.0/libs.mk 2015-04-07 09:41:37.809000000 +0300 +@@ -268,7 +268,7 @@ CLEAN-OBJS += libvpx.syms define libvpx_symlink_template @@ -9,13 +10,12 @@ @echo " [LN] $(2) $$@" $(qexec)mkdir -p $$(dir $$@) $(qexec)ln -sf $(2) $$@ -@@ -309,10 +309,12 @@ +@@ -276,10 +276,12 @@ $(eval $(call libvpx_symlink_template,\ $(addprefix $(BUILD_PFX),$(notdir $(LIBVPX_SO_SYMLINKS))),\ -- $(BUILD_PFX)$(LIBVPX_SO))) + $(BUILD_PFX)$(LIBVPX_SO),\ -+ $(BUILD_PFX)$(LIBVPX_SO))) + $(BUILD_PFX)$(LIBVPX_SO))) $(eval $(call libvpx_symlink_template,\ $(addprefix $(DIST_DIR)/,$(LIBVPX_SO_SYMLINKS)),\ - $(LIBVPX_SO))) diff --git a/mingw-w64-libvpx/PKGBUILD b/mingw-w64-libvpx/PKGBUILD index aea4082742..c1d6a46285 100644 --- a/mingw-w64-libvpx/PKGBUILD +++ b/mingw-w64-libvpx/PKGBUILD @@ -2,46 +2,37 @@ _realname=libvpx pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.0 -pkgrel=5 +pkgver=1.4.0 +pkgrel=1 pkgdesc="The VP8 Codec SDK (mingw-w64)" arch=('any') license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-yasm") url=('http://www.webmproject.org/') -source=(https://webm.googlecode.com/files/${_realname}-v${pkgver}.tar.bz2 +source=(https://github.com/webmproject/libvpx/archive/v${pkgver}.tar.gz 0001-enable-shared-on.mingw.patch 0002-no-pthreads.mingw.patch 0003-cross-with-native-binutils.mingw.patch - 0004-implib.mingw.patch 0005-fix-exports.mingw.patch 0006-instll-implib.mingw.patch - 0007-fix-mingw-w64-strtok.mingw.patch - 0007-winxp-dont-have-strtok_s.patch 0008-fix-ln-on-install.mingw.patch) options=('strip' 'staticlibs') -md5sums=('14783a148872f2d08629ff7c694eb31f' - '91e8e57bd26acb1acf5b0df5fbf36532' - '8799da31817a2d0d6a3db4717e80ac24' - '76677cf7a34fa84db945ecca2e8efaed' - '33f066c4d11a928bad02f5877b36d148' - 'ccfc3e6d0bd8aeea89b29605ad783242' - '816bb55c8593e639c2b083bf13509542' - '5b1411bb3a36f8f126a6da74d3dcb305' - 'b21aaa85f12c88f83311d3cec1c29a04' - '4fa75aed4f5929a6630f59b2b3114ff7') +md5sums=('9e82cdcb2d2146f812b71c8a7a2686a3' + 'ced1792a11e8bd446a3e910408b63bbd' + '42a46db4240cf594217606dff3957b34' + '9f66ab98dbbe170ca7dc0c820f56558a' + 'd33bd15169b21f5c6cba379d6c76397f' + 'c91d82639fee7d82cf69b13a34c05179' + '1a5f3e0e8ff8126fbfd8bb133e7e1c87') prepare() { - cd ${srcdir}/$_realname-v$pkgver + cd ${srcdir}/$_realname-$pkgver patch -Np1 -i ${srcdir}/0001-enable-shared-on.mingw.patch patch -Np1 -i ${srcdir}/0002-no-pthreads.mingw.patch patch -Np1 -i ${srcdir}/0003-cross-with-native-binutils.mingw.patch - patch -Np1 -i ${srcdir}/0004-implib.mingw.patch patch -Np1 -i ${srcdir}/0005-fix-exports.mingw.patch patch -Np1 -i ${srcdir}/0006-instll-implib.mingw.patch - #patch -Np1 -i ${srcdir}/0007-fix-mingw-w64-strtok.mingw.patch - #patch -Np1 -i ${srcdir}/0007-winxp-dont-have-strtok_s.patch patch -Np1 -i ${srcdir}/0008-fix-ln-on-install.mingw.patch } @@ -53,7 +44,7 @@ build() { fi mkdir -p $srcdir/build-$MINGW_CHOST cd "$srcdir/build-$MINGW_CHOST" - ../$_realname-v$pkgver/configure \ + ../$_realname-$pkgver/configure \ --prefix=${MINGW_PREFIX} \ --target=${_targetarch} \ --enable-vp8 \ @@ -78,5 +69,5 @@ package() { cd "${srcdir}/build-$MINGW_CHOST" make DIST_DIR="${pkgdir}${MINGW_PREFIX}" install - rm ${pkgdir}${MINGW_PREFIX}/bin/libvpx{.dll,-1.3}* + rm ${pkgdir}${MINGW_PREFIX}/bin/libvpx{.dll,-1.4}* } From 541d0da31a4d2e648689655e49ddfffbe7ff5dfe Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 7 Apr 2015 11:40:18 +0300 Subject: [PATCH 0817/2060] lz4: Project moved from googlecode to github. Upgrade to latest. --- mingw-w64-lz4/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-lz4/PKGBUILD b/mingw-w64-lz4/PKGBUILD index e1b4edb1f9..87beae4ee1 100644 --- a/mingw-w64-lz4/PKGBUILD +++ b/mingw-w64-lz4/PKGBUILD @@ -2,17 +2,17 @@ _realname=lz4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.0.r127 +pkgver=1.6.0.r452 pkgrel=1 pkgdesc="Very fast lossless compression algorithm (mingw-w64)" arch=('any') -url="https://code.google.com/p/lz4/" +url="http://www.lz4.info/" license=("GPL2") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "subversion") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git") checkdepends=('diffutils') options=('staticlibs' 'strip') -source=("${_realname}::svn+http://lz4.googlecode.com/svn/trunk/#revision=$pkgver" +source=("${_realname}::git+https://github.com/Cyan4973/lz4.git" 001-mingw-install-over-msys.patch) md5sums=('SKIP' '99b3643a9fee86ee89e991a682edb3c5') @@ -22,7 +22,7 @@ pkgver() { local _MAJOR=`sed -n '/define LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h` local _MINOR=`sed -n '/define LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h` local _PATCH=`sed -n '/define LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h` - local _REV="$(svnversion)" + local _REV="$(git rev-list --count HEAD)" printf "%s.%s.%s.r%s" "${_MAJOR}" "${_MINOR}" "${_PATCH}" "${_REV//[[:alpha:]]}" } From de020c82ff66e54cc4ebd58c480c3eee4c032855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20H=C3=BCttner?= Date: Tue, 7 Apr 2015 11:47:27 +0200 Subject: [PATCH 0818/2060] lua: updated to 5.3 --- mingw-w64-lua/PKGBUILD | 13 +++++++------ mingw-w64-lua/implib.patch | 8 ++++---- mingw-w64-lua/searchpath.patch | 8 ++++---- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/mingw-w64-lua/PKGBUILD b/mingw-w64-lua/PKGBUILD index 07d6e1d333..e0a7ecb3fe 100644 --- a/mingw-w64-lua/PKGBUILD +++ b/mingw-w64-lua/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov # Contributor: David Macek +# Contributor: Felix Huettner _realname=lua pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.2.4 +pkgver=5.3.0 pkgrel=1 pkgdesc="A powerful light-weight programming language designed for extending applications. (mingw-w64)" arch=('any') @@ -16,10 +17,10 @@ source=("$url/ftp/lua-$pkgver.tar.gz" 'lua.pc' 'searchpath.patch' 'implib.patch') -md5sums=('913fdb32207046b273fdb17aad70be13' +md5sums=('a1b0a7e92d0c85bbff7a8d27bf29f8af' 'e7ba6c2b695b0b84a5ea0cbff5fc9067' - '201ee806b08404749770214296be1fa4' - '39ed0d1e9eece585f7c0f2c49136dd01') + 'd326b414c07e71140eca36644139ed5c' + '311bd695726bd42279e7d786a494b9cf') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -48,7 +49,7 @@ build() { package() { cd "${srcdir}/build-${CARCH}" make \ - TO_BIN="lua.exe luac.exe lua52.dll" \ + TO_BIN="lua.exe luac.exe lua53.dll" \ TO_LIB="liblua.a liblua.dll.a" \ INSTALL_TOP="${pkgdir}${MINGW_PREFIX}" \ INSTALL_MAN="${pkgdir}${MINGW_PREFIX}"/share/man/man1 \ @@ -62,7 +63,7 @@ package() { mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe install -Dm644 lua.pc "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/lua.pc - install -Dm644 lua.pc "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/lua5.2.pc + install -Dm644 lua.pc "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/lua5.3.pc # Install the documentation install -d "${pkgdir}${MINGW_PREFIX}"/share/doc/lua diff --git a/mingw-w64-lua/implib.patch b/mingw-w64-lua/implib.patch index 651f8d8738..4447c59596 100644 --- a/mingw-w64-lua/implib.patch +++ b/mingw-w64-lua/implib.patch @@ -1,9 +1,9 @@ ---- src/Makefile.orig 2013-11-11 12:45:49.000000000 +0100 -+++ src/Makefile 2015-03-20 22:35:13.646812100 +0100 -@@ -110,7 +110,7 @@ +--- src/Makefile.orig 2015-04-07 11:24:43.263584500 +0200 ++++ src/Makefile 2015-04-07 11:27:47.791263800 +0200 +@@ -114,7 +114,7 @@ mingw: - $(MAKE) "LUA_A=lua52.dll" "LUA_T=lua.exe" \ + $(MAKE) "LUA_A=lua53.dll" "LUA_T=lua.exe" \ - "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ + "AR=$(CC) -shared -Wl,--out-implib,liblua.dll.a -o" "RANLIB=strip --strip-unneeded" \ "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe diff --git a/mingw-w64-lua/searchpath.patch b/mingw-w64-lua/searchpath.patch index 741ffa32b4..eb0de8d72f 100644 --- a/mingw-w64-lua/searchpath.patch +++ b/mingw-w64-lua/searchpath.patch @@ -1,6 +1,6 @@ ---- src/luaconf.h.orig 2013-11-21 18:26:16.000000000 +0100 -+++ src/luaconf.h 2015-03-21 13:02:03.550621100 +0100 -@@ -89,8 +89,9 @@ +--- src/luaconf.h.orig 2015-04-07 11:28:32.057058000 +0200 ++++ src/luaconf.h 2015-04-07 11:31:03.305023800 +0200 +@@ -160,8 +160,9 @@ ** In Windows, any exclamation mark ('!') in the path is replaced by the ** path of the directory of the executable file of the current process. */ @@ -9,6 +9,6 @@ +#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "\\" +#define LUA_LDIR "!\\..\\share\\lua\\" LUA_VDIR +#define LUA_CDIR "!\\..\\lib\\lua\\" LUA_VDIR + #define LUA_SHRDIR "!\\..\\share\\lua\\" LUA_VDIR "\\" #define LUA_PATH_DEFAULT \ LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ - LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" ".\\?.lua" From b1256fa713f4a088feb643a024f286de1938e204 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 7 Apr 2015 12:56:05 +0300 Subject: [PATCH 0819/2060] webkitgtk: Rebuild with icu-55.1 --- mingw-w64-webkitgtk3/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-webkitgtk3/PKGBUILD b/mingw-w64-webkitgtk3/PKGBUILD index a856dd8351..1e2d06c752 100644 --- a/mingw-w64-webkitgtk3/PKGBUILD +++ b/mingw-w64-webkitgtk3/PKGBUILD @@ -3,7 +3,7 @@ _realname=webkitgtk pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}2" "${MINGW_PACKAGE_PREFIX}-${_realname}3") pkgver=2.4.8 -pkgrel=1 +pkgrel=2 pkgdesc="GTK+ Web content engine library (mingw-w64)" arch=('any') url="http://webkitgtk.org/" From 0b7f285a756ab9dbc8b9c51fc448cb901ff8f4c4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 7 Apr 2015 12:56:25 +0300 Subject: [PATCH 0820/2060] drmingw: Update to 0.6.6 --- mingw-w64-drmingw/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-drmingw/PKGBUILD b/mingw-w64-drmingw/PKGBUILD index 3b6ec41531..205d86a970 100644 --- a/mingw-w64-drmingw/PKGBUILD +++ b/mingw-w64-drmingw/PKGBUILD @@ -3,8 +3,8 @@ _realname=drmingw pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) -pkgver=0.6.4 -pkgrel=2 +pkgver=0.6.6 +pkgrel=1 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') license=(LGPL2) @@ -13,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") url=('https://github.com/jrfonseca/drmingw') source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/archive/${pkgver}.tar.gz") options=(!strip staticlibs) -md5sums=('SKIP') +md5sums=('d8b54421decf907e5702a4b9a1c88087') prepare() { cd "${srcdir}" @@ -37,5 +37,5 @@ package() { rm -rf "${pkgdir}${MINGW_PREFIX}"/doc rm -rf "${pkgdir}${MINGW_PREFIX}"/sample - install -Dm644 "${srcdir}/${_realname}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 "${srcdir}/${_realname}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From 166f8fa0b271e618f7cae11831dab76c51bbd9f4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 7 Apr 2015 19:06:53 +0300 Subject: [PATCH 0821/2060] pip: Update to 6.1.1 --- mingw-w64-python-pip/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-pip/PKGBUILD b/mingw-w64-python-pip/PKGBUILD index bc7de4287f..6422889be1 100644 --- a/mingw-w64-python-pip/PKGBUILD +++ b/mingw-w64-python-pip/PKGBUILD @@ -2,7 +2,7 @@ _realname=pip pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=6.0.8 +pkgver=6.1.1 pkgrel=1 pkgdesc="An easy_install replacement for installing pypi python packages (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(http://pypi.python.org/packages/source/p/pip/${_realname}-${pkgver}.tar.gz) -md5sums=('2332e6f97e75ded3bddde0ced01dbda3') +md5sums=('6b19e0a934d982a5a4b798e957cb6d45') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 6da04d92158d9c25d1076de0aa0ef211cfa627c6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 7 Apr 2015 19:07:21 +0300 Subject: [PATCH 0822/2060] python-nose: Update to 1.3.6 --- mingw-w64-python-nose/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-python-nose/PKGBUILD b/mingw-w64-python-nose/PKGBUILD index 26a325cb27..b7459aa614 100644 --- a/mingw-w64-python-nose/PKGBUILD +++ b/mingw-w64-python-nose/PKGBUILD @@ -3,15 +3,15 @@ _realname=nose pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.3.4 -pkgrel=2 +pkgver=1.3.6 +pkgrel=1 pkgdesc="A discovery-based unittest extension (mingw-w64)" arch=('any') license=('LGPL-2.1') url="http://readthedocs.org/docs/nose/" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=("http://pypi.python.org/packages/source/n/nose/nose-${pkgver}.tar.gz") -md5sums=('6ed7169887580ddc9a8e16048d38274d') +md5sums=('0ca546d81ca8309080fc80cb389e7a16') build() { cd "$srcdir/nose-$pkgver" From 52de5dc3510982704f2b6871ff0d88d1809d6220 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 7 Apr 2015 19:16:47 +0300 Subject: [PATCH 0823/2060] qwt-qt5: Update to 6.1.2 --- mingw-w64-qwt-qt5/PKGBUILD | 14 ++++---------- .../transform_cpp_static_const.patch | 15 --------------- mingw-w64-qwt-qt5/transform_h_static_const.patch | 13 ------------- 3 files changed, 4 insertions(+), 38 deletions(-) delete mode 100644 mingw-w64-qwt-qt5/transform_cpp_static_const.patch delete mode 100644 mingw-w64-qwt-qt5/transform_h_static_const.patch diff --git a/mingw-w64-qwt-qt5/PKGBUILD b/mingw-w64-qwt-qt5/PKGBUILD index 5c2a1f6297..1592f17ded 100644 --- a/mingw-w64-qwt-qt5/PKGBUILD +++ b/mingw-w64-qwt-qt5/PKGBUILD @@ -4,7 +4,7 @@ _realname=qwt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt5" -pkgver=6.1.1 +pkgver=6.1.2 pkgrel=1 pkgdesc="Qt Widgets for Technical Applications (mingw-w64)" arch=('any') @@ -14,13 +14,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt5") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=(!strip staticlibs !buildflags) source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.bz2" \ - "qwtconfig-msys2.pri" - "transform_cpp_static_const.patch" - "transform_h_static_const.patch") -md5sums=('fe4bdd561ef5584924e72e15bcf46b9e' - '2bb4059cc41cba7e9e18d921e3fe8a0d' - 'c650213b9223bd75d6e192a280c16030' - '2ef486784fa0232ce845a3ef295a47ae') + "qwtconfig-msys2.pri") +md5sums=('9c88db1774fa7e3045af063bbde44d7d' + '2bb4059cc41cba7e9e18d921e3fe8a0d') prepare() { mkdir -p ${pkgdir}${MINGW_PREFIX} @@ -33,8 +29,6 @@ prepare() { cp ${srcdir}/qwtconfig-msys2.pri qwtconfig.pri sed -s "s|%VALUE_QWT_INSTALL_PREFIX%|${PREFIX_WIN}|g" \ -i qwtconfig.pri - patch -p1 -i ${srcdir}/transform_cpp_static_const.patch - patch -p1 -i ${srcdir}/transform_h_static_const.patch } build() { diff --git a/mingw-w64-qwt-qt5/transform_cpp_static_const.patch b/mingw-w64-qwt-qt5/transform_cpp_static_const.patch deleted file mode 100644 index 44228f912d..0000000000 --- a/mingw-w64-qwt-qt5/transform_cpp_static_const.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- qwt-6.1.1/src/qwt_transform.cpp.orig 2014-09-18 17:59:46.405028700 +0300 -+++ qwt-6.1.1/src/qwt_transform.cpp 2014-12-06 18:55:54.227604600 +0300 -@@ -15,10 +15,10 @@ - #endif - - //! Smallest allowed value for logarithmic scales: 1.0e-150 --QT_STATIC_CONST_IMPL double QwtLogTransform::LogMin = 1.0e-150; -+const double QwtLogTransform::LogMin = 1.0e-150; - - //! Largest allowed value for logarithmic scales: 1.0e150 --QT_STATIC_CONST_IMPL double QwtLogTransform::LogMax = 1.0e150; -+const double QwtLogTransform::LogMax = 1.0e150; - - //! Constructor - QwtTransform::QwtTransform() diff --git a/mingw-w64-qwt-qt5/transform_h_static_const.patch b/mingw-w64-qwt-qt5/transform_h_static_const.patch deleted file mode 100644 index 258ebd306d..0000000000 --- a/mingw-w64-qwt-qt5/transform_h_static_const.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- qwt-6.1.1/src/qwt_transform.h.orig 2014-09-18 17:59:45.342028700 +0300 -+++ qwt-6.1.1/src/qwt_transform.h 2014-12-06 18:56:12.894672200 +0300 -@@ -107,8 +107,8 @@ - - virtual QwtTransform *copy() const; - -- QT_STATIC_CONST double LogMin; -- QT_STATIC_CONST double LogMax; -+ static const double LogMin; -+ static const double LogMax; - }; - - /*! From b1546a0a10f1e92bdacad283a31354d97b8b4760 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 7 Apr 2015 00:19:53 +0100 Subject: [PATCH 0824/2060] kcwsh: Build both static and shared kcwsh library --- ...th-static-and-shared-kcwsh-libraries.patch | 95 +++++++++++++++++++ mingw-w64-kcwsh-qt5-git/PKGBUILD | 7 +- 2 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-kcwsh-qt5-git/0003-build-both-static-and-shared-kcwsh-libraries.patch diff --git a/mingw-w64-kcwsh-qt5-git/0003-build-both-static-and-shared-kcwsh-libraries.patch b/mingw-w64-kcwsh-qt5-git/0003-build-both-static-and-shared-kcwsh-libraries.patch new file mode 100644 index 0000000000..b59caf32fd --- /dev/null +++ b/mingw-w64-kcwsh-qt5-git/0003-build-both-static-and-shared-kcwsh-libraries.patch @@ -0,0 +1,95 @@ +From ff2961277b6c418be325b0015f3c080fd646bed7 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 6 Apr 2015 12:47:55 +0100 +Subject: [PATCH 3/3] build both static and shared kcwsh libraries. + +There used to be a comment stating: +"kcwsh library always needs to be shared" + +.. so I'm not sure about the implications of changing +this. + +Currently, cmake/KcwSHConfig.cmake hardcodes to use the +static library only: + +set(KCWSH_LIBRARIES ${KCW_LIBRARIES} kcwsh_STATIC) +--- + CMakeLists.txt | 43 +++++++++++++++++++++++++++++++------------ + cmake/KcwSHConfig.cmake | 2 +- + 2 files changed, 32 insertions(+), 13 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index dc0ba42..f528609 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,7 @@ + project(kcwsh) + + cmake_minimum_required(VERSION 2.8.12) ++include(GenerateExportHeader) + + option(BUILD_GUI_TEST "build a gui app for testing purposes" ON) + option(BUILD_TESTS "build unittests" ON) +@@ -74,19 +75,37 @@ set(kcwsh_SRCS + ) + + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +-# kcwsh library always needs to be shared +-add_library(kcwsh SHARED ${kcwsh_SRCS}) +-target_link_libraries(kcwsh ${KCW_LIBRARIES}) +-set_target_properties(kcwsh PROPERTIES PREFIX "" AUTOMOC OFF) +- +-install(TARGETS kcwsh EXPORT KcwSHTargets +- RUNTIME DESTINATION bin +- LIBRARY DESTINATION bin +- ARCHIVE DESTINATION lib) +-install(FILES ${kcwsh_HDRS} DESTINATION include/kcwsh) + +-export(TARGETS kcwsh FILE "${CMAKE_CURRENT_BINARY_DIR}/KcwSHTargets.cmake") +-export(PACKAGE kcwsh) ++foreach(library_type STATIC SHARED) ++ add_library(kcwsh_${library_type} ${library_type} ${kcwsh_SRCS}) ++ set_target_properties(kcwsh_${library_type} PROPERTIES OUTPUT_NAME kcwsh) ++ generate_export_header(kcwsh_${library_type} ++ BASE_NAME kcwsh ++ EXPORT_FILE_NAME kcwsh_export.h) ++ # http://www.cmake.org/cmake/help/v3.0/module/GenerateExportHeader.html ++ # "If the same sources are used to create both a shared and a static library, the ++ # uppercased symbol ${BASE_NAME}_STATIC_DEFINE should be used when building the ++ # static library" ++ if(library_type STREQUAL "STATIC") ++ set_target_properties(kcwsh_${library_type} PROPERTIES ++ COMPILE_FLAGS -DKCWSH_STATIC_DEFINE) ++ # .. and the consumers of the static library need to also define this .. is there ++ # no better way than this? It's verbose and brittle. ++ set_target_properties(kcwsh_${library_type} PROPERTIES ++ INTERFACE_COMPILE_DEFINITIONS KCWSH_STATIC_DEFINE) ++ target_link_libraries(kcwsh_STATIC ${KCW_LIBRARIES}) ++ endif() ++ set_target_properties(kcwsh_${library_type} PROPERTIES PREFIX "" AUTOMOC OFF) ++ install(TARGETS kcwsh_${library_type} EXPORT KcwSHTargets ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION bin ++ ARCHIVE DESTINATION lib) ++ ++ export(TARGETS kcwsh_${library_type} FILE "${CMAKE_CURRENT_BINARY_DIR}/KcwSHTargets.cmake") ++ export(PACKAGE kcwsh_${library_type}) ++endforeach(library_type) ++ ++install(FILES ${kcwsh_HDRS} DESTINATION include/kcwsh) + + install(EXPORT KcwSHTargets DESTINATION lib/cmake/kcwsh COMPONENT devel) + +diff --git a/cmake/KcwSHConfig.cmake b/cmake/KcwSHConfig.cmake +index ee368ad..33c5a16 100644 +--- a/cmake/KcwSHConfig.cmake ++++ b/cmake/KcwSHConfig.cmake +@@ -12,4 +12,4 @@ endif() + find_package(Kcw REQUIRED) + + set(KCWSH_INCLUDE_DIRS ${KCW_INCLUDE_DIRS} ${KCWSH_CMAKE_DIR}/../../../include/kcwsh) +-set(KCWSH_LIBRARIES ${KCW_LIBRARIES} kcwsh) ++set(KCWSH_LIBRARIES ${KCW_LIBRARIES} kcwsh_STATIC) +-- +2.3.5 + diff --git a/mingw-w64-kcwsh-qt5-git/PKGBUILD b/mingw-w64-kcwsh-qt5-git/PKGBUILD index 3247b66812..a6685192c4 100644 --- a/mingw-w64-kcwsh-qt5-git/PKGBUILD +++ b/mingw-w64-kcwsh-qt5-git/PKGBUILD @@ -18,10 +18,12 @@ _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${M groups=('kf5') source=("${_realname}"::"git://anongit.kde.org/${_basename}.git" "0001-Add-std-c-11-globally.patch" - "0002-qt-frontend-Set-AUTOSTATICPLUGINS-don-t-force-lib-kc.patch") + "0002-qt-frontend-Set-AUTOSTATICPLUGINS-don-t-force-lib-kc.patch" + "0003-build-both-static-and-shared-kcwsh-libraries.patch") md5sums=('SKIP' '9a28e07b8f840054141a52c4f1bad6e3' - '9e266e7e507f23b33c15d07813c7d402') + '9e266e7e507f23b33c15d07813c7d402' + 'e8af9bfbb7053aaf7843df3a3d13184c') pkgver() { cd "${srcdir}"/${_realname} @@ -32,6 +34,7 @@ prepare() { cd "${srcdir}"/${_realname} git am "${srcdir}"/0001-Add-std-c-11-globally.patch git am "${srcdir}"/0002-qt-frontend-Set-AUTOSTATICPLUGINS-don-t-force-lib-kc.patch + git am "${srcdir}"/0003-build-both-static-and-shared-kcwsh-libraries.patch } build() { From 767bc1dc19d89911413a39ae5a39a8e15a829f84 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 7 Apr 2015 20:06:25 +0100 Subject: [PATCH 0825/2060] qt5: Fix issue caused by qt5-static re-sync --- ...ic-cmake-also-link-plugins-and-plugin-deps.patch | 4 +++- ...t-5.4.0-win32-g++-enable-qtwebengine-build.patch | 11 +++++++++++ mingw-w64-qt5/PKGBUILD | 13 +++++++++++-- 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-qt5/0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch diff --git a/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch b/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch index 90f5d21db2..d6a8e73a22 100644 --- a/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch +++ b/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch @@ -63,7 +63,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!ELSE add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) !!ENDIF -@@ -242,6 +260,44 @@ +@@ -242,6 +260,46 @@ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) @@ -95,7 +95,9 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c + get_filename_component(_pluginname ${PLUGIN_LOCATION} NAME) + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY STATIC_PLUGINS ${Plugin}) + string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/share/qt5/plugins/${_plugindirname}/\\\\1.prl\" plugin_prl_file_location ${_pluginname}) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) + macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"share/qt5/plugins\" ${PLUGIN_LOCATION} ) ++!!ENDIF + + endmacro() + diff --git a/mingw-w64-qt5/0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch b/mingw-w64-qt5/0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch new file mode 100644 index 0000000000..e7bed45d1b --- /dev/null +++ b/mingw-w64-qt5/0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch @@ -0,0 +1,11 @@ +--- qt-everywhere-opensource-src-5.4.0/qtwebengine/tools/qmake/mkspecs/features/functions.prf.orig 2014-12-05 16:25:19.000000000 +0000 ++++ qt-everywhere-opensource-src-5.4.0/qtwebengine/tools/qmake/mkspecs/features/functions.prf 2015-02-03 18:15:21.775257200 +0000 +@@ -7,7 +7,7 @@ + + linux-g++*:!isGCCVersionSupported():return(false) + !isPythonVersionSupported(): return(false) +- linux-g++*|win32-msvc2013|macx-clang: return(true) ++ linux-g++*|win32-*|macx-clang: return(true) + boot2qt: return(true) + + warning("Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation".) diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index a5e81c595a..f2531f20b0 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.1 pkgver=${_ver_base//-/} -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -120,6 +120,7 @@ makedepends=("bison" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-make" + "${MINGW_PACKAGE_PREFIX}-ninja" $([[ "$_variant" == "-static" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-dbus" \ "${MINGW_PACKAGE_PREFIX}-openssl") @@ -178,6 +179,7 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch 0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch + 0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch) md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' @@ -221,7 +223,8 @@ md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' 'd66b2afce490ab8a82feae08c747e367' '92fb1954fe3ab91d99a09c7f8a878218' 'ab2cac300aa7a908ea8840649f0b51fc' - '7d8093f2b8b0347304159c0e5836f3aa' + '7fb83b02387cfe5452cc0a95a7e2e551' + 'd9e0f8a09b24757c274187469c7661d4' '51016015352313cdd749ae1ff3e14614' '9bc9c1177134d0f2fd782db3f394a318') @@ -338,6 +341,7 @@ prepare() { patch -p1 -i ${srcdir}/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch patch -p1 -i ${srcdir}/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch patch -p1 -i ${srcdir}/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch +# patch -p1 -i ${srcdir}/0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch patch -p1 -i ${srcdir}/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch pushd qtbase > /dev/null @@ -493,6 +497,7 @@ build() { unset CFLAGS unset CXXFLAGS unset LDFLAGS + export NINJA_PATH=${MINGW_PREFIX}/bin/ninja.exe ${_configure} \ -prefix ${QTDIR_WIN} \ @@ -521,6 +526,10 @@ build() { # can happen at -j9 so make twice (dumpdoc.exe depends on libqtiff but can get built # first). ${_make} ${MAKEFLAGS} || ${_make} ${MAKEFLAGS} + # For quicker turn-around testing qtwebengine. + # ${_make} module-qtbase + # ${_make} module-qtwebengine + # exit 1 # Fix paths # find "${QTDIR}" -name Makefile -exec sed -i "s|/usr/lib/qt/bin/qdoc|${QTDIR}/qtbase/bin/qdoc|g" {} + From 16f45f7f15c859f150d189d58758af3c4e9e60fe Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 7 Apr 2015 22:15:37 +0300 Subject: [PATCH 0826/2060] freeglut: Update to 3.0.0 --- mingw-w64-freeglut/PKGBUILD | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/mingw-w64-freeglut/PKGBUILD b/mingw-w64-freeglut/PKGBUILD index c250dbb057..92eba863d5 100644 --- a/mingw-w64-freeglut/PKGBUILD +++ b/mingw-w64-freeglut/PKGBUILD @@ -2,7 +2,7 @@ _realname=freeglut pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_pre=rc1 +_pre= _ver=3.0.0 pkgver=${_ver}${_pre} pkgrel=1 @@ -12,8 +12,16 @@ url="http://freeglut.sourceforge.net/" license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' '!libtool' 'staticlibs') -source=("http://downloads.sourceforge.net/freeglut/${_realname}-${_ver}-${_pre}.tar.gz") -md5sums=('9679f19e5d9fd211c904698be0cfec2b') +source=("http://downloads.sourceforge.net/freeglut/${_realname}-${_ver}${_pre}.tar.gz") +md5sums=('90c3ca4dd9d51cf32276bc5344ec9754') +noextract=(${_realname}-${_ver}${_pre}.tar.gz) + +prepare() { + cd ${startdir} + # Clean up old sources so re-patching doesn't fail. + [[ -d $srcdir/${_realname}-${_ver}${_pre} ]] && rm -rf $srcdir/${_realname}-${_ver}${_pre} + tar -xzvf ${_realname}-${_ver}${_pre}.tar.gz -C $srcdir +} build() { rm -rf "${srcdir}/build-${MINGW_CHOST}" @@ -24,7 +32,7 @@ build() { -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ - ../${_realname}-${_ver}-${_pre} + ../${_realname}-${_ver}${_pre} make } From 69742f4aec9683b025f11f3fafcbae21df43e81c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20H=C3=BCttner?= Date: Wed, 8 Apr 2015 09:23:04 +0200 Subject: [PATCH 0827/2060] lua-lpeg: updated for lua 5.3 --- mingw-w64-lua-lpeg/PKGBUILD | 12 ++++++---- mingw-w64-lua-lpeg/lptypes-lua-503.patch | 30 ++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-lua-lpeg/lptypes-lua-503.patch diff --git a/mingw-w64-lua-lpeg/PKGBUILD b/mingw-w64-lua-lpeg/PKGBUILD index 4ee0174283..882bc6ed0a 100644 --- a/mingw-w64-lua-lpeg/PKGBUILD +++ b/mingw-w64-lua-lpeg/PKGBUILD @@ -1,11 +1,12 @@ # Maintainer: David Macek # Contributor (Arch Linux): Gustavo Alvarez +# Contributor: Felix Huettner _realname=lpeg pkgname=("${MINGW_PACKAGE_PREFIX}-lua-${_realname}" "${MINGW_PACKAGE_PREFIX}-lua51-${_realname}") pkgver=0.12 -pkgrel=1 +pkgrel=2 arch=('any') url='http://www.inf.puc-rio.br/~roberto/lpeg' license=('MIT') @@ -14,14 +15,17 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-lua" "${MINGW_PACKAGE_PREFIX}-gcc") source=("http://www.inf.puc-rio.br/~roberto/${_realname}/${_realname}-${pkgver}.tar.gz" "lpeg-0.12-makefile.patch" + "lptypes-lua-503.patch" "LICENSE") md5sums=('4abb3c28cd8b6565c6a65e88f06c9162' '8f2f06957131ccb64413433c08e18d65' + 'a6cfa90f0a2b4c250c0545fa773855d9' 'dccb97b431c3a3ccaacc216c6242e9fd') prepare() { cd "${_realname}-${pkgver}" patch -p1 -i "${srcdir}/lpeg-0.12-makefile.patch" + patch -p1 -i "${srcdir}/lptypes-lua-503.patch" sed -i 's/lpeg.so/lpeg.dll/' makefile mkdir -p "${srcdir}/build-${CARCH}" "${srcdir}/build-51-${CARCH}" @@ -47,12 +51,12 @@ check() { } package_mingw-w64-lua-lpeg() { - pkgdesc='Pattern-matching library for Lua 5.2 (mingw-w64)' + pkgdesc='Pattern-matching library for Lua 5.3 (mingw-w64)' depends=("${MINGW_PACKAGE_PREFIX}-lua") cd "${srcdir}/build-${CARCH}" - install -Dm755 lpeg.dll "${pkgdir}${MINGW_PREFIX}/lib/lua/5.2/lpeg.dll" - install -Dm644 re.lua "${pkgdir}${MINGW_PREFIX}/share/lua/5.2/re.lua" + install -Dm755 lpeg.dll "${pkgdir}${MINGW_PREFIX}/lib/lua/5.3/lpeg.dll" + install -Dm644 re.lua "${pkgdir}${MINGW_PREFIX}/share/lua/5.3/re.lua" install -Dm644 "${srcdir}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/lua-lpeg/LICENSE" } diff --git a/mingw-w64-lua-lpeg/lptypes-lua-503.patch b/mingw-w64-lua-lpeg/lptypes-lua-503.patch new file mode 100644 index 0000000000..c667128484 --- /dev/null +++ b/mingw-w64-lua-lpeg/lptypes-lua-503.patch @@ -0,0 +1,30 @@ +--- lpeg-0.12/lptypes.h 2015-04-08 08:39:37.670848100 +0200 ++++ lpeg-0.12/lptypes.h 2015-04-08 08:41:08.649094600 +0200 +@@ -27,9 +27,9 @@ + + + /* +-** compatibility with Lua 5.2 ++** compatibility with Lua 5.2 and higher + */ +-#if (LUA_VERSION_NUM == 502) ++#if (LUA_VERSION_NUM >= 502) + + #undef lua_equal + #define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) +@@ -48,6 +48,15 @@ + + #endif + ++/* ++** compatibility with Lua 5.3 and higher ++*/ ++#if (LUA_VERSION_NUM >= 503) ++ ++#undef luaL_checkint ++#define luaL_checkint luaL_checkinteger ++ ++#endif + + /* default maximum size for call/backtrack stack */ + #if !defined(MAXBACK) From 4306fe5449803a8a429a661e2b35e7269eaf86a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20H=C3=BCttner?= Date: Wed, 8 Apr 2015 12:43:30 +0200 Subject: [PATCH 0828/2060] lua-lpeg: generify PKGBUILD for future versions of lua --- mingw-w64-lua-lpeg/PKGBUILD | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mingw-w64-lua-lpeg/PKGBUILD b/mingw-w64-lua-lpeg/PKGBUILD index 882bc6ed0a..58c9c80fcb 100644 --- a/mingw-w64-lua-lpeg/PKGBUILD +++ b/mingw-w64-lua-lpeg/PKGBUILD @@ -19,7 +19,7 @@ source=("http://www.inf.puc-rio.br/~roberto/${_realname}/${_realname}-${pkgver}. "LICENSE") md5sums=('4abb3c28cd8b6565c6a65e88f06c9162' '8f2f06957131ccb64413433c08e18d65' - 'a6cfa90f0a2b4c250c0545fa773855d9' + '1b876fcf29e29dafae1ca8c5362236c3' 'dccb97b431c3a3ccaacc216c6242e9fd') prepare() { @@ -51,12 +51,14 @@ check() { } package_mingw-w64-lua-lpeg() { - pkgdesc='Pattern-matching library for Lua 5.3 (mingw-w64)' + pkgdesc='Pattern-matching library for Lua (mingw-w64)' depends=("${MINGW_PACKAGE_PREFIX}-lua") cd "${srcdir}/build-${CARCH}" - install -Dm755 lpeg.dll "${pkgdir}${MINGW_PREFIX}/lib/lua/5.3/lpeg.dll" - install -Dm644 re.lua "${pkgdir}${MINGW_PREFIX}/share/lua/5.3/re.lua" + + local luaver=$(pkg-config lua --modversion | sed -r 's/^([0-9]+[.][0-9]+)[.][0-9]+$/\1/') + install -Dm755 lpeg.dll "${pkgdir}${MINGW_PREFIX}/lib/lua/${luaver}/lpeg.dll" + install -Dm644 re.lua "${pkgdir}${MINGW_PREFIX}/share/lua/${luaver}/re.lua" install -Dm644 "${srcdir}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/lua-lpeg/LICENSE" } From f39b2f4854144892c2956c3bf4f62c3048b9d9ba Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Wed, 8 Apr 2015 15:14:51 -0400 Subject: [PATCH 0829/2060] Add default install path to build configuration. --- mingw-w64-kicad-git/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-kicad-git/PKGBUILD b/mingw-w64-kicad-git/PKGBUILD index aac9ab1e9c..d0b263a037 100644 --- a/mingw-w64-kicad-git/PKGBUILD +++ b/mingw-w64-kicad-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=kicad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r6982.bd199b8 +pkgver=r7248.0d77a86 pkgrel=1 pkgdesc="Software for the creation of electronic schematic diagrams and printed circuit board artwork" arch=('any') @@ -46,6 +46,7 @@ build() { -G"MSYS Makefiles" \ -DCMAKE_PREFIX_PATH=${MINGW_PREFIX} \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DDEFAULT_INSTALL_PATH=${MINGW_PREFIX} \ -DOPENSSL_ROOT_DIR=${MINGW_PREFIX} \ -DKICAD_SKIP_BOOST=ON \ -DKICAD_SCRIPTING=ON \ From f44fa161e965791b26330fed1f1af87858bd591e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 8 Apr 2015 23:13:58 +0100 Subject: [PATCH 0830/2060] clang-svn: Refresh patches .. also don't remove Windows ARM + Itanium C++ ABI Target --- .../0001-Add-Clang-MinGW-w64-driver.patch | 51 ++++++++------ .../0002-Fixup-all-windows-ARM-targets.patch | 69 ++++++++----------- mingw-w64-clang-svn/PKGBUILD | 6 +- 3 files changed, 63 insertions(+), 63 deletions(-) diff --git a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch b/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch index 4d4e4053a7..7c63ad1d0a 100644 --- a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch +++ b/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch @@ -1,7 +1,7 @@ -From 7a45a58c7136fe48aacf85e2a98fb18d5aabd079 Mon Sep 17 00:00:00 2001 +From 417410c4e0881f98f806c8cdda7999d31295ae47 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Tue, 24 Mar 2015 15:02:53 +0000 -Subject: [PATCH] Add Clang MinGW-w64 driver +Subject: [PATCH 1/2] Add Clang MinGW-w64 driver This adds the MinGW-w64 driver to clang with the new triplets compnerd introduced to clang. Based @@ -12,8 +12,19 @@ Update: March 2015: removed seh code as clang detects itself as of commit b27216c updated to head --- + include/clang/Driver/Options.td | 5 + + lib/Driver/CMakeLists.txt | 1 + + lib/Driver/Driver.cpp | 7 +- + lib/Driver/MinGWToolChain.cpp | 191 +++++++++++++++++++++++++++++++++++ + lib/Driver/ToolChains.h | 29 ++++++ + lib/Driver/Tools.cpp | 204 ++++++++++++++++++++++++++++++++++++++ + lib/Driver/Tools.h | 33 ++++++ + lib/Frontend/InitHeaderSearch.cpp | 62 ++---------- + 8 files changed, 470 insertions(+), 62 deletions(-) + create mode 100644 lib/Driver/MinGWToolChain.cpp + diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td -index 5a37a64..e7653e7 100644 +index 4e1afbe..4d0bf35 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -1134,6 +1134,11 @@ def march_EQ : Joined<["-"], "march=">, Group; @@ -41,10 +52,10 @@ index 412840b..8d88f96 100644 SanitizerArgs.cpp Tool.cpp diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index c619c8c..d3fe34f 100644 +index 07a5e42..8b3a846 100644 --- a/lib/Driver/Driver.cpp +++ b/lib/Driver/Driver.cpp -@@ -2073,12 +2073,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, +@@ -2079,12 +2079,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, TC = new toolchains::Generic_GCC(*this, Target, Args); break; case llvm::Triple::GNU: @@ -256,10 +267,10 @@ index 0000000..3b6901c +#endif +} diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h -index 90893c3..e8d803e 100644 +index d1b681f..af3ad72 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h -@@ -519,6 +519,35 @@ protected: +@@ -549,6 +549,35 @@ protected: }; @@ -296,10 +307,10 @@ index 90893c3..e8d803e 100644 class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic_ELF { public: diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 94c71ac..daa5fdc 100644 +index 7b661a7..35aea3b 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp -@@ -8318,6 +8318,210 @@ std::unique_ptr visualstudio::Compile::GetCommand( +@@ -8607,6 +8607,210 @@ std::unique_ptr visualstudio::Compile::GetCommand( CmdArgs); } @@ -511,10 +522,10 @@ index 94c71ac..daa5fdc 100644 /// XCore Tools // We pass assemble and link construction to the xcc tool. diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h -index 93a19fb..64158b5 100644 +index e8edaeb..43fd064 100644 --- a/lib/Driver/Tools.h +++ b/lib/Driver/Tools.h -@@ -616,6 +616,39 @@ namespace visualstudio { +@@ -659,6 +659,39 @@ namespace visualstudio { }; } // end namespace visualstudio @@ -555,7 +566,7 @@ index 93a19fb..64158b5 100644 StringRef getARMFloatABI(const Driver &D, const llvm::opt::ArgList &Args, const llvm::Triple &Triple); diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp -index 9b4f7e5..101e6ad 100644 +index 2bd999e..b01b546 100644 --- a/lib/Frontend/InitHeaderSearch.cpp +++ b/lib/Frontend/InitHeaderSearch.cpp @@ -82,11 +82,6 @@ public: @@ -589,15 +600,15 @@ index 9b4f7e5..101e6ad 100644 void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, const HeaderSearchOptions &HSOpts) { -@@ -232,6 +215,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - case llvm::Triple::NetBSD: +@@ -233,6 +216,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, case llvm::Triple::OpenBSD: case llvm::Triple::Bitrig: + case llvm::Triple::NaCl: + case llvm::Triple::Win32: break; default: // FIXME: temporary hack: hard-coded paths. -@@ -270,7 +254,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, +@@ -271,7 +255,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, switch (os) { case llvm::Triple::Linux: llvm_unreachable("Include management is handled in the driver."); @@ -606,7 +617,7 @@ index 9b4f7e5..101e6ad 100644 case llvm::Triple::CloudABI: { // //include SmallString<128> P = StringRef(HSOpts.ResourceDir); -@@ -318,30 +302,12 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, +@@ -319,30 +303,12 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, case llvm::Triple::Win32: switch (triple.getEnvironment()) { default: llvm_unreachable("Include management is handled in the driver."); @@ -639,15 +650,15 @@ index 9b4f7e5..101e6ad 100644 break; } break; -@@ -352,6 +318,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - switch (os) { +@@ -354,6 +320,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, case llvm::Triple::CloudABI: case llvm::Triple::RTEMS: + case llvm::Triple::NaCl: + case llvm::Triple::Win32: break; default: AddPath("/usr/include", ExternCSystem, false); -@@ -418,26 +385,9 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp +@@ -420,26 +387,9 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.2"); break; case llvm::Triple::GNU: @@ -676,5 +687,5 @@ index 9b4f7e5..101e6ad 100644 if (llvm::sys::fs::exists("/usr/lib/gcc47")) AddPath("/usr/include/c++/4.7", CXXSystem, false); -- -2.3.3 +2.3.5 diff --git a/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch b/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch index 42c71de8f9..319008c5f5 100644 --- a/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch +++ b/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch @@ -1,14 +1,17 @@ -From e41da429bc2ba3eb15673f3ba5e3039ad6113cd3 Mon Sep 17 00:00:00 2001 +From 3c3008a9dea38318ff85e6cf39ef45fdb305c55b Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Fri, 20 Mar 2015 22:43:51 +0000 Subject: [PATCH 2/2] Fixup all windows ARM targets +--- + lib/Basic/Targets.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 69 insertions(+), 4 deletions(-) diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp -index a9611fe..396bd3f 100644 +index fb25886..80cc4b9 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp -@@ -4655,10 +4655,27 @@ public: +@@ -4623,10 +4623,71 @@ public: } }; @@ -28,48 +31,26 @@ index a9611fe..396bd3f 100644 +}; +} // end anonymous namespace. + -+namespace { - // Windows ARM + Itanium C++ ABI Target --class ItaniumWindowsARMleTargetInfo : public WindowsARMTargetInfo { -+class ItaniumWindowsARMTargetInfo : public WindowsARMTargetInfo { - public: -- ItaniumWindowsARMleTargetInfo(const llvm::Triple &Triple) -+ ItaniumWindowsARMTargetInfo(const llvm::Triple &Triple) - : WindowsARMTargetInfo(Triple) { - TheCXXABI.set(TargetCXXABI::GenericARM); - } -@@ -4671,23 +4688,51 @@ public: - WindowsARMTargetInfo::getVisualStudioDefines(Opts, Builder); - } - }; -+} // end anonymous namespace - --// Windows ARM, MS (C++) ABI --class MicrosoftARMleTargetInfo : public WindowsARMTargetInfo { +namespace { +// ARM MinGW target +class MinGWARMTargetInfo : public WindowsARMTargetInfo { - public: -- MicrosoftARMleTargetInfo(const llvm::Triple &Triple) ++public: + MinGWARMTargetInfo(const llvm::Triple &Triple) - : WindowsARMTargetInfo(Triple) { -- TheCXXABI.set(TargetCXXABI::Microsoft); ++ : WindowsARMTargetInfo(Triple) { + TheCXXABI.set(TargetCXXABI::GenericARM); - } - - void getTargetDefines(const LangOptions &Opts, - MacroBuilder &Builder) const override { - WindowsARMTargetInfo::getTargetDefines(Opts, Builder); -- WindowsARMTargetInfo::getVisualStudioDefines(Opts, Builder); ++ } ++ ++ void getTargetDefines(const LangOptions &Opts, ++ MacroBuilder &Builder) const override { ++ WindowsARMTargetInfo::getTargetDefines(Opts, Builder); + DefineStd(Builder, "WIN32", Opts); + DefineStd(Builder, "WINNT", Opts); + Builder.defineMacro("_ARM_"); + addMinGWDefines(Opts, Builder); - } - }; --} ++ } ++}; +} // end anonymous namespace - ++ +namespace { +// ARM Cygwin target +class CygwinARMTargetInfo : public ARMleTargetInfo { @@ -93,10 +74,18 @@ index a9611fe..396bd3f 100644 + } +}; +} // end anonymous namespace - - namespace { - class DarwinARMTargetInfo : -@@ -6654,10 +6699,14 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { ++ ++namespace { + // Windows ARM + Itanium C++ ABI Target +-class ItaniumWindowsARMleTargetInfo : public WindowsARMTargetInfo { ++class ItaniumWindowsARMTargetInfo : public WindowsARMTargetInfo { + public: +- ItaniumWindowsARMleTargetInfo(const llvm::Triple &Triple) ++ ItaniumWindowsARMTargetInfo(const llvm::Triple &Triple) + : WindowsARMTargetInfo(Triple) { + TheCXXABI.set(TargetCXXABI::GenericARM); + } +@@ -6669,10 +6730,14 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { switch (Triple.getEnvironment()) { default: return new ARMleTargetInfo(Triple); @@ -114,5 +103,5 @@ index a9611fe..396bd3f 100644 default: return new ARMleTargetInfo(Triple); -- -2.3.3 +2.3.5 diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index f8584e5c8b..b1164b78f5 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -10,7 +10,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn") #pkgname="${MINGW_PACKAGE_PREFIX}-llvm-toolchain-svn" -pkgver=56263.fbb819f +pkgver=56512.dbad677 pkgrel=1 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') @@ -36,8 +36,8 @@ md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - 'c410d98df8f3436c905b1685c0c8defd' - '3a43f737b79f8d14e11bf1edfc1b85a2') + '6ead4e06825c09cccf5928e2317698d1' + '6c31dc05b01f038d10ceb5e88c5fe9f5') pkgver_internal() { if [ ! -d "$1" ]; then From 044da37bf472f296dab6cb7d962a7b545d96e6fa Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 9 Apr 2015 13:54:55 +0300 Subject: [PATCH 0831/2060] gtk3: Update to 3.16.1. Build examples/demo/tests --- .../Make-reftest-plugins-W32-compatible.patch | 243 ------------------ mingw-w64-gtk3/PKGBUILD | 8 +- 2 files changed, 4 insertions(+), 247 deletions(-) delete mode 100644 mingw-w64-gtk3/Make-reftest-plugins-W32-compatible.patch diff --git a/mingw-w64-gtk3/Make-reftest-plugins-W32-compatible.patch b/mingw-w64-gtk3/Make-reftest-plugins-W32-compatible.patch deleted file mode 100644 index c426a14216..0000000000 --- a/mingw-w64-gtk3/Make-reftest-plugins-W32-compatible.patch +++ /dev/null @@ -1,243 +0,0 @@ -From 213a66f27f5a2a09ecc49e45ec82de7aaf059eae 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?= -Date: Tue, 9 Sep 2014 14:49:05 +0000 -Subject: [PATCH] Make reftest plugins W32-compatible - -When a plugin is loaded, see if it has an initialization function. -If it does, call that function, passing snapshot API function table to it. -This way reftest plugins can be built without linking them to gtk-reftest -application (which provides snapshot inhibition API). - -https://bugzilla.gnome.org/show_bug.cgi?id=736338 ---- - testsuite/reftests/Makefile.am | 6 ++- - testsuite/reftests/expand-expander.c | 6 +-- - testsuite/reftests/gtk-reftest.c | 10 +++++ - testsuite/reftests/libreftest.c | 47 ++++++++++++++++++++++ - testsuite/reftests/libreftest.h | 38 +++++++++++++++++ - .../{gtk-reftest.h => libreftest_private.h} | 10 ++--- - 6 files changed, 107 insertions(+), 10 deletions(-) - create mode 100644 testsuite/reftests/libreftest.c - create mode 100644 testsuite/reftests/libreftest.h - rename testsuite/reftests/{gtk-reftest.h => libreftest_private.h} (80%) - -diff --git a/testsuite/reftests/Makefile.am b/testsuite/reftests/Makefile.am -index 0853a00..539dcf3 100644 ---- a/testsuite/reftests/Makefile.am -+++ b/testsuite/reftests/Makefile.am -@@ -32,8 +32,7 @@ gtk_reftest_LDADD = \ - $(NULL) - - gtk_reftest_SOURCES = \ -- gtk-reftest.c \ -- gtk-reftest.h -+ gtk-reftest.c - - clean-local: - rm -rf output/ || true -@@ -445,6 +444,9 @@ libreftest_la_LDFLAGS += -avoid-version -module $(no_undefined) - libreftest_la_CFLAGS = $(gtk_reftest_CFLAGS) - libreftest_la_LIBADD = $(gtk_reftest_LDADD) - libreftest_la_SOURCES = \ -+ libreftest.c \ -+ libreftest_private.h \ -+ libreftest.h \ - expand-expander.c \ - set-default-direction.c \ - statusbar-remove-all.c \ -diff --git a/testsuite/reftests/expand-expander.c b/testsuite/reftests/expand-expander.c -index 0bb4d9d..1b8ad2b 100644 ---- a/testsuite/reftests/expand-expander.c -+++ b/testsuite/reftests/expand-expander.c -@@ -22,19 +22,19 @@ - - #include - --#include "gtk-reftest.h" -+#include "libreftest_private.h" - - static gboolean - unblock (gpointer data) - { -- reftest_uninhibit_snapshot (); -+ libreftest_uninhibit_snapshot (); - return G_SOURCE_REMOVE; - } - - G_MODULE_EXPORT void - expand_expander (GtkWidget *widget) - { -- reftest_inhibit_snapshot (); -+ libreftest_inhibit_snapshot (); - gtk_expander_set_expanded (GTK_EXPANDER (widget), TRUE); - g_timeout_add (500, unblock, NULL); - } -diff --git a/testsuite/reftests/gtk-reftest.c b/testsuite/reftests/gtk-reftest.c -index ed0e634..6da068a 100644 ---- a/testsuite/reftests/gtk-reftest.c -+++ b/testsuite/reftests/gtk-reftest.c -@@ -21,6 +21,7 @@ - #include "config.h" - - #include "reftest-module.h" -+#include "libreftest.h" - - #include - #include -@@ -256,6 +257,11 @@ reftest_uninhibit_snapshot (void) - g_idle_add (quit_when_idle, loop); - } - -+reftest_api api = { -+ .reftest_inhibit_snapshot = reftest_inhibit_snapshot, -+ .reftest_uninhibit_snapshot = reftest_uninhibit_snapshot -+}; -+ - static void - check_for_draw (GdkEvent *event, gpointer data) - { -@@ -351,6 +357,7 @@ connect_signals (GtkBuilder *builder, - ReftestModule *module; - const char *directory; - GCallback func; -+ reftest_plugin_init_func init_func; - GClosure *closure; - char **split; - -@@ -397,6 +404,9 @@ connect_signals (GtkBuilder *builder, - g_error ("failed to lookup handler for name '%s' in module '%s'", split[1], split[0]); - return; - } -+ init_func = (reftest_plugin_init_func) reftest_module_lookup (module, "reftest_plugin_init"); -+ if (init_func) -+ init_func (&api); - break; - default: - g_error ("Could not connect signal handler named '%s'", handler_name); -diff --git a/testsuite/reftests/libreftest.c b/testsuite/reftests/libreftest.c -new file mode 100644 -index 0000000..78eba95 ---- /dev/null -+++ b/testsuite/reftests/libreftest.c -@@ -0,0 +1,47 @@ -+/* -+ * Copyright (C) 2014 Red Hat Inc. -+ * -+ * Author: -+ * Matthias Clasen -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Library General Public -+ * License as published by the Free Software Foundation; either -+ * version 2 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Library General Public License for more details. -+ * -+ * You should have received a copy of the GNU Library General Public -+ * License along with this library. If not, see . -+ */ -+ -+#include "config.h" -+ -+#include -+ -+#include "libreftest.h" -+ -+static reftest_api api; -+ -+void -+libreftest_inhibit_snapshot (void) -+{ -+ if (api.reftest_inhibit_snapshot) -+ api.reftest_inhibit_snapshot (); -+} -+ -+void -+libreftest_uninhibit_snapshot (void) -+{ -+ if (api.reftest_uninhibit_snapshot) -+ api.reftest_uninhibit_snapshot (); -+} -+ -+G_MODULE_EXPORT void -+reftest_plugin_init (reftest_api *app_api) -+{ -+ api = *app_api; -+} -diff --git a/testsuite/reftests/libreftest.h b/testsuite/reftests/libreftest.h -new file mode 100644 -index 0000000..194703a ---- /dev/null -+++ b/testsuite/reftests/libreftest.h -@@ -0,0 +1,38 @@ -+/* GTK - The GIMP Toolkit -+ * Copyright (C) 2014 Red Hat, Inc. -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library. If not, see . -+ */ -+ -+#ifndef __LIBREFTEST_H__ -+#define __LIBREFTEST_H__ -+ -+#include -+ -+G_BEGIN_DECLS -+ -+typedef void (* reftest_inhibit_snapshot_func) (void); -+typedef void (* reftest_uninhibit_snapshot_func) (void); -+ -+typedef struct -+{ -+ reftest_inhibit_snapshot_func reftest_inhibit_snapshot; -+ reftest_uninhibit_snapshot_func reftest_uninhibit_snapshot; -+} reftest_api; -+ -+typedef void (* reftest_plugin_init_func) (reftest_api *api); -+ -+G_END_DECLS -+ -+#endif /* __LIBREFTEST_H__ */ -diff --git a/testsuite/reftests/gtk-reftest.h b/testsuite/reftests/libreftest_private.h -similarity index 80% -rename from testsuite/reftests/gtk-reftest.h -rename to testsuite/reftests/libreftest_private.h -index aa527b6..4359cf7 100644 ---- a/testsuite/reftests/gtk-reftest.h -+++ b/testsuite/reftests/libreftest_private.h -@@ -15,14 +15,14 @@ - * License along with this library. If not, see . - */ - --#ifndef __GTK_REFTEST_H__ --#define __GTK_REFTEST_H__ -+#ifndef __LIBREFTEST_PRIVATE_H__ -+#define __LIBREFTEST_PRIVATE_H__ - - G_BEGIN_DECLS - --void reftest_inhibit_snapshot (void); --void reftest_uninhibit_snapshot (void); -+void libreftest_inhibit_snapshot (void); -+void libreftest_uninhibit_snapshot (void); - - G_END_DECLS - --#endif /* __GTK_REFTEST_H__ */ -+#endif /* __LIBREFTEST_PRIVATE_H__ */ --- -1.8.5.3 \ No newline at end of file diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 32becd7e5d..3be7511b46 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -2,8 +2,8 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 -pkgrel=2 +pkgver=3.16.1 +pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -36,7 +36,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0055-skip-testsuite.all.patch Make-reftest-plugins-W32-compatible.patch do-not-check-xgettext.patch) -md5sums=('11c97ce2527956e0ddb5ad5b236e4572' +md5sums=('7458661889a718f93b46cb44b677cc41' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' '3aa19ea25cc1d7693ae57f8e80f88440' @@ -53,7 +53,7 @@ prepare() { patch -Np1 -i "${srcdir}"/0035-enable-rgba-w32-windows.all.patch patch -Np1 -i "${srcdir}"/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch patch -Np1 -i "${srcdir}"/0054-no-transparency-for-children.all.patch - patch -Np1 -i "${srcdir}"/0055-skip-testsuite.all.patch + #patch -Np1 -i "${srcdir}"/0055-skip-testsuite.all.patch #patch -Np1 -i "${srcdir}"/Make-reftest-plugins-W32-compatible.patch patch -Np1 -i "${srcdir}"/do-not-check-xgettext.patch From 1e1c574b7bfbaab7553740690ed530a3676eea36 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 9 Apr 2015 14:27:00 +0300 Subject: [PATCH 0832/2060] openscenegraph: Update to 3.3.6 --- mingw-w64-openscenegraph/PKGBUILD | 73 ++++--- .../additional-gl-header.patch | 11 + mingw-w64-openscenegraph/find-collada.patch | 33 ++- mingw-w64-openscenegraph/giflib.patch | 11 - .../osg-collada-dae-fixes.patch | 205 ------------------ 5 files changed, 65 insertions(+), 268 deletions(-) create mode 100644 mingw-w64-openscenegraph/additional-gl-header.patch delete mode 100644 mingw-w64-openscenegraph/giflib.patch delete mode 100644 mingw-w64-openscenegraph/osg-collada-dae-fixes.patch diff --git a/mingw-w64-openscenegraph/PKGBUILD b/mingw-w64-openscenegraph/PKGBUILD index 42d69b743f..de1f4ceb25 100644 --- a/mingw-w64-openscenegraph/PKGBUILD +++ b/mingw-w64-openscenegraph/PKGBUILD @@ -1,54 +1,57 @@ # Maintainer: Alexey Pavlov _realname=OpenSceneGraph - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -_pkgver=3.2.1 +_pkgver=3.3.6 pkgver=${_pkgver//-/} pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" arch=('any') url="http://www.openscenegraph.org/" license=("LGPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-cmake") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-cmake") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-collada-dom-svn" - "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-collada-dom-svn" "${MINGW_PACKAGE_PREFIX}-curl" - "${MINGW_PACKAGE_PREFIX}-lua" + "${MINGW_PACKAGE_PREFIX}-ffmpeg" + "${MINGW_PACKAGE_PREFIX}-fltk" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-gdal" + "${MINGW_PACKAGE_PREFIX}-giflib" + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-gtkglext" + "${MINGW_PACKAGE_PREFIX}-jasper" "${MINGW_PACKAGE_PREFIX}-libjpeg" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-lua" "${MINGW_PACKAGE_PREFIX}-SDL" - "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-poppler" + "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-qt5" - "${MINGW_PACKAGE_PREFIX}-gtkglext" - "${MINGW_PACKAGE_PREFIX}-giflib" - "${MINGW_PACKAGE_PREFIX}-coin3d" "${MINGW_PACKAGE_PREFIX}-wxWidgets" - ) -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") + "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') source=(http://www.openscenegraph.org/downloads/developer_releases/${_realname}-${_pkgver}.zip - osg-collada-dae-fixes.patch find-collada.patch find-freetype.patch + additional-gl-header.patch giflib.patch) -md5sums=('4f95206a1eef218bd007c3b43e1334f5' - '45d0668f56c5e4ca58002f38fd3eb4a0' - '668def9c99f044db9a8215fa927d6ac2' +md5sums=('ef6f5d0a350b3e2237f7155614b92eeb' + '18ce956c1889babc6515828b8200e864' '9ab69e1cd26826196fac5b3f01e6cb95' + 'e889e10100a1f3e07212c01603712594' '849f641c915f17db85a49b355bf63a17') prepare() { cd "${srcdir}/${_realname}-${_pkgver}" - patch -p1 -i ${srcdir}/osg-collada-dae-fixes.patch patch -p1 -i ${srcdir}/find-collada.patch patch -p1 -i ${srcdir}/find-freetype.patch - patch -p1 -i ${srcdir}/giflib.patch + patch -p1 -i ${srcdir}/additional-gl-header.patch } build() { @@ -58,25 +61,25 @@ build() { [[ -d $builddir ]] && rm -rf $builddir mkdir -p $builddir pushd $builddir - [[ "${builddir%-${MINGW_CHOST}}" == "Release" ]] && { - local _opts="-DBUILD_OSG_EXAMPLES:BOOL=ON" - local _postfix= - } || { - local _opts="-DBUILD_OSG_EXAMPLES:BOOL=OFF -DBUILD_OSG_APPLICATIONS=OFF" - local _postfix="-debug" - } + [[ "${builddir%-${MINGW_CHOST}}" == "Release" ]] && { + local _opts="-DBUILD_OSG_EXAMPLES:BOOL=ON" + local _postfix= + } || { + local _opts="-DBUILD_OSG_EXAMPLES:BOOL=OFF -DBUILD_OSG_APPLICATIONS=OFF" + local _postfix="-debug" + } - msg "Building ${builddir%-${MINGW_CHOST}} version..." + msg "Building ${builddir%-${MINGW_CHOST}} version..." - ${MINGW_PREFIX}/bin/cmake.exe \ - -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${_postfix}${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE=${builddir%-${MINGW_CHOST}} \ - -DACTUAL_3DPARTY_DIR=${MINGW_PREFIX} \ - ${_opts} \ - ../${_realname}-${_pkgver} + COLLADA_DIR=${MINGW_PREFIX} \ + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${_postfix}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=${builddir%-${MINGW_CHOST}} \ + ${_opts} \ + ../${_realname}-${_pkgver} - make + make popd done } diff --git a/mingw-w64-openscenegraph/additional-gl-header.patch b/mingw-w64-openscenegraph/additional-gl-header.patch new file mode 100644 index 0000000000..333cf52dd3 --- /dev/null +++ b/mingw-w64-openscenegraph/additional-gl-header.patch @@ -0,0 +1,11 @@ +--- OpenSceneGraph/CMakeLists.txt.orig 2015-01-25 14:09:28.105400000 +0300 ++++ OpenSceneGraph/CMakeLists.txt 2015-01-25 14:09:37.496600000 +0300 +@@ -508,7 +508,7 @@ + SET(OPENGL_HEADER2 "" CACHE STRING "#include<> line for additional OpenGL Headers if required") + ELSE() + SET(OPENGL_HEADER1 "#include " CACHE STRING "#include<> line for OpenGL Header") +- SET(OPENGL_HEADER2 "" CACHE STRING "#include<> line for additional OpenGL Headers if required") ++ SET(OPENGL_HEADER2 "#include " CACHE STRING "#include<> line for additional OpenGL Headers if required") + ENDIF() + ENDIF() + diff --git a/mingw-w64-openscenegraph/find-collada.patch b/mingw-w64-openscenegraph/find-collada.patch index a31c92ba78..debfd702c5 100644 --- a/mingw-w64-openscenegraph/find-collada.patch +++ b/mingw-w64-openscenegraph/find-collada.patch @@ -1,20 +1,19 @@ --- OpenSceneGraph-3.2.1-rc1/CMakeModules/FindCOLLADA.cmake.orig 2013-12-25 00:28:48.219200000 +0400 +++ OpenSceneGraph-3.2.1-rc1/CMakeModules/FindCOLLADA.cmake 2013-12-25 01:05:55.671600000 +0400 -@@ -19,7 +19,7 @@ +@@ -17,7 +17,7 @@ + # Check if COLLADA_DIR is set, otherwise use ACTUAL_3DPARTY_DIR: + SET( COLLADA_ENV_VAR_AVAILABLE $ENV{COLLADA_DIR} ) IF ( COLLADA_ENV_VAR_AVAILABLE ) - SET(COLLADA_DOM_ROOT "$ENV{COLLADA_DIR}/dom" CACHE PATH "Location of Collada DOM directory" FORCE) - ELSE ( COLLADA_ENV_VAR_AVAILABLE ) -- SET(COLLADA_DOM_ROOT "${ACTUAL_3DPARTY_DIR}/include/1.4/dom" CACHE PATH "Location of Collada DOM directory" FORCE) -+ SET(COLLADA_DOM_ROOT "${ACTUAL_3DPARTY_DIR}/include/collada-dom2.4/1.4/dom" CACHE PATH "Location of Collada DOM directory" FORCE) - ENDIF( COLLADA_ENV_VAR_AVAILABLE ) - - -@@ -66,7 +66,7 @@ - ) - - FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY -- NAMES collada_dom collada14dom Collada14Dom libcollada14dom21 libcollada14dom22 -+ NAMES collada_dom collada14dom Collada14Dom libcollada14dom21 libcollada14dom22 libcolladadom141 libcollada-dom141 - PATHS - ${COLLADA_DOM_ROOT}/build/${COLLADA_BUILDNAME}-1.4 - $ENV{COLLADA_DIR}/build/${COLLADA_BUILDNAME}-1.4 +- SET(COLLADA_DOM_ROOT "$ENV{COLLADA_DIR}/dom" CACHE PATH "Location of Collada DOM directory" FORCE) ++ SET(COLLADA_DOM_ROOT "$ENV{COLLADA_DIR}/include/collada-dom2.4/1.4/dom" CACHE PATH "Location of Collada DOM directory" FORCE) + ELSE () + SET(COLLADA_DOM_ROOT "${ACTUAL_3DPARTY_DIR}/include/1.4/dom" CACHE PATH "Location of Collada DOM directory" FORCE) + ENDIF() +@@ -46,6 +46,7 @@ + FIND_PATH(COLLADA_INCLUDE_DIR dae.h + ${COLLADA_DOM_ROOT}/include + $ENV{COLLADA_DIR}/include ++ $ENV{COLLADA_DIR}/include/collada-dom2.4 + $ENV{COLLADA_DIR} + ~/Library/Frameworks + /Library/Frameworks diff --git a/mingw-w64-openscenegraph/giflib.patch b/mingw-w64-openscenegraph/giflib.patch deleted file mode 100644 index 0091cf5d60..0000000000 --- a/mingw-w64-openscenegraph/giflib.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- OpenSceneGraph-3.2.1-rc3/src/osgPlugins/gif/ReaderWriterGIF.cpp.orig 2013-06-03 18:04:02.000000000 +0400 -+++ OpenSceneGraph-3.2.1-rc3/src/osgPlugins/gif/ReaderWriterGIF.cpp 2014-05-30 07:29:09.498200000 +0400 -@@ -561,7 +561,7 @@ - *width_ret = giffile->SWidth; - *height_ret = giffile->SHeight; - *numComponents_ret = 4; -- DGifCloseFile(giffile); -+ DGifCloseFile(giffile, NULL); - return buffer; - } - diff --git a/mingw-w64-openscenegraph/osg-collada-dae-fixes.patch b/mingw-w64-openscenegraph/osg-collada-dae-fixes.patch deleted file mode 100644 index 63c18ad970..0000000000 --- a/mingw-w64-openscenegraph/osg-collada-dae-fixes.patch +++ /dev/null @@ -1,205 +0,0 @@ -diff -urN a/src/osgPlugins/dae/CMakeLists.txt b/src/osgPlugins/dae/CMakeLists.txt ---- a/src/osgPlugins/dae/CMakeLists.txt 2010-02-26 14:41:50.000000000 +0000 -+++ b/src/osgPlugins/dae/CMakeLists.txt 2013-09-10 01:57:49.547196400 +0100 -@@ -35,6 +35,8 @@ - ENDIF() - - ADD_DEFINITIONS(-DNO_BOOST) -+ADD_DEFINITIONS(-DCOLLADA_DOM_USING_141) -+ADD_DEFINITIONS(-DCOLLADA_DOM_SUPPORT141) - - IF(COLLADA_USE_STATIC) - IF(WIN32) -diff -urN a/src/osgPlugins/dae/daeReader.cpp b/src/osgPlugins/dae/daeReader.cpp ---- a/src/osgPlugins/dae/daeReader.cpp 2013-01-07 15:03:22.000000000 +0000 -+++ b/src/osgPlugins/dae/daeReader.cpp 2013-09-10 01:28:39.529472400 +0100 -@@ -12,8 +12,7 @@ - */ - - #include "daeReader.h" --#include --#include -+#include - #include - #include - #include -diff -urN a/src/osgPlugins/dae/daeReader.h b/src/osgPlugins/dae/daeReader.h ---- a/src/osgPlugins/dae/daeReader.h 2012-10-08 13:54:40.000000000 +0100 -+++ b/src/osgPlugins/dae/daeReader.h 2013-09-10 01:25:45.195834800 +0100 -@@ -35,26 +35,6 @@ - #include - #include - --class domBind_material; --class domCamera; --//class domCommon_color_or_texture_type; --class domCommon_float_or_param_type; --class domGeometry; --class domInstance_controller; --class domInstance_geometry; --class domInstanceWithExtra; --class domLight; --class domLookat; --class domMatrix; --class domNode; --class domP; --class domProfile_COMMON; --class domScale; --class domSkew; --class domTranslate; --class domRotate; --class domVisual_scene; -- - namespace osgDAE - { - -diff -urN a/src/osgPlugins/dae/daeRMaterials.cpp b/src/osgPlugins/dae/daeRMaterials.cpp ---- a/src/osgPlugins/dae/daeRMaterials.cpp 2013-06-21 12:59:04.000000000 +0100 -+++ b/src/osgPlugins/dae/daeRMaterials.cpp 2013-09-10 01:46:09.370785300 +0100 -@@ -12,11 +12,11 @@ - */ - - #include "daeReader.h" --#include "ReaderWriterDAE.h" -+#include "ReaderWriterDAE.h" - - #include - #include --#include -+#include - #include - #include - #include -diff -urN a/src/osgPlugins/dae/daeRSceneObjects.cpp b/src/osgPlugins/dae/daeRSceneObjects.cpp ---- a/src/osgPlugins/dae/daeRSceneObjects.cpp 2012-03-21 17:36:20.000000000 +0000 -+++ b/src/osgPlugins/dae/daeRSceneObjects.cpp 2013-09-10 01:46:38.028424300 +0100 -@@ -13,7 +13,7 @@ - - #include "daeReader.h" - #include --#include -+#include - #include - - #include -diff -urN a/src/osgPlugins/dae/daeRTransforms.cpp b/src/osgPlugins/dae/daeRTransforms.cpp ---- a/src/osgPlugins/dae/daeRTransforms.cpp 2012-02-09 14:11:36.000000000 +0000 -+++ b/src/osgPlugins/dae/daeRTransforms.cpp 2013-09-10 01:47:00.755310300 +0100 -@@ -13,7 +13,7 @@ - - #include "daeReader.h" - #include --#include -+#include - #include - - #include -diff -urN a/src/osgPlugins/dae/daeWAnimations.cpp b/src/osgPlugins/dae/daeWAnimations.cpp ---- a/src/osgPlugins/dae/daeWAnimations.cpp 2011-05-16 12:07:20.000000000 +0100 -+++ b/src/osgPlugins/dae/daeWAnimations.cpp 2013-09-10 01:47:19.941746700 +0100 -@@ -19,7 +19,7 @@ - #include - #include - #include --#include -+#include - //#include - //#include - -diff -urN a/src/osgPlugins/dae/daeWMaterials.cpp b/src/osgPlugins/dae/daeWMaterials.cpp ---- a/src/osgPlugins/dae/daeWMaterials.cpp 2012-03-21 17:36:20.000000000 +0000 -+++ b/src/osgPlugins/dae/daeWMaterials.cpp 2013-09-10 01:48:30.573715800 +0100 -@@ -14,7 +14,7 @@ - #include "daeWriter.h" - #include "ReaderWriterDAE.h" - --#include -+#include - #include - #include - #include -diff -urN a/src/osgPlugins/dae/daeWriter.h b/src/osgPlugins/dae/daeWriter.h ---- a/src/osgPlugins/dae/daeWriter.h 2011-05-16 12:07:20.000000000 +0100 -+++ b/src/osgPlugins/dae/daeWriter.h 2013-09-10 01:47:58.002079700 +0100 -@@ -51,23 +51,6 @@ - #include - - --class domCOLLADA; --class domGeometry; --class domInstance_geometry; --class domLibrary_cameras; --class domLibrary_effects; --class domLibrary_geometries; --class domLibrary_lights; --class domLibrary_materials; --class domLibrary_visual_scenes; --class domLibrary_animations; --class domMaterial; --class domMesh; --class domNode; --class domSource; --class domVisual_scene; --class domP; -- - namespace osgDAE { - - /// Convert value to string using it's stream operator -diff -urN a/src/osgPlugins/dae/daeWSceneObjects.cpp b/src/osgPlugins/dae/daeWSceneObjects.cpp ---- a/src/osgPlugins/dae/daeWSceneObjects.cpp 2012-03-21 17:36:20.000000000 +0000 -+++ b/src/osgPlugins/dae/daeWSceneObjects.cpp 2013-09-10 01:48:54.747785500 +0100 -@@ -19,7 +19,7 @@ - #include - #include - #include --#include -+#include - //#include - //#include - -diff -urN a/src/osgPlugins/dae/daeWTransforms.cpp b/src/osgPlugins/dae/daeWTransforms.cpp ---- a/src/osgPlugins/dae/daeWTransforms.cpp 2011-05-16 12:07:20.000000000 +0100 -+++ b/src/osgPlugins/dae/daeWTransforms.cpp 2013-09-10 01:49:16.801085900 +0100 -@@ -17,7 +17,7 @@ - - #include - #include --#include -+#include - - #include - #include -diff -urN a/src/osgPlugins/dae/domSourceReader.cpp b/src/osgPlugins/dae/domSourceReader.cpp ---- a/src/osgPlugins/dae/domSourceReader.cpp 2012-03-21 17:36:20.000000000 +0000 -+++ b/src/osgPlugins/dae/domSourceReader.cpp 2013-09-10 01:50:57.512874700 +0100 -@@ -15,7 +15,7 @@ - - #include - --using namespace osgDAE; -+namespace osgDAE { - - domSourceReader::domSourceReader() : m_array_type( None ), m_count( 0 ), srcInit( NULL )//, initialized( false ) - {} -@@ -160,3 +160,4 @@ - OSG_WARN << "No float array found" << std::endl; - } - } -+} -diff -urN a/src/osgPlugins/dae/domSourceReader.h b/src/osgPlugins/dae/domSourceReader.h ---- a/src/osgPlugins/dae/domSourceReader.h 2012-03-21 17:36:20.000000000 +0000 -+++ b/src/osgPlugins/dae/domSourceReader.h 2013-09-10 01:53:55.857021500 +0100 -@@ -14,11 +14,11 @@ - #ifndef _DOM_SRC_CONV_H_ - #define _DOM_SRC_CONV_H_ - -+#include -+ - #include - #include - --class domSource; -- - namespace osgDAE { - - /** From 8660ee451c32123b029019254ea577d9d952d2a1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 9 Apr 2015 14:27:47 +0300 Subject: [PATCH 0833/2060] nettle: Update to 3.1 --- mingw-w64-nettle/PKGBUILD | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/mingw-w64-nettle/PKGBUILD b/mingw-w64-nettle/PKGBUILD index 1122acf780..53d8ec7b54 100644 --- a/mingw-w64-nettle/PKGBUILD +++ b/mingw-w64-nettle/PKGBUILD @@ -1,34 +1,33 @@ # Maintainer: Alexey Pavlov _realname=nettle - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.7.1 -pkgrel=3 +pkgver=3.1 +pkgrel=1 pkgdesc="A low-level cryptographic library (mingw-w64)" arch=('any') url="http://www.lysator.liu.se/~nisse/nettle" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-gmp") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gmp") options=('staticlibs' 'strip') source=("http://www.lysator.liu.se/~nisse/archive/nettle-$pkgver.tar.gz") -md5sums=('003d5147911317931dd453520eb234a5') +md5sums=('075a3699cbab48ffa2ea6f9aad91e123') build() { - mkdir -p "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - "${srcdir}"/${_realname}-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ - --enable-shared \ - --enable-public-key - make -j1 + mkdir -p "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" + cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" + "${srcdir}"/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-public-key + make -j1 } package() { - cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - make -j1 DESTDIR="$pkgdir" install + cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" + make -j1 DESTDIR="$pkgdir" install } From c026deac6c0f9f7d4eac3f872583b9aa08f4aa65 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 9 Apr 2015 14:55:14 +0300 Subject: [PATCH 0834/2060] p11-kit: Update to 0.23.1 --- mingw-w64-p11-kit/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-p11-kit/PKGBUILD b/mingw-w64-p11-kit/PKGBUILD index 90f34dbcc2..d4dfaef810 100644 --- a/mingw-w64-p11-kit/PKGBUILD +++ b/mingw-w64-p11-kit/PKGBUILD @@ -4,7 +4,7 @@ _realname=p11-kit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.22.1 +pkgver=0.23.1 pkgrel=1 pkgdesc="Library to work with PKCS#11 modules" arch=('any') @@ -28,7 +28,7 @@ source=($url/releases/$_realname-$pkgver.tar.gz{,.sig} 0008-add-debugging-to-mmap.patch 0009-add-debugging-to-path.patch 0010-fix-transport-test.patch) -md5sums=('4e9bea1106628ffb820bdad24a819fac' +md5sums=('96f073270c489c9a594e1c9413f42db8' 'SKIP' '70330b415eb5167e5a530c13bb96c212' 'b7a706e19b5e29d96889ca2410a151df' From d8e1f072b540593c3f22381918f680e5edc10831 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 9 Apr 2015 15:34:23 +0300 Subject: [PATCH 0835/2060] libarchive: Rebuild with nettle-3.1 --- mingw-w64-libarchive/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libarchive/PKGBUILD b/mingw-w64-libarchive/PKGBUILD index 967a8fe9d6..8af1441611 100644 --- a/mingw-w64-libarchive/PKGBUILD +++ b/mingw-w64-libarchive/PKGBUILD @@ -3,10 +3,10 @@ _realname=libarchive pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.1.2 -pkgrel=4 +pkgrel=5 pkgdesc="library that can create and read several streaming archive formats (mingw-w64)" arch=('any') -url="http://libarchive.googlecode.com" +url="http://www.libarchive.org" license=("BSD") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs From 79b75965b7ddd62c2e54efe04e439e9e36febba2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 9 Apr 2015 15:47:34 +0300 Subject: [PATCH 0836/2060] mingw-w64 runtime update to git SHA [c881cc7] --- ...sing-dxgi-1.2-structs-and-interfaces.patch | 771 +---------- ...ing-d3d11-1.1-structs-and-interfaces.patch | 1133 +---------------- mingw-w64-crt-git/PKGBUILD | 6 +- mingw-w64-headers-git/PKGBUILD | 2 +- 4 files changed, 22 insertions(+), 1890 deletions(-) diff --git a/mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch b/mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch index 1775ffa96a..47e653dec8 100644 --- a/mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch +++ b/mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch @@ -29,20 +29,10 @@ index f621d30..406135b 100644 #ifndef __IDXGIDevice2_FWD_DEFINED__ #define __IDXGIDevice2_FWD_DEFINED__ typedef interface IDXGIDevice2 IDXGIDevice2; -@@ -27,6 +37,21 @@ typedef interface IDXGIDevice2 IDXGIDevice2; - typedef interface IDXGISwapChain1 IDXGISwapChain1; +@@ -36,6 +46,11 @@ typedef interface IDXGIDevice2 IDXGIDevice2; + typedef interface IDXGIAdapter2 IDXGIAdapter2; #endif -+#ifndef __IDXGIFactory2_FWD_DEFINED__ -+#define __IDXGIFactory2_FWD_DEFINED__ -+typedef interface IDXGIFactory2 IDXGIFactory2; -+#endif -+ -+#ifndef __IDXGIAdapter2_FWD_DEFINED__ -+#define __IDXGIAdapter2_FWD_DEFINED__ -+typedef interface IDXGIAdapter2 IDXGIAdapter2; -+#endif -+ +#ifndef __IDXGIOutput1_FWD_DEFINED__ +#define __IDXGIOutput1_FWD_DEFINED__ +typedef interface IDXGIOutput1 IDXGIOutput1; @@ -475,640 +465,10 @@ index f621d30..406135b 100644 typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2, -@@ -745,6 +1187,948 @@ void __RPC_STUB IDXGISwapChain1_GetRotation_Stub( +@@ -1385,6 +1385,318 @@ void __RPC_STUB IDXGISwapChain1_GetRotation_Stub( - #endif /* __IDXGISwapChain1_INTERFACE_DEFINED__ */ + #endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */ -+/***************************************************************************** -+ * IDXGIFactory2 interface -+ */ -+#ifndef __IDXGIFactory2_INTERFACE_DEFINED__ -+#define __IDXGIFactory2_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("50c83a1c-e072-4c48-87b0-3630fa36a6d0") -+IDXGIFactory2 : public IDXGIFactory1 -+{ -+ virtual WINBOOL STDMETHODCALLTYPE IsWindowedStereoEnabled( -+ ) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForHwnd( -+ IUnknown *device, -+ HWND hwnd, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForCoreWindow( -+ IUnknown *device, -+ IUnknown *window, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE GetSharedResourceAdapterLuid( -+ HANDLE resource, -+ LUID *luid) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusWindow( -+ HWND window, -+ UINT msg, -+ DWORD *cookie) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusEvent( -+ HANDLE event, -+ DWORD *cookie) = 0; -+ -+ virtual void STDMETHODCALLTYPE UnregisterStereoStatus( -+ DWORD cookie) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusWindow( -+ HWND window, -+ UINT msg, -+ DWORD *cookie) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusEvent( -+ HANDLE event, -+ DWORD *cookie) = 0; -+ -+ virtual void STDMETHODCALLTYPE UnregisterOcclusionStatus( -+ DWORD cookie) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForComposition( -+ IUnknown *device, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0) -+#endif -+#else -+typedef struct IDXGIFactory2Vtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ IDXGIFactory2* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ IDXGIFactory2* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ IDXGIFactory2* This); -+ -+ /*** IDXGIObject methods ***/ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ IDXGIFactory2* This, -+ REFGUID guid, -+ UINT data_size, -+ const void *data); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ IDXGIFactory2* This, -+ REFGUID guid, -+ const IUnknown *object); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ IDXGIFactory2* This, -+ REFGUID guid, -+ UINT *data_size, -+ void *data); -+ -+ HRESULT (STDMETHODCALLTYPE *GetParent)( -+ IDXGIFactory2* This, -+ REFIID riid, -+ void **parent); -+ -+ /*** IDXGIFactory methods ***/ -+ HRESULT (STDMETHODCALLTYPE *EnumAdapters)( -+ IDXGIFactory2* This, -+ UINT adapter_idx, -+ IDXGIAdapter **adapter); -+ -+ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)( -+ IDXGIFactory2* This, -+ HWND window, -+ UINT flags); -+ -+ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)( -+ IDXGIFactory2* This, -+ HWND *window); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ DXGI_SWAP_CHAIN_DESC *desc, -+ IDXGISwapChain **swapchain); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)( -+ IDXGIFactory2* This, -+ HMODULE swrast, -+ IDXGIAdapter **adapter); -+ -+ /*** IDXGIFactory1 methods ***/ -+ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)( -+ IDXGIFactory2* This, -+ UINT Adapter, -+ IDXGIAdapter1 **ppAdapter); -+ -+ WINBOOL (STDMETHODCALLTYPE *IsCurrent)( -+ IDXGIFactory2* This); -+ -+ /*** IDXGIFactory2 methods ***/ -+ WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)( -+ IDXGIFactory2* This); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ HWND hwnd, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ IUnknown *window, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+ -+ HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)( -+ IDXGIFactory2* This, -+ HANDLE resource, -+ LUID *luid); -+ -+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)( -+ IDXGIFactory2* This, -+ HWND window, -+ UINT msg, -+ DWORD *cookie); -+ -+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)( -+ IDXGIFactory2* This, -+ HANDLE event, -+ DWORD *cookie); -+ -+ void (STDMETHODCALLTYPE *UnregisterStereoStatus)( -+ IDXGIFactory2* This, -+ DWORD cookie); -+ -+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)( -+ IDXGIFactory2* This, -+ HWND window, -+ UINT msg, -+ DWORD *cookie); -+ -+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)( -+ IDXGIFactory2* This, -+ HANDLE event, -+ DWORD *cookie); -+ -+ void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)( -+ IDXGIFactory2* This, -+ DWORD cookie); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+ -+ END_INTERFACE -+} IDXGIFactory2Vtbl; -+interface IDXGIFactory2 { -+ CONST_VTBL IDXGIFactory2Vtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define IDXGIFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define IDXGIFactory2_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define IDXGIFactory2_Release(This) (This)->lpVtbl->Release(This) -+/*** IDXGIObject methods ***/ -+#define IDXGIFactory2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) -+#define IDXGIFactory2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) -+#define IDXGIFactory2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) -+#define IDXGIFactory2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) -+/*** IDXGIFactory methods ***/ -+#define IDXGIFactory2_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter) -+#define IDXGIFactory2_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags) -+#define IDXGIFactory2_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window) -+#define IDXGIFactory2_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain) -+#define IDXGIFactory2_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter) -+/*** IDXGIFactory1 methods ***/ -+#define IDXGIFactory2_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter) -+#define IDXGIFactory2_IsCurrent(This) (This)->lpVtbl->IsCurrent(This) -+/*** IDXGIFactory2 methods ***/ -+#define IDXGIFactory2_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This) -+#define IDXGIFactory2_CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain) -+#define IDXGIFactory2_CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain) -+#define IDXGIFactory2_GetSharedResourceAdapterLuid(This,resource,luid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,resource,luid) -+#define IDXGIFactory2_RegisterStereoStatusWindow(This,window,msg,cookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,window,msg,cookie) -+#define IDXGIFactory2_RegisterStereoStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,event,cookie) -+#define IDXGIFactory2_UnregisterStereoStatus(This,cookie) (This)->lpVtbl->UnregisterStereoStatus(This,cookie) -+#define IDXGIFactory2_RegisterOcclusionStatusWindow(This,window,msg,cookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,window,msg,cookie) -+#define IDXGIFactory2_RegisterOcclusionStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,event,cookie) -+#define IDXGIFactory2_UnregisterOcclusionStatus(This,cookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,cookie) -+#define IDXGIFactory2_CreateSwapChainForComposition(This,device,desc,output,swapchain) (This)->lpVtbl->CreateSwapChainForComposition(This,device,desc,output,swapchain) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT IDXGIFactory2_QueryInterface(IDXGIFactory2* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG IDXGIFactory2_AddRef(IDXGIFactory2* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG IDXGIFactory2_Release(IDXGIFactory2* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** IDXGIObject methods ***/ -+static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT data_size,const void *data) { -+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateDataInterface(IDXGIFactory2* This,REFGUID guid,const IUnknown *object) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_GetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT *data_size,void *data) { -+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_GetParent(IDXGIFactory2* This,REFIID riid,void **parent) { -+ return This->lpVtbl->GetParent(This,riid,parent); -+} -+/*** IDXGIFactory methods ***/ -+static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters(IDXGIFactory2* This,UINT adapter_idx,IDXGIAdapter **adapter) { -+ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_MakeWindowAssociation(IDXGIFactory2* This,HWND window,UINT flags) { -+ return This->lpVtbl->MakeWindowAssociation(This,window,flags); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_GetWindowAssociation(IDXGIFactory2* This,HWND *window) { -+ return This->lpVtbl->GetWindowAssociation(This,window); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChain(IDXGIFactory2* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) { -+ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_CreateSoftwareAdapter(IDXGIFactory2* This,HMODULE swrast,IDXGIAdapter **adapter) { -+ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter); -+} -+/*** IDXGIFactory1 methods ***/ -+static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters1(IDXGIFactory2* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) { -+ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter); -+} -+static FORCEINLINE WINBOOL IDXGIFactory2_IsCurrent(IDXGIFactory2* This) { -+ return This->lpVtbl->IsCurrent(This); -+} -+/*** IDXGIFactory2 methods ***/ -+static FORCEINLINE WINBOOL IDXGIFactory2_IsWindowedStereoEnabled(IDXGIFactory2* This) { -+ return This->lpVtbl->IsWindowedStereoEnabled(This); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForHwnd(IDXGIFactory2* This,IUnknown *device,HWND hwnd,const DXGI_SWAP_CHAIN_DESC1 *desc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { -+ return This->lpVtbl->CreateSwapChainForHwnd(This,device,hwnd,desc,fullscreen_desc,output,swapchain); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForCoreWindow(IDXGIFactory2* This,IUnknown *device,IUnknown *window,const DXGI_SWAP_CHAIN_DESC1 *desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { -+ return This->lpVtbl->CreateSwapChainForCoreWindow(This,device,window,desc,output,swapchain); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_GetSharedResourceAdapterLuid(IDXGIFactory2* This,HANDLE resource,LUID *luid) { -+ return This->lpVtbl->GetSharedResourceAdapterLuid(This,resource,luid); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusWindow(IDXGIFactory2* This,HWND window,UINT msg,DWORD *cookie) { -+ return This->lpVtbl->RegisterStereoStatusWindow(This,window,msg,cookie); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusEvent(IDXGIFactory2* This,HANDLE event,DWORD *cookie) { -+ return This->lpVtbl->RegisterStereoStatusEvent(This,event,cookie); -+} -+static FORCEINLINE void IDXGIFactory2_UnregisterStereoStatus(IDXGIFactory2* This,DWORD cookie) { -+ This->lpVtbl->UnregisterStereoStatus(This,cookie); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusWindow(IDXGIFactory2* This,HWND window,UINT msg,DWORD *cookie) { -+ return This->lpVtbl->RegisterOcclusionStatusWindow(This,window,msg,cookie); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusEvent(IDXGIFactory2* This,HANDLE event,DWORD *cookie) { -+ return This->lpVtbl->RegisterOcclusionStatusEvent(This,event,cookie); -+} -+static FORCEINLINE void IDXGIFactory2_UnregisterOcclusionStatus(IDXGIFactory2* This,DWORD cookie) { -+ This->lpVtbl->UnregisterOcclusionStatus(This,cookie); -+} -+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForComposition(IDXGIFactory2* This,IUnknown *device,const DXGI_SWAP_CHAIN_DESC1 *desc,IDXGIOutput *output,IDXGISwapChain1 **swapchain) { -+ return This->lpVtbl->CreateSwapChainForComposition(This,device,desc,output,swapchain); -+} -+#endif -+#endif -+ -+#endif -+ -+WINBOOL STDMETHODCALLTYPE IDXGIFactory2_IsWindowedStereoEnabled_Proxy( -+ IDXGIFactory2* This); -+void __RPC_STUB IDXGIFactory2_IsWindowedStereoEnabled_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForHwnd_Proxy( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ HWND hwnd, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+void __RPC_STUB IDXGIFactory2_CreateSwapChainForHwnd_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForCoreWindow_Proxy( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ IUnknown *window, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+void __RPC_STUB IDXGIFactory2_CreateSwapChainForCoreWindow_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_GetSharedResourceAdapterLuid_Proxy( -+ IDXGIFactory2* This, -+ HANDLE resource, -+ LUID *luid); -+void __RPC_STUB IDXGIFactory2_GetSharedResourceAdapterLuid_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterStereoStatusWindow_Proxy( -+ IDXGIFactory2* This, -+ HWND window, -+ UINT msg, -+ DWORD *cookie); -+void __RPC_STUB IDXGIFactory2_RegisterStereoStatusWindow_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterStereoStatusEvent_Proxy( -+ IDXGIFactory2* This, -+ HANDLE event, -+ DWORD *cookie); -+void __RPC_STUB IDXGIFactory2_RegisterStereoStatusEvent_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+void STDMETHODCALLTYPE IDXGIFactory2_UnregisterStereoStatus_Proxy( -+ IDXGIFactory2* This, -+ DWORD cookie); -+void __RPC_STUB IDXGIFactory2_UnregisterStereoStatus_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterOcclusionStatusWindow_Proxy( -+ IDXGIFactory2* This, -+ HWND window, -+ UINT msg, -+ DWORD *cookie); -+void __RPC_STUB IDXGIFactory2_RegisterOcclusionStatusWindow_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterOcclusionStatusEvent_Proxy( -+ IDXGIFactory2* This, -+ HANDLE event, -+ DWORD *cookie); -+void __RPC_STUB IDXGIFactory2_RegisterOcclusionStatusEvent_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+void STDMETHODCALLTYPE IDXGIFactory2_UnregisterOcclusionStatus_Proxy( -+ IDXGIFactory2* This, -+ DWORD cookie); -+void __RPC_STUB IDXGIFactory2_UnregisterOcclusionStatus_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForComposition_Proxy( -+ IDXGIFactory2* This, -+ IUnknown *device, -+ const DXGI_SWAP_CHAIN_DESC1 *desc, -+ IDXGIOutput *output, -+ IDXGISwapChain1 **swapchain); -+void __RPC_STUB IDXGIFactory2_CreateSwapChainForComposition_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __IDXGIFactory2_INTERFACE_DEFINED__ */ -+ -+typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY { -+ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, -+ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1, -+ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2, -+ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3, -+ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4 -+} DXGI_GRAPHICS_PREEMPTION_GRANULARITY; -+typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY { -+ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, -+ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1, -+ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2, -+ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3, -+ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4 -+} DXGI_COMPUTE_PREEMPTION_GRANULARITY; -+typedef struct DXGI_ADAPTER_DESC2 { -+ WCHAR Description[128]; -+ UINT VendorId; -+ UINT DeviceId; -+ UINT SubSysId; -+ UINT Revision; -+ SIZE_T DedicatedVideoMemory; -+ SIZE_T DedicatedSystemMemory; -+ SIZE_T SharedSystemMemory; -+ LUID AdapterLuid; -+ UINT Flags; -+ DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; -+ DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; -+} DXGI_ADAPTER_DESC2; -+/***************************************************************************** -+ * IDXGIAdapter2 interface -+ */ -+#ifndef __IDXGIAdapter2_INTERFACE_DEFINED__ -+#define __IDXGIAdapter2_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("0aa1ae0a-fa0e-4b84-8644-e05ff8e5acb5") -+IDXGIAdapter2 : public IDXGIAdapter1 -+{ -+ virtual HRESULT STDMETHODCALLTYPE GetDesc2( -+ DXGI_ADAPTER_DESC2 *desc) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5) -+#endif -+#else -+typedef struct IDXGIAdapter2Vtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ IDXGIAdapter2* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ IDXGIAdapter2* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ IDXGIAdapter2* This); -+ -+ /*** IDXGIObject methods ***/ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ IDXGIAdapter2* This, -+ REFGUID guid, -+ UINT data_size, -+ const void *data); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ IDXGIAdapter2* This, -+ REFGUID guid, -+ const IUnknown *object); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ IDXGIAdapter2* This, -+ REFGUID guid, -+ UINT *data_size, -+ void *data); -+ -+ HRESULT (STDMETHODCALLTYPE *GetParent)( -+ IDXGIAdapter2* This, -+ REFIID riid, -+ void **parent); -+ -+ /*** IDXGIAdapter methods ***/ -+ HRESULT (STDMETHODCALLTYPE *EnumOutputs)( -+ IDXGIAdapter2* This, -+ UINT output_idx, -+ IDXGIOutput **output); -+ -+ HRESULT (STDMETHODCALLTYPE *GetDesc)( -+ IDXGIAdapter2* This, -+ DXGI_ADAPTER_DESC *desc); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)( -+ IDXGIAdapter2* This, -+ REFGUID guid, -+ LARGE_INTEGER *umd_version); -+ -+ /*** IDXGIAdapter1 methods ***/ -+ HRESULT (STDMETHODCALLTYPE *GetDesc1)( -+ IDXGIAdapter2* This, -+ DXGI_ADAPTER_DESC1 *pDesc); -+ -+ /*** IDXGIAdapter2 methods ***/ -+ HRESULT (STDMETHODCALLTYPE *GetDesc2)( -+ IDXGIAdapter2* This, -+ DXGI_ADAPTER_DESC2 *desc); -+ -+ END_INTERFACE -+} IDXGIAdapter2Vtbl; -+interface IDXGIAdapter2 { -+ CONST_VTBL IDXGIAdapter2Vtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define IDXGIAdapter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define IDXGIAdapter2_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define IDXGIAdapter2_Release(This) (This)->lpVtbl->Release(This) -+/*** IDXGIObject methods ***/ -+#define IDXGIAdapter2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) -+#define IDXGIAdapter2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) -+#define IDXGIAdapter2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) -+#define IDXGIAdapter2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) -+/*** IDXGIAdapter methods ***/ -+#define IDXGIAdapter2_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output) -+#define IDXGIAdapter2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) -+#define IDXGIAdapter2_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version) -+/*** IDXGIAdapter1 methods ***/ -+#define IDXGIAdapter2_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc) -+/*** IDXGIAdapter2 methods ***/ -+#define IDXGIAdapter2_GetDesc2(This,desc) (This)->lpVtbl->GetDesc2(This,desc) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT IDXGIAdapter2_QueryInterface(IDXGIAdapter2* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG IDXGIAdapter2_AddRef(IDXGIAdapter2* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG IDXGIAdapter2_Release(IDXGIAdapter2* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** IDXGIObject methods ***/ -+static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT data_size,const void *data) { -+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data); -+} -+static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateDataInterface(IDXGIAdapter2* This,REFGUID guid,const IUnknown *object) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object); -+} -+static FORCEINLINE HRESULT IDXGIAdapter2_GetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT *data_size,void *data) { -+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data); -+} -+static FORCEINLINE HRESULT IDXGIAdapter2_GetParent(IDXGIAdapter2* This,REFIID riid,void **parent) { -+ return This->lpVtbl->GetParent(This,riid,parent); -+} -+/*** IDXGIAdapter methods ***/ -+static FORCEINLINE HRESULT IDXGIAdapter2_EnumOutputs(IDXGIAdapter2* This,UINT output_idx,IDXGIOutput **output) { -+ return This->lpVtbl->EnumOutputs(This,output_idx,output); -+} -+static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc(IDXGIAdapter2* This,DXGI_ADAPTER_DESC *desc) { -+ return This->lpVtbl->GetDesc(This,desc); -+} -+static FORCEINLINE HRESULT IDXGIAdapter2_CheckInterfaceSupport(IDXGIAdapter2* This,REFGUID guid,LARGE_INTEGER *umd_version) { -+ return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version); -+} -+/*** IDXGIAdapter1 methods ***/ -+static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc1(IDXGIAdapter2* This,DXGI_ADAPTER_DESC1 *pDesc) { -+ return This->lpVtbl->GetDesc1(This,pDesc); -+} -+/*** IDXGIAdapter2 methods ***/ -+static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc2(IDXGIAdapter2* This,DXGI_ADAPTER_DESC2 *desc) { -+ return This->lpVtbl->GetDesc2(This,desc); -+} -+#endif -+#endif -+ -+#endif -+ -+HRESULT STDMETHODCALLTYPE IDXGIAdapter2_GetDesc2_Proxy( -+ IDXGIAdapter2* This, -+ DXGI_ADAPTER_DESC2 *desc); -+void __RPC_STUB IDXGIAdapter2_GetDesc2_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */ -+ +typedef struct DXGI_MODE_DESC1 { + UINT Width; + UINT Height; @@ -1550,128 +910,11 @@ index bba4ab8..eed13bb 100644 typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, DXGI_OFFER_RESOURCE_PRIORITY_NORMAL, -@@ -130,3 +239,162 @@ interface IDXGISwapChain1 : IDXGISwapChain - HRESULT GetRotation( - [out] DXGI_MODE_ROTATION *pRotation); +@@ -232,3 +239,45 @@ interface IDXGISwapChain1 : IDXGISwapChain + { + HRESULT GetDesc2([out] DXGI_ADAPTER_DESC2 *pDesc); } + -+[ -+ object, -+ uuid(50c83a1c-e072-4c48-87b0-3630fa36a6d0), -+ local, -+ pointer_default(unique) -+] -+interface IDXGIFactory2 : IDXGIFactory1 -+{ -+ BOOL IsWindowedStereoEnabled(); -+ -+ HRESULT CreateSwapChainForHwnd( -+ [in] IUnknown *device, -+ [in] HWND hwnd, -+ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, -+ [in] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *fullscreen_desc, -+ [in] IDXGIOutput *output, -+ [out] IDXGISwapChain1 **swapchain -+ ); -+ -+ HRESULT CreateSwapChainForCoreWindow( -+ [in] IUnknown *device, -+ [in] IUnknown *window, -+ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, -+ [in] IDXGIOutput *output, -+ [out] IDXGISwapChain1 **swapchain -+ ); -+ -+ HRESULT GetSharedResourceAdapterLuid( -+ [in] HANDLE resource, -+ [out] LUID *luid -+ ); -+ -+ HRESULT RegisterStereoStatusWindow( -+ [in] HWND window, -+ [in] UINT msg, -+ [out] DWORD *cookie -+ ); -+ -+ HRESULT RegisterStereoStatusEvent( -+ [in] HANDLE event, -+ [out] DWORD *cookie -+ ); -+ -+ void UnregisterStereoStatus( -+ [in] DWORD cookie -+ ); -+ -+ HRESULT RegisterOcclusionStatusWindow( -+ [in] HWND window, -+ [in] UINT msg, -+ [out] DWORD *cookie -+ ); -+ -+ HRESULT RegisterOcclusionStatusEvent( -+ [in] HANDLE event, -+ [out] DWORD *cookie -+ ); -+ -+ void UnregisterOcclusionStatus( -+ [in] DWORD cookie -+ ); -+ -+ HRESULT CreateSwapChainForComposition( -+ [in] IUnknown *device, -+ [in] const DXGI_SWAP_CHAIN_DESC1 *desc, -+ [in] IDXGIOutput *output, -+ [out] IDXGISwapChain1 **swapchain -+ ); -+ } -+ -+typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY -+{ -+ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, -+ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1, -+ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2, -+ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3, -+ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4, -+} DXGI_GRAPHICS_PREEMPTION_GRANULARITY; -+ -+typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY -+{ -+ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, -+ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1, -+ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2, -+ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3, -+ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4, -+} DXGI_COMPUTE_PREEMPTION_GRANULARITY; -+ -+typedef struct DXGI_ADAPTER_DESC2 -+{ -+ WCHAR Description[128]; -+ UINT VendorId; -+ UINT DeviceId; -+ UINT SubSysId; -+ UINT Revision; -+ SIZE_T DedicatedVideoMemory; -+ SIZE_T DedicatedSystemMemory; -+ SIZE_T SharedSystemMemory; -+ LUID AdapterLuid; -+ UINT Flags; -+ DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; -+ DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; -+} DXGI_ADAPTER_DESC2; -+ -+[ -+ object, -+ uuid(0aa1ae0a-fa0e-4B84-8644-e05ff8e5acb5), -+ local, -+ pointer_default(unique) -+] -+interface IDXGIAdapter2 : IDXGIAdapter1 -+{ -+ HRESULT GetDesc2( -+ [out] DXGI_ADAPTER_DESC2 *desc -+ ); -+} -+ +typedef struct DXGI_MODE_DESC1 +{ + UINT Width; diff --git a/mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch b/mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch index 1d97a44648..01897bbf65 100644 --- a/mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch +++ b/mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch @@ -12,1004 +12,25 @@ diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.h b/mingw-w64-headers/di index ad50171..17183ef 100644 --- a/mingw-w64-headers/direct-x/include/d3d11_1.h +++ b/mingw-w64-headers/direct-x/include/d3d11_1.h -@@ -27,6 +27,21 @@ typedef interface ID3DDeviceContextState ID3DDeviceContextState; - typedef interface ID3D11DeviceContext1 ID3D11DeviceContext1; +@@ -59,6 +59,11 @@ void __RPC_STUB ID3D11DeviceContext1_DiscardView1_Stub( + extern "C" { #endif -+#ifndef __ID3D11BlendState1_FWD_DEFINED__ -+#define __ID3D11BlendState1_FWD_DEFINED__ -+typedef interface ID3D11BlendState1 ID3D11BlendState1; -+#endif -+ -+#ifndef __ID3D11RasterizerState1_FWD_DEFINED__ -+#define __ID3D11RasterizerState1_FWD_DEFINED__ -+typedef interface ID3D11RasterizerState1 ID3D11RasterizerState1; -+#endif -+ -+#ifndef __ID3D11Device1_FWD_DEFINED__ -+#define __ID3D11Device1_FWD_DEFINED__ -+typedef interface ID3D11Device1 ID3D11Device1; -+#endif -+ - #ifndef __ID3DUserDefinedAnnotation_FWD_DEFINED__ - #define __ID3DUserDefinedAnnotation_FWD_DEFINED__ - typedef interface ID3DUserDefinedAnnotation ID3DUserDefinedAnnotation; -@@ -1872,6 +1887,961 @@ void __RPC_STUB ID3D11DeviceContext1_DiscardView1_Stub( - - #endif /* __ID3D11DeviceContext1_INTERFACE_DEFINED__ */ - +typedef enum D3D11_COPY_FLAGS { + D3D11_COPY_NO_OVERWRITE = 0x1, + D3D11_COPY_DISCARD = 0x2 +} D3D11_COPY_FLAGS; -+typedef enum D3D11_LOGIC_OP { -+ D3D11_LOGIC_OP_CLEAR = 0, -+ D3D11_LOGIC_OP_SET = 1, -+ D3D11_LOGIC_OP_COPY = 2, -+ D3D11_LOGIC_OP_COPY_INVERTED = 3, -+ D3D11_LOGIC_OP_NOOP = 4, -+ D3D11_LOGIC_OP_INVERT = 5, -+ D3D11_LOGIC_OP_AND = 6, -+ D3D11_LOGIC_OP_NAND = 7, -+ D3D11_LOGIC_OP_OR = 8, -+ D3D11_LOGIC_OP_NOR = 9, -+ D3D11_LOGIC_OP_XOR = 10, -+ D3D11_LOGIC_OP_EQUIV = 11, -+ D3D11_LOGIC_OP_AND_REVERSE = 12, -+ D3D11_LOGIC_OP_AND_INVERTED = 13, -+ D3D11_LOGIC_OP_OR_REVERSE = 14, -+ D3D11_LOGIC_OP_OR_INVERTED = 15 -+} D3D11_LOGIC_OP; -+typedef struct D3D11_RENDER_TARGET_BLEND_DESC1 { -+ WINBOOL BlendEnable; -+ WINBOOL LogicOpEnable; -+ D3D11_BLEND SrcBlend; -+ D3D11_BLEND DestBlend; -+ D3D11_BLEND_OP BlendOp; -+ D3D11_BLEND SrcBlendAlpha; -+ D3D11_BLEND DestBlendAlpha; -+ D3D11_BLEND_OP BlendOpAlpha; -+ D3D11_LOGIC_OP LogicOp; -+ UINT8 RenderTargetWriteMask; -+} D3D11_RENDER_TARGET_BLEND_DESC1; -+typedef struct D3D11_BLEND_DESC1 { -+ WINBOOL AlphaToCoverageEnable; -+ WINBOOL IndependentBlendEnable; -+ D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[8]; -+} D3D11_BLEND_DESC1; -+/***************************************************************************** -+ * ID3D11BlendState1 interface -+ */ -+#ifndef __ID3D11BlendState1_INTERFACE_DEFINED__ -+#define __ID3D11BlendState1_INTERFACE_DEFINED__ + -+DEFINE_GUID(IID_ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("cc86fabe-da55-401d-85e7-e3c9de2877e9") -+ID3D11BlendState1 : public ID3D11BlendState -+{ -+ virtual void STDMETHODCALLTYPE GetDesc1( -+ D3D11_BLEND_DESC1 *desc) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9) -+#endif -+#else -+typedef struct ID3D11BlendState1Vtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11BlendState1* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11BlendState1* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11BlendState1* This); -+ -+ /*** ID3D11DeviceChild methods ***/ -+ void (STDMETHODCALLTYPE *GetDevice)( -+ ID3D11BlendState1* This, -+ ID3D11Device **ppDevice); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11BlendState1* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11BlendState1* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11BlendState1* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ /*** ID3D11BlendState methods ***/ -+ void (STDMETHODCALLTYPE *GetDesc)( -+ ID3D11BlendState1* This, -+ D3D11_BLEND_DESC *pDesc); -+ -+ /*** ID3D11BlendState1 methods ***/ -+ void (STDMETHODCALLTYPE *GetDesc1)( -+ ID3D11BlendState1* This, -+ D3D11_BLEND_DESC1 *desc); -+ -+ END_INTERFACE -+} ID3D11BlendState1Vtbl; -+interface ID3D11BlendState1 { -+ CONST_VTBL ID3D11BlendState1Vtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11BlendState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11BlendState1_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11BlendState1_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11DeviceChild methods ***/ -+#define ID3D11BlendState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) -+#define ID3D11BlendState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11BlendState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11BlendState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+/*** ID3D11BlendState methods ***/ -+#define ID3D11BlendState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) -+/*** ID3D11BlendState1 methods ***/ -+#define ID3D11BlendState1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11BlendState1_QueryInterface(ID3D11BlendState1* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11BlendState1_AddRef(ID3D11BlendState1* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11BlendState1_Release(ID3D11BlendState1* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11DeviceChild methods ***/ -+static FORCEINLINE void ID3D11BlendState1_GetDevice(ID3D11BlendState1* This,ID3D11Device **ppDevice) { -+ This->lpVtbl->GetDevice(This,ppDevice); -+} -+static FORCEINLINE HRESULT ID3D11BlendState1_GetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateDataInterface(ID3D11BlendState1* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+/*** ID3D11BlendState methods ***/ -+static FORCEINLINE void ID3D11BlendState1_GetDesc(ID3D11BlendState1* This,D3D11_BLEND_DESC *pDesc) { -+ This->lpVtbl->GetDesc(This,pDesc); -+} -+/*** ID3D11BlendState1 methods ***/ -+static FORCEINLINE void ID3D11BlendState1_GetDesc1(ID3D11BlendState1* This,D3D11_BLEND_DESC1 *desc) { -+ This->lpVtbl->GetDesc1(This,desc); -+} -+#endif -+#endif -+ -+#endif -+ -+void STDMETHODCALLTYPE ID3D11BlendState1_GetDesc1_Proxy( -+ ID3D11BlendState1* This, -+ D3D11_BLEND_DESC1 *desc); -+void __RPC_STUB ID3D11BlendState1_GetDesc1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11BlendState1_INTERFACE_DEFINED__ */ -+ -+typedef struct D3D11_RASTERIZER_DESC1 { -+ D3D11_FILL_MODE FillMode; -+ D3D11_CULL_MODE CullMode; -+ WINBOOL FrontCounterClockwise; -+ INT DepthBias; -+ float DepthBiasClamp; -+ float SlopeScaledDepthBias; -+ WINBOOL DepthClipEnable; -+ WINBOOL ScissorEnable; -+ WINBOOL MultisampleEnable; -+ WINBOOL AntialiasedLineEnable; -+ UINT ForcedSampleCount; -+} D3D11_RASTERIZER_DESC1; -+/***************************************************************************** -+ * ID3D11RasterizerState1 interface -+ */ -+#ifndef __ID3D11RasterizerState1_INTERFACE_DEFINED__ -+#define __ID3D11RasterizerState1_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("1217d7a6-5039-418c-b042-9cbe256afd6e") -+ID3D11RasterizerState1 : public ID3D11RasterizerState -+{ -+ virtual void STDMETHODCALLTYPE GetDesc1( -+ D3D11_RASTERIZER_DESC1 *desc) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e) -+#endif -+#else -+typedef struct ID3D11RasterizerState1Vtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11RasterizerState1* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11RasterizerState1* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11RasterizerState1* This); -+ -+ /*** ID3D11DeviceChild methods ***/ -+ void (STDMETHODCALLTYPE *GetDevice)( -+ ID3D11RasterizerState1* This, -+ ID3D11Device **ppDevice); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11RasterizerState1* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11RasterizerState1* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11RasterizerState1* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ /*** ID3D11RasterizerState methods ***/ -+ void (STDMETHODCALLTYPE *GetDesc)( -+ ID3D11RasterizerState1* This, -+ D3D11_RASTERIZER_DESC *pDesc); -+ -+ /*** ID3D11RasterizerState1 methods ***/ -+ void (STDMETHODCALLTYPE *GetDesc1)( -+ ID3D11RasterizerState1* This, -+ D3D11_RASTERIZER_DESC1 *desc); -+ -+ END_INTERFACE -+} ID3D11RasterizerState1Vtbl; -+interface ID3D11RasterizerState1 { -+ CONST_VTBL ID3D11RasterizerState1Vtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11RasterizerState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11RasterizerState1_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11RasterizerState1_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11DeviceChild methods ***/ -+#define ID3D11RasterizerState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) -+#define ID3D11RasterizerState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11RasterizerState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11RasterizerState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+/*** ID3D11RasterizerState methods ***/ -+#define ID3D11RasterizerState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) -+/*** ID3D11RasterizerState1 methods ***/ -+#define ID3D11RasterizerState1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11RasterizerState1_QueryInterface(ID3D11RasterizerState1* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11RasterizerState1_AddRef(ID3D11RasterizerState1* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11RasterizerState1_Release(ID3D11RasterizerState1* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11DeviceChild methods ***/ -+static FORCEINLINE void ID3D11RasterizerState1_GetDevice(ID3D11RasterizerState1* This,ID3D11Device **ppDevice) { -+ This->lpVtbl->GetDevice(This,ppDevice); -+} -+static FORCEINLINE HRESULT ID3D11RasterizerState1_GetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateDataInterface(ID3D11RasterizerState1* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+/*** ID3D11RasterizerState methods ***/ -+static FORCEINLINE void ID3D11RasterizerState1_GetDesc(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC *pDesc) { -+ This->lpVtbl->GetDesc(This,pDesc); -+} -+/*** ID3D11RasterizerState1 methods ***/ -+static FORCEINLINE void ID3D11RasterizerState1_GetDesc1(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC1 *desc) { -+ This->lpVtbl->GetDesc1(This,desc); -+} -+#endif -+#endif -+ -+#endif -+ -+void STDMETHODCALLTYPE ID3D11RasterizerState1_GetDesc1_Proxy( -+ ID3D11RasterizerState1* This, -+ D3D11_RASTERIZER_DESC1 *desc); -+void __RPC_STUB ID3D11RasterizerState1_GetDesc1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11RasterizerState1_INTERFACE_DEFINED__ */ -+ -+/***************************************************************************** -+ * ID3D11Device1 interface -+ */ -+#ifndef __ID3D11Device1_INTERFACE_DEFINED__ -+#define __ID3D11Device1_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("a04bfb29-08ef-43d6-a49c-a9bdbdcbe686") -+ID3D11Device1 : public ID3D11Device -+{ -+ virtual void STDMETHODCALLTYPE GetImmediateContext1( -+ ID3D11DeviceContext1 **context) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext1( -+ UINT flags, -+ ID3D11DeviceContext1 **context) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateBlendState1( -+ const D3D11_BLEND_DESC1 *desc, -+ ID3D11BlendState1 **state) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState1( -+ const D3D11_RASTERIZER_DESC1 *desc, -+ ID3D11RasterizerState1 **state) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateDeviceContextState( -+ UINT flags, -+ const D3D_FEATURE_LEVEL *levels, -+ UINT levels_count, -+ UINT version, -+ REFIID emu_interface, -+ D3D_FEATURE_LEVEL *level, -+ ID3DDeviceContextState **state) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE OpenSharedResource1( -+ HANDLE resource, -+ REFIID emu_interface, -+ void **data) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE OpenSharedResourceByName( -+ const WCHAR *name, -+ DWORD access, -+ REFIID emu_interface, -+ void **data) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86) -+#endif -+#else -+typedef struct ID3D11Device1Vtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11Device1* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11Device1* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11Device1* This); -+ -+ /*** ID3D11Device methods ***/ -+ HRESULT (STDMETHODCALLTYPE *CreateBuffer)( -+ ID3D11Device1* This, -+ const D3D11_BUFFER_DESC *pDesc, -+ const D3D11_SUBRESOURCE_DATA *pInitialData, -+ ID3D11Buffer **ppBuffer); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)( -+ ID3D11Device1* This, -+ const D3D11_TEXTURE1D_DESC *pDesc, -+ const D3D11_SUBRESOURCE_DATA *pInitialData, -+ ID3D11Texture1D **ppTexture1D); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)( -+ ID3D11Device1* This, -+ const D3D11_TEXTURE2D_DESC *pDesc, -+ const D3D11_SUBRESOURCE_DATA *pInitialData, -+ ID3D11Texture2D **ppTexture2D); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)( -+ ID3D11Device1* This, -+ const D3D11_TEXTURE3D_DESC *pDesc, -+ const D3D11_SUBRESOURCE_DATA *pInitialData, -+ ID3D11Texture3D **ppTexture3D); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)( -+ ID3D11Device1* This, -+ ID3D11Resource *pResource, -+ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, -+ ID3D11ShaderResourceView **ppSRView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)( -+ ID3D11Device1* This, -+ ID3D11Resource *pResource, -+ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, -+ ID3D11UnorderedAccessView **ppUAView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)( -+ ID3D11Device1* This, -+ ID3D11Resource *pResource, -+ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, -+ ID3D11RenderTargetView **ppRTView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)( -+ ID3D11Device1* This, -+ ID3D11Resource *pResource, -+ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, -+ ID3D11DepthStencilView **ppDepthStencilView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)( -+ ID3D11Device1* This, -+ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs, -+ UINT NumElements, -+ const void *pShaderBytecodeWithInputSignature, -+ SIZE_T BytecodeLength, -+ ID3D11InputLayout **ppInputLayout); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11VertexShader **ppVertexShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11GeometryShader **ppGeometryShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration, -+ UINT NumEntries, -+ const UINT *pBufferStrides, -+ UINT NumStrides, -+ UINT RasterizedStream, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11GeometryShader **ppGeometryShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11PixelShader **ppPixelShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateHullShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11HullShader **ppHullShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDomainShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11DomainShader **ppDomainShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateComputeShader)( -+ ID3D11Device1* This, -+ const void *pShaderBytecode, -+ SIZE_T BytecodeLength, -+ ID3D11ClassLinkage *pClassLinkage, -+ ID3D11ComputeShader **ppComputeShader); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)( -+ ID3D11Device1* This, -+ ID3D11ClassLinkage **ppLinkage); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateBlendState)( -+ ID3D11Device1* This, -+ const D3D11_BLEND_DESC *pBlendStateDesc, -+ ID3D11BlendState **ppBlendState); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)( -+ ID3D11Device1* This, -+ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, -+ ID3D11DepthStencilState **ppDepthStencilState); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)( -+ ID3D11Device1* This, -+ const D3D11_RASTERIZER_DESC *pRasterizerDesc, -+ ID3D11RasterizerState **ppRasterizerState); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)( -+ ID3D11Device1* This, -+ const D3D11_SAMPLER_DESC *pSamplerDesc, -+ ID3D11SamplerState **ppSamplerState); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateQuery)( -+ ID3D11Device1* This, -+ const D3D11_QUERY_DESC *pQueryDesc, -+ ID3D11Query **ppQuery); -+ -+ HRESULT (STDMETHODCALLTYPE *CreatePredicate)( -+ ID3D11Device1* This, -+ const D3D11_QUERY_DESC *pPredicateDesc, -+ ID3D11Predicate **ppPredicate); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateCounter)( -+ ID3D11Device1* This, -+ const D3D11_COUNTER_DESC *pCounterDesc, -+ ID3D11Counter **ppCounter); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)( -+ ID3D11Device1* This, -+ UINT ContextFlags, -+ ID3D11DeviceContext **ppDeferredContext); -+ -+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)( -+ ID3D11Device1* This, -+ HANDLE hResource, -+ REFIID ReturnedInterface, -+ void **ppResource); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)( -+ ID3D11Device1* This, -+ DXGI_FORMAT Format, -+ UINT *pFormatSupport); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)( -+ ID3D11Device1* This, -+ DXGI_FORMAT Format, -+ UINT SampleCount, -+ UINT *pNumQualityLevels); -+ -+ void (STDMETHODCALLTYPE *CheckCounterInfo)( -+ ID3D11Device1* This, -+ D3D11_COUNTER_INFO *pCounterInfo); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckCounter)( -+ ID3D11Device1* This, -+ const D3D11_COUNTER_DESC *pDesc, -+ D3D11_COUNTER_TYPE *pType, -+ UINT *pActiveCounters, -+ LPSTR szName, -+ UINT *pNameLength, -+ LPSTR szUnits, -+ UINT *pUnitsLength, -+ LPSTR szDescription, -+ UINT *pDescriptionLength); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( -+ ID3D11Device1* This, -+ D3D11_FEATURE Feature, -+ void *pFeatureSupportData, -+ UINT FeatureSupportDataSize); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11Device1* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11Device1* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11Device1* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)( -+ ID3D11Device1* This); -+ -+ UINT (STDMETHODCALLTYPE *GetCreationFlags)( -+ ID3D11Device1* This); -+ -+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( -+ ID3D11Device1* This); -+ -+ void (STDMETHODCALLTYPE *GetImmediateContext)( -+ ID3D11Device1* This, -+ ID3D11DeviceContext **ppImmediateContext); -+ -+ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)( -+ ID3D11Device1* This, -+ UINT RaiseFlags); -+ -+ UINT (STDMETHODCALLTYPE *GetExceptionMode)( -+ ID3D11Device1* This); -+ -+ /*** ID3D11Device1 methods ***/ -+ void (STDMETHODCALLTYPE *GetImmediateContext1)( -+ ID3D11Device1* This, -+ ID3D11DeviceContext1 **context); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)( -+ ID3D11Device1* This, -+ UINT flags, -+ ID3D11DeviceContext1 **context); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateBlendState1)( -+ ID3D11Device1* This, -+ const D3D11_BLEND_DESC1 *desc, -+ ID3D11BlendState1 **state); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)( -+ ID3D11Device1* This, -+ const D3D11_RASTERIZER_DESC1 *desc, -+ ID3D11RasterizerState1 **state); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)( -+ ID3D11Device1* This, -+ UINT flags, -+ const D3D_FEATURE_LEVEL *levels, -+ UINT levels_count, -+ UINT version, -+ REFIID emu_interface, -+ D3D_FEATURE_LEVEL *level, -+ ID3DDeviceContextState **state); -+ -+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)( -+ ID3D11Device1* This, -+ HANDLE resource, -+ REFIID emu_interface, -+ void **data); -+ -+ HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)( -+ ID3D11Device1* This, -+ const WCHAR *name, -+ DWORD access, -+ REFIID emu_interface, -+ void **data); -+ -+ END_INTERFACE -+} ID3D11Device1Vtbl; -+interface ID3D11Device1 { -+ CONST_VTBL ID3D11Device1Vtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11Device1_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11Device1_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11Device methods ***/ -+#define ID3D11Device1_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer) -+#define ID3D11Device1_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) -+#define ID3D11Device1_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) -+#define ID3D11Device1_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) -+#define ID3D11Device1_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView) -+#define ID3D11Device1_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) -+#define ID3D11Device1_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView) -+#define ID3D11Device1_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) -+#define ID3D11Device1_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) -+#define ID3D11Device1_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) -+#define ID3D11Device1_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) -+#define ID3D11Device1_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) -+#define ID3D11Device1_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) -+#define ID3D11Device1_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) -+#define ID3D11Device1_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) -+#define ID3D11Device1_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) -+#define ID3D11Device1_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage) -+#define ID3D11Device1_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState) -+#define ID3D11Device1_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) -+#define ID3D11Device1_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) -+#define ID3D11Device1_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState) -+#define ID3D11Device1_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery) -+#define ID3D11Device1_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate) -+#define ID3D11Device1_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter) -+#define ID3D11Device1_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext) -+#define ID3D11Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource) -+#define ID3D11Device1_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport) -+#define ID3D11Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) -+#define ID3D11Device1_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo) -+#define ID3D11Device1_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) -+#define ID3D11Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) -+#define ID3D11Device1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11Device1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11Device1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+#define ID3D11Device1_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This) -+#define ID3D11Device1_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This) -+#define ID3D11Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) -+#define ID3D11Device1_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext) -+#define ID3D11Device1_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags) -+#define ID3D11Device1_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This) -+/*** ID3D11Device1 methods ***/ -+#define ID3D11Device1_GetImmediateContext1(This,context) (This)->lpVtbl->GetImmediateContext1(This,context) -+#define ID3D11Device1_CreateDeferredContext1(This,flags,context) (This)->lpVtbl->CreateDeferredContext1(This,flags,context) -+#define ID3D11Device1_CreateBlendState1(This,desc,state) (This)->lpVtbl->CreateBlendState1(This,desc,state) -+#define ID3D11Device1_CreateRasterizerState1(This,desc,state) (This)->lpVtbl->CreateRasterizerState1(This,desc,state) -+#define ID3D11Device1_CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state) (This)->lpVtbl->CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state) -+#define ID3D11Device1_OpenSharedResource1(This,resource,emu_interface,data) (This)->lpVtbl->OpenSharedResource1(This,resource,emu_interface,data) -+#define ID3D11Device1_OpenSharedResourceByName(This,name,access,emu_interface,data) (This)->lpVtbl->OpenSharedResourceByName(This,name,access,emu_interface,data) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11Device1_QueryInterface(ID3D11Device1* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11Device1_AddRef(ID3D11Device1* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11Device1_Release(ID3D11Device1* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11Device methods ***/ -+static FORCEINLINE HRESULT ID3D11Device1_CreateBuffer(ID3D11Device1* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) { -+ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture1D(ID3D11Device1* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) { -+ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture2D(ID3D11Device1* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) { -+ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture3D(ID3D11Device1* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) { -+ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateShaderResourceView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) { -+ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateUnorderedAccessView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) { -+ return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateRenderTargetView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) { -+ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) { -+ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateInputLayout(ID3D11Device1* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) { -+ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateVertexShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) { -+ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) { -+ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShaderWithStreamOutput(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) { -+ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreatePixelShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) { -+ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateHullShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) { -+ return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDomainShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) { -+ return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateComputeShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) { -+ return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateClassLinkage(ID3D11Device1* This,ID3D11ClassLinkage **ppLinkage) { -+ return This->lpVtbl->CreateClassLinkage(This,ppLinkage); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState(ID3D11Device1* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) { -+ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilState(ID3D11Device1* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) { -+ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState(ID3D11Device1* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) { -+ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateSamplerState(ID3D11Device1* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) { -+ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateQuery(ID3D11Device1* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) { -+ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreatePredicate(ID3D11Device1* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) { -+ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) { -+ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext(ID3D11Device1* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) { -+ return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext); -+} -+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource(ID3D11Device1* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) { -+ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CheckFormatSupport(ID3D11Device1* This,DXGI_FORMAT Format,UINT *pFormatSupport) { -+ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CheckMultisampleQualityLevels(ID3D11Device1* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) { -+ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels); -+} -+static FORCEINLINE void ID3D11Device1_CheckCounterInfo(ID3D11Device1* This,D3D11_COUNTER_INFO *pCounterInfo) { -+ This->lpVtbl->CheckCounterInfo(This,pCounterInfo); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CheckCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) { -+ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CheckFeatureSupport(ID3D11Device1* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) { -+ return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize); -+} -+static FORCEINLINE HRESULT ID3D11Device1_GetPrivateData(ID3D11Device1* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11Device1_SetPrivateData(ID3D11Device1* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11Device1_SetPrivateDataInterface(ID3D11Device1* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+static FORCEINLINE D3D_FEATURE_LEVEL ID3D11Device1_GetFeatureLevel(ID3D11Device1* This) { -+ return This->lpVtbl->GetFeatureLevel(This); -+} -+static FORCEINLINE UINT ID3D11Device1_GetCreationFlags(ID3D11Device1* This) { -+ return This->lpVtbl->GetCreationFlags(This); -+} -+static FORCEINLINE HRESULT ID3D11Device1_GetDeviceRemovedReason(ID3D11Device1* This) { -+ return This->lpVtbl->GetDeviceRemovedReason(This); -+} -+static FORCEINLINE void ID3D11Device1_GetImmediateContext(ID3D11Device1* This,ID3D11DeviceContext **ppImmediateContext) { -+ This->lpVtbl->GetImmediateContext(This,ppImmediateContext); -+} -+static FORCEINLINE HRESULT ID3D11Device1_SetExceptionMode(ID3D11Device1* This,UINT RaiseFlags) { -+ return This->lpVtbl->SetExceptionMode(This,RaiseFlags); -+} -+static FORCEINLINE UINT ID3D11Device1_GetExceptionMode(ID3D11Device1* This) { -+ return This->lpVtbl->GetExceptionMode(This); -+} -+/*** ID3D11Device1 methods ***/ -+static FORCEINLINE void ID3D11Device1_GetImmediateContext1(ID3D11Device1* This,ID3D11DeviceContext1 **context) { -+ This->lpVtbl->GetImmediateContext1(This,context); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext1(ID3D11Device1* This,UINT flags,ID3D11DeviceContext1 **context) { -+ return This->lpVtbl->CreateDeferredContext1(This,flags,context); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState1(ID3D11Device1* This,const D3D11_BLEND_DESC1 *desc,ID3D11BlendState1 **state) { -+ return This->lpVtbl->CreateBlendState1(This,desc,state); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState1(ID3D11Device1* This,const D3D11_RASTERIZER_DESC1 *desc,ID3D11RasterizerState1 **state) { -+ return This->lpVtbl->CreateRasterizerState1(This,desc,state); -+} -+static FORCEINLINE HRESULT ID3D11Device1_CreateDeviceContextState(ID3D11Device1* This,UINT flags,const D3D_FEATURE_LEVEL *levels,UINT levels_count,UINT version,REFIID emu_interface,D3D_FEATURE_LEVEL *level,ID3DDeviceContextState **state) { -+ return This->lpVtbl->CreateDeviceContextState(This,flags,levels,levels_count,version,emu_interface,level,state); -+} -+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource1(ID3D11Device1* This,HANDLE resource,REFIID emu_interface,void **data) { -+ return This->lpVtbl->OpenSharedResource1(This,resource,emu_interface,data); -+} -+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResourceByName(ID3D11Device1* This,const WCHAR *name,DWORD access,REFIID emu_interface,void **data) { -+ return This->lpVtbl->OpenSharedResourceByName(This,name,access,emu_interface,data); -+} -+#endif -+#endif -+ -+#endif -+ -+void STDMETHODCALLTYPE ID3D11Device1_GetImmediateContext1_Proxy( -+ ID3D11Device1* This, -+ ID3D11DeviceContext1 **context); -+void __RPC_STUB ID3D11Device1_GetImmediateContext1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateDeferredContext1_Proxy( -+ ID3D11Device1* This, -+ UINT flags, -+ ID3D11DeviceContext1 **context); -+void __RPC_STUB ID3D11Device1_CreateDeferredContext1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateBlendState1_Proxy( -+ ID3D11Device1* This, -+ const D3D11_BLEND_DESC1 *desc, -+ ID3D11BlendState1 **state); -+void __RPC_STUB ID3D11Device1_CreateBlendState1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateRasterizerState1_Proxy( -+ ID3D11Device1* This, -+ const D3D11_RASTERIZER_DESC1 *desc, -+ ID3D11RasterizerState1 **state); -+void __RPC_STUB ID3D11Device1_CreateRasterizerState1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateDeviceContextState_Proxy( -+ ID3D11Device1* This, -+ UINT flags, -+ const D3D_FEATURE_LEVEL *levels, -+ UINT levels_count, -+ UINT version, -+ REFIID emu_interface, -+ D3D_FEATURE_LEVEL *level, -+ ID3DDeviceContextState **state); -+void __RPC_STUB ID3D11Device1_CreateDeviceContextState_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_OpenSharedResource1_Proxy( -+ ID3D11Device1* This, -+ HANDLE resource, -+ REFIID emu_interface, -+ void **data); -+void __RPC_STUB ID3D11Device1_OpenSharedResource1_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11Device1_OpenSharedResourceByName_Proxy( -+ ID3D11Device1* This, -+ const WCHAR *name, -+ DWORD access, -+ REFIID emu_interface, -+ void **data); -+void __RPC_STUB ID3D11Device1_OpenSharedResourceByName_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11Device1_INTERFACE_DEFINED__ */ -+ - /***************************************************************************** - * ID3DUserDefinedAnnotation interface - */ + typedef enum D3D11_LOGIC_OP { + D3D11_LOGIC_OP_CLEAR = 0, + D3D11_LOGIC_OP_SET = 1, diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.idl b/mingw-w64-headers/direct-x/include/d3d11_1.idl index 928548f..bf11725 100644 --- a/mingw-w64-headers/direct-x/include/d3d11_1.idl +++ b/mingw-w64-headers/direct-x/include/d3d11_1.idl -@@ -1,5 +1,6 @@ - /* - * Copyright 2014 Jacek Caban for CodeWeavers -+ * Copyright 2015 Martell Malone - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -164,6 +165,144 @@ interface ID3D11DeviceContext1 : ID3D11DeviceContext - UINT NumRects); - } +@@ -22,6 +22,12 @@ interface ID3D11DeviceContext1 : ID3D11DeviceContext + import "d3dcommon.idl"; + import "d3d11.idl"; +typedef enum D3D11_COPY_FLAGS +{ @@ -1017,141 +38,9 @@ index 928548f..bf11725 100644 + D3D11_COPY_DISCARD = 0x2, +} D3D11_COPY_FLAGS; + -+typedef enum D3D11_LOGIC_OP -+{ -+ D3D11_LOGIC_OP_CLEAR = 0, -+ D3D11_LOGIC_OP_SET, -+ D3D11_LOGIC_OP_COPY, -+ D3D11_LOGIC_OP_COPY_INVERTED, -+ D3D11_LOGIC_OP_NOOP, -+ D3D11_LOGIC_OP_INVERT, -+ D3D11_LOGIC_OP_AND, -+ D3D11_LOGIC_OP_NAND, -+ D3D11_LOGIC_OP_OR, -+ D3D11_LOGIC_OP_NOR, -+ D3D11_LOGIC_OP_XOR, -+ D3D11_LOGIC_OP_EQUIV, -+ D3D11_LOGIC_OP_AND_REVERSE, -+ D3D11_LOGIC_OP_AND_INVERTED, -+ D3D11_LOGIC_OP_OR_REVERSE, -+ D3D11_LOGIC_OP_OR_INVERTED, -+} D3D11_LOGIC_OP; -+ -+typedef struct D3D11_RENDER_TARGET_BLEND_DESC1 -+{ -+ BOOL BlendEnable; -+ BOOL LogicOpEnable; -+ D3D11_BLEND SrcBlend; -+ D3D11_BLEND DestBlend; -+ D3D11_BLEND_OP BlendOp; -+ D3D11_BLEND SrcBlendAlpha; -+ D3D11_BLEND DestBlendAlpha; -+ D3D11_BLEND_OP BlendOpAlpha; -+ D3D11_LOGIC_OP LogicOp; -+ UINT8 RenderTargetWriteMask; -+} D3D11_RENDER_TARGET_BLEND_DESC1; -+ -+typedef struct D3D11_BLEND_DESC1 -+{ -+ BOOL AlphaToCoverageEnable; -+ BOOL IndependentBlendEnable; -+ D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT]; -+} D3D11_BLEND_DESC1; -+ -+[ -+ uuid(cc86fabe-da55-401d-85e7-e3c9de2877e9), -+ object, -+ local, -+ pointer_default(unique) -+] -+interface ID3D11BlendState1 : ID3D11BlendState -+{ -+ void GetDesc1( -+ [out] D3D11_BLEND_DESC1* desc -+ ); -+} -+ -+typedef struct D3D11_RASTERIZER_DESC1 -+{ -+ D3D11_FILL_MODE FillMode; -+ D3D11_CULL_MODE CullMode; -+ BOOL FrontCounterClockwise; -+ INT DepthBias; -+ float DepthBiasClamp; -+ float SlopeScaledDepthBias; -+ BOOL DepthClipEnable; -+ BOOL ScissorEnable; -+ BOOL MultisampleEnable; -+ BOOL AntialiasedLineEnable; -+ UINT ForcedSampleCount; -+} D3D11_RASTERIZER_DESC1; -+ -+[ -+ uuid(1217d7a6-5039-418c-b042-9cbe256afd6e), -+ object, -+ local, -+ pointer_default(unique) -+] -+interface ID3D11RasterizerState1 : ID3D11RasterizerState -+{ -+ void GetDesc1( -+ [out] D3D11_RASTERIZER_DESC1 *desc -+ ); -+} -+ -+[ -+ uuid(a04bfb29-08ef-43d6-a49c-a9bdbdcbe686), -+ object, -+ local, -+ pointer_default(unique) -+] -+interface ID3D11Device1 : ID3D11Device -+{ -+ void GetImmediateContext1( -+ [out] ID3D11DeviceContext1 **context -+ ); -+ -+ HRESULT CreateDeferredContext1( -+ UINT flags, -+ [out] ID3D11DeviceContext1 **context -+ ); -+ -+ HRESULT CreateBlendState1( -+ [in] const D3D11_BLEND_DESC1 *desc, -+ [out] ID3D11BlendState1 **state -+ ); -+ -+ HRESULT CreateRasterizerState1( -+ [in] const D3D11_RASTERIZER_DESC1 *desc, -+ [out] ID3D11RasterizerState1 **state -+ ); -+ -+ HRESULT CreateDeviceContextState( -+ UINT flags, -+ [size_is(levels_count)] const D3D_FEATURE_LEVEL* levels, -+ UINT levels_count, -+ UINT version, -+ REFIID emu_interface, -+ [out] D3D_FEATURE_LEVEL *level, -+ [out] ID3DDeviceContextState **state -+ ); -+ -+ HRESULT OpenSharedResource1( -+ [in] HANDLE resource, -+ [in] REFIID emu_interface, -+ [out] void **data -+ ); -+ -+ HRESULT OpenSharedResourceByName( -+ [in] const WCHAR *name, -+ [in] DWORD access, -+ [in] REFIID emu_interface, -+ [in] void **data); -+} -+ - [ - uuid(b2daad8b-03d4-4dbf-95eb-32ab4b63d0ab), - object, + typedef enum D3D11_LOGIC_OP { + D3D11_LOGIC_OP_CLEAR = 0, + D3D11_LOGIC_OP_SET, -- 2.3.0 diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 0ebfa767e4..7f1eb8cc4d 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4472.1c3d2c1 +pkgver=5.0.0.4485.c881cc7 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -24,8 +24,8 @@ source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" md5sums=('SKIP' '0bcf1726f2093c6ed7e998d7e6c9dd16' '20172a91981ffa87aa6aa5d3001c290b' - '410ff7ad4443a9f2e318c64742b2d358' - '28a4074ee6fcf76b5b13db2a8cd3291c' + 'bdca4fc47725678f08cc23c96d130151' + '9973c46a1dc331fd07c4b3dc6f5472a0' '652859ad478448a70c2074a854a313ec') pkgver() { diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index bad5b9c1e8..9994881418 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4478.790a654 +pkgver=5.0.0.4485.c881cc7 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From faaa143daa42886f66a0c45aa620b335fe2c83d3 Mon Sep 17 00:00:00 2001 From: David Macek Date: Thu, 9 Apr 2015 18:40:48 +0200 Subject: [PATCH 0837/2060] sqlite3, sqlite-analyzer: Update to v3.8.9.0 --- mingw-w64-sqlite-analyzer/PKGBUILD | 2 +- mingw-w64-sqlite3/PKGBUILD | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-sqlite-analyzer/PKGBUILD b/mingw-w64-sqlite-analyzer/PKGBUILD index 3963a4cb47..b61d63cf42 100644 --- a/mingw-w64-sqlite-analyzer/PKGBUILD +++ b/mingw-w64-sqlite-analyzer/PKGBUILD @@ -2,7 +2,7 @@ _realname=sqlite-analyzer pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.8.8.3 +pkgver=3.8.9 pkgrel=1 pkgdesc="An analysis program SQLite database files (mingw-w64)" url="http://www.sqlite.org/" diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index 3d7e4c847c..db70bb7224 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -3,8 +3,8 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3080803 -pkgver=3.8.8.3 +_amalgamationver=3080900 +pkgver=3.8.9.0 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tcl") source=("http://www.sqlite.org/2015/sqlite-autoconf-$_amalgamationver.tar.gz" LICENSE) -sha1sums=('2fe3f6226a2a08a2e814b97cd53e36bb3c597112' +sha1sums=('db70dee268700b312cbaa5b3e5cf8454e1c8b7b9' 'e2aa07adae13aed713860b74165d3325a18c6792') options=('!strip' 'staticlibs') From 337b0494ad498b86c470f1860f7f64e8df39297e Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Tue, 31 Mar 2015 20:21:19 -0300 Subject: [PATCH 0838/2060] python-pywin32: Build pywintypes and move a bit forward. --- .../002-experimental-fixes.patch | 43 +++++++++++++++++++ mingw-w64-python-pywin32/PKGBUILD | 7 ++- ...tutils-add-windmc-to-cygwinccompiler.patch | 41 ++++++++++++++++++ mingw-w64-python2/PKGBUILD | 9 +++- 4 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-python-pywin32/002-experimental-fixes.patch create mode 100644 mingw-w64-python2/2000-distutils-add-windmc-to-cygwinccompiler.patch diff --git a/mingw-w64-python-pywin32/002-experimental-fixes.patch b/mingw-w64-python-pywin32/002-experimental-fixes.patch new file mode 100644 index 0000000000..91ad4e2fe5 --- /dev/null +++ b/mingw-w64-python-pywin32/002-experimental-fixes.patch @@ -0,0 +1,43 @@ +diff -aur 001/setup.py 002/setup.py +--- 001/setup.py 2015-03-31 16:31:40.344437400 -0300 ++++ 002/setup.py 2015-03-31 18:14:09.612059600 -0300 +@@ -340,6 +340,8 @@ + # Some of our swigged files behave differently in distutils vs + # MSVC based builds. Always define DISTUTILS_BUILD so they can tell. + define_macros = define_macros or [] ++ define_macros.append(("UNICODE", None)) ++ define_macros.append(("_UNICODE", None)) + define_macros.append(("DISTUTILS_BUILD", None)) + define_macros.append(("_CRT_SECURE_NO_WARNINGS", None)) + self.pch_header = pch_header +@@ -865,7 +867,8 @@ + log.debug("Looked for %s in %s", lib, look_dirs) + return "No library '%s'" % lib + self.found_libraries[lib.lower()] = found +- patched_libs.append(os.path.splitext(os.path.basename(found))[0]) ++ lib_name = re.sub(r'^lib(.*)\.a', r'\1', os.path.basename(found)) ++ patched_libs.append(os.path.splitext(lib_name)[0]) + + if ext.platforms and self.plat_name not in ext.platforms: + return "Only available on platforms %s" % (ext.platforms,) +@@ -1226,7 +1229,7 @@ + # XXX This has to be changed for mingw32 + # Get the .lib files we need. This is limited to pywintypes, + # pythoncom and win32ui - but the first 2 have special names +- extra = self.debug and "_d.lib" or ".lib" ++ extra = self.debug and "_d.def" or ".def" + if ext.name in ("pywintypes", "pythoncom"): + # The import libraries are created as PyWinTypes23.lib, but + # are expected to be pywintypes.lib. +diff -aur 001/win32/src/PerfMon/perfmondata.cpp 002/win32/src/PerfMon/perfmondata.cpp +--- 001/win32/src/PerfMon/perfmondata.cpp 2011-03-19 10:51:22.000000000 -0300 ++++ 002/win32/src/PerfMon/perfmondata.cpp 2015-03-31 18:17:40.378112100 -0300 +@@ -445,7 +445,7 @@ + --*/ + { + HKEY hAppKey; +- TCHAR LogLevelKeyName[] = _T("SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\Perflib"); ++ TCHAR LogLevelKeyName[] = _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib"); + + TCHAR LogLevelValueName[] = _T("EventLogLevel"); + LONG lStatus; diff --git a/mingw-w64-python-pywin32/PKGBUILD b/mingw-w64-python-pywin32/PKGBUILD index 9fb0fb03e6..0fec186ad2 100644 --- a/mingw-w64-python-pywin32/PKGBUILD +++ b/mingw-w64-python-pywin32/PKGBUILD @@ -14,13 +14,16 @@ pkgname=(${MINGW_PACKAGE_PREFIX}-python2-${_realname} ${MINGW_PACKAGE_PREFIX}-py groups=(${MINGW_PACKAGE_PREFIX}) source=("http://prdownloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.zip" - 001-experimental-fixes.patch) + 001-experimental-fixes.patch + 002-experimental-fixes.patch) sha1sums=('1eb8039f9e15f53f56a9e1b54f00cd2c0f63ff8e' - '3a42fd3d639db7ec3cd1baa130a047dd592a93fe') + '3a42fd3d639db7ec3cd1baa130a047dd592a93fe' + '25233c64a976605d2a4d83beaf6b0c69be736014') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 < "${startdir}"/001-experimental-fixes.patch + patch -p1 < "${startdir}"/002-experimental-fixes.patch } build() { diff --git a/mingw-w64-python2/2000-distutils-add-windmc-to-cygwinccompiler.patch b/mingw-w64-python2/2000-distutils-add-windmc-to-cygwinccompiler.patch new file mode 100644 index 0000000000..017c9a67b8 --- /dev/null +++ b/mingw-w64-python2/2000-distutils-add-windmc-to-cygwinccompiler.patch @@ -0,0 +1,41 @@ +diff -aur 1040/Lib/distutils/cygwinccompiler.py 2000/Lib/distutils/cygwinccompiler.py +--- 1040/Lib/distutils/cygwinccompiler.py 2015-03-31 19:50:52.675374300 -0300 ++++ 2000/Lib/distutils/cygwinccompiler.py 2015-03-31 19:57:35.460903800 -0300 +@@ -159,6 +159,28 @@ + self.spawn(["windres", "-i", src, "-o", obj]) + except DistutilsExecError, msg: + raise CompileError, msg ++ elif ext == '.mc': ++ # Adapted from msvc9compiler: ++ # ++ # Compile .MC to .RC file to .RES file. ++ # * '-h dir' specifies the directory for the generated include file ++ # * '-r dir' specifies the target directory of the generated RC file and the binary message resource it includes ++ # ++ # For now (since there are no options to change this), ++ # we use the source-directory for the include file and ++ # the build directory for the RC file and message ++ # resources. This works at least for win32all. ++ h_dir = os.path.dirname(src) ++ rc_dir = os.path.dirname(obj) ++ try: ++ # first compile .MC to .RC and .H file ++ self.spawn(['windmc'] + ['-h', h_dir, '-r', rc_dir] + [src]) ++ base, _ = os.path.splitext (os.path.basename (src)) ++ rc_file = os.path.join (rc_dir, base + '.rc') ++ # then compile .RC to .RES file ++ self.spawn(['windres', '-i', rc_file, '-o', obj]) ++ except DistutilsExecError, msg: ++ raise CompileError(msg) + else: # for other files use the C-compiler + try: + self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + +@@ -277,7 +299,7 @@ + ext_normcase = os.path.normcase(ext) + if ext_normcase in ['.rc','.res']: + ext = ext_normcase +- if ext not in (self.src_extensions + ['.rc','.res']): ++ if ext not in (self.src_extensions + ['.rc', '.res', '.mc']): + raise UnknownFileError, \ + "unknown file type '%s' (from '%s')" % \ + (ext, src_name) diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index be8ec587d4..4a1cff3d85 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -102,7 +102,8 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 1010-ctypes-python-dll.patch 1020-gdbm-module-includes.patch 1030-use-gnu_printf-in-format.patch - 1040-install-msilib.patch) + 1040-install-msilib.patch + 2000-distutils-add-windmc-to-cygwinccompiler.patch) prepare() { @@ -200,6 +201,9 @@ prepare() { patch -p1 -i "${srcdir}"/1030-use-gnu_printf-in-format.patch patch -p1 -i "${srcdir}"/1040-install-msilib.patch + plain "Apply Renato Silva's patch to distutils" + patch -p1 -i "${srcdir}"/2000-distutils-add-windmc-to-cygwinccompiler.patch + autoreconf -vfi # Temporary workaround for FS#22322 @@ -417,4 +421,5 @@ sha1sums=('3172f6e957713c2d9fca462cc16068222fd1b9d3' 'bc7209fd529f03d384f00be22835615a2843a7fa' '06ebbcf50d6d30780f47a0d3425f956b2eb8e847' '9042c4902ff03ecc12e0b41059aaebd6ad409009' - 'dc6aa85fa4dc68a6809c1321e4a28a360a242f39') + 'dc6aa85fa4dc68a6809c1321e4a28a360a242f39' + '5c5d9fb5d1fc576251a68c781437d27ea8d7e208') From fee927e9f474d83d920f3c169c27819d1b850ae5 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Tue, 7 Apr 2015 21:53:19 -0300 Subject: [PATCH 0839/2060] python-pywin32: Build several extensions. The extensions below are now building. Most of them are Python DLLs (pyd file extension) except for pywintypes27 and perfmondata which are regular DLLs. Windows Vista headers (0x0600) are now used. Note that currently needs fixing before building win32pdh. * pywintypes27 * mmapfile * odbc * perfmon * perfmondata * timer * win2kras * win32clipboard * win32console * win32cred * win32crypt * win32event * win32evtlog * win32file * win32inet * win32job * win32lz * win32net * win32pdh * win32pipe * win32print * win32process * win32profile * win32ras * win32security * win32service * win32trace * win32transaction * win32ts * win32wnet * _win32sysloader --- .../003-experimental-fixes.patch | 579 ++++++++++++++++++ mingw-w64-python-pywin32/PKGBUILD | 7 +- 2 files changed, 584 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-python-pywin32/003-experimental-fixes.patch diff --git a/mingw-w64-python-pywin32/003-experimental-fixes.patch b/mingw-w64-python-pywin32/003-experimental-fixes.patch new file mode 100644 index 0000000000..551bd3123c --- /dev/null +++ b/mingw-w64-python-pywin32/003-experimental-fixes.patch @@ -0,0 +1,579 @@ +diff -aur 002/setup.py 003/setup.py +--- 002/setup.py 2015-04-04 23:19:27.556464900 -0300 ++++ 003/setup.py 2015-04-07 21:23:21.056866600 -0300 +@@ -304,7 +304,7 @@ + include_dirs=[], + define_macros=None, + undef_macros=None, +- library_dirs=[], ++ library_dirs=['build/lib.mingw-2.7/pywin32_system32'], + libraries="", + runtime_library_dirs=None, + extra_objects=None, +@@ -340,6 +340,7 @@ + # Some of our swigged files behave differently in distutils vs + # MSVC based builds. Always define DISTUTILS_BUILD so they can tell. + define_macros = define_macros or [] ++ define_macros.append(("_WIN32_WINNT", 0x0600)) + define_macros.append(("UNICODE", None)) + define_macros.append(("_UNICODE", None)) + define_macros.append(("DISTUTILS_BUILD", None)) +@@ -693,7 +694,7 @@ + + def finalize_options(self): + build_ext.finalize_options(self) +- self.windows_h_version = None ++ self.windows_h_version = 0x0600 + # The pywintypes library is created in the build_temp + # directory, so we need to add this to library_dirs + self.library_dirs.append(self.build_temp) +@@ -978,6 +979,9 @@ + if not self.compiler.initialized: + self.compiler.initialize() + ++ if self.mingw32: ++ self.compiler.shared_lib_extension = '.dll' ++ + if sdk_dir: + self._fixup_sdk_dirs() + +@@ -1598,7 +1602,7 @@ + win32/src/win32crypt/PyCRYPTPROV.cpp + win32/src/win32crypt/PyCTL_CONTEXT.cpp + """), +- ("win32file", "", None, 0x0500, """ ++ ("win32file", "ws2_32 mswsock", None, 0x0500, """ + win32/src/win32file.i + win32/src/win32file_comm.cpp + """), +@@ -1655,7 +1659,7 @@ + sources = info[4].split() + extra_compile_args = [] + ext = WinExt_win32(name, +- libraries=lib_names, ++ libraries=(lib_names + ' pywintypes27'), + extra_compile_args = extra_compile_args, + windows_h_version = windows_h_ver, + sources = sources, +@@ -1668,7 +1672,7 @@ + sources = """ + win32\\src\\win32evtlog_messages.mc win32\\src\\win32evtlog.i + """.split(), +- libraries="advapi32 oleaut32", ++ libraries="advapi32 oleaut32 pywintypes27", + delay_load_libraries="wevtapi", + windows_h_version=0x0600 + ), +@@ -1704,7 +1708,7 @@ + # winxptheme + WinExt_win32("_winxptheme", + sources = ["win32/src/_winxptheme.i"], +- libraries="gdi32 user32 comdlg32 comctl32 shell32 Uxtheme", ++ libraries="gdi32 user32 comdlg32 comctl32 shell32 Uxtheme pywintypes27", + windows_h_version=0x0500, + ), + ] +Only in 003/SWIG/swig_lib: 003-experimental-fixes.patch +diff -aur 002/win32/src/odbc.cpp 003/win32/src/odbc.cpp +--- 002/win32/src/odbc.cpp 2013-06-13 17:40:32.000000000 -0300 ++++ 003/win32/src/odbc.cpp 2015-04-05 03:57:23.758258600 -0300 +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + #include "PyWinTypes.h" + #include "PyWinObjects.h" +@@ -105,8 +106,8 @@ + } + + static void cursorDealloc(PyObject *self); +-PyMethodDef cursorMethods[]; +-PyMemberDef cursorMembers[]; ++extern PyMethodDef cursorMethods[8]; ++extern PyMemberDef cursorMembers[3]; + + static PyTypeObject Cursor_Type = + { +@@ -152,8 +153,8 @@ + + + static void connectionDealloc(PyObject *self); +-PyMethodDef connectionMethods[]; +-PyMemberDef connectionMembers[]; ++extern PyMethodDef connectionMethods[6]; ++extern PyMemberDef connectionMembers[2]; + static PyTypeObject Connection_Type = + { + PYWIN_OBJECT_HEAD +@@ -458,7 +459,7 @@ + } + + /* @object connection|An object representing an ODBC connection */ +-static struct PyMethodDef connectionMethods[] = { ++struct PyMethodDef connectionMethods[] = { + { "setautocommit", odbcSetAutoCommit, 1 }, /* @pymeth setautocommit|Sets the autocommit mode. */ + { "commit", odbcCommit, 1 } , /* @pymeth commit|Commits a transaction. */ + { "rollback", odbcRollback, 1 } , /* @pymeth rollback|Rollsback a transaction. */ +@@ -467,7 +468,7 @@ + {0, 0} + }; + +-static PyMemberDef connectionMembers[] = { ++PyMemberDef connectionMembers[] = { + {"error", T_OBJECT, offsetof(connectionObject, connectionError), READONLY}, + {NULL} + }; +@@ -1192,21 +1193,21 @@ + case SQL_DATE: + case SQL_TIMESTAMP: + case SQL_BIT: +- return(max(collen, (int)_tcslen(colname))); ++ return(std::max(collen, (int)_tcslen(colname))); + case SQL_SMALLINT: + case SQL_INTEGER: + case SQL_TINYINT: +- return(max(collen+1, (int)_tcslen(colname))); ++ return(std::max(collen+1, (int)_tcslen(colname))); + case SQL_DECIMAL: + case SQL_NUMERIC: +- return(max(collen+2, (int)_tcslen(colname))); ++ return(std::max(collen+2, (int)_tcslen(colname))); + case SQL_REAL: + case SQL_FLOAT: + case SQL_DOUBLE: +- return(max(20, (int)_tcslen(colname))); ++ return(std::max(20, (int)_tcslen(colname))); + case SQL_BINARY: + case SQL_VARBINARY: +- return(max(2*collen, (int)_tcslen(colname))); ++ return(std::max(2*collen, (int)_tcslen(colname))); + case SQL_LONGVARBINARY: + case SQL_LONGVARCHAR: + default: +@@ -1797,7 +1798,7 @@ + } + + /* @object cursor|An object representing an ODBC cursor. */ +-static PyMethodDef cursorMethods[] = { ++PyMethodDef cursorMethods[] = { + { "close", odbcCurClose, 1} , /* @pymeth close|Closes the cursor */ + { "execute", odbcCurExec, 1} , /* @pymeth execute|Execute some SQL */ + { "fetchone", odbcCurFetchOne, 1} , /* @pymeth fetchone|Fetch one row of data */ +@@ -1808,7 +1809,7 @@ + {0, 0} + }; + +-static PyMemberDef cursorMembers[] = { ++PyMemberDef cursorMembers[] = { + {"description", T_OBJECT, offsetof(cursorObject, description), READONLY}, + {"error", T_OBJECT, offsetof(cursorObject, cursorError), READONLY}, + {NULL} +diff -aur 002/win32/src/PerfMon/perfmondata.cpp 003/win32/src/PerfMon/perfmondata.cpp +--- 002/win32/src/PerfMon/perfmondata.cpp 2015-04-04 23:19:27.572089900 -0300 ++++ 003/win32/src/PerfMon/perfmondata.cpp 2015-04-04 23:20:04.556532700 -0300 +@@ -89,9 +89,9 @@ + // these are used to insure that the data collection functions + // accessed by Perflib will have the correct calling format. + // +-PM_OPEN_PROC OpenPerformanceData; +-PM_COLLECT_PROC CollectPerformanceData; +-PM_CLOSE_PROC ClosePerformanceData; ++extern "C" PM_OPEN_PROC OpenPerformanceData; ++extern "C" PM_COLLECT_PROC CollectPerformanceData; ++extern "C" PM_CLOSE_PROC ClosePerformanceData; + + TCHAR szFullModulePath[MAX_PATH]; + TCHAR szModuleName[MAX_PATH]; // will point into the buffer above. +diff -aur 002/win32/src/PyWinTypes.h 003/win32/src/PyWinTypes.h +--- 002/win32/src/PyWinTypes.h 2013-06-13 17:40:32.000000000 -0300 ++++ 003/win32/src/PyWinTypes.h 2015-04-07 10:14:43.895393100 -0300 +@@ -796,7 +796,7 @@ + + // A helper for simple exception handling. + // try/__try +-#ifdef MAINWIN ++#if defined(__MINGW32__) || defined(MAINWIN) + #define PYWINTYPES_TRY try + #else + #define PYWINTYPES_TRY __try +diff -aur 002/win32/src/win32crypt/PyCRYPTPROV.cpp 003/win32/src/win32crypt/PyCRYPTPROV.cpp +--- 002/win32/src/win32crypt/PyCRYPTPROV.cpp 2014-01-25 15:15:48.000000000 -0200 ++++ 003/win32/src/win32crypt/PyCRYPTPROV.cpp 2015-04-05 17:34:27.360286600 -0300 +@@ -1,4 +1,5 @@ + // @doc ++#include + #include "win32crypt.h" + + // @object PyCRYPTPROV|Handle to a cryptographic provider, created using +@@ -351,7 +352,7 @@ + //initialize buffer with char string if passed if + ZeroMemory(pbBuffer, dwLen+1); + if (seeddata != NULL) +- memcpy(pbBuffer, seeddata, min(dwLen,seedlen)); ++ memcpy(pbBuffer, seeddata, std::min(dwLen,seedlen)); + if (CryptGenRandom(hcryptprov, dwLen, pbBuffer)) + ret=PyString_FromStringAndSize((char *)pbBuffer, dwLen); + else +diff -aur 002/win32/src/win32crypt/win32cryptmodule.cpp 003/win32/src/win32crypt/win32cryptmodule.cpp +--- 002/win32/src/win32crypt/win32cryptmodule.cpp 2014-01-25 15:15:48.000000000 -0200 ++++ 003/win32/src/win32crypt/win32cryptmodule.cpp 2015-04-05 22:56:26.696003000 -0300 +@@ -596,44 +596,37 @@ + pvPara=(void *)&cssrp; + } + else{ +- switch((ULONG_PTR)StoreProvider){ +- case CERT_STORE_PROV_PHYSICAL: +- case CERT_STORE_PROV_FILENAME: +- case CERT_STORE_PROV_SYSTEM: +- case CERT_STORE_PROV_SYSTEM_REGISTRY: +- case CERT_STORE_PROV_LDAP:{ +- if (!PyWinObject_AsWCHAR(obpvPara, (WCHAR **)&pvPara)) +- return NULL; +- free_wchar=TRUE; +- break; +- } +- case CERT_STORE_PROV_REG:{ +- if (!PyWinObject_AsHKEY(obpvPara, (HKEY *)&pvPara)) +- return NULL; +- break; +- } +- case CERT_STORE_PROV_FILE:{ +- if (!PyWinObject_AsHANDLE(obpvPara, (HANDLE *)&pvPara)) +- return NULL; +- break; +- } +- case CERT_STORE_PROV_SERIALIZED: +- case CERT_STORE_PROV_PKCS7:{ +- if (!PyWinObject_AsReadBuffer(obpvPara, (void **)&crypt_data_blob.pbData, &crypt_data_blob.cbData)) +- return NULL; +- pvPara=(void *)&crypt_data_blob; +- break; +- } +- case CERT_STORE_PROV_MEMORY:{ +- // pvPara is not used, warn if something passed in +- if (obpvPara != Py_None) +- PyErr_Warn(PyExc_RuntimeWarning, "Para ignored for CERT_STORE_PROV_MEMORY"); +- break; +- } +- default:{ +- PyErr_SetString(PyExc_NotImplementedError,"Specified store provider type not supported"); ++ if (StoreProvider == CERT_STORE_PROV_PHYSICAL || ++ StoreProvider == CERT_STORE_PROV_FILENAME || ++ StoreProvider == CERT_STORE_PROV_SYSTEM || ++ StoreProvider == CERT_STORE_PROV_SYSTEM_REGISTRY || ++ StoreProvider == CERT_STORE_PROV_LDAP){ ++ if (!PyWinObject_AsWCHAR(obpvPara, (WCHAR **)&pvPara)) + return NULL; +- } ++ free_wchar=TRUE; ++ } ++ else if (StoreProvider == CERT_STORE_PROV_REG){ ++ if (!PyWinObject_AsHKEY(obpvPara, (HKEY *)&pvPara)) ++ return NULL; ++ } ++ else if (StoreProvider == CERT_STORE_PROV_FILE){ ++ if (!PyWinObject_AsHANDLE(obpvPara, (HANDLE *)&pvPara)) ++ return NULL; ++ } ++ else if (StoreProvider == CERT_STORE_PROV_SERIALIZED || ++ StoreProvider == CERT_STORE_PROV_PKCS7){ ++ if (!PyWinObject_AsReadBuffer(obpvPara, (void **)&crypt_data_blob.pbData, &crypt_data_blob.cbData)) ++ return NULL; ++ pvPara=(void *)&crypt_data_blob; ++ } ++ else if (StoreProvider == CERT_STORE_PROV_MEMORY){ ++ // pvPara is not used, warn if something passed in ++ if (obpvPara != Py_None) ++ PyErr_Warn(PyExc_RuntimeWarning, "Para ignored for CERT_STORE_PROV_MEMORY"); ++ } ++ else{ ++ PyErr_SetString(PyExc_NotImplementedError,"Specified store provider type not supported"); ++ return NULL; + } + } + +diff -aur 002/win32/src/win32evtlog.i 003/win32/src/win32evtlog.i +--- 002/win32/src/win32evtlog.i 2014-04-26 15:21:40.000000000 -0300 ++++ 003/win32/src/win32evtlog.i 2015-04-07 09:32:48.778717700 -0300 +@@ -997,6 +997,14 @@ + } + PyCFunction pfnPyEvtUpdateBookmark = (PyCFunction) PyEvtUpdateBookmark; + ++#ifndef EVT_VARIANT_TYPE_ARRAY ++#define EVT_VARIANT_TYPE_ARRAY 128 ++#endif ++ ++#ifndef EVT_VARIANT_TYPE_MASK ++#define EVT_VARIANT_TYPE_MASK 0x7F ++#endif ++ + PyObject *PyWinObject_FromEVT_VARIANT(PEVT_VARIANT val) + { + if (val->Type & EVT_VARIANT_TYPE_ARRAY){ +diff -aur 002/win32/src/win32file.i 003/win32/src/win32file.i +--- 002/win32/src/win32file.i 2013-06-13 17:40:32.000000000 -0300 ++++ 003/win32/src/win32file.i 2015-04-07 07:46:40.178640500 -0300 +@@ -1404,11 +1404,11 @@ + // the filename is exactly 1 byte! Not clear the best way to + // check this, but this works for now - is it at least the size of + // the *head* of the struct. +- if (nbytes < sizeof DWORD*3+2) ++ if (nbytes < sizeof(DWORD)*3+2) + return ret; + DWORD nbytes_read = 0; + while (1) { +- PyObject *fname = PyWinObject_FromOLECHAR(p->FileName, p->FileNameLength/sizeof WCHAR); ++ PyObject *fname = PyWinObject_FromOLECHAR(p->FileName, p->FileNameLength/sizeof(WCHAR)); + if (!fname) { + Py_DECREF(ret); + return NULL; +diff -aur 002/win32/src/win32file_comm.cpp 003/win32/src/win32file_comm.cpp +--- 002/win32/src/win32file_comm.cpp 2011-03-19 10:51:22.000000000 -0300 ++++ 003/win32/src/win32file_comm.cpp 2015-04-06 20:20:20.347135800 -0300 +@@ -175,7 +175,7 @@ + + #define GET_BITFIELD_ENTRY(bitfield_name) \ + else if (strcmp(name, #bitfield_name)==0) { \ +- return PyInt_FromLong(pydcb->m_DCB.##bitfield_name); \ ++ return PyInt_FromLong(pydcb->m_DCB.bitfield_name); \ + } \ + + PyObject *PyDCB::getattro(PyObject *self, PyObject *obname) +@@ -210,7 +210,7 @@ + PyErr_Format(PyExc_TypeError, szNeedIntAttr, #bitfield_name); \ + return -1; \ + } \ +- pydcb->m_DCB.##bitfield_name = PyInt_AsLong(v); \ ++ pydcb->m_DCB.bitfield_name = PyInt_AsLong(v); \ + return 0; \ + } \ + +@@ -369,7 +369,7 @@ + #undef GET_BITFIELD_ENTRY + #define GET_BITFIELD_ENTRY(bitfield_name) \ + else if (strcmp(name, #bitfield_name)==0) { \ +- return PyInt_FromLong(pyCOMSTAT->m_COMSTAT.##bitfield_name); \ ++ return PyInt_FromLong(pyCOMSTAT->m_COMSTAT.bitfield_name); \ + } \ + + PyObject *PyCOMSTAT::getattro(PyObject *self, PyObject *obname) +@@ -398,7 +398,7 @@ + PyErr_Format(PyExc_TypeError, szNeedIntAttr, #bitfield_name); \ + return -1; \ + } \ +- pyCOMSTAT->m_COMSTAT.##bitfield_name = PyInt_AsLong(v); \ ++ pyCOMSTAT->m_COMSTAT.bitfield_name = PyInt_AsLong(v); \ + return 0; \ + } \ + +diff -aur 002/win32/src/win32inet.i 003/win32/src/win32inet.i +--- 002/win32/src/win32inet.i 2011-03-19 10:51:22.000000000 -0300 ++++ 003/win32/src/win32inet.i 2015-04-07 19:57:38.467340900 -0300 +@@ -4,9 +4,26 @@ + %{ + // #define UNICODE + // #define _UNICODE ++#include + #include "Windows.h" + #include "WinInet.h" + #undef BOOLAPI // wininet.h defines this! ++ ++#ifndef INTERNET_OPTION_CODEPAGE_PATH ++#define INTERNET_OPTION_CODEPAGE_PATH 100 ++#endif ++ ++#ifndef INTERNET_OPTION_CODEPAGE_EXTRA ++#define INTERNET_OPTION_CODEPAGE_EXTRA 101 ++#endif ++ ++#ifndef INTERNET_OPTION_IDN ++#define INTERNET_OPTION_IDN 102 ++#endif ++ ++#ifndef INTERNET_OPTION_HTTP_DECODING ++#define INTERNET_OPTION_HTTP_DECODING 65 ++#endif + %} + + %include "typemaps.i" +@@ -1835,7 +1852,7 @@ + } + } + if (bsuccess && GroupName) +- _tcsncpy(GroupInfo->szGroupName, GroupName, min(namelen, GROUPNAME_MAX_LENGTH)); ++ _tcsncpy(GroupInfo->szGroupName, GroupName, std::min(namelen, GROUPNAME_MAX_LENGTH)); + Py_DECREF(dummy_tuple); + PyWinObject_FreeTCHAR(GroupName); + if (OwnerStorage) +diff -aur 002/win32/src/win32net/win32net.h 003/win32/src/win32net/win32net.h +--- 002/win32/src/win32net/win32net.h 2011-03-19 10:51:22.000000000 -0300 ++++ 003/win32/src/win32net/win32net.h 2015-04-06 20:45:25.770423400 -0300 +@@ -62,15 +62,15 @@ + + #if WINVER >= 0x0500 + typedef NET_API_STATUS (NET_API_FUNCTION *NetValidateNamefunc)(LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, NETSETUP_NAME_TYPE); +-extern NetValidateNamefunc pfnNetValidateName; ++extern "C" NetValidateNamefunc pfnNetValidateName; + + typedef NET_API_STATUS (NET_API_FUNCTION *NetGetJoinInformationfunc)(LPCWSTR, LPWSTR *, PNETSETUP_JOIN_STATUS); +-extern NetGetJoinInformationfunc pfnNetGetJoinInformation; ++extern "C" NetGetJoinInformationfunc pfnNetGetJoinInformation; + + typedef NET_API_STATUS (NET_API_FUNCTION *NetValidatePasswordPolicyfunc)(LPCWSTR, LPVOID, NET_VALIDATE_PASSWORD_TYPE, LPVOID, LPVOID *); +-extern NetValidatePasswordPolicyfunc pfnNetValidatePasswordPolicy; ++extern "C" NetValidatePasswordPolicyfunc pfnNetValidatePasswordPolicy; + + typedef NET_API_STATUS (NET_API_FUNCTION *NetValidatePasswordPolicyFreefunc)(LPVOID *); +-extern NetValidatePasswordPolicyFreefunc pfnNetValidatePasswordPolicyFree; ++extern "C" NetValidatePasswordPolicyFreefunc pfnNetValidatePasswordPolicyFree; + + #endif // WINVER +diff -aur 002/win32/src/win32pdhmodule.cpp 003/win32/src/win32pdhmodule.cpp +--- 002/win32/src/win32pdhmodule.cpp 2012-06-22 11:08:42.000000000 -0300 ++++ 003/win32/src/win32pdhmodule.cpp 2015-04-06 21:19:19.686255800 -0300 +@@ -11,6 +11,7 @@ + + ******************************************************************/ + ++#include + #include "PyWinTypes.h" + #include "pdh.h" + #include "pdhmsg.h" +@@ -1016,7 +1017,7 @@ + #define SET_BOOL(r, i) { \ + if (i(cchInitialPath+1, 1024); + myCfg.cfg.szReturnPathBuffer = (TCHAR *)malloc(myCfg.cfg.cchReturnPathLength * sizeof(TCHAR)); + if (myCfg.cfg.szReturnPathBuffer == NULL){ + PyErr_NoMemory(); +diff -aur 002/win32/src/win32popen.cpp 003/win32/src/win32popen.cpp +--- 002/win32/src/win32popen.cpp 2013-06-13 17:40:32.000000000 -0300 ++++ 003/win32/src/win32popen.cpp 2015-04-07 04:17:39.326047200 -0300 +@@ -166,19 +166,27 @@ + { + PROCESS_INFORMATION piProcInfo; + STARTUPINFO siStartInfo; +- char *s1,*s2, *s3=" /c "; ++ LPTSTR s1, s2, s3 = TEXT(" /c "); + DWORD i; + size_t x; + +- if (i = GetEnvironmentVariable("COMSPEC",NULL,0)) ++ if (i = GetEnvironmentVariable(TEXT("COMSPEC"),NULL,0)) + { +- s1 = (char *)_alloca(i); +- if (!(x = GetEnvironmentVariable("COMSPEC", s1, i))) ++ s1 = (LPTSTR)_alloca(i); ++ if (!(x = GetEnvironmentVariable(TEXT("COMSPEC"), s1, i))) + return FALSE; +- x = i + strlen(s3) + strlen(cmdstring) + 1; +- s2 = (char *)_alloca(x); ++#ifdef UNICODE ++ size_t cmdlen = strlen(cmdstring); ++ WCHAR _cmdstring[cmdlen + 1]; ++ if (!MultiByteToWideChar(CP_OEMCP, 0, cmdstring, -1, _cmdstring, cmdlen + 1)) ++ return FALSE; ++#else ++ char *_cmdstring = cmdstring; ++#endif ++ x = (i + _tcslen(s3) + _tcslen(_cmdstring) + 1) * sizeof(TCHAR); ++ s2 = (LPTSTR)_alloca(x); + ZeroMemory(s2, x); +- sprintf(s2, "%s%s%s", s1, s3, cmdstring); ++ _stprintf(s2, TEXT("%s%s%s"), s1, s3, _cmdstring); + } + // Could be an else here to try cmd.exe / command.com in the path + // Now we'll just error out.. +diff -aur 002/win32/src/win32rasmodule.cpp 003/win32/src/win32rasmodule.cpp +--- 002/win32/src/win32rasmodule.cpp 2012-01-02 15:42:24.000000000 -0200 ++++ 003/win32/src/win32rasmodule.cpp 2015-04-07 04:46:43.333884000 -0300 +@@ -463,7 +463,7 @@ + if (obCallback==Py_None) { + pNotification = NULL; + } else if (PyCallable_Check(obCallback)) { +- pNotification = PyRasDialFunc1; ++ pNotification = (LPVOID)PyRasDialFunc1; + notType = 1; + } else if (PyInt_Check(obCallback)) { + if (!PyWinLong_AsVoidPtr(obCallback, &pNotification)) +diff -aur 002/win32/src/win32security.i 003/win32/src/win32security.i +--- 002/win32/src/win32security.i 2012-09-24 10:17:38.000000000 -0300 ++++ 003/win32/src/win32security.i 2015-04-07 05:17:31.777289500 -0300 +@@ -3563,9 +3563,9 @@ + return FALSE; + } + static const BOOL none_ok = TRUE; // NULL seems OK anywhere +- if (!PyWinObject_AsWCHAR(obUser, &pAuthData->User, none_ok, &pAuthData->UserLength) || \ +- !PyWinObject_AsWCHAR(obDomain, &pAuthData->Domain, none_ok, &pAuthData->DomainLength) || \ +- !PyWinObject_AsWCHAR(obPW, &pAuthData->Password, none_ok, &pAuthData->PasswordLength)) { ++ if (!PyWinObject_AsWCHAR(obUser, (WCHAR**)&pAuthData->User, none_ok, &pAuthData->UserLength) || \ ++ !PyWinObject_AsWCHAR(obDomain, (WCHAR**)&pAuthData->Domain, none_ok, &pAuthData->DomainLength) || \ ++ !PyWinObject_AsWCHAR(obPW, (WCHAR**)&pAuthData->Password, none_ok, &pAuthData->PasswordLength)) { + PyErr_Clear(); + PyErr_SetString(PyExc_TypeError, err_msg); + return FALSE; +@@ -3579,11 +3579,11 @@ + if (!pAuthData) + return; + if (pAuthData->User) +- PyWinObject_FreeWCHAR(pAuthData->User); ++ PyWinObject_FreeWCHAR((WCHAR*)pAuthData->User); + if (pAuthData->Domain) +- PyWinObject_FreeWCHAR(pAuthData->Domain); ++ PyWinObject_FreeWCHAR((WCHAR*)pAuthData->Domain); + if (pAuthData->Password) +- PyWinObject_FreeWCHAR(pAuthData->Password); ++ PyWinObject_FreeWCHAR((WCHAR*)pAuthData->Password); + } + + %} +diff -aur 002/win32/src/win32service.i 003/win32/src/win32service.i +--- 002/win32/src/win32service.i 2012-09-24 10:17:38.000000000 -0300 ++++ 003/win32/src/win32service.i 2015-04-07 08:21:56.348455600 -0300 +@@ -57,6 +57,13 @@ + if (fp!=NULL) + fpEnumServicesStatusEx=(EnumServicesStatusExfunc)fp; + } ++#ifndef SERVICE_CONTROL_PRESHUTDOWN ++#define SERVICE_CONTROL_PRESHUTDOWN 0x0000000F ++#endif ++ ++#ifndef SERVICE_ACCEPT_PRESHUTDOWN ++#define SERVICE_ACCEPT_PRESHUTDOWN 0x00000100 ++#endif + %} + + %{ +diff -aur 002/win32/src/win32trace.cpp 003/win32/src/win32trace.cpp +--- 002/win32/src/win32trace.cpp 2011-03-19 10:51:22.000000000 -0300 ++++ 003/win32/src/win32trace.cpp 2015-04-07 06:33:18.264396500 -0300 +@@ -30,6 +30,7 @@ + + */ + ++#include + #include "PyWinTypes.h" + #include "PyWinObjects.h" + +@@ -341,7 +342,7 @@ + Py_BEGIN_ALLOW_THREADS + const char *data_this = data; + while (len) { +- unsigned len_this = min(len, BUFFER_SIZE/2); ++ unsigned len_this = std::min(len, BUFFER_SIZE/2); + BOOL ok = GetMyMutex(); + if (ok) { + // must use types with identical size on win32 and win64 diff --git a/mingw-w64-python-pywin32/PKGBUILD b/mingw-w64-python-pywin32/PKGBUILD index 0fec186ad2..7d6f8fa911 100644 --- a/mingw-w64-python-pywin32/PKGBUILD +++ b/mingw-w64-python-pywin32/PKGBUILD @@ -15,15 +15,18 @@ groups=(${MINGW_PACKAGE_PREFIX}) source=("http://prdownloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.zip" 001-experimental-fixes.patch - 002-experimental-fixes.patch) + 002-experimental-fixes.patch + 003-experimental-fixes.patch) sha1sums=('1eb8039f9e15f53f56a9e1b54f00cd2c0f63ff8e' '3a42fd3d639db7ec3cd1baa130a047dd592a93fe' - '25233c64a976605d2a4d83beaf6b0c69be736014') + '25233c64a976605d2a4d83beaf6b0c69be736014' + '44f19d4ae37e32baf00f8e0a9de7f91928aa8e50') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 < "${startdir}"/001-experimental-fixes.patch patch -p1 < "${startdir}"/002-experimental-fixes.patch + patch -p1 < "${startdir}"/003-experimental-fixes.patch } build() { From d716f19b9b7a5d64e06359b8896b17e23a0cf478 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Thu, 9 Apr 2015 21:12:01 -0300 Subject: [PATCH 0840/2060] python-pywin32: Reorganize the patches. --- ...atch => 001-compile-and-setup-fixes.patch} | 234 +++++++++++++----- .../001-experimental-fixes.patch | 86 ------- .../002-experimental-fixes.patch | 43 ---- mingw-w64-python-pywin32/PKGBUILD | 13 +- 4 files changed, 176 insertions(+), 200 deletions(-) rename mingw-w64-python-pywin32/{003-experimental-fixes.patch => 001-compile-and-setup-fixes.patch} (67%) delete mode 100644 mingw-w64-python-pywin32/001-experimental-fixes.patch delete mode 100644 mingw-w64-python-pywin32/002-experimental-fixes.patch diff --git a/mingw-w64-python-pywin32/003-experimental-fixes.patch b/mingw-w64-python-pywin32/001-compile-and-setup-fixes.patch similarity index 67% rename from mingw-w64-python-pywin32/003-experimental-fixes.patch rename to mingw-w64-python-pywin32/001-compile-and-setup-fixes.patch index 551bd3123c..c0411322d7 100644 --- a/mingw-w64-python-pywin32/003-experimental-fixes.patch +++ b/mingw-w64-python-pywin32/001-compile-and-setup-fixes.patch @@ -1,6 +1,24 @@ -diff -aur 002/setup.py 003/setup.py ---- 002/setup.py 2015-04-04 23:19:27.556464900 -0300 -+++ 003/setup.py 2015-04-07 21:23:21.056866600 -0300 +diff -aur 000/setup.py 001/setup.py +--- 000/setup.py 2015-04-09 21:00:48.725278100 -0300 ++++ 001/setup.py 2015-04-09 21:02:02.350399800 -0300 +@@ -224,7 +224,7 @@ + # languishing and will probably never be fixed for Python 2.6... + if sys.version_info > (2,6): + from distutils.spawn import spawn +- from distutils.msvc9compiler import MSVCCompiler ++ from distutils.msvccompiler import MSVCCompiler + MSVCCompiler._orig_spawn = MSVCCompiler.spawn + MSVCCompiler._orig_link = MSVCCompiler.link + +@@ -293,7 +293,7 @@ + MSVCCompiler.link = monkeypatched_link + + +-sdk_dir = find_platform_sdk_dir() ++sdk_dir = find_platform_sdk_dir() or '' + + class WinExt (Extension): + # Base class for all win32 extensions, with some predefined @@ -304,7 +304,7 @@ include_dirs=[], define_macros=None, @@ -10,15 +28,17 @@ diff -aur 002/setup.py 003/setup.py libraries="", runtime_library_dirs=None, extra_objects=None, -@@ -340,6 +340,7 @@ +@@ -340,6 +340,9 @@ # Some of our swigged files behave differently in distutils vs # MSVC based builds. Always define DISTUTILS_BUILD so they can tell. define_macros = define_macros or [] + define_macros.append(("_WIN32_WINNT", 0x0600)) - define_macros.append(("UNICODE", None)) - define_macros.append(("_UNICODE", None)) ++ define_macros.append(("UNICODE", None)) ++ define_macros.append(("_UNICODE", None)) define_macros.append(("DISTUTILS_BUILD", None)) -@@ -693,7 +694,7 @@ + define_macros.append(("_CRT_SECURE_NO_WARNINGS", None)) + self.pch_header = pch_header +@@ -691,7 +694,7 @@ def finalize_options(self): build_ext.finalize_options(self) @@ -27,7 +47,17 @@ diff -aur 002/setup.py 003/setup.py # The pywintypes library is created in the build_temp # directory, so we need to add this to library_dirs self.library_dirs.append(self.build_temp) -@@ -978,6 +979,9 @@ +@@ -865,7 +868,8 @@ + log.debug("Looked for %s in %s", lib, look_dirs) + return "No library '%s'" % lib + self.found_libraries[lib.lower()] = found +- patched_libs.append(os.path.splitext(os.path.basename(found))[0]) ++ lib_name = re.sub(r'^lib(.*)\.a', r'\1', os.path.basename(found)) ++ patched_libs.append(os.path.splitext(lib_name)[0]) + + if ext.platforms and self.plat_name not in ext.platforms: + return "Only available on platforms %s" % (ext.platforms,) +@@ -975,6 +979,9 @@ if not self.compiler.initialized: self.compiler.initialize() @@ -37,7 +67,16 @@ diff -aur 002/setup.py 003/setup.py if sdk_dir: self._fixup_sdk_dirs() -@@ -1598,7 +1602,7 @@ +@@ -1226,7 +1233,7 @@ + # XXX This has to be changed for mingw32 + # Get the .lib files we need. This is limited to pywintypes, + # pythoncom and win32ui - but the first 2 have special names +- extra = self.debug and "_d.lib" or ".lib" ++ extra = self.debug and "_d.def" or ".def" + if ext.name in ("pywintypes", "pythoncom"): + # The import libraries are created as PyWinTypes23.lib, but + # are expected to be pywintypes.lib. +@@ -1595,7 +1602,7 @@ win32/src/win32crypt/PyCRYPTPROV.cpp win32/src/win32crypt/PyCTL_CONTEXT.cpp """), @@ -46,7 +85,7 @@ diff -aur 002/setup.py 003/setup.py win32/src/win32file.i win32/src/win32file_comm.cpp """), -@@ -1655,7 +1659,7 @@ +@@ -1652,7 +1659,7 @@ sources = info[4].split() extra_compile_args = [] ext = WinExt_win32(name, @@ -55,7 +94,7 @@ diff -aur 002/setup.py 003/setup.py extra_compile_args = extra_compile_args, windows_h_version = windows_h_ver, sources = sources, -@@ -1668,7 +1672,7 @@ +@@ -1665,7 +1672,7 @@ sources = """ win32\\src\\win32evtlog_messages.mc win32\\src\\win32evtlog.i """.split(), @@ -64,7 +103,7 @@ diff -aur 002/setup.py 003/setup.py delay_load_libraries="wevtapi", windows_h_version=0x0600 ), -@@ -1704,7 +1708,7 @@ +@@ -1701,7 +1708,7 @@ # winxptheme WinExt_win32("_winxptheme", sources = ["win32/src/_winxptheme.i"], @@ -73,10 +112,9 @@ diff -aur 002/setup.py 003/setup.py windows_h_version=0x0500, ), ] -Only in 003/SWIG/swig_lib: 003-experimental-fixes.patch -diff -aur 002/win32/src/odbc.cpp 003/win32/src/odbc.cpp ---- 002/win32/src/odbc.cpp 2013-06-13 17:40:32.000000000 -0300 -+++ 003/win32/src/odbc.cpp 2015-04-05 03:57:23.758258600 -0300 +diff -aur 000/win32/src/odbc.cpp 001/win32/src/odbc.cpp +--- 000/win32/src/odbc.cpp 2015-04-09 21:00:49.053401800 -0300 ++++ 001/win32/src/odbc.cpp 2015-04-09 21:02:02.366025800 -0300 @@ -13,6 +13,7 @@ #include #include @@ -170,9 +208,9 @@ diff -aur 002/win32/src/odbc.cpp 003/win32/src/odbc.cpp {"description", T_OBJECT, offsetof(cursorObject, description), READONLY}, {"error", T_OBJECT, offsetof(cursorObject, cursorError), READONLY}, {NULL} -diff -aur 002/win32/src/PerfMon/perfmondata.cpp 003/win32/src/PerfMon/perfmondata.cpp ---- 002/win32/src/PerfMon/perfmondata.cpp 2015-04-04 23:19:27.572089900 -0300 -+++ 003/win32/src/PerfMon/perfmondata.cpp 2015-04-04 23:20:04.556532700 -0300 +diff -aur 000/win32/src/PerfMon/perfmondata.cpp 001/win32/src/PerfMon/perfmondata.cpp +--- 000/win32/src/PerfMon/perfmondata.cpp 2015-04-09 21:00:48.772153700 -0300 ++++ 001/win32/src/PerfMon/perfmondata.cpp 2015-04-09 21:02:02.366025800 -0300 @@ -89,9 +89,9 @@ // these are used to insure that the data collection functions // accessed by Perflib will have the correct calling format. @@ -186,9 +224,71 @@ diff -aur 002/win32/src/PerfMon/perfmondata.cpp 003/win32/src/PerfMon/perfmondat TCHAR szFullModulePath[MAX_PATH]; TCHAR szModuleName[MAX_PATH]; // will point into the buffer above. -diff -aur 002/win32/src/PyWinTypes.h 003/win32/src/PyWinTypes.h ---- 002/win32/src/PyWinTypes.h 2013-06-13 17:40:32.000000000 -0300 -+++ 003/win32/src/PyWinTypes.h 2015-04-07 10:14:43.895393100 -0300 +@@ -445,7 +445,7 @@ + --*/ + { + HKEY hAppKey; +- TCHAR LogLevelKeyName[] = _T("SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\Perflib"); ++ TCHAR LogLevelKeyName[] = _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib"); + + TCHAR LogLevelValueName[] = _T("EventLogLevel"); + LONG lStatus; +diff -aur 000/win32/src/PySECURITY_DESCRIPTOR.cpp 001/win32/src/PySECURITY_DESCRIPTOR.cpp +--- 000/win32/src/PySECURITY_DESCRIPTOR.cpp 2015-04-09 21:00:48.819029400 -0300 ++++ 001/win32/src/PySECURITY_DESCRIPTOR.cpp 2015-04-09 21:01:55.881645000 -0300 +@@ -5,6 +5,7 @@ + #include "PyWinObjects.h" + #include "PySecurityObjects.h" + #include "structmember.h" ++#include + + #ifndef NO_PYWINTYPES_SECURITY + BOOL (WINAPI *setsecuritydescriptorcontrol)(PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL)=NULL; +@@ -786,7 +787,7 @@ + { + ob_type = &PySECURITY_DESCRIPTORType; + _Py_NewReference(this); +- cb = max(cb, SECURITY_DESCRIPTOR_MIN_LENGTH); ++ cb = std::max((long long unsigned int)cb, SECURITY_DESCRIPTOR_MIN_LENGTH); + PSECURITY_DESCRIPTOR psd = malloc(cb); + this->m_psd=NULL; + if (::InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION)) +diff -aur 000/win32/src/PySecurityObjects.h 001/win32/src/PySecurityObjects.h +--- 000/win32/src/PySecurityObjects.h 2015-04-09 21:00:48.850278300 -0300 ++++ 001/win32/src/PySecurityObjects.h 2015-04-09 21:01:55.881645000 -0300 +@@ -121,7 +121,7 @@ + static PyObject *GetSubAuthorityCount(PyObject *self, PyObject *args); + static PyObject *GetSubAuthority(PyObject *self, PyObject *args); + static PyObject *GetSidIdentifierAuthority(PyObject *self, PyObject *args); +- static struct PyMethodDef PySID::methods[]; ++ static struct PyMethodDef methods[]; + + protected: + PSID m_psid; +@@ -159,7 +159,7 @@ + /* Python support */ + int compare(PyObject *ob); + static void deallocFunc(PyObject *ob); +- static struct PyMethodDef PyACL::methods[]; ++ static struct PyMethodDef methods[]; + + static PyObject *Initialize(PyObject *self, PyObject *args); + static PyObject *IsValid(PyObject *self, PyObject *args); +diff -aur 000/win32/src/PyWinObjects.h 001/win32/src/PyWinObjects.h +--- 000/win32/src/PyWinObjects.h 2015-04-09 21:00:48.881528000 -0300 ++++ 001/win32/src/PyWinObjects.h 2015-04-09 21:01:55.881645000 -0300 +@@ -52,7 +52,7 @@ + PyObject *str(); + PyObject *repr(); + int compare(PyObject *ob); +- PyObject *PyTime::richcompare(PyObject *other, int op); ++ PyObject *richcompare(PyObject *other, int op); + + int print(FILE *fp, int flags); + Py_hash_t hash(void); +diff -aur 000/win32/src/PyWinTypes.h 001/win32/src/PyWinTypes.h +--- 000/win32/src/PyWinTypes.h 2015-04-09 21:00:48.944027900 -0300 ++++ 001/win32/src/PyWinTypes.h 2015-04-09 21:02:02.381651500 -0300 @@ -796,7 +796,7 @@ // A helper for simple exception handling. @@ -198,9 +298,21 @@ diff -aur 002/win32/src/PyWinTypes.h 003/win32/src/PyWinTypes.h #define PYWINTYPES_TRY try #else #define PYWINTYPES_TRY __try -diff -aur 002/win32/src/win32crypt/PyCRYPTPROV.cpp 003/win32/src/win32crypt/PyCRYPTPROV.cpp ---- 002/win32/src/win32crypt/PyCRYPTPROV.cpp 2014-01-25 15:15:48.000000000 -0200 -+++ 003/win32/src/win32crypt/PyCRYPTPROV.cpp 2015-04-05 17:34:27.360286600 -0300 +diff -aur 000/win32/src/PyWinTypesmodule.cpp 001/win32/src/PyWinTypesmodule.cpp +--- 000/win32/src/PyWinTypesmodule.cpp 2015-04-09 21:00:48.990903200 -0300 ++++ 001/win32/src/PyWinTypesmodule.cpp 2015-04-09 21:01:55.897264900 -0300 +@@ -1139,7 +1139,7 @@ + } + + // Function to format a python traceback into a character string. +-#define GPEM_ERROR(what) {errorMsg = "";goto done;} ++#define GPEM_ERROR(what) {errorMsg = "";goto done;} + char *GetPythonTraceback(PyObject *exc_type, PyObject *exc_value, PyObject *exc_tb) + { + // Sleep (30000); // Time enough to attach the debugger (barely) +diff -aur 000/win32/src/win32crypt/PyCRYPTPROV.cpp 001/win32/src/win32crypt/PyCRYPTPROV.cpp +--- 000/win32/src/win32crypt/PyCRYPTPROV.cpp 2015-04-09 21:00:49.100277500 -0300 ++++ 001/win32/src/win32crypt/PyCRYPTPROV.cpp 2015-04-09 21:02:02.381651500 -0300 @@ -1,4 +1,5 @@ // @doc +#include @@ -216,9 +328,9 @@ diff -aur 002/win32/src/win32crypt/PyCRYPTPROV.cpp 003/win32/src/win32crypt/PyCR if (CryptGenRandom(hcryptprov, dwLen, pbBuffer)) ret=PyString_FromStringAndSize((char *)pbBuffer, dwLen); else -diff -aur 002/win32/src/win32crypt/win32cryptmodule.cpp 003/win32/src/win32crypt/win32cryptmodule.cpp ---- 002/win32/src/win32crypt/win32cryptmodule.cpp 2014-01-25 15:15:48.000000000 -0200 -+++ 003/win32/src/win32crypt/win32cryptmodule.cpp 2015-04-05 22:56:26.696003000 -0300 +diff -aur 000/win32/src/win32crypt/win32cryptmodule.cpp 001/win32/src/win32crypt/win32cryptmodule.cpp +--- 000/win32/src/win32crypt/win32cryptmodule.cpp 2015-04-09 21:00:49.194027800 -0300 ++++ 001/win32/src/win32crypt/win32cryptmodule.cpp 2015-04-09 21:02:02.397275800 -0300 @@ -596,44 +596,37 @@ pvPara=(void *)&cssrp; } @@ -294,9 +406,9 @@ diff -aur 002/win32/src/win32crypt/win32cryptmodule.cpp 003/win32/src/win32crypt } } -diff -aur 002/win32/src/win32evtlog.i 003/win32/src/win32evtlog.i ---- 002/win32/src/win32evtlog.i 2014-04-26 15:21:40.000000000 -0300 -+++ 003/win32/src/win32evtlog.i 2015-04-07 09:32:48.778717700 -0300 +diff -aur 000/win32/src/win32evtlog.i 001/win32/src/win32evtlog.i +--- 000/win32/src/win32evtlog.i 2015-04-09 21:00:49.256528100 -0300 ++++ 001/win32/src/win32evtlog.i 2015-04-09 21:02:02.397275800 -0300 @@ -997,6 +997,14 @@ } PyCFunction pfnPyEvtUpdateBookmark = (PyCFunction) PyEvtUpdateBookmark; @@ -312,9 +424,9 @@ diff -aur 002/win32/src/win32evtlog.i 003/win32/src/win32evtlog.i PyObject *PyWinObject_FromEVT_VARIANT(PEVT_VARIANT val) { if (val->Type & EVT_VARIANT_TYPE_ARRAY){ -diff -aur 002/win32/src/win32file.i 003/win32/src/win32file.i ---- 002/win32/src/win32file.i 2013-06-13 17:40:32.000000000 -0300 -+++ 003/win32/src/win32file.i 2015-04-07 07:46:40.178640500 -0300 +diff -aur 000/win32/src/win32file.i 001/win32/src/win32file.i +--- 000/win32/src/win32file.i 2015-04-09 21:00:49.459654600 -0300 ++++ 001/win32/src/win32file.i 2015-04-09 21:02:02.412900800 -0300 @@ -1404,11 +1404,11 @@ // the filename is exactly 1 byte! Not clear the best way to // check this, but this works for now - is it at least the size of @@ -329,9 +441,9 @@ diff -aur 002/win32/src/win32file.i 003/win32/src/win32file.i if (!fname) { Py_DECREF(ret); return NULL; -diff -aur 002/win32/src/win32file_comm.cpp 003/win32/src/win32file_comm.cpp ---- 002/win32/src/win32file_comm.cpp 2011-03-19 10:51:22.000000000 -0300 -+++ 003/win32/src/win32file_comm.cpp 2015-04-06 20:20:20.347135800 -0300 +diff -aur 000/win32/src/win32file_comm.cpp 001/win32/src/win32file_comm.cpp +--- 000/win32/src/win32file_comm.cpp 2015-04-09 21:00:49.490903600 -0300 ++++ 001/win32/src/win32file_comm.cpp 2015-04-09 21:02:02.412900800 -0300 @@ -175,7 +175,7 @@ #define GET_BITFIELD_ENTRY(bitfield_name) \ @@ -368,9 +480,9 @@ diff -aur 002/win32/src/win32file_comm.cpp 003/win32/src/win32file_comm.cpp return 0; \ } \ -diff -aur 002/win32/src/win32inet.i 003/win32/src/win32inet.i ---- 002/win32/src/win32inet.i 2011-03-19 10:51:22.000000000 -0300 -+++ 003/win32/src/win32inet.i 2015-04-07 19:57:38.467340900 -0300 +diff -aur 000/win32/src/win32inet.i 001/win32/src/win32inet.i +--- 000/win32/src/win32inet.i 2015-04-09 21:00:49.569028200 -0300 ++++ 001/win32/src/win32inet.i 2015-04-09 21:02:02.428526500 -0300 @@ -4,9 +4,26 @@ %{ // #define UNICODE @@ -407,9 +519,9 @@ diff -aur 002/win32/src/win32inet.i 003/win32/src/win32inet.i Py_DECREF(dummy_tuple); PyWinObject_FreeTCHAR(GroupName); if (OwnerStorage) -diff -aur 002/win32/src/win32net/win32net.h 003/win32/src/win32net/win32net.h ---- 002/win32/src/win32net/win32net.h 2011-03-19 10:51:22.000000000 -0300 -+++ 003/win32/src/win32net/win32net.h 2015-04-06 20:45:25.770423400 -0300 +diff -aur 000/win32/src/win32net/win32net.h 001/win32/src/win32net/win32net.h +--- 000/win32/src/win32net/win32net.h 2015-04-09 21:00:49.600278800 -0300 ++++ 001/win32/src/win32net/win32net.h 2015-04-09 21:02:02.428526500 -0300 @@ -62,15 +62,15 @@ #if WINVER >= 0x0500 @@ -430,9 +542,9 @@ diff -aur 002/win32/src/win32net/win32net.h 003/win32/src/win32net/win32net.h +extern "C" NetValidatePasswordPolicyFreefunc pfnNetValidatePasswordPolicyFree; #endif // WINVER -diff -aur 002/win32/src/win32pdhmodule.cpp 003/win32/src/win32pdhmodule.cpp ---- 002/win32/src/win32pdhmodule.cpp 2012-06-22 11:08:42.000000000 -0300 -+++ 003/win32/src/win32pdhmodule.cpp 2015-04-06 21:19:19.686255800 -0300 +diff -aur 000/win32/src/win32pdhmodule.cpp 001/win32/src/win32pdhmodule.cpp +--- 000/win32/src/win32pdhmodule.cpp 2015-04-09 21:00:49.662779100 -0300 ++++ 001/win32/src/win32pdhmodule.cpp 2015-04-09 21:02:02.444150800 -0300 @@ -11,6 +11,7 @@ ******************************************************************/ @@ -459,9 +571,9 @@ diff -aur 002/win32/src/win32pdhmodule.cpp 003/win32/src/win32pdhmodule.cpp myCfg.cfg.szReturnPathBuffer = (TCHAR *)malloc(myCfg.cfg.cchReturnPathLength * sizeof(TCHAR)); if (myCfg.cfg.szReturnPathBuffer == NULL){ PyErr_NoMemory(); -diff -aur 002/win32/src/win32popen.cpp 003/win32/src/win32popen.cpp ---- 002/win32/src/win32popen.cpp 2013-06-13 17:40:32.000000000 -0300 -+++ 003/win32/src/win32popen.cpp 2015-04-07 04:17:39.326047200 -0300 +diff -aur 000/win32/src/win32popen.cpp 001/win32/src/win32popen.cpp +--- 000/win32/src/win32popen.cpp 2015-04-09 21:00:49.709655500 -0300 ++++ 001/win32/src/win32popen.cpp 2015-04-09 21:02:02.444150800 -0300 @@ -166,19 +166,27 @@ { PROCESS_INFORMATION piProcInfo; @@ -497,9 +609,9 @@ diff -aur 002/win32/src/win32popen.cpp 003/win32/src/win32popen.cpp } // Could be an else here to try cmd.exe / command.com in the path // Now we'll just error out.. -diff -aur 002/win32/src/win32rasmodule.cpp 003/win32/src/win32rasmodule.cpp ---- 002/win32/src/win32rasmodule.cpp 2012-01-02 15:42:24.000000000 -0200 -+++ 003/win32/src/win32rasmodule.cpp 2015-04-07 04:46:43.333884000 -0300 +diff -aur 000/win32/src/win32rasmodule.cpp 001/win32/src/win32rasmodule.cpp +--- 000/win32/src/win32rasmodule.cpp 2015-04-09 21:00:49.756528400 -0300 ++++ 001/win32/src/win32rasmodule.cpp 2015-04-09 21:02:02.459777500 -0300 @@ -463,7 +463,7 @@ if (obCallback==Py_None) { pNotification = NULL; @@ -509,9 +621,9 @@ diff -aur 002/win32/src/win32rasmodule.cpp 003/win32/src/win32rasmodule.cpp notType = 1; } else if (PyInt_Check(obCallback)) { if (!PyWinLong_AsVoidPtr(obCallback, &pNotification)) -diff -aur 002/win32/src/win32security.i 003/win32/src/win32security.i ---- 002/win32/src/win32security.i 2012-09-24 10:17:38.000000000 -0300 -+++ 003/win32/src/win32security.i 2015-04-07 05:17:31.777289500 -0300 +diff -aur 000/win32/src/win32security.i 001/win32/src/win32security.i +--- 000/win32/src/win32security.i 2015-04-09 21:00:49.912778600 -0300 ++++ 001/win32/src/win32security.i 2015-04-09 21:02:02.459777500 -0300 @@ -3563,9 +3563,9 @@ return FALSE; } @@ -540,9 +652,9 @@ diff -aur 002/win32/src/win32security.i 003/win32/src/win32security.i } %} -diff -aur 002/win32/src/win32service.i 003/win32/src/win32service.i ---- 002/win32/src/win32service.i 2012-09-24 10:17:38.000000000 -0300 -+++ 003/win32/src/win32service.i 2015-04-07 08:21:56.348455600 -0300 +diff -aur 000/win32/src/win32service.i 001/win32/src/win32service.i +--- 000/win32/src/win32service.i 2015-04-09 21:00:49.990904900 -0300 ++++ 001/win32/src/win32service.i 2015-04-09 21:02:02.475400700 -0300 @@ -57,6 +57,13 @@ if (fp!=NULL) fpEnumServicesStatusEx=(EnumServicesStatusExfunc)fp; @@ -557,9 +669,9 @@ diff -aur 002/win32/src/win32service.i 003/win32/src/win32service.i %} %{ -diff -aur 002/win32/src/win32trace.cpp 003/win32/src/win32trace.cpp ---- 002/win32/src/win32trace.cpp 2011-03-19 10:51:22.000000000 -0300 -+++ 003/win32/src/win32trace.cpp 2015-04-07 06:33:18.264396500 -0300 +diff -aur 000/win32/src/win32trace.cpp 001/win32/src/win32trace.cpp +--- 000/win32/src/win32trace.cpp 2015-04-09 21:00:50.022154900 -0300 ++++ 001/win32/src/win32trace.cpp 2015-04-09 21:02:02.475400700 -0300 @@ -30,6 +30,7 @@ */ diff --git a/mingw-w64-python-pywin32/001-experimental-fixes.patch b/mingw-w64-python-pywin32/001-experimental-fixes.patch deleted file mode 100644 index 4ec99903b6..0000000000 --- a/mingw-w64-python-pywin32/001-experimental-fixes.patch +++ /dev/null @@ -1,86 +0,0 @@ -diff --strip-trailing-cr -aur old/setup.py 001/setup.py ---- old/setup.py 2014-05-03 11:37:18.000000000 -0300 -+++ 001/setup.py 2015-03-25 23:28:00.347036000 -0300 -@@ -224,7 +224,7 @@ - # languishing and will probably never be fixed for Python 2.6... - if sys.version_info > (2,6): - from distutils.spawn import spawn -- from distutils.msvc9compiler import MSVCCompiler -+ from distutils.msvccompiler import MSVCCompiler - MSVCCompiler._orig_spawn = MSVCCompiler.spawn - MSVCCompiler._orig_link = MSVCCompiler.link - -@@ -293,7 +293,7 @@ - MSVCCompiler.link = monkeypatched_link - - --sdk_dir = find_platform_sdk_dir() -+sdk_dir = find_platform_sdk_dir() or '' - - class WinExt (Extension): - # Base class for all win32 extensions, with some predefined -diff --strip-trailing-cr -aur old/win32/src/PySECURITY_DESCRIPTOR.cpp 001/win32/src/PySECURITY_DESCRIPTOR.cpp ---- old/win32/src/PySECURITY_DESCRIPTOR.cpp 2011-03-19 10:51:22.000000000 -0300 -+++ 001/win32/src/PySECURITY_DESCRIPTOR.cpp 2015-03-25 23:35:09.176365400 -0300 -@@ -5,6 +5,7 @@ - #include "PyWinObjects.h" - #include "PySecurityObjects.h" - #include "structmember.h" -+#include - - #ifndef NO_PYWINTYPES_SECURITY - BOOL (WINAPI *setsecuritydescriptorcontrol)(PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL)=NULL; -@@ -786,7 +787,7 @@ - { - ob_type = &PySECURITY_DESCRIPTORType; - _Py_NewReference(this); -- cb = max(cb, SECURITY_DESCRIPTOR_MIN_LENGTH); -+ cb = std::max((long long unsigned int)cb, SECURITY_DESCRIPTOR_MIN_LENGTH); - PSECURITY_DESCRIPTOR psd = malloc(cb); - this->m_psd=NULL; - if (::InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION)) -diff --strip-trailing-cr -aur old/win32/src/PySecurityObjects.h 001/win32/src/PySecurityObjects.h ---- old/win32/src/PySecurityObjects.h 2011-03-19 10:51:22.000000000 -0300 -+++ 001/win32/src/PySecurityObjects.h 2015-03-25 23:29:45.425492600 -0300 -@@ -121,7 +121,7 @@ - static PyObject *GetSubAuthorityCount(PyObject *self, PyObject *args); - static PyObject *GetSubAuthority(PyObject *self, PyObject *args); - static PyObject *GetSidIdentifierAuthority(PyObject *self, PyObject *args); -- static struct PyMethodDef PySID::methods[]; -+ static struct PyMethodDef methods[]; - - protected: - PSID m_psid; -@@ -159,7 +159,7 @@ - /* Python support */ - int compare(PyObject *ob); - static void deallocFunc(PyObject *ob); -- static struct PyMethodDef PyACL::methods[]; -+ static struct PyMethodDef methods[]; - - static PyObject *Initialize(PyObject *self, PyObject *args); - static PyObject *IsValid(PyObject *self, PyObject *args); -diff --strip-trailing-cr -aur old/win32/src/PyWinObjects.h 001/win32/src/PyWinObjects.h ---- old/win32/src/PyWinObjects.h 2011-03-19 10:51:22.000000000 -0300 -+++ 001/win32/src/PyWinObjects.h 2015-03-25 23:29:25.800392400 -0300 -@@ -52,7 +52,7 @@ - PyObject *str(); - PyObject *repr(); - int compare(PyObject *ob); -- PyObject *PyTime::richcompare(PyObject *other, int op); -+ PyObject *richcompare(PyObject *other, int op); - - int print(FILE *fp, int flags); - Py_hash_t hash(void); -diff --strip-trailing-cr -aur old/win32/src/PyWinTypesmodule.cpp 001/win32/src/PyWinTypesmodule.cpp ---- old/win32/src/PyWinTypesmodule.cpp 2012-09-24 10:17:36.000000000 -0300 -+++ 001/win32/src/PyWinTypesmodule.cpp 2015-03-25 23:38:45.812576700 -0300 -@@ -1139,7 +1139,7 @@ - } - - // Function to format a python traceback into a character string. --#define GPEM_ERROR(what) {errorMsg = "";goto done;} -+#define GPEM_ERROR(what) {errorMsg = "";goto done;} - char *GetPythonTraceback(PyObject *exc_type, PyObject *exc_value, PyObject *exc_tb) - { - // Sleep (30000); // Time enough to attach the debugger (barely) diff --git a/mingw-w64-python-pywin32/002-experimental-fixes.patch b/mingw-w64-python-pywin32/002-experimental-fixes.patch deleted file mode 100644 index 91ad4e2fe5..0000000000 --- a/mingw-w64-python-pywin32/002-experimental-fixes.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff -aur 001/setup.py 002/setup.py ---- 001/setup.py 2015-03-31 16:31:40.344437400 -0300 -+++ 002/setup.py 2015-03-31 18:14:09.612059600 -0300 -@@ -340,6 +340,8 @@ - # Some of our swigged files behave differently in distutils vs - # MSVC based builds. Always define DISTUTILS_BUILD so they can tell. - define_macros = define_macros or [] -+ define_macros.append(("UNICODE", None)) -+ define_macros.append(("_UNICODE", None)) - define_macros.append(("DISTUTILS_BUILD", None)) - define_macros.append(("_CRT_SECURE_NO_WARNINGS", None)) - self.pch_header = pch_header -@@ -865,7 +867,8 @@ - log.debug("Looked for %s in %s", lib, look_dirs) - return "No library '%s'" % lib - self.found_libraries[lib.lower()] = found -- patched_libs.append(os.path.splitext(os.path.basename(found))[0]) -+ lib_name = re.sub(r'^lib(.*)\.a', r'\1', os.path.basename(found)) -+ patched_libs.append(os.path.splitext(lib_name)[0]) - - if ext.platforms and self.plat_name not in ext.platforms: - return "Only available on platforms %s" % (ext.platforms,) -@@ -1226,7 +1229,7 @@ - # XXX This has to be changed for mingw32 - # Get the .lib files we need. This is limited to pywintypes, - # pythoncom and win32ui - but the first 2 have special names -- extra = self.debug and "_d.lib" or ".lib" -+ extra = self.debug and "_d.def" or ".def" - if ext.name in ("pywintypes", "pythoncom"): - # The import libraries are created as PyWinTypes23.lib, but - # are expected to be pywintypes.lib. -diff -aur 001/win32/src/PerfMon/perfmondata.cpp 002/win32/src/PerfMon/perfmondata.cpp ---- 001/win32/src/PerfMon/perfmondata.cpp 2011-03-19 10:51:22.000000000 -0300 -+++ 002/win32/src/PerfMon/perfmondata.cpp 2015-03-31 18:17:40.378112100 -0300 -@@ -445,7 +445,7 @@ - --*/ - { - HKEY hAppKey; -- TCHAR LogLevelKeyName[] = _T("SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\Perflib"); -+ TCHAR LogLevelKeyName[] = _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib"); - - TCHAR LogLevelValueName[] = _T("EventLogLevel"); - LONG lStatus; diff --git a/mingw-w64-python-pywin32/PKGBUILD b/mingw-w64-python-pywin32/PKGBUILD index 7d6f8fa911..416a074afa 100644 --- a/mingw-w64-python-pywin32/PKGBUILD +++ b/mingw-w64-python-pywin32/PKGBUILD @@ -12,21 +12,14 @@ pkgrel=1 makedepends=(${MINGW_PACKAGE_PREFIX}-python2 ${MINGW_PACKAGE_PREFIX}-python3 rsync) pkgname=(${MINGW_PACKAGE_PREFIX}-python2-${_realname} ${MINGW_PACKAGE_PREFIX}-python3-${_realname}) groups=(${MINGW_PACKAGE_PREFIX}) - source=("http://prdownloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.zip" - 001-experimental-fixes.patch - 002-experimental-fixes.patch - 003-experimental-fixes.patch) + 001-compile-and-setup-fixes.patch) sha1sums=('1eb8039f9e15f53f56a9e1b54f00cd2c0f63ff8e' - '3a42fd3d639db7ec3cd1baa130a047dd592a93fe' - '25233c64a976605d2a4d83beaf6b0c69be736014' - '44f19d4ae37e32baf00f8e0a9de7f91928aa8e50') + '24ee63ecc8914d05a9ae4035d5c854517ff260a9') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 < "${startdir}"/001-experimental-fixes.patch - patch -p1 < "${startdir}"/002-experimental-fixes.patch - patch -p1 < "${startdir}"/003-experimental-fixes.patch + patch -p1 < "${startdir}"/001-compile-and-setup-fixes.patch } build() { From 2ac695750147883378d64cc89969ba2bc204fc30 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Thu, 9 Apr 2015 21:19:00 -0300 Subject: [PATCH 0841/2060] libmongoose: New package. --- mingw-w64-libmongoose-git/PKGBUILD | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 mingw-w64-libmongoose-git/PKGBUILD diff --git a/mingw-w64-libmongoose-git/PKGBUILD b/mingw-w64-libmongoose-git/PKGBUILD new file mode 100644 index 0000000000..c5f8f3b417 --- /dev/null +++ b/mingw-w64-libmongoose-git/PKGBUILD @@ -0,0 +1,39 @@ +# Maintainer: Renato Silva + +_realname='libmongoose' +url='https://github.com/cesanta/mongoose' +pkgdesc=' Embedded web server for C/C++ (mingw-w64)' +license=('GPL2') +arch=('any') +pkgver=r1764.eef70aa +pkgrel=1 + +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) +provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) +conflicts=(${MINGW_PACKAGE_PREFIX}-${_realname}) +makedepends=(${MINGW_PACKAGE_PREFIX}-gcc) +source=(${_realname}::'git+https://github.com/cesanta/mongoose') +sha1sums=('SKIP') + +pkgver() { + cd "${srcdir}/${_realname}" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +build() { + cd "${srcdir}/${_realname}" + # See https://github.com/cesanta/mongoose/issues/326 + # See https://github.com/cesanta/mongoose/issues/506 + gcc -c -DFD_SETSIZE=1024 mongoose.c -o mongoose.o + ar rcs libmongoose.a mongoose.o + gcc -shared -o libmongoose.dll mongoose.o -Wl,--out-implib,libmongoose.dll.a -lws2_32 +} + +package() { + cd "${srcdir}/${_realname}" + install -D -m644 mongoose.h "${pkgdir}${MINGW_PREFIX}/include/mongoose.h" + install -D -m644 libmongoose.a "${pkgdir}${MINGW_PREFIX}/lib/libmongoose.a" + install -D -m644 libmongoose.dll.a "${pkgdir}${MINGW_PREFIX}/lib/libmongoose.dll.a" + install -D -m755 libmongoose.dll "${pkgdir}${MINGW_PREFIX}/bin/libmongoose.dll" + install -D -m644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From 3f5b8e2d69503c403f83f872bff5d6901b1aca62 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 10 Apr 2015 09:25:02 +0300 Subject: [PATCH 0842/2060] gnutls: Update to 3.4.0 --- .../0001-add-missing-define.patch | 11 ++++++ .../0002-fix-duplicate-entries.patch | 36 +++++++++++++++++++ mingw-w64-gnutls/PKGBUILD | 29 ++++++++++----- 3 files changed, 67 insertions(+), 9 deletions(-) create mode 100644 mingw-w64-gnutls/0001-add-missing-define.patch create mode 100644 mingw-w64-gnutls/0002-fix-duplicate-entries.patch diff --git a/mingw-w64-gnutls/0001-add-missing-define.patch b/mingw-w64-gnutls/0001-add-missing-define.patch new file mode 100644 index 0000000000..b76a180d40 --- /dev/null +++ b/mingw-w64-gnutls/0001-add-missing-define.patch @@ -0,0 +1,11 @@ +--- gnutls-3.4.0/lib/includes/gnutls/gnutls.h.in.orig 2015-04-09 23:38:42.018400000 +0300 ++++ gnutls-3.4.0/lib/includes/gnutls/gnutls.h.in 2015-04-09 23:39:31.860400000 +0300 +@@ -67,6 +67,8 @@ + #define GNUTLS_CIPHER_RIJNDAEL_CBC GNUTLS_CIPHER_AES_128_CBC + #define GNUTLS_CIPHER_ARCFOUR GNUTLS_CIPHER_ARCFOUR_128 + ++#define GNUTLS_INTERNAL_BUILD 1 ++ + #if !defined(GNUTLS_INTERNAL_BUILD) && defined(_WIN32) + # define _SYM_EXPORT __declspec(dllimport) + #else diff --git a/mingw-w64-gnutls/0002-fix-duplicate-entries.patch b/mingw-w64-gnutls/0002-fix-duplicate-entries.patch new file mode 100644 index 0000000000..2b76db5ca3 --- /dev/null +++ b/mingw-w64-gnutls/0002-fix-duplicate-entries.patch @@ -0,0 +1,36 @@ +From 7e63027a5caafa55dcca65c5b9bff3bf76c5a41c Mon Sep 17 00:00:00 2001 +From: Nikos Mavrogiannopoulos +Date: Thu, 9 Apr 2015 16:00:43 +0200 +Subject: [PATCH] remove duplicate entries from manpages Makefile + +--- + doc/manpages/Makefile.am | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/doc/manpages/Makefile.am b/doc/manpages/Makefile.am +index 8e793d3..68de757 100644 +--- a/doc/manpages/Makefile.am ++++ b/doc/manpages/Makefile.am +@@ -134,11 +134,8 @@ APIMANS += gnutls_certificate_get_peers.3 + APIMANS += gnutls_certificate_get_peers_subkey_id.3 + APIMANS += gnutls_certificate_get_trust_list.3 + APIMANS += gnutls_certificate_get_verify_flags.3 +-APIMANS += gnutls_certificate_get_verify_flags.3 +-APIMANS += gnutls_certificate_get_x509_crt.3 + APIMANS += gnutls_certificate_get_x509_crt.3 + APIMANS += gnutls_certificate_get_x509_key.3 +-APIMANS += gnutls_certificate_get_x509_key.3 + APIMANS += gnutls_certificate_send_x509_rdn_sequence.3 + APIMANS += gnutls_certificate_server_set_request.3 + APIMANS += gnutls_certificate_set_dh_params.3 +@@ -1101,7 +1098,7 @@ compare-makefile: + @echo "******************************************************************************" + @echo "If the following step fails copy $(srcdir)/doc/manpages/tmp-compare-makefile to doc/manpages/Makefile.am" + @echo "******************************************************************************" +- FUNCS=`cat $(top_srcdir)/lib/includes/gnutls/*.h | $(top_srcdir)/doc/scripts/getfuncs.pl|sort -d`; \ ++ FUNCS=`cat $(top_srcdir)/lib/includes/gnutls/*.h | $(top_srcdir)/doc/scripts/getfuncs.pl|sort -d|uniq`; \ + MANS=""; \ + for i in $$FUNCS; do \ + MANS="$$MANS\nAPIMANS += $$i.3"; \ +-- +libgit2 0.21.4 diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index a0caf18dc8..b34114cf1a 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -2,7 +2,7 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.3.14 +pkgver=3.4.0 pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') @@ -13,35 +13,45 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libtasn1" "${MINGW_PACKAGE_PREFIX}-gmp" "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-nettle" - "${MINGW_PACKAGE_PREFIX}-p11-kit" + "${MINGW_PACKAGE_PREFIX}-nettle>=3.1" + "${MINGW_PACKAGE_PREFIX}-p11-kit>=0.23.1" "${MINGW_PACKAGE_PREFIX}-libgnurx" #"${MINGW_PACKAGE_PREFIX}-unbound" ) + makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/${_realname}-${pkgver}.tar.xz{,.sig} +# Need remove "autogen" package before building. +source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*}/${_realname}-${pkgver}.tar.xz{,.sig} + 0001-add-missing-define.patch + 0002-fix-duplicate-entries.patch 0004-fix-gtkdoc.all.patch 0005-fix-strtok-conflict.mingw.patch) -md5sums=('7f4465f8c564cf9cb8f5cb38b909f7ca' +md5sums=('aa015c2666b031044edfb01b01980d84' 'SKIP' + '807a79513358a9f4123f62111f1eed59' + '516c3b60e5c2878a0af9f243fd4dac30' '86cfab6e7c2ccfcfd1dad9d5024627e3' '77287dc835afbb8cc4e9c4aa6b7adb7b') prepare() { cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i ${srcdir}/0001-add-missing-define.patch + patch -p1 -i ${srcdir}/0002-fix-duplicate-entries.patch #patch -p1 -i ${srcdir}/0004-fix-gtkdoc.all.patch #patch -p1 -i ${srcdir}/0005-fix-strtok-conflict.mingw.patch - #WANT_AUTOMAKE=latest autoreconf -fi -I m4 + WANT_AUTOMAKE=latest autoreconf -fi -I m4 } build() { - # Woraround for localtime_r functions - #CFLAGS+=" -DGNULIB_PORTCHECK=1" - #CXXFLAGS+=" -DGNULIB_PORTCHECK=1" + # Workaround for localtime_r functions + CFLAGS+=" -D_POSIX_C_SOURCE" + CXXFLAGS+=" -D_POSIX_C_SOURCE" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -58,6 +68,7 @@ build() { --enable-local-libopts \ --disable-guile \ --disable-libdane \ + --disable-tests \ gl_cv_double_slash_root=yes make From f080890e4bd0840ab2d467ca7770c0e49f9daf13 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 10 Apr 2015 09:26:01 +0300 Subject: [PATCH 0843/2060] gst-plugins-bad: Rebuild with nettle-3.1, gnutls-3.4.0 --- mingw-w64-gst-plugins-bad/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gst-plugins-bad/PKGBUILD b/mingw-w64-gst-plugins-bad/PKGBUILD index c44596d032..e0db39a18d 100644 --- a/mingw-w64-gst-plugins-bad/PKGBUILD +++ b/mingw-w64-gst-plugins-bad/PKGBUILD @@ -3,7 +3,7 @@ _realname=gst-plugins-bad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.5 -pkgrel=2 +pkgrel=3 pkgdesc="GStreamer Multimedia Framework Bad Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" @@ -86,12 +86,13 @@ build() { --enable-experimental \ --disable-gtk-doc \ --with-gtk=3.0 + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a } From 0d18c6dac205aa1001d10a96d670eb4eef2b6f5c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 10 Apr 2015 09:56:49 +0300 Subject: [PATCH 0844/2060] rtmpdump: Update to git SHA [a107cef]. Build with gnutls-3.4.0, nettle-3.1 --- mingw-w64-rtmpdump-git/0012-no-sbin.patch | 26 +++++++++++ .../0013-no-extra-dll.patch | 8 ++++ mingw-w64-rtmpdump-git/PKGBUILD | 46 +++++++++++-------- 3 files changed, 61 insertions(+), 19 deletions(-) create mode 100644 mingw-w64-rtmpdump-git/0012-no-sbin.patch create mode 100644 mingw-w64-rtmpdump-git/0013-no-extra-dll.patch diff --git a/mingw-w64-rtmpdump-git/0012-no-sbin.patch b/mingw-w64-rtmpdump-git/0012-no-sbin.patch new file mode 100644 index 0000000000..3c6cf059e7 --- /dev/null +++ b/mingw-w64-rtmpdump-git/0012-no-sbin.patch @@ -0,0 +1,26 @@ +--- rtmpdump/Makefile.orig 2015-04-10 09:39:49.033600000 +0300 ++++ rtmpdump/Makefile 2015-04-10 09:42:55.350600000 +0300 +@@ -25,11 +25,9 @@ + LDFLAGS=-Wall $(XLDFLAGS) + + bindir=$(prefix)/bin +-sbindir=$(prefix)/sbin + mandir=$(prefix)/share/man + + BINDIR=$(DESTDIR)$(bindir) +-SBINDIR=$(DESTDIR)$(sbindir) + MANDIR=$(DESTDIR)$(mandir) + + LIBS_posix= +@@ -59,9 +57,9 @@ + $(PROGS): $(LIBRTMP) + + install: $(PROGS) +- -mkdir -p $(BINDIR) $(SBINDIR) $(MANDIR)/man1 $(MANDIR)/man8 ++ -mkdir -p $(BINDIR) $(MANDIR)/man1 $(MANDIR)/man8 + cp rtmpdump$(EXT) $(BINDIR) +- cp rtmpgw$(EXT) rtmpsrv$(EXT) rtmpsuck$(EXT) $(SBINDIR) ++ cp rtmpgw$(EXT) rtmpsrv$(EXT) rtmpsuck$(EXT) $(BINDIR) + cp rtmpdump.1 $(MANDIR)/man1 + cp rtmpgw.8 $(MANDIR)/man8 + @cd librtmp; $(MAKE) install diff --git a/mingw-w64-rtmpdump-git/0013-no-extra-dll.patch b/mingw-w64-rtmpdump-git/0013-no-extra-dll.patch new file mode 100644 index 0000000000..0574bb5638 --- /dev/null +++ b/mingw-w64-rtmpdump-git/0013-no-extra-dll.patch @@ -0,0 +1,8 @@ +--- rtmpdump/librtmp/Makefile.orig 2015-04-10 09:42:13.667400000 +0300 ++++ rtmpdump/librtmp/Makefile 2015-04-10 09:51:38.129000000 +0300 +@@ -117,5 +117,4 @@ + install_so: librtmp$(SO_EXT) install_base + cp librtmp$(SO_EXT) $(SODIR) + $(INSTALL_IMPLIB) +- cd $(SODIR); ln -sf librtmp$(SO_EXT) librtmp.$(SOX) + diff --git a/mingw-w64-rtmpdump-git/PKGBUILD b/mingw-w64-rtmpdump-git/PKGBUILD index 814b3a714e..0d6af5610d 100644 --- a/mingw-w64-rtmpdump-git/PKGBUILD +++ b/mingw-w64-rtmpdump-git/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=rtmpdump - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r494.79459a2 +pkgver=r499.a107cef pkgrel=1 pkgdesc="A tool to download rtmp streams (mingw-w64)" arch=('any') @@ -11,21 +10,29 @@ url="http://rtmpdump.mplayerhq.hu/" license=('GPL2' 'LGPL2.1') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "git") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-openssl") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-gmp" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-nettle" + "${MINGW_PACKAGE_PREFIX}-zlib") options=('strip' 'staticlibs') source=("$_realname::git+git://git.ffmpeg.org/rtmpdump" - 0001-mingw.mingw.patch - 0002-no-fPIC.mingw.patch - 0003-better-w32-threading.all.patch - 0004-gnu_printf.all.patch - 0005-fix-unused-var-warning.all.patch - 0006-deprecated-gnutls-type.all.patch - 0007-cast-appropriately-for-nettle.all.patch - 0008-unused-variable-warning-fix.all.patch - 0009-correct-cast.all.patch - 0010-unused-variable-fix.all.patch - 0011-fix-parallel-install.all.patch) + 0001-mingw.mingw.patch + 0002-no-fPIC.mingw.patch + 0003-better-w32-threading.all.patch + 0004-gnu_printf.all.patch + 0005-fix-unused-var-warning.all.patch + 0006-deprecated-gnutls-type.all.patch + 0007-cast-appropriately-for-nettle.all.patch + 0008-unused-variable-warning-fix.all.patch + 0009-correct-cast.all.patch + 0010-unused-variable-fix.all.patch + 0011-fix-parallel-install.all.patch + 0012-no-sbin.patch + 0013-no-extra-dll.patch) md5sums=('SKIP' '7328df954e79584ec823b6c9fa99ae3b' '3db9a091da6004a3d3f6e8a19be41ba1' @@ -37,7 +44,9 @@ md5sums=('SKIP' '24789e1365e8331e795faa87a3c4fd3b' '3e6dca173d7aee3f520e587e3b6ffbe5' '1c60c612bc75cf001f9819e735291c2d' - '79cb1025e9c84f1bcda1e0c039dbf849') + '79cb1025e9c84f1bcda1e0c039dbf849' + '89c27956be34a69ad9e6b8ab75104033' + '3aac220f5b416d03808a9bc49ef135f2') pkgver() { cd "$srcdir/$_realname" @@ -57,6 +66,8 @@ prepare() { patch -p1 -i ${srcdir}/0009-correct-cast.all.patch patch -p1 -i ${srcdir}/0010-unused-variable-fix.all.patch patch -p1 -i ${srcdir}/0011-fix-parallel-install.all.patch + patch -p1 -i ${srcdir}/0012-no-sbin.patch + patch -p1 -i ${srcdir}/0013-no-extra-dll.patch } build() { @@ -69,7 +80,4 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" mkdir -p ${pkgdir}${MINGW_PREFIX}/lib make CC=gcc LD=ld AR=ar SYS=mingw prefix=${MINGW_PREFIX} mandir=${MINGW_PREFIX}/share/man DESTDIR="$pkgdir" install - - mv ${pkgdir}${MINGW_PREFIX}/sbin/* ${pkgdir}${MINGW_PREFIX}/bin/ - rm -r ${pkgdir}${MINGW_PREFIX}/sbin } From a475d3f0f827edf39b6f42e049bd9a8a6ffa9c74 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 10 Apr 2015 11:40:47 +0300 Subject: [PATCH 0845/2060] ffmpeg: Rebuild with gnutls-3.4.0 --- mingw-w64-ffmpeg/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 9dfaa282bf..d9b254bee8 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -3,7 +3,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.6.1 -pkgrel=1 +pkgrel=2 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" From 514ec8c797cd2576f50c671bac4bbf70694ba9e3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 10 Apr 2015 11:41:30 +0300 Subject: [PATCH 0846/2060] libvmime-git: Rebuild with gnutls-3.4.0. Fix dependencies. --- mingw-w64-libvmime-git/PKGBUILD | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/mingw-w64-libvmime-git/PKGBUILD b/mingw-w64-libvmime-git/PKGBUILD index 6ea978f8b0..a5723f9efd 100644 --- a/mingw-w64-libvmime-git/PKGBUILD +++ b/mingw-w64-libvmime-git/PKGBUILD @@ -5,20 +5,23 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=r1024.3848556 -pkgrel=1 -pkgdesc="An open source solution for working with MIME messages and Internet messaging services like IMAP, POP or SMTP." +pkgrel=2 +pkgdesc="An open source solution for working with MIME messages and Internet messaging services like IMAP, POP or SMTP (mingw-w64)" url="http://www.vmime.org/" arch=('any') license=('GPL3') -options=(strip staticlibs) -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "git") -depends=("${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-icu" +options=('strip' 'staticlibs') +makedepends=("${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-gcc" + "git") +depends=("${MINGW_PACKAGE_PREFIX}-icu" "${MINGW_PACKAGE_PREFIX}-gnutls" "${MINGW_PACKAGE_PREFIX}-gsasl" - "${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-libiconv" - "${MINGW_PACKAGE_PREFIX}-openssl") + #"${MINGW_PACKAGE_PREFIX}-openssl" + ) source=("${_realname}"::"git+https://github.com/kisli/vmime.git" cmake_mlang.patch libvmime-versioning.patch) @@ -46,6 +49,7 @@ build() { -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DVMIME_HAVE_MESSAGING_PROTO_SENDMAIL:BOOL=OFF \ -DVMIME_BUILD_SAMPLES:BOOL=OFF \ + -DVMIME_TLS_SUPPORT_LIB=gnutls \ ../${_realname} make From 92bdd1c408297a2a3235458ef13b16033fd2a219 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 10 Apr 2015 11:59:32 +0300 Subject: [PATCH 0847/2060] qtbinpatcher: Update to 2.1.3 --- mingw-w64-qtbinpatcher/PKGBUILD | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mingw-w64-qtbinpatcher/PKGBUILD b/mingw-w64-qtbinpatcher/PKGBUILD index 60806b57a5..9a5898ac63 100644 --- a/mingw-w64-qtbinpatcher/PKGBUILD +++ b/mingw-w64-qtbinpatcher/PKGBUILD @@ -2,7 +2,7 @@ _realname=qtbinpatcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.1 +pkgver=2.1.3 pkgrel=1 pkgdesc="Patcher for Qt libraries (mingw-w64)" arch=('any') @@ -11,9 +11,8 @@ license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") options=('staticlibs' 'strip') source=(http://tver-soft.org/dl/${_realname}-${pkgver}.tar.bz2 - #"http://sourceforge.net/projects/qtx64/files/external-binaries/qtbinpatcher/2.1.0/qtbinpatcher-2.1.0.tar.bz2/download" 001-minimize-files-touching.patch) -md5sums=('c2bc47fd86bf24481926731500eba890' +md5sums=('4f00aa6601864533589ce30ed39fe2cd' 'd9579dbed80111b16e299619e4970091') prepare() { From 012c0fd6554b6a6f6061f01048715009245dd8fa Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Thu, 9 Apr 2015 15:43:31 +0800 Subject: [PATCH 0848/2060] Install flexdll libraries to lib/flexdll Signed-off-by: Junjie Mao --- ...-flexdll-as-the-default-library-path.patch | 26 +++++++++++++++++++ mingw-w64-flexdll/PKGBUILD | 19 +++++++------- 2 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 mingw-w64-flexdll/0004-use-lib-flexdll-as-the-default-library-path.patch diff --git a/mingw-w64-flexdll/0004-use-lib-flexdll-as-the-default-library-path.patch b/mingw-w64-flexdll/0004-use-lib-flexdll-as-the-default-library-path.patch new file mode 100644 index 0000000000..735a4f3d0b --- /dev/null +++ b/mingw-w64-flexdll/0004-use-lib-flexdll-as-the-default-library-path.patch @@ -0,0 +1,26 @@ +From 0f243fb8f19bf6935c41e183a365860ae21a50d1 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Tue, 7 Apr 2015 07:34:35 +0800 +Subject: [PATCH] use lib/flexdll/ as the default library path + +Signed-off-by: Junjie Mao +--- + reloc.ml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/reloc.ml b/reloc.ml +index b4b96bd..17eed13 100644 +--- a/reloc.ml ++++ b/reloc.ml +@@ -29,7 +29,7 @@ let flexdir = + let s = Sys.getenv "FLEXDIR" in + if s = "" then raise Not_found else s + with Not_found -> +- Filename.dirname Sys.executable_name ++ List.fold_left (fun base dir -> Filename.concat base dir) (Filename.dirname Sys.executable_name) ["..";"lib";"flexdll"] + + let ext_obj () = + if !toolchain = `MSVC || !toolchain = `MSVC64 then ".obj" else ".o" +-- +2.3.4 + diff --git a/mingw-w64-flexdll/PKGBUILD b/mingw-w64-flexdll/PKGBUILD index 70036a7973..edf1ab9e3e 100644 --- a/mingw-w64-flexdll/PKGBUILD +++ b/mingw-w64-flexdll/PKGBUILD @@ -2,7 +2,7 @@ _realname=flexdll pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=0.31 +pkgver=0.34 pkgrel=1 pkgdesc="An implementation of a dlopen-like API for Windows (mingw-w64)" arch=('any') @@ -12,11 +12,13 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-ocaml") source=("http://alain.frisch.fr/flexdll/${_realname}-${pkgver}.tar.gz" "0001-Fix-the-List.hd-exception.patch" "0002-Add-path-to-libcrt2.o-into-the-default-library-searc.patch" - "0003-Remove-the-usages-of-stdout-to-workaround-the-missin.patch") -sha1sums=('7ca63bf8d6c731fd95e0d434a8cfbcc718b99d62' + "0003-Remove-the-usages-of-stdout-to-workaround-the-missin.patch" + "0004-use-lib-flexdll-as-the-default-library-path.patch") +sha1sums=('86acfd2d965dcf7a650f3d8e8f8db7bfe99de2a0' '642c99ad0d2035ef028254aff41dbff49014bed3' '31ebdca246a4df6069d733350c9a2b8c94d33dec' - '43f232f04934a0c7797f05e8db03f04ae156d8c4') + '43f232f04934a0c7797f05e8db03f04ae156d8c4' + '87754de44fd9a51299e52908b5948b31383ca6eb') if [ "${CARCH}" == "i686" ]; then chain="mingw" @@ -30,6 +32,7 @@ prepare() { patch -p1 -i ${srcdir}/0001-Fix-the-List.hd-exception.patch patch -p1 -i ${srcdir}/0002-Add-path-to-libcrt2.o-into-the-default-library-searc.patch patch -p1 -i ${srcdir}/0003-Remove-the-usages-of-stdout-to-workaround-the-missin.patch + patch -p1 -i ${srcdir}/0004-use-lib-flexdll-as-the-default-library-path.patch } build() { @@ -53,12 +56,8 @@ package() { cd ${srcdir}/build-${MINGW_CHOST} install -Dm755 flexlink.exe ${pkgdir}${MINGW_PREFIX}/bin/flexlink.exe - - mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/flexdll - install flexdll_${chain}.o ${pkgdir}${MINGW_PREFIX}/lib/flexdll/ - install flexdll_initer_${chain}.o ${pkgdir}${MINGW_PREFIX}/lib/flexdll/ - for f in flexdll.h flexdll.c flexdll_initer.c default.manifest default_amd64.manifest; do - install ${f} ${pkgdir}${MINGW_PREFIX}/lib/flexdll/ + for f in flexdll_${chain}.o flexdll_initer_${chain}.o flexdll.h flexdll.c flexdll_initer.c default.manifest default_amd64.manifest; do + install -D ${f} ${pkgdir}${MINGW_PREFIX}/lib/flexdll/${f} done [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE [ -f CHANGES ] && install -Dm644 CHANGES ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/CHANGES From f819c39be28676e8c07ac8ca6f335d89732472af Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Thu, 9 Apr 2015 15:44:31 +0800 Subject: [PATCH 0849/2060] Make OCaml guess library paths and remove the envar Signed-off-by: Junjie Mao --- ...lative-paths-for-ocaml-libraries-on-.patch | 70 +++++++++++++++++++ ...o-windows-path-before-checking-stats.patch | 48 +++++++++++++ mingw-w64-ocaml/PKGBUILD | 17 +++-- 3 files changed, 128 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-ocaml/0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch create mode 100644 mingw-w64-ocaml/0007-Convert-to-windows-path-before-checking-stats.patch diff --git a/mingw-w64-ocaml/0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch b/mingw-w64-ocaml/0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch new file mode 100644 index 0000000000..d0bfcc7965 --- /dev/null +++ b/mingw-w64-ocaml/0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch @@ -0,0 +1,70 @@ +From 667abbecdaed7107c981b6527e129cc3546b8d7c Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Tue, 7 Apr 2015 11:32:02 +0800 +Subject: [PATCH] Configure the relative paths for ocaml libraries on msys2 + +Signed-off-by: Junjie Mao +--- + utils/config.mlbuild | 17 ++++++++++++++++- + utils/config.mlp | 17 ++++++++++++++++- + 2 files changed, 32 insertions(+), 2 deletions(-) + +diff --git a/utils/config.mlbuild b/utils/config.mlbuild +index c887ac2..82ccd32 100644 +--- a/utils/config.mlbuild ++++ b/utils/config.mlbuild +@@ -25,7 +25,22 @@ let version = Sys.ocaml_version + + module C = Myocamlbuild_config + +-let standard_library_default = C.libdir ++let canonical_path_name p = ++ let current = Sys.getcwd () in ++ try ++ Sys.chdir p; ++ let p' = Sys.getcwd () in ++ Sys.chdir current; ++ p' ++ with Sys_error _ -> ++ (* We give up to find a canonical name and just return it... *) ++ p ++ ++let ocamlbin = Filename.dirname (canonical_path_name Sys.executable_name) ++ ++let ocamlroot = Filename.dirname ocamlbin ++ ++let standard_library_default = List.fold_left (fun base dir -> Filename.concat base dir) ocamlroot ["lib";"ocaml"] + + let standard_library = + try +diff --git a/utils/config.mlp b/utils/config.mlp +index db6fd20..ac97e9c 100644 +--- a/utils/config.mlp ++++ b/utils/config.mlp +@@ -23,7 +23,22 @@ + (* The main OCaml version string has moved to ../VERSION *) + let version = Sys.ocaml_version + +-let standard_library_default = "%%LIBDIR%%" ++let canonical_path_name p = ++ let current = Sys.getcwd () in ++ try ++ Sys.chdir p; ++ let p' = Sys.getcwd () in ++ Sys.chdir current; ++ p' ++ with Sys_error _ -> ++ (* We give up to find a canonical name and just return it... *) ++ p ++ ++let ocamlbin = Filename.dirname (canonical_path_name Sys.executable_name) ++ ++let ocamlroot = Filename.dirname ocamlbin ++ ++let standard_library_default = List.fold_left (fun base dir -> Filename.concat base dir) ocamlroot ["lib";"ocaml"] + + let standard_library = + try +-- +2.3.4 + diff --git a/mingw-w64-ocaml/0007-Convert-to-windows-path-before-checking-stats.patch b/mingw-w64-ocaml/0007-Convert-to-windows-path-before-checking-stats.patch new file mode 100644 index 0000000000..ab20f6a4d7 --- /dev/null +++ b/mingw-w64-ocaml/0007-Convert-to-windows-path-before-checking-stats.patch @@ -0,0 +1,48 @@ +From 6d9ecfddb197ff4fcfb8404f03d502501bafe411 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Tue, 7 Apr 2015 21:25:35 +0800 +Subject: [PATCH] Convert to windows path before checking stats + +Signed-off-by: Junjie Mao +--- + byterun/win32.c | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +diff --git a/byterun/win32.c b/byterun/win32.c +index 67e9683..02d060e 100644 +--- a/byterun/win32.c ++++ b/byterun/win32.c +@@ -59,9 +59,10 @@ char * caml_decompose_path(struct ext_table * tbl, char * path) + + char * caml_search_in_path(struct ext_table * path, char * name) + { +- char * p, * dir, * fullname; ++ char * p, * dir, * fullname, * cmd, * output; + int i; + struct stat st; ++ FILE *pipe = NULL; + + for (p = name; *p != 0; p++) { + if (*p == '/' || *p == '\\') goto not_found; +@@ -71,6 +72,18 @@ char * caml_search_in_path(struct ext_table * path, char * name) + if (dir[0] == 0) continue; + /* not sure what empty path components mean under Windows */ + fullname = caml_strconcat(3, dir, "\\", name); ++ cmd = caml_strconcat(2, "cygpath -w ", fullname); ++ pipe = popen(cmd, "r"); ++ output = caml_stat_alloc(strlen(cmd) + 128); ++ fscanf(pipe, "%s", output); ++ pclose(pipe); ++ caml_stat_free(cmd); ++ if (output[0] != '\0') { ++ caml_stat_free(fullname); ++ fullname = output; ++ } else { ++ caml_stat_free(output); ++ } + caml_gc_message(0x100, "Searching %s\n", (uintnat) fullname); + if (stat(fullname, &st) == 0 && S_ISREG(st.st_mode)) + return fullname; +-- +2.3.4 + diff --git a/mingw-w64-ocaml/PKGBUILD b/mingw-w64-ocaml/PKGBUILD index ef4b5788c0..135127a0c0 100644 --- a/mingw-w64-ocaml/PKGBUILD +++ b/mingw-w64-ocaml/PKGBUILD @@ -3,7 +3,7 @@ _realname=ocaml pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=4.02.1 -pkgrel=1 +pkgrel=2 pkgdesc="An industrial strength programming language supporting functional, imperative and object-oriented styles (mingw-w64)" arch=('any') url='http://ocaml.org/' @@ -15,12 +15,16 @@ source=("http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz" "0002-Adapt-to-msys2-directory-layout.patch" "0003-Install-manuals-in-msys2.patch" "0004-camlheader-has-the-extension-.exe-in-msys2.patch" - "0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch") + "0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch" + "0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch" + "0007-Convert-to-windows-path-before-checking-stats.patch") sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' 'ee16e23932922f6f9fcc48072d564b90a3b66246' 'a780a6c94aaedcd0d19a7fbc26e09776b581a8af' 'e1f6b201c25b61d39404406c82684f6c8d70d23a' - '17010515bd9715ed36300165643d8f3ad01288cf') + '17010515bd9715ed36300165643d8f3ad01288cf' + '78b69527ce8a78fbb31f7b9f3e0e04bf3ffcc165' + 'cff96df7caef78097ac73a382e4ef50418a7583b') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -33,12 +37,14 @@ prepare() { patch -p1 -i ${srcdir}/0003-Install-manuals-in-msys2.patch patch -p1 -i ${srcdir}/0004-camlheader-has-the-extension-.exe-in-msys2.patch patch -p1 -i ${srcdir}/0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch + patch -p1 -i ${srcdir}/0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch + patch -p1 -i ${srcdir}/0007-Convert-to-windows-path-before-checking-stats.patch } build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} - + cd ${srcdir}/build-${MINGW_CHOST} cp config/Makefile.${MINGW_PREFIX#/} config/Makefile @@ -57,7 +63,4 @@ package() { cd ${srcdir}/build-${MINGW_CHOST} make -f Makefile.nt install TOOLPREF= PREFIX="${pkgdir}${MINGW_PREFIX}" -j1 [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE - - mkdir -p ${pkgdir}${MINGW_PREFIX}/etc/profile.d - echo '[ "$MSYSTEM" = "'$(echo ${MINGW_PREFIX#/} | tr "[:lower:]" "[:upper:]")'" ] && export OCAMLLIB='${MINGW_PREFIX}'/lib/ocaml' > ${pkgdir}${MINGW_PREFIX}/etc/profile.d/ocaml.sh } From ea9fc8e3bdf028a88a2d276eeb86df82034eeb3d Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Thu, 9 Apr 2015 15:45:15 +0800 Subject: [PATCH 0850/2060] Make camlp4 guess library paths and remove the envar Signed-off-by: Junjie Mao --- ...0003-Guess-the-library-path-on-msys2.patch | 47 +++++++++++++++++++ mingw-w64-ocaml-camlp4/PKGBUILD | 14 +++--- 2 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-ocaml-camlp4/0003-Guess-the-library-path-on-msys2.patch diff --git a/mingw-w64-ocaml-camlp4/0003-Guess-the-library-path-on-msys2.patch b/mingw-w64-ocaml-camlp4/0003-Guess-the-library-path-on-msys2.patch new file mode 100644 index 0000000000..2bda0d0013 --- /dev/null +++ b/mingw-w64-ocaml-camlp4/0003-Guess-the-library-path-on-msys2.patch @@ -0,0 +1,47 @@ +From 3c6a0990d9937551e0750ccb6b65adf00aeca091 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Thu, 9 Apr 2015 07:52:23 +0800 +Subject: [PATCH] Guess the library path on msys2 + +Signed-off-by: Junjie Mao +--- + camlp4/config/Camlp4_config.ml | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +diff --git a/camlp4/config/Camlp4_config.ml b/camlp4/config/Camlp4_config.ml +index 88e14d6..4e7f245 100644 +--- a/camlp4/config/Camlp4_config.ml ++++ b/camlp4/config/Camlp4_config.ml +@@ -17,12 +17,27 @@ + * - Nicolas Pouillard: refactoring + *) + +-let ocaml_standard_library = Camlp4_import.standard_library;; ++let canonical_path_name p = ++ let current = Sys.getcwd () in ++ try ++ Sys.chdir p; ++ let p' = Sys.getcwd () in ++ Sys.chdir current; ++ p' ++ with Sys_error _ -> ++ (* We give up to find a canonical name and just return it... *) ++ p ++ ++let camlp4bin = Filename.dirname (canonical_path_name Sys.executable_name) ++ ++let camlp4root = Filename.dirname camlp4bin ++ ++let ocaml_standard_library = List.fold_left (fun base dir -> Filename.concat base dir) camlp4root ["lib";"ocaml"];; + + let camlp4_standard_library = + try Sys.getenv "CAMLP4LIB" + with Not_found -> +- Camlp4_import.camlp4_standard_library;; ++ Filename.concat ocaml_standard_library "camlp4";; + + let version = Sys.ocaml_version;; + let program_name = ref "camlp4";; +-- +2.3.4 + diff --git a/mingw-w64-ocaml-camlp4/PKGBUILD b/mingw-w64-ocaml-camlp4/PKGBUILD index 8e859c5092..c91da80c87 100644 --- a/mingw-w64-ocaml-camlp4/PKGBUILD +++ b/mingw-w64-ocaml-camlp4/PKGBUILD @@ -3,7 +3,7 @@ _realname=ocaml-camlp4 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=4.02.1 -pkgrel=1 +pkgrel=2 pkgdesc="Pre-Processor-Pretty-Printer for OCaml (mingw-w64)" arch=('any') url='https://github.com/ocaml/camlp4' @@ -12,22 +12,25 @@ depends=("${MINGW_PACKAGE_PREFIX}-ocaml") makedepends=("${MINGW_PACKAGE_PREFIX}-flexdll") source=("${_realname}-${pkgver}.tar.gz::https://github.com/ocaml/camlp4/archive/4.02.1.tar.gz" "0001-Properly-quote-preprocessor-command-to-ocamldep.patch" - "0002-Add-DESTDIR-in-configure.patch") + "0002-Add-DESTDIR-in-configure.patch" + "0003-Guess-the-library-path-on-msys2.patch") sha1sums=('c16d9ae3693612c71e12d2880ec911772b8d23c3' 'eb7a59d2e184f368d735670bea96571aa861f97b' - '6aa01135f05a5e943412bf728f90ced871c6a064') + '6aa01135f05a5e943412bf728f90ced871c6a064' + 'db42cb6d7dfd3862d057d1771a3cb7b4e44d930d') prepare() { cd ${srcdir}/camlp4-${pkgver} patch -p1 -i ${srcdir}/0001-Properly-quote-preprocessor-command-to-ocamldep.patch patch -p1 -i ${srcdir}/0002-Add-DESTDIR-in-configure.patch + patch -p1 -i ${srcdir}/0003-Guess-the-library-path-on-msys2.patch } build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -rf camlp4-${pkgver} build-${MINGW_CHOST} - + cd ${srcdir}/build-${MINGW_CHOST} export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml ./configure --bindir=${MINGW_PREFIX}/bin \ @@ -47,7 +50,4 @@ package() { make install -j1 make install-META -j1 [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE - - mkdir -p ${pkgdir}${MINGW_PREFIX}/etc/profile.d - echo '[ "$MSYSTEM" = "'$(echo ${MINGW_PREFIX#/} | tr "[:lower:]" "[:upper:]")'" ] && export CAMLP4LIB='${MINGW_PREFIX}'/lib/ocaml' > ${pkgdir}${MINGW_PREFIX}/etc/profile.d/camlp4.sh } From 48794aa04b32b1c15f6e74d53755ac81b288359d Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Fri, 10 Apr 2015 19:59:38 +0800 Subject: [PATCH 0851/2060] Do not build coqide until the lablgtk build issue is fixed Signed-off-by: Junjie Mao --- mingw-w64-coq/PKGBUILD | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/mingw-w64-coq/PKGBUILD b/mingw-w64-coq/PKGBUILD index 2feeb7a101..8f81cf2c96 100644 --- a/mingw-w64-coq/PKGBUILD +++ b/mingw-w64-coq/PKGBUILD @@ -3,14 +3,13 @@ _realname=coq pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=8.4pl5 -pkgrel=1 +pkgrel=2 pkgdesc="A formal proof management system (mingw-w64)" arch=('any') url='https://coq.inria.fr/' license=('LGPL 2.1') depends=("${MINGW_PACKAGE_PREFIX}-ocaml" - "${MINGW_PACKAGE_PREFIX}-ocaml-camlp4" - "${MINGW_PACKAGE_PREFIX}-ocaml-lablgtk") + "${MINGW_PACKAGE_PREFIX}-ocaml-camlp4") source=("https://coq.inria.fr/distrib/V8.4pl5/files/coq-8.4pl5.tar.gz" "0001-Guess-the-libraries-are-located-at-lib-coq-instead-o.patch") sha1sums=('107717cbaef3a469e8ff775ae54dbbc457935816' @@ -25,7 +24,7 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - + export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml ./configure -prefix ${MINGW_PREFIX} \ -bindir ${MINGW_PREFIX}/bin \ @@ -36,11 +35,10 @@ build() { -docdir ${MINGW_PREFIX}/share/doc/coq \ -emacslib ${MINGW_PREFIX}/share/emacs/site-lisp/coq \ -coqdocdir ${MINGW_PREFIX}/share/texmf/tex \ - -usecamlp4 -arch win32 + -usecamlp4 -arch win32 -coqide no make revision make coq - make coqide -j1 } check() { From c00e22a2fd0cff6bf39e225ebf91355b024a4ff8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 10 Apr 2015 18:22:48 +0300 Subject: [PATCH 0852/2060] shishi-git: Update to git SHA [485d3bd]. Rebuild with gnutls-3.4.0 --- mingw-w64-shishi-git/PKGBUILD | 40 +++++++++++++++++------------------ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/mingw-w64-shishi-git/PKGBUILD b/mingw-w64-shishi-git/PKGBUILD index 3caf6d9873..ffd21b7b42 100644 --- a/mingw-w64-shishi-git/PKGBUILD +++ b/mingw-w64-shishi-git/PKGBUILD @@ -4,28 +4,29 @@ _realname=shishi pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r3570.9d2b6c8 +pkgver=r3583.485d3bd pkgrel=1 pkgdesc="a GNU implementation of the Kerberos 5 network security system (mingw-w64)" arch=('any') url="https://www.gnu.org/software/shishi/" license=("GPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "wget" "git") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gettext" "wget" "git") options=('strip' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gnutls" - "${MINGW_PACKAGE_PREFIX}-libidn" - "${MINGW_PACKAGE_PREFIX}-libgcrypt" - "${MINGW_PACKAGE_PREFIX}-libgpg-error" - "${MINGW_PACKAGE_PREFIX}-libtasn1" + "${MINGW_PACKAGE_PREFIX}-libidn" + "${MINGW_PACKAGE_PREFIX}-libgcrypt" + "${MINGW_PACKAGE_PREFIX}-libgpg-error" + "${MINGW_PACKAGE_PREFIX}-libtasn1" ) source=("${_realname}"::"git+git://git.savannah.gnu.org/shishi.git" - 001-fix-search-libgcrypt.patch - 002-gnulib.patch - 003-no-shishid.patch) + "001-fix-search-libgcrypt.patch" + "003-no-shishid.patch" + "004-fix-download-po.patch" + ) md5sums=('SKIP' 'f2b2114a4dddb11e240df88086d9d33e' - '2aaba8e55f17fd7f0be22f81a61f8d74' - 'b5af8571cc41670bd017d5fe7e4b48d9') + 'b5af8571cc41670bd017d5fe7e4b48d9' + '2a3d4a60719b801adf5835898c049420') pkgver() { cd "$srcdir/$_realname" @@ -35,27 +36,26 @@ pkgver() { prepare() { cd ${_realname} patch -p1 -i ${srcdir}/001-fix-search-libgcrypt.patch - patch -p1 -i ${srcdir}/002-gnulib.patch patch -p1 -i ${srcdir}/003-no-shishid.patch - cp -rf build-aux/snippet ${srcdir}/ - rm -f aclocal.m4 - WANT_AUTOMAKE=latest autoreconf -fi - cp -rf ${srcdir}/snippet build-aux/ - cd .. + patch -p1 -i ${srcdir}/004-fix-download-po.patch - cp -rf ${_realname} build-${MINGW_CHOST} + WANT_AUTOMAKE=latest autoreconf -fi + make update-po } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd build-${MINGW_CHOST} - ./configure \ + + ../${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-shared \ --enable-static - make update-po + make -j1 } From 1616a8a7a81955abacd29be0d96af8b0c7d585b5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 10 Apr 2015 22:34:22 +0300 Subject: [PATCH 0853/2060] gsasl: Rebuild with gnutls-3.4.0 --- mingw-w64-gsasl/PKGBUILD | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mingw-w64-gsasl/PKGBUILD b/mingw-w64-gsasl/PKGBUILD index 014d36efc2..a15bfaab93 100644 --- a/mingw-w64-gsasl/PKGBUILD +++ b/mingw-w64-gsasl/PKGBUILD @@ -3,7 +3,7 @@ _realname=gsasl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.8.0 -pkgrel=1 +pkgrel=2 pkgdesc="Simple Authentication and Security Layer framework and a few common SASL mechanisms (mingw-w64)" arch=('any') url="http://josefsson.org/gsasl/" @@ -28,10 +28,11 @@ prepare() { } build() { - #mkdir -p build-${MINGW_CHOST} - #cd build-${MINGW_CHOST} - cd ${_realname}-${pkgver} - ./configure \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -43,6 +44,6 @@ build() { } package() { - cd ${_realname}-${pkgver} + cd build-${MINGW_CHOST} make DESTDIR="${pkgdir}" install } From 5e05b75036002a656284ab2fcd9a0987dbd312f1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 10 Apr 2015 23:21:40 +0300 Subject: [PATCH 0854/2060] glib-networking: Rebuild with gnutls-3.4.0 --- mingw-w64-glib-networking/PKGBUILD | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/mingw-w64-glib-networking/PKGBUILD b/mingw-w64-glib-networking/PKGBUILD index c12fcc17d0..cdb335fa9d 100644 --- a/mingw-w64-glib-networking/PKGBUILD +++ b/mingw-w64-glib-networking/PKGBUILD @@ -3,7 +3,7 @@ _realname=glib-networking pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.44.0 -pkgrel=1 +pkgrel=2 pkgdesc="Network-related GIO modules for glib (mingw-w64)" arch=(any) url="http://ftp.gnome.org/pub/GNOME/sources/libsoup" @@ -13,12 +13,12 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" "intltool") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libgcrypt" - "${MINGW_PACKAGE_PREFIX}-gnutls" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-p11-kit" - "${MINGW_PACKAGE_PREFIX}-xz") + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-libgcrypt" + "${MINGW_PACKAGE_PREFIX}-p11-kit" + "${MINGW_PACKAGE_PREFIX}-xz") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz" 0001-dont-overwrite-prefix-remain-relative.mingw.patch @@ -38,9 +38,11 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-$pkgver/configure \ + cd build-${MINGW_CHOST} + + ../${_realname}-$pkgver/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -55,6 +57,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install - #mv ${pkgdir}/lib ${pkgdir}${MINGW_PREFIX}/ rm -f ${pkgdir}${MINGW_PREFIX}/lib/gio/modules/*.a } From bfca37aae19d2d300fdc88f2de0bbbb3f830edde Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 10 Apr 2015 23:28:20 +0300 Subject: [PATCH 0855/2060] gtk-vnc: Rebuild with gnutl-3.4.0 --- mingw-w64-gtk-vnc/PKGBUILD | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/mingw-w64-gtk-vnc/PKGBUILD b/mingw-w64-gtk-vnc/PKGBUILD index 456ec43da3..1fbbec122a 100644 --- a/mingw-w64-gtk-vnc/PKGBUILD +++ b/mingw-w64-gtk-vnc/PKGBUILD @@ -3,20 +3,19 @@ _realname=gtk-vnc pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.5.4 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="VNC viewer widget for GTK+ (mingw-w64)" options=(strip staticlibs) -depends=("${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python2-pygtk" +depends=("${MINGW_PACKAGE_PREFIX}-cyrus-sasl" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-libgcrypt" "${MINGW_PACKAGE_PREFIX}-libgpg-error" - "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" - "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-libview") + "${MINGW_PACKAGE_PREFIX}-libview" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-vala") options=('strip' 'staticlibs') @@ -31,7 +30,6 @@ prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-win.patch - autoreconf -isf } @@ -39,7 +37,6 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} - PYTHON=${MINGW_PREFIX}/bin/python2 \ ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ @@ -47,7 +44,6 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --enable-introspection \ - --with-python=yes \ --with-gtk=3.0 \ --with-sasl \ --with-libview=yes From 5fe1aafd954b068aa2933bdf868358ee2dc750da Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 11 Apr 2015 00:51:00 +0300 Subject: [PATCH 0856/2060] emacs: Update. Rebuild with gnutls-3.4.0 --- mingw-w64-emacs-git/PKGBUILD | 85 +++++++++++++------------------ mingw-w64-emacs/PKGBUILD | 97 +++++++++++++----------------------- 2 files changed, 69 insertions(+), 113 deletions(-) diff --git a/mingw-w64-emacs-git/PKGBUILD b/mingw-w64-emacs-git/PKGBUILD index 292597d3fc..479e703ab3 100644 --- a/mingw-w64-emacs-git/PKGBUILD +++ b/mingw-w64-emacs-git/PKGBUILD @@ -1,21 +1,15 @@ # Maintainer: Haroogan -_name='emacs' -pkgname="${MINGW_PACKAGE_PREFIX}-${_name}-git" -pkgver=r120494.226c122 +_realname='emacs' +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=r121030.a2940cd pkgrel=1 -pkgdesc=\ -"The extensible, customizable, self-documenting, real-time display editor." -url="http://www.gnu.org/software/${_name}/" -license=( - 'GPL3' -) -arch=( - 'any' -) -conflicts=( - "${MINGW_PACKAGE_PREFIX}-${_name}" -) +pkgdesc="The extensible, customizable, self-documenting, real-time display editor (mingw-w64)" +url="http://www.gnu.org/software/${_realname}/" +license=('GPL3') +arch=('any') +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=( "${MINGW_PACKAGE_PREFIX}-ctags" "${MINGW_PACKAGE_PREFIX}-dbus" @@ -31,19 +25,13 @@ depends=( "${MINGW_PACKAGE_PREFIX}-xpm-nox" "${MINGW_PACKAGE_PREFIX}-zlib" ) -makedepends=( - "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "git" -) -options=( - 'strip' -) -source=( - "${_name}"::"git://git.savannah.gnu.org/${_name}.git" - 'image.c.diff' - 'lread.c.diff' -) +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git") +options=('strip') +source=("${_realname}"::"git://git.savannah.gnu.org/${_realname}.git" + 'image.c.diff' + 'lread.c.diff') sha256sums=( 'SKIP' '4571d45ec26fd556e73a70bb0ab0a2a8fa1efc5e3b3c5b472ab68bb7dc9bf52c' @@ -51,20 +39,21 @@ sha256sums=( ) pkgver() { - cd "${_name}" + cd "${_realname}" printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd "${_name}" + cd "${_realname}" patch --binary --forward -p0 < "${srcdir}/image.c.diff" patch --binary --forward -p0 < "${srcdir}/lread.c.diff" ./autogen.sh } build() { - mkdir -p ".build/${MINGW_CHOST}" - cd ".build/${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd build-${MINGW_CHOST} local with_wide_int='no' @@ -74,31 +63,25 @@ build() { # NOTE: # Do not add `-funroll-loops' to `CFLAGS'! - PKG_CONFIG_PATH="${MINGW_PREFIX}/lib/pkgconfig" \ - "${srcdir}/${_name}/configure" \ - CPPFLAGS="-DNDEBUG -isystem ${MINGW_PREFIX}/include" \ - CFLAGS="-pipe -O3 -fomit-frame-pointer" \ - LDFLAGS="-s -Wl,-s" \ - --prefix="${MINGW_PREFIX}" \ - --build="${MINGW_CHOST}" \ - --with-wide-int="${with_wide_int}" \ - --with-sound="yes" \ - --with-file-notification="yes" \ - --without-gpm \ - --without-gconf \ - --without-gsettings \ + CPPFLAGS="-DNDEBUG -isystem ${MINGW_PREFIX}/include" + CFLAGS="-pipe -O3 -fomit-frame-pointer" + LDFLAGS="-s -Wl,-s" + "${srcdir}/${_realname}/configure" \ + --prefix="${MINGW_PREFIX}" \ + --build="${MINGW_CHOST}" \ + --with-wide-int="${with_wide_int}" \ + --with-sound="yes" \ + --with-file-notification="yes" \ + --without-gpm \ + --without-gconf \ + --without-gsettings \ --without-selinux make } -# check() { - # cd ".build/${MINGW_CHOST}" - # make check -# } - package() { - cd ".build/${MINGW_CHOST}" + cd "build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install rm -f "${pkgdir}${MINGW_PREFIX}/bin/ctags.exe" rm -f "${pkgdir}${MINGW_PREFIX}/share/man/man1/ctags.1.gz" diff --git a/mingw-w64-emacs/PKGBUILD b/mingw-w64-emacs/PKGBUILD index e710b414d8..3ec0796fe0 100644 --- a/mingw-w64-emacs/PKGBUILD +++ b/mingw-w64-emacs/PKGBUILD @@ -1,21 +1,14 @@ # Maintainer: Haroogan -_name='emacs' -pkgname="${MINGW_PACKAGE_PREFIX}-${_name}" -pkgver='24.4' +_realname=emacs +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=24.5 pkgrel='1' pkgdesc=\ "The extensible, customizable, self-documenting, real-time display editor." -url="http://www.gnu.org/software/${_name}/" -license=( - 'GPL3' -) -arch=( - 'any' -) -conflicts=( - "${MINGW_PACKAGE_PREFIX}-${_name}-git" -) +url="http://www.gnu.org/software/${_realname}/" +license=('GPL3') +arch=('any') depends=( "${MINGW_PACKAGE_PREFIX}-ctags" "${MINGW_PACKAGE_PREFIX}-dbus" @@ -31,36 +24,21 @@ depends=( "${MINGW_PACKAGE_PREFIX}-xpm-nox" "${MINGW_PACKAGE_PREFIX}-zlib" ) -makedepends=( - "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "git" -) -options=( - 'strip' -) -source=( - "${_name}"::"git://git.savannah.gnu.org/${_name}.git#tag=${_name}-${pkgver}" - 'image.c.diff' - 'lread.c.diff' - 'Makefile.in.diff' -) -sha256sums=( - 'SKIP' - '4571d45ec26fd556e73a70bb0ab0a2a8fa1efc5e3b3c5b472ab68bb7dc9bf52c' - 'b9db1b7d939301d0fedf52db6ac055f7265ee5bc0c3c757e394700ca39577b7f' - '1a49a2d4711d0204db80a88c120510168b2eb7649888de65634da252f03b7f16' -) - -pkgver() { - cd "${_name}" - git describe --long --tags \ - | \ - sed -r "s/${_name}-([0-9]+\.[0-9]+)(\.[0-9]+)?-.*/\1\2/g" -} +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +options=('strip') +source=(http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz{,.sig} + 'image.c.diff' + 'lread.c.diff' + 'Makefile.in.diff') +sha256sums=('dd47d71dd2a526cf6b47cb49af793ec2e26af69a0951cc40e43ae290eacfc34e' + 'SKIP' + '4571d45ec26fd556e73a70bb0ab0a2a8fa1efc5e3b3c5b472ab68bb7dc9bf52c' + 'b9db1b7d939301d0fedf52db6ac055f7265ee5bc0c3c757e394700ca39577b7f' + '1a49a2d4711d0204db80a88c120510168b2eb7649888de65634da252f03b7f16') prepare() { - cd "${_name}" + cd "${_realname}-${pkgver}" patch --binary --forward -p0 < "${srcdir}/image.c.diff" patch --binary --forward -p0 < "${srcdir}/lread.c.diff" patch --binary --forward -p0 < "${srcdir}/Makefile.in.diff" @@ -68,8 +46,9 @@ prepare() { } build() { - mkdir -p ".build/${MINGW_CHOST}" - cd ".build/${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd build-${MINGW_CHOST} local with_wide_int='no' @@ -79,31 +58,25 @@ build() { # NOTE: # Do not add `-funroll-loops' to `CFLAGS'! - PKG_CONFIG_PATH="${MINGW_PREFIX}/lib/pkgconfig" \ - "${srcdir}/${_name}/configure" \ - CPPFLAGS="-DNDEBUG -isystem ${MINGW_PREFIX}/include" \ - CFLAGS="-pipe -O3 -fomit-frame-pointer" \ - LDFLAGS="-s -Wl,-s" \ - --prefix="${MINGW_PREFIX}" \ - --build="${MINGW_CHOST}" \ - --with-wide-int="${with_wide_int}" \ - --with-sound="yes" \ - --with-file-notification="yes" \ - --without-gpm \ - --without-gconf \ - --without-gsettings \ + CPPFLAGS="-DNDEBUG -isystem ${MINGW_PREFIX}/include" + CFLAGS="-pipe -O3 -fomit-frame-pointer" + LDFLAGS="-s -Wl,-s" + "${srcdir}/${_realname}-${pkgver}/configure" \ + --prefix="${MINGW_PREFIX}" \ + --build="${MINGW_CHOST}" \ + --with-wide-int="${with_wide_int}" \ + --with-sound="yes" \ + --with-file-notification="yes" \ + --without-gpm \ + --without-gconf \ + --without-gsettings \ --without-selinux make } -# check() { - # cd ".build/${MINGW_CHOST}" - # make check -# } - package() { - cd ".build/${MINGW_CHOST}" + cd "build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install rm -f "${pkgdir}${MINGW_PREFIX}/bin/ctags.exe" rm -f "${pkgdir}${MINGW_PREFIX}/share/man/man1/ctags.1.gz" From ab2d30aa7cf6eb7b95f77ace1a1e4589d5b1166d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 11 Apr 2015 01:04:09 +0300 Subject: [PATCH 0857/2060] gnutls: Add gnutls developers key to trust. --- mingw-w64-gnutls/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index b34114cf1a..a4793b882d 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -32,6 +32,7 @@ md5sums=('aa015c2666b031044edfb01b01980d84' '516c3b60e5c2878a0af9f243fd4dac30' '86cfab6e7c2ccfcfd1dad9d5024627e3' '77287dc835afbb8cc4e9c4aa6b7adb7b') +validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 417c1e1267d144909aadb06eb296e6ad0b978da9 Mon Sep 17 00:00:00 2001 From: Paul Moore Date: Sat, 11 Apr 2015 10:51:36 +0100 Subject: [PATCH 0858/2060] New package sed --- mingw-w64-sed/PKGBUILD | 43 +++++++++++++++++++ .../msvc_invalid_parameter_handler.patch | 13 ++++++ 2 files changed, 56 insertions(+) create mode 100644 mingw-w64-sed/PKGBUILD create mode 100644 mingw-w64-sed/msvc_invalid_parameter_handler.patch diff --git a/mingw-w64-sed/PKGBUILD b/mingw-w64-sed/PKGBUILD new file mode 100644 index 0000000000..cfd262244f --- /dev/null +++ b/mingw-w64-sed/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Alexey Pavlov +# Contributor: Paul Moore + +_realname=sed +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=4.2.2 +pkgrel=1 +pkgdesc='Sed is a stream editor' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='http://www.gnu.org/software/sed/' + +license=('GPL3') + +source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.gz" + msvc_invalid_parameter_handler.patch) +md5sums=('4111de4faa3b9848a0686b2f260c5056' + 'a648d571107f917f1b039a88ff45cf4a') +options=('strip' '!libtool' 'staticlibs') + +prepare() { + cd $srcdir/${_realname}-${pkgver} + patch -p0 -i ${srcdir}/msvc_invalid_parameter_handler.patch +} + +build() { + cd $srcdir/${_realname}-${pkgver} + ./configure --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + + make +} + +package() { + cd ${srcdir}/${_realname}-${pkgver} + make install DESTDIR="${pkgdir}" + + # Licenses + install -Dm644 "${srcdir}/${_realname}-${pkgver}/README" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} diff --git a/mingw-w64-sed/msvc_invalid_parameter_handler.patch b/mingw-w64-sed/msvc_invalid_parameter_handler.patch new file mode 100644 index 0000000000..8869b0210b --- /dev/null +++ b/mingw-w64-sed/msvc_invalid_parameter_handler.patch @@ -0,0 +1,13 @@ +--- config_h.in.orig 2012-12-22 14:24:31.000000000 +0000 ++++ config_h.in 2015-04-10 20:37:22.039226300 +0100 +@@ -473,7 +473,9 @@ + + /* Define to 1 on MSVC platforms that have the "invalid parameter handler" + concept. */ +-#undef HAVE_MSVC_INVALID_PARAMETER_HANDLER ++/* Commented out due to a gnulib bug - see ++ http://lists.gnu.org/archive/html/bug-sed/2015-01/msg00003.html */ ++/* #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER */ + + /* Define to 1 if you have the `nl_langinfo' function. */ + #undef HAVE_NL_LANGINFO From 22d82610cea03a78fb6c56032b23cf133a672324 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 11 Apr 2015 15:08:54 +0300 Subject: [PATCH 0859/2060] pidgin-hg: Update to latest --- mingw-w64-pidgin-hg/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-pidgin-hg/PKGBUILD b/mingw-w64-pidgin-hg/PKGBUILD index 290f6c8bf1..cd473d8750 100644 --- a/mingw-w64-pidgin-hg/PKGBUILD +++ b/mingw-w64-pidgin-hg/PKGBUILD @@ -4,19 +4,19 @@ _realname=pidgin pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-hg" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r36168.0203e8dce52d +pkgver=r36348.9d62816617b9 pkgrel=1 pkgdesc="Multi-protocol instant messaging client (mingw-w64)" arch=('any') url="http://pidgin.im/" license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gtk-doc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "doxygen" + "gtk-doc" "mercurial") depends=("${MINGW_PACKAGE_PREFIX}-ca-certificates" - #"${MINGW_PACKAGE_PREFIX}-farstream" + "${MINGW_PACKAGE_PREFIX}-farstream" "${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-fontconfig" "${MINGW_PACKAGE_PREFIX}-gettext" From 35e1fd1a5e5bc50bc4762348f94d6787a5b0db29 Mon Sep 17 00:00:00 2001 From: Paul Moore Date: Sat, 11 Apr 2015 15:07:53 +0100 Subject: [PATCH 0860/2060] New package bc --- mingw-w64-bc/PKGBUILD | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 mingw-w64-bc/PKGBUILD diff --git a/mingw-w64-bc/PKGBUILD b/mingw-w64-bc/PKGBUILD new file mode 100644 index 0000000000..9ef4be6b88 --- /dev/null +++ b/mingw-w64-bc/PKGBUILD @@ -0,0 +1,40 @@ +# Maintainer: Alexey Pavlov +# Contributor: Paul Moore + +_realname=bc +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1.06 +pkgrel=1 +pkgdesc='bc is an arbitrary precision numeric processing language' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='http://www.gnu.org/software/bc/' + +license=('GPL3') + +source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('d44b5dddebd8a7a7309aea6c36fda117') +options=('strip' '!libtool' 'staticlibs') + +prepare() { + cd $srcdir/${_realname}-${pkgver} +} + +build() { + cd $srcdir/${_realname}-${pkgver} + ./configure --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + + make +} + +package() { + cd ${srcdir}/${_realname}-${pkgver} + make install DESTDIR="${pkgdir}" + + # Licenses + install -Dm644 "${srcdir}/${_realname}-${pkgver}/README" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} From 494eb328b071ae06cfa5401fe11fc45c8aa4a56a Mon Sep 17 00:00:00 2001 From: Paul Moore Date: Sat, 11 Apr 2015 16:10:11 +0100 Subject: [PATCH 0861/2060] New package grep --- mingw-w64-grep/PKGBUILD | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 mingw-w64-grep/PKGBUILD diff --git a/mingw-w64-grep/PKGBUILD b/mingw-w64-grep/PKGBUILD new file mode 100644 index 0000000000..e8fd6e800e --- /dev/null +++ b/mingw-w64-grep/PKGBUILD @@ -0,0 +1,42 @@ +# Maintainer: Alexey Pavlov +# Contributor: Paul Moore + +_realname=grep +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=2.21 +pkgrel=1 +pkgdesc='Grep searches one or more input files for lines containing a match to a specified pattern' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='http://www.gnu.org/software/grep/' + +license=('GPL3') + +depends=("${MINGW_PACKAGE_PREFIX}-pcre") + +source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz") +md5sums=('43c48064d6409862b8a850db83c8038a') +options=('strip' '!libtool' 'staticlibs') + +prepare() { + cd $srcdir/${_realname}-${pkgver} +} + +build() { + cd $srcdir/${_realname}-${pkgver} + ./configure --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + + make +} + +package() { + cd ${srcdir}/${_realname}-${pkgver} + make install DESTDIR="${pkgdir}" + + # Licenses + install -Dm644 "${srcdir}/${_realname}-${pkgver}/README" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} From fd4aef8cba4a1335b08382561d1f938c33755f6a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 11 Apr 2015 20:25:46 +0300 Subject: [PATCH 0862/2060] ocaml: Some changes --- mingw-w64-flexdll/PKGBUILD | 6 ++---- mingw-w64-ocaml-findlib/PKGBUILD | 5 ++++- mingw-w64-ocaml/0002-Adapt-to-msys2-directory-layout.patch | 6 ++++-- mingw-w64-ocaml/PKGBUILD | 4 +++- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/mingw-w64-flexdll/PKGBUILD b/mingw-w64-flexdll/PKGBUILD index edf1ab9e3e..38258515dd 100644 --- a/mingw-w64-flexdll/PKGBUILD +++ b/mingw-w64-flexdll/PKGBUILD @@ -40,7 +40,8 @@ build() { cp -rf ${_realname} build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml + unset FLEXDIR + unset OCAMLLIB make flexlink.exe -j1 make build_${chain} -j1 } @@ -61,7 +62,4 @@ package() { done [ -f LICENSE ] && install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE [ -f CHANGES ] && install -Dm644 CHANGES ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/CHANGES - - mkdir -p ${pkgdir}${MINGW_PREFIX}/etc/profile.d - echo '[ "$MSYSTEM" = "'$(echo ${MINGW_PREFIX#/} | tr "[:lower:]" "[:upper:]")'" ] && export FLEXDIR='${MINGW_PREFIX}'/lib/flexdll' > ${pkgdir}${MINGW_PREFIX}/etc/profile.d/flexdll.sh } diff --git a/mingw-w64-ocaml-findlib/PKGBUILD b/mingw-w64-ocaml-findlib/PKGBUILD index 52934b4fd4..98be365d42 100644 --- a/mingw-w64-ocaml-findlib/PKGBUILD +++ b/mingw-w64-ocaml-findlib/PKGBUILD @@ -20,13 +20,16 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -rf findlib-${pkgver} build-${MINGW_CHOST} + unset FLEXDIR + unset OCAMLDIR + cd ${srcdir}/build-${MINGW_CHOST} - export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml PATH=${MINGW_PREFIX}/lib/ocaml/stublibs:$PATH \ ./configure -system win32 \ -sitelib ${MINGW_PREFIX}/lib/ocaml \ -mandir ${MINGW_PREFIX}/share/man \ -no-camlp4 + make all -j1 make opt -j1 } diff --git a/mingw-w64-ocaml/0002-Adapt-to-msys2-directory-layout.patch b/mingw-w64-ocaml/0002-Adapt-to-msys2-directory-layout.patch index 9a5ebbd875..27393fd84f 100644 --- a/mingw-w64-ocaml/0002-Adapt-to-msys2-directory-layout.patch +++ b/mingw-w64-ocaml/0002-Adapt-to-msys2-directory-layout.patch @@ -31,7 +31,8 @@ index c204980..032b8ed 100644 + ### Flexlink FLEXLINK=flexlink -chain mingw -stack 16777216 -link -static-libgcc - FLEXDIR:=$(shell $(FLEXLINK) -where) +-FLEXDIR:=$(shell $(FLEXLINK) -where) ++FLEXDIR:=$(PREFIX)/lib/flexdll IFLEXDIR=-I"$(FLEXDIR)" -MKDLL=$(FLEXLINK) -MKEXE=$(FLEXLINK) -exe @@ -64,7 +65,8 @@ index 0a3bdfb..566aab3 100644 + ### Flexlink FLEXLINK=flexlink -chain mingw64 -stack 33554432 - FLEXDIR:=$(shell $(FLEXLINK) -where) +-FLEXDIR:=$(shell $(FLEXLINK) -where) ++FLEXDIR:=$(PREFIX)/lib/flexdll IFLEXDIR=-I"$(FLEXDIR)" -MKDLL=$(FLEXLINK) -MKEXE=$(FLEXLINK) -exe diff --git a/mingw-w64-ocaml/PKGBUILD b/mingw-w64-ocaml/PKGBUILD index 135127a0c0..1e12ca005f 100644 --- a/mingw-w64-ocaml/PKGBUILD +++ b/mingw-w64-ocaml/PKGBUILD @@ -19,7 +19,7 @@ source=("http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz" "0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch" "0007-Convert-to-windows-path-before-checking-stats.patch") sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' - 'ee16e23932922f6f9fcc48072d564b90a3b66246' + '75b14de1f4ea982ddbb86f49576aa0be10f9286a' 'a780a6c94aaedcd0d19a7fbc26e09776b581a8af' 'e1f6b201c25b61d39404406c82684f6c8d70d23a' '17010515bd9715ed36300165643d8f3ad01288cf' @@ -45,6 +45,8 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} + unset FLEXDIR + unset OCAMLDIR cd ${srcdir}/build-${MINGW_CHOST} cp config/Makefile.${MINGW_PREFIX#/} config/Makefile From 42d1290436beaddf74ad6c7627dd3ff1fa0d249c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 11 Apr 2015 21:18:06 +0300 Subject: [PATCH 0863/2060] gnutls: Fix dependencies. --- mingw-w64-gnutls/PKGBUILD | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index a4793b882d..a02a27476f 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -3,22 +3,22 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.4.0 -pkgrel=1 +pkgrel=2 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') license=('GPL3' 'LGPL2.1') url="http://www.gnutls.org/" options=('!zipman') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libtasn1" - "${MINGW_PACKAGE_PREFIX}-gmp" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-nettle>=3.1" - "${MINGW_PACKAGE_PREFIX}-p11-kit>=0.23.1" - "${MINGW_PACKAGE_PREFIX}-libgnurx" - #"${MINGW_PACKAGE_PREFIX}-unbound" + "${MINGW_PACKAGE_PREFIX}-gmp" + "${MINGW_PACKAGE_PREFIX}-libidn" + "${MINGW_PACKAGE_PREFIX}-libsystre" + "${MINGW_PACKAGE_PREFIX}-libtasn1" + "${MINGW_PACKAGE_PREFIX}-nettle>=3.1" + "${MINGW_PACKAGE_PREFIX}-p11-kit>=0.23.1" + "${MINGW_PACKAGE_PREFIX}-zlib" + #"${MINGW_PACKAGE_PREFIX}-unbound" ) - makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") # Need remove "autogen" package before building. source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*}/${_realname}-${pkgver}.tar.xz{,.sig} From b85085f55958bd966cb690fde1a645474b219d3c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 11 Apr 2015 23:09:37 +0300 Subject: [PATCH 0864/2060] miniupnpc: Update to 1.9.20150206 --- mingw-w64-miniupnpc/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-miniupnpc/PKGBUILD b/mingw-w64-miniupnpc/PKGBUILD index d441c7cc66..127a0a4cf3 100644 --- a/mingw-w64-miniupnpc/PKGBUILD +++ b/mingw-w64-miniupnpc/PKGBUILD @@ -2,7 +2,7 @@ _realname=miniupnpc pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} -pkgver=1.9.20141128 +pkgver=1.9.20150206 pkgrel=1 pkgdesc="A small UPnP client library/tool to access Internet Gateway Devices (mingw-w64)" arch=('any') @@ -11,9 +11,9 @@ license=('BSD') options=('staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") -source=("http://miniupnp.free.fr/files/$_realname-$pkgver.tar.gz" +source=("http://miniupnp.free.fr/files/${_realname}-$pkgver.tar.gz" 001-link-libraries.patch) -sha256sums=('754419d9fec75deefa2c630a90eaf156bb008db5dbcdb662377715b7c1662e26' +sha256sums=('230d3ad5a3047daa77f99602503d798f720428207217ebfbfe2a4f7762b029e7' '3ac8b46b15ab48415cbbfa759d968873b315a96120d4dcbe062fbc39a909726d') prepare() { From cfab11a0b10bf9080d3e00c21fd36546d043d9f0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 11 Apr 2015 23:52:04 +0300 Subject: [PATCH 0865/2060] expat: Fix extension for xmlwf --- mingw-w64-expat/001-fix-extension.patch | 11 +++++++++++ mingw-w64-expat/PKGBUILD | 26 +++++++++++++++++-------- 2 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-expat/001-fix-extension.patch diff --git a/mingw-w64-expat/001-fix-extension.patch b/mingw-w64-expat/001-fix-extension.patch new file mode 100644 index 0000000000..1deef2f5d0 --- /dev/null +++ b/mingw-w64-expat/001-fix-extension.patch @@ -0,0 +1,11 @@ +--- expat-2.1.0/Makefile.in.orig 2015-04-11 23:40:32.731000000 +0300 ++++ expat-2.1.0/Makefile.in 2015-04-11 23:40:38.456200000 +0300 +@@ -79,7 +79,7 @@ + + install: xmlwf/xmlwf@EXEEXT@ installlib + $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir) +- $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) xmlwf/xmlwf@EXEEXT@ $(DESTDIR)$(bindir)/xmlwf ++ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) xmlwf/xmlwf@EXEEXT@ $(DESTDIR)$(bindir)/xmlwf@EXEEXT@ + $(INSTALL_DATA) $(MANFILE) $(DESTDIR)$(man1dir) + + installlib: $(LIBRARY) $(APIHEADER) expat.pc diff --git a/mingw-w64-expat/PKGBUILD b/mingw-w64-expat/PKGBUILD index 67f2a0bd07..e911a1c393 100644 --- a/mingw-w64-expat/PKGBUILD +++ b/mingw-w64-expat/PKGBUILD @@ -4,20 +4,31 @@ _realname=expat pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.0 -pkgrel=4 +pkgrel=5 pkgdesc="An XML parser library (mingw-w64)" arch=('any') url="http://expat.sourceforge.net" license=(MIT) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('strip' 'staticlibs') -source=("http://downloads.sourceforge.net/expat/expat-${pkgver}.tar.gz") -md5sums=('dd7dab7a5fea97d2a6a43f511449b7cd') +source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" + 001-fix-extension.patch) +md5sums=('dd7dab7a5fea97d2a6a43f511449b7cd' + 'f0896e172059ce210ce70d2a37f4a04e') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i ${srcdir}/001-fix-extension.patch + + autoreconf -fiv +} build() { - mkdir -p "${srcdir}/${pkgname}-${pkgver}-build-${CARCH}" - cd "${srcdir}/${pkgname}-${pkgver}-build-${CARCH}" - "${srcdir}"/expat-${pkgver}/configure \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + "${srcdir}"/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -29,8 +40,7 @@ build() { } package() { - cd "${srcdir}/${pkgname}-${pkgver}-build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install - mv "${pkgdir}${MINGW_PREFIX}/bin/xmlwf" "${pkgdir}${MINGW_PREFIX}/bin/xmlwf.exe" install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 96ee044414742f129cca8d8c8f09b3d60258c6bd Mon Sep 17 00:00:00 2001 From: Juergen Pfeifer Date: Sun, 12 Apr 2015 00:15:49 +0200 Subject: [PATCH 0866/2060] Fix xerces-c dependency in xalan-c --- mingw-w64-xalan-c/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-xalan-c/PKGBUILD b/mingw-w64-xalan-c/PKGBUILD index e4d9f74a65..698de85a15 100644 --- a/mingw-w64-xalan-c/PKGBUILD +++ b/mingw-w64-xalan-c/PKGBUILD @@ -9,8 +9,8 @@ pkgdesc="An XSLT processing library (mingw-w64)" arch=('any') url="http://xalan.apache.org/xalan-c" license=('APACHE') -makedepends=("sed" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-xerces-c=3.1.1" "${MINGW_PACKAGE_PREFIX}-tools") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-xerces-c=3.1.1") +makedepends=("sed" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-xerces-c=3.2.1" "${MINGW_PACKAGE_PREFIX}-tools") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-xerces-c=3.2.1") options=('!libtool' 'strip') source=(http://apache.mirror.iphh.net/xalan/xalan-c/sources/xalan_c-$pkgver-src.tar.gz mingw-w64-fix.patch) From 5428517665179e62dd302b1e3ef90ba3b5dc277c Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 12 Apr 2015 11:20:30 +0800 Subject: [PATCH 0867/2060] ocaml: Change path configurations in ocamlbuild Signed-off-by: Junjie Mao --- ...dard-paths-from-Config-in-ocamlbuild.patch | 106 ++++++++++++++++++ mingw-w64-ocaml/PKGBUILD | 17 +-- 2 files changed, 116 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-ocaml/0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch diff --git a/mingw-w64-ocaml/0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch b/mingw-w64-ocaml/0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch new file mode 100644 index 0000000000..2124716507 --- /dev/null +++ b/mingw-w64-ocaml/0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch @@ -0,0 +1,106 @@ +From 8f62719bb54b274ab1b9f40afec88105e73f9c20 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Sun, 12 Apr 2015 09:39:22 +0800 +Subject: [PATCH] Use the standard paths from Config in ocamlbuild + +Signed-off-by: Junjie Mao +--- + ocamlbuild/Makefile | 14 +++++++------- + utils/config.mlbuild | 4 ++-- + utils/config.mli | 2 ++ + utils/config.mlp | 4 ++-- + 4 files changed, 13 insertions(+), 11 deletions(-) + +diff --git a/ocamlbuild/Makefile b/ocamlbuild/Makefile +index b40d0ea..4328262 100644 +--- a/ocamlbuild/Makefile ++++ b/ocamlbuild/Makefile +@@ -19,8 +19,8 @@ OCAMLOPT = $(OCAMLRUN) $(ROOTDIR)/ocamlopt -nostdlib -I $(ROOTDIR)/stdlib + OCAMLDEP = $(OCAMLRUN) $(ROOTDIR)/tools/ocamldep + OCAMLLEX = $(OCAMLRUN) $(ROOTDIR)/boot/ocamllex + CP = cp +-COMPFLAGS= -warn-error A -w L -w R -w Z -I ../otherlibs/$(UNIXLIB) -safe-string +-LINKFLAGS= -I ../otherlibs/$(UNIXLIB) ++COMPFLAGS= -warn-error A -w L -w R -w Z -I ../otherlibs/$(UNIXLIB) -I ../utils -safe-string ++LINKFLAGS= -I ../otherlibs/$(UNIXLIB) -I ../utils + + PACK_CMO=\ + const.cmo \ +@@ -99,15 +99,15 @@ allopt: ocamlbuild.native ocamlbuildlib.cmxa + + ocamlbuild.byte: ocamlbuild_pack.cmo $(EXTRA_CMO) ocamlbuild.cmo + $(OCAMLC) $(LINKFLAGS) -o ocamlbuild.byte \ +- unix.cma ocamlbuild_pack.cmo $(EXTRA_CMO) ocamlbuild.cmo ++ unix.cma ../compilerlibs/ocamlcommon.cma ocamlbuild_pack.cmo $(EXTRA_CMO) ocamlbuild.cmo + + ocamlbuildlight.byte: ocamlbuild_pack.cmo ocamlbuildlight.cmo + $(OCAMLC) $(LINKFLAGS) -o ocamlbuildlight.byte \ +- ocamlbuild_pack.cmo ocamlbuildlight.cmo ++ ../compilerlibs/ocamlcommon.cma ocamlbuild_pack.cmo ocamlbuildlight.cmo + + ocamlbuild.native: ocamlbuild_pack.cmx $(EXTRA_CMX) ocamlbuild.cmx + $(OCAMLOPT) $(LINKFLAGS) -o ocamlbuild.native \ +- unix.cmxa ocamlbuild_pack.cmx $(EXTRA_CMX) ocamlbuild.cmx ++ unix.cmxa ../compilerlibs/ocamlcommon.cmxa ocamlbuild_pack.cmx $(EXTRA_CMX) ocamlbuild.cmx + + # The libraries + +@@ -134,8 +134,8 @@ ocamlbuild_pack.cmx: $(PACK_CMX) + # The config file + + ocamlbuild_config.ml: ../config/Makefile +- (echo 'let bindir = "$(BINDIR)"'; \ +- echo 'let libdir = "$(LIBDIR)"'; \ ++ (echo 'let bindir = Config.standard_binary'; \ ++ echo 'let libdir = Filename.concat Config.standard_library "ocamlbuild"'; \ + echo 'let supports_shared_libraries = $(SUPPORTS_SHARED_LIBRARIES)';\ + echo 'let a = "$(A)"'; \ + echo 'let o = "$(O)"'; \ +diff --git a/utils/config.mlbuild b/utils/config.mlbuild +index 82ccd32..8440fe9 100644 +--- a/utils/config.mlbuild ++++ b/utils/config.mlbuild +@@ -36,9 +36,9 @@ let canonical_path_name p = + (* We give up to find a canonical name and just return it... *) + p + +-let ocamlbin = Filename.dirname (canonical_path_name Sys.executable_name) ++let standard_binary = Filename.dirname (canonical_path_name Sys.executable_name) + +-let ocamlroot = Filename.dirname ocamlbin ++let ocamlroot = Filename.dirname standard_binary + + let standard_library_default = List.fold_left (fun base dir -> Filename.concat base dir) ocamlroot ["lib";"ocaml"] + +diff --git a/utils/config.mli b/utils/config.mli +index c9b8904..d438709 100644 +--- a/utils/config.mli ++++ b/utils/config.mli +@@ -15,6 +15,8 @@ + val version: string + (* The current version number of the system *) + ++val standard_binary: string ++ (* The directory containing the binaries *) + val standard_library: string + (* The directory containing the standard libraries *) + val standard_runtime: string +diff --git a/utils/config.mlp b/utils/config.mlp +index ac97e9c..e3566cc 100644 +--- a/utils/config.mlp ++++ b/utils/config.mlp +@@ -34,9 +34,9 @@ let canonical_path_name p = + (* We give up to find a canonical name and just return it... *) + p + +-let ocamlbin = Filename.dirname (canonical_path_name Sys.executable_name) ++let standard_binary = Filename.dirname (canonical_path_name Sys.executable_name) + +-let ocamlroot = Filename.dirname ocamlbin ++let ocamlroot = Filename.dirname standard_binary + + let standard_library_default = List.fold_left (fun base dir -> Filename.concat base dir) ocamlroot ["lib";"ocaml"] + +-- +2.3.4 + diff --git a/mingw-w64-ocaml/PKGBUILD b/mingw-w64-ocaml/PKGBUILD index 1e12ca005f..ac80429ace 100644 --- a/mingw-w64-ocaml/PKGBUILD +++ b/mingw-w64-ocaml/PKGBUILD @@ -3,7 +3,7 @@ _realname=ocaml pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=4.02.1 -pkgrel=2 +pkgrel=3 pkgdesc="An industrial strength programming language supporting functional, imperative and object-oriented styles (mingw-w64)" arch=('any') url='http://ocaml.org/' @@ -17,14 +17,16 @@ source=("http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz" "0004-camlheader-has-the-extension-.exe-in-msys2.patch" "0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch" "0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch" - "0007-Convert-to-windows-path-before-checking-stats.patch") + "0007-Convert-to-windows-path-before-checking-stats.patch" + "0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch") sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' '75b14de1f4ea982ddbb86f49576aa0be10f9286a' 'a780a6c94aaedcd0d19a7fbc26e09776b581a8af' 'e1f6b201c25b61d39404406c82684f6c8d70d23a' '17010515bd9715ed36300165643d8f3ad01288cf' '78b69527ce8a78fbb31f7b9f3e0e04bf3ffcc165' - 'cff96df7caef78097ac73a382e4ef50418a7583b') + 'cff96df7caef78097ac73a382e4ef50418a7583b' + '8b087c4189dc2837f3ca4aa88a5b167bbaa8e882') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -39,6 +41,7 @@ prepare() { patch -p1 -i ${srcdir}/0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch patch -p1 -i ${srcdir}/0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch patch -p1 -i ${srcdir}/0007-Convert-to-windows-path-before-checking-stats.patch + patch -p1 -i ${srcdir}/0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch } build() { @@ -50,10 +53,10 @@ build() { cd ${srcdir}/build-${MINGW_CHOST} cp config/Makefile.${MINGW_PREFIX#/} config/Makefile - make -f Makefile.nt world PREFIX="${MINGW_PREFIX}" TOOLPREF= -j1 - make -f Makefile.nt bootstrap PREFIX="${MINGW_PREFIX}" TOOLPREF= -j1 - make -f Makefile.nt opt PREFIX="${MINGW_PREFIX}" TOOLPREF= -j1 - make -f Makefile.nt opt.opt PREFIX="${MINGW_PREFIX}" TOOLPREF= -j1 + make -f Makefile.nt world TOOLPREF= -j1 + make -f Makefile.nt bootstrap TOOLPREF= -j1 + make -f Makefile.nt opt TOOLPREF= -j1 + make -f Makefile.nt opt.opt TOOLPREF= -j1 } check() { From c03004fdd65e170477264e08c9f23e011fe81c00 Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 12 Apr 2015 11:20:57 +0800 Subject: [PATCH 0868/2060] Remove OCAMLLIB in build scripts Signed-off-by: Junjie Mao --- mingw-w64-coq/PKGBUILD | 1 - mingw-w64-ocaml-camlp4/PKGBUILD | 1 - mingw-w64-ocaml-findlib/PKGBUILD | 4 ++-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/mingw-w64-coq/PKGBUILD b/mingw-w64-coq/PKGBUILD index 8f81cf2c96..0c9ed8c254 100644 --- a/mingw-w64-coq/PKGBUILD +++ b/mingw-w64-coq/PKGBUILD @@ -25,7 +25,6 @@ build() { cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml ./configure -prefix ${MINGW_PREFIX} \ -bindir ${MINGW_PREFIX}/bin \ -libdir ${MINGW_PREFIX}/lib/coq \ diff --git a/mingw-w64-ocaml-camlp4/PKGBUILD b/mingw-w64-ocaml-camlp4/PKGBUILD index c91da80c87..21f98f4191 100644 --- a/mingw-w64-ocaml-camlp4/PKGBUILD +++ b/mingw-w64-ocaml-camlp4/PKGBUILD @@ -32,7 +32,6 @@ build() { cp -rf camlp4-${pkgver} build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - export OCAMLLIB=${MINGW_PREFIX}/lib/ocaml ./configure --bindir=${MINGW_PREFIX}/bin \ --libdir=${MINGW_PREFIX}/lib/ocaml \ --pkgdir=${MINGW_PREFIX}/lib/ocaml \ diff --git a/mingw-w64-ocaml-findlib/PKGBUILD b/mingw-w64-ocaml-findlib/PKGBUILD index 98be365d42..d8a848f2b1 100644 --- a/mingw-w64-ocaml-findlib/PKGBUILD +++ b/mingw-w64-ocaml-findlib/PKGBUILD @@ -19,10 +19,10 @@ prepare() { build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -rf findlib-${pkgver} build-${MINGW_CHOST} - + unset FLEXDIR unset OCAMLDIR - + cd ${srcdir}/build-${MINGW_CHOST} PATH=${MINGW_PREFIX}/lib/ocaml/stublibs:$PATH \ ./configure -system win32 \ From 5625913ef1308f57896010dae0ceed9f4566e7eb Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 12 Apr 2015 15:49:32 +0800 Subject: [PATCH 0869/2060] ocaml: remove the reference to Config from ocamlbuild Signed-off-by: Junjie Mao --- ...ndard-paths-as-default-in-ocamlbuild.patch | 28 +++++ ...dard-paths-from-Config-in-ocamlbuild.patch | 106 ------------------ mingw-w64-ocaml/PKGBUILD | 6 +- 3 files changed, 31 insertions(+), 109 deletions(-) create mode 100644 mingw-w64-ocaml/0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch delete mode 100644 mingw-w64-ocaml/0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch diff --git a/mingw-w64-ocaml/0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch b/mingw-w64-ocaml/0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch new file mode 100644 index 0000000000..cef5c65a59 --- /dev/null +++ b/mingw-w64-ocaml/0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch @@ -0,0 +1,28 @@ +From 4b50b7e0f754239a40e3070cbf28d27d5bddffb5 Mon Sep 17 00:00:00 2001 +From: Junjie Mao +Date: Sun, 12 Apr 2015 09:39:22 +0800 +Subject: [PATCH] Use the standard paths as default in ocamlbuild + +Signed-off-by: Junjie Mao +--- + ocamlbuild/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ocamlbuild/Makefile b/ocamlbuild/Makefile +index b40d0ea..1d65ada 100644 +--- a/ocamlbuild/Makefile ++++ b/ocamlbuild/Makefile +@@ -134,8 +134,8 @@ ocamlbuild_pack.cmx: $(PACK_CMX) + # The config file + + ocamlbuild_config.ml: ../config/Makefile +- (echo 'let bindir = "$(BINDIR)"'; \ +- echo 'let libdir = "$(LIBDIR)"'; \ ++ (echo 'let bindir = Filename.dirname Sys.executable_name'; \ ++ echo 'let libdir = List.fold_left (fun base dir -> Filename.concat base dir) bindir ["..";"lib";"ocaml"]'; \ + echo 'let supports_shared_libraries = $(SUPPORTS_SHARED_LIBRARIES)';\ + echo 'let a = "$(A)"'; \ + echo 'let o = "$(O)"'; \ +-- +2.3.4 + diff --git a/mingw-w64-ocaml/0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch b/mingw-w64-ocaml/0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch deleted file mode 100644 index 2124716507..0000000000 --- a/mingw-w64-ocaml/0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 8f62719bb54b274ab1b9f40afec88105e73f9c20 Mon Sep 17 00:00:00 2001 -From: Junjie Mao -Date: Sun, 12 Apr 2015 09:39:22 +0800 -Subject: [PATCH] Use the standard paths from Config in ocamlbuild - -Signed-off-by: Junjie Mao ---- - ocamlbuild/Makefile | 14 +++++++------- - utils/config.mlbuild | 4 ++-- - utils/config.mli | 2 ++ - utils/config.mlp | 4 ++-- - 4 files changed, 13 insertions(+), 11 deletions(-) - -diff --git a/ocamlbuild/Makefile b/ocamlbuild/Makefile -index b40d0ea..4328262 100644 ---- a/ocamlbuild/Makefile -+++ b/ocamlbuild/Makefile -@@ -19,8 +19,8 @@ OCAMLOPT = $(OCAMLRUN) $(ROOTDIR)/ocamlopt -nostdlib -I $(ROOTDIR)/stdlib - OCAMLDEP = $(OCAMLRUN) $(ROOTDIR)/tools/ocamldep - OCAMLLEX = $(OCAMLRUN) $(ROOTDIR)/boot/ocamllex - CP = cp --COMPFLAGS= -warn-error A -w L -w R -w Z -I ../otherlibs/$(UNIXLIB) -safe-string --LINKFLAGS= -I ../otherlibs/$(UNIXLIB) -+COMPFLAGS= -warn-error A -w L -w R -w Z -I ../otherlibs/$(UNIXLIB) -I ../utils -safe-string -+LINKFLAGS= -I ../otherlibs/$(UNIXLIB) -I ../utils - - PACK_CMO=\ - const.cmo \ -@@ -99,15 +99,15 @@ allopt: ocamlbuild.native ocamlbuildlib.cmxa - - ocamlbuild.byte: ocamlbuild_pack.cmo $(EXTRA_CMO) ocamlbuild.cmo - $(OCAMLC) $(LINKFLAGS) -o ocamlbuild.byte \ -- unix.cma ocamlbuild_pack.cmo $(EXTRA_CMO) ocamlbuild.cmo -+ unix.cma ../compilerlibs/ocamlcommon.cma ocamlbuild_pack.cmo $(EXTRA_CMO) ocamlbuild.cmo - - ocamlbuildlight.byte: ocamlbuild_pack.cmo ocamlbuildlight.cmo - $(OCAMLC) $(LINKFLAGS) -o ocamlbuildlight.byte \ -- ocamlbuild_pack.cmo ocamlbuildlight.cmo -+ ../compilerlibs/ocamlcommon.cma ocamlbuild_pack.cmo ocamlbuildlight.cmo - - ocamlbuild.native: ocamlbuild_pack.cmx $(EXTRA_CMX) ocamlbuild.cmx - $(OCAMLOPT) $(LINKFLAGS) -o ocamlbuild.native \ -- unix.cmxa ocamlbuild_pack.cmx $(EXTRA_CMX) ocamlbuild.cmx -+ unix.cmxa ../compilerlibs/ocamlcommon.cmxa ocamlbuild_pack.cmx $(EXTRA_CMX) ocamlbuild.cmx - - # The libraries - -@@ -134,8 +134,8 @@ ocamlbuild_pack.cmx: $(PACK_CMX) - # The config file - - ocamlbuild_config.ml: ../config/Makefile -- (echo 'let bindir = "$(BINDIR)"'; \ -- echo 'let libdir = "$(LIBDIR)"'; \ -+ (echo 'let bindir = Config.standard_binary'; \ -+ echo 'let libdir = Filename.concat Config.standard_library "ocamlbuild"'; \ - echo 'let supports_shared_libraries = $(SUPPORTS_SHARED_LIBRARIES)';\ - echo 'let a = "$(A)"'; \ - echo 'let o = "$(O)"'; \ -diff --git a/utils/config.mlbuild b/utils/config.mlbuild -index 82ccd32..8440fe9 100644 ---- a/utils/config.mlbuild -+++ b/utils/config.mlbuild -@@ -36,9 +36,9 @@ let canonical_path_name p = - (* We give up to find a canonical name and just return it... *) - p - --let ocamlbin = Filename.dirname (canonical_path_name Sys.executable_name) -+let standard_binary = Filename.dirname (canonical_path_name Sys.executable_name) - --let ocamlroot = Filename.dirname ocamlbin -+let ocamlroot = Filename.dirname standard_binary - - let standard_library_default = List.fold_left (fun base dir -> Filename.concat base dir) ocamlroot ["lib";"ocaml"] - -diff --git a/utils/config.mli b/utils/config.mli -index c9b8904..d438709 100644 ---- a/utils/config.mli -+++ b/utils/config.mli -@@ -15,6 +15,8 @@ - val version: string - (* The current version number of the system *) - -+val standard_binary: string -+ (* The directory containing the binaries *) - val standard_library: string - (* The directory containing the standard libraries *) - val standard_runtime: string -diff --git a/utils/config.mlp b/utils/config.mlp -index ac97e9c..e3566cc 100644 ---- a/utils/config.mlp -+++ b/utils/config.mlp -@@ -34,9 +34,9 @@ let canonical_path_name p = - (* We give up to find a canonical name and just return it... *) - p - --let ocamlbin = Filename.dirname (canonical_path_name Sys.executable_name) -+let standard_binary = Filename.dirname (canonical_path_name Sys.executable_name) - --let ocamlroot = Filename.dirname ocamlbin -+let ocamlroot = Filename.dirname standard_binary - - let standard_library_default = List.fold_left (fun base dir -> Filename.concat base dir) ocamlroot ["lib";"ocaml"] - --- -2.3.4 - diff --git a/mingw-w64-ocaml/PKGBUILD b/mingw-w64-ocaml/PKGBUILD index ac80429ace..8d22e8a969 100644 --- a/mingw-w64-ocaml/PKGBUILD +++ b/mingw-w64-ocaml/PKGBUILD @@ -18,7 +18,7 @@ source=("http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz" "0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch" "0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch" "0007-Convert-to-windows-path-before-checking-stats.patch" - "0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch") + "0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch") sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' '75b14de1f4ea982ddbb86f49576aa0be10f9286a' 'a780a6c94aaedcd0d19a7fbc26e09776b581a8af' @@ -26,7 +26,7 @@ sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' '17010515bd9715ed36300165643d8f3ad01288cf' '78b69527ce8a78fbb31f7b9f3e0e04bf3ffcc165' 'cff96df7caef78097ac73a382e4ef50418a7583b' - '8b087c4189dc2837f3ca4aa88a5b167bbaa8e882') + '2924e4b417a6268513f4c5a9fc374a3c7ec11b07') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -41,7 +41,7 @@ prepare() { patch -p1 -i ${srcdir}/0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch patch -p1 -i ${srcdir}/0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch patch -p1 -i ${srcdir}/0007-Convert-to-windows-path-before-checking-stats.patch - patch -p1 -i ${srcdir}/0008-Use-the-standard-paths-from-Config-in-ocamlbuild.patch + patch -p1 -i ${srcdir}/0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch } build() { From cff50af490de028e567db1383a92a3c9e0a953b7 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Sun, 12 Apr 2015 08:17:16 -0300 Subject: [PATCH 0870/2060] libmongoose: Update pkgver and fix typo. --- mingw-w64-libmongoose-git/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libmongoose-git/PKGBUILD b/mingw-w64-libmongoose-git/PKGBUILD index c5f8f3b417..ada5676995 100644 --- a/mingw-w64-libmongoose-git/PKGBUILD +++ b/mingw-w64-libmongoose-git/PKGBUILD @@ -2,10 +2,10 @@ _realname='libmongoose' url='https://github.com/cesanta/mongoose' -pkgdesc=' Embedded web server for C/C++ (mingw-w64)' +pkgdesc='Embedded web server for C/C++ (mingw-w64)' license=('GPL2') arch=('any') -pkgver=r1764.eef70aa +pkgver=r1767.2ff2c36 pkgrel=1 pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) From 14a24b495a6b77aa533a48c7b426aef5339ea5ef Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Sun, 12 Apr 2015 21:02:05 +0800 Subject: [PATCH 0871/2060] ocaml: apply cygpath to each line of ld.conf after /mingwXX/lib/ocaml/ld.conf is loaded by the OCaml compiler which does not have the ability to execute external commands. Thus a post installation script is needed to convert the paths in ld.conf to their Windows counterparts. Signed-off-by: Junjie Mao --- mingw-w64-ocaml/PKGBUILD | 7 +++++-- mingw-w64-ocaml/ocaml-i686.install | 10 ++++++++++ mingw-w64-ocaml/ocaml-x86_64.install | 10 ++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-ocaml/ocaml-i686.install create mode 100644 mingw-w64-ocaml/ocaml-x86_64.install diff --git a/mingw-w64-ocaml/PKGBUILD b/mingw-w64-ocaml/PKGBUILD index 8d22e8a969..b24eb65af8 100644 --- a/mingw-w64-ocaml/PKGBUILD +++ b/mingw-w64-ocaml/PKGBUILD @@ -18,7 +18,8 @@ source=("http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz" "0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch" "0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch" "0007-Convert-to-windows-path-before-checking-stats.patch" - "0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch") + "0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch" + "0009-Use-relative-paths-to-search-for-ld.conf.patch") sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' '75b14de1f4ea982ddbb86f49576aa0be10f9286a' 'a780a6c94aaedcd0d19a7fbc26e09776b581a8af' @@ -26,7 +27,9 @@ sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' '17010515bd9715ed36300165643d8f3ad01288cf' '78b69527ce8a78fbb31f7b9f3e0e04bf3ffcc165' 'cff96df7caef78097ac73a382e4ef50418a7583b' - '2924e4b417a6268513f4c5a9fc374a3c7ec11b07') + '2924e4b417a6268513f4c5a9fc374a3c7ec11b07' + '921496361620301a6cb021bce418b59e403750c8') +install=ocaml-${CARCH}.install prepare() { cd ${srcdir}/${_realname}-${pkgver} diff --git a/mingw-w64-ocaml/ocaml-i686.install b/mingw-w64-ocaml/ocaml-i686.install new file mode 100644 index 0000000000..60053112dc --- /dev/null +++ b/mingw-w64-ocaml/ocaml-i686.install @@ -0,0 +1,10 @@ +post_install() { + cd /mingw32/lib/ocaml + mv ld.conf ld.conf.old + cat ld.conf.old | while read line; do cygpath -m $line >> ld.conf; done + rm ld.conf.old +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-ocaml/ocaml-x86_64.install b/mingw-w64-ocaml/ocaml-x86_64.install new file mode 100644 index 0000000000..bcf795d97c --- /dev/null +++ b/mingw-w64-ocaml/ocaml-x86_64.install @@ -0,0 +1,10 @@ +post_install() { + cd /mingw64/lib/ocaml + mv ld.conf ld.conf.old + cat ld.conf.old | while read line; do cygpath -m $line >> ld.conf; done + rm ld.conf.old +} + +post_upgrade() { + post_install +} From c375cc96a64e2c5169d6f8ff2519d0da617e06b8 Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Mon, 13 Apr 2015 00:18:49 +0600 Subject: [PATCH 0872/2060] nettle: Fix GMP_NUMB_BITS check in configure.ac --- .../0001-fix-GMP_NUMB_BITS-check.patch | 12 ++++++++++++ mingw-w64-nettle/PKGBUILD | 14 +++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-nettle/0001-fix-GMP_NUMB_BITS-check.patch diff --git a/mingw-w64-nettle/0001-fix-GMP_NUMB_BITS-check.patch b/mingw-w64-nettle/0001-fix-GMP_NUMB_BITS-check.patch new file mode 100644 index 0000000000..902427ccd0 --- /dev/null +++ b/mingw-w64-nettle/0001-fix-GMP_NUMB_BITS-check.patch @@ -0,0 +1,12 @@ +diff -Naur a/configure.ac b/configure.ac +--- a/configure.ac 2015-04-08 01:00:08.000000000 +0600 ++++ b/configure.ac 2015-04-09 18:44:40.857793700 +0600 +@@ -467,7 +467,7 @@ + dnl Note double square brackets, for extra m4 quoting. + tmp_bits=`grep GMP_NUMB_BITS "$srcdir/$asm_dir/$tmp_h" \ + | sed 's/^.*GMP_NUMB_BITS(\([[0-9]]*\)).*$/\1/'` +- if test "$tmp_bits" && test "$tmp_bits" != '${GMP_NUMB_BITS}' ; then ++ if test "$tmp_bits" && test "$tmp_bits" != "${GMP_NUMB_BITS}" ; then + AC_MSG_WARN([skipping $tmp_h, because GMP_NUMB_BITS != $tmp_bits]) + continue + fi diff --git a/mingw-w64-nettle/PKGBUILD b/mingw-w64-nettle/PKGBUILD index 53d8ec7b54..149bce75b9 100644 --- a/mingw-w64-nettle/PKGBUILD +++ b/mingw-w64-nettle/PKGBUILD @@ -3,7 +3,7 @@ _realname=nettle pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.1 -pkgrel=1 +pkgrel=2 pkgdesc="A low-level cryptographic library (mingw-w64)" arch=('any') url="http://www.lysator.liu.se/~nisse/nettle" @@ -11,8 +11,16 @@ license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gmp") options=('staticlibs' 'strip') -source=("http://www.lysator.liu.se/~nisse/archive/nettle-$pkgver.tar.gz") -md5sums=('075a3699cbab48ffa2ea6f9aad91e123') +source=("http://www.lysator.liu.se/~nisse/archive/nettle-$pkgver.tar.gz" + "0001-fix-GMP_NUMB_BITS-check.patch") +md5sums=('075a3699cbab48ffa2ea6f9aad91e123' + '650c6d9784de16b8e0bb016cde260f17') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i "${srcdir}"/0001-fix-GMP_NUMB_BITS-check.patch + autoreconf -fiv +} build() { mkdir -p "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" From c11e2d85f66e7875224556a81a24ae92f1586999 Mon Sep 17 00:00:00 2001 From: Josip Date: Sun, 12 Apr 2015 22:29:42 +0200 Subject: [PATCH 0873/2060] python-icu: fix version string import PyICU PyICU.VERSION can segfault --- mingw-w64-python-icu/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-icu/PKGBUILD b/mingw-w64-python-icu/PKGBUILD index 7fe87e7ac9..4945655da1 100644 --- a/mingw-w64-python-icu/PKGBUILD +++ b/mingw-w64-python-icu/PKGBUILD @@ -3,7 +3,7 @@ _realname=PyICU pkgname=("${MINGW_PACKAGE_PREFIX}-python2-icu" "${MINGW_PACKAGE_PREFIX}-python3-icu") pkgver=1.8 -pkgrel=2 +pkgrel=3 pkgdesc="Python extension wrapping the ICU C++ API" arch=('any') license=('BSD') @@ -24,7 +24,7 @@ prepare() { build() { CFLAGS+=" -fpermissive" - export PYICU_CFLAGS="-DPYICU_VER='${pkgver}'" + export PYICU_CFLAGS="-DPYICU_VER=\\\"${pkgver}\\\"" export PYICU_LFLAGS="-L${MINGW_PREFIX}/lib" export PYICU_INCLUDES="${MINGW_PREFIX}/include" export PYICU_LIBRARIES="icuin;icuuc;icudt;icule" From 168d1b111628e62453a4aee628349176c88a7740 Mon Sep 17 00:00:00 2001 From: Josip Date: Mon, 13 Apr 2015 00:46:04 +0200 Subject: [PATCH 0874/2060] gdk-pixbuf2: fix introspection --- .../0002-gdk-pixbuf-introspection.patch | 127 ++++++++++++++++++ mingw-w64-gdk-pixbuf2/PKGBUILD | 9 +- 2 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch diff --git a/mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch b/mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch new file mode 100644 index 0000000000..01babfa760 --- /dev/null +++ b/mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch @@ -0,0 +1,127 @@ +header files pached for introspection workaround + +--- gdk-pixbuf/gdk-pixbuf-animation.h Thu Mar 06 11:36:45 2014 ++++ gdk-pixbuf/gdk-pixbuf-animation.h Wed May 28 10:48:29 2014 +@@ -62,12 +62,6 @@ + + GType gdk_pixbuf_animation_get_type (void) G_GNUC_CONST; + +-#ifndef __GTK_DOC_IGNORE__ +-#ifdef G_OS_WIN32 +-#define gdk_pixbuf_animation_new_from_file gdk_pixbuf_animation_new_from_file_utf8 +-#endif +-#endif +- + GdkPixbufAnimation *gdk_pixbuf_animation_new_from_file (const char *filename, + GError **error); + GdkPixbufAnimation *gdk_pixbuf_animation_new_from_stream (GInputStream *stream, +@@ -81,6 +75,16 @@ + GError **error); + GdkPixbufAnimation *gdk_pixbuf_animation_new_from_resource(const char *resource_path, + GError **error); ++ ++#ifndef __GTK_DOC_IGNORE__ ++#ifdef G_OS_WIN32 ++#define gdk_pixbuf_animation_new_from_file gdk_pixbuf_animation_new_from_file_utf8 ++ ++GdkPixbufAnimation *gdk_pixbuf_animation_new_from_file_utf8 (const char *filename, ++ GError **error); ++ ++#endif ++#endif + + #ifndef GDK_PIXBUF_DISABLE_DEPRECATED + G_DEPRECATED_FOR(g_object_ref) +--- gdk-pixbuf/gdk-pixbuf-core.h Sat Mar 15 04:09:46 2014 ++++ gdk-pixbuf/gdk-pixbuf-core.h Wed May 28 10:48:29 2014 +@@ -261,15 +261,6 @@ + + /* Simple loading */ + +-#ifndef __GTK_DOC_IGNORE__ +-#ifdef G_OS_WIN32 +-/* DLL ABI stability hack. */ +-#define gdk_pixbuf_new_from_file gdk_pixbuf_new_from_file_utf8 +-#define gdk_pixbuf_new_from_file_at_size gdk_pixbuf_new_from_file_at_size_utf8 +-#define gdk_pixbuf_new_from_file_at_scale gdk_pixbuf_new_from_file_at_scale_utf8 +-#endif +-#endif +- + GdkPixbuf *gdk_pixbuf_new_from_file (const char *filename, + GError **error); + GdkPixbuf *gdk_pixbuf_new_from_file_at_size (const char *filename, +@@ -303,33 +294,69 @@ + const guint8 *data, + gboolean copy_pixels, + GError **error); +- ++ ++#ifndef __GTK_DOC_IGNORE__ ++#ifdef G_OS_WIN32 ++/* DLL ABI stability hack. */ ++#define gdk_pixbuf_new_from_file gdk_pixbuf_new_from_file_utf8 ++#define gdk_pixbuf_new_from_file_at_size gdk_pixbuf_new_from_file_at_size_utf8 ++#define gdk_pixbuf_new_from_file_at_scale gdk_pixbuf_new_from_file_at_scale_utf8 ++ ++GdkPixbuf *gdk_pixbuf_new_from_file_utf8 (const char *filename, ++ GError **error); ++GdkPixbuf *gdk_pixbuf_new_from_file_at_size_utf8 (const char *filename, ++ int width, ++ int height, ++ GError **error); ++GdkPixbuf *gdk_pixbuf_new_from_file_at_scale_utf8 (const char *filename, ++ int width, ++ int height, ++ gboolean preserve_aspect_ratio, ++ GError **error); ++ ++#endif ++#endif ++ + /* Mutations */ + void gdk_pixbuf_fill (GdkPixbuf *pixbuf, + guint32 pixel); + + /* Saving */ + ++gboolean gdk_pixbuf_save (GdkPixbuf *pixbuf, ++ const char *filename, ++ const char *type, ++ GError **error, ++ ...) G_GNUC_NULL_TERMINATED; ++ ++gboolean gdk_pixbuf_savev (GdkPixbuf *pixbuf, ++ const char *filename, ++ const char *type, ++ char **option_keys, ++ char **option_values, ++ GError **error); ++ + #ifndef __GTK_DOC_IGNORE__ + #ifdef G_OS_WIN32 + /* DLL ABI stability hack. */ + #define gdk_pixbuf_save gdk_pixbuf_save_utf8 + #define gdk_pixbuf_savev gdk_pixbuf_savev_utf8 +-#endif +-#endif + +-gboolean gdk_pixbuf_save (GdkPixbuf *pixbuf, ++gboolean gdk_pixbuf_save_utf8 (GdkPixbuf *pixbuf, + const char *filename, + const char *type, + GError **error, + ...) G_GNUC_NULL_TERMINATED; + +-gboolean gdk_pixbuf_savev (GdkPixbuf *pixbuf, ++gboolean gdk_pixbuf_savev_utf8 (GdkPixbuf *pixbuf, + const char *filename, + const char *type, + char **option_keys, + char **option_values, + GError **error); ++ ++#endif ++#endif + + /* Saving to a callback function */ + diff --git a/mingw-w64-gdk-pixbuf2/PKGBUILD b/mingw-w64-gdk-pixbuf2/PKGBUILD index f73b20be6c..9eae4d78dc 100644 --- a/mingw-w64-gdk-pixbuf2/PKGBUILD +++ b/mingw-w64-gdk-pixbuf2/PKGBUILD @@ -4,7 +4,7 @@ _realname=gdk-pixbuf2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.31.1 -pkgrel=2 +pkgrel=3 pkgdesc="An image loading library (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -20,15 +20,18 @@ options=('strip' 'staticlibs') install=${_realname}-${CARCH}.install source=("http://download.gnome.org/sources/gdk-pixbuf/${pkgver%.*}/gdk-pixbuf-$pkgver.tar.xz" 0001-Use-a-regex-to-properly-export-the-symbols.patch - 0001-Give-priority-to-the-modules-using-the-open-source-l.patch) + 0001-Give-priority-to-the-modules-using-the-open-source-l.patch + 0002-gdk-pixbuf-introspection.patch) sha256sums=('25a75e3c61dac11e6ff6416ad846951ccafac6486b1c6a1bfb0b213b99db52cd' 'e8d278e30c44e973e14e3c61e8ab195621d6a9a402e0da557db4616955ca4543' - '8f8b3882b3bbc6d32e99230ab188a5749cea57c37b699e371cb7f6096a1ec712') + '8f8b3882b3bbc6d32e99230ab188a5749cea57c37b699e371cb7f6096a1ec712' + 'eb2c31acf2bd50a6d8a5eae465afca5651268f0e8bc6f3f7d8cdc54a4cc76c72') prepare() { cd ${srcdir}/gdk-pixbuf-${pkgver} patch -p1 -i ${srcdir}/0001-Use-a-regex-to-properly-export-the-symbols.patch patch -p1 -i ${srcdir}/0001-Give-priority-to-the-modules-using-the-open-source-l.patch + patch -p0 -i ${srcdir}/0002-gdk-pixbuf-introspection.patch autoreconf -fi } From 78e612c479b09e8789f16efd69345131971cbac0 Mon Sep 17 00:00:00 2001 From: Junjie Mao Date: Mon, 13 Apr 2015 08:59:30 +0800 Subject: [PATCH 0875/2060] ocaml: remove the temporary patch during development Signed-off-by: Junjie Mao --- mingw-w64-ocaml/PKGBUILD | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mingw-w64-ocaml/PKGBUILD b/mingw-w64-ocaml/PKGBUILD index b24eb65af8..07e9dab2a8 100644 --- a/mingw-w64-ocaml/PKGBUILD +++ b/mingw-w64-ocaml/PKGBUILD @@ -18,8 +18,7 @@ source=("http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz" "0005-Install-libraries-to-lib-ocaml-instead-of-lib.patch" "0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch" "0007-Convert-to-windows-path-before-checking-stats.patch" - "0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch" - "0009-Use-relative-paths-to-search-for-ld.conf.patch") + "0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch") sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' '75b14de1f4ea982ddbb86f49576aa0be10f9286a' 'a780a6c94aaedcd0d19a7fbc26e09776b581a8af' @@ -27,8 +26,7 @@ sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' '17010515bd9715ed36300165643d8f3ad01288cf' '78b69527ce8a78fbb31f7b9f3e0e04bf3ffcc165' 'cff96df7caef78097ac73a382e4ef50418a7583b' - '2924e4b417a6268513f4c5a9fc374a3c7ec11b07' - '921496361620301a6cb021bce418b59e403750c8') + '2924e4b417a6268513f4c5a9fc374a3c7ec11b07') install=ocaml-${CARCH}.install prepare() { From 98e08494edefe25e38dc35b7ecdef3ecee6afaa4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 12 Apr 2015 22:59:18 +0300 Subject: [PATCH 0876/2060] Remove packages from ${MINGW_PACKAGE_PREFIX} group. Fix typo. --- mingw-w64-bc/PKGBUILD | 11 ++++------- mingw-w64-grep/PKGBUILD | 11 ++++------- mingw-w64-sed/PKGBUILD | 11 ++++------- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/mingw-w64-bc/PKGBUILD b/mingw-w64-bc/PKGBUILD index 9ef4be6b88..351d0be932 100644 --- a/mingw-w64-bc/PKGBUILD +++ b/mingw-w64-bc/PKGBUILD @@ -4,17 +4,14 @@ _realname=bc pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.06 -pkgrel=1 -pkgdesc='bc is an arbitrary precision numeric processing language' -groups=("${MINGW_PACKAGE_PREFIX}") +pkgrel=2 +pkgdesc='bc is an arbitrary precision numeric processing language (mingw-w64)' arch=('any') url='http://www.gnu.org/software/bc/' - license=('GPL3') - +options=('strip' '!libtool' 'staticlibs') source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.gz") md5sums=('d44b5dddebd8a7a7309aea6c36fda117') -options=('strip' '!libtool' 'staticlibs') prepare() { cd $srcdir/${_realname}-${pkgver} @@ -25,7 +22,7 @@ build() { ./configure --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ + --target=${MINGW_CHOST} make } diff --git a/mingw-w64-grep/PKGBUILD b/mingw-w64-grep/PKGBUILD index e8fd6e800e..c49490a7bf 100644 --- a/mingw-w64-grep/PKGBUILD +++ b/mingw-w64-grep/PKGBUILD @@ -4,19 +4,16 @@ _realname=grep pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.21 -pkgrel=1 -pkgdesc='Grep searches one or more input files for lines containing a match to a specified pattern' +pkgrel=2 +pkgdesc="Grep searches one or more input files for lines containing a match to a specified pattern (mingw-w64)" groups=("${MINGW_PACKAGE_PREFIX}") arch=('any') url='http://www.gnu.org/software/grep/' - license=('GPL3') - depends=("${MINGW_PACKAGE_PREFIX}-pcre") - +options=('strip' '!libtool' 'staticlibs') source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz") md5sums=('43c48064d6409862b8a850db83c8038a') -options=('strip' '!libtool' 'staticlibs') prepare() { cd $srcdir/${_realname}-${pkgver} @@ -27,7 +24,7 @@ build() { ./configure --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ + --target=${MINGW_CHOST} make } diff --git a/mingw-w64-sed/PKGBUILD b/mingw-w64-sed/PKGBUILD index cfd262244f..446319470f 100644 --- a/mingw-w64-sed/PKGBUILD +++ b/mingw-w64-sed/PKGBUILD @@ -4,19 +4,16 @@ _realname=sed pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=4.2.2 -pkgrel=1 -pkgdesc='Sed is a stream editor' -groups=("${MINGW_PACKAGE_PREFIX}") +pkgrel=2 +pkgdesc="Sed is a stream editor (mingw-w64)" arch=('any') url='http://www.gnu.org/software/sed/' - license=('GPL3') - +options=('strip' '!libtool' 'staticlibs') source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.gz" msvc_invalid_parameter_handler.patch) md5sums=('4111de4faa3b9848a0686b2f260c5056' 'a648d571107f917f1b039a88ff45cf4a') -options=('strip' '!libtool' 'staticlibs') prepare() { cd $srcdir/${_realname}-${pkgver} @@ -28,7 +25,7 @@ build() { ./configure --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ + --target=${MINGW_CHOST} make } From ab01b53608bf894c433d76f1b8e5704155ef661a Mon Sep 17 00:00:00 2001 From: Drew Waranis Date: Mon, 13 Apr 2015 01:02:08 -0700 Subject: [PATCH 0877/2060] jsoncpp: Update to 1.6.2 --- mingw-w64-jsoncpp/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-jsoncpp/PKGBUILD b/mingw-w64-jsoncpp/PKGBUILD index fa0b0c7ddc..72f9b71018 100644 --- a/mingw-w64-jsoncpp/PKGBUILD +++ b/mingw-w64-jsoncpp/PKGBUILD @@ -2,7 +2,7 @@ _realname=jsoncpp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.4 +pkgver=1.6.2 pkgrel=1 pkgdesc="A C++ library for interacting with JSON (mingw-w64)" arch=('any') @@ -14,7 +14,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" ) options=('staticlibs' '!strip' '!buildflags') source=("https://github.com/open-source-parsers/jsoncpp/archive/$pkgver.tar.gz") -md5sums=('741b97e374bfd357b30cfcfe232d1914') +md5sums=('5a62da8b5c5b0e46a0e782e7363aee3d') build() { mkdir "${srcdir}/build-${CARCH}" From d6136ea3dc2ef8f805c842956cee7756abb35ec3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 13 Apr 2015 11:11:02 +0300 Subject: [PATCH 0878/2060] ocaml: Increase version. --- mingw-w64-ocaml/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-ocaml/PKGBUILD b/mingw-w64-ocaml/PKGBUILD index 07e9dab2a8..8cba9f0b33 100644 --- a/mingw-w64-ocaml/PKGBUILD +++ b/mingw-w64-ocaml/PKGBUILD @@ -3,7 +3,7 @@ _realname=ocaml pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=4.02.1 -pkgrel=3 +pkgrel=4 pkgdesc="An industrial strength programming language supporting functional, imperative and object-oriented styles (mingw-w64)" arch=('any') url='http://ocaml.org/' From f911867fd148c9a1856174a02308ac66016478c9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 13 Apr 2015 12:26:57 +0300 Subject: [PATCH 0879/2060] mesa: Update to 10.5.3 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 630e081601..b71a1259d6 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,7 +2,7 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.5.2 +pkgver=10.5.3 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('528b3b0c0ff330766b9788da04a9fabd' +md5sums=('72aaa2604b38135a3a37c37cd967284d' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From 84dd515f41425dc6db59f9592abcd45ed028cdcb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 13 Apr 2015 12:27:59 +0300 Subject: [PATCH 0880/2060] ffmpeg: Update to 2.6.2 --- mingw-w64-ffmpeg/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index d9b254bee8..bef3ffa6c5 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,8 +2,8 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.6.1 -pkgrel=2 +pkgver=2.6.2 +pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" @@ -41,7 +41,7 @@ depends=( ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://ffmpeg.org/releases/$_realname-$pkgver.tar.bz2) -md5sums=('62b5a37525fdf79aedd4a51a64793ed7') +md5sums=('e75d598921285d6775f20164a91936ac') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 77a5640529a92a615916efa340c0a12fc72d27a4 Mon Sep 17 00:00:00 2001 From: Paul Moore Date: Sat, 11 Apr 2015 16:13:41 +0100 Subject: [PATCH 0881/2060] New package wget --- mingw-w64-wget/PKGBUILD | 46 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 mingw-w64-wget/PKGBUILD diff --git a/mingw-w64-wget/PKGBUILD b/mingw-w64-wget/PKGBUILD new file mode 100644 index 0000000000..e2e1b4fc6e --- /dev/null +++ b/mingw-w64-wget/PKGBUILD @@ -0,0 +1,46 @@ +# Maintainer: Alexey Pavlov +# Contributor: Paul Moore + +_realname=wget +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1.16.3 +pkgrel=1 +pkgdesc='Wget retrieves files using HTTP, HTTPS and FTP' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='http://www.gnu.org/software/wget/' + +license=('GPL3') + +depends=("${MINGW_PACKAGE_PREFIX}-pcre" + "${MINGW_PACKAGE_PREFIX}-libidn" + "${MINGW_PACKAGE_PREFIX}-openssl" + ) + +source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz") +md5sums=('d2e4455781a70140ae83b54ca594ce21') +options=('strip' '!libtool' 'staticlibs') + +prepare() { + cd $srcdir/${_realname}-${pkgver} +} + +build() { + cd $srcdir/${_realname}-${pkgver} + ./configure --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --with-ssl=openssl + + make +} + +package() { + cd ${srcdir}/${_realname}-${pkgver} + make install DESTDIR="${pkgdir}" + + # Licenses + install -Dm644 "${srcdir}/${_realname}-${pkgver}/README" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} From 241d2a82f87ac0829917ea682fc49bfa79eaccef Mon Sep 17 00:00:00 2001 From: Paul Moore Date: Mon, 13 Apr 2015 11:59:20 +0100 Subject: [PATCH 0882/2060] wget: A couple of fixes --- mingw-w64-wget/PKGBUILD | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mingw-w64-wget/PKGBUILD b/mingw-w64-wget/PKGBUILD index e2e1b4fc6e..0395ac0c98 100644 --- a/mingw-w64-wget/PKGBUILD +++ b/mingw-w64-wget/PKGBUILD @@ -5,8 +5,7 @@ _realname=wget pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.16.3 pkgrel=1 -pkgdesc='Wget retrieves files using HTTP, HTTPS and FTP' -groups=("${MINGW_PACKAGE_PREFIX}") +pkgdesc='Wget retrieves files using HTTP, HTTPS and FTP (mingw-w64)' arch=('any') url='http://www.gnu.org/software/wget/' From b0aede7107353d0628cc0e15eebe83325395ee37 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Sun, 12 Apr 2015 08:02:24 -0300 Subject: [PATCH 0883/2060] winsparkle: New package. --- .../001-compile-fixes.patch | 35 ++++++++++++++ mingw-w64-winsparkle-git/Makefile | 24 ++++++++++ mingw-w64-winsparkle-git/PKGBUILD | 46 +++++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 mingw-w64-winsparkle-git/001-compile-fixes.patch create mode 100644 mingw-w64-winsparkle-git/Makefile create mode 100644 mingw-w64-winsparkle-git/PKGBUILD diff --git a/mingw-w64-winsparkle-git/001-compile-fixes.patch b/mingw-w64-winsparkle-git/001-compile-fixes.patch new file mode 100644 index 0000000000..0d48130b06 --- /dev/null +++ b/mingw-w64-winsparkle-git/001-compile-fixes.patch @@ -0,0 +1,35 @@ +diff -aur 000/src/download.cpp 001/src/download.cpp +--- 000/src/download.cpp 2015-04-12 07:10:48.357386800 -0300 ++++ 001/src/download.cpp 2015-04-12 07:11:26.623061500 -0300 +@@ -152,7 +152,7 @@ + NULL, // lpszHeaders + -1, // dwHeadersLength + dwFlags, +- NULL // dwContext ++ 0 // dwContext + ); + if ( !conn ) + throw Win32Exception(); +diff -aur 000/src/ui.cpp 001/src/ui.cpp +--- 000/src/ui.cpp 2015-04-12 07:10:48.388636400 -0300 ++++ 001/src/ui.cpp 2015-04-12 07:12:39.286851600 -0300 +@@ -1339,7 +1339,6 @@ + SignalReady(); + + // Run the app: +- wxMSWDisableSettingHighDPIAware(); + wxEntry(ms_hInstance); + } + +diff -aur 000/src/utils.h 001/src/utils.h +--- 000/src/utils.h 2015-04-12 07:10:48.404261800 -0300 ++++ 001/src/utils.h 2015-04-12 07:11:26.638687500 -0300 +@@ -55,7 +55,7 @@ + std::basic_string out; + out.reserve(s.length()); + +- for ( std::basic_string::const_iterator i = s.begin(); i != s.end(); ++i ) ++ for ( typename std::basic_string::const_iterator i = s.begin(); i != s.end(); ++i ) + { + out += static_cast(*i); + } diff --git a/mingw-w64-winsparkle-git/Makefile b/mingw-w64-winsparkle-git/Makefile new file mode 100644 index 0000000000..a0f873d31f --- /dev/null +++ b/mingw-w64-winsparkle-git/Makefile @@ -0,0 +1,24 @@ +# GCC makefile for WinSparkle +# Copyright (C) 2015 Renato Silva +# This file is licensed under the same terms as WinSparkle + +all: static dll + +objects: + gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE appcast.cpp -I../include + gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE appcontroller.cpp -I../include + gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE dll_api.cpp -I../include + gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE dllmain.cpp -I../include + gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE download.cpp -I../include + gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE error.cpp -I../include + gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE settings.cpp -I../include + gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE threads.cpp -I../include + gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE updatechecker.cpp -I../include + gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE ui.cpp -I../include $(shell wx-config --cflags) + gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE updatedownloader.cpp -I../include $(shell wx-config --cflags) + +static: objects + ar rcs libwinsparkle.a *.o + +dll: objects + gcc -shared -mthreads -o libwinsparkle.dll *.o -Wl,--out-implib,libwinsparkle.dll.a -lstdc++ $(shell wx-config --libs core) -lexpat -lwininet -lversion -lole32 -loleaut32 -lrpcrt4 -luuid diff --git a/mingw-w64-winsparkle-git/PKGBUILD b/mingw-w64-winsparkle-git/PKGBUILD new file mode 100644 index 0000000000..9745a360e9 --- /dev/null +++ b/mingw-w64-winsparkle-git/PKGBUILD @@ -0,0 +1,46 @@ +# Maintainer: Renato Silva Date: Mon, 13 Apr 2015 13:14:53 +0200 Subject: [PATCH 0884/2060] p11-kit: Use synchronous "spawn" instead of asynchronous "exec" "exec" behaves like "spawn" with "_P_OVERLAY", i.e. it overlays a calling process with a new process, destroying the calling process. This causes problems if "p11-kit extract" is called in a script and the output file is immediately used in the script as the internally called "trust" process might not have finished writing the file by the time "p11-kit" returns control to the script. --- .../0011-p11-kit-spawn-external.patch | 66 +++++++++++++++++++ mingw-w64-p11-kit/PKGBUILD | 7 +- 2 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-p11-kit/0011-p11-kit-spawn-external.patch diff --git a/mingw-w64-p11-kit/0011-p11-kit-spawn-external.patch b/mingw-w64-p11-kit/0011-p11-kit-spawn-external.patch new file mode 100644 index 0000000000..ef36997988 --- /dev/null +++ b/mingw-w64-p11-kit/0011-p11-kit-spawn-external.patch @@ -0,0 +1,66 @@ +--- p11-kit-0.23.1/p11-kit/p11-kit.c.orig 2015-04-13 13:01:51.331355100 +0200 ++++ p11-kit-0.23.1/p11-kit/p11-kit.c 2015-04-13 13:09:46.346179100 +0200 +@@ -72,6 +72,7 @@ + char *argv[]) + { + char **args; ++ int code; + + args = calloc (argc + 2, sizeof (char *)); + return_val_if_fail (args != NULL, 1); +@@ -80,14 +81,18 @@ + memcpy (args + 1, argv, sizeof (char *) * argc); + args[argc + 1] = NULL; + +- execv (args[0], args); +- +- /* At this point we have no command */ +- p11_message_err (errno, "couldn't run trust tool"); ++ code = _spawnv (_P_WAIT, args[0], args); + + free (argv[0]); + free (args); +- return 2; ++ ++ if (code) { ++ /* At this point we have no command */ ++ p11_message_err (errno, "couldn't run trust tool"); ++ return 2; ++ } ++ ++ return 0; + } + + int +@@ -97,6 +102,7 @@ + const char *private_dir; + char *filename; + char *path; ++ int code; + + /* These are trust commands, send them to that tool */ + if (strcmp (argv[0], "extract") == 0) { +@@ -118,14 +124,18 @@ + return_val_if_fail (path != NULL, 1); + + argv[argc] = NULL; +- execv (path, argv); +- +- /* At this point we have no command */ +- p11_message ("'%s' is not a valid command. See 'p11-kit --help'", argv[0]); ++ code = _spawnv (_P_WAIT, path, argv); + + free (filename); + free (path); +- return 2; ++ ++ if (code) { ++ /* At this point we have no command */ ++ p11_message ("'%s' is not a valid command. See 'p11-kit --help'", argv[0]); ++ return 2; ++ } ++ ++ return 0; + } + + int diff --git a/mingw-w64-p11-kit/PKGBUILD b/mingw-w64-p11-kit/PKGBUILD index d4dfaef810..c960bbb9ad 100644 --- a/mingw-w64-p11-kit/PKGBUILD +++ b/mingw-w64-p11-kit/PKGBUILD @@ -27,7 +27,8 @@ source=($url/releases/$_realname-$pkgver.tar.gz{,.sig} 0007-mmap-CreateFile-with-FILE_SHARE_READ.patch 0008-add-debugging-to-mmap.patch 0009-add-debugging-to-path.patch - 0010-fix-transport-test.patch) + 0010-fix-transport-test.patch + 0011-p11-kit-spawn-external.patch) md5sums=('96f073270c489c9a594e1c9413f42db8' 'SKIP' '70330b415eb5167e5a530c13bb96c212' @@ -39,7 +40,8 @@ md5sums=('96f073270c489c9a594e1c9413f42db8' '3a37950e2a7ab95a4e691c02ff0603ab' '0dcd0d7e10d5d898f32da8866580d640' '27793fc62cf1fbfe52964ba8099d2b44' - '8ecfeb942a3de9cb7355519c0eb62f79') + '8ecfeb942a3de9cb7355519c0eb62f79' + '3cd8e579c1163be32be3b5bcaf45e711') prepare() { cd "${srcdir}"/${_realname}-${pkgver} @@ -54,6 +56,7 @@ prepare() { # patch -p1 -i ${srcdir}/0007-add-debugging-to-mmap.patch # patch -p1 -i ${srcdir}/0008-add-debugging-to-path.patch patch -p1 -i ${srcdir}/0010-fix-transport-test.patch + patch -p1 -i ${srcdir}/0011-p11-kit-spawn-external.patch autoreconf -vfi gtkdocize From 7160c89852e14957f2555bc67ceb2aecd51a0d50 Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Mon, 13 Apr 2015 13:56:16 +0200 Subject: [PATCH 0885/2060] ca-certificates: Remove the "sleep" work-around This is not required anymore as "p11-kit" was patched to call "trust" synchronously. --- mingw-w64-ca-certificates/ca-certificates-i686.install | 2 -- mingw-w64-ca-certificates/ca-certificates-x86_64.install | 2 -- 2 files changed, 4 deletions(-) diff --git a/mingw-w64-ca-certificates/ca-certificates-i686.install b/mingw-w64-ca-certificates/ca-certificates-i686.install index 432326aa6b..b3fce9c4e0 100644 --- a/mingw-w64-ca-certificates/ca-certificates-i686.install +++ b/mingw-w64-ca-certificates/ca-certificates-i686.install @@ -12,8 +12,6 @@ post_install() { ${_mingw_prefix}/bin/p11-kit extract --format=pem-bundle --filter=ca-anchors --overwrite --purpose code-signing $DEST/pem/objsign-ca-bundle.pem ${_mingw_prefix}/bin/p11-kit extract --format=java-cacerts --filter=ca-anchors --overwrite --purpose server-auth $DEST/java/cacerts - # These files end up not being overwritten without a sleep - sleep 0.5 mkdir -p ${_mingw_prefix}/ssl/certs cp -f $DEST/pem/tls-ca-bundle.pem ${_mingw_prefix}/ssl/certs/ca-bundle.crt cp -f $DEST/pem/tls-ca-bundle.pem ${_mingw_prefix}/ssl/cert.pem diff --git a/mingw-w64-ca-certificates/ca-certificates-x86_64.install b/mingw-w64-ca-certificates/ca-certificates-x86_64.install index aedae6b8ac..5ba7dc4a78 100644 --- a/mingw-w64-ca-certificates/ca-certificates-x86_64.install +++ b/mingw-w64-ca-certificates/ca-certificates-x86_64.install @@ -12,8 +12,6 @@ post_install() { ${_mingw_prefix}/bin/p11-kit extract --format=pem-bundle --filter=ca-anchors --overwrite --purpose code-signing $DEST/pem/objsign-ca-bundle.pem ${_mingw_prefix}/bin/p11-kit extract --format=java-cacerts --filter=ca-anchors --overwrite --purpose server-auth $DEST/java/cacerts - # These files end up not being overwritten without a sleep - sleep 0.5 mkdir -p ${_mingw_prefix}/ssl/certs cp -f $DEST/pem/tls-ca-bundle.pem ${_mingw_prefix}/ssl/certs/ca-bundle.crt cp -f $DEST/pem/tls-ca-bundle.pem ${_mingw_prefix}/ssl/cert.pem From 8f430e73080d90bd31e19609dbaf1271f22ef158 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 13 Apr 2015 15:17:29 +0300 Subject: [PATCH 0886/2060] p11-kit: Increase version. --- mingw-w64-p11-kit/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-p11-kit/PKGBUILD b/mingw-w64-p11-kit/PKGBUILD index c960bbb9ad..73f5e9f9eb 100644 --- a/mingw-w64-p11-kit/PKGBUILD +++ b/mingw-w64-p11-kit/PKGBUILD @@ -5,7 +5,7 @@ _realname=p11-kit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.23.1 -pkgrel=1 +pkgrel=2 pkgdesc="Library to work with PKCS#11 modules" arch=('any') url="http://p11-glue.freedesktop.org" From 239afe3fe7b955493174afa7341ef19be4bdf3cb Mon Sep 17 00:00:00 2001 From: Paul Moore Date: Mon, 13 Apr 2015 14:20:32 +0100 Subject: [PATCH 0887/2060] New package diffutils --- mingw-w64-diffutils/PKGBUILD | 48 +++++++++++++++++++ .../msvc_invalid_parameter_handler.patch | 13 +++++ .../win64_dont_check_ptrdiff_size.patch | 13 +++++ .../win_use_raise_rather_than_kill.patch | 14 ++++++ 4 files changed, 88 insertions(+) create mode 100644 mingw-w64-diffutils/PKGBUILD create mode 100644 mingw-w64-diffutils/msvc_invalid_parameter_handler.patch create mode 100644 mingw-w64-diffutils/win64_dont_check_ptrdiff_size.patch create mode 100644 mingw-w64-diffutils/win_use_raise_rather_than_kill.patch diff --git a/mingw-w64-diffutils/PKGBUILD b/mingw-w64-diffutils/PKGBUILD new file mode 100644 index 0000000000..be64ba1108 --- /dev/null +++ b/mingw-w64-diffutils/PKGBUILD @@ -0,0 +1,48 @@ +# Maintainer: Alexey Pavlov +# Contributor: Paul Moore + +_realname=diffutils +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=3.3 +pkgrel=1 +pkgdesc="GNU Diffutils is a package of several programs related to finding differences between files (mingw-w64)" +arch=('any') +url='http://www.gnu.org/software/diffutils/' +license=('GPL3') +depends=("${MINGW_PACKAGE_PREFIX}-libwinpthread") +options=('strip' '!libtool' 'staticlibs') +source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz" + "win_use_raise_rather_than_kill.patch" + "win64_dont_check_ptrdiff_size.patch" + "msvc_invalid_parameter_handler.patch") +md5sums=('99180208ec2a82ce71f55b0d7389f1b3' + '6e979e13696642bd184fb6b946ba996a' + '957454716c06313df2251cd2baf5a89c' + 'de6ece1a99a2471131899e49355f87e4') + + +prepare() { + cd $srcdir/${_realname}-${pkgver} + patch -p0 -i ${srcdir}/win_use_raise_rather_than_kill.patch + patch -p0 -i ${srcdir}/win64_dont_check_ptrdiff_size.patch + patch -p0 -i ${srcdir}/msvc_invalid_parameter_handler.patch +} + +build() { + cd $srcdir/${_realname}-${pkgver} + ./configure --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + + make +} + +package() { + cd ${srcdir}/${_realname}-${pkgver} + make install DESTDIR="${pkgdir}" + + # Licenses + install -Dm644 "${srcdir}/${_realname}-${pkgver}/README" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} diff --git a/mingw-w64-diffutils/msvc_invalid_parameter_handler.patch b/mingw-w64-diffutils/msvc_invalid_parameter_handler.patch new file mode 100644 index 0000000000..957349ef21 --- /dev/null +++ b/mingw-w64-diffutils/msvc_invalid_parameter_handler.patch @@ -0,0 +1,13 @@ +--- lib/config.hin.orig 2013-03-24 17:55:37.000000000 +0000 ++++ lib/config.hin 2015-04-13 13:38:17.351409000 +0100 +@@ -599,7 +599,9 @@ + + /* Define to 1 on MSVC platforms that have the "invalid parameter handler" + concept. */ +-#undef HAVE_MSVC_INVALID_PARAMETER_HANDLER ++/* Commented out due to a gnulib bug - see ++ http://lists.gnu.org/archive/html/bug-sed/2015-01/msg00003.html */ ++/* #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER */ + + /* Define to 1 if you have the `nanotime' function. */ + #undef HAVE_NANOTIME diff --git a/mingw-w64-diffutils/win64_dont_check_ptrdiff_size.patch b/mingw-w64-diffutils/win64_dont_check_ptrdiff_size.patch new file mode 100644 index 0000000000..128e84dbd1 --- /dev/null +++ b/mingw-w64-diffutils/win64_dont_check_ptrdiff_size.patch @@ -0,0 +1,13 @@ +--- src/system.h.orig 2013-02-02 04:39:05.000000000 +0000 ++++ src/system.h 2015-04-13 13:22:05.557095800 +0100 +@@ -132,7 +132,10 @@ + #define LIN_MAX PTRDIFF_MAX + verify (TYPE_SIGNED (lin)); + verify (sizeof (ptrdiff_t) <= sizeof (lin)); ++#ifndef _WIN64 ++/* On Windows 64-bit, this fails. It's probably not an issue in practice. */ + verify (sizeof (lin) <= sizeof (long int)); ++#endif + + /* This section contains POSIX-compliant defaults for macros + that are meant to be overridden by hand in config.h as needed. */ diff --git a/mingw-w64-diffutils/win_use_raise_rather_than_kill.patch b/mingw-w64-diffutils/win_use_raise_rather_than_kill.patch new file mode 100644 index 0000000000..998f5e5783 --- /dev/null +++ b/mingw-w64-diffutils/win_use_raise_rather_than_kill.patch @@ -0,0 +1,14 @@ +--- src/sdiff.c.orig 2013-02-02 04:39:05.000000000 +0000 ++++ src/sdiff.c 2015-04-13 13:17:38.480390800 +0100 +@@ -805,7 +805,11 @@ + + /* Yield an exit status indicating that a signal was received. */ + untrapsig (s); ++#if defined _MSC_VER || defined __MINGW32__ ++ raise (s); ++#else + kill (getpid (), s); ++#endif + + /* That didn't work, so exit with error status. */ + exit (EXIT_TROUBLE); From edb967f4f574b43f648b75d32b964a9f79abf576 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 14 Apr 2015 12:06:15 +0100 Subject: [PATCH 0888/2060] tools-git: Remove strip option, it's default anyway --- mingw-w64-tools-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index 0bb01abce4..ef8675232a 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -16,7 +16,7 @@ license=('custom') groups=("${MINGW_PACKAGE_PREFIX}-toolchain" "${MINGW_PACKAGE_PREFIX}") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libmangle") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -options=('strip' 'staticlibs' '!emptydirs') +options=('staticlibs' '!emptydirs') source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") md5sums=('SKIP') _tools="gendef genidl genpeimg widl" # genstubdll From 6c7d01e74027d4b0c15771bbad00634f1fd3cd70 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Tue, 14 Apr 2015 10:01:50 -0300 Subject: [PATCH 0889/2060] Licensing improvements for some packages. * libtiff: specify license as MIT. * jbigkit: specify license as GPL2. * libjpeg-turbo: this is not GPL but something similar to BSD. * wxwidgets: avoid GPL2-only infection from jbigkit by not linking with libtiff. * xz: specify licensing more clearly. * Install missing license files. --- mingw-w64-jbigkit/PKGBUILD | 6 ++++-- mingw-w64-libjpeg-turbo/PKGBUILD | 12 ++++++++++-- mingw-w64-libtiff/PKGBUILD | 10 ++++++++-- mingw-w64-wxwidgets/PKGBUILD | 14 ++++++++++++-- mingw-w64-xz/PKGBUILD | 9 +++++++-- 5 files changed, 41 insertions(+), 10 deletions(-) diff --git a/mingw-w64-jbigkit/PKGBUILD b/mingw-w64-jbigkit/PKGBUILD index e3b77dad35..d87bf6004b 100644 --- a/mingw-w64-jbigkit/PKGBUILD +++ b/mingw-w64-jbigkit/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=jbigkit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1 -pkgrel=1 +pkgrel=2 pkgdesc="Data compression library/utilities for bi-level high-resolution images (mingw-w64)" arch=('any') url="http://www.cl.cam.ac.uk/~mgk25/jbigkit/" -license=("GPL") +license=(GPL2) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') @@ -43,4 +44,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make prefix=${MINGW_PREFIX} DESTDIR="${pkgdir}" install + install -Dm644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libjpeg-turbo/PKGBUILD b/mingw-w64-libjpeg-turbo/PKGBUILD index 2286a3b635..8e0495b14d 100644 --- a/mingw-w64-libjpeg-turbo/PKGBUILD +++ b/mingw-w64-libjpeg-turbo/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=libjpeg-turbo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.0 -pkgrel=2 +pkgrel=3 pkgdesc="JPEG image codec with accelerated baseline compression and decompression (mingw-w64)" arch=('any') url="http://libjpeg-turbo.virtualgl.org" -license=("GPL, custom") +license=(custom:'BSD-like') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-nasm" "${MINGW_PACKAGE_PREFIX}-gcc") @@ -53,4 +54,11 @@ package() { make DESTDIR="$pkgdir" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm cp "${srcdir}"/${_realname}-${pkgver}/{jinclude,transupp}.h ${pkgdir}${MINGW_PREFIX}/include/ + + # Licenses + # See http://www.libjpeg-turbo.org/About/License + cd "${srcdir}/${_realname}-${pkgver}" + install -Dm644 README "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README" + install -Dm644 README-turbo.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README-turbo.txt" + install -Dm644 simd/jsimdext.inc "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/simd/jsimdext.inc" } diff --git a/mingw-w64-libtiff/PKGBUILD b/mingw-w64-libtiff/PKGBUILD index c49b4a8f07..532783f6c9 100644 --- a/mingw-w64-libtiff/PKGBUILD +++ b/mingw-w64-libtiff/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=libtiff pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.0.3 -pkgrel=4 +pkgrel=5 pkgdesc="Library for manipulation of TIFF images (mingw-w64)" arch=('any') url="http://www.remotesensing.org/libtiff" -license=("custom") +license=(MIT) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-jbigkit" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" @@ -54,4 +55,9 @@ package() { #rm -rf "${pkgdir}${MINGW_PREFIX}/share" cp ${srcdir}/tiff-${pkgver}/libtiff/{tiffiop,tif_dir}.h ${pkgdir}${MINGW_PREFIX}/include/ cp libtiff/tif_config.h ${pkgdir}${MINGW_PREFIX}/include/ + + # License + # See https://fedoraproject.org/wiki/Licensing:MIT#Hylafax_Variant + cd "${srcdir}/tiff-${pkgver}" + install -Dm644 COPYRIGHT "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYRIGHT" } diff --git a/mingw-w64-wxwidgets/PKGBUILD b/mingw-w64-wxwidgets/PKGBUILD index 426f24b946..6948944053 100644 --- a/mingw-w64-wxwidgets/PKGBUILD +++ b/mingw-w64-wxwidgets/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=wxWidgets pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2 -pkgrel=5 +pkgrel=6 pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)" arch=('any') license=("custom:wxWindows") @@ -14,7 +15,6 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-zlib" ) @@ -41,6 +41,7 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --with-msw \ + --without-libtiff \ --disable-mslu \ --enable-shared \ --enable-iniconf \ @@ -60,4 +61,13 @@ package() { make DESTDIR="${pkgdir}" install mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin + + # License files + cd "${srcdir}/${_realname}-${pkgver}/docs" + install -Dm644 preamble.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/preamble.txt" + install -Dm644 licence.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/licence.txt" + install -Dm644 licendoc.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/licendoc.txt" + install -Dm644 lgpl.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/lgpl.txt" + install -Dm644 gpl.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/gpl.txt" + install -Dm644 xserver.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/xserver.txt" } diff --git a/mingw-w64-xz/PKGBUILD b/mingw-w64-xz/PKGBUILD index 4132940398..70ee6d537d 100644 --- a/mingw-w64-xz/PKGBUILD +++ b/mingw-w64-xz/PKGBUILD @@ -1,13 +1,18 @@ # Maintainer: Alexey Pavlov +# Contributor: Renato Silva _realname=xz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.2.1 -pkgrel=1 +pkgrel=2 pkgdesc="Library and command line tools for XZ and LZMA compressed files (mingw-w64)" arch=('any') url="http://tukaani.org/xz" -license=("custom" "GPL" "LGPL") + +# TODO: check situation with getopt_long mentioned in COPYING for possible +# removal of LGPL from this field +license=(partial:'PublicDomain' partial:'LGPL2.1+' partial:'GPL2+') + makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext") options=('staticlibs' 'strip') From 51c6884cf6c8e6c65e3602e902426bcc455a2dc7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 14 Apr 2015 19:27:31 +0100 Subject: [PATCH 0890/2060] ag: Refresh patches --- ...w-both-extensions-and-full-filenames.patch | 36 ++--- ...ons-Fix-ordering-problems-with-color.patch | 126 ++++++++++-------- ...03-lang-Add-autotools-ac-am-in-m4-pc.patch | 6 +- ...-Makefile-Makefile.Debug-Makefile.Re.patch | 8 +- ...kepkg-PKGBUILD-diff-patch-in-install.patch | 8 +- mingw-w64-ag/PKGBUILD | 16 +-- mingw-w64-qtcreator/PKGBUILD | 2 +- ...2-autotools-run-shell-scripts-via-sh.patch | 76 ++++++----- 8 files changed, 145 insertions(+), 133 deletions(-) diff --git a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch index 3459f15607..71ba8797f2 100644 --- a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch +++ b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch @@ -1,4 +1,4 @@ -From 755575cefe9a2cf592940fad7474896f12ff1771 Mon Sep 17 00:00:00 2001 +From 5a80036bfcff8a3b91b9985aaf37ca0b38d636db Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 21:46:45 +0000 Subject: [PATCH 1/5] lang: Allow both extensions and full filenames @@ -16,10 +16,10 @@ are indicated by prefixing the pattern with a '^'. 3 files changed, 61 insertions(+), 48 deletions(-) diff --git a/src/lang.c b/src/lang.c -index 6f150dd..fcdfbbc 100644 +index 540bcb6..ee1f1e4 100644 --- a/src/lang.c +++ b/src/lang.c -@@ -81,20 +81,27 @@ size_t get_lang_count() { +@@ -88,20 +88,27 @@ size_t get_lang_count() { return sizeof(langs) / sizeof(lang_spec_t); } @@ -55,7 +55,7 @@ index 6f150dd..fcdfbbc 100644 regex_capacity *= 2; regex = ag_realloc(regex, regex_capacity); } -@@ -103,8 +110,12 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { +@@ -110,8 +117,12 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { } else { subsequent = 1; } @@ -70,13 +70,13 @@ index 6f150dd..fcdfbbc 100644 } regex[regex_length++] = ')'; -@@ -113,29 +124,29 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { +@@ -120,29 +131,29 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { return regex; } -size_t combine_file_extensions(size_t *extension_index, size_t len, char **exts) { +size_t combine_file_patterns(size_t *pattern_index, size_t len, char **pats) { - /* Keep it fixed as 100 for the reason that if you have more than 100 + /* Keep it fixed as 100 for the reason that if you have more than 100 * file types to search, you'd better search all the files. * */ - size_t ext_capacity = 100; @@ -86,7 +86,7 @@ index 6f150dd..fcdfbbc 100644 + size_t pat_capacity = 100; + (*pats) = (char *)ag_malloc(pat_capacity * SINGLE_PAT_LEN); + memset((*pats), 0, pat_capacity * SINGLE_PAT_LEN); -+ size_t num_patterns = 0; ++ size_t num_of_patterns = 0; size_t i; for (i = 0; i < len; ++i) { @@ -95,7 +95,7 @@ index 6f150dd..fcdfbbc 100644 + const char *pat = langs[pattern_index[i]].patterns[j]; do { - if (num_of_extensions == ext_capacity) { -+ if (num_patterns == pat_capacity) { ++ if (num_of_patterns == pat_capacity) { break; } - char *pos = (*exts) + num_of_extensions * SINGLE_EXT_LEN; @@ -103,15 +103,15 @@ index 6f150dd..fcdfbbc 100644 - ++num_of_extensions; - ext = langs[extension_index[i]].extensions[++j]; - } while (ext); -+ char *pos = (*pats) + num_patterns * SINGLE_PAT_LEN; ++ char *pos = (*pats) + num_of_patterns * SINGLE_PAT_LEN; + strncpy(pos, pat, strlen(pat)); -+ ++num_patterns; ++ ++num_of_patterns; + pat = langs[pattern_index[i]].patterns[++j]; + } while (pat); } - return num_of_extensions; -+ return num_patterns; ++ return num_of_patterns; } diff --git a/src/lang.h b/src/lang.h index d0007f9..202da4b 100644 @@ -165,10 +165,10 @@ index d0007f9..202da4b 100644 +size_t combine_file_patterns(size_t *pattern_index, size_t len, char **pats); #endif diff --git a/src/options.c b/src/options.c -index c511dcc..462894b 100644 +index 6efa4dd..a000f15 100644 --- a/src/options.c +++ b/src/options.c -@@ -183,9 +183,9 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -205,9 +205,9 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { size_t longopts_len, full_len; option_t *longopts; char *lang_regex = NULL; @@ -181,7 +181,7 @@ index c511dcc..462894b 100644 init_options(); -@@ -272,8 +272,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -295,8 +295,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { full_len = (longopts_len + lang_count + 1); longopts = ag_malloc(full_len * sizeof(option_t)); memcpy(longopts, base_longopts, sizeof(base_longopts)); @@ -192,7 +192,7 @@ index c511dcc..462894b 100644 for (i = 0; i < lang_count; i++) { option_t opt = { langs[i].name, no_argument, NULL, 0 }; -@@ -502,7 +502,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -525,7 +525,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { for (i = 0; i < lang_count; i++) { if (strcmp(longopts[opt_index].name, langs[i].name) == 0) { @@ -201,7 +201,7 @@ index c511dcc..462894b 100644 break; } } -@@ -518,16 +518,16 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -541,16 +541,16 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { } @@ -224,7 +224,7 @@ index c511dcc..462894b 100644 if (lang_regex) { free(lang_regex); } -@@ -564,8 +564,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -587,8 +587,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { for (lang_index = 0; lang_index < lang_count; lang_index++) { printf(" --%s\n ", langs[lang_index].name); int j; @@ -236,5 +236,5 @@ index c511dcc..462894b 100644 printf("\n\n"); } -- -2.3.0 +2.3.5 diff --git a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch index 4e9fed7498..3e3c5db1b5 100644 --- a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch +++ b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch @@ -1,4 +1,4 @@ -From 8a9ac7f208f38fb89eb5032ddc68055e6ab98f99 Mon Sep 17 00:00:00 2001 +From b369239d9a1eb01f1baa2582e170ea8b24b3036f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:12:15 +0000 Subject: [PATCH 2/5] options: Fix ordering problems with --color @@ -19,12 +19,12 @@ Moved around the logic of setting opts.color so that: 4. Default color to TRUE if MSYSCON env. var = mintty.exe --- configure.ac | 2 +- - src/options.c | 137 +++++++++++++++++++++++++++++++++++----------------------- - src/options.h | 10 +++++ - 3 files changed, 95 insertions(+), 54 deletions(-) + src/options.c | 148 ++++++++++++++++++++++++++++++++++++---------------------- + src/options.h | 10 ++++ + 3 files changed, 102 insertions(+), 58 deletions(-) diff --git a/configure.ac b/configure.ac -index 7116788..e29d1c4 100644 +index 06dfbd1..5674193 100644 --- a/configure.ac +++ b/configure.ac @@ -24,7 +24,7 @@ AX_PTHREAD( @@ -37,25 +37,29 @@ index 7116788..e29d1c4 100644 case $host in diff --git a/src/options.c b/src/options.c -index 462894b..e2a93b2 100644 +index a000f15..1f65c08 100644 --- a/src/options.c +++ b/src/options.c -@@ -113,9 +113,12 @@ void init_options(void) { +@@ -137,8 +137,16 @@ void print_version(void) { + void init_options(void) { memset(&opts, 0, sizeof(opts)); opts.casing = CASE_DEFAULT; - #ifdef _WIN32 -- opts.color = (getenv("ANSICON") || getenv("CMDER_ROOT")) ? TRUE : FALSE; -+ const char* env_MSYSCON = getenv("MSYSCON"); -+ opts.color = ((getenv("ANSICON") || getenv("CMDER_ROOT") -+ || (env_MSYSCON && !strcmp(env_MSYSCON, "mintty.exe")))) -+ ? COLOR_DEFAULT_TRUE : COLOR_DEFAULT_FALSE; - #else - opts.color = TRUE; +- opts.color_win_ansi = FALSE; + opts.color = COLOR_DEFAULT_TRUE; - #endif ++#ifdef _WIN32 ++ const char* env_MSYSCON = getenv("MSYSCON"); ++ opts.color_win_ansi = ((getenv("ANSICON") || getenv("CMDER_ROOT") ++ || (env_MSYSCON && !strcmp(env_MSYSCON, "mintty.exe")))) ++ ? COLOR_DEFAULT_TRUE : COLOR_DEFAULT_FALSE; ++#else ++ opts.color_win_ansi = COLOR_DEFAULT_FALSE; ++#endif ++ opts.max_matches_per_file = 0; opts.max_search_depth = DEFAULT_MAX_SEARCH_DEPTH; -@@ -199,7 +202,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + opts.path_sep = '\n'; +@@ -221,11 +229,11 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { { "before", optional_argument, NULL, 'B' }, { "break", no_argument, &opts.print_break, 1 }, { "case-sensitive", no_argument, NULL, 's' }, @@ -64,7 +68,12 @@ index 462894b..e2a93b2 100644 { "color-line-number", required_argument, NULL, 0 }, { "color-match", required_argument, NULL, 0 }, { "color-path", required_argument, NULL, 0 }, -@@ -233,7 +236,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +- { "color-win-ansi", no_argument, &opts.color_win_ansi, TRUE }, ++ { "color-win-ansi", no_argument, &opts.color_win_ansi, COLOR_EXPLICIT_TRUE }, + { "column", no_argument, &opts.column, 1 }, + { "context", optional_argument, NULL, 'C' }, + { "count", no_argument, NULL, 'c' }, +@@ -256,7 +264,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { { "no-recurse", no_argument, NULL, 'n' }, { "noaffinity", no_argument, &opts.use_thread_affinity, 0 }, { "nobreak", no_argument, &opts.print_break, 0 }, @@ -73,7 +82,7 @@ index 462894b..e2a93b2 100644 { "nofilename", no_argument, NULL, 0 }, { "nofollow", no_argument, &opts.follow_symlinks, 0 }, { "nogroup", no_argument, &group, 0 }, -@@ -295,22 +298,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -318,22 +326,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { } } @@ -96,7 +105,7 @@ index 462894b..e2a93b2 100644 int pcre_opts = 0; while ((ch = getopt_long(argc, argv, "A:aB:C:cDG:g:FfHhiLlm:nop:QRrSsvVtuUwz0", longopts, &opt_index)) != -1) { switch (ch) { -@@ -612,44 +599,11 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -635,42 +627,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { opts.after = opts.context; } @@ -106,7 +115,7 @@ index 462894b..e2a93b2 100644 - group = 1; - opts.search_stream = 0; - } - +- - if (opts.vimgrep) { - opts.color = 0; - opts.print_break = 0; @@ -114,23 +123,20 @@ index 462894b..e2a93b2 100644 - opts.search_stream = 0; - opts.print_path = PATH_PRINT_NOTHING; - } - +- - if (opts.parallel) { - opts.search_stream = 0; - } - -- if (opts.print_path != PATH_PRINT_DEFAULT || opts.print_break == 0) { -- goto skip_group; +- +- if (!(opts.print_path != PATH_PRINT_DEFAULT || opts.print_break == 0)) { +- if (group) { +- opts.print_break = 1; +- } else { +- opts.print_path = PATH_PRINT_DEFAULT_EACH_LINE; +- opts.print_break = 0; +- } - } - -- if (group) { -- opts.print_break = 1; -- } else { -- opts.print_path = PATH_PRINT_DEFAULT_EACH_LINE; -- opts.print_break = 0; -- } - --skip_group: +- - if (opts.search_stream) { - opts.print_break = 0; - opts.print_path = PATH_PRINT_NOTHING; @@ -138,14 +144,14 @@ index 462894b..e2a93b2 100644 - opts.print_line_numbers = 0; - } - } - +- if (accepts_query && argc > 0) { // use the provided query -@@ -703,4 +657,81 @@ skip_group: - } + opts.query = ag_strdup(argv[0]); +@@ -724,6 +680,84 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { (*paths)[i] = NULL; (*base_paths)[i] = NULL; -+ + + /* If we're not outputting to a terminal. change output to: + * turn off colors + * print filenames on every line @@ -176,7 +182,6 @@ index 462894b..e2a93b2 100644 + } + } + -+ + if (opts.ackmate) { + opts.color = COLOR_EMULATION_FALSE; + opts.print_break = 1; @@ -192,29 +197,19 @@ index 462894b..e2a93b2 100644 + opts.print_path = PATH_PRINT_NOTHING; + } + -+ if (opts.color == COLOR_DEFAULT_FALSE || opts.color == COLOR_EXPLICIT_FALSE || -+ opts.color == COLOR_EMULATION_FALSE) { -+ opts.color = COLOR_FALSE; -+ } else { -+ opts.color = COLOR_TRUE; -+ } -+ + if (opts.parallel) { + opts.search_stream = 0; + } + -+ if (opts.print_path != PATH_PRINT_DEFAULT || opts.print_break == 0) { -+ goto skip_group; ++ if (!(opts.print_path != PATH_PRINT_DEFAULT || opts.print_break == 0)) { ++ if (group) { ++ opts.print_break = 1; ++ } else { ++ opts.print_path = PATH_PRINT_DEFAULT_EACH_LINE; ++ opts.print_break = 0; ++ } + } + -+ if (group) { -+ opts.print_break = 1; -+ } else { -+ opts.print_path = PATH_PRINT_DEFAULT_EACH_LINE; -+ opts.print_break = 0; -+ } -+ -+skip_group: + if (opts.search_stream) { + opts.print_break = 0; + opts.print_path = PATH_PRINT_NOTHING; @@ -222,9 +217,24 @@ index 462894b..e2a93b2 100644 + opts.print_line_numbers = 0; + } + } - } ++ ++ if (opts.color == COLOR_DEFAULT_FALSE || opts.color == COLOR_EXPLICIT_FALSE || ++ opts.color == COLOR_EMULATION_FALSE) { ++ opts.color = COLOR_FALSE; ++ } else { ++ opts.color = COLOR_TRUE; ++ } ++ if (opts.color_win_ansi == COLOR_DEFAULT_FALSE) { ++ opts.color_win_ansi = COLOR_FALSE; ++ } else { ++ opts.color_win_ansi = COLOR_TRUE; ++ } ++ + #ifdef _WIN32 + windows_use_ansi(opts.color_win_ansi); + #endif diff --git a/src/options.h b/src/options.h -index c7d419f..758f6a0 100644 +index 7d7aca1..4bbd4e2 100644 --- a/src/options.h +++ b/src/options.h @@ -26,6 +26,16 @@ enum path_print_behavior { @@ -245,5 +255,5 @@ index c7d419f..758f6a0 100644 int ackmate; pcre *ackmate_dir_filter; -- -2.3.0 +2.3.5 diff --git a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch index ad551a7828..3a9c2d1cef 100644 --- a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch +++ b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch @@ -1,4 +1,4 @@ -From 4d1c15a61d0adfa69e4768fc56cb5ebb18520ba6 Mon Sep 17 00:00:00 2001 +From b87794bea192751fb28ce0fa51eea2868760da0e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:16:54 +0000 Subject: [PATCH 3/5] lang: Add autotools (ac, am, in, m4, pc) @@ -8,7 +8,7 @@ Subject: [PATCH 3/5] lang: Add autotools (ac, am, in, m4, pc) 1 file changed, 1 insertion(+) diff --git a/src/lang.c b/src/lang.c -index fcdfbbc..1c78d7c 100644 +index ee1f1e4..4d56ff0 100644 --- a/src/lang.c +++ b/src/lang.c @@ -8,6 +8,7 @@ lang_spec_t langs[] = { @@ -20,5 +20,5 @@ index fcdfbbc..1c78d7c 100644 { "cc", { "c", "h", "xs" } }, { "cfmx", { "cfc", "cfm", "cfml" } }, -- -2.3.0 +2.3.5 diff --git a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch index 8da1901ae1..f2f9e601e9 100644 --- a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch +++ b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch @@ -1,4 +1,4 @@ -From d8db4babec0dd29744c9b2ba02b8c11a1daceb36 Mon Sep 17 00:00:00 2001 +From 5fdb62e6d5fd206316f5b97636f41f81e1cfa903 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:18:27 +0000 Subject: [PATCH 4/5] lang: Add to make (^Makefile, ^Makefile.Debug, @@ -11,10 +11,10 @@ are used by Qt. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang.c b/src/lang.c -index 1c78d7c..c1d3152 100644 +index 4d56ff0..560cccf 100644 --- a/src/lang.c +++ b/src/lang.c -@@ -39,7 +39,7 @@ lang_spec_t langs[] = { +@@ -40,7 +40,7 @@ lang_spec_t langs[] = { { "lisp", { "lisp", "lsp" } }, { "lua", { "lua" } }, { "m4", { "m4" } }, @@ -24,5 +24,5 @@ index 1c78d7c..c1d3152 100644 { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, { "matlab", { "m" } }, -- -2.3.0 +2.3.5 diff --git a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch index 3b22b7a35a..7001d974c7 100644 --- a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch +++ b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch @@ -1,4 +1,4 @@ -From 5e9d9bf452f1f4777cc987c22e76bdba3f2098ee Mon Sep 17 00:00:00 2001 +From 35d2652a1a25566c61385e26fd5cf2185b6998df Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:21:26 +0000 Subject: [PATCH 5/5] lang: Add makepkg (^PKGBUILD, diff, patch, in, install) @@ -9,10 +9,10 @@ Used by the makepkg build system of ArchLinux and MSYS2 1 file changed, 1 insertion(+) diff --git a/src/lang.c b/src/lang.c -index c1d3152..bf37b20 100644 +index 560cccf..e6a6b4f 100644 --- a/src/lang.c +++ b/src/lang.c -@@ -40,6 +40,7 @@ lang_spec_t langs[] = { +@@ -41,6 +41,7 @@ lang_spec_t langs[] = { { "lua", { "lua" } }, { "m4", { "m4" } }, { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak" } }, @@ -21,5 +21,5 @@ index c1d3152..bf37b20 100644 { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, { "matlab", { "m" } }, -- -2.3.0 +2.3.5 diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index 26cbded827..3e5a45e3fc 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -1,11 +1,11 @@ # Maintainer: Martell Malone -# Contributor: Ray Donnelly +# Maintainer: Ray Donnelly _realname=ag _longname=the_silver_searcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.29.1.r1497.773e96a -pkgrel=2 +pkgver=0.29.1.r1562.60a0b77 +pkgrel=1 pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" arch=('any') url="http://geoff.greer.fm/ag" @@ -25,11 +25,11 @@ source=(#http://geoff.greer.fm/ag/releases/$_longname-$pkgver.tar.gz "0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch" "0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch") md5sums=('SKIP' - '932f1a99ab4ba7fd83aa381fc83fd673' - '0d6246065ed9502b0cd873c7e190dd13' - '46f89c42a408a55c05d719ac7e039541' - '3e6c13ece8e75dfd6560842112ca8ec9' - '2b568cd783a2a3f5da38b697855956e9') + '724af3c53b17138436b612d2221ab3c9' + '09f7f5aaa60b59b064ee0c8059779fbb' + 'b953503903c23cfd2100bbf84d0fa097' + '673513fd7129abf7fed400a176654577' + '9856bce9814d618c0177bf9532f97545') pkgver() { cd ${srcdir}/${_realname} diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 9dda823cf2..689467e9e3 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -57,7 +57,7 @@ sha256sums=('6ef76d23c778a58caffb487b8bc6a192defa2d5dd5fab1ecf8eb70d53ccfb98a' '18479a8a8eac63ae7e8dac2f3b18a3345f8e78779cc8b56fde4dc58f0fd4ada6' '1a1738379b0413484fd1ff3521b6bc85d034f5f964311d963dd044b4966b274b' '8244e66b1604d10951f1b32be3269ef453c47e9eb1b80c30be79a124b697ae0a' - '835c32b31000d2ef5c0e4a1f4f7872ecce77c19ea7cf25b5956f79bfe79094f2' + '30015b84c56e3989c5ea864c9d9922b488a6fe6d51430c1e2d9f4980916d4968' '809c0499b881866424fa4d3e0d2e3ce402b127221c070a35da4b135818a79eeb' '79fc4d2ef02ff8f458b1b330c683c2a86397f056369c90176a9ddbeba3b719fd' 'c4cae708825102d538e1ecb9a88ecb216d366feb779553a2e91f97c4b78f8427' diff --git a/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch b/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch index 3715c1f784..63ba2d5321 100644 --- a/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch +++ b/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch @@ -1,7 +1,7 @@ -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/autogenstep.cpp qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/autogenstep.cpp ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/autogenstep.cpp 2014-08-23 23:40:48.876515200 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/autogenstep.cpp 2014-08-23 23:41:22.947841700 +0100 -@@ -33,6 +33,7 @@ +diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autogenstep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autogenstep.cpp +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autogenstep.cpp 2015-04-14 16:54:22.915347100 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autogenstep.cpp 2015-04-14 16:54:45.689239000 +0100 +@@ -34,6 +34,7 @@ #include "autotoolsproject.h" #include "autotoolsbuildconfiguration.h" #include "autotoolsprojectconstants.h" @@ -9,7 +9,7 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag #include #include -@@ -157,11 +158,12 @@ +@@ -158,11 +159,12 @@ ProcessParameters *pp = processParameters(); pp->setMacroExpander(bc->macroExpander()); @@ -25,7 +25,7 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag pp->resolveAll(); return AbstractProcessStep::init(); -@@ -276,11 +278,12 @@ +@@ -277,11 +279,12 @@ ProcessParameters param; param.setMacroExpander(bc->macroExpander()); @@ -41,10 +41,10 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag m_summaryText = param.summary(displayName()); emit updateSummary(); } -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp 2014-08-23 23:40:48.875515000 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp 2014-08-23 23:41:22.971344700 +0100 -@@ -33,6 +33,7 @@ +diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp 2015-04-14 16:54:22.915847200 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp 2015-04-14 16:54:45.690739200 +0100 +@@ -34,6 +34,7 @@ #include "autotoolsproject.h" #include "autotoolsbuildconfiguration.h" #include "autotoolsprojectconstants.h" @@ -52,7 +52,7 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag #include #include -@@ -156,11 +157,12 @@ +@@ -157,11 +158,12 @@ ProcessParameters *pp = processParameters(); pp->setMacroExpander(bc->macroExpander()); @@ -84,9 +84,9 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag m_summaryText = param.summary(displayName()); emit updateSummary(); } -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2014-08-23 23:40:48.872514600 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2014-08-23 23:41:22.971844700 +0100 +diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-14 16:54:23.122373400 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-14 16:54:45.692239400 +0100 @@ -14,7 +14,8 @@ autoreconfstep.h\ configurestep.h\ @@ -105,10 +105,10 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag + makefileparser.cpp\ + shellprocessparameters.cpp RESOURCES += autotoolsproject.qrc -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2014-08-23 23:40:48.872514600 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2014-08-23 23:41:22.972844800 +0100 -@@ -43,5 +43,7 @@ +diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2015-04-14 16:54:23.122873500 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2015-04-14 16:54:45.692739500 +0100 +@@ -41,5 +41,7 @@ "makefileparserthread.h", "makestep.cpp", "makestep.h", @@ -116,9 +116,9 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag + "shellprocessparameters.h", ] } -diff -urN qt-creator-opensource-src-3.3.0-beta1/src/plugins/autotoolsprojectmanager/configurestep.cpp qt-creator-opensource-src-3.3.0-beta1/src/plugins/autotoolsprojectmanager/configurestep.cpp ---- qt-creator-opensource-src-3.3.0-beta1/src/plugins/autotoolsprojectmanager/configurestep.cpp.orig 2014-10-29 08:44:30.000000000 +0000 -+++ qt-creator-opensource-src-3.3.0-beta1/src/plugins/autotoolsprojectmanager/configurestep.cpp 2014-10-31 21:09:11.552127200 +0000 +diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/configurestep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/configurestep.cpp +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/configurestep.cpp 2015-04-14 16:54:23.170879600 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/configurestep.cpp 2015-04-14 16:54:45.694239700 +0100 @@ -34,6 +34,7 @@ #include "autotoolsproject.h" #include "autotoolsbuildconfiguration.h" @@ -157,10 +157,10 @@ diff -urN qt-creator-opensource-src-3.3.0-beta1/src/plugins/autotoolsprojectmana m_summaryText = param.summaryInWorkdir(displayName()); emit updateSummary(); } -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/makestep.cpp qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/makestep.cpp ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/makestep.cpp 2014-08-23 23:40:48.875015000 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/makestep.cpp 2014-08-23 23:41:22.975845200 +0100 -@@ -33,6 +33,7 @@ +diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/makestep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/makestep.cpp +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/makestep.cpp 2015-04-14 16:54:23.262891300 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/makestep.cpp 2015-04-14 16:54:45.695239800 +0100 +@@ -34,6 +34,7 @@ #include "autotoolsproject.h" #include "autotoolsprojectconstants.h" #include "autotoolsbuildconfiguration.h" @@ -168,7 +168,7 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag #include #include -@@ -187,10 +188,8 @@ +@@ -188,10 +189,8 @@ // Force output to english for the parsers. Do this here and not in the toolchain's // addToEnvironment() to not screw up the users run environment. env.set(QLatin1String("LC_ALL"), QLatin1String("C")); @@ -180,7 +180,7 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag pp->resolveAll(); setOutputParser(new GnuMakeParser()); -@@ -311,10 +310,8 @@ +@@ -312,10 +311,8 @@ ProcessParameters param; param.setMacroExpander(bc->macroExpander()); @@ -192,10 +192,10 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag m_summaryText = param.summary(displayName()); } else { m_summaryText = QLatin1String("") + ProjectExplorer::ToolChainKitInformation::msgNoToolChainInTarget() + QLatin1String(""); -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp 2014-08-23 23:41:22.977345400 +0100 -@@ -0,0 +1,86 @@ +diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp 2015-04-14 16:59:31.198494100 +0100 +@@ -0,0 +1,88 @@ +/************************************************************************** +** +** Copyright (C) 2014 Ray Donnelly. @@ -246,9 +246,11 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag + + QLatin1String("\\..\\..\\usr\\bin")).absoluteFilePath(); + QString sh_exe = QFileInfo(sh_dir + + QLatin1String("\\sh.exe")).absoluteFilePath(); -+ Utils::Environment envCopy(env); -+ envCopy.prependOrSetPath(sh_dir); -+ procParams->setEnvironment(envCopy); ++ if (!env.path().contains(sh_dir)) { ++ Utils::Environment envCopy(env); ++ envCopy.prependOrSetPath(sh_dir); ++ procParams->setEnvironment(envCopy); ++ } + procParams->setCommand(sh_exe); + procParams->setArguments(QLatin1String("-c \"") + + command @@ -282,9 +284,9 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag + makeCommand, + args); +} -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.h qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/shellprocessparameters.h ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.h 1970-01-01 01:00:00.000000000 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/shellprocessparameters.h 2014-08-23 23:41:22.978345500 +0100 +diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.h qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.h +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.h 1970-01-01 01:00:00.000000000 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.h 2015-04-14 16:54:45.697740100 +0100 @@ -0,0 +1,49 @@ +/************************************************************************** +** From 2e95e486ad70e84f7234f776f59137ece2944612 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 14 Apr 2015 20:07:51 +0100 Subject: [PATCH 0891/2060] qt-creator: Don't prepend dirname(sh.exe) if it's already in PATH As the user might want things in /mingw64/bin to be found first, compilers for example. IMHO this should be handled by Qt Creator as part of the kits stuff anyway. --- mingw-w64-qtcreator/PKGBUILD | 6 +-- ...2-autotools-run-shell-scripts-via-sh.patch | 37 ++++++++++--------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 689467e9e3..070aafa2bb 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -8,7 +8,7 @@ __pre= _base_ver=3.3.2 #_base_ver=3.2.2 pkgver=${_base_ver}${_pre} -pkgrel=2 +pkgrel=3 pkgdesc='Cross-patform IDE (mingw-w64)' url='http://qt-project.org' install=qt-creator-${CARCH}.install @@ -57,7 +57,7 @@ sha256sums=('6ef76d23c778a58caffb487b8bc6a192defa2d5dd5fab1ecf8eb70d53ccfb98a' '18479a8a8eac63ae7e8dac2f3b18a3345f8e78779cc8b56fde4dc58f0fd4ada6' '1a1738379b0413484fd1ff3521b6bc85d034f5f964311d963dd044b4966b274b' '8244e66b1604d10951f1b32be3269ef453c47e9eb1b80c30be79a124b697ae0a' - '30015b84c56e3989c5ea864c9d9922b488a6fe6d51430c1e2d9f4980916d4968' + 'f1e8c0d64d4255748c5f3dedf55783105ebb1c86c2bf353ef4ebfb074d428cf5' '809c0499b881866424fa4d3e0d2e3ce402b127221c070a35da4b135818a79eeb' '79fc4d2ef02ff8f458b1b330c683c2a86397f056369c90176a9ddbeba3b719fd' 'c4cae708825102d538e1ecb9a88ecb216d366feb779553a2e91f97c4b78f8427' @@ -146,6 +146,6 @@ package() { # cp ../../../lib/qtcreator/plugins/${PLUGIN}d.dll /mingw64/lib/qtcreator/plugins/ # popd # done -# /mingw64/bin/qtcreator & +# PATH=/mingw64/bin:$PATH /mingw64/bin/qtcreator & # ) # fi diff --git a/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch b/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch index 63ba2d5321..d1543e75c9 100644 --- a/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch +++ b/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch @@ -1,6 +1,6 @@ diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autogenstep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autogenstep.cpp ---- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autogenstep.cpp 2015-04-14 16:54:22.915347100 +0100 -+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autogenstep.cpp 2015-04-14 16:54:45.689239000 +0100 +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autogenstep.cpp 2015-04-14 19:57:23.551710900 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autogenstep.cpp 2015-04-14 19:57:53.638531400 +0100 @@ -34,6 +34,7 @@ #include "autotoolsproject.h" #include "autotoolsbuildconfiguration.h" @@ -42,8 +42,8 @@ diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanag emit updateSummary(); } diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp ---- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp 2015-04-14 16:54:22.915847200 +0100 -+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp 2015-04-14 16:54:45.690739200 +0100 +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp 2015-04-14 19:57:23.552210900 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp 2015-04-14 19:57:53.676036200 +0100 @@ -34,6 +34,7 @@ #include "autotoolsproject.h" #include "autotoolsbuildconfiguration.h" @@ -85,8 +85,8 @@ diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanag emit updateSummary(); } diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro ---- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-14 16:54:23.122373400 +0100 -+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-14 16:54:45.692239400 +0100 +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-14 19:57:23.592716100 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-14 19:57:53.840557100 +0100 @@ -14,7 +14,8 @@ autoreconfstep.h\ configurestep.h\ @@ -106,8 +106,8 @@ diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanag + shellprocessparameters.cpp RESOURCES += autotoolsproject.qrc diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs ---- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2015-04-14 16:54:23.122873500 +0100 -+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2015-04-14 16:54:45.692739500 +0100 +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2015-04-14 19:57:23.592716100 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2015-04-14 19:57:53.873561300 +0100 @@ -41,5 +41,7 @@ "makefileparserthread.h", "makestep.cpp", @@ -117,8 +117,8 @@ diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanag ] } diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/configurestep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/configurestep.cpp ---- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/configurestep.cpp 2015-04-14 16:54:23.170879600 +0100 -+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/configurestep.cpp 2015-04-14 16:54:45.694239700 +0100 +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/configurestep.cpp 2015-04-14 19:57:23.594216300 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/configurestep.cpp 2015-04-14 19:57:53.912566200 +0100 @@ -34,6 +34,7 @@ #include "autotoolsproject.h" #include "autotoolsbuildconfiguration.h" @@ -158,8 +158,8 @@ diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanag emit updateSummary(); } diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/makestep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/makestep.cpp ---- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/makestep.cpp 2015-04-14 16:54:23.262891300 +0100 -+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/makestep.cpp 2015-04-14 16:54:45.695239800 +0100 +--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/makestep.cpp 2015-04-14 19:57:23.637221700 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/makestep.cpp 2015-04-14 19:57:53.927568100 +0100 @@ -34,6 +34,7 @@ #include "autotoolsproject.h" #include "autotoolsprojectconstants.h" @@ -194,8 +194,8 @@ diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanag m_summaryText = QLatin1String("") + ProjectExplorer::ToolChainKitInformation::msgNoToolChainInTarget() + QLatin1String(""); diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp --- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp 2015-04-14 16:59:31.198494100 +0100 -@@ -0,0 +1,88 @@ ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp 2015-04-14 20:04:01.013682100 +0100 +@@ -0,0 +1,89 @@ +/************************************************************************** +** +** Copyright (C) 2014 Ray Donnelly. @@ -246,11 +246,12 @@ diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanag + + QLatin1String("\\..\\..\\usr\\bin")).absoluteFilePath(); + QString sh_exe = QFileInfo(sh_dir + + QLatin1String("\\sh.exe")).absoluteFilePath(); -+ if (!env.path().contains(sh_dir)) { -+ Utils::Environment envCopy(env); ++ QString sh_dir_native = QDir::toNativeSeparators(sh_dir); ++ Utils::Environment envCopy(env); ++ if (!env.path().contains(sh_dir) && !env.path().contains(sh_dir_native)) { + envCopy.prependOrSetPath(sh_dir); -+ procParams->setEnvironment(envCopy); + } ++ procParams->setEnvironment(envCopy); + procParams->setCommand(sh_exe); + procParams->setArguments(QLatin1String("-c \"") + + command @@ -286,7 +287,7 @@ diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanag +} diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.h qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.h --- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.h 1970-01-01 01:00:00.000000000 +0100 -+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.h 2015-04-14 16:54:45.697740100 +0100 ++++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.h 2015-04-14 19:57:53.980574800 +0100 @@ -0,0 +1,49 @@ +/************************************************************************** +** From 72c3eddde155e099f99059d95062d3431ea64d88 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 15 Apr 2015 22:01:13 +0100 Subject: [PATCH 0892/2060] octopi-git: Refresh patches --- ...d-of-int-reducing-QProcess-repititio.patch | 6 +- ...002-Use-a-shared-QProcessEnvironment.patch | 62 ++++++++----------- ...o-Windows-Terminal-Services-wtsapi32.patch | 4 +- ...y-in-UnixCommand-s-exe-checking-func.patch | 18 +++--- .../0005-Use-instead-of-QDir-separator.patch | 6 +- ...d-of-overwrite-m_readAllStandardOutp.patch | 8 +-- mingw-w64-octopi-git/0007-Define-QT_WA.patch | 4 +- ...SYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch | 16 ++--- .../0009-MSYS2-Add-getMSYS2Root.patch | 14 ++--- ...sPacmanDatabase-getMSYS2Root-changes.patch | 10 +-- ...SYS2-Changes-to-various-system-calls.patch | 8 +-- .../0012-MSYS2-Process-id-changes-WIP.patch | 14 ++--- ...-Prepend-getMSYS2Root-to-file-checks.patch | 10 +-- ...014-MSYS2-Support-discoverBinaryPath.patch | 8 +-- mingw-w64-octopi-git/PKGBUILD | 30 ++++----- 15 files changed, 104 insertions(+), 114 deletions(-) diff --git a/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch b/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch index 5fad1e0d02..0b2dded5a1 100644 --- a/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch +++ b/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch @@ -1,4 +1,4 @@ -From 625b52981f67282165586d2746dd374f0cec4b99 Mon Sep 17 00:00:00 2001 +From e77cdc28a9988a772bcb01b7b413527d642f6c2f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 14:57:41 +0100 Subject: [PATCH 01/14] Use Q_PID instead of int, reducing QProcess repitition @@ -10,7 +10,7 @@ Process ids are not ints on all systems 2 files changed, 45 insertions(+), 31 deletions(-) diff --git a/src/utils.cpp b/src/utils.cpp -index e7cc1e2..74c4f38 100644 +index 30ca38e..711c20f 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -83,6 +83,38 @@ void utils::ProcessWrapper::onProcessStarted() @@ -150,5 +150,5 @@ index e4ab291..516e9e3 100644 QTimer *m_timer; QTimer *m_timerSingleShot; -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch b/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch index 5be42ce0dc..e102065c17 100644 --- a/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch +++ b/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch @@ -1,4 +1,4 @@ -From b8beafeeeb794d892b13e8e4685400dc4dc827ba Mon Sep 17 00:00:00 2001 +From a1b529bc403babf85436d3a8942005f6812a4ae1 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:23:27 +0100 Subject: [PATCH 02/14] Use a shared QProcessEnvironment @@ -6,12 +6,12 @@ Subject: [PATCH 02/14] Use a shared QProcessEnvironment This reduces a lot of repetition. Environment variables LANG, LC_MESSAGES, LC_ALL are set to "C" for all cases. --- - src/unixcommand.cpp | 83 +++++++++++------------------------------------------ - src/unixcommand.h | 15 ++++++++++ - 2 files changed, 32 insertions(+), 66 deletions(-) + src/unixcommand.cpp | 78 +++++++++++------------------------------------------ + src/unixcommand.h | 15 +++++++++++ + 2 files changed, 31 insertions(+), 62 deletions(-) diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index 8686e16..9203eae 100644 +index 9878bb9..cac4356 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp @@ -36,6 +36,7 @@ @@ -36,7 +36,7 @@ index 8686e16..9203eae 100644 proc.start(commandToRun); proc.waitForStarted(); proc.waitForFinished(-1); -@@ -63,10 +59,7 @@ QString UnixCommand::runCommand(const QString& commandToRun) +@@ -64,10 +60,7 @@ QString UnixCommand::runCommand(const QString& commandToRun) */ QString UnixCommand::runCurlCommand(const QString& commandToRun){ QProcess proc; @@ -48,7 +48,7 @@ index 8686e16..9203eae 100644 proc.start(commandToRun); proc.waitForStarted(); proc.waitForFinished(-1); -@@ -87,10 +80,7 @@ QString UnixCommand::runCurlCommand(const QString& commandToRun){ +@@ -88,10 +81,7 @@ QString UnixCommand::runCurlCommand(const QString& commandToRun){ */ QString UnixCommand::discoverBinaryPath(const QString& binary){ QProcess proc; @@ -60,19 +60,7 @@ index 8686e16..9203eae 100644 proc.start("/bin/sh -c \"which " + binary + "\""); proc.waitForFinished(); -@@ -117,10 +107,7 @@ QString UnixCommand::discoverBinaryPath(const QString& binary){ - bool UnixCommand::cleanPacmanCache() - { - QProcess pacman; -- QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); -- env.insert("LANG", "C"); -- env.insert("LC_MESSAGES", "C"); -- pacman.setProcessEnvironment(env); -+ pacman.setProcessEnvironment(getEnv()); - QString commandStr = "\"yes | pacman -Scc\""; - - QString command = WMHelper::getSUCommand() + " " + commandStr; -@@ -138,11 +125,7 @@ QByteArray UnixCommand::performQuery(const QStringList args) +@@ -139,11 +129,7 @@ QByteArray UnixCommand::performQuery(const QStringList args) QByteArray result(""); QProcess pacman; @@ -85,7 +73,7 @@ index 8686e16..9203eae 100644 pacman.start("pacman", args); pacman.waitForFinished(); -@@ -161,11 +144,7 @@ QByteArray UnixCommand::performQuery(const QString &args) +@@ -162,11 +148,7 @@ QByteArray UnixCommand::performQuery(const QString &args) QByteArray result(""); QProcess pacman; @@ -98,7 +86,7 @@ index 8686e16..9203eae 100644 pacman.start("pacman " + args); pacman.waitForFinished(); -@@ -182,10 +161,7 @@ QByteArray UnixCommand::performAURCommand(const QString &args) +@@ -183,10 +165,7 @@ QByteArray UnixCommand::performAURCommand(const QString &args) QByteArray result(""); QProcess aur; @@ -109,8 +97,8 @@ index 8686e16..9203eae 100644 + aur.setProcessEnvironment(getEnv()); aur.start(StrConstants::getForeignRepositoryToolName() + " " + args); - aur.waitForFinished(); -@@ -202,11 +178,8 @@ QByteArray UnixCommand::getAURPackageList(const QString &searchString) + aur.waitForFinished(-1); +@@ -203,11 +182,8 @@ QByteArray UnixCommand::getAURPackageList(const QString &searchString) { QByteArray result(""); QProcess aur; @@ -122,8 +110,8 @@ index 8686e16..9203eae 100644 + aur.setProcessEnvironment(getEnv()); if (UnixCommand::getLinuxDistro() == ectn_KAOS) - aur.start(StrConstants::getForeignRepositoryToolName() + " -s " + searchString); -@@ -341,8 +314,7 @@ bool UnixCommand::isPkgfileInstalled() + aur.start(StrConstants::getForeignRepositoryToolName() + " -l "); +@@ -363,8 +339,7 @@ bool UnixCommand::isPkgfileInstalled() { QProcess pkgfile; @@ -133,7 +121,7 @@ index 8686e16..9203eae 100644 pkgfile.start("pkgfile -V"); pkgfile.waitForFinished(); -@@ -359,10 +331,7 @@ QByteArray UnixCommand::getPackageContentsUsingPkgfile(const QString &pkgName) +@@ -381,10 +356,7 @@ QByteArray UnixCommand::getPackageContentsUsingPkgfile(const QString &pkgName) { QByteArray result(""); QProcess pkgfile; @@ -145,7 +133,7 @@ index 8686e16..9203eae 100644 pkgfile.start("pkgfile -l " + pkgName); pkgfile.waitForFinished(); -@@ -397,10 +366,7 @@ QString UnixCommand::getPackageByFilePath(const QString &filePath) +@@ -419,10 +391,7 @@ QString UnixCommand::getPackageByFilePath(const QString &filePath) QStringList UnixCommand::getFilePathSuggestions(const QString &file) { QProcess slocate; @@ -157,7 +145,7 @@ index 8686e16..9203eae 100644 slocate.start("slocate -l 8 " + file); slocate.waitForFinished(); -@@ -467,10 +433,7 @@ QString UnixCommand::getSystemArchitecture() +@@ -489,10 +458,7 @@ QString UnixCommand::getSystemArchitecture() { QStringList slParam; QProcess proc; @@ -169,7 +157,7 @@ index 8686e16..9203eae 100644 slParam << "-m"; proc.start("uname", slParam); -@@ -524,10 +487,7 @@ bool UnixCommand::hasInternetConnection() +@@ -546,10 +512,7 @@ bool UnixCommand::hasInternetConnection() bool UnixCommand::doInternetPingTest() { QProcess ping; @@ -181,7 +169,7 @@ index 8686e16..9203eae 100644 if (UnixCommand::getLinuxDistro() == ectn_MOOOSLINUX) ping.start("torsocks ping -c 1 -W 3 www.google.com"); -@@ -596,10 +556,7 @@ void UnixCommand::removeTemporaryFiles() +@@ -628,10 +591,7 @@ void UnixCommand::execCommandAsNormalUser(const QString &pCommand) void UnixCommand::execCommand(const QString &pCommand) { QProcess p; @@ -193,7 +181,7 @@ index 8686e16..9203eae 100644 p.start(WMHelper::getSUCommand() + "\"" + pCommand + "\""); p.waitForFinished(-1); -@@ -612,10 +569,7 @@ void UnixCommand::execCommand(const QString &pCommand) +@@ -660,10 +620,7 @@ QByteArray UnixCommand::getCommandOutput(const QString &pCommand) bool UnixCommand::isTextFile(const QString& fileName) { QProcess *p = new QProcess(); @@ -205,7 +193,7 @@ index 8686e16..9203eae 100644 QStringList s(fileName); p->start( "file", s ); -@@ -735,10 +689,7 @@ UnixCommand::UnixCommand(QObject *parent): QObject() +@@ -793,10 +750,7 @@ UnixCommand::UnixCommand(QObject *parent): QObject() m_process = new QProcess(parent); m_terminal = new Terminal(parent, SettingsManager::getTerminal()); @@ -218,10 +206,10 @@ index 8686e16..9203eae 100644 QObject::connect(m_process, SIGNAL( started() ), this, SIGNAL( started() )); diff --git a/src/unixcommand.h b/src/unixcommand.h -index 64d64fb..4f8837e 100644 +index 59fb5d9..b3dd169 100644 --- a/src/unixcommand.h +++ b/src/unixcommand.h -@@ -54,6 +54,7 @@ private: +@@ -56,6 +56,7 @@ private: Terminal *m_terminal; QProcess *m_process; static QFile *m_temporaryFile; @@ -229,7 +217,7 @@ index 64d64fb..4f8837e 100644 public: UnixCommand(QObject *parent); -@@ -113,6 +114,20 @@ public: +@@ -119,6 +120,20 @@ public: return (uid == 0); //Returns TRUE if root is running Octopi } @@ -251,5 +239,5 @@ index 64d64fb..4f8837e 100644 QTime time = QTime::currentTime(); qsrand(time.minute() + time.second() + time.msec()); -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch b/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch index 533c1ebce2..f2d97207a4 100644 --- a/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch +++ b/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch @@ -1,4 +1,4 @@ -From 7c69dfaa0629effaf4015c919026d56eb384f6d6 Mon Sep 17 00:00:00 2001 +From 332b0de7a6df6a65c26e3e1e391446b15bea6e15 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Dec 2014 14:58:27 +0000 Subject: [PATCH 03/14] Win32: Link to Windows Terminal Services (wtsapi32) @@ -21,5 +21,5 @@ index ccf88bf..535fa96 100644 TRANSLATIONS += resources/translations/octopi_ast.ts } -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch b/mingw-w64-octopi-git/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch index 90d9a6edab..d25173b1e3 100644 --- a/mingw-w64-octopi-git/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch +++ b/mingw-w64-octopi-git/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch @@ -1,4 +1,4 @@ -From 9d0d5e63d09fb46b8cbeb24b154c3c2360dbe7c6 Mon Sep 17 00:00:00 2001 +From bc4f5d875aa6a8249ffffe7d049d2646d835a715 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 30 Sep 2014 14:43:39 +0100 Subject: [PATCH 04/14] Remove redundancy in UnixCommand's exe checking @@ -8,14 +8,14 @@ Check the result of UnixCommand::discoverBinaryPath() not being empty in UnixCommand::hasTheExecutable() instead of repeating much the same code. --- - src/unixcommand.cpp | 18 +++++++----------- - 1 file changed, 7 insertions(+), 11 deletions(-) + src/unixcommand.cpp | 20 +++++++------------- + 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index 9203eae..4dcfe42 100644 +index cac4356..438333d 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp -@@ -81,6 +81,7 @@ QString UnixCommand::runCurlCommand(const QString& commandToRun){ +@@ -82,6 +82,7 @@ QString UnixCommand::runCurlCommand(const QString& commandToRun){ QString UnixCommand::discoverBinaryPath(const QString& binary){ QProcess proc; proc.setProcessEnvironment(getEnv()); @@ -23,7 +23,7 @@ index 9203eae..4dcfe42 100644 proc.start("/bin/sh -c \"which " + binary + "\""); proc.waitForFinished(); -@@ -89,6 +90,11 @@ QString UnixCommand::discoverBinaryPath(const QString& binary){ +@@ -90,6 +91,11 @@ QString UnixCommand::discoverBinaryPath(const QString& binary){ proc.close(); res = res.remove('\n'); @@ -35,10 +35,12 @@ index 9203eae..4dcfe42 100644 //If it still didn't find it, try "/sbin" dir... if (res.isEmpty()){ QFile fbin("/sbin/" + binary); -@@ -507,17 +513,7 @@ bool UnixCommand::doInternetPingTest() +@@ -532,19 +538,7 @@ bool UnixCommand::doInternetPingTest() */ bool UnixCommand::hasTheExecutable( const QString& exeName ) { +- //std::cout << "Searching for the executable: " << exeName.toLatin1().data() << std::endl; +- - QProcess proc; - proc.setProcessChannelMode(QProcess::MergedChannels); - QString sParam = "\"which " + exeName + "\""; @@ -55,5 +57,5 @@ index 9203eae..4dcfe42 100644 /* -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0005-Use-instead-of-QDir-separator.patch b/mingw-w64-octopi-git/0005-Use-instead-of-QDir-separator.patch index 54196c3401..bd52954566 100644 --- a/mingw-w64-octopi-git/0005-Use-instead-of-QDir-separator.patch +++ b/mingw-w64-octopi-git/0005-Use-instead-of-QDir-separator.patch @@ -1,4 +1,4 @@ -From 26067da1bc6ff917aedb01cc5615a6dbc265ed28 Mon Sep 17 00:00:00 2001 +From f4652aaaf30821df19986ed493bb53a3147039cb Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 28 Sep 2014 23:12:28 +0100 Subject: [PATCH 05/14] Use '/' instead of QDir::separator() @@ -8,7 +8,7 @@ Subject: [PATCH 05/14] Use '/' instead of QDir::separator() 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils.cpp b/src/utils.cpp -index 74c4f38..ef95aa4 100644 +index 711c20f..65fee86 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -236,17 +236,17 @@ QString utils::showFullPathOfItem( const QModelIndex &index ){ @@ -33,5 +33,5 @@ index 74c4f38..ef95aa4 100644 } -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch b/mingw-w64-octopi-git/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch index 1dc1e34dd4..7a376ffa2c 100644 --- a/mingw-w64-octopi-git/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch +++ b/mingw-w64-octopi-git/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch @@ -1,4 +1,4 @@ -From 088b383f00b1cebcaddbcae9f93ff639278936a7 Mon Sep 17 00:00:00 2001 +From e7148d2a0a2fda9b12fe32b6113e99bfbab28a40 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 28 Sep 2014 23:15:23 +0100 Subject: [PATCH 06/14] Append to instead of overwrite m_readAllStandardOutput @@ -8,10 +8,10 @@ Subject: [PATCH 06/14] Append to instead of overwrite m_readAllStandardOutput 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index 4dcfe42..4e129fa 100644 +index 438333d..70b739b 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp -@@ -638,7 +638,7 @@ void UnixCommand::executeCommandAsNormalUser(const QString &pCommand) +@@ -697,7 +697,7 @@ void UnixCommand::executeCommandAsNormalUser(const QString &pCommand) void UnixCommand::processReadyReadStandardOutput() { if (m_process->isOpen()) @@ -21,5 +21,5 @@ index 4dcfe42..4e129fa 100644 /* -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0007-Define-QT_WA.patch b/mingw-w64-octopi-git/0007-Define-QT_WA.patch index e8362b80ad..f70945a46e 100644 --- a/mingw-w64-octopi-git/0007-Define-QT_WA.patch +++ b/mingw-w64-octopi-git/0007-Define-QT_WA.patch @@ -1,4 +1,4 @@ -From 30443cb6490f9b02d717a3110921b6775e12ca75 Mon Sep 17 00:00:00 2001 +From f9e245dc378423199953130d1dd243048f4635b2 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:02:24 +0100 Subject: [PATCH 07/14] Define QT_WA @@ -21,5 +21,5 @@ index 4cd2003..c28aae8 100755 { if (mutexname.isEmpty()) { -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch b/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch index bcc22a8d4c..239a77a952 100644 --- a/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch +++ b/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch @@ -1,4 +1,4 @@ -From 17a55cd8f40387cb50424ccf2b2afd65c63c3911 Mon Sep 17 00:00:00 2001 +From 54f57ae07280edba0405dec3d61430798c92d84d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:31:32 +0100 Subject: [PATCH 08/14] MSYS2: Add ectn_MSYS2 as a LinuxDistro @@ -9,10 +9,10 @@ Subject: [PATCH 08/14] MSYS2: Add ectn_MSYS2 as a LinuxDistro 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index 4e129fa..6b5a913 100644 +index 70b739b..5248fbb 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp -@@ -842,6 +842,9 @@ QStringList UnixCommand::getIgnorePkg() +@@ -935,6 +935,9 @@ QStringList UnixCommand::getIgnorePkgsFromPacmanConf() LinuxDistro UnixCommand::getLinuxDistro() { static LinuxDistro ret; @@ -22,7 +22,7 @@ index 4e129fa..6b5a913 100644 static bool firstTime = true; if (firstTime) -@@ -901,6 +904,7 @@ LinuxDistro UnixCommand::getLinuxDistro() +@@ -994,6 +997,7 @@ LinuxDistro UnixCommand::getLinuxDistro() file.close(); } } @@ -31,7 +31,7 @@ index 4e129fa..6b5a913 100644 return ret; } diff --git a/src/unixcommand.h b/src/unixcommand.h -index 4f8837e..6722a2f 100644 +index b3dd169..cc45e0b 100644 --- a/src/unixcommand.h +++ b/src/unixcommand.h @@ -37,7 +37,7 @@ enum CommandExecuting { ectn_NONE, ectn_MIRROR_CHECK, ectn_SYNC_DATABASE, @@ -41,8 +41,8 @@ index 4f8837e..6722a2f 100644 - ectn_KAOS, ectn_MANJAROLINUX, ectn_MOOOSLINUX, ectn_NETRUNNER, ectn_UNKNOWN }; + ectn_KAOS, ectn_MANJAROLINUX, ectn_MOOOSLINUX, ectn_NETRUNNER, ectn_MSYS2, ectn_UNKNOWN }; - //Forward class declarations. - class QString; + enum Language { ectn_LANG_ENGLISH, ectn_LANG_USER_DEFINED }; + -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0009-MSYS2-Add-getMSYS2Root.patch b/mingw-w64-octopi-git/0009-MSYS2-Add-getMSYS2Root.patch index c9b5b158e1..15ac33a775 100644 --- a/mingw-w64-octopi-git/0009-MSYS2-Add-getMSYS2Root.patch +++ b/mingw-w64-octopi-git/0009-MSYS2-Add-getMSYS2Root.patch @@ -1,4 +1,4 @@ -From 1bf02c1342a8d4a01b5462bc320ff730300324b5 Mon Sep 17 00:00:00 2001 +From 995670aa2765c8ed4b9775740cdf3a3a5a2ca30d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:38:23 +0100 Subject: [PATCH 09/14] MSYS2: Add getMSYS2Root() @@ -11,7 +11,7 @@ is determined using a relative path from octopi.exe 2 files changed, 20 insertions(+) diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index 6b5a913..f74ca45 100644 +index 5248fbb..eab2e3b 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp @@ -37,6 +37,7 @@ @@ -23,7 +23,7 @@ index 6b5a913..f74ca45 100644 /* * Executes given command and returns the StandardError Output. diff --git a/src/unixcommand.h b/src/unixcommand.h -index 6722a2f..3ac54a9 100644 +index cc45e0b..7560c2a 100644 --- a/src/unixcommand.h +++ b/src/unixcommand.h @@ -24,6 +24,7 @@ @@ -34,7 +34,7 @@ index 6722a2f..3ac54a9 100644 #include #include "package.h" -@@ -55,6 +56,7 @@ private: +@@ -57,6 +58,7 @@ private: QProcess *m_process; static QFile *m_temporaryFile; static QProcessEnvironment *m_env; @@ -42,7 +42,7 @@ index 6722a2f..3ac54a9 100644 public: UnixCommand(QObject *parent); -@@ -114,6 +116,14 @@ public: +@@ -120,6 +122,14 @@ public: return (uid == 0); //Returns TRUE if root is running Octopi } @@ -57,7 +57,7 @@ index 6722a2f..3ac54a9 100644 static QProcessEnvironment const& getEnv(){ if (!m_env) { -@@ -124,6 +134,15 @@ public: +@@ -130,6 +140,15 @@ public: m_env->insert("LANG", "C"); m_env->insert("LC_MESSAGES", "C"); m_env->insert("LC_ALL", "C"); @@ -74,5 +74,5 @@ index 6722a2f..3ac54a9 100644 return *m_env; } -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch b/mingw-w64-octopi-git/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch index 668552e519..b0d9cab8e5 100644 --- a/mingw-w64-octopi-git/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch +++ b/mingw-w64-octopi-git/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch @@ -1,4 +1,4 @@ -From 61d5d5035f1d237b462e2b21c7d3c6ae28ca414a Mon Sep 17 00:00:00 2001 +From 645ee016e2bee7461b5423cfd3a368f295ba7ab7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:40:36 +0100 Subject: [PATCH 10/14] MSYS2: hasPacmanDatabase() getMSYS2Root() changes @@ -9,10 +9,10 @@ Subject: [PATCH 10/14] MSYS2: hasPacmanDatabase() getMSYS2Root() changes 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/package.cpp b/src/package.cpp -index fe33dba..a282930 100644 +index 3951ef6..6c0a7c9 100644 --- a/src/package.cpp +++ b/src/package.cpp -@@ -1184,7 +1184,16 @@ bool Package::hasPacmanDatabase() +@@ -1230,7 +1230,16 @@ bool Package::hasPacmanDatabase() if (!done) { @@ -31,7 +31,7 @@ index fe33dba..a282930 100644 done = true; } diff --git a/src/package.h b/src/package.h -index 9f9dffd..371e7c1 100644 +index ac1beb8..5d85975 100644 --- a/src/package.h +++ b/src/package.h @@ -32,8 +32,9 @@ @@ -47,5 +47,5 @@ index 9f9dffd..371e7c1 100644 enum PackageStatus { ectn_INSTALLED, ectn_NON_INSTALLED, ectn_OUTDATED, ectn_NEWER, ectn_FOREIGN, ectn_FOREIGN_OUTDATED }; -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0011-MSYS2-Changes-to-various-system-calls.patch b/mingw-w64-octopi-git/0011-MSYS2-Changes-to-various-system-calls.patch index 97d788f7ee..e91ba6d09a 100644 --- a/mingw-w64-octopi-git/0011-MSYS2-Changes-to-various-system-calls.patch +++ b/mingw-w64-octopi-git/0011-MSYS2-Changes-to-various-system-calls.patch @@ -1,4 +1,4 @@ -From a012bce22a13e63cb621043e0b76cc9c75415c55 Mon Sep 17 00:00:00 2001 +From b0250449a7b2f76ab3c253b7be1c4d9e7c74e2ba Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:42:50 +0100 Subject: [PATCH 11/14] MSYS2: Changes to various system calls @@ -48,10 +48,10 @@ index bec9273..eb4293c 100644 { QString cmd = diff --git a/src/unixcommand.h b/src/unixcommand.h -index 3ac54a9..2ddd7df 100644 +index 7560c2a..056a776 100644 --- a/src/unixcommand.h +++ b/src/unixcommand.h -@@ -111,10 +111,16 @@ public: +@@ -117,10 +117,16 @@ public: static bool hasTheExecutable( const QString& exeName ); static bool isAppRunning(const QString &appName, bool justOneInstance = false); @@ -97,5 +97,5 @@ index 8a941a4..aaff77e 100644 const QString ctn_KDESU("kdesu"); -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0012-MSYS2-Process-id-changes-WIP.patch b/mingw-w64-octopi-git/0012-MSYS2-Process-id-changes-WIP.patch index c2cc784584..0b8a9051f5 100644 --- a/mingw-w64-octopi-git/0012-MSYS2-Process-id-changes-WIP.patch +++ b/mingw-w64-octopi-git/0012-MSYS2-Process-id-changes-WIP.patch @@ -1,4 +1,4 @@ -From 2bf0c25d3dbb84de054bc48aea74ab252fac679a Mon Sep 17 00:00:00 2001 +From 1230df0e323b03efd3aacf75d7b2ad49c1c81e43 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:44:22 +0100 Subject: [PATCH 12/14] MSYS2: Process id changes (WIP) @@ -9,20 +9,20 @@ Subject: [PATCH 12/14] MSYS2: Process id changes (WIP) 2 files changed, 79 insertions(+) diff --git a/notifier/octopi-notifier/octopi-notifier.pro b/notifier/octopi-notifier/octopi-notifier.pro -index ef7b69c..e91bd00 100644 +index 767c08d..4bf295f 100644 --- a/notifier/octopi-notifier/octopi-notifier.pro +++ b/notifier/octopi-notifier/octopi-notifier.pro -@@ -47,6 +47,8 @@ HEADERS += \ +@@ -49,6 +49,8 @@ HEADERS += \ ../../src/utils.h \ ../../src/transactiondialog.h +win32: LIBS += -lwtsapi32 + - FORMS += ../../ui/transactiondialog.ui + FORMS += ../../ui/transactiondialog.ui \ + ui/setupdialog.ui - RESOURCES += \ diff --git a/src/utils.cpp b/src/utils.cpp -index ef95aa4..c1e3d22 100644 +index 65fee86..f0a5c5e 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -35,6 +35,12 @@ @@ -140,5 +140,5 @@ index ef95aa4..c1e3d22 100644 /* * We need this to search for the SH process pid (which spaws AUR tool) -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch b/mingw-w64-octopi-git/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch index 663f1c3af9..985463477c 100644 --- a/mingw-w64-octopi-git/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch +++ b/mingw-w64-octopi-git/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch @@ -1,4 +1,4 @@ -From b14a551bf09d9735d949f26a62e76ddb0a607f9e Mon Sep 17 00:00:00 2001 +From 87c058a57866bc03b7d15a515a68f30b49ad1803 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 28 Sep 2014 23:14:17 +0100 Subject: [PATCH 13/14] MSYS2: Prepend getMSYS2Root() to file checks @@ -9,10 +9,10 @@ Subject: [PATCH 13/14] MSYS2: Prepend getMSYS2Root() to file checks 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mainwindow_refresh.cpp b/src/mainwindow_refresh.cpp -index 7a8bbf6..422d27d 100644 +index ec1ca64..67ab7ae 100644 --- a/src/mainwindow_refresh.cpp +++ b/src/mainwindow_refresh.cpp -@@ -993,7 +993,7 @@ void MainWindow::refreshTabFiles(bool clearContents, bool neverQuit) +@@ -1256,7 +1256,7 @@ void MainWindow::refreshTabFiles(bool clearContents, bool neverQuit) //Let's test if it is not a symbolic link to a dir if(!isDir) { @@ -22,7 +22,7 @@ index 7a8bbf6..422d27d 100644 { QFileInfo fiTestForDir(fiTestForSymLink.symLinkTarget()); diff --git a/src/utils.cpp b/src/utils.cpp -index c1e3d22..3bf5f55 100644 +index f0a5c5e..2d22df3 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -320,7 +320,7 @@ QString utils::showFullPathOfItem( const QModelIndex &index ){ @@ -35,5 +35,5 @@ index c1e3d22..3bf5f55 100644 { str += QLatin1Char('/'); -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/0014-MSYS2-Support-discoverBinaryPath.patch b/mingw-w64-octopi-git/0014-MSYS2-Support-discoverBinaryPath.patch index 15c83e9ed0..de90ed5adc 100644 --- a/mingw-w64-octopi-git/0014-MSYS2-Support-discoverBinaryPath.patch +++ b/mingw-w64-octopi-git/0014-MSYS2-Support-discoverBinaryPath.patch @@ -1,4 +1,4 @@ -From bb55472d49d8a9f238b9561b798390ec5c693be1 Mon Sep 17 00:00:00 2001 +From e9c4157e77b1b0c903f58a9048caa125668779bf Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 30 Sep 2014 19:12:30 +0100 Subject: [PATCH 14/14] MSYS2: Support discoverBinaryPath() @@ -8,10 +8,10 @@ Subject: [PATCH 14/14] MSYS2: Support discoverBinaryPath() 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/unixcommand.cpp b/src/unixcommand.cpp -index f74ca45..5a76a78 100644 +index eab2e3b..776d660 100644 --- a/src/unixcommand.cpp +++ b/src/unixcommand.cpp -@@ -84,7 +84,12 @@ QString UnixCommand::discoverBinaryPath(const QString& binary){ +@@ -85,7 +85,12 @@ QString UnixCommand::discoverBinaryPath(const QString& binary){ proc.setProcessEnvironment(getEnv()); proc.setProcessChannelMode(QProcess::MergedChannels); @@ -26,5 +26,5 @@ index f74ca45..5a76a78 100644 QString res = proc.readAllStandardOutput(); -- -2.2.1 +2.3.5 diff --git a/mingw-w64-octopi-git/PKGBUILD b/mingw-w64-octopi-git/PKGBUILD index b7f30a621a..1ec64e6183 100644 --- a/mingw-w64-octopi-git/PKGBUILD +++ b/mingw-w64-octopi-git/PKGBUILD @@ -5,7 +5,7 @@ _realname=octopi pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" #_qmake=${MINGW_PREFIX}/bin/qmake _qmake=${MINGW_PREFIX}/qt5-static/bin/qmake -pkgver=r730.f608397 +pkgver=r903.82cffd1 pkgrel=1 pkgdesc="a powerful Pacman frontend using Qt libs" arch=('any') @@ -34,20 +34,20 @@ source=("${_gitname}"::"${_gitroot}" "0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch" "0014-MSYS2-Support-discoverBinaryPath.patch") md5sums=('SKIP' - '14f2293a146b8176b1c2d3f891888a0c' - '40d4357b9e366c50e98cd908b1279161' - 'e8807ccc0a54ebbdf93e536e9e469648' - '49ecb13fc892b859305e5f69c0c4ec8a' - '6e8bb5e755a235dfb357de7efa85d056' - '7c62726b0f78ec77c23b184d56690b50' - '5fdf5a1f98f35056f644f5e737aff1bb' - '29d13a057f9ec713161053a8ddbec15c' - '9b357be4d23950ccc95e8094019a1720' - '323746db99cb47baac9bc9e16cf03779' - '0661f99448d514cfbbad9c4518ce7bee' - 'b6f4bdd710636b085b8e308cdda2ac9e' - '0ccb4c7e0c318cc9e960fb5d9e2fb295' - '2bbf0cc4a5701700007a55c83c7e311b') + 'ce6f1faafa612d62f6491f5e25bc67c4' + 'e04fa374905b9c949fccd4171ff24674' + '0154958ce202215c0cc8589f6f908b62' + 'f9b20ed39b439db66a2cfb81ce63ef38' + 'd591fd6dd4529c2bc87032877a3bf120' + 'b29221aaf5066f60650ab8e5669e3405' + '303d4846e1c36170fdb954b15d681c14' + '2bff59335d325e83210c82e7b9261796' + 'db0ec0497cd3d1f81059ff96de73f30f' + 'ec0b51d9f2275ab0bca2e74a1cd89822' + '566c988337a3f09f40e0fd7428296779' + 'ecb41b30fa19e1738536c1a018aab7b3' + 'c048d271346fec23dc1bf2a93d5267fb' + '60f75e50053407f8aff2f2318430f52f') pkgver() { cd "$srcdir/$_realname" From d1cf282dc3d24616efab158e263f24cb6aba1d41 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Fri, 17 Apr 2015 12:57:38 -0300 Subject: [PATCH 0893/2060] libmongoose-git: Update to latest version. --- mingw-w64-libmongoose-git/PKGBUILD | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libmongoose-git/PKGBUILD b/mingw-w64-libmongoose-git/PKGBUILD index ada5676995..72626ff06b 100644 --- a/mingw-w64-libmongoose-git/PKGBUILD +++ b/mingw-w64-libmongoose-git/PKGBUILD @@ -5,7 +5,7 @@ url='https://github.com/cesanta/mongoose' pkgdesc='Embedded web server for C/C++ (mingw-w64)' license=('GPL2') arch=('any') -pkgver=r1767.2ff2c36 +pkgver=r1771.b8dfb69 pkgrel=1 pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) @@ -23,8 +23,7 @@ pkgver() { build() { cd "${srcdir}/${_realname}" # See https://github.com/cesanta/mongoose/issues/326 - # See https://github.com/cesanta/mongoose/issues/506 - gcc -c -DFD_SETSIZE=1024 mongoose.c -o mongoose.o + gcc -c mongoose.c -o mongoose.o ar rcs libmongoose.a mongoose.o gcc -shared -o libmongoose.dll mongoose.o -Wl,--out-implib,libmongoose.dll.a -lws2_32 } From 32690fa32042eeb3410f48b73c85596e1f41efa9 Mon Sep 17 00:00:00 2001 From: David Macek Date: Fri, 17 Apr 2015 23:40:12 +0200 Subject: [PATCH 0894/2060] scite: Updated to v3.5.5 (fixes wrap issue) --- mingw-w64-scite/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index 847fa485cc..d0efd09442 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -3,7 +3,7 @@ _realname=scite pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") -pkgver=3.5.4 +pkgver=3.5.5 pkgrel=1 arch=('any') url='http://www.scintilla.org/SciTE.html' @@ -15,7 +15,7 @@ source=("http://downloads.sourceforge.net/scintilla/${_realname}${pkgver//./}.tg "0001-Use-POSIX-tools-in-makefiles.patch" "0002-Prefix-library-names.patch" "0003-Use-FHS.patch") -md5sums=('5438237551c50a9d57fce80dc23a4494' +md5sums=('5c96c719fa01b27e987909502b671e25' 'd4bd88fa3e173d26d9cacaef12b1d6f9' '2a9ec192f43f82d4b26b4a6667de350a' '17011da4ced7269d787433b599a1ae92') @@ -31,7 +31,7 @@ prepare() { build() { cd "${srcdir}"/build-${CARCH} - + GTK3=1 make -C scintilla/gtk make -C scintilla/win32 # GTK3=1 make -C scite/gtk @@ -74,7 +74,7 @@ package_mingw-w64-scite() { package_mingw-w64-scite-defaults() { pkgdesc='Default language files for the SciTE editor (mingw-w64)' - depends=("${MINGW_PACKAGE_PREFIX}-${_realname}") + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") cd "${srcdir}"/build-${CARCH} From c8848eb5c927efb6466b630f94b50c0d814237dd Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 13 Apr 2015 15:48:37 +0200 Subject: [PATCH 0895/2060] rxspencer: new package. --- mingw-w64-rxspencer/PKGBUILD | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 mingw-w64-rxspencer/PKGBUILD diff --git a/mingw-w64-rxspencer/PKGBUILD b/mingw-w64-rxspencer/PKGBUILD new file mode 100644 index 0000000000..a67916a1d0 --- /dev/null +++ b/mingw-w64-rxspencer/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: Andrea Zagli + +_realname=rxspencer +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgver=alpha3.8.g6 +pkgrel=1 +pkgdesc="Henry Spencer's BSD regular expression library modified to allow building as a shared library (mingw-w64)" +arch=('any') +url="https://garyhouston.github.io/regex/" +options=('strip' 'staticlibs') +license=('custom') +source=(https://github.com/garyhouston/${_realname}/archive/${pkgver}.tar.gz) +noextract=(${pkgver}.tar.gz) +sha256sums=('2176def84f876b3abd845543e3b2f6bca8c5a2c7e8bd4e9034f179e67d754a4d') + +prepare() { + tar --exclude=ltmain.sh -zxf ${pkgver}.tar.gz + + cd "${srcdir}"/${_realname}-${pkgver} + + autoreconf -f -i +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + mkdir $pkgdir/${MINGW_PREFIX}/bin + mv $pkgdir/${MINGW_PREFIX}/lib/librxspencer-0.dll $pkgdir/${MINGW_PREFIX}/bin + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYRIGHT" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYRIGHT" +} From bf6e2108ddcc7cd08678a2d4e67693dcaab3e22f Mon Sep 17 00:00:00 2001 From: LI Xuzhang Date: Mon, 20 Apr 2015 23:33:31 +0800 Subject: [PATCH 0896/2060] libmodbus-git: New package. --- mingw-w64-libmodbus-git/PKGBUILD | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 mingw-w64-libmodbus-git/PKGBUILD diff --git a/mingw-w64-libmodbus-git/PKGBUILD b/mingw-w64-libmodbus-git/PKGBUILD new file mode 100644 index 0000000000..b940209715 --- /dev/null +++ b/mingw-w64-libmodbus-git/PKGBUILD @@ -0,0 +1,35 @@ +# Contributor: LI Xuzhang + +_realname=libmodbus +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=v3.1.2.11.g98c4aca +pkgrel=1 +pkgdesc="A Modbus library for Linux, Mac OS X, FreeBSD, QNX and Win32 (mingw-w64)" +arch=('any') +license=('LGPL') +makedepends=(git "${MINGW_PACKAGE_PREFIX}-gcc" +"${MINGW_PACKAGE_PREFIX}-pkg-config") +provides=(libmodbus) +depends=() +options=(!strip !buildflags staticlibs) +source=("git://github.com/stephane/libmodbus") +url="http://libmodbus.org/" +md5sums=('SKIP') + +pkgver() { + cd $_realname + #echo $(git rev-list --count HEAD).$(git rev-parse --short HEAD) + git describe --tags |sed 's+-+.+g' +} + +build() { + cd $_realname + ./autogen.sh + CFLAGS="" ./configure --prefix=${MINGW_PREFIX} --without-documentation + make +} + +package() { + cd $_realname + make DESTDIR="$pkgdir/" install +} From 8dddbd5909a49ec5b73e01e4833d56e8bb47e13a Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 20 Apr 2015 18:11:59 +0200 Subject: [PATCH 0897/2060] libgweather: updated to 3.16.1. --- mingw-w64-libgweather/002-localedir-fix.patch | 68 ---------------- mingw-w64-libgweather/002-relocation.patch | 80 +++++++++++++++++++ mingw-w64-libgweather/PKGBUILD | 15 ++-- .../libgweather-i686.install | 11 +++ .../libgweather-x86_64.install | 11 +++ 5 files changed, 112 insertions(+), 73 deletions(-) delete mode 100644 mingw-w64-libgweather/002-localedir-fix.patch create mode 100644 mingw-w64-libgweather/002-relocation.patch create mode 100644 mingw-w64-libgweather/libgweather-i686.install create mode 100644 mingw-w64-libgweather/libgweather-x86_64.install diff --git a/mingw-w64-libgweather/002-localedir-fix.patch b/mingw-w64-libgweather/002-localedir-fix.patch deleted file mode 100644 index fe9675ba0e..0000000000 --- a/mingw-w64-libgweather/002-localedir-fix.patch +++ /dev/null @@ -1,68 +0,0 @@ -=== modified file 'Makefile.in.in' ---- a/po-locations/Makefile.in.in 2012-01-18 16:37:06 +0000 -+++ b/po-locations/Makefile.in.in 2013-05-12 17:12:40 +0000 -@@ -33,8 +33,7 @@ - datadir = @datadir@ - datarootdir = @datarootdir@ - libdir = @libdir@ --DATADIRNAME = @DATADIRNAME@ --itlocaledir = $(prefix)/$(DATADIRNAME)/locale -+localedir = @localedir@ - subdir = po-locations - install_sh = @install_sh@ - # Automake >= 1.8 provides @mkdir_p@. -@@ -108,7 +107,7 @@ - install-data-yes: all - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ -+ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ -@@ -142,8 +141,8 @@ - uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - - check: all $(GETTEXT_PACKAGE).pot -=== modified file 'intltool.m4' ---- a/m4/intltool.m4 2012-02-20 14:50:33 +0000 -+++ b/m4/intltool.m4 2013-05-12 17:12:40 +0000 -@@ -155,31 +155,6 @@ - # Substitute ALL_LINGUAS so we can use it in po/Makefile - AC_SUBST(ALL_LINGUAS) - --# Set DATADIRNAME correctly if it is not set yet --# (copied from glib-gettext.m4) --if test -z "$DATADIRNAME"; then -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[]], -- [[extern int _nl_msg_cat_cntr; -- return _nl_msg_cat_cntr]])], -- [DATADIRNAME=share], -- [case $host in -- *-*-solaris*) -- dnl On Solaris, if bind_textdomain_codeset is in libc, -- dnl GNU format message catalog is always supported, -- dnl since both are added to the libc all together. -- dnl Hence, we'd like to go with DATADIRNAME=share -- dnl in this case. -- AC_CHECK_FUNC(bind_textdomain_codeset, -- [DATADIRNAME=share], [DATADIRNAME=lib]) -- ;; -- *) -- [DATADIRNAME=lib] -- ;; -- esac]) --fi --AC_SUBST(DATADIRNAME) -- - IT_PO_SUBDIR([po]) - - ]) diff --git a/mingw-w64-libgweather/002-relocation.patch b/mingw-w64-libgweather/002-relocation.patch new file mode 100644 index 0000000000..337799fa41 --- /dev/null +++ b/mingw-w64-libgweather/002-relocation.patch @@ -0,0 +1,80 @@ +--- ./libgweather/parser.c.orig 2015-04-20 17:42:37.500600900 +0200 ++++ ./libgweather/parser.c 2015-04-20 17:44:52.715146100 +0200 +@@ -131,19 +131,34 @@ + time_t now; + struct tm tm; + ++ gchar *gweather_xml_location_dir; ++ + _gweather_gettext_init (); + + parser = g_slice_new0 (GWeatherParser); + + zlib_support = xmlHasFeature (XML_WITH_ZLIB); + +- filename = g_build_filename (GWEATHER_XML_LOCATION_DIR, "Locations.xml", NULL); ++#ifdef G_OS_WIN32 ++ gchar *dir; ++ ++ dir = g_win32_get_package_installation_directory_of_module (NULL); ++ gweather_xml_location_dir = g_build_filename (dir, "share", "libgweather", NULL); ++ ++ g_free (dir); ++#else ++ gweather_xml_location_dir = g_strdup (GWEATHER_XML_LOCATION_DIR); ++#endif ++ ++ filename = g_build_filename (gweather_xml_location_dir, "Locations.xml", NULL); + + if (!g_file_test (filename, G_FILE_TEST_IS_REGULAR) && zlib_support) { + g_free (filename); +- filename = g_build_filename (GWEATHER_XML_LOCATION_DIR, "Locations.xml.gz", NULL); ++ filename = g_build_filename (gweather_xml_location_dir, "Locations.xml.gz", NULL); + } + ++ g_free (gweather_xml_location_dir); ++ + /* Open the xml file containing the different locations */ + parser->xml = xmlNewTextReaderFilename (filename); + g_free (filename); +--- ./libgweather/weather.c.orig 2015-04-20 17:41:19.049620900 +0200 ++++ ./libgweather/weather.c 2015-04-20 17:41:53.096893500 +0200 +@@ -84,21 +84,36 @@ + void + _gweather_gettext_init (void) + { ++ gchar *gnomelocaledir; ++ ++#ifdef G_OS_WIN32 ++ gchar *dir; ++ ++ dir = g_win32_get_package_installation_directory_of_module (NULL); ++ gnomelocaledir = g_build_filename (dir, "share", "locale", NULL); ++ ++ g_free (dir); ++#else ++ gnomelocaledir = g_strdup (GNOMELOCALEDIR); ++#endif ++ + static gsize gweather_gettext_initialized = FALSE; + + if (G_UNLIKELY (g_once_init_enter (&gweather_gettext_initialized))) { +- bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); ++ bindtextdomain (GETTEXT_PACKAGE, gnomelocaledir); + #ifdef HAVE_BIND_TEXTDOMAIN_CODESET + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + #endif + +- bindtextdomain ("libgweather-locations", GNOMELOCALEDIR); ++ bindtextdomain ("libgweather-locations", gnomelocaledir); + #ifdef HAVE_BIND_TEXTDOMAIN_CODESET + bind_textdomain_codeset ("libgweather-locations", "UTF-8"); + #endif + + g_once_init_leave (&gweather_gettext_initialized, TRUE); + } ++ ++ g_free (gnomelocaledir); + } + + static void diff --git a/mingw-w64-libgweather/PKGBUILD b/mingw-w64-libgweather/PKGBUILD index d6985f9fa2..a68737d0cc 100644 --- a/mingw-w64-libgweather/PKGBUILD +++ b/mingw-w64-libgweather/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgweather pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 +pkgver=3.16.1 pkgrel=1 arch=('any') pkgdesc="GWeather shared library (mingw-w64)" @@ -20,17 +20,19 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" +install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch - 002-localedir-fix.patch) -sha256sums=('eacb755a95268bb65f6e027ec236de36fb0f486a8bb938e98e82377836373f74' + 002-relocation.patch) +sha256sums=('db0955261427bb0f1a3f2747507863c591bf2f09dc477cfbf1cea0382cd34dfd' '54aafa1ec47f818855cb8d17bb4f7f4458505a54b08c9fc51bfd4bbc1d6c37a2' - '6677acc97b0322170339479df46435f14eb232df2d36e607029af3bd1f1a4eb0') + '5d44c1dfed0deff2a4acdb676ff99d8d6ba1983abf27eb423ae3351334ce10cb') prepare() { cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/001-win.patch - patch -p1 -i ${srcdir}/002-localedir-fix.patch + patch -b -V simple -p1 -i ${srcdir}/002-relocation.patch AUTOPOINT='intltoolize --automake --copy' autoreconf -fiv } @@ -39,6 +41,9 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + mkdir -p doc/html + cp -rf ../${_realname}-${pkgver}/doc/html/* doc/html + ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ diff --git a/mingw-w64-libgweather/libgweather-i686.install b/mingw-w64-libgweather/libgweather-i686.install new file mode 100644 index 0000000000..375e708c36 --- /dev/null +++ b/mingw-w64-libgweather/libgweather-i686.install @@ -0,0 +1,11 @@ +post_install() { + mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/mingw-w64-libgweather/libgweather-x86_64.install b/mingw-w64-libgweather/libgweather-x86_64.install new file mode 100644 index 0000000000..d43ee14ce7 --- /dev/null +++ b/mingw-w64-libgweather/libgweather-x86_64.install @@ -0,0 +1,11 @@ +post_install() { + mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} From 9ac475ffe4ce6329254c6623e57cd336c1694ec6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 21 Apr 2015 11:27:07 +0300 Subject: [PATCH 0898/2060] cmake: Update to 3.2.2 --- mingw-w64-cmake/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 6f96bf2e1f..440424e4f2 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -2,8 +2,8 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.2.1 -pkgrel=2 +pkgver=3.2.2 +pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -23,7 +23,7 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" "qt5-static-plugin-support.patch") -md5sums=('63f436aa19b5efc37017759c8d3953ca' +md5sums=('2da57308071ea98b10253a87d2419281' '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' '6461b89ff7d1ca0c4022801dff8475a7') From 7656c5654b77b93801f4932117c966e7cd6fad83 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 21 Apr 2015 11:27:44 +0300 Subject: [PATCH 0899/2060] mingw-w64 runtime and tools updated to latest from git. --- mingw-w64-crt-git/PKGBUILD | 8 +++++--- mingw-w64-headers-git/PKGBUILD | 4 ++-- mingw-w64-libmangle-git/PKGBUILD | 19 ++++++++++++------- mingw-w64-tools-git/PKGBUILD | 11 ++++++----- mingw-w64-winpthreads-git/PKGBUILD | 8 ++++---- 5 files changed, 29 insertions(+), 21 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 7f1eb8cc4d..3a73c13079 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,15 +3,17 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4485.c881cc7 +pkgver=5.0.0.4492.85b4034 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') url='http://mingw-w64.sourceforge.net' license=('custom') -groups=("${MINGW_PACKAGE_PREFIX}-toolchain" "${MINGW_PACKAGE_PREFIX}") +groups=("${MINGW_PACKAGE_PREFIX}-toolchain") depends=("${MINGW_PACKAGE_PREFIX}-headers-git") -makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-binutils") +makedepends=("git" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-binutils") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' 'staticlibs' '!buildflags' '!emptydirs') diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 9994881418..d7b7933dea 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,12 +4,12 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4485.c881cc7 +pkgver=5.0.0.4492.85b4034 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" license=('custom') -groups=("${MINGW_PACKAGE_PREFIX}-toolchain" "${MINGW_PACKAGE_PREFIX}") +groups=("${MINGW_PACKAGE_PREFIX}-toolchain") makedepends=('git' "${MINGW_PACKAGE_PREFIX}-tools") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") diff --git a/mingw-w64-libmangle-git/PKGBUILD b/mingw-w64-libmangle-git/PKGBUILD index 2f2655c8f1..66df630613 100644 --- a/mingw-w64-libmangle-git/PKGBUILD +++ b/mingw-w64-libmangle-git/PKGBUILD @@ -1,27 +1,32 @@ # Maintainer: Alexey Pavlov _realname=libmangle - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -_ver_base=4.0.0 -pkgver=4.0.0.4328.a913346 +pkgver=5.0.0.4492.85b4034 pkgrel=1 pkgdesc="MinGW-w64 libmangle" arch=('any') url="http://mingw-w64.sourceforge.net" license=('custom') -groups=("${MINGW_PACKAGE_PREFIX}-toolchain" "${MINGW_PACKAGE_PREFIX}") -makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-binutils" "${MINGW_PACKAGE_PREFIX}-crt" "${MINGW_PACKAGE_PREFIX}-headers") +groups=("${MINGW_PACKAGE_PREFIX}-toolchain") +makedepends=("git" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-binutils" + "${MINGW_PACKAGE_PREFIX}-crt-git" + "${MINGW_PACKAGE_PREFIX}-headers-git") options=('strip' 'staticlibs' '!emptydirs') source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=(SKIP) +md5sums=('SKIP') pkgver() { cd "${srcdir}/${_realname}" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _rev=0 + printf "%s.%s.%s.%s.%s" ${_major} ${_minor} ${_rev} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } build() { diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index ef8675232a..f3c9cb51da 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -1,19 +1,17 @@ # Maintainer: Alexey Pavlov _realname=tools - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -_ver_base=4.0.0 -pkgver=4.0.0.4417.77f3bca +pkgver=5.0.0.4492.85b4034 pkgrel=1 pkgdesc="MinGW-w64 tools" arch=('any') url="http://mingw-w64.sourceforge.net" license=('custom') -groups=("${MINGW_PACKAGE_PREFIX}-toolchain" "${MINGW_PACKAGE_PREFIX}") +groups=("${MINGW_PACKAGE_PREFIX}-toolchain") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libmangle") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' '!emptydirs') @@ -23,7 +21,10 @@ _tools="gendef genidl genpeimg widl" # genstubdll pkgver() { cd "$srcdir/${_realname}" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _rev=0 + printf "%s.%s.%s.%s.%s" ${_major} ${_minor} ${_rev} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } build() { diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index 01825ac3fe..91a0ec681b 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -4,18 +4,18 @@ _realname=winpthreads pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") -pkgver=5.0.0.4455.32db221 +pkgver=5.0.0.4492.85b4034 pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" arch=('any') url="http://mingw-w64.sourceforge.net" license=(custom:'Permissive-like') # TODO: clarify -groups=("${MINGW_PACKAGE_PREFIX}-toolchain" "${MINGW_PACKAGE_PREFIX}") +groups=("${MINGW_PACKAGE_PREFIX}-toolchain") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-binutils" - "${MINGW_PACKAGE_PREFIX}-crt" - "${MINGW_PACKAGE_PREFIX}-headers") + "${MINGW_PACKAGE_PREFIX}-crt-git" + "${MINGW_PACKAGE_PREFIX}-headers-git") options=('strip' '!buildflags' 'staticlibs' '!emptydirs' '!debug') source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch") From ea6bd9ea7aa49d7dc3d8f5b7ae49de8b39173a8e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 21 Apr 2015 13:24:55 +0300 Subject: [PATCH 0900/2060] blender: Fix dependencies. --- mingw-w64-blender/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-blender/PKGBUILD b/mingw-w64-blender/PKGBUILD index d019be5c4b..1d1ba90fcd 100644 --- a/mingw-w64-blender/PKGBUILD +++ b/mingw-w64-blender/PKGBUILD @@ -18,7 +18,7 @@ _minorchar= pkgver=${_basever}.${_minorchar} } _pyver=3.4 -pkgrel=1 +pkgrel=2 pkgdesc="A fully integrated 3D graphics creation suite (mingw-w64)" arch=('any') license=('GPL') @@ -39,6 +39,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-openshadinglanguage-git" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-numpy" + "${MINGW_PACKAGE_PREFIX}-SDL2" "${MINGW_PACKAGE_PREFIX}-wintab-sdk") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-llvm") #[[ $CARCH == x86_64 ]] && makedepends+=('cuda') From a4a06ae3e2254061e1b7a452628a9035f517dec6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 21 Apr 2015 13:25:43 +0300 Subject: [PATCH 0901/2060] libwebp: Update to 0.4.3 --- mingw-w64-libwebp/PKGBUILD | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/mingw-w64-libwebp/PKGBUILD b/mingw-w64-libwebp/PKGBUILD index 87a452c18b..48ef9b38d3 100644 --- a/mingw-w64-libwebp/PKGBUILD +++ b/mingw-w64-libwebp/PKGBUILD @@ -2,16 +2,20 @@ _realname=libwebp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.4.2 +pkgver=0.4.3 pkgrel=1 -pkgdesc="the WebP library. Includes conversion tools. (mingw-w64)" +pkgdesc="the WebP library. Includes conversion tools (mingw-w64)" arch=('any') -url="https://code.google.com/p/webp/" +url="https://developers.google.com/speed/webp/" license=('BSD') -depends=("${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-giflib") +depends=("${MINGW_PACKAGE_PREFIX}-giflib" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -source=("http://downloads.webmproject.org/releases/webp/$_realname-$pkgver.tar.gz") -md5sums=('404f45a7d695217db2bb49e1e22ad49f') +source=(http://downloads.webmproject.org/releases/webp/${_realname}-${pkgver}.tar.gz{,.asc}) +md5sums=('08813525eeeffe7e305b4cbfade8ae9b' + 'SKIP') prepare() { cd $srcdir/$_realname-$pkgver From 79bb5a8685e542a3f90220f6bf8c56d7a612aa14 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 21 Apr 2015 14:12:41 +0300 Subject: [PATCH 0902/2060] gd: Update to 2.1.1 --- mingw-w64-gd/PKGBUILD | 34 +++++++++++++++++--------------- mingw-w64-gd/php-gd-newvpx.patch | 25 +++++++++++++++++++++++ 2 files changed, 43 insertions(+), 16 deletions(-) create mode 100644 mingw-w64-gd/php-gd-newvpx.patch diff --git a/mingw-w64-gd/PKGBUILD b/mingw-w64-gd/PKGBUILD index 0b54465e43..a1b8f105bd 100644 --- a/mingw-w64-gd/PKGBUILD +++ b/mingw-w64-gd/PKGBUILD @@ -1,30 +1,30 @@ # Maintainer: Alexey Pavlov _realname=gd - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.0 -pkgrel=2 +pkgver=2.1.1 +pkgrel=1 pkgdesc='Library for the dynamic creation of images by programmers (mingw-w64)' url='http://www.libgd.org/' arch=('any') license=("CPL") options=(!libtool strip staticlibs) -depends=( - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-libiconv" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-libvpx" - "${MINGW_PACKAGE_PREFIX}-xpm-nox" - ) -optdepends=('perl: bdftogd script') -source=("https://bitbucket.org/libgd/gd-libgd/downloads/libgd-${pkgver}.tar.xz") -md5sums=('03588159bf4faab9079849c8d709acc6') +depends=("${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libvpx" + "${MINGW_PACKAGE_PREFIX}-xpm-nox") +#optdepends=('perl: bdftogd script') +source=("https://bitbucket.org/libgd/gd-libgd/downloads/libgd-${pkgver}.tar.xz" + "php-gd-newvpx.patch") +md5sums=('9076f3abd1f9815d106da36467ea15bc' + '96a607c9f9fa90050943a08ab6c254d6') prepare() { cd ${srcdir}/libgd-${pkgver} + patch -p1 -i ${srcdir}/php-gd-newvpx.patch } build() { @@ -40,11 +40,13 @@ build() { --enable-shared \ LIBXPM_CFLAGS="-I${MINGW_PREFIX}/include/noX" \ LIBXPM_LIBS="-L${MINGW_PREFIX}/lib -lXpm" + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + + install -Dm644 ${srcdir}/libgd-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/license/libgd/LICENSE } diff --git a/mingw-w64-gd/php-gd-newvpx.patch b/mingw-w64-gd/php-gd-newvpx.patch new file mode 100644 index 0000000000..4fd16e59fd --- /dev/null +++ b/mingw-w64-gd/php-gd-newvpx.patch @@ -0,0 +1,25 @@ +diff -urN a/src/webpimg.c b/src/webpimg.c +--- a/src/webpimg.c 2015-04-15 13:43:00.000000000 +0300 ++++ b/src/webpimg.c 2015-04-18 11:46:36.247244985 +0300 +@@ -706,14 +722,14 @@ + codec_ctl(&enc, VP8E_SET_STATIC_THRESHOLD, 0); + codec_ctl(&enc, VP8E_SET_TOKEN_PARTITIONS, 2); + +- vpx_img_wrap(&img, IMG_FMT_I420, ++ vpx_img_wrap(&img, VPX_IMG_FMT_I420, + y_width, y_height, 16, (uint8*)(Y)); +- img.planes[PLANE_Y] = (uint8*)(Y); +- img.planes[PLANE_U] = (uint8*)(U); +- img.planes[PLANE_V] = (uint8*)(V); +- img.stride[PLANE_Y] = y_stride; +- img.stride[PLANE_U] = uv_stride; +- img.stride[PLANE_V] = uv_stride; ++ img.planes[VPX_PLANE_Y] = (uint8*)(Y); ++ img.planes[VPX_PLANE_U] = (uint8*)(U); ++ img.planes[VPX_PLANE_V] = (uint8*)(V); ++ img.stride[VPX_PLANE_Y] = y_stride; ++ img.stride[VPX_PLANE_U] = uv_stride; ++ img.stride[VPX_PLANE_V] = uv_stride; + + res = vpx_codec_encode(&enc, &img, 0, 1, 0, VPX_DL_BEST_QUALITY); + From 9a74c8f0820922602d06352f3dd8100e25d99e8a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 21 Apr 2015 14:26:16 +0300 Subject: [PATCH 0903/2060] webkitgtk: Update patchset --- ...d.-Fix-the-build-with-newer-GLib.all.patch | 355 ++++++++++++++++++ ...clude-non-existing-WTF-WTFHeader.all.patch | 30 ++ ...eference-to-nonexisting-header.mingw.patch | 11 - ...nGW-GCC-to-use-GCC-asm-code-for-.all.patch | 28 ++ ...02-webkitgtk-mingw-use-gcc-asm.mingw.patch | 11 - ...Use-confgured-Python-interpreter.all.patch | 51 +++ ...armonize-binary-semaphore-ifdefs.all.patch | 67 ++++ ...dd-missing-gcc-asm-code-for-JIT.all.patch} | 31 +- ...05-webkitgtk-mingw-compile-fix.mingw.patch | 11 - ...iOverTwoDouble-instead-of-M_PI_2.all.patch | 34 ++ ...issing-includes-to-FileSystemGtk.all.patch | 29 ++ ...7-webkitgtk-mingw-fix-includes.mingw.patch | 10 - ...um-LineLayoutPath-in-RenderBlock.all.patch | 40 ++ ...bject-prototypte-fix-header-case.all.patch | 49 +++ .../0009-webkitgtk-mingw-m-pi.mingw.patch | 14 - ...hardcode-ossource_posix.cpp-in-t.all.patch | 40 ++ ...t-multiple-plugins-definitions.mingw.patch | 29 -- ...L-checks-to-work-on-W32-add-libo.all.patch | 74 ++++ .../0011-webkitgtk-mingw-opengl.mingw.patch | 47 --- ...ect-.la-files-as-library-argumen.all.patch | 33 ++ ...gtk-dont-build-test-webkit-api.mingw.patch | 12 - ...ator-scripts-get-CC-from-config.all.patch} | 260 +++++++------ ...LE-Silence-two-warnings-in-ANGLE.all.patch | 47 +++ ...kg-config-to-detect-ICU-librarie.all.patch | 42 +++ ...k-around-name-conflicts-NO_ERROR.all.patch | 95 +++++ ...related-files-when-compiling-wit.all.patch | 56 +++ ...ing-about-JSValue-v-being-uninit.all.patch | 56 +++ .../0018-use-la-libs-for-g-i.all.patch | 13 - ...wsVersion-and-osVersionForUAStri.all.patch | 188 ++++++++++ ...my-HeapStatistics-implementation.all.patch | 29 ++ ...f-format-atribute-to-gnu_printf-.all.patch | 68 ++++ ...1-use-configured-python-for-this.all.patch | 22 -- ...-instead-of-ld-library-path-on.mingw.patch | 25 -- ...ocation-before-return-switchable.all.patch | 32 -- ...bkit-dont-build-dump-render-tree.all.patch | 14 - .../0103-webkitgtk-2.4.3-win-format.all.patch | 11 - ...-webkitgtk-2.4.3-misc-win-errors.all.patch | 45 --- .../0105-webkitgtk-2.4.3-warnings.all.patch | 57 --- ...ce.autotools.FindDependencies.m4.all.patch | 35 -- ...02-preprocessor.pm-make_names.pl.all.patch | 31 -- .../1004-math.h_related.all.patch | 56 --- mingw-w64-webkitgtk3/1005-misc.all.patch | 107 ------ .../3000-export-more-symbols-on-w32.all.patch | 17 - .../4000-fix-gmutexlocker-conflict.all.patch | 301 --------------- ....patch => 9999-ossource_win.cpp.all.patch} | 24 +- mingw-w64-webkitgtk3/PKGBUILD | 146 ++++--- 46 files changed, 1659 insertions(+), 1124 deletions(-) create mode 100644 mingw-w64-webkitgtk3/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch create mode 100644 mingw-w64-webkitgtk3/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch delete mode 100644 mingw-w64-webkitgtk3/0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch create mode 100644 mingw-w64-webkitgtk3/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch delete mode 100644 mingw-w64-webkitgtk3/0002-webkitgtk-mingw-use-gcc-asm.mingw.patch create mode 100644 mingw-w64-webkitgtk3/0003-W32-Use-confgured-Python-interpreter.all.patch create mode 100644 mingw-w64-webkitgtk3/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch rename mingw-w64-webkitgtk3/{0106-enable-jit.all.patch => 0005-Add-missing-gcc-asm-code-for-JIT.all.patch} (81%) delete mode 100644 mingw-w64-webkitgtk3/0005-webkitgtk-mingw-compile-fix.mingw.patch create mode 100644 mingw-w64-webkitgtk3/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch create mode 100644 mingw-w64-webkitgtk3/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch delete mode 100644 mingw-w64-webkitgtk3/0007-webkitgtk-mingw-fix-includes.mingw.patch create mode 100644 mingw-w64-webkitgtk3/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch create mode 100644 mingw-w64-webkitgtk3/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch delete mode 100644 mingw-w64-webkitgtk3/0009-webkitgtk-mingw-m-pi.mingw.patch create mode 100644 mingw-w64-webkitgtk3/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch delete mode 100644 mingw-w64-webkitgtk3/0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch create mode 100644 mingw-w64-webkitgtk3/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch delete mode 100644 mingw-w64-webkitgtk3/0011-webkitgtk-mingw-opengl.mingw.patch create mode 100644 mingw-w64-webkitgtk3/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch delete mode 100644 mingw-w64-webkitgtk3/0012-webkitgtk-dont-build-test-webkit-api.mingw.patch rename mingw-w64-webkitgtk3/{0017-make-sure-correct-gcc-is-used.mingw.patch => 0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch} (87%) create mode 100644 mingw-w64-webkitgtk3/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch create mode 100644 mingw-w64-webkitgtk3/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch create mode 100644 mingw-w64-webkitgtk3/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch create mode 100644 mingw-w64-webkitgtk3/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch create mode 100644 mingw-w64-webkitgtk3/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch delete mode 100644 mingw-w64-webkitgtk3/0018-use-la-libs-for-g-i.all.patch create mode 100644 mingw-w64-webkitgtk3/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch create mode 100644 mingw-w64-webkitgtk3/0020-W32-Fixup-dummy-HeapStatistics-implementation.all.patch create mode 100644 mingw-w64-webkitgtk3/0021-W32-Change-printf-format-atribute-to-gnu_printf-.all.patch delete mode 100644 mingw-w64-webkitgtk3/0021-use-configured-python-for-this.all.patch delete mode 100644 mingw-w64-webkitgtk3/0023-use-path-instead-of-ld-library-path-on.mingw.patch delete mode 100644 mingw-w64-webkitgtk3/0027-destroy-invocation-before-return-switchable.all.patch delete mode 100644 mingw-w64-webkitgtk3/0029-webkit-dont-build-dump-render-tree.all.patch delete mode 100644 mingw-w64-webkitgtk3/0103-webkitgtk-2.4.3-win-format.all.patch delete mode 100644 mingw-w64-webkitgtk3/0104-webkitgtk-2.4.3-misc-win-errors.all.patch delete mode 100644 mingw-w64-webkitgtk3/0105-webkitgtk-2.4.3-warnings.all.patch delete mode 100644 mingw-w64-webkitgtk3/1001-Source.autotools.FindDependencies.m4.all.patch delete mode 100644 mingw-w64-webkitgtk3/1002-preprocessor.pm-make_names.pl.all.patch delete mode 100644 mingw-w64-webkitgtk3/1004-math.h_related.all.patch delete mode 100644 mingw-w64-webkitgtk3/1005-misc.all.patch delete mode 100644 mingw-w64-webkitgtk3/3000-export-more-symbols-on-w32.all.patch delete mode 100644 mingw-w64-webkitgtk3/4000-fix-gmutexlocker-conflict.all.patch rename mingw-w64-webkitgtk3/{0008-webkit-fix-angle-windows-compilation.mingw.patch => 9999-ossource_win.cpp.all.patch} (60%) diff --git a/mingw-w64-webkitgtk3/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch b/mingw-w64-webkitgtk3/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch new file mode 100644 index 0000000000..3e680dbc2b --- /dev/null +++ b/mingw-w64-webkitgtk3/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch @@ -0,0 +1,355 @@ +From 62818a59067464897b974b64f4eec51caf771aba Mon Sep 17 00:00:00 2001 +From: "carlosgc@webkit.org" + +Date: Tue, 7 Apr 2015 09:23:10 +0000 +Subject: [PATCH] Unreviewed. Fix the build with newer GLib. + +Source/WebCore: + +Use WTF::GMutexLocker. + +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: +(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): +(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): +(WebCore::MediaPlayerPrivateGStreamerBase::paint): +* platform/graphics/gstreamer/VideoSinkGStreamer.cpp: +(webkitVideoSinkTimeoutCallback): +(webkitVideoSinkRender): +(unlockBufferMutex): +(webkitVideoSinkUnlockStop): +(webkitVideoSinkStart): +* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: +(webKitWebSrcSetProperty): +(webKitWebSrcGetProperty): +(webKitWebSrcStop): +(webKitWebSrcStart): +(webKitWebSrcChangeState): +(webKitWebSrcQueryWithParent): +(webKitWebSrcGetUri): +(webKitWebSrcSetUri): +(webKitWebSrcNeedDataMainCb): +(webKitWebSrcNeedDataCb): +(webKitWebSrcEnoughDataMainCb): +(webKitWebSrcEnoughDataCb): +(webKitWebSrcSeekMainCb): +(webKitWebSrcSeekDataCb): +(webKitWebSrcSetMediaPlayer): +(StreamingClient::createReadBuffer): +(StreamingClient::handleResponseReceived): +(StreamingClient::handleDataReceived): +(StreamingClient::handleNotifyFinished): +(ResourceHandleStreamingClient::wasBlocked): +(ResourceHandleStreamingClient::cannotShowURL): + +Source/WTF: + +* wtf/gobject/GMutexLocker.h: Move to the WTF namespace. + +git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.4@182456 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/WTF/ChangeLog | 6 +++ + Source/WTF/wtf/gobject/GMutexLocker.h | 2 +- + Source/WebCore/ChangeLog | 39 +++++++++++++++++++ + .../gstreamer/MediaPlayerPrivateGStreamerBase.cpp | 6 +-- + .../graphics/gstreamer/VideoSinkGStreamer.cpp | 10 ++--- + .../gstreamer/WebKitWebSourceGStreamer.cpp | 44 +++++++++++----------- + 6 files changed, 76 insertions(+), 31 deletions(-) + +diff --git a/Source/WTF/wtf/gobject/GMutexLocker.h b/Source/WTF/wtf/gobject/GMutexLocker.h +index bf7864a..87b4063 100644 +--- a/Source/WTF/wtf/gobject/GMutexLocker.h ++++ b/Source/WTF/wtf/gobject/GMutexLocker.h +@@ -27,7 +27,7 @@ + #include + #include + +-namespace WebCore { ++namespace WTF { + + class GMutexLocker { + WTF_MAKE_NONCOPYABLE(GMutexLocker); WTF_MAKE_FAST_ALLOCATED; +diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp +index b6069b9..c656473 100644 +--- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp ++++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp +@@ -316,7 +316,7 @@ void MediaPlayerPrivateGStreamerBase::muteChanged() + #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) && !USE(COORDINATED_GRAPHICS) + PassRefPtr MediaPlayerPrivateGStreamerBase::updateTexture(TextureMapper* textureMapper) + { +- GMutexLocker lock(m_bufferMutex); ++ WTF::GMutexLocker lock(m_bufferMutex); + if (!m_buffer) + return nullptr; + +@@ -366,7 +366,7 @@ void MediaPlayerPrivateGStreamerBase::triggerRepaint(GstBuffer* buffer) + g_return_if_fail(GST_IS_BUFFER(buffer)); + + { +- GMutexLocker lock(m_bufferMutex); ++ WTF::GMutexLocker lock(m_bufferMutex); + gst_buffer_replace(&m_buffer, buffer); + } + +@@ -398,7 +398,7 @@ void MediaPlayerPrivateGStreamerBase::paint(GraphicsContext* context, const IntR + if (!m_player->visible()) + return; + +- GMutexLocker lock(m_bufferMutex); ++ WTF::GMutexLocker lock(m_bufferMutex); + if (!m_buffer) + return; + +diff --git a/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp +index 651c7f4..7dd894e 100644 +--- a/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp ++++ b/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp +@@ -118,7 +118,7 @@ static gboolean webkitVideoSinkTimeoutCallback(gpointer data) + WebKitVideoSink* sink = reinterpret_cast(data); + WebKitVideoSinkPrivate* priv = sink->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ WTF::GMutexLocker lock(priv->bufferMutex); + GstBuffer* buffer = priv->buffer; + priv->buffer = 0; + priv->timeoutId = 0; +@@ -140,7 +140,7 @@ static GstFlowReturn webkitVideoSinkRender(GstBaseSink* baseSink, GstBuffer* buf + WebKitVideoSink* sink = WEBKIT_VIDEO_SINK(baseSink); + WebKitVideoSinkPrivate* priv = sink->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ WTF::GMutexLocker lock(priv->bufferMutex); + + if (priv->unlocked) + return GST_FLOW_OK; +@@ -279,7 +279,7 @@ static void webkitVideoSinkGetProperty(GObject* object, guint propertyId, GValue + + static void unlockBufferMutex(WebKitVideoSinkPrivate* priv) + { +- GMutexLocker lock(priv->bufferMutex); ++ WTF::GMutexLocker lock(priv->bufferMutex); + + if (priv->buffer) { + gst_buffer_unref(priv->buffer); +@@ -305,7 +305,7 @@ static gboolean webkitVideoSinkUnlockStop(GstBaseSink* baseSink) + WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; + + { +- GMutexLocker lock(priv->bufferMutex); ++ WTF::GMutexLocker lock(priv->bufferMutex); + priv->unlocked = false; + } + +@@ -330,7 +330,7 @@ static gboolean webkitVideoSinkStart(GstBaseSink* baseSink) + { + WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ WTF::GMutexLocker lock(priv->bufferMutex); + priv->unlocked = false; + return TRUE; + } +diff --git a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp +index ab9b3f5..c7d8eca 100644 +--- a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp ++++ b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp +@@ -346,7 +346,7 @@ static void webKitWebSrcSetProperty(GObject* object, guint propID, const GValue* + + switch (propID) { + case PROP_IRADIO_MODE: { +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + priv->iradioMode = g_value_get_boolean(value); + break; + } +@@ -364,7 +364,7 @@ static void webKitWebSrcGetProperty(GObject* object, guint propID, GValue* value + WebKitWebSrc* src = WEBKIT_WEB_SRC(object); + WebKitWebSrcPrivate* priv = src->priv; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + switch (propID) { + case PROP_IRADIO_MODE: + g_value_set_boolean(value, priv->iradioMode); +@@ -417,7 +417,7 @@ static gboolean webKitWebSrcStop(WebKitWebSrc* src) + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + bool seeking = priv->seekID; + +@@ -476,7 +476,7 @@ static gboolean webKitWebSrcStart(WebKitWebSrc* src) + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + priv->startID = 0; + priv->corsAccessCheck = CORSNoCheck; +@@ -573,7 +573,7 @@ static GstStateChangeReturn webKitWebSrcChangeState(GstElement* element, GstStat + return ret; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + GST_DEBUG_OBJECT(src, "READY->PAUSED"); +@@ -604,7 +604,7 @@ static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ + gst_query_parse_duration(query, &format, NULL); + + GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format)); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (format == GST_FORMAT_BYTES && src->priv->size > 0) { + gst_query_set_duration(query, format, src->priv->size); + result = TRUE; +@@ -612,7 +612,7 @@ static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ + break; + } + case GST_QUERY_URI: { +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + gst_query_set_uri(query, src->priv->uri); + result = TRUE; + break; +@@ -653,7 +653,7 @@ static gchar* webKitWebSrcGetUri(GstURIHandler* handler) + WebKitWebSrc* src = WEBKIT_WEB_SRC(handler); + gchar* ret; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + ret = g_strdup(src->priv->uri); + return ret; + } +@@ -668,7 +668,7 @@ static gboolean webKitWebSrcSetUri(GstURIHandler* handler, const gchar* uri, GEr + return FALSE; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + g_free(priv->uri); + priv->uri = 0; +@@ -704,7 +704,7 @@ static gboolean webKitWebSrcNeedDataMainCb(WebKitWebSrc* src) + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->needDataID) + return FALSE; +@@ -725,7 +725,7 @@ static void webKitWebSrcNeedDataCb(GstAppSrc*, guint length, gpointer userData) + + GST_DEBUG_OBJECT(src, "Need more data: %u", length); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (priv->needDataID || !priv->paused) { + return; + } +@@ -739,7 +739,7 @@ static gboolean webKitWebSrcEnoughDataMainCb(WebKitWebSrc* src) + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->enoughDataID) + return FALSE; +@@ -760,7 +760,7 @@ static void webKitWebSrcEnoughDataCb(GstAppSrc*, gpointer userData) + + GST_DEBUG_OBJECT(src, "Have enough data"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (priv->enoughDataID || priv->paused) { + return; + } +@@ -774,7 +774,7 @@ static gboolean webKitWebSrcSeekMainCb(WebKitWebSrc* src) + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->seekID) + return FALSE; +@@ -792,7 +792,7 @@ static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user + WebKitWebSrcPrivate* priv = src->priv; + + GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (offset == priv->offset && priv->requestedOffset == priv->offset) + return TRUE; + +@@ -811,7 +811,7 @@ static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user + void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player) + { + ASSERT(player); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + src->priv->player = player; + } + +@@ -841,7 +841,7 @@ char* StreamingClient::createReadBuffer(size_t requestedSize, size_t& actualSize + + mapGstBuffer(buffer); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + priv->buffer = adoptGRef(buffer); + locker.unlock(); + +@@ -867,7 +867,7 @@ void StreamingClient::handleResponseReceived(const ResourceResponse& response, C + return; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + priv->corsAccessCheck = corsAccessCheck; + +@@ -966,7 +966,7 @@ void StreamingClient::handleDataReceived(const char* data, int length) + WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src); + WebKitWebSrcPrivate* priv = src->priv; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + GST_LOG_OBJECT(src, "Have %lld bytes of data", priv->buffer ? static_cast(gst_buffer_get_size(priv->buffer.get())) : length); + +@@ -1035,7 +1035,7 @@ void StreamingClient::handleNotifyFinished() + + GST_DEBUG_OBJECT(src, "Have EOS"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (!priv->seekID) { + locker.unlock(); + gst_app_src_end_of_stream(priv->appsrc); +@@ -1194,7 +1194,7 @@ void ResourceHandleStreamingClient::wasBlocked(ResourceHandle*) + + GST_ERROR_OBJECT(src, "Request was blocked"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + uri.reset(g_strdup(src->priv->uri)); + locker.unlock(); + +@@ -1208,7 +1208,7 @@ void ResourceHandleStreamingClient::cannotShowURL(ResourceHandle*) + + GST_ERROR_OBJECT(src, "Cannot show URL"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + uri.reset(g_strdup(src->priv->uri)); + locker.unlock(); + +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch b/mingw-w64-webkitgtk3/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch new file mode 100644 index 0000000000..426b6e3fac --- /dev/null +++ b/mingw-w64-webkitgtk3/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch @@ -0,0 +1,30 @@ +From 2da1ce15dfc85cfbd390b4cfb9350a13a6b47003 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?= +Date: Mon, 13 Apr 2015 00:29:21 +0000 +Subject: [PATCH 01/20] [GTK][W32] Don't include non-existing + WTF/WTFHeaderDetection.h in 2.4.x + +WTF/WTFHeaderDetection.h seems to be from some other universe, +there are no rules to generate it in webkit-2.4, except for MSVS projects. +--- + Source/WTF/wtf/Platform.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h +index d918b43..2ebdeea 100644 +--- a/Source/WTF/wtf/Platform.h ++++ b/Source/WTF/wtf/Platform.h +@@ -611,7 +611,9 @@ + #define HAVE_ALIGNED_MALLOC 1 + #define HAVE_ISDEBUGGERPRESENT 1 + ++#ifdef _MSC_VER + #include ++#endif + + #endif + +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch b/mingw-w64-webkitgtk3/0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch deleted file mode 100644 index d6f50e5d6e..0000000000 --- a/mingw-w64-webkitgtk3/0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- webkitgtk-2.4.8/Source/WTF/wtf/Platform.h.orig 2015-03-24 06:06:58.439159200 +0000 -+++ webkitgtk-2.4.8/Source/WTF/wtf/Platform.h 2015-03-24 06:10:16.432801200 +0000 -@@ -608,8 +608,6 @@ - #define HAVE_ALIGNED_MALLOC 1 - #define HAVE_ISDEBUGGERPRESENT 1 - --#include -- - #endif - - #if OS(WINDOWS) diff --git a/mingw-w64-webkitgtk3/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch b/mingw-w64-webkitgtk3/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch new file mode 100644 index 0000000000..a2756133d0 --- /dev/null +++ b/mingw-w64-webkitgtk3/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch @@ -0,0 +1,28 @@ +From b9e96a5642c2e5137fae4a096723c403285e1ef2 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?= +Date: Mon, 13 Apr 2015 00:46:48 +0000 +Subject: [PATCH 02/20] [GTK][W32] Allow MinGW-GCC to use GCC asm code for + weakCompareAndSwap + +OS(WINDOWS) != COMPILER(MSVC) +--- + Source/WTF/wtf/Atomics.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WTF/wtf/Atomics.h b/Source/WTF/wtf/Atomics.h +index 3d18e3e..e6da897 100644 +--- a/Source/WTF/wtf/Atomics.h ++++ b/Source/WTF/wtf/Atomics.h +@@ -260,7 +260,7 @@ inline void memoryBarrierBeforeUnlock() { compilerFence(); } + inline bool weakCompareAndSwap(uint8_t* location, uint8_t expected, uint8_t newValue) + { + #if ENABLE(COMPARE_AND_SWAP) +-#if !OS(WINDOWS) && (CPU(X86) || CPU(X86_64)) ++#if (!OS(WINDOWS) || COMPILER(GCC)) && (CPU(X86) || CPU(X86_64)) + unsigned char result; + asm volatile( + "lock; cmpxchgb %3, %2\n\t" +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0002-webkitgtk-mingw-use-gcc-asm.mingw.patch b/mingw-w64-webkitgtk3/0002-webkitgtk-mingw-use-gcc-asm.mingw.patch deleted file mode 100644 index d3a6b6dce3..0000000000 --- a/mingw-w64-webkitgtk3/0002-webkitgtk-mingw-use-gcc-asm.mingw.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- webkitgtk-2.2.3/Source/WTF/wtf/Atomics.h.orig 2013-12-04 19:49:26.788630335 +0100 -+++ webkitgtk-2.2.3/Source/WTF/wtf/Atomics.h 2013-12-04 19:50:17.217126505 +0100 -@@ -278,7 +278,7 @@ - inline bool weakCompareAndSwap(uint8_t* location, uint8_t expected, uint8_t newValue) - { - #if ENABLE(COMPARE_AND_SWAP) --#if !OS(WINDOWS) && (CPU(X86) || CPU(X86_64)) -+#if (!OS(WINDOWS) || COMPILER(GCC)) && (CPU(X86) || CPU(X86_64)) - unsigned char result; - asm volatile( - "lock; cmpxchgb %3, %2\n\t" diff --git a/mingw-w64-webkitgtk3/0003-W32-Use-confgured-Python-interpreter.all.patch b/mingw-w64-webkitgtk3/0003-W32-Use-confgured-Python-interpreter.all.patch new file mode 100644 index 0000000000..4220a48d7d --- /dev/null +++ b/mingw-w64-webkitgtk3/0003-W32-Use-confgured-Python-interpreter.all.patch @@ -0,0 +1,51 @@ +From b2deca683e0d57d9313c267d15c798f420ae3701 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?= +Date: Mon, 13 Apr 2015 02:03:42 +0000 +Subject: [PATCH 03/20] [W32] Use confgured Python interpreter + +Configure script has tests for Python (AC_PATH_PROG(PYTHON, python)), +use the interpretor they provide (which is overridable by user by +the way of passing PYTHON=... to configure) instead of the first +thing found in PATH. + +Otherwise wrong version of Python might be used. Mingw-python, +for example, which has commandline length limit, which results in +errors like: +/usr/bin/env: python: Argument list too long +GNUmakefile:82317: recipe for target +'DerivedSources/WebInspectorUI/GResourceBundle.xml' failed +--- + Source/WebInspectorUI/GNUmakefile.am | 2 +- + Tools/gtk/GNUmakefile.am | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Source/WebInspectorUI/GNUmakefile.am b/Source/WebInspectorUI/GNUmakefile.am +index 67b2477..25cdc41 100644 +--- a/Source/WebInspectorUI/GNUmakefile.am ++++ b/Source/WebInspectorUI/GNUmakefile.am +@@ -13,7 +13,7 @@ ${GENSOURCES_WEBINSPECTOR_UI}/GResourceBundle.xml: GNUmakefile \ + $(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py + $(AM_V_GEN) + $(AM_V_at)mkdir -p ${GENSOURCES_WEBINSPECTOR_UI} +- $(AM_V_at)$(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py --output $@ $(inspector_files) ++ $(AM_V_at)$(PYTHON) $(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py --output $@ $(inspector_files) + + ${GENSOURCES_WEBINSPECTOR_UI}/GResourceBundle.c: DerivedSources/WebInspectorUI/GResourceBundle.xml + $(AM_V_GEN) +diff --git a/Tools/gtk/GNUmakefile.am b/Tools/gtk/GNUmakefile.am +index 757207a..61cff01 100644 +--- a/Tools/gtk/GNUmakefile.am ++++ b/Tools/gtk/GNUmakefile.am +@@ -35,7 +35,7 @@ docs_build_dependencies += \ + gtkdoc-webkitdom.cfg + + docs-build.stamp: $(docs_build_dependencies) +- CC=$(CC) $(srcdir)/Tools/gtk/generate-gtkdoc ++ CC=$(CC) $(PYTHON) $(srcdir)/Tools/gtk/generate-gtkdoc + @touch docs-build.stamp + + clean-local: doc-clean-local +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch b/mingw-w64-webkitgtk3/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch new file mode 100644 index 0000000000..3971ffcc7a --- /dev/null +++ b/mingw-w64-webkitgtk3/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch @@ -0,0 +1,67 @@ +From 30f8d9bcdaaa8298b04dc9f79e068b1efc9bc4fa 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?= +Date: Mon, 13 Apr 2015 02:35:07 +0000 +Subject: [PATCH 04/20] [GTK][W32] Harmonize binary semaphore ifdefs + +They should be either OS(WINDOWS) (in which case we'd need +BinarySemaphoreWin.cpp, which is not shipped by WebKitGTK) +or PLATFORM(WIN) (in which case Mutex/ThreadCondition-based +implementation is used). + +This fixes errors like: + CXX Source/WTF/wtf/threads/libWTF_la-BinarySemaphore.lo +../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In constructor 'WTF::BinarySemaphore::BinarySemaphore()': +../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:34:7: error: class 'WTF::BinarySemaphore' does not have any field named 'm_isSet' + : m_isSet(false) + ^ +../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In member function 'void WTF::BinarySemaphore::signal()': +../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:44:24: error: 'm_mutex' was not declared in this scope + MutexLocker locker(m_mutex); + ^ +../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:46:5: error: 'm_isSet' was not declared in this scope + m_isSet = true; + ^ +../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:47:5: error: 'm_condition' was not declared in this scope + m_condition.signal(); + ^ +../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In member function 'bool WTF::BinarySemaphore::wait(double)': +../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:52:24: error: 'm_mutex' was not declared in this scope + MutexLocker locker(m_mutex); + ^ +../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:55:13: error: 'm_isSet' was not declared in this scope + while (!m_isSet) { + ^ +../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:56:21: error: 'm_condition' was not declared in this scope + timedOut = !m_condition.timedWait(m_mutex, absoluteTime); + ^ +../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:62:5: error: 'm_isSet' was not declared in this scope + m_isSet = false; + ^ +GNUmakefile:52762: recipe for target 'Source/WTF/wtf/threads/libWTF_la-BinarySemaphore.lo' failed +--- + Source/WTF/wtf/threads/BinarySemaphore.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Source/WTF/wtf/threads/BinarySemaphore.h b/Source/WTF/wtf/threads/BinarySemaphore.h +index de51d47..cae1023 100644 +--- a/Source/WTF/wtf/threads/BinarySemaphore.h ++++ b/Source/WTF/wtf/threads/BinarySemaphore.h +@@ -41,12 +41,12 @@ public: + WTF_EXPORT_PRIVATE void signal(); + WTF_EXPORT_PRIVATE bool wait(double absoluteTime); + +-#if OS(WINDOWS) ++#if PLATFORM(WIN) + HANDLE event() const { return m_event; } + #endif + + private: +-#if OS(WINDOWS) ++#if PLATFORM(WIN) + HANDLE m_event; + #else + bool m_isSet; +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0106-enable-jit.all.patch b/mingw-w64-webkitgtk3/0005-Add-missing-gcc-asm-code-for-JIT.all.patch similarity index 81% rename from mingw-w64-webkitgtk3/0106-enable-jit.all.patch rename to mingw-w64-webkitgtk3/0005-Add-missing-gcc-asm-code-for-JIT.all.patch index 4e63b6706f..ec297ab473 100644 --- a/mingw-w64-webkitgtk3/0106-enable-jit.all.patch +++ b/mingw-w64-webkitgtk3/0005-Add-missing-gcc-asm-code-for-JIT.all.patch @@ -1,5 +1,27 @@ ---- webkitgtk-2.4.1.old/Source/JavaScriptCore/jit/JITStubsX86.h 2014-06-20 20:05:59 +0000 -+++ webkitgtk-2.4.1/Source/JavaScriptCore/jit/JITStubsX86.h 2014-06-20 19:42:30 +0000 +From 1a2a777aad7d67d2e8e53ca97453eb3d1fd209f9 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?= +Date: Mon, 13 Apr 2015 07:17:38 +0000 +Subject: [PATCH 05/20] Add missing gcc asm code for JIT + +Fixes linking errors like these: + CXXLD libjavascriptcoregtk-3.0.la +Source\\JavaScriptCore\\interpreter\\.libs\\libjavascriptcoregtk_3_0_la-Interpreter.o: In function `executeCall': +/webkitgtk-2.4.8-1/bld/../webkitgtk-2.4.8/Source/JavaScriptCore/interpreter/Interpreter.cpp:972: undefined reference to `_callToNativeFunction' +Source\\JavaScriptCore\\interpreter\\.libs\\libjavascriptcoregtk_3_0_la-Interpreter.o: In function `executeConstruct': +/webkitgtk-2.4.8-1/bld/../webkitgtk-2.4.8/Source/JavaScriptCore/interpreter/Interpreter.cpp:1040: undefined reference to `_callToNativeFunction' +Source\\JavaScriptCore\\jit\\.libs\\libjavascriptcoregtk_3_0_la-JITCode.o: In function `execute': +/webkitgtk-2.4.8-1/bld/../webkitgtk-2.4.8/Source/JavaScriptCore/jit/JITCode.cpp:48: undefined reference to `_callToJavaScript' +Source\\JavaScriptCore\\jit\\.libs\\libjavascriptcoregtk_3_0_la-JITExceptions.o: In function `genericUnwind': +/webkitgtk-2.4.8-1/bld/../webkitgtk-2.4.8/Source/JavaScriptCore/jit/JITExceptions.cpp:62: undefined reference to `_returnFromJavaScript' +--- + Source/JavaScriptCore/jit/JITStubsX86.h | 220 ++++++++++++++++++++++++++++++++ + 1 file changed, 220 insertions(+) + +diff --git a/Source/JavaScriptCore/jit/JITStubsX86.h b/Source/JavaScriptCore/jit/JITStubsX86.h +index a1fbdef..d18f17d 100644 +--- a/Source/JavaScriptCore/jit/JITStubsX86.h ++++ b/Source/JavaScriptCore/jit/JITStubsX86.h @@ -32,6 +32,7 @@ #define JITStubsX86_h @@ -8,7 +30,7 @@ #if !CPU(X86) #error "JITStubsX86.h should only be #included if CPU(X86)" -@@ -198,6 +199,225 @@ SYMBOL_STRING(ctiMasmProbeTrampolineEnd) +@@ -198,6 +199,225 @@ SYMBOL_STRING(ctiMasmProbeTrampolineEnd) ":" "\n" ); #endif // USE(MASM_PROBE) @@ -234,3 +256,6 @@ #endif // COMPILER(GCC) #if COMPILER(MSVC) +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0005-webkitgtk-mingw-compile-fix.mingw.patch b/mingw-w64-webkitgtk3/0005-webkitgtk-mingw-compile-fix.mingw.patch deleted file mode 100644 index 3d8525e31f..0000000000 --- a/mingw-w64-webkitgtk3/0005-webkitgtk-mingw-compile-fix.mingw.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- webkitgtk-2.2.3/Source/WTF/wtf/threads/BinarySemaphore.cpp.orig 2013-12-04 20:08:56.016394944 +0100 -+++ webkitgtk-2.2.3/Source/WTF/wtf/threads/BinarySemaphore.cpp 2013-12-04 20:09:22.055655312 +0100 -@@ -26,7 +26,7 @@ - #include "config.h" - #include "BinarySemaphore.h" - --#if !PLATFORM(WIN) -+#if !OS(WINDOWS) - - namespace WTF { - diff --git a/mingw-w64-webkitgtk3/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch b/mingw-w64-webkitgtk3/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch new file mode 100644 index 0000000000..667ea8a38c --- /dev/null +++ b/mingw-w64-webkitgtk3/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch @@ -0,0 +1,34 @@ +From eff935cade14c1dc731a29b6a02f260f348f885e 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?= +Date: Mon, 13 Apr 2015 08:33:29 +0000 +Subject: [PATCH 06/20] Use piOverTwoDouble instead of M_PI_2 + +Because M_PI_2 is not defined everywhere. +Fixes errors like: + CXX Source/WebCore/platform/graphics/freetype/libPlatformGtk_la-FontPlatformDataFreeType.lo +../webkitgtk-2.4.8/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp: In function 'void WebCore::rotateCairoMatrixForVerticalOrientation(cairo_matrix_t*)': +../webkitgtk-2.4.8/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:123:34: error: 'M_PI_2' was not declared in this scope + cairo_matrix_rotate(matrix, -M_PI_2); + ^ +GNUmakefile:51663: recipe for target 'Source/WebCore/platform/graphics/freetype/libPlatformGtk_la-FontPlatformDataFreeType.lo' failed +--- + Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp b/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp +index 0b6cdd1..7c4d853 100644 +--- a/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp ++++ b/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp +@@ -120,7 +120,7 @@ static void rotateCairoMatrixForVerticalOrientation(cairo_matrix_t* matrix) + // combination of rotation (R) and translation (T) applied on the + // horizontal matrix (H). V = H . R . T, where R rotates by -90 degrees + // and T translates by font size towards y axis. +- cairo_matrix_rotate(matrix, -M_PI_2); ++ cairo_matrix_rotate(matrix, -piOverTwoDouble); + cairo_matrix_translate(matrix, 0.0, 1.0); + } + +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch b/mingw-w64-webkitgtk3/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch new file mode 100644 index 0000000000..f58a6f32e1 --- /dev/null +++ b/mingw-w64-webkitgtk3/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch @@ -0,0 +1,29 @@ +From 91625d8f6bde23b34fcb1c8fb8316e0b0f8d8b78 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?= +Date: Mon, 13 Apr 2015 08:43:58 +0000 +Subject: [PATCH 07/20] [GTK][W32] Add missing includes to FileSystemGtk + +Needed for GetModuleHandleExA() & Co. +--- + Source/WebCore/platform/gtk/FileSystemGtk.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Source/WebCore/platform/gtk/FileSystemGtk.cpp b/Source/WebCore/platform/gtk/FileSystemGtk.cpp +index 9ebeca5..e741d1c 100644 +--- a/Source/WebCore/platform/gtk/FileSystemGtk.cpp ++++ b/Source/WebCore/platform/gtk/FileSystemGtk.cpp +@@ -23,6 +23,10 @@ + #include "config.h" + #include "FileSystem.h" + ++#if OS(WINDOWS) ++#include ++#endif ++ + #include "FileMetadata.h" + #include "UUID.h" + #include +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0007-webkitgtk-mingw-fix-includes.mingw.patch b/mingw-w64-webkitgtk3/0007-webkitgtk-mingw-fix-includes.mingw.patch deleted file mode 100644 index 3848b54dae..0000000000 --- a/mingw-w64-webkitgtk3/0007-webkitgtk-mingw-fix-includes.mingw.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- webkitgtk-2.4.8/Source/Platform/GNUmakefile.am.orig 2015-03-24 06:13:32.994761400 +0000 -+++ webkitgtk-2.4.8/Source/Platform/GNUmakefile.am 2015-03-24 06:14:09.445890100 +0000 -@@ -58,6 +58,7 @@ - -I$(srcdir)/Source/WebCore/platform/network/soup \ - -I$(srcdir)/Source/WebCore/platform/text \ - -I$(srcdir)/Source/WebCore/platform/text/icu \ -+ -I$(srcdir)/Source/WebCore/platform/win \ - -I$(srcdir)/Source/WebCore/platform/text/transcoder - - noinst_LTLIBRARIES += \ diff --git a/mingw-w64-webkitgtk3/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch b/mingw-w64-webkitgtk3/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch new file mode 100644 index 0000000000..448dba2fc6 --- /dev/null +++ b/mingw-w64-webkitgtk3/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch @@ -0,0 +1,40 @@ +From a75ba28de22695c3b3bfb06c9564e4959b4e4cb7 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?= +Date: Mon, 13 Apr 2015 10:21:42 +0000 +Subject: [PATCH 08/20] [W32] Move enum LineLayoutPath in RenderBlock + +This removes the bitfield interruption, allowing more efficient +packing. +Otherwise compile-time assertion fails: +In file included from ../webkitgtk-2.4.8/Source/WTF/wtf/PossiblyNull.h:29:0, + from ../webkitgtk-2.4.8/Source/WTF/wtf/FastMalloc.h:27, + from ../webkitgtk-2.4.8/Source/WebCore/config.h:74, + from ../webkitgtk-2.4.8/Source/WebCore/rendering/RenderBlock.cpp:24: +../webkitgtk-2.4.8/Source/WTF/wtf/Assertions.h:326:35: error: static assertion failed: RenderBlock_should_stay_small + #define COMPILE_ASSERT(exp, name) static_assert((exp), #name) + ^ +../webkitgtk-2.4.8/Source/WebCore/rendering/RenderBlock.cpp:88:1: note: in expansion of macro 'COMPILE_ASSERT' + COMPILE_ASSERT(sizeof(RenderBlock) == sizeof(SameSizeAsRenderBlock), RenderBlock_should_stay_small); + ^ +--- + Source/WebCore/rendering/RenderBlock.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebCore/rendering/RenderBlock.h b/Source/WebCore/rendering/RenderBlock.h +index 5aa29e0..c29b078 100644 +--- a/Source/WebCore/rendering/RenderBlock.h ++++ b/Source/WebCore/rendering/RenderBlock.h +@@ -611,8 +611,8 @@ public: + unsigned m_beingDestroyed : 1; + unsigned m_hasMarkupTruncation : 1; + unsigned m_hasBorderOrPaddingLogicalWidthChanged : 1; +- enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; + unsigned m_lineLayoutPath : 2; ++ enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; + + // RenderRubyBase objects need to be able to split and merge, moving their children around + // (calling moveChildTo, moveAllChildrenTo, and makeChildrenNonInline). +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch b/mingw-w64-webkitgtk3/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch new file mode 100644 index 0000000000..0961214b58 --- /dev/null +++ b/mingw-w64-webkitgtk3/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch @@ -0,0 +1,49 @@ +From 3af08080d48481b6e187bc3319ad900689d7147e 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?= +Date: Mon, 13 Apr 2015 12:11:47 +0000 +Subject: [PATCH 09/20] [W32] Fix deleteObject prototypte, fix header case + +Apparently, is unneeded here: + +In file included from ../webkitgtk-2.4.8/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp:35:0: +../webkitgtk-2.4.8/Source/WTF/wtf/win/GdiObject.h:114:58: error: function template partial specialization 'deleteObject' is not allowed + template inline void deleteObject(T object) + ^ + +As a bonus, change GdiObject.h -> GDIObject.h (this matters when +cross-compiling or when using case-sensitive filesystems on W32). +--- + Source/WTF/wtf/win/GDIObject.h | 2 +- + Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Source/WTF/wtf/win/GDIObject.h b/Source/WTF/wtf/win/GDIObject.h +index e8b00be..4e01b3ce 100644 +--- a/Source/WTF/wtf/win/GDIObject.h ++++ b/Source/WTF/wtf/win/GDIObject.h +@@ -111,7 +111,7 @@ template inline void swap(GDIObject& a, GDIObject& b) + } + + // Nearly all GDI types use the same DeleteObject call. +-template inline void deleteObject(T object) ++template inline void deleteObject(T object) + { + if (object) + ::DeleteObject(object); +diff --git a/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp b/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp +index 1b2d865..3fb2ac0 100644 +--- a/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp ++++ b/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp +@@ -32,7 +32,7 @@ + + #include + #include "GraphicsContextPlatformPrivateCairo.h" +-#include ++#include + + using namespace std; + +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0009-webkitgtk-mingw-m-pi.mingw.patch b/mingw-w64-webkitgtk3/0009-webkitgtk-mingw-m-pi.mingw.patch deleted file mode 100644 index 7be53467f3..0000000000 --- a/mingw-w64-webkitgtk3/0009-webkitgtk-mingw-m-pi.mingw.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- webkitgtk-2.2.3/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp.orig 2013-12-05 08:22:08.604832230 +0100 -+++ webkitgtk-2.2.3/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp 2013-12-05 08:23:27.257593978 +0100 -@@ -44,6 +44,11 @@ - #endif - #endif - -+#if COMPILER(MINGW) && !defined(M_PI) -+// M_PI is only defined in MinGW in non-c++11 builds -+#define M_PI 3.14159265358979323846 -+#endif -+ - namespace WTF { - - std::ostream& operator<<(std::ostream& out, const MediaTime& val) diff --git a/mingw-w64-webkitgtk3/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch b/mingw-w64-webkitgtk3/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch new file mode 100644 index 0000000000..70bbe5e5ec --- /dev/null +++ b/mingw-w64-webkitgtk3/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch @@ -0,0 +1,40 @@ +From 22a1a49e1d5fecaa4ba6cee5d9ffba13fb1176fc 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?= +Date: Mon, 13 Apr 2015 13:52:29 +0000 +Subject: [PATCH 10/20] [ANGLE][W32] Don't hardcode ossource_posix.cpp in the + makefile + +Compile ossource_posix.cpp or ossource_win.cpp depending on the target. + +Otherwise you get an error: +../webkitgtk-2.4.8/Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp:13:2: error: #error Trying to build a posix specific file in a non-posix build. +--- + Source/ThirdParty/ANGLE/GNUmakefile.am | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/Source/ThirdParty/ANGLE/GNUmakefile.am b/Source/ThirdParty/ANGLE/GNUmakefile.am +index 4c14ac1..70904bb 100644 +--- a/Source/ThirdParty/ANGLE/GNUmakefile.am ++++ b/Source/ThirdParty/ANGLE/GNUmakefile.am +@@ -80,7 +80,6 @@ libANGLE_la_SOURCES = \ + Source/ThirdParty/ANGLE/src/compiler/MMap.h \ + Source/ThirdParty/ANGLE/src/compiler/NodeSearch.h \ + Source/ThirdParty/ANGLE/src/compiler/osinclude.h \ +- Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp \ + Source/ThirdParty/ANGLE/src/compiler/OutputESSL.cpp \ + Source/ThirdParty/ANGLE/src/compiler/OutputESSL.h \ + Source/ThirdParty/ANGLE/src/compiler/OutputGLSLBase.cpp \ +@@ -161,3 +160,9 @@ libANGLE_la_SOURCES = \ + Source/ThirdParty/ANGLE/src/compiler/VersionGLSL.h \ + Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.cpp \ + Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.h ++ ++if TARGET_WIN32 ++libANGLE_la_SOURCES += Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp ++else ++libANGLE_la_SOURCES += Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp ++endif +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch b/mingw-w64-webkitgtk3/0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch deleted file mode 100644 index 0fc165e1ce..0000000000 --- a/mingw-w64-webkitgtk3/0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- webkitgtk-2.4.8/Source/WebCore/GNUmakefile.list.am.orig 2015-03-24 06:14:46.327573500 +0000 -+++ webkitgtk-2.4.8/Source/WebCore/GNUmakefile.list.am 2015-03-24 06:17:07.769534300 +0000 -@@ -6263,6 +6263,13 @@ - platformgtk_sources += \ - Source/WebCore/platform/cairo/WidgetBackingStoreCairo.h \ - Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp -+if USE_EGL -+webcoregtk_sources += \ -+ Source/WebCore/platform/graphics/egl/GLContextEGL.cpp \ -+ Source/WebCore/platform/graphics/egl/GLContextEGL.h -+endif # END USE_EGL -+endif # END TARGET_X11_OR_WAYLAND -+ - if USE_OPENGL - platformgtk_sources += \ - Source/WebCore/platform/graphics/GLContext.cpp \ -@@ -6270,12 +6277,6 @@ - Source/WebCore/platform/gtk/RedirectedXCompositeWindow.cpp \ - Source/WebCore/platform/gtk/RedirectedXCompositeWindow.h - endif # END USE_OPENGL --if USE_EGL --webcoregtk_sources += \ -- Source/WebCore/platform/graphics/egl/GLContextEGL.cpp \ -- Source/WebCore/platform/graphics/egl/GLContextEGL.h --endif # END USE_EGL --endif # END TARGET_X11_OR_WAYLAND - - if TARGET_WIN32 - webcore_sources += \ diff --git a/mingw-w64-webkitgtk3/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch b/mingw-w64-webkitgtk3/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch new file mode 100644 index 0000000000..fa2183d340 --- /dev/null +++ b/mingw-w64-webkitgtk3/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch @@ -0,0 +1,74 @@ +From 723ff2fa4708a211734f469e3cc2092beb6bbf02 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?= +Date: Mon, 13 Apr 2015 15:31:56 +0000 +Subject: [PATCH 11/20] [W32] Change OpenGL checks to work on W32, add + libopengl32 + +AGain, use OS(WINDOWS) for things that are W32 but not necessarily MSVC. +Don't try to check for dlopen() on W32 (it might be available, but +native code is already here, so use it). + +Correctly cast the result of GetProcAddress(), because C++. + +Link W32 version to -lOpenGL32 instead of -lGL, otherwise libtool complains: +*** Warning: linker path does not have real file for library -lGL. +--- + Source/WebCore/platform/graphics/OpenGLShims.cpp | 6 +++--- + Source/autotools/FindDependencies.m4 | 7 ++++++- + 2 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/Source/WebCore/platform/graphics/OpenGLShims.cpp b/Source/WebCore/platform/graphics/OpenGLShims.cpp +index 916a908..d77a8b0 100644 +--- a/Source/WebCore/platform/graphics/OpenGLShims.cpp ++++ b/Source/WebCore/platform/graphics/OpenGLShims.cpp +@@ -22,7 +22,7 @@ + #define DISABLE_SHIMS + #include "OpenGLShims.h" + +-#if !PLATFORM(WIN) ++#if !OS(WINDOWS) + #include + #endif + +@@ -37,10 +37,10 @@ OpenGLFunctionTable* openGLFunctionTable() + return &table; + } + +-#if PLATFORM(WIN) ++#if OS(WINDOWS) + static void* getProcAddress(const char* procName) + { +- return GetProcAddress(GetModuleHandleA("libGLESv2"), procName); ++ return reinterpret_cast(GetProcAddress(GetModuleHandleA("libGLESv2"), procName)); + } + #else + typedef void* (*glGetProcAddressType) (const char* procName); +diff --git a/Source/autotools/FindDependencies.m4 b/Source/autotools/FindDependencies.m4 +index 9a2c496..3ce3f76 100644 +--- a/Source/autotools/FindDependencies.m4 ++++ b/Source/autotools/FindDependencies.m4 +@@ -453,6 +453,9 @@ if test "$found_opengl" = "yes"; then + if test "$enable_gles2" = "yes"; then + acceleration_description="$acceleration_description (gles2" + OPENGL_LIBS="-lGLESv2" ++ elif test "$os_win32" = "yes"; then ++ acceleration_description="$acceleration_description (gl" ++ OPENGL_LIBS="-lopengl32" + else + acceleration_description="$acceleration_description (gl" + OPENGL_LIBS="-lGL" +@@ -467,7 +470,9 @@ if test "$found_opengl" = "yes"; then + + # Check whether dlopen() is in the core libc like on FreeBSD, or in a separate + # libdl like on GNU/Linux (in which case we want to link to libdl). +- AC_CHECK_FUNC([dlopen], [], [AC_CHECK_LIB([dl], [dlopen], [OPENGL_LIBS="$OPENGL_LIBS -ldl"])]) ++ if test "$os_win32" = "no"; then ++ AC_CHECK_FUNC([dlopen], [], [AC_CHECK_LIB([dl], [dlopen], [OPENGL_LIBS="$OPENGL_LIBS -ldl"])]) ++ fi + + acceleration_description="$acceleration_description)" + fi +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0011-webkitgtk-mingw-opengl.mingw.patch b/mingw-w64-webkitgtk3/0011-webkitgtk-mingw-opengl.mingw.patch deleted file mode 100644 index c8cefab82f..0000000000 --- a/mingw-w64-webkitgtk3/0011-webkitgtk-mingw-opengl.mingw.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- webkitgtk-2.2.3/Source/autotools/FindDependencies.m4.orig 2013-12-05 21:46:18.648151386 +0100 -+++ webkitgtk-2.2.3/Source/autotools/FindDependencies.m4 2013-12-05 21:48:03.347173354 +0100 -@@ -436,6 +436,9 @@ - if test "$enable_gles2" = "yes"; then - acceleration_description="$acceleration_description (gles2" - OPENGL_LIBS="-lGLESv2" -+ elif test "$os_win32" = "yes"; then -+ acceleration_description="$acceleration_description (gl" -+ OPENGL_LIBS="-lopengl32" - else - acceleration_description="$acceleration_description (gl" - OPENGL_LIBS="-lGL" -@@ -450,7 +453,9 @@ - - # Check whether dlopen() is in the core libc like on FreeBSD, or in a separate - # libdl like on GNU/Linux (in which case we want to link to libdl). -- AC_CHECK_FUNC([dlopen], [], [AC_CHECK_LIB([dl], [dlopen], [OPENGL_LIBS="$OPENGL_LIBS -ldl"])]) -+ if test "$os_win32" = "no"; then -+ AC_CHECK_FUNC([dlopen], [], [AC_CHECK_LIB([dl], [dlopen], [OPENGL_LIBS="$OPENGL_LIBS -ldl"])]) -+ fi - - acceleration_description="$acceleration_description)" - fi ---- webkitgtk-2.4.8/Source/WebCore/platform/graphics/OpenGLShims.cpp.orig 2015-03-24 06:18:02.320461400 +0000 -+++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/OpenGLShims.cpp 2015-03-24 06:19:23.355751600 +0000 -@@ -22,7 +22,7 @@ - #define DISABLE_SHIMS - #include "OpenGLShims.h" - --#if !PLATFORM(WIN) -+#if !OS(WINDOWS) - #include - #endif - -@@ -37,10 +37,10 @@ - return &table; - } - --#if PLATFORM(WIN) -+#if OS(WINDOWS) - static void* getProcAddress(const char* procName) - { -- return GetProcAddress(GetModuleHandleA("libGLESv2"), procName); -+ return reinterpret_cast(GetProcAddress(GetModuleHandleA("libGLESv2"), procName)); - } - #else - typedef void* (*glGetProcAddressType) (const char* procName); diff --git a/mingw-w64-webkitgtk3/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch b/mingw-w64-webkitgtk3/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch new file mode 100644 index 0000000000..844bc7e7e4 --- /dev/null +++ b/mingw-w64-webkitgtk3/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch @@ -0,0 +1,33 @@ +From d917ab9a3ce0e92a863b8040e819755804a529f0 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?= +Date: Mon, 13 Apr 2015 16:14:33 +0000 +Subject: [PATCH 12/20] [W32][GTK] Use correct .la files as --library arguments + for GI scanner + +This way it plays well with W32 gobject-introspection library resolution +code. +Without that one would get things like: +ERROR: can't resolve libraries to shared libraries: webkitgtk-3.0, javascriptcoregtk-3.0 +--- + Source/WebKit/gtk/GNUmakefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Source/WebKit/gtk/GNUmakefile.am b/Source/WebKit/gtk/GNUmakefile.am +index 2ba8541..5502f25 100644 +--- a/Source/WebKit/gtk/GNUmakefile.am ++++ b/Source/WebKit/gtk/GNUmakefile.am +@@ -311,8 +311,8 @@ WebKit-@WEBKITGTK_API_VERSION@.gir: $(G_IR_SCANNER) JavaScriptCore-@WEBKITGTK_AP + --include=Gtk-@GTK_API_VERSION@ \ + --include=JavaScriptCore-@WEBKITGTK_API_VERSION@ \ + --include=Soup-2.4 \ +- --library=webkitgtk-@WEBKITGTK_API_VERSION@ \ +- --library=javascriptcoregtk-@WEBKITGTK_API_VERSION@ \ ++ --library=libwebkitgtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \ ++ --library=libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \ + --libtool="$(LIBTOOL)" \ + --pkg=gobject-2.0 \ + --pkg=gtk+-@GTK_API_VERSION@ \ +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0012-webkitgtk-dont-build-test-webkit-api.mingw.patch b/mingw-w64-webkitgtk3/0012-webkitgtk-dont-build-test-webkit-api.mingw.patch deleted file mode 100644 index 4fe5270243..0000000000 --- a/mingw-w64-webkitgtk3/0012-webkitgtk-dont-build-test-webkit-api.mingw.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- webkitgtk-2.4.8/Tools/TestWebKitAPI/GNUmakefile.am.orig 2015-03-24 06:20:02.480719800 +0000 -+++ webkitgtk-2.4.8/Tools/TestWebKitAPI/GNUmakefile.am 2015-03-24 06:20:35.275884300 +0000 -@@ -111,8 +111,7 @@ - - noinst_PROGRAMS += \ - Programs/TestWebKitAPI/WTF/TestWTF \ -- Programs/TestWebKitAPI/JavaScriptCore/TestJavaScriptCore \ -- Programs/TestWebKitAPI/WebCore/TestWebCore -+ Programs/TestWebKitAPI/JavaScriptCore/TestJavaScriptCore - - if ENABLE_WEBKIT1 - noinst_PROGRAMS += \ diff --git a/mingw-w64-webkitgtk3/0017-make-sure-correct-gcc-is-used.mingw.patch b/mingw-w64-webkitgtk3/0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch similarity index 87% rename from mingw-w64-webkitgtk3/0017-make-sure-correct-gcc-is-used.mingw.patch rename to mingw-w64-webkitgtk3/0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch index 7292e5531b..da2ddf3a56 100644 --- a/mingw-w64-webkitgtk3/0017-make-sure-correct-gcc-is-used.mingw.patch +++ b/mingw-w64-webkitgtk3/0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch @@ -1,28 +1,106 @@ ---- webkitgtk-2.2.5/Source/WebCore/bindings/gobject/GNUmakefile.am.orig 2014-02-17 11:24:03.000000000 +0000 -+++ webkitgtk-2.2.5/Source/WebCore/bindings/gobject/GNUmakefile.am 2014-03-06 03:37:20.327460800 +0000 -@@ -491,7 +491,7 @@ - # Filter out SVG and IndexedDB for now - gdom_feature_defines := $(filter-out ENABLE_INDEXED_DATABASE=1, $(filter-out ENABLE_SVG%, $(feature_defines))) ENABLE_INDEXED_DATABASE=0 - DerivedSources/webkitdom/WebKitDOM%.cpp DerivedSources/webkitdom/WebKitDOM%.h DerivedSources/webkitdom/WebKitDOM%Private.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorGObject.pm $(WebCore)/bindings/gobject/GNUmakefile.am $(supplemental_dependency_file) -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl --include $(WebCore)/Modules --include $(WebCore)/dom --include $(WebCore)/html --include $(WebCore)/css --include $(WebCore)/page --include $(WebCore)/fileapi --include $(WebCore)/xml --include $(WebCore)/svg --outputDir "$(GENSOURCES_WEBKITDOM)" --defines "LANGUAGE_GOBJECT=1 $(gdom_feature_defines)" --generator GObject --supplementalDependencyFile $(supplemental_dependency_file) $< -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl --include $(WebCore)/Modules --include $(WebCore)/dom --include $(WebCore)/html --include $(WebCore)/css --include $(WebCore)/page --include $(WebCore)/fileapi --include $(WebCore)/xml --include $(WebCore)/svg --outputDir "$(GENSOURCES_WEBKITDOM)" --defines "LANGUAGE_GOBJECT=1 $(gdom_feature_defines)" --generator GObject --supplementalDependencyFile $(supplemental_dependency_file) $< +From a707d6c192cebc257f7aea00cc30ee5dbe7e9713 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?= +Date: Tue, 14 Apr 2015 10:42:31 +0000 +Subject: [PATCH 13/20] Ensure that generator-scripts get CC from configure + +Various scripts check the CC environment variable to get the compiler to +use. In absence of that variable they do various educated guesses. + +They guess wrong when running in MSYS (find /usr/bin/gcc instead +of /mingw/bin/gcc) and likely also guess wrong when cross-compiling. + +Note that if the version of a "wrong" gcc is close enough to the "right" gcc, +things might just work out somehow, but we shouldn't bet on that. +--- + Source/JavaScriptCore/GNUmakefile.am | 20 ++++---- + Source/Platform/GNUmakefile.am | 4 +- + Source/WebCore/GNUmakefile.am | 64 +++++++++++++------------- + Source/WebCore/bindings/gobject/GNUmakefile.am | 6 +-- + Tools/TestWebKitAPI/GNUmakefile.am | 4 +- + Tools/WebKitTestRunner/GNUmakefile.am | 4 +- + 6 files changed, 51 insertions(+), 51 deletions(-) + +diff --git a/Source/JavaScriptCore/GNUmakefile.am b/Source/JavaScriptCore/GNUmakefile.am +index ab058b6..3fa990f 100644 +--- a/Source/JavaScriptCore/GNUmakefile.am ++++ b/Source/JavaScriptCore/GNUmakefile.am +@@ -95,25 +95,25 @@ pkgconfig_DATA += Source/JavaScriptCore/javascriptcoregtk-@WEBKITGTK_API_VERSION + $(shell mkdir -p DerivedSources/JavaScriptCore) - libwebkitdomincludedir = $(libwebkitgtkincludedir)/webkitdom - nodist_libwebkitdominclude_HEADERS = \ ---- webkitgtk-2.2.5/Tools/WebKitTestRunner/GNUmakefile.am.orig 2014-02-17 11:24:14.000000000 +0000 -+++ webkitgtk-2.2.5/Tools/WebKitTestRunner/GNUmakefile.am 2014-03-06 03:38:06.219288300 +0000 -@@ -153,7 +153,7 @@ - Source/WebCore/bindings/scripts/generate-bindings.pl + DerivedSources/JavaScriptCore/Lexer.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/parser/Keywords.table +- $(AM_V_GEN)$(PERL) $^ > $@ ++ $(AM_V_GEN)CC=$(CC) $(PERL) $^ > $@ - DerivedSources/InjectedBundle/JS%.cpp: Tools/WebKitTestRunner/InjectedBundle/Bindings/%.idl $(code_generation_dependencies) -- $(AM_V_GEN)$(PERL) \ -+ $(AM_V_GEN)CC=$(CC) $(PERL) \ - -I $(srcdir)/Source/WebCore/bindings/scripts \ - -I $(srcdir)/Tools/WebKitTestRunner/InjectedBundle/Bindings \ - $(srcdir)/Source/WebCore/bindings/scripts/generate-bindings.pl \ ---- webkitgtk-2.4.8/Source/WebCore/GNUmakefile.am.orig 2015-01-07 09:45:42.000000000 +0000 -+++ webkitgtk-2.4.8/Source/WebCore/GNUmakefile.am 2015-03-24 06:25:23.730513400 +0000 -@@ -150,13 +150,13 @@ + DerivedSources/JavaScriptCore/%.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/runtime/%.cpp +- $(AM_V_GEN)$(PERL) $^ -i > $@ ++ $(AM_V_GEN)CC=$(CC) $(PERL) $^ -i > $@ + + DerivedSources/JavaScriptCore/RegExpJitTables.h: $(srcdir)/Source/JavaScriptCore/create_regex_tables +- $(AM_V_GEN)$(PYTHON) $^ > $@ ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $^ > $@ + + DerivedSources/JavaScriptCore/KeywordLookup.h: $(srcdir)/Source/JavaScriptCore/KeywordLookupGenerator.py $(srcdir)/Source/JavaScriptCore/parser/Keywords.table +- $(AM_V_GEN)$(PYTHON) $^ > $@ ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $^ > $@ + + DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h: $(javascriptcore_sources) $(llint_nosources) $(offlineasm_nosources) +- $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@ ++ $(AM_V_GEN)CC=$(CC) $(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@ + $(AM_V_at)touch $@ + + $(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h + + DerivedSources/JavaScriptCore/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT) +- $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@ ++ $(AM_V_GEN)CC=$(CC) $(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@ + $(AM_V_at)touch $@ + + $(libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_OBJECTS): DerivedSources/JavaScriptCore/LLIntAssembly.h +@@ -253,12 +253,12 @@ JavaScriptCore_INSPECTOR_DOMAINS := \ + $(JavaScriptCore)/inspector/protocol/Runtime.json + + DerivedSources/JavaScriptCore/InspectorJS.json: $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore_INSPECTOR_DOMAINS) +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore)/inspector/protocol > $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore)/inspector/protocol > $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json + + # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders + # Copy generated header files to DerivedSources/JavaScriptCore/inspector so that WebCore's ForwardingHeader style of #include will work. + DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.cpp: DerivedSources/JavaScriptCore/InspectorJS.json $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspectorStrings.py +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_JAVASCRIPTCORE) --output_cpp_dir $(GENSOURCES_JAVASCRIPTCORE) --output_js_dir $(GENSOURCES_JAVASCRIPTCORE) --output_type JavaScript ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_JAVASCRIPTCORE) --output_cpp_dir $(GENSOURCES_JAVASCRIPTCORE) --output_js_dir $(GENSOURCES_JAVASCRIPTCORE) --output_type JavaScript + $(AM_V_at)touch $@ + mkdir -p DerivedSources/JavaScriptCore/inspector + cp DerivedSources/JavaScriptCore/InspectorJSTypeBuilders.h DerivedSources/JavaScriptCore/InspectorJSFrontendDispatchers.h DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.h DerivedSources/JavaScriptCore/inspector +@@ -270,6 +270,6 @@ DerivedSources/JavaScriptCore/InspectorJSBackendCommands.js: DerivedSources/Java + DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.h: DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.cpp + + DerivedSources/JavaScriptCore/InjectedScriptSource.h: $(JavaScriptCore)/inspector/InjectedScriptSource.js $(INSPECTOR_SCRIPTS_DIR)/xxd.pl $(INSPECTOR_SCRIPTS_DIR)/jsmin.py +- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py < $< > $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js +- $(AM_V_at)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptSource_js $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js $@ ++ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py < $< > $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js ++ $(AM_V_at)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptSource_js $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js $@ + $(AM_V_at)rm -rf $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js +diff --git a/Source/Platform/GNUmakefile.am b/Source/Platform/GNUmakefile.am +index faf3e8c..1930098 100644 +--- a/Source/Platform/GNUmakefile.am ++++ b/Source/Platform/GNUmakefile.am +@@ -126,8 +126,8 @@ libPlatformGtk_la_CPPFLAGS = \ + $(LIBSOUP_CFLAGS) + + DerivedSources/Platform/ColorData.cpp: $(WebCore)/platform/ColorData.gperf $(WebCore)/make-hash-tools.pl +- $(AM_V_GEN)$(PERL) $(WebCore)/make-hash-tools.pl $(GENSOURCES_PLATFORM) $(WebCore)/platform/ColorData.gperf ++ $(AM_V_GEN)CC=$(CC) $(PERL) $(WebCore)/make-hash-tools.pl $(GENSOURCES_PLATFORM) $(WebCore)/platform/ColorData.gperf + + DerivedSources/Platform/WebKitFontFamilyNames.cpp: DerivedSources/Platform/WebKitFontFamilyNames.h + DerivedSources/Platform/WebKitFontFamilyNames.h: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/css/WebKitFontFamilyNames.in +- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --fonts $(WebCore)/css/WebKitFontFamilyNames.in --outputDir "$(GENSOURCES_PLATFORM)" ++ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --fonts $(WebCore)/css/WebKitFontFamilyNames.in --outputDir "$(GENSOURCES_PLATFORM)" +diff --git a/Source/WebCore/GNUmakefile.am b/Source/WebCore/GNUmakefile.am +index cc2484b..c145ea7 100644 +--- a/Source/WebCore/GNUmakefile.am ++++ b/Source/WebCore/GNUmakefile.am +@@ -150,13 +150,13 @@ endif # END TARGET_WIN32 $(GENSOURCES_WEBCORE)/XPathGrammar.h: $(GENSOURCES_WEBCORE)/XPathGrammar.cpp $(GENSOURCES_WEBCORE)/XPathGrammar.cpp: $(WebCore)/xml/XPathGrammar.y $(AM_V_GEN) @@ -38,7 +116,7 @@ # ---- # SVG Support -@@ -202,13 +202,13 @@ +@@ -202,13 +202,13 @@ endif # END_ENABLE_SVG DerivedSources/WebCore/SVGNames.cpp: DerivedSources/WebCore/SVGElementFactory.cpp DerivedSources/WebCore/JSSVGElementWrapperFactory.cpp: DerivedSources/WebCore/SVGElementFactory.cpp DerivedSources/WebCore/SVGElementFactory.cpp: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/svg/svgtags.in $(WebCore)/svg/svgattrs.in @@ -54,7 +132,7 @@ if USE_TEXTURE_MAPPER_GL webcore_cppflags += \ -@@ -234,7 +234,7 @@ +@@ -234,7 +234,7 @@ DerivedSources/WebCore/CSSPropertyNames.cpp: DerivedSources/WebCore/CSSPropertyN DerivedSources/WebCore/CSSPropertyNames.h: $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/makeprop.pl $(AM_V_GEN) $(AM_V_at)cat $(WEBCORE_CSS_PROPERTY_NAMES) > CSSPropertyNames.in @@ -63,7 +141,7 @@ $(AM_V_at)mv CSSPropertyNames* $(GENSOURCES_WEBCORE) # Lower case all the values, as CSS values are case-insensitive -@@ -242,29 +242,29 @@ +@@ -242,29 +242,29 @@ DerivedSources/WebCore/CSSValueKeywords.cpp: DerivedSources/WebCore/CSSValueKeyw DerivedSources/WebCore/CSSValueKeywords.h: $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/makevalues.pl $(AM_V_GEN) $(AM_V_at)cat $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in @@ -100,7 +178,7 @@ # user agent style sheets USER_AGENT_STYLE_SHEETS = \ -@@ -296,11 +296,11 @@ +@@ -296,11 +296,11 @@ SCRIPTS_FOR_PREPROCESS_IDLS = \ DerivedSources/WebCore/UserAgentStyleSheetsData.cpp: DerivedSources/WebCore/UserAgentStyleSheets.h DerivedSources/WebCore/UserAgentStyleSheets.h: $(WebCore)/css/make-css-file-arrays.pl $(WebCore)/bindings/scripts/preprocessor.pm $(USER_AGENT_STYLE_SHEETS) @@ -114,7 +192,7 @@ # HTML tag and attribute names -@@ -310,26 +310,26 @@ +@@ -310,26 +310,26 @@ DerivedSources/WebCore/HTMLElementFactory.h: DerivedSources/WebCore/HTMLNames.cp DerivedSources/WebCore/HTMLElementTypeHelpers.h: DerivedSources/WebCore/HTMLNames.h DerivedSources/WebCore/HTMLNames.cpp: DerivedSources/WebCore/HTMLNames.h DerivedSources/WebCore/HTMLNames.h: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/html/HTMLTagNames.in $(WebCore)/html/HTMLAttributeNames.in @@ -148,7 +226,7 @@ dom_binding_idls += \ DerivedSources/WebCore/InternalSettingsGenerated.idl -@@ -356,11 +356,11 @@ +@@ -356,11 +356,11 @@ WebCore_INSPECTOR_DOMAINS := \ $(WebCore)/inspector/protocol/Worker.json DerivedSources/WebCore/InspectorWeb.json: $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(WebCore_INSPECTOR_DOMAINS) @@ -162,7 +240,7 @@ $(AM_V_at)touch $@ DerivedSources/WebCore/InspectorWebTypeBuilders.h: DerivedSources/WebCore/InspectorWebTypeBuilders.cpp DerivedSources/WebCore/InspectorWebTypeBuilders.cpp: DerivedSources/WebCore/InspectorWebFrontendDispatchers.h -@@ -370,16 +370,16 @@ +@@ -370,16 +370,16 @@ DerivedSources/WebCore/InspectorWebBackendCommands.js: DerivedSources/WebCore/In DerivedSources/WebCore/InspectorWebBackendDispatchers.h: DerivedSources/WebCore/InspectorWebBackendDispatchers.cpp DerivedSources/WebCore/InspectorOverlayPage.h: $(WebCore)/inspector/InspectorOverlayPage.html $(WebCore)/inspector/InspectorOverlayPage.css $(WebCore)/inspector/InspectorOverlayPage.js @@ -185,7 +263,7 @@ if ENABLE_WEB_AUDIO # Installing HRTF database wav files -@@ -448,7 +448,7 @@ +@@ -448,7 +448,7 @@ $(supplemental_dependency_file): $(SCRIPTS_FOR_PREPROCESS_IDLS) $(dom_binding_id $(AM_V_GEN) $(AM_V_at)true > $(idl_files_list) $(AM_V_at)($(foreach idl, $(dom_binding_idls), echo $(idl) &&) true) >> $(idl_files_list) @@ -194,7 +272,7 @@ $(AM_V_at)touch $@ .PHONY: $(window_constructors_file) $(workerglobalscope_constructors_file) $(sharedworkerglobalscope_constructors_file) $(dedicatedworkerglobalscope_constructors_file) -@@ -459,11 +459,11 @@ +@@ -459,11 +459,11 @@ DerivedSources/WebCore/JS%.cpp: DerivedSources/WebCore/JS%.h; .SECONDARY: DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file) $(idl_attributes_file) @@ -208,11 +286,13 @@ # See https://bugs.webkit.org/show_bug.cgi?id=76388 # We need to introduce a manual dependency to prevent non-generated sources from ---- webkitgtk-2.2.5/Source/WebCore/bindings/gobject/GNUmakefile.am.orig 2014-03-06 03:39:25.220820200 +0000 -+++ webkitgtk-2.2.5/Source/WebCore/bindings/gobject/GNUmakefile.am 2014-03-06 03:52:55.371196200 +0000 -@@ -466,10 +466,10 @@ +diff --git a/Source/WebCore/bindings/gobject/GNUmakefile.am b/Source/WebCore/bindings/gobject/GNUmakefile.am +index 3d5e9dc..3f88ed3 100644 +--- a/Source/WebCore/bindings/gobject/GNUmakefile.am ++++ b/Source/WebCore/bindings/gobject/GNUmakefile.am +@@ -478,10 +478,10 @@ BUILT_SOURCES += \ gdom_class_list := $(subst WebKitDOM,, $(filter-out %Private, $(basename $(notdir $(webkitgtk_gdom_built_sources))))) - gdom_class_list += Custom EventTarget Object + gdom_class_list += Custom EventTarget Object Deprecated DerivedSources/webkitdom/webkitdom.h: $(WebCore)/bindings/scripts/gobject-generate-headers.pl $(WebCore)/bindings/gobject/GNUmakefile.am - $(AM_V_GEN)echo $(gdom_class_list) | $(PERL) $< gdom > $@ + $(AM_V_GEN)echo $(gdom_class_list) | CC=$(CC) $(PERL) $< gdom > $@ @@ -221,11 +301,22 @@ - $(AM_V_GEN)echo $(gdom_class_list) | $(PERL) $< defines > $@ + $(AM_V_GEN)echo $(gdom_class_list) | CC=$(CC) $(PERL) $< defines > $@ - # Because WebCore/bindings/gobject/WebKitDOMObject.h is static source but is also a distributed header - # required by other distributed headers (both static and auto-generated), need to move this to the ---- webkitgtk-2.2.5/Tools/TestWebKitAPI/GNUmakefile.am.orig 2014-03-06 03:39:24.734758500 +0000 -+++ webkitgtk-2.2.5/Tools/TestWebKitAPI/GNUmakefile.am 2014-03-06 03:53:30.491155900 +0000 -@@ -917,11 +917,11 @@ + gdom_symbol_files += $(patsubst %.h,%.symbols, $(filter DerivedSources/webkitdom/WebKitDOM%.h, $(webkitgtk_gdom_built_h_api))) + +@@ -533,7 +533,7 @@ $(top_builddir)/DerivedSources/webkitdom/WebKitDOMDeprecated.h: $(WebCore)/bindi + # Filter out SVG and IndexedDB for now + gdom_feature_defines := $(filter-out ENABLE_INDEXED_DATABASE=1, $(filter-out ENABLE_SVG%, $(feature_defines))) ENABLE_INDEXED_DATABASE=0 + DerivedSources/webkitdom/WebKitDOM%.cpp DerivedSources/webkitdom/WebKitDOM%.h DerivedSources/webkitdom/WebKitDOM%Private.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorGObject.pm $(WebCore)/bindings/gobject/GNUmakefile.am $(supplemental_dependency_file) +- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl --include $(WebCore)/Modules --include $(WebCore)/dom --include $(WebCore)/html --include $(WebCore)/css --include $(WebCore)/page --include $(WebCore)/fileapi --include $(WebCore)/xml --include $(WebCore)/svg --outputDir "$(GENSOURCES_WEBKITDOM)" --defines "LANGUAGE_GOBJECT=1 $(gdom_feature_defines)" --generator GObject --supplementalDependencyFile $(supplemental_dependency_file) $< ++ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl --include $(WebCore)/Modules --include $(WebCore)/dom --include $(WebCore)/html --include $(WebCore)/css --include $(WebCore)/page --include $(WebCore)/fileapi --include $(WebCore)/xml --include $(WebCore)/svg --outputDir "$(GENSOURCES_WEBKITDOM)" --defines "LANGUAGE_GOBJECT=1 $(gdom_feature_defines)" --generator GObject --supplementalDependencyFile $(supplemental_dependency_file) $< + + libwebkitdomincludedir = $(libwebkitgtkincludedir)/webkitdom + nodist_libwebkitdominclude_HEADERS = \ +diff --git a/Tools/TestWebKitAPI/GNUmakefile.am b/Tools/TestWebKitAPI/GNUmakefile.am +index 2ea6173..94be896 100644 +--- a/Tools/TestWebKitAPI/GNUmakefile.am ++++ b/Tools/TestWebKitAPI/GNUmakefile.am +@@ -893,11 +893,11 @@ Programs_TestWebKitAPI_WebKit2Gtk_TestUIClient_LDFLAGS = $(webkit2gtk_tests_ldfl stamp-testwebkitapi-webcore-forwarding-headers: $(WebKit2)/Scripts/generate-forwarding-headers.pl $(Programs_TestWebKitAPI_WebCore_TestWebCore_SOURCES) @@ -239,8 +330,10 @@ && echo timestamp > $(@F) BUILT_SOURCES += $(top_builddir)/stamp-testwebkitapi-webcore-forwarding-headers ---- webkitgtk-2.2.5/Tools/WebKitTestRunner/GNUmakefile.am.orig 2014-03-06 03:39:25.221820300 +0000 -+++ webkitgtk-2.2.5/Tools/WebKitTestRunner/GNUmakefile.am 2014-03-06 03:54:14.746775700 +0000 +diff --git a/Tools/WebKitTestRunner/GNUmakefile.am b/Tools/WebKitTestRunner/GNUmakefile.am +index 28a2d57..e664c56 100644 +--- a/Tools/WebKitTestRunner/GNUmakefile.am ++++ b/Tools/WebKitTestRunner/GNUmakefile.am @@ -1,6 +1,6 @@ stamp-webkittestrunner-forwarding-headers: $(WebKit2)/Scripts/generate-forwarding-headers.pl $(Programs_WebKitTestRunner_SOURCES) $(Libraries_libTestRunnerInjectedBundle_la_SOURCES) @@ -249,74 +342,15 @@ && echo timestamp > $(@F) BUILT_SOURCES += $(top_builddir)/stamp-webkittestrunner-forwarding-headers ---- webkitgtk-2.4.8/Source/JavaScriptCore/GNUmakefile.am.orig 2015-03-24 06:23:10.630111800 +0000 -+++ webkitgtk-2.4.8/Source/JavaScriptCore/GNUmakefile.am 2015-03-24 06:27:35.103695600 +0000 -@@ -95,25 +95,25 @@ - $(shell mkdir -p DerivedSources/JavaScriptCore) +@@ -157,7 +157,7 @@ code_generation_dependencies = \ + Source/WebCore/bindings/scripts/generate-bindings.pl - DerivedSources/JavaScriptCore/Lexer.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/parser/Keywords.table -- $(AM_V_GEN)$(PERL) $^ > $@ -+ $(AM_V_GEN)CC=$(CC) $(PERL) $^ > $@ - - DerivedSources/JavaScriptCore/%.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/runtime/%.cpp -- $(AM_V_GEN)$(PERL) $^ -i > $@ -+ $(AM_V_GEN)CC=$(CC) $(PERL) $^ -i > $@ - - DerivedSources/JavaScriptCore/RegExpJitTables.h: $(srcdir)/Source/JavaScriptCore/create_regex_tables -- $(AM_V_GEN)$(PYTHON) $^ > $@ -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $^ > $@ - - DerivedSources/JavaScriptCore/KeywordLookup.h: $(srcdir)/Source/JavaScriptCore/KeywordLookupGenerator.py $(srcdir)/Source/JavaScriptCore/parser/Keywords.table -- $(AM_V_GEN)$(PYTHON) $^ > $@ -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $^ > $@ - - DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h: $(javascriptcore_sources) $(llint_nosources) $(offlineasm_nosources) -- $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@ -+ $(AM_V_GEN)CC=$(CC) $(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@ - $(AM_V_at)touch $@ - - $(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h - - DerivedSources/JavaScriptCore/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT) -- $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@ -+ $(AM_V_GEN)CC=$(CC) $(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@ - $(AM_V_at)touch $@ - - $(libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_OBJECTS): DerivedSources/JavaScriptCore/LLIntAssembly.h -@@ -253,12 +253,12 @@ - $(JavaScriptCore)/inspector/protocol/Runtime.json - - DerivedSources/JavaScriptCore/InspectorJS.json: $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore_INSPECTOR_DOMAINS) -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore)/inspector/protocol > $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore)/inspector/protocol > $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json - - # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders - # Copy generated header files to DerivedSources/JavaScriptCore/inspector so that WebCore's ForwardingHeader style of #include will work. - DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.cpp: DerivedSources/JavaScriptCore/InspectorJS.json $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspectorStrings.py -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_JAVASCRIPTCORE) --output_cpp_dir $(GENSOURCES_JAVASCRIPTCORE) --output_js_dir $(GENSOURCES_JAVASCRIPTCORE) --output_type JavaScript -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_JAVASCRIPTCORE) --output_cpp_dir $(GENSOURCES_JAVASCRIPTCORE) --output_js_dir $(GENSOURCES_JAVASCRIPTCORE) --output_type JavaScript - $(AM_V_at)touch $@ - mkdir -p DerivedSources/JavaScriptCore/inspector - cp DerivedSources/JavaScriptCore/InspectorJSTypeBuilders.h DerivedSources/JavaScriptCore/InspectorJSFrontendDispatchers.h DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.h DerivedSources/JavaScriptCore/inspector -@@ -270,6 +270,6 @@ - DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.h: DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.cpp - - DerivedSources/JavaScriptCore/InjectedScriptSource.h: $(JavaScriptCore)/inspector/InjectedScriptSource.js $(INSPECTOR_SCRIPTS_DIR)/xxd.pl $(INSPECTOR_SCRIPTS_DIR)/jsmin.py -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py < $< > $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js -- $(AM_V_at)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptSource_js $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js $@ -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py < $< > $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js -+ $(AM_V_at)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptSource_js $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js $@ - $(AM_V_at)rm -rf $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js ---- webkitgtk-2.2.5/Source/Platform/GNUmakefile.am.orig 2014-03-06 03:39:24.590740200 +0000 -+++ webkitgtk-2.2.5/Source/Platform/GNUmakefile.am 2014-03-06 03:55:39.352519200 +0000 -@@ -123,8 +123,8 @@ - $(LIBSOUP_CFLAGS) - - DerivedSources/Platform/ColorData.cpp: $(WebCore)/platform/ColorData.gperf $(WebCore)/make-hash-tools.pl -- $(AM_V_GEN)$(PERL) $(WebCore)/make-hash-tools.pl $(GENSOURCES_PLATFORM) $(WebCore)/platform/ColorData.gperf -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(WebCore)/make-hash-tools.pl $(GENSOURCES_PLATFORM) $(WebCore)/platform/ColorData.gperf - - DerivedSources/Platform/WebKitFontFamilyNames.cpp: DerivedSources/Platform/WebKitFontFamilyNames.h - DerivedSources/Platform/WebKitFontFamilyNames.h: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/css/WebKitFontFamilyNames.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --fonts $(WebCore)/css/WebKitFontFamilyNames.in --outputDir "$(GENSOURCES_PLATFORM)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --fonts $(WebCore)/css/WebKitFontFamilyNames.in --outputDir "$(GENSOURCES_PLATFORM)" + DerivedSources/InjectedBundle/JS%.cpp: Tools/WebKitTestRunner/InjectedBundle/Bindings/%.idl $(code_generation_dependencies) +- $(AM_V_GEN)$(PERL) \ ++ $(AM_V_GEN)CC=$(CC) $(PERL) \ + -I $(srcdir)/Source/WebCore/bindings/scripts \ + -I $(srcdir)/Tools/WebKitTestRunner/InjectedBundle/Bindings \ + $(srcdir)/Source/WebCore/bindings/scripts/generate-bindings.pl \ +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch b/mingw-w64-webkitgtk3/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch new file mode 100644 index 0000000000..cab46ac369 --- /dev/null +++ b/mingw-w64-webkitgtk3/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch @@ -0,0 +1,47 @@ +From 15bb53231a42240baf882baeeb265b5bee861190 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?= +Date: Tue, 14 Apr 2015 10:48:26 +0000 +Subject: [PATCH 14/20] [W32][ANGLE] Silence two warnings in ANGLE + +../webkitgtk-2.4.8/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp:538:123: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] + if (op == EOpConstructStruct && !type->isArray() && int(type->getStruct()->fields().size()) != function.getParamCount()) { + ^ +../webkitgtk-2.4.8/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp:7:0: warning: ignoring #pragma warning [-Wunknown-pragmas] + #pragma warning(disable: 4718) + ^ +--- + Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp | 2 +- + Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp b/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp +index 9a27952..a93d286 100644 +--- a/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp ++++ b/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp +@@ -535,7 +535,7 @@ bool TParseContext::constructorErrorCheck(const TSourceLoc& line, TIntermNode* n + return true; + } + +- if (op == EOpConstructStruct && !type->isArray() && int(type->getStruct()->fields().size()) != function.getParamCount()) { ++ if (op == EOpConstructStruct && !type->isArray() && int(type->getStruct()->fields().size()) != int(function.getParamCount())) { + error(line, "Number of constructor parameters does not match the number of structure fields", "constructor"); + return true; + } +diff --git a/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp b/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp +index ca661d6..3d306a3 100644 +--- a/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp ++++ b/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp +@@ -4,7 +4,9 @@ + // found in the LICENSE file. + // + ++#ifdef _MSC_VER + #pragma warning(disable: 4718) ++#endif + + #include "compiler/depgraph/DependencyGraph.h" + #include "compiler/depgraph/DependencyGraphBuilder.h" +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch b/mingw-w64-webkitgtk3/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch new file mode 100644 index 0000000000..70f7468a38 --- /dev/null +++ b/mingw-w64-webkitgtk3/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch @@ -0,0 +1,42 @@ +From dd36f7430eed1724cfa8bc30ceaa6159569ee9e8 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?= +Date: Tue, 14 Apr 2015 10:51:02 +0000 +Subject: [PATCH 15/20] [W32] Try to use pkg-config to detect ICU libraries + +MinGW packages tend to have .pc files these days. Use them. + +ICU naming and structure is complex enough to warrant this, and asking +pkg-config might result in things like +UNICODE_LIBS="-licui18n54 -licuuc54 -licudata54" +instead of the default +UNICODE_LIBS="-licui18n -licuuc" +and pkg-config usually knows best. +--- + Source/autotools/FindDependencies.m4 | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/Source/autotools/FindDependencies.m4 b/Source/autotools/FindDependencies.m4 +index 3ce3f76..a21e68d 100644 +--- a/Source/autotools/FindDependencies.m4 ++++ b/Source/autotools/FindDependencies.m4 +@@ -109,8 +109,14 @@ case "$host" in + UNICODE_LIBS="-licucore" + ;; + *-*-mingw*) +- UNICODE_CFLAGS="" +- UNICODE_LIBS="-licui18n -licuuc" ++ PKG_CHECK_MODULES(ICU, icu-i18n, ,) ++ if test "x$ICU_LIBS" = "x" ; then ++ UNICODE_CFLAGS="" ++ UNICODE_LIBS="-licui18n -licuuc" ++ else ++ UNICODE_CFLAGS="$ICU_CFLAGS" ++ UNICODE_LIBS="$ICU_LIBS" ++ fi + AC_CHECK_HEADERS([unicode/uchar.h], [], [AC_MSG_ERROR([Could not find ICU headers.])]) + ;; + *) +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch b/mingw-w64-webkitgtk3/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch new file mode 100644 index 0000000000..7de91ca3e0 --- /dev/null +++ b/mingw-w64-webkitgtk3/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch @@ -0,0 +1,95 @@ +From 9a724e8caa5b27fdece040d3f698d9948f62ae6c 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?= +Date: Tue, 14 Apr 2015 10:57:41 +0000 +Subject: [PATCH 16/20] [W32][GTK] Work around name conflicts (NO_ERROR) + +In file included from /mingw/include/_mingw.h:12:0, + from ../webkitgtk-2.4.8/Source/WTF/wtf/Compiler.h:93, + from ../webkitgtk-2.4.8/Source/WTF/wtf/Platform.h:32, + from ../webkitgtk-2.4.8/Source/JavaScriptCore/config.h:30, + from ../webkitgtk-2.4.8/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:27: +../webkitgtk-2.4.8/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: In member function 'virtual int WebCore::Extensions3DOpenGLCommon::getGraphicsResetStatusARB()': +../webkitgtk-2.4.8/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:144:31: error: expected unqualified-id before numeric constant + return GraphicsContext3D::NO_ERROR; + +because NO_ERROR is also a macro defined in Windows headers. Ouch. +Also expand this to the (PLATFORM(GTK) && OS(WINDOWS)) combination, +in addition to the workaround for VERSION already present there. +--- + Source/WebCore/html/canvas/WebGLRenderingContext.cpp | 8 ++++++++ + Source/WebCore/platform/graphics/GraphicsContext3D.h | 6 ++++-- + .../WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp | 4 ++++ + .../platform/graphics/texmap/TextureMapperShaderProgram.cpp | 4 ++++ + 4 files changed, 20 insertions(+), 2 deletions(-) + +diff --git a/Source/WebCore/html/canvas/WebGLRenderingContext.cpp b/Source/WebCore/html/canvas/WebGLRenderingContext.cpp +index fa5537b..758abeb 100644 +--- a/Source/WebCore/html/canvas/WebGLRenderingContext.cpp ++++ b/Source/WebCore/html/canvas/WebGLRenderingContext.cpp +@@ -85,6 +85,14 @@ + #include + #include + ++#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) ++#undef NO_ERROR ++#endif ++ ++#if PLATFORM(GTK) ++#undef VERSION ++#endif ++ + namespace WebCore { + + const double secondsBetweenRestoreAttempts = 1.0; +diff --git a/Source/WebCore/platform/graphics/GraphicsContext3D.h b/Source/WebCore/platform/graphics/GraphicsContext3D.h +index 705c327..de53b04 100644 +--- a/Source/WebCore/platform/graphics/GraphicsContext3D.h ++++ b/Source/WebCore/platform/graphics/GraphicsContext3D.h +@@ -43,9 +43,11 @@ + #endif + + // FIXME: Find a better way to avoid the name confliction for NO_ERROR. +-#if PLATFORM(WIN) ++#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) + #undef NO_ERROR +-#elif PLATFORM(GTK) ++#endif ++ ++#if PLATFORM(GTK) + // This define is from the X11 headers, but it's used below, so we must undefine it. + #undef VERSION + #endif +diff --git a/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp b/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp +index f1713d8..3bd2b73 100644 +--- a/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp ++++ b/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp +@@ -49,6 +49,10 @@ + #include + #include + ++#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) ++#undef NO_ERROR ++#endif ++ + namespace WebCore { + + Extensions3DOpenGLCommon::Extensions3DOpenGLCommon(GraphicsContext3D* context) +diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp +index f4b9a7e..d8caeac 100644 +--- a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp ++++ b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp +@@ -29,6 +29,10 @@ + + #include + ++#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) ++#undef NO_ERROR ++#endif ++ + #define STRINGIFY(...) #__VA_ARGS__ + + namespace WebCore { +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch b/mingw-w64-webkitgtk3/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch new file mode 100644 index 0000000000..7d4b4c15d5 --- /dev/null +++ b/mingw-w64-webkitgtk3/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch @@ -0,0 +1,56 @@ +From 1c8e4633f8b938a1aaa9a65d992c42bae46fe386 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?= +Date: Tue, 14 Apr 2015 11:02:02 +0000 +Subject: [PATCH 17/20] [W32] Also use GL-related files when compiling with + MinGW + + CXXLD libwebkitgtk-3.0.la +./.libs/../source/webcore/platform/graphics/.libs/libplatform_la-graphicscontext3dprivate.o: In function `GraphicsContext3DPrivate': +/src/mingw/webkitgtk-2.4.8-1\bld/../webkitgtk-2.4.8/Source/WebCore/platform/graphics/GraphicsContext3DPrivate.cpp:59: undefined reference to `__ZN7WebCore9GLContext14sharingContextEv' +/src/mingw/webkitgtk-2.4.8-1\bld/../webkitgtk-2.4.8/Source/WebCore/platform/graphics/GraphicsContext3DPrivate.cpp:59: undefined reference to `__ZN7WebCore9GLContext22createOffscreenContextEPS0_' +./.libs/../source/webcore/platform/graphics/.libs/libplatform_la-graphicscontext3dprivate.o: In function `platformContext': +/src/mingw/webkitgtk-2.4.8-1\bld/../webkitgtk-2.4.8/Source/WebCore/platform/graphics/GraphicsContext3DPrivate.cpp:84: undefined reference to `__ZN7WebCore9GLContext10getCurrentEv' + +Becuase GLContext.cpp is not used, which happens because it's under +TARGET_X11_OR_WAYLAND condition in the GNUmakefile.list.am. +Move TARGET_X11_OR_WAYLAND up a bit to free up GLContext.cpp (now only +protected by USE_OPENGL). +--- + Source/WebCore/GNUmakefile.list.am | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/Source/WebCore/GNUmakefile.list.am b/Source/WebCore/GNUmakefile.list.am +index 22956c7..443399d 100644 +--- a/Source/WebCore/GNUmakefile.list.am ++++ b/Source/WebCore/GNUmakefile.list.am +@@ -6267,6 +6267,13 @@ if TARGET_X11_OR_WAYLAND + platformgtk_sources += \ + Source/WebCore/platform/cairo/WidgetBackingStoreCairo.h \ + Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp ++if USE_EGL ++webcoregtk_sources += \ ++ Source/WebCore/platform/graphics/egl/GLContextEGL.cpp \ ++ Source/WebCore/platform/graphics/egl/GLContextEGL.h ++endif # END USE_EGL ++endif # END TARGET_X11_OR_WAYLAND ++ + if USE_OPENGL + platformgtk_sources += \ + Source/WebCore/platform/graphics/GLContext.cpp \ +@@ -6274,12 +6281,6 @@ platformgtk_sources += \ + Source/WebCore/platform/gtk/RedirectedXCompositeWindow.cpp \ + Source/WebCore/platform/gtk/RedirectedXCompositeWindow.h + endif # END USE_OPENGL +-if USE_EGL +-webcoregtk_sources += \ +- Source/WebCore/platform/graphics/egl/GLContextEGL.cpp \ +- Source/WebCore/platform/graphics/egl/GLContextEGL.h +-endif # END USE_EGL +-endif # END TARGET_X11_OR_WAYLAND + + if TARGET_WIN32 + webcore_sources += \ +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch b/mingw-w64-webkitgtk3/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch new file mode 100644 index 0000000000..346c04fcb3 --- /dev/null +++ b/mingw-w64-webkitgtk3/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch @@ -0,0 +1,56 @@ +From e7ce4cf2de87ec0cbe2d60738cd5ca9515d56c3a 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?= +Date: Tue, 14 Apr 2015 14:48:32 +0000 +Subject: [PATCH 18/20] Silence the warning about JSValue 'v' being + uninitialized + +This shouldn't really happen, as the enumeration only has two values, +but gcc doesn't seem to understand it. Probably because it's a template. +Also, 'v' is an object, so there's an uninitialized object that participates +in a '=' operator, so that could be the cause for concern as well. + +Fix this by completely separating two cases at the cost of code duplication. + +Otherwise one would get this: +../webkitgtk-2.4.8/Source/JavaScriptCore/runtime/JSObject.cpp: In member function 'JSC::ContiguousJSValues JSC::JSObject::genericConvertDoubleToContiguous(JSC::VM&) [with JSC::JSObject::DoubleToContiguousMode mode = (JSC::JSObject::DoubleToContiguousMode)0u; JSC::ContiguousJSValues = JSC::ContiguousData >]': +../webkitgtk-2.4.8/Source/JavaScriptCore/runtime/JSObject.cpp:822:17: warning: 'v' is used uninitialized in this function [-Wuninitialized] +--- + Source/JavaScriptCore/runtime/JSObject.cpp | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +diff --git a/Source/JavaScriptCore/runtime/JSObject.cpp b/Source/JavaScriptCore/runtime/JSObject.cpp +index 6910b7e..5f52fe0 100644 +--- a/Source/JavaScriptCore/runtime/JSObject.cpp ++++ b/Source/JavaScriptCore/runtime/JSObject.cpp +@@ -821,15 +821,19 @@ ContiguousJSValues JSObject::genericConvertDoubleToContiguous(VM& vm) + } + JSValue v; + switch (mode) { +- case EncodeValueAsDouble: +- v = JSValue(JSValue::EncodeAsDouble, value); +- break; +- case RageConvertDoubleToValue: +- v = jsNumber(value); +- break; ++ case EncodeValueAsDouble: { ++ JSValue v = JSValue(JSValue::EncodeAsDouble, value); ++ ASSERT(v.isNumber()); ++ currentAsValue->setWithoutWriteBarrier(v); ++ break; ++ } ++ case RageConvertDoubleToValue: { ++ JSValue v = jsNumber(value); ++ ASSERT(v.isNumber()); ++ currentAsValue->setWithoutWriteBarrier(v); ++ break; ++ } + } +- ASSERT(v.isNumber()); +- currentAsValue->setWithoutWriteBarrier(v); + } + + setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateContiguous)); +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0018-use-la-libs-for-g-i.all.patch b/mingw-w64-webkitgtk3/0018-use-la-libs-for-g-i.all.patch deleted file mode 100644 index ef2f1e244b..0000000000 --- a/mingw-w64-webkitgtk3/0018-use-la-libs-for-g-i.all.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- webkitgtk-2.2.5/Source/WebKit/gtk/GNUmakefile.am.orig 2014-02-17 11:24:13.000000000 +0000 -+++ webkitgtk-2.2.5/Source/WebKit/gtk/GNUmakefile.am 2014-03-07 02:38:18.647631200 +0000 -@@ -301,8 +301,8 @@ - --include=Gtk-@GTK_API_VERSION@ \ - --include=JavaScriptCore-@WEBKITGTK_API_VERSION@ \ - --include=Soup-2.4 \ -- --library=webkitgtk-@WEBKITGTK_API_VERSION@ \ -- --library=javascriptcoregtk-@WEBKITGTK_API_VERSION@ \ -+ --library=libwebkitgtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \ -+ --library=libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \ - --libtool="$(LIBTOOL)" \ - --pkg=gobject-2.0 \ - --pkg=gtk+-@GTK_API_VERSION@ \ diff --git a/mingw-w64-webkitgtk3/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch b/mingw-w64-webkitgtk3/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch new file mode 100644 index 0000000000..a161926e73 --- /dev/null +++ b/mingw-w64-webkitgtk3/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch @@ -0,0 +1,188 @@ +From 00333182aa303b29975ac3aa656eaf29c4d5d0e5 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?= +Date: Tue, 14 Apr 2015 14:51:22 +0000 +Subject: [PATCH 19/20] [W32] Update windowsVersion() and + osVersionForUAString() + +Add support for newer Windows versions to windowsVersion(), handle all +defined cases in osVersionForUAString(), avoiding warnings like +../webkitgtk-2.4.8/Source/WebCore/platform/win/SystemInfo.cpp: In function 'WTF::String WebCore::osVersionForUAString()': +../webkitgtk-2.4.8/Source/WebCore/platform/win/SystemInfo.cpp:94:12: warning: enumeration value 'WindowsCE5' not handled in switch [-Wswitch] +repeated for each unhandled value +--- + Source/WebCore/platform/win/SystemInfo.cpp | 107 +++++++++++++++++++++++++++-- + Source/WebCore/platform/win/SystemInfo.h | 9 +++ + 2 files changed, 111 insertions(+), 5 deletions(-) + +diff --git a/Source/WebCore/platform/win/SystemInfo.cpp b/Source/WebCore/platform/win/SystemInfo.cpp +index c9edca0..de5e8dc 100644 +--- a/Source/WebCore/platform/win/SystemInfo.cpp ++++ b/Source/WebCore/platform/win/SystemInfo.cpp +@@ -29,6 +29,10 @@ + #include + #include + ++#ifndef SM_SERVERR2 ++#define SM_SERVERR2 89 ++#endif ++ + namespace WebCore { + + WindowsVersion windowsVersion(int* major, int* minor) +@@ -65,15 +69,73 @@ WindowsVersion windowsVersion(int* major, int* minor) + version = (minorVersion == 10) ? Windows98 : WindowsME; + } else { + if (majorVersion == 5) { +- if (!minorVersion) ++ switch (minorVersion) { ++ default: ++ case 0: + version = Windows2000; ++ break; ++ case 1: ++ version = WindowsXP; ++ break; ++ case 2: ++ if (versionInfo.wProductType == VER_NT_WORKSTATION) ++ version = WindowsXP64; ++ else { ++ if (GetSystemMetrics(SM_SERVERR2) == 0) ++ version = WindowsServer2003; ++ else ++ version = WindowsServer2003R2; ++ } ++ break; ++ } ++ } else if (majorVersion == 6) { ++ if (versionInfo.wProductType == VER_NT_WORKSTATION) ++ switch (minorVersion) { ++ default: ++ case 0: ++ version = WindowsVista; ++ break; ++ case 1: ++ version = Windows7; ++ break; ++ case 2: ++ version = Windows8; ++ break; ++ case 3: ++ version = Windows81; ++ break; ++ } + else +- version = (minorVersion == 1) ? WindowsXP : WindowsServer2003; +- } else if (majorVersion >= 6) { ++ switch (minorVersion) { ++ default: ++ case 0: ++ version = WindowsServer2008; ++ break; ++ case 1: ++ version = WindowsServer2008R2; ++ break; ++ case 2: ++ version = WindowsServer2012; ++ break; ++ case 3: ++ version = WindowsServer2012R2; ++ break; ++ } ++ } else if (majorVersion == 10) { + if (versionInfo.wProductType == VER_NT_WORKSTATION) +- version = (majorVersion == 6 && !minorVersion) ? WindowsVista : Windows7; ++ switch (minorVersion) { ++ default: ++ case 0: ++ version = Windows10; ++ break; ++ } + else +- version = WindowsServer2008; ++ switch (minorVersion) { ++ default: ++ case 0: ++ version = WindowsServer2016; ++ break; ++ } + } else + version = (majorVersion == 4) ? WindowsNT4 : WindowsNT3; + } +@@ -97,6 +159,9 @@ static String osVersionForUAString() + case WindowsCE3: + return "Windows CE"; + case WindowsCE4: ++ case WindowsCE5: ++ case WindowsCE6: ++ case WindowsCE7: + return "Windows CE .NET"; + case Windows3_1: + return "Windows 3.1"; +@@ -106,8 +171,40 @@ static String osVersionForUAString() + return "Windows 98"; + case WindowsME: + return "Windows 98; Win 9x 4.90"; ++ case WindowsNT3: ++ return "WinNT3.0"; + case WindowsNT4: + return "WinNT4.0"; ++ case Windows2000: ++ return "Windows 2000"; ++ case WindowsXP: ++ return "Windows XP"; ++ case WindowsServer2003: ++ return "Windows Server 2003"; ++ case WindowsXP64: ++ return "Windows XP Professional x64 Edition"; ++ case WindowsServer2003R2: ++ return "Windows Server 2003 R2"; ++ case WindowsVista: ++ return "Windows Vista"; ++ case WindowsServer2008: ++ return "Windows Server 2008"; ++ case Windows7: ++ return "Windows 7"; ++ case WindowsServer2008R2: ++ return "Windows Server 2008 R2"; ++ case Windows8: ++ return "Windows 8"; ++ case WindowsServer2012: ++ return "Windows Server 2012"; ++ case Windows81: ++ return "Windows 8.1"; ++ case WindowsServer2012R2: ++ return "Windows Server 2012 R2"; ++ case Windows10: ++ return "Windows 10"; ++ case WindowsServer2016: ++ return "Windows Server 2016"; + } + + const char* familyName = (version >= WindowsNT3) ? "Windows NT " : "Windows CE "; +diff --git a/Source/WebCore/platform/win/SystemInfo.h b/Source/WebCore/platform/win/SystemInfo.h +index 2631ace..7bfb222 100644 +--- a/Source/WebCore/platform/win/SystemInfo.h ++++ b/Source/WebCore/platform/win/SystemInfo.h +@@ -54,9 +54,18 @@ enum WindowsVersion { + Windows2000, + WindowsXP, + WindowsServer2003, ++ WindowsXP64, ++ WindowsServer2003R2, + WindowsVista, + WindowsServer2008, + Windows7, ++ WindowsServer2008R2, ++ Windows8, ++ WindowsServer2012, ++ Windows81, ++ WindowsServer2012R2, ++ Windows10, ++ WindowsServer2016, + }; + + // If supplied, |major| and |minor| are set to the OSVERSIONINFO::dwMajorVersion +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0020-W32-Fixup-dummy-HeapStatistics-implementation.all.patch b/mingw-w64-webkitgtk3/0020-W32-Fixup-dummy-HeapStatistics-implementation.all.patch new file mode 100644 index 0000000000..71867999ce --- /dev/null +++ b/mingw-w64-webkitgtk3/0020-W32-Fixup-dummy-HeapStatistics-implementation.all.patch @@ -0,0 +1,29 @@ +From 0505839dc1793406aa37bc95ee51ea361e9508a0 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?= +Date: Tue, 14 Apr 2015 14:53:29 +0000 +Subject: [PATCH 20/20] [W32] Fixup dummy HeapStatistics implementation + +GCC warns that exitWithFailure is marked as noreturn, but it does return: +../webkitgtk-2.4.8/Source/JavaScriptCore/heap/HeapStatistics.cpp:135:1: warning: 'noreturn' function does return + +Call exit(-1) to indicate that no, there is no returning from here. +--- + Source/JavaScriptCore/heap/HeapStatistics.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Source/JavaScriptCore/heap/HeapStatistics.cpp b/Source/JavaScriptCore/heap/HeapStatistics.cpp +index f23def7..ba441f0 100644 +--- a/Source/JavaScriptCore/heap/HeapStatistics.cpp ++++ b/Source/JavaScriptCore/heap/HeapStatistics.cpp +@@ -132,6 +132,7 @@ void HeapStatistics::logStatistics() + + void HeapStatistics::exitWithFailure() + { ++ exit(-1); + } + + void HeapStatistics::reportSuccess() +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0021-W32-Change-printf-format-atribute-to-gnu_printf-.all.patch b/mingw-w64-webkitgtk3/0021-W32-Change-printf-format-atribute-to-gnu_printf-.all.patch new file mode 100644 index 0000000000..2300a2291b --- /dev/null +++ b/mingw-w64-webkitgtk3/0021-W32-Change-printf-format-atribute-to-gnu_printf-.all.patch @@ -0,0 +1,68 @@ +From f90a814ad83d7c6279eaf1fc59d3d373ba7af259 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?= +Date: Tue, 14 Apr 2015 17:50:25 +0000 +Subject: [PATCH 21/21] [W32] Change printf format atribute to gnu_printf, + MinGW compatibility + +"printf" means "gnu_printf" when compiling for non-Windows and means +"ms_printf" when compiling for Windows. The code, however, does seems to be +assuming gnu_printf (judging by the use of %z and %l). + +Fix this by explicitly specifying gnu_printf format style. +To ensure that gnu-compatible printf implementation is used, compile +with -D__USE_MINGW_ANSI_STDIO=1, it will automagically turn all *printf() +invocations into __mingw_*printf(), which are gnu-compatible. + +Only one function that won't be turned is _vsnprintf(). Ifdef its use and +call vsnprintf() instead when __USE_MINGW_ANSI_STDIO != 0. +--- + Source/WTF/wtf/Assertions.cpp | 11 ++++++++++- + Source/WTF/wtf/Assertions.h | 4 ++-- + 2 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/Source/WTF/wtf/Assertions.cpp b/Source/WTF/wtf/Assertions.cpp +index a370302..d846777 100644 +--- a/Source/WTF/wtf/Assertions.cpp ++++ b/Source/WTF/wtf/Assertions.cpp +@@ -116,12 +116,21 @@ static void vprintf_stderr_common(const char* format, va_list args) + size_t size = 1024; + + do { ++ int printed; + char* buffer = (char*)malloc(size); + + if (buffer == NULL) + break; + +- if (_vsnprintf(buffer, size, format, args) != -1) { ++#if defined(__USE_MINGW_ANSI_STDIO) && __USE_MINGW_ANSI_STDIO != 0 ++ /* vsnprintf is a macro for __mingw_vsnprintf */ ++ printed = vsnprintf(buffer, size, format, args); ++#else ++ /* _vsnprintf is always _vsnprintf from MS CRT */ ++ printed = _vsnprintf(buffer, size, format, args); ++#endif ++ ++ if (printed != -1) { + #if OS(WINCE) + // WinCE only supports wide chars + wchar_t* wideBuffer = (wchar_t*)malloc(size * sizeof(wchar_t)); +diff --git a/Source/WTF/wtf/Assertions.h b/Source/WTF/wtf/Assertions.h +index 4d968b8..cb7c7e4 100644 +--- a/Source/WTF/wtf/Assertions.h ++++ b/Source/WTF/wtf/Assertions.h +@@ -85,8 +85,8 @@ + /* WTF logging functions can process %@ in the format string to log a NSObject* but the printf format attribute + emits a warning when %@ is used in the format string. Until is resolved we can't include + the attribute when being used from Objective-C code in case it decides to use %@. */ +-#if COMPILER(GCC) && !defined(__OBJC__) +-#define WTF_ATTRIBUTE_PRINTF(formatStringArgument, extraArguments) __attribute__((__format__(printf, formatStringArgument, extraArguments))) ++#if COMPILER(GCC) && !defined(__OBJC__) && (!OS(WINDOWS) || (defined(__USE_MINGW_ANSI_STDIO) && __USE_MINGW_ANSI_STDIO != 0)) ++#define WTF_ATTRIBUTE_PRINTF(formatStringArgument, extraArguments) __attribute__((__format__(gnu_printf, formatStringArgument, extraArguments))) + #else + #define WTF_ATTRIBUTE_PRINTF(formatStringArgument, extraArguments) + #endif +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/0021-use-configured-python-for-this.all.patch b/mingw-w64-webkitgtk3/0021-use-configured-python-for-this.all.patch deleted file mode 100644 index 5f5428baf3..0000000000 --- a/mingw-w64-webkitgtk3/0021-use-configured-python-for-this.all.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- webkitgtk-2.4.8/Tools/gtk/GNUmakefile.am.orig 2015-01-07 09:45:43.000000000 +0000 -+++ webkitgtk-2.4.8/Tools/gtk/GNUmakefile.am 2015-03-24 06:29:42.649391900 +0000 -@@ -35,7 +35,7 @@ - gtkdoc-webkitdom.cfg - - docs-build.stamp: $(docs_build_dependencies) -- CC=$(CC) $(srcdir)/Tools/gtk/generate-gtkdoc -+ CC=$(CC) $(PYTHON) $(srcdir)/Tools/gtk/generate-gtkdoc - @touch docs-build.stamp - - clean-local: doc-clean-local ---- webkitgtk-2.4.8/Source/WebInspectorUI/GNUmakefile.am.orig 2015-01-07 09:45:43.000000000 +0000 -+++ webkitgtk-2.4.8/Source/WebInspectorUI/GNUmakefile.am 2015-03-24 07:19:52.380579200 +0000 -@@ -13,7 +13,7 @@ - $(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py - $(AM_V_GEN) - $(AM_V_at)mkdir -p ${GENSOURCES_WEBINSPECTOR_UI} -- $(AM_V_at)$(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py --output $@ $(inspector_files) -+ $(AM_V_at)$(PYTHON) $(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py --output $@ $(inspector_files) - - ${GENSOURCES_WEBINSPECTOR_UI}/GResourceBundle.c: DerivedSources/WebInspectorUI/GResourceBundle.xml - $(AM_V_GEN) diff --git a/mingw-w64-webkitgtk3/0023-use-path-instead-of-ld-library-path-on.mingw.patch b/mingw-w64-webkitgtk3/0023-use-path-instead-of-ld-library-path-on.mingw.patch deleted file mode 100644 index 316f78073b..0000000000 --- a/mingw-w64-webkitgtk3/0023-use-path-instead-of-ld-library-path-on.mingw.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- webkitgtk-2.2.5/Tools/gtk/gtkdoc.py.orig 2014-03-07 03:54:22.115118000 +0000 -+++ webkitgtk-2.2.5/Tools/gtk/gtkdoc.py 2014-03-07 03:58:35.546299600 +0000 -@@ -312,11 +312,18 @@ - ldflags = self.ldflags - if self.library_path: - ldflags = ' "-L%s" ' % self.library_path + ldflags -- current_ld_library_path = env.get('LD_LIBRARY_PATH') -- if current_ld_library_path: -- env['RUN'] = 'LD_LIBRARY_PATH="%s:%s" ' % (self.library_path, current_ld_library_path) -+ if os.name == 'nt' or sys.platform == 'cygwin': -+ current_path = env.get('PATH') -+ if current_path: -+ env['RUN'] = 'PATH="%s:%s" ' % (self.library_path, current_path) -+ else: -+ env['RUN'] = 'PATH="%s" ' % self.library_path - else: -- env['RUN'] = 'LD_LIBRARY_PATH="%s" ' % self.library_path -+ current_ld_library_path = env.get('LD_LIBRARY_PATH') -+ if current_ld_library_path: -+ env['RUN'] = 'LD_LIBRARY_PATH="%s:%s" ' % (self.library_path, current_ld_library_path) -+ else: -+ env['RUN'] = 'LD_LIBRARY_PATH="%s" ' % self.library_path - - if ldflags: - env['LDFLAGS'] = '%s %s' % (ldflags, env.get('LDFLAGS', '')) diff --git a/mingw-w64-webkitgtk3/0027-destroy-invocation-before-return-switchable.all.patch b/mingw-w64-webkitgtk3/0027-destroy-invocation-before-return-switchable.all.patch deleted file mode 100644 index e000b7c313..0000000000 --- a/mingw-w64-webkitgtk3/0027-destroy-invocation-before-return-switchable.all.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- webkitgtk-2.2.6/Source/WTF/wtf/ThreadingWin.cpp.orig 2014-03-19 07:53:02.000000000 +0000 -+++ webkitgtk-2.2.6/Source/WTF/wtf/ThreadingWin.cpp 2014-04-15 10:18:07.793755700 +0000 -@@ -212,14 +212,26 @@ - - static unsigned __stdcall wtfThreadEntryPoint(void* param) - { -- OwnPtr invocation = adoptPtr(static_cast(param)); -- invocation->function(invocation->data); -+ if (getenv ("WEBKIT_DONTFIX_INVOCATION_DESTRUCTOR")) -+ { -+ OwnPtr invocation = adoptPtr(static_cast(param)); -+ invocation->function(invocation->data); - - #if !USE(PTHREADS) && OS(WINDOWS) -+ // Do the TLS cleanup. -+ ThreadSpecificThreadExit(); -+#endif -+ return 0; -+ } -+ else -+ { -+ OwnPtr invocation = adoptPtr(static_cast(param)); -+ invocation->function(invocation->data); -+ } -+#if !USE(PTHREADS) && OS(WINDOWS) - // Do the TLS cleanup. - ThreadSpecificThreadExit(); - #endif -- - return 0; - } - diff --git a/mingw-w64-webkitgtk3/0029-webkit-dont-build-dump-render-tree.all.patch b/mingw-w64-webkitgtk3/0029-webkit-dont-build-dump-render-tree.all.patch deleted file mode 100644 index 4c48e9b64c..0000000000 --- a/mingw-w64-webkitgtk3/0029-webkit-dont-build-dump-render-tree.all.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- webkitgtk-2.4.8/Tools/GNUmakefile.am.orig 2015-03-24 06:37:08.188968200 +0000 -+++ webkitgtk-2.4.8/Tools/GNUmakefile.am 2015-03-24 06:37:37.567198800 +0000 -@@ -1,11 +1,6 @@ - noinst_PROGRAMS += \ - Programs/ImageDiff - --if ENABLE_WEBKIT1 --noinst_PROGRAMS += \ -- Programs/DumpRenderTree --endif -- - # libWebCoreInternals - # We must split off the window.internals implementation into a separate - # convenience library because it requires a different include path order diff --git a/mingw-w64-webkitgtk3/0103-webkitgtk-2.4.3-win-format.all.patch b/mingw-w64-webkitgtk3/0103-webkitgtk-2.4.3-win-format.all.patch deleted file mode 100644 index a33686c357..0000000000 --- a/mingw-w64-webkitgtk3/0103-webkitgtk-2.4.3-win-format.all.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Source/autotools/SetupCompilerFlags.m4 -+++ b/Source/autotools/SetupCompilerFlags.m4 -@@ -1,7 +1,7 @@ - # Use C99 as the language standard for C code. - CFLAGS="$CFLAGS -pthread -std=c99" - # Use the C++11 standard. Do not warn about C++11 incompatibilities. --CXXFLAGS="$CXXFLAGS -pthread -std=c++11 -Wno-c++11-compat" -+CXXFLAGS="$CXXFLAGS -pthread -std=c++11 -Wno-c++11-compat -D__USE_MINGW_ANSI_STDIO=1" - - # Clang requires suppression of unused arguments warnings. - if test "$c_compiler" = "clang"; then diff --git a/mingw-w64-webkitgtk3/0104-webkitgtk-2.4.3-misc-win-errors.all.patch b/mingw-w64-webkitgtk3/0104-webkitgtk-2.4.3-misc-win-errors.all.patch deleted file mode 100644 index c785fb42f5..0000000000 --- a/mingw-w64-webkitgtk3/0104-webkitgtk-2.4.3-misc-win-errors.all.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- a/Source/JavaScriptCore/heap/HeapStatistics.cpp -+++ b/Source/JavaScriptCore/heap/HeapStatistics.cpp -@@ -132,6 +132,7 @@ void HeapStatistics::logStatistics() - - void HeapStatistics::exitWithFailure() - { -+ exit(-1); - } - - void HeapStatistics::reportSuccess() ---- a/Source/WTF/wtf/win/GDIObject.h -+++ b/Source/WTF/wtf/win/GDIObject.h -@@ -111,7 +111,7 @@ template inline void swap(GDIObject& a, GDIObject& b) - } - - // Nearly all GDI types use the same DeleteObject call. --template inline void deleteObject(T object) -+template inline void deleteObject(T object) - { - if (object) - ::DeleteObject(object); ---- a/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp -+++ b/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp -@@ -37,6 +37,10 @@ - #include - #endif - -+#ifndef M_PI_2 -+#define M_PI_2 1.57079632679489661923 -+#endif -+ - namespace WebCore { - - cairo_subpixel_order_t convertFontConfigSubpixelOrder(int fontConfigOrder) ---- a/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp -+++ b/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp -@@ -32,7 +32,7 @@ - - #include - #include "GraphicsContextPlatformPrivateCairo.h" --#include -+#include - - using namespace std; - diff --git a/mingw-w64-webkitgtk3/0105-webkitgtk-2.4.3-warnings.all.patch b/mingw-w64-webkitgtk3/0105-webkitgtk-2.4.3-warnings.all.patch deleted file mode 100644 index c6a2e3dbf0..0000000000 --- a/mingw-w64-webkitgtk3/0105-webkitgtk-2.4.3-warnings.all.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- a/Source/JavaScriptCore/runtime/JSObject.cpp -+++ b/Source/JavaScriptCore/runtime/JSObject.cpp -@@ -819,7 +819,7 @@ ContiguousJSValues JSObject::genericConvertDoubleToContiguous(VM& vm) - currentAsValue->clear(); - continue; - } -- JSValue v; -+ JSValue v = jsNumber(value); - switch (mode) { - case EncodeValueAsDouble: - v = JSValue(JSValue::EncodeAsDouble, value); ---- a/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp -+++ b/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp -@@ -535,7 +535,7 @@ bool TParseContext::constructorErrorCheck(const TSourceLoc& line, TIntermNode* n - return true; - } - -- if (op == EOpConstructStruct && !type->isArray() && int(type->getStruct()->fields().size()) != function.getParamCount()) { -+ if (op == EOpConstructStruct && !type->isArray() && int(type->getStruct()->fields().size()) != int(function.getParamCount())) { - error(line, "Number of constructor parameters does not match the number of structure fields", "constructor"); - return true; - } ---- a/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp -+++ b/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp -@@ -4,7 +4,9 @@ - // found in the LICENSE file. - // - -+#ifdef _MSC_VER - #pragma warning(disable: 4718) -+#endif - - #include "compiler/depgraph/DependencyGraph.h" - #include "compiler/depgraph/DependencyGraphBuilder.h" ---- a/Source/WTF/wtf/text/WTFString.h -+++ b/Source/WTF/wtf/text/WTFString.h -@@ -32,6 +32,9 @@ - #include - #endif - -+/* avoid renaming to libintl_printf (see WTF_ATTRIBUTE_PRINTF) */ -+#undef printf -+ - namespace WTF { - - class CString; ---- a/Source/autotools/ltmain.sh -+++ b/Source/autotools/ltmain.sh -@@ -4178,7 +4178,7 @@ EOF - /* declarations of non-ANSI functions */ - #if defined(__MINGW32__) - # ifdef __STRICT_ANSI__ --int _putenv (const char *); -+int __declspec(dllimport) _putenv (const char *); - # endif - #elif defined(__CYGWIN__) - # ifdef __STRICT_ANSI__ diff --git a/mingw-w64-webkitgtk3/1001-Source.autotools.FindDependencies.m4.all.patch b/mingw-w64-webkitgtk3/1001-Source.autotools.FindDependencies.m4.all.patch deleted file mode 100644 index 0cb996d4d9..0000000000 --- a/mingw-w64-webkitgtk3/1001-Source.autotools.FindDependencies.m4.all.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- webkitgtk-2.4.1.old/Source/autotools/FindDependencies.m4 2014-05-16 19:07:53 +0000 -+++ webkitgtk-2.4.1/Source/autotools/FindDependencies.m4 2014-05-17 07:38:01 +0000 -@@ -109,8 +109,14 @@ case "$host" in - UNICODE_LIBS="-licucore" - ;; - *-*-mingw*) -- UNICODE_CFLAGS="" -- UNICODE_LIBS="-licui18n -licuuc" -+ PKG_CHECK_MODULES(ICU, icu-i18n, ,) -+ if test "x$ICU_LIBS" = "x" ; then -+ UNICODE_CFLAGS="" -+ UNICODE_LIBS="-licui18n -licuuc" -+ else -+ UNICODE_CFLAGS="$ICU_CFLAGS" -+ UNICODE_LIBS="$ICU_LIBS" -+ fi - AC_CHECK_HEADERS([unicode/uchar.h], [], [AC_MSG_ERROR([Could not find ICU headers.])]) - ;; - *) -@@ -455,7 +461,14 @@ if test "$found_opengl" = "yes"; then - OPENGL_LIBS="-lGLESv2" - else - acceleration_description="$acceleration_description (gl" -- OPENGL_LIBS="-lGL" -+ case "$host" in -+ *-*-mingw*) -+ OPENGL_LIBS="-lopengl32" -+ ;; -+ *) -+ OPENGL_LIBS="-lGL" -+ ;; -+ esac - fi - if test "$enable_egl" = "yes"; then - acceleration_description="$acceleration_description, egl" diff --git a/mingw-w64-webkitgtk3/1002-preprocessor.pm-make_names.pl.all.patch b/mingw-w64-webkitgtk3/1002-preprocessor.pm-make_names.pl.all.patch deleted file mode 100644 index 1bc7d0d19e..0000000000 --- a/mingw-w64-webkitgtk3/1002-preprocessor.pm-make_names.pl.all.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- webkitgtk-2.4.1.old/Source/WebCore/bindings/scripts/preprocessor.pm 2014-05-16 19:07:53 +0000 -+++ webkitgtk-2.4.1/Source/WebCore/bindings/scripts/preprocessor.pm 2014-05-17 07:38:01 +0000 -@@ -51,6 +51,8 @@ sub applyPreprocessor - $preprocessor = "/usr/sfw/bin/gcc"; - } elsif (-x "/usr/bin/clang") { - $preprocessor = "/usr/bin/clang"; -+ } elsif ($Config{osname} eq 'msys') { -+ $preprocessor = "gcc"; - } else { - $preprocessor = "/usr/bin/gcc"; - } -@@ -71,7 +73,7 @@ sub applyPreprocessor - @macros = map { "-D$_" } @macros; - - my $pid = 0; -- if ($Config{osname} eq "cygwin" || $Config{osname} eq 'MSWin32') { -+ if ($Config{osname} eq "cygwin" || $Config{osname} eq 'MSWin32' || $Config{osname} eq 'msys') { - # This call can fail if Windows rebases cygwin, so retry a few times until it succeeds. - for (my $tries = 0; !$pid && ($tries < 20); $tries++) { - eval { ---- webkitgtk-2.4.1.old/Source/WebCore/dom/make_names.pl 2014-05-16 19:07:53 +0000 -+++ webkitgtk-2.4.1/Source/WebCore/dom/make_names.pl 2014-05-17 07:38:01 +0000 -@@ -69,6 +69,8 @@ if ($ENV{CC}) { - $gccLocation = "/usr/sfw/bin/gcc"; - } elsif ($Config::Config{"osname"} eq "darwin" && $ENV{SDKROOT}) { - chomp($gccLocation = `xcrun -find cc -sdk '$ENV{SDKROOT}'`); -+} elsif ($Config::Config{"osname"} eq "msys") { -+ $gccLocation = "gcc"; - } else { - $gccLocation = "/usr/bin/cc"; - } diff --git a/mingw-w64-webkitgtk3/1004-math.h_related.all.patch b/mingw-w64-webkitgtk3/1004-math.h_related.all.patch deleted file mode 100644 index 59a3cdfc39..0000000000 --- a/mingw-w64-webkitgtk3/1004-math.h_related.all.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- webkitgtk-2.4.1.old/Source/WTF/wtf/MathExtras.h 2014-05-16 19:07:53 +0000 -+++ webkitgtk-2.4.1/Source/WTF/wtf/MathExtras.h 2014-05-17 07:38:01 +0000 -@@ -67,6 +67,12 @@ const double piOverFourDouble = M_PI_4; - const float piOverFourFloat = static_cast(M_PI_4); - #endif - -+#ifndef M_SQRT2 -+const double sqrtOfTwoDouble = 1.41421356237309504880; -+#else -+const double sqrtOfTwoDouble = M_SQRT2; -+#endif -+ - #if OS(DARWIN) - - // Work around a bug in the Mac OS X libc where ceil(-0.1) return +0. ---- webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp 2014-05-16 19:07:53 +0000 -+++ webkitgtk-2.4.1/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp 2014-05-17 07:38:01 +0000 -@@ -32,6 +32,7 @@ - #include - #include FT_TRUETYPE_TABLES_H - #include -+#include - - #if !PLATFORM(EFL) - #include -@@ -120,7 +121,7 @@ static void rotateCairoMatrixForVertical - // combination of rotation (R) and translation (T) applied on the - // horizontal matrix (H). V = H . R . T, where R rotates by -90 degrees - // and T translates by font size towards y axis. -- cairo_matrix_rotate(matrix, -M_PI_2); -+ cairo_matrix_rotate(matrix, -piOverTwoDouble); - cairo_matrix_translate(matrix, 0.0, 1.0); - } - ---- webkitgtk-2.4.1.old/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp 2014-05-16 19:07:53 +0000 -+++ webkitgtk-2.4.1/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp 2014-05-17 07:38:01 +0000 -@@ -71,8 +71,8 @@ void RenderMathMLMenclose::computePrefer - size_t notationalValueSize = notationValues.size(); - for (size_t i = 0; i < notationalValueSize; i++) { - if (notationValues[i] == "circle") { -- m_minPreferredLogicalWidth = minPreferredLogicalWidth() * float(M_SQRT2); -- m_maxPreferredLogicalWidth = maxPreferredLogicalWidth() * float(M_SQRT2); -+ m_minPreferredLogicalWidth = minPreferredLogicalWidth() * float(sqrtOfTwoDouble); -+ m_maxPreferredLogicalWidth = maxPreferredLogicalWidth() * float(sqrtOfTwoDouble); - } - } - -@@ -86,7 +86,7 @@ void RenderMathMLMenclose::updateLogical - size_t notationalValueSize = notationValues.size(); - for (size_t i = 0; i < notationalValueSize; i++) - if (notationValues[i] == "circle") -- setLogicalHeight(logicalHeight() * float(M_SQRT2)); -+ setLogicalHeight(logicalHeight() * float(sqrtOfTwoDouble)); - } - - void RenderMathMLMenclose::paint(PaintInfo& info, const LayoutPoint& paintOffset) diff --git a/mingw-w64-webkitgtk3/1005-misc.all.patch b/mingw-w64-webkitgtk3/1005-misc.all.patch deleted file mode 100644 index db35dd1aa1..0000000000 --- a/mingw-w64-webkitgtk3/1005-misc.all.patch +++ /dev/null @@ -1,107 +0,0 @@ -diff --git a/Source/WTF/wtf/threads/BinarySemaphore.h b/Source/WTF/wtf/threads/BinarySemaphore.h -index de51d47..cae1023 100644 ---- a/Source/WTF/wtf/threads/BinarySemaphore.h -+++ b/Source/WTF/wtf/threads/BinarySemaphore.h -@@ -41,12 +41,12 @@ public: - WTF_EXPORT_PRIVATE void signal(); - WTF_EXPORT_PRIVATE bool wait(double absoluteTime); - --#if OS(WINDOWS) -+#if PLATFORM(WIN) - HANDLE event() const { return m_event; } - #endif - - private: --#if OS(WINDOWS) -+#if PLATFORM(WIN) - HANDLE m_event; - #else - bool m_isSet; -diff --git a/Source/WebCore/platform/gtk/FileSystemGtk.cpp b/Source/WebCore/platform/gtk/FileSystemGtk.cpp -index 9ebeca5..e741d1c 100644 ---- a/Source/WebCore/platform/gtk/FileSystemGtk.cpp -+++ b/Source/WebCore/platform/gtk/FileSystemGtk.cpp -@@ -23,6 +23,10 @@ - #include "config.h" - #include "FileSystem.h" - -+#if OS(WINDOWS) -+#include -+#endif -+ - #include "FileMetadata.h" - #include "UUID.h" - #include -diff --git a/Source/WebCore/rendering/RenderBlock.h b/Source/WebCore/rendering/RenderBlock.h -index 5aa29e0..c29b078 100644 ---- a/Source/WebCore/rendering/RenderBlock.h -+++ b/Source/WebCore/rendering/RenderBlock.h -@@ -611,8 +611,8 @@ public: - unsigned m_beingDestroyed : 1; - unsigned m_hasMarkupTruncation : 1; - unsigned m_hasBorderOrPaddingLogicalWidthChanged : 1; -- enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; - unsigned m_lineLayoutPath : 2; -+ enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; - - // RenderRubyBase objects need to be able to split and merge, moving their children around - // (calling moveChildTo, moveAllChildrenTo, and makeChildrenNonInline). ---- a/Source/WebCore/platform/graphics/GraphicsContext3D.h -+++ b/Source/WebCore/platform/graphics/GraphicsContext3D.h -@@ -43,9 +43,11 @@ - #endif - - // FIXME: Find a better way to avoid the name confliction for NO_ERROR. --#if PLATFORM(WIN) -+#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) - #undef NO_ERROR --#elif PLATFORM(GTK) -+#endif -+ -+#if PLATFORM(GTK) - // This define is from the X11 headers, but it's used below, so we must undefine it. - #undef VERSION - #endif ---- a/Source/WebCore/html/canvas/WebGLRenderingContext.cpp -+++ b/Source/WebCore/html/canvas/WebGLRenderingContext.cpp -@@ -85,6 +85,14 @@ - #include - #include - -+#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) -+#undef NO_ERROR -+#endif -+ -+#if PLATFORM(GTK) -+#undef VERSION -+#endif -+ - namespace WebCore { - - const double secondsBetweenRestoreAttempts = 1.0; ---- a/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp -+++ b/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp -@@ -49,6 +49,10 @@ - #include - #include - -+#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) -+#undef NO_ERROR -+#endif -+ - namespace WebCore { - - Extensions3DOpenGLCommon::Extensions3DOpenGLCommon(GraphicsContext3D* context) ---- a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp -+++ b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp -@@ -29,6 +29,10 @@ - - #include - -+#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) -+#undef NO_ERROR -+#endif -+ - #define STRINGIFY(...) #__VA_ARGS__ - - namespace WebCore { diff --git a/mingw-w64-webkitgtk3/3000-export-more-symbols-on-w32.all.patch b/mingw-w64-webkitgtk3/3000-export-more-symbols-on-w32.all.patch deleted file mode 100644 index da7a2790b8..0000000000 --- a/mingw-w64-webkitgtk3/3000-export-more-symbols-on-w32.all.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- webkitgtk-2.4.8/GNUmakefile.am.orig 2015-01-07 09:45:40.000000000 +0000 -+++ webkitgtk-2.4.8/GNUmakefile.am 2015-03-24 10:51:01.592364800 +0000 -@@ -182,7 +182,13 @@ - # It breaks the build on other platforms, so we use it conditionally - if OS_WIN32 - no_undefined = -no-undefined --version_script = -export-symbols-regex "^(webkit_|k?JS).*" -+#global: -+# webkit_*; -+# WebProcessMainGtk; -+# NetworkProcessMain; -+# _ZN6WebKit22WebGtkExtensionManager10initializeEPK14OpaqueWKBundlePKv; -+# _ZN6WebKit22WebGtkExtensionManager6sharedEv; -+version_script = -export-symbols-regex "^(webkit_|k?JS|WebProcessMainGtk|NetworkProcessMain|.*ZN6WebKit22WebGtkExtensionManager10initializeEPK14OpaqueWKBundlePKv|.*ZN6WebKit22WebGtkExtensionManager6sharedEv).*" - endif - - if OS_GNU diff --git a/mingw-w64-webkitgtk3/4000-fix-gmutexlocker-conflict.all.patch b/mingw-w64-webkitgtk3/4000-fix-gmutexlocker-conflict.all.patch deleted file mode 100644 index 71f7beb557..0000000000 --- a/mingw-w64-webkitgtk3/4000-fix-gmutexlocker-conflict.all.patch +++ /dev/null @@ -1,301 +0,0 @@ ---- webkitgtk-2.4.8/Source/WTF/wtf/gobject/GMutexLocker.h.orig 2015-01-07 09:45:42.000000000 +0000 -+++ webkitgtk-2.4.8/Source/WTF/wtf/gobject/GMutexLocker.h 2015-03-24 20:50:18.848356400 +0000 -@@ -29,18 +29,18 @@ - - namespace WebCore { - --class GMutexLocker { -- WTF_MAKE_NONCOPYABLE(GMutexLocker); WTF_MAKE_FAST_ALLOCATED; -+class GWTFMutexLocker { -+ WTF_MAKE_NONCOPYABLE(GWTFMutexLocker); WTF_MAKE_FAST_ALLOCATED; - - public: -- inline explicit GMutexLocker(GMutex* mutex) -+ inline explicit GWTFMutexLocker(GMutex* mutex) - : m_mutex(mutex) - , m_val(0) - { - lock(); - } - -- inline ~GMutexLocker() { unlock(); } -+ inline ~GWTFMutexLocker() { unlock(); } - - inline void lock() - { ---- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp.orig 2015-01-07 09:45:43.000000000 +0000 -+++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2015-03-24 20:53:07.273243700 +0000 -@@ -316,7 +316,7 @@ - #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) && !USE(COORDINATED_GRAPHICS) - PassRefPtr MediaPlayerPrivateGStreamerBase::updateTexture(TextureMapper* textureMapper) - { -- GMutexLocker lock(m_bufferMutex); -+ GWTFMutexLocker lock(m_bufferMutex); - if (!m_buffer) - return nullptr; - -@@ -366,7 +366,7 @@ - g_return_if_fail(GST_IS_BUFFER(buffer)); - - { -- GMutexLocker lock(m_bufferMutex); -+ GWTFMutexLocker lock(m_bufferMutex); - gst_buffer_replace(&m_buffer, buffer); - } - -@@ -398,7 +398,7 @@ - if (!m_player->visible()) - return; - -- GMutexLocker lock(m_bufferMutex); -+ GWTFMutexLocker lock(m_bufferMutex); - if (!m_buffer) - return; - ---- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp.orig 2015-01-07 09:45:43.000000000 +0000 -+++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp 2015-03-24 20:53:18.224134200 +0000 -@@ -118,7 +118,7 @@ - WebKitVideoSink* sink = reinterpret_cast(data); - WebKitVideoSinkPrivate* priv = sink->priv; - -- GMutexLocker lock(priv->bufferMutex); -+ GWTFMutexLocker lock(priv->bufferMutex); - GstBuffer* buffer = priv->buffer; - priv->buffer = 0; - priv->timeoutId = 0; -@@ -140,7 +140,7 @@ - WebKitVideoSink* sink = WEBKIT_VIDEO_SINK(baseSink); - WebKitVideoSinkPrivate* priv = sink->priv; - -- GMutexLocker lock(priv->bufferMutex); -+ GWTFMutexLocker lock(priv->bufferMutex); - - if (priv->unlocked) - return GST_FLOW_OK; -@@ -279,7 +279,7 @@ - - static void unlockBufferMutex(WebKitVideoSinkPrivate* priv) - { -- GMutexLocker lock(priv->bufferMutex); -+ GWTFMutexLocker lock(priv->bufferMutex); - - if (priv->buffer) { - gst_buffer_unref(priv->buffer); -@@ -305,7 +305,7 @@ - WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; - - { -- GMutexLocker lock(priv->bufferMutex); -+ GWTFMutexLocker lock(priv->bufferMutex); - priv->unlocked = false; - } - -@@ -330,7 +330,7 @@ - { - WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; - -- GMutexLocker lock(priv->bufferMutex); -+ GWTFMutexLocker lock(priv->bufferMutex); - priv->unlocked = false; - return TRUE; - } ---- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp.orig 2015-01-07 09:45:43.000000000 +0000 -+++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2015-03-24 20:53:33.226039200 +0000 -@@ -346,7 +346,7 @@ - - switch (propID) { - case PROP_IRADIO_MODE: { -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - priv->iradioMode = g_value_get_boolean(value); - break; - } -@@ -364,7 +364,7 @@ - WebKitWebSrc* src = WEBKIT_WEB_SRC(object); - WebKitWebSrcPrivate* priv = src->priv; - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - switch (propID) { - case PROP_IRADIO_MODE: - g_value_set_boolean(value, priv->iradioMode); -@@ -417,7 +417,7 @@ - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - bool seeking = priv->seekID; - -@@ -476,7 +476,7 @@ - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - priv->startID = 0; - priv->corsAccessCheck = CORSNoCheck; -@@ -573,7 +573,7 @@ - return ret; - } - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - switch (transition) { - case GST_STATE_CHANGE_READY_TO_PAUSED: - GST_DEBUG_OBJECT(src, "READY->PAUSED"); -@@ -604,7 +604,7 @@ - gst_query_parse_duration(query, &format, NULL); - - GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format)); -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - if (format == GST_FORMAT_BYTES && src->priv->size > 0) { - gst_query_set_duration(query, format, src->priv->size); - result = TRUE; -@@ -612,7 +612,7 @@ - break; - } - case GST_QUERY_URI: { -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - gst_query_set_uri(query, src->priv->uri); - result = TRUE; - break; -@@ -653,7 +653,7 @@ - WebKitWebSrc* src = WEBKIT_WEB_SRC(handler); - gchar* ret; - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - ret = g_strdup(src->priv->uri); - return ret; - } -@@ -668,7 +668,7 @@ - return FALSE; - } - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - g_free(priv->uri); - priv->uri = 0; -@@ -704,7 +704,7 @@ - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - // already stopped - if (!priv->needDataID) - return FALSE; -@@ -725,7 +725,7 @@ - - GST_DEBUG_OBJECT(src, "Need more data: %u", length); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - if (priv->needDataID || !priv->paused) { - return; - } -@@ -739,7 +739,7 @@ - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - // already stopped - if (!priv->enoughDataID) - return FALSE; -@@ -760,7 +760,7 @@ - - GST_DEBUG_OBJECT(src, "Have enough data"); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - if (priv->enoughDataID || priv->paused) { - return; - } -@@ -774,7 +774,7 @@ - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - // already stopped - if (!priv->seekID) - return FALSE; -@@ -792,7 +792,7 @@ - WebKitWebSrcPrivate* priv = src->priv; - - GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset); -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - if (offset == priv->offset && priv->requestedOffset == priv->offset) - return TRUE; - -@@ -811,7 +811,7 @@ - void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player) - { - ASSERT(player); -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - src->priv->player = player; - } - -@@ -841,7 +841,7 @@ - - mapGstBuffer(buffer); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - priv->buffer = adoptGRef(buffer); - locker.unlock(); - -@@ -867,7 +867,7 @@ - return; - } - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - priv->corsAccessCheck = corsAccessCheck; - -@@ -966,7 +966,7 @@ - WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src); - WebKitWebSrcPrivate* priv = src->priv; - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - GST_LOG_OBJECT(src, "Have %lld bytes of data", priv->buffer ? static_cast(gst_buffer_get_size(priv->buffer.get())) : length); - -@@ -1035,7 +1035,7 @@ - - GST_DEBUG_OBJECT(src, "Have EOS"); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - if (!priv->seekID) { - locker.unlock(); - gst_app_src_end_of_stream(priv->appsrc); -@@ -1194,7 +1194,7 @@ - - GST_ERROR_OBJECT(src, "Request was blocked"); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - uri.reset(g_strdup(src->priv->uri)); - locker.unlock(); - -@@ -1208,7 +1208,7 @@ - - GST_ERROR_OBJECT(src, "Cannot show URL"); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ GWTFMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - uri.reset(g_strdup(src->priv->uri)); - locker.unlock(); - diff --git a/mingw-w64-webkitgtk3/0008-webkit-fix-angle-windows-compilation.mingw.patch b/mingw-w64-webkitgtk3/9999-ossource_win.cpp.all.patch similarity index 60% rename from mingw-w64-webkitgtk3/0008-webkit-fix-angle-windows-compilation.mingw.patch rename to mingw-w64-webkitgtk3/9999-ossource_win.cpp.all.patch index 0f7d6fb4c1..8c2b507063 100644 --- a/mingw-w64-webkitgtk3/0008-webkit-fix-angle-windows-compilation.mingw.patch +++ b/mingw-w64-webkitgtk3/9999-ossource_win.cpp.all.patch @@ -59,24 +59,6 @@ + return false; +} + ---- webkitgtk-2.2.3/Source/ThirdParty/ANGLE/GNUmakefile.am.orig 2013-12-04 23:12:01.034574086 +0100 -+++ webkitgtk-2.2.3/Source/ThirdParty/ANGLE/GNUmakefile.am 2013-12-04 23:19:09.719774371 +0100 -@@ -75,7 +75,6 @@ - Source/ThirdParty/ANGLE/src/compiler/MapLongVariableNames.h \ - Source/ThirdParty/ANGLE/src/compiler/MMap.h \ - Source/ThirdParty/ANGLE/src/compiler/osinclude.h \ -- Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp \ - Source/ThirdParty/ANGLE/src/compiler/OutputESSL.cpp \ - Source/ThirdParty/ANGLE/src/compiler/OutputESSL.h \ - Source/ThirdParty/ANGLE/src/compiler/OutputGLSL.cpp \ -@@ -154,3 +153,10 @@ - Source/ThirdParty/ANGLE/src/compiler/VariableInfo.h \ - Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.cpp \ - Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.h -+ -+if TARGET_WIN32 -+libANGLE_la_SOURCES += Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp -+else -+libANGLE_la_SOURCES += Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp -+endif -+ +-- +1.8.5.3 + diff --git a/mingw-w64-webkitgtk3/PKGBUILD b/mingw-w64-webkitgtk3/PKGBUILD index 1e2d06c752..fea9d49a43 100644 --- a/mingw-w64-webkitgtk3/PKGBUILD +++ b/mingw-w64-webkitgtk3/PKGBUILD @@ -3,7 +3,7 @@ _realname=webkitgtk pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}2" "${MINGW_PACKAGE_PREFIX}-${_realname}3") pkgver=2.4.8 -pkgrel=2 +pkgrel=3 pkgdesc="GTK+ Web content engine library (mingw-w64)" arch=('any') url="http://webkitgtk.org/" @@ -46,61 +46,57 @@ depends=("${MINGW_PACKAGE_PREFIX}-angleproject" "${MINGW_PACKAGE_PREFIX}-xz" ) source=(http://webkitgtk.org/releases/webkitgtk-${pkgver}.tar.xz - 0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch - 0002-webkitgtk-mingw-use-gcc-asm.mingw.patch - 0005-webkitgtk-mingw-compile-fix.mingw.patch - 0007-webkitgtk-mingw-fix-includes.mingw.patch - 0008-webkit-fix-angle-windows-compilation.mingw.patch - 0009-webkitgtk-mingw-m-pi.mingw.patch - 0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch - 0011-webkitgtk-mingw-opengl.mingw.patch - 0012-webkitgtk-dont-build-test-webkit-api.mingw.patch - 0017-make-sure-correct-gcc-is-used.mingw.patch - 0018-use-la-libs-for-g-i.all.patch - 0021-use-configured-python-for-this.all.patch - 0023-use-path-instead-of-ld-library-path-on.mingw.patch - 0027-destroy-invocation-before-return-switchable.all.patch - 0029-webkit-dont-build-dump-render-tree.all.patch + 0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch + 0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch + 0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch + 0003-W32-Use-confgured-Python-interpreter.all.patch + 0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch + 0005-Add-missing-gcc-asm-code-for-JIT.all.patch + 0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch + 0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch + 0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch + 0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch + 0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch + 0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch + 0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch + 0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch + 0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch + 0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch + 0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch + 0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch + 0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch + 0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch + 0020-W32-Fixup-dummy-HeapStatistics-implementation.all.patch + 0021-W32-Change-printf-format-atribute-to-gnu_printf-.all.patch 0101-webkitgtk-2.4.3-gcc-asm.all.patch - 0103-webkitgtk-2.4.3-win-format.all.patch - 0104-webkitgtk-2.4.3-misc-win-errors.all.patch - 0105-webkitgtk-2.4.3-warnings.all.patch - 0106-enable-jit.all.patch - 1001-Source.autotools.FindDependencies.m4.all.patch - 1002-preprocessor.pm-make_names.pl.all.patch - 1004-math.h_related.all.patch - 1005-misc.all.patch - 3000-export-more-symbols-on-w32.all.patch - 4000-fix-gmutexlocker-conflict.all.patch) + 9999-ossource_win.cpp.all.patch) prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0001-webkitgtk-remove-reference-to-nonexisting-header.mingw.patch - patch -p1 -i ${srcdir}/0002-webkitgtk-mingw-use-gcc-asm.mingw.patch - patch -p1 -i ${srcdir}/0005-webkitgtk-mingw-compile-fix.mingw.patch - patch -p1 -i ${srcdir}/0007-webkitgtk-mingw-fix-includes.mingw.patch - patch -p1 -i ${srcdir}/0008-webkit-fix-angle-windows-compilation.mingw.patch - patch -p1 -i ${srcdir}/0009-webkitgtk-mingw-m-pi.mingw.patch - patch -p1 -i ${srcdir}/0010-webkitgtk-prevent-multiple-plugins-definitions.mingw.patch - patch -p1 -i ${srcdir}/0011-webkitgtk-mingw-opengl.mingw.patch - patch -p1 -i ${srcdir}/0012-webkitgtk-dont-build-test-webkit-api.mingw.patch - patch -p1 -i ${srcdir}/0017-make-sure-correct-gcc-is-used.mingw.patch - patch -p1 -i ${srcdir}/0018-use-la-libs-for-g-i.all.patch - patch -p1 -i ${srcdir}/0021-use-configured-python-for-this.all.patch - patch -p1 -i ${srcdir}/0023-use-path-instead-of-ld-library-path-on.mingw.patch - patch -p1 -i ${srcdir}/0027-destroy-invocation-before-return-switchable.all.patch - patch -p1 -i ${srcdir}/0029-webkit-dont-build-dump-render-tree.all.patch + patch -p1 -i ${srcdir}/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch + patch -p1 -i ${srcdir}/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch + patch -p1 -i ${srcdir}/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch + patch -p1 -i ${srcdir}/0003-W32-Use-confgured-Python-interpreter.all.patch + patch -p1 -i ${srcdir}/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch + patch -p1 -i ${srcdir}/0005-Add-missing-gcc-asm-code-for-JIT.all.patch + patch -p1 -i ${srcdir}/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch + patch -p1 -i ${srcdir}/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch + patch -p1 -i ${srcdir}/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch + patch -p1 -i ${srcdir}/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch + patch -p1 -i ${srcdir}/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch + patch -p1 -i ${srcdir}/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch + patch -p1 -i ${srcdir}/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch + patch -p1 -i ${srcdir}/0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch + patch -p1 -i ${srcdir}/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch + patch -p1 -i ${srcdir}/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch + patch -p1 -i ${srcdir}/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch + patch -p1 -i ${srcdir}/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch + patch -p1 -i ${srcdir}/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch + patch -p1 -i ${srcdir}/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch + patch -p1 -i ${srcdir}/0020-W32-Fixup-dummy-HeapStatistics-implementation.all.patch + patch -p1 -i ${srcdir}/0021-W32-Change-printf-format-atribute-to-gnu_printf-.all.patch patch -p1 -i ${srcdir}/0101-webkitgtk-2.4.3-gcc-asm.all.patch - patch -p1 -i ${srcdir}/0103-webkitgtk-2.4.3-win-format.all.patch - patch -p1 -i ${srcdir}/0104-webkitgtk-2.4.3-misc-win-errors.all.patch - patch -p1 -i ${srcdir}/0105-webkitgtk-2.4.3-warnings.all.patch - patch -p1 -i ${srcdir}/0106-enable-jit.all.patch - patch -p1 -i ${srcdir}/1001-Source.autotools.FindDependencies.m4.all.patch - patch -p1 -i ${srcdir}/1002-preprocessor.pm-make_names.pl.all.patch - patch -p1 -i ${srcdir}/1004-math.h_related.all.patch - patch -p1 -i ${srcdir}/1005-misc.all.patch - patch -p1 -i ${srcdir}/3000-export-more-symbols-on-w32.all.patch - patch -p1 -i ${srcdir}/4000-fix-gmutexlocker-conflict.all.patch + patch -p1 -i ${srcdir}/9999-ossource_win.cpp.all.patch autoreconf --verbose --install -I Source/autotools @@ -191,29 +187,27 @@ package_mingw-w64-x86_64-webkitgtk3() { } md5sums=('bcdcef8e1ba28dbd5bb05f86c79f76b8' - '2ae45596c0b2d632fdd8ead551bd462b' - 'f6274cc4664f531ceb4040aa706e8ef6' - 'd09eb8edbf720c331d01a58f65eaa0a6' - 'a14fdd341b980ca21064305e11990332' - '60f28fd809bb3aa0c8c791325bb29d3d' - '05fe8cc73be6493d8e2269b900d03cfb' - '11328cfd06c73e26abe6468a7dfafa23' - 'db16e2d9e6d20f9568d98371b10b8719' - '3cdc56cfae595eefce12414f027907b7' - 'c020b0863576574f6f9e17396f4f6cfa' - '054075647ddf38b5e2b2f8226a5043f0' - '8277aefbe66157e4673f63105c0ff0f1' - 'ab2a01c8c34bdec57a6b4fa71d9ccdaf' - 'eeff9b56a17c8c5165aa501404d6b9f3' - 'cd60095167b0f70f26c71e2898c776a5' + 'a5a9558ab8c206660b5e61d7a0805e78' + '372611b19ea2bd9652706cf6e4e5fdad' + '2e06d339b5216fb12bda8e986c48dc5c' + 'd1f88d7246a2049d2265fc1d9affa3cc' + '91642c1f7cb4da6c0147a60d20ffd2d4' + '0fd9213cb67b61a08e4e5c414a8b1199' + '1bb1387de684f4c11c1c07df95b8a994' + 'e6c793b87285873ac882dda8b80fce0d' + '0ec7e1c86d25b8d7623efa1b942dc2b1' + '1f2848a4e572f0be29e7b704dcc9c98b' + 'd2f03b506d15c6888d0a9269a7b6fd1b' + '6e754ac606c7ce7051b9da43283378e7' + '76e800fe615ff86a023ee17bed346ffe' + 'e9033b7ef619a4f36a77f0b89764adf3' + '62d764bb1e3a9cfe088e4cc01d862448' + 'c91d561284cf3ec11dccd0127fa4fc9b' + '2b5b009af10ac715011fdd194532c2f6' + '945f90dc7e42a5f05559bc0a7085c8a6' + 'da82f8f11315cfa5d1312988d283b6b1' + '1b4edfd688ef9bfb1b1bccab9b8922e8' + '23cda04f494c76bd0eb8575b24b05f26' + '36cfb85d11164a489ab9616035827760' 'e36f95bd1d0ffaf52046e584a7094b56' - 'dc979053d76c9c769aa5a2391523a52d' - '03c9f2c8bdef2ef8fb42afcf47b46e05' - '0f661078e789d307e0856ca0cb09fd15' - '75926bb66e75c6d3158f4f4c5a74b59d' - '58942deeaac6fabb63e51eaf2b3d65b6' - '31ae582391c95d200b5337414e90da73' - 'dca0ab5e9a305f993ace0e519e6b6c4f' - '1350a969b3b5c9c85c3524dd7be232e8' - 'f173518598f8c482ac946f5ff566a521' - '6a761e17596562208cb6cd2ef6d413a2') + '7e337b36b8e6e13416d7f49d372b57e7') From e16331fd1a95e1dd61cb93aff22415528267afe4 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Sat, 18 Apr 2015 17:46:27 -0300 Subject: [PATCH 0904/2060] libiconv: Split into program and library packages. * libiconv: the libiconv and libcharset libraries. * iconv: the iconv program, depends on libiconv and gettext. --- mingw-w64-libiconv/PKGBUILD | 56 +++++++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 14 deletions(-) diff --git a/mingw-w64-libiconv/PKGBUILD b/mingw-w64-libiconv/PKGBUILD index 03114c38a7..972e58db16 100644 --- a/mingw-w64-libiconv/PKGBUILD +++ b/mingw-w64-libiconv/PKGBUILD @@ -2,19 +2,13 @@ # Contributor: Renato Silva _realname=libiconv -pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname} + ${MINGW_PACKAGE_PREFIX}-iconv) pkgver=1.14 -pkgrel=3 -pkgdesc='Libiconv is a conversion library' +pkgrel=4 groups=("${MINGW_PACKAGE_PREFIX}") arch=('any') url='http://www.gnu.org/software/libiconv/' - -# Some parts are GPL3, some parts are LGPL2, see README. -# TODO: what is the license for the package as a whole? Is LGPL 2.0 compatible -# with GPL3, so that GPL3 could be applied? -license=(partial:'GPL3' partial:'LGPL2') - source=("http://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-${pkgver}.tar.gz" 0001-compile-relocatable-in-gnulib.mingw.patch 0002-fix-cr-for-awk-in-configure.all.patch) @@ -22,6 +16,7 @@ md5sums=('e34509b1623cec449dfeb73d7ce9c6c6' '8818b7fe31286f589d180713329eb893' '9e955ee7135d39970a086451d4b87520') options=('!libtool' 'staticlibs') +makedepends=(${MINGW_PACKAGE_PREFIX}-gcc rsync) prepare() { cd $srcdir/${_realname}-${pkgver} @@ -30,7 +25,9 @@ prepare() { } build() { - cd $srcdir/${_realname}-${pkgver} + msg2 'Synchronizing build directory' + rsync --recursive --times "${srcdir}/${_realname}-${pkgver}"/* "${srcdir}/build-${CARCH}-${_realname}-${pkgver}" + cd "${srcdir}/build-${CARCH}-${_realname}-${pkgver}" ./configure --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -47,14 +44,21 @@ build() { } check() { - cd ${srcdir}/${_realname}-${pkgver} + cd "${srcdir}/build-${CARCH}-${_realname}-${pkgver}" make check } -package() { - cd ${srcdir}/${_realname}-${pkgver} +_package_libiconv() { + pkgdesc='Character encoding conversion library (mingw-w64)' + license=(LGPL2 documentation:'GPL3') # This is LGPL except for documentation, see README + + cd "${srcdir}/build-${CARCH}-${_realname}-${pkgver}" make install DESTDIR="${pkgdir}" - rm -f ${pkgdir}${MINGW_PREFIX}/lib/charset.alias + rm -fr "${pkgdir}${MINGW_PREFIX}"/bin/*.exe + rm -f "${pkgdir}${MINGW_PREFIX}"/lib/charset.alias + rm -fr "${pkgdir}${MINGW_PREFIX}"/share/locale + rm -f "${pkgdir}${MINGW_PREFIX}"/share/doc/libiconv/*.1.* + rm -fr "${pkgdir}${MINGW_PREFIX}"/share/man/man1 # Licenses install -Dm644 "${srcdir}/${_realname}-${pkgver}/README" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README" @@ -62,3 +66,27 @@ package() { install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" install -Dm644 "${srcdir}/${_realname}-${pkgver}/libcharset/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/libcharset/COPYING.LIB" } + +_package_iconv() { + pkgdesc='Character encoding conversion utility (mingw-w64)' + depends=("${MINGW_PACKAGE_PREFIX}-libiconv=${pkgver}-${pkgrel}" + "${MINGW_PACKAGE_PREFIX}-gettext") + license=(GPL3) + + cd "${srcdir}/build-${CARCH}-${_realname}-${pkgver}" + make install DESTDIR="${pkgdir}" + rm -f "${pkgdir}${MINGW_PREFIX}"/bin/*.dll + rm -fr "${pkgdir}${MINGW_PREFIX}"/include + rm -fr "${pkgdir}${MINGW_PREFIX}"/lib + rm -f "${pkgdir}${MINGW_PREFIX}"/share/doc/libiconv/*.3.* + rm -fr "${pkgdir}${MINGW_PREFIX}"/share/man/man3 + + # Licenses + install -Dm644 "${srcdir}/${_realname}-${pkgver}/README" "${pkgdir}${MINGW_PREFIX}/share/licenses/iconv/README" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/iconv/COPYING" +} + +package_mingw-w64-i686-iconv() { _package_iconv; } +package_mingw-w64-i686-libiconv() { _package_libiconv; } +package_mingw-w64-x86_64-iconv() { _package_iconv; } +package_mingw-w64-x86_64-libiconv() { _package_libiconv; } From 6d83b9e15d95c43c729b60b835cca36d7053eb09 Mon Sep 17 00:00:00 2001 From: Chilledheart Date: Thu, 23 Apr 2015 10:21:03 +0800 Subject: [PATCH 0905/2060] curl: Update to 7.42.0 --- mingw-w64-curl/0001-curl-relocation.patch | 17 ++++++++--------- mingw-w64-curl/PKGBUILD | 6 +++--- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/mingw-w64-curl/0001-curl-relocation.patch b/mingw-w64-curl/0001-curl-relocation.patch index 7531ec1df8..78b9664075 100644 --- a/mingw-w64-curl/0001-curl-relocation.patch +++ b/mingw-w64-curl/0001-curl-relocation.patch @@ -22,10 +22,10 @@ diff -urN curl-7.37.1.orig/lib/curl_config.h.in curl-7.37.1/lib/curl_config.h.in /* to disable cookies support */ #undef CURL_DISABLE_COOKIES -diff -urN curl-7.37.1.orig/lib/Makefile.inc curl-7.37.1/lib/Makefile.inc ---- curl-7.37.1.orig/lib/Makefile.inc 2014-06-11 18:52:29.000000000 +0100 -+++ curl-7.37.1/lib/Makefile.inc 2014-08-28 21:19:37.748635000 +0100 -@@ -46,7 +46,7 @@ +diff --git a/lib/Makefile.inc b/lib/Makefile.inc +--- a/lib/Makefile.inc ++++ b/lib/Makefile.inc +@@ -46,7 +46,7 @@ LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \ curl_ntlm_core.c curl_ntlm_msgs.c curl_sasl.c curl_multibyte.c \ hostcheck.c bundles.c conncache.c pipeline.c dotdot.c x509asn1.c \ http2.c curl_sasl_sspi.c smb.c curl_sasl_gssapi.c curl_endian.c \ @@ -34,13 +34,12 @@ diff -urN curl-7.37.1.orig/lib/Makefile.inc curl-7.37.1/lib/Makefile.inc LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \ formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \ -@@ -64,7 +64,8 @@ - curl_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h \ +@@ -65,7 +65,7 @@ LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \ curl_ntlm_msgs.h curl_sasl.h curl_multibyte.h hostcheck.h bundles.h \ conncache.h curl_setup_once.h multihandle.h setup-vms.h pipeline.h \ -- dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h -+ dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \ -+ pathtools.h + dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \ +- curl_printf.h ++ curl_printf.h pathtools.h LIB_RCFILES = libcurl.rc diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 16164f3960..999c4d703f 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -5,7 +5,7 @@ _variant=-openssl _realname=curl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=7.41.0 +pkgver=7.42.0 pkgrel=1 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') @@ -29,9 +29,9 @@ options=('staticlibs') source=("$url/download/${_realname}-$pkgver.tar.bz2"{,.asc} "0001-curl-relocation.patch" "0002-curl-mingw-enable-static.patch") -md5sums=('87e36f88b7a0f9683fa56f1334562c3a' +md5sums=('0a10174a0ea5105c46e92b51e1b311f8' 'SKIP' - '430527b6ecaf41a3023565b3a88ca59c' + '58520051c4ed77781d233c3fa40a5435' 'eac9e212e619490966ae47004bec547b') validpgpkeys=('914C533DF9B2ADA2204F586D78E11C6B279D5C91') # Daniel Stenberg From f53ddefa32d0175ebb471463015821269a2cedb3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 23 Apr 2015 07:18:49 +0300 Subject: [PATCH 0906/2060] libyaml: Update to 0.1.6 --- .../0002-libyaml-no-undefined.patch | 9 ++++ mingw-w64-libyaml/PKGBUILD | 47 ++++++++++--------- 2 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 mingw-w64-libyaml/0002-libyaml-no-undefined.patch diff --git a/mingw-w64-libyaml/0002-libyaml-no-undefined.patch b/mingw-w64-libyaml/0002-libyaml-no-undefined.patch new file mode 100644 index 0000000000..30c71238e7 --- /dev/null +++ b/mingw-w64-libyaml/0002-libyaml-no-undefined.patch @@ -0,0 +1,9 @@ +--- a/src/Makefile.am 2015-04-22 14:10:00.418785980 +0200 ++++ b/src/Makefile.am 2015-04-22 14:10:10.562836277 +0200 +@@ -1,4 +1,4 @@ +-AM_CPPFLAGS = -I$(top_srcdir)/include ++AM_CPPFLAGS = -I$(top_srcdir)/include -DYAML_DECLARE_EXPORT + lib_LTLIBRARIES = libyaml.la + libyaml_la_SOURCES = yaml_private.h api.c reader.c scanner.c parser.c loader.c writer.c emitter.c dumper.c +-libyaml_la_LDFLAGS = -release $(YAML_LT_RELEASE) -version-info $(YAML_LT_CURRENT):$(YAML_LT_REVISION):$(YAML_LT_AGE) ++libyaml_la_LDFLAGS = -no-undefined -release $(YAML_LT_RELEASE) -version-info $(YAML_LT_CURRENT):$(YAML_LT_REVISION):$(YAML_LT_AGE) diff --git a/mingw-w64-libyaml/PKGBUILD b/mingw-w64-libyaml/PKGBUILD index 10a251900a..ac00532f64 100644 --- a/mingw-w64-libyaml/PKGBUILD +++ b/mingw-w64-libyaml/PKGBUILD @@ -1,41 +1,44 @@ # Maintainer: Alexey Pavlov _realname=libyaml - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.1.4 -pkgrel=2 +pkgver=0.1.6 +pkgrel=1 pkgdesc="YAML 1.1 library (mingw-w64)" arch=('any') url="http://pyyaml.org/wiki/LibYAML" license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('staticlibs' 'strip') -source=("http://pyyaml.org/download/libyaml/yaml-$pkgver.tar.gz" -"0001-Proper-mingw-YAML_DECLARE-definition.patch") -md5sums=('36c852831d02cf90508c29852361d01b' - '62993ee836b420adc99bc42dff09436b') +source=(https://bitbucket.org/xi/libyaml/get/$pkgver.tar.bz2 + "0001-Proper-mingw-YAML_DECLARE-definition.patch" + "0002-libyaml-no-undefined.patch") +md5sums=('5b2d2f8c889fed55e98d6b1a0a89f607' + '62993ee836b420adc99bc42dff09436b' + 'fb8fcb80f89abeee56310b2568749276') prepare() { - cd "$srcdir/yaml-$pkgver" - patch -Np1 -i "$srcdir/0001-Proper-mingw-YAML_DECLARE-definition.patch" + cd ${srcdir}/xi-libyaml-* + patch -Np1 -i "$srcdir/0001-Proper-mingw-YAML_DECLARE-definition.patch" + patch -Np1 -i "$srcdir/0002-libyaml-no-undefined.patch" + + autoreconf -fiv } build() { - mkdir -p "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - "${srcdir}"/yaml-$pkgver/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} - make - gcc -shared src/.libs/*.o -o libyaml.dll -Xlinker --out-implib -Xlinker libyaml.dll.a + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + ../xi-libyaml-*/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + + make } package() { - cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - make DESTDIR="$pkgdir" install - install -Dm644 "libyaml.dll" "${pkgdir}${MINGW_PREFIX}/bin/libyaml.dll" - install -m644 "libyaml.dll.a" "${pkgdir}${MINGW_PREFIX}/lib/libyaml.dll.a" + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install } From df1d8cdef867b2f1b640644b8f482d6c10a592e6 Mon Sep 17 00:00:00 2001 From: Ivo Bellin Salarin Date: Thu, 23 Apr 2015 12:53:40 +0100 Subject: [PATCH 0907/2060] Include SSPI support in curl SSPI support is necessary e.g. when accessing a TFS repository and wants to use the credentials of the currently logged in user via Windows Authentication (a sort of Kerberos): git clone http://:@server/tfs/COLLECTION/TeamProject/_git/repo or git clone -c core.askpass=true http://server/tfs/COLLECTION/TeamProject/_git/repo This fixes https://github.com/git-for-windows/git/issues/92 Signed-off-by: Ivo Bellin Salarin --- mingw-w64-curl/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 999c4d703f..0764f6a8f2 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -6,7 +6,7 @@ _variant=-openssl _realname=curl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=7.42.0 -pkgrel=1 +pkgrel=2 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" @@ -77,6 +77,7 @@ build() { --without-random \ --enable-static \ --enable-shared \ + --enable-sspi \ "${_variant_config[@]}" \ "${extra_config[@]}" make From 50f77e5a09e4919dafe79f318db996c9f81c2f9d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 24 Apr 2015 18:59:09 +0300 Subject: [PATCH 0908/2060] gcc: WIP update to 5.1.0 --- ...nts-that-dont-need-it-in-pex-win32.c.patch | 86 ---- ...dont-ignore-native-system-header-dir.patch | 15 - mingw-w64-gcc/180-pr-57440.patch | 15 - mingw-w64-gcc/190-isl-0.13.patch | 437 ------------------ .../200-gcc-4.8-filename-output.patch | 17 - .../220-4.9.0-libatomic-cygwin.patch | 118 ----- ...mmintrin-header-cplusplus-compatible.patch | 24 + mingw-w64-gcc/PKGBUILD | 51 +- 8 files changed, 40 insertions(+), 723 deletions(-) delete mode 100644 mingw-w64-gcc/130-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch delete mode 100644 mingw-w64-gcc/180-pr-57440.patch delete mode 100644 mingw-w64-gcc/190-isl-0.13.patch delete mode 100644 mingw-w64-gcc/200-gcc-4.8-filename-output.patch delete mode 100644 mingw-w64-gcc/220-4.9.0-libatomic-cygwin.patch create mode 100644 mingw-w64-gcc/310-gcc-make-xmmintrin-header-cplusplus-compatible.patch diff --git a/mingw-w64-gcc/130-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch b/mingw-w64-gcc/130-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch deleted file mode 100644 index e2a3fae4e2..0000000000 --- a/mingw-w64-gcc/130-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch +++ /dev/null @@ -1,86 +0,0 @@ -diff -urN gcc-4.8.2.orig/libiberty/pex-win32.c gcc-4.8.2/libiberty/pex-win32.c ---- gcc-4.8.2.orig/libiberty/pex-win32.c 2013-12-21 20:21:26.446076700 +0000 -+++ gcc-4.8.2/libiberty/pex-win32.c 2013-12-22 02:56:54.800559500 +0000 -@@ -340,17 +340,26 @@ - char *p; - size_t cmdline_len; - int i, j, k; -+ int needs_quotes; - - cmdline_len = 0; - for (i = 0; argv[i]; i++) - { -- /* We quote every last argument. This simplifies the problem; -- we need only escape embedded double-quotes and immediately -+ /* We only quote arguments that contain spaces, \n \t \v or " characters -+ to prevent wasting 2 chars per argument of the CreateProcess 32k char limit -+ We need only escape embedded double-quotes and immediately - preceeding backslash characters. A sequence of backslach characters - that is not follwed by a double quote character will not be - escaped. */ -+ needs_quotes = 0; - for (j = 0; argv[i][j]; j++) - { -+ if (argv[i][j] == ' ' || argv[i][j] == '\n' || -+ argv[i][j] == '\t' || argv[i][j] == '"' ) -+ { -+ needs_quotes = 1; -+ } -+ - if (argv[i][j] == '"') - { - /* Escape preceeding backslashes. */ -@@ -362,16 +371,33 @@ - } - /* Trailing backslashes also need to be escaped because they will be - followed by the terminating quote. */ -- for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -- cmdline_len++; -+ if (needs_quotes) -+ { -+ for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -+ cmdline_len++; -+ } - cmdline_len += j; -- cmdline_len += 3; /* for leading and trailing quotes and space */ -+ cmdline_len += 1 + (needs_quotes<<1); /* for leading and trailing quotes and space */ - } - cmdline = XNEWVEC (char, cmdline_len); - p = cmdline; - for (i = 0; argv[i]; i++) - { -- *p++ = '"'; -+ needs_quotes = 0; -+ for (j = 0; argv[i][j]; j++) -+ { -+ if (argv[i][j] == ' ' || argv[i][j] == '\n' || -+ argv[i][j] == '\t' || argv[i][j] == '"' ) -+ { -+ needs_quotes = 1; -+ break; -+ } -+ } -+ -+ if (needs_quotes) -+ { -+ *p++ = '"'; -+ } - for (j = 0; argv[i][j]; j++) - { - if (argv[i][j] == '"') -@@ -382,9 +408,12 @@ - } - *p++ = argv[i][j]; - } -- for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -- *p++ = '\\'; -- *p++ = '"'; -+ if (needs_quotes) -+ { -+ for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--) -+ *p++ = '\\'; -+ *p++ = '"'; -+ } - *p++ = ' '; - } - p[-1] = '\0'; diff --git a/mingw-w64-gcc/160-mingw-dont-ignore-native-system-header-dir.patch b/mingw-w64-gcc/160-mingw-dont-ignore-native-system-header-dir.patch index 3d46aeb1a7..5f9a31a9a4 100644 --- a/mingw-w64-gcc/160-mingw-dont-ignore-native-system-header-dir.patch +++ b/mingw-w64-gcc/160-mingw-dont-ignore-native-system-header-dir.patch @@ -1,18 +1,3 @@ -diff -urN gcc-4.8.2.orig/gcc/config/i386/mingw32.h gcc-4.8.2/gcc/config/i386/mingw32.h ---- gcc-4.8.2.orig/gcc/config/i386/mingw32.h 2014-01-11 16:50:54.080767000 +0000 -+++ gcc-4.8.2/gcc/config/i386/mingw32.h 2014-01-11 17:03:42.743874800 +0000 -@@ -158,11 +158,6 @@ - #define STANDARD_STARTFILE_PREFIX_2 "" - #endif - --/* For native mingw-version we need to take care that NATIVE_SYSTEM_HEADER_DIR -- macro contains POSIX-style path. See bug 52947. */ --#undef NATIVE_SYSTEM_HEADER_DIR --#define NATIVE_SYSTEM_HEADER_DIR "/mingw/include" -- - /* Output STRING, a string representing a filename, to FILE. - We canonicalize it to be in Unix format (backslashes are replaced - forward slashes. */ diff -urN gcc-4.8.2.orig/gcc/config.gcc gcc-4.8.2/gcc/config.gcc --- gcc-4.8.2.orig/gcc/config.gcc 2014-01-11 16:50:54.401307700 +0000 +++ gcc-4.8.2/gcc/config.gcc 2014-01-11 17:03:21.806216000 +0000 diff --git a/mingw-w64-gcc/180-pr-57440.patch b/mingw-w64-gcc/180-pr-57440.patch deleted file mode 100644 index cbbeb1c11a..0000000000 --- a/mingw-w64-gcc/180-pr-57440.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: gcc-4.9.0/libgcc/gthr-posix.h -=================================================================== ---- a/libgcc/gthr-posix.h (Revision 210070) -+++ b/libgcc/gthr-posix.h (Arbeitskopie) -@@ -34,6 +34,10 @@ see the files COPYING3 and COPYING.RUNTIME respect - - #include - -+#if defined (_WIN32) && !defined (__CYGWIN__) -+#define _GTHREAD_USE_MUTEX_INIT_FUNC 1 -+#endif -+ - #if ((defined(_LIBOBJC) || defined(_LIBOBJC_WEAK)) \ - || !defined(_GTHREAD_USE_MUTEX_TIMEDLOCK)) - # include diff --git a/mingw-w64-gcc/190-isl-0.13.patch b/mingw-w64-gcc/190-isl-0.13.patch deleted file mode 100644 index d126861c87..0000000000 --- a/mingw-w64-gcc/190-isl-0.13.patch +++ /dev/null @@ -1,437 +0,0 @@ -Index: gcc/graphite-optimize-isl.c -=================================================================== ---- gcc/graphite-optimize-isl.c (revision 207298) -+++ gcc/graphite-optimize-isl.c (working copy) -@@ -260,6 +260,7 @@ - DimToVectorize can be devided by VectorWidth. The default VectorWidth is - currently constant and not yet target specific. This function does not reason - about parallelism. */ -+ - static isl_map * - getPrevectorMap (isl_ctx *ctx, int DimToVectorize, - int ScheduleDimensions, -@@ -273,8 +274,9 @@ - isl_aff *Aff; - int PointDimension; /* ip */ - int TileDimension; /* it */ -- isl_int VectorWidthMP; -+ isl_val *VectorWidthMP; - int i; -+ isl_ctx *ct; - - /* assert (0 <= DimToVectorize && DimToVectorize < ScheduleDimensions);*/ - -@@ -304,10 +306,10 @@ - Aff = isl_aff_zero_on_domain (LocalSpaceRange); - Aff = isl_aff_set_constant_si (Aff, VectorWidth); - Aff = isl_aff_set_coefficient_si (Aff, isl_dim_in, TileDimension, 1); -- isl_int_init (VectorWidthMP); -- isl_int_set_si (VectorWidthMP, VectorWidth); -- Aff = isl_aff_mod (Aff, VectorWidthMP); -- isl_int_clear (VectorWidthMP); -+ -+ ct = isl_aff_get_ctx (Aff); -+ VectorWidthMP = isl_val_int_from_si (ct, VectorWidth); -+ Aff = isl_aff_mod_val (Aff, VectorWidthMP); - Modulo = isl_pw_aff_zero_set (isl_pw_aff_from_aff (Aff)); - TilingMap = isl_map_intersect_range (TilingMap, Modulo); - -@@ -375,7 +375,7 @@ - { - for (i = ScheduleDimensions - 1 ; i >= 0 ; i--) - { -- if (isl_band_member_is_zero_distance (Band, i)) -+ if (isl_band_member_is_coincident (Band, i)) - { - isl_map *TileMap; - isl_union_map *TileUMap; -Index: gcc/graphite-sese-to-poly.c -=================================================================== ---- gcc/graphite-sese-to-poly.c (revision 207298) -+++ gcc/graphite-sese-to-poly.c (working copy) -@@ -26,8 +26,8 @@ - #include - #include - #include -+#include - #include --#include - #include - #endif - -@@ -67,7 +74,6 @@ - #include "graphite-poly.h" - #include "graphite-sese-to-poly.h" - -- - /* Assigns to RES the value of the INTEGER_CST T. */ - - static inline void -@@ -481,13 +487,11 @@ - int i; - int nb_iterators = pbb_dim_iter_domain (pbb); - int used_scattering_dimensions = nb_iterators * 2 + 1; -- isl_int val; -+ isl_val *val; - isl_space *dc, *dm; - - gcc_assert (scattering_dimensions >= used_scattering_dimensions); - -- isl_int_init (val); -- - dc = isl_set_get_space (pbb->domain); - dm = isl_space_add_dims (isl_space_from_domain (dc), - isl_dim_out, scattering_dimensions); -@@ -501,12 +505,10 @@ - isl_constraint *c = isl_equality_alloc - (isl_local_space_from_space (isl_map_get_space (pbb->schedule))); - -- if (0 != isl_aff_get_coefficient (static_sched, isl_dim_in, -- i / 2, &val)) -- gcc_unreachable (); -+ val = isl_aff_get_coefficient_val (static_sched, isl_dim_in, i / 2); - -- isl_int_neg (val, val); -- c = isl_constraint_set_constant (c, val); -+ val = isl_val_neg (val); -+ c = isl_constraint_set_constant_val (c, val); - c = isl_constraint_set_coefficient_si (c, isl_dim_out, i, 1); - pbb->schedule = isl_map_add_constraint (pbb->schedule, c); - } -@@ -520,8 +522,6 @@ - } - } - -- isl_int_clear (val); -- - pbb->transformed = isl_map_copy (pbb->schedule); - } - -@@ -700,12 +700,12 @@ - isl_local_space *ls = isl_local_space_from_space (isl_space_copy (space)); - isl_aff *aff = isl_aff_zero_on_domain (ls); - isl_set *dom = isl_set_universe (space); -- isl_int v; -+ isl_val *v; -+ isl_ctx *ct; - -- isl_int_init (v); -- isl_int_set_gmp (v, g); -- aff = isl_aff_add_constant (aff, v); -- isl_int_clear (v); -+ ct = isl_aff_get_ctx (aff); -+ v = isl_val_int_from_gmp (ct, g); -+ aff = isl_aff_add_constant_val (aff, v); - - return isl_pw_aff_alloc (dom, aff); - } -@@ -728,19 +728,17 @@ - - /* Compute pwaff mod 2^width. */ - -+extern isl_ctx *the_isl_ctx; -+ - static isl_pw_aff * - wrap (isl_pw_aff *pwaff, unsigned width) - { -- isl_int mod; -+ isl_val *mod; - -- isl_int_init (mod); -- isl_int_set_si (mod, 1); -- isl_int_mul_2exp (mod, mod, width); -+ mod = isl_val_int_from_ui(the_isl_ctx, width); -+ mod = isl_val_2exp (mod); -+ pwaff = isl_pw_aff_mod_val (pwaff, mod); - -- pwaff = isl_pw_aff_mod (pwaff, mod); -- -- isl_int_clear (mod); -- - return pwaff; - } - -@@ -995,11 +993,10 @@ - isl_space *space; - isl_constraint *c; - int pos = isl_set_dim (outer, isl_dim_set); -- isl_int v; -+ isl_val *v; - mpz_t g; - - mpz_init (g); -- isl_int_init (v); - - inner = isl_set_add_dims (inner, isl_dim_set, 1); - space = isl_set_get_space (inner); -@@ -1017,8 +1014,8 @@ - (isl_local_space_from_space (isl_space_copy (space))); - c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1); - tree_int_to_gmp (nb_iters, g); -- isl_int_set_gmp (v, g); -- c = isl_constraint_set_constant (c, v); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); -+ c = isl_constraint_set_constant_val (c, v); - inner = isl_set_add_constraint (inner, c); - } - -@@ -1072,9 +1069,9 @@ - c = isl_inequality_alloc - (isl_local_space_from_space (isl_space_copy (space))); - c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1); -- isl_int_set_gmp (v, g); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); - mpz_clear (g); -- c = isl_constraint_set_constant (c, v); -+ c = isl_constraint_set_constant_val (c, v); - inner = isl_set_add_constraint (inner, c); - } - else -@@ -1097,7 +1094,6 @@ - - isl_set_free (outer); - isl_space_free (space); -- isl_int_clear (v); - mpz_clear (g); - } - -@@ -1331,17 +1327,15 @@ - isl_space *space = isl_set_get_space (scop->context); - isl_constraint *c; - mpz_t g; -- isl_int v; -+ isl_val *v; - - c = isl_inequality_alloc (isl_local_space_from_space (space)); - mpz_init (g); -- isl_int_init (v); - tree_int_to_gmp (lb, g); -- isl_int_set_gmp (v, g); -- isl_int_neg (v, v); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); -+ v = isl_val_neg (v); - mpz_clear (g); -- c = isl_constraint_set_constant (c, v); -- isl_int_clear (v); -+ c = isl_constraint_set_constant_val (c, v); - c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, 1); - - scop->context = isl_set_add_constraint (scop->context, c); -@@ -1352,17 +1346,15 @@ - isl_space *space = isl_set_get_space (scop->context); - isl_constraint *c; - mpz_t g; -- isl_int v; -+ isl_val *v; - - c = isl_inequality_alloc (isl_local_space_from_space (space)); - - mpz_init (g); -- isl_int_init (v); - tree_int_to_gmp (ub, g); -- isl_int_set_gmp (v, g); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); - mpz_clear (g); -- c = isl_constraint_set_constant (c, v); -- isl_int_clear (v); -+ c = isl_constraint_set_constant_val (c, v); - c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, -1); - - scop->context = isl_set_add_constraint (scop->context, c); -Index: gcc/graphite-poly.c -=================================================================== ---- gcc/graphite-poly.c (revision 207298) -+++ gcc/graphite-poly.c (working copy) -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - #include - #endif -@@ -1029,11 +1037,8 @@ - isl_set *transdomain; - isl_space *dc; - isl_aff *aff; -- isl_int isllb, islub; -+ isl_val *isllb, *islub; - -- isl_int_init (isllb); -- isl_int_init (islub); -- - /* Map the iteration domain through the current scatter, and work - on the resulting set. */ - transdomain = isl_set_apply (isl_set_copy (pbb->domain), -@@ -1046,15 +1051,14 @@ - - /* And find the min/max for that function. */ - /* XXX isl check results? */ -- isl_set_min (transdomain, aff, &isllb); -- isl_set_max (transdomain, aff, &islub); -+ isllb = isl_set_min_val (transdomain, aff); -+ islub = isl_set_max_val (transdomain, aff); - -- isl_int_sub (islub, islub, isllb); -- isl_int_add_ui (islub, islub, 1); -- isl_int_get_gmp (islub, res); -+ islub = isl_val_sub (islub, isllb); -+ islub = isl_val_add_ui (islub, 1); -+ isl_val_get_num_gmp (islub, res); - -- isl_int_clear (isllb); -- isl_int_clear (islub); -+ isl_val_free (islub); - isl_aff_free (aff); - isl_set_free (transdomain); - } -Index: gcc/graphite-interchange.c -=================================================================== ---- gcc/graphite-interchange.c (revision 207635) -+++ gcc/graphite-interchange.c (working copy) -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include - #include - #endif -@@ -79,13 +87,13 @@ - isl_local_space *ls = isl_local_space_from_space (isl_map_get_space (map)); - unsigned offset, nsubs; - int i; -- isl_int size, subsize; -+ isl_ctx *ct; - -+ isl_val *size, *subsize, *size1; -+ - res = isl_equality_alloc (ls); -- isl_int_init (size); -- isl_int_set_ui (size, 1); -- isl_int_init (subsize); -- isl_int_set_ui (subsize, 1); -+ ct = isl_local_space_get_ctx (ls); -+ size = isl_val_int_from_ui (ct, 1); - - nsubs = isl_set_dim (pdr->extent, isl_dim_set); - /* -1 for the already included L dimension. */ -@@ -98,18 +106,17 @@ - isl_space *dc; - isl_aff *aff; - -- res = isl_constraint_set_coefficient (res, isl_dim_out, offset + i, size); -- -+ size1 = isl_val_copy (size); -+ res = isl_constraint_set_coefficient_val (res, isl_dim_out, offset + i, size); - dc = isl_set_get_space (pdr->extent); - aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); - aff = isl_aff_set_coefficient_si (aff, isl_dim_in, i, 1); -- isl_set_max (pdr->extent, aff, &subsize); -+ subsize = isl_set_max_val (pdr->extent, aff); - isl_aff_free (aff); -- isl_int_mul (size, size, subsize); -+ size = isl_val_mul (size1, subsize); - } - -- isl_int_clear (subsize); -- isl_int_clear (size); -+ isl_val_free (size); - - return res; - } -@@ -126,7 +133,7 @@ - isl_aff *aff; - isl_space *dc; - isl_constraint *lma, *c; -- isl_int islstride; -+ isl_val *islstride; - graphite_dim_t time_depth; - unsigned offset, nt; - unsigned i; -@@ -239,10 +246,9 @@ - aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); - aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset - 1, -1); - aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset + offset - 1, 1); -- isl_int_init (islstride); -- isl_set_max (set, aff, &islstride); -- isl_int_get_gmp (islstride, stride); -- isl_int_clear (islstride); -+ islstride = isl_set_max_val (set, aff); -+ isl_val_get_num_gmp (islstride, stride); -+ isl_val_free (islstride); - isl_aff_free (aff); - isl_set_free (set); - -Index: gcc/graphite-clast-to-gimple.c -=================================================================== ---- gcc/graphite-clast-to-gimple.c (revision 207298) -+++ gcc/graphite-clast-to-gimple.c (working copy) -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - #include - #endif -@@ -871,18 +879,18 @@ - static void - compute_bounds_for_param (scop_p scop, int param, mpz_t low, mpz_t up) - { -- isl_int v; -+ isl_val *v; - isl_aff *aff = isl_aff_zero_on_domain - (isl_local_space_from_space (isl_set_get_space (scop->context))); - - aff = isl_aff_add_coefficient_si (aff, isl_dim_param, param, 1); - -- isl_int_init (v); -- isl_set_min (scop->context, aff, &v); -- isl_int_get_gmp (v, low); -- isl_set_max (scop->context, aff, &v); -- isl_int_get_gmp (v, up); -- isl_int_clear (v); -+ v = isl_set_min_val (scop->context, aff); -+ isl_val_get_num_gmp (v, low); -+ isl_val_free (v); -+ v = isl_set_max_val (scop->context, aff); -+ isl_val_get_num_gmp (v, up); -+ isl_val_free (v); - isl_aff_free (aff); - } - -@@ -901,8 +909,7 @@ - isl_set *domain; - isl_aff *dimension; - isl_local_space *local_space; -- isl_int isl_value; -- enum isl_lp_result lp_result; -+ isl_val *isl_value; - - domain = isl_set_copy (isl_set_from_cloog_domain (loop->domain)); - local_space = isl_local_space_from_space (isl_set_get_space (domain)); -@@ -911,17 +918,12 @@ - isl_set_dim (domain, isl_dim_set) - 1, - 1); - -- isl_int_init (isl_value); -- -- lp_result = isl_set_min (domain, dimension, &isl_value); -- assert (lp_result == isl_lp_ok); -- isl_int_get_gmp (isl_value, low); -- -- lp_result = isl_set_max (domain, dimension, &isl_value); -- assert (lp_result == isl_lp_ok); -- isl_int_get_gmp (isl_value, up); -- -- isl_int_clear (isl_value); -+ isl_value = isl_set_min_val (domain, dimension); -+ isl_val_get_num_gmp (isl_value, low); -+ isl_val_free (isl_value); -+ isl_value = isl_set_max_val (domain, dimension); -+ isl_val_get_num_gmp (isl_value, up); -+ isl_val_free (isl_value); - isl_set_free (domain); - isl_aff_free (dimension); - } diff --git a/mingw-w64-gcc/200-gcc-4.8-filename-output.patch b/mingw-w64-gcc/200-gcc-4.8-filename-output.patch deleted file mode 100644 index 6951eb239b..0000000000 --- a/mingw-w64-gcc/200-gcc-4.8-filename-output.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- gcc/c-family/c-opts.c (revision 200330) -+++ gcc/c-family/c-opts.c (working copy) -@@ -1338,10 +1338,14 @@ c_finish_options (void) - - /* Give CPP the next file given by -include, if any. */ - static void - push_command_line_include (void) - { -+ // This can happen if disabled by -imacros for example. -+ if (include_cursor > deferred_count) -+ return; -+ - if (!done_preinclude) - { - done_preinclude = true; - if (flag_hosted && std_inc && !cpp_opts->preprocessed) - { diff --git a/mingw-w64-gcc/220-4.9.0-libatomic-cygwin.patch b/mingw-w64-gcc/220-4.9.0-libatomic-cygwin.patch deleted file mode 100644 index 67c1dfab1a..0000000000 --- a/mingw-w64-gcc/220-4.9.0-libatomic-cygwin.patch +++ /dev/null @@ -1,118 +0,0 @@ ---- origsrc/gcc-4.8-20130310/libatomic/Makefile.am 2013-01-14 12:16:23.000000000 -0600 -+++ src/gcc-4.8-20130310/libatomic/Makefile.am 2013-03-17 05:10:55.958313400 -0500 -@@ -66,7 +66,7 @@ - endif - libatomic_version_info = -version-info $(libtool_VERSION) - --libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) -+libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) $(lt_host_flags) - libatomic_la_SOURCES = gload.c gstore.c gcas.c gexch.c glfree.c lock.c init.c \ - fenv.c - ---- origsrc/gcc-4.8-20130310/libatomic/Makefile.in 2013-03-10 17:37:36.000000000 -0500 -+++ src/gcc-4.8-20130310/libatomic/Makefile.in 2013-03-17 05:13:32.732280300 -0500 -@@ -244,6 +244,7 @@ - libtool_VERSION = @libtool_VERSION@ - localedir = @localedir@ - localstatedir = @localstatedir@ -+lt_host_flags = @lt_host_flags@ - mandir = @mandir@ - mkdir_p = @mkdir_p@ - multi_basedir = @multi_basedir@ -@@ -285,7 +286,7 @@ - @LIBAT_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libatomic_version_dep = $(top_srcdir)/libatomic.map - @LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libatomic_version_dep = libatomic.map-sun - libatomic_version_info = -version-info $(libtool_VERSION) --libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) -+libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) $(lt_host_flags) - libatomic_la_SOURCES = gload.c gstore.c gcas.c gexch.c glfree.c lock.c init.c \ - fenv.c - ---- origsrc/gcc-4.8-20130310/libatomic/aclocal.m4 2013-03-10 17:37:36.000000000 -0500 -+++ src/gcc-4.8-20130310/libatomic/aclocal.m4 2013-03-17 05:09:13.598458700 -0500 -@@ -993,6 +993,7 @@ - m4_include([../config/acx.m4]) - m4_include([../config/depstand.m4]) - m4_include([../config/lead-dot.m4]) -+m4_include([../config/lthostflags.m4]) - m4_include([../config/multi.m4]) - m4_include([../config/override.m4]) - m4_include([../config/stdint.m4]) ---- origsrc/gcc-4.8-20130310/libatomic/configure 2013-03-10 17:37:36.000000000 -0500 -+++ src/gcc-4.8-20130310/libatomic/configure 2013-03-17 05:29:38.288507000 -0500 -@@ -627,6 +627,7 @@ - MAINTAINER_MODE_TRUE - enable_static - enable_shared -+lt_host_flags - CPP - OTOOL64 - OTOOL -@@ -11013,7 +11014,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11109 "configure" -+#line 11110 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11119,7 +11120,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11215 "configure" -+#line 11216 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11357,6 +11358,28 @@ - - - -+ -+ -+case $host in -+ *-cygwin* | *-mingw*) -+ # 'host' will be top-level target in the case of a target lib, -+ # we must compare to with_cross_host to decide if this is a native -+ # or cross-compiler and select where to install dlls appropriately. -+ if test -n "$with_cross_host" && -+ test x"$with_cross_host" != x"no"; then -+ lt_host_flags='-no-undefined -bindir "$(toolexeclibdir)"'; -+ else -+ lt_host_flags='-no-undefined -bindir "$(bindir)"'; -+ fi -+ ;; -+ *) -+ lt_host_flags= -+ ;; -+esac -+ -+ -+ -+ - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 ---- origsrc/gcc-4.8-20130310/libatomic/configure.ac 2013-01-14 12:16:23.000000000 -0600 -+++ src/gcc-4.8-20130310/libatomic/configure.ac 2013-03-17 05:29:30.655070400 -0500 -@@ -143,6 +143,7 @@ - - # Configure libtool - AM_PROG_LIBTOOL -+ACX_LT_HOST_FLAGS - AC_SUBST(enable_shared) - AC_SUBST(enable_static) - AM_MAINTAINER_MODE ---- origsrc/gcc-4.8-20130310/libatomic/configure.tgt 2013-01-14 12:16:23.000000000 -0600 -+++ src/gcc-4.8-20130310/libatomic/configure.tgt 2013-03-17 04:50:09.727033000 -0500 -@@ -108,7 +108,7 @@ - *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu \ - | *-*-netbsd* | *-*-freebsd* | *-*-openbsd* \ - | *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11* \ -- | *-*-darwin* | *-*-aix*) -+ | *-*-darwin* | *-*-aix* | *-*-cygwin* | *-*-mingw*) - # POSIX system. The OS is supported. - config_path="${config_path} posix" - ;; diff --git a/mingw-w64-gcc/310-gcc-make-xmmintrin-header-cplusplus-compatible.patch b/mingw-w64-gcc/310-gcc-make-xmmintrin-header-cplusplus-compatible.patch new file mode 100644 index 0000000000..b66b294ff2 --- /dev/null +++ b/mingw-w64-gcc/310-gcc-make-xmmintrin-header-cplusplus-compatible.patch @@ -0,0 +1,24 @@ +--- gcc-5.1.0/gcc/config/i386/xmmintrin.h.orig 2013-01-18 14:57:27.762645582 +0100 ++++ gcc-5.1.0/gcc/config/i386/xmmintrin.h 2013-01-18 14:58:27.604561940 +0100 +@@ -37,6 +37,10 @@ + /* Get _mm_malloc () and _mm_free (). */ + #include + ++#ifdef __cplusplus ++extern "C" { ++#endif ++ + /* The Intel API is flexible enough that we must allow aliasing with other + vector types, and their scalar components. */ + typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); +@@ -1241,6 +1245,10 @@ + (row3) = __builtin_ia32_movhlps (__t3, __t2); \ + } while (0) + ++#ifdef __cplusplus ++} ++#endif ++ + /* For backward source compatibility. */ + #ifdef __SSE2__ + # include diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 793328cddc..70fddfa8c3 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -12,8 +12,8 @@ pkgname=( "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc" ) -pkgver=4.9.2 -pkgrel=5 +pkgver=5.1.0 +pkgrel=1 pkgdesc="GCC for the MinGW-w64" arch=('any') url="http://gcc.gnu.org" @@ -23,10 +23,10 @@ depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-ada" "${MINGW_PACKAGE_PREFIX}-binutils" "${MINGW_PACKAGE_PREFIX}-crt" "${MINGW_PACKAGE_PREFIX}-headers" - "${MINGW_PACKAGE_PREFIX}-winpthreads" - "${MINGW_PACKAGE_PREFIX}-mpc" "${MINGW_PACKAGE_PREFIX}-cloog" + "${MINGW_PACKAGE_PREFIX}-mpc" "${MINGW_PACKAGE_PREFIX}-windows-default-manifest" + "${MINGW_PACKAGE_PREFIX}-winpthreads" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" 'lndir') #checkdepends=('dejagnu') @@ -36,19 +36,15 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- '000-relocatex-libintl-0.18.3.1.mingw.patch' '001-gcc-4.8-libstdc++export.patch' '002-gcc-4.7-stdthreads.patch' - '130-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch' '140-fix-for-windows-not-minding-non-existent-parent-dirs.patch' '150-windows-lrealpath-no-force-lowercase-nor-backslash.patch' '160-mingw-dont-ignore-native-system-header-dir.patch' '170-Add--mcrtdll-option-for-msvcrt-stubbing.patch' - '180-pr-57440.patch' - '190-isl-0.13.patch' - '200-gcc-4.8-filename-output.patch' '210-ktietz-libgomp.patch' - '220-4.9.0-libatomic-cygwin.patch' '230-build-more-gnattools.mingw.patch' '240-prettify-linking-no-undefined.mingw.patch' '300-libgomp-no-static.patch' + '310-gcc-make-xmmintrin-header-cplusplus-compatible.patch' 'enable-libitm.mingw.patch' 'enable-libsanitizer.mingw.patch' 'enable-shared-gnat.mingw.patch' @@ -56,28 +52,24 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- 'port-sanitizer-to-mingw.all.patch' 'enable-shared-gnat-implib.mingw.patch' '955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch') -md5sums=('4df8ee253b7f3863ad0b86359cd39c43' +md5sums=('d5525b1127d07d215960e6051c5da35e' '41635a40493dc79416db6627b2826b21' 'f6b5fb08ff06a7d60ee3280e14240bb2' '71cdb550528efcf2a5c9112464bfbabc' - '4ea64bea762b96cbe69986bd9ddc1532' 'c9967332940eb2b23820faeb48db6e72' '9e07f25b8813191eebd7fda684b1e2dd' - '60fdccbd072e2b2e724ff879d31ec57e' + '93cb2509ae8fdb518d0d6b9e2a7ae062' '3b8b5d9e8c20c0d75fa01a32215ada02' - '347336d5a318e5e8b3cde29e9174413c' - 'bf00d36f0d6bfc1fcb461c1b99461be4' - '40cb437805e2f7a006aa0d0c3098ab0f' 'f539e602715250bbdb8d2a6a25f1ccbe' - '9303e0f9cd9c601a1939792123677499' 'fde1098e5c71963ec2ed4c5b2c4217bd' '09bdad41515c8d353612f30c91b3bac2' '0a78aaac959e212acb24bb38271804cb' + '4a6e2e0f6424abf37e830d7f37fd3351' '27d5611996e209ba6f6a55ab417386e4' '5201bee23601ddfacde436461559f561' 'a56fb2cf67ae619f22e0d21f378ff704' '0f3fb8c9aab4bbb02a9923adc22c6109' - '52592c1d7c6031ff601ecfdf3942b940' + '4a6e2e0f6424abf37e830d7f37fd3351' '62cc23251ae746b5f39c2c7aef121e8f' '393ce6bf124d5b1ca0e38cbe0fc6eb51') @@ -107,10 +99,6 @@ prepare() { patch -p1 -i ${srcdir}/001-gcc-4.8-libstdc++export.patch patch -p1 -i ${srcdir}/002-gcc-4.7-stdthreads.patch - # Don't waste valuable commandline chars on double-quotes around "arguments" - # that don't need them. - patch -p1 -i ${srcdir}/130-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch - # Make Windows behave the same as Posix in the consideration of whether folder # "/exists/doesnt-exist/.." is a valid path.. in Posix, it isn't. patch -p1 -i ${srcdir}/140-fix-for-windows-not-minding-non-existent-parent-dirs.patch @@ -120,30 +108,21 @@ prepare() { patch -p1 -i ${srcdir}/150-windows-lrealpath-no-force-lowercase-nor-backslash.patch # Don't ignore values passed via --with-native-system-header-dir= - # patch -p1 -i ${srcdir}/160-mingw-dont-ignore-native-system-header-dir.patch + patch -p1 -i ${srcdir}/160-mingw-dont-ignore-native-system-header-dir.patch # Feature to allow overriding -lmsvcrt with a custom msvcrt dll, for example # a stub implementation that defers to the one already loaded by the process. patch -p1 -i ${srcdir}/170-Add--mcrtdll-option-for-msvcrt-stubbing.patch - patch -p1 -i ${srcdir}/180-pr-57440.patch - - # Compatibility with isl>=0.12.2 - patch -p0 -i ${srcdir}/190-isl-0.13.patch - - # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57653 - patch -p0 -i ${srcdir}/200-gcc-4.8-filename-output.patch - # Kai's libgomp fix. patch -p1 -i ${srcdir}/210-ktietz-libgomp.patch - # Enable building libatomic - patch -p2 -i ${srcdir}/220-4.9.0-libatomic-cygwin.patch - # Build aextra tools for Ada patch -p1 -i ${srcdir}/230-build-more-gnattools.mingw.patch patch -p1 -i ${srcdir}/240-prettify-linking-no-undefined.mingw.patch + + patch -p1 -i ${srcdir}/310-gcc-make-xmmintrin-header-cplusplus-compatible.patch patch -p1 -i ${srcdir}/enable-shared-gnat-implib.mingw.patch @@ -261,7 +240,7 @@ ENDFILE mkdir -p ${pkgdir}${MINGW_PREFIX}/bin cd ${srcdir}${MINGW_PREFIX} - cp bin/{libatomic*,libgcc*,libgomp*,libquadmath*,libssp*,libstdc*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/{libatomic*,libgcc*,libgomp*,libquadmath*,libssp*,libstdc*,libvtv*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ } package_mingw-w64-gcc() { @@ -279,6 +258,7 @@ package_mingw-w64-gcc() { cp bin/gcc-nm.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp bin/gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp bin/gcov.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcov-tool.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp bin/c++.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp bin/g++.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp bin/${MINGW_CHOST}-c++.exe ${pkgdir}${MINGW_PREFIX}/bin/ @@ -302,9 +282,10 @@ package_mingw-w64-gcc() { cp lib/gcc/${MINGW_CHOST}/${pkgver}/libatomic* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcc* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcov.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgomp.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgomp*.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/libquadmath.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/libssp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libvtv* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ cp lib/gcc/${MINGW_CHOST}/${pkgver}/lto*.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ #mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib From 7d47ded87166bde997c5eebc3757cff0e32eae3a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 24 Apr 2015 20:54:42 +0300 Subject: [PATCH 0909/2060] gcc: Fix checksums --- mingw-w64-gcc/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 70fddfa8c3..909cd2e075 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -69,7 +69,7 @@ md5sums=('d5525b1127d07d215960e6051c5da35e' '5201bee23601ddfacde436461559f561' 'a56fb2cf67ae619f22e0d21f378ff704' '0f3fb8c9aab4bbb02a9923adc22c6109' - '4a6e2e0f6424abf37e830d7f37fd3351' + '52592c1d7c6031ff601ecfdf3942b940' '62cc23251ae746b5f39c2c7aef121e8f' '393ce6bf124d5b1ca0e38cbe0fc6eb51') From 34e392d759edb9bbd9642f1f2d6a2cee55b6a076 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 24 Apr 2015 22:20:28 +0300 Subject: [PATCH 0910/2060] emacs-git: Update to git SHA [18a78f8] --- mingw-w64-emacs-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-emacs-git/PKGBUILD b/mingw-w64-emacs-git/PKGBUILD index 479e703ab3..3bd97d6790 100644 --- a/mingw-w64-emacs-git/PKGBUILD +++ b/mingw-w64-emacs-git/PKGBUILD @@ -2,7 +2,7 @@ _realname='emacs' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r121030.a2940cd +pkgver=r121216.18a78f8 pkgrel=1 pkgdesc="The extensible, customizable, self-documenting, real-time display editor (mingw-w64)" url="http://www.gnu.org/software/${_realname}/" From 76a04bc55b63a147fd969a5e54119064f1e0ab54 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 25 Apr 2015 10:30:41 +0300 Subject: [PATCH 0911/2060] sip: Update to 4.16.7 --- mingw-w64-sip/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-sip/PKGBUILD b/mingw-w64-sip/PKGBUILD index 686e509600..8a220dab71 100644 --- a/mingw-w64-sip/PKGBUILD +++ b/mingw-w64-sip/PKGBUILD @@ -3,7 +3,7 @@ _realname=sip pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=4.16.6 +pkgver=4.16.7 pkgrel=1 pkgdesc="Tool to create Python bindings for C and C++ libraries" arch=('any') @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" source=("http://downloads.sourceforge.net/project/pyqt/${_realname}/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.gz" "0001-mingw-python.patch") -md5sums=('44e87c4c98206f465d3f07f4caa0c903' +md5sums=('32abc003980599d33ffd789734de4c36' '0f812155edb59dd9dcb7bd187c5646ae') prepare() { From e0d5f3cb01276fd204d01dff5fab98832a744040 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 25 Apr 2015 10:31:11 +0300 Subject: [PATCH 0912/2060] openocd-git: Update to 0.9.0-rc1 --- mingw-w64-openocd-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-openocd-git/PKGBUILD b/mingw-w64-openocd-git/PKGBUILD index ff1a47bd75..fe70fa18ec 100644 --- a/mingw-w64-openocd-git/PKGBUILD +++ b/mingw-w64-openocd-git/PKGBUILD @@ -5,7 +5,7 @@ _realname=openocd pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides="${MINGW_PACKAGE_PREFIX}-${_realname}" conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.8.0.r268.ga9c90a0 +pkgver=0.9.0.rc1.r1.gabd7ad0 pkgrel=1 pkgdesc="OpenOCD - Open On-Chip Debugger (mingw-w64)" arch=('any') From 35834f61a223c663a8a9e98ebe219fc4e4e09eae Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 26 Apr 2015 09:24:52 +0300 Subject: [PATCH 0913/2060] mesa: Update to 10.5.4 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index b71a1259d6..02bd122769 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,7 +2,7 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.5.3 +pkgver=10.5.4 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('72aaa2604b38135a3a37c37cd967284d' +md5sums=('26644437b6447fb3dbae50714a019797' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From 292f4dd3de5cce2e9e002870d204bb4ee9517a5d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 26 Apr 2015 09:25:46 +0300 Subject: [PATCH 0914/2060] ntldd: Update to git SHA [e7622f6] --- mingw-w64-ntldd-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-ntldd-git/PKGBUILD b/mingw-w64-ntldd-git/PKGBUILD index 72fda12071..8718c8b543 100644 --- a/mingw-w64-ntldd-git/PKGBUILD +++ b/mingw-w64-ntldd-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=ntldd pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r6.fbb52f1 +pkgver=r15.e7622f6 pkgrel=1 pkgdesc="Tracks dependencides in Windows PE binaries (mingw-w64)" arch=('any') From ead31bfba01024ce949f232ecd5b8f73bd37bd37 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sun, 26 Apr 2015 10:43:34 +0200 Subject: [PATCH 0915/2060] editrights: New package --- mingw-w64-editrights/PKGBUILD | 33 ++++++++++++++++++++++++++ mingw-w64-editrights/uncygwinize.patch | 31 ++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 mingw-w64-editrights/PKGBUILD create mode 100644 mingw-w64-editrights/uncygwinize.patch diff --git a/mingw-w64-editrights/PKGBUILD b/mingw-w64-editrights/PKGBUILD new file mode 100644 index 0000000000..a9d1435812 --- /dev/null +++ b/mingw-w64-editrights/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: David Macek + +_realname=editrights +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.03 +pkgrel=1 +pkgdesc="Edit special privileges of Windows accounts (mingw-w64)" +arch=('any') +url="http://cygwin.org/" +license=('custom') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +source=("http://cygwin.cybermirror.org/release/$_realname/$_realname-$pkgver-1-src.tar.xz" + 'uncygwinize.patch') +md5sums=('f24c3c33c30516f13fc84b765020e1e7' + 'ad733a23daeb1d46e98c80d334929846') + +prepare(){ + tar -xjf $_realname-$pkgver-1.src/$_realname-$pkgver.tar.bz2 + patch -p1 -i "${srcdir}/uncygwinize.patch" +} + +build() { + cd $_realname + make clean + make CC=${MINGW_CHOST}-gcc +} + +package() { + cd $_realname + make DESTDIR="$pkgdir" PREFIX=${MINGW_PREFIX} install + install -Dm0644 LICENCE ${pkgdir}${MINGW_PREFIX}/share/licenses/editrights/LICENCE + mv ${pkgdir}${MINGW_PREFIX}/share/doc/{Cygwin,Msys} +} diff --git a/mingw-w64-editrights/uncygwinize.patch b/mingw-w64-editrights/uncygwinize.patch new file mode 100644 index 0000000000..75a1574021 --- /dev/null +++ b/mingw-w64-editrights/uncygwinize.patch @@ -0,0 +1,31 @@ +--- src/editrights/main.c.orig 2014-10-31 19:49:43.000000000 +0100 ++++ src/editrights/main.c 2015-04-26 10:37:44.997236000 +0200 +@@ -38,8 +38,12 @@ + #include + #include + #include ++ ++#ifdef __CYGWIN__ + #include + #include ++#endif ++ + #include + #include + #include +@@ -177,6 +181,7 @@ + exit (RETURN_ERROR); + } + ++#ifdef __CYGWIN__ + /* Convert Cygwin username to windows username. */ + if ((pw = getpwnam (optUser)) != NULL) + { +@@ -190,6 +195,7 @@ + else if ((gr = getgrnam (optUser)) != NULL) + sid_str = gr->gr_passwd; + else ++#endif + { + WCHAR wuser[strlen (optUser) * 2 + 1]; + DWORD sid_size = 128, dom_size = 256; From b9ac0e37e5384bdef944ab8dc7f1d640cc354ee3 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 26 Apr 2015 11:24:44 +0200 Subject: [PATCH 0916/2060] gnome-calculator: i18n now works. --- mingw-w64-gnome-calculator/001-win.patch | 178 ++++++++++++++--------- mingw-w64-gnome-calculator/PKGBUILD | 9 +- 2 files changed, 113 insertions(+), 74 deletions(-) diff --git a/mingw-w64-gnome-calculator/001-win.patch b/mingw-w64-gnome-calculator/001-win.patch index 99b63741c9..c3ac891e5a 100644 --- a/mingw-w64-gnome-calculator/001-win.patch +++ b/mingw-w64-gnome-calculator/001-win.patch @@ -1,5 +1,5 @@ --- ./m4/intltool.m4.orig 2015-03-22 19:20:14.000000000 +0100 -+++ ./m4/intltool.m4 2015-03-26 13:46:45.996450400 +0100 ++++ ./m4/intltool.m4 2015-04-15 21:58:52.592827100 +0200 @@ -155,31 +155,6 @@ # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) @@ -33,7 +33,7 @@ ]) --- ./Makefile.am.orig 2015-01-29 16:28:18.000000000 +0100 -+++ ./Makefile.am 2015-03-26 13:46:46.046485300 +0100 ++++ ./Makefile.am 2015-04-15 21:58:52.598827600 +0200 @@ -1,4 +1,4 @@ -SUBDIRS = po src search-provider data help +SUBDIRS = po src search-provider data @@ -41,7 +41,7 @@ # Temporary fix for JHBuild, see https://bugzilla.gnome.org/show_bug.cgi?id=641652 ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 --- ./po/Makefile.in.in.orig 2015-03-22 19:20:14.000000000 +0100 -+++ ./po/Makefile.in.in 2015-03-26 13:46:46.049487500 +0100 ++++ ./po/Makefile.in.in 2015-04-15 21:58:52.605827300 +0200 @@ -33,8 +33,7 @@ datadir = @datadir@ datarootdir = @datarootdir@ @@ -73,7 +73,7 @@ check: all $(GETTEXT_PACKAGE).pot --- ./search-provider/Makefile.am.orig 2015-01-29 16:28:18.000000000 +0100 -+++ ./search-provider/Makefile.am 2015-03-26 13:46:46.051488900 +0100 ++++ ./search-provider/Makefile.am 2015-04-15 21:58:52.610827700 +0200 @@ -1,6 +1,12 @@ +# The valac command is always executed in the sources directory, not the build +# directory. If $(top_srcdir) is used, it will be relative to the build directory. @@ -83,43 +83,53 @@ libexec_PROGRAMS = gnome-calculator-search-provider gnome_calculator_search_provider_SOURCES = \ -+ $(vapidir)/windows.vapi \ ++ $(top_srcdir)/src/windows.c \ search-provider.vala gnome_calculator_search_provider_VALAFLAGS = \ --- ./search-provider/search-provider.vala.orig 2015-01-29 16:28:18.000000000 +0100 -+++ ./search-provider/search-provider.vala 2015-03-26 13:46:46.053490400 +0100 -@@ -23,11 +23,13 @@ ++++ ./search-provider/search-provider.vala 2015-04-15 21:58:52.617828200 +0200 +@@ -9,6 +9,9 @@ + * license. + */ + ++extern string locale_get_tsep (); ++extern string locale_get_decimal (); ++ + [DBus (name = "org.gnome.Shell.SearchProvider2")] + public class SearchProvider : Object + { +@@ -23,11 +26,13 @@ { int exit_status; - var tsep_string = Posix.nl_langinfo (Posix.NLItem.THOUSEP); + string tsep_string; -+ Windows.GetLocaleInfo(0x0400, 0x0000000f, out tsep_string, 4); ++ tsep_string = locale_get_tsep (); if (tsep_string == null || tsep_string == "") tsep_string = " "; - var decimal = Posix.nl_langinfo (Posix.NLItem.RADIXCHAR); + string decimal; -+ Windows.GetLocaleInfo(0x0400, 0x0000000e, out decimal, 4); ++ decimal = locale_get_decimal (); if (decimal == null) decimal = ""; --- ./src/gcalccmd.vala.orig 2015-01-29 16:28:18.000000000 +0100 -+++ ./src/gcalccmd.vala 2015-03-26 13:46:46.055491800 +0100 ++++ ./src/gcalccmd.vala 2015-04-15 21:58:52.623829100 +0200 @@ -15,11 +15,13 @@ static void solve (string equation) { - var tsep_string = Posix.nl_langinfo (Posix.NLItem.THOUSEP); + string tsep_string; -+ Windows.GetLocaleInfo(0x0400, 0x0000000f, out tsep_string, 4); ++ tsep_string = locale_get_tsep (); if (tsep_string == null || tsep_string == "") tsep_string = " "; - var decimal = Posix.nl_langinfo (Posix.NLItem.RADIXCHAR); + string decimal; -+ Windows.GetLocaleInfo(0x0400, 0x0000000e, out decimal, 4); ++ decimal = locale_get_decimal (); if (decimal == null) decimal = ""; @@ -131,7 +141,7 @@ + return 0; } --- ./src/gnome-calculator.vala.orig 2015-01-29 16:28:18.000000000 +0100 -+++ ./src/gnome-calculator.vala 2015-03-26 13:46:46.058494000 +0100 ++++ ./src/gnome-calculator.vala 2015-04-15 21:58:52.630828500 +0200 @@ -142,17 +142,20 @@ { /* NOTE: Is not translated so can be easily parsed */ @@ -146,13 +156,13 @@ - var tsep_string = Posix.nl_langinfo (Posix.NLItem.THOUSEP); + + string tsep_string; -+ Windows.GetLocaleInfo(0x0400, 0x0000000f, out tsep_string, 4); ++ tsep_string = locale_get_tsep (); if (tsep_string == null || tsep_string == "") tsep_string = " "; - var decimal = Posix.nl_langinfo (Posix.NLItem.RADIXCHAR); + string decimal; -+ Windows.GetLocaleInfo(0x0400, 0x0000000e, out decimal, 4); ++ decimal = locale_get_decimal (); if (decimal == null) decimal = ""; @@ -190,7 +200,7 @@ Intl.textdomain (GETTEXT_PACKAGE); --- ./src/Makefile.am.orig 2015-01-29 16:28:18.000000000 +0100 -+++ ./src/Makefile.am 2015-03-26 13:46:46.060512900 +0100 ++++ ./src/Makefile.am 2015-04-15 21:58:52.638829100 +0200 @@ -1,6 +1,10 @@ bin_PROGRAMS = gnome-calculator gcalccmd noinst_PROGRAMS = test-number test-equation test-serializer @@ -202,89 +212,119 @@ TESTS = test-number test-equation test-serializer AM_CPPFLAGS = \ -@@ -17,6 +21,7 @@ - $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(top_srcdir)/data/ --generate-source $< +@@ -40,6 +44,7 @@ + function-manager.vala \ + math-function-popup.vala \ + math-history.vala \ ++ windows.c \ + $(BUILT_SOURCES) - gnome_calculator_SOURCES = \ -+ $(vapidir)/windows.vapi \ - config.vapi \ - mpfr.vapi \ - gnome-calculator.vala \ -@@ -55,6 +60,7 @@ - -lgmp + gnome_calculator_VALAFLAGS = \ +@@ -66,7 +71,8 @@ + serializer.vala \ + unit.vala \ + math-function.vala \ +- function-manager.vala ++ function-manager.vala \ ++ windows.c - gcalccmd_SOURCES = \ -+ $(vapidir)/windows.vapi \ - config.vapi \ - mpfr.vapi \ - gcalccmd.vala \ -@@ -80,6 +86,7 @@ - -lgmp - - test_number_SOURCES = \ -+ $(vapidir)/windows.vapi \ - config.vapi \ + gcalccmd_VALAFLAGS = \ + --target-glib 2.32 \ +@@ -84,7 +90,8 @@ mpfr.vapi \ test-number.vala \ -@@ -99,6 +106,7 @@ - -lgmp + number.vala \ +- serializer.vala ++ serializer.vala \ ++ windows.c - test_equation_SOURCES = \ -+ $(vapidir)/windows.vapi \ - config.vapi \ - mpfr.vapi \ - test-equation.vala \ -@@ -124,6 +132,7 @@ - -lgmp + test_number_VALAFLAGS = \ + --target-glib 2.32 \ +@@ -110,7 +117,8 @@ + serializer.vala \ + unit.vala \ + math-function.vala \ +- function-manager.vala ++ function-manager.vala \ ++ windows.c - test_serializer_SOURCES = \ -+ $(vapidir)/windows.vapi \ - config.vapi \ + test_equation_VALAFLAGS = \ + --target-glib 2.32 \ +@@ -128,7 +136,8 @@ mpfr.vapi \ test-serializer.vala \ + number.vala \ +- serializer.vala ++ serializer.vala \ ++ windows.c + + test_serializer_VALAFLAGS = \ + --target-glib 2.32 \ --- ./src/math-equation.vala.orig 2015-01-29 16:28:18.000000000 +0100 -+++ ./src/math-equation.vala 2015-03-26 13:46:46.063497600 +0100 ++++ ./src/math-equation.vala 2015-04-15 21:58:52.645829600 +0200 @@ -477,7 +477,8 @@ get_bounds (out start, out end); var text = get_text (start, end, false); - var tsep_string = Posix.nl_langinfo (Posix.NLItem.THOUSEP); + string tsep_string; -+ Windows.GetLocaleInfo(0x0400, 0x0000000f, out tsep_string, 4); ++ tsep_string = locale_get_tsep (); if (tsep_string == null || tsep_string == "") tsep_string = " "; text = text.replace (tsep_string, ""); --- ./src/serializer.vala.orig 2015-01-29 16:28:18.000000000 +0100 -+++ ./src/serializer.vala 2015-03-26 14:37:21.466912900 +0100 -@@ -37,15 +37,18 @@ ++++ ./src/serializer.vala 2015-04-15 21:58:52.653830600 +0200 +@@ -9,6 +9,9 @@ + * license. + */ + ++extern string locale_get_tsep (); ++extern string locale_get_decimal (); ++ + public enum DisplayFormat + { + AUTOMATIC, +@@ -37,12 +40,15 @@ public Serializer (DisplayFormat format, int number_base, int trailing_digits) { - var radix_string = Posix.nl_langinfo (Posix.NLItem.RADIXCHAR); -+ /*string radix_string; -+ Windows.GetLocaleInfo(0x0400, 0x0000000e, out radix_string, 4); ++ string radix_string; ++ radix_string = locale_get_decimal (); if (radix_string != null && radix_string != "") radix = radix_string.locale_to_utf8 (-1, null, null).get_char (0); -- else -+ else*/ + else radix = '.'; - var tsep_string = Posix.nl_langinfo (Posix.NLItem.THOUSEP); + -+ /*string tsep_string; -+ Windows.GetLocaleInfo(0x0400, 0x0000000f, out tsep_string, 4); ++ string tsep_string; ++ tsep_string = locale_get_tsep (); if (tsep_string != null && tsep_string != "") tsep = tsep_string.locale_to_utf8 (-1, null, null).get_char (0); -- else -+ else*/ - tsep = ' '; - tsep_count = 3; - ---- ./vapi/windows.vapi.orig 2015-03-26 13:46:45.987442900 +0100 -+++ ./vapi/windows.vapi 2015-03-26 13:46:46.068501200 +0100 -@@ -1 +1,6 @@ -+[CCode (lower_case_cprefix="", cheader_filename="winnls.h")] -+namespace Windows + else +--- ./src/windows.c.orig 2015-04-15 21:58:52.433817800 +0200 ++++ ./src/windows.c 2015-04-15 22:04:42.098180500 +0200 +@@ -1 +1,23 @@ ++#include ++#include ++ ++char * ++locale_get_tsep () +{ -+ public int GetLocaleInfo (int locale, int LCType, out string lpLCData, int cchData); ++ char tmp[4]; ++ ++ GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, (LPTSTR)&tmp, 4); ++ ++ return strdup(&tmp); ++} ++ ++char * ++locale_get_decimal () ++{ ++ char tmp[4]; ++ ++ GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, (LPTSTR)&tmp, 4); ++ ++ return strdup(&tmp); +} diff --git a/mingw-w64-gnome-calculator/PKGBUILD b/mingw-w64-gnome-calculator/PKGBUILD index a4bc481ca8..6ebb7bb400 100644 --- a/mingw-w64-gnome-calculator/PKGBUILD +++ b/mingw-w64-gnome-calculator/PKGBUILD @@ -3,10 +3,10 @@ _realname=gnome-calculator pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="GNOME desktop calculator (mingw-w64)" -options=(!strip staticlibs) +options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-gtksourceview3" @@ -22,13 +22,12 @@ install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch) sha256sums=('bbc2fbc4692e30a2b12755bf79a4dce6288b5d419f81331d738a47da27b71519' - '93ffcebe9de2ed50c3b57453cad082690eed39616876bf77b0445cc75ac45a7f') + '28cb31e68274fc2c30d0495ee3d5f240f3803e1140633cb08dafa1a7c4a5b08e') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - mkdir vapi - echo "" > vapi/windows.vapi + echo "" > src/windows.c patch -b -V simple -p1 -i ${srcdir}/001-win.patch From 35b8be1059b056fd0e857b423a9fd25cfb3dabab Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 26 Apr 2015 19:58:55 +0200 Subject: [PATCH 0917/2060] libgdata: update to 0.17.1. --- mingw-w64-libgdata/PKGBUILD | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgdata/PKGBUILD b/mingw-w64-libgdata/PKGBUILD index 2b83933ad2..f239fb83d5 100644 --- a/mingw-w64-libgdata/PKGBUILD +++ b/mingw-w64-libgdata/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgdata pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.16.1 +pkgver=0.17.1 pkgrel=1 arch=('any') pkgdesc="Library for accessing GData webservices (mingw-w64)" @@ -31,7 +31,7 @@ source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_real 0002-symbols.patch 0003-wsock.patch 0004-localedir-fix.patch) -sha256sums=('8740e071ecb2ae0d2a4b9f180d2ae5fdf9dc4c41e7ff9dc7e057f62442800827' +sha256sums=('5ef1c0f246f60812c43e3a7d077442afc872913a03f3a5eb789698dc2319bd95' '2184839b01d19afebf10b8ca91c79682b834c9e812e0fdeb683c69b851689d1f' '3f9d5f53a2d1be337686a83d3b33f111e294dcbc4f78ed1facbfb048f6c5973a' 'ed4c9c441ee3bf4a5279c5d212b2c1116ce443763151b71975611406310575df' @@ -39,6 +39,7 @@ sha256sums=('8740e071ecb2ae0d2a4b9f180d2ae5fdf9dc4c41e7ff9dc7e057f62442800827' prepare() { cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.all.patch patch -p1 -i ${srcdir}/0002-symbols.patch patch -p1 -i ${srcdir}/0003-wsock.patch @@ -51,6 +52,9 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -64,4 +68,6 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From cfc9eec99ae729429e4ddbcb11ee05a6c2d04942 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 24 Apr 2015 00:53:19 +0100 Subject: [PATCH 0918/2060] qtcreator: Update to 3.4.0 --- mingw-w64-qtcreator/PKGBUILD | 17 ++++++++++------- ...efine-QBS_INSTALL_DIR-as-relative-path.patch | 4 ++-- ...YS2-autotools-run-shell-scripts-via-sh.patch | 9 ++++----- ...llow-non-Automake-Makefile-in-projects.patch | 14 -------------- 4 files changed, 16 insertions(+), 28 deletions(-) diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 070aafa2bb..178c1807ea 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -5,10 +5,10 @@ _realname=qt-creator pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" # WIP for 3.? __pre= -_base_ver=3.3.2 +_base_ver=3.4.0 #_base_ver=3.2.2 pkgver=${_base_ver}${_pre} -pkgrel=3 +pkgrel=1 pkgdesc='Cross-patform IDE (mingw-w64)' url='http://qt-project.org' install=qt-creator-${CARCH}.install @@ -46,7 +46,7 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v qt-creator-3.3.0-abi-msys-is-Windows.patch qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch) noextract=(${_pkgfqn}.tar.gz) -sha256sums=('6ef76d23c778a58caffb487b8bc6a192defa2d5dd5fab1ecf8eb70d53ccfb98a' +sha256sums=('b80baf5be9b0421b3d951a8a0eb411a65cf008f4c753f5a80d205e90fa4fe112' '18f59946054e667b56276f53ec544d4786c3c249fee6c0bd9b0b565ed4b7cf2d' '6c34b2bad7a24c5922d237dc67fcced14e83d65116f77cd84aa80ae2ebd4aad9' '2f45ff4c2806c90c36f19da07707fef213e50fbf8825fe169e1bce6349efacee' @@ -54,11 +54,11 @@ sha256sums=('6ef76d23c778a58caffb487b8bc6a192defa2d5dd5fab1ecf8eb70d53ccfb98a' '12aef50d3c90dfd5bcd9ac98ebd89d29a23d2420e8adf9c65d818ee2219ef21b' '45b9fc82c7a9364450420920adcdb04a3b67eeb96f64733166da757a5ab91013' '96c14f54577bf6cadf5c12018745666a9e99cd8d6a876c29a28b13599a8cb368' - '18479a8a8eac63ae7e8dac2f3b18a3345f8e78779cc8b56fde4dc58f0fd4ada6' + '68133c95b70c1b54e55ab4c8b31023afe4ab9a33667e4510bda64c828b95e91e' '1a1738379b0413484fd1ff3521b6bc85d034f5f964311d963dd044b4966b274b' '8244e66b1604d10951f1b32be3269ef453c47e9eb1b80c30be79a124b697ae0a' - 'f1e8c0d64d4255748c5f3dedf55783105ebb1c86c2bf353ef4ebfb074d428cf5' - '809c0499b881866424fa4d3e0d2e3ce402b127221c070a35da4b135818a79eeb' + '2915cd4bf08643057129c26c0ce28caee14586fdf6a164a96e36ce0b37966427' + '0b0bba8bda0fd8247563e3827f58fe73baed17b09b9de6ea28375b7f1afa3ee1' '79fc4d2ef02ff8f458b1b330c683c2a86397f056369c90176a9ddbeba3b719fd' 'c4cae708825102d538e1ecb9a88ecb216d366feb779553a2e91f97c4b78f8427' 'b4cf07e2772b2ec6710ee7df6463feddb4195d65fa59e6c6095fbc0cb240417e') @@ -78,6 +78,8 @@ prepare() { # Attempting to upstream: https://codereview.qt-project.org/#/c/94366/ patch -p1 -i "${srcdir}"/0001-autotools-Remove-broken-unchanged-check.patch # patch -p1 -i "${srcdir}"/0002-autotools-Use-summaryInWorkdir.patch + [ -d ${srcdir}/${_pkgfqn}.old ] && rm -rf ${srcdir}/${_pkgfqn}.old + cp -rf ${srcdir}/${_pkgfqn} ${srcdir}/${_pkgfqn}.old # Already upstreamed: https://codereview.qt-project.org/#/c/94248/ # patch -p1 -i "${srcdir}"/0001-debugger-Don-t-skip-first-char-after-This-GDB-was-co.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch @@ -124,8 +126,9 @@ package() { # Please leave this block here as I use # it to quickly make and test changes. # return 0 +# Debugger ProjectExplorer # ALLGOOD="yes" -# PLUGINS="Debugger ProjectExplorer AutotoolsProjectManager" +# PLUGINS="AutotoolsProjectManager" # for PLUGIN in $PLUGINS; do # PLUGINLC=$(echo ${PLUGIN} | tr 'A-Z' 'a-z') # pushd src/build-x86_64-w64-mingw32/src/plugins/${PLUGINLC} diff --git a/mingw-w64-qtcreator/qt-creator-3.2.0-Define-QBS_INSTALL_DIR-as-relative-path.patch b/mingw-w64-qtcreator/qt-creator-3.2.0-Define-QBS_INSTALL_DIR-as-relative-path.patch index bdfd8bff0d..5c60e5da44 100644 --- a/mingw-w64-qtcreator/qt-creator-3.2.0-Define-QBS_INSTALL_DIR-as-relative-path.patch +++ b/mingw-w64-qtcreator/qt-creator-3.2.0-Define-QBS_INSTALL_DIR-as-relative-path.patch @@ -31,13 +31,13 @@ + } return Core::ICore::resourcePath() + QLatin1String("/qbs"); } - + @@ -167,7 +173,7 @@ { const QString qbsInstallDir = QLatin1String(QBS_INSTALL_DIR); if (!qbsInstallDir.isEmpty()) - return qbsInstallDir + QLatin1String("/lib/"); + return resourcesBaseDirectory() + QLatin1String("/lib/"); - if (Utils::HostOsInfo::isMacHost()) + if (HostOsInfo::isMacHost()) return QDir::cleanPath(QCoreApplication::applicationDirPath() + QLatin1String("/../PlugIns")); diff --git a/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch b/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch index d1543e75c9..9dde3a7698 100644 --- a/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch +++ b/mingw-w64-qtcreator/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch @@ -84,9 +84,9 @@ diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanag m_summaryText = param.summary(displayName()); emit updateSummary(); } -diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro ---- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-14 19:57:23.592716100 +0100 -+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-14 19:57:53.840557100 +0100 +diff -urN qt-creator-opensource-src-3.4.0.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro qt-creator-opensource-src-3.4.0/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro +--- qt-creator-opensource-src-3.4.0.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-21 16:56:56.000000000 +0100 ++++ qt-creator-opensource-src-3.4.0/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-24 00:37:06.163960200 +0100 @@ -14,7 +14,8 @@ autoreconfstep.h\ configurestep.h\ @@ -97,14 +97,13 @@ diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanag SOURCES = autotoolsprojectplugin.cpp\ autotoolsopenprojectwizard.cpp\ autotoolsmanager.cpp\ -@@ -28,5 +29,6 @@ +@@ -28,4 +29,5 @@ autoreconfstep.cpp\ configurestep.cpp\ makefileparserthread.cpp\ - makefileparser.cpp + makefileparser.cpp\ + shellprocessparameters.cpp - RESOURCES += autotoolsproject.qrc diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs --- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2015-04-14 19:57:23.592716100 +0100 +++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2015-04-14 19:57:53.873561300 +0100 diff --git a/mingw-w64-qtcreator/qt-creator-3.2.0-autotools-allow-non-Automake-Makefile-in-projects.patch b/mingw-w64-qtcreator/qt-creator-3.2.0-autotools-allow-non-Automake-Makefile-in-projects.patch index cac027d8ea..4d5b2e19a3 100644 --- a/mingw-w64-qtcreator/qt-creator-3.2.0-autotools-allow-non-Automake-Makefile-in-projects.patch +++ b/mingw-w64-qtcreator/qt-creator-3.2.0-autotools-allow-non-Automake-Makefile-in-projects.patch @@ -15,20 +15,6 @@ diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanag m_runAutogen = true; } -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.mimetypes.xml qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.mimetypes.xml ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.mimetypes.xml 2014-08-18 08:52:02.000000000 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.mimetypes.xml 2014-09-01 23:57:49.459715700 +0100 -@@ -2,7 +2,8 @@ - - - -- Automake based Makefile -- -+ Autoconf or Automake based Makefile -+ -+ - - diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/makefileparser.cpp qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/makefileparser.cpp --- qt-creator-opensource-src-3.2.0.orig/src/plugins/autotoolsprojectmanager/makefileparser.cpp 2014-08-18 08:52:02.000000000 +0100 +++ qt-creator-opensource-src-3.2.0/src/plugins/autotoolsprojectmanager/makefileparser.cpp 2014-09-01 23:16:11.672850400 +0100 From d0f5452e3f52212df4ccf1d1fe174924b8a6202c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 24 Apr 2015 01:27:19 +0100 Subject: [PATCH 0919/2060] qbs + qbs-git: Updating to 1.3.4, 1.4 and beyond A bit WIP since I'm going to fix the fact that qconfig.pri generated by configure.exe doesn't set QMAKE_DEFAULT_LIBDIRS or QMAKE_DEFAULT_INCDIRS --- ...osinfo.h-to-installed-headers.1.3.4.patch} | 4 +- ...ostosinfo.h-to-installed-headers.1.4.patch | 10 +- ...osinfo.h-to-installed-headers.master.patch | 27 + ...h => 0002-WIP-Xcode-generator.1.3.4.patch} | 34 +- .../0002-WIP-Xcode-generator.1.4.patch | 5242 ++++++++------ ... => 0002-WIP-Xcode-generator.master.patch} | 5244 ++++++++------ ...-add-generator-header-installs.1.3.4.patch | 12 +- ...3-add-generator-header-installs.1.4.patch} | 20 +- ...dd-generator-header-installs.master.patch} | 22 +- ...ad-of-.a-for-mingw-import-lib.master.patch | 8 +- ...d-of-.a-for-mingw-import-libr.1.3.4.patch} | 8 +- ...d-of-.a-for-mingw-import-librar.1.4.patch} | 10 +- ...lchains-Pretend-msys-is-mingw.1.3.4.patch} | 8 +- ...toolchains-Pretend-msys-is-mingw.1.4.patch | 12 +- ...chains-Pretend-msys-is-mingw.master.patch} | 12 +- mingw-w64-qbs-git/PKGBUILD | 90 +- ...ostosinfo.h-to-installed-headers.1.4.patch | 27 + .../0002-WIP-Xcode-generator.1.4.patch | 6367 +++++++++++++++++ ...03-add-generator-header-installs.1.4.patch | 37 + ...ad-of-.a-for-mingw-import-librar.1.4.patch | 25 + ...toolchains-Pretend-msys-is-mingw.1.4.patch | 36 + .../0006-Add-some-missing-files.1.4.patch | 186 + mingw-w64-qbs/PKGBUILD | 58 +- 23 files changed, 13345 insertions(+), 4154 deletions(-) rename mingw-w64-qbs-git/{0001-add-hostosinfo.h-to-installed-headers.1.3.patch => 0001-add-hostosinfo.h-to-installed-headers.1.3.4.patch} (91%) rename mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch => mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch (79%) create mode 100644 mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.master.patch rename mingw-w64-qbs-git/{0002-WIP-Xcode-generator.1.3.patch => 0002-WIP-Xcode-generator.1.3.4.patch} (99%) rename mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch => mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch (50%) rename mingw-w64-qbs-git/{0001-WIP-Xcode-generator.master.patch => 0002-WIP-Xcode-generator.master.patch} (50%) rename mingw-w64-qbs/0003-add-generator-header-installs.1.3.2.patch => mingw-w64-qbs-git/0003-add-generator-header-installs.1.3.4.patch (84%) rename mingw-w64-qbs-git/{0003-add-generator-header-installs.1.3.patch => 0003-add-generator-header-installs.1.4.patch} (73%) rename mingw-w64-qbs-git/{0002-add-generator-header-installs.master.patch => 0003-add-generator-header-installs.master.patch} (69%) rename mingw-w64-qbs/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch => mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-lib.master.patch (84%) rename mingw-w64-qbs-git/{0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch => 0004-Use-.dll.a-instead-of-.a-for-mingw-import-libr.1.3.4.patch} (84%) rename mingw-w64-qbs-git/{0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch => 0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch} (78%) rename mingw-w64-qbs-git/{0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch => 0005-setup-toolchains-Pretend-msys-is-mingw.1.3.4.patch} (91%) rename mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch => mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch (84%) rename mingw-w64-qbs-git/{0004-setup-toolchains-Pretend-msys-is-mingw.master.patch => 0005-setup-toolchains-Pretend-msys-is-mingw.master.patch} (84%) create mode 100644 mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.1.4.patch create mode 100644 mingw-w64-qbs/0002-WIP-Xcode-generator.1.4.patch create mode 100644 mingw-w64-qbs/0003-add-generator-header-installs.1.4.patch create mode 100644 mingw-w64-qbs/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch create mode 100644 mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch create mode 100644 mingw-w64-qbs/0006-Add-some-missing-files.1.4.patch diff --git a/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.3.patch b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.3.4.patch similarity index 91% rename from mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.3.patch rename to mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.3.4.patch index e2047425fc..bdc099b7ab 100644 --- a/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.3.patch +++ b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.3.4.patch @@ -1,4 +1,4 @@ -From 18207eec90e31476de31695deff3d34d06e78dd7 Mon Sep 17 00:00:00 2001 +From 18e4b077535a0519f1c4ab459d238a57bc91dcdb Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 12:19:52 +0100 Subject: [PATCH 1/5] add hostosinfo.h to installed headers @@ -23,5 +23,5 @@ index 87c45b9..50775ce 100644 $$PWD/preferences.h \ $$PWD/profile.h \ -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch similarity index 79% rename from mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch rename to mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch index ec798b3a92..6981984c14 100644 --- a/mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch +++ b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch @@ -1,4 +1,4 @@ -From 59a55dac90256bf657283ef80223871dcadef493 Mon Sep 17 00:00:00 2001 +From e697af051da85ea4000e9fa1cb96e4f9add0fff3 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 12:19:52 +0100 Subject: [PATCH 1/5] add hostosinfo.h to installed headers @@ -11,17 +11,17 @@ src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp 1 file changed, 1 insertion(+) diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index a05efa8..5b497aa 100644 +index 35bc9c8..431eb27 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -75,6 +75,7 @@ all_tests { +@@ -85,6 +85,7 @@ qbs_enable_unit_tests { $$PWD/cleanoptions.h \ $$PWD/codelocation.h \ $$PWD/error.h \ + $$PWD/hostosinfo.h \ $$PWD/settings.h \ + $$PWD/settingsmodel.h \ $$PWD/preferences.h \ - $$PWD/profile.h \ -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.master.patch b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.master.patch new file mode 100644 index 0000000000..36691ea986 --- /dev/null +++ b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.master.patch @@ -0,0 +1,27 @@ +From 24a55fbd478ac7821da02e3cc5e3c868b2df3303 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 18 Aug 2014 12:19:52 +0100 +Subject: [PATCH 1/5] add hostosinfo.h to installed headers + +.. if you build Qt Creator with system qbs then this +header is needed by: +src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp +--- + src/lib/corelib/tools/tools.pri | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri +index 35bc9c8..431eb27 100644 +--- a/src/lib/corelib/tools/tools.pri ++++ b/src/lib/corelib/tools/tools.pri +@@ -85,6 +85,7 @@ qbs_enable_unit_tests { + $$PWD/cleanoptions.h \ + $$PWD/codelocation.h \ + $$PWD/error.h \ ++ $$PWD/hostosinfo.h \ + $$PWD/settings.h \ + $$PWD/settingsmodel.h \ + $$PWD/preferences.h \ +-- +2.3.5 + diff --git a/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.3.patch b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.3.4.patch similarity index 99% rename from mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.3.patch rename to mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.3.4.patch index 186f0b22be..690febd4b5 100644 --- a/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.3.patch +++ b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.3.4.patch @@ -1,4 +1,4 @@ -From 8d583142c9ac91f132922ce94e45776c433b0200 Mon Sep 17 00:00:00 2001 +From 38fdea0e2175a597a7b46a5c0f8e24d5fecd65e1 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Sat, 29 Nov 2014 18:12:45 +0000 Subject: [PATCH 2/5] WIP: Xcode generator. @@ -136,7 +136,7 @@ Change-Id: I5ce5cc3148aa801d75a1f64b778fe7334de43af9 create mode 100644 src/plugins/generator/xcode/xcodesimplegenerator.h diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp -index 11cec27..c386862 100644 +index d85c66d..f68320e 100644 --- a/src/app/qbs/commandlinefrontend.cpp +++ b/src/app/qbs/commandlinefrontend.cpp @@ -39,6 +39,7 @@ @@ -188,7 +188,7 @@ index 11cec27..c386862 100644 { try { diff --git a/src/app/qbs/commandlinefrontend.h b/src/app/qbs/commandlinefrontend.h -index 34bd69b..ffcca85 100644 +index f7b4d47..401dee4 100644 --- a/src/app/qbs/commandlinefrontend.h +++ b/src/app/qbs/commandlinefrontend.h @@ -80,6 +80,7 @@ private: @@ -200,7 +200,7 @@ index 34bd69b..ffcca85 100644 void updateTimestamps(); void connectBuildJobs(); diff --git a/src/app/qbs/parser/command.cpp b/src/app/qbs/parser/command.cpp -index 98410b2..6955183 100644 +index e97d301..bf70d06 100644 --- a/src/app/qbs/parser/command.cpp +++ b/src/app/qbs/parser/command.cpp @@ -188,6 +188,41 @@ QList ResolveCommand::supportedOptions() const @@ -246,7 +246,7 @@ index 98410b2..6955183 100644 { return Tr::tr("Build (parts of) a project. This is the default command."); diff --git a/src/app/qbs/parser/command.h b/src/app/qbs/parser/command.h -index 1f479ad..ca7923e 100644 +index 4cfa67f..2c88876 100644 --- a/src/app/qbs/parser/command.h +++ b/src/app/qbs/parser/command.h @@ -81,6 +81,19 @@ private: @@ -270,7 +270,7 @@ index 1f479ad..ca7923e 100644 { public: diff --git a/src/app/qbs/parser/commandlineoption.cpp b/src/app/qbs/parser/commandlineoption.cpp -index 97d2a3e..9b2bbfe 100644 +index e138c95..cb4fbea 100644 --- a/src/app/qbs/parser/commandlineoption.cpp +++ b/src/app/qbs/parser/commandlineoption.cpp @@ -115,6 +115,29 @@ void BuildDirectoryOption::doParse(const QString &representation, QStringList &i @@ -304,7 +304,7 @@ index 97d2a3e..9b2bbfe 100644 QString VerboseOption::description(CommandType command) const diff --git a/src/app/qbs/parser/commandlineoption.h b/src/app/qbs/parser/commandlineoption.h -index 26475fd..1200c35 100644 +index 40a8b90..6e3c664 100644 --- a/src/app/qbs/parser/commandlineoption.h +++ b/src/app/qbs/parser/commandlineoption.h @@ -54,7 +54,8 @@ public: @@ -340,7 +340,7 @@ index 26475fd..1200c35 100644 { public: diff --git a/src/app/qbs/parser/commandlineoptionpool.cpp b/src/app/qbs/parser/commandlineoptionpool.cpp -index 587f755..90142f0 100644 +index bd8895f..5b98ebf 100644 --- a/src/app/qbs/parser/commandlineoptionpool.cpp +++ b/src/app/qbs/parser/commandlineoptionpool.cpp @@ -98,6 +98,9 @@ CommandLineOption *CommandLineOptionPool::getOption(CommandLineOption::Type type @@ -364,7 +364,7 @@ index 587f755..90142f0 100644 + } // namespace qbs diff --git a/src/app/qbs/parser/commandlineoptionpool.h b/src/app/qbs/parser/commandlineoptionpool.h -index 209f415..2d96523 100644 +index 13c2af2..93ff3d5 100644 --- a/src/app/qbs/parser/commandlineoptionpool.h +++ b/src/app/qbs/parser/commandlineoptionpool.h @@ -61,6 +61,7 @@ public: @@ -376,7 +376,7 @@ index 209f415..2d96523 100644 private: mutable QHash m_options; diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp -index 57fe70f..28c11c4 100644 +index 7ee9537..f333c70 100644 --- a/src/app/qbs/parser/commandlineparser.cpp +++ b/src/app/qbs/parser/commandlineparser.cpp @@ -41,6 +41,7 @@ @@ -411,7 +411,7 @@ index 57fe70f..28c11c4 100644 << commandPool.getCommand(BuildCommandType) << commandPool.getCommand(CleanCommandType) diff --git a/src/app/qbs/parser/commandlineparser.h b/src/app/qbs/parser/commandlineparser.h -index bc5f188..91964da 100644 +index 3ed9dbb..4f5af96 100644 --- a/src/app/qbs/parser/commandlineparser.h +++ b/src/app/qbs/parser/commandlineparser.h @@ -38,6 +38,7 @@ @@ -431,7 +431,7 @@ index bc5f188..91964da 100644 bool force() const; bool forceTimestampCheck() const; diff --git a/src/app/qbs/parser/commandpool.cpp b/src/app/qbs/parser/commandpool.cpp -index f0451a8..b895b6d 100644 +index edf7013..9f261e0 100644 --- a/src/app/qbs/parser/commandpool.cpp +++ b/src/app/qbs/parser/commandpool.cpp @@ -50,6 +50,9 @@ qbs::Command *CommandPool::getCommand(CommandType type) const @@ -445,7 +445,7 @@ index f0451a8..b895b6d 100644 command = new BuildCommand(m_optionPool); break; diff --git a/src/app/qbs/parser/commandtype.h b/src/app/qbs/parser/commandtype.h -index 7c3a09d..e16c23d 100644 +index 83b2ae5..5c9b6e6 100644 --- a/src/app/qbs/parser/commandtype.h +++ b/src/app/qbs/parser/commandtype.h @@ -35,7 +35,7 @@ namespace qbs { @@ -600,7 +600,7 @@ index 0000000..7f8ba97 + +#endif // QBS_GENERATOR_H diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp -index 87a58fd..aecc89c 100644 +index 040bc1b..694208b 100644 --- a/src/lib/corelib/api/project.cpp +++ b/src/lib/corelib/api/project.cpp @@ -57,6 +57,7 @@ @@ -620,7 +620,7 @@ index 87a58fd..aecc89c 100644 qRegisterMetaType("qbs::ErrorInfo"); diff --git a/src/lib/corelib/qbs.h b/src/lib/corelib/qbs.h -index 4c39c3d..da3965e 100644 +index 26b5eab..c1e0b4f 100644 --- a/src/lib/corelib/qbs.h +++ b/src/lib/corelib/qbs.h @@ -30,6 +30,7 @@ @@ -1010,7 +1010,7 @@ index 0000000..4f6351b + +#endif diff --git a/src/lib/corelib/tools/scannerpluginmanager.cpp b/src/lib/corelib/tools/scannerpluginmanager.cpp -index 7a455de..28c80bb 100644 +index bed8d42..7f76ef3 100644 --- a/src/lib/corelib/tools/scannerpluginmanager.cpp +++ b/src/lib/corelib/tools/scannerpluginmanager.cpp @@ -81,6 +81,9 @@ void ScannerPluginManager::loadPlugins(const QStringList &pluginPaths, const Log @@ -5139,5 +5139,5 @@ index d3823ae..9fe2e6b 100644 -SUBDIRS = scanner +SUBDIRS = generator scanner -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch similarity index 50% rename from mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch rename to mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch index fccebcf16d..efa0acef2b 100644 --- a/mingw-w64-qbs/0002-WIP-Xcode-generator.1.3.2.patch +++ b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch @@ -1,1167 +1,218 @@ -From 02087c6e60eb5a921b0d16c512c8ee2da6acaa82 Mon Sep 17 00:00:00 2001 +From dccc816f8a2d59955688d20d5b3931b508eae134 Mon Sep 17 00:00:00 2001 From: Jake Petroules -Date: Sat, 29 Nov 2014 18:12:45 +0000 +Date: Wed, 18 Feb 2015 09:05:29 -0800 Subject: [PATCH 2/5] WIP: Xcode generator. Task-number: QBS-32 - Change-Id: I5ce5cc3148aa801d75a1f64b778fe7334de43af9 --- - src/app/qbs/commandlinefrontend.cpp | 27 ++ - src/app/qbs/commandlinefrontend.h | 1 + - src/app/qbs/parser/command.cpp | 35 +++ - src/app/qbs/parser/command.h | 13 + - src/app/qbs/parser/commandlineoption.cpp | 23 ++ - src/app/qbs/parser/commandlineoption.h | 18 +- - src/app/qbs/parser/commandlineoptionpool.cpp | 8 + - src/app/qbs/parser/commandlineoptionpool.h | 1 + - src/app/qbs/parser/commandlineparser.cpp | 10 + - src/app/qbs/parser/commandlineparser.h | 2 + - src/app/qbs/parser/commandpool.cpp | 3 + - src/app/qbs/parser/commandtype.h | 2 +- - src/lib/corelib/api/api.pri | 2 + - src/lib/corelib/api/generator.cpp | 50 ++++ - src/lib/corelib/api/generator.h | 61 +++++ - src/lib/corelib/api/project.cpp | 2 + - src/lib/corelib/qbs.h | 2 + - src/lib/corelib/tools/generateoptions.cpp | 91 +++++++ - src/lib/corelib/tools/generateoptions.h | 58 +++++ - src/lib/corelib/tools/generatorpluginmanager.cpp | 128 ++++++++++ - src/lib/corelib/tools/generatorpluginmanager.h | 69 ++++++ - src/lib/corelib/tools/scannerpluginmanager.cpp | 3 + - src/lib/corelib/tools/tools.pri | 4 + - src/plugins/generator/generator.pro | 2 + - src/plugins/generator/generatorplugin.h | 46 ++++ - src/plugins/generator/xcode/main.cpp | 45 ++++ - .../generator/xcode/opensteppropertylist.cpp | 186 ++++++++++++++ - src/plugins/generator/xcode/opensteppropertylist.h | 71 ++++++ - src/plugins/generator/xcode/pbx.h | 53 ++++ - src/plugins/generator/xcode/pbxbuildfile.cpp | 72 ++++++ - src/plugins/generator/xcode/pbxbuildfile.h | 64 +++++ - src/plugins/generator/xcode/pbxbuildphase.cpp | 77 ++++++ - src/plugins/generator/xcode/pbxbuildphase.h | 60 +++++ - src/plugins/generator/xcode/pbxcontainer.cpp | 53 ++++ - src/plugins/generator/xcode/pbxcontainer.h | 57 +++++ - src/plugins/generator/xcode/pbxfileencoding.h | 57 +++++ - src/plugins/generator/xcode/pbxfilereference.cpp | 73 ++++++ - src/plugins/generator/xcode/pbxfilereference.h | 54 ++++ - src/plugins/generator/xcode/pbxfiletype.cpp | 41 +++ - src/plugins/generator/xcode/pbxfiletype.h | 47 ++++ - src/plugins/generator/xcode/pbxgroup.cpp | 114 +++++++++ - src/plugins/generator/xcode/pbxgroup.h | 69 ++++++ - src/plugins/generator/xcode/pbxlegacytarget.cpp | 127 ++++++++++ - src/plugins/generator/xcode/pbxlegacytarget.h | 73 ++++++ - src/plugins/generator/xcode/pbxnativetarget.cpp | 83 +++++++ - src/plugins/generator/xcode/pbxnativetarget.h | 61 +++++ - src/plugins/generator/xcode/pbxobject.cpp | 69 ++++++ - src/plugins/generator/xcode/pbxobject.h | 59 +++++ - src/plugins/generator/xcode/pbxproducttype.cpp | 56 +++++ - src/plugins/generator/xcode/pbxproducttype.h | 52 ++++ - src/plugins/generator/xcode/pbxproject.cpp | 218 ++++++++++++++++ - src/plugins/generator/xcode/pbxproject.h | 80 ++++++ - src/plugins/generator/xcode/pbxreference.cpp | 107 ++++++++ - src/plugins/generator/xcode/pbxreference.h | 70 ++++++ - .../generator/xcode/pbxsourcesbuildphase.cpp | 47 ++++ - src/plugins/generator/xcode/pbxsourcesbuildphase.h | 49 ++++ - src/plugins/generator/xcode/pbxsourcetree.cpp | 50 ++++ - src/plugins/generator/xcode/pbxsourcetree.h | 52 ++++ - src/plugins/generator/xcode/pbxtarget.cpp | 139 +++++++++++ - src/plugins/generator/xcode/pbxtarget.h | 86 +++++++ - .../generator/xcode/xcbuildconfiguration.cpp | 82 ++++++ - src/plugins/generator/xcode/xcbuildconfiguration.h | 67 +++++ - .../generator/xcode/xcconfigurationlist.cpp | 142 +++++++++++ - src/plugins/generator/xcode/xcconfigurationlist.h | 63 +++++ - src/plugins/generator/xcode/xcode.pro | 58 +++++ - src/plugins/generator/xcode/xcodegenerator.cpp | 96 +++++++ - src/plugins/generator/xcode/xcodegenerator.h | 53 ++++ - .../generator/xcode/xcodenativegenerator.cpp | 136 ++++++++++ - src/plugins/generator/xcode/xcodenativegenerator.h | 53 ++++ - .../generator/xcode/xcodesimplegenerator.cpp | 275 +++++++++++++++++++++ - src/plugins/generator/xcode/xcodesimplegenerator.h | 53 ++++ - src/plugins/plugins.pro | 2 +- - 72 files changed, 4409 insertions(+), 3 deletions(-) - create mode 100644 src/lib/corelib/api/generator.cpp - create mode 100644 src/lib/corelib/api/generator.h - create mode 100644 src/lib/corelib/tools/generateoptions.cpp - create mode 100644 src/lib/corelib/tools/generateoptions.h - create mode 100644 src/lib/corelib/tools/generatorpluginmanager.cpp - create mode 100644 src/lib/corelib/tools/generatorpluginmanager.h - create mode 100644 src/plugins/generator/generator.pro - create mode 100644 src/plugins/generator/generatorplugin.h - create mode 100644 src/plugins/generator/xcode/main.cpp - create mode 100644 src/plugins/generator/xcode/opensteppropertylist.cpp - create mode 100644 src/plugins/generator/xcode/opensteppropertylist.h - create mode 100644 src/plugins/generator/xcode/pbx.h - create mode 100644 src/plugins/generator/xcode/pbxbuildfile.cpp - create mode 100644 src/plugins/generator/xcode/pbxbuildfile.h - create mode 100644 src/plugins/generator/xcode/pbxbuildphase.cpp - create mode 100644 src/plugins/generator/xcode/pbxbuildphase.h - create mode 100644 src/plugins/generator/xcode/pbxcontainer.cpp - create mode 100644 src/plugins/generator/xcode/pbxcontainer.h - create mode 100644 src/plugins/generator/xcode/pbxfileencoding.h - create mode 100644 src/plugins/generator/xcode/pbxfilereference.cpp - create mode 100644 src/plugins/generator/xcode/pbxfilereference.h - create mode 100644 src/plugins/generator/xcode/pbxfiletype.cpp - create mode 100644 src/plugins/generator/xcode/pbxfiletype.h - create mode 100644 src/plugins/generator/xcode/pbxgroup.cpp - create mode 100644 src/plugins/generator/xcode/pbxgroup.h - create mode 100644 src/plugins/generator/xcode/pbxlegacytarget.cpp - create mode 100644 src/plugins/generator/xcode/pbxlegacytarget.h - create mode 100644 src/plugins/generator/xcode/pbxnativetarget.cpp - create mode 100644 src/plugins/generator/xcode/pbxnativetarget.h - create mode 100644 src/plugins/generator/xcode/pbxobject.cpp - create mode 100644 src/plugins/generator/xcode/pbxobject.h - create mode 100644 src/plugins/generator/xcode/pbxproducttype.cpp - create mode 100644 src/plugins/generator/xcode/pbxproducttype.h - create mode 100644 src/plugins/generator/xcode/pbxproject.cpp - create mode 100644 src/plugins/generator/xcode/pbxproject.h - create mode 100644 src/plugins/generator/xcode/pbxreference.cpp - create mode 100644 src/plugins/generator/xcode/pbxreference.h - create mode 100644 src/plugins/generator/xcode/pbxsourcesbuildphase.cpp - create mode 100644 src/plugins/generator/xcode/pbxsourcesbuildphase.h - create mode 100644 src/plugins/generator/xcode/pbxsourcetree.cpp - create mode 100644 src/plugins/generator/xcode/pbxsourcetree.h - create mode 100644 src/plugins/generator/xcode/pbxtarget.cpp - create mode 100644 src/plugins/generator/xcode/pbxtarget.h - create mode 100644 src/plugins/generator/xcode/xcbuildconfiguration.cpp - create mode 100644 src/plugins/generator/xcode/xcbuildconfiguration.h - create mode 100644 src/plugins/generator/xcode/xcconfigurationlist.cpp - create mode 100644 src/plugins/generator/xcode/xcconfigurationlist.h - create mode 100644 src/plugins/generator/xcode/xcode.pro - create mode 100644 src/plugins/generator/xcode/xcodegenerator.cpp - create mode 100644 src/plugins/generator/xcode/xcodegenerator.h - create mode 100644 src/plugins/generator/xcode/xcodenativegenerator.cpp - create mode 100644 src/plugins/generator/xcode/xcodenativegenerator.h - create mode 100644 src/plugins/generator/xcode/xcodesimplegenerator.cpp - create mode 100644 src/plugins/generator/xcode/xcodesimplegenerator.h + src/lib/corelib/corelib.qbs | 62 ++ + src/lib/corelib/generators/generators.pri | 2 + + .../generators/xcode/opensteppropertylist.cpp | 257 ++++++++ + .../generators/xcode/opensteppropertylist.h | 76 +++ + src/lib/corelib/generators/xcode/pbx.h | 57 ++ + src/lib/corelib/generators/xcode/pbxbuildfile.cpp | 134 +++++ + src/lib/corelib/generators/xcode/pbxbuildfile.h | 74 +++ + src/lib/corelib/generators/xcode/pbxbuildphase.cpp | 94 +++ + src/lib/corelib/generators/xcode/pbxbuildphase.h | 65 +++ + src/lib/corelib/generators/xcode/pbxcontainer.cpp | 60 ++ + src/lib/corelib/generators/xcode/pbxcontainer.h | 59 ++ + .../generators/xcode/pbxcontaineritemproxy.cpp | 113 ++++ + .../generators/xcode/pbxcontaineritemproxy.h | 65 +++ + src/lib/corelib/generators/xcode/pbxfileencoding.h | 57 ++ + .../corelib/generators/xcode/pbxfilereference.cpp | 66 +++ + .../corelib/generators/xcode/pbxfilereference.h | 52 ++ + src/lib/corelib/generators/xcode/pbxfiletype.cpp | 51 ++ + src/lib/corelib/generators/xcode/pbxfiletype.h | 47 ++ + .../generators/xcode/pbxframeworksbuildphase.cpp | 27 + + .../generators/xcode/pbxframeworksbuildphase.h | 50 ++ + src/lib/corelib/generators/xcode/pbxgroup.cpp | 119 ++++ + src/lib/corelib/generators/xcode/pbxgroup.h | 71 +++ + .../corelib/generators/xcode/pbxlegacytarget.cpp | 111 ++++ + src/lib/corelib/generators/xcode/pbxlegacytarget.h | 65 +++ + .../corelib/generators/xcode/pbxnativetarget.cpp | 68 +++ + src/lib/corelib/generators/xcode/pbxnativetarget.h | 53 ++ + src/lib/corelib/generators/xcode/pbxobject.cpp | 96 +++ + src/lib/corelib/generators/xcode/pbxobject.h | 124 ++++ + .../corelib/generators/xcode/pbxproducttype.cpp | 75 +++ + src/lib/corelib/generators/xcode/pbxproducttype.h | 53 ++ + src/lib/corelib/generators/xcode/pbxproject.cpp | 333 +++++++++++ + src/lib/corelib/generators/xcode/pbxproject.h | 114 ++++ + src/lib/corelib/generators/xcode/pbxreference.cpp | 127 ++++ + src/lib/corelib/generators/xcode/pbxreference.h | 72 +++ + .../generators/xcode/pbxsourcesbuildphase.cpp | 57 ++ + .../generators/xcode/pbxsourcesbuildphase.h | 53 ++ + src/lib/corelib/generators/xcode/pbxsourcetree.cpp | 50 ++ + src/lib/corelib/generators/xcode/pbxsourcetree.h | 52 ++ + src/lib/corelib/generators/xcode/pbxtarget.cpp | 192 ++++++ + src/lib/corelib/generators/xcode/pbxtarget.h | 100 ++++ + .../generators/xcode/pbxtargetdependency.cpp | 99 ++++ + .../corelib/generators/xcode/pbxtargetdependency.h | 65 +++ + .../generators/xcode/xcbuildconfiguration.cpp | 92 +++ + .../generators/xcode/xcbuildconfiguration.h | 69 +++ + .../generators/xcode/xcconfigurationlist.cpp | 147 +++++ + .../corelib/generators/xcode/xcconfigurationlist.h | 67 +++ + src/lib/corelib/generators/xcode/xcode.pri | 59 ++ + .../generators/xcode/xcodebuildsettingmapping.cpp | 366 ++++++++++++ + .../generators/xcode/xcodebuildsettingmapping.h | 96 +++ + .../corelib/generators/xcode/xcodegenerator.cpp | 643 +++++++++++++++++++++ + src/lib/corelib/generators/xcode/xcodegenerator.h | 81 +++ + .../generators/xcode/xcodenativegenerator.cpp | 58 ++ + .../generators/xcode/xcodenativegenerator.h | 52 ++ + .../generators/xcode/xcodesimplegenerator.cpp | 58 ++ + .../generators/xcode/xcodesimplegenerator.h | 52 ++ + src/lib/corelib/generators/xcode/xcscheme.cpp | 179 ++++++ + src/lib/corelib/generators/xcode/xcscheme.h | 69 +++ + src/lib/corelib/generators/xcode/xcsettings.cpp | 95 +++ + src/lib/corelib/generators/xcode/xcsettings.h | 54 ++ + src/lib/corelib/tools/projectgeneratormanager.cpp | 5 + + 60 files changed, 5859 insertions(+) + create mode 100644 src/lib/corelib/generators/xcode/opensteppropertylist.cpp + create mode 100644 src/lib/corelib/generators/xcode/opensteppropertylist.h + create mode 100644 src/lib/corelib/generators/xcode/pbx.h + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildfile.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildfile.h + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildphase.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildphase.h + create mode 100644 src/lib/corelib/generators/xcode/pbxcontainer.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxcontainer.h + create mode 100644 src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h + create mode 100644 src/lib/corelib/generators/xcode/pbxfileencoding.h + create mode 100644 src/lib/corelib/generators/xcode/pbxfilereference.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxfilereference.h + create mode 100644 src/lib/corelib/generators/xcode/pbxfiletype.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxfiletype.h + create mode 100644 src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h + create mode 100644 src/lib/corelib/generators/xcode/pbxgroup.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxgroup.h + create mode 100644 src/lib/corelib/generators/xcode/pbxlegacytarget.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxlegacytarget.h + create mode 100644 src/lib/corelib/generators/xcode/pbxnativetarget.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxnativetarget.h + create mode 100644 src/lib/corelib/generators/xcode/pbxobject.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxobject.h + create mode 100644 src/lib/corelib/generators/xcode/pbxproducttype.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxproducttype.h + create mode 100644 src/lib/corelib/generators/xcode/pbxproject.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxproject.h + create mode 100644 src/lib/corelib/generators/xcode/pbxreference.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxreference.h + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcetree.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcetree.h + create mode 100644 src/lib/corelib/generators/xcode/pbxtarget.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxtarget.h + create mode 100644 src/lib/corelib/generators/xcode/pbxtargetdependency.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxtargetdependency.h + create mode 100644 src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcbuildconfiguration.h + create mode 100644 src/lib/corelib/generators/xcode/xcconfigurationlist.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcconfigurationlist.h + create mode 100644 src/lib/corelib/generators/xcode/xcode.pri + create mode 100644 src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h + create mode 100644 src/lib/corelib/generators/xcode/xcodegenerator.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodegenerator.h + create mode 100644 src/lib/corelib/generators/xcode/xcodenativegenerator.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodenativegenerator.h + create mode 100644 src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodesimplegenerator.h + create mode 100644 src/lib/corelib/generators/xcode/xcscheme.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcscheme.h + create mode 100644 src/lib/corelib/generators/xcode/xcsettings.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcsettings.h -diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp -index 39ecdd3..0ecae03 100644 ---- a/src/app/qbs/commandlinefrontend.cpp -+++ b/src/app/qbs/commandlinefrontend.cpp -@@ -38,6 +38,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -331,6 +332,9 @@ void CommandLineFrontend::handleProjectsResolved() - if (m_cancelStatus != CancelStatusNone) - throw ErrorInfo(Tr::tr("Execution canceled.")); - switch (m_parser.command()) { -+ case GenerateCommandType: -+ generate(); -+ break; - case ResolveCommandType: - qApp->quit(); - break; -@@ -451,6 +455,29 @@ void CommandLineFrontend::build() - m_currentBuildEffort = 0; - } - -+void CommandLineFrontend::generate() -+{ -+ const QString generatorName = m_parser.generateOptions().generatorName(); -+ if (generatorName.isEmpty()) { -+ throw ErrorInfo(Tr::tr("Invalid use of command '%1': No generator given.\nUsage: %2") -+ .arg(m_parser.commandName(), m_parser.commandDescription())); -+ } -+ -+ Q_ASSERT(m_projects.count() == 1); -+ const Project project = m_projects.first(); -+ if (Generator *generator = GeneratorPluginManager::generatorWithName(generatorName)) -+ { -+ generator->generate(project); -+ delete generator; -+ } -+ else -+ { -+ throw ErrorInfo(Tr::tr("No generator named '%1'").arg(generatorName)); -+ } -+ -+ qApp->quit(); -+} -+ - int CommandLineFrontend::runTarget() - { - try { -diff --git a/src/app/qbs/commandlinefrontend.h b/src/app/qbs/commandlinefrontend.h -index 75091aa..2276d3e 100644 ---- a/src/app/qbs/commandlinefrontend.h -+++ b/src/app/qbs/commandlinefrontend.h -@@ -79,6 +79,7 @@ private: - void makeClean(); - int runShell(); - void build(); -+ void generate(); - int runTarget(); - void updateTimestamps(); - void connectBuildJobs(); -diff --git a/src/app/qbs/parser/command.cpp b/src/app/qbs/parser/command.cpp -index 8bbbc7d..2283aef 100644 ---- a/src/app/qbs/parser/command.cpp -+++ b/src/app/qbs/parser/command.cpp -@@ -187,6 +187,41 @@ QList ResolveCommand::supportedOptions() const - return resolveOptions(); - } - -+QString GenerateCommand::shortDescription() const -+{ -+ return Tr::tr("Generate files for a different build system."); -+} -+ -+QString GenerateCommand::longDescription() const -+{ -+ QString description = Tr::tr("qbs %1 [options] [[variant] [property:value] ...] ...\n") -+ .arg(representation()); -+ description += Tr::tr("Generates project files to build the project using a different build system."); -+ return description += supportedOptionsDescription(); -+} -+ -+QString GenerateCommand::representation() const -+{ -+ return QLatin1String("generate"); -+} -+ -+static QList generateOptions() -+{ -+ return QList() -+ << CommandLineOption::FileOptionType -+ << CommandLineOption::LogLevelOptionType -+ << CommandLineOption::VerboseOptionType -+ << CommandLineOption::QuietOptionType -+ << CommandLineOption::ShowProgressOptionType -+ << CommandLineOption::LogTimeOptionType -+ << CommandLineOption::GeneratorOptionType; -+} -+ -+QList GenerateCommand::supportedOptions() const -+{ -+ return generateOptions(); -+} -+ - QString BuildCommand::shortDescription() const - { - return Tr::tr("Build (parts of) a project. This is the default command."); -diff --git a/src/app/qbs/parser/command.h b/src/app/qbs/parser/command.h -index b0439f9..935fc23 100644 ---- a/src/app/qbs/parser/command.h -+++ b/src/app/qbs/parser/command.h -@@ -80,6 +80,19 @@ private: - QList supportedOptions() const; - }; - -+class GenerateCommand : public Command -+{ -+public: -+ GenerateCommand(CommandLineOptionPool &optionPool) : Command(optionPool) {} -+ -+private: -+ CommandType type() const { return GenerateCommandType; } -+ QString shortDescription() const; -+ QString longDescription() const; -+ QString representation() const; -+ QList supportedOptions() const; -+}; -+ - class BuildCommand : public Command - { - public: -diff --git a/src/app/qbs/parser/commandlineoption.cpp b/src/app/qbs/parser/commandlineoption.cpp -index 8b15b5e..3d7dc0d 100644 ---- a/src/app/qbs/parser/commandlineoption.cpp -+++ b/src/app/qbs/parser/commandlineoption.cpp -@@ -114,6 +114,29 @@ void BuildDirectoryOption::doParse(const QString &representation, QStringList &i - m_projectBuildDirectory = getArgument(representation, input); - } - -+QString GeneratorOption::description(CommandType command) const -+{ -+ Q_UNUSED(command); -+ return Tr::tr("%1|%2 \n" -+ "\tUse the given build system generator.\n") -+ .arg(longRepresentation(), shortRepresentation()); -+} -+ -+QString GeneratorOption::shortRepresentation() const -+{ -+ return QLatin1String("-g"); -+} -+ -+QString GeneratorOption::longRepresentation() const -+{ -+ return QLatin1String("--generator"); -+} -+ -+void GeneratorOption::doParse(const QString &representation, QStringList &input) -+{ -+ m_generatorName = getArgument(representation, input); -+} -+ - static QString loglevelLongRepresentation() { return QLatin1String("--log-level"); } - - QString VerboseOption::description(CommandType command) const -diff --git a/src/app/qbs/parser/commandlineoption.h b/src/app/qbs/parser/commandlineoption.h -index bf31772..fa7b154 100644 ---- a/src/app/qbs/parser/commandlineoption.h -+++ b/src/app/qbs/parser/commandlineoption.h -@@ -53,7 +53,8 @@ public: - ForceOptionType, - ForceTimestampCheckOptionType, - LogTimeOptionType, -- SettingsDirOptionType -+ SettingsDirOptionType, -+ GeneratorOptionType - }; - - virtual ~CommandLineOption(); -@@ -105,6 +106,21 @@ private: - QString m_projectBuildDirectory; - }; - -+class GeneratorOption : public CommandLineOption -+{ -+public: -+ QString generatorName() const { return m_generatorName; } -+ -+private: -+ QString description(CommandType command) const; -+ QString shortRepresentation() const; -+ QString longRepresentation() const; -+ void doParse(const QString &representation, QStringList &input); -+ -+private: -+ QString m_generatorName; -+}; -+ - class CountingOption : public CommandLineOption - { - public: -diff --git a/src/app/qbs/parser/commandlineoptionpool.cpp b/src/app/qbs/parser/commandlineoptionpool.cpp -index a6f2c26..fcca96b 100644 ---- a/src/app/qbs/parser/commandlineoptionpool.cpp -+++ b/src/app/qbs/parser/commandlineoptionpool.cpp -@@ -97,6 +97,9 @@ CommandLineOption *CommandLineOptionPool::getOption(CommandLineOption::Type type - case CommandLineOption::SettingsDirOptionType: - option = new SettingsDirOption; - break; -+ case CommandLineOption::GeneratorOptionType: -+ option = new GeneratorOption; -+ break; - default: - qFatal("Unknown option type %d", type); - } -@@ -200,4 +203,9 @@ SettingsDirOption *CommandLineOptionPool::settingsDirOption() const - return static_cast(getOption(CommandLineOption::SettingsDirOptionType)); - } - -+GeneratorOption *CommandLineOptionPool::generatorOption() const -+{ -+ return static_cast(getOption(CommandLineOption::GeneratorOptionType)); -+} -+ - } // namespace qbs -diff --git a/src/app/qbs/parser/commandlineoptionpool.h b/src/app/qbs/parser/commandlineoptionpool.h -index 0fc73a6..1186406 100644 ---- a/src/app/qbs/parser/commandlineoptionpool.h -+++ b/src/app/qbs/parser/commandlineoptionpool.h -@@ -60,6 +60,7 @@ public: - ForceTimeStampCheckOption *forceTimestampCheckOption() const; - LogTimeOption *logTimeOption() const; - SettingsDirOption *settingsDirOption() const; -+ GeneratorOption *generatorOption() const; - - private: - mutable QHash m_options; -diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp -index 64284c4..4ff3892 100644 ---- a/src/app/qbs/parser/commandlineparser.cpp -+++ b/src/app/qbs/parser/commandlineparser.cpp -@@ -40,6 +40,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -156,6 +157,14 @@ CleanOptions CommandLineParser::cleanOptions() const - return options; - } - -+GenerateOptions CommandLineParser::generateOptions() const -+{ -+ Q_ASSERT(command() == GenerateCommandType); -+ GenerateOptions options; -+ options.setGeneratorName(d->optionPool.generatorOption()->generatorName()); -+ return options; -+} -+ - InstallOptions CommandLineParser::installOptions() const - { - Q_ASSERT(command() == InstallCommandType || command() == RunCommandType); -@@ -359,6 +368,7 @@ Command *CommandLineParser::CommandLineParserPrivate::commandFromString(const QS - QList CommandLineParser::CommandLineParserPrivate::allCommands() const - { - return QList() -+ << commandPool.getCommand(GenerateCommandType) - << commandPool.getCommand(ResolveCommandType) - << commandPool.getCommand(BuildCommandType) - << commandPool.getCommand(CleanCommandType) -diff --git a/src/app/qbs/parser/commandlineparser.h b/src/app/qbs/parser/commandlineparser.h -index 4301a29..f736e25 100644 ---- a/src/app/qbs/parser/commandlineparser.h -+++ b/src/app/qbs/parser/commandlineparser.h -@@ -37,6 +37,7 @@ - namespace qbs { - class BuildOptions; - class CleanOptions; -+class GenerateOptions; - class InstallOptions; - class Settings; - -@@ -57,6 +58,7 @@ public: - QString projectBuildDirectory() const; - BuildOptions buildOptions() const; - CleanOptions cleanOptions() const; -+ GenerateOptions generateOptions() const; - InstallOptions installOptions() const; - bool force() const; - bool forceTimestampCheck() const; -diff --git a/src/app/qbs/parser/commandpool.cpp b/src/app/qbs/parser/commandpool.cpp -index 6da872d..cdfd180 100644 ---- a/src/app/qbs/parser/commandpool.cpp -+++ b/src/app/qbs/parser/commandpool.cpp -@@ -49,6 +49,9 @@ qbs::Command *CommandPool::getCommand(CommandType type) const - case ResolveCommandType: - command = new ResolveCommand(m_optionPool); - break; -+ case GenerateCommandType: -+ command = new GenerateCommand(m_optionPool); -+ break; - case BuildCommandType: - command = new BuildCommand(m_optionPool); - break; -diff --git a/src/app/qbs/parser/commandtype.h b/src/app/qbs/parser/commandtype.h -index b6b7592..149b2c6 100644 ---- a/src/app/qbs/parser/commandtype.h -+++ b/src/app/qbs/parser/commandtype.h -@@ -34,7 +34,7 @@ namespace qbs { - enum CommandType { - ResolveCommandType, BuildCommandType, CleanCommandType, RunCommandType, ShellCommandType, - StatusCommandType, UpdateTimestampsCommandType, -- InstallCommandType, HelpCommandType -+ InstallCommandType, HelpCommandType, GenerateCommandType - }; - - } // namespace qbs -diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri -index 2bd59b5..9b2fb38 100644 ---- a/src/lib/corelib/api/api.pri -+++ b/src/lib/corelib/api/api.pri -@@ -1,5 +1,6 @@ - HEADERS += \ - $$PWD/internaljobs.h \ -+ $$PWD/generator.h \ - $$PWD/projectdata.h \ - $$PWD/runenvironment.h \ - $$PWD/jobs.h \ -@@ -11,6 +12,7 @@ HEADERS += \ - - SOURCES += \ - $$PWD/internaljobs.cpp \ -+ $$PWD/generator.cpp \ - $$PWD/runenvironment.cpp \ - $$PWD/projectdata.cpp \ - $$PWD/jobs.cpp \ -diff --git a/src/lib/corelib/api/generator.cpp b/src/lib/corelib/api/generator.cpp -new file mode 100644 -index 0000000..3274b3b ---- /dev/null -+++ b/src/lib/corelib/api/generator.cpp -@@ -0,0 +1,50 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+#include "generator.h" -+ -+#include -+ -+namespace qbs { -+ -+/*! -+ * \class Generator -+ * \brief The \c Generator class is an abstract base class for generators which generate arbitrary -+ * output given a resolved Qbs project. -+ */ -+ -+Generator::Generator() -+{ -+} -+ -+Generator::~Generator() -+{ -+} -+ -+} // namespace qbs -diff --git a/src/lib/corelib/api/generator.h b/src/lib/corelib/api/generator.h -new file mode 100644 -index 0000000..7f8ba97 ---- /dev/null -+++ b/src/lib/corelib/api/generator.h -@@ -0,0 +1,61 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+#ifndef QBS_GENERATOR_H -+#define QBS_GENERATOR_H -+ -+#include "../language/forward_decls.h" -+#include "../tools/qbs_export.h" -+ -+namespace qbs { -+ -+#include -+ -+class Project; -+ -+class QBS_EXPORT Generator -+{ -+protected: -+ Generator(); -+ -+public: -+ virtual ~Generator(); -+ -+ /*! -+ * Returns the name of the generator used to create the external build system files. -+ * The default is empty. -+ */ -+ virtual QString generatorName() const = 0; -+ -+ virtual void generate(const Project &project) = 0; -+}; -+ -+} // namespace qbs -+ -+#endif // QBS_GENERATOR_H -diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp -index 6e0dd8f..66da874 100644 ---- a/src/lib/corelib/api/project.cpp -+++ b/src/lib/corelib/api/project.cpp -@@ -54,6 +54,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -94,6 +95,7 @@ static void loadPlugins(const QStringList &_pluginPaths, const Logger &logger) - pluginPaths << pluginPath; - } +diff --git a/src/lib/corelib/corelib.qbs b/src/lib/corelib/corelib.qbs +index 1c1515b..43628a9 100644 +--- a/src/lib/corelib/corelib.qbs ++++ b/src/lib/corelib/corelib.qbs +@@ -154,6 +154,68 @@ QbsLibrary { + files: "buildgraph/forward_decls.h" } -+ GeneratorPluginManager::instance()->loadPlugins(pluginPaths, logger); - ScannerPluginManager::instance()->loadPlugins(pluginPaths, logger); - - qRegisterMetaType("qbs::ErrorInfo"); -diff --git a/src/lib/corelib/qbs.h b/src/lib/corelib/qbs.h -index c71d9b9..7eba37b 100644 ---- a/src/lib/corelib/qbs.h -+++ b/src/lib/corelib/qbs.h -@@ -29,6 +29,7 @@ - #ifndef QBS_H - #define QBS_H - -+#include "api/generator.h" - #include "api/jobs.h" - #include "api/languageinfo.h" - #include "api/project.h" -@@ -38,6 +39,7 @@ - #include "tools/buildoptions.h" - #include "tools/cleanoptions.h" - #include "tools/error.h" -+#include "tools/generateoptions.h" - #include "tools/installoptions.h" - #include "tools/preferences.h" - #include "tools/profile.h" -diff --git a/src/lib/corelib/tools/generateoptions.cpp b/src/lib/corelib/tools/generateoptions.cpp -new file mode 100644 -index 0000000..1198cb4 ---- /dev/null -+++ b/src/lib/corelib/tools/generateoptions.cpp -@@ -0,0 +1,91 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+#include "generateoptions.h" -+ -+#include -+#include -+ -+namespace qbs { -+namespace Internal { -+ -+class GenerateOptionsPrivate : public QSharedData -+{ -+public: -+ GenerateOptionsPrivate() -+ : generatorName() -+ {} -+ -+ QString generatorName; -+}; -+ -+} // namespace Internal -+ -+/*! -+ * \class GenerateOptions -+ * \brief The \c GenerateOptions class comprises parameters that influence the behavior of -+ * generate operations. -+ */ -+ -+GenerateOptions::GenerateOptions() : d(new Internal::GenerateOptionsPrivate) -+{ -+} -+ -+GenerateOptions::GenerateOptions(const GenerateOptions &other) : d(other.d) -+{ -+} -+ -+GenerateOptions &GenerateOptions::operator=(const GenerateOptions &other) -+{ -+ d = other.d; -+ return *this; -+} -+ -+GenerateOptions::~GenerateOptions() -+{ -+} -+ -+/*! -+ * Returns the name of the generator used to create the external build system files. -+ * The default is empty. -+ */ -+QString GenerateOptions::generatorName() const -+{ -+ return d->generatorName; -+} -+ -+/*! -+ * \brief Sets the name of the generator used to create the external build system files. -+ */ -+void GenerateOptions::setGeneratorName(const QString &generatorName) -+{ -+ d->generatorName = generatorName; -+} -+ -+} // namespace qbs -diff --git a/src/lib/corelib/tools/generateoptions.h b/src/lib/corelib/tools/generateoptions.h -new file mode 100644 -index 0000000..bb5c1c4 ---- /dev/null -+++ b/src/lib/corelib/tools/generateoptions.h -@@ -0,0 +1,58 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+#ifndef QBS_GENERATEOPTIONS_H -+#define QBS_GENERATEOPTIONS_H -+ -+#include "qbs_export.h" -+ -+#include -+#include -+ -+namespace qbs { -+namespace Internal { class GenerateOptionsPrivate; } -+ -+class QBS_EXPORT GenerateOptions -+{ -+public: -+ GenerateOptions(); -+ GenerateOptions(const GenerateOptions &other); -+ GenerateOptions &operator=(const GenerateOptions &other); -+ ~GenerateOptions(); -+ -+ QString generatorName() const; -+ void setGeneratorName(const QString &generatorName); -+ -+private: -+ QSharedDataPointer d; -+}; -+ -+} // namespace qbs -+ -+#endif // QBS_GENERATEOPTIONS_H -diff --git a/src/lib/corelib/tools/generatorpluginmanager.cpp b/src/lib/corelib/tools/generatorpluginmanager.cpp -new file mode 100644 -index 0000000..5ac94fd ---- /dev/null -+++ b/src/lib/corelib/tools/generatorpluginmanager.cpp -@@ -0,0 +1,128 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+ -+#include "generatorpluginmanager.h" -+ -+#include -+ -+#include -+#include -+#include -+ -+#include -+ -+#include -+#include -+#include -+ -+namespace qbs { -+namespace Internal { -+ -+GeneratorPluginManager::~GeneratorPluginManager() -+{ -+ foreach (QLibrary * const lib, m_libs) { -+ lib->unload(); -+ delete lib; + Group { ++ name: "Xcode generator" ++ prefix: "generators/xcode/" ++ files: [ ++ "opensteppropertylist.cpp", ++ "opensteppropertylist.h", ++ "pbx.h", ++ "pbxbuildfile.cpp", ++ "pbxbuildfile.h", ++ "pbxbuildphase.cpp", ++ "pbxbuildphase.h", ++ "pbxcontainer.cpp", ++ "pbxcontainer.h", ++ "pbxcontaineritemproxy.cpp", ++ "pbxcontaineritemproxy.h", ++ "pbxfileencoding.h", ++ "pbxfilereference.cpp", ++ "pbxfilereference.h", ++ "pbxfiletype.cpp", ++ "pbxfiletype.h", ++ "pbxframeworksbuildphase.cpp", ++ "pbxframeworksbuildphase.h", ++ "pbxgroup.cpp", ++ "pbxgroup.h", ++ "pbxlegacytarget.cpp", ++ "pbxlegacytarget.h", ++ "pbxnativetarget.cpp", ++ "pbxnativetarget.h", ++ "pbxobject.cpp", ++ "pbxobject.h", ++ "pbxproducttype.cpp", ++ "pbxproducttype.h", ++ "pbxproject.cpp", ++ "pbxproject.h", ++ "pbxreference.cpp", ++ "pbxreference.h", ++ "pbxsourcesbuildphase.cpp", ++ "pbxsourcesbuildphase.h", ++ "pbxsourcetree.cpp", ++ "pbxsourcetree.h", ++ "pbxtarget.cpp", ++ "pbxtarget.h", ++ "pbxtargetdependency.cpp", ++ "pbxtargetdependency.h", ++ "xcbuildconfiguration.cpp", ++ "xcbuildconfiguration.h", ++ "xcconfigurationlist.cpp", ++ "xcconfigurationlist.h", ++ "xcodegenerator.cpp", ++ "xcodegenerator.h", ++ "xcodenativegenerator.cpp", ++ "xcodenativegenerator.h", ++ "xcodesimplegenerator.cpp", ++ "xcodesimplegenerator.h", ++ "xcscheme.cpp", ++ "xcscheme.h", ++ "xcsettings.cpp", ++ "xcsettings.h", ++ "xcodebuildsettingmapping.cpp", ++ "xcodebuildsettingmapping.h" ++ ] + } -+} ++ Group { + name: "jsextensions" + prefix: name + '/' + files: [ +diff --git a/src/lib/corelib/generators/generators.pri b/src/lib/corelib/generators/generators.pri +index 6372e81..2fa095e 100644 +--- a/src/lib/corelib/generators/generators.pri ++++ b/src/lib/corelib/generators/generators.pri +@@ -1,2 +1,4 @@ + HEADERS += \ + $$PWD/generator.h + -+GeneratorPluginManager *GeneratorPluginManager::instance() -+{ -+ static GeneratorPluginManager generatorPlugin; -+ return &generatorPlugin; -+} -+ -+GeneratorPluginManager::GeneratorPluginManager() -+{ -+} -+ -+QStringList GeneratorPluginManager::loadedPluginNames() -+{ -+ return instance()->m_generators.keys(); -+} -+ -+Generator *GeneratorPluginManager::generatorWithName(const QString &generatorName) -+{ -+ return instance()->m_generators.value(generatorName); -+} -+ -+void GeneratorPluginManager::loadPlugins(const QStringList &pluginPaths, const Logger &logger) -+{ -+ QStringList filters; -+ -+ if (HostOsInfo::isWindowsHost()) -+ filters << "*.dll"; -+ else if (HostOsInfo::isOsxHost()) -+ filters << "*.dylib"; -+ else -+ filters << "*.so"; -+ -+ foreach (const QString &pluginPath, pluginPaths) { -+ logger.qbsTrace() << QString::fromLocal8Bit("pluginmanager: loading plugins from '%1'.") -+ .arg(QDir::toNativeSeparators(pluginPath)); -+ QDirIterator it(pluginPath, filters, QDir::Files); -+ while (it.hasNext()) { -+ const QString fileName = it.next(); -+ if (!fileName.contains(QLatin1String("_generator"))) -+ continue; -+ -+ QScopedPointer lib(new QLibrary(fileName)); -+ if (!lib->load()) { -+ logger.qbsWarning() << Tr::tr("pluginmanager: couldn't load plugin '%1': %2") -+ .arg(QDir::toNativeSeparators(fileName), lib->errorString()); -+ continue; -+ } -+ -+ getGenerators_f getGenerators = reinterpret_cast(lib->resolve("getGenerators")); -+ if (!getGenerators) { -+ logger.qbsWarning() << Tr::tr("pluginmanager: couldn't resolve " -+ "symbol in '%1'.").arg(QDir::toNativeSeparators(fileName)); -+ continue; -+ } -+ -+ Generator **plugins = getGenerators(); -+ if (plugins == 0) { -+ logger.qbsWarning() << Tr::tr("pluginmanager: no generators " -+ "returned from '%1'.").arg(QDir::toNativeSeparators(fileName)); -+ continue; -+ } -+ -+ logger.qbsTrace() << QString::fromLocal8Bit("pluginmanager: scanner plugin '%1' " -+ "loaded.").arg(QDir::toNativeSeparators(fileName)); -+ -+ for (int i = 0; plugins[i] != 0; ++i) -+ m_generators[plugins[i]->generatorName()] = plugins[i]; -+ m_libs.append(lib.take()); -+ } -+ } -+} -+ -+} // namespace Internal -+} // namespace qbs -diff --git a/src/lib/corelib/tools/generatorpluginmanager.h b/src/lib/corelib/tools/generatorpluginmanager.h ++include(xcode/xcode.pri) +diff --git a/src/lib/corelib/generators/xcode/opensteppropertylist.cpp b/src/lib/corelib/generators/xcode/opensteppropertylist.cpp new file mode 100644 -index 0000000..4f6351b +index 0000000..63adee2 --- /dev/null -+++ b/src/lib/corelib/tools/generatorpluginmanager.h -@@ -0,0 +1,69 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+ -+#ifndef QBS_GENERATORPLUGINMANAGER_H -+#define QBS_GENERATORPLUGINMANAGER_H -+ -+#include -+ -+#include -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+class QLibrary; -+QT_END_NAMESPACE -+ -+namespace qbs { -+class Generator; -+namespace Internal { -+class Logger; -+ -+class QBS_EXPORT GeneratorPluginManager -+{ -+public: -+ ~GeneratorPluginManager(); -+ static GeneratorPluginManager *instance(); -+ static QStringList loadedPluginNames(); -+ static Generator *generatorWithName(const QString &generatorName); -+ void loadPlugins(const QStringList &paths, const Logger &logger); -+ -+private: -+ GeneratorPluginManager(); -+ -+private: -+ QList m_libs; -+ QHash m_generators; -+}; -+ -+} // namespace Internal -+} // namespace qbs -+ -+#endif -diff --git a/src/lib/corelib/tools/scannerpluginmanager.cpp b/src/lib/corelib/tools/scannerpluginmanager.cpp -index 8bf43d2..fd23faa 100644 ---- a/src/lib/corelib/tools/scannerpluginmanager.cpp -+++ b/src/lib/corelib/tools/scannerpluginmanager.cpp -@@ -80,6 +80,9 @@ void ScannerPluginManager::loadPlugins(const QStringList &pluginPaths, const Log - QDirIterator it(pluginPath, filters, QDir::Files); - while (it.hasNext()) { - const QString fileName = it.next(); -+ if (!fileName.contains(QLatin1String("_scanner"))) -+ continue; -+ - QScopedPointer lib(new QLibrary(fileName)); - if (!lib->load()) { - logger.qbsWarning() << Tr::tr("Pluginmanager: Cannot load plugin '%1': %2") -diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 5b497aa..5008738 100644 ---- a/src/lib/corelib/tools/tools.pri -+++ b/src/lib/corelib/tools/tools.pri -@@ -7,6 +7,8 @@ HEADERS += \ - $$PWD/executablefinder.h \ - $$PWD/fileinfo.h \ - $$PWD/filetime.h \ -+ $$PWD/generateoptions.h \ -+ $$PWD/generatorpluginmanager.h \ - $$PWD/id.h \ - $$PWD/persistence.h \ - $$PWD/scannerpluginmanager.h \ -@@ -37,6 +39,8 @@ SOURCES += \ - $$PWD/error.cpp \ - $$PWD/executablefinder.cpp \ - $$PWD/fileinfo.cpp \ -+ $$PWD/generateoptions.cpp \ -+ $$PWD/generatorpluginmanager.cpp \ - $$PWD/id.cpp \ - $$PWD/persistence.cpp \ - $$PWD/scannerpluginmanager.cpp \ -diff --git a/src/plugins/generator/generator.pro b/src/plugins/generator/generator.pro -new file mode 100644 -index 0000000..6531408 ---- /dev/null -+++ b/src/plugins/generator/generator.pro -@@ -0,0 +1,2 @@ -+TEMPLATE = subdirs -+SUBDIRS = xcode -diff --git a/src/plugins/generator/generatorplugin.h b/src/plugins/generator/generatorplugin.h -new file mode 100644 -index 0000000..e456ff4 ---- /dev/null -+++ b/src/plugins/generator/generatorplugin.h -@@ -0,0 +1,46 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+ -+#ifndef GENERATORPLUGIN_H -+#define GENERATORPLUGIN_H -+ -+#include -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+typedef qbs::Generator **(*getGenerators_f)(); -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif // GENERATORPLUGIN_H -diff --git a/src/plugins/generator/xcode/main.cpp b/src/plugins/generator/xcode/main.cpp -new file mode 100644 -index 0000000..86a97f2 ---- /dev/null -+++ b/src/plugins/generator/xcode/main.cpp -@@ -0,0 +1,45 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+ -+#include "xcodenativegenerator.h" -+#include "xcodesimplegenerator.h" -+ -+static qbs::Generator* generators[] = { -+ new qbs::XcodeNativeGenerator(), -+ new qbs::XcodeSimpleGenerator(), -+ NULL -+}; -+ -+extern "C" { -+ qbs::Generator **getGenerators() -+ { -+ return generators; -+ } -+} -diff --git a/src/plugins/generator/xcode/opensteppropertylist.cpp b/src/plugins/generator/xcode/opensteppropertylist.cpp -new file mode 100644 -index 0000000..b10bceb ---- /dev/null -+++ b/src/plugins/generator/xcode/opensteppropertylist.cpp -@@ -0,0 +1,186 @@ ++++ b/src/lib/corelib/generators/xcode/opensteppropertylist.cpp +@@ -0,0 +1,257 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). @@ -1193,6 +244,9 @@ index 0000000..b10bceb +****************************************************************************/ + +#include "opensteppropertylist.h" ++#include "pbxobject.h" ++#include ++#include + +const QChar OpenStepPropertyList::NewlineToken = QLatin1Char('\n'); +const QChar OpenStepPropertyList::DictionaryBeginToken = QLatin1Char('{'); @@ -1207,6 +261,8 @@ index 0000000..b10bceb +const QChar OpenStepPropertyList::DataEndToken = QLatin1Char('>'); +const QChar OpenStepPropertyList::IndentationToken = QLatin1Char('\t'); + ++#define isValidUnquotedStringCharacter(x) (((x) >= 'a' && (x) <= 'z') || ((x) >= 'A' && (x) <= 'Z') || ((x) >= '0' && (x) <= '9') || (x) == '_' || (x) == '$' || (x) == '/' || (x) == ':' || (x) == '.' ) ++ +static QString formatString(const QString &string) +{ + bool isQuoted = string.isEmpty(); @@ -1214,7 +270,7 @@ index 0000000..b10bceb + { + for (int i = 0; i < string.size(); ++i) + { -+ if (!string[i].isLetterOrNumber() || string[i] > 127) ++ if (!isValidUnquotedStringCharacter(string[i])) + { + isQuoted = true; + break; @@ -1223,6 +279,7 @@ index 0000000..b10bceb + } + + QString outString = string; ++ outString.replace(QLatin1String("\\"), QLatin1String("\\\\")); + outString.replace(QLatin1String("\""), QLatin1String("\\\"")); + + if (isQuoted) @@ -1235,41 +292,90 @@ index 0000000..b10bceb + +QString OpenStepPropertyList::toString(const QVariantMap &propertyList) +{ ++ PBXObjectMap newMap; ++ Q_FOREACH (const QString &key, propertyList.keys()) { ++ newMap.insert(key, propertyList[key]); ++ } ++ return toString(newMap); ++} ++ ++QString OpenStepPropertyList::toString(const PBXObjectMap &propertyList) ++{ + return toString(propertyList, 0) + NewlineToken; +} + +QString OpenStepPropertyList::toString(const QVariantMap &propertyList, int indentationLevel) +{ ++ PBXObjectMap newMap; ++ Q_FOREACH (const QString &key, propertyList.keys()) { ++ newMap.insert(key, propertyList[key]); ++ } ++ return toString(newMap, indentationLevel); ++} ++ ++QString OpenStepPropertyList::toString(const PBXObjectMap &propertyList, int indentationLevel) ++{ + QString string(indentationLevel, IndentationToken); + string += DictionaryBeginToken; -+ string += NewlineToken; + -+ foreach (const QString &key, propertyList.keys()) ++ const bool isFlat = ++ propertyList[QLatin1String("isa")] == QLatin1String("PBXBuildFile") || ++ propertyList[QLatin1String("isa")] == QLatin1String("PBXFileReference"); ++ if (!isFlat) { ++ string += NewlineToken; ++ } ++ ++ QList keys = propertyList.keys(); ++ ++ // Push the isa property to the top of the list as it's always written first ++ const int isaIndex = keys.indexOf(QLatin1String("isa")); ++ if (isaIndex >= 0) { ++ keys.removeAt(isaIndex); ++ keys.insert(0, QLatin1String("isa")); ++ } ++ ++ QStack isas; ++ ++ foreach (const PBXObjectIdentifier &vkey, keys) + { -+ if (key == QLatin1String("__comment__")) -+ continue; ++ const QVariant &object = propertyList[vkey]; + -+ const QVariant &object = propertyList[key]; -+ string += QString(indentationLevel + 1, IndentationToken); -+ string += formatString(key); ++ if (!vkey.isa().isEmpty()) { ++ if (!isas.empty() && vkey.isa() != isas.top()) { ++ string += QString(QLatin1String("/* End %1 section */\n")).arg(isas.top()); ++ isas.pop(); ++ } + -+ QString comment = object.toMap()[QLatin1String("__comment__")].toString(); -+ if (!comment.isEmpty()) -+ string += QLatin1String(" /* ") + comment.replace(QLatin1String("*/"), QLatin1String("* /")) + QLatin1String(" */"); ++ if (isas.empty()) { ++ isas.push(vkey.isa()); ++ string += QString(QLatin1String("\n/* Begin %1 section */\n")).arg(vkey.isa()); ++ } ++ } + ++ string += QString(!isFlat ? (indentationLevel + 1) : 0, IndentationToken); ++ string += toString(QVariant::fromValue(vkey), -1); + string += QLatin1String(" = "); + -+ if (object.type() == QVariant::Map || object.type() == QVariant::List || ++ if (object.canConvert() || object.type() == QVariant::Map || object.type() == QVariant::List || + object.type() == QVariant::StringList || object.type() == QVariant::ByteArray) -+ string += toString(object, indentationLevel + 1).trimmed(); ++ string += toString(object, !isFlat ? (indentationLevel + 1) : 0).trimmed(); + else + string += toString(object, 0); + + string += DictionarySeparatorToken; -+ string += NewlineToken; ++ string += !isFlat ? NewlineToken : QLatin1Char(' '); + } + -+ string += QString(indentationLevel, IndentationToken) + DictionaryEndToken; ++ if (!isas.empty()) { ++ string += QString(QLatin1String("/* End %1 section */\n")).arg(isas.top()); ++ isas.pop(); ++ } ++ ++ if (!isFlat) { ++ string += QString(indentationLevel, IndentationToken); ++ } ++ ++ string += DictionaryEndToken; + return string; +} + @@ -1298,10 +404,25 @@ index 0000000..b10bceb + +QString OpenStepPropertyList::toString(const QVariant &object, int indentationLevel) +{ ++ if (object.canConvert()) { ++ PBXObjectIdentifier objid = object.value(); ++ QString s = toString(objid.identifier(), indentationLevel); ++ if (!objid.comment().isEmpty()) { ++ s += QLatin1String(" /* "); ++ s += objid.comment().replace(QLatin1String("*/"), QLatin1String("* /")); ++ s += QLatin1String(" */"); ++ } ++ return s; ++ } ++ ++ if (object.canConvert()) { ++ return toString(object.value(), indentationLevel); ++ } ++ + switch (object.type()) + { + case QVariant::Bool: -+ return object.toBool() ? QLatin1String("1") : QLatin1String("0"); ++ return object.toBool() ? QLatin1String("YES") : QLatin1String("NO"); + case QVariant::ByteArray: + return toString(object.toByteArray(), indentationLevel); + case QVariant::Date: @@ -1326,7 +447,8 @@ index 0000000..b10bceb + case QVariant::ULongLong: + return QString::number(object.toULongLong()); + default: -+ throw "Unsupported property list object type"; ++ qDebug() << "Unsupported property list object type" << object; ++ abort(); + } +} + @@ -1348,12 +470,12 @@ index 0000000..b10bceb + string += formatString(object); + return string; +} -diff --git a/src/plugins/generator/xcode/opensteppropertylist.h b/src/plugins/generator/xcode/opensteppropertylist.h +diff --git a/src/lib/corelib/generators/xcode/opensteppropertylist.h b/src/lib/corelib/generators/xcode/opensteppropertylist.h new file mode 100644 -index 0000000..ed50aa3 +index 0000000..36cef73 --- /dev/null -+++ b/src/plugins/generator/xcode/opensteppropertylist.h -@@ -0,0 +1,71 @@ ++++ b/src/lib/corelib/generators/xcode/opensteppropertylist.h +@@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). @@ -1393,6 +515,9 @@ index 0000000..ed50aa3 +#include +#include + ++class PBXObjectIdentifier; ++typedef QMap PBXObjectMap; ++ +class OpenStepPropertyList +{ + Q_DISABLE_COPY(OpenStepPropertyList) @@ -1411,12 +536,14 @@ index 0000000..ed50aa3 + static const QChar IndentationToken; + + static QString toString(const QVariantMap &propertyList); ++ static QString toString(const PBXObjectMap &propertyList); + static QString toString(const QList &propertyList); + +private: + OpenStepPropertyList(); + + static QString toString(const QVariantMap &propertyList, int indentationLevel); ++ static QString toString(const PBXObjectMap &propertyList, int indentationLevel); + static QString toString(const QList &propertyList, int indentationLevel); + static QString toString(const QVariant &object, int indentationLevel); + static QString toString(const QByteArray &object, int indentationLevel); @@ -1425,16 +552,16 @@ index 0000000..ed50aa3 +}; + +#endif // OPENSTEPPROPERTYLIST_H -diff --git a/src/plugins/generator/xcode/pbx.h b/src/plugins/generator/xcode/pbx.h +diff --git a/src/lib/corelib/generators/xcode/pbx.h b/src/lib/corelib/generators/xcode/pbx.h new file mode 100644 -index 0000000..fda52e7 +index 0000000..d4cc014 --- /dev/null -+++ b/src/plugins/generator/xcode/pbx.h -@@ -0,0 +1,53 @@ ++++ b/src/lib/corelib/generators/xcode/pbx.h +@@ -0,0 +1,57 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1468,6 +595,7 @@ index 0000000..fda52e7 +#include "pbxbuildfile.h" +#include "pbxbuildphase.h" +#include "pbxcontainer.h" ++#include "pbxcontaineritemproxy.h" +#include "pbxfileencoding.h" +#include "pbxfilereference.h" +#include "pbxfiletype.h" @@ -1480,20 +608,23 @@ index 0000000..fda52e7 +#include "pbxreference.h" +#include "pbxsourcetree.h" +#include "pbxtarget.h" ++#include "pbxtargetdependency.h" +#include "xcbuildconfiguration.h" +#include "xcconfigurationlist.h" ++#include "xcscheme.h" ++#include "xcsettings.h" + +#endif // PBX_H -diff --git a/src/plugins/generator/xcode/pbxbuildfile.cpp b/src/plugins/generator/xcode/pbxbuildfile.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxbuildfile.cpp b/src/lib/corelib/generators/xcode/pbxbuildfile.cpp new file mode 100644 -index 0000000..4f49ead +index 0000000..cbe34c0 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxbuildfile.cpp -@@ -0,0 +1,72 @@ ++++ b/src/lib/corelib/generators/xcode/pbxbuildfile.cpp +@@ -0,0 +1,134 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1521,13 +652,18 @@ index 0000000..4f49ead +****************************************************************************/ + +#include "pbxbuildfile.h" ++#include "pbxbuildphase.h" +#include "pbxfilereference.h" + ++static const QString kPBXBuildFileAttributes = QLatin1String("ATTRIBUTES"); ++static const QString kPBXBuildFileLibraryWeakLinked = QLatin1String("Weak"); ++ +class PBXBuildFilePrivate +{ +public: + PBXBuildFilePrivate(); + PBXFileReference *reference; ++ QSet attributes; +}; + +PBXBuildFilePrivate::PBXBuildFilePrivate() @@ -1535,7 +671,7 @@ index 0000000..4f49ead +{ +} + -+PBXBuildFile::PBXBuildFile(QObject *parent) : ++PBXBuildFile::PBXBuildFile(PBXBuildPhase *parent) : + PBXObject(parent), d(new PBXBuildFilePrivate) +{ +} @@ -1550,28 +686,85 @@ index 0000000..4f49ead + return QLatin1String("PBXBuildFile"); +} + -+QVariantMap PBXBuildFile::toMap() const ++PBXObjectMap PBXBuildFile::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); -+ if (d->reference) -+ self.insert(QLatin1String("fileRef"), d->reference->identifier()); ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->reference) { ++ self.insert(QLatin1String("fileRef"), QVariant::fromValue(d->reference->identifier())); ++ } ++ ++ QVariantMap settingsMap; ++ if (!d->attributes.isEmpty()) { ++ QStringList attributes = d->attributes.toList(); ++ qSort(attributes); ++ settingsMap.insert(kPBXBuildFileAttributes, attributes); ++ } ++ ++ if (!settingsMap.isEmpty()) { ++ self.insert(QLatin1String("settings"), settingsMap); ++ } ++ + return self; +} + ++PBXFileReference *PBXBuildFile::fileReference() const ++{ ++ return d->reference; ++} ++ +void PBXBuildFile::setFileReference(PBXFileReference *reference) +{ + d->reference = reference; +} -diff --git a/src/plugins/generator/xcode/pbxbuildfile.h b/src/plugins/generator/xcode/pbxbuildfile.h ++ ++QSet PBXBuildFile::attributes() const ++{ ++ return d->attributes; ++} ++ ++bool PBXBuildFile::isWeakLinkedLibrary() const ++{ ++ return d->attributes.contains(kPBXBuildFileLibraryWeakLinked); ++} ++ ++void PBXBuildFile::setWeakLinkedLibrary(bool weakLinked) ++{ ++ if (weakLinked) ++ d->attributes.insert(kPBXBuildFileLibraryWeakLinked); ++ else ++ d->attributes.remove(kPBXBuildFileLibraryWeakLinked); ++} ++ ++QString PBXBuildFile::comment() const ++{ ++ if (d->reference) { ++ PBXBuildPhase *phase = dynamic_cast(parent()); ++ Q_ASSERT(phase); ++ return QString(QLatin1String("%1 in %2")).arg(d->reference->name()).arg(phase->name()); ++ } ++ ++ return PBXObject::comment(); ++} ++ ++QByteArray PBXBuildFile::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ if (d->reference) { ++ data.append(d->reference->hashData()); ++ } ++ ++ return data; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxbuildfile.h b/src/lib/corelib/generators/xcode/pbxbuildfile.h new file mode 100644 -index 0000000..1bee93b +index 0000000..bc25ab8 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxbuildfile.h -@@ -0,0 +1,64 @@ ++++ b/src/lib/corelib/generators/xcode/pbxbuildfile.h +@@ -0,0 +1,74 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1603,7 +796,9 @@ index 0000000..1bee93b + +#include "pbxobject.h" +#include ++#include + ++class PBXBuildPhase; +class PBXFileReference; + +class PBXBuildFilePrivate; @@ -1616,32 +811,40 @@ index 0000000..1bee93b +{ + Q_OBJECT +public: -+ explicit PBXBuildFile(QObject *parent = 0); ++ explicit PBXBuildFile(PBXBuildPhase *parent = 0); + virtual ~PBXBuildFile(); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + ++ QString comment() const; ++ ++ QByteArray hashData() const; ++ ++ PBXFileReference *fileReference() const; + void setFileReference(PBXFileReference *reference); + + QString absolutePath() const; -+ QStringList attributes() const; ++ QSet attributes() const; ++ ++ bool isWeakLinkedLibrary() const; ++ void setWeakLinkedLibrary(bool weakLinked); + +private: + PBXBuildFilePrivate *d; +}; + +#endif // PBXBUILDFILE_H -diff --git a/src/plugins/generator/xcode/pbxbuildphase.cpp b/src/plugins/generator/xcode/pbxbuildphase.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxbuildphase.cpp b/src/lib/corelib/generators/xcode/pbxbuildphase.cpp new file mode 100644 -index 0000000..d1cad2c +index 0000000..fc371aa --- /dev/null -+++ b/src/plugins/generator/xcode/pbxbuildphase.cpp -@@ -0,0 +1,77 @@ ++++ b/src/lib/corelib/generators/xcode/pbxbuildphase.cpp +@@ -0,0 +1,94 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1671,6 +874,7 @@ index 0000000..d1cad2c +#include "pbxbuildfile.h" +#include "pbxbuildphase.h" +#include "pbxfilereference.h" ++#include "pbxtarget.h" + +class PBXBuildPhasePrivate +{ @@ -1678,7 +882,7 @@ index 0000000..d1cad2c + QList buildFiles; +}; + -+PBXBuildPhase::PBXBuildPhase(QObject *parent) : ++PBXBuildPhase::PBXBuildPhase(PBXTarget *parent) : + PBXObject(parent), d(new PBXBuildPhasePrivate) +{ +} @@ -1688,14 +892,14 @@ index 0000000..d1cad2c + delete d; +} + -+QVariantMap PBXBuildPhase::toMap() const ++PBXObjectMap PBXBuildPhase::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); -+ self.insert(QLatin1String("buildActionMask"), 2147483647); ++ PBXObjectMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("buildActionMask"), std::numeric_limits::max()); + -+ QStringList fileReferenceList; ++ QVariantList fileReferenceList; + foreach (PBXBuildFile *buildFile, buildFiles()) -+ fileReferenceList += buildFile->identifier(); ++ fileReferenceList += QVariant::fromValue(buildFile->identifier()); + self.insert(QLatin1String("files"), fileReferenceList); + + self.insert(QLatin1String("runOnlyForDeploymentPostprocessing"), 0); @@ -1703,28 +907,44 @@ index 0000000..d1cad2c + return self; +} + ++QByteArray PBXBuildPhase::hashData() const ++{ ++ QByteArray data; ++ PBXTarget *target = dynamic_cast(parent()); ++ if (target) { ++ data.append(target->hashData()); ++ } ++ return data; // TODO: Build phases for which a target may have multiple of, will not work ++} ++ +QList PBXBuildPhase::buildFiles() const +{ + return d->buildFiles; +} + -+bool PBXBuildPhase::addReference(PBXFileReference *reference) ++PBXBuildFile *PBXBuildPhase::addReference(PBXFileReference *reference) +{ ++ Q_FOREACH (PBXBuildFile *buildFile, d->buildFiles) { ++ if (buildFile->fileReference() == reference) { ++ return buildFile; ++ } ++ } ++ + PBXBuildFile *buildFile = new PBXBuildFile(this); + buildFile->setFileReference(reference); + d->buildFiles.append(buildFile); -+ return true; ++ return buildFile; +} -diff --git a/src/plugins/generator/xcode/pbxbuildphase.h b/src/plugins/generator/xcode/pbxbuildphase.h +diff --git a/src/lib/corelib/generators/xcode/pbxbuildphase.h b/src/lib/corelib/generators/xcode/pbxbuildphase.h new file mode 100644 -index 0000000..25ac5e2 +index 0000000..b80ec81 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxbuildphase.h -@@ -0,0 +1,60 @@ ++++ b/src/lib/corelib/generators/xcode/pbxbuildphase.h +@@ -0,0 +1,65 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1759,6 +979,7 @@ index 0000000..25ac5e2 + +class PBXBuildFile; +class PBXFileReference; ++class PBXTarget; + +class PBXBuildPhasePrivate; + @@ -1766,14 +987,18 @@ index 0000000..25ac5e2 +{ + Q_OBJECT +public: -+ explicit PBXBuildPhase(QObject *parent = 0); ++ explicit PBXBuildPhase(PBXTarget *parent = 0); + virtual ~PBXBuildPhase(); + -+ QVariantMap toMap() const; ++ virtual QString name() const = 0; ++ ++ PBXObjectMap toMap() const; ++ ++ QByteArray hashData() const; + + QList buildFiles() const; + -+ bool addReference(PBXFileReference *reference); ++ PBXBuildFile *addReference(PBXFileReference *reference); + bool containsFileReferenceIdenticalTo(PBXFileReference *reference); + +private: @@ -1781,16 +1006,16 @@ index 0000000..25ac5e2 +}; + +#endif // PBXBUILDPHASE_H -diff --git a/src/plugins/generator/xcode/pbxcontainer.cpp b/src/plugins/generator/xcode/pbxcontainer.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxcontainer.cpp b/src/lib/corelib/generators/xcode/pbxcontainer.cpp new file mode 100644 -index 0000000..10a2470 +index 0000000..6ce359a --- /dev/null -+++ b/src/plugins/generator/xcode/pbxcontainer.cpp -@@ -0,0 +1,53 @@ ++++ b/src/lib/corelib/generators/xcode/pbxcontainer.cpp +@@ -0,0 +1,60 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1836,20 +1061,27 @@ index 0000000..10a2470 + delete d; +} + ++QByteArray PBXContainer::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ data.append(d->group.hashData()); ++ return data; ++} ++ +PBXGroup *PBXContainer::rootGroup() const +{ + return &d->group; +} -diff --git a/src/plugins/generator/xcode/pbxcontainer.h b/src/plugins/generator/xcode/pbxcontainer.h +diff --git a/src/lib/corelib/generators/xcode/pbxcontainer.h b/src/lib/corelib/generators/xcode/pbxcontainer.h new file mode 100644 -index 0000000..f920f56 +index 0000000..3263149 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxcontainer.h -@@ -0,0 +1,57 @@ ++++ b/src/lib/corelib/generators/xcode/pbxcontainer.h +@@ -0,0 +1,59 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1894,6 +1126,8 @@ index 0000000..f920f56 + explicit PBXContainer(QObject *parent = 0); + virtual ~PBXContainer(); + ++ QByteArray hashData() const; ++ + PBXGroup *rootGroup() const; + + PBXFileReference *fileReferenceForPath(const QString &path); @@ -1903,16 +1137,206 @@ index 0000000..f920f56 +}; + +#endif // PBXCONTAINER_H -diff --git a/src/plugins/generator/xcode/pbxfileencoding.h b/src/plugins/generator/xcode/pbxfileencoding.h +diff --git a/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp new file mode 100644 -index 0000000..852dac5 +index 0000000..46f18dd --- /dev/null -+++ b/src/plugins/generator/xcode/pbxfileencoding.h ++++ b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp +@@ -0,0 +1,113 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxcontaineritemproxy.h" ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "pbxtargetdependency.h" ++ ++class PBXContainerItemProxyPrivate ++{ ++public: ++ PBXProject *containerPortal; ++ PBXTarget *target; ++}; ++ ++PBXContainerItemProxy::PBXContainerItemProxy(PBXTargetDependency *parent) : ++ PBXObject(parent), d(new PBXContainerItemProxyPrivate) ++{ ++} ++ ++PBXContainerItemProxy::~PBXContainerItemProxy() ++{ ++ delete d; ++} ++ ++QString PBXContainerItemProxy::isa() const ++{ ++ return QLatin1String("PBXContainerItemProxy"); ++} ++ ++PBXObjectMap PBXContainerItemProxy::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->containerPortal) ++ self.insert(QLatin1String("containerPortal"), QVariant::fromValue(d->containerPortal->identifier())); ++ ++ self.insert(QLatin1String("proxyType"), 1); // TODO: Always the same? ++ ++ if (d->target) { ++ // We deliberately don't store the actual PBXObjectIdentifier, ++ // because Xcode itself doesn't write the ID with a comment annotation ++ self.insert(QLatin1String("remoteGlobalIDString"), d->target->identifier().identifier()); ++ self.insert(QLatin1String("remoteInfo"), d->target->name()); ++ } ++ ++ return self; ++} ++ ++QString PBXContainerItemProxy::comment() const ++{ ++ return PBXObject::comment(); ++} ++ ++QByteArray PBXContainerItemProxy::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ if (d->containerPortal) { ++ data.append(d->containerPortal->hashData()); ++ } ++ ++ if (d->target) { ++ data.append(d->target->hashData()); ++ } ++ ++ return data; ++} ++ ++PBXProject *PBXContainerItemProxy::containerPortal() const ++{ ++ return d->containerPortal; ++} ++ ++void PBXContainerItemProxy::setContainerPortal(PBXProject *containerPortal) ++{ ++ d->containerPortal = containerPortal; ++} ++ ++PBXTarget *PBXContainerItemProxy::target() const ++{ ++ return d->target; ++} ++ ++void PBXContainerItemProxy::setTarget(PBXTarget *target) ++{ ++ d->target = target; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h +new file mode 100644 +index 0000000..34205aa +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h +@@ -0,0 +1,65 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXCONTAINERITEMPROXY_H ++#define PBXCONTAINERITEMPROXY_H ++ ++#include "pbxobject.h" ++ ++class PBXContainerItemProxyPrivate; ++class PBXProject; ++class PBXTarget; ++class PBXTargetDependency; ++ ++class PBXContainerItemProxy : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXContainerItemProxy(PBXTargetDependency *parent = 0); ++ virtual ~PBXContainerItemProxy(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++ ++ QByteArray hashData() const; ++ ++ PBXProject *containerPortal() const; ++ void setContainerPortal(PBXProject *containerPortal); ++ ++ PBXTarget *target() const; ++ void setTarget(PBXTarget *target); ++ ++private: ++ PBXContainerItemProxyPrivate *d; ++}; ++ ++#endif // PBXCONTAINERITEMPROXY_H +diff --git a/src/lib/corelib/generators/xcode/pbxfileencoding.h b/src/lib/corelib/generators/xcode/pbxfileencoding.h +new file mode 100644 +index 0000000..50af8c5 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxfileencoding.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1966,16 +1390,16 @@ index 0000000..852dac5 +} + +#endif // PBXFILEENCODING_H -diff --git a/src/plugins/generator/xcode/pbxfilereference.cpp b/src/plugins/generator/xcode/pbxfilereference.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxfilereference.cpp b/src/lib/corelib/generators/xcode/pbxfilereference.cpp new file mode 100644 -index 0000000..68f165a +index 0000000..b5dbd94 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxfilereference.cpp -@@ -0,0 +1,73 @@ ++++ b/src/lib/corelib/generators/xcode/pbxfilereference.cpp +@@ -0,0 +1,66 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2029,32 +1453,25 @@ index 0000000..68f165a + return QLatin1String("PBXFileReference"); +} + -+QVariantMap PBXFileReference::toMap() const ++PBXObjectMap PBXFileReference::toMap() const +{ -+ QVariantMap self = PBXReference::toMap(); ++ PBXObjectMap self = PBXReference::toMap(); + self.insert(QLatin1String("fileEncoding"), PBX::Default); -+ //self.insert(QLatin1String("explicitFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).extension())); // PBXFileType ++ //self.insert(QLatin1String("explicitFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).suffix())); // PBXFileType + //self.insert(QLatin1String("includeInIndex"), 0); -+ //self.insert(QLatin1String("lastKnownFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).extension())); // PBXFileType ++ self.insert(QLatin1String("lastKnownFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).suffix())); // PBXFileType + return self; +} -+ -+QString PBXFileReference::comment() const -+{ -+ PBXGroup *group = dynamic_cast(parent()); -+ Q_ASSERT(group); -+ return QString(QLatin1String("%1 in %2")).arg(name()).arg(group->name()); -+} -diff --git a/src/plugins/generator/xcode/pbxfilereference.h b/src/plugins/generator/xcode/pbxfilereference.h +diff --git a/src/lib/corelib/generators/xcode/pbxfilereference.h b/src/lib/corelib/generators/xcode/pbxfilereference.h new file mode 100644 -index 0000000..9ce5ed7 +index 0000000..7a56120 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxfilereference.h -@@ -0,0 +1,54 @@ ++++ b/src/lib/corelib/generators/xcode/pbxfilereference.h +@@ -0,0 +1,52 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2096,25 +1513,23 @@ index 0000000..9ce5ed7 + virtual ~PBXFileReference(); + + QString isa() const; -+ QVariantMap toMap() const; -+ -+ QString comment() const; ++ PBXObjectMap toMap() const; + +private: + PBXFileReferencePrivate *d; +}; + +#endif // PBXFILEREFERENCE_H -diff --git a/src/plugins/generator/xcode/pbxfiletype.cpp b/src/plugins/generator/xcode/pbxfiletype.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxfiletype.cpp b/src/lib/corelib/generators/xcode/pbxfiletype.cpp new file mode 100644 -index 0000000..3a57c29 +index 0000000..4f7b58d --- /dev/null -+++ b/src/plugins/generator/xcode/pbxfiletype.cpp -@@ -0,0 +1,41 @@ ++++ b/src/lib/corelib/generators/xcode/pbxfiletype.cpp +@@ -0,0 +1,51 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2150,18 +1565,28 @@ index 0000000..3a57c29 + +QString PBXFileType::typeForFileExtension(const QString &fileExtension) +{ -+ return QString(); ++ if (fileExtension == QLatin1String("a")) ++ return QLatin1String("archive.ar"); ++ if (fileExtension == QLatin1String("app")) ++ return QLatin1String("wrapper.application"); ++ if (fileExtension == QLatin1String("cpp")) ++ return QLatin1String("sourcecode.cpp.cpp"); ++ if (fileExtension == QLatin1String("dylib")) ++ return QLatin1String("compiled.mach-o.dylib"); ++ if (fileExtension == QLatin1String("h")) ++ return QLatin1String("sourcecode.c.h"); ++ return QString("text"); +} -diff --git a/src/plugins/generator/xcode/pbxfiletype.h b/src/plugins/generator/xcode/pbxfiletype.h +diff --git a/src/lib/corelib/generators/xcode/pbxfiletype.h b/src/lib/corelib/generators/xcode/pbxfiletype.h new file mode 100644 -index 0000000..3818872 +index 0000000..b289250 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxfiletype.h ++++ b/src/lib/corelib/generators/xcode/pbxfiletype.h @@ -0,0 +1,47 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2205,16 +1630,105 @@ index 0000000..3818872 +}; + +#endif // PBXFILETYPE_H -diff --git a/src/plugins/generator/xcode/pbxgroup.cpp b/src/plugins/generator/xcode/pbxgroup.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp new file mode 100644 -index 0000000..a27e879 +index 0000000..6b417e7 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxgroup.cpp -@@ -0,0 +1,114 @@ ++++ b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp +@@ -0,0 +1,27 @@ ++#include "pbxframeworksbuildphase.h" ++ ++PBXFrameworksBuildPhase::PBXFrameworksBuildPhase(PBXTarget *parent) : ++ PBXBuildPhase(parent) ++{ ++} ++ ++QString PBXFrameworksBuildPhase::name() const ++{ ++ return QLatin1String("Frameworks"); ++} ++ ++QString PBXFrameworksBuildPhase::isa() const ++{ ++ return QLatin1String("PBXFrameworksBuildPhase"); ++} ++ ++PBXObjectMap PBXFrameworksBuildPhase::toMap() const ++{ ++ PBXObjectMap self = PBXBuildPhase::toMap(); ++ return self; ++} ++ ++QString PBXFrameworksBuildPhase::comment() const ++{ ++ return name(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h +new file mode 100644 +index 0000000..0553089 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h +@@ -0,0 +1,50 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXFRAMEWORKSBUILDPHASE_H ++#define PBXFRAMEWORKSBUILDPHASE_H ++ ++#include "pbxbuildphase.h" ++ ++class PBXFrameworksBuildPhase : public PBXBuildPhase ++{ ++ Q_OBJECT ++public: ++ explicit PBXFrameworksBuildPhase(PBXTarget *parent = 0); ++ ++ QString name() const; ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++}; ++ ++#endif // PBXFRAMEWORKSBUILDPHASE_H +diff --git a/src/lib/corelib/generators/xcode/pbxgroup.cpp b/src/lib/corelib/generators/xcode/pbxgroup.cpp +new file mode 100644 +index 0000000..ea48b22 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxgroup.cpp +@@ -0,0 +1,119 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2278,13 +1792,13 @@ index 0000000..a27e879 + return QLatin1String("PBXGroup"); +} + -+QVariantMap PBXGroup::toMap() const ++PBXObjectMap PBXGroup::toMap() const +{ -+ QVariantMap self = PBXReference::toMap(); ++ PBXObjectMap self = PBXReference::toMap(); + -+ QStringList childIdentifiers; ++ QVariantList childIdentifiers; + foreach (PBXReference *reference, d->children) -+ childIdentifiers += reference->identifier(); ++ childIdentifiers += QVariant::fromValue(reference->identifier()); + + self.insert(QLatin1String("children"), childIdentifiers); + @@ -2325,16 +1839,21 @@ index 0000000..a27e879 + + return fileRefs; +} -diff --git a/src/plugins/generator/xcode/pbxgroup.h b/src/plugins/generator/xcode/pbxgroup.h ++ ++QString PBXGroup::comment() const ++{ ++ return !path().isEmpty() ? path() : PBXReference::comment(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxgroup.h b/src/lib/corelib/generators/xcode/pbxgroup.h new file mode 100644 -index 0000000..660e489 +index 0000000..e03b8eb --- /dev/null -+++ b/src/plugins/generator/xcode/pbxgroup.h -@@ -0,0 +1,69 @@ ++++ b/src/lib/corelib/generators/xcode/pbxgroup.h +@@ -0,0 +1,71 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2380,7 +1899,7 @@ index 0000000..660e489 + static PBXGroup *groupWithName(const QString &name, PBXGroup *parentGroup = 0); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QList children() const; + @@ -2395,21 +1914,23 @@ index 0000000..660e489 + */ + QList addFiles(const QStringList &files, bool copy, bool createGroupsRecursively); + ++ QString comment() const; ++ +private: + PBXGroupPrivate *d; +}; + +#endif // PBXGROUP_H -diff --git a/src/plugins/generator/xcode/pbxlegacytarget.cpp b/src/plugins/generator/xcode/pbxlegacytarget.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxlegacytarget.cpp b/src/lib/corelib/generators/xcode/pbxlegacytarget.cpp new file mode 100644 -index 0000000..e18c97e +index 0000000..7f887b3 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxlegacytarget.cpp -@@ -0,0 +1,127 @@ ++++ b/src/lib/corelib/generators/xcode/pbxlegacytarget.cpp +@@ -0,0 +1,111 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2438,6 +1959,7 @@ index 0000000..e18c97e + +#include "pbxfilereference.h" +#include "pbxlegacytarget.h" ++#include "pbxproject.h" + +class PBXLegacyTargetPrivate +{ @@ -2446,17 +1968,15 @@ index 0000000..e18c97e + QString buildArgumentsString; + QString buildWorkingDirectory; + bool passBuildSettingsInEnvironment; -+ PBXFileReference *productReference; +}; + -+PBXLegacyTarget::PBXLegacyTarget(QObject *parent) : ++PBXLegacyTarget::PBXLegacyTarget(PBXProject *parent) : + PBXTarget(parent), d(new PBXLegacyTargetPrivate) +{ + d->buildToolPath = QLatin1String("/bin/bash"); + d->buildArgumentsString = QLatin1String("$(ACTION)"); + d->buildWorkingDirectory = QLatin1String("$BUILT_PRODUCTS_DIR"); + d->passBuildSettingsInEnvironment = true; -+ d->productReference = NULL; +} + +PBXLegacyTarget::~PBXLegacyTarget() @@ -2469,18 +1989,13 @@ index 0000000..e18c97e + return QLatin1String("PBXLegacyTarget"); +} + -+QVariantMap PBXLegacyTarget::toMap() const ++PBXObjectMap PBXLegacyTarget::toMap() const +{ -+ QVariantMap self = PBXTarget::toMap(); -+ ++ PBXObjectMap self = PBXTarget::toMap(); + self.insert(QLatin1String("buildToolPath"), d->buildToolPath); + self.insert(QLatin1String("buildArgumentsString"), d->buildArgumentsString); + self.insert(QLatin1String("buildWorkingDirectory"), d->buildWorkingDirectory); -+ self.insert(QLatin1String("passBuildSettingsInEnvironment"), d->passBuildSettingsInEnvironment); -+ -+ if (d->productReference) -+ self.insert(QLatin1String("productReference"), d->productReference->identifier()); -+ ++ self.insert(QLatin1String("passBuildSettingsInEnvironment"), d->passBuildSettingsInEnvironment ? 1 : 0); + return self; +} + @@ -2523,26 +2038,16 @@ index 0000000..e18c97e +{ + d->passBuildSettingsInEnvironment = passBuildSettingsInEnvironment; +} -+ -+PBXFileReference *PBXLegacyTarget::productReference() const -+{ -+ return d->productReference; -+} -+ -+void PBXLegacyTarget::setProductReference(PBXFileReference *productReference) -+{ -+ d->productReference = productReference; -+} -diff --git a/src/plugins/generator/xcode/pbxlegacytarget.h b/src/plugins/generator/xcode/pbxlegacytarget.h +diff --git a/src/lib/corelib/generators/xcode/pbxlegacytarget.h b/src/lib/corelib/generators/xcode/pbxlegacytarget.h new file mode 100644 -index 0000000..4006b3b +index 0000000..e6b09d4 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxlegacytarget.h -@@ -0,0 +1,73 @@ ++++ b/src/lib/corelib/generators/xcode/pbxlegacytarget.h +@@ -0,0 +1,65 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2574,8 +2079,6 @@ index 0000000..4006b3b + +#include "pbxtarget.h" + -+class PBXFileReference; -+ +class PBXLegacyTargetPrivate; + +class PBXLegacyTarget : public PBXTarget @@ -2583,11 +2086,11 @@ index 0000000..4006b3b + Q_OBJECT + Q_DISABLE_COPY(PBXLegacyTarget) +public: -+ explicit PBXLegacyTarget(QObject *parent = 0); ++ explicit PBXLegacyTarget(PBXProject *parent = 0); + virtual ~PBXLegacyTarget(); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QString buildToolPath() const; + void setBuildToolPath(const QString &buildToolPath); @@ -2601,27 +2104,21 @@ index 0000000..4006b3b + bool passBuildSettingsInEnvironment() const; + void setPassBuildSettingsInEnvironment(bool passBuildSettingsInEnvironment); + -+ /*! -+ * File reference to the target's output file. -+ */ -+ PBXFileReference *productReference() const; -+ void setProductReference(PBXFileReference *productReference); -+ +private: + PBXLegacyTargetPrivate *d; +}; + +#endif // PBXLEGACYTARGET_H -diff --git a/src/plugins/generator/xcode/pbxnativetarget.cpp b/src/plugins/generator/xcode/pbxnativetarget.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxnativetarget.cpp b/src/lib/corelib/generators/xcode/pbxnativetarget.cpp new file mode 100644 -index 0000000..781dc67 +index 0000000..f9e648c --- /dev/null -+++ b/src/plugins/generator/xcode/pbxnativetarget.cpp -@@ -0,0 +1,83 @@ ++++ b/src/lib/corelib/generators/xcode/pbxnativetarget.cpp +@@ -0,0 +1,68 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2651,21 +2148,20 @@ index 0000000..781dc67 +#include "pbxbuildphase.h" +#include "pbxfilereference.h" +#include "pbxnativetarget.h" ++#include "pbxproject.h" +#include "xcconfigurationlist.h" + +class PBXNativeTargetPrivate +{ +public: + PBXNativeTargetPrivate(); -+ PBXFileReference *productReference; +}; + +PBXNativeTargetPrivate::PBXNativeTargetPrivate() -+ : productReference() +{ +} + -+PBXNativeTarget::PBXNativeTarget(QObject *parent) : ++PBXNativeTarget::PBXNativeTarget(PBXProject *parent) : + PBXTarget(parent), d(new PBXNativeTargetPrivate) +{ +} @@ -2680,37 +2176,23 @@ index 0000000..781dc67 + return QLatin1String("PBXNativeTarget"); +} + -+QVariantMap PBXNativeTarget::toMap() const ++PBXObjectMap PBXNativeTarget::toMap() const +{ -+ QVariantMap self = PBXTarget::toMap(); -+ ++ PBXObjectMap self = PBXTarget::toMap(); + self.insert(QLatin1String("productInstallPath"), QLatin1String("$(HOME)/Applications")); -+ -+ if (d->productReference) -+ self.insert(QLatin1String("productReference"), d->productReference->identifier()); -+ ++ self.insert(QLatin1String("buildRules"), QList()); + return self; +} -+ -+PBXFileReference *PBXNativeTarget::productReference() const -+{ -+ return d->productReference; -+} -+ -+void PBXNativeTarget::setProductReference(PBXFileReference *productReference) -+{ -+ d->productReference = productReference; -+} -diff --git a/src/plugins/generator/xcode/pbxnativetarget.h b/src/plugins/generator/xcode/pbxnativetarget.h +diff --git a/src/lib/corelib/generators/xcode/pbxnativetarget.h b/src/lib/corelib/generators/xcode/pbxnativetarget.h new file mode 100644 -index 0000000..d2ee90f +index 0000000..a06b979 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxnativetarget.h -@@ -0,0 +1,61 @@ ++++ b/src/lib/corelib/generators/xcode/pbxnativetarget.h +@@ -0,0 +1,53 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2742,8 +2224,6 @@ index 0000000..d2ee90f + +#include "pbxtarget.h" + -+class PBXFileReference; -+ +class PBXNativeTargetPrivate; + +class PBXNativeTarget : public PBXTarget @@ -2751,33 +2231,27 @@ index 0000000..d2ee90f + Q_OBJECT + Q_DISABLE_COPY(PBXNativeTarget) +public: -+ explicit PBXNativeTarget(QObject *parent = 0); ++ explicit PBXNativeTarget(PBXProject *parent = 0); + ~PBXNativeTarget(); + + QString isa() const; -+ QVariantMap toMap() const; -+ -+ /*! -+ * File reference to the target's output file. -+ */ -+ PBXFileReference *productReference() const; -+ void setProductReference(PBXFileReference *productReference); ++ PBXObjectMap toMap() const; + +private: + PBXNativeTargetPrivate *d; +}; + +#endif // PBXNATIVETARGET_H -diff --git a/src/plugins/generator/xcode/pbxobject.cpp b/src/plugins/generator/xcode/pbxobject.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxobject.cpp b/src/lib/corelib/generators/xcode/pbxobject.cpp new file mode 100644 -index 0000000..b5fcd13 +index 0000000..0ea69d6 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxobject.cpp -@@ -0,0 +1,69 @@ ++++ b/src/lib/corelib/generators/xcode/pbxobject.cpp +@@ -0,0 +1,96 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2805,9 +2279,13 @@ index 0000000..b5fcd13 +****************************************************************************/ + +#include "pbxobject.h" ++#include ++#include +#include +#include + ++static QMap generatedIdentifiers; ++ +class PBXObjectPrivate +{ +public: @@ -2824,35 +2302,58 @@ index 0000000..b5fcd13 + delete d; +} + -+QString PBXObject::identifier() const ++QString PBXObject::createIdentifier(const QByteArray &hashData) +{ -+ if (d->identifier.isEmpty()) -+ d->identifier = QUuid::createUuid().toByteArray().left(12).toHex().toUpper(); -+ return d->identifier; ++ if (qgetenv("QBS_XCODE_GENERATOR_DETERMINISTIC_IDENTIFIERS") == QByteArray("1")) { ++ QCryptographicHash hash(QCryptographicHash::Sha3_512); ++ hash.addData(hashData); ++ const QString result = hash.result().left(12).toHex().toUpper(); ++ if (generatedIdentifiers.contains(result) ++ /*&& generatedIdentifiers.value(result) != hashData*/) { ++ // hash collision! ++ fprintf(stderr, "hash collision %s - %s\n", result.toUtf8().data(), hashData.data()); ++ abort(); ++ } ++ generatedIdentifiers.insert(result, hashData); ++ return result; ++ } ++ ++ return QUuid::createUuid().toByteArray().left(12).toHex().toUpper(); +} + -+QVariantMap PBXObject::toMap() const ++PBXObjectIdentifier PBXObject::identifier() const +{ -+ QVariantMap self; -+ self.insert(QLatin1String("__comment__"), comment()); ++ if (d->identifier.isEmpty()) ++ d->identifier = createIdentifier(isa().toUtf8() + QByteArray(":") + hashData()); ++ return PBXObjectIdentifier(d->identifier, isa(), comment()); ++} ++ ++PBXObjectMap PBXObject::toMap() const ++{ ++ PBXObjectMap self; + self.insert(QLatin1String("isa"), isa()); + return self; +} + +QString PBXObject::comment() const +{ -+ return QString(); ++ return isa(); +} -diff --git a/src/plugins/generator/xcode/pbxobject.h b/src/plugins/generator/xcode/pbxobject.h ++ ++QByteArray PBXObject::hashData() const ++{ ++ return QByteArray(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxobject.h b/src/lib/corelib/generators/xcode/pbxobject.h new file mode 100644 -index 0000000..73ebdec +index 0000000..d4ede7e --- /dev/null -+++ b/src/plugins/generator/xcode/pbxobject.h -@@ -0,0 +1,59 @@ ++++ b/src/lib/corelib/generators/xcode/pbxobject.h +@@ -0,0 +1,124 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2888,6 +2389,68 @@ index 0000000..73ebdec + +class PBXObjectPrivate; + ++class PBXObjectIdentifier { ++public: ++ PBXObjectIdentifier() { ++ } ++ ++ PBXObjectIdentifier(const PBXObjectIdentifier &other) { ++ _key = other._key; ++ _isa = other._isa; ++ _comment = other._comment; ++ } ++ ++ PBXObjectIdentifier(const QLatin1String &identifier, const QString &isa = QString(), const QString &comment = QString()) { ++ _key = identifier; ++ _isa = isa; ++ _comment = comment; ++ } ++ ++ PBXObjectIdentifier(const QString &identifier, const QString &isa = QString(), const QString &comment = QString()) { ++ _key = identifier; ++ _isa = isa; ++ _comment = comment; ++ } ++ ++ QString toString() const { ++ return identifier(); ++ } ++ ++ QString identifier() const { ++ return _key; ++ } ++ ++ QString isa() const { ++ return _isa; ++ } ++ ++ QString comment() const { ++ return _comment; ++ } ++ ++ bool operator==(const PBXObjectIdentifier &other) const { ++ return _key == other._key && _isa == other._isa && _comment == other._comment; ++ } ++ ++ bool operator<(const PBXObjectIdentifier &other) const { ++ return _isa + _key < other._isa + other._key; ++ } ++ ++private: ++ QString _key; ++ QString _isa; ++ QString _comment; ++}; ++ ++Q_DECLARE_METATYPE(PBXObjectIdentifier) ++ ++inline bool qHash(const PBXObjectIdentifier &other) { ++ return qHash(other.toString()); ++} ++ ++typedef QMap PBXObjectMap; ++Q_DECLARE_METATYPE(PBXObjectMap) ++ +class PBXObject : public QObject +{ + Q_OBJECT @@ -2898,26 +2461,29 @@ index 0000000..73ebdec +public: + virtual ~PBXObject(); + -+ QString identifier() const; ++ static QString createIdentifier(const QByteArray &hashData); ++ ++ PBXObjectIdentifier identifier() const; + virtual QString isa() const = 0; -+ virtual QVariantMap toMap() const; ++ virtual PBXObjectMap toMap() const; + virtual QString comment() const; ++ virtual QByteArray hashData() const; + +private: + PBXObjectPrivate *d; +}; + +#endif // PBXOBJECT_H -diff --git a/src/plugins/generator/xcode/pbxproducttype.cpp b/src/plugins/generator/xcode/pbxproducttype.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxproducttype.cpp b/src/lib/corelib/generators/xcode/pbxproducttype.cpp new file mode 100644 -index 0000000..4f0bc00 +index 0000000..657b020 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxproducttype.cpp -@@ -0,0 +1,56 @@ ++++ b/src/lib/corelib/generators/xcode/pbxproducttype.cpp +@@ -0,0 +1,75 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2960,6 +2526,8 @@ index 0000000..4f0bc00 + return QLatin1String("com.apple.product-type.library.dynamic"); + case Framework: + return QLatin1String("com.apple.product-type.framework"); ++ case StaticFramework: ++ return QLatin1String("com.apple.product-type.framework.static"); + case Bundle: + return QLatin1String("com.apple.product-type.bundle"); + case KernelExtension: @@ -2968,18 +2536,35 @@ index 0000000..4f0bc00 + return QLatin1String("com.apple.product-type.kernel-extension.iokit"); + } + ++ QLatin1String("com.apple.product-type.application.java"); ++ QLatin1String("com.apple.product-type.application.shallow"); ++ QLatin1String("com.apple.product-type.app-extension"); ++ QLatin1String("com.apple.product-type.bundle.shallow"); ++ QLatin1String("com.apple.product-type.bundle.unit-test"); ++ QLatin1String("com.apple.product-type.bundle.ocunit-test"); ++ QLatin1String("com.apple.product-type.framework.shallow"); ++ QLatin1String("com.apple.product-type.in-app-purchase-content"); ++ QLatin1String("com.apple.product-type.kernel-extension.shallow"); ++ QLatin1String("com.apple.product-type.kernel-extension.iokit.shallow"); ++ QLatin1String("com.apple.product-type.library.java.archive"); ++ QLatin1String("com.apple.product-type.objfile"); ++ QLatin1String("com.apple.product-type.pluginkit-plugin"); ++ QLatin1String("com.apple.product-type.spotlight-importer"); ++ QLatin1String("com.apple.product-type.tool.java"); ++ QLatin1String("com.apple.product-type.xpc-service"); ++ + return QString(); +} -diff --git a/src/plugins/generator/xcode/pbxproducttype.h b/src/plugins/generator/xcode/pbxproducttype.h +diff --git a/src/lib/corelib/generators/xcode/pbxproducttype.h b/src/lib/corelib/generators/xcode/pbxproducttype.h new file mode 100644 -index 0000000..4d48f3c +index 0000000..cf2e48e --- /dev/null -+++ b/src/plugins/generator/xcode/pbxproducttype.h -@@ -0,0 +1,52 @@ ++++ b/src/lib/corelib/generators/xcode/pbxproducttype.h +@@ -0,0 +1,53 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3019,6 +2604,7 @@ index 0000000..4d48f3c + LibraryStatic, + LibraryDynamic, + Framework, ++ StaticFramework, + Bundle, + KernelExtension, + KernelExtensionIOKit @@ -3028,16 +2614,16 @@ index 0000000..4d48f3c +} + +#endif // PBXPRODUCTTYPE_H -diff --git a/src/plugins/generator/xcode/pbxproject.cpp b/src/plugins/generator/xcode/pbxproject.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxproject.cpp b/src/lib/corelib/generators/xcode/pbxproject.cpp new file mode 100644 -index 0000000..cbbfef2 +index 0000000..3ab709c --- /dev/null -+++ b/src/plugins/generator/xcode/pbxproject.cpp -@@ -0,0 +1,218 @@ ++++ b/src/lib/corelib/generators/xcode/pbxproject.cpp +@@ -0,0 +1,333 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3067,23 +2653,33 @@ index 0000000..cbbfef2 +#include "opensteppropertylist.h" +#include "pbxbuildphase.h" +#include "pbxbuildfile.h" ++#include "pbxcontaineritemproxy.h" +#include "pbxgroup.h" +#include "pbxproject.h" +#include "pbxtarget.h" ++#include "pbxtargetdependency.h" +#include "xcbuildconfiguration.h" +#include "xcconfigurationlist.h" +#include ++#include +#include + ++static const QString kClassPrefixAttribute = QLatin1String("CLASSPREFIX"); ++static const QString kLastUpgradeCheckAttribute = QLatin1String("LastUpgradeCheck"); ++static const QString kOrganizationNameAttribute = QLatin1String("ORGANIZATIONNAME"); ++static const QString kTargetAttributesAttribute = QLatin1String("TargetAttributes"); ++ +class PBXProjectPrivate +{ +public: + QString name; + QString projectAbsolutePath; + QString projectDirPath; ++ PBXGroup *frameworksRefGroup; + PBXGroup *productRefGroup; + QList targets; + XCConfigurationList *configurationList; ++ QVariantMap attributes; +}; + +PBXProject::PBXProject(const QString &projectAbsolutePath, QObject *parent) : @@ -3092,6 +2688,9 @@ index 0000000..cbbfef2 + d->projectAbsolutePath = projectAbsolutePath; + d->configurationList = new XCConfigurationList(this); + ++ d->frameworksRefGroup = new PBXGroup(rootGroup()); ++ d->frameworksRefGroup->setName(QLatin1String("Frameworks")); ++ + d->productRefGroup = new PBXGroup(rootGroup()); + d->productRefGroup->setName(QLatin1String("Products")); + d->productRefGroup->setSourceTree(PBX::Group); @@ -3107,37 +2706,57 @@ index 0000000..cbbfef2 + return QLatin1String("PBXProject"); +} + -+QVariantMap PBXProject::toMap() const ++PBXObjectMap PBXProject::toMap() const +{ -+ // HACK: Make sure "Products" group is always at the bottom ++ // HACK: Make sure "Frameworks", "Products" groups are always at the bottom ++ rootGroup()->removeItem(d->frameworksRefGroup); + rootGroup()->removeItem(d->productRefGroup); ++ rootGroup()->addItem(d->frameworksRefGroup); + rootGroup()->addItem(d->productRefGroup); + -+ QVariantMap self = PBXObject::toMap(); -+ self.insert(QLatin1String("buildConfigurationList"), buildConfigurationList()->identifier()); ++ PBXObjectMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("attributes"), d->attributes); ++ self.insert(QLatin1String("buildConfigurationList"), QVariant::fromValue(buildConfigurationList()->identifier())); + self.insert(QLatin1String("compatibilityVersion"), QLatin1String("Xcode 3.2")); + self.insert(QLatin1String("developmentRegion"), QLatin1String("English")); + self.insert(QLatin1String("hasScannedForEncodings"), QLatin1String("1")); + self.insert(QLatin1String("knownRegions"), QStringList() << QLatin1String("en")); -+ self.insert(QLatin1String("mainGroup"), rootGroup()->identifier()); -+ self.insert(QLatin1String("productRefGroup"), productRefGroup()->identifier()); ++ self.insert(QLatin1String("mainGroup"), QVariant::fromValue(rootGroup()->identifier())); ++ self.insert(QLatin1String("productRefGroup"), QVariant::fromValue(productRefGroup()->identifier())); + self.insert(QLatin1String("projectDirPath"), d->projectDirPath); -+ self.insert(QLatin1String("projectReferences"), QLatin1String("")); // array of map { ProductGroup:, ProjectRef: }? ++ //self.insert(QLatin1String("projectReferences"), QVariantList()); // array of map { ProductGroup:, ProjectRef: }? + self.insert(QLatin1String("projectRoot"), QLatin1String("")); + -+ QStringList targetIdentifiers; ++ QVariantList targetIdentifiers; + foreach (PBXTarget *target, targets()) -+ targetIdentifiers << target->identifier(); ++ targetIdentifiers += QVariant::fromValue(target->identifier()); + self.insert(QLatin1String("targets"), targetIdentifiers); + + return self; +} + ++QString PBXProject::comment() const ++{ ++ return QLatin1String("Project object"); ++} ++ ++QByteArray PBXProject::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ data.append(d->name); ++ return data; ++} ++ +PBXGroup *PBXProject::productRefGroup() const +{ + return d->productRefGroup; +} + ++PBXGroup *PBXProject::frameworksRefGroup() const ++{ ++ return d->frameworksRefGroup; ++} ++ +QList PBXProject::targets() const +{ + return d->targets; @@ -3169,6 +2788,74 @@ index 0000000..cbbfef2 + d->name = name; +} + ++QVariantMap PBXProject::attributes() const ++{ ++ return d->attributes; ++} ++ ++void PBXProject::setAttributes(const QVariantMap &attributes) ++{ ++ d->attributes = attributes; ++} ++ ++QVariant PBXProject::attribute(const QString &name) const ++{ ++ return d->attributes[name]; ++} ++ ++void PBXProject::setAttribute(const QString &name, const QVariant &value) ++{ ++ d->attributes[name] = value; ++} ++ ++void PBXProject::removeAttribute(const QString &name) ++{ ++ d->attributes.remove(name); ++} ++ ++PBXProject::Version PBXProject::lastUpgradeCheck() const ++{ ++ const QString s = d->attributes[kLastUpgradeCheckAttribute].toString().mid(0, 3); ++ Version v; ++ v.major = s.left(2).toInt(); ++ v.minor = s.right(1).toInt(); ++ return v; ++} ++ ++void PBXProject::setLastUpgradeCheck(const PBXProject::Version &version) ++{ ++ const int major = qBound(0, version.major, 99); ++ const int minor = qBound(0, version.minor, 9); ++ d->attributes[kLastUpgradeCheckAttribute] = ++ QString::number(major).rightJustified(2, QLatin1Char('0')) + ++ QString::number(minor).leftJustified(2, QLatin1Char('0')); ++} ++ ++QString PBXProject::classPrefix() const ++{ ++ return d->attributes[kClassPrefixAttribute].toString(); ++} ++ ++void PBXProject::setClassPrefix(const QString &classPrefix) ++{ ++ d->attributes[kClassPrefixAttribute] = classPrefix; ++} ++ ++QString PBXProject::organizationName() const ++{ ++ return d->attributes[kOrganizationNameAttribute].toString(); ++} ++ ++void PBXProject::setOrganizationName(const QString &organizationName) ++{ ++ d->attributes[kOrganizationNameAttribute] = organizationName; ++} ++ ++QString PBXProject::projectWrapperPath() const ++{ ++ return QFileInfo(d->projectAbsolutePath).absolutePath(); ++} ++ +QString PBXProject::projectDirPath() const +{ + return d->projectDirPath; @@ -3179,56 +2866,70 @@ index 0000000..cbbfef2 + d->projectDirPath = projectDirPath; +} + ++void PBXProject::setBuildSetting(const QString &key, const QVariant &value) ++{ ++ foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) ++ configuration->setBuildSetting(key, value); ++} ++ +XCConfigurationList *PBXProject::buildConfigurationList() const +{ + return d->configurationList; +} + -+static void writeGroup(QVariantMap &objects, PBXGroup *group) ++static void writeGroup(PBXObjectMap &objects, PBXGroup *group) +{ -+ objects.insert(group->identifier(), group->toMap()); ++ objects.insert(group->identifier(), QVariant::fromValue(group->toMap())); + foreach (PBXReference *child, group->children()) + { -+ PBXGroup *group = dynamic_cast(child); -+ if (group) ++ if (PBXGroup *group = dynamic_cast(child)) + writeGroup(objects, group); + else -+ objects.insert(child->identifier(), child->toMap()); ++ objects.insert(child->identifier(), QVariant::fromValue(child->toMap())); + } +} + +bool PBXProject::writeToFileSystemProjectFile(bool projectWrite, bool userWrite, bool checkNeedsRevert) +{ -+ QVariantMap objects; -+ objects.insert(identifier(), toMap()); ++ PBXObjectMap objects; ++ objects.insert(identifier(), QVariant::fromValue(toMap())); + + // Add the project's root group (i.e. the root node in the file tree which contains everything) + writeGroup(objects, rootGroup()); + + // Add the project's build configuration list and build configurations to the object map -+ objects.insert(d->configurationList->identifier(), d->configurationList->toMap()); ++ objects.insert(d->configurationList->identifier(), QVariant::fromValue(d->configurationList->toMap())); + foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) -+ objects.insert(configuration->identifier(), configuration->toMap()); ++ objects.insert(configuration->identifier(), QVariant::fromValue(configuration->toMap())); + + // Add the build targets to the object map + foreach (PBXTarget *target, targets()) + { -+ objects.insert(target->identifier(), target->toMap()); ++ objects.insert(target->identifier(), QVariant::fromValue(target->toMap())); + + // Add the target's build configuration list and build configurations to the object map -+ objects.insert(target->buildConfigurationList()->identifier(), target->buildConfigurationList()->toMap()); ++ objects.insert(target->buildConfigurationList()->identifier(), QVariant::fromValue(target->buildConfigurationList()->toMap())); + foreach (XCBuildConfiguration *configuration, target->buildConfigurationList()->buildConfigurations()) -+ objects.insert(configuration->identifier(), configuration->toMap()); ++ objects.insert(configuration->identifier(), QVariant::fromValue(configuration->toMap())); ++ ++ // Add the target's dependency objects to the object map ++ foreach (PBXTargetDependency *dependency, target->targetDependencies()) { ++ objects.insert(dependency->identifier(), QVariant::fromValue(dependency->toMap())); ++ ++ if (dependency->targetProxy()) { ++ objects.insert(dependency->targetProxy()->identifier(), QVariant::fromValue(dependency->targetProxy()->toMap())); ++ } ++ } + + // Add the target's build phases... + foreach (PBXBuildPhase *buildPhase, target->buildPhases()) + { -+ objects.insert(buildPhase->identifier(), buildPhase->toMap()); ++ objects.insert(buildPhase->identifier(), QVariant::fromValue(buildPhase->toMap())); + + // And each of the files within + foreach (PBXBuildFile *buildFile, buildPhase->buildFiles()) + { -+ objects.insert(buildFile->identifier(), buildFile->toMap()); ++ objects.insert(buildFile->identifier(), QVariant::fromValue(buildFile->toMap())); + } + } + } @@ -3236,12 +2937,12 @@ index 0000000..cbbfef2 + // add all subobjects to objects map! + + // Build the root pbxproj object map -+ QVariantMap map; ++ PBXObjectMap map; + map.insert(QLatin1String("archiveVersion"), QLatin1String("1")); + map.insert(QLatin1String("classes"), QVariantMap()); + map.insert(QLatin1String("objectVersion"), QLatin1String("46")); -+ map.insert(QLatin1String("objects"), objects); -+ map.insert(QLatin1String("rootObject"), identifier()); ++ map.insert(QLatin1String("objects"), QVariant::fromValue(objects)); ++ map.insert(QLatin1String("rootObject"), QVariant::fromValue(identifier())); + + QFile file(d->projectAbsolutePath); + if (file.open(QIODevice::WriteOnly)) @@ -3252,16 +2953,16 @@ index 0000000..cbbfef2 + + return file.error() == QFile::NoError; +} -diff --git a/src/plugins/generator/xcode/pbxproject.h b/src/plugins/generator/xcode/pbxproject.h +diff --git a/src/lib/corelib/generators/xcode/pbxproject.h b/src/lib/corelib/generators/xcode/pbxproject.h new file mode 100644 -index 0000000..36fa77e +index 0000000..7a2ed88 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxproject.h -@@ -0,0 +1,80 @@ ++++ b/src/lib/corelib/generators/xcode/pbxproject.h +@@ -0,0 +1,114 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3303,11 +3004,22 @@ index 0000000..36fa77e + Q_OBJECT + Q_DISABLE_COPY(PBXProject) +public: ++ typedef struct { ++ int major; ++ int minor; ++ } Version; ++ + explicit PBXProject(const QString &projectAbsolutePath, QObject *parent = 0); + ~PBXProject(); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++ ++ QByteArray hashData() const; ++ ++ PBXGroup *frameworksRefGroup() const; + + /*! + * Group in the root of the Xcode file tree which contains references to product target files. @@ -3327,9 +3039,32 @@ index 0000000..36fa77e + QString name() const; + void setName(const QString &name); + ++ QVariantMap attributes() const; ++ void setAttributes(const QVariantMap &attributes); ++ ++ QVariant attribute(const QString &name) const; ++ void setAttribute(const QString &name, const QVariant &value); ++ void removeAttribute(const QString &name); ++ ++ Version lastUpgradeCheck() const; ++ void setLastUpgradeCheck(const Version &version); ++ ++ QString classPrefix() const; ++ void setClassPrefix(const QString &classPrefix); ++ ++ QString organizationName() const; ++ void setOrganizationName(const QString &organizationName); ++ ++ /*! ++ * Returns the path of the .xcodeproj wrapper directory. ++ */ ++ QString projectWrapperPath() const; ++ + QString projectDirPath() const; + void setProjectDirPath(const QString &projectDirPath); + ++ void setBuildSetting(const QString &key, const QVariant &value); ++ + XCConfigurationList *buildConfigurationList() const; + bool writeToFileSystemProjectFile(bool projectWrite, bool userWrite, bool checkNeedsRevert); + @@ -3338,16 +3073,16 @@ index 0000000..36fa77e +}; + +#endif // PBXPROJECT_H -diff --git a/src/plugins/generator/xcode/pbxreference.cpp b/src/plugins/generator/xcode/pbxreference.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxreference.cpp b/src/lib/corelib/generators/xcode/pbxreference.cpp new file mode 100644 -index 0000000..2d3d648 +index 0000000..651f6fe --- /dev/null -+++ b/src/plugins/generator/xcode/pbxreference.cpp -@@ -0,0 +1,107 @@ ++++ b/src/lib/corelib/generators/xcode/pbxreference.cpp +@@ -0,0 +1,127 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3400,10 +3135,13 @@ index 0000000..2d3d648 + delete d; +} + -+QVariantMap PBXReference::toMap() const ++PBXObjectMap PBXReference::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); -+ self.insert(QLatin1String("name"), name()); ++ PBXObjectMap self = PBXObject::toMap(); ++ ++ if (!name().isEmpty() && name() != path()) { ++ self.insert(QLatin1String("name"), name()); ++ } + + // Xcode crashes if path is empty, even though it should never be + if (!d->path.isEmpty()) @@ -3451,16 +3189,33 @@ index 0000000..2d3d648 +{ + return name(); +} -diff --git a/src/plugins/generator/xcode/pbxreference.h b/src/plugins/generator/xcode/pbxreference.h ++ ++QByteArray PBXReference::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ if (!d->path.isEmpty()) { ++ QStringList pathComponents; ++ const PBXReference *ref = this; ++ do { ++ pathComponents.insert(0, ref->path().toUtf8()); ++ } while ((ref = dynamic_cast(ref->parent()))); ++ ++ data.append(pathComponents.join("/").toUtf8()); ++ } else if (!d->name.isEmpty()) { ++ data.append(d->name.toUtf8()); ++ } ++ return data; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxreference.h b/src/lib/corelib/generators/xcode/pbxreference.h new file mode 100644 -index 0000000..26b393c +index 0000000..3400a25 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxreference.h -@@ -0,0 +1,70 @@ ++++ b/src/lib/corelib/generators/xcode/pbxreference.h +@@ -0,0 +1,72 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3506,7 +3261,7 @@ index 0000000..26b393c + virtual ~PBXReference(); + +public: -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QString name() const; + void setName(const QString &name); @@ -3522,21 +3277,23 @@ index 0000000..26b393c + + QString comment() const; + ++ QByteArray hashData() const; ++ +private: + PBXReferencePrivate *d; +}; + +#endif // PBXREFERENCE_H -diff --git a/src/plugins/generator/xcode/pbxsourcesbuildphase.cpp b/src/plugins/generator/xcode/pbxsourcesbuildphase.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp new file mode 100644 -index 0000000..8253287 +index 0000000..902d05d --- /dev/null -+++ b/src/plugins/generator/xcode/pbxsourcesbuildphase.cpp -@@ -0,0 +1,47 @@ ++++ b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp +@@ -0,0 +1,57 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3565,31 +3322,41 @@ index 0000000..8253287 + +#include "pbxsourcesbuildphase.h" + -+PBXSourcesBuildPhase::PBXSourcesBuildPhase(QObject *parent) : ++PBXSourcesBuildPhase::PBXSourcesBuildPhase(PBXTarget *parent) : + PBXBuildPhase(parent) +{ +} + ++QString PBXSourcesBuildPhase::name() const ++{ ++ return QLatin1String("Sources"); ++} ++ +QString PBXSourcesBuildPhase::isa() const +{ + return QLatin1String("PBXSourcesBuildPhase"); +} + -+QVariantMap PBXSourcesBuildPhase::toMap() const ++PBXObjectMap PBXSourcesBuildPhase::toMap() const +{ -+ QVariantMap self = PBXBuildPhase::toMap(); ++ PBXObjectMap self = PBXBuildPhase::toMap(); + return self; +} -diff --git a/src/plugins/generator/xcode/pbxsourcesbuildphase.h b/src/plugins/generator/xcode/pbxsourcesbuildphase.h ++ ++QString PBXSourcesBuildPhase::comment() const ++{ ++ return name(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h new file mode 100644 -index 0000000..d5d6f7d +index 0000000..e841720 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxsourcesbuildphase.h -@@ -0,0 +1,49 @@ ++++ b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h +@@ -0,0 +1,53 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3628,23 +3395,27 @@ index 0000000..d5d6f7d +{ + Q_OBJECT +public: -+ explicit PBXSourcesBuildPhase(QObject *parent = 0); ++ explicit PBXSourcesBuildPhase(PBXTarget *parent = 0); ++ ++ QString name() const; + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; +}; + +#endif // PBXSOURCESBUILDPHASE_H -diff --git a/src/plugins/generator/xcode/pbxsourcetree.cpp b/src/plugins/generator/xcode/pbxsourcetree.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxsourcetree.cpp b/src/lib/corelib/generators/xcode/pbxsourcetree.cpp new file mode 100644 -index 0000000..1bea8d6 +index 0000000..d2163aa --- /dev/null -+++ b/src/plugins/generator/xcode/pbxsourcetree.cpp ++++ b/src/lib/corelib/generators/xcode/pbxsourcetree.cpp @@ -0,0 +1,50 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3691,16 +3462,16 @@ index 0000000..1bea8d6 + + return QString(); +} -diff --git a/src/plugins/generator/xcode/pbxsourcetree.h b/src/plugins/generator/xcode/pbxsourcetree.h +diff --git a/src/lib/corelib/generators/xcode/pbxsourcetree.h b/src/lib/corelib/generators/xcode/pbxsourcetree.h new file mode 100644 -index 0000000..7f77592 +index 0000000..f5252eb --- /dev/null -+++ b/src/plugins/generator/xcode/pbxsourcetree.h ++++ b/src/lib/corelib/generators/xcode/pbxsourcetree.h @@ -0,0 +1,52 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3749,16 +3520,16 @@ index 0000000..7f77592 +} + +#endif // PBXSOURCETREE_H -diff --git a/src/plugins/generator/xcode/pbxtarget.cpp b/src/plugins/generator/xcode/pbxtarget.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxtarget.cpp b/src/lib/corelib/generators/xcode/pbxtarget.cpp new file mode 100644 -index 0000000..5b15959 +index 0000000..03f4407 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxtarget.cpp -@@ -0,0 +1,139 @@ ++++ b/src/lib/corelib/generators/xcode/pbxtarget.cpp +@@ -0,0 +1,192 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3785,8 +3556,12 @@ index 0000000..5b15959 +** +****************************************************************************/ + ++#include "pbxfilereference.h" ++#include "pbxframeworksbuildphase.h" ++#include "pbxproject.h" +#include "pbxsourcesbuildphase.h" +#include "pbxtarget.h" ++#include "pbxtargetdependency.h" +#include "xcbuildconfiguration.h" +#include "xcconfigurationlist.h" + @@ -3798,18 +3573,22 @@ index 0000000..5b15959 + QString productName; + PBX::PBXProductType productType; + XCConfigurationList *configurationList; ++ PBXFrameworksBuildPhase *frameworksBuildPhase; + PBXSourcesBuildPhase *sourcesBuildPhase; ++ PBXFileReference *productReference; ++ QList targetDependencies; +}; + +PBXTargetPrivate::PBXTargetPrivate() -+ : name(), productType(), configurationList(), sourcesBuildPhase() ++ : name(), productType(), configurationList(), sourcesBuildPhase(), productReference(), targetDependencies() +{ +} + -+PBXTarget::PBXTarget(QObject *parent) : ++PBXTarget::PBXTarget(PBXProject *parent) : + PBXObject(parent), d(new PBXTargetPrivate) +{ + d->configurationList = new XCConfigurationList(this); ++ d->frameworksBuildPhase = new PBXFrameworksBuildPhase(this); + d->sourcesBuildPhase = new PBXSourcesBuildPhase(this); +} + @@ -3818,21 +3597,27 @@ index 0000000..5b15959 + delete d; +} + -+QVariantMap PBXTarget::toMap() const ++PBXObjectMap PBXTarget::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); ++ PBXObjectMap self = PBXObject::toMap(); + self.insert(QLatin1String("name"), name()); + self.insert(QLatin1String("productName"), productName()); + self.insert(QLatin1String("productType"), PBX::productTypeString(d->productType)); + -+ self.insert(QLatin1String("buildConfigurationList"), buildConfigurationList()->identifier()); ++ self.insert(QLatin1String("buildConfigurationList"), QVariant::fromValue(buildConfigurationList()->identifier())); + -+ QStringList buildPhaseReferences; ++ QVariantList buildPhaseReferences; + foreach (PBXBuildPhase *buildPhase, buildPhases()) -+ buildPhaseReferences += buildPhase->identifier(); ++ buildPhaseReferences += QVariant::fromValue(buildPhase->identifier()); + self.insert(QLatin1String("buildPhases"), buildPhaseReferences); + -+ self.insert(QLatin1String("dependencies"), QStringList()); ++ QVariantList targetDependencyReferences; ++ foreach (PBXTargetDependency *dependency, d->targetDependencies) ++ targetDependencyReferences += QVariant::fromValue(dependency->identifier()); ++ self.insert(QLatin1String("dependencies"), targetDependencyReferences); ++ ++ if (d->productReference) ++ self.insert(QLatin1String("productReference"), QVariant::fromValue(d->productReference->identifier())); + + return self; +} @@ -3872,6 +3657,22 @@ index 0000000..5b15959 + return d->configurationList; +} + ++QList &PBXTarget::targetDependencies() const ++{ ++ return d->targetDependencies; ++} ++ ++QVariant PBXTarget::buildSetting(const QString &key, const QString &buildConfigurationName) ++{ ++ foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) { ++ if (configuration->name() == buildConfigurationName) { ++ return configuration->buildSetting(key); ++ } ++ } ++ ++ return QVariant(); ++} ++ +void PBXTarget::setBuildSetting(const QString &key, const QVariant &value) +{ + foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) @@ -3881,10 +3682,16 @@ index 0000000..5b15959 +QList PBXTarget::buildPhases() const +{ + QList phases; ++ phases.append(d->frameworksBuildPhase); + phases.append(d->sourcesBuildPhase); + return phases; +} + ++PBXBuildPhase *PBXTarget::defaultFrameworksBuildPhase() ++{ ++ return d->frameworksBuildPhase; ++} ++ +PBXBuildPhase *PBXTarget::defaultSourceCodeBuildPhase() +{ + return d->sourcesBuildPhase; @@ -3894,16 +3701,33 @@ index 0000000..5b15959 +{ + return name(); +} -diff --git a/src/plugins/generator/xcode/pbxtarget.h b/src/plugins/generator/xcode/pbxtarget.h ++ ++QByteArray PBXTarget::hashData() const ++{ ++ QByteArray hashData = PBXObject::hashData(); ++ hashData.append(d->name.toUtf8()); ++ return hashData; ++} ++ ++PBXFileReference *PBXTarget::productReference() const ++{ ++ return d->productReference; ++} ++ ++void PBXTarget::setProductReference(PBXFileReference *productReference) ++{ ++ d->productReference = productReference; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxtarget.h b/src/lib/corelib/generators/xcode/pbxtarget.h new file mode 100644 -index 0000000..6b8f5b3 +index 0000000..e915481 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxtarget.h -@@ -0,0 +1,86 @@ ++++ b/src/lib/corelib/generators/xcode/pbxtarget.h +@@ -0,0 +1,100 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3938,6 +3762,9 @@ index 0000000..6b8f5b3 +#include + +class PBXBuildPhase; ++class PBXFileReference; ++class PBXProject; ++class PBXTargetDependency; +class XCConfigurationList; + +class PBXTargetPrivate; @@ -3947,10 +3774,10 @@ index 0000000..6b8f5b3 + Q_OBJECT + Q_DISABLE_COPY(PBXTarget) +public: -+ explicit PBXTarget(QObject *parent = 0); ++ explicit PBXTarget(PBXProject *parent = 0); + ~PBXTarget(); + -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QString name() const; + void setName(const QString &name); @@ -3962,12 +3789,21 @@ index 0000000..6b8f5b3 + void setProductType(PBX::PBXProductType productType); + + /*! ++ * File reference to the target's output file. ++ */ ++ PBXFileReference *productReference() const; ++ void setProductReference(PBXFileReference *productReference); ++ ++ /*! + * List of the target's build configurations. This is never NULL. + */ + XCConfigurationList *buildConfigurationList() const; + ++ QList &targetDependencies() const; ++ + QString expandedValue(const QString &string, void *buildParameters) const; + ++ QVariant buildSetting(const QString &key, const QString &buildConfigurationName); + void setBuildSetting(const QString &key, const QVariant &value); + + QList buildPhases() const; @@ -3981,21 +3817,199 @@ index 0000000..6b8f5b3 + + QString comment() const; + ++ QByteArray hashData() const; ++ +private: + PBXTargetPrivate *d; +}; + +#endif // PBXTARGET_H -diff --git a/src/plugins/generator/xcode/xcbuildconfiguration.cpp b/src/plugins/generator/xcode/xcbuildconfiguration.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxtargetdependency.cpp b/src/lib/corelib/generators/xcode/pbxtargetdependency.cpp new file mode 100644 -index 0000000..8711d1f +index 0000000..2eedcd6 --- /dev/null -+++ b/src/plugins/generator/xcode/xcbuildconfiguration.cpp -@@ -0,0 +1,82 @@ ++++ b/src/lib/corelib/generators/xcode/pbxtargetdependency.cpp +@@ -0,0 +1,99 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxcontaineritemproxy.h" ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "pbxtargetdependency.h" ++ ++class PBXTargetDependencyPrivate ++{ ++public: ++ PBXTargetDependencyPrivate(); ++ PBXContainerItemProxy *targetProxy; ++}; ++ ++PBXTargetDependencyPrivate::PBXTargetDependencyPrivate() ++ : targetProxy() ++{ ++} ++ ++PBXTargetDependency::PBXTargetDependency(PBXProject *parent) ++ : PBXObject(parent), d(new PBXTargetDependencyPrivate) ++{ ++ d->targetProxy = new PBXContainerItemProxy(this); ++ d->targetProxy->setContainerPortal(parent); ++} ++ ++PBXTargetDependency::~PBXTargetDependency() ++{ ++ delete d; ++} ++ ++QString PBXTargetDependency::isa() const ++{ ++ return QLatin1String("PBXTargetDependency"); ++} ++ ++PBXObjectMap PBXTargetDependency::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->targetProxy) { ++ self.insert(QLatin1String("targetProxy"), QVariant::fromValue(d->targetProxy->identifier())); ++ if (d->targetProxy->target()) ++ self.insert(QLatin1String("target"), QVariant::fromValue(d->targetProxy->target()->identifier())); ++ } ++ return self; ++} ++ ++QString PBXTargetDependency::comment() const ++{ ++ return PBXObject::comment(); ++} ++ ++PBXTarget *PBXTargetDependency::target() const ++{ ++ return d->targetProxy->target(); ++} ++ ++void PBXTargetDependency::setTarget(PBXTarget *target) ++{ ++ d->targetProxy->setTarget(target); ++} ++ ++PBXContainerItemProxy *PBXTargetDependency::targetProxy() const ++{ ++ return d->targetProxy; ++} ++ ++void PBXTargetDependency::setTargetProxy(PBXContainerItemProxy *targetProxy) ++{ ++ d->targetProxy = targetProxy; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxtargetdependency.h b/src/lib/corelib/generators/xcode/pbxtargetdependency.h +new file mode 100644 +index 0000000..7a146cb +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxtargetdependency.h +@@ -0,0 +1,65 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXTARGETDEPENDENCY_H ++#define PBXTARGETDEPENDENCY_H ++ ++#include "pbxobject.h" ++ ++class PBXContainerItemProxy; ++class PBXProject; ++class PBXTarget; ++class PBXTargetDependencyPrivate; ++ ++class PBXTargetDependency : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXTargetDependency(PBXProject *parent = 0); ++ virtual ~PBXTargetDependency(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++ ++ // http://www.monobjc.net/xcode-project-file-format.html claims ++ // this is a PBXNativeTarget but Xcode says "legacy" (shell script) targets work too... ++ PBXTarget *target() const; ++ void setTarget(PBXTarget *target); ++ ++ PBXContainerItemProxy *targetProxy() const; ++ void setTargetProxy(PBXContainerItemProxy *targetProxy); ++ ++private: ++ PBXTargetDependencyPrivate *d; ++}; ++ ++#endif // PBXTARGETDEPENDENCY_H +diff --git a/src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp b/src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp +new file mode 100644 +index 0000000..541b503 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp +@@ -0,0 +1,92 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4023,17 +4037,20 @@ index 0000000..8711d1f +****************************************************************************/ + +#include "xcbuildconfiguration.h" ++#include "xcconfigurationlist.h" + +class XCBuildConfigurationPrivate +{ +public: + QString name; + QVariantMap buildSettings; ++ XCBuildConfiguration *baseConfiguration; +}; + -+XCBuildConfiguration::XCBuildConfiguration(QObject *parent) : ++XCBuildConfiguration::XCBuildConfiguration(XCConfigurationList *parent) : + PBXObject(parent), d(new XCBuildConfigurationPrivate) +{ ++ d->baseConfiguration = 0; +} + +XCBuildConfiguration::~XCBuildConfiguration() @@ -4046,10 +4063,12 @@ index 0000000..8711d1f + return QLatin1String("XCBuildConfiguration"); +} + -+QVariantMap XCBuildConfiguration::toMap() const ++PBXObjectMap XCBuildConfiguration::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); -+ self.insert(QLatin1String("baseConfigurationReference"), QLatin1String("")); ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->baseConfiguration) { ++ self.insert(QLatin1String("baseConfigurationReference"), QVariant::fromValue(d->baseConfiguration->identifier())); ++ } + self.insert(QLatin1String("buildSettings"), d->buildSettings); + self.insert(QLatin1String("name"), d->name); + return self; @@ -4065,6 +4084,11 @@ index 0000000..8711d1f + d->name = name; +} + ++QVariant XCBuildConfiguration::buildSetting(const QString &key) ++{ ++ return d->buildSettings.value(key); ++} ++ +void XCBuildConfiguration::setBuildSetting(const QString &key, const QVariant &value) +{ + d->buildSettings.insert(key, value); @@ -4074,16 +4098,16 @@ index 0000000..8711d1f +{ + return name(); +} -diff --git a/src/plugins/generator/xcode/xcbuildconfiguration.h b/src/plugins/generator/xcode/xcbuildconfiguration.h +diff --git a/src/lib/corelib/generators/xcode/xcbuildconfiguration.h b/src/lib/corelib/generators/xcode/xcbuildconfiguration.h new file mode 100644 -index 0000000..ac17d79 +index 0000000..115a88c --- /dev/null -+++ b/src/plugins/generator/xcode/xcbuildconfiguration.h -@@ -0,0 +1,67 @@ ++++ b/src/lib/corelib/generators/xcode/xcbuildconfiguration.h +@@ -0,0 +1,69 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4117,6 +4141,7 @@ index 0000000..ac17d79 +#include + +class PBXFileReference; ++class XCConfigurationList; + +class XCBuildConfigurationPrivate; + @@ -4124,11 +4149,11 @@ index 0000000..ac17d79 +{ + Q_OBJECT +public: -+ explicit XCBuildConfiguration(QObject *parent = 0); ++ explicit XCBuildConfiguration(XCConfigurationList *parent = 0); + ~XCBuildConfiguration(); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QString name() const; + void setName(const QString &name); @@ -4138,6 +4163,7 @@ index 0000000..ac17d79 + void setBaseConfigurationReference(PBXFileReference *reference); + PBXFileReference *baseConfigurationReference(); + ++ QVariant buildSetting(const QString &key); + void setBuildSetting(const QString &key, const QVariant &value); + + QString comment() const; @@ -4147,16 +4173,16 @@ index 0000000..ac17d79 +}; + +#endif // XCBUILDCONFIGURATION_H -diff --git a/src/plugins/generator/xcode/xcconfigurationlist.cpp b/src/plugins/generator/xcode/xcconfigurationlist.cpp +diff --git a/src/lib/corelib/generators/xcode/xcconfigurationlist.cpp b/src/lib/corelib/generators/xcode/xcconfigurationlist.cpp new file mode 100644 -index 0000000..b8c8b7b +index 0000000..54d2d39 --- /dev/null -+++ b/src/plugins/generator/xcode/xcconfigurationlist.cpp -@@ -0,0 +1,142 @@ ++++ b/src/lib/corelib/generators/xcode/xcconfigurationlist.cpp +@@ -0,0 +1,147 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4201,7 +4227,7 @@ index 0000000..b8c8b7b +{ +} + -+XCConfigurationList::XCConfigurationList(QObject *parent) : ++XCConfigurationList::XCConfigurationList(PBXObject *parent) : + PBXObject(parent), d(new XCConfigurationListPrivate) +{ +} @@ -4216,13 +4242,13 @@ index 0000000..b8c8b7b + return QLatin1String("XCConfigurationList"); +} + -+QVariantMap XCConfigurationList::toMap() const ++PBXObjectMap XCConfigurationList::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); ++ PBXObjectMap self = PBXObject::toMap(); + -+ QStringList buildConfigurationReferences; ++ QVariantList buildConfigurationReferences; + foreach (XCBuildConfiguration *configuration, buildConfigurations()) -+ buildConfigurationReferences += configuration->identifier(); ++ buildConfigurationReferences += QVariant::fromValue(configuration->identifier()); + self.insert(QLatin1String("buildConfigurations"), buildConfigurationReferences); + + if (d->defaultBuildConfiguration) @@ -4241,6 +4267,11 @@ index 0000000..b8c8b7b + +XCBuildConfiguration *XCConfigurationList::addBuildConfiguration(const QString &name) +{ ++ foreach (XCBuildConfiguration *config, d->buildConfigurations) { ++ if (config->name() == name) ++ return config; ++ } ++ + XCBuildConfiguration *buildConfiguration = new XCBuildConfiguration(); + buildConfiguration->setName(name); + d->buildConfigurations.append(buildConfiguration); @@ -4295,16 +4326,16 @@ index 0000000..b8c8b7b + + return QString(QLatin1String("Build configuration list for %1 \"%2\"")).arg(parentIsa).arg(parentName); +} -diff --git a/src/plugins/generator/xcode/xcconfigurationlist.h b/src/plugins/generator/xcode/xcconfigurationlist.h +diff --git a/src/lib/corelib/generators/xcode/xcconfigurationlist.h b/src/lib/corelib/generators/xcode/xcconfigurationlist.h new file mode 100644 -index 0000000..9ae1221 +index 0000000..b693478 --- /dev/null -+++ b/src/plugins/generator/xcode/xcconfigurationlist.h -@@ -0,0 +1,63 @@ ++++ b/src/lib/corelib/generators/xcode/xcconfigurationlist.h +@@ -0,0 +1,67 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4345,14 +4376,18 @@ index 0000000..9ae1221 +{ + Q_OBJECT +public: -+ explicit XCConfigurationList(QObject *parent = 0); ++ explicit XCConfigurationList(PBXObject *parent = 0); + ~XCConfigurationList(); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QList buildConfigurations() const; + ++ /*! ++ * Adds a build configuration named \p name if one with that name does not already exist. ++ * Returns the new or existing build configuration. ++ */ + XCBuildConfiguration *addBuildConfiguration(const QString &name); + void removeBuildConfiguration(const QString &name); + void setDefaultBuildConfiguration(const QString &name); @@ -4364,80 +4399,81 @@ index 0000000..9ae1221 +}; + +#endif // XCCONFIGURATIONLIST_H -diff --git a/src/plugins/generator/xcode/xcode.pro b/src/plugins/generator/xcode/xcode.pro +diff --git a/src/lib/corelib/generators/xcode/xcode.pri b/src/lib/corelib/generators/xcode/xcode.pri new file mode 100644 -index 0000000..45e27ba +index 0000000..76ada9e --- /dev/null -+++ b/src/plugins/generator/xcode/xcode.pro -@@ -0,0 +1,58 @@ -+include(../../plugins.pri) -+ -+TARGET = qbs_xcode_generator -+ -+QT = core -+ -+QBSLIBDIR = $$OUT_PWD/../../../../lib -+include($$PWD/../../../lib/corelib/use_corelib.pri) -+ ++++ b/src/lib/corelib/generators/xcode/xcode.pri +@@ -0,0 +1,59 @@ +HEADERS += \ -+ ../generatorplugin.h \ -+ opensteppropertylist.h \ -+ pbx.h \ -+ pbxbuildfile.h \ -+ pbxbuildphase.h \ -+ pbxcontainer.h \ -+ pbxfileencoding.h \ -+ pbxfilereference.h \ -+ pbxfiletype.h \ -+ pbxgroup.h \ -+ pbxnativetarget.h \ -+ pbxobject.h \ -+ pbxproducttype.h \ -+ pbxproject.h \ -+ pbxreference.h \ -+ pbxsourcesbuildphase.h \ -+ pbxsourcetree.h \ -+ pbxtarget.h \ -+ xcbuildconfiguration.h \ -+ xcconfigurationlist.h \ -+ xcodegenerator.h \ -+ xcodenativegenerator.h \ -+ xcodesimplegenerator.h \ -+ pbxlegacytarget.h ++ $$PWD/opensteppropertylist.h \ ++ $$PWD/pbx.h \ ++ $$PWD/pbxbuildfile.h \ ++ $$PWD/pbxbuildphase.h \ ++ $$PWD/pbxcontainer.h \ ++ $$PWD/pbxcontaineritemproxy.h \ ++ $$PWD/pbxfileencoding.h \ ++ $$PWD/pbxfilereference.h \ ++ $$PWD/pbxfiletype.h \ ++ $$PWD/pbxframeworksbuildphase.h \ ++ $$PWD/pbxgroup.h \ ++ $$PWD/pbxlegacytarget.h \ ++ $$PWD/pbxnativetarget.h \ ++ $$PWD/pbxobject.h \ ++ $$PWD/pbxproducttype.h \ ++ $$PWD/pbxproject.h \ ++ $$PWD/pbxreference.h \ ++ $$PWD/pbxsourcesbuildphase.h \ ++ $$PWD/pbxsourcetree.h \ ++ $$PWD/pbxtarget.h \ ++ $$PWD/pbxtargetdependency.h \ ++ $$PWD/xcbuildconfiguration.h \ ++ $$PWD/xcconfigurationlist.h \ ++ $$PWD/xcodegenerator.h \ ++ $$PWD/xcodenativegenerator.h \ ++ $$PWD/xcodesimplegenerator.h \ ++ $$PWD/xcscheme.h \ ++ $$PWD/xcsettings.h \ ++ $$PWD/xcodebuildsettingmapping.h + +SOURCES += \ -+ main.cpp \ -+ opensteppropertylist.cpp \ -+ pbxbuildfile.cpp \ -+ pbxbuildphase.cpp \ -+ pbxcontainer.cpp \ -+ pbxfilereference.cpp \ -+ pbxfiletype.cpp \ -+ pbxgroup.cpp \ -+ pbxnativetarget.cpp \ -+ pbxobject.cpp \ -+ pbxproducttype.cpp \ -+ pbxproject.cpp \ -+ pbxreference.cpp \ -+ pbxsourcesbuildphase.cpp \ -+ pbxsourcetree.cpp \ -+ pbxtarget.cpp \ -+ xcbuildconfiguration.cpp \ -+ xcconfigurationlist.cpp \ -+ xcodegenerator.cpp \ -+ xcodenativegenerator.cpp \ -+ xcodesimplegenerator.cpp \ -+ pbxlegacytarget.cpp -diff --git a/src/plugins/generator/xcode/xcodegenerator.cpp b/src/plugins/generator/xcode/xcodegenerator.cpp ++ $$PWD/opensteppropertylist.cpp \ ++ $$PWD/pbxbuildfile.cpp \ ++ $$PWD/pbxbuildphase.cpp \ ++ $$PWD/pbxcontainer.cpp \ ++ $$PWD/pbxcontaineritemproxy.cpp \ ++ $$PWD/pbxfilereference.cpp \ ++ $$PWD/pbxfiletype.cpp \ ++ $$PWD/pbxframeworksbuildphase.cpp \ ++ $$PWD/pbxgroup.cpp \ ++ $$PWD/pbxlegacytarget.cpp \ ++ $$PWD/pbxnativetarget.cpp \ ++ $$PWD/pbxobject.cpp \ ++ $$PWD/pbxproducttype.cpp \ ++ $$PWD/pbxproject.cpp \ ++ $$PWD/pbxreference.cpp \ ++ $$PWD/pbxsourcesbuildphase.cpp \ ++ $$PWD/pbxsourcetree.cpp \ ++ $$PWD/pbxtarget.cpp \ ++ $$PWD/pbxtargetdependency.cpp \ ++ $$PWD/xcbuildconfiguration.cpp \ ++ $$PWD/xcconfigurationlist.cpp \ ++ $$PWD/xcodegenerator.cpp \ ++ $$PWD/xcodenativegenerator.cpp \ ++ $$PWD/xcodesimplegenerator.cpp \ ++ $$PWD/xcscheme.cpp \ ++ $$PWD/xcsettings.cpp \ ++ $$PWD/xcodebuildsettingmapping.cpp +diff --git a/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp new file mode 100644 -index 0000000..ea53d0e +index 0000000..458bf8f --- /dev/null -+++ b/src/plugins/generator/xcode/xcodegenerator.cpp -@@ -0,0 +1,96 @@ ++++ b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp +@@ -0,0 +1,366 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4464,45 +4500,1017 @@ index 0000000..ea53d0e +** +****************************************************************************/ + ++#include "xcodebuildsettingmapping.h" +#include "xcodegenerator.h" + +#include ++#include "pbx.h" ++ ++#include ++ ++#include + +namespace qbs { + ++using namespace Internal; ++ ++static QVariant _xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group, const QString &moduleName); ++ ++static QVariant xcodeExecutablePrefix(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeExecutableSuffix(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeInfoPlistOutputEncoding(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeArchitecture(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodePreprocessorDefinitions(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeResourcesTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeSdkRoot(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeSupportedPlatforms(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeDylibVersion(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeProductName(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeUseHeadermap(const qbs::Project &project, const ProductData &product, const GroupData &group); ++ ++static QVariant qbsProjectModuleProperty(const QString &qbsModuleName, const QString &qbsPropertyName, const qbs::Project &project) ++{ ++ QMapIterator module(project.projectConfiguration()); ++ while (module.hasNext()) { ++ module.next(); ++ QString qbsModName = qbsModuleName; ++ if (module.key() == qbsModName.replace(QLatin1String("."), QLatin1String("/"))) { ++ QMapIterator property(module.value().toMap()); ++ while (property.hasNext()) { ++ property.next(); ++ if (qbsPropertyName == property.key()) { ++ return property.value(); ++ } ++ } ++ } ++ } ++ ++ return QVariant(); ++} ++ ++static QVariant qbsModuleProperty(const QString &qbsModuleName, const QString &qbsPropertyName, const qbs::Project &project, const qbs::ProductData &product, const qbs::GroupData &group) ++{ ++ if (product.isValid()) { ++ return (group.isValid() ? group.properties() : product.moduleProperties()).getModuleProperty(qbsModuleName, qbsPropertyName); ++ } else { ++ return qbsProjectModuleProperty(qbsModuleName, qbsPropertyName, project); ++ } ++ return QVariant(); ++} ++ ++static QVariantList qbsModuleProperties(const QString &qbsModuleName, const QString &qbsPropertyName, const qbs::Project &project, const qbs::ProductData &product, const qbs::GroupData &group) ++{ ++ if (product.isValid()) { ++ return (group.isValid() ? group.properties() : product.moduleProperties()).getModuleProperties(qbsModuleName, qbsPropertyName); ++ } else { ++ return qbsProjectModuleProperty(qbsModuleName, qbsPropertyName, project).toList(); ++ } ++ return QVariantList(); ++} ++ ++void XcodeBuildSettingMapping::applyToProject(PBXProject *xcodeProject, ++ const qbs::Project &project) const { ++ applyToConfiguration(xcodeProject->buildConfigurationList(), project); ++} ++ ++void XcodeBuildSettingMapping::applyToTarget(PBXTarget *xcodeTarget, ++ const qbs::Project &project, ++ const qbs::ProductData &productData, ++ const qbs::GroupData &groupData) const { ++ applyToConfiguration(xcodeTarget->buildConfigurationList(), project, productData, groupData); ++} ++ ++void XcodeBuildSettingMapping::applyToConfiguration(XCConfigurationList *xcodeConfigurationList, ++ const Project &project, ++ const ProductData &productData, ++ const GroupData &groupData) const { ++ foreach (XCBuildConfiguration *xcodeConfiguration, xcodeConfigurationList->buildConfigurations()) ++ applyToConfiguration(xcodeConfiguration, project, productData, groupData); ++} ++ ++void XcodeBuildSettingMapping::applyToConfiguration(XCBuildConfiguration *xcodeConfiguration, ++ const qbs::Project &project, ++ const qbs::ProductData &productData, ++ const qbs::GroupData &groupData) const { ++ QVariant xcodeValue; ++ if (function) { ++ xcodeValue = function(project, productData, groupData); ++ } else if (isList) { ++ QVariantList list; ++ ++ foreach (const QString &qbsName, qbsNames) { ++ list << qbsModuleProperties(qbsModule, qbsName, project, productData, groupData); ++ } ++ ++ if (!list.isEmpty()) { ++ list.append(QLatin1String("$(inherited)")); ++ xcodeValue = list; ++ } ++ } else { ++ xcodeValue = qbsModuleProperty(qbsModule, qbsNames.first(), project, productData, groupData); ++ } ++ ++ // TODO: Figure out what Xcode *really* does... I think it's this ++ bool shouldSerializeAsList = serializedAsList; ++ if (xcodeValue.type() == QVariant::List || xcodeValue.type() == QVariant::StringList) { ++ const QStringList l = xcodeValue.toStringList(); ++ if (l.size() <= 1) { ++ shouldSerializeAsList = false; // || containsQuotedStrings ??? lineLength? ++ } ++ } ++ ++ if (!shouldSerializeAsList && (xcodeValue.type() == QVariant::List ++ || xcodeValue.type() == QVariant::StringList)) { ++ xcodeValue = xcodeValue.toStringList().join(QLatin1Char(' ')); ++ } ++ ++ if (!xcodeValue.isNull()) { ++ xcodeValue = XcodeGenerator::xcodeInsertPlaceholdersInValue(project, xcodeValue); ++ xcodeConfiguration->setBuildSetting(xcodeName, xcodeValue); ++ } ++} ++ ++/*! ++ * \brief Mapping of Xcode build settings to qbs module and property names or functions. ++ */ ++QList XcodeBuildSettingMapping::defaultBuildSettingsMap() ++{ ++ const QString cpp = QLatin1String("cpp"); ++ ++ QList settings; ++ settings += XcodeBuildSettingMapping(QLatin1String("APPLICATION_EXTENSION_API_ONLY"), cpp, QLatin1String("requireAppExtensionSafeApi")); ++ settings += XcodeBuildSettingMapping(QLatin1String("ARCHS"), &xcodeArchitecture, true); ++ settings += XcodeBuildSettingMapping(QLatin1String("CLANG_ENABLE_OBJC_ARC"), cpp, QLatin1String("automaticReferenceCounting")); ++ settings += XcodeBuildSettingMapping(QLatin1String("CREATE_INFOPLIST_SECTION_IN_BINARY"), cpp, QLatin1String("embedInfoPlist")); ++ settings += XcodeBuildSettingMapping(QLatin1String("DYLIB_CURRENT_VERSION"), &xcodeDylibVersion, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("DYLIB_INSTALL_NAME_BASE"), cpp, QLatin1String("installNamePrefix")); ++ settings += XcodeBuildSettingMapping(QLatin1String("EXECUTABLE_EXTENSION"), &xcodeExecutableSuffix, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("EXECUTABLE_PREFIX"), &xcodeExecutablePrefix, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("FRAMEWORK_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("frameworkPaths")); ++ settings += XcodeBuildSettingMapping(QLatin1String("GCC_PREFIX_HEADER"), cpp, QLatin1String("precompiledHeader")); ++ settings += XcodeBuildSettingMapping(QLatin1String("GCC_PREPROCESSOR_DEFINITIONS"), &xcodePreprocessorDefinitions, true); ++ settings += XcodeBuildSettingMapping(QLatin1String("HEADER_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("includePaths")); ++ settings += XcodeBuildSettingMapping(QLatin1String("INFOPLIST_EXPAND_BUILD_SETTINGS"), cpp, QLatin1String("processInfoPlist")); ++ settings += XcodeBuildSettingMapping(QLatin1String("INFOPLIST_FILE"), cpp, QLatin1String("infoPlistFile")); ++ settings += XcodeBuildSettingMapping(QLatin1String("INFOPLIST_OUTPUT_FORMAT"), &xcodeInfoPlistOutputEncoding, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("IPHONEOS_DEPLOYMENT_TARGET"), cpp, QLatin1String("minimumIosVersion")); ++ settings += XcodeBuildSettingMapping(QLatin1String("LD_RUNPATH_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("rpaths"), false); ++ settings += XcodeBuildSettingMapping(QLatin1String("LIBRARY_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("libraryPaths")); ++ settings += XcodeBuildSettingMapping(QLatin1String("MACOSX_DEPLOYMENT_TARGET"), cpp, QLatin1String("minimumOsxVersion")); ++ settings += XcodeBuildSettingMapping(QLatin1String("OTHER_CFLAGS"), cpp, QStringList() << QLatin1String("cFlags") << QLatin1String("objcFlags")); ++ settings += XcodeBuildSettingMapping(QLatin1String("OTHER_CPLUSPLUSFLAGS"), cpp, QStringList() << QLatin1String("cxxFlags") << QLatin1String("objcxxFlags")); ++ settings += XcodeBuildSettingMapping(QLatin1String("OTHER_LDFLAGS"), cpp, QStringList() << QLatin1String("linkerFlags")); ++ settings += XcodeBuildSettingMapping(QLatin1String("PRODUCT_NAME"), &xcodeProductName, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("RESOURCES_TARGETED_DEVICE_FAMILY"), &xcodeResourcesTargetedDeviceFamily, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("SDKROOT"), &xcodeSdkRoot, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("SUPPORTED_PLATFORMS"), &xcodeSupportedPlatforms, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("TARGETED_DEVICE_FAMILY"), &xcodeTargetedDeviceFamily, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("USE_HEADERMAP"), &xcodeUseHeadermap, false); ++ return settings; ++} ++ ++QVariant xcodeExecutablePrefix(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ switch (XcodeGenerator::xcodeProductType(product)) ++ { ++ case PBX::Application: ++ case PBX::Tool: ++ case PBX::Bundle: ++ case PBX::Framework: ++ return qbsModuleProperty(QLatin1String("cpp"), QLatin1String("executablePrefix"), project, product, group).toString(); ++ case PBX::LibraryDynamic: ++ return qbsModuleProperty(QLatin1String("cpp"), QLatin1String("dynamicLibraryPrefix"), project, product, group).toString(); ++ case PBX::LibraryStatic: ++ return qbsModuleProperty(QLatin1String("cpp"), QLatin1String("staticLibraryPrefix"), project, product, group).toString(); ++ default: ++ return QString(); ++ } ++} ++ ++QVariant xcodeExecutableSuffix(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ QString suffix; ++ switch (XcodeGenerator::xcodeProductType(product)) ++ { ++ case PBX::Application: ++ case PBX::Tool: ++ case PBX::Bundle: ++ case PBX::Framework: ++ suffix = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("executableSuffix"), project, product, group).toString(); ++ break; ++ case PBX::LibraryDynamic: ++ suffix = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("dynamicLibrarySuffix"), project, product, group).toString(); ++ break; ++ case PBX::LibraryStatic: ++ suffix = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("staticLibrarySuffix"), project, product, group).toString(); ++ break; ++ default: ++ break; ++ } ++ ++ if (suffix.startsWith(QChar('.'))) ++ suffix.remove(0, 1); ++ ++ return suffix; ++} ++ ++QVariant xcodeInfoPlistOutputEncoding(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ const QString format = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("infoPlistFormat"), project, product, group).toString(); ++ if (format == QLatin1String("xml1")) ++ return QLatin1String("XML"); ++ else if (format == QLatin1String("binary1")) ++ return QLatin1String("binary"); ++ ++ // If we don't know what the format is, return the original string (which may be invalid) ++ // "same-as-input" is valid ++ return format; ++} ++ ++QVariant xcodeArchitecture(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ const QString architecture = qbsModuleProperty(QLatin1String("qbs"), QLatin1String("architecture"), project, product, group).toString(); ++ if (architecture == QLatin1String("x86")) ++ return QLatin1String("i386"); ++ return architecture; ++} ++ ++QVariant xcodePreprocessorDefinitions(const qbs::Project &project, const ProductData &product, const GroupData &group) ++{ ++ QStringList defs; ++ Q_FOREACH (const QVariant &def, qbsModuleProperties(QLatin1String("cpp"), QLatin1String("defines"), project, product, group)) { ++ // Preprocessor definitions need to be double escaped since Xcode ignores quoted strings ++ defs.append(def.toString().replace(QLatin1String("\""), QLatin1String("\\\""))); ++ } ++ return defs; ++} ++ ++QVariant xcodeSdkRoot(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ const QString sdkName = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("xcodeSdkName"), project, product, group).toString(); ++ if (!sdkName.isEmpty()) ++ return sdkName; ++ ++ const QString sysroot = qbsModuleProperty(QLatin1String("qbs"), QLatin1String("sysroot"), project, product, group).toString(); ++ if (!sysroot.isEmpty()) ++ return sysroot; ++ ++ const QVariantList targetOS = qbsModuleProperties(QLatin1String("qbs"), QLatin1String("targetOS"), project, product, group); ++ if (targetOS.contains(QLatin1String("osx"))) ++ return QLatin1String("macosx"); ++ else if (targetOS.contains(QLatin1String("ios"))) ++ return QLatin1String("iphoneos"); ++ else ++ throw ErrorInfo(Tr::tr("Unsupported platform for Xcode project")); ++} ++ ++QVariant xcodeSupportedPlatforms(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ QStringList supportedPlatforms; ++ const QVariantList targetOS = qbsModuleProperties(QLatin1String("qbs"), QLatin1String("targetOS"), project, product, group); ++ if (targetOS.contains(QLatin1String("osx"))) { ++ supportedPlatforms.append(QLatin1String("macosx")); ++ } else if (targetOS.contains(QLatin1String("ios"))) { ++ if (targetOS.contains(QLatin1String("ios-simulator"))) { ++ supportedPlatforms.append(QLatin1String("iphonesimulator")); ++ } ++ supportedPlatforms.append(QLatin1String("iphoneos")); ++ } ++ return supportedPlatforms; ++} ++ ++static inline int targetDeviceFamilyIdentifierFromName(const QString &name) ++{ ++ if (name == "iphone") ++ return 1; ++ if (name == "ipad") ++ return 2; ++ return 0; ++} ++ ++QVariant _xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group, const QString &moduleName) ++{ ++ QStringList targetedDeviceFamily; ++ const QVariantList targetDevices = qbsModuleProperties(moduleName, QLatin1String("targetDevices"), project, product, group); ++ Q_FOREACH (const QVariant &targetDevice, targetDevices) { ++ int devId = targetDeviceFamilyIdentifierFromName(targetDevice.toString()); ++ if (devId != 0) { ++ targetedDeviceFamily.append(QString::number(devId)); ++ } ++ } ++ return targetedDeviceFamily.join(QLatin1Char(',')); ++} ++ ++QVariant xcodeResourcesTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ return _xcodeTargetedDeviceFamily(project, product, group, QLatin1String("ib")); ++} ++ ++QVariant xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ return _xcodeTargetedDeviceFamily(project, product, group, QLatin1String("xcode")); ++} ++ ++QVariant xcodeDylibVersion(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ Q_UNUSED(project); ++ Q_UNUSED(group); ++ if (product.type().contains(QLatin1String("dynamiclibrary"))) ++ return product.version(); ++ return QString(); ++} ++ ++QVariant xcodeProductName(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ Q_UNUSED(project); ++ Q_UNUSED(group); ++ if (!product.targetName().isEmpty()) ++ return product.targetName(); ++ return product.name(); ++} ++ ++QVariant xcodeUseHeadermap(const Project &, const ProductData &, const GroupData &) ++{ ++ return QVariant(false); // We never want to use headermaps in qbs-generated projects ++} ++ ++} // namespace qbs +diff --git a/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h +new file mode 100644 +index 0000000..39474fb +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h +@@ -0,0 +1,96 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCODECONFIGURATIONSETTING_H ++#define XCODECONFIGURATIONSETTING_H ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++class PBXProject; ++class PBXTarget; ++class XCBuildConfiguration; ++class XCConfigurationList; ++ ++namespace qbs { ++ ++/*! ++ * \brief Represents the mapping of an Xcode build setting name to a qbs module and property name. ++ */ ++struct XcodeBuildSettingMapping { ++ typedef QVariant (*XcodeBuildSettingValueFunction)(const qbs::Project &project, ++ const qbs::ProductData &productData, ++ const qbs::GroupData &groupData); ++ ++ QString xcodeName; ++ QString qbsModule; ++ QStringList qbsNames; ++ bool isList; ++ bool serializedAsList; ++ XcodeBuildSettingValueFunction function; // overrides previous 3 ++ ++ XcodeBuildSettingMapping(const QString &xcodeName, const QString &qbsModule, ++ const QString &qbsName, bool serializedAsList = false) ++ : xcodeName(xcodeName), qbsModule(qbsModule), qbsNames(qbsName), isList(false), ++ serializedAsList(serializedAsList), function(NULL) {} ++ ++ XcodeBuildSettingMapping(const QString &xcodeName, const QString &qbsModule, ++ const QStringList &qbsNames, bool serializedAsList = true) ++ : xcodeName(xcodeName), qbsModule(qbsModule), qbsNames(qbsNames), isList(true), ++ serializedAsList(serializedAsList), function(NULL) {} ++ ++ XcodeBuildSettingMapping(const QString &xcodeName, XcodeBuildSettingValueFunction function, ++ bool serializedAsList) ++ : xcodeName(xcodeName), isList(serializedAsList), ++ serializedAsList(serializedAsList), function(function) {} ++ ++ void applyToProject(PBXProject *xcodeProject, const Project &project) const; ++ void applyToTarget(PBXTarget *xcodeTarget, ++ const Project &project, ++ const ProductData &productData, const GroupData &groupData) const; ++ void applyToConfiguration(XCConfigurationList *xcodeConfigurationList, ++ const Project &project, ++ const ProductData &productData = ProductData(), ++ const GroupData &groupData = GroupData()) const; ++ void applyToConfiguration(XCBuildConfiguration *xcodeConfiguration, ++ const Project &project, ++ const ProductData &productData = ProductData(), ++ const GroupData &groupData = GroupData()) const; ++ ++ static QList defaultBuildSettingsMap(); ++}; ++ ++} // namespace qbs ++ ++#endif // XCODECONFIGURATIONSETTING_H +diff --git a/src/lib/corelib/generators/xcode/xcodegenerator.cpp b/src/lib/corelib/generators/xcode/xcodegenerator.cpp +new file mode 100644 +index 0000000..4bbcb40 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodegenerator.cpp +@@ -0,0 +1,643 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcodebuildsettingmapping.h" ++#include "xcodegenerator.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include "pbx.h" ++ ++#include ++#include ++#include ++#include ++ ++static const QString kQbsRunnerFileName = QLatin1String("qbs"); ++ ++namespace qbs { ++ ++using namespace Internal; ++ +XcodeGenerator::XcodeGenerator() +{ +} + -+/*! -+ * Finds the "root" group in a Qbs product. -+ * -+ * This is the group which has the same name as the product and corresponds to -+ * the files which do not appear in a Group in the Qbs source file. -+ */ -+static GroupData findRootGroup(const ProductData &product) ++static QString buildVariant(const qbs::Project &project) +{ -+ Q_ASSERT(product.groups().size() > 0); -+ foreach (const GroupData groupData, product.groups()) -+ { -+ if (groupData.name() == product.name()) -+ return groupData; -+ } -+ -+ Q_ASSERT_X(false, __FILE__, "couldn't find root group in qbs product"); ++ return project.projectConfiguration()[QLatin1String("qbs")].toMap()[QLatin1String("buildVariant")].toString(); +} + -+QString XcodeGenerator::xcodeExecutablePrefix(const ProductData &product) ++static QString buildVariant(const qbs::ProductData &product) +{ -+ // TODO: Use value from qbs module? -+ switch (xcodeProductType(product)) -+ { -+ case PBX::LibraryDynamic: -+ case PBX::LibraryStatic: -+ return QLatin1String("lib"); -+ default: -+ return QString(); ++ return product.moduleProperties().getModuleProperty(QLatin1String("qbs"), QLatin1String("buildVariant")).toString(); ++} ++ ++void XcodeGenerator::setupGenerator() ++{ ++ QSet profileNames; ++ QSet projectNames; ++ QSet qbsProjectFiles; ++ QSet buildDirectories; ++ ++ foreach (const qbs::Project &proj, projects()) { ++ profileNames << proj.profile(); ++ projectNames << proj.projectData().name(); ++ qbsProjectFiles << proj.projectData().location().filePath(); ++ ++ QDir baseBuildDirectory(proj.projectData().buildDirectory()); ++ baseBuildDirectory.cdUp(); ++ buildDirectories << baseBuildDirectory.absolutePath(); + } ++ ++ QBS_CHECK(!profileNames.isEmpty()); ++ QBS_CHECK(projectNames.size() == 1); ++ QBS_CHECK(qbsProjectFiles.size() == 1); ++ QBS_CHECK(buildDirectories.size() == 1); ++ ++ m_multipleProfiles = profileNames.size() > 1; ++ m_projectName = projectNames.toList().first(); ++ m_qbsProjectFile = qbsProjectFiles.toList().first(); ++ m_baseBuildDirectory = buildDirectories.toList().first(); ++ ++ QBS_CHECK(m_qbsProjectFile.isAbsolute() && m_qbsProjectFile.exists()); ++ QBS_CHECK(m_baseBuildDirectory.isAbsolute() && m_baseBuildDirectory.exists()); ++ ++ m_productGroups.clear(); ++} ++ ++static inline TargetArtifact runnableOrPrimaryTargetArtifactForProduct(const qbs::ProductData &qbsProductData) { ++ // Easy in this case... ++ if (qbsProductData.targetArtifacts().size() == 1) { ++ return qbsProductData.targetArtifacts().first(); ++ } ++ ++ const QStringList types = QStringList() ++ << QLatin1String("bundle") ++ << QLatin1String("application") ++ << QLatin1String("dynamiclibrary") ++ << QLatin1String("staticlibrary") ++ << QLatin1String("loadablemodule"); ++ ++ Q_FOREACH (const TargetArtifact &ta, qbsProductData.targetArtifacts()) { ++ Q_FOREACH (const QString &type, types) { ++ if (qbsProductData.type().contains(type) ++ && ta.fileTags().contains(type)) { ++ return ta; ++ } ++ } ++ } ++ ++ return TargetArtifact(); ++} ++ ++static inline QString installedFilePathForTargetArtifact(const qbs::Project &project, ++ const qbs::ProductData &product, ++ const qbs::InstallOptions &installOptions, ++ const TargetArtifact &ta) { ++ const QList &installables ++ = project.installableFilesForProduct(product, installOptions); ++ foreach (const InstallableFile &file, installables) { ++ if (file.sourceFilePath() == ta.filePath()) ++ return file.targetFilePath(); ++ } ++ return ta.filePath(); ++} ++ ++void XcodeGenerator::generate(const InstallOptions &installOptions) ++{ ++ // TODO: Move to base class and call ProjectGenerator::setupGenerator() ++ setupGenerator(); ++ ++ const QString xcodeWrapperName = m_projectName + QLatin1String(".xcodeproj"); ++ if (!m_baseBuildDirectory.cd(xcodeWrapperName)) ++ if (!m_baseBuildDirectory.mkdir(xcodeWrapperName) || !m_baseBuildDirectory.cd(xcodeWrapperName)) ++ throw ErrorInfo(Tr::tr("failed to make Xcode project wrapper directory")); ++ ++ const QString xcodeWorkspaceWrapperName = QLatin1String("project.xcworkspace"); ++ const QString sharedWorkspaceDataDirName = QLatin1String("xcshareddata"); ++ ++ QDir sharedWorkspaceDataDir = m_baseBuildDirectory; ++ if (!sharedWorkspaceDataDir.cd(xcodeWorkspaceWrapperName)) ++ if (!sharedWorkspaceDataDir.mkdir(xcodeWorkspaceWrapperName) || !sharedWorkspaceDataDir.cd(xcodeWorkspaceWrapperName)) ++ throw ErrorInfo(Tr::tr("failed to make Xcode workspace wrapper directory")); ++ ++ if (!sharedWorkspaceDataDir.cd(sharedWorkspaceDataDirName)) ++ if (!sharedWorkspaceDataDir.mkdir(sharedWorkspaceDataDirName) || !sharedWorkspaceDataDir.cd(sharedWorkspaceDataDirName)) ++ throw ErrorInfo(Tr::tr("failed to make Xcode workspace shared data directory")); ++ ++ const QString sharedWorkspaceSettingsFilePath = sharedWorkspaceDataDir.absoluteFilePath(QLatin1String("WorkspaceSettings.xcsettings")); ++ XCSettings sharedWorkspaceSettings; ++ sharedWorkspaceSettings.setAutocreateSchemes(false); ++ if (!sharedWorkspaceSettings.serialize(sharedWorkspaceSettingsFilePath)) { ++ throw ErrorInfo(Tr::tr("Failed to generate workspace settings %1").arg(sharedWorkspaceSettingsFilePath)); ++ } ++ ++ // Create a shell script to invoke the qbs binary ++ // This is necessary because qbs hangs when invoked directly from Xcode ++ // TODO: Why? ++ const QString &qbsRunnerFilePath = m_baseBuildDirectory.absoluteFilePath(kQbsRunnerFileName); ++ QFile qbsRunner(qbsRunnerFilePath); ++ if (qbsRunner.open(QIODevice::WriteOnly)) { ++ // The runner script, in addition to invoking qbs itself, ++ // adds symlinks from the Xcode target directory to the qbs build directory ++ // This way, products in the Xcode files listing show up properly ++ QTextStream ts(&qbsRunner); ++ ts << QLatin1String("#!/bin/bash\n") ++ << QLatin1String("set -e\n") ++ << QLatin1String("[ -x \"$QBS\" ] || exit 1\n") ++ << QLatin1String("\"$QBS\" \"$@\"\n") ++ << QLatin1String("if [ ! -e \"$TARGET_BUILD_DIR/$PRODUCT_NAME/$FULL_PRODUCT_NAME\" ] && [ -e \"$QBS_TARGET_PATH\" ] ; then\n") ++ << QLatin1String("mkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME\"\n") ++ << QLatin1String("ln -sf \"$QBS_TARGET_PATH\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME/$FULL_PRODUCT_NAME\"\n") ++ << QLatin1String("fi\n"); ++ } ++ ++ PBXProject xcodeProject(m_baseBuildDirectory.absoluteFilePath(QLatin1String("project.pbxproj"))); ++ xcodeProject.setName(m_projectName); ++ ++ // Only potentially add absolute paths if the qbs source directory and build directory differ; ++ // this makes the Xcode project file relocatable (and thus version trackable) if generated in-source ++ const QString qbsSourceDirectory = m_qbsProjectFile.absolutePath(); ++ if (m_baseBuildDirectory.absolutePath() != qbsSourceDirectory) { ++ // TODO: Make it relative anyways ++ xcodeProject.setProjectDirPath(qbsSourceDirectory); ++ xcodeProject.rootGroup()->setPath(xcodeProject.projectDirPath()); ++ } ++ ++ foreach (const qbs::Project &project, projects()) { ++ XCBuildConfiguration *xcconfig = xcodeProject.buildConfigurationList()->addBuildConfiguration(xcodeConfigurationName(project)); ++ xcodeProject.buildConfigurationList()->setDefaultBuildConfiguration(xcconfig->name()); ++ ++ // TODO: Ideally should go into a configuration file instead of in the project file itself ++ // TODO: Is there a better way to find the qbs binary to invoke? For example, someone could use libqbscore to invoke generators... ++ xcconfig->setBuildSetting(QLatin1String("QBS"), QCoreApplication::applicationFilePath()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROFILE"), project.profile()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROJECT_DIRECTORY"), xcodeInsertPlaceholdersInValue(project, qbsSourceDirectory)); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROJECT_FILE_NAME"), m_qbsProjectFile.fileName()); ++ ++ // or baseBuildDirectory + profileName + '-' + buildVariant ++ xcconfig->setBuildSetting(QLatin1String("__QBS_BASE_BUILD_DIRECTORY"), QLatin1String("$(PROJECT_FILE_PATH)/..")); ++ xcconfig->setBuildSetting(QLatin1String("QBS_BUILD_DIRECTORY"), QLatin1String("$(__QBS_BASE_BUILD_DIRECTORY:standardizepath)")); ++ ++ xcconfig->setBuildSetting(QLatin1String("QBS_BUILD_VARIANT"), buildVariant(project)); ++ ++ foreach (const XcodeBuildSettingMapping &setting, XcodeBuildSettingMapping::defaultBuildSettingsMap()) { ++ setting.applyToConfiguration(xcconfig, project); ++ } ++ ++ // Add all the Qbs products as Xcode targets ++ addProjectRecursive(project, project.projectData(), installOptions, xcodeProject, xcodeProject.rootGroup()); ++ ++ // Do some per-target ops ++ foreach (const qbs::ProductData &qbsProductData, project.projectData().allProducts()) { ++ PBXTarget *qbsXcodeTarget = xcodeProject.targetNamed(qbsProductData.name()); ++ if (!qbsXcodeTarget) ++ throw new qbs::ErrorInfo(Tr::tr("could not find PBXTarget for qbs product '%1'").arg(qbsProductData.name())); ++ ++ // Set up target dependencies ++ foreach (const QString &dependencyName, qbsProductData.dependencies()) { ++ PBXTargetDependency *dependentXcodeTarget = new PBXTargetDependency(&xcodeProject); ++ dependentXcodeTarget->setTarget(xcodeProject.targetNamed(dependencyName)); ++ if (!dependentXcodeTarget->target()) ++ throw new qbs::ErrorInfo(Tr::tr("could not find PBXTarget for qbs product '%1'").arg(dependencyName)); ++ ++ qbsXcodeTarget->targetDependencies().append(dependentXcodeTarget); ++ } ++ ++ // Set up a scheme for the target ++ static const QString xcshareddata = QLatin1String("xcshareddata"); ++ static const QString xcschemes = QLatin1String("xcschemes"); ++ QDir schemesDirectory(m_baseBuildDirectory); ++ if (!schemesDirectory.cd(xcshareddata)) { ++ if (!schemesDirectory.mkdir(xcshareddata) || !schemesDirectory.cd(xcshareddata)) { ++ throw ErrorInfo(Tr::tr("failed to make Xcode project shared data directory")); ++ } ++ } ++ if (!schemesDirectory.cd(xcschemes)) { ++ if (!schemesDirectory.mkdir(xcschemes) || !schemesDirectory.cd(xcschemes)) { ++ throw ErrorInfo(Tr::tr("failed to make Xcode project shared schemes directory")); ++ } ++ } ++ ++ const QString schemeFilePath(schemesDirectory.absoluteFilePath(QString(QLatin1String("%1.xcscheme")).arg(qbsXcodeTarget->name()))); ++ XCScheme xcscheme; ++ xcscheme.setParallelizeBuildables(false); // this must be turned off because it conflicts with qbs build directory locking ++ xcscheme.setProject(&xcodeProject); ++ xcscheme.setTarget(qbsXcodeTarget); ++ ++ if (dynamic_cast(qbsXcodeTarget)) { ++ xcscheme.setCustomExecutableFilePath(installedFilePathForTargetArtifact(project, qbsProductData, installOptions, runnableOrPrimaryTargetArtifactForProduct(qbsProductData))); ++ } ++ ++ if (!xcscheme.serialize(schemeFilePath)) { ++ throw ErrorInfo(Tr::tr("Failed to generate scheme %1").arg(schemeFilePath)); ++ } ++ } ++ } ++ ++ if (xcodeProject.writeToFileSystemProjectFile(true, true, true)) ++ qDebug() << "Generated" << qPrintable(xcodeWrapperName); ++ else ++ throw ErrorInfo(Tr::tr("Failed to generate %1").arg(xcodeWrapperName)); ++} ++ ++QString makePathRelativeTo(const QString &path, const QString &basePath) ++{ ++ QString rootPath(basePath); ++ if (!rootPath.endsWith(QLatin1Char('/'))) ++ rootPath += QLatin1Char('/'); ++ ++ QString filePath(path); ++ if (filePath.startsWith(rootPath)) ++ filePath.remove(0, rootPath.size()); ++ ++ return filePath; ++} ++ ++void XcodeGenerator::addProjectRecursive(const Project &project, const ProjectData &projectData, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup) ++{ ++ foreach (const ProjectData &subProjectData, projectData.subProjects()) ++ { ++ PBXGroup *baseGroup = PBXGroup::groupWithName(subProjectData.name(), xcodeGroup); ++ baseGroup->setSourceTree(PBX::Group); ++ ++ // Add the qbs project file for this project ++ foreach (PBXFileReference *ref, baseGroup->addFiles(QStringList() << makePathRelativeTo(m_qbsProjectFile.absoluteFilePath(), xcodeProject.projectDirPath()), false, false)) { ++ if (!ref->path().startsWith(QLatin1Char('/'))) { ++ ref->setSourceTree(PBX::Group); ++ } ++ } ++ ++ addProjectRecursive(project, subProjectData, installOptions, xcodeProject, baseGroup); ++ } ++ ++ foreach (const ProductData &product, projectData.products()) ++ { ++ addProduct(project, product, installOptions, xcodeProject, xcodeGroup); ++ } ++} ++ ++static inline QVariant flattenXcconfigList(const QStringList &list) { ++ if (list.isEmpty()) ++ return QString(); ++ if (list.size() == 1) ++ return list.first(); ++ return list; ++} ++ ++void XcodeGenerator::addProduct(const Project &project, const ProductData &product, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup) ++{ ++ PBXTarget *xcodeTarget = xcodeTargetForProduct(&xcodeProject, product); ++ xcodeTarget->setName(product.name()); ++ xcodeTarget->setProductType(xcodeProductType(product)); ++ ++ PBXLegacyTarget *xcodeLegacyTarget = dynamic_cast(xcodeTarget); ++ if (xcodeLegacyTarget) { ++ xcodeLegacyTarget->setBuildWorkingDirectory(XcodeGenerator::xcodeInsertPlaceholdersInValue(project, xcodeProject.projectDirPath()).toString()); ++ xcodeLegacyTarget->setBuildToolPath(QLatin1String("/bin/bash")); ++ ++ QStringList buildArguments; ++ buildArguments << QLatin1String("\"$(PROJECT_FILE_PATH)\"/") + kQbsRunnerFileName; ++ buildArguments << QLatin1String("\"$(ACTION)\""); ++ buildArguments << QLatin1String("-f"); ++ ++ // Can't use xcodeInsertPlaceholdersInValue because we want to do a little acrobatics to get quoting 100% right... ++ const QDir sourceDirectory(xcodeProject.projectDirPath()); ++ QString resultingFilePath = m_qbsProjectFile.absoluteFilePath(); ++ if (resultingFilePath.startsWith(sourceDirectory.absolutePath())) { ++ resultingFilePath.replace(0, sourceDirectory.absolutePath().size(), QString()); ++ buildArguments << QLatin1String("\"$(SRCROOT)\"") + shellQuote(resultingFilePath); ++ } else { ++ buildArguments << shellQuote(resultingFilePath); ++ } ++ ++ buildArguments << QLatin1String("-d"); ++ buildArguments << QLatin1String("\"$(CONFIGURATION_BUILD_DIR)\""); ++ buildArguments << QLatin1String("-p"); ++ buildArguments << QLatin1String("\"$(TARGET_NAME)\""); // target and product name are opposites in qbs and Xcode ++ buildArguments << QLatin1String("\"$(QBS_BUILD_VARIANT)\""); ++ buildArguments << QLatin1String("\"profile:$(QBS_PROFILE)\""); ++ ++ xcodeLegacyTarget->setBuildArgumentsString(buildArguments.join(QLatin1String(" "))); ++ xcodeLegacyTarget->setPassBuildSettingsInEnvironment(true); ++ } ++ ++ XCBuildConfiguration *xcconfig = xcodeTarget->buildConfigurationList()->addBuildConfiguration(xcodeConfigurationName(product)); ++ xcodeTarget->buildConfigurationList()->setDefaultBuildConfiguration(xcconfig->name()); ++ ++ // TODO: If a product with the same name was already added, don't add its files AGAIN ++ // Create a root PBX group for the target's files and other groups ++ PBXGroup *xcodeProductGroup = m_productGroups.value(product.name()); ++ const bool productFilesAlreadyAdded = !!xcodeProductGroup; ++ if (!productFilesAlreadyAdded) { ++ m_productGroups.insert(product.name(), xcodeProductGroup = PBXGroup::groupWithName(product.name(), xcodeGroup)); ++ ++ // Add the qbs project file for this product ++ foreach (PBXFileReference *ref, xcodeProductGroup->addFiles(QStringList() << makePathRelativeTo(product.location().filePath(), xcodeProject.projectDirPath()), false, false)) { ++ if (!ref->path().startsWith(QLatin1Char('/'))) { ++ ref->setSourceTree(PBX::Group); ++ } ++ } ++ } ++ ++ QSet excludedSources; ++ ++ // Set up all the groups ++ foreach (const GroupData &groupData, product.groups()) ++ { ++ PBXGroup *group = xcodeProductGroup; ++ if (groupData.name() == product.name()) { ++ // This group has the same name as the product itself so we'll just add the files ++ // directly to the "product" group we created earlier instead of creating a new one ++ foreach (const XcodeBuildSettingMapping &setting, XcodeBuildSettingMapping::defaultBuildSettingsMap()) { ++ setting.applyToConfiguration(xcconfig, project, product, groupData); ++ } ++ ++ xcodeTarget->setProductName(xcodeTarget->buildSetting(QLatin1String("PRODUCT_NAME"), buildVariant(product)).toString()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROFILE"), product.profile()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_BUILD_VARIANT"), buildVariant(product)); ++ } else { ++ // Create a group for this group ++ group = PBXGroup::groupWithName(groupData.name(), xcodeProductGroup); ++ } ++ ++ // Add the source files to the group ++ group->setSourceTree(PBX::Group); ++ QList fileRefs; ++ if (!productFilesAlreadyAdded) ++ fileRefs = addGroupFiles(&xcodeProject, group, groupData); ++ ++ // If the group is enabled, then we'll actually BUILD them in addition to merely listing them ++ if (groupData.isEnabled()) { ++ foreach (PBXFileReference *ref, fileRefs) { ++ // Skip header files... wish there was a better way ++ if (ref->path().endsWith(QLatin1String(".h")) || ++ ref->path().endsWith(QLatin1String(".hh"))) { ++ continue; ++ } ++ ++ xcodeTarget->defaultSourceCodeBuildPhase()->addReference(ref); ++ } ++ } else { ++ foreach (PBXFileReference *ref, fileRefs) ++ excludedSources.insert(ref->path()); ++ } ++ } ++ ++ xcconfig->setBuildSetting(QLatin1String("EXCLUDED_SOURCE_FILE_NAMES"), flattenXcconfigList(QStringList(excludedSources.toList()))); ++ ++ QString sysroot = product.moduleProperties().getModuleProperty(QLatin1String("cpp"), QLatin1String("sysroot")).toString(); ++ QStringList frameworkPaths; ++ frameworkPaths += product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("frameworkPaths")); ++ frameworkPaths += product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("systemFrameworkPaths")); ++ frameworkPaths += sysroot + QLatin1String("/Library/Frameworks"); ++ frameworkPaths += sysroot + QLatin1String("/System/Library/Frameworks"); ++ frameworkPaths += QLatin1String("/Library/Frameworks"); ++ frameworkPaths += QLatin1String("/System/Library/Frameworks"); ++ const QStringList frameworkNames = product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("frameworks")); ++ const QStringList weakFrameworkNames = product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("weakFrameworks")); ++ ++ // TODO TODO TODO dynamicLibraries and weakDynamicLibraries? ++ ++ // A framework can't be strongly AND weakly linked... TODO: fail more gracefully ++ QBS_CHECK(frameworkNames.toSet().intersect(weakFrameworkNames.toSet()).isEmpty()); ++ const QStringList allFrameworkNames = QStringList() << frameworkNames << weakFrameworkNames; ++ ++ Q_FOREACH (const QString &frameworkName, allFrameworkNames) { ++ // Whether a full path equivalent for the framework was found ++ bool foundFramework = false; ++ ++ Q_FOREACH (const QString &frameworkPath, frameworkPaths) { ++ QString candidateFrameworkPath = QFileInfo(frameworkPath + QLatin1String("/") + frameworkName + QLatin1String(".framework")).canonicalFilePath(); ++ if (QFileInfo(candidateFrameworkPath).exists()) { ++ QBS_CHECK(!candidateFrameworkPath.isEmpty()); ++ ++ const QString sysrootedCandidateFrameworkPath = candidateFrameworkPath.mid(sysroot.size() + 1 /* for the path separator */); ++ ++ // Check for an existing reference (could happen if a framework is specified multiple times) ++ PBXFileReference *existingReference = Q_NULLPTR; ++ Q_FOREACH (PBXReference *ref, xcodeProject.frameworksRefGroup()->children()) { ++ if (PBXFileReference *fileRef = dynamic_cast(ref)) { ++ if ((fileRef->sourceTree() == PBX::SdkRoot && fileRef->path() == sysrootedCandidateFrameworkPath) || ++ (fileRef->sourceTree() == PBX::Absolute && fileRef->path() == candidateFrameworkPath)) { ++ existingReference = fileRef; ++ break; ++ } ++ } ++ } ++ ++ QList refs; ++ ++ // Create a new file reference since one wasn't already found in the Frameworks group ++ if (!existingReference) { ++ refs = xcodeProject.frameworksRefGroup()->addFiles(QStringList() << candidateFrameworkPath, false, false); ++ Q_FOREACH (PBXFileReference *frameworkRef, refs) { ++ if (!sysroot.isEmpty() && frameworkRef->path().startsWith(sysroot)) { ++ frameworkRef->setPath(sysrootedCandidateFrameworkPath); ++ frameworkRef->setSourceTree(PBX::SdkRoot); ++ } ++ } ++ } else { ++ refs.append(existingReference); ++ } ++ ++ // Add the framework to the Frameworks build phase ++ Q_FOREACH (PBXFileReference *frameworkRef, refs) { ++ xcodeTarget->defaultFrameworksBuildPhase()->addReference(frameworkRef); ++ } ++ ++ foundFramework = true; ++ break; ++ } ++ } ++ ++ // Not a normal case, and will cause a build failure, but is better than silently ignoring it... ++ if (!foundFramework) { ++ Q_FOREACH (PBXFileReference *frameworkRef, xcodeProject.frameworksRefGroup()->addFiles(QStringList() << frameworkName + QLatin1String(".framework"), false, false)) { ++ QBS_CHECK(!frameworkRef->path().isEmpty()); ++ if (PBXBuildFile *frameworkBuildRef = xcodeTarget->defaultFrameworksBuildPhase()->addReference(frameworkRef)) { ++ const bool isWeaklyLinked = weakFrameworkNames.contains(frameworkName); ++ frameworkBuildRef->setWeakLinkedLibrary(isWeaklyLinked); ++ } ++ } ++ } ++ } ++ ++ // Add a reference for the main target artifact in root "Products" group ++ TargetArtifact artifact = runnableOrPrimaryTargetArtifactForProduct(product); ++ QString realArtifactPath = installedFilePathForTargetArtifact(project, product, installOptions, artifact); ++ if (!realArtifactPath.isEmpty()) { ++ // "simple" generator ++ if (!xcodeLegacyTarget) { ++ // Chop off the Qbs build dir from the artifact path, because they will actually end ++ // up in Xcode's build directory, not the build directory Qbs would use ++ const QString buildDirectory = project.projectData().buildDirectory(); ++ if (realArtifactPath.startsWith(buildDirectory)) ++ realArtifactPath.remove(0, buildDirectory.size()); ++ ++ if (realArtifactPath.startsWith(QLatin1Char('/'))) ++ realArtifactPath.remove(0, 1); ++ } else { ++ realArtifactPath = xcodeInsertPlaceholdersInValue(project, realArtifactPath).toString(); ++ } ++ ++ QBS_CHECK(!realArtifactPath.isEmpty()); ++ ++ QList refs = xcodeProject.productRefGroup()->addFiles(QStringList() << realArtifactPath, false, false); ++ foreach (PBXFileReference *ref, refs) ++ { ++ if (!xcodeLegacyTarget) { ++ ref->setSourceTree(PBX::BuildProductDir); ++ ++ // This causes Xcode to force the file reference to a relative path relative to the build products dir ++ // Therefore, we must symlink artifacts in the Xcode build directory to the ones in the qbs build directory ++ // NOTE: This will crash Xcode if set for a PBXLegacyTarget (claiming an empty string global hex ID) ++ xcodeTarget->setProductReference(ref); ++ } ++ ++ // TODO: Technically this should be composed of other variables based on the product type ++ // $(WRAPPER_NAME) for bundles, $(EXECUTABLE_NAME) otherwise? ++ xcconfig->setBuildSetting(QLatin1String("FULL_PRODUCT_NAME"), QFileInfo(realArtifactPath).fileName()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_TARGET_PATH"), xcodeInsertPlaceholdersInValue(project, realArtifactPath)); ++ } ++ } ++ ++ xcodeProject.addTarget(xcodeTarget); ++} ++ ++QList XcodeGenerator::addGroupFiles(PBXProject *xcodeProject, PBXGroup *xcodeGroup, const qbs::GroupData &groupData) ++{ ++ QStringList relativeFilePaths; ++ foreach (QString filePath, groupData.allFilePaths()) { ++ relativeFilePaths += makePathRelativeTo(filePath, xcodeProject->projectDirPath()); ++ } ++ ++ // Add all the files in the group as file references so they show up in the project tree ++ QList fileRefs = xcodeGroup->addFiles(relativeFilePaths, false, false); ++ foreach (PBXFileReference *ref, fileRefs) { ++ if (!ref->path().startsWith(QLatin1Char('/'))) { ++ ref->setSourceTree(PBX::Group); ++ } ++ } ++ ++ return fileRefs; ++} ++ ++PBXTarget *XcodeGenerator::xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product) ++{ ++ Q_UNUSED(xcodeProject); ++ PBXTarget *target = xcodeProject->targetNamed(product.name()); ++ ++ // Native targets without a type won't build, so use a legacy target in this case ++ if (!target && xcodeProductType(product) == 0) { ++ return new PBXLegacyTarget(xcodeProject); ++ } ++ ++ return target; +} + +/*! @@ -4510,36 +5518,85 @@ index 0000000..ea53d0e + */ +PBX::PBXProductType XcodeGenerator::xcodeProductType(const ProductData &product) +{ -+ const GroupData groupData = findRootGroup(product); -+ QStringList productType = groupData.properties().getProperty(QLatin1String("type")).toStringList(); ++ const QStringList productType = product.type(); ++ const bool isBundle = product.moduleProperties().getModuleProperty(QLatin1String("bundle"), QLatin1String("isBundle")).toBool(); + -+ if (productType.contains(QLatin1String("applicationbundle"))) -+ return PBX::Application; + if (productType.contains(QLatin1String("application"))) -+ return PBX::Tool; ++ return isBundle ? PBX::Application : PBX::Tool; + if (productType.contains(QLatin1String("dynamiclibrary"))) -+ return PBX::LibraryDynamic; ++ return isBundle ? PBX::Framework : PBX::LibraryDynamic; + if (productType.contains(QLatin1String("staticlibrary"))) -+ return PBX::LibraryStatic; -+ if (productType.contains(QLatin1String("frameworkbundle"))) -+ return PBX::Framework; ++ return isBundle ? PBX::StaticFramework : PBX::LibraryStatic; + if (productType.contains(QLatin1String("bundle"))) + return PBX::Bundle; + + return (PBX::PBXProductType)0; +} + ++static QString _xcodeConfigurationName(QString variantName, const QString &profileName, bool includeProfileName) ++{ ++ QBS_CHECK(!variantName.isEmpty()); ++ variantName.replace(0, 1, variantName[0].toUpper()); ++ if (includeProfileName) { ++ variantName += QLatin1String("_") + profileName; ++ } ++ return variantName; +} -diff --git a/src/plugins/generator/xcode/xcodegenerator.h b/src/plugins/generator/xcode/xcodegenerator.h ++ ++QString XcodeGenerator::xcodeConfigurationName(const Project &project) ++{ ++ return _xcodeConfigurationName(buildVariant(project), project.profile(), m_multipleProfiles); ++} ++ ++QString XcodeGenerator::xcodeConfigurationName(const ProductData &product) ++{ ++ return _xcodeConfigurationName(buildVariant(product), product.profile(), m_multipleProfiles); ++} ++ ++/*! ++ * \brief If the value is a path or list of paths, ++ * returns it with the prefixes of paths replaced by $(SRCROOT), $(PROJECT_FILE_PATH)/.., etc., ++ * as appropriate. ++ * If the value is not a path, returns the original value unmodified. ++ */ ++QVariant XcodeGenerator::xcodeInsertPlaceholdersInValue(const qbs::Project &project, const QVariant &variant) ++{ ++ if (variant.type() == QVariant::List) { ++ QVariantList list; ++ foreach (const QVariant &v, variant.toList()) ++ list.append(xcodeInsertPlaceholdersInValue(project, v)); ++ return list; ++ } ++ ++ // If the value is a path and it begins with the value of SRCROOT or PROJECT_FILE_PATH/.., replace it ++ if (variant.type() == QVariant::String) { ++ // This should end up being the same as PBXProject::projectDirPath(), but if projectDirPath ++ // is the empty string (for example, when the xcodeproj resides in the qbs source directory, ++ // things would break, so prefer the Qbs value (plus, it saves a parameter to this function) ++ const QDir sourceDirectory = QFileInfo(project.projectData().location().filePath()).absolutePath(); ++ if (variant.toString().startsWith(sourceDirectory.absolutePath())) ++ return variant.toString().replace(0, sourceDirectory.absolutePath().size(), QLatin1String("$(SRCROOT)")); ++ ++ const QDir buildDirectory(project.projectData().buildDirectory()); ++ Q_ASSERT(buildDirectory.isAbsolute() && buildDirectory.exists()); ++ if (variant.toString().startsWith(buildDirectory.absolutePath())) ++ return variant.toString().replace(0, buildDirectory.absolutePath().size(), QLatin1String("$(QBS_BUILD_DIRECTORY)/$(QBS_PROFILE)-$(QBS_BUILD_VARIANT)")); ++ } ++ ++ return variant; ++} ++ ++} +diff --git a/src/lib/corelib/generators/xcode/xcodegenerator.h b/src/lib/corelib/generators/xcode/xcodegenerator.h new file mode 100644 -index 0000000..e2bc712 +index 0000000..765174a --- /dev/null -+++ b/src/plugins/generator/xcode/xcodegenerator.h -@@ -0,0 +1,53 @@ ++++ b/src/lib/corelib/generators/xcode/xcodegenerator.h +@@ -0,0 +1,81 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4569,36 +5626,64 @@ index 0000000..e2bc712 +#ifndef QBS_XCODEGENERATOR_H +#define QBS_XCODEGENERATOR_H + -+#include ++#include ++#include +#include "pbxproducttype.h" + ++#include ++ ++class PBXFileReference; ++class PBXGroup; ++class PBXProject; ++class PBXTarget; ++ +namespace qbs { + +class ProductData; ++struct XcodeBuildSettingMapping; + -+class XcodeGenerator : public qbs::Generator ++class XcodeGenerator : public qbs::ProjectGenerator +{ ++public: ++ virtual void generate(const InstallOptions &installOptions); ++ virtual void addProjectRecursive(const Project &project, const ProjectData &projectData, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup); ++ virtual void addProduct(const Project &project, const ProductData &product, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup); ++ virtual QList addGroupFiles(PBXProject *xcodeProject, PBXGroup *xcodeGroup, const qbs::GroupData &groupData); ++ ++ virtual PBXTarget *xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product); ++ ++ QString xcodeConfigurationName(const Project &project); ++ QString xcodeConfigurationName(const ProductData &product); ++ ++ static QVariant xcodeInsertPlaceholdersInValue(const qbs::Project &project, const QVariant &variant); ++ ++ static PBX::PBXProductType xcodeProductType(const ProductData &product); ++ +protected: + XcodeGenerator(); + -+public: -+ static QString xcodeExecutablePrefix(const ProductData &product); -+ static PBX::PBXProductType xcodeProductType(const ProductData &product); ++ // TODO: Move to base class ++ virtual void setupGenerator(); ++ bool m_multipleProfiles; ++ QString m_projectName; ++ QFileInfo m_qbsProjectFile; ++ QDir m_baseBuildDirectory; ++ QMap m_productGroups; +}; + +} + +#endif // QBS_XCODEGENERATOR_H -diff --git a/src/plugins/generator/xcode/xcodenativegenerator.cpp b/src/plugins/generator/xcode/xcodenativegenerator.cpp +diff --git a/src/lib/corelib/generators/xcode/xcodenativegenerator.cpp b/src/lib/corelib/generators/xcode/xcodenativegenerator.cpp new file mode 100644 -index 0000000..5457c3f +index 0000000..7654b8f --- /dev/null -+++ b/src/plugins/generator/xcode/xcodenativegenerator.cpp -@@ -0,0 +1,136 @@ ++++ b/src/lib/corelib/generators/xcode/xcodenativegenerator.cpp +@@ -0,0 +1,58 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4627,14 +5712,7 @@ index 0000000..5457c3f + +#include "xcodenativegenerator.h" + -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include ++#include "pbx.h" + +namespace qbs { + @@ -4649,98 +5727,27 @@ index 0000000..5457c3f + return QLatin1String("xcode"); +} + -+void XcodeNativeGenerator::generate(const Project &project) ++void XcodeNativeGenerator::generate(const InstallOptions &installOptions) +{ -+ const QString buildDirectory = project.projectData().buildDirectory(); -+ QDir dir(buildDirectory); -+ Q_ASSERT(dir.isAbsolute() && dir.exists()); ++ XcodeGenerator::generate(installOptions); ++} + -+ const QString &projectFileName = project.projectData().name() + QLatin1String(".xcodeproj"); -+ if (!dir.cd(projectFileName)) -+ if (!dir.mkdir(projectFileName) || !dir.cd(projectFileName)) -+ throw ErrorInfo(Tr::tr("failed to make project directory")); -+ -+ PBXProject xcodeProject(dir.absoluteFilePath(QLatin1String("project.pbxproj"))); -+ xcodeProject.setName(project.projectData().name()); -+ xcodeProject.setProjectDirPath(project.projectData().location().fileName()); -+ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); -+ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); -+ -+ // Add all the Qbs products as Xcode targets -+ foreach (const ProductData &product, project.projectData().allProducts()) -+ { -+ PBXLegacyTarget *xcodeTarget = new PBXLegacyTarget(&xcodeProject); -+ xcodeTarget->setName(product.name()); -+ xcodeTarget->setProductType(xcodeProductType(product)); -+ xcodeTarget->setBuildToolPath(QCoreApplication::applicationFilePath()); // TODO: Probably not a good idea... -+ xcodeTarget->setBuildArgumentsString(QLatin1String("$(ACTION) -f \"") + project.projectData().location().fileName() + QLatin1String("\" -p \"") + product.name() + QLatin1String("\"")); -+ xcodeTarget->setBuildWorkingDirectory(xcodeProject.projectDirPath()); -+ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); -+ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); -+ -+ // Create a root PBX group for the target's files and other groups -+ PBXGroup *xcodeProductGroup = PBXGroup::groupWithName(product.name(), xcodeProject.rootGroup()); -+ -+ // Set up all the groups -+ foreach (const GroupData &groupData, product.groups()) -+ { -+ PBXGroup *group = xcodeProductGroup; -+ if (groupData.name() == product.name()) { -+ // This group has the same name as the product itself so we'll just add the files -+ // directly to the "product" group we created earlier instead of creating a new one -+ //populateXcodeTargetProperties(xcodeTarget, product, groupData); -+ } else { -+ // Create a group for this group -+ group = PBXGroup::groupWithName(groupData.name(), xcodeProductGroup); -+ } -+ -+ // Add the source files to the group -+ group->setSourceTree(PBX::Group); -+ //populateXcodeGroup(&xcodeProject, group, groupData, xcodeTarget); -+ } -+ -+ // TODO: find a way to decide which target artifact becomes the target's product reference -+ Q_ASSERT(product.targetArtifacts().size() <= 1); -+ -+ // Add references for each target artifact in root "Products" group -+ foreach (const TargetArtifact &artifact, product.targetArtifacts()) -+ { -+ QList refs = xcodeProject.productRefGroup()->addFiles(QStringList() << artifact.filePath(), false, false); -+ foreach (PBXFileReference *ref, refs) -+ { -+ ref->setSourceTree(PBX::BuildProductDir); -+ -+ // reason for the assert <= 1 -+ xcodeTarget->setProductReference(ref); -+ } -+ } -+ -+ xcodeProject.addTarget(xcodeTarget); -+ } -+ -+ // TODO: For some reason this property confuses Xcode. Seems to indicate the path that relative -+ // paths are resolved against, but maybe it's referring to the .xcodeproj? -+ // We'll use the root group instead to get what we want -+ xcodeProject.rootGroup()->setPath(xcodeProject.projectDirPath()); -+ xcodeProject.setProjectDirPath(""); -+ -+ if (xcodeProject.writeToFileSystemProjectFile(true, true, true)) -+ qDebug() << "Generated" << qPrintable(projectFileName); -+ else -+ throw ErrorInfo(Tr::tr("Failed to generate %1").arg(projectFileName)); ++PBXTarget *XcodeNativeGenerator::xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product) ++{ ++ return XcodeGenerator::xcodeTargetForProduct(xcodeProject, product) ?: new PBXLegacyTarget(xcodeProject); +} + +} -diff --git a/src/plugins/generator/xcode/xcodenativegenerator.h b/src/plugins/generator/xcode/xcodenativegenerator.h +diff --git a/src/lib/corelib/generators/xcode/xcodenativegenerator.h b/src/lib/corelib/generators/xcode/xcodenativegenerator.h new file mode 100644 -index 0000000..d964b94 +index 0000000..a04f8df --- /dev/null -+++ b/src/plugins/generator/xcode/xcodenativegenerator.h -@@ -0,0 +1,53 @@ ++++ b/src/lib/corelib/generators/xcode/xcodenativegenerator.h +@@ -0,0 +1,52 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4775,8 +5782,6 @@ index 0000000..d964b94 + +namespace qbs { + -+class Project; -+ +class XcodeNativeGenerator : public XcodeGenerator +{ +public: @@ -4784,22 +5789,23 @@ index 0000000..d964b94 + + QString generatorName() const; + -+ void generate(const Project &project); ++ void generate(const InstallOptions &installOptions); ++ PBXTarget *xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product); +}; + +} + +#endif // QBS_XCODENATIVEGENERATOR_H -diff --git a/src/plugins/generator/xcode/xcodesimplegenerator.cpp b/src/plugins/generator/xcode/xcodesimplegenerator.cpp +diff --git a/src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp b/src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp new file mode 100644 -index 0000000..306d46d +index 0000000..e1bceca --- /dev/null -+++ b/src/plugins/generator/xcode/xcodesimplegenerator.cpp -@@ -0,0 +1,275 @@ ++++ b/src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp +@@ -0,0 +1,58 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4828,35 +5834,12 @@ index 0000000..306d46d + +#include "xcodesimplegenerator.h" + -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include ++#include "pbx.h" + +namespace qbs { + +using namespace Internal; + -+struct XcodeSetting { -+ QString xcodeName; -+ QString qbsModule; -+ QString qbsName; -+ bool isList; -+ -+ XcodeSetting(const QString &xcodeName, const QString &qbsModule, -+ const QString &qbsName, bool isList); -+}; -+ -+XcodeSetting::XcodeSetting(const QString &xcodeName, const QString &qbsModule, -+ const QString &qbsName, bool isList = false) -+ : xcodeName(xcodeName), qbsModule(qbsModule), qbsName(qbsName), isList(isList) -+{ -+} -+ +XcodeSimpleGenerator::XcodeSimpleGenerator() +{ +} @@ -4866,221 +5849,27 @@ index 0000000..306d46d + return QLatin1String("xcode-simple"); +} + -+QList xcodeSettingsMap() ++void XcodeSimpleGenerator::generate(const InstallOptions &installOptions) +{ -+ const QString cpp = QLatin1String("cpp"); -+ -+ QList settings; -+ settings += XcodeSetting(QLatin1String("GCC_PREPROCESSOR_DEFINITIONS"), cpp, QLatin1String("defines"), true); -+ settings += XcodeSetting(QLatin1String("HEADER_SEARCH_PATHS"), cpp, QLatin1String("includePaths"), true); -+ settings += XcodeSetting(QLatin1String("MACOSX_DEPLOYMENT_TARGET"), cpp, QLatin1String("minimumOsxVersion")); -+ settings += XcodeSetting(QLatin1String("OTHER_LDFLAGS"), cpp, QLatin1String("linkerFlags"), true); -+ return settings; ++ XcodeGenerator::generate(installOptions); +} + -+static void populateXcodeTargetProperties(PBXNativeTarget *xcodeTarget, const qbs::ProductData &productData, const qbs::GroupData &groupData) ++PBXTarget *XcodeSimpleGenerator::xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product) +{ -+ // Get the "target name" (Qbs terminology) and use it to set the "product name" (Xcode terminology) -+ xcodeTarget->setProductName(groupData.properties().getProperty(QLatin1String("targetName")).toString()); -+ if (xcodeTarget->productName().isEmpty()) -+ xcodeTarget->setProductName(xcodeTarget->name()); -+ xcodeTarget->setBuildSetting(QLatin1String("PRODUCT_NAME"), xcodeTarget->productName()); -+ -+ QString exePrefix = XcodeGenerator::xcodeExecutablePrefix(productData); -+ if (!exePrefix.isEmpty()) -+ xcodeTarget->setBuildSetting(QLatin1String("EXECUTABLE_PREFIX"), exePrefix); -+ -+ QString architecture = groupData.properties().getModuleProperty(QLatin1String("qbs"), QLatin1String("architecture")).toString(); -+ if (!architecture.isEmpty()) { -+ QString arch = architecture; -+ if (arch == QLatin1String("x86")) -+ arch = QLatin1String("i386"); -+ -+ xcodeTarget->setBuildSetting(QLatin1String("ARCHS"), arch); -+ } -+ -+ QString sysroot = groupData.properties().getModuleProperty(QLatin1String("qbs"), QLatin1String("sysroot")).toString(); -+ if (!sysroot.isEmpty()) { -+ xcodeTarget->setBuildSetting(QLatin1String("SDKROOT"), sysroot); -+ } -+ -+ QStringList platform = groupData.properties().getModulePropertiesAsStringList(QLatin1String("qbs"), QLatin1String("targetOS")); -+ if (platform.contains(QLatin1String("osx"))) { -+ if (sysroot.isEmpty()) -+ xcodeTarget->setBuildSetting(QLatin1String("SDKROOT"), QLatin1String("macosx")); -+ xcodeTarget->setBuildSetting(QLatin1String("SUPPORTED_PLATFORMS"), QStringList() << QLatin1String("macosx")); -+ } else if (platform.contains(QLatin1String("ios"))) { -+ if (sysroot.isEmpty()) -+ xcodeTarget->setBuildSetting(QLatin1String("SDKROOT"), QLatin1String("iphoneos")); -+ xcodeTarget->setBuildSetting(QLatin1String("SUPPORTED_PLATFORMS"), QStringList() << QLatin1String("iphonesimulator") << QLatin1String("iphoneos")); -+ } else { -+ throw ErrorInfo(Tr::tr("Unsupported platform for Xcode project: [%1]").arg(platform.join(QLatin1String(",")))); -+ } -+ -+ foreach (const XcodeSetting &setting, xcodeSettingsMap()) { -+ if (setting.isList) { -+ QVariantList list = groupData.properties().getModuleProperties(setting.qbsModule, setting.qbsName); -+ if (!list.isEmpty()) { -+ const QString inheritProperty = QLatin1String("$(") + setting.xcodeName + QLatin1String(")"); -+ list.append(inheritProperty); -+ xcodeTarget->setBuildSetting(setting.xcodeName, list); -+ } -+ } else { -+ const QVariant variant = groupData.properties().getModuleProperty(setting.qbsModule, setting.qbsName); -+ if (!variant.isNull()) { -+ xcodeTarget->setBuildSetting(setting.xcodeName, variant); -+ } -+ } -+ } -+} -+ -+static void populateXcodeGroup(PBXProject *xcodeProject, PBXGroup *xcodeGroup, const qbs::GroupData &groupData, PBXTarget *xcodeTarget) -+{ -+ QString rootPath = xcodeProject->projectDirPath(); -+ if (!rootPath.endsWith(QLatin1Char('/'))) -+ rootPath += QLatin1Char('/'); -+ -+ QStringList relativeFilePaths; -+ foreach (QString filePath, groupData.allFilePaths()) { -+ if (filePath.startsWith(rootPath)) -+ filePath.remove(0, rootPath.size()); -+ relativeFilePaths += filePath; -+ } -+ -+ // Add all the files in the group as file references so they show up in the project tree -+ QList fileRefs = xcodeGroup->addFiles(relativeFilePaths, false, false); -+ foreach (PBXFileReference *ref, fileRefs) { -+ if (!ref->path().startsWith(QLatin1Char('/'))) { -+ ref->setSourceTree(PBX::Group); -+ } -+ } -+ -+ // If the group is enabled, then we'll actually BUILD them in addition to merely listing them -+ if (groupData.isEnabled()) -+ { -+ foreach (PBXFileReference *ref, fileRefs) -+ xcodeTarget->defaultSourceCodeBuildPhase()->addReference(ref); -+ } -+ -+ //group->setPath(groupData.properties().getProperty(QLatin1String("prefix")).toString()); -+ //qDebug() << groupData.properties().allProperties(); -+} -+ -+void XcodeSimpleGenerator::generate(const Project &project) -+{ -+ const QString buildDirectory = project.projectData().buildDirectory(); -+ QDir dir(buildDirectory); -+ Q_ASSERT(dir.isAbsolute() && dir.exists()); -+ -+ const QString &projectFileName = project.projectData().name() + QLatin1String(".xcodeproj"); -+ if (!dir.cd(projectFileName)) -+ if (!dir.mkdir(projectFileName) || !dir.cd(projectFileName)) -+ throw ErrorInfo(Tr::tr("failed to make project directory")); -+ -+ PBXProject xcodeProject(dir.absoluteFilePath(QLatin1String("project.pbxproj"))); -+ xcodeProject.setName(project.projectData().name()); -+ xcodeProject.setProjectDirPath(project.projectData().location().fileName()); -+ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); -+ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); -+ -+ // Add all the Qbs products as Xcode targets -+ foreach (const ProductData &product, project.projectData().allProducts()) -+ { -+ PBXNativeTarget *xcodeTarget = new PBXNativeTarget(&xcodeProject); -+ xcodeTarget->setName(product.name()); -+ xcodeTarget->setProductType(xcodeProductType(product)); -+ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); -+ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); -+ -+ // Create a root PBX group for the target's files and other groups -+ PBXGroup *xcodeProductGroup = PBXGroup::groupWithName(product.name(), xcodeProject.rootGroup()); -+ -+ // Set up all the groups -+ foreach (const GroupData &groupData, product.groups()) -+ { -+ PBXGroup *group = xcodeProductGroup; -+ if (groupData.name() == product.name()) { -+ // This group has the same name as the product itself so we'll just add the files -+ // directly to the "product" group we created earlier instead of creating a new one -+ populateXcodeTargetProperties(xcodeTarget, product, groupData); -+ } else { -+ // Create a group for this group -+ group = PBXGroup::groupWithName(groupData.name(), xcodeProductGroup); -+ } -+ -+ // Add the source files to the group -+ group->setSourceTree(PBX::Group); -+ populateXcodeGroup(&xcodeProject, group, groupData, xcodeTarget); -+ } -+ -+ // TODO: find a way to decide which target artifact becomes the target's product reference -+ Q_ASSERT(product.targetArtifacts().size() <= 1); -+ -+ // Add references for each target artifact in root "Products" group -+ foreach (const TargetArtifact &artifact, product.targetArtifacts()) -+ { -+ // Chop off the Qbs build dir from the artifact path, because they will actually end -+ // up in Xcode's build directory, not the build directory Qbs would use -+ QString realArtifactPath = artifact.filePath(); -+ if (realArtifactPath.startsWith(buildDirectory)) -+ realArtifactPath.remove(0, buildDirectory.size()); -+ -+ if (realArtifactPath.startsWith(QLatin1Char('/'))) -+ realArtifactPath.remove(0, 1); -+ -+ QList refs = xcodeProject.productRefGroup()->addFiles(QStringList() << realArtifactPath, false, false); -+ foreach (PBXFileReference *ref, refs) -+ { -+ ref->setSourceTree(PBX::BuildProductDir); -+ -+ // reason for the assert <= 1 -+ xcodeTarget->setProductReference(ref); -+ } -+ } -+ -+ xcodeProject.addTarget(xcodeTarget); -+ } -+ -+ QMapIterator i(project.projectConfiguration()); -+ while (i.hasNext()) -+ { -+ i.next(); -+ QString moduleName = i.key(); -+ QVariantMap moduleProperties = i.value().toMap(); -+ -+ QMapIterator j(moduleProperties); -+ while (j.hasNext()) -+ { -+ j.next(); -+ QString propertyName = j.key(); -+ QVariant propertyValue = j.value(); -+ // Do stuff with project properties... -+ } -+ } -+ -+ // TODO: For some reason this property confuses Xcode. Seems to indicate the path that relative -+ // paths are resolved against, but maybe it's referring to the .xcodeproj? -+ // We'll use the root group instead to get what we want -+ xcodeProject.rootGroup()->setPath(xcodeProject.projectDirPath()); -+ xcodeProject.setProjectDirPath(""); -+ -+ if (xcodeProject.writeToFileSystemProjectFile(true, true, true)) -+ qDebug() << "Generated" << qPrintable(projectFileName); -+ else -+ throw ErrorInfo(Tr::tr("Failed to generate %1").arg(projectFileName)); ++ return XcodeGenerator::xcodeTargetForProduct(xcodeProject, product) ?: new PBXNativeTarget(xcodeProject); +} + +} -diff --git a/src/plugins/generator/xcode/xcodesimplegenerator.h b/src/plugins/generator/xcode/xcodesimplegenerator.h +diff --git a/src/lib/corelib/generators/xcode/xcodesimplegenerator.h b/src/lib/corelib/generators/xcode/xcodesimplegenerator.h new file mode 100644 -index 0000000..e5cce26 +index 0000000..66f6419 --- /dev/null -+++ b/src/plugins/generator/xcode/xcodesimplegenerator.h -@@ -0,0 +1,53 @@ ++++ b/src/lib/corelib/generators/xcode/xcodesimplegenerator.h +@@ -0,0 +1,52 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -5115,8 +5904,6 @@ index 0000000..e5cce26 + +namespace qbs { + -+class Project; -+ +class XcodeSimpleGenerator : public XcodeGenerator +{ +public: @@ -5124,20 +5911,457 @@ index 0000000..e5cce26 + + QString generatorName() const; + -+ void generate(const Project &project); ++ void generate(const InstallOptions &installOptions); ++ PBXTarget *xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product); +}; + +} + +#endif // QBS_XCODESIMPLEGENERATOR_H -diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro -index d3823ae..9fe2e6b 100644 ---- a/src/plugins/plugins.pro -+++ b/src/plugins/plugins.pro -@@ -1,2 +1,2 @@ - TEMPLATE = subdirs --SUBDIRS = scanner -+SUBDIRS = generator scanner +diff --git a/src/lib/corelib/generators/xcode/xcscheme.cpp b/src/lib/corelib/generators/xcode/xcscheme.cpp +new file mode 100644 +index 0000000..dbcb994 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcscheme.cpp +@@ -0,0 +1,179 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxobject.h" ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "xcscheme.h" ++#include ++#include ++#include ++ ++static const QString yes = QLatin1String("YES"); ++static const QString no = QLatin1String("NO"); ++ ++class XCSchemePrivate ++{ ++public: ++ XCSchemePrivate(); ++ PBXProject *project; ++ PBXTarget *target; ++ bool parallelizeBuildables; ++ bool buildImplicitDependencies; ++ QString customExecutableFilePath; ++}; ++ ++XCSchemePrivate::XCSchemePrivate() ++ : project() ++ , target() ++ , parallelizeBuildables(true) ++ , buildImplicitDependencies(true) ++{ ++} ++ ++XCScheme::XCScheme(QObject *parent) : ++ QObject(parent), d(new XCSchemePrivate) ++{ ++} ++ ++XCScheme::~XCScheme() ++{ ++ delete d; ++} ++ ++PBXProject *XCScheme::project() const ++{ ++ return d->project; ++} ++ ++void XCScheme::setProject(PBXProject *project) ++{ ++ d->project = project; ++} ++ ++PBXTarget *XCScheme::target() const ++{ ++ return d->target; ++} ++ ++void XCScheme::setTarget(PBXTarget *target) ++{ ++ d->target = target; ++} ++ ++bool XCScheme::parallelizeBuildables() const ++{ ++ return d->parallelizeBuildables; ++} ++ ++void XCScheme::setParallelizeBuildables(bool parallelize) ++{ ++ d->parallelizeBuildables = parallelize; ++} ++ ++bool XCScheme::buildImplicitDependencies() const ++{ ++ return d->buildImplicitDependencies; ++} ++ ++void XCScheme::setBuildImplicitDependencies(bool build) ++{ ++ d->buildImplicitDependencies = build; ++} ++ ++QString XCScheme::customExecutableFilePath() const ++{ ++ return d->customExecutableFilePath; ++} ++ ++void XCScheme::setCustomExecutableFilePath(const QString &customExecutableFilePath) ++{ ++ d->customExecutableFilePath = customExecutableFilePath; ++} ++ ++bool XCScheme::serialize(const QString &filePath) ++{ ++ QFile file(filePath); ++ if (file.open(QIODevice::WriteOnly)) { ++ QXmlStreamWriter writer(&file); ++ writer.setAutoFormatting(true); ++ writer.setAutoFormattingIndent(2); ++ ++ writer.writeStartDocument(); ++ writer.writeStartElement(QLatin1String("Scheme")); ++ ++ // now the "actions" ++ writer.writeStartElement(QLatin1String("BuildAction")); ++ writer.writeAttribute(QLatin1String("parallelizeBuildables"), d->parallelizeBuildables ? yes : no); ++ writer.writeAttribute(QLatin1String("buildImplicitDependencies"), d->buildImplicitDependencies ? yes : no); ++ writer.writeStartElement(QLatin1String("BuildActionEntries")); ++ writer.writeStartElement(QLatin1String("BuildActionEntry")); ++ writer.writeAttribute(QLatin1String("buildForTesting"), yes); ++ writer.writeAttribute(QLatin1String("buildForRunning"), yes); ++ writer.writeAttribute(QLatin1String("buildForProfiling"), yes); ++ writer.writeAttribute(QLatin1String("buildForArchiving"), yes); ++ writer.writeAttribute(QLatin1String("buildForAnalyzing"), yes); ++ writer.writeStartElement(QLatin1String("BuildableReference")); ++ writer.writeAttribute(QLatin1String("BuildableIdentifier"), QLatin1String("primary")); ++ ++ QByteArray bytes; ++ bytes.append(QLatin1String("BlueprintIdentifier:")); ++ bytes.append(filePath); ++ ++ writer.writeAttribute(QLatin1String("BlueprintIdentifier"), PBXObject::createIdentifier(bytes)); ++ if (d->target) { ++ writer.writeAttribute(QLatin1String("BuildableName"), d->target->name()); ++ writer.writeAttribute(QLatin1String("BlueprintName"), d->target->name()); ++ } ++ if (d->project) { ++ const QString relativePath = QDir(d->project->projectDirPath()).relativeFilePath(d->project->projectWrapperPath()); ++ writer.writeAttribute(QLatin1String("ReferencedContainer"), QString(QLatin1String("container:%1")).arg(relativePath)); ++ } ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ ++ if (!d->customExecutableFilePath.isEmpty()) { ++ writer.writeStartElement(QLatin1String("LaunchAction")); ++ writer.writeStartElement(QLatin1String("PathRunnable")); ++ writer.writeAttribute(QLatin1String("FilePath"), d->customExecutableFilePath); ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ } ++ ++ writer.writeEndElement(); ++ writer.writeEndDocument(); ++ ++ return file.error() == QFile::NoError; ++ } ++ ++ return false; ++} +diff --git a/src/lib/corelib/generators/xcode/xcscheme.h b/src/lib/corelib/generators/xcode/xcscheme.h +new file mode 100644 +index 0000000..270cca3 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcscheme.h +@@ -0,0 +1,69 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCSCHEME_H ++#define XCSCHEME_H ++ ++#include ++ ++class PBXProject; ++class PBXTarget; ++ ++class XCSchemePrivate; ++ ++class XCScheme : public QObject ++{ ++ Q_OBJECT ++public: ++ explicit XCScheme(QObject *parent = 0); ++ virtual ~XCScheme(); ++ ++ PBXProject *project() const; ++ void setProject(PBXProject *project); ++ ++ PBXTarget *target() const; ++ void setTarget(PBXTarget *target); ++ ++ bool parallelizeBuildables() const; ++ void setParallelizeBuildables(bool parallelize); ++ ++ bool buildImplicitDependencies() const; ++ void setBuildImplicitDependencies(bool build); ++ ++ QString customExecutableFilePath() const; ++ void setCustomExecutableFilePath(const QString &customExecutableFilePath); ++ ++ bool serialize(const QString &filePath); ++ ++private: ++ XCSchemePrivate *d; ++}; ++ ++#endif // XCSCHEME_H +diff --git a/src/lib/corelib/generators/xcode/xcsettings.cpp b/src/lib/corelib/generators/xcode/xcsettings.cpp +new file mode 100644 +index 0000000..d34c86e +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcsettings.cpp +@@ -0,0 +1,95 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcsettings.h" ++ ++#include ++#include ++#include ++ ++class XCSettingsPrivate { ++public: ++ XCSettingsPrivate() ++ : autocreateSchemes() ++ { ++ } ++ ++ bool autocreateSchemes; ++}; ++ ++XCSettings::XCSettings(QObject *parent) ++ : QObject(parent) ++ , d(new XCSettingsPrivate) ++{ ++} ++ ++XCSettings::~XCSettings() ++{ ++ delete d; ++} ++ ++bool XCSettings::autocreateSchemes() const ++{ ++ return d->autocreateSchemes; ++} ++ ++void XCSettings::setAutocreateSchemes(bool autocreateSchemes) ++{ ++ d->autocreateSchemes = autocreateSchemes; ++} ++ ++bool XCSettings::serialize(const QString &filePath) ++{ ++ QFile file(filePath); ++ if (file.open(QIODevice::WriteOnly)) { ++ QXmlStreamWriter writer(&file); ++ writer.setAutoFormatting(true); ++ writer.setAutoFormattingIndent(-1); ++ ++ writer.writeStartDocument(); ++ writer.writeDTD(QLatin1String("")); ++ ++ writer.writeStartElement(QLatin1String("plist")); ++ writer.writeAttribute(QLatin1String("version"), QLatin1String("1.0")); ++ writer.writeStartElement(QLatin1String("dict")); ++ ++ writer.writeTextElement(QLatin1String("key"), QLatin1String("IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded")); ++ writer.writeEmptyElement(d->autocreateSchemes ? QLatin1String("true") : QLatin1String("false")); ++ ++ writer.writeEndElement(); // ++ writer.writeEndElement(); // ++ writer.writeEndDocument(); ++ ++ return file.error() == QFile::NoError; ++ } ++ ++ return false; ++} ++ +diff --git a/src/lib/corelib/generators/xcode/xcsettings.h b/src/lib/corelib/generators/xcode/xcsettings.h +new file mode 100644 +index 0000000..e6f2c5d +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcsettings.h +@@ -0,0 +1,54 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCSETTINGS_H ++#define XCSETTINGS_H ++ ++#include ++ ++class XCSettingsPrivate; ++ ++class XCSettings : public QObject ++{ ++ Q_OBJECT ++public: ++ explicit XCSettings(QObject *parent = 0); ++ virtual ~XCSettings(); ++ ++ bool autocreateSchemes() const; ++ void setAutocreateSchemes(bool autocreateSchemes); ++ ++ bool serialize(const QString &filePath); ++ ++private: ++ XCSettingsPrivate *d; ++}; ++ ++#endif // XCSETTINGS_H +diff --git a/src/lib/corelib/tools/projectgeneratormanager.cpp b/src/lib/corelib/tools/projectgeneratormanager.cpp +index 4c62fc0..f5d0f81 100644 +--- a/src/lib/corelib/tools/projectgeneratormanager.cpp ++++ b/src/lib/corelib/tools/projectgeneratormanager.cpp +@@ -39,6 +39,9 @@ + #include + #include + ++#include ++#include ++ + namespace qbs { + + using namespace Internal; +@@ -60,6 +63,8 @@ ProjectGeneratorManager *ProjectGeneratorManager::instance() + ProjectGeneratorManager::ProjectGeneratorManager() + { + QList > generators; ++ generators << QSharedPointer::create(); ++ generators << QSharedPointer::create(); + foreach (QSharedPointer generator, generators) { + m_generators[generator->generatorName()] = generator; + } -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs-git/0001-WIP-Xcode-generator.master.patch b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.master.patch similarity index 50% rename from mingw-w64-qbs-git/0001-WIP-Xcode-generator.master.patch rename to mingw-w64-qbs-git/0002-WIP-Xcode-generator.master.patch index 540568c2f3..d2a2ad5177 100644 --- a/mingw-w64-qbs-git/0001-WIP-Xcode-generator.master.patch +++ b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.master.patch @@ -1,1167 +1,218 @@ -From 9a5b32faa3c74f45dcfd57b33f1f728da00f1018 Mon Sep 17 00:00:00 2001 +From 92347c167dfa778fffc25cf2c03cc4cfd80a5ce0 Mon Sep 17 00:00:00 2001 From: Jake Petroules -Date: Sat, 29 Nov 2014 17:48:47 +0000 -Subject: [PATCH 1/4] WIP: Xcode generator. +Date: Wed, 18 Feb 2015 09:05:29 -0800 +Subject: [PATCH 2/5] WIP: Xcode generator. Task-number: QBS-32 - Change-Id: I5ce5cc3148aa801d75a1f64b778fe7334de43af9 --- - src/app/qbs/commandlinefrontend.cpp | 27 ++ - src/app/qbs/commandlinefrontend.h | 1 + - src/app/qbs/parser/command.cpp | 35 +++ - src/app/qbs/parser/command.h | 13 + - src/app/qbs/parser/commandlineoption.cpp | 23 ++ - src/app/qbs/parser/commandlineoption.h | 18 +- - src/app/qbs/parser/commandlineoptionpool.cpp | 8 + - src/app/qbs/parser/commandlineoptionpool.h | 1 + - src/app/qbs/parser/commandlineparser.cpp | 10 + - src/app/qbs/parser/commandlineparser.h | 2 + - src/app/qbs/parser/commandpool.cpp | 3 + - src/app/qbs/parser/commandtype.h | 2 +- - src/lib/corelib/api/api.pri | 2 + - src/lib/corelib/api/generator.cpp | 50 ++++ - src/lib/corelib/api/generator.h | 61 +++++ - src/lib/corelib/api/project.cpp | 2 + - src/lib/corelib/qbs.h | 2 + - src/lib/corelib/tools/generateoptions.cpp | 91 +++++++ - src/lib/corelib/tools/generateoptions.h | 58 +++++ - src/lib/corelib/tools/generatorpluginmanager.cpp | 128 ++++++++++ - src/lib/corelib/tools/generatorpluginmanager.h | 69 ++++++ - src/lib/corelib/tools/scannerpluginmanager.cpp | 3 + - src/lib/corelib/tools/tools.pri | 4 + - src/plugins/generator/generator.pro | 2 + - src/plugins/generator/generatorplugin.h | 46 ++++ - src/plugins/generator/xcode/main.cpp | 45 ++++ - .../generator/xcode/opensteppropertylist.cpp | 186 ++++++++++++++ - src/plugins/generator/xcode/opensteppropertylist.h | 71 ++++++ - src/plugins/generator/xcode/pbx.h | 53 ++++ - src/plugins/generator/xcode/pbxbuildfile.cpp | 72 ++++++ - src/plugins/generator/xcode/pbxbuildfile.h | 64 +++++ - src/plugins/generator/xcode/pbxbuildphase.cpp | 77 ++++++ - src/plugins/generator/xcode/pbxbuildphase.h | 60 +++++ - src/plugins/generator/xcode/pbxcontainer.cpp | 53 ++++ - src/plugins/generator/xcode/pbxcontainer.h | 57 +++++ - src/plugins/generator/xcode/pbxfileencoding.h | 57 +++++ - src/plugins/generator/xcode/pbxfilereference.cpp | 73 ++++++ - src/plugins/generator/xcode/pbxfilereference.h | 54 ++++ - src/plugins/generator/xcode/pbxfiletype.cpp | 41 +++ - src/plugins/generator/xcode/pbxfiletype.h | 47 ++++ - src/plugins/generator/xcode/pbxgroup.cpp | 114 +++++++++ - src/plugins/generator/xcode/pbxgroup.h | 69 ++++++ - src/plugins/generator/xcode/pbxlegacytarget.cpp | 127 ++++++++++ - src/plugins/generator/xcode/pbxlegacytarget.h | 73 ++++++ - src/plugins/generator/xcode/pbxnativetarget.cpp | 83 +++++++ - src/plugins/generator/xcode/pbxnativetarget.h | 61 +++++ - src/plugins/generator/xcode/pbxobject.cpp | 69 ++++++ - src/plugins/generator/xcode/pbxobject.h | 59 +++++ - src/plugins/generator/xcode/pbxproducttype.cpp | 56 +++++ - src/plugins/generator/xcode/pbxproducttype.h | 52 ++++ - src/plugins/generator/xcode/pbxproject.cpp | 218 ++++++++++++++++ - src/plugins/generator/xcode/pbxproject.h | 80 ++++++ - src/plugins/generator/xcode/pbxreference.cpp | 107 ++++++++ - src/plugins/generator/xcode/pbxreference.h | 70 ++++++ - .../generator/xcode/pbxsourcesbuildphase.cpp | 47 ++++ - src/plugins/generator/xcode/pbxsourcesbuildphase.h | 49 ++++ - src/plugins/generator/xcode/pbxsourcetree.cpp | 50 ++++ - src/plugins/generator/xcode/pbxsourcetree.h | 52 ++++ - src/plugins/generator/xcode/pbxtarget.cpp | 139 +++++++++++ - src/plugins/generator/xcode/pbxtarget.h | 86 +++++++ - .../generator/xcode/xcbuildconfiguration.cpp | 82 ++++++ - src/plugins/generator/xcode/xcbuildconfiguration.h | 67 +++++ - .../generator/xcode/xcconfigurationlist.cpp | 142 +++++++++++ - src/plugins/generator/xcode/xcconfigurationlist.h | 63 +++++ - src/plugins/generator/xcode/xcode.pro | 58 +++++ - src/plugins/generator/xcode/xcodegenerator.cpp | 96 +++++++ - src/plugins/generator/xcode/xcodegenerator.h | 53 ++++ - .../generator/xcode/xcodenativegenerator.cpp | 136 ++++++++++ - src/plugins/generator/xcode/xcodenativegenerator.h | 53 ++++ - .../generator/xcode/xcodesimplegenerator.cpp | 275 +++++++++++++++++++++ - src/plugins/generator/xcode/xcodesimplegenerator.h | 53 ++++ - src/plugins/plugins.pro | 2 +- - 72 files changed, 4409 insertions(+), 3 deletions(-) - create mode 100644 src/lib/corelib/api/generator.cpp - create mode 100644 src/lib/corelib/api/generator.h - create mode 100644 src/lib/corelib/tools/generateoptions.cpp - create mode 100644 src/lib/corelib/tools/generateoptions.h - create mode 100644 src/lib/corelib/tools/generatorpluginmanager.cpp - create mode 100644 src/lib/corelib/tools/generatorpluginmanager.h - create mode 100644 src/plugins/generator/generator.pro - create mode 100644 src/plugins/generator/generatorplugin.h - create mode 100644 src/plugins/generator/xcode/main.cpp - create mode 100644 src/plugins/generator/xcode/opensteppropertylist.cpp - create mode 100644 src/plugins/generator/xcode/opensteppropertylist.h - create mode 100644 src/plugins/generator/xcode/pbx.h - create mode 100644 src/plugins/generator/xcode/pbxbuildfile.cpp - create mode 100644 src/plugins/generator/xcode/pbxbuildfile.h - create mode 100644 src/plugins/generator/xcode/pbxbuildphase.cpp - create mode 100644 src/plugins/generator/xcode/pbxbuildphase.h - create mode 100644 src/plugins/generator/xcode/pbxcontainer.cpp - create mode 100644 src/plugins/generator/xcode/pbxcontainer.h - create mode 100644 src/plugins/generator/xcode/pbxfileencoding.h - create mode 100644 src/plugins/generator/xcode/pbxfilereference.cpp - create mode 100644 src/plugins/generator/xcode/pbxfilereference.h - create mode 100644 src/plugins/generator/xcode/pbxfiletype.cpp - create mode 100644 src/plugins/generator/xcode/pbxfiletype.h - create mode 100644 src/plugins/generator/xcode/pbxgroup.cpp - create mode 100644 src/plugins/generator/xcode/pbxgroup.h - create mode 100644 src/plugins/generator/xcode/pbxlegacytarget.cpp - create mode 100644 src/plugins/generator/xcode/pbxlegacytarget.h - create mode 100644 src/plugins/generator/xcode/pbxnativetarget.cpp - create mode 100644 src/plugins/generator/xcode/pbxnativetarget.h - create mode 100644 src/plugins/generator/xcode/pbxobject.cpp - create mode 100644 src/plugins/generator/xcode/pbxobject.h - create mode 100644 src/plugins/generator/xcode/pbxproducttype.cpp - create mode 100644 src/plugins/generator/xcode/pbxproducttype.h - create mode 100644 src/plugins/generator/xcode/pbxproject.cpp - create mode 100644 src/plugins/generator/xcode/pbxproject.h - create mode 100644 src/plugins/generator/xcode/pbxreference.cpp - create mode 100644 src/plugins/generator/xcode/pbxreference.h - create mode 100644 src/plugins/generator/xcode/pbxsourcesbuildphase.cpp - create mode 100644 src/plugins/generator/xcode/pbxsourcesbuildphase.h - create mode 100644 src/plugins/generator/xcode/pbxsourcetree.cpp - create mode 100644 src/plugins/generator/xcode/pbxsourcetree.h - create mode 100644 src/plugins/generator/xcode/pbxtarget.cpp - create mode 100644 src/plugins/generator/xcode/pbxtarget.h - create mode 100644 src/plugins/generator/xcode/xcbuildconfiguration.cpp - create mode 100644 src/plugins/generator/xcode/xcbuildconfiguration.h - create mode 100644 src/plugins/generator/xcode/xcconfigurationlist.cpp - create mode 100644 src/plugins/generator/xcode/xcconfigurationlist.h - create mode 100644 src/plugins/generator/xcode/xcode.pro - create mode 100644 src/plugins/generator/xcode/xcodegenerator.cpp - create mode 100644 src/plugins/generator/xcode/xcodegenerator.h - create mode 100644 src/plugins/generator/xcode/xcodenativegenerator.cpp - create mode 100644 src/plugins/generator/xcode/xcodenativegenerator.h - create mode 100644 src/plugins/generator/xcode/xcodesimplegenerator.cpp - create mode 100644 src/plugins/generator/xcode/xcodesimplegenerator.h + src/lib/corelib/corelib.qbs | 62 ++ + src/lib/corelib/generators/generators.pri | 2 + + .../generators/xcode/opensteppropertylist.cpp | 257 ++++++++ + .../generators/xcode/opensteppropertylist.h | 76 +++ + src/lib/corelib/generators/xcode/pbx.h | 57 ++ + src/lib/corelib/generators/xcode/pbxbuildfile.cpp | 134 +++++ + src/lib/corelib/generators/xcode/pbxbuildfile.h | 74 +++ + src/lib/corelib/generators/xcode/pbxbuildphase.cpp | 94 +++ + src/lib/corelib/generators/xcode/pbxbuildphase.h | 65 +++ + src/lib/corelib/generators/xcode/pbxcontainer.cpp | 60 ++ + src/lib/corelib/generators/xcode/pbxcontainer.h | 59 ++ + .../generators/xcode/pbxcontaineritemproxy.cpp | 113 ++++ + .../generators/xcode/pbxcontaineritemproxy.h | 65 +++ + src/lib/corelib/generators/xcode/pbxfileencoding.h | 57 ++ + .../corelib/generators/xcode/pbxfilereference.cpp | 66 +++ + .../corelib/generators/xcode/pbxfilereference.h | 52 ++ + src/lib/corelib/generators/xcode/pbxfiletype.cpp | 51 ++ + src/lib/corelib/generators/xcode/pbxfiletype.h | 47 ++ + .../generators/xcode/pbxframeworksbuildphase.cpp | 27 + + .../generators/xcode/pbxframeworksbuildphase.h | 50 ++ + src/lib/corelib/generators/xcode/pbxgroup.cpp | 119 ++++ + src/lib/corelib/generators/xcode/pbxgroup.h | 71 +++ + .../corelib/generators/xcode/pbxlegacytarget.cpp | 111 ++++ + src/lib/corelib/generators/xcode/pbxlegacytarget.h | 65 +++ + .../corelib/generators/xcode/pbxnativetarget.cpp | 68 +++ + src/lib/corelib/generators/xcode/pbxnativetarget.h | 53 ++ + src/lib/corelib/generators/xcode/pbxobject.cpp | 96 +++ + src/lib/corelib/generators/xcode/pbxobject.h | 124 ++++ + .../corelib/generators/xcode/pbxproducttype.cpp | 75 +++ + src/lib/corelib/generators/xcode/pbxproducttype.h | 53 ++ + src/lib/corelib/generators/xcode/pbxproject.cpp | 333 +++++++++++ + src/lib/corelib/generators/xcode/pbxproject.h | 114 ++++ + src/lib/corelib/generators/xcode/pbxreference.cpp | 127 ++++ + src/lib/corelib/generators/xcode/pbxreference.h | 72 +++ + .../generators/xcode/pbxsourcesbuildphase.cpp | 57 ++ + .../generators/xcode/pbxsourcesbuildphase.h | 53 ++ + src/lib/corelib/generators/xcode/pbxsourcetree.cpp | 50 ++ + src/lib/corelib/generators/xcode/pbxsourcetree.h | 52 ++ + src/lib/corelib/generators/xcode/pbxtarget.cpp | 192 ++++++ + src/lib/corelib/generators/xcode/pbxtarget.h | 100 ++++ + .../generators/xcode/pbxtargetdependency.cpp | 99 ++++ + .../corelib/generators/xcode/pbxtargetdependency.h | 65 +++ + .../generators/xcode/xcbuildconfiguration.cpp | 92 +++ + .../generators/xcode/xcbuildconfiguration.h | 69 +++ + .../generators/xcode/xcconfigurationlist.cpp | 147 +++++ + .../corelib/generators/xcode/xcconfigurationlist.h | 67 +++ + src/lib/corelib/generators/xcode/xcode.pri | 59 ++ + .../generators/xcode/xcodebuildsettingmapping.cpp | 366 ++++++++++++ + .../generators/xcode/xcodebuildsettingmapping.h | 96 +++ + .../corelib/generators/xcode/xcodegenerator.cpp | 643 +++++++++++++++++++++ + src/lib/corelib/generators/xcode/xcodegenerator.h | 81 +++ + .../generators/xcode/xcodenativegenerator.cpp | 58 ++ + .../generators/xcode/xcodenativegenerator.h | 52 ++ + .../generators/xcode/xcodesimplegenerator.cpp | 58 ++ + .../generators/xcode/xcodesimplegenerator.h | 52 ++ + src/lib/corelib/generators/xcode/xcscheme.cpp | 179 ++++++ + src/lib/corelib/generators/xcode/xcscheme.h | 69 +++ + src/lib/corelib/generators/xcode/xcsettings.cpp | 95 +++ + src/lib/corelib/generators/xcode/xcsettings.h | 54 ++ + src/lib/corelib/tools/projectgeneratormanager.cpp | 5 + + 60 files changed, 5859 insertions(+) + create mode 100644 src/lib/corelib/generators/xcode/opensteppropertylist.cpp + create mode 100644 src/lib/corelib/generators/xcode/opensteppropertylist.h + create mode 100644 src/lib/corelib/generators/xcode/pbx.h + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildfile.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildfile.h + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildphase.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildphase.h + create mode 100644 src/lib/corelib/generators/xcode/pbxcontainer.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxcontainer.h + create mode 100644 src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h + create mode 100644 src/lib/corelib/generators/xcode/pbxfileencoding.h + create mode 100644 src/lib/corelib/generators/xcode/pbxfilereference.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxfilereference.h + create mode 100644 src/lib/corelib/generators/xcode/pbxfiletype.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxfiletype.h + create mode 100644 src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h + create mode 100644 src/lib/corelib/generators/xcode/pbxgroup.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxgroup.h + create mode 100644 src/lib/corelib/generators/xcode/pbxlegacytarget.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxlegacytarget.h + create mode 100644 src/lib/corelib/generators/xcode/pbxnativetarget.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxnativetarget.h + create mode 100644 src/lib/corelib/generators/xcode/pbxobject.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxobject.h + create mode 100644 src/lib/corelib/generators/xcode/pbxproducttype.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxproducttype.h + create mode 100644 src/lib/corelib/generators/xcode/pbxproject.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxproject.h + create mode 100644 src/lib/corelib/generators/xcode/pbxreference.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxreference.h + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcetree.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcetree.h + create mode 100644 src/lib/corelib/generators/xcode/pbxtarget.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxtarget.h + create mode 100644 src/lib/corelib/generators/xcode/pbxtargetdependency.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxtargetdependency.h + create mode 100644 src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcbuildconfiguration.h + create mode 100644 src/lib/corelib/generators/xcode/xcconfigurationlist.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcconfigurationlist.h + create mode 100644 src/lib/corelib/generators/xcode/xcode.pri + create mode 100644 src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h + create mode 100644 src/lib/corelib/generators/xcode/xcodegenerator.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodegenerator.h + create mode 100644 src/lib/corelib/generators/xcode/xcodenativegenerator.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodenativegenerator.h + create mode 100644 src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodesimplegenerator.h + create mode 100644 src/lib/corelib/generators/xcode/xcscheme.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcscheme.h + create mode 100644 src/lib/corelib/generators/xcode/xcsettings.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcsettings.h -diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp -index d3de3b3..8236243 100644 ---- a/src/app/qbs/commandlinefrontend.cpp -+++ b/src/app/qbs/commandlinefrontend.cpp -@@ -39,6 +39,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -332,6 +333,9 @@ void CommandLineFrontend::handleProjectsResolved() - if (m_cancelStatus != CancelStatusNone) - throw ErrorInfo(Tr::tr("Execution canceled.")); - switch (m_parser.command()) { -+ case GenerateCommandType: -+ generate(); -+ break; - case ResolveCommandType: - qApp->quit(); - break; -@@ -449,6 +453,29 @@ void CommandLineFrontend::build() - m_currentBuildEffort = 0; - } - -+void CommandLineFrontend::generate() -+{ -+ const QString generatorName = m_parser.generateOptions().generatorName(); -+ if (generatorName.isEmpty()) { -+ throw ErrorInfo(Tr::tr("Invalid use of command '%1': No generator given.\nUsage: %2") -+ .arg(m_parser.commandName(), m_parser.commandDescription())); -+ } -+ -+ Q_ASSERT(m_projects.count() == 1); -+ const Project project = m_projects.first(); -+ if (Generator *generator = GeneratorPluginManager::generatorWithName(generatorName)) -+ { -+ generator->generate(project); -+ delete generator; -+ } -+ else -+ { -+ throw ErrorInfo(Tr::tr("No generator named '%1'").arg(generatorName)); -+ } -+ -+ qApp->quit(); -+} -+ - int CommandLineFrontend::runTarget() - { - try { -diff --git a/src/app/qbs/commandlinefrontend.h b/src/app/qbs/commandlinefrontend.h -index 3bd443f..cac1884 100644 ---- a/src/app/qbs/commandlinefrontend.h -+++ b/src/app/qbs/commandlinefrontend.h -@@ -80,6 +80,7 @@ private: - void makeClean(); - int runShell(); - void build(); -+ void generate(); - int runTarget(); - void updateTimestamps(); - void connectBuildJobs(); -diff --git a/src/app/qbs/parser/command.cpp b/src/app/qbs/parser/command.cpp -index 4f8830e..4af91ec 100644 ---- a/src/app/qbs/parser/command.cpp -+++ b/src/app/qbs/parser/command.cpp -@@ -188,6 +188,41 @@ QList ResolveCommand::supportedOptions() const - return resolveOptions(); - } - -+QString GenerateCommand::shortDescription() const -+{ -+ return Tr::tr("Generate files for a different build system."); -+} -+ -+QString GenerateCommand::longDescription() const -+{ -+ QString description = Tr::tr("qbs %1 [options] [[variant] [property:value] ...] ...\n") -+ .arg(representation()); -+ description += Tr::tr("Generates project files to build the project using a different build system."); -+ return description += supportedOptionsDescription(); -+} -+ -+QString GenerateCommand::representation() const -+{ -+ return QLatin1String("generate"); -+} -+ -+static QList generateOptions() -+{ -+ return QList() -+ << CommandLineOption::FileOptionType -+ << CommandLineOption::LogLevelOptionType -+ << CommandLineOption::VerboseOptionType -+ << CommandLineOption::QuietOptionType -+ << CommandLineOption::ShowProgressOptionType -+ << CommandLineOption::LogTimeOptionType -+ << CommandLineOption::GeneratorOptionType; -+} -+ -+QList GenerateCommand::supportedOptions() const -+{ -+ return generateOptions(); -+} -+ - QString BuildCommand::shortDescription() const - { - return Tr::tr("Build (parts of) a project. This is the default command."); -diff --git a/src/app/qbs/parser/command.h b/src/app/qbs/parser/command.h -index 1f479ad..ca7923e 100644 ---- a/src/app/qbs/parser/command.h -+++ b/src/app/qbs/parser/command.h -@@ -81,6 +81,19 @@ private: - QList supportedOptions() const; - }; - -+class GenerateCommand : public Command -+{ -+public: -+ GenerateCommand(CommandLineOptionPool &optionPool) : Command(optionPool) {} -+ -+private: -+ CommandType type() const { return GenerateCommandType; } -+ QString shortDescription() const; -+ QString longDescription() const; -+ QString representation() const; -+ QList supportedOptions() const; -+}; -+ - class BuildCommand : public Command - { - public: -diff --git a/src/app/qbs/parser/commandlineoption.cpp b/src/app/qbs/parser/commandlineoption.cpp -index f3b5786..a003250 100644 ---- a/src/app/qbs/parser/commandlineoption.cpp -+++ b/src/app/qbs/parser/commandlineoption.cpp -@@ -115,6 +115,29 @@ void BuildDirectoryOption::doParse(const QString &representation, QStringList &i - m_projectBuildDirectory = getArgument(representation, input); - } - -+QString GeneratorOption::description(CommandType command) const -+{ -+ Q_UNUSED(command); -+ return Tr::tr("%1|%2 \n" -+ "\tUse the given build system generator.\n") -+ .arg(longRepresentation(), shortRepresentation()); -+} -+ -+QString GeneratorOption::shortRepresentation() const -+{ -+ return QLatin1String("-g"); -+} -+ -+QString GeneratorOption::longRepresentation() const -+{ -+ return QLatin1String("--generator"); -+} -+ -+void GeneratorOption::doParse(const QString &representation, QStringList &input) -+{ -+ m_generatorName = getArgument(representation, input); -+} -+ - static QString loglevelLongRepresentation() { return QLatin1String("--log-level"); } - - QString VerboseOption::description(CommandType command) const -diff --git a/src/app/qbs/parser/commandlineoption.h b/src/app/qbs/parser/commandlineoption.h -index a070cc5..8c75fba 100644 ---- a/src/app/qbs/parser/commandlineoption.h -+++ b/src/app/qbs/parser/commandlineoption.h -@@ -56,7 +56,8 @@ public: - BuildNonDefaultOptionType, - LogTimeOptionType, - ShowCommandLinesOptionType, -- SettingsDirOptionType -+ SettingsDirOptionType, -+ GeneratorOptionType - }; - - virtual ~CommandLineOption(); -@@ -108,6 +109,21 @@ private: - QString m_projectBuildDirectory; - }; - -+class GeneratorOption : public CommandLineOption -+{ -+public: -+ QString generatorName() const { return m_generatorName; } -+ -+private: -+ QString description(CommandType command) const; -+ QString shortRepresentation() const; -+ QString longRepresentation() const; -+ void doParse(const QString &representation, QStringList &input); -+ -+private: -+ QString m_generatorName; -+}; -+ - class CountingOption : public CommandLineOption - { - public: -diff --git a/src/app/qbs/parser/commandlineoptionpool.cpp b/src/app/qbs/parser/commandlineoptionpool.cpp -index c80529d..b8bbf76 100644 ---- a/src/app/qbs/parser/commandlineoptionpool.cpp -+++ b/src/app/qbs/parser/commandlineoptionpool.cpp -@@ -104,6 +104,9 @@ CommandLineOption *CommandLineOptionPool::getOption(CommandLineOption::Type type - case CommandLineOption::SettingsDirOptionType: - option = new SettingsDirOption; - break; -+ case CommandLineOption::GeneratorOptionType: -+ option = new GeneratorOption; -+ break; - default: - qFatal("Unknown option type %d", type); - } -@@ -219,4 +222,9 @@ SettingsDirOption *CommandLineOptionPool::settingsDirOption() const - return static_cast(getOption(CommandLineOption::SettingsDirOptionType)); - } - -+GeneratorOption *CommandLineOptionPool::generatorOption() const -+{ -+ return static_cast(getOption(CommandLineOption::GeneratorOptionType)); -+} -+ - } // namespace qbs -diff --git a/src/app/qbs/parser/commandlineoptionpool.h b/src/app/qbs/parser/commandlineoptionpool.h -index f14c361..64e180f 100644 ---- a/src/app/qbs/parser/commandlineoptionpool.h -+++ b/src/app/qbs/parser/commandlineoptionpool.h -@@ -63,6 +63,7 @@ public: - LogTimeOption *logTimeOption() const; - ShowCommandLinesOption *showCommandLinesOption() const; - SettingsDirOption *settingsDirOption() const; -+ GeneratorOption *generatorOption() const; - - private: - mutable QHash m_options; -diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp -index 852f8aa..465a46a 100644 ---- a/src/app/qbs/parser/commandlineparser.cpp -+++ b/src/app/qbs/parser/commandlineparser.cpp -@@ -41,6 +41,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -157,6 +158,14 @@ CleanOptions CommandLineParser::cleanOptions() const - return options; - } - -+GenerateOptions CommandLineParser::generateOptions() const -+{ -+ Q_ASSERT(command() == GenerateCommandType); -+ GenerateOptions options; -+ options.setGeneratorName(d->optionPool.generatorOption()->generatorName()); -+ return options; -+} -+ - InstallOptions CommandLineParser::installOptions() const - { - Q_ASSERT(command() == InstallCommandType || command() == RunCommandType); -@@ -365,6 +374,7 @@ Command *CommandLineParser::CommandLineParserPrivate::commandFromString(const QS - QList CommandLineParser::CommandLineParserPrivate::allCommands() const - { - return QList() -+ << commandPool.getCommand(GenerateCommandType) - << commandPool.getCommand(ResolveCommandType) - << commandPool.getCommand(BuildCommandType) - << commandPool.getCommand(CleanCommandType) -diff --git a/src/app/qbs/parser/commandlineparser.h b/src/app/qbs/parser/commandlineparser.h -index dc9efe8..acd6401 100644 ---- a/src/app/qbs/parser/commandlineparser.h -+++ b/src/app/qbs/parser/commandlineparser.h -@@ -38,6 +38,7 @@ - namespace qbs { - class BuildOptions; - class CleanOptions; -+class GenerateOptions; - class InstallOptions; - class Settings; - -@@ -58,6 +59,7 @@ public: - QString projectBuildDirectory() const; - BuildOptions buildOptions() const; - CleanOptions cleanOptions() const; -+ GenerateOptions generateOptions() const; - InstallOptions installOptions() const; - bool force() const; - bool forceTimestampCheck() const; -diff --git a/src/app/qbs/parser/commandpool.cpp b/src/app/qbs/parser/commandpool.cpp -index f0451a8..b895b6d 100644 ---- a/src/app/qbs/parser/commandpool.cpp -+++ b/src/app/qbs/parser/commandpool.cpp -@@ -50,6 +50,9 @@ qbs::Command *CommandPool::getCommand(CommandType type) const - case ResolveCommandType: - command = new ResolveCommand(m_optionPool); - break; -+ case GenerateCommandType: -+ command = new GenerateCommand(m_optionPool); -+ break; - case BuildCommandType: - command = new BuildCommand(m_optionPool); - break; -diff --git a/src/app/qbs/parser/commandtype.h b/src/app/qbs/parser/commandtype.h -index 7c3a09d..e16c23d 100644 ---- a/src/app/qbs/parser/commandtype.h -+++ b/src/app/qbs/parser/commandtype.h -@@ -35,7 +35,7 @@ namespace qbs { - enum CommandType { - ResolveCommandType, BuildCommandType, CleanCommandType, RunCommandType, ShellCommandType, - StatusCommandType, UpdateTimestampsCommandType, -- InstallCommandType, HelpCommandType -+ InstallCommandType, HelpCommandType, GenerateCommandType - }; - - } // namespace qbs -diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri -index 18b3b47..9f2638c 100644 ---- a/src/lib/corelib/api/api.pri -+++ b/src/lib/corelib/api/api.pri -@@ -1,5 +1,6 @@ - HEADERS += \ - $$PWD/internaljobs.h \ -+ $$PWD/generator.h \ - $$PWD/projectdata.h \ - $$PWD/runenvironment.h \ - $$PWD/jobs.h \ -@@ -13,6 +14,7 @@ HEADERS += \ - - SOURCES += \ - $$PWD/internaljobs.cpp \ -+ $$PWD/generator.cpp \ - $$PWD/runenvironment.cpp \ - $$PWD/projectdata.cpp \ - $$PWD/jobs.cpp \ -diff --git a/src/lib/corelib/api/generator.cpp b/src/lib/corelib/api/generator.cpp -new file mode 100644 -index 0000000..3274b3b ---- /dev/null -+++ b/src/lib/corelib/api/generator.cpp -@@ -0,0 +1,50 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+#include "generator.h" -+ -+#include -+ -+namespace qbs { -+ -+/*! -+ * \class Generator -+ * \brief The \c Generator class is an abstract base class for generators which generate arbitrary -+ * output given a resolved Qbs project. -+ */ -+ -+Generator::Generator() -+{ -+} -+ -+Generator::~Generator() -+{ -+} -+ -+} // namespace qbs -diff --git a/src/lib/corelib/api/generator.h b/src/lib/corelib/api/generator.h -new file mode 100644 -index 0000000..7f8ba97 ---- /dev/null -+++ b/src/lib/corelib/api/generator.h -@@ -0,0 +1,61 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+#ifndef QBS_GENERATOR_H -+#define QBS_GENERATOR_H -+ -+#include "../language/forward_decls.h" -+#include "../tools/qbs_export.h" -+ -+namespace qbs { -+ -+#include -+ -+class Project; -+ -+class QBS_EXPORT Generator -+{ -+protected: -+ Generator(); -+ -+public: -+ virtual ~Generator(); -+ -+ /*! -+ * Returns the name of the generator used to create the external build system files. -+ * The default is empty. -+ */ -+ virtual QString generatorName() const = 0; -+ -+ virtual void generate(const Project &project) = 0; -+}; -+ -+} // namespace qbs -+ -+#endif // QBS_GENERATOR_H -diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp -index 492635d..0190fb6 100644 ---- a/src/lib/corelib/api/project.cpp -+++ b/src/lib/corelib/api/project.cpp -@@ -57,6 +57,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -97,6 +98,7 @@ static void loadPlugins(const QStringList &_pluginPaths, const Logger &logger) - pluginPaths << pluginPath; - } +diff --git a/src/lib/corelib/corelib.qbs b/src/lib/corelib/corelib.qbs +index a5c1ab6..771f7e6 100644 +--- a/src/lib/corelib/corelib.qbs ++++ b/src/lib/corelib/corelib.qbs +@@ -154,6 +154,68 @@ QbsLibrary { + files: "buildgraph/forward_decls.h" } -+ GeneratorPluginManager::instance()->loadPlugins(pluginPaths, logger); - ScannerPluginManager::instance()->loadPlugins(pluginPaths, logger); - - qRegisterMetaType("qbs::ErrorInfo"); -diff --git a/src/lib/corelib/qbs.h b/src/lib/corelib/qbs.h -index 5f1fc64..ba1da36 100644 ---- a/src/lib/corelib/qbs.h -+++ b/src/lib/corelib/qbs.h -@@ -30,6 +30,7 @@ - #ifndef QBS_H - #define QBS_H - -+#include "api/generator.h" - #include "api/jobs.h" - #include "api/languageinfo.h" - #include "api/project.h" -@@ -40,6 +41,7 @@ - #include "tools/buildoptions.h" - #include "tools/cleanoptions.h" - #include "tools/error.h" -+#include "tools/generateoptions.h" - #include "tools/installoptions.h" - #include "tools/preferences.h" - #include "tools/profile.h" -diff --git a/src/lib/corelib/tools/generateoptions.cpp b/src/lib/corelib/tools/generateoptions.cpp -new file mode 100644 -index 0000000..1198cb4 ---- /dev/null -+++ b/src/lib/corelib/tools/generateoptions.cpp -@@ -0,0 +1,91 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+#include "generateoptions.h" -+ -+#include -+#include -+ -+namespace qbs { -+namespace Internal { -+ -+class GenerateOptionsPrivate : public QSharedData -+{ -+public: -+ GenerateOptionsPrivate() -+ : generatorName() -+ {} -+ -+ QString generatorName; -+}; -+ -+} // namespace Internal -+ -+/*! -+ * \class GenerateOptions -+ * \brief The \c GenerateOptions class comprises parameters that influence the behavior of -+ * generate operations. -+ */ -+ -+GenerateOptions::GenerateOptions() : d(new Internal::GenerateOptionsPrivate) -+{ -+} -+ -+GenerateOptions::GenerateOptions(const GenerateOptions &other) : d(other.d) -+{ -+} -+ -+GenerateOptions &GenerateOptions::operator=(const GenerateOptions &other) -+{ -+ d = other.d; -+ return *this; -+} -+ -+GenerateOptions::~GenerateOptions() -+{ -+} -+ -+/*! -+ * Returns the name of the generator used to create the external build system files. -+ * The default is empty. -+ */ -+QString GenerateOptions::generatorName() const -+{ -+ return d->generatorName; -+} -+ -+/*! -+ * \brief Sets the name of the generator used to create the external build system files. -+ */ -+void GenerateOptions::setGeneratorName(const QString &generatorName) -+{ -+ d->generatorName = generatorName; -+} -+ -+} // namespace qbs -diff --git a/src/lib/corelib/tools/generateoptions.h b/src/lib/corelib/tools/generateoptions.h -new file mode 100644 -index 0000000..bb5c1c4 ---- /dev/null -+++ b/src/lib/corelib/tools/generateoptions.h -@@ -0,0 +1,58 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+#ifndef QBS_GENERATEOPTIONS_H -+#define QBS_GENERATEOPTIONS_H -+ -+#include "qbs_export.h" -+ -+#include -+#include -+ -+namespace qbs { -+namespace Internal { class GenerateOptionsPrivate; } -+ -+class QBS_EXPORT GenerateOptions -+{ -+public: -+ GenerateOptions(); -+ GenerateOptions(const GenerateOptions &other); -+ GenerateOptions &operator=(const GenerateOptions &other); -+ ~GenerateOptions(); -+ -+ QString generatorName() const; -+ void setGeneratorName(const QString &generatorName); -+ -+private: -+ QSharedDataPointer d; -+}; -+ -+} // namespace qbs -+ -+#endif // QBS_GENERATEOPTIONS_H -diff --git a/src/lib/corelib/tools/generatorpluginmanager.cpp b/src/lib/corelib/tools/generatorpluginmanager.cpp -new file mode 100644 -index 0000000..5ac94fd ---- /dev/null -+++ b/src/lib/corelib/tools/generatorpluginmanager.cpp -@@ -0,0 +1,128 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+ -+#include "generatorpluginmanager.h" -+ -+#include -+ -+#include -+#include -+#include -+ -+#include -+ -+#include -+#include -+#include -+ -+namespace qbs { -+namespace Internal { -+ -+GeneratorPluginManager::~GeneratorPluginManager() -+{ -+ foreach (QLibrary * const lib, m_libs) { -+ lib->unload(); -+ delete lib; + Group { ++ name: "Xcode generator" ++ prefix: "generators/xcode/" ++ files: [ ++ "opensteppropertylist.cpp", ++ "opensteppropertylist.h", ++ "pbx.h", ++ "pbxbuildfile.cpp", ++ "pbxbuildfile.h", ++ "pbxbuildphase.cpp", ++ "pbxbuildphase.h", ++ "pbxcontainer.cpp", ++ "pbxcontainer.h", ++ "pbxcontaineritemproxy.cpp", ++ "pbxcontaineritemproxy.h", ++ "pbxfileencoding.h", ++ "pbxfilereference.cpp", ++ "pbxfilereference.h", ++ "pbxfiletype.cpp", ++ "pbxfiletype.h", ++ "pbxframeworksbuildphase.cpp", ++ "pbxframeworksbuildphase.h", ++ "pbxgroup.cpp", ++ "pbxgroup.h", ++ "pbxlegacytarget.cpp", ++ "pbxlegacytarget.h", ++ "pbxnativetarget.cpp", ++ "pbxnativetarget.h", ++ "pbxobject.cpp", ++ "pbxobject.h", ++ "pbxproducttype.cpp", ++ "pbxproducttype.h", ++ "pbxproject.cpp", ++ "pbxproject.h", ++ "pbxreference.cpp", ++ "pbxreference.h", ++ "pbxsourcesbuildphase.cpp", ++ "pbxsourcesbuildphase.h", ++ "pbxsourcetree.cpp", ++ "pbxsourcetree.h", ++ "pbxtarget.cpp", ++ "pbxtarget.h", ++ "pbxtargetdependency.cpp", ++ "pbxtargetdependency.h", ++ "xcbuildconfiguration.cpp", ++ "xcbuildconfiguration.h", ++ "xcconfigurationlist.cpp", ++ "xcconfigurationlist.h", ++ "xcodegenerator.cpp", ++ "xcodegenerator.h", ++ "xcodenativegenerator.cpp", ++ "xcodenativegenerator.h", ++ "xcodesimplegenerator.cpp", ++ "xcodesimplegenerator.h", ++ "xcscheme.cpp", ++ "xcscheme.h", ++ "xcsettings.cpp", ++ "xcsettings.h", ++ "xcodebuildsettingmapping.cpp", ++ "xcodebuildsettingmapping.h" ++ ] + } -+} ++ Group { + name: "jsextensions" + prefix: name + '/' + files: [ +diff --git a/src/lib/corelib/generators/generators.pri b/src/lib/corelib/generators/generators.pri +index 6372e81..2fa095e 100644 +--- a/src/lib/corelib/generators/generators.pri ++++ b/src/lib/corelib/generators/generators.pri +@@ -1,2 +1,4 @@ + HEADERS += \ + $$PWD/generator.h + -+GeneratorPluginManager *GeneratorPluginManager::instance() -+{ -+ static GeneratorPluginManager generatorPlugin; -+ return &generatorPlugin; -+} -+ -+GeneratorPluginManager::GeneratorPluginManager() -+{ -+} -+ -+QStringList GeneratorPluginManager::loadedPluginNames() -+{ -+ return instance()->m_generators.keys(); -+} -+ -+Generator *GeneratorPluginManager::generatorWithName(const QString &generatorName) -+{ -+ return instance()->m_generators.value(generatorName); -+} -+ -+void GeneratorPluginManager::loadPlugins(const QStringList &pluginPaths, const Logger &logger) -+{ -+ QStringList filters; -+ -+ if (HostOsInfo::isWindowsHost()) -+ filters << "*.dll"; -+ else if (HostOsInfo::isOsxHost()) -+ filters << "*.dylib"; -+ else -+ filters << "*.so"; -+ -+ foreach (const QString &pluginPath, pluginPaths) { -+ logger.qbsTrace() << QString::fromLocal8Bit("pluginmanager: loading plugins from '%1'.") -+ .arg(QDir::toNativeSeparators(pluginPath)); -+ QDirIterator it(pluginPath, filters, QDir::Files); -+ while (it.hasNext()) { -+ const QString fileName = it.next(); -+ if (!fileName.contains(QLatin1String("_generator"))) -+ continue; -+ -+ QScopedPointer lib(new QLibrary(fileName)); -+ if (!lib->load()) { -+ logger.qbsWarning() << Tr::tr("pluginmanager: couldn't load plugin '%1': %2") -+ .arg(QDir::toNativeSeparators(fileName), lib->errorString()); -+ continue; -+ } -+ -+ getGenerators_f getGenerators = reinterpret_cast(lib->resolve("getGenerators")); -+ if (!getGenerators) { -+ logger.qbsWarning() << Tr::tr("pluginmanager: couldn't resolve " -+ "symbol in '%1'.").arg(QDir::toNativeSeparators(fileName)); -+ continue; -+ } -+ -+ Generator **plugins = getGenerators(); -+ if (plugins == 0) { -+ logger.qbsWarning() << Tr::tr("pluginmanager: no generators " -+ "returned from '%1'.").arg(QDir::toNativeSeparators(fileName)); -+ continue; -+ } -+ -+ logger.qbsTrace() << QString::fromLocal8Bit("pluginmanager: scanner plugin '%1' " -+ "loaded.").arg(QDir::toNativeSeparators(fileName)); -+ -+ for (int i = 0; plugins[i] != 0; ++i) -+ m_generators[plugins[i]->generatorName()] = plugins[i]; -+ m_libs.append(lib.take()); -+ } -+ } -+} -+ -+} // namespace Internal -+} // namespace qbs -diff --git a/src/lib/corelib/tools/generatorpluginmanager.h b/src/lib/corelib/tools/generatorpluginmanager.h ++include(xcode/xcode.pri) +diff --git a/src/lib/corelib/generators/xcode/opensteppropertylist.cpp b/src/lib/corelib/generators/xcode/opensteppropertylist.cpp new file mode 100644 -index 0000000..4f6351b +index 0000000..63adee2 --- /dev/null -+++ b/src/lib/corelib/tools/generatorpluginmanager.h -@@ -0,0 +1,69 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+ -+#ifndef QBS_GENERATORPLUGINMANAGER_H -+#define QBS_GENERATORPLUGINMANAGER_H -+ -+#include -+ -+#include -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+class QLibrary; -+QT_END_NAMESPACE -+ -+namespace qbs { -+class Generator; -+namespace Internal { -+class Logger; -+ -+class QBS_EXPORT GeneratorPluginManager -+{ -+public: -+ ~GeneratorPluginManager(); -+ static GeneratorPluginManager *instance(); -+ static QStringList loadedPluginNames(); -+ static Generator *generatorWithName(const QString &generatorName); -+ void loadPlugins(const QStringList &paths, const Logger &logger); -+ -+private: -+ GeneratorPluginManager(); -+ -+private: -+ QList m_libs; -+ QHash m_generators; -+}; -+ -+} // namespace Internal -+} // namespace qbs -+ -+#endif -diff --git a/src/lib/corelib/tools/scannerpluginmanager.cpp b/src/lib/corelib/tools/scannerpluginmanager.cpp -index 7a455de..28c80bb 100644 ---- a/src/lib/corelib/tools/scannerpluginmanager.cpp -+++ b/src/lib/corelib/tools/scannerpluginmanager.cpp -@@ -81,6 +81,9 @@ void ScannerPluginManager::loadPlugins(const QStringList &pluginPaths, const Log - QDirIterator it(pluginPath, filters, QDir::Files); - while (it.hasNext()) { - const QString fileName = it.next(); -+ if (!fileName.contains(QLatin1String("_scanner"))) -+ continue; -+ - QScopedPointer lib(new QLibrary(fileName)); - if (!lib->load()) { - logger.qbsWarning() << Tr::tr("Pluginmanager: Cannot load plugin '%1': %2") -diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 14433de..d8875bb 100644 ---- a/src/lib/corelib/tools/tools.pri -+++ b/src/lib/corelib/tools/tools.pri -@@ -8,6 +8,8 @@ HEADERS += \ - $$PWD/executablefinder.h \ - $$PWD/fileinfo.h \ - $$PWD/filetime.h \ -+ $$PWD/generateoptions.h \ -+ $$PWD/generatorpluginmanager.h \ - $$PWD/id.h \ - $$PWD/persistence.h \ - $$PWD/scannerpluginmanager.h \ -@@ -40,6 +42,8 @@ SOURCES += \ - $$PWD/error.cpp \ - $$PWD/executablefinder.cpp \ - $$PWD/fileinfo.cpp \ -+ $$PWD/generateoptions.cpp \ -+ $$PWD/generatorpluginmanager.cpp \ - $$PWD/id.cpp \ - $$PWD/persistence.cpp \ - $$PWD/scannerpluginmanager.cpp \ -diff --git a/src/plugins/generator/generator.pro b/src/plugins/generator/generator.pro -new file mode 100644 -index 0000000..6531408 ---- /dev/null -+++ b/src/plugins/generator/generator.pro -@@ -0,0 +1,2 @@ -+TEMPLATE = subdirs -+SUBDIRS = xcode -diff --git a/src/plugins/generator/generatorplugin.h b/src/plugins/generator/generatorplugin.h -new file mode 100644 -index 0000000..e456ff4 ---- /dev/null -+++ b/src/plugins/generator/generatorplugin.h -@@ -0,0 +1,46 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+ -+#ifndef GENERATORPLUGIN_H -+#define GENERATORPLUGIN_H -+ -+#include -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+typedef qbs::Generator **(*getGenerators_f)(); -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif // GENERATORPLUGIN_H -diff --git a/src/plugins/generator/xcode/main.cpp b/src/plugins/generator/xcode/main.cpp -new file mode 100644 -index 0000000..86a97f2 ---- /dev/null -+++ b/src/plugins/generator/xcode/main.cpp -@@ -0,0 +1,45 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the Qt Build Suite. -+** -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+****************************************************************************/ -+ -+#include "xcodenativegenerator.h" -+#include "xcodesimplegenerator.h" -+ -+static qbs::Generator* generators[] = { -+ new qbs::XcodeNativeGenerator(), -+ new qbs::XcodeSimpleGenerator(), -+ NULL -+}; -+ -+extern "C" { -+ qbs::Generator **getGenerators() -+ { -+ return generators; -+ } -+} -diff --git a/src/plugins/generator/xcode/opensteppropertylist.cpp b/src/plugins/generator/xcode/opensteppropertylist.cpp -new file mode 100644 -index 0000000..b10bceb ---- /dev/null -+++ b/src/plugins/generator/xcode/opensteppropertylist.cpp -@@ -0,0 +1,186 @@ ++++ b/src/lib/corelib/generators/xcode/opensteppropertylist.cpp +@@ -0,0 +1,257 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). @@ -1193,6 +244,9 @@ index 0000000..b10bceb +****************************************************************************/ + +#include "opensteppropertylist.h" ++#include "pbxobject.h" ++#include ++#include + +const QChar OpenStepPropertyList::NewlineToken = QLatin1Char('\n'); +const QChar OpenStepPropertyList::DictionaryBeginToken = QLatin1Char('{'); @@ -1207,6 +261,8 @@ index 0000000..b10bceb +const QChar OpenStepPropertyList::DataEndToken = QLatin1Char('>'); +const QChar OpenStepPropertyList::IndentationToken = QLatin1Char('\t'); + ++#define isValidUnquotedStringCharacter(x) (((x) >= 'a' && (x) <= 'z') || ((x) >= 'A' && (x) <= 'Z') || ((x) >= '0' && (x) <= '9') || (x) == '_' || (x) == '$' || (x) == '/' || (x) == ':' || (x) == '.' ) ++ +static QString formatString(const QString &string) +{ + bool isQuoted = string.isEmpty(); @@ -1214,7 +270,7 @@ index 0000000..b10bceb + { + for (int i = 0; i < string.size(); ++i) + { -+ if (!string[i].isLetterOrNumber() || string[i] > 127) ++ if (!isValidUnquotedStringCharacter(string[i])) + { + isQuoted = true; + break; @@ -1223,6 +279,7 @@ index 0000000..b10bceb + } + + QString outString = string; ++ outString.replace(QLatin1String("\\"), QLatin1String("\\\\")); + outString.replace(QLatin1String("\""), QLatin1String("\\\"")); + + if (isQuoted) @@ -1235,41 +292,90 @@ index 0000000..b10bceb + +QString OpenStepPropertyList::toString(const QVariantMap &propertyList) +{ ++ PBXObjectMap newMap; ++ Q_FOREACH (const QString &key, propertyList.keys()) { ++ newMap.insert(key, propertyList[key]); ++ } ++ return toString(newMap); ++} ++ ++QString OpenStepPropertyList::toString(const PBXObjectMap &propertyList) ++{ + return toString(propertyList, 0) + NewlineToken; +} + +QString OpenStepPropertyList::toString(const QVariantMap &propertyList, int indentationLevel) +{ ++ PBXObjectMap newMap; ++ Q_FOREACH (const QString &key, propertyList.keys()) { ++ newMap.insert(key, propertyList[key]); ++ } ++ return toString(newMap, indentationLevel); ++} ++ ++QString OpenStepPropertyList::toString(const PBXObjectMap &propertyList, int indentationLevel) ++{ + QString string(indentationLevel, IndentationToken); + string += DictionaryBeginToken; -+ string += NewlineToken; + -+ foreach (const QString &key, propertyList.keys()) ++ const bool isFlat = ++ propertyList[QLatin1String("isa")] == QLatin1String("PBXBuildFile") || ++ propertyList[QLatin1String("isa")] == QLatin1String("PBXFileReference"); ++ if (!isFlat) { ++ string += NewlineToken; ++ } ++ ++ QList keys = propertyList.keys(); ++ ++ // Push the isa property to the top of the list as it's always written first ++ const int isaIndex = keys.indexOf(QLatin1String("isa")); ++ if (isaIndex >= 0) { ++ keys.removeAt(isaIndex); ++ keys.insert(0, QLatin1String("isa")); ++ } ++ ++ QStack isas; ++ ++ foreach (const PBXObjectIdentifier &vkey, keys) + { -+ if (key == QLatin1String("__comment__")) -+ continue; ++ const QVariant &object = propertyList[vkey]; + -+ const QVariant &object = propertyList[key]; -+ string += QString(indentationLevel + 1, IndentationToken); -+ string += formatString(key); ++ if (!vkey.isa().isEmpty()) { ++ if (!isas.empty() && vkey.isa() != isas.top()) { ++ string += QString(QLatin1String("/* End %1 section */\n")).arg(isas.top()); ++ isas.pop(); ++ } + -+ QString comment = object.toMap()[QLatin1String("__comment__")].toString(); -+ if (!comment.isEmpty()) -+ string += QLatin1String(" /* ") + comment.replace(QLatin1String("*/"), QLatin1String("* /")) + QLatin1String(" */"); ++ if (isas.empty()) { ++ isas.push(vkey.isa()); ++ string += QString(QLatin1String("\n/* Begin %1 section */\n")).arg(vkey.isa()); ++ } ++ } + ++ string += QString(!isFlat ? (indentationLevel + 1) : 0, IndentationToken); ++ string += toString(QVariant::fromValue(vkey), -1); + string += QLatin1String(" = "); + -+ if (object.type() == QVariant::Map || object.type() == QVariant::List || ++ if (object.canConvert() || object.type() == QVariant::Map || object.type() == QVariant::List || + object.type() == QVariant::StringList || object.type() == QVariant::ByteArray) -+ string += toString(object, indentationLevel + 1).trimmed(); ++ string += toString(object, !isFlat ? (indentationLevel + 1) : 0).trimmed(); + else + string += toString(object, 0); + + string += DictionarySeparatorToken; -+ string += NewlineToken; ++ string += !isFlat ? NewlineToken : QLatin1Char(' '); + } + -+ string += QString(indentationLevel, IndentationToken) + DictionaryEndToken; ++ if (!isas.empty()) { ++ string += QString(QLatin1String("/* End %1 section */\n")).arg(isas.top()); ++ isas.pop(); ++ } ++ ++ if (!isFlat) { ++ string += QString(indentationLevel, IndentationToken); ++ } ++ ++ string += DictionaryEndToken; + return string; +} + @@ -1298,10 +404,25 @@ index 0000000..b10bceb + +QString OpenStepPropertyList::toString(const QVariant &object, int indentationLevel) +{ ++ if (object.canConvert()) { ++ PBXObjectIdentifier objid = object.value(); ++ QString s = toString(objid.identifier(), indentationLevel); ++ if (!objid.comment().isEmpty()) { ++ s += QLatin1String(" /* "); ++ s += objid.comment().replace(QLatin1String("*/"), QLatin1String("* /")); ++ s += QLatin1String(" */"); ++ } ++ return s; ++ } ++ ++ if (object.canConvert()) { ++ return toString(object.value(), indentationLevel); ++ } ++ + switch (object.type()) + { + case QVariant::Bool: -+ return object.toBool() ? QLatin1String("1") : QLatin1String("0"); ++ return object.toBool() ? QLatin1String("YES") : QLatin1String("NO"); + case QVariant::ByteArray: + return toString(object.toByteArray(), indentationLevel); + case QVariant::Date: @@ -1326,7 +447,8 @@ index 0000000..b10bceb + case QVariant::ULongLong: + return QString::number(object.toULongLong()); + default: -+ throw "Unsupported property list object type"; ++ qDebug() << "Unsupported property list object type" << object; ++ abort(); + } +} + @@ -1348,12 +470,12 @@ index 0000000..b10bceb + string += formatString(object); + return string; +} -diff --git a/src/plugins/generator/xcode/opensteppropertylist.h b/src/plugins/generator/xcode/opensteppropertylist.h +diff --git a/src/lib/corelib/generators/xcode/opensteppropertylist.h b/src/lib/corelib/generators/xcode/opensteppropertylist.h new file mode 100644 -index 0000000..ed50aa3 +index 0000000..36cef73 --- /dev/null -+++ b/src/plugins/generator/xcode/opensteppropertylist.h -@@ -0,0 +1,71 @@ ++++ b/src/lib/corelib/generators/xcode/opensteppropertylist.h +@@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). @@ -1393,6 +515,9 @@ index 0000000..ed50aa3 +#include +#include + ++class PBXObjectIdentifier; ++typedef QMap PBXObjectMap; ++ +class OpenStepPropertyList +{ + Q_DISABLE_COPY(OpenStepPropertyList) @@ -1411,12 +536,14 @@ index 0000000..ed50aa3 + static const QChar IndentationToken; + + static QString toString(const QVariantMap &propertyList); ++ static QString toString(const PBXObjectMap &propertyList); + static QString toString(const QList &propertyList); + +private: + OpenStepPropertyList(); + + static QString toString(const QVariantMap &propertyList, int indentationLevel); ++ static QString toString(const PBXObjectMap &propertyList, int indentationLevel); + static QString toString(const QList &propertyList, int indentationLevel); + static QString toString(const QVariant &object, int indentationLevel); + static QString toString(const QByteArray &object, int indentationLevel); @@ -1425,16 +552,16 @@ index 0000000..ed50aa3 +}; + +#endif // OPENSTEPPROPERTYLIST_H -diff --git a/src/plugins/generator/xcode/pbx.h b/src/plugins/generator/xcode/pbx.h +diff --git a/src/lib/corelib/generators/xcode/pbx.h b/src/lib/corelib/generators/xcode/pbx.h new file mode 100644 -index 0000000..fda52e7 +index 0000000..d4cc014 --- /dev/null -+++ b/src/plugins/generator/xcode/pbx.h -@@ -0,0 +1,53 @@ ++++ b/src/lib/corelib/generators/xcode/pbx.h +@@ -0,0 +1,57 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1468,6 +595,7 @@ index 0000000..fda52e7 +#include "pbxbuildfile.h" +#include "pbxbuildphase.h" +#include "pbxcontainer.h" ++#include "pbxcontaineritemproxy.h" +#include "pbxfileencoding.h" +#include "pbxfilereference.h" +#include "pbxfiletype.h" @@ -1480,20 +608,23 @@ index 0000000..fda52e7 +#include "pbxreference.h" +#include "pbxsourcetree.h" +#include "pbxtarget.h" ++#include "pbxtargetdependency.h" +#include "xcbuildconfiguration.h" +#include "xcconfigurationlist.h" ++#include "xcscheme.h" ++#include "xcsettings.h" + +#endif // PBX_H -diff --git a/src/plugins/generator/xcode/pbxbuildfile.cpp b/src/plugins/generator/xcode/pbxbuildfile.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxbuildfile.cpp b/src/lib/corelib/generators/xcode/pbxbuildfile.cpp new file mode 100644 -index 0000000..4f49ead +index 0000000..cbe34c0 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxbuildfile.cpp -@@ -0,0 +1,72 @@ ++++ b/src/lib/corelib/generators/xcode/pbxbuildfile.cpp +@@ -0,0 +1,134 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1521,13 +652,18 @@ index 0000000..4f49ead +****************************************************************************/ + +#include "pbxbuildfile.h" ++#include "pbxbuildphase.h" +#include "pbxfilereference.h" + ++static const QString kPBXBuildFileAttributes = QLatin1String("ATTRIBUTES"); ++static const QString kPBXBuildFileLibraryWeakLinked = QLatin1String("Weak"); ++ +class PBXBuildFilePrivate +{ +public: + PBXBuildFilePrivate(); + PBXFileReference *reference; ++ QSet attributes; +}; + +PBXBuildFilePrivate::PBXBuildFilePrivate() @@ -1535,7 +671,7 @@ index 0000000..4f49ead +{ +} + -+PBXBuildFile::PBXBuildFile(QObject *parent) : ++PBXBuildFile::PBXBuildFile(PBXBuildPhase *parent) : + PBXObject(parent), d(new PBXBuildFilePrivate) +{ +} @@ -1550,28 +686,85 @@ index 0000000..4f49ead + return QLatin1String("PBXBuildFile"); +} + -+QVariantMap PBXBuildFile::toMap() const ++PBXObjectMap PBXBuildFile::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); -+ if (d->reference) -+ self.insert(QLatin1String("fileRef"), d->reference->identifier()); ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->reference) { ++ self.insert(QLatin1String("fileRef"), QVariant::fromValue(d->reference->identifier())); ++ } ++ ++ QVariantMap settingsMap; ++ if (!d->attributes.isEmpty()) { ++ QStringList attributes = d->attributes.toList(); ++ qSort(attributes); ++ settingsMap.insert(kPBXBuildFileAttributes, attributes); ++ } ++ ++ if (!settingsMap.isEmpty()) { ++ self.insert(QLatin1String("settings"), settingsMap); ++ } ++ + return self; +} + ++PBXFileReference *PBXBuildFile::fileReference() const ++{ ++ return d->reference; ++} ++ +void PBXBuildFile::setFileReference(PBXFileReference *reference) +{ + d->reference = reference; +} -diff --git a/src/plugins/generator/xcode/pbxbuildfile.h b/src/plugins/generator/xcode/pbxbuildfile.h ++ ++QSet PBXBuildFile::attributes() const ++{ ++ return d->attributes; ++} ++ ++bool PBXBuildFile::isWeakLinkedLibrary() const ++{ ++ return d->attributes.contains(kPBXBuildFileLibraryWeakLinked); ++} ++ ++void PBXBuildFile::setWeakLinkedLibrary(bool weakLinked) ++{ ++ if (weakLinked) ++ d->attributes.insert(kPBXBuildFileLibraryWeakLinked); ++ else ++ d->attributes.remove(kPBXBuildFileLibraryWeakLinked); ++} ++ ++QString PBXBuildFile::comment() const ++{ ++ if (d->reference) { ++ PBXBuildPhase *phase = dynamic_cast(parent()); ++ Q_ASSERT(phase); ++ return QString(QLatin1String("%1 in %2")).arg(d->reference->name()).arg(phase->name()); ++ } ++ ++ return PBXObject::comment(); ++} ++ ++QByteArray PBXBuildFile::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ if (d->reference) { ++ data.append(d->reference->hashData()); ++ } ++ ++ return data; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxbuildfile.h b/src/lib/corelib/generators/xcode/pbxbuildfile.h new file mode 100644 -index 0000000..1bee93b +index 0000000..bc25ab8 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxbuildfile.h -@@ -0,0 +1,64 @@ ++++ b/src/lib/corelib/generators/xcode/pbxbuildfile.h +@@ -0,0 +1,74 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1603,7 +796,9 @@ index 0000000..1bee93b + +#include "pbxobject.h" +#include ++#include + ++class PBXBuildPhase; +class PBXFileReference; + +class PBXBuildFilePrivate; @@ -1616,32 +811,40 @@ index 0000000..1bee93b +{ + Q_OBJECT +public: -+ explicit PBXBuildFile(QObject *parent = 0); ++ explicit PBXBuildFile(PBXBuildPhase *parent = 0); + virtual ~PBXBuildFile(); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + ++ QString comment() const; ++ ++ QByteArray hashData() const; ++ ++ PBXFileReference *fileReference() const; + void setFileReference(PBXFileReference *reference); + + QString absolutePath() const; -+ QStringList attributes() const; ++ QSet attributes() const; ++ ++ bool isWeakLinkedLibrary() const; ++ void setWeakLinkedLibrary(bool weakLinked); + +private: + PBXBuildFilePrivate *d; +}; + +#endif // PBXBUILDFILE_H -diff --git a/src/plugins/generator/xcode/pbxbuildphase.cpp b/src/plugins/generator/xcode/pbxbuildphase.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxbuildphase.cpp b/src/lib/corelib/generators/xcode/pbxbuildphase.cpp new file mode 100644 -index 0000000..d1cad2c +index 0000000..fc371aa --- /dev/null -+++ b/src/plugins/generator/xcode/pbxbuildphase.cpp -@@ -0,0 +1,77 @@ ++++ b/src/lib/corelib/generators/xcode/pbxbuildphase.cpp +@@ -0,0 +1,94 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1671,6 +874,7 @@ index 0000000..d1cad2c +#include "pbxbuildfile.h" +#include "pbxbuildphase.h" +#include "pbxfilereference.h" ++#include "pbxtarget.h" + +class PBXBuildPhasePrivate +{ @@ -1678,7 +882,7 @@ index 0000000..d1cad2c + QList buildFiles; +}; + -+PBXBuildPhase::PBXBuildPhase(QObject *parent) : ++PBXBuildPhase::PBXBuildPhase(PBXTarget *parent) : + PBXObject(parent), d(new PBXBuildPhasePrivate) +{ +} @@ -1688,14 +892,14 @@ index 0000000..d1cad2c + delete d; +} + -+QVariantMap PBXBuildPhase::toMap() const ++PBXObjectMap PBXBuildPhase::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); -+ self.insert(QLatin1String("buildActionMask"), 2147483647); ++ PBXObjectMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("buildActionMask"), std::numeric_limits::max()); + -+ QStringList fileReferenceList; ++ QVariantList fileReferenceList; + foreach (PBXBuildFile *buildFile, buildFiles()) -+ fileReferenceList += buildFile->identifier(); ++ fileReferenceList += QVariant::fromValue(buildFile->identifier()); + self.insert(QLatin1String("files"), fileReferenceList); + + self.insert(QLatin1String("runOnlyForDeploymentPostprocessing"), 0); @@ -1703,28 +907,44 @@ index 0000000..d1cad2c + return self; +} + ++QByteArray PBXBuildPhase::hashData() const ++{ ++ QByteArray data; ++ PBXTarget *target = dynamic_cast(parent()); ++ if (target) { ++ data.append(target->hashData()); ++ } ++ return data; // TODO: Build phases for which a target may have multiple of, will not work ++} ++ +QList PBXBuildPhase::buildFiles() const +{ + return d->buildFiles; +} + -+bool PBXBuildPhase::addReference(PBXFileReference *reference) ++PBXBuildFile *PBXBuildPhase::addReference(PBXFileReference *reference) +{ ++ Q_FOREACH (PBXBuildFile *buildFile, d->buildFiles) { ++ if (buildFile->fileReference() == reference) { ++ return buildFile; ++ } ++ } ++ + PBXBuildFile *buildFile = new PBXBuildFile(this); + buildFile->setFileReference(reference); + d->buildFiles.append(buildFile); -+ return true; ++ return buildFile; +} -diff --git a/src/plugins/generator/xcode/pbxbuildphase.h b/src/plugins/generator/xcode/pbxbuildphase.h +diff --git a/src/lib/corelib/generators/xcode/pbxbuildphase.h b/src/lib/corelib/generators/xcode/pbxbuildphase.h new file mode 100644 -index 0000000..25ac5e2 +index 0000000..b80ec81 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxbuildphase.h -@@ -0,0 +1,60 @@ ++++ b/src/lib/corelib/generators/xcode/pbxbuildphase.h +@@ -0,0 +1,65 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1759,6 +979,7 @@ index 0000000..25ac5e2 + +class PBXBuildFile; +class PBXFileReference; ++class PBXTarget; + +class PBXBuildPhasePrivate; + @@ -1766,14 +987,18 @@ index 0000000..25ac5e2 +{ + Q_OBJECT +public: -+ explicit PBXBuildPhase(QObject *parent = 0); ++ explicit PBXBuildPhase(PBXTarget *parent = 0); + virtual ~PBXBuildPhase(); + -+ QVariantMap toMap() const; ++ virtual QString name() const = 0; ++ ++ PBXObjectMap toMap() const; ++ ++ QByteArray hashData() const; + + QList buildFiles() const; + -+ bool addReference(PBXFileReference *reference); ++ PBXBuildFile *addReference(PBXFileReference *reference); + bool containsFileReferenceIdenticalTo(PBXFileReference *reference); + +private: @@ -1781,16 +1006,16 @@ index 0000000..25ac5e2 +}; + +#endif // PBXBUILDPHASE_H -diff --git a/src/plugins/generator/xcode/pbxcontainer.cpp b/src/plugins/generator/xcode/pbxcontainer.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxcontainer.cpp b/src/lib/corelib/generators/xcode/pbxcontainer.cpp new file mode 100644 -index 0000000..10a2470 +index 0000000..6ce359a --- /dev/null -+++ b/src/plugins/generator/xcode/pbxcontainer.cpp -@@ -0,0 +1,53 @@ ++++ b/src/lib/corelib/generators/xcode/pbxcontainer.cpp +@@ -0,0 +1,60 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1836,20 +1061,27 @@ index 0000000..10a2470 + delete d; +} + ++QByteArray PBXContainer::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ data.append(d->group.hashData()); ++ return data; ++} ++ +PBXGroup *PBXContainer::rootGroup() const +{ + return &d->group; +} -diff --git a/src/plugins/generator/xcode/pbxcontainer.h b/src/plugins/generator/xcode/pbxcontainer.h +diff --git a/src/lib/corelib/generators/xcode/pbxcontainer.h b/src/lib/corelib/generators/xcode/pbxcontainer.h new file mode 100644 -index 0000000..f920f56 +index 0000000..3263149 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxcontainer.h -@@ -0,0 +1,57 @@ ++++ b/src/lib/corelib/generators/xcode/pbxcontainer.h +@@ -0,0 +1,59 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1894,6 +1126,8 @@ index 0000000..f920f56 + explicit PBXContainer(QObject *parent = 0); + virtual ~PBXContainer(); + ++ QByteArray hashData() const; ++ + PBXGroup *rootGroup() const; + + PBXFileReference *fileReferenceForPath(const QString &path); @@ -1903,16 +1137,206 @@ index 0000000..f920f56 +}; + +#endif // PBXCONTAINER_H -diff --git a/src/plugins/generator/xcode/pbxfileencoding.h b/src/plugins/generator/xcode/pbxfileencoding.h +diff --git a/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp new file mode 100644 -index 0000000..852dac5 +index 0000000..46f18dd --- /dev/null -+++ b/src/plugins/generator/xcode/pbxfileencoding.h ++++ b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp +@@ -0,0 +1,113 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxcontaineritemproxy.h" ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "pbxtargetdependency.h" ++ ++class PBXContainerItemProxyPrivate ++{ ++public: ++ PBXProject *containerPortal; ++ PBXTarget *target; ++}; ++ ++PBXContainerItemProxy::PBXContainerItemProxy(PBXTargetDependency *parent) : ++ PBXObject(parent), d(new PBXContainerItemProxyPrivate) ++{ ++} ++ ++PBXContainerItemProxy::~PBXContainerItemProxy() ++{ ++ delete d; ++} ++ ++QString PBXContainerItemProxy::isa() const ++{ ++ return QLatin1String("PBXContainerItemProxy"); ++} ++ ++PBXObjectMap PBXContainerItemProxy::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->containerPortal) ++ self.insert(QLatin1String("containerPortal"), QVariant::fromValue(d->containerPortal->identifier())); ++ ++ self.insert(QLatin1String("proxyType"), 1); // TODO: Always the same? ++ ++ if (d->target) { ++ // We deliberately don't store the actual PBXObjectIdentifier, ++ // because Xcode itself doesn't write the ID with a comment annotation ++ self.insert(QLatin1String("remoteGlobalIDString"), d->target->identifier().identifier()); ++ self.insert(QLatin1String("remoteInfo"), d->target->name()); ++ } ++ ++ return self; ++} ++ ++QString PBXContainerItemProxy::comment() const ++{ ++ return PBXObject::comment(); ++} ++ ++QByteArray PBXContainerItemProxy::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ if (d->containerPortal) { ++ data.append(d->containerPortal->hashData()); ++ } ++ ++ if (d->target) { ++ data.append(d->target->hashData()); ++ } ++ ++ return data; ++} ++ ++PBXProject *PBXContainerItemProxy::containerPortal() const ++{ ++ return d->containerPortal; ++} ++ ++void PBXContainerItemProxy::setContainerPortal(PBXProject *containerPortal) ++{ ++ d->containerPortal = containerPortal; ++} ++ ++PBXTarget *PBXContainerItemProxy::target() const ++{ ++ return d->target; ++} ++ ++void PBXContainerItemProxy::setTarget(PBXTarget *target) ++{ ++ d->target = target; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h +new file mode 100644 +index 0000000..34205aa +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h +@@ -0,0 +1,65 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXCONTAINERITEMPROXY_H ++#define PBXCONTAINERITEMPROXY_H ++ ++#include "pbxobject.h" ++ ++class PBXContainerItemProxyPrivate; ++class PBXProject; ++class PBXTarget; ++class PBXTargetDependency; ++ ++class PBXContainerItemProxy : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXContainerItemProxy(PBXTargetDependency *parent = 0); ++ virtual ~PBXContainerItemProxy(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++ ++ QByteArray hashData() const; ++ ++ PBXProject *containerPortal() const; ++ void setContainerPortal(PBXProject *containerPortal); ++ ++ PBXTarget *target() const; ++ void setTarget(PBXTarget *target); ++ ++private: ++ PBXContainerItemProxyPrivate *d; ++}; ++ ++#endif // PBXCONTAINERITEMPROXY_H +diff --git a/src/lib/corelib/generators/xcode/pbxfileencoding.h b/src/lib/corelib/generators/xcode/pbxfileencoding.h +new file mode 100644 +index 0000000..50af8c5 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxfileencoding.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -1966,16 +1390,16 @@ index 0000000..852dac5 +} + +#endif // PBXFILEENCODING_H -diff --git a/src/plugins/generator/xcode/pbxfilereference.cpp b/src/plugins/generator/xcode/pbxfilereference.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxfilereference.cpp b/src/lib/corelib/generators/xcode/pbxfilereference.cpp new file mode 100644 -index 0000000..68f165a +index 0000000..b5dbd94 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxfilereference.cpp -@@ -0,0 +1,73 @@ ++++ b/src/lib/corelib/generators/xcode/pbxfilereference.cpp +@@ -0,0 +1,66 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2029,32 +1453,25 @@ index 0000000..68f165a + return QLatin1String("PBXFileReference"); +} + -+QVariantMap PBXFileReference::toMap() const ++PBXObjectMap PBXFileReference::toMap() const +{ -+ QVariantMap self = PBXReference::toMap(); ++ PBXObjectMap self = PBXReference::toMap(); + self.insert(QLatin1String("fileEncoding"), PBX::Default); -+ //self.insert(QLatin1String("explicitFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).extension())); // PBXFileType ++ //self.insert(QLatin1String("explicitFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).suffix())); // PBXFileType + //self.insert(QLatin1String("includeInIndex"), 0); -+ //self.insert(QLatin1String("lastKnownFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).extension())); // PBXFileType ++ self.insert(QLatin1String("lastKnownFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).suffix())); // PBXFileType + return self; +} -+ -+QString PBXFileReference::comment() const -+{ -+ PBXGroup *group = dynamic_cast(parent()); -+ Q_ASSERT(group); -+ return QString(QLatin1String("%1 in %2")).arg(name()).arg(group->name()); -+} -diff --git a/src/plugins/generator/xcode/pbxfilereference.h b/src/plugins/generator/xcode/pbxfilereference.h +diff --git a/src/lib/corelib/generators/xcode/pbxfilereference.h b/src/lib/corelib/generators/xcode/pbxfilereference.h new file mode 100644 -index 0000000..9ce5ed7 +index 0000000..7a56120 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxfilereference.h -@@ -0,0 +1,54 @@ ++++ b/src/lib/corelib/generators/xcode/pbxfilereference.h +@@ -0,0 +1,52 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2096,25 +1513,23 @@ index 0000000..9ce5ed7 + virtual ~PBXFileReference(); + + QString isa() const; -+ QVariantMap toMap() const; -+ -+ QString comment() const; ++ PBXObjectMap toMap() const; + +private: + PBXFileReferencePrivate *d; +}; + +#endif // PBXFILEREFERENCE_H -diff --git a/src/plugins/generator/xcode/pbxfiletype.cpp b/src/plugins/generator/xcode/pbxfiletype.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxfiletype.cpp b/src/lib/corelib/generators/xcode/pbxfiletype.cpp new file mode 100644 -index 0000000..3a57c29 +index 0000000..4f7b58d --- /dev/null -+++ b/src/plugins/generator/xcode/pbxfiletype.cpp -@@ -0,0 +1,41 @@ ++++ b/src/lib/corelib/generators/xcode/pbxfiletype.cpp +@@ -0,0 +1,51 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2150,18 +1565,28 @@ index 0000000..3a57c29 + +QString PBXFileType::typeForFileExtension(const QString &fileExtension) +{ -+ return QString(); ++ if (fileExtension == QLatin1String("a")) ++ return QLatin1String("archive.ar"); ++ if (fileExtension == QLatin1String("app")) ++ return QLatin1String("wrapper.application"); ++ if (fileExtension == QLatin1String("cpp")) ++ return QLatin1String("sourcecode.cpp.cpp"); ++ if (fileExtension == QLatin1String("dylib")) ++ return QLatin1String("compiled.mach-o.dylib"); ++ if (fileExtension == QLatin1String("h")) ++ return QLatin1String("sourcecode.c.h"); ++ return QString("text"); +} -diff --git a/src/plugins/generator/xcode/pbxfiletype.h b/src/plugins/generator/xcode/pbxfiletype.h +diff --git a/src/lib/corelib/generators/xcode/pbxfiletype.h b/src/lib/corelib/generators/xcode/pbxfiletype.h new file mode 100644 -index 0000000..3818872 +index 0000000..b289250 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxfiletype.h ++++ b/src/lib/corelib/generators/xcode/pbxfiletype.h @@ -0,0 +1,47 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2205,16 +1630,105 @@ index 0000000..3818872 +}; + +#endif // PBXFILETYPE_H -diff --git a/src/plugins/generator/xcode/pbxgroup.cpp b/src/plugins/generator/xcode/pbxgroup.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp new file mode 100644 -index 0000000..a27e879 +index 0000000..6b417e7 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxgroup.cpp -@@ -0,0 +1,114 @@ ++++ b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp +@@ -0,0 +1,27 @@ ++#include "pbxframeworksbuildphase.h" ++ ++PBXFrameworksBuildPhase::PBXFrameworksBuildPhase(PBXTarget *parent) : ++ PBXBuildPhase(parent) ++{ ++} ++ ++QString PBXFrameworksBuildPhase::name() const ++{ ++ return QLatin1String("Frameworks"); ++} ++ ++QString PBXFrameworksBuildPhase::isa() const ++{ ++ return QLatin1String("PBXFrameworksBuildPhase"); ++} ++ ++PBXObjectMap PBXFrameworksBuildPhase::toMap() const ++{ ++ PBXObjectMap self = PBXBuildPhase::toMap(); ++ return self; ++} ++ ++QString PBXFrameworksBuildPhase::comment() const ++{ ++ return name(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h +new file mode 100644 +index 0000000..0553089 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h +@@ -0,0 +1,50 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXFRAMEWORKSBUILDPHASE_H ++#define PBXFRAMEWORKSBUILDPHASE_H ++ ++#include "pbxbuildphase.h" ++ ++class PBXFrameworksBuildPhase : public PBXBuildPhase ++{ ++ Q_OBJECT ++public: ++ explicit PBXFrameworksBuildPhase(PBXTarget *parent = 0); ++ ++ QString name() const; ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++}; ++ ++#endif // PBXFRAMEWORKSBUILDPHASE_H +diff --git a/src/lib/corelib/generators/xcode/pbxgroup.cpp b/src/lib/corelib/generators/xcode/pbxgroup.cpp +new file mode 100644 +index 0000000..ea48b22 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxgroup.cpp +@@ -0,0 +1,119 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2278,13 +1792,13 @@ index 0000000..a27e879 + return QLatin1String("PBXGroup"); +} + -+QVariantMap PBXGroup::toMap() const ++PBXObjectMap PBXGroup::toMap() const +{ -+ QVariantMap self = PBXReference::toMap(); ++ PBXObjectMap self = PBXReference::toMap(); + -+ QStringList childIdentifiers; ++ QVariantList childIdentifiers; + foreach (PBXReference *reference, d->children) -+ childIdentifiers += reference->identifier(); ++ childIdentifiers += QVariant::fromValue(reference->identifier()); + + self.insert(QLatin1String("children"), childIdentifiers); + @@ -2325,16 +1839,21 @@ index 0000000..a27e879 + + return fileRefs; +} -diff --git a/src/plugins/generator/xcode/pbxgroup.h b/src/plugins/generator/xcode/pbxgroup.h ++ ++QString PBXGroup::comment() const ++{ ++ return !path().isEmpty() ? path() : PBXReference::comment(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxgroup.h b/src/lib/corelib/generators/xcode/pbxgroup.h new file mode 100644 -index 0000000..660e489 +index 0000000..e03b8eb --- /dev/null -+++ b/src/plugins/generator/xcode/pbxgroup.h -@@ -0,0 +1,69 @@ ++++ b/src/lib/corelib/generators/xcode/pbxgroup.h +@@ -0,0 +1,71 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2380,7 +1899,7 @@ index 0000000..660e489 + static PBXGroup *groupWithName(const QString &name, PBXGroup *parentGroup = 0); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QList children() const; + @@ -2395,21 +1914,23 @@ index 0000000..660e489 + */ + QList addFiles(const QStringList &files, bool copy, bool createGroupsRecursively); + ++ QString comment() const; ++ +private: + PBXGroupPrivate *d; +}; + +#endif // PBXGROUP_H -diff --git a/src/plugins/generator/xcode/pbxlegacytarget.cpp b/src/plugins/generator/xcode/pbxlegacytarget.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxlegacytarget.cpp b/src/lib/corelib/generators/xcode/pbxlegacytarget.cpp new file mode 100644 -index 0000000..e18c97e +index 0000000..7f887b3 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxlegacytarget.cpp -@@ -0,0 +1,127 @@ ++++ b/src/lib/corelib/generators/xcode/pbxlegacytarget.cpp +@@ -0,0 +1,111 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2438,6 +1959,7 @@ index 0000000..e18c97e + +#include "pbxfilereference.h" +#include "pbxlegacytarget.h" ++#include "pbxproject.h" + +class PBXLegacyTargetPrivate +{ @@ -2446,17 +1968,15 @@ index 0000000..e18c97e + QString buildArgumentsString; + QString buildWorkingDirectory; + bool passBuildSettingsInEnvironment; -+ PBXFileReference *productReference; +}; + -+PBXLegacyTarget::PBXLegacyTarget(QObject *parent) : ++PBXLegacyTarget::PBXLegacyTarget(PBXProject *parent) : + PBXTarget(parent), d(new PBXLegacyTargetPrivate) +{ + d->buildToolPath = QLatin1String("/bin/bash"); + d->buildArgumentsString = QLatin1String("$(ACTION)"); + d->buildWorkingDirectory = QLatin1String("$BUILT_PRODUCTS_DIR"); + d->passBuildSettingsInEnvironment = true; -+ d->productReference = NULL; +} + +PBXLegacyTarget::~PBXLegacyTarget() @@ -2469,18 +1989,13 @@ index 0000000..e18c97e + return QLatin1String("PBXLegacyTarget"); +} + -+QVariantMap PBXLegacyTarget::toMap() const ++PBXObjectMap PBXLegacyTarget::toMap() const +{ -+ QVariantMap self = PBXTarget::toMap(); -+ ++ PBXObjectMap self = PBXTarget::toMap(); + self.insert(QLatin1String("buildToolPath"), d->buildToolPath); + self.insert(QLatin1String("buildArgumentsString"), d->buildArgumentsString); + self.insert(QLatin1String("buildWorkingDirectory"), d->buildWorkingDirectory); -+ self.insert(QLatin1String("passBuildSettingsInEnvironment"), d->passBuildSettingsInEnvironment); -+ -+ if (d->productReference) -+ self.insert(QLatin1String("productReference"), d->productReference->identifier()); -+ ++ self.insert(QLatin1String("passBuildSettingsInEnvironment"), d->passBuildSettingsInEnvironment ? 1 : 0); + return self; +} + @@ -2523,26 +2038,16 @@ index 0000000..e18c97e +{ + d->passBuildSettingsInEnvironment = passBuildSettingsInEnvironment; +} -+ -+PBXFileReference *PBXLegacyTarget::productReference() const -+{ -+ return d->productReference; -+} -+ -+void PBXLegacyTarget::setProductReference(PBXFileReference *productReference) -+{ -+ d->productReference = productReference; -+} -diff --git a/src/plugins/generator/xcode/pbxlegacytarget.h b/src/plugins/generator/xcode/pbxlegacytarget.h +diff --git a/src/lib/corelib/generators/xcode/pbxlegacytarget.h b/src/lib/corelib/generators/xcode/pbxlegacytarget.h new file mode 100644 -index 0000000..4006b3b +index 0000000..e6b09d4 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxlegacytarget.h -@@ -0,0 +1,73 @@ ++++ b/src/lib/corelib/generators/xcode/pbxlegacytarget.h +@@ -0,0 +1,65 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2574,8 +2079,6 @@ index 0000000..4006b3b + +#include "pbxtarget.h" + -+class PBXFileReference; -+ +class PBXLegacyTargetPrivate; + +class PBXLegacyTarget : public PBXTarget @@ -2583,11 +2086,11 @@ index 0000000..4006b3b + Q_OBJECT + Q_DISABLE_COPY(PBXLegacyTarget) +public: -+ explicit PBXLegacyTarget(QObject *parent = 0); ++ explicit PBXLegacyTarget(PBXProject *parent = 0); + virtual ~PBXLegacyTarget(); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QString buildToolPath() const; + void setBuildToolPath(const QString &buildToolPath); @@ -2601,27 +2104,21 @@ index 0000000..4006b3b + bool passBuildSettingsInEnvironment() const; + void setPassBuildSettingsInEnvironment(bool passBuildSettingsInEnvironment); + -+ /*! -+ * File reference to the target's output file. -+ */ -+ PBXFileReference *productReference() const; -+ void setProductReference(PBXFileReference *productReference); -+ +private: + PBXLegacyTargetPrivate *d; +}; + +#endif // PBXLEGACYTARGET_H -diff --git a/src/plugins/generator/xcode/pbxnativetarget.cpp b/src/plugins/generator/xcode/pbxnativetarget.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxnativetarget.cpp b/src/lib/corelib/generators/xcode/pbxnativetarget.cpp new file mode 100644 -index 0000000..781dc67 +index 0000000..f9e648c --- /dev/null -+++ b/src/plugins/generator/xcode/pbxnativetarget.cpp -@@ -0,0 +1,83 @@ ++++ b/src/lib/corelib/generators/xcode/pbxnativetarget.cpp +@@ -0,0 +1,68 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2651,21 +2148,20 @@ index 0000000..781dc67 +#include "pbxbuildphase.h" +#include "pbxfilereference.h" +#include "pbxnativetarget.h" ++#include "pbxproject.h" +#include "xcconfigurationlist.h" + +class PBXNativeTargetPrivate +{ +public: + PBXNativeTargetPrivate(); -+ PBXFileReference *productReference; +}; + +PBXNativeTargetPrivate::PBXNativeTargetPrivate() -+ : productReference() +{ +} + -+PBXNativeTarget::PBXNativeTarget(QObject *parent) : ++PBXNativeTarget::PBXNativeTarget(PBXProject *parent) : + PBXTarget(parent), d(new PBXNativeTargetPrivate) +{ +} @@ -2680,37 +2176,23 @@ index 0000000..781dc67 + return QLatin1String("PBXNativeTarget"); +} + -+QVariantMap PBXNativeTarget::toMap() const ++PBXObjectMap PBXNativeTarget::toMap() const +{ -+ QVariantMap self = PBXTarget::toMap(); -+ ++ PBXObjectMap self = PBXTarget::toMap(); + self.insert(QLatin1String("productInstallPath"), QLatin1String("$(HOME)/Applications")); -+ -+ if (d->productReference) -+ self.insert(QLatin1String("productReference"), d->productReference->identifier()); -+ ++ self.insert(QLatin1String("buildRules"), QList()); + return self; +} -+ -+PBXFileReference *PBXNativeTarget::productReference() const -+{ -+ return d->productReference; -+} -+ -+void PBXNativeTarget::setProductReference(PBXFileReference *productReference) -+{ -+ d->productReference = productReference; -+} -diff --git a/src/plugins/generator/xcode/pbxnativetarget.h b/src/plugins/generator/xcode/pbxnativetarget.h +diff --git a/src/lib/corelib/generators/xcode/pbxnativetarget.h b/src/lib/corelib/generators/xcode/pbxnativetarget.h new file mode 100644 -index 0000000..d2ee90f +index 0000000..a06b979 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxnativetarget.h -@@ -0,0 +1,61 @@ ++++ b/src/lib/corelib/generators/xcode/pbxnativetarget.h +@@ -0,0 +1,53 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2742,8 +2224,6 @@ index 0000000..d2ee90f + +#include "pbxtarget.h" + -+class PBXFileReference; -+ +class PBXNativeTargetPrivate; + +class PBXNativeTarget : public PBXTarget @@ -2751,33 +2231,27 @@ index 0000000..d2ee90f + Q_OBJECT + Q_DISABLE_COPY(PBXNativeTarget) +public: -+ explicit PBXNativeTarget(QObject *parent = 0); ++ explicit PBXNativeTarget(PBXProject *parent = 0); + ~PBXNativeTarget(); + + QString isa() const; -+ QVariantMap toMap() const; -+ -+ /*! -+ * File reference to the target's output file. -+ */ -+ PBXFileReference *productReference() const; -+ void setProductReference(PBXFileReference *productReference); ++ PBXObjectMap toMap() const; + +private: + PBXNativeTargetPrivate *d; +}; + +#endif // PBXNATIVETARGET_H -diff --git a/src/plugins/generator/xcode/pbxobject.cpp b/src/plugins/generator/xcode/pbxobject.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxobject.cpp b/src/lib/corelib/generators/xcode/pbxobject.cpp new file mode 100644 -index 0000000..b5fcd13 +index 0000000..0ea69d6 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxobject.cpp -@@ -0,0 +1,69 @@ ++++ b/src/lib/corelib/generators/xcode/pbxobject.cpp +@@ -0,0 +1,96 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2805,9 +2279,13 @@ index 0000000..b5fcd13 +****************************************************************************/ + +#include "pbxobject.h" ++#include ++#include +#include +#include + ++static QMap generatedIdentifiers; ++ +class PBXObjectPrivate +{ +public: @@ -2824,35 +2302,58 @@ index 0000000..b5fcd13 + delete d; +} + -+QString PBXObject::identifier() const ++QString PBXObject::createIdentifier(const QByteArray &hashData) +{ -+ if (d->identifier.isEmpty()) -+ d->identifier = QUuid::createUuid().toByteArray().left(12).toHex().toUpper(); -+ return d->identifier; ++ if (qgetenv("QBS_XCODE_GENERATOR_DETERMINISTIC_IDENTIFIERS") == QByteArray("1")) { ++ QCryptographicHash hash(QCryptographicHash::Sha3_512); ++ hash.addData(hashData); ++ const QString result = hash.result().left(12).toHex().toUpper(); ++ if (generatedIdentifiers.contains(result) ++ /*&& generatedIdentifiers.value(result) != hashData*/) { ++ // hash collision! ++ fprintf(stderr, "hash collision %s - %s\n", result.toUtf8().data(), hashData.data()); ++ abort(); ++ } ++ generatedIdentifiers.insert(result, hashData); ++ return result; ++ } ++ ++ return QUuid::createUuid().toByteArray().left(12).toHex().toUpper(); +} + -+QVariantMap PBXObject::toMap() const ++PBXObjectIdentifier PBXObject::identifier() const +{ -+ QVariantMap self; -+ self.insert(QLatin1String("__comment__"), comment()); ++ if (d->identifier.isEmpty()) ++ d->identifier = createIdentifier(isa().toUtf8() + QByteArray(":") + hashData()); ++ return PBXObjectIdentifier(d->identifier, isa(), comment()); ++} ++ ++PBXObjectMap PBXObject::toMap() const ++{ ++ PBXObjectMap self; + self.insert(QLatin1String("isa"), isa()); + return self; +} + +QString PBXObject::comment() const +{ -+ return QString(); ++ return isa(); +} -diff --git a/src/plugins/generator/xcode/pbxobject.h b/src/plugins/generator/xcode/pbxobject.h ++ ++QByteArray PBXObject::hashData() const ++{ ++ return QByteArray(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxobject.h b/src/lib/corelib/generators/xcode/pbxobject.h new file mode 100644 -index 0000000..73ebdec +index 0000000..d4ede7e --- /dev/null -+++ b/src/plugins/generator/xcode/pbxobject.h -@@ -0,0 +1,59 @@ ++++ b/src/lib/corelib/generators/xcode/pbxobject.h +@@ -0,0 +1,124 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2888,6 +2389,68 @@ index 0000000..73ebdec + +class PBXObjectPrivate; + ++class PBXObjectIdentifier { ++public: ++ PBXObjectIdentifier() { ++ } ++ ++ PBXObjectIdentifier(const PBXObjectIdentifier &other) { ++ _key = other._key; ++ _isa = other._isa; ++ _comment = other._comment; ++ } ++ ++ PBXObjectIdentifier(const QLatin1String &identifier, const QString &isa = QString(), const QString &comment = QString()) { ++ _key = identifier; ++ _isa = isa; ++ _comment = comment; ++ } ++ ++ PBXObjectIdentifier(const QString &identifier, const QString &isa = QString(), const QString &comment = QString()) { ++ _key = identifier; ++ _isa = isa; ++ _comment = comment; ++ } ++ ++ QString toString() const { ++ return identifier(); ++ } ++ ++ QString identifier() const { ++ return _key; ++ } ++ ++ QString isa() const { ++ return _isa; ++ } ++ ++ QString comment() const { ++ return _comment; ++ } ++ ++ bool operator==(const PBXObjectIdentifier &other) const { ++ return _key == other._key && _isa == other._isa && _comment == other._comment; ++ } ++ ++ bool operator<(const PBXObjectIdentifier &other) const { ++ return _isa + _key < other._isa + other._key; ++ } ++ ++private: ++ QString _key; ++ QString _isa; ++ QString _comment; ++}; ++ ++Q_DECLARE_METATYPE(PBXObjectIdentifier) ++ ++inline bool qHash(const PBXObjectIdentifier &other) { ++ return qHash(other.toString()); ++} ++ ++typedef QMap PBXObjectMap; ++Q_DECLARE_METATYPE(PBXObjectMap) ++ +class PBXObject : public QObject +{ + Q_OBJECT @@ -2898,26 +2461,29 @@ index 0000000..73ebdec +public: + virtual ~PBXObject(); + -+ QString identifier() const; ++ static QString createIdentifier(const QByteArray &hashData); ++ ++ PBXObjectIdentifier identifier() const; + virtual QString isa() const = 0; -+ virtual QVariantMap toMap() const; ++ virtual PBXObjectMap toMap() const; + virtual QString comment() const; ++ virtual QByteArray hashData() const; + +private: + PBXObjectPrivate *d; +}; + +#endif // PBXOBJECT_H -diff --git a/src/plugins/generator/xcode/pbxproducttype.cpp b/src/plugins/generator/xcode/pbxproducttype.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxproducttype.cpp b/src/lib/corelib/generators/xcode/pbxproducttype.cpp new file mode 100644 -index 0000000..4f0bc00 +index 0000000..657b020 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxproducttype.cpp -@@ -0,0 +1,56 @@ ++++ b/src/lib/corelib/generators/xcode/pbxproducttype.cpp +@@ -0,0 +1,75 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -2960,6 +2526,8 @@ index 0000000..4f0bc00 + return QLatin1String("com.apple.product-type.library.dynamic"); + case Framework: + return QLatin1String("com.apple.product-type.framework"); ++ case StaticFramework: ++ return QLatin1String("com.apple.product-type.framework.static"); + case Bundle: + return QLatin1String("com.apple.product-type.bundle"); + case KernelExtension: @@ -2968,18 +2536,35 @@ index 0000000..4f0bc00 + return QLatin1String("com.apple.product-type.kernel-extension.iokit"); + } + ++ QLatin1String("com.apple.product-type.application.java"); ++ QLatin1String("com.apple.product-type.application.shallow"); ++ QLatin1String("com.apple.product-type.app-extension"); ++ QLatin1String("com.apple.product-type.bundle.shallow"); ++ QLatin1String("com.apple.product-type.bundle.unit-test"); ++ QLatin1String("com.apple.product-type.bundle.ocunit-test"); ++ QLatin1String("com.apple.product-type.framework.shallow"); ++ QLatin1String("com.apple.product-type.in-app-purchase-content"); ++ QLatin1String("com.apple.product-type.kernel-extension.shallow"); ++ QLatin1String("com.apple.product-type.kernel-extension.iokit.shallow"); ++ QLatin1String("com.apple.product-type.library.java.archive"); ++ QLatin1String("com.apple.product-type.objfile"); ++ QLatin1String("com.apple.product-type.pluginkit-plugin"); ++ QLatin1String("com.apple.product-type.spotlight-importer"); ++ QLatin1String("com.apple.product-type.tool.java"); ++ QLatin1String("com.apple.product-type.xpc-service"); ++ + return QString(); +} -diff --git a/src/plugins/generator/xcode/pbxproducttype.h b/src/plugins/generator/xcode/pbxproducttype.h +diff --git a/src/lib/corelib/generators/xcode/pbxproducttype.h b/src/lib/corelib/generators/xcode/pbxproducttype.h new file mode 100644 -index 0000000..4d48f3c +index 0000000..cf2e48e --- /dev/null -+++ b/src/plugins/generator/xcode/pbxproducttype.h -@@ -0,0 +1,52 @@ ++++ b/src/lib/corelib/generators/xcode/pbxproducttype.h +@@ -0,0 +1,53 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3019,6 +2604,7 @@ index 0000000..4d48f3c + LibraryStatic, + LibraryDynamic, + Framework, ++ StaticFramework, + Bundle, + KernelExtension, + KernelExtensionIOKit @@ -3028,16 +2614,16 @@ index 0000000..4d48f3c +} + +#endif // PBXPRODUCTTYPE_H -diff --git a/src/plugins/generator/xcode/pbxproject.cpp b/src/plugins/generator/xcode/pbxproject.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxproject.cpp b/src/lib/corelib/generators/xcode/pbxproject.cpp new file mode 100644 -index 0000000..cbbfef2 +index 0000000..3ab709c --- /dev/null -+++ b/src/plugins/generator/xcode/pbxproject.cpp -@@ -0,0 +1,218 @@ ++++ b/src/lib/corelib/generators/xcode/pbxproject.cpp +@@ -0,0 +1,333 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3067,23 +2653,33 @@ index 0000000..cbbfef2 +#include "opensteppropertylist.h" +#include "pbxbuildphase.h" +#include "pbxbuildfile.h" ++#include "pbxcontaineritemproxy.h" +#include "pbxgroup.h" +#include "pbxproject.h" +#include "pbxtarget.h" ++#include "pbxtargetdependency.h" +#include "xcbuildconfiguration.h" +#include "xcconfigurationlist.h" +#include ++#include +#include + ++static const QString kClassPrefixAttribute = QLatin1String("CLASSPREFIX"); ++static const QString kLastUpgradeCheckAttribute = QLatin1String("LastUpgradeCheck"); ++static const QString kOrganizationNameAttribute = QLatin1String("ORGANIZATIONNAME"); ++static const QString kTargetAttributesAttribute = QLatin1String("TargetAttributes"); ++ +class PBXProjectPrivate +{ +public: + QString name; + QString projectAbsolutePath; + QString projectDirPath; ++ PBXGroup *frameworksRefGroup; + PBXGroup *productRefGroup; + QList targets; + XCConfigurationList *configurationList; ++ QVariantMap attributes; +}; + +PBXProject::PBXProject(const QString &projectAbsolutePath, QObject *parent) : @@ -3092,6 +2688,9 @@ index 0000000..cbbfef2 + d->projectAbsolutePath = projectAbsolutePath; + d->configurationList = new XCConfigurationList(this); + ++ d->frameworksRefGroup = new PBXGroup(rootGroup()); ++ d->frameworksRefGroup->setName(QLatin1String("Frameworks")); ++ + d->productRefGroup = new PBXGroup(rootGroup()); + d->productRefGroup->setName(QLatin1String("Products")); + d->productRefGroup->setSourceTree(PBX::Group); @@ -3107,37 +2706,57 @@ index 0000000..cbbfef2 + return QLatin1String("PBXProject"); +} + -+QVariantMap PBXProject::toMap() const ++PBXObjectMap PBXProject::toMap() const +{ -+ // HACK: Make sure "Products" group is always at the bottom ++ // HACK: Make sure "Frameworks", "Products" groups are always at the bottom ++ rootGroup()->removeItem(d->frameworksRefGroup); + rootGroup()->removeItem(d->productRefGroup); ++ rootGroup()->addItem(d->frameworksRefGroup); + rootGroup()->addItem(d->productRefGroup); + -+ QVariantMap self = PBXObject::toMap(); -+ self.insert(QLatin1String("buildConfigurationList"), buildConfigurationList()->identifier()); ++ PBXObjectMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("attributes"), d->attributes); ++ self.insert(QLatin1String("buildConfigurationList"), QVariant::fromValue(buildConfigurationList()->identifier())); + self.insert(QLatin1String("compatibilityVersion"), QLatin1String("Xcode 3.2")); + self.insert(QLatin1String("developmentRegion"), QLatin1String("English")); + self.insert(QLatin1String("hasScannedForEncodings"), QLatin1String("1")); + self.insert(QLatin1String("knownRegions"), QStringList() << QLatin1String("en")); -+ self.insert(QLatin1String("mainGroup"), rootGroup()->identifier()); -+ self.insert(QLatin1String("productRefGroup"), productRefGroup()->identifier()); ++ self.insert(QLatin1String("mainGroup"), QVariant::fromValue(rootGroup()->identifier())); ++ self.insert(QLatin1String("productRefGroup"), QVariant::fromValue(productRefGroup()->identifier())); + self.insert(QLatin1String("projectDirPath"), d->projectDirPath); -+ self.insert(QLatin1String("projectReferences"), QLatin1String("")); // array of map { ProductGroup:, ProjectRef: }? ++ //self.insert(QLatin1String("projectReferences"), QVariantList()); // array of map { ProductGroup:, ProjectRef: }? + self.insert(QLatin1String("projectRoot"), QLatin1String("")); + -+ QStringList targetIdentifiers; ++ QVariantList targetIdentifiers; + foreach (PBXTarget *target, targets()) -+ targetIdentifiers << target->identifier(); ++ targetIdentifiers += QVariant::fromValue(target->identifier()); + self.insert(QLatin1String("targets"), targetIdentifiers); + + return self; +} + ++QString PBXProject::comment() const ++{ ++ return QLatin1String("Project object"); ++} ++ ++QByteArray PBXProject::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ data.append(d->name); ++ return data; ++} ++ +PBXGroup *PBXProject::productRefGroup() const +{ + return d->productRefGroup; +} + ++PBXGroup *PBXProject::frameworksRefGroup() const ++{ ++ return d->frameworksRefGroup; ++} ++ +QList PBXProject::targets() const +{ + return d->targets; @@ -3169,6 +2788,74 @@ index 0000000..cbbfef2 + d->name = name; +} + ++QVariantMap PBXProject::attributes() const ++{ ++ return d->attributes; ++} ++ ++void PBXProject::setAttributes(const QVariantMap &attributes) ++{ ++ d->attributes = attributes; ++} ++ ++QVariant PBXProject::attribute(const QString &name) const ++{ ++ return d->attributes[name]; ++} ++ ++void PBXProject::setAttribute(const QString &name, const QVariant &value) ++{ ++ d->attributes[name] = value; ++} ++ ++void PBXProject::removeAttribute(const QString &name) ++{ ++ d->attributes.remove(name); ++} ++ ++PBXProject::Version PBXProject::lastUpgradeCheck() const ++{ ++ const QString s = d->attributes[kLastUpgradeCheckAttribute].toString().mid(0, 3); ++ Version v; ++ v.major = s.left(2).toInt(); ++ v.minor = s.right(1).toInt(); ++ return v; ++} ++ ++void PBXProject::setLastUpgradeCheck(const PBXProject::Version &version) ++{ ++ const int major = qBound(0, version.major, 99); ++ const int minor = qBound(0, version.minor, 9); ++ d->attributes[kLastUpgradeCheckAttribute] = ++ QString::number(major).rightJustified(2, QLatin1Char('0')) + ++ QString::number(minor).leftJustified(2, QLatin1Char('0')); ++} ++ ++QString PBXProject::classPrefix() const ++{ ++ return d->attributes[kClassPrefixAttribute].toString(); ++} ++ ++void PBXProject::setClassPrefix(const QString &classPrefix) ++{ ++ d->attributes[kClassPrefixAttribute] = classPrefix; ++} ++ ++QString PBXProject::organizationName() const ++{ ++ return d->attributes[kOrganizationNameAttribute].toString(); ++} ++ ++void PBXProject::setOrganizationName(const QString &organizationName) ++{ ++ d->attributes[kOrganizationNameAttribute] = organizationName; ++} ++ ++QString PBXProject::projectWrapperPath() const ++{ ++ return QFileInfo(d->projectAbsolutePath).absolutePath(); ++} ++ +QString PBXProject::projectDirPath() const +{ + return d->projectDirPath; @@ -3179,56 +2866,70 @@ index 0000000..cbbfef2 + d->projectDirPath = projectDirPath; +} + ++void PBXProject::setBuildSetting(const QString &key, const QVariant &value) ++{ ++ foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) ++ configuration->setBuildSetting(key, value); ++} ++ +XCConfigurationList *PBXProject::buildConfigurationList() const +{ + return d->configurationList; +} + -+static void writeGroup(QVariantMap &objects, PBXGroup *group) ++static void writeGroup(PBXObjectMap &objects, PBXGroup *group) +{ -+ objects.insert(group->identifier(), group->toMap()); ++ objects.insert(group->identifier(), QVariant::fromValue(group->toMap())); + foreach (PBXReference *child, group->children()) + { -+ PBXGroup *group = dynamic_cast(child); -+ if (group) ++ if (PBXGroup *group = dynamic_cast(child)) + writeGroup(objects, group); + else -+ objects.insert(child->identifier(), child->toMap()); ++ objects.insert(child->identifier(), QVariant::fromValue(child->toMap())); + } +} + +bool PBXProject::writeToFileSystemProjectFile(bool projectWrite, bool userWrite, bool checkNeedsRevert) +{ -+ QVariantMap objects; -+ objects.insert(identifier(), toMap()); ++ PBXObjectMap objects; ++ objects.insert(identifier(), QVariant::fromValue(toMap())); + + // Add the project's root group (i.e. the root node in the file tree which contains everything) + writeGroup(objects, rootGroup()); + + // Add the project's build configuration list and build configurations to the object map -+ objects.insert(d->configurationList->identifier(), d->configurationList->toMap()); ++ objects.insert(d->configurationList->identifier(), QVariant::fromValue(d->configurationList->toMap())); + foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) -+ objects.insert(configuration->identifier(), configuration->toMap()); ++ objects.insert(configuration->identifier(), QVariant::fromValue(configuration->toMap())); + + // Add the build targets to the object map + foreach (PBXTarget *target, targets()) + { -+ objects.insert(target->identifier(), target->toMap()); ++ objects.insert(target->identifier(), QVariant::fromValue(target->toMap())); + + // Add the target's build configuration list and build configurations to the object map -+ objects.insert(target->buildConfigurationList()->identifier(), target->buildConfigurationList()->toMap()); ++ objects.insert(target->buildConfigurationList()->identifier(), QVariant::fromValue(target->buildConfigurationList()->toMap())); + foreach (XCBuildConfiguration *configuration, target->buildConfigurationList()->buildConfigurations()) -+ objects.insert(configuration->identifier(), configuration->toMap()); ++ objects.insert(configuration->identifier(), QVariant::fromValue(configuration->toMap())); ++ ++ // Add the target's dependency objects to the object map ++ foreach (PBXTargetDependency *dependency, target->targetDependencies()) { ++ objects.insert(dependency->identifier(), QVariant::fromValue(dependency->toMap())); ++ ++ if (dependency->targetProxy()) { ++ objects.insert(dependency->targetProxy()->identifier(), QVariant::fromValue(dependency->targetProxy()->toMap())); ++ } ++ } + + // Add the target's build phases... + foreach (PBXBuildPhase *buildPhase, target->buildPhases()) + { -+ objects.insert(buildPhase->identifier(), buildPhase->toMap()); ++ objects.insert(buildPhase->identifier(), QVariant::fromValue(buildPhase->toMap())); + + // And each of the files within + foreach (PBXBuildFile *buildFile, buildPhase->buildFiles()) + { -+ objects.insert(buildFile->identifier(), buildFile->toMap()); ++ objects.insert(buildFile->identifier(), QVariant::fromValue(buildFile->toMap())); + } + } + } @@ -3236,12 +2937,12 @@ index 0000000..cbbfef2 + // add all subobjects to objects map! + + // Build the root pbxproj object map -+ QVariantMap map; ++ PBXObjectMap map; + map.insert(QLatin1String("archiveVersion"), QLatin1String("1")); + map.insert(QLatin1String("classes"), QVariantMap()); + map.insert(QLatin1String("objectVersion"), QLatin1String("46")); -+ map.insert(QLatin1String("objects"), objects); -+ map.insert(QLatin1String("rootObject"), identifier()); ++ map.insert(QLatin1String("objects"), QVariant::fromValue(objects)); ++ map.insert(QLatin1String("rootObject"), QVariant::fromValue(identifier())); + + QFile file(d->projectAbsolutePath); + if (file.open(QIODevice::WriteOnly)) @@ -3252,16 +2953,16 @@ index 0000000..cbbfef2 + + return file.error() == QFile::NoError; +} -diff --git a/src/plugins/generator/xcode/pbxproject.h b/src/plugins/generator/xcode/pbxproject.h +diff --git a/src/lib/corelib/generators/xcode/pbxproject.h b/src/lib/corelib/generators/xcode/pbxproject.h new file mode 100644 -index 0000000..36fa77e +index 0000000..7a2ed88 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxproject.h -@@ -0,0 +1,80 @@ ++++ b/src/lib/corelib/generators/xcode/pbxproject.h +@@ -0,0 +1,114 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3303,11 +3004,22 @@ index 0000000..36fa77e + Q_OBJECT + Q_DISABLE_COPY(PBXProject) +public: ++ typedef struct { ++ int major; ++ int minor; ++ } Version; ++ + explicit PBXProject(const QString &projectAbsolutePath, QObject *parent = 0); + ~PBXProject(); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++ ++ QByteArray hashData() const; ++ ++ PBXGroup *frameworksRefGroup() const; + + /*! + * Group in the root of the Xcode file tree which contains references to product target files. @@ -3327,9 +3039,32 @@ index 0000000..36fa77e + QString name() const; + void setName(const QString &name); + ++ QVariantMap attributes() const; ++ void setAttributes(const QVariantMap &attributes); ++ ++ QVariant attribute(const QString &name) const; ++ void setAttribute(const QString &name, const QVariant &value); ++ void removeAttribute(const QString &name); ++ ++ Version lastUpgradeCheck() const; ++ void setLastUpgradeCheck(const Version &version); ++ ++ QString classPrefix() const; ++ void setClassPrefix(const QString &classPrefix); ++ ++ QString organizationName() const; ++ void setOrganizationName(const QString &organizationName); ++ ++ /*! ++ * Returns the path of the .xcodeproj wrapper directory. ++ */ ++ QString projectWrapperPath() const; ++ + QString projectDirPath() const; + void setProjectDirPath(const QString &projectDirPath); + ++ void setBuildSetting(const QString &key, const QVariant &value); ++ + XCConfigurationList *buildConfigurationList() const; + bool writeToFileSystemProjectFile(bool projectWrite, bool userWrite, bool checkNeedsRevert); + @@ -3338,16 +3073,16 @@ index 0000000..36fa77e +}; + +#endif // PBXPROJECT_H -diff --git a/src/plugins/generator/xcode/pbxreference.cpp b/src/plugins/generator/xcode/pbxreference.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxreference.cpp b/src/lib/corelib/generators/xcode/pbxreference.cpp new file mode 100644 -index 0000000..2d3d648 +index 0000000..651f6fe --- /dev/null -+++ b/src/plugins/generator/xcode/pbxreference.cpp -@@ -0,0 +1,107 @@ ++++ b/src/lib/corelib/generators/xcode/pbxreference.cpp +@@ -0,0 +1,127 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3400,10 +3135,13 @@ index 0000000..2d3d648 + delete d; +} + -+QVariantMap PBXReference::toMap() const ++PBXObjectMap PBXReference::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); -+ self.insert(QLatin1String("name"), name()); ++ PBXObjectMap self = PBXObject::toMap(); ++ ++ if (!name().isEmpty() && name() != path()) { ++ self.insert(QLatin1String("name"), name()); ++ } + + // Xcode crashes if path is empty, even though it should never be + if (!d->path.isEmpty()) @@ -3451,16 +3189,33 @@ index 0000000..2d3d648 +{ + return name(); +} -diff --git a/src/plugins/generator/xcode/pbxreference.h b/src/plugins/generator/xcode/pbxreference.h ++ ++QByteArray PBXReference::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ if (!d->path.isEmpty()) { ++ QStringList pathComponents; ++ const PBXReference *ref = this; ++ do { ++ pathComponents.insert(0, ref->path().toUtf8()); ++ } while ((ref = dynamic_cast(ref->parent()))); ++ ++ data.append(pathComponents.join("/").toUtf8()); ++ } else if (!d->name.isEmpty()) { ++ data.append(d->name.toUtf8()); ++ } ++ return data; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxreference.h b/src/lib/corelib/generators/xcode/pbxreference.h new file mode 100644 -index 0000000..26b393c +index 0000000..3400a25 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxreference.h -@@ -0,0 +1,70 @@ ++++ b/src/lib/corelib/generators/xcode/pbxreference.h +@@ -0,0 +1,72 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3506,7 +3261,7 @@ index 0000000..26b393c + virtual ~PBXReference(); + +public: -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QString name() const; + void setName(const QString &name); @@ -3522,21 +3277,23 @@ index 0000000..26b393c + + QString comment() const; + ++ QByteArray hashData() const; ++ +private: + PBXReferencePrivate *d; +}; + +#endif // PBXREFERENCE_H -diff --git a/src/plugins/generator/xcode/pbxsourcesbuildphase.cpp b/src/plugins/generator/xcode/pbxsourcesbuildphase.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp new file mode 100644 -index 0000000..8253287 +index 0000000..902d05d --- /dev/null -+++ b/src/plugins/generator/xcode/pbxsourcesbuildphase.cpp -@@ -0,0 +1,47 @@ ++++ b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp +@@ -0,0 +1,57 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3565,31 +3322,41 @@ index 0000000..8253287 + +#include "pbxsourcesbuildphase.h" + -+PBXSourcesBuildPhase::PBXSourcesBuildPhase(QObject *parent) : ++PBXSourcesBuildPhase::PBXSourcesBuildPhase(PBXTarget *parent) : + PBXBuildPhase(parent) +{ +} + ++QString PBXSourcesBuildPhase::name() const ++{ ++ return QLatin1String("Sources"); ++} ++ +QString PBXSourcesBuildPhase::isa() const +{ + return QLatin1String("PBXSourcesBuildPhase"); +} + -+QVariantMap PBXSourcesBuildPhase::toMap() const ++PBXObjectMap PBXSourcesBuildPhase::toMap() const +{ -+ QVariantMap self = PBXBuildPhase::toMap(); ++ PBXObjectMap self = PBXBuildPhase::toMap(); + return self; +} -diff --git a/src/plugins/generator/xcode/pbxsourcesbuildphase.h b/src/plugins/generator/xcode/pbxsourcesbuildphase.h ++ ++QString PBXSourcesBuildPhase::comment() const ++{ ++ return name(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h new file mode 100644 -index 0000000..d5d6f7d +index 0000000..e841720 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxsourcesbuildphase.h -@@ -0,0 +1,49 @@ ++++ b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h +@@ -0,0 +1,53 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3628,23 +3395,27 @@ index 0000000..d5d6f7d +{ + Q_OBJECT +public: -+ explicit PBXSourcesBuildPhase(QObject *parent = 0); ++ explicit PBXSourcesBuildPhase(PBXTarget *parent = 0); ++ ++ QString name() const; + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; +}; + +#endif // PBXSOURCESBUILDPHASE_H -diff --git a/src/plugins/generator/xcode/pbxsourcetree.cpp b/src/plugins/generator/xcode/pbxsourcetree.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxsourcetree.cpp b/src/lib/corelib/generators/xcode/pbxsourcetree.cpp new file mode 100644 -index 0000000..1bea8d6 +index 0000000..d2163aa --- /dev/null -+++ b/src/plugins/generator/xcode/pbxsourcetree.cpp ++++ b/src/lib/corelib/generators/xcode/pbxsourcetree.cpp @@ -0,0 +1,50 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3691,16 +3462,16 @@ index 0000000..1bea8d6 + + return QString(); +} -diff --git a/src/plugins/generator/xcode/pbxsourcetree.h b/src/plugins/generator/xcode/pbxsourcetree.h +diff --git a/src/lib/corelib/generators/xcode/pbxsourcetree.h b/src/lib/corelib/generators/xcode/pbxsourcetree.h new file mode 100644 -index 0000000..7f77592 +index 0000000..f5252eb --- /dev/null -+++ b/src/plugins/generator/xcode/pbxsourcetree.h ++++ b/src/lib/corelib/generators/xcode/pbxsourcetree.h @@ -0,0 +1,52 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3749,16 +3520,16 @@ index 0000000..7f77592 +} + +#endif // PBXSOURCETREE_H -diff --git a/src/plugins/generator/xcode/pbxtarget.cpp b/src/plugins/generator/xcode/pbxtarget.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxtarget.cpp b/src/lib/corelib/generators/xcode/pbxtarget.cpp new file mode 100644 -index 0000000..5b15959 +index 0000000..03f4407 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxtarget.cpp -@@ -0,0 +1,139 @@ ++++ b/src/lib/corelib/generators/xcode/pbxtarget.cpp +@@ -0,0 +1,192 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3785,8 +3556,12 @@ index 0000000..5b15959 +** +****************************************************************************/ + ++#include "pbxfilereference.h" ++#include "pbxframeworksbuildphase.h" ++#include "pbxproject.h" +#include "pbxsourcesbuildphase.h" +#include "pbxtarget.h" ++#include "pbxtargetdependency.h" +#include "xcbuildconfiguration.h" +#include "xcconfigurationlist.h" + @@ -3798,18 +3573,22 @@ index 0000000..5b15959 + QString productName; + PBX::PBXProductType productType; + XCConfigurationList *configurationList; ++ PBXFrameworksBuildPhase *frameworksBuildPhase; + PBXSourcesBuildPhase *sourcesBuildPhase; ++ PBXFileReference *productReference; ++ QList targetDependencies; +}; + +PBXTargetPrivate::PBXTargetPrivate() -+ : name(), productType(), configurationList(), sourcesBuildPhase() ++ : name(), productType(), configurationList(), sourcesBuildPhase(), productReference(), targetDependencies() +{ +} + -+PBXTarget::PBXTarget(QObject *parent) : ++PBXTarget::PBXTarget(PBXProject *parent) : + PBXObject(parent), d(new PBXTargetPrivate) +{ + d->configurationList = new XCConfigurationList(this); ++ d->frameworksBuildPhase = new PBXFrameworksBuildPhase(this); + d->sourcesBuildPhase = new PBXSourcesBuildPhase(this); +} + @@ -3818,21 +3597,27 @@ index 0000000..5b15959 + delete d; +} + -+QVariantMap PBXTarget::toMap() const ++PBXObjectMap PBXTarget::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); ++ PBXObjectMap self = PBXObject::toMap(); + self.insert(QLatin1String("name"), name()); + self.insert(QLatin1String("productName"), productName()); + self.insert(QLatin1String("productType"), PBX::productTypeString(d->productType)); + -+ self.insert(QLatin1String("buildConfigurationList"), buildConfigurationList()->identifier()); ++ self.insert(QLatin1String("buildConfigurationList"), QVariant::fromValue(buildConfigurationList()->identifier())); + -+ QStringList buildPhaseReferences; ++ QVariantList buildPhaseReferences; + foreach (PBXBuildPhase *buildPhase, buildPhases()) -+ buildPhaseReferences += buildPhase->identifier(); ++ buildPhaseReferences += QVariant::fromValue(buildPhase->identifier()); + self.insert(QLatin1String("buildPhases"), buildPhaseReferences); + -+ self.insert(QLatin1String("dependencies"), QStringList()); ++ QVariantList targetDependencyReferences; ++ foreach (PBXTargetDependency *dependency, d->targetDependencies) ++ targetDependencyReferences += QVariant::fromValue(dependency->identifier()); ++ self.insert(QLatin1String("dependencies"), targetDependencyReferences); ++ ++ if (d->productReference) ++ self.insert(QLatin1String("productReference"), QVariant::fromValue(d->productReference->identifier())); + + return self; +} @@ -3872,6 +3657,22 @@ index 0000000..5b15959 + return d->configurationList; +} + ++QList &PBXTarget::targetDependencies() const ++{ ++ return d->targetDependencies; ++} ++ ++QVariant PBXTarget::buildSetting(const QString &key, const QString &buildConfigurationName) ++{ ++ foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) { ++ if (configuration->name() == buildConfigurationName) { ++ return configuration->buildSetting(key); ++ } ++ } ++ ++ return QVariant(); ++} ++ +void PBXTarget::setBuildSetting(const QString &key, const QVariant &value) +{ + foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) @@ -3881,10 +3682,16 @@ index 0000000..5b15959 +QList PBXTarget::buildPhases() const +{ + QList phases; ++ phases.append(d->frameworksBuildPhase); + phases.append(d->sourcesBuildPhase); + return phases; +} + ++PBXBuildPhase *PBXTarget::defaultFrameworksBuildPhase() ++{ ++ return d->frameworksBuildPhase; ++} ++ +PBXBuildPhase *PBXTarget::defaultSourceCodeBuildPhase() +{ + return d->sourcesBuildPhase; @@ -3894,16 +3701,33 @@ index 0000000..5b15959 +{ + return name(); +} -diff --git a/src/plugins/generator/xcode/pbxtarget.h b/src/plugins/generator/xcode/pbxtarget.h ++ ++QByteArray PBXTarget::hashData() const ++{ ++ QByteArray hashData = PBXObject::hashData(); ++ hashData.append(d->name.toUtf8()); ++ return hashData; ++} ++ ++PBXFileReference *PBXTarget::productReference() const ++{ ++ return d->productReference; ++} ++ ++void PBXTarget::setProductReference(PBXFileReference *productReference) ++{ ++ d->productReference = productReference; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxtarget.h b/src/lib/corelib/generators/xcode/pbxtarget.h new file mode 100644 -index 0000000..6b8f5b3 +index 0000000..e915481 --- /dev/null -+++ b/src/plugins/generator/xcode/pbxtarget.h -@@ -0,0 +1,86 @@ ++++ b/src/lib/corelib/generators/xcode/pbxtarget.h +@@ -0,0 +1,100 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -3938,6 +3762,9 @@ index 0000000..6b8f5b3 +#include + +class PBXBuildPhase; ++class PBXFileReference; ++class PBXProject; ++class PBXTargetDependency; +class XCConfigurationList; + +class PBXTargetPrivate; @@ -3947,10 +3774,10 @@ index 0000000..6b8f5b3 + Q_OBJECT + Q_DISABLE_COPY(PBXTarget) +public: -+ explicit PBXTarget(QObject *parent = 0); ++ explicit PBXTarget(PBXProject *parent = 0); + ~PBXTarget(); + -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QString name() const; + void setName(const QString &name); @@ -3962,12 +3789,21 @@ index 0000000..6b8f5b3 + void setProductType(PBX::PBXProductType productType); + + /*! ++ * File reference to the target's output file. ++ */ ++ PBXFileReference *productReference() const; ++ void setProductReference(PBXFileReference *productReference); ++ ++ /*! + * List of the target's build configurations. This is never NULL. + */ + XCConfigurationList *buildConfigurationList() const; + ++ QList &targetDependencies() const; ++ + QString expandedValue(const QString &string, void *buildParameters) const; + ++ QVariant buildSetting(const QString &key, const QString &buildConfigurationName); + void setBuildSetting(const QString &key, const QVariant &value); + + QList buildPhases() const; @@ -3981,21 +3817,199 @@ index 0000000..6b8f5b3 + + QString comment() const; + ++ QByteArray hashData() const; ++ +private: + PBXTargetPrivate *d; +}; + +#endif // PBXTARGET_H -diff --git a/src/plugins/generator/xcode/xcbuildconfiguration.cpp b/src/plugins/generator/xcode/xcbuildconfiguration.cpp +diff --git a/src/lib/corelib/generators/xcode/pbxtargetdependency.cpp b/src/lib/corelib/generators/xcode/pbxtargetdependency.cpp new file mode 100644 -index 0000000..8711d1f +index 0000000..2eedcd6 --- /dev/null -+++ b/src/plugins/generator/xcode/xcbuildconfiguration.cpp -@@ -0,0 +1,82 @@ ++++ b/src/lib/corelib/generators/xcode/pbxtargetdependency.cpp +@@ -0,0 +1,99 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxcontaineritemproxy.h" ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "pbxtargetdependency.h" ++ ++class PBXTargetDependencyPrivate ++{ ++public: ++ PBXTargetDependencyPrivate(); ++ PBXContainerItemProxy *targetProxy; ++}; ++ ++PBXTargetDependencyPrivate::PBXTargetDependencyPrivate() ++ : targetProxy() ++{ ++} ++ ++PBXTargetDependency::PBXTargetDependency(PBXProject *parent) ++ : PBXObject(parent), d(new PBXTargetDependencyPrivate) ++{ ++ d->targetProxy = new PBXContainerItemProxy(this); ++ d->targetProxy->setContainerPortal(parent); ++} ++ ++PBXTargetDependency::~PBXTargetDependency() ++{ ++ delete d; ++} ++ ++QString PBXTargetDependency::isa() const ++{ ++ return QLatin1String("PBXTargetDependency"); ++} ++ ++PBXObjectMap PBXTargetDependency::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->targetProxy) { ++ self.insert(QLatin1String("targetProxy"), QVariant::fromValue(d->targetProxy->identifier())); ++ if (d->targetProxy->target()) ++ self.insert(QLatin1String("target"), QVariant::fromValue(d->targetProxy->target()->identifier())); ++ } ++ return self; ++} ++ ++QString PBXTargetDependency::comment() const ++{ ++ return PBXObject::comment(); ++} ++ ++PBXTarget *PBXTargetDependency::target() const ++{ ++ return d->targetProxy->target(); ++} ++ ++void PBXTargetDependency::setTarget(PBXTarget *target) ++{ ++ d->targetProxy->setTarget(target); ++} ++ ++PBXContainerItemProxy *PBXTargetDependency::targetProxy() const ++{ ++ return d->targetProxy; ++} ++ ++void PBXTargetDependency::setTargetProxy(PBXContainerItemProxy *targetProxy) ++{ ++ d->targetProxy = targetProxy; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxtargetdependency.h b/src/lib/corelib/generators/xcode/pbxtargetdependency.h +new file mode 100644 +index 0000000..7a146cb +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxtargetdependency.h +@@ -0,0 +1,65 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXTARGETDEPENDENCY_H ++#define PBXTARGETDEPENDENCY_H ++ ++#include "pbxobject.h" ++ ++class PBXContainerItemProxy; ++class PBXProject; ++class PBXTarget; ++class PBXTargetDependencyPrivate; ++ ++class PBXTargetDependency : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXTargetDependency(PBXProject *parent = 0); ++ virtual ~PBXTargetDependency(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++ ++ // http://www.monobjc.net/xcode-project-file-format.html claims ++ // this is a PBXNativeTarget but Xcode says "legacy" (shell script) targets work too... ++ PBXTarget *target() const; ++ void setTarget(PBXTarget *target); ++ ++ PBXContainerItemProxy *targetProxy() const; ++ void setTargetProxy(PBXContainerItemProxy *targetProxy); ++ ++private: ++ PBXTargetDependencyPrivate *d; ++}; ++ ++#endif // PBXTARGETDEPENDENCY_H +diff --git a/src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp b/src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp +new file mode 100644 +index 0000000..541b503 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp +@@ -0,0 +1,92 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4023,17 +4037,20 @@ index 0000000..8711d1f +****************************************************************************/ + +#include "xcbuildconfiguration.h" ++#include "xcconfigurationlist.h" + +class XCBuildConfigurationPrivate +{ +public: + QString name; + QVariantMap buildSettings; ++ XCBuildConfiguration *baseConfiguration; +}; + -+XCBuildConfiguration::XCBuildConfiguration(QObject *parent) : ++XCBuildConfiguration::XCBuildConfiguration(XCConfigurationList *parent) : + PBXObject(parent), d(new XCBuildConfigurationPrivate) +{ ++ d->baseConfiguration = 0; +} + +XCBuildConfiguration::~XCBuildConfiguration() @@ -4046,10 +4063,12 @@ index 0000000..8711d1f + return QLatin1String("XCBuildConfiguration"); +} + -+QVariantMap XCBuildConfiguration::toMap() const ++PBXObjectMap XCBuildConfiguration::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); -+ self.insert(QLatin1String("baseConfigurationReference"), QLatin1String("")); ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->baseConfiguration) { ++ self.insert(QLatin1String("baseConfigurationReference"), QVariant::fromValue(d->baseConfiguration->identifier())); ++ } + self.insert(QLatin1String("buildSettings"), d->buildSettings); + self.insert(QLatin1String("name"), d->name); + return self; @@ -4065,6 +4084,11 @@ index 0000000..8711d1f + d->name = name; +} + ++QVariant XCBuildConfiguration::buildSetting(const QString &key) ++{ ++ return d->buildSettings.value(key); ++} ++ +void XCBuildConfiguration::setBuildSetting(const QString &key, const QVariant &value) +{ + d->buildSettings.insert(key, value); @@ -4074,16 +4098,16 @@ index 0000000..8711d1f +{ + return name(); +} -diff --git a/src/plugins/generator/xcode/xcbuildconfiguration.h b/src/plugins/generator/xcode/xcbuildconfiguration.h +diff --git a/src/lib/corelib/generators/xcode/xcbuildconfiguration.h b/src/lib/corelib/generators/xcode/xcbuildconfiguration.h new file mode 100644 -index 0000000..ac17d79 +index 0000000..115a88c --- /dev/null -+++ b/src/plugins/generator/xcode/xcbuildconfiguration.h -@@ -0,0 +1,67 @@ ++++ b/src/lib/corelib/generators/xcode/xcbuildconfiguration.h +@@ -0,0 +1,69 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4117,6 +4141,7 @@ index 0000000..ac17d79 +#include + +class PBXFileReference; ++class XCConfigurationList; + +class XCBuildConfigurationPrivate; + @@ -4124,11 +4149,11 @@ index 0000000..ac17d79 +{ + Q_OBJECT +public: -+ explicit XCBuildConfiguration(QObject *parent = 0); ++ explicit XCBuildConfiguration(XCConfigurationList *parent = 0); + ~XCBuildConfiguration(); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QString name() const; + void setName(const QString &name); @@ -4138,6 +4163,7 @@ index 0000000..ac17d79 + void setBaseConfigurationReference(PBXFileReference *reference); + PBXFileReference *baseConfigurationReference(); + ++ QVariant buildSetting(const QString &key); + void setBuildSetting(const QString &key, const QVariant &value); + + QString comment() const; @@ -4147,16 +4173,16 @@ index 0000000..ac17d79 +}; + +#endif // XCBUILDCONFIGURATION_H -diff --git a/src/plugins/generator/xcode/xcconfigurationlist.cpp b/src/plugins/generator/xcode/xcconfigurationlist.cpp +diff --git a/src/lib/corelib/generators/xcode/xcconfigurationlist.cpp b/src/lib/corelib/generators/xcode/xcconfigurationlist.cpp new file mode 100644 -index 0000000..b8c8b7b +index 0000000..54d2d39 --- /dev/null -+++ b/src/plugins/generator/xcode/xcconfigurationlist.cpp -@@ -0,0 +1,142 @@ ++++ b/src/lib/corelib/generators/xcode/xcconfigurationlist.cpp +@@ -0,0 +1,147 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4201,7 +4227,7 @@ index 0000000..b8c8b7b +{ +} + -+XCConfigurationList::XCConfigurationList(QObject *parent) : ++XCConfigurationList::XCConfigurationList(PBXObject *parent) : + PBXObject(parent), d(new XCConfigurationListPrivate) +{ +} @@ -4216,13 +4242,13 @@ index 0000000..b8c8b7b + return QLatin1String("XCConfigurationList"); +} + -+QVariantMap XCConfigurationList::toMap() const ++PBXObjectMap XCConfigurationList::toMap() const +{ -+ QVariantMap self = PBXObject::toMap(); ++ PBXObjectMap self = PBXObject::toMap(); + -+ QStringList buildConfigurationReferences; ++ QVariantList buildConfigurationReferences; + foreach (XCBuildConfiguration *configuration, buildConfigurations()) -+ buildConfigurationReferences += configuration->identifier(); ++ buildConfigurationReferences += QVariant::fromValue(configuration->identifier()); + self.insert(QLatin1String("buildConfigurations"), buildConfigurationReferences); + + if (d->defaultBuildConfiguration) @@ -4241,6 +4267,11 @@ index 0000000..b8c8b7b + +XCBuildConfiguration *XCConfigurationList::addBuildConfiguration(const QString &name) +{ ++ foreach (XCBuildConfiguration *config, d->buildConfigurations) { ++ if (config->name() == name) ++ return config; ++ } ++ + XCBuildConfiguration *buildConfiguration = new XCBuildConfiguration(); + buildConfiguration->setName(name); + d->buildConfigurations.append(buildConfiguration); @@ -4295,16 +4326,16 @@ index 0000000..b8c8b7b + + return QString(QLatin1String("Build configuration list for %1 \"%2\"")).arg(parentIsa).arg(parentName); +} -diff --git a/src/plugins/generator/xcode/xcconfigurationlist.h b/src/plugins/generator/xcode/xcconfigurationlist.h +diff --git a/src/lib/corelib/generators/xcode/xcconfigurationlist.h b/src/lib/corelib/generators/xcode/xcconfigurationlist.h new file mode 100644 -index 0000000..9ae1221 +index 0000000..b693478 --- /dev/null -+++ b/src/plugins/generator/xcode/xcconfigurationlist.h -@@ -0,0 +1,63 @@ ++++ b/src/lib/corelib/generators/xcode/xcconfigurationlist.h +@@ -0,0 +1,67 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4345,14 +4376,18 @@ index 0000000..9ae1221 +{ + Q_OBJECT +public: -+ explicit XCConfigurationList(QObject *parent = 0); ++ explicit XCConfigurationList(PBXObject *parent = 0); + ~XCConfigurationList(); + + QString isa() const; -+ QVariantMap toMap() const; ++ PBXObjectMap toMap() const; + + QList buildConfigurations() const; + ++ /*! ++ * Adds a build configuration named \p name if one with that name does not already exist. ++ * Returns the new or existing build configuration. ++ */ + XCBuildConfiguration *addBuildConfiguration(const QString &name); + void removeBuildConfiguration(const QString &name); + void setDefaultBuildConfiguration(const QString &name); @@ -4364,80 +4399,81 @@ index 0000000..9ae1221 +}; + +#endif // XCCONFIGURATIONLIST_H -diff --git a/src/plugins/generator/xcode/xcode.pro b/src/plugins/generator/xcode/xcode.pro +diff --git a/src/lib/corelib/generators/xcode/xcode.pri b/src/lib/corelib/generators/xcode/xcode.pri new file mode 100644 -index 0000000..45e27ba +index 0000000..76ada9e --- /dev/null -+++ b/src/plugins/generator/xcode/xcode.pro -@@ -0,0 +1,58 @@ -+include(../../plugins.pri) -+ -+TARGET = qbs_xcode_generator -+ -+QT = core -+ -+QBSLIBDIR = $$OUT_PWD/../../../../lib -+include($$PWD/../../../lib/corelib/use_corelib.pri) -+ ++++ b/src/lib/corelib/generators/xcode/xcode.pri +@@ -0,0 +1,59 @@ +HEADERS += \ -+ ../generatorplugin.h \ -+ opensteppropertylist.h \ -+ pbx.h \ -+ pbxbuildfile.h \ -+ pbxbuildphase.h \ -+ pbxcontainer.h \ -+ pbxfileencoding.h \ -+ pbxfilereference.h \ -+ pbxfiletype.h \ -+ pbxgroup.h \ -+ pbxnativetarget.h \ -+ pbxobject.h \ -+ pbxproducttype.h \ -+ pbxproject.h \ -+ pbxreference.h \ -+ pbxsourcesbuildphase.h \ -+ pbxsourcetree.h \ -+ pbxtarget.h \ -+ xcbuildconfiguration.h \ -+ xcconfigurationlist.h \ -+ xcodegenerator.h \ -+ xcodenativegenerator.h \ -+ xcodesimplegenerator.h \ -+ pbxlegacytarget.h ++ $$PWD/opensteppropertylist.h \ ++ $$PWD/pbx.h \ ++ $$PWD/pbxbuildfile.h \ ++ $$PWD/pbxbuildphase.h \ ++ $$PWD/pbxcontainer.h \ ++ $$PWD/pbxcontaineritemproxy.h \ ++ $$PWD/pbxfileencoding.h \ ++ $$PWD/pbxfilereference.h \ ++ $$PWD/pbxfiletype.h \ ++ $$PWD/pbxframeworksbuildphase.h \ ++ $$PWD/pbxgroup.h \ ++ $$PWD/pbxlegacytarget.h \ ++ $$PWD/pbxnativetarget.h \ ++ $$PWD/pbxobject.h \ ++ $$PWD/pbxproducttype.h \ ++ $$PWD/pbxproject.h \ ++ $$PWD/pbxreference.h \ ++ $$PWD/pbxsourcesbuildphase.h \ ++ $$PWD/pbxsourcetree.h \ ++ $$PWD/pbxtarget.h \ ++ $$PWD/pbxtargetdependency.h \ ++ $$PWD/xcbuildconfiguration.h \ ++ $$PWD/xcconfigurationlist.h \ ++ $$PWD/xcodegenerator.h \ ++ $$PWD/xcodenativegenerator.h \ ++ $$PWD/xcodesimplegenerator.h \ ++ $$PWD/xcscheme.h \ ++ $$PWD/xcsettings.h \ ++ $$PWD/xcodebuildsettingmapping.h + +SOURCES += \ -+ main.cpp \ -+ opensteppropertylist.cpp \ -+ pbxbuildfile.cpp \ -+ pbxbuildphase.cpp \ -+ pbxcontainer.cpp \ -+ pbxfilereference.cpp \ -+ pbxfiletype.cpp \ -+ pbxgroup.cpp \ -+ pbxnativetarget.cpp \ -+ pbxobject.cpp \ -+ pbxproducttype.cpp \ -+ pbxproject.cpp \ -+ pbxreference.cpp \ -+ pbxsourcesbuildphase.cpp \ -+ pbxsourcetree.cpp \ -+ pbxtarget.cpp \ -+ xcbuildconfiguration.cpp \ -+ xcconfigurationlist.cpp \ -+ xcodegenerator.cpp \ -+ xcodenativegenerator.cpp \ -+ xcodesimplegenerator.cpp \ -+ pbxlegacytarget.cpp -diff --git a/src/plugins/generator/xcode/xcodegenerator.cpp b/src/plugins/generator/xcode/xcodegenerator.cpp ++ $$PWD/opensteppropertylist.cpp \ ++ $$PWD/pbxbuildfile.cpp \ ++ $$PWD/pbxbuildphase.cpp \ ++ $$PWD/pbxcontainer.cpp \ ++ $$PWD/pbxcontaineritemproxy.cpp \ ++ $$PWD/pbxfilereference.cpp \ ++ $$PWD/pbxfiletype.cpp \ ++ $$PWD/pbxframeworksbuildphase.cpp \ ++ $$PWD/pbxgroup.cpp \ ++ $$PWD/pbxlegacytarget.cpp \ ++ $$PWD/pbxnativetarget.cpp \ ++ $$PWD/pbxobject.cpp \ ++ $$PWD/pbxproducttype.cpp \ ++ $$PWD/pbxproject.cpp \ ++ $$PWD/pbxreference.cpp \ ++ $$PWD/pbxsourcesbuildphase.cpp \ ++ $$PWD/pbxsourcetree.cpp \ ++ $$PWD/pbxtarget.cpp \ ++ $$PWD/pbxtargetdependency.cpp \ ++ $$PWD/xcbuildconfiguration.cpp \ ++ $$PWD/xcconfigurationlist.cpp \ ++ $$PWD/xcodegenerator.cpp \ ++ $$PWD/xcodenativegenerator.cpp \ ++ $$PWD/xcodesimplegenerator.cpp \ ++ $$PWD/xcscheme.cpp \ ++ $$PWD/xcsettings.cpp \ ++ $$PWD/xcodebuildsettingmapping.cpp +diff --git a/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp new file mode 100644 -index 0000000..ea53d0e +index 0000000..458bf8f --- /dev/null -+++ b/src/plugins/generator/xcode/xcodegenerator.cpp -@@ -0,0 +1,96 @@ ++++ b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp +@@ -0,0 +1,366 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4464,45 +4500,1017 @@ index 0000000..ea53d0e +** +****************************************************************************/ + ++#include "xcodebuildsettingmapping.h" +#include "xcodegenerator.h" + +#include ++#include "pbx.h" ++ ++#include ++ ++#include + +namespace qbs { + ++using namespace Internal; ++ ++static QVariant _xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group, const QString &moduleName); ++ ++static QVariant xcodeExecutablePrefix(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeExecutableSuffix(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeInfoPlistOutputEncoding(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeArchitecture(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodePreprocessorDefinitions(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeResourcesTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeSdkRoot(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeSupportedPlatforms(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeDylibVersion(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeProductName(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeUseHeadermap(const qbs::Project &project, const ProductData &product, const GroupData &group); ++ ++static QVariant qbsProjectModuleProperty(const QString &qbsModuleName, const QString &qbsPropertyName, const qbs::Project &project) ++{ ++ QMapIterator module(project.projectConfiguration()); ++ while (module.hasNext()) { ++ module.next(); ++ QString qbsModName = qbsModuleName; ++ if (module.key() == qbsModName.replace(QLatin1String("."), QLatin1String("/"))) { ++ QMapIterator property(module.value().toMap()); ++ while (property.hasNext()) { ++ property.next(); ++ if (qbsPropertyName == property.key()) { ++ return property.value(); ++ } ++ } ++ } ++ } ++ ++ return QVariant(); ++} ++ ++static QVariant qbsModuleProperty(const QString &qbsModuleName, const QString &qbsPropertyName, const qbs::Project &project, const qbs::ProductData &product, const qbs::GroupData &group) ++{ ++ if (product.isValid()) { ++ return (group.isValid() ? group.properties() : product.moduleProperties()).getModuleProperty(qbsModuleName, qbsPropertyName); ++ } else { ++ return qbsProjectModuleProperty(qbsModuleName, qbsPropertyName, project); ++ } ++ return QVariant(); ++} ++ ++static QVariantList qbsModuleProperties(const QString &qbsModuleName, const QString &qbsPropertyName, const qbs::Project &project, const qbs::ProductData &product, const qbs::GroupData &group) ++{ ++ if (product.isValid()) { ++ return (group.isValid() ? group.properties() : product.moduleProperties()).getModuleProperties(qbsModuleName, qbsPropertyName); ++ } else { ++ return qbsProjectModuleProperty(qbsModuleName, qbsPropertyName, project).toList(); ++ } ++ return QVariantList(); ++} ++ ++void XcodeBuildSettingMapping::applyToProject(PBXProject *xcodeProject, ++ const qbs::Project &project) const { ++ applyToConfiguration(xcodeProject->buildConfigurationList(), project); ++} ++ ++void XcodeBuildSettingMapping::applyToTarget(PBXTarget *xcodeTarget, ++ const qbs::Project &project, ++ const qbs::ProductData &productData, ++ const qbs::GroupData &groupData) const { ++ applyToConfiguration(xcodeTarget->buildConfigurationList(), project, productData, groupData); ++} ++ ++void XcodeBuildSettingMapping::applyToConfiguration(XCConfigurationList *xcodeConfigurationList, ++ const Project &project, ++ const ProductData &productData, ++ const GroupData &groupData) const { ++ foreach (XCBuildConfiguration *xcodeConfiguration, xcodeConfigurationList->buildConfigurations()) ++ applyToConfiguration(xcodeConfiguration, project, productData, groupData); ++} ++ ++void XcodeBuildSettingMapping::applyToConfiguration(XCBuildConfiguration *xcodeConfiguration, ++ const qbs::Project &project, ++ const qbs::ProductData &productData, ++ const qbs::GroupData &groupData) const { ++ QVariant xcodeValue; ++ if (function) { ++ xcodeValue = function(project, productData, groupData); ++ } else if (isList) { ++ QVariantList list; ++ ++ foreach (const QString &qbsName, qbsNames) { ++ list << qbsModuleProperties(qbsModule, qbsName, project, productData, groupData); ++ } ++ ++ if (!list.isEmpty()) { ++ list.append(QLatin1String("$(inherited)")); ++ xcodeValue = list; ++ } ++ } else { ++ xcodeValue = qbsModuleProperty(qbsModule, qbsNames.first(), project, productData, groupData); ++ } ++ ++ // TODO: Figure out what Xcode *really* does... I think it's this ++ bool shouldSerializeAsList = serializedAsList; ++ if (xcodeValue.type() == QVariant::List || xcodeValue.type() == QVariant::StringList) { ++ const QStringList l = xcodeValue.toStringList(); ++ if (l.size() <= 1) { ++ shouldSerializeAsList = false; // || containsQuotedStrings ??? lineLength? ++ } ++ } ++ ++ if (!shouldSerializeAsList && (xcodeValue.type() == QVariant::List ++ || xcodeValue.type() == QVariant::StringList)) { ++ xcodeValue = xcodeValue.toStringList().join(QLatin1Char(' ')); ++ } ++ ++ if (!xcodeValue.isNull()) { ++ xcodeValue = XcodeGenerator::xcodeInsertPlaceholdersInValue(project, xcodeValue); ++ xcodeConfiguration->setBuildSetting(xcodeName, xcodeValue); ++ } ++} ++ ++/*! ++ * \brief Mapping of Xcode build settings to qbs module and property names or functions. ++ */ ++QList XcodeBuildSettingMapping::defaultBuildSettingsMap() ++{ ++ const QString cpp = QLatin1String("cpp"); ++ ++ QList settings; ++ settings += XcodeBuildSettingMapping(QLatin1String("APPLICATION_EXTENSION_API_ONLY"), cpp, QLatin1String("requireAppExtensionSafeApi")); ++ settings += XcodeBuildSettingMapping(QLatin1String("ARCHS"), &xcodeArchitecture, true); ++ settings += XcodeBuildSettingMapping(QLatin1String("CLANG_ENABLE_OBJC_ARC"), cpp, QLatin1String("automaticReferenceCounting")); ++ settings += XcodeBuildSettingMapping(QLatin1String("CREATE_INFOPLIST_SECTION_IN_BINARY"), cpp, QLatin1String("embedInfoPlist")); ++ settings += XcodeBuildSettingMapping(QLatin1String("DYLIB_CURRENT_VERSION"), &xcodeDylibVersion, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("DYLIB_INSTALL_NAME_BASE"), cpp, QLatin1String("installNamePrefix")); ++ settings += XcodeBuildSettingMapping(QLatin1String("EXECUTABLE_EXTENSION"), &xcodeExecutableSuffix, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("EXECUTABLE_PREFIX"), &xcodeExecutablePrefix, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("FRAMEWORK_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("frameworkPaths")); ++ settings += XcodeBuildSettingMapping(QLatin1String("GCC_PREFIX_HEADER"), cpp, QLatin1String("precompiledHeader")); ++ settings += XcodeBuildSettingMapping(QLatin1String("GCC_PREPROCESSOR_DEFINITIONS"), &xcodePreprocessorDefinitions, true); ++ settings += XcodeBuildSettingMapping(QLatin1String("HEADER_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("includePaths")); ++ settings += XcodeBuildSettingMapping(QLatin1String("INFOPLIST_EXPAND_BUILD_SETTINGS"), cpp, QLatin1String("processInfoPlist")); ++ settings += XcodeBuildSettingMapping(QLatin1String("INFOPLIST_FILE"), cpp, QLatin1String("infoPlistFile")); ++ settings += XcodeBuildSettingMapping(QLatin1String("INFOPLIST_OUTPUT_FORMAT"), &xcodeInfoPlistOutputEncoding, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("IPHONEOS_DEPLOYMENT_TARGET"), cpp, QLatin1String("minimumIosVersion")); ++ settings += XcodeBuildSettingMapping(QLatin1String("LD_RUNPATH_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("rpaths"), false); ++ settings += XcodeBuildSettingMapping(QLatin1String("LIBRARY_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("libraryPaths")); ++ settings += XcodeBuildSettingMapping(QLatin1String("MACOSX_DEPLOYMENT_TARGET"), cpp, QLatin1String("minimumOsxVersion")); ++ settings += XcodeBuildSettingMapping(QLatin1String("OTHER_CFLAGS"), cpp, QStringList() << QLatin1String("cFlags") << QLatin1String("objcFlags")); ++ settings += XcodeBuildSettingMapping(QLatin1String("OTHER_CPLUSPLUSFLAGS"), cpp, QStringList() << QLatin1String("cxxFlags") << QLatin1String("objcxxFlags")); ++ settings += XcodeBuildSettingMapping(QLatin1String("OTHER_LDFLAGS"), cpp, QStringList() << QLatin1String("linkerFlags")); ++ settings += XcodeBuildSettingMapping(QLatin1String("PRODUCT_NAME"), &xcodeProductName, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("RESOURCES_TARGETED_DEVICE_FAMILY"), &xcodeResourcesTargetedDeviceFamily, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("SDKROOT"), &xcodeSdkRoot, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("SUPPORTED_PLATFORMS"), &xcodeSupportedPlatforms, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("TARGETED_DEVICE_FAMILY"), &xcodeTargetedDeviceFamily, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("USE_HEADERMAP"), &xcodeUseHeadermap, false); ++ return settings; ++} ++ ++QVariant xcodeExecutablePrefix(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ switch (XcodeGenerator::xcodeProductType(product)) ++ { ++ case PBX::Application: ++ case PBX::Tool: ++ case PBX::Bundle: ++ case PBX::Framework: ++ return qbsModuleProperty(QLatin1String("cpp"), QLatin1String("executablePrefix"), project, product, group).toString(); ++ case PBX::LibraryDynamic: ++ return qbsModuleProperty(QLatin1String("cpp"), QLatin1String("dynamicLibraryPrefix"), project, product, group).toString(); ++ case PBX::LibraryStatic: ++ return qbsModuleProperty(QLatin1String("cpp"), QLatin1String("staticLibraryPrefix"), project, product, group).toString(); ++ default: ++ return QString(); ++ } ++} ++ ++QVariant xcodeExecutableSuffix(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ QString suffix; ++ switch (XcodeGenerator::xcodeProductType(product)) ++ { ++ case PBX::Application: ++ case PBX::Tool: ++ case PBX::Bundle: ++ case PBX::Framework: ++ suffix = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("executableSuffix"), project, product, group).toString(); ++ break; ++ case PBX::LibraryDynamic: ++ suffix = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("dynamicLibrarySuffix"), project, product, group).toString(); ++ break; ++ case PBX::LibraryStatic: ++ suffix = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("staticLibrarySuffix"), project, product, group).toString(); ++ break; ++ default: ++ break; ++ } ++ ++ if (suffix.startsWith(QChar('.'))) ++ suffix.remove(0, 1); ++ ++ return suffix; ++} ++ ++QVariant xcodeInfoPlistOutputEncoding(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ const QString format = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("infoPlistFormat"), project, product, group).toString(); ++ if (format == QLatin1String("xml1")) ++ return QLatin1String("XML"); ++ else if (format == QLatin1String("binary1")) ++ return QLatin1String("binary"); ++ ++ // If we don't know what the format is, return the original string (which may be invalid) ++ // "same-as-input" is valid ++ return format; ++} ++ ++QVariant xcodeArchitecture(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ const QString architecture = qbsModuleProperty(QLatin1String("qbs"), QLatin1String("architecture"), project, product, group).toString(); ++ if (architecture == QLatin1String("x86")) ++ return QLatin1String("i386"); ++ return architecture; ++} ++ ++QVariant xcodePreprocessorDefinitions(const qbs::Project &project, const ProductData &product, const GroupData &group) ++{ ++ QStringList defs; ++ Q_FOREACH (const QVariant &def, qbsModuleProperties(QLatin1String("cpp"), QLatin1String("defines"), project, product, group)) { ++ // Preprocessor definitions need to be double escaped since Xcode ignores quoted strings ++ defs.append(def.toString().replace(QLatin1String("\""), QLatin1String("\\\""))); ++ } ++ return defs; ++} ++ ++QVariant xcodeSdkRoot(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ const QString sdkName = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("xcodeSdkName"), project, product, group).toString(); ++ if (!sdkName.isEmpty()) ++ return sdkName; ++ ++ const QString sysroot = qbsModuleProperty(QLatin1String("qbs"), QLatin1String("sysroot"), project, product, group).toString(); ++ if (!sysroot.isEmpty()) ++ return sysroot; ++ ++ const QVariantList targetOS = qbsModuleProperties(QLatin1String("qbs"), QLatin1String("targetOS"), project, product, group); ++ if (targetOS.contains(QLatin1String("osx"))) ++ return QLatin1String("macosx"); ++ else if (targetOS.contains(QLatin1String("ios"))) ++ return QLatin1String("iphoneos"); ++ else ++ throw ErrorInfo(Tr::tr("Unsupported platform for Xcode project")); ++} ++ ++QVariant xcodeSupportedPlatforms(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ QStringList supportedPlatforms; ++ const QVariantList targetOS = qbsModuleProperties(QLatin1String("qbs"), QLatin1String("targetOS"), project, product, group); ++ if (targetOS.contains(QLatin1String("osx"))) { ++ supportedPlatforms.append(QLatin1String("macosx")); ++ } else if (targetOS.contains(QLatin1String("ios"))) { ++ if (targetOS.contains(QLatin1String("ios-simulator"))) { ++ supportedPlatforms.append(QLatin1String("iphonesimulator")); ++ } ++ supportedPlatforms.append(QLatin1String("iphoneos")); ++ } ++ return supportedPlatforms; ++} ++ ++static inline int targetDeviceFamilyIdentifierFromName(const QString &name) ++{ ++ if (name == "iphone") ++ return 1; ++ if (name == "ipad") ++ return 2; ++ return 0; ++} ++ ++QVariant _xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group, const QString &moduleName) ++{ ++ QStringList targetedDeviceFamily; ++ const QVariantList targetDevices = qbsModuleProperties(moduleName, QLatin1String("targetDevices"), project, product, group); ++ Q_FOREACH (const QVariant &targetDevice, targetDevices) { ++ int devId = targetDeviceFamilyIdentifierFromName(targetDevice.toString()); ++ if (devId != 0) { ++ targetedDeviceFamily.append(QString::number(devId)); ++ } ++ } ++ return targetedDeviceFamily.join(QLatin1Char(',')); ++} ++ ++QVariant xcodeResourcesTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ return _xcodeTargetedDeviceFamily(project, product, group, QLatin1String("ib")); ++} ++ ++QVariant xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ return _xcodeTargetedDeviceFamily(project, product, group, QLatin1String("xcode")); ++} ++ ++QVariant xcodeDylibVersion(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ Q_UNUSED(project); ++ Q_UNUSED(group); ++ if (product.type().contains(QLatin1String("dynamiclibrary"))) ++ return product.version(); ++ return QString(); ++} ++ ++QVariant xcodeProductName(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ Q_UNUSED(project); ++ Q_UNUSED(group); ++ if (!product.targetName().isEmpty()) ++ return product.targetName(); ++ return product.name(); ++} ++ ++QVariant xcodeUseHeadermap(const Project &, const ProductData &, const GroupData &) ++{ ++ return QVariant(false); // We never want to use headermaps in qbs-generated projects ++} ++ ++} // namespace qbs +diff --git a/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h +new file mode 100644 +index 0000000..39474fb +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h +@@ -0,0 +1,96 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCODECONFIGURATIONSETTING_H ++#define XCODECONFIGURATIONSETTING_H ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++class PBXProject; ++class PBXTarget; ++class XCBuildConfiguration; ++class XCConfigurationList; ++ ++namespace qbs { ++ ++/*! ++ * \brief Represents the mapping of an Xcode build setting name to a qbs module and property name. ++ */ ++struct XcodeBuildSettingMapping { ++ typedef QVariant (*XcodeBuildSettingValueFunction)(const qbs::Project &project, ++ const qbs::ProductData &productData, ++ const qbs::GroupData &groupData); ++ ++ QString xcodeName; ++ QString qbsModule; ++ QStringList qbsNames; ++ bool isList; ++ bool serializedAsList; ++ XcodeBuildSettingValueFunction function; // overrides previous 3 ++ ++ XcodeBuildSettingMapping(const QString &xcodeName, const QString &qbsModule, ++ const QString &qbsName, bool serializedAsList = false) ++ : xcodeName(xcodeName), qbsModule(qbsModule), qbsNames(qbsName), isList(false), ++ serializedAsList(serializedAsList), function(NULL) {} ++ ++ XcodeBuildSettingMapping(const QString &xcodeName, const QString &qbsModule, ++ const QStringList &qbsNames, bool serializedAsList = true) ++ : xcodeName(xcodeName), qbsModule(qbsModule), qbsNames(qbsNames), isList(true), ++ serializedAsList(serializedAsList), function(NULL) {} ++ ++ XcodeBuildSettingMapping(const QString &xcodeName, XcodeBuildSettingValueFunction function, ++ bool serializedAsList) ++ : xcodeName(xcodeName), isList(serializedAsList), ++ serializedAsList(serializedAsList), function(function) {} ++ ++ void applyToProject(PBXProject *xcodeProject, const Project &project) const; ++ void applyToTarget(PBXTarget *xcodeTarget, ++ const Project &project, ++ const ProductData &productData, const GroupData &groupData) const; ++ void applyToConfiguration(XCConfigurationList *xcodeConfigurationList, ++ const Project &project, ++ const ProductData &productData = ProductData(), ++ const GroupData &groupData = GroupData()) const; ++ void applyToConfiguration(XCBuildConfiguration *xcodeConfiguration, ++ const Project &project, ++ const ProductData &productData = ProductData(), ++ const GroupData &groupData = GroupData()) const; ++ ++ static QList defaultBuildSettingsMap(); ++}; ++ ++} // namespace qbs ++ ++#endif // XCODECONFIGURATIONSETTING_H +diff --git a/src/lib/corelib/generators/xcode/xcodegenerator.cpp b/src/lib/corelib/generators/xcode/xcodegenerator.cpp +new file mode 100644 +index 0000000..4bbcb40 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodegenerator.cpp +@@ -0,0 +1,643 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcodebuildsettingmapping.h" ++#include "xcodegenerator.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include "pbx.h" ++ ++#include ++#include ++#include ++#include ++ ++static const QString kQbsRunnerFileName = QLatin1String("qbs"); ++ ++namespace qbs { ++ ++using namespace Internal; ++ +XcodeGenerator::XcodeGenerator() +{ +} + -+/*! -+ * Finds the "root" group in a Qbs product. -+ * -+ * This is the group which has the same name as the product and corresponds to -+ * the files which do not appear in a Group in the Qbs source file. -+ */ -+static GroupData findRootGroup(const ProductData &product) ++static QString buildVariant(const qbs::Project &project) +{ -+ Q_ASSERT(product.groups().size() > 0); -+ foreach (const GroupData groupData, product.groups()) -+ { -+ if (groupData.name() == product.name()) -+ return groupData; -+ } -+ -+ Q_ASSERT_X(false, __FILE__, "couldn't find root group in qbs product"); ++ return project.projectConfiguration()[QLatin1String("qbs")].toMap()[QLatin1String("buildVariant")].toString(); +} + -+QString XcodeGenerator::xcodeExecutablePrefix(const ProductData &product) ++static QString buildVariant(const qbs::ProductData &product) +{ -+ // TODO: Use value from qbs module? -+ switch (xcodeProductType(product)) -+ { -+ case PBX::LibraryDynamic: -+ case PBX::LibraryStatic: -+ return QLatin1String("lib"); -+ default: -+ return QString(); ++ return product.moduleProperties().getModuleProperty(QLatin1String("qbs"), QLatin1String("buildVariant")).toString(); ++} ++ ++void XcodeGenerator::setupGenerator() ++{ ++ QSet profileNames; ++ QSet projectNames; ++ QSet qbsProjectFiles; ++ QSet buildDirectories; ++ ++ foreach (const qbs::Project &proj, projects()) { ++ profileNames << proj.profile(); ++ projectNames << proj.projectData().name(); ++ qbsProjectFiles << proj.projectData().location().filePath(); ++ ++ QDir baseBuildDirectory(proj.projectData().buildDirectory()); ++ baseBuildDirectory.cdUp(); ++ buildDirectories << baseBuildDirectory.absolutePath(); + } ++ ++ QBS_CHECK(!profileNames.isEmpty()); ++ QBS_CHECK(projectNames.size() == 1); ++ QBS_CHECK(qbsProjectFiles.size() == 1); ++ QBS_CHECK(buildDirectories.size() == 1); ++ ++ m_multipleProfiles = profileNames.size() > 1; ++ m_projectName = projectNames.toList().first(); ++ m_qbsProjectFile = qbsProjectFiles.toList().first(); ++ m_baseBuildDirectory = buildDirectories.toList().first(); ++ ++ QBS_CHECK(m_qbsProjectFile.isAbsolute() && m_qbsProjectFile.exists()); ++ QBS_CHECK(m_baseBuildDirectory.isAbsolute() && m_baseBuildDirectory.exists()); ++ ++ m_productGroups.clear(); ++} ++ ++static inline TargetArtifact runnableOrPrimaryTargetArtifactForProduct(const qbs::ProductData &qbsProductData) { ++ // Easy in this case... ++ if (qbsProductData.targetArtifacts().size() == 1) { ++ return qbsProductData.targetArtifacts().first(); ++ } ++ ++ const QStringList types = QStringList() ++ << QLatin1String("bundle") ++ << QLatin1String("application") ++ << QLatin1String("dynamiclibrary") ++ << QLatin1String("staticlibrary") ++ << QLatin1String("loadablemodule"); ++ ++ Q_FOREACH (const TargetArtifact &ta, qbsProductData.targetArtifacts()) { ++ Q_FOREACH (const QString &type, types) { ++ if (qbsProductData.type().contains(type) ++ && ta.fileTags().contains(type)) { ++ return ta; ++ } ++ } ++ } ++ ++ return TargetArtifact(); ++} ++ ++static inline QString installedFilePathForTargetArtifact(const qbs::Project &project, ++ const qbs::ProductData &product, ++ const qbs::InstallOptions &installOptions, ++ const TargetArtifact &ta) { ++ const QList &installables ++ = project.installableFilesForProduct(product, installOptions); ++ foreach (const InstallableFile &file, installables) { ++ if (file.sourceFilePath() == ta.filePath()) ++ return file.targetFilePath(); ++ } ++ return ta.filePath(); ++} ++ ++void XcodeGenerator::generate(const InstallOptions &installOptions) ++{ ++ // TODO: Move to base class and call ProjectGenerator::setupGenerator() ++ setupGenerator(); ++ ++ const QString xcodeWrapperName = m_projectName + QLatin1String(".xcodeproj"); ++ if (!m_baseBuildDirectory.cd(xcodeWrapperName)) ++ if (!m_baseBuildDirectory.mkdir(xcodeWrapperName) || !m_baseBuildDirectory.cd(xcodeWrapperName)) ++ throw ErrorInfo(Tr::tr("failed to make Xcode project wrapper directory")); ++ ++ const QString xcodeWorkspaceWrapperName = QLatin1String("project.xcworkspace"); ++ const QString sharedWorkspaceDataDirName = QLatin1String("xcshareddata"); ++ ++ QDir sharedWorkspaceDataDir = m_baseBuildDirectory; ++ if (!sharedWorkspaceDataDir.cd(xcodeWorkspaceWrapperName)) ++ if (!sharedWorkspaceDataDir.mkdir(xcodeWorkspaceWrapperName) || !sharedWorkspaceDataDir.cd(xcodeWorkspaceWrapperName)) ++ throw ErrorInfo(Tr::tr("failed to make Xcode workspace wrapper directory")); ++ ++ if (!sharedWorkspaceDataDir.cd(sharedWorkspaceDataDirName)) ++ if (!sharedWorkspaceDataDir.mkdir(sharedWorkspaceDataDirName) || !sharedWorkspaceDataDir.cd(sharedWorkspaceDataDirName)) ++ throw ErrorInfo(Tr::tr("failed to make Xcode workspace shared data directory")); ++ ++ const QString sharedWorkspaceSettingsFilePath = sharedWorkspaceDataDir.absoluteFilePath(QLatin1String("WorkspaceSettings.xcsettings")); ++ XCSettings sharedWorkspaceSettings; ++ sharedWorkspaceSettings.setAutocreateSchemes(false); ++ if (!sharedWorkspaceSettings.serialize(sharedWorkspaceSettingsFilePath)) { ++ throw ErrorInfo(Tr::tr("Failed to generate workspace settings %1").arg(sharedWorkspaceSettingsFilePath)); ++ } ++ ++ // Create a shell script to invoke the qbs binary ++ // This is necessary because qbs hangs when invoked directly from Xcode ++ // TODO: Why? ++ const QString &qbsRunnerFilePath = m_baseBuildDirectory.absoluteFilePath(kQbsRunnerFileName); ++ QFile qbsRunner(qbsRunnerFilePath); ++ if (qbsRunner.open(QIODevice::WriteOnly)) { ++ // The runner script, in addition to invoking qbs itself, ++ // adds symlinks from the Xcode target directory to the qbs build directory ++ // This way, products in the Xcode files listing show up properly ++ QTextStream ts(&qbsRunner); ++ ts << QLatin1String("#!/bin/bash\n") ++ << QLatin1String("set -e\n") ++ << QLatin1String("[ -x \"$QBS\" ] || exit 1\n") ++ << QLatin1String("\"$QBS\" \"$@\"\n") ++ << QLatin1String("if [ ! -e \"$TARGET_BUILD_DIR/$PRODUCT_NAME/$FULL_PRODUCT_NAME\" ] && [ -e \"$QBS_TARGET_PATH\" ] ; then\n") ++ << QLatin1String("mkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME\"\n") ++ << QLatin1String("ln -sf \"$QBS_TARGET_PATH\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME/$FULL_PRODUCT_NAME\"\n") ++ << QLatin1String("fi\n"); ++ } ++ ++ PBXProject xcodeProject(m_baseBuildDirectory.absoluteFilePath(QLatin1String("project.pbxproj"))); ++ xcodeProject.setName(m_projectName); ++ ++ // Only potentially add absolute paths if the qbs source directory and build directory differ; ++ // this makes the Xcode project file relocatable (and thus version trackable) if generated in-source ++ const QString qbsSourceDirectory = m_qbsProjectFile.absolutePath(); ++ if (m_baseBuildDirectory.absolutePath() != qbsSourceDirectory) { ++ // TODO: Make it relative anyways ++ xcodeProject.setProjectDirPath(qbsSourceDirectory); ++ xcodeProject.rootGroup()->setPath(xcodeProject.projectDirPath()); ++ } ++ ++ foreach (const qbs::Project &project, projects()) { ++ XCBuildConfiguration *xcconfig = xcodeProject.buildConfigurationList()->addBuildConfiguration(xcodeConfigurationName(project)); ++ xcodeProject.buildConfigurationList()->setDefaultBuildConfiguration(xcconfig->name()); ++ ++ // TODO: Ideally should go into a configuration file instead of in the project file itself ++ // TODO: Is there a better way to find the qbs binary to invoke? For example, someone could use libqbscore to invoke generators... ++ xcconfig->setBuildSetting(QLatin1String("QBS"), QCoreApplication::applicationFilePath()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROFILE"), project.profile()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROJECT_DIRECTORY"), xcodeInsertPlaceholdersInValue(project, qbsSourceDirectory)); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROJECT_FILE_NAME"), m_qbsProjectFile.fileName()); ++ ++ // or baseBuildDirectory + profileName + '-' + buildVariant ++ xcconfig->setBuildSetting(QLatin1String("__QBS_BASE_BUILD_DIRECTORY"), QLatin1String("$(PROJECT_FILE_PATH)/..")); ++ xcconfig->setBuildSetting(QLatin1String("QBS_BUILD_DIRECTORY"), QLatin1String("$(__QBS_BASE_BUILD_DIRECTORY:standardizepath)")); ++ ++ xcconfig->setBuildSetting(QLatin1String("QBS_BUILD_VARIANT"), buildVariant(project)); ++ ++ foreach (const XcodeBuildSettingMapping &setting, XcodeBuildSettingMapping::defaultBuildSettingsMap()) { ++ setting.applyToConfiguration(xcconfig, project); ++ } ++ ++ // Add all the Qbs products as Xcode targets ++ addProjectRecursive(project, project.projectData(), installOptions, xcodeProject, xcodeProject.rootGroup()); ++ ++ // Do some per-target ops ++ foreach (const qbs::ProductData &qbsProductData, project.projectData().allProducts()) { ++ PBXTarget *qbsXcodeTarget = xcodeProject.targetNamed(qbsProductData.name()); ++ if (!qbsXcodeTarget) ++ throw new qbs::ErrorInfo(Tr::tr("could not find PBXTarget for qbs product '%1'").arg(qbsProductData.name())); ++ ++ // Set up target dependencies ++ foreach (const QString &dependencyName, qbsProductData.dependencies()) { ++ PBXTargetDependency *dependentXcodeTarget = new PBXTargetDependency(&xcodeProject); ++ dependentXcodeTarget->setTarget(xcodeProject.targetNamed(dependencyName)); ++ if (!dependentXcodeTarget->target()) ++ throw new qbs::ErrorInfo(Tr::tr("could not find PBXTarget for qbs product '%1'").arg(dependencyName)); ++ ++ qbsXcodeTarget->targetDependencies().append(dependentXcodeTarget); ++ } ++ ++ // Set up a scheme for the target ++ static const QString xcshareddata = QLatin1String("xcshareddata"); ++ static const QString xcschemes = QLatin1String("xcschemes"); ++ QDir schemesDirectory(m_baseBuildDirectory); ++ if (!schemesDirectory.cd(xcshareddata)) { ++ if (!schemesDirectory.mkdir(xcshareddata) || !schemesDirectory.cd(xcshareddata)) { ++ throw ErrorInfo(Tr::tr("failed to make Xcode project shared data directory")); ++ } ++ } ++ if (!schemesDirectory.cd(xcschemes)) { ++ if (!schemesDirectory.mkdir(xcschemes) || !schemesDirectory.cd(xcschemes)) { ++ throw ErrorInfo(Tr::tr("failed to make Xcode project shared schemes directory")); ++ } ++ } ++ ++ const QString schemeFilePath(schemesDirectory.absoluteFilePath(QString(QLatin1String("%1.xcscheme")).arg(qbsXcodeTarget->name()))); ++ XCScheme xcscheme; ++ xcscheme.setParallelizeBuildables(false); // this must be turned off because it conflicts with qbs build directory locking ++ xcscheme.setProject(&xcodeProject); ++ xcscheme.setTarget(qbsXcodeTarget); ++ ++ if (dynamic_cast(qbsXcodeTarget)) { ++ xcscheme.setCustomExecutableFilePath(installedFilePathForTargetArtifact(project, qbsProductData, installOptions, runnableOrPrimaryTargetArtifactForProduct(qbsProductData))); ++ } ++ ++ if (!xcscheme.serialize(schemeFilePath)) { ++ throw ErrorInfo(Tr::tr("Failed to generate scheme %1").arg(schemeFilePath)); ++ } ++ } ++ } ++ ++ if (xcodeProject.writeToFileSystemProjectFile(true, true, true)) ++ qDebug() << "Generated" << qPrintable(xcodeWrapperName); ++ else ++ throw ErrorInfo(Tr::tr("Failed to generate %1").arg(xcodeWrapperName)); ++} ++ ++QString makePathRelativeTo(const QString &path, const QString &basePath) ++{ ++ QString rootPath(basePath); ++ if (!rootPath.endsWith(QLatin1Char('/'))) ++ rootPath += QLatin1Char('/'); ++ ++ QString filePath(path); ++ if (filePath.startsWith(rootPath)) ++ filePath.remove(0, rootPath.size()); ++ ++ return filePath; ++} ++ ++void XcodeGenerator::addProjectRecursive(const Project &project, const ProjectData &projectData, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup) ++{ ++ foreach (const ProjectData &subProjectData, projectData.subProjects()) ++ { ++ PBXGroup *baseGroup = PBXGroup::groupWithName(subProjectData.name(), xcodeGroup); ++ baseGroup->setSourceTree(PBX::Group); ++ ++ // Add the qbs project file for this project ++ foreach (PBXFileReference *ref, baseGroup->addFiles(QStringList() << makePathRelativeTo(m_qbsProjectFile.absoluteFilePath(), xcodeProject.projectDirPath()), false, false)) { ++ if (!ref->path().startsWith(QLatin1Char('/'))) { ++ ref->setSourceTree(PBX::Group); ++ } ++ } ++ ++ addProjectRecursive(project, subProjectData, installOptions, xcodeProject, baseGroup); ++ } ++ ++ foreach (const ProductData &product, projectData.products()) ++ { ++ addProduct(project, product, installOptions, xcodeProject, xcodeGroup); ++ } ++} ++ ++static inline QVariant flattenXcconfigList(const QStringList &list) { ++ if (list.isEmpty()) ++ return QString(); ++ if (list.size() == 1) ++ return list.first(); ++ return list; ++} ++ ++void XcodeGenerator::addProduct(const Project &project, const ProductData &product, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup) ++{ ++ PBXTarget *xcodeTarget = xcodeTargetForProduct(&xcodeProject, product); ++ xcodeTarget->setName(product.name()); ++ xcodeTarget->setProductType(xcodeProductType(product)); ++ ++ PBXLegacyTarget *xcodeLegacyTarget = dynamic_cast(xcodeTarget); ++ if (xcodeLegacyTarget) { ++ xcodeLegacyTarget->setBuildWorkingDirectory(XcodeGenerator::xcodeInsertPlaceholdersInValue(project, xcodeProject.projectDirPath()).toString()); ++ xcodeLegacyTarget->setBuildToolPath(QLatin1String("/bin/bash")); ++ ++ QStringList buildArguments; ++ buildArguments << QLatin1String("\"$(PROJECT_FILE_PATH)\"/") + kQbsRunnerFileName; ++ buildArguments << QLatin1String("\"$(ACTION)\""); ++ buildArguments << QLatin1String("-f"); ++ ++ // Can't use xcodeInsertPlaceholdersInValue because we want to do a little acrobatics to get quoting 100% right... ++ const QDir sourceDirectory(xcodeProject.projectDirPath()); ++ QString resultingFilePath = m_qbsProjectFile.absoluteFilePath(); ++ if (resultingFilePath.startsWith(sourceDirectory.absolutePath())) { ++ resultingFilePath.replace(0, sourceDirectory.absolutePath().size(), QString()); ++ buildArguments << QLatin1String("\"$(SRCROOT)\"") + shellQuote(resultingFilePath); ++ } else { ++ buildArguments << shellQuote(resultingFilePath); ++ } ++ ++ buildArguments << QLatin1String("-d"); ++ buildArguments << QLatin1String("\"$(CONFIGURATION_BUILD_DIR)\""); ++ buildArguments << QLatin1String("-p"); ++ buildArguments << QLatin1String("\"$(TARGET_NAME)\""); // target and product name are opposites in qbs and Xcode ++ buildArguments << QLatin1String("\"$(QBS_BUILD_VARIANT)\""); ++ buildArguments << QLatin1String("\"profile:$(QBS_PROFILE)\""); ++ ++ xcodeLegacyTarget->setBuildArgumentsString(buildArguments.join(QLatin1String(" "))); ++ xcodeLegacyTarget->setPassBuildSettingsInEnvironment(true); ++ } ++ ++ XCBuildConfiguration *xcconfig = xcodeTarget->buildConfigurationList()->addBuildConfiguration(xcodeConfigurationName(product)); ++ xcodeTarget->buildConfigurationList()->setDefaultBuildConfiguration(xcconfig->name()); ++ ++ // TODO: If a product with the same name was already added, don't add its files AGAIN ++ // Create a root PBX group for the target's files and other groups ++ PBXGroup *xcodeProductGroup = m_productGroups.value(product.name()); ++ const bool productFilesAlreadyAdded = !!xcodeProductGroup; ++ if (!productFilesAlreadyAdded) { ++ m_productGroups.insert(product.name(), xcodeProductGroup = PBXGroup::groupWithName(product.name(), xcodeGroup)); ++ ++ // Add the qbs project file for this product ++ foreach (PBXFileReference *ref, xcodeProductGroup->addFiles(QStringList() << makePathRelativeTo(product.location().filePath(), xcodeProject.projectDirPath()), false, false)) { ++ if (!ref->path().startsWith(QLatin1Char('/'))) { ++ ref->setSourceTree(PBX::Group); ++ } ++ } ++ } ++ ++ QSet excludedSources; ++ ++ // Set up all the groups ++ foreach (const GroupData &groupData, product.groups()) ++ { ++ PBXGroup *group = xcodeProductGroup; ++ if (groupData.name() == product.name()) { ++ // This group has the same name as the product itself so we'll just add the files ++ // directly to the "product" group we created earlier instead of creating a new one ++ foreach (const XcodeBuildSettingMapping &setting, XcodeBuildSettingMapping::defaultBuildSettingsMap()) { ++ setting.applyToConfiguration(xcconfig, project, product, groupData); ++ } ++ ++ xcodeTarget->setProductName(xcodeTarget->buildSetting(QLatin1String("PRODUCT_NAME"), buildVariant(product)).toString()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROFILE"), product.profile()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_BUILD_VARIANT"), buildVariant(product)); ++ } else { ++ // Create a group for this group ++ group = PBXGroup::groupWithName(groupData.name(), xcodeProductGroup); ++ } ++ ++ // Add the source files to the group ++ group->setSourceTree(PBX::Group); ++ QList fileRefs; ++ if (!productFilesAlreadyAdded) ++ fileRefs = addGroupFiles(&xcodeProject, group, groupData); ++ ++ // If the group is enabled, then we'll actually BUILD them in addition to merely listing them ++ if (groupData.isEnabled()) { ++ foreach (PBXFileReference *ref, fileRefs) { ++ // Skip header files... wish there was a better way ++ if (ref->path().endsWith(QLatin1String(".h")) || ++ ref->path().endsWith(QLatin1String(".hh"))) { ++ continue; ++ } ++ ++ xcodeTarget->defaultSourceCodeBuildPhase()->addReference(ref); ++ } ++ } else { ++ foreach (PBXFileReference *ref, fileRefs) ++ excludedSources.insert(ref->path()); ++ } ++ } ++ ++ xcconfig->setBuildSetting(QLatin1String("EXCLUDED_SOURCE_FILE_NAMES"), flattenXcconfigList(QStringList(excludedSources.toList()))); ++ ++ QString sysroot = product.moduleProperties().getModuleProperty(QLatin1String("cpp"), QLatin1String("sysroot")).toString(); ++ QStringList frameworkPaths; ++ frameworkPaths += product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("frameworkPaths")); ++ frameworkPaths += product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("systemFrameworkPaths")); ++ frameworkPaths += sysroot + QLatin1String("/Library/Frameworks"); ++ frameworkPaths += sysroot + QLatin1String("/System/Library/Frameworks"); ++ frameworkPaths += QLatin1String("/Library/Frameworks"); ++ frameworkPaths += QLatin1String("/System/Library/Frameworks"); ++ const QStringList frameworkNames = product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("frameworks")); ++ const QStringList weakFrameworkNames = product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("weakFrameworks")); ++ ++ // TODO TODO TODO dynamicLibraries and weakDynamicLibraries? ++ ++ // A framework can't be strongly AND weakly linked... TODO: fail more gracefully ++ QBS_CHECK(frameworkNames.toSet().intersect(weakFrameworkNames.toSet()).isEmpty()); ++ const QStringList allFrameworkNames = QStringList() << frameworkNames << weakFrameworkNames; ++ ++ Q_FOREACH (const QString &frameworkName, allFrameworkNames) { ++ // Whether a full path equivalent for the framework was found ++ bool foundFramework = false; ++ ++ Q_FOREACH (const QString &frameworkPath, frameworkPaths) { ++ QString candidateFrameworkPath = QFileInfo(frameworkPath + QLatin1String("/") + frameworkName + QLatin1String(".framework")).canonicalFilePath(); ++ if (QFileInfo(candidateFrameworkPath).exists()) { ++ QBS_CHECK(!candidateFrameworkPath.isEmpty()); ++ ++ const QString sysrootedCandidateFrameworkPath = candidateFrameworkPath.mid(sysroot.size() + 1 /* for the path separator */); ++ ++ // Check for an existing reference (could happen if a framework is specified multiple times) ++ PBXFileReference *existingReference = Q_NULLPTR; ++ Q_FOREACH (PBXReference *ref, xcodeProject.frameworksRefGroup()->children()) { ++ if (PBXFileReference *fileRef = dynamic_cast(ref)) { ++ if ((fileRef->sourceTree() == PBX::SdkRoot && fileRef->path() == sysrootedCandidateFrameworkPath) || ++ (fileRef->sourceTree() == PBX::Absolute && fileRef->path() == candidateFrameworkPath)) { ++ existingReference = fileRef; ++ break; ++ } ++ } ++ } ++ ++ QList refs; ++ ++ // Create a new file reference since one wasn't already found in the Frameworks group ++ if (!existingReference) { ++ refs = xcodeProject.frameworksRefGroup()->addFiles(QStringList() << candidateFrameworkPath, false, false); ++ Q_FOREACH (PBXFileReference *frameworkRef, refs) { ++ if (!sysroot.isEmpty() && frameworkRef->path().startsWith(sysroot)) { ++ frameworkRef->setPath(sysrootedCandidateFrameworkPath); ++ frameworkRef->setSourceTree(PBX::SdkRoot); ++ } ++ } ++ } else { ++ refs.append(existingReference); ++ } ++ ++ // Add the framework to the Frameworks build phase ++ Q_FOREACH (PBXFileReference *frameworkRef, refs) { ++ xcodeTarget->defaultFrameworksBuildPhase()->addReference(frameworkRef); ++ } ++ ++ foundFramework = true; ++ break; ++ } ++ } ++ ++ // Not a normal case, and will cause a build failure, but is better than silently ignoring it... ++ if (!foundFramework) { ++ Q_FOREACH (PBXFileReference *frameworkRef, xcodeProject.frameworksRefGroup()->addFiles(QStringList() << frameworkName + QLatin1String(".framework"), false, false)) { ++ QBS_CHECK(!frameworkRef->path().isEmpty()); ++ if (PBXBuildFile *frameworkBuildRef = xcodeTarget->defaultFrameworksBuildPhase()->addReference(frameworkRef)) { ++ const bool isWeaklyLinked = weakFrameworkNames.contains(frameworkName); ++ frameworkBuildRef->setWeakLinkedLibrary(isWeaklyLinked); ++ } ++ } ++ } ++ } ++ ++ // Add a reference for the main target artifact in root "Products" group ++ TargetArtifact artifact = runnableOrPrimaryTargetArtifactForProduct(product); ++ QString realArtifactPath = installedFilePathForTargetArtifact(project, product, installOptions, artifact); ++ if (!realArtifactPath.isEmpty()) { ++ // "simple" generator ++ if (!xcodeLegacyTarget) { ++ // Chop off the Qbs build dir from the artifact path, because they will actually end ++ // up in Xcode's build directory, not the build directory Qbs would use ++ const QString buildDirectory = project.projectData().buildDirectory(); ++ if (realArtifactPath.startsWith(buildDirectory)) ++ realArtifactPath.remove(0, buildDirectory.size()); ++ ++ if (realArtifactPath.startsWith(QLatin1Char('/'))) ++ realArtifactPath.remove(0, 1); ++ } else { ++ realArtifactPath = xcodeInsertPlaceholdersInValue(project, realArtifactPath).toString(); ++ } ++ ++ QBS_CHECK(!realArtifactPath.isEmpty()); ++ ++ QList refs = xcodeProject.productRefGroup()->addFiles(QStringList() << realArtifactPath, false, false); ++ foreach (PBXFileReference *ref, refs) ++ { ++ if (!xcodeLegacyTarget) { ++ ref->setSourceTree(PBX::BuildProductDir); ++ ++ // This causes Xcode to force the file reference to a relative path relative to the build products dir ++ // Therefore, we must symlink artifacts in the Xcode build directory to the ones in the qbs build directory ++ // NOTE: This will crash Xcode if set for a PBXLegacyTarget (claiming an empty string global hex ID) ++ xcodeTarget->setProductReference(ref); ++ } ++ ++ // TODO: Technically this should be composed of other variables based on the product type ++ // $(WRAPPER_NAME) for bundles, $(EXECUTABLE_NAME) otherwise? ++ xcconfig->setBuildSetting(QLatin1String("FULL_PRODUCT_NAME"), QFileInfo(realArtifactPath).fileName()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_TARGET_PATH"), xcodeInsertPlaceholdersInValue(project, realArtifactPath)); ++ } ++ } ++ ++ xcodeProject.addTarget(xcodeTarget); ++} ++ ++QList XcodeGenerator::addGroupFiles(PBXProject *xcodeProject, PBXGroup *xcodeGroup, const qbs::GroupData &groupData) ++{ ++ QStringList relativeFilePaths; ++ foreach (QString filePath, groupData.allFilePaths()) { ++ relativeFilePaths += makePathRelativeTo(filePath, xcodeProject->projectDirPath()); ++ } ++ ++ // Add all the files in the group as file references so they show up in the project tree ++ QList fileRefs = xcodeGroup->addFiles(relativeFilePaths, false, false); ++ foreach (PBXFileReference *ref, fileRefs) { ++ if (!ref->path().startsWith(QLatin1Char('/'))) { ++ ref->setSourceTree(PBX::Group); ++ } ++ } ++ ++ return fileRefs; ++} ++ ++PBXTarget *XcodeGenerator::xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product) ++{ ++ Q_UNUSED(xcodeProject); ++ PBXTarget *target = xcodeProject->targetNamed(product.name()); ++ ++ // Native targets without a type won't build, so use a legacy target in this case ++ if (!target && xcodeProductType(product) == 0) { ++ return new PBXLegacyTarget(xcodeProject); ++ } ++ ++ return target; +} + +/*! @@ -4510,36 +5518,85 @@ index 0000000..ea53d0e + */ +PBX::PBXProductType XcodeGenerator::xcodeProductType(const ProductData &product) +{ -+ const GroupData groupData = findRootGroup(product); -+ QStringList productType = groupData.properties().getProperty(QLatin1String("type")).toStringList(); ++ const QStringList productType = product.type(); ++ const bool isBundle = product.moduleProperties().getModuleProperty(QLatin1String("bundle"), QLatin1String("isBundle")).toBool(); + -+ if (productType.contains(QLatin1String("applicationbundle"))) -+ return PBX::Application; + if (productType.contains(QLatin1String("application"))) -+ return PBX::Tool; ++ return isBundle ? PBX::Application : PBX::Tool; + if (productType.contains(QLatin1String("dynamiclibrary"))) -+ return PBX::LibraryDynamic; ++ return isBundle ? PBX::Framework : PBX::LibraryDynamic; + if (productType.contains(QLatin1String("staticlibrary"))) -+ return PBX::LibraryStatic; -+ if (productType.contains(QLatin1String("frameworkbundle"))) -+ return PBX::Framework; ++ return isBundle ? PBX::StaticFramework : PBX::LibraryStatic; + if (productType.contains(QLatin1String("bundle"))) + return PBX::Bundle; + + return (PBX::PBXProductType)0; +} + ++static QString _xcodeConfigurationName(QString variantName, const QString &profileName, bool includeProfileName) ++{ ++ QBS_CHECK(!variantName.isEmpty()); ++ variantName.replace(0, 1, variantName[0].toUpper()); ++ if (includeProfileName) { ++ variantName += QLatin1String("_") + profileName; ++ } ++ return variantName; +} -diff --git a/src/plugins/generator/xcode/xcodegenerator.h b/src/plugins/generator/xcode/xcodegenerator.h ++ ++QString XcodeGenerator::xcodeConfigurationName(const Project &project) ++{ ++ return _xcodeConfigurationName(buildVariant(project), project.profile(), m_multipleProfiles); ++} ++ ++QString XcodeGenerator::xcodeConfigurationName(const ProductData &product) ++{ ++ return _xcodeConfigurationName(buildVariant(product), product.profile(), m_multipleProfiles); ++} ++ ++/*! ++ * \brief If the value is a path or list of paths, ++ * returns it with the prefixes of paths replaced by $(SRCROOT), $(PROJECT_FILE_PATH)/.., etc., ++ * as appropriate. ++ * If the value is not a path, returns the original value unmodified. ++ */ ++QVariant XcodeGenerator::xcodeInsertPlaceholdersInValue(const qbs::Project &project, const QVariant &variant) ++{ ++ if (variant.type() == QVariant::List) { ++ QVariantList list; ++ foreach (const QVariant &v, variant.toList()) ++ list.append(xcodeInsertPlaceholdersInValue(project, v)); ++ return list; ++ } ++ ++ // If the value is a path and it begins with the value of SRCROOT or PROJECT_FILE_PATH/.., replace it ++ if (variant.type() == QVariant::String) { ++ // This should end up being the same as PBXProject::projectDirPath(), but if projectDirPath ++ // is the empty string (for example, when the xcodeproj resides in the qbs source directory, ++ // things would break, so prefer the Qbs value (plus, it saves a parameter to this function) ++ const QDir sourceDirectory = QFileInfo(project.projectData().location().filePath()).absolutePath(); ++ if (variant.toString().startsWith(sourceDirectory.absolutePath())) ++ return variant.toString().replace(0, sourceDirectory.absolutePath().size(), QLatin1String("$(SRCROOT)")); ++ ++ const QDir buildDirectory(project.projectData().buildDirectory()); ++ Q_ASSERT(buildDirectory.isAbsolute() && buildDirectory.exists()); ++ if (variant.toString().startsWith(buildDirectory.absolutePath())) ++ return variant.toString().replace(0, buildDirectory.absolutePath().size(), QLatin1String("$(QBS_BUILD_DIRECTORY)/$(QBS_PROFILE)-$(QBS_BUILD_VARIANT)")); ++ } ++ ++ return variant; ++} ++ ++} +diff --git a/src/lib/corelib/generators/xcode/xcodegenerator.h b/src/lib/corelib/generators/xcode/xcodegenerator.h new file mode 100644 -index 0000000..e2bc712 +index 0000000..765174a --- /dev/null -+++ b/src/plugins/generator/xcode/xcodegenerator.h -@@ -0,0 +1,53 @@ ++++ b/src/lib/corelib/generators/xcode/xcodegenerator.h +@@ -0,0 +1,81 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4569,36 +5626,64 @@ index 0000000..e2bc712 +#ifndef QBS_XCODEGENERATOR_H +#define QBS_XCODEGENERATOR_H + -+#include ++#include ++#include +#include "pbxproducttype.h" + ++#include ++ ++class PBXFileReference; ++class PBXGroup; ++class PBXProject; ++class PBXTarget; ++ +namespace qbs { + +class ProductData; ++struct XcodeBuildSettingMapping; + -+class XcodeGenerator : public qbs::Generator ++class XcodeGenerator : public qbs::ProjectGenerator +{ ++public: ++ virtual void generate(const InstallOptions &installOptions); ++ virtual void addProjectRecursive(const Project &project, const ProjectData &projectData, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup); ++ virtual void addProduct(const Project &project, const ProductData &product, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup); ++ virtual QList addGroupFiles(PBXProject *xcodeProject, PBXGroup *xcodeGroup, const qbs::GroupData &groupData); ++ ++ virtual PBXTarget *xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product); ++ ++ QString xcodeConfigurationName(const Project &project); ++ QString xcodeConfigurationName(const ProductData &product); ++ ++ static QVariant xcodeInsertPlaceholdersInValue(const qbs::Project &project, const QVariant &variant); ++ ++ static PBX::PBXProductType xcodeProductType(const ProductData &product); ++ +protected: + XcodeGenerator(); + -+public: -+ static QString xcodeExecutablePrefix(const ProductData &product); -+ static PBX::PBXProductType xcodeProductType(const ProductData &product); ++ // TODO: Move to base class ++ virtual void setupGenerator(); ++ bool m_multipleProfiles; ++ QString m_projectName; ++ QFileInfo m_qbsProjectFile; ++ QDir m_baseBuildDirectory; ++ QMap m_productGroups; +}; + +} + +#endif // QBS_XCODEGENERATOR_H -diff --git a/src/plugins/generator/xcode/xcodenativegenerator.cpp b/src/plugins/generator/xcode/xcodenativegenerator.cpp +diff --git a/src/lib/corelib/generators/xcode/xcodenativegenerator.cpp b/src/lib/corelib/generators/xcode/xcodenativegenerator.cpp new file mode 100644 -index 0000000..ef6f0f3 +index 0000000..7654b8f --- /dev/null -+++ b/src/plugins/generator/xcode/xcodenativegenerator.cpp -@@ -0,0 +1,136 @@ ++++ b/src/lib/corelib/generators/xcode/xcodenativegenerator.cpp +@@ -0,0 +1,58 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4627,14 +5712,7 @@ index 0000000..ef6f0f3 + +#include "xcodenativegenerator.h" + -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include ++#include "pbx.h" + +namespace qbs { + @@ -4649,98 +5727,27 @@ index 0000000..ef6f0f3 + return QLatin1String("xcode"); +} + -+void XcodeNativeGenerator::generate(const Project &project) ++void XcodeNativeGenerator::generate(const InstallOptions &installOptions) +{ -+ const QString buildDirectory = project.projectData().buildDirectory(); -+ QDir dir(buildDirectory); -+ Q_ASSERT(dir.isAbsolute() && dir.exists()); ++ XcodeGenerator::generate(installOptions); ++} + -+ const QString &projectFileName = project.projectData().name() + QLatin1String(".xcodeproj"); -+ if (!dir.cd(projectFileName)) -+ if (!dir.mkdir(projectFileName) || !dir.cd(projectFileName)) -+ throw ErrorInfo(Tr::tr("failed to make project directory")); -+ -+ PBXProject xcodeProject(dir.absoluteFilePath(QLatin1String("project.pbxproj"))); -+ xcodeProject.setName(project.projectData().name()); -+ xcodeProject.setProjectDirPath(QFileInfo(project.projectData().location().filePath()).path()); -+ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); -+ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); -+ -+ // Add all the Qbs products as Xcode targets -+ foreach (const ProductData &product, project.projectData().allProducts()) -+ { -+ PBXLegacyTarget *xcodeTarget = new PBXLegacyTarget(&xcodeProject); -+ xcodeTarget->setName(product.name()); -+ xcodeTarget->setProductType(xcodeProductType(product)); -+ xcodeTarget->setBuildToolPath(QCoreApplication::applicationFilePath()); // TODO: Probably not a good idea... -+ xcodeTarget->setBuildArgumentsString(QLatin1String("$(ACTION) -f \"") + project.projectData().location().filePath() + QLatin1String("\" -p \"") + product.name() + QLatin1String("\"")); -+ xcodeTarget->setBuildWorkingDirectory(xcodeProject.projectDirPath()); -+ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); -+ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); -+ -+ // Create a root PBX group for the target's files and other groups -+ PBXGroup *xcodeProductGroup = PBXGroup::groupWithName(product.name(), xcodeProject.rootGroup()); -+ -+ // Set up all the groups -+ foreach (const GroupData &groupData, product.groups()) -+ { -+ PBXGroup *group = xcodeProductGroup; -+ if (groupData.name() == product.name()) { -+ // This group has the same name as the product itself so we'll just add the files -+ // directly to the "product" group we created earlier instead of creating a new one -+ //populateXcodeTargetProperties(xcodeTarget, product, groupData); -+ } else { -+ // Create a group for this group -+ group = PBXGroup::groupWithName(groupData.name(), xcodeProductGroup); -+ } -+ -+ // Add the source files to the group -+ group->setSourceTree(PBX::Group); -+ //populateXcodeGroup(&xcodeProject, group, groupData, xcodeTarget); -+ } -+ -+ // TODO: find a way to decide which target artifact becomes the target's product reference -+ Q_ASSERT(product.targetArtifacts().size() <= 1); -+ -+ // Add references for each target artifact in root "Products" group -+ foreach (const TargetArtifact &artifact, product.targetArtifacts()) -+ { -+ QList refs = xcodeProject.productRefGroup()->addFiles(QStringList() << artifact.filePath(), false, false); -+ foreach (PBXFileReference *ref, refs) -+ { -+ ref->setSourceTree(PBX::BuildProductDir); -+ -+ // reason for the assert <= 1 -+ xcodeTarget->setProductReference(ref); -+ } -+ } -+ -+ xcodeProject.addTarget(xcodeTarget); -+ } -+ -+ // TODO: For some reason this property confuses Xcode. Seems to indicate the path that relative -+ // paths are resolved against, but maybe it's referring to the .xcodeproj? -+ // We'll use the root group instead to get what we want -+ xcodeProject.rootGroup()->setPath(xcodeProject.projectDirPath()); -+ xcodeProject.setProjectDirPath(""); -+ -+ if (xcodeProject.writeToFileSystemProjectFile(true, true, true)) -+ qDebug() << "Generated" << qPrintable(projectFileName); -+ else -+ throw ErrorInfo(Tr::tr("Failed to generate %1").arg(projectFileName)); ++PBXTarget *XcodeNativeGenerator::xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product) ++{ ++ return XcodeGenerator::xcodeTargetForProduct(xcodeProject, product) ?: new PBXLegacyTarget(xcodeProject); +} + +} -diff --git a/src/plugins/generator/xcode/xcodenativegenerator.h b/src/plugins/generator/xcode/xcodenativegenerator.h +diff --git a/src/lib/corelib/generators/xcode/xcodenativegenerator.h b/src/lib/corelib/generators/xcode/xcodenativegenerator.h new file mode 100644 -index 0000000..d964b94 +index 0000000..a04f8df --- /dev/null -+++ b/src/plugins/generator/xcode/xcodenativegenerator.h -@@ -0,0 +1,53 @@ ++++ b/src/lib/corelib/generators/xcode/xcodenativegenerator.h +@@ -0,0 +1,52 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4775,8 +5782,6 @@ index 0000000..d964b94 + +namespace qbs { + -+class Project; -+ +class XcodeNativeGenerator : public XcodeGenerator +{ +public: @@ -4784,22 +5789,23 @@ index 0000000..d964b94 + + QString generatorName() const; + -+ void generate(const Project &project); ++ void generate(const InstallOptions &installOptions); ++ PBXTarget *xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product); +}; + +} + +#endif // QBS_XCODENATIVEGENERATOR_H -diff --git a/src/plugins/generator/xcode/xcodesimplegenerator.cpp b/src/plugins/generator/xcode/xcodesimplegenerator.cpp +diff --git a/src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp b/src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp new file mode 100644 -index 0000000..7bd9b05 +index 0000000..e1bceca --- /dev/null -+++ b/src/plugins/generator/xcode/xcodesimplegenerator.cpp -@@ -0,0 +1,275 @@ ++++ b/src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp +@@ -0,0 +1,58 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -4828,35 +5834,12 @@ index 0000000..7bd9b05 + +#include "xcodesimplegenerator.h" + -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include ++#include "pbx.h" + +namespace qbs { + +using namespace Internal; + -+struct XcodeSetting { -+ QString xcodeName; -+ QString qbsModule; -+ QString qbsName; -+ bool isList; -+ -+ XcodeSetting(const QString &xcodeName, const QString &qbsModule, -+ const QString &qbsName, bool isList); -+}; -+ -+XcodeSetting::XcodeSetting(const QString &xcodeName, const QString &qbsModule, -+ const QString &qbsName, bool isList = false) -+ : xcodeName(xcodeName), qbsModule(qbsModule), qbsName(qbsName), isList(isList) -+{ -+} -+ +XcodeSimpleGenerator::XcodeSimpleGenerator() +{ +} @@ -4866,221 +5849,27 @@ index 0000000..7bd9b05 + return QLatin1String("xcode-simple"); +} + -+QList xcodeSettingsMap() ++void XcodeSimpleGenerator::generate(const InstallOptions &installOptions) +{ -+ const QString cpp = QLatin1String("cpp"); -+ -+ QList settings; -+ settings += XcodeSetting(QLatin1String("GCC_PREPROCESSOR_DEFINITIONS"), cpp, QLatin1String("defines"), true); -+ settings += XcodeSetting(QLatin1String("HEADER_SEARCH_PATHS"), cpp, QLatin1String("includePaths"), true); -+ settings += XcodeSetting(QLatin1String("MACOSX_DEPLOYMENT_TARGET"), cpp, QLatin1String("minimumOsxVersion")); -+ settings += XcodeSetting(QLatin1String("OTHER_LDFLAGS"), cpp, QLatin1String("linkerFlags"), true); -+ return settings; ++ XcodeGenerator::generate(installOptions); +} + -+static void populateXcodeTargetProperties(PBXNativeTarget *xcodeTarget, const qbs::ProductData &productData, const qbs::GroupData &groupData) ++PBXTarget *XcodeSimpleGenerator::xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product) +{ -+ // Get the "target name" (Qbs terminology) and use it to set the "product name" (Xcode terminology) -+ xcodeTarget->setProductName(groupData.properties().getProperty(QLatin1String("targetName")).toString()); -+ if (xcodeTarget->productName().isEmpty()) -+ xcodeTarget->setProductName(xcodeTarget->name()); -+ xcodeTarget->setBuildSetting(QLatin1String("PRODUCT_NAME"), xcodeTarget->productName()); -+ -+ QString exePrefix = XcodeGenerator::xcodeExecutablePrefix(productData); -+ if (!exePrefix.isEmpty()) -+ xcodeTarget->setBuildSetting(QLatin1String("EXECUTABLE_PREFIX"), exePrefix); -+ -+ QString architecture = groupData.properties().getModuleProperty(QLatin1String("qbs"), QLatin1String("architecture")).toString(); -+ if (!architecture.isEmpty()) { -+ QString arch = architecture; -+ if (arch == QLatin1String("x86")) -+ arch = QLatin1String("i386"); -+ -+ xcodeTarget->setBuildSetting(QLatin1String("ARCHS"), arch); -+ } -+ -+ QString sysroot = groupData.properties().getModuleProperty(QLatin1String("qbs"), QLatin1String("sysroot")).toString(); -+ if (!sysroot.isEmpty()) { -+ xcodeTarget->setBuildSetting(QLatin1String("SDKROOT"), sysroot); -+ } -+ -+ QStringList platform = groupData.properties().getModulePropertiesAsStringList(QLatin1String("qbs"), QLatin1String("targetOS")); -+ if (platform.contains(QLatin1String("osx"))) { -+ if (sysroot.isEmpty()) -+ xcodeTarget->setBuildSetting(QLatin1String("SDKROOT"), QLatin1String("macosx")); -+ xcodeTarget->setBuildSetting(QLatin1String("SUPPORTED_PLATFORMS"), QStringList() << QLatin1String("macosx")); -+ } else if (platform.contains(QLatin1String("ios"))) { -+ if (sysroot.isEmpty()) -+ xcodeTarget->setBuildSetting(QLatin1String("SDKROOT"), QLatin1String("iphoneos")); -+ xcodeTarget->setBuildSetting(QLatin1String("SUPPORTED_PLATFORMS"), QStringList() << QLatin1String("iphonesimulator") << QLatin1String("iphoneos")); -+ } else { -+ throw ErrorInfo(Tr::tr("Unsupported platform for Xcode project: [%1]").arg(platform.join(QLatin1String(",")))); -+ } -+ -+ foreach (const XcodeSetting &setting, xcodeSettingsMap()) { -+ if (setting.isList) { -+ QVariantList list = groupData.properties().getModuleProperties(setting.qbsModule, setting.qbsName); -+ if (!list.isEmpty()) { -+ const QString inheritProperty = QLatin1String("$(") + setting.xcodeName + QLatin1String(")"); -+ list.append(inheritProperty); -+ xcodeTarget->setBuildSetting(setting.xcodeName, list); -+ } -+ } else { -+ const QVariant variant = groupData.properties().getModuleProperty(setting.qbsModule, setting.qbsName); -+ if (!variant.isNull()) { -+ xcodeTarget->setBuildSetting(setting.xcodeName, variant); -+ } -+ } -+ } -+} -+ -+static void populateXcodeGroup(PBXProject *xcodeProject, PBXGroup *xcodeGroup, const qbs::GroupData &groupData, PBXTarget *xcodeTarget) -+{ -+ QString rootPath = xcodeProject->projectDirPath(); -+ if (!rootPath.endsWith(QLatin1Char('/'))) -+ rootPath += QLatin1Char('/'); -+ -+ QStringList relativeFilePaths; -+ foreach (QString filePath, groupData.allFilePaths()) { -+ if (filePath.startsWith(rootPath)) -+ filePath.remove(0, rootPath.size()); -+ relativeFilePaths += filePath; -+ } -+ -+ // Add all the files in the group as file references so they show up in the project tree -+ QList fileRefs = xcodeGroup->addFiles(relativeFilePaths, false, false); -+ foreach (PBXFileReference *ref, fileRefs) { -+ if (!ref->path().startsWith(QLatin1Char('/'))) { -+ ref->setSourceTree(PBX::Group); -+ } -+ } -+ -+ // If the group is enabled, then we'll actually BUILD them in addition to merely listing them -+ if (groupData.isEnabled()) -+ { -+ foreach (PBXFileReference *ref, fileRefs) -+ xcodeTarget->defaultSourceCodeBuildPhase()->addReference(ref); -+ } -+ -+ //group->setPath(groupData.properties().getProperty(QLatin1String("prefix")).toString()); -+ //qDebug() << groupData.properties().allProperties(); -+} -+ -+void XcodeSimpleGenerator::generate(const Project &project) -+{ -+ const QString buildDirectory = project.projectData().buildDirectory(); -+ QDir dir(buildDirectory); -+ Q_ASSERT(dir.isAbsolute() && dir.exists()); -+ -+ const QString &projectFileName = project.projectData().name() + QLatin1String(".xcodeproj"); -+ if (!dir.cd(projectFileName)) -+ if (!dir.mkdir(projectFileName) || !dir.cd(projectFileName)) -+ throw ErrorInfo(Tr::tr("failed to make project directory")); -+ -+ PBXProject xcodeProject(dir.absoluteFilePath(QLatin1String("project.pbxproj"))); -+ xcodeProject.setName(project.projectData().name()); -+ xcodeProject.setProjectDirPath(project.projectData().location().filePath()); -+ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); -+ xcodeProject.buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); -+ -+ // Add all the Qbs products as Xcode targets -+ foreach (const ProductData &product, project.projectData().allProducts()) -+ { -+ PBXNativeTarget *xcodeTarget = new PBXNativeTarget(&xcodeProject); -+ xcodeTarget->setName(product.name()); -+ xcodeTarget->setProductType(xcodeProductType(product)); -+ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Debug")); -+ xcodeTarget->buildConfigurationList()->addBuildConfiguration(QLatin1String("Release")); -+ -+ // Create a root PBX group for the target's files and other groups -+ PBXGroup *xcodeProductGroup = PBXGroup::groupWithName(product.name(), xcodeProject.rootGroup()); -+ -+ // Set up all the groups -+ foreach (const GroupData &groupData, product.groups()) -+ { -+ PBXGroup *group = xcodeProductGroup; -+ if (groupData.name() == product.name()) { -+ // This group has the same name as the product itself so we'll just add the files -+ // directly to the "product" group we created earlier instead of creating a new one -+ populateXcodeTargetProperties(xcodeTarget, product, groupData); -+ } else { -+ // Create a group for this group -+ group = PBXGroup::groupWithName(groupData.name(), xcodeProductGroup); -+ } -+ -+ // Add the source files to the group -+ group->setSourceTree(PBX::Group); -+ populateXcodeGroup(&xcodeProject, group, groupData, xcodeTarget); -+ } -+ -+ // TODO: find a way to decide which target artifact becomes the target's product reference -+ Q_ASSERT(product.targetArtifacts().size() <= 1); -+ -+ // Add references for each target artifact in root "Products" group -+ foreach (const TargetArtifact &artifact, product.targetArtifacts()) -+ { -+ // Chop off the Qbs build dir from the artifact path, because they will actually end -+ // up in Xcode's build directory, not the build directory Qbs would use -+ QString realArtifactPath = artifact.filePath(); -+ if (realArtifactPath.startsWith(buildDirectory)) -+ realArtifactPath.remove(0, buildDirectory.size()); -+ -+ if (realArtifactPath.startsWith(QLatin1Char('/'))) -+ realArtifactPath.remove(0, 1); -+ -+ QList refs = xcodeProject.productRefGroup()->addFiles(QStringList() << realArtifactPath, false, false); -+ foreach (PBXFileReference *ref, refs) -+ { -+ ref->setSourceTree(PBX::BuildProductDir); -+ -+ // reason for the assert <= 1 -+ xcodeTarget->setProductReference(ref); -+ } -+ } -+ -+ xcodeProject.addTarget(xcodeTarget); -+ } -+ -+ QMapIterator i(project.projectConfiguration()); -+ while (i.hasNext()) -+ { -+ i.next(); -+ QString moduleName = i.key(); -+ QVariantMap moduleProperties = i.value().toMap(); -+ -+ QMapIterator j(moduleProperties); -+ while (j.hasNext()) -+ { -+ j.next(); -+ QString propertyName = j.key(); -+ QVariant propertyValue = j.value(); -+ // Do stuff with project properties... -+ } -+ } -+ -+ // TODO: For some reason this property confuses Xcode. Seems to indicate the path that relative -+ // paths are resolved against, but maybe it's referring to the .xcodeproj? -+ // We'll use the root group instead to get what we want -+ xcodeProject.rootGroup()->setPath(xcodeProject.projectDirPath()); -+ xcodeProject.setProjectDirPath(""); -+ -+ if (xcodeProject.writeToFileSystemProjectFile(true, true, true)) -+ qDebug() << "Generated" << qPrintable(projectFileName); -+ else -+ throw ErrorInfo(Tr::tr("Failed to generate %1").arg(projectFileName)); ++ return XcodeGenerator::xcodeTargetForProduct(xcodeProject, product) ?: new PBXNativeTarget(xcodeProject); +} + +} -diff --git a/src/plugins/generator/xcode/xcodesimplegenerator.h b/src/plugins/generator/xcode/xcodesimplegenerator.h +diff --git a/src/lib/corelib/generators/xcode/xcodesimplegenerator.h b/src/lib/corelib/generators/xcode/xcodesimplegenerator.h new file mode 100644 -index 0000000..e5cce26 +index 0000000..66f6419 --- /dev/null -+++ b/src/plugins/generator/xcode/xcodesimplegenerator.h -@@ -0,0 +1,53 @@ ++++ b/src/lib/corelib/generators/xcode/xcodesimplegenerator.h +@@ -0,0 +1,52 @@ +/**************************************************************************** +** -+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -+** Copyright (C) 2014 Petroules Corporation. ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. @@ -5115,8 +5904,6 @@ index 0000000..e5cce26 + +namespace qbs { + -+class Project; -+ +class XcodeSimpleGenerator : public XcodeGenerator +{ +public: @@ -5124,20 +5911,457 @@ index 0000000..e5cce26 + + QString generatorName() const; + -+ void generate(const Project &project); ++ void generate(const InstallOptions &installOptions); ++ PBXTarget *xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product); +}; + +} + +#endif // QBS_XCODESIMPLEGENERATOR_H -diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro -index d3823ae..9fe2e6b 100644 ---- a/src/plugins/plugins.pro -+++ b/src/plugins/plugins.pro -@@ -1,2 +1,2 @@ - TEMPLATE = subdirs --SUBDIRS = scanner -+SUBDIRS = generator scanner +diff --git a/src/lib/corelib/generators/xcode/xcscheme.cpp b/src/lib/corelib/generators/xcode/xcscheme.cpp +new file mode 100644 +index 0000000..dbcb994 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcscheme.cpp +@@ -0,0 +1,179 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxobject.h" ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "xcscheme.h" ++#include ++#include ++#include ++ ++static const QString yes = QLatin1String("YES"); ++static const QString no = QLatin1String("NO"); ++ ++class XCSchemePrivate ++{ ++public: ++ XCSchemePrivate(); ++ PBXProject *project; ++ PBXTarget *target; ++ bool parallelizeBuildables; ++ bool buildImplicitDependencies; ++ QString customExecutableFilePath; ++}; ++ ++XCSchemePrivate::XCSchemePrivate() ++ : project() ++ , target() ++ , parallelizeBuildables(true) ++ , buildImplicitDependencies(true) ++{ ++} ++ ++XCScheme::XCScheme(QObject *parent) : ++ QObject(parent), d(new XCSchemePrivate) ++{ ++} ++ ++XCScheme::~XCScheme() ++{ ++ delete d; ++} ++ ++PBXProject *XCScheme::project() const ++{ ++ return d->project; ++} ++ ++void XCScheme::setProject(PBXProject *project) ++{ ++ d->project = project; ++} ++ ++PBXTarget *XCScheme::target() const ++{ ++ return d->target; ++} ++ ++void XCScheme::setTarget(PBXTarget *target) ++{ ++ d->target = target; ++} ++ ++bool XCScheme::parallelizeBuildables() const ++{ ++ return d->parallelizeBuildables; ++} ++ ++void XCScheme::setParallelizeBuildables(bool parallelize) ++{ ++ d->parallelizeBuildables = parallelize; ++} ++ ++bool XCScheme::buildImplicitDependencies() const ++{ ++ return d->buildImplicitDependencies; ++} ++ ++void XCScheme::setBuildImplicitDependencies(bool build) ++{ ++ d->buildImplicitDependencies = build; ++} ++ ++QString XCScheme::customExecutableFilePath() const ++{ ++ return d->customExecutableFilePath; ++} ++ ++void XCScheme::setCustomExecutableFilePath(const QString &customExecutableFilePath) ++{ ++ d->customExecutableFilePath = customExecutableFilePath; ++} ++ ++bool XCScheme::serialize(const QString &filePath) ++{ ++ QFile file(filePath); ++ if (file.open(QIODevice::WriteOnly)) { ++ QXmlStreamWriter writer(&file); ++ writer.setAutoFormatting(true); ++ writer.setAutoFormattingIndent(2); ++ ++ writer.writeStartDocument(); ++ writer.writeStartElement(QLatin1String("Scheme")); ++ ++ // now the "actions" ++ writer.writeStartElement(QLatin1String("BuildAction")); ++ writer.writeAttribute(QLatin1String("parallelizeBuildables"), d->parallelizeBuildables ? yes : no); ++ writer.writeAttribute(QLatin1String("buildImplicitDependencies"), d->buildImplicitDependencies ? yes : no); ++ writer.writeStartElement(QLatin1String("BuildActionEntries")); ++ writer.writeStartElement(QLatin1String("BuildActionEntry")); ++ writer.writeAttribute(QLatin1String("buildForTesting"), yes); ++ writer.writeAttribute(QLatin1String("buildForRunning"), yes); ++ writer.writeAttribute(QLatin1String("buildForProfiling"), yes); ++ writer.writeAttribute(QLatin1String("buildForArchiving"), yes); ++ writer.writeAttribute(QLatin1String("buildForAnalyzing"), yes); ++ writer.writeStartElement(QLatin1String("BuildableReference")); ++ writer.writeAttribute(QLatin1String("BuildableIdentifier"), QLatin1String("primary")); ++ ++ QByteArray bytes; ++ bytes.append(QLatin1String("BlueprintIdentifier:")); ++ bytes.append(filePath); ++ ++ writer.writeAttribute(QLatin1String("BlueprintIdentifier"), PBXObject::createIdentifier(bytes)); ++ if (d->target) { ++ writer.writeAttribute(QLatin1String("BuildableName"), d->target->name()); ++ writer.writeAttribute(QLatin1String("BlueprintName"), d->target->name()); ++ } ++ if (d->project) { ++ const QString relativePath = QDir(d->project->projectDirPath()).relativeFilePath(d->project->projectWrapperPath()); ++ writer.writeAttribute(QLatin1String("ReferencedContainer"), QString(QLatin1String("container:%1")).arg(relativePath)); ++ } ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ ++ if (!d->customExecutableFilePath.isEmpty()) { ++ writer.writeStartElement(QLatin1String("LaunchAction")); ++ writer.writeStartElement(QLatin1String("PathRunnable")); ++ writer.writeAttribute(QLatin1String("FilePath"), d->customExecutableFilePath); ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ } ++ ++ writer.writeEndElement(); ++ writer.writeEndDocument(); ++ ++ return file.error() == QFile::NoError; ++ } ++ ++ return false; ++} +diff --git a/src/lib/corelib/generators/xcode/xcscheme.h b/src/lib/corelib/generators/xcode/xcscheme.h +new file mode 100644 +index 0000000..270cca3 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcscheme.h +@@ -0,0 +1,69 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCSCHEME_H ++#define XCSCHEME_H ++ ++#include ++ ++class PBXProject; ++class PBXTarget; ++ ++class XCSchemePrivate; ++ ++class XCScheme : public QObject ++{ ++ Q_OBJECT ++public: ++ explicit XCScheme(QObject *parent = 0); ++ virtual ~XCScheme(); ++ ++ PBXProject *project() const; ++ void setProject(PBXProject *project); ++ ++ PBXTarget *target() const; ++ void setTarget(PBXTarget *target); ++ ++ bool parallelizeBuildables() const; ++ void setParallelizeBuildables(bool parallelize); ++ ++ bool buildImplicitDependencies() const; ++ void setBuildImplicitDependencies(bool build); ++ ++ QString customExecutableFilePath() const; ++ void setCustomExecutableFilePath(const QString &customExecutableFilePath); ++ ++ bool serialize(const QString &filePath); ++ ++private: ++ XCSchemePrivate *d; ++}; ++ ++#endif // XCSCHEME_H +diff --git a/src/lib/corelib/generators/xcode/xcsettings.cpp b/src/lib/corelib/generators/xcode/xcsettings.cpp +new file mode 100644 +index 0000000..d34c86e +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcsettings.cpp +@@ -0,0 +1,95 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcsettings.h" ++ ++#include ++#include ++#include ++ ++class XCSettingsPrivate { ++public: ++ XCSettingsPrivate() ++ : autocreateSchemes() ++ { ++ } ++ ++ bool autocreateSchemes; ++}; ++ ++XCSettings::XCSettings(QObject *parent) ++ : QObject(parent) ++ , d(new XCSettingsPrivate) ++{ ++} ++ ++XCSettings::~XCSettings() ++{ ++ delete d; ++} ++ ++bool XCSettings::autocreateSchemes() const ++{ ++ return d->autocreateSchemes; ++} ++ ++void XCSettings::setAutocreateSchemes(bool autocreateSchemes) ++{ ++ d->autocreateSchemes = autocreateSchemes; ++} ++ ++bool XCSettings::serialize(const QString &filePath) ++{ ++ QFile file(filePath); ++ if (file.open(QIODevice::WriteOnly)) { ++ QXmlStreamWriter writer(&file); ++ writer.setAutoFormatting(true); ++ writer.setAutoFormattingIndent(-1); ++ ++ writer.writeStartDocument(); ++ writer.writeDTD(QLatin1String("")); ++ ++ writer.writeStartElement(QLatin1String("plist")); ++ writer.writeAttribute(QLatin1String("version"), QLatin1String("1.0")); ++ writer.writeStartElement(QLatin1String("dict")); ++ ++ writer.writeTextElement(QLatin1String("key"), QLatin1String("IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded")); ++ writer.writeEmptyElement(d->autocreateSchemes ? QLatin1String("true") : QLatin1String("false")); ++ ++ writer.writeEndElement(); // ++ writer.writeEndElement(); // ++ writer.writeEndDocument(); ++ ++ return file.error() == QFile::NoError; ++ } ++ ++ return false; ++} ++ +diff --git a/src/lib/corelib/generators/xcode/xcsettings.h b/src/lib/corelib/generators/xcode/xcsettings.h +new file mode 100644 +index 0000000..e6f2c5d +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcsettings.h +@@ -0,0 +1,54 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCSETTINGS_H ++#define XCSETTINGS_H ++ ++#include ++ ++class XCSettingsPrivate; ++ ++class XCSettings : public QObject ++{ ++ Q_OBJECT ++public: ++ explicit XCSettings(QObject *parent = 0); ++ virtual ~XCSettings(); ++ ++ bool autocreateSchemes() const; ++ void setAutocreateSchemes(bool autocreateSchemes); ++ ++ bool serialize(const QString &filePath); ++ ++private: ++ XCSettingsPrivate *d; ++}; ++ ++#endif // XCSETTINGS_H +diff --git a/src/lib/corelib/tools/projectgeneratormanager.cpp b/src/lib/corelib/tools/projectgeneratormanager.cpp +index 4c62fc0..f5d0f81 100644 +--- a/src/lib/corelib/tools/projectgeneratormanager.cpp ++++ b/src/lib/corelib/tools/projectgeneratormanager.cpp +@@ -39,6 +39,9 @@ + #include + #include + ++#include ++#include ++ + namespace qbs { + + using namespace Internal; +@@ -60,6 +63,8 @@ ProjectGeneratorManager *ProjectGeneratorManager::instance() + ProjectGeneratorManager::ProjectGeneratorManager() + { + QList > generators; ++ generators << QSharedPointer::create(); ++ generators << QSharedPointer::create(); + foreach (QSharedPointer generator, generators) { + m_generators[generator->generatorName()] = generator; + } -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs/0003-add-generator-header-installs.1.3.2.patch b/mingw-w64-qbs-git/0003-add-generator-header-installs.1.3.4.patch similarity index 84% rename from mingw-w64-qbs/0003-add-generator-header-installs.1.3.2.patch rename to mingw-w64-qbs-git/0003-add-generator-header-installs.1.3.4.patch index 02f2aa77a8..ecbc46f46f 100644 --- a/mingw-w64-qbs/0003-add-generator-header-installs.1.3.2.patch +++ b/mingw-w64-qbs-git/0003-add-generator-header-installs.1.3.4.patch @@ -1,4 +1,4 @@ -From 987ef4db561f6629e7a44b818de71d866ba746bc Mon Sep 17 00:00:00 2001 +From c6e9c47a8d248505d4078659a8061917194c18d1 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 00:12:36 +0100 Subject: [PATCH 3/5] add generator header installs @@ -9,10 +9,10 @@ Subject: [PATCH 3/5] add generator header installs 2 files changed, 2 insertions(+) diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri -index 9b2fb38..e31ea57 100644 +index 9f2638c..fb0d4f2 100644 --- a/src/lib/corelib/api/api.pri +++ b/src/lib/corelib/api/api.pri -@@ -25,6 +25,7 @@ SOURCES += \ +@@ -28,6 +28,7 @@ SOURCES += \ $$PWD/languageinfo.h \ $$PWD/project.h \ $$PWD/projectdata.h \ @@ -21,10 +21,10 @@ index 9b2fb38..e31ea57 100644 $$PWD/runenvironment.h api_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/api diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 5008738..9e361e1 100644 +index aebab08..e7168c6 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -87,6 +87,7 @@ all_tests { +@@ -89,6 +89,7 @@ all_tests { $$PWD/qbs_export.h \ $$PWD/buildoptions.h \ $$PWD/installoptions.h \ @@ -33,5 +33,5 @@ index 5008738..9e361e1 100644 tools_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/tools INSTALLS += tools_headers -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs-git/0003-add-generator-header-installs.1.3.patch b/mingw-w64-qbs-git/0003-add-generator-header-installs.1.4.patch similarity index 73% rename from mingw-w64-qbs-git/0003-add-generator-header-installs.1.3.patch rename to mingw-w64-qbs-git/0003-add-generator-header-installs.1.4.patch index 0b7258a972..80fec03ea6 100644 --- a/mingw-w64-qbs-git/0003-add-generator-header-installs.1.3.patch +++ b/mingw-w64-qbs-git/0003-add-generator-header-installs.1.4.patch @@ -1,4 +1,4 @@ -From 32b174ec9ed68321aad1be5a70a5faebe04c405a Mon Sep 17 00:00:00 2001 +From 88a793888577bbe132d22b9faf063065e012f52a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 00:12:36 +0100 Subject: [PATCH 3/5] add generator header installs @@ -9,29 +9,29 @@ Subject: [PATCH 3/5] add generator header installs 2 files changed, 2 insertions(+) diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri -index 9f2638c..dfb42ee 100644 +index 18b3b47..10d9bf8 100644 --- a/src/lib/corelib/api/api.pri +++ b/src/lib/corelib/api/api.pri @@ -26,6 +26,7 @@ SOURCES += \ - api_headers.files = \ - $$PWD/jobs.h \ $$PWD/languageinfo.h \ -+ $$PWD/generator.h \ $$PWD/project.h \ $$PWD/projectdata.h \ ++ $$PWD/generator.h \ $$PWD/rulecommand.h \ + $$PWD/runenvironment.h + api_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/api diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index aebab08..e7168c6 100644 +index 431eb27..a77926c 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -89,6 +89,7 @@ all_tests { - $$PWD/qbs_export.h \ - $$PWD/buildoptions.h \ +@@ -96,6 +96,7 @@ qbs_enable_unit_tests { + $$PWD/generateoptions.h \ + $$PWD/generatorpluginmanager.h \ $$PWD/installoptions.h \ + $$PWD/generateoptions.h \ $$PWD/setupprojectparameters.h tools_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/tools INSTALLS += tools_headers -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs-git/0002-add-generator-header-installs.master.patch b/mingw-w64-qbs-git/0003-add-generator-header-installs.master.patch similarity index 69% rename from mingw-w64-qbs-git/0002-add-generator-header-installs.master.patch rename to mingw-w64-qbs-git/0003-add-generator-header-installs.master.patch index f7c1c68a2c..5816b4ed0b 100644 --- a/mingw-w64-qbs-git/0002-add-generator-header-installs.master.patch +++ b/mingw-w64-qbs-git/0003-add-generator-header-installs.master.patch @@ -1,7 +1,7 @@ -From 6958b1e9faaea47955007e7715bb076f34181c16 Mon Sep 17 00:00:00 2001 +From d66539abfd3fedd28fbf4d71b17019f1c5dc91f4 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 00:12:36 +0100 -Subject: [PATCH 2/4] add generator header installs +Subject: [PATCH 3/5] add generator header installs --- src/lib/corelib/api/api.pri | 1 + @@ -9,29 +9,29 @@ Subject: [PATCH 2/4] add generator header installs 2 files changed, 2 insertions(+) diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri -index 9f2638c..dfb42ee 100644 +index 18b3b47..10d9bf8 100644 --- a/src/lib/corelib/api/api.pri +++ b/src/lib/corelib/api/api.pri @@ -26,6 +26,7 @@ SOURCES += \ - api_headers.files = \ - $$PWD/jobs.h \ $$PWD/languageinfo.h \ -+ $$PWD/generator.h \ $$PWD/project.h \ $$PWD/projectdata.h \ ++ $$PWD/generator.h \ $$PWD/rulecommand.h \ + $$PWD/runenvironment.h + api_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/api diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index d8875bb..b0e294e 100644 +index 431eb27..a77926c 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -91,6 +91,7 @@ qbs_enable_unit_tests { - $$PWD/qbs_export.h \ - $$PWD/buildoptions.h \ +@@ -96,6 +96,7 @@ qbs_enable_unit_tests { + $$PWD/generateoptions.h \ + $$PWD/generatorpluginmanager.h \ $$PWD/installoptions.h \ + $$PWD/generateoptions.h \ $$PWD/setupprojectparameters.h tools_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/tools INSTALLS += tools_headers -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-lib.master.patch similarity index 84% rename from mingw-w64-qbs/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch rename to mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-lib.master.patch index 820c5db21b..527eb68363 100644 --- a/mingw-w64-qbs/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch +++ b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-lib.master.patch @@ -1,4 +1,4 @@ -From de2494323ad1397962936f48181335cf3682b180 Mon Sep 17 00:00:00 2001 +From 734b3872af3ba25e526a5c475d6bc075e7cd1721 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 18:20:12 +0000 Subject: [PATCH 4/5] Use .dll.a instead of .a for mingw* import libraries @@ -8,10 +8,10 @@ Subject: [PATCH 4/5] Use .dll.a instead of .a for mingw* import libraries 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/qtprofilesetup/qtmoduleinfo.cpp b/src/lib/qtprofilesetup/qtmoduleinfo.cpp -index 220ee5b..d55e2ff 100644 +index 8e07335..acc58c4 100644 --- a/src/lib/qtprofilesetup/qtmoduleinfo.cpp +++ b/src/lib/qtprofilesetup/qtmoduleinfo.cpp -@@ -241,7 +241,7 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, +@@ -252,7 +252,7 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, if (qtEnv.mkspecName.contains(QLatin1String("msvc"))) libFilePath += QLatin1String(".lib"); else if (isMingw) @@ -21,5 +21,5 @@ index 220ee5b..d55e2ff 100644 } if (!simplifiedLine.startsWith("QMAKE_PRL_LIBS")) -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libr.1.3.4.patch similarity index 84% rename from mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch rename to mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libr.1.3.4.patch index b7655a875e..120fcc2a29 100644 --- a/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch +++ b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libr.1.3.4.patch @@ -1,4 +1,4 @@ -From fc828cd51472d4bb6108407eacc00d5baef0fc4a Mon Sep 17 00:00:00 2001 +From 2e71b8c34524a8fdf73639640730984892892d33 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 18:20:12 +0000 Subject: [PATCH 4/5] Use .dll.a instead of .a for mingw* import libraries @@ -8,10 +8,10 @@ Subject: [PATCH 4/5] Use .dll.a instead of .a for mingw* import libraries 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/qtprofilesetup/qtmoduleinfo.cpp b/src/lib/qtprofilesetup/qtmoduleinfo.cpp -index 4ae256f..269f951 100644 +index 4e85a98..f8fc658 100644 --- a/src/lib/qtprofilesetup/qtmoduleinfo.cpp +++ b/src/lib/qtprofilesetup/qtmoduleinfo.cpp -@@ -247,7 +247,7 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, +@@ -252,7 +252,7 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, if (qtEnv.mkspecName.contains(QLatin1String("msvc"))) libFilePath += QLatin1String(".lib"); else if (isMingw) @@ -21,5 +21,5 @@ index 4ae256f..269f951 100644 } if (!simplifiedLine.startsWith("QMAKE_PRL_LIBS")) -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs-git/0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch similarity index 78% rename from mingw-w64-qbs-git/0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch rename to mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch index 83f6b9dedd..8b5102c88d 100644 --- a/mingw-w64-qbs-git/0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch +++ b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch @@ -1,17 +1,17 @@ -From bd8930f53e1bd74db3ce05b706efae79cdbab7e9 Mon Sep 17 00:00:00 2001 +From 2ef14c94c1bdd8d8e2094d41aca4deb5eed2ed03 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 18:20:12 +0000 -Subject: [PATCH 3/4] Use .dll.a instead of .a for mingw* import libraries +Subject: [PATCH 4/5] Use .dll.a instead of .a for mingw* import libraries --- src/lib/qtprofilesetup/qtmoduleinfo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/qtprofilesetup/qtmoduleinfo.cpp b/src/lib/qtprofilesetup/qtmoduleinfo.cpp -index 4ae256f..269f951 100644 +index 7ae49fa..4165805 100644 --- a/src/lib/qtprofilesetup/qtmoduleinfo.cpp +++ b/src/lib/qtprofilesetup/qtmoduleinfo.cpp -@@ -247,7 +247,7 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, +@@ -253,7 +253,7 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, if (qtEnv.mkspecName.contains(QLatin1String("msvc"))) libFilePath += QLatin1String(".lib"); else if (isMingw) @@ -21,5 +21,5 @@ index 4ae256f..269f951 100644 } if (!simplifiedLine.startsWith("QMAKE_PRL_LIBS")) -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.4.patch similarity index 91% rename from mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch rename to mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.4.patch index 29122552b9..6f59b5d001 100644 --- a/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch +++ b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.4.patch @@ -1,4 +1,4 @@ -From f4d9b2631f159f982d9bf41e23a7a0b9e44cf801 Mon Sep 17 00:00:00 2001 +From f0c7ffb986a155b27885ea0096a0b8b1da4dabba Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 18:29:20 +0000 Subject: [PATCH 5/5] setup-toolchains: Pretend msys is mingw @@ -9,7 +9,7 @@ It's close enough and the best we've got. 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/qbs-setup-toolchains/probe.cpp b/src/app/qbs-setup-toolchains/probe.cpp -index 84d3beb..14bef79 100644 +index b1b6fa5..eddd7f4 100644 --- a/src/app/qbs-setup-toolchains/probe.cpp +++ b/src/app/qbs-setup-toolchains/probe.cpp @@ -88,7 +88,8 @@ static QStringList validMinGWMachines() @@ -30,7 +30,7 @@ index 84d3beb..14bef79 100644 + const bool isMingw = toolchainTypes.contains(QLatin1String("mingw")) || toolchainTypes.contains(QLatin1String("msys")); const bool isClang = toolchainTypes.contains(QLatin1String("clang")); - if (isMingw && !validMinGWMachines().contains(machineName)) { + if (isMingw) { -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch similarity index 84% rename from mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch rename to mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch index be1037849a..a6e856d76d 100644 --- a/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch +++ b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch @@ -1,4 +1,4 @@ -From 6850d7a5bee20766656121db96444610f6d48c10 Mon Sep 17 00:00:00 2001 +From 0cade11e1088af58460df3220617dd30a5a47cf1 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 18:29:20 +0000 Subject: [PATCH 5/5] setup-toolchains: Pretend msys is mingw @@ -9,10 +9,10 @@ It's close enough and the best we've got. 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/qbs-setup-toolchains/probe.cpp b/src/app/qbs-setup-toolchains/probe.cpp -index d0f123b..184efdf 100644 +index 531bbf0..c57bd67 100644 --- a/src/app/qbs-setup-toolchains/probe.cpp +++ b/src/app/qbs-setup-toolchains/probe.cpp -@@ -85,7 +85,8 @@ static QStringList validMinGWMachines() +@@ -89,7 +89,8 @@ static QStringList validMinGWMachines() << QLatin1String("i686-w64-mingw32") << QLatin1String("x86_64-w64-mingw32") << QLatin1String("i686-w64-mingw32.shared") << QLatin1String("x86_64-w64-mingw32.shared") << QLatin1String("i686-w64-mingw32.static") << QLatin1String("x86_64-w64-mingw32.static") @@ -22,7 +22,7 @@ index d0f123b..184efdf 100644 } static QStringList completeToolchainList(const QString &toolchainName) -@@ -196,7 +197,7 @@ static Profile createGccProfile(const QString &compilerFilePath, Settings *setti +@@ -200,7 +201,7 @@ static Profile createGccProfile(const QString &compilerFilePath, Settings *setti { const QString machineName = gccMachineName(compilerFilePath); const QStringList compilerTriplet = machineName.split(QLatin1Char('-')); @@ -30,7 +30,7 @@ index d0f123b..184efdf 100644 + const bool isMingw = toolchainTypes.contains(QLatin1String("mingw")) || toolchainTypes.contains(QLatin1String("msys")); const bool isClang = toolchainTypes.contains(QLatin1String("clang")); - if (isMingw && !validMinGWMachines().contains(machineName)) { + if (isMingw) { -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs-git/0004-setup-toolchains-Pretend-msys-is-mingw.master.patch b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.master.patch similarity index 84% rename from mingw-w64-qbs-git/0004-setup-toolchains-Pretend-msys-is-mingw.master.patch rename to mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.master.patch index e954fa9196..9e368c96a4 100644 --- a/mingw-w64-qbs-git/0004-setup-toolchains-Pretend-msys-is-mingw.master.patch +++ b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.master.patch @@ -1,7 +1,7 @@ -From 89335fde2f65e2c34319fcdfe9172d1d6155c54d Mon Sep 17 00:00:00 2001 +From e6a68f1b7ea07a807082cf9ef3a4b19e147e0ae7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 18:29:20 +0000 -Subject: [PATCH 4/4] setup-toolchains: Pretend msys is mingw +Subject: [PATCH 5/5] setup-toolchains: Pretend msys is mingw It's close enough and the best we've got. --- @@ -9,7 +9,7 @@ It's close enough and the best we've got. 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/qbs-setup-toolchains/probe.cpp b/src/app/qbs-setup-toolchains/probe.cpp -index 621fa30..757f0b0 100644 +index 0ae9f6c..3d5e03c 100644 --- a/src/app/qbs-setup-toolchains/probe.cpp +++ b/src/app/qbs-setup-toolchains/probe.cpp @@ -89,7 +89,8 @@ static QStringList validMinGWMachines() @@ -22,7 +22,7 @@ index 621fa30..757f0b0 100644 } static QStringList completeToolchainList(const QString &toolchainName) -@@ -201,7 +202,7 @@ static Profile createGccProfile(const QString &compilerFilePath, Settings *setti +@@ -200,7 +201,7 @@ static Profile createGccProfile(const QString &compilerFilePath, Settings *setti { const QString machineName = gccMachineName(compilerFilePath); const QStringList compilerTriplet = machineName.split(QLatin1Char('-')); @@ -30,7 +30,7 @@ index 621fa30..757f0b0 100644 + const bool isMingw = toolchainTypes.contains(QLatin1String("mingw")) || toolchainTypes.contains(QLatin1String("msys")); const bool isClang = toolchainTypes.contains(QLatin1String("clang")); - if (isMingw && !validMinGWMachines().contains(machineName)) { + if (isMingw) { -- -2.1.3 +2.3.5 diff --git a/mingw-w64-qbs-git/PKGBUILD b/mingw-w64-qbs-git/PKGBUILD index 2ae8a11dc0..300d62c4f7 100644 --- a/mingw-w64-qbs-git/PKGBUILD +++ b/mingw-w64-qbs-git/PKGBUILD @@ -20,7 +20,7 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=.2347.be93bcd +pkgver=1.4.1.r2672.4d4d485 pkgrel=1 pkgdesc='Qt Build Suite' url='http://qt-project.org' @@ -30,50 +30,75 @@ makedepends=('git') options=('docs' 'staticlibs') # '!strip' 'debug') provides=("${MINGW_PACKAGE_PREFIX}-qbs") conflicts=("${MINGW_PACKAGE_PREFIX}-qbs") -QBS_GIT_BRANCH=1.3 +QBS_GIT_BRANCH=1.4 +# To regenerate the patches: +# git format-patch --suffix=".master.patch" -5 source=("git://gitorious.org/qt-labs/qbs.git#branch=$QBS_GIT_BRANCH" "manifest" - # 1.3 branch - "0001-add-hostosinfo.h-to-installed-headers.1.3.patch" - "0002-WIP-Xcode-generator.1.3.patch" - "0003-add-generator-header-installs.1.3.patch" - "0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch" - "0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch" - # master branch - "0001-WIP-Xcode-generator.master.patch" - "0002-add-generator-header-installs.master.patch" - "0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch" - "0004-setup-toolchains-Pretend-msys-is-mingw.master.patch") + + "0001-add-hostosinfo.h-to-installed-headers.master.patch" + "0002-WIP-Xcode-generator.master.patch" + "0003-add-generator-header-installs.master.patch" + "0004-Use-.dll.a-instead-of-.a-for-mingw-import-lib.master.patch" + "0005-setup-toolchains-Pretend-msys-is-mingw.master.patch" + + "0001-add-hostosinfo.h-to-installed-headers.1.4.patch" + "0002-WIP-Xcode-generator.1.4.patch" + "0003-add-generator-header-installs.1.4.patch" + "0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch" + "0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch" + + "0001-add-hostosinfo.h-to-installed-headers.1.3.4.patch" + "0002-WIP-Xcode-generator.1.3.4.patch" + "0003-add-generator-header-installs.1.3.4.patch" + "0004-Use-.dll.a-instead-of-.a-for-mingw-import-libr.1.3.4.patch" + "0005-setup-toolchains-Pretend-msys-is-mingw.1.3.4.patch") + sha256sums=('SKIP' '838098b25a8044176b3139b4003594570c62a8d64f5470fbbd769f3bf44e0855' - '42033f1988db6645e5997f97eda72d52df2b2f310f332854c400ed0da79b7d3f' - 'a7176a9cf66121ac71b09b02964aa17b9560fcd641d5f88c08b468d5c311ceb4' - 'b34a0482b4a3079304287f640b3b4594dcc6495fac39509c2e53b4b545c1b6ff' - '7ffc116e0cb5cdd977697d356e7168abda929441c995168d065289fed573b1b4' - 'cb432f700586ba3d4ae7d45b5d958755ff2654d4e80ad0e2dcee6dfec8661fbb' - 'b8fad922fdbc506b959ab1512bddbe642a40a4e87361bcfda6ce2df4d2b03ffb' - '61980a2b2f4ab3d472764955bc167f009a549a2bf283704f5041fe40747bcc86' - '0b1960d1866926318a41f23d288cae501cbdf203eb4b77e7b8809f1c85f93d2b' - '453051b6e8a666055032df78db403e2f6f66b9b9e51ae60c127b3a5c9b5b7599') + '945e0ec9b5d9957a231ac3143339cf3af9767d09b4b923c95dffa25d5672164e' + '36f638e241737038d41dfa627ecc4de14396aa457ebe4ffd154a0f7776a3cef8' + '806c64da4c3c8e6ca4b51affe29a02d49fc303a614f34ac08bc62c66f5420ede' + 'b6d35740104f67d241060e2eeb898dee93a1ea3bed3ff3248e29ca60a39b2360' + '0f55b433f7390106ccb6ab3f057fdb1119eddac2af78baf292a033b402f030b3' + '0877dced21c6c85cfd86a068f6326bb2c8eaf315adfe227fa9150d18ba384d67' + '81a16627217936370e6212591d5f43933e186686541cada3b0434fa84ddecd7d' + '61ea3d32d0bebab69d141498a142998a885bf8cd7db33eea082476b52412651e' + '8c9bd35fd8e83c2897ebd93e66a6c60f88de6c9dbe386a923e9c7541b1c6f932' + '526f7dfdc4681c83473bfb9f551e10a42f31a4a1034c9f277688a0ffd1a83644' + '761d4ff8072600aed4c2cd9b7e0963fc24ddda7ba6bca9431134111432ca6e85' + '8f6f67ad1036c48efc6604e393d9d0d4c0297391bc86fc4d110995c9c0f4d191' + 'caf5258899ae870d9295079046a699a98a577b18b471d245164456918f95fe4c' + 'e412d4cdd0c0061fdadaada82826b99ada5323bca72a29b2c9f48dabdef0df8c' + 'c126c85ba840426cc9b482119b82a0ec0bc259b9a0496b4d2fadde101bc557ef') pkgver() { cd "$srcdir"/$_realname - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + + local VER_PRI=$(cat qbs_version.pri | sed -n "s/QBS_VERSION = \(.*\)/\1/p") + printf "%s.r%s.%s" "${VER_PRI}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { cd "$srcdir"/$_realname if [ "${QBS_GIT_BRANCH}" = "master" ]; then - git am "${srcdir}"/0001-WIP-Xcode-generator.master.patch - git am "${srcdir}"/0002-add-generator-header-installs.master.patch - git am "${srcdir}"/0003-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.master.patch - git am "${srcdir}"/0004-setup-toolchains-Pretend-msys-is-mingw.master.patch + git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.master.patch + git am "${srcdir}"/0002-WIP-Xcode-generator.master.patch + git am "${srcdir}"/0003-add-generator-header-installs.master.patch + git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-lib.master.patch + git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.master.patch + elif [ "${QBS_GIT_BRANCH}" = "1.4" ]; then + git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.1.4.patch + git am "${srcdir}"/0002-WIP-Xcode-generator.1.4.patch + git am "${srcdir}"/0003-add-generator-header-installs.1.4.patch + git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch + git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch elif [ "${QBS_GIT_BRANCH}" = "1.3" ]; then - git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.1.3.patch - git am "${srcdir}"/0002-WIP-Xcode-generator.1.3.patch - git am "${srcdir}"/0003-add-generator-header-installs.1.3.patch - git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.patch - git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.patch + git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.1.3.4.patch + git am "${srcdir}"/0002-WIP-Xcode-generator.1.3.4.patch + git am "${srcdir}"/0003-add-generator-header-installs.1.3.4.patch + git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libr.1.3.4.patch + git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.4.patch fi } @@ -108,4 +133,3 @@ package() { done } -# E:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1/collect2.exe -plugin E:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1/liblto_plugin-0.dll -plugin-opt=E:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1/lto-wrapper.exe -plugin-opt=-fresolution=E:\msys64\tmp\ccK0UDoh.res -plugin-opt=-pass-through=-lmingwthrd -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-lmingwthrd -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt -m i386pep -Bdynamic -o ../../../bin/qbs-config-ui.exe E:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o E:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1/../../../../x86_64-w64-mingw32/lib/../lib/crtbegin.o -LE:/msys64/mingw64/lib -LE:/m2/repo/mingw-w64-qbs-git/src/qbs/build-x86_64/src/app/config-ui/../../../lib -LE:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1 -LE:/msys64/mingw64/bin/../lib/gcc -LE:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1/../../../../x86_64-w64-mingw32/lib/../lib -LE:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1/../../../../lib -LE:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1/../../../../x86_64-w64-mingw32/lib -LE:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1/../../.. -s -subsystem windows release/consolelogger.o release/coloredoutput.o release/qbssettings.o release/commandlineparser.o release/main.o release/mainwindow.o release/settingsmodel.o release/moc_mainwindow.o release/moc_settingsmodel.o -lglu32 -lopengl32 -lgdi32 -luser32 -lmingw32 -lqtmain -lqbscore1 -lQt5Widgets -lQt5Gui -lQt5Xml -lQt5Script -lQt5Core -lstdc++ -lmingwthrd -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingwthrd -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt E:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1/../../../../x86_64-w64-mingw32/lib/../lib/crtend.o --verbose diff --git a/mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.1.4.patch b/mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.1.4.patch new file mode 100644 index 0000000000..6a6bd9fb5c --- /dev/null +++ b/mingw-w64-qbs/0001-add-hostosinfo.h-to-installed-headers.1.4.patch @@ -0,0 +1,27 @@ +From 4a36af369f678ff512aebd903c30ec8e8eecea43 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 18 Aug 2014 12:19:52 +0100 +Subject: [PATCH 1/6] add hostosinfo.h to installed headers + +.. if you build Qt Creator with system qbs then this +header is needed by: +src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp +--- + src/lib/corelib/tools/tools.pri | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri +index 35bc9c8..431eb27 100644 +--- a/src/lib/corelib/tools/tools.pri ++++ b/src/lib/corelib/tools/tools.pri +@@ -85,6 +85,7 @@ qbs_enable_unit_tests { + $$PWD/cleanoptions.h \ + $$PWD/codelocation.h \ + $$PWD/error.h \ ++ $$PWD/hostosinfo.h \ + $$PWD/settings.h \ + $$PWD/settingsmodel.h \ + $$PWD/preferences.h \ +-- +2.3.5 + diff --git a/mingw-w64-qbs/0002-WIP-Xcode-generator.1.4.patch b/mingw-w64-qbs/0002-WIP-Xcode-generator.1.4.patch new file mode 100644 index 0000000000..e7c737d0fe --- /dev/null +++ b/mingw-w64-qbs/0002-WIP-Xcode-generator.1.4.patch @@ -0,0 +1,6367 @@ +From 67b10a832b047d2479fbb0ba08431af6d88a8bfc Mon Sep 17 00:00:00 2001 +From: Jake Petroules +Date: Wed, 18 Feb 2015 09:05:29 -0800 +Subject: [PATCH 2/6] WIP: Xcode generator. + +Task-number: QBS-32 +Change-Id: I5ce5cc3148aa801d75a1f64b778fe7334de43af9 +--- + src/lib/corelib/corelib.qbs | 62 ++ + src/lib/corelib/generators/generators.pri | 2 + + .../generators/xcode/opensteppropertylist.cpp | 257 ++++++++ + .../generators/xcode/opensteppropertylist.h | 76 +++ + src/lib/corelib/generators/xcode/pbx.h | 57 ++ + src/lib/corelib/generators/xcode/pbxbuildfile.cpp | 134 +++++ + src/lib/corelib/generators/xcode/pbxbuildfile.h | 74 +++ + src/lib/corelib/generators/xcode/pbxbuildphase.cpp | 94 +++ + src/lib/corelib/generators/xcode/pbxbuildphase.h | 65 +++ + src/lib/corelib/generators/xcode/pbxcontainer.cpp | 60 ++ + src/lib/corelib/generators/xcode/pbxcontainer.h | 59 ++ + .../generators/xcode/pbxcontaineritemproxy.cpp | 113 ++++ + .../generators/xcode/pbxcontaineritemproxy.h | 65 +++ + src/lib/corelib/generators/xcode/pbxfileencoding.h | 57 ++ + .../corelib/generators/xcode/pbxfilereference.cpp | 66 +++ + .../corelib/generators/xcode/pbxfilereference.h | 52 ++ + src/lib/corelib/generators/xcode/pbxfiletype.cpp | 51 ++ + src/lib/corelib/generators/xcode/pbxfiletype.h | 47 ++ + .../generators/xcode/pbxframeworksbuildphase.cpp | 27 + + .../generators/xcode/pbxframeworksbuildphase.h | 50 ++ + src/lib/corelib/generators/xcode/pbxgroup.cpp | 119 ++++ + src/lib/corelib/generators/xcode/pbxgroup.h | 71 +++ + .../corelib/generators/xcode/pbxlegacytarget.cpp | 111 ++++ + src/lib/corelib/generators/xcode/pbxlegacytarget.h | 65 +++ + .../corelib/generators/xcode/pbxnativetarget.cpp | 68 +++ + src/lib/corelib/generators/xcode/pbxnativetarget.h | 53 ++ + src/lib/corelib/generators/xcode/pbxobject.cpp | 96 +++ + src/lib/corelib/generators/xcode/pbxobject.h | 124 ++++ + .../corelib/generators/xcode/pbxproducttype.cpp | 75 +++ + src/lib/corelib/generators/xcode/pbxproducttype.h | 53 ++ + src/lib/corelib/generators/xcode/pbxproject.cpp | 333 +++++++++++ + src/lib/corelib/generators/xcode/pbxproject.h | 114 ++++ + src/lib/corelib/generators/xcode/pbxreference.cpp | 127 ++++ + src/lib/corelib/generators/xcode/pbxreference.h | 72 +++ + .../generators/xcode/pbxsourcesbuildphase.cpp | 57 ++ + .../generators/xcode/pbxsourcesbuildphase.h | 53 ++ + src/lib/corelib/generators/xcode/pbxsourcetree.cpp | 50 ++ + src/lib/corelib/generators/xcode/pbxsourcetree.h | 52 ++ + src/lib/corelib/generators/xcode/pbxtarget.cpp | 192 ++++++ + src/lib/corelib/generators/xcode/pbxtarget.h | 100 ++++ + .../generators/xcode/pbxtargetdependency.cpp | 99 ++++ + .../corelib/generators/xcode/pbxtargetdependency.h | 65 +++ + .../generators/xcode/xcbuildconfiguration.cpp | 92 +++ + .../generators/xcode/xcbuildconfiguration.h | 69 +++ + .../generators/xcode/xcconfigurationlist.cpp | 147 +++++ + .../corelib/generators/xcode/xcconfigurationlist.h | 67 +++ + src/lib/corelib/generators/xcode/xcode.pri | 59 ++ + .../generators/xcode/xcodebuildsettingmapping.cpp | 366 ++++++++++++ + .../generators/xcode/xcodebuildsettingmapping.h | 96 +++ + .../corelib/generators/xcode/xcodegenerator.cpp | 643 +++++++++++++++++++++ + src/lib/corelib/generators/xcode/xcodegenerator.h | 81 +++ + .../generators/xcode/xcodenativegenerator.cpp | 58 ++ + .../generators/xcode/xcodenativegenerator.h | 52 ++ + .../generators/xcode/xcodesimplegenerator.cpp | 58 ++ + .../generators/xcode/xcodesimplegenerator.h | 52 ++ + src/lib/corelib/generators/xcode/xcscheme.cpp | 179 ++++++ + src/lib/corelib/generators/xcode/xcscheme.h | 69 +++ + src/lib/corelib/generators/xcode/xcsettings.cpp | 95 +++ + src/lib/corelib/generators/xcode/xcsettings.h | 54 ++ + src/lib/corelib/tools/projectgeneratormanager.cpp | 5 + + 60 files changed, 5859 insertions(+) + create mode 100644 src/lib/corelib/generators/xcode/opensteppropertylist.cpp + create mode 100644 src/lib/corelib/generators/xcode/opensteppropertylist.h + create mode 100644 src/lib/corelib/generators/xcode/pbx.h + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildfile.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildfile.h + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildphase.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxbuildphase.h + create mode 100644 src/lib/corelib/generators/xcode/pbxcontainer.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxcontainer.h + create mode 100644 src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h + create mode 100644 src/lib/corelib/generators/xcode/pbxfileencoding.h + create mode 100644 src/lib/corelib/generators/xcode/pbxfilereference.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxfilereference.h + create mode 100644 src/lib/corelib/generators/xcode/pbxfiletype.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxfiletype.h + create mode 100644 src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h + create mode 100644 src/lib/corelib/generators/xcode/pbxgroup.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxgroup.h + create mode 100644 src/lib/corelib/generators/xcode/pbxlegacytarget.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxlegacytarget.h + create mode 100644 src/lib/corelib/generators/xcode/pbxnativetarget.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxnativetarget.h + create mode 100644 src/lib/corelib/generators/xcode/pbxobject.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxobject.h + create mode 100644 src/lib/corelib/generators/xcode/pbxproducttype.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxproducttype.h + create mode 100644 src/lib/corelib/generators/xcode/pbxproject.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxproject.h + create mode 100644 src/lib/corelib/generators/xcode/pbxreference.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxreference.h + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcetree.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxsourcetree.h + create mode 100644 src/lib/corelib/generators/xcode/pbxtarget.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxtarget.h + create mode 100644 src/lib/corelib/generators/xcode/pbxtargetdependency.cpp + create mode 100644 src/lib/corelib/generators/xcode/pbxtargetdependency.h + create mode 100644 src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcbuildconfiguration.h + create mode 100644 src/lib/corelib/generators/xcode/xcconfigurationlist.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcconfigurationlist.h + create mode 100644 src/lib/corelib/generators/xcode/xcode.pri + create mode 100644 src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h + create mode 100644 src/lib/corelib/generators/xcode/xcodegenerator.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodegenerator.h + create mode 100644 src/lib/corelib/generators/xcode/xcodenativegenerator.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodenativegenerator.h + create mode 100644 src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcodesimplegenerator.h + create mode 100644 src/lib/corelib/generators/xcode/xcscheme.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcscheme.h + create mode 100644 src/lib/corelib/generators/xcode/xcsettings.cpp + create mode 100644 src/lib/corelib/generators/xcode/xcsettings.h + +diff --git a/src/lib/corelib/corelib.qbs b/src/lib/corelib/corelib.qbs +index a5c1ab6..771f7e6 100644 +--- a/src/lib/corelib/corelib.qbs ++++ b/src/lib/corelib/corelib.qbs +@@ -154,6 +154,68 @@ QbsLibrary { + files: "buildgraph/forward_decls.h" + } + Group { ++ name: "Xcode generator" ++ prefix: "generators/xcode/" ++ files: [ ++ "opensteppropertylist.cpp", ++ "opensteppropertylist.h", ++ "pbx.h", ++ "pbxbuildfile.cpp", ++ "pbxbuildfile.h", ++ "pbxbuildphase.cpp", ++ "pbxbuildphase.h", ++ "pbxcontainer.cpp", ++ "pbxcontainer.h", ++ "pbxcontaineritemproxy.cpp", ++ "pbxcontaineritemproxy.h", ++ "pbxfileencoding.h", ++ "pbxfilereference.cpp", ++ "pbxfilereference.h", ++ "pbxfiletype.cpp", ++ "pbxfiletype.h", ++ "pbxframeworksbuildphase.cpp", ++ "pbxframeworksbuildphase.h", ++ "pbxgroup.cpp", ++ "pbxgroup.h", ++ "pbxlegacytarget.cpp", ++ "pbxlegacytarget.h", ++ "pbxnativetarget.cpp", ++ "pbxnativetarget.h", ++ "pbxobject.cpp", ++ "pbxobject.h", ++ "pbxproducttype.cpp", ++ "pbxproducttype.h", ++ "pbxproject.cpp", ++ "pbxproject.h", ++ "pbxreference.cpp", ++ "pbxreference.h", ++ "pbxsourcesbuildphase.cpp", ++ "pbxsourcesbuildphase.h", ++ "pbxsourcetree.cpp", ++ "pbxsourcetree.h", ++ "pbxtarget.cpp", ++ "pbxtarget.h", ++ "pbxtargetdependency.cpp", ++ "pbxtargetdependency.h", ++ "xcbuildconfiguration.cpp", ++ "xcbuildconfiguration.h", ++ "xcconfigurationlist.cpp", ++ "xcconfigurationlist.h", ++ "xcodegenerator.cpp", ++ "xcodegenerator.h", ++ "xcodenativegenerator.cpp", ++ "xcodenativegenerator.h", ++ "xcodesimplegenerator.cpp", ++ "xcodesimplegenerator.h", ++ "xcscheme.cpp", ++ "xcscheme.h", ++ "xcsettings.cpp", ++ "xcsettings.h", ++ "xcodebuildsettingmapping.cpp", ++ "xcodebuildsettingmapping.h" ++ ] ++ } ++ Group { + name: "jsextensions" + prefix: name + '/' + files: [ +diff --git a/src/lib/corelib/generators/generators.pri b/src/lib/corelib/generators/generators.pri +index 6372e81..2fa095e 100644 +--- a/src/lib/corelib/generators/generators.pri ++++ b/src/lib/corelib/generators/generators.pri +@@ -1,2 +1,4 @@ + HEADERS += \ + $$PWD/generator.h ++ ++include(xcode/xcode.pri) +diff --git a/src/lib/corelib/generators/xcode/opensteppropertylist.cpp b/src/lib/corelib/generators/xcode/opensteppropertylist.cpp +new file mode 100644 +index 0000000..63adee2 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/opensteppropertylist.cpp +@@ -0,0 +1,257 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "opensteppropertylist.h" ++#include "pbxobject.h" ++#include ++#include ++ ++const QChar OpenStepPropertyList::NewlineToken = QLatin1Char('\n'); ++const QChar OpenStepPropertyList::DictionaryBeginToken = QLatin1Char('{'); ++const QChar OpenStepPropertyList::DictionarySeparatorToken = QLatin1Char(';'); ++const QChar OpenStepPropertyList::DictionaryEndToken = QLatin1Char('}'); ++const QChar OpenStepPropertyList::ArrayBeginToken = QLatin1Char('('); ++const QChar OpenStepPropertyList::ArraySeparatorToken = QLatin1Char(','); ++const QChar OpenStepPropertyList::ArrayEndToken = QLatin1Char(')'); ++const QChar OpenStepPropertyList::QuotedStringBeginToken = QLatin1Char('"'); ++const QChar OpenStepPropertyList::QuotedStringEndToken = QLatin1Char('"'); ++const QChar OpenStepPropertyList::DataBeginToken = QLatin1Char('<'); ++const QChar OpenStepPropertyList::DataEndToken = QLatin1Char('>'); ++const QChar OpenStepPropertyList::IndentationToken = QLatin1Char('\t'); ++ ++#define isValidUnquotedStringCharacter(x) (((x) >= 'a' && (x) <= 'z') || ((x) >= 'A' && (x) <= 'Z') || ((x) >= '0' && (x) <= '9') || (x) == '_' || (x) == '$' || (x) == '/' || (x) == ':' || (x) == '.' ) ++ ++static QString formatString(const QString &string) ++{ ++ bool isQuoted = string.isEmpty(); ++ if (!isQuoted) ++ { ++ for (int i = 0; i < string.size(); ++i) ++ { ++ if (!isValidUnquotedStringCharacter(string[i])) ++ { ++ isQuoted = true; ++ break; ++ } ++ } ++ } ++ ++ QString outString = string; ++ outString.replace(QLatin1String("\\"), QLatin1String("\\\\")); ++ outString.replace(QLatin1String("\""), QLatin1String("\\\"")); ++ ++ if (isQuoted) ++ outString.prepend(OpenStepPropertyList::QuotedStringBeginToken); ++ if (isQuoted) ++ outString.append(OpenStepPropertyList::QuotedStringEndToken); ++ ++ return outString; ++} ++ ++QString OpenStepPropertyList::toString(const QVariantMap &propertyList) ++{ ++ PBXObjectMap newMap; ++ Q_FOREACH (const QString &key, propertyList.keys()) { ++ newMap.insert(key, propertyList[key]); ++ } ++ return toString(newMap); ++} ++ ++QString OpenStepPropertyList::toString(const PBXObjectMap &propertyList) ++{ ++ return toString(propertyList, 0) + NewlineToken; ++} ++ ++QString OpenStepPropertyList::toString(const QVariantMap &propertyList, int indentationLevel) ++{ ++ PBXObjectMap newMap; ++ Q_FOREACH (const QString &key, propertyList.keys()) { ++ newMap.insert(key, propertyList[key]); ++ } ++ return toString(newMap, indentationLevel); ++} ++ ++QString OpenStepPropertyList::toString(const PBXObjectMap &propertyList, int indentationLevel) ++{ ++ QString string(indentationLevel, IndentationToken); ++ string += DictionaryBeginToken; ++ ++ const bool isFlat = ++ propertyList[QLatin1String("isa")] == QLatin1String("PBXBuildFile") || ++ propertyList[QLatin1String("isa")] == QLatin1String("PBXFileReference"); ++ if (!isFlat) { ++ string += NewlineToken; ++ } ++ ++ QList keys = propertyList.keys(); ++ ++ // Push the isa property to the top of the list as it's always written first ++ const int isaIndex = keys.indexOf(QLatin1String("isa")); ++ if (isaIndex >= 0) { ++ keys.removeAt(isaIndex); ++ keys.insert(0, QLatin1String("isa")); ++ } ++ ++ QStack isas; ++ ++ foreach (const PBXObjectIdentifier &vkey, keys) ++ { ++ const QVariant &object = propertyList[vkey]; ++ ++ if (!vkey.isa().isEmpty()) { ++ if (!isas.empty() && vkey.isa() != isas.top()) { ++ string += QString(QLatin1String("/* End %1 section */\n")).arg(isas.top()); ++ isas.pop(); ++ } ++ ++ if (isas.empty()) { ++ isas.push(vkey.isa()); ++ string += QString(QLatin1String("\n/* Begin %1 section */\n")).arg(vkey.isa()); ++ } ++ } ++ ++ string += QString(!isFlat ? (indentationLevel + 1) : 0, IndentationToken); ++ string += toString(QVariant::fromValue(vkey), -1); ++ string += QLatin1String(" = "); ++ ++ if (object.canConvert() || object.type() == QVariant::Map || object.type() == QVariant::List || ++ object.type() == QVariant::StringList || object.type() == QVariant::ByteArray) ++ string += toString(object, !isFlat ? (indentationLevel + 1) : 0).trimmed(); ++ else ++ string += toString(object, 0); ++ ++ string += DictionarySeparatorToken; ++ string += !isFlat ? NewlineToken : QLatin1Char(' '); ++ } ++ ++ if (!isas.empty()) { ++ string += QString(QLatin1String("/* End %1 section */\n")).arg(isas.top()); ++ isas.pop(); ++ } ++ ++ if (!isFlat) { ++ string += QString(indentationLevel, IndentationToken); ++ } ++ ++ string += DictionaryEndToken; ++ return string; ++} ++ ++QString OpenStepPropertyList::toString(const QList &propertyList) ++{ ++ return toString(propertyList, 0) + NewlineToken; ++} ++ ++QString OpenStepPropertyList::toString(const QList &propertyList, int indentationLevel) ++{ ++ QString string(indentationLevel, IndentationToken); ++ string += ArrayBeginToken; ++ string += NewlineToken; ++ ++ for (int i = 0; i < propertyList.size(); ++i) ++ { ++ const QVariant &object = propertyList[i]; ++ string += toString(object, indentationLevel + 1); ++ string += ArraySeparatorToken; ++ string += NewlineToken; ++ } ++ ++ string += QString(indentationLevel, IndentationToken) + ArrayEndToken; ++ return string; ++} ++ ++QString OpenStepPropertyList::toString(const QVariant &object, int indentationLevel) ++{ ++ if (object.canConvert()) { ++ PBXObjectIdentifier objid = object.value(); ++ QString s = toString(objid.identifier(), indentationLevel); ++ if (!objid.comment().isEmpty()) { ++ s += QLatin1String(" /* "); ++ s += objid.comment().replace(QLatin1String("*/"), QLatin1String("* /")); ++ s += QLatin1String(" */"); ++ } ++ return s; ++ } ++ ++ if (object.canConvert()) { ++ return toString(object.value(), indentationLevel); ++ } ++ ++ switch (object.type()) ++ { ++ case QVariant::Bool: ++ return object.toBool() ? QLatin1String("YES") : QLatin1String("NO"); ++ case QVariant::ByteArray: ++ return toString(object.toByteArray(), indentationLevel); ++ case QVariant::Date: ++ case QVariant::DateTime: ++ case QVariant::Time: ++ return toString(object.toDateTime(), indentationLevel); ++ case QVariant::Double: ++ return QString::number(object.toDouble()); ++ case QVariant::Int: ++ return QString::number(object.toInt()); ++ case QVariant::List: ++ case QVariant::StringList: ++ return toString(object.toList(), indentationLevel); ++ case QVariant::LongLong: ++ return QString::number(object.toLongLong()); ++ case QVariant::Map: ++ return toString(object.toMap(), indentationLevel); ++ case QVariant::String: ++ return toString(object.toString(), indentationLevel); ++ case QVariant::UInt: ++ return QString::number(object.toUInt()); ++ case QVariant::ULongLong: ++ return QString::number(object.toULongLong()); ++ default: ++ qDebug() << "Unsupported property list object type" << object; ++ abort(); ++ } ++} ++ ++QString OpenStepPropertyList::toString(const QByteArray &object, int indentationLevel) ++{ ++ QString string(indentationLevel, IndentationToken); ++ string += DataBeginToken + QString::fromLatin1(object.toHex()) + DataEndToken; ++ return string; ++} ++ ++QString OpenStepPropertyList::toString(const QDateTime &object, int indentationLevel) ++{ ++ return toString(object.toUTC().toString(Qt::ISODate), indentationLevel); ++} ++ ++QString OpenStepPropertyList::toString(const QString &object, int indentationLevel) ++{ ++ QString string(indentationLevel, IndentationToken); ++ string += formatString(object); ++ return string; ++} +diff --git a/src/lib/corelib/generators/xcode/opensteppropertylist.h b/src/lib/corelib/generators/xcode/opensteppropertylist.h +new file mode 100644 +index 0000000..36cef73 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/opensteppropertylist.h +@@ -0,0 +1,76 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ++** Copyright (C) 2014 Petroules Corporation. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef OPENSTEPPROPERTYLIST_H ++#define OPENSTEPPROPERTYLIST_H ++ ++#include ++#include ++#include ++#include ++#include ++ ++class PBXObjectIdentifier; ++typedef QMap PBXObjectMap; ++ ++class OpenStepPropertyList ++{ ++ Q_DISABLE_COPY(OpenStepPropertyList) ++public: ++ static const QChar NewlineToken; ++ static const QChar DictionaryBeginToken; ++ static const QChar DictionarySeparatorToken; ++ static const QChar DictionaryEndToken; ++ static const QChar ArrayBeginToken; ++ static const QChar ArraySeparatorToken; ++ static const QChar ArrayEndToken; ++ static const QChar QuotedStringBeginToken; ++ static const QChar QuotedStringEndToken; ++ static const QChar DataBeginToken; ++ static const QChar DataEndToken; ++ static const QChar IndentationToken; ++ ++ static QString toString(const QVariantMap &propertyList); ++ static QString toString(const PBXObjectMap &propertyList); ++ static QString toString(const QList &propertyList); ++ ++private: ++ OpenStepPropertyList(); ++ ++ static QString toString(const QVariantMap &propertyList, int indentationLevel); ++ static QString toString(const PBXObjectMap &propertyList, int indentationLevel); ++ static QString toString(const QList &propertyList, int indentationLevel); ++ static QString toString(const QVariant &object, int indentationLevel); ++ static QString toString(const QByteArray &object, int indentationLevel); ++ static QString toString(const QDateTime &object, int indentationLevel); ++ static QString toString(const QString &object, int indentationLevel); ++}; ++ ++#endif // OPENSTEPPROPERTYLIST_H +diff --git a/src/lib/corelib/generators/xcode/pbx.h b/src/lib/corelib/generators/xcode/pbx.h +new file mode 100644 +index 0000000..d4cc014 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbx.h +@@ -0,0 +1,57 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBX_H ++#define PBX_H ++ ++#include "opensteppropertylist.h" ++#include "pbxbuildfile.h" ++#include "pbxbuildphase.h" ++#include "pbxcontainer.h" ++#include "pbxcontaineritemproxy.h" ++#include "pbxfileencoding.h" ++#include "pbxfilereference.h" ++#include "pbxfiletype.h" ++#include "pbxgroup.h" ++#include "pbxlegacytarget.h" ++#include "pbxnativetarget.h" ++#include "pbxobject.h" ++#include "pbxproducttype.h" ++#include "pbxproject.h" ++#include "pbxreference.h" ++#include "pbxsourcetree.h" ++#include "pbxtarget.h" ++#include "pbxtargetdependency.h" ++#include "xcbuildconfiguration.h" ++#include "xcconfigurationlist.h" ++#include "xcscheme.h" ++#include "xcsettings.h" ++ ++#endif // PBX_H +diff --git a/src/lib/corelib/generators/xcode/pbxbuildfile.cpp b/src/lib/corelib/generators/xcode/pbxbuildfile.cpp +new file mode 100644 +index 0000000..cbe34c0 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxbuildfile.cpp +@@ -0,0 +1,134 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxbuildfile.h" ++#include "pbxbuildphase.h" ++#include "pbxfilereference.h" ++ ++static const QString kPBXBuildFileAttributes = QLatin1String("ATTRIBUTES"); ++static const QString kPBXBuildFileLibraryWeakLinked = QLatin1String("Weak"); ++ ++class PBXBuildFilePrivate ++{ ++public: ++ PBXBuildFilePrivate(); ++ PBXFileReference *reference; ++ QSet attributes; ++}; ++ ++PBXBuildFilePrivate::PBXBuildFilePrivate() ++ : reference() ++{ ++} ++ ++PBXBuildFile::PBXBuildFile(PBXBuildPhase *parent) : ++ PBXObject(parent), d(new PBXBuildFilePrivate) ++{ ++} ++ ++PBXBuildFile::~PBXBuildFile() ++{ ++ delete d; ++} ++ ++QString PBXBuildFile::isa() const ++{ ++ return QLatin1String("PBXBuildFile"); ++} ++ ++PBXObjectMap PBXBuildFile::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->reference) { ++ self.insert(QLatin1String("fileRef"), QVariant::fromValue(d->reference->identifier())); ++ } ++ ++ QVariantMap settingsMap; ++ if (!d->attributes.isEmpty()) { ++ QStringList attributes = d->attributes.toList(); ++ qSort(attributes); ++ settingsMap.insert(kPBXBuildFileAttributes, attributes); ++ } ++ ++ if (!settingsMap.isEmpty()) { ++ self.insert(QLatin1String("settings"), settingsMap); ++ } ++ ++ return self; ++} ++ ++PBXFileReference *PBXBuildFile::fileReference() const ++{ ++ return d->reference; ++} ++ ++void PBXBuildFile::setFileReference(PBXFileReference *reference) ++{ ++ d->reference = reference; ++} ++ ++QSet PBXBuildFile::attributes() const ++{ ++ return d->attributes; ++} ++ ++bool PBXBuildFile::isWeakLinkedLibrary() const ++{ ++ return d->attributes.contains(kPBXBuildFileLibraryWeakLinked); ++} ++ ++void PBXBuildFile::setWeakLinkedLibrary(bool weakLinked) ++{ ++ if (weakLinked) ++ d->attributes.insert(kPBXBuildFileLibraryWeakLinked); ++ else ++ d->attributes.remove(kPBXBuildFileLibraryWeakLinked); ++} ++ ++QString PBXBuildFile::comment() const ++{ ++ if (d->reference) { ++ PBXBuildPhase *phase = dynamic_cast(parent()); ++ Q_ASSERT(phase); ++ return QString(QLatin1String("%1 in %2")).arg(d->reference->name()).arg(phase->name()); ++ } ++ ++ return PBXObject::comment(); ++} ++ ++QByteArray PBXBuildFile::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ if (d->reference) { ++ data.append(d->reference->hashData()); ++ } ++ ++ return data; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxbuildfile.h b/src/lib/corelib/generators/xcode/pbxbuildfile.h +new file mode 100644 +index 0000000..bc25ab8 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxbuildfile.h +@@ -0,0 +1,74 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXBUILDFILE_H ++#define PBXBUILDFILE_H ++ ++#include "pbxobject.h" ++#include ++#include ++ ++class PBXBuildPhase; ++class PBXFileReference; ++ ++class PBXBuildFilePrivate; ++ ++/*! ++ * \brief The PBXBuildFile class represents a file reference that is used in a build phase. ++ * Its primary purpose is to allow additional build settings to be applied at the file level. ++ */ ++class PBXBuildFile : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXBuildFile(PBXBuildPhase *parent = 0); ++ virtual ~PBXBuildFile(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++ ++ QByteArray hashData() const; ++ ++ PBXFileReference *fileReference() const; ++ void setFileReference(PBXFileReference *reference); ++ ++ QString absolutePath() const; ++ QSet attributes() const; ++ ++ bool isWeakLinkedLibrary() const; ++ void setWeakLinkedLibrary(bool weakLinked); ++ ++private: ++ PBXBuildFilePrivate *d; ++}; ++ ++#endif // PBXBUILDFILE_H +diff --git a/src/lib/corelib/generators/xcode/pbxbuildphase.cpp b/src/lib/corelib/generators/xcode/pbxbuildphase.cpp +new file mode 100644 +index 0000000..fc371aa +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxbuildphase.cpp +@@ -0,0 +1,94 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxbuildfile.h" ++#include "pbxbuildphase.h" ++#include "pbxfilereference.h" ++#include "pbxtarget.h" ++ ++class PBXBuildPhasePrivate ++{ ++public: ++ QList buildFiles; ++}; ++ ++PBXBuildPhase::PBXBuildPhase(PBXTarget *parent) : ++ PBXObject(parent), d(new PBXBuildPhasePrivate) ++{ ++} ++ ++PBXBuildPhase::~PBXBuildPhase() ++{ ++ delete d; ++} ++ ++PBXObjectMap PBXBuildPhase::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("buildActionMask"), std::numeric_limits::max()); ++ ++ QVariantList fileReferenceList; ++ foreach (PBXBuildFile *buildFile, buildFiles()) ++ fileReferenceList += QVariant::fromValue(buildFile->identifier()); ++ self.insert(QLatin1String("files"), fileReferenceList); ++ ++ self.insert(QLatin1String("runOnlyForDeploymentPostprocessing"), 0); ++ ++ return self; ++} ++ ++QByteArray PBXBuildPhase::hashData() const ++{ ++ QByteArray data; ++ PBXTarget *target = dynamic_cast(parent()); ++ if (target) { ++ data.append(target->hashData()); ++ } ++ return data; // TODO: Build phases for which a target may have multiple of, will not work ++} ++ ++QList PBXBuildPhase::buildFiles() const ++{ ++ return d->buildFiles; ++} ++ ++PBXBuildFile *PBXBuildPhase::addReference(PBXFileReference *reference) ++{ ++ Q_FOREACH (PBXBuildFile *buildFile, d->buildFiles) { ++ if (buildFile->fileReference() == reference) { ++ return buildFile; ++ } ++ } ++ ++ PBXBuildFile *buildFile = new PBXBuildFile(this); ++ buildFile->setFileReference(reference); ++ d->buildFiles.append(buildFile); ++ return buildFile; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxbuildphase.h b/src/lib/corelib/generators/xcode/pbxbuildphase.h +new file mode 100644 +index 0000000..b80ec81 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxbuildphase.h +@@ -0,0 +1,65 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXBUILDPHASE_H ++#define PBXBUILDPHASE_H ++ ++#include "pbxobject.h" ++#include ++ ++class PBXBuildFile; ++class PBXFileReference; ++class PBXTarget; ++ ++class PBXBuildPhasePrivate; ++ ++class PBXBuildPhase : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXBuildPhase(PBXTarget *parent = 0); ++ virtual ~PBXBuildPhase(); ++ ++ virtual QString name() const = 0; ++ ++ PBXObjectMap toMap() const; ++ ++ QByteArray hashData() const; ++ ++ QList buildFiles() const; ++ ++ PBXBuildFile *addReference(PBXFileReference *reference); ++ bool containsFileReferenceIdenticalTo(PBXFileReference *reference); ++ ++private: ++ PBXBuildPhasePrivate *d; ++}; ++ ++#endif // PBXBUILDPHASE_H +diff --git a/src/lib/corelib/generators/xcode/pbxcontainer.cpp b/src/lib/corelib/generators/xcode/pbxcontainer.cpp +new file mode 100644 +index 0000000..6ce359a +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxcontainer.cpp +@@ -0,0 +1,60 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxcontainer.h" ++#include "pbxgroup.h" ++ ++class PBXContainerPrivate ++{ ++public: ++ PBXGroup group; ++}; ++ ++PBXContainer::PBXContainer(QObject *parent) : ++ PBXObject(parent), d(new PBXContainerPrivate) ++{ ++} ++ ++PBXContainer::~PBXContainer() ++{ ++ delete d; ++} ++ ++QByteArray PBXContainer::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ data.append(d->group.hashData()); ++ return data; ++} ++ ++PBXGroup *PBXContainer::rootGroup() const ++{ ++ return &d->group; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxcontainer.h b/src/lib/corelib/generators/xcode/pbxcontainer.h +new file mode 100644 +index 0000000..3263149 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxcontainer.h +@@ -0,0 +1,59 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXCONTAINER_H ++#define PBXCONTAINER_H ++ ++#include "pbxobject.h" ++#include ++ ++class PBXFileReference; ++class PBXGroup; ++ ++class PBXContainerPrivate; ++ ++class PBXContainer : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXContainer(QObject *parent = 0); ++ virtual ~PBXContainer(); ++ ++ QByteArray hashData() const; ++ ++ PBXGroup *rootGroup() const; ++ ++ PBXFileReference *fileReferenceForPath(const QString &path); ++ ++private: ++ PBXContainerPrivate *d; ++}; ++ ++#endif // PBXCONTAINER_H +diff --git a/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp +new file mode 100644 +index 0000000..46f18dd +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.cpp +@@ -0,0 +1,113 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxcontaineritemproxy.h" ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "pbxtargetdependency.h" ++ ++class PBXContainerItemProxyPrivate ++{ ++public: ++ PBXProject *containerPortal; ++ PBXTarget *target; ++}; ++ ++PBXContainerItemProxy::PBXContainerItemProxy(PBXTargetDependency *parent) : ++ PBXObject(parent), d(new PBXContainerItemProxyPrivate) ++{ ++} ++ ++PBXContainerItemProxy::~PBXContainerItemProxy() ++{ ++ delete d; ++} ++ ++QString PBXContainerItemProxy::isa() const ++{ ++ return QLatin1String("PBXContainerItemProxy"); ++} ++ ++PBXObjectMap PBXContainerItemProxy::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->containerPortal) ++ self.insert(QLatin1String("containerPortal"), QVariant::fromValue(d->containerPortal->identifier())); ++ ++ self.insert(QLatin1String("proxyType"), 1); // TODO: Always the same? ++ ++ if (d->target) { ++ // We deliberately don't store the actual PBXObjectIdentifier, ++ // because Xcode itself doesn't write the ID with a comment annotation ++ self.insert(QLatin1String("remoteGlobalIDString"), d->target->identifier().identifier()); ++ self.insert(QLatin1String("remoteInfo"), d->target->name()); ++ } ++ ++ return self; ++} ++ ++QString PBXContainerItemProxy::comment() const ++{ ++ return PBXObject::comment(); ++} ++ ++QByteArray PBXContainerItemProxy::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ if (d->containerPortal) { ++ data.append(d->containerPortal->hashData()); ++ } ++ ++ if (d->target) { ++ data.append(d->target->hashData()); ++ } ++ ++ return data; ++} ++ ++PBXProject *PBXContainerItemProxy::containerPortal() const ++{ ++ return d->containerPortal; ++} ++ ++void PBXContainerItemProxy::setContainerPortal(PBXProject *containerPortal) ++{ ++ d->containerPortal = containerPortal; ++} ++ ++PBXTarget *PBXContainerItemProxy::target() const ++{ ++ return d->target; ++} ++ ++void PBXContainerItemProxy::setTarget(PBXTarget *target) ++{ ++ d->target = target; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h +new file mode 100644 +index 0000000..34205aa +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxcontaineritemproxy.h +@@ -0,0 +1,65 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXCONTAINERITEMPROXY_H ++#define PBXCONTAINERITEMPROXY_H ++ ++#include "pbxobject.h" ++ ++class PBXContainerItemProxyPrivate; ++class PBXProject; ++class PBXTarget; ++class PBXTargetDependency; ++ ++class PBXContainerItemProxy : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXContainerItemProxy(PBXTargetDependency *parent = 0); ++ virtual ~PBXContainerItemProxy(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++ ++ QByteArray hashData() const; ++ ++ PBXProject *containerPortal() const; ++ void setContainerPortal(PBXProject *containerPortal); ++ ++ PBXTarget *target() const; ++ void setTarget(PBXTarget *target); ++ ++private: ++ PBXContainerItemProxyPrivate *d; ++}; ++ ++#endif // PBXCONTAINERITEMPROXY_H +diff --git a/src/lib/corelib/generators/xcode/pbxfileencoding.h b/src/lib/corelib/generators/xcode/pbxfileencoding.h +new file mode 100644 +index 0000000..50af8c5 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxfileencoding.h +@@ -0,0 +1,57 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXFILEENCODING_H ++#define PBXFILEENCODING_H ++ ++namespace PBX ++{ ++ typedef enum { ++ Default = 0, ++ UTF8 = 4, ++ UTF16 = 10, ++ UTF16_BE = 0x90000100, ++ UTF16_LE = 0x94000100, ++ Western = 30, ++ Japanese = 0x80000001, ++ TraditionalChinese = 0x80000002, ++ Korean = 0x80000003, ++ Arabic = 0x80000004, ++ Hebrew = 0x80000005, ++ Greek = 0x80000006, ++ Cyrillic = 0x80000007, ++ SimplifiedChinese = 0x80000019, ++ CentralEuropean = 0x8000001D, ++ Turkish = 0x80000023, ++ Icelandic = 0x80000025 ++ } PBXFileEncoding; ++} ++ ++#endif // PBXFILEENCODING_H +diff --git a/src/lib/corelib/generators/xcode/pbxfilereference.cpp b/src/lib/corelib/generators/xcode/pbxfilereference.cpp +new file mode 100644 +index 0000000..b5dbd94 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxfilereference.cpp +@@ -0,0 +1,66 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxfileencoding.h" ++#include "pbxfilereference.h" ++#include "pbxfiletype.h" ++#include "pbxgroup.h" ++#include "pbxsourcetree.h" ++#include ++ ++class PBXFileReferencePrivate ++{ ++public: ++}; ++ ++PBXFileReference::PBXFileReference(QObject *parent) : ++ PBXReference(parent), d(new PBXFileReferencePrivate) ++{ ++} ++ ++PBXFileReference::~PBXFileReference() ++{ ++ delete d; ++} ++ ++QString PBXFileReference::isa() const ++{ ++ return QLatin1String("PBXFileReference"); ++} ++ ++PBXObjectMap PBXFileReference::toMap() const ++{ ++ PBXObjectMap self = PBXReference::toMap(); ++ self.insert(QLatin1String("fileEncoding"), PBX::Default); ++ //self.insert(QLatin1String("explicitFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).suffix())); // PBXFileType ++ //self.insert(QLatin1String("includeInIndex"), 0); ++ self.insert(QLatin1String("lastKnownFileType"), PBXFileType::typeForFileExtension(QFileInfo(path()).suffix())); // PBXFileType ++ return self; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxfilereference.h b/src/lib/corelib/generators/xcode/pbxfilereference.h +new file mode 100644 +index 0000000..7a56120 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxfilereference.h +@@ -0,0 +1,52 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXFILEREFERENCE_H ++#define PBXFILEREFERENCE_H ++ ++#include "pbxreference.h" ++ ++class PBXFileReferencePrivate; ++ ++class PBXFileReference : public PBXReference ++{ ++ Q_OBJECT ++public: ++ explicit PBXFileReference(QObject *parent = 0); ++ virtual ~PBXFileReference(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++private: ++ PBXFileReferencePrivate *d; ++}; ++ ++#endif // PBXFILEREFERENCE_H +diff --git a/src/lib/corelib/generators/xcode/pbxfiletype.cpp b/src/lib/corelib/generators/xcode/pbxfiletype.cpp +new file mode 100644 +index 0000000..4f7b58d +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxfiletype.cpp +@@ -0,0 +1,51 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxfiletype.h" ++ ++PBXFileType::PBXFileType(QObject *parent) : ++ QObject(parent) ++{ ++} ++ ++QString PBXFileType::typeForFileExtension(const QString &fileExtension) ++{ ++ if (fileExtension == QLatin1String("a")) ++ return QLatin1String("archive.ar"); ++ if (fileExtension == QLatin1String("app")) ++ return QLatin1String("wrapper.application"); ++ if (fileExtension == QLatin1String("cpp")) ++ return QLatin1String("sourcecode.cpp.cpp"); ++ if (fileExtension == QLatin1String("dylib")) ++ return QLatin1String("compiled.mach-o.dylib"); ++ if (fileExtension == QLatin1String("h")) ++ return QLatin1String("sourcecode.c.h"); ++ return QString("text"); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxfiletype.h b/src/lib/corelib/generators/xcode/pbxfiletype.h +new file mode 100644 +index 0000000..b289250 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxfiletype.h +@@ -0,0 +1,47 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXFILETYPE_H ++#define PBXFILETYPE_H ++ ++#include ++ ++class PBXFileType : public QObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXFileType(QObject *parent = 0); ++ ++ static QStringList allTypes(); ++ static QStringList fileExtensionsForType(const QString &type); ++ static QString typeForFileExtension(const QString &fileExtension); ++}; ++ ++#endif // PBXFILETYPE_H +diff --git a/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp +new file mode 100644 +index 0000000..6b417e7 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.cpp +@@ -0,0 +1,27 @@ ++#include "pbxframeworksbuildphase.h" ++ ++PBXFrameworksBuildPhase::PBXFrameworksBuildPhase(PBXTarget *parent) : ++ PBXBuildPhase(parent) ++{ ++} ++ ++QString PBXFrameworksBuildPhase::name() const ++{ ++ return QLatin1String("Frameworks"); ++} ++ ++QString PBXFrameworksBuildPhase::isa() const ++{ ++ return QLatin1String("PBXFrameworksBuildPhase"); ++} ++ ++PBXObjectMap PBXFrameworksBuildPhase::toMap() const ++{ ++ PBXObjectMap self = PBXBuildPhase::toMap(); ++ return self; ++} ++ ++QString PBXFrameworksBuildPhase::comment() const ++{ ++ return name(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h +new file mode 100644 +index 0000000..0553089 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxframeworksbuildphase.h +@@ -0,0 +1,50 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXFRAMEWORKSBUILDPHASE_H ++#define PBXFRAMEWORKSBUILDPHASE_H ++ ++#include "pbxbuildphase.h" ++ ++class PBXFrameworksBuildPhase : public PBXBuildPhase ++{ ++ Q_OBJECT ++public: ++ explicit PBXFrameworksBuildPhase(PBXTarget *parent = 0); ++ ++ QString name() const; ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++}; ++ ++#endif // PBXFRAMEWORKSBUILDPHASE_H +diff --git a/src/lib/corelib/generators/xcode/pbxgroup.cpp b/src/lib/corelib/generators/xcode/pbxgroup.cpp +new file mode 100644 +index 0000000..ea48b22 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxgroup.cpp +@@ -0,0 +1,119 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxfilereference.h" ++#include "pbxgroup.h" ++ ++class PBXGroupPrivate ++{ ++public: ++ QList children; ++}; ++ ++PBXGroup::PBXGroup(QObject *parent) : ++ PBXReference(parent), d(new PBXGroupPrivate) ++{ ++} ++ ++PBXGroup::~PBXGroup() ++{ ++ delete d; ++} ++ ++PBXGroup *PBXGroup::groupWithName(const QString &name, PBXGroup *parentGroup) ++{ ++ PBXGroup *group = new PBXGroup(); ++ group->setName(name); ++ ++ if (parentGroup) { ++ group->setParent(parentGroup); ++ parentGroup->addItem(group); ++ } ++ ++ return group; ++} ++ ++QString PBXGroup::isa() const ++{ ++ return QLatin1String("PBXGroup"); ++} ++ ++PBXObjectMap PBXGroup::toMap() const ++{ ++ PBXObjectMap self = PBXReference::toMap(); ++ ++ QVariantList childIdentifiers; ++ foreach (PBXReference *reference, d->children) ++ childIdentifiers += QVariant::fromValue(reference->identifier()); ++ ++ self.insert(QLatin1String("children"), childIdentifiers); ++ ++ return self; ++} ++ ++QList PBXGroup::children() const ++{ ++ return d->children; ++} ++ ++void PBXGroup::addItem(PBXReference *item) ++{ ++ d->children.append(item); ++} ++ ++void PBXGroup::insertItem(PBXReference *item, int index) ++{ ++ d->children.insert(index, item); ++} ++ ++void PBXGroup::removeItem(PBXReference *item) ++{ ++ d->children.removeOne(item); ++} ++ ++QList PBXGroup::addFiles(const QStringList &files, bool copy, bool createGroupsRecursively) ++{ ++ QList fileRefs; ++ foreach (const QString &filePath, files) ++ { ++ PBXFileReference *fileReference = new PBXFileReference(this); ++ fileReference->setPath(filePath); ++ fileReference->setName(filePath.mid(filePath.lastIndexOf('/') + 1)); ++ d->children.append(fileReference); ++ fileRefs.append(fileReference); ++ } ++ ++ return fileRefs; ++} ++ ++QString PBXGroup::comment() const ++{ ++ return !path().isEmpty() ? path() : PBXReference::comment(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxgroup.h b/src/lib/corelib/generators/xcode/pbxgroup.h +new file mode 100644 +index 0000000..e03b8eb +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxgroup.h +@@ -0,0 +1,71 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXGROUP_H ++#define PBXGROUP_H ++ ++#include "pbxreference.h" ++ ++class PBXFileReference; ++ ++class PBXGroupPrivate; ++ ++class PBXGroup : public PBXReference ++{ ++ Q_OBJECT ++public: ++ explicit PBXGroup(QObject *parent = 0); ++ virtual ~PBXGroup(); ++ ++ static PBXGroup *groupWithName(const QString &name, PBXGroup *parentGroup = 0); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QList children() const; ++ ++ bool containsItem(PBXReference *item) const; ++ ++ void addItem(PBXReference *item); ++ void insertItem(PBXReference *item, int index); ++ void removeItem(PBXReference *item); ++ ++ /*! ++ * \param files list of absolute paths ++ */ ++ QList addFiles(const QStringList &files, bool copy, bool createGroupsRecursively); ++ ++ QString comment() const; ++ ++private: ++ PBXGroupPrivate *d; ++}; ++ ++#endif // PBXGROUP_H +diff --git a/src/lib/corelib/generators/xcode/pbxlegacytarget.cpp b/src/lib/corelib/generators/xcode/pbxlegacytarget.cpp +new file mode 100644 +index 0000000..7f887b3 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxlegacytarget.cpp +@@ -0,0 +1,111 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxfilereference.h" ++#include "pbxlegacytarget.h" ++#include "pbxproject.h" ++ ++class PBXLegacyTargetPrivate ++{ ++public: ++ QString buildToolPath; ++ QString buildArgumentsString; ++ QString buildWorkingDirectory; ++ bool passBuildSettingsInEnvironment; ++}; ++ ++PBXLegacyTarget::PBXLegacyTarget(PBXProject *parent) : ++ PBXTarget(parent), d(new PBXLegacyTargetPrivate) ++{ ++ d->buildToolPath = QLatin1String("/bin/bash"); ++ d->buildArgumentsString = QLatin1String("$(ACTION)"); ++ d->buildWorkingDirectory = QLatin1String("$BUILT_PRODUCTS_DIR"); ++ d->passBuildSettingsInEnvironment = true; ++} ++ ++PBXLegacyTarget::~PBXLegacyTarget() ++{ ++ delete d; ++} ++ ++QString PBXLegacyTarget::isa() const ++{ ++ return QLatin1String("PBXLegacyTarget"); ++} ++ ++PBXObjectMap PBXLegacyTarget::toMap() const ++{ ++ PBXObjectMap self = PBXTarget::toMap(); ++ self.insert(QLatin1String("buildToolPath"), d->buildToolPath); ++ self.insert(QLatin1String("buildArgumentsString"), d->buildArgumentsString); ++ self.insert(QLatin1String("buildWorkingDirectory"), d->buildWorkingDirectory); ++ self.insert(QLatin1String("passBuildSettingsInEnvironment"), d->passBuildSettingsInEnvironment ? 1 : 0); ++ return self; ++} ++ ++QString PBXLegacyTarget::buildToolPath() const ++{ ++ return d->buildToolPath; ++} ++ ++void PBXLegacyTarget::setBuildToolPath(const QString &buildToolPath) ++{ ++ d->buildToolPath = buildToolPath; ++} ++ ++QString PBXLegacyTarget::buildArgumentsString() const ++{ ++ return d->buildArgumentsString; ++} ++ ++void PBXLegacyTarget::setBuildArgumentsString(const QString &buildArgumentsString) ++{ ++ d->buildArgumentsString = buildArgumentsString; ++} ++ ++QString PBXLegacyTarget::buildWorkingDirectory() const ++{ ++ return d->buildWorkingDirectory; ++} ++ ++void PBXLegacyTarget::setBuildWorkingDirectory(const QString &buildWorkingDirectory) ++{ ++ d->buildWorkingDirectory = buildWorkingDirectory; ++} ++ ++bool PBXLegacyTarget::passBuildSettingsInEnvironment() const ++{ ++ return d->passBuildSettingsInEnvironment; ++} ++ ++void PBXLegacyTarget::setPassBuildSettingsInEnvironment(bool passBuildSettingsInEnvironment) ++{ ++ d->passBuildSettingsInEnvironment = passBuildSettingsInEnvironment; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxlegacytarget.h b/src/lib/corelib/generators/xcode/pbxlegacytarget.h +new file mode 100644 +index 0000000..e6b09d4 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxlegacytarget.h +@@ -0,0 +1,65 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXLEGACYTARGET_H ++#define PBXLEGACYTARGET_H ++ ++#include "pbxtarget.h" ++ ++class PBXLegacyTargetPrivate; ++ ++class PBXLegacyTarget : public PBXTarget ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXLegacyTarget) ++public: ++ explicit PBXLegacyTarget(PBXProject *parent = 0); ++ virtual ~PBXLegacyTarget(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString buildToolPath() const; ++ void setBuildToolPath(const QString &buildToolPath); ++ ++ QString buildArgumentsString() const; ++ void setBuildArgumentsString(const QString &buildArgumentsString); ++ ++ QString buildWorkingDirectory() const; ++ void setBuildWorkingDirectory(const QString &buildWorkingDirectory); ++ ++ bool passBuildSettingsInEnvironment() const; ++ void setPassBuildSettingsInEnvironment(bool passBuildSettingsInEnvironment); ++ ++private: ++ PBXLegacyTargetPrivate *d; ++}; ++ ++#endif // PBXLEGACYTARGET_H +diff --git a/src/lib/corelib/generators/xcode/pbxnativetarget.cpp b/src/lib/corelib/generators/xcode/pbxnativetarget.cpp +new file mode 100644 +index 0000000..f9e648c +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxnativetarget.cpp +@@ -0,0 +1,68 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxbuildphase.h" ++#include "pbxfilereference.h" ++#include "pbxnativetarget.h" ++#include "pbxproject.h" ++#include "xcconfigurationlist.h" ++ ++class PBXNativeTargetPrivate ++{ ++public: ++ PBXNativeTargetPrivate(); ++}; ++ ++PBXNativeTargetPrivate::PBXNativeTargetPrivate() ++{ ++} ++ ++PBXNativeTarget::PBXNativeTarget(PBXProject *parent) : ++ PBXTarget(parent), d(new PBXNativeTargetPrivate) ++{ ++} ++ ++PBXNativeTarget::~PBXNativeTarget() ++{ ++ delete d; ++} ++ ++QString PBXNativeTarget::isa() const ++{ ++ return QLatin1String("PBXNativeTarget"); ++} ++ ++PBXObjectMap PBXNativeTarget::toMap() const ++{ ++ PBXObjectMap self = PBXTarget::toMap(); ++ self.insert(QLatin1String("productInstallPath"), QLatin1String("$(HOME)/Applications")); ++ self.insert(QLatin1String("buildRules"), QList()); ++ return self; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxnativetarget.h b/src/lib/corelib/generators/xcode/pbxnativetarget.h +new file mode 100644 +index 0000000..a06b979 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxnativetarget.h +@@ -0,0 +1,53 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXNATIVETARGET_H ++#define PBXNATIVETARGET_H ++ ++#include "pbxtarget.h" ++ ++class PBXNativeTargetPrivate; ++ ++class PBXNativeTarget : public PBXTarget ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXNativeTarget) ++public: ++ explicit PBXNativeTarget(PBXProject *parent = 0); ++ ~PBXNativeTarget(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++private: ++ PBXNativeTargetPrivate *d; ++}; ++ ++#endif // PBXNATIVETARGET_H +diff --git a/src/lib/corelib/generators/xcode/pbxobject.cpp b/src/lib/corelib/generators/xcode/pbxobject.cpp +new file mode 100644 +index 0000000..0ea69d6 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxobject.cpp +@@ -0,0 +1,96 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxobject.h" ++#include ++#include ++#include ++#include ++ ++static QMap generatedIdentifiers; ++ ++class PBXObjectPrivate ++{ ++public: ++ QString identifier; ++}; ++ ++PBXObject::PBXObject(QObject *parent) ++ : QObject(parent), d(new PBXObjectPrivate) ++{ ++} ++ ++PBXObject::~PBXObject() ++{ ++ delete d; ++} ++ ++QString PBXObject::createIdentifier(const QByteArray &hashData) ++{ ++ if (qgetenv("QBS_XCODE_GENERATOR_DETERMINISTIC_IDENTIFIERS") == QByteArray("1")) { ++ QCryptographicHash hash(QCryptographicHash::Sha3_512); ++ hash.addData(hashData); ++ const QString result = hash.result().left(12).toHex().toUpper(); ++ if (generatedIdentifiers.contains(result) ++ /*&& generatedIdentifiers.value(result) != hashData*/) { ++ // hash collision! ++ fprintf(stderr, "hash collision %s - %s\n", result.toUtf8().data(), hashData.data()); ++ abort(); ++ } ++ generatedIdentifiers.insert(result, hashData); ++ return result; ++ } ++ ++ return QUuid::createUuid().toByteArray().left(12).toHex().toUpper(); ++} ++ ++PBXObjectIdentifier PBXObject::identifier() const ++{ ++ if (d->identifier.isEmpty()) ++ d->identifier = createIdentifier(isa().toUtf8() + QByteArray(":") + hashData()); ++ return PBXObjectIdentifier(d->identifier, isa(), comment()); ++} ++ ++PBXObjectMap PBXObject::toMap() const ++{ ++ PBXObjectMap self; ++ self.insert(QLatin1String("isa"), isa()); ++ return self; ++} ++ ++QString PBXObject::comment() const ++{ ++ return isa(); ++} ++ ++QByteArray PBXObject::hashData() const ++{ ++ return QByteArray(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxobject.h b/src/lib/corelib/generators/xcode/pbxobject.h +new file mode 100644 +index 0000000..d4ede7e +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxobject.h +@@ -0,0 +1,124 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXOBJECT_H ++#define PBXOBJECT_H ++ ++#include ++#include ++#include ++ ++class PBXObjectPrivate; ++ ++class PBXObjectIdentifier { ++public: ++ PBXObjectIdentifier() { ++ } ++ ++ PBXObjectIdentifier(const PBXObjectIdentifier &other) { ++ _key = other._key; ++ _isa = other._isa; ++ _comment = other._comment; ++ } ++ ++ PBXObjectIdentifier(const QLatin1String &identifier, const QString &isa = QString(), const QString &comment = QString()) { ++ _key = identifier; ++ _isa = isa; ++ _comment = comment; ++ } ++ ++ PBXObjectIdentifier(const QString &identifier, const QString &isa = QString(), const QString &comment = QString()) { ++ _key = identifier; ++ _isa = isa; ++ _comment = comment; ++ } ++ ++ QString toString() const { ++ return identifier(); ++ } ++ ++ QString identifier() const { ++ return _key; ++ } ++ ++ QString isa() const { ++ return _isa; ++ } ++ ++ QString comment() const { ++ return _comment; ++ } ++ ++ bool operator==(const PBXObjectIdentifier &other) const { ++ return _key == other._key && _isa == other._isa && _comment == other._comment; ++ } ++ ++ bool operator<(const PBXObjectIdentifier &other) const { ++ return _isa + _key < other._isa + other._key; ++ } ++ ++private: ++ QString _key; ++ QString _isa; ++ QString _comment; ++}; ++ ++Q_DECLARE_METATYPE(PBXObjectIdentifier) ++ ++inline bool qHash(const PBXObjectIdentifier &other) { ++ return qHash(other.toString()); ++} ++ ++typedef QMap PBXObjectMap; ++Q_DECLARE_METATYPE(PBXObjectMap) ++ ++class PBXObject : public QObject ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXObject) ++protected: ++ explicit PBXObject(QObject *parent = 0); ++ ++public: ++ virtual ~PBXObject(); ++ ++ static QString createIdentifier(const QByteArray &hashData); ++ ++ PBXObjectIdentifier identifier() const; ++ virtual QString isa() const = 0; ++ virtual PBXObjectMap toMap() const; ++ virtual QString comment() const; ++ virtual QByteArray hashData() const; ++ ++private: ++ PBXObjectPrivate *d; ++}; ++ ++#endif // PBXOBJECT_H +diff --git a/src/lib/corelib/generators/xcode/pbxproducttype.cpp b/src/lib/corelib/generators/xcode/pbxproducttype.cpp +new file mode 100644 +index 0000000..657b020 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxproducttype.cpp +@@ -0,0 +1,75 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxproducttype.h" ++ ++QString PBX::productTypeString(PBX::PBXProductType productType) ++{ ++ switch (productType) ++ { ++ case Application: ++ return QLatin1String("com.apple.product-type.application"); ++ case Tool: ++ return QLatin1String("com.apple.product-type.tool"); ++ case LibraryStatic: ++ return QLatin1String("com.apple.product-type.library.static"); ++ case LibraryDynamic: ++ return QLatin1String("com.apple.product-type.library.dynamic"); ++ case Framework: ++ return QLatin1String("com.apple.product-type.framework"); ++ case StaticFramework: ++ return QLatin1String("com.apple.product-type.framework.static"); ++ case Bundle: ++ return QLatin1String("com.apple.product-type.bundle"); ++ case KernelExtension: ++ return QLatin1String("com.apple.product-type.kernel-extension"); ++ case KernelExtensionIOKit: ++ return QLatin1String("com.apple.product-type.kernel-extension.iokit"); ++ } ++ ++ QLatin1String("com.apple.product-type.application.java"); ++ QLatin1String("com.apple.product-type.application.shallow"); ++ QLatin1String("com.apple.product-type.app-extension"); ++ QLatin1String("com.apple.product-type.bundle.shallow"); ++ QLatin1String("com.apple.product-type.bundle.unit-test"); ++ QLatin1String("com.apple.product-type.bundle.ocunit-test"); ++ QLatin1String("com.apple.product-type.framework.shallow"); ++ QLatin1String("com.apple.product-type.in-app-purchase-content"); ++ QLatin1String("com.apple.product-type.kernel-extension.shallow"); ++ QLatin1String("com.apple.product-type.kernel-extension.iokit.shallow"); ++ QLatin1String("com.apple.product-type.library.java.archive"); ++ QLatin1String("com.apple.product-type.objfile"); ++ QLatin1String("com.apple.product-type.pluginkit-plugin"); ++ QLatin1String("com.apple.product-type.spotlight-importer"); ++ QLatin1String("com.apple.product-type.tool.java"); ++ QLatin1String("com.apple.product-type.xpc-service"); ++ ++ return QString(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxproducttype.h b/src/lib/corelib/generators/xcode/pbxproducttype.h +new file mode 100644 +index 0000000..cf2e48e +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxproducttype.h +@@ -0,0 +1,53 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXPRODUCTTYPE_H ++#define PBXPRODUCTTYPE_H ++ ++#include ++ ++namespace PBX ++{ ++ typedef enum { ++ Application = 1, ++ Tool, ++ LibraryStatic, ++ LibraryDynamic, ++ Framework, ++ StaticFramework, ++ Bundle, ++ KernelExtension, ++ KernelExtensionIOKit ++ } PBXProductType; ++ ++ QString productTypeString(PBXProductType productType); ++} ++ ++#endif // PBXPRODUCTTYPE_H +diff --git a/src/lib/corelib/generators/xcode/pbxproject.cpp b/src/lib/corelib/generators/xcode/pbxproject.cpp +new file mode 100644 +index 0000000..3ab709c +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxproject.cpp +@@ -0,0 +1,333 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "opensteppropertylist.h" ++#include "pbxbuildphase.h" ++#include "pbxbuildfile.h" ++#include "pbxcontaineritemproxy.h" ++#include "pbxgroup.h" ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "pbxtargetdependency.h" ++#include "xcbuildconfiguration.h" ++#include "xcconfigurationlist.h" ++#include ++#include ++#include ++ ++static const QString kClassPrefixAttribute = QLatin1String("CLASSPREFIX"); ++static const QString kLastUpgradeCheckAttribute = QLatin1String("LastUpgradeCheck"); ++static const QString kOrganizationNameAttribute = QLatin1String("ORGANIZATIONNAME"); ++static const QString kTargetAttributesAttribute = QLatin1String("TargetAttributes"); ++ ++class PBXProjectPrivate ++{ ++public: ++ QString name; ++ QString projectAbsolutePath; ++ QString projectDirPath; ++ PBXGroup *frameworksRefGroup; ++ PBXGroup *productRefGroup; ++ QList targets; ++ XCConfigurationList *configurationList; ++ QVariantMap attributes; ++}; ++ ++PBXProject::PBXProject(const QString &projectAbsolutePath, QObject *parent) : ++ PBXContainer(parent), d(new PBXProjectPrivate) ++{ ++ d->projectAbsolutePath = projectAbsolutePath; ++ d->configurationList = new XCConfigurationList(this); ++ ++ d->frameworksRefGroup = new PBXGroup(rootGroup()); ++ d->frameworksRefGroup->setName(QLatin1String("Frameworks")); ++ ++ d->productRefGroup = new PBXGroup(rootGroup()); ++ d->productRefGroup->setName(QLatin1String("Products")); ++ d->productRefGroup->setSourceTree(PBX::Group); ++} ++ ++PBXProject::~PBXProject() ++{ ++ delete d; ++} ++ ++QString PBXProject::isa() const ++{ ++ return QLatin1String("PBXProject"); ++} ++ ++PBXObjectMap PBXProject::toMap() const ++{ ++ // HACK: Make sure "Frameworks", "Products" groups are always at the bottom ++ rootGroup()->removeItem(d->frameworksRefGroup); ++ rootGroup()->removeItem(d->productRefGroup); ++ rootGroup()->addItem(d->frameworksRefGroup); ++ rootGroup()->addItem(d->productRefGroup); ++ ++ PBXObjectMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("attributes"), d->attributes); ++ self.insert(QLatin1String("buildConfigurationList"), QVariant::fromValue(buildConfigurationList()->identifier())); ++ self.insert(QLatin1String("compatibilityVersion"), QLatin1String("Xcode 3.2")); ++ self.insert(QLatin1String("developmentRegion"), QLatin1String("English")); ++ self.insert(QLatin1String("hasScannedForEncodings"), QLatin1String("1")); ++ self.insert(QLatin1String("knownRegions"), QStringList() << QLatin1String("en")); ++ self.insert(QLatin1String("mainGroup"), QVariant::fromValue(rootGroup()->identifier())); ++ self.insert(QLatin1String("productRefGroup"), QVariant::fromValue(productRefGroup()->identifier())); ++ self.insert(QLatin1String("projectDirPath"), d->projectDirPath); ++ //self.insert(QLatin1String("projectReferences"), QVariantList()); // array of map { ProductGroup:, ProjectRef: }? ++ self.insert(QLatin1String("projectRoot"), QLatin1String("")); ++ ++ QVariantList targetIdentifiers; ++ foreach (PBXTarget *target, targets()) ++ targetIdentifiers += QVariant::fromValue(target->identifier()); ++ self.insert(QLatin1String("targets"), targetIdentifiers); ++ ++ return self; ++} ++ ++QString PBXProject::comment() const ++{ ++ return QLatin1String("Project object"); ++} ++ ++QByteArray PBXProject::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ data.append(d->name); ++ return data; ++} ++ ++PBXGroup *PBXProject::productRefGroup() const ++{ ++ return d->productRefGroup; ++} ++ ++PBXGroup *PBXProject::frameworksRefGroup() const ++{ ++ return d->frameworksRefGroup; ++} ++ ++QList PBXProject::targets() const ++{ ++ return d->targets; ++} ++ ++PBXTarget *PBXProject::targetNamed(const QString &targetName) const ++{ ++ foreach (PBXTarget *target, d->targets) ++ { ++ if (target->name() == targetName) ++ return target; ++ } ++ ++ return NULL; ++} ++ ++void PBXProject::addTarget(PBXTarget *target) ++{ ++ d->targets.append(target); ++} ++ ++QString PBXProject::name() const ++{ ++ return d->name; ++} ++ ++void PBXProject::setName(const QString &name) ++{ ++ d->name = name; ++} ++ ++QVariantMap PBXProject::attributes() const ++{ ++ return d->attributes; ++} ++ ++void PBXProject::setAttributes(const QVariantMap &attributes) ++{ ++ d->attributes = attributes; ++} ++ ++QVariant PBXProject::attribute(const QString &name) const ++{ ++ return d->attributes[name]; ++} ++ ++void PBXProject::setAttribute(const QString &name, const QVariant &value) ++{ ++ d->attributes[name] = value; ++} ++ ++void PBXProject::removeAttribute(const QString &name) ++{ ++ d->attributes.remove(name); ++} ++ ++PBXProject::Version PBXProject::lastUpgradeCheck() const ++{ ++ const QString s = d->attributes[kLastUpgradeCheckAttribute].toString().mid(0, 3); ++ Version v; ++ v.major = s.left(2).toInt(); ++ v.minor = s.right(1).toInt(); ++ return v; ++} ++ ++void PBXProject::setLastUpgradeCheck(const PBXProject::Version &version) ++{ ++ const int major = qBound(0, version.major, 99); ++ const int minor = qBound(0, version.minor, 9); ++ d->attributes[kLastUpgradeCheckAttribute] = ++ QString::number(major).rightJustified(2, QLatin1Char('0')) + ++ QString::number(minor).leftJustified(2, QLatin1Char('0')); ++} ++ ++QString PBXProject::classPrefix() const ++{ ++ return d->attributes[kClassPrefixAttribute].toString(); ++} ++ ++void PBXProject::setClassPrefix(const QString &classPrefix) ++{ ++ d->attributes[kClassPrefixAttribute] = classPrefix; ++} ++ ++QString PBXProject::organizationName() const ++{ ++ return d->attributes[kOrganizationNameAttribute].toString(); ++} ++ ++void PBXProject::setOrganizationName(const QString &organizationName) ++{ ++ d->attributes[kOrganizationNameAttribute] = organizationName; ++} ++ ++QString PBXProject::projectWrapperPath() const ++{ ++ return QFileInfo(d->projectAbsolutePath).absolutePath(); ++} ++ ++QString PBXProject::projectDirPath() const ++{ ++ return d->projectDirPath; ++} ++ ++void PBXProject::setProjectDirPath(const QString &projectDirPath) ++{ ++ d->projectDirPath = projectDirPath; ++} ++ ++void PBXProject::setBuildSetting(const QString &key, const QVariant &value) ++{ ++ foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) ++ configuration->setBuildSetting(key, value); ++} ++ ++XCConfigurationList *PBXProject::buildConfigurationList() const ++{ ++ return d->configurationList; ++} ++ ++static void writeGroup(PBXObjectMap &objects, PBXGroup *group) ++{ ++ objects.insert(group->identifier(), QVariant::fromValue(group->toMap())); ++ foreach (PBXReference *child, group->children()) ++ { ++ if (PBXGroup *group = dynamic_cast(child)) ++ writeGroup(objects, group); ++ else ++ objects.insert(child->identifier(), QVariant::fromValue(child->toMap())); ++ } ++} ++ ++bool PBXProject::writeToFileSystemProjectFile(bool projectWrite, bool userWrite, bool checkNeedsRevert) ++{ ++ PBXObjectMap objects; ++ objects.insert(identifier(), QVariant::fromValue(toMap())); ++ ++ // Add the project's root group (i.e. the root node in the file tree which contains everything) ++ writeGroup(objects, rootGroup()); ++ ++ // Add the project's build configuration list and build configurations to the object map ++ objects.insert(d->configurationList->identifier(), QVariant::fromValue(d->configurationList->toMap())); ++ foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) ++ objects.insert(configuration->identifier(), QVariant::fromValue(configuration->toMap())); ++ ++ // Add the build targets to the object map ++ foreach (PBXTarget *target, targets()) ++ { ++ objects.insert(target->identifier(), QVariant::fromValue(target->toMap())); ++ ++ // Add the target's build configuration list and build configurations to the object map ++ objects.insert(target->buildConfigurationList()->identifier(), QVariant::fromValue(target->buildConfigurationList()->toMap())); ++ foreach (XCBuildConfiguration *configuration, target->buildConfigurationList()->buildConfigurations()) ++ objects.insert(configuration->identifier(), QVariant::fromValue(configuration->toMap())); ++ ++ // Add the target's dependency objects to the object map ++ foreach (PBXTargetDependency *dependency, target->targetDependencies()) { ++ objects.insert(dependency->identifier(), QVariant::fromValue(dependency->toMap())); ++ ++ if (dependency->targetProxy()) { ++ objects.insert(dependency->targetProxy()->identifier(), QVariant::fromValue(dependency->targetProxy()->toMap())); ++ } ++ } ++ ++ // Add the target's build phases... ++ foreach (PBXBuildPhase *buildPhase, target->buildPhases()) ++ { ++ objects.insert(buildPhase->identifier(), QVariant::fromValue(buildPhase->toMap())); ++ ++ // And each of the files within ++ foreach (PBXBuildFile *buildFile, buildPhase->buildFiles()) ++ { ++ objects.insert(buildFile->identifier(), QVariant::fromValue(buildFile->toMap())); ++ } ++ } ++ } ++ ++ // add all subobjects to objects map! ++ ++ // Build the root pbxproj object map ++ PBXObjectMap map; ++ map.insert(QLatin1String("archiveVersion"), QLatin1String("1")); ++ map.insert(QLatin1String("classes"), QVariantMap()); ++ map.insert(QLatin1String("objectVersion"), QLatin1String("46")); ++ map.insert(QLatin1String("objects"), QVariant::fromValue(objects)); ++ map.insert(QLatin1String("rootObject"), QVariant::fromValue(identifier())); ++ ++ QFile file(d->projectAbsolutePath); ++ if (file.open(QIODevice::WriteOnly)) ++ { ++ file.write(QByteArray("// !$*UTF8*$!\n")); ++ file.write(OpenStepPropertyList::toString(map).toUtf8()); ++ } ++ ++ return file.error() == QFile::NoError; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxproject.h b/src/lib/corelib/generators/xcode/pbxproject.h +new file mode 100644 +index 0000000..7a2ed88 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxproject.h +@@ -0,0 +1,114 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXPROJECT_H ++#define PBXPROJECT_H ++ ++#include "pbxcontainer.h" ++ ++class PBXTarget; ++class XCConfigurationList; ++ ++class PBXProjectPrivate; ++ ++class PBXProject : public PBXContainer ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXProject) ++public: ++ typedef struct { ++ int major; ++ int minor; ++ } Version; ++ ++ explicit PBXProject(const QString &projectAbsolutePath, QObject *parent = 0); ++ ~PBXProject(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++ ++ QByteArray hashData() const; ++ ++ PBXGroup *frameworksRefGroup() const; ++ ++ /*! ++ * Group in the root of the Xcode file tree which contains references to product target files. ++ * ++ * For example, this will contain references to output application and library executables. ++ */ ++ PBXGroup *productRefGroup() const; ++ ++ static bool isProjectWrapperExtension(const QString &extension); ++ static PBXProject *projectWithFile(const QString &projectAbsolutePath); ++ ++ QList targets() const; ++ PBXTarget *targetNamed(const QString &targetName) const; ++ ++ void addTarget(PBXTarget *target); ++ ++ QString name() const; ++ void setName(const QString &name); ++ ++ QVariantMap attributes() const; ++ void setAttributes(const QVariantMap &attributes); ++ ++ QVariant attribute(const QString &name) const; ++ void setAttribute(const QString &name, const QVariant &value); ++ void removeAttribute(const QString &name); ++ ++ Version lastUpgradeCheck() const; ++ void setLastUpgradeCheck(const Version &version); ++ ++ QString classPrefix() const; ++ void setClassPrefix(const QString &classPrefix); ++ ++ QString organizationName() const; ++ void setOrganizationName(const QString &organizationName); ++ ++ /*! ++ * Returns the path of the .xcodeproj wrapper directory. ++ */ ++ QString projectWrapperPath() const; ++ ++ QString projectDirPath() const; ++ void setProjectDirPath(const QString &projectDirPath); ++ ++ void setBuildSetting(const QString &key, const QVariant &value); ++ ++ XCConfigurationList *buildConfigurationList() const; ++ bool writeToFileSystemProjectFile(bool projectWrite, bool userWrite, bool checkNeedsRevert); ++ ++private: ++ PBXProjectPrivate *d; ++}; ++ ++#endif // PBXPROJECT_H +diff --git a/src/lib/corelib/generators/xcode/pbxreference.cpp b/src/lib/corelib/generators/xcode/pbxreference.cpp +new file mode 100644 +index 0000000..651f6fe +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxreference.cpp +@@ -0,0 +1,127 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxreference.h" ++ ++class PBXReferencePrivate ++{ ++public: ++ PBXReferencePrivate(); ++ QString name; ++ QString path; ++ PBX::PBXSourceTree sourceTree; ++}; ++ ++PBXReferencePrivate::PBXReferencePrivate() ++ : name(), sourceTree() ++{ ++} ++ ++PBXReference::PBXReference(QObject *parent) : ++ PBXObject(parent), d(new PBXReferencePrivate) ++{ ++} ++ ++PBXReference::~PBXReference() ++{ ++ delete d; ++} ++ ++PBXObjectMap PBXReference::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ ++ if (!name().isEmpty() && name() != path()) { ++ self.insert(QLatin1String("name"), name()); ++ } ++ ++ // Xcode crashes if path is empty, even though it should never be ++ if (!d->path.isEmpty()) ++ self.insert(QLatin1String("path"), d->path); // relative path including the file name ++ ++ self.insert(QLatin1String("sourceTree"), PBX::sourceTreeString(sourceTree())); ++ return self; ++} ++ ++/*! ++ * \brief PBXReference::name ++ * \return display name of file or group, usually the same as the name of the file or directory. ++ */ ++QString PBXReference::name() const ++{ ++ return d->name; ++} ++ ++void PBXReference::setName(const QString &name) ++{ ++ d->name = name; ++} ++ ++QString PBXReference::path() const ++{ ++ return d->path; ++} ++ ++void PBXReference::setPath(const QString &filePath) ++{ ++ d->path = filePath; ++} ++ ++PBX::PBXSourceTree PBXReference::sourceTree() const ++{ ++ return d->sourceTree; ++} ++ ++void PBXReference::setSourceTree(PBX::PBXSourceTree sourceTree) ++{ ++ d->sourceTree = sourceTree; ++} ++ ++QString PBXReference::comment() const ++{ ++ return name(); ++} ++ ++QByteArray PBXReference::hashData() const ++{ ++ QByteArray data = PBXObject::hashData(); ++ if (!d->path.isEmpty()) { ++ QStringList pathComponents; ++ const PBXReference *ref = this; ++ do { ++ pathComponents.insert(0, ref->path().toUtf8()); ++ } while ((ref = dynamic_cast(ref->parent()))); ++ ++ data.append(pathComponents.join("/").toUtf8()); ++ } else if (!d->name.isEmpty()) { ++ data.append(d->name.toUtf8()); ++ } ++ return data; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxreference.h b/src/lib/corelib/generators/xcode/pbxreference.h +new file mode 100644 +index 0000000..3400a25 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxreference.h +@@ -0,0 +1,72 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXREFERENCE_H ++#define PBXREFERENCE_H ++ ++#include "pbxobject.h" ++#include "pbxsourcetree.h" ++#include ++ ++class PBXReferencePrivate; ++ ++// Mono calls this PBXFileElement? ++class PBXReference : public PBXObject ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXReference) ++protected: ++ explicit PBXReference(QObject *parent = 0); ++ virtual ~PBXReference(); ++ ++public: ++ PBXObjectMap toMap() const; ++ ++ QString name() const; ++ void setName(const QString &name); ++ ++ /*! ++ * File path of the referenced file, relative based on the value of \a sourceTree. ++ */ ++ QString path() const; ++ void setPath(const QString &path); ++ ++ PBX::PBXSourceTree sourceTree() const; ++ void setSourceTree(PBX::PBXSourceTree sourceTree); ++ ++ QString comment() const; ++ ++ QByteArray hashData() const; ++ ++private: ++ PBXReferencePrivate *d; ++}; ++ ++#endif // PBXREFERENCE_H +diff --git a/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp +new file mode 100644 +index 0000000..902d05d +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.cpp +@@ -0,0 +1,57 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxsourcesbuildphase.h" ++ ++PBXSourcesBuildPhase::PBXSourcesBuildPhase(PBXTarget *parent) : ++ PBXBuildPhase(parent) ++{ ++} ++ ++QString PBXSourcesBuildPhase::name() const ++{ ++ return QLatin1String("Sources"); ++} ++ ++QString PBXSourcesBuildPhase::isa() const ++{ ++ return QLatin1String("PBXSourcesBuildPhase"); ++} ++ ++PBXObjectMap PBXSourcesBuildPhase::toMap() const ++{ ++ PBXObjectMap self = PBXBuildPhase::toMap(); ++ return self; ++} ++ ++QString PBXSourcesBuildPhase::comment() const ++{ ++ return name(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h +new file mode 100644 +index 0000000..e841720 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxsourcesbuildphase.h +@@ -0,0 +1,53 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXSOURCESBUILDPHASE_H ++#define PBXSOURCESBUILDPHASE_H ++ ++#include "pbxbuildphase.h" ++ ++/*! ++ * \brief The PBXSourcesBuildPhase class represents the build phase in which source files are compiled. ++ */ ++class PBXSourcesBuildPhase : public PBXBuildPhase ++{ ++ Q_OBJECT ++public: ++ explicit PBXSourcesBuildPhase(PBXTarget *parent = 0); ++ ++ QString name() const; ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++}; ++ ++#endif // PBXSOURCESBUILDPHASE_H +diff --git a/src/lib/corelib/generators/xcode/pbxsourcetree.cpp b/src/lib/corelib/generators/xcode/pbxsourcetree.cpp +new file mode 100644 +index 0000000..d2163aa +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxsourcetree.cpp +@@ -0,0 +1,50 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxsourcetree.h" ++ ++QString PBX::sourceTreeString(PBX::PBXSourceTree tree) ++{ ++ switch (tree) ++ { ++ case Absolute: ++ return QLatin1String(""); ++ case Group: ++ return QLatin1String(""); ++ case SourceRoot: ++ return QLatin1String("SOURCE_ROOT"); ++ case BuildProductDir: ++ return QLatin1String("BUILT_PRODUCTS_DIR"); ++ case SdkRoot: ++ return QLatin1String("SDKROOT"); ++ } ++ ++ return QString(); ++} +diff --git a/src/lib/corelib/generators/xcode/pbxsourcetree.h b/src/lib/corelib/generators/xcode/pbxsourcetree.h +new file mode 100644 +index 0000000..f5252eb +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxsourcetree.h +@@ -0,0 +1,52 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXSOURCETREE_H ++#define PBXSOURCETREE_H ++ ++#include ++ ++namespace PBX ++{ ++ /*! ++ * Location that the file reference's path is relative to. ++ */ ++ typedef enum { ++ Absolute, ++ Group, ++ SourceRoot, ++ BuildProductDir, ++ SdkRoot ++ } PBXSourceTree; ++ ++ QString sourceTreeString(PBXSourceTree tree); ++} ++ ++#endif // PBXSOURCETREE_H +diff --git a/src/lib/corelib/generators/xcode/pbxtarget.cpp b/src/lib/corelib/generators/xcode/pbxtarget.cpp +new file mode 100644 +index 0000000..03f4407 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxtarget.cpp +@@ -0,0 +1,192 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxfilereference.h" ++#include "pbxframeworksbuildphase.h" ++#include "pbxproject.h" ++#include "pbxsourcesbuildphase.h" ++#include "pbxtarget.h" ++#include "pbxtargetdependency.h" ++#include "xcbuildconfiguration.h" ++#include "xcconfigurationlist.h" ++ ++class PBXTargetPrivate ++{ ++public: ++ PBXTargetPrivate(); ++ QString name; ++ QString productName; ++ PBX::PBXProductType productType; ++ XCConfigurationList *configurationList; ++ PBXFrameworksBuildPhase *frameworksBuildPhase; ++ PBXSourcesBuildPhase *sourcesBuildPhase; ++ PBXFileReference *productReference; ++ QList targetDependencies; ++}; ++ ++PBXTargetPrivate::PBXTargetPrivate() ++ : name(), productType(), configurationList(), sourcesBuildPhase(), productReference(), targetDependencies() ++{ ++} ++ ++PBXTarget::PBXTarget(PBXProject *parent) : ++ PBXObject(parent), d(new PBXTargetPrivate) ++{ ++ d->configurationList = new XCConfigurationList(this); ++ d->frameworksBuildPhase = new PBXFrameworksBuildPhase(this); ++ d->sourcesBuildPhase = new PBXSourcesBuildPhase(this); ++} ++ ++PBXTarget::~PBXTarget() ++{ ++ delete d; ++} ++ ++PBXObjectMap PBXTarget::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ self.insert(QLatin1String("name"), name()); ++ self.insert(QLatin1String("productName"), productName()); ++ self.insert(QLatin1String("productType"), PBX::productTypeString(d->productType)); ++ ++ self.insert(QLatin1String("buildConfigurationList"), QVariant::fromValue(buildConfigurationList()->identifier())); ++ ++ QVariantList buildPhaseReferences; ++ foreach (PBXBuildPhase *buildPhase, buildPhases()) ++ buildPhaseReferences += QVariant::fromValue(buildPhase->identifier()); ++ self.insert(QLatin1String("buildPhases"), buildPhaseReferences); ++ ++ QVariantList targetDependencyReferences; ++ foreach (PBXTargetDependency *dependency, d->targetDependencies) ++ targetDependencyReferences += QVariant::fromValue(dependency->identifier()); ++ self.insert(QLatin1String("dependencies"), targetDependencyReferences); ++ ++ if (d->productReference) ++ self.insert(QLatin1String("productReference"), QVariant::fromValue(d->productReference->identifier())); ++ ++ return self; ++} ++ ++QString PBXTarget::name() const ++{ ++ return d->name; ++} ++ ++void PBXTarget::setName(const QString &name) ++{ ++ d->name = name; ++} ++ ++QString PBXTarget::productName() const ++{ ++ return d->productName; ++} ++ ++void PBXTarget::setProductName(const QString &productName) ++{ ++ d->productName = productName; ++} ++ ++PBX::PBXProductType PBXTarget::productType() const ++{ ++ return d->productType; ++} ++ ++void PBXTarget::setProductType(PBX::PBXProductType productType) ++{ ++ d->productType = productType; ++} ++ ++XCConfigurationList *PBXTarget::buildConfigurationList() const ++{ ++ return d->configurationList; ++} ++ ++QList &PBXTarget::targetDependencies() const ++{ ++ return d->targetDependencies; ++} ++ ++QVariant PBXTarget::buildSetting(const QString &key, const QString &buildConfigurationName) ++{ ++ foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) { ++ if (configuration->name() == buildConfigurationName) { ++ return configuration->buildSetting(key); ++ } ++ } ++ ++ return QVariant(); ++} ++ ++void PBXTarget::setBuildSetting(const QString &key, const QVariant &value) ++{ ++ foreach (XCBuildConfiguration *configuration, d->configurationList->buildConfigurations()) ++ configuration->setBuildSetting(key, value); ++} ++ ++QList PBXTarget::buildPhases() const ++{ ++ QList phases; ++ phases.append(d->frameworksBuildPhase); ++ phases.append(d->sourcesBuildPhase); ++ return phases; ++} ++ ++PBXBuildPhase *PBXTarget::defaultFrameworksBuildPhase() ++{ ++ return d->frameworksBuildPhase; ++} ++ ++PBXBuildPhase *PBXTarget::defaultSourceCodeBuildPhase() ++{ ++ return d->sourcesBuildPhase; ++} ++ ++QString PBXTarget::comment() const ++{ ++ return name(); ++} ++ ++QByteArray PBXTarget::hashData() const ++{ ++ QByteArray hashData = PBXObject::hashData(); ++ hashData.append(d->name.toUtf8()); ++ return hashData; ++} ++ ++PBXFileReference *PBXTarget::productReference() const ++{ ++ return d->productReference; ++} ++ ++void PBXTarget::setProductReference(PBXFileReference *productReference) ++{ ++ d->productReference = productReference; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxtarget.h b/src/lib/corelib/generators/xcode/pbxtarget.h +new file mode 100644 +index 0000000..e915481 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxtarget.h +@@ -0,0 +1,100 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXTARGET_H ++#define PBXTARGET_H ++ ++#include "pbxobject.h" ++#include "pbxproducttype.h" ++#include ++ ++class PBXBuildPhase; ++class PBXFileReference; ++class PBXProject; ++class PBXTargetDependency; ++class XCConfigurationList; ++ ++class PBXTargetPrivate; ++ ++class PBXTarget : public PBXObject ++{ ++ Q_OBJECT ++ Q_DISABLE_COPY(PBXTarget) ++public: ++ explicit PBXTarget(PBXProject *parent = 0); ++ ~PBXTarget(); ++ ++ PBXObjectMap toMap() const; ++ ++ QString name() const; ++ void setName(const QString &name); ++ ++ QString productName() const; ++ void setProductName(const QString &productName); ++ ++ PBX::PBXProductType productType() const; ++ void setProductType(PBX::PBXProductType productType); ++ ++ /*! ++ * File reference to the target's output file. ++ */ ++ PBXFileReference *productReference() const; ++ void setProductReference(PBXFileReference *productReference); ++ ++ /*! ++ * List of the target's build configurations. This is never NULL. ++ */ ++ XCConfigurationList *buildConfigurationList() const; ++ ++ QList &targetDependencies() const; ++ ++ QString expandedValue(const QString &string, void *buildParameters) const; ++ ++ QVariant buildSetting(const QString &key, const QString &buildConfigurationName); ++ void setBuildSetting(const QString &key, const QVariant &value); ++ ++ QList buildPhases() const; ++ PBXBuildPhase *buildPhaseOfClass(void *clazz) const; ++ void addBuildPhase(PBXBuildPhase *buildPhase); ++ PBXBuildPhase *defaultFrameworksBuildPhase(); ++ PBXBuildPhase *defaultLinkBuildPhase(); ++ PBXBuildPhase *defaultSourceCodeBuildPhase(); ++ PBXBuildPhase *defaultResourceBuildPhase(); ++ PBXBuildPhase *defaultHeaderBuildPhase(); ++ ++ QString comment() const; ++ ++ QByteArray hashData() const; ++ ++private: ++ PBXTargetPrivate *d; ++}; ++ ++#endif // PBXTARGET_H +diff --git a/src/lib/corelib/generators/xcode/pbxtargetdependency.cpp b/src/lib/corelib/generators/xcode/pbxtargetdependency.cpp +new file mode 100644 +index 0000000..2eedcd6 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxtargetdependency.cpp +@@ -0,0 +1,99 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxcontaineritemproxy.h" ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "pbxtargetdependency.h" ++ ++class PBXTargetDependencyPrivate ++{ ++public: ++ PBXTargetDependencyPrivate(); ++ PBXContainerItemProxy *targetProxy; ++}; ++ ++PBXTargetDependencyPrivate::PBXTargetDependencyPrivate() ++ : targetProxy() ++{ ++} ++ ++PBXTargetDependency::PBXTargetDependency(PBXProject *parent) ++ : PBXObject(parent), d(new PBXTargetDependencyPrivate) ++{ ++ d->targetProxy = new PBXContainerItemProxy(this); ++ d->targetProxy->setContainerPortal(parent); ++} ++ ++PBXTargetDependency::~PBXTargetDependency() ++{ ++ delete d; ++} ++ ++QString PBXTargetDependency::isa() const ++{ ++ return QLatin1String("PBXTargetDependency"); ++} ++ ++PBXObjectMap PBXTargetDependency::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->targetProxy) { ++ self.insert(QLatin1String("targetProxy"), QVariant::fromValue(d->targetProxy->identifier())); ++ if (d->targetProxy->target()) ++ self.insert(QLatin1String("target"), QVariant::fromValue(d->targetProxy->target()->identifier())); ++ } ++ return self; ++} ++ ++QString PBXTargetDependency::comment() const ++{ ++ return PBXObject::comment(); ++} ++ ++PBXTarget *PBXTargetDependency::target() const ++{ ++ return d->targetProxy->target(); ++} ++ ++void PBXTargetDependency::setTarget(PBXTarget *target) ++{ ++ d->targetProxy->setTarget(target); ++} ++ ++PBXContainerItemProxy *PBXTargetDependency::targetProxy() const ++{ ++ return d->targetProxy; ++} ++ ++void PBXTargetDependency::setTargetProxy(PBXContainerItemProxy *targetProxy) ++{ ++ d->targetProxy = targetProxy; ++} +diff --git a/src/lib/corelib/generators/xcode/pbxtargetdependency.h b/src/lib/corelib/generators/xcode/pbxtargetdependency.h +new file mode 100644 +index 0000000..7a146cb +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/pbxtargetdependency.h +@@ -0,0 +1,65 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef PBXTARGETDEPENDENCY_H ++#define PBXTARGETDEPENDENCY_H ++ ++#include "pbxobject.h" ++ ++class PBXContainerItemProxy; ++class PBXProject; ++class PBXTarget; ++class PBXTargetDependencyPrivate; ++ ++class PBXTargetDependency : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit PBXTargetDependency(PBXProject *parent = 0); ++ virtual ~PBXTargetDependency(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString comment() const; ++ ++ // http://www.monobjc.net/xcode-project-file-format.html claims ++ // this is a PBXNativeTarget but Xcode says "legacy" (shell script) targets work too... ++ PBXTarget *target() const; ++ void setTarget(PBXTarget *target); ++ ++ PBXContainerItemProxy *targetProxy() const; ++ void setTargetProxy(PBXContainerItemProxy *targetProxy); ++ ++private: ++ PBXTargetDependencyPrivate *d; ++}; ++ ++#endif // PBXTARGETDEPENDENCY_H +diff --git a/src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp b/src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp +new file mode 100644 +index 0000000..541b503 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcbuildconfiguration.cpp +@@ -0,0 +1,92 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcbuildconfiguration.h" ++#include "xcconfigurationlist.h" ++ ++class XCBuildConfigurationPrivate ++{ ++public: ++ QString name; ++ QVariantMap buildSettings; ++ XCBuildConfiguration *baseConfiguration; ++}; ++ ++XCBuildConfiguration::XCBuildConfiguration(XCConfigurationList *parent) : ++ PBXObject(parent), d(new XCBuildConfigurationPrivate) ++{ ++ d->baseConfiguration = 0; ++} ++ ++XCBuildConfiguration::~XCBuildConfiguration() ++{ ++ delete d; ++} ++ ++QString XCBuildConfiguration::isa() const ++{ ++ return QLatin1String("XCBuildConfiguration"); ++} ++ ++PBXObjectMap XCBuildConfiguration::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ if (d->baseConfiguration) { ++ self.insert(QLatin1String("baseConfigurationReference"), QVariant::fromValue(d->baseConfiguration->identifier())); ++ } ++ self.insert(QLatin1String("buildSettings"), d->buildSettings); ++ self.insert(QLatin1String("name"), d->name); ++ return self; ++} ++ ++QString XCBuildConfiguration::name() const ++{ ++ return d->name; ++} ++ ++void XCBuildConfiguration::setName(const QString &name) ++{ ++ d->name = name; ++} ++ ++QVariant XCBuildConfiguration::buildSetting(const QString &key) ++{ ++ return d->buildSettings.value(key); ++} ++ ++void XCBuildConfiguration::setBuildSetting(const QString &key, const QVariant &value) ++{ ++ d->buildSettings.insert(key, value); ++} ++ ++QString XCBuildConfiguration::comment() const ++{ ++ return name(); ++} +diff --git a/src/lib/corelib/generators/xcode/xcbuildconfiguration.h b/src/lib/corelib/generators/xcode/xcbuildconfiguration.h +new file mode 100644 +index 0000000..115a88c +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcbuildconfiguration.h +@@ -0,0 +1,69 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCBUILDCONFIGURATION_H ++#define XCBUILDCONFIGURATION_H ++ ++#include "pbxobject.h" ++#include ++ ++class PBXFileReference; ++class XCConfigurationList; ++ ++class XCBuildConfigurationPrivate; ++ ++class XCBuildConfiguration : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit XCBuildConfiguration(XCConfigurationList *parent = 0); ++ ~XCBuildConfiguration(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QString name() const; ++ void setName(const QString &name); ++ ++ static bool isValidBaseConfigurationFile(PBXFileReference *reference); ++ ++ void setBaseConfigurationReference(PBXFileReference *reference); ++ PBXFileReference *baseConfigurationReference(); ++ ++ QVariant buildSetting(const QString &key); ++ void setBuildSetting(const QString &key, const QVariant &value); ++ ++ QString comment() const; ++ ++private: ++ XCBuildConfigurationPrivate *d; ++}; ++ ++#endif // XCBUILDCONFIGURATION_H +diff --git a/src/lib/corelib/generators/xcode/xcconfigurationlist.cpp b/src/lib/corelib/generators/xcode/xcconfigurationlist.cpp +new file mode 100644 +index 0000000..54d2d39 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcconfigurationlist.cpp +@@ -0,0 +1,147 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "xcbuildconfiguration.h" ++#include "xcconfigurationlist.h" ++ ++class XCConfigurationListPrivate ++{ ++public: ++ XCConfigurationListPrivate(); ++ QList buildConfigurations; ++ XCBuildConfiguration *defaultBuildConfiguration; ++}; ++ ++XCConfigurationListPrivate::XCConfigurationListPrivate() ++ : buildConfigurations(), defaultBuildConfiguration() ++{ ++} ++ ++XCConfigurationList::XCConfigurationList(PBXObject *parent) : ++ PBXObject(parent), d(new XCConfigurationListPrivate) ++{ ++} ++ ++XCConfigurationList::~XCConfigurationList() ++{ ++ delete d; ++} ++ ++QString XCConfigurationList::isa() const ++{ ++ return QLatin1String("XCConfigurationList"); ++} ++ ++PBXObjectMap XCConfigurationList::toMap() const ++{ ++ PBXObjectMap self = PBXObject::toMap(); ++ ++ QVariantList buildConfigurationReferences; ++ foreach (XCBuildConfiguration *configuration, buildConfigurations()) ++ buildConfigurationReferences += QVariant::fromValue(configuration->identifier()); ++ self.insert(QLatin1String("buildConfigurations"), buildConfigurationReferences); ++ ++ if (d->defaultBuildConfiguration) ++ { ++ self.insert(QLatin1String("defaultConfigurationIsVisible"), 0); ++ self.insert(QLatin1String("defaultConfigurationName"), d->defaultBuildConfiguration->name()); ++ } ++ ++ return self; ++} ++ ++QList XCConfigurationList::buildConfigurations() const ++{ ++ return d->buildConfigurations; ++} ++ ++XCBuildConfiguration *XCConfigurationList::addBuildConfiguration(const QString &name) ++{ ++ foreach (XCBuildConfiguration *config, d->buildConfigurations) { ++ if (config->name() == name) ++ return config; ++ } ++ ++ XCBuildConfiguration *buildConfiguration = new XCBuildConfiguration(); ++ buildConfiguration->setName(name); ++ d->buildConfigurations.append(buildConfiguration); ++ return buildConfiguration; ++} ++ ++void XCConfigurationList::removeBuildConfiguration(const QString &name) ++{ ++ for (int i = 0; i < d->buildConfigurations.size(); ++i) ++ { ++ if (d->buildConfigurations[i]->name() == name) ++ { ++ XCBuildConfiguration *configuration = d->buildConfigurations.takeAt(i); ++ if (d->defaultBuildConfiguration == configuration) ++ d->defaultBuildConfiguration = NULL; ++ delete configuration; ++ break; ++ } ++ } ++} ++ ++void XCConfigurationList::setDefaultBuildConfiguration(const QString &name) ++{ ++ foreach (XCBuildConfiguration *configuration, d->buildConfigurations) ++ { ++ if (configuration->name() == name) ++ { ++ d->defaultBuildConfiguration = configuration; ++ break; ++ } ++ } ++} ++ ++QString XCConfigurationList::comment() const ++{ ++ QString parentIsa; ++ QString parentName; ++ ++ PBXTarget *target = dynamic_cast(parent()); ++ PBXProject *project = dynamic_cast(parent()); ++ ++ if (target) ++ { ++ parentIsa = target->isa(); ++ parentName = target->name(); ++ } ++ else if (project) ++ { ++ parentIsa = project->isa(); ++ parentName = project->name(); ++ } ++ ++ return QString(QLatin1String("Build configuration list for %1 \"%2\"")).arg(parentIsa).arg(parentName); ++} +diff --git a/src/lib/corelib/generators/xcode/xcconfigurationlist.h b/src/lib/corelib/generators/xcode/xcconfigurationlist.h +new file mode 100644 +index 0000000..b693478 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcconfigurationlist.h +@@ -0,0 +1,67 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCCONFIGURATIONLIST_H ++#define XCCONFIGURATIONLIST_H ++ ++#include "pbxobject.h" ++#include ++ ++class XCBuildConfiguration; ++ ++class XCConfigurationListPrivate; ++ ++class XCConfigurationList : public PBXObject ++{ ++ Q_OBJECT ++public: ++ explicit XCConfigurationList(PBXObject *parent = 0); ++ ~XCConfigurationList(); ++ ++ QString isa() const; ++ PBXObjectMap toMap() const; ++ ++ QList buildConfigurations() const; ++ ++ /*! ++ * Adds a build configuration named \p name if one with that name does not already exist. ++ * Returns the new or existing build configuration. ++ */ ++ XCBuildConfiguration *addBuildConfiguration(const QString &name); ++ void removeBuildConfiguration(const QString &name); ++ void setDefaultBuildConfiguration(const QString &name); ++ ++ QString comment() const; ++ ++private: ++ XCConfigurationListPrivate *d; ++}; ++ ++#endif // XCCONFIGURATIONLIST_H +diff --git a/src/lib/corelib/generators/xcode/xcode.pri b/src/lib/corelib/generators/xcode/xcode.pri +new file mode 100644 +index 0000000..76ada9e +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcode.pri +@@ -0,0 +1,59 @@ ++HEADERS += \ ++ $$PWD/opensteppropertylist.h \ ++ $$PWD/pbx.h \ ++ $$PWD/pbxbuildfile.h \ ++ $$PWD/pbxbuildphase.h \ ++ $$PWD/pbxcontainer.h \ ++ $$PWD/pbxcontaineritemproxy.h \ ++ $$PWD/pbxfileencoding.h \ ++ $$PWD/pbxfilereference.h \ ++ $$PWD/pbxfiletype.h \ ++ $$PWD/pbxframeworksbuildphase.h \ ++ $$PWD/pbxgroup.h \ ++ $$PWD/pbxlegacytarget.h \ ++ $$PWD/pbxnativetarget.h \ ++ $$PWD/pbxobject.h \ ++ $$PWD/pbxproducttype.h \ ++ $$PWD/pbxproject.h \ ++ $$PWD/pbxreference.h \ ++ $$PWD/pbxsourcesbuildphase.h \ ++ $$PWD/pbxsourcetree.h \ ++ $$PWD/pbxtarget.h \ ++ $$PWD/pbxtargetdependency.h \ ++ $$PWD/xcbuildconfiguration.h \ ++ $$PWD/xcconfigurationlist.h \ ++ $$PWD/xcodegenerator.h \ ++ $$PWD/xcodenativegenerator.h \ ++ $$PWD/xcodesimplegenerator.h \ ++ $$PWD/xcscheme.h \ ++ $$PWD/xcsettings.h \ ++ $$PWD/xcodebuildsettingmapping.h ++ ++SOURCES += \ ++ $$PWD/opensteppropertylist.cpp \ ++ $$PWD/pbxbuildfile.cpp \ ++ $$PWD/pbxbuildphase.cpp \ ++ $$PWD/pbxcontainer.cpp \ ++ $$PWD/pbxcontaineritemproxy.cpp \ ++ $$PWD/pbxfilereference.cpp \ ++ $$PWD/pbxfiletype.cpp \ ++ $$PWD/pbxframeworksbuildphase.cpp \ ++ $$PWD/pbxgroup.cpp \ ++ $$PWD/pbxlegacytarget.cpp \ ++ $$PWD/pbxnativetarget.cpp \ ++ $$PWD/pbxobject.cpp \ ++ $$PWD/pbxproducttype.cpp \ ++ $$PWD/pbxproject.cpp \ ++ $$PWD/pbxreference.cpp \ ++ $$PWD/pbxsourcesbuildphase.cpp \ ++ $$PWD/pbxsourcetree.cpp \ ++ $$PWD/pbxtarget.cpp \ ++ $$PWD/pbxtargetdependency.cpp \ ++ $$PWD/xcbuildconfiguration.cpp \ ++ $$PWD/xcconfigurationlist.cpp \ ++ $$PWD/xcodegenerator.cpp \ ++ $$PWD/xcodenativegenerator.cpp \ ++ $$PWD/xcodesimplegenerator.cpp \ ++ $$PWD/xcscheme.cpp \ ++ $$PWD/xcsettings.cpp \ ++ $$PWD/xcodebuildsettingmapping.cpp +diff --git a/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp +new file mode 100644 +index 0000000..458bf8f +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.cpp +@@ -0,0 +1,366 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcodebuildsettingmapping.h" ++#include "xcodegenerator.h" ++ ++#include ++#include "pbx.h" ++ ++#include ++ ++#include ++ ++namespace qbs { ++ ++using namespace Internal; ++ ++static QVariant _xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group, const QString &moduleName); ++ ++static QVariant xcodeExecutablePrefix(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeExecutableSuffix(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeInfoPlistOutputEncoding(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeArchitecture(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodePreprocessorDefinitions(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeResourcesTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeSdkRoot(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeSupportedPlatforms(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeDylibVersion(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeProductName(const qbs::Project &project, const ProductData &product, const GroupData &group); ++static QVariant xcodeUseHeadermap(const qbs::Project &project, const ProductData &product, const GroupData &group); ++ ++static QVariant qbsProjectModuleProperty(const QString &qbsModuleName, const QString &qbsPropertyName, const qbs::Project &project) ++{ ++ QMapIterator module(project.projectConfiguration()); ++ while (module.hasNext()) { ++ module.next(); ++ QString qbsModName = qbsModuleName; ++ if (module.key() == qbsModName.replace(QLatin1String("."), QLatin1String("/"))) { ++ QMapIterator property(module.value().toMap()); ++ while (property.hasNext()) { ++ property.next(); ++ if (qbsPropertyName == property.key()) { ++ return property.value(); ++ } ++ } ++ } ++ } ++ ++ return QVariant(); ++} ++ ++static QVariant qbsModuleProperty(const QString &qbsModuleName, const QString &qbsPropertyName, const qbs::Project &project, const qbs::ProductData &product, const qbs::GroupData &group) ++{ ++ if (product.isValid()) { ++ return (group.isValid() ? group.properties() : product.moduleProperties()).getModuleProperty(qbsModuleName, qbsPropertyName); ++ } else { ++ return qbsProjectModuleProperty(qbsModuleName, qbsPropertyName, project); ++ } ++ return QVariant(); ++} ++ ++static QVariantList qbsModuleProperties(const QString &qbsModuleName, const QString &qbsPropertyName, const qbs::Project &project, const qbs::ProductData &product, const qbs::GroupData &group) ++{ ++ if (product.isValid()) { ++ return (group.isValid() ? group.properties() : product.moduleProperties()).getModuleProperties(qbsModuleName, qbsPropertyName); ++ } else { ++ return qbsProjectModuleProperty(qbsModuleName, qbsPropertyName, project).toList(); ++ } ++ return QVariantList(); ++} ++ ++void XcodeBuildSettingMapping::applyToProject(PBXProject *xcodeProject, ++ const qbs::Project &project) const { ++ applyToConfiguration(xcodeProject->buildConfigurationList(), project); ++} ++ ++void XcodeBuildSettingMapping::applyToTarget(PBXTarget *xcodeTarget, ++ const qbs::Project &project, ++ const qbs::ProductData &productData, ++ const qbs::GroupData &groupData) const { ++ applyToConfiguration(xcodeTarget->buildConfigurationList(), project, productData, groupData); ++} ++ ++void XcodeBuildSettingMapping::applyToConfiguration(XCConfigurationList *xcodeConfigurationList, ++ const Project &project, ++ const ProductData &productData, ++ const GroupData &groupData) const { ++ foreach (XCBuildConfiguration *xcodeConfiguration, xcodeConfigurationList->buildConfigurations()) ++ applyToConfiguration(xcodeConfiguration, project, productData, groupData); ++} ++ ++void XcodeBuildSettingMapping::applyToConfiguration(XCBuildConfiguration *xcodeConfiguration, ++ const qbs::Project &project, ++ const qbs::ProductData &productData, ++ const qbs::GroupData &groupData) const { ++ QVariant xcodeValue; ++ if (function) { ++ xcodeValue = function(project, productData, groupData); ++ } else if (isList) { ++ QVariantList list; ++ ++ foreach (const QString &qbsName, qbsNames) { ++ list << qbsModuleProperties(qbsModule, qbsName, project, productData, groupData); ++ } ++ ++ if (!list.isEmpty()) { ++ list.append(QLatin1String("$(inherited)")); ++ xcodeValue = list; ++ } ++ } else { ++ xcodeValue = qbsModuleProperty(qbsModule, qbsNames.first(), project, productData, groupData); ++ } ++ ++ // TODO: Figure out what Xcode *really* does... I think it's this ++ bool shouldSerializeAsList = serializedAsList; ++ if (xcodeValue.type() == QVariant::List || xcodeValue.type() == QVariant::StringList) { ++ const QStringList l = xcodeValue.toStringList(); ++ if (l.size() <= 1) { ++ shouldSerializeAsList = false; // || containsQuotedStrings ??? lineLength? ++ } ++ } ++ ++ if (!shouldSerializeAsList && (xcodeValue.type() == QVariant::List ++ || xcodeValue.type() == QVariant::StringList)) { ++ xcodeValue = xcodeValue.toStringList().join(QLatin1Char(' ')); ++ } ++ ++ if (!xcodeValue.isNull()) { ++ xcodeValue = XcodeGenerator::xcodeInsertPlaceholdersInValue(project, xcodeValue); ++ xcodeConfiguration->setBuildSetting(xcodeName, xcodeValue); ++ } ++} ++ ++/*! ++ * \brief Mapping of Xcode build settings to qbs module and property names or functions. ++ */ ++QList XcodeBuildSettingMapping::defaultBuildSettingsMap() ++{ ++ const QString cpp = QLatin1String("cpp"); ++ ++ QList settings; ++ settings += XcodeBuildSettingMapping(QLatin1String("APPLICATION_EXTENSION_API_ONLY"), cpp, QLatin1String("requireAppExtensionSafeApi")); ++ settings += XcodeBuildSettingMapping(QLatin1String("ARCHS"), &xcodeArchitecture, true); ++ settings += XcodeBuildSettingMapping(QLatin1String("CLANG_ENABLE_OBJC_ARC"), cpp, QLatin1String("automaticReferenceCounting")); ++ settings += XcodeBuildSettingMapping(QLatin1String("CREATE_INFOPLIST_SECTION_IN_BINARY"), cpp, QLatin1String("embedInfoPlist")); ++ settings += XcodeBuildSettingMapping(QLatin1String("DYLIB_CURRENT_VERSION"), &xcodeDylibVersion, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("DYLIB_INSTALL_NAME_BASE"), cpp, QLatin1String("installNamePrefix")); ++ settings += XcodeBuildSettingMapping(QLatin1String("EXECUTABLE_EXTENSION"), &xcodeExecutableSuffix, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("EXECUTABLE_PREFIX"), &xcodeExecutablePrefix, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("FRAMEWORK_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("frameworkPaths")); ++ settings += XcodeBuildSettingMapping(QLatin1String("GCC_PREFIX_HEADER"), cpp, QLatin1String("precompiledHeader")); ++ settings += XcodeBuildSettingMapping(QLatin1String("GCC_PREPROCESSOR_DEFINITIONS"), &xcodePreprocessorDefinitions, true); ++ settings += XcodeBuildSettingMapping(QLatin1String("HEADER_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("includePaths")); ++ settings += XcodeBuildSettingMapping(QLatin1String("INFOPLIST_EXPAND_BUILD_SETTINGS"), cpp, QLatin1String("processInfoPlist")); ++ settings += XcodeBuildSettingMapping(QLatin1String("INFOPLIST_FILE"), cpp, QLatin1String("infoPlistFile")); ++ settings += XcodeBuildSettingMapping(QLatin1String("INFOPLIST_OUTPUT_FORMAT"), &xcodeInfoPlistOutputEncoding, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("IPHONEOS_DEPLOYMENT_TARGET"), cpp, QLatin1String("minimumIosVersion")); ++ settings += XcodeBuildSettingMapping(QLatin1String("LD_RUNPATH_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("rpaths"), false); ++ settings += XcodeBuildSettingMapping(QLatin1String("LIBRARY_SEARCH_PATHS"), cpp, QStringList() << QLatin1String("libraryPaths")); ++ settings += XcodeBuildSettingMapping(QLatin1String("MACOSX_DEPLOYMENT_TARGET"), cpp, QLatin1String("minimumOsxVersion")); ++ settings += XcodeBuildSettingMapping(QLatin1String("OTHER_CFLAGS"), cpp, QStringList() << QLatin1String("cFlags") << QLatin1String("objcFlags")); ++ settings += XcodeBuildSettingMapping(QLatin1String("OTHER_CPLUSPLUSFLAGS"), cpp, QStringList() << QLatin1String("cxxFlags") << QLatin1String("objcxxFlags")); ++ settings += XcodeBuildSettingMapping(QLatin1String("OTHER_LDFLAGS"), cpp, QStringList() << QLatin1String("linkerFlags")); ++ settings += XcodeBuildSettingMapping(QLatin1String("PRODUCT_NAME"), &xcodeProductName, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("RESOURCES_TARGETED_DEVICE_FAMILY"), &xcodeResourcesTargetedDeviceFamily, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("SDKROOT"), &xcodeSdkRoot, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("SUPPORTED_PLATFORMS"), &xcodeSupportedPlatforms, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("TARGETED_DEVICE_FAMILY"), &xcodeTargetedDeviceFamily, false); ++ settings += XcodeBuildSettingMapping(QLatin1String("USE_HEADERMAP"), &xcodeUseHeadermap, false); ++ return settings; ++} ++ ++QVariant xcodeExecutablePrefix(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ switch (XcodeGenerator::xcodeProductType(product)) ++ { ++ case PBX::Application: ++ case PBX::Tool: ++ case PBX::Bundle: ++ case PBX::Framework: ++ return qbsModuleProperty(QLatin1String("cpp"), QLatin1String("executablePrefix"), project, product, group).toString(); ++ case PBX::LibraryDynamic: ++ return qbsModuleProperty(QLatin1String("cpp"), QLatin1String("dynamicLibraryPrefix"), project, product, group).toString(); ++ case PBX::LibraryStatic: ++ return qbsModuleProperty(QLatin1String("cpp"), QLatin1String("staticLibraryPrefix"), project, product, group).toString(); ++ default: ++ return QString(); ++ } ++} ++ ++QVariant xcodeExecutableSuffix(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ QString suffix; ++ switch (XcodeGenerator::xcodeProductType(product)) ++ { ++ case PBX::Application: ++ case PBX::Tool: ++ case PBX::Bundle: ++ case PBX::Framework: ++ suffix = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("executableSuffix"), project, product, group).toString(); ++ break; ++ case PBX::LibraryDynamic: ++ suffix = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("dynamicLibrarySuffix"), project, product, group).toString(); ++ break; ++ case PBX::LibraryStatic: ++ suffix = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("staticLibrarySuffix"), project, product, group).toString(); ++ break; ++ default: ++ break; ++ } ++ ++ if (suffix.startsWith(QChar('.'))) ++ suffix.remove(0, 1); ++ ++ return suffix; ++} ++ ++QVariant xcodeInfoPlistOutputEncoding(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ const QString format = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("infoPlistFormat"), project, product, group).toString(); ++ if (format == QLatin1String("xml1")) ++ return QLatin1String("XML"); ++ else if (format == QLatin1String("binary1")) ++ return QLatin1String("binary"); ++ ++ // If we don't know what the format is, return the original string (which may be invalid) ++ // "same-as-input" is valid ++ return format; ++} ++ ++QVariant xcodeArchitecture(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ const QString architecture = qbsModuleProperty(QLatin1String("qbs"), QLatin1String("architecture"), project, product, group).toString(); ++ if (architecture == QLatin1String("x86")) ++ return QLatin1String("i386"); ++ return architecture; ++} ++ ++QVariant xcodePreprocessorDefinitions(const qbs::Project &project, const ProductData &product, const GroupData &group) ++{ ++ QStringList defs; ++ Q_FOREACH (const QVariant &def, qbsModuleProperties(QLatin1String("cpp"), QLatin1String("defines"), project, product, group)) { ++ // Preprocessor definitions need to be double escaped since Xcode ignores quoted strings ++ defs.append(def.toString().replace(QLatin1String("\""), QLatin1String("\\\""))); ++ } ++ return defs; ++} ++ ++QVariant xcodeSdkRoot(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ const QString sdkName = qbsModuleProperty(QLatin1String("cpp"), QLatin1String("xcodeSdkName"), project, product, group).toString(); ++ if (!sdkName.isEmpty()) ++ return sdkName; ++ ++ const QString sysroot = qbsModuleProperty(QLatin1String("qbs"), QLatin1String("sysroot"), project, product, group).toString(); ++ if (!sysroot.isEmpty()) ++ return sysroot; ++ ++ const QVariantList targetOS = qbsModuleProperties(QLatin1String("qbs"), QLatin1String("targetOS"), project, product, group); ++ if (targetOS.contains(QLatin1String("osx"))) ++ return QLatin1String("macosx"); ++ else if (targetOS.contains(QLatin1String("ios"))) ++ return QLatin1String("iphoneos"); ++ else ++ throw ErrorInfo(Tr::tr("Unsupported platform for Xcode project")); ++} ++ ++QVariant xcodeSupportedPlatforms(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ QStringList supportedPlatforms; ++ const QVariantList targetOS = qbsModuleProperties(QLatin1String("qbs"), QLatin1String("targetOS"), project, product, group); ++ if (targetOS.contains(QLatin1String("osx"))) { ++ supportedPlatforms.append(QLatin1String("macosx")); ++ } else if (targetOS.contains(QLatin1String("ios"))) { ++ if (targetOS.contains(QLatin1String("ios-simulator"))) { ++ supportedPlatforms.append(QLatin1String("iphonesimulator")); ++ } ++ supportedPlatforms.append(QLatin1String("iphoneos")); ++ } ++ return supportedPlatforms; ++} ++ ++static inline int targetDeviceFamilyIdentifierFromName(const QString &name) ++{ ++ if (name == "iphone") ++ return 1; ++ if (name == "ipad") ++ return 2; ++ return 0; ++} ++ ++QVariant _xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group, const QString &moduleName) ++{ ++ QStringList targetedDeviceFamily; ++ const QVariantList targetDevices = qbsModuleProperties(moduleName, QLatin1String("targetDevices"), project, product, group); ++ Q_FOREACH (const QVariant &targetDevice, targetDevices) { ++ int devId = targetDeviceFamilyIdentifierFromName(targetDevice.toString()); ++ if (devId != 0) { ++ targetedDeviceFamily.append(QString::number(devId)); ++ } ++ } ++ return targetedDeviceFamily.join(QLatin1Char(',')); ++} ++ ++QVariant xcodeResourcesTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ return _xcodeTargetedDeviceFamily(project, product, group, QLatin1String("ib")); ++} ++ ++QVariant xcodeTargetedDeviceFamily(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ return _xcodeTargetedDeviceFamily(project, product, group, QLatin1String("xcode")); ++} ++ ++QVariant xcodeDylibVersion(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ Q_UNUSED(project); ++ Q_UNUSED(group); ++ if (product.type().contains(QLatin1String("dynamiclibrary"))) ++ return product.version(); ++ return QString(); ++} ++ ++QVariant xcodeProductName(const Project &project, const ProductData &product, const GroupData &group) ++{ ++ Q_UNUSED(project); ++ Q_UNUSED(group); ++ if (!product.targetName().isEmpty()) ++ return product.targetName(); ++ return product.name(); ++} ++ ++QVariant xcodeUseHeadermap(const Project &, const ProductData &, const GroupData &) ++{ ++ return QVariant(false); // We never want to use headermaps in qbs-generated projects ++} ++ ++} // namespace qbs +diff --git a/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h +new file mode 100644 +index 0000000..39474fb +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodebuildsettingmapping.h +@@ -0,0 +1,96 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCODECONFIGURATIONSETTING_H ++#define XCODECONFIGURATIONSETTING_H ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++class PBXProject; ++class PBXTarget; ++class XCBuildConfiguration; ++class XCConfigurationList; ++ ++namespace qbs { ++ ++/*! ++ * \brief Represents the mapping of an Xcode build setting name to a qbs module and property name. ++ */ ++struct XcodeBuildSettingMapping { ++ typedef QVariant (*XcodeBuildSettingValueFunction)(const qbs::Project &project, ++ const qbs::ProductData &productData, ++ const qbs::GroupData &groupData); ++ ++ QString xcodeName; ++ QString qbsModule; ++ QStringList qbsNames; ++ bool isList; ++ bool serializedAsList; ++ XcodeBuildSettingValueFunction function; // overrides previous 3 ++ ++ XcodeBuildSettingMapping(const QString &xcodeName, const QString &qbsModule, ++ const QString &qbsName, bool serializedAsList = false) ++ : xcodeName(xcodeName), qbsModule(qbsModule), qbsNames(qbsName), isList(false), ++ serializedAsList(serializedAsList), function(NULL) {} ++ ++ XcodeBuildSettingMapping(const QString &xcodeName, const QString &qbsModule, ++ const QStringList &qbsNames, bool serializedAsList = true) ++ : xcodeName(xcodeName), qbsModule(qbsModule), qbsNames(qbsNames), isList(true), ++ serializedAsList(serializedAsList), function(NULL) {} ++ ++ XcodeBuildSettingMapping(const QString &xcodeName, XcodeBuildSettingValueFunction function, ++ bool serializedAsList) ++ : xcodeName(xcodeName), isList(serializedAsList), ++ serializedAsList(serializedAsList), function(function) {} ++ ++ void applyToProject(PBXProject *xcodeProject, const Project &project) const; ++ void applyToTarget(PBXTarget *xcodeTarget, ++ const Project &project, ++ const ProductData &productData, const GroupData &groupData) const; ++ void applyToConfiguration(XCConfigurationList *xcodeConfigurationList, ++ const Project &project, ++ const ProductData &productData = ProductData(), ++ const GroupData &groupData = GroupData()) const; ++ void applyToConfiguration(XCBuildConfiguration *xcodeConfiguration, ++ const Project &project, ++ const ProductData &productData = ProductData(), ++ const GroupData &groupData = GroupData()) const; ++ ++ static QList defaultBuildSettingsMap(); ++}; ++ ++} // namespace qbs ++ ++#endif // XCODECONFIGURATIONSETTING_H +diff --git a/src/lib/corelib/generators/xcode/xcodegenerator.cpp b/src/lib/corelib/generators/xcode/xcodegenerator.cpp +new file mode 100644 +index 0000000..4bbcb40 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodegenerator.cpp +@@ -0,0 +1,643 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcodebuildsettingmapping.h" ++#include "xcodegenerator.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include "pbx.h" ++ ++#include ++#include ++#include ++#include ++ ++static const QString kQbsRunnerFileName = QLatin1String("qbs"); ++ ++namespace qbs { ++ ++using namespace Internal; ++ ++XcodeGenerator::XcodeGenerator() ++{ ++} ++ ++static QString buildVariant(const qbs::Project &project) ++{ ++ return project.projectConfiguration()[QLatin1String("qbs")].toMap()[QLatin1String("buildVariant")].toString(); ++} ++ ++static QString buildVariant(const qbs::ProductData &product) ++{ ++ return product.moduleProperties().getModuleProperty(QLatin1String("qbs"), QLatin1String("buildVariant")).toString(); ++} ++ ++void XcodeGenerator::setupGenerator() ++{ ++ QSet profileNames; ++ QSet projectNames; ++ QSet qbsProjectFiles; ++ QSet buildDirectories; ++ ++ foreach (const qbs::Project &proj, projects()) { ++ profileNames << proj.profile(); ++ projectNames << proj.projectData().name(); ++ qbsProjectFiles << proj.projectData().location().filePath(); ++ ++ QDir baseBuildDirectory(proj.projectData().buildDirectory()); ++ baseBuildDirectory.cdUp(); ++ buildDirectories << baseBuildDirectory.absolutePath(); ++ } ++ ++ QBS_CHECK(!profileNames.isEmpty()); ++ QBS_CHECK(projectNames.size() == 1); ++ QBS_CHECK(qbsProjectFiles.size() == 1); ++ QBS_CHECK(buildDirectories.size() == 1); ++ ++ m_multipleProfiles = profileNames.size() > 1; ++ m_projectName = projectNames.toList().first(); ++ m_qbsProjectFile = qbsProjectFiles.toList().first(); ++ m_baseBuildDirectory = buildDirectories.toList().first(); ++ ++ QBS_CHECK(m_qbsProjectFile.isAbsolute() && m_qbsProjectFile.exists()); ++ QBS_CHECK(m_baseBuildDirectory.isAbsolute() && m_baseBuildDirectory.exists()); ++ ++ m_productGroups.clear(); ++} ++ ++static inline TargetArtifact runnableOrPrimaryTargetArtifactForProduct(const qbs::ProductData &qbsProductData) { ++ // Easy in this case... ++ if (qbsProductData.targetArtifacts().size() == 1) { ++ return qbsProductData.targetArtifacts().first(); ++ } ++ ++ const QStringList types = QStringList() ++ << QLatin1String("bundle") ++ << QLatin1String("application") ++ << QLatin1String("dynamiclibrary") ++ << QLatin1String("staticlibrary") ++ << QLatin1String("loadablemodule"); ++ ++ Q_FOREACH (const TargetArtifact &ta, qbsProductData.targetArtifacts()) { ++ Q_FOREACH (const QString &type, types) { ++ if (qbsProductData.type().contains(type) ++ && ta.fileTags().contains(type)) { ++ return ta; ++ } ++ } ++ } ++ ++ return TargetArtifact(); ++} ++ ++static inline QString installedFilePathForTargetArtifact(const qbs::Project &project, ++ const qbs::ProductData &product, ++ const qbs::InstallOptions &installOptions, ++ const TargetArtifact &ta) { ++ const QList &installables ++ = project.installableFilesForProduct(product, installOptions); ++ foreach (const InstallableFile &file, installables) { ++ if (file.sourceFilePath() == ta.filePath()) ++ return file.targetFilePath(); ++ } ++ return ta.filePath(); ++} ++ ++void XcodeGenerator::generate(const InstallOptions &installOptions) ++{ ++ // TODO: Move to base class and call ProjectGenerator::setupGenerator() ++ setupGenerator(); ++ ++ const QString xcodeWrapperName = m_projectName + QLatin1String(".xcodeproj"); ++ if (!m_baseBuildDirectory.cd(xcodeWrapperName)) ++ if (!m_baseBuildDirectory.mkdir(xcodeWrapperName) || !m_baseBuildDirectory.cd(xcodeWrapperName)) ++ throw ErrorInfo(Tr::tr("failed to make Xcode project wrapper directory")); ++ ++ const QString xcodeWorkspaceWrapperName = QLatin1String("project.xcworkspace"); ++ const QString sharedWorkspaceDataDirName = QLatin1String("xcshareddata"); ++ ++ QDir sharedWorkspaceDataDir = m_baseBuildDirectory; ++ if (!sharedWorkspaceDataDir.cd(xcodeWorkspaceWrapperName)) ++ if (!sharedWorkspaceDataDir.mkdir(xcodeWorkspaceWrapperName) || !sharedWorkspaceDataDir.cd(xcodeWorkspaceWrapperName)) ++ throw ErrorInfo(Tr::tr("failed to make Xcode workspace wrapper directory")); ++ ++ if (!sharedWorkspaceDataDir.cd(sharedWorkspaceDataDirName)) ++ if (!sharedWorkspaceDataDir.mkdir(sharedWorkspaceDataDirName) || !sharedWorkspaceDataDir.cd(sharedWorkspaceDataDirName)) ++ throw ErrorInfo(Tr::tr("failed to make Xcode workspace shared data directory")); ++ ++ const QString sharedWorkspaceSettingsFilePath = sharedWorkspaceDataDir.absoluteFilePath(QLatin1String("WorkspaceSettings.xcsettings")); ++ XCSettings sharedWorkspaceSettings; ++ sharedWorkspaceSettings.setAutocreateSchemes(false); ++ if (!sharedWorkspaceSettings.serialize(sharedWorkspaceSettingsFilePath)) { ++ throw ErrorInfo(Tr::tr("Failed to generate workspace settings %1").arg(sharedWorkspaceSettingsFilePath)); ++ } ++ ++ // Create a shell script to invoke the qbs binary ++ // This is necessary because qbs hangs when invoked directly from Xcode ++ // TODO: Why? ++ const QString &qbsRunnerFilePath = m_baseBuildDirectory.absoluteFilePath(kQbsRunnerFileName); ++ QFile qbsRunner(qbsRunnerFilePath); ++ if (qbsRunner.open(QIODevice::WriteOnly)) { ++ // The runner script, in addition to invoking qbs itself, ++ // adds symlinks from the Xcode target directory to the qbs build directory ++ // This way, products in the Xcode files listing show up properly ++ QTextStream ts(&qbsRunner); ++ ts << QLatin1String("#!/bin/bash\n") ++ << QLatin1String("set -e\n") ++ << QLatin1String("[ -x \"$QBS\" ] || exit 1\n") ++ << QLatin1String("\"$QBS\" \"$@\"\n") ++ << QLatin1String("if [ ! -e \"$TARGET_BUILD_DIR/$PRODUCT_NAME/$FULL_PRODUCT_NAME\" ] && [ -e \"$QBS_TARGET_PATH\" ] ; then\n") ++ << QLatin1String("mkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME\"\n") ++ << QLatin1String("ln -sf \"$QBS_TARGET_PATH\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME/$FULL_PRODUCT_NAME\"\n") ++ << QLatin1String("fi\n"); ++ } ++ ++ PBXProject xcodeProject(m_baseBuildDirectory.absoluteFilePath(QLatin1String("project.pbxproj"))); ++ xcodeProject.setName(m_projectName); ++ ++ // Only potentially add absolute paths if the qbs source directory and build directory differ; ++ // this makes the Xcode project file relocatable (and thus version trackable) if generated in-source ++ const QString qbsSourceDirectory = m_qbsProjectFile.absolutePath(); ++ if (m_baseBuildDirectory.absolutePath() != qbsSourceDirectory) { ++ // TODO: Make it relative anyways ++ xcodeProject.setProjectDirPath(qbsSourceDirectory); ++ xcodeProject.rootGroup()->setPath(xcodeProject.projectDirPath()); ++ } ++ ++ foreach (const qbs::Project &project, projects()) { ++ XCBuildConfiguration *xcconfig = xcodeProject.buildConfigurationList()->addBuildConfiguration(xcodeConfigurationName(project)); ++ xcodeProject.buildConfigurationList()->setDefaultBuildConfiguration(xcconfig->name()); ++ ++ // TODO: Ideally should go into a configuration file instead of in the project file itself ++ // TODO: Is there a better way to find the qbs binary to invoke? For example, someone could use libqbscore to invoke generators... ++ xcconfig->setBuildSetting(QLatin1String("QBS"), QCoreApplication::applicationFilePath()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROFILE"), project.profile()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROJECT_DIRECTORY"), xcodeInsertPlaceholdersInValue(project, qbsSourceDirectory)); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROJECT_FILE_NAME"), m_qbsProjectFile.fileName()); ++ ++ // or baseBuildDirectory + profileName + '-' + buildVariant ++ xcconfig->setBuildSetting(QLatin1String("__QBS_BASE_BUILD_DIRECTORY"), QLatin1String("$(PROJECT_FILE_PATH)/..")); ++ xcconfig->setBuildSetting(QLatin1String("QBS_BUILD_DIRECTORY"), QLatin1String("$(__QBS_BASE_BUILD_DIRECTORY:standardizepath)")); ++ ++ xcconfig->setBuildSetting(QLatin1String("QBS_BUILD_VARIANT"), buildVariant(project)); ++ ++ foreach (const XcodeBuildSettingMapping &setting, XcodeBuildSettingMapping::defaultBuildSettingsMap()) { ++ setting.applyToConfiguration(xcconfig, project); ++ } ++ ++ // Add all the Qbs products as Xcode targets ++ addProjectRecursive(project, project.projectData(), installOptions, xcodeProject, xcodeProject.rootGroup()); ++ ++ // Do some per-target ops ++ foreach (const qbs::ProductData &qbsProductData, project.projectData().allProducts()) { ++ PBXTarget *qbsXcodeTarget = xcodeProject.targetNamed(qbsProductData.name()); ++ if (!qbsXcodeTarget) ++ throw new qbs::ErrorInfo(Tr::tr("could not find PBXTarget for qbs product '%1'").arg(qbsProductData.name())); ++ ++ // Set up target dependencies ++ foreach (const QString &dependencyName, qbsProductData.dependencies()) { ++ PBXTargetDependency *dependentXcodeTarget = new PBXTargetDependency(&xcodeProject); ++ dependentXcodeTarget->setTarget(xcodeProject.targetNamed(dependencyName)); ++ if (!dependentXcodeTarget->target()) ++ throw new qbs::ErrorInfo(Tr::tr("could not find PBXTarget for qbs product '%1'").arg(dependencyName)); ++ ++ qbsXcodeTarget->targetDependencies().append(dependentXcodeTarget); ++ } ++ ++ // Set up a scheme for the target ++ static const QString xcshareddata = QLatin1String("xcshareddata"); ++ static const QString xcschemes = QLatin1String("xcschemes"); ++ QDir schemesDirectory(m_baseBuildDirectory); ++ if (!schemesDirectory.cd(xcshareddata)) { ++ if (!schemesDirectory.mkdir(xcshareddata) || !schemesDirectory.cd(xcshareddata)) { ++ throw ErrorInfo(Tr::tr("failed to make Xcode project shared data directory")); ++ } ++ } ++ if (!schemesDirectory.cd(xcschemes)) { ++ if (!schemesDirectory.mkdir(xcschemes) || !schemesDirectory.cd(xcschemes)) { ++ throw ErrorInfo(Tr::tr("failed to make Xcode project shared schemes directory")); ++ } ++ } ++ ++ const QString schemeFilePath(schemesDirectory.absoluteFilePath(QString(QLatin1String("%1.xcscheme")).arg(qbsXcodeTarget->name()))); ++ XCScheme xcscheme; ++ xcscheme.setParallelizeBuildables(false); // this must be turned off because it conflicts with qbs build directory locking ++ xcscheme.setProject(&xcodeProject); ++ xcscheme.setTarget(qbsXcodeTarget); ++ ++ if (dynamic_cast(qbsXcodeTarget)) { ++ xcscheme.setCustomExecutableFilePath(installedFilePathForTargetArtifact(project, qbsProductData, installOptions, runnableOrPrimaryTargetArtifactForProduct(qbsProductData))); ++ } ++ ++ if (!xcscheme.serialize(schemeFilePath)) { ++ throw ErrorInfo(Tr::tr("Failed to generate scheme %1").arg(schemeFilePath)); ++ } ++ } ++ } ++ ++ if (xcodeProject.writeToFileSystemProjectFile(true, true, true)) ++ qDebug() << "Generated" << qPrintable(xcodeWrapperName); ++ else ++ throw ErrorInfo(Tr::tr("Failed to generate %1").arg(xcodeWrapperName)); ++} ++ ++QString makePathRelativeTo(const QString &path, const QString &basePath) ++{ ++ QString rootPath(basePath); ++ if (!rootPath.endsWith(QLatin1Char('/'))) ++ rootPath += QLatin1Char('/'); ++ ++ QString filePath(path); ++ if (filePath.startsWith(rootPath)) ++ filePath.remove(0, rootPath.size()); ++ ++ return filePath; ++} ++ ++void XcodeGenerator::addProjectRecursive(const Project &project, const ProjectData &projectData, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup) ++{ ++ foreach (const ProjectData &subProjectData, projectData.subProjects()) ++ { ++ PBXGroup *baseGroup = PBXGroup::groupWithName(subProjectData.name(), xcodeGroup); ++ baseGroup->setSourceTree(PBX::Group); ++ ++ // Add the qbs project file for this project ++ foreach (PBXFileReference *ref, baseGroup->addFiles(QStringList() << makePathRelativeTo(m_qbsProjectFile.absoluteFilePath(), xcodeProject.projectDirPath()), false, false)) { ++ if (!ref->path().startsWith(QLatin1Char('/'))) { ++ ref->setSourceTree(PBX::Group); ++ } ++ } ++ ++ addProjectRecursive(project, subProjectData, installOptions, xcodeProject, baseGroup); ++ } ++ ++ foreach (const ProductData &product, projectData.products()) ++ { ++ addProduct(project, product, installOptions, xcodeProject, xcodeGroup); ++ } ++} ++ ++static inline QVariant flattenXcconfigList(const QStringList &list) { ++ if (list.isEmpty()) ++ return QString(); ++ if (list.size() == 1) ++ return list.first(); ++ return list; ++} ++ ++void XcodeGenerator::addProduct(const Project &project, const ProductData &product, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup) ++{ ++ PBXTarget *xcodeTarget = xcodeTargetForProduct(&xcodeProject, product); ++ xcodeTarget->setName(product.name()); ++ xcodeTarget->setProductType(xcodeProductType(product)); ++ ++ PBXLegacyTarget *xcodeLegacyTarget = dynamic_cast(xcodeTarget); ++ if (xcodeLegacyTarget) { ++ xcodeLegacyTarget->setBuildWorkingDirectory(XcodeGenerator::xcodeInsertPlaceholdersInValue(project, xcodeProject.projectDirPath()).toString()); ++ xcodeLegacyTarget->setBuildToolPath(QLatin1String("/bin/bash")); ++ ++ QStringList buildArguments; ++ buildArguments << QLatin1String("\"$(PROJECT_FILE_PATH)\"/") + kQbsRunnerFileName; ++ buildArguments << QLatin1String("\"$(ACTION)\""); ++ buildArguments << QLatin1String("-f"); ++ ++ // Can't use xcodeInsertPlaceholdersInValue because we want to do a little acrobatics to get quoting 100% right... ++ const QDir sourceDirectory(xcodeProject.projectDirPath()); ++ QString resultingFilePath = m_qbsProjectFile.absoluteFilePath(); ++ if (resultingFilePath.startsWith(sourceDirectory.absolutePath())) { ++ resultingFilePath.replace(0, sourceDirectory.absolutePath().size(), QString()); ++ buildArguments << QLatin1String("\"$(SRCROOT)\"") + shellQuote(resultingFilePath); ++ } else { ++ buildArguments << shellQuote(resultingFilePath); ++ } ++ ++ buildArguments << QLatin1String("-d"); ++ buildArguments << QLatin1String("\"$(CONFIGURATION_BUILD_DIR)\""); ++ buildArguments << QLatin1String("-p"); ++ buildArguments << QLatin1String("\"$(TARGET_NAME)\""); // target and product name are opposites in qbs and Xcode ++ buildArguments << QLatin1String("\"$(QBS_BUILD_VARIANT)\""); ++ buildArguments << QLatin1String("\"profile:$(QBS_PROFILE)\""); ++ ++ xcodeLegacyTarget->setBuildArgumentsString(buildArguments.join(QLatin1String(" "))); ++ xcodeLegacyTarget->setPassBuildSettingsInEnvironment(true); ++ } ++ ++ XCBuildConfiguration *xcconfig = xcodeTarget->buildConfigurationList()->addBuildConfiguration(xcodeConfigurationName(product)); ++ xcodeTarget->buildConfigurationList()->setDefaultBuildConfiguration(xcconfig->name()); ++ ++ // TODO: If a product with the same name was already added, don't add its files AGAIN ++ // Create a root PBX group for the target's files and other groups ++ PBXGroup *xcodeProductGroup = m_productGroups.value(product.name()); ++ const bool productFilesAlreadyAdded = !!xcodeProductGroup; ++ if (!productFilesAlreadyAdded) { ++ m_productGroups.insert(product.name(), xcodeProductGroup = PBXGroup::groupWithName(product.name(), xcodeGroup)); ++ ++ // Add the qbs project file for this product ++ foreach (PBXFileReference *ref, xcodeProductGroup->addFiles(QStringList() << makePathRelativeTo(product.location().filePath(), xcodeProject.projectDirPath()), false, false)) { ++ if (!ref->path().startsWith(QLatin1Char('/'))) { ++ ref->setSourceTree(PBX::Group); ++ } ++ } ++ } ++ ++ QSet excludedSources; ++ ++ // Set up all the groups ++ foreach (const GroupData &groupData, product.groups()) ++ { ++ PBXGroup *group = xcodeProductGroup; ++ if (groupData.name() == product.name()) { ++ // This group has the same name as the product itself so we'll just add the files ++ // directly to the "product" group we created earlier instead of creating a new one ++ foreach (const XcodeBuildSettingMapping &setting, XcodeBuildSettingMapping::defaultBuildSettingsMap()) { ++ setting.applyToConfiguration(xcconfig, project, product, groupData); ++ } ++ ++ xcodeTarget->setProductName(xcodeTarget->buildSetting(QLatin1String("PRODUCT_NAME"), buildVariant(product)).toString()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_PROFILE"), product.profile()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_BUILD_VARIANT"), buildVariant(product)); ++ } else { ++ // Create a group for this group ++ group = PBXGroup::groupWithName(groupData.name(), xcodeProductGroup); ++ } ++ ++ // Add the source files to the group ++ group->setSourceTree(PBX::Group); ++ QList fileRefs; ++ if (!productFilesAlreadyAdded) ++ fileRefs = addGroupFiles(&xcodeProject, group, groupData); ++ ++ // If the group is enabled, then we'll actually BUILD them in addition to merely listing them ++ if (groupData.isEnabled()) { ++ foreach (PBXFileReference *ref, fileRefs) { ++ // Skip header files... wish there was a better way ++ if (ref->path().endsWith(QLatin1String(".h")) || ++ ref->path().endsWith(QLatin1String(".hh"))) { ++ continue; ++ } ++ ++ xcodeTarget->defaultSourceCodeBuildPhase()->addReference(ref); ++ } ++ } else { ++ foreach (PBXFileReference *ref, fileRefs) ++ excludedSources.insert(ref->path()); ++ } ++ } ++ ++ xcconfig->setBuildSetting(QLatin1String("EXCLUDED_SOURCE_FILE_NAMES"), flattenXcconfigList(QStringList(excludedSources.toList()))); ++ ++ QString sysroot = product.moduleProperties().getModuleProperty(QLatin1String("cpp"), QLatin1String("sysroot")).toString(); ++ QStringList frameworkPaths; ++ frameworkPaths += product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("frameworkPaths")); ++ frameworkPaths += product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("systemFrameworkPaths")); ++ frameworkPaths += sysroot + QLatin1String("/Library/Frameworks"); ++ frameworkPaths += sysroot + QLatin1String("/System/Library/Frameworks"); ++ frameworkPaths += QLatin1String("/Library/Frameworks"); ++ frameworkPaths += QLatin1String("/System/Library/Frameworks"); ++ const QStringList frameworkNames = product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("frameworks")); ++ const QStringList weakFrameworkNames = product.moduleProperties().getModulePropertiesAsStringList(QLatin1String("cpp"), QLatin1String("weakFrameworks")); ++ ++ // TODO TODO TODO dynamicLibraries and weakDynamicLibraries? ++ ++ // A framework can't be strongly AND weakly linked... TODO: fail more gracefully ++ QBS_CHECK(frameworkNames.toSet().intersect(weakFrameworkNames.toSet()).isEmpty()); ++ const QStringList allFrameworkNames = QStringList() << frameworkNames << weakFrameworkNames; ++ ++ Q_FOREACH (const QString &frameworkName, allFrameworkNames) { ++ // Whether a full path equivalent for the framework was found ++ bool foundFramework = false; ++ ++ Q_FOREACH (const QString &frameworkPath, frameworkPaths) { ++ QString candidateFrameworkPath = QFileInfo(frameworkPath + QLatin1String("/") + frameworkName + QLatin1String(".framework")).canonicalFilePath(); ++ if (QFileInfo(candidateFrameworkPath).exists()) { ++ QBS_CHECK(!candidateFrameworkPath.isEmpty()); ++ ++ const QString sysrootedCandidateFrameworkPath = candidateFrameworkPath.mid(sysroot.size() + 1 /* for the path separator */); ++ ++ // Check for an existing reference (could happen if a framework is specified multiple times) ++ PBXFileReference *existingReference = Q_NULLPTR; ++ Q_FOREACH (PBXReference *ref, xcodeProject.frameworksRefGroup()->children()) { ++ if (PBXFileReference *fileRef = dynamic_cast(ref)) { ++ if ((fileRef->sourceTree() == PBX::SdkRoot && fileRef->path() == sysrootedCandidateFrameworkPath) || ++ (fileRef->sourceTree() == PBX::Absolute && fileRef->path() == candidateFrameworkPath)) { ++ existingReference = fileRef; ++ break; ++ } ++ } ++ } ++ ++ QList refs; ++ ++ // Create a new file reference since one wasn't already found in the Frameworks group ++ if (!existingReference) { ++ refs = xcodeProject.frameworksRefGroup()->addFiles(QStringList() << candidateFrameworkPath, false, false); ++ Q_FOREACH (PBXFileReference *frameworkRef, refs) { ++ if (!sysroot.isEmpty() && frameworkRef->path().startsWith(sysroot)) { ++ frameworkRef->setPath(sysrootedCandidateFrameworkPath); ++ frameworkRef->setSourceTree(PBX::SdkRoot); ++ } ++ } ++ } else { ++ refs.append(existingReference); ++ } ++ ++ // Add the framework to the Frameworks build phase ++ Q_FOREACH (PBXFileReference *frameworkRef, refs) { ++ xcodeTarget->defaultFrameworksBuildPhase()->addReference(frameworkRef); ++ } ++ ++ foundFramework = true; ++ break; ++ } ++ } ++ ++ // Not a normal case, and will cause a build failure, but is better than silently ignoring it... ++ if (!foundFramework) { ++ Q_FOREACH (PBXFileReference *frameworkRef, xcodeProject.frameworksRefGroup()->addFiles(QStringList() << frameworkName + QLatin1String(".framework"), false, false)) { ++ QBS_CHECK(!frameworkRef->path().isEmpty()); ++ if (PBXBuildFile *frameworkBuildRef = xcodeTarget->defaultFrameworksBuildPhase()->addReference(frameworkRef)) { ++ const bool isWeaklyLinked = weakFrameworkNames.contains(frameworkName); ++ frameworkBuildRef->setWeakLinkedLibrary(isWeaklyLinked); ++ } ++ } ++ } ++ } ++ ++ // Add a reference for the main target artifact in root "Products" group ++ TargetArtifact artifact = runnableOrPrimaryTargetArtifactForProduct(product); ++ QString realArtifactPath = installedFilePathForTargetArtifact(project, product, installOptions, artifact); ++ if (!realArtifactPath.isEmpty()) { ++ // "simple" generator ++ if (!xcodeLegacyTarget) { ++ // Chop off the Qbs build dir from the artifact path, because they will actually end ++ // up in Xcode's build directory, not the build directory Qbs would use ++ const QString buildDirectory = project.projectData().buildDirectory(); ++ if (realArtifactPath.startsWith(buildDirectory)) ++ realArtifactPath.remove(0, buildDirectory.size()); ++ ++ if (realArtifactPath.startsWith(QLatin1Char('/'))) ++ realArtifactPath.remove(0, 1); ++ } else { ++ realArtifactPath = xcodeInsertPlaceholdersInValue(project, realArtifactPath).toString(); ++ } ++ ++ QBS_CHECK(!realArtifactPath.isEmpty()); ++ ++ QList refs = xcodeProject.productRefGroup()->addFiles(QStringList() << realArtifactPath, false, false); ++ foreach (PBXFileReference *ref, refs) ++ { ++ if (!xcodeLegacyTarget) { ++ ref->setSourceTree(PBX::BuildProductDir); ++ ++ // This causes Xcode to force the file reference to a relative path relative to the build products dir ++ // Therefore, we must symlink artifacts in the Xcode build directory to the ones in the qbs build directory ++ // NOTE: This will crash Xcode if set for a PBXLegacyTarget (claiming an empty string global hex ID) ++ xcodeTarget->setProductReference(ref); ++ } ++ ++ // TODO: Technically this should be composed of other variables based on the product type ++ // $(WRAPPER_NAME) for bundles, $(EXECUTABLE_NAME) otherwise? ++ xcconfig->setBuildSetting(QLatin1String("FULL_PRODUCT_NAME"), QFileInfo(realArtifactPath).fileName()); ++ xcconfig->setBuildSetting(QLatin1String("QBS_TARGET_PATH"), xcodeInsertPlaceholdersInValue(project, realArtifactPath)); ++ } ++ } ++ ++ xcodeProject.addTarget(xcodeTarget); ++} ++ ++QList XcodeGenerator::addGroupFiles(PBXProject *xcodeProject, PBXGroup *xcodeGroup, const qbs::GroupData &groupData) ++{ ++ QStringList relativeFilePaths; ++ foreach (QString filePath, groupData.allFilePaths()) { ++ relativeFilePaths += makePathRelativeTo(filePath, xcodeProject->projectDirPath()); ++ } ++ ++ // Add all the files in the group as file references so they show up in the project tree ++ QList fileRefs = xcodeGroup->addFiles(relativeFilePaths, false, false); ++ foreach (PBXFileReference *ref, fileRefs) { ++ if (!ref->path().startsWith(QLatin1Char('/'))) { ++ ref->setSourceTree(PBX::Group); ++ } ++ } ++ ++ return fileRefs; ++} ++ ++PBXTarget *XcodeGenerator::xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product) ++{ ++ Q_UNUSED(xcodeProject); ++ PBXTarget *target = xcodeProject->targetNamed(product.name()); ++ ++ // Native targets without a type won't build, so use a legacy target in this case ++ if (!target && xcodeProductType(product) == 0) { ++ return new PBXLegacyTarget(xcodeProject); ++ } ++ ++ return target; ++} ++ ++/*! ++ * Returns the Xcode product type identifier corresponding to the Qbs product type name. ++ */ ++PBX::PBXProductType XcodeGenerator::xcodeProductType(const ProductData &product) ++{ ++ const QStringList productType = product.type(); ++ const bool isBundle = product.moduleProperties().getModuleProperty(QLatin1String("bundle"), QLatin1String("isBundle")).toBool(); ++ ++ if (productType.contains(QLatin1String("application"))) ++ return isBundle ? PBX::Application : PBX::Tool; ++ if (productType.contains(QLatin1String("dynamiclibrary"))) ++ return isBundle ? PBX::Framework : PBX::LibraryDynamic; ++ if (productType.contains(QLatin1String("staticlibrary"))) ++ return isBundle ? PBX::StaticFramework : PBX::LibraryStatic; ++ if (productType.contains(QLatin1String("bundle"))) ++ return PBX::Bundle; ++ ++ return (PBX::PBXProductType)0; ++} ++ ++static QString _xcodeConfigurationName(QString variantName, const QString &profileName, bool includeProfileName) ++{ ++ QBS_CHECK(!variantName.isEmpty()); ++ variantName.replace(0, 1, variantName[0].toUpper()); ++ if (includeProfileName) { ++ variantName += QLatin1String("_") + profileName; ++ } ++ return variantName; ++} ++ ++QString XcodeGenerator::xcodeConfigurationName(const Project &project) ++{ ++ return _xcodeConfigurationName(buildVariant(project), project.profile(), m_multipleProfiles); ++} ++ ++QString XcodeGenerator::xcodeConfigurationName(const ProductData &product) ++{ ++ return _xcodeConfigurationName(buildVariant(product), product.profile(), m_multipleProfiles); ++} ++ ++/*! ++ * \brief If the value is a path or list of paths, ++ * returns it with the prefixes of paths replaced by $(SRCROOT), $(PROJECT_FILE_PATH)/.., etc., ++ * as appropriate. ++ * If the value is not a path, returns the original value unmodified. ++ */ ++QVariant XcodeGenerator::xcodeInsertPlaceholdersInValue(const qbs::Project &project, const QVariant &variant) ++{ ++ if (variant.type() == QVariant::List) { ++ QVariantList list; ++ foreach (const QVariant &v, variant.toList()) ++ list.append(xcodeInsertPlaceholdersInValue(project, v)); ++ return list; ++ } ++ ++ // If the value is a path and it begins with the value of SRCROOT or PROJECT_FILE_PATH/.., replace it ++ if (variant.type() == QVariant::String) { ++ // This should end up being the same as PBXProject::projectDirPath(), but if projectDirPath ++ // is the empty string (for example, when the xcodeproj resides in the qbs source directory, ++ // things would break, so prefer the Qbs value (plus, it saves a parameter to this function) ++ const QDir sourceDirectory = QFileInfo(project.projectData().location().filePath()).absolutePath(); ++ if (variant.toString().startsWith(sourceDirectory.absolutePath())) ++ return variant.toString().replace(0, sourceDirectory.absolutePath().size(), QLatin1String("$(SRCROOT)")); ++ ++ const QDir buildDirectory(project.projectData().buildDirectory()); ++ Q_ASSERT(buildDirectory.isAbsolute() && buildDirectory.exists()); ++ if (variant.toString().startsWith(buildDirectory.absolutePath())) ++ return variant.toString().replace(0, buildDirectory.absolutePath().size(), QLatin1String("$(QBS_BUILD_DIRECTORY)/$(QBS_PROFILE)-$(QBS_BUILD_VARIANT)")); ++ } ++ ++ return variant; ++} ++ ++} +diff --git a/src/lib/corelib/generators/xcode/xcodegenerator.h b/src/lib/corelib/generators/xcode/xcodegenerator.h +new file mode 100644 +index 0000000..765174a +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodegenerator.h +@@ -0,0 +1,81 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef QBS_XCODEGENERATOR_H ++#define QBS_XCODEGENERATOR_H ++ ++#include ++#include ++#include "pbxproducttype.h" ++ ++#include ++ ++class PBXFileReference; ++class PBXGroup; ++class PBXProject; ++class PBXTarget; ++ ++namespace qbs { ++ ++class ProductData; ++struct XcodeBuildSettingMapping; ++ ++class XcodeGenerator : public qbs::ProjectGenerator ++{ ++public: ++ virtual void generate(const InstallOptions &installOptions); ++ virtual void addProjectRecursive(const Project &project, const ProjectData &projectData, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup); ++ virtual void addProduct(const Project &project, const ProductData &product, const InstallOptions &installOptions, PBXProject &xcodeProject, PBXGroup *xcodeGroup); ++ virtual QList addGroupFiles(PBXProject *xcodeProject, PBXGroup *xcodeGroup, const qbs::GroupData &groupData); ++ ++ virtual PBXTarget *xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product); ++ ++ QString xcodeConfigurationName(const Project &project); ++ QString xcodeConfigurationName(const ProductData &product); ++ ++ static QVariant xcodeInsertPlaceholdersInValue(const qbs::Project &project, const QVariant &variant); ++ ++ static PBX::PBXProductType xcodeProductType(const ProductData &product); ++ ++protected: ++ XcodeGenerator(); ++ ++ // TODO: Move to base class ++ virtual void setupGenerator(); ++ bool m_multipleProfiles; ++ QString m_projectName; ++ QFileInfo m_qbsProjectFile; ++ QDir m_baseBuildDirectory; ++ QMap m_productGroups; ++}; ++ ++} ++ ++#endif // QBS_XCODEGENERATOR_H +diff --git a/src/lib/corelib/generators/xcode/xcodenativegenerator.cpp b/src/lib/corelib/generators/xcode/xcodenativegenerator.cpp +new file mode 100644 +index 0000000..7654b8f +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodenativegenerator.cpp +@@ -0,0 +1,58 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcodenativegenerator.h" ++ ++#include "pbx.h" ++ ++namespace qbs { ++ ++using namespace Internal; ++ ++XcodeNativeGenerator::XcodeNativeGenerator() ++{ ++} ++ ++QString XcodeNativeGenerator::generatorName() const ++{ ++ return QLatin1String("xcode"); ++} ++ ++void XcodeNativeGenerator::generate(const InstallOptions &installOptions) ++{ ++ XcodeGenerator::generate(installOptions); ++} ++ ++PBXTarget *XcodeNativeGenerator::xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product) ++{ ++ return XcodeGenerator::xcodeTargetForProduct(xcodeProject, product) ?: new PBXLegacyTarget(xcodeProject); ++} ++ ++} +diff --git a/src/lib/corelib/generators/xcode/xcodenativegenerator.h b/src/lib/corelib/generators/xcode/xcodenativegenerator.h +new file mode 100644 +index 0000000..a04f8df +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodenativegenerator.h +@@ -0,0 +1,52 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef QBS_XCODENATIVEGENERATOR_H ++#define QBS_XCODENATIVEGENERATOR_H ++ ++#include "xcodegenerator.h" ++#include ++ ++namespace qbs { ++ ++class XcodeNativeGenerator : public XcodeGenerator ++{ ++public: ++ XcodeNativeGenerator(); ++ ++ QString generatorName() const; ++ ++ void generate(const InstallOptions &installOptions); ++ PBXTarget *xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product); ++}; ++ ++} ++ ++#endif // QBS_XCODENATIVEGENERATOR_H +diff --git a/src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp b/src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp +new file mode 100644 +index 0000000..e1bceca +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodesimplegenerator.cpp +@@ -0,0 +1,58 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcodesimplegenerator.h" ++ ++#include "pbx.h" ++ ++namespace qbs { ++ ++using namespace Internal; ++ ++XcodeSimpleGenerator::XcodeSimpleGenerator() ++{ ++} ++ ++QString XcodeSimpleGenerator::generatorName() const ++{ ++ return QLatin1String("xcode-simple"); ++} ++ ++void XcodeSimpleGenerator::generate(const InstallOptions &installOptions) ++{ ++ XcodeGenerator::generate(installOptions); ++} ++ ++PBXTarget *XcodeSimpleGenerator::xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product) ++{ ++ return XcodeGenerator::xcodeTargetForProduct(xcodeProject, product) ?: new PBXNativeTarget(xcodeProject); ++} ++ ++} +diff --git a/src/lib/corelib/generators/xcode/xcodesimplegenerator.h b/src/lib/corelib/generators/xcode/xcodesimplegenerator.h +new file mode 100644 +index 0000000..66f6419 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcodesimplegenerator.h +@@ -0,0 +1,52 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef QBS_XCODESIMPLEGENERATOR_H ++#define QBS_XCODESIMPLEGENERATOR_H ++ ++#include "xcodegenerator.h" ++#include ++ ++namespace qbs { ++ ++class XcodeSimpleGenerator : public XcodeGenerator ++{ ++public: ++ XcodeSimpleGenerator(); ++ ++ QString generatorName() const; ++ ++ void generate(const InstallOptions &installOptions); ++ PBXTarget *xcodeTargetForProduct(PBXProject *xcodeProject, const ProductData &product); ++}; ++ ++} ++ ++#endif // QBS_XCODESIMPLEGENERATOR_H +diff --git a/src/lib/corelib/generators/xcode/xcscheme.cpp b/src/lib/corelib/generators/xcode/xcscheme.cpp +new file mode 100644 +index 0000000..dbcb994 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcscheme.cpp +@@ -0,0 +1,179 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "pbxobject.h" ++#include "pbxproject.h" ++#include "pbxtarget.h" ++#include "xcscheme.h" ++#include ++#include ++#include ++ ++static const QString yes = QLatin1String("YES"); ++static const QString no = QLatin1String("NO"); ++ ++class XCSchemePrivate ++{ ++public: ++ XCSchemePrivate(); ++ PBXProject *project; ++ PBXTarget *target; ++ bool parallelizeBuildables; ++ bool buildImplicitDependencies; ++ QString customExecutableFilePath; ++}; ++ ++XCSchemePrivate::XCSchemePrivate() ++ : project() ++ , target() ++ , parallelizeBuildables(true) ++ , buildImplicitDependencies(true) ++{ ++} ++ ++XCScheme::XCScheme(QObject *parent) : ++ QObject(parent), d(new XCSchemePrivate) ++{ ++} ++ ++XCScheme::~XCScheme() ++{ ++ delete d; ++} ++ ++PBXProject *XCScheme::project() const ++{ ++ return d->project; ++} ++ ++void XCScheme::setProject(PBXProject *project) ++{ ++ d->project = project; ++} ++ ++PBXTarget *XCScheme::target() const ++{ ++ return d->target; ++} ++ ++void XCScheme::setTarget(PBXTarget *target) ++{ ++ d->target = target; ++} ++ ++bool XCScheme::parallelizeBuildables() const ++{ ++ return d->parallelizeBuildables; ++} ++ ++void XCScheme::setParallelizeBuildables(bool parallelize) ++{ ++ d->parallelizeBuildables = parallelize; ++} ++ ++bool XCScheme::buildImplicitDependencies() const ++{ ++ return d->buildImplicitDependencies; ++} ++ ++void XCScheme::setBuildImplicitDependencies(bool build) ++{ ++ d->buildImplicitDependencies = build; ++} ++ ++QString XCScheme::customExecutableFilePath() const ++{ ++ return d->customExecutableFilePath; ++} ++ ++void XCScheme::setCustomExecutableFilePath(const QString &customExecutableFilePath) ++{ ++ d->customExecutableFilePath = customExecutableFilePath; ++} ++ ++bool XCScheme::serialize(const QString &filePath) ++{ ++ QFile file(filePath); ++ if (file.open(QIODevice::WriteOnly)) { ++ QXmlStreamWriter writer(&file); ++ writer.setAutoFormatting(true); ++ writer.setAutoFormattingIndent(2); ++ ++ writer.writeStartDocument(); ++ writer.writeStartElement(QLatin1String("Scheme")); ++ ++ // now the "actions" ++ writer.writeStartElement(QLatin1String("BuildAction")); ++ writer.writeAttribute(QLatin1String("parallelizeBuildables"), d->parallelizeBuildables ? yes : no); ++ writer.writeAttribute(QLatin1String("buildImplicitDependencies"), d->buildImplicitDependencies ? yes : no); ++ writer.writeStartElement(QLatin1String("BuildActionEntries")); ++ writer.writeStartElement(QLatin1String("BuildActionEntry")); ++ writer.writeAttribute(QLatin1String("buildForTesting"), yes); ++ writer.writeAttribute(QLatin1String("buildForRunning"), yes); ++ writer.writeAttribute(QLatin1String("buildForProfiling"), yes); ++ writer.writeAttribute(QLatin1String("buildForArchiving"), yes); ++ writer.writeAttribute(QLatin1String("buildForAnalyzing"), yes); ++ writer.writeStartElement(QLatin1String("BuildableReference")); ++ writer.writeAttribute(QLatin1String("BuildableIdentifier"), QLatin1String("primary")); ++ ++ QByteArray bytes; ++ bytes.append(QLatin1String("BlueprintIdentifier:")); ++ bytes.append(filePath); ++ ++ writer.writeAttribute(QLatin1String("BlueprintIdentifier"), PBXObject::createIdentifier(bytes)); ++ if (d->target) { ++ writer.writeAttribute(QLatin1String("BuildableName"), d->target->name()); ++ writer.writeAttribute(QLatin1String("BlueprintName"), d->target->name()); ++ } ++ if (d->project) { ++ const QString relativePath = QDir(d->project->projectDirPath()).relativeFilePath(d->project->projectWrapperPath()); ++ writer.writeAttribute(QLatin1String("ReferencedContainer"), QString(QLatin1String("container:%1")).arg(relativePath)); ++ } ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ ++ if (!d->customExecutableFilePath.isEmpty()) { ++ writer.writeStartElement(QLatin1String("LaunchAction")); ++ writer.writeStartElement(QLatin1String("PathRunnable")); ++ writer.writeAttribute(QLatin1String("FilePath"), d->customExecutableFilePath); ++ writer.writeEndElement(); ++ writer.writeEndElement(); ++ } ++ ++ writer.writeEndElement(); ++ writer.writeEndDocument(); ++ ++ return file.error() == QFile::NoError; ++ } ++ ++ return false; ++} +diff --git a/src/lib/corelib/generators/xcode/xcscheme.h b/src/lib/corelib/generators/xcode/xcscheme.h +new file mode 100644 +index 0000000..270cca3 +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcscheme.h +@@ -0,0 +1,69 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCSCHEME_H ++#define XCSCHEME_H ++ ++#include ++ ++class PBXProject; ++class PBXTarget; ++ ++class XCSchemePrivate; ++ ++class XCScheme : public QObject ++{ ++ Q_OBJECT ++public: ++ explicit XCScheme(QObject *parent = 0); ++ virtual ~XCScheme(); ++ ++ PBXProject *project() const; ++ void setProject(PBXProject *project); ++ ++ PBXTarget *target() const; ++ void setTarget(PBXTarget *target); ++ ++ bool parallelizeBuildables() const; ++ void setParallelizeBuildables(bool parallelize); ++ ++ bool buildImplicitDependencies() const; ++ void setBuildImplicitDependencies(bool build); ++ ++ QString customExecutableFilePath() const; ++ void setCustomExecutableFilePath(const QString &customExecutableFilePath); ++ ++ bool serialize(const QString &filePath); ++ ++private: ++ XCSchemePrivate *d; ++}; ++ ++#endif // XCSCHEME_H +diff --git a/src/lib/corelib/generators/xcode/xcsettings.cpp b/src/lib/corelib/generators/xcode/xcsettings.cpp +new file mode 100644 +index 0000000..d34c86e +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcsettings.cpp +@@ -0,0 +1,95 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#include "xcsettings.h" ++ ++#include ++#include ++#include ++ ++class XCSettingsPrivate { ++public: ++ XCSettingsPrivate() ++ : autocreateSchemes() ++ { ++ } ++ ++ bool autocreateSchemes; ++}; ++ ++XCSettings::XCSettings(QObject *parent) ++ : QObject(parent) ++ , d(new XCSettingsPrivate) ++{ ++} ++ ++XCSettings::~XCSettings() ++{ ++ delete d; ++} ++ ++bool XCSettings::autocreateSchemes() const ++{ ++ return d->autocreateSchemes; ++} ++ ++void XCSettings::setAutocreateSchemes(bool autocreateSchemes) ++{ ++ d->autocreateSchemes = autocreateSchemes; ++} ++ ++bool XCSettings::serialize(const QString &filePath) ++{ ++ QFile file(filePath); ++ if (file.open(QIODevice::WriteOnly)) { ++ QXmlStreamWriter writer(&file); ++ writer.setAutoFormatting(true); ++ writer.setAutoFormattingIndent(-1); ++ ++ writer.writeStartDocument(); ++ writer.writeDTD(QLatin1String("")); ++ ++ writer.writeStartElement(QLatin1String("plist")); ++ writer.writeAttribute(QLatin1String("version"), QLatin1String("1.0")); ++ writer.writeStartElement(QLatin1String("dict")); ++ ++ writer.writeTextElement(QLatin1String("key"), QLatin1String("IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded")); ++ writer.writeEmptyElement(d->autocreateSchemes ? QLatin1String("true") : QLatin1String("false")); ++ ++ writer.writeEndElement(); // ++ writer.writeEndElement(); // ++ writer.writeEndDocument(); ++ ++ return file.error() == QFile::NoError; ++ } ++ ++ return false; ++} ++ +diff --git a/src/lib/corelib/generators/xcode/xcsettings.h b/src/lib/corelib/generators/xcode/xcsettings.h +new file mode 100644 +index 0000000..e6f2c5d +--- /dev/null ++++ b/src/lib/corelib/generators/xcode/xcsettings.h +@@ -0,0 +1,54 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++ ++#ifndef XCSETTINGS_H ++#define XCSETTINGS_H ++ ++#include ++ ++class XCSettingsPrivate; ++ ++class XCSettings : public QObject ++{ ++ Q_OBJECT ++public: ++ explicit XCSettings(QObject *parent = 0); ++ virtual ~XCSettings(); ++ ++ bool autocreateSchemes() const; ++ void setAutocreateSchemes(bool autocreateSchemes); ++ ++ bool serialize(const QString &filePath); ++ ++private: ++ XCSettingsPrivate *d; ++}; ++ ++#endif // XCSETTINGS_H +diff --git a/src/lib/corelib/tools/projectgeneratormanager.cpp b/src/lib/corelib/tools/projectgeneratormanager.cpp +index 4c62fc0..f5d0f81 100644 +--- a/src/lib/corelib/tools/projectgeneratormanager.cpp ++++ b/src/lib/corelib/tools/projectgeneratormanager.cpp +@@ -39,6 +39,9 @@ + #include + #include + ++#include ++#include ++ + namespace qbs { + + using namespace Internal; +@@ -60,6 +63,8 @@ ProjectGeneratorManager *ProjectGeneratorManager::instance() + ProjectGeneratorManager::ProjectGeneratorManager() + { + QList > generators; ++ generators << QSharedPointer::create(); ++ generators << QSharedPointer::create(); + foreach (QSharedPointer generator, generators) { + m_generators[generator->generatorName()] = generator; + } +-- +2.3.5 + diff --git a/mingw-w64-qbs/0003-add-generator-header-installs.1.4.patch b/mingw-w64-qbs/0003-add-generator-header-installs.1.4.patch new file mode 100644 index 0000000000..e9171a27f5 --- /dev/null +++ b/mingw-w64-qbs/0003-add-generator-header-installs.1.4.patch @@ -0,0 +1,37 @@ +From f27372b2f20583eb40723f382f8932782631626f Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 18 Aug 2014 00:12:36 +0100 +Subject: [PATCH 3/6] add generator header installs + +--- + src/lib/corelib/api/api.pri | 1 + + src/lib/corelib/tools/tools.pri | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri +index 18b3b47..10d9bf8 100644 +--- a/src/lib/corelib/api/api.pri ++++ b/src/lib/corelib/api/api.pri +@@ -26,6 +26,7 @@ SOURCES += \ + $$PWD/languageinfo.h \ + $$PWD/project.h \ + $$PWD/projectdata.h \ ++ $$PWD/generator.h \ + $$PWD/rulecommand.h \ + $$PWD/runenvironment.h + api_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/api +diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri +index 431eb27..a77926c 100644 +--- a/src/lib/corelib/tools/tools.pri ++++ b/src/lib/corelib/tools/tools.pri +@@ -96,6 +96,7 @@ qbs_enable_unit_tests { + $$PWD/generateoptions.h \ + $$PWD/generatorpluginmanager.h \ + $$PWD/installoptions.h \ ++ $$PWD/generateoptions.h \ + $$PWD/setupprojectparameters.h + tools_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/tools + INSTALLS += tools_headers +-- +2.3.5 + diff --git a/mingw-w64-qbs/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch b/mingw-w64-qbs/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch new file mode 100644 index 0000000000..6aebc0d826 --- /dev/null +++ b/mingw-w64-qbs/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch @@ -0,0 +1,25 @@ +From 5e50db78cc09dcfbc53026d1e9470125775a6755 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 29 Nov 2014 18:20:12 +0000 +Subject: [PATCH 4/6] Use .dll.a instead of .a for mingw* import libraries + +--- + src/lib/qtprofilesetup/qtmoduleinfo.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lib/qtprofilesetup/qtmoduleinfo.cpp b/src/lib/qtprofilesetup/qtmoduleinfo.cpp +index 8e07335..acc58c4 100644 +--- a/src/lib/qtprofilesetup/qtmoduleinfo.cpp ++++ b/src/lib/qtprofilesetup/qtmoduleinfo.cpp +@@ -252,7 +252,7 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, + if (qtEnv.mkspecName.contains(QLatin1String("msvc"))) + libFilePath += QLatin1String(".lib"); + else if (isMingw) +- libFilePath += QLatin1String(".a"); ++ libFilePath += isStaticLibrary ? QLatin1String(".a") : QLatin1String(".dll.a"); + continue; + } + if (!simplifiedLine.startsWith("QMAKE_PRL_LIBS")) +-- +2.3.5 + diff --git a/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch b/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch new file mode 100644 index 0000000000..11dae659aa --- /dev/null +++ b/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch @@ -0,0 +1,36 @@ +From 99b73c2d8964aa95fc439defa0588751f080cf90 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 29 Nov 2014 18:29:20 +0000 +Subject: [PATCH 5/6] setup-toolchains: Pretend msys is mingw + +It's close enough and the best we've got. +--- + src/app/qbs-setup-toolchains/probe.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/app/qbs-setup-toolchains/probe.cpp b/src/app/qbs-setup-toolchains/probe.cpp +index 0ae9f6c..3d5e03c 100644 +--- a/src/app/qbs-setup-toolchains/probe.cpp ++++ b/src/app/qbs-setup-toolchains/probe.cpp +@@ -89,7 +89,8 @@ static QStringList validMinGWMachines() + << QLatin1String("i686-w64-mingw32") << QLatin1String("x86_64-w64-mingw32") + << QLatin1String("i686-w64-mingw32.shared") << QLatin1String("x86_64-w64-mingw32.shared") + << QLatin1String("i686-w64-mingw32.static") << QLatin1String("x86_64-w64-mingw32.static") +- << QLatin1String("i586-mingw32msvc") << QLatin1String("amd64-mingw32msvc"); ++ << QLatin1String("i586-mingw32msvc") << QLatin1String("amd64-mingw32msvc") ++ << QLatin1String("i686-pc-msys") << QLatin1String("x86_64-pc-msys"); + } + + static QStringList completeToolchainList(const QString &toolchainName) +@@ -200,7 +201,7 @@ static Profile createGccProfile(const QString &compilerFilePath, Settings *setti + { + const QString machineName = gccMachineName(compilerFilePath); + const QStringList compilerTriplet = machineName.split(QLatin1Char('-')); +- const bool isMingw = toolchainTypes.contains(QLatin1String("mingw")); ++ const bool isMingw = toolchainTypes.contains(QLatin1String("mingw")) || toolchainTypes.contains(QLatin1String("msys")); + const bool isClang = toolchainTypes.contains(QLatin1String("clang")); + + if (isMingw) { +-- +2.3.5 + diff --git a/mingw-w64-qbs/0006-Add-some-missing-files.1.4.patch b/mingw-w64-qbs/0006-Add-some-missing-files.1.4.patch new file mode 100644 index 0000000000..8f9f2c5a1a --- /dev/null +++ b/mingw-w64-qbs/0006-Add-some-missing-files.1.4.patch @@ -0,0 +1,186 @@ +From 0dd092f366077f2392b9faeae3d92cab12ac194d Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sun, 26 Apr 2015 11:54:25 +0100 +Subject: [PATCH 6/6] Add some missing files. + +Seems 1.4.0 was created without: +src/lib/corelib/tools/generateoptions.{cpp,h} + +.. which were added originally in: +5447c5 : * Add an API to support build system generators. +--- + src/lib/corelib/tools/generateoptions.cpp | 92 +++++++++++++++++++++++++++++++ + src/lib/corelib/tools/generateoptions.h | 62 +++++++++++++++++++++ + 2 files changed, 154 insertions(+) + create mode 100644 src/lib/corelib/tools/generateoptions.cpp + create mode 100644 src/lib/corelib/tools/generateoptions.h + +diff --git a/src/lib/corelib/tools/generateoptions.cpp b/src/lib/corelib/tools/generateoptions.cpp +new file mode 100644 +index 0000000..406cf88 +--- /dev/null ++++ b/src/lib/corelib/tools/generateoptions.cpp +@@ -0,0 +1,92 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt.io/licensing ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and The Qt Company. For licensing terms and ++** conditions see http://www.qt.io/terms-conditions. For further information ++** use the contact form at http://www.qt.io/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 or version 3 as published by the Free ++** Software Foundation and appearing in the file LICENSE.LGPLv21 and ++** LICENSE.LGPLv3 included in the packaging of this file. Please review the ++** following information to ensure the GNU Lesser General Public License ++** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ++** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, The Qt Company gives you certain additional ++** rights. These rights are described in The Qt Company LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++#include "generateoptions.h" ++ ++#include ++#include ++ ++namespace qbs { ++namespace Internal { ++ ++class GenerateOptionsPrivate : public QSharedData ++{ ++public: ++ GenerateOptionsPrivate() ++ : generatorName() ++ {} ++ ++ QString generatorName; ++}; ++ ++} // namespace Internal ++ ++/*! ++ * \class GenerateOptions ++ * \brief The \c GenerateOptions class comprises parameters that influence the behavior of ++ * generate operations. ++ */ ++ ++GenerateOptions::GenerateOptions() : d(new Internal::GenerateOptionsPrivate) ++{ ++} ++ ++GenerateOptions::GenerateOptions(const GenerateOptions &other) : d(other.d) ++{ ++} ++ ++GenerateOptions &GenerateOptions::operator=(const GenerateOptions &other) ++{ ++ d = other.d; ++ return *this; ++} ++ ++GenerateOptions::~GenerateOptions() ++{ ++} ++ ++/*! ++ * Returns the name of the generator used to create the external build system files. ++ * The default is empty. ++ */ ++QString GenerateOptions::generatorName() const ++{ ++ return d->generatorName; ++} ++ ++/*! ++ * \brief Sets the name of the generator used to create the external build system files. ++ */ ++void GenerateOptions::setGeneratorName(const QString &generatorName) ++{ ++ d->generatorName = generatorName; ++} ++ ++} // namespace qbs +diff --git a/src/lib/corelib/tools/generateoptions.h b/src/lib/corelib/tools/generateoptions.h +new file mode 100644 +index 0000000..06d08ba +--- /dev/null ++++ b/src/lib/corelib/tools/generateoptions.h +@@ -0,0 +1,62 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Copyright (C) 2015 Jake Petroules. ++** Contact: http://www.qt.io/licensing ++** ++** This file is part of the Qt Build Suite. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and The Qt Company. For licensing terms and ++** conditions see http://www.qt.io/terms-conditions. For further information ++** use the contact form at http://www.qt.io/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 or version 3 as published by the Free ++** Software Foundation and appearing in the file LICENSE.LGPLv21 and ++** LICENSE.LGPLv3 included in the packaging of this file. Please review the ++** following information to ensure the GNU Lesser General Public License ++** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ++** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, The Qt Company gives you certain additional ++** rights. These rights are described in The Qt Company LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++****************************************************************************/ ++#ifndef QBS_GENERATEOPTIONS_H ++#define QBS_GENERATEOPTIONS_H ++ ++#include "qbs_export.h" ++ ++#include ++ ++QT_BEGIN_NAMESPACE ++class QString; ++QT_END_NAMESPACE ++ ++namespace qbs { ++namespace Internal { class GenerateOptionsPrivate; } ++ ++class QBS_EXPORT GenerateOptions ++{ ++public: ++ GenerateOptions(); ++ GenerateOptions(const GenerateOptions &other); ++ GenerateOptions &operator=(const GenerateOptions &other); ++ ~GenerateOptions(); ++ ++ QString generatorName() const; ++ void setGeneratorName(const QString &generatorName); ++ ++private: ++ QSharedDataPointer d; ++}; ++ ++} // namespace qbs ++ ++#endif // QBS_GENERATEOPTIONS_H +-- +2.3.5 + diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index 5c40c6a3b0..e3b61b2921 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -1,6 +1,12 @@ # Maintainer: Alexey Pavlov # Maintainer: Ray Donnelly +# The patches for this package are developed inside the -git package. +# This is for three reasons: +# 1. Upstreaming is easier. +# 2. The Qt devs often forget to release Qbs at the same time as Qt Creator. +# 3. Commit messages are retained (though efforts are made for that via git init) + # TODO :: Patch this for clang support: # qbs setup-toolchains --type clang /mingw64/bin/clang.exe clang # .. will add a profile to %AppData%/QtProject/qbs.ini that contains: @@ -15,8 +21,8 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.3 -pkgrel=2 +pkgver=1.4.0 +pkgrel=1 _pkgfqn="${_realname}-${pkgver}.src" pkgdesc='Qt Build Suite' url='http://qt-project.org' @@ -27,32 +33,39 @@ options=('docs' 'staticlibs') # '!strip' 'debug') source=("http://download.qt-project.org/official_releases/qbs/${pkgver}/${_pkgfqn}.tar.gz" #${_realname}-${pkgver}::"git://gitorious.org/qt-labs/qbs.git#tag=v$pkgver" "manifest" - "0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch" - "0002-WIP-Xcode-generator.1.3.2.patch" - "0003-add-generator-header-installs.1.3.2.patch" - "0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch" - "0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch") -sha256sums=('6d3372d088f2328cb2f51f77321f98d20068e91a0334b4c176d85d000a78036a' + "0001-add-hostosinfo.h-to-installed-headers.1.4.patch" + "0002-WIP-Xcode-generator.1.4.patch" + "0003-add-generator-header-installs.1.4.patch" + "0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch" + "0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch" + "0006-Add-some-missing-files.1.4.patch") +sha256sums=('d384d0368c3e32ab3bdd9d85c96bb037aa1f650e77326ab5cd400a38cfef33f3' '838098b25a8044176b3139b4003594570c62a8d64f5470fbbd769f3bf44e0855' - '6cc55051178868aeda33608f1ea7cc5d30641454c852c807d13b3eaf6db9a513' - '9d770fec6b89b9568e9a35813c4e017377b618438be17c8caba0b950c4cddc85' - '6afc5fc270d7ef82c183f58e90d8a02aba80863e50d1073ed176de07c11bd7b6' - '6efed604de50ac5ab43205845e5888604705fa907b6eb30c7004a9bd228973bf' - 'f41dba9096ba87bd7112d785ccd01f7217f2d4f6ea8eada45dcb85b6ffbe79ab') + '55a48d077aa3f2274639cba2d4ad99f85db2351b22c8b307535b1c6df6daf594' + '7874ddf89d788d2bfef6ddc97956638df1389300c82132af680aa4268c6b52b6' + '12a4efc62b04ca4b157f3154589b7516d5a650388dc30eec8b107c6a087f0b81' + '6daa43c65e4ac440470687a31c74ab6d4bdcfa0fb3c195678e62a9f800356b1a' + '5002df9cb3ad3451db92918a4b74bb05237648d8697faf8894d96b51cb7faa8a' + '40d53fca4e80ab63baa8649bae43882daf2c91de22412c71dec712ac59f4a39e') prepare() { cd ${_realname}-${pkgver} [ -d src/plugins/generator ] && rm -rf src/plugins/generator rm -rf src/lib/corelib/api/generator.* rm -rf src/lib/corelib/tools/generat* - git init . - git add -A - git commit -m "Initial git import" - git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.1.3.2.patch - git am "${srcdir}"/0002-WIP-Xcode-generator.1.3.2.patch - git am "${srcdir}"/0003-add-generator-header-installs.1.3.2.patch - git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-libraries.1.3.2.patch - git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.1.3.2.patch + if [ -d .git ]; then + git reset --hard $(git rev-list --max-parents=0 --abbrev-commit HEAD) + else + git init . + git add -A + git commit -m "Initial git import" + fi + git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.1.4.patch + git am "${srcdir}"/0002-WIP-Xcode-generator.1.4.patch + git am "${srcdir}"/0003-add-generator-header-installs.1.4.patch + git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch + git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch + git am "${srcdir}"/0006-Add-some-missing-files.1.4.patch } build() { @@ -69,7 +82,8 @@ fi ${MINGW_PREFIX}/bin/qmake.exe ../qbs.pro \ CONFIG+=${_config} \ CONFIG+=qbs_enable_project_file_updates - make + # Because xcodeprojectgenerator has a build order problem. + make -j1 make docs } From 6cc9a404951bd97ffc7e4e93b2ba70174c362180 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 27 Apr 2015 19:08:57 +0300 Subject: [PATCH 0920/2060] gtk3: Update to 3.16.2 --- mingw-w64-gtk3/PKGBUILD | 13 ++++----- mingw-w64-gtk3/do-not-check-xgettext.patch | 19 ------------- mingw-w64-gtk3/fix-crash-xgettext.patch | 33 ++++++++++++++++++++++ 3 files changed, 38 insertions(+), 27 deletions(-) delete mode 100644 mingw-w64-gtk3/do-not-check-xgettext.patch create mode 100644 mingw-w64-gtk3/fix-crash-xgettext.patch diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 3be7511b46..9b65d3844e 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -2,7 +2,7 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.1 +pkgver=3.16.2 pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') @@ -34,17 +34,15 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch 0054-no-transparency-for-children.all.patch 0055-skip-testsuite.all.patch - Make-reftest-plugins-W32-compatible.patch - do-not-check-xgettext.patch) -md5sums=('7458661889a718f93b46cb44b677cc41' + fix-crash-xgettext.patch) +md5sums=('321d14c72bd62ad7417d329859bf55af' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' '3aa19ea25cc1d7693ae57f8e80f88440' 'ad383a497a9134355e0a549f844c3a33' '31d098e6856ddc8dde7259ae572f8bf1' '939ecf0b7c985e947c6bf48dfd3b8df0' - '864d4b2cd6f72115cc78a393ccd96b47' - 'c345e55743b995f9bfcb0f67afd83d9c') + '3e1b90c42a90d83f7735b458589705bd') prepare() { cd "${srcdir}/gtk+-${pkgver}" @@ -54,8 +52,7 @@ prepare() { patch -Np1 -i "${srcdir}"/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch patch -Np1 -i "${srcdir}"/0054-no-transparency-for-children.all.patch #patch -Np1 -i "${srcdir}"/0055-skip-testsuite.all.patch - #patch -Np1 -i "${srcdir}"/Make-reftest-plugins-W32-compatible.patch - patch -Np1 -i "${srcdir}"/do-not-check-xgettext.patch + patch -Np1 -i "${srcdir}"/fix-crash-xgettext.patch autoreconf -i } diff --git a/mingw-w64-gtk3/do-not-check-xgettext.patch b/mingw-w64-gtk3/do-not-check-xgettext.patch deleted file mode 100644 index 101c5cb407..0000000000 --- a/mingw-w64-gtk3/do-not-check-xgettext.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index f7c6438..4b141ba 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -666,14 +666,6 @@ fi - ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`" - AM_GLIB_GNU_GETTEXT - --AC_MSG_CHECKING([whether xgettext supports ui files]) --if $ac_cv_path_XGETTEXT --output=- --language=Glade $srcdir/gtk/ui/gtkfilechooserwidget.ui > /dev/null 2>&1; then -- AC_MSG_RESULT([yes]) --else -- AC_MSG_RESULT([no]) -- AC_MSG_ERROR([GNU gettext 0.18.3 or newer is required]) --fi -- - LIBS="$LIBS $INTLLIBS" - AC_CONFIG_COMMANDS([po-properties], - [[case "$CONFIG_FILES" in *po-properties/Makefile.in*) diff --git a/mingw-w64-gtk3/fix-crash-xgettext.patch b/mingw-w64-gtk3/fix-crash-xgettext.patch new file mode 100644 index 0000000000..4ffcc83c85 --- /dev/null +++ b/mingw-w64-gtk3/fix-crash-xgettext.patch @@ -0,0 +1,33 @@ +From b10d63c085509bd7800493a85e7bf2df5eb1fe0a Mon Sep 17 00:00:00 2001 +From: Daiki Ueno +Date: Thu, 23 Apr 2015 09:42:45 +0900 +Subject: build: Avoid xgettext crash on MSYS2 + +isatty() on MSYS2 returns non-zero if the fd is stdout and is redirected +to /dev/null. That lets xgettext to produce colorized output and leads +to an assertion failure during terminal type detection. + +Although the problem should be fixed in MSYS2, isatty() could behave +wrongly in many ways on Windows. Since gtk+ doesn't need colorized +output, it would be safer to bypass the terminal dependent code. + +See also: +https://lists.gnu.org/archive/html/bug-gettext/2015-04/msg00004.html + +https://bugzilla.gnome.org/show_bug.cgi?id=748346 + +diff --git a/configure.ac b/configure.ac +index ba8954c..005c678 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -668,7 +668,7 @@ ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`" + AM_GLIB_GNU_GETTEXT + + AC_MSG_CHECKING([whether xgettext supports ui files]) +-if $ac_cv_path_XGETTEXT --output=- --language=Glade $srcdir/gtk/ui/gtkfilechooserwidget.ui > /dev/null 2>&1; then ++if $ac_cv_path_XGETTEXT --output=- --color=no --language=Glade $srcdir/gtk/ui/gtkfilechooserwidget.ui > /dev/null 2>&1; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +-- +cgit v0.10.2 From c4e811c69066a8d810d3ec6d9a9aacdb1a6df064 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 28 Apr 2015 00:30:25 +0100 Subject: [PATCH 0921/2060] qt5: Emit QMAKE_DEFAULT_{LIBDIRS,INCDIRS} from configure.exe .. into qconfig.pri. Without this, the packager was required to remove old versions of Qt software from the sysroot before building new versions of that software. mkspecs/features/qt_functions.prf:77..78 has the following: MODULE_LIBS_ADD = $$MODULE_LIBS MODULE_LIBS_ADD -= $$QMAKE_DEFAULT_LIBDIRS .. and that did nothing since QMAKE_DEFAULT_LIBDIRS was empty before this change. The configure shell script does this using awk. This feature should be made to work for other compilers too, currently only g++ is supported. --- mingw-w64-angleproject-git/PKGBUILD | 2 +- mingw-w64-cmake-git/PKGBUILD | 2 +- mingw-w64-gdb/PKGBUILD | 17 +- mingw-w64-geany/PKGBUILD | 2 +- mingw-w64-libimobiledevice/PKGBUILD | 9 +- ...T_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch | 149 ++++++++++++++++++ mingw-w64-qt5/PKGBUILD | 10 +- ...altime_s-is-not-needed-for-mingw-w64.patch | 4 +- mingw-w64-v8/PKGBUILD | 18 ++- 9 files changed, 185 insertions(+), 28 deletions(-) create mode 100644 mingw-w64-qt5/0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch diff --git a/mingw-w64-angleproject-git/PKGBUILD b/mingw-w64-angleproject-git/PKGBUILD index 74a2c7c7a2..6e61b858bf 100644 --- a/mingw-w64-angleproject-git/PKGBUILD +++ b/mingw-w64-angleproject-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=angleproject pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=2.1.r3927 +pkgver=2.1.r3931 pkgrel=1 pkgdesc='Angle project built from git source (mingw-w64)' arch=('any') diff --git a/mingw-w64-cmake-git/PKGBUILD b/mingw-w64-cmake-git/PKGBUILD index 1f89eed5a5..771e959c1f 100644 --- a/mingw-w64-cmake-git/PKGBUILD +++ b/mingw-w64-cmake-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r25180.3bbdb23 +pkgver=r27504.9ed24fb pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') diff --git a/mingw-w64-gdb/PKGBUILD b/mingw-w64-gdb/PKGBUILD index cadd7172f4..704a834460 100644 --- a/mingw-w64-gdb/PKGBUILD +++ b/mingw-w64-gdb/PKGBUILD @@ -7,8 +7,8 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") # Until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62279 is # fixed, we will stick with 7.6.2 which hasn't got this bug.. #pkgver=7.8.1 -pkgver=7.6.2 -pkgrel=2 +pkgver=7.9 +pkgrel=1 pkgdesc="GNU Debugger (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gdb/" @@ -18,35 +18,38 @@ depends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-libiconv" - "${MINGW_PACKAGE_PREFIX}-python2") + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python2" checkdepends=('dejagnu' 'bc') makedepends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-xz") options=('staticlibs' '!distcc' '!ccache') -source=(http://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.bz2{,.sig} +source=(http://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.xz{,.sig} 'gdbinit' 'gdb-fix-display-tabs-on-mingw.patch' # 'gdb-mingw-gcc-4.7.patch' 'gdb-7.8.1-mingw-gcc-4.7.patch' 'gdb-7.6.2-mingw-gcc-4.7.patch' + 'gdb-7.9-mingw-gcc-4.7.patch' 'gdb-perfomance.patch' 'gdb-fix-using-gnu-print.patch') -md5sums=('496399e96654fc0f899a5c964bc1f0f8' +md5sums=('e6279f26559d839f0b4218a482bcb43e' 'SKIP' 'dec2439447cb1accf037457b459093f7' 'e48292d553379a9765c82e80e618ffd2' '8cc7f920caf4dddfc0d5d3fcd347ebb4' '7cc5df72d958ef3e4b1ffa9f7b069e6f' + '8cc7f920caf4dddfc0d5d3fcd347ebb4' 'e9b7c252fedfa950998f5f3b32536461' 'd7112b220466a294aa266bb4d5c06a59') prepare() { cd ${srcdir}/gdb-${pkgver} - # set -x + set -x # https://sourceware.org/ml/gdb-patches/2013-11/msg00224.html #patch -p1 -i ${srcdir}/gdb-fix-display-tabs-on-mingw.patch # https://sourceware.org/bugzilla/show_bug.cgi?id=15559 # patch -p1 -i ${srcdir}/gdb-mingw-gcc-4.7.patch - patch -p1 -i ${srcdir}/gdb-${pkgver}-mingw-gcc-4.7.patch + # patch -p1 -i ${srcdir}/gdb-${pkgver}-mingw-gcc-4.7.patch # http://sourceware.org/bugzilla/show_bug.cgi?id=15412 patch -p1 -i ${srcdir}/gdb-perfomance.patch diff --git a/mingw-w64-geany/PKGBUILD b/mingw-w64-geany/PKGBUILD index 79c2856954..df9f77ac87 100644 --- a/mingw-w64-geany/PKGBUILD +++ b/mingw-w64-geany/PKGBUILD @@ -23,7 +23,7 @@ optdepends=( #'geany-plugins: various extra features' #'vte: terminal support' "${MINGW_PACKAGE_PREFIX}-python2") -source=("http://download.geany.org/${_realname}-${pkgver}.tar.bz2" +source=("http://pkgs.fedoraproject.org/repo/pkgs/geany/geany-1.24.1.tar.bz2/d225104cef3973164d70116d46239606/${_realname}-${pkgver}.tar.bz2" "0001-Fix-windres-invocation.patch" "0002-Fix-plugin-compilation.patch" "0003-Use-FHS.patch" diff --git a/mingw-w64-libimobiledevice/PKGBUILD b/mingw-w64-libimobiledevice/PKGBUILD index b2ef37fb4b..bcd9626ad8 100644 --- a/mingw-w64-libimobiledevice/PKGBUILD +++ b/mingw-w64-libimobiledevice/PKGBUILD @@ -2,8 +2,8 @@ _realname=libimobiledevice pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.1.7 -pkgrel=2 +pkgver=1.2.0 +pkgrel=1 pkgdesc='A cross-platform protocol library to communicate with iOS devices (mingw-w64)' groups=("${MINGW_PACKAGE_PREFIX}" "xdev") arch=('any') @@ -15,7 +15,7 @@ source=("http://www.libimobiledevice.org/downloads/${_realname}-${pkgver}.tar.bz depends=("${MINGW_PACKAGE_PREFIX}-libusbmuxd" "${MINGW_PACKAGE_PREFIX}-libplist" "${MINGW_PACKAGE_PREFIX}-openssl") -sha1sums=('ac47ba39e7f8d8cb9379756773ece30458b93c80' +sha1sums=('a8e3f21180b1d6df754d04a4080a29cf6891e701' '9d091cf73ce1477db7b78fc8e47572e2e3031e79') prepare() { @@ -37,8 +37,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-static \ - --enable-shared \ - --enable-dev-tools + --enable-shared make } diff --git a/mingw-w64-qt5/0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch b/mingw-w64-qt5/0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch new file mode 100644 index 0000000000..a8e2c41d4b --- /dev/null +++ b/mingw-w64-qt5/0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch @@ -0,0 +1,149 @@ +--- x86_64/qtbase/tools/configure/environment.h.orig 2015-02-17 04:56:37.000000000 +0000 ++++ x86_64/qtbase/tools/configure/environment.h 2015-04-27 20:38:52.767995400 +0100 +@@ -57,6 +57,10 @@ + static QString detectQMakeSpec(); + static Compiler compilerFromQMakeSpec(const QString &qmakeSpec); + ++ static int compileSomething(const QString &flags, const QString &code, QString &stdOut, QString &stdErr); ++ static QString detectCompilerDefaultIncDirs(); ++ static QString detectCompilerDefaultLibDirs(); ++ + static int execute(QStringList arguments, const QStringList &additionalEnv, const QStringList &removeEnv); + static QString execute(const QString &command, int *returnCode = 0); + static bool cpdir(const QString &srcDir, const QString &destDir); +--- x86_64/qtbase/tools/configure/environment.cpp.orig 2015-02-17 04:56:37.000000000 +0000 ++++ x86_64/qtbase/tools/configure/environment.cpp 2015-04-28 00:16:41.914633600 +0100 +@@ -40,6 +40,8 @@ + #include + #include + #include ++#include ++#include + + #include + #include +@@ -236,6 +238,112 @@ + #endif + }; + ++/* Returns the exit-code. */ ++int Environment::compileSomething(const QString &flags, const QString &code, QString &stdOut, QString &stdErr) ++{ ++ CompilerInfo *info = compilerInfo(detectCompiler()); ++ int returnCode = 1; ++ if (info) { ++ QTemporaryFile tmpIn("conftestXXXXXX.cpp"); ++ QString tmpOutFileName; ++ { ++ QTemporaryFile tmpOut("conftestXXXXXX.o"); ++ tmpOut.open(); ++ tmpOut.close(); ++ tmpOutFileName = tmpOut.fileName(); ++ } ++ QString tmpStdErrFileName; ++ { ++ QTemporaryFile tmpStdErr("conftestXXXXXX.stderr"); ++ tmpStdErr.open(); ++ tmpStdErr.close(); ++ tmpStdErrFileName = tmpStdErr.fileName(); ++ } ++ if (tmpIn.open()) { ++ tmpIn.write(code.toUtf8()); ++ tmpIn.close(); ++ QString cmd = info->executable + QString(" ") + flags ++ + QString(" -o ") + tmpOutFileName ++ + QString(" ") + tmpIn.fileName() + " 2>" + tmpStdErrFileName; ++ stdOut = Environment::execute(cmd, &returnCode); ++ QFile tmpStdErr(tmpStdErrFileName); ++ if (tmpStdErr.open(QIODevice::ReadOnly | QIODevice::Text)) { ++ stdErr = tmpStdErr.readAll(); ++ tmpStdErr.close(); ++ tmpStdErr.remove(); ++ } ++ QFile::remove(tmpOutFileName); ++ } ++ } ++ return returnCode; ++} ++ ++QString Environment::detectCompilerDefaultIncDirs() ++{ ++ QString stdOut; ++ QString stdErr; ++ int returnCode = Environment::compileSomething("-v ", "", stdOut, stdErr); ++ QStringList result; ++ int index = stdErr.indexOf("<...>"); ++ if (index != -1) { ++ index = stdErr.indexOf("\n", index); ++ int lastIndex = index; ++ while (lastIndex != -1) { ++ if (stdErr[lastIndex + 1] != ' ') ++ break; ++ lastIndex += 2; ++ index = stdErr.indexOf("\n", lastIndex + 1); ++ if (index != -1) { ++ const QString newPath(QDir::cleanPath(stdErr.mid(lastIndex, index - lastIndex))); ++ if (result.indexOf(newPath) == -1) ++ result.append(newPath); ++ } ++ lastIndex = index; ++ } ++ } ++ Q_UNUSED(returnCode); ++ QString resultString; ++ for (int i = 0; i < result.count(); ++i) { ++ resultString.append(result[i]); ++ if ( i != result.count() - 1) ++ resultString.append(" "); ++ } ++ return resultString; ++} ++ ++QString Environment::detectCompilerDefaultLibDirs() ++{ ++ QString stdOut; ++ QString stdErr; ++ int returnCode = Environment::compileSomething("-v ", "", stdOut, stdErr); ++ QStringList result; ++ int index = stdErr.indexOf("LIBRARY_PATH"); ++ if (index != -1) { ++ index += strlen("LIBRARY_PATH"); ++ int lastIndex = index; ++ while (lastIndex != -1) { ++ if (stdErr[lastIndex + 1] == '\n') ++ break; ++ index = stdErr.indexOf(";", lastIndex + 1); ++ if (index != -1) { ++ const QString newPath(QDir::cleanPath(stdErr.mid(lastIndex + 1, index - lastIndex - 1))); ++ if (result.indexOf(newPath) == -1) ++ result.append(newPath); ++ } ++ lastIndex = index; ++ } ++ } ++ Q_UNUSED(returnCode); ++ QString resultString; ++ for (int i = 0; i < result.count(); ++i) { ++ resultString.append(result[i]); ++ if ( i != result.count() - 1) ++ resultString.append(" "); ++ } ++ return resultString; ++} ++ ++ + /*! + Creates a commandling from \a program and it \a arguments, + escaping characters that needs it. +--- x86_64/qtbase/tools/configure/configureapp.cpp.orig 2015-04-27 17:41:27.741748800 +0100 ++++ x86_64/qtbase/tools/configure/configureapp.cpp 2015-04-27 19:08:16.403164800 +0100 +@@ -3388,6 +3388,9 @@ + // FIXME: add detection + configStream << " QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib" << endl; + configStream << " QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include" << endl; ++ } else { ++ configStream << " QMAKE_DEFAULT_LIBDIRS = " << Environment::detectCompilerDefaultLibDirs() << endl; ++ configStream << " QMAKE_DEFAULT_INCDIRS = " << Environment::detectCompilerDefaultIncDirs() << endl; + } + configStream << "}" << endl; + configStream << "QT_CONFIG += " << qtConfig.join(' ') << endl; diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index f2531f20b0..2a554d6e1e 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.1 pkgver=${_ver_base//-/} -pkgrel=3 +pkgrel=4 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -181,7 +181,8 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch 0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch - 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch) + 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch + 0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch) md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' @@ -226,7 +227,8 @@ md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' '7fb83b02387cfe5452cc0a95a7e2e551' 'd9e0f8a09b24757c274187469c7661d4' '51016015352313cdd749ae1ff3e14614' - '9bc9c1177134d0f2fd782db3f394a318') + '9bc9c1177134d0f2fd782db3f394a318' + '35ca99ccfe9fcd2ed2d8668023d885e2') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -348,6 +350,8 @@ prepare() { patch -p1 -i ${srcdir}/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch popd > /dev/null + patch -p1 -i ${srcdir}/0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch + # See: https://bugreports.qt-project.org/browse/QTBUG-37902 # _ver_num=${_ver_base%%-*} # sed -i "s/^MODULE_VERSION = .*$/MODULE_VERSION = ${_ver_num}/g" qtenginio/.qmake.conf diff --git a/mingw-w64-v8/0006-localtime_s-is-not-needed-for-mingw-w64.patch b/mingw-w64-v8/0006-localtime_s-is-not-needed-for-mingw-w64.patch index 1cedc13546..f0c7972e52 100644 --- a/mingw-w64-v8/0006-localtime_s-is-not-needed-for-mingw-w64.patch +++ b/mingw-w64-v8/0006-localtime_s-is-not-needed-for-mingw-w64.patch @@ -1,5 +1,5 @@ ---- v8-git-mirror-4.2.47/src/platform-win32.cc.orig 2015-02-13 12:32:02.012827200 +0000 -+++ v8-git-mirror-4.2.47/src/platform-win32.cc 2015-02-13 12:33:09.326827200 +0000 +--- v8-git-mirror-4.2.47/src/base/platform/platform-win32.cc.orig 2015-02-13 12:32:02.012827200 +0000 ++++ v8-git-mirror-4.2.47/src/base/platform/platform-win32.cc 2015-02-13 12:33:09.326827200 +0000 @@ -42,9 +42,6 @@ __asm__ __volatile__("xchgl %%eax,%0 ":"=r" (barrier)); } diff --git a/mingw-w64-v8/PKGBUILD b/mingw-w64-v8/PKGBUILD index 7f20f51565..d4d6707163 100644 --- a/mingw-w64-v8/PKGBUILD +++ b/mingw-w64-v8/PKGBUILD @@ -4,8 +4,9 @@ _realname=v8 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.27.34.6 -pkgrel=2 +#pkgver=3.27.34.6 +pkgver=4.2.47 +pkgrel=1 pkgdesc="Fast and modern Javascript engine (mingw-w64)" arch=('any') url="http://code.google.com/p/v8" @@ -14,7 +15,7 @@ makedepends=("gyp-svn") depends=("${MINGW_PACKAGE_PREFIX}-readline" "${MINGW_PACKAGE_PREFIX}-icu") options=('!emptydirs' '!strip') -source=("https://github.com/v8/v8/archive/${pkgver}.tar.gz" +source=("https://github.com/v8/v8-git-mirror/archive/${pkgver}.tar.gz" "0000-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch" "0001-Include-win32-headers-h-before-undef-MemoryBarrier.patch" "0002-OS-TotalPhysicalMemory-needed-for-MinGW-w64-too.patch" @@ -23,21 +24,21 @@ source=("https://github.com/v8/v8/archive/${pkgver}.tar.gz" "0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch" "0006-localtime_s-is-not-needed-for-mingw-w64.patch" "v8.pc") -md5sums=('2e9069c38a985150e6d4d7af2f38689d' +md5sums=('0e0924cfdda62964217101279a831b42' 'd13060d09d6a8cbf3da5d0ec773f8e57' 'f341d18574cc16df53287fe9cccdf75b' '26a61fe54cee6bd135d9b8633d4413d2' 'cc9c6d019cc3ac025d2ec76507a68ba1' '4e444573e7cfba10b12e56a02c6503ff' 'f447bd43d7bb79f7a6b0fcf5dfdb24e1' - 'cf011b3a22124efad02ef190ae143b8f' + '8ff44dfc33ebefe3f328a42e0e2c2030' '02a39154c246e03d8f8e745454c1619c') prepare() { - cd ${srcdir}/v8-${pkgver} + cd "${srcdir}"/v8-git-mirror-${pkgver} patch -p1 -i ${srcdir}/0000-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch patch -p1 -i ${srcdir}/0001-Include-win32-headers-h-before-undef-MemoryBarrier.patch - patch -p1 -i ${srcdir}/0002-OS-TotalPhysicalMemory-needed-for-MinGW-w64-too.patch +# patch -p1 -i ${srcdir}/0002-OS-TotalPhysicalMemory-needed-for-MinGW-w64-too.patch patch -p1 -i ${srcdir}/0003-Use-soname_version.dll-not-so.soname_version-on-Windows.patch patch -p1 -i ${srcdir}/0004-Create-an-import-library-on-Windows.patch patch -p1 -i ${srcdir}/0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch @@ -70,7 +71,7 @@ build() { _arch=x64 ;; esac - cd "${srcdir}/v8-${pkgver}" + cd "${srcdir}"/v8-git-mirror-${pkgver} GYP_GENERATORS=make \ $PYTHON build/gyp_v8 \ @@ -80,6 +81,7 @@ build() { -Dcomponent=shared_library \ -Dsoname_version=${pkgver} \ -Dv8_target_arch=${_arch} \ + -Dgcc_version=49 \ --generator-output=out \ -f make From 972355f95101178298d67c17aace8928920bd54e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 07:16:03 +0300 Subject: [PATCH 0922/2060] leptonica: Update to 1.72 --- mingw-w64-leptonica/PKGBUILD | 16 ++--- mingw-w64-leptonica/giflib.patch | 110 ------------------------------- 2 files changed, 8 insertions(+), 118 deletions(-) delete mode 100644 mingw-w64-leptonica/giflib.patch diff --git a/mingw-w64-leptonica/PKGBUILD b/mingw-w64-leptonica/PKGBUILD index 4843564786..787fc5ab5e 100644 --- a/mingw-w64-leptonica/PKGBUILD +++ b/mingw-w64-leptonica/PKGBUILD @@ -2,7 +2,7 @@ _realname=leptonica pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.71 +pkgver=1.72 pkgrel=1 pkgdesc="Leptonica library (mingw-w64)" arch=('any') @@ -10,15 +10,15 @@ url="http://www.leptonica.org" license=("Leptonica") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs - ${MINGW_PACKAGE_PREFIX}-openjpeg2 - ${MINGW_PACKAGE_PREFIX}-libtiff - ${MINGW_PACKAGE_PREFIX}-libpng - ${MINGW_PACKAGE_PREFIX}-giflib - ${MINGW_PACKAGE_PREFIX}-libwebp - ${MINGW_PACKAGE_PREFIX}-zlib) + ${MINGW_PACKAGE_PREFIX}-giflib + ${MINGW_PACKAGE_PREFIX}-libtiff + ${MINGW_PACKAGE_PREFIX}-libpng + ${MINGW_PACKAGE_PREFIX}-libwebp + ${MINGW_PACKAGE_PREFIX}-openjpeg2 + ${MINGW_PACKAGE_PREFIX}-zlib) options=('!libtool' 'strip') source=("http://www.leptonica.org/source/${_realname}-${pkgver}.tar.gz") -md5sums=('790f34d682e6150c12c54bfe4a824f7f') +md5sums=('7581db29f8442197ce68e766c6047c4b') prepare() { cd "$srcdir/${_realname}-$pkgver" diff --git a/mingw-w64-leptonica/giflib.patch b/mingw-w64-leptonica/giflib.patch deleted file mode 100644 index fc3797db38..0000000000 --- a/mingw-w64-leptonica/giflib.patch +++ /dev/null @@ -1,110 +0,0 @@ ---- leptonica-1.70/src/gifio.c.orig 2013-11-24 01:57:40.000000000 +0400 -+++ leptonica-1.70/src/gifio.c 2014-05-28 08:25:21.995400000 +0400 -@@ -121,12 +121,12 @@ - - /* Read all the data, but use only the first image found */ - if (DGifSlurp(gif) != GIF_OK) { -- DGifCloseFile(gif); -+ DGifCloseFile(gif, NULL); - return (PIX *)ERROR_PTR("failed to read GIF data", procName, NULL); - } - - if (gif->SavedImages == NULL) { -- DGifCloseFile(gif); -+ DGifCloseFile(gif, NULL); - return (PIX *)ERROR_PTR("no images found in GIF", procName, NULL); - } - -@@ -134,12 +134,12 @@ - w = si.ImageDesc.Width; - h = si.ImageDesc.Height; - if (w <= 0 || h <= 0) { -- DGifCloseFile(gif); -+ DGifCloseFile(gif, NULL); - return (PIX *)ERROR_PTR("invalid image dimensions", procName, NULL); - } - - if (si.RasterBits == NULL) { -- DGifCloseFile(gif); -+ DGifCloseFile(gif, NULL); - return (PIX *)ERROR_PTR("no raster data in GIF", procName, NULL); - } - -@@ -151,7 +151,7 @@ - gif_cmap = gif->SColorMap; - } else { - /* don't know where to take cmap from */ -- DGifCloseFile(gif); -+ DGifCloseFile(gif, NULL); - return (PIX *)ERROR_PTR("color map is missing", procName, NULL); - } - -@@ -175,7 +175,7 @@ - } - - if ((pixd = pixCreate(w, h, d)) == NULL) { -- DGifCloseFile(gif); -+ DGifCloseFile(gif, NULL); - pixcmapDestroy(&cmap); - return (PIX *)ERROR_PTR("failed to allocate pixd", procName, NULL); - } -@@ -207,7 +207,7 @@ - pixTransferAllData(pixd, &pixdi, 0, 0); - } - -- DGifCloseFile(gif); -+ DGifCloseFile(gif, NULL); - return pixd; - } - -@@ -356,14 +356,14 @@ - != GIF_OK) { - pixDestroy(&pixd); - GifFreeMapObject(gif_cmap); -- EGifCloseFile(gif); -+ EGifCloseFile(gif, NULL); - return ERROR_INT("failed to write screen description", procName, 1); - } - GifFreeMapObject(gif_cmap); /* not needed after this point */ - - if (EGifPutImageDesc(gif, 0, 0, w, h, FALSE, NULL) != GIF_OK) { - pixDestroy(&pixd); -- EGifCloseFile(gif); -+ EGifCloseFile(gif, NULL); - return ERROR_INT("failed to image screen description", procName, 1); - } - -@@ -371,13 +371,13 @@ - wpl = pixGetWpl(pixd); - if (d != 1 && d != 2 && d != 4 && d != 8) { - pixDestroy(&pixd); -- EGifCloseFile(gif); -+ EGifCloseFile(gif, NULL); - return ERROR_INT("image depth is not in {1, 2, 4, 8}", procName, 1); - } - - if ((gif_line = (GifByteType *)CALLOC(sizeof(GifByteType), w)) == NULL) { - pixDestroy(&pixd); -- EGifCloseFile(gif); -+ EGifCloseFile(gif, NULL); - return ERROR_INT("mem alloc fail for data line", procName, 1); - } - -@@ -406,7 +406,7 @@ - if (EGifPutLine(gif, gif_line, w) != GIF_OK) { - FREE(gif_line); - pixDestroy(&pixd); -- EGifCloseFile(gif); -+ EGifCloseFile(gif, NULL); - return ERROR_INT("failed to write data line into GIF", procName, 1); - } - } -@@ -422,7 +422,7 @@ - - FREE(gif_line); - pixDestroy(&pixd); -- EGifCloseFile(gif); -+ EGifCloseFile(gif, NULL); - return 0; - } - From c53da04ccfa02b855dcbff1f31d7d5c1e3e47938 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 07:16:23 +0300 Subject: [PATCH 0923/2060] python-beaker: Update to 1.7.0 --- mingw-w64-python-beaker/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-python-beaker/PKGBUILD b/mingw-w64-python-beaker/PKGBUILD index 279728d95b..2b82a6cd4a 100644 --- a/mingw-w64-python-beaker/PKGBUILD +++ b/mingw-w64-python-beaker/PKGBUILD @@ -3,15 +3,15 @@ _realname=beaker pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.6.5 +pkgver=1.7.0 pkgrel=1 pkgdesc="Caching and sessions WSGI middleware for use with web applications and stand-alone Python scripts and applications (mingw-w64)" arch=('any') license=('custom') url="http://beaker.groovie.org/" depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") -source=(https://github.com/bbangert/beaker/archive/v${pkgver}.tar.gz) -md5sums=('7776b5722b4669bfa0946731d3bd11d8') +source=(https://github.com/bbangert/beaker/archive/${pkgver}.tar.gz) +md5sums=('0a0d4933b28236cc339588871314df74') prepare() { cd "${srcdir}/Beaker-${pkgver}" From 23b099391e3ab64e96ea665b264786d0dbeb6ab3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 07:19:10 +0300 Subject: [PATCH 0924/2060] python-lxml: Update to 3.4.4 --- mingw-w64-python-lxml/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-lxml/PKGBUILD b/mingw-w64-python-lxml/PKGBUILD index 55930a55df..1806b61097 100644 --- a/mingw-w64-python-lxml/PKGBUILD +++ b/mingw-w64-python-lxml/PKGBUILD @@ -4,7 +4,7 @@ _realname=lxml pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}" "${MINGW_PACKAGE_PREFIX}-python-${_realname}-docs") -pkgver=3.4.2 +pkgver=3.4.4 pkgrel=1 arch=('any') license=('BSD' 'custom') @@ -18,7 +18,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" source=(http://pypi.python.org/packages/source/l/lxml/${_realname}-${pkgver}.tar.gz{,.asc} mingw-python-fix.patch use-distutils-get_platform.patch) -md5sums=('429e5e771c4be0798923c04cb9739b4e' +md5sums=('a9a65972afc173ec7a39c585f4eea69c' 'SKIP' 'e07163fc1e02cab5fa6009af35d5f823' '5268f79eb2a69b05da73d357ec8184b1') From d92b793589071c6c5468ae98f237ac5819faeebc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 07:24:49 +0300 Subject: [PATCH 0925/2060] protobuf-c: Update to 1.1.1 --- mingw-w64-protobuf-c/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-protobuf-c/PKGBUILD b/mingw-w64-protobuf-c/PKGBUILD index f10b4093fd..3d373d1143 100644 --- a/mingw-w64-protobuf-c/PKGBUILD +++ b/mingw-w64-protobuf-c/PKGBUILD @@ -2,7 +2,7 @@ _realname=protobuf-c pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.1.0 +pkgver=1.1.1 pkgrel=1 pkgdesc="Protocol Buffers implementation in C (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') source=("$url/releases/download/v$pkgver/${_realname}-$pkgver.tar.gz") -md5sums=('884a6e7deb4a2f7b3cc81a4dcabe514a') +md5sums=('41d437677ea16f9d3611d98841c4af3b') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From c6955f3b3637837611b18a957137e3c3417d8eb1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 09:46:28 +0300 Subject: [PATCH 0926/2060] cmake-git: Update to git SHA [397b629] --- mingw-w64-cmake-git/PKGBUILD | 23 +-- .../qt5-static-plugin-support.patch | 144 ++++++++++++++++++ mingw-w64-cmake-git/wxWidgets-module.patch | 14 -- 3 files changed, 150 insertions(+), 31 deletions(-) create mode 100644 mingw-w64-cmake-git/qt5-static-plugin-support.patch delete mode 100644 mingw-w64-cmake-git/wxWidgets-module.patch diff --git a/mingw-w64-cmake-git/PKGBUILD b/mingw-w64-cmake-git/PKGBUILD index 771e959c1f..96a9c33c0b 100644 --- a/mingw-w64-cmake-git/PKGBUILD +++ b/mingw-w64-cmake-git/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Martell Malone _realname=cmake - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r27504.9ed24fb +pkgver=r27830.397b629 pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') @@ -27,11 +26,11 @@ options=('staticlibs' 'strip') source=("${_realname}"::"git+http://cmake.org/cmake.git" 'disable-response-files-for-msys.patch' 'dont-install-bundle.patch' - 'wxWidgets-module.patch') + 'qt5-static-plugin-support.patch') md5sums=('SKIP' 'cdd0c24ffdad5e175a731ddc9781a123' 'fb33ace70ba863159b2c7964a9661e1e' - '09ea9092ca85e482de79886bd0c09144') + '6461b89ff7d1ca0c4022801dff8475a7') pkgver() { cd "$srcdir/$_realname" @@ -42,20 +41,15 @@ prepare() { cd ${_realname} patch -Np1 -i ${srcdir}/disable-response-files-for-msys.patch patch -Np1 -i ${srcdir}/dont-install-bundle.patch - patch -Np1 -i ${srcdir}/wxWidgets-module.patch + patch -Np1 -i ${srcdir}/qt5-static-plugin-support.patch } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_LIB=`pwd -W` - popd > /dev/null - mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" MSYSTEM=MINGW "${srcdir}"/${_realname}/configure \ - --prefix=${PREFIX_LIB} \ + --prefix=${MINGW_PREFIX} \ --system-libs \ --no-system-expat \ --qt-gui \ @@ -68,11 +62,6 @@ build() { } package() { - mkdir -p "${pkgdir}${MINGW_PREFIX}" - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - cd "${srcdir}/build-${CARCH}" - ./bin/cmake.exe -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} -P cmake_install.cmake + ./bin/cmake.exe -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} -P cmake_install.cmake } diff --git a/mingw-w64-cmake-git/qt5-static-plugin-support.patch b/mingw-w64-cmake-git/qt5-static-plugin-support.patch new file mode 100644 index 0000000000..bb4c458773 --- /dev/null +++ b/mingw-w64-cmake-git/qt5-static-plugin-support.patch @@ -0,0 +1,144 @@ +diff -urN cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx cmake-3.1.0/Source/cmGlobalGenerator.cxx +--- cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx 2015-01-03 16:49:13.831653600 +0000 ++++ cmake-3.1.0/Source/cmGlobalGenerator.cxx 2015-01-03 15:44:34.928951000 +0000 +@@ -1392,7 +1392,8 @@ + { + if((target.GetPropertyAsBool("AUTOMOC") + || target.GetPropertyAsBool("AUTOUIC") +- || target.GetPropertyAsBool("AUTORCC")) ++ || target.GetPropertyAsBool("AUTORCC") ++ || target.GetPropertyAsBool("AUTOSTATICPLUGINS")) + && !target.IsImported()) + { + cmQtAutoGenerators autogen; +diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQtAutoGenerators.cxx +--- cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx 2015-01-03 16:49:13.862853600 +0000 ++++ cmake-3.1.0/Source/cmQtAutoGenerators.cxx 2015-01-03 17:03:44.895400500 +0000 +@@ -31,6 +31,7 @@ + #include + #endif + ++#include + #include "cmQtAutoGenerators.h" + + +@@ -151,7 +152,7 @@ + static std::string getAutogenTargetName(cmTarget const* target) + { + std::string autogenTargetName = target->GetName(); +- autogenTargetName += "_automoc"; ++ autogenTargetName += "_autogen"; + return autogenTargetName; + } + +@@ -193,6 +194,7 @@ + + target->AddSource(mocCppFile); + } ++ + // create a custom target for running generators at buildtime: + std::string autogenTargetName = getAutogenTargetName(target); + +@@ -230,7 +232,13 @@ + { + toolNames.push_back("rcc"); + } +- ++ /* AUTOSTATICPLUGINS .cpp files are created at cmake execution time, ++ * and not at build time, so in that case it is possible to get here ++ * with no toolNames. */ ++ if (!toolNames.size()) ++ { ++ return true; ++ } + std::string tools = toolNames[0]; + toolNames.erase(toolNames.begin()); + while (toolNames.size() > 1) +@@ -393,7 +401,9 @@ + + if (target->GetPropertyAsBool("AUTOMOC") + || target->GetPropertyAsBool("AUTOUIC") +- || target->GetPropertyAsBool("AUTORCC")) ++ || target->GetPropertyAsBool("AUTORCC") ++ || ( target->GetPropertyAsBool("AUTOSTATICPLUGINS") ++ && target->GetType() == cmTarget::EXECUTABLE)) + { + this->SetupSourceFiles(target); + } +@@ -554,6 +564,57 @@ + { + const_cast(target)->AddSource(*fileIt); + } ++ ++ /* in qt5-static/lib/cmake/Qt5Core/Qt5CoreConfig.cmake, macro(_populate_Core_plugin_properties ..), we'd have: ++ * set_property(TARGET PROPERTY AUTOSTATICPLUGINS True) // Not currently need as defaults to "ON" ++ * set_property(TARGET Qt5::Core APPEND PROPERTY STATIC_PLUGINS ${Plugin}) ++ */ ++ if (target->GetPropertyAsBool("AUTOSTATICPLUGINS")) ++ { ++ std::vector libTargets = target->GetLinkImplementationClosure(""); ++ std::vector::const_iterator li; ++ std::vector staticPlugins; ++ for (li = libTargets.begin(); li != libTargets.end(); ++li) ++ { ++ cmTarget const* tgt = *li; ++ const char *staticPluginsProp = tgt->GetProperty("STATIC_PLUGINS"); ++ if (staticPluginsProp) ++ { ++ std::vector staticPluginsTgt = cmSystemTools::tokenize(staticPluginsProp, ";"); ++ for (std::vector::const_iterator spti = staticPluginsTgt.begin(); spti != staticPluginsTgt.end(); ++spti) ++ { ++ if (std::find(staticPlugins.begin(), staticPlugins.end(), *spti) == staticPlugins.end()) ++ { ++ staticPlugins.push_back(*spti); ++ } ++ } ++ } ++ } ++ ++ if (staticPlugins.size()) ++ { ++ std::string static_plugins_output_dir = target->GetSupportDirectory(); ++ cmSystemTools::MakeDirectory(static_plugins_output_dir.c_str()); ++ std::string static_plugins_output_file = static_plugins_output_dir; ++ static_plugins_output_file += "/" + target->GetName() + "_plugin_import.cpp"; ++ cmGeneratedFileStream ++ staticPluginsFileStream(static_plugins_output_file.c_str()); ++ if(staticPluginsFileStream) ++ { ++ staticPluginsFileStream << "// This file is autogenerated by cmake. It imports static plugin classes for" << std::endl; ++ staticPluginsFileStream << "// static plugins specified using QTPLUGIN and QT_PLUGIN_CLASS. variables." << std::endl; ++ staticPluginsFileStream << "#include " << std::endl; ++ for (std::vector::const_iterator spti = staticPlugins.begin(); spti != staticPlugins.end(); ++spti) ++ { ++ staticPluginsFileStream << "Q_IMPORT_PLUGIN(" << *spti << ")" << std::endl; ++ } ++ staticPluginsFileStream.Close(); ++ makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", ++ static_plugins_output_file.c_str(), false); ++ const_cast(target)->AddSource(static_plugins_output_file); ++ } ++ } ++ } + } + + void cmQtAutoGenerators::SetupAutoMocTarget(cmTarget const* target, +diff -urN cmake-3.1.0.orig/Source/cmTarget.cxx cmake-3.1.0/Source/cmTarget.cxx +--- cmake-3.1.0.orig/Source/cmTarget.cxx 2015-01-03 16:49:13.862853600 +0000 ++++ cmake-3.1.0/Source/cmTarget.cxx 2015-01-03 15:44:35.006951100 +0000 +@@ -342,6 +342,7 @@ + this->SetPropertyDefault("AUTOMOC", 0); + this->SetPropertyDefault("AUTOUIC", 0); + this->SetPropertyDefault("AUTORCC", 0); ++ this->SetPropertyDefault("AUTOSTATICPLUGINS", 0); + this->SetPropertyDefault("AUTOMOC_MOC_OPTIONS", 0); + this->SetPropertyDefault("AUTOUIC_OPTIONS", 0); + this->SetPropertyDefault("AUTORCC_OPTIONS", 0); +@@ -1727,6 +1728,7 @@ + builtIns.insert("IMPORTED"); + builtIns.insert("NAME"); + builtIns.insert("TYPE"); ++ builtIns.insert("STATIC_PLUGINS"); + } + + if (builtIns.count(prop)) diff --git a/mingw-w64-cmake-git/wxWidgets-module.patch b/mingw-w64-cmake-git/wxWidgets-module.patch deleted file mode 100644 index 3872f35373..0000000000 --- a/mingw-w64-cmake-git/wxWidgets-module.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -Naur cmake-3.0.1.orig/Modules/FindwxWidgets.cmake cmake-3.0.1.wxfix/Modules/FindwxWidgets.cmake ---- cmake-3.0.1.orig/Modules/FindwxWidgets.cmake 2014-07-31 10:03:56.000000000 -0500 -+++ cmake-3.0.1.wxfix/Modules/FindwxWidgets.cmake 2014-08-14 12:02:11.604331400 -0500 -@@ -792,6 +792,10 @@ - wxWidgets_CXX_FLAGS "${wxWidgets_CXX_FLAGS}") - string(REPLACE "-I" "" - wxWidgets_INCLUDE_DIRS "${wxWidgets_INCLUDE_DIRS}") -+ -+ # Flags are a string, not a list, fix it here -+ string(REPLACE ";" " " -+ wxWidgets_CXX_FLAGS "${wxWidgets_CXX_FLAGS}") - - DBG_MSG_V("wxWidgets_DEFINITIONS=${wxWidgets_DEFINITIONS}") - DBG_MSG_V("wxWidgets_INCLUDE_DIRS=${wxWidgets_INCLUDE_DIRS}") From d10f10b9e2f19f17b23eca62924bbc1ec713c21f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 10:52:49 +0300 Subject: [PATCH 0927/2060] gdb: Fix PKGBUILD. --- mingw-w64-gdb/PKGBUILD | 13 +- mingw-w64-gdb/gdb-7.9-mingw-gcc-4.7.patch | 143 ++++++++++++++++++++++ 2 files changed, 149 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-gdb/gdb-7.9-mingw-gcc-4.7.patch diff --git a/mingw-w64-gdb/PKGBUILD b/mingw-w64-gdb/PKGBUILD index 704a834460..ead26e899d 100644 --- a/mingw-w64-gdb/PKGBUILD +++ b/mingw-w64-gdb/PKGBUILD @@ -14,14 +14,15 @@ arch=('any') url="http://www.gnu.org/software/gdb/" license=('GPL') groups=("${MINGW_PACKAGE_PREFIX}-toolchain") -depends=("${MINGW_PACKAGE_PREFIX}-libiconv" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-expat" +depends=("${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-zlib") checkdepends=('dejagnu' 'bc') -makedepends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-xz") +makedepends=("${MINGW_PACKAGE_PREFIX}-iconv" + "${MINGW_PACKAGE_PREFIX}-ncurses" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' '!distcc' '!ccache') source=(http://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.xz{,.sig} 'gdbinit' @@ -29,7 +30,6 @@ source=(http://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.xz{,.sig} # 'gdb-mingw-gcc-4.7.patch' 'gdb-7.8.1-mingw-gcc-4.7.patch' 'gdb-7.6.2-mingw-gcc-4.7.patch' - 'gdb-7.9-mingw-gcc-4.7.patch' 'gdb-perfomance.patch' 'gdb-fix-using-gnu-print.patch') md5sums=('e6279f26559d839f0b4218a482bcb43e' @@ -38,7 +38,6 @@ md5sums=('e6279f26559d839f0b4218a482bcb43e' 'e48292d553379a9765c82e80e618ffd2' '8cc7f920caf4dddfc0d5d3fcd347ebb4' '7cc5df72d958ef3e4b1ffa9f7b069e6f' - '8cc7f920caf4dddfc0d5d3fcd347ebb4' 'e9b7c252fedfa950998f5f3b32536461' 'd7112b220466a294aa266bb4d5c06a59') diff --git a/mingw-w64-gdb/gdb-7.9-mingw-gcc-4.7.patch b/mingw-w64-gdb/gdb-7.9-mingw-gcc-4.7.patch new file mode 100644 index 0000000000..ffe9d1e659 --- /dev/null +++ b/mingw-w64-gdb/gdb-7.9-mingw-gcc-4.7.patch @@ -0,0 +1,143 @@ + gdb/eval.c | 7 +++++++ + gdb/i386-tdep.c | 39 ++++++++++++++++++++++++++++++++++++++- + gdb/infcall.c | 23 +++++++++++++++++++++++ + 3 files changed, 68 insertions(+), 1 deletion(-) +--- a/gdb/eval.c ++++ a/gdb/eval.c +@@ -49,6 +49,10 @@ + /* This is defined in valops.c */ + extern int overload_resolution; + ++/* this variable is to notify i386_push_dummy_call that an ++ function is static member function, it is a hack */ ++extern int i386_windows_static_memfun; ++ + /* Prototypes for local functions. */ + + static struct value *evaluate_subexp_for_sizeof (struct expression *, int *); +@@ -1668,7 +1672,10 @@ evaluate_subexp_standard (struct type *expect_type, + argvec[1] = argvec[0]; + nargs--; + argvec++; ++ i386_windows_static_memfun = 1; + } ++ else ++ i386_windows_static_memfun = 0; + } + else if (op == STRUCTOP_MEMBER || op == STRUCTOP_MPTR) + { +--- a/gdb/i386-tdep.c ++++ a/gdb/i386-tdep.c +@@ -2396,6 +2396,15 @@ i386_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, + /* Keep the stack aligned. */ + return sp - 16; + } ++/* This is the hack to handle the non-static member function to thiscall ++ calling convention mode, this variable is updated in eval.c of the ++ static member function check */ ++int i386_windows_static_memfun = 0; ++ ++/* This is the hack to determine which version of gcc is used to generate ++ the function, if it is greater than 4.6, this use thiscall for member ++ function. */ ++int i386_windows_build_gt_gcc46 = 0; + + static CORE_ADDR + i386_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -2408,6 +2417,28 @@ i386_push_dummy_call (struct gdbarch *gdbarch, struct value *function, + int i; + int write_pass; + int args_space = 0; ++ struct type *func_type = value_type (function); ++ int i386_windows_thiscall = 0; ++ ++ if (func_type) ++ { ++ func_type = check_typedef (func_type); ++ ++ if (TYPE_CODE (func_type) == TYPE_CODE_PTR) ++ func_type = check_typedef (TYPE_TARGET_TYPE (func_type)); ++ ++ if( (TYPE_CODE (func_type) == TYPE_CODE_METHOD) ++ && i386_windows_build_gt_gcc46 == 1 ++ && (nargs > 0) ++ && i386_windows_static_memfun == 0 ) ++ { ++ /* a.f(5,6); ++ args[0] = this pointer; ++ args[1] = 5; ++ args[2] = 6; */ ++ i386_windows_thiscall = 1; ++ } ++ } + + /* Determine the total space required for arguments and struct + return address in a first pass (allowing for 16-byte-aligned +@@ -2430,7 +2461,7 @@ i386_push_dummy_call (struct gdbarch *gdbarch, struct value *function, + args_space += 4; + } + +- for (i = 0; i < nargs; i++) ++ for (i = i386_windows_thiscall; i < nargs; i++) + { + int len = TYPE_LENGTH (value_enclosing_type (args[i])); + +@@ -2482,6 +2513,12 @@ i386_push_dummy_call (struct gdbarch *gdbarch, struct value *function, + /* ...and fake a frame pointer. */ + regcache_cooked_write (regcache, I386_EBP_REGNUM, buf); + ++ if (i386_windows_thiscall) ++ { ++ /* args[0] refer to the last argument which is the this pointer */ ++ regcache_cooked_write (regcache, I386_ECX_REGNUM, value_contents_all(args[0])); ++ } ++ + /* MarkK wrote: This "+ 8" is all over the place: + (i386_frame_this_id, i386_sigtramp_frame_this_id, + i386_dummy_id). It's there, since all frame unwinders for +--- a/gdb/infcall.c ++++ a/gdb/infcall.c +@@ -36,6 +36,12 @@ + #include "gdbthread.h" + #include "exceptions.h" + #include "event-top.h" ++#include "utils.h" ++ ++/* this value is defined in i386-tdep.c, and we set this value here ++ if the dummy call function is build from gcc 4.7 and later, we ++ should set this value to 1, other wise, set it to 0 */ ++extern int i386_windows_build_gt_gcc46; + + /* If we can't find a function's name from its address, + we print this instead. */ +@@ -480,6 +486,8 @@ call_function_by_hand (struct value *function, int nargs, struct value **args) + ptid_t call_thread_ptid; + struct gdb_exception e; + char name_buf[RAW_FUNCTION_ADDRESS_SIZE]; ++ struct symtab *sym; ++ int gcc_minor; + + if (TYPE_CODE (ftype) == TYPE_CODE_PTR) + ftype = check_typedef (TYPE_TARGET_TYPE (ftype)); +@@ -745,6 +753,21 @@ call_function_by_hand (struct value *function, int nargs, struct value **args) + } + else + args_cleanup = make_cleanup (null_cleanup, NULL); ++ ++ /* before we push the dummy call, we need to use the real_pc to determine ++ what gcc producer is used to generate this function, so it will notify ++ this information to i386-tdep.c */ ++ sym = find_pc_symtab(real_pc); ++ if (sym != NULL && sym->producer != NULL) ++ { ++ gcc_minor = producer_is_gcc_ge_4(sym->producer); ++ if (gcc_minor>6) ++ i386_windows_build_gt_gcc46 = 1; ++ else ++ i386_windows_build_gt_gcc46 = 0; ++ } ++ else ++ i386_windows_build_gt_gcc46 = 0; + + /* Create the dummy stack frame. Pass in the call dummy address as, + presumably, the ABI code knows where, in the call dummy, the From e3fa3320c6294683f0044bef2f7c5f6030c66cf4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 11:01:46 +0300 Subject: [PATCH 0928/2060] geany: Fix PKGBUILD. --- mingw-w64-geany/PKGBUILD | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mingw-w64-geany/PKGBUILD b/mingw-w64-geany/PKGBUILD index df9f77ac87..b77eea25c8 100644 --- a/mingw-w64-geany/PKGBUILD +++ b/mingw-w64-geany/PKGBUILD @@ -8,13 +8,13 @@ _realname=geany pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.24.1 -pkgrel=1 +pkgrel=2 pkgdesc='Fast and lightweight IDE (mingw-w64)' arch=('any') url='http://www.geany.org/' license=('GPL') depends=("${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme") + "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme") makedepends=('perlxml' 'intltool' "${MINGW_PACKAGE_PREFIX}-gcc") @@ -23,12 +23,13 @@ optdepends=( #'geany-plugins: various extra features' #'vte: terminal support' "${MINGW_PACKAGE_PREFIX}-python2") -source=("http://pkgs.fedoraproject.org/repo/pkgs/geany/geany-1.24.1.tar.bz2/d225104cef3973164d70116d46239606/${_realname}-${pkgver}.tar.bz2" +source=(http://download.geany.org/${_realname}-${pkgver}.tar.bz2{,.sig} "0001-Fix-windres-invocation.patch" "0002-Fix-plugin-compilation.patch" "0003-Use-FHS.patch" "0004-Fix-genapi-invocation.patch") sha256sums=('7fb505d9b01fe6874890525f837644a6a38c23a372bb068c65ef3673108a8c33' + 'SKIP' 'aacd1815833e03ba95853f7a8adf53d848cc68f41c5cddd47f2f1a8425590a81' 'b96b810359e45bb9a263377bc2dcca0125833bf649153cd5da24d21ee94cfb42' '8380b1cfa5f58233158c7e4f71d910399026df4bc3abf117087e050ecee323cf' @@ -64,6 +65,7 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} + make } From 92a6535cc7f15f2bddc8e148acdf2b60fb9f2d5d Mon Sep 17 00:00:00 2001 From: Patrick von Reth Date: Tue, 28 Apr 2015 10:23:35 +0200 Subject: [PATCH 0929/2060] updated quassel --- .../0001-MinGW-w64-Adopt-FHS-Layout.patch | 33 +++++++------------ mingw-w64-quassel/PKGBUILD | 19 ++++++----- 2 files changed, 21 insertions(+), 31 deletions(-) diff --git a/mingw-w64-quassel/0001-MinGW-w64-Adopt-FHS-Layout.patch b/mingw-w64-quassel/0001-MinGW-w64-Adopt-FHS-Layout.patch index ff6b96ad3f..76eba780a0 100644 --- a/mingw-w64-quassel/0001-MinGW-w64-Adopt-FHS-Layout.patch +++ b/mingw-w64-quassel/0001-MinGW-w64-Adopt-FHS-Layout.patch @@ -1,23 +1,12 @@ ---- quassel-0.11.0/CMakeLists.txt.orig 2014-09-23 22:54:20.000000000 +0100 -+++ quassel-0.11.0/CMakeLists.txt 2015-02-26 23:39:02.070875700 +0000 -@@ -427,17 +427,17 @@ +diff -Nru -x '*~' quassel-0.12.2.orig/cmake/QuasselInstallDirs.cmake quassel-0.12.2/cmake/QuasselInstallDirs.cmake +--- quassel-0.12.2/cmake/QuasselInstallDirs.cmake.orig 2015-04-23 22:47:17.000000000 +0200 ++++ quassel-0.12.2/cmake/QuasselInstallDirs.cmake 2015-04-28 10:05:30.094112600 +0200 +@@ -14,7 +14,7 @@ + # we make use of its settings. - # Now set up install locations; those are set by KDE if integration is enabled - if(NOT KDE4_FOUND) -- if(WIN32) -+ if(WIN32 AND NOT MINGW) - set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX} CACHE FILEPATH "Install path for binaries") - set(DATA_INSTALL_DIR $ENV{APPDATA}/quassel-irc.org/share/apps CACHE FILEPATH "Install path for data files") - set(ICON_INSTALL_DIR $ENV{APPDATA}/quassel-irc.org/share/icons CACHE FILEPATH "Global icon install path") - set(XDG_APPS_INSTALL_DIR $ENV{APPDATA}/quassel-irc.org/share/applications CACHE FILEPATH "Install path for .desktop files") -- else(WIN32) -+ else(WIN32 AND NOT MINGW) - set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin CACHE FILEPATH "Install path for binaries") - set(DATA_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/apps CACHE FILEPATH "Install path for data files") - set(ICON_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/icons CACHE FILEPATH "Global icon install path") - set(XDG_APPS_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/applications CACHE FILEPATH "Install path for .desktop files") -- endif(WIN32) -+ endif(WIN32 AND NOT MINGW) - endif() - - if(EMBED_DATA) + if (NOT WITH_KDE) +- if (WIN32) ++ if (WIN32 AND NOT MINGW) + # On Windows, we have to guess good paths + # We must check if the variables are already defined on the command line + if (NOT DEFINED CMAKE_INSTALL_BINDIR) diff --git a/mingw-w64-quassel/PKGBUILD b/mingw-w64-quassel/PKGBUILD index 0b31d6f05a..773fab63ec 100644 --- a/mingw-w64-quassel/PKGBUILD +++ b/mingw-w64-quassel/PKGBUILD @@ -5,18 +5,20 @@ pkgbase=quassel pkgname=("${MINGW_PACKAGE_PREFIX}-${pkgbase}") -pkgver=0.11.0 -pkgrel=2 +pkgver=0.12.2 +pkgrel=1 pkgdesc="Next-generation distributed IRC client (mingw-w64)" arch=('any') url="http://quassel-irc.org/" license=('GPL') makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") -depends=("${MINGW_PACKAGE_PREFIX}-qt5") +depends=("${MINGW_PACKAGE_PREFIX}-qt5" + #"${MINGW_PACKAGE_PREFIX}-extra-cmake-modules" #TODO: only needed with WITH_KDE=ON + "${MINGW_PACKAGE_PREFIX}-Snorenotify" ) source=(http://quassel-irc.org/pub/$pkgbase-$pkgver.tar.bz2 "0001-MinGW-w64-Adopt-FHS-Layout.patch") -sha256sums=('99a191b8bc2a410f7020b890ec57e0be49313f539da9f4843675bb108b0f4504' - 'e7bdf5b0e613dc001f50f6e017abeabb48e4f3409c8cbe3e6d8154c8c6f72cf0') +sha256sums=("6bd6f79ecb88fb857bea7e89c767a3bd0f413ff01bae9298dd2e563478947897" + "f05f9e502581e7ec632f89b969e3934022f8ff7846fd23e48d2eebf246d815f9") prepare() { cd "${srcdir}"/quassel-${pkgver} @@ -37,12 +39,11 @@ build() { -DCMAKE_CXX_FLAGS="${CFLAGS} -DWIN32_LEAN_AND_MEAN=1" \ -DUSE_QT5=ON \ -DWITH_KDE=OFF \ - -DWITH_OPENSSL=ON \ -DCMAKE_BUILD_TYPE="Release" \ - -DWANT_CORE=OFF \ - -DWANT_QTCLIENT=OFF \ + -DWANT_CORE=ON \ + -DWANT_QTCLIENT=ON \ -DWANT_MONO=ON \ - ../quassel-${pkgver}/ \ + ${srcdir}/quassel-${pkgver}/ \ -Wno-dev \ -G'MSYS Makefiles' make From 8c1be32ba1b6abe43e9075f3609a0a7b3517c806 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 12:07:58 +0300 Subject: [PATCH 0930/2060] quassel: Fix PKGBUILD. --- mingw-w64-quassel/PKGBUILD | 46 +++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/mingw-w64-quassel/PKGBUILD b/mingw-w64-quassel/PKGBUILD index 773fab63ec..053468da13 100644 --- a/mingw-w64-quassel/PKGBUILD +++ b/mingw-w64-quassel/PKGBUILD @@ -3,8 +3,8 @@ # Maintainer (ArchLinux): Jaroslav Lichtblau # Maintainer (MSYS2): Ray Donnelly -pkgbase=quassel -pkgname=("${MINGW_PACKAGE_PREFIX}-${pkgbase}") +_realname=quassel +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.12.2 pkgrel=1 pkgdesc="Next-generation distributed IRC client (mingw-w64)" @@ -14,42 +14,42 @@ license=('GPL') makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") depends=("${MINGW_PACKAGE_PREFIX}-qt5" #"${MINGW_PACKAGE_PREFIX}-extra-cmake-modules" #TODO: only needed with WITH_KDE=ON - "${MINGW_PACKAGE_PREFIX}-Snorenotify" ) -source=(http://quassel-irc.org/pub/$pkgbase-$pkgver.tar.bz2 + "${MINGW_PACKAGE_PREFIX}-Snorenotify") +source=(http://quassel-irc.org/pub/${_realname}-${pkgver}.tar.bz2 "0001-MinGW-w64-Adopt-FHS-Layout.patch") -sha256sums=("6bd6f79ecb88fb857bea7e89c767a3bd0f413ff01bae9298dd2e563478947897" - "f05f9e502581e7ec632f89b969e3934022f8ff7846fd23e48d2eebf246d815f9") +sha256sums=('6bd6f79ecb88fb857bea7e89c767a3bd0f413ff01bae9298dd2e563478947897' + '12b82e72c2d3a42872104906bad73f48c9b944506d086c0bcd710af904c9fcd8') prepare() { - cd "${srcdir}"/quassel-${pkgver} + cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i "${srcdir}"/0001-MinGW-w64-Adopt-FHS-Layout.patch } build() { cd "${srcdir}" [ -d build-${CARCH} ] && rm -rf build-${CARCH} - mkdir build-${CARCH} + mkdir build-${CARCH} && cd "${srcdir}"/build-${CARCH} # -DWIN32_LEAN_AND_MEAN=1 because "interface" is used in: # /mingw64/include/QtDBus/qdbusconnection.h - cd "${srcdir}"/build-${CARCH} - MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ - cmake \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DCMAKE_CXX_FLAGS="${CFLAGS} -DWIN32_LEAN_AND_MEAN=1" \ - -DUSE_QT5=ON \ - -DWITH_KDE=OFF \ - -DCMAKE_BUILD_TYPE="Release" \ - -DWANT_CORE=ON \ - -DWANT_QTCLIENT=ON \ - -DWANT_MONO=ON \ - ${srcdir}/quassel-${pkgver}/ \ - -Wno-dev \ - -G'MSYS Makefiles' + + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_CXX_FLAGS="${CFLAGS} -DWIN32_LEAN_AND_MEAN=1" \ + -DUSE_QT5=ON \ + -DWITH_KDE=OFF \ + -DCMAKE_BUILD_TYPE="Release" \ + -DWANT_CORE=ON \ + -DWANT_QTCLIENT=ON \ + -DWANT_MONO=ON \ + -Wno-dev \ + ${srcdir}/${_realname}-${pkgver} + make } package() { cd "${srcdir}"/build-${CARCH} - make DESTDIR="${pkgdir}" install + make install } From 95b8288674cbc4bcdb09f51c103ffdb8d245f90c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 13:36:24 +0300 Subject: [PATCH 0931/2060] mingw-w64: Update to git SHA [4254261] --- mingw-w64-crt-git/PKGBUILD | 11 ++++++----- mingw-w64-headers-git/PKGBUILD | 19 ++++++++++--------- mingw-w64-libmangle-git/PKGBUILD | 16 +++++++++------- mingw-w64-tools-git/PKGBUILD | 13 +++++++------ mingw-w64-winpthreads-git/PKGBUILD | 18 +++++++++--------- mingw-w64-winstorecompat-git/PKGBUILD | 20 +++++++++++--------- 6 files changed, 52 insertions(+), 45 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 3a73c13079..d344d68037 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4492.85b4034 +pkgver=5.0.0.4497.4254261 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -17,7 +17,7 @@ makedepends=("git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' 'staticlibs' '!buildflags' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" @@ -31,7 +31,7 @@ md5sums=('SKIP' '652859ad478448a70c2074a854a313ec') pkgver() { - cd "$srcdir/${_realname}" + cd "$srcdir/mingw-w64" local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _rev=0 @@ -39,7 +39,7 @@ pkgver() { } prepare() { - cd ${srcdir}/${_realname} + cd ${srcdir}/mingw-w64 git am "${srcdir}/"0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch git am "${srcdir}/"0002-dxgi-Add-interface-for-IDXGISurface1.patch git am "${srcdir}/"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch @@ -58,8 +58,9 @@ build() { ;; esac + [ -d ${srcdir}/crt-${MINGW_CHOST} ] && rm -rf ${srcdir}/crt-${MINGW_CHOST} mkdir -p ${srcdir}/crt-${MINGW_CHOST} && cd ${srcdir}/crt-${MINGW_CHOST} - ${srcdir}/${_realname}/mingw-w64-crt/configure \ + ${srcdir}/mingw-w64/mingw-w64-crt/configure \ --prefix=${MINGW_PREFIX}/${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index d7b7933dea..85282e5bd8 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4492.85b4034 +pkgver=5.0.0.4497.4254261 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" @@ -14,7 +14,7 @@ makedepends=('git' "${MINGW_PACKAGE_PREFIX}-tools") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' '!libtool' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" @@ -28,7 +28,7 @@ md5sums=('SKIP' '652859ad478448a70c2074a854a313ec') pkgver() { - cd "$srcdir/$_realname" + cd "$srcdir/mingw-w64" local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _rev=0 @@ -36,7 +36,7 @@ pkgver() { } prepare() { - cd ${srcdir}/${_realname} + cd ${srcdir}/mingw-w64 git am "${srcdir}/"0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch git am "${srcdir}/"0002-dxgi-Add-interface-for-IDXGISurface1.patch @@ -44,14 +44,15 @@ prepare() { git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch git am "${srcdir}/"0005-Add-missing-DirectX11-enum.patch - cd ${srcdir}/${_realname}/mingw-w64-headers + cd ${srcdir}/mingw-w64/mingw-w64-headers touch include/windows.*.h include/wincrypt.h include/prsht.h } build() { msg "Configuring ${MINGW_CHOST} headers" + [ -d ${srcdir}/headers-${MINGW_CHOST} ] && rm -rf ${srcdir}/headers-${MINGW_CHOST} mkdir -p ${srcdir}/headers-${MINGW_CHOST} && cd ${srcdir}/headers-${MINGW_CHOST} - ${srcdir}/${_realname}/mingw-w64-headers/configure \ + ${srcdir}/mingw-w64/mingw-w64-headers/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -71,7 +72,7 @@ package() { rm ${pkgdir}${MINGW_PREFIX}/${MINGW_CHOST}/include/pthread_unistd.h msg "Installing MinGW-w64 licenses" - install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/ddk/readme.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/ddk-readme.txt - install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/direct-x/COPYING.LIB ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/direct-x-COPYING.LIB - install -Dm644 ${srcdir}/${_realname}/mingw-w64-headers/direct-x/readme.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/direct-x-readme.txt + install -Dm644 ${srcdir}/mingw-w64/mingw-w64-headers/ddk/readme.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/ddk-readme.txt + install -Dm644 ${srcdir}/mingw-w64/mingw-w64-headers/direct-x/COPYING.LIB ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/direct-x-COPYING.LIB + install -Dm644 ${srcdir}/mingw-w64/mingw-w64-headers/direct-x/readme.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/direct-x-readme.txt } diff --git a/mingw-w64-libmangle-git/PKGBUILD b/mingw-w64-libmangle-git/PKGBUILD index 66df630613..19be052b56 100644 --- a/mingw-w64-libmangle-git/PKGBUILD +++ b/mingw-w64-libmangle-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.0.0.4492.85b4034 +pkgver=5.0.0.4497.4254261 pkgrel=1 pkgdesc="MinGW-w64 libmangle" arch=('any') @@ -18,11 +18,11 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-crt-git" "${MINGW_PACKAGE_PREFIX}-headers-git") options=('strip' 'staticlibs' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") md5sums=('SKIP') pkgver() { - cd "${srcdir}/${_realname}" + cd "${srcdir}/mingw-w64" local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _rev=0 @@ -30,17 +30,19 @@ pkgver() { } build() { - mkdir -p ${srcdir}/build-${MINGW_CHOST} - cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/${_realname}/mingw-w64-libraries/libmangle/configure \ + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + ${srcdir}/mingw-w64/mingw-w64-libraries/libmangle/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} + make } package() { cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR=${pkgdir} install - install -Dm644 ${srcdir}/${_realname}/mingw-w64-libraries/libmangle/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/mingw-w64-libraries/COPYING.${_realname} + install -Dm644 ${srcdir}/mingw-w64/mingw-w64-libraries/libmangle/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/mingw-w64-libraries/COPYING.${_realname} } diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index f3c9cb51da..3fe1203109 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.0.0.4492.85b4034 +pkgver=5.0.0.4497.4254261 pkgrel=1 pkgdesc="MinGW-w64 tools" arch=('any') @@ -15,12 +15,12 @@ groups=("${MINGW_PACKAGE_PREFIX}-toolchain") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libmangle") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") md5sums=('SKIP') _tools="gendef genidl genpeimg widl" # genstubdll pkgver() { - cd "$srcdir/${_realname}" + cd "$srcdir/mingw-w64" local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _rev=0 @@ -31,9 +31,10 @@ build() { local cur= for cur in ${_tools}; do plain "Building ${cur} ..." + [ -d ${srcdir}/${MINGW_CHOST}-${cur} ] && rm -rf ${srcdir}/${MINGW_CHOST}-${cur} mkdir -p ${srcdir}/${MINGW_CHOST}-${cur} cd ${srcdir}/${MINGW_CHOST}-${cur} - ${srcdir}/${_realname}/mingw-w64-tools/${cur}/configure \ + ${srcdir}/mingw-w64/mingw-w64-tools/${cur}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -48,8 +49,8 @@ package() { plain "Installing ${cur} ..." cd ${srcdir}/${MINGW_CHOST}-${cur} make DESTDIR=${pkgdir} install - if [[ -f "${srcdir}/${_realname}/mingw-w64-tools//${cur}"/COPYING ]]; then - install -Dm644 ${srcdir}/${_realname}/mingw-w64-tools/${cur}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/mingw-w64-tools/COPYING.${cur} + if [[ -f "${srcdir}/mingw-w64/mingw-w64-tools/${cur}"/COPYING ]]; then + install -Dm644 ${srcdir}/mingw-w64/mingw-w64-tools/${cur}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/mingw-w64-tools/COPYING.${cur} fi done } diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index 91a0ec681b..dfd7fa5e70 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=winpthreads pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") -pkgver=5.0.0.4492.85b4034 +pkgver=5.0.0.4497.4254261 pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" arch=('any') @@ -17,13 +17,13 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-crt-git" "${MINGW_PACKAGE_PREFIX}-headers-git") options=('strip' '!buildflags' 'staticlibs' '!emptydirs' '!debug') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch") md5sums=('SKIP' '74a4dab06a8fa113407a6e11fdb3c962') pkgver() { - cd "${srcdir}/${_realname}" + cd "${srcdir}/mingw-w64" local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _rev=0 @@ -31,16 +31,16 @@ pkgver() { } prepare() { - cd "${srcdir}/${_realname}" + cd "${srcdir}/mingw-w64" git am "${srcdir}"/0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch - cd "${srcdir}"/${_realname}/mingw-w64-libraries/winpthreads + cd "${srcdir}"/mingw-w64/mingw-w64-libraries/winpthreads autoreconf -vfi } build() { + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}"/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - declare -a extra_config if check_option "debug" "y"; then extra_config+=("CFLAGS=-O0 -g -DWINPTHREAD_DBG") @@ -48,7 +48,7 @@ build() { extra_config+=("CXXFLAGS=") fi - "${srcdir}"/${_realname}/mingw-w64-libraries/winpthreads/configure \ + "${srcdir}"/mingw-w64/mingw-w64-libraries/winpthreads/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -71,8 +71,8 @@ build() { _install_licenses() { # TODO: any more license files? - install -Dm644 ${srcdir}/${_realname}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/$1/COPYING - install -Dm644 ${srcdir}/${_realname}/mingw-w64-libraries/winpthreads/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/$1/mingw-w64-libraries/winpthreads/COPYING + install -Dm644 ${srcdir}/mingw-w64/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/$1/COPYING + install -Dm644 ${srcdir}/mingw-w64/mingw-w64-libraries/winpthreads/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/$1/mingw-w64-libraries/winpthreads/COPYING } package_winpthreads() { diff --git a/mingw-w64-winstorecompat-git/PKGBUILD b/mingw-w64-winstorecompat-git/PKGBUILD index d046b2e270..4637179865 100644 --- a/mingw-w64-winstorecompat-git/PKGBUILD +++ b/mingw-w64-winstorecompat-git/PKGBUILD @@ -2,33 +2,35 @@ _realname=winstorecompat pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -_ver_base=4.0.0 -pkgver=4.0.0.4322.eba7897 +pkgver=5.0.0.4497.4254261 pkgrel=1 pkgdesc="MinGW-w64 winRT compat library" arch=('any') url="http://mingw-w64.sourceforge.net" license=('custom') -groups=("${MINGW_PACKAGE_PREFIX}-toolchain" "${MINGW_PACKAGE_PREFIX}") +groups=("${MINGW_PACKAGE_PREFIX}-toolchain") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-binutils" "${MINGW_PACKAGE_PREFIX}-crt" "${MINGW_PACKAGE_PREFIX}-headers") options=('strip' '!buildflags' 'staticlibs' '!emptydirs' '!debug') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") md5sums=('SKIP') pkgver() { - cd "${srcdir}/${_realname}" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + cd "${srcdir}/mingw-w64" + local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _rev=0 + printf "%s.%s.%s.%s.%s" ${_major} ${_minor} ${_rev} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd "${srcdir}/${_realname}" + cd "${srcdir}/mingw-w64" } build() { + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - - ${srcdir}/${_realname}/mingw-w64-libraries/winstorecompat/configure \ + ${srcdir}/mingw-w64/mingw-w64-libraries/winstorecompat/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ From ea60f152f3cf3ced0f41826d4decb8c7afea2caf Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 13:38:52 +0300 Subject: [PATCH 0932/2060] qtbinpatcher: Minimize patching files. --- .../001-minimize-files-touching.patch | 38 +++++++++++-------- mingw-w64-qtbinpatcher/PKGBUILD | 6 +-- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch b/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch index 745aa8874b..e45a330bbe 100644 --- a/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch +++ b/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch @@ -1,31 +1,39 @@ ---- qtbinpatcher-2.1.0/QtBinPatcher.cpp.orig 2014-10-19 21:58:34.945200000 +0400 -+++ qtbinpatcher-2.1.0/QtBinPatcher.cpp 2014-10-19 22:33:35.582800000 +0400 +--- qtbinpatcher-2.1.3/QtBinPatcher.cpp.orig 2015-04-28 13:25:04.642600000 +0300 ++++ qtbinpatcher-2.1.3/QtBinPatcher.cpp 2015-04-28 13:32:03.050200000 +0300 @@ -256,7 +256,7 @@ static const TElement Elements4[] = { { "/lib/", "*.prl", false }, { "/demos/shared/", "libdemo_shared.prl", false }, - { "/lib/pkgconfig/", "*.pc", false }, -+ { "/lib/pkgconfig/", "Qt*.pc", false }, ++ { "/lib/pkgconfig/", "Qt*.pc", false }, #if defined(OS_WINDOWS) { "/mkspecs/default/", "qmake.conf", false }, { "/", ".qmake.cache", false } -@@ -268,9 +268,8 @@ +@@ -268,16 +268,18 @@ // Files for patching in Qt5. static const TElement Elements5[] = { - { "/", "*.la", true }, - { "/", "*.prl", true }, +- { "/", "*.prl", true }, - { "/", "*.pc", true }, -+ { "/lib/pkgconfig/", "Qt*.pc", true }, - { "/", "*.pri", true }, - { "/lib/cmake/Qt5LinguistTools/", "Qt5LinguistToolsConfig.cmake", false }, - { "/mkspecs/default-host/", "qmake.conf", false }, -@@ -278,6 +277,8 @@ - { "/mkspecs/default/", "qmake.conf", false }, - { "/", ".qmake.cache", false }, - { "/lib/", "prl.txt", false } -+#elif defined(OS_LINUX) -+ { "/lib/", "*.la", true } +- { "/", "*.pri", true }, +- { "/lib/cmake/Qt5LinguistTools/", "Qt5LinguistToolsConfig.cmake", false }, +- { "/mkspecs/default-host/", "qmake.conf", false }, ++#ifndef OS_WINDOWS ++ { "/", "*.la", true }, ++#endif ++ { "/lib/", "*.prl", true }, ++ { "/lib/pkgconfig/", "Qt*.pc", true }, ++ { "/share/qt5/", "*.pri", true }, ++ { "/lib/cmake/Qt5LinguistTools/", "Qt5LinguistToolsConfig.cmake", false }, ++ { "/share/qt5/mkspecs/default-host/", "qmake.conf", false }, + #ifdef OS_WINDOWS +- { "/mkspecs/default/", "qmake.conf", false }, +- { "/", ".qmake.cache", false }, +- { "/lib/", "prl.txt", false } ++ { "/share/qt5/mkspecs/default/", "qmake.conf", false }, ++ { "/", ".qmake.cache", false }, ++ { "/lib/", "prl.txt", false } #endif }; diff --git a/mingw-w64-qtbinpatcher/PKGBUILD b/mingw-w64-qtbinpatcher/PKGBUILD index 9a5898ac63..3c3908d032 100644 --- a/mingw-w64-qtbinpatcher/PKGBUILD +++ b/mingw-w64-qtbinpatcher/PKGBUILD @@ -3,7 +3,7 @@ _realname=qtbinpatcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.3 -pkgrel=1 +pkgrel=2 pkgdesc="Patcher for Qt libraries (mingw-w64)" arch=('any') url="http://tver-soft.org" @@ -13,11 +13,11 @@ options=('staticlibs' 'strip') source=(http://tver-soft.org/dl/${_realname}-${pkgver}.tar.bz2 001-minimize-files-touching.patch) md5sums=('4f00aa6601864533589ce30ed39fe2cd' - 'd9579dbed80111b16e299619e4970091') + '02904c9bfc72f389b3a3bb4ab0e04127') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/001-minimize-files-touching.patch + #patch -p1 -i ${srcdir}/001-minimize-files-touching.patch } build() { From 44203779fcf4d94a2aae43da93ee5d52e03950f9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 14:27:42 +0300 Subject: [PATCH 0933/2060] meld3: Update to 3.13.1 --- ...ixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch | 9 +++++++++ mingw-w64-meld3/PKGBUILD | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/mingw-w64-meld3/0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch b/mingw-w64-meld3/0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch index c9f1a5200d..f6db6fd551 100644 --- a/mingw-w64-meld3/0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch +++ b/mingw-w64-meld3/0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch @@ -75,3 +75,12 @@ diff -Naur meld-3.11.4-orig/meld/build_helpers.py meld-3.11.4/meld/build_helpers mtime_merged = (os.path.exists(file_merged) and os.path.getmtime(file_merged) or 0) mtime_file = os.path.getmtime(file) +@@ -355,7 +355,7 @@ + elif line.startswith('# END'): + end = i + +- if start and end: ++ if start and end and not get_platform().startswith('mingw'): + lines[start:end + 1] = [ + self.data_line % datadir, + self.locale_line % localedir, diff --git a/mingw-w64-meld3/PKGBUILD b/mingw-w64-meld3/PKGBUILD index 809d16033e..657cc3a705 100644 --- a/mingw-w64-meld3/PKGBUILD +++ b/mingw-w64-meld3/PKGBUILD @@ -2,7 +2,7 @@ _realname=meld pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.13.0 +pkgver=3.13.1 pkgrel=1 pkgdesc="Visual diff and merge tool (mingw-w64)" arch=('any') @@ -26,8 +26,8 @@ install=meld-${CARCH}.install source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz '0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch' "0002-build-exe.patch") -md5sums=('ce67d82dea80dde9914d2156ad0ea8b8' - '57d46e2eacc34e8d22f63a59b6297253' +md5sums=('1c357232efd81c7f92f797e2bafaff19' + '6ddb432315e37fed974491a27fd15736' 'c4770167f70e061c1f94d8c3fa3e7150') prepare() { From 63834994fc65a9690a0555c5c4dc7dcb1f5cd639 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 28 Apr 2015 12:57:45 +0100 Subject: [PATCH 0934/2060] qt5: Fix paths in .pri files .. Well, condition them so that qtbinpatcher can fix them, strictly speaking. --- mingw-w64-qt5/PKGBUILD | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 2a554d6e1e..f05fb3a4f3 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.1 pkgver=${_ver_base//-/} -pkgrel=4 +pkgrel=5 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -576,6 +576,13 @@ package() { # Fix wrong qmake path in pri file # sed -i "s|${srcdir}/${CARCH}/qtbase|/usr|" \ # "${pkgdir}"/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri + + # Fix paths in qconfig.pri and qmodule.pri: + # $(cygpath -m ${MINGW_PREFIX}) -> $(cygpath -m ${pkgdir}${MINGW_PREFIX}) + MINGW_PREFIX_WIN=$(cygpath -m ${MINGW_PREFIX}) + PKGDIR_MINGW_PREFIX_WIN=$(cygpath -m ${pkgdir}${MINGW_PREFIX}) + find "${pkgdir}${MINGW_PREFIX}/share/qt5" -type f -name '*.pri' \ + -exec sed -i -e "s|${MINGW_PREFIX_WIN}|${PKGDIR_MINGW_PREFIX_WIN}|g" {} \; } # return 0 From e5ff8b55b207ebf436dfffd4a2260a7919ec9648 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 16:01:26 +0300 Subject: [PATCH 0935/2060] libmng: Update to 2.0.3 --- mingw-w64-libmng/PKGBUILD | 57 +++++++++++-------- .../libmng-2.0.3-cmake-versioning.patch | 29 ++++++++++ 2 files changed, 61 insertions(+), 25 deletions(-) create mode 100644 mingw-w64-libmng/libmng-2.0.3-cmake-versioning.patch diff --git a/mingw-w64-libmng/PKGBUILD b/mingw-w64-libmng/PKGBUILD index 351354718e..3127c86249 100644 --- a/mingw-w64-libmng/PKGBUILD +++ b/mingw-w64-libmng/PKGBUILD @@ -1,52 +1,59 @@ # Maintainer: Alexey Pavlov _realname=libmng - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.0.2 +pkgver=2.0.3 pkgrel=1 pkgdesc="Simple, small, C++ XML parser that can be easily integrated into other programs (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/libmng" license=("zlib") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -depends=("${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-lcms2" "${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") +depends=("${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-zlib") options=('strip' 'staticlibs') source=("http://downloads.sourceforge.net/libmng/${_realname}-${pkgver}.tar.xz"{,.asc} - libmng-1.0.10-mingw.patch - libmng-1.0.9-dont-leak-zlib-streams.diff - no-undefined.patch) -md5sums=('3804bf2523af9b4e0670b5982b3bf984' + libmng-1.0.10-mingw.patch + libmng-1.0.9-dont-leak-zlib-streams.diff + no-undefined.patch + libmng-2.0.3-cmake-versioning.patch) +md5sums=('e9e899adb1b681b17f14d91e261878c5' 'SKIP' 'cb375eee738835855615afd5c056252e' '9a3638775d5efaa1111973b40f4f96a4' - 'e4614f8cd3c813b38340468b2277c3ae') + 'e4614f8cd3c813b38340468b2277c3ae' + '3dff90a06b3ddb372d0a3dd15e08c713') prepare() { cd "$srcdir/${_realname}-${pkgver}" patch -p0 -i "$srcdir"/libmng-1.0.9-dont-leak-zlib-streams.diff patch -p1 -i "$srcdir"/libmng-1.0.10-mingw.patch patch -p1 -i "$srcdir"/no-undefined.patch + patch -p1 -i "$srcdir"/libmng-2.0.3-cmake-versioning.patch + + #make distclean + #autoreconf -fiv } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd ${srcdir}/${_realname}-${pkgver} - make distclean - cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --enable-shared \ - --enable-static \ - --with-lcms2 - make + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd ${srcdir}/build-${MINGW_CHOST} + + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=RELEASE \ + ../${_realname}-${pkgver} + + make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm - rm -r "${pkgdir}${MINGW_PREFIX}/share" + cd "${srcdir}/build-${MINGW_CHOST}" + make install + + local PREFIX_WIN=$(cygpath -m ${pkgdir}${MINGW_PREFIX}) + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ + -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libmng.pc } diff --git a/mingw-w64-libmng/libmng-2.0.3-cmake-versioning.patch b/mingw-w64-libmng/libmng-2.0.3-cmake-versioning.patch new file mode 100644 index 0000000000..6160162afc --- /dev/null +++ b/mingw-w64-libmng/libmng-2.0.3-cmake-versioning.patch @@ -0,0 +1,29 @@ +--- libmng-2.0.3/CMakeLists.txt.orig 2015-04-28 15:48:37.037800000 +0300 ++++ libmng-2.0.3/CMakeLists.txt 2015-04-28 15:50:35.161000000 +0300 +@@ -423,6 +423,8 @@ + SET_TARGET_PROPERTIES(${MNG_LIBRARY_NAME}-shared + PROPERTIES + OUTPUT_NAME ${MNG_LIBRARY_NAME} ++ RUNTIME_OUTPUT_NAME ${MNG_LIBRARY_NAME}-${MNG_VERSION_MAJOR} ++ ARCHIVE_OUTPUT_NAME ${MNG_LIBRARY_NAME} + ${MNG_LIBRARY_PROPERTIES} ) + # + INSTALL(TARGETS ${MNG_LIBRARY_NAME}-shared +@@ -434,7 +436,7 @@ + # + ENDIF(BUILD_SHARED_LIBS) + #------------ libmng.pc --------------- +-IF(UNIX) ++IF(UNIX OR MINGW) + SET(MNG_LIBS_PRIVATE "") + IF(JPEG_FOUND) + SET(MNG_LIBS_PRIVATE "${MNG_LIBS_PRIVATE} -ljpeg") +@@ -458,7 +458,7 @@ + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmng.pc DESTINATION + ${MNG_INSTALL_PKGCONFIG_DIR} ) + +-ENDIF(UNIX) ++ENDIF(UNIX OR MINGW) + # + INSTALL(EXPORT MNG_TARGETS DESTINATION ${MNG_INSTALL_PACKAGE_DIR}) + # \ No newline at end of file From b17ce12f338ffcc0e70b8ef7fa1c3890cc9cbca9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 22:46:44 +0300 Subject: [PATCH 0936/2060] libtiff: Rebuild without jbigkit support --- mingw-w64-libtiff/PKGBUILD | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libtiff/PKGBUILD b/mingw-w64-libtiff/PKGBUILD index 532783f6c9..0d43e113db 100644 --- a/mingw-w64-libtiff/PKGBUILD +++ b/mingw-w64-libtiff/PKGBUILD @@ -4,13 +4,13 @@ _realname=libtiff pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.0.3 -pkgrel=5 +pkgrel=6 pkgdesc="Library for manipulation of TIFF images (mingw-w64)" arch=('any') url="http://www.remotesensing.org/libtiff" license=(MIT) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-jbigkit" + #"${MINGW_PACKAGE_PREFIX}-jbigkit" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-zlib") @@ -39,7 +39,9 @@ build() { --target=${MINGW_CHOST} \ --enable-static \ --enable-shared \ + --disable-jbig \ --without-x + make } From d6501810961e7a47c7bf5cb265c0c2739d1036ce Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 22:57:03 +0300 Subject: [PATCH 0937/2060] wxwidgets: Build with libtiff support --- mingw-w64-wxwidgets/PKGBUILD | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mingw-w64-wxwidgets/PKGBUILD b/mingw-w64-wxwidgets/PKGBUILD index 6948944053..1eada6c7f0 100644 --- a/mingw-w64-wxwidgets/PKGBUILD +++ b/mingw-w64-wxwidgets/PKGBUILD @@ -4,7 +4,7 @@ _realname=wxWidgets pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2 -pkgrel=6 +pkgrel=7 pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)" arch=('any') license=("custom:wxWindows") @@ -15,6 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-zlib" ) @@ -40,18 +41,17 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ - --with-msw \ - --without-libtiff \ - --disable-mslu \ --enable-shared \ --enable-iniconf \ --enable-iff \ --enable-permissive \ - --disable-monolithic \ - --disable-mediactrl \ --enable-unicode \ --enable-accessibility \ - --disable-precomp-headers + --disable-mediactrl \ + --disable-monolithic \ + --disable-mslu \ + --disable-precomp-headers \ + --with-msw make #VERBOSE=1 } From 47087a496ac2fa6f83314fa7fa8e1bf615405525 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 28 Apr 2015 23:57:32 +0300 Subject: [PATCH 0938/2060] libtiff: Add patches. --- mingw-w64-libtiff/PKGBUILD | 50 +- mingw-w64-libtiff/libtiff-CVE-2012-4447.patch | 40 + mingw-w64-libtiff/libtiff-CVE-2012-4564.patch | 86 ++ mingw-w64-libtiff/libtiff-CVE-2013-1960.patch | 145 ++++ mingw-w64-libtiff/libtiff-CVE-2013-1961.patch | 759 ++++++++++++++++++ mingw-w64-libtiff/libtiff-CVE-2013-4231.patch | 15 + mingw-w64-libtiff/libtiff-CVE-2013-4232.patch | 12 + mingw-w64-libtiff/libtiff-CVE-2013-4243.patch | 41 + mingw-w64-libtiff/libtiff-CVE-2013-4244.patch | 15 + ...gus-test.patch => libtiff-jpeg-test.patch} | 56 +- mingw-w64-libtiff/libtiff-make-check.patch | 26 + .../libtiff-manpage-update.patch | 119 +++ .../libtiff-printdir-width.patch | 20 + 13 files changed, 1356 insertions(+), 28 deletions(-) create mode 100644 mingw-w64-libtiff/libtiff-CVE-2012-4447.patch create mode 100644 mingw-w64-libtiff/libtiff-CVE-2012-4564.patch create mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-1960.patch create mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-1961.patch create mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-4231.patch create mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-4232.patch create mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-4243.patch create mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-4244.patch rename mingw-w64-libtiff/{libtiff-bogus-test.patch => libtiff-jpeg-test.patch} (76%) create mode 100644 mingw-w64-libtiff/libtiff-make-check.patch create mode 100644 mingw-w64-libtiff/libtiff-manpage-update.patch create mode 100644 mingw-w64-libtiff/libtiff-printdir-width.patch diff --git a/mingw-w64-libtiff/PKGBUILD b/mingw-w64-libtiff/PKGBUILD index 0d43e113db..43ecb26b86 100644 --- a/mingw-w64-libtiff/PKGBUILD +++ b/mingw-w64-libtiff/PKGBUILD @@ -17,13 +17,55 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') source=("ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz" - libtiff-bogus-test.patch) + libtiff-CVE-2012-4447.patch + libtiff-CVE-2012-4564.patch + libtiff-printdir-width.patch + libtiff-jpeg-test.patch + libtiff-CVE-2013-1960.patch + libtiff-CVE-2013-1961.patch + libtiff-manpage-update.patch + libtiff-CVE-2013-4231.patch + libtiff-CVE-2013-4232.patch + libtiff-CVE-2013-4244.patch + libtiff-make-check.patch + libtiff-CVE-2013-4243.patch) md5sums=('051c1068e6a0627f461948c365290410' - 'c4ba78d0e21be4b881f1c272e8db45d2') + '71bbe3b51f8a4e3a26cbf0af63588e4a' + 'a4b9f293f706b5668df62833cf0b56d2' + '6a5be70d02abc33d7426dba309445529' + 'f7cbe41ac63f23e441572c6ecf4bdccc' + 'e9de577a81571ab8ffac84aac8c64381' + 'e484981da6d2366a30a89dc0217c115a' + '39ea7f6f10ff8686757d5638c6df6882' + '8613bb1158787567bf586a7d9f3b8da3' + '922db499ed1de025913c960a68fc2318' + '677f69995dd2e7710b4bca672c96ed8d' + '60e9bbbee968b820a73a40aa425029d8' + '74138a7605520ce47014e2ce05df1eeb') prepare() { cd tiff-${pkgver} - patch -p1 -i ${srcdir}/libtiff-bogus-test.patch + + patch -p1 -i ${srcdir}/libtiff-CVE-2012-4447.patch + patch -p1 -i ${srcdir}/libtiff-CVE-2012-4564.patch + patch -p1 -i ${srcdir}/libtiff-printdir-width.patch + patch -p1 -i ${srcdir}/libtiff-jpeg-test.patch + patch -p1 -i ${srcdir}/libtiff-CVE-2013-1960.patch + patch -p1 -i ${srcdir}/libtiff-CVE-2013-1961.patch + patch -p1 -i ${srcdir}/libtiff-manpage-update.patch + patch -p1 -i ${srcdir}/libtiff-CVE-2013-4231.patch + patch -p1 -i ${srcdir}/libtiff-CVE-2013-4232.patch + patch -p1 -i ${srcdir}/libtiff-CVE-2013-4244.patch + patch -p1 -i ${srcdir}/libtiff-make-check.patch + patch -p1 -i ${srcdir}/libtiff-CVE-2013-4243.patch + + rm -f libtool.m4 + + libtoolize --force --copy + aclocal -I . -I m4 + automake --add-missing --copy + autoconf + autoheader } build() { @@ -31,7 +73,9 @@ build() { export CFLAGS+=" -fno-strict-aliasing" export CXXFLAGS+=" -fno-strict-aliasing" + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + ../tiff-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ diff --git a/mingw-w64-libtiff/libtiff-CVE-2012-4447.patch b/mingw-w64-libtiff/libtiff-CVE-2012-4447.patch new file mode 100644 index 0000000000..ebf9a00e1b --- /dev/null +++ b/mingw-w64-libtiff/libtiff-CVE-2012-4447.patch @@ -0,0 +1,40 @@ +Upstream patch for CVE-2012-4447. + + +diff -Naur tiff-4.0.3.orig/libtiff/tif_pixarlog.c tiff-4.0.3/libtiff/tif_pixarlog.c +--- tiff-4.0.3.orig/libtiff/tif_pixarlog.c 2012-07-04 15:26:31.000000000 -0400 ++++ tiff-4.0.3/libtiff/tif_pixarlog.c 2012-12-12 16:43:18.931315699 -0500 +@@ -644,6 +644,20 @@ + return bytes; + } + ++static tmsize_t ++add_ms(tmsize_t m1, tmsize_t m2) ++{ ++ tmsize_t bytes = m1 + m2; ++ ++ /* if either input is zero, assume overflow already occurred */ ++ if (m1 == 0 || m2 == 0) ++ bytes = 0; ++ else if (bytes <= m1 || bytes <= m2) ++ bytes = 0; ++ ++ return bytes; ++} ++ + static int + PixarLogFixupTags(TIFF* tif) + { +@@ -671,9 +685,11 @@ + td->td_samplesperpixel : 1); + tbuf_size = multiply_ms(multiply_ms(multiply_ms(sp->stride, td->td_imagewidth), + td->td_rowsperstrip), sizeof(uint16)); ++ /* add one more stride in case input ends mid-stride */ ++ tbuf_size = add_ms(tbuf_size, sizeof(uint16) * sp->stride); + if (tbuf_size == 0) + return (0); /* TODO: this is an error return without error report through TIFFErrorExt */ +- sp->tbuf = (uint16 *) _TIFFmalloc(tbuf_size+sizeof(uint16)*sp->stride); ++ sp->tbuf = (uint16 *) _TIFFmalloc(tbuf_size); + if (sp->tbuf == NULL) + return (0); + if (sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN) diff --git a/mingw-w64-libtiff/libtiff-CVE-2012-4564.patch b/mingw-w64-libtiff/libtiff-CVE-2012-4564.patch new file mode 100644 index 0000000000..3d7946c7ec --- /dev/null +++ b/mingw-w64-libtiff/libtiff-CVE-2012-4564.patch @@ -0,0 +1,86 @@ +Upstream patch for CVE-2012-4564. + + +diff -Naur tiff-4.0.3.orig/tools/ppm2tiff.c tiff-4.0.3/tools/ppm2tiff.c +--- tiff-4.0.3.orig/tools/ppm2tiff.c 2010-04-10 15:22:34.000000000 -0400 ++++ tiff-4.0.3/tools/ppm2tiff.c 2012-12-12 16:43:18.932315708 -0500 +@@ -72,6 +72,17 @@ + exit(-2); + } + ++static tmsize_t ++multiply_ms(tmsize_t m1, tmsize_t m2) ++{ ++ tmsize_t bytes = m1 * m2; ++ ++ if (m1 && bytes / m1 != m2) ++ bytes = 0; ++ ++ return bytes; ++} ++ + int + main(int argc, char* argv[]) + { +@@ -79,7 +90,7 @@ + uint32 rowsperstrip = (uint32) -1; + double resolution = -1; + unsigned char *buf = NULL; +- tsize_t linebytes = 0; ++ tmsize_t linebytes = 0; + uint16 spp = 1; + uint16 bpp = 8; + TIFF *out; +@@ -89,6 +100,7 @@ + int c; + extern int optind; + extern char* optarg; ++ tmsize_t scanline_size; + + if (argc < 2) { + fprintf(stderr, "%s: Too few arguments\n", argv[0]); +@@ -221,7 +233,8 @@ + } + switch (bpp) { + case 1: +- linebytes = (spp * w + (8 - 1)) / 8; ++ /* if round-up overflows, result will be zero, OK */ ++ linebytes = (multiply_ms(spp, w) + (8 - 1)) / 8; + if (rowsperstrip == (uint32) -1) { + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, h); + } else { +@@ -230,15 +243,31 @@ + } + break; + case 8: +- linebytes = spp * w; ++ linebytes = multiply_ms(spp, w); + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, + TIFFDefaultStripSize(out, rowsperstrip)); + break; + } +- if (TIFFScanlineSize(out) > linebytes) ++ if (linebytes == 0) { ++ fprintf(stderr, "%s: scanline size overflow\n", infile); ++ (void) TIFFClose(out); ++ exit(-2); ++ } ++ scanline_size = TIFFScanlineSize(out); ++ if (scanline_size == 0) { ++ /* overflow - TIFFScanlineSize already printed a message */ ++ (void) TIFFClose(out); ++ exit(-2); ++ } ++ if (scanline_size < linebytes) + buf = (unsigned char *)_TIFFmalloc(linebytes); + else +- buf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(out)); ++ buf = (unsigned char *)_TIFFmalloc(scanline_size); ++ if (buf == NULL) { ++ fprintf(stderr, "%s: Not enough memory\n", infile); ++ (void) TIFFClose(out); ++ exit(-2); ++ } + if (resolution > 0) { + TIFFSetField(out, TIFFTAG_XRESOLUTION, resolution); + TIFFSetField(out, TIFFTAG_YRESOLUTION, resolution); diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-1960.patch b/mingw-w64-libtiff/libtiff-CVE-2013-1960.patch new file mode 100644 index 0000000000..1c8dfb7bc6 --- /dev/null +++ b/mingw-w64-libtiff/libtiff-CVE-2013-1960.patch @@ -0,0 +1,145 @@ +diff -Naur tiff-4.0.3.orig/tools/tiff2pdf.c tiff-4.0.3/tools/tiff2pdf.c +--- tiff-4.0.3.orig/tools/tiff2pdf.c 2012-07-25 22:56:43.000000000 -0400 ++++ tiff-4.0.3/tools/tiff2pdf.c 2013-05-02 12:04:49.057090227 -0400 +@@ -3341,33 +3341,56 @@ + uint32 height){ + + tsize_t i=0; +- uint16 ri =0; +- uint16 v_samp=1; +- uint16 h_samp=1; +- int j=0; +- +- i++; +- +- while(i<(*striplength)){ ++ ++ while (i < *striplength) { ++ tsize_t datalen; ++ uint16 ri; ++ uint16 v_samp; ++ uint16 h_samp; ++ int j; ++ int ncomp; ++ ++ /* marker header: one or more FFs */ ++ if (strip[i] != 0xff) ++ return(0); ++ i++; ++ while (i < *striplength && strip[i] == 0xff) ++ i++; ++ if (i >= *striplength) ++ return(0); ++ /* SOI is the only pre-SOS marker without a length word */ ++ if (strip[i] == 0xd8) ++ datalen = 0; ++ else { ++ if ((*striplength - i) <= 2) ++ return(0); ++ datalen = (strip[i+1] << 8) | strip[i+2]; ++ if (datalen < 2 || datalen >= (*striplength - i)) ++ return(0); ++ } + switch( strip[i] ){ +- case 0xd8: +- /* SOI - start of image */ ++ case 0xd8: /* SOI - start of image */ + _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), 2); + *bufferoffset+=2; +- i+=2; + break; +- case 0xc0: +- case 0xc1: +- case 0xc3: +- case 0xc9: +- case 0xca: ++ case 0xc0: /* SOF0 */ ++ case 0xc1: /* SOF1 */ ++ case 0xc3: /* SOF3 */ ++ case 0xc9: /* SOF9 */ ++ case 0xca: /* SOF10 */ + if(no==0){ +- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2); +- for(j=0;j>4) > h_samp) +- h_samp = (buffer[*bufferoffset+11+(2*j)]>>4); +- if( (buffer[*bufferoffset+11+(2*j)] & 0x0f) > v_samp) +- v_samp = (buffer[*bufferoffset+11+(2*j)] & 0x0f); ++ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2); ++ ncomp = buffer[*bufferoffset+9]; ++ if (ncomp < 1 || ncomp > 4) ++ return(0); ++ v_samp=1; ++ h_samp=1; ++ for(j=0;j>4) > h_samp) ++ h_samp = (samp>>4); ++ if( (samp & 0x0f) > v_samp) ++ v_samp = (samp & 0x0f); + } + v_samp*=8; + h_samp*=8; +@@ -3381,45 +3404,43 @@ + (unsigned char) ((height>>8) & 0xff); + buffer[*bufferoffset+6]= + (unsigned char) (height & 0xff); +- *bufferoffset+=strip[i+2]+2; +- i+=strip[i+2]+2; +- ++ *bufferoffset+=datalen+2; ++ /* insert a DRI marker */ + buffer[(*bufferoffset)++]=0xff; + buffer[(*bufferoffset)++]=0xdd; + buffer[(*bufferoffset)++]=0x00; + buffer[(*bufferoffset)++]=0x04; + buffer[(*bufferoffset)++]=(ri >> 8) & 0xff; + buffer[(*bufferoffset)++]= ri & 0xff; +- } else { +- i+=strip[i+2]+2; + } + break; +- case 0xc4: +- case 0xdb: +- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2); +- *bufferoffset+=strip[i+2]+2; +- i+=strip[i+2]+2; ++ case 0xc4: /* DHT */ ++ case 0xdb: /* DQT */ ++ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2); ++ *bufferoffset+=datalen+2; + break; +- case 0xda: ++ case 0xda: /* SOS */ + if(no==0){ +- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2); +- *bufferoffset+=strip[i+2]+2; +- i+=strip[i+2]+2; ++ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2); ++ *bufferoffset+=datalen+2; + } else { + buffer[(*bufferoffset)++]=0xff; + buffer[(*bufferoffset)++]= + (unsigned char)(0xd0 | ((no-1)%8)); +- i+=strip[i+2]+2; + } +- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), (*striplength)-i-1); +- *bufferoffset+=(*striplength)-i-1; ++ i += datalen + 1; ++ /* copy remainder of strip */ ++ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i]), *striplength - i); ++ *bufferoffset+= *striplength - i; + return(1); + default: +- i+=strip[i+2]+2; ++ /* ignore any other marker */ ++ break; + } ++ i += datalen + 1; + } +- + ++ /* failed to find SOS marker */ + return(0); + } + #endif diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-1961.patch b/mingw-w64-libtiff/libtiff-CVE-2013-1961.patch new file mode 100644 index 0000000000..0ea9b52e3f --- /dev/null +++ b/mingw-w64-libtiff/libtiff-CVE-2013-1961.patch @@ -0,0 +1,759 @@ +diff -Naur tiff-4.0.3.orig/contrib/dbs/xtiff/xtiff.c tiff-4.0.3/contrib/dbs/xtiff/xtiff.c +--- tiff-4.0.3.orig/contrib/dbs/xtiff/xtiff.c 2010-06-08 14:55:15.000000000 -0400 ++++ tiff-4.0.3/contrib/dbs/xtiff/xtiff.c 2013-05-02 12:02:42.782287939 -0400 +@@ -512,9 +512,9 @@ + Arg args[1]; + + if (tfMultiPage) +- sprintf(buffer, "%s - page %d", fileName, tfDirectory); ++ snprintf(buffer, sizeof(buffer), "%s - page %d", fileName, tfDirectory); + else +- strcpy(buffer, fileName); ++ snprintf(buffer, sizeof(buffer), "%s", fileName); + XtSetArg(args[0], XtNlabel, buffer); + XtSetValues(labelWidget, args, 1); + } +diff -Naur tiff-4.0.3.orig/libtiff/tif_codec.c tiff-4.0.3/libtiff/tif_codec.c +--- tiff-4.0.3.orig/libtiff/tif_codec.c 2010-12-14 09:18:28.000000000 -0500 ++++ tiff-4.0.3/libtiff/tif_codec.c 2013-05-02 12:02:42.783287946 -0400 +@@ -108,7 +108,8 @@ + const TIFFCodec* c = TIFFFindCODEC(tif->tif_dir.td_compression); + char compression_code[20]; + +- sprintf( compression_code, "%d", tif->tif_dir.td_compression ); ++ snprintf(compression_code, sizeof(compression_code), "%d", ++ tif->tif_dir.td_compression ); + TIFFErrorExt(tif->tif_clientdata, tif->tif_name, + "%s compression support is not configured", + c ? c->name : compression_code ); +diff -Naur tiff-4.0.3.orig/libtiff/tif_dirinfo.c tiff-4.0.3/libtiff/tif_dirinfo.c +--- tiff-4.0.3.orig/libtiff/tif_dirinfo.c 2012-08-19 12:56:34.000000000 -0400 ++++ tiff-4.0.3/libtiff/tif_dirinfo.c 2013-05-02 12:02:42.784287953 -0400 +@@ -711,7 +711,7 @@ + * note that this name is a special sign to TIFFClose() and + * _TIFFSetupFields() to free the field + */ +- sprintf(fld->field_name, "Tag %d", (int) tag); ++ snprintf(fld->field_name, 32, "Tag %d", (int) tag); + + return fld; + } +diff -Naur tiff-4.0.3.orig/tools/rgb2ycbcr.c tiff-4.0.3/tools/rgb2ycbcr.c +--- tiff-4.0.3.orig/tools/rgb2ycbcr.c 2011-05-31 13:03:16.000000000 -0400 ++++ tiff-4.0.3/tools/rgb2ycbcr.c 2013-05-02 12:02:42.785287961 -0400 +@@ -332,7 +332,8 @@ + TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + { char buf[2048]; + char *cp = strrchr(TIFFFileName(in), '/'); +- sprintf(buf, "YCbCr conversion of %s", cp ? cp+1 : TIFFFileName(in)); ++ snprintf(buf, sizeof(buf), "YCbCr conversion of %s", ++ cp ? cp+1 : TIFFFileName(in)); + TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, buf); + } + TIFFSetField(out, TIFFTAG_SOFTWARE, TIFFGetVersion()); +diff -Naur tiff-4.0.3.orig/tools/tiff2bw.c tiff-4.0.3/tools/tiff2bw.c +--- tiff-4.0.3.orig/tools/tiff2bw.c 2010-07-08 12:10:24.000000000 -0400 ++++ tiff-4.0.3/tools/tiff2bw.c 2013-05-02 12:02:42.785287961 -0400 +@@ -205,7 +205,7 @@ + } + } + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); +- sprintf(thing, "B&W version of %s", argv[optind]); ++ snprintf(thing, sizeof(thing), "B&W version of %s", argv[optind]); + TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing); + TIFFSetField(out, TIFFTAG_SOFTWARE, "tiff2bw"); + outbuf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(out)); +diff -Naur tiff-4.0.3.orig/tools/tiff2pdf.c tiff-4.0.3/tools/tiff2pdf.c +--- tiff-4.0.3.orig/tools/tiff2pdf.c 2012-07-25 22:56:43.000000000 -0400 ++++ tiff-4.0.3/tools/tiff2pdf.c 2013-05-02 12:02:42.788287983 -0400 +@@ -3609,7 +3609,9 @@ + char buffer[16]; + int buflen=0; + +- buflen=sprintf(buffer, "%%PDF-%u.%u ", t2p->pdf_majorversion&0xff, t2p->pdf_minorversion&0xff); ++ buflen = snprintf(buffer, sizeof(buffer), "%%PDF-%u.%u ", ++ t2p->pdf_majorversion&0xff, ++ t2p->pdf_minorversion&0xff); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t)"\n%\342\343\317\323\n", 7); + +@@ -3623,10 +3625,10 @@ + tsize_t t2p_write_pdf_obj_start(uint32 number, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + +- buflen=sprintf(buffer, "%lu", (unsigned long)number); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)number); + written += t2pWriteFile(output, (tdata_t) buffer, buflen ); + written += t2pWriteFile(output, (tdata_t) " 0 obj\n", 7); + +@@ -3665,13 +3667,13 @@ + written += t2pWriteFile(output, (tdata_t) "/", 1); + for (i=0;i 0x7E){ +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + nextchar=1; +@@ -3679,57 +3681,57 @@ + if (nextchar==0){ + switch (name[i]){ + case 0x23: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x25: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x28: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x29: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x2F: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x3C: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x3E: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x5B: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x5D: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x7B: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x7D: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; +@@ -3844,14 +3846,14 @@ + tsize_t t2p_write_pdf_stream_dict(tsize_t len, uint32 number, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + written += t2pWriteFile(output, (tdata_t) "/Length ", 8); + if(len!=0){ + written += t2p_write_pdf_stream_length(len, output); + } else { +- buflen=sprintf(buffer, "%lu", (unsigned long)number); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)number); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); + } +@@ -3892,10 +3894,10 @@ + tsize_t t2p_write_pdf_stream_length(tsize_t len, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + +- buflen=sprintf(buffer, "%lu", (unsigned long)len); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)len); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "\n", 1); + +@@ -3909,7 +3911,7 @@ + tsize_t t2p_write_pdf_catalog(T2P* t2p, TIFF* output) + { + tsize_t written = 0; +- char buffer[16]; ++ char buffer[32]; + int buflen = 0; + + written += t2pWriteFile(output, +@@ -3948,7 +3950,6 @@ + written += t2p_write_pdf_string(t2p->pdf_datetime, output); + } + written += t2pWriteFile(output, (tdata_t) "\n/Producer ", 11); +- _TIFFmemset((tdata_t)buffer, 0x00, sizeof(buffer)); + snprintf(buffer, sizeof(buffer), "libtiff / tiff2pdf - %d", TIFFLIB_VERSION); + written += t2p_write_pdf_string(buffer, output); + written += t2pWriteFile(output, (tdata_t) "\n", 1); +@@ -4089,7 +4090,7 @@ + { + tsize_t written=0; + tdir_t i=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + int page=0; +@@ -4097,7 +4098,7 @@ + (tdata_t) "<< \n/Type /Pages \n/Kids [ ", 26); + page = t2p->pdf_pages+1; + for (i=0;itiff_pagecount;i++){ +- buflen=sprintf(buffer, "%d", page); ++ buflen=snprintf(buffer, sizeof(buffer), "%d", page); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); + if ( ((i+1)%8)==0 ) { +@@ -4112,8 +4113,7 @@ + } + } + written += t2pWriteFile(output, (tdata_t) "] \n/Count ", 10); +- _TIFFmemset(buffer, 0x00, 16); +- buflen=sprintf(buffer, "%d", t2p->tiff_pagecount); ++ buflen=snprintf(buffer, sizeof(buffer), "%d", t2p->tiff_pagecount); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " \n>> \n", 6); + +@@ -4128,28 +4128,28 @@ + + unsigned int i=0; + tsize_t written=0; +- char buffer[16]; ++ char buffer[256]; + int buflen=0; + + written += t2pWriteFile(output, (tdata_t) "<<\n/Type /Page \n/Parent ", 24); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_pages); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_pages); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); + written += t2pWriteFile(output, (tdata_t) "/MediaBox [", 11); +- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.x1); ++ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.x1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.y1); ++ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.y1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.x2); ++ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.x2); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.y2); ++ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.y2); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "] \n", 3); + written += t2pWriteFile(output, (tdata_t) "/Contents ", 10); +- buflen=sprintf(buffer, "%lu", (unsigned long)(object + 1)); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(object + 1)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); + written += t2pWriteFile(output, (tdata_t) "/Resources << \n", 15); +@@ -4157,15 +4157,13 @@ + written += t2pWriteFile(output, (tdata_t) "/XObject <<\n", 12); + for(i=0;itiff_tiles[t2p->pdf_page].tiles_tilecount;i++){ + written += t2pWriteFile(output, (tdata_t) "/Im", 3); +- buflen = sprintf(buffer, "%u", t2p->pdf_page+1); ++ buflen = snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "_", 1); +- buflen = sprintf(buffer, "%u", i+1); ++ buflen = snprintf(buffer, sizeof(buffer), "%u", i+1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- buflen = sprintf( +- buffer, +- "%lu", ++ buflen = snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(object+3+(2*i)+t2p->tiff_pages[t2p->pdf_page].page_extra)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +@@ -4177,12 +4175,10 @@ + } else { + written += t2pWriteFile(output, (tdata_t) "/XObject <<\n", 12); + written += t2pWriteFile(output, (tdata_t) "/Im", 3); +- buflen = sprintf(buffer, "%u", t2p->pdf_page+1); ++ buflen = snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- buflen = sprintf( +- buffer, +- "%lu", ++ buflen = snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(object+3+(2*i)+t2p->tiff_pages[t2p->pdf_page].page_extra)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +@@ -4191,9 +4187,7 @@ + if(t2p->tiff_transferfunctioncount != 0) { + written += t2pWriteFile(output, (tdata_t) "/ExtGState <<", 13); + t2pWriteFile(output, (tdata_t) "/GS1 ", 5); +- buflen = sprintf( +- buffer, +- "%lu", ++ buflen = snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(object + 3)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +@@ -4566,7 +4560,7 @@ + if(t2p->tiff_tiles[t2p->pdf_page].tiles_tilecount>0){ + for(i=0;itiff_tiles[t2p->pdf_page].tiles_tilecount; i++){ + box=t2p->tiff_tiles[t2p->pdf_page].tiles_tiles[i].tile_box; +- buflen=sprintf(buffer, ++ buflen=snprintf(buffer, sizeof(buffer), + "q %s %.4f %.4f %.4f %.4f %.4f %.4f cm /Im%d_%ld Do Q\n", + t2p->tiff_transferfunctioncount?"/GS1 gs ":"", + box.mat[0], +@@ -4581,7 +4575,7 @@ + } + } else { + box=t2p->pdf_imagebox; +- buflen=sprintf(buffer, ++ buflen=snprintf(buffer, sizeof(buffer), + "q %s %.4f %.4f %.4f %.4f %.4f %.4f cm /Im%d Do Q\n", + t2p->tiff_transferfunctioncount?"/GS1 gs ":"", + box.mat[0], +@@ -4606,59 +4600,48 @@ + TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + written += t2p_write_pdf_stream_dict(0, t2p->pdf_xrefcount+1, output); + written += t2pWriteFile(output, + (tdata_t) "/Type /XObject \n/Subtype /Image \n/Name /Im", + 42); +- buflen=sprintf(buffer, "%u", t2p->pdf_page+1); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + if(tile != 0){ + written += t2pWriteFile(output, (tdata_t) "_", 1); +- buflen=sprintf(buffer, "%lu", (unsigned long)tile); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)tile); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } + written += t2pWriteFile(output, (tdata_t) "\n/Width ", 8); +- _TIFFmemset((tdata_t)buffer, 0x00, 16); + if(tile==0){ +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->tiff_width); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->tiff_width); + } else { + if(t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)!=0){ +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilewidth); + } else { +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilewidth); + } + } + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "\n/Height ", 9); +- _TIFFmemset((tdata_t)buffer, 0x00, 16); + if(tile==0){ +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->tiff_length); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->tiff_length); + } else { + if(t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)!=0){ +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilelength); + } else { +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilelength); + } + } + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "\n/BitsPerComponent ", 19); +- _TIFFmemset((tdata_t)buffer, 0x00, 16); +- buflen=sprintf(buffer, "%u", t2p->tiff_bitspersample); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_bitspersample); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "\n/ColorSpace ", 13); + written += t2p_write_pdf_xobject_cs(t2p, output); +@@ -4702,11 +4685,10 @@ + t2p->pdf_colorspace ^= T2P_CS_PALETTE; + written += t2p_write_pdf_xobject_cs(t2p, output); + t2p->pdf_colorspace |= T2P_CS_PALETTE; +- buflen=sprintf(buffer, "%u", (0x0001 << t2p->tiff_bitspersample)-1 ); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", (0x0001 << t2p->tiff_bitspersample)-1 ); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- _TIFFmemset(buffer, 0x00, 16); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_palettecs ); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_palettecs ); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ]\n", 7); + return(written); +@@ -4740,10 +4722,10 @@ + X_W /= Y_W; + Z_W /= Y_W; + Y_W = 1.0F; +- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); ++ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "/Range ", 7); +- buflen=sprintf(buffer, "[%d %d %d %d] \n", ++ buflen=snprintf(buffer, sizeof(buffer), "[%d %d %d %d] \n", + t2p->pdf_labrange[0], + t2p->pdf_labrange[1], + t2p->pdf_labrange[2], +@@ -4759,26 +4741,26 @@ + tsize_t t2p_write_pdf_transfer(T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + written += t2pWriteFile(output, (tdata_t) "<< /Type /ExtGState \n/TR ", 25); + if(t2p->tiff_transferfunctioncount == 1){ +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(t2p->pdf_xrefcount + 1)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); + } else { + written += t2pWriteFile(output, (tdata_t) "[ ", 2); +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(t2p->pdf_xrefcount + 1)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(t2p->pdf_xrefcount + 2)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(t2p->pdf_xrefcount + 3)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +@@ -4800,7 +4782,7 @@ + written += t2pWriteFile(output, (tdata_t) "/FunctionType 0 \n", 17); + written += t2pWriteFile(output, (tdata_t) "/Domain [0.0 1.0] \n", 19); + written += t2pWriteFile(output, (tdata_t) "/Range [0.0 1.0] \n", 18); +- buflen=sprintf(buffer, "/Size [%u] \n", (1<tiff_bitspersample)); ++ buflen=snprintf(buffer, sizeof(buffer), "/Size [%u] \n", (1<tiff_bitspersample)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "/BitsPerSample 16 \n", 19); + written += t2p_write_pdf_stream_dict(((tsize_t)1)<<(t2p->tiff_bitspersample+1), 0, output); +@@ -4827,7 +4809,7 @@ + tsize_t t2p_write_pdf_xobject_calcs(T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[128]; ++ char buffer[256]; + int buflen=0; + + float X_W=0.0; +@@ -4895,16 +4877,16 @@ + written += t2pWriteFile(output, (tdata_t) "<< \n", 4); + if(t2p->pdf_colorspace & T2P_CS_CALGRAY){ + written += t2pWriteFile(output, (tdata_t) "/WhitePoint ", 12); +- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); ++ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "/Gamma 2.2 \n", 12); + } + if(t2p->pdf_colorspace & T2P_CS_CALRGB){ + written += t2pWriteFile(output, (tdata_t) "/WhitePoint ", 12); +- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); ++ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "/Matrix ", 8); +- buflen=sprintf(buffer, "[%.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f] \n", ++ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f] \n", + X_R, Y_R, Z_R, + X_G, Y_G, Z_G, + X_B, Y_B, Z_B); +@@ -4923,11 +4905,11 @@ + tsize_t t2p_write_pdf_xobject_icccs(T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + written += t2pWriteFile(output, (tdata_t) "[/ICCBased ", 11); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_icccs); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_icccs); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R] \n", 7); + +@@ -4937,11 +4919,11 @@ + tsize_t t2p_write_pdf_xobject_icccs_dict(T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + written += t2pWriteFile(output, (tdata_t) "/N ", 3); +- buflen=sprintf(buffer, "%u \n", t2p->tiff_samplesperpixel); ++ buflen=snprintf(buffer, sizeof(buffer), "%u \n", t2p->tiff_samplesperpixel); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "/Alternate ", 11); + t2p->pdf_colorspace ^= T2P_CS_ICCBASED; +@@ -5006,7 +4988,7 @@ + tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + if(t2p->pdf_compression==T2P_COMPRESS_NONE){ +@@ -5021,41 +5003,33 @@ + written += t2pWriteFile(output, (tdata_t) "<< /K -1 ", 9); + if(tile==0){ + written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_width); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_length); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } else { + if(t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)==0){ + written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilewidth); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } else { + written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilewidth); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } + if(t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)==0){ + written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilelength); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } else { + written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilelength); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } +@@ -5082,21 +5056,17 @@ + if(t2p->pdf_compressionquality%100){ + written += t2pWriteFile(output, (tdata_t) "/DecodeParms ", 13); + written += t2pWriteFile(output, (tdata_t) "<< /Predictor ", 14); +- _TIFFmemset(buffer, 0x00, 16); +- buflen=sprintf(buffer, "%u", t2p->pdf_compressionquality%100); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_compressionquality%100); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " /Columns ", 10); +- _TIFFmemset(buffer, 0x00, 16); +- buflen = sprintf(buffer, "%lu", ++ buflen = snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_width); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " /Colors ", 9); +- _TIFFmemset(buffer, 0x00, 16); +- buflen=sprintf(buffer, "%u", t2p->tiff_samplesperpixel); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_samplesperpixel); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " /BitsPerComponent ", 19); +- _TIFFmemset(buffer, 0x00, 16); +- buflen=sprintf(buffer, "%u", t2p->tiff_bitspersample); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_bitspersample); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) ">>\n", 3); + } +@@ -5116,16 +5086,16 @@ + tsize_t t2p_write_pdf_xreftable(T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[21]; ++ char buffer[64]; + int buflen=0; + uint32 i=0; + + written += t2pWriteFile(output, (tdata_t) "xref\n0 ", 7); +- buflen=sprintf(buffer, "%lu", (unsigned long)(t2p->pdf_xrefcount + 1)); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(t2p->pdf_xrefcount + 1)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " \n0000000000 65535 f \n", 22); + for (i=0;ipdf_xrefcount;i++){ +- sprintf(buffer, "%.10lu 00000 n \n", ++ snprintf(buffer, sizeof(buffer), "%.10lu 00000 n \n", + (unsigned long)t2p->pdf_xrefoffsets[i]); + written += t2pWriteFile(output, (tdata_t) buffer, 20); + } +@@ -5149,17 +5119,14 @@ + snprintf(t2p->pdf_fileid + i, 9, "%.8X", rand()); + + written += t2pWriteFile(output, (tdata_t) "trailer\n<<\n/Size ", 17); +- buflen = sprintf(buffer, "%lu", (unsigned long)(t2p->pdf_xrefcount+1)); ++ buflen = snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(t2p->pdf_xrefcount+1)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); +- _TIFFmemset(buffer, 0x00, 32); + written += t2pWriteFile(output, (tdata_t) "\n/Root ", 7); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_catalog); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_catalog); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); +- _TIFFmemset(buffer, 0x00, 32); + written += t2pWriteFile(output, (tdata_t) " 0 R \n/Info ", 12); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_info); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_info); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); +- _TIFFmemset(buffer, 0x00, 32); + written += t2pWriteFile(output, (tdata_t) " 0 R \n/ID[<", 11); + written += t2pWriteFile(output, (tdata_t) t2p->pdf_fileid, + sizeof(t2p->pdf_fileid) - 1); +@@ -5167,9 +5134,8 @@ + written += t2pWriteFile(output, (tdata_t) t2p->pdf_fileid, + sizeof(t2p->pdf_fileid) - 1); + written += t2pWriteFile(output, (tdata_t) ">]\n>>\nstartxref\n", 16); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_startxref); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_startxref); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); +- _TIFFmemset(buffer, 0x00, 32); + written += t2pWriteFile(output, (tdata_t) "\n%%EOF\n", 7); + + return(written); +diff -Naur tiff-4.0.3.orig/tools/tiff2ps.c tiff-4.0.3/tools/tiff2ps.c +--- tiff-4.0.3.orig/tools/tiff2ps.c 2011-05-31 13:10:18.000000000 -0400 ++++ tiff-4.0.3/tools/tiff2ps.c 2013-05-02 12:02:42.789287990 -0400 +@@ -1781,8 +1781,8 @@ + imageOp = "imagemask"; + + (void)strcpy(im_x, "0"); +- (void)sprintf(im_y, "%lu", (long) h); +- (void)sprintf(im_h, "%lu", (long) h); ++ (void)snprintf(im_y, sizeof(im_y), "%lu", (long) h); ++ (void)snprintf(im_h, sizeof(im_h), "%lu", (long) h); + tile_width = w; + tile_height = h; + if (TIFFIsTiled(tif)) { +@@ -1803,7 +1803,7 @@ + } + if (tile_height < h) { + fputs("/im_y 0 def\n", fd); +- (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); ++ (void)snprintf(im_y, sizeof(im_y), "%lu im_y sub", (unsigned long) h); + } + } else { + repeat_count = tf_numberstrips; +@@ -1815,7 +1815,7 @@ + fprintf(fd, "/im_h %lu def\n", + (unsigned long) tile_height); + (void)strcpy(im_h, "im_h"); +- (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); ++ (void)snprintf(im_y, sizeof(im_y), "%lu im_y sub", (unsigned long) h); + } + } + +diff -Naur tiff-4.0.3.orig/tools/tiffcrop.c tiff-4.0.3/tools/tiffcrop.c +--- tiff-4.0.3.orig/tools/tiffcrop.c 2010-12-14 09:18:28.000000000 -0500 ++++ tiff-4.0.3/tools/tiffcrop.c 2013-05-02 12:02:42.791288005 -0400 +@@ -2077,7 +2077,7 @@ + return 1; + } + +- sprintf (filenum, "-%03d%s", findex, export_ext); ++ snprintf(filenum, sizeof(filenum), "-%03d%s", findex, export_ext); + filenum[14] = '\0'; + strncat (exportname, filenum, 15); + } +@@ -2230,8 +2230,8 @@ + + /* dump.infilename is guaranteed to be NUL termimated and have 20 bytes + fewer than PATH_MAX */ +- memset (temp_filename, '\0', PATH_MAX + 1); +- sprintf (temp_filename, "%s-read-%03d.%s", dump.infilename, dump_images, ++ snprintf(temp_filename, sizeof(temp_filename), "%s-read-%03d.%s", ++ dump.infilename, dump_images, + (dump.format == DUMP_TEXT) ? "txt" : "raw"); + if ((dump.infile = fopen(temp_filename, dump.mode)) == NULL) + { +@@ -2249,8 +2249,8 @@ + + /* dump.outfilename is guaranteed to be NUL termimated and have 20 bytes + fewer than PATH_MAX */ +- memset (temp_filename, '\0', PATH_MAX + 1); +- sprintf (temp_filename, "%s-write-%03d.%s", dump.outfilename, dump_images, ++ snprintf(temp_filename, sizeof(temp_filename), "%s-write-%03d.%s", ++ dump.outfilename, dump_images, + (dump.format == DUMP_TEXT) ? "txt" : "raw"); + if ((dump.outfile = fopen(temp_filename, dump.mode)) == NULL) + { +diff -Naur tiff-4.0.3.orig/tools/tiffdither.c tiff-4.0.3/tools/tiffdither.c +--- tiff-4.0.3.orig/tools/tiffdither.c 2010-03-10 13:56:50.000000000 -0500 ++++ tiff-4.0.3/tools/tiffdither.c 2013-05-02 12:02:42.792288013 -0400 +@@ -260,7 +260,7 @@ + TIFFSetField(out, TIFFTAG_FILLORDER, fillorder); + else + CopyField(TIFFTAG_FILLORDER, shortv); +- sprintf(thing, "Dithered B&W version of %s", argv[optind]); ++ snprintf(thing, sizeof(thing), "Dithered B&W version of %s", argv[optind]); + TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing); + CopyField(TIFFTAG_PHOTOMETRIC, shortv); + CopyField(TIFFTAG_ORIENTATION, shortv); diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-4231.patch b/mingw-w64-libtiff/libtiff-CVE-2013-4231.patch new file mode 100644 index 0000000000..8ae1e12b25 --- /dev/null +++ b/mingw-w64-libtiff/libtiff-CVE-2013-4231.patch @@ -0,0 +1,15 @@ +diff --git a/tools/gif2tiff.c b/tools/gif2tiff.c +index 17f7a19..375b152 100644 +--- a/tools/gif2tiff.c ++++ b/tools/gif2tiff.c +@@ -333,6 +333,10 @@ readraster(void) + int status = 1; + + datasize = getc(infile); ++ ++ if (datasize > 12) ++ return 0; ++ + clear = 1 << datasize; + eoi = clear + 1; + avail = clear + 2; diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-4232.patch b/mingw-w64-libtiff/libtiff-CVE-2013-4232.patch new file mode 100644 index 0000000000..cec322f077 --- /dev/null +++ b/mingw-w64-libtiff/libtiff-CVE-2013-4232.patch @@ -0,0 +1,12 @@ +diff --git a/tools/tiff2pdf.c b/tools/tiff2pdf.c +index 92a1a3d..312a946 100644 +--- a/tools/tiff2pdf.c ++++ b/tools/tiff2pdf.c +@@ -2462,6 +2462,7 @@ tsize_t t2p_readwrite_pdf_image(T2P* t2p, TIFF* input, TIFF* output){ + TIFFFileName(input)); + t2p->t2p_error = T2P_ERR_ERROR; + _TIFFfree(buffer); ++ return(0); + } else { + buffer=samplebuffer; + t2p->tiff_datasize *= t2p->tiff_samplesperpixel; diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-4243.patch b/mingw-w64-libtiff/libtiff-CVE-2013-4243.patch new file mode 100644 index 0000000000..c365d992b9 --- /dev/null +++ b/mingw-w64-libtiff/libtiff-CVE-2013-4243.patch @@ -0,0 +1,41 @@ +diff --git a/tools/gif2tiff.c b/tools/gif2tiff.c +index 2731273..ca824e2 100644 +--- a/tools/gif2tiff.c ++++ b/tools/gif2tiff.c +@@ -280,6 +280,10 @@ readgifimage(char* mode) + fprintf(stderr, "no colormap present for image\n"); + return (0); + } ++ if (width == 0 || height == 0) { ++ fprintf(stderr, "Invalid value of width or height\n"); ++ return(0); ++ } + if ((raster = (unsigned char*) _TIFFmalloc(width*height+EXTRAFUDGE)) == NULL) { + fprintf(stderr, "not enough memory for image\n"); + return (0); +@@ -406,7 +410,11 @@ process(register int code, unsigned char** fill) + fprintf(stderr, "bad input: code=%d is larger than clear=%d\n",code, clear); + return 0; + } +- *(*fill)++ = suffix[code]; ++ if (*fill >= raster + width*height) { ++ fprintf(stderr, "raster full before eoi code\n"); ++ return 0; ++ } ++ *(*fill)++ = suffix[code]; + firstchar = oldcode = code; + return 1; + } +@@ -436,7 +444,11 @@ process(register int code, unsigned char** fill) + } + oldcode = incode; + do { +- *(*fill)++ = *--stackp; ++ if (*fill >= raster + width*height) { ++ fprintf(stderr, "raster full before eoi code\n"); ++ return 0; ++ } ++ *(*fill)++ = *--stackp; + } while (stackp > stack); + return 1; + } diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-4244.patch b/mingw-w64-libtiff/libtiff-CVE-2013-4244.patch new file mode 100644 index 0000000000..792e076981 --- /dev/null +++ b/mingw-w64-libtiff/libtiff-CVE-2013-4244.patch @@ -0,0 +1,15 @@ +diff --git a/tools/gif2tiff.c b/tools/gif2tiff.c +index 375b152..2731273 100644 +--- a/tools/gif2tiff.c ++++ b/tools/gif2tiff.c +@@ -402,6 +402,10 @@ process(register int code, unsigned char** fill) + } + + if (oldcode == -1) { ++ if (code >= clear) { ++ fprintf(stderr, "bad input: code=%d is larger than clear=%d\n",code, clear); ++ return 0; ++ } + *(*fill)++ = suffix[code]; + firstchar = oldcode = code; + return 1; diff --git a/mingw-w64-libtiff/libtiff-bogus-test.patch b/mingw-w64-libtiff/libtiff-jpeg-test.patch similarity index 76% rename from mingw-w64-libtiff/libtiff-bogus-test.patch rename to mingw-w64-libtiff/libtiff-jpeg-test.patch index 0abf08aef4..92cff7ea4e 100644 --- a/mingw-w64-libtiff/libtiff-bogus-test.patch +++ b/mingw-w64-libtiff/libtiff-jpeg-test.patch @@ -1,21 +1,27 @@ ---- tiff-4.0.3.orig/test/raw_decode.c 2012-07-06 13:05:16.000000000 -0400 -+++ tiff-4.0.3/test/raw_decode.c 2012-12-19 13:04:37.609738276 -0500 +Back-port upstream patch to avoid assuming quite so much about what libjpeg +will return. Needed because libjpeg-turbo with the jpeg8 API broke the +expectations of the previous coding. + + +diff -Naur tiff-4.0.3.orig/test/raw_decode.c tiff-4.0.3/test/raw_decode.c +--- tiff-4.0.3.orig/test/raw_decode.c 2012-07-06 13:05:16.000000000 -0400 ++++ tiff-4.0.3/test/raw_decode.c 2012-12-19 13:04:37.609738276 -0500 @@ -71,33 +71,54 @@ return 1; } -static int check_rgb_pixel( int pixel, int red, int green, int blue, unsigned char *buffer ) { +static int check_rgb_pixel( int pixel, -+ int min_red, int max_red, -+ int min_green, int max_green, -+ int min_blue, int max_blue, -+ unsigned char *buffer ) { ++ int min_red, int max_red, ++ int min_green, int max_green, ++ int min_blue, int max_blue, ++ unsigned char *buffer ) { unsigned char *rgb = buffer + 3 * pixel; - if( rgb[0] == red && rgb[1] == green && rgb[2] == blue ) { + if( rgb[0] >= min_red && rgb[0] <= max_red && -+ rgb[1] >= min_green && rgb[1] <= max_green && -+ rgb[2] >= min_blue && rgb[2] <= max_blue ) { ++ rgb[1] >= min_green && rgb[1] <= max_green && ++ rgb[2] >= min_blue && rgb[2] <= max_blue ) { return 0; } @@ -23,19 +29,19 @@ - fprintf( stderr, "Expect: %3d %3d %3d\n", red, green, blue ); - fprintf( stderr, " Got: %3d %3d %3d\n", rgb[0], rgb[1], rgb[2] ); + fprintf( stderr, "Got R=%d (expected %d..%d), G=%d (expected %d..%d), B=%d (expected %d..%d)\n", -+ rgb[0], min_red, max_red, -+ rgb[1], min_green, max_green, -+ rgb[2], min_blue, max_blue ); ++ rgb[0], min_red, max_red, ++ rgb[1], min_green, max_green, ++ rgb[2], min_blue, max_blue ); return 1; } -static int check_rgba_pixel( int pixel, int red, int green, int blue, int alpha, uint32 *buffer ) { +static int check_rgba_pixel( int pixel, -+ int min_red, int max_red, -+ int min_green, int max_green, -+ int min_blue, int max_blue, -+ int min_alpha, int max_alpha, -+ uint32 *buffer ) { ++ int min_red, int max_red, ++ int min_green, int max_green, ++ int min_blue, int max_blue, ++ int min_alpha, int max_alpha, ++ uint32 *buffer ) { /* RGBA images are upside down - adjust for normal ordering */ int adjusted_pixel = pixel % 128 + (127 - (pixel/128)) * 128; uint32 rgba = buffer[adjusted_pixel]; @@ -58,16 +64,16 @@ - fprintf( stderr, " Got: %3d %3d %3d %3d\n", - TIFFGetR(rgba), TIFFGetG(rgba), TIFFGetB(rgba), TIFFGetA(rgba) ); + fprintf( stderr, "Got R=%d (expected %d..%d), G=%d (expected %d..%d), B=%d (expected %d..%d), A=%d (expected %d..%d)\n", -+ TIFFGetR(rgba), min_red, max_red, -+ TIFFGetG(rgba), min_green, max_green, -+ TIFFGetB(rgba), min_blue, max_blue, -+ TIFFGetA(rgba), min_alpha, max_alpha ); ++ TIFFGetR(rgba), min_red, max_red, ++ TIFFGetG(rgba), min_green, max_green, ++ TIFFGetB(rgba), min_blue, max_blue, ++ TIFFGetA(rgba), min_alpha, max_alpha ); return 1; } @@ -191,15 +212,17 @@ - return 1; - } + return 1; + } -#if JPEG_LIB_VERSION >= 70 - pixel_status |= check_rgb_pixel( 0, 18, 0, 41, buffer ); @@ -106,11 +112,11 @@ - pixel_status |= check_rgba_pixel( 512, 6, 36, 182, 255, rgba_buffer ); -#endif + pixel_status |= check_rgba_pixel( 0, 15, 18, 0, 0, 18, 41, 255, 255, -+ rgba_buffer ); ++ rgba_buffer ); + pixel_status |= check_rgba_pixel( 64, 0, 0, 0, 0, 0, 2, 255, 255, -+ rgba_buffer ); ++ rgba_buffer ); + pixel_status |= check_rgba_pixel( 512, 5, 6, 34, 36, 182, 196, 255, 255, -+ rgba_buffer ); ++ rgba_buffer ); free( rgba_buffer ); TIFFClose(tif); diff --git a/mingw-w64-libtiff/libtiff-make-check.patch b/mingw-w64-libtiff/libtiff-make-check.patch new file mode 100644 index 0000000000..46796d4218 --- /dev/null +++ b/mingw-w64-libtiff/libtiff-make-check.patch @@ -0,0 +1,26 @@ +diff --git a/html/man/Makefile.am b/html/man/Makefile.am +index ca222de..c7421ac 100644 +--- a/html/man/Makefile.am ++++ b/html/man/Makefile.am +@@ -85,7 +85,6 @@ docfiles = \ + ras2tiff.1.html \ + raw2tiff.1.html \ + rgb2ycbcr.1.html \ +- sgi2tiff.1.html \ + thumbnail.1.html \ + tiff2bw.1.html \ + tiff2pdf.1.html \ +@@ -96,12 +95,10 @@ docfiles = \ + tiffcrop.1.html \ + tiffdither.1.html \ + tiffdump.1.html \ +- tiffgt.1.html \ + tiffinfo.1.html \ + tiffmedian.1.html \ + tiffset.1.html \ +- tiffsplit.1.html \ +- tiffsv.1.html ++ tiffsplit.1.html + + dist_doc_DATA = $(indexfile) $(docfiles) + diff --git a/mingw-w64-libtiff/libtiff-manpage-update.patch b/mingw-w64-libtiff/libtiff-manpage-update.patch new file mode 100644 index 0000000000..12d2aeff93 --- /dev/null +++ b/mingw-w64-libtiff/libtiff-manpage-update.patch @@ -0,0 +1,119 @@ +diff --git a/man/tiff2ps.1 b/man/tiff2ps.1 +index c3a9bac..a826ad7 100644 +--- a/man/tiff2ps.1 ++++ b/man/tiff2ps.1 +@@ -100,6 +100,9 @@ Generate \*(Ps Level 2. + Generate \*(Ps Level 3. It basically allows one to use the /flateDecode + filter for ZIP compressed TIFF images. + .TP ++.B \-8 ++Disable use of ASCII85 encoding with PostScript Level 2/3 ++.TP + .B \-a + Generate output for all IFDs (pages) in the input file. + .TP +@@ -123,6 +126,9 @@ directory to the specified directory number. + This option is useful for selecting individual pages in a + multi-page (e.g. facsimile) file. + .TP ++.B \-D ++Enable duplex printing (two pages per sheet of paper) ++.TP + .B \-e + Force the generation of Encapsulated \*(Ps (implies + .BR \-z ). +@@ -185,6 +191,10 @@ like which are hidden using the + .I SubIFD + tag. + .TP ++.B \-O ++Write PostScript to specified file instead of standard output ++Set the initial ++.TP + .B \-p + Force the generation of (non-Encapsulated) \*(Ps. + .TP +@@ -188,6 +188,9 @@ Set the initial + .B \-p + Force the generation of (non-Encapsulated) \*(Ps. + .TP ++.B \-P ++Set optional PageOrientation DSC comment to Landscape or Portrait. ++.TP + .B \-r 90|180|270|auto + Rotate image by 90, 180, 270 degrees or auto. Auto picks the best + fit for the image on the specified paper size (eg portrait +@@ -197,6 +207,12 @@ counterclockwise. Auto rotates 90 degrees ccw to produce landscape. + .B \-s + Generate output for a single IFD (page) in the input file. + .TP ++.B \-t ++Specify the document title string ++.TP ++.B \-T ++Print pages for top edge binding ++.TP + .B \-w + Specify the horizontal size of the printed area (in inches). + .TP +diff --git a/man/tiffcp.1 b/man/tiffcp.1 +index 5fdcc47..bf50130 100644 +--- a/man/tiffcp.1 ++++ b/man/tiffcp.1 +@@ -60,6 +60,9 @@ in a file, but it is explicitly intended to not alter or convert + the image data content in any way. + .SH OPTIONS + .TP ++.BI \-a ++Append to an existing output file instead of overwriting it ++.TP + .BI \-b " image" + subtract the following monochrome image from all others + processed. This can be used to remove a noise bias +@@ -179,6 +182,9 @@ overwritten and not when it is appended to. + .B \-M + Suppress the use of memory-mapped files when reading images. + .TP ++.BI \-o " offset" ++Set initial directory offset ++.TP + .B \-p + Specify the planar configuration to use in writing image data + that has one 8-bit sample per pixel. +@@ -228,6 +228,9 @@ appear in a tile. + .B \-x + Force the output file to be written with PAGENUMBER value in sequence. + .TP ++.B \-8 ++Write BigTIFF instead of classic TIFF format. ++.TP + .BI \-,= character + substitute + .I character +diff --git a/tools/tiffcp.c b/tools/tiffcp.c +index 0f81b19..8c696db 100644 +--- a/tools/tiffcp.c ++++ b/tools/tiffcp.c +@@ -409,6 +409,10 @@ char* stuff[] = { + " -s write output in strips", + " -t write output in tiles", + " -8 write BigTIFF instead of default ClassicTIFF", ++" -B write big-endian instead of native byte order", ++" -L write little-endian instead of native byte order", ++" -M disable use of memory-mapped files", ++" -C disable strip chopping", + " -i ignore read errors", + " -b file[,#] bias (dark) monochrome image to be subtracted from all others", + " -,=% use % rather than , to separate image #'s (per Note below)", +diff --git a/man/tiff2ps.1 b/man/tiff2ps.1 +index b4a304a..0d672b0 100644 +--- a/man/tiff2ps.1 ++++ b/man/tiff2ps.1 +@@ -149,6 +149,7 @@ be split in several pages. Options + and + .B \-W + are mutually exclusive. ++.TP + .B \-i + Enable/disable pixel interpolation. This option requires a + single numeric value: zero to disable pixel interpolation and diff --git a/mingw-w64-libtiff/libtiff-printdir-width.patch b/mingw-w64-libtiff/libtiff-printdir-width.patch new file mode 100644 index 0000000000..f41f027da3 --- /dev/null +++ b/mingw-w64-libtiff/libtiff-printdir-width.patch @@ -0,0 +1,20 @@ +Back-patch upstream patch of 2012-12-12 ("Fix TIFF_VARIABLE/TIFF_VARIABLE2 +confusion in TIFFPrintDirectory"). + + +diff -Naur tiff-4.0.3.orig/libtiff/tif_print.c tiff-4.0.3/libtiff/tif_print.c +--- tiff-4.0.3.orig/libtiff/tif_print.c 2012-08-19 12:56:35.000000000 -0400 ++++ tiff-4.0.3/libtiff/tif_print.c 2012-12-12 16:53:05.355927641 -0500 +@@ -582,10 +582,10 @@ + continue; + + if(fip->field_passcount) { +- if (fip->field_readcount == TIFF_VARIABLE ) { ++ if (fip->field_readcount == TIFF_VARIABLE2 ) { + if(TIFFGetField(tif, tag, &value_count, &raw_data) != 1) + continue; +- } else if (fip->field_readcount == TIFF_VARIABLE2 ) { ++ } else if (fip->field_readcount == TIFF_VARIABLE ) { + uint16 small_value_count; + if(TIFFGetField(tif, tag, &small_value_count, &raw_data) != 1) + continue; From 4cdac16d97867ab17fe42f06ad6cd4c5421d3eed Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 28 Apr 2015 20:48:50 +0100 Subject: [PATCH 0939/2060] qbs + qbs-git: Install commandechomode.h --- ...dechomode.h-to-installed-headers.1.4.patch | 27 +++++++++++++++++++ mingw-w64-qbs-git/PKGBUILD | 13 +++++---- 2 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch diff --git a/mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch b/mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch new file mode 100644 index 0000000000..7ba509f4c0 --- /dev/null +++ b/mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch @@ -0,0 +1,27 @@ +From 308fff32229b86b7a97372bee762c5c953e95958 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 28 Apr 2015 20:46:39 +0100 +Subject: [PATCH 6/6] add commandechomode.h to installed headers + +.. this header is needed by qbs/tools/buildoptions.h +--- + src/lib/corelib/tools/tools.pri | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri +index a77926c..4106aee 100644 +--- a/src/lib/corelib/tools/tools.pri ++++ b/src/lib/corelib/tools/tools.pri +@@ -97,7 +97,8 @@ qbs_enable_unit_tests { + $$PWD/generatorpluginmanager.h \ + $$PWD/installoptions.h \ + $$PWD/generateoptions.h \ +- $$PWD/setupprojectparameters.h ++ $$PWD/setupprojectparameters.h \ ++ $$PWD/commandechomode.h + tools_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/tools + INSTALLS += tools_headers + } +-- +2.3.5 + diff --git a/mingw-w64-qbs-git/PKGBUILD b/mingw-w64-qbs-git/PKGBUILD index 300d62c4f7..369d01f68c 100644 --- a/mingw-w64-qbs-git/PKGBUILD +++ b/mingw-w64-qbs-git/PKGBUILD @@ -47,6 +47,7 @@ source=("git://gitorious.org/qt-labs/qbs.git#branch=$QBS_GIT_BRANCH" "0003-add-generator-header-installs.1.4.patch" "0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch" "0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch" + "0006-add-commandechomode.h-to-installed-headers.1.4.patch" "0001-add-hostosinfo.h-to-installed-headers.1.3.4.patch" "0002-WIP-Xcode-generator.1.3.4.patch" @@ -61,11 +62,12 @@ sha256sums=('SKIP' '806c64da4c3c8e6ca4b51affe29a02d49fc303a614f34ac08bc62c66f5420ede' 'b6d35740104f67d241060e2eeb898dee93a1ea3bed3ff3248e29ca60a39b2360' '0f55b433f7390106ccb6ab3f057fdb1119eddac2af78baf292a033b402f030b3' - '0877dced21c6c85cfd86a068f6326bb2c8eaf315adfe227fa9150d18ba384d67' - '81a16627217936370e6212591d5f43933e186686541cada3b0434fa84ddecd7d' - '61ea3d32d0bebab69d141498a142998a885bf8cd7db33eea082476b52412651e' - '8c9bd35fd8e83c2897ebd93e66a6c60f88de6c9dbe386a923e9c7541b1c6f932' - '526f7dfdc4681c83473bfb9f551e10a42f31a4a1034c9f277688a0ffd1a83644' + '88250c2b01a21a4facfa90bcc81f3dfd517c2af5ef5b775cfe3e1605568eb908' + '05c2bbbe66903a1cb04a2ec4abef2a2de3d6231c8d1adec87ee1e836ff40e21a' + '65c16bd4738608f8072fd5621f17b0b745bb00464ab9ac881a697d93df62b627' + '6b43458001e4b7cd9170e65514431370b1be5fccf2e8436cd921afe39bd59380' + 'c70a907ffc140068493a1f7fcc0a533e6afdff05120089ab37291f952e3c5c2e' + '8a1735cdc1c8fd0bb19f89c03d29e57f63ce9f829f2f55293b4a7e55983a6253' '761d4ff8072600aed4c2cd9b7e0963fc24ddda7ba6bca9431134111432ca6e85' '8f6f67ad1036c48efc6604e393d9d0d4c0297391bc86fc4d110995c9c0f4d191' 'caf5258899ae870d9295079046a699a98a577b18b471d245164456918f95fe4c' @@ -93,6 +95,7 @@ prepare() { git am "${srcdir}"/0003-add-generator-header-installs.1.4.patch git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch + git am "${srcdir}"/0006-add-commandechomode.h-to-installed-headers.1.4.patch elif [ "${QBS_GIT_BRANCH}" = "1.3" ]; then git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.1.3.4.patch git am "${srcdir}"/0002-WIP-Xcode-generator.1.3.4.patch From 7f20b58c22acb7cf285db00de13345b0b953c055 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 29 Apr 2015 00:32:45 +0100 Subject: [PATCH 0940/2060] qbs + qbs-git: Fixes for 1.4 Had to disable the Xcode generator for now. Loads of needed headers were not being installed either. --- ...ostosinfo.h-to-installed-headers.1.4.patch | 8 +-- .../0002-WIP-Xcode-generator.1.4.patch | 8 +-- ...03-add-generator-header-installs.1.4.patch | 8 +-- ...ad-of-.a-for-mingw-import-librar.1.4.patch | 4 +- ...toolchains-Pretend-msys-is-mingw.1.4.patch | 4 +- ...dechomode.h-to-installed-headers.1.4.patch | 8 +-- ...-many-files-to-installed-headers.1.4.patch | 71 +++++++++++++++++++ ...ST_FROM_ASCII-due-to-Xcode-gener.1.4.patch | 24 +++++++ ...pecify-LIBS-Psapi.lib-just-psapi.1.4.patch | 26 +++++++ ...0010-Disable-WIP-Xcode-generator.1.4.patch | 43 +++++++++++ mingw-w64-qbs-git/PKGBUILD | 28 +++++--- ...dechomode.h-to-installed-headers.1.4.patch | 27 +++++++ ...-many-files-to-installed-headers.1.4.patch | 71 +++++++++++++++++++ ...0009-Disable-WIP-Xcode-generator.1.4.patch | 43 +++++++++++ mingw-w64-qbs/PKGBUILD | 15 +++- 15 files changed, 357 insertions(+), 31 deletions(-) create mode 100644 mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch create mode 100644 mingw-w64-qbs-git/0008-Disable-QT_NO_CAST_FROM_ASCII-due-to-Xcode-gener.1.4.patch create mode 100644 mingw-w64-qbs-git/0009-win32-Don-t-specify-LIBS-Psapi.lib-just-psapi.1.4.patch create mode 100644 mingw-w64-qbs-git/0010-Disable-WIP-Xcode-generator.1.4.patch create mode 100644 mingw-w64-qbs/0007-add-commandechomode.h-to-installed-headers.1.4.patch create mode 100644 mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch create mode 100644 mingw-w64-qbs/0009-Disable-WIP-Xcode-generator.1.4.patch diff --git a/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch index 6981984c14..06e8ce610c 100644 --- a/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch +++ b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch @@ -1,7 +1,7 @@ -From e697af051da85ea4000e9fa1cb96e4f9add0fff3 Mon Sep 17 00:00:00 2001 +From 0a38483fe9ab155f2a300be51108957202181bbf Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 12:19:52 +0100 -Subject: [PATCH 1/5] add hostosinfo.h to installed headers +Subject: [PATCH 01/10] add hostosinfo.h to installed headers .. if you build Qt Creator with system qbs then this header is needed by: @@ -11,10 +11,10 @@ src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp 1 file changed, 1 insertion(+) diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 35bc9c8..431eb27 100644 +index 3bf459d..aaebae2 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -85,6 +85,7 @@ qbs_enable_unit_tests { +@@ -87,6 +87,7 @@ qbs_enable_unit_tests { $$PWD/cleanoptions.h \ $$PWD/codelocation.h \ $$PWD/error.h \ diff --git a/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch index efa0acef2b..7d360dfa57 100644 --- a/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch +++ b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch @@ -1,7 +1,7 @@ -From dccc816f8a2d59955688d20d5b3931b508eae134 Mon Sep 17 00:00:00 2001 +From 8e27fb97463ca14e44127468f76e961a55fd21a2 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Wed, 18 Feb 2015 09:05:29 -0800 -Subject: [PATCH 2/5] WIP: Xcode generator. +Subject: [PATCH 02/10] WIP: Xcode generator. Task-number: QBS-32 Change-Id: I5ce5cc3148aa801d75a1f64b778fe7334de43af9 @@ -126,10 +126,10 @@ Change-Id: I5ce5cc3148aa801d75a1f64b778fe7334de43af9 create mode 100644 src/lib/corelib/generators/xcode/xcsettings.h diff --git a/src/lib/corelib/corelib.qbs b/src/lib/corelib/corelib.qbs -index 1c1515b..43628a9 100644 +index a5fb92a..e6cd421 100644 --- a/src/lib/corelib/corelib.qbs +++ b/src/lib/corelib/corelib.qbs -@@ -154,6 +154,68 @@ QbsLibrary { +@@ -156,6 +156,68 @@ QbsLibrary { files: "buildgraph/forward_decls.h" } Group { diff --git a/mingw-w64-qbs-git/0003-add-generator-header-installs.1.4.patch b/mingw-w64-qbs-git/0003-add-generator-header-installs.1.4.patch index 80fec03ea6..55636ccacb 100644 --- a/mingw-w64-qbs-git/0003-add-generator-header-installs.1.4.patch +++ b/mingw-w64-qbs-git/0003-add-generator-header-installs.1.4.patch @@ -1,7 +1,7 @@ -From 88a793888577bbe132d22b9faf063065e012f52a Mon Sep 17 00:00:00 2001 +From d79061e2a4e30ff22c9c9b0528c463f3530f4efd Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 00:12:36 +0100 -Subject: [PATCH 3/5] add generator header installs +Subject: [PATCH 03/10] add generator header installs --- src/lib/corelib/api/api.pri | 1 + @@ -21,10 +21,10 @@ index 18b3b47..10d9bf8 100644 $$PWD/runenvironment.h api_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/api diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 431eb27..a77926c 100644 +index aaebae2..9b82822 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -96,6 +96,7 @@ qbs_enable_unit_tests { +@@ -98,6 +98,7 @@ qbs_enable_unit_tests { $$PWD/generateoptions.h \ $$PWD/generatorpluginmanager.h \ $$PWD/installoptions.h \ diff --git a/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch index 8b5102c88d..4194ea842a 100644 --- a/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch +++ b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch @@ -1,7 +1,7 @@ -From 2ef14c94c1bdd8d8e2094d41aca4deb5eed2ed03 Mon Sep 17 00:00:00 2001 +From f36dcd901e3606a42dda1dd74e8e1e6368065607 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 18:20:12 +0000 -Subject: [PATCH 4/5] Use .dll.a instead of .a for mingw* import libraries +Subject: [PATCH 04/10] Use .dll.a instead of .a for mingw* import libraries --- src/lib/qtprofilesetup/qtmoduleinfo.cpp | 2 +- diff --git a/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch index a6e856d76d..0d331b5d91 100644 --- a/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch +++ b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch @@ -1,7 +1,7 @@ -From 0cade11e1088af58460df3220617dd30a5a47cf1 Mon Sep 17 00:00:00 2001 +From e160accdf9b5af721e81d8f636f278b4afae4cf9 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 18:29:20 +0000 -Subject: [PATCH 5/5] setup-toolchains: Pretend msys is mingw +Subject: [PATCH 05/10] setup-toolchains: Pretend msys is mingw It's close enough and the best we've got. --- diff --git a/mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch b/mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch index 7ba509f4c0..a7fe45873e 100644 --- a/mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch +++ b/mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch @@ -1,7 +1,7 @@ -From 308fff32229b86b7a97372bee762c5c953e95958 Mon Sep 17 00:00:00 2001 +From 1bcc75efbcef91a5d894a8199e9bd35b4d818348 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 28 Apr 2015 20:46:39 +0100 -Subject: [PATCH 6/6] add commandechomode.h to installed headers +Subject: [PATCH 06/10] add commandechomode.h to installed headers .. this header is needed by qbs/tools/buildoptions.h --- @@ -9,10 +9,10 @@ Subject: [PATCH 6/6] add commandechomode.h to installed headers 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index a77926c..4106aee 100644 +index 9b82822..d5f5983 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -97,7 +97,8 @@ qbs_enable_unit_tests { +@@ -99,7 +99,8 @@ qbs_enable_unit_tests { $$PWD/generatorpluginmanager.h \ $$PWD/installoptions.h \ $$PWD/generateoptions.h \ diff --git a/mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch b/mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch new file mode 100644 index 0000000000..5af8f5900a --- /dev/null +++ b/mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch @@ -0,0 +1,71 @@ +From 5c26780dfbf5ab70650ca94a62b9416944cd9e7e Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 28 Apr 2015 21:43:17 +0100 +Subject: [PATCH 07/10] add many files to installed headers + +tools/projectgeneratormanager.h +tools/id.h +language/filetags.h +logging/logger.h +generators/generator.h +--- + src/lib/corelib/generators/generators.pri | 5 +++++ + src/lib/corelib/language/language.pri | 1 + + src/lib/corelib/logging/logging.pri | 1 + + src/lib/corelib/tools/tools.pri | 2 ++ + 4 files changed, 9 insertions(+) + +diff --git a/src/lib/corelib/generators/generators.pri b/src/lib/corelib/generators/generators.pri +index 2fa095e..4217853 100644 +--- a/src/lib/corelib/generators/generators.pri ++++ b/src/lib/corelib/generators/generators.pri +@@ -1,4 +1,9 @@ + HEADERS += \ + $$PWD/generator.h + ++!qbs_no_dev_install { ++ generators_headers.files = $$PWD/generator.h ++ generators_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/generators ++ INSTALLS += generators_headers ++ + include(xcode/xcode.pri) +diff --git a/src/lib/corelib/language/language.pri b/src/lib/corelib/language/language.pri +index 6da8536..b66643e 100644 +--- a/src/lib/corelib/language/language.pri ++++ b/src/lib/corelib/language/language.pri +@@ -68,6 +68,7 @@ qbs_enable_unit_tests { + + !qbs_no_dev_install { + language_headers.files = $$PWD/forward_decls.h ++ language_headers.files = $$PWD/filetags.h + language_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/language + INSTALLS += language_headers + } +diff --git a/src/lib/corelib/logging/logging.pri b/src/lib/corelib/logging/logging.pri +index 8c03677..0b248ca 100644 +--- a/src/lib/corelib/logging/logging.pri ++++ b/src/lib/corelib/logging/logging.pri +@@ -9,6 +9,7 @@ SOURCES += \ + + !qbs_no_dev_install { + logging_headers.files = $$PWD/ilogsink.h ++ logging_headers.files = $$PWD/logger.h + logging_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/logging + INSTALLS += logging_headers + } +diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri +index d5f5983..cc20c33 100644 +--- a/src/lib/corelib/tools/tools.pri ++++ b/src/lib/corelib/tools/tools.pri +@@ -95,6 +95,8 @@ qbs_enable_unit_tests { + $$PWD/processresult.h \ + $$PWD/qbs_export.h \ + $$PWD/buildoptions.h \ ++ $$PWD/projectgeneratormanager.h \ ++ $$PWD/id.h \ + $$PWD/generateoptions.h \ + $$PWD/generatorpluginmanager.h \ + $$PWD/installoptions.h \ +-- +2.3.5 + diff --git a/mingw-w64-qbs-git/0008-Disable-QT_NO_CAST_FROM_ASCII-due-to-Xcode-gener.1.4.patch b/mingw-w64-qbs-git/0008-Disable-QT_NO_CAST_FROM_ASCII-due-to-Xcode-gener.1.4.patch new file mode 100644 index 0000000000..4cbebc4716 --- /dev/null +++ b/mingw-w64-qbs-git/0008-Disable-QT_NO_CAST_FROM_ASCII-due-to-Xcode-gener.1.4.patch @@ -0,0 +1,24 @@ +From db8d16ce472bdf92b965ec15ff8fa7a271120b2f Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 28 Apr 2015 23:04:06 +0100 +Subject: [PATCH 08/10] Disable QT_NO_CAST_FROM_ASCII due to Xcode generator + +--- + src/lib/library.pri | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/lib/library.pri b/src/lib/library.pri +index d1bda77..0420eaa 100644 +--- a/src/lib/library.pri ++++ b/src/lib/library.pri +@@ -11,7 +11,6 @@ CONFIG(static, static|shared) { + } else { + DEFINES += QBS_LIBRARY + } +-DEFINES += QT_NO_CAST_FROM_ASCII + INCLUDEPATH += $${PWD}/../ + contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols + win32:CONFIG(debug, debug|release):TARGET = $${TARGET}d +-- +2.3.5 + diff --git a/mingw-w64-qbs-git/0009-win32-Don-t-specify-LIBS-Psapi.lib-just-psapi.1.4.patch b/mingw-w64-qbs-git/0009-win32-Don-t-specify-LIBS-Psapi.lib-just-psapi.1.4.patch new file mode 100644 index 0000000000..1c1e93cc3a --- /dev/null +++ b/mingw-w64-qbs-git/0009-win32-Don-t-specify-LIBS-Psapi.lib-just-psapi.1.4.patch @@ -0,0 +1,26 @@ +From 29afa32d86b833a2d10986fbfa497837ac5e820e Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 28 Apr 2015 23:10:54 +0100 +Subject: [PATCH 09/10] win32: Don't specify LIBS += Psapi.lib, just psapi + +--- + src/lib/corelib/corelib.pro | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/lib/corelib/corelib.pro b/src/lib/corelib/corelib.pro +index 5118cf7..bfb8db9 100644 +--- a/src/lib/corelib/corelib.pro ++++ b/src/lib/corelib/corelib.pro +@@ -21,7 +21,8 @@ include(logging/logging.pri) + include(parser/parser.pri) + include(tools/tools.pri) + +-win32:LIBS += Psapi.lib ++win32-msvc*:LIBS += Psapi.lib ++win32-g++:LIBS += -lpsapi + + HEADERS += \ + qbs.h +-- +2.3.5 + diff --git a/mingw-w64-qbs-git/0010-Disable-WIP-Xcode-generator.1.4.patch b/mingw-w64-qbs-git/0010-Disable-WIP-Xcode-generator.1.4.patch new file mode 100644 index 0000000000..a084ce083e --- /dev/null +++ b/mingw-w64-qbs-git/0010-Disable-WIP-Xcode-generator.1.4.patch @@ -0,0 +1,43 @@ +From b44370455f1bd381034cedd1c128d20fcb9ec674 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 28 Apr 2015 23:39:29 +0100 +Subject: [PATCH 10/10] Disable WIP: Xcode generator + +.. due to linking errors since it was turned +into a plugin: + +undefined reference to 'qbs::XcodeNativeGenerator::XcodeNativeGenerator()' +undefined reference to 'qbs::XcodeSimpleGenerator::XcodeSimpleGenerator()' + +I've not got the time to investigate and fix this +and Jake probably will soon enough anyway. +--- + src/lib/corelib/tools/projectgeneratormanager.cpp | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/src/lib/corelib/tools/projectgeneratormanager.cpp b/src/lib/corelib/tools/projectgeneratormanager.cpp +index f5d0f81..4c62fc0 100644 +--- a/src/lib/corelib/tools/projectgeneratormanager.cpp ++++ b/src/lib/corelib/tools/projectgeneratormanager.cpp +@@ -39,9 +39,6 @@ + #include + #include + +-#include +-#include +- + namespace qbs { + + using namespace Internal; +@@ -63,8 +60,6 @@ ProjectGeneratorManager *ProjectGeneratorManager::instance() + ProjectGeneratorManager::ProjectGeneratorManager() + { + QList > generators; +- generators << QSharedPointer::create(); +- generators << QSharedPointer::create(); + foreach (QSharedPointer generator, generators) { + m_generators[generator->generatorName()] = generator; + } +-- +2.3.5 + diff --git a/mingw-w64-qbs-git/PKGBUILD b/mingw-w64-qbs-git/PKGBUILD index 369d01f68c..aa7e7f13c6 100644 --- a/mingw-w64-qbs-git/PKGBUILD +++ b/mingw-w64-qbs-git/PKGBUILD @@ -20,7 +20,7 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=1.4.1.r2672.4d4d485 +pkgver=1.3.4.r2393.4492084 pkgrel=1 pkgdesc='Qt Build Suite' url='http://qt-project.org' @@ -30,7 +30,7 @@ makedepends=('git') options=('docs' 'staticlibs') # '!strip' 'debug') provides=("${MINGW_PACKAGE_PREFIX}-qbs") conflicts=("${MINGW_PACKAGE_PREFIX}-qbs") -QBS_GIT_BRANCH=1.4 +QBS_GIT_BRANCH=1.3 # To regenerate the patches: # git format-patch --suffix=".master.patch" -5 source=("git://gitorious.org/qt-labs/qbs.git#branch=$QBS_GIT_BRANCH" @@ -48,6 +48,10 @@ source=("git://gitorious.org/qt-labs/qbs.git#branch=$QBS_GIT_BRANCH" "0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch" "0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch" "0006-add-commandechomode.h-to-installed-headers.1.4.patch" + "0007-add-many-files-to-installed-headers.1.4.patch" + "0008-Disable-QT_NO_CAST_FROM_ASCII-due-to-Xcode-gener.1.4.patch" + "0009-win32-Don-t-specify-LIBS-Psapi.lib-just-psapi.1.4.patch" + "0010-Disable-WIP-Xcode-generator.1.4.patch" "0001-add-hostosinfo.h-to-installed-headers.1.3.4.patch" "0002-WIP-Xcode-generator.1.3.4.patch" @@ -62,12 +66,16 @@ sha256sums=('SKIP' '806c64da4c3c8e6ca4b51affe29a02d49fc303a614f34ac08bc62c66f5420ede' 'b6d35740104f67d241060e2eeb898dee93a1ea3bed3ff3248e29ca60a39b2360' '0f55b433f7390106ccb6ab3f057fdb1119eddac2af78baf292a033b402f030b3' - '88250c2b01a21a4facfa90bcc81f3dfd517c2af5ef5b775cfe3e1605568eb908' - '05c2bbbe66903a1cb04a2ec4abef2a2de3d6231c8d1adec87ee1e836ff40e21a' - '65c16bd4738608f8072fd5621f17b0b745bb00464ab9ac881a697d93df62b627' - '6b43458001e4b7cd9170e65514431370b1be5fccf2e8436cd921afe39bd59380' - 'c70a907ffc140068493a1f7fcc0a533e6afdff05120089ab37291f952e3c5c2e' - '8a1735cdc1c8fd0bb19f89c03d29e57f63ce9f829f2f55293b4a7e55983a6253' + '9cabead7ee692c5c09d7c8dd6e7b4b6b6ffa830dd256bab45f48a7aaa91d88dc' + '5d63201aba422aa2d8057dfff1ccefb5506426c9feedc41022f359811d386bdc' + '2ba9175dd757b44b00ed093759128dae71de2bee4a460c45d47851853bd510f3' + 'fdd98cd9d38e7ae6ed5cffa29140c50a84b7eee789a7f24be6d654f461efa5e5' + '551036d082f0cb4be0c62718af325e17dc5792fab96a52c7774b98c63b79e7ba' + 'b17b6276ffb1195e7f52c18176b60012e9628f1462e6a379355fb87ae755d509' + '8ea7c56251f22aeea5ca1bd93632b507547aff65e03ef9f5592508233517d796' + '83f7950453b2f1b0f082a188ff2e11f1248d04e24f03e15cf2f8287d2be76ca2' + '70b900686cadd61512f889a2e9c4f0cbe7b36d4744f9eb57e6765cbcdc705c26' + 'ef46ff74aac8aa267a8397d4c02a9481554c45f41748ef8b04ac7ef152d52f22' '761d4ff8072600aed4c2cd9b7e0963fc24ddda7ba6bca9431134111432ca6e85' '8f6f67ad1036c48efc6604e393d9d0d4c0297391bc86fc4d110995c9c0f4d191' 'caf5258899ae870d9295079046a699a98a577b18b471d245164456918f95fe4c' @@ -96,6 +104,10 @@ prepare() { git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch git am "${srcdir}"/0006-add-commandechomode.h-to-installed-headers.1.4.patch + git am "${srcdir}"/0007-add-many-files-to-installed-headers.1.4.patch + git am "${srcdir}"/0008-Disable-QT_NO_CAST_FROM_ASCII-due-to-Xcode-gener.1.4.patch + git am "${srcdir}"/0009-win32-Don-t-specify-LIBS-Psapi.lib-just-psapi.1.4.patch + git am "${srcdir}"/0010-Disable-WIP-Xcode-generator.1.4.patch elif [ "${QBS_GIT_BRANCH}" = "1.3" ]; then git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.1.3.4.patch git am "${srcdir}"/0002-WIP-Xcode-generator.1.3.4.patch diff --git a/mingw-w64-qbs/0007-add-commandechomode.h-to-installed-headers.1.4.patch b/mingw-w64-qbs/0007-add-commandechomode.h-to-installed-headers.1.4.patch new file mode 100644 index 0000000000..ea2672dbd6 --- /dev/null +++ b/mingw-w64-qbs/0007-add-commandechomode.h-to-installed-headers.1.4.patch @@ -0,0 +1,27 @@ +From 69585f66548103a8d8d18e1183839fa6fa2d903d Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 28 Apr 2015 20:46:39 +0100 +Subject: [PATCH 1/2] add commandechomode.h to installed headers + +.. this header is needed by qbs/tools/buildoptions.h +--- + src/lib/corelib/tools/tools.pri | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri +index a77926c..4106aee 100644 +--- a/src/lib/corelib/tools/tools.pri ++++ b/src/lib/corelib/tools/tools.pri +@@ -97,7 +97,8 @@ qbs_enable_unit_tests { + $$PWD/generatorpluginmanager.h \ + $$PWD/installoptions.h \ + $$PWD/generateoptions.h \ +- $$PWD/setupprojectparameters.h ++ $$PWD/setupprojectparameters.h \ ++ $$PWD/commandechomode.h + tools_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/tools + INSTALLS += tools_headers + } +-- +2.3.5 + diff --git a/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch b/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch new file mode 100644 index 0000000000..9d51e7e592 --- /dev/null +++ b/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch @@ -0,0 +1,71 @@ +From 31298c62f157de43d7f1feb42f0552a177bdb70c Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 28 Apr 2015 21:43:17 +0100 +Subject: [PATCH 2/2] add many files to installed headers + +tools/projectgeneratormanager.h +tools/id.h +language/filetags.h +logging/logger.h +generators/generator.h +--- + src/lib/corelib/generators/generators.pri | 5 +++++ + src/lib/corelib/language/language.pri | 1 + + src/lib/corelib/logging/logging.pri | 1 + + src/lib/corelib/tools/tools.pri | 2 ++ + 4 files changed, 9 insertions(+) + +diff --git a/src/lib/corelib/generators/generators.pri b/src/lib/corelib/generators/generators.pri +index 2fa095e..4217853 100644 +--- a/src/lib/corelib/generators/generators.pri ++++ b/src/lib/corelib/generators/generators.pri +@@ -1,4 +1,9 @@ + HEADERS += \ + $$PWD/generator.h + ++!qbs_no_dev_install { ++ generators_headers.files = $$PWD/generator.h ++ generators_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/generators ++ INSTALLS += generators_headers ++ + include(xcode/xcode.pri) +diff --git a/src/lib/corelib/language/language.pri b/src/lib/corelib/language/language.pri +index 6da8536..b66643e 100644 +--- a/src/lib/corelib/language/language.pri ++++ b/src/lib/corelib/language/language.pri +@@ -68,6 +68,7 @@ qbs_enable_unit_tests { + + !qbs_no_dev_install { + language_headers.files = $$PWD/forward_decls.h ++ language_headers.files = $$PWD/filetags.h + language_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/language + INSTALLS += language_headers + } +diff --git a/src/lib/corelib/logging/logging.pri b/src/lib/corelib/logging/logging.pri +index 8c03677..0b248ca 100644 +--- a/src/lib/corelib/logging/logging.pri ++++ b/src/lib/corelib/logging/logging.pri +@@ -9,6 +9,7 @@ SOURCES += \ + + !qbs_no_dev_install { + logging_headers.files = $$PWD/ilogsink.h ++ logging_headers.files = $$PWD/logger.h + logging_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/logging + INSTALLS += logging_headers + } +diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri +index 4106aee..1de121e 100644 +--- a/src/lib/corelib/tools/tools.pri ++++ b/src/lib/corelib/tools/tools.pri +@@ -93,6 +93,8 @@ qbs_enable_unit_tests { + $$PWD/processresult.h \ + $$PWD/qbs_export.h \ + $$PWD/buildoptions.h \ ++ $$PWD/projectgeneratormanager.h \ ++ $$PWD/id.h \ + $$PWD/generateoptions.h \ + $$PWD/generatorpluginmanager.h \ + $$PWD/installoptions.h \ +-- +2.3.5 + diff --git a/mingw-w64-qbs/0009-Disable-WIP-Xcode-generator.1.4.patch b/mingw-w64-qbs/0009-Disable-WIP-Xcode-generator.1.4.patch new file mode 100644 index 0000000000..a084ce083e --- /dev/null +++ b/mingw-w64-qbs/0009-Disable-WIP-Xcode-generator.1.4.patch @@ -0,0 +1,43 @@ +From b44370455f1bd381034cedd1c128d20fcb9ec674 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 28 Apr 2015 23:39:29 +0100 +Subject: [PATCH 10/10] Disable WIP: Xcode generator + +.. due to linking errors since it was turned +into a plugin: + +undefined reference to 'qbs::XcodeNativeGenerator::XcodeNativeGenerator()' +undefined reference to 'qbs::XcodeSimpleGenerator::XcodeSimpleGenerator()' + +I've not got the time to investigate and fix this +and Jake probably will soon enough anyway. +--- + src/lib/corelib/tools/projectgeneratormanager.cpp | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/src/lib/corelib/tools/projectgeneratormanager.cpp b/src/lib/corelib/tools/projectgeneratormanager.cpp +index f5d0f81..4c62fc0 100644 +--- a/src/lib/corelib/tools/projectgeneratormanager.cpp ++++ b/src/lib/corelib/tools/projectgeneratormanager.cpp +@@ -39,9 +39,6 @@ + #include + #include + +-#include +-#include +- + namespace qbs { + + using namespace Internal; +@@ -63,8 +60,6 @@ ProjectGeneratorManager *ProjectGeneratorManager::instance() + ProjectGeneratorManager::ProjectGeneratorManager() + { + QList > generators; +- generators << QSharedPointer::create(); +- generators << QSharedPointer::create(); + foreach (QSharedPointer generator, generators) { + m_generators[generator->generatorName()] = generator; + } +-- +2.3.5 + diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index e3b61b2921..fd9b9adc72 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -22,7 +22,7 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.0 -pkgrel=1 +pkgrel=2 _pkgfqn="${_realname}-${pkgver}.src" pkgdesc='Qt Build Suite' url='http://qt-project.org' @@ -38,7 +38,10 @@ source=("http://download.qt-project.org/official_releases/qbs/${pkgver}/${_pkgfq "0003-add-generator-header-installs.1.4.patch" "0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch" "0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch" - "0006-Add-some-missing-files.1.4.patch") + "0006-Add-some-missing-files.1.4.patch" + "0007-add-commandechomode.h-to-installed-headers.1.4.patch" + "0008-add-many-files-to-installed-headers.1.4.patch" + "0009-Disable-WIP-Xcode-generator.1.4.patch") sha256sums=('d384d0368c3e32ab3bdd9d85c96bb037aa1f650e77326ab5cd400a38cfef33f3' '838098b25a8044176b3139b4003594570c62a8d64f5470fbbd769f3bf44e0855' '55a48d077aa3f2274639cba2d4ad99f85db2351b22c8b307535b1c6df6daf594' @@ -46,7 +49,10 @@ sha256sums=('d384d0368c3e32ab3bdd9d85c96bb037aa1f650e77326ab5cd400a38cfef33f3' '12a4efc62b04ca4b157f3154589b7516d5a650388dc30eec8b107c6a087f0b81' '6daa43c65e4ac440470687a31c74ab6d4bdcfa0fb3c195678e62a9f800356b1a' '5002df9cb3ad3451db92918a4b74bb05237648d8697faf8894d96b51cb7faa8a' - '40d53fca4e80ab63baa8649bae43882daf2c91de22412c71dec712ac59f4a39e') + '40d53fca4e80ab63baa8649bae43882daf2c91de22412c71dec712ac59f4a39e' + 'df453adffd85dfdefef285a2594da9d83ad22eaeddcf2f3f13fb66cbd32bfd32' + 'b12384e7450d8570a91d39ed0a69c5cb0c24257d0b17a18cc6bd66716f09e94b' + 'ef46ff74aac8aa267a8397d4c02a9481554c45f41748ef8b04ac7ef152d52f22') prepare() { cd ${_realname}-${pkgver} @@ -66,6 +72,9 @@ prepare() { git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch git am "${srcdir}"/0006-Add-some-missing-files.1.4.patch + git am "${srcdir}"/0007-add-commandechomode.h-to-installed-headers.1.4.patch + git am "${srcdir}"/0008-add-many-files-to-installed-headers.1.4.patch + git am "${srcdir}"/0009-Disable-WIP-Xcode-generator.1.4.patch } build() { From 8f727325c3c95de4f8994265736b4062be1cb790 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 29 Apr 2015 01:13:39 +0100 Subject: [PATCH 0941/2060] qbs + qbs-git: Fix for installing headers --- ...ostosinfo.h-to-installed-headers.1.4.patch | 2 +- .../0002-WIP-Xcode-generator.1.4.patch | 2 +- ...03-add-generator-header-installs.1.4.patch | 2 +- ...ad-of-.a-for-mingw-import-librar.1.4.patch | 2 +- ...toolchains-Pretend-msys-is-mingw.1.4.patch | 2 +- ...dechomode.h-to-installed-headers.1.4.patch | 2 +- ...-many-files-to-installed-headers.1.4.patch | 28 ++++++++------- ...ST_FROM_ASCII-due-to-Xcode-gener.1.4.patch | 2 +- ...pecify-LIBS-Psapi.lib-just-psapi.1.4.patch | 2 +- ...0010-Disable-WIP-Xcode-generator.1.4.patch | 2 +- mingw-w64-qbs-git/PKGBUILD | 24 ++++++------- ...-many-files-to-installed-headers.1.4.patch | 34 +++++++++++-------- mingw-w64-qbs/PKGBUILD | 2 +- 13 files changed, 57 insertions(+), 49 deletions(-) diff --git a/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch index 06e8ce610c..f2fea28678 100644 --- a/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch +++ b/mingw-w64-qbs-git/0001-add-hostosinfo.h-to-installed-headers.1.4.patch @@ -1,4 +1,4 @@ -From 0a38483fe9ab155f2a300be51108957202181bbf Mon Sep 17 00:00:00 2001 +From bffdb29097c0ca14abf104c7c3f7b1a2828829e6 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 12:19:52 +0100 Subject: [PATCH 01/10] add hostosinfo.h to installed headers diff --git a/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch index 7d360dfa57..4fc1826849 100644 --- a/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch +++ b/mingw-w64-qbs-git/0002-WIP-Xcode-generator.1.4.patch @@ -1,4 +1,4 @@ -From 8e27fb97463ca14e44127468f76e961a55fd21a2 Mon Sep 17 00:00:00 2001 +From 6545923f08c0afa38fbf6fc95960d4b106941021 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Wed, 18 Feb 2015 09:05:29 -0800 Subject: [PATCH 02/10] WIP: Xcode generator. diff --git a/mingw-w64-qbs-git/0003-add-generator-header-installs.1.4.patch b/mingw-w64-qbs-git/0003-add-generator-header-installs.1.4.patch index 55636ccacb..6fee6f8034 100644 --- a/mingw-w64-qbs-git/0003-add-generator-header-installs.1.4.patch +++ b/mingw-w64-qbs-git/0003-add-generator-header-installs.1.4.patch @@ -1,4 +1,4 @@ -From d79061e2a4e30ff22c9c9b0528c463f3530f4efd Mon Sep 17 00:00:00 2001 +From 5e56616ff06c01bbf0a6f246ce51e037f203ecfb Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 18 Aug 2014 00:12:36 +0100 Subject: [PATCH 03/10] add generator header installs diff --git a/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch index 4194ea842a..acb2e36b07 100644 --- a/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch +++ b/mingw-w64-qbs-git/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch @@ -1,4 +1,4 @@ -From f36dcd901e3606a42dda1dd74e8e1e6368065607 Mon Sep 17 00:00:00 2001 +From f3eec857361c15f9a685d608fc6ff8855fef0baa Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 18:20:12 +0000 Subject: [PATCH 04/10] Use .dll.a instead of .a for mingw* import libraries diff --git a/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch index 0d331b5d91..6d96b3180c 100644 --- a/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch +++ b/mingw-w64-qbs-git/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch @@ -1,4 +1,4 @@ -From e160accdf9b5af721e81d8f636f278b4afae4cf9 Mon Sep 17 00:00:00 2001 +From 77f364bcb243b4db85df023a50f5d8a986a5f570 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 29 Nov 2014 18:29:20 +0000 Subject: [PATCH 05/10] setup-toolchains: Pretend msys is mingw diff --git a/mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch b/mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch index a7fe45873e..bb0900afcf 100644 --- a/mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch +++ b/mingw-w64-qbs-git/0006-add-commandechomode.h-to-installed-headers.1.4.patch @@ -1,4 +1,4 @@ -From 1bcc75efbcef91a5d894a8199e9bd35b4d818348 Mon Sep 17 00:00:00 2001 +From bb9f1cef7689dc566b13b402a7509f8ed3b4f504 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 28 Apr 2015 20:46:39 +0100 Subject: [PATCH 06/10] add commandechomode.h to installed headers diff --git a/mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch b/mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch index 5af8f5900a..b68af629fd 100644 --- a/mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch +++ b/mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch @@ -1,4 +1,4 @@ -From 5c26780dfbf5ab70650ca94a62b9416944cd9e7e Mon Sep 17 00:00:00 2001 +From 7b028bd667664bf2bc5c681929f90c2c5fbf7c44 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 28 Apr 2015 21:43:17 +0100 Subject: [PATCH 07/10] add many files to installed headers @@ -10,10 +10,10 @@ logging/logger.h generators/generator.h --- src/lib/corelib/generators/generators.pri | 5 +++++ - src/lib/corelib/language/language.pri | 1 + - src/lib/corelib/logging/logging.pri | 1 + + src/lib/corelib/language/language.pri | 3 ++- + src/lib/corelib/logging/logging.pri | 3 ++- src/lib/corelib/tools/tools.pri | 2 ++ - 4 files changed, 9 insertions(+) + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lib/corelib/generators/generators.pri b/src/lib/corelib/generators/generators.pri index 2fa095e..4217853 100644 @@ -30,26 +30,30 @@ index 2fa095e..4217853 100644 + include(xcode/xcode.pri) diff --git a/src/lib/corelib/language/language.pri b/src/lib/corelib/language/language.pri -index 6da8536..b66643e 100644 +index 6da8536..4f8f2ba 100644 --- a/src/lib/corelib/language/language.pri +++ b/src/lib/corelib/language/language.pri -@@ -68,6 +68,7 @@ qbs_enable_unit_tests { +@@ -67,7 +67,8 @@ qbs_enable_unit_tests { + } !qbs_no_dev_install { - language_headers.files = $$PWD/forward_decls.h -+ language_headers.files = $$PWD/filetags.h +- language_headers.files = $$PWD/forward_decls.h ++ language_headers.files = $$PWD/forward_decls.h \ ++ $$PWD/filetags.h language_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/language INSTALLS += language_headers } diff --git a/src/lib/corelib/logging/logging.pri b/src/lib/corelib/logging/logging.pri -index 8c03677..0b248ca 100644 +index 8c03677..c09ba11 100644 --- a/src/lib/corelib/logging/logging.pri +++ b/src/lib/corelib/logging/logging.pri -@@ -9,6 +9,7 @@ SOURCES += \ +@@ -8,7 +8,8 @@ SOURCES += \ + $$PWD/ilogsink.cpp !qbs_no_dev_install { - logging_headers.files = $$PWD/ilogsink.h -+ logging_headers.files = $$PWD/logger.h +- logging_headers.files = $$PWD/ilogsink.h ++ logging_headers.files = $$PWD/ilogsink.h \ ++ $$PWD/logger.h logging_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/logging INSTALLS += logging_headers } diff --git a/mingw-w64-qbs-git/0008-Disable-QT_NO_CAST_FROM_ASCII-due-to-Xcode-gener.1.4.patch b/mingw-w64-qbs-git/0008-Disable-QT_NO_CAST_FROM_ASCII-due-to-Xcode-gener.1.4.patch index 4cbebc4716..f963e18eae 100644 --- a/mingw-w64-qbs-git/0008-Disable-QT_NO_CAST_FROM_ASCII-due-to-Xcode-gener.1.4.patch +++ b/mingw-w64-qbs-git/0008-Disable-QT_NO_CAST_FROM_ASCII-due-to-Xcode-gener.1.4.patch @@ -1,4 +1,4 @@ -From db8d16ce472bdf92b965ec15ff8fa7a271120b2f Mon Sep 17 00:00:00 2001 +From 23ee3100173526c9d0690c1be3eec29df2f16b21 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 28 Apr 2015 23:04:06 +0100 Subject: [PATCH 08/10] Disable QT_NO_CAST_FROM_ASCII due to Xcode generator diff --git a/mingw-w64-qbs-git/0009-win32-Don-t-specify-LIBS-Psapi.lib-just-psapi.1.4.patch b/mingw-w64-qbs-git/0009-win32-Don-t-specify-LIBS-Psapi.lib-just-psapi.1.4.patch index 1c1e93cc3a..3609186859 100644 --- a/mingw-w64-qbs-git/0009-win32-Don-t-specify-LIBS-Psapi.lib-just-psapi.1.4.patch +++ b/mingw-w64-qbs-git/0009-win32-Don-t-specify-LIBS-Psapi.lib-just-psapi.1.4.patch @@ -1,4 +1,4 @@ -From 29afa32d86b833a2d10986fbfa497837ac5e820e Mon Sep 17 00:00:00 2001 +From 7f31d5bf93bdbc10ace282b0736d9db68ec4662c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 28 Apr 2015 23:10:54 +0100 Subject: [PATCH 09/10] win32: Don't specify LIBS += Psapi.lib, just psapi diff --git a/mingw-w64-qbs-git/0010-Disable-WIP-Xcode-generator.1.4.patch b/mingw-w64-qbs-git/0010-Disable-WIP-Xcode-generator.1.4.patch index a084ce083e..73f5136794 100644 --- a/mingw-w64-qbs-git/0010-Disable-WIP-Xcode-generator.1.4.patch +++ b/mingw-w64-qbs-git/0010-Disable-WIP-Xcode-generator.1.4.patch @@ -1,4 +1,4 @@ -From b44370455f1bd381034cedd1c128d20fcb9ec674 Mon Sep 17 00:00:00 2001 +From 44c9f185997a20cb493070260cf7206e47585f0e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 28 Apr 2015 23:39:29 +0100 Subject: [PATCH 10/10] Disable WIP: Xcode generator diff --git a/mingw-w64-qbs-git/PKGBUILD b/mingw-w64-qbs-git/PKGBUILD index aa7e7f13c6..87968a593a 100644 --- a/mingw-w64-qbs-git/PKGBUILD +++ b/mingw-w64-qbs-git/PKGBUILD @@ -20,7 +20,7 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=1.3.4.r2393.4492084 +pkgver=1.4.1.r2684.e31bbe7 pkgrel=1 pkgdesc='Qt Build Suite' url='http://qt-project.org' @@ -30,7 +30,7 @@ makedepends=('git') options=('docs' 'staticlibs') # '!strip' 'debug') provides=("${MINGW_PACKAGE_PREFIX}-qbs") conflicts=("${MINGW_PACKAGE_PREFIX}-qbs") -QBS_GIT_BRANCH=1.3 +QBS_GIT_BRANCH=1.4 # To regenerate the patches: # git format-patch --suffix=".master.patch" -5 source=("git://gitorious.org/qt-labs/qbs.git#branch=$QBS_GIT_BRANCH" @@ -66,16 +66,16 @@ sha256sums=('SKIP' '806c64da4c3c8e6ca4b51affe29a02d49fc303a614f34ac08bc62c66f5420ede' 'b6d35740104f67d241060e2eeb898dee93a1ea3bed3ff3248e29ca60a39b2360' '0f55b433f7390106ccb6ab3f057fdb1119eddac2af78baf292a033b402f030b3' - '9cabead7ee692c5c09d7c8dd6e7b4b6b6ffa830dd256bab45f48a7aaa91d88dc' - '5d63201aba422aa2d8057dfff1ccefb5506426c9feedc41022f359811d386bdc' - '2ba9175dd757b44b00ed093759128dae71de2bee4a460c45d47851853bd510f3' - 'fdd98cd9d38e7ae6ed5cffa29140c50a84b7eee789a7f24be6d654f461efa5e5' - '551036d082f0cb4be0c62718af325e17dc5792fab96a52c7774b98c63b79e7ba' - 'b17b6276ffb1195e7f52c18176b60012e9628f1462e6a379355fb87ae755d509' - '8ea7c56251f22aeea5ca1bd93632b507547aff65e03ef9f5592508233517d796' - '83f7950453b2f1b0f082a188ff2e11f1248d04e24f03e15cf2f8287d2be76ca2' - '70b900686cadd61512f889a2e9c4f0cbe7b36d4744f9eb57e6765cbcdc705c26' - 'ef46ff74aac8aa267a8397d4c02a9481554c45f41748ef8b04ac7ef152d52f22' + '50234e277e672343640e07ee351cba431446fd74d5eb75333bd31e99429fa833' + 'ca9483940e00a43323ffb8eb6dffdc6f3a663f6368fc328da94c1f89a9ab3c4f' + 'c0fd295fef9e76c2ec53481d4f86c894f28151b87b3c419f3dce6a7a48684cc0' + '83609121b37910adce580ad725cabd96086ef952eeb1c3f5aee6adbf16bb292b' + 'c194d3fa40d40ff40210161aaa0b73b55756c3b6ae3d53920f826e15ae8b5f7d' + '0934208fe75e34a3086d4b145f90fc53559b654140d3f1282d3fb87df3180ede' + '3a7c39b522f17ff91b627ea535b9852ed4f85fd48f9018d65c4b835e09099d50' + 'ffddbaec699bd8e9d64ff3065e1c9905f80956b68f17faac7785c518f941b00e' + '4f814f8e89f33b7b699685deaa4682e8949ac5302a916484d2c0eb5e6e81d55d' + '13e908e99c9a421d19ad788d51aaadfd7f0b0a6543bd116151f166145f3983ae' '761d4ff8072600aed4c2cd9b7e0963fc24ddda7ba6bca9431134111432ca6e85' '8f6f67ad1036c48efc6604e393d9d0d4c0297391bc86fc4d110995c9c0f4d191' 'caf5258899ae870d9295079046a699a98a577b18b471d245164456918f95fe4c' diff --git a/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch b/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch index 9d51e7e592..b68af629fd 100644 --- a/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch +++ b/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch @@ -1,7 +1,7 @@ -From 31298c62f157de43d7f1feb42f0552a177bdb70c Mon Sep 17 00:00:00 2001 +From 7b028bd667664bf2bc5c681929f90c2c5fbf7c44 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 28 Apr 2015 21:43:17 +0100 -Subject: [PATCH 2/2] add many files to installed headers +Subject: [PATCH 07/10] add many files to installed headers tools/projectgeneratormanager.h tools/id.h @@ -10,10 +10,10 @@ logging/logger.h generators/generator.h --- src/lib/corelib/generators/generators.pri | 5 +++++ - src/lib/corelib/language/language.pri | 1 + - src/lib/corelib/logging/logging.pri | 1 + + src/lib/corelib/language/language.pri | 3 ++- + src/lib/corelib/logging/logging.pri | 3 ++- src/lib/corelib/tools/tools.pri | 2 ++ - 4 files changed, 9 insertions(+) + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lib/corelib/generators/generators.pri b/src/lib/corelib/generators/generators.pri index 2fa095e..4217853 100644 @@ -30,34 +30,38 @@ index 2fa095e..4217853 100644 + include(xcode/xcode.pri) diff --git a/src/lib/corelib/language/language.pri b/src/lib/corelib/language/language.pri -index 6da8536..b66643e 100644 +index 6da8536..4f8f2ba 100644 --- a/src/lib/corelib/language/language.pri +++ b/src/lib/corelib/language/language.pri -@@ -68,6 +68,7 @@ qbs_enable_unit_tests { +@@ -67,7 +67,8 @@ qbs_enable_unit_tests { + } !qbs_no_dev_install { - language_headers.files = $$PWD/forward_decls.h -+ language_headers.files = $$PWD/filetags.h +- language_headers.files = $$PWD/forward_decls.h ++ language_headers.files = $$PWD/forward_decls.h \ ++ $$PWD/filetags.h language_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/language INSTALLS += language_headers } diff --git a/src/lib/corelib/logging/logging.pri b/src/lib/corelib/logging/logging.pri -index 8c03677..0b248ca 100644 +index 8c03677..c09ba11 100644 --- a/src/lib/corelib/logging/logging.pri +++ b/src/lib/corelib/logging/logging.pri -@@ -9,6 +9,7 @@ SOURCES += \ +@@ -8,7 +8,8 @@ SOURCES += \ + $$PWD/ilogsink.cpp !qbs_no_dev_install { - logging_headers.files = $$PWD/ilogsink.h -+ logging_headers.files = $$PWD/logger.h +- logging_headers.files = $$PWD/ilogsink.h ++ logging_headers.files = $$PWD/ilogsink.h \ ++ $$PWD/logger.h logging_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/logging INSTALLS += logging_headers } diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 4106aee..1de121e 100644 +index d5f5983..cc20c33 100644 --- a/src/lib/corelib/tools/tools.pri +++ b/src/lib/corelib/tools/tools.pri -@@ -93,6 +93,8 @@ qbs_enable_unit_tests { +@@ -95,6 +95,8 @@ qbs_enable_unit_tests { $$PWD/processresult.h \ $$PWD/qbs_export.h \ $$PWD/buildoptions.h \ diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index fd9b9adc72..e618f8db81 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -51,7 +51,7 @@ sha256sums=('d384d0368c3e32ab3bdd9d85c96bb037aa1f650e77326ab5cd400a38cfef33f3' '5002df9cb3ad3451db92918a4b74bb05237648d8697faf8894d96b51cb7faa8a' '40d53fca4e80ab63baa8649bae43882daf2c91de22412c71dec712ac59f4a39e' 'df453adffd85dfdefef285a2594da9d83ad22eaeddcf2f3f13fb66cbd32bfd32' - 'b12384e7450d8570a91d39ed0a69c5cb0c24257d0b17a18cc6bd66716f09e94b' + '3a7c39b522f17ff91b627ea535b9852ed4f85fd48f9018d65c4b835e09099d50' 'ef46ff74aac8aa267a8397d4c02a9481554c45f41748ef8b04ac7ef152d52f22') prepare() { From 3310b4c5cbc77a82aabea95cc5b6ab708c479428 Mon Sep 17 00:00:00 2001 From: Alexander Shukaev Date: Wed, 29 Apr 2015 11:48:05 +0200 Subject: [PATCH 0942/2060] conemu: New package --- mingw-w64-conemu-git/ConEmu.cpp.diff | 24 - mingw-w64-conemu-git/ConEmu.xml | 1221 ++++++++++++------------ mingw-w64-conemu-git/ConfirmDlg.h.diff | 121 --- mingw-w64-conemu-git/PKGBUILD | 84 +- mingw-w64-conemu/ConEmu.xml | 601 ++++++++++++ mingw-w64-conemu/PKGBUILD | 37 + 6 files changed, 1267 insertions(+), 821 deletions(-) delete mode 100644 mingw-w64-conemu-git/ConEmu.cpp.diff delete mode 100644 mingw-w64-conemu-git/ConfirmDlg.h.diff create mode 100644 mingw-w64-conemu/ConEmu.xml create mode 100644 mingw-w64-conemu/PKGBUILD diff --git a/mingw-w64-conemu-git/ConEmu.cpp.diff b/mingw-w64-conemu-git/ConEmu.cpp.diff deleted file mode 100644 index c00e54177e..0000000000 --- a/mingw-w64-conemu-git/ConEmu.cpp.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- src/ConEmu/ConEmu.cpp.orig 2014-11-09 02:31:01.456287600 +0100 -+++ src/ConEmu/ConEmu.cpp 2014-11-09 02:29:15.901296900 +0100 -@@ -938,7 +937,7 @@ - } - } - -- if (*szRequired || *szRecommended) -+ if (*szRequired) - { - size_t cchMax = _tcslen(szRequired) + _tcslen(szRecommended) + _tcslen(ms_ConEmuExe) + 255; - wchar_t* pszMsg = (wchar_t*)calloc(cchMax, sizeof(*pszMsg)); -@@ -951,12 +950,6 @@ - _wcscat_c(pszMsg, cchMax, szRequired); - _wcscat_c(pszMsg, cchMax, L"\n\n"); - } -- if (*szRecommended) -- { -- _wcscat_c(pszMsg, cchMax, L"Recommended files not found!\n"); -- _wcscat_c(pszMsg, cchMax, szRecommended); -- _wcscat_c(pszMsg, cchMax, L"\n\n"); -- } - _wcscat_c(pszMsg, cchMax, L"ConEmu was started from:\n"); - _wcscat_c(pszMsg, cchMax, ms_ConEmuExe); - _wcscat_c(pszMsg, cchMax, L"\n"); diff --git a/mingw-w64-conemu-git/ConEmu.xml b/mingw-w64-conemu-git/ConEmu.xml index 11046f0a63..8f1250a84e 100644 --- a/mingw-w64-conemu-git/ConEmu.xml +++ b/mingw-w64-conemu-git/ConEmu.xml @@ -1,626 +1,601 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mingw-w64-conemu-git/ConfirmDlg.h.diff b/mingw-w64-conemu-git/ConfirmDlg.h.diff deleted file mode 100644 index d9eee4cbfb..0000000000 --- a/mingw-w64-conemu-git/ConfirmDlg.h.diff +++ /dev/null @@ -1,121 +0,0 @@ ---- src/ConEmu/ConfirmDlg.h.orig 2014-11-09 02:16:29.755076500 +0100 -+++ src/ConEmu/ConfirmDlg.h 2014-11-09 02:17:16.373513900 +0100 -@@ -47,118 +46,4 @@ - }; - int ConfirmCloseConsoles(const ConfirmCloseParam& Parm); - --#ifdef __GNUC__ -- --enum _TASKDIALOG_FLAGS --{ -- TDF_ENABLE_HYPERLINKS = 0x0001, -- TDF_USE_HICON_MAIN = 0x0002, -- TDF_USE_HICON_FOOTER = 0x0004, -- TDF_ALLOW_DIALOG_CANCELLATION = 0x0008, -- TDF_USE_COMMAND_LINKS = 0x0010, -- TDF_USE_COMMAND_LINKS_NO_ICON = 0x0020, -- TDF_EXPAND_FOOTER_AREA = 0x0040, -- TDF_EXPANDED_BY_DEFAULT = 0x0080, -- TDF_VERIFICATION_FLAG_CHECKED = 0x0100, -- TDF_SHOW_PROGRESS_BAR = 0x0200, -- TDF_SHOW_MARQUEE_PROGRESS_BAR = 0x0400, -- TDF_CALLBACK_TIMER = 0x0800, -- TDF_POSITION_RELATIVE_TO_WINDOW = 0x1000, -- TDF_RTL_LAYOUT = 0x2000, -- TDF_NO_DEFAULT_RADIO_BUTTON = 0x4000, -- TDF_CAN_BE_MINIMIZED = 0x8000 --}; --typedef int TASKDIALOG_FLAGS; // Note: _TASKDIALOG_FLAGS is an int -- --enum _TASKDIALOG_COMMON_BUTTON_FLAGS --{ -- TDCBF_OK_BUTTON = 0x0001, // selected control return value IDOK -- TDCBF_YES_BUTTON = 0x0002, // selected control return value IDYES -- TDCBF_NO_BUTTON = 0x0004, // selected control return value IDNO -- TDCBF_CANCEL_BUTTON = 0x0008, // selected control return value IDCANCEL -- TDCBF_RETRY_BUTTON = 0x0010, // selected control return value IDRETRY -- TDCBF_CLOSE_BUTTON = 0x0020 // selected control return value IDCLOSE --}; --typedef int TASKDIALOG_COMMON_BUTTON_FLAGS; // Note: _TASKDIALOG_COMMON_BUTTON_FLAGS is an int -- --typedef enum _TASKDIALOG_MESSAGES --{ -- TDM_NAVIGATE_PAGE = WM_USER+101, -- TDM_CLICK_BUTTON = WM_USER+102, // wParam = Button ID -- TDM_SET_MARQUEE_PROGRESS_BAR = WM_USER+103, // wParam = 0 (nonMarque) wParam != 0 (Marquee) -- TDM_SET_PROGRESS_BAR_STATE = WM_USER+104, // wParam = new progress state -- TDM_SET_PROGRESS_BAR_RANGE = WM_USER+105, // lParam = MAKELPARAM(nMinRange, nMaxRange) -- TDM_SET_PROGRESS_BAR_POS = WM_USER+106, // wParam = new position -- TDM_SET_PROGRESS_BAR_MARQUEE = WM_USER+107, // wParam = 0 (stop marquee), wParam != 0 (start marquee), lparam = speed (milliseconds between repaints) -- TDM_SET_ELEMENT_TEXT = WM_USER+108, // wParam = element (TASKDIALOG_ELEMENTS), lParam = new element text (LPCWSTR) -- TDM_CLICK_RADIO_BUTTON = WM_USER+110, // wParam = Radio Button ID -- TDM_ENABLE_BUTTON = WM_USER+111, // lParam = 0 (disable), lParam != 0 (enable), wParam = Button ID -- TDM_ENABLE_RADIO_BUTTON = WM_USER+112, // lParam = 0 (disable), lParam != 0 (enable), wParam = Radio Button ID -- TDM_CLICK_VERIFICATION = WM_USER+113, // wParam = 0 (unchecked), 1 (checked), lParam = 1 (set key focus) -- TDM_UPDATE_ELEMENT_TEXT = WM_USER+114, // wParam = element (TASKDIALOG_ELEMENTS), lParam = new element text (LPCWSTR) -- TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE = WM_USER+115, // wParam = Button ID, lParam = 0 (elevation not required), lParam != 0 (elevation required) -- TDM_UPDATE_ICON = WM_USER+116 // wParam = icon element (TASKDIALOG_ICON_ELEMENTS), lParam = new icon (hIcon if TDF_USE_HICON_* was set, PCWSTR otherwise) --} TASKDIALOG_MESSAGES; -- --typedef enum _TASKDIALOG_NOTIFICATIONS --{ -- TDN_CREATED = 0, -- TDN_NAVIGATED = 1, -- TDN_BUTTON_CLICKED = 2, // wParam = Button ID -- TDN_HYPERLINK_CLICKED = 3, // lParam = (LPCWSTR)pszHREF -- TDN_TIMER = 4, // wParam = Milliseconds since dialog created or timer reset -- TDN_DESTROYED = 5, -- TDN_RADIO_BUTTON_CLICKED = 6, // wParam = Radio Button ID -- TDN_DIALOG_CONSTRUCTED = 7, -- TDN_VERIFICATION_CLICKED = 8, // wParam = 1 if checkbox checked, 0 if not, lParam is unused and always 0 -- TDN_HELP = 9, -- TDN_EXPANDO_BUTTON_CLICKED = 10 // wParam = 0 (dialog is now collapsed), wParam != 0 (dialog is now expanded) --} TASKDIALOG_NOTIFICATIONS; -- --typedef struct _TASKDIALOG_BUTTON --{ -- int nButtonID; -- PCWSTR pszButtonText; --} TASKDIALOG_BUTTON; -- --typedef HRESULT (WINAPI *PFTASKDIALOGCALLBACK)( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, LONG_PTR lpRefData); -- --typedef struct _TASKDIALOGCONFIG --{ -- UINT cbSize; -- HWND hwndParent; -- HINSTANCE hInstance; // used for MAKEINTRESOURCE() strings -- TASKDIALOG_FLAGS dwFlags; // TASKDIALOG_FLAGS (TDF_XXX) flags -- TASKDIALOG_COMMON_BUTTON_FLAGS dwCommonButtons; // TASKDIALOG_COMMON_BUTTON (TDCBF_XXX) flags -- PCWSTR pszWindowTitle; // string or MAKEINTRESOURCE() -- union -- { -- HICON hMainIcon; -- PCWSTR pszMainIcon; -- } DUMMYUNIONNAME; -- PCWSTR pszMainInstruction; -- PCWSTR pszContent; -- UINT cButtons; -- const TASKDIALOG_BUTTON *pButtons; -- int nDefaultButton; -- UINT cRadioButtons; -- const TASKDIALOG_BUTTON *pRadioButtons; -- int nDefaultRadioButton; -- PCWSTR pszVerificationText; -- PCWSTR pszExpandedInformation; -- PCWSTR pszExpandedControlText; -- PCWSTR pszCollapsedControlText; -- union -- { -- HICON hFooterIcon; -- PCWSTR pszFooterIcon; -- } DUMMYUNIONNAME2; -- PCWSTR pszFooter; -- PFTASKDIALOGCALLBACK pfCallback; -- LONG_PTR lpCallbackData; -- UINT cxWidth; // width of the Task Dialog's client area in DLU's. If 0, Task Dialog will calculate the ideal width. --} TASKDIALOGCONFIG; -- --#endif -- - HRESULT TaskDialog(TASKDIALOGCONFIG *pTaskConfig, int *pnButton, int *pnRadioButton, bool *pfVerificationFlagChecked); diff --git a/mingw-w64-conemu-git/PKGBUILD b/mingw-w64-conemu-git/PKGBUILD index 0f145c9a22..1b94476fee 100644 --- a/mingw-w64-conemu-git/PKGBUILD +++ b/mingw-w64-conemu-git/PKGBUILD @@ -1,60 +1,38 @@ -# Maintainer: Martell Malone -# Contributer: Haroogan +# Maintainer: Haroogan +# Contributer: Martell Malone -_name='conemu' -pkgname="${MINGW_PACKAGE_PREFIX}-${_name}-git" -pkgver=r1093.261fe53 -pkgrel=2 -pkgdesc="Customizable Windows console emulator with tabs." -url="http://code.google.com/p/${_name}-maximus5/" -license=( - 'BSD New' -) -arch=( - 'any' -) -conflicts=( - "${MINGW_PACKAGE_PREFIX}-${_name}" -) -makedepends=( - "${MINGW_PACKAGE_PREFIX}-gcc" - "git" -) -options=( - '!strip' - 'staticlibs' -) -source=( - "${_name}"::"git+http://github.com/martell/ConEmu.git#branch=mingw64" - 'ConEmu.xml' - 'ConEmu.cpp.diff' - 'ConfirmDlg.h.diff' -) -sha256sums=( - 'SKIP' - 'SKIP' - '5352992b27005f6d2ca5c8cc9aaff86ee6069c8d961d805912c0f1e00fede429' - '18b8c48218a6f2955b09e0c47e5c772875bf5f2ed07a63bcd21a727c26f4fd46' -) +_realname='conemu' +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=r3199.5dc44c0 +pkgrel=1 +pkgdesc="Customizable Windows console emulator with tabs (mingw-w64)" +url="http://code.google.com/p/${_realname}-maximus5/" +license=('BSD New') +arch=('any') +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "git") +# CAUTION: +# Don't remove `!strip' option! Otherwise, 64-bit version of ConEmu will signal +# errors at startup. +options=('!strip' + 'staticlibs') +source=("${_realname}"::"git+http://github.com/Haroogan/ConEmu.git#branch=msys2" + 'ConEmu.xml') +sha256sums=('SKIP' + '84c201cf676aae844a5c00b20ce8912f004562422a3e340fe01c786ab666062c') pkgver() { - cd "${_name}" + cd "${_realname}" printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } -prepare() { - cd "${_name}" - patch --binary --forward -p0 < "${srcdir}/ConEmu.cpp.diff" - patch --binary --forward -p0 < "${srcdir}/ConfirmDlg.h.diff" -} - build() { - cd "${_name}/src" + cd "${_realname}/src" - # NOTE: - # The ugliest build system I've ever seen, yuck! - # NOTE: - # Don't remove `-static*' switches from `USERLIBSFIRST'! Otherwise when + # CAUTION: + # Don't remove `-static*' switches from `USERLIBSFIRST'! Otherwise, when # running `cmd.exe' (Command Prompt) in ConEmu, it cannot find # `libstdc++-6.dll' if it is not in the current `PATH' environment variable. make \ @@ -66,19 +44,19 @@ build() { } package() { - mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" - local suffix='' if test "${CARCH}" == 'x86_64'; then suffix='64' fi + mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" + cp -r "ConEmu.xml" "${pkgdir}${MINGW_PREFIX}/bin" - cd "${_name}/Release" + cd "${_realname}/Release" - cp -r "ConEmu.exe" "${pkgdir}${MINGW_PREFIX}/bin/ConEmu.exe" + cp -r "ConEmu.exe" "${pkgdir}${MINGW_PREFIX}/bin/" cd "ConEmu" diff --git a/mingw-w64-conemu/ConEmu.xml b/mingw-w64-conemu/ConEmu.xml new file mode 100644 index 0000000000..8f1250a84e --- /dev/null +++ b/mingw-w64-conemu/ConEmu.xml @@ -0,0 +1,601 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mingw-w64-conemu/PKGBUILD b/mingw-w64-conemu/PKGBUILD new file mode 100644 index 0000000000..471783f5f0 --- /dev/null +++ b/mingw-w64-conemu/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Haroogan + +_realname='conemu' +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=150420 +pkgrel=1 +pkgdesc="Customizable Windows console emulator with tabs (mingw-w64)" +url="http://code.google.com/p/${_realname}-maximus5/" +license=('BSD New') +arch=('any') +# CAUTION: +# Don't remove `!strip' option! Otherwise, 64-bit version of ConEmu will signal +# errors at startup. +options=('!strip') +source=("http://downloads.sourceforge.net/project/${_realname}/Preview/ConEmuPack.${pkgver}.7z" + 'ConEmu.xml') +sha256sums=('f6ab9e22dfa32cbed1ac84cd5b300e61f2fd305567cbc9813c36ccd33fb66bd2' + '84c201cf676aae844a5c00b20ce8912f004562422a3e340fe01c786ab666062c') + +package() { + local suffix='' + + if test "${CARCH}" == 'x86_64'; then + suffix='64' + fi + + mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" + + cp -r "ConEmu.xml" "${pkgdir}${MINGW_PREFIX}/bin/" + cp -r "ConEmu${suffix}.exe" "${pkgdir}${MINGW_PREFIX}/bin/ConEmu.exe" + + cd "ConEmu" + + cp -r ConEmuC*.exe "${pkgdir}${MINGW_PREFIX}/bin/" + cp -r ConEmuCD*.dll "${pkgdir}${MINGW_PREFIX}/bin/" + cp -r ConEmuHk*.dll "${pkgdir}${MINGW_PREFIX}/bin/" +} From 7fb2728c76f62c0d8a15f96f1cd183bfbde8195c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 29 Apr 2015 13:02:20 +0300 Subject: [PATCH 0943/2060] qbs, qbs-git: Fix patch. --- .../0007-add-many-files-to-installed-headers.1.4.patch | 7 ++++--- mingw-w64-qbs-git/PKGBUILD | 2 +- .../0008-add-many-files-to-installed-headers.1.4.patch | 7 ++++--- mingw-w64-qbs/PKGBUILD | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch b/mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch index b68af629fd..f548407c69 100644 --- a/mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch +++ b/mingw-w64-qbs-git/0007-add-many-files-to-installed-headers.1.4.patch @@ -9,17 +9,17 @@ language/filetags.h logging/logger.h generators/generator.h --- - src/lib/corelib/generators/generators.pri | 5 +++++ + src/lib/corelib/generators/generators.pri | 6 +++++ src/lib/corelib/language/language.pri | 3 ++- src/lib/corelib/logging/logging.pri | 3 ++- src/lib/corelib/tools/tools.pri | 2 ++ - 4 files changed, 11 insertions(+), 2 deletions(-) + 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lib/corelib/generators/generators.pri b/src/lib/corelib/generators/generators.pri index 2fa095e..4217853 100644 --- a/src/lib/corelib/generators/generators.pri +++ b/src/lib/corelib/generators/generators.pri -@@ -1,4 +1,9 @@ +@@ -1,4 +1,10 @@ HEADERS += \ $$PWD/generator.h @@ -27,6 +27,7 @@ index 2fa095e..4217853 100644 + generators_headers.files = $$PWD/generator.h + generators_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/generators + INSTALLS += generators_headers ++} + include(xcode/xcode.pri) diff --git a/src/lib/corelib/language/language.pri b/src/lib/corelib/language/language.pri diff --git a/mingw-w64-qbs-git/PKGBUILD b/mingw-w64-qbs-git/PKGBUILD index 87968a593a..abe95e1e35 100644 --- a/mingw-w64-qbs-git/PKGBUILD +++ b/mingw-w64-qbs-git/PKGBUILD @@ -72,7 +72,7 @@ sha256sums=('SKIP' '83609121b37910adce580ad725cabd96086ef952eeb1c3f5aee6adbf16bb292b' 'c194d3fa40d40ff40210161aaa0b73b55756c3b6ae3d53920f826e15ae8b5f7d' '0934208fe75e34a3086d4b145f90fc53559b654140d3f1282d3fb87df3180ede' - '3a7c39b522f17ff91b627ea535b9852ed4f85fd48f9018d65c4b835e09099d50' + '10adad688e6c3222df7264d5946ba5231cb980d620ccf4393f76d1fd97b3a23f' 'ffddbaec699bd8e9d64ff3065e1c9905f80956b68f17faac7785c518f941b00e' '4f814f8e89f33b7b699685deaa4682e8949ac5302a916484d2c0eb5e6e81d55d' '13e908e99c9a421d19ad788d51aaadfd7f0b0a6543bd116151f166145f3983ae' diff --git a/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch b/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch index b68af629fd..f548407c69 100644 --- a/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch +++ b/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch @@ -9,17 +9,17 @@ language/filetags.h logging/logger.h generators/generator.h --- - src/lib/corelib/generators/generators.pri | 5 +++++ + src/lib/corelib/generators/generators.pri | 6 +++++ src/lib/corelib/language/language.pri | 3 ++- src/lib/corelib/logging/logging.pri | 3 ++- src/lib/corelib/tools/tools.pri | 2 ++ - 4 files changed, 11 insertions(+), 2 deletions(-) + 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lib/corelib/generators/generators.pri b/src/lib/corelib/generators/generators.pri index 2fa095e..4217853 100644 --- a/src/lib/corelib/generators/generators.pri +++ b/src/lib/corelib/generators/generators.pri -@@ -1,4 +1,9 @@ +@@ -1,4 +1,10 @@ HEADERS += \ $$PWD/generator.h @@ -27,6 +27,7 @@ index 2fa095e..4217853 100644 + generators_headers.files = $$PWD/generator.h + generators_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/generators + INSTALLS += generators_headers ++} + include(xcode/xcode.pri) diff --git a/src/lib/corelib/language/language.pri b/src/lib/corelib/language/language.pri diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index e618f8db81..014129a9c9 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -51,7 +51,7 @@ sha256sums=('d384d0368c3e32ab3bdd9d85c96bb037aa1f650e77326ab5cd400a38cfef33f3' '5002df9cb3ad3451db92918a4b74bb05237648d8697faf8894d96b51cb7faa8a' '40d53fca4e80ab63baa8649bae43882daf2c91de22412c71dec712ac59f4a39e' 'df453adffd85dfdefef285a2594da9d83ad22eaeddcf2f3f13fb66cbd32bfd32' - '3a7c39b522f17ff91b627ea535b9852ed4f85fd48f9018d65c4b835e09099d50' + '10adad688e6c3222df7264d5946ba5231cb980d620ccf4393f76d1fd97b3a23f' 'ef46ff74aac8aa267a8397d4c02a9481554c45f41748ef8b04ac7ef152d52f22') prepare() { From 11986491731e52d71651b055fd8f1a3d9dd1d26c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 29 Apr 2015 13:18:15 +0300 Subject: [PATCH 0944/2060] qtbinpatcher: More fixes for searching files. --- mingw-w64-qtbinpatcher/001-minimize-files-touching.patch | 8 ++++---- mingw-w64-qtbinpatcher/PKGBUILD | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch b/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch index e45a330bbe..d42642fac5 100644 --- a/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch +++ b/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch @@ -5,7 +5,7 @@ { "/lib/", "*.prl", false }, { "/demos/shared/", "libdemo_shared.prl", false }, - { "/lib/pkgconfig/", "*.pc", false }, -+ { "/lib/pkgconfig/", "Qt*.pc", false }, ++ { "/lib/pkgconfig/", "Qt*.pc", false }, #if defined(OS_WINDOWS) { "/mkspecs/default/", "qmake.conf", false }, { "/", ".qmake.cache", false } @@ -19,11 +19,11 @@ - { "/", "*.pri", true }, - { "/lib/cmake/Qt5LinguistTools/", "Qt5LinguistToolsConfig.cmake", false }, - { "/mkspecs/default-host/", "qmake.conf", false }, -+#ifndef OS_WINDOWS ++#if !defined(OS_WINDOWS) + { "/", "*.la", true }, +#endif -+ { "/lib/", "*.prl", true }, -+ { "/lib/pkgconfig/", "Qt*.pc", true }, ++ { "/lib/", "*.prl", false }, ++ { "/lib/pkgconfig/", "Qt*.pc", false }, + { "/share/qt5/", "*.pri", true }, + { "/lib/cmake/Qt5LinguistTools/", "Qt5LinguistToolsConfig.cmake", false }, + { "/share/qt5/mkspecs/default-host/", "qmake.conf", false }, diff --git a/mingw-w64-qtbinpatcher/PKGBUILD b/mingw-w64-qtbinpatcher/PKGBUILD index 3c3908d032..7507e50e0c 100644 --- a/mingw-w64-qtbinpatcher/PKGBUILD +++ b/mingw-w64-qtbinpatcher/PKGBUILD @@ -3,7 +3,7 @@ _realname=qtbinpatcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.3 -pkgrel=2 +pkgrel=3 pkgdesc="Patcher for Qt libraries (mingw-w64)" arch=('any') url="http://tver-soft.org" @@ -13,7 +13,7 @@ options=('staticlibs' 'strip') source=(http://tver-soft.org/dl/${_realname}-${pkgver}.tar.bz2 001-minimize-files-touching.patch) md5sums=('4f00aa6601864533589ce30ed39fe2cd' - '02904c9bfc72f389b3a3bb4ab0e04127') + '122ae4823c01aa32e583ce2a85d3edcd') prepare() { cd ${srcdir}/${_realname}-${pkgver} From c3e27603ad917ff7267a4a00f39b3d534dd5849a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 29 Apr 2015 18:03:57 +0300 Subject: [PATCH 0945/2060] remove binary repackage of conemy --- mingw-w64-conemu/ConEmu.xml | 601 ------------------------------------ mingw-w64-conemu/PKGBUILD | 37 --- 2 files changed, 638 deletions(-) delete mode 100644 mingw-w64-conemu/ConEmu.xml delete mode 100644 mingw-w64-conemu/PKGBUILD diff --git a/mingw-w64-conemu/ConEmu.xml b/mingw-w64-conemu/ConEmu.xml deleted file mode 100644 index 8f1250a84e..0000000000 --- a/mingw-w64-conemu/ConEmu.xml +++ /dev/null @@ -1,601 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mingw-w64-conemu/PKGBUILD b/mingw-w64-conemu/PKGBUILD deleted file mode 100644 index 471783f5f0..0000000000 --- a/mingw-w64-conemu/PKGBUILD +++ /dev/null @@ -1,37 +0,0 @@ -# Maintainer: Haroogan - -_realname='conemu' -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=150420 -pkgrel=1 -pkgdesc="Customizable Windows console emulator with tabs (mingw-w64)" -url="http://code.google.com/p/${_realname}-maximus5/" -license=('BSD New') -arch=('any') -# CAUTION: -# Don't remove `!strip' option! Otherwise, 64-bit version of ConEmu will signal -# errors at startup. -options=('!strip') -source=("http://downloads.sourceforge.net/project/${_realname}/Preview/ConEmuPack.${pkgver}.7z" - 'ConEmu.xml') -sha256sums=('f6ab9e22dfa32cbed1ac84cd5b300e61f2fd305567cbc9813c36ccd33fb66bd2' - '84c201cf676aae844a5c00b20ce8912f004562422a3e340fe01c786ab666062c') - -package() { - local suffix='' - - if test "${CARCH}" == 'x86_64'; then - suffix='64' - fi - - mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" - - cp -r "ConEmu.xml" "${pkgdir}${MINGW_PREFIX}/bin/" - cp -r "ConEmu${suffix}.exe" "${pkgdir}${MINGW_PREFIX}/bin/ConEmu.exe" - - cd "ConEmu" - - cp -r ConEmuC*.exe "${pkgdir}${MINGW_PREFIX}/bin/" - cp -r ConEmuCD*.dll "${pkgdir}${MINGW_PREFIX}/bin/" - cp -r ConEmuHk*.dll "${pkgdir}${MINGW_PREFIX}/bin/" -} From 3af9311b275a480a37370d139a79cfcef1af8543 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 29 Apr 2015 16:24:18 +0200 Subject: [PATCH 0946/2060] libgit2-glib: updated to 0.22.6. --- mingw-w64-libgit2-glib/PKGBUILD | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libgit2-glib/PKGBUILD b/mingw-w64-libgit2-glib/PKGBUILD index 233c8e604f..491ab24461 100644 --- a/mingw-w64-libgit2-glib/PKGBUILD +++ b/mingw-w64-libgit2-glib/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgit2-glib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.22.2 +pkgver=0.22.6 pkgrel=1 arch=('any') pkgdesc="A glib wrapper library around the libgit2 git access library (mingw-w64)" @@ -12,15 +12,17 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection") + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "gtk-doc") options=('strip' 'staticlibs') license=("LGPL") url="https://wiki.gnome.org/Projects/Libgit2-glib" source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz") -sha256sums=('ca9ddc3b51dd421399e2a914ea87771a101ba2cb19146d92c93f8689f0a3eb12') +sha256sums=('e299f159acc7a83c33771660514fa78a6cc7deea064e10d9e9030ad68d673a80') prepare() { cd "${srcdir}"/${_realname}-${pkgver} + autoreconf -f -i } @@ -28,6 +30,9 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + export PYTHON=${MINGW_PREFIX}/bin/python3 ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ @@ -36,10 +41,12 @@ build() { --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ --enable-python - make V=1 -j1 + make } package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 7aa7df2744a80fbe0852aa53a4c8dfcfea4cff32 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 29 Apr 2015 16:26:32 +0200 Subject: [PATCH 0947/2060] libgsf: updated to 1.14.33. --- mingw-w64-libgsf/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgsf/PKGBUILD b/mingw-w64-libgsf/PKGBUILD index 3b10d2fe21..4b1c95a84b 100644 --- a/mingw-w64-libgsf/PKGBUILD +++ b/mingw-w64-libgsf/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgsf pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.14.32 +pkgver=1.14.33 pkgrel=1 arch=('any') pkgdesc="An extensible I/O abstraction library for dealing with structured file formats (mingw-w64)" @@ -20,7 +20,7 @@ url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch 002-get-unix-path-for-git.patch) -sha256sums=('13bf38b848c01e20eb89a48150b6f864434ee4dfbb6301ddf6f4080a36cd99e9' +sha256sums=('82dd38e0c1f497704bf3b43682fca2768886058f004b14e9b5d103596f8c6e6b' 'a6408ee4cca51afb8c910d467d0036c7aa5520e0486366aad47a5a39b5ecdc1b' 'f08db8333d2b4a369737a77969b5896d408a4d9992fab6f1c9c44ddeae25c516') @@ -29,6 +29,7 @@ prepare() { patch -b -V simple -p1 -i ${srcdir}/001-win.patch patch -b -V simple -p1 -i ${srcdir}/002-get-unix-path-for-git.patch + autoreconf -fiv } From dabb1336a8330b88dd9b941973583187b7801314 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 29 Apr 2015 16:42:31 +0200 Subject: [PATCH 0948/2060] gtksourceview3: updated to 3.16.1. --- mingw-w64-gtksourceview3/PKGBUILD | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gtksourceview3/PKGBUILD b/mingw-w64-gtksourceview3/PKGBUILD index da96670992..e30ce98ef5 100644 --- a/mingw-w64-gtksourceview3/PKGBUILD +++ b/mingw-w64-gtksourceview3/PKGBUILD @@ -2,7 +2,7 @@ _realname=gtksourceview pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.16.0 +pkgver=3.16.1 pkgrel=1 pkgdesc="A text widget adding syntax highlighting and more to GNOME (mingw-w64)" arch=('any') @@ -12,24 +12,31 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-glade" - "intltool") + "intltool" + "gtk-doc") depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-libxml2") options=(!libtool strip staticlibs) source=("http://ftp.gnome.org/pub/gnome/sources/gtksourceview/${pkgver%.*}/gtksourceview-${pkgver}.tar.xz" 0006-hack-convert-path-back-to-unix.patch) -md5sums=('d4e3b50ed497d48b8fcf09e7ffa3d039' +md5sums=('e727db8202d23a54b54b69ebc66f5331' '324c9e3bb2e4fa2a4977653ce6ed6ef9') prepare() { cd ${_realname}-$pkgver + patch -p1 -i ${srcdir}/0006-hack-convert-path-back-to-unix.patch + autoreconf -fi } build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + DATADIRNAME=share \ ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ @@ -38,7 +45,7 @@ build() { --enable-shared \ --disable-static \ --enable-glade-catalog - LC_ALL=C make -j1 V=1 + LC_ALL=C make } package() { @@ -51,4 +58,6 @@ package() { _reallib=${_reallib#lib} sed -e "s|library=\"gtksourceview-3.0\"|library=\"${_reallib}\"|g" -i ${pkgdir}/${MINGW_PREFIX}/share/glade/catalogs/gtksourceview.xml done + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 4c1857b12f4219a28ab98726f912c7131edb230f Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 29 Apr 2015 18:14:20 +0200 Subject: [PATCH 0949/2060] librsvg: updated to 2.40.9. --- mingw-w64-librsvg/0005-hack-unixy-paths.patch | 4 ++-- mingw-w64-librsvg/PKGBUILD | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mingw-w64-librsvg/0005-hack-unixy-paths.patch b/mingw-w64-librsvg/0005-hack-unixy-paths.patch index cdf6aa33e1..883cc28c23 100644 --- a/mingw-w64-librsvg/0005-hack-unixy-paths.patch +++ b/mingw-w64-librsvg/0005-hack-unixy-paths.patch @@ -1,5 +1,5 @@ ---- librsvg-2.40.4/configure.in.orig 2014-09-24 12:24:57.276600000 +0500 -+++ librsvg-2.40.4/configure.in 2014-09-24 12:25:51.939000000 +0500 +--- librsvg-2.40.4/configure.ac.orig 2014-09-24 12:24:57.276600000 +0500 ++++ librsvg-2.40.4/configure.ac 2014-09-24 12:25:51.939000000 +0500 @@ -165,6 +165,9 @@ gdk_pixbuf_binarydir="`$PKG_CONFIG --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0`" gdk_pixbuf_moduledir=`$PKG_CONFIG --variable gdk_pixbuf_moduledir gdk-pixbuf-2.0` diff --git a/mingw-w64-librsvg/PKGBUILD b/mingw-w64-librsvg/PKGBUILD index f0dc70682b..7b6d6726d9 100644 --- a/mingw-w64-librsvg/PKGBUILD +++ b/mingw-w64-librsvg/PKGBUILD @@ -2,7 +2,7 @@ _realname=librsvg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.40.6 +pkgver=2.40.9 pkgrel=1 pkgdesc="A SVG viewing library (mingw-w64)" arch=('any') @@ -20,12 +20,13 @@ options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/librsvg/${pkgver%.*}/${_realname}-$pkgver.tar.xz" "0001-give-cc-to-gir-scanner.mingw.patch" "0005-hack-unixy-paths.patch") -sha256sums=('8af349f241677b04b7a1ea6b9b33a6343e781bcccc8a09d00208a47342584f06' +sha256sums=('13964c5d35357552b47d365c34215eee0a63bf0e6059b689f048648c6bf5f43a' '854f36c9bc1ad0f3a85ca2ec4e8b5c7d75ba035c45ad4915601210acf0321776' - 'eff60ec631f08ea69a26d216c41beea502c68614278a15eb4c73213a64f76ed4') + 'b23b094c0cb65fcbbbb952350448de6f3430b30f273e05acdbf7a56d634212dc') prepare() { cd "$srcdir/${_realname}-$pkgver" + patch -p1 -i "$srcdir/0001-give-cc-to-gir-scanner.mingw.patch" patch -p1 -i "$srcdir/0005-hack-unixy-paths.patch" @@ -53,4 +54,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 69babcd683ede873a65c12bbbe2534215758029a Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 29 Apr 2015 18:18:36 +0200 Subject: [PATCH 0950/2060] eog: updated to 3.16.1. --- mingw-w64-eog/PKGBUILD | 10 ++++++++-- mingw-w64-eog/eog-i686.install | 3 ++- mingw-w64-eog/eog-x86_64.install | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/mingw-w64-eog/PKGBUILD b/mingw-w64-eog/PKGBUILD index 773370ac88..dd36b65e68 100644 --- a/mingw-w64-eog/PKGBUILD +++ b/mingw-w64-eog/PKGBUILD @@ -2,7 +2,7 @@ _realname=eog pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 +pkgver=3.16.1 pkgrel=1 arch=('any') pkgdesc="Eye of GNOME graphics viewer program (mingw-w64)" @@ -20,6 +20,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-librsvg" "${MINGW_PACKAGE_PREFIX}-gettext" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +makedepends=("gtk-doc") options=('strip' 'staticlibs') license=("GPL 2") url="http://www.gnome.org" @@ -29,7 +30,7 @@ source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_real 002-relocation-support.patch 003-fix-install-dirs.patch 004-give-cc-to-gir-scanner.mingw.patch) -sha256sums=('289f659ce593adb15868d73895634b5f4445c87fe84715eb598405d1d0e7a85e' +sha256sums=('2979d1852397310ad4e04bfa4eb1fa4d9fb342071f0797c9de077fd13607c1e7' '31db56ea4d64059e60c478a7ba1475d9beaf65f2c42967909adbb41843c2d129' 'a7e897da94d7033fd2ad4d81129f7a60cd0f68bd8d887c079c79cef802d02a4d' 'abc9df56f5fc2213ba6efdcdad269534496d6eda900194b4000910dacf4042d9' @@ -50,6 +51,9 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + mkdir -p doc/reference/html + cp -rf ../${_realname}-${pkgver}/doc/reference/html/* doc/reference/html + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ @@ -66,4 +70,6 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-eog/eog-i686.install b/mingw-w64-eog/eog-i686.install index 2a92fca906..b5742c7285 100644 --- a/mingw-w64-eog/eog-i686.install +++ b/mingw-w64-eog/eog-i686.install @@ -1,5 +1,6 @@ post_install() { - /mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas + mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas + mingw32/bin/gtk-update-icon-cache-3.0 -f -t /mingw32/share/icons/hicolor } post_upgrade() { diff --git a/mingw-w64-eog/eog-x86_64.install b/mingw-w64-eog/eog-x86_64.install index 72636007e9..3684301013 100644 --- a/mingw-w64-eog/eog-x86_64.install +++ b/mingw-w64-eog/eog-x86_64.install @@ -1,5 +1,6 @@ post_install() { - /mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas + mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas + mingw64/bin/gtk-update-icon-cache-3.0 -f -t /mingw64/share/icons/hicolor } post_upgrade() { From 60717b0f160610331a3f8fc07409e30153af5704 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 29 Apr 2015 22:51:25 +0300 Subject: [PATCH 0951/2060] libblueray: Update to 0.8.0 --- mingw-w64-libblueray/PKGBUILD | 13 +++++++------ mingw-w64-libblueray/no-undefined.patch | 24 ++++++++---------------- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/mingw-w64-libblueray/PKGBUILD b/mingw-w64-libblueray/PKGBUILD index a575bbaeb5..72cbba663d 100644 --- a/mingw-w64-libblueray/PKGBUILD +++ b/mingw-w64-libblueray/PKGBUILD @@ -2,7 +2,7 @@ _realname=libbluray pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.7.0 +pkgver=0.8.0 pkgrel=1 pkgdesc='Library to access Blu-Ray disks for video playback (mingw-w64)' arch=('any') @@ -13,8 +13,8 @@ options=('strip' 'staticlibs') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(ftp://ftp.videolan.org/pub/videolan/libbluray/$pkgver/${_realname}-$pkgver.tar.bz2 no-undefined.patch) -md5sums=('efad766330164f0c7c7cb18f66389870' - '788a036c8b28eff04234972767ec1ac2') +md5sums=('bd2b8684d5afd17dc270f19eb1a5bb9a' + 'abefd822b6db0a042640e9a6dda06254') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -24,8 +24,8 @@ prepare() { } build() { - mkdir -p ${srcdir}/build-${MINGW_CHOST} - cd ${srcdir}/build-${MINGW_CHOST} + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" export lt_cv_deplibs_check_method='pass_all' ../${_realname}-$pkgver/configure \ @@ -33,7 +33,8 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --disable-examples + --enable-examples \ + --disable-bdjava make } diff --git a/mingw-w64-libblueray/no-undefined.patch b/mingw-w64-libblueray/no-undefined.patch index f1098429db..77370339b5 100644 --- a/mingw-w64-libblueray/no-undefined.patch +++ b/mingw-w64-libblueray/no-undefined.patch @@ -1,20 +1,12 @@ -diff -ru libbluray-0.4.0/src/Makefile.am patched/src/Makefile.am ---- libbluray-0.4.0/src/Makefile.am 2013-09-17 10:05:56.000000000 +0200 -+++ patched/src/Makefile.am 2013-11-02 14:35:10.123235113 +0100 -@@ -109,7 +109,7 @@ +diff -ru libbluray-0.8.0/Makefile.am.orig libbluray-0.8.0/Makefile.am +--- libbluray-0.8.0/Makefile.am.orig 2013-09-17 10:05:56.000000000 +0200 ++++ libbluray-0.8.0/Makefile.am 2013-11-02 14:35:10.123235113 +0100 +@@ -149,7 +149,7 @@ + endif endif - --libbluray_la_LDFLAGS= -version-info $(LT_VERSION_INFO) -+libbluray_la_LDFLAGS= -no-undefined -version-info $(LT_VERSION_INFO) +-libbluray_la_LDFLAGS= -version-info $(LT_VERSION_INFO) -export-symbols-regex "^bd_" ++libbluray_la_LDFLAGS= -no-undefined -version-info $(LT_VERSION_INFO) -export-symbols-regex "^bd_" libbluray_la_LIBADD= $(LIBXML2_LIBS) $(FT2_LIBS) $(FONTCONFIG_LIBS) - pkginclude_HEADERS = \ -@@ -149,6 +149,7 @@ - libbluray/bdj/native/register_native.c - - AM_CFLAGS += $(BDJAVA_CFLAGS) -+libbluray_la_LDFLAGS= -no-undefined - - all-local: - ant -f $(top_srcdir)/src/libbluray/bdj/build.xml \ + noinst_HEADERS = \ From 75d045c8b46f937b3a6f22c30f5502785069d877 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 29 Apr 2015 22:51:52 +0300 Subject: [PATCH 0952/2060] pcre: Update to 8.37 --- mingw-w64-pcre/PKGBUILD | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mingw-w64-pcre/PKGBUILD b/mingw-w64-pcre/PKGBUILD index 85c8e54d1e..5a024d02e7 100644 --- a/mingw-w64-pcre/PKGBUILD +++ b/mingw-w64-pcre/PKGBUILD @@ -2,7 +2,7 @@ _realname=pcre pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=8.36 +pkgver=8.37 pkgrel=1 pkgdesc="A library that implements Perl 5-style regular expressions (mingw-w64)" arch=('any') @@ -16,12 +16,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') source=(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${_realname}-${pkgver}.tar.bz2{,.sig}) -md5sums=('b767bc9af0c20bc9c1fe403b0d41ad97' +md5sums=('ed91be292cb01d21bc7e526816c26981' 'SKIP') build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + "${srcdir}"/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -35,6 +36,7 @@ build() { --enable-pcregrep-libz \ --enable-pcregrep-libbz2 \ --enable-pcretest-libedit + make } From 3f18aa1ae8556483c077639974ccf1153e23b09d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 29 Apr 2015 22:52:30 +0300 Subject: [PATCH 0953/2060] npth: New package. --- mingw-w64-npth/PKGBUILD | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 mingw-w64-npth/PKGBUILD diff --git a/mingw-w64-npth/PKGBUILD b/mingw-w64-npth/PKGBUILD new file mode 100644 index 0000000000..ecca461a2e --- /dev/null +++ b/mingw-w64-npth/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Alexey Pavlov + +_realname=npth +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.2 +pkgrel=1 +pkgdesc="New portable threads library (mingw-w64)" +arch=('any') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +license=('LGPL') +url="http://www.gnupg.org/" +validpgpkeys=('D8692123C4065DEA5E0F3AB5249B39D24F25E3B6') +source=("ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2"{,.sig}) +sha1sums=('3bfa2a2d7521d6481850e8a611efe5bf5ed75200' + 'SKIP') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} +} + +build() { + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + + "${srcdir}"/${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + + make +} + +check() { + cd "${srcdir}/build-${MINGW_CHOST}" + make check +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make -j1 DESTDIR=${pkgdir} install +} From f2ae9e3e2b8958caa918335078a3f0d3ca1c0673 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 29 Apr 2015 22:54:04 +0300 Subject: [PATCH 0954/2060] libgpg-error: Update to 1.19 --- mingw-w64-libgpg-error/PKGBUILD | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mingw-w64-libgpg-error/PKGBUILD b/mingw-w64-libgpg-error/PKGBUILD index fb61bbda92..8e4a4749da 100644 --- a/mingw-w64-libgpg-error/PKGBUILD +++ b/mingw-w64-libgpg-error/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgpg-error pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.18 +pkgver=1.19 pkgrel=1 pkgdesc="Support library for libgcrypt (mingw-w64)" arch=('any') @@ -19,7 +19,7 @@ source=("ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-${pkgver}.tar.bz2" 05-w32-gen.all.patch 07-windows-build.patch 09-fix-generating-union.patch) -md5sums=('12312802d2065774b787cbfc22cc04e9' +md5sums=('c04c16245b92829281f43b5bef7d16da' '4865ce481ec9aa5efc0a4979f197a686' 'a69b0fd4c8e4ebda9ddeb68e565bf1b1' 'f7650decafae57ef791318b6a7e8f7e7' @@ -40,8 +40,8 @@ prepare() { } build() { - cd "$srcdir/libgpg-error-$pkgver" - mkdir -p $srcdir/build-${CARCH} && cd $srcdir/build-${CARCH} + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" ../libgpg-error-$pkgver/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -49,10 +49,11 @@ build() { --target=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } package() { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install } From aa6b97a0008849b1222d710a62b272af9b3946e0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 29 Apr 2015 22:54:26 +0300 Subject: [PATCH 0955/2060] libksba: Update to 1.3.3 --- mingw-w64-libksba/PKGBUILD | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mingw-w64-libksba/PKGBUILD b/mingw-w64-libksba/PKGBUILD index 8822918239..fc510e79e2 100644 --- a/mingw-w64-libksba/PKGBUILD +++ b/mingw-w64-libksba/PKGBUILD @@ -2,7 +2,7 @@ _realname=libksba pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.1 +pkgver=1.3.3 pkgrel=1 pkgdesc="A CMS and X.509 access library (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ groups=("${MINGW_PACKAGE_PREFIX}") options=('strip' 'staticlibs') source=(ftp://ftp.gnupg.org/gcrypt/$_realname/$_realname-$pkgver.tar.bz2 0001-fix-def.mingw.patch) -md5sums=('9be95245fcfa9d56f56853078ef2650b' +md5sums=('a5dd3c57fca254935f5cf8db26e39065' '437ad992a8ac21ba7646f707b2b4a4f2') prepare() { @@ -22,7 +22,9 @@ prepare() { } build() { - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + ../$_realname-$pkgver/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -34,11 +36,11 @@ build() { } check() { - cd ${srcdir}/build-${CARCH} + cd ${srcdir}/build-${MINGW_CHOST} make check } package() { - cd ${srcdir}/build-${CARCH} + cd ${srcdir}/build-${MINGW_CHOST} make -j1 DESTDIR=$pkgdir install } From 1c72104be96d92abf29687a24375a01c0fc3928d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 29 Apr 2015 22:55:03 +0300 Subject: [PATCH 0956/2060] libassuan: Rebuild. --- mingw-w64-libassuan/PKGBUILD | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libassuan/PKGBUILD b/mingw-w64-libassuan/PKGBUILD index e3460bcfab..eb643c518f 100644 --- a/mingw-w64-libassuan/PKGBUILD +++ b/mingw-w64-libassuan/PKGBUILD @@ -3,7 +3,7 @@ _realname=libassuan pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.2.0 -pkgrel=1 +pkgrel=2 pkgdesc="A IPC library used by some GnuPG related software (mingw-w64)" arch=('any') license=('GPL') @@ -41,7 +41,9 @@ build() { if [ $MINGW_CHOST = "x86_64-w64-mingw32" ]; then CFLAGS+=" -DHAVE_DOSISH_SYSTEM=1" fi - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -53,11 +55,11 @@ build() { } check() { - cd ${srcdir}/build-${CARCH} + cd ${srcdir}/build-${MINGW_CHOST} #make check } package() { - cd ${srcdir}/build-${CARCH} + cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR=${pkgdir} install } From 0e2da619532fede67aa5679495ab03c6343cbbe9 Mon Sep 17 00:00:00 2001 From: David Macek Date: Thu, 30 Apr 2015 00:09:02 +0200 Subject: [PATCH 0957/2060] ansicon-git: Fix typo in .bat file --- mingw-w64-ansicon-git/PKGBUILD | 2 +- mingw-w64-ansicon-git/ansicon.bat | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ansicon-git/PKGBUILD b/mingw-w64-ansicon-git/PKGBUILD index e7b2901bb1..1adaafb2a9 100644 --- a/mingw-w64-ansicon-git/PKGBUILD +++ b/mingw-w64-ansicon-git/PKGBUILD @@ -17,7 +17,7 @@ source=("git+https://github.com/adoxa/ansicon.git" "ansicon.bat") md5sums=('SKIP' '50d56e1bb2591b895305e0070b96699a' - 'd4d49365e78f08c50849c6a1af078b94') + 'f1d2f1358bf4a2140383a1327b8882ef') pkgver() { cd ${srcdir}/${_realname} diff --git a/mingw-w64-ansicon-git/ansicon.bat b/mingw-w64-ansicon-git/ansicon.bat index d32d5198a0..b46c40d2cd 100644 --- a/mingw-w64-ansicon-git/ansicon.bat +++ b/mingw-w64-ansicon-git/ansicon.bat @@ -49,7 +49,7 @@ if exist "%~dp0../../mingw64/bin/%~n0_x64.exe" ( "%~dp0../../mingw64/bin/%~n0_x64.exe" %* exit /b 0 ) else ( - echo Cannot find "%~dp0../../mingw64/bin/%~n0_x84.exe" >&2 + echo Cannot find "%~dp0../../mingw64/bin/%~n0_x64.exe" >&2 exit /b 1 ) From fac04c69e5ce01ee7e378b834739d5d96cb2ea16 Mon Sep 17 00:00:00 2001 From: David Macek Date: Wed, 29 Apr 2015 14:04:25 +0200 Subject: [PATCH 0958/2060] editrights: Fix documentation install dir --- mingw-w64-editrights/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-editrights/PKGBUILD b/mingw-w64-editrights/PKGBUILD index a9d1435812..7808b08b29 100644 --- a/mingw-w64-editrights/PKGBUILD +++ b/mingw-w64-editrights/PKGBUILD @@ -3,7 +3,7 @@ _realname=editrights pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.03 -pkgrel=1 +pkgrel=2 pkgdesc="Edit special privileges of Windows accounts (mingw-w64)" arch=('any') url="http://cygwin.org/" @@ -29,5 +29,5 @@ package() { cd $_realname make DESTDIR="$pkgdir" PREFIX=${MINGW_PREFIX} install install -Dm0644 LICENCE ${pkgdir}${MINGW_PREFIX}/share/licenses/editrights/LICENCE - mv ${pkgdir}${MINGW_PREFIX}/share/doc/{Cygwin,Msys} + mv ${pkgdir}${MINGW_PREFIX}/share/doc/{Cygwin,editrights} } From ec5988cab2da5f0d860e79e746a918c160735fc0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 30 Apr 2015 10:09:34 +0300 Subject: [PATCH 0959/2060] libusb-compat: Fix issue building npth. --- .../0001-Add-some-missing-definitions.patch | 11 ++++++++--- mingw-w64-libusb-compat-git/PKGBUILD | 19 +++++++++---------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch b/mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch index 8910efc5a7..86405bd3b1 100644 --- a/mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch +++ b/mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch @@ -6,8 +6,8 @@ Subject: [PATCH 1/2] Add some missing definitions Needed for Win32 --- libusb/core.c | 4 ++++ - libusb/usb.h | 6 ++++++ - 2 files changed, 10 insertions(+) + libusb/usb.h | 11 ++++++ + 2 files changed, 17 insertions(+) diff --git a/libusb/core.c b/libusb/core.c index e6e500b..b1439d8 100644 @@ -28,15 +28,20 @@ diff --git a/libusb/usb.h b/libusb/usb.h index 84e730f..bd805a2 100644 --- a/libusb/usb.h +++ b/libusb/usb.h -@@ -31,6 +31,12 @@ +@@ -31,6 +31,17 @@ #include ++#include +#ifndef u_int8_t +typedef uint8_t u_int8_t; +typedef uint16_t u_int16_t; +typedef uint32_t u_int32_t; +#endif ++ ++#ifdef interface ++#undef interface ++#endif + /* * USB spec information diff --git a/mingw-w64-libusb-compat-git/PKGBUILD b/mingw-w64-libusb-compat-git/PKGBUILD index 7c7397652d..eee411a966 100644 --- a/mingw-w64-libusb-compat-git/PKGBUILD +++ b/mingw-w64-libusb-compat-git/PKGBUILD @@ -6,7 +6,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides="${MINGW_PACKAGE_PREFIX}-${_realname}" conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=r60.072a5e4 -pkgrel=1 +pkgrel=2 pkgdesc="libusb provides generic access to USB devices (mingw-w64)" arch=('any') url="http://libusb.info" @@ -19,7 +19,7 @@ source=(${_realname}::git+https://github.com/libusb/libusb-compat-0.1.git 0001-Add-some-missing-definitions.patch 0002-Add-no-undefined-to-LDFLAGS.patch) md5sums=('SKIP' - '568ddc63b0e3f24bcbae37367261007c' + '3c5d3473df5e7f0a1b03a7465afd8526' '1446f870923cd037c59a44d203657ca7') pkgver() { @@ -40,14 +40,13 @@ build() { mkdir -p ${srcdir}/build-${CARCH} cd ${srcdir}/build-${CARCH} - local -a myconf - myconf+=(--prefix=${MINGW_PREFIX} - --{host,build}=${MINGW_CHOST} - --disable-dependency-tracking - --enable-static - --enable-shared) - echo "../${_realname}/configure ${myconf[@]}" - ../${_realname}/configure ${myconf[@]} + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --{host,build}=${MINGW_CHOST} \ + --disable-dependency-tracking \ + --enable-static \ + --enable-shared + make } From 6e286b425a637603464dbaa5875dcbcb7d9339a9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 30 Apr 2015 10:10:35 +0300 Subject: [PATCH 0960/2060] gnupg: Update to 2.1.3 --- .../01-mingw32-fix-potomo.mingw.patch | 11 +++ mingw-w64-gnupg/PKGBUILD | 71 +++++++++---------- .../fix_seat_check_on_windows.patch | 14 ---- .../gnupg-1.4.15-libiconv-dll.patch | 20 ------ 4 files changed, 45 insertions(+), 71 deletions(-) create mode 100644 mingw-w64-gnupg/01-mingw32-fix-potomo.mingw.patch delete mode 100644 mingw-w64-gnupg/fix_seat_check_on_windows.patch delete mode 100644 mingw-w64-gnupg/gnupg-1.4.15-libiconv-dll.patch diff --git a/mingw-w64-gnupg/01-mingw32-fix-potomo.mingw.patch b/mingw-w64-gnupg/01-mingw32-fix-potomo.mingw.patch new file mode 100644 index 0000000000..74e9583ae1 --- /dev/null +++ b/mingw-w64-gnupg/01-mingw32-fix-potomo.mingw.patch @@ -0,0 +1,11 @@ +--- gnupg-2.1.3/build-aux/potomo 2015-04-30 18:27:58 +0400 ++++ gnupg-2.1.3/build-aux/potomo 2015-04-30 15:05:06 +0400 +@@ -57,7 +57,7 @@ + ;; + *) + echo "potomo: '$infile' converting from $fromset to utf-8" >&2 +- iconv --silent --from-code=$fromset --to-code=utf-8 < "$infile" |\ ++ iconv -s --from-code=$fromset --to-code=utf-8 < "$infile" |\ + sed "/^\"Content-Type:/ s/charset=[a-zA-Z0-9_-]*/charset=utf-8/"|\ + msgfmt --output-file="$outfile" - + ;; diff --git a/mingw-w64-gnupg/PKGBUILD b/mingw-w64-gnupg/PKGBUILD index ba51a0712b..4e05dc85bc 100644 --- a/mingw-w64-gnupg/PKGBUILD +++ b/mingw-w64-gnupg/PKGBUILD @@ -1,66 +1,63 @@ # Maintainer: Alexey Pavlov -# uncomment patch fix_seat_check_on_windows.patch to compile on windows -# requires unix2dos (installed using pacman -S dos2unix) - _realname=gnupg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.18 +pkgver=2.1.3 pkgrel=1 pkgdesc="GNU Privacy Guard - a PGP replacement tool (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") -depends=("${MINGW_PACKAGE_PREFIX}-curl" - "${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-libksba" - "${MINGW_PACKAGE_PREFIX}-libgcrypt" - "${MINGW_PACKAGE_PREFIX}-libassuan" - "${MINGW_PACKAGE_PREFIX}-libgnurx" - "${MINGW_PACKAGE_PREFIX}-w32pth") +depends=("${MINGW_PACKAGE_PREFIX}-bzip2" + "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-libksba" + "${MINGW_PACKAGE_PREFIX}-libgcrypt" + "${MINGW_PACKAGE_PREFIX}-libassuan" + "${MINGW_PACKAGE_PREFIX}-libsystre" + "${MINGW_PACKAGE_PREFIX}-libusb-compat" + "${MINGW_PACKAGE_PREFIX}-npth" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("texinfo" "${MINGW_PACKAGE_PREFIX}-gcc") +# REMOVE openldap package before build license=('GPL') url="http://www.gnupg.org/" -source=(ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-$pkgver.tar.bz2{,.sig} - gnupg-1.4.15-libiconv-dll.patch - fix_seat_check_on_windows.patch) -sha1sums=('41462d1a97f91abc16a0031b5deadc3095ce88ae' +source=(ftp://ftp.gnupg.org/gcrypt/gnupg/${_realname}-$pkgver.tar.bz2{,.sig} + 01-mingw32-fix-potomo.mingw.patch) +sha1sums=('091e69ec1ce3f0032e6b135e4da561e8d46d20a7' 'SKIP' - '2ea46a1c24a30016e21b9f16e324798ec2b54d98' - 'a8eb0dec2ca2d23d9fcb4efba9b09ef6724cf053') + 'adca40b456c054db3aae5f112e18f56235322a45') prepare() { - cd "${srcdir}"/gnupg-${pkgver} - patch -p1 -i ${srcdir}/gnupg-1.4.15-libiconv-dll.patch -# patch -p1 -i ../fix_seat_check_on_windows.patch - - #./autogen.sh - # libtoolize --copy --force - # aclocal -I m4 -I gl/m4 - # automake --add-missing - # autoconf + cd "${srcdir}"/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/01-mingw32-fix-potomo.mingw.patch + + #autoreconf -fiv } build() { - mkdir -p "${srcdir}/gnupg-${pkgver}-build-${CARCH}" - cd "${srcdir}/gnupg-${pkgver}-build-${CARCH}" - "${srcdir}"/gnupg-${pkgver}/configure \ + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + + "${srcdir}"/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --libexecdir=${MINGW_PREFIX}/lib + --libexecdir=${MINGW_PREFIX}/bin \ + --sbindir=${MINGW_PREFIX}/bin \ + --enable-maintainer-mode \ + --disable-symcryptrun \ + --enable-gpgtar \ + --disable-g13 + make } check() { - cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make check } package() { - cd "${srcdir}/gnupg-${pkgver}-build-${CARCH}" - make DESTDIR=${pkgdir} install - # move conflicting files - #mv ${pkgdir}${MINGW_PREFIX}/share/gnupg{,2} + cd "${srcdir}/build-${MINGW_CHOST}" + make -j1 DESTDIR=${pkgdir} install } diff --git a/mingw-w64-gnupg/fix_seat_check_on_windows.patch b/mingw-w64-gnupg/fix_seat_check_on_windows.patch deleted file mode 100644 index 12ea83dc16..0000000000 --- a/mingw-w64-gnupg/fix_seat_check_on_windows.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/checks/seat.test.orig b/checks/seat.test -index 72ab27f..6dbb542 100755 ---- a/checks/seat.test.orig -+++ b/checks/seat.test -@@ -6,6 +6,8 @@ for i in $plain_files ; do - echo "$usrpass1" | $GPG --passphrase-fd 0 --always-trust -seat \ - -r two -o x --yes $i - $GPG -o y --yes x -- cmp $i y || error "$i: mismatch" -+ cp $i z -+ unix2dos z -+ cmp z y || error "$i: mismatch" - done - diff --git a/mingw-w64-gnupg/gnupg-1.4.15-libiconv-dll.patch b/mingw-w64-gnupg/gnupg-1.4.15-libiconv-dll.patch deleted file mode 100644 index 3817bbc344..0000000000 --- a/mingw-w64-gnupg/gnupg-1.4.15-libiconv-dll.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- gnupg-1.4.15/util/strgutil.c.orig 2013-11-30 23:43:22.412000000 +0400 -+++ gnupg-1.4.15/util/strgutil.c 2013-11-30 23:43:59.368400000 +0400 -@@ -138,7 +138,7 @@ - done = 1; /* Do it right now because we might get called recursivly - through gettext. */ - -- handle = dlopen ("iconv.dll", RTLD_LAZY); -+ handle = dlopen ("libiconv-2.dll", RTLD_LAZY); - if (handle) - { - iconv_open = dlsym (handle, "libiconv_open"); -@@ -150,7 +150,7 @@ - if (!handle || !iconv_close) - { - log_info (_("error loading `%s': %s\n"), -- "iconv.dll", dlerror ()); -+ "libiconv-2.dll", dlerror ()); - log_info(_("please see http://www.gnupg.org/download/iconv.html " - "for more information\n")); - iconv_open = NULL; From c0c6760903a2530e980d95f2cef647e658bc4ffa Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 30 Apr 2015 10:11:43 +0300 Subject: [PATCH 0961/2060] gpgme: Update to 1.5.4 --- mingw-w64-gpgme/PKGBUILD | 39 +++++++++++-------- .../gpgme-1.5.4-mingw-mkstemp.patch | 19 +++++++++ 2 files changed, 42 insertions(+), 16 deletions(-) create mode 100644 mingw-w64-gpgme/gpgme-1.5.4-mingw-mkstemp.patch diff --git a/mingw-w64-gpgme/PKGBUILD b/mingw-w64-gpgme/PKGBUILD index d3e548aba3..35924337d2 100644 --- a/mingw-w64-gpgme/PKGBUILD +++ b/mingw-w64-gpgme/PKGBUILD @@ -2,47 +2,54 @@ _realname=gpgme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.3 +pkgver=1.5.4 pkgrel=1 -pkgdesc="A C wrapper library for GnuPG" +pkgdesc="A C wrapper library for GnuPG (mingw-w64)" arch=('any') url="http://www.gnupg.org/related_software/gpgme/" license=('LGPL') -depends=("${MINGW_PACKAGE_PREFIX}-libgpg-error" - "${MINGW_PACKAGE_PREFIX}-w32pth" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-gnupg") +depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gnupg" + "${MINGW_PACKAGE_PREFIX}-libassuan" + "${MINGW_PACKAGE_PREFIX}-libgpg-error" + "${MINGW_PACKAGE_PREFIX}-npth" + ) options=('!emptydirs') -source=(ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2{,.sig}) -sha1sums=('8dd7711a4de117994fe2d45879ef8a9900d50f6a' - 'SKIP') +source=(ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2{,.sig} + gpgme-1.5.4-mingw-mkstemp.patch) +sha1sums=('8cf1bcce8603bd7d006065f08059cf85462828c4' + 'SKIP' + '8c7d7648772c29620b7fd23e867f60386ba92790') prepare() { cd ${srcdir}/${_realname}-${pkgver} - autoreconf -ivf + patch -p1 -i ${srcdir}/gpgme-1.5.4-mingw-mkstemp.patch + #autoreconf -ivf } build() { - mkdir -p "${srcdir}/build-${CARCH}" - cd "${srcdir}/build-${CARCH}" - "${srcdir}"/gpgme-${pkgver}/configure \ + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + + "${srcdir}"/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --libexecdir=${MINGW_PREFIX}/lib \ + --libexecdir=${MINGW_PREFIX}/bin \ --disable-fd-passing \ --disable-static \ --disable-gpgsm-test + make } check() { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" #make check } package() { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-gpgme/gpgme-1.5.4-mingw-mkstemp.patch b/mingw-w64-gpgme/gpgme-1.5.4-mingw-mkstemp.patch new file mode 100644 index 0000000000..32a3c29a30 --- /dev/null +++ b/mingw-w64-gpgme/gpgme-1.5.4-mingw-mkstemp.patch @@ -0,0 +1,19 @@ +--- gpgme-1.5.4/src/w32-util.c.orig 2015-04-30 09:13:53.846200000 +0300 ++++ gpgme-1.5.4/src/w32-util.c 2015-04-30 09:14:42.224800000 +0300 +@@ -595,6 +595,7 @@ + static const char letters[] = + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + ++#if __MINGW64_VERSION_MAJOR < 5 + /* Generate a temporary file name based on TMPL. TMPL must match the + rules for mk[s]temp (i.e. end in "XXXXXX"). The name constructed + does not exist at the time of the call to mkstemp. TMPL is +@@ -677,7 +678,7 @@ + gpg_err_set_errno (EEXIST); + return -1; + } +- ++#endif + + int + _gpgme_mkstemp (int *fd, char **name) From d054c8b9c021c3753bea92c93cb4e3d7f26af096 Mon Sep 17 00:00:00 2001 From: LI Xuzhang Date: Thu, 30 Apr 2015 17:10:24 +0800 Subject: [PATCH 0962/2060] Adjust the structure of the PKGBUILD. --- mingw-w64-libmodbus-git/PKGBUILD | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/mingw-w64-libmodbus-git/PKGBUILD b/mingw-w64-libmodbus-git/PKGBUILD index b940209715..6f4c480f03 100644 --- a/mingw-w64-libmodbus-git/PKGBUILD +++ b/mingw-w64-libmodbus-git/PKGBUILD @@ -1,31 +1,40 @@ # Contributor: LI Xuzhang +# Contributor: Stas Elensky _realname=libmodbus + pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=v3.1.2.11.g98c4aca +pkgver=652.98c4aca pkgrel=1 pkgdesc="A Modbus library for Linux, Mac OS X, FreeBSD, QNX and Win32 (mingw-w64)" + arch=('any') license=('LGPL') -makedepends=(git "${MINGW_PACKAGE_PREFIX}-gcc" -"${MINGW_PACKAGE_PREFIX}-pkg-config") provides=(libmodbus) -depends=() -options=(!strip !buildflags staticlibs) + source=("git://github.com/stephane/libmodbus") url="http://libmodbus.org/" md5sums=('SKIP') +makedepends=(git + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=() +options=('strip' 'staticlibs' '!buildflags' '!emptydirs' '!debug') + pkgver() { cd $_realname - #echo $(git rev-list --count HEAD).$(git rev-parse --short HEAD) - git describe --tags |sed 's+-+.+g' + echo $(git rev-list --count HEAD).$(git rev-parse --short HEAD) + #git describe --tags |sed 's+-+.+g' } build() { + unset CFLAGS + unset LDFLAGS + cd $_realname ./autogen.sh - CFLAGS="" ./configure --prefix=${MINGW_PREFIX} --without-documentation + ./configure --prefix=${MINGW_PREFIX} make } From be43b3dddbc78edce16eae11a0805b3b5882f577 Mon Sep 17 00:00:00 2001 From: alex85k Date: Thu, 30 Apr 2015 14:28:09 +0300 Subject: [PATCH 0963/2060] libpatialite, spatialite-tools: rebuild with newer sqlite3 --- mingw-w64-libspatialite/PKGBUILD | 2 +- mingw-w64-spatialite-tools/PKGBUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libspatialite/PKGBUILD b/mingw-w64-libspatialite/PKGBUILD index 4b2da0feb9..e69bddff5f 100644 --- a/mingw-w64-libspatialite/PKGBUILD +++ b/mingw-w64-libspatialite/PKGBUILD @@ -6,7 +6,7 @@ _realname=libspatialite pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.2.0 -pkgrel=3 +pkgrel=4 pkgdesc="SQLite extension to support spatial data types and operations (mingw-w64)" arch=('any') url="http://www.gaia-gis.it/fossil/libspatialite" diff --git a/mingw-w64-spatialite-tools/PKGBUILD b/mingw-w64-spatialite-tools/PKGBUILD index e3ce94165b..d1d25243b6 100644 --- a/mingw-w64-spatialite-tools/PKGBUILD +++ b/mingw-w64-spatialite-tools/PKGBUILD @@ -5,7 +5,7 @@ _realname=spatialite-tools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.2.0 -pkgrel=2 +pkgrel=3 pkgdesc='Set of CLI tools for spatialite (mingw-w64)' arch=('any') url='https://www.gaia-gis.it/fossil/spatialite-tools/index' From ac3b35373d68b8c628f26111bf80d5b954512ed3 Mon Sep 17 00:00:00 2001 From: alex85k Date: Thu, 30 Apr 2015 18:56:39 +0300 Subject: [PATCH 0964/2060] gdal: add actually used libraries to dependencies --- mingw-w64-gdal/PKGBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-gdal/PKGBUILD b/mingw-w64-gdal/PKGBUILD index fe13b2cefb..1e2b9a0ce8 100644 --- a/mingw-w64-gdal/PKGBUILD +++ b/mingw-w64-gdal/PKGBUILD @@ -6,7 +6,7 @@ _realname=gdal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.11.2 -pkgrel=1 +pkgrel=2 pkgdesc="A translator library for raster geospatial data formats (mingw-w64)" arch=('any') url="http://www.gdal.org/" @@ -19,6 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cfitsio" "${MINGW_PACKAGE_PREFIX}-giflib" "${MINGW_PACKAGE_PREFIX}-hdf5" "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-json-c" "${MINGW_PACKAGE_PREFIX}-libfreexl" "${MINGW_PACKAGE_PREFIX}-libgeotiff" "${MINGW_PACKAGE_PREFIX}-libiconv" @@ -28,6 +29,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cfitsio" "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-libwebp" "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-openjpeg2" "${MINGW_PACKAGE_PREFIX}-pcre" "${MINGW_PACKAGE_PREFIX}-poppler" "${MINGW_PACKAGE_PREFIX}-postgresql" From 216fcb7247beccfdc33cb24f750e45d4aa608c75 Mon Sep 17 00:00:00 2001 From: Alexander Shukaev Date: Thu, 30 Apr 2015 19:35:19 +0200 Subject: [PATCH 0965/2060] emacs: Update --- mingw-w64-emacs-git/PKGBUILD | 57 ++++++++++++++++-------------- mingw-w64-emacs/PKGBUILD | 54 +++++++++++++++------------- mingw-w64-winpthreads-git/PKGBUILD | 9 +++-- 3 files changed, 68 insertions(+), 52 deletions(-) diff --git a/mingw-w64-emacs-git/PKGBUILD b/mingw-w64-emacs-git/PKGBUILD index 3bd97d6790..b143c771b9 100644 --- a/mingw-w64-emacs-git/PKGBUILD +++ b/mingw-w64-emacs-git/PKGBUILD @@ -2,29 +2,27 @@ _realname='emacs' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r121216.18a78f8 +pkgver=r121276.5e7ed98 pkgrel=1 pkgdesc="The extensible, customizable, self-documenting, real-time display editor (mingw-w64)" url="http://www.gnu.org/software/${_realname}/" license=('GPL3') arch=('any') -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -depends=( - "${MINGW_PACKAGE_PREFIX}-ctags" - "${MINGW_PACKAGE_PREFIX}-dbus" - "${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-giflib" - "${MINGW_PACKAGE_PREFIX}-gnutls" - "${MINGW_PACKAGE_PREFIX}-imagemagick" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-librsvg" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-xpm-nox" - "${MINGW_PACKAGE_PREFIX}-zlib" -) +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +depends=("${MINGW_PACKAGE_PREFIX}-ctags" + "${MINGW_PACKAGE_PREFIX}-dbus" + "${MINGW_PACKAGE_PREFIX}-imagemagick" + "${MINGW_PACKAGE_PREFIX}-winpthreads") +optdepends=("${MINGW_PACKAGE_PREFIX}-giflib" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-librsvg" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-xpm-nox" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "git") @@ -32,11 +30,9 @@ options=('strip') source=("${_realname}"::"git://git.savannah.gnu.org/${_realname}.git" 'image.c.diff' 'lread.c.diff') -sha256sums=( - 'SKIP' - '4571d45ec26fd556e73a70bb0ab0a2a8fa1efc5e3b3c5b472ab68bb7dc9bf52c' - 'b9db1b7d939301d0fedf52db6ac055f7265ee5bc0c3c757e394700ca39577b7f' -) +sha256sums=('SKIP' + '4571d45ec26fd556e73a70bb0ab0a2a8fa1efc5e3b3c5b472ab68bb7dc9bf52c' + 'b9db1b7d939301d0fedf52db6ac055f7265ee5bc0c3c757e394700ca39577b7f') pkgver() { cd "${_realname}" @@ -53,7 +49,7 @@ prepare() { build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd build-${MINGW_CHOST} + cd "build-${MINGW_CHOST}" local with_wide_int='no' @@ -61,10 +57,8 @@ build() { with_wide_int='yes' fi - # NOTE: - # Do not add `-funroll-loops' to `CFLAGS'! CPPFLAGS="-DNDEBUG -isystem ${MINGW_PREFIX}/include" - CFLAGS="-pipe -O3 -fomit-frame-pointer" + CFLAGS="-pipe -O3 -fomit-frame-pointer -funroll-loops" LDFLAGS="-s -Wl,-s" "${srcdir}/${_realname}/configure" \ --prefix="${MINGW_PREFIX}" \ @@ -85,4 +79,15 @@ package() { make DESTDIR="${pkgdir}" install rm -f "${pkgdir}${MINGW_PREFIX}/bin/ctags.exe" rm -f "${pkgdir}${MINGW_PREFIX}/share/man/man1/ctags.1.gz" + + local dir="${pkgdir}${MINGW_PREFIX}/share/${_realname}" + dir="${dir}/$(ls -1 ${dir} | grep -E '([0-9]+\.[0-9]+)(\.[0-9]+)?')/src" + + mkdir -p "${dir}" + cd "${srcdir}/${_realname}/src" + cp *.c *.h *.m "${dir}" } + +# TODO: +# Patch `shell-file-name' default in the C source code similarly to +# `source-directory'. diff --git a/mingw-w64-emacs/PKGBUILD b/mingw-w64-emacs/PKGBUILD index 3ec0796fe0..9a532caeca 100644 --- a/mingw-w64-emacs/PKGBUILD +++ b/mingw-w64-emacs/PKGBUILD @@ -1,33 +1,30 @@ # Maintainer: Haroogan -_realname=emacs +_realname='emacs' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=24.5 -pkgrel='1' -pkgdesc=\ -"The extensible, customizable, self-documenting, real-time display editor." +pkgrel=1 +pkgdesc="The extensible, customizable, self-documenting, real-time display editor (mingw-w64)" url="http://www.gnu.org/software/${_realname}/" license=('GPL3') arch=('any') -depends=( - "${MINGW_PACKAGE_PREFIX}-ctags" - "${MINGW_PACKAGE_PREFIX}-dbus" - "${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-giflib" - "${MINGW_PACKAGE_PREFIX}-gnutls" - "${MINGW_PACKAGE_PREFIX}-imagemagick" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-librsvg" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-xpm-nox" - "${MINGW_PACKAGE_PREFIX}-zlib" -) +depends=("${MINGW_PACKAGE_PREFIX}-ctags" + "${MINGW_PACKAGE_PREFIX}-dbus" + "${MINGW_PACKAGE_PREFIX}-imagemagick" + "${MINGW_PACKAGE_PREFIX}-winpthreads") +optdepends=("${MINGW_PACKAGE_PREFIX}-giflib" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-librsvg" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-xpm-nox" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('strip') -source=(http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz{,.sig} +source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz"{,.sig} 'image.c.diff' 'lread.c.diff' 'Makefile.in.diff') @@ -48,7 +45,7 @@ prepare() { build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd build-${MINGW_CHOST} + cd "build-${MINGW_CHOST}" local with_wide_int='no' @@ -56,10 +53,8 @@ build() { with_wide_int='yes' fi - # NOTE: - # Do not add `-funroll-loops' to `CFLAGS'! CPPFLAGS="-DNDEBUG -isystem ${MINGW_PREFIX}/include" - CFLAGS="-pipe -O3 -fomit-frame-pointer" + CFLAGS="-pipe -O3 -fomit-frame-pointer -funroll-loops" LDFLAGS="-s -Wl,-s" "${srcdir}/${_realname}-${pkgver}/configure" \ --prefix="${MINGW_PREFIX}" \ @@ -80,4 +75,15 @@ package() { make DESTDIR="${pkgdir}" install rm -f "${pkgdir}${MINGW_PREFIX}/bin/ctags.exe" rm -f "${pkgdir}${MINGW_PREFIX}/share/man/man1/ctags.1.gz" + + local dir="${pkgdir}${MINGW_PREFIX}/share/${_realname}" + dir="${dir}/$(ls -1 ${dir} | grep -E '([0-9]+\.[0-9]+)(\.[0-9]+)?')/src" + + mkdir -p "${dir}" + cd "${srcdir}/${_realname}-${pkgver}/src" + cp *.c *.h *.m "${dir}" } + +# TODO: +# Patch `shell-file-name' default in the C source code similarly to +# `source-directory'. diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index dfd7fa5e70..9b517ca231 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -7,9 +7,12 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-lib pkgver=5.0.0.4497.4254261 pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" -arch=('any') url="http://mingw-w64.sourceforge.net" -license=(custom:'Permissive-like') # TODO: clarify +# The main license of `winpthreads' is MIT, but parts of this library are +# derived from the "POSIX Threads for Microsoft Windows" library, which is +# licensed under BSD [1]. +license=('MIT' 'BSD') +arch=('any') groups=("${MINGW_PACKAGE_PREFIX}-toolchain") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" @@ -125,3 +128,5 @@ package_mingw-w64-x86_64-winpthreads-git() { package_mingw-w64-x86_64-libwinpthread-git() { package_libwinpthread } + +# [1] http://locklessinc.com/articles/pthreads_on_windows/ From 76487cb6d13f1a5c3a3d1034468c291c603c2fc3 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 1 May 2015 11:04:36 +0200 Subject: [PATCH 0966/2060] librevenge: updated to 0.0.2. --- mingw-w64-librevenge/PKGBUILD | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/mingw-w64-librevenge/PKGBUILD b/mingw-w64-librevenge/PKGBUILD index 8632ec3324..9c063d0d33 100644 --- a/mingw-w64-librevenge/PKGBUILD +++ b/mingw-w64-librevenge/PKGBUILD @@ -3,18 +3,22 @@ _realname=librevenge pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.0.1 +pkgver=0.0.2 pkgrel=1 -pkgdesc="library for REVerses ENGineered formats filters (mingw-w64)" +pkgdesc="Library for REVerses ENGineered formats filters (mingw-w64)" arch=('any') -url="ttp://sf.net/p/libwpd/librevenge/" +url="http://sf.net/p/libwpd/librevenge/" license=("MPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-boost") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "doxygen") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-zlib") checkdepends=("${MINGW_PACKAGE_PREFIX}-cppunit") options=(staticlibs strip) source=("http://sourceforge.net/projects/libwpd/files/librevenge/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz") -md5sums=('7c397d6eb39d906dacacd74cc1f0d749') +md5sums=('4ee55a80ee32af6752dd8c56eb1b1b5e') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -30,7 +34,7 @@ build() { --host=${MINGW_CHOST} \ --enable-shared \ --enable-static \ - --with-boost-filesystem=boost_filesystem-mt + --with-docs=yes make } @@ -38,4 +42,7 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LGPL" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LGPL" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.MPL" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.MPL" } From 4c925a004ac488db1ec8f541e12b71140d898a54 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 1 May 2015 11:14:47 +0200 Subject: [PATCH 0967/2060] libodfgen: new package. --- mingw-w64-libodfgen/PKGBUILD | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 mingw-w64-libodfgen/PKGBUILD diff --git a/mingw-w64-libodfgen/PKGBUILD b/mingw-w64-libodfgen/PKGBUILD new file mode 100644 index 0000000000..2072e2065e --- /dev/null +++ b/mingw-w64-libodfgen/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Andrea Zagli + +_realname=libodfgen +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.1.3 +pkgrel=1 +pkgdesc="Library to generate ODF documents (mingw-w64)" +arch=('any') +url="http://sf.net/p/libwpd/libodfgen/" +license=("LGPL 2.1") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "doxygen") +depends=("${MINGW_PACKAGE_PREFIX}-librevenge") +options=(staticlibs strip) +source=("http://sourceforge.net/projects/libwpd/files/libodfgen/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz") +sha256sums=('d3a09d987e9c0955846cad1e8a885a9c7a76bfaff75d4c1b5626844c62808eba') + +prepare() { + cd ${srcdir}/${_realname}-${pkgver} +} + +build() { + cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static \ + --with-docs=yes + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install + find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LGPL" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LGPL" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.MPL" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.MPL" +} From 5ce7704c1b938b6b18166d03ef2a6a5bba86818e Mon Sep 17 00:00:00 2001 From: Chilledheart Date: Fri, 1 May 2015 17:16:28 +0800 Subject: [PATCH 0968/2060] curl: Update to 7.42.1 --- mingw-w64-curl/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 0764f6a8f2..c922c75a13 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -5,8 +5,8 @@ _variant=-openssl _realname=curl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=7.42.0 -pkgrel=2 +pkgver=7.42.1 +pkgrel=1 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" @@ -29,7 +29,7 @@ options=('staticlibs') source=("$url/download/${_realname}-$pkgver.tar.bz2"{,.asc} "0001-curl-relocation.patch" "0002-curl-mingw-enable-static.patch") -md5sums=('0a10174a0ea5105c46e92b51e1b311f8' +md5sums=('296945012ce647b94083ed427c1877a8' 'SKIP' '58520051c4ed77781d233c3fa40a5435' 'eac9e212e619490966ae47004bec547b') From 3211edff086a8e776c2de478b573f914ffb6452a Mon Sep 17 00:00:00 2001 From: Paul Moore Date: Fri, 1 May 2015 10:55:08 +0100 Subject: [PATCH 0969/2060] file: New package --- mingw-w64-file/PKGBUILD | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 mingw-w64-file/PKGBUILD diff --git a/mingw-w64-file/PKGBUILD b/mingw-w64-file/PKGBUILD new file mode 100644 index 0000000000..38066b72b2 --- /dev/null +++ b/mingw-w64-file/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Paul Moore + +_realname=file +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=5.22 +pkgrel=1 +pkgdesc='Determine the type of a file from its contents (mingw-w64)' +arch=('any') +url='http://www.darwinsys.com/file/' +license=('BSD') +depends=("${MINGW_PACKAGE_PREFIX}-libsystre") +source=("ftp://ftp.astron.com/pub/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('8fb13e5259fe447e02c4a37bc7225add') +options=('strip' '!libtool' 'staticlibs') + +prepare() { + cd $srcdir/${_realname}-${pkgver} +} + +build() { + cd $srcdir/${_realname}-${pkgver} + ./configure --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + + make +} + +package() { + cd ${srcdir}/${_realname}-${pkgver} + make install DESTDIR="${pkgdir}" + + # Licenses + install -Dm644 "${srcdir}/${_realname}-${pkgver}/README" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} From 754b99570eabf9b8195608f707b1f29027334573 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 2 May 2015 23:01:20 +0300 Subject: [PATCH 0970/2060] Some fixes to template --- mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball b/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball index 5be959c042..c231466f56 100644 --- a/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball +++ b/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball @@ -4,11 +4,11 @@ _realname=somepackage pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.0 pkgrel=1 -pkgdesc='Some package' -groups=("${MINGW_PACKAGE_PREFIX}") +pkgdesc="Some package (mingw-w64)" arch=('any') url='http://www.somepackage.org/' license=('LICENSE') +validpgpkeys=('gpg_KEY') source=("http://www.somepackage.org/${_realname}/${_realname}-${pkgver}.tar.gz" "0001-A-fix.patch") sha1sums=("SKIP" @@ -30,6 +30,7 @@ build() { --target=${MINGW_CHOST} \ --enable-static \ --enable-shared + make } From 05a278dfca03798193a8a1b296ccd24142db2b2d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 3 May 2015 00:14:06 +0300 Subject: [PATCH 0971/2060] libssh: Update to 0.6.5 --- mingw-w64-libssh/PKGBUILD | 17 ++++++++--------- mingw-w64-libssh/mingw-w64-pthreads.patch | 11 ----------- 2 files changed, 8 insertions(+), 20 deletions(-) delete mode 100644 mingw-w64-libssh/mingw-w64-pthreads.patch diff --git a/mingw-w64-libssh/PKGBUILD b/mingw-w64-libssh/PKGBUILD index ebacac83dd..a9359a6d5e 100644 --- a/mingw-w64-libssh/PKGBUILD +++ b/mingw-w64-libssh/PKGBUILD @@ -2,7 +2,7 @@ _realname=libssh pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.6.4 +pkgver=0.6.5 pkgrel=1 pkgdesc="Library for accessing ssh client services through C libraries (mingw-w64)" arch=('any') @@ -16,20 +16,20 @@ depends=("${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib") groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') -source=(https://red.libssh.org/attachments/download/107/${_realname}-${pkgver}.tar.gz - mingw-w64-pthreads.patch +validpgpkeys=('8DFF53E18F2ABC8D8F3C92237EE0FC4DCC014E3D') # Andreas Schneider +source=(https://red.libssh.org/attachments/download/121/${_realname}-${pkgver}.tar.xz + https://red.libssh.org/attachments/download/120/${_realname}-${pkgver}.tar.asc mingw-as-unix.patch mingw-DATADIR-conflict.patch fix-threads-libraryname-in-config.patch) -md5sums=('8a7daa171c69913f475dacffcb639fda' - 'ca268e1366633f988e21cbcf5a4d8145' +md5sums=('fdf107011ae1847d86620b39ae37d4f3' + 'SKIP' 'd819f18cb4ae07ad2a6589b02765b6c2' '7be13e00d27ce77f862012ee0654019b' '34899219c2804f81a2218ba13847122b') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/mingw-w64-pthreads.patch patch -p1 -i ${srcdir}/mingw-as-unix.patch patch -p1 -i ${srcdir}/mingw-DATADIR-conflict.patch patch -p1 -i ${srcdir}/fix-threads-libraryname-in-config.patch @@ -45,6 +45,7 @@ build() { -DCMAKE_BUILD_TYPE=Release \ -DWITH_STATIC_LIB=ON \ ../${_realname}-${pkgver} + make all } @@ -52,9 +53,7 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make install - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -wm ${pkgdir}${MINGW_PREFIX}) sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libssh.pc \ -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libssh_threads.pc \ diff --git a/mingw-w64-libssh/mingw-w64-pthreads.patch b/mingw-w64-libssh/mingw-w64-pthreads.patch deleted file mode 100644 index 36c60451b3..0000000000 --- a/mingw-w64-libssh/mingw-w64-pthreads.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libssh-0.6.3/src/threads/pthread.c.orig 2014-03-16 23:41:28.498600000 +0400 -+++ libssh-0.6.3/src/threads/pthread.c 2014-03-16 23:41:53.318200000 +0400 -@@ -75,7 +75,7 @@ - } - - static unsigned long ssh_pthread_thread_id (void){ --#if _WIN32 -+#if defined(_WIN32) && !defined(__MINGW32__) - return (unsigned long) pthread_self().p; - #else - return (unsigned long) pthread_self(); From c093a3d7c7625ccd70572d778ef2fae467584b1e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 3 May 2015 00:15:01 +0300 Subject: [PATCH 0972/2060] libtasn1: Update to 4.5 --- mingw-w64-libtasn1/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libtasn1/PKGBUILD b/mingw-w64-libtasn1/PKGBUILD index c73822acac..eb38bfff3c 100644 --- a/mingw-w64-libtasn1/PKGBUILD +++ b/mingw-w64-libtasn1/PKGBUILD @@ -2,17 +2,17 @@ _realname=libtasn1 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.4 +pkgver=4.5 pkgrel=1 -pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications (mingw-w64)" +pkgdesc="A library for Abstract Syntax Notation One (ASN.1) and Distinguish Encoding Rules (DER) manipulation (mingw-w64)" arch=('any') -url="http://www.gnu.org/software/libidn" +url="http://www.gnu.org/software/libtasn1/" license=("GPL3, LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://ftp.gnu.org/gnu/libtasn1/${_realname}-${pkgver}.tar.gz"{,.sig}) -md5sums=('c26d76d1309dd339365c563076599912' +md5sums=('81d272697545e82d39f6bd14854b68f0' 'SKIP') prepare() { @@ -20,6 +20,7 @@ prepare() { } build() { + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" "${srcdir}"/${_realname}-${pkgver}/configure \ From ef3c7fd1f8d3ccef9e9a86df7ca2537a96a6fef1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 3 May 2015 00:29:49 +0300 Subject: [PATCH 0973/2060] libodfgen, librevenge: Some fixes. --- mingw-w64-libodfgen/PKGBUILD | 2 ++ mingw-w64-librevenge/PKGBUILD | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mingw-w64-libodfgen/PKGBUILD b/mingw-w64-libodfgen/PKGBUILD index 2072e2065e..4b6c942a9a 100644 --- a/mingw-w64-libodfgen/PKGBUILD +++ b/mingw-w64-libodfgen/PKGBUILD @@ -21,6 +21,7 @@ prepare() { } build() { + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ./configure \ @@ -30,6 +31,7 @@ build() { --enable-shared \ --enable-static \ --with-docs=yes + make } diff --git a/mingw-w64-librevenge/PKGBUILD b/mingw-w64-librevenge/PKGBUILD index 9c063d0d33..c1bb4e59c3 100644 --- a/mingw-w64-librevenge/PKGBUILD +++ b/mingw-w64-librevenge/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=librevenge - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.0.2 pkgrel=1 @@ -26,6 +25,7 @@ prepare() { build() { export lt_cv_deplibs_check_method='pass_all' + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ./configure \ @@ -35,6 +35,7 @@ build() { --enable-shared \ --enable-static \ --with-docs=yes + make } From c59a33b86ed99ca0711bb5dcdb6c11bb1dad19da Mon Sep 17 00:00:00 2001 From: 11doctorwhocanada <11doctorwhocanada@gmail.com> Date: Thu, 30 Apr 2015 11:15:12 -0400 Subject: [PATCH 0974/2060] static build instructions in. couldn't stand the uneveness. --- mingw-w64-wxwidgets/PKGBUILD | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/mingw-w64-wxwidgets/PKGBUILD b/mingw-w64-wxwidgets/PKGBUILD index 1eada6c7f0..2716911e07 100644 --- a/mingw-w64-wxwidgets/PKGBUILD +++ b/mingw-w64-wxwidgets/PKGBUILD @@ -1,5 +1,6 @@ # Maintainer: Alexey Pavlov # Contributor: Renato Silva +# Contributor: Zach Bacon <11doctorwhocanada@gmail.com> _realname=wxWidgets pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" @@ -46,12 +47,40 @@ build() { --enable-iff \ --enable-permissive \ --enable-unicode \ + --enable-graphics_ctx \ --enable-accessibility \ --disable-mediactrl \ --disable-monolithic \ --disable-mslu \ --disable-precomp-headers \ - --with-msw + --with-msw \ + --with-opengl + + make #VERBOSE=1 + + #CXXFLAGS+=" -std=gnu++11" + [[ -d ${srcdir}/build-${CARCH}-static ]] && rm -rf ${srcdir}/build-${CARCH}-static + mkdir -p ${srcdir}/build-${CARCH}-static && cd ${srcdir}/build-${CARCH}-static + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --enable-static \ + --disable-shared \ + --enable-iniconf \ + --enable-iff \ + --enable-permissive \ + --enable-unicode \ + --enable-graphics_ctx \ + --enable-accessibility \ + --disable-mediactrl \ + --disable-monolithic \ + --disable-mslu \ + --disable-precomp-headers \ + --with-msw \ + --with-opengl make #VERBOSE=1 } @@ -59,6 +88,9 @@ build() { package() { cd ${srcdir}/build-${CARCH} make DESTDIR="${pkgdir}" install + + cd ${srcdir}/build-${CARCH}-static + make DESTDIR="${pkgdir}" install mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin From 6c8dfcc82d6467e40b19cb292913d0e3636c1401 Mon Sep 17 00:00:00 2001 From: Ray Griffin Date: Sun, 3 May 2015 22:35:03 +0100 Subject: [PATCH 0975/2060] libsodium: bump to 1.0.2 --- mingw-w64-libsodium/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libsodium/PKGBUILD b/mingw-w64-libsodium/PKGBUILD index 333b122cca..9966341ae8 100644 --- a/mingw-w64-libsodium/PKGBUILD +++ b/mingw-w64-libsodium/PKGBUILD @@ -2,7 +2,7 @@ _realname=libsodium pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.1 +pkgver=1.0.2 pkgrel=1 pkgdesc="P(ortable|ackageable) NaCl-based crypto library (mingw-w64)" arch=("any") @@ -10,7 +10,7 @@ url="https://github.com/jedisct1/libsodium" license=('custom:ISC') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") source=("http://download.dnscrypt.org/${_realname}/releases/${_realname}-${pkgver}.tar.gz") -md5sums=('9a221b49fba7281ceaaf5e278d0f4430') +md5sums=('dc40eb23e293448c6fc908757738003f') build() { rm -rf "${srcdir}/build-${MINGW_CHOST}" From 631035ff3e106b83016dc32a41c20e8c00cee09f Mon Sep 17 00:00:00 2001 From: Ray Griffin Date: Mon, 4 May 2015 10:01:45 +0100 Subject: [PATCH 0976/2060] libzip: Update to 1.0 --- mingw-w64-libzip/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libzip/PKGBUILD b/mingw-w64-libzip/PKGBUILD index 1937aa2b4d..6eef54ed67 100644 --- a/mingw-w64-libzip/PKGBUILD +++ b/mingw-w64-libzip/PKGBUILD @@ -2,7 +2,7 @@ _realname=libzip pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.11.2 +pkgver=1.0 pkgrel=1 pkgdesc="A C library for reading, creating, and modifying zip archives (mingw-w64)" url="http://www.nih.at/libzip/index.html" @@ -12,7 +12,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' '!libtool') source=("http://www.nih.at/${_realname}/${_realname}-${pkgver}.tar.xz") -md5sums=('44c99b67dca34707b5728e5f8434fe91') +md5sums=('4848dc1a951cb28b28f4387c9a4c60e7') prepare() { cd "$srcdir/${_realname}-$pkgver" From 167cff85afcc9f31258d4baffee9e5a46b261c67 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 4 May 2015 22:33:37 +0300 Subject: [PATCH 0977/2060] gnutls: Update to 3.4.1 --- .../0002-fix-duplicate-entries.patch | 36 ------------------- mingw-w64-gnutls/0004-fix-gtkdoc.all.patch | 11 ------ .../0005-fix-strtok-conflict.mingw.patch | 20 ----------- mingw-w64-gnutls/PKGBUILD | 19 +++------- 4 files changed, 5 insertions(+), 81 deletions(-) delete mode 100644 mingw-w64-gnutls/0002-fix-duplicate-entries.patch delete mode 100644 mingw-w64-gnutls/0004-fix-gtkdoc.all.patch delete mode 100644 mingw-w64-gnutls/0005-fix-strtok-conflict.mingw.patch diff --git a/mingw-w64-gnutls/0002-fix-duplicate-entries.patch b/mingw-w64-gnutls/0002-fix-duplicate-entries.patch deleted file mode 100644 index 2b76db5ca3..0000000000 --- a/mingw-w64-gnutls/0002-fix-duplicate-entries.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 7e63027a5caafa55dcca65c5b9bff3bf76c5a41c Mon Sep 17 00:00:00 2001 -From: Nikos Mavrogiannopoulos -Date: Thu, 9 Apr 2015 16:00:43 +0200 -Subject: [PATCH] remove duplicate entries from manpages Makefile - ---- - doc/manpages/Makefile.am | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -diff --git a/doc/manpages/Makefile.am b/doc/manpages/Makefile.am -index 8e793d3..68de757 100644 ---- a/doc/manpages/Makefile.am -+++ b/doc/manpages/Makefile.am -@@ -134,11 +134,8 @@ APIMANS += gnutls_certificate_get_peers.3 - APIMANS += gnutls_certificate_get_peers_subkey_id.3 - APIMANS += gnutls_certificate_get_trust_list.3 - APIMANS += gnutls_certificate_get_verify_flags.3 --APIMANS += gnutls_certificate_get_verify_flags.3 --APIMANS += gnutls_certificate_get_x509_crt.3 - APIMANS += gnutls_certificate_get_x509_crt.3 - APIMANS += gnutls_certificate_get_x509_key.3 --APIMANS += gnutls_certificate_get_x509_key.3 - APIMANS += gnutls_certificate_send_x509_rdn_sequence.3 - APIMANS += gnutls_certificate_server_set_request.3 - APIMANS += gnutls_certificate_set_dh_params.3 -@@ -1101,7 +1098,7 @@ compare-makefile: - @echo "******************************************************************************" - @echo "If the following step fails copy $(srcdir)/doc/manpages/tmp-compare-makefile to doc/manpages/Makefile.am" - @echo "******************************************************************************" -- FUNCS=`cat $(top_srcdir)/lib/includes/gnutls/*.h | $(top_srcdir)/doc/scripts/getfuncs.pl|sort -d`; \ -+ FUNCS=`cat $(top_srcdir)/lib/includes/gnutls/*.h | $(top_srcdir)/doc/scripts/getfuncs.pl|sort -d|uniq`; \ - MANS=""; \ - for i in $$FUNCS; do \ - MANS="$$MANS\nAPIMANS += $$i.3"; \ --- -libgit2 0.21.4 diff --git a/mingw-w64-gnutls/0004-fix-gtkdoc.all.patch b/mingw-w64-gnutls/0004-fix-gtkdoc.all.patch deleted file mode 100644 index e76aabdabf..0000000000 --- a/mingw-w64-gnutls/0004-fix-gtkdoc.all.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gnutls-3.1.5/gtk-doc.make.orig 2013-04-12 15:09:23 +0400 -+++ gnutls-3.1.5/gtk-doc.make 2013-04-16 20:16:02 +0400 -@@ -92,7 +92,7 @@ - - #### scan #### - --scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) -+scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) setup-build.stamp - @echo ' DOC Scanning header files' - @_source_dir='' ; \ - for i in $(DOC_SOURCE_DIR) ; do \ diff --git a/mingw-w64-gnutls/0005-fix-strtok-conflict.mingw.patch b/mingw-w64-gnutls/0005-fix-strtok-conflict.mingw.patch deleted file mode 100644 index 9d55709ef0..0000000000 --- a/mingw-w64-gnutls/0005-fix-strtok-conflict.mingw.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- gnutls-3.1.5/gl/m4/strtok_r.m4.orig 2013-05-03 03:34:40 +0400 -+++ gnutls-3.1.5/gl/m4/strtok_r.m4 2013-05-03 04:34:01 +0400 -@@ -13,6 +13,7 @@ - AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CHECK_FUNCS([strtok_r]) -+ ac_cv_func_strtok_r=yes - if test $ac_cv_func_strtok_r = yes; then - HAVE_STRTOK_R=1 - dnl glibc 2.7 has a bug in strtok_r that causes a segmentation fault ---- gnutls-3.1.5/lib/verify-tofu.c.orig 2013-05-03 04:35:09 +0400 -+++ gnutls-3.1.5/lib/verify-tofu.c 2013-05-03 05:21:50 +0400 -@@ -34,6 +34,7 @@ - #include - #include - #include -+#include - - struct gnutls_tdb_int { - gnutls_tdb_store_func store; diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index a02a27476f..2a16bb6f13 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -2,8 +2,8 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.4.0 -pkgrel=2 +pkgver=3.4.1 +pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') license=('GPL3' 'LGPL2.1') @@ -22,24 +22,15 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") # Need remove "autogen" package before building. source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*}/${_realname}-${pkgver}.tar.xz{,.sig} - 0001-add-missing-define.patch - 0002-fix-duplicate-entries.patch - 0004-fix-gtkdoc.all.patch - 0005-fix-strtok-conflict.mingw.patch) -md5sums=('aa015c2666b031044edfb01b01980d84' + 0001-add-missing-define.patch) +md5sums=('2d04f34fa25b45f9dcb9104c0394e12e' 'SKIP' - '807a79513358a9f4123f62111f1eed59' - '516c3b60e5c2878a0af9f243fd4dac30' - '86cfab6e7c2ccfcfd1dad9d5024627e3' - '77287dc835afbb8cc4e9c4aa6b7adb7b') + '807a79513358a9f4123f62111f1eed59') validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-add-missing-define.patch - patch -p1 -i ${srcdir}/0002-fix-duplicate-entries.patch - #patch -p1 -i ${srcdir}/0004-fix-gtkdoc.all.patch - #patch -p1 -i ${srcdir}/0005-fix-strtok-conflict.mingw.patch WANT_AUTOMAKE=latest autoreconf -fi -I m4 } From d0b195aa339f26576977568ea9cf898100ad1217 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 5 May 2015 10:17:56 +0300 Subject: [PATCH 0978/2060] libzip: Update to 1.0.1 --- mingw-w64-libzip/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libzip/PKGBUILD b/mingw-w64-libzip/PKGBUILD index 6eef54ed67..6adb2cf003 100644 --- a/mingw-w64-libzip/PKGBUILD +++ b/mingw-w64-libzip/PKGBUILD @@ -2,7 +2,7 @@ _realname=libzip pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0 +pkgver=1.0.1 pkgrel=1 pkgdesc="A C library for reading, creating, and modifying zip archives (mingw-w64)" url="http://www.nih.at/libzip/index.html" @@ -12,7 +12,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' '!libtool') source=("http://www.nih.at/${_realname}/${_realname}-${pkgver}.tar.xz") -md5sums=('4848dc1a951cb28b28f4387c9a4c60e7') +md5sums=('e2371fc6f04a46efdaf8cbf4118ffafd') prepare() { cd "$srcdir/${_realname}-$pkgver" From d5cc64d218b131370bb48bb664fac9b137fa09b7 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Tue, 5 May 2015 12:02:50 +0300 Subject: [PATCH 0979/2060] curl: Fix netrc parsing on Windows Open it in text mode to avoid considering CR as part of the line --- .../0003-curl-mingw-text-mode-for-netrc.patch | 11 +++++++++++ mingw-w64-curl/PKGBUILD | 7 +++++-- 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-curl/0003-curl-mingw-text-mode-for-netrc.patch diff --git a/mingw-w64-curl/0003-curl-mingw-text-mode-for-netrc.patch b/mingw-w64-curl/0003-curl-mingw-text-mode-for-netrc.patch new file mode 100644 index 0000000000..0fca7c4550 --- /dev/null +++ b/mingw-w64-curl/0003-curl-mingw-text-mode-for-netrc.patch @@ -0,0 +1,11 @@ +--- curl-7.42.1.orig/lib/netrc.c 2015-04-29 09:06:52.000000000 +0300 ++++ curl-7.42.1/lib/netrc.c 2015-05-05 11:50:44.725023100 +0300 +@@ -109,7 +109,7 @@ + netrc_alloc = TRUE; + } + +- file = fopen(netrcfile, "r"); ++ file = fopen(netrcfile, "rt"); + if(netrc_alloc) + free(netrcfile); + if(file) { diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index c922c75a13..c67253c449 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -28,11 +28,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('staticlibs') source=("$url/download/${_realname}-$pkgver.tar.bz2"{,.asc} "0001-curl-relocation.patch" - "0002-curl-mingw-enable-static.patch") + "0002-curl-mingw-enable-static.patch" + "0003-curl-mingw-text-mode-for-netrc.patch") md5sums=('296945012ce647b94083ed427c1877a8' 'SKIP' '58520051c4ed77781d233c3fa40a5435' - 'eac9e212e619490966ae47004bec547b') + 'eac9e212e619490966ae47004bec547b' + 'c35c31a1c8ed28c75be93e5bf95c8c9e') validpgpkeys=('914C533DF9B2ADA2204F586D78E11C6B279D5C91') # Daniel Stenberg prepare() { @@ -40,6 +42,7 @@ prepare() { rm -f lib/pathtools.h lib/pathtools.c > /dev/null 2>&1 || true patch -p1 -i "${srcdir}/0001-curl-relocation.patch" patch -p1 -i "${srcdir}/0002-curl-mingw-enable-static.patch" + patch -p1 -i "${srcdir}/0003-curl-mingw-text-mode-for-netrc.patch" autoreconf -vfi } From a4df7ecc59daa65c03940b8ffb2f11cc3ba2387e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 5 May 2015 13:20:18 +0300 Subject: [PATCH 0980/2060] curl: Update version. --- mingw-w64-curl/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index c67253c449..013d471165 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -6,7 +6,7 @@ _variant=-openssl _realname=curl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=7.42.1 -pkgrel=1 +pkgrel=2 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" From bb6d420f543eb93904809b00916f467b4972c3ba Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Tue, 5 May 2015 15:08:59 +0300 Subject: [PATCH 0981/2060] curl: Fix digest authentication cherry-picked from upstream commit 59f3f92ba6150e9a5a57f71b6e781802148916d0 --- ...te-domain-from-the-realm-in-the-chal.patch | 211 ++++++++++++++++++ mingw-w64-curl/PKGBUILD | 9 +- 2 files changed, 217 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-curl/0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch diff --git a/mingw-w64-curl/0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch b/mingw-w64-curl/0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch new file mode 100644 index 0000000000..fba529492e --- /dev/null +++ b/mingw-w64-curl/0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch @@ -0,0 +1,211 @@ +From 59f3f92ba6150e9a5a57f71b6e781802148916d0 Mon Sep 17 00:00:00 2001 +From: Grant Pannell +Date: Sun, 26 Apr 2015 16:12:23 +0200 +Subject: [PATCH] sasl_sspi: Populate domain from the realm in the challenge + +Without this, SSPI based digest auth was broken. + +Bug: https://github.com/bagder/curl/pull/141.patch +--- + lib/curl_sasl.c | 14 +++++----- + lib/curl_sasl.h | 9 +++++++ + lib/curl_sasl_sspi.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + lib/curl_sspi.h | 4 +++ + 4 files changed, 95 insertions(+), 6 deletions(-) + +diff --git a/lib/curl_sasl.c b/lib/curl_sasl.c +index d9f63ab..68646bc 100644 +--- a/lib/curl_sasl.c ++++ b/lib/curl_sasl.c +@@ -76,9 +76,6 @@ const struct { + #define DIGEST_QOP_VALUE_STRING_AUTH_INT "auth-int" + #define DIGEST_QOP_VALUE_STRING_AUTH_CONF "auth-conf" + +-#define DIGEST_MAX_VALUE_LENGTH 256 +-#define DIGEST_MAX_CONTENT_LENGTH 1024 +- + /* The CURL_OUTPUT_DIGEST_CONV macro below is for non-ASCII machines. + It converts digest text to ASCII so the MD5 will be correct for + what ultimately goes over the network. +@@ -90,13 +87,16 @@ const struct { + return result; \ + } + ++#endif ++ ++#if !defined(CURL_DISABLE_CRYPTO_AUTH) + /* + * Returns 0 on success and then the buffers are filled in fine. + * + * Non-zero means failure to parse. + */ +-static int sasl_digest_get_pair(const char *str, char *value, char *content, +- const char **endptr) ++int Curl_sasl_digest_get_pair(const char *str, char *value, char *content, ++ const char **endptr) + { + int c; + bool starts_with_quote = FALSE; +@@ -157,7 +157,9 @@ static int sasl_digest_get_pair(const char *str, char *value, char *content, + + return 0; /* all is fine! */ + } ++#endif + ++#if !defined(CURL_DISABLE_CRYPTO_AUTH) && !defined(USE_WINDOWS_SSPI) + /* Convert md5 chunk to RFC2617 (section 3.1.3) -suitable ascii string*/ + static void sasl_digest_md5_to_ascii(unsigned char *source, /* 16 bytes */ + unsigned char *dest) /* 33 bytes */ +@@ -776,7 +778,7 @@ CURLcode Curl_sasl_decode_digest_http_message(const char *chlg, + chlg++; + + /* Extract a value=content pair */ +- if(!sasl_digest_get_pair(chlg, value, content, &chlg)) { ++ if(!Curl_sasl_digest_get_pair(chlg, value, content, &chlg)) { + if(Curl_raw_equal(value, "nonce")) { + digest->nonce = strdup(content); + if(!digest->nonce) +diff --git a/lib/curl_sasl.h b/lib/curl_sasl.h +index 0dc7377..117d60e 100644 +--- a/lib/curl_sasl.h ++++ b/lib/curl_sasl.h +@@ -65,6 +65,11 @@ struct kerberos5data; + #define SASL_MECH_STRING_NTLM "NTLM" + #define SASL_MECH_STRING_XOAUTH2 "XOAUTH2" + ++#if !defined(CURL_DISABLE_CRYPTO_AUTH) ++#define DIGEST_MAX_VALUE_LENGTH 256 ++#define DIGEST_MAX_CONTENT_LENGTH 1024 ++#endif ++ + enum { + CURLDIGESTALGO_MD5, + CURLDIGESTALGO_MD5SESS +@@ -136,6 +141,10 @@ char *Curl_sasl_build_spn(const char *service, const char *instance); + TCHAR *Curl_sasl_build_spn(const char *service, const char *instance); + #endif + ++/* This is used to extract the realm from a challenge message */ ++int Curl_sasl_digest_get_pair(const char *str, char *value, char *content, ++ const char **endptr); ++ + #if defined(HAVE_GSSAPI) + char *Curl_sasl_build_gssapi_spn(const char *service, const char *host); + #endif +diff --git a/lib/curl_sasl_sspi.c b/lib/curl_sasl_sspi.c +index 0a332e6..b149530 100644 +--- a/lib/curl_sasl_sspi.c ++++ b/lib/curl_sasl_sspi.c +@@ -40,6 +40,7 @@ + #include "sendf.h" + #include "strdup.h" + #include "curl_printf.h" ++#include "rawstr.h" + + /* The last #include files should be: */ + #include "curl_memory.h" +@@ -274,6 +275,74 @@ CURLcode Curl_sasl_create_digest_md5_message(struct SessionHandle *data, + } + + /* ++* Curl_override_sspi_http_realm() ++* ++* This is used to populate the domain in a SSPI identity structure ++* The realm is extracted from the challenge message and used as the ++* domain if it is not already explicitly set. ++* ++* Parameters: ++* ++* chlg [in] - The challenge message. ++* identity [in/out] - The identity structure. ++* ++* Returns CURLE_OK on success. ++*/ ++CURLcode Curl_override_sspi_http_realm(const char *chlg, ++ SEC_WINNT_AUTH_IDENTITY *identity) ++{ ++ xcharp_u domain, dup_domain; ++ ++ /* If domain is blank or unset, check challenge message for realm */ ++ if(!identity->Domain || !identity->DomainLength) { ++ for(;;) { ++ char value[DIGEST_MAX_VALUE_LENGTH]; ++ char content[DIGEST_MAX_CONTENT_LENGTH]; ++ ++ /* Pass all additional spaces here */ ++ while(*chlg && ISSPACE(*chlg)) ++ chlg++; ++ ++ /* Extract a value=content pair */ ++ if(!Curl_sasl_digest_get_pair(chlg, value, content, &chlg)) { ++ if(Curl_raw_equal(value, "realm")) { ++ ++ /* Setup identity's domain and length */ ++ domain.tchar_ptr = Curl_convert_UTF8_to_tchar((char *)content); ++ if(!domain.tchar_ptr) ++ return CURLE_OUT_OF_MEMORY; ++ dup_domain.tchar_ptr = _tcsdup(domain.tchar_ptr); ++ if(!dup_domain.tchar_ptr) { ++ Curl_unicodefree(domain.tchar_ptr); ++ return CURLE_OUT_OF_MEMORY; ++ } ++ identity->Domain = dup_domain.tbyte_ptr; ++ identity->DomainLength = curlx_uztoul(_tcslen(dup_domain.tchar_ptr)); ++ dup_domain.tchar_ptr = NULL; ++ ++ Curl_unicodefree(domain.tchar_ptr); ++ } ++ else { ++ /* unknown specifier, ignore it! */ ++ } ++ } ++ else ++ break; /* we're done here */ ++ ++ /* Pass all additional spaces here */ ++ while(*chlg && ISSPACE(*chlg)) ++ chlg++; ++ ++ /* Allow the list to be comma-separated */ ++ if(',' == *chlg) ++ chlg++; ++ } ++ } ++ ++ return CURLE_OK; ++} ++ ++/* + * Curl_sasl_decode_digest_http_message() + * + * This is used to decode a HTTP DIGEST challenge message into the seperate +@@ -374,6 +443,11 @@ CURLcode Curl_sasl_create_digest_http_message(struct SessionHandle *data, + if(Curl_create_sspi_identity(userp, passwdp, &identity)) + return CURLE_OUT_OF_MEMORY; + ++ /* Populate our identity domain */ ++ if(Curl_override_sspi_http_realm((const char*)digest->input_token, ++ &identity)) ++ return CURLE_OUT_OF_MEMORY; ++ + /* Allow proper cleanup of the identity structure */ + p_identity = &identity; + } +diff --git a/lib/curl_sspi.h b/lib/curl_sspi.h +index 7fa308c..8655715 100644 +--- a/lib/curl_sspi.h ++++ b/lib/curl_sspi.h +@@ -43,6 +43,10 @@ + CURLcode Curl_sspi_global_init(void); + void Curl_sspi_global_cleanup(void); + ++/* This is used to populate the domain in a SSPI identity structure */ ++CURLcode Curl_override_sspi_http_realm(const char *chlg, ++ SEC_WINNT_AUTH_IDENTITY *identity); ++ + /* This is used to generate an SSPI identity structure */ + CURLcode Curl_create_sspi_identity(const char *userp, const char *passwdp, + SEC_WINNT_AUTH_IDENTITY *identity); +-- +2.3.7.windows.1 + diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 013d471165..0a225f855e 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -6,7 +6,7 @@ _variant=-openssl _realname=curl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=7.42.1 -pkgrel=2 +pkgrel=3 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" @@ -29,12 +29,14 @@ options=('staticlibs') source=("$url/download/${_realname}-$pkgver.tar.bz2"{,.asc} "0001-curl-relocation.patch" "0002-curl-mingw-enable-static.patch" - "0003-curl-mingw-text-mode-for-netrc.patch") + "0003-curl-mingw-text-mode-for-netrc.patch" + "0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch") md5sums=('296945012ce647b94083ed427c1877a8' 'SKIP' '58520051c4ed77781d233c3fa40a5435' 'eac9e212e619490966ae47004bec547b' - 'c35c31a1c8ed28c75be93e5bf95c8c9e') + 'c35c31a1c8ed28c75be93e5bf95c8c9e' + '8d16dedc48b53f9406ab103a74889681') validpgpkeys=('914C533DF9B2ADA2204F586D78E11C6B279D5C91') # Daniel Stenberg prepare() { @@ -43,6 +45,7 @@ prepare() { patch -p1 -i "${srcdir}/0001-curl-relocation.patch" patch -p1 -i "${srcdir}/0002-curl-mingw-enable-static.patch" patch -p1 -i "${srcdir}/0003-curl-mingw-text-mode-for-netrc.patch" + patch -p1 -i "${srcdir}/0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch" autoreconf -vfi } From a788c8336a67c990f372ec6a3985fb11e60eadd6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 6 May 2015 13:09:09 +0300 Subject: [PATCH 0982/2060] Update mingw-w64 runtime to git SHA [4421b4a] --- mingw-w64-crt-git/PKGBUILD | 2 +- mingw-w64-headers-git/PKGBUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index d344d68037..9633f0fe9a 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4497.4254261 +pkgver=5.0.0.4501.4421b4a pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 85282e5bd8..96629e564c 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4497.4254261 +pkgver=5.0.0.4501.4421b4a pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From 5314304eb9b0df373fa7e011f27042e49a59ccdb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 6 May 2015 22:30:44 +0300 Subject: [PATCH 0983/2060] bullet: Update to 2.83 release. --- mingw-w64-bullet/PKGBUILD | 37 ++++++++----------- mingw-w64-bullet/bullet-i686.install | 12 ++++++ mingw-w64-bullet/bullet-x86_64.install | 12 ++++++ mingw-w64-bullet/dont-try-find-glu.patch | 11 ------ .../install-pkgconfig-files-mingw.patch | 19 ---------- mingw-w64-bullet/remove-absent-demo.patch | 19 ---------- 6 files changed, 40 insertions(+), 70 deletions(-) create mode 100644 mingw-w64-bullet/bullet-i686.install create mode 100644 mingw-w64-bullet/bullet-x86_64.install delete mode 100644 mingw-w64-bullet/dont-try-find-glu.patch delete mode 100644 mingw-w64-bullet/install-pkgconfig-files-mingw.patch delete mode 100644 mingw-w64-bullet/remove-absent-demo.patch diff --git a/mingw-w64-bullet/PKGBUILD b/mingw-w64-bullet/PKGBUILD index a417fb1361..772724cfbf 100644 --- a/mingw-w64-bullet/PKGBUILD +++ b/mingw-w64-bullet/PKGBUILD @@ -3,7 +3,7 @@ _realname=bullet pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") pkgver=2.83 -pkgrel=2 +pkgrel=3 pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation (mingw-w64)" arch=('any') url="http://www.bulletphysics.com/Bullet/" @@ -12,22 +12,15 @@ options=('!strip' 'staticlibs') makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-freeglut") -source=(#"http://bullet.googlecode.com/files/bullet-${pkgver}-${_rev}.tgz" - https://github.com/bulletphysics/bullet3/archive/Bullet-${pkgver}-alpha.tar.gz - remove-absent-demo.patch - install-pkgconfig-files-mingw.patch +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/bulletphysics/bullet3/archive/${pkgver}.tar.gz" cast-error.patch promit-bulletcollisions.patch) -md5sums=('f459bb08387eb5696467109f44c1d4fd' - '70eda7f29f87cc3b65b58cb417e14201' - '2c243be67782ceb32a96aad61e668e83' +md5sums=('c96fc7c763c23a6db8c3b0d24ffb7154' '8db1300cf01a0fb244cb4b3ea5eb102e' '1340ed3f23915dcaf8e29d0eedc5e8c3') prepare () { - cd ${srcdir}/bullet3-Bullet-${pkgver}-alpha - patch -p1 -i ${srcdir}/remove-absent-demo.patch - patch -p1 -i ${srcdir}/install-pkgconfig-files-mingw.patch + cd ${srcdir}/bullet3-${pkgver} patch -p1 -i ${srcdir}/cast-error.patch patch -p0 -i ${srcdir}/promit-bulletcollisions.patch } @@ -38,12 +31,13 @@ build() { build_release() { depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-freeglut") + install=${_realname}-${CARCH}.install - cd ${srcdir} + [ -d build-release ] && rm -rf build-release mkdir -p build-release && pushd build-release ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX}\ -DBUILD_SHARED_LIBS=1 \ -DBUILD_EXTRAS=1 \ -DINSTALL_LIBS=1 \ @@ -51,23 +45,23 @@ build_release() { -DCMAKE_CXX_FLAGS_RELEASE="-fpermissive" \ -DINSTALL_EXTRA_LIBS=1 \ -DCMAKE_BUILD_TYPE=Release \ - ../bullet3-Bullet-${pkgver}-alpha + ../bullet3-${pkgver} + make make install mv -f ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -wm ${pkgdir}${MINGW_PREFIX}) sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/bullet.pc + -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/bullet.pc \ + -i ${pkgdir}${MINGW_PREFIX}/lib/cmake/bullet/BulletConfig.cmake } build_debug() { - depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=$pkgver") + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgrel}") - cd ${srcdir} + [ -d build-debug ] && rm -rf build-debug mkdir -p build-debug && pushd build-debug ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ @@ -80,7 +74,8 @@ build_debug() { -DINSTALL_EXTRA_LIBS=1 \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_DEBUG_POSTFIX="_d" \ - ../bullet3-Bullet-${pkgver}-alpha + ../bullet3-${pkgver} + make make install diff --git a/mingw-w64-bullet/bullet-i686.install b/mingw-w64-bullet/bullet-i686.install new file mode 100644 index 0000000000..f860a55690 --- /dev/null +++ b/mingw-w64-bullet/bullet-i686.install @@ -0,0 +1,12 @@ +post_install() { + cd mingw32 + local _prefix=$(pwd -W) + cd - + for f in mingw32/lib/cmake/bullet/*.cmake; do + sed -e "s|/mingw32|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-bullet/bullet-x86_64.install b/mingw-w64-bullet/bullet-x86_64.install new file mode 100644 index 0000000000..191adb785a --- /dev/null +++ b/mingw-w64-bullet/bullet-x86_64.install @@ -0,0 +1,12 @@ +post_install() { + cd mingw64 + local _prefix=$(pwd -W) + cd - + for f in mingw64/lib/cmake/bullet/*.cmake; do + sed -e "s|/mingw64|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-bullet/dont-try-find-glu.patch b/mingw-w64-bullet/dont-try-find-glu.patch deleted file mode 100644 index 53dea9e845..0000000000 --- a/mingw-w64-bullet/dont-try-find-glu.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CMakeLists.txt.orig 2013-10-24 03:35:13.000000000 +0400 -+++ b/CMakeLists.txt 2014-04-18 09:03:12.932400000 +0400 -@@ -321,8 +321,6 @@ - ENDIF (OPENGL_FOUND) - - # ADD_DEFINITIONS(-DBT_USE_FREEGLUT) -- --FIND_PACKAGE(GLU) - - IF (USE_GLUT) - FIND_PACKAGE(GLUT) diff --git a/mingw-w64-bullet/install-pkgconfig-files-mingw.patch b/mingw-w64-bullet/install-pkgconfig-files-mingw.patch deleted file mode 100644 index 568ed09519..0000000000 --- a/mingw-w64-bullet/install-pkgconfig-files-mingw.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/CMakeLists.txt.orig 2013-10-24 03:35:13.000000000 +0400 -+++ b/CMakeLists.txt 2014-04-18 09:03:12.932400000 +0400 -@@ -402,14 +402,14 @@ - ## the following are directories where stuff will be installed to - SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/bullet/" CACHE PATH "The subdirectory to the header prefix") - SET(PKGCONFIG_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig/" CACHE STRING "Base directory for pkgconfig files") -- IF(NOT WIN32) -+ IF(NOT WIN32 OR MINGW) - CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/bullet.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/bullet.pc @ONLY) - INSTALL( - FILES - ${CMAKE_CURRENT_BINARY_DIR}/bullet.pc - DESTINATION - ${PKGCONFIG_INSTALL_PREFIX}) -- ENDIF(NOT WIN32) -+ ENDIF(NOT WIN32 OR MINGW) - ENDIF(INSTALL_LIBS) - - #INSTALL of other files requires CMake 2.6 diff --git a/mingw-w64-bullet/remove-absent-demo.patch b/mingw-w64-bullet/remove-absent-demo.patch deleted file mode 100644 index 6ab740ab13..0000000000 --- a/mingw-w64-bullet/remove-absent-demo.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- bullet3-Bullet-2.83-alpha/Demos/CMakeLists.txt.orig 2014-06-08 15:30:10.689800000 +0400 -+++ bullet3-Bullet-2.83-alpha/Demos/CMakeLists.txt 2014-06-08 15:30:32.623400000 +0400 -@@ -34,7 +34,7 @@ - ) - - IF(BUILD_MULTITHREADING) -- SUBDIRS( ThreadingDemo VectorAdd_OpenCL ) -+ SUBDIRS( ThreadingDemo ) - ENDIF() - - ENDIF(GLUT_FOUND) -@@ -58,7 +58,6 @@ - GenericJointDemo - SerializeDemo - SoftDemo -- VectorAdd_OpenCL - VoronoiFractureDemo - ) - ENDIF(WIN32) From 14e19cf8519d894b18e4a5e2d138c6db4cb2226b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 6 May 2015 22:32:20 +0300 Subject: [PATCH 0984/2060] angleproject: Update to revision 4222 --- mingw-w64-angleproject-git/0000-build-fix.patch | 12 ------------ mingw-w64-angleproject-git/PKGBUILD | 8 ++++---- ...ect-include-import-library-and-use-def-file.patch | 8 ++++---- 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/mingw-w64-angleproject-git/0000-build-fix.patch b/mingw-w64-angleproject-git/0000-build-fix.patch index e434a649a5..9643c9bf27 100644 --- a/mingw-w64-angleproject-git/0000-build-fix.patch +++ b/mingw-w64-angleproject-git/0000-build-fix.patch @@ -60,18 +60,6 @@ index ae42f36..0f1fed8 100644 #include "third_party/murmurhash/MurmurHash3.h" +#include - namespace rx - { -diff --git a/src/libANGLE/renderer/gl/renderergl_utils.cpp b/src/libANGLE/renderer/gl/renderergl_utils.cpp -index 4223b40..f11e7a7 100644 ---- a/src/libANGLE/renderer/gl/renderergl_utils.cpp -+++ b/src/libANGLE/renderer/gl/renderergl_utils.cpp -@@ -11,6 +11,7 @@ - - #include "libANGLE/Caps.h" - #include "libANGLE/renderer/gl/FunctionsGL.h" -+#include - namespace rx { diff --git a/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h b/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h diff --git a/mingw-w64-angleproject-git/PKGBUILD b/mingw-w64-angleproject-git/PKGBUILD index 6e61b858bf..8879eb75eb 100644 --- a/mingw-w64-angleproject-git/PKGBUILD +++ b/mingw-w64-angleproject-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=angleproject pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=2.1.r3931 +pkgver=2.1.r4222 pkgrel=1 pkgdesc='Angle project built from git source (mingw-w64)' arch=('any') @@ -22,9 +22,9 @@ source=("angleproject"::git+https://chromium.googlesource.com/angle/angle libEGL_mingw32.def libGLESv2_mingw32.def) md5sums=('SKIP' - '0bc113aa37af7dd1721184857fbcb28f' + 'df05362804c1a49515b886b2ae94e466' '70615a5e327a53fd60cc4dec916842c0' - '6c41327ef0fb26b4bdcc7fcf8f52116f' + 'a9d50a4c18e1eedf007b2b21c9a7516c' '232a2f50c3b55247f95fecfab1bec60e' 'f5519fd7fc7f654c0805fbd802a5722d') pkgver() { @@ -133,5 +133,5 @@ package() { install libGLESv2.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/ ${MINGW_PREFIX}/bin/strip --strip-unneeded "${pkgdir}${MINGW_PREFIX}"/lib/*.dll.a - cp -Rv ../include/* "${pkgdir}${MINGW_PREFIX}"/include/ + cp -Rv include/* "${pkgdir}${MINGW_PREFIX}"/include/ } diff --git a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch index 91f60897ac..6430f0aead 100644 --- a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch +++ b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch @@ -5,10 +5,10 @@ 'msvs_enable_winphone' : '1', }], + ['TARGET=="win32"', { -+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a src/libEGL/libEGL_mingw32.def' ], ++ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a' ], + }], + ['TARGET=="win64"', { -+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a src/libEGL/libEGL.def' ], ++ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a' ], + }], ], }, @@ -20,10 +20,10 @@ 'msvs_enable_winphone' : '1', }], + ['TARGET=="win32"', { -+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a src/libGLESv2/libGLESv2_mingw32.def' ], ++ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a' ], + }], + ['TARGET=="win64"', { -+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a src/libGLESv2/libGLESv2.def' ], ++ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a' ], + }], ], 'libraries': [ From 02df9d676dc4824b83da56dff17ca2d41bc9a51b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 6 May 2015 22:32:53 +0300 Subject: [PATCH 0985/2060] plplot: Update to 5.11.0 (WIP) --- mingw-w64-plplot/PKGBUILD | 54 ++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/mingw-w64-plplot/PKGBUILD b/mingw-w64-plplot/PKGBUILD index 723da7ce9c..7308134c88 100644 --- a/mingw-w64-plplot/PKGBUILD +++ b/mingw-w64-plplot/PKGBUILD @@ -2,32 +2,30 @@ # Contributor: Jürgen Pfeifer _realname=plplot - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.10.0 +pkgver=5.11.0 pkgrel=1 arch=('any') pkgdesc="Scientific plotting software (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-gcc-fortran" - "${MINGW_PACKAGE_PREFIX}-gcc-ada" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-tk" - "${MINGW_PACKAGE_PREFIX}-wxWidgets" - "${MINGW_PACKAGE_PREFIX}-lua" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python2-numpy" - "${MINGW_PACKAGE_PREFIX}-qhull") -makedepends=("subversion" - "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-gcc-fortran" - "${MINGW_PACKAGE_PREFIX}-gcc-ada") + "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-lua" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python2-numpy" + "${MINGW_PACKAGE_PREFIX}-qhull" + "${MINGW_PACKAGE_PREFIX}-tk" + "${MINGW_PACKAGE_PREFIX}-wxWidgets" + ) +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc-fortran" + "${MINGW_PACKAGE_PREFIX}-gcc-ada") options=('strip' 'staticlibs') license=('LGPL') -url="http://svn.code.sf.net/p/plplot" +url="http://plplot.sourceforge.net" source=(http://downloads.sourceforge.net/sourceforge/plplot/${_realname}-${pkgver}.tar.gz - find-gd.patch) -sha1sums=('ea962cb0138c9b4cbf97ecab1fac1919ea0f939f' + find-gd.patch) +sha1sums=('215c60b86ae1381813e5c837ea6afa6d7708127d' '7800cad653ebcedf596a01e545116f6ffd04f0f9') prepare() { @@ -36,15 +34,6 @@ prepare() { } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - # cmake's FindSWIG doesn't work properly on MSYS, # so we provide SWIG here SWIG_EXECUTABLE_U=`type -p swig` @@ -55,23 +44,24 @@ build() { # cmake may be confused if there is a Windows installation # of the official Python MSI. Please do the Python-enabled # build only, if no official Python is installed. - cd "$srcdir" - mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_Fortran_COMPILER:PATH=${MINGW_PREFIX}/bin/gfortran.exe \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_TESTING=OFF \ -DSWIG_EXECUTABLE="${SWIG_EXECUTABLE}" \ -DSWIG_DIR="${SWIG_DIR}" \ - -DQHULL_INCLUDE_DIR=${PREFIX_DEPS}/include \ - -DGD_INCLUDE_DIR=${PREFIX_DEPS}/include \ + -DQHULL_INCLUDE_DIR=${MINGW_PREFIX}/include \ + -DGD_INCLUDE_DIR=${MINGW_PREFIX}/include \ -DENABLE_lua=ON \ -DENABLE_python=ON \ ../${_realname}-${pkgver} + make V=1 } From 9d302cda5e5fc66c6bebc938fc81b6d59eea4b3e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 7 May 2015 07:32:57 +0300 Subject: [PATCH 0986/2060] binutils: Add some patches from upstream. --- ...00-relocs-from-msvc.patch => 27aaeda.diff} | 16 ++++++++- mingw-w64-binutils/9ac47a4.diff | 30 +++++++++++++++++ mingw-w64-binutils/PKGBUILD | 16 ++++++--- mingw-w64-binutils/a93d5cb.diff | 33 +++++++++++++++++++ 4 files changed, 89 insertions(+), 6 deletions(-) rename mingw-w64-binutils/{0200-relocs-from-msvc.patch => 27aaeda.diff} (54%) create mode 100644 mingw-w64-binutils/9ac47a4.diff create mode 100644 mingw-w64-binutils/a93d5cb.diff diff --git a/mingw-w64-binutils/0200-relocs-from-msvc.patch b/mingw-w64-binutils/27aaeda.diff similarity index 54% rename from mingw-w64-binutils/0200-relocs-from-msvc.patch rename to mingw-w64-binutils/27aaeda.diff index 4a81cff24b..29ca87ee9d 100644 --- a/mingw-w64-binutils/0200-relocs-from-msvc.patch +++ b/mingw-w64-binutils/27aaeda.diff @@ -1,4 +1,15 @@ -X-Git-Url: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blobdiff_plain;f=bfd%2Fpeicode.h;h=200ef5e88476210d46387fe9da242aacb4d8ef59;hp=e36568aa2070ab5fa5282c0ddcf19f934d039a2e;hb=27aaeda0cdf9f69625b96e3abdb25c8fdbbb3435;hpb=273a49858fa9c8d73de87167618ef99d70f9731a +From 27aaeda0cdf9f69625b96e3abdb25c8fdbbb3435 Mon Sep 17 00:00:00 2001 +From: Nick Clifton +Date: Wed, 18 Mar 2015 16:19:59 +0000 +Subject: [PATCH] Fixes a problem generating relocs for import libraries + created by Microsoft tools for the x86_64 architecture. + + PR ld/16598 + * peicode.h (pe_ILF_build_a_bfd): Add support for creating relocs + suitable for the AMD64. +--- + bfd/peicode.h | 9 +++++++++ + 1 files changed, 9 insertions(+) diff --git a/bfd/peicode.h b/bfd/peicode.h index e36568a..200ef5e 100644 @@ -20,3 +31,6 @@ index e36568a..200ef5e 100644 pe_ILF_make_a_symbol_reloc (&vars, (bfd_vma) jtab[i].offset, BFD_RELOC_32, (asymbol **) imp_sym, imp_index); +-- +2.4.0 + diff --git a/mingw-w64-binutils/9ac47a4.diff b/mingw-w64-binutils/9ac47a4.diff new file mode 100644 index 0000000000..91687bb53c --- /dev/null +++ b/mingw-w64-binutils/9ac47a4.diff @@ -0,0 +1,30 @@ +From 9ac47a43ffc8e3c73867b9953145a8e7a227132d Mon Sep 17 00:00:00 2001 +From: Toni Spets +Date: Wed, 6 May 2015 14:18:34 +0100 +Subject: [PATCH] Skip discarded resource sections when building a PE resource + table. + + PR ld/18372 + * peXXigen.c (rsrc_process_section): Skip discarded resource + sections. +--- + bfd/peXXigen.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c +index 6aa18ca..c897c64 100644 +--- a/bfd/peXXigen.c ++++ b/bfd/peXXigen.c +@@ -4160,7 +4160,8 @@ rsrc_process_section (bfd * abfd, + { + asection * rsrc_sec = bfd_get_section_by_name (input, ".rsrc"); + +- if (rsrc_sec != NULL) ++ /* PR 18372 - skip discarded .rsrc sections. */ ++ if (rsrc_sec != NULL && !discarded_section (rsrc_sec)) + { + if (num_input_rsrc == max_num_input_rsrc) + { +-- +2.4.0 + diff --git a/mingw-w64-binutils/PKGBUILD b/mingw-w64-binutils/PKGBUILD index c98371ac71..304b29d009 100644 --- a/mingw-w64-binutils/PKGBUILD +++ b/mingw-w64-binutils/PKGBUILD @@ -4,7 +4,7 @@ _realname=binutils pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.25 -pkgrel=3 +pkgrel=4 pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('any') url="http://www.gnu.org/software/binutils/" @@ -29,7 +29,9 @@ source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2{,.sig} 0015-dont-link-ld-to-libiberty.mingw.patch 0017-fix-iconv-linking.all.patch 0110-binutils-mingw-gnu-print.patch - 0200-relocs-from-msvc.patch) + 27aaeda.diff + a93d5cb.diff + 9ac47a4.diff) md5sums=('d9f3303f802a5b6b0bb73a335ab89d66' 'SKIP' 'f3be04ed70b9d352a2c0e2a80b0706b2' @@ -45,7 +47,9 @@ md5sums=('d9f3303f802a5b6b0bb73a335ab89d66' '33b5eda35272e88b1c308e66484db958' '66eeb2af697f5f1d0f372185aa2fb737' '1c34f5ee0ee5d5008a617e1638362d43' - 'b627e17f72c54281b8a01f1c1cc5a11a') + '83e26439fa877c6407fe3b84cdb01e76' + 'c0eaa32bbc4239ebb9bdd95c129ca56a' + 'ac0c62e2653558f7aab8c32ffa23dd4a') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -63,8 +67,10 @@ prepare() { #patch -p1 -i "${srcdir}"/0017-fix-iconv-linking.all.patch patch -p1 -i "${srcdir}"/0110-binutils-mingw-gnu-print.patch - # https://sourceware.org/bugzilla/show_bug.cgi?id=16598 - patch -p1 -i "${srcdir}"/0200-relocs-from-msvc.patch + # Upstream patches + patch -p1 -i "${srcdir}"/27aaeda.diff + patch -p1 -i "${srcdir}"/a93d5cb.diff + patch -p1 -i "${srcdir}"/9ac47a4.diff } diff --git a/mingw-w64-binutils/a93d5cb.diff b/mingw-w64-binutils/a93d5cb.diff new file mode 100644 index 0000000000..4fb3526871 --- /dev/null +++ b/mingw-w64-binutils/a93d5cb.diff @@ -0,0 +1,33 @@ +From a93d5cb1976818c8d34133fd8798b3df76269f80 Mon Sep 17 00:00:00 2001 +From: Nick Clifton +Date: Wed, 29 Apr 2015 12:26:46 +0100 +Subject: [PATCH] Add support for absolute PE/x86 relocations. + + PR 17099 + * coff-i386.c (coff_i386_rtype_to_howto): Allow absolute PCRLONG + relocs. +--- + bfd/coff-i386.c | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/bfd/coff-i386.c b/bfd/coff-i386.c +index 20d2402..b185b81 100644 +--- a/bfd/coff-i386.c ++++ b/bfd/coff-i386.c +@@ -509,7 +509,12 @@ coff_i386_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, + *addendp -= pe_data(sec->output_section->owner)->pe_opthdr.ImageBase; + } + +- BFD_ASSERT (sym != NULL); ++ /* PR 17099 - Absolute R_PCRLONG relocations do not need a symbol. */ ++ if (rel->r_type == R_PCRLONG && sym == NULL) ++ *addendp -= rel->r_vaddr; ++ else ++ BFD_ASSERT (sym != NULL); ++ + if (rel->r_type == R_SECREL32 && sym != NULL) + { + bfd_vma osect_vma; +-- +2.4.0 + From f38060da7a9bc750af67ba54775a1409a1ad18df Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 7 May 2015 12:03:00 +0300 Subject: [PATCH 0987/2060] python-setuptools: Update to 15.2 --- mingw-w64-python-setuptools/PKGBUILD | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index d4436e8a03..6b046a56bb 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -5,8 +5,7 @@ _realname=setuptools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.4 -pkgver=12.0.5 -#pkgver=5.4.1 +pkgver=15.2 pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" arch=('any') @@ -18,7 +17,7 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('cd49661e090a397d77c690f7f2d06852b7086be9' +sha1sums=('ee7a6c9aefd199763f5552f81124934f66951164' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' From 6695e0250611e440af1b07afc53ee5a3b50e8104 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 7 May 2015 15:58:38 +0300 Subject: [PATCH 0988/2060] ipython: Update to 3.1.0 --- mingw-w64-python-ipython/PKGBUILD | 51 +++++++++++++++++++------------ 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/mingw-w64-python-ipython/PKGBUILD b/mingw-w64-python-ipython/PKGBUILD index fe3620e06a..75b7f68492 100644 --- a/mingw-w64-python-ipython/PKGBUILD +++ b/mingw-w64-python-ipython/PKGBUILD @@ -2,24 +2,24 @@ _realname=ipython pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=2.3.1 +pkgver=3.1.0 pkgrel=1 -pkgdesc="An enhanced Interactive Python shell." +pkgdesc="An enhanced Interactive Python shell (mingw-w64)" arch=('any') url="http://ipython.org" license=('BSD') -makedepends=( - "${MINGW_PACKAGE_PREFIX}-sqlite3" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" - "${MINGW_PACKAGE_PREFIX}-python3-setuptools" -) +makedepends=("${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") -source=("https://pypi.python.org/packages/source/i/ipython/$_realname-$pkgver.tar.gz") -md5sums=('2b7085525dac11190bfb45bb8ec8dcbf') +source=("https://pypi.python.org/packages/source/i/ipython/${_realname}-${pkgver}.tar.gz" + 0001-unimplemented-readline-calls.patch) +md5sums=('a749d90c16068687b0ec45a27e72ef8f' + 'f4e11a85fc52bd57ed234cad7d579536') prepare() { - cd "$srcdir" - patch -p0 < ../0001-unimplemented-readline-calls.patch + cd "$srcdir/$_realname-$pkgver" + patch -p1 -i ${srcdir}/0001-unimplemented-readline-calls.patch } all_build() { @@ -28,18 +28,28 @@ all_build() { # see https://github.com/ipython/ipython/issues/2057 #export LC_ALL=en_US.UTF-8 MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/${interpreter} setup.py install \ - --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 + ${MINGW_PREFIX}/bin/${1} setup.py install \ + --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 find "$pkgdir/" -name '*.pyc' -delete find "$pkgdir/" -type d -empty -delete # setuptools doesnt see mingw-w64-python's readline find "$pkgdir/" -name 'requires.txt' -delete + + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) + # fix python command in files + for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.cmd; do + sed -e "s|${PREFIX_WIN}/bin/||g" -i ${_f} + done + for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*; do + sed -e "s|${PREFIX_WIN}/bin/|/usr/bin/env |g" -i ${_f} + done } package_python3-ipython() { - interpreter=python3 + local interpreter=python3 + #install=ipython3-${CARCH}.install depends=("${MINGW_PACKAGE_PREFIX}-sqlite3" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") optdepends=("${MINGW_PACKAGE_PREFIX}-python3-nose: for IPython's test suite" @@ -51,14 +61,19 @@ package_python3-ipython() { # "${MINGW_PACKAGE_PREFIX}-python3-pyzmq: ipython notebook and ipython qtconcole" # "${MINGW_PACKAGE_PREFIX}-python3-tornado: for ipython notebook" - all_build + all_build ${interpreter} + + for file_script in ipcluster ipcontroller ipengine iptest ipython; do + rm ${pkgdir}${MINGW_PREFIX}/bin/${file_script}{,.cmd} + done install -Dm644 docs/source/about/license_and_copyright.rst "$pkgdir${MINGW_PREFIX}/share/licenses/ipython/LICENSE" } package_python2-ipython() { - interpreter=python2 + local interpreter=python2 + #install=ipython2-${CARCH}.install depends=("${MINGW_PACKAGE_PREFIX}-sqlite3" "${MINGW_PACKAGE_PREFIX}-python2-setuptools") optdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose: for IPython's test suite" @@ -70,7 +85,7 @@ package_python2-ipython() { # "${MINGW_PACKAGE_PREFIX}-python2-pyzmq: ipython notebook and ipython qtconcole" # "${MINGW_PACKAGE_PREFIX}-python2-tornado: for ipython notebook" - all_build + all_build ${interpreter} install -Dm644 docs/source/about/license_and_copyright.rst "$pkgdir${MINGW_PREFIX}/share/licenses/ipython2/LICENSE" @@ -85,10 +100,8 @@ package_python2-ipython() { mv $i ${i/%.1/2.1} done - } - package_mingw-w64-i686-python2-ipython() { package_python2-ipython } From 4ea840fc61b2cdb23adc0bde9168388ad7cc07c5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 7 May 2015 15:59:18 +0300 Subject: [PATCH 0989/2060] setuptools: Fix shebang. --- mingw-w64-python-setuptools/PKGBUILD | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index 6b046a56bb..08a9d336c3 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -5,8 +5,9 @@ _realname=setuptools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.4 +_py2_base=2.7 pkgver=15.2 -pkgrel=1 +pkgrel=2 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" arch=('any') license=('PSF') @@ -66,9 +67,7 @@ build() { package_python3-setuptools() { depends=("${MINGW_PACKAGE_PREFIX}-python3>=3.3") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -wm ${MINGW_PREFIX}) cd "${srcdir}/setuptools-python3" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ @@ -87,14 +86,14 @@ package_python3-setuptools() { package_python2-setuptools() { depends=("${MINGW_PACKAGE_PREFIX}-python2>=2.7") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -wm ${MINGW_PREFIX}) cd "${srcdir}/setuptools-python2" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 --skip-build + sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${pkgdir}${MINGW_PREFIX}/bin/easy_install-script.py + sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${pkgdir}${MINGW_PREFIX}/bin/easy_install-${_py2_base}-script.py } package_mingw-w64-i686-python2-setuptools() { From 3272cbdfee90ac666600529038e2ca0da12f7261 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 7 May 2015 19:12:45 +0300 Subject: [PATCH 0990/2060] gdbm: Rebuild without compete library as it break python builds. --- mingw-w64-gdbm/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gdbm/PKGBUILD b/mingw-w64-gdbm/PKGBUILD index 9ad3708278..541d821f53 100644 --- a/mingw-w64-gdbm/PKGBUILD +++ b/mingw-w64-gdbm/PKGBUILD @@ -3,7 +3,7 @@ _realname=gdbm pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.11 -pkgrel=1 +pkgrel=2 pkgdesc="GNU database library (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gdbm/gdbm.html" @@ -42,7 +42,7 @@ build() { --prefix=${MINGW_PREFIX} \ --enable-static \ --enable-shared \ - --enable-libgdbm-compat + --disable-libgdbm-compat make } From 48f79890cc5e5828fd1879076002b29cf0a862e1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 7 May 2015 19:52:21 +0300 Subject: [PATCH 0991/2060] python2: Fix shebangs. --- .../0500-add-python-config-sh.patch | 2 +- mingw-w64-python2/PKGBUILD | 25 ++++++++++--------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/mingw-w64-python2/0500-add-python-config-sh.patch b/mingw-w64-python2/0500-add-python-config-sh.patch index ffeda5844c..d2375edb65 100644 --- a/mingw-w64-python2/0500-add-python-config-sh.patch +++ b/mingw-w64-python2/0500-add-python-config-sh.patch @@ -101,7 +101,7 @@ diff -Naur Python-2.7.9-orig/Misc/python-config.sh.in Python-2.7.9/Misc/python-c + fi + # Since we don't know where the output from this script will end up + # we keep all paths in Windows-land since MSYS2 can handle that -+ # whilst native tools can't handle paths in MSYS2-land. ++ # while native tools can't handle paths in MSYS2-land. + if [ "$OSTYPE" = "msys" ]; then + RESULT=$(cd "$RESULT" && pwd -W) + elif [ $(which $READLINK) ] ; then diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index 4a1cff3d85..a71cd3b967 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -5,8 +5,8 @@ _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7.9 -pkgrel=2 -_pybasever=2.7 +pkgrel=3 +_pybasever=${pkgver%.*} pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -236,9 +236,7 @@ prepare() { } build() { - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) CFLAGS+=" -fwrapv -D__USE_MINGW_ANSI_STDIO=1 " CXXFLAGS+=" -fwrapv -D__USE_MINGW_ANSI_STDIO=1 " @@ -258,15 +256,15 @@ build() { CXXFLAGS+=" -O0 -ggdb" fi - LIBFFI_INC=`${MINGW_PREFIX}/bin/pkg-config libffi --cflags-only-I | sed "s|\-I||g"` - pushd ${LIBFFI_INC} > /dev/null - export LIBFFI_INCLUDEDIR=`pwd -W` - popd > /dev/null + local LIBFFI_INC=`${MINGW_PREFIX}/bin/pkg-config libffi --cflags-only-I | sed "s|\-I||g"` + export LIBFFI_INCLUDEDIR=$(cygpath -wm ${LIBFFI_INC}) # Workaround for conftest error on 64-bit builds export ac_cv_working_tzset=no + [ -d "${srcdir}/build-${CARCH}" ] && rm -rf "${srcdir}/build-${CARCH}" mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}" + MSYSTEM=MINGW ../Python-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --host=${MINGW_CHOST} \ @@ -287,6 +285,8 @@ check() { package() { cd "${srcdir}/build-${CARCH}" + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) + MSYSTEM=MINGW \ MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ make install DESTDIR="$pkgdir" @@ -309,7 +309,7 @@ package() { sed -i "s#${srcdir}/Python-${pkgver}:##" "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config/Makefile for fscripts in 2to3 idle pydoc; do - sed -e "s|${MINGW_PREFIX}/bin/python${_pybasever}.exe|/usr/bin/env python${_pybasever}.exe|g" -i "${pkgdir}${MINGW_PREFIX}"/bin/$fscripts + sed -e "s|${PREFIX_WIN}/bin/|/usr/bin/env |g" -i "${pkgdir}${MINGW_PREFIX}"/bin/$fscripts done sed -i "s|#!${pkgdir}${MINGW_PREFIX}/bin/python${_pybasever}.exe|#!/usr/bin/env python${_pybasever}.exe|" "${pkgdir}${MINGW_PREFIX}"/bin/python${_pybasever}-config @@ -320,7 +320,8 @@ package() { find ${pkgdir}${MINGW_PREFIX} -type f \( -name "*.dll" -o -name "*.exe" \) | xargs chmod 0755 # Fix up two instances of MSYS2 paths in python-config.sh in-case the final consumer of the results are native executables. - sed -i "s|${MINGW_PREFIX}|${PREFIX_WIN}|" "${pkgdir}${MINGW_PREFIX}"/bin/python-config.sh + sed -e "s|${MINGW_PREFIX}|${PREFIX_WIN}|" \ + -i "${pkgdir}${MINGW_PREFIX}"/bin/python-config.sh # replace paths in sysconfig sed -i "s|${pkgdir}${MINGW_PREFIX}|${MINGW_PREFIX}|g" \ @@ -381,7 +382,7 @@ sha1sums=('3172f6e957713c2d9fca462cc16068222fd1b9d3' 'f6abdb937ca40c984d365a317ccde70d1b72a0e5' '21391c4509a149c710f780c4ab7d1d3aa4b26dbb' 'f7e5501502ee0e0ef1b86c6cc8a4405ec4842dca' - '2a5aa64eee5c62ffbd0995205ad1e3efb8eb6644' + '9481a9cfdc965cfb99965c06f520a8a7266ab57b' '124f3bb723bf6b3a035245499fc25d1ef8dae360' '38505f10c495c1b79342aaeeb0d538b73df52c12' '6b9e0da25a098c19336c59445745b0d99795edb2' From c96c4262443a8c96dcfa7ed2a40cb78ac16a63ec Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 7 May 2015 20:48:06 +0300 Subject: [PATCH 0992/2060] python3: Fix issue reported in https://github.com/Alexpux/MINGW-packages/issues/598 --- .../0500-add-python-config-sh.patch | 2 +- ...s-cygwin-semi-native-build-sysconfig.patch | 2 +- mingw-w64-python3/PKGBUILD | 28 +++++++++++-------- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/mingw-w64-python3/0500-add-python-config-sh.patch b/mingw-w64-python3/0500-add-python-config-sh.patch index 182faf7f8a..d062410397 100644 --- a/mingw-w64-python3/0500-add-python-config-sh.patch +++ b/mingw-w64-python3/0500-add-python-config-sh.patch @@ -42,7 +42,7 @@ diff -urN a/Misc/python-config.sh.in b/Misc/python-config.sh.in + fi + # Since we don't know where the output from this script will end up + # we keep all paths in Windows-land since MSYS2 can handle that -+ # whilst native tools can't handle paths in MSYS2-land. ++ # while native tools can't handle paths in MSYS2-land. + if [ "$OSTYPE" = "msys" ]; then + RESULT=$(cd "$RESULT" && pwd -W) fi diff --git a/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch b/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch index a20aef3750..bfaa884301 100644 --- a/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch +++ b/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch @@ -77,7 +77,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py + # any keys that have one with the same name suffixed with _b2h + # need to be replaced with the value of the _b2h key. + # This converts from MSYS*/Cygwin paths to Windows paths. -+ for k, v in done.items(): ++ for k, v in dict(done).items(): + if isinstance(k, str): + if k.endswith("_b2h"): + done[k[:-4]]=v diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 86220dcb8a..1fbf0a5d29 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -17,7 +17,7 @@ _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.4 pkgver=${_pybasever}.3 -pkgrel=3 +pkgrel=4 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -26,16 +26,17 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-gdbm" - "${MINGW_PACKAGE_PREFIX}-readline" - "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-ncurses" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-readline" + "${MINGW_PACKAGE_PREFIX}-tcl" + "${MINGW_PACKAGE_PREFIX}-tk" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-xz" - "${MINGW_PACKAGE_PREFIX}-ncurses" - "${MINGW_PACKAGE_PREFIX}-tcl" - "${MINGW_PACKAGE_PREFIX}-tk") + ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -options=('!makeflags' 'staticlibs') # '!strip' 'debug') +options=('!makeflags' 'staticlibs') # '!strip' 'debug' source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0000-make-_sysconfigdata.py-relocatable.patch 0100-MINGW-BASE-use-NT-thread-model.patch @@ -251,9 +252,7 @@ check() { } build() { - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) CFLAGS+=" -fwrapv -D__USE_MINGW_ANSI_STDIO=1 " CXXFLAGS+=" -fwrapv -D__USE_MINGW_ANSI_STDIO=1" @@ -278,7 +277,9 @@ build() { # Workaround for conftest error on 64-bit builds export ac_cv_working_tzset=no + [ -d "${srcdir}/build-${CARCH}" ] && rm -rf "${srcdir}/build-${CARCH}" mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}" + MSYSTEM=MINGW ../Python-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --host=${MINGW_CHOST} \ @@ -291,11 +292,14 @@ build() { "${_extra_config[@]}" \ OPT="" #--with-dbmliborder='gdbm:ndbm' + make } package() { cd "${srcdir}/build-${CARCH}" + + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) MSYSTEM=MINGW \ MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ make install DESTDIR="$pkgdir" @@ -402,7 +406,7 @@ sha1sums=('7ca5cd664598bea96eec105aa6453223bb6b4456' 'f55a13ddd950125bb613bd243ef72ac8dd753daa' '679a866c5c257abbc59410bccf6054e7f4f5d8ee' '6fc6a61db76d0689263f3fc6ccfa3fba4829dca7' - '1f096c7c4537b7bbf9a7f747093d3ab104534ea2' + '22f2248ab553417c1bc4b1a70c9ef10cbea97ee8' '3cc4985c4b73f60c29a45dded5e2a36ecf18364b' 'e514bb32094e62e811bf187ab451e719a522f2fe' 'cdb77d00db2061c5e44a31876c5efb8db7c65a76' @@ -412,7 +416,7 @@ sha1sums=('7ca5cd664598bea96eec105aa6453223bb6b4456' '0f096226937aae88bf38369bd5f8ff3134a82bb0' 'b06b6cd0f1488e473bfb7fc1147cd64f4e9b560b' '2f72a9036599de2ca02e5de1316d7b1771cada08' - 'af2d97c195c27fa0c3f4e32ec7bad6747e7d94cc' + '6dd3c550e5550fc21cb3df1ef5a4231bceb819f0' '3d48fcf13644952c0bb2a68b834339f5174a9b4c' '70390a1be147a4a1b3d40a6935fdd4396e586c06' '48ab620460a7de37871b74ba3bab59a7bc791802' From e148b22bb28954d3cfa0a37c7845f0401e6421ce Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 8 May 2015 11:57:37 +0300 Subject: [PATCH 0993/2060] bullet: Update to 2.83.4 --- mingw-w64-bullet/PKGBUILD | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/mingw-w64-bullet/PKGBUILD b/mingw-w64-bullet/PKGBUILD index 772724cfbf..5b81714b36 100644 --- a/mingw-w64-bullet/PKGBUILD +++ b/mingw-w64-bullet/PKGBUILD @@ -2,8 +2,8 @@ _realname=bullet pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -pkgver=2.83 -pkgrel=3 +pkgver=2.83.4 +pkgrel=1 pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation (mingw-w64)" arch=('any') url="http://www.bulletphysics.com/Bullet/" @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/bulletphysics/bullet3/archive/${pkgver}.tar.gz" cast-error.patch promit-bulletcollisions.patch) -md5sums=('c96fc7c763c23a6db8c3b0d24ffb7154' +md5sums=('58b4e151bf580fe6746e8413cb2a4cbe' '8db1300cf01a0fb244cb4b3ea5eb102e' '1340ed3f23915dcaf8e29d0eedc5e8c3') @@ -49,6 +49,15 @@ build_release() { make make install + + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/bullet + for f in $(find examples -type f -iname *.dll -o -iname *.exe); do + cp ${f} ${pkgdir}${MINGW_PREFIX}/share/bullet/ + done + cp -f ${srcdir}/bullet3-${pkgver}/data/* ${pkgdir}${MINGW_PREFIX}/share/bullet/ + for f in gtest gwen OpenGLWindow; do + cp lib/lib${f}.dll ${pkgdir}${MINGW_PREFIX}/share/bullet/ + done mv -f ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ From fefa6a1e082eaa89269e62a281f393d757928f1a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 8 May 2015 13:40:30 +0300 Subject: [PATCH 0994/2060] openscenegraph-git: update to git SHA [2705fde] --- mingw-w64-openscenegraph-git/PKGBUILD | 11 +++++++---- mingw-w64-openscenegraph-git/fix-cast-error.patch | 11 +++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-openscenegraph-git/fix-cast-error.patch diff --git a/mingw-w64-openscenegraph-git/PKGBUILD b/mingw-w64-openscenegraph-git/PKGBUILD index c9ea482ef0..8745c0f78c 100644 --- a/mingw-w64-openscenegraph-git/PKGBUILD +++ b/mingw-w64-openscenegraph-git/PKGBUILD @@ -2,8 +2,8 @@ _realname=OpenSceneGraph pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-git") -pkgver=r13068.2bdb951 -pkgrel=2 +pkgver=r13212.2705fde +pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" arch=('any') url="http://www.openscenegraph.org/" @@ -41,11 +41,13 @@ options=('staticlibs' '!strip') source=("${_realname}"::"git+https://github.com/openscenegraph/osg.git" find-collada.patch find-freetype.patch - additional-gl-header.patch) + additional-gl-header.patch + fix-cast-error.patch) md5sums=('SKIP' '18ce956c1889babc6515828b8200e864' '9ab69e1cd26826196fac5b3f01e6cb95' - 'e889e10100a1f3e07212c01603712594') + 'e889e10100a1f3e07212c01603712594' + '5599204490bf9f03cdd5871b938e3338') pkgver() { cd "$srcdir/$_realname" @@ -57,6 +59,7 @@ prepare() { patch -p1 -i ${srcdir}/find-collada.patch patch -p1 -i ${srcdir}/find-freetype.patch patch -p1 -i ${srcdir}/additional-gl-header.patch + patch -p1 -i ${srcdir}/fix-cast-error.patch } build() { diff --git a/mingw-w64-openscenegraph-git/fix-cast-error.patch b/mingw-w64-openscenegraph-git/fix-cast-error.patch new file mode 100644 index 0000000000..1f8dd88886 --- /dev/null +++ b/mingw-w64-openscenegraph-git/fix-cast-error.patch @@ -0,0 +1,11 @@ +--- OpenSceneGraph/src/osgPlugins/osgjs/WriteVisitor.cpp.orig 2015-05-08 12:19:06.415757900 +0300 ++++ OpenSceneGraph/src/osgPlugins/osgjs/WriteVisitor.cpp 2015-05-08 12:19:00.109388600 +0300 +@@ -225,7 +225,7 @@ + // no image file so use this inline name image and create a file + std::stringstream ss; + ss << osgDB::getFilePath(baseName) << osgDB::getNativePathSeparator(); +- ss << (long int)image << ".inline_conv_generated.png"; // write the pointer location ++ ss << (intptr_t)image << ".inline_conv_generated.png"; // write the pointer location + std::string filename = ss.str(); + if (osgDB::writeImageFile(*image, filename)) { + image->setFileName(filename); From a5d646b8f25231afe2fea6967134e9b1afded410 Mon Sep 17 00:00:00 2001 From: Ray Griffin Date: Fri, 8 May 2015 22:56:24 +0100 Subject: [PATCH 0995/2060] Waf: Update to 1.8.9 Also moved to github. --- mingw-w64-waf/PKGBUILD | 21 +++++++++----------- mingw-w64-waf/waflib.patch | 39 -------------------------------------- 2 files changed, 9 insertions(+), 51 deletions(-) delete mode 100644 mingw-w64-waf/waflib.patch diff --git a/mingw-w64-waf/PKGBUILD b/mingw-w64-waf/PKGBUILD index 5af488fe8a..1443029f3f 100644 --- a/mingw-w64-waf/PKGBUILD +++ b/mingw-w64-waf/PKGBUILD @@ -3,8 +3,8 @@ _realname=waf pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.7.15 -pkgrel=2 +pkgver=1.8.9 +pkgrel=1 pkgdesc="General-purpose build system modelled after Scons (mingw-w64)" arch=('any') license=('BSD') @@ -12,22 +12,19 @@ url="http://code.google.com/p/waf/" makedepends=("setconf") depends=("${MINGW_PACKAGE_PREFIX}-python3") options=('!emptydirs') -source=("http://${_realname}.googlecode.com/files/${_realname}-$pkgver.tar.bz2" - waflib.patch) -sha256sums=('49780032ed2ac0e118030af329cbd5883d2b9cb9831fc632a3e7b2bfd99d3f1e' - 'c7a7f938483db968e33bd1cdccb71cae199fd67afbc2baa1ec25e2ad4243e9bd') +source=("https://github.com/waf-project/${_realname}/archive/${_realname}-${pkgver}.tar.gz") +sha256sums=('166e7a52066d9dd3a6ab8349b65fd49a162ad94ac40c8b2ccdbb256c7faf2b9c') prepare() { - cd "${_realname}-$pkgver" - patch -p1 -i ${srcdir}/waflib.patch + cd "${_realname}-${_realname}-$pkgver" # Extracting license - head -n 30 waf | tail -n 25 > LICENSE + head -n 30 waf-light | tail -n 25 > LICENSE # Python 3 fix - sed -i '0,/env python/s//python3/' waf + sed -i '0,/env python/s//python3/' waf-light } build() { - cd ${_realname}-$pkgver + cd "${_realname}-${_realname}-$pkgver" plain "Configure ..." ${MINGW_PREFIX}/bin/python3 ./waf-light configure --prefix=${MINGW_PREFIX} plain "Make waf ..." @@ -35,7 +32,7 @@ build() { } package() { - cd "${_realname}-$pkgver" + cd "${_realname}-${_realname}-$pkgver" ${MINGW_PREFIX}/bin/python3 ./waf-light install -f --destdir="$pkgdir" \ --tools='compat,compat15,ocaml,go,cython,scala,erlang,cuda,gcj,boost,pep8,eclipse' diff --git a/mingw-w64-waf/waflib.patch b/mingw-w64-waf/waflib.patch deleted file mode 100644 index 297644901c..0000000000 --- a/mingw-w64-waf/waflib.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- waf-1.7.15/waflib/Node.py.orig 2014-02-20 07:45:31.970800000 +0400 -+++ waf-1.7.15/waflib/Node.py 2013-12-19 02:49:19.000000000 +0400 -@@ -258,7 +258,9 @@ - lst = [x for x in split_path(lst) if x and x != '.'] - - cur = self -+ print ("find_node(self,lst) lst is %s" % (lst)) - for x in lst: -+ print ("considering x = %s" % (x)) - if x == '..': - cur = cur.parent or cur - continue -@@ -278,9 +276,11 @@ - - # optimistic: create the node first then look if it was correct to do so - cur = self.__class__(x, cur) -+ print ("cur.abspath() = %s" % (cur.abspath())) - try: - os.stat(cur.abspath()) - except OSError: -+ print ("os.stat failed?") - cur.evict() - return None - -@@ -403,11 +399,12 @@ - pass - # think twice before touching this (performance + complexity + correctness) - -+ print ("OS separator = %s" % (os.sep)) - if os.sep == '/': - if not self.parent: -- val = os.sep -+ val = (sys.platform!='win32') and os.sep or "" - elif not self.parent.name: -- val = os.sep + self.name -+ val = ((sys.platform!='win32') and os.sep or "") + self.name - else: - val = self.parent.abspath() + os.sep + self.name - else: From ce8dd84cc020571e9878a19a1919ed07ed6f5893 Mon Sep 17 00:00:00 2001 From: Ray Griffin Date: Fri, 8 May 2015 23:04:56 +0100 Subject: [PATCH 0996/2060] Forgot to change the damn homepage. --- mingw-w64-waf/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-waf/PKGBUILD b/mingw-w64-waf/PKGBUILD index 1443029f3f..adc0da8a8f 100644 --- a/mingw-w64-waf/PKGBUILD +++ b/mingw-w64-waf/PKGBUILD @@ -8,7 +8,7 @@ pkgrel=1 pkgdesc="General-purpose build system modelled after Scons (mingw-w64)" arch=('any') license=('BSD') -url="http://code.google.com/p/waf/" +url="https://waf.io/" makedepends=("setconf") depends=("${MINGW_PACKAGE_PREFIX}-python3") options=('!emptydirs') From 5c9cafea80b50eae978fe32a46ca22e62d781d85 Mon Sep 17 00:00:00 2001 From: Ray Griffin Date: Sat, 9 May 2015 17:20:16 +0100 Subject: [PATCH 0997/2060] libsodium: Update to 1.0.3 --- mingw-w64-libsodium/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libsodium/PKGBUILD b/mingw-w64-libsodium/PKGBUILD index 9966341ae8..ed26263392 100644 --- a/mingw-w64-libsodium/PKGBUILD +++ b/mingw-w64-libsodium/PKGBUILD @@ -2,7 +2,7 @@ _realname=libsodium pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.2 +pkgver=1.0.3 pkgrel=1 pkgdesc="P(ortable|ackageable) NaCl-based crypto library (mingw-w64)" arch=("any") @@ -10,7 +10,7 @@ url="https://github.com/jedisct1/libsodium" license=('custom:ISC') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") source=("http://download.dnscrypt.org/${_realname}/releases/${_realname}-${pkgver}.tar.gz") -md5sums=('dc40eb23e293448c6fc908757738003f') +md5sums=('b3bcc98e34d3250f55ae196822307fab') build() { rm -rf "${srcdir}/build-${MINGW_CHOST}" From bae34fec03d4ab2611ef4e51bcf723d38ca77c2a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 9 May 2015 15:58:11 +0100 Subject: [PATCH 0998/2060] qtcreator: Fix issue 615 https://github.com/Alexpux/MINGW-packages/issues/615 Launching Qt Creator with MSYSTEM env. var set caused Python to use / as os.path.sep which caused debugging to fail due to an issue in the Python dumpers code. It needs to replace all '\' with '/' in filenames but instead replaced all os.path.sep with '/', which when os.path.sep is already '/' was a noop. --- ...p-to-file-line-breakpoint-from-disas.patch | 68 ++++++ ...-Allow-builds-to-be-done-in-buildDir.patch | 229 ------------------ ...otools-Remove-broken-unchanged-check.patch | 30 --- ...001-autotools-Set-a-default-buildDir.patch | 33 +++ ...kip-first-char-after-This-GDB-was-co.patch | 32 --- ...ger-Handle-case-of-os.path.sep-being.patch | 37 +++ mingw-w64-qtcreator/PKGBUILD | 34 ++- ...eator-3.2.0-qbs-fileName-to-filePath.patch | 207 ---------------- 8 files changed, 152 insertions(+), 518 deletions(-) create mode 100644 mingw-w64-qtcreator/0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch delete mode 100644 mingw-w64-qtcreator/0001-autotools-Allow-builds-to-be-done-in-buildDir.patch delete mode 100644 mingw-w64-qtcreator/0001-autotools-Remove-broken-unchanged-check.patch create mode 100644 mingw-w64-qtcreator/0001-autotools-Set-a-default-buildDir.patch delete mode 100644 mingw-w64-qtcreator/0001-debugger-Don-t-skip-first-char-after-This-GDB-was-co.patch create mode 100644 mingw-w64-qtcreator/0002-Debugger-Handle-case-of-os.path.sep-being.patch delete mode 100644 mingw-w64-qtcreator/qt-creator-3.2.0-qbs-fileName-to-filePath.patch diff --git a/mingw-w64-qtcreator/0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch b/mingw-w64-qtcreator/0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch new file mode 100644 index 0000000000..ba463ee3fa --- /dev/null +++ b/mingw-w64-qtcreator/0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch @@ -0,0 +1,68 @@ +From eea8e932f3c3ca9157d961d57c80c5f297dff5c8 Mon Sep 17 00:00:00 2001 +From: hjk +Date: Fri, 17 Apr 2015 11:19:58 +0200 +Subject: [PATCH] Debugger: Fix jump to file/line breakpoint from disassembler + +Triggered by double-clicking a normal source file+line breakpoint +while looking at some disassembly: We want to jump to the original +source file in that case. + +Change-Id: Ia6eddcaf27e4160c7a989ab757315f5314f65d1e +Reviewed-by: Christian Stenger +--- + src/plugins/debugger/breakhandler.cpp | 19 ++++++++++++++++--- + 1 file changed, 16 insertions(+), 3 deletions(-) + +diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp +index ee60ba1..2334e45 100644 +--- a/src/plugins/debugger/breakhandler.cpp ++++ b/src/plugins/debugger/breakhandler.cpp +@@ -33,11 +33,18 @@ + #include "debuggeractions.h" + #include "debuggercore.h" + #include "debuggerengine.h" ++#include "debuggerinternalconstants.h" + #include "debuggerstringutils.h" + #include "simplifytype.h" + ++#include ++#include ++#include ++#include ++ + #include + #include ++#include + #include + #include + #include +@@ -50,6 +57,7 @@ + #include + #include + ++using namespace Core; + using namespace Utils; + + namespace Debugger { +@@ -1171,10 +1179,15 @@ void BreakHandler::timerEvent(QTimerEvent *event) + void Breakpoint::gotoLocation() const + { + if (DebuggerEngine *engine = currentEngine()) { +- if (b->m_params.type == BreakpointByAddress) ++ if (b->m_params.type == BreakpointByAddress) { + engine->gotoLocation(b->m_params.address); +- else +- engine->gotoLocation(Location(b->markerFileName(), b->markerLineNumber(), false)); ++ } else { ++ // Don't use gotoLocation as this ends up in disassembly ++ // if OperateByInstruction is on. ++ const QString file = QDir::cleanPath(b->markerFileName()); ++ IEditor *editor = EditorManager::openEditor(file); ++ editor->gotoLine(b->markerLineNumber(), 0); ++ } + } + } + +-- +2.4.0 + diff --git a/mingw-w64-qtcreator/0001-autotools-Allow-builds-to-be-done-in-buildDir.patch b/mingw-w64-qtcreator/0001-autotools-Allow-builds-to-be-done-in-buildDir.patch deleted file mode 100644 index f56444649f..0000000000 --- a/mingw-w64-qtcreator/0001-autotools-Allow-builds-to-be-done-in-buildDir.patch +++ /dev/null @@ -1,229 +0,0 @@ -From cd011cb7638ed6699c88451982ca3a052fa12eae Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Sun, 24 Aug 2014 20:33:40 +0100 -Subject: [PATCH] autotools: Allow builds to be done in buildDir - -configure is called using a relative path from buildDir -to the project directory and the configure command line -is updated to reflect changes to buildDir. - -Change-Id: Ia9e8eef446efd21b6dcedef4668ff03adfd8a20c ---- - .../autotoolsprojectmanager/autogenstep.cpp | 18 +++++++------ - .../autotoolsprojectmanager/autoreconfstep.cpp | 10 ++++--- - .../autotoolsbuildconfiguration.cpp | 14 ++++++++++ - .../autotoolsbuildconfiguration.h | 3 +++ - .../autotoolsprojectmanager/configurestep.cpp | 31 ++++++++++++++++++---- - .../autotoolsprojectmanager/configurestep.h | 2 ++ - 6 files changed, 61 insertions(+), 17 deletions(-) - -diff --git a/src/plugins/autotoolsprojectmanager/autogenstep.cpp b/src/plugins/autotoolsprojectmanager/autogenstep.cpp -index 33a4e13..28faed3 100644 ---- a/src/plugins/autotoolsprojectmanager/autogenstep.cpp -+++ b/src/plugins/autotoolsprojectmanager/autogenstep.cpp -@@ -158,8 +158,9 @@ bool AutogenStep::init() - ProcessParameters *pp = processParameters(); - pp->setMacroExpander(bc->macroExpander()); - pp->setEnvironment(bc->environment()); -- pp->setWorkingDirectory(bc->buildDirectory().toString()); -- pp->setCommand(QLatin1String("autogen.sh")); -+ const QString projectDir(bc->target()->project()->projectDirectory().toString()); -+ pp->setWorkingDirectory(projectDir); -+ pp->setCommand(QLatin1String("./autogen.sh")); - pp->setArguments(additionalArguments()); - pp->resolveAll(); - -@@ -171,10 +172,10 @@ void AutogenStep::run(QFutureInterface &interface) - BuildConfiguration *bc = buildConfiguration(); - - // Check whether we need to run autogen.sh -- const QString buildDir = bc->buildDirectory().toString(); -- const QFileInfo configureInfo(buildDir + QLatin1String("/configure")); -- const QFileInfo configureAcInfo(buildDir + QLatin1String("/configure.ac")); -- const QFileInfo makefileAmInfo(buildDir + QLatin1String("/Makefile.am")); -+ const QString projectDir(bc->target()->project()->projectDirectory().toString()); -+ const QFileInfo configureInfo(projectDir + QLatin1String("/configure")); -+ const QFileInfo configureAcInfo(projectDir + QLatin1String("/configure.ac")); -+ const QFileInfo makefileAmInfo(projectDir + QLatin1String("/Makefile.am")); - - if (!configureInfo.exists() - || configureInfo.lastModified() < configureAcInfo.lastModified() -@@ -276,8 +277,9 @@ void AutogenStepConfigWidget::updateDetails() - ProcessParameters param; - param.setMacroExpander(bc->macroExpander()); - param.setEnvironment(bc->environment()); -- param.setWorkingDirectory(bc->buildDirectory().toString()); -- param.setCommand(QLatin1String("autogen.sh")); -+ const QString projectDir(bc->target()->project()->projectDirectory().toString()); -+ param.setWorkingDirectory(projectDir); -+ param.setCommand(QLatin1String("./autogen.sh")); - param.setArguments(m_autogenStep->additionalArguments()); - m_summaryText = param.summary(displayName()); - emit updateSummary(); -diff --git a/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp b/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp -index f046b26..584cff8 100644 ---- a/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp -+++ b/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp -@@ -157,7 +157,8 @@ bool AutoreconfStep::init() - ProcessParameters *pp = processParameters(); - pp->setMacroExpander(bc->macroExpander()); - pp->setEnvironment(bc->environment()); -- pp->setWorkingDirectory(bc->buildDirectory().toString()); -+ const QString projectDir(bc->target()->project()->projectDirectory().toString()); -+ pp->setWorkingDirectory(projectDir); - pp->setCommand(QLatin1String("autoreconf")); - pp->setArguments(additionalArguments()); - pp->resolveAll(); -@@ -170,8 +171,8 @@ void AutoreconfStep::run(QFutureInterface &interface) - BuildConfiguration *bc = buildConfiguration(); - - // Check whether we need to run autoreconf -- const QString buildDir = bc->buildDirectory().toString(); -- const QFileInfo configureInfo(buildDir + QLatin1String("/configure")); -+ const QString projectDir(bc->target()->project()->projectDirectory().toString()); -+ const QFileInfo configureInfo(projectDir + QLatin1String("/configure")); - - if (!configureInfo.exists()) - m_runAutoreconf = true; -@@ -270,7 +271,8 @@ void AutoreconfStepConfigWidget::updateDetails() - ProcessParameters param; - param.setMacroExpander(bc->macroExpander()); - param.setEnvironment(bc->environment()); -- param.setWorkingDirectory(bc->buildDirectory().toString()); -+ const QString projectDir(bc->target()->project()->projectDirectory().toString()); -+ param.setWorkingDirectory(projectDir); - param.setCommand(QLatin1String("autoreconf")); - param.setArguments(m_autoreconfStep->additionalArguments()); - m_summaryText = param.summary(displayName()); -diff --git a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp -index 76acb72..aa593c1 100644 ---- a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp -+++ b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp -@@ -223,3 +223,17 @@ BuildConfiguration::BuildType AutotoolsBuildConfiguration::buildType() const - // TODO: Should I return something different from Unknown? - return Unknown; - } -+ -+void AutotoolsBuildConfiguration::setBuildDirectory(const Utils::FileName &directory) -+{ -+ if (directory == buildDirectory()) -+ return; -+ BuildConfiguration::setBuildDirectory(directory); -+ ProjectExplorer::BuildStepList *bsl = stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); -+ foreach (BuildStep *bs, bsl->steps()) { -+ ConfigureStep *cs = qobject_cast(bs); -+ if (cs) { -+ cs->notifyBuildDirectoryChanged(); -+ } -+ } -+} -diff --git a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h -index b0ef03d..fdb4a07 100644 ---- a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h -+++ b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h -@@ -60,6 +60,9 @@ protected: - AutotoolsBuildConfiguration(ProjectExplorer::Target *parent, AutotoolsBuildConfiguration *source); - - friend class AutotoolsBuildSettingsWidget; -+ -+private: -+ void setBuildDirectory(const Utils::FileName &directory); - }; - - class AutotoolsBuildConfigurationFactory : public ProjectExplorer::IBuildConfigurationFactory -diff --git a/src/plugins/autotoolsprojectmanager/configurestep.cpp b/src/plugins/autotoolsprojectmanager/configurestep.cpp -index 2f51863..06acfb9 100644 ---- a/src/plugins/autotoolsprojectmanager/configurestep.cpp -+++ b/src/plugins/autotoolsprojectmanager/configurestep.cpp -@@ -54,6 +54,20 @@ using namespace ProjectExplorer; - const char CONFIGURE_ADDITIONAL_ARGUMENTS_KEY[] = "AutotoolsProjectManager.ConfigureStep.AdditionalArguments"; - const char CONFIGURE_STEP_ID[] = "AutotoolsProjectManager.ConfigureStep"; - -+///////////////////// -+// Helper Function -+///////////////////// -+static QString projectDirRelativeToBuildDir(BuildConfiguration *bc) { -+ const QDir buildDir(bc->buildDirectory().toString()); -+ QString projDirToBuildDir = buildDir.relativeFilePath( -+ bc->target()->project()->projectDirectory().toString()); -+ if (projDirToBuildDir.isEmpty()) -+ return QLatin1String("./"); -+ if (!projDirToBuildDir.endsWith(QLatin1Char('/'))) -+ projDirToBuildDir.append(QLatin1Char('/')); -+ return projDirToBuildDir; -+} -+ - //////////////////////////////// - // ConfigureStepFactory Class - //////////////////////////////// -@@ -159,7 +173,7 @@ bool ConfigureStep::init() - pp->setMacroExpander(bc->macroExpander()); - pp->setEnvironment(bc->environment()); - pp->setWorkingDirectory(bc->buildDirectory().toString()); -- pp->setCommand(QLatin1String("configure")); -+ pp->setCommand(projectDirRelativeToBuildDir(bc) + QLatin1String("configure")); - pp->setArguments(additionalArguments()); - pp->resolveAll(); - -@@ -171,9 +185,9 @@ void ConfigureStep::run(QFutureInterface& interface) - BuildConfiguration *bc = buildConfiguration(); - - //Check whether we need to run configure -- QString buildDir = bc->buildDirectory().toString(); -- const QFileInfo configureInfo(buildDir +QLatin1String("/configure")); -- const QFileInfo configStatusInfo(buildDir + QLatin1String("/config.status")); -+ const QString projectDir(bc->target()->project()->projectDirectory().toString()); -+ const QFileInfo configureInfo(projectDir + QLatin1String("/configure")); -+ const QFileInfo configStatusInfo(bc->buildDirectory().toString() + QLatin1String("/config.status")); - - if (!configStatusInfo.exists() - || configStatusInfo.lastModified() < configureInfo.lastModified()) { -@@ -212,6 +226,11 @@ void ConfigureStep::setAdditionalArguments(const QString &list) - emit additionalArgumentsChanged(list); - } - -+void ConfigureStep::notifyBuildDirectoryChanged() -+{ -+ emit buildDirectoryChanged(); -+} -+ - QString ConfigureStep::additionalArguments() const - { - return m_additionalArguments; -@@ -255,6 +274,8 @@ ConfigureStepConfigWidget::ConfigureStepConfigWidget(ConfigureStep *configureSte - configureStep, SLOT(setAdditionalArguments(QString))); - connect(configureStep, SIGNAL(additionalArgumentsChanged(QString)), - this, SLOT(updateDetails())); -+ connect(configureStep, SIGNAL(buildDirectoryChanged(void)), -+ this, SLOT(updateDetails())); - } - - QString ConfigureStepConfigWidget::displayName() const -@@ -275,7 +296,7 @@ void ConfigureStepConfigWidget::updateDetails() - param.setMacroExpander(bc->macroExpander()); - param.setEnvironment(bc->environment()); - param.setWorkingDirectory(bc->buildDirectory().toString()); -- param.setCommand(QLatin1String("configure")); -+ param.setCommand(projectDirRelativeToBuildDir(bc) + QLatin1String("configure")); - param.setArguments(m_configureStep->additionalArguments()); - m_summaryText = param.summary(displayName()); - emit updateSummary(); -diff --git a/src/plugins/autotoolsprojectmanager/configurestep.h b/src/plugins/autotoolsprojectmanager/configurestep.h -index 40ae1d0..99366d6 100644 ---- a/src/plugins/autotoolsprojectmanager/configurestep.h -+++ b/src/plugins/autotoolsprojectmanager/configurestep.h -@@ -103,9 +103,11 @@ public: - - public slots: - void setAdditionalArguments(const QString &list); -+ void notifyBuildDirectoryChanged(); - - signals: - void additionalArgumentsChanged(const QString &); -+ void buildDirectoryChanged(); - - protected: - ConfigureStep(ProjectExplorer::BuildStepList *bsl, ConfigureStep *bs); --- -2.1.0 - diff --git a/mingw-w64-qtcreator/0001-autotools-Remove-broken-unchanged-check.patch b/mingw-w64-qtcreator/0001-autotools-Remove-broken-unchanged-check.patch deleted file mode 100644 index ba266716d9..0000000000 --- a/mingw-w64-qtcreator/0001-autotools-Remove-broken-unchanged-check.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 7e5fbdd1bb67c2a53101548063f130d7a4d9b14f Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Wed, 10 Sep 2014 00:17:42 +0100 -Subject: [PATCH 1/2] autotools: Remove broken 'unchanged' check - -Before m_buildDirectory gets changed buildDirectory() returns -a default of the projectDir and notifyBuildDirectoryChanged() -would not get called until the build directory was editted. - -Change-Id: Ie31fb2722c663cd0f998458d536181f47c83a37d ---- - src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp -index aa593c1..dca4766 100644 ---- a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp -+++ b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp -@@ -226,8 +226,6 @@ BuildConfiguration::BuildType AutotoolsBuildConfiguration::buildType() const - - void AutotoolsBuildConfiguration::setBuildDirectory(const Utils::FileName &directory) - { -- if (directory == buildDirectory()) -- return; - BuildConfiguration::setBuildDirectory(directory); - ProjectExplorer::BuildStepList *bsl = stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); - foreach (BuildStep *bs, bsl->steps()) { --- -2.1.0 - diff --git a/mingw-w64-qtcreator/0001-autotools-Set-a-default-buildDir.patch b/mingw-w64-qtcreator/0001-autotools-Set-a-default-buildDir.patch new file mode 100644 index 0000000000..9199a61c3f --- /dev/null +++ b/mingw-w64-qtcreator/0001-autotools-Set-a-default-buildDir.patch @@ -0,0 +1,33 @@ +From 3047101050991dca283360853c8f3403501d50d1 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 10 Sep 2014 00:17:42 +0100 +Subject: [PATCH 1/2] autotools: Set a default buildDir + +So that the un-changed optimisation in setBuildDirectory works +correctly. + +Change-Id: Ie31fb2722c663cd0f998458d536181f47c83a37d +--- + src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp +index f17b1d7..29d3095 100644 +--- a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp ++++ b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp +@@ -64,7 +64,11 @@ using namespace ProjectExplorer::Constants; + ////////////////////////////////////// + AutotoolsBuildConfiguration::AutotoolsBuildConfiguration(Target *parent) + : BuildConfiguration(parent, Core::Id(AUTOTOOLS_BC_ID)) +-{ } ++{ ++ // / is used so the un-changed check in setBuildDirectory() works correctly. ++ // The leading / is to avoid the relative the path expansion in BuildConfiguration::buildDirectory. ++ BuildConfiguration::setBuildDirectory(Utils::FileName::fromString(QString::fromLatin1("/"))); ++} + + NamedWidget *AutotoolsBuildConfiguration::createConfigWidget() + { +-- +2.4.0 + diff --git a/mingw-w64-qtcreator/0001-debugger-Don-t-skip-first-char-after-This-GDB-was-co.patch b/mingw-w64-qtcreator/0001-debugger-Don-t-skip-first-char-after-This-GDB-was-co.patch deleted file mode 100644 index 37a2b34c33..0000000000 --- a/mingw-w64-qtcreator/0001-debugger-Don-t-skip-first-char-after-This-GDB-was-co.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 592fb8305313bfc67131bb6cc169bd9175c0c336 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Mon, 8 Sep 2014 23:59:30 +0100 -Subject: [PATCH] debugger: Don't skip first char after "This GDB was - configured as \"" - -sizeof(needle) includes the \0 terminator, so the first letter of the -target triplet was being skipped too. This caused the architecture to -be mis-detected and (for us on MSYS2) the 32bit GDB to be selected in -64bit Kits." - -Change-Id: Id54bc320baf6cc604f2d41fa7ff05aca0756a296 ---- - src/plugins/debugger/debuggeritem.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/plugins/debugger/debuggeritem.cpp b/src/plugins/debugger/debuggeritem.cpp -index f95d2e3..fe49240 100644 ---- a/src/plugins/debugger/debuggeritem.cpp -+++ b/src/plugins/debugger/debuggeritem.cpp -@@ -110,7 +110,7 @@ void DebuggerItem::reinitializeFromFile() - // or "i686-linux-gnu" - int pos1 = ba.indexOf(needle); - if (pos1 != -1) { -- pos1 += int(sizeof(needle)); -+ pos1 += int(sizeof(needle)-1); - int pos2 = ba.indexOf('"', pos1 + 1); - QByteArray target = ba.mid(pos1, pos2 - pos1); - int pos3 = target.indexOf("--target="); --- -2.1.0 - diff --git a/mingw-w64-qtcreator/0002-Debugger-Handle-case-of-os.path.sep-being.patch b/mingw-w64-qtcreator/0002-Debugger-Handle-case-of-os.path.sep-being.patch new file mode 100644 index 0000000000..8fa9366ca3 --- /dev/null +++ b/mingw-w64-qtcreator/0002-Debugger-Handle-case-of-os.path.sep-being.patch @@ -0,0 +1,37 @@ +From 09a4253ff82f71d5de711b561b8c4b9f73b48f50 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 9 May 2015 14:49:19 +0100 +Subject: [PATCH 2/2] Debugger: Handle case of os.path.sep being '/' + +On MSYS2, if QtCreator is launched from one of the msys2 shells +then the MSYSTEM env. var is set and our Pythons set os.sep and +os.path.sep to '/' so that it aligns with the default separator +of those shells. + +fromNativePath(str) then fails to convert '\' seprators embedded +in binaries since str.replace('/', '/') is a noop. The operation +we want here is to convert all '\' to '/' anyway so this is more +explicit regardless of any opinions on our choice to dynamically +vary os.sep and os.path.sep + +Change-Id: I76c05b188abca41c6a1b516c68b584e0c06e7235 +--- + share/qtcreator/debugger/gdbbridge.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py +index d219689..e96fe86 100644 +--- a/share/qtcreator/debugger/gdbbridge.py ++++ b/share/qtcreator/debugger/gdbbridge.py +@@ -1545,7 +1545,7 @@ class Dumper(DumperBase): + + def stackListFrames(self, args): + def fromNativePath(str): +- return str.replace(os.path.sep, '/') ++ return str.replace('\\', '/') + + limit = int(args['limit']) + if limit <= 0: +-- +2.4.0 + diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 178c1807ea..271751d565 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -8,7 +8,7 @@ __pre= _base_ver=3.4.0 #_base_ver=3.2.2 pkgver=${_base_ver}${_pre} -pkgrel=1 +pkgrel=2 pkgdesc='Cross-patform IDE (mingw-w64)' url='http://qt-project.org' install=qt-creator-${CARCH}.install @@ -31,15 +31,14 @@ _pkgfqn="${_realname}-opensource-src-${_base_ver}${__pre}" source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_ver%.*}/${_base_ver}${__pre}/${_pkgfqn}.tar.gz http://download.qt-project.org/official_releases/qtcreator/${pkgver%.*}/${pkgver}/${_pkgfqn}.tar.gz 0001-Qbs-Do-not-crash-when-using-simplified-project-view.patch - 0001-autotools-Allow-builds-to-be-done-in-buildDir.patch - 0001-autotools-Remove-broken-unchanged-check.patch + 0001-autotools-Set-a-default-buildDir.patch + 0002-Debugger-Handle-case-of-os.path.sep-being.patch 0002-autotools-Use-summaryInWorkdir.patch - 0001-debugger-Don-t-skip-first-char-after-This-GDB-was-co.patch + 0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch qt-creator-3.2.0-Allow-iOS-plugin-on-any-platform.patch qt-creator-3.2.0-Define-QBS_INSTALL_DIR-as-relative-path.patch qt-creator-3.2.0-qbs-CONFIG-add-qbs_enable_project_file_updates.patch - qt-creator-3.2.0-qbs-fileName-to-filePath.patch qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch qt-creator-3.2.0-autotools-allow-non-Automake-Makefile-in-projects.patch qt-creator-3.2.0-i[3456]86-and-x86-have-32bit-wordWidth.patch @@ -48,15 +47,14 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v noextract=(${_pkgfqn}.tar.gz) sha256sums=('b80baf5be9b0421b3d951a8a0eb411a65cf008f4c753f5a80d205e90fa4fe112' '18f59946054e667b56276f53ec544d4786c3c249fee6c0bd9b0b565ed4b7cf2d' - '6c34b2bad7a24c5922d237dc67fcced14e83d65116f77cd84aa80ae2ebd4aad9' - '2f45ff4c2806c90c36f19da07707fef213e50fbf8825fe169e1bce6349efacee' + '205d8637152d6e6e57c4a9d9c5146efa7fa16db5fb7b8cabc3bc5ded96823d8a' + '6217d0682c40ac586205abc835490b36ac79525fdefde5afd66e3b02daabd8a0' '22253cf29a2c8effebb1cc8313a0f350cf993d7fc404763063e6bd8444fa61f1' - '12aef50d3c90dfd5bcd9ac98ebd89d29a23d2420e8adf9c65d818ee2219ef21b' + 'f5652fc21b0ad7463f0286143a970292e0b5d05c980206639dc8f939973a580b' '45b9fc82c7a9364450420920adcdb04a3b67eeb96f64733166da757a5ab91013' '96c14f54577bf6cadf5c12018745666a9e99cd8d6a876c29a28b13599a8cb368' '68133c95b70c1b54e55ab4c8b31023afe4ab9a33667e4510bda64c828b95e91e' '1a1738379b0413484fd1ff3521b6bc85d034f5f964311d963dd044b4966b274b' - '8244e66b1604d10951f1b32be3269ef453c47e9eb1b80c30be79a124b697ae0a' '2915cd4bf08643057129c26c0ce28caee14586fdf6a164a96e36ce0b37966427' '0b0bba8bda0fd8247563e3827f58fe73baed17b09b9de6ea28375b7f1afa3ee1' '79fc4d2ef02ff8f458b1b330c683c2a86397f056369c90176a9ddbeba3b719fd' @@ -72,22 +70,18 @@ prepare() { # Not needed for > 3.2.2 # patch -p1 -i "${srcdir}"/0001-Qbs-Do-not-crash-when-using-simplified-project-view.patch -# Attempting to upstream: https://codereview.qt-project.org/#/c/93073/ -# patch -p1 -i "${srcdir}"/0001-autotools-Allow-builds-to-be-done-in-buildDir.patch - # Attempting to upstream: https://codereview.qt-project.org/#/c/94366/ - patch -p1 -i "${srcdir}"/0001-autotools-Remove-broken-unchanged-check.patch + patch -p1 -i "${srcdir}"/0001-autotools-Set-a-default-buildDir.patch + patch -p1 -i "${srcdir}"/0002-Debugger-Handle-case-of-os.path.sep-being.patch + # patch -p1 -i "${srcdir}"/0002-autotools-Use-summaryInWorkdir.patch - [ -d ${srcdir}/${_pkgfqn}.old ] && rm -rf ${srcdir}/${_pkgfqn}.old - cp -rf ${srcdir}/${_pkgfqn} ${srcdir}/${_pkgfqn}.old -# Already upstreamed: https://codereview.qt-project.org/#/c/94248/ -# patch -p1 -i "${srcdir}"/0001-debugger-Don-t-skip-first-char-after-This-GDB-was-co.patch + patch -p1 -i "${srcdir}"/0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch + patch -p1 -i "${srcdir}"/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-Allow-iOS-plugin-on-any-platform.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-Define-QBS_INSTALL_DIR-as-relative-path.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-qbs-CONFIG-add-qbs_enable_project_file_updates.patch -# This one is only needed if you want to use qbs-git instead of qbs. -# patch -p1 -i "${srcdir}"/qt-creator-3.2.0-qbs-fileName-to-filePath.patch + patch -p1 -i "${srcdir}"/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-autotools-allow-non-Automake-Makefile-in-projects.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-i[3456]86-and-x86-have-32bit-wordWidth.patch @@ -111,7 +105,7 @@ build() { _config_variant=release fi ${MINGW_PREFIX}/bin/qmake.exe ../${_pkgfqn}/qtcreator.pro CONFIG+=${_config_variant} - make + make ${_config_variant} make docs } diff --git a/mingw-w64-qtcreator/qt-creator-3.2.0-qbs-fileName-to-filePath.patch b/mingw-w64-qtcreator/qt-creator-3.2.0-qbs-fileName-to-filePath.patch deleted file mode 100644 index aabc12a52f..0000000000 --- a/mingw-w64-qtcreator/qt-creator-3.2.0-qbs-fileName-to-filePath.patch +++ /dev/null @@ -1,207 +0,0 @@ -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbsbuildstep.cpp qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbsbuildstep.cpp ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbsbuildstep.cpp 2014-08-19 12:50:15.621530300 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbsbuildstep.cpp 2014-08-19 13:30:13.985530300 +0100 -@@ -221,7 +221,7 @@ - // Report errors: - foreach (const qbs::ErrorItem &item, m_job->error().items()) - createTaskAndOutput(ProjectExplorer::Task::Error, item.description(), -- item.codeLocation().fileName(), item.codeLocation().line()); -+ item.codeLocation().filePath(), item.codeLocation().line()); - - QbsProject *pro = static_cast(project()); - -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbscleanstep.cpp qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbscleanstep.cpp ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbscleanstep.cpp 2014-08-19 12:50:15.630530300 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbscleanstep.cpp 2014-08-19 13:30:13.989530300 +0100 -@@ -181,7 +181,7 @@ - // Report errors: - foreach (const qbs::ErrorItem &item, m_job->error().items()) { - createTaskAndOutput(ProjectExplorer::Task::Error, item.description(), -- item.codeLocation().fileName(), item.codeLocation().line()); -+ item.codeLocation().filePath(), item.codeLocation().line()); - } - - QTC_ASSERT(m_fi, return); -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbsinstallstep.cpp qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbsinstallstep.cpp ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbsinstallstep.cpp 2014-08-19 12:50:15.608530300 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbsinstallstep.cpp 2014-08-19 13:30:13.992530300 +0100 -@@ -191,7 +191,7 @@ - // Report errors: - foreach (const qbs::ErrorItem &item, m_job->error().items()) { - createTaskAndOutput(ProjectExplorer::Task::Error, item.description(), -- item.codeLocation().fileName(), item.codeLocation().line()); -+ item.codeLocation().filePath(), item.codeLocation().line()); - } - - QTC_ASSERT(m_fi, return); -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbslogsink.cpp qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbslogsink.cpp ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbslogsink.cpp 2014-08-19 12:50:15.666530300 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbslogsink.cpp 2014-08-19 13:30:13.995530300 +0100 -@@ -72,7 +72,7 @@ - foreach (const qbs::ErrorItem &item, warning.items()) - emit newTask(ProjectExplorer::Task(ProjectExplorer::Task::Warning, - item.description(), -- Utils::FileName::fromString(item.codeLocation().fileName()), -+ Utils::FileName::fromString(item.codeLocation().filePath()), - item.codeLocation().line(), - ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); - } -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbsnodes.cpp qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbsnodes.cpp ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbsnodes.cpp 2014-08-19 12:50:15.616530300 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbsnodes.cpp 2014-08-19 13:30:13.999530300 +0100 -@@ -348,7 +348,7 @@ - - setIcon(m_groupIcon); - -- QbsFileNode *idx = new QbsFileNode(grp->location().fileName(), -+ QbsFileNode *idx = new QbsFileNode(grp->location().filePath(), - ProjectExplorer::ProjectFileType, false, - grp->location().line()); - addFileNodes(QList() << idx); -@@ -428,7 +428,7 @@ - m_productPath = productPath; - m_qbsGroupData = grp; - -- setPath(grp->location().fileName()); -+ setPath(grp->location().filePath()); - setDisplayName(grp->name()); - - QbsFileNode *idx = 0; -@@ -438,7 +438,7 @@ - break; - } - QTC_ASSERT(idx, return); -- idx->setPathAndLine(grp->location().fileName(), grp->location().line()); -+ idx->setPathAndLine(grp->location().filePath(), grp->location().line()); - - setupFiles(this, grp->allFilePaths(), productPath, updateExisting); - -@@ -545,14 +545,14 @@ - // -------------------------------------------------------------------- - - QbsProductNode::QbsProductNode(const qbs::ProductData &prd) : -- QbsBaseProjectNode(prd.location().fileName()) -+ QbsBaseProjectNode(prd.location().filePath()) - { - if (m_productIcon.isNull()) - m_productIcon = generateIcon(QString::fromLatin1(Constants::QBS_PRODUCT_OVERLAY_ICON)); - - setIcon(m_productIcon); - -- ProjectExplorer::FileNode *idx = new QbsFileNode(prd.location().fileName(), -+ ProjectExplorer::FileNode *idx = new QbsFileNode(prd.location().filePath(), - ProjectExplorer::ProjectFileType, false, - prd.location().line()); - addFileNodes(QList() << idx); -@@ -627,8 +627,8 @@ - bool updateExisting = productWasEnabled != productIsEnabled; - - setDisplayName(prd.name()); -- setPath(prd.location().fileName()); -- const QString &productPath = QFileInfo(prd.location().fileName()).absolutePath(); -+ setPath(prd.location().filePath()); -+ const QString &productPath = QFileInfo(prd.location().filePath()).absolutePath(); - - // Find the QbsFileNode we added earlier: - QbsFileNode *idx = 0; -@@ -638,7 +638,7 @@ - break; - } - QTC_ASSERT(idx, return); -- idx->setPathAndLine(prd.location().fileName(), prd.location().line()); -+ idx->setPathAndLine(prd.location().filePath(), prd.location().line()); - - QList toAdd; - QList toRemove = subProjectNodes(); -@@ -726,7 +726,7 @@ - foreach (const qbs::ProjectData &subData, prjData.subProjects()) { - QbsProjectNode *qn = findProjectNode(subData.name()); - if (!qn) { -- QbsProjectNode *subProject = new QbsProjectNode(subData.location().fileName()); -+ QbsProjectNode *subProject = new QbsProjectNode(subData.location().filePath()); - subProject->update(subData); - toAdd << subProject; - } else { -@@ -831,13 +831,13 @@ - static QSet referencedBuildSystemFiles(const qbs::ProjectData &data) - { - QSet result; -- result.insert(data.location().fileName()); -+ result.insert(data.location().filePath()); - foreach (const qbs::ProjectData &subProject, data.subProjects()) - result.unite(referencedBuildSystemFiles(subProject)); - foreach (const qbs::ProductData &product, data.products()) { -- result.insert(product.location().fileName()); -+ result.insert(product.location().filePath()); - foreach (const qbs::GroupData &group, product.groups()) -- result.insert(group.location().fileName()); -+ result.insert(group.location().filePath()); - } - - return result; -diff -urN qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbsproject.cpp qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbsproject.cpp ---- qt-creator-opensource-src-3.2.0.orig/src/plugins/qbsprojectmanager/qbsproject.cpp 2014-08-19 12:50:15.650530300 +0100 -+++ qt-creator-opensource-src-3.2.0/src/plugins/qbsprojectmanager/qbsproject.cpp 2014-08-19 13:30:14.004530300 +0100 -@@ -165,14 +165,14 @@ - - static void collectFilesForProject(const qbs::ProjectData &project, QSet &result) - { -- result.insert(project.location().fileName()); -+ result.insert(project.location().filePath()); - foreach (const qbs::ProductData &prd, project.products()) { - foreach (const qbs::GroupData &grp, prd.groups()) { - foreach (const QString &file, grp.allFilePaths()) - result.insert(file); -- result.insert(grp.location().fileName()); -+ result.insert(grp.location().filePath()); - } -- result.insert(prd.location().fileName()); -+ result.insert(prd.location().filePath()); - } - foreach (const qbs::ProjectData &subProject, project.subProjects()) - collectFilesForProject(subProject, result); -@@ -229,7 +229,7 @@ - { - QTC_ASSERT(m_qbsProject.isValid(), return false); - QStringList allPaths = groupData.allFilePaths(); -- const QString productFilePath = productData.location().fileName(); -+ const QString productFilePath = productData.location().filePath(); - ChangeExpector expector(productFilePath, m_qbsDocuments); - foreach (const QString &path, filePaths) { - qbs::ErrorInfo err = m_qbsProject.addFiles(productData, groupData, QStringList() << path); -@@ -254,7 +254,7 @@ - { - QTC_ASSERT(m_qbsProject.isValid(), return false); - QStringList allPaths = groupData.allFilePaths(); -- const QString productFilePath = productData.location().fileName(); -+ const QString productFilePath = productData.location().filePath(); - ChangeExpector expector(productFilePath, m_qbsDocuments); - foreach (const QString &path, filePaths) { - qbs::ErrorInfo err -@@ -546,7 +546,7 @@ - foreach (const qbs::ErrorItem &item, e.items()) - TaskHub::addTask(Task::Error, item.description(), - ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM, -- FileName::fromString(item.codeLocation().fileName()), -+ FileName::fromString(item.codeLocation().filePath()), - item.codeLocation().line()); - - } -@@ -690,7 +690,7 @@ - part->project = this; - part->displayName = grp.name(); - part->projectFile = QString::fromLatin1("%1:%2:%3") -- .arg(grp.location().fileName()) -+ .arg(grp.location().filePath()) - .arg(grp.location().line()) - .arg(grp.location().column()); - part->evaluateToolchain(ToolChainKitInformation::toolChain(k), -@@ -761,7 +761,7 @@ - if (!ta.isExecutable()) - continue; - applications.list << ProjectExplorer::BuildTargetInfo(Utils::FileName::fromString(ta.filePath()), -- Utils::FileName::fromString(productData.location().fileName())); -+ Utils::FileName::fromString(productData.location().filePath())); - } - } - activeTarget()->setApplicationTargets(applications); From c0bea3f4a46fb6727e3e06bb0aa31b664142d70c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 11 May 2015 06:45:33 +0300 Subject: [PATCH 0999/2060] sqlite3: Update to 3.8.10.1 --- mingw-w64-sqlite3/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index db70bb7224..e1afb90aa1 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -3,8 +3,8 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3080900 -pkgver=3.8.9.0 +_amalgamationver=3081001 +pkgver=3.8.10.1 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tcl") source=("http://www.sqlite.org/2015/sqlite-autoconf-$_amalgamationver.tar.gz" LICENSE) -sha1sums=('db70dee268700b312cbaa5b3e5cf8454e1c8b7b9' +sha1sums=('86bfed5752783fb24c051f3efac5972ce11023f0' 'e2aa07adae13aed713860b74165d3325a18c6792') options=('!strip' 'staticlibs') From d6874e611e2c3e0bbad9b96cd80df03502433c70 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 11 May 2015 07:05:14 +0300 Subject: [PATCH 1000/2060] libass: Update to 0.12.2 --- mingw-w64-libass/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libass/PKGBUILD b/mingw-w64-libass/PKGBUILD index 0005ace4a7..39ee32f510 100644 --- a/mingw-w64-libass/PKGBUILD +++ b/mingw-w64-libass/PKGBUILD @@ -2,7 +2,7 @@ _realname=libass pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.12.1 +pkgver=0.12.2 pkgrel=1 pkgdesc="A portable library for SSA/ASS subtitles rendering (mingw-w64)" arch=('any') @@ -17,8 +17,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-fribidi" "${MINGW_PACKAGE_PREFIX}-harfbuzz" "${MINGW_PACKAGE_PREFIX}-enca") options=('strip' 'staticlibs') -source=(https://github.com/libass/${_realname}/archive/${pkgver}.tar.gz) -md5sums=('d493cd050d62aa174dbe1f41461f95c3') +source=("${_realname}-${pkgver}.tar.gz"::https://github.com/libass/${_realname}/archive/${pkgver}.tar.gz) +md5sums=('62d0868532eab9fcb5933ff4cc161b12') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From eb9df421c93e2c01ecd6d39fd10666af3877b0dd Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 11 May 2015 22:40:24 +0300 Subject: [PATCH 1001/2060] wxwidgets: Increase pkgrel --- mingw-w64-wxwidgets/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-wxwidgets/PKGBUILD b/mingw-w64-wxwidgets/PKGBUILD index 2716911e07..fba46ee5f6 100644 --- a/mingw-w64-wxwidgets/PKGBUILD +++ b/mingw-w64-wxwidgets/PKGBUILD @@ -5,7 +5,7 @@ _realname=wxWidgets pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2 -pkgrel=7 +pkgrel=8 pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)" arch=('any') license=("custom:wxWindows") From cb85696530949f411a21d4ed057d56449cba59e1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 11 May 2015 22:46:22 +0300 Subject: [PATCH 1002/2060] qtcreator: Fix building when "SRCDEST" is defined for makepkg. --- mingw-w64-qtcreator/PKGBUILD | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 271751d565..47a93818a9 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -3,10 +3,8 @@ _realname=qt-creator pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -# WIP for 3.? __pre= _base_ver=3.4.0 -#_base_ver=3.2.2 pkgver=${_base_ver}${_pre} pkgrel=2 pkgdesc='Cross-patform IDE (mingw-w64)' @@ -61,9 +59,8 @@ sha256sums=('b80baf5be9b0421b3d951a8a0eb411a65cf008f4c753f5a80d205e90fa4fe112' 'c4cae708825102d538e1ecb9a88ecb216d366feb779553a2e91f97c4b78f8427' 'b4cf07e2772b2ec6710ee7df6463feddb4195d65fa59e6c6095fbc0cb240417e') prepare() { - cd $startdir/ [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} - tar -xzf ${startdir}/${_pkgfqn}.tar.gz -C $srcdir || true + tar -xzf ${srcdir}/${_pkgfqn}.tar.gz -C $srcdir || true cd ${srcdir}/${_pkgfqn} From 01ca03b2a4ef4adde90df474aa7ca5c023916b4e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 12 May 2015 15:44:59 +0300 Subject: [PATCH 1003/2060] imagemagick: Update to 6.9.1-2 --- mingw-w64-imagemagick/002-build-fixes.patch | 55 +++++++++++++++++++++ mingw-w64-imagemagick/PKGBUILD | 25 +++++----- 2 files changed, 68 insertions(+), 12 deletions(-) diff --git a/mingw-w64-imagemagick/002-build-fixes.patch b/mingw-w64-imagemagick/002-build-fixes.patch index f4914416ef..21e8a52dff 100644 --- a/mingw-w64-imagemagick/002-build-fixes.patch +++ b/mingw-w64-imagemagick/002-build-fixes.patch @@ -20,3 +20,58 @@ #if defined(_DEBUG) && !defined(__MINGW32__) && !defined(__MINGW64__) #include #endif +--- ImageMagick-6.9.0-4/magick/nt-base.c.orig 2015-02-22 22:02:34.000000000 +0100 ++++ ImageMagick-6.9.0-4/magick/nt-base.c 2015-05-12 13:31:02.627609000 +0200 +@@ -1625,12 +1625,16 @@ + wchar_t + file_specification[MaxTextExtent]; + ++ wchar_t WCDirectorySeparator[strlen(DirectorySeparator)+1]; ++ MultiByteToWideChar(CP_UTF8,0,DirectorySeparator,-1,WCDirectorySeparator, ++ strlen(DirectorySeparator)+1); ++ + assert(path != (const char *) NULL); + length=MultiByteToWideChar(CP_UTF8,0,path,-1,file_specification, + MaxTextExtent); + if (length == 0) + return((DIR *) NULL); +- if(wcsncat(file_specification,(const wchar_t*) DirectorySeparator, ++ if(wcsncat(file_specification, WCDirectorySeparator, + MaxTextExtent-wcslen(file_specification)-1) == (wchar_t*) NULL) + return((DIR *) NULL); + entry=(DIR *) AcquireMagickMemory(sizeof(DIR)); +--- ImageMagick-6.9.1-2/magick/locale.c.orig 2015-05-12 14:33:17.733600000 +0300 ++++ ImageMagick-6.9.1-2/magick/locale.c 2015-05-12 14:33:31.274400000 +0300 +@@ -254,7 +254,7 @@ + #if defined(MAGICKCORE_HAVE_NEWLOCALE) + if (c_locale != (locale_t) NULL) + freelocale(c_locale); +-#elif defined(MAGICKCORE_WINDOWS_SUPPORT) ++#elif defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__) + if (c_locale != (locale_t) NULL) + _free_locale(c_locale); + #endif +--- ImageMagick-6.9.1-2/magick/random.c.orig 2015-05-12 14:27:08.310000000 +0300 ++++ ImageMagick-6.9.1-2/magick/random.c 2015-05-12 14:27:31.008000000 +0300 +@@ -459,7 +459,9 @@ + file=mkstemp(path); + if (file != -1) + { ++#ifndef _WIN32 + (void) fchmod(file,0600); ++#endif + #if defined(__OS2__) + setmode(file,O_BINARY); + #endif +--- ImageMagick-6.9.1-2/magick/resource.c.orig 2015-05-12 14:20:26.601600000 +0300 ++++ ImageMagick-6.9.1-2/magick/resource.c 2015-05-12 14:27:38.090400000 +0300 +@@ -526,7 +526,9 @@ + file=mkstemp(path); + if (file != -1) + { ++#ifndef _WIN32 + (void) fchmod(file,0600); ++#endif + #if defined(__OS2__) + setmode(file,O_BINARY); + #endif diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index f8036c963d..d0f0572237 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -2,20 +2,21 @@ _realname=imagemagick pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.9.0.7 +pkgver=6.9.1.2 pkgrel=1 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') url="http://www.imagemagick.org/" license=("custom") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-pango" - "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-openexr" - "${MINGW_PACKAGE_PREFIX}-librsvg" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-ghostscript") +makedepends=("${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-ghostscript" + "${MINGW_PACKAGE_PREFIX}-librsvg" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-openexr" + "${MINGW_PACKAGE_PREFIX}-pango" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + ) depends=("${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-djvulibre" "${MINGW_PACKAGE_PREFIX}-fftw" @@ -50,11 +51,11 @@ source=(http://www.imagemagick.org/download/ImageMagick-${pkgver%.*}-${pkgver##* 001-relocate.patch 002-build-fixes.patch winpath.patch) -md5sums=('fcaf0ead3b5cafcb36c7642e2557dccb' +md5sums=('57e8e138b05d8115c1ab7d9f151645bd' 'SKIP' 'c95a23e8562dbab4e6b0e5407da25209' '7821087a00c459c0d3482508fdc1e25e' - '144cbba6043eb70f8dd80c4e1713cf30' + '8f34b1dbab6cca5b33dee37ed8fe44a2' 'b0b634231da667d7472522fc08fd3519') prepare() { @@ -72,7 +73,7 @@ build() { [[ $CARCH = "i686" ]] && EXTRAOPTS="--with-gcc-arch=i686" [[ $CARCH = "x86_64" ]] && EXTRAOPTS="--with-gcc-arch=x86-64" - #cd ImageMagick-${pkgver%.*}-${pkgver##*.} + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} ../ImageMagick-${pkgver%.*}-${pkgver##*.}/configure \ --prefix=${MINGW_PREFIX} \ From 0981f70598768f6b4f7efe1e39c8681fff16328f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 12 May 2015 20:54:36 +0300 Subject: [PATCH 1004/2060] inkscape: Rebuild with new imagemagick --- mingw-w64-inkscape/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index 572aa94a24..44ab33b41a 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -11,7 +11,7 @@ fi _realname=inkscape pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.91 -pkgrel=5 +pkgrel=6 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') url="http://inkscape.sourceforge.net/" From 31d6864c4e3df14f8fea59bb1245677b856f3695 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 13 May 2015 06:57:32 +0300 Subject: [PATCH 1005/2060] gtk3: Update to 3.16.3 --- mingw-w64-gtk3/PKGBUILD | 11 +++------ mingw-w64-gtk3/fix-crash-xgettext.patch | 33 ------------------------- 2 files changed, 4 insertions(+), 40 deletions(-) delete mode 100644 mingw-w64-gtk3/fix-crash-xgettext.patch diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 9b65d3844e..88f9670ebb 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -2,7 +2,7 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.2 +pkgver=3.16.3 pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') @@ -33,16 +33,14 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0035-enable-rgba-w32-windows.all.patch 0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch 0054-no-transparency-for-children.all.patch - 0055-skip-testsuite.all.patch - fix-crash-xgettext.patch) -md5sums=('321d14c72bd62ad7417d329859bf55af' + 0055-skip-testsuite.all.patch) +md5sums=('af22a1a753ea9b182babfed9d8b38228' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' '3aa19ea25cc1d7693ae57f8e80f88440' 'ad383a497a9134355e0a549f844c3a33' '31d098e6856ddc8dde7259ae572f8bf1' - '939ecf0b7c985e947c6bf48dfd3b8df0' - '3e1b90c42a90d83f7735b458589705bd') + '939ecf0b7c985e947c6bf48dfd3b8df0') prepare() { cd "${srcdir}/gtk+-${pkgver}" @@ -52,7 +50,6 @@ prepare() { patch -Np1 -i "${srcdir}"/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch patch -Np1 -i "${srcdir}"/0054-no-transparency-for-children.all.patch #patch -Np1 -i "${srcdir}"/0055-skip-testsuite.all.patch - patch -Np1 -i "${srcdir}"/fix-crash-xgettext.patch autoreconf -i } diff --git a/mingw-w64-gtk3/fix-crash-xgettext.patch b/mingw-w64-gtk3/fix-crash-xgettext.patch deleted file mode 100644 index 4ffcc83c85..0000000000 --- a/mingw-w64-gtk3/fix-crash-xgettext.patch +++ /dev/null @@ -1,33 +0,0 @@ -From b10d63c085509bd7800493a85e7bf2df5eb1fe0a Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Thu, 23 Apr 2015 09:42:45 +0900 -Subject: build: Avoid xgettext crash on MSYS2 - -isatty() on MSYS2 returns non-zero if the fd is stdout and is redirected -to /dev/null. That lets xgettext to produce colorized output and leads -to an assertion failure during terminal type detection. - -Although the problem should be fixed in MSYS2, isatty() could behave -wrongly in many ways on Windows. Since gtk+ doesn't need colorized -output, it would be safer to bypass the terminal dependent code. - -See also: -https://lists.gnu.org/archive/html/bug-gettext/2015-04/msg00004.html - -https://bugzilla.gnome.org/show_bug.cgi?id=748346 - -diff --git a/configure.ac b/configure.ac -index ba8954c..005c678 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -668,7 +668,7 @@ ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`" - AM_GLIB_GNU_GETTEXT - - AC_MSG_CHECKING([whether xgettext supports ui files]) --if $ac_cv_path_XGETTEXT --output=- --language=Glade $srcdir/gtk/ui/gtkfilechooserwidget.ui > /dev/null 2>&1; then -+if $ac_cv_path_XGETTEXT --output=- --color=no --language=Glade $srcdir/gtk/ui/gtkfilechooserwidget.ui > /dev/null 2>&1; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) --- -cgit v0.10.2 From 2274106262f2154103c7836cbb8953da8c463b07 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 13 May 2015 06:57:58 +0300 Subject: [PATCH 1006/2060] lz4: Update to revision 590 --- mingw-w64-lz4/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-lz4/PKGBUILD b/mingw-w64-lz4/PKGBUILD index 87beae4ee1..4058b766d9 100644 --- a/mingw-w64-lz4/PKGBUILD +++ b/mingw-w64-lz4/PKGBUILD @@ -2,7 +2,7 @@ _realname=lz4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.0.r452 +pkgver=1.7.0.r590 pkgrel=1 pkgdesc="Very fast lossless compression algorithm (mingw-w64)" arch=('any') From b6c7e4438f28d6438beb20573db5b8bee00f0fe5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 13 May 2015 06:58:24 +0300 Subject: [PATCH 1007/2060] mesa: Update to 10.5.5 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 02bd122769..ff79a857a1 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,7 +2,7 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.5.4 +pkgver=10.5.5 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('26644437b6447fb3dbae50714a019797' +md5sums=('5e6e182fd9414b74b95c45b4eda99fb5' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From 7a120f30a27d5c2dc41d19b6936056ca17949667 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 13 May 2015 20:22:26 +0300 Subject: [PATCH 1008/2060] emacs: Rebuild with new ImageMagick --- mingw-w64-emacs-git/PKGBUILD | 2 +- mingw-w64-emacs/PKGBUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-emacs-git/PKGBUILD b/mingw-w64-emacs-git/PKGBUILD index b143c771b9..8b15a91344 100644 --- a/mingw-w64-emacs-git/PKGBUILD +++ b/mingw-w64-emacs-git/PKGBUILD @@ -2,7 +2,7 @@ _realname='emacs' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r121276.5e7ed98 +pkgver=r121448.a314016 pkgrel=1 pkgdesc="The extensible, customizable, self-documenting, real-time display editor (mingw-w64)" url="http://www.gnu.org/software/${_realname}/" diff --git a/mingw-w64-emacs/PKGBUILD b/mingw-w64-emacs/PKGBUILD index 9a532caeca..3d53f60338 100644 --- a/mingw-w64-emacs/PKGBUILD +++ b/mingw-w64-emacs/PKGBUILD @@ -3,7 +3,7 @@ _realname='emacs' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=24.5 -pkgrel=1 +pkgrel=2 pkgdesc="The extensible, customizable, self-documenting, real-time display editor (mingw-w64)" url="http://www.gnu.org/software/${_realname}/" license=('GPL3') From 708b835914a545d527ed04416cae664c17e63cd0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 14 May 2015 09:52:53 +0300 Subject: [PATCH 1009/2060] zlib: Fix building large file support. --- mingw-w64-zlib/013-fix-largefile-support.patch | 12 ++++++++++++ mingw-w64-zlib/PKGBUILD | 10 +++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-zlib/013-fix-largefile-support.patch diff --git a/mingw-w64-zlib/013-fix-largefile-support.patch b/mingw-w64-zlib/013-fix-largefile-support.patch new file mode 100644 index 0000000000..5040698248 --- /dev/null +++ b/mingw-w64-zlib/013-fix-largefile-support.patch @@ -0,0 +1,12 @@ +diff -Naur zlib-1.2.8-pure/zconf.h.in zlib-1.2.8/zconf.h.in +--- zlib-1.2.8-pure/zconf.h.in 2013-04-28 23:57:11.000000000 +0100 ++++ zlib-1.2.8/zconf.h.in 2015-03-15 22:45:37.900299300 +0000 +@@ -481,7 +481,7 @@ + # define z_off_t long + #endif + +-#if !defined(_WIN32) && defined(Z_LARGE64) ++#if defined(Z_LARGE64) + # define z_off64_t off64_t + #else + # if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) diff --git a/mingw-w64-zlib/PKGBUILD b/mingw-w64-zlib/PKGBUILD index ec4ba9e7d2..284de3aef1 100644 --- a/mingw-w64-zlib/PKGBUILD +++ b/mingw-w64-zlib/PKGBUILD @@ -5,7 +5,7 @@ _realname=zlib pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.2.8 -pkgrel=6 +pkgrel=7 pkgdesc="Compression library implementing the deflate compression method found in gzip and PKZIP (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -23,7 +23,8 @@ source=("http://zlib.net/current/${_realname}-${pkgver}.tar.gz" 05-fix-a-typo.mingw.patch 010-unzip-add-function-unzOpenBuffer.patch 011-Add-no-undefined-to-link-to-enable-build-shared-vers.patch - 012-Add-bzip2-library-to-pkg-config-file.patch) + 012-Add-bzip2-library-to-pkg-config-file.patch + 013-fix-largefile-support.patch) md5sums=('44d667c142d7cda120332623eab69f40' 'SKIP' '63affd37e371768c6adc6e6561e66daf' @@ -33,7 +34,8 @@ md5sums=('44d667c142d7cda120332623eab69f40' '076b81ef097c6916cb81daa3ba8c3afa' 'b6eaeb043f07dd3f50f355bb7f5dca3f' '68587b18a860e32753554a89450698b9' - '10dcd6aeb87d3e4da236f217de953d52') + '10dcd6aeb87d3e4da236f217de953d52' + 'bc039de4876256ff2e9e4162d6b42b09') prepare() { # Replace minizip with external @@ -49,6 +51,8 @@ prepare() { #patch -p2 -i ${srcdir}/04-wrong-w8-check.mingw.patch #patch -p2 -i ${srcdir}/05-fix-a-typo.mingw.patch + patch -p1 -i ${srcdir}/013-fix-largefile-support.patch + cd ${srcdir}/${_realname}-${pkgver}/contrib/minizip git am ${srcdir}/010-unzip-add-function-unzOpenBuffer.patch git am ${srcdir}/011-Add-no-undefined-to-link-to-enable-build-shared-vers.patch From 18a84b3365e03f28a022d8e9364e96e5287b5c04 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 14 May 2015 10:03:39 +0300 Subject: [PATCH 1010/2060] gcc: More patches (WIP) --- mingw-w64-gcc/400-detect-sjlj-cleanup.patch | 1301 +++++++++++++++++++ mingw-w64-gcc/410-fix-lto.patch | 10 + mingw-w64-gcc/PKGBUILD | 7 + 3 files changed, 1318 insertions(+) create mode 100644 mingw-w64-gcc/400-detect-sjlj-cleanup.patch create mode 100644 mingw-w64-gcc/410-fix-lto.patch diff --git a/mingw-w64-gcc/400-detect-sjlj-cleanup.patch b/mingw-w64-gcc/400-detect-sjlj-cleanup.patch new file mode 100644 index 0000000000..78acc11932 --- /dev/null +++ b/mingw-w64-gcc/400-detect-sjlj-cleanup.patch @@ -0,0 +1,1301 @@ +From 177cc56cf225e09e18161e72d2f369be27b22119 Mon Sep 17 00:00:00 2001 +From: ebotcazou +Date: Wed, 13 May 2015 21:15:31 +0000 +Subject: [PATCH] config/ * sjlj.m4: New file. libgcc/ * + configure.ac: Include config/sjlj.m4. Remove manual SJLJ check, add + GCC_CHECK_SJLJ_EXCEPTIONS and adjust. * config.in: Regenerate. * + configure: Likewise. * config.host: Replace enable_sjlj_exceptions by + ac_cv_sjlj_exceptions. libjava/ * configure.ac: Include + config/sjlj.m4. Remove manual SJLJ check, add + GCC_CHECK_SJLJ_EXCEPTIONS and adjust. * include/config.h.in: Regenerate. + * configure: Likewise. * exception.cc: Replace SJLJ_EXCEPTIONS by + __USING_SJLJ_EXCEPTIONS__. * stacktrace.cc: Likewise. * + include/default-signal.h: Likewise. * sysdep/i386/backtrace.h: Likewise. + libobjc/ * configure.ac: Remove manual SJLJ check. * config.h.in: + Regenerate. * configure: Likewise. * exception.c: Replace SJLJ_EXCEPTIONS + by __USING_SJLJ_EXCEPTIONS__. libstdc++-v3/ * acinclude.m4 + (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Delete. * configure.ac: Remove + GLIBCXX_ENABLE_SJLJ_EXCEPTIONS. * config.h.in: Regenerate. * + configure: Likewise. * libsupc++/eh_personality.cc: Replace + _GLIBCXX_SJLJ_EXCEPTIONS by __USING_SJLJ_EXCEPTIONS__. * + libsupc++/eh_throw.cc: Likewise. * libsupc++/eh_ptr.cc: Likewise. + * doc/html/manual/appendix_porting.html: Remove + GLIBCXX_ENABLE_SJLJ_EXCEPTIONS * doc/xml/manual/build_hacking.xml: + Likewise. * doc/html/manual/configure.html: Remove + --enable-sjlj-exceptions. * doc/xml/manual/configure.xml: Likewise. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223181 138bc75d-0d04-0410-961f-82ee72b054a4 +--- + config/ChangeLog | 4 + + config/sjlj.m4 | 12 +++ + libgcc/ChangeLog | 8 ++ + libgcc/config.host | 20 ++-- + libgcc/config.in | 3 - + libgcc/configure | 84 +++++----------- + libgcc/configure.ac | 62 ++---------- + libjava/ChangeLog | 11 +++ + libjava/configure.ac | 59 ++--------- + libjava/exception.cc | 8 +- + libjava/include/config.h.in | 3 - + libjava/include/default-signal.h | 6 +- + libjava/stacktrace.cc | 6 +- + libjava/sysdep/i386/backtrace.h | 4 +- + libobjc/ChangeLog | 7 ++ + libobjc/config.h.in | 3 - + libobjc/configure | 72 +------------- + libobjc/configure.ac | 54 ----------- + libobjc/exception.c | 10 +- + libstdc++-v3/ChangeLog | 16 +++ + libstdc++-v3/acinclude.m4 | 73 -------------- + libstdc++-v3/config.h.in | 3 - + libstdc++-v3/configure | 108 ++------------------- + libstdc++-v3/configure.ac | 1 - + libstdc++-v3/doc/html/manual/appendix_porting.html | 1 - + libstdc++-v3/doc/html/manual/configure.html | 5 - + libstdc++-v3/doc/xml/manual/build_hacking.xml | 1 - + libstdc++-v3/doc/xml/manual/configure.xml | 9 -- + libstdc++-v3/libsupc++/eh_personality.cc | 12 +-- + libstdc++-v3/libsupc++/eh_ptr.cc | 2 +- + libstdc++-v3/libsupc++/eh_throw.cc | 4 +- + 31 files changed, 140 insertions(+), 531 deletions(-) + create mode 100644 config/sjlj.m4 + +diff --git a/config/sjlj.m4 b/config/sjlj.m4 +new file mode 100644 +index 0000000..71c8b31 +--- /dev/null ++++ b/config/sjlj.m4 +@@ -0,0 +1,12 @@ ++dnl Check if the compiler is configured for setjmp/longjmp exceptions. ++AC_DEFUN([GCC_CHECK_SJLJ_EXCEPTIONS], ++ [AC_CACHE_CHECK([whether the compiler is configured for setjmp/longjmp exceptions], ++ ac_cv_sjlj_exceptions, ++ [AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[#ifdef __USING_SJLJ_EXCEPTIONS__ ++ this will fail ++ #endif]], ++ [[int i;]])], ++ [ac_cv_sjlj_exceptions=no], ++ [ac_cv_sjlj_exceptions=yes])])]) +diff --git a/libgcc/config.host b/libgcc/config.host +index d558c38..925db29 100644 +--- a/libgcc/config.host ++++ b/libgcc/config.host +@@ -499,7 +499,7 @@ hppa*64*-*-linux*) + hppa*-*-linux*) + tmake_file="$tmake_file pa/t-linux t-slibgcc-libgcc" + # Set the libgcc version number +- if test x$enable_sjlj_exceptions = xyes; then ++ if test x$ac_cv_sjlj_exceptions = xyes; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" +@@ -510,7 +510,7 @@ hppa*-*-linux*) + hppa[12]*-*-hpux10*) + tmake_file="$tmake_file pa/t-hpux pa/t-hpux10 t-libgcc-pic t-slibgcc" + # Set the libgcc version number +- if test x$enable_sjlj_exceptions = xyes; then ++ if test x$ac_cv_sjlj_exceptions = xyes; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" +@@ -521,7 +521,7 @@ hppa[12]*-*-hpux10*) + hppa*64*-*-hpux11*) + tmake_file="$tmake_file pa/t-hpux pa/t-pa64 pa/t-stublib t-libgcc-pic t-slibgcc" + # Set the libgcc version number +- if test x$enable_sjlj_exceptions = xyes; then ++ if test x$ac_cv_sjlj_exceptions = xyes; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" +@@ -534,7 +534,7 @@ hppa*64*-*-hpux11*) + hppa[12]*-*-hpux11*) + tmake_file="$tmake_file pa/t-hpux pa/t-stublib t-libgcc-pic t-slibgcc" + # Set the libgcc version number +- if test x$enable_sjlj_exceptions = xyes; then ++ if test x$ac_cv_sjlj_exceptions = xyes; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" +@@ -635,7 +635,7 @@ i[34567]86-*-cygwin*) + extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o" + fi + # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h +- if test x$enable_sjlj_exceptions = xyes; then ++ if test x$ac_cv_sjlj_exceptions = xyes; then + tmake_eh_file="i386/t-sjlj-eh" + else + tmake_eh_file="i386/t-dw2-eh" +@@ -654,7 +654,7 @@ x86_64-*-cygwin*) + extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o" + fi + # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h +- if test x$enable_sjlj_exceptions = xyes; then ++ if test x$ac_cv_sjlj_exceptions = xyes; then + tmake_eh_file="i386/t-sjlj-eh" + else + tmake_eh_file="i386/t-seh-eh" +@@ -682,7 +682,7 @@ i[34567]86-*-mingw*) + ;; + esac + # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h +- if test x$enable_sjlj_exceptions = xyes; then ++ if test x$ac_cv_sjlj_exceptions = xyes; then + tmake_eh_file="i386/t-sjlj-eh" + else + tmake_eh_file="i386/t-dw2-eh" +@@ -706,7 +706,7 @@ x86_64-*-mingw*) + ;; + esac + # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h +- if test x$enable_sjlj_exceptions = xyes; then ++ if test x$ac_cv_sjlj_exceptions = xyes; then + tmake_eh_file="i386/t-sjlj-eh" + else + tmake_eh_file="i386/t-seh-eh" +@@ -799,9 +799,9 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux + # with ELF format using glibc 2 + # aka the GNU/Linux C library 6. + tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux" +- # If not configured with --enable-sjlj-exceptions, bump the ++ # If not configured with setjmp/longjmp exceptions, bump the + # libgcc version number. +- if test x$enable_sjlj_exceptions != xyes; then ++ if test x$ac_cv_sjlj_exceptions != xyes; then + tmake_file="$tmake_file m68k/t-slibgcc-elf-ver" + fi + md_unwind_header=m68k/linux-unwind.h +diff --git a/libgcc/config.in b/libgcc/config.in +index 57fdec1..59a7961 100644 +--- a/libgcc/config.in ++++ b/libgcc/config.in +@@ -39,9 +39,6 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_UNISTD_H + +-/* Define if the C compiler is configured for setjmp/longjmp exceptions. */ +-#undef LIBGCC_SJLJ_EXCEPTIONS +- + /* Define to the address where bug reports for this package should be sent. */ + #undef PACKAGE_BUGREPORT + +diff --git a/libgcc/configure b/libgcc/configure +index e911a9d..ce66d1d 100644 +--- a/libgcc/configure ++++ b/libgcc/configure +@@ -670,7 +670,6 @@ enable_maintainer_mode + with_build_libsubdir + enable_decimal_float + with_system_libunwind +-enable_sjlj_exceptions + enable_explicit_exception_frame_registration + with_glibc_version + enable_tls +@@ -1308,8 +1307,6 @@ Optional Features: + enable decimal float extension to C. Selecting 'bid' + or 'dpd' choses which decimal floating point format + to use +- --enable-sjlj-exceptions +- force use of builtin_setjmp for exceptions + --enable-explicit-exception-frame-registration + register exception tables explicitly at module + start, for use e.g. for compatibility with +@@ -4539,80 +4536,43 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h + fi + + +-# The sjlj test is almost duplicated here and in libgo/configure.ac (for C), +-# libstdc++-v3/acinclude.m4 and libjava/configure.ac (for C++), and +-# libobjc/configure.ac (for Objective-C). +-# FIXME: This should be centralized in config/sjlj.m4. +-# Check whether --enable-sjlj-exceptions was given. +-if test "${enable_sjlj_exceptions+set}" = set; then : +- enableval=$enable_sjlj_exceptions; case "$enableval" in +- yes|no|auto) ;; +- *) as_fn_error "unknown argument to --enable-sjlj-exceptions" "$LINENO" 5 ;; +- esac +-else +- enable_sjlj_exceptions=auto +-fi +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use setjmp/longjmp exceptions" >&5 +-$as_echo_n "checking whether to use setjmp/longjmp exceptions... " >&6; } +-if test "${libgcc_cv_lib_sjlj_exceptions+set}" = set; then : ++# Check if the compiler is configured for setjmp/longjmp exceptions. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is configured for setjmp/longjmp exceptions" >&5 ++$as_echo_n "checking whether the compiler is configured for setjmp/longjmp exceptions... " >&6; } ++if test "${ac_cv_sjlj_exceptions+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +- +-void bar (); +-void clean (int *); +-void foo () ++#ifdef __USING_SJLJ_EXCEPTIONS__ ++ this will fail ++ #endif ++int ++main () + { +- int i __attribute__ ((cleanup (clean))); +- bar(); ++int i; ++ ; ++ return 0; + } +- + _ACEOF +-CFLAGS_hold=$CFLAGS +-CFLAGS="--save-temps -fexceptions" +-libgcc_cv_lib_sjlj_exceptions=unknown +-if ac_fn_c_try_compile; then : +- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then +- libgcc_cv_lib_sjlj_exceptions=yes +- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1; then +- libgcc_cv_lib_sjlj_exceptions=no +- fi +-fi +-CFLAGS=$CFLAGS_hold +-rm -f conftest* +- ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_sjlj_exceptions=no ++else ++ ac_cv_sjlj_exceptions=yes + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgcc_cv_lib_sjlj_exceptions" >&5 +-$as_echo "$libgcc_cv_lib_sjlj_exceptions" >&6; } +- +-if test "$enable_sjlj_exceptions" = "auto"; then +- enable_sjlj_exceptions=$libgcc_cv_lib_sjlj_exceptions ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +- +-case $enable_sjlj_exceptions in +-yes) +- +-$as_echo "#define LIBGCC_SJLJ_EXCEPTIONS 1" >>confdefs.h +- +- ;; +-no) +- ;; +-*) +- as_fn_error "unable to detect exception model" "$LINENO" 5 +- ;; +-esac ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sjlj_exceptions" >&5 ++$as_echo "$ac_cv_sjlj_exceptions" >&6; } + + # Check whether --enable-explicit-exception-frame-registration was given. + if test "${enable_explicit_exception_frame_registration+set}" = set; then : + enableval=$enable_explicit_exception_frame_registration; + force_explicit_eh_registry= + if test "$enable_explicit_exception_frame_registration" = yes; then +- if test "$enable_sjlj_exceptions" = yes; then +- as_fn_error "Can't enable both of --enable-sjlj-exceptions +- and --enable-explicit-exception-frame-registration" "$LINENO" 5 ++ if test $ac_cv_sjlj_exceptions = yes; then ++ as_fn_error "Can't --enable-explicit-exception-frame-registration ++ with setjmp/longjmp exceptions" "$LINENO" 5 + fi + force_explicit_eh_registry=-DUSE_EH_FRAME_REGISTRY_ALWAYS + fi +diff --git a/libgcc/configure.ac b/libgcc/configure.ac +index 48fd5b9..dfabd80 100644 +--- a/libgcc/configure.ac ++++ b/libgcc/configure.ac +@@ -10,6 +10,7 @@ sinclude(../config/picflag.m4) + sinclude(../config/dfp.m4) + sinclude(../config/unwind_ipinfo.m4) + sinclude(../config/gthr.m4) ++sinclude(../config/sjlj.m4) + + AC_PREREQ(2.64) + AC_INIT([GNU C Runtime Library], 1.0,,[libgcc]) +@@ -230,59 +231,8 @@ AC_SUBST(fixed_point) + # config.gcc also contains tests of with_system_libunwind. + GCC_CHECK_UNWIND_GETIPINFO + +-# The sjlj test is almost duplicated here and in libgo/configure.ac (for C), +-# libstdc++-v3/acinclude.m4 and libjava/configure.ac (for C++), and +-# libobjc/configure.ac (for Objective-C). +-# FIXME: This should be centralized in config/sjlj.m4. +-AC_ARG_ENABLE(sjlj-exceptions, +- AC_HELP_STRING([--enable-sjlj-exceptions], +- [force use of builtin_setjmp for exceptions]), +- [case "$enableval" in +- yes|no|auto) ;; +- *) AC_MSG_ERROR([unknown argument to --enable-sjlj-exceptions]) ;; +- esac], +- [enable_sjlj_exceptions=auto]) +- +-AC_CACHE_CHECK([whether to use setjmp/longjmp exceptions], +-[libgcc_cv_lib_sjlj_exceptions], +-[AC_LANG_CONFTEST( +- [AC_LANG_SOURCE([ +-void bar (); +-void clean (int *); +-void foo () +-{ +- int i __attribute__ ((cleanup (clean))); +- bar(); +-} +-])]) +-CFLAGS_hold=$CFLAGS +-CFLAGS="--save-temps -fexceptions" +-libgcc_cv_lib_sjlj_exceptions=unknown +-AS_IF([ac_fn_c_try_compile], +- [if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then +- libgcc_cv_lib_sjlj_exceptions=yes +- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1; then +- libgcc_cv_lib_sjlj_exceptions=no +- fi]) +-CFLAGS=$CFLAGS_hold +-rm -f conftest* +-]) +- +-if test "$enable_sjlj_exceptions" = "auto"; then +- enable_sjlj_exceptions=$libgcc_cv_lib_sjlj_exceptions +-fi +- +-case $enable_sjlj_exceptions in +-yes) +- AC_DEFINE(LIBGCC_SJLJ_EXCEPTIONS, 1, +- [Define if the C compiler is configured for setjmp/longjmp exceptions.]) +- ;; +-no) +- ;; +-*) +- AC_MSG_ERROR([unable to detect exception model]) +- ;; +-esac ++# Check if the compiler is configured for setjmp/longjmp exceptions. ++GCC_CHECK_SJLJ_EXCEPTIONS + + AC_ARG_ENABLE([explicit-exception-frame-registration], + [AC_HELP_STRING([--enable-explicit-exception-frame-registration], +@@ -291,9 +241,9 @@ AC_ARG_ENABLE([explicit-exception-frame-registration], + [ + force_explicit_eh_registry= + if test "$enable_explicit_exception_frame_registration" = yes; then +- if test "$enable_sjlj_exceptions" = yes; then +- AC_MSG_ERROR([Can't enable both of --enable-sjlj-exceptions +- and --enable-explicit-exception-frame-registration]) ++ if test $ac_cv_sjlj_exceptions = yes; then ++ AC_MSG_ERROR([Can't --enable-explicit-exception-frame-registration ++ with setjmp/longjmp exceptions]) + fi + force_explicit_eh_registry=-DUSE_EH_FRAME_REGISTRY_ALWAYS + fi +diff --git a/libjava/configure.ac b/libjava/configure.ac +index 01c436d..00bbd36 100644 +--- a/libjava/configure.ac ++++ b/libjava/configure.ac +@@ -1,4 +1,7 @@ + dnl # Process this with autoconf to create configure ++ ++sinclude(../config/sjlj.m4) ++ + AC_PREREQ(2.64) + # Still use "libjava" here to placate dejagnu. + AC_INIT([libjava], [version-unused],, [libjava]) +@@ -699,58 +702,10 @@ INTERPRETER="$libgcj_interpreter" + AC_SUBST(INTERPRETER) + AM_CONDITIONAL(INTERPRETER, test "$libgcj_interpreter" = yes) + +-AC_MSG_CHECKING([for exception model to use]) +-AC_LANG_PUSH(C++) +-AC_ARG_ENABLE(sjlj-exceptions, +- AS_HELP_STRING([--enable-sjlj-exceptions], +- [force use of builtin_setjmp for exceptions]), +-[:], +-[dnl Botheration. Now we've got to detect the exception model. +-dnl Link tests against libgcc.a are problematic since -- at least +-dnl as of this writing -- we've not been given proper -L bits for +-dnl single-tree newlib and libgloss. +-dnl +-dnl This is what AC_TRY_COMPILE would do if it didn't delete the +-dnl conftest files before we got a change to grep them first. +-cat > conftest.$ac_ext << EOF +-[#]line __oline__ "configure" +-struct S { ~S(); }; +-void bar(); +-void foo() +-{ +- S s; +- bar(); +-} +-EOF +-old_CXXFLAGS="$CXXFLAGS" +-CXXFLAGS=-S +-if AC_TRY_EVAL(ac_compile); then +- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=yes +- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=no +- elif grep __cxa_end_cleanup conftest.s >/dev/null 2>&1 ; then +- # ARM EH ABI. +- enable_sjlj_exceptions=no +- fi +-fi +-CXXFLAGS="$old_CXXFLAGS" +-rm -f conftest*]) +-if test x$enable_sjlj_exceptions = xyes; then +- AC_DEFINE(SJLJ_EXCEPTIONS, 1, +- [Define if the compiler is configured for setjmp/longjmp exceptions.]) +- ac_exception_model_name=sjlj +-elif test x$enable_sjlj_exceptions = xno; then +- ac_exception_model_name="call frame" +-else +- AC_MSG_ERROR([unable to detect exception model]) +-fi +-AC_LANG_POP(C++) +-AC_MSG_RESULT($ac_exception_model_name) +- +-# If we are non using SJLJ exceptions, and this host does not have support ++# If we are not using SJLJ exceptions, and this host does not have support + # for unwinding from a signal handler, enable checked dereferences and divides. +-if test $can_unwind_signal = no && test $enable_sjlj_exceptions = no; then ++GCC_CHECK_SJLJ_EXCEPTIONS ++if test $ac_cv_sjlj_exceptions = no && test $can_unwind_signal = no; then + CHECKREFSPEC=-fcheck-references + DIVIDESPEC=-fuse-divide-subroutine + EXCEPTIONSPEC= +@@ -1761,7 +1716,7 @@ case "${host}" in + esac + + # If we're using sjlj exceptions, forget what we just learned. +-if test "$enable_sjlj_exceptions" = yes; then ++if test "$ac_cv_sjlj_exceptions" = yes; then + SIGNAL_HANDLER=include/default-signal.h + SIGNAL_HANDLER_AUX= + fi +diff --git a/libjava/exception.cc b/libjava/exception.cc +index cc5ab7c..61734a9 100644 +--- a/libjava/exception.cc ++++ b/libjava/exception.cc +@@ -112,7 +112,7 @@ _Jv_Throw (jthrowable value) + + /* We're happy with setjmp/longjmp exceptions or region-based + exception handlers: entry points are provided here for both. */ +-#ifdef SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + _Unwind_SjLj_RaiseException (&xh->unwindHeader); + #else + _Unwind_RaiseException (&xh->unwindHeader); +@@ -194,7 +194,7 @@ get_ttype_entry (_Unwind_Context *context, lsda_header_info *info, long i) + + // Using a different personality function name causes link failures + // when trying to mix code using different exception handling models. +-#ifdef SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + #define PERSONALITY_FUNCTION __gcj_personality_sj0 + #define __builtin_eh_return_data_regno(x) x + #elif defined (__SEH__) +@@ -331,7 +331,7 @@ PERSONALITY_FUNCTION (int version, + action_record = 0; + handler_switch_value = 0; + +-#ifdef SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + // The given "IP" is an index into the call-site table, with two + // exceptions -- -1 means no-action, and 0 means terminate. But + // since we're using uleb128 values, we've not got random access +@@ -380,7 +380,7 @@ PERSONALITY_FUNCTION (int version, + goto found_something; + } + } +-#endif // SJLJ_EXCEPTIONS ++#endif // __USING_SJLJ_EXCEPTIONS__ + + // If ip is not present in the table, C++ would call terminate. + // ??? It is perhaps better to tweek the LSDA so that no-action +diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in +index 8e718ac..ea5afe2 100644 +--- a/libjava/include/config.h.in ++++ b/libjava/include/config.h.in +@@ -423,9 +423,6 @@ + /* The size of `void *', as computed by sizeof. */ + #undef SIZEOF_VOID_P + +-/* Define if the compiler is configured for setjmp/longjmp exceptions. */ +-#undef SJLJ_EXCEPTIONS +- + /* Define if if the synchronization code should try to avoid pthread_self + calls by caching thread IDs in a hashtable. */ + #undef SLOW_PTHREAD_SELF +diff --git a/libjava/include/default-signal.h b/libjava/include/default-signal.h +index 6aea734..629acfb 100644 +--- a/libjava/include/default-signal.h ++++ b/libjava/include/default-signal.h +@@ -11,7 +11,7 @@ details. */ + #ifndef JAVA_SIGNAL_H + #define JAVA_SIGNAL_H 1 + +-#ifdef SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + + #define HANDLE_SEGV 1 + #define HANDLE_FPE 1 +@@ -37,7 +37,7 @@ while (0) + + #define MAKE_THROW_FRAME(_exception) do {} while (0) + +-#else /* SJLJ_EXCEPTIONS */ ++#else /* __USING_SJLJ_EXCEPTIONS__ */ + + #undef HANDLE_SEGV + #undef HANDLE_FPE +@@ -45,7 +45,7 @@ while (0) + #define INIT_SEGV do {} while (0) + #define INIT_FPE do {} while (0) + +-#endif /* SJLJ_EXCEPTIONS */ ++#endif /* __USING_SJLJ_EXCEPTIONS__ */ + + #endif /* JAVA_SIGNAL_H */ + +diff --git a/libjava/stacktrace.cc b/libjava/stacktrace.cc +index d8d1f38..0fc91c4 100644 +--- a/libjava/stacktrace.cc ++++ b/libjava/stacktrace.cc +@@ -325,7 +325,7 @@ _Jv_StackTrace::GetStackTraceElements (_Jv_StackTrace *trace, + { + ArrayList *list = new ArrayList (); + +-#if defined (SJLJ_EXCEPTIONS) && ! defined (WIN32) ++#if defined (__USING_SJLJ_EXCEPTIONS__) && ! defined (WIN32) + // We can't use the nCodeMap without unwinder support. Instead, + // fake the method name by giving the IP in hex - better than nothing. + jstring hex = JvNewStringUTF ("0x"); +@@ -344,7 +344,7 @@ _Jv_StackTrace::GetStackTraceElements (_Jv_StackTrace *trace, + list->add (element); + } + +-#else /* SJLJ_EXCEPTIONS && !WIN32 */ ++#else /* __USING_SJLJ_EXCEPTIONS__ && !WIN32 */ + + //JvSynchronized (ncodeMap); + UpdateNCodeMap (); +@@ -412,7 +412,7 @@ _Jv_StackTrace::GetStackTraceElements (_Jv_StackTrace *trace, + } + + finder->close(); +-#endif /* SJLJ_EXCEPTIONS && !WIN32 */ ++#endif /* __USING_SJLJ_EXCEPTIONS__ && !WIN32 */ + + JArray *array = JvNewObjectArray (list->size (), + &StackTraceElement::class$, NULL); +diff --git a/libjava/sysdep/i386/backtrace.h b/libjava/sysdep/i386/backtrace.h +index 1bad2e1..cfdf07b 100644 +--- a/libjava/sysdep/i386/backtrace.h ++++ b/libjava/sysdep/i386/backtrace.h +@@ -36,7 +36,7 @@ struct _Unwind_Context + _Jv_uintptr_t ret_addr; + }; + +-#ifdef SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + + #undef _Unwind_GetIPInfo + #define _Unwind_GetIPInfo(ctx,ip_before_insn) \ +@@ -50,7 +50,7 @@ struct _Unwind_Context + #define _Unwind_Backtrace(trace_fn,state_ptr) \ + (fallback_backtrace (trace_fn, state_ptr)) + +-#endif /* SJLJ_EXCEPTIONS */ ++#endif /* __USING_SJLJ_EXCEPTIONS__ */ + + /* Unwind through the call stack calling TRACE_FN with STATE for each stack + frame. Returns the reason why the unwinding was stopped. */ +diff --git a/libobjc/config.h.in b/libobjc/config.h.in +index 20d1fca..0f3dbf2 100644 +--- a/libobjc/config.h.in ++++ b/libobjc/config.h.in +@@ -67,8 +67,5 @@ + /* Define to the version of this package. */ + #undef PACKAGE_VERSION + +-/* Define if the compiler is configured for setjmp/longjmp exceptions. */ +-#undef SJLJ_EXCEPTIONS +- + /* Define to 1 if you have the ANSI C header files. */ + #undef STDC_HEADERS +diff --git a/libobjc/configure b/libobjc/configure +index 2f71735..55fcc33 100755 +--- a/libobjc/configure ++++ b/libobjc/configure +@@ -721,7 +721,6 @@ enable_fast_install + with_gnu_ld + enable_libtool_lock + enable_tls +-enable_sjlj_exceptions + ' + ac_precious_vars='build_alias + host_alias +@@ -1355,8 +1354,6 @@ Optional Features: + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-tls Use thread-local storage [default=yes] +- --enable-sjlj-exceptions +- force use of builtin_setjmp for exceptions + + Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] +@@ -10601,7 +10598,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 10604 "configure" ++#line 10601 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -10707,7 +10704,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 10710 "configure" ++#line 10707 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11465,71 +11462,6 @@ $as_echo "#define HAVE_TLS 1" >>confdefs.h + + fi + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for exception model to use" >&5 +-$as_echo_n "checking for exception model to use... " >&6; } +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +-# Check whether --enable-sjlj-exceptions was given. +-if test "${enable_sjlj_exceptions+set}" = set; then : +- enableval=$enable_sjlj_exceptions; : +-else +- cat > conftest.$ac_ext << EOF +-#line 11481 "configure" +-@interface Frob +-@end +-@implementation Frob +-@end +-int proc(); +-int foo() +-{ +- @try { +- return proc(); +- } +- @catch (Frob* ex) { +- return 0; +- } +-} +-EOF +-old_CFLAGS="$CFLAGS" +-CFLAGS="-x objective-c -fgnu-runtime -fobjc-exceptions -S" +-if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=yes +- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=no +- fi +-fi +-CFLAGS="$old_CFLAGS" +-rm -f conftest* +-fi +- +-if test x$enable_sjlj_exceptions = xyes; then +- +-$as_echo "#define SJLJ_EXCEPTIONS 1" >>confdefs.h +- +- ac_exception_model_name=sjlj +-elif test x$enable_sjlj_exceptions = xno; then +- ac_exception_model_name="call frame" +-else +- as_fn_error "unable to detect exception model" "$LINENO" 5 +-fi +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_exception_model_name" >&5 +-$as_echo "$ac_exception_model_name" >&6; } +- + # ------ + # Output + # ------ +diff --git a/libobjc/configure.ac b/libobjc/configure.ac +index 2d88519..884194a 100644 +--- a/libobjc/configure.ac ++++ b/libobjc/configure.ac +@@ -212,60 +212,6 @@ AC_CHECK_HEADERS(sched.h) + # Check if we have thread-local storage + GCC_CHECK_TLS + +-AC_MSG_CHECKING([for exception model to use]) +-AC_LANG_PUSH(C) +-AC_ARG_ENABLE(sjlj-exceptions, +- AS_HELP_STRING([--enable-sjlj-exceptions], +- [force use of builtin_setjmp for exceptions]), +-[:], +-[dnl Botheration. Now we've got to detect the exception model. +-dnl Link tests against libgcc.a are problematic since -- at least +-dnl as of this writing -- we've not been given proper -L bits for +-dnl single-tree newlib and libgloss. +-dnl +-dnl This is what AC_TRY_COMPILE would do if it didn't delete the +-dnl conftest files before we got a change to grep them first. +-cat > conftest.$ac_ext << EOF +-[#]line __oline__ "configure" +-@interface Frob +-@end +-@implementation Frob +-@end +-int proc(); +-int foo() +-{ +- @try { +- return proc(); +- } +- @catch (Frob* ex) { +- return 0; +- } +-} +-EOF +-old_CFLAGS="$CFLAGS" +-dnl work around that we don't have Objective-C support in autoconf +-CFLAGS="-x objective-c -fgnu-runtime -fobjc-exceptions -S" +-if AC_TRY_EVAL(ac_compile); then +- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=yes +- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=no +- fi +-fi +-CFLAGS="$old_CFLAGS" +-rm -f conftest*]) +-if test x$enable_sjlj_exceptions = xyes; then +- AC_DEFINE(SJLJ_EXCEPTIONS, 1, +- [Define if the compiler is configured for setjmp/longjmp exceptions.]) +- ac_exception_model_name=sjlj +-elif test x$enable_sjlj_exceptions = xno; then +- ac_exception_model_name="call frame" +-else +- AC_MSG_ERROR([unable to detect exception model]) +-fi +-AC_LANG_POP(C) +-AC_MSG_RESULT($ac_exception_model_name) +- + # ------ + # Output + # ------ +diff --git a/libobjc/exception.c b/libobjc/exception.c +index d6eb5db..1cc837b 100644 +--- a/libobjc/exception.c ++++ b/libobjc/exception.c +@@ -199,10 +199,10 @@ get_ttype_entry (struct lsda_header_info *info, _Unwind_Word i) + /* Using a different personality function name causes link failures + when trying to mix code using different exception handling + models. */ +-#ifdef SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + #define PERSONALITY_FUNCTION __gnu_objc_personality_sj0 + #define __builtin_eh_return_data_regno(x) x +-#elif defined(__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__) ++#elif defined(__SEH__) + #define PERSONALITY_FUNCTION __gnu_objc_personality_imp + #else + #define PERSONALITY_FUNCTION __gnu_objc_personality_v0 +@@ -329,7 +329,7 @@ PERSONALITY_FUNCTION (int version, + action_record = 0; + handler_switch_value = 0; + +-#ifdef SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + /* The given "IP" is an index into the call-site table, with two + exceptions -- -1 means no-action, and 0 means terminate. But + since we're using uleb128 values, we've not got random access to +@@ -380,7 +380,7 @@ PERSONALITY_FUNCTION (int version, + goto found_something; + } + } +-#endif /* SJLJ_EXCEPTIONS */ ++#endif /* __USING_SJLJ_EXCEPTIONS__ */ + + /* If ip is not present in the table, C++ would call terminate. */ + /* ??? As with Java, it's perhaps better to tweek the LSDA to that +@@ -508,7 +508,7 @@ objc_exception_throw (id exception) + header->base.exception_cleanup = __objc_exception_cleanup; + header->value = exception; + +-#ifdef SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + _Unwind_SjLj_RaiseException (&header->base); + #else + _Unwind_RaiseException (&header->base); +diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 +index 6f67774..46e303c 100644 +--- a/libstdc++-v3/acinclude.m4 ++++ b/libstdc++-v3/acinclude.m4 +@@ -3129,79 +3129,6 @@ EOF + + + dnl +-dnl Check for exception handling support. If an explicit enable/disable +-dnl sjlj exceptions is given, we don't have to detect. Otherwise the +-dnl target may or may not support call frame exceptions. +-dnl +-dnl --enable-sjlj-exceptions forces the use of builtin setjmp. +-dnl --disable-sjlj-exceptions forces the use of call frame unwinding. +-dnl Neither one forces an attempt at detection. +-dnl +-dnl Defines: +-dnl _GLIBCXX_SJLJ_EXCEPTIONS if the compiler is configured for it +-dnl +-AC_DEFUN([GLIBCXX_ENABLE_SJLJ_EXCEPTIONS], [ +- AC_MSG_CHECKING([for exception model to use]) +- AC_LANG_SAVE +- AC_LANG_CPLUSPLUS +- GLIBCXX_ENABLE(sjlj-exceptions,auto,, +- [force use of builtin_setjmp for exceptions], +- [permit yes|no|auto]) +- +- if test $enable_sjlj_exceptions = auto; then +- # Botheration. Now we've got to detect the exception model. Link tests +- # against libgcc.a are problematic since we've not been given proper -L +- # bits for single-tree newlib and libgloss. +- # +- # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. +- cat > conftest.$ac_ext << EOF +-[#]line __oline__ "configure" +-struct S { ~S(); }; +-void bar(); +-void foo() +-{ +- S s; +- bar(); +-} +-EOF +- old_CXXFLAGS="$CXXFLAGS" +- CXXFLAGS=-S +- if AC_TRY_EVAL(ac_compile); then +- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=yes +- elif grep _Unwind_SjLj_Register conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=yes +- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=no +- elif grep __cxa_end_cleanup conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=no +- fi +- fi +- CXXFLAGS="$old_CXXFLAGS" +- rm -f conftest* +- fi +- +- # This is a tad weird, for hysterical raisins. We have to map +- # enable/disable to two different models. +- case $enable_sjlj_exceptions in +- yes) +- AC_DEFINE(_GLIBCXX_SJLJ_EXCEPTIONS, 1, +- [Define if the compiler is configured for setjmp/longjmp exceptions.]) +- ac_exception_model_name=sjlj +- ;; +- no) +- ac_exception_model_name="call frame" +- ;; +- *) +- AC_MSG_ERROR([unable to detect exception model]) +- ;; +- esac +- AC_LANG_RESTORE +- AC_MSG_RESULT($ac_exception_model_name) +-]) +- +- +-dnl + dnl Allow visibility attributes to be used on namespaces, objects, etc. + dnl + dnl --enable-libstdcxx-visibility enables attempt to use visibility attributes. +diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in +index 88d56b5..945d44e 100644 +--- a/libstdc++-v3/config.h.in ++++ b/libstdc++-v3/config.h.in +@@ -768,9 +768,6 @@ + /* Define if size_t is unsigned int. */ + #undef _GLIBCXX_SIZE_T_IS_UINT + +-/* Define if the compiler is configured for setjmp/longjmp exceptions. */ +-#undef _GLIBCXX_SJLJ_EXCEPTIONS +- + /* Define to the value of the EOF integer constant. */ + #undef _GLIBCXX_STDIO_EOF + +diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure +index 35508d3..c206bcf 100755 +--- a/libstdc++-v3/configure ++++ b/libstdc++-v3/configure +@@ -862,7 +862,6 @@ with_gnu_ld + enable_libtool_lock + enable_hosted_libstdcxx + enable_libstdcxx_verbose +-enable_sjlj_exceptions + enable_libstdcxx_pch + enable_cstdio + enable_clocale +@@ -1542,9 +1541,6 @@ Optional Features: + only build freestanding C++ runtime support + --disable-libstdcxx-verbose + disable termination messages to standard error +- --enable-sjlj-exceptions +- force use of builtin_setjmp for exceptions +- [default=auto] + --enable-libstdcxx-pch build pre-compiled libstdc++ headers + [default=$is_hosted] + --enable-cstdio[=PACKAGE] +@@ -11655,7 +11651,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11596 "configure" ++#line 11592 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11761,7 +11757,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11702 "configure" ++#line 11698 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -15151,92 +15147,6 @@ _ACEOF + + # Enable compiler support that doesn't require linking. + +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exception model to use" >&5 +-$as_echo_n "checking for exception model to use... " >&6; } +- +- ac_ext=cpp +-ac_cpp='$CXXCPP $CPPFLAGS' +-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +- +- # Check whether --enable-sjlj-exceptions was given. +-if test "${enable_sjlj_exceptions+set}" = set; then : +- enableval=$enable_sjlj_exceptions; +- case "$enableval" in +- yes|no|auto) ;; +- *) as_fn_error "Unknown argument to enable/disable sjlj-exceptions" "$LINENO" 5 ;; +- esac +- +-else +- enable_sjlj_exceptions=auto +-fi +- +- +- +- if test $enable_sjlj_exceptions = auto; then +- # Botheration. Now we've got to detect the exception model. Link tests +- # against libgcc.a are problematic since we've not been given proper -L +- # bits for single-tree newlib and libgloss. +- # +- # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. +- cat > conftest.$ac_ext << EOF +-#line 15122 "configure" +-struct S { ~S(); }; +-void bar(); +-void foo() +-{ +- S s; +- bar(); +-} +-EOF +- old_CXXFLAGS="$CXXFLAGS" +- CXXFLAGS=-S +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=yes +- elif grep _Unwind_SjLj_Register conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=yes +- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=no +- elif grep __cxa_end_cleanup conftest.s >/dev/null 2>&1 ; then +- enable_sjlj_exceptions=no +- fi +- fi +- CXXFLAGS="$old_CXXFLAGS" +- rm -f conftest* +- fi +- +- # This is a tad weird, for hysterical raisins. We have to map +- # enable/disable to two different models. +- case $enable_sjlj_exceptions in +- yes) +- +-$as_echo "#define _GLIBCXX_SJLJ_EXCEPTIONS 1" >>confdefs.h +- +- ac_exception_model_name=sjlj +- ;; +- no) +- ac_exception_model_name="call frame" +- ;; +- *) +- as_fn_error "unable to detect exception model" "$LINENO" 5 +- ;; +- esac +- ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_exception_model_name" >&5 +-$as_echo "$ac_exception_model_name" >&6; } +- +- + # Check whether --enable-libstdcxx-pch was given. + if test "${enable_libstdcxx_pch+set}" = set; then : + enableval=$enable_libstdcxx_pch; +@@ -15533,7 +15443,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; } + # Fake what AC_TRY_COMPILE does. + + cat > conftest.$ac_ext << EOF +-#line 15474 "configure" ++#line 15484 "configure" + int main() + { + typedef bool atomic_type; +@@ -15568,7 +15478,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; } + rm -f conftest* + + cat > conftest.$ac_ext << EOF +-#line 15509 "configure" ++#line 15419 "configure" + int main() + { + typedef short atomic_type; +@@ -15603,7 +15513,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; } + rm -f conftest* + + cat > conftest.$ac_ext << EOF +-#line 15544 "configure" ++#line 15454 "configure" + int main() + { + // NB: _Atomic_word not necessarily int. +@@ -15639,7 +15549,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; } + rm -f conftest* + + cat > conftest.$ac_ext << EOF +-#line 15580 "configure" ++#line 15490 "configure" + int main() + { + typedef long long atomic_type; +@@ -15718,7 +15628,7 @@ $as_echo "$as_me: WARNING: Performance of certain classes will degrade as a resu + # unnecessary for this test. + + cat > conftest.$ac_ext << EOF +-#line 15659 "configure" ++#line 15569 "configure" + int main() + { + _Decimal32 d1; +@@ -15760,7 +15670,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + # unnecessary for this test. + + cat > conftest.$ac_ext << EOF +-#line 15701 "configure" ++#line 15611 "configure" + template + struct same + { typedef T2 type; }; +@@ -15794,7 +15704,7 @@ $as_echo "$enable_int128" >&6; } + rm -f conftest* + + cat > conftest.$ac_ext << EOF +-#line 15735 "configure" ++#line 15645 "configure" + template + struct same + { typedef T2 type; }; +diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac +index 311baa5..7eac8a1 100644 +--- a/libstdc++-v3/configure.ac ++++ b/libstdc++-v3/configure.ac +@@ -147,7 +147,6 @@ GLIBCXX_ENABLE_HOSTED + GLIBCXX_ENABLE_VERBOSE + + # Enable compiler support that doesn't require linking. +-GLIBCXX_ENABLE_SJLJ_EXCEPTIONS + GLIBCXX_ENABLE_PCH($is_hosted) + GLIBCXX_ENABLE_THREADS + GLIBCXX_ENABLE_ATOMIC_BUILTINS +diff --git a/libstdc++-v3/doc/html/manual/appendix_porting.html b/libstdc++-v3/doc/html/manual/appendix_porting.html +index cee8168..e2eebe6 100644 +--- a/libstdc++-v3/doc/html/manual/appendix_porting.html ++++ b/libstdc++-v3/doc/html/manual/appendix_porting.html +@@ -162,7 +162,6 @@ in the build directory starts the build process. The all

+diff --git a/libstdc++-v3/doc/html/manual/configure.html b/libstdc++-v3/doc/html/manual/configure.html +index 96f40a6..5ec0cf2 100644 +--- a/libstdc++-v3/doc/html/manual/configure.html ++++ b/libstdc++-v3/doc/html/manual/configure.html +@@ -22,11 +22,6 @@ + libstdc++ built many different ways: "-msoft-float" + and not, etc. A different libstdc++ will be built for each of + the different multilib versions. This option is on by default. +-

--enable-sjlj-exceptions

Forces old, set-jump/long-jump exception handling model. If +- at all possible, the new, frame unwinding exception handling routines +- should be used instead, as they significantly reduce both +- runtime memory usage and executable size. This option can +- change the library ABI. +

--enable-version-specific-runtime-libs

Specify that run-time libraries should be installed in the + compiler-specific subdirectory (i.e., + ${libdir}/gcc-lib/${target_alias}/${gcc_version}) +diff --git a/libstdc++-v3/doc/xml/manual/build_hacking.xml b/libstdc++-v3/doc/xml/manual/build_hacking.xml +index afcc373..1b789d3 100644 +--- a/libstdc++-v3/doc/xml/manual/build_hacking.xml ++++ b/libstdc++-v3/doc/xml/manual/build_hacking.xml +@@ -232,7 +232,6 @@ in the build directory starts the build process. The all targ + GLIBCXX_ENABLE_DEBUG_FLAGS + GLIBCXX_ENABLE_LONG_LONG + GLIBCXX_ENABLE_PCH +- GLIBCXX_ENABLE_SJLJ_EXCEPTIONS + GLIBCXX_ENABLE_SYMVERS + GLIBCXX_ENABLE_THREADS + +diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml +index 56d071e..9ba9c1a 100644 +--- a/libstdc++-v3/doc/xml/manual/configure.xml ++++ b/libstdc++-v3/doc/xml/manual/configure.xml +@@ -45,15 +45,6 @@ + + + +- --enable-sjlj-exceptions +- Forces old, set-jump/long-jump exception handling model. If +- at all possible, the new, frame unwinding exception handling routines +- should be used instead, as they significantly reduce both +- runtime memory usage and executable size. This option can +- change the library ABI. +- +- +- + --enable-version-specific-runtime-libs + Specify that run-time libraries should be installed in the + compiler-specific subdirectory (i.e., +diff --git a/libstdc++-v3/libsupc++/eh_personality.cc b/libstdc++-v3/libsupc++/eh_personality.cc +index 74bc884..f35d51e 100644 +--- a/libstdc++-v3/libsupc++/eh_personality.cc ++++ b/libstdc++-v3/libsupc++/eh_personality.cc +@@ -327,16 +327,16 @@ namespace __cxxabiv1 + + // Using a different personality function name causes link failures + // when trying to mix code using different exception handling models. +-#ifdef _GLIBCXX_SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + #define PERSONALITY_FUNCTION __gxx_personality_sj0 + #define __builtin_eh_return_data_regno(x) x +-#elif defined(__SEH__) && !defined (_GLIBCXX_SJLJ_EXCEPTIONS) ++#elif defined(__SEH__) + #define PERSONALITY_FUNCTION __gxx_personality_imp + #else + #define PERSONALITY_FUNCTION __gxx_personality_v0 + #endif + +-#if defined (__SEH__) && !defined (_GLIBCXX_SJLJ_EXCEPTIONS) ++#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__) + static + #else + extern "C" +@@ -455,7 +455,7 @@ PERSONALITY_FUNCTION (int version, + action_record = 0; + handler_switch_value = 0; + +-#ifdef _GLIBCXX_SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + // The given "IP" is an index into the call-site table, with two + // exceptions -- -1 means no-action, and 0 means terminate. But + // since we're using uleb128 values, we've not got random access +@@ -508,7 +508,7 @@ PERSONALITY_FUNCTION (int version, + goto found_something; + } + } +-#endif // _GLIBCXX_SJLJ_EXCEPTIONS ++#endif // __USING_SJLJ_EXCEPTIONS__ + + // If ip is not present in the table, call terminate. This is for + // a destructor inside a cleanup, or a library routine the compiler +@@ -789,7 +789,7 @@ __cxa_call_unexpected (void *exc_obj_in) + } + #endif + +-#if defined (__SEH__) && !defined (_GLIBCXX_SJLJ_EXCEPTIONS) ++#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__) + extern "C" + EXCEPTION_DISPOSITION + __gxx_personality_seh0 (PEXCEPTION_RECORD ms_exc, void *this_frame, +diff --git a/libstdc++-v3/libsupc++/eh_ptr.cc b/libstdc++-v3/libsupc++/eh_ptr.cc +index dae9246..3872767 100644 +--- a/libstdc++-v3/libsupc++/eh_ptr.cc ++++ b/libstdc++-v3/libsupc++/eh_ptr.cc +@@ -248,7 +248,7 @@ std::rethrow_exception(std::exception_ptr ep) + __cxa_eh_globals *globals = __cxa_get_globals (); + globals->uncaughtExceptions += 1; + +-#ifdef _GLIBCXX_SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + _Unwind_SjLj_RaiseException (&dep->unwindHeader); + #else + _Unwind_RaiseException (&dep->unwindHeader); +diff --git a/libstdc++-v3/libsupc++/eh_throw.cc b/libstdc++-v3/libsupc++/eh_throw.cc +index d3fa70d..4c953e0 100644 +--- a/libstdc++-v3/libsupc++/eh_throw.cc ++++ b/libstdc++-v3/libsupc++/eh_throw.cc +@@ -76,7 +76,7 @@ __cxxabiv1::__cxa_throw (void *obj, std::type_info *tinfo, + __GXX_INIT_PRIMARY_EXCEPTION_CLASS(header->exc.unwindHeader.exception_class); + header->exc.unwindHeader.exception_cleanup = __gxx_exception_cleanup; + +-#ifdef _GLIBCXX_SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + _Unwind_SjLj_RaiseException (&header->exc.unwindHeader); + #else + _Unwind_RaiseException (&header->exc.unwindHeader); +@@ -109,7 +109,7 @@ __cxxabiv1::__cxa_rethrow () + header->exceptionType); + } + +-#ifdef _GLIBCXX_SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + _Unwind_SjLj_Resume_or_Rethrow (&header->unwindHeader); + #else + #if defined(_LIBUNWIND_STD_ABI) +-- +2.4.0 diff --git a/mingw-w64-gcc/410-fix-lto.patch b/mingw-w64-gcc/410-fix-lto.patch new file mode 100644 index 0000000000..8f606e8c5a --- /dev/null +++ b/mingw-w64-gcc/410-fix-lto.patch @@ -0,0 +1,10 @@ +--- gcc-5.1.0/gcc/lto-wrapper.c.orig 2015-05-01 16:38:03.348243300 -0400 ++++ gcc-5.1.0/gcc/lto-wrapper.c 2015-05-02 00:30:58.345729900 -0400 +@@ -934,7 +934,7 @@ + file_offset = (off_t) loffset; + } +- fd = open (argv[i], O_RDONLY); ++ fd = open (filename, O_RDONLY|O_BINARY); + if (fd == -1) + { + lto_argv[lto_argc++] = argv[i]; diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 909cd2e075..6fa80de209 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -45,6 +45,8 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- '240-prettify-linking-no-undefined.mingw.patch' '300-libgomp-no-static.patch' '310-gcc-make-xmmintrin-header-cplusplus-compatible.patch' + '400-detect-sjlj-cleanup.patch' + '410-fix-lto.patch' 'enable-libitm.mingw.patch' 'enable-libsanitizer.mingw.patch' 'enable-shared-gnat.mingw.patch' @@ -65,6 +67,8 @@ md5sums=('d5525b1127d07d215960e6051c5da35e' '09bdad41515c8d353612f30c91b3bac2' '0a78aaac959e212acb24bb38271804cb' '4a6e2e0f6424abf37e830d7f37fd3351' + 'b4e3c343050c74b4b01b4a1af79a7154' + '4bae081d5820405b3800b7a881bf166d' '27d5611996e209ba6f6a55ab417386e4' '5201bee23601ddfacde436461559f561' 'a56fb2cf67ae619f22e0d21f378ff704' @@ -123,6 +127,9 @@ prepare() { patch -p1 -i ${srcdir}/240-prettify-linking-no-undefined.mingw.patch patch -p1 -i ${srcdir}/310-gcc-make-xmmintrin-header-cplusplus-compatible.patch + + patch -p1 -i ${srcdir}/400-detect-sjlj-cleanup.patch + patch -p1 -i ${srcdir}/410-fix-lto.patch patch -p1 -i ${srcdir}/enable-shared-gnat-implib.mingw.patch From 1bcbb613e519b276c451922b4f5935495697ffff Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 14 May 2015 12:09:41 +0300 Subject: [PATCH 1011/2060] Fix files location for custom qt5_prefix. --- mingw-w64-qt5/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index f05fb3a4f3..9e3c99c228 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -579,9 +579,9 @@ package() { # Fix paths in qconfig.pri and qmodule.pri: # $(cygpath -m ${MINGW_PREFIX}) -> $(cygpath -m ${pkgdir}${MINGW_PREFIX}) - MINGW_PREFIX_WIN=$(cygpath -m ${MINGW_PREFIX}) - PKGDIR_MINGW_PREFIX_WIN=$(cygpath -m ${pkgdir}${MINGW_PREFIX}) - find "${pkgdir}${MINGW_PREFIX}/share/qt5" -type f -name '*.pri' \ + MINGW_PREFIX_WIN=$(cygpath -m ${_qt5_prefix}) + PKGDIR_MINGW_PREFIX_WIN=$(cygpath -m ${pkgdir}${_qt5_prefix}) + find "${pkgdir}${_qt5_prefix}/share/qt5" -type f -name '*.pri' \ -exec sed -i -e "s|${MINGW_PREFIX_WIN}|${PKGDIR_MINGW_PREFIX_WIN}|g" {} \; } From bd47c57673ff071dde1ed5b05ea43ca905ed344f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 15 May 2015 15:11:53 +0300 Subject: [PATCH 1012/2060] glib2: Update to 2.44.1 --- mingw-w64-glib2/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index dc79583b8a..82711f8a3a 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -3,7 +3,7 @@ _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.44.0 +pkgver=2.44.1 pkgrel=1 url="http://www.gtk.org/" arch=('any') @@ -28,7 +28,7 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.t 0024-return-actually-written-data-in-printf.all.patch 0027-no_sys_if_nametoindex.patch 0028-inode_directory.patch) -md5sums=('74cf7b4ea200b76e42a4c22c8daf0f93' +md5sums=('83efba4722a9674b97437d1d99af79db' '98c7778b5e8a30dbcdb86bcd15f9c11d' '6eb9d56028ea3bbec3d053254a00a04b' '46969e815f3ab19582ba33667a52048b' From 01e0f16ab1f69087750356981d57ab33838ad503 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 15 May 2015 15:12:18 +0300 Subject: [PATCH 1013/2060] gdb: Update to 7.9.1 --- mingw-w64-gdb/PKGBUILD | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gdb/PKGBUILD b/mingw-w64-gdb/PKGBUILD index ead26e899d..404ee68e59 100644 --- a/mingw-w64-gdb/PKGBUILD +++ b/mingw-w64-gdb/PKGBUILD @@ -6,8 +6,7 @@ _gcc_ver=4.9.2 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") # Until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62279 is # fixed, we will stick with 7.6.2 which hasn't got this bug.. -#pkgver=7.8.1 -pkgver=7.9 +pkgver=7.9.1 pkgrel=1 pkgdesc="GNU Debugger (mingw-w64)" arch=('any') @@ -32,7 +31,7 @@ source=(http://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.xz{,.sig} 'gdb-7.6.2-mingw-gcc-4.7.patch' 'gdb-perfomance.patch' 'gdb-fix-using-gnu-print.patch') -md5sums=('e6279f26559d839f0b4218a482bcb43e' +md5sums=('35374c77a70884eb430c97061053a36e' 'SKIP' 'dec2439447cb1accf037457b459093f7' 'e48292d553379a9765c82e80e618ffd2' @@ -43,7 +42,7 @@ md5sums=('e6279f26559d839f0b4218a482bcb43e' prepare() { cd ${srcdir}/gdb-${pkgver} - set -x + # https://sourceware.org/ml/gdb-patches/2013-11/msg00224.html #patch -p1 -i ${srcdir}/gdb-fix-display-tabs-on-mingw.patch # https://sourceware.org/bugzilla/show_bug.cgi?id=15559 From 6d928c2b25e27f4b8b6ab480c5d2a6b539ff6ce9 Mon Sep 17 00:00:00 2001 From: golgepapaz Date: Sun, 17 May 2015 17:07:32 +0300 Subject: [PATCH 1014/2060] clang_svn: splitDebugName signature has changed --- mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch b/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch index 7c63ad1d0a..de33ec45c2 100644 --- a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch +++ b/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch @@ -342,7 +342,7 @@ index 7b661a7..35aea3b 100644 + + if (Args.hasArg(options::OPT_gsplit_dwarf)) + SplitDebugInfo(getToolChain(), C, *this, JA, Args, Output, -+ SplitDebugName(Args, Inputs)); ++ SplitDebugName(Args, Inputs[0])); +} + +void MinGW::Link::AddLibGCC(const ArgList &Args, ArgStringList &CmdArgs) const { From 58992e6230dff8c00782e81bf38a7056c6b9cf27 Mon Sep 17 00:00:00 2001 From: hurcan solter Date: Mon, 18 May 2015 11:17:04 +0300 Subject: [PATCH 1015/2060] Fix the md5sum for the patch file in pkg build. --- mingw-w64-clang-svn/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index b1164b78f5..71a10f8af9 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -10,7 +10,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn") #pkgname="${MINGW_PACKAGE_PREFIX}-llvm-toolchain-svn" -pkgver=56512.dbad677 +pkgver=57103.e235fc4 pkgrel=1 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') @@ -36,7 +36,7 @@ md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - '6ead4e06825c09cccf5928e2317698d1' + 'dae2bcb5bb68ce01eb2f806c6fadccf5' '6c31dc05b01f038d10ceb5e88c5fe9f5') pkgver_internal() { From 27c62dbcb6f71ddb6195638be5c7fd6dac497913 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 18 May 2015 10:27:37 +0300 Subject: [PATCH 1016/2060] ruby: Update to 2.2.2 --- mingw-w64-ruby/PKGBUILD | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/mingw-w64-ruby/PKGBUILD b/mingw-w64-ruby/PKGBUILD index 8a0b8d8c5b..e45d0b1a23 100644 --- a/mingw-w64-ruby/PKGBUILD +++ b/mingw-w64-ruby/PKGBUILD @@ -2,7 +2,7 @@ _realname=ruby pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.2.1 +pkgver=2.2.2 pkgrel=1 pkgdesc="An object-oriented language for quick and easy programming (mingw-w64)" arch=('any') @@ -10,24 +10,24 @@ url="http://www.ruby-lang.org/en" license=("BSD, custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-gdbm" - "${MINGW_PACKAGE_PREFIX}-libyaml" - "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-tk" - "${MINGW_PACKAGE_PREFIX}-ncurses" - "${MINGW_PACKAGE_PREFIX}-libffi") + "${MINGW_PACKAGE_PREFIX}-gdbm" + "${MINGW_PACKAGE_PREFIX}-libyaml" + "${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-ncurses" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-tk") options=('staticlibs' 'strip') -source=("http://cache.ruby-lang.org/pub/ruby/${pkgver%.*}/ruby-${pkgver}.tar.bz2" +source=("http://cache.ruby-lang.org/pub/ruby/${pkgver%.*}/${_realname}-${pkgver}.tar.bz2" 0001-mingw-w64-time-functions.patch 0002-use-gnu-printf.patch 0003-fix-check-types.patch) -md5sums=('06973777736d8e6bdad8dcaa469a9da3' +md5sums=('af6eb4fa7247f1f7b2e19c8e6f3e3145' '4256c35613e6dc15c164015ae8977d4a' '6d54f98b9e3a0d0077e9348dc7f69482' 'f9170e918fa7b7118d241d238d7a0e3b') prepare() { - cd ${srcdir}/ruby-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-mingw-w64-time-functions.patch patch -p1 -i ${srcdir}/0002-use-gnu-printf.patch patch -p1 -i ${srcdir}/0003-fix-check-types.patch @@ -42,19 +42,20 @@ build() { CFLAGS+=" -I${MINGW_PREFIX}/include/ncurses ${FFI_INC}" CXXFLAGS+=" -I${MINGW_PREFIX}/include/ncurses ${FFI_INC}" - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/ruby-${pkgver}/configure \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make - GNUMakefile DESTDIR="${pkgdir}" install-nodoc + make -f GNUMakefile DESTDIR="${pkgdir}" install-nodoc for script in {erb,gem,irb,rake,rdoc,ri}; do install ${srcdir}/ruby-${pkgver}/bin/${script} \ ${pkgdir}${MINGW_PREFIX}/bin/ From af8a170bf25cbe15e9eb9f0d3ee2698f3ae7e7ad Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 18 May 2015 11:59:53 +0300 Subject: [PATCH 1017/2060] ffmpeg: Update to 2.6.3 --- mingw-w64-ffmpeg/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index bef3ffa6c5..b883a9879e 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,7 +2,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.6.2 +pkgver=2.6.3 pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') @@ -33,15 +33,15 @@ depends=( "${MINGW_PACKAGE_PREFIX}-schroedinger" "${MINGW_PACKAGE_PREFIX}-SDL" "${MINGW_PACKAGE_PREFIX}-speex" + "${MINGW_PACKAGE_PREFIX}-wavpack" "${MINGW_PACKAGE_PREFIX}-x264" "${MINGW_PACKAGE_PREFIX}-x265" "${MINGW_PACKAGE_PREFIX}-xvidcore" - "${MINGW_PACKAGE_PREFIX}-wavpack" "${MINGW_PACKAGE_PREFIX}-zlib" ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://ffmpeg.org/releases/$_realname-$pkgver.tar.bz2) -md5sums=('e75d598921285d6775f20164a91936ac') +md5sums=('e2cc3c209f91393d35ab58598e41cf22') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 9ef715dc2775554627aaae655eb3c81e169dfa7e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 18 May 2015 12:00:21 +0300 Subject: [PATCH 1018/2060] poppler: Update to 0.33.0 --- mingw-w64-poppler/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index ba934eadac..091219fa50 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -2,8 +2,8 @@ _realname=poppler pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.32.0 -pkgrel=2 +pkgver=0.33.0 +pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') url="http://poppler.freedesktop.org" @@ -28,7 +28,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" options=('strip' 'staticlibs') source=("http://poppler.freedesktop.org/poppler-${pkgver}.tar.xz" "give-cc-to-gir-scanner.mingw.patch") -md5sums=('a97985f7af6c388e42a53dead85d4ef4' +md5sums=('69927d1614d6704021c0b0dd0ee6a852' '727c1b414987f6ee2ba841d9db57a967') prepare() { From 9b3ef707e1a642dfb408c6463aa295d4e31e58e2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 18 May 2015 15:52:25 +0300 Subject: [PATCH 1019/2060] Rebuild packages with popper-0.33.x --- mingw-w64-evince/PKGBUILD | 2 +- mingw-w64-gdal/PKGBUILD | 4 ++-- mingw-w64-gimp/PKGBUILD | 2 +- mingw-w64-inkscape/PKGBUILD | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index ee97014bd0..ad250f5ea5 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -3,7 +3,7 @@ _realname=evince pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Document (PostScript, PDF) viewer (mingw-w64)" options=(strip staticlibs) diff --git a/mingw-w64-gdal/PKGBUILD b/mingw-w64-gdal/PKGBUILD index 1e2b9a0ce8..55dfbd1b87 100644 --- a/mingw-w64-gdal/PKGBUILD +++ b/mingw-w64-gdal/PKGBUILD @@ -6,7 +6,7 @@ _realname=gdal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.11.2 -pkgrel=2 +pkgrel=3 pkgdesc="A translator library for raster geospatial data formats (mingw-w64)" arch=('any') url="http://www.gdal.org/" @@ -37,7 +37,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cfitsio" "${MINGW_PACKAGE_PREFIX}-sqlite3" "${MINGW_PACKAGE_PREFIX}-xerces-c" "${MINGW_PACKAGE_PREFIX}-xz") -options=(strip staticlibs) +options=('strip' 'staticlibs') source=(http://download.osgeo.org/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz 02-poppler-0_31-compatibility.patch) diff --git a/mingw-w64-gimp/PKGBUILD b/mingw-w64-gimp/PKGBUILD index c4c41ad5da..5d9ddd77b1 100644 --- a/mingw-w64-gimp/PKGBUILD +++ b/mingw-w64-gimp/PKGBUILD @@ -3,7 +3,7 @@ _realname=gimp pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.8.14 -pkgrel=3 +pkgrel=4 pkgdesc="GNU Image Manipulation Program (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index 44ab33b41a..d76375286b 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -11,7 +11,7 @@ fi _realname=inkscape pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.91 -pkgrel=6 +pkgrel=7 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') url="http://inkscape.sourceforge.net/" From bdfb147febeea19711e449627b9e4e845f7ccc38 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 18 May 2015 18:46:05 +0100 Subject: [PATCH 1020/2060] vlc-git: update to latest and fix winstore supp --- ...y-build-correct-modules-for-WINSTORE.patch | 46 +++---- .../0014-dx11-vout-add-WINSTORE-support.patch | 127 +++++------------- ...ups-time.h-is-assumed-in-many-places.patch | 26 ++++ mingw-w64-vlc-git/PKGBUILD | 45 ++++--- 4 files changed, 109 insertions(+), 135 deletions(-) create mode 100644 mingw-w64-vlc-git/0015-fixups-time.h-is-assumed-in-many-places.patch diff --git a/mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch b/mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch index d6f2f10566..82c1480efc 100644 --- a/mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch +++ b/mingw-w64-vlc-git/0012-Only-build-correct-modules-for-WINSTORE.patch @@ -1,6 +1,6 @@ -From e6e3e8aa15791a7f4fb3f200dadf95b704bb6f56 Mon Sep 17 00:00:00 2001 +From 79025b6c3eb3c75426fb5fa2519061c89f37abca Mon Sep 17 00:00:00 2001 From: Martell Malone -Date: Thu, 5 Mar 2015 01:43:37 +0000 +Date: Mon, 18 May 2015 17:31:15 +0100 Subject: [PATCH] Only build correct modules for WINSTORE --- @@ -9,10 +9,10 @@ They should be buildable but are not Must find out why :) diff --git a/Makefile.am b/Makefile.am -index b66c21b..25dfb30 100644 +index 3c7831a..3448956 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -981,6 +981,7 @@ dist_noinst_SCRIPTS += test/run_vlc.sh +@@ -982,6 +982,7 @@ dist_noinst_SCRIPTS += test/run_vlc.sh # Installing plugins cache ############################################################################### install-exec-hook: @@ -20,7 +20,7 @@ index b66c21b..25dfb30 100644 if test "$(build)" = "$(host)"; then \ PATH="$(DESTDIR)$(bindir):$$PATH" \ LD_LIBRARY_PATH="$(DESTDIR)$(libdir):$$LD_LIBRARY_PATH" \ -@@ -989,7 +990,7 @@ install-exec-hook: +@@ -990,7 +991,7 @@ install-exec-hook: else \ echo "Cross-compilation: cache generation skipped!" ; \ fi @@ -30,10 +30,10 @@ index b66c21b..25dfb30 100644 rm -f -- "$(DESTDIR)$(vlclibdir)/plugins/plugins.dat" diff --git a/modules/access/Makefile.am b/modules/access/Makefile.am -index 3bc9146..724c296 100644 +index 5ded5f5..5290525 100644 --- a/modules/access/Makefile.am +++ b/modules/access/Makefile.am -@@ -255,8 +255,10 @@ if HAVE_DARWIN +@@ -267,8 +267,10 @@ if HAVE_DARWIN libcdda_plugin_la_LIBADD += -liconv libcdda_plugin_la_LDFLAGS += -Wl,-framework,IOKit,-framework,CoreFoundation endif @@ -44,7 +44,7 @@ index 3bc9146..724c296 100644 libvcd_plugin_la_SOURCES = access/vcd/vcd.c access/vcd/cdrom.c access/vcd/cdrom.h access/vcd/cdrom_internals.h libvcd_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(accessdir)' -@@ -264,8 +266,10 @@ if HAVE_DARWIN +@@ -276,8 +278,10 @@ if HAVE_DARWIN libvcd_plugin_la_LIBADD = -liconv libvcd_plugin_la_LDFLAGS += -Wl,-framework,IOKit,-framework,CoreFoundation endif @@ -55,7 +55,7 @@ index 3bc9146..724c296 100644 libvcdx_plugin_la_SOURCES = \ access/vcdx/access.h access/vcdx/access.c \ -@@ -410,8 +414,10 @@ if HAVE_WIN32 +@@ -422,8 +426,10 @@ if HAVE_WIN32 libsmb_plugin_la_LIBADD += -lmpr endif libsmb_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(accessdir)' @@ -168,11 +168,11 @@ index 589e5fe..a0441b2 100644 libauhal_plugin_la_SOURCES = audio_output/auhal.c \ audio_output/TPCircularBuffer.h audio_output/TPCircularBuffer.c diff --git a/modules/codec/Makefile.am b/modules/codec/Makefile.am -index 9c31230..1f8c7e4 100644 +index f173c0e..a29fab6 100644 --- a/modules/codec/Makefile.am +++ b/modules/codec/Makefile.am -@@ -345,8 +345,10 @@ libdxva2_plugin_la_SOURCES = \ - codec/avcodec/dxva2.c +@@ -348,8 +348,10 @@ libdxva2_plugin_la_SOURCES = \ + codec/avcodec/dxva2.c packetizer/h264_nal.c packetizer/h264_nal.h libdxva2_plugin_la_LIBADD = -lole32 -lshlwapi -luuid if HAVE_AVCODEC_DXVA2 +if !HAVE_WINSTORE @@ -182,8 +182,8 @@ index 9c31230..1f8c7e4 100644 libvda_plugin_la_SOURCES = \ video_chroma/copy.c video_chroma/copy.h \ -@@ -477,8 +479,10 @@ codec_LTLIBRARIES += $(LTLIBtwolame) - libcrystalhd_plugin_la_SOURCES = codec/crystalhd.c codec/h264_nal.c codec/h264_nal.h +@@ -481,8 +483,10 @@ codec_LTLIBRARIES += $(LTLIBtwolame) + libcrystalhd_plugin_la_SOURCES = codec/crystalhd.c packetizer/h264_nal.c packetizer/h264_nal.h libcrystalhd_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)' libcrystalhd_plugin_la_LIBADD = $(LIBS_crystalhd) +if !HAVE_WINSTORE @@ -193,7 +193,7 @@ index 9c31230..1f8c7e4 100644 libqsv_plugin_la_SOURCES = codec/qsv.c libqsv_plugin_la_CFLAGS = $(AM_CFLAGS) $(MFX_CFLAGS) -@@ -494,21 +498,27 @@ libdmo_plugin_la_SOURCES = codec/dmo/dmo.c codec/dmo/dmo.h codec/dmo/buffer.c +@@ -498,21 +502,27 @@ libdmo_plugin_la_SOURCES = codec/dmo/dmo.c codec/dmo/dmo.h codec/dmo/buffer.c libqsv_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) libdmo_plugin_la_LIBADD = $(LIBM) if HAVE_WIN32 @@ -203,7 +203,7 @@ index 9c31230..1f8c7e4 100644 endif +endif - libmft_plugin_la_SOURCES = codec/mft.c codec/h264_nal.c codec/h264_nal.h + libmft_plugin_la_SOURCES = codec/mft.c packetizer/h264_nal.c packetizer/h264_nal.h if HAVE_WIN32 +if !HAVE_WINSTORE libmft_plugin_la_LIBADD = -lole32 -luuid -lmfuuid -lmfplat @@ -222,10 +222,10 @@ index 9c31230..1f8c7e4 100644 libgstdecode_plugin_la_SOURCES = codec/gstdecode.c libgstdecode_plugin_la_CFLAGS = $(AM_CFLAGS) $(GST_VIDEO_CFLAGS) $(GST_APP_CFLAGS) diff --git a/modules/control/Makefile.am b/modules/control/Makefile.am -index 70a8486..b732876 100644 +index 06f258c..8f56eae 100644 --- a/modules/control/Makefile.am +++ b/modules/control/Makefile.am -@@ -1,20 +1,27 @@ +@@ -1,20 +1,28 @@ controldir = $(pluginsdir)/control +control_LTLIBRARIES = @@ -245,9 +245,9 @@ index 70a8486..b732876 100644 +control_LTLIBRARIES += libnetsync_plugin.la +endif + - liboldrc_plugin_la_SOURCES = control/rc.c control/intromsg.h + liboldrc_plugin_la_SOURCES = control/oldrc.c control/intromsg.h liboldrc_plugin_la_LIBADD = $(SOCKET_LIBS) $(LIBM) -- + -control_LTLIBRARIES = \ - libdummy_plugin.la \ - libgestures_plugin.la \ @@ -260,7 +260,7 @@ index 70a8486..b732876 100644 liblirc_plugin_la_SOURCES = control/lirc.c liblirc_plugin_la_LIBADD = -llirc_client -@@ -64,8 +71,8 @@ libntservice_plugin_la_SOURCES = control/ntservice.c +@@ -64,8 +72,8 @@ libntservice_plugin_la_SOURCES = control/ntservice.c libwin_hotkeys_plugin_la_SOURCES = control/globalhotkeys/win32.c libwin_msg_plugin_la_SOURCES = control/win_msg.c if HAVE_WIN32 @@ -271,7 +271,7 @@ index 70a8486..b732876 100644 endif endif diff --git a/modules/services_discovery/Makefile.am b/modules/services_discovery/Makefile.am -index b526338..15cf2c1 100644 +index 11fca94..42096ce 100644 --- a/modules/services_discovery/Makefile.am +++ b/modules/services_discovery/Makefile.am @@ -11,7 +11,9 @@ sd_LTLIBRARIES += libpodcast_plugin.la @@ -362,5 +362,5 @@ index f0e023c..f6f952b 100644 if HAVE_XCB_RANDR libpanoramix_plugin_la_CFLAGS += $(XCB_RANDR_CFLAGS) -- -2.3.1 +2.4.1 diff --git a/mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch b/mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch index 9405fa5d42..fad441e6df 100644 --- a/mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch +++ b/mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch @@ -1,18 +1,17 @@ -From 0d41b3966dc4e0b41e5da7a618896b087ab19bfe Mon Sep 17 00:00:00 2001 +From 035969096dfd54dcdddd454ce4a1932211f7d5f6 Mon Sep 17 00:00:00 2001 From: Martell Malone -Date: Tue, 10 Mar 2015 19:34:09 +0000 +Date: Mon, 18 May 2015 16:47:52 +0100 Subject: [PATCH] dx11 vout: add WINSTORE support diff --git a/include/vlc_windows_interfaces.h b/include/vlc_windows_interfaces.h -index e4c41f2..85ac475 100644 +index e4c41f2..bee2795 100644 --- a/include/vlc_windows_interfaces.h +++ b/include/vlc_windows_interfaces.h -@@ -38,13 +38,13 @@ - +@@ -39,12 +39,13 @@ /* rpcndr.h defines small not only for idl */ #undef small -- + +#if !VLC_WINSTORE_APP /* mingw.org fails to define this */ #ifndef __ITaskbarList3_INTERFACE_DEFINED__ @@ -24,21 +23,19 @@ index e4c41f2..85ac475 100644 typedef enum TBPFLAG { -@@ -204,10 +204,10 @@ struct ITaskbarList3Vtbl - +@@ -205,8 +206,10 @@ struct ITaskbarList3Vtbl long ( WINAPI *ThumbBarUpdateButtons )(ITaskbarList3 *This, HWND hwnd, UINT cButtons, LPTHUMBBUTTON pButton); -- + +#if !VLC_WINSTORE_APP long ( WINAPI *ThumbBarSetImageList )(ITaskbarList3 *This, HWND hwnd, HIMAGELIST himl); -- +#endif + long ( WINAPI *SetOverlayIcon )(ITaskbarList3 *This, HWND hwnd, HICON hIcon, LPCWSTR pszDescription); - diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am -index 943ad6a..1505a9f 100644 +index 943ad6a..e59d93c 100644 --- a/modules/video_output/Makefile.am +++ b/modules/video_output/Makefile.am @@ -186,13 +186,13 @@ EXTRA_LTLIBRARIES += libdirect3d9_plugin.la @@ -60,10 +57,10 @@ index 943ad6a..1505a9f 100644 else libdirect3d11_plugin_la_LIBADD = -ld3dcompiler -lole32 -luuid diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c -index 8de44fd..a028515 100644 +index 987f260..5a1733a 100644 --- a/modules/video_output/msw/common.c +++ b/modules/video_output/msw/common.c -@@ -42,26 +42,30 @@ +@@ -42,26 +42,31 @@ #include @@ -98,10 +95,11 @@ index 8de44fd..a028515 100644 SetRectEmpty(&sys->rect_parent); - sys->is_first_display = true; - sys->is_on_top = false; ++ var_Create(vd, "video-deco", VLC_VAR_BOOL | VLC_VAR_DOINHERIT); var_Create(vd, "disable-screensaver", VLC_VAR_BOOL | VLC_VAR_DOINHERIT); -@@ -70,7 +74,7 @@ int CommonInit(vout_display_t *vd) +@@ -70,7 +75,7 @@ int CommonInit(vout_display_t *vd) sys->event = EventThreadCreate(vd); if (!sys->event) return VLC_EGENERIC; @@ -110,7 +108,7 @@ index 8de44fd..a028515 100644 event_cfg_t cfg; memset(&cfg, 0, sizeof(cfg)); #ifdef MODULE_NAME_IS_direct3d9 -@@ -83,7 +87,7 @@ int CommonInit(vout_display_t *vd) +@@ -83,7 +88,7 @@ int CommonInit(vout_display_t *vd) cfg.y = var_InheritInteger(vd, "video-y"); cfg.width = vd->cfg->display.width; cfg.height = vd->cfg->display.height; @@ -119,7 +117,7 @@ index 8de44fd..a028515 100644 event_hwnd_t hwnd; if (EventThreadStart(sys->event, &hwnd, &cfg)) return VLC_EGENERIC; -@@ -100,7 +104,7 @@ int CommonInit(vout_display_t *vd) +@@ -100,7 +105,7 @@ int CommonInit(vout_display_t *vd) } DisableScreensaver (vd); @@ -128,7 +126,7 @@ index 8de44fd..a028515 100644 return VLC_SUCCESS; } -@@ -108,14 +112,14 @@ int CommonInit(vout_display_t *vd) +@@ -108,7 +113,7 @@ int CommonInit(vout_display_t *vd) void CommonClean(vout_display_t *vd) { vout_display_sys_t *sys = vd->sys; @@ -137,15 +135,15 @@ index 8de44fd..a028515 100644 if (sys->event) { CommonChangeThumbnailClip(vd, false); EventThreadStop(sys->event); - EventThreadDestroy(sys->event); +@@ -116,6 +121,7 @@ void CommonClean(vout_display_t *vd) } -- + RestoreScreensaver(vd); +#endif } /* */ -@@ -133,7 +137,7 @@ void CommonManage(vout_display_t *vd) +@@ -133,7 +139,7 @@ void CommonManage(vout_display_t *vd) * messages. But since window can stay blocked into this function for a * long time (for example when you move your window on the screen), I * decided to isolate PeekMessage in another thread. */ @@ -154,11 +152,7 @@ index 8de44fd..a028515 100644 /* If we do not control our window, we check for geometry changes * ourselves because the parent might not send us its events. */ if (sys->hparent) { -@@ -166,10 +170,10 @@ void CommonManage(vout_display_t *vd) - UpdateRects(vd, NULL, NULL, true); - } - } -- +@@ -170,6 +176,7 @@ void CommonManage(vout_display_t *vd) /* HasMoved means here resize or move */ if (EventThreadGetAndResetHasMoved(sys->event)) UpdateRects(vd, NULL, NULL, false); @@ -166,7 +160,7 @@ index 8de44fd..a028515 100644 } /** -@@ -179,7 +183,7 @@ void CommonManage(vout_display_t *vd) +@@ -179,7 +186,7 @@ void CommonManage(vout_display_t *vd) void CommonDisplay(vout_display_t *vd) { vout_display_sys_t *sys = vd->sys; @@ -175,7 +169,7 @@ index 8de44fd..a028515 100644 if (!sys->is_first_display) return; -@@ -194,6 +198,7 @@ void CommonDisplay(vout_display_t *vd) +@@ -194,6 +201,7 @@ void CommonDisplay(vout_display_t *vd) SWP_NOSIZE| SWP_NOZORDER); sys->is_first_display = false; @@ -183,7 +177,7 @@ index 8de44fd..a028515 100644 } /** -@@ -272,6 +277,7 @@ void AlignRect(RECT *r, int align_boundary, int align_size) +@@ -272,6 +280,7 @@ void AlignRect(RECT *r, int align_boundary, int align_size) r->right = ((r->right - r->left + align_size/2) & ~align_size) + r->left; } @@ -191,14 +185,14 @@ index 8de44fd..a028515 100644 /* */ static void CommonChangeThumbnailClip(vout_display_t *vd, bool show) { -@@ -709,3 +715,5 @@ static void RestoreScreensaver(vout_display_t *vd) +@@ -710,3 +719,5 @@ static void RestoreScreensaver(vout_display_t *vd) sys->i_spi_screensaveactive, NULL, 0); } } + +#endif diff --git a/modules/video_output/msw/direct3d11.c b/modules/video_output/msw/direct3d11.c -index ba129f6..b4071a0 100644 +index 8ed4598..41a68bb 100644 --- a/modules/video_output/msw/direct3d11.c +++ b/modules/video_output/msw/direct3d11.c @@ -42,7 +42,7 @@ @@ -206,23 +200,11 @@ index ba129f6..b4071a0 100644 # define D3DCompile(args...) sys->OurD3DCompile(args) #else -# define IDXGISwapChain_Present(args...) IDXGISwapChain_Present1(args) -+//# define IDXGISwapChain_Present(a,b,c) IDXGISwapChain_Present1(a,b,c) ++//# define IDXGISwapChain_Present(args...) IDXGISwapChain_Present1(args) # define IDXGIFactory_CreateSwapChain(a,b,c,d) IDXGIFactory2_CreateSwapChainForComposition(a,b,c,NULL,d) # define DXGI_SWAP_CHAIN_DESC DXGI_SWAP_CHAIN_DESC1 #endif -@@ -104,9 +104,9 @@ static void Direct3D11DestroyResources(vout_display_t *); - - static int Direct3D11MapTexture(picture_t *); - --/* All the #if 0 contain an alternative method to setup dx11 -+/* All the #ifdef METHOD_2 contain an alternative method to setup dx11 - They both need to be benchmarked to see which performs better */ --#if 0 -+#ifdef METHOD_2 - /* I have no idea why MS decided dxgi headers do not define this - As they do have prototypes for d3d11 functions */ - typedef HRESULT(WINAPI *PFN_CREATE_DXGI_FACTORY)(REFIID riid, void **ppFactory); -@@ -219,7 +219,9 @@ static int Open(vlc_object_t *object) +@@ -431,7 +431,9 @@ static int Open(vlc_object_t *object) vd->pool = CommonPool; vd->prepare = Prepare; vd->display = Display; @@ -232,58 +214,21 @@ index ba129f6..b4071a0 100644 vd->manage = CommonManage; msg_Dbg(vd, "Direct3D11 Open Succeeded"); -@@ -304,7 +306,7 @@ static int Direct3D11Create(vout_display_t *vd) - return VLC_EGENERIC; +@@ -764,17 +766,17 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) + sys->d3dPxShader = globPixelShaderDefault; + break; } - --# if 0 -+# ifdef METHOD_2 - HINSTANCE hdxgi_dll = LoadLibrary(TEXT("DXGI.DLL")); - if (!hdxgi_dll) { - msg_Warn(vd, "cannot load dxgi.dll, aborting"); -@@ -347,7 +349,7 @@ static int Direct3D11Create(vout_display_t *vd) - return VLC_EGENERIC; - } - --# if 0 -+# ifdef METHOD_2 - - sys->hdxgi_dll = hdxgi_dll; - -@@ -403,7 +405,7 @@ static void Direct3D11Destroy(vout_display_t *vd) - - vout_display_sys_t *sys = vd->sys; - --# if 0 -+# ifdef METHOD_2 - if (sys->hdxgi_dll) - FreeLibrary(sys->hdxgi_dll); - # endif -@@ -477,7 +479,7 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) - scd.OutputWindow = sys->hvideownd; - # endif - --# if 0 -+# ifdef METHOD_2 - - /* TODO : list adapters for the user to choose from */ - hr = IDXGIFactory_EnumAdapters(sys->dxgifactory, 0, &sys->dxgiadapter); -@@ -584,18 +586,19 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) - - # endif - # endif --#endif - -- UpdateRects(vd, NULL, NULL, true); - -+ UpdateRects(vd, NULL, NULL, true); +- ++#if !VLC_WINSTORE_APP + UpdateRects(vd, NULL, NULL, true); +- +#endif if (Direct3D11CreateResources(vd, fmt)) { msg_Err(vd, "Failed to allocate resources"); Direct3D11DestroyResources(vd); return VLC_EGENERIC; } - +- +#if !VLC_WINSTORE_APP EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct3D11 output)"); - @@ -292,5 +237,5 @@ index ba129f6..b4071a0 100644 return VLC_SUCCESS; } -- -2.3.1 +2.4.1 diff --git a/mingw-w64-vlc-git/0015-fixups-time.h-is-assumed-in-many-places.patch b/mingw-w64-vlc-git/0015-fixups-time.h-is-assumed-in-many-places.patch new file mode 100644 index 0000000000..2bfa6827aa --- /dev/null +++ b/mingw-w64-vlc-git/0015-fixups-time.h-is-assumed-in-many-places.patch @@ -0,0 +1,26 @@ +From 5d2e3cac97b6c119e6a55f5a6c715a7932556634 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 18 May 2015 17:26:53 +0100 +Subject: [PATCH 1/2] fixups: time.h is assumed in many places + +--- + include/vlc_fixups.h | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h +index f844641..0c72af7 100644 +--- a/include/vlc_fixups.h ++++ b/include/vlc_fixups.h +@@ -26,9 +26,7 @@ + #ifndef LIBVLC_FIXUPS_H + # define LIBVLC_FIXUPS_H 1 + +-#if !defined (HAVE_GMTIME_R) || !defined (HAVE_LOCALTIME_R) + # include /* time_t */ +-#endif + + #ifndef HAVE_LLDIV + typedef struct +-- +2.4.1 + diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index ef029bf621..f5c1eb2880 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -2,15 +2,15 @@ # Contributor: Alexey Pavlov # Contributor: Ray Donnelly -#_variant=winrt -_variant=desktop +#_variant=winrt #desktop +_variant=winrt _realname=vlc pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.60014.fd21eb0 +pkgver=3.0.0.60785.d1bc937 pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -49,7 +49,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-a52dec" "${MINGW_PACKAGE_PREFIX}-libtheora" "${MINGW_PACKAGE_PREFIX}-libvpx" "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-lua" + "${MINGW_PACKAGE_PREFIX}-lua51" "${MINGW_PACKAGE_PREFIX}-opencv" "${MINGW_PACKAGE_PREFIX}-opus" "${MINGW_PACKAGE_PREFIX}-portaudio" @@ -76,6 +76,7 @@ makedepends=( "autoconf" "automake" "libtool" + "make" # 'libkate' # 'live-media' # 'libnotify' @@ -111,27 +112,25 @@ makedepends=( options=('strip' '!emptydirs') source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_realname}-${_ver_base}.git" "${_realname}"::"git://git.videolan.org/${_realname}.git" - 0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch 0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch 0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch 0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch 0007-Use-libdir-for-plugins-on-msys2.patch - 0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch 0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch 0012-Only-build-correct-modules-for-WINSTORE.patch 0013-remove-AllocConsole-reference-for-WINSTORE.patch - 0014-dx11-vout-add-WINSTORE-support.patch) + 0014-dx11-vout-add-WINSTORE-support.patch + 0015-fixups-time.h-is-assumed-in-many-places.patch) md5sums=('SKIP' - 'c2a4338d8c9396054c1ed45fae221470' '13f5a8bf897b253e0d9626a5ae79bc8d' 'c53c41b440eb42e7a2cda9109a1651c4' '8cd35991a69b14a1c3ab3b6faa9f15bc' 'b6a010849631177493135b3ad7c5f784' - 'dc623f31cffed63092b192b24ab86f0d' '3ab07dce68513b6d37321f36141a8340' - 'c3d58a3f6ce7e82f68aa6c32453643bb' + '4c286b5d83b67e6c0ca15c16b9376fc4' '0b3303af4b3d68cf5317f025975adb32' - 'c9eb72a2a8126f2a5c643069eed757b7') + '7720533f97d4d8aeeecfd6b4f9b1f5b5' + '7935a0abb05472342473e9aafa3c426f') pkgver() { cd $_realname @@ -146,21 +145,22 @@ pkgver() { prepare() { cd "${srcdir}"/${_realname} - git am "${srcdir}"/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch git am "${srcdir}"/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch + git am "${srcdir}"/0015-fixups-time.h-is-assumed-in-many-places.patch git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch - git am "${srcdir}"/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch if [ "${_variant}" != "winrt" ]; then git am "${srcdir}"/0007-Use-libdir-for-plugins-on-msys2.patch + fi git am "${srcdir}"/0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch - git am "${srcdir}"/0012-Only-build-correct-modules-for-WINSTORE.patch git am "${srcdir}"/0013-remove-AllocConsole-reference-for-WINSTORE.patch + + git am "${srcdir}"/0012-Only-build-correct-modules-for-WINSTORE.patch git am "${srcdir}"/0014-dx11-vout-add-WINSTORE-support.patch ./bootstrap @@ -171,9 +171,6 @@ fi build() { - cd "${srcdir}"/${_realname} - ./bootstrap - mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} @@ -241,8 +238,11 @@ if [ "${_variant}" = "winrt" ]; then --disable-taglib \ --disable-ncurses \ --disable-dbus \ - LUAC==${MINGW_PREFIX}/bin/luac LUA_LIBS="`pkg-config --libs lua`" \ - RCC==${MINGW_PREFIX}/bin/rcc + --disable-lua + + # Having some issues with lua 5.2, disable for now + #LUAC==${MINGW_PREFIX}/bin/luac51 LUA_LIBS="`pkg-config --libs lua`" \ + #RCC==${MINGW_PREFIX}/bin/rcc #todo: look at direct for winRT # --disable-dirac @@ -264,8 +264,11 @@ else --disable-sdl \ --disable-telx \ --enable-nls \ - LUAC==${MINGW_PREFIX}/bin/luac LUA_LIBS="`pkg-config --libs lua`" \ - RCC==${MINGW_PREFIX}/bin/rcc + --disable-lua + + # Having some issues with lua 5.2, disable for now + #LUAC==${MINGW_PREFIX}/bin/luac51 LUA_LIBS="`pkg-config --libs lua`" \ + #RCC==${MINGW_PREFIX}/bin/rcc fi From e3f4123168869df9b91ae407036265cc57cac335 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 17 May 2015 21:25:04 +0200 Subject: [PATCH 1021/2060] gplugin: new package. --- mingw-w64-gplugin/001-win.patch | 60 +++++++++++++++++++++++++++++++++ mingw-w64-gplugin/PKGBUILD | 59 ++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 mingw-w64-gplugin/001-win.patch create mode 100644 mingw-w64-gplugin/PKGBUILD diff --git a/mingw-w64-gplugin/001-win.patch b/mingw-w64-gplugin/001-win.patch new file mode 100644 index 0000000000..88b5992cd1 --- /dev/null +++ b/mingw-w64-gplugin/001-win.patch @@ -0,0 +1,60 @@ +--- ./cmake/Modules/GObjectIntrospection.cmake.orig 2015-02-22 23:39:10.000000000 +0100 ++++ ./cmake/Modules/GObjectIntrospection.cmake 2015-05-10 19:44:47.568256600 +0200 +@@ -181,7 +181,7 @@ + set(ENV{CFLAGS} ${GIR_REAL_CFLAGS}) + add_custom_command( + OUTPUT ${GIR_FILENAME} +- COMMAND ${GIR_SCANNER} ${GIR_SCANNER_ARGS} ++ COMMAND CC=${CMAKE_C_COMPILER} ${GIR_SCANNER} ${GIR_SCANNER_ARGS} + --namespace=${GIR_NAMESPACE} + --nsversion=${GIR_NSVERSION} + ${GIR_REAL_CFLAGS} +--- ./gplugin/CMakeLists.txt.orig 2015-02-22 23:39:10.000000000 +0100 ++++ ./gplugin/CMakeLists.txt 2015-05-10 19:44:47.620258900 +0200 +@@ -196,14 +196,6 @@ + add_executable(gplugin-query gplugin-query.c) + target_link_libraries(gplugin-query ${GLIB_LIBRARIES} gplugin) + +-help2man( +- TARGET gplugin-query +- OUTPUT gplugin-query.1 +- SECTION 1 +- NAME "Query installed plugins" +- HELP_OPTION --help-all +-) +- + ############################################################################### + # loader-tests static library + ############################################################################### +--- ./gplugin/gplugin-manager.c.orig 2015-05-10 20:02:00.022359200 +0200 ++++ ./gplugin/gplugin-manager.c 2015-05-10 20:02:12.100326200 +0200 +@@ -1119,7 +1119,11 @@ + gplugin_manager_add_default_paths(void) { + gchar *path; + +- path = g_build_filename(PREFIX, "lib", "gplugin", NULL); ++ gchar *dir; ++ ++ dir = g_win32_get_package_installation_directory_of_module (NULL); ++ path = g_build_filename(dir, "lib", "gplugin", NULL); ++ g_free (dir); + gplugin_manager_prepend_path(path); + g_free(path); + +--- ./gplugin-gtk/gplugin-gtk-plugin-info.c.orig 2015-05-10 20:00:56.780137100 +0200 ++++ ./gplugin-gtk/gplugin-gtk-plugin-info.c 2015-05-10 20:01:16.721412000 +0200 +@@ -239,8 +239,13 @@ + + /* load the ui from the GtkBuilder file */ + priv->builder = gtk_builder_new(); +- filename = g_build_filename(PREFIX, "share", "gplugin", "gplugin-gtk", ++ ++ gchar *dir; ++ ++ dir = g_win32_get_package_installation_directory_of_module (NULL); ++ filename = g_build_filename(dir, "share", "gplugin", "gplugin-gtk", + "gplugin-gtk-plugin-info.ui", NULL); ++ g_free (dir); + gtk_builder_add_from_file(priv->builder, filename, &error); + if(error) { + g_warning("%s", error->message); diff --git a/mingw-w64-gplugin/PKGBUILD b/mingw-w64-gplugin/PKGBUILD new file mode 100644 index 0000000000..1c7f5480a3 --- /dev/null +++ b/mingw-w64-gplugin/PKGBUILD @@ -0,0 +1,59 @@ +# Maintainer: Andrea Zagli + +_realname=gplugin +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.0.18 +pkgrel=1 +arch=('any') +pkgdesc="A GObject based library that implements a reusable plugin system (mingw-w64)" +license=("LGPL 2") +url="https://bitbucket.org/rw_grim/gplugin" +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-libxslt") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "gettext") +options=('strip' '!debug' 'staticlibs') +source=(https://bitbucket.org/rw_grim/${_realname}/get/v$pkgver.tar.bz2 + 001-win.patch) +sha256sums=('fe0d6e450ff9f63e866bf75344cb561985dccae1e89e4162c20d07d961b71fc9' + '583b969c8d67fd303cf219e5a6f475be8f4f535711324966efc57479fe031153') + +prepare() { + cd rw_grim-gplugin-9f4dea11d6eb + + patch -p1 -i ${srcdir}/001-win.patch +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ${MINGW_PREFIX}/bin/cmake \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + -DCMAKE_C_FLAGS="${CFLAGS}" \ + -DBUILD_GJS="Off" \ + -DBUILD_LUA="Off" \ + -DBUILD_PYTHON="Off" \ + -DBUILD_SEED="Off" \ + -DTESTING_ENABLED="Off" \ + -G "MSYS Makefiles" \ + ../rw_grim-gplugin-9f4dea11d6eb + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make install + + install -Dm644 "${srcdir}/rw_grim-gplugin-9f4dea11d6eb/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + + mv "$pkgdir${MINGW_PREFIX}/lib/libgplugin.dll" "$pkgdir${MINGW_PREFIX}/bin" + mv "$pkgdir${MINGW_PREFIX}/lib/libgplugin-gtk.dll" "$pkgdir${MINGW_PREFIX}/bin" + + MINGW_PREFIX_W=$(cygpath -m "$pkgdir${MINGW_PREFIX}") + sed -i "s#${MINGW_PREFIX_W}#${MINGW_PREFIX}#g" "$pkgdir"${MINGW_PREFIX}/lib/pkgconfig/gplugin.pc + sed -i "s#${MINGW_PREFIX_W}#${MINGW_PREFIX}#g" "$pkgdir"${MINGW_PREFIX}/lib/pkgconfig/gplugin-gtk.pc +} From cb76f32b41346214c6d3b0e36110bfcb0625d21b Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 10 May 2015 18:44:32 +0200 Subject: [PATCH 1022/2060] pidgin-hg: enabled plugins and introspection. --- mingw-w64-pidgin-hg/001-win.patch | 55 +++++++++++++++++++++++++++++++ mingw-w64-pidgin-hg/PKGBUILD | 19 +++++++---- 2 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-pidgin-hg/001-win.patch diff --git a/mingw-w64-pidgin-hg/001-win.patch b/mingw-w64-pidgin-hg/001-win.patch new file mode 100644 index 0000000000..088ea22263 --- /dev/null +++ b/mingw-w64-pidgin-hg/001-win.patch @@ -0,0 +1,55 @@ +--- ./libpurple/Makefile.am.orig 2015-05-17 21:54:49.202429500 +0200 ++++ ./libpurple/Makefile.am 2015-05-17 23:06:31.848670500 +0200 +@@ -463,6 +463,7 @@ + INTROSPECTION_GIRS = + INTROSPECTION_SCANNER_ARGS = --add-include-path=$(prefix)/share/gir-1.0 --warn-all + INTROSPECTION_COMPILER_ARGS = --includedir=$(prefix)/share/gir-1.0 ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + if HAVE_INTROSPECTION + introspection_sources = \ +@@ -480,7 +481,7 @@ + endif + + Purple_3_0_gir_CFLAGS = \ +- -I$(srcdir) \ ++ -I$(top_srcdir) \ + $(INCLUDES) \ + -DDATADIR=\"$(datadir)\" \ + -DLIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)/\" \ +@@ -506,10 +507,10 @@ + Purple_3_0_gir_FILES = $(introspection_sources) + INTROSPECTION_GIRS += Purple-$(PURPLE_MAJOR_VERSION).$(PURPLE_MINOR_VERSION).gir + +-girdir = $(prefix)/share/gir-1.0 $(INTROSPECTION_GIRDIR) ++girdir = $(datadir)/gir-1.0 + gir_DATA = $(INTROSPECTION_GIRS) + +-typelibdir = $(prefix)/share/gir-1.0 $(INTROSPECTION_TYPELIBDIR) ++typelibdir = $(libdir)/girepository-1.0 + typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) + + CLEANFILES += $(gir_DATA) $(typelib_DATA) +--- ./pidgin/Makefile.am.orig 2015-05-17 21:54:49.224430000 +0200 ++++ ./pidgin/Makefile.am 2015-05-17 23:07:16.130585900 +0200 +@@ -266,6 +266,7 @@ + INTROSPECTION_GIRS = + INTROSPECTION_SCANNER_ARGS = --warn-all --add-include-path=$(top_builddir)/libpurple --add-include-path=$(prefix)/share/gir-1.0 + INTROSPECTION_COMPILER_ARGS = --includedir=$(top_builddir)/libpurple --includedir=$(prefix)/share/gir-1.0 ++INTROSPECTION_SCANNER_ENV = CC="$(CC)" + + if HAVE_INTROSPECTION + introspection_sources = $(libpidgininclude_HEADERS) +@@ -300,10 +301,10 @@ + Pidgin_3_0_gir_FILES = $(introspection_sources) + INTROSPECTION_GIRS += Pidgin-$(PURPLE_MAJOR_VERSION).$(PURPLE_MINOR_VERSION).gir + +-girdir = $(prefix)/share/gir-1.0 $(INTROSPECTION_GIRDIR) ++girdir = $(datadir)/gir-1.0 + gir_DATA = $(INTROSPECTION_GIRS) + +-typelibdir = $(prefix)/share/gir-1.0 $(INTROSPECTION_TYPELIBDIR) ++typelibdir = $(libdir)/girepository-1.0 + typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) + + CLEANFILES += $(gir_DATA) $(typelib_DATA) diff --git a/mingw-w64-pidgin-hg/PKGBUILD b/mingw-w64-pidgin-hg/PKGBUILD index cd473d8750..6115aa2adc 100644 --- a/mingw-w64-pidgin-hg/PKGBUILD +++ b/mingw-w64-pidgin-hg/PKGBUILD @@ -4,7 +4,7 @@ _realname=pidgin pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-hg" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r36348.9d62816617b9 +pkgver=r37181.06b74c255e95 pkgrel=1 pkgdesc="Multi-protocol instant messaging client (mingw-w64)" arch=('any') @@ -30,13 +30,15 @@ depends=("${MINGW_PACKAGE_PREFIX}-ca-certificates" "${MINGW_PACKAGE_PREFIX}-nss" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-webkitgtk3" - "${MINGW_PACKAGE_PREFIX}-zlib") + "${MINGW_PACKAGE_PREFIX}-zlib" + "${MINGW_PACKAGE_PREFIX}-gplugin") options=(!libtool strip staticlibs) source=(${_realname}::"hg+https://hg.pidgin.im/pidgin/main" #"http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2" - ) -md5sums=('SKIP') + 001-win.patch) +md5sums=('SKIP' + '5c2e4ea9f3c58476f96b1d855c8ea710') pkgver() { cd "$_realname" @@ -45,6 +47,9 @@ pkgver() { prepare() { cd ${_realname} + + patch -b -V simple -p1 -i ${srcdir}/001-win.patch + NOCONFIGURE=1 ./autogen.sh } @@ -62,11 +67,9 @@ build() { --disable-screensaver \ --disable-sm \ --disable-nm \ - --disable-vv \ - --disable-tcl \ --with-python=${MINGW_PREFIX}/bin/python2 \ --with-system-ssl-certs=${MINGW_PREFIX}/ssl/certs \ - --with-win32-dirs=fhs + --with-win32-dirs=fhs \ #--enable-cyrus-sasl make @@ -75,4 +78,6 @@ build() { package() { cd "${srcdir}/${_realname}" make DESTDIR="${pkgdir}" install + + install -Dm644 "${srcdir}/${_realname}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 930cdc76c95301def1a75aabc566bfbbd72e2b81 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 19 May 2015 11:02:19 +0300 Subject: [PATCH 1023/2060] gcc: Update SJLJ cleanup patch - add libgo part. --- mingw-w64-gcc/400-detect-sjlj-cleanup.patch | 202 +++++++++++++++++++- mingw-w64-gcc/PKGBUILD | 2 +- 2 files changed, 202 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gcc/400-detect-sjlj-cleanup.patch b/mingw-w64-gcc/400-detect-sjlj-cleanup.patch index 78acc11932..5f0d8818d8 100644 --- a/mingw-w64-gcc/400-detect-sjlj-cleanup.patch +++ b/mingw-w64-gcc/400-detect-sjlj-cleanup.patch @@ -33,6 +33,10 @@ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223181 138bc75d-0d04-0410-961f-8 libgcc/config.in | 3 - libgcc/configure | 84 +++++----------- libgcc/configure.ac | 62 ++---------- + libgo/config.h.in | 3 --- + libgo/configure | 69 ++--------------------------------------------- + libgo/configure.ac | 50 ---------------------------------- + libgo/runtime/go-unwind.c | 2 +- libjava/ChangeLog | 11 +++ libjava/configure.ac | 59 ++--------- libjava/exception.cc | 8 +- @@ -57,7 +61,7 @@ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223181 138bc75d-0d04-0410-961f-8 libstdc++-v3/libsupc++/eh_personality.cc | 12 +-- libstdc++-v3/libsupc++/eh_ptr.cc | 2 +- libstdc++-v3/libsupc++/eh_throw.cc | 4 +- - 31 files changed, 140 insertions(+), 531 deletions(-) + 35 files changed, 143 insertions(+), 652 deletions(-) create mode 100644 config/sjlj.m4 diff --git a/config/sjlj.m4 b/config/sjlj.m4 @@ -391,6 +395,202 @@ index 48fd5b9..dfabd80 100644 fi force_explicit_eh_registry=-DUSE_EH_FRAME_REGISTRY_ALWAYS fi +diff --git a/libgo/config.h.in b/libgo/config.h.in +index 629c603..298b8d6 100644 +--- a/libgo/config.h.in ++++ b/libgo/config.h.in +@@ -337,9 +337,6 @@ + /* Define to 1 if you have the `wait4' function. */ + #undef HAVE_WAIT4 + +-/* Define if the C++ compiler is configured for setjmp/longjmp exceptions. */ +-#undef LIBGO_SJLJ_EXCEPTIONS +- + /* Define if the linker support split stack adjustments */ + #undef LINKER_SUPPORTS_SPLIT_STACK + +diff --git a/libgo/configure b/libgo/configure +index 377179d..03d4e15 100755 +--- a/libgo/configure ++++ b/libgo/configure +@@ -828,7 +828,6 @@ enable_version_specific_runtime_libs + with_libffi + with_libatomic + with_system_libunwind +-enable_sjlj_exceptions + ' + ac_precious_vars='build_alias + host_alias +@@ -1469,8 +1468,6 @@ Optional Features: + --enable-version-specific-runtime-libs + Specify that runtime libraries should be installed + in a compiler-specific directory +- --enable-sjlj-exceptions +- force use of builtin_setjmp for exceptions + + Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] +@@ -11121,7 +11118,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11124 "configure" ++#line 11121 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11227,7 +11224,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11230 "configure" ++#line 11227 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -14667,68 +14664,6 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h + fi + + +-# Check whether --enable-sjlj-exceptions was given. +-if test "${enable_sjlj_exceptions+set}" = set; then : +- enableval=$enable_sjlj_exceptions; case "$enableval" in +- yes|no|auto) ;; +- *) as_fn_error "unknown argument to --enable-sjlj-exceptions" "$LINENO" 5 ;; +- esac +-else +- enable_sjlj_exceptions=auto +-fi +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use setjmp/longjmp exceptions" >&5 +-$as_echo_n "checking whether to use setjmp/longjmp exceptions... " >&6; } +-if test "${libgo_cv_lib_sjlj_exceptions+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-void bar (); +-void clean (int *); +-void foo () +-{ +- int i __attribute__ ((cleanup (clean))); +- bar(); +-} +- +-_ACEOF +-CFLAGS_hold=$CFLAGS +-CFLAGS="--save-temps -fexceptions" +-libgo_cv_lib_sjlj_exceptions=unknown +-if ac_fn_c_try_compile; then : +- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then +- libgo_cv_lib_sjlj_exceptions=yes +- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1; then +- libgo_cv_lib_sjlj_exceptions=no +- fi +-fi +-CFLAGS=$CFLAGS_hold +-rm -f conftest* +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgo_cv_lib_sjlj_exceptions" >&5 +-$as_echo "$libgo_cv_lib_sjlj_exceptions" >&6; } +- +-if test "$enable_sjlj_exceptions" = "auto"; then +- enable_sjlj_exceptions=$libgo_cv_lib_sjlj_exceptions +-fi +- +-case $enable_sjlj_exceptions in +-yes) +- +-$as_echo "#define LIBGO_SJLJ_EXCEPTIONS 1" >>confdefs.h +- +- ;; +-no) +- ;; +-*) +- as_fn_error "unable to detect exception model" "$LINENO" 5 +- ;; +-esac +- + for ac_header in sched.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/reboot.h netinet/icmp6.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h + do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +diff --git a/libgo/configure.ac b/libgo/configure.ac +index 0baff41..7c403a5 100644 +--- a/libgo/configure.ac ++++ b/libgo/configure.ac +@@ -473,56 +473,6 @@ AC_C_BIGENDIAN + + GCC_CHECK_UNWIND_GETIPINFO + +-AC_ARG_ENABLE(sjlj-exceptions, +- AC_HELP_STRING([--enable-sjlj-exceptions], +- [force use of builtin_setjmp for exceptions]), +- [case "$enableval" in +- yes|no|auto) ;; +- *) AC_MSG_ERROR([unknown argument to --enable-sjlj-exceptions]) ;; +- esac], +- [enable_sjlj_exceptions=auto]) +- +-AC_CACHE_CHECK([whether to use setjmp/longjmp exceptions], +-[libgo_cv_lib_sjlj_exceptions], +-[AC_LANG_CONFTEST( +- [AC_LANG_SOURCE([ +-void bar (); +-void clean (int *); +-void foo () +-{ +- int i __attribute__ ((cleanup (clean))); +- bar(); +-} +-])]) +-CFLAGS_hold=$CFLAGS +-CFLAGS="--save-temps -fexceptions" +-libgo_cv_lib_sjlj_exceptions=unknown +-AS_IF([ac_fn_c_try_compile], +- [if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then +- libgo_cv_lib_sjlj_exceptions=yes +- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1; then +- libgo_cv_lib_sjlj_exceptions=no +- fi]) +-CFLAGS=$CFLAGS_hold +-rm -f conftest* +-]) +- +-if test "$enable_sjlj_exceptions" = "auto"; then +- enable_sjlj_exceptions=$libgo_cv_lib_sjlj_exceptions +-fi +- +-case $enable_sjlj_exceptions in +-yes) +- AC_DEFINE(LIBGO_SJLJ_EXCEPTIONS, 1, +- [Define if the C++ compiler is configured for setjmp/longjmp exceptions.]) +- ;; +-no) +- ;; +-*) +- AC_MSG_ERROR([unable to detect exception model]) +- ;; +-esac +- + AC_CHECK_HEADERS(sched.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/reboot.h netinet/icmp6.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h) + + AC_CHECK_HEADERS([linux/filter.h linux/if_addr.h linux/if_ether.h linux/if_tun.h linux/netlink.h linux/rtnetlink.h], [], [], +diff --git a/libgo/runtime/go-unwind.c b/libgo/runtime/go-unwind.c +index 849256b..87d9eb3 100644 +--- a/libgo/runtime/go-unwind.c ++++ b/libgo/runtime/go-unwind.c +@@ -141,7 +141,7 @@ __go_check_defer (_Bool *frame) + + hdr = (struct _Unwind_Exception *) g->exception; + +-#ifdef LIBGO_SJLJ_EXCEPTIONS ++#ifdef __USING_SJLJ_EXCEPTIONS__ + _Unwind_SjLj_Resume_or_Rethrow (hdr); + #else + #if defined(_LIBUNWIND_STD_ABI) diff --git a/libjava/configure.ac b/libjava/configure.ac index 01c436d..00bbd36 100644 --- a/libjava/configure.ac diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 6fa80de209..960fd5a88a 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -67,7 +67,7 @@ md5sums=('d5525b1127d07d215960e6051c5da35e' '09bdad41515c8d353612f30c91b3bac2' '0a78aaac959e212acb24bb38271804cb' '4a6e2e0f6424abf37e830d7f37fd3351' - 'b4e3c343050c74b4b01b4a1af79a7154' + '91cb14ef19c312b2575606b6f1cb1bfa' '4bae081d5820405b3800b7a881bf166d' '27d5611996e209ba6f6a55ab417386e4' '5201bee23601ddfacde436461559f561' From 4aff0a138671a15cc53a50704b9c7de7411f9a9e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 19 May 2015 11:06:38 +0300 Subject: [PATCH 1024/2060] libmicrohttpd: New package. --- mingw-w64-libmicrohttpd/PKGBUILD | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 mingw-w64-libmicrohttpd/PKGBUILD diff --git a/mingw-w64-libmicrohttpd/PKGBUILD b/mingw-w64-libmicrohttpd/PKGBUILD new file mode 100644 index 0000000000..5541971f76 --- /dev/null +++ b/mingw-w64-libmicrohttpd/PKGBUILD @@ -0,0 +1,39 @@ +# Maintainer: Alexey Pavlov +# Contributor: Nicolas Bats + +_realname=libmicrohttpd +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.9.42 +pkgrel=1 +pkgdesc="GNU libmicrohttpd is a small C library that is supposed to make it easy to run an HTTP server as part of another application (mingw-w64)" +arch=('any') +url=http://www.gnu.org/software/libmicrohttpd/ +license=("LGPL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-libtool" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-libgcrypt") +source=("http://ftp.gnu.org/gnu/libmicrohttpd/${_realname}-${pkgver}.tar.gz") +md5sums=('3b9cf0b67fc8ebc9e69f53c6bc84a88d') + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE +} From 8a5d611717e58b4f7ebbc73887e98b9d0b99a49b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 19 May 2015 11:25:50 +0300 Subject: [PATCH 1025/2060] Format PKGBUILD for gplugin, pidgin-hg --- mingw-w64-gplugin/PKGBUILD | 13 +++++++++---- mingw-w64-pidgin-hg/PKGBUILD | 8 ++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/mingw-w64-gplugin/PKGBUILD b/mingw-w64-gplugin/PKGBUILD index 1c7f5480a3..3b562169e0 100644 --- a/mingw-w64-gplugin/PKGBUILD +++ b/mingw-w64-gplugin/PKGBUILD @@ -11,10 +11,12 @@ url="https://bitbucket.org/rw_grim/gplugin" depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-libxslt") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pkg-config" "gettext") options=('strip' '!debug' 'staticlibs') -source=(https://bitbucket.org/rw_grim/${_realname}/get/v$pkgver.tar.bz2 +source=("${_realname}-${pkgver}.tar.bz2"::https://bitbucket.org/rw_grim/${_realname}/get/v$pkgver.tar.bz2 001-win.patch) sha256sums=('fe0d6e450ff9f63e866bf75344cb561985dccae1e89e4162c20d07d961b71fc9' '583b969c8d67fd303cf219e5a6f475be8f4f535711324966efc57479fe031153') @@ -26,6 +28,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -41,6 +44,7 @@ build() { -DTESTING_ENABLED="Off" \ -G "MSYS Makefiles" \ ../rw_grim-gplugin-9f4dea11d6eb + make } @@ -53,7 +57,8 @@ package() { mv "$pkgdir${MINGW_PREFIX}/lib/libgplugin.dll" "$pkgdir${MINGW_PREFIX}/bin" mv "$pkgdir${MINGW_PREFIX}/lib/libgplugin-gtk.dll" "$pkgdir${MINGW_PREFIX}/bin" - MINGW_PREFIX_W=$(cygpath -m "$pkgdir${MINGW_PREFIX}") - sed -i "s#${MINGW_PREFIX_W}#${MINGW_PREFIX}#g" "$pkgdir"${MINGW_PREFIX}/lib/pkgconfig/gplugin.pc - sed -i "s#${MINGW_PREFIX_W}#${MINGW_PREFIX}#g" "$pkgdir"${MINGW_PREFIX}/lib/pkgconfig/gplugin-gtk.pc + local MINGW_PREFIX_W=$(cygpath -m "${pkgdir}${MINGW_PREFIX}") + sed -e "s#${MINGW_PREFIX_W}#${MINGW_PREFIX}#g" \ + -i "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/gplugin.pc \ + -i "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/gplugin-gtk.pc } diff --git a/mingw-w64-pidgin-hg/PKGBUILD b/mingw-w64-pidgin-hg/PKGBUILD index 6115aa2adc..42b85f3052 100644 --- a/mingw-w64-pidgin-hg/PKGBUILD +++ b/mingw-w64-pidgin-hg/PKGBUILD @@ -15,23 +15,23 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "doxygen" "gtk-doc" "mercurial") -depends=("${MINGW_PACKAGE_PREFIX}-ca-certificates" +depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" + "${MINGW_PACKAGE_PREFIX}-ca-certificates" "${MINGW_PACKAGE_PREFIX}-farstream" "${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-fontconfig" "${MINGW_PACKAGE_PREFIX}-gettext" "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-gplugin" "${MINGW_PACKAGE_PREFIX}-gsasl" "${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-gtkspell" - "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" "${MINGW_PACKAGE_PREFIX}-libgadu" "${MINGW_PACKAGE_PREFIX}-libidn" "${MINGW_PACKAGE_PREFIX}-nss" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-webkitgtk3" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-gplugin") + "${MINGW_PACKAGE_PREFIX}-zlib") options=(!libtool strip staticlibs) source=(${_realname}::"hg+https://hg.pidgin.im/pidgin/main" From c52cc0413a2fdce21c621a58af99c6059b1365df Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 19 May 2015 11:32:59 +0300 Subject: [PATCH 1026/2060] openscenegraph: Update to 3.3.7 --- mingw-w64-openscenegraph/PKGBUILD | 9 +++++---- mingw-w64-openscenegraph/fix-cast-error.patch | 11 +++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-openscenegraph/fix-cast-error.patch diff --git a/mingw-w64-openscenegraph/PKGBUILD b/mingw-w64-openscenegraph/PKGBUILD index de1f4ceb25..4809c0e7f4 100644 --- a/mingw-w64-openscenegraph/PKGBUILD +++ b/mingw-w64-openscenegraph/PKGBUILD @@ -2,7 +2,7 @@ _realname=OpenSceneGraph pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -_pkgver=3.3.6 +_pkgver=3.3.7 pkgver=${_pkgver//-/} pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" @@ -40,18 +40,19 @@ source=(http://www.openscenegraph.org/downloads/developer_releases/${_realname}- find-collada.patch find-freetype.patch additional-gl-header.patch - giflib.patch) -md5sums=('ef6f5d0a350b3e2237f7155614b92eeb' + fix-cast-error.patch) +md5sums=('615142df4c0f4c5ed255126dd6f46398' '18ce956c1889babc6515828b8200e864' '9ab69e1cd26826196fac5b3f01e6cb95' 'e889e10100a1f3e07212c01603712594' - '849f641c915f17db85a49b355bf63a17') + '5599204490bf9f03cdd5871b938e3338') prepare() { cd "${srcdir}/${_realname}-${_pkgver}" patch -p1 -i ${srcdir}/find-collada.patch patch -p1 -i ${srcdir}/find-freetype.patch patch -p1 -i ${srcdir}/additional-gl-header.patch + patch -p1 -i ${srcdir}/fix-cast-error.patch } build() { diff --git a/mingw-w64-openscenegraph/fix-cast-error.patch b/mingw-w64-openscenegraph/fix-cast-error.patch new file mode 100644 index 0000000000..1f8dd88886 --- /dev/null +++ b/mingw-w64-openscenegraph/fix-cast-error.patch @@ -0,0 +1,11 @@ +--- OpenSceneGraph/src/osgPlugins/osgjs/WriteVisitor.cpp.orig 2015-05-08 12:19:06.415757900 +0300 ++++ OpenSceneGraph/src/osgPlugins/osgjs/WriteVisitor.cpp 2015-05-08 12:19:00.109388600 +0300 +@@ -225,7 +225,7 @@ + // no image file so use this inline name image and create a file + std::stringstream ss; + ss << osgDB::getFilePath(baseName) << osgDB::getNativePathSeparator(); +- ss << (long int)image << ".inline_conv_generated.png"; // write the pointer location ++ ss << (intptr_t)image << ".inline_conv_generated.png"; // write the pointer location + std::string filename = ss.str(); + if (osgDB::writeImageFile(*image, filename)) { + image->setFileName(filename); From a5febf4840ee404774223d2e88985681a289bcca Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 19 May 2015 11:33:41 +0300 Subject: [PATCH 1027/2060] openscenegraph-git: Rebuild with poppler-0.33.x --- mingw-w64-openscenegraph-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-openscenegraph-git/PKGBUILD b/mingw-w64-openscenegraph-git/PKGBUILD index 8745c0f78c..3746cdfc6e 100644 --- a/mingw-w64-openscenegraph-git/PKGBUILD +++ b/mingw-w64-openscenegraph-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=OpenSceneGraph pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-git") pkgver=r13212.2705fde -pkgrel=1 +pkgrel=2 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" arch=('any') url="http://www.openscenegraph.org/" From a5aa1bff46a2dfc9984301ac7f1e14ab306b11d6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 19 May 2015 15:36:21 +0300 Subject: [PATCH 1028/2060] gcc: Fix dependencies. --- mingw-w64-gcc/PKGBUILD | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 960fd5a88a..a1a4f297b3 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -1,34 +1,33 @@ -# Maintainer: Alexey Pavlov +# Maintainer: Alexey Pavlov # Contributor: Alexey Borzenkov # Contributor: Ray Donnelly # Contributor: Renato Silva _realname=gcc -pkgname=( - "${MINGW_PACKAGE_PREFIX}-${_realname}" - "${MINGW_PACKAGE_PREFIX}-${_realname}-libs" - "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran" - "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran" - "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" - "${MINGW_PACKAGE_PREFIX}-${_realname}-objc" - ) +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" + "${MINGW_PACKAGE_PREFIX}-${_realname}-libs" + "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran" + "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran" + "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" + "${MINGW_PACKAGE_PREFIX}-${_realname}-objc") pkgver=5.1.0 pkgrel=1 pkgdesc="GCC for the MinGW-w64" arch=('any') url="http://gcc.gnu.org" license=('GPL' 'LGPL' 'FDL' 'custom') -groups=("${MINGW_PACKAGE_PREFIX}-toolchain" "${MINGW_PACKAGE_PREFIX}") +groups=("${MINGW_PACKAGE_PREFIX}-toolchain") depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-ada" "${MINGW_PACKAGE_PREFIX}-binutils" "${MINGW_PACKAGE_PREFIX}-crt" "${MINGW_PACKAGE_PREFIX}-headers" - "${MINGW_PACKAGE_PREFIX}-cloog" + "${MINGW_PACKAGE_PREFIX}-isl" "${MINGW_PACKAGE_PREFIX}-mpc" "${MINGW_PACKAGE_PREFIX}-windows-default-manifest" "${MINGW_PACKAGE_PREFIX}-winpthreads" "${MINGW_PACKAGE_PREFIX}-zlib") -makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" 'lndir') +makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" + "${MINGW_PACKAGE_PREFIX}-libiconv") #checkdepends=('dejagnu') optdepends=() options=('strip' '!debug' 'staticlibs' '!emptydirs') @@ -185,9 +184,8 @@ build() { --enable-libstdcxx-time=yes \ --disable-libstdcxx-pch \ --disable-libstdcxx-debug \ - --enable-cloog-backend=isl \ --enable-version-specific-runtime-libs \ - --disable-cloog-version-check --disable-isl-version-check \ + --disable-isl-version-check \ --enable-lto \ --enable-libgomp \ --disable-multilib \ @@ -199,7 +197,7 @@ build() { --disable-symvers \ --with-libiconv \ --with-system-zlib \ - --with-{gmp,mpfr,mpc,isl,cloog}=${MINGW_PREFIX} \ + --with-{gmp,mpfr,mpc,isl}=${MINGW_PREFIX} \ --with-pkgversion="Rev${pkgrel}, Built by MSYS2 project" \ --with-bugurl="http://sourceforge.net/projects/msys2" \ --with-gnu-as --with-gnu-ld \ From dceb174ae7ed43c743baee4ca23c93b3116bc5de Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 20 May 2015 06:38:29 +0300 Subject: [PATCH 1029/2060] clang/llvm: Update to 3.6.0 --- mingw-w64-clang/PKGBUILD | 146 +++-- .../clang-3.6-allow-dll-attributes0.patch | 79 --- .../clang-3.6-allow-dll-attributes1.patch | 245 -------- .../clang-3.6-allow-dll-attributes2.patch | 98 --- mingw-w64-clang/clang-fabs.patch | 32 - .../clang-mingw-driver-generic.patch | 574 ------------------ mingw-w64-clang/clang-mingw-driver.patch | 36 +- mingw-w64-clang/clang-win64-seh.patch | 136 ----- .../llvm-3.5.0-force-link-pass.o.patch | 28 - 9 files changed, 85 insertions(+), 1289 deletions(-) delete mode 100644 mingw-w64-clang/clang-3.6-allow-dll-attributes0.patch delete mode 100644 mingw-w64-clang/clang-3.6-allow-dll-attributes1.patch delete mode 100644 mingw-w64-clang/clang-3.6-allow-dll-attributes2.patch delete mode 100644 mingw-w64-clang/clang-fabs.patch delete mode 100644 mingw-w64-clang/clang-mingw-driver-generic.patch delete mode 100644 mingw-w64-clang/clang-win64-seh.patch delete mode 100644 mingw-w64-clang/llvm-3.5.0-force-link-pass.o.patch diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index ebd37e7630..6025e350f8 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -7,7 +7,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" #"${MINGW_PACKAGE_PREFIX}-compiler-rt" ) -pkgver=3.5.1 +pkgver=3.6.0 pkgrel=1 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') @@ -22,54 +22,47 @@ options=('staticlibs' 'strip') source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz{,.sig} http://llvm.org/releases/$pkgver/cfe-$pkgver.src.tar.xz{,.sig} http://llvm.org/releases/$pkgver/compiler-rt-$pkgver.src.tar.xz{,.sig} - #http://llvm.org/releases/$pkgver/test-suite-$pkgver.src.tar.xz{,.sig} - #http://llvm.org/releases/$pkgver/libcxx-$pkgver.src.tar.xz{,.sig} + http://llvm.org/releases/$pkgver/test-suite-$pkgver.src.tar.xz{,.sig} + http://llvm.org/releases/$pkgver/libcxx-$pkgver.src.tar.xz{,.sig} http://llvm.org/releases/$pkgver/clang-tools-extra-$pkgver.src.tar.xz{,.sig} - #http://llvm.org/releases/$pkgver/lldb-$pkgver.src.tar.xz{,.sig} - clang-fabs.patch - clang-win64-seh.patch + http://llvm.org/releases/$pkgver/lldb-$pkgver.src.tar.xz{,.sig} clang-mingw-driver.patch - llvm-3.5.0-force-link-pass.o.patch - llvm-3.5.0-fix-cmake-llvm-exports.patch - clang-3.6-allow-dll-attributes0.patch - clang-3.6-allow-dll-attributes1.patch - clang-3.6-allow-dll-attributes2.patch) -sha256sums=('bf3275d2d7890015c8d8f5e6f4f882f8cf3bf51967297ebe74111d6d8b53be15' + llvm-3.5.0-fix-cmake-llvm-exports.patch) +sha256sums=('b39a69e501b49e8f73ff75c9ad72313681ee58d6f430bfad4d81846fe92eb9ce' 'SKIP' - '6773f3f9cf815631cc7e779ec134ddd228dc8e9a250e1ea3a910610c59eb8f5c' + 'be0e69378119fe26f0f2f74cffe82b7c26da840c9733fe522ed3c1b66b11082d' 'SKIP' - 'adf4b526f33e681aff5961f0821f5b514d3fc375410008842640b56a2e6a837a' + '7f49fb79e5adcdce7dddaf973f1db130228dfb19e37a99a7f5365a6948b26b11' 'SKIP' - 'e8d011250389cfc36eb51557ca25ae66ab08173e8d53536a0747356105d72906' + 'bca87e92d51fa831b0d3cc713edad89db1e1076fada122efd15f8b9de7ad0011' 'SKIP' - '614a076dc65b400910b190f4e3d26fdebd20885cfd482f7f8464469808e3beac' - '6e1168e5c9cba875ef7e87ccfd3060c3a0db6b5e2c3f1fa9fdb4d0eaea465025' - '2f49bba3acb0e45b0c3374537f2f9036891013c751930437c80472d8d8d8e2a7' - '5702053503d49448598eda1b8dc8c263f0df9ad7486833273e3987b5dec25a19' - '841a153d0e9d2d196ea5318388ff295e69c41547eb73b24edf92a1b2cc3cccdd' - 'ff1786aa38a9c728e32d25e1c5e61af55aa0ebbde99720197052a5e72c22ce10' - 'bf0382de4d03b911a4016ec39df66795ba9f26cdf7fb0542dcb0befd9f713382' - '01cd407e1d2df64bcdb0ec444c86fee19ab262e21b1108b60a66ab954a4cb712') + '299c1e82b0086a79c5c1aa1885ea3be3bbce6979aaa9b886409b14f9b387fbb7' + 'SKIP' + '3aa949ba82913490a75697287d9ee8598c619fae0aa6bb8fddf0095ff51bc812' + 'SKIP' + '2b1ad1d42c4ea3fa2f9dd6db7c522d86e80891659b24dbb3d0d80386d8eaf0b2' + 'SKIP' + '7c9366df58b27378c104d37466caa761873440e5fbee707d3d22693add5d2cdb' + '841a153d0e9d2d196ea5318388ff295e69c41547eb73b24edf92a1b2cc3cccdd') -noextract=(cfe-$pkgver.src.tar.xz) +validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') +noextract=(cfe-${pkgver}.src.tar.xz + libcxx-$pkgver.src.tar.xz + lldb-$pkgver.src.tar.xz + test-suite-$pkgver.src.tar.xz) prepare() { - plain "Extracting clang-$pkgver.src.tar.xz due to symlink(s) without pre-existing target(s)" - [ -d $srcdir/cfe-$pkgver ] && rm -rf $srcdir/cfe-$pkgver - [ -d $srcdir/cfe-$pkgver ] || tar -xJvf $startdir/cfe-$pkgver.src.tar.xz -C $srcdir || true + plain "Extracting clang-${pkgver}.src.tar.xz due to symlink(s) without pre-existing target(s)" + [[ -d ${srcdir}/cfe-${pkgver} ]] && rm -rf ${srcdir}/cfe-${pkgver} + [[ -d ${srcdir}/cfe-${pkgver} ]] || tar -xJvf ${srcdir}/cfe-${pkgver}.src.tar.xz -C ${srcdir} || true - cd "$srcdir/llvm-$pkgver.src" - # Fix build with GCC 4.9 (patch from Debian) - # http://llvm.org/bugs/show_bug.cgi?id=20067 - patch -p1 -i "$srcdir/llvm-3.5.0-force-link-pass.o.patch" + cd "${srcdir}/llvm-${pkgver}.src" - cd "$srcdir/cfe-$pkgver.src" - patch -p1 -i ${srcdir}/clang-fabs.patch - patch -p1 -i ${srcdir}/clang-win64-seh.patch + cd "${srcdir}/cfe-${pkgver}.src" patch -p1 -i ${srcdir}/clang-mingw-driver.patch - mv "$srcdir/llvm-$pkgver.src" "$srcdir/llvm-$pkgver" - cd "$srcdir/llvm-$pkgver" + mv "${srcdir}/llvm-${pkgver}.src" "$srcdir/llvm-${pkgver}" + cd "${srcdir}/llvm-${pkgver}" # Fix docs installation directory sed -i 's:$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \ @@ -81,27 +74,27 @@ prepare() { # At the present, clang must reside inside the LLVM source code tree to build # See http://llvm.org/bugs/show_bug.cgi?id=4840 - [ -d tools/clang ] && rm -rf tools/clang - mv "$srcdir/cfe-$pkgver.src" tools/clang + [[ -d tools/clang ]] && rm -rf tools/clang + mv "${srcdir}/cfe-${pkgver}.src" tools/clang - [ -d projects/compiler-rt ] && rm -rf projects/compiler-rt - mv "$srcdir/compiler-rt-$pkgver.src" projects/compiler-rt + [[ -d projects/compiler-rt ]] && rm -rf projects/compiler-rt + mv "${srcdir}/compiler-rt-${pkgver}.src" projects/compiler-rt # [ -d projects/test-suite ] && rm -rf projects/test-suite - # mv "$srcdir/test-suite-$pkgver.src" projects/test-suite + # mv "${srcdir}/test-suite-${pkgver}.src" projects/test-suite - [ -d tools/clang/tools/extra ] && rm -rf tools/clang/tools/extra - mv "$srcdir/clang-tools-extra-$pkgver.src" tools/clang/tools/extra + [[ -d tools/clang/tools/extra ]] && rm -rf tools/clang/tools/extra + mv "${srcdir}/clang-tools-extra-${pkgver}.src" tools/clang/tools/extra #[ -d tools/lldb ] && rm -rf tools/lldb - #mv "$srcdir/lldb-$pkgver.src" tools/lldb + #mv "${srcdir}/lldb-${pkgver}.src" tools/lldb #sed -i -e "s|python-config|python2-config|" tools/lldb/lib/Makefile #sed -i -e "s|python-config|python2-config|" tools/lldb/Makefile #sed -i -e "s|/usr/bin/env python|&2|" tools/lldb/scripts/Python/build-swig-Python.sh #sed -i -e "s|/usr/bin/env python|&2|" tools/lldb/scripts/Python/finish-swig-Python-LLDB.sh - #[ -d projects/libcxx-$pkgver ] && rm -rf projects/libcxx - #mv "$srcdir/libcxx-$pkgver.src" projects/libcxx + #[ -d projects/libcxx-${pkgver} ] && rm -rf projects/libcxx + #mv "${srcdir}/libcxx-${pkgver}.src" projects/libcxx } @@ -114,7 +107,7 @@ build() { # Include location of libffi headers in CPPFLAGS CPPFLAGS+=" $(pkg-config --cflags libffi)" - ../llvm-$pkgver/configure \ + ../llvm-${pkgver}/configure \ -C \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -124,14 +117,15 @@ build() { --enable-optimized \ --disable-assertions \ --disable-pthreads \ + --disable-bindings \ --with-python=/usr/bin/python2 \ --enable-libffi \ --enable-docs make - make -C ../llvm-$pkgver/docs -f Makefile.sphinx man - make -C ../llvm-$pkgver/docs -f Makefile.sphinx html - make -C ../llvm-$pkgver/tools/clang/docs -f Makefile.sphinx html + make -C ../llvm-${pkgver}/docs -f Makefile.sphinx man + make -C ../llvm-${pkgver}/docs -f Makefile.sphinx html + make -C ../llvm-${pkgver}/tools/clang/docs -f Makefile.sphinx html setup } @@ -143,18 +137,18 @@ check() { setup() { local destdir=${srcdir}/dest - [[ -d $destdir ]] && rm -rf ${destdir} + [[ -d ${destdir} ]] && rm -rf ${destdir} mkdir -p ${destdir} # CLANG-TOOLS-EXTRA cd "$srcdir/build-${MINGW_CHOST}/tools/clang/tools/extra" make DESTDIR="$destdir/clang-tools-extra" install # Fix permissions of static libs - chmod -x $destdir/clang-tools-extra${MINGW_PREFIX}/lib/*.a - install -Dm644 ${srcdir}/llvm-$pkgver/tools/clang/tools/extra/LICENSE.TXT "$destdir/clang-tools-extra${MINGW_PREFIX}/share/licenses/clang-tools-extra/LICENSE" + chmod -x ${destdir}/clang-tools-extra${MINGW_PREFIX}/lib/*.a + install -Dm644 ${srcdir}/llvm-${pkgver}/tools/clang/tools/extra/LICENSE.TXT "$destdir/clang-tools-extra${MINGW_PREFIX}/share/licenses/clang-tools-extra/LICENSE" cd ${srcdir} mv ${srcdir}/build-${MINGW_CHOST}/tools/clang/tools/extra ${srcdir}/clang-tools-extra-${MINGW_CHOST} - mv ${srcdir}/llvm-$pkgver/tools/clang/tools/extra ${srcdir}/clang-tools-extra-${pkgver} + mv ${srcdir}/llvm-${pkgver}/tools/clang/tools/extra ${srcdir}/clang-tools-extra-${pkgver} # CLANG cd "$srcdir/build-${MINGW_CHOST}/tools/clang" @@ -164,14 +158,14 @@ setup() { # Install html docs install -d "${destdir}"/clang${MINGW_PREFIX}/share/doc/clang/html - cp -rf $srcdir/llvm-$pkgver/tools/clang/docs/_build/html/* "${destdir}"/clang${MINGW_PREFIX}/share/doc/clang/html/ + cp -rf ${srcdir}/llvm-${pkgver}/tools/clang/docs/_build/html/* "${destdir}"/clang${MINGW_PREFIX}/share/doc/clang/html/ rm -r "${destdir}"/clang${MINGW_PREFIX}/share/doc/clang/html/_sources # CLANG-ANAYLYSER install -d ${destdir}/clang-analyzer${MINGW_PREFIX}/{bin,lib/clang-analyzer} for _tool in scan-{build,view}; do - cp -r $srcdir/llvm-$pkgver/tools/clang/tools/$_tool ${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer/ - ln -s ${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer/$_tool/$_tool ${destdir}/clang-analyzer${MINGW_PREFIX}/bin/ + cp -r ${srcdir}/llvm-${pkgver}/tools/clang/tools/${_tool} ${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer/ + ln -s ${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer/${_tool}/${_tool} ${destdir}/clang-analyzer${MINGW_PREFIX}/bin/ done # scan-build looks for clang within the same directory @@ -186,50 +180,50 @@ setup() { # Compile Python scripts python2 -m compileall "${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer" python2 -O -m compileall "${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer" - install -Dm644 $srcdir/llvm-$pkgver/tools/clang/LICENSE.TXT "${destdir}/clang-analyzer${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE" + install -Dm644 ${srcdir}/llvm-${pkgver}/tools/clang/LICENSE.TXT "${destdir}/clang-analyzer${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE" # LLVM cd ${srcdir} # Move clang out of the way *before* installing llvm, both src and build. We'll put build back afterwards to allow re-packaging. # but the src move is undoing what prepare() did. - mv "$srcdir/build-${MINGW_CHOST}/tools/clang" "$srcdir/clang-${MINGW_CHOST}" - mv "$srcdir/llvm-$pkgver/tools/clang" "$srcdir/clang-$pkgver" # Put src back where it was (clang) + mv "$srcdir/build-${MINGW_CHOST}/tools/clang" "${srcdir}/clang-${MINGW_CHOST}" + mv "$srcdir/llvm-${pkgver}/tools/clang" "${srcdir}/clang-${pkgver}" # Put src back where it was (clang) cd "$srcdir/build-${MINGW_CHOST}" - make -j1 DESTDIR="$destdir/llvm" install + make -j1 DESTDIR="${destdir}/llvm" install # Install man pages install -d "${destdir}"/llvm${MINGW_PREFIX}/share/man/man1 - cp $srcdir/llvm-$pkgver/docs/_build/man/*.1 "${destdir}"/llvm${MINGW_PREFIX}/share/man/man1/ + cp ${srcdir}/llvm-${pkgver}/docs/_build/man/*.1 "${destdir}"/llvm${MINGW_PREFIX}/share/man/man1/ # Install html docs install -d "${destdir}"/llvm${MINGW_PREFIX}/share/doc/llvm/html - cp -rf $srcdir/llvm-$pkgver/docs/_build/html/* "${destdir}"/llvm${MINGW_PREFIX}/share/doc/llvm/html/ + cp -rf ${srcdir}/llvm-${pkgver}/docs/_build/html/* "${destdir}"/llvm${MINGW_PREFIX}/share/doc/llvm/html/ rm -r "${destdir}"/llvm${MINGW_PREFIX}/share/doc/llvm/html/_sources # Install CMake stuff install -d "${destdir}"/llvm${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} - install -Dm644 $srcdir/llvm-$pkgver/cmake/modules/*.cmake "${destdir}"/llvm${MINGW_PREFIX}/share/llvm/cmake/modules/ - install -Dm644 $srcdir/llvm-$pkgver/cmake/platforms/*.cmake "${destdir}"/llvm${MINGW_PREFIX}/share/llvm/cmake/platforms/ + install -Dm644 ${srcdir}/llvm-${pkgver}/cmake/modules/*.cmake "${destdir}"/llvm${MINGW_PREFIX}/share/llvm/cmake/modules/ + install -Dm644 ${srcdir}/llvm-${pkgver}/cmake/platforms/*.cmake "${destdir}"/llvm${MINGW_PREFIX}/share/llvm/cmake/platforms/ # Move all back mv "${srcdir}/clang-${MINGW_CHOST}" "${srcdir}/build-${MINGW_CHOST}/tools/clang" - mv "${srcdir}/clang-$pkgver" "${srcdir}/llvm-$pkgver/tools/clang" + mv "${srcdir}/clang-${pkgver}" "${srcdir}/llvm-${pkgver}/tools/clang" mv "${srcdir}/clang-tools-extra-${MINGW_CHOST}" "${srcdir}/build-${MINGW_CHOST}/tools/clang/tools/extra" - mv "${srcdir}/clang-tools-extra-${pkgver}" "${srcdir}/llvm-$pkgver/tools/clang/tools/extra" + mv "${srcdir}/clang-tools-extra-${pkgver}" "${srcdir}/llvm-${pkgver}/tools/clang/tools/extra" # Undo more prepare() moves. - #mv "${srcdir}/llvm-$pkgver/projects/compiler-rt" "${srcdir}/compiler-rt-$pkgver.src" # Put src back where it was (the rest) - #mv "${srcdir}/llvm-$pkgver/projects/test-suite" "${srcdir}/test-suite-$pkgver.src" - #mv "${srcdir}/llvm-$pkgver/projects/libcxx" "${srcdir}/libcxx-$pkgver.src" - #mv "${srcdir}/llvm-$pkgver/tools/clang/tools/extra" "${srcdir}/clang-tools-extra-${pkgver}.src" - #mv "${srcdir}/llvm-$pkgver/tools/clang" "${srcdir}/clang-$pkgver.src" + #mv "${srcdir}/llvm-${pkgver}/projects/compiler-rt" "${srcdir}/compiler-rt-${pkgver}.src" # Put src back where it was (the rest) + #mv "${srcdir}/llvm-${pkgver}/projects/test-suite" "${srcdir}/test-suite-${pkgver}.src" + #mv "${srcdir}/llvm-${pkgver}/projects/libcxx" "${srcdir}/libcxx-${pkgver}.src" + #mv "${srcdir}/llvm-${pkgver}/tools/clang/tools/extra" "${srcdir}/clang-tools-extra-${pkgver}.src" + #mv "${srcdir}/llvm-${pkgver}/tools/clang" "${srcdir}/clang-${pkgver}.src" } package_clang(){ pkgdesc="C language family frontend for LLVM" depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") - mv $srcdir/dest/clang/* $pkgdir + mv ${srcdir}/dest/clang/* ${pkgdir} } # package_compiler-rt(){ @@ -241,7 +235,7 @@ package_llvm(){ depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "${MINGW_PACKAGE_PREFIX}-compiler-rt" install=llvm-${CARCH}.install - mv $srcdir/dest/llvm/* $pkgdir + mv ${srcdir}/dest/llvm/* ${pkgdir} } package_clang-analyzer() { @@ -249,7 +243,7 @@ package_clang-analyzer() { url="http://clang-analyzer.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}" "${MINGW_PACKAGE_PREFIX}-python2") - mv $srcdir/dest/clang-analyzer/* $pkgdir + mv ${srcdir}/dest/clang-analyzer/* ${pkgdir} } package_clang-tools-extra() { @@ -257,7 +251,7 @@ package_clang-tools-extra() { url="http://clang.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}") - mv $srcdir/dest/clang-tools-extra/* $pkgdir + mv ${srcdir}/dest/clang-tools-extra/* ${pkgdir} } package_mingw-w64-i686-clang(){ diff --git a/mingw-w64-clang/clang-3.6-allow-dll-attributes0.patch b/mingw-w64-clang/clang-3.6-allow-dll-attributes0.patch deleted file mode 100644 index d2167e171c..0000000000 --- a/mingw-w64-clang/clang-3.6-allow-dll-attributes0.patch +++ /dev/null @@ -1,79 +0,0 @@ -From b567f63bf385a77f20f3118e9eb28734ba9f7cdd Mon Sep 17 00:00:00 2001 -From: Hans Wennborg -Date: Thu, 31 Jul 2014 19:29:39 +0000 -Subject: [PATCH] Local extern redeclarations of dllimport variables stay - dllimport even if they don't specify the attribute - -git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214425 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - lib/Sema/SemaDecl.cpp | 5 +++-- - test/CodeGen/dllimport.c | 8 ++++++++ - test/Sema/dllimport.c | 4 ++++ - 3 files changed, 15 insertions(+), 2 deletions(-) - -diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp -index 4abbbeb..d24cf6a 100644 ---- a/lib/Sema/SemaDecl.cpp -+++ b/lib/Sema/SemaDecl.cpp -@@ -5047,7 +5047,7 @@ static void checkDLLAttributeRedeclaration(Sema &S, NamedDecl *OldDecl, - } - - // A redeclaration is not allowed to drop a dllimport attribute, the only -- // exception being inline function definitions. -+ // exceptions being inline function definitions and local extern declarations. - // NB: MSVC converts such a declaration to dllexport. - bool IsInline = false, IsStaticDataMember = false; - if (const auto *VD = dyn_cast(NewDecl)) -@@ -5057,7 +5057,8 @@ static void checkDLLAttributeRedeclaration(Sema &S, NamedDecl *OldDecl, - else if (const auto *FD = dyn_cast(NewDecl)) - IsInline = FD->isInlined(); - -- if (OldImportAttr && !HasNewAttr && !IsInline && !IsStaticDataMember) { -+ if (OldImportAttr && !HasNewAttr && !IsInline && !IsStaticDataMember && -+ !NewDecl->isLocalExternDecl()) { - S.Diag(NewDecl->getLocation(), - diag::warn_redeclaration_without_attribute_prev_attribute_ignored) - << NewDecl << OldImportAttr; -diff --git a/test/CodeGen/dllimport.c b/test/CodeGen/dllimport.c -index 32ee81f..6ed60ea 100644 ---- a/test/CodeGen/dllimport.c -+++ b/test/CodeGen/dllimport.c -@@ -44,6 +44,14 @@ __declspec(dllimport) extern int GlobalRedecl3; - extern int GlobalRedecl3; // dllimport ignored - USEVAR(GlobalRedecl3) - -+// Redeclaration in local context. -+// CHECK: @GlobalRedecl4 = external dllimport global i32 -+__declspec(dllimport) int GlobalRedecl4; -+int functionScope() { -+ extern int GlobalRedecl4; // still dllimport -+ return GlobalRedecl4; -+} -+ - - - //===----------------------------------------------------------------------===// -diff --git a/test/Sema/dllimport.c b/test/Sema/dllimport.c -index 2702453..30ea4f3 100644 ---- a/test/Sema/dllimport.c -+++ b/test/Sema/dllimport.c -@@ -74,6 +74,7 @@ __declspec(dllimport) static int StaticGlobal; // expected-error{{'StaticGlobal' - __declspec(dllimport) float LocalRedecl1; // expected-note{{previous definition is here}} - __declspec(dllimport) float LocalRedecl2; // expected-note{{previous definition is here}} - __declspec(dllimport) float LocalRedecl3; // expected-note{{previous definition is here}} -+__declspec(dllimport) float LocalRedecl4; - void functionScope() { - __declspec(dllimport) int LocalRedecl1; // expected-error{{redefinition of 'LocalRedecl1' with a different type: 'int' vs 'float'}} - int *__attribute__((dllimport)) LocalRedecl2; // expected-error{{redefinition of 'LocalRedecl2' with a different type: 'int *' vs 'float'}} -@@ -84,6 +85,9 @@ void functionScope() { - __declspec(dllimport) extern int ExternLocalVarDecl; - __declspec(dllimport) extern int ExternLocalVarDef = 1; // expected-error{{definition of dllimport data}} - __declspec(dllimport) static int StaticLocalVar; // expected-error{{'StaticLocalVar' must have external linkage when declared 'dllimport'}} -+ -+ // Local extern redeclaration does not drop the attribute. -+ extern float LocalRedecl4; - } - - --- -2.0.3 \ No newline at end of file diff --git a/mingw-w64-clang/clang-3.6-allow-dll-attributes1.patch b/mingw-w64-clang/clang-3.6-allow-dll-attributes1.patch deleted file mode 100644 index ee3a80afa9..0000000000 --- a/mingw-w64-clang/clang-3.6-allow-dll-attributes1.patch +++ /dev/null @@ -1,245 +0,0 @@ -From eaf4ee9a6f888acbe933ab41d32bfa4bd2f1feb0 Mon Sep 17 00:00:00 2001 -From: Hans Wennborg -Date: Wed, 27 Aug 2014 21:27:40 +0000 -Subject: [PATCH] Allow adding dll attributes on certain redecls with a warning - if the decl hasn't been used yet (PR20746) - -This shouldn't really be allowed, but it comes up in real code (see PR). As -long as the decl hasn't been used there's no technical difficulty in supporting -it, so downgrade the error to a warning. - -Differential Revision: http://reviews.llvm.org/D5087 - -git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216619 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - include/clang/Basic/DiagnosticSemaKinds.td | 3 +++ - lib/Sema/SemaDecl.cpp | 29 +++++++++++++++++++++++------ - test/Sema/dllexport.c | 12 ++++++++++++ - test/Sema/dllimport.c | 21 +++++++++++++++++---- - test/SemaCXX/dllexport.cpp | 10 +++++----- - test/SemaCXX/dllimport.cpp | 10 +++++----- - 6 files changed, 65 insertions(+), 20 deletions(-) - -diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td -index 077345f..6f96e3a 100644 ---- a/include/clang/Basic/DiagnosticSemaKinds.td -+++ b/include/clang/Basic/DiagnosticSemaKinds.td -@@ -2133,6 +2133,9 @@ def warn_attribute_invalid_on_definition : Warning< - InGroup; - def err_attribute_dll_redeclaration : Error< - "redeclaration of %q0 cannot add %q1 attribute">; -+def warn_attribute_dll_redeclaration : Warning< -+ "redeclaration of %q0 should not add %q1 attribute">, -+ InGroup>; - def err_attribute_dllimport_function_definition : Error< - "dllimport cannot be applied to non-inline function definition">; - def err_attribute_dll_deleted : Error< -diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp -index e5cf31a..2d2f973 100644 ---- a/lib/Sema/SemaDecl.cpp -+++ b/lib/Sema/SemaDecl.cpp -@@ -5075,7 +5075,7 @@ static void checkDLLAttributeRedeclaration(Sema &S, NamedDecl *OldDecl, - NewDecl = NewTD->getTemplatedDecl(); - - if (!OldDecl || !NewDecl) -- return; -+ return; - - const DLLImportAttr *OldImportAttr = OldDecl->getAttr(); - const DLLExportAttr *OldExportAttr = OldDecl->getAttr(); -@@ -5092,13 +5092,30 @@ static void checkDLLAttributeRedeclaration(Sema &S, NamedDecl *OldDecl, - // Implicitly generated declarations are also excluded for now because there - // is no other way to switch these to use dllimport or dllexport. - bool AddsAttr = !(OldImportAttr || OldExportAttr) && HasNewAttr; -+ - if (AddsAttr && !IsSpecialization && !OldDecl->isImplicit()) { -- S.Diag(NewDecl->getLocation(), diag::err_attribute_dll_redeclaration) -- << NewDecl -- << (NewImportAttr ? (const Attr *)NewImportAttr : NewExportAttr); -+ // If the declaration hasn't been used yet, allow with a warning for -+ // free functions and global variables. -+ bool JustWarn = false; -+ if (!OldDecl->isUsed() && OldDecl->getDeclContext()->isFileContext()) { -+ auto *VD = dyn_cast(OldDecl); -+ if (VD && !VD->getDescribedVarTemplate()) -+ JustWarn = true; -+ auto *FD = dyn_cast(OldDecl); -+ if (FD && FD->getTemplatedKind() == FunctionDecl::TK_NonTemplate) -+ JustWarn = true; -+ } -+ -+ unsigned DiagID = JustWarn ? diag::warn_attribute_dll_redeclaration -+ : diag::err_attribute_dll_redeclaration; -+ S.Diag(NewDecl->getLocation(), DiagID) -+ << NewDecl -+ << (NewImportAttr ? (const Attr *)NewImportAttr : NewExportAttr); - S.Diag(OldDecl->getLocation(), diag::note_previous_declaration); -- NewDecl->setInvalidDecl(); -- return; -+ if (!JustWarn) { -+ NewDecl->setInvalidDecl(); -+ return; -+ } - } - - // A redeclaration is not allowed to drop a dllimport attribute, the only -diff --git a/test/Sema/dllexport.c b/test/Sema/dllexport.c -index c6d04dc..6c71ad8 100644 ---- a/test/Sema/dllexport.c -+++ b/test/Sema/dllexport.c -@@ -39,8 +39,13 @@ __declspec(dllexport) extern int GlobalRedecl2; - int GlobalRedecl2; - - extern int GlobalRedecl3; // expected-note{{previous declaration is here}} -+int useGlobalRedecl3() { return GlobalRedecl3; } - __declspec(dllexport) extern int GlobalRedecl3; // expected-error{{redeclaration of 'GlobalRedecl3' cannot add 'dllexport' attribute}} - -+ extern int GlobalRedecl4; // expected-note{{previous declaration is here}} -+__declspec(dllexport) extern int GlobalRedecl4; // expected-warning{{redeclaration of 'GlobalRedecl4' should not add 'dllexport' attribute}} -+ -+ - // External linkage is required. - __declspec(dllexport) static int StaticGlobal; // expected-error{{'StaticGlobal' must have external linkage when declared 'dllexport'}} - -@@ -86,11 +91,18 @@ __declspec(dllexport) void redecl3(); - void redecl3() {} - - void redecl4(); // expected-note{{previous declaration is here}} -+void useRedecl4() { redecl4(); } - __declspec(dllexport) void redecl4(); // expected-error{{redeclaration of 'redecl4' cannot add 'dllexport' attribute}} - - void redecl5(); // expected-note{{previous declaration is here}} -+void useRedecl5() { redecl5(); } - __declspec(dllexport) inline void redecl5() {} // expected-error{{redeclaration of 'redecl5' cannot add 'dllexport' attribute}} - -+// Allow with a warning if the decl hasn't been used yet. -+ void redecl6(); // expected-note{{previous declaration is here}} -+__declspec(dllexport) void redecl6(); // expected-warning{{redeclaration of 'redecl6' should not add 'dllexport' attribute}} -+ -+ - // External linkage is required. - __declspec(dllexport) static int staticFunc(); // expected-error{{'staticFunc' must have external linkage when declared 'dllexport'}} - -diff --git a/test/Sema/dllimport.c b/test/Sema/dllimport.c -index 30ea4f3..d64c859 100644 ---- a/test/Sema/dllimport.c -+++ b/test/Sema/dllimport.c -@@ -64,9 +64,16 @@ int GlobalRedecl2c __attribute__((dllimport)); - __declspec(dllimport) extern int GlobalRedecl3; // expected-note{{previous declaration is here}} expected-note{{previous attribute is here}} - extern int GlobalRedecl3; // expected-warning{{'GlobalRedecl3' redeclared without 'dllimport' attribute: previous 'dllimport' ignored}} - -+// Adding an attribute on redeclaration. - extern int GlobalRedecl4; // expected-note{{previous declaration is here}} -+int useGlobalRedecl4() { return GlobalRedecl4; } - __declspec(dllimport) extern int GlobalRedecl4; // expected-error{{redeclaration of 'GlobalRedecl4' cannot add 'dllimport' attribute}} - -+// Allow with a warning if the decl hasn't been used yet. -+ extern int GlobalRedecl5; // expected-note{{previous declaration is here}} -+__declspec(dllimport) extern int GlobalRedecl5; // expected-warning{{redeclaration of 'GlobalRedecl5' should not add 'dllimport' attribute}} -+ -+ - // External linkage is required. - __declspec(dllimport) static int StaticGlobal; // expected-error{{'StaticGlobal' must have external linkage when declared 'dllimport'}} - -@@ -128,14 +135,20 @@ __declspec(dllimport) void redecl3(); // expected-note{{previous declaration is - void redecl3() {} // expected-warning{{'redecl3' redeclared without 'dllimport' attribute: previous 'dllimport' ignored}} - - void redecl4(); // expected-note{{previous declaration is here}} -+void useRedecl4() { redecl4(); } - __declspec(dllimport) void redecl4(); // expected-error{{redeclaration of 'redecl4' cannot add 'dllimport' attribute}} - -+// Allow with a warning if the decl hasn't been used yet. -+ void redecl5(); // expected-note{{previous declaration is here}} -+__declspec(dllimport) void redecl5(); // expected-warning{{redeclaration of 'redecl5' should not add 'dllimport' attribute}} -+ -+ - // Inline redeclarations are fine. --__declspec(dllimport) void redecl5(); -- inline void redecl5() {} -+__declspec(dllimport) void redecl6(); -+ inline void redecl6() {} - -- void redecl6(); // expected-note{{previous declaration is here}} --__declspec(dllimport) inline void redecl6() {} // expected-error{{redeclaration of 'redecl6' cannot add 'dllimport' attribute}} -+ void redecl7(); // expected-note{{previous declaration is here}} -+__declspec(dllimport) inline void redecl7() {} // expected-warning{{redeclaration of 'redecl7' should not add 'dllimport' attribute}} - - // External linkage is required. - __declspec(dllimport) static int staticFunc(); // expected-error{{'staticFunc' must have external linkage when declared 'dllimport'}} -diff --git a/test/SemaCXX/dllexport.cpp b/test/SemaCXX/dllexport.cpp -index 8219c47..df87c73 100644 ---- a/test/SemaCXX/dllexport.cpp -+++ b/test/SemaCXX/dllexport.cpp -@@ -53,7 +53,7 @@ __declspec(dllexport) extern int GlobalRedecl2; - int GlobalRedecl2; - - extern int GlobalRedecl3; // expected-note{{previous declaration is here}} --__declspec(dllexport) extern int GlobalRedecl3; // expected-error{{redeclaration of 'GlobalRedecl3' cannot add 'dllexport' attribute}} -+__declspec(dllexport) extern int GlobalRedecl3; // expected-warning{{redeclaration of 'GlobalRedecl3' should not add 'dllexport' attribute}} - - // External linkage is required. - __declspec(dllexport) static int StaticGlobal; // expected-error{{'StaticGlobal' must have external linkage when declared 'dllexport'}} -@@ -186,10 +186,10 @@ __declspec(dllexport) void redecl2(); - void redecl2() {} - - void redecl3(); // expected-note{{previous declaration is here}} --__declspec(dllexport) void redecl3(); // expected-error{{redeclaration of 'redecl3' cannot add 'dllexport' attribute}} -+__declspec(dllexport) void redecl3(); // expected-warning{{redeclaration of 'redecl3' should not add 'dllexport' attribute}} - - void redecl4(); // expected-note{{previous declaration is here}} --__declspec(dllexport) inline void redecl4() {} // expected-error{{redeclaration of 'redecl4' cannot add 'dllexport' attribute}} -+__declspec(dllexport) inline void redecl4() {} // expected-warning{{redeclaration of 'redecl4' should not add 'dllexport' attribute}} - - // Friend functions - struct FuncFriend { -@@ -200,8 +200,8 @@ struct FuncFriend { - }; - __declspec(dllexport) void friend1() {} - void friend2() {} --__declspec(dllexport) void friend3() {} // expected-error{{redeclaration of 'friend3' cannot add 'dllexport' attribute}} --__declspec(dllexport) inline void friend4() {} // expected-error{{redeclaration of 'friend4' cannot add 'dllexport' attribute}} -+__declspec(dllexport) void friend3() {} // expected-warning{{redeclaration of 'friend3' should not add 'dllexport' attribute}} -+__declspec(dllexport) inline void friend4() {} // expected-warning{{redeclaration of 'friend4' should not add 'dllexport' attribute}} - - // Implicit declarations can be redeclared with dllexport. - __declspec(dllexport) void* operator new(__SIZE_TYPE__ n); -diff --git a/test/SemaCXX/dllimport.cpp b/test/SemaCXX/dllimport.cpp -index 875cf1e..d0e8836 100644 ---- a/test/SemaCXX/dllimport.cpp -+++ b/test/SemaCXX/dllimport.cpp -@@ -75,7 +75,7 @@ __declspec(dllimport) extern int GlobalRedecl3; // expected-note{{previous decla - extern int GlobalRedecl3; // expected-warning{{'GlobalRedecl3' redeclared without 'dllimport' attribute: previous 'dllimport' ignored}} - - extern int GlobalRedecl4; // expected-note{{previous declaration is here}} --__declspec(dllimport) extern int GlobalRedecl4; // expected-error{{redeclaration of 'GlobalRedecl4' cannot add 'dllimport' attribute}} -+__declspec(dllimport) extern int GlobalRedecl4; // expected-warning{{redeclaration of 'GlobalRedecl4' should not add 'dllimport' attribute}} - - // External linkage is required. - __declspec(dllimport) static int StaticGlobal; // expected-error{{'StaticGlobal' must have external linkage when declared 'dllimport'}} -@@ -224,10 +224,10 @@ __declspec(dllimport) void redecl3(); // expected-note{{previous declaration is - void redecl3() {} // expected-warning{{'redecl3' redeclared without 'dllimport' attribute: previous 'dllimport' ignored}} - - void redecl4(); // expected-note{{previous declaration is here}} --__declspec(dllimport) void redecl4(); // expected-error{{redeclaration of 'redecl4' cannot add 'dllimport' attribute}} -+__declspec(dllimport) void redecl4(); // expected-warning{{redeclaration of 'redecl4' should not add 'dllimport' attribute}} - - void redecl5(); // expected-note{{previous declaration is here}} --__declspec(dllimport) inline void redecl5() {} // expected-error{{redeclaration of 'redecl5' cannot add 'dllimport' attribute}} -+__declspec(dllimport) inline void redecl5() {} // expected-warning{{redeclaration of 'redecl5' should not add 'dllimport' attribute}} - - // Friend functions - struct FuncFriend { -@@ -240,8 +240,8 @@ struct FuncFriend { - __declspec(dllimport) void friend1(); - void friend2(); // expected-warning{{'friend2' redeclared without 'dllimport' attribute: previous 'dllimport' ignored}} - void friend3() {} // expected-warning{{'friend3' redeclared without 'dllimport' attribute: previous 'dllimport' ignored}} --__declspec(dllimport) void friend4(); // expected-error{{redeclaration of 'friend4' cannot add 'dllimport' attribute}} --__declspec(dllimport) inline void friend5() {} // expected-error{{redeclaration of 'friend5' cannot add 'dllimport' attribute}} -+__declspec(dllimport) void friend4(); // expected-warning{{redeclaration of 'friend4' should not add 'dllimport' attribute}} -+__declspec(dllimport) inline void friend5() {} // expected-warning{{redeclaration of 'friend5' should not add 'dllimport' attribute}} - - void __declspec(dllimport) friend6(); // expected-note{{previous declaration is here}} expected-note{{previous attribute is here}} - void __declspec(dllimport) friend7(); --- -2.0.3 - diff --git a/mingw-w64-clang/clang-3.6-allow-dll-attributes2.patch b/mingw-w64-clang/clang-3.6-allow-dll-attributes2.patch deleted file mode 100644 index 40d8855df5..0000000000 --- a/mingw-w64-clang/clang-3.6-allow-dll-attributes2.patch +++ /dev/null @@ -1,98 +0,0 @@ -From d4a1ae3f5696cc4c3741282569951dce3678d318 Mon Sep 17 00:00:00 2001 -From: Hans Wennborg -Date: Fri, 29 Aug 2014 00:16:06 +0000 -Subject: [PATCH] Better codegen support for DLL attributes being dropped after - the first declaration (PR20792) - -For the following code: - - __declspec(dllimport) int f(int x); - int user(int x) { - return f(x); - } - int f(int x) { return 1; } - -Clang will drop the dllimport attribute in the AST, but CodeGen would have -already put it on the LLVM::Function, and that would never get updated. -(The same thing happens for global variables.) - -This makes Clang check dropped DLL attribute case each time the LLVM object -is referenced. - -This isn't perfect, because we will still get it wrong if the function is -never referenced by codegen after the attribute is dropped, but this handles -the common cases and makes us not fail in the verifier. - -git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216699 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - lib/CodeGen/CodeGenModule.cpp | 8 ++++++++ - test/CodeGen/dllimport.c | 21 +++++++++++++++++---- - 2 files changed, 25 insertions(+), 4 deletions(-) - -diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp -index 1f0dd73..aaadbd4 100644 ---- a/lib/CodeGen/CodeGenModule.cpp -+++ b/lib/CodeGen/CodeGenModule.cpp -@@ -1449,6 +1449,10 @@ CodeGenModule::GetOrCreateLLVMFunction(StringRef MangledName, - Entry->setLinkage(llvm::Function::ExternalLinkage); - } - -+ // Handle dropped DLL attributes. -+ if (D && !D->hasAttr() && !D->hasAttr()) -+ Entry->setDLLStorageClass(llvm::GlobalValue::DefaultStorageClass); -+ - if (Entry->getType()->getElementType() == Ty) - return Entry; - -@@ -1614,6 +1618,10 @@ CodeGenModule::GetOrCreateLLVMGlobal(StringRef MangledName, - Entry->setLinkage(llvm::Function::ExternalLinkage); - } - -+ // Handle dropped DLL attributes. -+ if (D && !D->hasAttr() && !D->hasAttr()) -+ Entry->setDLLStorageClass(llvm::GlobalValue::DefaultStorageClass); -+ - if (Entry->getType() == Ty) - return Entry; - -diff --git a/test/CodeGen/dllimport.c b/test/CodeGen/dllimport.c -index 6ed60ea..0f592d0 100644 ---- a/test/CodeGen/dllimport.c -+++ b/test/CodeGen/dllimport.c -@@ -44,12 +44,19 @@ __declspec(dllimport) extern int GlobalRedecl3; - extern int GlobalRedecl3; // dllimport ignored - USEVAR(GlobalRedecl3) - -+// Make sure this works even if the decl has been used before it's defined (PR20792). -+// CHECK: @GlobalRedecl4 = common global i32 -+__declspec(dllimport) extern int GlobalRedecl4; -+USEVAR(GlobalRedecl4) -+ int GlobalRedecl4; // dllimport ignored -+ -+ - // Redeclaration in local context. --// CHECK: @GlobalRedecl4 = external dllimport global i32 --__declspec(dllimport) int GlobalRedecl4; -+// CHECK: @GlobalRedecl5 = external dllimport global i32 -+__declspec(dllimport) int GlobalRedecl5; - int functionScope() { -- extern int GlobalRedecl4; // still dllimport -- return GlobalRedecl4; -+ extern int GlobalRedecl5; // still dllimport -+ return GlobalRedecl5; - } - - -@@ -99,3 +106,9 @@ USE(redecl2) - __declspec(dllimport) void redecl3(void); - void redecl3(void) {} // dllimport ignored - USE(redecl3) -+ -+// Make sure this works even if the decl is used before it's defined (PR20792). -+// CHECK-DAG: define void @redecl4() -+__declspec(dllimport) void redecl4(void); -+USE(redecl4) -+ void redecl4(void) {} // dllimport ignored --- -2.0.3 - diff --git a/mingw-w64-clang/clang-fabs.patch b/mingw-w64-clang/clang-fabs.patch deleted file mode 100644 index 241c09146f..0000000000 --- a/mingw-w64-clang/clang-fabs.patch +++ /dev/null @@ -1,32 +0,0 @@ -Original author: Reid Kleckner -Backported to clang 3.5 by: Antal Szabó - -This patch fixes the lowering of __builtin_fabs, __builtin_fabsf and __builtin_fabsl. Based on clang r221206. - -Original log message: - -Lower __builtin_fabs* to @llvm.fabs.* - -mingw64's headers implement fabs by calling __builtin_fabs, so using the -library call results in an infinite loop. If the backend legalizes -@llvm.fabs as a call to fabs later, things should work out, as the crt -provides a definition. - -diff --git a/lib/CodeGen/CGBuiltin.cpp b/lib/CodeGen/CGBuiltin.cpp -index 4f68b34..230a770 100644 ---- a/lib/CodeGen/CGBuiltin.cpp -+++ b/lib/CodeGen/CGBuiltin.cpp -@@ -255,6 +255,13 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD, - - return RValue::get(Result); - } -+ case Builtin::BI__builtin_fabs: -+ case Builtin::BI__builtin_fabsf: -+ case Builtin::BI__builtin_fabsl: { -+ Value *Arg1 = EmitScalarExpr(E->getArg(0)); -+ Value *Result = EmitFAbs(*this, Arg1, E->getArg(0)->getType()); -+ return RValue::get(Result); -+ } - - case Builtin::BI__builtin_conj: - case Builtin::BI__builtin_conjf: diff --git a/mingw-w64-clang/clang-mingw-driver-generic.patch b/mingw-w64-clang/clang-mingw-driver-generic.patch deleted file mode 100644 index ead275466d..0000000000 --- a/mingw-w64-clang/clang-mingw-driver-generic.patch +++ /dev/null @@ -1,574 +0,0 @@ -Author: Martell Malone - -This adds the mingw64 driver to clang even with the new triplets compnerd has created in clang. -Based off of ruben driver patch back from Jan - -diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt -index e874ab8..71b7ec6 100644 ---- a/lib/Driver/CMakeLists.txt -+++ b/lib/Driver/CMakeLists.txt -@@ -17,6 +17,7 @@ add_clang_library(clangDriver - ToolChain.cpp - ToolChains.cpp - WindowsToolChain.cpp -+ MinGWToolChain.cpp - Tools.cpp - Types.cpp - ) -diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index ca3e50f..c49d9fd 100644 ---- a/lib/Driver/Driver.cpp -+++ b/lib/Driver/Driver.cpp -@@ -1967,12 +1970,7 @@ - TC = new toolchains::Generic_GCC(*this, Target, Args); - break; - case llvm::Triple::GNU: -- // FIXME: We need a MinGW toolchain. Use the default Generic_GCC -- // toolchain for now as the default case would below otherwise. -- if (Target.isOSBinFormatELF()) -- TC = new toolchains::Generic_ELF(*this, Target, Args); -- else -- TC = new toolchains::Generic_GCC(*this, Target, Args); -+ TC = new toolchains::MinGW(*this, Target, Args); - break; - case llvm::Triple::MSVC: - case llvm::Triple::UnknownEnvironment: -diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp -new file mode 100644 -index 0000000..87c0aa2 ---- /dev/null -+++ b/lib/Driver/MinGWToolChain.cpp -@@ -0,0 +1,163 @@ -+//===--- MinGWToolChain.cpp - MinGWToolChain Implementation -----------------------===// -+// -+// The LLVM Compiler Infrastructure -+// -+// This file is distributed under the University of Illinois Open Source -+// License. See LICENSE.TXT for details. -+// -+//===----------------------------------------------------------------------===// -+ -+#include "ToolChains.h" -+#include "clang/Basic/CharInfo.h" -+#include "clang/Basic/DiagnosticIDs.h" -+#include "clang/Basic/Version.h" -+#include "clang/Driver/Compilation.h" -+#include "clang/Driver/Driver.h" -+#include "clang/Driver/DriverDiagnostic.h" -+#include "clang/Driver/Options.h" -+#include "llvm/Option/Arg.h" -+#include "llvm/Option/ArgList.h" -+#include "llvm/Support/ErrorHandling.h" -+#include "llvm/Support/FileSystem.h" -+#include "llvm/Support/Path.h" -+ -+using namespace clang::diag; -+using namespace clang::driver; -+using namespace clang::driver::toolchains; -+using namespace clang; -+using namespace llvm::opt; -+ -+MinGW::MinGW(const Driver &D, const llvm::Triple& Triple, -+ const ArgList &Args) -+ : Generic_GCC(D, Triple, Args) { -+ //TODO: libc++ directory -+ -+ // Get GCC version string for library and header directories -+ const std::string GCClibdir = -+#ifdef LLVM_ON_WIN32 -+ getDriver().Dir + "/../lib/gcc/" + getTriple().getArchName().str() + "-w64-mingw32"; -+#else -+ getDriver().SysRoot + "/usr/lib/gcc/" + getTriple().getArchName().str() + "-w64-mingw32"; -+#endif -+ if (llvm::sys::fs::exists(GCClibdir)) { -+ // Find subdirectory, should be the version of MinGW-w64 GCC -+ std::error_code EC; -+ llvm::sys::fs::directory_iterator entry(StringRef(GCClibdir), EC); -+ if (!EC) -+ GCCVersion = llvm::sys::path::filename(entry->path()); -+ // TODO report error: "no MinGW-w64 GCC installation found" -+ } -+ -+#ifdef LLVM_ON_WIN32 -+ // assume sysrooted compiler -+ getFilePaths().push_back(getDriver().Dir + "/../lib"); -+ getFilePaths().push_back(getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/lib"); -+ getFilePaths().push_back(getDriver().Dir + "/../lib/gcc/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/" + GCCVersion); -+ -+#else -+ // assume install prefix /usr -+ getFilePaths().push_back(getDriver().SysRoot + "/usr/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/lib"); -+ getFilePaths().push_back(getDriver().SysRoot + "/usr/lib/gcc/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/" + GCCVersion); -+#endif -+} -+ -+Tool *MinGW::buildLinker() const { -+ return new tools::MinGW::Link(*this); -+} -+ -+bool MinGW::isPICDefault() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+bool MinGW::isPICDefaultForced() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+bool MinGW::UseSEHExceptions() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+void MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, -+ ArgStringList &CC1Args) const { -+ if (DriverArgs.hasArg(options::OPT_nostdinc)) -+ return; -+ -+ if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { -+ SmallString<128> P(getDriver().ResourceDir); -+ llvm::sys::path::append(P, "include"); -+ addSystemInclude(DriverArgs, CC1Args, P.str()); -+ } -+ -+ if (DriverArgs.hasArg(options::OPT_nostdlibinc)) -+ return; -+ -+#ifdef LLVM_ON_WIN32 -+ // Clang runs on Windows, assume sysroot toolchain -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include"); -+ // Add users standard include directory -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include"); -+#else -+ // Clang runs somewhere else, e.g. Linux, assume install prefix /usr -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include"); -+#endif -+} -+ -+void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, -+ ArgStringList &CC1Args) const { -+ if (DriverArgs.hasArg(options::OPT_nostdlibinc) || -+ DriverArgs.hasArg(options::OPT_nostdincxx)) -+ return; -+ -+ // Check if libc++ has been enabled and provide its include paths if so. -+ if (GetCXXStdlibType(DriverArgs) == ToolChain::CST_Libcxx) { -+ // libc++ is always installed at a fixed path on Linux currently. -+#ifdef LLVM_ON_WIN32 -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/v1"); -+#else -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/include/c++/v1"); -+#endif -+ return; -+ } -+#ifdef LLVM_ON_WIN32 -+ // Assume sysroot toolchain -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion -+ + "/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion -+ + "/backward"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/backward"); -+#else -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion -+ + "/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion + "/backward"); -+#endif -+} -diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h -index d5d0581..556afed 100644 ---- a/lib/Driver/ToolChains.h -+++ b/lib/Driver/ToolChains.h -@@ -740,6 +740,29 @@ protected: - Tool *buildAssembler() const override; - }; - -+class LLVM_LIBRARY_VISIBILITY MinGW : public Generic_GCC { -+public: -+ MinGW(const Driver &D, const llvm::Triple &Triple, -+ const llvm::opt::ArgList &Args); -+ -+ bool isPICDefault() const override; -+ bool isPICDefaultForced() const override; -+ bool UseSEHExceptions() const override; -+ -+ void -+ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, -+ llvm::opt::ArgStringList &CC1Args) const override; -+ void -+ AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, -+ llvm::opt::ArgStringList &CC1Args) const override; -+ -+protected: -+ Tool *buildLinker() const override; -+ -+private: -+ std::string GCCVersion; -+}; -+ - - class LLVM_LIBRARY_VISIBILITY XCore : public ToolChain { - public: -diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 892810e..a670502 100644 ---- a/lib/Driver/Tools.cpp -+++ b/lib/Driver/Tools.cpp -@@ -7089,6 +7089,177 @@ Command *visualstudio::Compile::GetCommand(Compilation &C, const JobAction &JA, - return new Command(JA, *this, Args.MakeArgString(Exec), CmdArgs); - } - -+/// MinGW Tools -+void MinGW::Link::AddLibGCC(const ArgList &Args, ArgStringList &CmdArgs) const { -+ if (Args.hasArg(options::OPT_mthreads)) -+ CmdArgs.push_back("-lmingwthrd"); -+ CmdArgs.push_back("-lmingw32"); -+ if (Args.hasArg(options::OPT_shared) || -+ Args.hasArg(options::OPT_shared_libgcc)) { -+ CmdArgs.push_back("-lgcc_s"); -+ CmdArgs.push_back("-lgcc"); -+ } else { -+ CmdArgs.push_back("-lgcc"); -+ CmdArgs.push_back("-lgcc_eh"); -+ } -+ CmdArgs.push_back("-lmoldname"); -+ CmdArgs.push_back("-lmingwex"); -+ CmdArgs.push_back("-lmsvcrt"); -+} -+ -+void MinGW::Link::ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const ArgList &Args, -+ const char *LinkingOutput) const { -+ const ToolChain &TC = getToolChain(); -+ const Driver &D = TC.getDriver(); -+ //const SanitizerArgs &Sanitize = TC.getSanitizerArgs(); -+ -+ ArgStringList CmdArgs; -+ -+ // Silence warning for "clang -g foo.o -o foo" -+ Args.ClaimAllArgs(options::OPT_g_Group); -+ // and "clang -emit-llvm foo.o -o foo" -+ Args.ClaimAllArgs(options::OPT_emit_llvm); -+ // and for "clang -w foo.o -o foo". Other warning options are already -+ // handled somewhere else. -+ Args.ClaimAllArgs(options::OPT_w); -+ -+ if (!D.SysRoot.empty()) -+ CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); -+ -+ if (Args.hasArg(options::OPT_s)) -+ CmdArgs.push_back("-s"); -+ -+ CmdArgs.push_back("-m"); -+ if (TC.getArch() == llvm::Triple::x86) -+ CmdArgs.push_back("i386pe"); -+ if (TC.getArch() == llvm::Triple::x86_64) -+ CmdArgs.push_back("i386pep"); -+ -+ if (Args.hasArg(options::OPT_mwindows)) -+ CmdArgs.push_back("--subsystem windows"); -+ else if (Args.hasArg(options::OPT_mconsole)) -+ CmdArgs.push_back("--subsystem console"); -+ -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("-Bstatic"); -+ else { -+ // -shared means building DLL -+ if (Args.hasArg(options::OPT_shared)) -+ CmdArgs.push_back("--shared"); -+ else if (Args.hasArg(options::OPT_mdll)) -+ CmdArgs.push_back("--dll"); -+ CmdArgs.push_back("-Bdynamic"); -+ CmdArgs.push_back("-e"); -+ if (TC.getArch() == llvm::Triple::x86) -+ CmdArgs.push_back("_DllMainCRTStartup@12"); -+ else -+ CmdArgs.push_back("DllMainCRTStartup"); -+ -+ CmdArgs.push_back("--enable-auto-image-base"); -+ } -+ -+ AddLinkerInputs(TC, Inputs, Args, CmdArgs); -+ -+ Args.AddAllArgs(CmdArgs, options::OPT_e); -+ // FIXME: add -N, -n flags -+ Args.AddLastArg(CmdArgs, options::OPT_r); -+ Args.AddLastArg(CmdArgs, options::OPT_s); -+ Args.AddLastArg(CmdArgs, options::OPT_t); -+ Args.AddAllArgs(CmdArgs, options::OPT_u_Group); -+ Args.AddLastArg(CmdArgs, options::OPT_Z_Flag); -+ -+ if (!Args.hasArg(options::OPT_nostdlib) && -+ !Args.hasArg(options::OPT_nostartfiles)) { -+ if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_mdll)) { -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("dllcrt2.o"))); -+ } else { -+ if (Args.hasArg(options::OPT_municode)) -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crt2u.o"))); -+ else -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crt2.o"))); -+ } -+ if (Args.hasArg(options::OPT_pg)) -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("gcrt2.o"))); -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtbegin.o"))); -+ } -+ -+ Args.AddAllArgs(CmdArgs, options::OPT_L); -+ const ToolChain::path_list Paths = TC.getFilePaths(); -+ for (const auto &Path : Paths) -+ CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + Path)); -+ -+ CmdArgs.push_back("-o"); -+ CmdArgs.push_back(Output.getFilename()); -+ -+ // TODO: Add ASan stuff here -+ -+ // TODO: Add profile stuff here -+ -+ if (D.CCCIsCXX() && -+ !Args.hasArg(options::OPT_nostdlib) && -+ !Args.hasArg(options::OPT_nodefaultlibs)) { -+ bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) && -+ !Args.hasArg(options::OPT_static); -+ if (OnlyLibstdcxxStatic) -+ CmdArgs.push_back("-Bstatic"); -+ TC.AddCXXStdlibLibArgs(Args, CmdArgs); -+ if (OnlyLibstdcxxStatic) -+ CmdArgs.push_back("-Bdynamic"); -+ } -+ -+ if (!Args.hasArg(options::OPT_nostdlib)) { -+ if (!Args.hasArg(options::OPT_nodefaultlibs)) { -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("--start-group"); -+ -+ if (Args.hasArg(options::OPT_fstack_protector) || -+ Args.hasArg(options::OPT_fstack_protector_strong) || -+ Args.hasArg(options::OPT_fstack_protector_all)) { -+ CmdArgs.push_back("-lssp_nonshared"); -+ CmdArgs.push_back("-lssp"); -+ } -+ if (Args.hasArg(options::OPT_fopenmp)) -+ CmdArgs.push_back("-lgomp"); -+ -+ AddLibGCC(Args, CmdArgs); -+ -+ if (Args.hasArg(options::OPT_pg)) -+ CmdArgs.push_back("-lgmon"); -+ -+ // TODO: remove unconditionally linking pthreads library -+ // Currently required for OpenMP and posix-threading libgcc -+ CmdArgs.push_back("-lpthread"); -+ -+ // add system libraries -+ if (Args.hasArg(options::OPT_mwindows)) { -+ CmdArgs.push_back("-lgdi32"); -+ CmdArgs.push_back("-lcomdlg32"); -+ } -+ CmdArgs.push_back("-ladvapi32"); -+ CmdArgs.push_back("-lshell32"); -+ CmdArgs.push_back("-luser32"); -+ CmdArgs.push_back("-lkernel32"); -+ -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("--end-group"); -+ else -+ AddLibGCC(Args, CmdArgs); -+ } -+ -+ if (!Args.hasArg(options::OPT_nostartfiles)) { -+ // Add crtfastmath.o if available and fast math is enabled. -+ TC.AddFastMathRuntimeIfAvailable(Args, CmdArgs); -+ -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend.o"))); -+ } -+ } -+ const char *Exec = -+ Args.MakeArgString(TC.GetProgramPath("ld")); -+ C.addCommand(new Command(JA, *this, Exec, CmdArgs)); -+} - - /// XCore Tools - // We pass assemble and link construction to the xcc tool. -diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h -index 873969b..3265ce1 100644 ---- a/lib/Driver/Tools.h -+++ b/lib/Driver/Tools.h -@@ -614,6 +614,25 @@ namespace visualstudio { - }; - } // end namespace visualstudio - -+ /// MinGW -- Directly call GNU Binutils assembler and linker -+namespace MinGW { -+ class LLVM_LIBRARY_VISIBILITY Link : public Tool { -+ public: -+ Link(const ToolChain &TC) : Tool("MinGW::Link", "linker", TC) {} -+ -+ bool hasIntegratedCPP() const override { return false; } -+ bool isLinkJob() const override { return true; } -+ -+ void ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const llvm::opt::ArgList &TCArgs, -+ const char *LinkingOutput) const override; -+ private: -+ void AddLibGCC(const llvm::opt::ArgList &Args, ArgStringList &CmdArgs) const; -+ }; -+} // end namespace MinGW -+ - namespace arm { - StringRef getARMFloatABI(const Driver &D, const llvm::opt::ArgList &Args, - const llvm::Triple &Triple); -diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp -index bb1fe2d..9877216 100644 ---- a/lib/Frontend/InitHeaderSearch.cpp -+++ b/lib/Frontend/InitHeaderSearch.cpp -@@ -82,11 +82,6 @@ - StringRef Arch, - StringRef Version); - -- /// AddMinGW64CXXPaths - Add the necessary paths to support -- /// libstdc++ of x86_64-w64-mingw32 aka mingw-w64. -- void AddMinGW64CXXPaths(StringRef Base, -- StringRef Version); -- - // AddDefaultCIncludePaths - Add paths that should always be searched. - void AddDefaultCIncludePaths(const llvm::Triple &triple, - const HeaderSearchOptions &HSOpts); -@@ -208,18 +203,6 @@ - CXXSystem, false); - } - --void InitHeaderSearch::AddMinGW64CXXPaths(StringRef Base, -- StringRef Version) { -- // Assumes Base is HeaderSearchOpts' ResourceDir -- AddPath(Base + "/../../../include/c++/" + Version, -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/x86_64-w64-mingw32", -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/i686-w64-mingw32", -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/backward", -- CXXSystem, false); --} - - void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - const HeaderSearchOptions &HSOpts) { -@@ -269,7 +252,7 @@ - switch (os) { - case llvm::Triple::Linux: - llvm_unreachable("Include management is handled in the driver."); -- -+ break; - case llvm::Triple::Haiku: - AddPath("/boot/common/include", System, false); - AddPath("/boot/develop/headers/os", System, false); -@@ -309,30 +292,11 @@ - case llvm::Triple::Win32: - switch (triple.getEnvironment()) { - default: llvm_unreachable("Include management is handled in the driver."); -+ break; - case llvm::Triple::Cygnus: - AddPath("/usr/include/w32api", System, false); - break; - case llvm::Triple::GNU: -- // mingw-w64 crt include paths -- // /i686-w64-mingw32/include -- SmallString<128> P = StringRef(HSOpts.ResourceDir); -- llvm::sys::path::append(P, "../../../i686-w64-mingw32/include"); -- AddPath(P.str(), System, false); -- -- // /x86_64-w64-mingw32/include -- P.resize(HSOpts.ResourceDir.size()); -- llvm::sys::path::append(P, "../../../x86_64-w64-mingw32/include"); -- AddPath(P.str(), System, false); -- -- // mingw.org crt include paths -- // /include -- P.resize(HSOpts.ResourceDir.size()); -- llvm::sys::path::append(P, "../../../include"); -- AddPath(P.str(), System, false); -- AddPath("/mingw/include", System, false); --#if defined(LLVM_ON_WIN32) -- AddPath("c:/mingw/include", System, false); --#endif - break; - } - break; -@@ -340,7 +304,7 @@ - break; - } - -- if ( os != llvm::Triple::RTEMS ) -+ if ( os != llvm::Triple::RTEMS && !Triple.isWindowsGNUEnvironment() ) - AddPath("/usr/include", ExternCSystem, false); - } - -@@ -403,24 +368,6 @@ - AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.2"); - break; - case llvm::Triple::GNU: -- // mingw-w64 C++ include paths (i686-w64-mingw32 and x86_64-w64-mingw32) -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.0"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.1"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.2"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.3"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.0"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.1"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.2"); -- // mingw.org C++ include paths --#if defined(LLVM_ON_WIN32) -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.0"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.1"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.2"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.3"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.0"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.1"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.2"); --#endif - break; - } - case llvm::Triple::DragonFly: ---- a/include/clang/Driver/Options.td 2014-08-07 08:51:51.000000000 +0400 -+++ b/include/clang/Driver/Options.td 2014-09-08 10:02:24.295600000 +0400 -@@ -1041,6 +1041,11 @@ - def masm_EQ : Joined<["-"], "masm=">, Group, Flags<[DriverOption]>; - def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group; - def mconstant_cfstrings : Flag<["-"], "mconstant-cfstrings">, Group; -+def mconsole : Joined<["-"], "mconsole">, Group, Flags<[DriverOption]>; -+def mwindows : Joined<["-"], "mwindows">, Group, Flags<[DriverOption]>; -+def mdll : Joined<["-"], "mdll">, Group, Flags<[DriverOption]>; -+def municode : Joined<["-"], "municode">, Group, Flags<[DriverOption]>; -+def mthreads : Joined<["-"], "mthreads">, Group, Flags<[DriverOption]>; - def mcpu_EQ : Joined<["-"], "mcpu=">, Group; - def mdynamic_no_pic : Joined<["-"], "mdynamic-no-pic">, Group; - def mfix_and_continue : Flag<["-"], "mfix-and-continue">, Group; diff --git a/mingw-w64-clang/clang-mingw-driver.patch b/mingw-w64-clang/clang-mingw-driver.patch index a3af83bcac..e0cf267521 100644 --- a/mingw-w64-clang/clang-mingw-driver.patch +++ b/mingw-w64-clang/clang-mingw-driver.patch @@ -3,6 +3,7 @@ Author: Martell Malone This adds the mingw64 driver to clang even with the new triplets compnerd has created in clang. Based off of ruben driver patch back from Jan + diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index bb1fe2d..9877216 100644 --- a/include/clang/Driver/Options.td @@ -23,14 +24,14 @@ diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt index e874ab8..71b7ec6 100644 --- a/lib/Driver/CMakeLists.txt +++ b/lib/Driver/CMakeLists.txt -@@ -16,6 +16,7 @@ - ToolChain.cpp - ToolChains.cpp - WindowsToolChain.cpp +@@ -10,6 +10,7 @@ + Driver.cpp + DriverOptions.cpp + Job.cpp + MinGWToolChain.cpp - Tools.cpp - Types.cpp - + Multilib.cpp + MSVCToolChain.cpp + Phases.cpp diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp index ca3e50f..c49d9fd 100644 --- a/lib/Driver/Driver.cpp @@ -54,7 +55,7 @@ new file mode 100644 index 0000000..87c0aa2 --- /dev/null +++ b/lib/Driver/MinGWToolChain.cpp -@@ -0,0 +1,195 @@ +@@ -0,0 +1,191 @@ +//===--- MinGWToolChain.cpp - MinGWToolChain Implementation -----------------------===// +// +// The LLVM Compiler Infrastructure @@ -166,10 +167,6 @@ index 0000000..87c0aa2 + return getArch() == llvm::Triple::x86_64; +} + -+bool MinGW::UseSEHExceptions() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ +void MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, + ArgStringList &CC1Args) const { + if (DriverArgs.hasArg(options::OPT_nostdinc)) @@ -254,7 +251,7 @@ diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h index d5d0581..556afed 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h -@@ -751,6 +751,36 @@ +@@ -751,6 +751,35 @@ Tool *buildAssembler() const override; }; @@ -268,7 +265,6 @@ index d5d0581..556afed 100644 + bool isPICDefault() const override; + bool isPIEDefault() const override; + bool isPICDefaultForced() const override; -+ bool UseSEHExceptions() const override; + + void + AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, @@ -323,7 +319,7 @@ index 892810e..a670502 100644 + CmdArgs.push_back(II.getFilename()); + + const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as")); -+ C.addCommand(new Command(JA, *this, Exec, CmdArgs)); ++ C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); + + if (Args.hasArg(options::OPT_gsplit_dwarf)) + SplitDebugInfo(getToolChain(), C, *this, JA, Args, Output, @@ -501,7 +497,7 @@ index 892810e..a670502 100644 + } + const char *Exec = + Args.MakeArgString(TC.GetProgramPath("ld")); -+ C.addCommand(new Command(JA, *this, Exec, CmdArgs)); ++ C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); +} /// XCore Tools @@ -585,16 +581,14 @@ index bb1fe2d..9877216 100644 void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, const HeaderSearchOptions &HSOpts) { -@@ -232,6 +232,9 @@ +@@ -232,6 +232,7 @@ + case llvm::Triple::NetBSD: case llvm::Triple::OpenBSD: case llvm::Triple::Bitrig: - break; + case llvm::Triple::Win32: -+ if (triple.getEnvironment() == llvm::Triple::GNU) -+ break; + break; default: // FIXME: temporary hack: hard-coded paths. - AddPath("/usr/local/include", System, false); @@ -269,7 +252,7 @@ switch (os) { case llvm::Triple::Linux: diff --git a/mingw-w64-clang/clang-win64-seh.patch b/mingw-w64-clang/clang-win64-seh.patch deleted file mode 100644 index 366d80ad8e..0000000000 --- a/mingw-w64-clang/clang-win64-seh.patch +++ /dev/null @@ -1,136 +0,0 @@ -Author: Martell Malone - -This adds seh exception handling on the clang side. -For now this will remove link errors regardless if seh is supported on the llvm backend or not. - -diff --git a/include/clang/Basic/LangOptions.def b/include/clang/Basic/LangOptions.def -index 34dfea2..ac20a9b 100644 ---- a/include/clang/Basic/LangOptions.def -+++ b/include/clang/Basic/LangOptions.def -@@ -82,6 +82,7 @@ - LANGOPT(ObjCExceptions , 1, 0, "Objective-C exceptions") - LANGOPT(CXXExceptions , 1, 0, "C++ exceptions") - LANGOPT(SjLjExceptions , 1, 0, "setjmp-longjump exception handling") -+LANGOPT(SEHExceptions , 1, 0, "SEH exception handling") - LANGOPT(TraditionalCPP , 1, 0, "traditional CPP emulation") - LANGOPT(RTTI , 1, 1, "run-time type information") - LANGOPT(RTTIData , 1, 1, "emit run-time type information data") -diff --git a/include/clang/Driver/CC1Options.td b/include/clang/Driver/CC1Options.td -index 5ffeb43..ab73ca8 100644 ---- a/include/clang/Driver/CC1Options.td -+++ b/include/clang/Driver/CC1Options.td -@@ -425,6 +425,8 @@ - HelpText<"Weakly link in the blocks runtime">; - def fsjlj_exceptions : Flag<["-"], "fsjlj-exceptions">, - HelpText<"Use SjLj style exceptions">; -+def fseh_exceptions : Flag<["-"], "fseh-exceptions">, -+ HelpText<"Use SEH style exceptions">; - def split_dwarf_file : Separate<["-"], "split-dwarf-file">, - HelpText<"File name to use for split dwarf debug info output">; - def fno_wchar : Flag<["-"], "fno-wchar">, -diff --git a/include/clang/Driver/ToolChain.h b/include/clang/Driver/ToolChain.h -index ceb1c76..30d687f 100644 ---- a/include/clang/Driver/ToolChain.h -+++ b/include/clang/Driver/ToolChain.h -@@ -248,6 +248,9 @@ - /// UseSjLjExceptions - Does this tool chain use SjLj exceptions. - virtual bool UseSjLjExceptions() const { return false; } - -+ /// UseSEHExceptions - Does this tool chain use SEH exceptions. -+ virtual bool UseSEHExceptions() const { return false; } -+ - /// ComputeLLVMTriple - Return the LLVM target triple to use, after taking - /// command line arguments into account. - virtual std::string -diff --git a/lib/CodeGen/CGException.cpp b/lib/CodeGen/CGException.cpp -index cc03b0a..a4aa44b 100644 ---- a/lib/CodeGen/CGException.cpp -+++ b/lib/CodeGen/CGException.cpp -@@ -137,12 +137,14 @@ - static const EHPersonality &get(const LangOptions &Lang); - static const EHPersonality GNU_C; - static const EHPersonality GNU_C_SJLJ; -+ static const EHPersonality GNU_C_SEH; - static const EHPersonality GNU_ObjC; - static const EHPersonality GNUstep_ObjC; - static const EHPersonality GNU_ObjCXX; - static const EHPersonality NeXT_ObjC; - static const EHPersonality GNU_CPlusPlus; - static const EHPersonality GNU_CPlusPlus_SJLJ; -+ static const EHPersonality GNU_CPlusPlus_SEH; - }; - } - -@@ -150,12 +152,16 @@ - const EHPersonality - EHPersonality::GNU_C_SJLJ = { "__gcc_personality_sj0", nullptr }; - const EHPersonality -+EHPersonality::GNU_C_SEH = { "__gcc_personality_seh0", nullptr }; -+const EHPersonality - EHPersonality::NeXT_ObjC = { "__objc_personality_v0", nullptr }; - const EHPersonality - EHPersonality::GNU_CPlusPlus = { "__gxx_personality_v0", nullptr }; - const EHPersonality - EHPersonality::GNU_CPlusPlus_SJLJ = { "__gxx_personality_sj0", nullptr }; - const EHPersonality -+EHPersonality::GNU_CPlusPlus_SEH = { "__gxx_personality_seh0", nullptr }; -+const EHPersonality - EHPersonality::GNU_ObjC = {"__gnu_objc_personality_v0", "objc_exception_throw"}; - const EHPersonality - EHPersonality::GNU_ObjCXX = { "__gnustep_objcxx_personality_v0", nullptr }; -@@ -165,6 +171,8 @@ - static const EHPersonality &getCPersonality(const LangOptions &L) { - if (L.SjLjExceptions) - return EHPersonality::GNU_C_SJLJ; -+ if (L.SEHExceptions) -+ return EHPersonality::GNU_C_SEH; - return EHPersonality::GNU_C; - } - -@@ -189,6 +197,8 @@ - static const EHPersonality &getCXXPersonality(const LangOptions &L) { - if (L.SjLjExceptions) - return EHPersonality::GNU_CPlusPlus_SJLJ; -+ else if (L.SEHExceptions) -+ return EHPersonality::GNU_CPlusPlus_SEH; - else - return EHPersonality::GNU_CPlusPlus; - } -diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index a670502..65bd056 100644 ---- a/lib/Driver/Tools.cpp -+++ b/lib/Driver/Tools.cpp -@@ -4048,6 +4048,8 @@ - - if (getToolChain().UseSjLjExceptions()) - CmdArgs.push_back("-fsjlj-exceptions"); -+ else if (getToolChain().UseSEHExceptions()) -+ CmdArgs.push_back("-fseh-exceptions"); - - // C++ "sane" operator new. - if (!Args.hasFlag(options::OPT_fassume_sane_operator_new, -diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp -index 92202b7..de55c8b 100644 ---- a/lib/Frontend/CompilerInvocation.cpp -+++ b/lib/Frontend/CompilerInvocation.cpp -@@ -1424,6 +1424,7 @@ - Opts.ObjCExceptions = Args.hasArg(OPT_fobjc_exceptions); - Opts.CXXExceptions = Args.hasArg(OPT_fcxx_exceptions); - Opts.SjLjExceptions = Args.hasArg(OPT_fsjlj_exceptions); -+ Opts.SEHExceptions = Args.hasArg(OPT_fseh_exceptions); - Opts.TraditionalCPP = Args.hasArg(OPT_traditional_cpp); - - Opts.RTTI = !Args.hasArg(OPT_fno_rtti); -diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp -index 39c474b..ceab8ac 100644 ---- a/lib/Frontend/InitPreprocessor.cpp -+++ b/lib/Frontend/InitPreprocessor.cpp -@@ -557,6 +557,8 @@ - Builder.defineMacro("__GXX_RTTI"); - if (LangOpts.SjLjExceptions) - Builder.defineMacro("__USING_SJLJ_EXCEPTIONS__"); -+ if (LangOpts.SEHExceptions) -+ Builder.defineMacro("__SEH__"); - - if (LangOpts.Deprecated) - Builder.defineMacro("__DEPRECATED"); diff --git a/mingw-w64-clang/llvm-3.5.0-force-link-pass.o.patch b/mingw-w64-clang/llvm-3.5.0-force-link-pass.o.patch deleted file mode 100644 index acc4c13396..0000000000 --- a/mingw-w64-clang/llvm-3.5.0-force-link-pass.o.patch +++ /dev/null @@ -1,28 +0,0 @@ -Index: llvm-toolchain-snapshot-3.5~svn211313/tools/bugpoint/Makefile -=================================================================== ---- llvm-toolchain-snapshot-3.5~svn211313.orig/tools/bugpoint/Makefile -+++ llvm-toolchain-snapshot-3.5~svn211313/tools/bugpoint/Makefile -@@ -12,6 +12,9 @@ TOOLNAME := bugpoint - LINK_COMPONENTS := asmparser instrumentation scalaropts ipo linker bitreader \ - bitwriter irreader vectorize objcarcopts codegen - -+# Crappy workaround to make sure it links correctly. -+LLVMLibsOptions := ../../lib/IR/Release*/Pass.o -+ - # Support plugins. - NO_DEAD_STRIP := 1 - -Index: llvm-toolchain-snapshot-3.5~svn211313/tools/opt/Makefile -=================================================================== ---- llvm-toolchain-snapshot-3.5~svn211313.orig/tools/opt/Makefile -+++ llvm-toolchain-snapshot-3.5~svn211313/tools/opt/Makefile -@@ -10,7 +10,9 @@ - LEVEL := ../.. - TOOLNAME := opt - LINK_COMPONENTS := bitreader bitwriter asmparser irreader instrumentation scalaropts objcarcopts ipo vectorize all-targets codegen -+# Crappy workaround to make sure it links correctly. - -+LLVMLibsOptions := ../../lib/IR/Release*/Pass.o - # Support plugins. - NO_DEAD_STRIP := 1 - From c7f215ac2c59bddeac2d16ceeb03350f4df43a34 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 20 May 2015 10:28:06 +0300 Subject: [PATCH 1030/2060] llvm: Build all targets --- mingw-w64-clang/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 6025e350f8..bc9e3f3e91 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -113,7 +113,7 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --with-sysroot=${MINGW_PREFIX} \ - --enable-targets=x86,x86_64,arm,mips \ + --enable-targets=all \ --enable-optimized \ --disable-assertions \ --disable-pthreads \ From 3e901b309786357ef058b558863061ef7011ca80 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 20 May 2015 10:29:39 +0300 Subject: [PATCH 1031/2060] rust: Update to 1.0.0 --- mingw-w64-rust/PKGBUILD | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/mingw-w64-rust/PKGBUILD b/mingw-w64-rust/PKGBUILD index 615f728a0b..720256444b 100644 --- a/mingw-w64-rust/PKGBUILD +++ b/mingw-w64-rust/PKGBUILD @@ -1,40 +1,40 @@ # Maintainer: Alexey Pavlov _realname=rust - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9 +pkgver=1.0.0 pkgrel=1 pkgdesc="A safe, concurrent, practical language from Mozilla (mingw-w64)" arch=('any') url="http://www.rust-lang.org/" license=('custom:MIT' 'Apache') -#depends=('shared-mime-info') -makedepends=('git' - "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-llvm" - 'curl' - "${MINGW_PACKAGE_PREFIX}-libffi" - 'python2' - ) +makedepends=("git" + "bison" + "flex" + "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-llvm" + "${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-python2") options=('!makeflags' 'staticlibs') #install=rust.install -source=(http://static.rust-lang.org/dist/rust-${pkgver}.tar.gz - add-libffi-to-link.patch) -md5sums=('0c38a99666e0a13d4617a06e1d44b8da' +source=(https://static.rust-lang.org/dist/${_realname}c-${pkgver}-src.tar.gz + add-libffi-to-link.patch) +md5sums=('3fd3f9010be8eb411a81157b92566027' '9fa3227f99947d14c773ea0804736efa') prepare() { - cd ${srcdir}/${_realname}-$pkgver - sed -e "s|CFG_WINDOWSY_\$(1)|0|g" -i mk/rustllvm.mk - patch -p1 -i ${srcdir}/add-libffi-to-link.patch + cd ${srcdir}/${_realname}c-$pkgver + #sed -e "s|CFG_WINDOWSY_\$(1)|0|g" -i mk/rustllvm.mk + #patch -p1 -i ${srcdir}/add-libffi-to-link.patch } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" #export CFG_LLVM_ROOT=${MINGW_PREFIX} cd "${srcdir}/build-${MINGW_CHOST}" - ../${_realname}-$pkgver/configure \ + ../${_realname}c-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -49,6 +49,6 @@ build() { } package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR=${pkgdir} install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } From 4a90c58ed7b868c77e9f33bab20322ef487cd0c9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 20 May 2015 12:53:13 +0300 Subject: [PATCH 1032/2060] scipy: Update to 0.15.1 --- mingw-w64-python-scipy/PKGBUILD | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/mingw-w64-python-scipy/PKGBUILD b/mingw-w64-python-scipy/PKGBUILD index d9accd5e49..a14e17ebd5 100644 --- a/mingw-w64-python-scipy/PKGBUILD +++ b/mingw-w64-python-scipy/PKGBUILD @@ -2,8 +2,8 @@ _realname=scipy pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=0.14.0 -pkgrel=2 +pkgver=0.15.1 +pkgrel=1 pkgdesc="SciPy is open-source software for mathematics, science, and engineering. (mingw-w64)" arch=('any') url="http://www.scipy.org/" @@ -16,23 +16,22 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools" ) -source=( - "https://pypi.python.org/packages/source/s/scipy/scipy-${pkgver}.tar.gz" - fix-qhull.patch -) -md5sums=('d7c7f4ccf8b07b08d6fe49d5cd51f85d' +source=("https://pypi.python.org/packages/source/s/scipy/scipy-${pkgver}.tar.gz"{,.asc} + fix-qhull.patch) +md5sums=('be56cd8e60591d6332aac792a5880110' + 'SKIP' '62e14262492e7fbdc3fb65d106619ce3') prepare() { - cd ${_realname}-$pkgver + cd ${_realname}-${pkgver} patch -Np1 -i ${srcdir}/fix-qhull.patch cd .. - cp -a $_realname-$pkgver $_realname-py2-$pkgver - cp -a $_realname-$pkgver $_realname-py3-$pkgver + cp -a ${_realname}-${pkgver} ${_realname}-py2-${pkgver} + cp -a ${_realname}-${pkgver} ${_realname}-py3-${pkgver} - cd $_realname-py2-$pkgver + cd ${_realname}-py2-${pkgver} sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ -e "s|#![ ]*/bin/env python$|#!/usr/bin/env python2|" \ @@ -43,7 +42,7 @@ build() { export LDFLAGS="-Wall -shared" # build for python2 - cd ${srcdir}/$_realname-py2-$pkgver + cd ${srcdir}/${_realname}-py2-${pkgver} local result="fail" while [ "$result" = "fail" ]; do MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ @@ -51,7 +50,7 @@ build() { done # build for python3 - cd ${srcdir}/$_realname-py3-$pkgver + cd ${srcdir}/${_realname}-py3-${pkgver} result="fail" while [ "$result" = "fail" ]; do MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ @@ -66,7 +65,7 @@ package_python2-scipy() { ) optdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose: testsuite") - cd $_realname-py2-$pkgver + cd ${_realname}-py2-${pkgver} export LDFLAGS="-Wall -shared" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ @@ -84,7 +83,7 @@ package_python3-scipy() { ) optdepends=("${MINGW_PACKAGE_PREFIX}-python3-nose: testsuite") - cd $_realname-py3-$pkgver + cd ${_realname}-py3-${pkgver} export LDFLAGS="-Wall -shared" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ From 9a2758feda7a47f4ca3d910c1dbffb76d9ac4d31 Mon Sep 17 00:00:00 2001 From: hurcan solter Date: Thu, 21 May 2015 09:57:40 +0300 Subject: [PATCH 1033/2060] add armadillo linear algebra library --- mingw-w64-armadillo/PKGBUILD | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mingw-w64-armadillo/PKGBUILD diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD new file mode 100644 index 0000000000..bd8d1fb963 --- /dev/null +++ b/mingw-w64-armadillo/PKGBUILD @@ -0,0 +1,34 @@ +# Maintainer: Hurcan Solter + +_realname=armadillo +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=5.100.2 +pkgrel=1 +pkgdesc="C++ linear algebra library (mingw-w64)" +arch=('any') +url="http://arma.sourceforge.net/" +license=(MPL2) +depends=("${MINGW_PACKAGE_PREFIX}-openblas" + "${MINGW_PACKAGE_PREFIX}-lapack") + +source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz) +md5sums=('fe57525a4fce94799d1556eb06339bbd') + +build() { + cd "$srcdir/${_realname}-${pkgver}" + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + # PATH=${MINGW_PREFIX}/bin \ + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + .. + +} +package() { +cd "${srcdir}/${_realname}-${pkgver}/build-${MINGW_CHOST}" +make install +} + From db4a270d2663d233d590ed83e0f018b14ca22273 Mon Sep 17 00:00:00 2001 From: hurcan solter Date: Thu, 21 May 2015 10:33:18 +0300 Subject: [PATCH 1034/2060] fix whitespace --- mingw-w64-armadillo/PKGBUILD | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index bd8d1fb963..75d8416d34 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -9,7 +9,7 @@ arch=('any') url="http://arma.sourceforge.net/" license=(MPL2) depends=("${MINGW_PACKAGE_PREFIX}-openblas" - "${MINGW_PACKAGE_PREFIX}-lapack") + "${MINGW_PACKAGE_PREFIX}-lapack") source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz) md5sums=('fe57525a4fce94799d1556eb06339bbd') @@ -24,11 +24,10 @@ build() { -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ - .. - + .. } package() { -cd "${srcdir}/${_realname}-${pkgver}/build-${MINGW_CHOST}" -make install + cd "${srcdir}/${_realname}-${pkgver}/build-${MINGW_CHOST}" + make install } From 8ac0206ea5ec548a72a092a6d50d00743310a5df Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Thu, 21 May 2015 18:59:06 +0600 Subject: [PATCH 1035/2060] itk: Update to 4.7.2 --- mingw-w64-itk/PKGBUILD | 61 ++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/mingw-w64-itk/PKGBUILD b/mingw-w64-itk/PKGBUILD index c7b82ac764..c3173e82e1 100644 --- a/mingw-w64-itk/PKGBUILD +++ b/mingw-w64-itk/PKGBUILD @@ -2,12 +2,12 @@ _realname=itk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.7.1 +pkgver=4.7.2 pkgrel=1 -pkgdesc="An open-source C++ toolkit for medical image processing (mingw-w64)" +pkgdesc='An open-source C++ toolkit for medical image processing (mingw-w64)' arch=('any') -url="http://www.itk.org/" -license=("Apache") +url='http://www.itk.org/' +license=('Apache') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-fftw" @@ -22,24 +22,30 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-vtk") optdepends=("${MINGW_PACKAGE_PREFIX}-opencv: ITK-OpenCV bridge" "${MINGW_PACKAGE_PREFIX}-vtk: ITK-VTK bridge") -source=(https://github.com/InsightSoftwareConsortium/ITK/archive/v$pkgver.tar.gz) -md5sums=('f0360608582cb93d36a113f03309945b') +source=("https://github.com/InsightSoftwareConsortium/ITK/archive/v${pkgver}.tar.gz") +sha1sums=('1926161605b015f53bb21e3ee3cf132a8b07991b') +_src="${_realname}-${pkgver}" build() { - CXXFLAGS+=" -std=gnu++11" - [[ "$CARCH" = 'i686' ]] && { - _cmakeopts=('-DITK_USE_64BITS_IDS=OFF' '-DVNL_CONFIG_ENABLE_SSE2_ROUNDING=OFF') - } - [[ "$CARCH" = 'x86_64' ]] && { - _cmakeopts=('-DITK_USE_64BITS_IDS=ON' '-DVNL_CONFIG_ENABLE_SSE2_ROUNDING=ON') - } + CFLAGS+=" ${CPPFLAGS}" + CXXFLAGS+=" ${CPPFLAGS} -std=gnu++11" - [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + local -a _extra_config + if [[ "$CARCH" = 'i686' ]]; then + _extra_config=('-DITK_USE_64BITS_IDS=OFF' + '-DVNL_CONFIG_ENABLE_SSE2_ROUNDING=OFF') + fi + if [[ "$CARCH" = 'x86_64' ]]; then + _extra_config=('-DITK_USE_64BITS_IDS=ON' + '-DVNL_CONFIG_ENABLE_SSE2_ROUNDING=ON') + fi - ${MINGW_PREFIX}/bin/cmake.exe \ + [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" + mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}" + + "${MINGW_PREFIX}/bin/cmake.exe" \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX="${pkgdir}${MINGW_PREFIX}" \ -DBUILD_DOCUMENTATION=OFF \ -DBUILD_EXAMPLES=OFF \ -DBUILD_TESTING=OFF \ @@ -61,8 +67,8 @@ build() { -DITK_USE_SYSTEM_ZLIB=ON \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ - ${_cmakeopts[@]} \ - ../${_realname}-${pkgver} + "${_extra_config[@]}" \ + "../${_src}" make } @@ -71,12 +77,15 @@ package() { cd "${srcdir}/build-${CARCH}" make -j1 install - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` + pushd "${pkgdir}${MINGW_PREFIX}" > /dev/null + local _MINGW_PREFIX_WIN="$(cygpath -m ${MINGW_PREFIX})" + sed -s "s|${_MINGW_PREFIX_WIN}|\${_IMPORT_PREFIX}|g" \ + -i "lib/cmake/${_realname}-${pkgver%.*}/ITKTargets-release.cmake" + find "lib/cmake/${_realname}-${pkgver%.*}" -name '*.cmake' -exec \ + sed -s "s|${_MINGW_PREFIX_WIN}|\${ITK_INSTALL_PREFIX}|g" -i {} \; + install -Dm644 "${srcdir}/${_src}/LICENSE" "share/licenses/${_realname}/LICENSE" + install -Dm644 "${srcdir}/${_src}/NOTICE" "share/licenses/${_realname}/NOTICE" + install -Dm644 "${srcdir}/${_src}/Modules/ThirdParty/KWSys/src/KWSys/Copyright.txt" \ + "share/licenses/${_realname}/KWSys/Copyright.txt" popd > /dev/null - - sed -s "s|${PREFIX_DEPS}|\${_IMPORT_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}-${pkgver%.*}/ITKTargets-release.cmake - find "${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}-${pkgver%.*}" -name '*.cmake' -exec \ - sed -s "s|${PREFIX_DEPS}|\${ITK_INSTALL_PREFIX}|g" -i {} \; } From 078c17421c8d1fd88d2792204399cfb9504f76d7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 21 May 2015 16:17:13 +0300 Subject: [PATCH 1036/2060] sqlite3: Update to 3.8.10.2 --- mingw-w64-sqlite3/PKGBUILD | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index e1afb90aa1..65d40d2c7e 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -3,8 +3,8 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3081001 -pkgver=3.8.10.1 +_amalgamationver=3081002 +pkgver=3.8.10.2 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') @@ -18,11 +18,12 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tcl") source=("http://www.sqlite.org/2015/sqlite-autoconf-$_amalgamationver.tar.gz" LICENSE) -sha1sums=('86bfed5752783fb24c051f3efac5972ce11023f0' +sha1sums=('c2f2c17d3dc4c4e179d35cc04e4420636d48a152' 'e2aa07adae13aed713860b74165d3325a18c6792') -options=('!strip' 'staticlibs') +options=('!strip' 'staticlibs' '!buildflags') build() { + [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} CFLAGS+=" -fexceptions -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_ENABLE_RTREE=1 -fno-strict-aliasing" ../sqlite-autoconf-${_amalgamationver}/configure \ @@ -31,6 +32,7 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --enable-threadsafe + make } From a8a3f5c77e925822dacf5ac30384208162811691 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 21 May 2015 16:19:55 +0300 Subject: [PATCH 1037/2060] itk: Download sources to file with proper name. --- mingw-w64-itk/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-itk/PKGBUILD b/mingw-w64-itk/PKGBUILD index c3173e82e1..a96b823d7f 100644 --- a/mingw-w64-itk/PKGBUILD +++ b/mingw-w64-itk/PKGBUILD @@ -22,7 +22,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-vtk") optdepends=("${MINGW_PACKAGE_PREFIX}-opencv: ITK-OpenCV bridge" "${MINGW_PACKAGE_PREFIX}-vtk: ITK-VTK bridge") -source=("https://github.com/InsightSoftwareConsortium/ITK/archive/v${pkgver}.tar.gz") +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/InsightSoftwareConsortium/ITK/archive/v${pkgver}.tar.gz") sha1sums=('1926161605b015f53bb21e3ee3cf132a8b07991b') _src="${_realname}-${pkgver}" From 0835d4398d8deac0bb7b313ea69eb7255410c7ef Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 21 May 2015 21:50:15 +0200 Subject: [PATCH 1038/2060] eog: updated to 3.16.2. --- mingw-w64-eog/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-eog/PKGBUILD b/mingw-w64-eog/PKGBUILD index dd36b65e68..512c0c3b0c 100644 --- a/mingw-w64-eog/PKGBUILD +++ b/mingw-w64-eog/PKGBUILD @@ -2,7 +2,7 @@ _realname=eog pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.1 +pkgver=3.16.2 pkgrel=1 arch=('any') pkgdesc="Eye of GNOME graphics viewer program (mingw-w64)" @@ -30,7 +30,7 @@ source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_real 002-relocation-support.patch 003-fix-install-dirs.patch 004-give-cc-to-gir-scanner.mingw.patch) -sha256sums=('2979d1852397310ad4e04bfa4eb1fa4d9fb342071f0797c9de077fd13607c1e7' +sha256sums=('802f68572d86bbb1e5969a385a76462aa42ea53aba6c65bf7337f528cb0a3c3b' '31db56ea4d64059e60c478a7ba1475d9beaf65f2c42967909adbb41843c2d129' 'a7e897da94d7033fd2ad4d81129f7a60cd0f68bd8d887c079c79cef802d02a4d' 'abc9df56f5fc2213ba6efdcdad269534496d6eda900194b4000910dacf4042d9' @@ -48,6 +48,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} From 691110e3635188597d20eaceb7f8d0eddf5a3cff Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 22 May 2015 08:47:12 +0200 Subject: [PATCH 1039/2060] libical: enabled introspection. --- mingw-w64-libical/002-introspection.patch | 11 +++++++++++ mingw-w64-libical/PKGBUILD | 18 ++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-libical/002-introspection.patch diff --git a/mingw-w64-libical/002-introspection.patch b/mingw-w64-libical/002-introspection.patch new file mode 100644 index 0000000000..a067baaadd --- /dev/null +++ b/mingw-w64-libical/002-introspection.patch @@ -0,0 +1,11 @@ +--- ./cmake/modules/GObjectIntrospectionMacros.cmake.orig 2015-05-22 08:36:36.673111400 +0200 ++++ ./cmake/modules/GObjectIntrospectionMacros.cmake 2015-05-22 08:36:38.510219500 +0200 +@@ -50,7 +50,7 @@ + set(_gir_libtool "--no-libtool") + + add_custom_command( +- COMMAND ${INTROSPECTION_SCANNER} ++ COMMAND CC=${CMAKE_C_COMPILER} ${INTROSPECTION_SCANNER} + ${INTROSPECTION_SCANNER_ARGS} + --namespace=${_gir_namespace} + --nsversion=${_gir_version} diff --git a/mingw-w64-libical/PKGBUILD b/mingw-w64-libical/PKGBUILD index 37deb4ee6d..7aa6d2c85b 100644 --- a/mingw-w64-libical/PKGBUILD +++ b/mingw-w64-libical/PKGBUILD @@ -3,7 +3,7 @@ _realname=libical pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.1 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="An Open Source implementation of the iCalendar protocols and protocol data units (mingw-w64)" license=("LGPL 2.1") @@ -11,17 +11,24 @@ url="https://github.com/libical/libical" depends=() makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") options=('strip' '!debug' 'staticlibs') -source=(https://github.com/${_realname}/${_realname}/archive/v$pkgver.tar.gz - 001-win.patch) +source=("${_realname}-${pkgver}.tar.gz"::https://github.com/${_realname}/${_realname}/archive/v$pkgver.tar.gz + 001-win.patch + 002-introspection.patch) +noextract=(${_realname}-${pkgver}.tar.gz) sha256sums=('7d5f613454ec6c7d1bcfb441c919215be53292aa15cd1cb14249d1413d6c610c' - 'f080396da2203af16ed770141595fed86934df51c2ce40edfeccea23eaf25e00') + 'f080396da2203af16ed770141595fed86934df51c2ce40edfeccea23eaf25e00' + '9dcd3c8fe152a5ce3e2a0b7983df879fb09bab6f3b81497b2530f274c744d31b') prepare() { + tar --exclude=ReadMe.md -zxf ${_realname}-${pkgver}.tar.gz + cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-win.patch + patch -p1 -i ${srcdir}/002-introspection.patch } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -30,6 +37,7 @@ build() { -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DCMAKE_C_FLAGS="${CFLAGS}" \ + -DGOBJECT_INTROSPECTION=true \ -G "MSYS Makefiles" \ ../${_realname}-${pkgver} make @@ -44,4 +52,6 @@ package() { popd > /dev/null sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libical.pc + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 9facf4d62a6d9bfbe1a0dc8c6f63dd7df298734c Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 22 May 2015 08:58:20 +0200 Subject: [PATCH 1040/2060] libical-glib: updated to 1.0.3. --- mingw-w64-libical-glib/PKGBUILD | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libical-glib/PKGBUILD b/mingw-w64-libical-glib/PKGBUILD index bea8736d51..94ecc956f4 100644 --- a/mingw-w64-libical-glib/PKGBUILD +++ b/mingw-w64-libical-glib/PKGBUILD @@ -2,7 +2,7 @@ _realname=libical-glib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.2 +pkgver=1.0.3 pkgrel=1 arch=('any') pkgdesc="An iCalendar library based on libical and introspectable by GObject Introspection (mingw-w64)" @@ -17,21 +17,25 @@ license=("LGPL 2.1") url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch) -sha256sums=('0ea3726bc9aff063b223d071465f2f87ef63507b92c8cb36e45a4e4e48de75a4' +sha256sums=('75373fb778352656c6368ffa7b371afa2fd2e2579874b0ec653a443da7a72d36' '4e34ccb69bd5356071b4d0ee96cf5b7148f6ae7dd3815861dee4fbb8e99156fd') prepare() { cd ${_realname}-${pkgver} - patch -b -V simple -p1 -i ${srcdir}/001-win.patch + patch -p1 -i ${srcdir}/001-win.patch autoreconf -fi } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + mkdir -p docs/reference/${_realname}/html + cp -rf ../${_realname}-${pkgver}/docs/reference/${_realname}/html/* docs/reference/${_realname}/html + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ From 55e5ff7718e64f3fa83f2f2335ac9f001f982d54 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 22 May 2015 09:14:00 +0200 Subject: [PATCH 1041/2060] totem-pl-parser: updated to 3.10.5. --- mingw-w64-totem-pl-parser/001-win.patch | 72 ++----------------------- mingw-w64-totem-pl-parser/PKGBUILD | 10 ++-- 2 files changed, 8 insertions(+), 74 deletions(-) diff --git a/mingw-w64-totem-pl-parser/001-win.patch b/mingw-w64-totem-pl-parser/001-win.patch index 94b017f820..2dc2e5d963 100644 --- a/mingw-w64-totem-pl-parser/001-win.patch +++ b/mingw-w64-totem-pl-parser/001-win.patch @@ -1,39 +1,5 @@ ---- ./m4/intltool.m4.orig 2014-07-23 14:02:09.000000000 +0200 -+++ ./m4/intltool.m4 2015-04-01 21:14:20.543805300 +0200 -@@ -155,31 +155,6 @@ - # Substitute ALL_LINGUAS so we can use it in po/Makefile - AC_SUBST(ALL_LINGUAS) - --# Set DATADIRNAME correctly if it is not set yet --# (copied from glib-gettext.m4) --if test -z "$DATADIRNAME"; then -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[]], -- [[extern int _nl_msg_cat_cntr; -- return _nl_msg_cat_cntr]])], -- [DATADIRNAME=share], -- [case $host in -- *-*-solaris*) -- dnl On Solaris, if bind_textdomain_codeset is in libc, -- dnl GNU format message catalog is always supported, -- dnl since both are added to the libc all together. -- dnl Hence, we'd like to go with DATADIRNAME=share -- dnl in this case. -- AC_CHECK_FUNC(bind_textdomain_codeset, -- [DATADIRNAME=share], [DATADIRNAME=lib]) -- ;; -- *) -- [DATADIRNAME=lib] -- ;; -- esac]) --fi --AC_SUBST(DATADIRNAME) -- - IT_PO_SUBDIR([po]) - - ]) --- ./plparse/Makefile.am.orig 2014-01-13 10:17:47.000000000 +0100 -+++ ./plparse/Makefile.am 2015-04-01 21:14:20.570806300 +0200 ++++ ./plparse/Makefile.am 2015-05-22 09:08:18.937762300 +0200 @@ -194,6 +194,7 @@ INTROSPECTION_GIRS = INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --add-include-path=$(builddir) --warn-all @@ -43,7 +9,7 @@ if HAVE_INTROSPECTION introspection_sources = \ --- ./plparse/plparser.symbols.orig 2011-09-18 12:33:29.000000000 +0200 -+++ ./plparse/plparser.symbols 2015-04-01 21:14:20.578806900 +0200 ++++ ./plparse/plparser.symbols 2015-05-22 09:08:18.939763900 +0200 @@ -4,7 +4,6 @@ totem_cd_get_human_readable_name totem_cd_has_medium @@ -61,7 +27,7 @@ totem_pl_parser_parse totem_pl_parser_parse_async --- ./plparse/totem-pl-parser.c.orig 2015-02-17 15:27:48.000000000 +0100 -+++ ./plparse/totem-pl-parser.c 2015-04-01 21:16:17.484317500 +0200 ++++ ./plparse/totem-pl-parser.c 2015-05-22 09:08:18.942765600 +0200 @@ -662,8 +662,14 @@ static gpointer totem_pl_parser_real_init_i18n (gpointer data) @@ -78,35 +44,3 @@ return NULL; } ---- ./po/Makefile.in.in.orig 2014-07-23 14:02:09.000000000 +0200 -+++ ./po/Makefile.in.in 2015-04-01 21:14:20.596808200 +0200 -@@ -33,8 +33,7 @@ - datadir = @datadir@ - datarootdir = @datarootdir@ - libdir = @libdir@ --DATADIRNAME = @DATADIRNAME@ --itlocaledir = $(prefix)/$(DATADIRNAME)/locale -+localedir = @localedir@ - subdir = po - install_sh = @install_sh@ - # Automake >= 1.8 provides @mkdir_p@. -@@ -108,7 +107,7 @@ - install-data-yes: all - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ -+ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ -@@ -142,8 +141,8 @@ - uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - - check: all $(GETTEXT_PACKAGE).pot diff --git a/mingw-w64-totem-pl-parser/PKGBUILD b/mingw-w64-totem-pl-parser/PKGBUILD index 862ec00592..7a605dce89 100644 --- a/mingw-w64-totem-pl-parser/PKGBUILD +++ b/mingw-w64-totem-pl-parser/PKGBUILD @@ -2,8 +2,8 @@ _realname=totem-pl-parser pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.10.4 -pkgrel=2 +pkgver=3.10.5 +pkgrel=1 arch=('any') pkgdesc="Simple GObject-based library to parse and save a host of playlist formats (mingw-w64)" options=(strip staticlibs) @@ -20,13 +20,13 @@ license=("LGPL 2") url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch) -sha256sums=('482353f8466b1cab06d99c0a112a4adc414bf43b9c8f3bd636570d20d1f4e265' - '30115c31fc0907eea7b71c57a586bee5c93ec1dac59a7778331fddc1416461d1') +sha256sums=('a746580f61b678029dadaa824a6923445afd944d12c40c5fccb27159799c8137' + 'f7aa9fec9fdeb8671bcd145b5900e1beb9b8615cb42354b91efe54fef01a247e') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -b -V simple -p1 -i ${srcdir}/001-win.patch + patch -p1 -i ${srcdir}/001-win.patch autoreconf -f -i } From 7ed2bf831ac09deb7f66e633408642a53ca17208 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 22 May 2015 09:25:52 +0200 Subject: [PATCH 1042/2060] geocode-glib: updated to 3.16.2. --- mingw-w64-geocode-glib/PKGBUILD | 11 +++++++++-- mingw-w64-geocode-glib/geocode-glib-i686.install | 11 +++++++++++ mingw-w64-geocode-glib/geocode-glib-x86_64.install | 11 +++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-geocode-glib/geocode-glib-i686.install create mode 100644 mingw-w64-geocode-glib/geocode-glib-x86_64.install diff --git a/mingw-w64-geocode-glib/PKGBUILD b/mingw-w64-geocode-glib/PKGBUILD index efc59cb2c9..18344b6c39 100644 --- a/mingw-w64-geocode-glib/PKGBUILD +++ b/mingw-w64-geocode-glib/PKGBUILD @@ -2,12 +2,13 @@ _realname=geocode-glib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 +pkgver=3.16.2 pkgrel=1 arch=('any') pkgdesc="geocoding and reverse geocoding GLib library using Yahoo! Place Finder (mingw-w64)" license=("LGPL 2") url="http://www.gnome.org/" +install=${_realname}-${CARCH}.install depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-json-glib" "${MINGW_PACKAGE_PREFIX}-libsoup") @@ -26,7 +27,7 @@ source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_rea 001-locale.patch 002-symbols.patch 003-give-cc-to-gir-scanner.all.patch) -sha256sums=('125f4838ac90c4e372a01f997a1ae34c873ee4ed87e04319986619dd26d86eb1' +sha256sums=('a551ffdbd793d54a14e709c9d02e82dde3abc14eed8065abad92275a43fe2c97' '7379362319bab800b464ae4cf1d33e05f51bf500d8b0f65be63c05036f040c34' 'e7ddcaf273910b35b60991bf1db1d9dcff38bad09123dd43033cddcfbee224b2' '946437e815fc17ddcb4f4c7b52dd80bd1460363e37d211d97ac7ba5e32f49e9a') @@ -42,9 +43,13 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + mkdir -p docs/html + cp -rf ../${_realname}-${pkgver}/docs/html/* docs/html + ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -58,4 +63,6 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" } diff --git a/mingw-w64-geocode-glib/geocode-glib-i686.install b/mingw-w64-geocode-glib/geocode-glib-i686.install new file mode 100644 index 0000000000..a22a9c5c0e --- /dev/null +++ b/mingw-w64-geocode-glib/geocode-glib-i686.install @@ -0,0 +1,11 @@ +post_install() { + mingw32/bin/gtk-update-icon-cache-3.0 -f -t /mingw32/share/icons/hicolor +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/mingw-w64-geocode-glib/geocode-glib-x86_64.install b/mingw-w64-geocode-glib/geocode-glib-x86_64.install new file mode 100644 index 0000000000..522f66d091 --- /dev/null +++ b/mingw-w64-geocode-glib/geocode-glib-x86_64.install @@ -0,0 +1,11 @@ +post_install() { + mingw64/bin/gtk-update-icon-cache-3.0 -f -t /mingw64/share/icons/hicolor +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} From 832301a53927696fa24dec88843bbb262b7d0bd5 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 22 May 2015 09:43:49 +0200 Subject: [PATCH 1043/2060] clutter: updated to 1.2.22. --- mingw-w64-clutter/PKGBUILD | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mingw-w64-clutter/PKGBUILD b/mingw-w64-clutter/PKGBUILD index 4cdb6afc8a..2f7877d7f7 100644 --- a/mingw-w64-clutter/PKGBUILD +++ b/mingw-w64-clutter/PKGBUILD @@ -2,7 +2,7 @@ _realname=clutter pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.22.0 +pkgver=1.22.2 pkgrel=1 pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces. (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname} "0001-msys2-add-header-for-BOOL-defintion.patch" "0002-msys2-add-CC-flags-to-gir-scanner.patch") -md5sums=('788c488d795103e4c201fae1b032cb89' +md5sums=('48398ac43d45916eec03abc7a6e4f2ec' '3a92db8341129b0db058d47f97062f65' '993eabbeb6fa31af855a593956727e6f') @@ -34,10 +34,15 @@ prepare() { } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + mkdir -p doc/reference/cally/html + cp -rf ../${_realname}-${pkgver}/doc/reference/cally/html/* doc/reference/cally/html + mkdir -p doc/reference/clutter/html + cp -rf ../${_realname}-${pkgver}/doc/reference/clutter/html/* doc/reference/clutter/html + ../${_realname}-$pkgver/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -52,4 +57,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From ae88ed6c4e9d34482449da4fb34e8f4d388bb9f4 Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Fri, 22 May 2015 19:35:19 +0600 Subject: [PATCH 1044/2060] armadillo: Use openblas as lapack library, fix dependencies --- mingw-w64-armadillo/PKGBUILD | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index 75d8416d34..2e0e06ed55 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -8,9 +8,10 @@ pkgdesc="C++ linear algebra library (mingw-w64)" arch=('any') url="http://arma.sourceforge.net/" license=(MPL2) -depends=("${MINGW_PACKAGE_PREFIX}-openblas" - "${MINGW_PACKAGE_PREFIX}-lapack") - +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-openblas") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake") source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz) md5sums=('fe57525a4fce94799d1556eb06339bbd') @@ -24,6 +25,7 @@ build() { -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ + -DLAPACK_NAMES=openblas \ .. } package() { From bfa0c08eb47a7273757e235efe324f37117fde5c Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Fri, 22 May 2015 19:38:40 +0600 Subject: [PATCH 1045/2060] armadillo: Add patch to fix default index types --- mingw-w64-armadillo/PKGBUILD | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index 2e0e06ed55..f30249e05e 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -3,7 +3,7 @@ _realname=armadillo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.100.2 -pkgrel=1 +pkgrel=2 pkgdesc="C++ linear algebra library (mingw-w64)" arch=('any') url="http://arma.sourceforge.net/" @@ -12,14 +12,21 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-openblas") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") -source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz) -md5sums=('fe57525a4fce94799d1556eb06339bbd') +source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz + 0001-mingw-config-fix.patch) +md5sums=('fe57525a4fce94799d1556eb06339bbd' + '5ce663ba53e15ee85fcd7a0b01006672') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + patch -Np1 -i "${srcdir}/0001-mingw-config-fix.patch" +} build() { cd "$srcdir/${_realname}-${pkgver}" mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} - + # PATH=${MINGW_PREFIX}/bin \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ From c1458e51a94dea8db1c4e6cfcdedac0cd3547647 Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Fri, 22 May 2015 19:46:41 +0600 Subject: [PATCH 1046/2060] armadillo: Fix build directory --- mingw-w64-armadillo/PKGBUILD | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index f30249e05e..62c01550e9 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -23,9 +23,8 @@ prepare() { } build() { - cd "$srcdir/${_realname}-${pkgver}" - mkdir -p build-${MINGW_CHOST} - cd build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} + mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} # PATH=${MINGW_PREFIX}/bin \ ${MINGW_PREFIX}/bin/cmake.exe \ @@ -33,10 +32,12 @@ build() { -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DLAPACK_NAMES=openblas \ - .. + ../${_realname}-${pkgver} + + make } package() { - cd "${srcdir}/${_realname}-${pkgver}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${CARCH}" make install } From b2a256a70796a6e22e1ea3f03c26b5f60593d3c2 Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Fri, 22 May 2015 19:50:01 +0600 Subject: [PATCH 1047/2060] armadillo: Fix cmake scripts --- mingw-w64-armadillo/PKGBUILD | 10 +++++++++- mingw-w64-armadillo/armadillo-i686.install | 9 +++++++++ mingw-w64-armadillo/armadillo-x86_64.install | 9 +++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-armadillo/armadillo-i686.install create mode 100644 mingw-w64-armadillo/armadillo-x86_64.install diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index 62c01550e9..d18561e3b0 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -12,6 +12,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-openblas") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") +install=${_realname}-${CARCH}.install source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz 0001-mingw-config-fix.patch) md5sums=('fe57525a4fce94799d1556eb06339bbd' @@ -36,8 +37,15 @@ build() { make } + package() { cd "${srcdir}/build-${CARCH}" make install -} + pushd "${pkgdir}${MINGW_PREFIX}" > /dev/null + local _INSTALL_PREFIX_WIN="$(cygpath -m "${pkgdir}${MINGW_PREFIX}")" + local _MINGW_PREFIX_WIN="$(cygpath -m "${MINGW_PREFIX}")" + sed -s -e "s|${_INSTALL_PREFIX_WIN}|${MINGW_PREFIX}|g" \ + -e "s|${_MINGW_PREFIX_WIN}|${MINGW_PREFIX}|g" -i "share/Armadillo/CMake/"*.cmake + popd > /dev/null +} diff --git a/mingw-w64-armadillo/armadillo-i686.install b/mingw-w64-armadillo/armadillo-i686.install new file mode 100644 index 0000000000..5d8ea57482 --- /dev/null +++ b/mingw-w64-armadillo/armadillo-i686.install @@ -0,0 +1,9 @@ +post_install() { + local _prefix="/mingw32" + local _prefix_win="$(cygpath -m "${_prefix}")" + sed -s "s|${_prefix}|${_prefix_win}|g" -i "${_prefix}/share/Armadillo/CMake/"*.cmake +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-armadillo/armadillo-x86_64.install b/mingw-w64-armadillo/armadillo-x86_64.install new file mode 100644 index 0000000000..d91d264725 --- /dev/null +++ b/mingw-w64-armadillo/armadillo-x86_64.install @@ -0,0 +1,9 @@ +post_install() { + local _prefix="/mingw64" + local _prefix_win="$(cygpath -m "${_prefix}")" + sed -s "s|${_prefix}|${_prefix_win}|g" -i "${_prefix}/share/Armadillo/CMake/"*.cmake +} + +post_upgrade() { + post_install +} From c6f472f7d4ee4772e852748f568d402c4876aad6 Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Fri, 22 May 2015 19:50:52 +0600 Subject: [PATCH 1048/2060] armadillo: Add missed patch --- .../0001-mingw-config-fix.patch | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 mingw-w64-armadillo/0001-mingw-config-fix.patch diff --git a/mingw-w64-armadillo/0001-mingw-config-fix.patch b/mingw-w64-armadillo/0001-mingw-config-fix.patch new file mode 100644 index 0000000000..1243ef002d --- /dev/null +++ b/mingw-w64-armadillo/0001-mingw-config-fix.patch @@ -0,0 +1,23 @@ +diff -Naur a/include/armadillo_bits/config.hpp.cmake b/include/armadillo_bits/config.hpp.cmake +--- a/include/armadillo_bits/config.hpp.cmake 2015-04-10 11:54:47.000000000 +0600 ++++ b/include/armadillo_bits/config.hpp.cmake 2015-05-17 14:14:07.119929900 +0600 +@@ -6,7 +6,18 @@ + // License, v. 2.0. If a copy of the MPL was not distributed with this + // file, You can obtain one at http://mozilla.org/MPL/2.0/. + +- ++#if defined(_WIN64) ++ #if !defined(ARMA_BLAS_LONG) && !defined(ARMA_BLAS_LONG_LONG) ++ #define ARMA_BLAS_LONG_LONG ++ #endif ++ #if !defined(ARMA_64BIT_WORD) ++ #define ARMA_64BIT_WORD ++ #endif ++#elif defined(_WIN32) ++ #if !defined(ARMA_32BIT_WORD) ++ #define ARMA_32BIT_WORD ++ #endif ++#endif + + #if !defined(ARMA_USE_LAPACK) + #cmakedefine ARMA_USE_LAPACK From 3386cfe48c87b035c921d386738dcf18fe85e902 Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Fri, 22 May 2015 19:52:11 +0600 Subject: [PATCH 1049/2060] armadillo: Install license file and docs --- mingw-w64-armadillo/PKGBUILD | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index d18561e3b0..0074993d3e 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -47,5 +47,10 @@ package() { local _MINGW_PREFIX_WIN="$(cygpath -m "${MINGW_PREFIX}")" sed -s -e "s|${_INSTALL_PREFIX_WIN}|${MINGW_PREFIX}|g" \ -e "s|${_MINGW_PREFIX_WIN}|${MINGW_PREFIX}|g" -i "share/Armadillo/CMake/"*.cmake + install -d "share/doc/${_realname}-${pkgver}" + install -m644 "${srcdir}/${_realname}-${pkgver}/"*{.html,.png,.pdf,README.txt} \ + "share/doc/${_realname}-${pkgver}/" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" \ + "share/licenses/${_realname}/LICENSE.txt" popd > /dev/null } From 29d2661dd097475a4ef485e7f9c74ef93df7afbe Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Fri, 22 May 2015 19:56:17 +0600 Subject: [PATCH 1050/2060] mlpack: New package --- mingw-w64-mlpack/0001-mingw-w64-cmake.patch | 74 +++++++++++++++++++++ mingw-w64-mlpack/PKGBUILD | 53 +++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 mingw-w64-mlpack/0001-mingw-w64-cmake.patch create mode 100644 mingw-w64-mlpack/PKGBUILD diff --git a/mingw-w64-mlpack/0001-mingw-w64-cmake.patch b/mingw-w64-mlpack/0001-mingw-w64-cmake.patch new file mode 100644 index 0000000000..9cdac9b708 --- /dev/null +++ b/mingw-w64-mlpack/0001-mingw-w64-cmake.patch @@ -0,0 +1,74 @@ +diff -Naur a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt 2015-01-07 22:53:12.000000000 +0600 ++++ b/CMakeLists.txt 2015-05-17 14:07:51.473444100 +0600 +@@ -99,7 +99,7 @@ + # because then we are required to have a FORTRAN compiler (argh!) so we will try + # and find LAPACK and BLAS ourselves, using a slightly modified variant of the + # script Armadillo uses to find these. +-if (WIN32) ++if (WIN32 AND NOT MINGW) + find_library(LAPACK_LIBRARY + NAMES lapack liblapack lapack_win32_MT lapack_win32 + PATHS "C:/Program Files/Armadillo" +@@ -121,14 +121,14 @@ + # Piggyback LAPACK and BLAS linking into Armadillo link. + set(ARMADILLO_LIBRARIES + "${ARMADILLO_LIBRARIES};${BLAS_LIBRARY};${LAPACK_LIBRARY}") +-endif (WIN32) ++endif (WIN32 AND NOT MINGW) + + find_package(LibXml2 2.6.0 REQUIRED) + + # On Windows, LibXml2 has a couple dependencies and we want to make sure they + # exist. We don't need the include directory, so we just use a find_library + # call, looking for .dlls. +-if (WIN32) ++if (WIN32 AND NOT MINGW) + # Find a .dll, not a .lib, because libxml2 is probably dynamically linked. + set(CMAKE_OLD_SUFFIXES "${CMAKE_FIND_LIBRARY_SUFFIXES}") + set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll") +@@ -161,7 +161,7 @@ + + # Reset suffixes. + set(CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_OLD_SUFFIXES}") +-endif (WIN32) ++endif (WIN32 AND NOT MINGW) + + # Include directories for the previous dependencies. + include_directories(${ARMADILLO_INCLUDE_DIRS}) +@@ -185,10 +185,10 @@ + # On Windows, automatic linking is performed, so we don't need to worry about + # it. Clear the list of libraries to link against and let Visual Studio handle + # it. +-if (WIN32) ++if (WIN32 AND NOT MINGW) + link_directories(${Boost_LIBRARY_DIRS}) + set(Boost_LIBRARIES "") +-endif (WIN32) ++endif (WIN32 AND NOT MINGW) + + # For Boost testing framework (will have no effect on non-testing executables). + # This specifies to Boost that we are dynamically linking to the Boost test +@@ -202,11 +202,11 @@ + include_directories(${CMAKE_SOURCE_DIR}) + + # On Windows, things end up under Debug/ or Release/. +-if (WIN32) ++if (WIN32 AND NOT MINGW) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +-else (WIN32) ++else (WIN32 AND NOT MINGW) + # If not on Windows, put them under more standard UNIX-like places. This is + # necessary, otherwise they would all end up in + # ${CMAKE_BINARY_DIR}/src/mlpack/methods/... or somewhere else random like +@@ -214,7 +214,7 @@ + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/) +-endif (WIN32) ++endif (WIN32 AND NOT MINGW) + + # Determine whether or not this is a subversion repository, so that we can set + # the trunk revision if necessary for --version (#309). diff --git a/mingw-w64-mlpack/PKGBUILD b/mingw-w64-mlpack/PKGBUILD new file mode 100644 index 0000000000..0960c034e7 --- /dev/null +++ b/mingw-w64-mlpack/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer: Sergey Popov + +_realname=mlpack +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.0.12 +pkgrel=1 +pkgdesc='An intuitive, fast, scalable C++ machine learning library (mingw-w64)' +arch=('any') +url='http://mlpack.org/' +license=('BSD') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-armadillo" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-libxml2") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake") +source=("https://github.com/mlpack/mlpack/archive/${_realname}-${pkgver}.tar.gz" + "0001-mingw-w64-cmake.patch") +sha1sums=('2c2c34e74ce8ea994e055b4aa8d627bc4661ea40' + '2680dd0058fa952df8ec0b7c0617c7d30468016b') +_src="mlpack-mlpack-${pkgver}" + +prepare() { + cd "${srcdir}/${_src}" + patch -Np1 -i "${srcdir}/0001-mingw-w64-cmake.patch" +} + +build() { + CFLAGS+=" ${CPPFLAGS}" + CXXFLAGS+=" ${CPPFLAGS} -std=gnu++11" + + [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" + mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}" + + "${MINGW_PREFIX}/bin/cmake.exe" -Wno-dev \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX="${pkgdir}${MINGW_PREFIX}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + "../${_src}" + + make +} + +package() { + cd "${srcdir}/build-${CARCH}" + make -j1 install + + pushd "${pkgdir}${MINGW_PREFIX}" > /dev/null + install -Dm644 "${srcdir}/${_src}/COPYRIGHT.txt" "share/licenses/${_realname}/COPYRIGHT.txt" + install -Dm644 "${srcdir}/${_src}/LICENSE.txt" "share/licenses/${_realname}/LICENSE.txt" + popd > /dev/null +} From 493a19f2ce6c36081dfb5a24149c0efade3e431a Mon Sep 17 00:00:00 2001 From: oscar Date: Fri, 22 May 2015 18:36:42 +0200 Subject: [PATCH 1051/2060] Update tcllib to version 1.17 --- mingw-w64-tcllib/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-tcllib/PKGBUILD b/mingw-w64-tcllib/PKGBUILD index faf2a83d24..c5cf9236d2 100644 --- a/mingw-w64-tcllib/PKGBUILD +++ b/mingw-w64-tcllib/PKGBUILD @@ -4,7 +4,7 @@ _realname=tcllib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.16 +pkgver=1.17 pkgrel=1 pkgdesc="Set of pure-Tcl extensions." arch=('any') @@ -12,7 +12,7 @@ url="http://core.tcl.tk/tcllib/" license=('bsd') depends=("${MINGW_PACKAGE_PREFIX}-tcl") source=(https://github.com/tcltk/tcllib/archive/tcllib_${pkgver/./_}.tar.gz) -md5sums=('6ebc460a3f5bfb09eb722bf123165c24') +md5sums=('081ec241c1a9c60730b8c6e80b7ff066') package(){ cd ${srcdir}/tcllib-tcllib_${pkgver/./_} From 438456d7ecaf6b443cee9f46155b42cf2df4b898 Mon Sep 17 00:00:00 2001 From: Alexander Shukaev Date: Fri, 22 May 2015 21:26:53 +0200 Subject: [PATCH 1052/2060] tor: New package --- mingw-w64-tor/PKGBUILD | 50 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 mingw-w64-tor/PKGBUILD diff --git a/mingw-w64-tor/PKGBUILD b/mingw-w64-tor/PKGBUILD new file mode 100644 index 0000000000..40ef2abf92 --- /dev/null +++ b/mingw-w64-tor/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: Haroogan + +_realname='tor' +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.2.6.8 +pkgrel=1 +pkgdesc="Anonymizing overlay network (mingw-w64)" +url="http://www.torproject.org/" +license=('BSD') +arch=('any') +depends=("${MINGW_PACKAGE_PREFIX}-libevent" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-ca-certificates") +options=('strip') +source=("http://dist.torproject.org/${_realname}-${pkgver}.tar.gz"{,.asc}) +sha256sums=('b88b363896454250c3f561b0b48479f18295c93596d2e81baa10c5a3ae609a76' + 'SKIP') +validpgpkeys=('B35BF85BF19489D04E28C33C21194EBB165733EA') # Nick Mathewson + +build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + + cd "build-${MINGW_CHOST}" + + CPPFLAGS="-isystem ${MINGW_PREFIX}/include" + CFLAGS="-pipe -O3 -fomit-frame-pointer -funroll-loops" + LDFLAGS="-s -Wl,-s" + "${srcdir}/${_realname}-${pkgver}/configure" \ + --prefix="${MINGW_PREFIX}" \ + --build="${MINGW_CHOST}" \ + --disable-bufferevents \ + --disable-seccomp \ + --disable-libscrypt + + make +} + +package() { + cd "build-${MINGW_CHOST}" + + make DESTDIR="${pkgdir}" install + + cd "${srcdir}/${_realname}-${pkgver}" + + install -D "LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -d "${pkgdir}${MINGW_PREFIX}/var/lib/tor" +} From 184b5bfd56a71fd730fe6e9a4004976962ce1bdc Mon Sep 17 00:00:00 2001 From: David Macek Date: Fri, 22 May 2015 20:50:23 +0200 Subject: [PATCH 1053/2060] portmidi: New library --- mingw-w64-portmidi/PKGBUILD | 61 +++++++++++++++++++ .../enable-install-on-windows.patch | 29 +++++++++ 2 files changed, 90 insertions(+) create mode 100644 mingw-w64-portmidi/PKGBUILD create mode 100644 mingw-w64-portmidi/enable-install-on-windows.patch diff --git a/mingw-w64-portmidi/PKGBUILD b/mingw-w64-portmidi/PKGBUILD new file mode 100644 index 0000000000..673dae4327 --- /dev/null +++ b/mingw-w64-portmidi/PKGBUILD @@ -0,0 +1,61 @@ +# Maintainer: David Macek + +_realname=portmidi +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=217 +pkgrel=1 +pkgdesc="Platform independent library for real-time MIDI input/output (mingw-w64)" +arch=('any') +url="http://portmedia.sourceforge.net/" +license=("custom") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +source=("http://downloads.sourceforge.net/portmedia/portmidi/${pkgver}/portmidi-src-${pkgver}.zip" + enable-install-on-windows.patch) +md5sums=('03f46fd3947e2ef4c8c465baaf832241' + 'dbff55c9f23f13002dd2ec6452641352') + +prepare() { + cd portmidi + patch -p1 -i "${srcdir}/enable-install-on-windows.patch" +} + +build() { + # we don't have Java yet, so we fake it + + mkdir -p "build-${MINGW_CHOST}" + cd "build-${MINGW_CHOST}" + cmake ../portmidi \ + -G "MSYS Makefiles" \ + -DCMAKE_BUILD_TYPE=Release \ + -DJAVA_INCLUDE_PATH= -DJAVA_INCLUDE_PATH2= -DJAVA_JVM_LIBRARY= \ + -DCMAKE_INSTALL_PREFIX:PATH=${MINGW_PREFIX} + + make -t pmjni + make +} + +package() { + cd "build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + + # fix install destination + mv "${pkgdir}/usr/local" "${pkgdir}${MINGW_PREFIX}" + rm -r "${pkgdir}/usr" + + # remove unnecessary difference in libname + mv "${pkgdir}${MINGW_PREFIX}/lib"/{libportmidi_s.a,libportmidi.a} + + # install missing DLL + install -Dm0755 libportmidi.dll "${pkgdir}${MINGW_PREFIX}/bin/libportmidi.dll" + + # install executables + for exe in latency.exe midiclock.exe midithread.exe midithru.exe mm.exe qtest.exe sysex.exe test.exe; do + install -Dm0755 "pm_test/${exe}" "${pkgdir}${MINGW_PREFIX}/bin/pm-${exe}" + done + + # install license + install -Dm0755 "${srcdir}/portmidi/license.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/license.txt" +} diff --git a/mingw-w64-portmidi/enable-install-on-windows.patch b/mingw-w64-portmidi/enable-install-on-windows.patch new file mode 100644 index 0000000000..974c0be7d1 --- /dev/null +++ b/mingw-w64-portmidi/enable-install-on-windows.patch @@ -0,0 +1,29 @@ +diff -waur portmidi.orig/pm_common/CMakeLists.txt portmidi/pm_common/CMakeLists.txt +--- portmidi.orig/pm_common/CMakeLists.txt 2010-09-20 21:57:48.000000000 +0200 ++++ portmidi/pm_common/CMakeLists.txt 2015-05-22 20:36:22.411620600 +0200 +@@ -118,11 +118,9 @@ + set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib") + + # install the libraries (Linux and Mac OS X command line) +-if(UNIX) + INSTALL(TARGETS portmidi-static pmjni + LIBRARY DESTINATION /usr/local/lib + ARCHIVE DESTINATION /usr/local/lib) + # .h files installed by pm_dylib/CMakeLists.txt, so don't need them here + # INSTALL(FILES portmidi.h ../porttime/porttime.h + # DESTINATION /usr/local/include) +-endif(UNIX) +diff -waur portmidi.orig/pm_dylib/CMakeLists.txt portmidi/pm_dylib/CMakeLists.txt +--- portmidi.orig/pm_dylib/CMakeLists.txt 2009-11-20 06:41:09.000000000 +0100 ++++ portmidi/pm_dylib/CMakeLists.txt 2015-05-22 20:36:15.356939500 +0200 +@@ -118,10 +118,8 @@ + target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS}) + + # install the libraries (Linux and Mac OS X command line) +-if(UNIX) + INSTALL(TARGETS portmidi-dynamic + LIBRARY DESTINATION /usr/local/lib + ARCHIVE DESTINATION /usr/local/lib) + INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h + DESTINATION /usr/local/include) +-endif(UNIX) From b0373a210417cc9a2d026b36c68a867e48bf52de Mon Sep 17 00:00:00 2001 From: Ebrahim Byagowi Date: Sat, 23 May 2015 01:20:17 +0430 Subject: [PATCH 1054/2060] Add ragel as a tool --- mingw-w64-ragel/PKGBUILD | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 mingw-w64-ragel/PKGBUILD diff --git a/mingw-w64-ragel/PKGBUILD b/mingw-w64-ragel/PKGBUILD new file mode 100644 index 0000000000..2109963367 --- /dev/null +++ b/mingw-w64-ragel/PKGBUILD @@ -0,0 +1,31 @@ +# Maintainer: Ebrahim Byagowi + +_realname=ragel +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=6.9 +pkgrel=1 +pkgdesc="Compiles finite state machines from regular languages into executable C, C++, Objective-C, or D code. (mingw-w64)" +arch=('any') +url="http://www.colm.net/open-source/ragel/" +license=('GPL') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +source=("http://www.colm.net/files/${_realname}/${_realname}-$pkgver.tar.gz") +md5sums=('0c3110d7f17f7af4d9cb774443898dc1') + +build() { + cd "$srcdir/${_realname}-$pkgver" + + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} + make +} + +package() { + cd "$srcdir/${_realname}-$pkgver" + + make DESTDIR="$pkgdir/" install + install -m0644 -D ragel.vim "$pkgdir"${MINGW_PREFIX}/share/vim/vimfiles/syntax/ragel.vim +} From fab019fcbe23c85990a5edbc09c323771c414305 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 23 May 2015 09:54:46 +0300 Subject: [PATCH 1055/2060] portmidi: Fix build system --- mingw-w64-portmidi/PKGBUILD | 25 +++++------- .../enable-install-on-windows.patch | 40 +++++++++++-------- 2 files changed, 34 insertions(+), 31 deletions(-) diff --git a/mingw-w64-portmidi/PKGBUILD b/mingw-w64-portmidi/PKGBUILD index 673dae4327..2daf3a0958 100644 --- a/mingw-w64-portmidi/PKGBUILD +++ b/mingw-w64-portmidi/PKGBUILD @@ -15,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") source=("http://downloads.sourceforge.net/portmedia/portmidi/${pkgver}/portmidi-src-${pkgver}.zip" enable-install-on-windows.patch) md5sums=('03f46fd3947e2ef4c8c465baaf832241' - 'dbff55c9f23f13002dd2ec6452641352') + 'dced99fe09c80cd3892a314f8ffedb5b') prepare() { cd portmidi @@ -25,13 +25,18 @@ prepare() { build() { # we don't have Java yet, so we fake it + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "build-${MINGW_CHOST}" cd "build-${MINGW_CHOST}" - cmake ../portmidi \ + ${MINGW_PREFIX}/bin/cmake \ + -Wno-dev \ -G "MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX="${pkgdir}${MINGW_PREFIX}" \ -DCMAKE_BUILD_TYPE=Release \ - -DJAVA_INCLUDE_PATH= -DJAVA_INCLUDE_PATH2= -DJAVA_JVM_LIBRARY= \ - -DCMAKE_INSTALL_PREFIX:PATH=${MINGW_PREFIX} + -DJAVA_INCLUDE_PATH= \ + -DJAVA_INCLUDE_PATH2= \ + -DJAVA_JVM_LIBRARY= \ + ../portmidi make -t pmjni make @@ -39,17 +44,7 @@ build() { package() { cd "build-${MINGW_CHOST}" - make DESTDIR="${pkgdir}" install - - # fix install destination - mv "${pkgdir}/usr/local" "${pkgdir}${MINGW_PREFIX}" - rm -r "${pkgdir}/usr" - - # remove unnecessary difference in libname - mv "${pkgdir}${MINGW_PREFIX}/lib"/{libportmidi_s.a,libportmidi.a} - - # install missing DLL - install -Dm0755 libportmidi.dll "${pkgdir}${MINGW_PREFIX}/bin/libportmidi.dll" + make install # install executables for exe in latency.exe midiclock.exe midithread.exe midithru.exe mm.exe qtest.exe sysex.exe test.exe; do diff --git a/mingw-w64-portmidi/enable-install-on-windows.patch b/mingw-w64-portmidi/enable-install-on-windows.patch index 974c0be7d1..f7ddc8f250 100644 --- a/mingw-w64-portmidi/enable-install-on-windows.patch +++ b/mingw-w64-portmidi/enable-install-on-windows.patch @@ -1,29 +1,37 @@ diff -waur portmidi.orig/pm_common/CMakeLists.txt portmidi/pm_common/CMakeLists.txt --- portmidi.orig/pm_common/CMakeLists.txt 2010-09-20 21:57:48.000000000 +0200 +++ portmidi/pm_common/CMakeLists.txt 2015-05-22 20:36:22.411620600 +0200 -@@ -118,11 +118,9 @@ - set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib") +@@ -106,7 +106,7 @@ - # install the libraries (Linux and Mac OS X command line) --if(UNIX) - INSTALL(TARGETS portmidi-static pmjni - LIBRARY DESTINATION /usr/local/lib - ARCHIVE DESTINATION /usr/local/lib) + # now add the shared files to make the complete list of library sources + add_library(portmidi-static ${LIBSRC}) +-set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s") ++set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi") + target_link_libraries(portmidi-static ${PM_NEEDED_LIBS}) + + # define the jni library +@@ -124,4 +118,9 @@ # .h files installed by pm_dylib/CMakeLists.txt, so don't need them here # INSTALL(FILES portmidi.h ../porttime/porttime.h # DESTINATION /usr/local/include) --endif(UNIX) ++else(UNIX) ++ INSTALL(TARGETS portmidi-static pmjni ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib) + endif(UNIX) diff -waur portmidi.orig/pm_dylib/CMakeLists.txt portmidi/pm_dylib/CMakeLists.txt --- portmidi.orig/pm_dylib/CMakeLists.txt 2009-11-20 06:41:09.000000000 +0100 +++ portmidi/pm_dylib/CMakeLists.txt 2015-05-22 20:36:15.356939500 +0200 -@@ -118,10 +118,8 @@ - target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS}) - - # install the libraries (Linux and Mac OS X command line) --if(UNIX) - INSTALL(TARGETS portmidi-dynamic - LIBRARY DESTINATION /usr/local/lib +@@ -124,4 +124,11 @@ ARCHIVE DESTINATION /usr/local/lib) INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h DESTINATION /usr/local/include) --endif(UNIX) ++else(UNIX) ++ INSTALL(TARGETS portmidi-dynamic ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib) ++ INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h ++ DESTINATION include) + endif(UNIX) From 606b8aa8c36df4e41432d397bb5a15c3bbe360fc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 23 May 2015 10:00:53 +0300 Subject: [PATCH 1056/2060] ragel: Build outside sources tree. --- mingw-w64-ragel/PKGBUILD | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mingw-w64-ragel/PKGBUILD b/mingw-w64-ragel/PKGBUILD index 2109963367..df3dbdde4a 100644 --- a/mingw-w64-ragel/PKGBUILD +++ b/mingw-w64-ragel/PKGBUILD @@ -14,18 +14,21 @@ source=("http://www.colm.net/files/${_realname}/${_realname}-$pkgver.tar.gz") md5sums=('0c3110d7f17f7af4d9cb774443898dc1') build() { - cd "$srcdir/${_realname}-$pkgver" + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + mkdir -p "build-${MINGW_CHOST}" + cd "build-${MINGW_CHOST}" - ./configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} + make } package() { - cd "$srcdir/${_realname}-$pkgver" + cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir/" install - install -m0644 -D ragel.vim "$pkgdir"${MINGW_PREFIX}/share/vim/vimfiles/syntax/ragel.vim + make DESTDIR="${pkgdir}" install + install -m0644 -D ${srcdir}/${_realname}-${pkgver}/ragel.vim "$pkgdir"${MINGW_PREFIX}/share/vim/vimfiles/syntax/ragel.vim } From cc0bed41fa7e1218c4910fc42287efffc2cd4861 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 23 May 2015 11:34:56 +0300 Subject: [PATCH 1057/2060] postgresql: Update to 9.4.2 --- mingw-w64-postgresql/PKGBUILD | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/mingw-w64-postgresql/PKGBUILD b/mingw-w64-postgresql/PKGBUILD index 770d3ad7b4..2db7c2717a 100644 --- a/mingw-w64-postgresql/PKGBUILD +++ b/mingw-w64-postgresql/PKGBUILD @@ -2,7 +2,7 @@ _realname=postgresql pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=9.4.1 +pkgver=9.4.2 pkgrel=1 pkgdesc="Libraries for use with PostgreSQL (mingw-w64)" arch=('any') @@ -12,16 +12,16 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-python2") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-openssl" - #"${MINGW_PACKAGE_PREFIX}-readline" - #"${MINGW_PACKAGE_PREFIX}-wineditline" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-tcl" - "${MINGW_PACKAGE_PREFIX}-libxslt" - "${MINGW_PACKAGE_PREFIX}-python2" - "winpty-git") + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-tcl" + #"${MINGW_PACKAGE_PREFIX}-readline" + #"${MINGW_PACKAGE_PREFIX}-wineditline" + "${MINGW_PACKAGE_PREFIX}-zlib" + "winpty-git") options=('staticlibs' 'strip') source=("http://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2" postgresql-9.4.1-mingw-link.patch @@ -29,7 +29,7 @@ source=("http://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.ta postgresql-9.4.1-pl-python.patch postgresql-9.4.1-pl-tcl.patch postgresql-9.4.1-mingw-enable-readline.patch) -md5sums=('2cf30f50099ff1109d0aa517408f8eff' +md5sums=('b6369156607a4fd88f21af6fec0f30b9' '1d1499234e555afa688f645ef3825450' '572932c6f0fc795aba4d5bb91e1fe4ba' '381c984fc2eb2c22c35aed62bedeb7fa' From 80bc5b61aa19b2134b81d28f40b4709dd2151053 Mon Sep 17 00:00:00 2001 From: Shreeshrii Date: Sat, 23 May 2015 14:55:44 +0530 Subject: [PATCH 1058/2060] Prepare for upcoming 3.04 release 1. msys2 patches have already been applied in 3.04 rc1 2. change to use the current version from master branch 3. "We transferred code to https://github.com/tesseract-ocr/ and it looks like 3.04 release is very close. So this is the best time for testing and patching build/packaging system especially, it they want to have it in official release. Of course other patches are welcomed too." --- mingw-w64-tesseract-ocr/PKGBUILD | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/mingw-w64-tesseract-ocr/PKGBUILD b/mingw-w64-tesseract-ocr/PKGBUILD index 46f8a01368..84eab02142 100644 --- a/mingw-w64-tesseract-ocr/PKGBUILD +++ b/mingw-w64-tesseract-ocr/PKGBUILD @@ -3,7 +3,7 @@ _realname=tesseract-ocr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.03.298e31465a44 +pkgver=3.04.rc1.master pkgrel=1 pkgdesc="Tesseract OCR (mingw-w64)" arch=('any') @@ -17,16 +17,12 @@ depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-pango ${MINGW_PACKAGE_PREFIX}-zlib) options=('!libtool' 'strip') -source=("https://tesseract-ocr.googlecode.com/archive/298e31465a445e54defedd076217ff24b1af3fc2.tar.gz" - "0001-Fix-broken_MSC_VER-checks.patch" - "0002-Use-intptr_t-for-pointer-cast-target.patch") +source=("https://tesseract-ocr.googlecode.com/archive/master.tar.gz" +) sha256sums=('SKIP' - '69e00058dd7c32c2c205dc1247b07edd43b3ba30faa4af67b646a8f7b58c6494' - '5a74ecf3d06f950064b7d570166629497940d491c85dda5b65defa66f65d47aa') +) prepare() { - cd "$srcdir/${_realname}-298e31465a44" - patch -p1 -i "${srcdir}"/0001-Fix-broken_MSC_VER-checks.patch - patch -p1 -i "${srcdir}"/0002-Use-intptr_t-for-pointer-cast-target.patch + cd "$srcdir/${_realname}-master" ./autogen.sh } @@ -39,7 +35,7 @@ build() { extra_config+=( --enable-debug ) fi - ${srcdir}/${_realname}-298e31465a44/configure \ + ${srcdir}/${_realname}-master/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ From 6e57a2fd8abae6bf572ae4ed69e26df6e60e0fc0 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 22 May 2015 13:03:38 +0200 Subject: [PATCH 1059/2060] gtk3: enabled broadway backend. --- .../0056-missing-file-toarray-pl.patch | 24 +++++++++++++++++++ mingw-w64-gtk3/PKGBUILD | 14 ++++++++--- 2 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-gtk3/0056-missing-file-toarray-pl.patch diff --git a/mingw-w64-gtk3/0056-missing-file-toarray-pl.patch b/mingw-w64-gtk3/0056-missing-file-toarray-pl.patch new file mode 100644 index 0000000000..6190d57d03 --- /dev/null +++ b/mingw-w64-gtk3/0056-missing-file-toarray-pl.patch @@ -0,0 +1,24 @@ +--- gtk+-3.16.3/gdk/broadway/toarray.pl.orig 2015-05-22 10:42:30.757696900 +0200 ++++ gtk+-3.16.3/gdk/broadway/toarray.pl 2015-05-22 10:41:22.504687500 +0200 +@@ -0,0 +1,21 @@ ++#!/usr/bin/perl -w ++ ++my $ARRAYNAME = $ARGV[0]; ++my $first = 0; ++print "static const char $ARRAYNAME\[\] = {"; ++ ++for ($i = 1; $i <= $#ARGV; $i = $i + 1) { ++ my $FILENAME = $ARGV[$i]; ++ open FILE, $FILENAME or die "Cannot open $FILENAME"; ++ while (my $line = ) { ++ foreach my $c (split //, $line) { ++ if ($first == 1) { ++ printf (",\n"); ++ } ++ printf ("0x%02x", ord ($c)); ++ $first = 1; ++ } ++ } ++} ++ ++print "};\n"; diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 88f9670ebb..bd501592c2 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.3 -pkgrel=1 +pkgrel=2 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -33,14 +33,16 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0035-enable-rgba-w32-windows.all.patch 0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch 0054-no-transparency-for-children.all.patch - 0055-skip-testsuite.all.patch) + 0055-skip-testsuite.all.patch + 0056-missing-file-toarray-pl.patch) md5sums=('af22a1a753ea9b182babfed9d8b38228' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' '3aa19ea25cc1d7693ae57f8e80f88440' 'ad383a497a9134355e0a549f844c3a33' '31d098e6856ddc8dde7259ae572f8bf1' - '939ecf0b7c985e947c6bf48dfd3b8df0') + '939ecf0b7c985e947c6bf48dfd3b8df0' + 'f25cb2486d761b60e04036947552bf82') prepare() { cd "${srcdir}/gtk+-${pkgver}" @@ -51,6 +53,9 @@ prepare() { patch -Np1 -i "${srcdir}"/0054-no-transparency-for-children.all.patch #patch -Np1 -i "${srcdir}"/0055-skip-testsuite.all.patch + echo "" > gdk/broadway/toarray.pl + patch -p1 -i ${srcdir}/0056-missing-file-toarray-pl.patch + autoreconf -i } @@ -67,6 +72,7 @@ build() { --disable-gtk2-dependency \ --enable-shared \ --enable-introspection \ + --enable-broadway-backend \ --disable-cups \ --with-included-immodules make @@ -80,4 +86,6 @@ package() { mv ${pkgdir}${MINGW_PREFIX}/bin/gtk-update-icon-cache{,-3.0}.exe mv ${pkgdir}${MINGW_PREFIX}/share/man/man1/gtk-update-icon-cache{,-3.0}.1 + + install -Dm644 "${srcdir}/gtk+-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From d1e3b24d17d3b5e8a27236572056e5f624596493 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sat, 23 May 2015 14:04:54 +0200 Subject: [PATCH 1060/2060] fossil: Update to v1.33 --- mingw-w64-fossil/PKGBUILD | 12 ++++----- mingw-w64-fossil/win.patch | 53 ++++++++++++++++++-------------------- 2 files changed, 31 insertions(+), 34 deletions(-) diff --git a/mingw-w64-fossil/PKGBUILD b/mingw-w64-fossil/PKGBUILD index bf8b980591..c8ebc866bc 100644 --- a/mingw-w64-fossil/PKGBUILD +++ b/mingw-w64-fossil/PKGBUILD @@ -1,11 +1,11 @@ # Contributor (MSYS2): David Macek -# Maintainer (Arch Linux): Anatol Pomozov +# Maintainer (Arch Linux): Anatol Pomozov # Contributor (Arch Linux): Daniel YC Lin # Contributor (Arch Linux): Konstantin Plotnikov _realname=fossil pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.32 +pkgver=1.33 pkgrel=1 pkgdesc='Simple, high-reliability, distributed software configuration management (mingw-w64)' arch=('any') @@ -18,11 +18,11 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-tcl") optdepends=("${MINGW_PACKAGE_PREFIX}-putty: SSH transport") source=("https://www.fossil-scm.org/download/${_realname}-src-${pkgver}.tar.gz" "win.patch") -sha256sums=('cd79c333eb9e86fbb8c17bf5cdf31c387e4ab768eede623aed21adfdbcad686e' - '6fea72791e000134508a4d33269ffc9d811a9613cad8685dd62d7ef33689dca7') +sha256sums=('6295c48289456f09e86099988058a12148dbe0051b72d413b4dff7216d6a7f3e' + '33bacb372f8e9a7b9508d17c013302a2ce9b30828e5623fd6126619f2f51b327') prepare() { - cd "${srcdir}/${_realname}-${pkgver}" + cd "${srcdir}/${_realname}-src-${pkgver}" patch -p1 -i "${srcdir}/win.patch" # this doesn't get expanded, so delete it just to be sure sed -i '/ENABLE_MINIZ/d' Makefile.in @@ -31,7 +31,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - MSYS2_ARG_CONV_EXCL=--prefix ../${_realname}-${pkgver}/configure \ + MSYS2_ARG_CONV_EXCL=--prefix ../${_realname}-src-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-fossil/win.patch b/mingw-w64-fossil/win.patch index f479f77eca..41ad0760e5 100644 --- a/mingw-w64-fossil/win.patch +++ b/mingw-w64-fossil/win.patch @@ -1,7 +1,8 @@ -diff -Naur orig/Makefile.in fossil-1.32/Makefile.in ---- orig/Makefile.in 2015-03-14 14:20:34.000000000 +0100 -+++ fossil-1.32/Makefile.in 2015-03-15 18:56:34.462619100 +0100 -@@ -39,10 +39,10 @@ +diff -aur fossil-src-1.33.orig/Makefile.in fossil-src-1.33/Makefile.in +--- fossil-src-1.33.orig/Makefile.in 2015-05-23 13:11:31.000000000 +0200 ++++ fossil-src-1.33/Makefile.in 2015-05-23 13:53:28.251995600 +0200 +@@ -38,7 +38,7 @@ + # TCLSH = tclsh -LIB = @LDFLAGS@ @EXTRA_LDFLAGS@ @LIBS@ @@ -9,14 +10,10 @@ diff -Naur orig/Makefile.in fossil-1.32/Makefile.in TCCFLAGS = @EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H -D_HAVE_SQLITE_CONFIG_H INSTALLDIR = $(DESTDIR)@prefix@/bin USE_SYSTEM_SQLITE = @USE_SYSTEM_SQLITE@ - FOSSIL_ENABLE_MINIZ = @FOSSIL_ENABLE_MINIZ@ - - include $(SRCDIR)/main.mk - -diff -Naur orig/src/checkin.c fossil-1.32/src/checkin.c ---- orig/src/checkin.c 2015-03-14 14:20:34.000000000 +0100 -+++ fossil-1.32/src/checkin.c 2015-03-15 19:09:44.570333300 +0100 -@@ -841,15 +841,6 @@ +diff -aur fossil-src-1.33.orig/src/checkin.c fossil-src-1.33/src/checkin.c +--- fossil-src-1.33.orig/src/checkin.c 2015-05-23 13:11:31.000000000 +0200 ++++ fossil-src-1.33/src/checkin.c 2015-05-23 13:54:26.116750700 +0200 +@@ -859,15 +859,6 @@ if( zEditor==0 ){ zEditor = fossil_getenv("EDITOR"); } @@ -32,7 +29,7 @@ diff -Naur orig/src/checkin.c fossil-1.32/src/checkin.c if( zEditor==0 ){ blob_append(pPrompt, "#\n" -@@ -867,9 +858,6 @@ +@@ -885,9 +876,6 @@ blob_str(&fname)); blob_reset(&fname); } @@ -42,7 +39,7 @@ diff -Naur orig/src/checkin.c fossil-1.32/src/checkin.c blob_write_to_file(pPrompt, zFile); if( zEditor ){ zCmd = mprintf("%s \"%s\"", zEditor, zFile); -@@ -936,16 +924,7 @@ +@@ -954,16 +942,7 @@ int parent_rid ){ Blob prompt; @@ -50,7 +47,7 @@ diff -Naur orig/src/checkin.c fossil-1.32/src/checkin.c - int bomSize; - const unsigned char *bom = get_utf8_bom(&bomSize); - blob_init(&prompt, (const char *) bom, bomSize); -- if( zInit && zInit[0]) { +- if( zInit && zInit[0]){ - blob_append(&prompt, zInit, -1); - } -#else @@ -58,10 +55,10 @@ diff -Naur orig/src/checkin.c fossil-1.32/src/checkin.c -#endif blob_append(&prompt, "\n" - "# Enter a commit message for this check-in. Lines beginning with # are ignored.\n" -diff -Naur orig/src/db.c fossil-1.32/src/db.c ---- orig/src/db.c 2015-03-14 14:20:34.000000000 +0100 -+++ fossil-1.32/src/db.c 2015-03-15 19:11:17.812005900 +0100 + "# Enter a commit message for this check-in." +diff -aur fossil-src-1.33.orig/src/db.c fossil-src-1.33/src/db.c +--- fossil-src-1.33.orig/src/db.c 2015-05-23 13:11:31.000000000 +0200 ++++ fossil-src-1.33/src/db.c 2015-05-23 13:55:02.561878900 +0200 @@ -928,41 +928,20 @@ db_close_config(); } @@ -124,10 +121,10 @@ diff -Naur orig/src/db.c fossil-1.32/src/db.c } if( zUser==0 ){ zUser = "root"; -@@ -2250,11 +2230,7 @@ - fossil_fatal("already within an open tree rooted at %s", g.zLocalRoot); +@@ -2253,11 +2233,7 @@ + g.allowSymlinks = db_get_boolean("allow-symlinks", 0); } - db_open_repository(g.argv[2]); + -#if defined(_WIN32) || defined(__CYGWIN__) -# define LOCALDB_NAME "./_FOSSIL_" -#else @@ -136,9 +133,9 @@ diff -Naur orig/src/db.c fossil-1.32/src/db.c db_init_database(LOCALDB_NAME, zLocalSchema, #ifdef FOSSIL_LOCAL_WAL "COMMIT; PRAGMA journal_mode=WAL; BEGIN;", -diff -Naur orig/src/diffcmd.c fossil-1.32/src/diffcmd.c ---- orig/src/diffcmd.c 2015-03-14 14:20:34.000000000 +0100 -+++ fossil-1.32/src/diffcmd.c 2015-03-15 19:11:56.557745800 +0100 +diff -aur fossil-src-1.33.orig/src/diffcmd.c fossil-src-1.33/src/diffcmd.c +--- fossil-src-1.33.orig/src/diffcmd.c 2015-05-23 13:11:31.000000000 +0200 ++++ fossil-src-1.33/src/diffcmd.c 2015-05-23 13:53:28.276997700 +0200 @@ -606,11 +606,7 @@ const char *zName; @@ -151,9 +148,9 @@ diff -Naur orig/src/diffcmd.c fossil-1.32/src/diffcmd.c zName = "gdiff-command"; }else{ zDefault = 0; -diff -Naur orig/src/stash.c fossil-1.32/src/stash.c ---- orig/src/stash.c 2015-03-14 14:20:34.000000000 +0100 -+++ fossil-1.32/src/stash.c 2015-03-15 19:19:23.878640100 +0100 +diff -aur fossil-src-1.33.orig/src/stash.c fossil-src-1.33/src/stash.c +--- fossil-src-1.33.orig/src/stash.c 2015-05-23 13:11:31.000000000 +0200 ++++ fossil-src-1.33/src/stash.c 2015-05-23 13:53:28.278995500 +0200 @@ -160,13 +160,7 @@ if( zComment==0 ){ Blob prompt; /* Prompt for stash comment */ From b2fbe048037554ebea97e1350e31b52252c05f57 Mon Sep 17 00:00:00 2001 From: Jeff Hubbard Date: Fri, 22 May 2015 17:09:49 -0700 Subject: [PATCH 1061/2060] vamp-plugin-sdk: New library --- mingw-w64-vamp-plugin-sdk/PKGBUILD | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mingw-w64-vamp-plugin-sdk/PKGBUILD diff --git a/mingw-w64-vamp-plugin-sdk/PKGBUILD b/mingw-w64-vamp-plugin-sdk/PKGBUILD new file mode 100644 index 0000000000..2faa55a8c8 --- /dev/null +++ b/mingw-w64-vamp-plugin-sdk/PKGBUILD @@ -0,0 +1,34 @@ +# Maintainer: Jeff Hubbard + +_realname=vamp-plugin-sdk +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.5 +pkgrel=1 +pkgdesc="Vamp plugins extract descriptive information from audio data. (mingw-w64)" +arch=('any') +url="http://www.vamp-plugins.org/" +license=("BSD") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +source=("http://code.soundsoftware.ac.uk/attachments/download/690/vamp-plugin-sdk-$pkgver.tar.gz") +md5sums=('199872997f74951f6769b982bf0d0646') + +prepare() { + cd ${srcdir}/${_realname}-${pkgver} + make clean || true +} + +build() { + cd ${srcdir}/${_realname}-${pkgver} + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + make +} + +package() { + cd ${srcdir}/${_realname}-${pkgver} + make DESTDIR="$pkgdir" install +} From 203cf4ff170ef3575538b1d52fdf131fb430d762 Mon Sep 17 00:00:00 2001 From: Jeff Hubbard Date: Sat, 23 May 2015 06:18:50 -0700 Subject: [PATCH 1062/2060] ladspa-sdk: New library --- mingw-w64-ladspa-sdk/PKGBUILD | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 mingw-w64-ladspa-sdk/PKGBUILD diff --git a/mingw-w64-ladspa-sdk/PKGBUILD b/mingw-w64-ladspa-sdk/PKGBUILD new file mode 100644 index 0000000000..cdd6f47328 --- /dev/null +++ b/mingw-w64-ladspa-sdk/PKGBUILD @@ -0,0 +1,19 @@ +# Maintainer: Jeff Hubbard + +_realname=ladspa-sdk +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.13 +pkgrel=1 +pkgdesc="Linux Audio Developer's Simple Plugin API (LADSPA) SDK. (mingw-w64)" +arch=('any') +url="http://www.ladspa.org/" +license=("LGPL") +# bsdtar fails to untar their SDK tarball because of a symlink, so just +# download the header directly +source=("http://www.ladspa.org/ladspa_sdk/ladspa.h.txt") +md5sums=('7550280c79d24228361a9762b63e5b7e') + +package() { + install -d "${pkgdir}/${MINGW_PREFIX}/include" + cp "$srcdir/ladspa.h.txt" "${pkgdir}/${MINGW_PREFIX}/include/ladspa.h" +} \ No newline at end of file From 836b62555813c880074d0d59705b2bea06cc5a94 Mon Sep 17 00:00:00 2001 From: Jeff Hubbard Date: Fri, 22 May 2015 17:13:25 -0700 Subject: [PATCH 1063/2060] rubberband: New library --- mingw-w64-rubberband/PKGBUILD | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 mingw-w64-rubberband/PKGBUILD diff --git a/mingw-w64-rubberband/PKGBUILD b/mingw-w64-rubberband/PKGBUILD new file mode 100644 index 0000000000..decc0d14ae --- /dev/null +++ b/mingw-w64-rubberband/PKGBUILD @@ -0,0 +1,40 @@ +# Maintainer: Jeff Hubbard + +_realname=rubberband +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.8.1 +pkgrel=1 +pkgdesc="High quality software library for audio time-stretching and pitch-shifting. (mingw-w64)" +arch=('any') +url="http://breakfastquay.com/rubberband/" +license=("GPL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-vamp-plugin-sdk" + "${MINGW_PACKAGE_PREFIX}-libsamplerate" + "${MINGW_PACKAGE_PREFIX}-libsndfile" + "${MINGW_PACKAGE_PREFIX}-fftw" + "${MINGW_PACKAGE_PREFIX}-ladspa-sdk") +source=("http://code.breakfastquay.com/attachments/download/34/rubberband-$pkgver.tar.bz2") +md5sums=('6c2b4e18a714bcc297d0db81a10f9348') + +prepare() { + cd ${srcdir}/${_realname}-${pkgver} + make clean || true +} + +build() { + cd ${srcdir}/${_realname}-${pkgver} + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + make +} + +package() { + #cd "${srcdir}/build-${MINGW_CHOST}" + cd ${srcdir}/${_realname}-${pkgver} + make DESTDIR="$pkgdir" install +} \ No newline at end of file From b2d5c34e586a57e932ea8017b33efad7f9a0ead0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 23 May 2015 20:28:28 +0300 Subject: [PATCH 1064/2060] vamp-lugin-sdk: Fix build/install shared libraries. --- .../01-mingw-shared.patch | 88 +++++++++++++++++++ mingw-w64-vamp-plugin-sdk/PKGBUILD | 21 +++-- 2 files changed, 102 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-vamp-plugin-sdk/01-mingw-shared.patch diff --git a/mingw-w64-vamp-plugin-sdk/01-mingw-shared.patch b/mingw-w64-vamp-plugin-sdk/01-mingw-shared.patch new file mode 100644 index 0000000000..0777facecd --- /dev/null +++ b/mingw-w64-vamp-plugin-sdk/01-mingw-shared.patch @@ -0,0 +1,88 @@ +--- vamp-plugin-sdk-2.5/Makefile.in.orig 2015-05-23 19:25:00.787000000 +0300 ++++ vamp-plugin-sdk-2.5/Makefile.in 2015-05-23 19:40:27.022800000 +0300 +@@ -53,8 +53,8 @@ + + # File extension for a dynamically loadable object + # +-PLUGIN_EXT = .so +-#PLUGIN_EXT = .dll ++#PLUGIN_EXT = .so ++PLUGIN_EXT = .dll + #PLUGIN_EXT = .dylib + + # Libraries required for the host. +@@ -77,15 +77,13 @@ + INSTALL_PLUGINS = $(INSTALL_PREFIX)/lib/vamp + INSTALL_BINARIES = $(INSTALL_PREFIX)/bin + +-INSTALL_SDK_LIBNAME = libvamp-sdk.so.2.5.0 +-INSTALL_SDK_LINK_ABI = libvamp-sdk.so.2 +-INSTALL_SDK_LINK_DEV = libvamp-sdk.so ++INSTALL_SDK_LIBNAME = libvamp-sdk$(PLUGIN_EXT) ++INSTALL_SDK_LINK_ABI = libvamp-sdk.dll.a + INSTALL_SDK_STATIC = libvamp-sdk.a + INSTALL_SDK_LA = libvamp-sdk.la + +-INSTALL_HOSTSDK_LIBNAME = libvamp-hostsdk.so.3.5.0 +-INSTALL_HOSTSDK_LINK_ABI = libvamp-hostsdk.so.3 +-INSTALL_HOSTSDK_LINK_DEV = libvamp-hostsdk.so ++INSTALL_HOSTSDK_LIBNAME = libvamp-hostsdk$(PLUGIN_EXT) ++INSTALL_HOSTSDK_LINK_ABI = libvamp-hostsdk.dll.a + INSTALL_HOSTSDK_STATIC = libvamp-hostsdk.a + INSTALL_HOSTSDK_LA = libvamp-hostsdk.la + +@@ -94,8 +92,8 @@ + # Flags required to tell the compiler to create a dynamically loadable object + # + DYNAMIC_LDFLAGS = -static-libgcc -shared -Wl,-Bsymbolic +-SDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) -Wl,-soname=$(INSTALL_SDK_LINK_ABI) +-HOSTSDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) -Wl,-soname=$(INSTALL_HOSTSDK_LINK_ABI) ++SDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) -Wl,--out-implib,$(INSTALL_SDK_LINK_ABI) ++HOSTSDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) -Wl,--out-implib,$(INSTALL_HOSTSDK_LINK_ABI) + + # Additional flags for making a plugin. This version script tells the + # GNU linker to make all symbols in the library hidden except for the +@@ -278,16 +276,10 @@ + cp $(HOSTSDK_HEADERS) $(DESTDIR)$(INSTALL_HOSTSDK_HEADERS) + cp $(SDK_STATIC) $(DESTDIR)$(INSTALL_SDK_LIBS) + cp $(HOSTSDK_STATIC) $(DESTDIR)$(INSTALL_SDK_LIBS) +- cp $(SDK_DYNAMIC) $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_SDK_LIBNAME) +- cp $(HOSTSDK_DYNAMIC) $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_HOSTSDK_LIBNAME) +- rm -f $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_SDK_LINK_ABI) +- ln -s $(INSTALL_SDK_LIBNAME) $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_SDK_LINK_ABI) +- rm -f $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_HOSTSDK_LINK_ABI) +- ln -s $(INSTALL_HOSTSDK_LIBNAME) $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_HOSTSDK_LINK_ABI) +- rm -f $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_SDK_LINK_DEV) +- ln -s $(INSTALL_SDK_LIBNAME) $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_SDK_LINK_DEV) +- rm -f $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_HOSTSDK_LINK_DEV) +- ln -s $(INSTALL_HOSTSDK_LIBNAME) $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_HOSTSDK_LINK_DEV) ++ cp $(SDK_DYNAMIC) $(DESTDIR)$(INSTALL_BINARIES) ++ cp $(HOSTSDK_DYNAMIC) $(DESTDIR)$(INSTALL_BINARIES) ++ cp $(INSTALL_SDK_LINK_ABI) $(DESTDIR)$(INSTALL_SDK_LIBS) ++ cp $(INSTALL_HOSTSDK_LINK_ABI) $(DESTDIR)$(INSTALL_SDK_LIBS) + sed "s,%PREFIX%,$(INSTALL_PREFIX)," $(PCDIR)/vamp.pc.in \ + > $(DESTDIR)$(INSTALL_PKGCONFIG)/vamp.pc + sed "s,%PREFIX%,$(INSTALL_PREFIX)," $(PCDIR)/vamp-sdk.pc.in \ +@@ -296,13 +288,11 @@ + > $(DESTDIR)$(INSTALL_PKGCONFIG)/vamp-hostsdk.pc + sed -e "s,%LIBNAME%,$(INSTALL_SDK_LIBNAME),g" \ + -e "s,%LINK_ABI%,$(INSTALL_SDK_LINK_ABI),g" \ +- -e "s,%LINK_DEV%,$(INSTALL_SDK_LINK_DEV),g" \ + -e "s,%STATIC%,$(INSTALL_SDK_STATIC),g" \ + -e "s,%LIBS%,$(INSTALL_SDK_LIBS),g" $(SDK_LA).in \ + > $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_SDK_LA) + sed -e "s,%LIBNAME%,$(INSTALL_HOSTSDK_LIBNAME),g" \ + -e "s,%LINK_ABI%,$(INSTALL_HOSTSDK_LINK_ABI),g" \ +- -e "s,%LINK_DEV%,$(INSTALL_HOSTSDK_LINK_DEV),g" \ + -e "s,%STATIC%,$(INSTALL_HOSTSDK_STATIC),g" \ + -e "s,%LIBS%,$(INSTALL_SDK_LIBS),g" $(HOSTSDK_LA).in \ + > $(DESTDIR)$(INSTALL_SDK_LIBS)/$(INSTALL_HOSTSDK_LA) +--- vamp-plugin-sdk-2.5/pkgconfig/vamp-hostsdk.pc.in.orig 2015-05-23 19:42:28.313200000 +0300 ++++ vamp-plugin-sdk-2.5/pkgconfig/vamp-hostsdk.pc.in 2015-05-23 19:42:31.714000000 +0300 +@@ -6,5 +6,5 @@ + Name: vamp-hostsdk + Version: 2.5 + Description: Development library for Vamp audio analysis plugin hosts +-Libs: -L${libdir} -lvamp-hostsdk -ldl ++Libs: -L${libdir} -lvamp-hostsdk + Cflags: -I${includedir} diff --git a/mingw-w64-vamp-plugin-sdk/PKGBUILD b/mingw-w64-vamp-plugin-sdk/PKGBUILD index 2faa55a8c8..28ab590d3c 100644 --- a/mingw-w64-vamp-plugin-sdk/PKGBUILD +++ b/mingw-w64-vamp-plugin-sdk/PKGBUILD @@ -4,31 +4,38 @@ _realname=vamp-plugin-sdk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.5 pkgrel=1 -pkgdesc="Vamp plugins extract descriptive information from audio data. (mingw-w64)" +pkgdesc="Vamp plugins extract descriptive information from audio data (mingw-w64)" arch=('any') url="http://www.vamp-plugins.org/" license=("BSD") +options=('!buildflags') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -source=("http://code.soundsoftware.ac.uk/attachments/download/690/vamp-plugin-sdk-$pkgver.tar.gz") -md5sums=('199872997f74951f6769b982bf0d0646') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libsndfile") +source=("http://code.soundsoftware.ac.uk/attachments/download/690/vamp-plugin-sdk-$pkgver.tar.gz" + 01-mingw-shared.patch) +md5sums=('199872997f74951f6769b982bf0d0646' + '286ace365aff641d248fe2a0fa85d811') prepare() { cd ${srcdir}/${_realname}-${pkgver} - make clean || true + patch -p1 -i ${srcdir}/01-mingw-shared.patch } build() { - cd ${srcdir}/${_realname}-${pkgver} + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + cp -rf "${_realname}-${pkgver}" "build-${MINGW_CHOST}" + cd build-${MINGW_CHOST} + ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} + make } package() { - cd ${srcdir}/${_realname}-${pkgver} + cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR="$pkgdir" install } From 2cedd8a07b85690e54c07265b87e7e92e87788ff Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 23 May 2015 20:29:43 +0300 Subject: [PATCH 1065/2060] rubberband: Fix building/installing shared libraries. --- mingw-w64-rubberband/01-mingw-shared.patch | 46 ++++++++++++++++++++++ mingw-w64-rubberband/PKGBUILD | 19 +++++---- 2 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-rubberband/01-mingw-shared.patch diff --git a/mingw-w64-rubberband/01-mingw-shared.patch b/mingw-w64-rubberband/01-mingw-shared.patch new file mode 100644 index 0000000000..ae4a3ce4a6 --- /dev/null +++ b/mingw-w64-rubberband/01-mingw-shared.patch @@ -0,0 +1,46 @@ +--- rubberband-1.8.1/Makefile.in.orig 2015-05-23 19:57:54.441800000 +0300 ++++ rubberband-1.8.1/Makefile.in 2015-05-23 20:06:52.485800000 +0300 +@@ -12,19 +12,22 @@ + MKDIR := mkdir + AR := ar + +-DYNAMIC_EXTENSION := .so ++LIBRARY_NAME := librubberband ++DYNAMIC_EXTENSION := .dll + DYNAMIC_FULL_VERSION := .2.1.0 +-DYNAMIC_ABI_VERSION := .2 +-DYNAMIC_LIBNAME := librubberband$(DYNAMIC_EXTENSION) +-DYNAMIC_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,-soname=$(DYNAMIC_LIBNAME)$(DYNAMIC_ABI_VERSION) ++DYNAMIC_ABI_VERSION := 2 ++DYNAMIC_LIBNAME := $(LIBRARY_NAME)-${DYNAMIC_ABI_VERSION}$(DYNAMIC_EXTENSION) ++IMP_LIBNAME := $(LIBRARY_NAME)$(DYNAMIC_EXTENSION).a ++DYNAMIC_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,--out-implib,lib/$(IMP_LIBNAME) + VAMP_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,--version-script=vamp/vamp-plugin.map + LADSPA_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,--version-script=ladspa/ladspa-plugin.map + + PROGRAM_TARGET := bin/rubberband + STATIC_TARGET := lib/librubberband.a +-DYNAMIC_TARGET := lib/$(DYNAMIC_LIBNAME) +-VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION) +-LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION) ++DYNAMIC_TARGET := bin/$(DYNAMIC_LIBNAME) ++IMPL_TARGET := lib/$(IMP_LIBNAME) ++VAMP_TARGET := bin/vamp-rubberband$(DYNAMIC_EXTENSION) ++LADSPA_TARGET := bin/ladspa-rubberband$(DYNAMIC_EXTENSION) + + INSTALL_BINDIR := @prefix@/bin + INSTALL_INCDIR := @prefix@/include/rubberband +@@ -148,11 +151,9 @@ + cp $(PROGRAM_TARGET) $(DESTDIR)$(INSTALL_BINDIR) + cp $(PUBLIC_INCLUDES) $(DESTDIR)$(INSTALL_INCDIR) + cp $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR) +- rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(DYNAMIC_LIBNAME)$(DYNAMIC_ABI_VERSION) ++ cp $(IMPL_TARGET) $(DESTDIR)$(INSTALL_LIBDIR) + rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(DYNAMIC_LIBNAME) +- cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(DYNAMIC_LIBNAME)$(DYNAMIC_FULL_VERSION) +- test -n "$(DYNAMIC_FULL_VERSION)" && ln -s $(DYNAMIC_LIBNAME)$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(DYNAMIC_LIBNAME)$(DYNAMIC_ABI_VERSION) +- test -n "$(DYNAMIC_FULL_VERSION)" && ln -s $(DYNAMIC_LIBNAME)$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(DYNAMIC_LIBNAME) ++ cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_BINDIR)/$(DYNAMIC_LIBNAME) + cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR) + cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR) + cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR) diff --git a/mingw-w64-rubberband/PKGBUILD b/mingw-w64-rubberband/PKGBUILD index decc0d14ae..848f95ac07 100644 --- a/mingw-w64-rubberband/PKGBUILD +++ b/mingw-w64-rubberband/PKGBUILD @@ -15,26 +15,31 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libsndfile" "${MINGW_PACKAGE_PREFIX}-fftw" "${MINGW_PACKAGE_PREFIX}-ladspa-sdk") -source=("http://code.breakfastquay.com/attachments/download/34/rubberband-$pkgver.tar.bz2") -md5sums=('6c2b4e18a714bcc297d0db81a10f9348') +source=("http://code.breakfastquay.com/attachments/download/34/rubberband-$pkgver.tar.bz2" + 01-mingw-shared.patch) +md5sums=('6c2b4e18a714bcc297d0db81a10f9348' + 'a8afbacb354ee668d1a2aa4035dc0914') prepare() { cd ${srcdir}/${_realname}-${pkgver} - make clean || true + patch -p1 -i ${srcdir}/01-mingw-shared.patch } build() { - cd ${srcdir}/${_realname}-${pkgver} + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + cp -rf "${_realname}-${pkgver}" "build-${MINGW_CHOST}" + cd build-${MINGW_CHOST} + ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} + make } package() { - #cd "${srcdir}/build-${MINGW_CHOST}" - cd ${srcdir}/${_realname}-${pkgver} + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="$pkgdir" install -} \ No newline at end of file +} From 8d23c81a54f4d429a40412b2706df3b8a2f63ec8 Mon Sep 17 00:00:00 2001 From: Gore Liu Date: Sun, 24 May 2015 11:15:14 +0800 Subject: [PATCH 1066/2060] jq: New package --- mingw-w64-jq/PKGBUILD | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 mingw-w64-jq/PKGBUILD diff --git a/mingw-w64-jq/PKGBUILD b/mingw-w64-jq/PKGBUILD new file mode 100644 index 0000000000..a9432feebc --- /dev/null +++ b/mingw-w64-jq/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: Gore Liu + +_realname=jq +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1.4 +pkgrel=1 +pkgdesc="Command-line JSON processor (mingw-w64)" +arch=('any') +url='http://stedolan.github.io/jq/' +license=('MIT') +makedepends=("autoconf" "automake" "bison" "flex" "python2") +source=("http://stedolan.github.io/jq/download/source/${_realname}-${pkgver}.tar.gz") +md5sums=('e3c75a4f805bb5342c9f4b3603fb248f') + +build() { + cd "$srcdir"/${_realname}-${pkgver} + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared + + make +} + +package() { + cd "${srcdir}"/build-${CARCH} + make install DESTDIR="${pkgdir}" +} From 62de668328ccf0448ec7ff5ec9f2228ee14dd0c0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 25 May 2015 08:51:28 +0300 Subject: [PATCH 1067/2060] mpg123: Update to 1.22.2 --- mingw-w64-mpg123/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mpg123/PKGBUILD b/mingw-w64-mpg123/PKGBUILD index e9b1372d3d..8b4e85f89f 100644 --- a/mingw-w64-mpg123/PKGBUILD +++ b/mingw-w64-mpg123/PKGBUILD @@ -2,7 +2,7 @@ _realname=mpg123 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.22.1 +pkgver=1.22.2 pkgrel=1 pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3 (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ options=('strip' 'staticlibs' 'libtool') source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2"{,.sig} 0001-update-ac-and-silent-rules.mingw.patch 0002-openal-library.patch) -md5sums=('abf310c716d56c283561eff0903bcb69' +md5sums=('6f6d2178c354f39207bf97e062936110' 'SKIP' '5d01842fa623f7bb53bf22be64aa042d' '9ac9a255f3ab3043915ceec455ccdbec') @@ -35,6 +35,7 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" export lt_cv_deplibs_check_method='pass_all' From a10fda511d30e2f9ef27481cf966e6f8854e0878 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 25 May 2015 08:52:21 +0300 Subject: [PATCH 1068/2060] soundtouch: Update to 1.9.0 --- .../0003-fix-docdir.mingw.patch | 20 ++++--------------- mingw-w64-soundtouch/PKGBUILD | 8 +++++--- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/mingw-w64-soundtouch/0003-fix-docdir.mingw.patch b/mingw-w64-soundtouch/0003-fix-docdir.mingw.patch index b19286c2a0..8cd5803088 100644 --- a/mingw-w64-soundtouch/0003-fix-docdir.mingw.patch +++ b/mingw-w64-soundtouch/0003-fix-docdir.mingw.patch @@ -1,21 +1,9 @@ --- soundtouch/config/am_include.mk.orig 2012-12-28 20:56:45.000000000 +0000 +++ soundtouch/config/am_include.mk 2013-07-31 15:01:37.806263400 +0000 -@@ -28,7 +28,3 @@ - ## in case a user decides to build in a separate directory from the base package - ## directory. Using absolute, or relative paths is a bad idea. - INCLUDES=-I$(top_srcdir)/include -- +@@ -28,6 +28,3 @@ + ## by automake, so it's ok to have @MACROS@ that will be set by configure + + AM_CPPFLAGS=-I$(top_srcdir)/include - -# doc directory -pkgdocdir=$(prefix)/doc/@PACKAGE@ ---- soundtouch/Makefile.am.orig 2012-12-28 20:56:45.000000000 +0000 -+++ soundtouch/Makefile.am 2013-07-31 15:06:06.219347500 +0000 -@@ -28,7 +28,7 @@ - - - # list files that are documentation to be packaged in a release tarball and installed --pkgdoc_DATA=COPYING.TXT README.html -+dist_doc_DATA=COPYING.TXT README.html - - # extra data files that are to be pacakged in a release tarball and installed into the data directory - #pkgdata_DATA= diff --git a/mingw-w64-soundtouch/PKGBUILD b/mingw-w64-soundtouch/PKGBUILD index 89751117f9..4016c3aca5 100644 --- a/mingw-w64-soundtouch/PKGBUILD +++ b/mingw-w64-soundtouch/PKGBUILD @@ -2,7 +2,7 @@ _realname=soundtouch pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.8.0 +pkgver=1.9.0 pkgrel=1 pkgdesc="An audio processing library (mingw-w64)" arch=('any') @@ -14,9 +14,9 @@ options=('strip' 'staticlibs') source=(http://www.surina.net/soundtouch/${_realname}-${pkgver}.tar.gz 0001-no-undefined-on.mingw.patch 0003-fix-docdir.mingw.patch) -md5sums=('d02c6c91cb13901ca273a2b4b143ce41' +md5sums=('0b0672c09c1c97df2e61c4d5aa9a7b86' 'f472d0b637cc0a3491435ff3409ed3cc' - '44fda585b032a555d7fffb4b13a3b159') + 'fedef380bc99b2adbecfba32f1b83672') prepare() { cd "${srcdir}/${_realname}" @@ -28,6 +28,7 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}/configure \ @@ -36,6 +37,7 @@ build() { --host=${MINGW_CHOST} \ --enable-static \ --enable-shared + make } From 736d31402747884829a946398cc3ef4b7435d72b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 25 May 2015 11:23:44 +0300 Subject: [PATCH 1069/2060] python2: Update to 2.7.10 --- mingw-w64-python2/0540-mingw-semicolon-DELIM.patch | 4 ++-- .../0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch | 2 +- ...TSHARED-to-PYTHONPATH-b4-pybuilddir-txt-dir.patch | 4 ++-- mingw-w64-python2/PKGBUILD | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/mingw-w64-python2/0540-mingw-semicolon-DELIM.patch b/mingw-w64-python2/0540-mingw-semicolon-DELIM.patch index cec5cddea6..8cdfcc6700 100644 --- a/mingw-w64-python2/0540-mingw-semicolon-DELIM.patch +++ b/mingw-w64-python2/0540-mingw-semicolon-DELIM.patch @@ -94,8 +94,8 @@ diff -Naur Python-2.7.9-orig/Modules/Setup.dist Python-2.7.9/Modules/Setup.dist TESTPATH= # Path components for machine- or system-dependent modules and shared libraries --MACHDEPPATH=:plat-$(MACHDEP) -+MACHDEPPATH=$(DELIM)plat-$(MACHDEP) +-MACHDEPPATH=:$(PLATDIR) ++MACHDEPPATH=$(DELIM)$(PLATDIR) EXTRAMACHDEPPATH= # Path component for the Tkinter-related modules diff --git a/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch b/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch index cdc3795b10..8e1344ea9c 100644 --- a/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch +++ b/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch @@ -47,7 +47,7 @@ diff -Naur Python-2.7.9-orig/Lib/ntpath.py Python-2.7.9/Lib/ntpath.py @@ -415,13 +428,19 @@ """Normalize path, eliminating double slashes, etc.""" # Preserve unicode (if path is unicode) - backslash, dot = (u'\\', u'.') if isinstance(path, unicode) else ('\\', '.') + backslash, dot = (u'\\', u'.') if isinstance(path, _unicode) else ('\\', '.') + isUNC = path.startswith('\\\\') + this_sep = sep + other_sep = altsep diff --git a/mingw-w64-python2/0750-Add-interp-Python-DESTSHARED-to-PYTHONPATH-b4-pybuilddir-txt-dir.patch b/mingw-w64-python2/0750-Add-interp-Python-DESTSHARED-to-PYTHONPATH-b4-pybuilddir-txt-dir.patch index 4723eb307d..d225248c86 100644 --- a/mingw-w64-python2/0750-Add-interp-Python-DESTSHARED-to-PYTHONPATH-b4-pybuilddir-txt-dir.patch +++ b/mingw-w64-python2/0750-Add-interp-Python-DESTSHARED-to-PYTHONPATH-b4-pybuilddir-txt-dir.patch @@ -5,13 +5,13 @@ diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found]) fi AC_MSG_RESULT($interp) -- PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp +- PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp + # For reference see: http://bugs.python.org/msg180577 + # interp's DESTSHARED must appear before that contained in pybuilddir.txt as otherwise, when compiling during make install, + # the build Python will attempt to load shared modules from the host Python, which will fail due to them being of the wrong + # architecture (e.g. x86_64 vs x86 or arm). It would probably be better if _sysconfigdata.py was placed elsewhere, + # i.e. in a folder that does not also contain incompatible shared modules. -+ PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH='$($interp -c "import sysconfig; print sysconfig.get_config_var(\"DESTSHARED\")")':$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp ++ PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH='$($interp -c "import sysconfig; print sysconfig.get_config_var(\"DESTSHARED\")")':$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp fi elif test "$cross_compiling" = maybe; then AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH]) diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index a71cd3b967..844aa1a85e 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -4,8 +4,8 @@ _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.7.9 -pkgrel=3 +pkgver=2.7.10 +pkgrel=1 _pybasever=${pkgver%.*} pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') @@ -345,7 +345,7 @@ package() { mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe } -sha1sums=('3172f6e957713c2d9fca462cc16068222fd1b9d3' +sha1sums=('ee5a50c5562e7448f037d35fdedc18d95c748b9e' '5e0546d246c18881c448a077c3b605d5db505114' '34a627481caea8690c2cf6e6d409e2d449d133fb' 'c936fbd986a2cc126174e45de8b100e24824b905' @@ -386,14 +386,14 @@ sha1sums=('3172f6e957713c2d9fca462cc16068222fd1b9d3' '124f3bb723bf6b3a035245499fc25d1ef8dae360' '38505f10c495c1b79342aaeeb0d538b73df52c12' '6b9e0da25a098c19336c59445745b0d99795edb2' - 'cab956b0b6239ff6fda55a28341c563e05e78236' + 'b96204f53095b5109520e61e69a5fbf85a27826e' '62ba10c3d6e51c1bfdbd1885f6fec51831928924' 'db205a1b6a0cb517afa9715c01310fb1c981e5df' 'ab13f486c932081e69ba6ccc7c4417c0d56a5c9d' 'b2da571659276b3d7bf6d5988ee0716869aa4155' 'df8a5da8b88dbcbff2919ce5ae5027a654bcfb31' '3dadc13c916ef6447006e8a544ba5eafb5494fca' - 'b5b94446419382b32d32807825a6e34cc0fb98d6' + '6c563f96640eeb0ff0d5c6f366e600c39eec4d95' 'aa234ba54760de5820934322cb67b574bb1384c5' '681c4ebe82c5e63ea635e9d0dbf5c3fa37c71e64' 'd9720baf25659ede48353b0d47b7486339c0efb7' @@ -405,7 +405,7 @@ sha1sums=('3172f6e957713c2d9fca462cc16068222fd1b9d3' 'eb7fe4fbe2fd15d2efa742caf8bface48f686201' '943fbc541c3f7d70fe87b44e3f8b6d83c7ae3e97' '2149347d7d55ea4f228eb5ddc443cea51e040bc6' - 'ca0b23e312694347e3a1a10b38fb31bd724d1ac2' + '149fe9299c34b3f76967959393c25df015fddd18' '12ef984034b57e3e6f2e5c71ad9cabfbae8bc0ba' 'd18dbfa0bebf7286b04b3ddc7e8ad472ee668fcd' 'a46b32b514715fafcd1c95055d225ea913fa64a6' From 42b075152667b832682751238eb86a75aa7268f8 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Mon, 25 May 2015 17:41:43 -0300 Subject: [PATCH 1070/2060] drmingw, drmingw-git: Update to latest. --- mingw-w64-drmingw-git/PKGBUILD | 8 ++++---- mingw-w64-drmingw/PKGBUILD | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index 4e09cbee5e..ec92d80b6e 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -3,11 +3,11 @@ _realname=drmingw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r182.867ab17 -pkgrel=2 +pkgver=r401.3deab5f +pkgrel=1 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') -license=(LGPL2) +license=(LGPL2.1) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "git") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -44,5 +44,5 @@ package() { rm -rf "${pkgdir}${MINGW_PREFIX}"/doc rm -rf "${pkgdir}${MINGW_PREFIX}"/sample - install -Dm644 "${srcdir}/${_realname}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 "${srcdir}/${_realname}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-drmingw/PKGBUILD b/mingw-w64-drmingw/PKGBUILD index 205d86a970..ac89df9160 100644 --- a/mingw-w64-drmingw/PKGBUILD +++ b/mingw-w64-drmingw/PKGBUILD @@ -3,7 +3,7 @@ _realname=drmingw pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) -pkgver=0.6.6 +pkgver=0.7.2 pkgrel=1 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") url=('https://github.com/jrfonseca/drmingw') source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/archive/${pkgver}.tar.gz") options=(!strip staticlibs) -md5sums=('d8b54421decf907e5702a4b9a1c88087') +md5sums=('621f84694b3cad140402c2afd95998ce') prepare() { cd "${srcdir}" From 9cd3d0fb838ccf7d38a923a11641de2002b82fb1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 27 May 2015 12:26:50 +0300 Subject: [PATCH 1071/2060] firebird-git: Update to latest git. --- mingw-w64-firebird-git/PKGBUILD | 30 ++- mingw-w64-firebird-git/cmake-mingw.patch | 86 ++++++ mingw-w64-firebird-git/firebird-mingw.diff | 291 ++++++++++++--------- mingw-w64-firebird-git/firebird-msys.diff | 71 +++++ 4 files changed, 348 insertions(+), 130 deletions(-) create mode 100644 mingw-w64-firebird-git/cmake-mingw.patch diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD index c778c2e338..c9758bdba5 100644 --- a/mingw-w64-firebird-git/PKGBUILD +++ b/mingw-w64-firebird-git/PKGBUILD @@ -2,7 +2,7 @@ _realname='firebird' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=3.0.0.31514.b244095 +pkgver=3.0.0.31844.65a81b1 pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features (mingw-w64)" url="http://www.firebirdsql.org/" @@ -28,10 +28,12 @@ source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git" #"${_realname}"::"git+https://Alexpux@bitbucket.org/msys2/firebird.git#branch=mingw-w64-trunk" #"${_realname}"::"git+file:///v/Sources/GNU/firebird-git#branch=mingw-w64-trunk" firebird-mingw.diff - firebird-msys.diff) + firebird-msys.diff + cmake-mingw.patch) sha256sums=('SKIP' - '5c8e225c0412ca9d67249658b0ba08ef9e701c1ba51b98a0e6e1771ca0e3dc64' - '0852dd5d8d919c7a448be60369f7b246893f35666d8748e305b4d03f767dca62') + '43c853d2a1c4c18ed3e3baca6a75f5e1bf83e7700c52cf44f191cee5ab96f0ed' + '6b01a0a726f3755d6615c0d68cde8b1ad29524bcef6d1fc209278626ede62b4a' + '9cf9164fa747dbb14b7579cb3b4629f9480af7ddd3424172577eae8b34f38493') pkgver() { cd "${_realname}" @@ -43,6 +45,8 @@ prepare() { cd ${_realname} git am ${srcdir}/firebird-mingw.diff git am ${srcdir}/firebird-msys.diff + patch -p1 -i ${srcdir}/cmake-mingw.patch + cd .. mv "${_realname}" "${CARCH}" @@ -51,12 +55,30 @@ prepare() { } build() { + # [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + # mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + # local _build_conf="Release" + # if check_option "debug" "y"; then + # _build_conf="Debug" + # fi + + # ${MINGW_PREFIX}/bin/cmake.exe \ + # -G"MSYS Makefiles" \ + # -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + # -DCMAKE_BUILD_TYPE=${_build_conf} \ + # ../${_realname} + + # make -j1 + + local _debug_conf= if check_option "debug" "y"; then _debug_conf="--enable-debug" fi cd ${srcdir}/${CARCH} + CFLAGS+=" -D_POSIX_C_SOURCE" ./configure \ --prefix=${MINGW_PREFIX} \ diff --git a/mingw-w64-firebird-git/cmake-mingw.patch b/mingw-w64-firebird-git/cmake-mingw.patch new file mode 100644 index 0000000000..de2083cce9 --- /dev/null +++ b/mingw-w64-firebird-git/cmake-mingw.patch @@ -0,0 +1,86 @@ +--- a/CMakeLists.txt.orig 2015-05-25 15:36:19.241200000 +0300 ++++ b/CMakeLists.txt 2015-05-25 15:54:10.095600000 +0300 +@@ -98,7 +98,7 @@ + string(TOUPPER ${conf} conf2) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${conf2} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${conf}/bin) + endforeach() +-elseif (UNIX) ++elseif (UNIX OR MINGW) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${output_dir}/bin) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${output_dir}/bin) + endif() +@@ -113,7 +113,7 @@ + # icu + ######################################## + +-if (UNIX) ++if (UNIX OR MINGW) + if (NOT ICU_INCLUDE_DIR) + find_path(ICU_INCLUDE_DIR unicode/ucnv.h + PATHS +@@ -159,7 +159,9 @@ + set(FB_SERVICE_PORT 3050) + + if (WIN32) ++ if (NOT MINGW) + set(FB_PREFIX "c:\\\\Program Files\\\\Firebird\\\\") ++ endif() + set(FB_IPC_NAME "FIREBIRD") + endif() + +@@ -192,7 +194,7 @@ + endif() + endif(MSVC) + +- set(LIB_Ws2_32 Ws2_32) ++ set(LIB_Ws2_32 ws2_32) + set(LIB_comctl32 comctl32) + set(LIB_mpr mpr) + set(LIB_version version) +@@ -244,7 +246,7 @@ + # + ################################################################################ + +-if (WIN32) ++if (MSVC) + # icu + if (NOT ICU_EXTRACT) + message(STATUS "Extracting pre-built ICU") +--- a/src/CMakeLists.txt.orig 2015-05-25 15:56:46.615200000 +0300 ++++ b/src/CMakeLists.txt 2015-05-25 16:00:00.460800000 +0300 +@@ -105,6 +105,7 @@ + ${CMAKE_CURRENT_SOURCE_DIR}/msgs/transmsgs.fr_FR2.sql + ) + set(databases_src ++ ${CMAKE_CURRENT_SOURCE_DIR}/dbs/metadata.sql + ${CMAKE_CURRENT_SOURCE_DIR}/dbs/security.sql + ${msgs_src} + ) +@@ -203,6 +206,7 @@ + DEPENDS + boot_isql + boot_gfix ++ metadata.fdb + ${msgs_src} + # + COMMAND ${CMAKE_COMMAND} -E remove msg.fdb +@@ -852,7 +852,7 @@ + + endif() # if (NOT CMAKE_CROSSCOMPILING) + +-if (WIN32) ++if (MSVC) + add_custom_command( + TARGET boot_isql + POST_BUILD +@@ -1004,8 +1004,8 @@ + TARGET copy_files + POST_BUILD + # lib +- COMMAND ${CMAKE_COMMAND} -E copy_if_different $/fbclient.lib ${output_dir}/lib/fbclient_ms.lib +- COMMAND ${CMAKE_COMMAND} -E copy_if_different $/ib_util.lib ${output_dir}/lib/ib_util_ms.lib ++ COMMAND ${CMAKE_COMMAND} -E copy_if_different $/libfbclient.dll.a ${output_dir}/lib/libfbclient.dll.a ++ COMMAND ${CMAKE_COMMAND} -E copy_if_different $/libib_util.dll.a ${output_dir}/lib/libib_util.dll.a + # installers + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/builds/install/arch-specific/win32/install_classic.bat ${output_dir}/install_classic.bat + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/builds/install/arch-specific/win32/install_super.bat ${output_dir}/install_super.bat diff --git a/mingw-w64-firebird-git/firebird-mingw.diff b/mingw-w64-firebird-git/firebird-mingw.diff index f7e5a68995..e28b90f07e 100644 --- a/mingw-w64-firebird-git/firebird-mingw.diff +++ b/mingw-w64-firebird-git/firebird-mingw.diff @@ -1,4 +1,4 @@ -From 9f8b55777a35672df83a2e24b706980931763757 Mon Sep 17 00:00:00 2001 +From eeffdaa92cc92234e59b8ad02fb079ed4dca6631 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 18 Dec 2014 23:47:12 +0300 Subject: [PATCH] Resolve conflict with STRING type from mingw-w64 @@ -6,14 +6,14 @@ Subject: [PATCH] Resolve conflict with STRING type from mingw-w64 --- src/dsql/Parser.cpp | 6 +++--- src/dsql/parse.y | 16 ++++++++-------- - src/yvalve/preparse.cpp | 16 +++++++------- + src/yvalve/preparse.cpp | 16 ++++++++-------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/dsql/Parser.cpp b/src/dsql/Parser.cpp -index dfd4834..f87a683 100644 +index 0f1b0d1..65e9d75 100644 --- a/src/dsql/Parser.cpp +++ b/src/dsql/Parser.cpp -@@ -536,7 +536,7 @@ int Parser::yylexAux() +@@ -548,7 +548,7 @@ int Parser::yylexAux() mark.str = yylval.intlStringPtr; strMarks.put(mark.str, mark); @@ -22,7 +22,7 @@ index dfd4834..f87a683 100644 } /* -@@ -656,7 +656,7 @@ int Parser::yylexAux() +@@ -676,7 +676,7 @@ int Parser::yylexAux() yylval.intlStringPtr = newIntlString(temp, "BINARY"); @@ -31,7 +31,7 @@ index dfd4834..f87a683 100644 } // if (!hexerror)... // If we got here, there was a parsing error. Set the -@@ -702,7 +702,7 @@ int Parser::yylexAux() +@@ -731,7 +731,7 @@ int Parser::yylexAux() mark.str = yylval.intlStringPtr; strMarks.put(mark.str, mark); @@ -41,7 +41,7 @@ index dfd4834..f87a683 100644 } diff --git a/src/dsql/parse.y b/src/dsql/parse.y -index a82b29a..8f74669 100644 +index 9dd9c0c..8c8f281 100644 --- a/src/dsql/parse.y +++ b/src/dsql/parse.y @@ -336,7 +336,7 @@ using namespace Firebird; @@ -53,7 +53,7 @@ index a82b29a..8f74669 100644 %token INTRODUCER // New tokens added v5.0 -@@ -3185,7 +3185,7 @@ err($exceptionArray) +@@ -3202,7 +3202,7 @@ err($exceptionArray) item.type = ExceptionItem::SQL_CODE; item.code = $2; } @@ -62,7 +62,7 @@ index a82b29a..8f74669 100644 { ExceptionItem& item = $exceptionArray->add(); item.type = ExceptionItem::SQL_STATE; -@@ -6322,7 +6322,7 @@ map_from_symbol_name +@@ -6381,7 +6381,7 @@ map_from_symbol_name %type map_logoninfo map_logoninfo @@ -71,7 +71,7 @@ index a82b29a..8f74669 100644 | valid_symbol_name { $$ = newNode($1->c_str()); } ; -@@ -6570,7 +6570,7 @@ u_constant +@@ -6629,7 +6629,7 @@ u_constant : u_numeric_constant | sql_string { $$ = MAKE_str_constant($1, lex.att_charset); } @@ -80,7 +80,7 @@ index a82b29a..8f74669 100644 { if (client_dialect < SQL_DIALECT_V6_TRANSITION) { -@@ -6586,7 +6586,7 @@ u_constant +@@ -6645,7 +6645,7 @@ u_constant } $$ = MAKE_constant($2->getString().c_str(), CONSTANT_DATE); } @@ -89,7 +89,7 @@ index a82b29a..8f74669 100644 { if (client_dialect < SQL_DIALECT_V6_TRANSITION) { -@@ -6602,7 +6602,7 @@ u_constant +@@ -6661,7 +6661,7 @@ u_constant } $$ = MAKE_constant($2->getString().c_str(), CONSTANT_TIME); } @@ -98,7 +98,7 @@ index a82b29a..8f74669 100644 { $$ = MAKE_constant($2->getString().c_str(), CONSTANT_TIMESTAMP); } ; -@@ -6646,8 +6646,8 @@ internal_info +@@ -6705,8 +6705,8 @@ internal_info %type sql_string sql_string @@ -110,10 +110,10 @@ index a82b29a..8f74669 100644 $$ = $2; $$->setCharSet(*$1); diff --git a/src/yvalve/preparse.cpp b/src/yvalve/preparse.cpp -index ce97168..60a6a0f 100644 +index 0c09dea..bc2047b 100644 --- a/src/yvalve/preparse.cpp +++ b/src/yvalve/preparse.cpp -@@ -89,7 +89,7 @@ enum token_vals { +@@ -91,7 +91,7 @@ enum token_vals { TOKEN_TOO_LONG = -2, UNEXPECTED_END_OF_COMMAND = -3, UNEXPECTED_TOKEN = -4, @@ -122,7 +122,7 @@ index ce97168..60a6a0f 100644 NUMERIC = 258, SYMBOL = 259 }; -@@ -143,7 +143,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt, +@@ -145,7 +145,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, return false; } @@ -131,7 +131,7 @@ index ce97168..60a6a0f 100644 { return true; } -@@ -193,7 +193,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt, +@@ -195,7 +195,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, break; case PP_USER: @@ -140,7 +140,7 @@ index ce97168..60a6a0f 100644 { get_out = true; break; -@@ -204,7 +204,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt, +@@ -206,7 +206,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, break; case PP_PASSWORD: @@ -149,7 +149,7 @@ index ce97168..60a6a0f 100644 { get_out = true; break; -@@ -217,7 +217,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt, +@@ -217,7 +217,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, break; case PP_ROLE: @@ -158,7 +158,7 @@ index ce97168..60a6a0f 100644 { get_out = true; break; -@@ -231,7 +231,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt, +@@ -231,7 +231,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, if (get_token(status, SYMBOL, false, &stmt, stmt_end, token) || token.length() != pp_symbols[PP_NAMES].length || token != pp_symbols[PP_NAMES].symbol || @@ -167,7 +167,7 @@ index ce97168..60a6a0f 100644 { get_out = true; break; -@@ -412,7 +412,7 @@ static SSHORT get_next_token(const SCHAR** stmt, const SCHAR* stmt_end, string& +@@ -424,7 +424,7 @@ static SSHORT get_next_token(const SCHAR** stmt, const SCHAR* stmt_end, string& token.erase(MAX_TOKEN_SIZE); return TOKEN_TOO_LONG; } @@ -176,7 +176,7 @@ index ce97168..60a6a0f 100644 } // Is it an integer? -@@ -514,6 +514,6 @@ static SSHORT get_token(IStatus* status, +@@ -526,6 +526,6 @@ static SSHORT get_token(CheckStatusWrapper* status, *stmt = temp_stmt; generate_error(status, token, UNEXPECTED_TOKEN, @@ -185,9 +185,9 @@ index ce97168..60a6a0f 100644 return FB_FAILURE; } -- -2.2.0 +2.4.1 -From 309c65796d772150c249659f79f6d84dd9985d30 Mon Sep 17 00:00:00 2001 +From 4db9fa515a7ca169fa07533f1deaa7e4456885f3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 24 Nov 2014 22:12:17 +0300 Subject: [PATCH] mingw-w64 have matherr routine @@ -214,16 +214,16 @@ index fc6d69c..5a6f21b 100644 #endif // SOLARIS #endif //__ICC -- -2.2.0 +2.4.1 -From e705380c785638ef80fa737b8e7a4654c85986ab Mon Sep 17 00:00:00 2001 +From f7e30c4d505e7904b95d59d77cc69dcd6060c8e5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 28 Nov 2014 12:28:31 +0300 Subject: [PATCH] Fix linkng error for mingw. --- - src/utilities/install/services.cpp | 2 ++ - 1 files changed, 2 insertions(+) + src/utilities/install/services.cpp | 2 ++ + 1 file changed, 2 insertions(+) diff --git a/src/utilities/install/services.cpp b/src/utilities/install/services.cpp index 04abff3..f28e7fa 100644 @@ -246,9 +246,9 @@ index 04abff3..f28e7fa 100644 // // EOF -- -2.2.0 +2.4.1 -From 24cb71b609b43165672c75278985388b033f1806 Mon Sep 17 00:00:00 2001 +From a94d20a0393e6649fa92f0627103f7ac3eedad8b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 30 Nov 2014 15:26:04 +0300 Subject: [PATCH] DLL's are in BIN folder. @@ -258,10 +258,10 @@ Subject: [PATCH] DLL's are in BIN folder. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults -index 90724e6..bd6f8cb +index f68c44c..caa9930 100755 --- a/builds/posix/make.defaults +++ b/builds/posix/make.defaults -@@ -203,7 +203,7 @@ include $(ROOT)/gen/Make.Version +@@ -202,7 +202,7 @@ include $(ROOT)/gen/Make.Version vpath %.so $(LIB) vpath %.a $(LIB) @@ -271,23 +271,23 @@ index 90724e6..bd6f8cb #_____________________________________________________________________________ -- -2.2.0 +2.4.1 -From a1b086945a7ed8952b3a4075d7badb18618dbdfb Mon Sep 17 00:00:00 2001 +From 3665f4d104ed9c57c5d4cda4c4213a82e373d83f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 30 Nov 2014 15:08:19 +0300 Subject: [PATCH] Auto detect WINDRES with autoconf. -Fix building .rc files. +Fix building .rc files. --- - builds/posix/make.defaults | 4 +++- - builds/posix/make.rules | 4 ++-- + builds/posix/make.defaults | 4 +++- + builds/posix/make.rules | 4 ++-- builds/posix/make.shared.targets | 14 +++++++------- - configure.ac | 10 ++++++++++ + configure.ac | 10 ++++++++++ 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults -index 7ed6ec0..90724e6 +index caa9930..65f8c6c 100755 --- a/builds/posix/make.defaults +++ b/builds/posix/make.defaults @@ -151,9 +151,11 @@ ECHO= echo @@ -301,19 +301,23 @@ index 7ed6ec0..90724e6 RANLIB= @RANLIB@ +RC= @RC@ BTYACC=$(ROOT)/extern/btyacc/btyacc + CLOOP=$(GEN_ROOT)/$(TARGET)/cloop/release/bin/cloop - CC = @CC@ diff --git a/builds/posix/make.rules b/builds/posix/make.rules -index ac717d1..01d9910 100644 +index 42c719d..601dc82 100644 --- a/builds/posix/make.rules +++ b/builds/posix/make.rules -@@ -103,4 +103,4 @@ $(OBJ)/%.o: $(SRC_ROOT)/%.cpp +@@ -102,8 +102,8 @@ $(OBJ)/%.o: $(SRC_ROOT)/%.cpp + # Rules for making resource files -$(GEN_ROOT)/%.res: $(SRC_ROOT)/%.rc - windres --output-format=coff --include-dir=$( Date: Wed, 19 Nov 2014 08:59:48 +0300 Subject: [PATCH] Define AMD64 for 64-bit mingw. @@ -376,7 +380,7 @@ Subject: [PATCH] Define AMD64 for 64-bit mingw. 1 file changed, 5 insertions(+) diff --git a/configure.ac b/configure.ac -index ea1b81a..8db3f4c 100644 +index 2e81f32..651ca3e 100644 --- a/configure.ac +++ b/configure.ac @@ -468,6 +468,11 @@ dnl CPU_TYPE=ppc64 @@ -392,16 +396,16 @@ index ea1b81a..8db3f4c 100644 *) -- -2.2.0 +2.4.1 -From df3755c079857c16be06b17d17cd47d6f484f62d Mon Sep 17 00:00:00 2001 +From c3fc0c5a10f503fb92c97aa6d2cd7769f1744d4b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 23:16:18 +0300 -Subject: [PATCH] Use mingw-w64 crt for Vista and later. Remove unneeded -flag "-Dlint". Use GCC built-in define for mingw +Subject: [PATCH] Use mingw-w64 crt for Vista and later. Remove unneeded +flag "-Dlint". Use GCC built-in define for mingw --- - builds/posix/prefix.mingw | 4 ++-- + builds/posix/prefix.mingw | 4 ++-- src/common/classes/fb_atomic.h | 2 +- src/iscguard/iscguard.cpp | 2 +- src/isql/isql.epp | 4 ++-- @@ -410,7 +414,7 @@ flag "-Dlint". Use GCC built-in define for mingw 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw -index 5f8dde8..c469cb8 100644 +index 5f8dde8..09902f4 100644 --- a/builds/posix/prefix.mingw +++ b/builds/posix/prefix.mingw @@ -20,8 +20,8 @@ @@ -451,10 +455,10 @@ index b1cf0f6..6d21508 100644 #else if (!StartServiceCtrlDispatcher(service_table)) diff --git a/src/isql/isql.epp b/src/isql/isql.epp -index bc47170..92d1bd8 100644 +index 07fe3c3..1002b7a 100644 --- a/src/isql/isql.epp +++ b/src/isql/isql.epp -@@ -7316,7 +7316,7 @@ static unsigned print_item(TEXT** s, const IsqlVar* var, const unsigned length) +@@ -7274,7 +7274,7 @@ static unsigned print_item(TEXT** s, const IsqlVar* var, const unsigned length) break; } @@ -463,7 +467,7 @@ index bc47170..92d1bd8 100644 if (value == 0) { sprintf(p, "% #*.*g ", length, (int) MIN(8, (length - 6)) - 1, value); -@@ -7392,7 +7392,7 @@ static unsigned print_item(TEXT** s, const IsqlVar* var, const unsigned length) +@@ -7350,7 +7350,7 @@ static unsigned print_item(TEXT** s, const IsqlVar* var, const unsigned length) } else { @@ -473,20 +477,20 @@ index bc47170..92d1bd8 100644 { sprintf(p, "% #*.*g ", length, (int) MIN(16, (length - 7)) - 1, value); diff --git a/src/jrd/ibsetjmp.h b/src/jrd/ibsetjmp.h -index 294b0dc..95cefdc 100644 +index 759f125..0ac3c54 100644 --- a/src/jrd/ibsetjmp.h +++ b/src/jrd/ibsetjmp.h -@@ -49,7 +49,7 @@ +@@ -50,7 +50,7 @@ #endif // UNIX -#if defined(WIN_NT) && !defined(MINGW) +#if defined(WIN_NT) && !defined(__MINGW32__) #include - #define START_CHECK_FOR_EXCEPTIONS(err) __try { - #define END_CHECK_FOR_EXCEPTIONS(err) } __except ( ISC_exception_post(GetExceptionCode(), err)) { } + + #define START_CHECK_FOR_EXCEPTIONS(err) { \ diff --git a/src/remote/server/os/win32/srvr_w32.cpp b/src/remote/server/os/win32/srvr_w32.cpp -index b3abb64..b8551ab 100644 +index a7f8ac5..3bc652f 100644 --- a/src/remote/server/os/win32/srvr_w32.cpp +++ b/src/remote/server/os/win32/srvr_w32.cpp @@ -322,7 +322,7 @@ int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE /*hPrevInst*/, LPSTR lpszArgs, @@ -499,9 +503,9 @@ index b3abb64..b8551ab 100644 { #else -- -2.2.0 +2.4.1 -From dca9b4a320ec175c841a0818cf2884a4a82013b7 Mon Sep 17 00:00:00 2001 +From 21b827dadf12d0afe45f0f866891f1eeedf95011 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 20 Nov 2014 07:31:40 +0300 Subject: [PATCH] Add AuthSspi to remote common - needed for win32 target. @@ -524,9 +528,9 @@ index 2d3143f..53597e6 100644 Remote_Client:= $(call dirObjects,remote/client) $(call dirObjects,auth/SecureRemotePassword/client) \ $(call makeObjects,auth/SecurityDatabase,LegacyClient.cpp) \ -- -2.2.0 +2.4.1 -From 6c42accb286598f4d8e7749b8e320c869c811e15 Mon Sep 17 00:00:00 2001 +From 70e58e3d549dcbc4fb82429fcbf22c9dce072999 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 24 Nov 2014 09:08:35 +0300 Subject: [PATCH] Some utilities need to link with additional windows libraries @@ -536,10 +540,10 @@ Subject: [PATCH] Some utilities need to link with additional windows libraries 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in -index 86ea5da..34cafdc 100644 +index eac1ed5..85d4697 100644 --- a/builds/posix/Makefile.in +++ b/builds/posix/Makefile.in -@@ -357,7 +357,7 @@ utilities: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix g +@@ -375,7 +375,7 @@ utilities: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix g firebird_server: $(FB_DAEMON) $(FB_DAEMON): $(Remote_Server_Objects) $(COMMON_LIB) @@ -548,7 +552,7 @@ index 86ea5da..34cafdc 100644 fb_lock_print: $(LOCKPRINT) -@@ -367,7 +367,7 @@ $(LOCKPRINT): $(LOCKPRINT_Objects) $(COMMON_LIB) +@@ -385,7 +385,7 @@ $(LOCKPRINT): $(LOCKPRINT_Objects) $(COMMON_LIB) fbguard: $(FBGUARD) $(FBGUARD): $(FBGUARD_Objects) $(COMMON_LIB) @@ -558,25 +562,38 @@ index 86ea5da..34cafdc 100644 fbsvcmgr: $(FBSVCMGR) -- -2.2.0 +2.4.1 -From 2da7f65171d99bfcd666c5b84419d295fdebd039 Mon Sep 17 00:00:00 2001 +From 239e587288bcac4c7e626225fb88267898ad9302 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 24 Nov 2014 10:10:35 +0300 Subject: [PATCH] Fix linking executables and libraries with resources. Generate proper import libraries. --- - builds/posix/make.defaults | 9 +++++---- - builds/posix/Makefile.in.plugins_examples | 2 +- - builds/posix/prefix.mingw | 40 ++++++++++++++++++-------------------- - 3 files changed, 23 insertions(+), 28 deletions(-) + builds/posix/Makefile.in.plugins_examples | 2 +- + builds/posix/make.defaults | 9 +++---- + builds/posix/prefix.mingw | 40 ++++++++++++++----------------- + 3 files changed, 24 insertions(+), 27 deletions(-) +diff --git a/builds/posix/Makefile.in.plugins_examples b/builds/posix/Makefile.in.plugins_examples +index 40908f6..24fa138 100644 +--- a/builds/posix/Makefile.in.plugins_examples ++++ b/builds/posix/Makefile.in.plugins_examples +@@ -73,7 +73,7 @@ ifeq ($(PLATFORM),DARWIN) + $(LIB_LINK) $(LIB_BUNDLE_OPTIONS) -o $@ $^ @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ \ + $(FIREBIRD_LIBRARY_LINK) + else +- $(LIB_LINK) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME)udrcpp_example.$(SHRLIB_EXT) \ ++ $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(LIB_PREFIX)udrcpp_example.$(SHRLIB_EXT)) \ + $(LIB_PATH_OPTS) -o $@ $^ $(THR_LIBS) \ + $(FIREBIRD_LIBRARY_LINK) + endif diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults -index 1a091f6..b2d8939 +index 65f8c6c..73b9ae8 100755 --- a/builds/posix/make.defaults +++ b/builds/posix/make.defaults -@@ -215,7 +215,7 @@ vpath %.dll $(LIB) +@@ -218,7 +218,7 @@ vpath %.dll $(BIN) # #LibraryFileName=libfbclient @@ -585,7 +602,7 @@ index 1a091f6..b2d8939 LibraryFullName=$(LibraryFileName).${SHRLIB_EXT}.${FirebirdVersion} LibrarySoName=$(LibraryFileName).${SHRLIB_EXT}.2 LibraryBaseName=$(LibraryFileName).${SHRLIB_EXT} -@@ -226,7 +226,7 @@ LIBFIREBIRD_BASENAME = $(LIB)/$(LibrarySoName) +@@ -229,7 +229,7 @@ LIBFIREBIRD_BASENAME = $(LIB)/$(LibrarySoName) # The firebird engine library name @@ -594,7 +611,7 @@ index 1a091f6..b2d8939 EngineSoName=$(EngineFileName).${SHRLIB_EXT} ENGINE_SONAME = $(PLUGINS)/$(EngineSoName) -@@ -287,6 +287,7 @@ else +@@ -290,6 +290,7 @@ else endif LIB_PATH_OPTS = $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_RPATH,intl) LIB_LINK_SONAME= -Wl,-soname,$(1) @@ -602,8 +619,8 @@ index 1a091f6..b2d8939 LIB_LINK_MAPFILE= -Wl,--version-script,$(1) FIREBIRD_LIBRARY_LINK= -L$(LIB) -lfbclient $(MATHLIB) -@@ -301,7 +302,7 @@ LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_ - LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util +@@ -304,7 +305,7 @@ LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_ + LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util $(SO_LINK_LIBS) LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ - $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) @@ -611,7 +628,7 @@ index 1a091f6..b2d8939 LINK_IB_UTIL_LIBS = $(THR_LIBS) LINK_INTL = $(LIB_LINK) $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ -@@ -313,7 +314,7 @@ LINK_TRACE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAG +@@ -316,7 +317,7 @@ LINK_TRACE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAG LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) LINK_FIREBIRD = $(LIB_LINK) $(LINK_FIREBIRD_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\ @@ -620,21 +637,8 @@ index 1a091f6..b2d8939 LINK_FIREBIRD_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(MATHLIB) LINK_ENGINE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\ -diff --git a/builds/posix/Makefile.in.plugins_examples b/builds/posix/Makefile.in.plugins_examples -index a5331c8..7b3f8b0 100644 ---- a/builds/posix/Makefile.in.plugins_examples -+++ b/builds/posix/Makefile.in.plugins_examples -@@ -66,7 +66,7 @@ ifeq ($(PLATFORM),DARWIN) - $(LIB_LINK) $(LIB_BUNDLE_OPTIONS) -o $@ $^ @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ \ - $(FIREBIRD_LIBRARY_LINK) - else -- $(LIB_LINK) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME)udrcpp_example.$(SHRLIB_EXT) \ -+ $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(LIB_PREFIX)udrcpp_example.$(SHRLIB_EXT)) \ - $(LIB_PATH_OPTS) -o $@ $^ $(THR_LIBS) $(PLUGINS)/$(LIB_PREFIX)udr_engine.$(SHRLIB_EXT) \ - $(FIREBIRD_LIBRARY_LINK) - endif diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw -index 626e90c..1754712 100644 +index 09902f4..df3ba43 100644 --- a/builds/posix/prefix.mingw +++ b/builds/posix/prefix.mingw @@ -28,42 +28,38 @@ PLATFORM_PATH=os/win32 @@ -671,6 +675,13 @@ index 626e90c..1754712 100644 # Override library names to suppress version suffix -ClientLibraryNameFull := $(ClientLibraryName) -ClientLibrarySoName := $(ClientLibraryName) +- +-# Looks like MinGW 3 does not support version scripts but support def-files +-LINK_FIREBIRD_SYMBOLS = $(BLD_ROOT)/win32/defs/fbclient_s.def $(BLD_ROOT)/win32/defs/fbclient.def +- +-# This is required for newly built executable to find newly built shared +-# libraries because on Win32 there is no such thing as LD_LIBRARY_PATH +-LIB=$(BIN) +LibrarySoName := $(LibraryBaseName) +LibraryFullName := $(LibraryBaseName) +LIBFIREBIRD_FULLNAME = $(BIN)/$(LibraryBaseName) @@ -678,12 +689,9 @@ index 626e90c..1754712 100644 +LIBFIREBIRD_BASENAME = $(LIBFIREBIRD_FULLNAME) +LIBIBUTIL_SO = $(BIN)/$(IbUtilLibraryName) --# Looks like MinGW 3 does not support version scripts but support def-files --LINK_FIREBIRD_SYMBOLS = $(BLD_ROOT)/win32/defs/fbclient_s.def $(BLD_ROOT)/win32/defs/fbclient.def -- --# This is required for newly built executable to find newly built shared --# libraries because on Win32 there is no such thing as LD_LIBRARY_PATH --LIB=$(BIN) +-# Special options for UDF link +-LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_EXT)) -L$(LIB) -lib_util +-LINK_UDF_LIBS = +LINK_FIREBIRD_SYMBOLS = +LINK_FBINTL_SYMBOLS = +LINK_IBUTIL_SYMBOLS = @@ -692,16 +700,12 @@ index 626e90c..1754712 100644 +LINK_PLUGIN_SYMBOLS = +LIB_LINK_IMPLIB= -Wl,--out-implib,$(1) --# Special options for UDF link --LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_EXT)) -L$(LIB) -lib_util --LINK_UDF_LIBS = -- -# Special options for trace plugin link -LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) -- -2.2.0 +2.4.1 -From c07f3dacc132799ac4300b1e65369c895f2bd4d9 Mon Sep 17 00:00:00 2001 +From 3bf8f92c972acf946d2ce323dba06785a9d5cb50 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 24 Nov 2014 11:12:17 +0300 Subject: [PATCH] Windows have another sources for FBGUARD. @@ -727,9 +731,9 @@ index 53597e6..ef25f37 100644 AllObjects += $(FBGUARD_Objects) -- -2.2.0 +2.4.1 -From aede726ceaa9cf25424806a0ba438c1216bc0675 Mon Sep 17 00:00:00 2001 +From 4007f3292066706ff5f4f72e8e87de171c9c3353 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 27 Nov 2014 15:57:53 +0300 Subject: [PATCH] Do not install posix scripts for win32 platform. @@ -739,10 +743,10 @@ Subject: [PATCH] Do not install posix scripts for win32 platform. 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 8db3f4c..7491444 100644 +index 651ca3e..72f43d6 100644 --- a/configure.ac +++ b/configure.ac -@@ -1163,6 +1163,7 @@ if test "x$CROSS" != "x"; then +@@ -1195,6 +1195,7 @@ if test "x$CROSS" != "x"; then AC_CONFIG_FILES([gen/make.crossPlatform:builds/posix/make.$CROSS]) fi @@ -750,7 +754,7 @@ index 8db3f4c..7491444 100644 AC_CONFIG_FILES([ gen/Release/firebird/bin/fb_config:builds/install/posix-common/fb_config.in gen/Release/firebird/bin/posixLibrary.sh:builds/install/posix-common/posixLibrary.sh.in -@@ -1176,8 +1177,9 @@ gen/Release/firebird/bin/taruninstall.sh:builds/install/posix-common/taruninstal +@@ -1208,8 +1209,9 @@ gen/Release/firebird/bin/taruninstall.sh:builds/install/posix-common/taruninstal gen/Release/firebird/bin/tarMainUninstall.sh:builds/install/posix-common/tarMainUninstall.sh.in gen/Release/firebird/bin/changeServerMode.sh:builds/install/posix-common/changeServerMode.sh.in gen/Release/firebird/bin/registerDatabase.sh:builds/install/posix-common/registerDatabase.sh.in @@ -761,7 +765,7 @@ index 8db3f4c..7491444 100644 dnl: Platform Specific Files -@@ -1272,6 +1274,11 @@ case "$PLATFORM" in +@@ -1304,6 +1306,11 @@ case "$PLATFORM" in DARWIN) ;; @@ -774,9 +778,9 @@ index 8db3f4c..7491444 100644 if test -f ${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX};then POSTFIX_FILE=gen/make.platform.postfix:${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX} -- -2.2.0 +2.4.1 -From 37c6bc45973bc4a83a6f4c9dfb6143eceebde8ea Mon Sep 17 00:00:00 2001 +From 907124732e6e40f6b561594b72aee06aff97ad18 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 27 Nov 2014 17:04:52 +0300 Subject: [PATCH] Use variables everywhere. @@ -786,7 +790,7 @@ Subject: [PATCH] Use variables everywhere. 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/builds/posix/Makefile.in.examples b/builds/posix/Makefile.in.examples -index 12c454e..544be0a 100644 +index ec5c19c..49f6c9f 100644 --- a/builds/posix/Makefile.in.examples +++ b/builds/posix/Makefile.in.examples @@ -123,7 +123,7 @@ $(EXAMPLES_DEST)% : $(EXAMPLES_SRC)% @@ -823,9 +827,9 @@ index 12c454e..544be0a 100644 $(EXAMPLES_DEST)/%.sql: $(EXAMPLES_SRC)/empbuild/%.sql -- -2.2.0 +2.4.1 -From e705380c785638ef80fa737b8e7a4654c85986ab Mon Sep 17 00:00:00 2001 +From 065e72805f263d2ba484f45a965533370a0f4e37 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 28 Nov 2014 12:28:31 +0300 Subject: [PATCH] Build windows specific utilities for mingw. @@ -838,10 +842,10 @@ Subject: [PATCH] Build windows specific utilities for mingw. 4 files changed, 38 insertions(+), 1 deletion(-) diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in -index 34cafdc..effbefb 100644 +index 85d4697..79659d2 100644 --- a/builds/posix/Makefile.in +++ b/builds/posix/Makefile.in -@@ -160,6 +160,9 @@ endif +@@ -168,6 +168,9 @@ endif $(MAKE) plugins $(MAKE) examples $(MAKE) rest @@ -851,7 +855,7 @@ index 34cafdc..effbefb 100644 cross_process: -@@ -416,6 +419,29 @@ $(NBACKUP): $(NBACKUP_Objects) $(COMMON_LIB) +@@ -434,6 +437,29 @@ $(NBACKUP): $(NBACKUP_Objects) $(COMMON_LIB) #___________________________________________________________________________ @@ -882,10 +886,10 @@ index 34cafdc..effbefb 100644 # diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults -index 0c4fbd8..7ed6ec0 +index 73b9ae8..71626107 100755 --- a/builds/posix/make.defaults +++ b/builds/posix/make.defaults -@@ -348,6 +348,7 @@ GDS_INSTALL = $(BIN)/gds_install_service$(EXEC_EXT) +@@ -351,6 +351,7 @@ GDS_INSTALL = $(BIN)/gds_install_service$(EXEC_EXT) FBGUARD = $(BIN)/fbguard$(EXEC_EXT) IBGUARD = $(BIN)/ibguard$(EXEC_EXT) FBMGR_BIN = $(BIN)/fbmgr.bin$(EXEC_EXT) @@ -911,10 +915,10 @@ index ef25f37..18903b9 100644 +AllObjects += $(INSTCLIENT_Objects) $(INSTREG_Objects) $(INSTSVC_Objects) +endif diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw -index 1754712..c2bd068 100644 +index df3ba43..49839fd 100644 --- a/builds/posix/prefix.mingw +++ b/builds/posix/prefix.mingw -@@ -41,7 +41,8 @@ LIB_GUI:= -mwindows -lcomctl32 -lgdi32 +@@ -39,7 +39,8 @@ LIB_GUI:= -mwindows -lcomctl32 -lgdi32 # Add resources to some files FilesToAddVersionInfo=$(FBTRACEMGR) $(LIBFIREBIRD_FULLNAME) $(ENGINE_SONAME) $(LIBFBINTL_SO) \ $(FBSVCMGR) $(FBTRACEMGR) $(FBTRACE) $(FBUDF_SO) $(LIBIBUTIL_SO) \ @@ -925,4 +929,39 @@ index 1754712..c2bd068 100644 FilesToAddDialog=$(FB_DAEMON) FilesToAddDialog2=$(FBGUARD) -- -2.2.0 +2.4.1 + +From 065e72805f263d2ba484f45a965533370a0f4e37 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Fri, 28 Nov 2014 12:28:31 +0300 +Subject: [PATCH] Fix using mutex. + +--- + src/extlib/fbudf/fbudf.cpp | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletion(-) + +diff --git a/src/extlib/fbudf/fbudf.cpp b/src/extlib/fbudf/fbudf.cpp +index 85d4697..79659d2 100644 +--- a/src/extlib/fbudf/fbudf.cpp 2015-05-27 09:35:39.733200000 +0300 ++++ b/src/extlib/fbudf/fbudf.cpp 2015-05-27 09:35:58.765200000 +0300 +@@ -581,7 +581,7 @@ + #if defined(HAVE_LOCALTIME_R) + tm* times = localtime_r(&seconds, &timex); + #else +- timeMutex.enter(); ++ timeMutex.enter(FB_FUNCTION); + tm* times = localtime(&seconds); + if (times) + { +@@ -628,7 +628,7 @@ + #if defined(HAVE_GMTIME_R) + tm* times = gmtime_r(&seconds, &timex); + #else +- timeMutex.enter(); ++ timeMutex.enter(FB_FUNCTION); + tm* times = gmtime(&seconds); + if (times) + { +-- +2.4.1 + diff --git a/mingw-w64-firebird-git/firebird-msys.diff b/mingw-w64-firebird-git/firebird-msys.diff index 49052104a1..aee546680c 100644 --- a/mingw-w64-firebird-git/firebird-msys.diff +++ b/mingw-w64-firebird-git/firebird-msys.diff @@ -54,3 +54,74 @@ index 9f23244..d4e58f7 100755 -- 2.2.0 + +From c89f2fdd21146ddfd95e57232c6ea47bda44a016 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 25 May 2015 15:14:47 +0300 +Subject: [PATCH] cloop: Fix building with mingw. + +--- + extern/cloop/Makefile | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/extern/cloop/Makefile b/extern/cloop/Makefile +index 2056e4a..11e0901 100644 +--- a/extern/cloop/Makefile ++++ b/extern/cloop/Makefile +@@ -11,7 +11,7 @@ LD := $(CXX) + SRC_DIR := src + BUILD_DIR := build + OUT_DIR := output +-SHRLIB_EXT := .so ++SHRLIB_EXT := .dll + EXE_EXT := + + OBJ_DIR := $(BUILD_DIR)/$(TARGET) +@@ -27,7 +27,7 @@ SRCS_CPP := $(foreach sdir,$(SRC_DIRS),$(wildcard $(sdir)/*.cpp)) + OBJS_C := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS_C)) + OBJS_CPP := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRCS_CPP)) + +-C_FLAGS := -ggdb -fPIC -MMD -MP -W -Wall -Wno-unused-parameter ++C_FLAGS := -ggdb -MMD -MP -W -Wall -Wno-unused-parameter + CXX_FLAGS := $(C_FLAGS) + FPC_FLAGS := -Mdelphi + +@@ -106,23 +106,23 @@ $(BIN_DIR)/test1-c$(SHRLIB_EXT): \ + $(OBJ_DIR)/tests/test1/CalcCApi.o \ + $(OBJ_DIR)/tests/test1/CTest.o \ + +- $(LD) $^ -shared -ldl -o $@ ++ $(LD) $^ -shared -o $@ + + $(BIN_DIR)/test1-c$(EXE_EXT): \ + $(OBJ_DIR)/tests/test1/CalcCApi.o \ + $(OBJ_DIR)/tests/test1/CTest.o \ + +- $(LD) $^ -ldl -o $@ ++ $(LD) $^ -o $@ + + $(BIN_DIR)/test1-cpp$(SHRLIB_EXT): \ + $(OBJ_DIR)/tests/test1/CppTest.o \ + +- $(LD) $^ -shared -ldl -o $@ ++ $(LD) $^ -shared -o $@ + + $(BIN_DIR)/test1-cpp$(EXE_EXT): \ + $(OBJ_DIR)/tests/test1/CppTest.o \ + +- $(LD) $^ -ldl -o $@ ++ $(LD) $^ -o $@ + + $(BIN_DIR)/test1-pascal$(SHRLIB_EXT): \ + $(SRC_DIR)/tests/test1/PascalClasses.pas \ +@@ -130,7 +130,7 @@ $(BIN_DIR)/test1-pascal$(SHRLIB_EXT): \ + $(SRC_DIR)/tests/test1/CalcPascalApi.pas \ + + ifeq ($(WITH_FPC),1) +- fpc $(FPC_FLAGS) -fPIC -FU$(OBJ_DIR)/tests/test1 -o$(BIN_DIR)/test1-pascal$(SHRLIB_EXT) $(SRC_DIR)/tests/test1/PascalLibrary.dpr ++ fpc $(FPC_FLAGS) -FU$(OBJ_DIR)/tests/test1 -o$(BIN_DIR)/test1-pascal$(SHRLIB_EXT) $(SRC_DIR)/tests/test1/PascalLibrary.dpr + endif + + $(BIN_DIR)/test1-pascal$(EXE_EXT): \ +-- +2.4.1 From bb2c613f10c03943c6ca3b67db424c1ca492227c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 27 May 2015 12:27:37 +0300 Subject: [PATCH 1072/2060] mesa: Update to 10.5.6 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index ff79a857a1..5915858e95 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,7 +2,7 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.5.5 +pkgver=10.5.6 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('5e6e182fd9414b74b95c45b4eda99fb5' +md5sums=('7a845c50fc8aaae4c9373e795c1f491d' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From db3370a08420b83307d15bd0c9c4d62585b0231c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 27 May 2015 12:51:03 +0300 Subject: [PATCH 1073/2060] scite: Update to 3.5.6 --- mingw-w64-scite/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index d0efd09442..e1dadcb66f 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -3,7 +3,7 @@ _realname=scite pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") -pkgver=3.5.5 +pkgver=3.5.6 pkgrel=1 arch=('any') url='http://www.scintilla.org/SciTE.html' @@ -15,7 +15,7 @@ source=("http://downloads.sourceforge.net/scintilla/${_realname}${pkgver//./}.tg "0001-Use-POSIX-tools-in-makefiles.patch" "0002-Prefix-library-names.patch" "0003-Use-FHS.patch") -md5sums=('5c96c719fa01b27e987909502b671e25' +md5sums=('046086491528b21cd6def5a0f48e5764' 'd4bd88fa3e173d26d9cacaef12b1d6f9' '2a9ec192f43f82d4b26b4a6667de350a' '17011da4ced7269d787433b599a1ae92') From c5e73fbbcf626a4a7f5599f47910c9b6d2a44871 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 27 May 2015 12:58:52 +0300 Subject: [PATCH 1074/2060] clang/llvm: Update to 3.6.1 --- mingw-w64-clang/PKGBUILD | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index bc9e3f3e91..b4ec69592f 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -7,7 +7,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" #"${MINGW_PACKAGE_PREFIX}-compiler-rt" ) -pkgver=3.6.0 +pkgver=3.6.1 pkgrel=1 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') @@ -28,19 +28,19 @@ source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz{,.sig} http://llvm.org/releases/$pkgver/lldb-$pkgver.src.tar.xz{,.sig} clang-mingw-driver.patch llvm-3.5.0-fix-cmake-llvm-exports.patch) -sha256sums=('b39a69e501b49e8f73ff75c9ad72313681ee58d6f430bfad4d81846fe92eb9ce' +sha256sums=('2f00c615913aa0b56607ee1548936e60ad2aa89e6d56f23fb032a4463366fc7a' 'SKIP' - 'be0e69378119fe26f0f2f74cffe82b7c26da840c9733fe522ed3c1b66b11082d' + '74f92d0c93b86678b015e87655f59474b2f657769680efdeb3c0524ffbd2dad7' 'SKIP' - '7f49fb79e5adcdce7dddaf973f1db130228dfb19e37a99a7f5365a6948b26b11' + 'fcbf610c77be6047f11ca10c4725610417beba832565115a9e2fcfe2897b649f' 'SKIP' - 'bca87e92d51fa831b0d3cc713edad89db1e1076fada122efd15f8b9de7ad0011' + 'c1c4d9159b978a81eaca25bfa57d617f64c6ed7c8acb2e736a4ea12ddff1be61' 'SKIP' - '299c1e82b0086a79c5c1aa1885ea3be3bbce6979aaa9b886409b14f9b387fbb7' + '5a5c653becf3978d4c4f6095708660855bed691210a9426bb839eecd88b6c0f9' 'SKIP' - '3aa949ba82913490a75697287d9ee8598c619fae0aa6bb8fddf0095ff51bc812' + 'f4ee70d870d550a9147ac6a548ce7daf7d9e6897348bf411f43c572966fb92b6' 'SKIP' - '2b1ad1d42c4ea3fa2f9dd6db7c522d86e80891659b24dbb3d0d80386d8eaf0b2' + 'cefb5c64e78e85ad05a06b80f017ccfe1208b74d3da34eb425c505c6fef9aaba' 'SKIP' '7c9366df58b27378c104d37466caa761873440e5fbee707d3d22693add5d2cdb' '841a153d0e9d2d196ea5318388ff295e69c41547eb73b24edf92a1b2cc3cccdd') From dab2cab48dab292230c244b764856b50984c7c7a Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 27 May 2015 20:13:59 +0100 Subject: [PATCH 1075/2060] vlc-git update to latest and cleanup unused patches --- ...declaration-of-MFAudioFormat_Dolby_A.patch | 26 -- ...001-Use-libdir-for-plugins-on-msys2.patch} | 0 ...ps-time.h-is-assumed-in-many-places.patch} | 0 ...caltime_r-and-gmtime_r-inline-issues.patch | 35 --- ...some-legacy-mingw.org-header-defines.patch | 205 +++++++++++++++ .../0014-dx11-vout-add-WINSTORE-support.patch | 241 ------------------ mingw-w64-vlc-git/PKGBUILD | 38 ++- 7 files changed, 223 insertions(+), 322 deletions(-) delete mode 100644 mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch rename mingw-w64-vlc-git/{0007-Use-libdir-for-plugins-on-msys2.patch => 0001-Use-libdir-for-plugins-on-msys2.patch} (100%) rename mingw-w64-vlc-git/{0015-fixups-time.h-is-assumed-in-many-places.patch => 0004-fixups-time.h-is-assumed-in-many-places.patch} (100%) delete mode 100644 mingw-w64-vlc-git/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch create mode 100644 mingw-w64-vlc-git/0014-Remove-some-legacy-mingw.org-header-defines.patch delete mode 100644 mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch diff --git a/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch b/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch deleted file mode 100644 index 4c79ed7a0b..0000000000 --- a/mingw-w64-vlc-git/0001-MinGW-w64-fix-redeclaration-of-MFAudioFormat_Dolby_A.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 5368ef34b24109f78c5498a42a263152db6e6d41 Mon Sep 17 00:00:00 2001 -From: martell -Date: Sat, 22 Nov 2014 22:15:32 +0000 -Subject: [PATCH 1/6] MinGW-w64: fix redeclaration of MFAudioFormat_Dolby_AC3 - ---- - modules/codec/mft.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/modules/codec/mft.c b/modules/codec/mft.c -index 67a3dd6..eb49a96 100644 ---- a/modules/codec/mft.c -+++ b/modules/codec/mft.c -@@ -172,7 +172,9 @@ static const pair_format_guid video_format_table[] = - { 0, NULL } - }; - -+#ifndef __MINGW64_VERSION_MAJOR - DEFINE_GUID(MFAudioFormat_Dolby_AC3, 0xe06d802c, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); -+#endif - /* - * We cannot use the FOURCC code for audio either since the - * WAVE_FORMAT value is used to create the GUID. --- -2.1.3 - diff --git a/mingw-w64-vlc-git/0007-Use-libdir-for-plugins-on-msys2.patch b/mingw-w64-vlc-git/0001-Use-libdir-for-plugins-on-msys2.patch similarity index 100% rename from mingw-w64-vlc-git/0007-Use-libdir-for-plugins-on-msys2.patch rename to mingw-w64-vlc-git/0001-Use-libdir-for-plugins-on-msys2.patch diff --git a/mingw-w64-vlc-git/0015-fixups-time.h-is-assumed-in-many-places.patch b/mingw-w64-vlc-git/0004-fixups-time.h-is-assumed-in-many-places.patch similarity index 100% rename from mingw-w64-vlc-git/0015-fixups-time.h-is-assumed-in-many-places.patch rename to mingw-w64-vlc-git/0004-fixups-time.h-is-assumed-in-many-places.patch diff --git a/mingw-w64-vlc-git/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch b/mingw-w64-vlc-git/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch deleted file mode 100644 index 25a6bbbcb4..0000000000 --- a/mingw-w64-vlc-git/0008-Fix-localtime_r-and-gmtime_r-inline-issues.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 36af44c7282b183d205586cb6e059d6b863ef247 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Tue, 13 Jan 2015 12:13:56 +0000 -Subject: [PATCH] Fix localtime_r and gmtime_r inline issues - ---- - configure.ac | 12 +++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 77eddd1..9f59632 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -563,6 +564,18 @@ AC_CHECK_FUNCS(fdatasync,, - - dnl mingw64 implements those as static inline, not functions with C linkage - AC_LINK_IFELSE([ -+ AC_LANG_PROGRAM([#include ], [ -+ struct tm newtime; -+ time_t ltime; -+ localtime_r(<ime, &newtime); -+ ])],[AC_DEFINE([HAVE_LOCALTIME_R],[1],[Define to 1 if you have localtime_r function])],[AC_LIBOBJ([localtime_r])]) -+AC_LINK_IFELSE([ -+ AC_LANG_PROGRAM([#include ], [ -+ time_t ltime; -+ struct tm mytime; -+ gmtime_r(<ime, &mytime); -+ ])],[AC_DEFINE([HAVE_GMTIME_R],[1],[Define to 1 if you have gmtime_r function])],[AC_LIBOBJ([gmtime_r])]) -+AC_LINK_IFELSE([ - AC_LANG_PROGRAM([#include ], [ - char *c; - if (asprintf(&c, "%s %d", "string", 1) == -1) --- -2.2.1 - diff --git a/mingw-w64-vlc-git/0014-Remove-some-legacy-mingw.org-header-defines.patch b/mingw-w64-vlc-git/0014-Remove-some-legacy-mingw.org-header-defines.patch new file mode 100644 index 0000000000..5d15f64286 --- /dev/null +++ b/mingw-w64-vlc-git/0014-Remove-some-legacy-mingw.org-header-defines.patch @@ -0,0 +1,205 @@ +From 111305d5178ce8c34e284d32975f9f8ec49f194b Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Wed, 27 May 2015 18:21:59 +0100 +Subject: [PATCH] Remove some legacy mingw.org header defines + + +diff --git a/include/vlc_windows_interfaces.h b/include/vlc_windows_interfaces.h +index e4c41f2..3cbfd20 100644 +--- a/include/vlc_windows_interfaces.h ++++ b/include/vlc_windows_interfaces.h +@@ -39,190 +39,7 @@ + /* rpcndr.h defines small not only for idl */ + #undef small + +-/* mingw.org fails to define this */ +-#ifndef __ITaskbarList3_INTERFACE_DEFINED__ +-#define __ITaskbarList3_INTERFACE_DEFINED__ +-const GUID CLSID_TaskbarList ={ 0x56FDF344,0xFD6D,0x11d0,{0x95,0x8A,0x00,0x60,0x97,0xC9,0xA0,0x90}}; +-const GUID IID_ITaskbarList3 = { 0xea1afb91,0x9e28,0x4b86,{0x90,0xe9,0x9e,0x9f,0x8a,0x5e,0xef,0xaf}}; +- +- +-typedef enum TBPFLAG +-{ +- TBPF_NOPROGRESS = 0, +- TBPF_INDETERMINATE = 0x1, +- TBPF_NORMAL = 0x2, +- TBPF_ERROR = 0x4, +- TBPF_PAUSED = 0x8 +-} TBPFLAG; +- +-typedef struct tagTHUMBBUTTON +-{ +- DWORD dwMask; +- UINT iId; +- UINT iBitmap; +- HICON hIcon; +- // WCHAR pszTip[ 260 ]; +- wchar_t pszTip[ 260 ]; +- DWORD dwFlags; +-} THUMBBUTTON; +- +-typedef struct tagTHUMBBUTTON *LPTHUMBBUTTON; +- +-typedef enum THUMBBUTTONMASK { +- THB_BITMAP = 0x1, +- THB_ICON = 0x2, +- THB_TOOLTIP = 0x4, +- THB_FLAGS = 0x8 +-} THUMBBUTTONMASK; +- +-typedef enum THUMBBUTTONFLAGS { +- THBF_ENABLED = 0x0, +- THBF_DISABLED = 0x1, +- THBF_DISMISSONCLICK = 0x2, +- THBF_NOBACKGROUND = 0x4, +- THBF_HIDDEN = 0x8, +- THBF_NONINTERACTIVE = 0x10 +-} THUMBBUTTONFLAGS; +- +-#ifdef __cplusplus +-interface ITaskbarList : public IUnknown { +-public: +- virtual HRESULT WINAPI HrInit(void) = 0; +- virtual HRESULT WINAPI AddTab(HWND hwnd) = 0; +- virtual HRESULT WINAPI DeleteTab(HWND hwnd) = 0; +- virtual HRESULT WINAPI ActivateTab(HWND hwnd) = 0; +- virtual HRESULT WINAPI SetActiveAlt(HWND hwnd) = 0; +-}; +- +-interface ITaskbarList2 : public ITaskbarList { +-public: +- virtual HRESULT WINAPI MarkFullscreenWindow(HWND hwnd,WINBOOL fFullscreen) = 0; +-}; +- +-interface ITaskbarList3 : public ITaskbarList2 +-{ +- virtual HRESULT STDMETHODCALLTYPE SetProgressValue( +- HWND hwnd, +- ULONGLONG ullCompleted, +- ULONGLONG ullTotal) = 0; +- +- virtual HRESULT STDMETHODCALLTYPE SetProgressState( +- HWND hwnd, +- TBPFLAG tbpFlags) = 0; +- +- virtual HRESULT STDMETHODCALLTYPE RegisterTab( +- HWND hwndTab, +- HWND hwndMDI) = 0; +- +- virtual HRESULT STDMETHODCALLTYPE UnregisterTab( +- HWND hwndTab) = 0; +- +- virtual HRESULT STDMETHODCALLTYPE SetTabOrder( +- HWND hwndTab, +- HWND hwndInsertBefore) = 0; +- +- virtual HRESULT STDMETHODCALLTYPE SetTabActive( +- HWND hwndTab, +- HWND hwndMDI, +- DWORD dwReserved) = 0; +- +- virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons( +- HWND hwnd, +- UINT cButtons, +- LPTHUMBBUTTON pButton) = 0; +- +- virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons( +- HWND hwnd, +- UINT cButtons, +- LPTHUMBBUTTON pButton) = 0; +- +- virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList( +- HWND hwnd, +- HIMAGELIST himl) = 0; +- +- virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon( +- HWND hwnd, +- HICON hIcon, +- LPCWSTR pszDescription) = 0; +- +- virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip( +- HWND hwnd, +- LPCWSTR pszTip) = 0; +- +- virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip( +- HWND hwnd, +- RECT *prcClip) = 0; +- +-}; +- +-#else /* !__cplusplus */ +- +-struct ITaskbarList3Vtbl; +-struct ITaskbarList3 { struct ITaskbarList3Vtbl* lpVtbl; }; +-typedef struct ITaskbarList3 ITaskbarList3; +- +-struct ITaskbarList3Vtbl +-{ +- +- long ( WINAPI *QueryInterface )(ITaskbarList3 * This, REFIID riid, void **ppvObject); +- +- long ( WINAPI *AddRef )(ITaskbarList3 *This); +- +- long ( WINAPI *Release )(ITaskbarList3 *This); +- +- long ( WINAPI *HrInit )(ITaskbarList3 *This); +- +- long ( WINAPI *AddTab )(ITaskbarList3 *This, HWND hwnd); +- +- long ( WINAPI *DeleteTab )(ITaskbarList3 *This, HWND hwnd); +- +- long ( WINAPI *ActivateTab )(ITaskbarList3 *This, HWND hwnd); +- +- long ( WINAPI *SetActiveAlt )(ITaskbarList3 *This, HWND hwnd); +- +- long ( WINAPI *MarkFullscreenWindow )(ITaskbarList3 *This, HWND hwnd, +- BOOL fFullscreen); +- +- long ( WINAPI *SetProgressValue )(ITaskbarList3 *This, HWND hwnd, +- ULONGLONG ullCompleted, ULONGLONG ullTotal); +- +- long ( WINAPI *SetProgressState )(ITaskbarList3 *This, HWND hwnd, +- TBPFLAG tbpFlags); +- +- long ( WINAPI *RegisterTab )( ITaskbarList3 *This, HWND hwndTab, HWND hwndMDI); +- +- long ( WINAPI *UnregisterTab )(ITaskbarList3 *This, HWND hwndTab); +- +- long ( WINAPI *SetTabOrder )(ITaskbarList3 *This, HWND hwndTab, +- HWND hwndInsertBefore); +- +- long ( WINAPI *SetTabActive )(ITaskbarList3 *This, HWND hwndTab, +- HWND hwndMDI, DWORD dwReserved); +- +- long ( WINAPI *ThumbBarAddButtons )(ITaskbarList3 *This, HWND hwnd, +- UINT cButtons, LPTHUMBBUTTON pButton); +- +- long ( WINAPI *ThumbBarUpdateButtons )(ITaskbarList3 *This, HWND hwnd, +- UINT cButtons, LPTHUMBBUTTON pButton); +- +- long ( WINAPI *ThumbBarSetImageList )(ITaskbarList3 *This, HWND hwnd, +- HIMAGELIST himl); +- +- long ( WINAPI *SetOverlayIcon )(ITaskbarList3 *This, HWND hwnd, +- HICON hIcon, LPCWSTR pszDescription); +- +- long ( WINAPI *SetThumbnailTooltip )(ITaskbarList3 *This, HWND hwnd, +- LPCWSTR pszTip); +- +- long ( WINAPI *SetThumbnailClip )(ITaskbarList3 *This, HWND hwnd, +- RECT *prcClip); +- +-}; +- +-#endif /* __cplusplus */ +-#endif /* __ITaskbarList3_INTERFACE_DEFINED__ */ +- +-/* mingw-w64 also fails to define these as of 2.0.1 */ ++/* mingw-w64 fails to define this as of 2.0.1 */ + + #ifndef THBN_CLICKED + # define THBN_CLICKED 0x1800 +-- +2.4.1 + diff --git a/mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch b/mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch deleted file mode 100644 index fad441e6df..0000000000 --- a/mingw-w64-vlc-git/0014-dx11-vout-add-WINSTORE-support.patch +++ /dev/null @@ -1,241 +0,0 @@ -From 035969096dfd54dcdddd454ce4a1932211f7d5f6 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Mon, 18 May 2015 16:47:52 +0100 -Subject: [PATCH] dx11 vout: add WINSTORE support - - -diff --git a/include/vlc_windows_interfaces.h b/include/vlc_windows_interfaces.h -index e4c41f2..bee2795 100644 ---- a/include/vlc_windows_interfaces.h -+++ b/include/vlc_windows_interfaces.h -@@ -39,12 +39,13 @@ - /* rpcndr.h defines small not only for idl */ - #undef small - -+#if !VLC_WINSTORE_APP - /* mingw.org fails to define this */ - #ifndef __ITaskbarList3_INTERFACE_DEFINED__ - #define __ITaskbarList3_INTERFACE_DEFINED__ - const GUID CLSID_TaskbarList ={ 0x56FDF344,0xFD6D,0x11d0,{0x95,0x8A,0x00,0x60,0x97,0xC9,0xA0,0x90}}; - const GUID IID_ITaskbarList3 = { 0xea1afb91,0x9e28,0x4b86,{0x90,0xe9,0x9e,0x9f,0x8a,0x5e,0xef,0xaf}}; -- -+#endif - - typedef enum TBPFLAG - { -@@ -205,8 +206,10 @@ struct ITaskbarList3Vtbl - long ( WINAPI *ThumbBarUpdateButtons )(ITaskbarList3 *This, HWND hwnd, - UINT cButtons, LPTHUMBBUTTON pButton); - -+#if !VLC_WINSTORE_APP - long ( WINAPI *ThumbBarSetImageList )(ITaskbarList3 *This, HWND hwnd, - HIMAGELIST himl); -+#endif - - long ( WINAPI *SetOverlayIcon )(ITaskbarList3 *This, HWND hwnd, - HICON hIcon, LPCWSTR pszDescription); -diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am -index 943ad6a..e59d93c 100644 ---- a/modules/video_output/Makefile.am -+++ b/modules/video_output/Makefile.am -@@ -186,13 +186,13 @@ EXTRA_LTLIBRARIES += libdirect3d9_plugin.la - endif - - libdirect3d11_plugin_la_SOURCES = video_output/msw/direct3d11.c \ -- video_output/msw/common.c video_output/msw/common.h \ -- video_output/msw/events.c video_output/msw/events.h \ -- video_output/msw/builtin_shaders.h \ -- video_output/msw/win32touch.c video_output/msw/win32touch.h -+ video_output/msw/common.c video_output/msw/common.h - libdirect3d11_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \ - -DMODULE_NAME_IS_direct3d11 - if !HAVE_WINSTORE -+libdirect3d11_plugin_la_SOURCES += video_output/msw/events.c \ -+ video_output/msw/events.h video_output/msw/builtin_shaders.h \ -+ video_output/msw/win32touch.c video_output/msw/win32touch.h - libdirect3d11_plugin_la_LIBADD = -lgdi32 -lole32 -luuid - else - libdirect3d11_plugin_la_LIBADD = -ld3dcompiler -lole32 -luuid -diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c -index 987f260..5a1733a 100644 ---- a/modules/video_output/msw/common.c -+++ b/modules/video_output/msw/common.c -@@ -42,26 +42,31 @@ - - #include - -+#if !VLC_WINSTORE_APP - static void CommonChangeThumbnailClip(vout_display_t *, bool show); - static int CommonControlSetFullscreen(vout_display_t *, bool is_fullscreen); - - static void DisableScreensaver(vout_display_t *); - static void RestoreScreensaver(vout_display_t *); -+#endif - - /* */ - int CommonInit(vout_display_t *vd) - { - vout_display_sys_t *sys = vd->sys; - -- sys->hwnd = NULL; -- sys->hvideownd = NULL; -- sys->hparent = NULL; -- sys->hfswnd = NULL; -- sys->changes = 0; -+ sys->hwnd = NULL; -+ sys->hvideownd = NULL; -+ sys->hparent = NULL; -+ sys->hfswnd = NULL; -+ sys->changes = 0; -+ sys->is_first_display = true; -+ sys->is_on_top = false; -+ -+#if !VLC_WINSTORE_APP - SetRectEmpty(&sys->rect_display); - SetRectEmpty(&sys->rect_parent); -- sys->is_first_display = true; -- sys->is_on_top = false; -+ - - var_Create(vd, "video-deco", VLC_VAR_BOOL | VLC_VAR_DOINHERIT); - var_Create(vd, "disable-screensaver", VLC_VAR_BOOL | VLC_VAR_DOINHERIT); -@@ -70,7 +75,7 @@ int CommonInit(vout_display_t *vd) - sys->event = EventThreadCreate(vd); - if (!sys->event) - return VLC_EGENERIC; -- -+#endif - event_cfg_t cfg; - memset(&cfg, 0, sizeof(cfg)); - #ifdef MODULE_NAME_IS_direct3d9 -@@ -83,7 +88,7 @@ int CommonInit(vout_display_t *vd) - cfg.y = var_InheritInteger(vd, "video-y"); - cfg.width = vd->cfg->display.width; - cfg.height = vd->cfg->display.height; -- -+#if !VLC_WINSTORE_APP - event_hwnd_t hwnd; - if (EventThreadStart(sys->event, &hwnd, &cfg)) - return VLC_EGENERIC; -@@ -100,7 +105,7 @@ int CommonInit(vout_display_t *vd) - } - - DisableScreensaver (vd); -- -+#endif - return VLC_SUCCESS; - } - -@@ -108,7 +113,7 @@ int CommonInit(vout_display_t *vd) - void CommonClean(vout_display_t *vd) - { - vout_display_sys_t *sys = vd->sys; -- -+#if !VLC_WINSTORE_APP - if (sys->event) { - CommonChangeThumbnailClip(vd, false); - EventThreadStop(sys->event); -@@ -116,6 +121,7 @@ void CommonClean(vout_display_t *vd) - } - - RestoreScreensaver(vd); -+#endif - } - - /* */ -@@ -133,7 +139,7 @@ void CommonManage(vout_display_t *vd) - * messages. But since window can stay blocked into this function for a - * long time (for example when you move your window on the screen), I - * decided to isolate PeekMessage in another thread. */ -- -+#if !VLC_WINSTORE_APP - /* If we do not control our window, we check for geometry changes - * ourselves because the parent might not send us its events. */ - if (sys->hparent) { -@@ -170,6 +176,7 @@ void CommonManage(vout_display_t *vd) - /* HasMoved means here resize or move */ - if (EventThreadGetAndResetHasMoved(sys->event)) - UpdateRects(vd, NULL, NULL, false); -+#endif - } - - /** -@@ -179,7 +186,7 @@ void CommonManage(vout_display_t *vd) - void CommonDisplay(vout_display_t *vd) - { - vout_display_sys_t *sys = vd->sys; -- -+#if !VLC_WINSTORE_APP - if (!sys->is_first_display) - return; - -@@ -194,6 +201,7 @@ void CommonDisplay(vout_display_t *vd) - SWP_NOSIZE| - SWP_NOZORDER); - sys->is_first_display = false; -+#endif - } - - /** -@@ -272,6 +280,7 @@ void AlignRect(RECT *r, int align_boundary, int align_size) - r->right = ((r->right - r->left + align_size/2) & ~align_size) + r->left; - } - -+#if !VLC_WINSTORE_APP - /* */ - static void CommonChangeThumbnailClip(vout_display_t *vd, bool show) - { -@@ -710,3 +719,5 @@ static void RestoreScreensaver(vout_display_t *vd) - sys->i_spi_screensaveactive, NULL, 0); - } - } -+ -+#endif -diff --git a/modules/video_output/msw/direct3d11.c b/modules/video_output/msw/direct3d11.c -index 8ed4598..41a68bb 100644 ---- a/modules/video_output/msw/direct3d11.c -+++ b/modules/video_output/msw/direct3d11.c -@@ -42,7 +42,7 @@ - # define D3D11CreateDevice(args...) sys->OurD3D11CreateDevice(args) - # define D3DCompile(args...) sys->OurD3DCompile(args) - #else --# define IDXGISwapChain_Present(args...) IDXGISwapChain_Present1(args) -+//# define IDXGISwapChain_Present(args...) IDXGISwapChain_Present1(args) - # define IDXGIFactory_CreateSwapChain(a,b,c,d) IDXGIFactory2_CreateSwapChainForComposition(a,b,c,NULL,d) - # define DXGI_SWAP_CHAIN_DESC DXGI_SWAP_CHAIN_DESC1 - #endif -@@ -431,7 +431,9 @@ static int Open(vlc_object_t *object) - vd->pool = CommonPool; - vd->prepare = Prepare; - vd->display = Display; -+#if !VLC_WINSTORE_APP - vd->control = CommonControl; -+#endif - vd->manage = CommonManage; - - msg_Dbg(vd, "Direct3D11 Open Succeeded"); -@@ -764,17 +766,17 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) - sys->d3dPxShader = globPixelShaderDefault; - break; - } -- -+#if !VLC_WINSTORE_APP - UpdateRects(vd, NULL, NULL, true); -- -+#endif - if (Direct3D11CreateResources(vd, fmt)) { - msg_Err(vd, "Failed to allocate resources"); - Direct3D11DestroyResources(vd); - return VLC_EGENERIC; - } -- -+#if !VLC_WINSTORE_APP - EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct3D11 output)"); -- -+#endif - msg_Dbg(vd, "Direct3D11 device adapter successfully initialized"); - return VLC_SUCCESS; - } --- -2.4.1 - diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index f5c1eb2880..bb8571a38f 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -3,14 +3,14 @@ # Contributor: Ray Donnelly #_variant=winrt #desktop -_variant=winrt +_variant=desktop _realname=vlc pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.60785.d1bc937 +pkgver=3.0.0.60894.f5d5cb7 pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -112,25 +112,25 @@ makedepends=( options=('strip' '!emptydirs') source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_realname}-${_ver_base}.git" "${_realname}"::"git://git.videolan.org/${_realname}.git" + 0001-Use-libdir-for-plugins-on-msys2.patch 0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch 0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch + 0004-fixups-time.h-is-assumed-in-many-places.patch 0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch - 0007-Use-libdir-for-plugins-on-msys2.patch 0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch 0012-Only-build-correct-modules-for-WINSTORE.patch 0013-remove-AllocConsole-reference-for-WINSTORE.patch - 0014-dx11-vout-add-WINSTORE-support.patch - 0015-fixups-time.h-is-assumed-in-many-places.patch) + 0014-Remove-some-legacy-mingw.org-header-defines.patch) md5sums=('SKIP' + 'b6a010849631177493135b3ad7c5f784' '13f5a8bf897b253e0d9626a5ae79bc8d' 'c53c41b440eb42e7a2cda9109a1651c4' + '7935a0abb05472342473e9aafa3c426f' '8cd35991a69b14a1c3ab3b6faa9f15bc' - 'b6a010849631177493135b3ad7c5f784' '3ab07dce68513b6d37321f36141a8340' '4c286b5d83b67e6c0ca15c16b9376fc4' '0b3303af4b3d68cf5317f025975adb32' - '7720533f97d4d8aeeecfd6b4f9b1f5b5' - '7935a0abb05472342473e9aafa3c426f') + '0301207ee4fa1ce5dc510d6ee402adaa') pkgver() { cd $_realname @@ -145,23 +145,21 @@ pkgver() { prepare() { cd "${srcdir}"/${_realname} - git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch - git am "${srcdir}"/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - git am "${srcdir}"/0015-fixups-time.h-is-assumed-in-many-places.patch - git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch - if [ "${_variant}" != "winrt" ]; then - - git am "${srcdir}"/0007-Use-libdir-for-plugins-on-msys2.patch - - + git am "${srcdir}"/0001-Use-libdir-for-plugins-on-msys2.patch fi - git am "${srcdir}"/0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch - git am "${srcdir}"/0013-remove-AllocConsole-reference-for-WINSTORE.patch + git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch + git am "${srcdir}"/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch + git am "${srcdir}"/0004-fixups-time.h-is-assumed-in-many-places.patch + git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch +if [ "${_variant}" == "winrt" ]; then + git am "${srcdir}"/0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch git am "${srcdir}"/0012-Only-build-correct-modules-for-WINSTORE.patch - git am "${srcdir}"/0014-dx11-vout-add-WINSTORE-support.patch + git am "${srcdir}"/0013-remove-AllocConsole-reference-for-WINSTORE.patch + git am "${srcdir}"/0014-Remove-some-legacy-mingw.org-header-defines.patch +fi ./bootstrap From 5d2dda2973493850ed42ce4403413ec8e85476cb Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Thu, 28 May 2015 18:51:32 +0100 Subject: [PATCH 1076/2060] clang: add mingw arm and cygwin arm targets --- mingw-w64-clang/PKGBUILD | 3 + .../mingw-arm-and-cygwin-arm-target.patch | 107 ++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 mingw-w64-clang/mingw-arm-and-cygwin-arm-target.patch diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index b4ec69592f..713ac8316a 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -27,6 +27,7 @@ source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz{,.sig} http://llvm.org/releases/$pkgver/clang-tools-extra-$pkgver.src.tar.xz{,.sig} http://llvm.org/releases/$pkgver/lldb-$pkgver.src.tar.xz{,.sig} clang-mingw-driver.patch + mingw-arm-and-cygwin-arm-target.patch llvm-3.5.0-fix-cmake-llvm-exports.patch) sha256sums=('2f00c615913aa0b56607ee1548936e60ad2aa89e6d56f23fb032a4463366fc7a' 'SKIP' @@ -43,6 +44,7 @@ sha256sums=('2f00c615913aa0b56607ee1548936e60ad2aa89e6d56f23fb032a4463366fc7a' 'cefb5c64e78e85ad05a06b80f017ccfe1208b74d3da34eb425c505c6fef9aaba' 'SKIP' '7c9366df58b27378c104d37466caa761873440e5fbee707d3d22693add5d2cdb' + '5727fb67902b9cb3ef4e1c57bf16128076911b8bf58357f65e5c5201a6b59629' '841a153d0e9d2d196ea5318388ff295e69c41547eb73b24edf92a1b2cc3cccdd') validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') @@ -60,6 +62,7 @@ prepare() { cd "${srcdir}/cfe-${pkgver}.src" patch -p1 -i ${srcdir}/clang-mingw-driver.patch + patch -p1 -i ${srcdir}/mingw-arm-and-cygwin-arm-target.patch mv "${srcdir}/llvm-${pkgver}.src" "$srcdir/llvm-${pkgver}" cd "${srcdir}/llvm-${pkgver}" diff --git a/mingw-w64-clang/mingw-arm-and-cygwin-arm-target.patch b/mingw-w64-clang/mingw-arm-and-cygwin-arm-target.patch new file mode 100644 index 0000000000..9d52ad789e --- /dev/null +++ b/mingw-w64-clang/mingw-arm-and-cygwin-arm-target.patch @@ -0,0 +1,107 @@ +From 3c3008a9dea38318ff85e6cf39ef45fdb305c55b Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Fri, 20 Mar 2015 22:43:51 +0000 +Subject: mingw-arm and cygwin-arm target + +--- + lib/Basic/Targets.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 69 insertions(+), 4 deletions(-) + +diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp +index fb25886..80cc4b9 100644 +--- a/lib/Basic/Targets.cpp ++++ b/lib/Basic/Targets.cpp +@@ -4623,10 +4623,71 @@ public: + } + }; + ++// Windows ARM, MS (C++) ABI ++class MicrosoftARMTargetInfo : public WindowsARMTargetInfo { ++public: ++ MicrosoftARMTargetInfo(const llvm::Triple &Triple) ++ : WindowsARMTargetInfo(Triple) { ++ TheCXXABI.set(TargetCXXABI::Microsoft); ++ } ++ ++ void getTargetDefines(const LangOptions &Opts, ++ MacroBuilder &Builder) const override { ++ WindowsARMTargetInfo::getTargetDefines(Opts, Builder); ++ WindowsARMTargetInfo::getVisualStudioDefines(Opts, Builder); ++ } ++}; ++} // end anonymous namespace. ++ ++namespace { ++// ARM MinGW target ++class MinGWARMTargetInfo : public WindowsARMTargetInfo { ++public: ++ MinGWARMTargetInfo(const llvm::Triple &Triple) ++ : WindowsARMTargetInfo(Triple) { ++ TheCXXABI.set(TargetCXXABI::GenericARM); ++ } ++ ++ void getTargetDefines(const LangOptions &Opts, ++ MacroBuilder &Builder) const override { ++ WindowsARMTargetInfo::getTargetDefines(Opts, Builder); ++ DefineStd(Builder, "WIN32", Opts); ++ DefineStd(Builder, "WINNT", Opts); ++ Builder.defineMacro("_ARM_"); ++ addMinGWDefines(Opts, Builder); ++ } ++}; ++} // end anonymous namespace ++ ++namespace { ++// ARM Cygwin target ++class CygwinARMTargetInfo : public ARMleTargetInfo { ++public: ++ CygwinARMTargetInfo(const llvm::Triple &Triple) ++ : ARMleTargetInfo(Triple) { ++ TLSSupported = false; ++ WCharType = UnsignedShort; ++ DoubleAlign = LongLongAlign = 64; ++ DescriptionString = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"; ++ } ++ void getTargetDefines(const LangOptions &Opts, ++ MacroBuilder &Builder) const override { ++ ARMleTargetInfo::getTargetDefines(Opts, Builder); ++ Builder.defineMacro("_ARM_"); ++ Builder.defineMacro("__CYGWIN__"); ++ Builder.defineMacro("__CYGWIN32__"); ++ DefineStd(Builder, "unix", Opts); ++ if (Opts.CPlusPlus) ++ Builder.defineMacro("_GNU_SOURCE"); ++ } ++}; ++} // end anonymous namespace ++ ++namespace { + // Windows ARM + Itanium C++ ABI Target +-class ItaniumWindowsARMleTargetInfo : public WindowsARMTargetInfo { ++class ItaniumWindowsARMTargetInfo : public WindowsARMTargetInfo { + public: +- ItaniumWindowsARMleTargetInfo(const llvm::Triple &Triple) ++ ItaniumWindowsARMTargetInfo(const llvm::Triple &Triple) + : WindowsARMTargetInfo(Triple) { + TheCXXABI.set(TargetCXXABI::GenericARM); + } +@@ -6669,10 +6730,14 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { + switch (Triple.getEnvironment()) { + default: + return new ARMleTargetInfo(Triple); ++ case llvm::Triple::Cygnus: ++ return new CygwinARMTargetInfo(Triple); ++ case llvm::Triple::GNU: ++ return new MinGWARMTargetInfo(Triple); + case llvm::Triple::Itanium: +- return new ItaniumWindowsARMleTargetInfo(Triple); ++ return new ItaniumWindowsARMTargetInfo(Triple); + case llvm::Triple::MSVC: +- return new MicrosoftARMleTargetInfo(Triple); ++ return new MicrosoftARMTargetInfo(Triple); + } + default: + return new ARMleTargetInfo(Triple); +-- +2.3.5 + From 91548aa1aa33a91467dfc1dca023c2f5a03c020c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 31 May 2015 20:49:46 +0300 Subject: [PATCH 1077/2060] firebird-git: Update cmake patch --- mingw-w64-firebird-git/PKGBUILD | 82 ++++++++++++------------ mingw-w64-firebird-git/cmake-mingw.patch | 29 +-------- 2 files changed, 42 insertions(+), 69 deletions(-) diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD index c9758bdba5..6adebefc82 100644 --- a/mingw-w64-firebird-git/PKGBUILD +++ b/mingw-w64-firebird-git/PKGBUILD @@ -2,7 +2,7 @@ _realname='firebird' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=3.0.0.31844.65a81b1 +pkgver=3.0.0.31844.60ba348 pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features (mingw-w64)" url="http://www.firebirdsql.org/" @@ -14,7 +14,7 @@ replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=( "${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-icu" - "${MINGW_PACKAGE_PREFIX}-libtommath" # For Firebird 3.x + #"${MINGW_PACKAGE_PREFIX}-libtommath" # For Firebird 3.x "${MINGW_PACKAGE_PREFIX}-zlib" ) makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird presence of system btyacc @@ -33,7 +33,7 @@ source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git" sha256sums=('SKIP' '43c853d2a1c4c18ed3e3baca6a75f5e1bf83e7700c52cf44f191cee5ab96f0ed' '6b01a0a726f3755d6615c0d68cde8b1ad29524bcef6d1fc209278626ede62b4a' - '9cf9164fa747dbb14b7579cb3b4629f9480af7ddd3424172577eae8b34f38493') + '365aabdbcaa5e8d344022e252184ecebe91d70141258286a18986dea110a260d') pkgver() { cd "${_realname}" @@ -47,56 +47,56 @@ prepare() { git am ${srcdir}/firebird-msys.diff patch -p1 -i ${srcdir}/cmake-mingw.patch - cd .. + # cd .. - mv "${_realname}" "${CARCH}" - cd "${CARCH}" - NOCONFIGURE=1 ./autogen.sh + # mv "${_realname}" "build-${MINGW_CHOST}" + # cd "build-${MINGW_CHOST}" + # NOCONFIGURE=1 ./autogen.sh } build() { - # [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - # mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - # local _build_conf="Release" - # if check_option "debug" "y"; then - # _build_conf="Debug" - # fi - - # ${MINGW_PREFIX}/bin/cmake.exe \ - # -G"MSYS Makefiles" \ - # -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - # -DCMAKE_BUILD_TYPE=${_build_conf} \ - # ../${_realname} - - # make -j1 - - - local _debug_conf= + local _build_conf="Release" if check_option "debug" "y"; then - _debug_conf="--enable-debug" + _build_conf="Debug" fi - cd ${srcdir}/${CARCH} - CFLAGS+=" -D_POSIX_C_SOURCE" + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=${_build_conf} \ + ../${_realname} - ./configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ - --enable-static \ - --enable-shared \ - ${_debug_conf} \ - --disable-rpath \ - --with-fbdoc=${MINGW_PREFIX}/share/${_realname}/doc - - CC=${MINGW_PREFIX}/bin/gcc \ make -j1 + + + # local _debug_conf= + # if check_option "debug" "y"; then + # _debug_conf="--enable-debug" + # fi + + # cd ${srcdir}/build-${MINGW_CHOST} + # CFLAGS+=" -D_POSIX_C_SOURCE" + + # ./configure \ + # --prefix=${MINGW_PREFIX} \ + # --build=${MINGW_CHOST} \ + # --host=${MINGW_CHOST} \ + # --target=${MINGW_CHOST} \ + # --enable-static \ + # --enable-shared \ + # ${_debug_conf} \ + # --disable-rpath \ + # --with-fbdoc=${MINGW_PREFIX}/share/${_realname}/doc + + # CC=${MINGW_PREFIX}/bin/gcc \ + # make -j1 } package() { - cd ${srcdir}/${CARCH} + cd ${srcdir}/build-${MINGW_CHOST} local _dir=Release if check_option "debug" "y"; then @@ -105,5 +105,5 @@ package() { mkdir -p ${pkgdir} cp -rf gen/${_dir}/firebird ${pkgdir}${MINGW_PREFIX} - cp -rf ${srcdir}/${CARCH}/doc ${pkgdir}${MINGW_PREFIX}/ + cp -rf ${srcdir}/${_realname}/doc ${pkgdir}${MINGW_PREFIX}/ } diff --git a/mingw-w64-firebird-git/cmake-mingw.patch b/mingw-w64-firebird-git/cmake-mingw.patch index de2083cce9..2543668d15 100644 --- a/mingw-w64-firebird-git/cmake-mingw.patch +++ b/mingw-w64-firebird-git/cmake-mingw.patch @@ -48,22 +48,6 @@ message(STATUS "Extracting pre-built ICU") --- a/src/CMakeLists.txt.orig 2015-05-25 15:56:46.615200000 +0300 +++ b/src/CMakeLists.txt 2015-05-25 16:00:00.460800000 +0300 -@@ -105,6 +105,7 @@ - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/transmsgs.fr_FR2.sql - ) - set(databases_src -+ ${CMAKE_CURRENT_SOURCE_DIR}/dbs/metadata.sql - ${CMAKE_CURRENT_SOURCE_DIR}/dbs/security.sql - ${msgs_src} - ) -@@ -203,6 +206,7 @@ - DEPENDS - boot_isql - boot_gfix -+ metadata.fdb - ${msgs_src} - # - COMMAND ${CMAKE_COMMAND} -E remove msg.fdb @@ -852,7 +852,7 @@ endif() # if (NOT CMAKE_CROSSCOMPILING) @@ -72,15 +56,4 @@ +if (MSVC) add_custom_command( TARGET boot_isql - POST_BUILD -@@ -1004,8 +1004,8 @@ - TARGET copy_files - POST_BUILD - # lib -- COMMAND ${CMAKE_COMMAND} -E copy_if_different $/fbclient.lib ${output_dir}/lib/fbclient_ms.lib -- COMMAND ${CMAKE_COMMAND} -E copy_if_different $/ib_util.lib ${output_dir}/lib/ib_util_ms.lib -+ COMMAND ${CMAKE_COMMAND} -E copy_if_different $/libfbclient.dll.a ${output_dir}/lib/libfbclient.dll.a -+ COMMAND ${CMAKE_COMMAND} -E copy_if_different $/libib_util.dll.a ${output_dir}/lib/libib_util.dll.a - # installers - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/builds/install/arch-specific/win32/install_classic.bat ${output_dir}/install_classic.bat - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/builds/install/arch-specific/win32/install_super.bat ${output_dir}/install_super.bat + POST_BUILD \ No newline at end of file From d4674b373a7ca5f8be378a48baab76a593442d21 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Jun 2015 08:49:19 +0300 Subject: [PATCH 1078/2060] qt4: Update to 4.8.7 (WIP) --- mingw-w64-qt4/PKGBUILD | 132 ++++++++++++------ .../mingw-w64-i686-x86_64-intrinsics.patch | 13 -- ...le_generator_gen_pkgconfig_fix_mingw.patch | 15 +- .../qt-4.8.0-fix-mysql-driver-build.patch | 0 .../qt-4.8.0-use-fbclient-instead-gds32.patch | 2 +- ....8.5-fix-data-corruption-in-readData.patch | 38 ----- ...-4.8.6-use-force-with-shell-commands.patch | 0 ...ont-add-resource-files-to-qmake-libs.patch | 11 ++ mingw-w64-qt4/qt-4.8.7-mingw-configure.patch | 45 ++++++ mingw-w64-qt4/qt-4.8.7-mingw-unix-tests.patch | 49 +++++++ mingw-w64-qt4/qt4-build-debug-qmake.patch | 11 ++ .../qt4-fix-linking-against-static-dbus.patch | 14 ++ ...erge-static-and-shared-library-trees.patch | 51 +++++++ ...-use-correct-pkg-config-static-flags.patch | 14 ++ 14 files changed, 299 insertions(+), 96 deletions(-) mode change 100755 => 100644 mingw-w64-qt4/PKGBUILD delete mode 100644 mingw-w64-qt4/mingw-w64-i686-x86_64-intrinsics.patch mode change 100755 => 100644 mingw-w64-qt4/qt-4.8.0-fix-mysql-driver-build.patch delete mode 100644 mingw-w64-qt4/qt-4.8.5-fix-data-corruption-in-readData.patch mode change 100755 => 100644 mingw-w64-qt4/qt-4.8.6-use-force-with-shell-commands.patch create mode 100644 mingw-w64-qt4/qt-4.8.7-dont-add-resource-files-to-qmake-libs.patch create mode 100644 mingw-w64-qt4/qt-4.8.7-mingw-configure.patch create mode 100644 mingw-w64-qt4/qt-4.8.7-mingw-unix-tests.patch create mode 100644 mingw-w64-qt4/qt4-build-debug-qmake.patch create mode 100644 mingw-w64-qt4/qt4-fix-linking-against-static-dbus.patch create mode 100644 mingw-w64-qt4/qt4-merge-static-and-shared-library-trees.patch create mode 100644 mingw-w64-qt4/qt4-use-correct-pkg-config-static-flags.patch diff --git a/mingw-w64-qt4/PKGBUILD b/mingw-w64-qt4/PKGBUILD old mode 100755 new mode 100644 index b486ac98f3..4298c7a35e --- a/mingw-w64-qt4/PKGBUILD +++ b/mingw-w64-qt4/PKGBUILD @@ -2,8 +2,8 @@ _realname=qt4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.8.6 -pkgrel=3 +pkgver=4.8.7 +pkgrel=1 arch=('any') url='http://qt-project.org/' install=qt4-${CARCH}.install @@ -11,15 +11,16 @@ license=('GPL3' 'LGPL' 'FDL' 'custom') conflicts=("${MINGW_PACKAGE_PREFIX}-qt5") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-dbus" + "${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-libjpeg" "${MINGW_PACKAGE_PREFIX}-libmng" "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-libwebp" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-libxslt" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-pcre" "${MINGW_PACKAGE_PREFIX}-qtbinpatcher" @@ -28,21 +29,23 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("bison" "flex" "gperf" + "lndir" "m4" "perl" "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-firebird" "${MINGW_PACKAGE_PREFIX}-libmariadbclient" - "${MINGW_PACKAGE_PREFIX}-libfbclient" - "${MINGW_PACKAGE_PREFIX}-make" + #"${MINGW_PACKAGE_PREFIX}-make" "${MINGW_PACKAGE_PREFIX}-postgresql" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-ruby" + "${MINGW_PACKAGE_PREFIX}-sqlite3" #"${MINGW_PACKAGE_PREFIX}-perl" #"${MINGW_PACKAGE_PREFIX}-gperf" ) groups=("${MINGW_PACKAGE_PREFIX}-qt4") -options=('!strip' 'staticlibs') +options=('!strip' 'staticlibs' 'debug') _pkgfqn="qt-everywhere-opensource-src-${pkgver}" source=("http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${pkgver}/${_pkgfqn}.tar.gz" qt-4.6-demo-plugandpaint.patch @@ -57,29 +60,40 @@ source=("http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${pkgv qt-4.8.3-qmake-cmd-mkdir-slash-direction.patch qt-4.8.5-dont-set-qt-dll-define-for-static-builds.patch qt-4.8.x-win32-g++-mkspec-optimization.patch - qt-merge-static-and-shared-library-trees.patch + qt4-merge-static-and-shared-library-trees.patch + qt4-use-correct-pkg-config-static-flags.patch + qt4-fix-linking-against-static-dbus.patch qt-4.8.6-use-force-with-shell-commands.patch - qt-4-8-makefile_generator_gen_pkgconfig_fix_mingw.patch) -md5sums=('2edbe4d6c2eff33ef91732602f3518eb' + qt-4-8-makefile_generator_gen_pkgconfig_fix_mingw.patch + qt-4.8.7-dont-add-resource-files-to-qmake-libs.patch + qt4-build-debug-qmake.patch + qt-4.8.7-mingw-configure.patch + qt-4.8.7-mingw-unix-tests.patch) +md5sums=('d990ee66bf7ab0c785589776f35ba6ad' '3795e9f26a38045b69bb411f307905ac' '63dc5a13265ed82b2ba3abd0aa7a59f7' '3fe6e419c1f21c59062db1f562c1f9bf' '30800db1953d8d47963620462fb38be9' '91d01b6d31887f78c7933c04544c5758' - 'f74b6c4e87cfc0961c351c9578bcf0e6' + '1c4ab3c6e503c9bd5bfd220313b49317' 'ea506301c29218c94ff78c92ce5498b3' 'b3499c08acecc386de972f02d11378da' '713796980a83ecbc3317f5e20255747b' 'a6761724e2f471aba142c24333d6419a' 'd13a1f5befd2f6326d3b4587d53dd47b' 'f515f8ee7dd03ad1b8bd335b3b93e0c6' - '840db5a7630dc40d82ed3891f372b4dc' + 'f627d9e2628f267dff3e1472ccc93efc' + 'd079529640f644d441bf953908efb324' + '33958b73e555aa50387bee9edd2deb83' 'a6fb8d1869e43e13c177c9fca7c579a6' - '7a9096c06a025c065a75c747752485f9') + '68657fc5b131e2c5e3532b61e2c3da42' + '562ababd98ecca9e3a6cbc9b70e8f7f9' + '49c33922e8f3c506cb7cc15cbe9b4a0a' + '49c91349a8fd94124c6c173eb1994a44' + 'fc3b3f45db0eda55d429310faf529ae9') prepare() { - cd ${_pkgfqn} - + cd ${srcdir}/${_pkgfqn} patch -p1 -i ${srcdir}/qt-4.6-demo-plugandpaint.patch patch -p1 -i ${srcdir}/qt-4.8.0-fix-include-windows-h.patch patch -p1 -i ${srcdir}/qt-4.8.0-fix-javascript-jit-on-mingw-x86_64.patch @@ -91,27 +105,41 @@ prepare() { patch -p1 -i ${srcdir}/qt-4.8.3-assistant-4.8.2+gcc-4.7.patch patch -p1 -i ${srcdir}/qt-4.8.3-qmake-cmd-mkdir-slash-direction.patch patch -p1 -i ${srcdir}/qt-4.8.5-dont-set-qt-dll-define-for-static-builds.patch - patch -p1 -i ${srcdir}/qt-4.8.x-win32-g++-mkspec-optimization.patch - #patch -p1 -i ${srcdir}/qt-merge-static-and-shared-library-trees.patch + #patch -p1 -i ${srcdir}/qt-4.8.x-win32-g++-mkspec-optimization.patch + patch -p1 -i ${srcdir}/qt4-merge-static-and-shared-library-trees.patch + patch -p1 -i ${srcdir}/qt4-use-correct-pkg-config-static-flags.patch + patch -p1 -i ${srcdir}/qt4-fix-linking-against-static-dbus.patch patch -p1 -i ${srcdir}/qt-4.8.6-use-force-with-shell-commands.patch - patch -p0 -i ${srcdir}/qt-4-8-makefile_generator_gen_pkgconfig_fix_mingw.patch + patch -p1 -i ${srcdir}/qt-4-8-makefile_generator_gen_pkgconfig_fix_mingw.patch + patch -p1 -i ${srcdir}/qt-4.8.7-dont-add-resource-files-to-qmake-libs.patch + patch -p1 -i ${srcdir}/qt-4.8.7-mingw-configure.patch + patch -p1 -i ${srcdir}/qt-4.8.7-mingw-unix-tests.patch + + if check_option "debug" "y"; then + patch -p1 -i ${srcdir}/qt4-build-debug-qmake.patch + fi + cd ${srcdir} + mkdir ${CARCH} + lndir ${srcdir}/${_pkgfqn} ${srcdir}/${CARCH} + cd ${CARCH} + local _optim= case ${MINGW_CHOST} in i686*) - _optim="-march=i686 -mtune=core2" + _optim+=" -march=i686 -mtune=core2" ;; x86_64*) - _optim="-march=nocona -mtune=core2" + _optim+=" -march=nocona -mtune=core2" ;; esac local STATIC_LD= - sed -e "s|%OPTIMIZE_OPT%|${_optim}|g" -i mkspecs/win32-g++/qmake.conf - sed -e "s|%STATICFLAGS%|${STATIC_LD}|g" -i mkspecs/win32-g++/qmake.conf - - cd ${srcdir} - mv ${_pkgfqn} ${CARCH} + #sed -e "s|%OPTIMIZE_OPT%|${_optim}|g" -i mkspecs/win32-g++/qmake.conf + #sed -e "s|%STATICFLAGS%|${STATIC_LD}|g" -i mkspecs/win32-g++/qmake.conf + + sed -i "s|^QMAKE_CFLAGS =\(.*\)$|QMAKE_CFLAGS = \1 ${_optim} |g" mkspecs/win32-g++/qmake.conf + sed -i "s|^QMAKE_LFLAGS =\(.*\)$|QMAKE_LFLAGS = \1 ${STATIC_LD}|g" mkspecs/win32-g++/qmake.conf } build() { @@ -119,25 +147,24 @@ build() { touch .gitignore mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - local QTDIR_WIN=$(pwd -W) - popd > /dev/null + local QTDIR_WIN=$(cygpath -wm ${pkgdir}${MINGW_PREFIX}) - INCLUDE="${MINGW_PREFIX}/${MINGW_CHOST}/include:${MINGW_PREFIX}/include:${MINGW_PREFIX}/include/mariadb" + #INCLUDE="${MINGW_PREFIX}/${MINGW_CHOST}/include:${MINGW_PREFIX}/include:${MINGW_PREFIX}/include/mariadb" local pkg_conf_inc=$(pkg-config --cflags-only-I libxml-2.0 dbus-1) - pkg_conf_inc=${pkg_conf_inc//-I/ } - for _inc in ${pkg_conf_inc}; do - INCLUDE="${INCLUDE}:${_inc}" - done + #CPPFLAGS+=" ${pkg_conf_inc}" + #pkg_conf_inc=${pkg_conf_inc//-I/ } + #for _inc in ${pkg_conf_inc}; do + # INCLUDE="${INCLUDE}:${_inc}" + #done - export INCLUDE - export CPATH="${INCLUDE}" - export LIB="${MINGW_PREFIX}/${MINGW_CHOST}/lib:${MINGW_PREFIX}/lib" - export LIBRARY_PATH="${MINGW_PREFIX}/${MINGW_CHOST}/lib:${MINGW_PREFIX}/lib" + #export INCLUDE + #export CPATH="${INCLUDE}" + #export LIB="${MINGW_PREFIX}/${MINGW_CHOST}/lib:${MINGW_PREFIX}/lib" + #export LIBRARY_PATH="${MINGW_PREFIX}/${MINGW_CHOST}/lib:${MINGW_PREFIX}/lib" export PATH=${srcdir}/${CARCH}/bin:${srcdir}/${CARCH}/lib:${PATH} - ./configure.exe \ - -prefix ${QTDIR_WIN} \ + ./configure \ + -prefix ${pkgdir}${MINGW_PREFIX} \ -opensource \ -confirm-license \ -debug-and-release \ @@ -145,20 +172,41 @@ build() { -plugin-sql-ibase \ -plugin-sql-mysql \ -plugin-sql-psql \ + -plugin-sql-sqlite \ -plugin-sql-odbc \ -fontconfig \ -openssl \ -dbus \ -shared \ -iconv \ + -qt3support \ + -optimized-qmake \ + -exceptions \ + -fast \ + -force-pkg-config \ + -little-endian \ + -xmlpatterns \ + -multimedia \ + -audio-backend \ + -no-phonon \ + -javascript-jit \ + -qt-libmng \ + -system-zlib \ + -system-libtiff \ + -system-libpng \ + -system-libjpeg \ + -system-sqlite \ -nomake tests \ -nomake demos \ - -nomake examples + -nomake examples \ + -verbose -verbose \ + -I ${MINGW_PREFIX}/include/mariadb \ + ${pkg_conf_inc} # Fix building - cp -rf mkspecs ${QTDIR_WIN}/ + cp -rf mkspecs ${pkgdir}${MINGW_PREFIX}/ - ${MINGW_PREFIX}/bin/mingw32-make ${MAKEFLAGS} + make V=1 } diff --git a/mingw-w64-qt4/mingw-w64-i686-x86_64-intrinsics.patch b/mingw-w64-qt4/mingw-w64-i686-x86_64-intrinsics.patch deleted file mode 100644 index 884c421b17..0000000000 --- a/mingw-w64-qt4/mingw-w64-i686-x86_64-intrinsics.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp -index 540b615..1ce1e00 100644 ---- a/src/corelib/tools/qsimd.cpp -+++ b/src/corelib/tools/qsimd.cpp -@@ -47,7 +47,7 @@ - #include - #endif - --#if defined(Q_OS_WIN64) && !defined(Q_CC_GNU) -+#if defined(Q_OS_WIN64) || defined(Q_OS_WIN32) - #include - #endif - diff --git a/mingw-w64-qt4/qt-4-8-makefile_generator_gen_pkgconfig_fix_mingw.patch b/mingw-w64-qt4/qt-4-8-makefile_generator_gen_pkgconfig_fix_mingw.patch index 52590a6a7b..fa3f1d9bdc 100644 --- a/mingw-w64-qt4/qt-4-8-makefile_generator_gen_pkgconfig_fix_mingw.patch +++ b/mingw-w64-qt4/qt-4-8-makefile_generator_gen_pkgconfig_fix_mingw.patch @@ -1,5 +1,5 @@ ---- qmake/generators/makefile.cpp.orig 2014-07-28 00:26:53.515911500 +0300 -+++ qmake/generators/makefile.cpp 2014-07-28 00:29:44.271678100 +0300 +--- a/qmake/generators/makefile.cpp.orig 2014-07-28 00:26:53.515911500 +0300 ++++ b/qmake/generators/makefile.cpp 2014-07-28 00:29:44.271678100 +0300 @@ -3151,7 +3151,7 @@ ret.prepend(project->first("DESTDIR")); ret = Option::fixPathToLocalOS(fileFixify(ret, qmake_getpwd(), Option::output_dir)); @@ -9,3 +9,14 @@ } QString +--- a/src/qbase.pri 2015-05-28 16:20:44.113119800 +0300 ++++ b/src/qbase.pri 2015-05-28 16:21:39.712559300 +0300 +@@ -21,7 +21,7 @@ + #sure the same version is used + VERSIONS_LIST = $$split(VERSION, ".") + QT_LIBS_OVERRIDE = $$member(VERSIONS_LIST, 0) +- for(lib, $$list(qtcore qtgui qtnetwork qtxml qtopengl qtsql qt3support)) { ++ for(lib, $$list(qtcore qtdbus qtgui qtnetwork qtxml qtopengl qtsql qtwebkit qt3support)) { + eval(QMAKE_$${upper($$lib)}_VERSION_OVERRIDE = $$QT_LIBS_OVERRIDE) + eval(QMAKE_$${upper($$lib)}D_VERSION_OVERRIDE = $$QT_LIBS_OVERRIDE) + } diff --git a/mingw-w64-qt4/qt-4.8.0-fix-mysql-driver-build.patch b/mingw-w64-qt4/qt-4.8.0-fix-mysql-driver-build.patch old mode 100755 new mode 100644 diff --git a/mingw-w64-qt4/qt-4.8.0-use-fbclient-instead-gds32.patch b/mingw-w64-qt4/qt-4.8.0-use-fbclient-instead-gds32.patch index 324a71d7eb..3ac47c4b9c 100644 --- a/mingw-w64-qt4/qt-4.8.0-use-fbclient-instead-gds32.patch +++ b/mingw-w64-qt4/qt-4.8.0-use-fbclient-instead-gds32.patch @@ -5,6 +5,6 @@ !contains(LIBS, .*gds.*):!contains(LIBS, .*fbclient.*) { win32-borland:LIBS += gds32.lib - else:LIBS += -lgds32_ms -+ else:LIBS += -lfbclient_ms ++ else:LIBS += -lfbclient } } diff --git a/mingw-w64-qt4/qt-4.8.5-fix-data-corruption-in-readData.patch b/mingw-w64-qt4/qt-4.8.5-fix-data-corruption-in-readData.patch deleted file mode 100644 index a933254e5e..0000000000 --- a/mingw-w64-qt4/qt-4.8.5-fix-data-corruption-in-readData.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 1f40ed553e618c3b0511c7db4b4fd26c2d2b65bf Mon Sep 17 00:00:00 2001 -From: Peter Hartmann -Date: Thu, 25 Jul 2013 12:05:29 -0400 -Subject: [PATCH] QHttpMultiPart: fix data corruption in readData method - -When readData() is called repeatedly, we need to keep track which -part of the multipart message we are currently reading from. -Hereby we also need to take the boundary size into account, and not -only the size of the multipart; otherwise we would skip a not -completely read part. This would then later lead to advancing the -read pointer by negative indexes and data loss. - -Task-number: QTBUG-32534 -Change-Id: Ibb6dff16adaf4ea67181d23d1d0c8459e33a0ed0 -Reviewed-by: Jonathan Liu -Reviewed-by: Shane Kearns -(cherry picked from qtbase/af96c6fed931564c95037539f07e9c8e33c69529) -Reviewed-by: Thiago Macieira ---- - src/network/access/qhttpmultipart.cpp | 3 +- - 1 files changed, 3 insertions(+), 1 deletions(-) - -diff --git a/src/network/access/qhttpmultipart.cpp b/src/network/access/qhttpmultipart.cpp -index 635129a..b25e917 100644 ---- a/src/network/access/qhttpmultipart.cpp -+++ b/src/network/access/qhttpmultipart.cpp -@@ -488,7 +488,8 @@ qint64 QHttpMultiPartIODevice::readData(char *data, qint64 maxSize) - - // skip the parts we have already read - while (index < multiPart->parts.count() && -- readPointer >= partOffsets.at(index) + multiPart->parts.at(index).d->size()) -+ readPointer >= partOffsets.at(index) + multiPart->parts.at(index).d->size() -+ + multiPart->boundary.count() + 6) // 6 == 2 boundary dashes, \r\n after boundary, \r\n after multipart - index++; - - // read the data --- -1.7.1 diff --git a/mingw-w64-qt4/qt-4.8.6-use-force-with-shell-commands.patch b/mingw-w64-qt4/qt-4.8.6-use-force-with-shell-commands.patch old mode 100755 new mode 100644 diff --git a/mingw-w64-qt4/qt-4.8.7-dont-add-resource-files-to-qmake-libs.patch b/mingw-w64-qt4/qt-4.8.7-dont-add-resource-files-to-qmake-libs.patch new file mode 100644 index 0000000000..42806a14dd --- /dev/null +++ b/mingw-w64-qt4/qt-4.8.7-dont-add-resource-files-to-qmake-libs.patch @@ -0,0 +1,11 @@ +--- a/qmake/generators/win32/mingw_make.cpp 2014-10-19 12:16:07.387600000 +0400 ++++ b/qmake/generators/win32/mingw_make.cpp 2014-10-19 12:16:07.387600000 +0400 +@@ -280,7 +280,7 @@ + processVars(); + + if (!project->values("RES_FILE").isEmpty()) { +- project->values("QMAKE_LIBS") += escapeFilePaths(project->values("RES_FILE")); ++ project->values("OBJECTS") += escapeFilePaths(project->values("RES_FILE")); + } + + // LIBS defined in Profile comes first for gcc diff --git a/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch new file mode 100644 index 0000000000..a283c3280f --- /dev/null +++ b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch @@ -0,0 +1,45 @@ +--- a/configure 2015-05-27 14:41:26.622651400 +0300 ++++ b/configure 2015-05-27 14:44:05.788194400 +0300 +@@ -48,9 +48,9 @@ + relconf=`basename $0` + # the directory of this script is the "source tree" + relpath=`dirname $0` +-relpath=`(cd "$relpath"; /bin/pwd)` ++relpath=`cygpath -ma "$relpath"` + # the current directory is the "build tree" or "object tree" +-outpath=`/bin/pwd` ++outpath=$(cygpath -ma $(/bin/pwd)) + + #license file location + LICENSE_FILE="$QT_LICENSE_FILE" +@@ -1376,7 +1378,7 @@ + CFG_PSQL_CONFIG="$VAL" + ;; + prefix) +- QT_INSTALL_PREFIX="$VAL" ++ QT_INSTALL_PREFIX=$(cygpath -ma "$VAL") + ;; + hostprefix) + QT_HOST_PREFIX="$VAL" +@@ -3754,6 +3756,8 @@ + if [ -z "$QT_INSTALL_SETTINGS" ]; then #default + if [ "$PLATFORM_MAC" = "yes" ]; then + QT_INSTALL_SETTINGS=/Library/Preferences/Qt ++ elif [ "$XPLATFORM_MINGW" = "yes" ]; then ++ QT_INSTALL_SETTINGS="$QT_INSTALL_PREFIX/etc" + else + QT_INSTALL_SETTINGS=/etc/xdg + fi +@@ -4953,7 +4953,11 @@ + # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then + # (cd qmake && qmake) >/dev/null 2>&1 && continue + # fi +- in_mkfile="${mkfile}.unix" ++ if [ "$PLATFORM" = "win32-g++" ]; then ++ in_mkfile="${mkfile}.win32-g++-sh" ++ else ++ in_mkfile="${mkfile}.unix" ++ fi + fi + in_mkfile="$relpath/qmake/$in_mkfile" + mkfile="$outpath/qmake/$mkfile" diff --git a/mingw-w64-qt4/qt-4.8.7-mingw-unix-tests.patch b/mingw-w64-qt4/qt-4.8.7-mingw-unix-tests.patch new file mode 100644 index 0000000000..f1a9b01e40 --- /dev/null +++ b/mingw-w64-qt4/qt-4.8.7-mingw-unix-tests.patch @@ -0,0 +1,49 @@ +--- a/config.tests/unix/ibase/ibase.pro 2015-05-27 14:49:31.512616600 +0300 ++++ b/config.tests/unix/ibase/ibase.pro 2015-05-27 14:49:38.480009800 +0300 +@@ -1,4 +1,4 @@ + SOURCES = ibase.cpp + CONFIG -= qt dylib + mac:CONFIG -= app_bundle +-LIBS += -lgds ++LIBS += -lfbclient +--- a/config.tests/unix/endian.test 2015-05-27 15:39:33.702970300 +0300 ++++ b/config.tests/unix/endian.test 2015-05-27 15:44:28.057531900 +0300 +@@ -11,7 +11,7 @@ + + # build and run a test program + test -d "$OUTDIR/config.tests/unix/endian" || mkdir -p "$OUTDIR/config.tests/unix/endian" +-"$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "QMAKE_CXXFLAGS*=$SYSROOT" "LIBS*=$SYSROOT" "QT_BUILD_TREE=$OUTDIR" "$SRCDIR/config.tests/unix/endian/endiantest.pro" -o "$OUTDIR/config.tests/unix/endian/Makefile" >/dev/null 2>&1 ++"$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "CONFIG+=" "CONFIG-=debug_and_release" "QMAKE_CXXFLAGS*=$SYSROOT" "LIBS*=$SYSROOT" "QT_BUILD_TREE=$OUTDIR" "$SRCDIR/config.tests/unix/endian/endiantest.pro" -o "$OUTDIR/config.tests/unix/endian/Makefile" >/dev/null 2>&1 + cd "$OUTDIR/config.tests/unix/endian" + + +--- a/config.tests/unix/makeabs 2015-05-28 10:41:35.515153200 +0300 ++++ b/config.tests/unix/makeabs 2015-05-28 10:55:00.222674400 +0300 +@@ -4,6 +4,7 @@ + RES="$FILE" + + CUT_ARG="-b1" ++CUT_ARG2="-b2" + if [ `uname -s` = "QNX" ]; then + # QNX does not understand "-b1" + CUT_ARG="-c1" +@@ -11,6 +12,8 @@ + + if [ `echo $FILE | cut $CUT_ARG` = "/" ]; then + true ++elif [ `echo $FILE | cut $CUT_ARG2` = ":" ]; then ++ true + else + RES="$PWD/$FILE" + test -d "$RES" && RES="$RES/" +@@ -21,5 +24,10 @@ + + RES=`echo "$RES" | sed "s,//,/,g" | sed "s,/$,,"` + fi ++ ++if [[ -n "$MSYSTEM" ]]; then ++ RES=$(cygpath -wm $RES) ++fi ++ + echo $RES #return + diff --git a/mingw-w64-qt4/qt4-build-debug-qmake.patch b/mingw-w64-qt4/qt4-build-debug-qmake.patch new file mode 100644 index 0000000000..7a44e3099a --- /dev/null +++ b/mingw-w64-qt4/qt4-build-debug-qmake.patch @@ -0,0 +1,11 @@ +--- a/qmake/Makefile.win32-g++-sh 2015-03-21 18:07:24.056403965 +0100 ++++ b/qmake/Makefile.win32-g++-sh 2015-03-21 18:09:40.642912613 +0100 +@@ -12,7 +12,7 @@ + # specific stuff for mingw g++ make + # + CXX = g++ +-CFLAGS = -c -o$@ -O \ ++CFLAGS = -c -o$@ -O0 -ggdb \ + -I. -Igenerators -Igenerators/unix \ + -Igenerators/win32 -Igenerators/mac \ + -Igenerators/symbian -Igenerators/integrity \ diff --git a/mingw-w64-qt4/qt4-fix-linking-against-static-dbus.patch b/mingw-w64-qt4/qt4-fix-linking-against-static-dbus.patch new file mode 100644 index 0000000000..53369042c7 --- /dev/null +++ b/mingw-w64-qt4/qt4-fix-linking-against-static-dbus.patch @@ -0,0 +1,14 @@ +--- a/src/dbus/qdbus_symbols_p.h 2014-08-02 12:32:15.112000000 +0200 ++++ b/src/dbus/qdbus_symbols_p.h 2014-08-02 12:33:33.286000000 +0200 +@@ -55,6 +55,11 @@ + #define QDBUS_SYMBOLS_P_H + + #include ++ ++#ifdef QT_STATIC ++#define DBUS_STATIC_BUILD ++#endif ++ + #include + + #ifndef QT_NO_DBUS diff --git a/mingw-w64-qt4/qt4-merge-static-and-shared-library-trees.patch b/mingw-w64-qt4/qt4-merge-static-and-shared-library-trees.patch new file mode 100644 index 0000000000..e8ffb9a19b --- /dev/null +++ b/mingw-w64-qt4/qt4-merge-static-and-shared-library-trees.patch @@ -0,0 +1,51 @@ +--- a/mkspecs/features/qt_functions.prf 2014-08-01 23:54:20.441986402 +0200 ++++ b/mkspecs/features/qt_functions.prf 2014-08-01 23:55:33.603172013 +0200 +@@ -83,6 +83,19 @@ + QMAKE_LFLAGS *= --lsb-shared-libs=$${LIB_NAME}$${QT_LIBINFIX} + } + LIBS += $$LINKAGE ++ ++ win32:CONFIG(static) { ++ isEqual(LIB_NAME, QtCore) { ++ LIBS += $$QMAKE_LIBS_CORE ++ } else:isEqual(LIB_NAME, QtGui) { ++ LIBS += $$QMAKE_LIBS_GUI ++ } else:isEqual(LIB_NAME, QtNetwork) { ++ LIBS += $$QMAKE_LIBS_NETWORK ++ } else:isEqual(LIB_NAME, QtOpenGL) { ++ LIBS += $$QMAKE_LIBS_OPENGL ++ } ++ } ++ + export(LIBS) + export(INCLUDEPATH) + export(QMAKE_FRAMEWORKPATH) +--- a/mkspecs/features/default_post.prf 2014-08-01 23:51:16.864011435 +0200 ++++ b/mkspecs/features/default_post.prf 2014-08-01 23:51:29.830221559 +0200 +@@ -96,6 +96,11 @@ + QMAKE_INCDIR += $$QMAKE_INCDIR_POST + QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST + ++win32:contains(CONFIG, static) { ++ DEFINES += QT_STATIC ++ QMAKE_LFLAGS += -static ++} ++ + # Let every project have a standard GNU `check' target + !contains(QMAKE_EXTRA_TARGETS, check) { + # `make check' should iterate through all subdirs +--- a/configure 2012-12-10 23:51:02.920255366 +0100 ++++ b/configure 2012-12-10 23:55:58.101753703 +0100 +@@ -6032,6 +6032,12 @@ + QT_EDITION = $Edition + QT_CONFIG += $QT_CONFIG + ++contains(CONFIG, static) { ++ CONFIG -= shared ++ QT_CONFIG += static jpeg gif ++ QT_CONFIG -= shared ++} ++ + #versioning + QT_VERSION = $QT_VERSION + QT_MAJOR_VERSION = $QT_MAJOR_VERSION diff --git a/mingw-w64-qt4/qt4-use-correct-pkg-config-static-flags.patch b/mingw-w64-qt4/qt4-use-correct-pkg-config-static-flags.patch new file mode 100644 index 0000000000..9e03964254 --- /dev/null +++ b/mingw-w64-qt4/qt4-use-correct-pkg-config-static-flags.patch @@ -0,0 +1,14 @@ +--- qt-everywhere-opensource-src-4.8.6/configure.orig 2015-03-21 18:07:24.056403965 +0100 ++++ qt-everywhere-opensource-src-4.8.6/configure 2015-03-21 18:09:40.642912613 +0100 +@@ -5098,6 +5098,11 @@ + echo "QT_BUILD_TREE = $outpath" > "$outpath/.qmake.cache.pkgconfig" + PKG_CONFIG=`"$outpath/bin/qmake" -cache "$outpath/.qmake.cache.pkgconfig" -spec "$XQMAKESPEC" "$outpath/dummy.pro" -o /dev/null 2>&1 > /dev/null | sed -n -e 's,Project MESSAGE: \(.*\),\1,p'` + rm "$outpath/.qmake.cache.pkgconfig" "$outpath/dummy.pro" ++ ++ if [ "$CFG_SHARED" = "no" ] ; then ++ PKG_CONFIG="$PKG_CONFIG --static" ++ [ "$OPT_VERBOSE" = "yes" ] && echo "Using '$PKG_CONFIG' because we're doing a static build" ++ fi + fi + if [ -z "$PKG_CONFIG" ]; then + PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null` From fed77828de4e8158e5ae937932e1dcb536ac06d9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Jun 2015 13:22:04 +0300 Subject: [PATCH 1079/2060] clang: Increase pkgrel. --- mingw-w64-clang/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 713ac8316a..30fa34173c 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -8,7 +8,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" #"${MINGW_PACKAGE_PREFIX}-compiler-rt" ) pkgver=3.6.1 -pkgrel=1 +pkgrel=2 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" From 6147c7f31ab48d356c1f32a1887df8f9626c949c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Jun 2015 13:24:45 +0300 Subject: [PATCH 1080/2060] rust: Fix dependencies. Fix conflicts with gcc libraries. --- mingw-w64-rust/PKGBUILD | 13 +++++++------ mingw-w64-rust/add-libffi-to-link.patch | 11 ----------- 2 files changed, 7 insertions(+), 17 deletions(-) delete mode 100644 mingw-w64-rust/add-libffi-to-link.patch diff --git a/mingw-w64-rust/PKGBUILD b/mingw-w64-rust/PKGBUILD index 720256444b..05f2706973 100644 --- a/mingw-w64-rust/PKGBUILD +++ b/mingw-w64-rust/PKGBUILD @@ -3,11 +3,12 @@ _realname=rust pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.0 -pkgrel=1 +pkgrel=2 pkgdesc="A safe, concurrent, practical language from Mozilla (mingw-w64)" arch=('any') url="http://www.rust-lang.org/" license=('custom:MIT' 'Apache') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("git" "bison" "flex" @@ -18,15 +19,12 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-python2") options=('!makeflags' 'staticlibs') #install=rust.install -source=(https://static.rust-lang.org/dist/${_realname}c-${pkgver}-src.tar.gz - add-libffi-to-link.patch) -md5sums=('3fd3f9010be8eb411a81157b92566027' - '9fa3227f99947d14c773ea0804736efa') +source=(https://static.rust-lang.org/dist/${_realname}c-${pkgver}-src.tar.gz) +md5sums=('3fd3f9010be8eb411a81157b92566027') prepare() { cd ${srcdir}/${_realname}c-$pkgver #sed -e "s|CFG_WINDOWSY_\$(1)|0|g" -i mk/rustllvm.mk - #patch -p1 -i ${srcdir}/add-libffi-to-link.patch } build() { @@ -51,4 +49,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR=${pkgdir} install + + rm -f ${pkgdir}${MINGW_PREFIX}/bin/libgcc*.dll + rm -f ${pkgdir}${MINGW_PREFIX}/bin/libstd*.dll } diff --git a/mingw-w64-rust/add-libffi-to-link.patch b/mingw-w64-rust/add-libffi-to-link.patch deleted file mode 100644 index 920ff771e8..0000000000 --- a/mingw-w64-rust/add-libffi-to-link.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rust-0.9/src/librustc/back/link.rs.orig 2014-01-19 21:12:14.717800000 +0400 -+++ rust-0.9/src/librustc/back/link.rs 2014-01-19 21:12:54.170200000 +0400 -@@ -1071,6 +1071,8 @@ - // DWARF stack unwinding will not work. - // This behavior may be overriden by --link-args "-static-libgcc" - args.push(~"-shared-libgcc"); -+ // LLVM builded with libffi -+ args.push(~"-lffi"); - } - - add_local_native_libraries(&mut args, sess); From 41b67e22ff3ef5d2731c17a9cae8635f7d431d58 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 1 Jun 2015 22:10:52 +0300 Subject: [PATCH 1081/2060] pkg-config: Fix dependencies. --- mingw-w64-pkg-config/PKGBUILD | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mingw-w64-pkg-config/PKGBUILD b/mingw-w64-pkg-config/PKGBUILD index 4d6d4878c0..8e9a5ade5c 100644 --- a/mingw-w64-pkg-config/PKGBUILD +++ b/mingw-w64-pkg-config/PKGBUILD @@ -3,12 +3,12 @@ _realname=pkg-config pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.28 -pkgrel=2 +pkgrel=3 pkgdesc="A system for managing library compile/link flags (mingw-w64)" arch=('any') url="http://pkgconfig.freedesktop.org/wiki/" license=('GPL') -depends=("${MINGW_PACKAGE_PREFIX}-glib2") +depends=("${MINGW_PACKAGE_PREFIX}-libwinpthread") conflicts=("${MINGW_PACKAGE_PREFIX}-pkgconf") replaces=("${MINGW_PACKAGE_PREFIX}-pkgconf") source=(http://pkgconfig.freedesktop.org/releases/${_realname}-${pkgver}.tar.gz @@ -62,7 +62,9 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --with-internal-glib \ - --disable-indirect-deps + --disable-indirect-deps \ + --with-default-prefix-for-default-paths=${MINGW_PREFIX} + make } From 5f64156c016b0ce9d1bede1c66735818a787226f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 2 Jun 2015 07:52:50 +0300 Subject: [PATCH 1082/2060] sfml: Build release version instead "git". Update to 2.3 --- mingw-w64-sfml-git/PKGBUILD | 68 ------------------- mingw-w64-sfml/PKGBUILD | 56 +++++++++++++++ .../mingw-w64-msys2.patch | 8 +-- 3 files changed, 60 insertions(+), 72 deletions(-) delete mode 100644 mingw-w64-sfml-git/PKGBUILD create mode 100644 mingw-w64-sfml/PKGBUILD rename {mingw-w64-sfml-git => mingw-w64-sfml}/mingw-w64-msys2.patch (95%) diff --git a/mingw-w64-sfml-git/PKGBUILD b/mingw-w64-sfml-git/PKGBUILD deleted file mode 100644 index c15b2e5c49..0000000000 --- a/mingw-w64-sfml-git/PKGBUILD +++ /dev/null @@ -1,68 +0,0 @@ -# Maintainer: Alexey Pavlov - -_realname=sfml - -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -_ver_base=2.1.0 -pkgver=2.1.0.1570.749cbb2 -pkgrel=1 -pkgdesc="A simple, fast, cross-platform, and object-oriented multimedia API (mingw-w64)" -arch=('any') -url="http://www.sfml-dev.org/" -license=("zlib") -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -depends=("${MINGW_PACKAGE_PREFIX}-libsndfile" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-openal" - "${MINGW_PACKAGE_PREFIX}-glew" - "${MINGW_PACKAGE_PREFIX}-freetype" - ) -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "git" "${MINGW_PACKAGE_PREFIX}-gcc") -source=("${_realname}"::"git+https://github.com/LaurentGomila/SFML.git" - mingw-w64-msys2.patch) -md5sums=('SKIP' - 'c247c5b6590ac65a88a87a3fa544b6aa') - -pkgver() { - cd "$srcdir/$_realname" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" -} - -prepare() { - cd ${srcdir}/$_realname - patch -p1 -i ${srcdir}/mingw-w64-msys2.patch -} - -build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - - [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} - mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - ${MINGW_PREFIX}/bin/cmake.exe \ - -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ - -DSFML_BUILD_EXAMPLES=1 \ - -DSFML_BUILD_DOC=1 \ - -DSFML_INSTALL_PKGCONFIG_FILES=ON \ - ../$_realname - - make - make doc -} - -package() { - cd build-${MINGW_CHOST} - - make install - - install -Dm644 "${pkgdir}${MINGW_PREFIX}/share/cmake/Modules/FindSFML.cmake" "${pkgdir}${MINGW_PREFIX}/share/cmake-2.8/Modules/FindSFML.cmake" - install -Dm644 ${srcdir}/${_realname}/license.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" -} diff --git a/mingw-w64-sfml/PKGBUILD b/mingw-w64-sfml/PKGBUILD new file mode 100644 index 0000000000..d2fa45fa90 --- /dev/null +++ b/mingw-w64-sfml/PKGBUILD @@ -0,0 +1,56 @@ +# Maintainer: Alexey Pavlov + +_realname=sfml +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.3 +pkgrel=1 +pkgdesc="A simple, fast, cross-platform, and object-oriented multimedia API (mingw-w64)" +arch=('any') +url="http://www.sfml-dev.org/" +license=("zlib") +replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +depends=("${MINGW_PACKAGE_PREFIX}-flac" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libvorbis" + "${MINGW_PACKAGE_PREFIX}-openal") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "doxygen" "unzip") +source=(http://www.sfml-dev.org/files/SFML-${pkgver}-sources.zip + mingw-w64-msys2.patch) +md5sums=('abc06b4cdef6531143ac0221cd1b184a' + 'a8fbc9c9acfc813381df9e0020b211d9') +noextract=(SFML-${pkgver}-sources.zip) + +prepare() { + unzip SFML-${pkgver}-sources.zip + cd ${srcdir}/SFML-${pkgver} + patch -p1 -i ${srcdir}/mingw-w64-msys2.patch +} + +build() { + [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} + mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DSFML_BUILD_EXAMPLES=1 \ + -DSFML_BUILD_DOC=1 \ + -DSFML_INSTALL_PKGCONFIG_FILES=ON \ + ../SFML-${pkgver} + + make + make doc +} + +package() { + cd build-${MINGW_CHOST} + make install + + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) + for file in ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/*.pc; do + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${file} + done + + install -Dm644 "${pkgdir}${MINGW_PREFIX}/share/SFML/cmake/Modules/FindSFML.cmake" "${pkgdir}${MINGW_PREFIX}/share/cmake-3.2/Modules/FindSFML.cmake" + install -Dm644 ${srcdir}/SFML-${pkgver}/license.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} diff --git a/mingw-w64-sfml-git/mingw-w64-msys2.patch b/mingw-w64-sfml/mingw-w64-msys2.patch similarity index 95% rename from mingw-w64-sfml-git/mingw-w64-msys2.patch rename to mingw-w64-sfml/mingw-w64-msys2.patch index 58a58af130..8c34ccfa36 100644 --- a/mingw-w64-sfml-git/mingw-w64-msys2.patch +++ b/mingw-w64-sfml/mingw-w64-msys2.patch @@ -43,13 +43,13 @@ --- sfml/src/SFML/Graphics/CMakeLists.txt.orig 2014-05-22 12:05:20.637400000 +0400 +++ sfml/src/SFML/Graphics/CMakeLists.txt 2014-05-22 12:27:28.124000000 +0400 @@ -92,7 +92,7 @@ - endif() + include_directories("${PROJECT_SOURCE_DIR}/extlibs/headers/stb_image") # let CMake know about our additional graphics libraries paths -if(SFML_OS_WINDOWS) +if(SFML_OS_WINDOWS AND NOT MINGW) - set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "${PROJECT_SOURCE_DIR}/extlibs/headers/libfreetype/windows") - set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "${PROJECT_SOURCE_DIR}/extlibs/headers/libfreetype/windows/freetype") + set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "${PROJECT_SOURCE_DIR}/extlibs/headers/jpeg") + set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "${PROJECT_SOURCE_DIR}/extlibs/headers/freetype2") elseif(SFML_OS_MACOSX) --- sfml/doc/CMakeLists.txt.orig 2014-05-22 12:05:19.717000000 +0400 +++ sfml/doc/CMakeLists.txt 2014-05-22 12:31:16.499200000 +0400 @@ -69,7 +69,7 @@ # define the install directory for miscellaneous files if(SFML_OS_WINDOWS OR SFML_OS_IOS) - set(INSTALL_MISC_DIR .) -+ set(INSTALL_MISC_DIR share) ++ set(INSTALL_MISC_DIR share/SFML) elseif(SFML_OS_LINUX OR SFML_OS_FREEBSD OR SFML_OS_MACOSX) set(INSTALL_MISC_DIR share/SFML) elseif(SFML_OS_ANDROID) From 854470b54d17dbdbf0930ef263b83395b2124511 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 2 Jun 2015 08:00:40 +0300 Subject: [PATCH 1083/2060] csfml: New package. --- mingw-w64-csfml/PKGBUILD | 43 +++++++++++++++++++++++++++ mingw-w64-csfml/mingw-w64-msys2.patch | 22 ++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 mingw-w64-csfml/PKGBUILD create mode 100644 mingw-w64-csfml/mingw-w64-msys2.patch diff --git a/mingw-w64-csfml/PKGBUILD b/mingw-w64-csfml/PKGBUILD new file mode 100644 index 0000000000..c7c384d568 --- /dev/null +++ b/mingw-w64-csfml/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Alexey Pavlov + +_realname=csfml +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.3 +pkgrel=1 +pkgdesc="A simple, fast, cross-platform, and object-oriented multimedia API for C (mingw-w64)" +arch=('any') +url="https://github.com/SFML/CSFML" +license=("zlib") +depends=("${MINGW_PACKAGE_PREFIX}-sfml") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "doxygen" "unzip") +source=("${_realname}-${pkgver}.tar.gz"::https://github.com/SFML/CSFML/archive/${pkgver}.tar.gz + mingw-w64-msys2.patch) +md5sums=('eb99a783e367e018333e622945d232d2' + '6710683fc6c36a30d366d811213b8f8c') + +prepare() { + cd ${srcdir}/CSFML-${pkgver} + patch -p1 -i ${srcdir}/mingw-w64-msys2.patch +} + +build() { + [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} + mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCSFML_LINK_SFML_STATICALLY=OFF \ + -DBUILD_SHARED_LIBS=ON \ + -DCSFML_BUILD_DOC=ON \ + ../CSFML-${pkgver} + + make + make doc +} + +package() { + cd build-${MINGW_CHOST} + make install + + install -Dm644 ${srcdir}/CSFML-${pkgver}/license.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} diff --git a/mingw-w64-csfml/mingw-w64-msys2.patch b/mingw-w64-csfml/mingw-w64-msys2.patch new file mode 100644 index 0000000000..519728b8f2 --- /dev/null +++ b/mingw-w64-csfml/mingw-w64-msys2.patch @@ -0,0 +1,22 @@ +--- csfml/cmake/Config.cmake.orig 2014-05-22 12:05:19.717000000 +0400 ++++ csfml/cmake/Config.cmake 2014-05-22 12:12:58.926200000 +0400 +@@ -109,7 +109,7 @@ + + # define the install directory for miscellaneous files + if(SFML_OS_WINDOWS) +- set(INSTALL_MISC_DIR .) ++ set(INSTALL_MISC_DIR share/CSFML) + elseif(SFML_OS_LINUX OR SFML_OS_FREEBSD OR SFML_OS_MACOSX) + set(INSTALL_MISC_DIR share/CSFML) + endif() +--- csfml/cmake/Macros.cmake.orig 2014-05-22 12:05:19.717000000 +0400 ++++ csfml/cmake/Macros.cmake 2014-05-22 12:14:36.733400000 +0400 +@@ -31,7 +31,7 @@ + # on Windows/gcc get rid of "lib" prefix for shared libraries, + # and transform the ".dll.a" suffix into ".a" for import libraries + set_target_properties(${target} PROPERTIES PREFIX "") +- set_target_properties(${target} PROPERTIES IMPORT_SUFFIX ".a") ++ set_target_properties(${target} PROPERTIES IMPORT_SUFFIX ".dll.a") + endif() + + # set the version and soversion of the target (for compatible systems -- mostly Linuxes) From f71a5c837bfcadeebe23099f32661d11e06abe6c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 2 Jun 2015 08:39:30 +0300 Subject: [PATCH 1084/2060] kiss_fft: New package. --- mingw-w64-kiss_fft/PKGBUILD | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mingw-w64-kiss_fft/PKGBUILD diff --git a/mingw-w64-kiss_fft/PKGBUILD b/mingw-w64-kiss_fft/PKGBUILD new file mode 100644 index 0000000000..53501baf86 --- /dev/null +++ b/mingw-w64-kiss_fft/PKGBUILD @@ -0,0 +1,34 @@ +# Maintainer: Alexey Pavlov +# Contributor: Sandro Cumerlato + +_realname=kiss_fft +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +_uglyver=1_3_0 +pkgver=${_uglyver//_/.} +pkgrel=1 +pkgdesc="A Fast Fourier Transform based up on the principle: Keep It Simple, Stupid (mingw-w64)" +url="http://kissfft.sourceforge.net/" +arch=('any') +license=('BSD') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +source=("http://sourceforge.net/projects/kissfft/files/kissfft/v${_uglyver}/kiss_fft${_uglyver//_/}.tar.gz") +md5sums=('8497ac4c6eb423ed2f984516b0906d24') + +prepare() { + cd "kiss_fft${_uglyver//_/}" + make clean +} + +build() { + cd "kiss_fft${_uglyver//_/}" + gcc -shared ${CFLAGS} -ffast-math -fomit-frame-pointer -dA -fverbose-asm -o kiss_fft.dll -Wl,--out-implib,libkiss_fft.dll.a kiss_fft.c +} + +package() { + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,include} + mkdir -p ${pkgdir}${MINGW_PREFIX}/include/${_realname} + cd "${srcdir}/kiss_fft${_uglyver//_/}" + install -m644 kiss_fft.dll "${pkgdir}${MINGW_PREFIX}/bin/" + install -m644 libkiss_fft.dll.a "${pkgdir}${MINGW_PREFIX}/lib/" + install -m644 kiss_fft.h "${pkgdir}${MINGW_PREFIX}/include/${_realname}" +} From ca619bf6dba49dbff499ae69556c01ba308ca00f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 2 Jun 2015 09:18:53 +0300 Subject: [PATCH 1085/2060] qtbinpatcher: Custom structure for Qt4 --- .../001-minimize-files-touching.patch | 15 +++++++++++---- mingw-w64-qtbinpatcher/PKGBUILD | 4 ++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch b/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch index d42642fac5..3495747d8f 100644 --- a/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch +++ b/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch @@ -1,15 +1,22 @@ --- qtbinpatcher-2.1.3/QtBinPatcher.cpp.orig 2015-04-28 13:25:04.642600000 +0300 +++ qtbinpatcher-2.1.3/QtBinPatcher.cpp 2015-04-28 13:32:03.050200000 +0300 -@@ -256,7 +256,7 @@ +@@ -255,29 +255,31 @@ + // Files for patching in Qt4. static const TElement Elements4[] = { { "/lib/", "*.prl", false }, - { "/demos/shared/", "libdemo_shared.prl", false }, +- { "/demos/shared/", "libdemo_shared.prl", false }, - { "/lib/pkgconfig/", "*.pc", false }, ++ { "/share/qt4/demos/shared/", "libdemo_shared.prl", false }, + { "/lib/pkgconfig/", "Qt*.pc", false }, #if defined(OS_WINDOWS) - { "/mkspecs/default/", "qmake.conf", false }, +- { "/mkspecs/default/", "qmake.conf", false }, ++ { "/share/qt4/mkspecs/default/", "qmake.conf", false }, { "/", ".qmake.cache", false } -@@ -268,16 +268,18 @@ + #elif defined(OS_LINUX) + { "/lib/", "*.la", false }, + { "/mkspecs/", "qconfig.pri", false } + #endif + }; // Files for patching in Qt5. static const TElement Elements5[] = { diff --git a/mingw-w64-qtbinpatcher/PKGBUILD b/mingw-w64-qtbinpatcher/PKGBUILD index 7507e50e0c..bcb05cfdb5 100644 --- a/mingw-w64-qtbinpatcher/PKGBUILD +++ b/mingw-w64-qtbinpatcher/PKGBUILD @@ -3,7 +3,7 @@ _realname=qtbinpatcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.3 -pkgrel=3 +pkgrel=4 pkgdesc="Patcher for Qt libraries (mingw-w64)" arch=('any') url="http://tver-soft.org" @@ -13,7 +13,7 @@ options=('staticlibs' 'strip') source=(http://tver-soft.org/dl/${_realname}-${pkgver}.tar.bz2 001-minimize-files-touching.patch) md5sums=('4f00aa6601864533589ce30ed39fe2cd' - '122ae4823c01aa32e583ce2a85d3edcd') + '17486592cdb1de4defde22b002094376') prepare() { cd ${srcdir}/${_realname}-${pkgver} From 63d3a7374e5135e51c7098d0ec2aa806e83cf5e6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 2 Jun 2015 13:35:11 +0300 Subject: [PATCH 1086/2060] codelite: Update to 8.0.1 from git SHA [gcdaabf0] --- mingw-w64-codelite-git/PKGBUILD | 22 +++++++------- .../codelite-clang-3.6.patch | 10 +++++++ .../codelite-php-linking.patch | 15 ---------- .../include-winsock-header.patch | 2 +- .../mingw-posix-layout.patch | 14 --------- .../mingw-use-wx-manifests.patch | 2 +- .../windows-headers-conflict.patch | 29 ++++++++++--------- 7 files changed, 37 insertions(+), 57 deletions(-) create mode 100644 mingw-w64-codelite-git/codelite-clang-3.6.patch delete mode 100644 mingw-w64-codelite-git/codelite-php-linking.patch delete mode 100644 mingw-w64-codelite-git/mingw-posix-layout.patch diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index df6ea283dc..dc2c12b9db 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=codelite pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=7.0.157.ga86ea67 +pkgver=8.0.1.125.gcdaabf0 pkgrel=1 pkgdesc="Open-source, cross platform IDE for the C/C++ programming languages (mingw-w64)" arch=('any') @@ -22,19 +22,17 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "git") options=(strip staticlibs !debug) source=("${_realname}::git+https://github.com/eranif/codelite.git" - windows-headers-conflict.patch include-winsock-header.patch mingw-use-wx-manifests.patch use-gnu-extensions.patch - mingw-posix-layout.patch - codelite-php-linking.patch) + windows-headers-conflict.patch + codelite-clang-3.6.patch) md5sums=('SKIP' - '90b7cca657631d9aefbe0c6cf0af5f6c' - '12ab2e97f45429259f93ca9c0c46784b' - 'd7ec793d6c39874f04c1c2d8f366005b' + '926c4848932586577192bd950ffc604b' + 'b18e62316a10dac7c274e2faccd86180' 'f7ce106c3565835c019fbcda0f9bea56' - 'e8385c31ad144df0cc0fabb769dfb3fb' - 'f7f39966d3f36ae09c0536a72400ae7d') + 'edfe66ed42e12811d51e771bf947fd00' + '71dd975305f41b0b5a7efba440bb35fc') pkgver() { cd "$_realname" @@ -43,12 +41,11 @@ pkgver() { prepare() { cd "$srcdir/$_realname" - patch -p1 -i ${srcdir}/windows-headers-conflict.patch patch -p1 -i ${srcdir}/include-winsock-header.patch patch -p1 -i ${srcdir}/mingw-use-wx-manifests.patch patch -p1 -i ${srcdir}/use-gnu-extensions.patch - patch -p1 -i ${srcdir}/mingw-posix-layout.patch - patch -p1 -i ${srcdir}/codelite-php-linking.patch + patch -p1 -i ${srcdir}/windows-headers-conflict.patch + patch -p1 -i ${srcdir}/codelite-clang-3.6.patch } build() { @@ -62,6 +59,7 @@ build() { cd $srcdir/${_realname} ${MINGW_PREFIX}/bin/cmake \ + -Wno-dev \ -G"MSYS Makefiles" \ -DPREFIX=${pkgdir}${MINGW_PREFIX} \ -DENABLE_CLANG=1 \ diff --git a/mingw-w64-codelite-git/codelite-clang-3.6.patch b/mingw-w64-codelite-git/codelite-clang-3.6.patch new file mode 100644 index 0000000000..5dc7750f3f --- /dev/null +++ b/mingw-w64-codelite-git/codelite-clang-3.6.patch @@ -0,0 +1,10 @@ +--- codelite/cmake/Modules/FindClang.cmake.orig 2015-06-02 11:00:49.642600000 +0300 ++++ codelite/cmake/Modules/FindClang.cmake 2015-06-02 11:00:52.169800000 +0300 +@@ -45,6 +45,7 @@ + FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCore) + FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerFrontend) + FIND_AND_ADD_CLANG_LIB(clangTooling) ++FIND_AND_ADD_CLANG_LIB(clangToolingCore) + + find_path(CLANG_INCLUDE_DIRS clang/Basic/Version.h HINTS ${LLVM_INCLUDE_DIRS}) + diff --git a/mingw-w64-codelite-git/codelite-php-linking.patch b/mingw-w64-codelite-git/codelite-php-linking.patch deleted file mode 100644 index f653c4c401..0000000000 --- a/mingw-w64-codelite-git/codelite-php-linking.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- codelite/codelitephp/CMakeLists.txt.orig 2015-03-11 06:33:40.701800000 +0300 -+++ codelite/codelitephp/CMakeLists.txt 2015-03-11 06:33:58.766600000 +0300 -@@ -15,10 +15,10 @@ - # It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'. - if (WITH_WEBVIEW) - message("-- Internal Web Browser is enabled") -- find_package(wxWidgets COMPONENTS adv aui base core html xml xrc net stc webview REQUIRED) -+ find_package(wxWidgets COMPONENTS adv aui base core html propgrid xml xrc net stc webview REQUIRED) - else() - message("-- Internal Web Browser is disabled") -- find_package(wxWidgets COMPONENTS adv aui base core html xml xrc net stc REQUIRED) -+ find_package(wxWidgets COMPONENTS adv aui base core html propgrid xml xrc net stc REQUIRED) - endif() - - # wxWidgets include (this will do all the magic to configure everything) diff --git a/mingw-w64-codelite-git/include-winsock-header.patch b/mingw-w64-codelite-git/include-winsock-header.patch index a6279e951d..ac51aee0aa 100644 --- a/mingw-w64-codelite-git/include-winsock-header.patch +++ b/mingw-w64-codelite-git/include-winsock-header.patch @@ -5,7 +5,7 @@ #ifdef _WIN32 -#ifndef _WIN64 --# include +-#include -#endif +#include diff --git a/mingw-w64-codelite-git/mingw-posix-layout.patch b/mingw-w64-codelite-git/mingw-posix-layout.patch deleted file mode 100644 index fc4f553b8d..0000000000 --- a/mingw-w64-codelite-git/mingw-posix-layout.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- codelite/CodeLite/cl_standard_paths.cpp.orig 2015-03-11 00:17:21.501400000 +0300 -+++ codelite/CodeLite/cl_standard_paths.cpp 2015-03-11 00:17:51.047800000 +0300 -@@ -125,7 +125,11 @@ - - wxString clStandardPaths::GetProjectTemplatesDir() const - { -+#ifdef USE_POSIX_LAYOUT -+ wxFileName fn(GetDataDir() + wxT(INSTALL_DIR), ""); -+#else - wxFileName fn(GetDataDir(), ""); -+#endif - fn.AppendDir("templates"); - fn.AppendDir("projects"); - return fn.GetPath(); diff --git a/mingw-w64-codelite-git/mingw-use-wx-manifests.patch b/mingw-w64-codelite-git/mingw-use-wx-manifests.patch index 8e3be292d7..0a218e4dbd 100644 --- a/mingw-w64-codelite-git/mingw-use-wx-manifests.patch +++ b/mingw-w64-codelite-git/mingw-use-wx-manifests.patch @@ -11,6 +11,6 @@ 1 24 "wx/msw/wx.manifest" #endif +#endif - /////////////////////////////////////////////////////////////////////////////// // Version information + VS_VERSION_INFO VERSIONINFO diff --git a/mingw-w64-codelite-git/windows-headers-conflict.patch b/mingw-w64-codelite-git/windows-headers-conflict.patch index 13608c9b3e..fd55cbb5fe 100644 --- a/mingw-w64-codelite-git/windows-headers-conflict.patch +++ b/mingw-w64-codelite-git/windows-headers-conflict.patch @@ -1,18 +1,19 @@ ---- codelite/CodeLite/cl_ssh.cpp.orig 2015-03-10 16:06:29.957600000 +0300 -+++ codelite/CodeLite/cl_ssh.cpp 2015-03-10 16:06:35.058800000 +0300 -@@ -27,10 +27,13 @@ +--- a/Outline/outline_tab.cpp.orig 2015-06-01 23:22:47.501600000 +0300 ++++ b/Outline/outline_tab.cpp 2015-06-01 23:39:02.750800000 +0300 +@@ -25,11 +25,14 @@ - #include - #include --#include "cl_ssh.h" --#include - #include - #include + #include "outline_tab.h" + #include "outline_symbol_tree.h" +-#include "event_notifier.h" +-#include "plugin.h" +#ifdef __WXMSW__ -+#include "wx/msw/winundef.h" ++#include +#endif -+#include "cl_ssh.h" -+#include + #include + #include + #include ++#include "event_notifier.h" ++#include "plugin.h" + #include "fileextmanager.h" - wxDEFINE_EVENT(wxEVT_SSH_COMMAND_OUTPUT, clCommandEvent); - wxDEFINE_EVENT(wxEVT_SSH_COMMAND_COMPLETED, clCommandEvent); + const wxEventType wxEVT_SV_GOTO_DEFINITION = wxNewEventType(); From 5bf240461fbb4c7cdb3a59bd5315f3c9426218ec Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 2 Jun 2015 13:37:28 +0300 Subject: [PATCH 1087/2060] cmake: Update to 3.2.3 --- mingw-w64-cmake/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 440424e4f2..03ccc78230 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -2,7 +2,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.2.2 +pkgver=3.2.3 pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') @@ -23,7 +23,7 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" "qt5-static-plugin-support.patch") -md5sums=('2da57308071ea98b10253a87d2419281' +md5sums=('d51c92bf66b1e9d4fe2b7aaedd51377c' '663edba4faae25d3e5c48ab0ca6b6cb9' 'fb33ace70ba863159b2c7964a9661e1e' '6461b89ff7d1ca0c4022801dff8475a7') From f7c31f31a49dac298d8f55123c7452646329390d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 2 Jun 2015 15:53:09 +0300 Subject: [PATCH 1088/2060] qt4: Final update for 4.8.7 --- mingw-w64-qt4/PKGBUILD | 95 +++++++++----------- mingw-w64-qt4/qt-4.8.7-mingw-configure.patch | 5 +- 2 files changed, 47 insertions(+), 53 deletions(-) diff --git a/mingw-w64-qt4/PKGBUILD b/mingw-w64-qt4/PKGBUILD index 4298c7a35e..3383c95fd3 100644 --- a/mingw-w64-qt4/PKGBUILD +++ b/mingw-w64-qt4/PKGBUILD @@ -35,7 +35,6 @@ makedepends=("bison" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-firebird" "${MINGW_PACKAGE_PREFIX}-libmariadbclient" - #"${MINGW_PACKAGE_PREFIX}-make" "${MINGW_PACKAGE_PREFIX}-postgresql" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python2" @@ -45,7 +44,7 @@ makedepends=("bison" #"${MINGW_PACKAGE_PREFIX}-gperf" ) groups=("${MINGW_PACKAGE_PREFIX}-qt4") -options=('!strip' 'staticlibs' 'debug') +options=('!strip' 'staticlibs') _pkgfqn="qt-everywhere-opensource-src-${pkgver}" source=("http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${pkgver}/${_pkgfqn}.tar.gz" qt-4.6-demo-plugandpaint.patch @@ -89,7 +88,7 @@ md5sums=('d990ee66bf7ab0c785589776f35ba6ad' '68657fc5b131e2c5e3532b61e2c3da42' '562ababd98ecca9e3a6cbc9b70e8f7f9' '49c33922e8f3c506cb7cc15cbe9b4a0a' - '49c91349a8fd94124c6c173eb1994a44' + 'deee6f532968c1d8bb3d143604d44091' 'fc3b3f45db0eda55d429310faf529ae9') prepare() { @@ -135,8 +134,6 @@ prepare() { esac local STATIC_LD= - #sed -e "s|%OPTIMIZE_OPT%|${_optim}|g" -i mkspecs/win32-g++/qmake.conf - #sed -e "s|%STATICFLAGS%|${STATIC_LD}|g" -i mkspecs/win32-g++/qmake.conf sed -i "s|^QMAKE_CFLAGS =\(.*\)$|QMAKE_CFLAGS = \1 ${_optim} |g" mkspecs/win32-g++/qmake.conf sed -i "s|^QMAKE_LFLAGS =\(.*\)$|QMAKE_LFLAGS = \1 ${STATIC_LD}|g" mkspecs/win32-g++/qmake.conf @@ -144,31 +141,29 @@ prepare() { build() { cd $srcdir/${CARCH} - touch .gitignore mkdir -p ${pkgdir}${MINGW_PREFIX} local QTDIR_WIN=$(cygpath -wm ${pkgdir}${MINGW_PREFIX}) - #INCLUDE="${MINGW_PREFIX}/${MINGW_CHOST}/include:${MINGW_PREFIX}/include:${MINGW_PREFIX}/include/mariadb" local pkg_conf_inc=$(pkg-config --cflags-only-I libxml-2.0 dbus-1) - #CPPFLAGS+=" ${pkg_conf_inc}" - #pkg_conf_inc=${pkg_conf_inc//-I/ } - #for _inc in ${pkg_conf_inc}; do - # INCLUDE="${INCLUDE}:${_inc}" - #done - - #export INCLUDE - #export CPATH="${INCLUDE}" - #export LIB="${MINGW_PREFIX}/${MINGW_CHOST}/lib:${MINGW_PREFIX}/lib" - #export LIBRARY_PATH="${MINGW_PREFIX}/${MINGW_CHOST}/lib:${MINGW_PREFIX}/lib" export PATH=${srcdir}/${CARCH}/bin:${srcdir}/${CARCH}/lib:${PATH} ./configure \ -prefix ${pkgdir}${MINGW_PREFIX} \ + -datadir ${QTDIR_WIN}/share/qt4 \ + -docdir ${QTDIR_WIN}/share/qt4/doc \ + -headerdir ${QTDIR_WIN}/include/qt4 \ + -plugindir ${QTDIR_WIN}/share/qt4/plugins \ + -importdir ${QTDIR_WIN}/share/qt4/imports \ + -translationdir ${QTDIR_WIN}/share/qt4/translations \ + -sysconfdir ${QTDIR_WIN}/etc \ + -examplesdir ${QTDIR_WIN}/share/qt4/examples \ + -demosdir ${QTDIR_WIN}/share/qt4/demos \ -opensource \ -confirm-license \ -debug-and-release \ -platform win32-g++ \ + -xplatform win32-g++ \ -plugin-sql-ibase \ -plugin-sql-mysql \ -plugin-sql-psql \ @@ -199,27 +194,25 @@ build() { -nomake tests \ -nomake demos \ -nomake examples \ - -verbose -verbose \ + -verbose \ -I ${MINGW_PREFIX}/include/mariadb \ ${pkg_conf_inc} # Fix building cp -rf mkspecs ${pkgdir}${MINGW_PREFIX}/ - make V=1 + make } package() { cd ${srcdir}/${CARCH} - export PATH=${srcdir}/${CARCH}/bin:${PATH} - - ${MINGW_PREFIX}/bin/mingw32-make ${MAKEFLAGS} install - + make install + rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.dll + plain "Install private headers" - local PRIVATE_HEADERS=( phonon Qt3Support @@ -246,76 +239,76 @@ package() { for priv_headers in ${PRIVATE_HEADERS[@]} do - mkdir -p ${pkgdir}${MINGW_PREFIX}/include/${priv_headers} - mkdir -p ${pkgdir}${MINGW_PREFIX}/include/${priv_headers}/private + mkdir -p ${pkgdir}${MINGW_PREFIX}/include/Qt4/${priv_headers} + mkdir -p ${pkgdir}${MINGW_PREFIX}/include/Qt4/${priv_headers}/private done plain "----> Qt3Support" - cp -rfv `find src/qt3support -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt3Support/private - cp -rfv `find src/qt3support -type f -name "*_pch.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt3Support/private + cp -rfv `find src/qt3support -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/Qt3Support/private + cp -rfv `find src/qt3support -type f -name "*_pch.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/Qt3Support/private plain "----> QtCore" - cp -rfv `find src/corelib -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtCore/private - cp -rfv `find src/corelib -type f -name "*_pch.h"` ${pkgdir}${MINGW_PREFIX}/include/QtCore/private + cp -rfv `find src/corelib -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtCore/private + cp -rfv `find src/corelib -type f -name "*_pch.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtCore/private plain "----> QtDBus" - cp -rfv `find src/dbus -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtDBus/private + cp -rfv `find src/dbus -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtDBus/private plain "----> QtDeclarative" - cp -rfv `find src/declarative -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtDeclarative/private + cp -rfv `find src/declarative -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtDeclarative/private plain "----> QtDesigner" - cp -rfv `find tools/designer/src/lib -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtDesigner/private - cp -rfv `find tools/designer/src/lib -type f -name "*_pch.h"` ${pkgdir}${MINGW_PREFIX}/include/QtDesigner/private + cp -rfv `find tools/designer/src/lib -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtDesigner/private + cp -rfv `find tools/designer/src/lib -type f -name "*_pch.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtDesigner/private plain "----> QtGui" - cp -rfv `find src/gui -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtGui/private - cp -rfv `find src/gui -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtGui/private + cp -rfv `find src/gui -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtGui/private + cp -rfv `find src/gui -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtGui/private plain "----> QtHelp" - cp -rfv `find tools/assistant -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtHelp/private + cp -rfv `find tools/assistant -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtHelp/private plain "----> QtMeeGoGraphicsSystemHelper" - cp -rfv `find tools/qmeegographicssystemhelper -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtMeeGoGraphicsSystemHelper/private + cp -rfv `find tools/qmeegographicssystemhelper -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtMeeGoGraphicsSystemHelper/private plain "----> QtMultimedia" - cp -rfv `find src/multimedia -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtMultimedia/private + cp -rfv `find src/multimedia -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtMultimedia/private plain "----> QtNetwork" - cp -rfv `find src/network -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtNetwork/private + cp -rfv `find src/network -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtNetwork/private plain "----> QtOpenGl" - cp -rfv `find src/opengl -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtOpenGl/private + cp -rfv `find src/opengl -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtOpenGl/private plain "----> QtOpenVG" - cp -rfv `find src/openvg -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtOpenVG/private + cp -rfv `find src/openvg -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtOpenVG/private plain "----> QtScript" - cp -rfv `find src/script -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtScript/private + cp -rfv `find src/script -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtScript/private plain "----> QtScriptTools" - cp -rfv `find src/scripttools -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtScriptTools/private + cp -rfv `find src/scripttools -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtScriptTools/private plain "----> QtSql" - cp -rfv `find src/sql -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtSql/private + cp -rfv `find src/sql -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtSql/private plain "----> QtSvg" - cp -rfv `find src/svg -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtSvg/private + cp -rfv `find src/svg -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtSvg/private plain "----> QtTest" - cp -rfv `find src/testlib -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtTest/private + cp -rfv `find src/testlib -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtTest/private plain "----> QtUiTools" - cp -rfv `find tools/designer/src/uitools -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtUiTools/private + cp -rfv `find tools/designer/src/uitools -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtUiTools/private plain "----> QtWebkit" - cp -rfv `find src/3rdparty/webkit -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtWebkit/private + cp -rfv `find src/3rdparty/webkit -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtWebkit/private plain "----> QtXmlPatterns" - cp -rfv `find src/xmlpatterns -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/QtXmlPatterns/private + cp -rfv `find src/xmlpatterns -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/QtXmlPatterns/private plain "----> phonon" - cp -rfv `find src/3rdparty/phonon/phonon -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/phonon/private + cp -rfv `find src/3rdparty/phonon/phonon -type f -name "*_p.h"` ${pkgdir}${MINGW_PREFIX}/include/Qt4/phonon/private plain "---> Done install private headers" diff --git a/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch index a283c3280f..8b3d0ed7d7 100644 --- a/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch +++ b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch @@ -1,11 +1,12 @@ --- a/configure 2015-05-27 14:41:26.622651400 +0300 +++ b/configure 2015-05-27 14:44:05.788194400 +0300 -@@ -48,9 +48,9 @@ +@@ -48,9 +48,10 @@ relconf=`basename $0` # the directory of this script is the "source tree" relpath=`dirname $0` -relpath=`(cd "$relpath"; /bin/pwd)` -+relpath=`cygpath -ma "$relpath"` ++relpath=$(cygpath -ma "$relpath") ++relpath=${relpath%/} # the current directory is the "build tree" or "object tree" -outpath=`/bin/pwd` +outpath=$(cygpath -ma $(/bin/pwd)) From f0b325265a1055135b302f6362e9ded9b9005e12 Mon Sep 17 00:00:00 2001 From: Chilledheart Date: Wed, 3 Jun 2015 10:11:50 +0800 Subject: [PATCH 1089/2060] qt5: Update to 5.4.2 --- ...le-use-of-system-vs.-shell-path-list-se.patch | 16 ++++++++-------- mingw-w64-qt5-static/PKGBUILD | 10 +++++----- ...le-use-of-system-vs.-shell-path-list-se.patch | 16 ++++++++-------- mingw-w64-qt5/PKGBUILD | 10 +++++----- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/mingw-w64-qt5-static/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch b/mingw-w64-qt5-static/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch index 2b3bb7c465..fe9c7af31c 100644 --- a/mingw-w64-qt5-static/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch +++ b/mingw-w64-qt5-static/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch @@ -55,18 +55,18 @@ index 790724c..eeaafcc 100644 # as they depend on the code. javac.depends = FORCE diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf -index 6656d1b..40ec7cf 100644 +index 770afa3..c06cbf1 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf -@@ -22,7 +22,7 @@ debug_and_release:debug_and_release_target { - } +@@ -45,7 +45,7 @@ qtAddTargetEnv(check.commands, QT) - !isEmpty(TESTRUN_CWD):!contains(TESTRUN_CWD,^\\./?): \ -- check.commands = cd $$shell_path($$TESTRUN_CWD) && -+ check.commands = cd $$system_path($$TESTRUN_CWD) && + # This must happen after adding the environment. + !isEmpty(TESTRUN_CWD):!contains(TESTRUN_CWD, ^\\./?): \ +- check.commands = cd $$shell_path($$TESTRUN_CWD) && $$check.commands ++ check.commands = cd $$system_path($$TESTRUN_CWD) && $$check.commands - # Allow for a custom test runner script - check.commands += $(TESTRUNNER) + # If the test is marked as insignificant, discard the exit code + insignificant_test:check.commands = -$${check.commands} diff --git a/mkspecs/features/win32/windeployqt.prf b/mkspecs/features/win32/windeployqt.prf index 22253f6..f49df47 100644 --- a/mkspecs/features/win32/windeployqt.prf diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 05b14ff3cd..496b44a88e 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -75,9 +75,9 @@ fi _opengl=desktop _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.4.1 +_ver_base=5.4.2 pkgver=${_ver_base//-/} -pkgrel=3 +pkgrel=1 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -180,7 +180,7 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch) -md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' +md5sums=('c23bd0f14d66e7901d24906a1edce9b0' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' '53edcf1df69ae8134a196292447ddaa3' @@ -208,7 +208,7 @@ md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' '3b550bd6c58d09aa6729987ef16fed65' '47c0f36b9de94cf878cd29b7e2b6ea1b' '01e8030718f088178559a28958a05350' - 'b1007411b47a85813e368e003885469e' + '6d86c1358be850376ed05c2913175c50' 'a264f298702e70007820ab2f37facffb' '4b60988f913708dd8ee3a79a2eac4cae' 'e009d2a1c7edc41c1f5974883d4f38b2' @@ -325,7 +325,7 @@ prepare() { # suggestion (below) doesn't fix the problem entirely, it makes the chances # of it happening near 0. His take on it is that we should have different # target files for RegExpJitTables.h for each of release and debug. - patch -p1 -i ${srcdir}/0031-qt-5.3.1-Fix-masm-pri-build-race-condition.patch + ###patch -p1 -i ${srcdir}/0031-qt-5.3.1-Fix-masm-pri-build-race-condition.patch ###patch -p1 -i ${srcdir}/0032-qt-5.3.2-Disable-jitted-Regexp-for-Mingw-64-bit-94712.patch ###patch -p1 -i ${srcdir}/0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch patch -p1 -i ${srcdir}/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch diff --git a/mingw-w64-qt5/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch b/mingw-w64-qt5/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch index 2b3bb7c465..fe9c7af31c 100644 --- a/mingw-w64-qt5/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch +++ b/mingw-w64-qt5/0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch @@ -55,18 +55,18 @@ index 790724c..eeaafcc 100644 # as they depend on the code. javac.depends = FORCE diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf -index 6656d1b..40ec7cf 100644 +index 770afa3..c06cbf1 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf -@@ -22,7 +22,7 @@ debug_and_release:debug_and_release_target { - } +@@ -45,7 +45,7 @@ qtAddTargetEnv(check.commands, QT) - !isEmpty(TESTRUN_CWD):!contains(TESTRUN_CWD,^\\./?): \ -- check.commands = cd $$shell_path($$TESTRUN_CWD) && -+ check.commands = cd $$system_path($$TESTRUN_CWD) && + # This must happen after adding the environment. + !isEmpty(TESTRUN_CWD):!contains(TESTRUN_CWD, ^\\./?): \ +- check.commands = cd $$shell_path($$TESTRUN_CWD) && $$check.commands ++ check.commands = cd $$system_path($$TESTRUN_CWD) && $$check.commands - # Allow for a custom test runner script - check.commands += $(TESTRUNNER) + # If the test is marked as insignificant, discard the exit code + insignificant_test:check.commands = -$${check.commands} diff --git a/mkspecs/features/win32/windeployqt.prf b/mkspecs/features/win32/windeployqt.prf index 22253f6..f49df47 100644 --- a/mkspecs/features/win32/windeployqt.prf diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 9e3c99c228..a743571d45 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -75,9 +75,9 @@ fi _opengl=desktop _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.4.1 +_ver_base=5.4.2 pkgver=${_ver_base//-/} -pkgrel=5 +pkgrel=1 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -183,7 +183,7 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch 0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch) -md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' +md5sums=('c23bd0f14d66e7901d24906a1edce9b0' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' '53edcf1df69ae8134a196292447ddaa3' @@ -211,7 +211,7 @@ md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' '3b550bd6c58d09aa6729987ef16fed65' '47c0f36b9de94cf878cd29b7e2b6ea1b' '01e8030718f088178559a28958a05350' - 'b1007411b47a85813e368e003885469e' + '6d86c1358be850376ed05c2913175c50' 'a264f298702e70007820ab2f37facffb' '4b60988f913708dd8ee3a79a2eac4cae' 'e009d2a1c7edc41c1f5974883d4f38b2' @@ -330,7 +330,7 @@ prepare() { # suggestion (below) doesn't fix the problem entirely, it makes the chances # of it happening near 0. His take on it is that we should have different # target files for RegExpJitTables.h for each of release and debug. - patch -p1 -i ${srcdir}/0031-qt-5.3.1-Fix-masm-pri-build-race-condition.patch + ###patch -p1 -i ${srcdir}/0031-qt-5.3.1-Fix-masm-pri-build-race-condition.patch ###patch -p1 -i ${srcdir}/0032-qt-5.3.2-Disable-jitted-Regexp-for-Mingw-64-bit-94712.patch ###patch -p1 -i ${srcdir}/0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch patch -p1 -i ${srcdir}/0034-qt-5.3.2-Use-QMAKE_PREFIX_STATICLIB-in-create_cmake-prf.patch From 7849ebed399b73174d7a2d8d852a3314984a5b39 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 3 Jun 2015 09:42:14 +0300 Subject: [PATCH 1090/2060] qt4: remove extra patch --- ...erge-static-and-shared-library-trees.patch | 306 ------------------ 1 file changed, 306 deletions(-) delete mode 100644 mingw-w64-qt4/qt-merge-static-and-shared-library-trees.patch diff --git a/mingw-w64-qt4/qt-merge-static-and-shared-library-trees.patch b/mingw-w64-qt4/qt-merge-static-and-shared-library-trees.patch deleted file mode 100644 index 4abf972ee9..0000000000 --- a/mingw-w64-qt4/qt-merge-static-and-shared-library-trees.patch +++ /dev/null @@ -1,306 +0,0 @@ ---- usr/i686-w64-mingw32/sys-root/mingw/include/QtCore/qconfig.h.orig 2011-12-25 21:03:37.022018831 +0100 -+++ usr/i686-w64-mingw32/sys-root/mingw/include/QtCore/qconfig.h 2011-12-25 21:13:50.704976445 +0100 -@@ -26,6 +26,14 @@ - - #ifndef QT_BOOTSTRAPPED - -+#if defined(QT_NODLL) -+#if defined(QT_BUILTIN_GIF_READER) && defined(QT_NO_BUILTIN_GIF_READER) -+# undef QT_BUILTIN_GIF_READER -+#elif !defined(QT_BUILTIN_GIF_READER) && !defined(QT_NO_BUILTIN_GIF_READER) -+# define QT_BUILTIN_GIF_READER 1 -+#endif -+#endif -+ - #if defined(QT_NO_ALSA) && defined(QT_ALSA) - # undef QT_NO_ALSA - #elif !defined(QT_NO_ALSA) && !defined(QT_ALSA) -@@ -80,6 +88,7 @@ - # define QT_NO_ICD - #endif - -+#if !defined(QT_NODLL) - #if defined(QT_NO_IMAGEFORMAT_JPEG) && defined(QT_IMAGEFORMAT_JPEG) - # undef QT_NO_IMAGEFORMAT_JPEG - #elif !defined(QT_NO_IMAGEFORMAT_JPEG) && !defined(QT_IMAGEFORMAT_JPEG) -@@ -97,6 +106,7 @@ - #elif !defined(QT_NO_IMAGEFORMAT_TIFF) && !defined(QT_IMAGEFORMAT_TIFF) - # define QT_NO_IMAGEFORMAT_TIFF - #endif -+#endif - - #if defined(QT_NO_INOTIFY) && defined(QT_INOTIFY) - # undef QT_NO_INOTIFY -@@ -176,6 +186,14 @@ - # define QT_NO_SYSTEMSEMAPHORE - #endif - -+#if defined(QT_NODLL) -+#if defined(QT_NO_WEBKIT) && defined(QT_WEBKIT) -+# undef QT_NO_WEBKIT -+#elif !defined(QT_NO_WEBKIT) && !defined(QT_WEBKIT) -+# define QT_NO_WEBKIT -+#endif -+#endif -+ - #if defined(QT_NO_ZLIB) && defined(QT_ZLIB) - # undef QT_NO_ZLIB - #elif !defined(QT_NO_ZLIB) && !defined(QT_ZLIB) ---- usr/i686-w64-mingw32/sys-root/mingw/include/Qt/qconfig.h.orig 2011-12-25 21:03:13.349289762 +0100 -+++ usr/i686-w64-mingw32/sys-root/mingw/include/Qt/qconfig.h 2011-12-25 21:06:37.386579371 +0100 -@@ -26,6 +26,14 @@ - - #ifndef QT_BOOTSTRAPPED - -+#if defined(QT_NODLL) -+#if defined(QT_BUILTIN_GIF_READER) && defined(QT_NO_BUILTIN_GIF_READER) -+# undef QT_BUILTIN_GIF_READER -+#elif !defined(QT_BUILTIN_GIF_READER) && !defined(QT_NO_BUILTIN_GIF_READER) -+# define QT_BUILTIN_GIF_READER 1 -+#endif -+#endif -+ - #if defined(QT_NO_ALSA) && defined(QT_ALSA) - # undef QT_NO_ALSA - #elif !defined(QT_NO_ALSA) && !defined(QT_ALSA) -@@ -80,6 +88,7 @@ - # define QT_NO_ICD - #endif - -+#if !defined(QT_NODLL) - #if defined(QT_NO_IMAGEFORMAT_JPEG) && defined(QT_IMAGEFORMAT_JPEG) - # undef QT_NO_IMAGEFORMAT_JPEG - #elif !defined(QT_NO_IMAGEFORMAT_JPEG) && !defined(QT_IMAGEFORMAT_JPEG) -@@ -97,6 +106,7 @@ - #elif !defined(QT_NO_IMAGEFORMAT_TIFF) && !defined(QT_IMAGEFORMAT_TIFF) - # define QT_NO_IMAGEFORMAT_TIFF - #endif -+#endif - - #if defined(QT_NO_INOTIFY) && defined(QT_INOTIFY) - # undef QT_NO_INOTIFY -@@ -176,6 +186,14 @@ - # define QT_NO_SYSTEMSEMAPHORE - #endif - -+#if defined(QT_NODLL) -+#if defined(QT_NO_WEBKIT) && defined(QT_WEBKIT) -+# undef QT_NO_WEBKIT -+#elif !defined(QT_NO_WEBKIT) && !defined(QT_WEBKIT) -+# define QT_NO_WEBKIT -+#endif -+#endif -+ - #if defined(QT_NO_ZLIB) && defined(QT_ZLIB) - # undef QT_NO_ZLIB - #elif !defined(QT_NO_ZLIB) && !defined(QT_ZLIB) ---- usr/i686-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/qconfig.pri.orig 2011-12-25 21:09:01.616032758 +0100 -+++ usr/i686-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/qconfig.pri 2011-12-25 21:12:14.685003350 +0100 -@@ -2,7 +2,11 @@ - CONFIG += cross_compile def_files_disabled exceptions rtti no_mocdepend release stl qt_no_framework - QT_ARCH = windows - QT_EDITION = OpenSource --QT_CONFIG += minimal-config small-config medium-config large-config full-config qt3support accessibility opengl shared ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release -+contains(CONFIG, static) { -+ QT_CONFIG += minimal-config small-config medium-config large-config full-config qt3support accessibility opengl static ipv6 getaddrinfo system-jpeg jpeg mng system-png png gif system-tiff tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release -+} else { -+ QT_CONFIG += minimal-config small-config medium-config large-config full-config qt3support accessibility opengl shared ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release -+} - - #versioning - QT_VERSION = 4.8.5 ---- usr/i686-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/win32/default_post.prf.orig 2011-12-26 02:29:56.365208473 +0100 -+++ usr/i686-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/win32/default_post.prf 2011-12-26 02:31:03.650208601 +0100 -@@ -6,6 +6,10 @@ - } - } - -+contains(CONFIG, static) { -+ QMAKE_LFLAGS += -static -+} -+ - # Now load the global default_post - load(default_post) - ---- usr/i686-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/qt_functions.prf.orig 2011-12-26 21:24:32.448207664 +0100 -+++ usr/i686-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/qt_functions.prf 2012-04-19 16:21:25.437111396 +0200 -@@ -71,7 +71,7 @@ - export(TARGET.CAPABILITY) - } - isEmpty(LINKAGE) { -- if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { -+ if(!debug_and_release|build_pass):!static:CONFIG(debug, debug|release) { - win32:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}d - mac:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}_debug - } -@@ -83,6 +83,17 @@ - QMAKE_LFLAGS *= --lsb-shared-libs=$${LIB_NAME}$${QT_LIBINFIX} - } - LIBS += $$LINKAGE -+ win32:CONFIG(static) { -+ isEqual(LIB_NAME, QtCore) { -+ LIBS += $$QMAKE_LIBS_CORE -+ } else:isEqual(LIB_NAME, QtGui) { -+ LIBS += $$QMAKE_LIBS_GUI -+ } else:isEqual(LIB_NAME, QtNetwork) { -+ LIBS += $$QMAKE_LIBS_NETWORK -+ } else:isEqual(LIB_NAME, QtOpenGL) { -+ LIBS += $$QMAKE_LIBS_OPENGL -+ } -+ } - export(LIBS) - export(INCLUDEPATH) - export(QMAKE_FRAMEWORKPATH) ---- usr/x86_64-w64-mingw32/sys-root/mingw/include/QtCore/qconfig.h.orig 2011-12-25 21:03:37.022018831 +0100 -+++ usr/x86_64-w64-mingw32/sys-root/mingw/include/QtCore/qconfig.h 2011-12-25 21:13:50.704976445 +0100 -@@ -26,6 +26,14 @@ - - #ifndef QT_BOOTSTRAPPED - -+#if defined(QT_NODLL) -+#if defined(QT_BUILTIN_GIF_READER) && defined(QT_NO_BUILTIN_GIF_READER) -+# undef QT_BUILTIN_GIF_READER -+#elif !defined(QT_BUILTIN_GIF_READER) && !defined(QT_NO_BUILTIN_GIF_READER) -+# define QT_BUILTIN_GIF_READER 1 -+#endif -+#endif -+ - #if defined(QT_NO_ALSA) && defined(QT_ALSA) - # undef QT_NO_ALSA - #elif !defined(QT_NO_ALSA) && !defined(QT_ALSA) -@@ -80,6 +88,7 @@ - # define QT_NO_ICD - #endif - -+#if !defined(QT_NODLL) - #if defined(QT_NO_IMAGEFORMAT_JPEG) && defined(QT_IMAGEFORMAT_JPEG) - # undef QT_NO_IMAGEFORMAT_JPEG - #elif !defined(QT_NO_IMAGEFORMAT_JPEG) && !defined(QT_IMAGEFORMAT_JPEG) -@@ -97,6 +106,7 @@ - #elif !defined(QT_NO_IMAGEFORMAT_TIFF) && !defined(QT_IMAGEFORMAT_TIFF) - # define QT_NO_IMAGEFORMAT_TIFF - #endif -+#endif - - #if defined(QT_NO_INOTIFY) && defined(QT_INOTIFY) - # undef QT_NO_INOTIFY -@@ -176,6 +186,14 @@ - # define QT_NO_SYSTEMSEMAPHORE - #endif - -+#if defined(QT_NODLL) -+#if defined(QT_NO_WEBKIT) && defined(QT_WEBKIT) -+# undef QT_NO_WEBKIT -+#elif !defined(QT_NO_WEBKIT) && !defined(QT_WEBKIT) -+# define QT_NO_WEBKIT -+#endif -+#endif -+ - #if defined(QT_NO_ZLIB) && defined(QT_ZLIB) - # undef QT_NO_ZLIB - #elif !defined(QT_NO_ZLIB) && !defined(QT_ZLIB) ---- usr/x86_64-w64-mingw32/sys-root/mingw/include/Qt/qconfig.h.orig 2011-12-25 21:03:13.349289762 +0100 -+++ usr/x86_64-w64-mingw32/sys-root/mingw/include/Qt/qconfig.h 2011-12-25 21:06:37.386579371 +0100 -@@ -26,6 +26,14 @@ - - #ifndef QT_BOOTSTRAPPED - -+#if defined(QT_NODLL) -+#if defined(QT_BUILTIN_GIF_READER) && defined(QT_NO_BUILTIN_GIF_READER) -+# undef QT_BUILTIN_GIF_READER -+#elif !defined(QT_BUILTIN_GIF_READER) && !defined(QT_NO_BUILTIN_GIF_READER) -+# define QT_BUILTIN_GIF_READER 1 -+#endif -+#endif -+ - #if defined(QT_NO_ALSA) && defined(QT_ALSA) - # undef QT_NO_ALSA - #elif !defined(QT_NO_ALSA) && !defined(QT_ALSA) -@@ -80,6 +88,7 @@ - # define QT_NO_ICD - #endif - -+#if !defined(QT_NODLL) - #if defined(QT_NO_IMAGEFORMAT_JPEG) && defined(QT_IMAGEFORMAT_JPEG) - # undef QT_NO_IMAGEFORMAT_JPEG - #elif !defined(QT_NO_IMAGEFORMAT_JPEG) && !defined(QT_IMAGEFORMAT_JPEG) -@@ -97,6 +106,7 @@ - #elif !defined(QT_NO_IMAGEFORMAT_TIFF) && !defined(QT_IMAGEFORMAT_TIFF) - # define QT_NO_IMAGEFORMAT_TIFF - #endif -+#endif - - #if defined(QT_NO_INOTIFY) && defined(QT_INOTIFY) - # undef QT_NO_INOTIFY -@@ -176,6 +186,14 @@ - # define QT_NO_SYSTEMSEMAPHORE - #endif - -+#if defined(QT_NODLL) -+#if defined(QT_NO_WEBKIT) && defined(QT_WEBKIT) -+# undef QT_NO_WEBKIT -+#elif !defined(QT_NO_WEBKIT) && !defined(QT_WEBKIT) -+# define QT_NO_WEBKIT -+#endif -+#endif -+ - #if defined(QT_NO_ZLIB) && defined(QT_ZLIB) - # undef QT_NO_ZLIB - #elif !defined(QT_NO_ZLIB) && !defined(QT_ZLIB) ---- usr/x86_64-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/qconfig.pri.orig 2011-12-25 21:09:01.616032758 +0100 -+++ usr/x86_64-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/qconfig.pri 2011-12-25 21:12:14.685003350 +0100 -@@ -2,7 +2,11 @@ - CONFIG += cross_compile def_files_disabled exceptions rtti no_mocdepend release stl qt_no_framework - QT_ARCH = windows - QT_EDITION = OpenSource --QT_CONFIG += minimal-config small-config medium-config large-config full-config qt3support accessibility opengl shared ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release -+contains(CONFIG, static) { -+ QT_CONFIG += minimal-config small-config medium-config large-config full-config qt3support accessibility opengl static ipv6 getaddrinfo system-jpeg jpeg mng system-png png gif system-tiff tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release -+} else { -+ QT_CONFIG += minimal-config small-config medium-config large-config full-config qt3support accessibility opengl shared ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release -+} - - #versioning - QT_VERSION = 4.8.5 ---- usr/x86_64-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/win32/default_post.prf.orig 2011-12-26 02:29:56.365208473 +0100 -+++ usr/x86_64-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/win32/default_post.prf 2011-12-26 02:31:03.650208601 +0100 -@@ -6,6 +6,10 @@ - } - } - -+contains(CONFIG, static) { -+ QMAKE_LFLAGS += -static -+} -+ - # Now load the global default_post - load(default_post) - ---- usr/x86_64-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/qt_functions.prf.orig 2011-12-26 21:24:32.448207664 +0100 -+++ usr/x86_64-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/qt_functions.prf 2012-04-19 16:21:25.437111396 +0200 -@@ -71,7 +71,7 @@ - export(TARGET.CAPABILITY) - } - isEmpty(LINKAGE) { -- if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { -+ if(!debug_and_release|build_pass):!static:CONFIG(debug, debug|release) { - win32:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}d - mac:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}_debug - } -@@ -83,6 +83,17 @@ - QMAKE_LFLAGS *= --lsb-shared-libs=$${LIB_NAME}$${QT_LIBINFIX} - } - LIBS += $$LINKAGE -+ win32:CONFIG(static) { -+ isEqual(LIB_NAME, QtCore) { -+ LIBS += $$QMAKE_LIBS_CORE -+ } else:isEqual(LIB_NAME, QtGui) { -+ LIBS += $$QMAKE_LIBS_GUI -+ } else:isEqual(LIB_NAME, QtNetwork) { -+ LIBS += $$QMAKE_LIBS_NETWORK -+ } else:isEqual(LIB_NAME, QtOpenGL) { -+ LIBS += $$QMAKE_LIBS_OPENGL -+ } -+ } - export(LIBS) - export(INCLUDEPATH) - export(QMAKE_FRAMEWORKPATH) From fcb7251c1e31107b446af5912854de49af4e1e0c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 3 Jun 2015 12:08:59 +0300 Subject: [PATCH 1091/2060] mingw-w64 runtime update to git SHA [413d55f] --- mingw-w64-crt-git/PKGBUILD | 2 +- mingw-w64-headers-git/PKGBUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 9633f0fe9a..c01ab4bbae 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4501.4421b4a +pkgver=5.0.0.4506.413d55f pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 96629e564c..136e818512 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4501.4421b4a +pkgver=5.0.0.4506.413d55f pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From 27e6acbb6b0312d4f8eb40bc51ac56fce48cf22b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 3 Jun 2015 12:42:23 +0300 Subject: [PATCH 1092/2060] qwt-qt4: Update to 6.1.2 --- mingw-w64-qwt-qt4/PKGBUILD | 25 +++++++++++------------- mingw-w64-qwt-qt4/qwt-qt4-i686.install | 10 ++++++++++ mingw-w64-qwt-qt4/qwt-qt4-x86_64.install | 10 ++++++++++ mingw-w64-qwt-qt4/qwtconfig-msys2.pri | 6 +++--- 4 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 mingw-w64-qwt-qt4/qwt-qt4-i686.install create mode 100644 mingw-w64-qwt-qt4/qwt-qt4-x86_64.install diff --git a/mingw-w64-qwt-qt4/PKGBUILD b/mingw-w64-qwt-qt4/PKGBUILD index 3389e8d473..1eb3cf28dc 100644 --- a/mingw-w64-qwt-qt4/PKGBUILD +++ b/mingw-w64-qwt-qt4/PKGBUILD @@ -3,25 +3,24 @@ _realname=qwt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" -pkgver=6.1.0 +pkgver=6.1.2 pkgrel=1 -pkgdesc="Qt Widgets for Technical Applications" +pkgdesc="Qt Widgets for Technical Applications for Qt4 (mingw-w64)" arch=('any') license=("custom:$pkgname") url="http://qwt.sourceforge.net/" depends=("${MINGW_PACKAGE_PREFIX}-qt4") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-make") options=(!strip staticlibs !buildflags) +install=${_realname}-qt4-${CARCH}.install source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.bz2" \ "qwtconfig-msys2.pri") -md5sums=('aef0437b37f191067a6a9dc01c30ba64' - 'b0c93b559ba7aa08284f24f5c38093cb') +md5sums=('9c88db1774fa7e3045af063bbde44d7d' + 'ea5a595a3153d7330921e309b7e42e3d') prepare() { mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) cd ${srcdir}/${_realname}-${pkgver} # copy our config file to the right place @@ -34,20 +33,18 @@ build() { cd ${srcdir}/${_realname}-${pkgver} ${MINGW_PREFIX}/bin/qmake qwt.pro - make ${MAKEFLAGS} # VERBOSE=1 + ${MINGW_PREFIX}/bin/mingw32-make # VERBOSE=1 } package() { cd ${srcdir}/${_realname}-${pkgver} - make -j1 install + ${MINGW_PREFIX}/bin/mingw32-make -j1 install mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/mkspecs/features/qwtconfig.pri + -i ${pkgdir}${MINGW_PREFIX}/share/qt4/mkspecs/features/qwtconfig.pri } diff --git a/mingw-w64-qwt-qt4/qwt-qt4-i686.install b/mingw-w64-qwt-qt4/qwt-qt4-i686.install new file mode 100644 index 0000000000..7846cd06c1 --- /dev/null +++ b/mingw-w64-qwt-qt4/qwt-qt4-i686.install @@ -0,0 +1,10 @@ +post_install() { + cd mingw32 + local _prefix=$(pwd -W) + cd - + sed -s "s|/mingw32|${_prefix}|g" -i mingw32/share/qt4/mkspecs/features/qwtconfig.pri +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-qwt-qt4/qwt-qt4-x86_64.install b/mingw-w64-qwt-qt4/qwt-qt4-x86_64.install new file mode 100644 index 0000000000..79bc4f1f17 --- /dev/null +++ b/mingw-w64-qwt-qt4/qwt-qt4-x86_64.install @@ -0,0 +1,10 @@ +post_install() { + cd mingw64 + local _prefix=$(pwd -W) + cd - + sed -s "s|/mingw32|${_prefix}|g" -i mingw64/share/qt4/mkspecs/features/qwtconfig.pri +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-qwt-qt4/qwtconfig-msys2.pri b/mingw-w64-qwt-qt4/qwtconfig-msys2.pri index 1d7ee23469..a62fea224f 100644 --- a/mingw-w64-qwt-qt4/qwtconfig-msys2.pri +++ b/mingw-w64-qwt-qt4/qwtconfig-msys2.pri @@ -9,7 +9,7 @@ QWT_VER_MAJ = 6 QWT_VER_MIN = 1 -QWT_VER_PAT = 0 +QWT_VER_PAT = 2 QWT_VERSION = $${QWT_VER_MAJ}.$${QWT_VER_MIN}.$${QWT_VER_PAT} ###################################################################### @@ -27,7 +27,7 @@ QWT_INSTALL_LIBS = $${QWT_INSTALL_PREFIX}/lib # Designer plugin ###################################################################### -QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/plugins/designer +QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/share/qt4/plugins/designer ###################################################################### # Features @@ -41,7 +41,7 @@ QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/plugins/designer # with every Qt upgrade. ###################################################################### -QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/mkspecs/features +QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/share/qt4/mkspecs/features ###################################################################### # Build the static/shared libraries. From b002d370f139d4795d30e33e3a130dec33c81b80 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 3 Jun 2015 12:44:50 +0300 Subject: [PATCH 1093/2060] qxmmp: Update to 0.8.3 --- mingw-w64-qxmpp-qt4/PKGBUILD | 33 ++++++++++----------------------- mingw-w64-qxmpp/PKGBUILD | 29 ++++++++--------------------- 2 files changed, 18 insertions(+), 44 deletions(-) diff --git a/mingw-w64-qxmpp-qt4/PKGBUILD b/mingw-w64-qxmpp-qt4/PKGBUILD index 18573c3b74..c585150fe9 100644 --- a/mingw-w64-qxmpp-qt4/PKGBUILD +++ b/mingw-w64-qxmpp-qt4/PKGBUILD @@ -2,36 +2,29 @@ # Contributor: AlexWMF _realname=qxmpp - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=0.8.0 +pkgver=0.8.3 pkgrel=1 pkgdesc="Cross-platform C++ XMPP client and server library" arch=('any') license=("LGPL") -url="http://code.google.com/p/qxmpp" +url="https://github.com/qxmpp-project/qxmpp" depends=("${MINGW_PACKAGE_PREFIX}-qt4" "${MINGW_PACKAGE_PREFIX}-speex" "${MINGW_PACKAGE_PREFIX}-libtheora" "${MINGW_PACKAGE_PREFIX}-libvpx") - -makedepends=("${MINGW_PACKAGE_PREFIX}-qt4") - - -options=(!strip staticlibs !buildflags) - +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-make") +options=(!strip staticlibs) source=("${_realname}-$pkgver".tar.gz::"https://github.com/qxmpp-project/${_realname}/archive/v${pkgver}.tar.gz") -md5sums=('04e532c807e749a24a7eafefdc31f6d4') +md5sums=('e945edf90eafbc8fcaaa9dde1a7b357a') build() { cd ${srcdir}/${_realname}-${pkgver} mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) ${MINGW_PREFIX}/bin/qmake \ PREFIX=${PREFIX_WIN} \ @@ -41,24 +34,18 @@ build() { "CONFIG+=release" \ qxmpp.pro - make ${MAKEFLAGS} # VERBOSE=1 + ${MINGW_PREFIX}/bin/mingw32-make # VERBOSE=1 } package() { cd ${srcdir}/${_realname}-${pkgver} - make install + ${MINGW_PREFIX}/bin/mingw32-make install mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) + local PREFIX_DEP=$(cygpath -am ${MINGW_PREFIX}) - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEP=`pwd -W` - popd > /dev/null - - echo "PREFIX_DEP=${PREFIX_DEP}" sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/qxmpp.pc sed -s "s|${PREFIX_DEP}|${MINGW_PREFIX}|gi" \ diff --git a/mingw-w64-qxmpp/PKGBUILD b/mingw-w64-qxmpp/PKGBUILD index 25bace8ec9..94f08c236f 100644 --- a/mingw-w64-qxmpp/PKGBUILD +++ b/mingw-w64-qxmpp/PKGBUILD @@ -2,35 +2,27 @@ # Contributor: AlexWMF _realname=qxmpp - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" - -pkgver=0.8.0 +pkgver=0.8.3 pkgrel=1 pkgdesc="Cross-platform C++ XMPP client and server library" arch=('any') license=("LGPL") -url="http://code.google.com/p/qxmpp" +url="https://github.com/qxmpp-project/qxmpp" depends=("${MINGW_PACKAGE_PREFIX}-qt5" "${MINGW_PACKAGE_PREFIX}-speex" "${MINGW_PACKAGE_PREFIX}-libtheora" "${MINGW_PACKAGE_PREFIX}-libvpx") - makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") - - -options=(!strip staticlibs !buildflags) - +options=(!strip staticlibs) source=("${_realname}-$pkgver".tar.gz::"https://github.com/qxmpp-project/${_realname}/archive/v${pkgver}.tar.gz") -md5sums=('04e532c807e749a24a7eafefdc31f6d4') +md5sums=('e945edf90eafbc8fcaaa9dde1a7b357a') build() { cd ${srcdir}/${_realname}-${pkgver} mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) ${MINGW_PREFIX}/bin/qmake \ PREFIX=${PREFIX_WIN} \ @@ -40,7 +32,7 @@ build() { "CONFIG+=release" \ qxmpp.pro - make ${MAKEFLAGS} # VERBOSE=1 + make # VERBOSE=1 } package() { @@ -49,13 +41,8 @@ package() { mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEP=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) + local PREFIX_DEP=$(cygpath -am ${MINGW_PREFIX}) echo "PREFIX_DEP=${PREFIX_DEP}" sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ From 7aca79ee0f05f059bd108493de4821ad96e99a65 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 3 Jun 2015 12:45:33 +0300 Subject: [PATCH 1094/2060] qjson-qt4: Rebuild. --- mingw-w64-qjson-qt4/PKGBUILD | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/mingw-w64-qjson-qt4/PKGBUILD b/mingw-w64-qjson-qt4/PKGBUILD index 3992ff9042..49f17e5c3a 100644 --- a/mingw-w64-qjson-qt4/PKGBUILD +++ b/mingw-w64-qjson-qt4/PKGBUILD @@ -4,16 +4,15 @@ _realname=qjson pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" pkgver=0.8.1 -pkgrel=1 +pkgrel=2 pkgdesc="QJson is a qt-based library that maps JSON data to QVariant objects (mingw-w64)" arch=('any') license=('GPL') url="http://qjson.sourceforge.net" depends=("${MINGW_PACKAGE_PREFIX}-qt4") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") install=${_realname}-qt4-${CARCH}.install options=(!strip staticlibs !buildflags) - source=(${_realname}-${pkgver}.tar.gz::"https://github.com/flavio/${_realname}/archive/${pkgver}.tar.gz") md5sums=('4eef13da988edf8f91c260a3e1baeea9') @@ -34,9 +33,7 @@ package() { cd $srcdir/build-${MINGW_CHOST} make install - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}/*.cmake; do sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} From a0c978e306a2278288f93fcfaa85d68f00440bd5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 3 Jun 2015 12:56:05 +0300 Subject: [PATCH 1095/2060] qca-qt4: Update to git SHA [4fd11c4] --- mingw-w64-qca-qt4-git/PKGBUILD | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/mingw-w64-qca-qt4-git/PKGBUILD b/mingw-w64-qca-qt4-git/PKGBUILD index 1ed0b56588..61b8ffca58 100644 --- a/mingw-w64-qca-qt4-git/PKGBUILD +++ b/mingw-w64-qca-qt4-git/PKGBUILD @@ -2,20 +2,19 @@ _realname=qca pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4-git" -pkgver=2212.e57f8e7 +pkgver=2219.4fd11c4 pkgrel=1 -pkgdesc="Qt Cryptographic Architecture" +pkgdesc="Qt Cryptographic Architecture (mingw-w64)" arch=('any') url="http://delta.affinix.com/qca/" license=('LGPL') -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-qt5") -makedepends=("${MINGW_PACKAGE_PREFIX}-qt4" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-openssl" +makedepends=("${MINGW_PACKAGE_PREFIX}-cyrus-sasl" "${MINGW_PACKAGE_PREFIX}-gnupg" "${MINGW_PACKAGE_PREFIX}-libgcrypt" - "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" + "${MINGW_PACKAGE_PREFIX}-make" "${MINGW_PACKAGE_PREFIX}-nss" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-pkg-config" "git") depends=("${MINGW_PACKAGE_PREFIX}-qt4") install=${_realname}-qt4-git-${CARCH}.install @@ -55,16 +54,14 @@ build() { } package() { - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_DEP=`pwd -W` - popd > /dev/null - cd ${srcdir}/build-${MINGW_CHOST} make INSTALL_ROOT="${pkgdir}" install - sed -s "s|${PREFIX_DEP}|${MINGW_PREFIX}|g" \ + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) + + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/mkspecs/features/crypto.prf for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/Qca/*.cmake; do - sed -s "s|${PREFIX_DEP}|${MINGW_PREFIX}|g" -i ${f} + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} done } From 543c2f356f56f411976ef489e70f39793719e4b2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 3 Jun 2015 13:34:19 +0300 Subject: [PATCH 1096/2060] poppler-qt4: Update to 0.33.0 --- mingw-w64-poppler-qt4/PKGBUILD | 40 +++++++++++------------ mingw-w64-poppler-qt4/mingw-no-fpic.patch | 15 --------- 2 files changed, 19 insertions(+), 36 deletions(-) delete mode 100644 mingw-w64-poppler-qt4/mingw-no-fpic.patch diff --git a/mingw-w64-poppler-qt4/PKGBUILD b/mingw-w64-poppler-qt4/PKGBUILD index d0c286ea69..06079db7dc 100644 --- a/mingw-w64-poppler-qt4/PKGBUILD +++ b/mingw-w64-poppler-qt4/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=poppler - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" -pkgver=0.26.3 +pkgver=0.33.0 pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') @@ -15,39 +14,37 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-qt4") -depends=("${MINGW_PACKAGE_PREFIX}-icu" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-curl" - "${MINGW_PACKAGE_PREFIX}-openjpeg" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-poppler-data") +depends=("${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-icu" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-openjpeg" + "${MINGW_PACKAGE_PREFIX}-poppler-data" + "${MINGW_PACKAGE_PREFIX}-zlib") optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" "${MINGW_PACKAGE_PREFIX}-qt4: libpoppler-qt4") options=('strip' 'staticlibs') -source=("http://poppler.freedesktop.org/poppler-${pkgver}.tar.xz" - "give-cc-to-gir-scanner.mingw.patch" - "mingw-no-fpic.patch") -md5sums=('e101f6653f9f68ab63dac63ec34801d1' - '727c1b414987f6ee2ba841d9db57a967' - 'c319527f31989e1eee561f008b649500') +source=("http://poppler.freedesktop.org/${_realname}-${pkgver}.tar.xz" + "give-cc-to-gir-scanner.mingw.patch") +md5sums=('69927d1614d6704021c0b0dd0ee6a852' + '727c1b414987f6ee2ba841d9db57a967') prepare() { - cd "$srcdir/poppler-$pkgver" + cd "$srcdir/${_realname}-$pkgver" patch -p1 -i "$srcdir/give-cc-to-gir-scanner.mingw.patch" - patch -p1 -i "$srcdir/mingw-no-fpic.patch" #sed -i -e '/AC_PATH_XTRA/d' configure.ac #sed -i "s:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:" configure.ac autoreconf -fi } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -58,6 +55,7 @@ build() { --enable-utils \ --disable-gtk-doc-html \ --with-font-configuration=win32 + make } diff --git a/mingw-w64-poppler-qt4/mingw-no-fpic.patch b/mingw-w64-poppler-qt4/mingw-no-fpic.patch deleted file mode 100644 index c5ae75f119..0000000000 --- a/mingw-w64-poppler-qt4/mingw-no-fpic.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- poppler-0.26.2/configure.ac.orig 2014-07-15 00:13:26.169600000 +0400 -+++ poppler-0.26.2/configure.ac 2014-07-15 00:15:06.992600000 +0400 -@@ -812,7 +812,11 @@ - -Wmissing-format-attribute -fno-exceptions -fno-check-new \ - -fno-common $CXXFLAGS" ;; - esac --CXXFLAGS="-fPIC $CXXFLAGS"; -+case "$host_os" in -+ mingw* | cygwin*) ;; -+ *) -+ CXXFLAGS="-fPIC $CXXFLAGS" ;; -+esac - - case `$PKG_CONFIG --version` in - 0.?|0.1[0-7]) From 74ad68fce3ca996b8f37eabd3c371c6478db91cb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Jun 2015 10:10:03 +0300 Subject: [PATCH 1097/2060] qt4: more configure fixes. --- mingw-w64-qt4/PKGBUILD | 9 ++- mingw-w64-qt4/qt-4.8.7-mingw-configure.patch | 63 ++++++++++++++++---- 2 files changed, 59 insertions(+), 13 deletions(-) diff --git a/mingw-w64-qt4/PKGBUILD b/mingw-w64-qt4/PKGBUILD index 3383c95fd3..8289938f0b 100644 --- a/mingw-w64-qt4/PKGBUILD +++ b/mingw-w64-qt4/PKGBUILD @@ -88,7 +88,7 @@ md5sums=('d990ee66bf7ab0c785589776f35ba6ad' '68657fc5b131e2c5e3532b61e2c3da42' '562ababd98ecca9e3a6cbc9b70e8f7f9' '49c33922e8f3c506cb7cc15cbe9b4a0a' - 'deee6f532968c1d8bb3d143604d44091' + '0f179f2ea5740f97345e10329c75d406' 'fc3b3f45db0eda55d429310faf529ae9') prepare() { @@ -170,6 +170,7 @@ build() { -plugin-sql-sqlite \ -plugin-sql-odbc \ -fontconfig \ + -freetype \ -openssl \ -dbus \ -shared \ @@ -183,7 +184,8 @@ build() { -xmlpatterns \ -multimedia \ -audio-backend \ - -no-phonon \ + -phonon \ + -phonon-backend \ -javascript-jit \ -qt-libmng \ -system-zlib \ @@ -191,6 +193,7 @@ build() { -system-libpng \ -system-libjpeg \ -system-sqlite \ + -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-neon \ -nomake tests \ -nomake demos \ -nomake examples \ @@ -199,7 +202,7 @@ build() { ${pkg_conf_inc} # Fix building - cp -rf mkspecs ${pkgdir}${MINGW_PREFIX}/ + #cp -rf mkspecs ${pkgdir}${MINGW_PREFIX}/ make diff --git a/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch index 8b3d0ed7d7..c6ebfc9d56 100644 --- a/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch +++ b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch @@ -1,28 +1,54 @@ ---- a/configure 2015-05-27 14:41:26.622651400 +0300 -+++ b/configure 2015-05-27 14:44:05.788194400 +0300 -@@ -48,9 +48,10 @@ +--- qt-everywhere-opensource-src-4.8.7/configure.orig 2015-05-07 17:14:56.000000000 +0300 ++++ qt-everywhere-opensource-src-4.8.7/configure 2015-06-03 15:18:52.103556600 +0300 +@@ -48,9 +48,19 @@ relconf=`basename $0` # the directory of this script is the "source tree" relpath=`dirname $0` -relpath=`(cd "$relpath"; /bin/pwd)` -+relpath=$(cygpath -ma "$relpath") -+relpath=${relpath%/} ++if [ -n "$MSYSTEM" ]; then ++ relpath=$(cygpath -ma "$relpath") ++ relpath=${relpath%/} ++else ++ relpath=`(cd "$relpath"; /bin/pwd)` ++fi # the current directory is the "build tree" or "object tree" -outpath=`/bin/pwd` -+outpath=$(cygpath -ma $(/bin/pwd)) ++if [ -n "$MSYSTEM" ]; then ++ outpath=$(cygpath -ma $(/bin/pwd)) ++ outpath=${outpath%/} ++else ++ outpath=`/bin/pwd` ++fi #license file location LICENSE_FILE="$QT_LICENSE_FILE" -@@ -1376,7 +1378,7 @@ +@@ -1376,7 +1386,11 @@ CFG_PSQL_CONFIG="$VAL" ;; prefix) - QT_INSTALL_PREFIX="$VAL" -+ QT_INSTALL_PREFIX=$(cygpath -ma "$VAL") ++ if [ -n "$MSYSTEM" ]; then ++ QT_INSTALL_PREFIX=$(cygpath -ma "$VAL") ++ else ++ QT_INSTALL_PREFIX="$VAL" ++ fi ;; hostprefix) QT_HOST_PREFIX="$VAL" -@@ -3754,6 +3756,8 @@ +@@ -2966,6 +2776,12 @@ + - Also available for Reliant UNIX: reliant-cds-64 + " + ;; ++ MSYS*:* | MINGW*:*) ++ PLATFORM=win32-g++ ++ if [ -z "$XPLATFORM" ]; then ++ XPLATFORM="win32-g++" ++ fi ++ ;; + CYGWIN*:*) + PLATFORM=cygwin-g++ + ;; +@@ -3754,6 +3774,8 @@ if [ -z "$QT_INSTALL_SETTINGS" ]; then #default if [ "$PLATFORM_MAC" = "yes" ]; then QT_INSTALL_SETTINGS=/Library/Preferences/Qt @@ -31,7 +57,24 @@ else QT_INSTALL_SETTINGS=/etc/xdg fi -@@ -4953,7 +4953,11 @@ +@@ -4943,7 +4965,15 @@ + + #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured + rm -rf mkspecs/default +- ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default ++ if [ "$XPLATFORM_MINGW" = "yes" ]; then ++ mkdir -p mkspecs/default ++ _spec=$(echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,") ++ echo "QMAKESPEC_ORIGINAL=$XQMAKESPEC" > mkspecs/default/qmake.conf ++ echo "include(../${_spec}/qmake.conf)" >> mkspecs/default/qmake.conf ++ echo "#include \"../${_spec}/qplatformdefs.conf\"" > mkspecs/default/qplatformdefs.h ++ else ++ ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default ++ fi + # fix makefiles + for mkfile in GNUmakefile Makefile; do + EXTRA_LFLAGS= +@@ -4953,7 +4985,11 @@ # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then # (cd qmake && qmake) >/dev/null 2>&1 && continue # fi From 798f9ff89fbfa0dea0a98cf8f978a5083c3cf8ad Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Jun 2015 10:17:52 +0300 Subject: [PATCH 1098/2060] kqoauth-qt4: Rebuild. --- mingw-w64-kqoauth-qt4/PKGBUILD | 18 ++++++------------ mingw-w64-kqoauth-qt4/src_pro.patch | 2 +- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/mingw-w64-kqoauth-qt4/PKGBUILD b/mingw-w64-kqoauth-qt4/PKGBUILD index 9ea8fe16f6..193c1cf0da 100644 --- a/mingw-w64-kqoauth-qt4/PKGBUILD +++ b/mingw-w64-kqoauth-qt4/PKGBUILD @@ -1,11 +1,9 @@ # Maintainer: AlexWMF _realname=kqoauth - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" - pkgver=0.98 -pkgrel=1 +pkgrel=2 pkgdesc="kQOAuth is a library written in C++ for Qt that implements the OAuth 1.0 authentication specification RFC 5849." arch=('any') license=("custom:$pkgname") @@ -13,14 +11,12 @@ url="https://github.com/kypeli/kQOAuth" conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-qt4") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") - -options=(strip staticlibs !buildflags) - +options=(strip staticlibs) source=(${_realname}-${pkgver}.tar.gz::"https://github.com/kypeli/kQOAuth/archive/${pkgver}.tar.gz" src_pro.patch pcfile_libname.patch) md5sums=('0ce649a1da4ee458dc0ce0d6ca7b26ff' - 'db3bd140361491f2a2192bf856e3722d' + 'ba2a27ac693c615ccaab9cbf95e989c2' 'a1121e9f81191bde7f80eda22bcde9c8') prepare() { @@ -33,16 +29,14 @@ build() { cd ${srcdir}/${_realname}-${pkgver} mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) pushd src > /dev/null ./pcfile.sh ${MINGW_PREFIX} ${pkgver} popd > /dev/null - ${MINGW_PREFIX}/bin/qmake PREFIX=${PREFIX_WIN} kqoauth.pro + ${MINGW_PREFIX}/bin/qmake -d PREFIX=${PREFIX_WIN} kqoauth.pro - make ${MAKEFLAGS} # VERBOSE=1 + make -j1 # VERBOSE=1 } package() { diff --git a/mingw-w64-kqoauth-qt4/src_pro.patch b/mingw-w64-kqoauth-qt4/src_pro.patch index c4f4f47c66..af386fdca8 100644 --- a/mingw-w64-kqoauth-qt4/src_pro.patch +++ b/mingw-w64-kqoauth-qt4/src_pro.patch @@ -22,7 +22,7 @@ postinstall.extra = install_name_tool -id $${target.path}/$${QMAKE_FRAMEWORK_BUNDLE_NAME}.framework/Versions/0/$${TARGET} $${target.path}/$${QMAKE_FRAMEWORK_BUNDLE_NAME}.framework/Versions/0/$${TARGET} } -else:unix { -+else:unix|win32-g++ { ++else:if(unix|win32-g++) { isEmpty( PREFIX ):INSTALL_PREFIX = /usr else:INSTALL_PREFIX = $${PREFIX} From 1454c1e6500e2b1fbaae483a98617ef1400a98a9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Jun 2015 12:59:14 +0300 Subject: [PATCH 1099/2060] qca-qt4: Fix files install. --- mingw-w64-qca-qt4-git/PKGBUILD | 9 ++++++--- mingw-w64-qca-qt4-git/qt4-custom-dirs.patch | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-qca-qt4-git/qt4-custom-dirs.patch diff --git a/mingw-w64-qca-qt4-git/PKGBUILD b/mingw-w64-qca-qt4-git/PKGBUILD index 61b8ffca58..7d241675bf 100644 --- a/mingw-w64-qca-qt4-git/PKGBUILD +++ b/mingw-w64-qca-qt4-git/PKGBUILD @@ -20,10 +20,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt4") install=${_realname}-qt4-git-${CARCH}.install source=("${_realname}"::"git://anongit.kde.org/qca.git" "cyrus_sasl_linking.patch" - "find_nss_cmake.patch") + "find_nss_cmake.patch" + "qt4-custom-dirs.patch") md5sums=('SKIP' '89d537c0b449408685ff48f401239544' - '2ce45122eba6d2518f773bc4c5934e32') + '2ce45122eba6d2518f773bc4c5934e32' + 'db34acf7ee14dd1c8bfe78beedeb5734') pkgver() { cd ${srcdir}/${_realname} @@ -34,6 +36,7 @@ prepare() { cd "${srcdir}/${_realname}" patch -p1 -i ${srcdir}/cyrus_sasl_linking.patch patch -p1 -i ${srcdir}/find_nss_cmake.patch + patch -p1 -i ${srcdir}/qt4-custom-dirs.patch } build() { @@ -60,7 +63,7 @@ package() { local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/mkspecs/features/crypto.prf + -i ${pkgdir}${MINGW_PREFIX}/share/qt4/mkspecs/features/crypto.prf for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/Qca/*.cmake; do sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} done diff --git a/mingw-w64-qca-qt4-git/qt4-custom-dirs.patch b/mingw-w64-qca-qt4-git/qt4-custom-dirs.patch new file mode 100644 index 0000000000..28e802db49 --- /dev/null +++ b/mingw-w64-qca-qt4-git/qt4-custom-dirs.patch @@ -0,0 +1,21 @@ +--- qca/CMakeLists.txt.orig 2014-12-13 15:22:53.153623400 +0300 ++++ qca/CMakeLists.txt 2014-12-13 15:24:46.642114600 +0300 +@@ -183,7 +183,7 @@ + set(QCA_PLUGINS_INSTALL_DIR "${LIB_INSTALL_DIR}/${QCA_LIB_NAME}" CACHE PATH "Directory where qca plugins will install") + set(QCA_BINARY_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Directory where qca plugins will install") + set(QCA_LIBRARY_INSTALL_DIR "${LIB_INSTALL_DIR}" CACHE PATH "Directory where qca library will install") +- set(QCA_FEATURE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/mkspecs/features" CACHE PATH "Directory where qca feature file will install") ++ set(QCA_FEATURE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/qt4/mkspecs/features" CACHE PATH "Directory where qca feature file will install") + if(NOT QCA_SUFFIX) + set(QCA_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Directory where qca public headers will install") + set(QCA_PRIVATE_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Directory where qca headers will install") +--- qca/cmake/modules/QcaMacro.cmake.orig 2014-12-13 15:22:53.153623400 +0300 ++++ qca/cmake/modules/QcaMacro.cmake 2014-12-13 15:24:46.642114600 +0300 +@@ -28,6 +28,7 @@ + MACRO(SETUP_QT4_DIRS) + _qt4_query_qmake(QT_INSTALL_PREFIX QT_PREFIX_DIR) + _qt4_query_qmake(QT_INSTALL_DATA QT_DATA_DIR) ++ SET( QT_MKSPECS_DIR "${QT_INSTALL_PREFIX}/share/qt4/mkspecs" ) + ENDMACRO(SETUP_QT4_DIRS) + ENDIF() + From fd1ddec2ca4fb36aeeda08918f8fd0f93ae46d74 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Jun 2015 13:01:41 +0300 Subject: [PATCH 1100/2060] kqoauth-qt4: Fix install files. --- mingw-w64-kqoauth-qt4/PKGBUILD | 2 +- mingw-w64-kqoauth-qt4/src_pro.patch | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-kqoauth-qt4/PKGBUILD b/mingw-w64-kqoauth-qt4/PKGBUILD index 193c1cf0da..f137b8f693 100644 --- a/mingw-w64-kqoauth-qt4/PKGBUILD +++ b/mingw-w64-kqoauth-qt4/PKGBUILD @@ -16,7 +16,7 @@ source=(${_realname}-${pkgver}.tar.gz::"https://github.com/kypeli/kQOAuth/archiv src_pro.patch pcfile_libname.patch) md5sums=('0ce649a1da4ee458dc0ce0d6ca7b26ff' - 'ba2a27ac693c615ccaab9cbf95e989c2' + '07ce6cadfc27b1b46425fdd4c365950b' 'a1121e9f81191bde7f80eda22bcde9c8') prepare() { diff --git a/mingw-w64-kqoauth-qt4/src_pro.patch b/mingw-w64-kqoauth-qt4/src_pro.patch index af386fdca8..0c1a2fbf58 100644 --- a/mingw-w64-kqoauth-qt4/src_pro.patch +++ b/mingw-w64-kqoauth-qt4/src_pro.patch @@ -17,7 +17,7 @@ PUBLIC_HEADERS += kqoauthmanager.h \ kqoauthrequest.h \ -@@ -67,12 +68,12 @@ +@@ -67,12 +68,13 @@ postinstall.path = target.path postinstall.extra = install_name_tool -id $${target.path}/$${QMAKE_FRAMEWORK_BUNDLE_NAME}.framework/Versions/0/$${TARGET} $${target.path}/$${QMAKE_FRAMEWORK_BUNDLE_NAME}.framework/Versions/0/$${TARGET} } @@ -29,6 +29,7 @@ # this creates a pkgconfig file - system( ./pcfile.sh $${INSTALL_PREFIX} $${VERSION} ) + #system( ./pcfile.sh $${INSTALL_PREFIX} $${VERSION} ) ++ features.path = $${INSTALL_PREFIX}/share/qt4/mkspecs/features pkgconfig.files = kqoauth.pc target.path = $${INSTALL_PREFIX}/lib From cfe84df66e35649b8a97b11c529f5eb369b7bc57 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Jun 2015 13:54:59 +0300 Subject: [PATCH 1101/2060] gnu-cobol-svn: Update to revision 599 --- mingw-w64-gnu-cobol-svn/PKGBUILD | 15 ++++++--------- .../fix-including-headers.patch | 9 --------- 2 files changed, 6 insertions(+), 18 deletions(-) delete mode 100644 mingw-w64-gnu-cobol-svn/fix-including-headers.patch diff --git a/mingw-w64-gnu-cobol-svn/PKGBUILD b/mingw-w64-gnu-cobol-svn/PKGBUILD index 0a12f1f957..1ba45a5ee7 100644 --- a/mingw-w64-gnu-cobol-svn/PKGBUILD +++ b/mingw-w64-gnu-cobol-svn/PKGBUILD @@ -2,10 +2,10 @@ # Contributor: Jürgen Pfeifer _realname=gnu-cobol - pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}-svn +_base_ver=2.0 pkgrel=1 -pkgver=r275 +pkgver=2.0.r599 pkgdesc="GNU Cobol is a free, modern COBOL compiler" arch=('any') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -20,20 +20,17 @@ makedepends=("subversion" depends=("${MINGW_PACKAGE_PREFIX}-db" "${MINGW_PACKAGE_PREFIX}-gmp" "${MINGW_PACKAGE_PREFIX}-ncurses") -source=("$_realname::svn+http://svn.code.sf.net/p/open-cobol/code/branches/gnu-cobol-2.0" - fix-including-headers.patch) -md5sums=('SKIP' - '6f8310009330fc0b5fba616cfab5c07b') +source=("$_realname::svn+http://svn.code.sf.net/p/open-cobol/code/branches/gnu-cobol-2.0") +md5sums=('SKIP') pkgver() { cd "$srcdir/$_realname" local ver="$(svnversion)" - printf "r%s" "${ver//[[:alpha:]]}" + printf "%s.r%s" "${_base_ver}" "${ver//[[:alpha:]]}" } prepare() { cd ${srcdir}/${_realname} - patch -p1 -i ${srcdir}/fix-including-headers.patch autoreconf -fi } @@ -51,7 +48,7 @@ build() { --enable-shared \ --enable-static \ --disable-rpath - make + make -j1 } package() { diff --git a/mingw-w64-gnu-cobol-svn/fix-including-headers.patch b/mingw-w64-gnu-cobol-svn/fix-including-headers.patch deleted file mode 100644 index 08761d21e1..0000000000 --- a/mingw-w64-gnu-cobol-svn/fix-including-headers.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- gnu-cobol/extras/Makefile.am.orig 2014-04-04 23:43:39.838600000 +0400 -+++ gnu-cobol/extras/Makefile.am 2014-04-05 00:07:39.107200000 +0400 -@@ -26,5 +26,5 @@ - - CBL_OC_DUMP.$(COB_MODULE_EXT): CBL_OC_DUMP.cob $(top_builddir)/cobc/cobc - . $(top_builddir)/tests/atconfig; . $(top_builddir)/tests/atlocal; \ -- cobc -m -Wall -std=mf -O $(top_srcdir)/extras/CBL_OC_DUMP.cob -+ cobc -m -Wall -std=mf -I$(top_srcdir) -O $(top_srcdir)/extras/CBL_OC_DUMP.cob - From 4317aa34635fb9454e5291ea648c3f493af55ee9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 4 Jun 2015 20:00:20 +0300 Subject: [PATCH 1102/2060] SDL2_{image,ttf} : Rebuild --- mingw-w64-SDL2_image/PKGBUILD | 10 ++++++---- mingw-w64-SDL2_ttf/PKGBUILD | 9 ++++++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/mingw-w64-SDL2_image/PKGBUILD b/mingw-w64-SDL2_image/PKGBUILD index 7b0b776933..1fd979a08a 100644 --- a/mingw-w64-SDL2_image/PKGBUILD +++ b/mingw-w64-SDL2_image/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Marty Plummer (The_NetZ) _realname=SDL2_image - pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=2.0.0 -pkgrel=2 +pkgrel=3 pkgdesc=("A simple library to load images of various formats as SDL surfaces (Version 2)") arch=('any') url="http://www.libsdl.org/projects/SDL_image" @@ -19,13 +18,16 @@ source=("${url}/release/${_realname}-${pkgver}.tar.gz") sha1sums=('20b1b0db9dd540d6d5e40c7da8a39c6a81248865') build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}/" "${srcdir}"/${_realname}-${pkgver}/configure \ - --disable-static \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} + --host=${MINGW_CHOST} \ + --enable-static \ + --enable-shared + make } diff --git a/mingw-w64-SDL2_ttf/PKGBUILD b/mingw-w64-SDL2_ttf/PKGBUILD index 9d0877af63..93d8a5507a 100644 --- a/mingw-w64-SDL2_ttf/PKGBUILD +++ b/mingw-w64-SDL2_ttf/PKGBUILD @@ -2,10 +2,9 @@ # Contributor: Sven-Hendrik Haase _realname=SDL2_ttf - pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=2.0.12 -pkgrel=1 +pkgrel=2 pkgdesc="A library that allows you to use TrueType fonts in your SDL applications (Version 2)" arch=('any') url="http://www.libsdl.org/projects/SDL_ttf" @@ -17,6 +16,7 @@ source=("$url/release/${_realname}-${pkgver}.tar.gz") md5sums=('79787216b56cb4707f39d538f2225e00') build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} @@ -25,7 +25,10 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + make } From 70664015c0c6c4de2e35df4ca5c484cc6f5c534d Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Thu, 4 Jun 2015 22:29:16 +0100 Subject: [PATCH 1103/2060] llvm: gen correct asminfo for mingw-arm and cygwin-arm --- mingw-w64-clang/PKGBUILD | 5 +++- ...asminfo-for-mingw-arm-and-cygwin-arm.patch | 24 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 30fa34173c..adb34d3d86 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -8,7 +8,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" #"${MINGW_PACKAGE_PREFIX}-compiler-rt" ) pkgver=3.6.1 -pkgrel=2 +pkgrel=3 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -26,6 +26,7 @@ source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz{,.sig} http://llvm.org/releases/$pkgver/libcxx-$pkgver.src.tar.xz{,.sig} http://llvm.org/releases/$pkgver/clang-tools-extra-$pkgver.src.tar.xz{,.sig} http://llvm.org/releases/$pkgver/lldb-$pkgver.src.tar.xz{,.sig} + asminfo-for-mingw-arm-and-cygwin-arm.patch clang-mingw-driver.patch mingw-arm-and-cygwin-arm-target.patch llvm-3.5.0-fix-cmake-llvm-exports.patch) @@ -43,6 +44,7 @@ sha256sums=('2f00c615913aa0b56607ee1548936e60ad2aa89e6d56f23fb032a4463366fc7a' 'SKIP' 'cefb5c64e78e85ad05a06b80f017ccfe1208b74d3da34eb425c505c6fef9aaba' 'SKIP' + 'd52e3c0226bbedac412a69ac0cbb58f26c5546820240f59fa1dbb8e825ff7b6b' '7c9366df58b27378c104d37466caa761873440e5fbee707d3d22693add5d2cdb' '5727fb67902b9cb3ef4e1c57bf16128076911b8bf58357f65e5c5201a6b59629' '841a153d0e9d2d196ea5318388ff295e69c41547eb73b24edf92a1b2cc3cccdd') @@ -59,6 +61,7 @@ prepare() { [[ -d ${srcdir}/cfe-${pkgver} ]] || tar -xJvf ${srcdir}/cfe-${pkgver}.src.tar.xz -C ${srcdir} || true cd "${srcdir}/llvm-${pkgver}.src" + patch -p1 -i ${srcdir}/asminfo-for-mingw-arm-and-cygwin-arm cd "${srcdir}/cfe-${pkgver}.src" patch -p1 -i ${srcdir}/clang-mingw-driver.patch diff --git a/mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch b/mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch new file mode 100644 index 0000000000..0ee55a1a61 --- /dev/null +++ b/mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch @@ -0,0 +1,24 @@ +From 48c6c12896cce015e112aabb1e22ce7779139d44 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 4 Jun 2015 22:23:29 +0100 +Subject: asminfo for mingw arm and cygwin arm + + +diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp +index 92c4d6a..e518d2e 100644 +--- a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp ++++ b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp +@@ -282,7 +282,9 @@ static MCAsmInfo *createARMMCAsmInfo(const MCRegisterInfo &MRI, + MCAsmInfo *MAI; + if (TheTriple.isOSDarwin() || TheTriple.isOSBinFormatMachO()) + MAI = new ARMMCAsmInfoDarwin(TheTriple); +- else if (TheTriple.isWindowsItaniumEnvironment()) ++ else if (TheTriple.isWindowsItaniumEnvironment() || ++ TheTriple.isWindowsGNUEnvironment() || ++ TheTriple.isWindowsCygwinEnvironment()) + MAI = new ARMCOFFMCAsmInfoGNU(); + else if (TheTriple.isWindowsMSVCEnvironment()) + MAI = new ARMCOFFMCAsmInfoMicrosoft(); +-- +2.4.2 + From f1075eb4fbd37aaa7fd02560ba5674632a1f09ec Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Thu, 4 Jun 2015 20:04:46 -0300 Subject: [PATCH 1104/2060] drmingw-git: Update to latest with fix for .gnu_debuglink. --- mingw-w64-drmingw-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index ec92d80b6e..ada831ee6a 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=drmingw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r401.3deab5f +pkgver=r409.749fca8 pkgrel=1 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') From 626afb1a4164f3c98924fef2354f9e4a7fcc84be Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 5 Jun 2015 10:14:13 +0300 Subject: [PATCH 1105/2060] qtcreator: Update to 3.4.1 --- ...p-to-file-line-breakpoint-from-disas.patch | 68 -------------- ...h-when-using-simplified-project-view.patch | 90 ------------------- mingw-w64-qtcreator/PKGBUILD | 19 ++-- 3 files changed, 6 insertions(+), 171 deletions(-) delete mode 100644 mingw-w64-qtcreator/0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch delete mode 100644 mingw-w64-qtcreator/0001-Qbs-Do-not-crash-when-using-simplified-project-view.patch diff --git a/mingw-w64-qtcreator/0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch b/mingw-w64-qtcreator/0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch deleted file mode 100644 index ba463ee3fa..0000000000 --- a/mingw-w64-qtcreator/0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch +++ /dev/null @@ -1,68 +0,0 @@ -From eea8e932f3c3ca9157d961d57c80c5f297dff5c8 Mon Sep 17 00:00:00 2001 -From: hjk -Date: Fri, 17 Apr 2015 11:19:58 +0200 -Subject: [PATCH] Debugger: Fix jump to file/line breakpoint from disassembler - -Triggered by double-clicking a normal source file+line breakpoint -while looking at some disassembly: We want to jump to the original -source file in that case. - -Change-Id: Ia6eddcaf27e4160c7a989ab757315f5314f65d1e -Reviewed-by: Christian Stenger ---- - src/plugins/debugger/breakhandler.cpp | 19 ++++++++++++++++--- - 1 file changed, 16 insertions(+), 3 deletions(-) - -diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp -index ee60ba1..2334e45 100644 ---- a/src/plugins/debugger/breakhandler.cpp -+++ b/src/plugins/debugger/breakhandler.cpp -@@ -33,11 +33,18 @@ - #include "debuggeractions.h" - #include "debuggercore.h" - #include "debuggerengine.h" -+#include "debuggerinternalconstants.h" - #include "debuggerstringutils.h" - #include "simplifytype.h" - -+#include -+#include -+#include -+#include -+ - #include - #include -+#include - #include - #include - #include -@@ -50,6 +57,7 @@ - #include - #include - -+using namespace Core; - using namespace Utils; - - namespace Debugger { -@@ -1171,10 +1179,15 @@ void BreakHandler::timerEvent(QTimerEvent *event) - void Breakpoint::gotoLocation() const - { - if (DebuggerEngine *engine = currentEngine()) { -- if (b->m_params.type == BreakpointByAddress) -+ if (b->m_params.type == BreakpointByAddress) { - engine->gotoLocation(b->m_params.address); -- else -- engine->gotoLocation(Location(b->markerFileName(), b->markerLineNumber(), false)); -+ } else { -+ // Don't use gotoLocation as this ends up in disassembly -+ // if OperateByInstruction is on. -+ const QString file = QDir::cleanPath(b->markerFileName()); -+ IEditor *editor = EditorManager::openEditor(file); -+ editor->gotoLine(b->markerLineNumber(), 0); -+ } - } - } - --- -2.4.0 - diff --git a/mingw-w64-qtcreator/0001-Qbs-Do-not-crash-when-using-simplified-project-view.patch b/mingw-w64-qtcreator/0001-Qbs-Do-not-crash-when-using-simplified-project-view.patch deleted file mode 100644 index c62d9694a7..0000000000 --- a/mingw-w64-qtcreator/0001-Qbs-Do-not-crash-when-using-simplified-project-view.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 06615843df1541e67686f6a016f0c81e154c1869 Mon Sep 17 00:00:00 2001 -From: Tobias Hunger -Date: Tue, 23 Sep 2014 13:05:00 +0200 -Subject: [PATCH] Qbs: Do not crash when using simplified project view - -Root cause is trying to set the display name on a FolderNode that -is not in the tree yet. - -Allow setting the displayname in the constructor and use that new -constructor where it makes sense. - -Task-number: QTCREATORBUG-12897 -Change-Id: I907e48cac837966e38524bfe88a87ef17d93f0b2 -Reviewed-by: Daniel Teske ---- - src/plugins/projectexplorer/projectnodes.cpp | 6 ++++-- - src/plugins/projectexplorer/projectnodes.h | 3 ++- - src/plugins/qbsprojectmanager/qbsnodes.cpp | 9 +++++---- - 3 files changed, 11 insertions(+), 7 deletions(-) - -diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp -index c0a8a8e..b3bc123 100644 ---- a/src/plugins/projectexplorer/projectnodes.cpp -+++ b/src/plugins/projectexplorer/projectnodes.cpp -@@ -247,10 +247,12 @@ bool FileNode::isGenerated() const - - \sa ProjectExplorer::FileNode, ProjectExplorer::ProjectNode - */ --FolderNode::FolderNode(const QString &folderPath, NodeType nodeType) : -+FolderNode::FolderNode(const QString &folderPath, NodeType nodeType, const QString &displayName) : - Node(nodeType, folderPath), -- m_displayName(QDir::toNativeSeparators(folderPath)) -+ m_displayName(displayName) - { -+ if (m_displayName.isEmpty()) -+ m_displayName = QDir::toNativeSeparators(folderPath); - } - - FolderNode::~FolderNode() -diff --git a/src/plugins/projectexplorer/projectnodes.h b/src/plugins/projectexplorer/projectnodes.h -index 8212e71..233f930 100644 ---- a/src/plugins/projectexplorer/projectnodes.h -+++ b/src/plugins/projectexplorer/projectnodes.h -@@ -162,7 +162,8 @@ private: - class PROJECTEXPLORER_EXPORT FolderNode : public Node { - Q_OBJECT - public: -- explicit FolderNode(const QString &folderPath, NodeType nodeType = FolderNodeType); -+ explicit FolderNode(const QString &folderPath, NodeType nodeType = FolderNodeType, -+ const QString &displayName = QString()); - virtual ~FolderNode(); - - QString displayName() const; -diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp -index ee63fbd..48af5cd 100644 ---- a/src/plugins/qbsprojectmanager/qbsnodes.cpp -+++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp -@@ -527,14 +527,15 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, - break; - } - if (!fn) { -- fn = new FolderNode(c->path()); -+ fn = new FolderNode(c->path(), ProjectExplorer::FolderNodeType, -+ displayNameFromPath(c->path(), baseDir)); - root->addFolderNodes(QList() << fn); - } else { - foldersToRemove.removeOne(fn); - if (updateExisting) - fn->emitNodeUpdated(); -+ fn->setDisplayName(displayNameFromPath(c->path(), baseDir)); - } -- fn->setDisplayName(displayNameFromPath(c->path(), baseDir)); - - setupFolder(fn, c, c->path(), updateExisting); - } -@@ -811,9 +812,9 @@ QbsProjectNode *QbsProjectNode::findProjectNode(const QString &name) - QbsRootProjectNode::QbsRootProjectNode(QbsProject *project) : - QbsProjectNode(project->projectFilePath().toString()), - m_project(project), -- m_buildSystemFiles(new ProjectExplorer::FolderNode(project->projectDirectory().toString())) -+ m_buildSystemFiles(new ProjectExplorer::FolderNode(project->projectDirectory().toString(), -+ ProjectExplorer::FolderNodeType, tr("Qbs files"))) - { -- m_buildSystemFiles->setDisplayName(tr("Qbs files")); - addFolderNodes(QList() << m_buildSystemFiles); - } - --- -2.1.2 - diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 47a93818a9..e30a90d13f 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -4,9 +4,9 @@ _realname=qt-creator pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" __pre= -_base_ver=3.4.0 +_base_ver=3.4.1 pkgver=${_base_ver}${_pre} -pkgrel=2 +pkgrel=1 pkgdesc='Cross-patform IDE (mingw-w64)' url='http://qt-project.org' install=qt-creator-${CARCH}.install @@ -28,11 +28,9 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-gdb: for the debugger" _pkgfqn="${_realname}-opensource-src-${_base_ver}${__pre}" source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_ver%.*}/${_base_ver}${__pre}/${_pkgfqn}.tar.gz http://download.qt-project.org/official_releases/qtcreator/${pkgver%.*}/${pkgver}/${_pkgfqn}.tar.gz - 0001-Qbs-Do-not-crash-when-using-simplified-project-view.patch 0001-autotools-Set-a-default-buildDir.patch 0002-Debugger-Handle-case-of-os.path.sep-being.patch 0002-autotools-Use-summaryInWorkdir.patch - 0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch qt-creator-3.2.0-Allow-iOS-plugin-on-any-platform.patch qt-creator-3.2.0-Define-QBS_INSTALL_DIR-as-relative-path.patch @@ -43,12 +41,10 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v qt-creator-3.3.0-abi-msys-is-Windows.patch qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch) noextract=(${_pkgfqn}.tar.gz) -sha256sums=('b80baf5be9b0421b3d951a8a0eb411a65cf008f4c753f5a80d205e90fa4fe112' - '18f59946054e667b56276f53ec544d4786c3c249fee6c0bd9b0b565ed4b7cf2d' +sha256sums=('029e22307e79c4fb3a34be854dedddaa56476c6c6374c312125b9302bcbc0fd9' '205d8637152d6e6e57c4a9d9c5146efa7fa16db5fb7b8cabc3bc5ded96823d8a' '6217d0682c40ac586205abc835490b36ac79525fdefde5afd66e3b02daabd8a0' '22253cf29a2c8effebb1cc8313a0f350cf993d7fc404763063e6bd8444fa61f1' - 'f5652fc21b0ad7463f0286143a970292e0b5d05c980206639dc8f939973a580b' '45b9fc82c7a9364450420920adcdb04a3b67eeb96f64733166da757a5ab91013' '96c14f54577bf6cadf5c12018745666a9e99cd8d6a876c29a28b13599a8cb368' '68133c95b70c1b54e55ab4c8b31023afe4ab9a33667e4510bda64c828b95e91e' @@ -58,21 +54,18 @@ sha256sums=('b80baf5be9b0421b3d951a8a0eb411a65cf008f4c753f5a80d205e90fa4fe112' '79fc4d2ef02ff8f458b1b330c683c2a86397f056369c90176a9ddbeba3b719fd' 'c4cae708825102d538e1ecb9a88ecb216d366feb779553a2e91f97c4b78f8427' 'b4cf07e2772b2ec6710ee7df6463feddb4195d65fa59e6c6095fbc0cb240417e') + prepare() { [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} tar -xzf ${srcdir}/${_pkgfqn}.tar.gz -C $srcdir || true cd ${srcdir}/${_pkgfqn} -# Not needed for > 3.2.2 -# patch -p1 -i "${srcdir}"/0001-Qbs-Do-not-crash-when-using-simplified-project-view.patch - -# Attempting to upstream: https://codereview.qt-project.org/#/c/94366/ + # Attempting to upstream: https://codereview.qt-project.org/#/c/94366/ patch -p1 -i "${srcdir}"/0001-autotools-Set-a-default-buildDir.patch patch -p1 -i "${srcdir}"/0002-Debugger-Handle-case-of-os.path.sep-being.patch -# patch -p1 -i "${srcdir}"/0002-autotools-Use-summaryInWorkdir.patch - patch -p1 -i "${srcdir}"/0001-Debugger-Fix-jump-to-file-line-breakpoint-from-disas.patch + # patch -p1 -i "${srcdir}"/0002-autotools-Use-summaryInWorkdir.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-Allow-iOS-plugin-on-any-platform.patch From a3946444f6f66e262cee66cb1856f191f104301e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 5 Jun 2015 10:50:22 +0300 Subject: [PATCH 1106/2060] postgresql: Update to 9.4.3 --- mingw-w64-postgresql/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-postgresql/PKGBUILD b/mingw-w64-postgresql/PKGBUILD index 2db7c2717a..c0646cbe6f 100644 --- a/mingw-w64-postgresql/PKGBUILD +++ b/mingw-w64-postgresql/PKGBUILD @@ -2,7 +2,7 @@ _realname=postgresql pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=9.4.2 +pkgver=9.4.3 pkgrel=1 pkgdesc="Libraries for use with PostgreSQL (mingw-w64)" arch=('any') @@ -29,7 +29,7 @@ source=("http://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.ta postgresql-9.4.1-pl-python.patch postgresql-9.4.1-pl-tcl.patch postgresql-9.4.1-mingw-enable-readline.patch) -md5sums=('b6369156607a4fd88f21af6fec0f30b9' +md5sums=('05217e0921b51fb886e9e50875776bf1' '1d1499234e555afa688f645ef3825450' '572932c6f0fc795aba4d5bb91e1fe4ba' '381c984fc2eb2c22c35aed62bedeb7fa' @@ -48,6 +48,7 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}" export PYTHON=${MINGW_PREFIX}/bin/python2 ../postgresql-$pkgver/configure \ From 57ded7b4d99de8695fc6edb05bbe452419699ec7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 5 Jun 2015 12:41:47 +0300 Subject: [PATCH 1107/2060] qt-installer-framework: Update to git SHA [6969b19] --- mingw-w64-qt-installer-framework/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-qt-installer-framework/PKGBUILD b/mingw-w64-qt-installer-framework/PKGBUILD index be618394fe..50be95fe79 100644 --- a/mingw-w64-qt-installer-framework/PKGBUILD +++ b/mingw-w64-qt-installer-framework/PKGBUILD @@ -3,7 +3,7 @@ _realname=installer-framework pkgname="${MINGW_PACKAGE_PREFIX}-qt-${_realname}-git" pkgdesc="The Qt Installer Framework used for the Qt SDK installer" -pkgver=r2630.ce703ed +pkgver=r2726.6969b19 pkgrel=1 arch=('any') url='http://qt-project.org/' From eac56150403d70098394ad5b05b5f81fe71eabc7 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Fri, 5 Jun 2015 16:30:57 +0100 Subject: [PATCH 1108/2060] llvm-svn: gen correct asminfo for mingw-arm and cygwin-arm --- ...asminfo-for-mingw-arm-and-cygwin-arm.patch | 24 +++++++++++++++++++ mingw-w64-clang-svn/PKGBUILD | 8 +++++-- 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-clang-svn/0003-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch diff --git a/mingw-w64-clang-svn/0003-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch b/mingw-w64-clang-svn/0003-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch new file mode 100644 index 0000000000..fc1ba6f53a --- /dev/null +++ b/mingw-w64-clang-svn/0003-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch @@ -0,0 +1,24 @@ +From 48c6c12896cce015e112aabb1e22ce7779139d44 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 4 Jun 2015 22:23:29 +0100 +Subject: [PATCH] Fix asminfo for mingw arm and cygwin arm + + +diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp +index 92c4d6a..e518d2e 100644 +--- a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp ++++ b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp +@@ -282,7 +282,9 @@ static MCAsmInfo *createARMMCAsmInfo(const MCRegisterInfo &MRI, + MCAsmInfo *MAI; + if (TheTriple.isOSDarwin() || TheTriple.isOSBinFormatMachO()) + MAI = new ARMMCAsmInfoDarwin(TheTriple); +- else if (TheTriple.isWindowsItaniumEnvironment()) ++ else if (TheTriple.isWindowsItaniumEnvironment() || ++ TheTriple.isWindowsGNUEnvironment() || ++ TheTriple.isWindowsCygwinEnvironment()) + MAI = new ARMCOFFMCAsmInfoGNU(); + else if (TheTriple.isWindowsMSVCEnvironment()) + MAI = new ARMCOFFMCAsmInfoMicrosoft(); +-- +2.4.2 + diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 71a10f8af9..407dbcade4 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -30,14 +30,16 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" #"testsuite"::"git+http://llvm.org/git/test-suite.git" #"libcxx"::"git+http://llvm.org/git/libcxx.git" 0001-Add-Clang-MinGW-w64-driver.patch - 0002-Fixup-all-windows-ARM-targets.patch) + 0002-Fixup-all-windows-ARM-targets.patch + 0003-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch) md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'dae2bcb5bb68ce01eb2f806c6fadccf5' - '6c31dc05b01f038d10ceb5e88c5fe9f5') + '6c31dc05b01f038d10ceb5e88c5fe9f5' + '9b93c8e61c7480c551564d06c08291aa') pkgver_internal() { if [ ! -d "$1" ]; then @@ -55,6 +57,8 @@ pkgver() { prepare() { cd "${srcdir}"/llvm + git am "${srcdir}"/0003-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch + # Fix docs installation directory sed -i 's:$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \ Makefile.config.in From b9f6e3b3ede7cb0a2e15dbbd461c0e787001b84c Mon Sep 17 00:00:00 2001 From: David Grayson Date: Sat, 6 Jun 2015 10:58:06 -0700 Subject: [PATCH 1109/2060] gegl-git fixes: * Added json-glib as a dependency to fix issue #656. * Added intltool as a build dependency (it provides IT_PROG_INTLTOOL). * Fixed the broken link to the project website. --- mingw-w64-gegl-git/PKGBUILD | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gegl-git/PKGBUILD b/mingw-w64-gegl-git/PKGBUILD index 61b1fb485a..0cf1fd3381 100644 --- a/mingw-w64-gegl-git/PKGBUILD +++ b/mingw-w64-gegl-git/PKGBUILD @@ -4,13 +4,14 @@ _realname=gegl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r6521.06aea8e +pkgver=r6592.8989a57 pkgrel=1 pkgdesc="Generic Graphics Library (mingw-w64)" arch=('any') -url="http://gegl.org/gegl/" +url="http://gegl.org/" license=("GPL-3.0+" "LGPL-3.0+") makedepends=("asciidoc" + "intltool" #"${MINGW_PACKAGE_PREFIX}-ffmpeg" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" @@ -28,6 +29,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-babl-git" "${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-gtk2" "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-json-glib" "${MINGW_PACKAGE_PREFIX}-libjpeg" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-librsvg" From 31d6e52623d5e8f25838d1de041bfdcff79f33dd Mon Sep 17 00:00:00 2001 From: David Grayson Date: Sat, 6 Jun 2015 12:47:09 -0700 Subject: [PATCH 1110/2060] Added a package for catch. --- mingw-w64-catch/.gitignore | 2 ++ mingw-w64-catch/PKGBUILD | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 mingw-w64-catch/.gitignore create mode 100644 mingw-w64-catch/PKGBUILD diff --git a/mingw-w64-catch/.gitignore b/mingw-w64-catch/.gitignore new file mode 100644 index 0000000000..d155f60450 --- /dev/null +++ b/mingw-w64-catch/.gitignore @@ -0,0 +1,2 @@ +catch.hpp +LICENSE_1_0.txt diff --git a/mingw-w64-catch/PKGBUILD b/mingw-w64-catch/PKGBUILD new file mode 100644 index 0000000000..5663db5c48 --- /dev/null +++ b/mingw-w64-catch/PKGBUILD @@ -0,0 +1,29 @@ +# Maintainer: David Grayson + +_realname=catch +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.1 +pkgrel=1 +pkgdesc="Multi-paradigm automated test framework for C++ and Objective-C." +arch=('any') +url='https://github.com/philsquared/Catch' +license=('custom') + +# The README says to get the latest version from the "develop" branch. +_src="https://raw.githubusercontent.com/philsquared/Catch/develop" + +source=( + "${_src}/single_include/catch.hpp" + "${_src}/LICENSE_1_0.txt" +) + +sha256sums=('d8d143fc91809792b961b62b1fcfc9c36023d8ca54173c337394e95c6b617095' + 'c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566') + +package() { + cd "${srcdir}" + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" + install -m644 LICENSE_1_0.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE_1_0.txt" + mkdir -p "${pkgdir}${MINGW_PREFIX}/include/" + install -m644 catch.hpp "${pkgdir}${MINGW_PREFIX}/include/" +} From cab0e644864387e770450559acc5a674d4b2c194 Mon Sep 17 00:00:00 2001 From: David Grayson Date: Sat, 6 Jun 2015 13:37:57 -0700 Subject: [PATCH 1111/2060] Added win7appid package. --- mingw-w64-win7appid/.gitignore | 1 + mingw-w64-win7appid/LICENSE.txt | 16 ++++++++++ mingw-w64-win7appid/PKGBUILD | 52 +++++++++++++++++++++++++++++++++ mingw-w64-win7appid/win7appid.1 | 39 +++++++++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 mingw-w64-win7appid/.gitignore create mode 100644 mingw-w64-win7appid/LICENSE.txt create mode 100644 mingw-w64-win7appid/PKGBUILD create mode 100644 mingw-w64-win7appid/win7appid.1 diff --git a/mingw-w64-win7appid/.gitignore b/mingw-w64-win7appid/.gitignore new file mode 100644 index 0000000000..393b3e189c --- /dev/null +++ b/mingw-w64-win7appid/.gitignore @@ -0,0 +1 @@ +Win7AppId.cpp diff --git a/mingw-w64-win7appid/LICENSE.txt b/mingw-w64-win7appid/LICENSE.txt new file mode 100644 index 0000000000..6d8c24631b --- /dev/null +++ b/mingw-w64-win7appid/LICENSE.txt @@ -0,0 +1,16 @@ +The author of the Win7AppId project neglected to include a proper license with the project, but the website links to http://opensource.org/licenses/BSD-3-Clause which has this template: + +---- + +Copyright (c) , +All rights reserved. + +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 and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/mingw-w64-win7appid/PKGBUILD b/mingw-w64-win7appid/PKGBUILD new file mode 100644 index 0000000000..2c2784a062 --- /dev/null +++ b/mingw-w64-win7appid/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer: David Grayson + +_realname=win7appid +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.1 +pkgrel=2 +pkgdesc='Windows 7 (and up) shortcut application id tool' +arch=('any') +url='https://code.google.com/p/win7appid' +license=('custom') +makedepends=( + "gzip" + "${MINGW_PACKAGE_PREFIX}-gcc" +) +depends=() +options=('strip') +source=( + "https://win7appid.googlecode.com/svn/trunk/Win7AppId.cpp" + "win7appid.1" + "LICENSE.txt" +) + +sha256sums=( + 'e6b5d9e5586d1a1e0c7911b951e00a964a80b94db21e74cdc327e523fecb9fa3' + 'SKIP' + 'SKIP' +) + +prepare() { + gzip < win7appid.1 > win7appid.1.gz +} + +build() { + mkdir -p "build-${MINGW_CHOST}" + cd "build-${MINGW_CHOST}" + + g++ -O1 -municode -DWIN32_LEAN_AND_MEAN=1 -DUNICODE -D_UNICODE \ + ../*.cpp -lole32 \ + -o win7appid.exe +} + +package() { + r="${pkgdir}${MINGW_PREFIX}" + mkdir -p "${r}/share/licenses/${_realname}" \ + "${r}/share/man/man1" "${r}/bin" + + install -m644 LICENSE.txt -t "${r}/share/licenses/${_realname}" + install -m644 win7appid.1.gz -t "${r}/share/man/man1" + + cd "build-${MINGW_CHOST}" + install -m755 win7appid.exe -t "${r}/bin" +} diff --git a/mingw-w64-win7appid/win7appid.1 b/mingw-w64-win7appid/win7appid.1 new file mode 100644 index 0000000000..5174e14403 --- /dev/null +++ b/mingw-w64-win7appid/win7appid.1 @@ -0,0 +1,39 @@ +.TH win7appid 1 +.SH NAME +win7appid - Windows 7 (and up) shortcut application id tool +.SH SYNOPSIS +.B win7appid \fIshortcut\fP [\fInew_app_id\fP] +.SH DESCRIPTION +.P +This is a fairly basic console application for setting the application id (System.AppUserModel.ID property) of a Windows 7 shortcut. +.P +In Windows 7, taskbar items are grouped by a string known as the application id or AppId. This can be set in the shortcut that launches a program, or by the application itself. For more information, see: +.P +.nf +.RS +http://msdn.microsoft.com/en-us/library/dd378459%28VS.85%29.aspx +.RE +.fi +.P +This tool allows you to pin an application and then have another application's windows group under the same icon without modifying the applications themselves. It only works if you can launch both apps via a shortcut, child processes will have the default behaviour of having their own taskbar entry. +.P +If the \fInew_app_id\fP is omitted, it simply prints the current app id. +.SH EXAMPLE +.P +I made the tool so I could pin a shortcut to start a Putty session with X forwarding, start gnome-terminal and have it's X window (running under Xming) group under the pinned icon. +.P +I issued the commands: +.P +.nf +.RS +Win7AppId xming.lnk putty-xming +Win7AppId puttysession.lnk putty-xming +.RE +.fi +.P +And then put the xming shortcut in my Startup folder and pinned puttysession to the taskbar. +.SH AUTHOR +.nf +David Roe (didroe) +https://code.google.com/p/win7appid/ +.fi From ec4aae781e29b725973b644c200dda909f5e7743 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 7 Jun 2015 10:55:32 +0100 Subject: [PATCH 1112/2060] python3: Fix 'add ModuleFilename dir to PATH' It only worked if os.sep == '\' --- .../0565-mingw-add-ModuleFileName-dir-to-PATH.patch | 2 +- mingw-w64-python3/PKGBUILD | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch b/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch index 1b1054699d..508747a3b8 100644 --- a/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch +++ b/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch @@ -22,7 +22,7 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c + *slashes = L'\\'; + slashes = wcschr( slashes+1, L'/' ); + } -+ end = wcsrchr(new_path, Py_GetSepW(NULL)) ? wcsrchr(new_path, Py_GetSepW(NULL)) : new_path + wcslen(new_path); ++ end = wcsrchr(new_path, L'\\') ? wcsrchr(new_path, L'\\') : new_path + wcslen(new_path); + end[0] = L';'; + end[1] = L'\0'; + wcscat(new_path, path_buffer); diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 1fbf0a5d29..d3aa4855e0 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -36,7 +36,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-xz" ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -options=('!makeflags' 'staticlibs') # '!strip' 'debug' +options=('!makeflags' 'staticlibs') # '!strip' 'debug') source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0000-make-_sysconfigdata.py-relocatable.patch 0100-MINGW-BASE-use-NT-thread-model.patch @@ -248,7 +248,7 @@ prepare() { check() { cd "${srcdir}/build-${CARCH}" - make test + make test EXTRATESTOPTS="-v" } build() { @@ -414,7 +414,7 @@ sha1sums=('7ca5cd664598bea96eec105aa6453223bb6b4456' '2b81ea5b3f8f06c0ab0df9306ec57dab8410778c' 'f92f4b827502a91dc22873346fd9415f53ae3c97' '0f096226937aae88bf38369bd5f8ff3134a82bb0' - 'b06b6cd0f1488e473bfb7fc1147cd64f4e9b560b' + 'b32e068d8626f7303a2f515207cf12bdd33c4cfc' '2f72a9036599de2ca02e5de1316d7b1771cada08' '6dd3c550e5550fc21cb3df1ef5a4231bceb819f0' '3d48fcf13644952c0bb2a68b834339f5174a9b4c' From 990cdd8575596897c584117e5b50796214a411cd Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 7 Jun 2015 10:56:20 +0100 Subject: [PATCH 1113/2060] python3: Build 'overlapped' module from setup.py --- .../0930-mingw-w64-build-overlapped-module.patch | 13 +++++++++++++ mingw-w64-python3/PKGBUILD | 3 +++ 2 files changed, 16 insertions(+) create mode 100644 mingw-w64-python3/0930-mingw-w64-build-overlapped-module.patch diff --git a/mingw-w64-python3/0930-mingw-w64-build-overlapped-module.patch b/mingw-w64-python3/0930-mingw-w64-build-overlapped-module.patch new file mode 100644 index 0000000000..32ab1b8d57 --- /dev/null +++ b/mingw-w64-python3/0930-mingw-w64-build-overlapped-module.patch @@ -0,0 +1,13 @@ +--- Python-3.4.3/setup.py.orig 2015-06-06 18:25:01.420100800 +0100 ++++ Python-3.4.3/setup.py 2015-06-07 09:09:55.336907600 +0100 +@@ -1612,6 +1612,10 @@ + '-framework', 'CoreFoundation', + ])) + ++ if host_platform.startswith(('mingw', 'win')): ++ exts.append( Extension('_overlapped', ['overlapped.c'], ++ libraries=['ws2_32'])) ++ + self.extensions.extend(exts) + + # Call the method for detecting whether _tkinter can be compiled diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index d3aa4855e0..80a5b533a9 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -117,6 +117,7 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch 0910-fix-using-dllhandle-and-winver-mingw.patch 0920-mingw-add-LIBPL-to-library-dirs.patch + 0930-mingw-w64-build-overlapped-module.patch 1000-fix-building-posixmodule.patch 1010-install-msilib.patch 1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch) @@ -217,6 +218,7 @@ prepare() { patch -Np1 -i "${srcdir}"/0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch patch -Np1 -i "${srcdir}"/0910-fix-using-dllhandle-and-winver-mingw.patch patch -Np1 -i "${srcdir}"/0920-mingw-add-LIBPL-to-library-dirs.patch + patch -Np1 -i "${srcdir}"/0930-mingw-w64-build-overlapped-module.patch patch -Np1 -i "${srcdir}"/1000-fix-building-posixmodule.patch patch -Np1 -i "${srcdir}"/1010-install-msilib.patch @@ -445,6 +447,7 @@ sha1sums=('7ca5cd664598bea96eec105aa6453223bb6b4456' '5c4101eed415f28b0277904e7686a352fc69d1d9' '3e80013b0742254cf68743e2bb257cc59213e007' '9a56a98c0efac9930f57966b035b89e94cf44d3b' + '06474589ede319cf53178c6f742ba533110bb438' '25dfd3da896a1dafe8740e1036d41a10e179d080' 'ac74429997b79278834772579f81d46892571e87' 'ba914a51ccb83336e29a823e7ccc35764662f77e') From 66804d0eaf94d8a12660c04444795dbc51f1157d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 7 Jun 2015 11:13:00 +0100 Subject: [PATCH 1114/2060] python3: Bump pkgrel --- mingw-w64-python3/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 80a5b533a9..d515721195 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -17,7 +17,7 @@ _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.4 pkgver=${_pybasever}.3 -pkgrel=4 +pkgrel=5 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') From 5f5f3a14859574deb4d275eac4eb4ca1c5f71740 Mon Sep 17 00:00:00 2001 From: David Grayson Date: Sun, 7 Jun 2015 10:39:51 -0700 Subject: [PATCH 1115/2060] catch: Fixed the ending of the pkgdesc. --- mingw-w64-catch/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-catch/PKGBUILD b/mingw-w64-catch/PKGBUILD index 5663db5c48..26b41d385d 100644 --- a/mingw-w64-catch/PKGBUILD +++ b/mingw-w64-catch/PKGBUILD @@ -4,7 +4,7 @@ _realname=catch pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1 pkgrel=1 -pkgdesc="Multi-paradigm automated test framework for C++ and Objective-C." +pkgdesc="Multi-paradigm automated test framework for C++ and Objective-C (mingw-w64)" arch=('any') url='https://github.com/philsquared/Catch' license=('custom') From 4d6f06822b2f04843622a5693a94aa1b1e6ebc0d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 7 Jun 2015 22:54:29 +0100 Subject: [PATCH 1116/2060] octopi: Refresh patches --- ...d-of-int-reducing-QProcess-repititio.patch | 4 +-- ...002-Use-a-shared-QProcessEnvironment.patch | 4 +-- ...o-Windows-Terminal-Services-wtsapi32.patch | 4 +-- ...y-in-UnixCommand-s-exe-checking-func.patch | 4 +-- .../0005-Use-instead-of-QDir-separator.patch | 4 +-- ...d-of-overwrite-m_readAllStandardOutp.patch | 4 +-- mingw-w64-octopi-git/0007-Define-QT_WA.patch | 4 +-- ...SYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch | 4 +-- .../0009-MSYS2-Add-getMSYS2Root.patch | 4 +-- ...sPacmanDatabase-getMSYS2Root-changes.patch | 8 ++--- ...SYS2-Changes-to-various-system-calls.patch | 4 +-- .../0012-MSYS2-Process-id-changes-WIP.patch | 12 ++++---- ...-Prepend-getMSYS2Root-to-file-checks.patch | 8 ++--- ...014-MSYS2-Support-discoverBinaryPath.patch | 4 +-- mingw-w64-octopi-git/PKGBUILD | 30 +++++++++---------- 15 files changed, 51 insertions(+), 51 deletions(-) diff --git a/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch b/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch index 0b2dded5a1..e1caba91bd 100644 --- a/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch +++ b/mingw-w64-octopi-git/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch @@ -1,4 +1,4 @@ -From e77cdc28a9988a772bcb01b7b413527d642f6c2f Mon Sep 17 00:00:00 2001 +From 3bb321ebabf364f14b94eaba1aea787e8334bf67 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 14:57:41 +0100 Subject: [PATCH 01/14] Use Q_PID instead of int, reducing QProcess repitition @@ -150,5 +150,5 @@ index e4ab291..516e9e3 100644 QTimer *m_timer; QTimer *m_timerSingleShot; -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch b/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch index e102065c17..1e8a0a1061 100644 --- a/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch +++ b/mingw-w64-octopi-git/0002-Use-a-shared-QProcessEnvironment.patch @@ -1,4 +1,4 @@ -From a1b529bc403babf85436d3a8942005f6812a4ae1 Mon Sep 17 00:00:00 2001 +From 144def0f5437c6f53c87397e33f799b118ea0cff Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:23:27 +0100 Subject: [PATCH 02/14] Use a shared QProcessEnvironment @@ -239,5 +239,5 @@ index 59fb5d9..b3dd169 100644 QTime time = QTime::currentTime(); qsrand(time.minute() + time.second() + time.msec()); -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch b/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch index f2d97207a4..f1c4dcacac 100644 --- a/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch +++ b/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch @@ -1,4 +1,4 @@ -From 332b0de7a6df6a65c26e3e1e391446b15bea6e15 Mon Sep 17 00:00:00 2001 +From ec19782fca68db8786850049d206cde36d73cade Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Dec 2014 14:58:27 +0000 Subject: [PATCH 03/14] Win32: Link to Windows Terminal Services (wtsapi32) @@ -21,5 +21,5 @@ index ccf88bf..535fa96 100644 TRANSLATIONS += resources/translations/octopi_ast.ts } -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch b/mingw-w64-octopi-git/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch index d25173b1e3..8a76fed776 100644 --- a/mingw-w64-octopi-git/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch +++ b/mingw-w64-octopi-git/0004-Remove-redundancy-in-UnixCommand-s-exe-checking-func.patch @@ -1,4 +1,4 @@ -From bc4f5d875aa6a8249ffffe7d049d2646d835a715 Mon Sep 17 00:00:00 2001 +From 8ef11cc5fd5f0d6c3c879e239571e649a86b3ace Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 30 Sep 2014 14:43:39 +0100 Subject: [PATCH 04/14] Remove redundancy in UnixCommand's exe checking @@ -57,5 +57,5 @@ index cac4356..438333d 100644 /* -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0005-Use-instead-of-QDir-separator.patch b/mingw-w64-octopi-git/0005-Use-instead-of-QDir-separator.patch index bd52954566..e972044064 100644 --- a/mingw-w64-octopi-git/0005-Use-instead-of-QDir-separator.patch +++ b/mingw-w64-octopi-git/0005-Use-instead-of-QDir-separator.patch @@ -1,4 +1,4 @@ -From f4652aaaf30821df19986ed493bb53a3147039cb Mon Sep 17 00:00:00 2001 +From 8a13242cceca4dae688065e4332b56e646683425 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 28 Sep 2014 23:12:28 +0100 Subject: [PATCH 05/14] Use '/' instead of QDir::separator() @@ -33,5 +33,5 @@ index 711c20f..65fee86 100644 } -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch b/mingw-w64-octopi-git/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch index 7a376ffa2c..7189d4465b 100644 --- a/mingw-w64-octopi-git/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch +++ b/mingw-w64-octopi-git/0006-Append-to-instead-of-overwrite-m_readAllStandardOutp.patch @@ -1,4 +1,4 @@ -From e7148d2a0a2fda9b12fe32b6113e99bfbab28a40 Mon Sep 17 00:00:00 2001 +From 451ffd86a8f7dae3675db0863f599f399447c39a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 28 Sep 2014 23:15:23 +0100 Subject: [PATCH 06/14] Append to instead of overwrite m_readAllStandardOutput @@ -21,5 +21,5 @@ index 438333d..70b739b 100644 /* -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0007-Define-QT_WA.patch b/mingw-w64-octopi-git/0007-Define-QT_WA.patch index f70945a46e..ff6635038c 100644 --- a/mingw-w64-octopi-git/0007-Define-QT_WA.patch +++ b/mingw-w64-octopi-git/0007-Define-QT_WA.patch @@ -1,4 +1,4 @@ -From f9e245dc378423199953130d1dd243048f4635b2 Mon Sep 17 00:00:00 2001 +From c24436489710386d457de6ae3bbded36c6f6f7fa Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:02:24 +0100 Subject: [PATCH 07/14] Define QT_WA @@ -21,5 +21,5 @@ index 4cd2003..c28aae8 100755 { if (mutexname.isEmpty()) { -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch b/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch index 239a77a952..8db834caec 100644 --- a/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch +++ b/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch @@ -1,4 +1,4 @@ -From 54f57ae07280edba0405dec3d61430798c92d84d Mon Sep 17 00:00:00 2001 +From ce323bff2c89db23ad4be5c7018d804f4ce3d8f1 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:31:32 +0100 Subject: [PATCH 08/14] MSYS2: Add ectn_MSYS2 as a LinuxDistro @@ -44,5 +44,5 @@ index b3dd169..cc45e0b 100644 enum Language { ectn_LANG_ENGLISH, ectn_LANG_USER_DEFINED }; -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0009-MSYS2-Add-getMSYS2Root.patch b/mingw-w64-octopi-git/0009-MSYS2-Add-getMSYS2Root.patch index 15ac33a775..412c639be9 100644 --- a/mingw-w64-octopi-git/0009-MSYS2-Add-getMSYS2Root.patch +++ b/mingw-w64-octopi-git/0009-MSYS2-Add-getMSYS2Root.patch @@ -1,4 +1,4 @@ -From 995670aa2765c8ed4b9775740cdf3a3a5a2ca30d Mon Sep 17 00:00:00 2001 +From 074cad793e552e94b61ca79a3e266ea84b5b4c82 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:38:23 +0100 Subject: [PATCH 09/14] MSYS2: Add getMSYS2Root() @@ -74,5 +74,5 @@ index cc45e0b..7560c2a 100644 return *m_env; } -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch b/mingw-w64-octopi-git/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch index b0d9cab8e5..5cbc9becbc 100644 --- a/mingw-w64-octopi-git/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch +++ b/mingw-w64-octopi-git/0010-MSYS2-hasPacmanDatabase-getMSYS2Root-changes.patch @@ -1,4 +1,4 @@ -From 645ee016e2bee7461b5423cfd3a368f295ba7ab7 Mon Sep 17 00:00:00 2001 +From e2837dc12fd8351670bdc9c62f57dbf5f359cba0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:40:36 +0100 Subject: [PATCH 10/14] MSYS2: hasPacmanDatabase() getMSYS2Root() changes @@ -9,10 +9,10 @@ Subject: [PATCH 10/14] MSYS2: hasPacmanDatabase() getMSYS2Root() changes 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/package.cpp b/src/package.cpp -index 3951ef6..6c0a7c9 100644 +index 5e3db85..5e17c8b 100644 --- a/src/package.cpp +++ b/src/package.cpp -@@ -1230,7 +1230,16 @@ bool Package::hasPacmanDatabase() +@@ -1246,7 +1246,16 @@ bool Package::hasPacmanDatabase() if (!done) { @@ -47,5 +47,5 @@ index ac1beb8..5d85975 100644 enum PackageStatus { ectn_INSTALLED, ectn_NON_INSTALLED, ectn_OUTDATED, ectn_NEWER, ectn_FOREIGN, ectn_FOREIGN_OUTDATED }; -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0011-MSYS2-Changes-to-various-system-calls.patch b/mingw-w64-octopi-git/0011-MSYS2-Changes-to-various-system-calls.patch index e91ba6d09a..985e7a1d14 100644 --- a/mingw-w64-octopi-git/0011-MSYS2-Changes-to-various-system-calls.patch +++ b/mingw-w64-octopi-git/0011-MSYS2-Changes-to-various-system-calls.patch @@ -1,4 +1,4 @@ -From b0250449a7b2f76ab3c253b7be1c4d9e7c74e2ba Mon Sep 17 00:00:00 2001 +From f907ae04e12bd93b0bc0bdd2daf07e245d260faf Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:42:50 +0100 Subject: [PATCH 11/14] MSYS2: Changes to various system calls @@ -97,5 +97,5 @@ index 8a941a4..aaff77e 100644 const QString ctn_KDESU("kdesu"); -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0012-MSYS2-Process-id-changes-WIP.patch b/mingw-w64-octopi-git/0012-MSYS2-Process-id-changes-WIP.patch index 0b8a9051f5..4244404bfc 100644 --- a/mingw-w64-octopi-git/0012-MSYS2-Process-id-changes-WIP.patch +++ b/mingw-w64-octopi-git/0012-MSYS2-Process-id-changes-WIP.patch @@ -1,4 +1,4 @@ -From 1230df0e323b03efd3aacf75d7b2ad49c1c81e43 Mon Sep 17 00:00:00 2001 +From 634078881b2797b237ed29c51afcf241ce397225 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Sep 2014 15:44:22 +0100 Subject: [PATCH 12/14] MSYS2: Process id changes (WIP) @@ -9,12 +9,12 @@ Subject: [PATCH 12/14] MSYS2: Process id changes (WIP) 2 files changed, 79 insertions(+) diff --git a/notifier/octopi-notifier/octopi-notifier.pro b/notifier/octopi-notifier/octopi-notifier.pro -index 767c08d..4bf295f 100644 +index 2792ecb..ab62b67 100644 --- a/notifier/octopi-notifier/octopi-notifier.pro +++ b/notifier/octopi-notifier/octopi-notifier.pro -@@ -49,6 +49,8 @@ HEADERS += \ - ../../src/utils.h \ - ../../src/transactiondialog.h +@@ -51,6 +51,8 @@ HEADERS += \ + ../../src/transactiondialog.h \ + ../../src/argumentlist.h +win32: LIBS += -lwtsapi32 + @@ -140,5 +140,5 @@ index 65fee86..f0a5c5e 100644 /* * We need this to search for the SH process pid (which spaws AUR tool) -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch b/mingw-w64-octopi-git/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch index 985463477c..9bdbb8a387 100644 --- a/mingw-w64-octopi-git/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch +++ b/mingw-w64-octopi-git/0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch @@ -1,4 +1,4 @@ -From 87c058a57866bc03b7d15a515a68f30b49ad1803 Mon Sep 17 00:00:00 2001 +From 98649d2a3d0182b5f907bbb67876c88e6cbd1b8f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 28 Sep 2014 23:14:17 +0100 Subject: [PATCH 13/14] MSYS2: Prepend getMSYS2Root() to file checks @@ -9,10 +9,10 @@ Subject: [PATCH 13/14] MSYS2: Prepend getMSYS2Root() to file checks 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mainwindow_refresh.cpp b/src/mainwindow_refresh.cpp -index ec1ca64..67ab7ae 100644 +index 11c242a..ec592a4 100644 --- a/src/mainwindow_refresh.cpp +++ b/src/mainwindow_refresh.cpp -@@ -1256,7 +1256,7 @@ void MainWindow::refreshTabFiles(bool clearContents, bool neverQuit) +@@ -1318,7 +1318,7 @@ void MainWindow::refreshTabFiles(bool clearContents, bool neverQuit) //Let's test if it is not a symbolic link to a dir if(!isDir) { @@ -35,5 +35,5 @@ index f0a5c5e..2d22df3 100644 { str += QLatin1Char('/'); -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/0014-MSYS2-Support-discoverBinaryPath.patch b/mingw-w64-octopi-git/0014-MSYS2-Support-discoverBinaryPath.patch index de90ed5adc..a4f1f50926 100644 --- a/mingw-w64-octopi-git/0014-MSYS2-Support-discoverBinaryPath.patch +++ b/mingw-w64-octopi-git/0014-MSYS2-Support-discoverBinaryPath.patch @@ -1,4 +1,4 @@ -From e9c4157e77b1b0c903f58a9048caa125668779bf Mon Sep 17 00:00:00 2001 +From 6d14274356878c972774e467387e4b031169a219 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 30 Sep 2014 19:12:30 +0100 Subject: [PATCH 14/14] MSYS2: Support discoverBinaryPath() @@ -26,5 +26,5 @@ index eab2e3b..776d660 100644 QString res = proc.readAllStandardOutput(); -- -2.3.5 +2.4.2 diff --git a/mingw-w64-octopi-git/PKGBUILD b/mingw-w64-octopi-git/PKGBUILD index 1ec64e6183..2299a95d7c 100644 --- a/mingw-w64-octopi-git/PKGBUILD +++ b/mingw-w64-octopi-git/PKGBUILD @@ -5,7 +5,7 @@ _realname=octopi pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" #_qmake=${MINGW_PREFIX}/bin/qmake _qmake=${MINGW_PREFIX}/qt5-static/bin/qmake -pkgver=r903.82cffd1 +pkgver=r921.bffb34a pkgrel=1 pkgdesc="a powerful Pacman frontend using Qt libs" arch=('any') @@ -34,20 +34,20 @@ source=("${_gitname}"::"${_gitroot}" "0013-MSYS2-Prepend-getMSYS2Root-to-file-checks.patch" "0014-MSYS2-Support-discoverBinaryPath.patch") md5sums=('SKIP' - 'ce6f1faafa612d62f6491f5e25bc67c4' - 'e04fa374905b9c949fccd4171ff24674' - '0154958ce202215c0cc8589f6f908b62' - 'f9b20ed39b439db66a2cfb81ce63ef38' - 'd591fd6dd4529c2bc87032877a3bf120' - 'b29221aaf5066f60650ab8e5669e3405' - '303d4846e1c36170fdb954b15d681c14' - '2bff59335d325e83210c82e7b9261796' - 'db0ec0497cd3d1f81059ff96de73f30f' - 'ec0b51d9f2275ab0bca2e74a1cd89822' - '566c988337a3f09f40e0fd7428296779' - 'ecb41b30fa19e1738536c1a018aab7b3' - 'c048d271346fec23dc1bf2a93d5267fb' - '60f75e50053407f8aff2f2318430f52f') + '1cb74f8e0fddd37c7bd94ac79e365ca4' + 'fffcff427d949030c2bdfcf9cc6a383e' + 'c656502daa6939fadadb960d305aa5f2' + '49ce3162b59bcd18e28114c836f624fe' + '3cc3fbfa53a2b7ac630e47ab8bdc3cea' + '1dda8e7fe382c4a1ad6b103a773700a2' + '7dde701345087616e0dcb628ab4c4995' + 'd9cf17a08eba6544d4efc8b6637df4b7' + '2ee70444f597172699539233b6c1047e' + 'e5fda93d08711ffa949ba8d38886a3ba' + '6f721589e2a09e18f5b74f814dfb2086' + '4e6d08fcb40bd9d4ad95b5976abb553b' + 'ab664cb066c31013d760797f2c293e08' + 'c4a96a9fced38262754d226168ae344b') pkgver() { cd "$srcdir/$_realname" From 660a4a0e8e8918b1669d34d799b45d2f3454017f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 8 Jun 2015 08:53:17 +0300 Subject: [PATCH 1117/2060] openscenegraph-git: Update to git SHA [57b5747] --- mingw-w64-openscenegraph-git/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-openscenegraph-git/PKGBUILD b/mingw-w64-openscenegraph-git/PKGBUILD index 3746cdfc6e..648b1eeca2 100644 --- a/mingw-w64-openscenegraph-git/PKGBUILD +++ b/mingw-w64-openscenegraph-git/PKGBUILD @@ -2,8 +2,8 @@ _realname=OpenSceneGraph pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-git") -pkgver=r13212.2705fde -pkgrel=2 +pkgver=r13241.57b5747 +pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" arch=('any') url="http://www.openscenegraph.org/" From 45b5f40cb58c917f268d648e1521e3adb45babd5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 8 Jun 2015 09:10:26 +0300 Subject: [PATCH 1118/2060] babl-git: Update to git SHA [f68079d] --- mingw-w64-babl-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-babl-git/PKGBUILD b/mingw-w64-babl-git/PKGBUILD index e374941201..552fa32e89 100644 --- a/mingw-w64-babl-git/PKGBUILD +++ b/mingw-w64-babl-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=babl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r768.c9690f8 +pkgver=r778.f68079d pkgrel=1 pkgdesc="Dynamic Pixel Format Translation Library (mingw-w64)" arch=('any') From f4e763f73ff863fe0ed0cef4d42916300784c553 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 8 Jun 2015 09:11:22 +0300 Subject: [PATCH 1119/2060] lensfun: Update to 0.3.1 --- mingw-w64-lensfun/PKGBUILD | 20 ++++++++++---------- mingw-w64-lensfun/cmake-mingw.patch | 9 +++++++++ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/mingw-w64-lensfun/PKGBUILD b/mingw-w64-lensfun/PKGBUILD index 9809bf65de..a3a25a5bf0 100644 --- a/mingw-w64-lensfun/PKGBUILD +++ b/mingw-w64-lensfun/PKGBUILD @@ -2,30 +2,32 @@ _realname=lensfun pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.3.0 +pkgver=0.3.1 pkgrel=1 pkgdesc="Database of photographic lenses and a library that allows advanced access to the database (mingw-w64)" arch=('any') url="http://lensfun.sourceforge.net" license=("LGPL3") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python2") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-python2") depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-libsystre" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') -source=(http://sourceforge.net/projects/lensfun/files/${pkgver}/${_realname}-${pkgver}.tar.bz2 +source=(http://sourceforge.net/projects/lensfun/files/${pkgver}/${_realname}-${pkgver}.tar.gz cmake-mingw.patch) -md5sums=('c553cb37f1b781d1af05787beacf0193' - 'aedb52587330ebbcd48525b3c6f006d4') +md5sums=('7f577385f98b260ea5384b99c6eb03aa' + '44c20404014c73b33e92d89d61d6afdf') prepare(){ cd "$srcdir/${_realname}-$pkgver" - patch -p1 -i "${srcdir}/cmake-mingw.patch" } build() { + [[ -d $srcdir/build-${MINGW_CHOST} ]] && rm -rf $srcdir/build-${MINGW_CHOST} mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} @@ -37,6 +39,7 @@ build() { -DBUILD_AUXFUN=ON \ -DBUILD_TESTS=OFF \ -DBUILD_FOR_SSE=ON \ + -DBUILD_DOC=OFF \ $ENABLESSE2 \ ../${_realname}-${pkgver} @@ -47,9 +50,6 @@ package() { cd "$srcdir/build-${MINGW_CHOST}" make install - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - + local PREFIX_WIN=$(cygpath -ma ${pkgdir}${MINGW_PREFIX}) sed -i "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/lensfun.pc } diff --git a/mingw-w64-lensfun/cmake-mingw.patch b/mingw-w64-lensfun/cmake-mingw.patch index 8f30c3b4dc..4d3b25c356 100644 --- a/mingw-w64-lensfun/cmake-mingw.patch +++ b/mingw-w64-lensfun/cmake-mingw.patch @@ -9,6 +9,15 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/libs/getopt) # base path for searching for glib on windows IF(NOT GLIB2_BASE_DIR) +@@ -74,7 +74,7 @@ + FIND_PACKAGE(GLIB2 REQUIRED) + INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS}) + # install glib dll on windows next to lensfun.dll +-IF (GLIB2_DLL) ++IF (GLIB2_DLL AND NOT MINGW) + INSTALL(FILES ${GLIB2_DLL} DESTINATION ${BINDIR}) + ENDIF() + @@ -82,7 +82,7 @@ SET(DOCDIR share/doc/lensfun-${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}.${VERSION_BUGFIX} CACHE PATH "Directory to put library documentation in") ENDIF(BUILD_DOC) From af2e8a05bfc75bfd079722155fc7e0938765fb17 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 8 Jun 2015 09:12:44 +0300 Subject: [PATCH 1120/2060] libspiro: Rebuild. Install license file. --- mingw-w64-libspiro/PKGBUILD | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/mingw-w64-libspiro/PKGBUILD b/mingw-w64-libspiro/PKGBUILD index 021a4abb9d..da6ffc83ea 100644 --- a/mingw-w64-libspiro/PKGBUILD +++ b/mingw-w64-libspiro/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libspiro - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=20071029 -pkgrel=2 +pkgrel=3 pkgdesc="Simplifies the drawing of beautiful curves (mingw-w64)" arch=(any) url="http://libspiro.sourceforge.net/" @@ -15,20 +14,25 @@ source=("http://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}_ md5sums=('ab6aaa50bbd8fa55e78f8b8b0112f6cd') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "$srcdir/${_realname}-${pkgver}" } build() { - cd "${srcdir}/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + make } package() { - cd "${srcdir}/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" make DESTDIR="$pkgdir" install + + install -Dm644 ${srcdir}/${_realname}-${pkgver}/gpl.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } From 3936a3033e64d354b7f6fa037845e27346ea1058 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 8 Jun 2015 09:50:03 +0300 Subject: [PATCH 1121/2060] gegl-git: Update to git SHA [1cbe63f] --- mingw-w64-gegl-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gegl-git/PKGBUILD b/mingw-w64-gegl-git/PKGBUILD index 0cf1fd3381..fc78801575 100644 --- a/mingw-w64-gegl-git/PKGBUILD +++ b/mingw-w64-gegl-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=gegl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r6592.8989a57 +pkgver=r6597.1cbe63f pkgrel=1 pkgdesc="Generic Graphics Library (mingw-w64)" arch=('any') From bf6e18ca7b468becb95d0f5ca1e8f238525c02a6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Jun 2015 11:11:43 +0300 Subject: [PATCH 1122/2060] mesa: Update to 10.5.7 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 5915858e95..1453f0d93b 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,7 +2,7 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.5.6 +pkgver=10.5.7 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('7a845c50fc8aaae4c9373e795c1f491d' +md5sums=('c6a1fdccd4ea372975d263235136ad2d' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From 299fe79cb131c71e72c0500f1eedc4bd16929f23 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Jun 2015 12:14:46 +0300 Subject: [PATCH 1123/2060] freetype: Update to 2.6 --- mingw-w64-freetype/PKGBUILD | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mingw-w64-freetype/PKGBUILD b/mingw-w64-freetype/PKGBUILD index 769ec7de05..6eec346aea 100644 --- a/mingw-w64-freetype/PKGBUILD +++ b/mingw-w64-freetype/PKGBUILD @@ -3,25 +3,25 @@ _realname=freetype pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.5.5 -pkgrel=3 +pkgver=2.6 +pkgrel=1 pkgdesc="TrueType font rendering library (mingw-w64)" arch=('any') url="http://www.freetype.org/" license=(GPL2+ custom:FreeType) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-harfbuzz" + "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-zlib") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('strip' '!libtool' 'staticlibs') source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver}.tar.bz2 freetype-2.2.1-enable-valid.patch freetype-2.5.1-enable-spr.patch freetype-2.5.1-enable-sph.patch mingw-config.patch) -md5sums=('2a7a314927011d5030903179cf183be0' +md5sums=('5682890cb0267f6671dd3de6eabd3e69' '214119610444c9b02766ccee5e220680' '80a14cce234f3f190cd936ca9060c398' '0636ba2ff074201e2ea5c47ac408bc63' @@ -40,6 +40,7 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" @@ -54,6 +55,7 @@ build() { --with-bzip2 \ --with-png \ --with-harfbuzz + make } From 472109613b229db7cd89bf2c01ca457faa48d9c7 Mon Sep 17 00:00:00 2001 From: oscar Date: Tue, 9 Jun 2015 03:30:09 +0200 Subject: [PATCH 1124/2060] cmake, cmake-git: s/RESPOSE/RESPONSE --- mingw-w64-cmake-git/PKGBUILD | 4 ++-- mingw-w64-cmake-git/disable-response-files-for-msys.patch | 2 +- mingw-w64-cmake/PKGBUILD | 4 ++-- mingw-w64-cmake/disable-response-files-for-msys.patch | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mingw-w64-cmake-git/PKGBUILD b/mingw-w64-cmake-git/PKGBUILD index 96a9c33c0b..88f4c06f1e 100644 --- a/mingw-w64-cmake-git/PKGBUILD +++ b/mingw-w64-cmake-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=r27830.397b629 -pkgrel=1 +pkgrel=2 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -28,7 +28,7 @@ source=("${_realname}"::"git+http://cmake.org/cmake.git" 'dont-install-bundle.patch' 'qt5-static-plugin-support.patch') md5sums=('SKIP' - 'cdd0c24ffdad5e175a731ddc9781a123' + 'ca6d81118ca62af63ee7a30dd169a879' 'fb33ace70ba863159b2c7964a9661e1e' '6461b89ff7d1ca0c4022801dff8475a7') diff --git a/mingw-w64-cmake-git/disable-response-files-for-msys.patch b/mingw-w64-cmake-git/disable-response-files-for-msys.patch index 2b0312ef0a..1be3458a62 100644 --- a/mingw-w64-cmake-git/disable-response-files-for-msys.patch +++ b/mingw-w64-cmake-git/disable-response-files-for-msys.patch @@ -7,7 +7,7 @@ - set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS ${__WINDOWS_GNU_LD_RESPONSE}) - set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES ${__WINDOWS_GNU_LD_RESPONSE}) - set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1) -+ if(NOT CMAKE_GENERATOR STREQUAL "MSYS Makefiles" OR CMAKE_NEED_RESPOSE) ++ if(NOT CMAKE_GENERATOR STREQUAL "MSYS Makefiles" OR CMAKE_NEED_RESPONSE) + set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS ${__WINDOWS_GNU_LD_RESPONSE}) + set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES ${__WINDOWS_GNU_LD_RESPONSE}) + set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 03ccc78230..14ca7dd521 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -3,7 +3,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.2.3 -pkgrel=1 +pkgrel=2 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -24,7 +24,7 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "dont-install-bundle.patch" "qt5-static-plugin-support.patch") md5sums=('d51c92bf66b1e9d4fe2b7aaedd51377c' - '663edba4faae25d3e5c48ab0ca6b6cb9' + '567da5e1794863b4df8affdc7e876a7e' 'fb33ace70ba863159b2c7964a9661e1e' '6461b89ff7d1ca0c4022801dff8475a7') diff --git a/mingw-w64-cmake/disable-response-files-for-msys.patch b/mingw-w64-cmake/disable-response-files-for-msys.patch index 6310b55f16..6a0739d176 100644 --- a/mingw-w64-cmake/disable-response-files-for-msys.patch +++ b/mingw-w64-cmake/disable-response-files-for-msys.patch @@ -7,7 +7,7 @@ - set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS ${__WINDOWS_GNU_LD_RESPONSE}) - set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES ${__WINDOWS_GNU_LD_RESPONSE}) - set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1) -+ if(NOT CMAKE_GENERATOR STREQUAL "MSYS Makefiles" OR CMAKE_NEED_RESPOSE) ++ if(NOT CMAKE_GENERATOR STREQUAL "MSYS Makefiles" OR CMAKE_NEED_RESPONSE) + set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS ${__WINDOWS_GNU_LD_RESPONSE}) + set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES ${__WINDOWS_GNU_LD_RESPONSE}) + set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1) From 1bbecce88a5b55fd7002b8ac4a8827eee18f72f1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Jun 2015 13:41:42 +0300 Subject: [PATCH 1125/2060] dlfcn-win32 packages updated to current from github. --- .../PKGBUILD | 23 ++--- mingw-w64-dlfcn-git/unify-makefile.patch | 92 +++++++++++++++++++ mingw-w64-dlfcn/PKGBUILD | 36 ++++---- .../dlfcn-fix-cplusplus-linkage.patch | 20 ---- mingw-w64-dlfcn/unify-makefile.patch | 90 ++++++++++++++++++ 5 files changed, 211 insertions(+), 50 deletions(-) rename {mingw-w64-dlfcn-svn => mingw-w64-dlfcn-git}/PKGBUILD (57%) create mode 100644 mingw-w64-dlfcn-git/unify-makefile.patch delete mode 100644 mingw-w64-dlfcn/dlfcn-fix-cplusplus-linkage.patch create mode 100644 mingw-w64-dlfcn/unify-makefile.patch diff --git a/mingw-w64-dlfcn-svn/PKGBUILD b/mingw-w64-dlfcn-git/PKGBUILD similarity index 57% rename from mingw-w64-dlfcn-svn/PKGBUILD rename to mingw-w64-dlfcn-git/PKGBUILD index d4ea7a8140..d50ab8d605 100644 --- a/mingw-w64-dlfcn-svn/PKGBUILD +++ b/mingw-w64-dlfcn-git/PKGBUILD @@ -1,30 +1,31 @@ # Maintainer: Alexey Pavlov _realname=dlfcn - -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=r37 +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=r66.e419539 pkgrel=1 pkgdesc="A wrapper for dlfcn to the Win32 API (mingw-w64)" arch=('any') -url="http://code.google.com/p/dlfcn-win32" +url="https://github.com/dlfcn-win32/dlfcn-win32" license=("LGPL") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "subversion") +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -source=("${_realname}"::"svn+http://dlfcn-win32.googlecode.com/svn/trunk/") -md5sums=('SKIP') +source=("${_realname}"::"git+https://github.com/dlfcn-win32/dlfcn-win32.git" + unify-makefile.patch) +md5sums=('SKIP' + '11670a97bdb4df0e1daf2f25614d4d82') pkgver() { cd "${_realname}" - local ver="$(svnversion)" - printf "r%s" "${ver//[[:alpha:]]}" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { cd "${srcdir}/${_realname}" + patch -p1 -i ${srcdir}/unify-makefile.patch } build() { @@ -36,7 +37,7 @@ build() { --disable-stripping \ --enable-shared \ --disable-msvc - sed -i "s|libdl.dll |libdl-0.dll |g" Makefile + make } diff --git a/mingw-w64-dlfcn-git/unify-makefile.patch b/mingw-w64-dlfcn-git/unify-makefile.patch new file mode 100644 index 0000000000..f8abed9fab --- /dev/null +++ b/mingw-w64-dlfcn-git/unify-makefile.patch @@ -0,0 +1,92 @@ +--- dlfcn/Makefile.orig 2015-06-09 13:04:20.785400000 +0300 ++++ dlfcn/Makefile 2015-06-09 13:22:27.590600000 +0300 +@@ -5,19 +5,32 @@ + CFLAGS = -Wall -O3 -fomit-frame-pointer + LIBS += -lpsapi + ++ ++API_VERSION=0 ++LIBRARY_NAME=libdl ++SHARED_EXTENSION=.dll ++STATIC_EXTENSION=.a ++ifeq ($(BUILD_MSVC),yes) ++IMPORT_LIBRARY_EXTENSION=.lib ++else ++IMPORT_LIBRARY_EXTENSION=.dll.a ++endif ++SHARED_LIBRARY_NAME=$(LIBRARY_NAME)-$(API_VERSION)$(SHARED_EXTENSION) ++STATIC_LIBRARY_NAME=$(LIBRARY_NAME)$(STATIC_EXTENSION) ++IMPORT_LIBRARY_NAME=$(LIBRARY_NAME)$(IMPORT_LIBRARY_EXTENSION) + ifeq ($(BUILD_SHARED),yes) +- TARGETS += libdl.dll +- SHFLAGS += -Wl,--out-implib,libdl.dll.a ++ TARGETS += $(SHARED_LIBRARY_NAME) ++ SHFLAGS += -Wl,--out-implib,$(IMPORT_LIBRARY_NAME) + CFLAGS += -DSHARED + INSTALL += shared-install + endif + ifeq ($(BUILD_STATIC),yes) +- TARGETS += libdl.a ++ TARGETS += $(STATIC_LIBRARY_NAME) + INSTALL += static-install + endif + ifeq ($(BUILD_MSVC),yes) +- TARGETS += libdl.lib +- SHFLAGS += -Wl,--output-def,libdl.def ++ TARGETS += $(IMPORT_LIBRARY_NAME) ++ SHFLAGS += -Wl,--output-def,$(LIBRARY_NAME).def + INSTALL += lib-install + endif + +@@ -29,14 +42,14 @@ + %.o: %.c + $(CC) -o $@ -c $< $(CFLAGS) + +-libdl.a: $(LIB_OBJS) ++$(STATIC_LIBRARY_NAME): $(LIB_OBJS) + $(AR) cru $@ $^ +- $(RANLIB) libdl.a ++ $(RANLIB) $(STATIC_LIBRARY_NAME) + +-libdl.dll: $(LIB_OBJS) ++$(SHARED_LIBRARY_NAME): $(LIB_OBJS) + $(CC) $(SHFLAGS) -shared -o $@ $^ $(LIBS) + +-libdl.lib: libdl.dll ++$(IMPORT_LIBRARY_NAME): $(SHARED_LIBRARY_NAME) + $(LIBCMD) /machine:i386 /def:libdl.def + + include-install: $(HEADERS) +@@ -45,18 +58,18 @@ + + shared-install: include-install + mkdir -p $(DESTDIR)$(prefix)/bin +- cp libdl.dll $(DESTDIR)$(prefix)/bin +- $(STRIP) $(DESTDIR)$(prefix)/bin/libdl.dll ++ cp $(SHARED_LIBRARY_NAME) $(DESTDIR)$(prefix)/bin ++ $(STRIP) $(DESTDIR)$(prefix)/bin/$(SHARED_LIBRARY_NAME) + mkdir -p $(DESTDIR)$(libdir) +- cp libdl.dll.a $(DESTDIR)$(libdir) ++ cp $(IMPORT_LIBRARY_NAME) $(DESTDIR)$(libdir) + + static-install: include-install + mkdir -p $(DESTDIR)$(libdir) +- cp libdl.a $(DESTDIR)$(libdir) ++ cp $(STATIC_LIBRARY_NAME) $(DESTDIR)$(libdir) + + lib-install: $(LIBS) + mkdir -p $(DESTDIR)$(libdir) +- cp libdl.lib $(DESTDIR)$(libdir) ++ cp $(IMPORT_LIBRARY_NAME) $(DESTDIR)$(libdir) + + install: $(INSTALL) + +@@ -70,7 +83,7 @@ + $(WINE) test.exe + + clean:: +- rm -f dlfcn.o libdl.dll libdl.a libdl.def libdl.dll.a libdl.lib libdl.exp test.exe testdll.dll ++ rm -f dlfcn.o $(SHARED_LIBRARY_NAME) $(STATIC_LIBRARY_NAME) libdl.def $(IMPORT_LIBRARY_NAME) libdl.exp test.exe testdll.dll + + distclean: clean + rm -f config.mak diff --git a/mingw-w64-dlfcn/PKGBUILD b/mingw-w64-dlfcn/PKGBUILD index d8cba1b747..0ef42a50a7 100644 --- a/mingw-w64-dlfcn/PKGBUILD +++ b/mingw-w64-dlfcn/PKGBUILD @@ -1,44 +1,42 @@ # Maintainer: Alexey Pavlov _realname=dlfcn - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=r19 +pkgver=1.0.0 pkgrel=1 pkgdesc="A wrapper for dlfcn to the Win32 API (mingw-w64)" arch=('any') -url="http://code.google.com/p/dlfcn-win32" +url="https://github.com/dlfcn-win32/dlfcn-win32" license=('LGPL') -depends=("${MINGW_PACKAGE_PREFIX}-crt") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' 'staticlibs') -source=("http://dlfcn-win32.googlecode.com/files/dlfcn-win32-${pkgver}.tar.bz2" - 'dlfcn-fix-cplusplus-linkage.patch') -md5sums=('6e321b36ee289179777bab07dcfe5510' - '2e82b109a5a8b17be03494ff7e772c13') +source=(${_realname}-${pkgver}.tar.gz::https://github.com/dlfcn-win32/dlfcn-win32/archive/v${pkgver}.tar.gz + unify-makefile.patch) +md5sums=('fc9882d8e33d06626ddb22b44c6fd4dd' + '2d724d5ab315e633b46fc8993f0663a4') -prepare () { +prepare() { cd "$srcdir/dlfcn-win32-$pkgver" - patch -p0 -i "$srcdir"/dlfcn-fix-cplusplus-linkage.patch + patch -p1 -i "$srcdir"/unify-makefile.patch } -build() -{ - cd "$srcdir/dlfcn-win32-$pkgver" - mkdir -p "build-${MINGW_CHOST}" && cd "build-${MINGW_CHOST}" - ../configure \ +build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + cp -rf "$srcdir/dlfcn-win32-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" + cd "build-${MINGW_CHOST}" + ./configure \ --prefix=${MINGW_PREFIX} \ --libdir=${MINGW_PREFIX}/lib \ --incdir=${MINGW_PREFIX}/include \ --disable-stripping \ --enable-shared \ --disable-msvc - cp ../Makefile ../dlfcn.c ../dlfcn.h . - sed -i "s|libdl.dll |libdl-0.dll |g" Makefile + make } package() { - cd "$srcdir/dlfcn-win32-$pkgver/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install } diff --git a/mingw-w64-dlfcn/dlfcn-fix-cplusplus-linkage.patch b/mingw-w64-dlfcn/dlfcn-fix-cplusplus-linkage.patch deleted file mode 100644 index 0905d46580..0000000000 --- a/mingw-w64-dlfcn/dlfcn-fix-cplusplus-linkage.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- dlfcn.h.orig 2009-10-30 15:36:35.357902913 +0100 -+++ dlfcn.h 2009-10-30 15:39:51.126664184 +0100 -@@ -37,9 +37,17 @@ - #define RTLD_DEFAULT 0 - #define RTLD_NEXT 0 - -+#ifdef __cplusplus -+extern "C" { -+#endif -+ - void *dlopen ( const char *file, int mode ); - int dlclose( void *handle ); - void *dlsym ( void *handle, const char *name ); - char *dlerror( void ); - -+#ifdef __cplusplus -+} -+#endif -+ - #endif /* DLFCN_H */ diff --git a/mingw-w64-dlfcn/unify-makefile.patch b/mingw-w64-dlfcn/unify-makefile.patch new file mode 100644 index 0000000000..c4575cfd73 --- /dev/null +++ b/mingw-w64-dlfcn/unify-makefile.patch @@ -0,0 +1,90 @@ +--- dlfcn-win32-1.0.0/Makefile.orig 2015-06-09 13:37:21.704000000 +0300 ++++ dlfcn-win32-1.0.0/Makefile 2015-06-09 13:36:26.672400000 +0300 +@@ -3,18 +3,31 @@ + # + include config.mak + ++API_VERSION=0 ++LIBRARY_NAME=libdl ++SHARED_EXTENSION=.dll ++STATIC_EXTENSION=.a ++ifeq ($(BUILD_MSVC),yes) ++ IMPORT_LIBRARY_EXTENSION=.lib ++else ++ IMPORT_LIBRARY_EXTENSION=.dll.a ++endif ++SHARED_LIBRARY_NAME=$(LIBRARY_NAME)-$(API_VERSION)$(SHARED_EXTENSION) ++STATIC_LIBRARY_NAME=$(LIBRARY_NAME)$(STATIC_EXTENSION) ++IMPORT_LIBRARY_NAME=$(LIBRARY_NAME)$(IMPORT_LIBRARY_EXTENSION) ++ + ifeq ($(BUILD_SHARED),yes) +- TARGETS += libdl.dll libdl.dll.a +- SHFLAGS += -Wl,--out-implib,libdl.dll.a ++ TARGETS += $(SHARED_LIBRARY_NAME) ++ SHFLAGS += -Wl,--out-implib,$(IMPORT_LIBRARY_NAME) + INSTALL += shared-install + endif + ifeq ($(BUILD_STATIC),yes) +- TARGETS += libdl.a ++ TARGETS += $(STATIC_LIBRARY_NAME) + INSTALL += static-install + endif + ifeq ($(BUILD_MSVC),yes) +- TARGETS += libdl.lib +- SHFLAGS += -Wl,--output-def,libdl.def ++ TARGETS += $(IMPORT_LIBRARY_NAME) ++ SHFLAGS += -Wl,--output-def,$(LIBRARY_NAME).def + INSTALL += lib-install + endif + +@@ -26,14 +39,14 @@ + %.o: %.c + $(CC) -o $@ -c $< -Wall -O3 -fomit-frame-pointer + +-libdl.a: $(LIB_OBJS) ++$(STATIC_LIBRARY_NAME): $(LIB_OBJS) + $(AR) cru $@ $^ + $(RANLIB) libdl.a + +-libdl.dll libdl.dll.a: $(LIB_OBJS) ++$(SHARED_LIBRARY_NAME): $(LIB_OBJS) + $(CC) $(SHFLAGS) -shared -o $@ $^ + +-libdl.lib: libdl.dll ++$(IMPORT_LIBRARY_NAME): $(SHARED_LIBRARY_NAME) + $(LIBCMD) /machine:i386 /def:libdl.def + + include-install: $(HEADERS) +@@ -42,18 +55,18 @@ + + shared-install: include-install + mkdir -p $(DESTDIR)$(prefix)/bin +- cp libdl.dll $(DESTDIR)$(prefix)/bin +- $(STRIP) $(DESTDIR)$(prefix)/bin/libdl.dll ++ cp $(SHARED_LIBRARY_NAME) $(DESTDIR)$(prefix)/bin ++ $(STRIP) $(DESTDIR)$(prefix)/bin/$(SHARED_LIBRARY_NAME) + mkdir -p $(DESTDIR)$(libdir) +- cp libdl.dll.a $(DESTDIR)$(libdir) ++ cp $(IMPORT_LIBRARY_NAME) $(DESTDIR)$(libdir) + + static-install: include-install + mkdir -p $(DESTDIR)$(libdir) +- cp libdl.a $(DESTDIR)$(libdir) ++ cp $(STATIC_LIBRARY_NAME) $(DESTDIR)$(libdir) + + lib-install: $(LIBS) + mkdir -p $(DESTDIR)$(libdir) +- cp libdl.lib $(DESTDIR)$(libdir) ++ cp $(IMPORT_LIBRARY_NAME) $(DESTDIR)$(libdir) + + install: $(INSTALL) + +@@ -67,7 +80,7 @@ + $(WINE) test.exe + + clean:: +- rm -f dlfcn.o libdl.dll libdl.a libdl.def libdl.dll.a libdl.lib libdl.exp test.exe testdll.dll ++ rm -f dlfcn.o $(SHARED_LIBRARY_NAME) $(STATIC_LIBRARY_NAME) libdl.def $(IMPORT_LIBRARY_NAME) libdl.exp test.exe testdll.dll + + distclean: clean + rm -f config.mak From b194e5fa2d87e8b43ab82674036b7c40e634a0dc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Jun 2015 14:30:31 +0300 Subject: [PATCH 1126/2060] isl: Update to 0.14.1 --- mingw-w64-isl/PKGBUILD | 18 ++++++++---------- mingw-w64-isl/isl-0.13-no-undefined.patch | 11 ----------- mingw-w64-isl/isl-0.14.1-no-undefined.patch | 11 +++++++++++ 3 files changed, 19 insertions(+), 21 deletions(-) delete mode 100644 mingw-w64-isl/isl-0.13-no-undefined.patch create mode 100644 mingw-w64-isl/isl-0.14.1-no-undefined.patch diff --git a/mingw-w64-isl/PKGBUILD b/mingw-w64-isl/PKGBUILD index a18f12c0d5..33e160981d 100644 --- a/mingw-w64-isl/PKGBUILD +++ b/mingw-w64-isl/PKGBUILD @@ -1,28 +1,25 @@ # Maintainer: Alexey Pavlov _realname=isl - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=0.13 +pkgver=0.14.1 pkgrel=1 pkgdesc="Library for manipulating sets and relations of integer points bounded by linear constraints" arch=('any') -url="http://freecode.com/projects/isl" +url="http://isl.gforge.inria.fr/" groups=("${MINGW_PACKAGE_PREFIX}") #depends=("${MINGW_PACKAGE_PREFIX}-gmp") makedepends=("${MINGW_PACKAGE_PREFIX}-gmp") options=('staticlibs') license=('MIT') -source=(http://isl.gforge.inria.fr/${_realname}-${pkgver}.tar.bz2 - #ftp://ftp.linux.student.kuleuven.be/pub/people/skimo/isl/${_realname}-$pkgver.tar.bz2 - isl-0.13-no-undefined.patch) -md5sums=('e4cf20c4c10d5d613457558b1f46b5e2' - '75cd13d41fb237dbb78daed54c9d50f2') +source=("http://isl.gforge.inria.fr/${_realname}-${pkgver}.tar.xz" + isl-0.14.1-no-undefined.patch) +md5sums=('94fcd11e0b1c79250ae341affb1845ea' + '38c67a10e197acb83217be17075070f9') prepare() { cd "$srcdir/${_realname}-$pkgver" - patch -p1 -i ${srcdir}/isl-0.13-no-undefined.patch - + patch -p1 -i ${srcdir}/isl-0.14.1-no-undefined.patch autoreconf -fi } @@ -33,6 +30,7 @@ build() { --enable-static \ --disable-shared \ --with-gmp-prefix=${MINGW_PREFIX} + make } diff --git a/mingw-w64-isl/isl-0.13-no-undefined.patch b/mingw-w64-isl/isl-0.13-no-undefined.patch deleted file mode 100644 index 99716cbf78..0000000000 --- a/mingw-w64-isl/isl-0.13-no-undefined.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- isl-0.13/Makefile.am.orig 2014-07-06 00:57:27.063200000 +0400 -+++ isl-0.13/Makefile.am 2014-07-06 00:59:20.587200000 +0400 -@@ -134,7 +134,7 @@ - isl_vertices_private.h \ - isl_vertices.c - libisl_la_LIBADD = @GMP_LIBS@ --libisl_la_LDFLAGS = -version-info @versioninfo@ \ -+libisl_la_LDFLAGS = -version-info @versioninfo@ -no-undefined \ - @GMP_LDFLAGS@ - - isl_test_LDFLAGS = @GMP_LDFLAGS@ diff --git a/mingw-w64-isl/isl-0.14.1-no-undefined.patch b/mingw-w64-isl/isl-0.14.1-no-undefined.patch new file mode 100644 index 0000000000..3da3fbb709 --- /dev/null +++ b/mingw-w64-isl/isl-0.14.1-no-undefined.patch @@ -0,0 +1,11 @@ +--- isl-0.14.1/Makefile.am.orig 2015-06-09 00:57:27.063200000 +0400 ++++ isl-0.14.1/Makefile.am 2015-06-09 00:59:20.587200000 +0400 +@@ -164,7 +164,7 @@ + isl_vertices_private.h \ + isl_vertices.c + libisl_la_LIBADD = @MP_LIBS@ +-libisl_la_LDFLAGS = -version-info @versioninfo@ \ ++libisl_la_LDFLAGS = -version-info @versioninfo@ -no-undefined \ + @MP_LDFLAGS@ + + isl_test_LDFLAGS = @MP_LDFLAGS@ From 112585d87fe331adc8b5f80ffe94d0d7a91b669d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 9 Jun 2015 15:29:36 +0300 Subject: [PATCH 1127/2060] cmake-git: Update to git SHA [2848f93] --- mingw-w64-cmake-git/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cmake-git/PKGBUILD b/mingw-w64-cmake-git/PKGBUILD index 88f4c06f1e..1f53221fcd 100644 --- a/mingw-w64-cmake-git/PKGBUILD +++ b/mingw-w64-cmake-git/PKGBUILD @@ -2,8 +2,8 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r27830.397b629 -pkgrel=2 +pkgver=r28422.2848f93 +pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" From 6d928c6c26991da3d98813487e11967e150f38a2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Jun 2015 06:58:39 +0300 Subject: [PATCH 1128/2060] gpgme: Update to 1.5.5 --- mingw-w64-gpgme/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gpgme/PKGBUILD b/mingw-w64-gpgme/PKGBUILD index 35924337d2..f22fac7808 100644 --- a/mingw-w64-gpgme/PKGBUILD +++ b/mingw-w64-gpgme/PKGBUILD @@ -2,7 +2,7 @@ _realname=gpgme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.4 +pkgver=1.5.5 pkgrel=1 pkgdesc="A C wrapper library for GnuPG (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" options=('!emptydirs') source=(ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2{,.sig} gpgme-1.5.4-mingw-mkstemp.patch) -sha1sums=('8cf1bcce8603bd7d006065f08059cf85462828c4' +sha1sums=('88476d72cb099e179de4040760502886f7a54926' 'SKIP' '8c7d7648772c29620b7fd23e867f60386ba92790') From 70b6cc1d10cc15ecae286bdefcedcd0897b56fe8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Jun 2015 06:59:48 +0300 Subject: [PATCH 1129/2060] nettle: Update to 3.1.1 --- .../0001-fix-GMP_NUMB_BITS-check.patch | 12 ---------- mingw-w64-nettle/PKGBUILD | 22 +++++++++---------- 2 files changed, 10 insertions(+), 24 deletions(-) delete mode 100644 mingw-w64-nettle/0001-fix-GMP_NUMB_BITS-check.patch diff --git a/mingw-w64-nettle/0001-fix-GMP_NUMB_BITS-check.patch b/mingw-w64-nettle/0001-fix-GMP_NUMB_BITS-check.patch deleted file mode 100644 index 902427ccd0..0000000000 --- a/mingw-w64-nettle/0001-fix-GMP_NUMB_BITS-check.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur a/configure.ac b/configure.ac ---- a/configure.ac 2015-04-08 01:00:08.000000000 +0600 -+++ b/configure.ac 2015-04-09 18:44:40.857793700 +0600 -@@ -467,7 +467,7 @@ - dnl Note double square brackets, for extra m4 quoting. - tmp_bits=`grep GMP_NUMB_BITS "$srcdir/$asm_dir/$tmp_h" \ - | sed 's/^.*GMP_NUMB_BITS(\([[0-9]]*\)).*$/\1/'` -- if test "$tmp_bits" && test "$tmp_bits" != '${GMP_NUMB_BITS}' ; then -+ if test "$tmp_bits" && test "$tmp_bits" != "${GMP_NUMB_BITS}" ; then - AC_MSG_WARN([skipping $tmp_h, because GMP_NUMB_BITS != $tmp_bits]) - continue - fi diff --git a/mingw-w64-nettle/PKGBUILD b/mingw-w64-nettle/PKGBUILD index 149bce75b9..2f6223c434 100644 --- a/mingw-w64-nettle/PKGBUILD +++ b/mingw-w64-nettle/PKGBUILD @@ -2,8 +2,8 @@ _realname=nettle pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.1 -pkgrel=2 +pkgver=3.1.1 +pkgrel=1 pkgdesc="A low-level cryptographic library (mingw-w64)" arch=('any') url="http://www.lysator.liu.se/~nisse/nettle" @@ -11,31 +11,29 @@ license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gmp") options=('staticlibs' 'strip') -source=("http://www.lysator.liu.se/~nisse/archive/nettle-$pkgver.tar.gz" - "0001-fix-GMP_NUMB_BITS-check.patch") -md5sums=('075a3699cbab48ffa2ea6f9aad91e123' - '650c6d9784de16b8e0bb016cde260f17') +source=("http://www.lysator.liu.se/~nisse/archive/nettle-$pkgver.tar.gz") +md5sums=('b40fa88dc32f37a182b6b42092ebb144') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i "${srcdir}"/0001-fix-GMP_NUMB_BITS-check.patch - autoreconf -fiv } build() { - mkdir -p "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-shared \ --enable-public-key + make -j1 } package() { - cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install } From 38ffef207693e596f7335f9652d774a6435e604b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Jun 2015 09:36:29 +0300 Subject: [PATCH 1130/2060] Rebuild packages with nettle-3.1.1 --- mingw-w64-gnutls/PKGBUILD | 2 +- mingw-w64-gst-plugins-bad/PKGBUILD | 2 +- mingw-w64-libarchive/PKGBUILD | 2 +- mingw-w64-rtmpdump-git/PKGBUILD | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index 2a16bb6f13..b1f6d36950 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -3,7 +3,7 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.4.1 -pkgrel=1 +pkgrel=2 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') license=('GPL3' 'LGPL2.1') diff --git a/mingw-w64-gst-plugins-bad/PKGBUILD b/mingw-w64-gst-plugins-bad/PKGBUILD index e0db39a18d..da04cbf551 100644 --- a/mingw-w64-gst-plugins-bad/PKGBUILD +++ b/mingw-w64-gst-plugins-bad/PKGBUILD @@ -3,7 +3,7 @@ _realname=gst-plugins-bad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.5 -pkgrel=3 +pkgrel=4 pkgdesc="GStreamer Multimedia Framework Bad Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" diff --git a/mingw-w64-libarchive/PKGBUILD b/mingw-w64-libarchive/PKGBUILD index 8af1441611..64056c0209 100644 --- a/mingw-w64-libarchive/PKGBUILD +++ b/mingw-w64-libarchive/PKGBUILD @@ -3,7 +3,7 @@ _realname=libarchive pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.1.2 -pkgrel=5 +pkgrel=6 pkgdesc="library that can create and read several streaming archive formats (mingw-w64)" arch=('any') url="http://www.libarchive.org" diff --git a/mingw-w64-rtmpdump-git/PKGBUILD b/mingw-w64-rtmpdump-git/PKGBUILD index 0d6af5610d..e95eaf80c4 100644 --- a/mingw-w64-rtmpdump-git/PKGBUILD +++ b/mingw-w64-rtmpdump-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=rtmpdump pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=r499.a107cef -pkgrel=1 +pkgrel=2 pkgdesc="A tool to download rtmp streams (mingw-w64)" arch=('any') url="http://rtmpdump.mplayerhq.hu/" From c1cc446b77dca701038afa0f63f960b85f4d58ad Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Jun 2015 12:09:14 +0300 Subject: [PATCH 1131/2060] x265: Update to 1.7 --- mingw-w64-x265/PKGBUILD | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/mingw-w64-x265/PKGBUILD b/mingw-w64-x265/PKGBUILD index 823cd698e4..616d004902 100644 --- a/mingw-w64-x265/PKGBUILD +++ b/mingw-w64-x265/PKGBUILD @@ -2,7 +2,7 @@ _realname=x265 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5 +pkgver=1.7 pkgrel=1 pkgdesc='Open Source H265/HEVC video encoder (mingw-w64)' arch=('any') @@ -11,9 +11,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=('yasm' "${MINGW_PACKAGE_PREFIX}-cmake") options=('strip') url='https://bitbucket.org/multicoreware/x265' -source=($url/get/$pkgver.tar.bz2 +source=("${_realname}-$pkgver.tar.bz2"::"$url/get/$pkgver.tar.bz2" install-shared-library.patch) -md5sums=('fcb81f5ff12669ff0c0657568cee36b9' +md5sums=('d6020c277b05ab44f8222342aaa9c99f' 'c1dc65fc3191d6bafdd3576235ade5ae') prepare() { @@ -34,9 +34,7 @@ package() { cd multicoreware-x265-*/build/msys make install - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/x265.pc } From cef7ff49ac17014f95d972297aaa1074e9b19778 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Jun 2015 12:10:02 +0300 Subject: [PATCH 1132/2060] ffmpeg: Update to 2.7 --- mingw-w64-ffmpeg/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index b883a9879e..77486a6757 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,7 +2,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.6.3 +pkgver=2.7 pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') @@ -40,8 +40,8 @@ depends=( "${MINGW_PACKAGE_PREFIX}-zlib" ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -source=(http://ffmpeg.org/releases/$_realname-$pkgver.tar.bz2) -md5sums=('e2cc3c209f91393d35ab58598e41cf22') +source=(http://ffmpeg.org/releases/${_realname}-${pkgver}.tar.bz2) +md5sums=('5a16425b0bde1b952f58cff71b569a45') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 1d05b10cf2feb6312f88c3c81e605cab8965318a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 10 Jun 2015 15:53:38 +0300 Subject: [PATCH 1133/2060] python-pip: Update to 7.0.3 --- mingw-w64-python-pip/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-python-pip/PKGBUILD b/mingw-w64-python-pip/PKGBUILD index 6422889be1..9c31dfe4c4 100644 --- a/mingw-w64-python-pip/PKGBUILD +++ b/mingw-w64-python-pip/PKGBUILD @@ -2,7 +2,7 @@ _realname=pip pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=6.1.1 +pkgver=7.0.3 pkgrel=1 pkgdesc="An easy_install replacement for installing pypi python packages (mingw-w64)" arch=('any') @@ -13,13 +13,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(http://pypi.python.org/packages/source/p/pip/${_realname}-${pkgver}.tar.gz) -md5sums=('6b19e0a934d982a5a4b798e957cb6d45') +md5sums=('54cbf5ae000fb3af3367345f5d299d1c') prepare() { - cd "${srcdir}/${_realname}-${pkgver}" + #cd "${srcdir}/${_realname}-${pkgver}" #patch -p1 -i ${srcdir}/mingw-python-fix.patch - cd "${srcdir}" + #cd "${srcdir}" cp -r ${_realname}-${pkgver} ${_realname}-python2 cp -r ${_realname}-${pkgver} ${_realname}-python3 From 2e3f20a1c48d022b3f9f120d3cc319b08c458163 Mon Sep 17 00:00:00 2001 From: Yuta NAKAI Date: Thu, 11 Jun 2015 21:55:02 +0900 Subject: [PATCH 1134/2060] dcadec-git: New package. --- ...t-set-static-libgcc-on-mingw-systems.patch | 24 +++++ ...kefile-Install-windows-DLL-to-BINDIR.patch | 28 ++++++ ...le-On-windows-install-import-library.patch | 24 +++++ ...e-Add-API-version-suffix-to-DLL-Name.patch | 33 +++++++ .../0005-Makefile-Add-install-cut.patch | 25 +++++ mingw-w64-dcadec-git/PKGBUILD | 94 +++++++++++++++++++ 6 files changed, 228 insertions(+) create mode 100644 mingw-w64-dcadec-git/0001-Makefile-Don-t-set-static-libgcc-on-mingw-systems.patch create mode 100644 mingw-w64-dcadec-git/0002-Makefile-Install-windows-DLL-to-BINDIR.patch create mode 100644 mingw-w64-dcadec-git/0003-Makefile-On-windows-install-import-library.patch create mode 100644 mingw-w64-dcadec-git/0004-Makefile-Add-API-version-suffix-to-DLL-Name.patch create mode 100644 mingw-w64-dcadec-git/0005-Makefile-Add-install-cut.patch create mode 100644 mingw-w64-dcadec-git/PKGBUILD diff --git a/mingw-w64-dcadec-git/0001-Makefile-Don-t-set-static-libgcc-on-mingw-systems.patch b/mingw-w64-dcadec-git/0001-Makefile-Don-t-set-static-libgcc-on-mingw-systems.patch new file mode 100644 index 0000000000..ddc63d6be7 --- /dev/null +++ b/mingw-w64-dcadec-git/0001-Makefile-Don-t-set-static-libgcc-on-mingw-systems.patch @@ -0,0 +1,24 @@ +From f580b6d6388bf1731384dd7513681f976fce9edd Mon Sep 17 00:00:00 2001 +From: Yuta NAKAI +Date: Sat, 11 Apr 2015 11:46:04 +0900 +Subject: [PATCH 1/5] Makefile: Don't set -static-libgcc on mingw systems. + +--- + Makefile | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/Makefile b/Makefile +index a1ffc53..350c338 100644 +--- a/Makefile ++++ b/Makefile +@@ -104,7 +104,6 @@ ifdef CONFIG_SHARED + IMP_LIB = libdcadec/libdcadec$(DLLSUF)$(LIBSUF) + IMP_DEF = libdcadec/libdcadec.def + EXTRA_LIB = $(IMP_LIB) $(IMP_DEF) +- LDFLAGS_DLL += -static-libgcc + LDFLAGS_DLL += -Wl,--nxcompat,--dynamicbase + LDFLAGS_DLL += -Wl,--output-def,$(IMP_DEF) + LDFLAGS_DLL += -Wl,--out-implib,$(IMP_LIB) +-- +2.4.3 + diff --git a/mingw-w64-dcadec-git/0002-Makefile-Install-windows-DLL-to-BINDIR.patch b/mingw-w64-dcadec-git/0002-Makefile-Install-windows-DLL-to-BINDIR.patch new file mode 100644 index 0000000000..5e403cb9bd --- /dev/null +++ b/mingw-w64-dcadec-git/0002-Makefile-Install-windows-DLL-to-BINDIR.patch @@ -0,0 +1,28 @@ +From 6d5d46985ed50035f1dc77d7669842215a6cb9b3 Mon Sep 17 00:00:00 2001 +From: Yuta NAKAI +Date: Sat, 11 Apr 2015 12:15:19 +0900 +Subject: [PATCH 2/5] Makefile: Install windows DLL to BINDIR. + +--- + Makefile | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Makefile b/Makefile +index 350c338..65d68cc 100644 +--- a/Makefile ++++ b/Makefile +@@ -157,7 +157,11 @@ dcadec.pc: dcadec.pc.in + + install-lib: $(OUT_LIB) dcadec.pc + install -d -m 755 $(DESTDIR)$(LIBDIR) $(DESTDIR)$(LIBDIR)/pkgconfig $(DESTDIR)$(INCLUDEDIR)/libdcadec ++ifneq ($(and $(CONFIG_WINDOWS),$(CONFIG_SHARED)),) ++ install -m 755 $(OUT_LIB) $(DESTDIR)$(BINDIR) ++else + install -m 644 $(OUT_LIB) $(DESTDIR)$(LIBDIR) ++endif + install -m 644 $(addprefix $(SRC_DIR)/, $(INC_LIB)) $(DESTDIR)$(INCLUDEDIR)/libdcadec + install -m 644 dcadec.pc $(DESTDIR)$(LIBDIR)/pkgconfig + +-- +2.4.3 + diff --git a/mingw-w64-dcadec-git/0003-Makefile-On-windows-install-import-library.patch b/mingw-w64-dcadec-git/0003-Makefile-On-windows-install-import-library.patch new file mode 100644 index 0000000000..79372cb03b --- /dev/null +++ b/mingw-w64-dcadec-git/0003-Makefile-On-windows-install-import-library.patch @@ -0,0 +1,24 @@ +From 0a17a7a87a1a3bb3745f8b1643d170dc7a66ea6c Mon Sep 17 00:00:00 2001 +From: Yuta NAKAI +Date: Sat, 11 Apr 2015 12:19:19 +0900 +Subject: [PATCH 3/5] Makefile: On windows, install import library. + +--- + Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile b/Makefile +index 65d68cc..0f4c6c5 100644 +--- a/Makefile ++++ b/Makefile +@@ -159,6 +159,7 @@ install-lib: $(OUT_LIB) dcadec.pc + install -d -m 755 $(DESTDIR)$(LIBDIR) $(DESTDIR)$(LIBDIR)/pkgconfig $(DESTDIR)$(INCLUDEDIR)/libdcadec + ifneq ($(and $(CONFIG_WINDOWS),$(CONFIG_SHARED)),) + install -m 755 $(OUT_LIB) $(DESTDIR)$(BINDIR) ++ install -m 644 $(IMP_LIB) $(DESTDIR)$(LIBDIR) + else + install -m 644 $(OUT_LIB) $(DESTDIR)$(LIBDIR) + endif +-- +2.4.3 + diff --git a/mingw-w64-dcadec-git/0004-Makefile-Add-API-version-suffix-to-DLL-Name.patch b/mingw-w64-dcadec-git/0004-Makefile-Add-API-version-suffix-to-DLL-Name.patch new file mode 100644 index 0000000000..261fb5d742 --- /dev/null +++ b/mingw-w64-dcadec-git/0004-Makefile-Add-API-version-suffix-to-DLL-Name.patch @@ -0,0 +1,33 @@ +From 52ee72e4e5046d3e04b8c6c3c866d4cd6c607850 Mon Sep 17 00:00:00 2001 +From: Yuta NAKAI +Date: Wed, 29 Apr 2015 00:24:00 +0900 +Subject: [PATCH 4/5] Makefile: Add API version suffix to DLL Name. + +--- + Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 0f4c6c5..6a32ec3 100644 +--- a/Makefile ++++ b/Makefile +@@ -8,6 +8,7 @@ LIBDIR ?= $(PREFIX)/lib + INCLUDEDIR ?= $(PREFIX)/include + + SRC_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) ++API_VER=$(shell grep -e '\#define DCADEC_VERSION_MAJOR' $(SRC_DIR)/libdcadec/dca_context.h | awk '{ printf $$3 }') + vpath %.c $(SRC_DIR) + vpath %.h $(SRC_DIR) + vpath %.pc.in $(SRC_DIR) +@@ -33,7 +34,7 @@ else + endif + + ifdef CONFIG_SHARED +- OUT_LIB ?= libdcadec/libdcadec$(DLLSUF) ++ OUT_LIB ?= libdcadec/libdcadec-$(API_VER)$(DLLSUF) + else + OUT_LIB ?= libdcadec/libdcadec$(LIBSUF) + endif +-- +2.4.3 + diff --git a/mingw-w64-dcadec-git/0005-Makefile-Add-install-cut.patch b/mingw-w64-dcadec-git/0005-Makefile-Add-install-cut.patch new file mode 100644 index 0000000000..63b1f7c170 --- /dev/null +++ b/mingw-w64-dcadec-git/0005-Makefile-Add-install-cut.patch @@ -0,0 +1,25 @@ +From 65259407adf1eb5583284a93e2e4729bb8ae3678 Mon Sep 17 00:00:00 2001 +From: Yuta NAKAI +Date: Thu, 11 Jun 2015 20:49:45 +0900 +Subject: [PATCH 5/5] Makefile: Add install-cut. + +--- + Makefile | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Makefile b/Makefile +index 6a32ec3..e81f2fe 100644 +--- a/Makefile ++++ b/Makefile +@@ -171,4 +171,8 @@ install-dec: $(OUT_DEC) + install -d -m 755 $(DESTDIR)$(BINDIR) + install -m 755 $(OUT_DEC) $(DESTDIR)$(BINDIR) + ++install-cut: $(OUT_CUT) ++ install -d -m 755 $(DESTDIR)$(BINDIR) ++ install -m 755 $(OUT_CUT) $(DESTDIR)$(BINDIR) ++ + install: install-lib install-dec +-- +2.4.3 + diff --git a/mingw-w64-dcadec-git/PKGBUILD b/mingw-w64-dcadec-git/PKGBUILD new file mode 100644 index 0000000000..4a0b1c337f --- /dev/null +++ b/mingw-w64-dcadec-git/PKGBUILD @@ -0,0 +1,94 @@ +# Maintainer: Yuta Nakai + +_realname=dcadec +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgdesc='dcadec is a free DTS Coherent Acoustics decoder with support for HD extensions (mingw-w64)' +pkgver=0.0.0.207.2a9186e +pkgrel=1 +arch=('any') +url='https://github.com/foo86/dcadec.git' +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" 'git') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +source=("${_realname}"::'git+https://github.com/foo86/dcadec.git' + '0001-Makefile-Don-t-set-static-libgcc-on-mingw-systems.patch' + '0002-Makefile-Install-windows-DLL-to-BINDIR.patch' + '0003-Makefile-On-windows-install-import-library.patch' + '0004-Makefile-Add-API-version-suffix-to-DLL-Name.patch' + '0005-Makefile-Add-install-cut.patch') +sha512sums=('SKIP' + '80469f7ad04d7c247dda9c56d7aa9771c3b6ddd8aa238604be7b325ae7ac87cbdfa8668d2212adfa69ddaad3bdd7cad631f0b226255fb5cb6b432f66f6dc8de3' + 'ec11e3a5c300f709f8660c411aaafc98982100a346ad28242640103c2147aaa6dbefdb2a24e5d9198e29111f95fa18faccfd2394a9677c305028e049b4b9879f' + 'f2f7b99dcaf6f4b9d1ffd2ed0dd6f61c6eaba6ee7425752f428e864cec135fc6a4c6c6cf001bfc598ba4a8a487b85a59cfba93a5f59d71bc4a286400efbea985' + '6bebd8dba0d7b6dd39c69cb891e4103a47a006b7ad4ee110e9c81e3af70a3aa42d803744790d7150e701d1ea15851929ec23bc5c958ab69d3543774a8ad4fe83' + '9ae1446ac65d635858afa05f90734990d08096758bf03a24b9a74d98255643d90badd905e2718eeb97c4a79375c6714585d43c69f47e573d0d7497cc55dcd018') + +pkgver() { + cd "${srcdir}"/$_realname + local _major=$(grep -e '\#define DCADEC_VERSION_MAJOR' libdcadec/dca_context.h | awk '{ printf $3 }') + local _minor=$(grep -e '\#define DCADEC_VERSION_MINOR' libdcadec/dca_context.h | awk '{ printf $3 }') + local _patch=$(grep -e '\#define DCADEC_VERSION_PATCH' libdcadec/dca_context.h | awk '{ printf $3 }') + printf "%s.%s.%s.%s.%s" "${_major}" "${_minor}" "${_patch}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}"/$_realname + + patch -p1 -i "${srcdir}"/0001-Makefile-Don-t-set-static-libgcc-on-mingw-systems.patch + patch -p1 -i "${srcdir}"/0002-Makefile-Install-windows-DLL-to-BINDIR.patch + patch -p1 -i "${srcdir}"/0003-Makefile-On-windows-install-import-library.patch + patch -p1 -i "${srcdir}"/0004-Makefile-Add-API-version-suffix-to-DLL-Name.patch + patch -p1 -i "${srcdir}"/0005-Makefile-Add-install-cut.patch +} + +build() { + # Build shared lib and exe. + mkdir -p "${srcdir}"/build-shared-$CARCH + cd "${srcdir}"/build-shared-$CARCH + + make clean -f ../${_realname}/Makefile + + PREFIX=$MINGW_PREFIX \ + CONFIG_NDEBUG=1 \ + CONFIG_WINDOWS=1 \ + CONFIG_SHARED=1 \ + CC=gcc \ + make all -f ../${_realname}/Makefile + + # Build static lib. + mkdir -p "${srcdir}"/build-static-$CARCH + cd "${srcdir}"/build-static-$CARCH + + make clean -f ../${_realname}/Makefile + + PREFIX=$MINGW_PREFIX \ + CONFIG_NDEBUG=1 \ + CONFIG_WINDOWS=1 \ + CC=gcc \ + make lib -f ../${_realname}/Makefile +} + +package() { + # Install shared lib and exe. + cd "${srcdir}"/build-shared-$CARCH + + PREFIX=$MINGW_PREFIX \ + CONFIG_NDEBUG=1 \ + CONFIG_WINDOWS=1 \ + CONFIG_SHARED=1 \ + DESTDIR="${pkgdir}" \ + make install install-cut -f ../${_realname}/Makefile + + # Install static lib. + cd "${srcdir}"/build-static-$CARCH + + PREFIX=$MINGW_PREFIX \ + CONFIG_NDEBUG=1 \ + CONFIG_WINDOWS=1 \ + DESTDIR="${pkgdir}" \ + make install-lib -f ../${_realname}/Makefile + + # Install LICENSE file. + cd "${srcdir}"/$_realname + install -Dm644 COPYING.LGPLv2.1 "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE +} From 7a2a2d99ab12b2a1cee0393cc554557ea51f891e Mon Sep 17 00:00:00 2001 From: Yuta NAKAI Date: Thu, 11 Jun 2015 23:13:45 +0900 Subject: [PATCH 1135/2060] x265: Install 10 bit-depth dll (libx265_main10.dll). The dll is for applications which can use x265 multi-library interface. e.g. x265.exe and ffmpeg.exe. --- mingw-w64-x265/PKGBUILD | 47 +++++++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/mingw-w64-x265/PKGBUILD b/mingw-w64-x265/PKGBUILD index 616d004902..eb67377679 100644 --- a/mingw-w64-x265/PKGBUILD +++ b/mingw-w64-x265/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov +# Contributor: Yuta Nakai _realname=x265 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.7 -pkgrel=1 +pkgrel=2 pkgdesc='Open Source H265/HEVC video encoder (mingw-w64)' arch=('any') license=('GPL') @@ -17,24 +18,56 @@ md5sums=('d6020c277b05ab44f8222342aaa9c99f' 'c1dc65fc3191d6bafdd3576235ade5ae') prepare() { - cd multicoreware-x265-* - patch -p1 -i ${srcdir}/install-shared-library.patch + cd "${srcdir}"/multicoreware-x265-* + patch -p1 -i "${srcdir}"/install-shared-library.patch } build() { - cd multicoreware-x265-*/build/msys + # Build 8 bit-depth lib and exe. + cd "${srcdir}"/multicoreware-x265-*/build/msys + if [ -d 8bit ]; then + rm -fr 8bit + fi + mkdir -p 8bit + cd 8bit + ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - ../../source + ../../../source + make + + # Build 10 bit-depth dll for x265_api_get. + if [ -d ../10bit ]; then + rm -fr ../10bit + fi + mkdir -p ../10bit + cd ../10bit + + if [ "${CARCH}" = 'i686' ]; then + _ENABLE_ASM=OFF + else + _ENABLE_ASM=ON + fi + + ${MINGW_PREFIX}/bin/cmake \ + -G "MSYS Makefiles" \ + -DHIGH_BIT_DEPTH=ON \ + -DENABLE_ASSEMBLY=$_ENABLE_ASM \ + -DENABLE_CLI=OFF \ + ../../../source make } package() { - cd multicoreware-x265-*/build/msys + cd "${srcdir}"/multicoreware-x265-*/build/msys/8bit make install local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/x265.pc + -i "${pkgdir}"${MINGW_PREFIX}/lib/pkgconfig/x265.pc + + # Install 10 bit-depth dll. + cd "${srcdir}"/multicoreware-x265-*/build/msys/10bit + install -m 755 libx265.dll "${pkgdir}"/${MINGW_PREFIX}/bin/libx265_main10.dll } From a932944e210068fc4ae5a8324412b3208db2fdec Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Fri, 12 Jun 2015 10:53:23 -0400 Subject: [PATCH 1136/2060] Fix MSW version of wxDC mirrored rendering regression in wxWidgets version 3.0.2. --- mingw-w64-wxwidgets/PKGBUILD | 13 ++++++++----- .../wxWidgets-3.0.2-msw-dc-orientation-fix.patch | 13 +++++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-wxwidgets/wxWidgets-3.0.2-msw-dc-orientation-fix.patch diff --git a/mingw-w64-wxwidgets/PKGBUILD b/mingw-w64-wxwidgets/PKGBUILD index fba46ee5f6..c78bc40ab3 100644 --- a/mingw-w64-wxwidgets/PKGBUILD +++ b/mingw-w64-wxwidgets/PKGBUILD @@ -5,7 +5,7 @@ _realname=wxWidgets pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2 -pkgrel=8 +pkgrel=9 pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)" arch=('any') license=("custom:wxWindows") @@ -23,13 +23,16 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2") options=('strip' 'staticlibs' 'buildflags') source=(http://downloads.sourceforge.net/wxwindows/wxWidgets-${pkgver}.tar.bz2 - "wxWidgets-3.0.0-gcc-codelight.patch") + "wxWidgets-3.0.0-gcc-codelight.patch" + "wxWidgets-3.0.2-msw-dc-orientation-fix.patch") sha1sums=('6461eab4428c0a8b9e41781b8787510484dea800' - '05a3471dcf735d86defe0df00dcb8e9ff0698290') + '05a3471dcf735d86defe0df00dcb8e9ff0698290' + '99999865476ce03bb75e8244806f3585fe9e71e2') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/wxWidgets-3.0.0-gcc-codelight.patch + patch -p1 -i ${srcdir}/wxWidgets-3.0.2-msw-dc-orientation-fix.patch } build() { @@ -57,7 +60,7 @@ build() { --with-opengl make #VERBOSE=1 - + #CXXFLAGS+=" -std=gnu++11" [[ -d ${srcdir}/build-${CARCH}-static ]] && rm -rf ${srcdir}/build-${CARCH}-static mkdir -p ${srcdir}/build-${CARCH}-static && cd ${srcdir}/build-${CARCH}-static @@ -88,7 +91,7 @@ build() { package() { cd ${srcdir}/build-${CARCH} make DESTDIR="${pkgdir}" install - + cd ${srcdir}/build-${CARCH}-static make DESTDIR="${pkgdir}" install diff --git a/mingw-w64-wxwidgets/wxWidgets-3.0.2-msw-dc-orientation-fix.patch b/mingw-w64-wxwidgets/wxWidgets-3.0.2-msw-dc-orientation-fix.patch new file mode 100644 index 0000000000..28969f62db --- /dev/null +++ b/mingw-w64-wxwidgets/wxWidgets-3.0.2-msw-dc-orientation-fix.patch @@ -0,0 +1,13 @@ +diff --git a/src/msw/dc.cpp b/src/msw/dc.cpp +index abd8956..d9168af 100644 +--- a/src/msw/dc.cpp ++++ b/src/msw/dc.cpp +@@ -2007,7 +2007,7 @@ void wxMSWDCImpl::RealizeScaleAndOrigin() + // Becaue only devExtX/logExtX ratio and devExtY/logExtY ratio are counted + // we can reduce the fractions to avoid large absolute numbers + // and possible arithmetic overflows. +- unsigned int gcd = CalcGCD(abs(devExtX), abs(logExtX)); ++ int gcd = CalcGCD(abs(devExtX), abs(logExtX)); + devExtX /= gcd; + logExtX /= gcd; + gcd = CalcGCD(abs(devExtY), abs(logExtY)); From 525d44051ae191230243460555c34fbfeeede1a5 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Fri, 12 Jun 2015 18:33:33 -0400 Subject: [PATCH 1137/2060] wxWidgets: Fix MSW version of wxDC mirrored rendering regression. --- mingw-w64-wxwidgets/PKGBUILD | 13 ++++++++----- .../wxWidgets-3.0.2-msw-dc-orientation-fix.patch | 13 +++++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-wxwidgets/wxWidgets-3.0.2-msw-dc-orientation-fix.patch diff --git a/mingw-w64-wxwidgets/PKGBUILD b/mingw-w64-wxwidgets/PKGBUILD index fba46ee5f6..c78bc40ab3 100644 --- a/mingw-w64-wxwidgets/PKGBUILD +++ b/mingw-w64-wxwidgets/PKGBUILD @@ -5,7 +5,7 @@ _realname=wxWidgets pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2 -pkgrel=8 +pkgrel=9 pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)" arch=('any') license=("custom:wxWindows") @@ -23,13 +23,16 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2") options=('strip' 'staticlibs' 'buildflags') source=(http://downloads.sourceforge.net/wxwindows/wxWidgets-${pkgver}.tar.bz2 - "wxWidgets-3.0.0-gcc-codelight.patch") + "wxWidgets-3.0.0-gcc-codelight.patch" + "wxWidgets-3.0.2-msw-dc-orientation-fix.patch") sha1sums=('6461eab4428c0a8b9e41781b8787510484dea800' - '05a3471dcf735d86defe0df00dcb8e9ff0698290') + '05a3471dcf735d86defe0df00dcb8e9ff0698290' + '99999865476ce03bb75e8244806f3585fe9e71e2') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/wxWidgets-3.0.0-gcc-codelight.patch + patch -p1 -i ${srcdir}/wxWidgets-3.0.2-msw-dc-orientation-fix.patch } build() { @@ -57,7 +60,7 @@ build() { --with-opengl make #VERBOSE=1 - + #CXXFLAGS+=" -std=gnu++11" [[ -d ${srcdir}/build-${CARCH}-static ]] && rm -rf ${srcdir}/build-${CARCH}-static mkdir -p ${srcdir}/build-${CARCH}-static && cd ${srcdir}/build-${CARCH}-static @@ -88,7 +91,7 @@ build() { package() { cd ${srcdir}/build-${CARCH} make DESTDIR="${pkgdir}" install - + cd ${srcdir}/build-${CARCH}-static make DESTDIR="${pkgdir}" install diff --git a/mingw-w64-wxwidgets/wxWidgets-3.0.2-msw-dc-orientation-fix.patch b/mingw-w64-wxwidgets/wxWidgets-3.0.2-msw-dc-orientation-fix.patch new file mode 100644 index 0000000000..28969f62db --- /dev/null +++ b/mingw-w64-wxwidgets/wxWidgets-3.0.2-msw-dc-orientation-fix.patch @@ -0,0 +1,13 @@ +diff --git a/src/msw/dc.cpp b/src/msw/dc.cpp +index abd8956..d9168af 100644 +--- a/src/msw/dc.cpp ++++ b/src/msw/dc.cpp +@@ -2007,7 +2007,7 @@ void wxMSWDCImpl::RealizeScaleAndOrigin() + // Becaue only devExtX/logExtX ratio and devExtY/logExtY ratio are counted + // we can reduce the fractions to avoid large absolute numbers + // and possible arithmetic overflows. +- unsigned int gcd = CalcGCD(abs(devExtX), abs(logExtX)); ++ int gcd = CalcGCD(abs(devExtX), abs(logExtX)); + devExtX /= gcd; + logExtX /= gcd; + gcd = CalcGCD(abs(devExtY), abs(logExtY)); From 6c96c1c58f083b873f81b7f7252f05d4daee3464 Mon Sep 17 00:00:00 2001 From: Shreeshrii Date: Sun, 14 Jun 2015 14:20:47 +0530 Subject: [PATCH 1138/2060] change source to github All recent changes are only being made on github. Please update the source files. --- mingw-w64-tesseract-ocr/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-tesseract-ocr/PKGBUILD b/mingw-w64-tesseract-ocr/PKGBUILD index 84eab02142..27ba2fd3bf 100644 --- a/mingw-w64-tesseract-ocr/PKGBUILD +++ b/mingw-w64-tesseract-ocr/PKGBUILD @@ -7,7 +7,7 @@ pkgver=3.04.rc1.master pkgrel=1 pkgdesc="Tesseract OCR (mingw-w64)" arch=('any') -url="https://code.google.com/p/tesseract-ocr/" +url="https://github.com/tesseract-ocr/tesseract" license=("Apache License 2.0") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs @@ -17,7 +17,7 @@ depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-pango ${MINGW_PACKAGE_PREFIX}-zlib) options=('!libtool' 'strip') -source=("https://tesseract-ocr.googlecode.com/archive/master.tar.gz" +source=("https://github.com/tesseract-ocr/tesseract/archive/master.zip" ) sha256sums=('SKIP' ) From 4fd8149bc0c03c9a9f8ddf28667500baea35e353 Mon Sep 17 00:00:00 2001 From: Shreeshrii Date: Sun, 14 Jun 2015 18:00:25 +0530 Subject: [PATCH 1139/2060] Change Tesseract-ocr source to use github Tesseract-ocr project has moved to github and all new changes are being made here. --- mingw-w64-tesseract-ocr/PKGBUILD | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mingw-w64-tesseract-ocr/PKGBUILD b/mingw-w64-tesseract-ocr/PKGBUILD index 27ba2fd3bf..dc7c0f5d3d 100644 --- a/mingw-w64-tesseract-ocr/PKGBUILD +++ b/mingw-w64-tesseract-ocr/PKGBUILD @@ -17,8 +17,7 @@ depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-pango ${MINGW_PACKAGE_PREFIX}-zlib) options=('!libtool' 'strip') -source=("https://github.com/tesseract-ocr/tesseract/archive/master.zip" -) +source=("https://github.com/tesseract-ocr/tesseract/archive/master.zip") sha256sums=('SKIP' ) prepare() { From 5888ecab692f231bc49a66babed8661512e97fc3 Mon Sep 17 00:00:00 2001 From: Shreeshrii Date: Sun, 14 Jun 2015 18:12:06 +0530 Subject: [PATCH 1140/2060] Use Tesseract-ocr Traineddata from github Tesseract ocr project has moved to github --- mingw-w64-tesseract-ocr-osd/PKGBUILD | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mingw-w64-tesseract-ocr-osd/PKGBUILD b/mingw-w64-tesseract-ocr-osd/PKGBUILD index eaad77a5c1..7d2d9a7639 100644 --- a/mingw-w64-tesseract-ocr-osd/PKGBUILD +++ b/mingw-w64-tesseract-ocr-osd/PKGBUILD @@ -1,26 +1,26 @@ # Maintainer: Alexey Pavlov # Maintainer: Ray Donnelly # The traineddata files from the source should be unpacked in tesseract ocr's tessdata directory -# this source tar.gz does not contain any makefile + _realname=tesseract-ocr-osd pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.03.298e31465a44 +pkgver=3.04.rc1 pkgrel=1 -pkgdesc=" Orientation & Script Detection Data data (3.01) for Tesseract OCR engine (mingw-w64)" +pkgdesc="Orientation & Script Detection Data data for Tesseract OCR engine" arch=('any') -url="https://code.google.com/p/tesseract-ocr/" +url="https://github.com/tesseract-ocr/tessdata" license=("Apache License 2.0") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-tesseract-ocr ${MINGW_PACKAGE_PREFIX}-zlib) options=('!libtool' 'strip') -source=("https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.01.osd.tar.gz") -sha256sums=('a559801a42be8a3dc15ae2ec27da99bd8b0b85ac') +source=("https://github.com/tesseract-ocr/tessdata/blob/master/osd.traineddata") +sha256sums=('SKIP') prepare() { - cd "$srcdir/${_realname}-298e31465a44" + cd "$srcdir/${_realname}-master" } build() { @@ -29,7 +29,7 @@ build() { cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/${_realname}-298e31465a44/configure \ + ${srcdir}/${_realname}-master/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ From d95f76d47a05e324153cef13dfaac2f4dfc2d3b8 Mon Sep 17 00:00:00 2001 From: Shreeshrii Date: Sun, 14 Jun 2015 18:21:01 +0530 Subject: [PATCH 1141/2060] Use Tesseract-ocr Traineddata from github Tesseract OCR project has moved to gothub and all new changes are being made here only. --- mingw-w64-tesseract-ocr-eng/PKGBUILD | 34 ++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/mingw-w64-tesseract-ocr-eng/PKGBUILD b/mingw-w64-tesseract-ocr-eng/PKGBUILD index f4d5f74a86..caf5228ff3 100644 --- a/mingw-w64-tesseract-ocr-eng/PKGBUILD +++ b/mingw-w64-tesseract-ocr-eng/PKGBUILD @@ -1,27 +1,43 @@ # Maintainer: Alexey Pavlov # Maintainer: Ray Donnelly -# The traineddata files from the source should be unpacked in tesseract ocr's tessdata directory -# this source tar.gz does not contain any makefile +# The traineddata and related files for english should be placed in tesseract ocr's tessdata directory + _realname=tesseract-ocr-eng pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.03.298e31465a44 +pkgver=3.04.rc1.master pkgrel=1 -pkgdesc="English language data (3.02) for Tesseract OCR engine (mingw-w64)" +pkgdesc="English language data for Tesseract OCR engine (mingw-w64)" arch=('any') -url="https://code.google.com/p/tesseract-ocr/" +url="https://github.com/tesseract-ocr/tessdata" license=("Apache License 2.0") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-tesseract-ocr ${MINGW_PACKAGE_PREFIX}-zlib) options=('!libtool' 'strip') -source=("https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.eng.tar.gz" +source=("https://github.com/tesseract-ocr/tessdata/blob/master/eng.traineddata" + "https://github.com/tesseract-ocr/tessdata/blob/master/eng.cube.bigrams" + "https://github.com/tesseract-ocr/tessdata/blob/master/eng.cube.fold" + "https://github.com/tesseract-ocr/tessdata/blob/master/eng.cube.lm" + "https://github.com/tesseract-ocr/tessdata/blob/master/eng.cube.nn" + "https://github.com/tesseract-ocr/tessdata/blob/master/eng.cube.params" + "https://github.com/tesseract-ocr/tessdata/blob/master/eng.cube.size" + "https://github.com/tesseract-ocr/tessdata/blob/master/eng.cube.word-freq" + "https://github.com/tesseract-ocr/tessdata/blob/master/eng.tesseract_cube.nn" ) -sha256sums=('989ed4c3a5b246d7353893e466c353099d8b73a1' +sha256sums=('SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' ) prepare() { - cd "$srcdir/${_realname}-298e31465a44" + cd "$srcdir/${_realname}-master" } build() { @@ -30,7 +46,7 @@ build() { cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/${_realname}-298e31465a44/configure \ + ${srcdir}/${_realname}-master/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ From 3c379f93321693de90263460a30ff5977b4c6fea Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 15 Jun 2015 02:12:45 +0100 Subject: [PATCH 1142/2060] freerdp: New package (WIP) --- mingw-w64-freerdp-git/PKGBUILD | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 mingw-w64-freerdp-git/PKGBUILD diff --git a/mingw-w64-freerdp-git/PKGBUILD b/mingw-w64-freerdp-git/PKGBUILD new file mode 100644 index 0000000000..f926f60c39 --- /dev/null +++ b/mingw-w64-freerdp-git/PKGBUILD @@ -0,0 +1,50 @@ +# (MSYS2) Maintainer: Ray Donnelly +# (ArchLinux) Maintainer: Christian Hesse +# (ArchLinux) Contributor: Alexey Vasiliev + +_realname=freerdp-git +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgdesc="Free RDP client (mingw-w64)" +pkgver=r8559.9fe7ad2 +pkgrel=1 +depends=("${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-ffmpeg") +makedepends=("git" + "${MINGW_PACKAGE_PREFIX}-cmake") +arch=('any') +url="http://www.freerdp.com/" +license=('Apache License 2.0') +provides=("${MINGW_PACKAGE_PREFIX}-freerdp") +source=("${_realname}::git://github.com/FreeRDP/FreeRDP.git") + +sha256sums=('SKIP') + +pkgver() { + cd "$srcdir"/${_realname} + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}"/${_realname} +} + +build() { + [ -d ${CARCH}-build ] && rm -rf ${CARCH}-build + mkdir ${CARCH}-build + cd ${CARCH}-build + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX \ + cmake -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_WINDOWS_VERSION="WINXP" \ + -DWITH_PULSE=OFF \ + -DWITH_SERVER=ON \ + -DMSVC_RUNTIME="dynamic" \ + -G'MSYS Makefiles' \ + ../${_realname} + make VERBOSE=1 +} + +package() { + cd ${CARCH}-build + make DESTDIR="${pkgdir}/" install +} From 6ca234371f8a32f8210c7e251d2a75b780ed7fa6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 15 Jun 2015 09:07:54 +0300 Subject: [PATCH 1143/2060] qtbinpatcher: Update to 2.1.4 --- .../001-minimize-files-touching.patch | 19 +++++++++++-------- mingw-w64-qtbinpatcher/PKGBUILD | 10 +++++----- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch b/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch index 3495747d8f..5aa9c7fae7 100644 --- a/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch +++ b/mingw-w64-qtbinpatcher/001-minimize-files-touching.patch @@ -1,18 +1,19 @@ ---- qtbinpatcher-2.1.3/QtBinPatcher.cpp.orig 2015-04-28 13:25:04.642600000 +0300 -+++ qtbinpatcher-2.1.3/QtBinPatcher.cpp 2015-04-28 13:32:03.050200000 +0300 -@@ -255,29 +255,31 @@ +--- qtbinpatcher-2.1.4/QtBinPatcher.cpp.orig 2015-04-28 13:25:04.642600000 +0300 ++++ qtbinpatcher-2.1.4/QtBinPatcher.cpp 2015-04-28 13:32:03.050200000 +0300 +@@ -255,32 +255,34 @@ // Files for patching in Qt4. static const TElement Elements4[] = { { "/lib/", "*.prl", false }, - { "/demos/shared/", "libdemo_shared.prl", false }, -- { "/lib/pkgconfig/", "*.pc", false }, + { "/share/qt4/demos/shared/", "libdemo_shared.prl", false }, -+ { "/lib/pkgconfig/", "Qt*.pc", false }, + { "/lib/pkgconfig/", "Qt*.pc", false }, + { "/lib/pkgconfig/", "phonon*.pc", false }, #if defined(OS_WINDOWS) - { "/mkspecs/default/", "qmake.conf", false }, + { "/share/qt4/mkspecs/default/", "qmake.conf", false }, { "/", ".qmake.cache", false } #elif defined(OS_LINUX) + { "/lib/pkgconfig/", "qt*.pc", false }, { "/lib/", "*.la", false }, { "/mkspecs/", "qconfig.pri", false } #endif @@ -22,15 +23,17 @@ static const TElement Elements5[] = { - { "/", "*.la", true }, - { "/", "*.prl", true }, -- { "/", "*.pc", true }, +- { "/lib/pkgconfig/", "Qt5*.pc", true }, +- { "/lib/pkgconfig/", "Enginio*.pc", true }, - { "/", "*.pri", true }, - { "/lib/cmake/Qt5LinguistTools/", "Qt5LinguistToolsConfig.cmake", false }, - { "/mkspecs/default-host/", "qmake.conf", false }, +#if !defined(OS_WINDOWS) + { "/", "*.la", true }, +#endif -+ { "/lib/", "*.prl", false }, -+ { "/lib/pkgconfig/", "Qt*.pc", false }, ++ { "/lib/", "*.prl", true }, ++ { "/lib/pkgconfig/", "Qt5*.pc", true }, ++ { "/lib/pkgconfig/", "Enginio*.pc", true }, + { "/share/qt5/", "*.pri", true }, + { "/lib/cmake/Qt5LinguistTools/", "Qt5LinguistToolsConfig.cmake", false }, + { "/share/qt5/mkspecs/default-host/", "qmake.conf", false }, diff --git a/mingw-w64-qtbinpatcher/PKGBUILD b/mingw-w64-qtbinpatcher/PKGBUILD index bcb05cfdb5..54127273f0 100644 --- a/mingw-w64-qtbinpatcher/PKGBUILD +++ b/mingw-w64-qtbinpatcher/PKGBUILD @@ -2,8 +2,8 @@ _realname=qtbinpatcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.3 -pkgrel=4 +pkgver=2.1.4 +pkgrel=1 pkgdesc="Patcher for Qt libraries (mingw-w64)" arch=('any') url="http://tver-soft.org" @@ -12,12 +12,12 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") options=('staticlibs' 'strip') source=(http://tver-soft.org/dl/${_realname}-${pkgver}.tar.bz2 001-minimize-files-touching.patch) -md5sums=('4f00aa6601864533589ce30ed39fe2cd' - '17486592cdb1de4defde22b002094376') +md5sums=('2a2d77cf6d8b423977c177bb3b8f4288' + 'c3c99f967b7c619d351740f155adc012') prepare() { cd ${srcdir}/${_realname}-${pkgver} - #patch -p1 -i ${srcdir}/001-minimize-files-touching.patch + patch -p1 -i ${srcdir}/001-minimize-files-touching.patch } build() { From b78ab10709fcda1c4220a4b2fbc7607293238656 Mon Sep 17 00:00:00 2001 From: bansan85 Date: Mon, 15 Jun 2015 22:07:33 +0200 Subject: [PATCH 1144/2060] gettext: make libintl.h compatible with Visual Studio. --- mingw-w64-gettext/08-vs-compatible.patch | 11 +++++++++++ mingw-w64-gettext/PKGBUILD | 7 +++++-- 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-gettext/08-vs-compatible.patch diff --git a/mingw-w64-gettext/08-vs-compatible.patch b/mingw-w64-gettext/08-vs-compatible.patch new file mode 100644 index 0000000000..d6413ad508 --- /dev/null +++ b/mingw-w64-gettext/08-vs-compatible.patch @@ -0,0 +1,11 @@ +--- gettext-runtime/intl/libgnuintl.in.h.old 2015-06-15 10:40:11.594942600 +0200 ++++ gettext-runtime/intl/libgnuintl.in.h 2015-06-15 10:40:50.579345400 +0200 +@@ -336,7 +336,7 @@ extern int vfprintf (FILE *, const char + + #if !(defined printf && defined _GL_STDIO_H) /* don't override gnulib */ + #undef printf +-#if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__ ++#if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__ || defined _MSC_VER + /* Don't break __attribute__((format(printf,M,N))). + This redefinition is only possible because the libc in NetBSD, Cygwin, + mingw does not have a function __printf__. diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index e0bf1fabef..31bcc3c1b0 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -22,7 +22,8 @@ source=("http://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-$pkgver.tar.gz"{,. 04-mingw-script-slash-fix.mingw.patch 05-always-use-libintl-vsnprintf.mingw.patch 06-dont-include-ctype-after-gnulibs-wctype.mingw.patch - 07-fix-asprintf-conflict.mingw.patch) + 07-fix-asprintf-conflict.mingw.patch + 08-vs-compatible.patch) md5sums=('d3511af1e604a3478900d2c2b4a4a48e' 'SKIP' '397d7d6d4abd15a70edb3c9f2bab4cd2' @@ -30,7 +31,8 @@ md5sums=('d3511af1e604a3478900d2c2b4a4a48e' '0f754bf438368854ef63886715a3b023' '27852a388b8cf38188dc392c244230ff' 'f69747f43f279b8a81286cfe5916b82f' - '3ebccf730ec3377b068027eb2283afb2') + '3ebccf730ec3377b068027eb2283afb2' + 'f5b611172ae58f1e4589a8d0c1d53414') prepare() { cd "$srcdir/${_realname}-$pkgver" @@ -44,6 +46,7 @@ prepare() { patch -p0 -i ${srcdir}/05-always-use-libintl-vsnprintf.mingw.patch patch -p0 -i ${srcdir}/06-dont-include-ctype-after-gnulibs-wctype.mingw.patch patch -p0 -i ${srcdir}/07-fix-asprintf-conflict.mingw.patch + patch -p0 -i ${srcdir}/08-vs-compatible.patch #patch -p1 -i ${srcdir}/120-Fix-Woe32-link-errors-when-compiling-with-O0.patch # libtoolize --automake --copy --force From 6d7b7d8ea8d1b42ac7f9182d85fd63d057b45163 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 15 Jun 2015 21:36:24 +0100 Subject: [PATCH 1145/2060] mingw-w64-headers: add d3d11 videodecoder patch --- .../0006-Add-d3d11-video-decoder.patch | 1188 +++++++++++++++++ mingw-w64-headers-git/PKGBUILD | 7 +- 2 files changed, 1193 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch diff --git a/mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch b/mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch new file mode 100644 index 0000000000..947ae70ec7 --- /dev/null +++ b/mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch @@ -0,0 +1,1188 @@ +From fae1ef8915b40d57ddd0e1cfd3526526d3137861 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sun, 14 Jun 2015 21:07:03 +0100 +Subject: [PATCH] Add d3d11 video decoder + + +diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h +index e49fd99..834a536 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.h ++++ b/mingw-w64-headers/direct-x/include/d3d11.h +@@ -8850,6 +8850,955 @@ void __RPC_STUB ID3D11Device_GetExceptionMode_Stub( + + #endif /* __ID3D11Device_INTERFACE_DEFINED__ */ + ++typedef enum D3D11_VDOV_DIMENSION { ++ D3D11_VDOV_DIMENSION_UNKNOWN = 0, ++ D3D11_VDOV_DIMENSION_TEXTURE2D = 1 ++} D3D11_VDOV_DIMENSION; ++typedef struct D3D11_TEX2D_VDOV { ++ UINT ArraySlice; ++} D3D11_TEX2D_VDOV; ++typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC { ++ GUID DecodeProfile; ++ D3D11_VDOV_DIMENSION ViewDimension; ++ __C89_NAMELESS union { ++ D3D11_TEX2D_VDOV Texture2D; ++ } __C89_NAMELESSUNIONNAME; ++} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; ++/***************************************************************************** ++ * ID3D11VideoDecoderOutputView interface ++ */ ++#ifndef __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ ++#define __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("c2931aea-2a85-4f20-860f-fba1fd256e18") ++ID3D11VideoDecoderOutputView : public ID3D11View ++{ ++ virtual void STDMETHODCALLTYPE GetDesc( ++ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18) ++#endif ++#else ++typedef struct ID3D11VideoDecoderOutputViewVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11VideoDecoderOutputView* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11VideoDecoderOutputView* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11VideoDecoderOutputView* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11VideoDecoderOutputView* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11VideoDecoderOutputView* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11VideoDecoderOutputView* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11VideoDecoderOutputView* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ /*** ID3D11View methods ***/ ++ void (STDMETHODCALLTYPE *GetResource)( ++ ID3D11VideoDecoderOutputView* This, ++ ID3D11Resource **ppResource); ++ ++ /*** ID3D11VideoDecoderOutputView methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc)( ++ ID3D11VideoDecoderOutputView* This, ++ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); ++ ++ END_INTERFACE ++} ID3D11VideoDecoderOutputViewVtbl; ++interface ID3D11VideoDecoderOutputView { ++ CONST_VTBL ID3D11VideoDecoderOutputViewVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11VideoDecoderOutputView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11VideoDecoderOutputView_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11VideoDecoderOutputView_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11VideoDecoderOutputView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11VideoDecoderOutputView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11VideoDecoderOutputView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11VideoDecoderOutputView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++/*** ID3D11View methods ***/ ++#define ID3D11VideoDecoderOutputView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource) ++/*** ID3D11VideoDecoderOutputView methods ***/ ++#define ID3D11VideoDecoderOutputView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_QueryInterface(ID3D11VideoDecoderOutputView* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11VideoDecoderOutputView_AddRef(ID3D11VideoDecoderOutputView* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11VideoDecoderOutputView_Release(ID3D11VideoDecoderOutputView* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11VideoDecoderOutputView_GetDevice(ID3D11VideoDecoderOutputView* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_GetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_SetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_SetPrivateDataInterface(ID3D11VideoDecoderOutputView* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++/*** ID3D11View methods ***/ ++static FORCEINLINE void ID3D11VideoDecoderOutputView_GetResource(ID3D11VideoDecoderOutputView* This,ID3D11Resource **ppResource) { ++ This->lpVtbl->GetResource(This,ppResource); ++} ++/*** ID3D11VideoDecoderOutputView methods ***/ ++static FORCEINLINE void ID3D11VideoDecoderOutputView_GetDesc(ID3D11VideoDecoderOutputView* This,D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) { ++ This->lpVtbl->GetDesc(This,pDesc); ++} ++#endif ++#endif ++ ++#endif ++ ++void STDMETHODCALLTYPE ID3D11VideoDecoderOutputView_GetDesc_Proxy( ++ ID3D11VideoDecoderOutputView* This, ++ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); ++void __RPC_STUB ID3D11VideoDecoderOutputView_GetDesc_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ */ ++ ++/***************************************************************************** ++ * ID3D11VideoDecoder interface ++ */ ++#ifndef __ID3D11VideoDecoder_INTERFACE_DEFINED__ ++#define __ID3D11VideoDecoder_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("3c9c5b51-995d-48d1-9b8d-fa5caeded65c") ++ID3D11VideoDecoder : public ID3D11DeviceChild ++{ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c) ++#endif ++#else ++typedef struct ID3D11VideoDecoderVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11VideoDecoder* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11VideoDecoder* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11VideoDecoder* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11VideoDecoder* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11VideoDecoder* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11VideoDecoder* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11VideoDecoder* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ END_INTERFACE ++} ID3D11VideoDecoderVtbl; ++interface ID3D11VideoDecoder { ++ CONST_VTBL ID3D11VideoDecoderVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11VideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11VideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11VideoDecoder_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11VideoDecoder_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11VideoDecoder_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11VideoDecoder_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoDecoder_QueryInterface(ID3D11VideoDecoder* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11VideoDecoder_AddRef(ID3D11VideoDecoder* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11VideoDecoder_Release(ID3D11VideoDecoder* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11VideoDecoder_GetDevice(ID3D11VideoDecoder* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoder_GetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoder_SetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoder_SetPrivateDataInterface(ID3D11VideoDecoder* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++#endif ++#endif ++ ++#endif ++ ++ ++#endif /* __ID3D11VideoDecoder_INTERFACE_DEFINED__ */ ++ ++typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE { ++ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, ++ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, ++ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, ++ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, ++ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, ++ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, ++ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, ++ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, ++ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8 ++} D3D11_VIDEO_DECODER_BUFFER_TYPE; ++typedef struct D3D11_ENCRYPTED_BLOCK_INFO { ++ UINT NumEncryptedBytesAtBeginning; ++ UINT NumBytesInSkipPattern; ++ UINT NumBytesInEncryptPattern; ++} D3D11_ENCRYPTED_BLOCK_INFO; ++typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC { ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; ++ UINT BufferIndex; ++ UINT DataOffset; ++ UINT DataSize; ++ UINT FirstMBaddress; ++ UINT NumMBsInBuffer; ++ UINT Width; ++ UINT Height; ++ UINT Stride; ++ UINT ReservedBits; ++ void *pIV; ++ UINT IVSize; ++ WINBOOL PartialEncryption; ++ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; ++} D3D11_VIDEO_DECODER_BUFFER_DESC; ++/***************************************************************************** ++ * ID3D11VideoContext interface ++ */ ++#ifndef __ID3D11VideoContext_INTERFACE_DEFINED__ ++#define __ID3D11VideoContext_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("61f21c45-3c0e-4a74-9cea-67100d9ad5e4") ++ID3D11VideoContext : public ID3D11DeviceChild ++{ ++ virtual HRESULT STDMETHODCALLTYPE GetDecoderBuffer( ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE ReleaseDecoderBuffer( ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame( ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE DecoderEndFrame( ++ ID3D11VideoDecoder *pDecoder) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers( ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4) ++#endif ++#else ++typedef struct ID3D11VideoContextVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11VideoContext* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11VideoContext* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11VideoContext* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11VideoContext* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ /*** ID3D11VideoContext methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer); ++ ++ HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++ ++ HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey); ++ ++ HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder); ++ ++ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++ ++ END_INTERFACE ++} ID3D11VideoContextVtbl; ++interface ID3D11VideoContext { ++ CONST_VTBL ID3D11VideoContextVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11VideoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11VideoContext_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11VideoContext_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11VideoContext_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11VideoContext_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11VideoContext_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11VideoContext_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++/*** ID3D11VideoContext methods ***/ ++#define ID3D11VideoContext_GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) (This)->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) ++#define ID3D11VideoContext_ReleaseDecoderBuffer(This,pDecoder,BufferType) (This)->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType) ++#define ID3D11VideoContext_DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) (This)->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) ++#define ID3D11VideoContext_DecoderEndFrame(This,pDecoder) (This)->lpVtbl->DecoderEndFrame(This,pDecoder) ++#define ID3D11VideoContext_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) (This)->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoContext_QueryInterface(ID3D11VideoContext* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11VideoContext_AddRef(ID3D11VideoContext* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11VideoContext_Release(ID3D11VideoContext* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11VideoContext_GetDevice(ID3D11VideoContext* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_GetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateDataInterface(ID3D11VideoContext* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++/*** ID3D11VideoContext methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoContext_GetDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType,UINT *pBufferSize,void **ppBuffer) { ++ return This->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_ReleaseDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) { ++ return This->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_DecoderBeginFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,ID3D11VideoDecoderOutputView *pVideoDecoderOutputView,UINT ContentKeySize,const void *pContentKey) { ++ return This->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_DecoderEndFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder) { ++ return This->lpVtbl->DecoderEndFrame(This,pDecoder); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SubmitDecoderBuffers(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,UINT NumBuffers,const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) { ++ return This->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_GetDecoderBuffer_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer); ++void __RPC_STUB ID3D11VideoContext_GetDecoderBuffer_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_ReleaseDecoderBuffer_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++void __RPC_STUB ID3D11VideoContext_ReleaseDecoderBuffer_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderBeginFrame_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey); ++void __RPC_STUB ID3D11VideoContext_DecoderBeginFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderEndFrame_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder); ++void __RPC_STUB ID3D11VideoContext_DecoderEndFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_SubmitDecoderBuffers_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++void __RPC_STUB ID3D11VideoContext_SubmitDecoderBuffers_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11VideoContext_INTERFACE_DEFINED__ */ ++ ++typedef struct D3D11_VIDEO_DECODER_DESC { ++ GUID Guid; ++ UINT SampleWidth; ++ UINT SampleHeight; ++ DXGI_FORMAT OutputFormat; ++} D3D11_VIDEO_DECODER_DESC; ++typedef struct D3D11_VIDEO_DECODER_CONFIG { ++ GUID guidConfigBitstreamEncryption; ++ GUID guidConfigMBcontrolEncryption; ++ GUID guidConfigResidDiffEncryption; ++ UINT ConfigBitstreamRaw; ++ UINT ConfigMBcontrolRasterOrder; ++ UINT ConfigResidDiffHost; ++ UINT ConfigSpatialResid8; ++ UINT ConfigResid8Subtraction; ++ UINT ConfigSpatialHost8or9Clipping; ++ UINT ConfigSpatialResidInterleaved; ++ UINT ConfigIntraResidUnsigned; ++ UINT ConfigResidDiffAccelerator; ++ UINT ConfigHostInverseScan; ++ UINT ConfigSpecificIDCT; ++ UINT Config4GroupedCoefs; ++ USHORT ConfigMinRenderTargetBuffCount; ++ USHORT ConfigDecoderSpecific; ++} D3D11_VIDEO_DECODER_CONFIG; ++typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE { ++ D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, ++ D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2, ++ D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3 ++} D3D11_AUTHENTICATED_CHANNEL_TYPE; ++#ifndef __ID3D11VideoProcessorEnumerator_FWD_DEFINED__ ++#define __ID3D11VideoProcessorEnumerator_FWD_DEFINED__ ++typedef interface ID3D11VideoProcessorEnumerator ID3D11VideoProcessorEnumerator; ++#endif ++ ++#ifndef __ID3D11VideoProcessor_FWD_DEFINED__ ++#define __ID3D11VideoProcessor_FWD_DEFINED__ ++typedef interface ID3D11VideoProcessor ID3D11VideoProcessor; ++#endif ++ ++#ifndef __ID3D11VideoProcessorInputView_FWD_DEFINED__ ++#define __ID3D11VideoProcessorInputView_FWD_DEFINED__ ++typedef interface ID3D11VideoProcessorInputView ID3D11VideoProcessorInputView; ++#endif ++ ++#ifndef __ID3D11VideoProcessorOutputView_FWD_DEFINED__ ++#define __ID3D11VideoProcessorOutputView_FWD_DEFINED__ ++typedef interface ID3D11VideoProcessorOutputView ID3D11VideoProcessorOutputView; ++#endif ++ ++#ifndef __ID3D11AuthenticatedChannel_FWD_DEFINED__ ++#define __ID3D11AuthenticatedChannel_FWD_DEFINED__ ++typedef interface ID3D11AuthenticatedChannel ID3D11AuthenticatedChannel; ++#endif ++ ++#ifndef __ID3D11CryptoSession_FWD_DEFINED__ ++#define __ID3D11CryptoSession_FWD_DEFINED__ ++typedef interface ID3D11CryptoSession ID3D11CryptoSession; ++#endif ++ ++/***************************************************************************** ++ * ID3D11VideoDevice interface ++ */ ++#ifndef __ID3D11VideoDevice_INTERFACE_DEFINED__ ++#define __ID3D11VideoDevice_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("10ec4d5b-975a-4689-b9e4-d0aac30fe333") ++ID3D11VideoDevice : public IUnknown ++{ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder( ++ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, ++ const D3D11_VIDEO_DECODER_CONFIG *pConfig, ++ ID3D11VideoDecoder **ppVideoDecoder) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor( ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ UINT RateConversionIndex, ++ ID3D11VideoProcessor **ppVideoProcessor) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateAuthenticatedChannel( ++ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, ++ ID3D11AuthenticatedChannel **ppAuthenticatedChannel) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateCryptoSession( ++ const GUID *pCryptoType, ++ const GUID *pDecoderProfile, ++ const GUID *pKeyExchangeType, ++ ID3D11CryptoSession **ppCryptoSession) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderOutputView( ++ ID3D11Resource *pResource, ++ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, ++ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorInputView( ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ const void *pInputDesc, ++ ID3D11VideoProcessorInputView **ppVideoProcInputView) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorOutputView( ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *pEnumerator, ++ const void *pOutputDesc, ++ ID3D11VideoProcessorOutputView **ppVideoProcOutputView) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorEnumerator( ++ const void *pContentDesc, ++ ID3D11VideoProcessorEnumerator **ppProcEnumerator) = 0; ++ ++ virtual UINT STDMETHODCALLTYPE GetVideoDecoderProfileCount( ++ ) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderProfile( ++ UINT DecoderIndex, ++ GUID *pDecoderProfile) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CheckVideoDecoderFormat( ++ const GUID *pDecoderProfile, ++ DXGI_FORMAT Format, ++ WINBOOL *pSupported) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfigCount( ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT *pCount) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfig( ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT DecoderIndex, ++ D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33) ++#endif ++#else ++typedef struct ID3D11VideoDeviceVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11VideoDevice* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11VideoDevice* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11VideoDevice* This); ++ ++ /*** ID3D11VideoDevice methods ***/ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoder)( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, ++ const D3D11_VIDEO_DECODER_CONFIG *pConfig, ++ ID3D11VideoDecoder **ppVideoDecoder); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)( ++ ID3D11VideoDevice* This, ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ UINT RateConversionIndex, ++ ID3D11VideoProcessor **ppVideoProcessor); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateAuthenticatedChannel)( ++ ID3D11VideoDevice* This, ++ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, ++ ID3D11AuthenticatedChannel **ppAuthenticatedChannel); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateCryptoSession)( ++ ID3D11VideoDevice* This, ++ const GUID *pCryptoType, ++ const GUID *pDecoderProfile, ++ const GUID *pKeyExchangeType, ++ ID3D11CryptoSession **ppCryptoSession); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoderOutputView)( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, ++ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorInputView)( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ const void *pInputDesc, ++ ID3D11VideoProcessorInputView **ppVideoProcInputView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorOutputView)( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *pEnumerator, ++ const void *pOutputDesc, ++ ID3D11VideoProcessorOutputView **ppVideoProcOutputView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorEnumerator)( ++ ID3D11VideoDevice* This, ++ const void *pContentDesc, ++ ID3D11VideoProcessorEnumerator **ppProcEnumerator); ++ ++ UINT (STDMETHODCALLTYPE *GetVideoDecoderProfileCount)( ++ ID3D11VideoDevice* This); ++ ++ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderProfile)( ++ ID3D11VideoDevice* This, ++ UINT DecoderIndex, ++ GUID *pDecoderProfile); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckVideoDecoderFormat)( ++ ID3D11VideoDevice* This, ++ const GUID *pDecoderProfile, ++ DXGI_FORMAT Format, ++ WINBOOL *pSupported); ++ ++ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfigCount)( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT *pCount); ++ ++ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfig)( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT DecoderIndex, ++ D3D11_VIDEO_DECODER_CONFIG *pConfig); ++ ++ END_INTERFACE ++} ID3D11VideoDeviceVtbl; ++interface ID3D11VideoDevice { ++ CONST_VTBL ID3D11VideoDeviceVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11VideoDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11VideoDevice_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11VideoDevice_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11VideoDevice methods ***/ ++#define ID3D11VideoDevice_CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder) (This)->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder) ++#define ID3D11VideoDevice_CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor) (This)->lpVtbl->CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor) ++#define ID3D11VideoDevice_CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) (This)->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) ++#define ID3D11VideoDevice_CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) (This)->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) ++#define ID3D11VideoDevice_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView) (This)->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView) ++#define ID3D11VideoDevice_CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView) (This)->lpVtbl->CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView) ++#define ID3D11VideoDevice_CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView) (This)->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView) ++#define ID3D11VideoDevice_CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator) (This)->lpVtbl->CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator) ++#define ID3D11VideoDevice_GetVideoDecoderProfileCount(This) (This)->lpVtbl->GetVideoDecoderProfileCount(This) ++#define ID3D11VideoDevice_GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile) (This)->lpVtbl->GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile) ++#define ID3D11VideoDevice_CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) (This)->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) ++#define ID3D11VideoDevice_GetVideoDecoderConfigCount(This,pDesc,pCount) (This)->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount) ++#define ID3D11VideoDevice_GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig) (This)->lpVtbl->GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoDevice_QueryInterface(ID3D11VideoDevice* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11VideoDevice_AddRef(ID3D11VideoDevice* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11VideoDevice_Release(ID3D11VideoDevice* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11VideoDevice methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoDecoder(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pVideoDesc,const D3D11_VIDEO_DECODER_CONFIG *pConfig,ID3D11VideoDecoder **ppVideoDecoder) { ++ return This->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessor(ID3D11VideoDevice* This,ID3D11VideoProcessorEnumerator *ppProcEnumerator,UINT RateConversionIndex,ID3D11VideoProcessor **ppVideoProcessor) { ++ return This->lpVtbl->CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateAuthenticatedChannel(ID3D11VideoDevice* This,D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,ID3D11AuthenticatedChannel **ppAuthenticatedChannel) { ++ return This->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateCryptoSession(ID3D11VideoDevice* This,const GUID *pCryptoType,const GUID *pDecoderProfile,const GUID *pKeyExchangeType,ID3D11CryptoSession **ppCryptoSession) { ++ return This->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoDecoderOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView) { ++ return This->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorInputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *ppProcEnumerator,const void *pInputDesc,ID3D11VideoProcessorInputView **ppVideoProcInputView) { ++ return This->lpVtbl->CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *pEnumerator,const void *pOutputDesc,ID3D11VideoProcessorOutputView **ppVideoProcOutputView) { ++ return This->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorEnumerator(ID3D11VideoDevice* This,const void *pContentDesc,ID3D11VideoProcessorEnumerator **ppProcEnumerator) { ++ return This->lpVtbl->CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator); ++} ++static FORCEINLINE UINT ID3D11VideoDevice_GetVideoDecoderProfileCount(ID3D11VideoDevice* This) { ++ return This->lpVtbl->GetVideoDecoderProfileCount(This); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderProfile(ID3D11VideoDevice* This,UINT DecoderIndex,GUID *pDecoderProfile) { ++ return This->lpVtbl->GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CheckVideoDecoderFormat(ID3D11VideoDevice* This,const GUID *pDecoderProfile,DXGI_FORMAT Format,WINBOOL *pSupported) { ++ return This->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderConfigCount(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT *pCount) { ++ return This->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderConfig(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT DecoderIndex,D3D11_VIDEO_DECODER_CONFIG *pConfig) { ++ return This->lpVtbl->GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoDecoder_Proxy( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, ++ const D3D11_VIDEO_DECODER_CONFIG *pConfig, ++ ID3D11VideoDecoder **ppVideoDecoder); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoDecoder_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessor_Proxy( ++ ID3D11VideoDevice* This, ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ UINT RateConversionIndex, ++ ID3D11VideoProcessor **ppVideoProcessor); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessor_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateAuthenticatedChannel_Proxy( ++ ID3D11VideoDevice* This, ++ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, ++ ID3D11AuthenticatedChannel **ppAuthenticatedChannel); ++void __RPC_STUB ID3D11VideoDevice_CreateAuthenticatedChannel_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateCryptoSession_Proxy( ++ ID3D11VideoDevice* This, ++ const GUID *pCryptoType, ++ const GUID *pDecoderProfile, ++ const GUID *pKeyExchangeType, ++ ID3D11CryptoSession **ppCryptoSession); ++void __RPC_STUB ID3D11VideoDevice_CreateCryptoSession_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoDecoderOutputView_Proxy( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, ++ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoDecoderOutputView_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorInputView_Proxy( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ const void *pInputDesc, ++ ID3D11VideoProcessorInputView **ppVideoProcInputView); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorInputView_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorOutputView_Proxy( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *pEnumerator, ++ const void *pOutputDesc, ++ ID3D11VideoProcessorOutputView **ppVideoProcOutputView); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorOutputView_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorEnumerator_Proxy( ++ ID3D11VideoDevice* This, ++ const void *pContentDesc, ++ ID3D11VideoProcessorEnumerator **ppProcEnumerator); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorEnumerator_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++UINT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderProfileCount_Proxy( ++ ID3D11VideoDevice* This); ++void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderProfileCount_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderProfile_Proxy( ++ ID3D11VideoDevice* This, ++ UINT DecoderIndex, ++ GUID *pDecoderProfile); ++void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderProfile_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CheckVideoDecoderFormat_Proxy( ++ ID3D11VideoDevice* This, ++ const GUID *pDecoderProfile, ++ DXGI_FORMAT Format, ++ WINBOOL *pSupported); ++void __RPC_STUB ID3D11VideoDevice_CheckVideoDecoderFormat_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderConfigCount_Proxy( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT *pCount); ++void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderConfigCount_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderConfig_Proxy( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT DecoderIndex, ++ D3D11_VIDEO_DECODER_CONFIG *pConfig); ++void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderConfig_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11VideoDevice_INTERFACE_DEFINED__ */ ++ + typedef enum D3D11_CREATE_DEVICE_FLAG { + D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1, + D3D11_CREATE_DEVICE_DEBUG = 0x2, +diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl +index 59beafb..cfae7c8 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.idl ++++ b/mingw-w64-headers/direct-x/include/d3d11.idl +@@ -2126,6 +2126,214 @@ interface ID3D11Device : IUnknown + UINT GetExceptionMode(); + } + ++typedef enum D3D11_VDOV_DIMENSION ++{ ++ D3D11_VDOV_DIMENSION_UNKNOWN = 0, ++ D3D11_VDOV_DIMENSION_TEXTURE2D ++} D3D11_VDOV_DIMENSION; ++ ++typedef struct D3D11_TEX2D_VDOV ++{ ++ UINT ArraySlice; ++} D3D11_TEX2D_VDOV; ++ ++typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC ++{ ++ GUID DecodeProfile; ++ D3D11_VDOV_DIMENSION ViewDimension; ++ ++ union ++ { ++ D3D11_TEX2D_VDOV Texture2D; ++ }; ++} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; ++ ++[ ++ object, ++ local, ++ uuid(c2931aea-2a85-4f20-860f-fba1fd256e18) ++] ++interface ID3D11VideoDecoderOutputView : ID3D11View ++{ ++ void GetDesc( ++ [out] D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc ); ++} ++ ++[ ++ object, ++ local, ++ uuid(3c9c5b51-995d-48d1-9b8d-fa5caeded65c) ++] ++interface ID3D11VideoDecoder : ID3D11DeviceChild ++{ ++} ++ ++typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE ++{ ++ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, ++ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE, ++ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX, ++ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM, ++ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR, ++ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN ++} D3D11_VIDEO_DECODER_BUFFER_TYPE; ++ ++typedef struct D3D11_ENCRYPTED_BLOCK_INFO ++{ ++ UINT NumEncryptedBytesAtBeginning; ++ UINT NumBytesInSkipPattern; ++ UINT NumBytesInEncryptPattern; ++} D3D11_ENCRYPTED_BLOCK_INFO; ++ ++typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC ++{ ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; ++ UINT BufferIndex; ++ UINT DataOffset; ++ UINT DataSize; ++ UINT FirstMBaddress; ++ UINT NumMBsInBuffer; ++ UINT Width; ++ UINT Height; ++ UINT Stride; ++ UINT ReservedBits; ++ void *pIV; ++ UINT IVSize; ++ BOOL PartialEncryption; ++ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; ++} D3D11_VIDEO_DECODER_BUFFER_DESC; ++ ++[ ++ object, ++ local, ++ uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4) ++] ++interface ID3D11VideoContext : ID3D11DeviceChild ++{ ++ HRESULT GetDecoderBuffer( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ [out] UINT *pBufferSize, ++ [out] void **ppBuffer); ++ HRESULT ReleaseDecoderBuffer( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++ HRESULT DecoderBeginFrame( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ [in] UINT ContentKeySize, ++ [in] const void *pContentKey); ++ HRESULT DecoderEndFrame( ++ [in] ID3D11VideoDecoder *pDecoder); ++ HRESULT SubmitDecoderBuffers( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] UINT NumBuffers, ++ [in] const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++} ++ ++typedef struct D3D11_VIDEO_DECODER_DESC ++{ ++ GUID Guid; ++ UINT SampleWidth; ++ UINT SampleHeight; ++ DXGI_FORMAT OutputFormat; ++} D3D11_VIDEO_DECODER_DESC; ++ ++typedef struct D3D11_VIDEO_DECODER_CONFIG ++{ ++ GUID guidConfigBitstreamEncryption; ++ GUID guidConfigMBcontrolEncryption; ++ GUID guidConfigResidDiffEncryption; ++ UINT ConfigBitstreamRaw; ++ UINT ConfigMBcontrolRasterOrder; ++ UINT ConfigResidDiffHost; ++ UINT ConfigSpatialResid8; ++ UINT ConfigResid8Subtraction; ++ UINT ConfigSpatialHost8or9Clipping; ++ UINT ConfigSpatialResidInterleaved; ++ UINT ConfigIntraResidUnsigned; ++ UINT ConfigResidDiffAccelerator; ++ UINT ConfigHostInverseScan; ++ UINT ConfigSpecificIDCT; ++ UINT Config4GroupedCoefs; ++ USHORT ConfigMinRenderTargetBuffCount; ++ USHORT ConfigDecoderSpecific; ++} D3D11_VIDEO_DECODER_CONFIG; ++ ++typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE ++{ ++ D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, ++ D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE, ++ D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE ++} D3D11_AUTHENTICATED_CHANNEL_TYPE; ++ ++interface ID3D11VideoProcessorEnumerator; ++interface ID3D11VideoProcessor; ++interface ID3D11VideoProcessorInputView; ++interface ID3D11VideoProcessorOutputView; ++interface ID3D11AuthenticatedChannel; ++interface ID3D11CryptoSession; ++ ++[ ++ object, ++ local, ++ uuid(10ec4d5b-975a-4689-b9e4-d0aac30fe333) ++] ++interface ID3D11VideoDevice : IUnknown ++{ ++ HRESULT CreateVideoDecoder( ++ [in] const D3D11_VIDEO_DECODER_DESC *pVideoDesc, ++ [in] const D3D11_VIDEO_DECODER_CONFIG *pConfig, ++ [out] ID3D11VideoDecoder **ppVideoDecoder); ++ HRESULT CreateVideoProcessor( ++ [in] ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ [in] UINT RateConversionIndex, ++ [out] ID3D11VideoProcessor **ppVideoProcessor); ++ HRESULT CreateAuthenticatedChannel( ++ [in] D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, ++ [out] ID3D11AuthenticatedChannel **ppAuthenticatedChannel); ++ HRESULT CreateCryptoSession( ++ [in] const GUID *pCryptoType, ++ [in] const GUID *pDecoderProfile, ++ [in] const GUID *pKeyExchangeType, ++ [out] ID3D11CryptoSession **ppCryptoSession); ++ HRESULT CreateVideoDecoderOutputView( ++ [in] ID3D11Resource *pResource, ++ [in] const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, ++ [out] ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); ++ HRESULT CreateVideoProcessorInputView( ++ [in] ID3D11Resource *pResource, ++ [in] ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ [in] const void *pInputDesc, /*D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC */ ++ [out] ID3D11VideoProcessorInputView **ppVideoProcInputView); ++ HRESULT CreateVideoProcessorOutputView( ++ [in] ID3D11Resource *pResource, ++ [in] ID3D11VideoProcessorEnumerator *pEnumerator, ++ [in] const void *pOutputDesc, /*D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC */ ++ [out] ID3D11VideoProcessorOutputView **ppVideoProcOutputView); ++ HRESULT CreateVideoProcessorEnumerator( ++ [in] const void *pContentDesc, /*D3D11_VIDEO_PROCESSOR_CONTENT_DESC */ ++ [out] ID3D11VideoProcessorEnumerator **ppProcEnumerator); ++ UINT GetVideoDecoderProfileCount(void); ++ HRESULT GetVideoDecoderProfile( ++ [in] UINT DecoderIndex, ++ [out] GUID *pDecoderProfile); ++ HRESULT CheckVideoDecoderFormat( ++ [in] const GUID *pDecoderProfile, ++ [in] DXGI_FORMAT Format, ++ [out] BOOL *pSupported); ++ HRESULT GetVideoDecoderConfigCount( ++ [in] const D3D11_VIDEO_DECODER_DESC *pDesc, ++ [out] UINT *pCount); ++ HRESULT GetVideoDecoderConfig( ++ [in] const D3D11_VIDEO_DECODER_DESC *pDesc, ++ [in] UINT DecoderIndex, ++ [out] D3D11_VIDEO_DECODER_CONFIG *pConfig); ++} ++ + typedef enum D3D11_CREATE_DEVICE_FLAG { + D3D11_CREATE_DEVICE_SINGLETHREADED = 0x0001, + D3D11_CREATE_DEVICE_DEBUG = 0x0002, +-- +2.4.3 + diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 136e818512..fad3ca6783 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -19,13 +19,15 @@ source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" - "0005-Add-missing-DirectX11-enum.patch") + "0005-Add-missing-DirectX11-enum.patch" + "0006-Add-d3d11-video-decoder.patch") md5sums=('SKIP' '0bcf1726f2093c6ed7e998d7e6c9dd16' '20172a91981ffa87aa6aa5d3001c290b' 'bdca4fc47725678f08cc23c96d130151' '9973c46a1dc331fd07c4b3dc6f5472a0' - '652859ad478448a70c2074a854a313ec') + '652859ad478448a70c2074a854a313ec' + 'e05b2eadfef91ddd27809031cb2728dd') pkgver() { cd "$srcdir/mingw-w64" @@ -43,6 +45,7 @@ prepare() { git am "${srcdir}/"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch git am "${srcdir}/"0005-Add-missing-DirectX11-enum.patch + git am "${srcdir}/"0006-Add-d3d11-video-decoder.patch cd ${srcdir}/mingw-w64/mingw-w64-headers touch include/windows.*.h include/wincrypt.h include/prsht.h From 2a09892d4026ff3c69ad45cae69c5b1768161445 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 15 Jun 2015 21:38:58 +0100 Subject: [PATCH 1146/2060] vlc-git: gcript is broken on head, apply patch until fixed --- mingw-w64-vlc-git/0015-gcrypt-fix.patch | 400 ++++++++++++++++++++++++ mingw-w64-vlc-git/PKGBUILD | 6 +- 2 files changed, 405 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-vlc-git/0015-gcrypt-fix.patch diff --git a/mingw-w64-vlc-git/0015-gcrypt-fix.patch b/mingw-w64-vlc-git/0015-gcrypt-fix.patch new file mode 100644 index 0000000000..183b70ee88 --- /dev/null +++ b/mingw-w64-vlc-git/0015-gcrypt-fix.patch @@ -0,0 +1,400 @@ +--- + configure.ac | 29 +++++---- + include/vlc_gcrypt.h | 103 ------------------------------ + include/vlc_threads.h | 1 - + modules/access/dcp/dcpdecrypt.cpp | 3 - + modules/access/dcp/dcpparser.h | 1 - + modules/access/rtp/rtp.c | 2 - + modules/access_output/livehttp.c | 3 - + modules/demux/hls/playlist/HLSSegment.cpp | 4 -- + modules/stream_out/raop.c | 4 +- + modules/stream_out/rtp.c | 2 - + modules/video_filter/remoteosd.c | 3 - + po/POTFILES.in | 1 - + src/Makefile.am | 1 - + src/misc/threads.c | 1 - + src/misc/update.c | 2 - + 15 files changed, 16 insertions(+), 144 deletions(-) + delete mode 100644 include/vlc_gcrypt.h + +diff --git a/configure.ac b/configure.ac +index 0d1437b..92eb979 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3966,22 +3966,23 @@ dnl libgcrypt + dnl + AC_ARG_ENABLE(libgcrypt, + [ --disable-libgcrypt gcrypt support (default enabled)]) ++# require libgcrypt >= 1.6.0 + AS_IF([test "${enable_libgcrypt}" != "no"], [ +- AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [ +- libgcrypt-config --version >/dev/null || \ +- AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found]) +- AC_CHECK_LIB(gcrypt, gcry_control, [ +- have_libgcrypt="yes" +- AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt]) +- GCRYPT_CFLAGS="`libgcrypt-config --cflags`" +- GCRYPT_LIBS="`libgcrypt-config --libs`" +- ], [ +- AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.]) +- ], [`libgcrypt-config --libs`]) ++ AC_TRY_COMPILE([ ++#include ++#if GCRYPT_VERSION_NUMBER < 0x010600 ++#error ++#endif], ++ [], [ ++ have_libgcrypt="yes" ++ AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt]) ++ GCRYPT_CFLAGS="`libgcrypt-config --cflags`" ++ GCRYPT_LIBS="`libgcrypt-config --libs`" + ], [ +- AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.]) +- ], [#include ] +- ) ++ AS_IF([test "${enable_libgcrypt}" == "yes"], [ ++ AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.]) ++ ]) ++ ]) + ]) + + AC_SUBST(GCRYPT_CFLAGS) +diff --git a/include/vlc_gcrypt.h b/include/vlc_gcrypt.h +deleted file mode 100644 +index 89bdab8..0000000 +--- a/include/vlc_gcrypt.h ++++ /dev/null +@@ -1,103 +0,0 @@ +-/***************************************************************************** +- * vlc_gcrypt.h: VLC thread support for gcrypt +- ***************************************************************************** +- * Copyright (C) 2004-2010 Rémi Denis-Courmont +- * +- * This program is free software; you can redistribute it and/or modify it +- * under the terms of the GNU Lesser General Public License as published by +- * the Free Software Foundation; either version 2.1 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU Lesser General Public License for more details. +- * +- * You should have received a copy of the GNU Lesser General Public License +- * along with this program; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. +- *****************************************************************************/ +- +-/** +- * \file +- * This file implements gcrypt support functions in vlc +- */ +- +-#include +- +-#ifdef LIBVLC_USE_PTHREAD +-/** +- * If possible, use gcrypt-provided thread implementation. This is so that +- * other non-VLC components (inside the process) can also use gcrypt safely. +- */ +-GCRY_THREAD_OPTION_PTHREAD_IMPL; +-# define gcry_threads_vlc gcry_threads_pthread +-#else +- +-/** +- * gcrypt thread option VLC implementation +- */ +- +-static int gcry_vlc_mutex_init( void **p_sys ) +-{ +- vlc_mutex_t *p_lock = (vlc_mutex_t *)malloc( sizeof( vlc_mutex_t ) ); +- if( p_lock == NULL) +- return ENOMEM; +- +- vlc_mutex_init( p_lock ); +- *p_sys = p_lock; +- return VLC_SUCCESS; +-} +- +-static int gcry_vlc_mutex_destroy( void **p_sys ) +-{ +- vlc_mutex_t *p_lock = (vlc_mutex_t *)*p_sys; +- vlc_mutex_destroy( p_lock ); +- free( p_lock ); +- return VLC_SUCCESS; +-} +- +-static int gcry_vlc_mutex_lock( void **p_sys ) +-{ +- vlc_mutex_lock( (vlc_mutex_t *)*p_sys ); +- return VLC_SUCCESS; +-} +- +-static int gcry_vlc_mutex_unlock( void **lock ) +-{ +- vlc_mutex_unlock( (vlc_mutex_t *)*lock ); +- return VLC_SUCCESS; +-} +- +-static const struct gcry_thread_cbs gcry_threads_vlc = +-{ +- GCRY_THREAD_OPTION_USER, +- NULL, +- gcry_vlc_mutex_init, +- gcry_vlc_mutex_destroy, +- gcry_vlc_mutex_lock, +- gcry_vlc_mutex_unlock, +- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +-}; +-#endif +- +-/** +- * Initializes gcrypt with proper locking. +- */ +-static inline void vlc_gcrypt_init (void) +-{ +- /* This would need a process-wide static mutex with all libraries linking +- * to a given instance of libgcrypt. We cannot do this as we have different +- * plugins linking with gcrypt, and some underlying libraries may use it +- * behind our back. Only way is to always link gcrypt statically (ouch!) or +- * have upstream gcrypt provide one shared object per threading system. */ +- static bool done = false; +- +- vlc_global_lock (VLC_GCRYPT_MUTEX); +- if (!done) +- { +- gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_vlc); +- done = true; +- } +- vlc_global_unlock (VLC_GCRYPT_MUTEX); +-} +diff --git a/include/vlc_threads.h b/include/vlc_threads.h +index 38bc3a7..c093a6a 100644 +--- a/include/vlc_threads.h ++++ b/include/vlc_threads.h +@@ -471,7 +471,6 @@ class vlc_mutex_locker + enum + { + VLC_AVCODEC_MUTEX = 0, +- VLC_GCRYPT_MUTEX, + VLC_XLIB_MUTEX, + VLC_MOSAIC_MUTEX, + VLC_HIGHLIGHT_MUTEX, +diff --git a/modules/access/dcp/dcpdecrypt.cpp b/modules/access/dcp/dcpdecrypt.cpp +index bc51dd0..f2d4941 100644 +--- a/modules/access/dcp/dcpdecrypt.cpp ++++ b/modules/access/dcp/dcpdecrypt.cpp +@@ -271,9 +271,6 @@ int AESKey::decryptRSA( string s_cipher_text_b64 ) + goto end; + } + +- /* initialize libgcrypt */ +- vlc_gcrypt_init (); +- + /* create S-expression for ciphertext */ + if( ( err = gcry_mpi_scan( &cipher_text_mpi, GCRYMPI_FMT_USG, ps_cipher_text, 256, NULL ) ) ) + { +diff --git a/modules/access/dcp/dcpparser.h b/modules/access/dcp/dcpparser.h +index 5789d21..5da39d7 100644 +--- a/modules/access/dcp/dcpparser.h ++++ b/modules/access/dcp/dcpparser.h +@@ -45,7 +45,6 @@ + + /* gcrypt headers */ + #include +-#include + + #include + #include +diff --git a/modules/access/rtp/rtp.c b/modules/access/rtp/rtp.c +index 455c0e8..dd22208 100644 +--- a/modules/access/rtp/rtp.c ++++ b/modules/access/rtp/rtp.c +@@ -38,7 +38,6 @@ + #ifdef HAVE_SRTP + # include + # include +-# include + #endif + + #define RTCP_PORT_TEXT N_("RTCP (local) port") +@@ -279,7 +278,6 @@ static int Open (vlc_object_t *obj) + char *key = var_CreateGetNonEmptyString (demux, "srtp-key"); + if (key) + { +- vlc_gcrypt_init (); + p_sys->srtp = srtp_create (SRTP_ENCR_AES_CM, SRTP_AUTH_HMAC_SHA1, 10, + SRTP_PRF_AES_CM, SRTP_RCC_MODE1); + if (p_sys->srtp == NULL) +diff --git a/modules/access_output/livehttp.c b/modules/access_output/livehttp.c +index 0167d3b..d29edc2 100644 +--- a/modules/access_output/livehttp.c ++++ b/modules/access_output/livehttp.c +@@ -45,7 +45,6 @@ + #include + + #include +-#include + + #include + +@@ -328,8 +327,6 @@ static int CryptSetup( sout_access_out_t *p_access, char *key_file ) + return VLC_EGENERIC; + } + +- vlc_gcrypt_init(); +- + /*Setup encryption cipher*/ + gcry_error_t err = gcry_cipher_open( &p_sys->aes_ctx, GCRY_CIPHER_AES, + GCRY_CIPHER_MODE_CBC, 0 ); +diff --git a/modules/demux/hls/playlist/HLSSegment.cpp b/modules/demux/hls/playlist/HLSSegment.cpp +index 3dda79c..28214a8 100644 +--- a/modules/demux/hls/playlist/HLSSegment.cpp ++++ b/modules/demux/hls/playlist/HLSSegment.cpp +@@ -21,9 +21,6 @@ + + #include + #include +-#ifdef HAVE_GCRYPT +- #include +-#endif + + using namespace hls::playlist; + +@@ -59,7 +56,6 @@ void HLSSegment::onChunkDownload(block_t **pp_block, Chunk *chunk, BaseRepresent + /* first bytes */ + if(!ctx && chunk->getBytesRead() == p_block->i_buffer) + { +- vlc_gcrypt_init(); + if (encryption.iv.size() != 16) + { + encryption.iv.clear(); +diff --git a/modules/stream_out/raop.c b/modules/stream_out/raop.c +index 014cb36..9f72b0b 100644 +--- a/modules/stream_out/raop.c ++++ b/modules/stream_out/raop.c +@@ -29,6 +29,7 @@ + #endif + + #include ++#include + + #include + +@@ -40,7 +41,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -1377,8 +1377,6 @@ static int Open( vlc_object_t *p_this ) + uint32_t i_session_id; + uint64_t i_client_instance; + +- vlc_gcrypt_init(); +- + config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, + p_stream->p_cfg ); + +diff --git a/modules/stream_out/rtp.c b/modules/stream_out/rtp.c +index 7a03ba0..01188e5 100644 +--- a/modules/stream_out/rtp.c ++++ b/modules/stream_out/rtp.c +@@ -44,7 +44,6 @@ + #ifdef HAVE_SRTP + # include + # include +-# include + #endif + + #include "rtp.h" +@@ -1028,7 +1027,6 @@ static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, + char *key = var_GetNonEmptyString (p_stream, SOUT_CFG_PREFIX"key"); + if (key) + { +- vlc_gcrypt_init (); + id->srtp = srtp_create (SRTP_ENCR_AES_CM, SRTP_AUTH_HMAC_SHA1, 10, + SRTP_PRF_AES_CM, SRTP_RCC_MODE1); + if (id->srtp == NULL) +diff --git a/modules/video_filter/remoteosd.c b/modules/video_filter/remoteosd.c +index f53bba1..f657d70 100644 +--- a/modules/video_filter/remoteosd.c ++++ b/modules/video_filter/remoteosd.c +@@ -58,7 +58,6 @@ + + #include /* net_*, htonl */ + #include /* to encrypt password */ +-#include + + #include "remoteosd_rfbproto.h" /* type definitions of the RFB protocol for VNC */ + +@@ -310,8 +309,6 @@ static int CreateFilter ( vlc_object_t *p_this ) + es_format_Init( &p_filter->fmt_out, SPU_ES, VLC_CODEC_SPU ); + p_filter->fmt_out.i_priority = ES_PRIORITY_SELECTABLE_MIN; + +- vlc_gcrypt_init(); +- + /* create the vnc worker thread */ + if( vlc_clone( &p_sys->worker_thread, + vnc_worker_thread, p_filter, VLC_THREAD_PRIORITY_LOW ) ) +diff --git a/po/POTFILES.in b/po/POTFILES.in +index 3df64ef..014c605 100644 +--- a/po/POTFILES.in ++++ b/po/POTFILES.in +@@ -21,7 +21,6 @@ include/vlc_es_out.h + include/vlc_events.h + include/vlc_filter.h + include/vlc_fixups.h +-include/vlc_gcrypt.h + include/vlc_httpd.h + include/vlc_image.h + include/vlc_input.h +diff --git a/src/Makefile.am b/src/Makefile.am +index e608e4d..cc69344 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -48,7 +48,6 @@ pluginsinclude_HEADERS = \ + ../include/vlc_filter.h \ + ../include/vlc_fourcc.h \ + ../include/vlc_fs.h \ +- ../include/vlc_gcrypt.h \ + ../include/vlc_opengl.h \ + ../include/vlc_http.h \ + ../include/vlc_httpd.h \ +diff --git a/src/misc/threads.c b/src/misc/threads.c +index 01e1d97..d805f0d 100644 +--- a/src/misc/threads.c ++++ b/src/misc/threads.c +@@ -36,7 +36,6 @@ void vlc_global_mutex (unsigned n, bool acquire) + VLC_STATIC_MUTEX, + VLC_STATIC_MUTEX, + VLC_STATIC_MUTEX, +- VLC_STATIC_MUTEX, + }; + static_assert (VLC_MAX_MUTEX == (sizeof (locks) / sizeof (locks[0])), + "Wrong number of global mutexes"); +diff --git a/src/misc/update.c b/src/misc/update.c +index 9c8f979..4ab3440 100644 +--- a/src/misc/update.c ++++ b/src/misc/update.c +@@ -51,7 +51,6 @@ + #include + + #include +-#include + #ifdef _WIN32 + #include + #endif +@@ -118,7 +117,6 @@ update_t *update_New( vlc_object_t *p_this ) + p_update->p_check = NULL; + + p_update->p_pkey = NULL; +- vlc_gcrypt_init(); + + return p_update; + } +-- +2.1.4 + diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index bb8571a38f..6bd0f0d0a2 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -120,7 +120,8 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re 0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch 0012-Only-build-correct-modules-for-WINSTORE.patch 0013-remove-AllocConsole-reference-for-WINSTORE.patch - 0014-Remove-some-legacy-mingw.org-header-defines.patch) + 0014-Remove-some-legacy-mingw.org-header-defines.patch + 0015-gcrypt-fix.patch) md5sums=('SKIP' 'b6a010849631177493135b3ad7c5f784' '13f5a8bf897b253e0d9626a5ae79bc8d' @@ -161,6 +162,9 @@ if [ "${_variant}" == "winrt" ]; then git am "${srcdir}"/0014-Remove-some-legacy-mingw.org-header-defines.patch fi + #temp patch until HEAD is fixed + patch -p1 < "${srcdir}"/0015-gcrypt-fix.patch + ./bootstrap sed -i -e 's:truetype/freefont:TTF:g' modules/text_renderer/freetype.c From 2146f9e829b20a3a5fe6c96373df3b6bf44a0e72 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 15 Jun 2015 21:44:14 +0100 Subject: [PATCH 1147/2060] ffmpeg: enable d3d11 hardware decoding --- mingw-w64-ffmpeg/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 77486a6757..ae63e82b32 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -3,7 +3,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.7 -pkgrel=1 +pkgrel=2 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" @@ -61,6 +61,7 @@ build() { --disable-static \ --enable-avresample \ --enable-dxva2 \ + --enable-d3d11va \ --enable-fontconfig \ --enable-gnutls \ --enable-gpl \ From f0881dd457662280c2b6ef01379ef44269a22ea2 Mon Sep 17 00:00:00 2001 From: bansan85 Date: Tue, 16 Jun 2015 00:52:40 +0200 Subject: [PATCH 1148/2060] gettext: update pkgrel. --- mingw-w64-gettext/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index 31bcc3c1b0..14e6e65076 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -4,7 +4,7 @@ _realname=gettext pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.19.4 -pkgrel=2 +pkgrel=3 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="GNU internationalization library (mingw-w64)" From 01cf051fb0a5265a5e8e10aa6624c3b70af174f3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 16 Jun 2015 10:13:18 +0300 Subject: [PATCH 1149/2060] Update mingw-w64 runtime to git SHA [5495a11] --- mingw-w64-crt-git/PKGBUILD | 2 +- mingw-w64-headers-git/PKGBUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index c01ab4bbae..48ffa405a4 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4506.413d55f +pkgver=5.0.0.4507.5495a11 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index fad3ca6783..b839e91fa3 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4506.413d55f +pkgver=5.0.0.4507.5495a11 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From 9dccc3857e9e39f0bc1cddb4637a4585d2430075 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 16 Jun 2015 11:35:30 +0300 Subject: [PATCH 1150/2060] postgresql: Update to 9.4.4 --- mingw-w64-postgresql/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-postgresql/PKGBUILD b/mingw-w64-postgresql/PKGBUILD index c0646cbe6f..1595b6d24e 100644 --- a/mingw-w64-postgresql/PKGBUILD +++ b/mingw-w64-postgresql/PKGBUILD @@ -2,7 +2,7 @@ _realname=postgresql pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=9.4.3 +pkgver=9.4.4 pkgrel=1 pkgdesc="Libraries for use with PostgreSQL (mingw-w64)" arch=('any') @@ -29,7 +29,7 @@ source=("http://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.ta postgresql-9.4.1-pl-python.patch postgresql-9.4.1-pl-tcl.patch postgresql-9.4.1-mingw-enable-readline.patch) -md5sums=('05217e0921b51fb886e9e50875776bf1' +md5sums=('1fe952c44ed26d7e6a335cf991a9c1c6' '1d1499234e555afa688f645ef3825450' '572932c6f0fc795aba4d5bb91e1fe4ba' '381c984fc2eb2c22c35aed62bedeb7fa' From 1d2235a4a6aafaa24d0e997bb0a79fe5d4faec55 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 16 Jun 2015 11:36:10 +0300 Subject: [PATCH 1151/2060] vlc-git: Update to git SHA [1a2f7b2] --- mingw-w64-vlc-git/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 6bd0f0d0a2..d78b04944d 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.60894.f5d5cb7 +pkgver=3.0.0.61132.1a2f7b2 pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -131,7 +131,8 @@ md5sums=('SKIP' '3ab07dce68513b6d37321f36141a8340' '4c286b5d83b67e6c0ca15c16b9376fc4' '0b3303af4b3d68cf5317f025975adb32' - '0301207ee4fa1ce5dc510d6ee402adaa') + '0301207ee4fa1ce5dc510d6ee402adaa' + 'b0727dcfbab81988f8f78f146ff10611') pkgver() { cd $_realname From 87caa7d43a821e15396ada760863ee1fc38b114e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 16 Jun 2015 15:32:14 +0300 Subject: [PATCH 1152/2060] firebird-git: Update to 3.0.0.31885. Fixed fbclient.dll symbols export. Added path relocation for using unix-like files layout. --- mingw-w64-firebird-git/PKGBUILD | 158 +- mingw-w64-firebird-git/cmake-mingw.patch | 59 - mingw-w64-firebird-git/firebird-mingw.diff | 967 ------- mingw-w64-firebird-git/firebird-msys.diff | 127 - mingw-w64-firebird-git/mingw-w64-trunk.patch | 2732 ++++++++++++++++++ 5 files changed, 2830 insertions(+), 1213 deletions(-) delete mode 100644 mingw-w64-firebird-git/cmake-mingw.patch delete mode 100644 mingw-w64-firebird-git/firebird-mingw.diff delete mode 100644 mingw-w64-firebird-git/firebird-msys.diff create mode 100644 mingw-w64-firebird-git/mingw-w64-trunk.patch diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD index 6adebefc82..00835d4e25 100644 --- a/mingw-w64-firebird-git/PKGBUILD +++ b/mingw-w64-firebird-git/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname='firebird' +_build_sys=autotools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=3.0.0.31844.60ba348 +pkgver=3.0.0.31885.eeaafd0 pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features (mingw-w64)" url="http://www.firebirdsql.org/" @@ -14,10 +15,15 @@ replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=( "${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-icu" - #"${MINGW_PACKAGE_PREFIX}-libtommath" # For Firebird 3.x + $([[ "$_build_sys" == "autotools" ]] && echo \ + "${MINGW_PACKAGE_PREFIX}-libtommath" \ + ) "${MINGW_PACKAGE_PREFIX}-zlib" ) makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird presence of system btyacc + $([[ "$_build_sys" == "cmake" ]] && echo \ + "${MINGW_PACKAGE_PREFIX}-cmake" \ + ) "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libatomic_ops" "${MINGW_PACKAGE_PREFIX}-pkg-config" @@ -25,15 +31,10 @@ makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird pre ) options=('!debug' 'strip') source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git" - #"${_realname}"::"git+https://Alexpux@bitbucket.org/msys2/firebird.git#branch=mingw-w64-trunk" - #"${_realname}"::"git+file:///v/Sources/GNU/firebird-git#branch=mingw-w64-trunk" - firebird-mingw.diff - firebird-msys.diff - cmake-mingw.patch) + mingw-w64-trunk.patch) sha256sums=('SKIP' - '43c853d2a1c4c18ed3e3baca6a75f5e1bf83e7700c52cf44f191cee5ab96f0ed' - '6b01a0a726f3755d6615c0d68cde8b1ad29524bcef6d1fc209278626ede62b4a' - '365aabdbcaa5e8d344022e252184ecebe91d70141258286a18986dea110a260d') + '25bb6935ab08616d2e106824d34b8ee08da72fb4b9794a77e62a2d2d3d9dd0b0') + pkgver() { cd "${_realname}" @@ -43,67 +44,104 @@ pkgver() { prepare() { cd ${_realname} - git am ${srcdir}/firebird-mingw.diff - git am ${srcdir}/firebird-msys.diff - patch -p1 -i ${srcdir}/cmake-mingw.patch - - # cd .. + git am ${srcdir}/mingw-w64-trunk.patch - # mv "${_realname}" "build-${MINGW_CHOST}" - # cd "build-${MINGW_CHOST}" - # NOCONFIGURE=1 ./autogen.sh + if [ "${_build_sys}" = "autotools" ]; then + NOCONFIGURE=1 ./autogen.sh + fi } build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + if [ "${_build_sys}" = "autotools" ]; then + cp -rf ${_realname} build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + local _debug_conf= + if check_option "debug" "y"; then + _debug_conf="--enable-debug" + fi + + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared \ + ${_debug_conf} \ + --disable-rpath \ + --with-fbbin=${MINGW_PREFIX}/bin \ + --with-fbsbin=${MINGW_PREFIX}/bin \ + --with-fbconf=${MINGW_PREFIX}/etc/${_realname} \ + --with-fblib=${MINGW_PREFIX}/lib \ + --with-fbinclude=${MINGW_PREFIX}/include \ + --with-fbdoc=${MINGW_PREFIX}/share/${_realname}/doc \ + --with-fbudf=${MINGW_PREFIX}/share/${_realname}/udf \ + --with-fbsample=${MINGW_PREFIX}/share/${_realname}/samples \ + --with-fbsample-db=${MINGW_PREFIX}/share/${_realname}/samples/empbuild \ + --with-fbhelp=${MINGW_PREFIX}/share/${_realname}/help \ + --with-fbintl=${MINGW_PREFIX}/share/${_realname}/intl \ + --with-fbmisc=${MINGW_PREFIX}/share/${_realname}/misc \ + --with-fbsecure-db=${MINGW_PREFIX}/etc/${_realname} \ + --with-fbmsg=${MINGW_PREFIX}/etc/${_realname} \ + --with-fblog=${MINGW_PREFIX}/var \ + --with-fbglock=${MINGW_PREFIX}/var \ + --with-fbplugins=${MINGW_PREFIX}/share/${_realname} - local _build_conf="Release" - if check_option "debug" "y"; then - _build_conf="Debug" + CC=${MINGW_PREFIX}/bin/gcc \ + make -j1 + + elif [ "${_build_sys}" = "cmake" ]; then + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + local _build_conf="Release" + if check_option "debug" "y"; then + _build_conf="Debug" + fi + + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=${_build_conf} \ + ../${_realname} + + make -j1 fi - - ${MINGW_PREFIX}/bin/cmake.exe \ - -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE=${_build_conf} \ - ../${_realname} - - make -j1 - - - # local _debug_conf= - # if check_option "debug" "y"; then - # _debug_conf="--enable-debug" - # fi - - # cd ${srcdir}/build-${MINGW_CHOST} - # CFLAGS+=" -D_POSIX_C_SOURCE" - - # ./configure \ - # --prefix=${MINGW_PREFIX} \ - # --build=${MINGW_CHOST} \ - # --host=${MINGW_CHOST} \ - # --target=${MINGW_CHOST} \ - # --enable-static \ - # --enable-shared \ - # ${_debug_conf} \ - # --disable-rpath \ - # --with-fbdoc=${MINGW_PREFIX}/share/${_realname}/doc - - # CC=${MINGW_PREFIX}/bin/gcc \ - # make -j1 } package() { cd ${srcdir}/build-${MINGW_CHOST} - local _dir=Release - if check_option "debug" "y"; then - _dir=Debug + if [ "${_build_sys}" = "autotools" ]; then + local _dir=Release + if check_option "debug" "y"; then + _dir=Debug + fi + + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,etc/${_realname},include,lib,share/${_realname}/{doc,help,intl,misc,plugins,samples,udf},var} + cp -f gen/${_dir}/firebird/bin/* ${pkgdir}${MINGW_PREFIX}/bin/ + cp -f gen/${_dir}/firebird/lib/* ${pkgdir}${MINGW_PREFIX}/lib/ + cp -rf gen/${_dir}/firebird/include/* ${pkgdir}${MINGW_PREFIX}/include/ + cp -f gen/${_dir}/firebird/UDF/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/udf/ + cp -rf gen/${_dir}/firebird/examples/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/samples/ + cp -f gen/${_dir}/firebird/help/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/help/ + cp -f gen/${_dir}/firebird/intl/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/intl/ + cp -rf gen/${_dir}/firebird/plugins/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/plugins/ + #cp -f gen/${_dir}/firebird/misc/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/misc/ + + cp -f gen/install/*.bat ${pkgdir}${MINGW_PREFIX}/bin/ + cp -f gen/${_dir}/firebird/*.conf ${pkgdir}${MINGW_PREFIX}/etc/${_realname}/ + cp -f gen/${_dir}/firebird/*.msg ${pkgdir}${MINGW_PREFIX}/etc/${_realname}/ + cp -f gen/${_dir}/firebird/*.fdb ${pkgdir}${MINGW_PREFIX}/etc/${_realname}/ + + cp -rf doc/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/doc/ + + touch ${pkgdir}${MINGW_PREFIX}/var/${_realname}.log + + # Remove build tools + rm -f ${pkgdir}${MINGW_PREFIX}/bin/{brltable,codes,create_db,*build*,*boot*,*static*,*current*}.exe + elif [ "${_build_sys}" = "cmake" ]; then + echo "Empty" fi - - mkdir -p ${pkgdir} - cp -rf gen/${_dir}/firebird ${pkgdir}${MINGW_PREFIX} - cp -rf ${srcdir}/${_realname}/doc ${pkgdir}${MINGW_PREFIX}/ } diff --git a/mingw-w64-firebird-git/cmake-mingw.patch b/mingw-w64-firebird-git/cmake-mingw.patch deleted file mode 100644 index 2543668d15..0000000000 --- a/mingw-w64-firebird-git/cmake-mingw.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- a/CMakeLists.txt.orig 2015-05-25 15:36:19.241200000 +0300 -+++ b/CMakeLists.txt 2015-05-25 15:54:10.095600000 +0300 -@@ -98,7 +98,7 @@ - string(TOUPPER ${conf} conf2) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${conf2} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${conf}/bin) - endforeach() --elseif (UNIX) -+elseif (UNIX OR MINGW) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${output_dir}/bin) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${output_dir}/bin) - endif() -@@ -113,7 +113,7 @@ - # icu - ######################################## - --if (UNIX) -+if (UNIX OR MINGW) - if (NOT ICU_INCLUDE_DIR) - find_path(ICU_INCLUDE_DIR unicode/ucnv.h - PATHS -@@ -159,7 +159,9 @@ - set(FB_SERVICE_PORT 3050) - - if (WIN32) -+ if (NOT MINGW) - set(FB_PREFIX "c:\\\\Program Files\\\\Firebird\\\\") -+ endif() - set(FB_IPC_NAME "FIREBIRD") - endif() - -@@ -192,7 +194,7 @@ - endif() - endif(MSVC) - -- set(LIB_Ws2_32 Ws2_32) -+ set(LIB_Ws2_32 ws2_32) - set(LIB_comctl32 comctl32) - set(LIB_mpr mpr) - set(LIB_version version) -@@ -244,7 +246,7 @@ - # - ################################################################################ - --if (WIN32) -+if (MSVC) - # icu - if (NOT ICU_EXTRACT) - message(STATUS "Extracting pre-built ICU") ---- a/src/CMakeLists.txt.orig 2015-05-25 15:56:46.615200000 +0300 -+++ b/src/CMakeLists.txt 2015-05-25 16:00:00.460800000 +0300 -@@ -852,7 +852,7 @@ - - endif() # if (NOT CMAKE_CROSSCOMPILING) - --if (WIN32) -+if (MSVC) - add_custom_command( - TARGET boot_isql - POST_BUILD \ No newline at end of file diff --git a/mingw-w64-firebird-git/firebird-mingw.diff b/mingw-w64-firebird-git/firebird-mingw.diff deleted file mode 100644 index e28b90f07e..0000000000 --- a/mingw-w64-firebird-git/firebird-mingw.diff +++ /dev/null @@ -1,967 +0,0 @@ -From eeffdaa92cc92234e59b8ad02fb079ed4dca6631 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Thu, 18 Dec 2014 23:47:12 +0300 -Subject: [PATCH] Resolve conflict with STRING type from mingw-w64 - ---- - src/dsql/Parser.cpp | 6 +++--- - src/dsql/parse.y | 16 ++++++++-------- - src/yvalve/preparse.cpp | 16 ++++++++-------- - 3 files changed, 19 insertions(+), 19 deletions(-) - -diff --git a/src/dsql/Parser.cpp b/src/dsql/Parser.cpp -index 0f1b0d1..65e9d75 100644 ---- a/src/dsql/Parser.cpp -+++ b/src/dsql/Parser.cpp -@@ -548,7 +548,7 @@ int Parser::yylexAux() - mark.str = yylval.intlStringPtr; - strMarks.put(mark.str, mark); - -- return STRING; -+ return TOK_STRING; - } - - /* -@@ -676,7 +676,7 @@ int Parser::yylexAux() - - yylval.intlStringPtr = newIntlString(temp, "BINARY"); - -- return STRING; -+ return TOK_STRING; - } // if (!hexerror)... - - // If we got here, there was a parsing error. Set the -@@ -731,7 +731,7 @@ int Parser::yylexAux() - mark.str = yylval.intlStringPtr; - strMarks.put(mark.str, mark); - -- return STRING; -+ return TOK_STRING; - } - } - -diff --git a/src/dsql/parse.y b/src/dsql/parse.y -index 9dd9c0c..8c8f281 100644 ---- a/src/dsql/parse.y -+++ b/src/dsql/parse.y -@@ -336,7 +336,7 @@ using namespace Firebird; - %token SYMBOL - %token NUMBER - --%token STRING -+%token TOK_STRING - %token INTRODUCER - - // New tokens added v5.0 -@@ -3202,7 +3202,7 @@ err($exceptionArray) - item.type = ExceptionItem::SQL_CODE; - item.code = $2; - } -- | SQLSTATE STRING -+ | SQLSTATE TOK_STRING - { - ExceptionItem& item = $exceptionArray->add(); - item.type = ExceptionItem::SQL_STATE; -@@ -6381,7 +6381,7 @@ map_from_symbol_name - - %type map_logoninfo - map_logoninfo -- : STRING -+ : TOK_STRING - | valid_symbol_name { $$ = newNode($1->c_str()); } - ; - -@@ -6629,7 +6629,7 @@ u_constant - : u_numeric_constant - | sql_string - { $$ = MAKE_str_constant($1, lex.att_charset); } -- | DATE STRING -+ | DATE TOK_STRING - { - if (client_dialect < SQL_DIALECT_V6_TRANSITION) - { -@@ -6645,7 +6645,7 @@ u_constant - } - $$ = MAKE_constant($2->getString().c_str(), CONSTANT_DATE); - } -- | TIME STRING -+ | TIME TOK_STRING - { - if (client_dialect < SQL_DIALECT_V6_TRANSITION) - { -@@ -6661,7 +6661,7 @@ u_constant - } - $$ = MAKE_constant($2->getString().c_str(), CONSTANT_TIME); - } -- | TIMESTAMP STRING -+ | TIMESTAMP TOK_STRING - { $$ = MAKE_constant($2->getString().c_str(), CONSTANT_TIMESTAMP); } - ; - -@@ -6705,8 +6705,8 @@ internal_info - - %type sql_string - sql_string -- : STRING // string in current charset -- | INTRODUCER STRING // string in specific charset -+ : TOK_STRING // string in current charset -+ | INTRODUCER TOK_STRING // string in specific charset - { - $$ = $2; - $$->setCharSet(*$1); -diff --git a/src/yvalve/preparse.cpp b/src/yvalve/preparse.cpp -index 0c09dea..bc2047b 100644 ---- a/src/yvalve/preparse.cpp -+++ b/src/yvalve/preparse.cpp -@@ -91,7 +91,7 @@ enum token_vals { - TOKEN_TOO_LONG = -2, - UNEXPECTED_END_OF_COMMAND = -3, - UNEXPECTED_TOKEN = -4, -- STRING = 257, -+ TOK_STRING = 257, - NUMERIC = 258, - SYMBOL = 259 - }; -@@ -145,7 +145,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, - return false; - } - -- if (get_token(status, STRING, false, &stmt, stmt_end, token)) -+ if (get_token(status, TOK_STRING, false, &stmt, stmt_end, token)) - { - return true; - } -@@ -195,7 +195,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, - break; - - case PP_USER: -- if (get_token(status, STRING, false, &stmt, stmt_end, token)) -+ if (get_token(status, TOK_STRING, false, &stmt, stmt_end, token)) - { - get_out = true; - break; -@@ -206,7 +206,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, - break; - - case PP_PASSWORD: -- if (get_token(status, STRING, false, &stmt, stmt_end, token)) -+ if (get_token(status, TOK_STRING, false, &stmt, stmt_end, token)) - { - get_out = true; - break; -@@ -217,7 +217,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, - break; - - case PP_ROLE: -- if (get_token(status, STRING, false, &stmt, stmt_end, token)) -+ if (get_token(status, TOK_STRING, false, &stmt, stmt_end, token)) - { - get_out = true; - break; -@@ -231,7 +231,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, - if (get_token(status, SYMBOL, false, &stmt, stmt_end, token) || - token.length() != pp_symbols[PP_NAMES].length || - token != pp_symbols[PP_NAMES].symbol || -- get_token(status, STRING, false, &stmt, stmt_end, token)) -+ get_token(status, TOK_STRING, false, &stmt, stmt_end, token)) - { - get_out = true; - break; -@@ -424,7 +424,7 @@ static SSHORT get_next_token(const SCHAR** stmt, const SCHAR* stmt_end, string& - token.erase(MAX_TOKEN_SIZE); - return TOKEN_TOO_LONG; - } -- return STRING; -+ return TOK_STRING; - } - - // Is it an integer? -@@ -526,6 +526,6 @@ static SSHORT get_token(CheckStatusWrapper* status, - - *stmt = temp_stmt; - generate_error(status, token, UNEXPECTED_TOKEN, -- (result == STRING) ? *(temp_stmt - 1) : 0); -+ (result == TOK_STRING) ? *(temp_stmt - 1) : 0); - return FB_FAILURE; - } --- -2.4.1 - -From 4db9fa515a7ca169fa07533f1deaa7e4456885f3 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Mon, 24 Nov 2014 22:12:17 +0300 -Subject: [PATCH] mingw-w64 have matherr routine - ---- - src/extlib/ib_udf.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/extlib/ib_udf.cpp b/src/extlib/ib_udf.cpp -index fc6d69c..5a6f21b 100644 ---- a/src/extlib/ib_udf.cpp -+++ b/src/extlib/ib_udf.cpp -@@ -50,10 +50,12 @@ extern "C" - #else - #define exception_type __exception - #endif -+#ifndef matherr - int MATHERR(struct exception_type*) - { - return 1; - } -+#endif - #undef exception_type - #endif // SOLARIS - #endif //__ICC --- -2.4.1 - -From f7e30c4d505e7904b95d59d77cc69dcd6060c8e5 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Fri, 28 Nov 2014 12:28:31 +0300 -Subject: [PATCH] Fix linkng error for mingw. - ---- - src/utilities/install/services.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/utilities/install/services.cpp b/src/utilities/install/services.cpp -index 04abff3..f28e7fa 100644 ---- a/src/utilities/install/services.cpp -+++ b/src/utilities/install/services.cpp -@@ -563,6 +563,7 @@ USHORT SERVICES_grant_access_rights(const char* service_name, const TEXT* accoun - // Until the fb_assert could be converted to a function/object linked with each module - // we need this ugly workaround. - // -+#ifndef __MINGW32__ - extern "C" void API_ROUTINE gds__log(const TEXT* text, ...) - { - va_list ptr; -@@ -572,6 +573,7 @@ extern "C" void API_ROUTINE gds__log(const TEXT* text, ...) - va_end(ptr); - printf("\n\n"); - } -+#endif - - // - // EOF --- -2.4.1 - -From a94d20a0393e6649fa92f0627103f7ac3eedad8b Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Sun, 30 Nov 2014 15:26:04 +0300 -Subject: [PATCH] DLL's are in BIN folder. - ---- - builds/posix/make.defaults | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults -index f68c44c..caa9930 100755 ---- a/builds/posix/make.defaults -+++ b/builds/posix/make.defaults -@@ -202,7 +202,7 @@ include $(ROOT)/gen/Make.Version - - vpath %.so $(LIB) - vpath %.a $(LIB) --vpath %.dll $(LIB) -+vpath %.dll $(BIN) - - #_____________________________________________________________________________ - --- -2.4.1 - -From 3665f4d104ed9c57c5d4cda4c4213a82e373d83f Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Sun, 30 Nov 2014 15:08:19 +0300 -Subject: [PATCH] Auto detect WINDRES with autoconf. - -Fix building .rc files. ---- - builds/posix/make.defaults | 4 +++- - builds/posix/make.rules | 4 ++-- - builds/posix/make.shared.targets | 14 +++++++------- - configure.ac | 10 ++++++++++ - 4 files changed, 22 insertions(+), 10 deletions(-) - -diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults -index caa9930..65f8c6c 100755 ---- a/builds/posix/make.defaults -+++ b/builds/posix/make.defaults -@@ -151,9 +151,11 @@ ECHO= echo - QUIET_ECHO= @echo - CD= cd - CAT= cat --AR= ar @AR_OPTIONS@ -+AR= @AR@ @AR_OPTIONS@ - LN= @LN_S@ -+DLLTOOL= @DLLTOOL@ - RANLIB= @RANLIB@ -+RC= @RC@ - BTYACC=$(ROOT)/extern/btyacc/btyacc - CLOOP=$(GEN_ROOT)/$(TARGET)/cloop/release/bin/cloop - -diff --git a/builds/posix/make.rules b/builds/posix/make.rules -index 42c719d..601dc82 100644 ---- a/builds/posix/make.rules -+++ b/builds/posix/make.rules -@@ -102,8 +102,8 @@ $(OBJ)/%.o: $(SRC_ROOT)/%.cpp - - # Rules for making resource files - --$(GEN_ROOT)/%.res: $(SRC_ROOT)/%.rc -- windres --output-format=coff --include-dir=$( -Date: Wed, 19 Nov 2014 08:59:48 +0300 -Subject: [PATCH] Define AMD64 for 64-bit mingw. - ---- - configure.ac | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 2e81f32..651ca3e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -468,6 +468,11 @@ dnl CPU_TYPE=ppc64 - EDITLINE_FLG=N - RAW_DEVICES_FLG=N - SHRLIB_EXT=dll -+ case "$target" in -+ x86_64-*-mingw*) -+ AC_DEFINE(AMD64, 1, [Define this if CPU is amd64]) -+ ;; -+ esac - ;; - - *) --- -2.4.1 - -From c3fc0c5a10f503fb92c97aa6d2cd7769f1744d4b Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Wed, 19 Nov 2014 23:16:18 +0300 -Subject: [PATCH] Use mingw-w64 crt for Vista and later. Remove unneeded - -flag "-Dlint". Use GCC built-in define for mingw ---- - builds/posix/prefix.mingw | 4 ++-- - src/common/classes/fb_atomic.h | 2 +- - src/iscguard/iscguard.cpp | 2 +- - src/isql/isql.epp | 4 ++-- - src/jrd/ibsetjmp.h | 2 +- - src/remote/server/os/win32/srvr_w32.cpp | 2 +- - 6 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw -index 5f8dde8..09902f4 100644 ---- a/builds/posix/prefix.mingw -+++ b/builds/posix/prefix.mingw -@@ -20,8 +20,8 @@ - # - - # -Wno-unused-variable is used due to unused gpre generated variables --PROD_FLAGS=-O2 -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor --DEV_FLAGS=-ggdb -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor -+PROD_FLAGS=-O2 -D_WIN32_WINNT=0x0600 -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor -+DEV_FLAGS=-ggdb -D_WIN32_WINNT=0x0600 -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor - - PLATFORM_PATH=os/win32 - -diff --git a/src/common/classes/fb_atomic.h b/src/common/classes/fb_atomic.h -index f32b2b8..2e90ab6 100644 ---- a/src/common/classes/fb_atomic.h -+++ b/src/common/classes/fb_atomic.h -@@ -99,7 +99,7 @@ public: - } - - protected: --#ifndef MINGW -+#ifndef __MINGW32__ - volatile - #endif - counter_type counter; -diff --git a/src/iscguard/iscguard.cpp b/src/iscguard/iscguard.cpp -index b1cf0f6..6d21508 100644 ---- a/src/iscguard/iscguard.cpp -+++ b/src/iscguard/iscguard.cpp -@@ -137,7 +137,7 @@ int WINAPI WinMain(HINSTANCE hInstance, - - // BRS There is a error in MinGW (3.1.0) headers - // the parameter of StartServiceCtrlDispatcher is declared const in msvc headers --#if defined(MINGW) -+#if defined(__MINGW32__) - if (!StartServiceCtrlDispatcher(const_cast(service_table))) - #else - if (!StartServiceCtrlDispatcher(service_table)) -diff --git a/src/isql/isql.epp b/src/isql/isql.epp -index 07fe3c3..1002b7a 100644 ---- a/src/isql/isql.epp -+++ b/src/isql/isql.epp -@@ -7274,7 +7274,7 @@ static unsigned print_item(TEXT** s, const IsqlVar* var, const unsigned length) - break; - } - --#if defined(MINGW) -+#if defined(__MINGW32__) - if (value == 0) - { - sprintf(p, "% #*.*g ", length, (int) MIN(8, (length - 6)) - 1, value); -@@ -7350,7 +7350,7 @@ static unsigned print_item(TEXT** s, const IsqlVar* var, const unsigned length) - } - else - { --#if defined(MINGW) -+#if defined(__MINGW32__) - if (value == 0) - { - sprintf(p, "% #*.*g ", length, (int) MIN(16, (length - 7)) - 1, value); -diff --git a/src/jrd/ibsetjmp.h b/src/jrd/ibsetjmp.h -index 759f125..0ac3c54 100644 ---- a/src/jrd/ibsetjmp.h -+++ b/src/jrd/ibsetjmp.h -@@ -50,7 +50,7 @@ - - #endif // UNIX - --#if defined(WIN_NT) && !defined(MINGW) -+#if defined(WIN_NT) && !defined(__MINGW32__) - #include - - #define START_CHECK_FOR_EXCEPTIONS(err) { \ -diff --git a/src/remote/server/os/win32/srvr_w32.cpp b/src/remote/server/os/win32/srvr_w32.cpp -index a7f8ac5..3bc652f 100644 ---- a/src/remote/server/os/win32/srvr_w32.cpp -+++ b/src/remote/server/os/win32/srvr_w32.cpp -@@ -322,7 +322,7 @@ int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE /*hPrevInst*/, LPSTR lpszArgs, - - // BRS There is a error in MinGW (3.1.0) headers - // the parameter of StartServiceCtrlDispatcher is declared const in msvc headers --#if defined(MINGW) -+#if defined(__MINGW32__) - if (!StartServiceCtrlDispatcher(const_cast(service_table))) - { - #else --- -2.4.1 - -From 21b827dadf12d0afe45f0f866891f1eeedf95011 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Thu, 20 Nov 2014 07:31:40 +0300 -Subject: [PATCH] Add AuthSspi to remote common - needed for win32 target. - ---- - builds/posix/make.shared.variables | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/builds/posix/make.shared.variables b/builds/posix/make.shared.variables -index 2d3143f..53597e6 100644 ---- a/builds/posix/make.shared.variables -+++ b/builds/posix/make.shared.variables -@@ -52,7 +52,7 @@ AllObjects += $(YValve_Objects) - - - # Remote --Remote_Common:= $(call dirObjects,remote) $(call dirObjects,auth/SecureRemotePassword) -+Remote_Common:= $(call dirObjects,remote) $(call dirObjects,auth/SecureRemotePassword) $(call dirObjects,auth/trusted) - Remote_Server:= $(call dirObjects,remote/server) $(call dirObjects,auth/SecureRemotePassword/server) - Remote_Client:= $(call dirObjects,remote/client) $(call dirObjects,auth/SecureRemotePassword/client) \ - $(call makeObjects,auth/SecurityDatabase,LegacyClient.cpp) \ --- -2.4.1 - -From 70e58e3d549dcbc4fb82429fcbf22c9dce072999 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Mon, 24 Nov 2014 09:08:35 +0300 -Subject: [PATCH] Some utilities need to link with additional windows libraries - ---- - builds/posix/Makefile.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in -index eac1ed5..85d4697 100644 ---- a/builds/posix/Makefile.in -+++ b/builds/posix/Makefile.in -@@ -375,7 +375,7 @@ utilities: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix g - firebird_server: $(FB_DAEMON) - - $(FB_DAEMON): $(Remote_Server_Objects) $(COMMON_LIB) -- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) -+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(LIB_GUI) - - fb_lock_print: $(LOCKPRINT) - -@@ -385,7 +385,7 @@ $(LOCKPRINT): $(LOCKPRINT_Objects) $(COMMON_LIB) - fbguard: $(FBGUARD) - - $(FBGUARD): $(FBGUARD_Objects) $(COMMON_LIB) -- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) -+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(LIB_GUI) - - fbsvcmgr: $(FBSVCMGR) - --- -2.4.1 - -From 239e587288bcac4c7e626225fb88267898ad9302 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Mon, 24 Nov 2014 10:10:35 +0300 -Subject: [PATCH] Fix linking executables and libraries with resources. - Generate proper import libraries. - ---- - builds/posix/Makefile.in.plugins_examples | 2 +- - builds/posix/make.defaults | 9 +++---- - builds/posix/prefix.mingw | 40 ++++++++++++++----------------- - 3 files changed, 24 insertions(+), 27 deletions(-) - -diff --git a/builds/posix/Makefile.in.plugins_examples b/builds/posix/Makefile.in.plugins_examples -index 40908f6..24fa138 100644 ---- a/builds/posix/Makefile.in.plugins_examples -+++ b/builds/posix/Makefile.in.plugins_examples -@@ -73,7 +73,7 @@ ifeq ($(PLATFORM),DARWIN) - $(LIB_LINK) $(LIB_BUNDLE_OPTIONS) -o $@ $^ @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ \ - $(FIREBIRD_LIBRARY_LINK) - else -- $(LIB_LINK) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME)udrcpp_example.$(SHRLIB_EXT) \ -+ $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(LIB_PREFIX)udrcpp_example.$(SHRLIB_EXT)) \ - $(LIB_PATH_OPTS) -o $@ $^ $(THR_LIBS) \ - $(FIREBIRD_LIBRARY_LINK) - endif -diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults -index 65f8c6c..73b9ae8 100755 ---- a/builds/posix/make.defaults -+++ b/builds/posix/make.defaults -@@ -218,7 +218,7 @@ vpath %.dll $(BIN) - # - - #LibraryFileName=libfbclient --LibraryFileName=libfbclient -+LibraryFileName=$(LIB_PREFIX)fbclient - LibraryFullName=$(LibraryFileName).${SHRLIB_EXT}.${FirebirdVersion} - LibrarySoName=$(LibraryFileName).${SHRLIB_EXT}.2 - LibraryBaseName=$(LibraryFileName).${SHRLIB_EXT} -@@ -229,7 +229,7 @@ LIBFIREBIRD_BASENAME = $(LIB)/$(LibrarySoName) - - # The firebird engine library name - --EngineFileName=libEngine${OdsVersion} -+EngineFileName=$(LIB_PREFIX)Engine${OdsVersion} - EngineSoName=$(EngineFileName).${SHRLIB_EXT} - ENGINE_SONAME = $(PLUGINS)/$(EngineSoName) - -@@ -290,6 +290,7 @@ else - endif - LIB_PATH_OPTS = $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_RPATH,intl) - LIB_LINK_SONAME= -Wl,-soname,$(1) -+LIB_LINK_IMPLIB= - LIB_LINK_MAPFILE= -Wl,--version-script,$(1) - FIREBIRD_LIBRARY_LINK= -L$(LIB) -lfbclient $(MATHLIB) - -@@ -304,7 +305,7 @@ LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_ - LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util $(SO_LINK_LIBS) - - LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ -- $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) -+ $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_IMPLIB,$(LIB)/lib$(IbUtilLibraryName).a) - LINK_IB_UTIL_LIBS = $(THR_LIBS) - - LINK_INTL = $(LIB_LINK) $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ -@@ -316,7 +317,7 @@ LINK_TRACE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAG - LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) - - LINK_FIREBIRD = $(LIB_LINK) $(LINK_FIREBIRD_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\ -- $(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib) -+ $(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_IMPLIB,$(LIB)/lib$(LibraryBaseName).a) - LINK_FIREBIRD_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(MATHLIB) - - LINK_ENGINE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\ -diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw -index 09902f4..df3ba43 100644 ---- a/builds/posix/prefix.mingw -+++ b/builds/posix/prefix.mingw -@@ -28,42 +28,38 @@ PLATFORM_PATH=os/win32 - # Override link command for implicit stdc++ linking - LIB_LINK=$(LD) - --LIB_LINK_OPTIONS+=-Wl,--enable-stdcall-fixup -- - # Strip symbols from release versions to decrease size - ifeq ($(IsProdTypeBuild),Y) - EXE_LINK_OPTIONS+=-Wl,-s - LIB_LINK_OPTIONS+=-Wl,-s - endif - --# Generation of fbclient_ms.lib --LIB_LINK_IMPLIB:=-Wl,--out-implib,firebird/lib/fbclient_ms.lib - LIB_GUI:= -mwindows -lcomctl32 -lgdi32 - - # Add resources to some files --FilesToAddVersionInfo=$(LIBFBEMBED_SO) $(LIBFBCLIENT_SO) $(LIBFBINTL_SO) \ -- $(GSTAT) $(GSEC) $(GFIX) $(QLI) $(ISQL) $(GBAK) $(GPRE) -+FilesToAddVersionInfo=$(FBTRACEMGR) $(LIBFIREBIRD_FULLNAME) $(ENGINE_SONAME) $(LIBFBINTL_SO) \ -+ $(FBSVCMGR) $(FBTRACEMGR) $(FBTRACE) $(FBUDF_SO) $(LIBIBUTIL_SO) \ -+ $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP) - # TODO: guardians also must be here --FilesToAddDialog=$(FB_SUPER_SERVER) $(FB_CLASSIC_SERVER) --FilesToAddDialog2=$(IBGUARD) -+FilesToAddDialog=$(FB_DAEMON) -+FilesToAddDialog2=$(FBGUARD) - - # Suppress 'lib'-prefix - LIB_PREFIX= - - # Override library names to suppress version suffix --ClientLibraryNameFull := $(ClientLibraryName) --ClientLibrarySoName := $(ClientLibraryName) -- --# Looks like MinGW 3 does not support version scripts but support def-files --LINK_FIREBIRD_SYMBOLS = $(BLD_ROOT)/win32/defs/fbclient_s.def $(BLD_ROOT)/win32/defs/fbclient.def -- --# This is required for newly built executable to find newly built shared --# libraries because on Win32 there is no such thing as LD_LIBRARY_PATH --LIB=$(BIN) -+LibrarySoName := $(LibraryBaseName) -+LibraryFullName := $(LibraryBaseName) -+LIBFIREBIRD_FULLNAME = $(BIN)/$(LibraryBaseName) -+LIBFIREBIRD_SONAME = $(LIBFIREBIRD_FULLNAME) -+LIBFIREBIRD_BASENAME = $(LIBFIREBIRD_FULLNAME) -+LIBIBUTIL_SO = $(BIN)/$(IbUtilLibraryName) - --# Special options for UDF link --LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_EXT)) -L$(LIB) -lib_util --LINK_UDF_LIBS = -+LINK_FIREBIRD_SYMBOLS = -+LINK_FBINTL_SYMBOLS = -+LINK_IBUTIL_SYMBOLS = -+LINK_UDRENG_SYMBOLS = -+LINK_EMPTY_SYMBOLS = -+LINK_PLUGIN_SYMBOLS = -+LIB_LINK_IMPLIB= -Wl,--out-implib,$(1) - --# Special options for trace plugin link --LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) --- -2.4.1 - -From 3bf8f92c972acf946d2ce323dba06785a9d5cb50 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Mon, 24 Nov 2014 11:12:17 +0300 -Subject: [PATCH] Windows have another sources for FBGUARD. - ---- - builds/posix/make.shared.variables | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/builds/posix/make.shared.variables b/builds/posix/make.shared.variables -index 53597e6..ef25f37 100644 ---- a/builds/posix/make.shared.variables -+++ b/builds/posix/make.shared.variables -@@ -122,7 +122,11 @@ AllObjects += $(LOCKPRINT_Objects) - - - # Guardian -+ifeq ($(PLATFORM),win32) -+FBGUARD_Objects:= $(call dirObjects,iscguard) $(call makeObjects,remote/server/os/win32,chop.cpp) -+else - FBGUARD_Objects:= $(call dirObjects,utilities/guard) -+endif - - AllObjects += $(FBGUARD_Objects) - --- -2.4.1 - -From 4007f3292066706ff5f4f72e8e87de171c9c3353 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Thu, 27 Nov 2014 15:57:53 +0300 -Subject: [PATCH] Do not install posix scripts for win32 platform. - ---- - configure.ac | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 651ca3e..72f43d6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1195,6 +1195,7 @@ if test "x$CROSS" != "x"; then - AC_CONFIG_FILES([gen/make.crossPlatform:builds/posix/make.$CROSS]) - fi - -+if test "$PLATFORM" != "win32"; then - AC_CONFIG_FILES([ - gen/Release/firebird/bin/fb_config:builds/install/posix-common/fb_config.in - gen/Release/firebird/bin/posixLibrary.sh:builds/install/posix-common/posixLibrary.sh.in -@@ -1208,8 +1209,9 @@ gen/Release/firebird/bin/taruninstall.sh:builds/install/posix-common/taruninstal - gen/Release/firebird/bin/tarMainUninstall.sh:builds/install/posix-common/tarMainUninstall.sh.in - gen/Release/firebird/bin/changeServerMode.sh:builds/install/posix-common/changeServerMode.sh.in - gen/Release/firebird/bin/registerDatabase.sh:builds/install/posix-common/registerDatabase.sh.in --gen/vers.sh:builds/posix/vers.sh.in - ]) -+fi -+AC_CONFIG_FILES(gen/vers.sh:builds/posix/vers.sh.in) - - dnl: Platform Specific Files - -@@ -1304,6 +1306,11 @@ case "$PLATFORM" in - - DARWIN) - ;; -+ win32) -+ AC_CONFIG_FILES(gen/install/install_classic.bat:builds/install/arch-specific/win32/install_classic.bat -+ gen/install/install_super.bat:builds/install/arch-specific/win32/install_super.bat -+ gen/install/uninstall.bat:builds/install/arch-specific/win32/uninstall.bat) -+ ;; - esac - if test -f ${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX};then - POSTFIX_FILE=gen/make.platform.postfix:${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX} --- -2.4.1 - -From 907124732e6e40f6b561594b72aee06aff97ad18 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Thu, 27 Nov 2014 17:04:52 +0300 -Subject: [PATCH] Use variables everywhere. - ---- - builds/posix/Makefile.in.examples | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/builds/posix/Makefile.in.examples b/builds/posix/Makefile.in.examples -index ec5c19c..49f6c9f 100644 ---- a/builds/posix/Makefile.in.examples -+++ b/builds/posix/Makefile.in.examples -@@ -123,7 +123,7 @@ $(EXAMPLES_DEST)% : $(EXAMPLES_SRC)% - - $(EMPLOYEE_DB): $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(INPUT_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT) - -$(RM) $(EMPLOYEE_DB) -- ./empbuild $(EMPLOYEE_DB) -+ $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(EMPLOYEE_DB) - $(GFIX) -write sync $(EMPLOYEE_DB) - -$(CHMOD_6) $(EMPLOYEE_DB) - -@@ -147,9 +147,9 @@ $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPLES_DEST)/empddl.sql $(EXAMPLES_DEST)/emp - # the intlemp.fdb database. - - $(EXAMPLES_DEST)/intlemp.fdb: $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) $(INTL_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT) -- -$(RM) intlemp.fdb -- ./intlbld intlemp.fdb -- -$(CHMOD_6) intlemp.fdb -+ -$(RM) $(EXAMPLES_DEST)/intlemp.fdb -+ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) intlemp.fdb -+ -$(CHMOD_6) $(EXAMPLES_DEST)/intlemp.fdb - - $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_LIB) - $(EXE_LINK) $(EXE_LINK_OPTIONS) @^ -o $@ -L$(LIB) $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) -@@ -157,8 +157,8 @@ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_LIB) - $(EXAMPLES_DEST)/intlbld.c: $(EXAMPLES_DEST)/intlbuild.fdb $(EXAMPLES_DEST)/intlbld.e - - $(EXAMPLES_DEST)/intlbuild.fdb : $(EXAMPLES_DEST)/intlddl.sql $(EXAMPLES_DEST)/intlbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT) -- -$(RM) intlbuild.fdb -- $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql -+ -$(RM) $(EXAMPLES_DEST)/intlbuild.fdb -+ $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i $(EXAMPLES_DEST)/intlbld.sql - - - $(EXAMPLES_DEST)/%.sql: $(EXAMPLES_SRC)/empbuild/%.sql --- -2.4.1 - -From 065e72805f263d2ba484f45a965533370a0f4e37 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Fri, 28 Nov 2014 12:28:31 +0300 -Subject: [PATCH] Build windows specific utilities for mingw. - ---- - builds/posix/Makefile.in | 26 ++++++++++++++++++++++++++ - builds/posix/make.defaults | 1 + - builds/posix/make.shared.variables | 9 +++++++++ - builds/posix/prefix.mingw | 3 ++- - 4 files changed, 38 insertions(+), 1 deletion(-) - -diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in -index 85d4697..79659d2 100644 ---- a/builds/posix/Makefile.in -+++ b/builds/posix/Makefile.in -@@ -168,6 +168,9 @@ endif - $(MAKE) plugins - $(MAKE) examples - $(MAKE) rest -+ifeq ($(PLATFORM), win32) -+ $(MAKE) helpers -+endif - - - cross_process: -@@ -434,6 +437,29 @@ $(NBACKUP): $(NBACKUP_Objects) $(COMMON_LIB) - - - #___________________________________________________________________________ -+# install helpers - utilities for Windows to install/uninstall services and etc -+# -+ -+.PHONY: instclient instreg instsvc -+ -+helpers: instclient instreg instsvc -+ -+instclient: $(INSTCLI) -+ -+$(INSTCLI): $(INSTCLIENT_Objects) -+ $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS) -+ -+instreg: $(INSTREG) -+ -+$(INSTREG): $(INSTREG_Objects) -+ $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS) -+ -+instsvc: $(INSTSVC) -+ -+$(INSTSVC): $(INSTSVC_Objects) $(YValve_Objects) $(Common_Objects) $(Remote_Client_Objects) -+ $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(MATHLIB) -+ -+#___________________________________________________________________________ - # plugins - some of them are required to build examples, use separate entry for them - # - -diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults -index 73b9ae8..71626107 100755 ---- a/builds/posix/make.defaults -+++ b/builds/posix/make.defaults -@@ -351,6 +351,7 @@ GDS_INSTALL = $(BIN)/gds_install_service$(EXEC_EXT) - FBGUARD = $(BIN)/fbguard$(EXEC_EXT) - IBGUARD = $(BIN)/ibguard$(EXEC_EXT) - FBMGR_BIN = $(BIN)/fbmgr.bin$(EXEC_EXT) -+INSTCLI = $(BIN)/instclient$(EXEC_EXT) - INSTREG = $(BIN)/instreg$(EXEC_EXT) - INSTSVC = $(BIN)/instsvc$(EXEC_EXT) - -diff --git a/builds/posix/make.shared.variables b/builds/posix/make.shared.variables -index ef25f37..18903b9 100644 ---- a/builds/posix/make.shared.variables -+++ b/builds/posix/make.shared.variables -@@ -219,3 +219,12 @@ AllObjects += $(CODES_Objects) - BUILD_Objects:= $(call makeObjects,msgs,build_file.epp) - - AllObjects += $(BUILD_Objects) -+ -+# Install helpers -+ifeq ($(PLATFORM),win32) -+INSTCLIENT_Objects:= $(call makeObjects,utilities/install,install.cpp install_client.cpp) -+INSTREG_Objects:= $(call makeObjects,utilities/install,install_reg.cpp registry.cpp) -+INSTSVC_Objects:= $(call makeObjects,utilities/install,install_svc.cpp services.cpp) -+ -+AllObjects += $(INSTCLIENT_Objects) $(INSTREG_Objects) $(INSTSVC_Objects) -+endif -diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw -index df3ba43..49839fd 100644 ---- a/builds/posix/prefix.mingw -+++ b/builds/posix/prefix.mingw -@@ -39,7 +39,8 @@ LIB_GUI:= -mwindows -lcomctl32 -lgdi32 - # Add resources to some files - FilesToAddVersionInfo=$(FBTRACEMGR) $(LIBFIREBIRD_FULLNAME) $(ENGINE_SONAME) $(LIBFBINTL_SO) \ - $(FBSVCMGR) $(FBTRACEMGR) $(FBTRACE) $(FBUDF_SO) $(LIBIBUTIL_SO) \ -- $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP) -+ $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP) \ -+ $(INSTCLI) $(INSTREG) $(INSTSVC) - # TODO: guardians also must be here - FilesToAddDialog=$(FB_DAEMON) - FilesToAddDialog2=$(FBGUARD) --- -2.4.1 - -From 065e72805f263d2ba484f45a965533370a0f4e37 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Fri, 28 Nov 2014 12:28:31 +0300 -Subject: [PATCH] Fix using mutex. - ---- - src/extlib/fbudf/fbudf.cpp | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletion(-) - -diff --git a/src/extlib/fbudf/fbudf.cpp b/src/extlib/fbudf/fbudf.cpp -index 85d4697..79659d2 100644 ---- a/src/extlib/fbudf/fbudf.cpp 2015-05-27 09:35:39.733200000 +0300 -+++ b/src/extlib/fbudf/fbudf.cpp 2015-05-27 09:35:58.765200000 +0300 -@@ -581,7 +581,7 @@ - #if defined(HAVE_LOCALTIME_R) - tm* times = localtime_r(&seconds, &timex); - #else -- timeMutex.enter(); -+ timeMutex.enter(FB_FUNCTION); - tm* times = localtime(&seconds); - if (times) - { -@@ -628,7 +628,7 @@ - #if defined(HAVE_GMTIME_R) - tm* times = gmtime_r(&seconds, &timex); - #else -- timeMutex.enter(); -+ timeMutex.enter(FB_FUNCTION); - tm* times = gmtime(&seconds); - if (times) - { --- -2.4.1 - diff --git a/mingw-w64-firebird-git/firebird-msys.diff b/mingw-w64-firebird-git/firebird-msys.diff deleted file mode 100644 index aee546680c..0000000000 --- a/mingw-w64-firebird-git/firebird-msys.diff +++ /dev/null @@ -1,127 +0,0 @@ -From c9e87fdeea5332f1e70e80f4a4bb62bd37259a2d Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Tue, 25 Nov 2014 12:59:43 +0300 -Subject: [PATCH] our mingw-w64 have different icu libs naming. - ---- - src/common/unicode_util.cpp | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/common/unicode_util.cpp b/src/common/unicode_util.cpp -index 3a5b073..65a2012 100644 ---- a/src/common/unicode_util.cpp -+++ b/src/common/unicode_util.cpp -@@ -58,8 +58,13 @@ using namespace Firebird; - - namespace { - #if defined(WIN_NT) -+#ifdef __MINGW32__ -+const char* const inTemplate = "libicuin%s.dll"; -+const char* const ucTemplate = "libicuuc%s.dll"; -+#else - const char* const inTemplate = "icuin%s.dll"; - const char* const ucTemplate = "icuuc%s.dll"; -+#endif - #elif defined(DARWIN) - //const char* const inTemplate = "/Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib"; - //const char* const ucTemplate = "/Library/Frameworks/Firebird.framework/versions/A/Libraries/libicuuc.dylib"; --- -2.2.0 - -From 57ad0dada3cca5dfb452bd3c39ac45ff3b1d554b Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Wed, 19 Nov 2014 23:15:45 +0300 -Subject: [PATCH] Fix UNIX path for mingw compiler. - ---- - src/misc/writeBuildNum.sh | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/misc/writeBuildNum.sh b/src/misc/writeBuildNum.sh -index 9f23244..d4e58f7 100755 ---- a/src/misc/writeBuildNum.sh -+++ b/src/misc/writeBuildNum.sh -@@ -96,6 +96,10 @@ createMakeVersion() { - - OdsH="${Root}/src/jrd/ods.h" - Mini="/tmp/miniods.h" -+if [ -n $MSYSTEM ] -+ then -+ Mini=$(cygpath -wm $Mini) -+fi - TestCpp="/tmp/test.cpp" - AOut="/tmp/a.out" - --- -2.2.0 - -From c89f2fdd21146ddfd95e57232c6ea47bda44a016 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Mon, 25 May 2015 15:14:47 +0300 -Subject: [PATCH] cloop: Fix building with mingw. - ---- - extern/cloop/Makefile | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/extern/cloop/Makefile b/extern/cloop/Makefile -index 2056e4a..11e0901 100644 ---- a/extern/cloop/Makefile -+++ b/extern/cloop/Makefile -@@ -11,7 +11,7 @@ LD := $(CXX) - SRC_DIR := src - BUILD_DIR := build - OUT_DIR := output --SHRLIB_EXT := .so -+SHRLIB_EXT := .dll - EXE_EXT := - - OBJ_DIR := $(BUILD_DIR)/$(TARGET) -@@ -27,7 +27,7 @@ SRCS_CPP := $(foreach sdir,$(SRC_DIRS),$(wildcard $(sdir)/*.cpp)) - OBJS_C := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS_C)) - OBJS_CPP := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRCS_CPP)) - --C_FLAGS := -ggdb -fPIC -MMD -MP -W -Wall -Wno-unused-parameter -+C_FLAGS := -ggdb -MMD -MP -W -Wall -Wno-unused-parameter - CXX_FLAGS := $(C_FLAGS) - FPC_FLAGS := -Mdelphi - -@@ -106,23 +106,23 @@ $(BIN_DIR)/test1-c$(SHRLIB_EXT): \ - $(OBJ_DIR)/tests/test1/CalcCApi.o \ - $(OBJ_DIR)/tests/test1/CTest.o \ - -- $(LD) $^ -shared -ldl -o $@ -+ $(LD) $^ -shared -o $@ - - $(BIN_DIR)/test1-c$(EXE_EXT): \ - $(OBJ_DIR)/tests/test1/CalcCApi.o \ - $(OBJ_DIR)/tests/test1/CTest.o \ - -- $(LD) $^ -ldl -o $@ -+ $(LD) $^ -o $@ - - $(BIN_DIR)/test1-cpp$(SHRLIB_EXT): \ - $(OBJ_DIR)/tests/test1/CppTest.o \ - -- $(LD) $^ -shared -ldl -o $@ -+ $(LD) $^ -shared -o $@ - - $(BIN_DIR)/test1-cpp$(EXE_EXT): \ - $(OBJ_DIR)/tests/test1/CppTest.o \ - -- $(LD) $^ -ldl -o $@ -+ $(LD) $^ -o $@ - - $(BIN_DIR)/test1-pascal$(SHRLIB_EXT): \ - $(SRC_DIR)/tests/test1/PascalClasses.pas \ -@@ -130,7 +130,7 @@ $(BIN_DIR)/test1-pascal$(SHRLIB_EXT): \ - $(SRC_DIR)/tests/test1/CalcPascalApi.pas \ - - ifeq ($(WITH_FPC),1) -- fpc $(FPC_FLAGS) -fPIC -FU$(OBJ_DIR)/tests/test1 -o$(BIN_DIR)/test1-pascal$(SHRLIB_EXT) $(SRC_DIR)/tests/test1/PascalLibrary.dpr -+ fpc $(FPC_FLAGS) -FU$(OBJ_DIR)/tests/test1 -o$(BIN_DIR)/test1-pascal$(SHRLIB_EXT) $(SRC_DIR)/tests/test1/PascalLibrary.dpr - endif - - $(BIN_DIR)/test1-pascal$(EXE_EXT): \ --- -2.4.1 diff --git a/mingw-w64-firebird-git/mingw-w64-trunk.patch b/mingw-w64-firebird-git/mingw-w64-trunk.patch new file mode 100644 index 0000000000..de53e69807 --- /dev/null +++ b/mingw-w64-firebird-git/mingw-w64-trunk.patch @@ -0,0 +1,2732 @@ +From b818db3c9b3f553752ad1fb6f818f84e3d07b971 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Tue, 25 Nov 2014 12:59:43 +0300 +Subject: [PATCH] our mingw-w64 have different icu libs naming. + +--- + src/common/unicode_util.cpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/common/unicode_util.cpp b/src/common/unicode_util.cpp +index ba77825..d93cd7a 100644 +--- a/src/common/unicode_util.cpp ++++ b/src/common/unicode_util.cpp +@@ -58,8 +58,13 @@ using namespace Firebird; + + namespace { + #if defined(WIN_NT) ++#ifdef __MINGW32__ ++const char* const inTemplate = "libicuin%s.dll"; ++const char* const ucTemplate = "libicuuc%s.dll"; ++#else + const char* const inTemplate = "icuin%s.dll"; + const char* const ucTemplate = "icuuc%s.dll"; ++#endif + #elif defined(DARWIN) + //const char* const inTemplate = "/Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib"; + //const char* const ucTemplate = "/Library/Frameworks/Firebird.framework/versions/A/Libraries/libicuuc.dylib"; +-- +2.4.3 + +From 7596d4f99639877213e38c6c2b36f57e20345dfe Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 23:15:45 +0300 +Subject: [PATCH] Fix UNIX path for mingw compiler. + +--- + src/misc/writeBuildNum.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/misc/writeBuildNum.sh b/src/misc/writeBuildNum.sh +index 45fb208..ae29b45 100755 +--- a/src/misc/writeBuildNum.sh ++++ b/src/misc/writeBuildNum.sh +@@ -96,6 +96,10 @@ createMakeVersion() { + + OdsH="${Root}/src/jrd/ods.h" + Mini="/tmp/miniods.h" ++if [ -n $MSYSTEM ] ++ then ++ Mini=$(cygpath -wm $Mini) ++fi + TestCpp="/tmp/test.cpp" + AOut="/tmp/a.out" + +-- +2.4.3 + +From 1a76d754fce9287ff93040bfb35846a072e5133b Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 25 May 2015 15:14:47 +0300 +Subject: [PATCH] cloop: Fix building with mingw. + +--- + extern/cloop/Makefile | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/extern/cloop/Makefile b/extern/cloop/Makefile +index 2056e4a..11e0901 100644 +--- a/extern/cloop/Makefile ++++ b/extern/cloop/Makefile +@@ -11,7 +11,7 @@ LD := $(CXX) + SRC_DIR := src + BUILD_DIR := build + OUT_DIR := output +-SHRLIB_EXT := .so ++SHRLIB_EXT := .dll + EXE_EXT := + + OBJ_DIR := $(BUILD_DIR)/$(TARGET) +@@ -27,7 +27,7 @@ SRCS_CPP := $(foreach sdir,$(SRC_DIRS),$(wildcard $(sdir)/*.cpp)) + OBJS_C := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS_C)) + OBJS_CPP := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRCS_CPP)) + +-C_FLAGS := -ggdb -fPIC -MMD -MP -W -Wall -Wno-unused-parameter ++C_FLAGS := -ggdb -MMD -MP -W -Wall -Wno-unused-parameter + CXX_FLAGS := $(C_FLAGS) + FPC_FLAGS := -Mdelphi + +@@ -106,23 +106,23 @@ $(BIN_DIR)/test1-c$(SHRLIB_EXT): \ + $(OBJ_DIR)/tests/test1/CalcCApi.o \ + $(OBJ_DIR)/tests/test1/CTest.o \ + +- $(LD) $^ -shared -ldl -o $@ ++ $(LD) $^ -shared -o $@ + + $(BIN_DIR)/test1-c$(EXE_EXT): \ + $(OBJ_DIR)/tests/test1/CalcCApi.o \ + $(OBJ_DIR)/tests/test1/CTest.o \ + +- $(LD) $^ -ldl -o $@ ++ $(LD) $^ -o $@ + + $(BIN_DIR)/test1-cpp$(SHRLIB_EXT): \ + $(OBJ_DIR)/tests/test1/CppTest.o \ + +- $(LD) $^ -shared -ldl -o $@ ++ $(LD) $^ -shared -o $@ + + $(BIN_DIR)/test1-cpp$(EXE_EXT): \ + $(OBJ_DIR)/tests/test1/CppTest.o \ + +- $(LD) $^ -ldl -o $@ ++ $(LD) $^ -o $@ + + $(BIN_DIR)/test1-pascal$(SHRLIB_EXT): \ + $(SRC_DIR)/tests/test1/PascalClasses.pas \ +@@ -130,7 +130,7 @@ $(BIN_DIR)/test1-pascal$(SHRLIB_EXT): \ + $(SRC_DIR)/tests/test1/CalcPascalApi.pas \ + + ifeq ($(WITH_FPC),1) +- fpc $(FPC_FLAGS) -fPIC -FU$(OBJ_DIR)/tests/test1 -o$(BIN_DIR)/test1-pascal$(SHRLIB_EXT) $(SRC_DIR)/tests/test1/PascalLibrary.dpr ++ fpc $(FPC_FLAGS) -FU$(OBJ_DIR)/tests/test1 -o$(BIN_DIR)/test1-pascal$(SHRLIB_EXT) $(SRC_DIR)/tests/test1/PascalLibrary.dpr + endif + + $(BIN_DIR)/test1-pascal$(EXE_EXT): \ +-- +2.4.3 + +From 87f08e2232a80c0d10c47c7892cbe4c525d8d718 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Thu, 18 Dec 2014 23:47:12 +0300 +Subject: [PATCH] Resolve conflict with STRING type from mingw-w64 + +--- + src/dsql/Parser.cpp | 6 +++--- + src/dsql/parse.y | 16 ++++++++-------- + src/yvalve/preparse.cpp | 10 +++++----- + 3 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/src/dsql/Parser.cpp b/src/dsql/Parser.cpp +index 0f1b0d1..65e9d75 100644 +--- a/src/dsql/Parser.cpp ++++ b/src/dsql/Parser.cpp +@@ -548,7 +548,7 @@ int Parser::yylexAux() + mark.str = yylval.intlStringPtr; + strMarks.put(mark.str, mark); + +- return STRING; ++ return TOK_STRING; + } + + /* +@@ -676,7 +676,7 @@ int Parser::yylexAux() + + yylval.intlStringPtr = newIntlString(temp, "BINARY"); + +- return STRING; ++ return TOK_STRING; + } // if (!hexerror)... + + // If we got here, there was a parsing error. Set the +@@ -731,7 +731,7 @@ int Parser::yylexAux() + mark.str = yylval.intlStringPtr; + strMarks.put(mark.str, mark); + +- return STRING; ++ return TOK_STRING; + } + } + +diff --git a/src/dsql/parse.y b/src/dsql/parse.y +index 9dd9c0c..8c8f281 100644 +--- a/src/dsql/parse.y ++++ b/src/dsql/parse.y +@@ -336,7 +336,7 @@ using namespace Firebird; + %token SYMBOL + %token NUMBER + +-%token STRING ++%token TOK_STRING + %token INTRODUCER + + // New tokens added v5.0 +@@ -3202,7 +3202,7 @@ err($exceptionArray) + item.type = ExceptionItem::SQL_CODE; + item.code = $2; + } +- | SQLSTATE STRING ++ | SQLSTATE TOK_STRING + { + ExceptionItem& item = $exceptionArray->add(); + item.type = ExceptionItem::SQL_STATE; +@@ -6381,7 +6381,7 @@ map_from_symbol_name + + %type map_logoninfo + map_logoninfo +- : STRING ++ : TOK_STRING + | valid_symbol_name { $$ = newNode($1->c_str()); } + ; + +@@ -6629,7 +6629,7 @@ u_constant + : u_numeric_constant + | sql_string + { $$ = MAKE_str_constant($1, lex.att_charset); } +- | DATE STRING ++ | DATE TOK_STRING + { + if (client_dialect < SQL_DIALECT_V6_TRANSITION) + { +@@ -6645,7 +6645,7 @@ u_constant + } + $$ = MAKE_constant($2->getString().c_str(), CONSTANT_DATE); + } +- | TIME STRING ++ | TIME TOK_STRING + { + if (client_dialect < SQL_DIALECT_V6_TRANSITION) + { +@@ -6661,7 +6661,7 @@ u_constant + } + $$ = MAKE_constant($2->getString().c_str(), CONSTANT_TIME); + } +- | TIMESTAMP STRING ++ | TIMESTAMP TOK_STRING + { $$ = MAKE_constant($2->getString().c_str(), CONSTANT_TIMESTAMP); } + ; + +@@ -6705,8 +6705,8 @@ internal_info + + %type sql_string + sql_string +- : STRING // string in current charset +- | INTRODUCER STRING // string in specific charset ++ : TOK_STRING // string in current charset ++ | INTRODUCER TOK_STRING // string in specific charset + { + $$ = $2; + $$->setCharSet(*$1); +diff --git a/src/yvalve/preparse.cpp b/src/yvalve/preparse.cpp +index 3fa672b..6b730ac 100644 +--- a/src/yvalve/preparse.cpp ++++ b/src/yvalve/preparse.cpp +@@ -89,7 +89,7 @@ enum token_vals { + TOKEN_TOO_LONG = -2, + UNEXPECTED_END_OF_COMMAND = -3, + UNEXPECTED_TOKEN = -4, +- STRING = 257, ++ TOK_STRING = 257, + NUMERIC = 258, + SYMBOL = 259 + }; +@@ -112,7 +112,7 @@ static NoCaseString getToken(unsigned& pos, const Tokens& toks, int symbol = SYM + case SYMBOL: + break; + +- case STRING: ++ case TOK_STRING: + if (!strchr(quotes, toks[pos].text[0])) + generate_error(curTok, UNEXPECTED_TOKEN); + return toks[pos++].stripped().ToNoCaseString(); +@@ -186,7 +186,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, + return false; + } + +- PathName file_name(getToken(pos, tks, STRING).ToPathName()); ++ PathName file_name(getToken(pos, tks, TOK_STRING).ToPathName()); + *stmt_eaten = false; + ClumpletWriter dpb(ClumpletReader::Tagged, MAX_DPB_SIZE, isc_dpb_version1); + +@@ -235,7 +235,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, + break; + + case PP_PASSWORD: +- token = getToken(pos, tks, STRING); ++ token = getToken(pos, tks, TOK_STRING); + + dpb.insertString(isc_dpb_password, token.ToString()); + matched = true; +@@ -252,7 +252,7 @@ bool PREPARSE_execute(CheckStatusWrapper* status, Why::YAttachment** ptrAtt, + token = getToken(pos, tks); + if (token != pp_symbols[PP_NAMES].symbol) + generate_error(token, UNEXPECTED_TOKEN); +- token = getToken(pos, tks, STRING); ++ token = getToken(pos, tks, TOK_STRING); + + dpb.insertString(isc_dpb_lc_ctype, token.ToString()); + matched = true; +-- +2.4.3 + +From 2edbfe6304c4dd86eb53018b00a0cb54abaca42d Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 24 Nov 2014 22:12:17 +0300 +Subject: [PATCH] mingw-w64 have matherr routine + +--- + src/extlib/ib_udf.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/extlib/ib_udf.cpp b/src/extlib/ib_udf.cpp +index fc6d69c..5a6f21b 100644 +--- a/src/extlib/ib_udf.cpp ++++ b/src/extlib/ib_udf.cpp +@@ -50,10 +50,12 @@ extern "C" + #else + #define exception_type __exception + #endif ++#ifndef matherr + int MATHERR(struct exception_type*) + { + return 1; + } ++#endif + #undef exception_type + #endif // SOLARIS + #endif //__ICC +-- +2.4.3 + +From 3ffc447fac451d7811234c769375f04601122eeb Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Fri, 28 Nov 2014 12:28:31 +0300 +Subject: [PATCH] Fix linkng error for mingw. + +--- + src/utilities/install/services.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/utilities/install/services.cpp b/src/utilities/install/services.cpp +index 04abff3..f28e7fa 100644 +--- a/src/utilities/install/services.cpp ++++ b/src/utilities/install/services.cpp +@@ -563,6 +563,7 @@ USHORT SERVICES_grant_access_rights(const char* service_name, const TEXT* accoun + // Until the fb_assert could be converted to a function/object linked with each module + // we need this ugly workaround. + // ++#ifndef __MINGW32__ + extern "C" void API_ROUTINE gds__log(const TEXT* text, ...) + { + va_list ptr; +@@ -572,6 +573,7 @@ extern "C" void API_ROUTINE gds__log(const TEXT* text, ...) + va_end(ptr); + printf("\n\n"); + } ++#endif + + // + // EOF +-- +2.4.3 + +From dc63f831f10770211a635b09cb4027b0392a4e21 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Sun, 30 Nov 2014 15:26:04 +0300 +Subject: [PATCH] DLL's are in BIN folder. + +--- + builds/posix/make.defaults | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults +index f68c44c..caa9930 100755 +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -202,7 +202,7 @@ include $(ROOT)/gen/Make.Version + + vpath %.so $(LIB) + vpath %.a $(LIB) +-vpath %.dll $(LIB) ++vpath %.dll $(BIN) + + #_____________________________________________________________________________ + +-- +2.4.3 + +From b68ce6c68bcf734e244c9ca54ccaefd28db0271e Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Sun, 30 Nov 2014 15:08:19 +0300 +Subject: [PATCH] Auto detect WINDRES with autoconf. + +Fix building .rc files. +--- + builds/posix/make.defaults | 4 +++- + builds/posix/make.rules | 4 ++-- + builds/posix/make.shared.targets | 14 +++++++------- + configure.ac | 10 ++++++++++ + 4 files changed, 22 insertions(+), 10 deletions(-) + +diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults +index caa9930..65f8c6c 100755 +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -151,9 +151,11 @@ ECHO= echo + QUIET_ECHO= @echo + CD= cd + CAT= cat +-AR= ar @AR_OPTIONS@ ++AR= @AR@ @AR_OPTIONS@ + LN= @LN_S@ ++DLLTOOL= @DLLTOOL@ + RANLIB= @RANLIB@ ++RC= @RC@ + BTYACC=$(ROOT)/extern/btyacc/btyacc + CLOOP=$(GEN_ROOT)/$(TARGET)/cloop/release/bin/cloop + +diff --git a/builds/posix/make.rules b/builds/posix/make.rules +index 42c719d..601dc82 100644 +--- a/builds/posix/make.rules ++++ b/builds/posix/make.rules +@@ -102,8 +102,8 @@ $(OBJ)/%.o: $(SRC_ROOT)/%.cpp + + # Rules for making resource files + +-$(GEN_ROOT)/%.res: $(SRC_ROOT)/%.rc +- windres --output-format=coff --include-dir=$( +Date: Wed, 19 Nov 2014 08:59:48 +0300 +Subject: [PATCH] Define AMD64 for 64-bit mingw. + +--- + configure.ac | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 2e81f32..651ca3e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -468,6 +468,11 @@ dnl CPU_TYPE=ppc64 + EDITLINE_FLG=N + RAW_DEVICES_FLG=N + SHRLIB_EXT=dll ++ case "$target" in ++ x86_64-*-mingw*) ++ AC_DEFINE(AMD64, 1, [Define this if CPU is amd64]) ++ ;; ++ esac + ;; + + *) +-- +2.4.3 + +From 50fa75577518ce66d31ed9c6fa84bbb8a91c544b Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 23:16:18 +0300 +Subject: [PATCH] Use mingw-w64 crt for Vista and later. Remove unneeded + +flag "-Dlint". Use GCC built-in define for mingw +--- + builds/posix/prefix.mingw | 4 ++-- + src/common/classes/fb_atomic.h | 2 +- + src/iscguard/iscguard.cpp | 2 +- + src/isql/isql.epp | 4 ++-- + src/jrd/ibsetjmp.h | 2 +- + src/remote/server/os/win32/srvr_w32.cpp | 2 +- + 6 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw +index 5f8dde8..09902f4 100644 +--- a/builds/posix/prefix.mingw ++++ b/builds/posix/prefix.mingw +@@ -20,8 +20,8 @@ + # + + # -Wno-unused-variable is used due to unused gpre generated variables +-PROD_FLAGS=-O2 -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor +-DEV_FLAGS=-ggdb -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor ++PROD_FLAGS=-O2 -D_WIN32_WINNT=0x0600 -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor ++DEV_FLAGS=-ggdb -D_WIN32_WINNT=0x0600 -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor + + PLATFORM_PATH=os/win32 + +diff --git a/src/common/classes/fb_atomic.h b/src/common/classes/fb_atomic.h +index f32b2b8..2e90ab6 100644 +--- a/src/common/classes/fb_atomic.h ++++ b/src/common/classes/fb_atomic.h +@@ -99,7 +99,7 @@ public: + } + + protected: +-#ifndef MINGW ++#ifndef __MINGW32__ + volatile + #endif + counter_type counter; +diff --git a/src/iscguard/iscguard.cpp b/src/iscguard/iscguard.cpp +index b1cf0f6..6d21508 100644 +--- a/src/iscguard/iscguard.cpp ++++ b/src/iscguard/iscguard.cpp +@@ -137,7 +137,7 @@ int WINAPI WinMain(HINSTANCE hInstance, + + // BRS There is a error in MinGW (3.1.0) headers + // the parameter of StartServiceCtrlDispatcher is declared const in msvc headers +-#if defined(MINGW) ++#if defined(__MINGW32__) + if (!StartServiceCtrlDispatcher(const_cast(service_table))) + #else + if (!StartServiceCtrlDispatcher(service_table)) +diff --git a/src/isql/isql.epp b/src/isql/isql.epp +index c786f83..ae92c35 100644 +--- a/src/isql/isql.epp ++++ b/src/isql/isql.epp +@@ -6943,7 +6943,7 @@ static unsigned print_item(TEXT** s, const IsqlVar* var, const unsigned length) + break; + } + +-#if defined(MINGW) ++#if defined(__MINGW32__) + if (value == 0) + { + sprintf(p, "% #*.*g ", length, (int) MIN(8, (length - 6)) - 1, value); +@@ -7019,7 +7019,7 @@ static unsigned print_item(TEXT** s, const IsqlVar* var, const unsigned length) + } + else + { +-#if defined(MINGW) ++#if defined(__MINGW32__) + if (value == 0) + { + sprintf(p, "% #*.*g ", length, (int) MIN(16, (length - 7)) - 1, value); +diff --git a/src/jrd/ibsetjmp.h b/src/jrd/ibsetjmp.h +index 759f125..0ac3c54 100644 +--- a/src/jrd/ibsetjmp.h ++++ b/src/jrd/ibsetjmp.h +@@ -50,7 +50,7 @@ + + #endif // UNIX + +-#if defined(WIN_NT) && !defined(MINGW) ++#if defined(WIN_NT) && !defined(__MINGW32__) + #include + + #define START_CHECK_FOR_EXCEPTIONS(err) { \ +diff --git a/src/remote/server/os/win32/srvr_w32.cpp b/src/remote/server/os/win32/srvr_w32.cpp +index a7f8ac5..3bc652f 100644 +--- a/src/remote/server/os/win32/srvr_w32.cpp ++++ b/src/remote/server/os/win32/srvr_w32.cpp +@@ -322,7 +322,7 @@ int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE /*hPrevInst*/, LPSTR lpszArgs, + + // BRS There is a error in MinGW (3.1.0) headers + // the parameter of StartServiceCtrlDispatcher is declared const in msvc headers +-#if defined(MINGW) ++#if defined(__MINGW32__) + if (!StartServiceCtrlDispatcher(const_cast(service_table))) + { + #else +-- +2.4.3 + +From 750a2202b62e16bf84f0bd2813bc5ebb02e3ee3f Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Thu, 20 Nov 2014 07:31:40 +0300 +Subject: [PATCH] Add AuthSspi to remote common - needed for win32 target. + +--- + builds/posix/make.shared.variables | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/builds/posix/make.shared.variables b/builds/posix/make.shared.variables +index 2d3143f..53597e6 100644 +--- a/builds/posix/make.shared.variables ++++ b/builds/posix/make.shared.variables +@@ -52,7 +52,7 @@ AllObjects += $(YValve_Objects) + + + # Remote +-Remote_Common:= $(call dirObjects,remote) $(call dirObjects,auth/SecureRemotePassword) ++Remote_Common:= $(call dirObjects,remote) $(call dirObjects,auth/SecureRemotePassword) $(call dirObjects,auth/trusted) + Remote_Server:= $(call dirObjects,remote/server) $(call dirObjects,auth/SecureRemotePassword/server) + Remote_Client:= $(call dirObjects,remote/client) $(call dirObjects,auth/SecureRemotePassword/client) \ + $(call makeObjects,auth/SecurityDatabase,LegacyClient.cpp) \ +-- +2.4.3 + +From fa8118fd2828e66de87d1625f5eed043ee825936 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 24 Nov 2014 09:08:35 +0300 +Subject: [PATCH] Some utilities need to link with additional windows libraries + +--- + builds/posix/Makefile.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in +index eac1ed5..85d4697 100644 +--- a/builds/posix/Makefile.in ++++ b/builds/posix/Makefile.in +@@ -375,7 +375,7 @@ utilities: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix g + firebird_server: $(FB_DAEMON) + + $(FB_DAEMON): $(Remote_Server_Objects) $(COMMON_LIB) +- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) ++ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(LIB_GUI) + + fb_lock_print: $(LOCKPRINT) + +@@ -385,7 +385,7 @@ $(LOCKPRINT): $(LOCKPRINT_Objects) $(COMMON_LIB) + fbguard: $(FBGUARD) + + $(FBGUARD): $(FBGUARD_Objects) $(COMMON_LIB) +- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) ++ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(LIB_GUI) + + fbsvcmgr: $(FBSVCMGR) + +-- +2.4.3 + +From 9de828798a528614a938da3b3116d1a968716cf3 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 24 Nov 2014 10:10:35 +0300 +Subject: [PATCH] Fix linking executables and libraries with resources. + Generate proper import libraries. + +--- + builds/posix/Makefile.in.plugins_examples | 2 +- + builds/posix/make.defaults | 14 +- + builds/posix/prefix.mingw | 40 ++-- + builds/win32/defs/fbclient32.def | 372 ++++++++++++++++++++++++++++++ + builds/win32/defs/fbclient64.def | 372 ++++++++++++++++++++++++++++++ + 5 files changed, 773 insertions(+), 27 deletions(-) + create mode 100644 builds/win32/defs/fbclient32.def + create mode 100644 builds/win32/defs/fbclient64.def + +diff --git a/builds/posix/Makefile.in.plugins_examples b/builds/posix/Makefile.in.plugins_examples +index 40908f6..24fa138 100644 +--- a/builds/posix/Makefile.in.plugins_examples ++++ b/builds/posix/Makefile.in.plugins_examples +@@ -73,7 +73,7 @@ ifeq ($(PLATFORM),DARWIN) + $(LIB_LINK) $(LIB_BUNDLE_OPTIONS) -o $@ $^ @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ \ + $(FIREBIRD_LIBRARY_LINK) + else +- $(LIB_LINK) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME)udrcpp_example.$(SHRLIB_EXT) \ ++ $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(LIB_PREFIX)udrcpp_example.$(SHRLIB_EXT)) \ + $(LIB_PATH_OPTS) -o $@ $^ $(THR_LIBS) \ + $(FIREBIRD_LIBRARY_LINK) + endif +diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults +index 65f8c6c..bc18fc8 100755 +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -107,6 +107,11 @@ RTTI_FLAG:= -fno-rtti + IsDeveloper = @DEVEL_FLG@ + + CpuType=@CPU_TYPE@ ++ifeq ($(CpuType), x86_64) ++ BITNESS_SUFFIX := 64 ++else ++ BITNESS_SUFFIX := 32 ++endif + PLATFORM=@PLATFORM@ + SFIO_EXAMPLES=@SFIO_EXAMPLES@ + +@@ -218,7 +223,7 @@ vpath %.dll $(BIN) + # + + #LibraryFileName=libfbclient +-LibraryFileName=libfbclient ++LibraryFileName=$(LIB_PREFIX)fbclient + LibraryFullName=$(LibraryFileName).${SHRLIB_EXT}.${FirebirdVersion} + LibrarySoName=$(LibraryFileName).${SHRLIB_EXT}.2 + LibraryBaseName=$(LibraryFileName).${SHRLIB_EXT} +@@ -229,7 +234,7 @@ LIBFIREBIRD_BASENAME = $(LIB)/$(LibrarySoName) + + # The firebird engine library name + +-EngineFileName=libEngine${OdsVersion} ++EngineFileName=$(LIB_PREFIX)Engine${OdsVersion} + EngineSoName=$(EngineFileName).${SHRLIB_EXT} + ENGINE_SONAME = $(PLUGINS)/$(EngineSoName) + +@@ -290,6 +295,7 @@ else + endif + LIB_PATH_OPTS = $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_RPATH,intl) + LIB_LINK_SONAME= -Wl,-soname,$(1) ++LIB_LINK_IMPLIB= + LIB_LINK_MAPFILE= -Wl,--version-script,$(1) + FIREBIRD_LIBRARY_LINK= -L$(LIB) -lfbclient $(MATHLIB) + +@@ -304,7 +310,7 @@ LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_ + LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util $(SO_LINK_LIBS) + + LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ +- $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) ++ $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_IMPLIB,$(LIB)/lib$(IbUtilLibraryName).a) + LINK_IB_UTIL_LIBS = $(THR_LIBS) + + LINK_INTL = $(LIB_LINK) $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ +@@ -316,7 +322,7 @@ LINK_TRACE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAG + LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) + + LINK_FIREBIRD = $(LIB_LINK) $(LINK_FIREBIRD_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\ +- $(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib) ++ $(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_IMPLIB,$(LIB)/lib$(LibraryBaseName).a) + LINK_FIREBIRD_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(MATHLIB) + + LINK_ENGINE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\ +diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw +index 09902f4..8dad1ce 100644 +--- a/builds/posix/prefix.mingw ++++ b/builds/posix/prefix.mingw +@@ -28,42 +28,38 @@ PLATFORM_PATH=os/win32 + # Override link command for implicit stdc++ linking + LIB_LINK=$(LD) + +-LIB_LINK_OPTIONS+=-Wl,--enable-stdcall-fixup +- + # Strip symbols from release versions to decrease size + ifeq ($(IsProdTypeBuild),Y) + EXE_LINK_OPTIONS+=-Wl,-s + LIB_LINK_OPTIONS+=-Wl,-s + endif + +-# Generation of fbclient_ms.lib +-LIB_LINK_IMPLIB:=-Wl,--out-implib,firebird/lib/fbclient_ms.lib + LIB_GUI:= -mwindows -lcomctl32 -lgdi32 + + # Add resources to some files +-FilesToAddVersionInfo=$(LIBFBEMBED_SO) $(LIBFBCLIENT_SO) $(LIBFBINTL_SO) \ +- $(GSTAT) $(GSEC) $(GFIX) $(QLI) $(ISQL) $(GBAK) $(GPRE) ++FilesToAddVersionInfo=$(FBTRACEMGR) $(LIBFIREBIRD_FULLNAME) $(ENGINE_SONAME) $(LIBFBINTL_SO) \ ++ $(FBSVCMGR) $(FBTRACEMGR) $(FBTRACE) $(FBUDF_SO) $(LIBIBUTIL_SO) \ ++ $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP) + # TODO: guardians also must be here +-FilesToAddDialog=$(FB_SUPER_SERVER) $(FB_CLASSIC_SERVER) +-FilesToAddDialog2=$(IBGUARD) ++FilesToAddDialog=$(FB_DAEMON) ++FilesToAddDialog2=$(FBGUARD) + + # Suppress 'lib'-prefix + LIB_PREFIX= + + # Override library names to suppress version suffix +-ClientLibraryNameFull := $(ClientLibraryName) +-ClientLibrarySoName := $(ClientLibraryName) +- +-# Looks like MinGW 3 does not support version scripts but support def-files +-LINK_FIREBIRD_SYMBOLS = $(BLD_ROOT)/win32/defs/fbclient_s.def $(BLD_ROOT)/win32/defs/fbclient.def +- +-# This is required for newly built executable to find newly built shared +-# libraries because on Win32 there is no such thing as LD_LIBRARY_PATH +-LIB=$(BIN) ++LibrarySoName := $(LibraryBaseName) ++LibraryFullName := $(LibraryBaseName) ++LIBFIREBIRD_FULLNAME = $(BIN)/$(LibraryBaseName) ++LIBFIREBIRD_SONAME = $(LIBFIREBIRD_FULLNAME) ++LIBFIREBIRD_BASENAME = $(LIBFIREBIRD_FULLNAME) ++LIBIBUTIL_SO = $(BIN)/$(IbUtilLibraryName) + +-# Special options for UDF link +-LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_EXT)) -L$(LIB) -lib_util +-LINK_UDF_LIBS = ++LINK_FIREBIRD_SYMBOLS = $(BLD_ROOT)/win32/defs/fbclient$(BITNESS_SUFFIX).def ++LINK_FBINTL_SYMBOLS = ++LINK_IBUTIL_SYMBOLS = ++LINK_UDRENG_SYMBOLS = ++LINK_EMPTY_SYMBOLS = ++LINK_PLUGIN_SYMBOLS = ++LIB_LINK_IMPLIB= -Wl,--out-implib,$(1) + +-# Special options for trace plugin link +-LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) +diff --git a/builds/win32/defs/fbclient32.def b/builds/win32/defs/fbclient32.def +new file mode 100644 +index 0000000..fa8f733 +--- /dev/null ++++ b/builds/win32/defs/fbclient32.def +@@ -0,0 +1,372 @@ ++; The contents of this file are subject to the Interbase Public ++; License Version 1.0 (the "License"); you may not use this file ++; except in compliance with the License. You may obtain a copy ++; of the License at http://www.Inprise.com/IPL.html ++; ++; Software distributed under the License is distributed on an ++; "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express ++; or implied. See the License for the specific language governing ++; rights and limitations under the License. ++; ++; The Original Code was created by Inprise Corporation ++; and its predecessors. Portions created by Inprise Corporation are ++; Copyright (C) Inprise Corporation. ++; ++; All Rights Reserved. ++; Contributor(s): ______________________________________. ++ ++LIBRARY "fbclient.dll" ++EXPORTS ++ ++;------------------- ++; PRIVATE INTERFACE ++;------------------- ++ ++ gds__alloc@4 @1 ++ gds__attach_database@24 @2 ++ gds__blob_info@24 @3 ++ gds__blob_size@16 @4 ++ gds__cancel_blob@8 @5 ++ gds__cancel_events@12 @6 ++ gds__close@8 @7 ++ gds__close_blob@8 @8 ++ gds__commit_retaining@8 @9 ++ gds__commit_transaction@8 @10 ++ gds__compile_request@20 @11 ++ gds__compile_request2@20 @12 ++ gds__create_blob@20 @13 ++ gds__create_blob2@28 @14 ++ gds__create_database@28 @15 ++ gds__database_cleanup@16 @16 ++ gds__database_info@24 @17 ++ gds__ddl@20 @18 ++ gds__declare@12 @19 ++ gds__decode@12 @20 ++ gds__decode_date@8 @21 ++ gds__describe@12 @22 ++ gds__describe_bind@12 @23 ++ gds__detach_database@8 @24 ++ gds__disable_subsystem@4 @25 ++ gds__dsql_finish@4 @26 ++ gds__edit@8 @27 ++ gds__enable_subsystem@4 @28 ++ gds__encode@8 @29 ++ gds__encode_date@8 @30 ++ gds__event_block @31 ++ gds__event_counts@16 @32 ++ gds__event_wait@20 @33 ++ gds__execute@16 @34 ++ gds__execute_immediate@20 @35 ++ gds__fetch@12 @36 ++ gds__free@4 @37 ++ gds__ftof@16 @38 ++ gds__get_prefix@8 @248 ++ gds__get_segment@20 @39 ++ gds__get_slice@44 @40 ++ gds__interprete@8 @41 ++ gds__log @42 ++ gds__log_status@8 @142 ++ gds__map_blobs@8 @240 ++ gds__msg_close@4 @223 ++ gds__msg_format@40 @43 ++ gds__msg_lookup@24 @44 ++ gds__msg_open@8 @45 ++ gds__msg_put@32 @46 ++ gds__open@16 @47 ++ gds__open_blob@20 @48 ++ gds__open_blob2@28 @49 ++ gds__parse_bpb@16 @50 ++ gds__prefix@8 @51 ++ gds__prefix_lock@8 @249 ++ gds__prefix_msg@8 @250 ++ gds__prepare@28 @52 ++ gds__prepare_transaction@8 @53 ++ gds__prepare_transaction2@16 @54 ++ gds__print_blr@16 @55 ++ gds__print_status@4 @56 ++ gds__put_error@4 @57 ++ gds__put_segment@16 @58 ++ gds__put_slice@40 @59 ++ gds__qtoq@8 @60 ++ gds__que_events@28 @61 ++ gds__receive@24 @62 ++ gds__reconnect_transaction@20 @63 ++ gds__register_cleanup@8 @64 ++ gds__release_request@8 @65 ++ gds__request_info@28 @66 ++ gds__rollback_transaction@8 @67 ++ gds__seek_blob@20 @68 ++ gds__send@24 @69 ++ gds__set_debug@4 @70 ++ gds__sqlcode@4 @71 ++ gds__start_and_send@28 @72 ++ gds__start_multiple@16 @73 ++ gds__start_request@16 @74 ++ gds__start_transaction @75 ++ gds__temp_file@20 @231 ++ gds__thread_enable@4 @76 ++ gds__thread_enter@0 @77 ++ gds__thread_exit@0 @78 ++ gds__thread_start@20 @79 ++ gds__to_sqlda@20 @80 ++ gds__transaction_cleanup@16 @235 ++ gds__transaction_info@24 @81 ++ gds__unregister_cleanup@8 @224 ++ gds__unwind_request@12 @82 ++ gds__validate_lib_path@16 @255 ++ gds__vax_integer@8 @83 ++ gds__version@12 @84 ++ gds__vtof@12 @85 ++ gds__vtov@12 @86 ++ gds__default_printer @87 ++ ++ gds__alloc_debug@12 ++ ++ gds_alloc_flag_unfreed@4 ++ gds_alloc_report@12 ++ ++ fb_shutdown@8 ++ fb_shutdown_callback@16 ++ fb_cancel_operation@12 ++ fb_disconnect_transaction@8 ++ ++ perf_format@20 @100 ++ perf_get_info@8 @101 ++ perf_report@16 @102 ++ ++ perf64_format@20 ++ perf64_get_info@8 ++ perf64_report@16 ++ ++;---------------------------- ++; PUBLIC INTERFACE, i.e. API ++;---------------------------- ++ ++ ; Array functions ++ ++ isc_array_gen_sdl@20 @217 ++ isc_array_get_slice@28 @218 ++ isc_array_lookup_bounds@24 @219 ++ isc_array_lookup_desc@24 @220 ++ isc_array_put_slice@28 @221 ++ isc_array_set_desc@28 @222 ++ isc_get_slice@44 @140 ++ isc_put_slice@40 @153 ++ ++ ; BLOB functions ++ ++ isc_blob_default_desc@12 @239 ++ isc_blob_gen_bpb@24 @236 ++ isc_blob_info@24 @108 ++ isc_blob_lookup_desc@28 @237 ++ isc_blob_set_desc@28 @238 ++ isc_cancel_blob@8 @110 ++ isc_close_blob@8 @113 ++ isc_create_blob@20 @118 ++ isc_create_blob2@28 @119 ++ isc_get_segment@20 @139 ++ isc_open_blob@20 @144 ++ isc_open_blob2@28 @145 ++ isc_put_segment@16 @152 ++ ++ ; Database functions ++ ++ isc_attach_database@24 @103 ++ isc_create_database@28 @120 ++ isc_database_info@24 @122 ++ isc_detach_database@8 @128 ++ isc_drop_database@8 @229 ++ isc_expand_dpb @135 ++ isc_modify_dpb@20 @244 ++ isc_version@12 @174 ++ isc_get_client_major_version@0 @268 ++ isc_get_client_minor_version@0 @269 ++ isc_get_client_version@4 @270 ++ ++ ; Conversion functions ++ ++ isc_decode_date@8 @125 ++ isc_decode_sql_date@8 @261 ++ isc_decode_sql_time@8 @262 ++ isc_decode_timestamp@8 @263 ++ isc_encode_date@8 @129 ++ isc_encode_sql_date@8 @264 ++ isc_encode_sql_time@8 @265 ++ isc_encode_timestamp@8 @266 ++ isc_portable_integer@8 @259 ++ isc_vax_integer@8 @173 ++ ++ ; DSQL functions ++ ++ isc_dsql_allocate_statement@12 @178 ++ isc_dsql_alloc_statement2@12 @179 ++ isc_dsql_describe@16 @180 ++ isc_dsql_describe_bind@16 @181 ++ isc_dsql_execute@20 @182 ++ isc_dsql_execute2@24 @183 ++ isc_dsql_execute_m@32 @184 ++ isc_dsql_execute2_m@52 @185 ++ isc_dsql_execute_immediate@28 @186 ++ isc_dsql_exec_immed2@32 @187 ++ isc_dsql_execute_immediate_m@44 @188 ++ isc_dsql_exec_immed2_m@64 @189 ++ isc_dsql_exec_immed3_m@64 @230 ++ isc_dsql_fetch@16 @190 ++ isc_dsql_fetch_a@20 @191 ++ isc_dsql_fetch_m@28 @192 ++ isc_dsql_finish@4 @193 ++ isc_dsql_free_statement@12 @194 ++ isc_dsql_insert@16 @195 ++ isc_dsql_insert_m@28 @196 ++ isc_dsql_prepare@28 @197 ++ isc_dsql_prepare_m@40 @198 ++ isc_dsql_release@8 @199 ++ isc_dsql_set_cursor_name@16 @200 ++ isc_dsql_sql_info@24 @201 ++ ++ ; ESQL functions ++ ++ isc_embed_dsql_close@8 @202 ++ isc_embed_dsql_declare@12 @203 ++ isc_embed_dsql_describe@16 @204 ++ isc_embed_dsql_describe_bind@16 @205 ++ isc_embed_dsql_execute@20 @206 ++ isc_embed_dsql_execute2@24 @207 ++ isc_embed_dsql_execute_immed@28 @208 ++ isc_embed_dsql_exec_immed2@32 @209 ++ isc_embed_dsql_fetch@16 @210 ++ isc_embed_dsql_fetch_a@20 @211 ++ isc_embed_dsql_insert@16 @212 ++ isc_embed_dsql_open@20 @213 ++ isc_embed_dsql_open2@24 @214 ++ isc_embed_dsql_prepare@32 @215 ++ isc_embed_dsql_release@8 @216 ++ isc_embed_dsql_length@8 @273 ++ ++ ; Error-handling functions ++ ++ isc_interprete@8 @141 ++ fb_interpret@12 ++ isc_print_sqlerror@8 @150 ++ isc_print_status@4 @151 ++ isc_sqlcode@4 @165 ++ isc_sql_interprete@12 @164 ++ isc_sqlcode_s@8 @278 ++ fb_sqlstate@8 @279 ++ ++ ; Event functions ++ ++ isc_cancel_events@12 @111 ++ isc_event_block @130 ++ isc_event_counts@16 @131 ++ isc_que_events@28 @155 ++ isc_wait_for_event@20 @177 ++ isc_event_block_a@16 @274 ++ isc_event_block_s@20 @275 ++ ++ ; Security functions ++ ++ isc_add_user@8 @256 ++ isc_delete_user@8 @257 ++ isc_modify_user@8 @258 ++ ++ ; Services functions ++ ++ isc_service_attach@24 @225 ++ isc_service_detach@8 @226 ++ isc_service_query@36 @227 ++ isc_service_start@20 @228 ++ ++ ; Transaction control functions ++ ++ isc_commit_retaining@8 @114 ++ isc_commit_transaction@8 @115 ++ isc_prepare_transaction@8 @147 ++ isc_prepare_transaction2@16 @148 ++ isc_rollback_retaining@8 @260 ++ isc_rollback_transaction@8 @160 ++ isc_start_multiple@16 @167 ++ isc_start_transaction @169 ++ isc_transaction_info@24 @171 ++ ++ ; Other functions ++ ++ isc_compile_request@20 @116 ++ isc_compile_request2@20 @117 ++ isc_ddl@20 @123 ++ isc_prepare@28 @146 ++ isc_receive@24 @156 ++ isc_reconnect_transaction@20 @157 ++ isc_release_request@8 @158 ++ isc_request_info@28 @159 ++ isc_seek_blob@20 @161 ++ isc_send@24 @162 ++ isc_start_and_send@28 @166 ++ isc_start_request@16 @168 ++ isc_transact_request@36 @132 ++ isc_unwind_request@12 @172 ++ ++ ; Other SQL functions ++ ++ isc_close@8 @112 ++ isc_declare@12 @124 ++ isc_describe@12 @126 ++ isc_describe_bind@12 @127 ++ isc_execute@16 @133 ++ isc_execute_immediate@20 @134 ++ isc_fetch@12 @136 ++ isc_fetch_a@16 @137 ++ isc_open@16 @143 ++ ++ ; Other BLOB functions ++ ++ BLOB_close@4 @91 ++ BLOB_display@16 @92 ++ BLOB_dump@16 @93 ++ BLOB_edit@16 @94 ++ BLOB_get@4 @95 ++ BLOB_load@16 @96 ++ BLOB_open@12 @97 ++ BLOB_put@8 @98 ++ BLOB_text_dump@16 @242 ++ BLOB_text_load@16 @243 ++ Bopen@16 @99 ++ ++ ; Other misc functions ++ ++ isc_ftof@16 @138 ++ isc_free@4 @241 ++ isc_print_blr@16 @149 ++ fb_print_blr@20 @280 ++ isc_qtoq@8 @154 ++ isc_reset_fpe@4 ++ isc_set_debug@4 @163 ++ isc_to_sqlda@20 @170 ++ isc_vtof@12 @175 ++ isc_vtov@12 @176 ++ isc_baddress@4 @276 ++ isc_baddress_s@8 @277 ++ ++ _isc_start_transaction=isc_start_transaction ++ _isc_expand_dpb=isc_expand_dpb ++ _isc_event_block=isc_event_block ++ ++ fb_ping@8 ++ fb_get_master_interface@0 ++ fb_get_database_handle@12 ++ fb_get_transaction_handle@12 ++ fb_database_crypt_callback@8 ++ ++ gds__trace@4 ++ gds__trace_raw@8 ++ gds__trace_printer@0 ++ gds__parse_bpb2@40 ++ ++;----------------- ++; OTHER FUNCTIONS ++;----------------- ++ ++ CVT_move@12 @267 ++ ++ KEYWORD_stringIsAToken@4 @271 ++ KEYWORD_getTokens@0 @272 +diff --git a/builds/win32/defs/fbclient64.def b/builds/win32/defs/fbclient64.def +new file mode 100644 +index 0000000..ed0b91e +--- /dev/null ++++ b/builds/win32/defs/fbclient64.def +@@ -0,0 +1,372 @@ ++; The contents of this file are subject to the Interbase Public ++; License Version 1.0 (the "License"); you may not use this file ++; except in compliance with the License. You may obtain a copy ++; of the License at http://www.Inprise.com/IPL.html ++; ++; Software distributed under the License is distributed on an ++; "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express ++; or implied. See the License for the specific language governing ++; rights and limitations under the License. ++; ++; The Original Code was created by Inprise Corporation ++; and its predecessors. Portions created by Inprise Corporation are ++; Copyright (C) Inprise Corporation. ++; ++; All Rights Reserved. ++; Contributor(s): ______________________________________. ++ ++LIBRARY "fbclient.dll" ++EXPORTS ++ ++;------------------- ++; PRIVATE INTERFACE ++;------------------- ++ ++ gds__alloc @1 ++ gds__attach_database @2 ++ gds__blob_info @3 ++ gds__blob_size @4 ++ gds__cancel_blob @5 ++ gds__cancel_events @6 ++ gds__close @7 ++ gds__close_blob @8 ++ gds__commit_retaining @9 ++ gds__commit_transaction @10 ++ gds__compile_request @11 ++ gds__compile_request2 @12 ++ gds__create_blob @13 ++ gds__create_blob2 @14 ++ gds__create_database @15 ++ gds__database_cleanup @16 ++ gds__database_info @17 ++ gds__ddl @18 ++ gds__declare @19 ++ gds__decode @20 ++ gds__decode_date @21 ++ gds__describe @22 ++ gds__describe_bind @23 ++ gds__detach_database @24 ++ gds__disable_subsystem @25 ++ gds__dsql_finish @26 ++ gds__edit @27 ++ gds__enable_subsystem @28 ++ gds__encode @29 ++ gds__encode_date @30 ++ gds__event_block @31 ++ gds__event_counts @32 ++ gds__event_wait @33 ++ gds__execute @34 ++ gds__execute_immediate @35 ++ gds__fetch @36 ++ gds__free @37 ++ gds__ftof @38 ++ gds__get_prefix @248 ++ gds__get_segment @39 ++ gds__get_slice @40 ++ gds__interprete @41 ++ gds__log @42 ++ gds__log_status @142 ++ gds__map_blobs @240 ++ gds__msg_close @223 ++ gds__msg_format @43 ++ gds__msg_lookup @44 ++ gds__msg_open @45 ++ gds__msg_put @46 ++ gds__open @47 ++ gds__open_blob @48 ++ gds__open_blob2 @49 ++ gds__parse_bpb @50 ++ gds__prefix @51 ++ gds__prefix_lock @249 ++ gds__prefix_msg @250 ++ gds__prepare @52 ++ gds__prepare_transaction @53 ++ gds__prepare_transaction2 @54 ++ gds__print_blr @55 ++ gds__print_status @56 ++ gds__put_error @57 ++ gds__put_segment @58 ++ gds__put_slice @59 ++ gds__qtoq @60 ++ gds__que_events @61 ++ gds__receive @62 ++ gds__reconnect_transaction @63 ++ gds__register_cleanup @64 ++ gds__release_request @65 ++ gds__request_info @66 ++ gds__rollback_transaction @67 ++ gds__seek_blob @68 ++ gds__send @69 ++ gds__set_debug @70 ++ gds__sqlcode @71 ++ gds__start_and_send @72 ++ gds__start_multiple @73 ++ gds__start_request @74 ++ gds__start_transaction @75 ++ gds__temp_file @231 ++ gds__thread_enable @76 ++ gds__thread_enter @77 ++ gds__thread_exit @78 ++ gds__thread_start @79 ++ gds__to_sqlda @80 ++ gds__transaction_cleanup @235 ++ gds__transaction_info @81 ++ gds__unregister_cleanup @224 ++ gds__unwind_request @82 ++ gds__validate_lib_path @255 ++ gds__vax_integer @83 ++ gds__version @84 ++ gds__vtof @85 ++ gds__vtov @86 ++ gds__default_printer @87 ++ ++ gds__alloc_debug ++ ++ gds_alloc_flag_unfreed ++ gds_alloc_report ++ ++ fb_shutdown ++ fb_shutdown_callback ++ fb_cancel_operation ++ fb_disconnect_transaction ++ ++ perf_format @100 ++ perf_get_info @101 ++ perf_report @102 ++ ++ perf64_format ++ perf64_get_info ++ perf64_report ++ ++;---------------------------- ++; PUBLIC INTERFACE, i.e. API ++;---------------------------- ++ ++ ; Array functions ++ ++ isc_array_gen_sdl @217 ++ isc_array_get_slice @218 ++ isc_array_lookup_bounds @219 ++ isc_array_lookup_desc @220 ++ isc_array_put_slice @221 ++ isc_array_set_desc @222 ++ isc_get_slice @140 ++ isc_put_slice @153 ++ ++ ; BLOB functions ++ ++ isc_blob_default_desc @239 ++ isc_blob_gen_bpb @236 ++ isc_blob_info @108 ++ isc_blob_lookup_desc @237 ++ isc_blob_set_desc @238 ++ isc_cancel_blob @110 ++ isc_close_blob @113 ++ isc_create_blob @118 ++ isc_create_blob2 @119 ++ isc_get_segment @139 ++ isc_open_blob @144 ++ isc_open_blob2 @145 ++ isc_put_segment @152 ++ ++ ; Database functions ++ ++ isc_attach_database @103 ++ isc_create_database @120 ++ isc_database_info @122 ++ isc_detach_database @128 ++ isc_drop_database @229 ++ isc_expand_dpb @135 ++ isc_modify_dpb @244 ++ isc_version @174 ++ isc_get_client_major_version @268 ++ isc_get_client_minor_version @269 ++ isc_get_client_version @270 ++ ++ ; Conversion functions ++ ++ isc_decode_date @125 ++ isc_decode_sql_date @261 ++ isc_decode_sql_time @262 ++ isc_decode_timestamp @263 ++ isc_encode_date @129 ++ isc_encode_sql_date @264 ++ isc_encode_sql_time @265 ++ isc_encode_timestamp @266 ++ isc_portable_integer @259 ++ isc_vax_integer @173 ++ ++ ; DSQL functions ++ ++ isc_dsql_allocate_statement @178 ++ isc_dsql_alloc_statement2 @179 ++ isc_dsql_describe @180 ++ isc_dsql_describe_bind @181 ++ isc_dsql_execute @182 ++ isc_dsql_execute2 @183 ++ isc_dsql_execute_m @184 ++ isc_dsql_execute2_m @185 ++ isc_dsql_execute_immediate @186 ++ isc_dsql_exec_immed2 @187 ++ isc_dsql_execute_immediate_m @188 ++ isc_dsql_exec_immed2_m @189 ++ isc_dsql_exec_immed3_m @230 ++ isc_dsql_fetch @190 ++ isc_dsql_fetch_a @191 ++ isc_dsql_fetch_m @192 ++ isc_dsql_finish @193 ++ isc_dsql_free_statement @194 ++ isc_dsql_insert @195 ++ isc_dsql_insert_m @196 ++ isc_dsql_prepare @197 ++ isc_dsql_prepare_m @198 ++ isc_dsql_release @199 ++ isc_dsql_set_cursor_name @200 ++ isc_dsql_sql_info @201 ++ ++ ; ESQL functions ++ ++ isc_embed_dsql_close @202 ++ isc_embed_dsql_declare @203 ++ isc_embed_dsql_describe @204 ++ isc_embed_dsql_describe_bind @205 ++ isc_embed_dsql_execute @206 ++ isc_embed_dsql_execute2 @207 ++ isc_embed_dsql_execute_immed @208 ++ isc_embed_dsql_exec_immed2 @209 ++ isc_embed_dsql_fetch @210 ++ isc_embed_dsql_fetch_a @211 ++ isc_embed_dsql_insert @212 ++ isc_embed_dsql_open @213 ++ isc_embed_dsql_open2 @214 ++ isc_embed_dsql_prepare @215 ++ isc_embed_dsql_release @216 ++ isc_embed_dsql_length @273 ++ ++ ; Error-handling functions ++ ++ isc_interprete @141 ++ fb_interpret ++ isc_print_sqlerror @150 ++ isc_print_status @151 ++ isc_sqlcode @165 ++ isc_sql_interprete @164 ++ isc_sqlcode_s @278 ++ fb_sqlstate @279 ++ ++ ; Event functions ++ ++ isc_cancel_events @111 ++ isc_event_block @130 ++ isc_event_counts @131 ++ isc_que_events @155 ++ isc_wait_for_event @177 ++ isc_event_block_a @274 ++ isc_event_block_s @275 ++ ++ ; Security functions ++ ++ isc_add_user @256 ++ isc_delete_user @257 ++ isc_modify_user @258 ++ ++ ; Services functions ++ ++ isc_service_attach @225 ++ isc_service_detach @226 ++ isc_service_query @227 ++ isc_service_start @228 ++ ++ ; Transaction control functions ++ ++ isc_commit_retaining @114 ++ isc_commit_transaction @115 ++ isc_prepare_transaction @147 ++ isc_prepare_transaction2 @148 ++ isc_rollback_retaining @260 ++ isc_rollback_transaction @160 ++ isc_start_multiple @167 ++ isc_start_transaction @169 ++ isc_transaction_info @171 ++ ++ ; Other functions ++ ++ isc_compile_request @116 ++ isc_compile_request2 @117 ++ isc_ddl @123 ++ isc_prepare @146 ++ isc_receive @156 ++ isc_reconnect_transaction @157 ++ isc_release_request @158 ++ isc_request_info @159 ++ isc_seek_blob @161 ++ isc_send @162 ++ isc_start_and_send @166 ++ isc_start_request @168 ++ isc_transact_request @132 ++ isc_unwind_request @172 ++ ++ ; Other SQL functions ++ ++ isc_close @112 ++ isc_declare @124 ++ isc_describe @126 ++ isc_describe_bind @127 ++ isc_execute @133 ++ isc_execute_immediate @134 ++ isc_fetch @136 ++ isc_fetch_a @137 ++ isc_open @143 ++ ++ ; Other BLOB functions ++ ++ BLOB_close @91 ++ BLOB_display @92 ++ BLOB_dump @93 ++ BLOB_edit @94 ++ BLOB_get @95 ++ BLOB_load @96 ++ BLOB_open @97 ++ BLOB_put @98 ++ BLOB_text_dump @242 ++ BLOB_text_load @243 ++ Bopen @99 ++ ++ ; Other misc functions ++ ++ isc_ftof @138 ++ isc_free @241 ++ isc_print_blr @149 ++ fb_print_blr @280 ++ isc_qtoq @154 ++ isc_reset_fpe ++ isc_set_debug @163 ++ isc_to_sqlda @170 ++ isc_vtof @175 ++ isc_vtov @176 ++ isc_baddress @276 ++ isc_baddress_s @277 ++ ++ _isc_start_transaction=isc_start_transaction ++ _isc_expand_dpb=isc_expand_dpb ++ _isc_event_block=isc_event_block ++ ++ fb_ping ++ fb_get_master_interface ++ fb_get_database_handle ++ fb_get_transaction_handle ++ fb_database_crypt_callback ++ ++ gds__trace ++ gds__trace_raw ++ gds__trace_printer ++ gds__parse_bpb2 ++ ++;----------------- ++; OTHER FUNCTIONS ++;----------------- ++ ++ CVT_move @267 ++ ++ KEYWORD_stringIsAToken @271 ++ KEYWORD_getTokens @272 +-- +2.4.3 + +From 42461b606d8ea8409f91f785a973125645feb86d Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 24 Nov 2014 11:12:17 +0300 +Subject: [PATCH] Windows have another sources for FBGUARD. + +--- + builds/posix/make.shared.variables | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/builds/posix/make.shared.variables b/builds/posix/make.shared.variables +index 53597e6..ef25f37 100644 +--- a/builds/posix/make.shared.variables ++++ b/builds/posix/make.shared.variables +@@ -122,7 +122,11 @@ AllObjects += $(LOCKPRINT_Objects) + + + # Guardian ++ifeq ($(PLATFORM),win32) ++FBGUARD_Objects:= $(call dirObjects,iscguard) $(call makeObjects,remote/server/os/win32,chop.cpp) ++else + FBGUARD_Objects:= $(call dirObjects,utilities/guard) ++endif + + AllObjects += $(FBGUARD_Objects) + +-- +2.4.3 + +From aa46551df08a769daffd9a2d1acfe394aa214ab6 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Thu, 27 Nov 2014 15:57:53 +0300 +Subject: [PATCH] Do not install posix scripts for win32 platform. + +--- + configure.ac | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 651ca3e..72f43d6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1195,6 +1195,7 @@ if test "x$CROSS" != "x"; then + AC_CONFIG_FILES([gen/make.crossPlatform:builds/posix/make.$CROSS]) + fi + ++if test "$PLATFORM" != "win32"; then + AC_CONFIG_FILES([ + gen/Release/firebird/bin/fb_config:builds/install/posix-common/fb_config.in + gen/Release/firebird/bin/posixLibrary.sh:builds/install/posix-common/posixLibrary.sh.in +@@ -1208,8 +1209,9 @@ gen/Release/firebird/bin/taruninstall.sh:builds/install/posix-common/taruninstal + gen/Release/firebird/bin/tarMainUninstall.sh:builds/install/posix-common/tarMainUninstall.sh.in + gen/Release/firebird/bin/changeServerMode.sh:builds/install/posix-common/changeServerMode.sh.in + gen/Release/firebird/bin/registerDatabase.sh:builds/install/posix-common/registerDatabase.sh.in +-gen/vers.sh:builds/posix/vers.sh.in + ]) ++fi ++AC_CONFIG_FILES(gen/vers.sh:builds/posix/vers.sh.in) + + dnl: Platform Specific Files + +@@ -1304,6 +1306,11 @@ case "$PLATFORM" in + + DARWIN) + ;; ++ win32) ++ AC_CONFIG_FILES(gen/install/install_classic.bat:builds/install/arch-specific/win32/install_classic.bat ++ gen/install/install_super.bat:builds/install/arch-specific/win32/install_super.bat ++ gen/install/uninstall.bat:builds/install/arch-specific/win32/uninstall.bat) ++ ;; + esac + if test -f ${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX};then + POSTFIX_FILE=gen/make.platform.postfix:${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX} +-- +2.4.3 + +From 2939db0d6f51e983620e0f7b2b41fd37adcc5764 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Thu, 27 Nov 2014 17:04:52 +0300 +Subject: [PATCH] Use variables everywhere. + +--- + builds/posix/Makefile.in.examples | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/builds/posix/Makefile.in.examples b/builds/posix/Makefile.in.examples +index ec5c19c..49f6c9f 100644 +--- a/builds/posix/Makefile.in.examples ++++ b/builds/posix/Makefile.in.examples +@@ -123,7 +123,7 @@ $(EXAMPLES_DEST)% : $(EXAMPLES_SRC)% + + $(EMPLOYEE_DB): $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(INPUT_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT) + -$(RM) $(EMPLOYEE_DB) +- ./empbuild $(EMPLOYEE_DB) ++ $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(EMPLOYEE_DB) + $(GFIX) -write sync $(EMPLOYEE_DB) + -$(CHMOD_6) $(EMPLOYEE_DB) + +@@ -147,9 +147,9 @@ $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPLES_DEST)/empddl.sql $(EXAMPLES_DEST)/emp + # the intlemp.fdb database. + + $(EXAMPLES_DEST)/intlemp.fdb: $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) $(INTL_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT) +- -$(RM) intlemp.fdb +- ./intlbld intlemp.fdb +- -$(CHMOD_6) intlemp.fdb ++ -$(RM) $(EXAMPLES_DEST)/intlemp.fdb ++ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) intlemp.fdb ++ -$(CHMOD_6) $(EXAMPLES_DEST)/intlemp.fdb + + $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_LIB) + $(EXE_LINK) $(EXE_LINK_OPTIONS) @^ -o $@ -L$(LIB) $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) +@@ -157,8 +157,8 @@ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_LIB) + $(EXAMPLES_DEST)/intlbld.c: $(EXAMPLES_DEST)/intlbuild.fdb $(EXAMPLES_DEST)/intlbld.e + + $(EXAMPLES_DEST)/intlbuild.fdb : $(EXAMPLES_DEST)/intlddl.sql $(EXAMPLES_DEST)/intlbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT) +- -$(RM) intlbuild.fdb +- $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql ++ -$(RM) $(EXAMPLES_DEST)/intlbuild.fdb ++ $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i $(EXAMPLES_DEST)/intlbld.sql + + + $(EXAMPLES_DEST)/%.sql: $(EXAMPLES_SRC)/empbuild/%.sql +-- +2.4.3 + +From 94c47c8fcd14d1ebdc600fbb130d551b5d1fc295 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Fri, 28 Nov 2014 12:28:31 +0300 +Subject: [PATCH] Build windows specific utilities for mingw. + +--- + builds/posix/Makefile.in | 26 ++++++++++++++++++++++++++ + builds/posix/make.defaults | 1 + + builds/posix/make.shared.variables | 9 +++++++++ + builds/posix/prefix.mingw | 3 ++- + 4 files changed, 38 insertions(+), 1 deletion(-) + +diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in +index 85d4697..79659d2 100644 +--- a/builds/posix/Makefile.in ++++ b/builds/posix/Makefile.in +@@ -168,6 +168,9 @@ endif + $(MAKE) plugins + $(MAKE) examples + $(MAKE) rest ++ifeq ($(PLATFORM), win32) ++ $(MAKE) helpers ++endif + + + cross_process: +@@ -434,6 +437,29 @@ $(NBACKUP): $(NBACKUP_Objects) $(COMMON_LIB) + + + #___________________________________________________________________________ ++# install helpers - utilities for Windows to install/uninstall services and etc ++# ++ ++.PHONY: instclient instreg instsvc ++ ++helpers: instclient instreg instsvc ++ ++instclient: $(INSTCLI) ++ ++$(INSTCLI): $(INSTCLIENT_Objects) ++ $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS) ++ ++instreg: $(INSTREG) ++ ++$(INSTREG): $(INSTREG_Objects) ++ $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS) ++ ++instsvc: $(INSTSVC) ++ ++$(INSTSVC): $(INSTSVC_Objects) $(YValve_Objects) $(Common_Objects) $(Remote_Client_Objects) ++ $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(MATHLIB) ++ ++#___________________________________________________________________________ + # plugins - some of them are required to build examples, use separate entry for them + # + +diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults +index bc18fc8..65cd4f9 100755 +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -356,6 +356,7 @@ GDS_INSTALL = $(BIN)/gds_install_service$(EXEC_EXT) + FBGUARD = $(BIN)/fbguard$(EXEC_EXT) + IBGUARD = $(BIN)/ibguard$(EXEC_EXT) + FBMGR_BIN = $(BIN)/fbmgr.bin$(EXEC_EXT) ++INSTCLI = $(BIN)/instclient$(EXEC_EXT) + INSTREG = $(BIN)/instreg$(EXEC_EXT) + INSTSVC = $(BIN)/instsvc$(EXEC_EXT) + +diff --git a/builds/posix/make.shared.variables b/builds/posix/make.shared.variables +index ef25f37..18903b9 100644 +--- a/builds/posix/make.shared.variables ++++ b/builds/posix/make.shared.variables +@@ -219,3 +219,12 @@ AllObjects += $(CODES_Objects) + BUILD_Objects:= $(call makeObjects,msgs,build_file.epp) + + AllObjects += $(BUILD_Objects) ++ ++# Install helpers ++ifeq ($(PLATFORM),win32) ++INSTCLIENT_Objects:= $(call makeObjects,utilities/install,install.cpp install_client.cpp) ++INSTREG_Objects:= $(call makeObjects,utilities/install,install_reg.cpp registry.cpp) ++INSTSVC_Objects:= $(call makeObjects,utilities/install,install_svc.cpp services.cpp) ++ ++AllObjects += $(INSTCLIENT_Objects) $(INSTREG_Objects) $(INSTSVC_Objects) ++endif +diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw +index 8dad1ce..7fd569a 100644 +--- a/builds/posix/prefix.mingw ++++ b/builds/posix/prefix.mingw +@@ -39,7 +39,8 @@ LIB_GUI:= -mwindows -lcomctl32 -lgdi32 + # Add resources to some files + FilesToAddVersionInfo=$(FBTRACEMGR) $(LIBFIREBIRD_FULLNAME) $(ENGINE_SONAME) $(LIBFBINTL_SO) \ + $(FBSVCMGR) $(FBTRACEMGR) $(FBTRACE) $(FBUDF_SO) $(LIBIBUTIL_SO) \ +- $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP) ++ $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP) \ ++ $(INSTCLI) $(INSTREG) $(INSTSVC) + # TODO: guardians also must be here + FilesToAddDialog=$(FB_DAEMON) + FilesToAddDialog2=$(FBGUARD) +-- +2.4.3 + +From 7a92d1dcf2626da10784eb50f370a3e4d99a1dcf Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Fri, 28 Nov 2014 12:28:31 +0300 +Subject: [PATCH] Fix using mutex. + +--- + src/extlib/fbudf/fbudf.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/extlib/fbudf/fbudf.cpp b/src/extlib/fbudf/fbudf.cpp +index d3a5a96..2855fe9 100644 +--- a/src/extlib/fbudf/fbudf.cpp ++++ b/src/extlib/fbudf/fbudf.cpp +@@ -581,7 +581,7 @@ FBUDF_API void getExactTimestamp(ISC_TIMESTAMP* rc) + #if defined(HAVE_LOCALTIME_R) + tm* times = localtime_r(&seconds, &timex); + #else +- timeMutex.enter(); ++ timeMutex.enter(FB_FUNCTION); + tm* times = localtime(&seconds); + if (times) + { +@@ -628,7 +628,7 @@ FBUDF_API void getExactTimestampUTC(ISC_TIMESTAMP* rc) + #if defined(HAVE_GMTIME_R) + tm* times = gmtime_r(&seconds, &timex); + #else +- timeMutex.enter(); ++ timeMutex.enter(FB_FUNCTION); + tm* times = gmtime(&seconds); + if (times) + { +-- +2.4.3 + +From 1c21afa3c185b2e7fee937e0d66e225797e40510 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Tue, 16 Jun 2015 10:34:21 +0300 +Subject: [PATCH] mod_loader: mingw always link to msvcrt.dll + +--- + src/common/os/win32/mod_loader.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/common/os/win32/mod_loader.cpp b/src/common/os/win32/mod_loader.cpp +index a79313f..2008d7a 100644 +--- a/src/common/os/win32/mod_loader.cpp ++++ b/src/common/os/win32/mod_loader.cpp +@@ -76,7 +76,7 @@ public: + // if we don't use MSVC then we don't use MS CRT ? + // NS: versions of MSVC before 2005 and, as preliminary reports suggest, + // after 2008 do not need this hack +-#if !defined(_MSC_VER) || (_MSC_VER < 1400) ++#if (!defined(_MSC_VER) || (_MSC_VER < 1400)) && !defined(__MINGW32__) + return; + #else + +@@ -91,7 +91,9 @@ public: + if ((*mFindActCtxSectionString) + (0, NULL, + ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, +-#if _MSC_VER == 1400 ++#if defined(__MINGW32__) ++ "msvcrt.dll", ++#elif _MSC_VER == 1400 + "msvcr80.dll", + #elif _MSC_VER == 1500 + "msvcr90.dll", +-- +2.4.3 + +From 9e1d9ea0e8fe4fe4033e8073b46876962b9ac973 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Tue, 16 Jun 2015 13:35:36 +0300 +Subject: [PATCH] Relocate paths for unix-like files layout. + +--- + src/common/os/win32/path_utils.cpp | 10 +- + src/common/pathtools.cpp | 538 +++++++++++++++++++++++++++++ + src/common/pathtools.h | 53 +++ + src/common/utils.cpp | 21 +- + src/yvalve/config/os/win32/config_root.cpp | 3 +- + src/yvalve/gds.cpp | 7 +- + 6 files changed, 623 insertions(+), 9 deletions(-) + create mode 100644 src/common/pathtools.cpp + create mode 100644 src/common/pathtools.h + +diff --git a/src/common/os/win32/path_utils.cpp b/src/common/os/win32/path_utils.cpp +index ad592ac..5ac2431 100644 +--- a/src/common/os/win32/path_utils.cpp ++++ b/src/common/os/win32/path_utils.cpp +@@ -6,7 +6,13 @@ + + /// The Win32 implementation of the path_utils abstraction. + ++#if defined(__MINGW32__) ++const char PathUtils::dir_sep = '/'; ++const char alt_sep_dir = '\\'; ++#else + const char PathUtils::dir_sep = '\\'; ++const char alt_sep_dir = '/'; ++#endif + const char* PathUtils::up_dir_link = ".."; + const char PathUtils::dir_list_sep = ';'; + +@@ -155,7 +161,7 @@ bool PathUtils::isRelative(const Firebird::PathName& path) + if (path.length() > 0) + { + const char ds = hasDriveLetter(path) ? path[2] : path[0]; +- return ds != PathUtils::dir_sep && ds != '/'; ++ return ds != PathUtils::dir_sep && ds != alt_sep_dir; + } + return true; + } +@@ -168,7 +174,7 @@ void PathUtils::splitPrefix(Firebird::PathName& path, Firebird::PathName& prefix + prefix = path.substr(0, 2); + path.erase(0, 2); + } +- if (path.hasData() && (path[0] == PathUtils::dir_sep || path[0] == '/')) ++ if (path.hasData() && (path[0] == PathUtils::dir_sep || path[0] == alt_sep_dir)) + { + prefix += path[0]; + path.erase(0, 1); +diff --git a/src/common/pathtools.cpp b/src/common/pathtools.cpp +new file mode 100644 +index 0000000..9291ffd +--- /dev/null ++++ b/src/common/pathtools.cpp +@@ -0,0 +1,538 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++#include ++#endif ++#include ++ ++/* If you don't define this, then get_executable_path() ++ can only use argv[0] which will often not work well */ ++#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH ++ ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++/* Nothing needed, unistd.h is enough. */ ++#elif defined(__APPLE__) ++#include ++#elif defined(_WIN32) ++#define WIN32_MEAN_AND_LEAN ++#include ++#include ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ ++#include "pathtools.h" ++ ++char * ++malloc_copy_string(char const * original) ++{ ++ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); ++ if (result != NULL) ++ { ++ strcpy (result, original); ++ } ++ return result; ++} ++ ++void ++sanitise_path(char * path) ++{ ++ size_t path_size = strlen (path); ++ ++ /* Replace any '\' with '/' */ ++ char * path_p = path; ++ while ((path_p = strchr (path_p, '\\')) != NULL) ++ { ++ *path_p = '/'; ++ } ++ /* Replace any '//' with '/' */ ++ path_p = path; ++ while ((path_p = strstr (path_p, "//")) != NULL) ++ { ++ memmove (path_p, path_p + 1, path_size--); ++ } ++ return; ++} ++ ++char * ++get_relative_path(char const * from_in, char const * to_in) ++{ ++ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); ++ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); ++ size_t max_size = (from_size + to_size) * 2 + 4; ++ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); ++ char * from; ++ char * to; ++ char * common_part; ++ char * result; ++ size_t count; ++ ++ /* No to, return "./" */ ++ if (to_in == NULL) ++ { ++ return malloc_copy_string ("./"); ++ } ++ ++ /* If alloca failed or no from was given return a copy of to */ ++ if ( from_in == NULL ++ || scratch_space == NULL ) ++ { ++ return malloc_copy_string (to_in); ++ } ++ ++ from = scratch_space; ++ strcpy (from, from_in); ++ to = from + from_size + 1; ++ strcpy (to, to_in); ++ common_part = to + to_size + 1; ++ result = common_part + max_size; ++ simplify_path (from); ++ simplify_path (to); ++ ++ result[0] = '\0'; ++ ++ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ ++ size_t match_size = 0; /* The running (and final) match size. */ ++ size_t largest_size = (from_size > to_size) ? from_size : to_size; ++ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; ++ char from_c; ++ char to_c; ++ for (match_size = 0; match_size < largest_size; ++match_size) ++ { ++ /* To simplify the logic, always pretend the strings end with '/' */ ++ from_c = (match_size < from_size) ? from[match_size] : '/'; ++ to_c = (match_size < to_size) ? to[match_size] : '/'; ++ ++ if (from_c != to_c) ++ { ++ if (from_c != '\0' || to_c != '\0') ++ { ++ match_size = match_size_dirsep; ++ } ++ break; ++ } ++ else if (from_c == '/') ++ { ++ match_size_dirsep = match_size; ++ } ++ } ++ strncpy (common_part, from, match_size); ++ common_part[match_size] = '\0'; ++ from += match_size; ++ to += match_size; ++ size_t ndotdots = 0; ++ char const* from_last = from + strlen(from) - 1; ++ while ((from = strchr (from, '/')) && from != from_last) ++ { ++ ++ndotdots; ++ ++from; ++ } ++ for (count = 0; count < ndotdots; ++count) ++ { ++ strcat(result, "../"); ++ } ++ if (strlen(to) > 0) ++ { ++ strcat(result, to+1); ++ } ++ /* Make sure that if to ends with '/' result does the same, and ++ vice-versa. */ ++ size_t size_result = strlen(result); ++ if ((to_final_is_slash == 1) ++ && (!size_result || result[size_result-1] != '/')) ++ { ++ strcat (result, "/"); ++ } ++ else if (!to_final_is_slash ++ && size_result && result[size_result-1] == '/') ++ { ++ result[size_result-1] = '\0'; ++ } ++ ++ return malloc_copy_string (result); ++} ++ ++void ++simplify_path(char * path) ++{ ++ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ ++ ssize_t i, j; ++ size_t tok_size; ++ size_t in_size = strlen (path); ++ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; ++ char * result = path; ++ sanitise_path(result); ++ char * result_p = result; ++ ++ do ++ { ++ ++n_toks; ++ ++result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ result_p = result; ++ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); ++ n_toks = 0; ++ do ++ { ++ if (result_p > result) ++ { ++ *result_p++ = '\0'; ++ } ++ else if (*result_p == '/') ++ { ++ /* A leading / creates an empty initial token. */ ++ toks[n_toks++] = result_p; ++ *result_p++ = '\0'; ++ } ++ toks[n_toks++] = result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ /* Remove all non-leading '.' and any '..' we can match ++ with an earlier forward path (i.e. neither '.' nor '..') */ ++ for (i = 1; i < n_toks; ++i) ++ { ++ int removals[2] = { -1, -1 }; ++ if ( strcmp (toks[i], "." ) == 0) ++ { ++ removals[0] = i; ++ } ++ else if ( strcmp (toks[i], ".." ) == 0) ++ { ++ /* Search backwards for a forward path to collapse. ++ If none are found then the .. also stays. */ ++ for (j = i - 1; j > -1; --j) ++ { ++ if ( strcmp (toks[j], "." ) ++ && strcmp (toks[j], ".." ) ) ++ { ++ removals[0] = j; ++ removals[1] = i; ++ break; ++ } ++ } ++ } ++ for (j = 0; j < 2; ++j) ++ { ++ if (removals[j] >= 0) /* Can become -2 */ ++ { ++ --n_toks; ++ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); ++ --i; ++ if (!j) ++ { ++ --removals[1]; ++ } ++ } ++ } ++ } ++ result_p = result; ++ for (i = 0; i < n_toks; ++i) ++ { ++ tok_size = strlen(toks[i]); ++ memcpy (result_p, toks[i], tok_size); ++ result_p += tok_size; ++ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) ++ { ++ *result_p = '/'; ++ ++result_p; ++ } ++ } ++ *result_p = '\0'; ++} ++ ++/* Returns actual_to by calculating the relative path from -> to and ++ applying that to actual_from. An assumption that actual_from is a ++ dir is made, and it may or may not end with a '/' */ ++char const * ++get_relocated_path (char const * from, char const * to, char const * actual_from) ++{ ++ char const * relative_from_to = get_relative_path (from, to); ++ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); ++ return actual_to; ++} ++ ++int ++get_executable_path(char const * argv0, char * result, ssize_t max_size) ++{ ++ char * system_result = (char *) alloca (max_size); ++ ssize_t system_result_size = -1; ++ ssize_t result_size = -1; ++ ++ if (system_result != NULL) ++ { ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++ system_result_size = readlink("/proc/self/exe", system_result, max_size); ++#elif defined(__APPLE__) ++ uint32_t bufsize = (uint32_t)max_size; ++ if (_NSGetExecutablePath(system_result, &bufsize) == 0) ++ { ++ system_result_size = (ssize_t)bufsize; ++ } ++#elif defined(_WIN32) ++ unsigned long bufsize = (unsigned long)max_size; ++ system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); ++ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) ++ { ++ /* Error, possibly not enough space. */ ++ system_result_size = -1; ++ } ++ else ++ { ++ /* Early conversion to unix slashes instead of more changes ++ everywhere else .. */ ++ char * winslash; ++ system_result[system_result_size] = '\0'; ++ while ((winslash = strchr (system_result, '\\')) != NULL) ++ { ++ *winslash = '/'; ++ } ++ } ++#else ++#warning "Don't know how to get executable path on this system" ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ } ++ /* Use argv0 as a default in-case of failure */ ++ if (system_result_size != -1) ++ { ++ strncpy (result, system_result, system_result_size); ++ result[system_result_size] = '\0'; ++ } ++ else ++ { ++ if (argv0 != NULL) ++ { ++ strncpy (result, argv0, max_size); ++ result[max_size-1] = '\0'; ++ } ++ else ++ { ++ result[0] = '\0'; ++ } ++ } ++ result_size = strlen (result); ++ return result_size; ++} ++ ++char const * ++strip_n_prefix_folders(char const * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return NULL; ++ } ++ ++ if (path[0] != '/') ++ { ++ return path; ++ } ++ ++ char const * last = path; ++ while (n-- && path != NULL) ++ { ++ last = path; ++ path = strchr (path + 1, '/'); ++ } ++ return (path == NULL) ? last : path; ++} ++ ++void ++strip_n_suffix_folders(char * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return; ++ } ++ while (n--) ++ { ++ if (strrchr (path + 1, '/')) ++ { ++ *strrchr (path + 1, '/') = '\0'; ++ } ++ else ++ { ++ return; ++ } ++ } ++ return; ++} ++ ++size_t ++split_path_list(char const * path_list, char split_char, char *** arr) ++{ ++ size_t path_count; ++ size_t path_list_size; ++ char const * path_list_p; ++ ++ path_list_p = path_list; ++ if (path_list == NULL || path_list[0] == '\0') ++ { ++ return 0; ++ } ++ path_list_size = strlen (path_list); ++ ++ path_count = 0; ++ do ++ { ++ ++path_count; ++ ++path_list_p; ++ } ++ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); ++ ++ /* allocate everything in one go. */ ++ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); ++ if (all_memory == NULL) ++ return 0; ++ *arr = (char **)all_memory; ++ all_memory += sizeof (char *) * path_count; ++ ++ path_count = 0; ++ path_list_p = path_list; ++ char const * next_path_list_p = 0; ++ do ++ { ++ next_path_list_p = strchr (path_list_p, split_char); ++ if (next_path_list_p != NULL) ++ { ++ ++next_path_list_p; ++ } ++ size_t this_size = (next_path_list_p != NULL) ++ ? next_path_list_p - path_list_p - 1 ++ : &path_list[path_list_size] - path_list_p; ++ memcpy (all_memory, path_list_p, this_size); ++ all_memory[this_size] = '\0'; ++ (*arr)[path_count++] = all_memory; ++ all_memory += this_size + 1; ++ } while ((path_list_p = next_path_list_p) != NULL); ++ ++ return path_count; ++} ++ ++char * ++get_relocated_path_list(char const * from, char const * to_path_list) ++{ ++ char exe_path[MAX_PATH]; ++ char * temp; ++ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ if ((temp = strrchr (exe_path, '/')) != NULL) ++ { ++ temp[1] = '\0'; ++ } ++ ++ char **arr = NULL; ++ /* Ask Alexey why he added this. Are we not 100% sure ++ that we're dealing with unix paths here? */ ++ char split_char = ':'; ++ if (strchr (to_path_list, ';')) ++ { ++ split_char = ';'; ++ } ++ size_t count = split_path_list (to_path_list, split_char, &arr); ++ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ ++ size_t exe_path_size = strlen (exe_path); ++ size_t i; ++ /* Space required is: ++ count * (exe_path_size + strlen (rel_to_datadir)) ++ rel_to_datadir upper bound is: ++ (count * strlen (from)) + (3 * num_slashes (from)) ++ + strlen(arr[i]) + 1. ++ .. pathalogically num_slashes (from) is strlen (from) ++ (from = ////////) */ ++ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; ++ for (i = 0; i < count; ++i) ++ { ++ space_required += strlen (arr[i]); ++ } ++ char * scratch = (char *) alloca (space_required); ++ if (scratch == NULL) ++ return NULL; ++ for (i = 0; i < count; ++i) ++ { ++ char * rel_to_datadir = get_relative_path (from, arr[i]); ++ scratch[0] = '\0'; ++ arr[i] = scratch; ++ strcat (scratch, exe_path); ++ strcat (scratch, rel_to_datadir); ++ simplify_path (arr[i]); ++ size_t arr_i_size = strlen (arr[i]); ++ result_size += arr_i_size; ++ scratch = arr[i] + arr_i_size + 1; ++ } ++ char * result = (char *) malloc (result_size); ++ if (result == NULL) ++ { ++ return NULL; ++ } ++ result[0] = '\0'; ++ for (i = 0; i < count; ++i) ++ { ++ strcat (result, arr[i]); ++ if (i != count-1) ++ { ++#if defined(_WIN32) ++ strcat (result, ";"); ++#else ++ strcat (result, ":"); ++#endif ++ } ++ } ++ free ((void*)arr); ++ return result; ++} ++ ++char * ++single_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} +diff --git a/src/common/pathtools.h b/src/common/pathtools.h +new file mode 100644 +index 0000000..139b7c2 +--- /dev/null ++++ b/src/common/pathtools.h +@@ -0,0 +1,53 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#ifndef PATHTOOLS_H ++#define PATHTOOLS_H ++ ++#include ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++ ++char * malloc_copy_string(char const * original); ++ ++/* In-place replaces any '\' with '/' and any '//' with '/' */ ++void sanitise_path(char * path); ++ ++/* Uses a host OS specific function to determine the path of the executable, ++ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ ++int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ ++/* Where possible, in-place removes occourances of '.' and 'path/..' */ ++void simplify_path(char * path); ++ ++/* Allocates (via malloc) and returns the path to get from from to to. */ ++char * get_relative_path(char const * from, char const * to); ++ ++size_t split_path_list(char const * path_list, char split_char, char *** arr); ++ ++/* Advances path along by the amount that removes n prefix folders. */ ++char const * ++strip_n_prefix_folders(char const * path, size_t n); ++ ++/* NULL terminates path to remove n suffix folders. */ ++void ++strip_n_suffix_folders(char * path, size_t n); ++ ++char const * get_relocated_path (char const * from, char const * to, char const * actual_from); ++char * get_relocated_path_list(char const * from, char const * to_path_list); ++ ++char * single_path_relocation(const char *from, const char *to); ++char * pathlist_relocation(const char *from_path, const char *to_path_list); ++ ++#endif /* PATHTOOLS_H */ +diff --git a/src/common/utils.cpp b/src/common/utils.cpp +index df73d9c..473629a 100644 +--- a/src/common/utils.cpp ++++ b/src/common/utils.cpp +@@ -51,6 +51,7 @@ + #include "../common/os/fbsyslog.h" + #include "../common/StatusArg.h" + #include "../common/os/os_utils.h" ++#include "../common/pathtools.h" + #include "../dsql/sqlda_pub.h" + + #ifdef WIN_NT +@@ -1008,9 +1009,23 @@ Firebird::PathName getPrefix(unsigned int prefType, const char* name) + char tmp[MAXPATHLEN]; + + const char* configDir[] = { +- FB_BINDIR, FB_SBINDIR, FB_CONFDIR, FB_LIBDIR, FB_INCDIR, FB_DOCDIR, FB_UDFDIR, FB_SAMPLEDIR, +- FB_SAMPLEDBDIR, FB_HELPDIR, FB_INTLDIR, FB_MISCDIR, FB_SECDBDIR, FB_MSGDIR, FB_LOGDIR, +- FB_GUARDDIR, FB_PLUGDIR ++ single_path_relocation(FB_BINDIR,FB_BINDIR), ++ single_path_relocation(FB_BINDIR,FB_SBINDIR), ++ single_path_relocation(FB_BINDIR,FB_CONFDIR), ++ single_path_relocation(FB_BINDIR,FB_LIBDIR), ++ single_path_relocation(FB_BINDIR,FB_INCDIR), ++ single_path_relocation(FB_BINDIR,FB_DOCDIR), ++ single_path_relocation(FB_BINDIR,FB_UDFDIR), ++ single_path_relocation(FB_BINDIR,FB_SAMPLEDIR), ++ single_path_relocation(FB_BINDIR,FB_SAMPLEDBDIR), ++ single_path_relocation(FB_BINDIR,FB_HELPDIR), ++ single_path_relocation(FB_BINDIR,FB_INTLDIR), ++ single_path_relocation(FB_BINDIR,FB_MISCDIR), ++ single_path_relocation(FB_BINDIR,FB_SECDBDIR), ++ single_path_relocation(FB_BINDIR,FB_MSGDIR), ++ single_path_relocation(FB_BINDIR,FB_LOGDIR), ++ single_path_relocation(FB_BINDIR,FB_GUARDDIR), ++ single_path_relocation(FB_BINDIR,FB_PLUGDIR) + }; + + fb_assert(FB_NELEM(configDir) == Firebird::IConfigManager::DIR_COUNT); +diff --git a/src/yvalve/config/os/win32/config_root.cpp b/src/yvalve/config/os/win32/config_root.cpp +index d4641c7..e3ae8d9 100644 +--- a/src/yvalve/config/os/win32/config_root.cpp ++++ b/src/yvalve/config/os/win32/config_root.cpp +@@ -28,6 +28,7 @@ + #include "fb_types.h" + #include "../../../../common/classes/fb_string.h" + #include "../../../../common/dllinst.h" ++#include "../../../../common/pathtools.h" + #include "../../../../yvalve/config/os/config_root.h" + + using Firebird::PathName; +@@ -107,7 +108,7 @@ void ConfigRoot::osConfigInstallDir() + if (install_dir.isEmpty()) + { + // As a last resort get it from the default install directory +- install_dir = FB_PREFIX; ++ install_dir = single_path_relocation(FB_BINDIR,FB_PREFIX); + } + + PathUtils::ensureSeparator(install_dir); +diff --git a/src/yvalve/gds.cpp b/src/yvalve/gds.cpp +index 5cc5dcb..c7681d2 100644 +--- a/src/yvalve/gds.cpp ++++ b/src/yvalve/gds.cpp +@@ -57,6 +57,7 @@ + #include "../common/classes/init.h" + #include "../common/classes/TempFile.h" + #include "../common/utils_proto.h" ++#include "../common/pathtools.h" + + #ifdef HAVE_UNISTD_H + #include +@@ -3739,13 +3740,13 @@ public: + { + prefix = Config::getRootDirectory(); + if (prefix.isEmpty() && !GetProgramFilesDir(prefix)) +- prefix = FB_CONFDIR[0] ? FB_CONFDIR : FB_PREFIX; ++ prefix = FB_CONFDIR[0] ? single_path_relocation(FB_BINDIR,FB_CONFDIR) : single_path_relocation(FB_BINDIR,FB_PREFIX); + } + catch (const Firebird::Exception&) + { + // CVC: Presumably here we failed because the config file can't be located. + if (!GetProgramFilesDir(prefix)) +- prefix = FB_CONFDIR[0] ? FB_CONFDIR : FB_PREFIX; ++ prefix = FB_CONFDIR[0] ? single_path_relocation(FB_BINDIR,FB_CONFDIR) : single_path_relocation(FB_BINDIR,FB_PREFIX); + } + prefix.copyTo(fb_prefix_val, sizeof(fb_prefix_val)); + fb_prefix = fb_prefix_val; +@@ -3828,7 +3829,7 @@ public: + Firebird::PathName msgPrefix; + if (!fb_utils::readenv(FB_MSG_ENV, msgPrefix)) + { +- msgPrefix = FB_MSGDIR[0] ? FB_MSGDIR : prefix; ++ msgPrefix = FB_MSGDIR[0] ? single_path_relocation(FB_BINDIR,FB_MSGDIR) : prefix; + } + msgPrefix.copyTo(fb_prefix_msg_val, sizeof(fb_prefix_msg_val)); + fb_prefix_msg = fb_prefix_msg_val; +-- +2.4.3 + +From b3c77d3f7c0cb477e540a310692a257c5fd5d3f1 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Tue, 16 Jun 2015 13:36:14 +0300 +Subject: [PATCH] Fix linking Engine dll for mingw. + +--- + builds/posix/make.shared.variables | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/builds/posix/make.shared.variables b/builds/posix/make.shared.variables +index 18903b9..cc00a80 100644 +--- a/builds/posix/make.shared.variables ++++ b/builds/posix/make.shared.variables +@@ -67,6 +67,7 @@ AllObjects += $(Remote_Common) $(Remote_Server) $(Remote_Client) + Engine_Objects:= $(call dirObjects,jrd) $(call dirObjects,dsql) $(call dirObjects,jrd/extds) \ + $(call dirObjects,jrd/recsrc) $(call dirObjects,jrd/trace) \ + $(call makeObjects,lock,lock.cpp) ++Engine_Objects:= $(filter-out $(call makeObjects,jrd/$(PLATFORM_PATH),ibinitdll.cpp), $(Engine_Objects)) + + AllObjects += $(Engine_Objects) + +-- +2.4.3 + +From e09c3e5489366841c76627a8dc72cb3a55c02c0a Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Tue, 16 Jun 2015 14:07:13 +0300 +Subject: [PATCH] cmake: Mingw use external ICU. Customize files layout. + +--- + CMakeLists.txt | 10 ++++++---- + src/CMakeLists.txt | 2 +- + 2 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e8cb276..2f8b4fe 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -98,7 +98,7 @@ if (XCODE) + string(TOUPPER ${conf} conf2) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${conf2} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${conf}/bin) + endforeach() +-elseif (UNIX) ++elseif (UNIX OR MINGW) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${output_dir}/bin) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${output_dir}/bin) + endif() +@@ -113,7 +113,7 @@ endif() + # icu + ######################################## + +-if (UNIX) ++if (UNIX OR MINGW) + if (NOT ICU_INCLUDE_DIR) + find_path(ICU_INCLUDE_DIR unicode/ucnv.h + PATHS +@@ -159,7 +159,9 @@ set(FB_SERVICE_NAME "gds_db") + set(FB_SERVICE_PORT 3050) + + if (WIN32) ++ if (NOT MINGW) + set(FB_PREFIX "c:\\\\Program Files\\\\Firebird\\\\") ++ endif() + set(FB_IPC_NAME "FIREBIRD") + endif() + +@@ -192,7 +194,7 @@ if (WIN32) + endif() + endif(MSVC) + +- set(LIB_Ws2_32 Ws2_32) ++ set(LIB_Ws2_32 ws2_32) + set(LIB_comctl32 comctl32) + set(LIB_mpr mpr) + set(LIB_version version) +@@ -249,7 +251,7 @@ endif() + # + ################################################################################ + +-if (WIN32) ++if (MSVC) + # icu + if (NOT ICU_EXTRACT) + message(STATUS "Extracting pre-built ICU") +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 9ca8421..414ea01 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -852,7 +852,7 @@ project_group (boot_isql Boot) + + endif() # if (NOT CMAKE_CROSSCOMPILING) + +-if (WIN32) ++if (MSVC) + add_custom_command( + TARGET boot_isql + POST_BUILD +-- +2.4.3 + From 50a6ecf5fa12958ad62a94952a73c6ffc96dab28 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 16 Jun 2015 15:33:21 +0300 Subject: [PATCH 1153/2060] firebird2-git: New package - stable version of Firebird. --- mingw-w64-firebird2-git/PKGBUILD | 119 ++ mingw-w64-firebird2-git/mingw-load-crt.patch | 22 + mingw-w64-firebird2-git/mingw-relocate.patch | 739 +++++++ mingw-w64-firebird2-git/mingw-w64-2_5.patch | 1858 ++++++++++++++++++ 4 files changed, 2738 insertions(+) create mode 100644 mingw-w64-firebird2-git/PKGBUILD create mode 100644 mingw-w64-firebird2-git/mingw-load-crt.patch create mode 100644 mingw-w64-firebird2-git/mingw-relocate.patch create mode 100644 mingw-w64-firebird2-git/mingw-w64-2_5.patch diff --git a/mingw-w64-firebird2-git/PKGBUILD b/mingw-w64-firebird2-git/PKGBUILD new file mode 100644 index 0000000000..a2ea40dfde --- /dev/null +++ b/mingw-w64-firebird2-git/PKGBUILD @@ -0,0 +1,119 @@ +# Maintainer: Alexey Pavlov + +_realname='firebird' +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}2-git" +pkgver=2.5.5.26889.e7dc188 +pkgrel=1 +pkgdesc="Cross-platform relational database offering many ANSI SQL standard features - version 2.x (mingw-w64)" +url="http://www.firebirdsql.org/" +license=('custom') +arch=('any') +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}2" "${MINGW_PACKAGE_PREFIX}-libfbclient") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}2" "${MINGW_PACKAGE_PREFIX}-libfbclient") +replaces=("${MINGW_PACKAGE_PREFIX}-libfbclient") +depends=( + "${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-icu" + "${MINGW_PACKAGE_PREFIX}-zlib" + ) +makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird presence of system btyacc + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-libatomic_ops" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git" + ) +options=('!debug' 'strip') +source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git#branch=branch_2_5" + mingw-w64-2_5.patch + mingw-load-crt.patch + mingw-relocate.patch) +sha256sums=('SKIP' + '1cf3187abdded6758162814dd65c1f44296536788abb5b56010d52ee8ab63ed8' + '3be62fb7d671cf466053e0910842984744ab7bdf3a0748e36590978d4aef7e38' + '8dbd0c9f9ea32e081f451792f3fdf0a3b2543175c0dd67f2215e8bfc83a804b6') + + +pkgver() { + cd "${_realname}" + source ${srcdir}/${_realname}/src/misc/writeBuildNum.sh + printf '%s.%s.%s.%s.%s' ${MajorVer} ${MinorVer} ${RevNo} ${BuildNum} "$(git rev-parse --short HEAD)" +} + +prepare() { + cd ${_realname} + git am ${srcdir}/mingw-w64-2_5.patch + + patch -p1 -i ${srcdir}/mingw-load-crt.patch + patch -p1 -i ${srcdir}/mingw-relocate.patch + + NOCONFIGURE=1 ./autogen.sh +} + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + + cp -rf ${_realname} build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + local _debug_conf= + if check_option "debug" "y"; then + _debug_conf="--enable-debug" + fi + + ./configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared \ + ${_debug_conf} \ + --disable-rpath \ + --with-system-icu \ + --with-fbbin=${MINGW_PREFIX}/bin \ + --with-fbsbin=${MINGW_PREFIX}/bin \ + --with-fbconf=${MINGW_PREFIX}/etc/${_realname} \ + --with-fblib=${MINGW_PREFIX}/lib \ + --with-fbinclude=${MINGW_PREFIX}/include \ + --with-fbdoc=${MINGW_PREFIX}/share/${_realname}/doc \ + --with-fbudf=${MINGW_PREFIX}/share/${_realname}/udf \ + --with-fbsample=${MINGW_PREFIX}/share/${_realname}/samples \ + --with-fbsample-db=${MINGW_PREFIX}/share/${_realname}/samples/empbuild \ + --with-fbhelp=${MINGW_PREFIX}/share/${_realname}/help \ + --with-fbintl=${MINGW_PREFIX}/share/${_realname}/intl \ + --with-fbmisc=${MINGW_PREFIX}/share/${_realname}/misc \ + --with-fbsecure-db=${MINGW_PREFIX}/etc/${_realname} \ + --with-fbmsg=${MINGW_PREFIX}/etc/${_realname} \ + --with-fblog=${MINGW_PREFIX}/var \ + --with-fbglock=${MINGW_PREFIX}/var \ + --with-fbplugins=${MINGW_PREFIX}/share/${_realname} + + CC=${MINGW_PREFIX}/bin/gcc \ + make -j1 +} + +package() { + cd ${srcdir}/build-${MINGW_CHOST} + + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,etc/${_realname},include,lib,share/${_realname}/{doc,help,intl,misc,plugins,samples,udf},var} + cp -f gen/firebird/bin/* ${pkgdir}${MINGW_PREFIX}/bin/ + cp -f gen/firebird/lib/* ${pkgdir}${MINGW_PREFIX}/lib/ + cp -f gen/firebird/include/* ${pkgdir}${MINGW_PREFIX}/include/ + cp -f gen/firebird/UDF/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/udf/ + cp -rf gen/firebird/examples/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/samples/ + cp -f gen/firebird/help/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/help/ + cp -f gen/firebird/intl/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/intl/ + cp -f gen/firebird/plugins/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/plugins/ + #cp -f gen/firebird/misc/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/misc/ + + cp -f gen/firebird/*.bat ${pkgdir}${MINGW_PREFIX}/bin/ + cp -f gen/firebird/*.conf ${pkgdir}${MINGW_PREFIX}/etc/${_realname}/ + cp -f gen/firebird/*.msg ${pkgdir}${MINGW_PREFIX}/etc/${_realname}/ + cp -f gen/firebird/*.fdb ${pkgdir}${MINGW_PREFIX}/etc/${_realname}/ + + cp -rf doc/* ${pkgdir}${MINGW_PREFIX}/share/${_realname}/doc/ + + touch ${pkgdir}${MINGW_PREFIX}/var/${_realname}.log + + # Remove build tools + rm -f ${pkgdir}${MINGW_PREFIX}/bin/{brltable,codes,create_db,*build*,*boot*,*static*,*current*}.exe +} diff --git a/mingw-w64-firebird2-git/mingw-load-crt.patch b/mingw-w64-firebird2-git/mingw-load-crt.patch new file mode 100644 index 0000000000..c68259fb89 --- /dev/null +++ b/mingw-w64-firebird2-git/mingw-load-crt.patch @@ -0,0 +1,22 @@ +--- build-x86_64-w64-mingw32/src/jrd/os/win32/mod_loader.cpp.orig 2015-06-15 12:43:29.538400000 +0300 ++++ build-x86_64-w64-mingw32/src/jrd/os/win32/mod_loader.cpp 2015-06-15 12:45:03.824800000 +0300 +@@ -74,7 +74,7 @@ + // if we don't use MSVC then we don't use MS CRT ? + // NS: versions of MSVC before 2005 and, as preliminary reports suggest, + // after 2008 do not need this hack +-#if !defined(_MSC_VER) || (_MSC_VER < 1400) ++#if (!defined(_MSC_VER) || (_MSC_VER < 1400)) && !defined(__MINGW32__) + return; + #else + +@@ -89,7 +89,9 @@ + if ((*mFindActCtxSectionString) + (0, NULL, + ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, +-#if _MSC_VER == 1400 ++#if defined(__MINGW32__) ++ "msvcrt.dll", ++#elif _MSC_VER == 1400 + "msvcr80.dll", + #elif _MSC_VER == 1500 + "msvcr90.dll", diff --git a/mingw-w64-firebird2-git/mingw-relocate.patch b/mingw-w64-firebird2-git/mingw-relocate.patch new file mode 100644 index 0000000000..25b6f7fd39 --- /dev/null +++ b/mingw-w64-firebird2-git/mingw-relocate.patch @@ -0,0 +1,739 @@ +--- build-x86_64-w64-mingw32/src/jrd/os/win32/config_root.cpp.orig 2015-06-15 12:46:56.254000000 +0300 ++++ build-x86_64-w64-mingw32/src/jrd/os/win32/config_root.cpp 2015-06-15 13:36:53.609400000 +0300 +@@ -28,6 +28,7 @@ + #include "fb_types.h" + #include "../../../common/classes/fb_string.h" + #include "../../../common/dllinst.h" ++#include "../../../common/pathtools.h" + + #include "../jrd/os/config_root.h" + #include "../utilities/install/registry.h" +@@ -88,7 +89,7 @@ + void ConfigRoot::osConfigRoot() + { + // check the registry first +-#if defined(SUPERCLIENT) ++#if defined(SUPERCLIENT) && !defined(__MINGW32__) + if (getRootFromRegistry(root_dir)) + { + addSlash(); +@@ -125,7 +126,7 @@ + } + + // As a last resort get it from the default install directory +- root_dir = FB_PREFIX; ++ root_dir = single_path_relocation(FB_BINDIR,FB_PREFIX); + } + + void ConfigRoot::osConfigInstallDir() +@@ -159,5 +160,5 @@ + } + + // As a last resort get it from the default install directory +- install_dir = FB_PREFIX; ++ install_dir = single_path_relocation(FB_BINDIR,FB_PREFIX); + } +--- build-x86_64-w64-mingw32/src/jrd/os/win32/path_utils.cpp.orig 2015-06-15 13:09:03.796200000 +0300 ++++ build-x86_64-w64-mingw32/src/jrd/os/win32/path_utils.cpp 2015-06-15 13:09:31.330200000 +0300 +@@ -4,8 +4,11 @@ + #include // _access + + /// The Win32 implementation of the path_utils abstraction. +- ++#if defined(__MINGW32__) ++const char PathUtils::dir_sep = '/'; ++#else + const char PathUtils::dir_sep = '\\'; ++#endif + const char* PathUtils::up_dir_link = ".."; + + class Win32DirItr : public PathUtils::dir_iterator +--- build-x86_64-w64-mingw32/src/common/utils.cpp.orig 2015-06-15 13:03:34.560000000 +0300 ++++ build-x86_64-w64-mingw32/src/common/utils.cpp 2015-06-15 13:33:54.318600000 +0300 +@@ -43,6 +43,7 @@ + #include "../common/utils_proto.h" + #include "../common/classes/locks.h" + #include "../common/classes/init.h" ++#include "../common/pathtools.h" + #include "../jrd/constants.h" + #include "../jrd/os/path_utils.h" + #include "../jrd/os/fbsyslog.h" +@@ -929,9 +929,23 @@ + + #ifndef BOOT_BUILD + const char* configDir[] = { +- FB_BINDIR, FB_SBINDIR, FB_CONFDIR, FB_LIBDIR, FB_INCDIR, FB_DOCDIR, FB_UDFDIR, FB_SAMPLEDIR, +- FB_SAMPLEDBDIR, FB_HELPDIR, FB_INTLDIR, FB_MISCDIR, FB_SECDBDIR, FB_MSGDIR, FB_LOGDIR, +- FB_GUARDDIR, FB_PLUGDIR ++ single_path_relocation(FB_BINDIR,FB_BINDIR), ++ single_path_relocation(FB_BINDIR,FB_SBINDIR), ++ single_path_relocation(FB_BINDIR,FB_CONFDIR), ++ single_path_relocation(FB_BINDIR,FB_LIBDIR), ++ single_path_relocation(FB_BINDIR,FB_INCDIR), ++ single_path_relocation(FB_BINDIR,FB_DOCDIR), ++ single_path_relocation(FB_BINDIR,FB_UDFDIR), ++ single_path_relocation(FB_BINDIR,FB_SAMPLEDIR), ++ single_path_relocation(FB_BINDIR,FB_SAMPLEDBDIR), ++ single_path_relocation(FB_BINDIR,FB_HELPDIR), ++ single_path_relocation(FB_BINDIR,FB_INTLDIR), ++ single_path_relocation(FB_BINDIR,FB_MISCDIR), ++ single_path_relocation(FB_BINDIR,FB_SECDBDIR), ++ single_path_relocation(FB_BINDIR,FB_MSGDIR), ++ single_path_relocation(FB_BINDIR,FB_LOGDIR), ++ single_path_relocation(FB_BINDIR,FB_GUARDDIR), ++ single_path_relocation(FB_BINDIR,FB_PLUGDIR) + }; + + fb_assert(FB_NELEM(configDir) == FB_DIR_LAST); +--- build-x86_64-w64-mingw32/src/jrd/gds.cpp.orig 2015-06-15 13:12:20.423600000 +0300 ++++ build-x86_64-w64-mingw32/src/jrd/gds.cpp 2015-06-15 13:30:56.447400000 +0300 +@@ -56,6 +56,7 @@ + #include "../common/classes/timestamp.h" + #include "../common/classes/init.h" + #include "../common/classes/TempFile.h" ++#include "../common/pathtools.h" + #include "../common/utils_proto.h" + + #ifdef HAVE_UNISTD_H +@@ -3596,13 +3597,13 @@ + { + prefix = Config::getRootDirectory(); + if (prefix.isEmpty() && !GetProgramFilesDir(prefix)) +- prefix = FB_CONFDIR[0] ? FB_CONFDIR : FB_PREFIX; ++ prefix = FB_CONFDIR[0] ? single_path_relocation(FB_BINDIR,FB_CONFDIR) : single_path_relocation(FB_BINDIR,FB_PREFIX); + } + catch (Firebird::fatal_exception&) + { + // CVC: Presumably here we failed because the config file can't be located. + if (!GetProgramFilesDir(prefix)) +- prefix = FB_CONFDIR[0] ? FB_CONFDIR : FB_PREFIX; ++ prefix = FB_CONFDIR[0] ? single_path_relocation(FB_BINDIR,FB_CONFDIR) : single_path_relocation(FB_BINDIR,FB_PREFIX); + } + prefix.copyTo(fb_prefix_val, sizeof(fb_prefix_val)); + fb_prefix = fb_prefix_val; +@@ -3686,7 +3686,7 @@ + Firebird::PathName msgPrefix; + if (!fb_utils::readenv(FB_MSG_ENV, msgPrefix)) + { +- msgPrefix = FB_MSGDIR[0] ? FB_MSGDIR : prefix; ++ msgPrefix = FB_MSGDIR[0] ? single_path_relocation(FB_BINDIR,FB_MSGDIR) : prefix; + } + msgPrefix.copyTo(fb_prefix_msg_val, sizeof(fb_prefix_msg_val)); + fb_prefix_msg = fb_prefix_msg_val; +--- build-x86_64-w64-mingw32/src/common/pathtools.h.orig 1970-01-01 03:00:00.000000000 +0300 ++++ build-x86_64-w64-mingw32/src/common/pathtools.h 2014-10-19 12:49:27.000000000 +0400 +@@ -0,0 +1,53 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#ifndef PATHTOOLS_H ++#define PATHTOOLS_H ++ ++#include ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++ ++char * malloc_copy_string(char const * original); ++ ++/* In-place replaces any '\' with '/' and any '//' with '/' */ ++void sanitise_path(char * path); ++ ++/* Uses a host OS specific function to determine the path of the executable, ++ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ ++int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ ++/* Where possible, in-place removes occourances of '.' and 'path/..' */ ++void simplify_path(char * path); ++ ++/* Allocates (via malloc) and returns the path to get from from to to. */ ++char * get_relative_path(char const * from, char const * to); ++ ++size_t split_path_list(char const * path_list, char split_char, char *** arr); ++ ++/* Advances path along by the amount that removes n prefix folders. */ ++char const * ++strip_n_prefix_folders(char const * path, size_t n); ++ ++/* NULL terminates path to remove n suffix folders. */ ++void ++strip_n_suffix_folders(char * path, size_t n); ++ ++char const * get_relocated_path (char const * from, char const * to, char const * actual_from); ++char * get_relocated_path_list(char const * from, char const * to_path_list); ++ ++char * single_path_relocation(const char *from, const char *to); ++char * pathlist_relocation(const char *from_path, const char *to_path_list); ++ ++#endif /* PATHTOOLS_H */ +--- build-x86_64-w64-mingw32/src/common/pathtools.cpp.orig 1970-01-01 03:00:00.000000000 +0300 ++++ build-x86_64-w64-mingw32/src/common/pathtools.cpp 2014-10-04 16:14:48.000000000 +0400 +@@ -0,0 +1,538 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++#include ++#endif ++#include ++ ++/* If you don't define this, then get_executable_path() ++ can only use argv[0] which will often not work well */ ++#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH ++ ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++/* Nothing needed, unistd.h is enough. */ ++#elif defined(__APPLE__) ++#include ++#elif defined(_WIN32) ++#define WIN32_MEAN_AND_LEAN ++#include ++#include ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ ++#include "pathtools.h" ++ ++char * ++malloc_copy_string(char const * original) ++{ ++ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); ++ if (result != NULL) ++ { ++ strcpy (result, original); ++ } ++ return result; ++} ++ ++void ++sanitise_path(char * path) ++{ ++ size_t path_size = strlen (path); ++ ++ /* Replace any '\' with '/' */ ++ char * path_p = path; ++ while ((path_p = strchr (path_p, '\\')) != NULL) ++ { ++ *path_p = '/'; ++ } ++ /* Replace any '//' with '/' */ ++ path_p = path; ++ while ((path_p = strstr (path_p, "//")) != NULL) ++ { ++ memmove (path_p, path_p + 1, path_size--); ++ } ++ return; ++} ++ ++char * ++get_relative_path(char const * from_in, char const * to_in) ++{ ++ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); ++ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); ++ size_t max_size = (from_size + to_size) * 2 + 4; ++ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); ++ char * from; ++ char * to; ++ char * common_part; ++ char * result; ++ size_t count; ++ ++ /* No to, return "./" */ ++ if (to_in == NULL) ++ { ++ return malloc_copy_string ("./"); ++ } ++ ++ /* If alloca failed or no from was given return a copy of to */ ++ if ( from_in == NULL ++ || scratch_space == NULL ) ++ { ++ return malloc_copy_string (to_in); ++ } ++ ++ from = scratch_space; ++ strcpy (from, from_in); ++ to = from + from_size + 1; ++ strcpy (to, to_in); ++ common_part = to + to_size + 1; ++ result = common_part + max_size; ++ simplify_path (from); ++ simplify_path (to); ++ ++ result[0] = '\0'; ++ ++ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ ++ size_t match_size = 0; /* The running (and final) match size. */ ++ size_t largest_size = (from_size > to_size) ? from_size : to_size; ++ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; ++ char from_c; ++ char to_c; ++ for (match_size = 0; match_size < largest_size; ++match_size) ++ { ++ /* To simplify the logic, always pretend the strings end with '/' */ ++ from_c = (match_size < from_size) ? from[match_size] : '/'; ++ to_c = (match_size < to_size) ? to[match_size] : '/'; ++ ++ if (from_c != to_c) ++ { ++ if (from_c != '\0' || to_c != '\0') ++ { ++ match_size = match_size_dirsep; ++ } ++ break; ++ } ++ else if (from_c == '/') ++ { ++ match_size_dirsep = match_size; ++ } ++ } ++ strncpy (common_part, from, match_size); ++ common_part[match_size] = '\0'; ++ from += match_size; ++ to += match_size; ++ size_t ndotdots = 0; ++ char const* from_last = from + strlen(from) - 1; ++ while ((from = strchr (from, '/')) && from != from_last) ++ { ++ ++ndotdots; ++ ++from; ++ } ++ for (count = 0; count < ndotdots; ++count) ++ { ++ strcat(result, "../"); ++ } ++ if (strlen(to) > 0) ++ { ++ strcat(result, to+1); ++ } ++ /* Make sure that if to ends with '/' result does the same, and ++ vice-versa. */ ++ size_t size_result = strlen(result); ++ if ((to_final_is_slash == 1) ++ && (!size_result || result[size_result-1] != '/')) ++ { ++ strcat (result, "/"); ++ } ++ else if (!to_final_is_slash ++ && size_result && result[size_result-1] == '/') ++ { ++ result[size_result-1] = '\0'; ++ } ++ ++ return malloc_copy_string (result); ++} ++ ++void ++simplify_path(char * path) ++{ ++ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ ++ ssize_t i, j; ++ size_t tok_size; ++ size_t in_size = strlen (path); ++ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; ++ char * result = path; ++ sanitise_path(result); ++ char * result_p = result; ++ ++ do ++ { ++ ++n_toks; ++ ++result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ result_p = result; ++ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); ++ n_toks = 0; ++ do ++ { ++ if (result_p > result) ++ { ++ *result_p++ = '\0'; ++ } ++ else if (*result_p == '/') ++ { ++ /* A leading / creates an empty initial token. */ ++ toks[n_toks++] = result_p; ++ *result_p++ = '\0'; ++ } ++ toks[n_toks++] = result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ /* Remove all non-leading '.' and any '..' we can match ++ with an earlier forward path (i.e. neither '.' nor '..') */ ++ for (i = 1; i < n_toks; ++i) ++ { ++ int removals[2] = { -1, -1 }; ++ if ( strcmp (toks[i], "." ) == 0) ++ { ++ removals[0] = i; ++ } ++ else if ( strcmp (toks[i], ".." ) == 0) ++ { ++ /* Search backwards for a forward path to collapse. ++ If none are found then the .. also stays. */ ++ for (j = i - 1; j > -1; --j) ++ { ++ if ( strcmp (toks[j], "." ) ++ && strcmp (toks[j], ".." ) ) ++ { ++ removals[0] = j; ++ removals[1] = i; ++ break; ++ } ++ } ++ } ++ for (j = 0; j < 2; ++j) ++ { ++ if (removals[j] >= 0) /* Can become -2 */ ++ { ++ --n_toks; ++ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); ++ --i; ++ if (!j) ++ { ++ --removals[1]; ++ } ++ } ++ } ++ } ++ result_p = result; ++ for (i = 0; i < n_toks; ++i) ++ { ++ tok_size = strlen(toks[i]); ++ memcpy (result_p, toks[i], tok_size); ++ result_p += tok_size; ++ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) ++ { ++ *result_p = '/'; ++ ++result_p; ++ } ++ } ++ *result_p = '\0'; ++} ++ ++/* Returns actual_to by calculating the relative path from -> to and ++ applying that to actual_from. An assumption that actual_from is a ++ dir is made, and it may or may not end with a '/' */ ++char const * ++get_relocated_path (char const * from, char const * to, char const * actual_from) ++{ ++ char const * relative_from_to = get_relative_path (from, to); ++ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); ++ return actual_to; ++} ++ ++int ++get_executable_path(char const * argv0, char * result, ssize_t max_size) ++{ ++ char * system_result = (char *) alloca (max_size); ++ ssize_t system_result_size = -1; ++ ssize_t result_size = -1; ++ ++ if (system_result != NULL) ++ { ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++ system_result_size = readlink("/proc/self/exe", system_result, max_size); ++#elif defined(__APPLE__) ++ uint32_t bufsize = (uint32_t)max_size; ++ if (_NSGetExecutablePath(system_result, &bufsize) == 0) ++ { ++ system_result_size = (ssize_t)bufsize; ++ } ++#elif defined(_WIN32) ++ unsigned long bufsize = (unsigned long)max_size; ++ system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); ++ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) ++ { ++ /* Error, possibly not enough space. */ ++ system_result_size = -1; ++ } ++ else ++ { ++ /* Early conversion to unix slashes instead of more changes ++ everywhere else .. */ ++ char * winslash; ++ system_result[system_result_size] = '\0'; ++ while ((winslash = strchr (system_result, '\\')) != NULL) ++ { ++ *winslash = '/'; ++ } ++ } ++#else ++#warning "Don't know how to get executable path on this system" ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ } ++ /* Use argv0 as a default in-case of failure */ ++ if (system_result_size != -1) ++ { ++ strncpy (result, system_result, system_result_size); ++ result[system_result_size] = '\0'; ++ } ++ else ++ { ++ if (argv0 != NULL) ++ { ++ strncpy (result, argv0, max_size); ++ result[max_size-1] = '\0'; ++ } ++ else ++ { ++ result[0] = '\0'; ++ } ++ } ++ result_size = strlen (result); ++ return result_size; ++} ++ ++char const * ++strip_n_prefix_folders(char const * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return NULL; ++ } ++ ++ if (path[0] != '/') ++ { ++ return path; ++ } ++ ++ char const * last = path; ++ while (n-- && path != NULL) ++ { ++ last = path; ++ path = strchr (path + 1, '/'); ++ } ++ return (path == NULL) ? last : path; ++} ++ ++void ++strip_n_suffix_folders(char * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return; ++ } ++ while (n--) ++ { ++ if (strrchr (path + 1, '/')) ++ { ++ *strrchr (path + 1, '/') = '\0'; ++ } ++ else ++ { ++ return; ++ } ++ } ++ return; ++} ++ ++size_t ++split_path_list(char const * path_list, char split_char, char *** arr) ++{ ++ size_t path_count; ++ size_t path_list_size; ++ char const * path_list_p; ++ ++ path_list_p = path_list; ++ if (path_list == NULL || path_list[0] == '\0') ++ { ++ return 0; ++ } ++ path_list_size = strlen (path_list); ++ ++ path_count = 0; ++ do ++ { ++ ++path_count; ++ ++path_list_p; ++ } ++ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); ++ ++ /* allocate everything in one go. */ ++ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); ++ if (all_memory == NULL) ++ return 0; ++ *arr = (char **)all_memory; ++ all_memory += sizeof (char *) * path_count; ++ ++ path_count = 0; ++ path_list_p = path_list; ++ char const * next_path_list_p = 0; ++ do ++ { ++ next_path_list_p = strchr (path_list_p, split_char); ++ if (next_path_list_p != NULL) ++ { ++ ++next_path_list_p; ++ } ++ size_t this_size = (next_path_list_p != NULL) ++ ? next_path_list_p - path_list_p - 1 ++ : &path_list[path_list_size] - path_list_p; ++ memcpy (all_memory, path_list_p, this_size); ++ all_memory[this_size] = '\0'; ++ (*arr)[path_count++] = all_memory; ++ all_memory += this_size + 1; ++ } while ((path_list_p = next_path_list_p) != NULL); ++ ++ return path_count; ++} ++ ++char * ++get_relocated_path_list(char const * from, char const * to_path_list) ++{ ++ char exe_path[MAX_PATH]; ++ char * temp; ++ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ if ((temp = strrchr (exe_path, '/')) != NULL) ++ { ++ temp[1] = '\0'; ++ } ++ ++ char **arr = NULL; ++ /* Ask Alexey why he added this. Are we not 100% sure ++ that we're dealing with unix paths here? */ ++ char split_char = ':'; ++ if (strchr (to_path_list, ';')) ++ { ++ split_char = ';'; ++ } ++ size_t count = split_path_list (to_path_list, split_char, &arr); ++ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ ++ size_t exe_path_size = strlen (exe_path); ++ size_t i; ++ /* Space required is: ++ count * (exe_path_size + strlen (rel_to_datadir)) ++ rel_to_datadir upper bound is: ++ (count * strlen (from)) + (3 * num_slashes (from)) ++ + strlen(arr[i]) + 1. ++ .. pathalogically num_slashes (from) is strlen (from) ++ (from = ////////) */ ++ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; ++ for (i = 0; i < count; ++i) ++ { ++ space_required += strlen (arr[i]); ++ } ++ char * scratch = (char *) alloca (space_required); ++ if (scratch == NULL) ++ return NULL; ++ for (i = 0; i < count; ++i) ++ { ++ char * rel_to_datadir = get_relative_path (from, arr[i]); ++ scratch[0] = '\0'; ++ arr[i] = scratch; ++ strcat (scratch, exe_path); ++ strcat (scratch, rel_to_datadir); ++ simplify_path (arr[i]); ++ size_t arr_i_size = strlen (arr[i]); ++ result_size += arr_i_size; ++ scratch = arr[i] + arr_i_size + 1; ++ } ++ char * result = (char *) malloc (result_size); ++ if (result == NULL) ++ { ++ return NULL; ++ } ++ result[0] = '\0'; ++ for (i = 0; i < count; ++i) ++ { ++ strcat (result, arr[i]); ++ if (i != count-1) ++ { ++#if defined(_WIN32) ++ strcat (result, ";"); ++#else ++ strcat (result, ":"); ++#endif ++ } ++ } ++ free ((void*)arr); ++ return result; ++} ++ ++char * ++single_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} +--- build-x86_64-w64-mingw32/builds/posix/make.shared.variables.orig 2015-06-15 13:46:24.032800000 +0300 ++++ build-x86_64-w64-mingw32/builds/posix/make.shared.variables 2015-06-15 13:50:57.703600000 +0300 +@@ -259,7 +259,7 @@ + # common + + FBCOMMON_ClientFiles = fb_exception.cpp thd.cpp classes/MetaName.cpp StatusHolder.cpp classes/init.cpp StatusArg.cpp +-FBCOMMON_ServerFiles = utils.cpp ++FBCOMMON_ServerFiles = utils.cpp pathtools.cpp + + FBCOMMON_ClientObjects = $(addprefix $(OBJ)/common/, $(addsuffix .o, $(basename $(FBCOMMON_ClientFiles)))) \ + $(addprefix $(OBJ)/jrd/, $(addsuffix .o, $(basename fbsyslog.cpp))) +@@ -287,7 +287,7 @@ + # just in case if make.platform defined some files + OS_SPECIFIC_Files += config_root.cpp path_utils.cpp mod_loader.cpp guid.cpp os_utils.cpp + +-OS_SPECIFIC_Sources = $(addprefix jrd/, $(OS_SPECIFIC_Files)) common/dllinst.cpp ++OS_SPECIFIC_Sources = $(addprefix jrd/, $(OS_SPECIFIC_Files)) common/dllinst.cpp common/pathtools.cpp + ifneq ($(strip @BINRELOC_CFLAGS@),) + OS_SPECIFIC_Sources += $(ROOT)/extern/binreloc/binreloc.c + endif diff --git a/mingw-w64-firebird2-git/mingw-w64-2_5.patch b/mingw-w64-firebird2-git/mingw-w64-2_5.patch new file mode 100644 index 0000000000..c4a269a8e2 --- /dev/null +++ b/mingw-w64-firebird2-git/mingw-w64-2_5.patch @@ -0,0 +1,1858 @@ +From 3e38f9f7ec8f010fcbdab60b768d2c5e27b49ae7 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 07:39:37 +0300 +Subject: [PATCH] Remove hardcoded march to allow 64-bit builds. + +--- + builds/posix/prefix.mingw | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw +index fd36abe..04e0978 100644 +--- a/builds/posix/prefix.mingw ++++ b/builds/posix/prefix.mingw +@@ -20,8 +20,8 @@ + # + + # -Wno-unused-variable is used due to unused gpre generated variables +-PROD_FLAGS=-O2 -march=i586 -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads +-DEV_FLAGS=-ggdb -march=i586 -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads ++PROD_FLAGS=-O2 -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads ++DEV_FLAGS=-ggdb -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads + + PLATFORM_PATH=os/win32 + +-- +2.4.3 + +From 0ed8f717543788f0c38324f4bcc550ff4e8025a0 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 06:18:02 +0300 +Subject: [PATCH] Always use Win32 threads for mingw. + +--- + src/jrd/common.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/jrd/common.h b/src/jrd/common.h +index 875040f..ca57c71 100644 +--- a/src/jrd/common.h ++++ b/src/jrd/common.h +@@ -65,7 +65,7 @@ + #include + #endif + +-#if defined(_POSIX_THREADS) && _POSIX_THREADS >= 200112L ++#if defined(_POSIX_THREADS) && _POSIX_THREADS >= 200112L && !defined(WIN_NT) + // above check is generally true. However, we use pthreads on some platforms + // where _POSIX_THREADS is defined to "1" or not even defined at all! + #define USE_POSIX_THREADS +-- +2.4.3 + +From 45d71e7fa21beeb444a5e3b8c60207db1b6cf38f Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 08:56:28 +0300 +Subject: [PATCH] Define AMD64 for 64-bit mingw. + +--- + configure.in | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/configure.in b/configure.in +index 86e89f1..d345348 100644 +--- a/configure.in ++++ b/configure.in +@@ -463,7 +463,12 @@ dnl CPU_TYPE=ppc64 + EDITLINE_FLG=N + RAW_DEVICES_FLG=N + SHRLIB_EXT=dll +- ICU_PLATFORM=MinGW ++ ICU_PLATFORM=MinGW ++ case "$target" in ++ x86_64-*-mingw*) ++ AC_DEFINE(AMD64, 1, [Define this if CPU is amd64]) ++ ;; ++ esac + ;; + + *) +-- +2.4.3 + +From 56c1e99e9eb1fe8c1e822132332c72a9e6fd97b6 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 09:20:35 +0300 +Subject: [PATCH] mingw-w64 have isinf + +--- + src/common/classes/FpeControl.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/common/classes/FpeControl.h b/src/common/classes/FpeControl.h +index e0e36ac..363cad5 100644 +--- a/src/common/classes/FpeControl.h ++++ b/src/common/classes/FpeControl.h +@@ -217,7 +217,7 @@ private: + + + // getting a portable isinf() is harder than you would expect +-#ifdef WIN_NT ++#if defined(WIN_NT) && !defined(__MINGW32__) + inline bool isinf(double x) + { + return (!_finite (x) && !isnan(x)); +-- +2.4.3 + +From 68681019a2aa6c93f1ec99fa368df23578f3f6bc Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 09:57:27 +0300 +Subject: [PATCH] Fix cast error. + +--- + src/remote/inet.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/remote/inet.cpp b/src/remote/inet.cpp +index c3816a8..f05de04 100644 +--- a/src/remote/inet.cpp ++++ b/src/remote/inet.cpp +@@ -1851,7 +1851,7 @@ static void wsaExitHandler(void*) + } + + +-static int fork(SOCKET old_handle, USHORT flag) ++static int fork(SOCKET old_handle, DWORD flag) + { + /************************************** + * +@@ -1908,7 +1908,7 @@ static int fork(SOCKET old_handle, USHORT flag) + + THREAD_ENTRY_DECLARE forkThread(THREAD_ENTRY_PARAM arg) + { +- const USHORT flag = (USHORT) arg; ++ const DWORD flag = (uintptr_t) arg; + + while (!INET_shutting_down) + { +-- +2.4.3 + +From e9aa5ea0fb2ed70f036c13eb17821242c3482c7d Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 10:08:42 +0300 +Subject: [PATCH] mingw-w64 don't need hack for SecPkgContext_AccessToken + +--- + src/auth/trusted/AuthSspi.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/auth/trusted/AuthSspi.cpp b/src/auth/trusted/AuthSspi.cpp +index d420041..15b859c 100644 +--- a/src/auth/trusted/AuthSspi.cpp ++++ b/src/auth/trusted/AuthSspi.cpp +@@ -87,7 +87,7 @@ AuthSspi::~AuthSspi() + + bool AuthSspi::checkAdminPrivilege(PCtxtHandle phContext) const + { +-#if defined (__GNUC__) ++#if defined (__GNUC__) && !defined(__MINGW64_VERSION_MAJOR) + // ASF: MinGW hack. + struct SecPkgContext_AccessToken + { +-- +2.4.3 + +From 574e99459f6bec4857fcf459628651ca8f2b3b98 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 10:09:19 +0300 +Subject: [PATCH] Use modern ICU libraries when link with system wide ICU. + +--- + builds/posix/prefix.mingw | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw +index 04e0978..7523670 100644 +--- a/builds/posix/prefix.mingw ++++ b/builds/posix/prefix.mingw +@@ -19,6 +19,10 @@ + # 2003-Sep-27 BRS Removed IPSERVER after XNET is included + # + ++ifeq ($(STD_ICU),true) ++ ICU_LIBS= -licuuc -licudt -licuin ++endif ++ + # -Wno-unused-variable is used due to unused gpre generated variables + PROD_FLAGS=-O2 -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads + DEV_FLAGS=-ggdb -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads +-- +2.4.3 + +From 57b07ada01bcfa4deb9da61563823b184e5bbb10 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 13:28:03 +0300 +Subject: [PATCH] mingw-w64 don't have win98 support. + +--- + src/common/classes/locks.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/common/classes/locks.cpp b/src/common/classes/locks.cpp +index bbb9440..de6b2f8 100644 +--- a/src/common/classes/locks.cpp ++++ b/src/common/classes/locks.cpp +@@ -28,7 +28,7 @@ + #include "../../include/firebird.h" + #include "../../jrd/common.h" + +-#if defined(WIN_NT) ++#if defined(WIN_NT) && !defined(__MINGW64_VERSION_MAJOR) + // minimum win32 version: win98 / winnt4 SP3 + #define _WIN32_WINNT 0x0403 + #endif +-- +2.4.3 + +From f334249bd5d7ca5947940488d7b210f096e2d64d Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 15:47:34 +0300 +Subject: [PATCH] Fix using function pointer. + +--- + src/common/classes/locks.cpp | 2 +- + src/common/classes/locks.h | 7 +++---- + 2 files changed, 4 insertions(+), 5 deletions(-) + +diff --git a/src/common/classes/locks.cpp b/src/common/classes/locks.cpp +index de6b2f8..321da36 100644 +--- a/src/common/classes/locks.cpp ++++ b/src/common/classes/locks.cpp +@@ -124,7 +124,7 @@ BOOL WINAPI TryEnterCriticalSection_Win9X(CRITICAL_SECTION* cs) + + // On Win 98 and Win ME TryEnterCriticalSection is defined, but not implemented + // So direct linking to it won't hurt and will signal our incompatibility with Win 95 +-TryEnterCS::tTryEnterCriticalSection* TryEnterCS::m_funct = &TryEnterCriticalSection; ++TryEnterCS::tTryEnterCriticalSection TryEnterCS::m_funct = TryEnterCriticalSection; + + static TryEnterCS tryEnterCS; + +diff --git a/src/common/classes/locks.h b/src/common/classes/locks.h +index 75ba194..d2ddb7d 100644 +--- a/src/common/classes/locks.h ++++ b/src/common/classes/locks.h +@@ -60,14 +60,13 @@ public: + + static bool tryEnter(LPCRITICAL_SECTION lpCS) + { +- return ((*m_funct) (lpCS) == TRUE); ++ return ((m_funct) (lpCS) == TRUE); + } + + private: +- typedef WINBASEAPI BOOL WINAPI tTryEnterCriticalSection +- (LPCRITICAL_SECTION lpCriticalSection); ++ typedef BOOL WINAPI (*tTryEnterCriticalSection)(LPCRITICAL_SECTION lpCriticalSection); + +- static tTryEnterCriticalSection* m_funct; ++ static tTryEnterCriticalSection m_funct; + }; + + class Mutex +-- +2.4.3 + +From 30e30e96daf43c5dcb42bd3c57d8df362589bb59 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 18:54:37 +0300 +Subject: [PATCH] Fix redefinition of matherr. + +--- + src/extlib/ib_udf.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/extlib/ib_udf.cpp b/src/extlib/ib_udf.cpp +index c5a620d..9017228 100644 +--- a/src/extlib/ib_udf.cpp ++++ b/src/extlib/ib_udf.cpp +@@ -50,10 +50,12 @@ extern "C" + #else + #define exception_type __exception + #endif ++#ifndef matherr + int MATHERR(struct exception_type*) + { + return 1; + } ++#endif + #undef exception_type + #endif /* SOLARIS */ + #endif //__ICC +-- +2.4.3 + +From e5e3455760e07ced13c9c91b7aaa2e3116ace50d Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 21:44:53 +0300 +Subject: [PATCH] Don't export gds__print_pool as it not part of API according + to gds_proto.h:135 + +--- + src/jrd/gds.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/jrd/gds.cpp b/src/jrd/gds.cpp +index e3949fc..0b6852f 100644 +--- a/src/jrd/gds.cpp ++++ b/src/jrd/gds.cpp +@@ -1226,7 +1226,7 @@ void API_ROUTINE gds__log(const TEXT* text, ...) + #endif + } + +-void API_ROUTINE gds__print_pool(MemoryPool* pool, const TEXT* text, ...) ++void gds__print_pool(MemoryPool* pool, const TEXT* text, ...) + { + /************************************** + * +-- +2.4.3 + +From e3a94cfa6fe9686da6639b9605b7623c0aa960ac Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 19 Nov 2014 22:06:27 +0300 +Subject: [PATCH] mingw-w64 have fenv.h + +--- + src/common/classes/FpeControl.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/common/classes/FpeControl.h b/src/common/classes/FpeControl.h +index 363cad5..93e48be 100644 +--- a/src/common/classes/FpeControl.h ++++ b/src/common/classes/FpeControl.h +@@ -30,7 +30,7 @@ + #define CLASSES_FPE_CONTROL_H + + #include +-#if defined(WIN_NT) ++#if defined(_MSC_VER) + #include + #else + #include +@@ -78,7 +78,7 @@ public: + } + } + +-#if defined(WIN_NT) ++#if defined(_MSC_VER) + static void maskAll() throw() + { + _clearfp(); // always call _clearfp() before setting control word +-- +2.4.3 + +From 3ac3bbf82501f0b70b07cb5a1834885524b19763 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Fri, 21 Nov 2014 12:38:29 +0300 +Subject: [PATCH] Fix cast error for 64-bit. + +--- + src/remote/os/win32/srvr_w32.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/remote/os/win32/srvr_w32.cpp b/src/remote/os/win32/srvr_w32.cpp +index fd0f75c..a0bf167 100644 +--- a/src/remote/os/win32/srvr_w32.cpp ++++ b/src/remote/os/win32/srvr_w32.cpp +@@ -269,7 +269,7 @@ int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE /*hPrevInst*/, LPSTR lpszArgs, + else if (server_flag & SRVR_wnet) + port = WNET_reconnect(connection_handle, status_vector); + else if (server_flag & SRVR_xnet) +- port = XNET_reconnect((ULONG) connection_handle, status_vector); ++ port = XNET_reconnect((ULONG_PTR) connection_handle, status_vector); + + if (port) { + service_connection(port); +-- +2.4.3 + +From ceda81a2ad529ef0711bfa7136b053637d97f760 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Fri, 21 Nov 2014 14:21:32 +0300 +Subject: [PATCH] Fix source extension. + +--- + builds/posix/prefix.mingw | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw +index 7523670..ac1327c 100644 +--- a/builds/posix/prefix.mingw ++++ b/builds/posix/prefix.mingw +@@ -31,7 +31,7 @@ PLATFORM_PATH=os/win32 + + OS_SPECIFIC_Files=thd_priority.cpp + +-OS_ServerFiles= os/win32/srvr_w32 os/win32/window.cpp os/win32/chop.cpp os/win32/property.cpp os/win32/cntl.cpp ++OS_ServerFiles= os/win32/srvr_w32.cpp os/win32/window.cpp os/win32/chop.cpp os/win32/property.cpp os/win32/cntl.cpp + + # Override link command for implicit stdc++ linking + LIB_LINK=$(LD) +-- +2.4.3 + +From 9405c09c70b553e49e7fe385386aba1fb3225d3e Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Sat, 22 Nov 2014 12:03:41 +0300 +Subject: [PATCH] Move extra mingw sources definitions for fbintl to + Makefile.in.intl + +--- + builds/posix/Makefile.in.intl | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/builds/posix/Makefile.in.intl b/builds/posix/Makefile.in.intl +index 57ecb34..8d1e4e4 100644 +--- a/builds/posix/Makefile.in.intl ++++ b/builds/posix/Makefile.in.intl +@@ -52,6 +52,13 @@ INTL_Files1= ld.cpp cv_narrow.cpp \ + cs_ksc.cpp cv_ksc.cpp lc_ksc.cpp \ + cs_icu.cpp cv_icu.cpp lc_icu.cpp + ++ifeq ($(PLATFORM),win32) ++INTL_Files2 += $(FBCONFIG_Sources) \ ++ $(FBCLASSES_MsgSources) \ ++ $(OS_SPECIFIC_Sources) \ ++ jrd/isc.cpp jrd/gds.cpp \ ++ common/utils.cpp ++endif + # use INTL_Files2 in prefix file for host-specific additional files + INTL_Sources= $(addprefix intl/, $(INTL_Files1)) $(INTL_Files2) \ + jrd/IntlUtil.cpp jrd/unicode_util.cpp jrd/CharSet.cpp jrd/mod_loader.cpp +@@ -61,7 +68,7 @@ INTL_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(INTL_Sources))) + # SD: Shared variables are overriden to exclude extra files and + # this way fix 'unresolved symbol' errors when some unused routines call + # other routines from not included modules +-FBCLASSES_ClientFiles=alloc.cpp locks.cpp fb_string.cpp timestamp.cpp ++FBCLASSES_ClientFiles=alloc.cpp locks.cpp fb_string.cpp timestamp.cpp TempFile.cpp + + + AllObjects = $(INTL_Objects) +-- +2.4.3 + +From a3a93057d7dec63d04e583080c47009466b9eb2a Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Sat, 22 Nov 2014 22:59:59 +0300 +Subject: [PATCH] Add missing sources for utils building. + +--- + builds/posix/Makefile.in.client.gsec | 2 +- + builds/posix/Makefile.in.client.util | 4 ++-- + builds/posix/Makefile.in.embed.util | 8 ++++---- + builds/posix/Makefile.in.fbtrace | 2 +- + 4 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/builds/posix/Makefile.in.client.gsec b/builds/posix/Makefile.in.client.gsec +index 2efa520..803ea4f 100644 +--- a/builds/posix/Makefile.in.client.gsec ++++ b/builds/posix/Makefile.in.client.gsec +@@ -29,7 +29,7 @@ include $(ROOT)/gen/make.shared.variables + + @SET_MAKE@ + +-GSEC_Other_Sources = jrd/isc_file.cpp jrd/ThreadData.cpp common/UtilSvc.cpp jrd/enc.cpp \ ++GSEC_Other_Sources = jrd/isc.cpp jrd/isc_file.cpp jrd/ThreadData.cpp common/UtilSvc.cpp jrd/enc.cpp \ + jrd/sha.cpp jrd/guid.cpp + GSEC_Files = gsec.cpp call_service.cpp gsecMain.cpp security.cpp + GSEC_Sources = $(addprefix utilities/gsec/, $(GSEC_Files)) $(GSEC_Other_Sources) +diff --git a/builds/posix/Makefile.in.client.util b/builds/posix/Makefile.in.client.util +index dab8911..70bfab7 100644 +--- a/builds/posix/Makefile.in.client.util ++++ b/builds/posix/Makefile.in.client.util +@@ -40,14 +40,14 @@ include $(ROOT)/gen/make.shared.variables + @SET_MAKE@ + + +-LOCKPRINT_Other_Sources = jrd/isc_sync.cpp jrd/isc.cpp jrd/db_alias.cpp \ ++LOCKPRINT_Other_Sources = jrd/isc_ipc.cpp jrd/isc_sync.cpp jrd/isc.cpp jrd/db_alias.cpp \ + common/config/config.cpp common/config/config_file.cpp $(OS_SPECIFIC_Sources) + LOCKPRINT_Files= print.cpp + LOCKPRINT_Sources = $(addprefix lock/, $(LOCKPRINT_Files)) $(LOCKPRINT_Other_Sources) + LOCKPRINT_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(LOCKPRINT_Sources)))) \ + $(FBCONFIG_Objects) + +-NBACKUP_Other_Sources = jrd/isc_file.cpp jrd/db_alias.cpp common/UtilSvc.cpp $(OS_SPECIFIC_Sources) ++NBACKUP_Other_Sources = jrd/isc.cpp jrd/isc_file.cpp jrd/db_alias.cpp common/UtilSvc.cpp $(OS_SPECIFIC_Sources) + NBACKUP_Files= nbackup.cpp nbackup/nbkMain.cpp + NBACKUP_Sources = $(addprefix utilities/, $(NBACKUP_Files)) $(NBACKUP_Other_Sources) + NBACKUP_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(NBACKUP_Sources)))) \ +diff --git a/builds/posix/Makefile.in.embed.util b/builds/posix/Makefile.in.embed.util +index 3d1a98f..8488a05 100644 +--- a/builds/posix/Makefile.in.embed.util ++++ b/builds/posix/Makefile.in.embed.util +@@ -40,7 +40,7 @@ include $(ROOT)/gen/make.shared.variables + @SET_MAKE@ + + +-LOCKPRINT_Other_Sources += jrd/isc_sync.cpp jrd/isc.cpp jrd/db_alias.cpp \ ++LOCKPRINT_Other_Sources += jrd/isc_ipc.cpp jrd/isc_sync.cpp jrd/isc.cpp jrd/db_alias.cpp \ + $(OS_SPECIFIC_Sources) + + LOCKPRINT_Files= print.cpp +@@ -48,7 +48,7 @@ LOCKPRINT_Sources = $(addprefix lock/, $(LOCKPRINT_Files)) $(LOCKPRINT_Other_Sou + LOCKPRINT_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(LOCKPRINT_Sources)))) \ + $(FBCONFIG_Objects) + +-NBACKUP_Other_Sources = jrd/isc_file.cpp jrd/db_alias.cpp common/UtilSvc.cpp $(OS_SPECIFIC_Sources) ++NBACKUP_Other_Sources = jrd/isc.cpp jrd/isc_file.cpp jrd/db_alias.cpp common/UtilSvc.cpp $(OS_SPECIFIC_Sources) + + NBACKUP_Files= nbackup.cpp nbackup/nbkMain.cpp + NBACKUP_Sources = $(addprefix utilities/, $(NBACKUP_Files)) $(NBACKUP_Other_Sources) +@@ -65,7 +65,7 @@ DROP_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(DROP_Sources))) + + + GSEC_Other_Sources = jrd/enc.cpp jrd/sha.cpp jrd/guid.cpp \ +-jrd/isc_file.cpp common/config/config.cpp common/config/config_file.cpp \ ++jrd/isc.cpp jrd/isc_file.cpp common/config/config.cpp common/config/config_file.cpp \ + common/config/dir_list.cpp \ + common/UtilSvc.cpp jrd/ThreadData.cpp \ + $(OS_SPECIFIC_Sources) +@@ -76,7 +76,7 @@ GSEC_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(GSEC_Sources))) + + + GSTAT_Other_Sources = jrd/btn.cpp jrd/db_alias.cpp common/utils.cpp jrd/ods.cpp \ +-common/UtilSvc.cpp jrd/ThreadData.cpp jrd/isc_file.cpp $(OS_SPECIFIC_Sources) ++common/UtilSvc.cpp jrd/ThreadData.cpp jrd/isc.cpp jrd/isc_file.cpp $(OS_SPECIFIC_Sources) + + GSTAT_Files = dba.epp ppg.cpp gstatMain.cpp + GSTAT_Sources = $(addprefix utilities/gstat/, $(GSTAT_Files)) $(GSTAT_Other_Sources) +diff --git a/builds/posix/Makefile.in.fbtrace b/builds/posix/Makefile.in.fbtrace +index 0f1a09e..daee0d8 100644 +--- a/builds/posix/Makefile.in.fbtrace ++++ b/builds/posix/Makefile.in.fbtrace +@@ -49,7 +49,7 @@ FBTRACE_UTIL_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(FBTRACE + + + FBTRACE_OTHER_Sources = $(OS_SPECIFIC_Sources) $(TRACE_OS_Sources) \ +- jrd/isc.cpp jrd/isc_file.cpp jrd/CharSet.cpp jrd/TextType.cpp \ ++ jrd/isc.cpp jrd/isc_file.cpp jrd/isc_sync.cpp jrd/CharSet.cpp jrd/TextType.cpp \ + jrd/IntlUtil.cpp jrd/unicode_util.cpp common/classes/ClumpletReader.cpp common/utils.cpp + + FBTRACE_OTHER_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(FBTRACE_OTHER_Sources)))) +-- +2.4.3 + +From d671d8b1d4bec4683c3be258afacacbc47f640cc Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Sun, 23 Nov 2014 00:13:24 +0300 +Subject: [PATCH] smtp_server: Add win32 platform files. + +--- + builds/posix/Makefile.in.inet_server | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/builds/posix/Makefile.in.inet_server b/builds/posix/Makefile.in.inet_server +index d59b07a..ad471fd 100644 +--- a/builds/posix/Makefile.in.inet_server ++++ b/builds/posix/Makefile.in.inet_server +@@ -40,6 +40,9 @@ include $(ROOT)/gen/make.shared.variables + + SERVER_Files = server_stub.cpp + SERVER_Sources = $(addprefix remote/, $(SERVER_Files)) ++ifeq ($(PLATFORM),win32) ++SERVER_Sources += utilities/nbackup/nbkMain.cpp common/UtilSvc.cpp ++endif + SERVER_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(SERVER_Sources)))) + + AllObjects = $(SERVER_Objects) +-- +2.4.3 + +From 5cba22ce0e704841f7b808298a8d60a86aa10425 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Sun, 23 Nov 2014 13:27:02 +0300 +Subject: [PATCH] Fix building net_server and mp_server with mingw + +--- + builds/posix/Makefile.in.inet_server | 4 ++-- + builds/posix/Makefile.in.smp_server | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/builds/posix/Makefile.in.inet_server b/builds/posix/Makefile.in.inet_server +index ad471fd..99ddd19 100644 +--- a/builds/posix/Makefile.in.inet_server ++++ b/builds/posix/Makefile.in.inet_server +@@ -54,8 +54,8 @@ Dependencies = $(AllObjects:.o=.d) + # but we must ensure it's existance + fb_inet_server : $(LIBFBEMBED_SO) $(FB_CLASSIC_SERVER) + +-$(FB_CLASSIC_SERVER): $(SERVER_Objects) +- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LIB_GUI) $(LINK_LIBS) ++$(FB_CLASSIC_SERVER): $(SERVER_Objects) $(COMMON_Objects) $(CLUMPLETS_Objects) $(FBCONFIG_Objects) $(OS_SPECIFIC_Objects) $(DSQL_Objects) $(BURP_Objects) $(ALICE_Objects) $(LOCK_Objects) $(INTERFACE_Objects) $(NBACKUP_SERVER_Objects) $(NTRACE_SERVER_Objects) $(SECURITY_Objects) $(JRD_Objects) ++ $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LIB_GUI) $(ICU_LIBS) $(LINK_LIBS) + + include $(ROOT)/gen/make.shared.targets + +diff --git a/builds/posix/Makefile.in.smp_server b/builds/posix/Makefile.in.smp_server +index 1bc3872..f386021 100644 +--- a/builds/posix/Makefile.in.smp_server ++++ b/builds/posix/Makefile.in.smp_server +@@ -59,8 +59,8 @@ $(OS_SPECIFIC_Objects) + + fb_smp_server: $(FB_DAEMON) + +-$(FB_DAEMON): $(SERVER_Objects) +- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS) ++$(FB_DAEMON): $(SERVER_Objects) $(DSQL_Objects) $(BURP_Objects) $(ALICE_Objects) $(JRD_Objects) $(LOCK_Objects) $(INTERFACE_Objects) $(SECURITY_Objects) $(NBACKUP_SERVER_Objects) $(NTRACE_SERVER_Objects) ++ $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LIB_GUI) $(LINK_LIBS) $(ICU_LIBS) + + AllObjects = $(SERVER_Objects) + +-- +2.4.3 + +From 715f7f59c04684720bd120c87a905052aececc92 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 26 Nov 2014 09:27:40 +0300 +Subject: [PATCH] For mingw place dll's into BIN and generate import libraries + in LIB. Don't link with def files. + +--- + builds/posix/make.defaults | 13 +++++++------ + builds/posix/prefix.mingw | 38 ++++++++++++++++++++++++-------------- + 2 files changed, 31 insertions(+), 20 deletions(-) + +diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults +index bced0da..34fd3e9 100755 +@@ -93,6 +93,11 @@ + + CpuType=@CPU_TYPE@ + ++ifeq ($(CpuType), x86_64) ++ BITNESS_SUFFIX := 64 ++else ++ BITNESS_SUFFIX := 32 ++endif + PLATFORM=@PLATFORM@ + ifeq (@FIREBIRD_ARCH_TYPE@,classic) + ArchPrefix=CS +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -193,9 +193,9 @@ BLRTABLE = $(BIN)/blrtable$(EXEC_EXT) + # Scold me, but I don't want library names to be in configure.in + # + +-SharedLibraryName=libfbembed.${SHRLIB_EXT}.${FirebirdVersion} +-SharedLibrarySoName=libfbembed.${SHRLIB_EXT}.${MajorVer}.${MinorVer} +-SharedLibraryBaseName=libfbembed.${SHRLIB_EXT} ++SharedLibraryBaseName=$(LIB_PREFIX)fbembed.${SHRLIB_EXT} ++SharedLibraryName=${SharedLibraryBaseName}.${FirebirdVersion} ++SharedLibrarySoName=${SharedLibraryBaseName}.${MajorVer}.${MinorVer} + + LIBFBEMBED_SO = $(LIB)/$(SharedLibraryName) + LIBFBEMBED_SOBASENAME = $(LIB)/$(SharedLibrarySoName) +@@ -261,6 +261,7 @@ LIB_LINK_RPATH = $(call LIB_PLATFORM_RPATH,'$$$$ORIGIN/../$(1)') + endif + LIB_PATH_OPTS = $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_RPATH,intl) + LIB_LINK_SONAME= -Wl,-soname,$(1) ++LIB_LINK_IMPLIB= + LIB_LINK_MAPFILE= -Wl,--version-script, + FBEMBED_LINK= -L$(LIB) -lfbembed + +@@ -281,7 +282,7 @@ LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_ + LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util + + LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS)\ +- $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) ++ $(call LIB_LINK_IMPLIB,$(LIB)/lib$(IbUtilLibraryName).a) $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) + LINK_IB_UTIL_LIBS = $(THR_LIBS) + + LINK_INTL = $(LIB_LINK) $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS)\ +@@ -293,11 +294,11 @@ LINK_TRACE = $(LIB_LINK) $(LINK_TRACE_SYMBOLS) $(LIB_LINK_OPTIONS)\ + LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) + + LINK_CLIENT = $(CLIENTLIB_LINK) $(LINK_FIREBIRD_CLIENT_SYMBOLS) $(LIB_LINK_OPTIONS)\ +- $(LIB_LINK_IMPLIB) $(call LIB_LINK_SONAME,$(ClientLibrarySoName)) $(call LIB_LINK_RPATH,lib) ++ $(call LIB_LINK_IMPLIB,$(LIB)/lib$(ClientLibraryName).a) $(call LIB_LINK_SONAME,$(ClientLibrarySoName)) $(call LIB_LINK_RPATH,lib) + LINK_CLIENT_LIBS = $(SO_LINK_LIBS) $(STATIC_CXXSUPPORT_LIB) + + LINK_EMBED = $(LIB_LINK) $(LINK_FIREBIRD_EMBED_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_EMBED_LINK_OPTIONS)\ +- $(call LIB_LINK_SONAME,$(SharedLibrarySoName)) $(call LIB_LINK_RPATH,lib) ++ $(call LIB_LINK_IMPLIB,$(LIB)/lib$(SharedLibraryBaseName).a) $(call LIB_LINK_SONAME,$(SharedLibrarySoName)) $(call LIB_LINK_RPATH,lib) + LINK_EMBED_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(ICU_LIBS) + + # From utilities +diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw +index ac1327c..09a5103 100644 +--- a/builds/posix/prefix.mingw ++++ b/builds/posix/prefix.mingw +@@ -36,16 +36,12 @@ OS_ServerFiles= os/win32/srvr_w32.cpp os/win32/window.cpp os/win32/chop.cpp os/w + # Override link command for implicit stdc++ linking + LIB_LINK=$(LD) + +-LIB_LINK_OPTIONS+=-Wl,--enable-stdcall-fixup +- + # Strip symbols from release versions to decrease size + ifeq ($(IsProdTypeBuild),Y) + LINK_OPTS+=-Wl,-s + LIB_LINK_OPTIONS+=-Wl,-s + endif + +-# Generation of fbclient_ms.lib +-LIB_LINK_IMPLIB:=-Wl,--out-implib,firebird/lib/fbclient_ms.lib + LIB_GUI:= -mwindows -lcomctl32 -lgdi32 + + +@@ -65,19 +61,33 @@ FilesToAddDialog2=$(IBGUARD) + LIB_PREFIX= + + # Override library names to suppress version suffix +-ClientLibraryNameFull := $(ClientLibraryName) +-ClientLibrarySoName := $(ClientLibraryName) ++SharedLibraryName = $(SharedLibraryBaseName) ++SharedLibrarySoName = $(SharedLibraryBaseName) ++ ++LIBFBEMBED_SO = $(BIN)/$(SharedLibraryName) ++LIBFBEMBED_SOBASENAME = $(BIN)/$(SharedLibrarySoName) ++LIBFBEMBED_SONAME = $(BIN)/$(SharedLibraryBaseName) ++ ++ClientLibraryNameFull = $(ClientLibraryName) ++ClientLibrarySoName = $(ClientLibraryName) ++ ++LIBFBCLIENT_SO = $(BIN)/$(ClientLibraryNameFull) ++LIBFBCLIENT_SOBASENAME = $(BIN)/$(ClientLibrarySoName) ++LIBFBCLIENT_SONAME = $(BIN)/$(ClientLibraryName) + +-# Looks like MinGW 3 does not support version scripts but support def-files +-LINK_FIREBIRD_SYMBOLS = $(BLD_ROOT)/win32/defs/fbclient_s.def $(BLD_ROOT)/win32/defs/fbclient.def ++LIBIBUTIL_SO = $(BIN)/$(IbUtilLibraryName) + +-# This is required for newly built executable to find newly built shared +-# libraries because on Win32 there is no such thing as LD_LIBRARY_PATH +-LIB=$(BIN) ++# Generation of import libraries ++LIB_LINK_IMPLIB= -Wl,--out-implib,$(1) ++LIB_LINK_SONAME= + +-# Special options for UDF link +-LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_EXT)) -L$(LIB) -lib_util +-LINK_UDF_LIBS = ++LINK_FIREBIRD_SYMBOLS = $(BLD_ROOT)/win32/defs/fbclient$(BITNESS_SUFFIX).def ++#LINK_FIREBIRD_EMBED_SYMBOLS = ++#LINK_FIREBIRD_CLIENT_SYMBOLS = ++LINK_TRACE_SYMBOLS = ++LINK_FBINTL_SYMBOLS = ++LINK_IBUTIL_SYMBOLS = ++LINK_EMPTY_SYMBOLS = + + # Special options for trace plugin link + LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) $(ICU_LIBS) +diff --git a/builds/win32/defs/fbclient32.def b/builds/win32/defs/fbclient32.def +new file mode 100644 +index d345348..346a94d 100644 +--- /dev/null ++++ b/builds/win32/defs/fbclient32.def +@@ -0,0 +1,361 @@ ++; The contents of this file are subject to the Interbase Public ++; License Version 1.0 (the "License"); you may not use this file ++; except in compliance with the License. You may obtain a copy ++; of the License at http://www.Inprise.com/IPL.html ++; ++; Software distributed under the License is distributed on an ++; "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express ++; or implied. See the License for the specific language governing ++; rights and limitations under the License. ++; ++; The Original Code was created by Inprise Corporation ++; and its predecessors. Portions created by Inprise Corporation are ++; Copyright (C) Inprise Corporation. ++; ++; All Rights Reserved. ++; Contributor(s): ______________________________________. ++ ++LIBRARY "fbclient.dll" ++EXPORTS ++ ++;------------------- ++; PRIVATE INTERFACE ++;------------------- ++ ++ gds__alloc@4 @1 ++ gds__attach_database@24 @2 ++ gds__blob_info@24 @3 ++ gds__blob_size@16 @4 ++ gds__cancel_blob@8 @5 ++ gds__cancel_events@12 @6 ++ gds__close@8 @7 ++ gds__close_blob@8 @8 ++ gds__commit_retaining@8 @9 ++ gds__commit_transaction@8 @10 ++ gds__compile_request@20 @11 ++ gds__compile_request2@20 @12 ++ gds__create_blob@20 @13 ++ gds__create_blob2@28 @14 ++ gds__create_database@28 @15 ++ gds__database_cleanup@16 @16 ++ gds__database_info@24 @17 ++ gds__ddl@20 @18 ++ gds__declare@12 @19 ++ gds__decode@12 @20 ++ gds__decode_date@8 @21 ++ gds__describe@12 @22 ++ gds__describe_bind@12 @23 ++ gds__detach_database@8 @24 ++ gds__disable_subsystem@4 @25 ++ gds__dsql_finish@4 @26 ++ gds__edit@8 @27 ++ gds__enable_subsystem@4 @28 ++ gds__encode@8 @29 ++ gds__encode_date@8 @30 ++ gds__event_block @31 ++ gds__event_counts@16 @32 ++ gds__event_wait@20 @33 ++ gds__execute@16 @34 ++ gds__execute_immediate@20 @35 ++ gds__fetch@12 @36 ++ gds__free@4 @37 ++ gds__ftof@16 @38 ++ gds__get_prefix@8 @248 ++ gds__get_segment@20 @39 ++ gds__get_slice@44 @40 ++ gds__interprete@8 @41 ++ gds__log @42 ++ gds__log_status@8 @142 ++ gds__map_blobs@8 @240 ++ gds__msg_close@4 @223 ++ gds__msg_format@40 @43 ++ gds__msg_lookup@24 @44 ++ gds__msg_open@8 @45 ++ gds__msg_put@32 @46 ++ gds__open@16 @47 ++ gds__open_blob@20 @48 ++ gds__open_blob2@28 @49 ++ gds__parse_bpb@16 @50 ++ gds__prefix@8 @51 ++ gds__prefix_lock@8 @249 ++ gds__prefix_msg@8 @250 ++ gds__prepare@28 @52 ++ gds__prepare_transaction@8 @53 ++ gds__prepare_transaction2@16 @54 ++ gds__print_blr@16 @55 ++ gds__print_status@4 @56 ++ gds__put_error@4 @57 ++ gds__put_segment@16 @58 ++ gds__put_slice@40 @59 ++ gds__qtoq@8 @60 ++ gds__que_events@28 @61 ++ gds__receive@24 @62 ++ gds__reconnect_transaction@20 @63 ++ gds__register_cleanup@8 @64 ++ gds__release_request@8 @65 ++ gds__request_info@28 @66 ++ gds__rollback_transaction@8 @67 ++ gds__seek_blob@20 @68 ++ gds__send@24 @69 ++ gds__set_debug@4 @70 ++ gds__sqlcode@4 @71 ++ gds__start_and_send@28 @72 ++ gds__start_multiple@16 @73 ++ gds__start_request@16 @74 ++ gds__start_transaction @75 ++ gds__temp_file@20 @231 ++ gds__thread_enable@4 @76 ++ gds__thread_enter@0 @77 ++ gds__thread_exit@0 @78 ++ gds__thread_start@20 @79 ++ gds__to_sqlda@20 @80 ++ gds__transaction_cleanup@16 @235 ++ gds__transaction_info@24 @81 ++ gds__unregister_cleanup@8 @224 ++ gds__unwind_request@12 @82 ++ gds__validate_lib_path@16 @255 ++ gds__vax_integer@8 @83 ++ gds__version@12 @84 ++ gds__vtof@12 @85 ++ gds__vtov@12 @86 ++ gds__default_printer @87 ++ ++ gds__alloc_debug@12 ++ ++ gds_alloc_flag_unfreed@4 ++ gds_alloc_report@12 ++ ++ fb_shutdown@8 ++ fb_shutdown_callback@16 ++ fb_cancel_operation@12 ++ fb_disconnect_transaction@8 ++ ++ perf_format@20 @100 ++ perf_get_info@8 @101 ++ perf_report@16 @102 ++ ++ perf64_format@20 ++ perf64_get_info@8 ++ perf64_report@16 ++ ++;---------------------------- ++; PUBLIC INTERFACE, i.e. API ++;---------------------------- ++ ++ ; Array functions ++ ++ isc_array_gen_sdl@20 @217 ++ isc_array_get_slice@28 @218 ++ isc_array_lookup_bounds@24 @219 ++ isc_array_lookup_desc@24 @220 ++ isc_array_put_slice@28 @221 ++ isc_array_set_desc@28 @222 ++ isc_get_slice@44 @140 ++ isc_put_slice@40 @153 ++ ++ ; BLOB functions ++ ++ isc_blob_default_desc@12 @239 ++ isc_blob_gen_bpb@24 @236 ++ isc_blob_info@24 @108 ++ isc_blob_lookup_desc@28 @237 ++ isc_blob_set_desc@28 @238 ++ isc_cancel_blob@8 @110 ++ isc_close_blob@8 @113 ++ isc_create_blob@20 @118 ++ isc_create_blob2@28 @119 ++ isc_get_segment@20 @139 ++ isc_open_blob@20 @144 ++ isc_open_blob2@28 @145 ++ isc_put_segment@16 @152 ++ ++ ; Database functions ++ ++ isc_attach_database@24 @103 ++ isc_create_database@28 @120 ++ isc_database_info@24 @122 ++ isc_detach_database@8 @128 ++ isc_drop_database@8 @229 ++ isc_expand_dpb @135 ++ isc_modify_dpb@20 @244 ++ isc_version@12 @174 ++ isc_get_client_major_version@0 @268 ++ isc_get_client_minor_version@0 @269 ++ isc_get_client_version@4 @270 ++ ++ ; Conversion functions ++ ++ isc_decode_date@8 @125 ++ isc_decode_sql_date@8 @261 ++ isc_decode_sql_time@8 @262 ++ isc_decode_timestamp@8 @263 ++ isc_encode_date@8 @129 ++ isc_encode_sql_date@8 @264 ++ isc_encode_sql_time@8 @265 ++ isc_encode_timestamp@8 @266 ++ isc_portable_integer@8 @259 ++ isc_vax_integer@8 @173 ++ ++ ; DSQL functions ++ ++ isc_dsql_allocate_statement@12 @178 ++ isc_dsql_alloc_statement2@12 @179 ++ isc_dsql_describe@16 @180 ++ isc_dsql_describe_bind@16 @181 ++ isc_dsql_execute@20 @182 ++ isc_dsql_execute2@24 @183 ++ isc_dsql_execute_m@32 @184 ++ isc_dsql_execute2_m@52 @185 ++ isc_dsql_execute_immediate@28 @186 ++ isc_dsql_exec_immed2@32 @187 ++ isc_dsql_execute_immediate_m@44 @188 ++ isc_dsql_exec_immed2_m@64 @189 ++ isc_dsql_exec_immed3_m@64 @230 ++ isc_dsql_fetch@16 @190 ++ isc_dsql_fetch_a@20 @191 ++ isc_dsql_fetch_m@28 @192 ++ isc_dsql_finish@4 @193 ++ isc_dsql_free_statement@12 @194 ++ isc_dsql_insert@16 @195 ++ isc_dsql_insert_m@28 @196 ++ isc_dsql_prepare@28 @197 ++ isc_dsql_prepare_m@40 @198 ++ isc_dsql_release@8 @199 ++ isc_dsql_set_cursor_name@16 @200 ++ isc_dsql_sql_info@24 @201 ++ ++ ; ESQL functions ++ ++ isc_embed_dsql_close@8 @202 ++ isc_embed_dsql_declare@12 @203 ++ isc_embed_dsql_describe@16 @204 ++ isc_embed_dsql_describe_bind@16 @205 ++ isc_embed_dsql_execute@20 @206 ++ isc_embed_dsql_execute2@24 @207 ++ isc_embed_dsql_execute_immed@28 @208 ++ isc_embed_dsql_exec_immed2@32 @209 ++ isc_embed_dsql_fetch@16 @210 ++ isc_embed_dsql_fetch_a@20 @211 ++ isc_embed_dsql_insert@16 @212 ++ isc_embed_dsql_open@20 @213 ++ isc_embed_dsql_open2@24 @214 ++ isc_embed_dsql_prepare@32 @215 ++ isc_embed_dsql_release@8 @216 ++ isc_embed_dsql_length@8 @273 ++ ++ ; Error-handling functions ++ ++ isc_interprete@8 @141 ++ fb_interpret@12 ++ isc_print_sqlerror@8 @150 ++ isc_print_status@4 @151 ++ isc_sqlcode@4 @165 ++ isc_sql_interprete@12 @164 ++ isc_sqlcode_s@8 @278 ++ fb_sqlstate@8 @279 ++ ++ ; Event functions ++ ++ isc_cancel_events@12 @111 ++ isc_event_block @130 ++ isc_event_counts@16 @131 ++ isc_que_events@28 @155 ++ isc_wait_for_event@20 @177 ++ isc_event_block_a@16 @274 ++ isc_event_block_s@20 @275 ++ ++ ; Security functions ++ ++ isc_add_user@8 @256 ++ isc_delete_user@8 @257 ++ isc_modify_user@8 @258 ++ ++ ; Services functions ++ ++ isc_service_attach@24 @225 ++ isc_service_detach@8 @226 ++ isc_service_query@36 @227 ++ isc_service_start@20 @228 ++ ++ ; Transaction control functions ++ ++ isc_commit_retaining@8 @114 ++ isc_commit_transaction@8 @115 ++ isc_prepare_transaction@8 @147 ++ isc_prepare_transaction2@16 @148 ++ isc_rollback_retaining@8 @260 ++ isc_rollback_transaction@8 @160 ++ isc_start_multiple@16 @167 ++ isc_start_transaction @169 ++ isc_transaction_info@24 @171 ++ ++ ; Other functions ++ ++ isc_compile_request@20 @116 ++ isc_compile_request2@20 @117 ++ isc_ddl@20 @123 ++ isc_prepare@28 @146 ++ isc_receive@24 @156 ++ isc_reconnect_transaction@20 @157 ++ isc_release_request@8 @158 ++ isc_request_info@28 @159 ++ isc_seek_blob@20 @161 ++ isc_send@24 @162 ++ isc_start_and_send@28 @166 ++ isc_start_request@16 @168 ++ isc_transact_request@36 @132 ++ isc_unwind_request@12 @172 ++ ++ ; Other SQL functions ++ ++ isc_close@8 @112 ++ isc_declare@12 @124 ++ isc_describe@12 @126 ++ isc_describe_bind@12 @127 ++ isc_execute@16 @133 ++ isc_execute_immediate@20 @134 ++ isc_fetch@12 @136 ++ isc_fetch_a@16 @137 ++ isc_open@16 @143 ++ ++ ; Other BLOB functions ++ ++ BLOB_close@4 @91 ++ BLOB_display@16 @92 ++ BLOB_dump@16 @93 ++ BLOB_edit@16 @94 ++ BLOB_get@4 @95 ++ BLOB_load@16 @96 ++ BLOB_open@12 @97 ++ BLOB_put@8 @98 ++ BLOB_text_dump@16 @242 ++ BLOB_text_load@16 @243 ++ Bopen@16 @99 ++ ++ ; Other misc functions ++ ++ isc_ftof@16 @138 ++ isc_free@4 @241 ++ isc_print_blr@16 @149 ++ fb_print_blr@20 @280 ++ isc_qtoq@8 @154 ++ isc_reset_fpe@4 ++ isc_set_debug@4 @163 ++ isc_to_sqlda@20 @170 ++ isc_vtof@12 @175 ++ isc_vtov@12 @176 ++ isc_baddress@4 @276 ++ isc_baddress_s@8 @277 ++ ++ _isc_start_transaction=isc_start_transaction ++ _isc_expand_dpb=isc_expand_dpb ++ _isc_event_block=isc_event_block ++ ++;----------------- ++; OTHER FUNCTIONS ++;----------------- ++ ++ CVT_move@12 @267 ++ ++ KEYWORD_stringIsAToken@4 @271 ++ KEYWORD_getTokens@0 @272 +diff --git a/builds/win32/defs/fbclient64.def b/builds/win32/defs/fbclient64.def +new file mode 100644 +index d345348..346a94d 100644 +--- /dev/null ++++ b/builds/win32/defs/fbclient64.def +@@ -0,0 +1,361 @@ ++; The contents of this file are subject to the Interbase Public ++; License Version 1.0 (the "License"); you may not use this file ++; except in compliance with the License. You may obtain a copy ++; of the License at http://www.Inprise.com/IPL.html ++; ++; Software distributed under the License is distributed on an ++; "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express ++; or implied. See the License for the specific language governing ++; rights and limitations under the License. ++; ++; The Original Code was created by Inprise Corporation ++; and its predecessors. Portions created by Inprise Corporation are ++; Copyright (C) Inprise Corporation. ++; ++; All Rights Reserved. ++; Contributor(s): ______________________________________. ++ ++LIBRARY "fbclient.dll" ++EXPORTS ++ ++;------------------- ++; PRIVATE INTERFACE ++;------------------- ++ ++ gds__alloc @1 ++ gds__attach_database @2 ++ gds__blob_info @3 ++ gds__blob_size @4 ++ gds__cancel_blob @5 ++ gds__cancel_events @6 ++ gds__close @7 ++ gds__close_blob @8 ++ gds__commit_retaining @9 ++ gds__commit_transaction @10 ++ gds__compile_request @11 ++ gds__compile_request2 @12 ++ gds__create_blob @13 ++ gds__create_blob2 @14 ++ gds__create_database @15 ++ gds__database_cleanup @16 ++ gds__database_info @17 ++ gds__ddl @18 ++ gds__declare @19 ++ gds__decode @20 ++ gds__decode_date @21 ++ gds__describe @22 ++ gds__describe_bind @23 ++ gds__detach_database @24 ++ gds__disable_subsystem @25 ++ gds__dsql_finish @26 ++ gds__edit @27 ++ gds__enable_subsystem @28 ++ gds__encode @29 ++ gds__encode_date @30 ++ gds__event_block @31 ++ gds__event_counts @32 ++ gds__event_wait @33 ++ gds__execute @34 ++ gds__execute_immediate @35 ++ gds__fetch @36 ++ gds__free @37 ++ gds__ftof @38 ++ gds__get_prefix @248 ++ gds__get_segment @39 ++ gds__get_slice @40 ++ gds__interprete @41 ++ gds__log @42 ++ gds__log_status @142 ++ gds__map_blobs @240 ++ gds__msg_close @223 ++ gds__msg_format @43 ++ gds__msg_lookup @44 ++ gds__msg_open @45 ++ gds__msg_put @46 ++ gds__open @47 ++ gds__open_blob @48 ++ gds__open_blob2 @49 ++ gds__parse_bpb @50 ++ gds__prefix @51 ++ gds__prefix_lock @249 ++ gds__prefix_msg @250 ++ gds__prepare @52 ++ gds__prepare_transaction @53 ++ gds__prepare_transaction2 @54 ++ gds__print_blr @55 ++ gds__print_status @56 ++ gds__put_error @57 ++ gds__put_segment @58 ++ gds__put_slice @59 ++ gds__qtoq @60 ++ gds__que_events @61 ++ gds__receive @62 ++ gds__reconnect_transaction @63 ++ gds__register_cleanup @64 ++ gds__release_request @65 ++ gds__request_info @66 ++ gds__rollback_transaction @67 ++ gds__seek_blob @68 ++ gds__send @69 ++ gds__set_debug @70 ++ gds__sqlcode @71 ++ gds__start_and_send @72 ++ gds__start_multiple @73 ++ gds__start_request @74 ++ gds__start_transaction @75 ++ gds__temp_file @231 ++ gds__thread_enable @76 ++ gds__thread_enter @77 ++ gds__thread_exit @78 ++ gds__thread_start @79 ++ gds__to_sqlda @80 ++ gds__transaction_cleanup @235 ++ gds__transaction_info @81 ++ gds__unregister_cleanup @224 ++ gds__unwind_request @82 ++ gds__validate_lib_path @255 ++ gds__vax_integer @83 ++ gds__version @84 ++ gds__vtof @85 ++ gds__vtov @86 ++ gds__default_printer @87 ++ ++ gds__alloc_debug ++ ++ gds_alloc_flag_unfreed ++ gds_alloc_report ++ ++ fb_shutdown ++ fb_shutdown_callback ++ fb_cancel_operation ++ fb_disconnect_transaction ++ ++ perf_format @100 ++ perf_get_info @101 ++ perf_report @102 ++ ++ perf64_format ++ perf64_get_info ++ perf64_report ++ ++;---------------------------- ++; PUBLIC INTERFACE, i.e. API ++;---------------------------- ++ ++ ; Array functions ++ ++ isc_array_gen_sdl @217 ++ isc_array_get_slice @218 ++ isc_array_lookup_bounds @219 ++ isc_array_lookup_desc @220 ++ isc_array_put_slice @221 ++ isc_array_set_desc @222 ++ isc_get_slice @140 ++ isc_put_slice @153 ++ ++ ; BLOB functions ++ ++ isc_blob_default_desc @239 ++ isc_blob_gen_bpb @236 ++ isc_blob_info @108 ++ isc_blob_lookup_desc @237 ++ isc_blob_set_desc @238 ++ isc_cancel_blob @110 ++ isc_close_blob @113 ++ isc_create_blob @118 ++ isc_create_blob2 @119 ++ isc_get_segment @139 ++ isc_open_blob @144 ++ isc_open_blob2 @145 ++ isc_put_segment @152 ++ ++ ; Database functions ++ ++ isc_attach_database @103 ++ isc_create_database @120 ++ isc_database_info @122 ++ isc_detach_database @128 ++ isc_drop_database @229 ++ isc_expand_dpb @135 ++ isc_modify_dpb @244 ++ isc_version @174 ++ isc_get_client_major_version @268 ++ isc_get_client_minor_version @269 ++ isc_get_client_version @270 ++ ++ ; Conversion functions ++ ++ isc_decode_date @125 ++ isc_decode_sql_date @261 ++ isc_decode_sql_time @262 ++ isc_decode_timestamp @263 ++ isc_encode_date @129 ++ isc_encode_sql_date @264 ++ isc_encode_sql_time @265 ++ isc_encode_timestamp @266 ++ isc_portable_integer @259 ++ isc_vax_integer @173 ++ ++ ; DSQL functions ++ ++ isc_dsql_allocate_statement @178 ++ isc_dsql_alloc_statement2 @179 ++ isc_dsql_describe @180 ++ isc_dsql_describe_bind @181 ++ isc_dsql_execute @182 ++ isc_dsql_execute2 @183 ++ isc_dsql_execute_m @184 ++ isc_dsql_execute2_m @185 ++ isc_dsql_execute_immediate @186 ++ isc_dsql_exec_immed2 @187 ++ isc_dsql_execute_immediate_m @188 ++ isc_dsql_exec_immed2_m @189 ++ isc_dsql_exec_immed3_m @230 ++ isc_dsql_fetch @190 ++ isc_dsql_fetch_a @191 ++ isc_dsql_fetch_m @192 ++ isc_dsql_finish @193 ++ isc_dsql_free_statement @194 ++ isc_dsql_insert @195 ++ isc_dsql_insert_m @196 ++ isc_dsql_prepare @197 ++ isc_dsql_prepare_m @198 ++ isc_dsql_release @199 ++ isc_dsql_set_cursor_name @200 ++ isc_dsql_sql_info @201 ++ ++ ; ESQL functions ++ ++ isc_embed_dsql_close @202 ++ isc_embed_dsql_declare @203 ++ isc_embed_dsql_describe @204 ++ isc_embed_dsql_describe_bind @205 ++ isc_embed_dsql_execute @206 ++ isc_embed_dsql_execute2 @207 ++ isc_embed_dsql_execute_immed @208 ++ isc_embed_dsql_exec_immed2 @209 ++ isc_embed_dsql_fetch @210 ++ isc_embed_dsql_fetch_a @211 ++ isc_embed_dsql_insert @212 ++ isc_embed_dsql_open @213 ++ isc_embed_dsql_open2 @214 ++ isc_embed_dsql_prepare @215 ++ isc_embed_dsql_release @216 ++ isc_embed_dsql_length @273 ++ ++ ; Error-handling functions ++ ++ isc_interprete @141 ++ fb_interpret ++ isc_print_sqlerror @150 ++ isc_print_status @151 ++ isc_sqlcode @165 ++ isc_sql_interprete @164 ++ isc_sqlcode_s @278 ++ fb_sqlstate @279 ++ ++ ; Event functions ++ ++ isc_cancel_events @111 ++ isc_event_block @130 ++ isc_event_counts @131 ++ isc_que_events @155 ++ isc_wait_for_event @177 ++ isc_event_block_a @274 ++ isc_event_block_s @275 ++ ++ ; Security functions ++ ++ isc_add_user @256 ++ isc_delete_user @257 ++ isc_modify_user @258 ++ ++ ; Services functions ++ ++ isc_service_attach @225 ++ isc_service_detach @226 ++ isc_service_query @227 ++ isc_service_start @228 ++ ++ ; Transaction control functions ++ ++ isc_commit_retaining @114 ++ isc_commit_transaction @115 ++ isc_prepare_transaction @147 ++ isc_prepare_transaction2 @148 ++ isc_rollback_retaining @260 ++ isc_rollback_transaction @160 ++ isc_start_multiple @167 ++ isc_start_transaction @169 ++ isc_transaction_info @171 ++ ++ ; Other functions ++ ++ isc_compile_request @116 ++ isc_compile_request2 @117 ++ isc_ddl @123 ++ isc_prepare @146 ++ isc_receive @156 ++ isc_reconnect_transaction @157 ++ isc_release_request @158 ++ isc_request_info @159 ++ isc_seek_blob @161 ++ isc_send @162 ++ isc_start_and_send @166 ++ isc_start_request @168 ++ isc_transact_request @132 ++ isc_unwind_request @172 ++ ++ ; Other SQL functions ++ ++ isc_close @112 ++ isc_declare @124 ++ isc_describe @126 ++ isc_describe_bind @127 ++ isc_execute @133 ++ isc_execute_immediate @134 ++ isc_fetch @136 ++ isc_fetch_a @137 ++ isc_open @143 ++ ++ ; Other BLOB functions ++ ++ BLOB_close @91 ++ BLOB_display @92 ++ BLOB_dump @93 ++ BLOB_edit @94 ++ BLOB_get @95 ++ BLOB_load @96 ++ BLOB_open @97 ++ BLOB_put @98 ++ BLOB_text_dump @242 ++ BLOB_text_load @243 ++ Bopen @99 ++ ++ ; Other misc functions ++ ++ isc_ftof @138 ++ isc_free @241 ++ isc_print_blr @149 ++ fb_print_blr @280 ++ isc_qtoq @154 ++ isc_reset_fpe ++ isc_set_debug @163 ++ isc_to_sqlda @170 ++ isc_vtof @175 ++ isc_vtov @176 ++ isc_baddress @276 ++ isc_baddress_s @277 ++ ++ _isc_start_transaction=isc_start_transaction ++ _isc_expand_dpb=isc_expand_dpb ++ _isc_event_block=isc_event_block ++ ++;----------------- ++; OTHER FUNCTIONS ++;----------------- ++ ++ CVT_move @267 ++ ++ KEYWORD_stringIsAToken @271 ++ KEYWORD_getTokens @272 +-- +2.4.3 + +From 8fc62a800a470a31ad36be09504310f765600f4f Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 26 Nov 2014 12:25:47 +0300 +Subject: [PATCH] Don't install unix files for Windows platform + +--- + configure.in | 66 ++++++++++++++++++++++++++++++++++++------------------------ + 1 file changed, 40 insertions(+), 26 deletions(-) + +diff --git a/configure.in b/configure.in +index d345348..346a94d 100644 +--- a/configure.in ++++ b/configure.in +@@ -1313,32 +1313,39 @@ MAKE_SRC_DIR=builds/posix + + dnl common files for all posix hosts + dnl TODO: fix "arch-specific/linux/" paths for common posix scripts with SVN +-AC_CONFIG_FILES([gen/install/misc/firebird.conf:builds/install/misc/firebird.conf.in +-gen/install/misc/aliases.conf:builds/install/misc/aliases.conf.in +-gen/install/misc/fbintl.conf:builds/install/misc/fbintl.conf +-gen/install/misc/fbtrace.conf:src/utilities/ntrace/fbtrace.conf +-gen/firebird/bin/fb_config:builds/install/misc/fb_config.in +-gen/firebird/bin/posixLibrary.sh:builds/install/misc/posixLibrary.sh.in +-gen/firebird/bin/classicLibrary.sh:builds/install/misc/classicLibrary.sh.in +-gen/firebird/bin/superLibrary.sh:builds/install/misc/superLibrary.sh.in +-gen/firebird/bin/changeRunUser.sh:builds/install/misc/changeRunUser.sh.in +-gen/firebird/bin/restoreRootRunUser.sh:builds/install/misc/restoreRootRunUser.sh.in +-gen/firebird/bin/tarMainInstall.sh:builds/install/arch-specific/linux/misc/tarMainInstall.sh.in +-gen/firebird/bin/tarinstall.sh:builds/install/arch-specific/linux/misc/tarinstall.sh.in +-gen/firebird/bin/preinstall.sh:builds/install/arch-specific/linux/misc/preinstall.sh.in +-gen/firebird/bin/postinstall.sh:builds/install/arch-specific/linux/misc/postinstall.sh.in +-gen/firebird/bin/preuninstall.sh:builds/install/arch-specific/linux/misc/preuninstall.sh.in +-gen/firebird/bin/postuninstall.sh:builds/install/arch-specific/linux/misc/postuninstall.sh.in +-gen/firebird/bin/taruninstall.sh:builds/install/arch-specific/linux/misc/taruninstall.sh.in +-gen/firebird/bin/tarMainUninstall.sh:builds/install/arch-specific/linux/misc/tarMainUninstall.sh.in +-gen/firebird/bin/changeDBAPassword.sh:builds/install/misc/changeDBAPassword.sh.in +-gen/firebird/bin/changeGdsLibraryCompatibleLink.sh:builds/install/misc/changeGdsLibraryCompatibleLink.sh.in +-gen/firebird/bin/createAliasDB.sh:builds/install/misc/createAliasDB.sh.in], +-[chmod a+x gen/install/scripts/*.sh gen/install/*sh 2>/dev/null]) +- +-if test $FIREBIRD_ARCH_TYPE = classic; then +- AC_CONFIG_FILES([gen/firebird/bin/changeMultiConnectMode.sh:builds/install/misc/changeMultiConnectMode.sh.in], +- [chmod a+x gen/install/scripts/*.sh gen/install/*sh 2>/dev/null]) ++if test $PLATFORM = win32; then ++ AC_CONFIG_FILES(gen/firebird/firebird.conf:builds/install/misc/firebird.conf.in ++ gen/firebird/aliases.conf:builds/install/misc/aliases.conf.in ++ gen/firebird/intl/fbintl.conf:builds/install/misc/fbintl.conf ++ gen/firebird/fbtrace.conf:src/utilities/ntrace/fbtrace.conf) ++else ++ AC_CONFIG_FILES([gen/install/misc/firebird.conf:builds/install/misc/firebird.conf.in ++ gen/install/misc/aliases.conf:builds/install/misc/aliases.conf.in ++ gen/install/misc/fbintl.conf:builds/install/misc/fbintl.conf ++ gen/install/misc/fbtrace.conf:src/utilities/ntrace/fbtrace.conf ++ gen/firebird/bin/fb_config:builds/install/misc/fb_config.in ++ gen/firebird/bin/posixLibrary.sh:builds/install/misc/posixLibrary.sh.in ++ gen/firebird/bin/classicLibrary.sh:builds/install/misc/classicLibrary.sh.in ++ gen/firebird/bin/superLibrary.sh:builds/install/misc/superLibrary.sh.in ++ gen/firebird/bin/changeRunUser.sh:builds/install/misc/changeRunUser.sh.in ++ gen/firebird/bin/restoreRootRunUser.sh:builds/install/misc/restoreRootRunUser.sh.in ++ gen/firebird/bin/tarMainInstall.sh:builds/install/arch-specific/linux/misc/tarMainInstall.sh.in ++ gen/firebird/bin/tarinstall.sh:builds/install/arch-specific/linux/misc/tarinstall.sh.in ++ gen/firebird/bin/preinstall.sh:builds/install/arch-specific/linux/misc/preinstall.sh.in ++ gen/firebird/bin/postinstall.sh:builds/install/arch-specific/linux/misc/postinstall.sh.in ++ gen/firebird/bin/preuninstall.sh:builds/install/arch-specific/linux/misc/preuninstall.sh.in ++ gen/firebird/bin/postuninstall.sh:builds/install/arch-specific/linux/misc/postuninstall.sh.in ++ gen/firebird/bin/taruninstall.sh:builds/install/arch-specific/linux/misc/taruninstall.sh.in ++ gen/firebird/bin/tarMainUninstall.sh:builds/install/arch-specific/linux/misc/tarMainUninstall.sh.in ++ gen/firebird/bin/changeDBAPassword.sh:builds/install/misc/changeDBAPassword.sh.in ++ gen/firebird/bin/changeGdsLibraryCompatibleLink.sh:builds/install/misc/changeGdsLibraryCompatibleLink.sh.in ++ gen/firebird/bin/createAliasDB.sh:builds/install/misc/createAliasDB.sh.in], ++ [chmod a+x gen/install/scripts/*.sh gen/install/*sh 2>/dev/null]) ++ ++ if test $FIREBIRD_ARCH_TYPE = classic; then ++ AC_CONFIG_FILES([gen/firebird/bin/changeMultiConnectMode.sh:builds/install/misc/changeMultiConnectMode.sh.in], ++ [chmod a+x gen/install/scripts/*.sh gen/install/*sh 2>/dev/null]) ++ fi + fi + + dnl: Platform Specific Files +@@ -1438,6 +1445,13 @@ case "$PLATFORM" in + + DARWIN) + ;; ++ ++ win32) ++ AC_CONFIG_FILES(gen/firebird/install_classic.bat:builds/install/arch-specific/win32/install_classic.bat ++ gen/firebird/install_super.bat:builds/install/arch-specific/win32/install_super.bat ++ gen/firebird/install_superclassic.bat:builds/install/arch-specific/win32/install_superclassic.bat ++ gen/firebird/uninstall.bat:builds/install/arch-specific/win32/uninstall.bat) ++ ;; + esac + if test -f ${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX};then + POSTFIX_FILE=gen/make.platform.postfix:${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX} +-- +2.4.3 + +From 4d220545d836947405485990a9f69c509ccd5278 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 26 Nov 2014 16:15:47 +0300 +Subject: [PATCH] Fix rules to use variables. + +--- + builds/posix/Makefile.in.examples | 18 +++++++++--------- + builds/posix/Makefile.in.refDatabases | 8 ++++---- + builds/posix/make.defaults | 2 +- + 3 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/builds/posix/Makefile.in.examples b/builds/posix/Makefile.in.examples +index 3137649..ade180b 100644 +--- a/builds/posix/Makefile.in.examples ++++ b/builds/posix/Makefile.in.examples +@@ -117,9 +117,9 @@ $(EXAMPLES_DEST)% : $(EXAMPLES_SRC)% + + + $(EXAMPLES_DEST)/employee.fdb: $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(INPUT_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT) +- -$(RM) employee.fdb +- ./empbuild employee.fdb +- -$(CHMOD_6) employee.fdb ++ -$(RM) $(EXAMPLES_DEST)/employee.fdb ++ $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(EXAMPLES_DEST)/employee.fdb ++ -$(CHMOD_6) $(EXAMPLES_DEST)/employee.fdb + + # To get past the fact isql is called from the programs, we create a local link + # to the static one in this directory +@@ -134,16 +134,16 @@ $(EXAMPLES_DEST)/empbuild.c: $(EXAMPLES_DEST)/empbuild.fdb $(EXAMPLES_DEST)/empb + + $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPLES_DEST)/empddl.sql $(EXAMPLES_DEST)/empbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT) + -$(RM) $(EXAMPLES_DEST)/empbuild.fdb +- $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i empbld.sql ++ $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i $(EXAMPLES_DEST)/empbld.sql + + # The chain for intlemp.fdb is the same a script file to create an empty database + # to allow a .e program to be compiled, to then create and populate with data + # the intlemp.fdb database. + + $(EXAMPLES_DEST)/intlemp.fdb: $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) $(INTL_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT) +- -$(RM) intlemp.fdb +- ./intlbld intlemp.fdb +- -$(CHMOD_6) intlemp.fdb ++ -$(RM) $(EXAMPLES_DEST)/intlemp.fdb ++ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) $(EXAMPLES_DEST)/intlemp.fdb ++ -$(CHMOD_6) $(EXAMPLES_DEST)/intlemp.fdb + + $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A) + $(EXE_LINK) $(LINK_OPTS) $(INTLBLD_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS) +@@ -151,8 +151,8 @@ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_Objects) $(LIBF + $(EXAMPLES_DEST)/intlbld.c: $(EXAMPLES_DEST)/intlbuild.fdb $(EXAMPLES_DEST)/intlbld.e + + $(EXAMPLES_DEST)/intlbuild.fdb : $(EXAMPLES_DEST)/intlddl.sql $(EXAMPLES_DEST)/intlbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT) +- -$(RM) intlbuild.fdb +- $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql ++ -$(RM) $(EXAMPLES_DEST)/intlbuild.fdb ++ $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i $(EXAMPLES_DEST)/intlbld.sql + + + $(EXAMPLES_DEST)/%.sql: $(EXAMPLES_SRC)/empbuild/%.sql +diff --git a/builds/posix/Makefile.in.refDatabases b/builds/posix/Makefile.in.refDatabases +index c1b61a6..68016cc 100644 +--- a/builds/posix/Makefile.in.refDatabases ++++ b/builds/posix/Makefile.in.refDatabases +@@ -65,7 +65,7 @@ empty_db : empty.fdb yachts.lnk + empty.fdb : $(CREATE_DB) + $(MAKE) -f $(GEN_ROOT)/Makefile.static.createdb + -$(RM) $@ +- $(BIN)/create_db $@ ++ $(CREATE_DB) $@ + $(TOUCH) $@ + $(CHMOD) 444 $@ + +@@ -99,7 +99,7 @@ help.fdb: $(FIREBIRD)/help/help.fdb + $(LN) -f $^ $@ + + $(FIREBIRD)/help/help.fdb: $(BLD_ROOT)/misc/help.gbak +- $(BIN)/gbak_static -MODE read_only -R $< $@ ++ $(GBAK_STATIC) -MODE read_only -R $< $@ + $(TOUCH) $@ + $(CHMOD) 444 $@ + +@@ -114,7 +114,7 @@ security2.fdb: $(SRC_ROOT)/dbs/security.sql + $(CHMOD) a=rw $@ + + metadata.fdb: $(BLD_ROOT)/misc/metadata.gbak +- $(BIN)/gbak_static -MODE read_only -R $< $@ ++ $(GBAK_STATIC) -MODE read_only -R $< $@ + $(TOUCH) $@ + $(CHMOD) 444 $@ + +@@ -122,7 +122,7 @@ metadata.fdb: $(BLD_ROOT)/misc/metadata.gbak + # since it ensures the data is valid. + + metadata.fdb.x: $(SRC_ROOT)/misc/metadata.sql +- $(BIN)/isql -i $< ++ $(ISQL) -i $< + $(TOUCH) $@ + $(CHMOD) 444 $@ + +diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults +index 34fd3e9..0f1da2d 100755 +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -178,7 +178,7 @@ SHRLIB_FOREIGN_EXT= $(SHRLIB_EXT) + + vpath %.so $(LIB) + vpath %.a $(LIB) +-vpath %.dll $(LIB) ++vpath %.dll $(BIN) + + #_____________________________________________________________________________ + +-- +2.4.3 + +From 3665f4d104ed9c57c5d4cda4c4213a82e373d83f Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Sun, 30 Nov 2014 15:08:19 +0300 +Subject: [PATCH] Auto detect WINDRES with autoconf. + +Fix building .rc files. +--- + builds/posix/make.defaults | 4 +++- + builds/posix/make.rules | 4 ++-- + builds/posix/make.shared.targets | 14 +++++++------- + configure.in | 10 ++++++++++ + 4 files changed, 22 insertions(+), 10 deletions(-) + +diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults +index caa9930..65f8c6c 100755 +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -151,9 +151,11 @@ ECHO= echo + QUIET_ECHO= @echo + CD= cd + CAT= cat +-AR= ar @AR_OPTIONS@ crsu ++AR= @AR@ @AR_OPTIONS@ crsu + LN= @LN_S@ ++DLLTOOL= @DLLTOOL@ + RANLIB= @RANLIB@ ++RC= @RC@ + BTYACC=$(ROOT)/extern/btyacc/btyacc + + CC = @CC@ +diff --git a/builds/posix/make.rules b/builds/posix/make.rules +index 42c719d..601dc82 100644 +--- a/builds/posix/make.rules ++++ b/builds/posix/make.rules +@@ -102,5 +102,5 @@ $(OBJ)/%.o: $(SRC_ROOT)/%.cpp + + # Rules for making resource files + +-$(GEN_ROOT)/%.res: $(SRC_ROOT)/%.rc +- windres --output-format=coff --include-dir=$( +Date: Wed, 26 Nov 2014 16:23:09 +0300 +Subject: [PATCH] Create symlinks of fbembed only if names are different + +--- + builds/posix/Makefile.in.libfbembed | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/builds/posix/Makefile.in.libfbembed b/builds/posix/Makefile.in.libfbembed +index d919ba2..2e70ab9 100644 +--- a/builds/posix/Makefile.in.libfbembed ++++ b/builds/posix/Makefile.in.libfbembed +@@ -61,14 +61,18 @@ Dependencies = $(AllObjects:.o=.d) + + libfbembed : $(LIBIBUTIL_SO) $(LIBFBEMBED_SONAME) + +-$(LIBFBEMBED_SO): $(LIBFBEMBED_Objects) $(SERVER_Objects) $(COMMON_Objects) +- $(LINK_EMBED) -o $@ $^ $(LINK_EMBED_LIBS) +- ++ifneq ($(SharedLibraryName),$(SharedLibrarySoName)) + $(LIBFBEMBED_SOBASENAME): $(LIBFBEMBED_SO) + (cd $(LIB) && $(LN) -f $(SharedLibraryName) $(SharedLibrarySoName) ) ++endif + ++ifneq ($(SharedLibrarySoName),$(SharedLibraryBaseName)) + $(LIBFBEMBED_SONAME): $(LIBFBEMBED_SOBASENAME) + (cd $(LIB) && $(LN) -f $(SharedLibrarySoName) $(SharedLibraryBaseName) ) ++endif ++ ++$(LIBFBEMBED_SO): $(LIBFBEMBED_Objects) $(SERVER_Objects) $(COMMON_Objects) ++ $(LINK_EMBED) -o $@ $^ $(LINK_EMBED_LIBS) + + include $(ROOT)/gen/make.shared.targets + +-- +2.4.3 + +From 8373e05051d23ae15f3e455a879786e9f8f5d6f9 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Wed, 3 Dec 2014 14:23:31 +0300 +Subject: [PATCH] MSVC compatibility fix. + +--- + src/common/classes/locks.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/common/classes/locks.h b/src/common/classes/locks.h +index d2ddb7d..3586592 100644 +--- a/src/common/classes/locks.h ++++ b/src/common/classes/locks.h +@@ -64,7 +64,7 @@ public: + } + + private: +- typedef BOOL WINAPI (*tTryEnterCriticalSection)(LPCRITICAL_SECTION lpCriticalSection); ++ typedef BOOL (WINAPI *tTryEnterCriticalSection)(LPCRITICAL_SECTION lpCriticalSection); + + static tTryEnterCriticalSection m_funct; + }; +-- +2.4.3 + From c88f323dfb590da387f2033664d53bd991329bad Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 16 Jun 2015 15:36:03 +0300 Subject: [PATCH 1154/2060] qt5: Use Firebird-2.x for building SQL driver. --- mingw-w64-qt5/PKGBUILD | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index a743571d45..dc525e6b18 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.2 pkgver=${_ver_base//-/} -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -106,7 +106,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-xpm-nox" \ "${MINGW_PACKAGE_PREFIX}-zlib" ) ) - +optdepends=($([[ "$_variant" == "-shared" ]] && echo \ + "${MINGW_PACKAGE_PREFIX}-libmariadbclient" \ + "${MINGW_PACKAGE_PREFIX}-libfbclient" \ + "${MINGW_PACKAGE_PREFIX}-postgresql") + ) makedepends=("bison" "diffutils" "flex" @@ -126,7 +130,7 @@ makedepends=("bison" "${MINGW_PACKAGE_PREFIX}-openssl") $([[ "$_variant" == "-shared" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-libmariadbclient" \ - "${MINGW_PACKAGE_PREFIX}-firebird" \ + "${MINGW_PACKAGE_PREFIX}-firebird2" \ "${MINGW_PACKAGE_PREFIX}-postgresql") ) From 54e77851aee72a9ed4ac6c4d2e863eb03102ccd2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 16 Jun 2015 15:37:08 +0300 Subject: [PATCH 1155/2060] openssl: Update to 1.0.2c --- mingw-w64-openssl/PKGBUILD | 20 ++++++++----------- .../openssl-1.0.2-s_client-verify.patch | 17 ---------------- 2 files changed, 8 insertions(+), 29 deletions(-) delete mode 100644 mingw-w64-openssl/openssl-1.0.2-s_client-verify.patch diff --git a/mingw-w64-openssl/PKGBUILD b/mingw-w64-openssl/PKGBUILD index d844e9dabc..9f4893e5ee 100644 --- a/mingw-w64-openssl/PKGBUILD +++ b/mingw-w64-openssl/PKGBUILD @@ -2,7 +2,7 @@ _realname=openssl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -_ver=1.0.2a +_ver=1.0.2c # use a pacman compatible version scheme pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} pkgrel=1 @@ -20,36 +20,32 @@ source=(http://www.openssl.org/source/${_realname}-${_ver}.tar.gz{,.asc} 'openssl-1.0.2a-parallel-build.patch' 'openssl-1.0.1-x32.patch' 'openssl-0.9.6-x509.patch' - 'openssl-1.0.2-s_client-verify.patch' 'openssl-1.0.1i-relocation.patch') -md5sums=('a06c547dac9044161a477211049f60ef' +md5sums=('8c8d81a9ae7005276e486702edbcd4b6' 'SKIP' '9e0abad8dd17079815d9e92345c5adcb' '835a78dbe9c8690dbdd9190aaf5432e7' '1d363d5e19c6eb4144b49f9daadefd5f' '87610b76871d53d4b6f07374000dae87' 'cae4eea6db48a254653fd1903cfabd15' - 'c7856c88da72348a76a666d42cba0f46' 'd8ed0865f35216a5e420e37d7a4e2515') validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491') prepare() { - cd $startdir/ # Clean up old sources so re-patching doesn't fail. - [[ -d $srcdir/${_realname}-${_ver} ]] && rm -rf $srcdir/${_realname}-${_ver} - tar -xzvf ${_realname}-${_ver}.tar.gz -C $srcdir - cd $srcdir/${_realname}-${_ver} + [[ -d $srcdir/${_realname}-${_ver} ]] && rm -rf ${srcdir}/${_realname}-${_ver} + tar -xzvf ${_realname}-${_ver}.tar.gz -C ${srcdir} + cd ${srcdir}/${_realname}-${_ver} patch -p1 -i ${srcdir}/openssl-1.0.0a-ldflags.patch patch -p1 -i ${srcdir}/openssl-1.0.0d-windres.patch patch -p1 -i ${srcdir}/openssl-1.0.2a-parallel-build.patch - patch -p1 -i ${srcdir}/openssl-1.0.2-s_client-verify.patch patch -p1 -i ${srcdir}/openssl-1.0.1-x32.patch patch -p1 -i ${srcdir}/openssl-0.9.6-x509.patch patch -p1 -i ${srcdir}/openssl-1.0.1i-relocation.patch # No support for out-of-source builds - mkdir -p $srcdir/build-${CARCH} + mkdir -p ${srcdir}/build-${CARCH} cp -a ${srcdir}/${_realname}-${_ver}/* ${srcdir}/build-${CARCH} # Use mingw cflags instead of hardcoded ones @@ -65,7 +61,7 @@ build() if $(echo ${CARCH} | grep -q x86_64); then _mingw=mingw64 fi - cd "$srcdir/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" export MSYS2_ARG_CONV_EXCL="--prefix=" ./Configure \ --prefix=${MINGW_PREFIX} \ @@ -82,7 +78,7 @@ build() } package() { - cd "$srcdir/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" make -j1 INSTALL_PREFIX="$pkgdir" MANDIR=${MINGW_PREFIX}/share/man MANSUFFIX=ssl install install -D -m644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE diff --git a/mingw-w64-openssl/openssl-1.0.2-s_client-verify.patch b/mingw-w64-openssl/openssl-1.0.2-s_client-verify.patch deleted file mode 100644 index 803a91dde9..0000000000 --- a/mingw-w64-openssl/openssl-1.0.2-s_client-verify.patch +++ /dev/null @@ -1,17 +0,0 @@ -https://bugs.gentoo.org/472584 -http://rt.openssl.org/Ticket/Display.html?id=2387&user=guest&pass=guest - -fix verification handling in s_client. when loading paths, make sure -we properly fallback to setting the default paths. - ---- openssl-1.0.2/apps/s_client.c -+++ openssl-1.0.2/apps/s_client.c -@@ -1337,7 +1337,7 @@ - - SSL_CTX_set_verify(ctx, verify, verify_callback); - -- if ((!SSL_CTX_load_verify_locations(ctx, CAfile, CApath)) || -+ if ((!SSL_CTX_load_verify_locations(ctx, CAfile, CApath)) && - (!SSL_CTX_set_default_verify_paths(ctx))) { - /* - * BIO_printf(bio_err,"error setting default verify locations\n"); From 1329ac38655ccced83aacb65e27e94bcfb01f51e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 11:38:11 +0300 Subject: [PATCH 1156/2060] sip: Update to 4.16.8 --- mingw-w64-sip/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-sip/PKGBUILD b/mingw-w64-sip/PKGBUILD index 8a220dab71..b5cb3fbe53 100644 --- a/mingw-w64-sip/PKGBUILD +++ b/mingw-w64-sip/PKGBUILD @@ -3,7 +3,7 @@ _realname=sip pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=4.16.7 +pkgver=4.16.8 pkgrel=1 pkgdesc="Tool to create Python bindings for C and C++ libraries" arch=('any') @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" source=("http://downloads.sourceforge.net/project/pyqt/${_realname}/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.gz" "0001-mingw-python.patch") -md5sums=('32abc003980599d33ffd789734de4c36' +md5sums=('8e48cd78bcd31f9310a701a4111c2739' '0f812155edb59dd9dcb7bd187c5646ae') prepare() { From 328e965fbebf3b15810443dbae044c299758a438 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 11:39:04 +0300 Subject: [PATCH 1157/2060] libssh2: Update to 1.6.0 --- mingw-w64-libssh2/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libssh2/PKGBUILD b/mingw-w64-libssh2/PKGBUILD index 4937e0222e..ed93e6081e 100644 --- a/mingw-w64-libssh2/PKGBUILD +++ b/mingw-w64-libssh2/PKGBUILD @@ -2,7 +2,7 @@ _realname=libssh2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.0 +pkgver=1.6.0 pkgrel=1 pkgdesc="A library implementing the SSH2 protocol as defined by Internet Drafts (mingw-w64)" arch=('any') @@ -12,11 +12,12 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib") groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') -source=("$url/download/${_realname}-$pkgver.tar.gz") -md5sums=('e7fa3f5c6bd2d67a9b360ff726bbc6ba') +source=("$url/download/${_realname}-${pkgver}.tar.gz") +md5sums=('00aabd6e714a5f42a4fb82ace20db1dd') build() { - mkdir -p "${srcdir}//build-${CARCH}" + [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" + mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" "${srcdir}"/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ From 90a0af7d9e7e86c492801d20b8f6dca2ef01b55a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 11:40:25 +0300 Subject: [PATCH 1158/2060] qt4: Rebuild to fix Firebird sql driver. --- mingw-w64-qt4/PKGBUILD | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mingw-w64-qt4/PKGBUILD b/mingw-w64-qt4/PKGBUILD index 8289938f0b..e231315b5d 100644 --- a/mingw-w64-qt4/PKGBUILD +++ b/mingw-w64-qt4/PKGBUILD @@ -3,7 +3,7 @@ _realname=qt4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.8.7 -pkgrel=1 +pkgrel=2 arch=('any') url='http://qt-project.org/' install=qt4-${CARCH}.install @@ -33,7 +33,7 @@ makedepends=("bison" "m4" "perl" "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-firebird" + "${MINGW_PACKAGE_PREFIX}-firebird2" "${MINGW_PACKAGE_PREFIX}-libmariadbclient" "${MINGW_PACKAGE_PREFIX}-postgresql" "${MINGW_PACKAGE_PREFIX}-pkg-config" @@ -43,6 +43,11 @@ makedepends=("bison" #"${MINGW_PACKAGE_PREFIX}-perl" #"${MINGW_PACKAGE_PREFIX}-gperf" ) +optdepends=($([[ "$_variant" == "-shared" ]] && echo \ + "${MINGW_PACKAGE_PREFIX}-libmariadbclient" \ + "${MINGW_PACKAGE_PREFIX}-libfbclient" \ + "${MINGW_PACKAGE_PREFIX}-postgresql") + ) groups=("${MINGW_PACKAGE_PREFIX}-qt4") options=('!strip' 'staticlibs') _pkgfqn="qt-everywhere-opensource-src-${pkgver}" From 77d238634ec010dc404f50edc09432af1676e8e4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 11:45:11 +0300 Subject: [PATCH 1159/2060] libxml++: Update to 2.38.1 --- mingw-w64-libxml++/PKGBUILD | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/mingw-w64-libxml++/PKGBUILD b/mingw-w64-libxml++/PKGBUILD index b1adffc5e3..d7bc93b334 100644 --- a/mingw-w64-libxml++/PKGBUILD +++ b/mingw-w64-libxml++/PKGBUILD @@ -2,25 +2,26 @@ _realname=libxml++ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.38.0 +pkgver=2.38.1 pkgrel=1 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="C++ wrapper for the libxml2 XML parser library (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-glibmm") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-glibmm") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('strip' 'staticlibs') license=('LGPL') url="http://libxmlplusplus.sourceforge.net/" source=("http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") -md5sums=('36c2c7a8b7a09aa2118c70a0d51bf4b1') +md5sums=('6b16aac575725a9bc0e9d96489e9251f') prepare() { cd "${srcdir}/${_realname}-${pkgver}" } -build() -{ +build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" @@ -33,9 +34,7 @@ build() --enable-shared # Hack for mingw python - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null + local PREFIX_DEPS=$(cygpath -am ${MINGW_PREFIX}) find . -type f -name "Makefile" -exec sed -i "s|${PREFIX_DEPS}|${MINGW_PREFIX}|g" {} \; make } From 72717eefe070b634632763b9d5bf540c2394e2f9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 11:52:35 +0300 Subject: [PATCH 1160/2060] libassuan: Update to 2.2.1 --- mingw-w64-libassuan/0003-remove-redef.mingw.patch | 13 ------------- mingw-w64-libassuan/PKGBUILD | 14 ++++++-------- 2 files changed, 6 insertions(+), 21 deletions(-) delete mode 100644 mingw-w64-libassuan/0003-remove-redef.mingw.patch diff --git a/mingw-w64-libassuan/0003-remove-redef.mingw.patch b/mingw-w64-libassuan/0003-remove-redef.mingw.patch deleted file mode 100644 index d46c5ddee7..0000000000 --- a/mingw-w64-libassuan/0003-remove-redef.mingw.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- libassuan-2.1.1/src/w32-sock-nonce.inc.h.orig 2010-12-23 11:32:06.000000000 +0000 -+++ libassuan-2.1.1/src/w32-sock-nonce.inc.h 2013-10-13 14:41:57.405204200 +0000 -@@ -37,7 +37,9 @@ - # ifndef AF_LOCAL - # define AF_LOCAL AF_UNIX - # endif --# define EADDRINUSE WSAEADDRINUSE -+# ifndef EADDRINUSE -+# define EADDRINUSE WSAEADDRINUSE -+# endif - struct sockaddr_un - { - short sun_family; diff --git a/mingw-w64-libassuan/PKGBUILD b/mingw-w64-libassuan/PKGBUILD index eb643c518f..33d1a0ed9f 100644 --- a/mingw-w64-libassuan/PKGBUILD +++ b/mingw-w64-libassuan/PKGBUILD @@ -2,8 +2,8 @@ _realname=libassuan pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.2.0 -pkgrel=2 +pkgver=2.2.1 +pkgrel=1 pkgdesc="A IPC library used by some GnuPG related software (mingw-w64)" arch=('any') license=('GPL') @@ -11,18 +11,16 @@ url="http://www.gnupg.org/related_software/libassuan" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libgpg-error") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -source=(ftp://ftp.gnupg.org/gcrypt/$_realname/$_realname-$pkgver.tar.bz2{,.sig} +source=(ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2{,.sig} 0001-fix-def-files.mingw.patch 0002-enable-silent-rules.mingw.patch - 0003-remove-redef.mingw.patch 0004-enable-gnu.mingw.patch 0005-better-check-for-stpcpy.mingw.patch) -sha1sums=('7cf0545955ce414044bb99b871d324753dd7b2e5' +sha1sums=('c21b86482f6a3624c2b46b91e20f8415f244233a' 'SKIP' '9e1e65633f643a853283caf21adb9b8f9001c38b' 'a380ea3781f95a3fd30e8d6b469d870f85f0ea29' - '3a8f898b6adfe5c820d5ed0f90cae1522d5f5c72' 'b329ac86f3c908a2753ccd896a0c78de7c8eef7a' '5a76f6d350b887c88eb49afec21490fe6103e4ac') @@ -30,7 +28,6 @@ prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-fix-def-files.mingw.patch patch -p1 -i ${srcdir}/0002-enable-silent-rules.mingw.patch - patch -p1 -i ${srcdir}/0003-remove-redef.mingw.patch patch -p1 -i ${srcdir}/0004-enable-gnu.mingw.patch patch -p1 -i ${srcdir}/0005-better-check-for-stpcpy.mingw.patch @@ -38,7 +35,7 @@ prepare() { } build() { - if [ $MINGW_CHOST = "x86_64-w64-mingw32" ]; then + if [ ${MINGW_CHOST} = "x86_64-w64-mingw32" ]; then CFLAGS+=" -DHAVE_DOSISH_SYSTEM=1" fi [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} @@ -51,6 +48,7 @@ build() { --target=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } From 1cddac19d5e1d8264c85ccb05fa7dd96ca5283dc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 11:58:16 +0300 Subject: [PATCH 1161/2060] LibRaw: Update to 0.16.2 --- mingw-w64-LibRaw/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-LibRaw/PKGBUILD b/mingw-w64-LibRaw/PKGBUILD index b998193f49..4fc9c8c47a 100644 --- a/mingw-w64-LibRaw/PKGBUILD +++ b/mingw-w64-LibRaw/PKGBUILD @@ -2,8 +2,8 @@ _realname=LibRaw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.16.0 -pkgrel=2 +pkgver=0.16.2 +pkgrel=1 pkgdesc="Library for reading RAW files obtained from digital photo cameras (mingw-w64)" arch=(any) url="http://www.libraw.org" @@ -18,9 +18,9 @@ source=("http://www.libraw.org/data/${_realname}-${pkgver}.tar.gz" "http://www.libraw.org/data/${_realname}-demosaic-pack-GPL3-${pkgver}.tar.gz" "LibRaw_wsock32.patch" "LibRaw_obsolete-macros.patch") -sha256sums=('71f43871ec2535345c5c9b748f07813e49915170f9510b721a2be6478426cf96' - '749d49694ce729166ec7a1faf7580780687ef190c756931bb075455ee8ed6697' - 'f2e904f9baa7d173b5ade163c795f26e110255a758e31bd213086a5a61500b5c' +sha256sums=('6344e355f7c23f13e266844b36265d5f624237ba5a62dc901c7b91b510a84187' + '2218f08d59866e7852938356c197b96a6f47d0b9221a261280e010540477e77b' + '749b5baa3a4f1f5c4ea4169b9293b02b0d2a0714aa01729327f23f82621c9735' '4bd077917fb8f37fa736e3a8bf32fabe3df3ff5438b684acbb5adff8a6c2a73b' '4a31c0ee066f43915beff6f7959b6b2cd246d390720df379bfc047d4cedb6a8f') From 66832d01e0b3e6330ba67a3bee03bd05da2fc865 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 13:37:42 +0300 Subject: [PATCH 1162/2060] gtk3: Update to 3.16.4 --- mingw-w64-gtk3/PKGBUILD | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index bd501592c2..bcee4e61df 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -2,8 +2,8 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.3 -pkgrel=2 +pkgver=3.16.4 +pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -23,8 +23,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2>=2.30.0" "${MINGW_PACKAGE_PREFIX}-glib2>=2.43.4" "${MINGW_PACKAGE_PREFIX}-json-glib" - "${MINGW_PACKAGE_PREFIX}-pango>=1.36.7" "${MINGW_PACKAGE_PREFIX}-libepoxy" + "${MINGW_PACKAGE_PREFIX}-pango>=1.36.7" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" @@ -35,7 +35,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0054-no-transparency-for-children.all.patch 0055-skip-testsuite.all.patch 0056-missing-file-toarray-pl.patch) -md5sums=('af22a1a753ea9b182babfed9d8b38228' +md5sums=('c7497aaf6730524a127597b768a73bd7' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' '3aa19ea25cc1d7693ae57f8e80f88440' @@ -69,7 +69,6 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-win32-backend \ - --disable-gtk2-dependency \ --enable-shared \ --enable-introspection \ --enable-broadway-backend \ From 3e3cc4886dc3d925749f4c145d7834f4137e6cf9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 13:38:28 +0300 Subject: [PATCH 1163/2060] mesa: Update to 10.6.0 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 1453f0d93b..55e2d64227 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,7 +2,7 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.5.7 +pkgver=10.6.0 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('c6a1fdccd4ea372975d263235136ad2d' +md5sums=('1a7e2e9f17eff9307fd14fb6cc70783b' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From b836322824aaddf2f6e99038612552d0aefe7daa Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 14:00:21 +0300 Subject: [PATCH 1164/2060] gnutls: Update to 3.4.2 --- mingw-w64-gnutls/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index b1f6d36950..e24a2a9d9a 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -2,8 +2,8 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.4.1 -pkgrel=2 +pkgver=3.4.2 +pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') license=('GPL3' 'LGPL2.1') @@ -23,7 +23,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") # Need remove "autogen" package before building. source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*}/${_realname}-${pkgver}.tar.xz{,.sig} 0001-add-missing-define.patch) -md5sums=('2d04f34fa25b45f9dcb9104c0394e12e' +md5sums=('4fb4a6253e09aa070e6c467cbb51ba33' 'SKIP' '807a79513358a9f4123f62111f1eed59') validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F') From 27f086d7478b46a1753312e212afa0e7b6cf009e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 14:24:50 +0300 Subject: [PATCH 1165/2060] libssh: Update to 0.7.0 --- mingw-w64-libssh/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libssh/PKGBUILD b/mingw-w64-libssh/PKGBUILD index a9359a6d5e..1e6fbee482 100644 --- a/mingw-w64-libssh/PKGBUILD +++ b/mingw-w64-libssh/PKGBUILD @@ -2,7 +2,7 @@ _realname=libssh pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.6.5 +pkgver=0.7.0 pkgrel=1 pkgdesc="Library for accessing ssh client services through C libraries (mingw-w64)" arch=('any') @@ -17,12 +17,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-openssl" groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') validpgpkeys=('8DFF53E18F2ABC8D8F3C92237EE0FC4DCC014E3D') # Andreas Schneider -source=(https://red.libssh.org/attachments/download/121/${_realname}-${pkgver}.tar.xz - https://red.libssh.org/attachments/download/120/${_realname}-${pkgver}.tar.asc +source=(https://red.libssh.org/attachments/download/140/${_realname}-${pkgver}.tar.xz + https://red.libssh.org/attachments/download/139/${_realname}-${pkgver}.tar.asc mingw-as-unix.patch mingw-DATADIR-conflict.patch fix-threads-libraryname-in-config.patch) -md5sums=('fdf107011ae1847d86620b39ae37d4f3' +md5sums=('cf20c3bb6edfc853187985c3f649ca80' 'SKIP' 'd819f18cb4ae07ad2a6589b02765b6c2' '7be13e00d27ce77f862012ee0654019b' From 40bc7840a836dcb5fa1dff61faebbd7f5ce0b0aa Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 15:00:50 +0300 Subject: [PATCH 1166/2060] gettext: Some fixes. --- mingw-w64-gettext/PKGBUILD | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index 14e6e65076..b69475793e 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -6,9 +6,11 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.19.4 pkgrel=3 arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="GNU internationalization library (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv") # "${MINGW_PACKAGE_PREFIX}-termcap" +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-libiconv" + #"${MINGW_PACKAGE_PREFIX}-termcap" + ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-ncurses") options=('strip' 'staticlibs') @@ -16,7 +18,7 @@ options=('strip' 'staticlibs') license=(GPL3 partial:'LGPL2.1') url="http://www.gnu.org/software/gettext/" -source=("http://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-$pkgver.tar.gz"{,.sig} +source=("http://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-${pkgver}.tar.gz"{,.sig} 00-relocatex-libintl-0.18.3.1.patch 120-Fix-Woe32-link-errors-when-compiling-with-O0.patch 04-mingw-script-slash-fix.mingw.patch @@ -35,7 +37,7 @@ md5sums=('d3511af1e604a3478900d2c2b4a4a48e' 'f5b611172ae58f1e4589a8d0c1d53414') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-$pkgver" rm -rf gettext-runtime/intl/canonicalize.c \ gettext-runtime/intl/relocatex.c \ gettext-runtime/intl/relocatex.h \ @@ -53,11 +55,12 @@ prepare() { #WANT_AUTOMAKE=latest ./autogen.sh --skip-gnulib } -build() -{ - mkdir -p $srcdir/build-${MINGW_CHOST} && cd $srcdir/build-${MINGW_CHOST} - # export lt_cv_deplibs_check_method='pass_all' - ${srcdir}/${_realname}-$pkgver/configure \ +build() { + export lt_cv_deplibs_check_method='pass_all' + + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -76,12 +79,13 @@ build() --with-included-libxml \ --with-included-glib \ --with-libncurses-prefix=${MINGW_PREFIX} + make } package() { - cd $srcdir/build-${MINGW_CHOST} - make DESTDIR="$pkgdir" install + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR="${pkgdir}" install # Licenses install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" From c4488b9b3ee0fe6aaadd6fb2a70e79ee9972ff93 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 17 Jun 2015 15:45:04 +0300 Subject: [PATCH 1167/2060] glade: Proper fix for windres invocation. Patch from LRN. --- .../0001-Fix-windres-invocation.mingw.patch | 42 +++++++++++++++++++ mingw-w64-glade/0009-icon-rc-relative.patch | 20 --------- mingw-w64-glade/PKGBUILD | 15 +++---- 3 files changed, 50 insertions(+), 27 deletions(-) create mode 100644 mingw-w64-glade/0001-Fix-windres-invocation.mingw.patch delete mode 100644 mingw-w64-glade/0009-icon-rc-relative.patch diff --git a/mingw-w64-glade/0001-Fix-windres-invocation.mingw.patch b/mingw-w64-glade/0001-Fix-windres-invocation.mingw.patch new file mode 100644 index 0000000000..bcfa1701e7 --- /dev/null +++ b/mingw-w64-glade/0001-Fix-windres-invocation.mingw.patch @@ -0,0 +1,42 @@ +--- glade-3.16.1/gladeui/glade-previewer.rc.in.orig 2013-11-11 18:50:38.000000000 +0000 ++++ glade-3.16.1/gladeui/glade-previewer.rc.in 2014-01-27 09:30:24.515199100 +0000 +@@ -1,6 +1,6 @@ + #include + +-GLADE_ICON ICON "../data/icons/glade.ico" ++GLADE_ICON ICON "glade.ico" + + VS_VERSION_INFO VERSIONINFO + FILEVERSION @GLADE_MAJOR_VERSION@,@GLADE_MINOR_VERSION@,@GLADE_MICRO_VERSION@,0 +--- glade-3.16.1/gladeui/Makefile.am.orig 2013-12-18 15:00:38.000000000 +0000 ++++ glade-3.16.1/gladeui/Makefile.am 2014-01-27 09:31:05.755936000 +0000 +@@ -32,7 +32,7 @@ + endif + + glade-win32-res.o: glade-previewer.rc +- $(WINDRES) $< $@ ++ $(WINDRES) -I $(top_srcdir)/data/icons $< $@ + + ## Rest of the UI ;) + +--- glade-3.16.1/src/glade.rc.in.orig 2013-11-11 18:50:38.000000000 +0000 ++++ glade-3.16.1/src/glade.rc.in 2014-01-27 09:30:36.766754800 +0000 +@@ -1,6 +1,6 @@ + #include + +-GLADE_ICON ICON "../data/icons/glade.ico" ++GLADE_ICON ICON "glade.ico" + + VS_VERSION_INFO VERSIONINFO + FILEVERSION @GLADE_MAJOR_VERSION@,@GLADE_MINOR_VERSION@,@GLADE_MICRO_VERSION@,0 +--- glade-3.16.1/src/Makefile.am.orig 2014-01-27 09:28:36.908034700 +0000 ++++ glade-3.16.1/src/Makefile.am 2014-01-27 09:31:20.477805400 +0000 +@@ -57,7 +57,7 @@ + endif + + glade-win32-res.o: glade.rc +- $(WINDRES) $< $@ ++ $(WINDRES) -I $(top_srcdir)/data/icons $< $@ + + UI_FILES = glade.glade glade-preferences.glade + diff --git a/mingw-w64-glade/0009-icon-rc-relative.patch b/mingw-w64-glade/0009-icon-rc-relative.patch deleted file mode 100644 index 62bbc40a9c..0000000000 --- a/mingw-w64-glade/0009-icon-rc-relative.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- glade-3.18.3/gladeui/glade-previewer.rc.in.orig 2015-01-26 22:54:17.967200000 +0300 -+++ glade-3.18.3/gladeui/glade-previewer.rc.in 2015-01-26 22:56:00.094800000 +0300 -@@ -1,6 +1,6 @@ - #include - --GLADE_ICON ICON "../data/icons/glade.ico" -+GLADE_ICON ICON "@top_srcdir@/data/icons/glade.ico" - - VS_VERSION_INFO VERSIONINFO - FILEVERSION @GLADE_MAJOR_VERSION@,@GLADE_MINOR_VERSION@,@GLADE_MICRO_VERSION@,0 ---- glade-3.18.3/src/glade.rc.in.orig 2015-01-26 23:03:56.444600000 +0300 -+++ glade-3.18.3/src/glade.rc.in 2015-01-26 23:04:06.054200000 +0300 -@@ -1,6 +1,6 @@ - #include - --GLADE_ICON ICON "../data/icons/glade.ico" -+GLADE_ICON ICON "@top_srcdir@/data/icons/glade.ico" - - VS_VERSION_INFO VERSIONINFO - FILEVERSION @GLADE_MAJOR_VERSION@,@GLADE_MINOR_VERSION@,@GLADE_MICRO_VERSION@,0 diff --git a/mingw-w64-glade/PKGBUILD b/mingw-w64-glade/PKGBUILD index 34083867b9..1e02851df7 100644 --- a/mingw-w64-glade/PKGBUILD +++ b/mingw-w64-glade/PKGBUILD @@ -3,7 +3,7 @@ _realname=glade pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.18.3 -pkgrel=3 +pkgrel=4 pkgdesc="User interface builder for GTK+ and GNOME (mingw-w64)" arch=('any') url="http://glade.gnome.org" @@ -25,29 +25,30 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-python2: Python widgets support" ) url="http://glade.gnome.org/" install=glade-${CARCH}.install -source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz + 0001-Fix-windres-invocation.mingw.patch 0004-give-cc-to-gir-scanner.all.patch 0005-give-gtk-cflags-to-gir.patch 0006-disable-gnome-help.patch 0007-glade-3.16.1-no-undefined.patch - 0008-localedir-fix.patch - 0009-icon-rc-relative.patch) + 0008-localedir-fix.patch) md5sums=('6852d6286683728e0ea40ca9b5d2416f' + '0605a5d30457be0cdf4061c07f1096f2' 'fb4d5a33bbfea33b6437c85a9ac567c8' '294197385457bdc58905a32b6d0e9e1e' '3ebefeb0d48ff89f7992e5046ce9f09c' '15aa17f408e551a19a5419d6db51a58a' - '48f5c9d78b9140d7e677a28a6d620ce3' - 'f1c38e6e5ab0c24a40261fa02c4ec799') + '48f5c9d78b9140d7e677a28a6d620ce3') prepare() { cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i ${srcdir}/0001-Fix-windres-invocation.mingw.patch patch -p1 -i ${srcdir}/0004-give-cc-to-gir-scanner.all.patch patch -p1 -i ${srcdir}/0005-give-gtk-cflags-to-gir.patch patch -p1 -i ${srcdir}/0006-disable-gnome-help.patch patch -p1 -i ${srcdir}/0007-glade-3.16.1-no-undefined.patch patch -p1 -i ${srcdir}/0008-localedir-fix.patch - patch -p1 -i ${srcdir}/0009-icon-rc-relative.patch + autoreconf -fi } From d10499a4c40ce3f393ae013f300d53f4f13de4a4 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 17 Jun 2015 23:38:48 +0100 Subject: [PATCH 1168/2060] qt-installer-framework: Add qminimal QTPLUGIN Partial fix for installing from the command line. Doing this causes a crash now. Progress, of a sort .. --- ...Use-QTPLUGIN-qminimal-on-Windows-too.patch | 27 +++++++++++++++++++ mingw-w64-qt-installer-framework/PKGBUILD | 19 +++++++------ 2 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-qt-installer-framework/0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch diff --git a/mingw-w64-qt-installer-framework/0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch b/mingw-w64-qt-installer-framework/0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch new file mode 100644 index 0000000000..fddcc70c98 --- /dev/null +++ b/mingw-w64-qt-installer-framework/0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch @@ -0,0 +1,27 @@ +From d81c023ede33b483f131db24a9c7257ea140e989 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 16 Jun 2015 23:14:23 +0100 +Subject: [PATCH 8/8] Use QTPLUGIN += qminimal on Windows too + +Fixes: http://sourceforge.net/p/msys2/tickets/149/ +See also: https://bugreports.qt.io/browse/QTIFW-166 +--- + src/sdk/sdk.pro | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/sdk/sdk.pro b/src/sdk/sdk.pro +index 1285109..871df89 100644 +--- a/src/sdk/sdk.pro ++++ b/src/sdk/sdk.pro +@@ -10,7 +10,7 @@ QT += network qml xml widgets + # add the minimal plugin in static build to be able to start the installer headless with: + # installer-binary -platform minimal + # using QT += qpa_minimal_plugin would result in a minimal only compiled version +-!win32:CONFIG(static, static|shared) { ++CONFIG(static, static|shared) { + QTPLUGIN += qminimal + } + +-- +2.4.3 + diff --git a/mingw-w64-qt-installer-framework/PKGBUILD b/mingw-w64-qt-installer-framework/PKGBUILD index 50be95fe79..815aee0877 100644 --- a/mingw-w64-qt-installer-framework/PKGBUILD +++ b/mingw-w64-qt-installer-framework/PKGBUILD @@ -3,7 +3,7 @@ _realname=installer-framework pkgname="${MINGW_PACKAGE_PREFIX}-qt-${_realname}-git" pkgdesc="The Qt Installer Framework used for the Qt SDK installer" -pkgver=r2726.6969b19 +pkgver=r2741.b753081 pkgrel=1 arch=('any') url='http://qt-project.org/' @@ -19,14 +19,16 @@ source=("${_realname}"::"git+https://github.com/qtproject/${_realname}.git" "0004-add-dirExists-fuction.patch" "0005-Fix-RunProgram-variable-substitution.patch" "0006-Don-t-remove-files-that-live-outside-of-path.patch" - "0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch") + "0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch" + "0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch") md5sums=('SKIP' - '614046f9d32cf592c98856c195bbbba6' - '7b62c737eeac2ff27c00bf88be66c166' - '61d67ae4eee1a326fad6c0f8d2d33b7a' - '60256394727e6030eec58b2f2b0cf292' - 'bce0847b5d5438fcf934149646ec8ea5' - '648c0235e6af8b3787ec1f10c0cbc43d') + '19f0a7498ee991db0fcfc36ad755999c' + '536ce871a0c9fd00494841598c7b6f8f' + '01dd96f5da76f3e8e7fcf4af35c08881' + '1964ae60b6969a8a68f1266a21b52477' + '26536cd41a6e979e9af8d1391e530e7a' + '6b29e546704958ac0e7d7c79e4614277' + 'bbb01ba862ecd329ccc2e416b3e15d9d') pkgver() { cd "$srcdir"/${_realname} @@ -45,6 +47,7 @@ prepare() { # https://github.com/msys2/msys2.github.io/issues/4 git am "${srcdir}"/0006-Don-t-remove-files-that-live-outside-of-path.patch git am "${srcdir}"/0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch + git am "${srcdir}"/0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch } build() { From 1adcd0f63863fd4bcf3a9b5854ad6a2328157a73 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 18 Jun 2015 09:09:19 +0300 Subject: [PATCH 1169/2060] lua: Update to 5.3.1 --- mingw-w64-lua/PKGBUILD | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/mingw-w64-lua/PKGBUILD b/mingw-w64-lua/PKGBUILD index e0a7ecb3fe..a49a2d828f 100644 --- a/mingw-w64-lua/PKGBUILD +++ b/mingw-w64-lua/PKGBUILD @@ -4,7 +4,7 @@ _realname=lua pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.3.0 +pkgver=5.3.1 pkgrel=1 pkgdesc="A powerful light-weight programming language designed for extending applications. (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ source=("$url/ftp/lua-$pkgver.tar.gz" 'lua.pc' 'searchpath.patch' 'implib.patch') -md5sums=('a1b0a7e92d0c85bbff7a8d27bf29f8af' +md5sums=('797adacada8d85761c079390ff1d9961' 'e7ba6c2b695b0b84a5ea0cbff5fc9067' 'd326b414c07e71140eca36644139ed5c' '311bd695726bd42279e7d786a494b9cf') @@ -27,14 +27,13 @@ prepare() { cp "${srcdir}/lua.pc" . patch -p0 -i "${srcdir}/implib.patch" patch -p0 -i "${srcdir}/searchpath.patch" - - mkdir -p "${srcdir}/build-${CARCH}" - cp -r * "${srcdir}/build-${CARCH}" } build() { + [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" + cp -rf "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - sed -e "s|%VER%|${pkgver%.*}|g;s|%REL%|$pkgver|g" \ + sed -e "s|%VER%|${pkgver%.*}|g;s|%REL%|${pkgver}|g" \ -e "s|/usr|${MINGW_PREFIX}|g" \ -i lua.pc From d70dbcaa30488c13b3811ab9bb1af3c592b91d7b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 18 Jun 2015 10:40:57 +0300 Subject: [PATCH 1170/2060] curl: Update to 7.43.0 --- .../0003-curl-mingw-text-mode-for-netrc.patch | 11 - ...te-domain-from-the-realm-in-the-chal.patch | 211 ------------------ mingw-w64-curl/PKGBUILD | 22 +- 3 files changed, 8 insertions(+), 236 deletions(-) delete mode 100644 mingw-w64-curl/0003-curl-mingw-text-mode-for-netrc.patch delete mode 100644 mingw-w64-curl/0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch diff --git a/mingw-w64-curl/0003-curl-mingw-text-mode-for-netrc.patch b/mingw-w64-curl/0003-curl-mingw-text-mode-for-netrc.patch deleted file mode 100644 index 0fca7c4550..0000000000 --- a/mingw-w64-curl/0003-curl-mingw-text-mode-for-netrc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- curl-7.42.1.orig/lib/netrc.c 2015-04-29 09:06:52.000000000 +0300 -+++ curl-7.42.1/lib/netrc.c 2015-05-05 11:50:44.725023100 +0300 -@@ -109,7 +109,7 @@ - netrc_alloc = TRUE; - } - -- file = fopen(netrcfile, "r"); -+ file = fopen(netrcfile, "rt"); - if(netrc_alloc) - free(netrcfile); - if(file) { diff --git a/mingw-w64-curl/0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch b/mingw-w64-curl/0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch deleted file mode 100644 index fba529492e..0000000000 --- a/mingw-w64-curl/0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch +++ /dev/null @@ -1,211 +0,0 @@ -From 59f3f92ba6150e9a5a57f71b6e781802148916d0 Mon Sep 17 00:00:00 2001 -From: Grant Pannell -Date: Sun, 26 Apr 2015 16:12:23 +0200 -Subject: [PATCH] sasl_sspi: Populate domain from the realm in the challenge - -Without this, SSPI based digest auth was broken. - -Bug: https://github.com/bagder/curl/pull/141.patch ---- - lib/curl_sasl.c | 14 +++++----- - lib/curl_sasl.h | 9 +++++++ - lib/curl_sasl_sspi.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ - lib/curl_sspi.h | 4 +++ - 4 files changed, 95 insertions(+), 6 deletions(-) - -diff --git a/lib/curl_sasl.c b/lib/curl_sasl.c -index d9f63ab..68646bc 100644 ---- a/lib/curl_sasl.c -+++ b/lib/curl_sasl.c -@@ -76,9 +76,6 @@ const struct { - #define DIGEST_QOP_VALUE_STRING_AUTH_INT "auth-int" - #define DIGEST_QOP_VALUE_STRING_AUTH_CONF "auth-conf" - --#define DIGEST_MAX_VALUE_LENGTH 256 --#define DIGEST_MAX_CONTENT_LENGTH 1024 -- - /* The CURL_OUTPUT_DIGEST_CONV macro below is for non-ASCII machines. - It converts digest text to ASCII so the MD5 will be correct for - what ultimately goes over the network. -@@ -90,13 +87,16 @@ const struct { - return result; \ - } - -+#endif -+ -+#if !defined(CURL_DISABLE_CRYPTO_AUTH) - /* - * Returns 0 on success and then the buffers are filled in fine. - * - * Non-zero means failure to parse. - */ --static int sasl_digest_get_pair(const char *str, char *value, char *content, -- const char **endptr) -+int Curl_sasl_digest_get_pair(const char *str, char *value, char *content, -+ const char **endptr) - { - int c; - bool starts_with_quote = FALSE; -@@ -157,7 +157,9 @@ static int sasl_digest_get_pair(const char *str, char *value, char *content, - - return 0; /* all is fine! */ - } -+#endif - -+#if !defined(CURL_DISABLE_CRYPTO_AUTH) && !defined(USE_WINDOWS_SSPI) - /* Convert md5 chunk to RFC2617 (section 3.1.3) -suitable ascii string*/ - static void sasl_digest_md5_to_ascii(unsigned char *source, /* 16 bytes */ - unsigned char *dest) /* 33 bytes */ -@@ -776,7 +778,7 @@ CURLcode Curl_sasl_decode_digest_http_message(const char *chlg, - chlg++; - - /* Extract a value=content pair */ -- if(!sasl_digest_get_pair(chlg, value, content, &chlg)) { -+ if(!Curl_sasl_digest_get_pair(chlg, value, content, &chlg)) { - if(Curl_raw_equal(value, "nonce")) { - digest->nonce = strdup(content); - if(!digest->nonce) -diff --git a/lib/curl_sasl.h b/lib/curl_sasl.h -index 0dc7377..117d60e 100644 ---- a/lib/curl_sasl.h -+++ b/lib/curl_sasl.h -@@ -65,6 +65,11 @@ struct kerberos5data; - #define SASL_MECH_STRING_NTLM "NTLM" - #define SASL_MECH_STRING_XOAUTH2 "XOAUTH2" - -+#if !defined(CURL_DISABLE_CRYPTO_AUTH) -+#define DIGEST_MAX_VALUE_LENGTH 256 -+#define DIGEST_MAX_CONTENT_LENGTH 1024 -+#endif -+ - enum { - CURLDIGESTALGO_MD5, - CURLDIGESTALGO_MD5SESS -@@ -136,6 +141,10 @@ char *Curl_sasl_build_spn(const char *service, const char *instance); - TCHAR *Curl_sasl_build_spn(const char *service, const char *instance); - #endif - -+/* This is used to extract the realm from a challenge message */ -+int Curl_sasl_digest_get_pair(const char *str, char *value, char *content, -+ const char **endptr); -+ - #if defined(HAVE_GSSAPI) - char *Curl_sasl_build_gssapi_spn(const char *service, const char *host); - #endif -diff --git a/lib/curl_sasl_sspi.c b/lib/curl_sasl_sspi.c -index 0a332e6..b149530 100644 ---- a/lib/curl_sasl_sspi.c -+++ b/lib/curl_sasl_sspi.c -@@ -40,6 +40,7 @@ - #include "sendf.h" - #include "strdup.h" - #include "curl_printf.h" -+#include "rawstr.h" - - /* The last #include files should be: */ - #include "curl_memory.h" -@@ -274,6 +275,74 @@ CURLcode Curl_sasl_create_digest_md5_message(struct SessionHandle *data, - } - - /* -+* Curl_override_sspi_http_realm() -+* -+* This is used to populate the domain in a SSPI identity structure -+* The realm is extracted from the challenge message and used as the -+* domain if it is not already explicitly set. -+* -+* Parameters: -+* -+* chlg [in] - The challenge message. -+* identity [in/out] - The identity structure. -+* -+* Returns CURLE_OK on success. -+*/ -+CURLcode Curl_override_sspi_http_realm(const char *chlg, -+ SEC_WINNT_AUTH_IDENTITY *identity) -+{ -+ xcharp_u domain, dup_domain; -+ -+ /* If domain is blank or unset, check challenge message for realm */ -+ if(!identity->Domain || !identity->DomainLength) { -+ for(;;) { -+ char value[DIGEST_MAX_VALUE_LENGTH]; -+ char content[DIGEST_MAX_CONTENT_LENGTH]; -+ -+ /* Pass all additional spaces here */ -+ while(*chlg && ISSPACE(*chlg)) -+ chlg++; -+ -+ /* Extract a value=content pair */ -+ if(!Curl_sasl_digest_get_pair(chlg, value, content, &chlg)) { -+ if(Curl_raw_equal(value, "realm")) { -+ -+ /* Setup identity's domain and length */ -+ domain.tchar_ptr = Curl_convert_UTF8_to_tchar((char *)content); -+ if(!domain.tchar_ptr) -+ return CURLE_OUT_OF_MEMORY; -+ dup_domain.tchar_ptr = _tcsdup(domain.tchar_ptr); -+ if(!dup_domain.tchar_ptr) { -+ Curl_unicodefree(domain.tchar_ptr); -+ return CURLE_OUT_OF_MEMORY; -+ } -+ identity->Domain = dup_domain.tbyte_ptr; -+ identity->DomainLength = curlx_uztoul(_tcslen(dup_domain.tchar_ptr)); -+ dup_domain.tchar_ptr = NULL; -+ -+ Curl_unicodefree(domain.tchar_ptr); -+ } -+ else { -+ /* unknown specifier, ignore it! */ -+ } -+ } -+ else -+ break; /* we're done here */ -+ -+ /* Pass all additional spaces here */ -+ while(*chlg && ISSPACE(*chlg)) -+ chlg++; -+ -+ /* Allow the list to be comma-separated */ -+ if(',' == *chlg) -+ chlg++; -+ } -+ } -+ -+ return CURLE_OK; -+} -+ -+/* - * Curl_sasl_decode_digest_http_message() - * - * This is used to decode a HTTP DIGEST challenge message into the seperate -@@ -374,6 +443,11 @@ CURLcode Curl_sasl_create_digest_http_message(struct SessionHandle *data, - if(Curl_create_sspi_identity(userp, passwdp, &identity)) - return CURLE_OUT_OF_MEMORY; - -+ /* Populate our identity domain */ -+ if(Curl_override_sspi_http_realm((const char*)digest->input_token, -+ &identity)) -+ return CURLE_OUT_OF_MEMORY; -+ - /* Allow proper cleanup of the identity structure */ - p_identity = &identity; - } -diff --git a/lib/curl_sspi.h b/lib/curl_sspi.h -index 7fa308c..8655715 100644 ---- a/lib/curl_sspi.h -+++ b/lib/curl_sspi.h -@@ -43,6 +43,10 @@ - CURLcode Curl_sspi_global_init(void); - void Curl_sspi_global_cleanup(void); - -+/* This is used to populate the domain in a SSPI identity structure */ -+CURLcode Curl_override_sspi_http_realm(const char *chlg, -+ SEC_WINNT_AUTH_IDENTITY *identity); -+ - /* This is used to generate an SSPI identity structure */ - CURLcode Curl_create_sspi_identity(const char *userp, const char *passwdp, - SEC_WINNT_AUTH_IDENTITY *identity); --- -2.3.7.windows.1 - diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 0a225f855e..210e2681ec 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -5,8 +5,8 @@ _variant=-openssl _realname=curl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=7.42.1 -pkgrel=3 +pkgver=7.43.0 +pkgrel=1 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" @@ -26,26 +26,20 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gnutls") ) options=('staticlibs') -source=("$url/download/${_realname}-$pkgver.tar.bz2"{,.asc} +source=("$url/download/${_realname}-${pkgver}.tar.bz2"{,.asc} "0001-curl-relocation.patch" - "0002-curl-mingw-enable-static.patch" - "0003-curl-mingw-text-mode-for-netrc.patch" - "0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch") -md5sums=('296945012ce647b94083ed427c1877a8' + "0002-curl-mingw-enable-static.patch") +md5sums=('11bddbb452a8b766b932f859aaeeed39' 'SKIP' '58520051c4ed77781d233c3fa40a5435' - 'eac9e212e619490966ae47004bec547b' - 'c35c31a1c8ed28c75be93e5bf95c8c9e' - '8d16dedc48b53f9406ab103a74889681') + 'eac9e212e619490966ae47004bec547b') validpgpkeys=('914C533DF9B2ADA2204F586D78E11C6B279D5C91') # Daniel Stenberg prepare() { - cd "${_realname}-$pkgver" + cd "${_realname}-${pkgver}" rm -f lib/pathtools.h lib/pathtools.c > /dev/null 2>&1 || true patch -p1 -i "${srcdir}/0001-curl-relocation.patch" patch -p1 -i "${srcdir}/0002-curl-mingw-enable-static.patch" - patch -p1 -i "${srcdir}/0003-curl-mingw-text-mode-for-netrc.patch" - patch -p1 -i "${srcdir}/0004-sasl_sspi-Populate-domain-from-the-realm-in-the-chal.patch" autoreconf -vfi } @@ -91,5 +85,5 @@ build() { package() { cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } From 962046493676b311674abc56e8a67a80939fba23 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Thu, 18 Jun 2015 12:10:50 -0300 Subject: [PATCH 1171/2060] json-glib: Install license file. --- mingw-w64-json-glib/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-json-glib/PKGBUILD b/mingw-w64-json-glib/PKGBUILD index 1c854692f6..debad43ad3 100644 --- a/mingw-w64-json-glib/PKGBUILD +++ b/mingw-w64-json-glib/PKGBUILD @@ -3,7 +3,7 @@ _realname=json-glib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.4 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="JSON-GLib implements a full suite of JSON-related tools using GLib and GObject (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2") @@ -11,7 +11,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") options=('strip' 'staticlibs') -license=("LGPL2+") +license=('LGPL2.1+') url="https://wiki.gnome.org/Projects/JsonGlib" source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz" 0001-Give-CC-to-gir-scanner.patch) @@ -41,4 +41,5 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 22cbb9d4a625b533d4340c980d1d9d7e6dbb254c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 19 Jun 2015 12:21:31 +0300 Subject: [PATCH 1172/2060] harfbuzz: Update to 0.9.41 --- mingw-w64-harfbuzz/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 0235695eba..4011802b6f 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -3,8 +3,8 @@ _realname=harfbuzz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.40 -pkgrel=2 +pkgver=0.9.41 +pkgrel=1 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/HarfBuzz" @@ -20,7 +20,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cairo" options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") -sha256sums=('1771d53583be6d91ca961854b2a24fb239ef0545eed221ae3349abae0ab8321f') +sha256sums=('d81aa53d0c02b437beeaac159d7fc16394d676bbce0860fb6f6a10b587dc057c') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -28,6 +28,7 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ @@ -49,6 +50,6 @@ check(){ package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From bb5a9ce83d423c5bd6c48085f9523f8429373516 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 19 Jun 2015 13:47:14 +0300 Subject: [PATCH 1173/2060] gdal: Update to 2.0.0 --- .../02-poppler-0_31-compatibility.patch | 134 ------------------ mingw-w64-gdal/PKGBUILD | 11 +- 2 files changed, 4 insertions(+), 141 deletions(-) delete mode 100644 mingw-w64-gdal/02-poppler-0_31-compatibility.patch diff --git a/mingw-w64-gdal/02-poppler-0_31-compatibility.patch b/mingw-w64-gdal/02-poppler-0_31-compatibility.patch deleted file mode 100644 index fc598573eb..0000000000 --- a/mingw-w64-gdal/02-poppler-0_31-compatibility.patch +++ /dev/null @@ -1,134 +0,0 @@ -From eca710c9648eb204ed424902b996bdccf91f782c Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Sat, 7 Feb 2015 21:47:35 +0000 -Subject: [PATCH] PDF: add compatibility with Poppler 0.31.0 - -git-svn-id: https://svn.osgeo.org/gdal/trunk@28438 f0d54148-0727-0410-94bb-9a71ac55c965 ---- - gdal/frmts/pdf/pdfdataset.cpp | 7 ++--- - gdal/frmts/pdf/pdfio.cpp | 59 +++++++++++++++++++++++++++++++++++++++++-- - gdal/frmts/pdf/pdfio.h | 4 +++ - 3 files changed, 63 insertions(+), 7 deletions(-) - -diff --git a/gdal/frmts/pdf/pdfdataset.cpp b/gdal/frmts/pdf/pdfdataset.cpp -index e32356c..06624a3 100644 ---- a/gdal/frmts/pdf/pdfdataset.cpp -+++ b/gdal/frmts/pdf/pdfdataset.cpp -@@ -128,12 +128,9 @@ class GDALPDFOutputDev : public SplashOutputDev - - public: - GDALPDFOutputDev(SplashColorMode colorModeA, int bitmapRowPadA, -- GBool reverseVideoA, SplashColorPtr paperColorA, -- GBool bitmapTopDownA = gTrue, -- GBool allowAntialiasA = gTrue) : -+ GBool reverseVideoA, SplashColorPtr paperColorA) : - SplashOutputDev(colorModeA, bitmapRowPadA, -- reverseVideoA, paperColorA, -- bitmapTopDownA, allowAntialiasA), -+ reverseVideoA, paperColorA), - bEnableVector(TRUE), - bEnableText(TRUE), - bEnableBitmap(TRUE) {} -diff --git a/gdal/frmts/pdf/pdfio.cpp b/gdal/frmts/pdf/pdfio.cpp -index 3b70bd0..888856c 100644 ---- a/gdal/frmts/pdf/pdfio.cpp -+++ b/gdal/frmts/pdf/pdfio.cpp -@@ -37,13 +37,25 @@ - - CPL_CVSID("$Id$"); - -+ -+#ifdef POPPLER_BASE_STREAM_HAS_TWO_ARGS -+/* Poppler 0.31.0 is the first one that needs to know the file size */ -+static vsi_l_offset VSIPDFFileStreamGetSize(VSILFILE* f) -+{ -+ VSIFSeekL(f, 0, SEEK_END); -+ vsi_l_offset nSize = VSIFTellL(f); -+ VSIFSeekL(f, 0, SEEK_SET); -+ return nSize; -+} -+#endif -+ - /************************************************************************/ - /* VSIPDFFileStream() */ - /************************************************************************/ - - VSIPDFFileStream::VSIPDFFileStream(VSILFILE* f, const char* pszFilename, Object *dictA): - #ifdef POPPLER_BASE_STREAM_HAS_TWO_ARGS -- BaseStream(dictA, 0) -+ BaseStream(dictA, (setPos_offset_type)VSIPDFFileStreamGetSize(f)) - #else - BaseStream(dictA) - #endif -@@ -193,7 +205,7 @@ int VSIPDFFileStream::FillBuffer() - /* getChar() */ - /************************************************************************/ - --/* The unoptimized version performs a bit well since we must go through */ -+/* The unoptimized version performs a bit less since we must go through */ - /* the whole virtual I/O chain for each character reading. We save a few */ - /* percent with this extra internal caching */ - -@@ -324,4 +336,47 @@ void VSIPDFFileStream::moveStart(moveStart_delta_type delta) - nPosInBuffer = nBufferLength = -1; - } - -+/************************************************************************/ -+/* hasGetChars() */ -+/************************************************************************/ -+ -+GBool VSIPDFFileStream::hasGetChars() -+{ -+ return true; -+} -+ -+/************************************************************************/ -+/* getChars() */ -+/************************************************************************/ -+ -+int VSIPDFFileStream::getChars(int nChars, Guchar *buffer) -+{ -+ int nRead = 0; -+ while (nRead < nChars) -+ { -+ int nToRead = nChars - nRead; -+ if (nPosInBuffer == nBufferLength) -+ { -+ if (!bLimited && nToRead > BUFFER_SIZE) -+ { -+ int nJustRead = (int) VSIFReadL(buffer + nRead, 1, nToRead, f); -+ nPosInBuffer = nBufferLength = -1; -+ nCurrentPos += nJustRead; -+ nRead += nJustRead; -+ break; -+ } -+ else if (!FillBuffer() || nPosInBuffer >= nBufferLength) -+ break; -+ } -+ if( nToRead > nBufferLength - nPosInBuffer ) -+ nToRead = nBufferLength - nPosInBuffer; -+ -+ memcpy( buffer + nRead, abyBuffer + nPosInBuffer, nToRead ); -+ nPosInBuffer += nToRead; -+ nCurrentPos += nToRead; -+ nRead += nToRead; -+ } -+ return nRead; -+} -+ - #endif -diff --git a/gdal/frmts/pdf/pdfio.h b/gdal/frmts/pdf/pdfio.h -index 4a1b921..d31da90 100644 ---- a/gdal/frmts/pdf/pdfio.h -+++ b/gdal/frmts/pdf/pdfio.h -@@ -93,6 +93,10 @@ class VSIPDFFileStream: public BaseStream - virtual void close(); - - private: -+ /* Added in poppler 0.15.0 */ -+ virtual GBool hasGetChars(); -+ virtual int getChars(int nChars, Guchar *buffer); -+ - VSIPDFFileStream *poParent; - GooString *poFilename; - VSILFILE *f; diff --git a/mingw-w64-gdal/PKGBUILD b/mingw-w64-gdal/PKGBUILD index 55dfbd1b87..fbe93a4cad 100644 --- a/mingw-w64-gdal/PKGBUILD +++ b/mingw-w64-gdal/PKGBUILD @@ -5,8 +5,8 @@ _realname=gdal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.11.2 -pkgrel=3 +pkgver=2.0.0 +pkgrel=1 pkgdesc="A translator library for raster geospatial data formats (mingw-w64)" arch=('any') url="http://www.gdal.org/" @@ -39,16 +39,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-cfitsio" "${MINGW_PACKAGE_PREFIX}-xz") options=('strip' 'staticlibs') -source=(http://download.osgeo.org/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz - 02-poppler-0_31-compatibility.patch) -sha256sums=('66bc8192d24e314a66ed69285186d46e6999beb44fc97eeb9c76d82a117c0845' - '76fe85f69ac13944aa4cf1b0fea80077806591b19040c825cc86ed06257268ac') +source=(http://download.osgeo.org/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz) +sha256sums=('53761563ff53c5bf27bff7c4d6cab8bb1634baccefda05348e0f3b7acaf4c9e6') prepare() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} cd "${srcdir}/build-${MINGW_CHOST}" - patch -p2 -i ${srcdir}/02-poppler-0_31-compatibility.patch sed -i "s|/usr/local|${MINGW_PREFIX}|g" configure.in sed -i "s|/usr|${MINGW_PREFIX}|g" configure.in From a31472809e181e688bc16ef4c50762c624018254 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 19 Jun 2015 20:55:51 +0300 Subject: [PATCH 1174/2060] ca-certificates: Update to 20150426. Add "StartCom Class 1 Primary Intermediate Server CA" certificate. --- mingw-w64-ca-certificates/PKGBUILD | 50 +- .../diff-from-upstream-2.3.patch | 2250 +++++++++++++++++ 2 files changed, 2281 insertions(+), 19 deletions(-) create mode 100644 mingw-w64-ca-certificates/diff-from-upstream-2.3.patch diff --git a/mingw-w64-ca-certificates/PKGBUILD b/mingw-w64-ca-certificates/PKGBUILD index 5adeee160f..31356fb385 100644 --- a/mingw-w64-ca-certificates/PKGBUILD +++ b/mingw-w64-ca-certificates/PKGBUILD @@ -2,7 +2,7 @@ _realname=ca-certificates pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=20141019 +pkgver=20150426 pkgrel=1 pkgdesc='Common CA certificates (mingw-w64)' arch=('any') @@ -10,7 +10,9 @@ url='http://packages.qa.debian.org/c/ca-certificates.html' license=('MPL' 'GPL') install="ca-certificates-${CARCH}.install" source=("http://ftp.debian.org/debian/pool/main/c/${_realname}/${_realname}_${pkgver}.tar.xz" + 'StartSSL.sub.class1.server.ca.pem'::'http://www.startssl.com/certs/sub.class1.server.ca.pem' 'certdata2pem-redhat.patch' + 'diff-from-upstream-2.3.patch' 'trust-fixes' 'update-ca-trust' 'update-ca-trust.8') @@ -19,8 +21,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-p11-kit" "${MINGW_PACKAGE_PREFIX}-python2" 'asciidoc' 'python2' 'libxslt' 'sed' 'grep') -md5sums=('f619282081c8bfc65ea64c37fa5285ed' +md5sums=('717455f13fb31fd014a11a468ea3895d' + 'ecd5a4cdf352cf31859cf57dd5f110b7' '2c8500579308a100425f4ddb0d61a9ea' + 'a4ebdb731affc54e6be17717d9fea1f0' 'ecfa72ad51c9a1c4488a3474b8def35b' 'b9e6692146cda711e3b7d2974502e446' 'b00295801f7b39694ad16869e846c227') @@ -31,6 +35,7 @@ prepare() { cp ${srcdir}/update-ca-trust sbin/ cp ${srcdir}/update-ca-trust.8 sbin/ patch -p1 -i ${srcdir}/certdata2pem-redhat.patch + patch -p0 -i ${srcdir}/diff-from-upstream-2.3.patch sed "s|/usr/bin/python|${MINGW_PREFIX}/bin/python2|g" -i mozilla/certdata2pem.py } @@ -64,41 +69,48 @@ EOF > info.trust > info.notrust + # Add custom certificate + echo '# alias="StartCom Class 1 Primary Intermediate Server CA"' > StartSSL.sub.class1.server.ca.crt + echo '# trust=CKA_TRUST_CODE_SIGNING CKA_TRUST_EMAIL_PROTECTION CKA_TRUST_SERVER_AUTH' >> StartSSL.sub.class1.server.ca.crt + echo '# distrust=' >> StartSSL.sub.class1.server.ca.crt + echo '# openssl-trust=codeSigning emailProtection serverAuth' >> StartSSL.sub.class1.server.ca.crt + cat "${srcdir}/StartSSL.sub.class1.server.ca.pem" >> StartSSL.sub.class1.server.ca.crt + local f= for f in *.crt do - echo "processing $f" - tbits=`sed -n '/^# openssl-trust/{s/^.*=//;p;}' $f` - distbits=`sed -n '/^# openssl-distrust/{s/^.*=//;p;}' $f` - alias=`sed -n '/^# alias=/{s/^.*=//;p;q;}' $f | sed "s/'//g" | sed 's/"//g'` + echo "processing ${f}" + tbits=`sed -n '/^# openssl-trust/{s/^.*=//;p;}' ${f}` + distbits=`sed -n '/^# openssl-distrust/{s/^.*=//;p;}' ${f}` + alias=`sed -n '/^# alias=/{s/^.*=//;p;q;}' ${f} | sed "s/'//g" | sed 's/"//g'` targs="" - if [ -n "$tbits" ] + if [ -n "${tbits}" ] then - for t in $tbits + for t in ${tbits} do - targs="${targs} -addtrust $t" + targs="${targs} -addtrust ${t}" done fi - if [ -n "$distbits" ] + if [ -n "${distbits}" ] then - for t in $distbits + for t in ${distbits} do - targs="${targs} -addreject $t" + targs="${targs} -addreject ${t}" done fi - if [ -n "$targs" ] + if [ -n "${targs}" ] then - echo "trust flags $targs for $f" >> info.trust - ${MINGW_PREFIX}/bin/openssl x509 -text -in "$f" -trustout $targs -setalias "$alias" >> ${srcdir}/${_realname}-${pkgver}/ca-bundle.trust.crt + echo "trust flags $targs for ${f}" >> info.trust + ${MINGW_PREFIX}/bin/openssl x509 -text -in "${f}" -trustout ${targs} -setalias "${alias}" >> ${srcdir}/${_realname}-${pkgver}/ca-bundle.trust.crt else - echo "no trust flags for $f" >> tee -a info.notrust - ${MINGW_PREFIX}/bin/openssl x509 -text -in "$f" -setalias "$alias" >> ${srcdir}/${_realname}-${pkgver}/ca-bundle.neutral-trust.crt + echo "no trust flags for ${f}" >> tee -a info.notrust + ${MINGW_PREFIX}/bin/openssl x509 -text -in "${f}" -setalias "${alias}" >> ${srcdir}/${_realname}-${pkgver}/ca-bundle.neutral-trust.crt fi done for p in *.p11-kit do - cat $p >> ${srcdir}/${_realname}-${pkgver}/ca-bundle.supplement.p11-kit + cat ${p} >> ${srcdir}/${_realname}-${pkgver}/ca-bundle.supplement.p11-kit done cat trust-fixes >> ${srcdir}/${_realname}-${pkgver}/ca-bundle.supplement.p11-kit } @@ -121,7 +133,7 @@ package() { mkdir -p ${pkgdir}${MINGW_PREFIX}/share/pki/ca-trust-source for file in ca-bundle.{trust.crt,neutral-trust.crt,supplement.p11-kit} do - cp -f $file ${pkgdir}${MINGW_PREFIX}/share/pki/ca-trust-source + cp -f ${file} ${pkgdir}${MINGW_PREFIX}/share/pki/ca-trust-source done # touch all files overwritten by update-ca-trust for easy cleanup diff --git a/mingw-w64-ca-certificates/diff-from-upstream-2.3.patch b/mingw-w64-ca-certificates/diff-from-upstream-2.3.patch new file mode 100644 index 0000000000..588bbaa024 --- /dev/null +++ b/mingw-w64-ca-certificates/diff-from-upstream-2.3.patch @@ -0,0 +1,2250 @@ +--- mozilla/certdata-2.3.txt 2015-03-17 00:03:37.000000000 +0100 ++++ mozilla/certdata.txt 2015-03-20 22:02:52.672993593 +0100 +@@ -23,100 +23,515 @@ + # CKA_SUBJECT DER+base64 (varies) + # CKA_ID byte array (varies) + # CKA_ISSUER DER+base64 (varies) + # CKA_SERIAL_NUMBER DER+base64 (varies) + # CKA_VALUE DER+base64 (varies) + # CKA_NSS_EMAIL ASCII7 (unused here) + # + # Trust + # + # -- Attribute -- -- type -- -- value -- + # CKA_CLASS CK_OBJECT_CLASS CKO_TRUST + # CKA_TOKEN CK_BBOOL CK_TRUE + # CKA_PRIVATE CK_BBOOL CK_FALSE + # CKA_MODIFIABLE CK_BBOOL CK_FALSE + # CKA_LABEL UTF8 (varies) + # CKA_ISSUER DER+base64 (varies) + # CKA_SERIAL_NUMBER DER+base64 (varies) + # CKA_CERT_HASH binary+base64 (varies) + # CKA_EXPIRES CK_DATE (not used here) + # CKA_TRUST_DIGITAL_SIGNATURE CK_TRUST (varies) + # CKA_TRUST_NON_REPUDIATION CK_TRUST (varies) + # CKA_TRUST_KEY_ENCIPHERMENT CK_TRUST (varies) + # CKA_TRUST_DATA_ENCIPHERMENT CK_TRUST (varies) + # CKA_TRUST_KEY_AGREEMENT CK_TRUST (varies) + # CKA_TRUST_KEY_CERT_SIGN CK_TRUST (varies) + # CKA_TRUST_CRL_SIGN CK_TRUST (varies) + # CKA_TRUST_SERVER_AUTH CK_TRUST (varies) + # CKA_TRUST_CLIENT_AUTH CK_TRUST (varies) + # CKA_TRUST_CODE_SIGNING CK_TRUST (varies) + # CKA_TRUST_EMAIL_PROTECTION CK_TRUST (varies) + # CKA_TRUST_IPSEC_END_SYSTEM CK_TRUST (varies) + # CKA_TRUST_IPSEC_TUNNEL CK_TRUST (varies) + # CKA_TRUST_IPSEC_USER CK_TRUST (varies) + # CKA_TRUST_TIME_STAMPING CK_TRUST (varies) + # CKA_TRUST_STEP_UP_APPROVED CK_BBOOL (varies) + # (other trust attributes can be defined) + # + + # + # The object to tell NSS that this is a root list and we don't + # have to go looking for others. + # + BEGINDATA + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_BUILTIN_ROOT_LIST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Mozilla Builtin Roots" + + # ++# Certificate "GTE CyberTrust Global Root" ++# ++# Issuer: CN=GTE CyberTrust Global Root,OU="GTE CyberTrust Solutions, Inc.",O=GTE Corporation,C=US ++# Serial Number: 421 (0x1a5) ++# Subject: CN=GTE CyberTrust Global Root,OU="GTE CyberTrust Solutions, Inc.",O=GTE Corporation,C=US ++# Not Valid Before: Thu Aug 13 00:29:00 1998 ++# Not Valid After : Mon Aug 13 23:59:00 2018 ++# Fingerprint (MD5): CA:3D:D3:68:F1:03:5C:D0:32:FA:B8:2B:59:E8:5A:DB ++# Fingerprint (SHA1): 97:81:79:50:D8:1C:96:70:CC:34:D8:09:CF:79:44:31:36:7E:F4:74 ++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "GTE CyberTrust Global Root" ++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 ++CKA_SUBJECT MULTILINE_OCTAL ++\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123\061 ++\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103\157 ++\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003\125 ++\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162\165 ++\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111\156 ++\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124\105 ++\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157\142 ++\141\154\040\122\157\157\164 ++END ++CKA_ID UTF8 "0" ++CKA_ISSUER MULTILINE_OCTAL ++\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123\061 ++\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103\157 ++\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003\125 ++\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162\165 ++\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111\156 ++\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124\105 ++\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157\142 ++\141\154\040\122\157\157\164 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\002\001\245 ++END ++CKA_VALUE MULTILINE_OCTAL ++\060\202\002\132\060\202\001\303\002\002\001\245\060\015\006\011 ++\052\206\110\206\367\015\001\001\004\005\000\060\165\061\013\060 ++\011\006\003\125\004\006\023\002\125\123\061\030\060\026\006\003 ++\125\004\012\023\017\107\124\105\040\103\157\162\160\157\162\141 ++\164\151\157\156\061\047\060\045\006\003\125\004\013\023\036\107 ++\124\105\040\103\171\142\145\162\124\162\165\163\164\040\123\157 ++\154\165\164\151\157\156\163\054\040\111\156\143\056\061\043\060 ++\041\006\003\125\004\003\023\032\107\124\105\040\103\171\142\145 ++\162\124\162\165\163\164\040\107\154\157\142\141\154\040\122\157 ++\157\164\060\036\027\015\071\070\060\070\061\063\060\060\062\071 ++\060\060\132\027\015\061\070\060\070\061\063\062\063\065\071\060 ++\060\132\060\165\061\013\060\011\006\003\125\004\006\023\002\125 ++\123\061\030\060\026\006\003\125\004\012\023\017\107\124\105\040 ++\103\157\162\160\157\162\141\164\151\157\156\061\047\060\045\006 ++\003\125\004\013\023\036\107\124\105\040\103\171\142\145\162\124 ++\162\165\163\164\040\123\157\154\165\164\151\157\156\163\054\040 ++\111\156\143\056\061\043\060\041\006\003\125\004\003\023\032\107 ++\124\105\040\103\171\142\145\162\124\162\165\163\164\040\107\154 ++\157\142\141\154\040\122\157\157\164\060\201\237\060\015\006\011 ++\052\206\110\206\367\015\001\001\001\005\000\003\201\215\000\060 ++\201\211\002\201\201\000\225\017\240\266\360\120\234\350\172\307 ++\210\315\335\027\016\056\260\224\320\033\075\016\366\224\300\212 ++\224\307\006\310\220\227\310\270\144\032\172\176\154\074\123\341 ++\067\050\163\140\177\262\227\123\007\237\123\371\155\130\224\322 ++\257\215\155\210\147\200\346\355\262\225\317\162\061\312\245\034 ++\162\272\134\002\347\144\102\347\371\251\054\326\072\015\254\215 ++\102\252\044\001\071\346\234\077\001\205\127\015\130\207\105\370 ++\323\205\252\223\151\046\205\160\110\200\077\022\025\307\171\264 ++\037\005\057\073\142\231\002\003\001\000\001\060\015\006\011\052 ++\206\110\206\367\015\001\001\004\005\000\003\201\201\000\155\353 ++\033\011\351\136\331\121\333\147\042\141\244\052\074\110\167\343 ++\240\174\246\336\163\242\024\003\205\075\373\253\016\060\305\203 ++\026\063\201\023\010\236\173\064\116\337\100\310\164\327\271\175 ++\334\364\166\125\175\233\143\124\030\351\360\352\363\134\261\331 ++\213\102\036\271\300\225\116\272\372\325\342\174\365\150\141\277 ++\216\354\005\227\137\133\260\327\243\205\064\304\044\247\015\017 ++\225\223\357\313\224\330\236\037\235\134\205\155\307\252\256\117 ++\037\042\265\315\225\255\272\247\314\371\253\013\172\177 ++END ++ ++# Trust for Certificate "GTE CyberTrust Global Root" ++# Issuer: CN=GTE CyberTrust Global Root,OU="GTE CyberTrust Solutions, Inc.",O=GTE Corporation,C=US ++# Serial Number: 421 (0x1a5) ++# Subject: CN=GTE CyberTrust Global Root,OU="GTE CyberTrust Solutions, Inc.",O=GTE Corporation,C=US ++# Not Valid Before: Thu Aug 13 00:29:00 1998 ++# Not Valid After : Mon Aug 13 23:59:00 2018 ++# Fingerprint (MD5): CA:3D:D3:68:F1:03:5C:D0:32:FA:B8:2B:59:E8:5A:DB ++# Fingerprint (SHA1): 97:81:79:50:D8:1C:96:70:CC:34:D8:09:CF:79:44:31:36:7E:F4:74 ++CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "GTE CyberTrust Global Root" ++CKA_CERT_SHA1_HASH MULTILINE_OCTAL ++\227\201\171\120\330\034\226\160\314\064\330\011\317\171\104\061 ++\066\176\364\164 ++END ++CKA_CERT_MD5_HASH MULTILINE_OCTAL ++\312\075\323\150\361\003\134\320\062\372\270\053\131\350\132\333 ++END ++CKA_ISSUER MULTILINE_OCTAL ++\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123\061 ++\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103\157 ++\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003\125 ++\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162\165 ++\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111\156 ++\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124\105 ++\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157\142 ++\141\154\040\122\157\157\164 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\002\001\245 ++END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE ++ ++# ++# Certificate "Thawte Server CA" ++# ++# Issuer: E=server-certs@thawte.com,CN=Thawte Server CA,OU=Certification Services Division,O=Thawte Consulting cc,L=Cape Town,ST=Western Cape,C=ZA ++# Serial Number: 1 (0x1) ++# Subject: E=server-certs@thawte.com,CN=Thawte Server CA,OU=Certification Services Division,O=Thawte Consulting cc,L=Cape Town,ST=Western Cape,C=ZA ++# Not Valid Before: Thu Aug 01 00:00:00 1996 ++# Not Valid After : Thu Dec 31 23:59:59 2020 ++# Fingerprint (MD5): C5:70:C4:A2:ED:53:78:0C:C8:10:53:81:64:CB:D0:1D ++# Fingerprint (SHA1): 23:E5:94:94:51:95:F2:41:48:03:B4:D5:64:D2:A3:A3:F5:D8:8B:8C ++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "Thawte Server CA" ++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 ++CKA_SUBJECT MULTILINE_OCTAL ++\060\201\304\061\013\060\011\006\003\125\004\006\023\002\132\101 ++\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 ++\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 ++\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 ++\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 ++\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 ++\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 ++\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 ++\163\151\157\156\061\031\060\027\006\003\125\004\003\023\020\124 ++\150\141\167\164\145\040\123\145\162\166\145\162\040\103\101\061 ++\046\060\044\006\011\052\206\110\206\367\015\001\011\001\026\027 ++\163\145\162\166\145\162\055\143\145\162\164\163\100\164\150\141 ++\167\164\145\056\143\157\155 ++END ++CKA_ID UTF8 "0" ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\304\061\013\060\011\006\003\125\004\006\023\002\132\101 ++\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 ++\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 ++\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 ++\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 ++\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 ++\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 ++\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 ++\163\151\157\156\061\031\060\027\006\003\125\004\003\023\020\124 ++\150\141\167\164\145\040\123\145\162\166\145\162\040\103\101\061 ++\046\060\044\006\011\052\206\110\206\367\015\001\011\001\026\027 ++\163\145\162\166\145\162\055\143\145\162\164\163\100\164\150\141 ++\167\164\145\056\143\157\155 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\001\001 ++END ++CKA_VALUE MULTILINE_OCTAL ++\060\202\003\023\060\202\002\174\240\003\002\001\002\002\001\001 ++\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 ++\201\304\061\013\060\011\006\003\125\004\006\023\002\132\101\061 ++\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145\162 ++\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007\023 ++\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006\003 ++\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156\163 ++\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003\125 ++\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151\157 ++\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151\163 ++\151\157\156\061\031\060\027\006\003\125\004\003\023\020\124\150 ++\141\167\164\145\040\123\145\162\166\145\162\040\103\101\061\046 ++\060\044\006\011\052\206\110\206\367\015\001\011\001\026\027\163 ++\145\162\166\145\162\055\143\145\162\164\163\100\164\150\141\167 ++\164\145\056\143\157\155\060\036\027\015\071\066\060\070\060\061 ++\060\060\060\060\060\060\132\027\015\062\060\061\062\063\061\062 ++\063\065\071\065\071\132\060\201\304\061\013\060\011\006\003\125 ++\004\006\023\002\132\101\061\025\060\023\006\003\125\004\010\023 ++\014\127\145\163\164\145\162\156\040\103\141\160\145\061\022\060 ++\020\006\003\125\004\007\023\011\103\141\160\145\040\124\157\167 ++\156\061\035\060\033\006\003\125\004\012\023\024\124\150\141\167 ++\164\145\040\103\157\156\163\165\154\164\151\156\147\040\143\143 ++\061\050\060\046\006\003\125\004\013\023\037\103\145\162\164\151 ++\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143\145 ++\163\040\104\151\166\151\163\151\157\156\061\031\060\027\006\003 ++\125\004\003\023\020\124\150\141\167\164\145\040\123\145\162\166 ++\145\162\040\103\101\061\046\060\044\006\011\052\206\110\206\367 ++\015\001\011\001\026\027\163\145\162\166\145\162\055\143\145\162 ++\164\163\100\164\150\141\167\164\145\056\143\157\155\060\201\237 ++\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 ++\201\215\000\060\201\211\002\201\201\000\323\244\120\156\310\377 ++\126\153\346\317\135\266\352\014\150\165\107\242\252\302\332\204 ++\045\374\250\364\107\121\332\205\265\040\164\224\206\036\017\165 ++\311\351\010\141\365\006\155\060\156\025\031\002\351\122\300\142 ++\333\115\231\236\342\152\014\104\070\315\376\276\343\144\011\160 ++\305\376\261\153\051\266\057\111\310\073\324\047\004\045\020\227 ++\057\347\220\155\300\050\102\231\327\114\103\336\303\365\041\155 ++\124\237\135\303\130\341\300\344\331\133\260\270\334\264\173\337 ++\066\072\302\265\146\042\022\326\207\015\002\003\001\000\001\243 ++\023\060\021\060\017\006\003\125\035\023\001\001\377\004\005\060 ++\003\001\001\377\060\015\006\011\052\206\110\206\367\015\001\001 ++\004\005\000\003\201\201\000\007\372\114\151\134\373\225\314\106 ++\356\205\203\115\041\060\216\312\331\250\157\111\032\346\332\121 ++\343\140\160\154\204\141\021\241\032\310\110\076\131\103\175\117 ++\225\075\241\213\267\013\142\230\172\165\212\335\210\116\116\236 ++\100\333\250\314\062\164\271\157\015\306\343\263\104\013\331\212 ++\157\232\051\233\231\030\050\073\321\343\100\050\232\132\074\325 ++\265\347\040\033\213\312\244\253\215\351\121\331\342\114\054\131 ++\251\332\271\262\165\033\366\102\362\357\307\362\030\371\211\274 ++\243\377\212\043\056\160\107 ++END ++ ++# Trust for Certificate "Thawte Server CA" ++# Issuer: E=server-certs@thawte.com,CN=Thawte Server CA,OU=Certification Services Division,O=Thawte Consulting cc,L=Cape Town,ST=Western Cape,C=ZA ++# Serial Number: 1 (0x1) ++# Subject: E=server-certs@thawte.com,CN=Thawte Server CA,OU=Certification Services Division,O=Thawte Consulting cc,L=Cape Town,ST=Western Cape,C=ZA ++# Not Valid Before: Thu Aug 01 00:00:00 1996 ++# Not Valid After : Thu Dec 31 23:59:59 2020 ++# Fingerprint (MD5): C5:70:C4:A2:ED:53:78:0C:C8:10:53:81:64:CB:D0:1D ++# Fingerprint (SHA1): 23:E5:94:94:51:95:F2:41:48:03:B4:D5:64:D2:A3:A3:F5:D8:8B:8C ++CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "Thawte Server CA" ++CKA_CERT_SHA1_HASH MULTILINE_OCTAL ++\043\345\224\224\121\225\362\101\110\003\264\325\144\322\243\243 ++\365\330\213\214 ++END ++CKA_CERT_MD5_HASH MULTILINE_OCTAL ++\305\160\304\242\355\123\170\014\310\020\123\201\144\313\320\035 ++END ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\304\061\013\060\011\006\003\125\004\006\023\002\132\101 ++\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 ++\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 ++\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 ++\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 ++\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 ++\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 ++\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 ++\163\151\157\156\061\031\060\027\006\003\125\004\003\023\020\124 ++\150\141\167\164\145\040\123\145\162\166\145\162\040\103\101\061 ++\046\060\044\006\011\052\206\110\206\367\015\001\011\001\026\027 ++\163\145\162\166\145\162\055\143\145\162\164\163\100\164\150\141 ++\167\164\145\056\143\157\155 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\001\001 ++END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE ++ ++# ++# Certificate "Thawte Premium Server CA" ++# ++# Issuer: E=premium-server@thawte.com,CN=Thawte Premium Server CA,OU=Certification Services Division,O=Thawte Consulting cc,L=Cape Town,ST=Western Cape,C=ZA ++# Serial Number: 1 (0x1) ++# Subject: E=premium-server@thawte.com,CN=Thawte Premium Server CA,OU=Certification Services Division,O=Thawte Consulting cc,L=Cape Town,ST=Western Cape,C=ZA ++# Not Valid Before: Thu Aug 01 00:00:00 1996 ++# Not Valid After : Thu Dec 31 23:59:59 2020 ++# Fingerprint (MD5): 06:9F:69:79:16:66:90:02:1B:8C:8C:A2:C3:07:6F:3A ++# Fingerprint (SHA1): 62:7F:8D:78:27:65:63:99:D2:7D:7F:90:44:C9:FE:B3:F3:3E:FA:9A ++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "Thawte Premium Server CA" ++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 ++CKA_SUBJECT MULTILINE_OCTAL ++\060\201\316\061\013\060\011\006\003\125\004\006\023\002\132\101 ++\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 ++\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 ++\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 ++\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 ++\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 ++\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 ++\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 ++\163\151\157\156\061\041\060\037\006\003\125\004\003\023\030\124 ++\150\141\167\164\145\040\120\162\145\155\151\165\155\040\123\145 ++\162\166\145\162\040\103\101\061\050\060\046\006\011\052\206\110 ++\206\367\015\001\011\001\026\031\160\162\145\155\151\165\155\055 ++\163\145\162\166\145\162\100\164\150\141\167\164\145\056\143\157 ++\155 ++END ++CKA_ID UTF8 "0" ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\316\061\013\060\011\006\003\125\004\006\023\002\132\101 ++\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 ++\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 ++\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 ++\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 ++\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 ++\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 ++\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 ++\163\151\157\156\061\041\060\037\006\003\125\004\003\023\030\124 ++\150\141\167\164\145\040\120\162\145\155\151\165\155\040\123\145 ++\162\166\145\162\040\103\101\061\050\060\046\006\011\052\206\110 ++\206\367\015\001\011\001\026\031\160\162\145\155\151\165\155\055 ++\163\145\162\166\145\162\100\164\150\141\167\164\145\056\143\157 ++\155 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\001\001 ++END ++CKA_VALUE MULTILINE_OCTAL ++\060\202\003\047\060\202\002\220\240\003\002\001\002\002\001\001 ++\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 ++\201\316\061\013\060\011\006\003\125\004\006\023\002\132\101\061 ++\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145\162 ++\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007\023 ++\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006\003 ++\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156\163 ++\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003\125 ++\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151\157 ++\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151\163 ++\151\157\156\061\041\060\037\006\003\125\004\003\023\030\124\150 ++\141\167\164\145\040\120\162\145\155\151\165\155\040\123\145\162 ++\166\145\162\040\103\101\061\050\060\046\006\011\052\206\110\206 ++\367\015\001\011\001\026\031\160\162\145\155\151\165\155\055\163 ++\145\162\166\145\162\100\164\150\141\167\164\145\056\143\157\155 ++\060\036\027\015\071\066\060\070\060\061\060\060\060\060\060\060 ++\132\027\015\062\060\061\062\063\061\062\063\065\071\065\071\132 ++\060\201\316\061\013\060\011\006\003\125\004\006\023\002\132\101 ++\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 ++\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 ++\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 ++\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 ++\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 ++\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 ++\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 ++\163\151\157\156\061\041\060\037\006\003\125\004\003\023\030\124 ++\150\141\167\164\145\040\120\162\145\155\151\165\155\040\123\145 ++\162\166\145\162\040\103\101\061\050\060\046\006\011\052\206\110 ++\206\367\015\001\011\001\026\031\160\162\145\155\151\165\155\055 ++\163\145\162\166\145\162\100\164\150\141\167\164\145\056\143\157 ++\155\060\201\237\060\015\006\011\052\206\110\206\367\015\001\001 ++\001\005\000\003\201\215\000\060\201\211\002\201\201\000\322\066 ++\066\152\213\327\302\133\236\332\201\101\142\217\070\356\111\004 ++\125\326\320\357\034\033\225\026\107\357\030\110\065\072\122\364 ++\053\152\006\217\073\057\352\126\343\257\206\215\236\027\367\236 ++\264\145\165\002\115\357\313\011\242\041\121\330\233\320\147\320 ++\272\015\222\006\024\163\324\223\313\227\052\000\234\134\116\014 ++\274\372\025\122\374\362\104\156\332\021\112\156\010\237\057\055 ++\343\371\252\072\206\163\266\106\123\130\310\211\005\275\203\021 ++\270\163\077\252\007\215\364\102\115\347\100\235\034\067\002\003 ++\001\000\001\243\023\060\021\060\017\006\003\125\035\023\001\001 ++\377\004\005\060\003\001\001\377\060\015\006\011\052\206\110\206 ++\367\015\001\001\004\005\000\003\201\201\000\046\110\054\026\302 ++\130\372\350\026\164\014\252\252\137\124\077\362\327\311\170\140 ++\136\136\156\067\143\042\167\066\176\262\027\304\064\271\365\010 ++\205\374\311\001\070\377\115\276\362\026\102\103\347\273\132\106 ++\373\301\306\021\037\361\112\260\050\106\311\303\304\102\175\274 ++\372\253\131\156\325\267\121\210\021\343\244\205\031\153\202\114 ++\244\014\022\255\351\244\256\077\361\303\111\145\232\214\305\310 ++\076\045\267\224\231\273\222\062\161\007\360\206\136\355\120\047 ++\246\015\246\043\371\273\313\246\007\024\102 ++END ++ ++# Trust for Certificate "Thawte Premium Server CA" ++# Issuer: E=premium-server@thawte.com,CN=Thawte Premium Server CA,OU=Certification Services Division,O=Thawte Consulting cc,L=Cape Town,ST=Western Cape,C=ZA ++# Serial Number: 1 (0x1) ++# Subject: E=premium-server@thawte.com,CN=Thawte Premium Server CA,OU=Certification Services Division,O=Thawte Consulting cc,L=Cape Town,ST=Western Cape,C=ZA ++# Not Valid Before: Thu Aug 01 00:00:00 1996 ++# Not Valid After : Thu Dec 31 23:59:59 2020 ++# Fingerprint (MD5): 06:9F:69:79:16:66:90:02:1B:8C:8C:A2:C3:07:6F:3A ++# Fingerprint (SHA1): 62:7F:8D:78:27:65:63:99:D2:7D:7F:90:44:C9:FE:B3:F3:3E:FA:9A ++CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "Thawte Premium Server CA" ++CKA_CERT_SHA1_HASH MULTILINE_OCTAL ++\142\177\215\170\047\145\143\231\322\175\177\220\104\311\376\263 ++\363\076\372\232 ++END ++CKA_CERT_MD5_HASH MULTILINE_OCTAL ++\006\237\151\171\026\146\220\002\033\214\214\242\303\007\157\072 ++END ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\316\061\013\060\011\006\003\125\004\006\023\002\132\101 ++\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 ++\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 ++\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 ++\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 ++\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 ++\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 ++\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 ++\163\151\157\156\061\041\060\037\006\003\125\004\003\023\030\124 ++\150\141\167\164\145\040\120\162\145\155\151\165\155\040\123\145 ++\162\166\145\162\040\103\101\061\050\060\046\006\011\052\206\110 ++\206\367\015\001\011\001\026\031\160\162\145\155\151\165\155\055 ++\163\145\162\166\145\162\100\164\150\141\167\164\145\056\143\157 ++\155 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\001\001 ++END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE ++ ++# + # Certificate "Equifax Secure CA" + # + # Issuer: OU=Equifax Secure Certificate Authority,O=Equifax,C=US + # Serial Number: 903804111 (0x35def4cf) + # Subject: OU=Equifax Secure Certificate Authority,O=Equifax,C=US + # Not Valid Before: Sat Aug 22 16:41:51 1998 + # Not Valid After : Wed Aug 22 16:41:51 2018 + # Fingerprint (MD5): 67:CB:9D:C0:13:24:8A:82:9B:B2:17:1E:D1:1B:EC:D4 + # Fingerprint (SHA1): D2:32:09:AD:23:D3:14:23:21:74:E4:0D:7F:9D:62:13:97:86:63:3A + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Equifax Secure CA" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL + \060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061 + \020\060\016\006\003\125\004\012\023\007\105\161\165\151\146\141 + \170\061\055\060\053\006\003\125\004\013\023\044\105\161\165\151 + \146\141\170\040\123\145\143\165\162\145\040\103\145\162\164\151 + \146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 + END + CKA_ID UTF8 "0" + CKA_ISSUER MULTILINE_OCTAL + \060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061 + \020\060\016\006\003\125\004\012\023\007\105\161\165\151\146\141 + \170\061\055\060\053\006\003\125\004\013\023\044\105\161\165\151 + \146\141\170\040\123\145\143\165\162\145\040\103\145\162\164\151 + \146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\004\065\336\364\317 + END + CKA_VALUE MULTILINE_OCTAL + \060\202\003\040\060\202\002\211\240\003\002\001\002\002\004\065 + \336\364\317\060\015\006\011\052\206\110\206\367\015\001\001\005 + \005\000\060\116\061\013\060\011\006\003\125\004\006\023\002\125 + \123\061\020\060\016\006\003\125\004\012\023\007\105\161\165\151 + \146\141\170\061\055\060\053\006\003\125\004\013\023\044\105\161 + \165\151\146\141\170\040\123\145\143\165\162\145\040\103\145\162 + \164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 + \164\171\060\036\027\015\071\070\060\070\062\062\061\066\064\061 + \065\061\132\027\015\061\070\060\070\062\062\061\066\064\061\065 + \061\132\060\116\061\013\060\011\006\003\125\004\006\023\002\125 + \123\061\020\060\016\006\003\125\004\012\023\007\105\161\165\151 + \146\141\170\061\055\060\053\006\003\125\004\013\023\044\105\161 + \165\151\146\141\170\040\123\145\143\165\162\145\040\103\145\162 + \164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 + \164\171\060\201\237\060\015\006\011\052\206\110\206\367\015\001 + \001\001\005\000\003\201\215\000\060\201\211\002\201\201\000\301 +@@ -140,100 +555,103 @@ + \070\062\062\061\066\064\061\065\061\132\060\013\006\003\125\035 + \017\004\004\003\002\001\006\060\037\006\003\125\035\043\004\030 + \060\026\200\024\110\346\150\371\053\322\262\225\327\107\330\043 + \040\020\117\063\230\220\237\324\060\035\006\003\125\035\016\004 + \026\004\024\110\346\150\371\053\322\262\225\327\107\330\043\040 + \020\117\063\230\220\237\324\060\014\006\003\125\035\023\004\005 + \060\003\001\001\377\060\032\006\011\052\206\110\206\366\175\007 + \101\000\004\015\060\013\033\005\126\063\056\060\143\003\002\006 + \300\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 + \003\201\201\000\130\316\051\352\374\367\336\265\316\002\271\027 + \265\205\321\271\343\340\225\314\045\061\015\000\246\222\156\177 + \266\222\143\236\120\225\321\232\157\344\021\336\143\205\156\230 + \356\250\377\132\310\323\125\262\146\161\127\336\300\041\353\075 + \052\247\043\111\001\004\206\102\173\374\356\177\242\026\122\265 + \147\147\323\100\333\073\046\130\262\050\167\075\256\024\167\141 + \326\372\052\146\047\240\015\372\247\163\134\352\160\361\224\041 + \145\104\137\372\374\357\051\150\251\242\207\171\357\171\357\117 + \254\007\167\070 + END + + # Trust for Certificate "Equifax Secure CA" + # Issuer: OU=Equifax Secure Certificate Authority,O=Equifax,C=US + # Serial Number: 903804111 (0x35def4cf) + # Subject: OU=Equifax Secure Certificate Authority,O=Equifax,C=US + # Not Valid Before: Sat Aug 22 16:41:51 1998 + # Not Valid After : Wed Aug 22 16:41:51 2018 + # Fingerprint (MD5): 67:CB:9D:C0:13:24:8A:82:9B:B2:17:1E:D1:1B:EC:D4 + # Fingerprint (SHA1): D2:32:09:AD:23:D3:14:23:21:74:E4:0D:7F:9D:62:13:97:86:63:3A + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Equifax Secure CA" + CKA_CERT_SHA1_HASH MULTILINE_OCTAL + \322\062\011\255\043\323\024\043\041\164\344\015\177\235\142\023 + \227\206\143\072 + END + CKA_CERT_MD5_HASH MULTILINE_OCTAL + \147\313\235\300\023\044\212\202\233\262\027\036\321\033\354\324 + END + CKA_ISSUER MULTILINE_OCTAL + \060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061 + \020\060\016\006\003\125\004\012\023\007\105\161\165\151\146\141 + \170\061\055\060\053\006\003\125\004\013\023\044\105\161\165\151 + \146\141\170\040\123\145\143\165\162\145\040\103\145\162\164\151 + \146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\004\065\336\364\317 + END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # Distrust "Distrust a pb.com certificate that does not comply with the baseline requirements." + # Issuer: OU=Equifax Secure Certificate Authority,O=Equifax,C=US + # Serial Number: 1407252 (0x157914) + # Subject: CN=*.pb.com,OU=Meters,O=Pitney Bowes,L=Danbury,ST=Connecticut,C=US + # Not Valid Before: Mon Feb 01 14:54:04 2010 + # Not Valid After : Tue Sep 30 00:00:00 2014 + # Fingerprint (MD5): 8F:46:BE:99:47:6F:93:DC:5C:01:54:50:D0:4A:BD:AC + # Fingerprint (SHA1): 30:F1:82:CA:1A:5E:4E:4F:F3:6E:D0:E6:38:18:B8:B9:41:CB:5F:8C + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Distrust a pb.com certificate that does not comply with the baseline requirements." + CKA_ISSUER MULTILINE_OCTAL + \060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061 + \020\060\016\006\003\125\004\012\023\007\105\161\165\151\146\141 + \170\061\055\060\053\006\003\125\004\013\023\044\105\161\165\151 + \146\141\170\040\123\145\143\165\162\145\040\103\145\162\164\151 + \146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\003\025\171\024 + END + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # + # Certificate "Digital Signature Trust Co. Global CA 1" + # + # Issuer: OU=DSTCA E1,O=Digital Signature Trust Co.,C=US + # Serial Number: 913315222 (0x36701596) + # Subject: OU=DSTCA E1,O=Digital Signature Trust Co.,C=US + # Not Valid Before: Thu Dec 10 18:10:23 1998 + # Not Valid After : Mon Dec 10 18:40:23 2018 + # Fingerprint (MD5): 25:7A:BA:83:2E:B6:A2:0B:DA:FE:F5:02:0F:08:D7:AD + # Fingerprint (SHA1): 81:96:8B:3A:EF:1C:DC:70:F5:FA:32:69:C2:92:A3:63:5B:D1:23:D3 + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Digital Signature Trust Co. Global CA 1" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL +@@ -530,100 +948,103 @@ + \005\252\354\003\037\170\177\236\223\271\232\000\252\043\175\326 + \254\205\242\143\105\307\162\047\314\364\114\306\165\161\322\071 + \357\117\102\360\165\337\012\220\306\216\040\157\230\017\370\254 + \043\137\160\051\066\244\311\206\347\261\232\040\313\123\245\205 + \347\075\276\175\232\376\044\105\063\334\166\025\355\017\242\161 + \144\114\145\056\201\150\105\247\002\003\001\000\001\060\015\006 + \011\052\206\110\206\367\015\001\001\002\005\000\003\201\201\000 + \273\114\022\053\317\054\046\000\117\024\023\335\246\373\374\012 + \021\204\214\363\050\034\147\222\057\174\266\305\372\337\360\350 + \225\274\035\217\154\054\250\121\314\163\330\244\300\123\360\116 + \326\046\300\166\001\127\201\222\136\041\361\321\261\377\347\320 + \041\130\315\151\027\343\104\034\234\031\104\071\211\134\334\234 + \000\017\126\215\002\231\355\242\220\105\114\344\273\020\244\075 + \360\062\003\016\361\316\370\350\311\121\214\346\142\237\346\237 + \300\175\267\162\234\311\066\072\153\237\116\250\377\144\015\144 + END + + # Trust for Certificate "Verisign Class 3 Public Primary Certification Authority" + # Issuer: OU=Class 3 Public Primary Certification Authority,O="VeriSign, Inc.",C=US + # Serial Number:70:ba:e4:1d:10:d9:29:34:b6:38:ca:7b:03:cc:ba:bf + # Subject: OU=Class 3 Public Primary Certification Authority,O="VeriSign, Inc.",C=US + # Not Valid Before: Mon Jan 29 00:00:00 1996 + # Not Valid After : Tue Aug 01 23:59:59 2028 + # Fingerprint (MD5): 10:FC:63:5D:F6:26:3E:0D:F3:25:BE:5F:79:CD:67:67 + # Fingerprint (SHA1): 74:2C:31:92:E6:07:E4:24:EB:45:49:54:2B:E1:BB:C5:3E:61:74:E2 + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority" + CKA_CERT_SHA1_HASH MULTILINE_OCTAL + \164\054\061\222\346\007\344\044\353\105\111\124\053\341\273\305 + \076\141\164\342 + END + CKA_CERT_MD5_HASH MULTILINE_OCTAL + \020\374\143\135\366\046\076\015\363\045\276\137\171\315\147\147 + END + CKA_ISSUER MULTILINE_OCTAL + \060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 + \027\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151 + \147\156\054\040\111\156\143\056\061\067\060\065\006\003\125\004 + \013\023\056\103\154\141\163\163\040\063\040\120\165\142\154\151 + \143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 + \151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 + \171 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\020\160\272\344\035\020\331\051\064\266\070\312\173\003\314 + \272\277 + END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # + # Certificate "Verisign Class 1 Public Primary Certification Authority - G2" + # + # Issuer: OU=VeriSign Trust Network,OU="(c) 1998 VeriSign, Inc. - For authorized use only",OU=Class 1 Public Primary Certification Authority - G2,O="VeriSign, Inc.",C=US + # Serial Number:4c:c7:ea:aa:98:3e:71:d3:93:10:f8:3d:3a:89:91:92 + # Subject: OU=VeriSign Trust Network,OU="(c) 1998 VeriSign, Inc. - For authorized use only",OU=Class 1 Public Primary Certification Authority - G2,O="VeriSign, Inc.",C=US + # Not Valid Before: Mon May 18 00:00:00 1998 + # Not Valid After : Tue Aug 01 23:59:59 2028 + # Fingerprint (MD5): DB:23:3D:F9:69:FA:4B:B9:95:80:44:73:5E:7D:41:83 + # Fingerprint (SHA1): 27:3E:E1:24:57:FD:C4:F9:0C:55:E8:2B:56:16:7F:62:F5:32:E5:47 + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Verisign Class 1 Public Primary Certification Authority - G2" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL + \060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 + \061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 + \004\013\023\063\103\154\141\163\163\040\061\040\120\165\142\154 + \151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 + \146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 + \164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 + \023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 + \141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 + \156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 + \162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 + \167\157\162\153 + END + CKA_ID UTF8 "0" + CKA_ISSUER MULTILINE_OCTAL + \060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 + \061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 + \004\013\023\063\103\154\141\163\163\040\061\040\120\165\142\154 + \151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 + \146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 + \164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 + \023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 + \141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 + \156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 + \162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +@@ -824,100 +1245,103 @@ + \005\005\000\003\201\201\000\162\056\371\177\321\361\161\373\304 + \236\366\305\136\121\212\100\230\270\150\370\233\034\203\330\342 + \235\275\377\355\241\346\146\352\057\011\364\312\327\352\245\053 + \225\366\044\140\206\115\104\056\203\245\304\055\240\323\256\170 + \151\157\162\332\154\256\010\360\143\222\067\346\273\304\060\027 + \255\167\314\111\065\252\317\330\217\321\276\267\030\226\107\163 + \152\124\042\064\144\055\266\026\233\131\133\264\121\131\072\263 + \013\024\364\022\337\147\240\364\255\062\144\136\261\106\162\047 + \214\022\173\305\104\264\256 + END + + # Trust for Certificate "Verisign Class 2 Public Primary Certification Authority - G2" + # Issuer: OU=VeriSign Trust Network,OU="(c) 1998 VeriSign, Inc. - For authorized use only",OU=Class 2 Public Primary Certification Authority - G2,O="VeriSign, Inc.",C=US + # Serial Number:00:b9:2f:60:cc:88:9f:a1:7a:46:09:b8:5b:70:6c:8a:af + # Subject: OU=VeriSign Trust Network,OU="(c) 1998 VeriSign, Inc. - For authorized use only",OU=Class 2 Public Primary Certification Authority - G2,O="VeriSign, Inc.",C=US + # Not Valid Before: Mon May 18 00:00:00 1998 + # Not Valid After : Tue Aug 01 23:59:59 2028 + # Fingerprint (MD5): 2D:BB:E5:25:D3:D1:65:82:3A:B7:0E:FA:E6:EB:E2:E1 + # Fingerprint (SHA1): B3:EA:C4:47:76:C9:C8:1C:EA:F2:9D:95:B6:CC:A0:08:1B:67:EC:9D + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Verisign Class 2 Public Primary Certification Authority - G2" + CKA_CERT_SHA1_HASH MULTILINE_OCTAL + \263\352\304\107\166\311\310\034\352\362\235\225\266\314\240\010 + \033\147\354\235 + END + CKA_CERT_MD5_HASH MULTILINE_OCTAL + \055\273\345\045\323\321\145\202\072\267\016\372\346\353\342\341 + END + CKA_ISSUER MULTILINE_OCTAL + \060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 + \061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 + \004\013\023\063\103\154\141\163\163\040\062\040\120\165\142\154 + \151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 + \146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 + \164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 + \023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 + \141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 + \156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 + \162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 + \167\157\162\153 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\021\000\271\057\140\314\210\237\241\172\106\011\270\133\160 + \154\212\257 + END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # + # Certificate "Verisign Class 3 Public Primary Certification Authority - G2" + # + # Issuer: OU=VeriSign Trust Network,OU="(c) 1998 VeriSign, Inc. - For authorized use only",OU=Class 3 Public Primary Certification Authority - G2,O="VeriSign, Inc.",C=US + # Serial Number:7d:d9:fe:07:cf:a8:1e:b7:10:79:67:fb:a7:89:34:c6 + # Subject: OU=VeriSign Trust Network,OU="(c) 1998 VeriSign, Inc. - For authorized use only",OU=Class 3 Public Primary Certification Authority - G2,O="VeriSign, Inc.",C=US + # Not Valid Before: Mon May 18 00:00:00 1998 + # Not Valid After : Tue Aug 01 23:59:59 2028 + # Fingerprint (MD5): A2:33:9B:4C:74:78:73:D4:6C:E7:C1:F3:8D:CB:5C:E9 + # Fingerprint (SHA1): 85:37:1C:A6:E5:50:14:3D:CE:28:03:47:1B:DE:3A:09:E8:F8:77:0F + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority - G2" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL + \060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 + \061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 + \004\013\023\063\103\154\141\163\163\040\063\040\120\165\142\154 + \151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 + \146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 + \164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 + \023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 + \141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 + \156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 + \162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 + \167\157\162\153 + END + CKA_ID UTF8 "0" + CKA_ISSUER MULTILINE_OCTAL + \060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 + \061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 + \004\013\023\063\103\154\141\163\163\040\063\040\120\165\142\154 + \151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 + \146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 + \164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 + \023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 + \141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 + \156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 + \162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +@@ -971,100 +1395,103 @@ + \005\000\003\201\201\000\121\115\315\276\134\313\230\031\234\025 + \262\001\071\170\056\115\017\147\160\160\231\306\020\132\224\244 + \123\115\124\155\053\257\015\135\100\213\144\323\327\356\336\126 + \141\222\137\246\304\035\020\141\066\323\054\047\074\350\051\011 + \271\021\144\164\314\265\163\237\034\110\251\274\141\001\356\342 + \027\246\014\343\100\010\073\016\347\353\104\163\052\232\361\151 + \222\357\161\024\303\071\254\161\247\221\011\157\344\161\006\263 + \272\131\127\046\171\000\366\370\015\242\063\060\050\324\252\130 + \240\235\235\151\221\375 + END + + # Trust for Certificate "Verisign Class 3 Public Primary Certification Authority - G2" + # Issuer: OU=VeriSign Trust Network,OU="(c) 1998 VeriSign, Inc. - For authorized use only",OU=Class 3 Public Primary Certification Authority - G2,O="VeriSign, Inc.",C=US + # Serial Number:7d:d9:fe:07:cf:a8:1e:b7:10:79:67:fb:a7:89:34:c6 + # Subject: OU=VeriSign Trust Network,OU="(c) 1998 VeriSign, Inc. - For authorized use only",OU=Class 3 Public Primary Certification Authority - G2,O="VeriSign, Inc.",C=US + # Not Valid Before: Mon May 18 00:00:00 1998 + # Not Valid After : Tue Aug 01 23:59:59 2028 + # Fingerprint (MD5): A2:33:9B:4C:74:78:73:D4:6C:E7:C1:F3:8D:CB:5C:E9 + # Fingerprint (SHA1): 85:37:1C:A6:E5:50:14:3D:CE:28:03:47:1B:DE:3A:09:E8:F8:77:0F + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority - G2" + CKA_CERT_SHA1_HASH MULTILINE_OCTAL + \205\067\034\246\345\120\024\075\316\050\003\107\033\336\072\011 + \350\370\167\017 + END + CKA_CERT_MD5_HASH MULTILINE_OCTAL + \242\063\233\114\164\170\163\324\154\347\301\363\215\313\134\351 + END + CKA_ISSUER MULTILINE_OCTAL + \060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 + \061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 + \004\013\023\063\103\154\141\163\163\040\063\040\120\165\142\154 + \151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 + \146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 + \164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 + \023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 + \141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 + \156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 + \162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 + \167\157\162\153 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\020\175\331\376\007\317\250\036\267\020\171\147\373\247\211 + \064\306 + END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # + # Certificate "GlobalSign Root CA" + # + # Issuer: CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE + # Serial Number:04:00:00:00:00:01:15:4b:5a:c3:94 + # Subject: CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE + # Not Valid Before: Tue Sep 01 12:00:00 1998 + # Not Valid After : Fri Jan 28 12:00:00 2028 + # Fingerprint (MD5): 3E:45:52:15:09:51:92:E1:B7:5D:37:9F:B1:87:29:8A + # Fingerprint (SHA1): B1:BC:96:8B:D4:F4:9D:62:2A:A8:9A:81:F2:15:01:52:A4:1D:82:9C + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "GlobalSign Root CA" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL + \060\127\061\013\060\011\006\003\125\004\006\023\002\102\105\061 + \031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154 + \123\151\147\156\040\156\166\055\163\141\061\020\060\016\006\003 + \125\004\013\023\007\122\157\157\164\040\103\101\061\033\060\031 + \006\003\125\004\003\023\022\107\154\157\142\141\154\123\151\147 + \156\040\122\157\157\164\040\103\101 + END + CKA_ID UTF8 "0" + CKA_ISSUER MULTILINE_OCTAL + \060\127\061\013\060\011\006\003\125\004\006\023\002\102\105\061 + \031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154 + \123\151\147\156\040\156\166\055\163\141\061\020\060\016\006\003 + \125\004\013\023\007\122\157\157\164\040\103\101\061\033\060\031 + \006\003\125\004\003\023\022\107\154\157\142\141\154\123\151\147 + \156\040\122\157\157\164\040\103\101 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\013\004\000\000\000\000\001\025\113\132\303\224 + END + CKA_VALUE MULTILINE_OCTAL + \060\202\003\165\060\202\002\135\240\003\002\001\002\002\013\004 + \000\000\000\000\001\025\113\132\303\224\060\015\006\011\052\206 + \110\206\367\015\001\001\005\005\000\060\127\061\013\060\011\006 + \003\125\004\006\023\002\102\105\061\031\060\027\006\003\125\004 + \012\023\020\107\154\157\142\141\154\123\151\147\156\040\156\166 + \055\163\141\061\020\060\016\006\003\125\004\013\023\007\122\157 + \157\164\040\103\101\061\033\060\031\006\003\125\004\003\023\022 + \107\154\157\142\141\154\123\151\147\156\040\122\157\157\164\040 +@@ -1240,100 +1667,520 @@ + \333\335\161\064\032\301\124\332\106\077\340\323\052\253\155\124 + \042\365\072\142\315\040\157\272\051\211\327\335\221\356\323\134 + \242\076\241\133\101\365\337\345\144\103\055\351\325\071\253\322 + \242\337\267\213\320\300\200\031\034\105\300\055\214\350\370\055 + \244\164\126\111\305\005\265\117\025\336\156\104\170\071\207\250 + \176\273\363\171\030\221\273\364\157\235\301\360\214\065\214\135 + \001\373\303\155\271\357\104\155\171\106\061\176\012\376\251\202 + \301\377\357\253\156\040\304\120\311\137\235\115\233\027\214\014 + \345\001\311\240\101\152\163\123\372\245\120\264\156\045\017\373 + \114\030\364\375\122\331\216\151\261\350\021\017\336\210\330\373 + \035\111\367\252\336\225\317\040\170\302\140\022\333\045\100\214 + \152\374\176\102\070\100\144\022\367\236\201\341\223\056 + END + + # Trust for Certificate "GlobalSign Root CA - R2" + # Issuer: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R2 + # Serial Number:04:00:00:00:00:01:0f:86:26:e6:0d + # Subject: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R2 + # Not Valid Before: Fri Dec 15 08:00:00 2006 + # Not Valid After : Wed Dec 15 08:00:00 2021 + # Fingerprint (MD5): 94:14:77:7E:3E:5E:FD:8F:30:BD:41:B0:CF:E7:D0:30 + # Fingerprint (SHA1): 75:E0:AB:B6:13:85:12:27:1C:04:F8:5F:DD:DE:38:E4:B7:24:2E:FE + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "GlobalSign Root CA - R2" + CKA_CERT_SHA1_HASH MULTILINE_OCTAL + \165\340\253\266\023\205\022\047\034\004\370\137\335\336\070\344 + \267\044\056\376 + END + CKA_CERT_MD5_HASH MULTILINE_OCTAL + \224\024\167\176\076\136\375\217\060\275\101\260\317\347\320\060 + END + CKA_ISSUER MULTILINE_OCTAL + \060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 + \142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 + \055\040\122\062\061\023\060\021\006\003\125\004\012\023\012\107 + \154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 + \004\003\023\012\107\154\157\142\141\154\123\151\147\156 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\013\004\000\000\000\000\001\017\206\046\346\015 + END + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # ++# Certificate "ValiCert Class 1 VA" ++# ++# Issuer: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 1 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Serial Number: 1 (0x1) ++# Subject: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 1 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Not Valid Before: Fri Jun 25 22:23:48 1999 ++# Not Valid After : Tue Jun 25 22:23:48 2019 ++# Fingerprint (MD5): 65:58:AB:15:AD:57:6C:1E:A8:A7:B5:69:AC:BF:FF:EB ++# Fingerprint (SHA1): E5:DF:74:3C:B6:01:C4:9B:98:43:DC:AB:8C:E8:6A:81:10:9F:E4:8E ++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "ValiCert Class 1 VA" ++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 ++CKA_SUBJECT MULTILINE_OCTAL ++\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 ++\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 ++\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 ++\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 ++\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 ++\151\103\145\162\164\040\103\154\141\163\163\040\061\040\120\157 ++\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 ++\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 ++\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 ++\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 ++\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 ++\157\100\166\141\154\151\143\145\162\164\056\143\157\155 ++END ++CKA_ID UTF8 "0" ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 ++\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 ++\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 ++\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 ++\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 ++\151\103\145\162\164\040\103\154\141\163\163\040\061\040\120\157 ++\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 ++\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 ++\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 ++\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 ++\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 ++\157\100\166\141\154\151\143\145\162\164\056\143\157\155 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\001\001 ++END ++CKA_VALUE MULTILINE_OCTAL ++\060\202\002\347\060\202\002\120\002\001\001\060\015\006\011\052 ++\206\110\206\367\015\001\001\005\005\000\060\201\273\061\044\060 ++\042\006\003\125\004\007\023\033\126\141\154\151\103\145\162\164 ++\040\126\141\154\151\144\141\164\151\157\156\040\116\145\164\167 ++\157\162\153\061\027\060\025\006\003\125\004\012\023\016\126\141 ++\154\151\103\145\162\164\054\040\111\156\143\056\061\065\060\063 ++\006\003\125\004\013\023\054\126\141\154\151\103\145\162\164\040 ++\103\154\141\163\163\040\061\040\120\157\154\151\143\171\040\126 ++\141\154\151\144\141\164\151\157\156\040\101\165\164\150\157\162 ++\151\164\171\061\041\060\037\006\003\125\004\003\023\030\150\164 ++\164\160\072\057\057\167\167\167\056\166\141\154\151\143\145\162 ++\164\056\143\157\155\057\061\040\060\036\006\011\052\206\110\206 ++\367\015\001\011\001\026\021\151\156\146\157\100\166\141\154\151 ++\143\145\162\164\056\143\157\155\060\036\027\015\071\071\060\066 ++\062\065\062\062\062\063\064\070\132\027\015\061\071\060\066\062 ++\065\062\062\062\063\064\070\132\060\201\273\061\044\060\042\006 ++\003\125\004\007\023\033\126\141\154\151\103\145\162\164\040\126 ++\141\154\151\144\141\164\151\157\156\040\116\145\164\167\157\162 ++\153\061\027\060\025\006\003\125\004\012\023\016\126\141\154\151 ++\103\145\162\164\054\040\111\156\143\056\061\065\060\063\006\003 ++\125\004\013\023\054\126\141\154\151\103\145\162\164\040\103\154 ++\141\163\163\040\061\040\120\157\154\151\143\171\040\126\141\154 ++\151\144\141\164\151\157\156\040\101\165\164\150\157\162\151\164 ++\171\061\041\060\037\006\003\125\004\003\023\030\150\164\164\160 ++\072\057\057\167\167\167\056\166\141\154\151\143\145\162\164\056 ++\143\157\155\057\061\040\060\036\006\011\052\206\110\206\367\015 ++\001\011\001\026\021\151\156\146\157\100\166\141\154\151\143\145 ++\162\164\056\143\157\155\060\201\237\060\015\006\011\052\206\110 ++\206\367\015\001\001\001\005\000\003\201\215\000\060\201\211\002 ++\201\201\000\330\131\202\172\211\270\226\272\246\057\150\157\130 ++\056\247\124\034\006\156\364\352\215\110\274\061\224\027\360\363 ++\116\274\262\270\065\222\166\260\320\245\245\001\327\000\003\022 ++\042\031\010\370\377\021\043\233\316\007\365\277\151\032\046\376 ++\116\351\321\177\235\054\100\035\131\150\156\246\370\130\260\235 ++\032\217\323\077\361\334\031\006\201\250\016\340\072\335\310\123 ++\105\011\006\346\017\160\303\372\100\246\016\342\126\005\017\030 ++\115\374\040\202\321\163\125\164\215\166\162\240\035\235\035\300 ++\335\077\161\002\003\001\000\001\060\015\006\011\052\206\110\206 ++\367\015\001\001\005\005\000\003\201\201\000\120\150\075\111\364 ++\054\034\006\224\337\225\140\177\226\173\027\376\117\161\255\144 ++\310\335\167\322\357\131\125\350\077\350\216\005\052\041\362\007 ++\322\265\247\122\376\234\261\266\342\133\167\027\100\352\162\326 ++\043\313\050\201\062\303\000\171\030\354\131\027\211\311\306\152 ++\036\161\311\375\267\164\245\045\105\151\305\110\253\031\341\105 ++\212\045\153\031\356\345\273\022\365\177\367\246\215\121\303\360 ++\235\164\267\251\076\240\245\377\266\111\003\023\332\042\314\355 ++\161\202\053\231\317\072\267\365\055\162\310 ++END ++ ++# Trust for Certificate "ValiCert Class 1 VA" ++# Issuer: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 1 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Serial Number: 1 (0x1) ++# Subject: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 1 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Not Valid Before: Fri Jun 25 22:23:48 1999 ++# Not Valid After : Tue Jun 25 22:23:48 2019 ++# Fingerprint (MD5): 65:58:AB:15:AD:57:6C:1E:A8:A7:B5:69:AC:BF:FF:EB ++# Fingerprint (SHA1): E5:DF:74:3C:B6:01:C4:9B:98:43:DC:AB:8C:E8:6A:81:10:9F:E4:8E ++CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "ValiCert Class 1 VA" ++CKA_CERT_SHA1_HASH MULTILINE_OCTAL ++\345\337\164\074\266\001\304\233\230\103\334\253\214\350\152\201 ++\020\237\344\216 ++END ++CKA_CERT_MD5_HASH MULTILINE_OCTAL ++\145\130\253\025\255\127\154\036\250\247\265\151\254\277\377\353 ++END ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 ++\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 ++\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 ++\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 ++\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 ++\151\103\145\162\164\040\103\154\141\163\163\040\061\040\120\157 ++\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 ++\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 ++\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 ++\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 ++\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 ++\157\100\166\141\154\151\143\145\162\164\056\143\157\155 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\001\001 ++END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE ++ ++# ++# Certificate "ValiCert Class 2 VA" ++# ++# Issuer: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 2 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Serial Number: 1 (0x1) ++# Subject: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 2 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Not Valid Before: Sat Jun 26 00:19:54 1999 ++# Not Valid After : Wed Jun 26 00:19:54 2019 ++# Fingerprint (MD5): A9:23:75:9B:BA:49:36:6E:31:C2:DB:F2:E7:66:BA:87 ++# Fingerprint (SHA1): 31:7A:2A:D0:7F:2B:33:5E:F5:A1:C3:4E:4B:57:E8:B7:D8:F1:FC:A6 ++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "ValiCert Class 2 VA" ++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 ++CKA_SUBJECT MULTILINE_OCTAL ++\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 ++\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 ++\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 ++\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 ++\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 ++\151\103\145\162\164\040\103\154\141\163\163\040\062\040\120\157 ++\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 ++\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 ++\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 ++\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 ++\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 ++\157\100\166\141\154\151\143\145\162\164\056\143\157\155 ++END ++CKA_ID UTF8 "0" ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 ++\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 ++\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 ++\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 ++\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 ++\151\103\145\162\164\040\103\154\141\163\163\040\062\040\120\157 ++\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 ++\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 ++\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 ++\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 ++\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 ++\157\100\166\141\154\151\143\145\162\164\056\143\157\155 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\001\001 ++END ++CKA_VALUE MULTILINE_OCTAL ++\060\202\002\347\060\202\002\120\002\001\001\060\015\006\011\052 ++\206\110\206\367\015\001\001\005\005\000\060\201\273\061\044\060 ++\042\006\003\125\004\007\023\033\126\141\154\151\103\145\162\164 ++\040\126\141\154\151\144\141\164\151\157\156\040\116\145\164\167 ++\157\162\153\061\027\060\025\006\003\125\004\012\023\016\126\141 ++\154\151\103\145\162\164\054\040\111\156\143\056\061\065\060\063 ++\006\003\125\004\013\023\054\126\141\154\151\103\145\162\164\040 ++\103\154\141\163\163\040\062\040\120\157\154\151\143\171\040\126 ++\141\154\151\144\141\164\151\157\156\040\101\165\164\150\157\162 ++\151\164\171\061\041\060\037\006\003\125\004\003\023\030\150\164 ++\164\160\072\057\057\167\167\167\056\166\141\154\151\143\145\162 ++\164\056\143\157\155\057\061\040\060\036\006\011\052\206\110\206 ++\367\015\001\011\001\026\021\151\156\146\157\100\166\141\154\151 ++\143\145\162\164\056\143\157\155\060\036\027\015\071\071\060\066 ++\062\066\060\060\061\071\065\064\132\027\015\061\071\060\066\062 ++\066\060\060\061\071\065\064\132\060\201\273\061\044\060\042\006 ++\003\125\004\007\023\033\126\141\154\151\103\145\162\164\040\126 ++\141\154\151\144\141\164\151\157\156\040\116\145\164\167\157\162 ++\153\061\027\060\025\006\003\125\004\012\023\016\126\141\154\151 ++\103\145\162\164\054\040\111\156\143\056\061\065\060\063\006\003 ++\125\004\013\023\054\126\141\154\151\103\145\162\164\040\103\154 ++\141\163\163\040\062\040\120\157\154\151\143\171\040\126\141\154 ++\151\144\141\164\151\157\156\040\101\165\164\150\157\162\151\164 ++\171\061\041\060\037\006\003\125\004\003\023\030\150\164\164\160 ++\072\057\057\167\167\167\056\166\141\154\151\143\145\162\164\056 ++\143\157\155\057\061\040\060\036\006\011\052\206\110\206\367\015 ++\001\011\001\026\021\151\156\146\157\100\166\141\154\151\143\145 ++\162\164\056\143\157\155\060\201\237\060\015\006\011\052\206\110 ++\206\367\015\001\001\001\005\000\003\201\215\000\060\201\211\002 ++\201\201\000\316\072\161\312\345\253\310\131\222\125\327\253\330 ++\164\016\371\356\331\366\125\107\131\145\107\016\005\125\334\353 ++\230\066\074\134\123\135\323\060\317\070\354\275\101\211\355\045 ++\102\011\044\153\012\136\263\174\335\122\055\114\346\324\326\175 ++\132\131\251\145\324\111\023\055\044\115\034\120\157\265\301\205 ++\124\073\376\161\344\323\134\102\371\200\340\221\032\012\133\071 ++\066\147\363\077\125\174\033\077\264\137\144\163\064\343\264\022 ++\277\207\144\370\332\022\377\067\047\301\263\103\273\357\173\156 ++\056\151\367\002\003\001\000\001\060\015\006\011\052\206\110\206 ++\367\015\001\001\005\005\000\003\201\201\000\073\177\120\157\157 ++\120\224\231\111\142\070\070\037\113\370\245\310\076\247\202\201 ++\366\053\307\350\305\316\350\072\020\202\313\030\000\216\115\275 ++\250\130\177\241\171\000\265\273\351\215\257\101\331\017\064\356 ++\041\201\031\240\062\111\050\364\304\216\126\325\122\063\375\120 ++\325\176\231\154\003\344\311\114\374\313\154\253\146\263\112\041 ++\214\345\265\014\062\076\020\262\314\154\241\334\232\230\114\002 ++\133\363\316\271\236\245\162\016\112\267\077\074\346\026\150\370 ++\276\355\164\114\274\133\325\142\037\103\335 ++END ++ ++# Trust for Certificate "ValiCert Class 2 VA" ++# Issuer: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 2 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Serial Number: 1 (0x1) ++# Subject: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 2 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Not Valid Before: Sat Jun 26 00:19:54 1999 ++# Not Valid After : Wed Jun 26 00:19:54 2019 ++# Fingerprint (MD5): A9:23:75:9B:BA:49:36:6E:31:C2:DB:F2:E7:66:BA:87 ++# Fingerprint (SHA1): 31:7A:2A:D0:7F:2B:33:5E:F5:A1:C3:4E:4B:57:E8:B7:D8:F1:FC:A6 ++CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "ValiCert Class 2 VA" ++CKA_CERT_SHA1_HASH MULTILINE_OCTAL ++\061\172\052\320\177\053\063\136\365\241\303\116\113\127\350\267 ++\330\361\374\246 ++END ++CKA_CERT_MD5_HASH MULTILINE_OCTAL ++\251\043\165\233\272\111\066\156\061\302\333\362\347\146\272\207 ++END ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 ++\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 ++\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 ++\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 ++\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 ++\151\103\145\162\164\040\103\154\141\163\163\040\062\040\120\157 ++\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 ++\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 ++\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 ++\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 ++\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 ++\157\100\166\141\154\151\143\145\162\164\056\143\157\155 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\001\001 ++END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE ++ ++# ++# Certificate "RSA Root Certificate 1" ++# ++# Issuer: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 3 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Serial Number: 1 (0x1) ++# Subject: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 3 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Not Valid Before: Sat Jun 26 00:22:33 1999 ++# Not Valid After : Wed Jun 26 00:22:33 2019 ++# Fingerprint (MD5): A2:6F:53:B7:EE:40:DB:4A:68:E7:FA:18:D9:10:4B:72 ++# Fingerprint (SHA1): 69:BD:8C:F4:9C:D3:00:FB:59:2E:17:93:CA:55:6A:F3:EC:AA:35:FB ++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "RSA Root Certificate 1" ++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 ++CKA_SUBJECT MULTILINE_OCTAL ++\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 ++\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 ++\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 ++\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 ++\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 ++\151\103\145\162\164\040\103\154\141\163\163\040\063\040\120\157 ++\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 ++\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 ++\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 ++\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 ++\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 ++\157\100\166\141\154\151\143\145\162\164\056\143\157\155 ++END ++CKA_ID UTF8 "0" ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 ++\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 ++\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 ++\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 ++\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 ++\151\103\145\162\164\040\103\154\141\163\163\040\063\040\120\157 ++\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 ++\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 ++\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 ++\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 ++\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 ++\157\100\166\141\154\151\143\145\162\164\056\143\157\155 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\001\001 ++END ++CKA_VALUE MULTILINE_OCTAL ++\060\202\002\347\060\202\002\120\002\001\001\060\015\006\011\052 ++\206\110\206\367\015\001\001\005\005\000\060\201\273\061\044\060 ++\042\006\003\125\004\007\023\033\126\141\154\151\103\145\162\164 ++\040\126\141\154\151\144\141\164\151\157\156\040\116\145\164\167 ++\157\162\153\061\027\060\025\006\003\125\004\012\023\016\126\141 ++\154\151\103\145\162\164\054\040\111\156\143\056\061\065\060\063 ++\006\003\125\004\013\023\054\126\141\154\151\103\145\162\164\040 ++\103\154\141\163\163\040\063\040\120\157\154\151\143\171\040\126 ++\141\154\151\144\141\164\151\157\156\040\101\165\164\150\157\162 ++\151\164\171\061\041\060\037\006\003\125\004\003\023\030\150\164 ++\164\160\072\057\057\167\167\167\056\166\141\154\151\143\145\162 ++\164\056\143\157\155\057\061\040\060\036\006\011\052\206\110\206 ++\367\015\001\011\001\026\021\151\156\146\157\100\166\141\154\151 ++\143\145\162\164\056\143\157\155\060\036\027\015\071\071\060\066 ++\062\066\060\060\062\062\063\063\132\027\015\061\071\060\066\062 ++\066\060\060\062\062\063\063\132\060\201\273\061\044\060\042\006 ++\003\125\004\007\023\033\126\141\154\151\103\145\162\164\040\126 ++\141\154\151\144\141\164\151\157\156\040\116\145\164\167\157\162 ++\153\061\027\060\025\006\003\125\004\012\023\016\126\141\154\151 ++\103\145\162\164\054\040\111\156\143\056\061\065\060\063\006\003 ++\125\004\013\023\054\126\141\154\151\103\145\162\164\040\103\154 ++\141\163\163\040\063\040\120\157\154\151\143\171\040\126\141\154 ++\151\144\141\164\151\157\156\040\101\165\164\150\157\162\151\164 ++\171\061\041\060\037\006\003\125\004\003\023\030\150\164\164\160 ++\072\057\057\167\167\167\056\166\141\154\151\143\145\162\164\056 ++\143\157\155\057\061\040\060\036\006\011\052\206\110\206\367\015 ++\001\011\001\026\021\151\156\146\157\100\166\141\154\151\143\145 ++\162\164\056\143\157\155\060\201\237\060\015\006\011\052\206\110 ++\206\367\015\001\001\001\005\000\003\201\215\000\060\201\211\002 ++\201\201\000\343\230\121\226\034\350\325\261\006\201\152\127\303 ++\162\165\223\253\317\236\246\374\363\026\122\326\055\115\237\065 ++\104\250\056\004\115\007\111\212\070\051\365\167\067\347\267\253 ++\135\337\066\161\024\231\217\334\302\222\361\347\140\222\227\354 ++\330\110\334\277\301\002\040\306\044\244\050\114\060\132\166\155 ++\261\134\363\335\336\236\020\161\241\210\307\133\233\101\155\312 ++\260\270\216\025\356\255\063\053\317\107\004\134\165\161\012\230 ++\044\230\051\247\111\131\245\335\370\267\103\142\141\363\323\342 ++\320\125\077\002\003\001\000\001\060\015\006\011\052\206\110\206 ++\367\015\001\001\005\005\000\003\201\201\000\126\273\002\130\204 ++\147\010\054\337\037\333\173\111\063\365\323\147\235\364\264\012 ++\020\263\311\305\054\342\222\152\161\170\047\362\160\203\102\323 ++\076\317\251\124\364\361\330\222\026\214\321\004\313\113\253\311 ++\237\105\256\074\212\251\260\161\063\135\310\305\127\337\257\250 ++\065\263\177\211\207\351\350\045\222\270\177\205\172\256\326\274 ++\036\067\130\052\147\311\221\317\052\201\076\355\306\071\337\300 ++\076\031\234\031\314\023\115\202\101\265\214\336\340\075\140\010 ++\040\017\105\176\153\242\177\243\214\025\356 ++END ++ ++# Trust for Certificate "RSA Root Certificate 1" ++# Issuer: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 3 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Serial Number: 1 (0x1) ++# Subject: E=info@valicert.com,CN=http://www.valicert.com/,OU=ValiCert Class 3 Policy Validation Authority,O="ValiCert, Inc.",L=ValiCert Validation Network ++# Not Valid Before: Sat Jun 26 00:22:33 1999 ++# Not Valid After : Wed Jun 26 00:22:33 2019 ++# Fingerprint (MD5): A2:6F:53:B7:EE:40:DB:4A:68:E7:FA:18:D9:10:4B:72 ++# Fingerprint (SHA1): 69:BD:8C:F4:9C:D3:00:FB:59:2E:17:93:CA:55:6A:F3:EC:AA:35:FB ++CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "RSA Root Certificate 1" ++CKA_CERT_SHA1_HASH MULTILINE_OCTAL ++\151\275\214\364\234\323\000\373\131\056\027\223\312\125\152\363 ++\354\252\065\373 ++END ++CKA_CERT_MD5_HASH MULTILINE_OCTAL ++\242\157\123\267\356\100\333\112\150\347\372\030\331\020\113\162 ++END ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 ++\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 ++\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 ++\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 ++\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 ++\151\103\145\162\164\040\103\154\141\163\163\040\063\040\120\157 ++\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 ++\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 ++\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 ++\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 ++\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 ++\157\100\166\141\154\151\143\145\162\164\056\143\157\155 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\001\001 ++END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE ++ ++# + # Certificate "Verisign Class 1 Public Primary Certification Authority - G3" + # + # Issuer: CN=VeriSign Class 1 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US + # Serial Number:00:8b:5b:75:56:84:54:85:0b:00:cf:af:38:48:ce:b1:a4 + # Subject: CN=VeriSign Class 1 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US + # Not Valid Before: Fri Oct 01 00:00:00 1999 + # Not Valid After : Wed Jul 16 23:59:59 2036 + # Fingerprint (MD5): B1:47:BC:18:57:D1:18:A0:78:2D:EC:71:E8:2A:95:73 + # Fingerprint (SHA1): 20:42:85:DC:F7:EB:76:41:95:57:8E:13:6B:D4:B7:D1:E9:8E:46:A5 + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Verisign Class 1 Public Primary Certification Authority - G3" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL + \060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 + \061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 + \004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 + \163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 + \125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 + \162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 + \157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 + \145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 + \074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 + \061\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 + \040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 + \165\164\150\157\162\151\164\171\040\055\040\107\063 + END + CKA_ID UTF8 "0" + CKA_ISSUER MULTILINE_OCTAL + \060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 + \061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 + \004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 + \163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 + \125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 + \162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 + \157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 + \145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 + \074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 + \061\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 + \040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 + \165\164\150\157\162\151\164\171\040\055\040\107\063 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\021\000\213\133\165\126\204\124\205\013\000\317\257\070\110 + \316\261\244 + END +@@ -2008,100 +2855,274 @@ + \154\273\322\036\000\260\041\355\370\101\142\202\271\330\262\304 + \273\106\120\363\061\305\217\001\250\164\353\365\170\047\332\347 + \367\146\103\363\236\203\076\040\252\303\065\140\221\316 + END + + # Trust for Certificate "Verisign Class 4 Public Primary Certification Authority - G3" + # Issuer: CN=VeriSign Class 4 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US + # Serial Number:00:ec:a0:a7:8b:6e:75:6a:01:cf:c4:7c:cc:2f:94:5e:d7 + # Subject: CN=VeriSign Class 4 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US + # Not Valid Before: Fri Oct 01 00:00:00 1999 + # Not Valid After : Wed Jul 16 23:59:59 2036 + # Fingerprint (MD5): DB:C8:F2:27:2E:B1:EA:6A:29:23:5D:FE:56:3E:33:DF + # Fingerprint (SHA1): C8:EC:8C:87:92:69:CB:4B:AB:39:E9:8D:7E:57:67:F3:14:95:73:9D + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Verisign Class 4 Public Primary Certification Authority - G3" + CKA_CERT_SHA1_HASH MULTILINE_OCTAL + \310\354\214\207\222\151\313\113\253\071\351\215\176\127\147\363 + \024\225\163\235 + END + CKA_CERT_MD5_HASH MULTILINE_OCTAL + \333\310\362\047\056\261\352\152\051\043\135\376\126\076\063\337 + END + CKA_ISSUER MULTILINE_OCTAL + \060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 + \061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 + \151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 + \004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 + \163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 + \125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 + \162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 + \157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 + \145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 + \074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 + \064\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 + \040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 + \165\164\150\157\162\151\164\171\040\055\040\107\063 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\021\000\354\240\247\213\156\165\152\001\317\304\174\314\057 + \224\136\327 + END + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # ++# Certificate "Entrust.net Secure Server CA" ++# ++# Issuer: CN=Entrust.net Secure Server Certification Authority,OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS incorp. by ref. (limits liab.),O=Entrust.net,C=US ++# Serial Number: 927650371 (0x374ad243) ++# Subject: CN=Entrust.net Secure Server Certification Authority,OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS incorp. by ref. (limits liab.),O=Entrust.net,C=US ++# Not Valid Before: Tue May 25 16:09:40 1999 ++# Not Valid After : Sat May 25 16:39:40 2019 ++# Fingerprint (MD5): DF:F2:80:73:CC:F1:E6:61:73:FC:F5:42:E9:C5:7C:EE ++# Fingerprint (SHA1): 99:A6:9B:E6:1A:FE:88:6B:4D:2B:82:00:7C:B8:54:FC:31:7E:15:39 ++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "Entrust.net Secure Server CA" ++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 ++CKA_SUBJECT MULTILINE_OCTAL ++\060\201\303\061\013\060\011\006\003\125\004\006\023\002\125\123 ++\061\024\060\022\006\003\125\004\012\023\013\105\156\164\162\165 ++\163\164\056\156\145\164\061\073\060\071\006\003\125\004\013\023 ++\062\167\167\167\056\145\156\164\162\165\163\164\056\156\145\164 ++\057\103\120\123\040\151\156\143\157\162\160\056\040\142\171\040 ++\162\145\146\056\040\050\154\151\155\151\164\163\040\154\151\141 ++\142\056\051\061\045\060\043\006\003\125\004\013\023\034\050\143 ++\051\040\061\071\071\071\040\105\156\164\162\165\163\164\056\156 ++\145\164\040\114\151\155\151\164\145\144\061\072\060\070\006\003 ++\125\004\003\023\061\105\156\164\162\165\163\164\056\156\145\164 ++\040\123\145\143\165\162\145\040\123\145\162\166\145\162\040\103 ++\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 ++\150\157\162\151\164\171 ++END ++CKA_ID UTF8 "0" ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\303\061\013\060\011\006\003\125\004\006\023\002\125\123 ++\061\024\060\022\006\003\125\004\012\023\013\105\156\164\162\165 ++\163\164\056\156\145\164\061\073\060\071\006\003\125\004\013\023 ++\062\167\167\167\056\145\156\164\162\165\163\164\056\156\145\164 ++\057\103\120\123\040\151\156\143\157\162\160\056\040\142\171\040 ++\162\145\146\056\040\050\154\151\155\151\164\163\040\154\151\141 ++\142\056\051\061\045\060\043\006\003\125\004\013\023\034\050\143 ++\051\040\061\071\071\071\040\105\156\164\162\165\163\164\056\156 ++\145\164\040\114\151\155\151\164\145\144\061\072\060\070\006\003 ++\125\004\003\023\061\105\156\164\162\165\163\164\056\156\145\164 ++\040\123\145\143\165\162\145\040\123\145\162\166\145\162\040\103 ++\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 ++\150\157\162\151\164\171 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\004\067\112\322\103 ++END ++CKA_VALUE MULTILINE_OCTAL ++\060\202\004\330\060\202\004\101\240\003\002\001\002\002\004\067 ++\112\322\103\060\015\006\011\052\206\110\206\367\015\001\001\005 ++\005\000\060\201\303\061\013\060\011\006\003\125\004\006\023\002 ++\125\123\061\024\060\022\006\003\125\004\012\023\013\105\156\164 ++\162\165\163\164\056\156\145\164\061\073\060\071\006\003\125\004 ++\013\023\062\167\167\167\056\145\156\164\162\165\163\164\056\156 ++\145\164\057\103\120\123\040\151\156\143\157\162\160\056\040\142 ++\171\040\162\145\146\056\040\050\154\151\155\151\164\163\040\154 ++\151\141\142\056\051\061\045\060\043\006\003\125\004\013\023\034 ++\050\143\051\040\061\071\071\071\040\105\156\164\162\165\163\164 ++\056\156\145\164\040\114\151\155\151\164\145\144\061\072\060\070 ++\006\003\125\004\003\023\061\105\156\164\162\165\163\164\056\156 ++\145\164\040\123\145\143\165\162\145\040\123\145\162\166\145\162 ++\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 ++\165\164\150\157\162\151\164\171\060\036\027\015\071\071\060\065 ++\062\065\061\066\060\071\064\060\132\027\015\061\071\060\065\062 ++\065\061\066\063\071\064\060\132\060\201\303\061\013\060\011\006 ++\003\125\004\006\023\002\125\123\061\024\060\022\006\003\125\004 ++\012\023\013\105\156\164\162\165\163\164\056\156\145\164\061\073 ++\060\071\006\003\125\004\013\023\062\167\167\167\056\145\156\164 ++\162\165\163\164\056\156\145\164\057\103\120\123\040\151\156\143 ++\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 ++\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 ++\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 ++\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 ++\145\144\061\072\060\070\006\003\125\004\003\023\061\105\156\164 ++\162\165\163\164\056\156\145\164\040\123\145\143\165\162\145\040 ++\123\145\162\166\145\162\040\103\145\162\164\151\146\151\143\141 ++\164\151\157\156\040\101\165\164\150\157\162\151\164\171\060\201 ++\235\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 ++\003\201\213\000\060\201\207\002\201\201\000\315\050\203\064\124 ++\033\211\363\017\257\067\221\061\377\257\061\140\311\250\350\262 ++\020\150\355\237\347\223\066\361\012\144\273\107\365\004\027\077 ++\043\107\115\305\047\031\201\046\014\124\162\015\210\055\331\037 ++\232\022\237\274\263\161\323\200\031\077\107\146\173\214\065\050 ++\322\271\012\337\044\332\234\326\120\171\201\172\132\323\067\367 ++\302\112\330\051\222\046\144\321\344\230\154\072\000\212\365\064 ++\233\145\370\355\343\020\377\375\270\111\130\334\240\336\202\071 ++\153\201\261\026\031\141\271\124\266\346\103\002\001\003\243\202 ++\001\327\060\202\001\323\060\021\006\011\140\206\110\001\206\370 ++\102\001\001\004\004\003\002\000\007\060\202\001\031\006\003\125 ++\035\037\004\202\001\020\060\202\001\014\060\201\336\240\201\333 ++\240\201\330\244\201\325\060\201\322\061\013\060\011\006\003\125 ++\004\006\023\002\125\123\061\024\060\022\006\003\125\004\012\023 ++\013\105\156\164\162\165\163\164\056\156\145\164\061\073\060\071 ++\006\003\125\004\013\023\062\167\167\167\056\145\156\164\162\165 ++\163\164\056\156\145\164\057\103\120\123\040\151\156\143\157\162 ++\160\056\040\142\171\040\162\145\146\056\040\050\154\151\155\151 ++\164\163\040\154\151\141\142\056\051\061\045\060\043\006\003\125 ++\004\013\023\034\050\143\051\040\061\071\071\071\040\105\156\164 ++\162\165\163\164\056\156\145\164\040\114\151\155\151\164\145\144 ++\061\072\060\070\006\003\125\004\003\023\061\105\156\164\162\165 ++\163\164\056\156\145\164\040\123\145\143\165\162\145\040\123\145 ++\162\166\145\162\040\103\145\162\164\151\146\151\143\141\164\151 ++\157\156\040\101\165\164\150\157\162\151\164\171\061\015\060\013 ++\006\003\125\004\003\023\004\103\122\114\061\060\051\240\047\240 ++\045\206\043\150\164\164\160\072\057\057\167\167\167\056\145\156 ++\164\162\165\163\164\056\156\145\164\057\103\122\114\057\156\145 ++\164\061\056\143\162\154\060\053\006\003\125\035\020\004\044\060 ++\042\200\017\061\071\071\071\060\065\062\065\061\066\060\071\064 ++\060\132\201\017\062\060\061\071\060\065\062\065\061\066\060\071 ++\064\060\132\060\013\006\003\125\035\017\004\004\003\002\001\006 ++\060\037\006\003\125\035\043\004\030\060\026\200\024\360\027\142 ++\023\125\075\263\377\012\000\153\373\120\204\227\363\355\142\320 ++\032\060\035\006\003\125\035\016\004\026\004\024\360\027\142\023 ++\125\075\263\377\012\000\153\373\120\204\227\363\355\142\320\032 ++\060\014\006\003\125\035\023\004\005\060\003\001\001\377\060\031 ++\006\011\052\206\110\206\366\175\007\101\000\004\014\060\012\033 ++\004\126\064\056\060\003\002\004\220\060\015\006\011\052\206\110 ++\206\367\015\001\001\005\005\000\003\201\201\000\220\334\060\002 ++\372\144\164\302\247\012\245\174\041\215\064\027\250\373\107\016 ++\377\045\174\215\023\012\373\344\230\265\357\214\370\305\020\015 ++\367\222\276\361\303\325\325\225\152\004\273\054\316\046\066\145 ++\310\061\306\347\356\077\343\127\165\204\172\021\357\106\117\030 ++\364\323\230\273\250\207\062\272\162\366\074\342\075\237\327\035 ++\331\303\140\103\214\130\016\042\226\057\142\243\054\037\272\255 ++\005\357\253\062\170\207\240\124\163\031\265\134\005\371\122\076 ++\155\055\105\013\367\012\223\352\355\006\371\262 ++END ++ ++# Trust for Certificate "Entrust.net Secure Server CA" ++# Issuer: CN=Entrust.net Secure Server Certification Authority,OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS incorp. by ref. (limits liab.),O=Entrust.net,C=US ++# Serial Number: 927650371 (0x374ad243) ++# Subject: CN=Entrust.net Secure Server Certification Authority,OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS incorp. by ref. (limits liab.),O=Entrust.net,C=US ++# Not Valid Before: Tue May 25 16:09:40 1999 ++# Not Valid After : Sat May 25 16:39:40 2019 ++# Fingerprint (MD5): DF:F2:80:73:CC:F1:E6:61:73:FC:F5:42:E9:C5:7C:EE ++# Fingerprint (SHA1): 99:A6:9B:E6:1A:FE:88:6B:4D:2B:82:00:7C:B8:54:FC:31:7E:15:39 ++CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST ++CKA_TOKEN CK_BBOOL CK_TRUE ++CKA_PRIVATE CK_BBOOL CK_FALSE ++CKA_MODIFIABLE CK_BBOOL CK_FALSE ++CKA_LABEL UTF8 "Entrust.net Secure Server CA" ++CKA_CERT_SHA1_HASH MULTILINE_OCTAL ++\231\246\233\346\032\376\210\153\115\053\202\000\174\270\124\374 ++\061\176\025\071 ++END ++CKA_CERT_MD5_HASH MULTILINE_OCTAL ++\337\362\200\163\314\361\346\141\163\374\365\102\351\305\174\356 ++END ++CKA_ISSUER MULTILINE_OCTAL ++\060\201\303\061\013\060\011\006\003\125\004\006\023\002\125\123 ++\061\024\060\022\006\003\125\004\012\023\013\105\156\164\162\165 ++\163\164\056\156\145\164\061\073\060\071\006\003\125\004\013\023 ++\062\167\167\167\056\145\156\164\162\165\163\164\056\156\145\164 ++\057\103\120\123\040\151\156\143\157\162\160\056\040\142\171\040 ++\162\145\146\056\040\050\154\151\155\151\164\163\040\154\151\141 ++\142\056\051\061\045\060\043\006\003\125\004\013\023\034\050\143 ++\051\040\061\071\071\071\040\105\156\164\162\165\163\164\056\156 ++\145\164\040\114\151\155\151\164\145\144\061\072\060\070\006\003 ++\125\004\003\023\061\105\156\164\162\165\163\164\056\156\145\164 ++\040\123\145\143\165\162\145\040\123\145\162\166\145\162\040\103 ++\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 ++\150\157\162\151\164\171 ++END ++CKA_SERIAL_NUMBER MULTILINE_OCTAL ++\002\004\067\112\322\103 ++END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE ++ ++# + # Certificate "Entrust.net Premium 2048 Secure Server CA" + # + # Issuer: CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net + # Serial Number: 946069240 (0x3863def8) + # Subject: CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net + # Not Valid Before: Fri Dec 24 17:50:51 1999 + # Not Valid After : Tue Jul 24 14:15:12 2029 + # Fingerprint (MD5): EE:29:31:BC:32:7E:9A:E6:E8:B5:F7:51:B4:34:71:90 + # Fingerprint (SHA1): 50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31 + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Entrust.net Premium 2048 Secure Server CA" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL + \060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 + \164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 + \004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 + \156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 + \157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 + \155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 + \003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 + \156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 + \145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 + \162\165\163\164\056\156\145\164\040\103\145\162\164\151\146\151 + \143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 + \040\050\062\060\064\070\051 + END + CKA_ID UTF8 "0" + CKA_ISSUER MULTILINE_OCTAL + \060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 + \164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 + \004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 + \156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 + \157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 + \155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 + \003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 + \156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 + \145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 + \162\165\163\164\056\156\145\164\040\103\145\162\164\151\146\151 + \143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 + \040\050\062\060\064\070\051 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\004\070\143\336\370 + END + CKA_VALUE MULTILINE_OCTAL + \060\202\004\052\060\202\003\022\240\003\002\001\002\002\004\070 + \143\336\370\060\015\006\011\052\206\110\206\367\015\001\001\005 +@@ -2410,100 +3431,103 @@ + \305\310\303\141\002\003\001\000\001\243\146\060\144\060\021\006 + \011\140\206\110\001\206\370\102\001\001\004\004\003\002\000\007 + \060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 + \377\060\037\006\003\125\035\043\004\030\060\026\200\024\276\250 + \240\164\162\120\153\104\267\311\043\330\373\250\377\263\127\153 + \150\154\060\035\006\003\125\035\016\004\026\004\024\276\250\240 + \164\162\120\153\104\267\311\043\330\373\250\377\263\127\153\150 + \154\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000 + \003\201\201\000\060\342\001\121\252\307\352\137\332\271\320\145 + \017\060\326\076\332\015\024\111\156\221\223\047\024\061\357\304 + \367\055\105\370\354\307\277\242\101\015\043\264\222\371\031\000 + \147\275\001\257\315\340\161\374\132\317\144\304\340\226\230\320 + \243\100\342\001\212\357\047\007\361\145\001\212\104\055\006\145 + \165\122\300\206\020\040\041\137\154\153\017\154\256\011\034\257 + \362\242\030\064\304\165\244\163\034\361\215\334\357\255\371\263 + \166\264\222\277\334\225\020\036\276\313\310\073\132\204\140\031 + \126\224\251\125 + END + + # Trust for Certificate "Equifax Secure Global eBusiness CA" + # Issuer: CN=Equifax Secure Global eBusiness CA-1,O=Equifax Secure Inc.,C=US + # Serial Number: 1 (0x1) + # Subject: CN=Equifax Secure Global eBusiness CA-1,O=Equifax Secure Inc.,C=US + # Not Valid Before: Mon Jun 21 04:00:00 1999 + # Not Valid After : Sun Jun 21 04:00:00 2020 + # Fingerprint (MD5): 8F:5D:77:06:27:C4:98:3C:5B:93:78:E7:D7:7D:9B:CC + # Fingerprint (SHA1): 7E:78:4A:10:1C:82:65:CC:2D:E1:F1:6D:47:B4:40:CA:D9:0A:19:45 + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Equifax Secure Global eBusiness CA" + CKA_CERT_SHA1_HASH MULTILINE_OCTAL + \176\170\112\020\034\202\145\314\055\341\361\155\107\264\100\312 + \331\012\031\105 + END + CKA_CERT_MD5_HASH MULTILINE_OCTAL + \217\135\167\006\047\304\230\074\133\223\170\347\327\175\233\314 + END + CKA_ISSUER MULTILINE_OCTAL + \060\132\061\013\060\011\006\003\125\004\006\023\002\125\123\061 + \034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 + \170\040\123\145\143\165\162\145\040\111\156\143\056\061\055\060 + \053\006\003\125\004\003\023\044\105\161\165\151\146\141\170\040 + \123\145\143\165\162\145\040\107\154\157\142\141\154\040\145\102 + \165\163\151\156\145\163\163\040\103\101\055\061 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\001\001 + END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # + # Certificate "Equifax Secure eBusiness CA 1" + # + # Issuer: CN=Equifax Secure eBusiness CA-1,O=Equifax Secure Inc.,C=US + # Serial Number: 4 (0x4) + # Subject: CN=Equifax Secure eBusiness CA-1,O=Equifax Secure Inc.,C=US + # Not Valid Before: Mon Jun 21 04:00:00 1999 + # Not Valid After : Sun Jun 21 04:00:00 2020 + # Fingerprint (MD5): 64:9C:EF:2E:44:FC:C6:8F:52:07:D0:51:73:8F:CB:3D + # Fingerprint (SHA1): DA:40:18:8B:91:89:A3:ED:EE:AE:DA:97:FE:2F:9D:F5:B7:D1:8A:41 + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Equifax Secure eBusiness CA 1" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL + \060\123\061\013\060\011\006\003\125\004\006\023\002\125\123\061 + \034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 + \170\040\123\145\143\165\162\145\040\111\156\143\056\061\046\060 + \044\006\003\125\004\003\023\035\105\161\165\151\146\141\170\040 + \123\145\143\165\162\145\040\145\102\165\163\151\156\145\163\163 + \040\103\101\055\061 + END + CKA_ID UTF8 "0" + CKA_ISSUER MULTILINE_OCTAL + \060\123\061\013\060\011\006\003\125\004\006\023\002\125\123\061 + \034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 + \170\040\123\145\143\165\162\145\040\111\156\143\056\061\046\060 + \044\006\003\125\004\003\023\035\105\161\165\151\146\141\170\040 + \123\145\143\165\162\145\040\145\102\165\163\151\156\145\163\163 + \040\103\101\055\061 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\001\004 + END + CKA_VALUE MULTILINE_OCTAL + \060\202\002\202\060\202\001\353\240\003\002\001\002\002\001\004 + \060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 + \123\061\013\060\011\006\003\125\004\006\023\002\125\123\061\034 + \060\032\006\003\125\004\012\023\023\105\161\165\151\146\141\170 + \040\123\145\143\165\162\145\040\111\156\143\056\061\046\060\044 + \006\003\125\004\003\023\035\105\161\165\151\146\141\170\040\123 + \145\143\165\162\145\040\145\102\165\163\151\156\145\163\163\040 + \103\101\055\061\060\036\027\015\071\071\060\066\062\061\060\064 +@@ -2526,100 +3550,103 @@ + \022\173\376\217\246\003\002\003\001\000\001\243\146\060\144\060 + \021\006\011\140\206\110\001\206\370\102\001\001\004\004\003\002 + \000\007\060\017\006\003\125\035\023\001\001\377\004\005\060\003 + \001\001\377\060\037\006\003\125\035\043\004\030\060\026\200\024 + \112\170\062\122\021\333\131\026\066\136\337\301\024\066\100\152 + \107\174\114\241\060\035\006\003\125\035\016\004\026\004\024\112 + \170\062\122\021\333\131\026\066\136\337\301\024\066\100\152\107 + \174\114\241\060\015\006\011\052\206\110\206\367\015\001\001\004 + \005\000\003\201\201\000\165\133\250\233\003\021\346\351\126\114 + \315\371\251\114\300\015\232\363\314\145\151\346\045\166\314\131 + \267\326\124\303\035\315\231\254\031\335\264\205\325\340\075\374 + \142\040\247\204\113\130\145\361\342\371\225\041\077\365\324\176 + \130\036\107\207\124\076\130\241\265\265\370\052\357\161\347\274 + \303\366\261\111\106\342\327\240\153\345\126\172\232\047\230\174 + \106\142\024\347\311\374\156\003\022\171\200\070\035\110\202\215 + \374\027\376\052\226\053\265\142\246\246\075\275\177\222\131\315 + \132\052\202\262\067\171 + END + + # Trust for Certificate "Equifax Secure eBusiness CA 1" + # Issuer: CN=Equifax Secure eBusiness CA-1,O=Equifax Secure Inc.,C=US + # Serial Number: 4 (0x4) + # Subject: CN=Equifax Secure eBusiness CA-1,O=Equifax Secure Inc.,C=US + # Not Valid Before: Mon Jun 21 04:00:00 1999 + # Not Valid After : Sun Jun 21 04:00:00 2020 + # Fingerprint (MD5): 64:9C:EF:2E:44:FC:C6:8F:52:07:D0:51:73:8F:CB:3D + # Fingerprint (SHA1): DA:40:18:8B:91:89:A3:ED:EE:AE:DA:97:FE:2F:9D:F5:B7:D1:8A:41 + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Equifax Secure eBusiness CA 1" + CKA_CERT_SHA1_HASH MULTILINE_OCTAL + \332\100\030\213\221\211\243\355\356\256\332\227\376\057\235\365 + \267\321\212\101 + END + CKA_CERT_MD5_HASH MULTILINE_OCTAL + \144\234\357\056\104\374\306\217\122\007\320\121\163\217\313\075 + END + CKA_ISSUER MULTILINE_OCTAL + \060\123\061\013\060\011\006\003\125\004\006\023\002\125\123\061 + \034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 + \170\040\123\145\143\165\162\145\040\111\156\143\056\061\046\060 + \044\006\003\125\004\003\023\035\105\161\165\151\146\141\170\040 + \123\145\143\165\162\145\040\145\102\165\163\151\156\145\163\163 + \040\103\101\055\061 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\001\004 + END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # + # Certificate "AddTrust Low-Value Services Root" + # + # Issuer: CN=AddTrust Class 1 CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE + # Serial Number: 1 (0x1) + # Subject: CN=AddTrust Class 1 CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE + # Not Valid Before: Tue May 30 10:38:31 2000 + # Not Valid After : Sat May 30 10:38:31 2020 + # Fingerprint (MD5): 1E:42:95:02:33:92:6B:B9:5F:C0:7F:DA:D6:B2:4B:FC + # Fingerprint (SHA1): CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9D + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "AddTrust Low-Value Services Root" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL + \060\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061 + \024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 + \163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 + \101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 + \167\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101 + \144\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040 + \103\101\040\122\157\157\164 + END + CKA_ID UTF8 "0" + CKA_ISSUER MULTILINE_OCTAL + \060\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061 + \024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 + \163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 + \101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 + \167\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101 + \144\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040 + \103\101\040\122\157\157\164 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\001\001 + END + CKA_VALUE MULTILINE_OCTAL + \060\202\004\030\060\202\003\000\240\003\002\001\002\002\001\001 + \060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 + \145\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024 + \060\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163 + \164\040\101\102\061\035\060\033\006\003\125\004\013\023\024\101 + \144\144\124\162\165\163\164\040\124\124\120\040\116\145\164\167 +@@ -7415,100 +8442,103 @@ + \164\164\160\163\072\057\057\167\167\167\056\156\145\164\154\157 + \143\153\056\156\145\164\057\144\157\143\163\040\157\162\040\142 + \171\040\145\055\155\141\151\154\040\141\164\040\143\160\163\100 + \156\145\164\154\157\143\153\056\156\145\164\056\060\015\006\011 + \052\206\110\206\367\015\001\001\004\005\000\003\201\201\000\004 + \333\256\214\027\257\370\016\220\061\116\315\076\011\300\155\072 + \260\370\063\114\107\114\343\165\210\020\227\254\260\070\025\221 + \306\051\226\314\041\300\155\074\245\164\317\330\202\245\071\303 + \145\343\102\160\273\042\220\343\175\333\065\166\341\240\265\332 + \237\160\156\223\032\060\071\035\060\333\056\343\174\262\221\262 + \321\067\051\372\271\326\027\134\107\117\343\035\070\353\237\325 + \173\225\250\050\236\025\112\321\321\320\053\000\227\240\342\222 + \066\053\143\254\130\001\153\063\051\120\206\203\361\001\110 + END + + # Trust for Certificate "NetLock Business (Class B) Root" + # Issuer: CN=NetLock Uzleti (Class B) Tanusitvanykiado,OU=Tanusitvanykiadok,O=NetLock Halozatbiztonsagi Kft.,L=Budapest,C=HU + # Serial Number: 105 (0x69) + # Subject: CN=NetLock Uzleti (Class B) Tanusitvanykiado,OU=Tanusitvanykiadok,O=NetLock Halozatbiztonsagi Kft.,L=Budapest,C=HU + # Not Valid Before: Thu Feb 25 14:10:22 1999 + # Not Valid After : Wed Feb 20 14:10:22 2019 + # Fingerprint (MD5): 39:16:AA:B9:6A:41:E1:14:69:DF:9E:6C:3B:72:DC:B6 + # Fingerprint (SHA1): 87:9F:4B:EE:05:DF:98:58:3B:E3:60:D6:33:E7:0D:3F:FE:98:71:AF + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "NetLock Business (Class B) Root" + CKA_CERT_SHA1_HASH MULTILINE_OCTAL + \207\237\113\356\005\337\230\130\073\343\140\326\063\347\015\077 + \376\230\161\257 + END + CKA_CERT_MD5_HASH MULTILINE_OCTAL + \071\026\252\271\152\101\341\024\151\337\236\154\073\162\334\266 + END + CKA_ISSUER MULTILINE_OCTAL + \060\201\231\061\013\060\011\006\003\125\004\006\023\002\110\125 + \061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 + \145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 + \164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 + \164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 + \006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 + \156\171\153\151\141\144\157\153\061\062\060\060\006\003\125\004 + \003\023\051\116\145\164\114\157\143\153\040\125\172\154\145\164 + \151\040\050\103\154\141\163\163\040\102\051\040\124\141\156\165 + \163\151\164\166\141\156\171\153\151\141\144\157 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\001\151 + END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # + # Certificate "NetLock Express (Class C) Root" + # + # Issuer: CN=NetLock Expressz (Class C) Tanusitvanykiado,OU=Tanusitvanykiadok,O=NetLock Halozatbiztonsagi Kft.,L=Budapest,C=HU + # Serial Number: 104 (0x68) + # Subject: CN=NetLock Expressz (Class C) Tanusitvanykiado,OU=Tanusitvanykiadok,O=NetLock Halozatbiztonsagi Kft.,L=Budapest,C=HU + # Not Valid Before: Thu Feb 25 14:08:11 1999 + # Not Valid After : Wed Feb 20 14:08:11 2019 + # Fingerprint (MD5): 4F:EB:F1:F0:70:C2:80:63:5D:58:9F:DA:12:3C:A9:C4 + # Fingerprint (SHA1): E3:92:51:2F:0A:CF:F5:05:DF:F6:DE:06:7F:75:37:E1:65:EA:57:4B + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "NetLock Express (Class C) Root" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL + \060\201\233\061\013\060\011\006\003\125\004\006\023\002\110\125 + \061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 + \145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 + \164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 + \164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 + \006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 + \156\171\153\151\141\144\157\153\061\064\060\062\006\003\125\004 + \003\023\053\116\145\164\114\157\143\153\040\105\170\160\162\145 + \163\163\172\040\050\103\154\141\163\163\040\103\051\040\124\141 + \156\165\163\151\164\166\141\156\171\153\151\141\144\157 + END + CKA_ID UTF8 "0" + CKA_ISSUER MULTILINE_OCTAL + \060\201\233\061\013\060\011\006\003\125\004\006\023\002\110\125 + \061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 + \145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 + \164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 + \164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 + \006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 + \156\171\153\151\141\144\157\153\061\064\060\062\006\003\125\004 + \003\023\053\116\145\164\114\157\143\153\040\105\170\160\162\145 + \163\163\172\040\050\103\154\141\163\163\040\103\051\040\124\141 + \156\165\163\151\164\166\141\156\171\153\151\141\144\157 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\001\150 + END + CKA_VALUE MULTILINE_OCTAL +@@ -7588,100 +8618,103 @@ + \145\164\154\157\143\153\056\156\145\164\057\144\157\143\163\040 + \157\162\040\142\171\040\145\055\155\141\151\154\040\141\164\040 + \143\160\163\100\156\145\164\154\157\143\153\056\156\145\164\056 + \060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\003 + \201\201\000\020\255\177\327\014\062\200\012\330\206\361\171\230 + \265\255\324\315\263\066\304\226\110\301\134\315\232\331\005\056 + \237\276\120\353\364\046\024\020\055\324\146\027\370\236\301\047 + \375\361\355\344\173\113\240\154\265\253\232\127\160\246\355\240 + \244\355\056\365\375\374\275\376\115\067\010\014\274\343\226\203 + \042\365\111\033\177\113\053\264\124\301\200\174\231\116\035\320 + \214\356\320\254\345\222\372\165\126\376\144\240\023\217\270\270 + \026\235\141\005\147\200\310\320\330\245\007\002\064\230\004\215 + \063\004\324 + END + + # Trust for Certificate "NetLock Express (Class C) Root" + # Issuer: CN=NetLock Expressz (Class C) Tanusitvanykiado,OU=Tanusitvanykiadok,O=NetLock Halozatbiztonsagi Kft.,L=Budapest,C=HU + # Serial Number: 104 (0x68) + # Subject: CN=NetLock Expressz (Class C) Tanusitvanykiado,OU=Tanusitvanykiadok,O=NetLock Halozatbiztonsagi Kft.,L=Budapest,C=HU + # Not Valid Before: Thu Feb 25 14:08:11 1999 + # Not Valid After : Wed Feb 20 14:08:11 2019 + # Fingerprint (MD5): 4F:EB:F1:F0:70:C2:80:63:5D:58:9F:DA:12:3C:A9:C4 + # Fingerprint (SHA1): E3:92:51:2F:0A:CF:F5:05:DF:F6:DE:06:7F:75:37:E1:65:EA:57:4B + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "NetLock Express (Class C) Root" + CKA_CERT_SHA1_HASH MULTILINE_OCTAL + \343\222\121\057\012\317\365\005\337\366\336\006\177\165\067\341 + \145\352\127\113 + END + CKA_CERT_MD5_HASH MULTILINE_OCTAL + \117\353\361\360\160\302\200\143\135\130\237\332\022\074\251\304 + END + CKA_ISSUER MULTILINE_OCTAL + \060\201\233\061\013\060\011\006\003\125\004\006\023\002\110\125 + \061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 + \145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 + \164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 + \164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 + \006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 + \156\171\153\151\141\144\157\153\061\064\060\062\006\003\125\004 + \003\023\053\116\145\164\114\157\143\153\040\105\170\160\162\145 + \163\163\172\040\050\103\154\141\163\163\040\103\051\040\124\141 + \156\165\163\151\164\166\141\156\171\153\151\141\144\157 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\001\150 + END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # + # Certificate "XRamp Global CA Root" + # + # Issuer: CN=XRamp Global Certification Authority,O=XRamp Security Services Inc,OU=www.xrampsecurity.com,C=US + # Serial Number:50:94:6c:ec:18:ea:d5:9c:4d:d5:97:ef:75:8f:a0:ad + # Subject: CN=XRamp Global Certification Authority,O=XRamp Security Services Inc,OU=www.xrampsecurity.com,C=US + # Not Valid Before: Mon Nov 01 17:14:04 2004 + # Not Valid After : Mon Jan 01 05:37:19 2035 + # Fingerprint (MD5): A1:0B:44:B3:CA:10:D8:00:6E:9D:0F:D8:0F:92:0A:D1 + # Fingerprint (SHA1): B8:01:86:D1:EB:9C:86:A5:41:04:CF:30:54:F3:4C:52:B7:E5:58:C6 + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "XRamp Global CA Root" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL + \060\201\202\061\013\060\011\006\003\125\004\006\023\002\125\123 + \061\036\060\034\006\003\125\004\013\023\025\167\167\167\056\170 + \162\141\155\160\163\145\143\165\162\151\164\171\056\143\157\155 + \061\044\060\042\006\003\125\004\012\023\033\130\122\141\155\160 + \040\123\145\143\165\162\151\164\171\040\123\145\162\166\151\143 + \145\163\040\111\156\143\061\055\060\053\006\003\125\004\003\023 + \044\130\122\141\155\160\040\107\154\157\142\141\154\040\103\145 + \162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150 + \157\162\151\164\171 + END + CKA_ID UTF8 "0" + CKA_ISSUER MULTILINE_OCTAL + \060\201\202\061\013\060\011\006\003\125\004\006\023\002\125\123 + \061\036\060\034\006\003\125\004\013\023\025\167\167\167\056\170 + \162\141\155\160\163\145\143\165\162\151\164\171\056\143\157\155 + \061\044\060\042\006\003\125\004\012\023\033\130\122\141\155\160 + \040\123\145\143\165\162\151\164\171\040\123\145\162\166\151\143 + \145\163\040\111\156\143\061\055\060\053\006\003\125\004\003\023 + \044\130\122\141\155\160\040\107\154\157\142\141\154\040\103\145 + \162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150 + \157\162\151\164\171 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\020\120\224\154\354\030\352\325\234\115\325\227\357\165\217 + \240\255 + END + CKA_VALUE MULTILINE_OCTAL + \060\202\004\060\060\202\003\030\240\003\002\001\002\002\020\120 +@@ -17139,100 +18172,103 @@ + \005\252\354\003\037\170\177\236\223\271\232\000\252\043\175\326 + \254\205\242\143\105\307\162\047\314\364\114\306\165\161\322\071 + \357\117\102\360\165\337\012\220\306\216\040\157\230\017\370\254 + \043\137\160\051\066\244\311\206\347\261\232\040\313\123\245\205 + \347\075\276\175\232\376\044\105\063\334\166\025\355\017\242\161 + \144\114\145\056\201\150\105\247\002\003\001\000\001\060\015\006 + \011\052\206\110\206\367\015\001\001\005\005\000\003\201\201\000 + \020\162\122\251\005\024\031\062\010\101\360\305\153\012\314\176 + \017\041\031\315\344\147\334\137\251\033\346\312\350\163\235\042 + \330\230\156\163\003\141\221\305\174\260\105\100\156\104\235\215 + \260\261\226\164\141\055\015\251\105\322\244\222\052\326\232\165 + \227\156\077\123\375\105\231\140\035\250\053\114\371\136\247\011 + \330\165\060\327\322\145\140\075\147\326\110\125\165\151\077\221 + \365\110\013\107\151\042\151\202\226\276\311\310\070\206\112\172 + \054\163\031\110\151\116\153\174\145\277\017\374\160\316\210\220 + END + + # Trust for Certificate "Verisign Class 3 Public Primary Certification Authority" + # Issuer: OU=Class 3 Public Primary Certification Authority,O="VeriSign, Inc.",C=US + # Serial Number:3c:91:31:cb:1f:f6:d0:1b:0e:9a:b8:d0:44:bf:12:be + # Subject: OU=Class 3 Public Primary Certification Authority,O="VeriSign, Inc.",C=US + # Not Valid Before: Mon Jan 29 00:00:00 1996 + # Not Valid After : Wed Aug 02 23:59:59 2028 + # Fingerprint (MD5): EF:5A:F1:33:EF:F1:CD:BB:51:02:EE:12:14:4B:96:C4 + # Fingerprint (SHA1): A1:DB:63:93:91:6F:17:E4:18:55:09:40:04:15:C7:02:40:B0:AE:6B + CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority" + CKA_CERT_SHA1_HASH MULTILINE_OCTAL + \241\333\143\223\221\157\027\344\030\125\011\100\004\025\307\002 + \100\260\256\153 + END + CKA_CERT_MD5_HASH MULTILINE_OCTAL + \357\132\361\063\357\361\315\273\121\002\356\022\024\113\226\304 + END + CKA_ISSUER MULTILINE_OCTAL + \060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 + \027\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151 + \147\156\054\040\111\156\143\056\061\067\060\065\006\003\125\004 + \013\023\056\103\154\141\163\163\040\063\040\120\165\142\154\151 + \143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 + \151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 + \171 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\020\074\221\061\313\037\366\320\033\016\232\270\320\104\277 + \022\276 + END ++LEGACY_CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR ++LEGACY_CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + # + # Certificate "Microsec e-Szigno Root CA 2009" + # + # Issuer: E=info@e-szigno.hu,CN=Microsec e-Szigno Root CA 2009,O=Microsec Ltd.,L=Budapest,C=HU + # Serial Number:00:c2:7e:43:04:4e:47:3f:19 + # Subject: E=info@e-szigno.hu,CN=Microsec e-Szigno Root CA 2009,O=Microsec Ltd.,L=Budapest,C=HU + # Not Valid Before: Tue Jun 16 11:30:18 2009 + # Not Valid After : Sun Dec 30 11:30:18 2029 + # Fingerprint (MD5): F8:49:F4:03:BC:44:2D:83:BE:48:69:7D:29:64:FC:B1 + # Fingerprint (SHA1): 89:DF:74:FE:5C:F4:0F:4A:80:F9:E3:37:7D:54:DA:91:E1:01:31:8E + CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE + CKA_TOKEN CK_BBOOL CK_TRUE + CKA_PRIVATE CK_BBOOL CK_FALSE + CKA_MODIFIABLE CK_BBOOL CK_FALSE + CKA_LABEL UTF8 "Microsec e-Szigno Root CA 2009" + CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 + CKA_SUBJECT MULTILINE_OCTAL + \060\201\202\061\013\060\011\006\003\125\004\006\023\002\110\125 + \061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 + \145\163\164\061\026\060\024\006\003\125\004\012\014\015\115\151 + \143\162\157\163\145\143\040\114\164\144\056\061\047\060\045\006 + \003\125\004\003\014\036\115\151\143\162\157\163\145\143\040\145 + \055\123\172\151\147\156\157\040\122\157\157\164\040\103\101\040 + \062\060\060\071\061\037\060\035\006\011\052\206\110\206\367\015 + \001\011\001\026\020\151\156\146\157\100\145\055\163\172\151\147 + \156\157\056\150\165 + END + CKA_ID UTF8 "0" + CKA_ISSUER MULTILINE_OCTAL + \060\201\202\061\013\060\011\006\003\125\004\006\023\002\110\125 + \061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 + \145\163\164\061\026\060\024\006\003\125\004\012\014\015\115\151 + \143\162\157\163\145\143\040\114\164\144\056\061\047\060\045\006 + \003\125\004\003\014\036\115\151\143\162\157\163\145\143\040\145 + \055\123\172\151\147\156\157\040\122\157\157\164\040\103\101\040 + \062\060\060\071\061\037\060\035\006\011\052\206\110\206\367\015 + \001\011\001\026\020\151\156\146\157\100\145\055\163\172\151\147 + \156\157\056\150\165 + END + CKA_SERIAL_NUMBER MULTILINE_OCTAL + \002\011\000\302\176\103\004\116\107\077\031 + END + CKA_VALUE MULTILINE_OCTAL + \060\202\004\012\060\202\002\362\240\003\002\001\002\002\011\000 + \302\176\103\004\116\107\077\031\060\015\006\011\052\206\110\206 From 2b0fd0f3984b30a3e70ebd0c4babe5f39d718578 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 20 Jun 2015 22:24:43 +0300 Subject: [PATCH 1175/2060] drmingw: Update to 0.7.3. Install import libraries. --- mingw-w64-drmingw/PKGBUILD | 16 ++++++++------ mingw-w64-drmingw/import-libs.patch | 33 +++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-drmingw/import-libs.patch diff --git a/mingw-w64-drmingw/PKGBUILD b/mingw-w64-drmingw/PKGBUILD index ac89df9160..8510b3f7ed 100644 --- a/mingw-w64-drmingw/PKGBUILD +++ b/mingw-w64-drmingw/PKGBUILD @@ -3,7 +3,7 @@ _realname=drmingw pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) -pkgver=0.7.2 +pkgver=0.7.3 pkgrel=1 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') @@ -11,13 +11,15 @@ license=(LGPL2) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") url=('https://github.com/jrfonseca/drmingw') -source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/archive/${pkgver}.tar.gz") +source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/archive/${pkgver}.tar.gz" + import-libs.patch) options=(!strip staticlibs) -md5sums=('621f84694b3cad140402c2afd95998ce') +md5sums=('2a606a5dfb85e6092ae82acbd4612a7c' + 'eae409030c925865fa24cb7f56478e7a') prepare() { - cd "${srcdir}" - mv "${_realname}-${pkgver}" "${_realname}" + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i ${srcdir}/import-libs.patch } build() { @@ -27,7 +29,7 @@ build() { ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ - ../${_realname} + ../${_realname}-${pkgver} make } @@ -37,5 +39,5 @@ package() { rm -rf "${pkgdir}${MINGW_PREFIX}"/doc rm -rf "${pkgdir}${MINGW_PREFIX}"/sample - install -Dm644 "${srcdir}/${_realname}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-drmingw/import-libs.patch b/mingw-w64-drmingw/import-libs.patch new file mode 100644 index 0000000000..6cc3cdc2a9 --- /dev/null +++ b/mingw-w64-drmingw/import-libs.patch @@ -0,0 +1,33 @@ +--- drmingw/src/exchndl/CMakeLists.txt.orig 2015-06-20 21:46:52.998600000 +0300 ++++ drmingw/src/exchndl/CMakeLists.txt 2015-06-20 21:46:57.741000000 +0300 +@@ -1,4 +1,4 @@ +-add_library (exchndl MODULE ++add_library (exchndl SHARED + exchndl.c + exchndl.def + version.rc +@@ -15,4 +15,8 @@ + PREFIX "" + ) + +-install (TARGETS exchndl LIBRARY DESTINATION bin) ++install (TARGETS exchndl ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++) +--- drmingw/src/mgwhelp/CMakeLists.txt.orig 2015-06-20 21:56:28.342000000 +0300 ++++ drmingw/src/mgwhelp/CMakeLists.txt 2015-06-20 22:08:56.832200000 +0300 +@@ -23,7 +23,11 @@ + LINKER_LANGUAGE CXX # for __cxa_demangle + ) + +-install (TARGETS mgwhelp RUNTIME DESTINATION bin) ++install (TARGETS mgwhelp ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++) + + if (CMAKE_SIZEOF_VOID_P EQUAL 4) + # XXX: We need to use a custom import lib to avoid link failures From 8c7dbc064ba4ffd434e4db6a4126fa7235e907cb Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 20 Jun 2015 22:26:18 +0300 Subject: [PATCH 1176/2060] drmingw-git: Update to git SHA [9c71cf6]. Install import libraries. --- mingw-w64-drmingw-git/PKGBUILD | 10 +++++--- mingw-w64-drmingw-git/import-libs.patch | 33 +++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-drmingw-git/import-libs.patch diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index ada831ee6a..4349235d94 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=drmingw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r409.749fca8 +pkgver=r443.9c71cf6 pkgrel=1 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') @@ -13,9 +13,11 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") url=('https://github.com/jrfonseca/drmingw') -source=("${_realname}"::"git+https://github.com/jrfonseca/drmingw.git") +source=("${_realname}"::"git+https://github.com/jrfonseca/drmingw.git" + import-libs.patch) options=(!strip staticlibs) -md5sums=('SKIP') +md5sums=('SKIP' + 'eae409030c925865fa24cb7f56478e7a') pkgver() { cd "$srcdir/$_realname" @@ -24,7 +26,7 @@ pkgver() { prepare() { cd ${_realname} - #patch -p1 -i ${srcdir}/build-fixes.patch + patch -p1 -i ${srcdir}/import-libs.patch } build() { diff --git a/mingw-w64-drmingw-git/import-libs.patch b/mingw-w64-drmingw-git/import-libs.patch new file mode 100644 index 0000000000..6cc3cdc2a9 --- /dev/null +++ b/mingw-w64-drmingw-git/import-libs.patch @@ -0,0 +1,33 @@ +--- drmingw/src/exchndl/CMakeLists.txt.orig 2015-06-20 21:46:52.998600000 +0300 ++++ drmingw/src/exchndl/CMakeLists.txt 2015-06-20 21:46:57.741000000 +0300 +@@ -1,4 +1,4 @@ +-add_library (exchndl MODULE ++add_library (exchndl SHARED + exchndl.c + exchndl.def + version.rc +@@ -15,4 +15,8 @@ + PREFIX "" + ) + +-install (TARGETS exchndl LIBRARY DESTINATION bin) ++install (TARGETS exchndl ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++) +--- drmingw/src/mgwhelp/CMakeLists.txt.orig 2015-06-20 21:56:28.342000000 +0300 ++++ drmingw/src/mgwhelp/CMakeLists.txt 2015-06-20 22:08:56.832200000 +0300 +@@ -23,7 +23,11 @@ + LINKER_LANGUAGE CXX # for __cxa_demangle + ) + +-install (TARGETS mgwhelp RUNTIME DESTINATION bin) ++install (TARGETS mgwhelp ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++) + + if (CMAKE_SIZEOF_VOID_P EQUAL 4) + # XXX: We need to use a custom import lib to avoid link failures From 3e8b0e877cd70fb0087c4e3e7a9b80aaf2435bb5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 16:33:30 +0300 Subject: [PATCH 1177/2060] drmingw: Update patches. --- mingw-w64-drmingw-git/PKGBUILD | 36 ++++++++++------------- mingw-w64-drmingw-git/import-libs.patch | 30 +++++++++++++++++-- mingw-w64-drmingw-git/install-files.patch | 31 +++++++++++++++++++ mingw-w64-drmingw/PKGBUILD | 11 +++---- mingw-w64-drmingw/import-libs.patch | 30 +++++++++++++++++-- mingw-w64-drmingw/install-files.patch | 31 +++++++++++++++++++ 6 files changed, 139 insertions(+), 30 deletions(-) create mode 100644 mingw-w64-drmingw-git/install-files.patch create mode 100644 mingw-w64-drmingw/install-files.patch diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index 4349235d94..807807763f 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -2,31 +2,27 @@ # Contributor: Renato Silva _realname=drmingw -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r443.9c71cf6 -pkgrel=1 +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) +pkgver=0.7.3 +pkgrel=2 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') -license=(LGPL2.1) +license=(LGPL2) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "git") -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") url=('https://github.com/jrfonseca/drmingw') -source=("${_realname}"::"git+https://github.com/jrfonseca/drmingw.git" - import-libs.patch) +source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/archive/${pkgver}.tar.gz" + import-libs.patch + install-files.patch) options=(!strip staticlibs) -md5sums=('SKIP' - 'eae409030c925865fa24cb7f56478e7a') - -pkgver() { - cd "$srcdir/$_realname" - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" -} +md5sums=('2a606a5dfb85e6092ae82acbd4612a7c' + '98685a69354829d13d3f6821fc0ad390' + '79edeee894e906bc3cce20f7f170de0c') prepare() { - cd ${_realname} + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/import-libs.patch + patch -p1 -i ${srcdir}/install-files.patch } build() { @@ -36,15 +32,13 @@ build() { ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ - ../${_realname} + ../${_realname}-${pkgver} make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 install - rm -rf "${pkgdir}${MINGW_PREFIX}"/doc - rm -rf "${pkgdir}${MINGW_PREFIX}"/sample - install -Dm644 "${srcdir}/${_realname}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-drmingw-git/import-libs.patch b/mingw-w64-drmingw-git/import-libs.patch index 6cc3cdc2a9..deccec9e00 100644 --- a/mingw-w64-drmingw-git/import-libs.patch +++ b/mingw-w64-drmingw-git/import-libs.patch @@ -1,11 +1,32 @@ +--- drmingw/CMakeLists.txt.orig 2015-06-21 14:48:57.330400000 +0300 ++++ drmingw/CMakeLists.txt 2015-06-21 14:49:03.554800000 +0300 +@@ -60,10 +60,6 @@ + set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -static-libstdc++") + endif () + +-if (CMAKE_SIZEOF_VOID_P EQUAL 4) +- set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--kill-at") +-endif () +- + # Put all executables into top-level bin subdirectory + set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) --- drmingw/src/exchndl/CMakeLists.txt.orig 2015-06-20 21:46:52.998600000 +0300 +++ drmingw/src/exchndl/CMakeLists.txt 2015-06-20 21:46:57.741000000 +0300 -@@ -1,4 +1,4 @@ +@@ -1,6 +1,11 @@ -add_library (exchndl MODULE ++if (CMAKE_SIZEOF_VOID_P EQUAL 4) ++ set (EXCHNDL_DEF exchndl32.def) ++else () ++ set (EXCHNDL_DEF exchndl.def) ++endif () +add_library (exchndl SHARED exchndl.c - exchndl.def +- exchndl.def ++ ${EXCHNDL_DEF} version.rc + ) + @@ -15,4 +15,8 @@ PREFIX "" ) @@ -16,6 +37,11 @@ + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +--- /dev/null 2015-06-21 14:20:14.000000000 +0300 ++++ drmingw/src/exchndl/exchndl32.def 2015-06-21 14:18:57.437200000 +0300 +@@ -0,0 +1,2 @@ ++EXPORTS ++ SetLogFileNameA@4 --- drmingw/src/mgwhelp/CMakeLists.txt.orig 2015-06-20 21:56:28.342000000 +0300 +++ drmingw/src/mgwhelp/CMakeLists.txt 2015-06-20 22:08:56.832200000 +0300 @@ -23,7 +23,11 @@ diff --git a/mingw-w64-drmingw-git/install-files.patch b/mingw-w64-drmingw-git/install-files.patch new file mode 100644 index 0000000000..f3341dfb77 --- /dev/null +++ b/mingw-w64-drmingw-git/install-files.patch @@ -0,0 +1,31 @@ +--- drmingw/CMakeLists.txt.orig 2015-06-21 14:26:32.215200000 +0300 ++++ drmingw/CMakeLists.txt 2015-06-21 14:27:19.342800000 +0300 +@@ -120,7 +120,7 @@ + FILES + LICENSE.txt + README.md +- DESTINATION doc ++ DESTINATION share/doc/drmingw + ) + + # cpack mistakenly detects Mingw-w64 as win32 +--- drmingw/sample/CMakeLists.txt.orig 2015-06-21 14:27:55.165000000 +0300 ++++ drmingw/sample/CMakeLists.txt 2015-06-21 14:28:26.833000000 +0300 +@@ -6,5 +6,5 @@ + exchndl2.cpp + ) + +-install (FILES sample.cpp exchndl2.cpp DESTINATION sample) +-install (FILES sample.mak DESTINATION sample RENAME Makefile) ++install (FILES sample.cpp exchndl2.cpp DESTINATION share/drmingw/sample) ++install (FILES sample.mak DESTINATION share/drmingw/sample RENAME Makefile) +--- drmingw/thirdparty/dwarf/CMakeLists.txt.orig 2015-06-21 14:33:35.812200000 +0300 ++++ drmingw/thirdparty/dwarf/CMakeLists.txt 2015-06-21 14:33:45.733800000 +0300 +@@ -38,6 +38,6 @@ + + install ( + FILES LIBDWARFCOPYRIGHT +- DESTINATION doc ++ DESTINATION share/doc/drmingw + RENAME LICENSE-libdwarf.txt + ) diff --git a/mingw-w64-drmingw/PKGBUILD b/mingw-w64-drmingw/PKGBUILD index 8510b3f7ed..76e8970c9f 100644 --- a/mingw-w64-drmingw/PKGBUILD +++ b/mingw-w64-drmingw/PKGBUILD @@ -4,7 +4,7 @@ _realname=drmingw pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) pkgver=0.7.3 -pkgrel=1 +pkgrel=2 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') license=(LGPL2) @@ -12,14 +12,17 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") url=('https://github.com/jrfonseca/drmingw') source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/archive/${pkgver}.tar.gz" - import-libs.patch) + import-libs.patch + install-files.patch) options=(!strip staticlibs) md5sums=('2a606a5dfb85e6092ae82acbd4612a7c' - 'eae409030c925865fa24cb7f56478e7a') + '36a51f93ad1c1fa1d911af1886688dda' + '79edeee894e906bc3cce20f7f170de0c') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/import-libs.patch + patch -p1 -i ${srcdir}/install-files.patch } build() { @@ -36,8 +39,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 install - rm -rf "${pkgdir}${MINGW_PREFIX}"/doc - rm -rf "${pkgdir}${MINGW_PREFIX}"/sample install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-drmingw/import-libs.patch b/mingw-w64-drmingw/import-libs.patch index 6cc3cdc2a9..e82af0d1cc 100644 --- a/mingw-w64-drmingw/import-libs.patch +++ b/mingw-w64-drmingw/import-libs.patch @@ -1,11 +1,32 @@ +--- drmingw/CMakeLists.txt.orig 2015-06-21 14:48:57.330400000 +0300 ++++ drmingw/CMakeLists.txt 2015-06-21 14:49:03.554800000 +0300 +@@ -60,10 +60,6 @@ + set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -static-libstdc++") + endif () + +-if (CMAKE_SIZEOF_VOID_P EQUAL 4) +- set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--kill-at") +-endif () +- + # Put all executables into top-level bin subdirectory + set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) --- drmingw/src/exchndl/CMakeLists.txt.orig 2015-06-20 21:46:52.998600000 +0300 +++ drmingw/src/exchndl/CMakeLists.txt 2015-06-20 21:46:57.741000000 +0300 -@@ -1,4 +1,4 @@ +@@ -1,6 +1,11 @@ -add_library (exchndl MODULE ++if (CMAKE_SIZEOF_VOID_P EQUAL 4) ++ set (EXCHNDL_DEF exchndl32.def) ++else () ++ set (EXCHNDL_DEF exchndl.def) ++endif () +add_library (exchndl SHARED exchndl.c - exchndl.def +- exchndl.def ++ ${EXCHNDL_DEF} version.rc + ) + @@ -15,4 +15,8 @@ PREFIX "" ) @@ -16,6 +37,11 @@ + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +--- /dev/null 2015-06-21 14:20:14.000000000 +0300 ++++ drmingw/src/exchndl/exchndl32.def 2015-06-21 14:18:57.437200000 +0300 +@@ -0,0 +1,2 @@ ++EXPORTS ++ ExcHndlSetLogFileNameA@4 --- drmingw/src/mgwhelp/CMakeLists.txt.orig 2015-06-20 21:56:28.342000000 +0300 +++ drmingw/src/mgwhelp/CMakeLists.txt 2015-06-20 22:08:56.832200000 +0300 @@ -23,7 +23,11 @@ diff --git a/mingw-w64-drmingw/install-files.patch b/mingw-w64-drmingw/install-files.patch new file mode 100644 index 0000000000..f3341dfb77 --- /dev/null +++ b/mingw-w64-drmingw/install-files.patch @@ -0,0 +1,31 @@ +--- drmingw/CMakeLists.txt.orig 2015-06-21 14:26:32.215200000 +0300 ++++ drmingw/CMakeLists.txt 2015-06-21 14:27:19.342800000 +0300 +@@ -120,7 +120,7 @@ + FILES + LICENSE.txt + README.md +- DESTINATION doc ++ DESTINATION share/doc/drmingw + ) + + # cpack mistakenly detects Mingw-w64 as win32 +--- drmingw/sample/CMakeLists.txt.orig 2015-06-21 14:27:55.165000000 +0300 ++++ drmingw/sample/CMakeLists.txt 2015-06-21 14:28:26.833000000 +0300 +@@ -6,5 +6,5 @@ + exchndl2.cpp + ) + +-install (FILES sample.cpp exchndl2.cpp DESTINATION sample) +-install (FILES sample.mak DESTINATION sample RENAME Makefile) ++install (FILES sample.cpp exchndl2.cpp DESTINATION share/drmingw/sample) ++install (FILES sample.mak DESTINATION share/drmingw/sample RENAME Makefile) +--- drmingw/thirdparty/dwarf/CMakeLists.txt.orig 2015-06-21 14:33:35.812200000 +0300 ++++ drmingw/thirdparty/dwarf/CMakeLists.txt 2015-06-21 14:33:45.733800000 +0300 +@@ -38,6 +38,6 @@ + + install ( + FILES LIBDWARFCOPYRIGHT +- DESTINATION doc ++ DESTINATION share/doc/drmingw + RENAME LICENSE-libdwarf.txt + ) From 31f1de041609cbb963d2dee13dd06a6055ef4b41 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 19:07:48 +0300 Subject: [PATCH 1178/2060] ffmpeg: Update to 2.7.1 --- mingw-w64-ffmpeg/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index ae63e82b32..4d93bd4ea5 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,8 +2,8 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.7 -pkgrel=2 +pkgver=2.7.1 +pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" @@ -41,7 +41,7 @@ depends=( ) makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://ffmpeg.org/releases/${_realname}-${pkgver}.tar.bz2) -md5sums=('5a16425b0bde1b952f58cff71b569a45') +md5sums=('f159c6d7eed8546b23e1a17325cbf1f8') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 636b9fa47bb0d94f7def2834f855ff681a4965be Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 20:12:27 +0300 Subject: [PATCH 1179/2060] apr: Update to 1.5.2 --- mingw-w64-apr/PKGBUILD | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/mingw-w64-apr/PKGBUILD b/mingw-w64-apr/PKGBUILD index cc010617a1..6d76c9b0d6 100644 --- a/mingw-w64-apr/PKGBUILD +++ b/mingw-w64-apr/PKGBUILD @@ -2,54 +2,56 @@ _realname=apr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.1 +pkgver=1.5.2 pkgrel=1 pkgdesc="The Apache Portable Runtime (mingw-w64)" arch=('any') url="https://apr.apache.org/" license=('APACHE') - -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - ) - -source=("http://www.apache.org/dist/apr/apr-${pkgver}-win32-src.zip" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool") +source=(http://www.apache.org/dist/apr/${_realname}-${pkgver}.tar.bz2{,.asc} 'apr_ssize_t.patch' 'apr_wtypes.patch') -md5sums=('684a3756a2f8955e837b53e8089e10b0' +md5sums=('4e9769f3349fe11fc0a5e1b224c236aa' + 'SKIP' 'b91081b97f838246446c5795371faf6a' '0326d335f035f8f13dea4296efb1faab') prepare() { - cd "${srcdir}/apr-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" patch -p0 -i ${srcdir}/apr_ssize_t.patch patch -p0 -i ${srcdir}/apr_wtypes.patch - autoreconf -fi + ./buildconf + # autoreconf -fi } build() { - cd "${srcdir}/apr-${pkgver}" + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} - ./buildconf # Disable IPv6. - ./configure --prefix="${MINGW_PREFIX}" \ + ../${_realname}-${pkgver}/configure \ + --prefix="${MINGW_PREFIX}" \ --includedir="${MINGW_PREFIX}/include/apr-1" \ --with-installbuilddir="${MINGW_PREFIX}/share/apr-1/build" \ --enable-nonportable-atomics \ --with-devrandom=/dev/urandom \ --disable-ipv6 - make -j7 + + make } #check() { -# cd "${srcdir}/apr-${pkgver}" +# cd "${srcdir}/build-${MINGW_CHOST}" # make -j1 check #} package() { - cd "${srcdir}/apr-${pkgver}" - make -j7 DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install #pushd "${pkgdir}${MINGW_PREFIX}" > /dev/null #export PREFIX_WIN=`pwd -W` From 8c767dbb75f0d4b83c68e2ff3deb064f067d6c4b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 20:13:20 +0300 Subject: [PATCH 1180/2060] python-nose: Update to 1.3.7 --- mingw-w64-python-nose/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-nose/PKGBUILD b/mingw-w64-python-nose/PKGBUILD index b7459aa614..bb97392137 100644 --- a/mingw-w64-python-nose/PKGBUILD +++ b/mingw-w64-python-nose/PKGBUILD @@ -3,7 +3,7 @@ _realname=nose pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.3.6 +pkgver=1.3.7 pkgrel=1 pkgdesc="A discovery-based unittest extension (mingw-w64)" arch=('any') @@ -11,7 +11,7 @@ license=('LGPL-2.1') url="http://readthedocs.org/docs/nose/" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=("http://pypi.python.org/packages/source/n/nose/nose-${pkgver}.tar.gz") -md5sums=('0ca546d81ca8309080fc80cb389e7a16') +md5sums=('4d3ad0ff07b61373d2cefc89c5d0b20b') build() { cd "$srcdir/nose-$pkgver" From 223d79e7a6033c6d475a43c2121ee03e431418aa Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 20:17:12 +0300 Subject: [PATCH 1181/2060] apr-util: New package. --- mingw-w64-apr-util/PKGBUILD | 57 ++++++++++++++++++++++++++++++++ mingw-w64-apr-util/plugins.patch | 36 ++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 mingw-w64-apr-util/PKGBUILD create mode 100644 mingw-w64-apr-util/plugins.patch diff --git a/mingw-w64-apr-util/PKGBUILD b/mingw-w64-apr-util/PKGBUILD new file mode 100644 index 0000000000..4b98e28b0c --- /dev/null +++ b/mingw-w64-apr-util/PKGBUILD @@ -0,0 +1,57 @@ +# Maintainer: Alexey Pavlov + +_realname=apr-util +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.5.4 +pkgrel=1 +pkgdesc="The Apache Portable Runtime (mingw-w64)" +arch=('any') +url="http://apr.apache.org/" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool") +depends=("${MINGW_PACKAGE_PREFIX}-apr" + "${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-sqlite3") +options=('!libtool') +license=('APACHE') +source=(http://www.apache.org/dist/apr/${_realname}-${pkgver}.tar.bz2{,.asc} + plugins.patch) +md5sums=('2202b18f269ad606d70e1864857ed93c' + 'SKIP' + '9db9f3c4b14749988e9133aaa0658fcd') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i ${srcdir}/plugins.patch + #./buildconf --with-apr=${MINGW_PREFIX} + autoreconf -fi +} + +build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --with-apr=${MINGW_PREFIX} \ + --with-expat=${MINGW_PREFIX} \ + --without-gdbm \ + --without-ldap \ + --without-pgsql \ + --with-sqlite3=${MINGW_PREFIX} + + make -j1 +} + +check() { + cd "${srcdir}/build-${MINGW_CHOST}" + make -j1 check +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install +} diff --git a/mingw-w64-apr-util/plugins.patch b/mingw-w64-apr-util/plugins.patch new file mode 100644 index 0000000000..8024bf79ce --- /dev/null +++ b/mingw-w64-apr-util/plugins.patch @@ -0,0 +1,36 @@ + + +From: David Rothenberger + + +--- + Makefile.in | 2 +- + ldap/apr_ldap_stub.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 963fead..c9827de 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -23,7 +23,7 @@ INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ + + APU_MODULES = @APU_MODULES@ +-LINK_MODULE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(APRUTIL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -rpath $(APU_DSO_LIBDIR) ++LINK_MODULE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(APRUTIL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -no-undefined -rpath $(APU_DSO_LIBDIR) @abs_builddir@/lib@APRUTIL_LIBNAME@.la $(APRUTIL_LIBS) + APU_DSO_LIBDIR = @APU_DSO_LIBDIR@ + + LT_VERSION = @APU_LTVERSION@ +diff --git a/ldap/apr_ldap_stub.c b/ldap/apr_ldap_stub.c +index 97c1551..9df76b7 100644 +--- a/ldap/apr_ldap_stub.c ++++ b/ldap/apr_ldap_stub.c +@@ -45,7 +45,7 @@ static apr_status_t load_ldap(apr_pool_t *pool) + return rv; + } + +-#if defined(WIN32) ++#if defined(WIN32) || defined(__CYGWIN__) + modname = "apr_ldap-" APU_STRINGIFY(APU_MAJOR_VERSION) ".dll"; + #else + modname = "apr_ldap-" APU_STRINGIFY(APU_MAJOR_VERSION) ".so"; From 804fd9641721f97635054f9dda21e7ddcbb79680 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 21:01:38 +0300 Subject: [PATCH 1182/2060] aria2: Update to 1.19.0 --- mingw-w64-aria2/PKGBUILD | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/mingw-w64-aria2/PKGBUILD b/mingw-w64-aria2/PKGBUILD index 0803c76691..90fd807fc8 100644 --- a/mingw-w64-aria2/PKGBUILD +++ b/mingw-w64-aria2/PKGBUILD @@ -2,45 +2,47 @@ _realname=aria2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.18.10 +pkgver=1.19.0 pkgrel=1 pkgdesc="A multi-protocol & multi-source, cross platform download utility (mingw-w64)" arch=('any') url="http://aria2.sourceforge.net/" license=('GPL2') -makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-gcc") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" "${MINGW_PACKAGE_PREFIX}-c-ares" + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-libssh2" + "${MINGW_PACKAGE_PREFIX}-libuv" + "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-sqlite3" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-libuv") -optdepends=( - "${MINGW_PACKAGE_PREFIX}-ruby: aria2rpc and aria2mon") -source=("http://sourceforge.net/projects/aria2/files/stable/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz" + ) +optdepends=("${MINGW_PACKAGE_PREFIX}-ruby: aria2rpc and aria2mon") +source=(${_realname}-${pkgver}.tar.gz::https://github.com/tatsuhiro-t/aria2/archive/release-${pkgver}.tar.gz 'mingw-inline.patch' 'windows-libintl.patch') -md5sums=('cf46c9f19a175366536e9815326c3891' +md5sums=('efc081865ed268e13f6beeb735a12dad' '87cb82e55fb023021980e1c6994e42ff' '25d25975420c8ca3c3dbffe3d89fa657') prepare() { - cd "${_realname}-${pkgver}" + cd "${_realname}-release-${pkgver}" patch -p1 -i "${srcdir}/mingw-inline.patch" patch -p1 -i "${srcdir}/windows-libintl.patch" autoreconf -fi } build() { - mkdir -p "build-${CARCH}" - cd "build-${CARCH}" + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} # disabling gnutls and wintls so we will fall back to openssl - ../${_realname}-${pkgver}/configure \ + ../${_realname}-release-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --with-bashcompletiondir=${MINGW_PREFIX}/share/bash-completion/completions \ --build=${MINGW_CHOST} \ @@ -54,14 +56,14 @@ build() { } package() { - cd "build-${CARCH}" + cd "build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install - cd "../${_realname}-${pkgver}" + cd "../${_realname}-release-${pkgver}" install -Dm0755 doc/xmlrpc/aria2rpc "${pkgdir}"${MINGW_PREFIX}/bin/aria2rpc install -Dm0755 doc/xmlrpc/aria2mon "${pkgdir}"${MINGW_PREFIX}/bin/aria2mon echo '@ruby -- "%~dp0aria2rpc" %*' > "${pkgdir}"${MINGW_PREFIX}/bin/aria2rpc.cmd echo '@ruby -- "%~dp0aria2mon" %*' > "${pkgdir}"${MINGW_PREFIX}/bin/aria2mon.cmd - rm "$pkgdir"${MINGW_PREFIX}/share/doc/${_realname}/xmlrpc/aria2{rpc,mon} + rm ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/xmlrpc/aria2{rpc,mon} } From 0a8f6aa48fe0892599b120d23fe12c851d86d225 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 21:40:09 +0300 Subject: [PATCH 1183/2060] assimp-git: Update to git SHA [71cc642] --- mingw-w64-assimp-git/PKGBUILD | 4 ++-- mingw-w64-assimp-git/build-fixes.patch | 15 --------------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/mingw-w64-assimp-git/PKGBUILD b/mingw-w64-assimp-git/PKGBUILD index 95b053e387..3fe360d393 100644 --- a/mingw-w64-assimp-git/PKGBUILD +++ b/mingw-w64-assimp-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=assimp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r2029.bd0c283 +pkgver=r2740.71cc642 pkgrel=1 pkgdesc="Portable Open Source library to import various well-known 3D model formats in an uniform manner (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ source=("${_realname}"::"git+https://github.com/assimp/assimp.git" 'build-fixes.patch') options=(!strip staticlibs) md5sums=('SKIP' - '8627cd14b63ff5ea524c1a9ba62ebbce') + 'eb7991c3764c438801238e3dbb125d54') pkgver() { cd "$srcdir/$_realname" diff --git a/mingw-w64-assimp-git/build-fixes.patch b/mingw-w64-assimp-git/build-fixes.patch index 95bcb13a36..9df1e4b1ba 100644 --- a/mingw-w64-assimp-git/build-fixes.patch +++ b/mingw-w64-assimp-git/build-fixes.patch @@ -9,18 +9,3 @@ #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// ---- assimp/test/unit/Main.cpp.orig 2014-06-12 22:00:03.635600000 +0400 -+++ assimp/test/unit/Main.cpp 2014-06-12 22:00:14.150000000 +0400 -@@ -25,10 +25,9 @@ - aiDefaultLogStream_DEBUGGER | aiDefaultLogStream_FILE); - - // .. and C. They should smoothly work together -+ aiLogStream logS = aiGetPredefinedLogStream(aiDefaultLogStream_FILE, "AssimpLog_C.txt"); - aiEnableVerboseLogging(AI_TRUE); -- aiAttachLogStream(&aiGetPredefinedLogStream( -- aiDefaultLogStream_FILE, -- "AssimpLog_C.txt")); -+ aiAttachLogStream(&logS); - - - // ............................................................................ From 35de7f65eabadcb1811fb38131f15e8483003e0f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 21:46:07 +0300 Subject: [PATCH 1184/2060] badvpn: Update to 1.999.130 --- mingw-w64-badvpn/PKGBUILD | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/mingw-w64-badvpn/PKGBUILD b/mingw-w64-badvpn/PKGBUILD index a563e9de0b..37979d1ccc 100644 --- a/mingw-w64-badvpn/PKGBUILD +++ b/mingw-w64-badvpn/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: David Macek # todo -DBUILD_SHARED_LIBS=ON - _realname=badvpn pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.999.129 +pkgver=1.999.130 pkgrel=1 pkgdesc="NCD scripting language, tun2socks proxifier, P2P VPN (mingw-w64)" arch=('any') @@ -12,12 +11,12 @@ url="https://github.com/ambrop72/badvpn" license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") -depends=("${MINGW_PACKAGE_PREFIX}-nss" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-nspr") +depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-nspr" + "${MINGW_PACKAGE_PREFIX}-nss" + "${MINGW_PACKAGE_PREFIX}-openssl") source=("https://github.com/ambrop72/badvpn/archive/${pkgver}.tar.gz") -md5sums=('e42f9c22fcef5a44498e80f23ceee0b3') +md5sums=('e65d8d298fc82eb9a6c12a9425a97e6d') build() { mkdir -p "${srcdir}"/build-${CARCH} From aeb641b307c71289bf54b9972a47ddaf9be94ef1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 22:02:29 +0300 Subject: [PATCH 1185/2060] gd: Fix files install. --- mingw-w64-gd/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gd/PKGBUILD b/mingw-w64-gd/PKGBUILD index a1b8f105bd..386d1df1be 100644 --- a/mingw-w64-gd/PKGBUILD +++ b/mingw-w64-gd/PKGBUILD @@ -3,7 +3,7 @@ _realname=gd pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.1 -pkgrel=1 +pkgrel=2 pkgdesc='Library for the dynamic creation of images by programmers (mingw-w64)' url='http://www.libgd.org/' arch=('any') @@ -31,7 +31,7 @@ build() { export lt_cv_deplibs_check_method='pass_all' [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" + ../libgd-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -48,5 +48,5 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - install -Dm644 ${srcdir}/libgd-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/license/libgd/LICENSE + install -Dm644 ${srcdir}/libgd-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/libgd/LICENSE } From b10476e31550c44489b89808715bca1a34fe1cc6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 22:41:42 +0300 Subject: [PATCH 1186/2060] portablexdr: Update to latest from new repo. --- mingw-w64-portablexdr/PKGBUILD | 34 ++++---- .../portablexdr-4.9.1-no-config-h.patch | 6 -- ...r_t-and-uintptr_t-to-cast-ptr-to-int.patch | 78 ------------------- 3 files changed, 17 insertions(+), 101 deletions(-) delete mode 100644 mingw-w64-portablexdr/portablexdr-4.9.1-no-config-h.patch delete mode 100644 mingw-w64-portablexdr/portablexdr-build-use-intptr_t-and-uintptr_t-to-cast-ptr-to-int.patch diff --git a/mingw-w64-portablexdr/PKGBUILD b/mingw-w64-portablexdr/PKGBUILD index cb8456edc0..55b76bc2e1 100644 --- a/mingw-w64-portablexdr/PKGBUILD +++ b/mingw-w64-portablexdr/PKGBUILD @@ -2,35 +2,36 @@ _realname=portablexdr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.9.1 +_base_ver=4.9.2 +pkgver=4.9.2.r26.0cea127 pkgrel=1 pkgdesc="PortableXDR / RPC Library (mingw-w64)" arch=(any) -url="http://et.redhat.com/~rjones/portablexdr/" +url="https://github.com/Alexpux/portablexdr" license=('LGPL2') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") groups=("${MINGW_PACKAGE_PREFIX}") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool" "git") options=('staticlibs' 'strip') -source=("http://people.redhat.com/~rjones/portablexdr/files/${_realname}-${pkgver}.tar.gz" - portablexdr-4.9.1-no-config-h.patch - portablexdr-build-use-intptr_t-and-uintptr_t-to-cast-ptr-to-int.patch) -md5sums=('949e6dc9815590e5688f18bfdd2a98f9' - 'e5e44853226f8e756aa499299404d505' - '0b9fd1983d9bf3253f547c8e813311d8') +source=(${_realname}::git+https://github.com/Alexpux/portablexdr.git#branch=Branch_4.9.1) +md5sums=('SKIP') + +pkgver() { + cd "${srcdir}/${_realname}" + printf "%s.r%s.%s" ${_base_ver} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} prepare() { - cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i ${srcdir}/portablexdr-4.9.1-no-config-h.patch - patch -p1 -i ${srcdir}/portablexdr-build-use-intptr_t-and-uintptr_t-to-cast-ptr-to-int.patch + cd "${srcdir}/${_realname}" + autoreconf -fiv } build() { [[ -d "$srcdir/build-${MINGW_CHOST}" ]] && rm -rf "$srcdir/build-${MINGW_CHOST}" mkdir "$srcdir/build-${MINGW_CHOST}" - cd "$srcdir/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" - ../${_realname}-${pkgver}/configure \ + ../${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -41,7 +42,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-portablexdr/portablexdr-4.9.1-no-config-h.patch b/mingw-w64-portablexdr/portablexdr-4.9.1-no-config-h.patch deleted file mode 100644 index 5307966a5b..0000000000 --- a/mingw-w64-portablexdr/portablexdr-4.9.1-no-config-h.patch +++ /dev/null @@ -1,6 +0,0 @@ ---- portablexdr-4.9.1/rpc/rpc.h.old 2011-07-05 14:36:57.938389205 +0100 -+++ portablexdr-4.9.1/rpc/rpc.h 2011-07-05 14:37:04.213519063 +0100 -@@ -1,3 +1,2 @@ --#include "config.h" - #include - #include diff --git a/mingw-w64-portablexdr/portablexdr-build-use-intptr_t-and-uintptr_t-to-cast-ptr-to-int.patch b/mingw-w64-portablexdr/portablexdr-build-use-intptr_t-and-uintptr_t-to-cast-ptr-to-int.patch deleted file mode 100644 index c9144917e6..0000000000 --- a/mingw-w64-portablexdr/portablexdr-build-use-intptr_t-and-uintptr_t-to-cast-ptr-to-int.patch +++ /dev/null @@ -1,78 +0,0 @@ -From a7461e1430fcc26b02457f7b8f53dc423c062e1e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= -Date: Mon, 23 Jan 2012 19:31:10 +0100 -Subject: [PATCH] build: use intptr_t and uintptr_t to cast ptr to int - ---- - xdr_mem.c | 2 +- - xdr_rec.c | 16 ++++++++-------- - 2 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/xdr_mem.c b/xdr_mem.c -index 701cad2..f8a2d3a 100644 ---- a/xdr_mem.c -+++ b/xdr_mem.c -@@ -169,7 +169,7 @@ xdrmem_setpos(xdrs, pos) - register caddr_t newaddr = xdrs->x_base + pos; - register caddr_t lastaddr = xdrs->x_private + xdrs->x_handy; - -- if ((long)newaddr > (long)lastaddr) -+ if ((intptr_t)newaddr > (intptr_t)lastaddr) - return (FALSE); - xdrs->x_private = newaddr; - xdrs->x_handy = lastaddr - newaddr; -diff --git a/xdr_rec.c b/xdr_rec.c -index 6859c42..a0d34c6 100644 ---- a/xdr_rec.c -+++ b/xdr_rec.c -@@ -173,7 +173,7 @@ xdrrec_create(xdrs, sendsize, recvsize, tcp_handle, readit, writeit) - return; - } - for (rstrm->out_base = rstrm->the_buffer; -- (long) rstrm->out_base % BYTES_PER_XDR_UNIT != 0; -+ (intptr_t) rstrm->out_base % BYTES_PER_XDR_UNIT != 0; - rstrm->out_base++); - rstrm->in_base = rstrm->out_base + sendsize; - /* -@@ -472,12 +472,12 @@ xdrrec_endofrecord(xdrs, sendnow) - register u_long len; /* fragment length */ - - if (sendnow || rstrm->frag_sent || -- ((u_long)rstrm->out_finger + sizeof(u_long) >= -- (u_long)rstrm->out_boundry)) { -+ ((uintptr_t)rstrm->out_finger + sizeof(u_long) >= -+ (uintptr_t)rstrm->out_boundry)) { - rstrm->frag_sent = FALSE; - return (flush_out(rstrm, TRUE)); - } -- len = (u_long)(rstrm->out_finger) - (u_long)(rstrm->frag_header) - -+ len = (uintptr_t)(rstrm->out_finger) - (uintptr_t)(rstrm->frag_header) - - sizeof(u_long); - *(rstrm->frag_header) = htonl((u_long)len | LAST_FRAG); - rstrm->frag_header = (u_long *)rstrm->out_finger; -@@ -495,11 +495,11 @@ flush_out(rstrm, eor) - bool_t eor; - { - register u_long eormask = (eor == TRUE) ? LAST_FRAG : 0; -- register u_long len = (u_long)(rstrm->out_finger) - -- (u_long)(rstrm->frag_header) - sizeof(u_long); -+ register u_long len = (uintptr_t)(rstrm->out_finger) - -+ (uintptr_t)(rstrm->frag_header) - sizeof(u_long); - - *(rstrm->frag_header) = htonl(len | eormask); -- len = (u_long)(rstrm->out_finger) - (u_long)(rstrm->out_base); -+ len = (uintptr_t)(rstrm->out_finger) - (uintptr_t)(rstrm->out_base); - if ((*(rstrm->writeit))(rstrm->tcp_handle, rstrm->out_base, (int)len) - != (int)len) - return (FALSE); -@@ -517,7 +517,7 @@ fill_input_buf(rstrm) - register int len; - - where = rstrm->in_base; -- i = (long) rstrm->in_boundry % BYTES_PER_XDR_UNIT; -+ i = (intptr_t) rstrm->in_boundry % BYTES_PER_XDR_UNIT; - where += i; - len = rstrm->in_size - i; - if ((len = (*(rstrm->readit))(rstrm->tcp_handle, where, len)) == -1) --- -1.7.7.5 \ No newline at end of file From b3845edefd8eb1971540a7aa07885a84306c7c35 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 23:03:10 +0300 Subject: [PATCH 1187/2060] mpfr: Update to 3.1.3 --- mingw-w64-mpfr/PKGBUILD | 25 +- mingw-w64-mpfr/mpfr-3.1.2-p11.patch | 1626 --------------------------- 2 files changed, 13 insertions(+), 1638 deletions(-) delete mode 100644 mingw-w64-mpfr/mpfr-3.1.2-p11.patch diff --git a/mingw-w64-mpfr/PKGBUILD b/mingw-w64-mpfr/PKGBUILD index 000b628a83..5435fa0a76 100644 --- a/mingw-w64-mpfr/PKGBUILD +++ b/mingw-w64-mpfr/PKGBUILD @@ -2,8 +2,8 @@ _realname=mpfr pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -_pkgver=3.1.2 -_patchlevel=p11 +_pkgver=3.1.3 +_patchlevel=p0 pkgver=${_pkgver}.${_patchlevel} pkgrel=1 pkgdesc="Multiple-precision floating-point library" @@ -14,34 +14,35 @@ license=('LGPL') options=('staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gmp>=5.0") makedepends=("${MINGW_PACKAGE_PREFIX}-gmp>=5.0") -source=(http://www.mpfr.org/mpfr-current/mpfr-${_pkgver}.tar.xz{,.asc} - mpfr-${_pkgver}-${_patchlevel}.patch) -md5sums=('e3d203d188b8fe60bb6578dd3152e05c' - 'SKIP' - '9f96a5c7cac1d6cd983ed9cf7d997074') +source=(http://www.mpfr.org/mpfr-current/${_realname}-${_pkgver}.tar.xz{,.asc}) +md5sums=('6969398cd2fbc56a6af570b5273c56a9' + 'SKIP') prepare() { cd "${srcdir}/${_realname}-${_pkgver}" - patch -p1 -i $srcdir/${_realname}-${_pkgver}-${_patchlevel}.patch + #patch -p1 -i $srcdir/${_realname}-${_pkgver}-${_patchlevel}.patch } build() { - cd "${srcdir}/${_realname}-${_pkgver}" + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - ./configure --build=${MINGW_CHOST} \ + ../${_realname}-${_pkgver}/configure \ + --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --enable-static \ --disable-shared \ --with-gmp=${MINGW_PREFIX} + make } check() { - cd "${srcdir}/${_realname}-${_pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make check } package() { - cd "${srcdir}/${_realname}-${_pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-mpfr/mpfr-3.1.2-p11.patch b/mingw-w64-mpfr/mpfr-3.1.2-p11.patch deleted file mode 100644 index cbfe0f5337..0000000000 --- a/mingw-w64-mpfr/mpfr-3.1.2-p11.patch +++ /dev/null @@ -1,1626 +0,0 @@ -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/PATCHES 2013-09-26 10:52:52.000000000 +0000 -@@ -0,0 +1 @@ -+exp_2 -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2013-03-13 15:37:28.000000000 +0000 -+++ mpfr-3.1.2-b/VERSION 2013-09-26 10:52:52.000000000 +0000 -@@ -1 +1 @@ --3.1.2 -+3.1.2-p1 -diff -Naurd mpfr-3.1.2-a/src/exp_2.c mpfr-3.1.2-b/src/exp_2.c ---- mpfr-3.1.2-a/src/exp_2.c 2013-03-13 15:37:28.000000000 +0000 -+++ mpfr-3.1.2-b/src/exp_2.c 2013-09-26 10:52:52.000000000 +0000 -@@ -204,7 +204,7 @@ - for (k = 0; k < K; k++) - { - mpz_mul (ss, ss, ss); -- exps <<= 1; -+ exps *= 2; - exps += mpz_normalize (ss, ss, q); - } - mpfr_set_z (s, ss, MPFR_RNDN); -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2013-03-13 15:37:37.000000000 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2013-09-26 10:52:52.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2" -+#define MPFR_VERSION_STRING "3.1.2-p1" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2013-03-13 15:37:34.000000000 +0000 -+++ mpfr-3.1.2-b/src/version.c 2013-09-26 10:52:52.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2"; -+ return "3.1.2-p1"; - } -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2013-09-26 10:56:55.000000000 +0000 -+++ mpfr-3.1.2-b/PATCHES 2013-09-26 10:56:55.000000000 +0000 -@@ -0,0 +1 @@ -+fits-smallneg -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/VERSION 2013-09-26 10:56:55.000000000 +0000 -@@ -1 +1 @@ --3.1.2-p1 -+3.1.2-p2 -diff -Naurd mpfr-3.1.2-a/src/fits_u.h mpfr-3.1.2-b/src/fits_u.h ---- mpfr-3.1.2-a/src/fits_u.h 2013-03-13 15:37:35.000000000 +0000 -+++ mpfr-3.1.2-b/src/fits_u.h 2013-09-26 10:56:55.000000000 +0000 -@@ -32,17 +32,20 @@ - int res; - - if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f))) -- /* Zero always fit */ -- return MPFR_IS_ZERO (f) ? 1 : 0; -- else if (MPFR_IS_NEG (f)) -- /* Negative numbers don't fit */ -- return 0; -- /* now it fits if -- (a) f <= MAXIMUM -- (b) round(f, prec(slong), rnd) <= MAXIMUM */ -+ return MPFR_IS_ZERO (f) ? 1 : 0; /* Zero always fits */ - - e = MPFR_GET_EXP (f); - -+ if (MPFR_IS_NEG (f)) -+ return e >= 1 ? 0 /* f <= -1 does not fit */ -+ : rnd != MPFR_RNDN ? MPFR_IS_LIKE_RNDU (rnd, -1) /* directed mode */ -+ : e < 0 ? 1 /* f > -1/2 fits in MPFR_RNDN */ -+ : mpfr_powerof2_raw(f); /* -1/2 fits, -1 < f < -1/2 don't */ -+ -+ /* Now it fits if -+ (a) f <= MAXIMUM -+ (b) round(f, prec(slong), rnd) <= MAXIMUM */ -+ - /* first compute prec(MAXIMUM); fits in an int */ - for (s = MAXIMUM, prec = 0; s != 0; s /= 2, prec ++); - -diff -Naurd mpfr-3.1.2-a/src/fits_uintmax.c mpfr-3.1.2-b/src/fits_uintmax.c ---- mpfr-3.1.2-a/src/fits_uintmax.c 2013-03-13 15:37:33.000000000 +0000 -+++ mpfr-3.1.2-b/src/fits_uintmax.c 2013-09-26 10:56:55.000000000 +0000 -@@ -27,51 +27,19 @@ - #include "mpfr-intmax.h" - #include "mpfr-impl.h" - --#ifdef _MPFR_H_HAVE_INTMAX_T -- --/* We can't use fits_u.h <= mpfr_cmp_ui */ --int --mpfr_fits_uintmax_p (mpfr_srcptr f, mpfr_rnd_t rnd) --{ -- mpfr_exp_t e; -- int prec; -- uintmax_t s; -- mpfr_t x; -- int res; -- -- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f))) -- /* Zero always fit */ -- return MPFR_IS_ZERO (f) ? 1 : 0; -- else if (MPFR_IS_NEG (f)) -- /* Negative numbers don't fit */ -- return 0; -- /* now it fits if -- (a) f <= MAXIMUM -- (b) round(f, prec(slong), rnd) <= MAXIMUM */ -- -- e = MPFR_GET_EXP (f); -- -- /* first compute prec(MAXIMUM); fits in an int */ -- for (s = MPFR_UINTMAX_MAX, prec = 0; s != 0; s /= 2, prec ++); -- -- /* MAXIMUM needs prec bits, i.e. MAXIMUM = 2^prec - 1 */ -- -- /* if e <= prec - 1, then f < 2^(prec-1) < MAXIMUM */ -- if (e <= prec - 1) -- return 1; -+/* Note: though mpfr-impl.h is included in fits_u.h, we also include it -+ above so that it gets included even when _MPFR_H_HAVE_INTMAX_T is not -+ defined; this is necessary to avoid an empty translation unit, which -+ is forbidden by ISO C. Without this, a failing test can be reproduced -+ by creating an invalid stdint.h somewhere in the default include path -+ and by compiling MPFR with "gcc -ansi -pedantic-errors". */ - -- /* if e >= prec + 1, then f >= 2^prec > MAXIMUM */ -- if (e >= prec + 1) -- return 0; -+#ifdef _MPFR_H_HAVE_INTMAX_T - -- MPFR_ASSERTD (e == prec); -+#define FUNCTION mpfr_fits_uintmax_p -+#define MAXIMUM MPFR_UINTMAX_MAX -+#define TYPE uintmax_t - -- /* hard case: first round to prec bits, then check */ -- mpfr_init2 (x, prec); -- mpfr_set (x, f, rnd); -- res = MPFR_GET_EXP (x) == e; -- mpfr_clear (x); -- return res; --} -+#include "fits_u.h" - - #endif -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2013-09-26 10:56:55.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p1" -+#define MPFR_VERSION_STRING "3.1.2-p2" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/src/version.c 2013-09-26 10:56:55.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p1"; -+ return "3.1.2-p2"; - } -diff -Naurd mpfr-3.1.2-a/tests/tfits.c mpfr-3.1.2-b/tests/tfits.c ---- mpfr-3.1.2-a/tests/tfits.c 2013-03-13 15:37:45.000000000 +0000 -+++ mpfr-3.1.2-b/tests/tfits.c 2013-09-26 10:56:55.000000000 +0000 -@@ -33,155 +33,176 @@ - #include "mpfr-intmax.h" - #include "mpfr-test.h" - --#define ERROR1 { printf("Initial error for x="); mpfr_dump(x); exit(1); } --#define ERROR2 { printf("Error for x="); mpfr_dump(x); exit(1); } -+#define ERROR1(N) \ -+ do \ -+ { \ -+ printf("Error %d for rnd = %s and x = ", N, \ -+ mpfr_print_rnd_mode ((mpfr_rnd_t) r)); \ -+ mpfr_dump(x); \ -+ exit(1); \ -+ } \ -+ while (0) - - static void check_intmax (void); - - int - main (void) - { -- mpfr_t x; -+ mpfr_t x, y; -+ int i, r; - - tests_start_mpfr (); - - mpfr_init2 (x, 256); -+ mpfr_init2 (y, 8); - -- /* Check NAN */ -- mpfr_set_nan (x); -- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR1; -+ RND_LOOP (r) -+ { - -- /* Check INF */ -- mpfr_set_inf (x, 1); -- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check NAN */ -+ mpfr_set_nan (x); -+ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (1); -+ if (mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (2); -+ if (mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (3); -+ if (mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (4); -+ if (mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (5); -+ if (mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (6); - -- /* Check Zero */ -- MPFR_SET_ZERO (x); -- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check INF */ -+ mpfr_set_inf (x, 1); -+ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (7); -+ if (mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (8); -+ if (mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (9); -+ if (mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (10); -+ if (mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (11); -+ if (mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (12); - -- /* Check small op */ -- mpfr_set_str1 (x, "1@-1"); -- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check Zero */ -+ MPFR_SET_ZERO (x); -+ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (13); -+ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (14); -+ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (15); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (16); -+ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (17); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (18); - -- /* Check 17 */ -- mpfr_set_ui (x, 17, MPFR_RNDN); -- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check small positive op */ -+ mpfr_set_str1 (x, "1@-1"); -+ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (19); -+ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (20); -+ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (21); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (22); -+ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (23); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (24); - -- /* Check all other values */ -- mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); -- mpfr_mul_2exp (x, x, 1, MPFR_RNDN); -- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR1; -- mpfr_mul_2exp (x, x, 40, MPFR_RNDN); -- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check 17 */ -+ mpfr_set_ui (x, 17, MPFR_RNDN); -+ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (25); -+ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (26); -+ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (27); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (28); -+ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (29); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (30); - -- mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); -- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_ui (x, LONG_MAX, MPFR_RNDN); -- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_ui (x, UINT_MAX, MPFR_RNDN); -- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_ui (x, INT_MAX, MPFR_RNDN); -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_ui (x, USHRT_MAX, MPFR_RNDN); -- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_ui (x, SHRT_MAX, MPFR_RNDN); -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check all other values */ -+ mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); -+ mpfr_mul_2exp (x, x, 1, MPFR_RNDN); -+ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (31); -+ if (mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (32); -+ mpfr_mul_2exp (x, x, 40, MPFR_RNDN); -+ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (33); -+ if (mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (34); -+ if (mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (35); -+ if (mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (36); -+ if (mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (37); - -- mpfr_set_si (x, 1, MPFR_RNDN); -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -+ mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); -+ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (38); -+ mpfr_set_ui (x, LONG_MAX, MPFR_RNDN); -+ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (39); -+ mpfr_set_ui (x, UINT_MAX, MPFR_RNDN); -+ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (40); -+ mpfr_set_ui (x, INT_MAX, MPFR_RNDN); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (41); -+ mpfr_set_ui (x, USHRT_MAX, MPFR_RNDN); -+ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (42); -+ mpfr_set_ui (x, SHRT_MAX, MPFR_RNDN); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (43); - -- /* Check negative value */ -- mpfr_set_si (x, -1, MPFR_RNDN); -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR2; -- if (mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR1; -+ mpfr_set_si (x, 1, MPFR_RNDN); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (44); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (45); -+ -+ /* Check negative op */ -+ for (i = 1; i <= 4; i++) -+ { -+ int inv; -+ -+ mpfr_set_si_2exp (x, -i, -2, MPFR_RNDN); -+ mpfr_rint (y, x, (mpfr_rnd_t) r); -+ inv = MPFR_NOTZERO (y); -+ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r) ^ inv) -+ ERROR1 (46); -+ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (47); -+ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r) ^ inv) -+ ERROR1 (48); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (49); -+ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r) ^ inv) -+ ERROR1 (50); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (51); -+ } -+ } - - mpfr_clear (x); -+ mpfr_clear (y); - - check_intmax (); - -@@ -189,85 +210,98 @@ - return 0; - } - --static void check_intmax (void) -+static void -+check_intmax (void) - { - #ifdef _MPFR_H_HAVE_INTMAX_T -- mpfr_t x; -+ mpfr_t x, y; -+ int i, r; - -- mpfr_init2 (x, sizeof (uintmax_t)*CHAR_BIT); -+ mpfr_init2 (x, sizeof (uintmax_t) * CHAR_BIT); -+ mpfr_init2 (y, 8); - -- /* Check NAN */ -- mpfr_set_nan (x); -- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR1; -+ RND_LOOP (r) -+ { -+ /* Check NAN */ -+ mpfr_set_nan (x); -+ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (52); -+ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (53); - -- /* Check INF */ -- mpfr_set_inf (x, 1); -- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check INF */ -+ mpfr_set_inf (x, 1); -+ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (54); -+ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (55); - -- /* Check Zero */ -- MPFR_SET_ZERO (x); -- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check Zero */ -+ MPFR_SET_ZERO (x); -+ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (56); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (57); - -- /* Check small op */ -- mpfr_set_str1 (x, "1@-1"); -- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check positive small op */ -+ mpfr_set_str1 (x, "1@-1"); -+ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (58); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (59); - -- /* Check 17 */ -- mpfr_set_ui (x, 17, MPFR_RNDN); -- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check 17 */ -+ mpfr_set_ui (x, 17, MPFR_RNDN); -+ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (60); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (61); - -- /* Check hugest */ -- mpfr_set_ui_2exp (x, 42, sizeof (uintmax_t) * 32, MPFR_RNDN); -- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check hugest */ -+ mpfr_set_ui_2exp (x, 42, sizeof (uintmax_t) * 32, MPFR_RNDN); -+ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (62); -+ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (63); - -- /* Check all other values */ -- mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); -- mpfr_add_ui (x, x, 1, MPFR_RNDN); -- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR1; -- mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); -- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); -- mpfr_add_ui (x, x, 1, MPFR_RNDN); -- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR1; -- mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_sj (x, MPFR_INTMAX_MIN, MPFR_RNDN); -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_sub_ui (x, x, 1, MPFR_RNDN); -- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check all other values */ -+ mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); -+ mpfr_add_ui (x, x, 1, MPFR_RNDN); -+ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (64); -+ mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); -+ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (65); -+ mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); -+ mpfr_add_ui (x, x, 1, MPFR_RNDN); -+ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (66); -+ mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (67); -+ mpfr_set_sj (x, MPFR_INTMAX_MIN, MPFR_RNDN); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (68); -+ mpfr_sub_ui (x, x, 1, MPFR_RNDN); -+ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (69); - -- /* Check negative value */ -- mpfr_set_si (x, -1, MPFR_RNDN); -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check negative op */ -+ for (i = 1; i <= 4; i++) -+ { -+ int inv; -+ -+ mpfr_set_si_2exp (x, -i, -2, MPFR_RNDN); -+ mpfr_rint (y, x, (mpfr_rnd_t) r); -+ inv = MPFR_NOTZERO (y); -+ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r) ^ inv) -+ ERROR1 (70); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (71); -+ } -+ } - - mpfr_clear (x); -+ mpfr_clear (y); - #endif - } -- -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2013-10-09 13:34:21.000000000 +0000 -+++ mpfr-3.1.2-b/PATCHES 2013-10-09 13:34:21.000000000 +0000 -@@ -0,0 +1 @@ -+clang-divby0 -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/VERSION 2013-10-09 13:34:21.000000000 +0000 -@@ -1 +1 @@ --3.1.2-p2 -+3.1.2-p3 -diff -Naurd mpfr-3.1.2-a/src/mpfr-impl.h mpfr-3.1.2-b/src/mpfr-impl.h ---- mpfr-3.1.2-a/src/mpfr-impl.h 2013-03-13 15:37:36.000000000 +0000 -+++ mpfr-3.1.2-b/src/mpfr-impl.h 2013-10-09 13:34:21.000000000 +0000 -@@ -468,8 +468,16 @@ - #define MPFR_LIMBS_PER_FLT ((IEEE_FLT_MANT_DIG-1)/GMP_NUMB_BITS+1) - - /* Visual C++ doesn't support +1.0/0.0, -1.0/0.0 and 0.0/0.0 -- at compile time. */ --#if defined(_MSC_VER) && defined(_WIN32) && (_MSC_VER >= 1200) -+ at compile time. -+ Clang with -fsanitize=undefined is a bit similar due to a bug: -+ http://llvm.org/bugs/show_bug.cgi?id=17381 -+ but even without its sanitizer, it may be better to use the -+ double_zero version until IEEE 754 division by zero is properly -+ supported: -+ http://llvm.org/bugs/show_bug.cgi?id=17000 -+*/ -+#if (defined(_MSC_VER) && defined(_WIN32) && (_MSC_VER >= 1200)) || \ -+ defined(__clang__) - static double double_zero = 0.0; - # define DBL_NAN (double_zero/double_zero) - # define DBL_POS_INF ((double) 1.0/double_zero) -@@ -501,6 +509,8 @@ - (with Xcode 2.4.1, i.e. the latest one). */ - #define LVALUE(x) (&(x) == &(x) || &(x) != &(x)) - #define DOUBLE_ISINF(x) (LVALUE(x) && ((x) > DBL_MAX || (x) < -DBL_MAX)) -+/* The DOUBLE_ISNAN(x) macro is also valid on long double x -+ (assuming that the compiler isn't too broken). */ - #ifdef MPFR_NANISNAN - /* Avoid MIPSpro / IRIX64 / gcc -ffast-math (incorrect) optimizations. - The + must not be replaced by a ||. With gcc -ffast-math, NaN is -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2013-10-09 13:34:21.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p2" -+#define MPFR_VERSION_STRING "3.1.2-p3" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/src/version.c 2013-10-09 13:34:21.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p2"; -+ return "3.1.2-p3"; - } -diff -Naurd mpfr-3.1.2-a/tests/tget_flt.c mpfr-3.1.2-b/tests/tget_flt.c ---- mpfr-3.1.2-a/tests/tget_flt.c 2013-03-13 15:37:44.000000000 +0000 -+++ mpfr-3.1.2-b/tests/tget_flt.c 2013-10-09 13:34:21.000000000 +0000 -@@ -28,9 +28,17 @@ - main (void) - { - mpfr_t x, y; -- float f, g, infp; -+ float f, g; - int i; -+#if !defined(MPFR_ERRDIVZERO) -+ float infp; -+#endif -+ -+ tests_start_mpfr (); - -+#if !defined(MPFR_ERRDIVZERO) -+ /* The definition of DBL_POS_INF involves a division by 0. This makes -+ "clang -O2 -fsanitize=undefined -fno-sanitize-recover" fail. */ - infp = (float) DBL_POS_INF; - if (infp * 0.5 != infp) - { -@@ -38,8 +46,7 @@ - fprintf (stderr, "(this is probably a compiler bug, please report)\n"); - exit (1); - } -- -- tests_start_mpfr (); -+#endif - - mpfr_init2 (x, 24); - mpfr_init2 (y, 24); -@@ -353,6 +360,7 @@ - printf ("expected %.8e, got %.8e\n", g, f); - exit (1); - } -+#if !defined(MPFR_ERRDIVZERO) - f = mpfr_get_flt (x, MPFR_RNDN); /* first round to 2^128 (even rule), - thus we should get +Inf */ - g = infp; -@@ -376,6 +384,7 @@ - printf ("expected %.8e, got %.8e\n", g, f); - exit (1); - } -+#endif - - mpfr_clear (x); - mpfr_clear (y); -diff -Naurd mpfr-3.1.2-a/tests/tset_ld.c mpfr-3.1.2-b/tests/tset_ld.c ---- mpfr-3.1.2-a/tests/tset_ld.c 2013-03-13 15:37:44.000000000 +0000 -+++ mpfr-3.1.2-b/tests/tset_ld.c 2013-10-09 13:34:21.000000000 +0000 -@@ -47,8 +47,11 @@ - static int - Isnan_ld (long double d) - { -- double e = (double) d; -- if (DOUBLE_ISNAN (e)) -+ /* Do not convert d to double as this can give an overflow, which -+ may confuse compilers without IEEE 754 support (such as clang -+ -fsanitize=undefined), or trigger a trap if enabled. -+ The DOUBLE_ISNAN macro should work fine on long double. */ -+ if (DOUBLE_ISNAN (d)) - return 1; - LONGDOUBLE_NAN_ACTION (d, goto yes); - return 0; -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2013-11-15 00:51:49.211333830 +0000 -+++ mpfr-3.1.2-b/PATCHES 2013-11-15 00:51:49.323334999 +0000 -@@ -0,0 +1 @@ -+printf-alt0 -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2013-11-15 00:51:49.211333830 +0000 -+++ mpfr-3.1.2-b/VERSION 2013-11-15 00:51:49.323334999 +0000 -@@ -1 +1 @@ --3.1.2-p3 -+3.1.2-p4 -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2013-11-15 00:51:49.211333830 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2013-11-15 00:51:49.323334999 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p3" -+#define MPFR_VERSION_STRING "3.1.2-p4" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/vasprintf.c mpfr-3.1.2-b/src/vasprintf.c ---- mpfr-3.1.2-a/src/vasprintf.c 2013-03-13 15:37:37.000000000 +0000 -+++ mpfr-3.1.2-b/src/vasprintf.c 2013-11-15 00:51:49.267334408 +0000 -@@ -1040,7 +1040,7 @@ - } - - /* Determine the different parts of the string representation of the regular -- number P when SPEC.SPEC is 'e', 'E', 'g', or 'G'. -+ number P when spec.spec is 'e', 'E', 'g', or 'G'. - DEC_INFO contains the previously computed exponent and string or is NULL. - - return -1 if some field > INT_MAX */ -@@ -1167,7 +1167,7 @@ - } - - /* Determine the different parts of the string representation of the regular -- number P when SPEC.SPEC is 'f', 'F', 'g', or 'G'. -+ number P when spec.spec is 'f', 'F', 'g', or 'G'. - DEC_INFO contains the previously computed exponent and string or is NULL. - - return -1 if some field of number_parts is greater than INT_MAX */ -@@ -1559,7 +1559,7 @@ - /* fractional part */ - { - np->point = MPFR_DECIMAL_POINT; -- np->fp_trailing_zeros = (spec.spec == 'g' && spec.spec == 'G') ? -+ np->fp_trailing_zeros = (spec.spec == 'g' || spec.spec == 'G') ? - spec.prec - 1 : spec.prec; - } - else if (spec.alt) -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2013-11-15 00:51:49.211333830 +0000 -+++ mpfr-3.1.2-b/src/version.c 2013-11-15 00:51:49.323334999 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p3"; -+ return "3.1.2-p4"; - } -diff -Naurd mpfr-3.1.2-a/tests/tsprintf.c mpfr-3.1.2-b/tests/tsprintf.c ---- mpfr-3.1.2-a/tests/tsprintf.c 2013-03-13 15:37:44.000000000 +0000 -+++ mpfr-3.1.2-b/tests/tsprintf.c 2013-11-15 00:51:49.267334408 +0000 -@@ -456,10 +456,16 @@ - check_sprintf ("1.999900 ", "%-#10.7RG", x); - check_sprintf ("1.9999 ", "%-10.7RG", x); - mpfr_set_ui (x, 1, MPFR_RNDN); -+ check_sprintf ("1.", "%#.1Rg", x); -+ check_sprintf ("1. ", "%-#5.1Rg", x); -+ check_sprintf (" 1.0", "%#5.2Rg", x); - check_sprintf ("1.00000000000000000000000000000", "%#.30Rg", x); - check_sprintf ("1", "%.30Rg", x); - mpfr_set_ui (x, 0, MPFR_RNDN); -- check_sprintf ("0.000000000000000000000000000000", "%#.30Rg", x); -+ check_sprintf ("0.", "%#.1Rg", x); -+ check_sprintf ("0. ", "%-#5.1Rg", x); -+ check_sprintf (" 0.0", "%#5.2Rg", x); -+ check_sprintf ("0.00000000000000000000000000000", "%#.30Rg", x); - check_sprintf ("0", "%.30Rg", x); - - /* following tests with precision 53 bits */ -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2013-12-01 11:07:49.575329762 +0000 -+++ mpfr-3.1.2-b/PATCHES 2013-12-01 11:07:49.751331625 +0000 -@@ -0,0 +1 @@ -+custom_init_set -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2013-12-01 11:07:49.571329714 +0000 -+++ mpfr-3.1.2-b/VERSION 2013-12-01 11:07:49.747331585 +0000 -@@ -1 +1 @@ --3.1.2-p4 -+3.1.2-p5 -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2013-12-01 11:07:49.571329714 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2013-12-01 11:07:49.747331585 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p4" -+#define MPFR_VERSION_STRING "3.1.2-p5" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -@@ -861,7 +861,7 @@ - _t = (mpfr_kind_t) _k; \ - _s = 1; \ - } else { \ -- _t = (mpfr_kind_t) -k; \ -+ _t = (mpfr_kind_t) - _k; \ - _s = -1; \ - } \ - _e = _t == MPFR_REGULAR_KIND ? (e) : \ -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2013-12-01 11:07:49.575329762 +0000 -+++ mpfr-3.1.2-b/src/version.c 2013-12-01 11:07:49.747331585 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p4"; -+ return "3.1.2-p5"; - } -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2014-04-15 21:56:49.609057464 +0000 -+++ mpfr-3.1.2-b/PATCHES 2014-04-15 21:56:49.697059857 +0000 -@@ -0,0 +1 @@ -+li2-return -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2014-04-15 21:56:49.609057464 +0000 -+++ mpfr-3.1.2-b/VERSION 2014-04-15 21:56:49.697059857 +0000 -@@ -1 +1 @@ --3.1.2-p5 -+3.1.2-p6 -diff -Naurd mpfr-3.1.2-a/src/li2.c mpfr-3.1.2-b/src/li2.c ---- mpfr-3.1.2-a/src/li2.c 2013-03-13 15:37:32.000000000 +0000 -+++ mpfr-3.1.2-b/src/li2.c 2014-04-15 21:56:49.653058661 +0000 -@@ -630,5 +630,5 @@ - return mpfr_check_range (y, inexact, rnd_mode); - } - -- MPFR_ASSERTN (0); /* should never reach this point */ -+ MPFR_RET_NEVER_GO_HERE (); - } -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2014-04-15 21:56:49.609057464 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2014-04-15 21:56:49.697059857 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p5" -+#define MPFR_VERSION_STRING "3.1.2-p6" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2014-04-15 21:56:49.609057464 +0000 -+++ mpfr-3.1.2-b/src/version.c 2014-04-15 21:56:49.697059857 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p5"; -+ return "3.1.2-p6"; - } -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2014-04-15 22:04:57.090286262 +0000 -+++ mpfr-3.1.2-b/PATCHES 2014-04-15 22:04:57.162288198 +0000 -@@ -0,0 +1 @@ -+exp3 -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2014-04-15 22:04:57.086286154 +0000 -+++ mpfr-3.1.2-b/VERSION 2014-04-15 22:04:57.162288198 +0000 -@@ -1 +1 @@ --3.1.2-p6 -+3.1.2-p7 -diff -Naurd mpfr-3.1.2-a/src/exp3.c mpfr-3.1.2-b/src/exp3.c ---- mpfr-3.1.2-a/src/exp3.c 2013-03-13 15:37:34.000000000 +0000 -+++ mpfr-3.1.2-b/src/exp3.c 2014-04-15 22:04:57.126287230 +0000 -@@ -283,7 +283,7 @@ - } - } - -- if (mpfr_can_round (shift_x > 0 ? t : tmp, realprec, MPFR_RNDD, MPFR_RNDZ, -+ if (mpfr_can_round (shift_x > 0 ? t : tmp, realprec, MPFR_RNDN, MPFR_RNDZ, - MPFR_PREC(y) + (rnd_mode == MPFR_RNDN))) - { - inexact = mpfr_set (y, shift_x > 0 ? t : tmp, rnd_mode); -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2014-04-15 22:04:57.086286154 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2014-04-15 22:04:57.162288198 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p6" -+#define MPFR_VERSION_STRING "3.1.2-p7" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2014-04-15 22:04:57.090286262 +0000 -+++ mpfr-3.1.2-b/src/version.c 2014-04-15 22:04:57.162288198 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p6"; -+ return "3.1.2-p7"; - } -diff -Naurd mpfr-3.1.2-a/tests/texp.c mpfr-3.1.2-b/tests/texp.c ---- mpfr-3.1.2-a/tests/texp.c 2013-03-13 15:37:44.000000000 +0000 -+++ mpfr-3.1.2-b/tests/texp.c 2014-04-15 22:04:57.126287230 +0000 -@@ -150,6 +150,22 @@ - exit (1); - } - -+ mpfr_set_prec (x, 118); -+ mpfr_set_str_binary (x, "0.1110010100011101010000111110011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E-86"); -+ mpfr_set_prec (y, 118); -+ mpfr_exp_2 (y, x, MPFR_RNDU); -+ mpfr_exp_3 (x, x, MPFR_RNDU); -+ if (mpfr_cmp (x, y)) -+ { -+ printf ("mpfr_exp_2 and mpfr_exp_3 differ for prec=118\n"); -+ printf ("mpfr_exp_2 gives "); -+ mpfr_out_str (stdout, 2, 0, y, MPFR_RNDN); -+ printf ("\nmpfr_exp_3 gives "); -+ mpfr_out_str (stdout, 2, 0, x, MPFR_RNDN); -+ printf ("\n"); -+ exit (1); -+ } -+ - mpfr_clear (x); - mpfr_clear (y); - return 0; -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2014-04-15 22:20:32.243481506 +0000 -+++ mpfr-3.1.2-b/PATCHES 2014-04-15 22:22:32.418722707 +0000 -@@ -0,0 +1 @@ -+gmp6-compat -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2014-04-15 22:20:20.755171478 +0000 -+++ mpfr-3.1.2-b/VERSION 2014-04-15 22:21:45.225450147 +0000 -@@ -1 +1 @@ --3.1.2-p7 -+3.1.2-p8 -diff -Naurd mpfr-3.1.2-a/configure mpfr-3.1.2-b/configure ---- mpfr-3.1.2-a/configure 2013-03-13 15:38:20.000000000 +0000 -+++ mpfr-3.1.2-b/configure 2014-04-15 22:21:38.821277476 +0000 -@@ -14545,26 +14545,30 @@ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - --if test "$use_gmp_build" = yes ; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for valid GMP_NUMB_BITS" >&5 --$as_echo_n "checking for valid GMP_NUMB_BITS... " >&6; } -- if test "$cross_compiling" = yes; then : -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GMP_NUMB_BITS and sizeof(mp_limb_t) consistency" >&5 -+$as_echo_n "checking for GMP_NUMB_BITS and sizeof(mp_limb_t) consistency... " >&6; } -+if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: can't test" >&5 - $as_echo "can't test" >&6; } - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - #include - #include "gmp.h" --#include "gmp-impl.h" - - int - main () - { - -- return GMP_NUMB_BITS == BYTES_PER_MP_LIMB * CHAR_BIT -- && sizeof(mp_limb_t) == BYTES_PER_MP_LIMB ? 0 : 1; -+ if (GMP_NUMB_BITS == sizeof(mp_limb_t) * CHAR_BIT) -+ return 0; -+ fprintf (stderr, "GMP_NUMB_BITS = %ld\n", (long) GMP_NUMB_BITS); -+ fprintf (stderr, "sizeof(mp_limb_t) = %ld\n", (long) sizeof(mp_limb_t)); -+ fprintf (stderr, "sizeof(mp_limb_t) * CHAR_BIT = %ld != GMP_NUMB_BITS\n", -+ (long) (sizeof(mp_limb_t) * CHAR_BIT)); -+ return 1; - - ; - return 0; -@@ -14577,14 +14581,14 @@ - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } -- as_fn_error $? "GMP_NUMB_BITS is incorrect. --You probably need to change some of the GMP or MPFR compile options." "$LINENO" 5 -+ as_fn_error $? "GMP_NUMB_BITS and sizeof(mp_limb_t) are not consistent. -+You probably need to change some of the GMP or MPFR compile options. -+See 'config.log' for details (search for GMP_NUMB_BITS)." "$LINENO" 5 - fi - rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - --fi - - - if test "$dont_link_with_gmp" = yes ; then -diff -Naurd mpfr-3.1.2-a/configure.ac mpfr-3.1.2-b/configure.ac ---- mpfr-3.1.2-a/configure.ac 2013-03-13 15:37:46.000000000 +0000 -+++ mpfr-3.1.2-b/configure.ac 2013-03-13 15:37:46.000000000 +0000 -@@ -435,23 +435,29 @@ - ]) - fi - --dnl Check for valid GMP_NUMB_BITS and BYTES_PER_MP_LIMB -+dnl Check for GMP_NUMB_BITS and sizeof(mp_limb_t) consistency. -+dnl Problems may occur if gmp.h was generated with some ABI -+dnl and is used with another ABI (or if nails are used). - dnl This test doesn't need to link with libgmp (at least it shouldn't). --if test "$use_gmp_build" = yes ; then -- AC_MSG_CHECKING(for valid GMP_NUMB_BITS) -- AC_RUN_IFELSE([AC_LANG_PROGRAM([[ -+AC_MSG_CHECKING(for GMP_NUMB_BITS and sizeof(mp_limb_t) consistency) -+AC_RUN_IFELSE([AC_LANG_PROGRAM([[ -+#include - #include - #include "gmp.h" --#include "gmp-impl.h" - ]], [[ -- return GMP_NUMB_BITS == BYTES_PER_MP_LIMB * CHAR_BIT -- && sizeof(mp_limb_t) == BYTES_PER_MP_LIMB ? 0 : 1; -+ if (GMP_NUMB_BITS == sizeof(mp_limb_t) * CHAR_BIT) -+ return 0; -+ fprintf (stderr, "GMP_NUMB_BITS = %ld\n", (long) GMP_NUMB_BITS); -+ fprintf (stderr, "sizeof(mp_limb_t) = %ld\n", (long) sizeof(mp_limb_t)); -+ fprintf (stderr, "sizeof(mp_limb_t) * CHAR_BIT = %ld != GMP_NUMB_BITS\n", -+ (long) (sizeof(mp_limb_t) * CHAR_BIT)); -+ return 1; - ]])], [AC_MSG_RESULT(yes)], [ - AC_MSG_RESULT(no) -- AC_MSG_ERROR([GMP_NUMB_BITS is incorrect. --You probably need to change some of the GMP or MPFR compile options.])], -+ AC_MSG_ERROR([GMP_NUMB_BITS and sizeof(mp_limb_t) are not consistent. -+You probably need to change some of the GMP or MPFR compile options. -+See 'config.log' for details (search for GMP_NUMB_BITS).])], - [AC_MSG_RESULT([can't test])]) --fi - - - dnl We really need to link using libtool. But it is impossible with the current -diff -Naurd mpfr-3.1.2-a/src/init2.c mpfr-3.1.2-b/src/init2.c ---- mpfr-3.1.2-a/src/init2.c 2013-03-13 15:37:32.000000000 +0000 -+++ mpfr-3.1.2-b/src/init2.c 2014-04-15 22:21:06.220398489 +0000 -@@ -30,11 +30,11 @@ - - /* Check if we can represent the number of limbs - * associated to the maximum of mpfr_prec_t*/ -- MPFR_ASSERTN( MP_SIZE_T_MAX >= (MPFR_PREC_MAX/BYTES_PER_MP_LIMB) ); -+ MPFR_ASSERTN( MP_SIZE_T_MAX >= (MPFR_PREC_MAX/MPFR_BYTES_PER_MP_LIMB) ); - -- /* Check for correct GMP_NUMB_BITS and BYTES_PER_MP_LIMB */ -- MPFR_ASSERTN( GMP_NUMB_BITS == BYTES_PER_MP_LIMB * CHAR_BIT -- && sizeof(mp_limb_t) == BYTES_PER_MP_LIMB ); -+ /* Check for correct GMP_NUMB_BITS and MPFR_BYTES_PER_MP_LIMB */ -+ MPFR_ASSERTN( GMP_NUMB_BITS == MPFR_BYTES_PER_MP_LIMB * CHAR_BIT -+ && sizeof(mp_limb_t) == MPFR_BYTES_PER_MP_LIMB ); - - MPFR_ASSERTN (mp_bits_per_limb == GMP_NUMB_BITS); - -diff -Naurd mpfr-3.1.2-a/src/mpfr-gmp.h mpfr-3.1.2-b/src/mpfr-gmp.h ---- mpfr-3.1.2-a/src/mpfr-gmp.h 2013-03-13 15:37:32.000000000 +0000 -+++ mpfr-3.1.2-b/src/mpfr-gmp.h 2014-04-15 22:21:06.220398489 +0000 -@@ -72,7 +72,6 @@ - #endif - - /* Define some macros */ --#define BYTES_PER_MP_LIMB (GMP_NUMB_BITS/CHAR_BIT) - - #define MP_LIMB_T_MAX (~(mp_limb_t)0) - -@@ -96,19 +95,19 @@ - #define SHRT_HIGHBIT SHRT_MIN - - /* MP_LIMB macros */ --#define MPN_ZERO(dst, n) memset((dst), 0, (n)*BYTES_PER_MP_LIMB) --#define MPN_COPY_DECR(dst,src,n) memmove((dst),(src),(n)*BYTES_PER_MP_LIMB) --#define MPN_COPY_INCR(dst,src,n) memmove((dst),(src),(n)*BYTES_PER_MP_LIMB) -+#define MPN_ZERO(dst, n) memset((dst), 0, (n)*MPFR_BYTES_PER_MP_LIMB) -+#define MPN_COPY_DECR(dst,src,n) memmove((dst),(src),(n)*MPFR_BYTES_PER_MP_LIMB) -+#define MPN_COPY_INCR(dst,src,n) memmove((dst),(src),(n)*MPFR_BYTES_PER_MP_LIMB) - #define MPN_COPY(dst,src,n) \ - do \ - { \ - if ((dst) != (src)) \ - { \ - MPFR_ASSERTD ((char *) (dst) >= (char *) (src) + \ -- (n) * BYTES_PER_MP_LIMB || \ -+ (n) * MPFR_BYTES_PER_MP_LIMB || \ - (char *) (src) >= (char *) (dst) + \ -- (n) * BYTES_PER_MP_LIMB); \ -- memcpy ((dst), (src), (n) * BYTES_PER_MP_LIMB); \ -+ (n) * MPFR_BYTES_PER_MP_LIMB); \ -+ memcpy ((dst), (src), (n) * MPFR_BYTES_PER_MP_LIMB); \ - } \ - } \ - while (0) -diff -Naurd mpfr-3.1.2-a/src/mpfr-impl.h mpfr-3.1.2-b/src/mpfr-impl.h ---- mpfr-3.1.2-a/src/mpfr-impl.h 2013-10-09 13:34:21.000000000 +0000 -+++ mpfr-3.1.2-b/src/mpfr-impl.h 2014-04-15 22:21:06.220398489 +0000 -@@ -191,7 +191,7 @@ - # endif - #endif - -- -+#define MPFR_BYTES_PER_MP_LIMB (GMP_NUMB_BITS/CHAR_BIT) - - /****************************************************** - ******************** Check GMP *********************** -@@ -930,7 +930,7 @@ - #define MPFR_SET_ALLOC_SIZE(x, n) \ - ( ((mp_size_t*) MPFR_MANT(x))[-1] = n) - #define MPFR_MALLOC_SIZE(s) \ -- ( sizeof(mpfr_size_limb_t) + BYTES_PER_MP_LIMB * ((size_t) s) ) -+ ( sizeof(mpfr_size_limb_t) + MPFR_BYTES_PER_MP_LIMB * ((size_t) s) ) - #define MPFR_SET_MANT_PTR(x,p) \ - (MPFR_MANT(x) = (mp_limb_t*) ((mpfr_size_limb_t*) p + 1)) - #define MPFR_GET_REAL_PTR(x) \ -@@ -964,7 +964,7 @@ - #endif - - #define MPFR_TMP_LIMBS_ALLOC(N) \ -- ((mp_limb_t *) MPFR_TMP_ALLOC ((size_t) (N) * BYTES_PER_MP_LIMB)) -+ ((mp_limb_t *) MPFR_TMP_ALLOC ((size_t) (N) * MPFR_BYTES_PER_MP_LIMB)) - - /* temporary allocate 1 limb at xp, and initialize mpfr variable x */ - /* The temporary var doesn't have any size field, but it doesn't matter -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2014-04-15 22:20:20.755171478 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2014-04-15 22:21:45.225450147 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p7" -+#define MPFR_VERSION_STRING "3.1.2-p8" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/mul.c mpfr-3.1.2-b/src/mul.c ---- mpfr-3.1.2-a/src/mul.c 2013-03-13 15:37:37.000000000 +0000 -+++ mpfr-3.1.2-b/src/mul.c 2014-04-15 22:21:06.224398597 +0000 -@@ -106,7 +106,7 @@ - MPFR_ASSERTD(tn <= k); - - /* Check for no size_t overflow*/ -- MPFR_ASSERTD((size_t) k <= ((size_t) -1) / BYTES_PER_MP_LIMB); -+ MPFR_ASSERTD((size_t) k <= ((size_t) -1) / MPFR_BYTES_PER_MP_LIMB); - MPFR_TMP_MARK(marker); - tmp = MPFR_TMP_LIMBS_ALLOC (k); - -@@ -301,7 +301,7 @@ - MPFR_ASSERTD (tn <= k); /* tn <= k, thus no int overflow */ - - /* Check for no size_t overflow*/ -- MPFR_ASSERTD ((size_t) k <= ((size_t) -1) / BYTES_PER_MP_LIMB); -+ MPFR_ASSERTD ((size_t) k <= ((size_t) -1) / MPFR_BYTES_PER_MP_LIMB); - MPFR_TMP_MARK (marker); - tmp = MPFR_TMP_LIMBS_ALLOC (k); - -diff -Naurd mpfr-3.1.2-a/src/stack_interface.c mpfr-3.1.2-b/src/stack_interface.c ---- mpfr-3.1.2-a/src/stack_interface.c 2013-03-13 15:37:32.000000000 +0000 -+++ mpfr-3.1.2-b/src/stack_interface.c 2014-04-15 22:21:06.220398489 +0000 -@@ -26,7 +26,7 @@ - size_t - mpfr_custom_get_size (mpfr_prec_t prec) - { -- return MPFR_PREC2LIMBS (prec) * BYTES_PER_MP_LIMB; -+ return MPFR_PREC2LIMBS (prec) * MPFR_BYTES_PER_MP_LIMB; - } - - #undef mpfr_custom_init -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2014-04-15 22:20:20.755171478 +0000 -+++ mpfr-3.1.2-b/src/version.c 2014-04-15 22:21:45.225450147 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p7"; -+ return "3.1.2-p8"; - } -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2014-06-30 15:15:25.533266905 +0000 -+++ mpfr-3.1.2-b/PATCHES 2014-06-30 15:15:25.617269178 +0000 -@@ -0,0 +1 @@ -+div-overflow -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2014-06-30 15:15:25.529266797 +0000 -+++ mpfr-3.1.2-b/VERSION 2014-06-30 15:15:25.617269178 +0000 -@@ -1 +1 @@ --3.1.2-p8 -+3.1.2-p9 -diff -Naurd mpfr-3.1.2-a/src/div.c mpfr-3.1.2-b/src/div.c ---- mpfr-3.1.2-a/src/div.c 2013-03-13 15:37:33.000000000 +0000 -+++ mpfr-3.1.2-b/src/div.c 2014-06-30 15:15:25.585268312 +0000 -@@ -750,7 +750,9 @@ - truncate_check_qh: - if (qh) - { -- qexp ++; -+ if (MPFR_LIKELY (qexp < MPFR_EXP_MAX)) -+ qexp ++; -+ /* else qexp is now incorrect, but one will still get an overflow */ - q0p[q0size - 1] = MPFR_LIMB_HIGHBIT; - } - goto truncate; -@@ -765,7 +767,9 @@ - inex = 1; /* always here */ - if (mpn_add_1 (q0p, q0p, q0size, MPFR_LIMB_ONE << sh)) - { -- qexp ++; -+ if (MPFR_LIKELY (qexp < MPFR_EXP_MAX)) -+ qexp ++; -+ /* else qexp is now incorrect, but one will still get an overflow */ - q0p[q0size - 1] = MPFR_LIMB_HIGHBIT; - } - -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2014-06-30 15:15:25.533266905 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2014-06-30 15:15:25.613269070 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p8" -+#define MPFR_VERSION_STRING "3.1.2-p9" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2014-06-30 15:15:25.533266905 +0000 -+++ mpfr-3.1.2-b/src/version.c 2014-06-30 15:15:25.613269070 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p8"; -+ return "3.1.2-p9"; - } -diff -Naurd mpfr-3.1.2-a/tests/tdiv.c mpfr-3.1.2-b/tests/tdiv.c ---- mpfr-3.1.2-a/tests/tdiv.c 2013-03-13 15:37:44.000000000 +0000 -+++ mpfr-3.1.2-b/tests/tdiv.c 2014-06-30 15:15:25.585268312 +0000 -@@ -1104,6 +1104,96 @@ - #define RAND_FUNCTION(x) mpfr_random2(x, MPFR_LIMB_SIZE (x), randlimb () % 100, RANDS) - #include "tgeneric.c" - -+static void -+test_extreme (void) -+{ -+ mpfr_t x, y, z; -+ mpfr_exp_t emin, emax; -+ mpfr_prec_t p[4] = { 8, 32, 64, 256 }; -+ int xi, yi, zi, j, r; -+ unsigned int flags, ex_flags; -+ -+ emin = mpfr_get_emin (); -+ emax = mpfr_get_emax (); -+ -+ mpfr_set_emin (MPFR_EMIN_MIN); -+ mpfr_set_emax (MPFR_EMAX_MAX); -+ -+ for (xi = 0; xi < 4; xi++) -+ { -+ mpfr_init2 (x, p[xi]); -+ mpfr_setmax (x, MPFR_EMAX_MAX); -+ MPFR_ASSERTN (mpfr_check (x)); -+ for (yi = 0; yi < 4; yi++) -+ { -+ mpfr_init2 (y, p[yi]); -+ mpfr_setmin (y, MPFR_EMIN_MIN); -+ for (j = 0; j < 2; j++) -+ { -+ MPFR_ASSERTN (mpfr_check (y)); -+ for (zi = 0; zi < 4; zi++) -+ { -+ mpfr_init2 (z, p[zi]); -+ RND_LOOP (r) -+ { -+ mpfr_clear_flags (); -+ mpfr_div (z, x, y, (mpfr_rnd_t) r); -+ flags = __gmpfr_flags; -+ MPFR_ASSERTN (mpfr_check (z)); -+ ex_flags = MPFR_FLAGS_OVERFLOW | MPFR_FLAGS_INEXACT; -+ if (flags != ex_flags) -+ { -+ printf ("Bad flags in test_extreme on z = a/b" -+ " with %s and\n", -+ mpfr_print_rnd_mode ((mpfr_rnd_t) r)); -+ printf ("a = "); -+ mpfr_dump (x); -+ printf ("b = "); -+ mpfr_dump (y); -+ printf ("Expected flags:"); -+ flags_out (ex_flags); -+ printf ("Got flags: "); -+ flags_out (flags); -+ printf ("z = "); -+ mpfr_dump (z); -+ exit (1); -+ } -+ mpfr_clear_flags (); -+ mpfr_div (z, y, x, (mpfr_rnd_t) r); -+ flags = __gmpfr_flags; -+ MPFR_ASSERTN (mpfr_check (z)); -+ ex_flags = MPFR_FLAGS_UNDERFLOW | MPFR_FLAGS_INEXACT; -+ if (flags != ex_flags) -+ { -+ printf ("Bad flags in test_extreme on z = a/b" -+ " with %s and\n", -+ mpfr_print_rnd_mode ((mpfr_rnd_t) r)); -+ printf ("a = "); -+ mpfr_dump (y); -+ printf ("b = "); -+ mpfr_dump (x); -+ printf ("Expected flags:"); -+ flags_out (ex_flags); -+ printf ("Got flags: "); -+ flags_out (flags); -+ printf ("z = "); -+ mpfr_dump (z); -+ exit (1); -+ } -+ } -+ mpfr_clear (z); -+ } /* zi */ -+ mpfr_nextabove (y); -+ } /* j */ -+ mpfr_clear (y); -+ } /* yi */ -+ mpfr_clear (x); -+ } /* xi */ -+ -+ set_emin (emin); -+ set_emax (emax); -+} -+ - int - main (int argc, char *argv[]) - { -@@ -1130,6 +1220,7 @@ - test_20070603 (); - test_20070628 (); - test_generic (2, 800, 50); -+ test_extreme (); - - tests_end_mpfr (); - return 0; -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2014-06-30 15:17:53.337268149 +0000 -+++ mpfr-3.1.2-b/PATCHES 2014-06-30 15:17:53.417270314 +0000 -@@ -0,0 +1 @@ -+vasprintf -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2014-06-30 15:17:53.337268149 +0000 -+++ mpfr-3.1.2-b/VERSION 2014-06-30 15:17:53.413270206 +0000 -@@ -1 +1 @@ --3.1.2-p9 -+3.1.2-p10 -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2014-06-30 15:17:53.337268149 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2014-06-30 15:17:53.413270206 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p9" -+#define MPFR_VERSION_STRING "3.1.2-p10" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/vasprintf.c mpfr-3.1.2-b/src/vasprintf.c ---- mpfr-3.1.2-a/src/vasprintf.c 2013-11-15 00:51:49.267334408 +0000 -+++ mpfr-3.1.2-b/src/vasprintf.c 2014-06-30 15:17:53.377269231 +0000 -@@ -884,14 +884,18 @@ - first digit, we want the exponent for radix two and the decimal - point AFTER the first digit. */ - { -- MPFR_ASSERTN (exp > MPFR_EMIN_MIN /4); /* possible overflow */ -+ /* An integer overflow is normally not possible since MPFR_EXP_MIN -+ is twice as large as MPFR_EMIN_MIN. */ -+ MPFR_ASSERTN (exp > (MPFR_EXP_MIN + 3) / 4); - exp = (exp - 1) * 4; - } - else - /* EXP is the exponent for decimal point BEFORE the first digit, we - want the exponent for decimal point AFTER the first digit. */ - { -- MPFR_ASSERTN (exp > MPFR_EMIN_MIN); /* possible overflow */ -+ /* An integer overflow is normally not possible since MPFR_EXP_MIN -+ is twice as large as MPFR_EMIN_MIN. */ -+ MPFR_ASSERTN (exp > MPFR_EXP_MIN); - --exp; - } - } -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2014-06-30 15:17:53.337268149 +0000 -+++ mpfr-3.1.2-b/src/version.c 2014-06-30 15:17:53.413270206 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p9"; -+ return "3.1.2-p10"; - } -diff -Naurd mpfr-3.1.2-a/tests/tsprintf.c mpfr-3.1.2-b/tests/tsprintf.c ---- mpfr-3.1.2-a/tests/tsprintf.c 2013-11-15 00:51:49.267334408 +0000 -+++ mpfr-3.1.2-b/tests/tsprintf.c 2014-06-30 15:17:53.377269231 +0000 -@@ -1184,6 +1184,69 @@ - check_emax_aux (MPFR_EMAX_MAX); - } - -+static void -+check_emin_aux (mpfr_exp_t e) -+{ -+ mpfr_t x; -+ char *s1, s2[256]; -+ int i; -+ mpfr_exp_t emin; -+ mpz_t ee; -+ -+ MPFR_ASSERTN (e >= LONG_MIN); -+ emin = mpfr_get_emin (); -+ set_emin (e); -+ -+ mpfr_init2 (x, 16); -+ mpz_init (ee); -+ -+ mpfr_setmin (x, e); -+ mpz_set_si (ee, e); -+ mpz_sub_ui (ee, ee, 1); -+ -+ i = mpfr_asprintf (&s1, "%Ra", x); -+ MPFR_ASSERTN (i > 0); -+ -+ gmp_snprintf (s2, 256, "0x1p%Zd", ee); -+ -+ if (strcmp (s1, s2) != 0) -+ { -+ printf ("Error in check_emin_aux for emin = %ld\n", (long) e); -+ printf ("Expected %s\n", s2); -+ printf ("Got %s\n", s1); -+ exit (1); -+ } -+ -+ mpfr_free_str (s1); -+ -+ i = mpfr_asprintf (&s1, "%Rb", x); -+ MPFR_ASSERTN (i > 0); -+ -+ gmp_snprintf (s2, 256, "1p%Zd", ee); -+ -+ if (strcmp (s1, s2) != 0) -+ { -+ printf ("Error in check_emin_aux for emin = %ld\n", (long) e); -+ printf ("Expected %s\n", s2); -+ printf ("Got %s\n", s1); -+ exit (1); -+ } -+ -+ mpfr_free_str (s1); -+ -+ mpfr_clear (x); -+ mpz_clear (ee); -+ set_emin (emin); -+} -+ -+static void -+check_emin (void) -+{ -+ check_emin_aux (-15); -+ check_emin_aux (mpfr_get_emin ()); -+ check_emin_aux (MPFR_EMIN_MIN); -+} -+ - int - main (int argc, char **argv) - { -@@ -1203,6 +1266,7 @@ - decimal (); - mixed (); - check_emax (); -+ check_emin (); - - #if defined(HAVE_LOCALE_H) && defined(HAVE_SETLOCALE) - locale_da_DK (); -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2014-12-04 01:41:57.131789485 +0000 -+++ mpfr-3.1.2-b/PATCHES 2014-12-04 01:41:57.339791833 +0000 -@@ -0,0 +1 @@ -+strtofr -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2014-12-04 01:41:57.127789443 +0000 -+++ mpfr-3.1.2-b/VERSION 2014-12-04 01:41:57.339791833 +0000 -@@ -1 +1 @@ --3.1.2-p10 -+3.1.2-p11 -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2014-12-04 01:41:57.127789443 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2014-12-04 01:41:57.335791790 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p10" -+#define MPFR_VERSION_STRING "3.1.2-p11" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/strtofr.c mpfr-3.1.2-b/src/strtofr.c ---- mpfr-3.1.2-a/src/strtofr.c 2013-03-13 15:37:32.000000000 +0000 -+++ mpfr-3.1.2-b/src/strtofr.c 2014-12-04 01:41:57.287791246 +0000 -@@ -473,8 +473,10 @@ - /* prec bits corresponds to ysize limbs */ - ysize_bits = ysize * GMP_NUMB_BITS; - /* and to ysize_bits >= prec > MPFR_PREC (x) bits */ -- y = MPFR_TMP_LIMBS_ALLOC (2 * ysize + 1); -- y += ysize; /* y has (ysize+1) allocated limbs */ -+ /* we need to allocate one more limb to work around bug -+ https://gmplib.org/list-archives/gmp-bugs/2013-December/003267.html */ -+ y = MPFR_TMP_LIMBS_ALLOC (2 * ysize + 2); -+ y += ysize; /* y has (ysize+2) allocated limbs */ - - /* pstr_size is the number of characters we read in pstr->mant - to have at least ysize full limbs. -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2014-12-04 01:41:57.131789485 +0000 -+++ mpfr-3.1.2-b/src/version.c 2014-12-04 01:41:57.339791833 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p10"; -+ return "3.1.2-p11"; - } From a548a00db626a97a63d49bc63cb528f5e962877b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 23:32:47 +0300 Subject: [PATCH 1188/2060] scite: Update to 3.5.7 --- mingw-w64-scite/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index e1dadcb66f..2d26fb7c6e 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -3,7 +3,7 @@ _realname=scite pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") -pkgver=3.5.6 +pkgver=3.5.7 pkgrel=1 arch=('any') url='http://www.scintilla.org/SciTE.html' @@ -15,7 +15,7 @@ source=("http://downloads.sourceforge.net/scintilla/${_realname}${pkgver//./}.tg "0001-Use-POSIX-tools-in-makefiles.patch" "0002-Prefix-library-names.patch" "0003-Use-FHS.patch") -md5sums=('046086491528b21cd6def5a0f48e5764' +md5sums=('88ab7fd6a123ef38d53e0cfc6db9c691' 'd4bd88fa3e173d26d9cacaef12b1d6f9' '2a9ec192f43f82d4b26b4a6667de350a' '17011da4ced7269d787433b599a1ae92') From 298b8cc5c1e4f84fa8eb54d6a388437edf9281bc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 21 Jun 2015 23:36:03 +0300 Subject: [PATCH 1189/2060] scite: Some fixes. --- mingw-w64-scite/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index 2d26fb7c6e..5d3368e7da 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -25,12 +25,12 @@ prepare() { patch -p1 -i "${srcdir}"/0001-Use-POSIX-tools-in-makefiles.patch patch -p1 -i "${srcdir}"/0002-Prefix-library-names.patch patch -p1 -i "${srcdir}"/0003-Use-FHS.patch - mkdir -p "${srcdir}"/build-${CARCH} - cp -r "${srcdir}"/{scite,scintilla} "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${MINGW_CHOST} + cp -r "${srcdir}"/{scite,scintilla} "${srcdir}"/build-${MINGW_CHOST} } build() { - cd "${srcdir}"/build-${CARCH} + cd "${srcdir}"/build-${MINGW_CHOST} GTK3=1 make -C scintilla/gtk make -C scintilla/win32 @@ -45,7 +45,7 @@ package_mingw-w64-scite() { "${MINGW_PACKAGE_PREFIX}-gtk3") optdepends=("${MINGW_PACKAGE_PREFIX}-${_realname}-defaults: Default language files") - cd "${srcdir}"/build-${CARCH} + cd "${srcdir}"/build-${MINGW_CHOST} mkdir -p "${pkgdir}"${MINGW_PREFIX}/bin cp scintilla/bin/lib{Scintilla,SciLexer}.dll "${pkgdir}"${MINGW_PREFIX}/bin @@ -76,7 +76,7 @@ package_mingw-w64-scite-defaults() { pkgdesc='Default language files for the SciTE editor (mingw-w64)' depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") - cd "${srcdir}"/build-${CARCH} + cd "${srcdir}"/build-${MINGW_CHOST} mkdir -p "${pkgdir}"${MINGW_PREFIX}/share/scite cp scite/bin/*.properties "${pkgdir}"${MINGW_PREFIX}/share/scite From 8c4a36c775dc3015834185189f989f4e117f6ee3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 22 Jun 2015 08:48:45 +0300 Subject: [PATCH 1190/2060] drmingw-git: Fix wrong commit. --- mingw-w64-drmingw-git/PKGBUILD | 29 ++++++++++++++--------- mingw-w64-drmingw-git/import-libs.patch | 10 ++++---- mingw-w64-drmingw-git/install-files.patch | 8 +++---- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index 807807763f..257692748e 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -2,25 +2,32 @@ # Contributor: Renato Silva _realname=drmingw -pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) -pkgver=0.7.3 +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=r443.9c71cf6 pkgrel=2 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') -license=(LGPL2) +license=(LGPL2.1) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "git") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") url=('https://github.com/jrfonseca/drmingw') -source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/archive/${pkgver}.tar.gz" +source=("${_realname}"::"git+https://github.com/jrfonseca/drmingw.git" import-libs.patch install-files.patch) options=(!strip staticlibs) -md5sums=('2a606a5dfb85e6092ae82acbd4612a7c' - '98685a69354829d13d3f6821fc0ad390' - '79edeee894e906bc3cce20f7f170de0c') +md5sums=('SKIP' + 'd052ddaacd47a3258a5ec0ba6792121c' + '7a8b0bd82b4c80ee1c923bab7bd552d0') + +pkgver() { + cd "$srcdir/$_realname" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} prepare() { - cd "${srcdir}/${_realname}-${pkgver}" + cd ${_realname} patch -p1 -i ${srcdir}/import-libs.patch patch -p1 -i ${srcdir}/install-files.patch } @@ -32,7 +39,7 @@ build() { ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ - ../${_realname}-${pkgver} + ../${_realname} make } @@ -40,5 +47,5 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 install - install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 "${srcdir}/${_realname}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-drmingw-git/import-libs.patch b/mingw-w64-drmingw-git/import-libs.patch index deccec9e00..9f317e2e35 100644 --- a/mingw-w64-drmingw-git/import-libs.patch +++ b/mingw-w64-drmingw-git/import-libs.patch @@ -1,10 +1,11 @@ --- drmingw/CMakeLists.txt.orig 2015-06-21 14:48:57.330400000 +0300 +++ drmingw/CMakeLists.txt 2015-06-21 14:49:03.554800000 +0300 -@@ -60,10 +60,6 @@ - set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -static-libstdc++") +@@ -60,11 +60,6 @@ + add_linker_flags (-static-libstdc++) endif () -if (CMAKE_SIZEOF_VOID_P EQUAL 4) +- add_linker_flags (-Wl,--enable-stdcall-fixup) - set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--kill-at") -endif () - @@ -39,9 +40,10 @@ +) --- /dev/null 2015-06-21 14:20:14.000000000 +0300 +++ drmingw/src/exchndl/exchndl32.def 2015-06-21 14:18:57.437200000 +0300 -@@ -0,0 +1,2 @@ +@@ -0,0 +1,3 @@ +EXPORTS -+ SetLogFileNameA@4 ++ ExcHndlInit@0 ++ ExcHndlSetLogFileNameA@4 --- drmingw/src/mgwhelp/CMakeLists.txt.orig 2015-06-20 21:56:28.342000000 +0300 +++ drmingw/src/mgwhelp/CMakeLists.txt 2015-06-20 22:08:56.832200000 +0300 @@ -23,7 +23,11 @@ diff --git a/mingw-w64-drmingw-git/install-files.patch b/mingw-w64-drmingw-git/install-files.patch index f3341dfb77..66fe95f821 100644 --- a/mingw-w64-drmingw-git/install-files.patch +++ b/mingw-w64-drmingw-git/install-files.patch @@ -12,12 +12,12 @@ --- drmingw/sample/CMakeLists.txt.orig 2015-06-21 14:27:55.165000000 +0300 +++ drmingw/sample/CMakeLists.txt 2015-06-21 14:28:26.833000000 +0300 @@ -6,5 +6,5 @@ - exchndl2.cpp - ) + add_dependencies (sample exchndl) + target_link_libraries (sample $) --install (FILES sample.cpp exchndl2.cpp DESTINATION sample) +-install (FILES sample.cpp DESTINATION sample) -install (FILES sample.mak DESTINATION sample RENAME Makefile) -+install (FILES sample.cpp exchndl2.cpp DESTINATION share/drmingw/sample) ++install (FILES sample.cpp DESTINATION share/drmingw/sample) +install (FILES sample.mak DESTINATION share/drmingw/sample RENAME Makefile) --- drmingw/thirdparty/dwarf/CMakeLists.txt.orig 2015-06-21 14:33:35.812200000 +0300 +++ drmingw/thirdparty/dwarf/CMakeLists.txt 2015-06-21 14:33:45.733800000 +0300 From 3be38c81cfee3dda9a67d7abcde62e8a928a56f4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 22 Jun 2015 09:49:52 +0300 Subject: [PATCH 1191/2060] drmingw*: Generate proper library for dbghelp --- mingw-w64-drmingw-git/PKGBUILD | 4 +- mingw-w64-drmingw-git/import-libs.patch | 133 +++++++++++++++++++++++ mingw-w64-drmingw/PKGBUILD | 4 +- mingw-w64-drmingw/import-libs.patch | 135 +++++++++++++++++++++++- 4 files changed, 271 insertions(+), 5 deletions(-) diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index 257692748e..314a06bace 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=drmingw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=r443.9c71cf6 -pkgrel=2 +pkgrel=3 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') license=(LGPL2.1) @@ -18,7 +18,7 @@ source=("${_realname}"::"git+https://github.com/jrfonseca/drmingw.git" install-files.patch) options=(!strip staticlibs) md5sums=('SKIP' - 'd052ddaacd47a3258a5ec0ba6792121c' + 'a29b4b652caa2dc4fd039c82bb7f6f39' '7a8b0bd82b4c80ee1c923bab7bd552d0') pkgver() { diff --git a/mingw-w64-drmingw-git/import-libs.patch b/mingw-w64-drmingw-git/import-libs.patch index 9f317e2e35..112b12b157 100644 --- a/mingw-w64-drmingw-git/import-libs.patch +++ b/mingw-w64-drmingw-git/import-libs.patch @@ -46,6 +46,16 @@ + ExcHndlSetLogFileNameA@4 --- drmingw/src/mgwhelp/CMakeLists.txt.orig 2015-06-20 21:56:28.342000000 +0300 +++ drmingw/src/mgwhelp/CMakeLists.txt 2015-06-20 22:08:56.832200000 +0300 +@@ -1,7 +1,9 @@ + if (CMAKE_SIZEOF_VOID_P EQUAL 4) + set (MGWHELP_DEF mgwhelp32.def) ++ set (DBGHELP_DEF dbghelp.def) + else () + set (MGWHELP_DEF mgwhelp64.def) ++ set (DBGHELP_DEF dbghelp64.def) + endif () + + add_library (mgwhelp SHARED @@ -23,7 +23,11 @@ LINKER_LANGUAGE CXX # for __cxa_demangle ) @@ -59,3 +69,126 @@ if (CMAKE_SIZEOF_VOID_P EQUAL 4) # XXX: We need to use a custom import lib to avoid link failures +@@ -42,8 +44,8 @@ + set (MGWHELP_IMPLIB ${CMAKE_CURRENT_BINARY_DIR}/libmgwhelp.a) + add_custom_command ( + OUTPUT ${MGWHELP_IMPLIB} +- COMMAND ${DLLTOOL} --output-lib ${MGWHELP_IMPLIB} --dllname mgwhelp.dll --kill-at --input-def=${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.def +- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.def ++ COMMAND ${DLLTOOL} --output-lib ${MGWHELP_IMPLIB} --dllname mgwhelp.dll --input-def=${CMAKE_CURRENT_SOURCE_DIR}/${DBGHELP_DEF} ++ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBGHELP_DEF} + ) + else () + set (MGWHELP_IMPLIB mgwhelp) +--- /dev/null 2015-06-22 09:25:15.000000000 +0300 ++++ drmingw/src/mgwhelp/dbghelp64.def 2015-06-22 09:24:34.433800000 +0300 +@@ -0,0 +1,109 @@ ++LIBRARY dbghelp.dll ++ ++EXPORTS ++ EnumDirTree ++ EnumDirTreeW ++ EnumerateLoadedModules ++ EnumerateLoadedModules64 ++ EnumerateLoadedModulesW64 ++ ExtensionApiVersion ++ FindDebugInfoFile ++ FindDebugInfoFileEx ++ FindExecutableImage ++ FindExecutableImageEx ++ FindExecutableImageExW ++ GetTimestampForLoadedLibrary ++ ImageDirectoryEntryToData ++ ImageDirectoryEntryToDataEx ++ ImageNtHeader ++ ImageRvaToSection ++ ImageRvaToVa ++ ImagehlpApiVersion ++ ImagehlpApiVersionEx ++ MakeSureDirectoryPathExists ++ MapDebugInformation ++ MiniDumpReadDumpStream ++ MiniDumpWriteDump ++ SearchTreeForFile ++ SearchTreeForFileW ++ StackWalk ++ StackWalk64 ++ SymAddSymbol ++ SymAddSymbolW ++ SymCleanup ++ SymEnumLines ++ SymEnumSourceFiles ++ SymEnumSymbols ++ SymEnumSymbolsW ++ SymEnumTypes ++ SymEnumTypesW ++ SymEnumerateModules ++ SymEnumerateModules64 ++ SymEnumerateModulesW64 ++ SymEnumerateSymbols ++ SymEnumerateSymbols64 ++ SymFindFileInPath ++ SymFindFileInPathW ++ SymFromAddr ++ SymFromAddrW ++ SymFromName ++ SymFunctionTableAccess ++ SymFunctionTableAccess64 ++ SymGetLineFromAddr ++ SymGetLineFromAddr64 ++ SymGetLineFromAddrW64 ++ SymGetLineNext ++ SymGetLineNext64 ++ SymGetLinePrev ++ SymGetLinePrev64 ++ SymGetModuleBase ++ SymGetModuleBase64 ++ SymGetModuleInfo ++ SymGetModuleInfo64 ++ SymGetModuleInfoW ++ SymGetModuleInfoW64 ++ SymGetOptions ++ SymGetSearchPath ++ SymGetSearchPathW ++ SymGetSourceFileToken ++ SymGetSourceFileTokenW ++ SymGetSymFromAddr ++ SymGetSymFromAddr64 ++ SymGetSymFromName ++ SymGetSymFromName64 ++ SymGetSymNext ++ SymGetSymNext64 ++ SymGetSymPrev ++ SymGetSymPrev64 ++ SymGetTypeFromName ++ SymGetTypeInfo ++ SymInitialize ++ SymInitializeW ++ SymLoadModule ++ SymLoadModule64 ++ SymLoadModuleEx ++ SymLoadModuleExW ++ SymMatchFileName ++ SymMatchFileNameW ++ SymMatchString ++ SymRefreshModuleList ++ SymRegisterCallback ++ SymRegisterCallback64 ++ SymRegisterCallbackW64 ++ SymRegisterFunctionEntryCallback ++ SymRegisterFunctionEntryCallback64 ++ SymSearch ++ SymSearchW ++ SymSetContext ++ SymSetOptions ++ SymSetParentWindow ++ SymSetScopeFromAddr ++ SymSetSearchPath ++ SymSetSearchPathW ++ SymUnDName ++ SymUnDName64 ++ SymUnloadModule ++ SymUnloadModule64 ++ UnDecorateSymbolName ++ UnmapDebugInformation ++ WinDbgExtensionDllInit diff --git a/mingw-w64-drmingw/PKGBUILD b/mingw-w64-drmingw/PKGBUILD index 76e8970c9f..da9f65423a 100644 --- a/mingw-w64-drmingw/PKGBUILD +++ b/mingw-w64-drmingw/PKGBUILD @@ -4,7 +4,7 @@ _realname=drmingw pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) pkgver=0.7.3 -pkgrel=2 +pkgrel=3 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') license=(LGPL2) @@ -16,7 +16,7 @@ source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/arc install-files.patch) options=(!strip staticlibs) md5sums=('2a606a5dfb85e6092ae82acbd4612a7c' - '36a51f93ad1c1fa1d911af1886688dda' + '95cf2d64efb65e035b96f58e9272798e' '79edeee894e906bc3cce20f7f170de0c') prepare() { diff --git a/mingw-w64-drmingw/import-libs.patch b/mingw-w64-drmingw/import-libs.patch index e82af0d1cc..2078b085a1 100644 --- a/mingw-w64-drmingw/import-libs.patch +++ b/mingw-w64-drmingw/import-libs.patch @@ -41,9 +41,19 @@ +++ drmingw/src/exchndl/exchndl32.def 2015-06-21 14:18:57.437200000 +0300 @@ -0,0 +1,2 @@ +EXPORTS -+ ExcHndlSetLogFileNameA@4 ++ SetLogFileNameA@4 --- drmingw/src/mgwhelp/CMakeLists.txt.orig 2015-06-20 21:56:28.342000000 +0300 +++ drmingw/src/mgwhelp/CMakeLists.txt 2015-06-20 22:08:56.832200000 +0300 +@@ -1,7 +1,9 @@ + if (CMAKE_SIZEOF_VOID_P EQUAL 4) + set (MGWHELP_DEF mgwhelp32.def) ++ set (DBGHELP_DEF dbghelp.def) + else () + set (MGWHELP_DEF mgwhelp64.def) ++ set (DBGHELP_DEF dbghelp64.def) + endif () + + add_library (mgwhelp SHARED @@ -23,7 +23,11 @@ LINKER_LANGUAGE CXX # for __cxa_demangle ) @@ -57,3 +67,126 @@ if (CMAKE_SIZEOF_VOID_P EQUAL 4) # XXX: We need to use a custom import lib to avoid link failures +@@ -42,8 +44,8 @@ + set (MGWHELP_IMPLIB ${CMAKE_CURRENT_BINARY_DIR}/libmgwhelp.a) + add_custom_command ( + OUTPUT ${MGWHELP_IMPLIB} +- COMMAND ${DLLTOOL} --output-lib ${MGWHELP_IMPLIB} --dllname mgwhelp.dll --kill-at --input-def=${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.def +- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.def ++ COMMAND ${DLLTOOL} --output-lib ${MGWHELP_IMPLIB} --dllname mgwhelp.dll --input-def=${CMAKE_CURRENT_SOURCE_DIR}/${DBGHELP_DEF} ++ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBGHELP_DEF} + ) + else () + set (MGWHELP_IMPLIB mgwhelp) +--- /dev/null 2015-06-22 09:25:15.000000000 +0300 ++++ drmingw/src/mgwhelp/dbghelp64.def 2015-06-22 09:24:34.433800000 +0300 +@@ -0,0 +1,109 @@ ++LIBRARY dbghelp.dll ++ ++EXPORTS ++ EnumDirTree ++ EnumDirTreeW ++ EnumerateLoadedModules ++ EnumerateLoadedModules64 ++ EnumerateLoadedModulesW64 ++ ExtensionApiVersion ++ FindDebugInfoFile ++ FindDebugInfoFileEx ++ FindExecutableImage ++ FindExecutableImageEx ++ FindExecutableImageExW ++ GetTimestampForLoadedLibrary ++ ImageDirectoryEntryToData ++ ImageDirectoryEntryToDataEx ++ ImageNtHeader ++ ImageRvaToSection ++ ImageRvaToVa ++ ImagehlpApiVersion ++ ImagehlpApiVersionEx ++ MakeSureDirectoryPathExists ++ MapDebugInformation ++ MiniDumpReadDumpStream ++ MiniDumpWriteDump ++ SearchTreeForFile ++ SearchTreeForFileW ++ StackWalk ++ StackWalk64 ++ SymAddSymbol ++ SymAddSymbolW ++ SymCleanup ++ SymEnumLines ++ SymEnumSourceFiles ++ SymEnumSymbols ++ SymEnumSymbolsW ++ SymEnumTypes ++ SymEnumTypesW ++ SymEnumerateModules ++ SymEnumerateModules64 ++ SymEnumerateModulesW64 ++ SymEnumerateSymbols ++ SymEnumerateSymbols64 ++ SymFindFileInPath ++ SymFindFileInPathW ++ SymFromAddr ++ SymFromAddrW ++ SymFromName ++ SymFunctionTableAccess ++ SymFunctionTableAccess64 ++ SymGetLineFromAddr ++ SymGetLineFromAddr64 ++ SymGetLineFromAddrW64 ++ SymGetLineNext ++ SymGetLineNext64 ++ SymGetLinePrev ++ SymGetLinePrev64 ++ SymGetModuleBase ++ SymGetModuleBase64 ++ SymGetModuleInfo ++ SymGetModuleInfo64 ++ SymGetModuleInfoW ++ SymGetModuleInfoW64 ++ SymGetOptions ++ SymGetSearchPath ++ SymGetSearchPathW ++ SymGetSourceFileToken ++ SymGetSourceFileTokenW ++ SymGetSymFromAddr ++ SymGetSymFromAddr64 ++ SymGetSymFromName ++ SymGetSymFromName64 ++ SymGetSymNext ++ SymGetSymNext64 ++ SymGetSymPrev ++ SymGetSymPrev64 ++ SymGetTypeFromName ++ SymGetTypeInfo ++ SymInitialize ++ SymInitializeW ++ SymLoadModule ++ SymLoadModule64 ++ SymLoadModuleEx ++ SymLoadModuleExW ++ SymMatchFileName ++ SymMatchFileNameW ++ SymMatchString ++ SymRefreshModuleList ++ SymRegisterCallback ++ SymRegisterCallback64 ++ SymRegisterCallbackW64 ++ SymRegisterFunctionEntryCallback ++ SymRegisterFunctionEntryCallback64 ++ SymSearch ++ SymSearchW ++ SymSetContext ++ SymSetOptions ++ SymSetParentWindow ++ SymSetScopeFromAddr ++ SymSetSearchPath ++ SymSetSearchPathW ++ SymUnDName ++ SymUnDName64 ++ SymUnloadModule ++ SymUnloadModule64 ++ UnDecorateSymbolName ++ UnmapDebugInformation ++ WinDbgExtensionDllInit From 0dee5abb95868faec54745cc666acb2610793f85 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 22 Jun 2015 21:26:34 +0300 Subject: [PATCH 1192/2060] libtiff: Update to 4.0.4 --- mingw-w64-libtiff/PKGBUILD | 66 +- mingw-w64-libtiff/libtiff-CVE-2012-4447.patch | 40 - mingw-w64-libtiff/libtiff-CVE-2012-4564.patch | 86 -- mingw-w64-libtiff/libtiff-CVE-2013-1960.patch | 145 ---- mingw-w64-libtiff/libtiff-CVE-2013-1961.patch | 759 ------------------ mingw-w64-libtiff/libtiff-CVE-2013-4231.patch | 15 - mingw-w64-libtiff/libtiff-CVE-2013-4232.patch | 12 - mingw-w64-libtiff/libtiff-CVE-2013-4243.patch | 41 - mingw-w64-libtiff/libtiff-CVE-2013-4244.patch | 15 - mingw-w64-libtiff/libtiff-jpeg-test.patch | 122 --- mingw-w64-libtiff/libtiff-make-check.patch | 26 - .../libtiff-manpage-update.patch | 119 --- .../libtiff-printdir-width.patch | 20 - 13 files changed, 9 insertions(+), 1457 deletions(-) delete mode 100644 mingw-w64-libtiff/libtiff-CVE-2012-4447.patch delete mode 100644 mingw-w64-libtiff/libtiff-CVE-2012-4564.patch delete mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-1960.patch delete mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-1961.patch delete mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-4231.patch delete mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-4232.patch delete mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-4243.patch delete mode 100644 mingw-w64-libtiff/libtiff-CVE-2013-4244.patch delete mode 100644 mingw-w64-libtiff/libtiff-jpeg-test.patch delete mode 100644 mingw-w64-libtiff/libtiff-make-check.patch delete mode 100644 mingw-w64-libtiff/libtiff-manpage-update.patch delete mode 100644 mingw-w64-libtiff/libtiff-printdir-width.patch diff --git a/mingw-w64-libtiff/PKGBUILD b/mingw-w64-libtiff/PKGBUILD index 43ecb26b86..7ece71455f 100644 --- a/mingw-w64-libtiff/PKGBUILD +++ b/mingw-w64-libtiff/PKGBUILD @@ -3,8 +3,8 @@ _realname=libtiff pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.0.3 -pkgrel=6 +pkgver=4.0.4 +pkgrel=1 pkgdesc="Library for manipulation of TIFF images (mingw-w64)" arch=('any') url="http://www.remotesensing.org/libtiff" @@ -16,65 +16,19 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=("ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz" - libtiff-CVE-2012-4447.patch - libtiff-CVE-2012-4564.patch - libtiff-printdir-width.patch - libtiff-jpeg-test.patch - libtiff-CVE-2013-1960.patch - libtiff-CVE-2013-1961.patch - libtiff-manpage-update.patch - libtiff-CVE-2013-4231.patch - libtiff-CVE-2013-4232.patch - libtiff-CVE-2013-4244.patch - libtiff-make-check.patch - libtiff-CVE-2013-4243.patch) -md5sums=('051c1068e6a0627f461948c365290410' - '71bbe3b51f8a4e3a26cbf0af63588e4a' - 'a4b9f293f706b5668df62833cf0b56d2' - '6a5be70d02abc33d7426dba309445529' - 'f7cbe41ac63f23e441572c6ecf4bdccc' - 'e9de577a81571ab8ffac84aac8c64381' - 'e484981da6d2366a30a89dc0217c115a' - '39ea7f6f10ff8686757d5638c6df6882' - '8613bb1158787567bf586a7d9f3b8da3' - '922db499ed1de025913c960a68fc2318' - '677f69995dd2e7710b4bca672c96ed8d' - '60e9bbbee968b820a73a40aa425029d8' - '74138a7605520ce47014e2ce05df1eeb') +source=("ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz") +md5sums=('9aee7107408a128c0c7b24286c0db900') prepare() { cd tiff-${pkgver} - - patch -p1 -i ${srcdir}/libtiff-CVE-2012-4447.patch - patch -p1 -i ${srcdir}/libtiff-CVE-2012-4564.patch - patch -p1 -i ${srcdir}/libtiff-printdir-width.patch - patch -p1 -i ${srcdir}/libtiff-jpeg-test.patch - patch -p1 -i ${srcdir}/libtiff-CVE-2013-1960.patch - patch -p1 -i ${srcdir}/libtiff-CVE-2013-1961.patch - patch -p1 -i ${srcdir}/libtiff-manpage-update.patch - patch -p1 -i ${srcdir}/libtiff-CVE-2013-4231.patch - patch -p1 -i ${srcdir}/libtiff-CVE-2013-4232.patch - patch -p1 -i ${srcdir}/libtiff-CVE-2013-4244.patch - patch -p1 -i ${srcdir}/libtiff-make-check.patch - patch -p1 -i ${srcdir}/libtiff-CVE-2013-4243.patch - - rm -f libtool.m4 - - libtoolize --force --copy - aclocal -I . -I m4 - automake --add-missing --copy - autoconf - autoheader } build() { - cd "${srcdir}/tiff-${pkgver}" export CFLAGS+=" -fno-strict-aliasing" export CXXFLAGS+=" -fno-strict-aliasing" - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} ../tiff-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ @@ -90,20 +44,18 @@ build() { } check() { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make check } package() { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install - #rm -rf "${pkgdir}${MINGW_PREFIX}/share" cp ${srcdir}/tiff-${pkgver}/libtiff/{tiffiop,tif_dir}.h ${pkgdir}${MINGW_PREFIX}/include/ cp libtiff/tif_config.h ${pkgdir}${MINGW_PREFIX}/include/ # License # See https://fedoraproject.org/wiki/Licensing:MIT#Hylafax_Variant - cd "${srcdir}/tiff-${pkgver}" - install -Dm644 COPYRIGHT "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYRIGHT" + install -Dm644 ${srcdir}/tiff-${pkgver}/COPYRIGHT "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYRIGHT" } diff --git a/mingw-w64-libtiff/libtiff-CVE-2012-4447.patch b/mingw-w64-libtiff/libtiff-CVE-2012-4447.patch deleted file mode 100644 index ebf9a00e1b..0000000000 --- a/mingw-w64-libtiff/libtiff-CVE-2012-4447.patch +++ /dev/null @@ -1,40 +0,0 @@ -Upstream patch for CVE-2012-4447. - - -diff -Naur tiff-4.0.3.orig/libtiff/tif_pixarlog.c tiff-4.0.3/libtiff/tif_pixarlog.c ---- tiff-4.0.3.orig/libtiff/tif_pixarlog.c 2012-07-04 15:26:31.000000000 -0400 -+++ tiff-4.0.3/libtiff/tif_pixarlog.c 2012-12-12 16:43:18.931315699 -0500 -@@ -644,6 +644,20 @@ - return bytes; - } - -+static tmsize_t -+add_ms(tmsize_t m1, tmsize_t m2) -+{ -+ tmsize_t bytes = m1 + m2; -+ -+ /* if either input is zero, assume overflow already occurred */ -+ if (m1 == 0 || m2 == 0) -+ bytes = 0; -+ else if (bytes <= m1 || bytes <= m2) -+ bytes = 0; -+ -+ return bytes; -+} -+ - static int - PixarLogFixupTags(TIFF* tif) - { -@@ -671,9 +685,11 @@ - td->td_samplesperpixel : 1); - tbuf_size = multiply_ms(multiply_ms(multiply_ms(sp->stride, td->td_imagewidth), - td->td_rowsperstrip), sizeof(uint16)); -+ /* add one more stride in case input ends mid-stride */ -+ tbuf_size = add_ms(tbuf_size, sizeof(uint16) * sp->stride); - if (tbuf_size == 0) - return (0); /* TODO: this is an error return without error report through TIFFErrorExt */ -- sp->tbuf = (uint16 *) _TIFFmalloc(tbuf_size+sizeof(uint16)*sp->stride); -+ sp->tbuf = (uint16 *) _TIFFmalloc(tbuf_size); - if (sp->tbuf == NULL) - return (0); - if (sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN) diff --git a/mingw-w64-libtiff/libtiff-CVE-2012-4564.patch b/mingw-w64-libtiff/libtiff-CVE-2012-4564.patch deleted file mode 100644 index 3d7946c7ec..0000000000 --- a/mingw-w64-libtiff/libtiff-CVE-2012-4564.patch +++ /dev/null @@ -1,86 +0,0 @@ -Upstream patch for CVE-2012-4564. - - -diff -Naur tiff-4.0.3.orig/tools/ppm2tiff.c tiff-4.0.3/tools/ppm2tiff.c ---- tiff-4.0.3.orig/tools/ppm2tiff.c 2010-04-10 15:22:34.000000000 -0400 -+++ tiff-4.0.3/tools/ppm2tiff.c 2012-12-12 16:43:18.932315708 -0500 -@@ -72,6 +72,17 @@ - exit(-2); - } - -+static tmsize_t -+multiply_ms(tmsize_t m1, tmsize_t m2) -+{ -+ tmsize_t bytes = m1 * m2; -+ -+ if (m1 && bytes / m1 != m2) -+ bytes = 0; -+ -+ return bytes; -+} -+ - int - main(int argc, char* argv[]) - { -@@ -79,7 +90,7 @@ - uint32 rowsperstrip = (uint32) -1; - double resolution = -1; - unsigned char *buf = NULL; -- tsize_t linebytes = 0; -+ tmsize_t linebytes = 0; - uint16 spp = 1; - uint16 bpp = 8; - TIFF *out; -@@ -89,6 +100,7 @@ - int c; - extern int optind; - extern char* optarg; -+ tmsize_t scanline_size; - - if (argc < 2) { - fprintf(stderr, "%s: Too few arguments\n", argv[0]); -@@ -221,7 +233,8 @@ - } - switch (bpp) { - case 1: -- linebytes = (spp * w + (8 - 1)) / 8; -+ /* if round-up overflows, result will be zero, OK */ -+ linebytes = (multiply_ms(spp, w) + (8 - 1)) / 8; - if (rowsperstrip == (uint32) -1) { - TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, h); - } else { -@@ -230,15 +243,31 @@ - } - break; - case 8: -- linebytes = spp * w; -+ linebytes = multiply_ms(spp, w); - TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, - TIFFDefaultStripSize(out, rowsperstrip)); - break; - } -- if (TIFFScanlineSize(out) > linebytes) -+ if (linebytes == 0) { -+ fprintf(stderr, "%s: scanline size overflow\n", infile); -+ (void) TIFFClose(out); -+ exit(-2); -+ } -+ scanline_size = TIFFScanlineSize(out); -+ if (scanline_size == 0) { -+ /* overflow - TIFFScanlineSize already printed a message */ -+ (void) TIFFClose(out); -+ exit(-2); -+ } -+ if (scanline_size < linebytes) - buf = (unsigned char *)_TIFFmalloc(linebytes); - else -- buf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(out)); -+ buf = (unsigned char *)_TIFFmalloc(scanline_size); -+ if (buf == NULL) { -+ fprintf(stderr, "%s: Not enough memory\n", infile); -+ (void) TIFFClose(out); -+ exit(-2); -+ } - if (resolution > 0) { - TIFFSetField(out, TIFFTAG_XRESOLUTION, resolution); - TIFFSetField(out, TIFFTAG_YRESOLUTION, resolution); diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-1960.patch b/mingw-w64-libtiff/libtiff-CVE-2013-1960.patch deleted file mode 100644 index 1c8dfb7bc6..0000000000 --- a/mingw-w64-libtiff/libtiff-CVE-2013-1960.patch +++ /dev/null @@ -1,145 +0,0 @@ -diff -Naur tiff-4.0.3.orig/tools/tiff2pdf.c tiff-4.0.3/tools/tiff2pdf.c ---- tiff-4.0.3.orig/tools/tiff2pdf.c 2012-07-25 22:56:43.000000000 -0400 -+++ tiff-4.0.3/tools/tiff2pdf.c 2013-05-02 12:04:49.057090227 -0400 -@@ -3341,33 +3341,56 @@ - uint32 height){ - - tsize_t i=0; -- uint16 ri =0; -- uint16 v_samp=1; -- uint16 h_samp=1; -- int j=0; -- -- i++; -- -- while(i<(*striplength)){ -+ -+ while (i < *striplength) { -+ tsize_t datalen; -+ uint16 ri; -+ uint16 v_samp; -+ uint16 h_samp; -+ int j; -+ int ncomp; -+ -+ /* marker header: one or more FFs */ -+ if (strip[i] != 0xff) -+ return(0); -+ i++; -+ while (i < *striplength && strip[i] == 0xff) -+ i++; -+ if (i >= *striplength) -+ return(0); -+ /* SOI is the only pre-SOS marker without a length word */ -+ if (strip[i] == 0xd8) -+ datalen = 0; -+ else { -+ if ((*striplength - i) <= 2) -+ return(0); -+ datalen = (strip[i+1] << 8) | strip[i+2]; -+ if (datalen < 2 || datalen >= (*striplength - i)) -+ return(0); -+ } - switch( strip[i] ){ -- case 0xd8: -- /* SOI - start of image */ -+ case 0xd8: /* SOI - start of image */ - _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), 2); - *bufferoffset+=2; -- i+=2; - break; -- case 0xc0: -- case 0xc1: -- case 0xc3: -- case 0xc9: -- case 0xca: -+ case 0xc0: /* SOF0 */ -+ case 0xc1: /* SOF1 */ -+ case 0xc3: /* SOF3 */ -+ case 0xc9: /* SOF9 */ -+ case 0xca: /* SOF10 */ - if(no==0){ -- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2); -- for(j=0;j>4) > h_samp) -- h_samp = (buffer[*bufferoffset+11+(2*j)]>>4); -- if( (buffer[*bufferoffset+11+(2*j)] & 0x0f) > v_samp) -- v_samp = (buffer[*bufferoffset+11+(2*j)] & 0x0f); -+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2); -+ ncomp = buffer[*bufferoffset+9]; -+ if (ncomp < 1 || ncomp > 4) -+ return(0); -+ v_samp=1; -+ h_samp=1; -+ for(j=0;j>4) > h_samp) -+ h_samp = (samp>>4); -+ if( (samp & 0x0f) > v_samp) -+ v_samp = (samp & 0x0f); - } - v_samp*=8; - h_samp*=8; -@@ -3381,45 +3404,43 @@ - (unsigned char) ((height>>8) & 0xff); - buffer[*bufferoffset+6]= - (unsigned char) (height & 0xff); -- *bufferoffset+=strip[i+2]+2; -- i+=strip[i+2]+2; -- -+ *bufferoffset+=datalen+2; -+ /* insert a DRI marker */ - buffer[(*bufferoffset)++]=0xff; - buffer[(*bufferoffset)++]=0xdd; - buffer[(*bufferoffset)++]=0x00; - buffer[(*bufferoffset)++]=0x04; - buffer[(*bufferoffset)++]=(ri >> 8) & 0xff; - buffer[(*bufferoffset)++]= ri & 0xff; -- } else { -- i+=strip[i+2]+2; - } - break; -- case 0xc4: -- case 0xdb: -- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2); -- *bufferoffset+=strip[i+2]+2; -- i+=strip[i+2]+2; -+ case 0xc4: /* DHT */ -+ case 0xdb: /* DQT */ -+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2); -+ *bufferoffset+=datalen+2; - break; -- case 0xda: -+ case 0xda: /* SOS */ - if(no==0){ -- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2); -- *bufferoffset+=strip[i+2]+2; -- i+=strip[i+2]+2; -+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2); -+ *bufferoffset+=datalen+2; - } else { - buffer[(*bufferoffset)++]=0xff; - buffer[(*bufferoffset)++]= - (unsigned char)(0xd0 | ((no-1)%8)); -- i+=strip[i+2]+2; - } -- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), (*striplength)-i-1); -- *bufferoffset+=(*striplength)-i-1; -+ i += datalen + 1; -+ /* copy remainder of strip */ -+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i]), *striplength - i); -+ *bufferoffset+= *striplength - i; - return(1); - default: -- i+=strip[i+2]+2; -+ /* ignore any other marker */ -+ break; - } -+ i += datalen + 1; - } -- - -+ /* failed to find SOS marker */ - return(0); - } - #endif diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-1961.patch b/mingw-w64-libtiff/libtiff-CVE-2013-1961.patch deleted file mode 100644 index 0ea9b52e3f..0000000000 --- a/mingw-w64-libtiff/libtiff-CVE-2013-1961.patch +++ /dev/null @@ -1,759 +0,0 @@ -diff -Naur tiff-4.0.3.orig/contrib/dbs/xtiff/xtiff.c tiff-4.0.3/contrib/dbs/xtiff/xtiff.c ---- tiff-4.0.3.orig/contrib/dbs/xtiff/xtiff.c 2010-06-08 14:55:15.000000000 -0400 -+++ tiff-4.0.3/contrib/dbs/xtiff/xtiff.c 2013-05-02 12:02:42.782287939 -0400 -@@ -512,9 +512,9 @@ - Arg args[1]; - - if (tfMultiPage) -- sprintf(buffer, "%s - page %d", fileName, tfDirectory); -+ snprintf(buffer, sizeof(buffer), "%s - page %d", fileName, tfDirectory); - else -- strcpy(buffer, fileName); -+ snprintf(buffer, sizeof(buffer), "%s", fileName); - XtSetArg(args[0], XtNlabel, buffer); - XtSetValues(labelWidget, args, 1); - } -diff -Naur tiff-4.0.3.orig/libtiff/tif_codec.c tiff-4.0.3/libtiff/tif_codec.c ---- tiff-4.0.3.orig/libtiff/tif_codec.c 2010-12-14 09:18:28.000000000 -0500 -+++ tiff-4.0.3/libtiff/tif_codec.c 2013-05-02 12:02:42.783287946 -0400 -@@ -108,7 +108,8 @@ - const TIFFCodec* c = TIFFFindCODEC(tif->tif_dir.td_compression); - char compression_code[20]; - -- sprintf( compression_code, "%d", tif->tif_dir.td_compression ); -+ snprintf(compression_code, sizeof(compression_code), "%d", -+ tif->tif_dir.td_compression ); - TIFFErrorExt(tif->tif_clientdata, tif->tif_name, - "%s compression support is not configured", - c ? c->name : compression_code ); -diff -Naur tiff-4.0.3.orig/libtiff/tif_dirinfo.c tiff-4.0.3/libtiff/tif_dirinfo.c ---- tiff-4.0.3.orig/libtiff/tif_dirinfo.c 2012-08-19 12:56:34.000000000 -0400 -+++ tiff-4.0.3/libtiff/tif_dirinfo.c 2013-05-02 12:02:42.784287953 -0400 -@@ -711,7 +711,7 @@ - * note that this name is a special sign to TIFFClose() and - * _TIFFSetupFields() to free the field - */ -- sprintf(fld->field_name, "Tag %d", (int) tag); -+ snprintf(fld->field_name, 32, "Tag %d", (int) tag); - - return fld; - } -diff -Naur tiff-4.0.3.orig/tools/rgb2ycbcr.c tiff-4.0.3/tools/rgb2ycbcr.c ---- tiff-4.0.3.orig/tools/rgb2ycbcr.c 2011-05-31 13:03:16.000000000 -0400 -+++ tiff-4.0.3/tools/rgb2ycbcr.c 2013-05-02 12:02:42.785287961 -0400 -@@ -332,7 +332,8 @@ - TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); - { char buf[2048]; - char *cp = strrchr(TIFFFileName(in), '/'); -- sprintf(buf, "YCbCr conversion of %s", cp ? cp+1 : TIFFFileName(in)); -+ snprintf(buf, sizeof(buf), "YCbCr conversion of %s", -+ cp ? cp+1 : TIFFFileName(in)); - TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, buf); - } - TIFFSetField(out, TIFFTAG_SOFTWARE, TIFFGetVersion()); -diff -Naur tiff-4.0.3.orig/tools/tiff2bw.c tiff-4.0.3/tools/tiff2bw.c ---- tiff-4.0.3.orig/tools/tiff2bw.c 2010-07-08 12:10:24.000000000 -0400 -+++ tiff-4.0.3/tools/tiff2bw.c 2013-05-02 12:02:42.785287961 -0400 -@@ -205,7 +205,7 @@ - } - } - TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); -- sprintf(thing, "B&W version of %s", argv[optind]); -+ snprintf(thing, sizeof(thing), "B&W version of %s", argv[optind]); - TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing); - TIFFSetField(out, TIFFTAG_SOFTWARE, "tiff2bw"); - outbuf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(out)); -diff -Naur tiff-4.0.3.orig/tools/tiff2pdf.c tiff-4.0.3/tools/tiff2pdf.c ---- tiff-4.0.3.orig/tools/tiff2pdf.c 2012-07-25 22:56:43.000000000 -0400 -+++ tiff-4.0.3/tools/tiff2pdf.c 2013-05-02 12:02:42.788287983 -0400 -@@ -3609,7 +3609,9 @@ - char buffer[16]; - int buflen=0; - -- buflen=sprintf(buffer, "%%PDF-%u.%u ", t2p->pdf_majorversion&0xff, t2p->pdf_minorversion&0xff); -+ buflen = snprintf(buffer, sizeof(buffer), "%%PDF-%u.%u ", -+ t2p->pdf_majorversion&0xff, -+ t2p->pdf_minorversion&0xff); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t)"\n%\342\343\317\323\n", 7); - -@@ -3623,10 +3625,10 @@ - tsize_t t2p_write_pdf_obj_start(uint32 number, TIFF* output){ - - tsize_t written=0; -- char buffer[16]; -+ char buffer[32]; - int buflen=0; - -- buflen=sprintf(buffer, "%lu", (unsigned long)number); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)number); - written += t2pWriteFile(output, (tdata_t) buffer, buflen ); - written += t2pWriteFile(output, (tdata_t) " 0 obj\n", 7); - -@@ -3665,13 +3667,13 @@ - written += t2pWriteFile(output, (tdata_t) "/", 1); - for (i=0;i 0x7E){ -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - nextchar=1; -@@ -3679,57 +3681,57 @@ - if (nextchar==0){ - switch (name[i]){ - case 0x23: -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - break; - case 0x25: -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - break; - case 0x28: -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - break; - case 0x29: -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - break; - case 0x2F: -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - break; - case 0x3C: -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - break; - case 0x3E: -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - break; - case 0x5B: -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - break; - case 0x5D: -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - break; - case 0x7B: -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - break; - case 0x7D: -- sprintf(buffer, "#%.2X", name[i]); -+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); - buffer[sizeof(buffer) - 1] = '\0'; - written += t2pWriteFile(output, (tdata_t) buffer, 3); - break; -@@ -3844,14 +3846,14 @@ - tsize_t t2p_write_pdf_stream_dict(tsize_t len, uint32 number, TIFF* output){ - - tsize_t written=0; -- char buffer[16]; -+ char buffer[32]; - int buflen=0; - - written += t2pWriteFile(output, (tdata_t) "/Length ", 8); - if(len!=0){ - written += t2p_write_pdf_stream_length(len, output); - } else { -- buflen=sprintf(buffer, "%lu", (unsigned long)number); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)number); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); - } -@@ -3892,10 +3894,10 @@ - tsize_t t2p_write_pdf_stream_length(tsize_t len, TIFF* output){ - - tsize_t written=0; -- char buffer[16]; -+ char buffer[32]; - int buflen=0; - -- buflen=sprintf(buffer, "%lu", (unsigned long)len); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)len); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) "\n", 1); - -@@ -3909,7 +3911,7 @@ - tsize_t t2p_write_pdf_catalog(T2P* t2p, TIFF* output) - { - tsize_t written = 0; -- char buffer[16]; -+ char buffer[32]; - int buflen = 0; - - written += t2pWriteFile(output, -@@ -3948,7 +3950,6 @@ - written += t2p_write_pdf_string(t2p->pdf_datetime, output); - } - written += t2pWriteFile(output, (tdata_t) "\n/Producer ", 11); -- _TIFFmemset((tdata_t)buffer, 0x00, sizeof(buffer)); - snprintf(buffer, sizeof(buffer), "libtiff / tiff2pdf - %d", TIFFLIB_VERSION); - written += t2p_write_pdf_string(buffer, output); - written += t2pWriteFile(output, (tdata_t) "\n", 1); -@@ -4089,7 +4090,7 @@ - { - tsize_t written=0; - tdir_t i=0; -- char buffer[16]; -+ char buffer[32]; - int buflen=0; - - int page=0; -@@ -4097,7 +4098,7 @@ - (tdata_t) "<< \n/Type /Pages \n/Kids [ ", 26); - page = t2p->pdf_pages+1; - for (i=0;itiff_pagecount;i++){ -- buflen=sprintf(buffer, "%d", page); -+ buflen=snprintf(buffer, sizeof(buffer), "%d", page); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); - if ( ((i+1)%8)==0 ) { -@@ -4112,8 +4113,7 @@ - } - } - written += t2pWriteFile(output, (tdata_t) "] \n/Count ", 10); -- _TIFFmemset(buffer, 0x00, 16); -- buflen=sprintf(buffer, "%d", t2p->tiff_pagecount); -+ buflen=snprintf(buffer, sizeof(buffer), "%d", t2p->tiff_pagecount); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " \n>> \n", 6); - -@@ -4128,28 +4128,28 @@ - - unsigned int i=0; - tsize_t written=0; -- char buffer[16]; -+ char buffer[256]; - int buflen=0; - - written += t2pWriteFile(output, (tdata_t) "<<\n/Type /Page \n/Parent ", 24); -- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_pages); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_pages); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); - written += t2pWriteFile(output, (tdata_t) "/MediaBox [", 11); -- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.x1); -+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.x1); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " ", 1); -- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.y1); -+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.y1); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " ", 1); -- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.x2); -+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.x2); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " ", 1); -- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.y2); -+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.y2); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) "] \n", 3); - written += t2pWriteFile(output, (tdata_t) "/Contents ", 10); -- buflen=sprintf(buffer, "%lu", (unsigned long)(object + 1)); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(object + 1)); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); - written += t2pWriteFile(output, (tdata_t) "/Resources << \n", 15); -@@ -4157,15 +4157,13 @@ - written += t2pWriteFile(output, (tdata_t) "/XObject <<\n", 12); - for(i=0;itiff_tiles[t2p->pdf_page].tiles_tilecount;i++){ - written += t2pWriteFile(output, (tdata_t) "/Im", 3); -- buflen = sprintf(buffer, "%u", t2p->pdf_page+1); -+ buflen = snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) "_", 1); -- buflen = sprintf(buffer, "%u", i+1); -+ buflen = snprintf(buffer, sizeof(buffer), "%u", i+1); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " ", 1); -- buflen = sprintf( -- buffer, -- "%lu", -+ buflen = snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)(object+3+(2*i)+t2p->tiff_pages[t2p->pdf_page].page_extra)); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); -@@ -4177,12 +4175,10 @@ - } else { - written += t2pWriteFile(output, (tdata_t) "/XObject <<\n", 12); - written += t2pWriteFile(output, (tdata_t) "/Im", 3); -- buflen = sprintf(buffer, "%u", t2p->pdf_page+1); -+ buflen = snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " ", 1); -- buflen = sprintf( -- buffer, -- "%lu", -+ buflen = snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)(object+3+(2*i)+t2p->tiff_pages[t2p->pdf_page].page_extra)); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); -@@ -4191,9 +4187,7 @@ - if(t2p->tiff_transferfunctioncount != 0) { - written += t2pWriteFile(output, (tdata_t) "/ExtGState <<", 13); - t2pWriteFile(output, (tdata_t) "/GS1 ", 5); -- buflen = sprintf( -- buffer, -- "%lu", -+ buflen = snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)(object + 3)); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); -@@ -4566,7 +4560,7 @@ - if(t2p->tiff_tiles[t2p->pdf_page].tiles_tilecount>0){ - for(i=0;itiff_tiles[t2p->pdf_page].tiles_tilecount; i++){ - box=t2p->tiff_tiles[t2p->pdf_page].tiles_tiles[i].tile_box; -- buflen=sprintf(buffer, -+ buflen=snprintf(buffer, sizeof(buffer), - "q %s %.4f %.4f %.4f %.4f %.4f %.4f cm /Im%d_%ld Do Q\n", - t2p->tiff_transferfunctioncount?"/GS1 gs ":"", - box.mat[0], -@@ -4581,7 +4575,7 @@ - } - } else { - box=t2p->pdf_imagebox; -- buflen=sprintf(buffer, -+ buflen=snprintf(buffer, sizeof(buffer), - "q %s %.4f %.4f %.4f %.4f %.4f %.4f cm /Im%d Do Q\n", - t2p->tiff_transferfunctioncount?"/GS1 gs ":"", - box.mat[0], -@@ -4606,59 +4600,48 @@ - TIFF* output){ - - tsize_t written=0; -- char buffer[16]; -+ char buffer[32]; - int buflen=0; - - written += t2p_write_pdf_stream_dict(0, t2p->pdf_xrefcount+1, output); - written += t2pWriteFile(output, - (tdata_t) "/Type /XObject \n/Subtype /Image \n/Name /Im", - 42); -- buflen=sprintf(buffer, "%u", t2p->pdf_page+1); -+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - if(tile != 0){ - written += t2pWriteFile(output, (tdata_t) "_", 1); -- buflen=sprintf(buffer, "%lu", (unsigned long)tile); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)tile); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - } - written += t2pWriteFile(output, (tdata_t) "\n/Width ", 8); -- _TIFFmemset((tdata_t)buffer, 0x00, 16); - if(tile==0){ -- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->tiff_width); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->tiff_width); - } else { - if(t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)!=0){ -- buflen=sprintf( -- buffer, -- "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilewidth); - } else { -- buflen=sprintf( -- buffer, -- "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilewidth); - } - } - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) "\n/Height ", 9); -- _TIFFmemset((tdata_t)buffer, 0x00, 16); - if(tile==0){ -- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->tiff_length); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->tiff_length); - } else { - if(t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)!=0){ -- buflen=sprintf( -- buffer, -- "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilelength); - } else { -- buflen=sprintf( -- buffer, -- "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilelength); - } - } - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) "\n/BitsPerComponent ", 19); -- _TIFFmemset((tdata_t)buffer, 0x00, 16); -- buflen=sprintf(buffer, "%u", t2p->tiff_bitspersample); -+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_bitspersample); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) "\n/ColorSpace ", 13); - written += t2p_write_pdf_xobject_cs(t2p, output); -@@ -4702,11 +4685,10 @@ - t2p->pdf_colorspace ^= T2P_CS_PALETTE; - written += t2p_write_pdf_xobject_cs(t2p, output); - t2p->pdf_colorspace |= T2P_CS_PALETTE; -- buflen=sprintf(buffer, "%u", (0x0001 << t2p->tiff_bitspersample)-1 ); -+ buflen=snprintf(buffer, sizeof(buffer), "%u", (0x0001 << t2p->tiff_bitspersample)-1 ); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " ", 1); -- _TIFFmemset(buffer, 0x00, 16); -- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_palettecs ); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_palettecs ); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R ]\n", 7); - return(written); -@@ -4740,10 +4722,10 @@ - X_W /= Y_W; - Z_W /= Y_W; - Y_W = 1.0F; -- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); -+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) "/Range ", 7); -- buflen=sprintf(buffer, "[%d %d %d %d] \n", -+ buflen=snprintf(buffer, sizeof(buffer), "[%d %d %d %d] \n", - t2p->pdf_labrange[0], - t2p->pdf_labrange[1], - t2p->pdf_labrange[2], -@@ -4759,26 +4741,26 @@ - tsize_t t2p_write_pdf_transfer(T2P* t2p, TIFF* output){ - - tsize_t written=0; -- char buffer[16]; -+ char buffer[32]; - int buflen=0; - - written += t2pWriteFile(output, (tdata_t) "<< /Type /ExtGState \n/TR ", 25); - if(t2p->tiff_transferfunctioncount == 1){ -- buflen=sprintf(buffer, "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)(t2p->pdf_xrefcount + 1)); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); - } else { - written += t2pWriteFile(output, (tdata_t) "[ ", 2); -- buflen=sprintf(buffer, "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)(t2p->pdf_xrefcount + 1)); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); -- buflen=sprintf(buffer, "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)(t2p->pdf_xrefcount + 2)); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); -- buflen=sprintf(buffer, "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)(t2p->pdf_xrefcount + 3)); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); -@@ -4800,7 +4782,7 @@ - written += t2pWriteFile(output, (tdata_t) "/FunctionType 0 \n", 17); - written += t2pWriteFile(output, (tdata_t) "/Domain [0.0 1.0] \n", 19); - written += t2pWriteFile(output, (tdata_t) "/Range [0.0 1.0] \n", 18); -- buflen=sprintf(buffer, "/Size [%u] \n", (1<tiff_bitspersample)); -+ buflen=snprintf(buffer, sizeof(buffer), "/Size [%u] \n", (1<tiff_bitspersample)); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) "/BitsPerSample 16 \n", 19); - written += t2p_write_pdf_stream_dict(((tsize_t)1)<<(t2p->tiff_bitspersample+1), 0, output); -@@ -4827,7 +4809,7 @@ - tsize_t t2p_write_pdf_xobject_calcs(T2P* t2p, TIFF* output){ - - tsize_t written=0; -- char buffer[128]; -+ char buffer[256]; - int buflen=0; - - float X_W=0.0; -@@ -4895,16 +4877,16 @@ - written += t2pWriteFile(output, (tdata_t) "<< \n", 4); - if(t2p->pdf_colorspace & T2P_CS_CALGRAY){ - written += t2pWriteFile(output, (tdata_t) "/WhitePoint ", 12); -- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); -+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) "/Gamma 2.2 \n", 12); - } - if(t2p->pdf_colorspace & T2P_CS_CALRGB){ - written += t2pWriteFile(output, (tdata_t) "/WhitePoint ", 12); -- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); -+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) "/Matrix ", 8); -- buflen=sprintf(buffer, "[%.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f] \n", -+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f] \n", - X_R, Y_R, Z_R, - X_G, Y_G, Z_G, - X_B, Y_B, Z_B); -@@ -4923,11 +4905,11 @@ - tsize_t t2p_write_pdf_xobject_icccs(T2P* t2p, TIFF* output){ - - tsize_t written=0; -- char buffer[16]; -+ char buffer[32]; - int buflen=0; - - written += t2pWriteFile(output, (tdata_t) "[/ICCBased ", 11); -- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_icccs); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_icccs); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " 0 R] \n", 7); - -@@ -4937,11 +4919,11 @@ - tsize_t t2p_write_pdf_xobject_icccs_dict(T2P* t2p, TIFF* output){ - - tsize_t written=0; -- char buffer[16]; -+ char buffer[32]; - int buflen=0; - - written += t2pWriteFile(output, (tdata_t) "/N ", 3); -- buflen=sprintf(buffer, "%u \n", t2p->tiff_samplesperpixel); -+ buflen=snprintf(buffer, sizeof(buffer), "%u \n", t2p->tiff_samplesperpixel); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) "/Alternate ", 11); - t2p->pdf_colorspace ^= T2P_CS_ICCBASED; -@@ -5006,7 +4988,7 @@ - tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output){ - - tsize_t written=0; -- char buffer[16]; -+ char buffer[32]; - int buflen=0; - - if(t2p->pdf_compression==T2P_COMPRESS_NONE){ -@@ -5021,41 +5003,33 @@ - written += t2pWriteFile(output, (tdata_t) "<< /K -1 ", 9); - if(tile==0){ - written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); -- buflen=sprintf(buffer, "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)t2p->tiff_width); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); -- buflen=sprintf(buffer, "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)t2p->tiff_length); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - } else { - if(t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)==0){ - written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); -- buflen=sprintf( -- buffer, -- "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilewidth); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - } else { - written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); -- buflen=sprintf( -- buffer, -- "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilewidth); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - } - if(t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)==0){ - written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); -- buflen=sprintf( -- buffer, -- "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilelength); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - } else { - written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); -- buflen=sprintf( -- buffer, -- "%lu", -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilelength); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - } -@@ -5082,21 +5056,17 @@ - if(t2p->pdf_compressionquality%100){ - written += t2pWriteFile(output, (tdata_t) "/DecodeParms ", 13); - written += t2pWriteFile(output, (tdata_t) "<< /Predictor ", 14); -- _TIFFmemset(buffer, 0x00, 16); -- buflen=sprintf(buffer, "%u", t2p->pdf_compressionquality%100); -+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_compressionquality%100); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " /Columns ", 10); -- _TIFFmemset(buffer, 0x00, 16); -- buflen = sprintf(buffer, "%lu", -+ buflen = snprintf(buffer, sizeof(buffer), "%lu", - (unsigned long)t2p->tiff_width); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " /Colors ", 9); -- _TIFFmemset(buffer, 0x00, 16); -- buflen=sprintf(buffer, "%u", t2p->tiff_samplesperpixel); -+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_samplesperpixel); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " /BitsPerComponent ", 19); -- _TIFFmemset(buffer, 0x00, 16); -- buflen=sprintf(buffer, "%u", t2p->tiff_bitspersample); -+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_bitspersample); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) ">>\n", 3); - } -@@ -5116,16 +5086,16 @@ - tsize_t t2p_write_pdf_xreftable(T2P* t2p, TIFF* output){ - - tsize_t written=0; -- char buffer[21]; -+ char buffer[64]; - int buflen=0; - uint32 i=0; - - written += t2pWriteFile(output, (tdata_t) "xref\n0 ", 7); -- buflen=sprintf(buffer, "%lu", (unsigned long)(t2p->pdf_xrefcount + 1)); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(t2p->pdf_xrefcount + 1)); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); - written += t2pWriteFile(output, (tdata_t) " \n0000000000 65535 f \n", 22); - for (i=0;ipdf_xrefcount;i++){ -- sprintf(buffer, "%.10lu 00000 n \n", -+ snprintf(buffer, sizeof(buffer), "%.10lu 00000 n \n", - (unsigned long)t2p->pdf_xrefoffsets[i]); - written += t2pWriteFile(output, (tdata_t) buffer, 20); - } -@@ -5149,17 +5119,14 @@ - snprintf(t2p->pdf_fileid + i, 9, "%.8X", rand()); - - written += t2pWriteFile(output, (tdata_t) "trailer\n<<\n/Size ", 17); -- buflen = sprintf(buffer, "%lu", (unsigned long)(t2p->pdf_xrefcount+1)); -+ buflen = snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(t2p->pdf_xrefcount+1)); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); -- _TIFFmemset(buffer, 0x00, 32); - written += t2pWriteFile(output, (tdata_t) "\n/Root ", 7); -- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_catalog); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_catalog); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); -- _TIFFmemset(buffer, 0x00, 32); - written += t2pWriteFile(output, (tdata_t) " 0 R \n/Info ", 12); -- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_info); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_info); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); -- _TIFFmemset(buffer, 0x00, 32); - written += t2pWriteFile(output, (tdata_t) " 0 R \n/ID[<", 11); - written += t2pWriteFile(output, (tdata_t) t2p->pdf_fileid, - sizeof(t2p->pdf_fileid) - 1); -@@ -5167,9 +5134,8 @@ - written += t2pWriteFile(output, (tdata_t) t2p->pdf_fileid, - sizeof(t2p->pdf_fileid) - 1); - written += t2pWriteFile(output, (tdata_t) ">]\n>>\nstartxref\n", 16); -- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_startxref); -+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_startxref); - written += t2pWriteFile(output, (tdata_t) buffer, buflen); -- _TIFFmemset(buffer, 0x00, 32); - written += t2pWriteFile(output, (tdata_t) "\n%%EOF\n", 7); - - return(written); -diff -Naur tiff-4.0.3.orig/tools/tiff2ps.c tiff-4.0.3/tools/tiff2ps.c ---- tiff-4.0.3.orig/tools/tiff2ps.c 2011-05-31 13:10:18.000000000 -0400 -+++ tiff-4.0.3/tools/tiff2ps.c 2013-05-02 12:02:42.789287990 -0400 -@@ -1781,8 +1781,8 @@ - imageOp = "imagemask"; - - (void)strcpy(im_x, "0"); -- (void)sprintf(im_y, "%lu", (long) h); -- (void)sprintf(im_h, "%lu", (long) h); -+ (void)snprintf(im_y, sizeof(im_y), "%lu", (long) h); -+ (void)snprintf(im_h, sizeof(im_h), "%lu", (long) h); - tile_width = w; - tile_height = h; - if (TIFFIsTiled(tif)) { -@@ -1803,7 +1803,7 @@ - } - if (tile_height < h) { - fputs("/im_y 0 def\n", fd); -- (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); -+ (void)snprintf(im_y, sizeof(im_y), "%lu im_y sub", (unsigned long) h); - } - } else { - repeat_count = tf_numberstrips; -@@ -1815,7 +1815,7 @@ - fprintf(fd, "/im_h %lu def\n", - (unsigned long) tile_height); - (void)strcpy(im_h, "im_h"); -- (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); -+ (void)snprintf(im_y, sizeof(im_y), "%lu im_y sub", (unsigned long) h); - } - } - -diff -Naur tiff-4.0.3.orig/tools/tiffcrop.c tiff-4.0.3/tools/tiffcrop.c ---- tiff-4.0.3.orig/tools/tiffcrop.c 2010-12-14 09:18:28.000000000 -0500 -+++ tiff-4.0.3/tools/tiffcrop.c 2013-05-02 12:02:42.791288005 -0400 -@@ -2077,7 +2077,7 @@ - return 1; - } - -- sprintf (filenum, "-%03d%s", findex, export_ext); -+ snprintf(filenum, sizeof(filenum), "-%03d%s", findex, export_ext); - filenum[14] = '\0'; - strncat (exportname, filenum, 15); - } -@@ -2230,8 +2230,8 @@ - - /* dump.infilename is guaranteed to be NUL termimated and have 20 bytes - fewer than PATH_MAX */ -- memset (temp_filename, '\0', PATH_MAX + 1); -- sprintf (temp_filename, "%s-read-%03d.%s", dump.infilename, dump_images, -+ snprintf(temp_filename, sizeof(temp_filename), "%s-read-%03d.%s", -+ dump.infilename, dump_images, - (dump.format == DUMP_TEXT) ? "txt" : "raw"); - if ((dump.infile = fopen(temp_filename, dump.mode)) == NULL) - { -@@ -2249,8 +2249,8 @@ - - /* dump.outfilename is guaranteed to be NUL termimated and have 20 bytes - fewer than PATH_MAX */ -- memset (temp_filename, '\0', PATH_MAX + 1); -- sprintf (temp_filename, "%s-write-%03d.%s", dump.outfilename, dump_images, -+ snprintf(temp_filename, sizeof(temp_filename), "%s-write-%03d.%s", -+ dump.outfilename, dump_images, - (dump.format == DUMP_TEXT) ? "txt" : "raw"); - if ((dump.outfile = fopen(temp_filename, dump.mode)) == NULL) - { -diff -Naur tiff-4.0.3.orig/tools/tiffdither.c tiff-4.0.3/tools/tiffdither.c ---- tiff-4.0.3.orig/tools/tiffdither.c 2010-03-10 13:56:50.000000000 -0500 -+++ tiff-4.0.3/tools/tiffdither.c 2013-05-02 12:02:42.792288013 -0400 -@@ -260,7 +260,7 @@ - TIFFSetField(out, TIFFTAG_FILLORDER, fillorder); - else - CopyField(TIFFTAG_FILLORDER, shortv); -- sprintf(thing, "Dithered B&W version of %s", argv[optind]); -+ snprintf(thing, sizeof(thing), "Dithered B&W version of %s", argv[optind]); - TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing); - CopyField(TIFFTAG_PHOTOMETRIC, shortv); - CopyField(TIFFTAG_ORIENTATION, shortv); diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-4231.patch b/mingw-w64-libtiff/libtiff-CVE-2013-4231.patch deleted file mode 100644 index 8ae1e12b25..0000000000 --- a/mingw-w64-libtiff/libtiff-CVE-2013-4231.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/tools/gif2tiff.c b/tools/gif2tiff.c -index 17f7a19..375b152 100644 ---- a/tools/gif2tiff.c -+++ b/tools/gif2tiff.c -@@ -333,6 +333,10 @@ readraster(void) - int status = 1; - - datasize = getc(infile); -+ -+ if (datasize > 12) -+ return 0; -+ - clear = 1 << datasize; - eoi = clear + 1; - avail = clear + 2; diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-4232.patch b/mingw-w64-libtiff/libtiff-CVE-2013-4232.patch deleted file mode 100644 index cec322f077..0000000000 --- a/mingw-w64-libtiff/libtiff-CVE-2013-4232.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/tools/tiff2pdf.c b/tools/tiff2pdf.c -index 92a1a3d..312a946 100644 ---- a/tools/tiff2pdf.c -+++ b/tools/tiff2pdf.c -@@ -2462,6 +2462,7 @@ tsize_t t2p_readwrite_pdf_image(T2P* t2p, TIFF* input, TIFF* output){ - TIFFFileName(input)); - t2p->t2p_error = T2P_ERR_ERROR; - _TIFFfree(buffer); -+ return(0); - } else { - buffer=samplebuffer; - t2p->tiff_datasize *= t2p->tiff_samplesperpixel; diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-4243.patch b/mingw-w64-libtiff/libtiff-CVE-2013-4243.patch deleted file mode 100644 index c365d992b9..0000000000 --- a/mingw-w64-libtiff/libtiff-CVE-2013-4243.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/tools/gif2tiff.c b/tools/gif2tiff.c -index 2731273..ca824e2 100644 ---- a/tools/gif2tiff.c -+++ b/tools/gif2tiff.c -@@ -280,6 +280,10 @@ readgifimage(char* mode) - fprintf(stderr, "no colormap present for image\n"); - return (0); - } -+ if (width == 0 || height == 0) { -+ fprintf(stderr, "Invalid value of width or height\n"); -+ return(0); -+ } - if ((raster = (unsigned char*) _TIFFmalloc(width*height+EXTRAFUDGE)) == NULL) { - fprintf(stderr, "not enough memory for image\n"); - return (0); -@@ -406,7 +410,11 @@ process(register int code, unsigned char** fill) - fprintf(stderr, "bad input: code=%d is larger than clear=%d\n",code, clear); - return 0; - } -- *(*fill)++ = suffix[code]; -+ if (*fill >= raster + width*height) { -+ fprintf(stderr, "raster full before eoi code\n"); -+ return 0; -+ } -+ *(*fill)++ = suffix[code]; - firstchar = oldcode = code; - return 1; - } -@@ -436,7 +444,11 @@ process(register int code, unsigned char** fill) - } - oldcode = incode; - do { -- *(*fill)++ = *--stackp; -+ if (*fill >= raster + width*height) { -+ fprintf(stderr, "raster full before eoi code\n"); -+ return 0; -+ } -+ *(*fill)++ = *--stackp; - } while (stackp > stack); - return 1; - } diff --git a/mingw-w64-libtiff/libtiff-CVE-2013-4244.patch b/mingw-w64-libtiff/libtiff-CVE-2013-4244.patch deleted file mode 100644 index 792e076981..0000000000 --- a/mingw-w64-libtiff/libtiff-CVE-2013-4244.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/tools/gif2tiff.c b/tools/gif2tiff.c -index 375b152..2731273 100644 ---- a/tools/gif2tiff.c -+++ b/tools/gif2tiff.c -@@ -402,6 +402,10 @@ process(register int code, unsigned char** fill) - } - - if (oldcode == -1) { -+ if (code >= clear) { -+ fprintf(stderr, "bad input: code=%d is larger than clear=%d\n",code, clear); -+ return 0; -+ } - *(*fill)++ = suffix[code]; - firstchar = oldcode = code; - return 1; diff --git a/mingw-w64-libtiff/libtiff-jpeg-test.patch b/mingw-w64-libtiff/libtiff-jpeg-test.patch deleted file mode 100644 index 92cff7ea4e..0000000000 --- a/mingw-w64-libtiff/libtiff-jpeg-test.patch +++ /dev/null @@ -1,122 +0,0 @@ -Back-port upstream patch to avoid assuming quite so much about what libjpeg -will return. Needed because libjpeg-turbo with the jpeg8 API broke the -expectations of the previous coding. - - -diff -Naur tiff-4.0.3.orig/test/raw_decode.c tiff-4.0.3/test/raw_decode.c ---- tiff-4.0.3.orig/test/raw_decode.c 2012-07-06 13:05:16.000000000 -0400 -+++ tiff-4.0.3/test/raw_decode.c 2012-12-19 13:04:37.609738276 -0500 -@@ -71,33 +71,54 @@ - return 1; - } - --static int check_rgb_pixel( int pixel, int red, int green, int blue, unsigned char *buffer ) { -+static int check_rgb_pixel( int pixel, -+ int min_red, int max_red, -+ int min_green, int max_green, -+ int min_blue, int max_blue, -+ unsigned char *buffer ) { - unsigned char *rgb = buffer + 3 * pixel; - -- if( rgb[0] == red && rgb[1] == green && rgb[2] == blue ) { -+ if( rgb[0] >= min_red && rgb[0] <= max_red && -+ rgb[1] >= min_green && rgb[1] <= max_green && -+ rgb[2] >= min_blue && rgb[2] <= max_blue ) { - return 0; - } - - fprintf( stderr, "Pixel %d did not match expected results.\n", pixel ); -- fprintf( stderr, "Expect: %3d %3d %3d\n", red, green, blue ); -- fprintf( stderr, " Got: %3d %3d %3d\n", rgb[0], rgb[1], rgb[2] ); -+ fprintf( stderr, "Got R=%d (expected %d..%d), G=%d (expected %d..%d), B=%d (expected %d..%d)\n", -+ rgb[0], min_red, max_red, -+ rgb[1], min_green, max_green, -+ rgb[2], min_blue, max_blue ); - return 1; - } - --static int check_rgba_pixel( int pixel, int red, int green, int blue, int alpha, uint32 *buffer ) { -+static int check_rgba_pixel( int pixel, -+ int min_red, int max_red, -+ int min_green, int max_green, -+ int min_blue, int max_blue, -+ int min_alpha, int max_alpha, -+ uint32 *buffer ) { - /* RGBA images are upside down - adjust for normal ordering */ - int adjusted_pixel = pixel % 128 + (127 - (pixel/128)) * 128; - uint32 rgba = buffer[adjusted_pixel]; - -- if( TIFFGetR(rgba) == (uint32) red && TIFFGetG(rgba) == (uint32) green && -- TIFFGetB(rgba) == (uint32) blue && TIFFGetA(rgba) == (uint32) alpha ) { -+ if( TIFFGetR(rgba) >= (uint32) min_red && -+ TIFFGetR(rgba) <= (uint32) max_red && -+ TIFFGetG(rgba) >= (uint32) min_green && -+ TIFFGetG(rgba) <= (uint32) max_green && -+ TIFFGetB(rgba) >= (uint32) min_blue && -+ TIFFGetB(rgba) <= (uint32) max_blue && -+ TIFFGetA(rgba) >= (uint32) min_alpha && -+ TIFFGetA(rgba) <= (uint32) max_alpha ) { - return 0; - } - - fprintf( stderr, "Pixel %d did not match expected results.\n", pixel ); -- fprintf( stderr, "Expect: %3d %3d %3d %3d\n", red, green, blue, alpha ); -- fprintf( stderr, " Got: %3d %3d %3d %3d\n", -- TIFFGetR(rgba), TIFFGetG(rgba), TIFFGetB(rgba), TIFFGetA(rgba) ); -+ fprintf( stderr, "Got R=%d (expected %d..%d), G=%d (expected %d..%d), B=%d (expected %d..%d), A=%d (expected %d..%d)\n", -+ TIFFGetR(rgba), min_red, max_red, -+ TIFFGetG(rgba), min_green, max_green, -+ TIFFGetB(rgba), min_blue, max_blue, -+ TIFFGetA(rgba), min_alpha, max_alpha ); - return 1; - } - -@@ -191,15 +212,17 @@ - return 1; - } - --#if JPEG_LIB_VERSION >= 70 -- pixel_status |= check_rgb_pixel( 0, 18, 0, 41, buffer ); -- pixel_status |= check_rgb_pixel( 64, 0, 0, 0, buffer ); -- pixel_status |= check_rgb_pixel( 512, 5, 34, 196, buffer ); --#else -- pixel_status |= check_rgb_pixel( 0, 15, 0, 18, buffer ); -- pixel_status |= check_rgb_pixel( 64, 0, 0, 2, buffer ); -- pixel_status |= check_rgb_pixel( 512, 6, 36, 182, buffer ); --#endif -+ /* -+ * JPEG decoding is inherently inexact, so we can't test for exact -+ * pixel values. (Well, if we knew exactly which libjpeg version -+ * we were using, and with what settings, we could expect specific -+ * values ... but it's not worth the trouble to keep track of.) -+ * Hence, use ranges of expected values. The ranges may need to be -+ * widened over time as more versions of libjpeg appear. -+ */ -+ pixel_status |= check_rgb_pixel( 0, 15, 18, 0, 0, 18, 41, buffer ); -+ pixel_status |= check_rgb_pixel( 64, 0, 0, 0, 0, 0, 2, buffer ); -+ pixel_status |= check_rgb_pixel( 512, 5, 6, 34, 36, 182, 196, buffer ); - - free( buffer ); - -@@ -224,15 +247,12 @@ - * accomplish it from the YCbCr subsampled buffer ourselves in which - * case the results may be subtly different but similar. - */ --#if JPEG_LIB_VERSION >= 70 -- pixel_status |= check_rgba_pixel( 0, 18, 0, 41, 255, rgba_buffer ); -- pixel_status |= check_rgba_pixel( 64, 0, 0, 0, 255, rgba_buffer ); -- pixel_status |= check_rgba_pixel( 512, 5, 34, 196, 255, rgba_buffer ); --#else -- pixel_status |= check_rgba_pixel( 0, 15, 0, 18, 255, rgba_buffer ); -- pixel_status |= check_rgba_pixel( 64, 0, 0, 2, 255, rgba_buffer ); -- pixel_status |= check_rgba_pixel( 512, 6, 36, 182, 255, rgba_buffer ); --#endif -+ pixel_status |= check_rgba_pixel( 0, 15, 18, 0, 0, 18, 41, 255, 255, -+ rgba_buffer ); -+ pixel_status |= check_rgba_pixel( 64, 0, 0, 0, 0, 0, 2, 255, 255, -+ rgba_buffer ); -+ pixel_status |= check_rgba_pixel( 512, 5, 6, 34, 36, 182, 196, 255, 255, -+ rgba_buffer ); - - free( rgba_buffer ); - TIFFClose(tif); diff --git a/mingw-w64-libtiff/libtiff-make-check.patch b/mingw-w64-libtiff/libtiff-make-check.patch deleted file mode 100644 index 46796d4218..0000000000 --- a/mingw-w64-libtiff/libtiff-make-check.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/html/man/Makefile.am b/html/man/Makefile.am -index ca222de..c7421ac 100644 ---- a/html/man/Makefile.am -+++ b/html/man/Makefile.am -@@ -85,7 +85,6 @@ docfiles = \ - ras2tiff.1.html \ - raw2tiff.1.html \ - rgb2ycbcr.1.html \ -- sgi2tiff.1.html \ - thumbnail.1.html \ - tiff2bw.1.html \ - tiff2pdf.1.html \ -@@ -96,12 +95,10 @@ docfiles = \ - tiffcrop.1.html \ - tiffdither.1.html \ - tiffdump.1.html \ -- tiffgt.1.html \ - tiffinfo.1.html \ - tiffmedian.1.html \ - tiffset.1.html \ -- tiffsplit.1.html \ -- tiffsv.1.html -+ tiffsplit.1.html - - dist_doc_DATA = $(indexfile) $(docfiles) - diff --git a/mingw-w64-libtiff/libtiff-manpage-update.patch b/mingw-w64-libtiff/libtiff-manpage-update.patch deleted file mode 100644 index 12d2aeff93..0000000000 --- a/mingw-w64-libtiff/libtiff-manpage-update.patch +++ /dev/null @@ -1,119 +0,0 @@ -diff --git a/man/tiff2ps.1 b/man/tiff2ps.1 -index c3a9bac..a826ad7 100644 ---- a/man/tiff2ps.1 -+++ b/man/tiff2ps.1 -@@ -100,6 +100,9 @@ Generate \*(Ps Level 2. - Generate \*(Ps Level 3. It basically allows one to use the /flateDecode - filter for ZIP compressed TIFF images. - .TP -+.B \-8 -+Disable use of ASCII85 encoding with PostScript Level 2/3 -+.TP - .B \-a - Generate output for all IFDs (pages) in the input file. - .TP -@@ -123,6 +126,9 @@ directory to the specified directory number. - This option is useful for selecting individual pages in a - multi-page (e.g. facsimile) file. - .TP -+.B \-D -+Enable duplex printing (two pages per sheet of paper) -+.TP - .B \-e - Force the generation of Encapsulated \*(Ps (implies - .BR \-z ). -@@ -185,6 +191,10 @@ like which are hidden using the - .I SubIFD - tag. - .TP -+.B \-O -+Write PostScript to specified file instead of standard output -+Set the initial -+.TP - .B \-p - Force the generation of (non-Encapsulated) \*(Ps. - .TP -@@ -188,6 +188,9 @@ Set the initial - .B \-p - Force the generation of (non-Encapsulated) \*(Ps. - .TP -+.B \-P -+Set optional PageOrientation DSC comment to Landscape or Portrait. -+.TP - .B \-r 90|180|270|auto - Rotate image by 90, 180, 270 degrees or auto. Auto picks the best - fit for the image on the specified paper size (eg portrait -@@ -197,6 +207,12 @@ counterclockwise. Auto rotates 90 degrees ccw to produce landscape. - .B \-s - Generate output for a single IFD (page) in the input file. - .TP -+.B \-t -+Specify the document title string -+.TP -+.B \-T -+Print pages for top edge binding -+.TP - .B \-w - Specify the horizontal size of the printed area (in inches). - .TP -diff --git a/man/tiffcp.1 b/man/tiffcp.1 -index 5fdcc47..bf50130 100644 ---- a/man/tiffcp.1 -+++ b/man/tiffcp.1 -@@ -60,6 +60,9 @@ in a file, but it is explicitly intended to not alter or convert - the image data content in any way. - .SH OPTIONS - .TP -+.BI \-a -+Append to an existing output file instead of overwriting it -+.TP - .BI \-b " image" - subtract the following monochrome image from all others - processed. This can be used to remove a noise bias -@@ -179,6 +182,9 @@ overwritten and not when it is appended to. - .B \-M - Suppress the use of memory-mapped files when reading images. - .TP -+.BI \-o " offset" -+Set initial directory offset -+.TP - .B \-p - Specify the planar configuration to use in writing image data - that has one 8-bit sample per pixel. -@@ -228,6 +228,9 @@ appear in a tile. - .B \-x - Force the output file to be written with PAGENUMBER value in sequence. - .TP -+.B \-8 -+Write BigTIFF instead of classic TIFF format. -+.TP - .BI \-,= character - substitute - .I character -diff --git a/tools/tiffcp.c b/tools/tiffcp.c -index 0f81b19..8c696db 100644 ---- a/tools/tiffcp.c -+++ b/tools/tiffcp.c -@@ -409,6 +409,10 @@ char* stuff[] = { - " -s write output in strips", - " -t write output in tiles", - " -8 write BigTIFF instead of default ClassicTIFF", -+" -B write big-endian instead of native byte order", -+" -L write little-endian instead of native byte order", -+" -M disable use of memory-mapped files", -+" -C disable strip chopping", - " -i ignore read errors", - " -b file[,#] bias (dark) monochrome image to be subtracted from all others", - " -,=% use % rather than , to separate image #'s (per Note below)", -diff --git a/man/tiff2ps.1 b/man/tiff2ps.1 -index b4a304a..0d672b0 100644 ---- a/man/tiff2ps.1 -+++ b/man/tiff2ps.1 -@@ -149,6 +149,7 @@ be split in several pages. Options - and - .B \-W - are mutually exclusive. -+.TP - .B \-i - Enable/disable pixel interpolation. This option requires a - single numeric value: zero to disable pixel interpolation and diff --git a/mingw-w64-libtiff/libtiff-printdir-width.patch b/mingw-w64-libtiff/libtiff-printdir-width.patch deleted file mode 100644 index f41f027da3..0000000000 --- a/mingw-w64-libtiff/libtiff-printdir-width.patch +++ /dev/null @@ -1,20 +0,0 @@ -Back-patch upstream patch of 2012-12-12 ("Fix TIFF_VARIABLE/TIFF_VARIABLE2 -confusion in TIFFPrintDirectory"). - - -diff -Naur tiff-4.0.3.orig/libtiff/tif_print.c tiff-4.0.3/libtiff/tif_print.c ---- tiff-4.0.3.orig/libtiff/tif_print.c 2012-08-19 12:56:35.000000000 -0400 -+++ tiff-4.0.3/libtiff/tif_print.c 2012-12-12 16:53:05.355927641 -0500 -@@ -582,10 +582,10 @@ - continue; - - if(fip->field_passcount) { -- if (fip->field_readcount == TIFF_VARIABLE ) { -+ if (fip->field_readcount == TIFF_VARIABLE2 ) { - if(TIFFGetField(tif, tag, &value_count, &raw_data) != 1) - continue; -- } else if (fip->field_readcount == TIFF_VARIABLE2 ) { -+ } else if (fip->field_readcount == TIFF_VARIABLE ) { - uint16 small_value_count; - if(TIFFGetField(tif, tag, &small_value_count, &raw_data) != 1) - continue; From 4c9a3dc289fd40f8a3e995da64c88502c1185933 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 22 Jun 2015 21:59:01 +0300 Subject: [PATCH 1193/2060] pango: Update to 1.37.1 --- mingw-w64-pango/PKGBUILD | 33 ++++++++++++---------------- mingw-w64-pango/pango-i686.install | 14 ------------ mingw-w64-pango/pango-x86_64.install | 14 ------------ 3 files changed, 14 insertions(+), 47 deletions(-) delete mode 100644 mingw-w64-pango/pango-i686.install delete mode 100644 mingw-w64-pango/pango-x86_64.install diff --git a/mingw-w64-pango/PKGBUILD b/mingw-w64-pango/PKGBUILD index e507a55b05..9822bfb2f8 100644 --- a/mingw-w64-pango/PKGBUILD +++ b/mingw-w64-pango/PKGBUILD @@ -3,8 +3,8 @@ _realname=pango pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.36.8 -pkgrel=2 +pkgver=1.37.1 +pkgrel=1 pkgdesc="A library for layout and rendering of text (mingw-w64)" arch=('any') url="http://www.pango.org" @@ -21,22 +21,21 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-harfbuzz") + "${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-harfbuzz") options=('staticlibs' 'strip' 'emptydirs') -install=${_realname}-${CARCH}.install -source=("http://ftp.gnome.org/pub/gnome/sources/pango/${pkgver:0:4}/pango-${pkgver}.tar.xz" +source=("http://ftp.gnome.org/pub/gnome/sources/pango/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz" 0001-no-unconditional-xft-please.all.patch 0002-msvc-is-impotent-but-not.mingw.patch) -sha256sums=('18dbb51b8ae12bae0ab7a958e7cf3317c9acfc8a1e1103ec2f147164a0fc2d07' +sha256sums=('6faad8b5c347cccd454dc9ac9365f921c430e5f79787cfb2f51d5709f4394e3c' 'a673ce807b29abe4b0fedf5b17e154986d675cec3e001c4235067b01515c2e4d' '240d21474157c0deabc2660593ac0414565ddf30c304b08b74a09072c910b34d') prepare() { - cd "$srcdir/pango-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-no-unconditional-xft-please.all.patch patch -p1 -i ${srcdir}/0002-msvc-is-impotent-but-not.mingw.patch @@ -45,14 +44,12 @@ prepare() { } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --with-included-modules=yes \ - --with-dynamic-modules=no \ --enable-introspection \ --disable-debug \ --enable-shared \ @@ -62,9 +59,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install - install -m755 -d "${pkgdir}${MINGW_PREFIX}/etc/pango" - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + make DESTDIR="${pkgdir}" install # License install -Dm644 "${srcdir}/${_realname}-${pkgver}/README" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/README" diff --git a/mingw-w64-pango/pango-i686.install b/mingw-w64-pango/pango-i686.install deleted file mode 100644 index 5d0eeaca43..0000000000 --- a/mingw-w64-pango/pango-i686.install +++ /dev/null @@ -1,14 +0,0 @@ -post_install() { - mingw32/bin/pango-querymodules > mingw32/etc/pango/pango.modules -} - -post_upgrade() { - if [ -f mingw32/etc/pango/pango.modules ]; then - rm mingw32/etc/pango/pango.modules - fi - post_install -} - -pre_remove() { - rm mingw32/etc/pango/pango.modules -} diff --git a/mingw-w64-pango/pango-x86_64.install b/mingw-w64-pango/pango-x86_64.install deleted file mode 100644 index d050c498a0..0000000000 --- a/mingw-w64-pango/pango-x86_64.install +++ /dev/null @@ -1,14 +0,0 @@ -post_install() { - mingw64/bin/pango-querymodules > mingw64/etc/pango/pango.modules -} - -post_upgrade() { - if [ -f mingw64/etc/pango/pango.modules ]; then - rm mingw64/etc/pango/pango.modules - fi - post_install -} - -pre_remove() { - rm mingw64/etc/pango/pango.modules -} From 871822e860d0d4dfe6ebdc0cf42295301e37362a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 22 Jun 2015 21:59:46 +0300 Subject: [PATCH 1194/2060] armadillo: Update to 5.200.2 --- mingw-w64-armadillo/PKGBUILD | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index 0074993d3e..5ae8ec571a 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -2,8 +2,8 @@ _realname=armadillo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.100.2 -pkgrel=2 +pkgver=5.200.2 +pkgrel=1 pkgdesc="C++ linear algebra library (mingw-w64)" arch=('any') url="http://arma.sourceforge.net/" @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" install=${_realname}-${CARCH}.install source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz 0001-mingw-config-fix.patch) -md5sums=('fe57525a4fce94799d1556eb06339bbd' +md5sums=('ef57ba4c473a3b67c672441a7face09e' '5ce663ba53e15ee85fcd7a0b01006672') prepare() { @@ -24,10 +24,9 @@ prepare() { } build() { - [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - # PATH=${MINGW_PREFIX}/bin \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ @@ -39,18 +38,19 @@ build() { } package() { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make install - pushd "${pkgdir}${MINGW_PREFIX}" > /dev/null - local _INSTALL_PREFIX_WIN="$(cygpath -m "${pkgdir}${MINGW_PREFIX}")" - local _MINGW_PREFIX_WIN="$(cygpath -m "${MINGW_PREFIX}")" + local _INSTALL_PREFIX_WIN="$(cygpath -am "${pkgdir}${MINGW_PREFIX}")" + local _MINGW_PREFIX_WIN="$(cygpath -am "${MINGW_PREFIX}")" + sed -s -e "s|${_INSTALL_PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -e "s|${_MINGW_PREFIX_WIN}|${MINGW_PREFIX}|g" -i "share/Armadillo/CMake/"*.cmake - install -d "share/doc/${_realname}-${pkgver}" + -e "s|${_MINGW_PREFIX_WIN}|${MINGW_PREFIX}|g" -i "${pkgdir}${MINGW_PREFIX}/share/Armadillo/CMake/"*.cmake + + install -d ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname} install -m644 "${srcdir}/${_realname}-${pkgver}/"*{.html,.png,.pdf,README.txt} \ - "share/doc/${_realname}-${pkgver}/" + "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" \ - "share/licenses/${_realname}/LICENSE.txt" - popd > /dev/null + "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE.txt" } From 1a04c2296b150a8a242738c7c43996336ae0794f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 22 Jun 2015 22:16:53 +0300 Subject: [PATCH 1195/2060] exiv2: Update to 0.25 --- mingw-w64-exiv2/PKGBUILD | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/mingw-w64-exiv2/PKGBUILD b/mingw-w64-exiv2/PKGBUILD index 1f7e93bd70..f4794aae29 100644 --- a/mingw-w64-exiv2/PKGBUILD +++ b/mingw-w64-exiv2/PKGBUILD @@ -3,8 +3,8 @@ _realname=exiv2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.24 -pkgrel=4 +pkgver=0.25 +pkgrel=1 pkgdesc="Exif and Iptc metadata manipulation library and tools (mingw-w64)" arch=('any') url="http://exiv2.org" @@ -18,7 +18,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-expat" options=('strip' 'staticlibs') source=("http://www.exiv2.org/${_realname}-${pkgver}.tar.gz" 0001-fix-cr-for-awk-in-configure.mingw.patch) -sha1sums=('2f19538e54f8c21c180fa96d17677b7cff7dc1bb' +sha1sums=('adb8ffe63916e7c27bda9792e690d1330ec7273d' '4c9dca6f5517ba5c857162441a28edd68b4bdeb5') prepare() { @@ -29,8 +29,11 @@ prepare() { build() { export lt_cv_deplibs_check_method='pass_all' CPPFLAGS+=" -D_FILE_OFFSET_BITS=64" - cp -r "${srcdir}"/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" + + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf ${srcdir}/${_realname}-${pkgver} ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -45,12 +48,11 @@ build() { s|MCBIN = $(MCMAIN:.cpp=)|MCBIN = $(MCMAIN:.cpp=$(EXEEXT))|; s|-o $@ $(LIBRARY) $@.o|-o $@ $(LIBRARY) $(BINOBJ)| s|$(BINARY): %: %.o lib|$(BINARY): lib $(BINOBJ)|' src/Makefile - } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make || true - cp src/.libs/localtime.o src/ + #make || true + #cp src/.libs/localtime.o src/ make DESTDIR="$pkgdir" install } From b415f1b417d895bc77e61c4e349a4487c668e450 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 22 Jun 2015 22:25:16 +0300 Subject: [PATCH 1196/2060] xvidcore: Update to 1.3.4 --- mingw-w64-xvidcore/PKGBUILD | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mingw-w64-xvidcore/PKGBUILD b/mingw-w64-xvidcore/PKGBUILD index f7a3dd12bd..de5d166600 100644 --- a/mingw-w64-xvidcore/PKGBUILD +++ b/mingw-w64-xvidcore/PKGBUILD @@ -1,25 +1,28 @@ # Maintainer: Alexey Pavlov _realname=xvidcore - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.3 +pkgver=1.3.4 pkgrel=1 pkgdesc="XviD is an open source MPEG-4 video codec (mingw-w64)" arch=('any') license=('GPL') url="http://www.xvid.org/" options=('strip' '!libtool' 'staticlibs') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-yasm") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-yasm") source=(http://downloads.xvid.org/downloads/${_realname}-${pkgver}.tar.bz2) -md5sums=('f0a77572ac4694038e8519726b2883d9') +md5sums=('5e68b84e3286b7bbaa95ddc34f0fcace') prepare() { cd ${srcdir}/${_realname} } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -rf ${srcdir}/${_realname} ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST}/build/generic ./configure \ --prefix=${MINGW_PREFIX} \ From 08ccdd7d59d69e7c837be5d9dd2c24cd8cd941f0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 23 Jun 2015 11:00:10 +0300 Subject: [PATCH 1197/2060] drmingw-git: Improve generating import libraries for 32-bit. --- mingw-w64-drmingw-git/PKGBUILD | 6 +- mingw-w64-drmingw-git/import-libs.patch | 513 +++++++++++++++++++++++- 2 files changed, 502 insertions(+), 17 deletions(-) diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index 314a06bace..187846806e 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -3,8 +3,8 @@ _realname=drmingw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r443.9c71cf6 -pkgrel=3 +pkgver=r445.e937a46 +pkgrel=1 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') license=(LGPL2.1) @@ -18,7 +18,7 @@ source=("${_realname}"::"git+https://github.com/jrfonseca/drmingw.git" install-files.patch) options=(!strip staticlibs) md5sums=('SKIP' - 'a29b4b652caa2dc4fd039c82bb7f6f39' + 'f0bdef5500486400e127257985ba9319' '7a8b0bd82b4c80ee1c923bab7bd552d0') pkgver() { diff --git a/mingw-w64-drmingw-git/import-libs.patch b/mingw-w64-drmingw-git/import-libs.patch index 112b12b157..0c4c7d2c95 100644 --- a/mingw-w64-drmingw-git/import-libs.patch +++ b/mingw-w64-drmingw-git/import-libs.patch @@ -40,23 +40,25 @@ +) --- /dev/null 2015-06-21 14:20:14.000000000 +0300 +++ drmingw/src/exchndl/exchndl32.def 2015-06-21 14:18:57.437200000 +0300 -@@ -0,0 +1,3 @@ +@@ -0,0 +1,5 @@ +EXPORTS + ExcHndlInit@0 ++ ExcHndlInit = ExcHndlInit@0 + ExcHndlSetLogFileNameA@4 ++ ExcHndlSetLogFileNameA = ExcHndlSetLogFileNameA@4 --- drmingw/src/mgwhelp/CMakeLists.txt.orig 2015-06-20 21:56:28.342000000 +0300 +++ drmingw/src/mgwhelp/CMakeLists.txt 2015-06-20 22:08:56.832200000 +0300 @@ -1,7 +1,9 @@ if (CMAKE_SIZEOF_VOID_P EQUAL 4) set (MGWHELP_DEF mgwhelp32.def) -+ set (DBGHELP_DEF dbghelp.def) ++ set (DBGHELP_DEF dbghelp32.def) else () set (MGWHELP_DEF mgwhelp64.def) + set (DBGHELP_DEF dbghelp64.def) endif () add_library (mgwhelp SHARED -@@ -23,7 +23,11 @@ +@@ -23,27 +25,13 @@ LINKER_LANGUAGE CXX # for __cxa_demangle ) @@ -67,19 +69,29 @@ + ARCHIVE DESTINATION lib +) - if (CMAKE_SIZEOF_VOID_P EQUAL 4) - # XXX: We need to use a custom import lib to avoid link failures -@@ -42,8 +44,8 @@ - set (MGWHELP_IMPLIB ${CMAKE_CURRENT_BINARY_DIR}/libmgwhelp.a) - add_custom_command ( - OUTPUT ${MGWHELP_IMPLIB} +-if (CMAKE_SIZEOF_VOID_P EQUAL 4) +- # XXX: We need to use a custom import lib to avoid link failures +- get_filename_component (GCC_NAME ${CMAKE_C_COMPILER} NAME) +- string (REPLACE gcc dlltool DLLTOOL_NAME ${GCC_NAME}) +- find_program (DLLTOOL NAMES ${DLLTOOL_NAME}) +- if (DLLTOOL) +- message (STATUS "Found dlltool: ${DLLTOOL}") +- else () +- message (FATAL_ERROR "dlltool not found") +- endif () +- set (MGWHELP_IMPLIB ${CMAKE_CURRENT_BINARY_DIR}/libmgwhelp.a) +- add_custom_command ( +- OUTPUT ${MGWHELP_IMPLIB} - COMMAND ${DLLTOOL} --output-lib ${MGWHELP_IMPLIB} --dllname mgwhelp.dll --kill-at --input-def=${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.def - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.def -+ COMMAND ${DLLTOOL} --output-lib ${MGWHELP_IMPLIB} --dllname mgwhelp.dll --input-def=${CMAKE_CURRENT_SOURCE_DIR}/${DBGHELP_DEF} -+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBGHELP_DEF} - ) - else () - set (MGWHELP_IMPLIB mgwhelp) +- ) +-else () +- set (MGWHELP_IMPLIB mgwhelp) +-endif () ++set (MGWHELP_IMPLIB mgwhelp) + set (MGWHELP_IMPLIB ${MGWHELP_IMPLIB} PARENT_SCOPE) + + add_custom_target (mgwhelp_implib DEPENDS mgwhelp ${MGWHELP_IMPLIB}) --- /dev/null 2015-06-22 09:25:15.000000000 +0300 +++ drmingw/src/mgwhelp/dbghelp64.def 2015-06-22 09:24:34.433800000 +0300 @@ -0,0 +1,109 @@ @@ -192,3 +204,476 @@ + UnDecorateSymbolName + UnmapDebugInformation + WinDbgExtensionDllInit +--- drmingw/src/mgwhelp/dbghelp.def 2015-06-23 09:28:20.819800000 +0300 ++++ /dev/null 2015-06-23 09:28:55.000000000 +0300 +@@ -1,109 +0,0 @@ +-LIBRARY dbghelp.dll +- +-EXPORTS +- EnumDirTree@24 +- EnumDirTreeW@24 +- EnumerateLoadedModules@12 +- EnumerateLoadedModules64@12 +- EnumerateLoadedModulesW64@12 +- ExtensionApiVersion@0 +- FindDebugInfoFile@12 +- FindDebugInfoFileEx@20 +- FindExecutableImage@12 +- FindExecutableImageEx@20 +- FindExecutableImageExW@20 +- GetTimestampForLoadedLibrary@4 +- ImageDirectoryEntryToData@16 +- ImageDirectoryEntryToDataEx@20 +- ImageNtHeader@4 +- ImageRvaToSection@12 +- ImageRvaToVa@16 +- ImagehlpApiVersion@0 +- ImagehlpApiVersionEx@4 +- MakeSureDirectoryPathExists@4 +- MapDebugInformation@16 +- MiniDumpReadDumpStream@20 +- MiniDumpWriteDump@28 +- SearchTreeForFile@12 +- SearchTreeForFileW@12 +- StackWalk@36 +- StackWalk64@36 +- SymAddSymbol@32 +- SymAddSymbolW@32 +- SymCleanup@4 +- SymEnumLines@28 +- SymEnumSourceFiles@24 +- SymEnumSymbols@24 +- SymEnumSymbolsW@24 +- SymEnumTypes@20 +- SymEnumTypesW@20 +- SymEnumerateModules@12 +- SymEnumerateModules64@12 +- SymEnumerateModulesW64@12 +- SymEnumerateSymbols@16 +- SymEnumerateSymbols64@20 +- SymFindFileInPath@40 +- SymFindFileInPathW@40 +- SymFromAddr@20 +- SymFromAddrW@20 +- SymFromName@12 +- SymFunctionTableAccess@8 +- SymFunctionTableAccess64@12 +- SymGetLineFromAddr@16 +- SymGetLineFromAddr64@20 +- SymGetLineFromAddrW64@20 +- SymGetLineNext@8 +- SymGetLineNext64@8 +- SymGetLinePrev@8 +- SymGetLinePrev64@8 +- SymGetModuleBase@8 +- SymGetModuleBase64@12 +- SymGetModuleInfo@12 +- SymGetModuleInfo64@16 +- SymGetModuleInfoW@12 +- SymGetModuleInfoW64@16 +- SymGetOptions@0 +- SymGetSearchPath@12 +- SymGetSearchPathW@12 +- SymGetSourceFileToken@24 +- SymGetSourceFileTokenW@24 +- SymGetSymFromAddr@16 +- SymGetSymFromAddr64@20 +- SymGetSymFromName@12 +- SymGetSymFromName64@12 +- SymGetSymNext@8 +- SymGetSymNext64@8 +- SymGetSymPrev@8 +- SymGetSymPrev64@8 +- SymGetTypeFromName@20 +- SymGetTypeInfo@24 +- SymInitialize@12 +- SymInitializeW@12 +- SymLoadModule@24 +- SymLoadModule64@28 +- SymLoadModuleEx@36 +- SymLoadModuleExW@36 +- SymMatchFileName@16 +- SymMatchFileNameW@16 +- SymMatchString@12 +- SymRefreshModuleList@4 +- SymRegisterCallback@12 +- SymRegisterCallback64@16 +- SymRegisterCallbackW64@16 +- SymRegisterFunctionEntryCallback@12 +- SymRegisterFunctionEntryCallback64@16 +- SymSearch@44 +- SymSearchW@44 +- SymSetContext@12 +- SymSetOptions@4 +- SymSetParentWindow@4 +- SymSetScopeFromAddr@12 +- SymSetSearchPath@8 +- SymSetSearchPathW@8 +- SymUnDName@12 +- SymUnDName64@12 +- SymUnloadModule@8 +- SymUnloadModule64@12 +- UnDecorateSymbolName@16 +- UnmapDebugInformation@4 +- WinDbgExtensionDllInit@12 +--- /dev/null 2015-06-23 09:37:49.000000000 +0300 ++++ drmingw/src/mgwhelp/dbghelp32.def 2015-06-23 09:37:32.394200000 +0300 +@@ -0,0 +1,216 @@ ++LIBRARY dbghelp.dll ++ ++EXPORTS ++ EnumDirTree@24 ++ EnumDirTreeW@24 ++ EnumerateLoadedModules@12 ++ EnumerateLoadedModules64@12 ++ EnumerateLoadedModulesW64@12 ++ ExtensionApiVersion@0 ++ FindDebugInfoFile@12 ++ FindDebugInfoFileEx@20 ++ FindExecutableImage@12 ++ FindExecutableImageEx@20 ++ FindExecutableImageExW@20 ++ GetTimestampForLoadedLibrary@4 ++ ImageDirectoryEntryToData@16 ++ ImageDirectoryEntryToDataEx@20 ++ ImageNtHeader@4 ++ ImageRvaToSection@12 ++ ImageRvaToVa@16 ++ ImagehlpApiVersion@0 ++ ImagehlpApiVersionEx@4 ++ MakeSureDirectoryPathExists@4 ++ MapDebugInformation@16 ++ MiniDumpReadDumpStream@20 ++ MiniDumpWriteDump@28 ++ SearchTreeForFile@12 ++ SearchTreeForFileW@12 ++ StackWalk@36 ++ StackWalk64@36 ++ SymAddSymbol@32 ++ SymAddSymbolW@32 ++ SymCleanup@4 ++ SymEnumLines@28 ++ SymEnumSourceFiles@24 ++ SymEnumSymbols@24 ++ SymEnumSymbolsW@24 ++ SymEnumTypes@20 ++ SymEnumTypesW@20 ++ SymEnumerateModules@12 ++ SymEnumerateModules64@12 ++ SymEnumerateModulesW64@12 ++ SymEnumerateSymbols@16 ++ SymEnumerateSymbols64@20 ++ SymFindFileInPath@40 ++ SymFindFileInPathW@40 ++ SymFromAddr@20 ++ SymFromAddrW@20 ++ SymFromName@12 ++ SymFunctionTableAccess@8 ++ SymFunctionTableAccess64@12 ++ SymGetLineFromAddr@16 ++ SymGetLineFromAddr64@20 ++ SymGetLineFromAddrW64@20 ++ SymGetLineNext@8 ++ SymGetLineNext64@8 ++ SymGetLinePrev@8 ++ SymGetLinePrev64@8 ++ SymGetModuleBase@8 ++ SymGetModuleBase64@12 ++ SymGetModuleInfo@12 ++ SymGetModuleInfo64@16 ++ SymGetModuleInfoW@12 ++ SymGetModuleInfoW64@16 ++ SymGetOptions@0 ++ SymGetSearchPath@12 ++ SymGetSearchPathW@12 ++ SymGetSourceFileToken@24 ++ SymGetSourceFileTokenW@24 ++ SymGetSymFromAddr@16 ++ SymGetSymFromAddr64@20 ++ SymGetSymFromName@12 ++ SymGetSymFromName64@12 ++ SymGetSymNext@8 ++ SymGetSymNext64@8 ++ SymGetSymPrev@8 ++ SymGetSymPrev64@8 ++ SymGetTypeFromName@20 ++ SymGetTypeInfo@24 ++ SymInitialize@12 ++ SymInitializeW@12 ++ SymLoadModule@24 ++ SymLoadModule64@28 ++ SymLoadModuleEx@36 ++ SymLoadModuleExW@36 ++ SymMatchFileName@16 ++ SymMatchFileNameW@16 ++ SymMatchString@12 ++ SymRefreshModuleList@4 ++ SymRegisterCallback@12 ++ SymRegisterCallback64@16 ++ SymRegisterCallbackW64@16 ++ SymRegisterFunctionEntryCallback@12 ++ SymRegisterFunctionEntryCallback64@16 ++ SymSearch@44 ++ SymSearchW@44 ++ SymSetContext@12 ++ SymSetOptions@4 ++ SymSetParentWindow@4 ++ SymSetScopeFromAddr@12 ++ SymSetSearchPath@8 ++ SymSetSearchPathW@8 ++ SymUnDName@12 ++ SymUnDName64@12 ++ SymUnloadModule@8 ++ SymUnloadModule64@12 ++ UnDecorateSymbolName@16 ++ UnmapDebugInformation@4 ++ WinDbgExtensionDllInit@12 ++ ++ EnumDirTree = EnumDirTree@24 ++ EnumDirTreeW = EnumDirTreeW@24 ++ EnumerateLoadedModules = EnumerateLoadedModules@12 ++ EnumerateLoadedModules64 = EnumerateLoadedModules64@12 ++ EnumerateLoadedModulesW64 = EnumerateLoadedModulesW64@12 ++ ExtensionApiVersion = ExtensionApiVersion@0 ++ FindDebugInfoFile = FindDebugInfoFile@12 ++ FindDebugInfoFileEx = FindDebugInfoFileEx@20 ++ FindExecutableImage = FindExecutableImage@12 ++ FindExecutableImageEx = FindExecutableImageEx@20 ++ FindExecutableImageExW = FindExecutableImageExW@20 ++ GetTimestampForLoadedLibrary = GetTimestampForLoadedLibrary@4 ++ ImageDirectoryEntryToData = ImageDirectoryEntryToData@16 ++ ImageDirectoryEntryToDataEx = ImageDirectoryEntryToDataEx@20 ++ ImageNtHeader = ImageNtHeader@4 ++ ImageRvaToSection = ImageRvaToSection@12 ++ ImageRvaToVa = ImageRvaToVa@16 ++ ImagehlpApiVersion = ImagehlpApiVersion@0 ++ ImagehlpApiVersionEx = ImagehlpApiVersionEx@4 ++ MakeSureDirectoryPathExists = MakeSureDirectoryPathExists@4 ++ MapDebugInformation = MapDebugInformation@16 ++ MiniDumpReadDumpStream = MiniDumpReadDumpStream@20 ++ MiniDumpWriteDump = MiniDumpWriteDump@28 ++ SearchTreeForFile = SearchTreeForFile@12 ++ SearchTreeForFileW = SearchTreeForFileW@12 ++ StackWalk = StackWalk@36 ++ StackWalk64 = StackWalk64@36 ++ SymAddSymbol = SymAddSymbol@32 ++ SymAddSymbolW = SymAddSymbolW@32 ++ SymCleanup = SymCleanup@4 ++ SymEnumLines = SymEnumLines@28 ++ SymEnumSourceFiles = SymEnumSourceFiles@24 ++ SymEnumSymbols = SymEnumSymbols@24 ++ SymEnumSymbolsW = SymEnumSymbolsW@24 ++ SymEnumTypes = SymEnumTypes@20 ++ SymEnumTypesW = SymEnumTypesW@20 ++ SymEnumerateModules = SymEnumerateModules@12 ++ SymEnumerateModules64 = SymEnumerateModules64@12 ++ SymEnumerateModulesW64 = SymEnumerateModulesW64@12 ++ SymEnumerateSymbols = SymEnumerateSymbols@16 ++ SymEnumerateSymbols64 = SymEnumerateSymbols64@20 ++ SymFindFileInPath = SymFindFileInPath@40 ++ SymFindFileInPathW = SymFindFileInPathW@40 ++ SymFromAddr = SymFromAddr@20 ++ SymFromAddrW = SymFromAddrW@20 ++ SymFromName = SymFromName@12 ++ SymFunctionTableAccess = SymFunctionTableAccess@8 ++ SymFunctionTableAccess64 = SymFunctionTableAccess64@12 ++ SymGetLineFromAddr = SymGetLineFromAddr@16 ++ SymGetLineFromAddr64 = SymGetLineFromAddr64@20 ++ SymGetLineFromAddrW64 = SymGetLineFromAddrW64@20 ++ SymGetLineNext = SymGetLineNext@8 ++ SymGetLineNext64 = SymGetLineNext64@8 ++ SymGetLinePrev = SymGetLinePrev@8 ++ SymGetLinePrev64 = SymGetLinePrev64@8 ++ SymGetModuleBase = SymGetModuleBase@8 ++ SymGetModuleBase64 = SymGetModuleBase64@12 ++ SymGetModuleInfo = SymGetModuleInfo@12 ++ SymGetModuleInfo64 = SymGetModuleInfo64@16 ++ SymGetModuleInfoW = SymGetModuleInfoW@12 ++ SymGetModuleInfoW64 = SymGetModuleInfoW64@16 ++ SymGetOptions = SymGetOptions@0 ++ SymGetSearchPath = SymGetSearchPath@12 ++ SymGetSearchPathW = SymGetSearchPathW@12 ++ SymGetSourceFileToken = SymGetSourceFileToken@24 ++ SymGetSourceFileTokenW = SymGetSourceFileTokenW@24 ++ SymGetSymFromAddr = SymGetSymFromAddr@16 ++ SymGetSymFromAddr64 = SymGetSymFromAddr64@20 ++ SymGetSymFromName = SymGetSymFromName@12 ++ SymGetSymFromName64 = SymGetSymFromName64@12 ++ SymGetSymNext = SymGetSymNext@8 ++ SymGetSymNext64 = SymGetSymNext64@8 ++ SymGetSymPrev = SymGetSymPrev@8 ++ SymGetSymPrev64 = SymGetSymPrev64@8 ++ SymGetTypeFromName = SymGetTypeFromName@20 ++ SymGetTypeInfo = SymGetTypeInfo@24 ++ SymInitialize = SymInitialize@12 ++ SymInitializeW = SymInitializeW@12 ++ SymLoadModule = SymLoadModule@24 ++ SymLoadModule64 = SymLoadModule64@28 ++ SymLoadModuleEx = SymLoadModuleEx@36 ++ SymLoadModuleExW = SymLoadModuleExW@36 ++ SymMatchFileName = SymMatchFileName@16 ++ SymMatchFileNameW = SymMatchFileNameW@16 ++ SymMatchString = SymMatchString@12 ++ SymRefreshModuleList = SymRefreshModuleList@4 ++ SymRegisterCallback = SymRegisterCallback@12 ++ SymRegisterCallback64 = SymRegisterCallback64@16 ++ SymRegisterCallbackW64 = SymRegisterCallbackW64@16 ++ SymRegisterFunctionEntryCallback = SymRegisterFunctionEntryCallback@12 ++ SymRegisterFunctionEntryCallback64 = SymRegisterFunctionEntryCallback64@16 ++ SymSearch = SymSearch@44 ++ SymSearchW = SymSearchW@44 ++ SymSetContext = SymSetContext@12 ++ SymSetOptions = SymSetOptions@4 ++ SymSetParentWindow = SymSetParentWindow@4 ++ SymSetScopeFromAddr = SymSetScopeFromAddr@12 ++ SymSetSearchPath = SymSetSearchPath@8 ++ SymSetSearchPathW = SymSetSearchPathW@8 ++ SymUnDName = SymUnDName@12 ++ SymUnDName64 = SymUnDName64@12 ++ SymUnloadModule = SymUnloadModule@8 ++ SymUnloadModule64 = SymUnloadModule64@12 ++ UnDecorateSymbolName = UnDecorateSymbolName@16 ++ UnmapDebugInformation = UnmapDebugInformation@4 ++ WinDbgExtensionDllInit = WinDbgExtensionDllInit@12 +--- drmingw/src/mgwhelp/mgwhelp32.def.orig 2015-06-23 09:38:41.159000000 +0300 ++++ drmingw/src/mgwhelp/mgwhelp32.def 2015-06-23 09:52:50.813000000 +0300 +@@ -8,9 +8,22 @@ + SymFromAddrW@20 = MgwSymFromAddrW@20 + SymGetLineFromAddr64@20 = MgwSymGetLineFromAddr64@20 + SymGetLineFromAddrW64@20 = MgwSymGetLineFromAddrW64@20 +- SymLoadModuleEx@36 = MgwSymLoadModuleEx@36 +- SymLoadModuleExW@36 = MgwSymLoadModuleExW@36 +- UnDecorateSymbolName@16 = MgwUnDecorateSymbolName@16 ++ SymLoadModuleEx@36 = MgwSymLoadModuleEx@36 ++ SymLoadModuleExW@36 = MgwSymLoadModuleExW@36 ++ UnDecorateSymbolName@16 = MgwUnDecorateSymbolName@16 ++ ++ SymInitialize = SymInitialize@12 ++ SymInitializeW = SymInitializeW@12 ++ SymCleanup = SymCleanup@4 ++ SymSetOptions = SymSetOptions@4 ++ SymGetModuleBase64 = SymGetModuleBase64@12 ++ SymFromAddr = SymFromAddr@20 ++ SymFromAddrW = SymFromAddrW@20 ++ SymGetLineFromAddr64 = SymGetLineFromAddr64@20 ++ SymGetLineFromAddrW64 = SymGetLineFromAddrW64@20 ++ SymLoadModuleEx = SymLoadModuleEx@36 ++ SymLoadModuleExW = SymLoadModuleExW@36 ++ UnDecorateSymbolName = UnDecorateSymbolName@16 + + EnumDirTree@24 + EnumDirTreeW@24 +@@ -104,3 +104,98 @@ + SymUnloadModule64@12 + UnmapDebugInformation@4 + WinDbgExtensionDllInit@12 ++ ++ EnumDirTree = EnumDirTree@24 ++ EnumDirTreeW = EnumDirTreeW@24 ++ EnumerateLoadedModules = EnumerateLoadedModules@12 ++ EnumerateLoadedModules64 = EnumerateLoadedModules64@12 ++ EnumerateLoadedModulesW64 = EnumerateLoadedModulesW64@12 ++ ExtensionApiVersion = ExtensionApiVersion@0 ++ FindDebugInfoFile = FindDebugInfoFile@12 ++ FindDebugInfoFileEx = FindDebugInfoFileEx@20 ++ FindExecutableImage = FindExecutableImage@12 ++ FindExecutableImageEx = FindExecutableImageEx@20 ++ FindExecutableImageExW = FindExecutableImageExW@20 ++ GetTimestampForLoadedLibrary = GetTimestampForLoadedLibrary@4 ++ ImageDirectoryEntryToData = ImageDirectoryEntryToData@16 ++ ImageDirectoryEntryToDataEx = ImageDirectoryEntryToDataEx@20 ++ ImageNtHeader = ImageNtHeader@4 ++ ImageRvaToSection = ImageRvaToSection@12 ++ ImageRvaToVa = ImageRvaToVa@16 ++ ImagehlpApiVersion = ImagehlpApiVersion@0 ++ ImagehlpApiVersionEx = ImagehlpApiVersionEx@4 ++ MakeSureDirectoryPathExists = MakeSureDirectoryPathExists@4 ++ MapDebugInformation = MapDebugInformation@16 ++ MiniDumpReadDumpStream = MiniDumpReadDumpStream@20 ++ MiniDumpWriteDump = MiniDumpWriteDump@28 ++ SearchTreeForFile = SearchTreeForFile@12 ++ SearchTreeForFileW = SearchTreeForFileW@12 ++ StackWalk = StackWalk@36 ++ StackWalk64 = StackWalk64@36 ++ SymAddSymbol = SymAddSymbol@32 ++ SymAddSymbolW = SymAddSymbolW@32 ++ SymEnumLines = SymEnumLines@28 ++ SymEnumSourceFiles = SymEnumSourceFiles@24 ++ SymEnumSymbols = SymEnumSymbols@24 ++ SymEnumSymbolsW = SymEnumSymbolsW@24 ++ SymEnumTypes = SymEnumTypes@20 ++ SymEnumTypesW = SymEnumTypesW@20 ++ SymEnumerateModules = SymEnumerateModules@12 ++ SymEnumerateModules64 = SymEnumerateModules64@12 ++ SymEnumerateModulesW64 = SymEnumerateModulesW64@12 ++ SymEnumerateSymbols = SymEnumerateSymbols@16 ++ SymEnumerateSymbols64 = SymEnumerateSymbols64@20 ++ SymFindFileInPath = SymFindFileInPath@40 ++ SymFindFileInPathW = SymFindFileInPathW@40 ++ SymFromName = SymFromName@12 ++ SymFunctionTableAccess = SymFunctionTableAccess@8 ++ SymFunctionTableAccess64 = SymFunctionTableAccess64@12 ++ SymGetLineFromAddr = SymGetLineFromAddr@16 ++ SymGetLineNext = SymGetLineNext@8 ++ SymGetLineNext64 = SymGetLineNext64@8 ++ SymGetLinePrev = SymGetLinePrev@8 ++ SymGetLinePrev64 = SymGetLinePrev64@8 ++ SymGetModuleBase = SymGetModuleBase@8 ++ SymGetModuleInfo = SymGetModuleInfo@12 ++ SymGetModuleInfo64 = SymGetModuleInfo64@16 ++ SymGetModuleInfoW = SymGetModuleInfoW@12 ++ SymGetModuleInfoW64 = SymGetModuleInfoW64@16 ++ SymGetOptions = SymGetOptions@0 ++ SymGetSearchPath = SymGetSearchPath@12 ++ SymGetSearchPathW = SymGetSearchPathW@12 ++ SymGetSourceFileToken = SymGetSourceFileToken@24 ++ SymGetSourceFileTokenW = SymGetSourceFileTokenW@24 ++ SymGetSymFromAddr = SymGetSymFromAddr@16 ++ SymGetSymFromAddr64 = SymGetSymFromAddr64@20 ++ SymGetSymFromName = SymGetSymFromName@12 ++ SymGetSymFromName64 = SymGetSymFromName64@12 ++ SymGetSymNext = SymGetSymNext@8 ++ SymGetSymNext64 = SymGetSymNext64@8 ++ SymGetSymPrev = SymGetSymPrev@8 ++ SymGetSymPrev64 = SymGetSymPrev64@8 ++ SymGetTypeFromName = SymGetTypeFromName@20 ++ SymGetTypeInfo = SymGetTypeInfo@24 ++ SymLoadModule = SymLoadModule@24 ++ SymLoadModule64 = SymLoadModule64@28 ++ SymMatchFileName = SymMatchFileName@16 ++ SymMatchFileNameW = SymMatchFileNameW@16 ++ SymMatchString = SymMatchString@12 ++ SymRefreshModuleList = SymRefreshModuleList@4 ++ SymRegisterCallback = SymRegisterCallback@12 ++ SymRegisterCallback64 = SymRegisterCallback64@16 ++ SymRegisterCallbackW64 = SymRegisterCallbackW64@16 ++ SymRegisterFunctionEntryCallback = SymRegisterFunctionEntryCallback@12 ++ SymRegisterFunctionEntryCallback64 = SymRegisterFunctionEntryCallback64@16 ++ SymSearch = SymSearch@44 ++ SymSearchW = SymSearchW@44 ++ SymSetContext = SymSetContext@12 ++ SymSetParentWindow = SymSetParentWindow@4 ++ SymSetScopeFromAddr = SymSetScopeFromAddr@12 ++ SymSetSearchPath = SymSetSearchPath@8 ++ SymSetSearchPathW = SymSetSearchPathW@8 ++ SymUnDName = SymUnDName@12 ++ SymUnDName64 = SymUnDName64@12 ++ SymUnloadModule = SymUnloadModule@8 ++ SymUnloadModule64 = SymUnloadModule64@12 ++ UnmapDebugInformation = UnmapDebugInformation@4 ++ WinDbgExtensionDllInit = WinDbgExtensionDllInit@12 +--- drmingw/src/mgwhelp/mgwhelp64.def.orig 2015-06-23 09:39:21.126200000 +0300 ++++ drmingw/src/mgwhelp/mgwhelp64.def 2015-06-23 09:39:32.576600000 +0300 +@@ -8,9 +8,9 @@ + SymFromAddrW = MgwSymFromAddrW + SymGetLineFromAddr64 = MgwSymGetLineFromAddr64 + SymGetLineFromAddrW64 = MgwSymGetLineFromAddrW64 +- SymLoadModuleEx = MgwSymLoadModuleEx +- SymLoadModuleExW = MgwSymLoadModuleExW +- UnDecorateSymbolName = MgwUnDecorateSymbolName ++ SymLoadModuleEx = MgwSymLoadModuleEx ++ SymLoadModuleExW = MgwSymLoadModuleExW ++ UnDecorateSymbolName = MgwUnDecorateSymbolName + + EnumDirTree + EnumDirTreeW From 36dd832c1646f5b1c781288bd8b4b516cd213292 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 23 Jun 2015 15:49:26 +0300 Subject: [PATCH 1198/2060] firebird: Update to latest from git. --- mingw-w64-firebird-git/PKGBUILD | 4 +- mingw-w64-firebird-git/mingw-w64-trunk.patch | 883 ++++++--- mingw-w64-firebird2-git/PKGBUILD | 13 +- mingw-w64-firebird2-git/mingw-load-crt.patch | 22 - mingw-w64-firebird2-git/mingw-relocate.patch | 739 ------- mingw-w64-firebird2-git/mingw-w64-2_5.patch | 1795 ++++++++++++++---- 6 files changed, 2098 insertions(+), 1358 deletions(-) delete mode 100644 mingw-w64-firebird2-git/mingw-load-crt.patch delete mode 100644 mingw-w64-firebird2-git/mingw-relocate.patch diff --git a/mingw-w64-firebird-git/PKGBUILD b/mingw-w64-firebird-git/PKGBUILD index 00835d4e25..862033faa7 100644 --- a/mingw-w64-firebird-git/PKGBUILD +++ b/mingw-w64-firebird-git/PKGBUILD @@ -3,7 +3,7 @@ _realname='firebird' _build_sys=autotools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=3.0.0.31885.eeaafd0 +pkgver=3.0.0.31894.22cc629 pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features (mingw-w64)" url="http://www.firebirdsql.org/" @@ -33,7 +33,7 @@ options=('!debug' 'strip') source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git" mingw-w64-trunk.patch) sha256sums=('SKIP' - '25bb6935ab08616d2e106824d34b8ee08da72fb4b9794a77e62a2d2d3d9dd0b0') + '7bb02ba92093a53ca6f2f7076d055922d0d8ac15694db7cdc154cc036dda941a') pkgver() { diff --git a/mingw-w64-firebird-git/mingw-w64-trunk.patch b/mingw-w64-firebird-git/mingw-w64-trunk.patch index de53e69807..90a42d0660 100644 --- a/mingw-w64-firebird-git/mingw-w64-trunk.patch +++ b/mingw-w64-firebird-git/mingw-w64-trunk.patch @@ -825,7 +825,7 @@ new file mode 100644 index 0000000..fa8f733 --- /dev/null +++ b/builds/win32/defs/fbclient32.def -@@ -0,0 +1,372 @@ +@@ -0,0 +1,725 @@ +; The contents of this file are subject to the Interbase Public +; License Version 1.0 (the "License"); you may not use this file +; except in compliance with the License. You may obtain a copy @@ -850,103 +850,103 @@ index 0000000..fa8f733 +; PRIVATE INTERFACE +;------------------- + -+ gds__alloc@4 @1 -+ gds__attach_database@24 @2 -+ gds__blob_info@24 @3 -+ gds__blob_size@16 @4 -+ gds__cancel_blob@8 @5 -+ gds__cancel_events@12 @6 -+ gds__close@8 @7 -+ gds__close_blob@8 @8 -+ gds__commit_retaining@8 @9 -+ gds__commit_transaction@8 @10 -+ gds__compile_request@20 @11 -+ gds__compile_request2@20 @12 -+ gds__create_blob@20 @13 -+ gds__create_blob2@28 @14 -+ gds__create_database@28 @15 -+ gds__database_cleanup@16 @16 -+ gds__database_info@24 @17 -+ gds__ddl@20 @18 -+ gds__declare@12 @19 -+ gds__decode@12 @20 -+ gds__decode_date@8 @21 -+ gds__describe@12 @22 -+ gds__describe_bind@12 @23 -+ gds__detach_database@8 @24 -+ gds__disable_subsystem@4 @25 -+ gds__dsql_finish@4 @26 -+ gds__edit@8 @27 -+ gds__enable_subsystem@4 @28 -+ gds__encode@8 @29 -+ gds__encode_date@8 @30 -+ gds__event_block @31 -+ gds__event_counts@16 @32 -+ gds__event_wait@20 @33 -+ gds__execute@16 @34 -+ gds__execute_immediate@20 @35 -+ gds__fetch@12 @36 -+ gds__free@4 @37 -+ gds__ftof@16 @38 -+ gds__get_prefix@8 @248 -+ gds__get_segment@20 @39 -+ gds__get_slice@44 @40 -+ gds__interprete@8 @41 -+ gds__log @42 -+ gds__log_status@8 @142 -+ gds__map_blobs@8 @240 -+ gds__msg_close@4 @223 -+ gds__msg_format@40 @43 -+ gds__msg_lookup@24 @44 -+ gds__msg_open@8 @45 -+ gds__msg_put@32 @46 -+ gds__open@16 @47 -+ gds__open_blob@20 @48 -+ gds__open_blob2@28 @49 -+ gds__parse_bpb@16 @50 -+ gds__prefix@8 @51 -+ gds__prefix_lock@8 @249 -+ gds__prefix_msg@8 @250 -+ gds__prepare@28 @52 -+ gds__prepare_transaction@8 @53 -+ gds__prepare_transaction2@16 @54 -+ gds__print_blr@16 @55 -+ gds__print_status@4 @56 -+ gds__put_error@4 @57 -+ gds__put_segment@16 @58 -+ gds__put_slice@40 @59 -+ gds__qtoq@8 @60 -+ gds__que_events@28 @61 -+ gds__receive@24 @62 -+ gds__reconnect_transaction@20 @63 -+ gds__register_cleanup@8 @64 -+ gds__release_request@8 @65 -+ gds__request_info@28 @66 -+ gds__rollback_transaction@8 @67 -+ gds__seek_blob@20 @68 -+ gds__send@24 @69 -+ gds__set_debug@4 @70 -+ gds__sqlcode@4 @71 -+ gds__start_and_send@28 @72 -+ gds__start_multiple@16 @73 -+ gds__start_request@16 @74 -+ gds__start_transaction @75 -+ gds__temp_file@20 @231 -+ gds__thread_enable@4 @76 -+ gds__thread_enter@0 @77 -+ gds__thread_exit@0 @78 -+ gds__thread_start@20 @79 -+ gds__to_sqlda@20 @80 -+ gds__transaction_cleanup@16 @235 -+ gds__transaction_info@24 @81 -+ gds__unregister_cleanup@8 @224 -+ gds__unwind_request@12 @82 -+ gds__validate_lib_path@16 @255 -+ gds__vax_integer@8 @83 -+ gds__version@12 @84 -+ gds__vtof@12 @85 -+ gds__vtov@12 @86 -+ gds__default_printer @87 ++ gds__alloc@4 ++ gds__attach_database@24 ++ gds__blob_info@24 ++ gds__blob_size@16 ++ gds__cancel_blob@8 ++ gds__cancel_events@12 ++ gds__close@8 ++ gds__close_blob@8 ++ gds__commit_retaining@8 ++ gds__commit_transaction@8 ++ gds__compile_request@20 ++ gds__compile_request2@20 ++ gds__create_blob@20 ++ gds__create_blob2@28 ++ gds__create_database@28 ++ gds__database_cleanup@16 ++ gds__database_info@24 ++ gds__ddl@20 ++ gds__declare@12 ++ gds__decode@12 ++ gds__decode_date@8 ++ gds__describe@12 ++ gds__describe_bind@12 ++ gds__detach_database@8 ++ gds__disable_subsystem@4 ++ gds__dsql_finish@4 ++ gds__edit@8 ++ gds__enable_subsystem@4 ++ gds__encode@8 ++ gds__encode_date@8 ++ gds__event_block@0 ++ gds__event_counts@16 ++ gds__event_wait@20 ++ gds__execute@16 ++ gds__execute_immediate@20 ++ gds__fetch@12 ++ gds__free@4 ++ gds__ftof@16 ++ gds__get_prefix@8 ++ gds__get_segment@20 ++ gds__get_slice@44 ++ gds__interprete@8 ++ gds__log@0 ++ gds__log_status@8 ++ gds__map_blobs@8 ++ gds__msg_close@4 ++ gds__msg_format@40 ++ gds__msg_lookup@24 ++ gds__msg_open@8 ++ gds__msg_put@32 ++ gds__open@16 ++ gds__open_blob@20 ++ gds__open_blob2@28 ++ gds__parse_bpb@16 ++ gds__prefix@8 ++ gds__prefix_lock@8 ++ gds__prefix_msg@8 ++ gds__prepare@28 ++ gds__prepare_transaction@8 ++ gds__prepare_transaction2@16 ++ gds__print_blr@16 ++ gds__print_status@4 ++ gds__put_error@4 ++ gds__put_segment@16 ++ gds__put_slice@40 ++ gds__qtoq@8 ++ gds__que_events@28 ++ gds__receive@24 ++ gds__reconnect_transaction@20 ++ gds__register_cleanup@8 ++ gds__release_request@8 ++ gds__request_info@28 ++ gds__rollback_transaction@8 ++ gds__seek_blob@20 ++ gds__send@24 ++ gds__set_debug@4 ++ gds__sqlcode@4 ++ gds__start_and_send@28 ++ gds__start_multiple@16 ++ gds__start_request@16 ++ gds__start_transaction@0 ++ gds__temp_file@20 ++ gds__thread_enable@4 ++ gds__thread_enter@0 ++ gds__thread_exit@0 ++ gds__thread_start@20 ++ gds__to_sqlda@20 ++ gds__transaction_cleanup@16 ++ gds__transaction_info@24 ++ gds__unregister_cleanup@8 ++ gds__unwind_request@12 ++ gds__validate_lib_path@16 ++ gds__vax_integer@8 ++ gds__version@12 ++ gds__vtof@12 ++ gds__vtov@12 ++ gds__default_printer@0 + + gds__alloc_debug@12 + @@ -958,9 +958,9 @@ index 0000000..fa8f733 + fb_cancel_operation@12 + fb_disconnect_transaction@8 + -+ perf_format@20 @100 -+ perf_get_info@8 @101 -+ perf_report@16 @102 ++ perf_format@20 ++ perf_get_info@8 ++ perf_report@16 + + perf64_format@20 + perf64_get_info@8 @@ -972,212 +972,212 @@ index 0000000..fa8f733 + + ; Array functions + -+ isc_array_gen_sdl@20 @217 -+ isc_array_get_slice@28 @218 -+ isc_array_lookup_bounds@24 @219 -+ isc_array_lookup_desc@24 @220 -+ isc_array_put_slice@28 @221 -+ isc_array_set_desc@28 @222 -+ isc_get_slice@44 @140 -+ isc_put_slice@40 @153 ++ isc_array_gen_sdl@20 ++ isc_array_get_slice@28 ++ isc_array_lookup_bounds@24 ++ isc_array_lookup_desc@24 ++ isc_array_put_slice@28 ++ isc_array_set_desc@28 ++ isc_get_slice@44 ++ isc_put_slice@40 + + ; BLOB functions + -+ isc_blob_default_desc@12 @239 -+ isc_blob_gen_bpb@24 @236 -+ isc_blob_info@24 @108 -+ isc_blob_lookup_desc@28 @237 -+ isc_blob_set_desc@28 @238 -+ isc_cancel_blob@8 @110 -+ isc_close_blob@8 @113 -+ isc_create_blob@20 @118 -+ isc_create_blob2@28 @119 -+ isc_get_segment@20 @139 -+ isc_open_blob@20 @144 -+ isc_open_blob2@28 @145 -+ isc_put_segment@16 @152 ++ isc_blob_default_desc@12 ++ isc_blob_gen_bpb@24 ++ isc_blob_info@24 ++ isc_blob_lookup_desc@28 ++ isc_blob_set_desc@28 ++ isc_cancel_blob@8 ++ isc_close_blob@8 ++ isc_create_blob@20 ++ isc_create_blob2@28 ++ isc_get_segment@20 ++ isc_open_blob@20 ++ isc_open_blob2@28 ++ isc_put_segment@16 + + ; Database functions + -+ isc_attach_database@24 @103 -+ isc_create_database@28 @120 -+ isc_database_info@24 @122 -+ isc_detach_database@8 @128 -+ isc_drop_database@8 @229 -+ isc_expand_dpb @135 -+ isc_modify_dpb@20 @244 -+ isc_version@12 @174 -+ isc_get_client_major_version@0 @268 -+ isc_get_client_minor_version@0 @269 -+ isc_get_client_version@4 @270 ++ isc_attach_database@24 ++ isc_create_database@28 ++ isc_database_info@24 ++ isc_detach_database@8 ++ isc_drop_database@8 ++ isc_expand_dpb@0 ++ isc_modify_dpb@20 ++ isc_version@12 ++ isc_get_client_major_version@0 ++ isc_get_client_minor_version@0 ++ isc_get_client_version@4 + + ; Conversion functions + -+ isc_decode_date@8 @125 -+ isc_decode_sql_date@8 @261 -+ isc_decode_sql_time@8 @262 -+ isc_decode_timestamp@8 @263 -+ isc_encode_date@8 @129 -+ isc_encode_sql_date@8 @264 -+ isc_encode_sql_time@8 @265 -+ isc_encode_timestamp@8 @266 -+ isc_portable_integer@8 @259 -+ isc_vax_integer@8 @173 ++ isc_decode_date@8 ++ isc_decode_sql_date@8 ++ isc_decode_sql_time@8 ++ isc_decode_timestamp@8 ++ isc_encode_date@8 ++ isc_encode_sql_date@8 ++ isc_encode_sql_time@8 ++ isc_encode_timestamp@8 ++ isc_portable_integer@8 ++ isc_vax_integer@8 + + ; DSQL functions + -+ isc_dsql_allocate_statement@12 @178 -+ isc_dsql_alloc_statement2@12 @179 -+ isc_dsql_describe@16 @180 -+ isc_dsql_describe_bind@16 @181 -+ isc_dsql_execute@20 @182 -+ isc_dsql_execute2@24 @183 -+ isc_dsql_execute_m@32 @184 -+ isc_dsql_execute2_m@52 @185 -+ isc_dsql_execute_immediate@28 @186 -+ isc_dsql_exec_immed2@32 @187 -+ isc_dsql_execute_immediate_m@44 @188 -+ isc_dsql_exec_immed2_m@64 @189 -+ isc_dsql_exec_immed3_m@64 @230 -+ isc_dsql_fetch@16 @190 -+ isc_dsql_fetch_a@20 @191 -+ isc_dsql_fetch_m@28 @192 -+ isc_dsql_finish@4 @193 -+ isc_dsql_free_statement@12 @194 -+ isc_dsql_insert@16 @195 -+ isc_dsql_insert_m@28 @196 -+ isc_dsql_prepare@28 @197 -+ isc_dsql_prepare_m@40 @198 -+ isc_dsql_release@8 @199 -+ isc_dsql_set_cursor_name@16 @200 -+ isc_dsql_sql_info@24 @201 ++ isc_dsql_allocate_statement@12 ++ isc_dsql_alloc_statement2@12 ++ isc_dsql_describe@16 ++ isc_dsql_describe_bind@16 ++ isc_dsql_execute@20 ++ isc_dsql_execute2@24 ++ isc_dsql_execute_m@32 ++ isc_dsql_execute2_m@52 ++ isc_dsql_execute_immediate@28 ++ isc_dsql_exec_immed2@32 ++ isc_dsql_execute_immediate_m@44 ++ isc_dsql_exec_immed2_m@64 ++ isc_dsql_exec_immed3_m@64 ++ isc_dsql_fetch@16 ++ isc_dsql_fetch_a@20 ++ isc_dsql_fetch_m@28 ++ isc_dsql_finish@4 ++ isc_dsql_free_statement@12 ++ isc_dsql_insert@16 ++ isc_dsql_insert_m@28 ++ isc_dsql_prepare@28 ++ isc_dsql_prepare_m@40 ++ isc_dsql_release@8 ++ isc_dsql_set_cursor_name@16 ++ isc_dsql_sql_info@24 + + ; ESQL functions + -+ isc_embed_dsql_close@8 @202 -+ isc_embed_dsql_declare@12 @203 -+ isc_embed_dsql_describe@16 @204 -+ isc_embed_dsql_describe_bind@16 @205 -+ isc_embed_dsql_execute@20 @206 -+ isc_embed_dsql_execute2@24 @207 -+ isc_embed_dsql_execute_immed@28 @208 -+ isc_embed_dsql_exec_immed2@32 @209 -+ isc_embed_dsql_fetch@16 @210 -+ isc_embed_dsql_fetch_a@20 @211 -+ isc_embed_dsql_insert@16 @212 -+ isc_embed_dsql_open@20 @213 -+ isc_embed_dsql_open2@24 @214 -+ isc_embed_dsql_prepare@32 @215 -+ isc_embed_dsql_release@8 @216 -+ isc_embed_dsql_length@8 @273 ++ isc_embed_dsql_close@8 ++ isc_embed_dsql_declare@12 ++ isc_embed_dsql_describe@16 ++ isc_embed_dsql_describe_bind@16 ++ isc_embed_dsql_execute@20 ++ isc_embed_dsql_execute2@24 ++ isc_embed_dsql_execute_immed@28 ++ isc_embed_dsql_exec_immed2@32 ++ isc_embed_dsql_fetch@16 ++ isc_embed_dsql_fetch_a@20 ++ isc_embed_dsql_insert@16 ++ isc_embed_dsql_open@20 ++ isc_embed_dsql_open2@24 ++ isc_embed_dsql_prepare@32 ++ isc_embed_dsql_release@8 ++ isc_embed_dsql_length@8 + + ; Error-handling functions + -+ isc_interprete@8 @141 ++ isc_interprete@8 + fb_interpret@12 -+ isc_print_sqlerror@8 @150 -+ isc_print_status@4 @151 -+ isc_sqlcode@4 @165 -+ isc_sql_interprete@12 @164 -+ isc_sqlcode_s@8 @278 -+ fb_sqlstate@8 @279 ++ isc_print_sqlerror@8 ++ isc_print_status@4 ++ isc_sqlcode@4 ++ isc_sql_interprete@12 ++ isc_sqlcode_s@8 ++ fb_sqlstate@8 + + ; Event functions + -+ isc_cancel_events@12 @111 -+ isc_event_block @130 -+ isc_event_counts@16 @131 -+ isc_que_events@28 @155 -+ isc_wait_for_event@20 @177 -+ isc_event_block_a@16 @274 -+ isc_event_block_s@20 @275 ++ isc_cancel_events@12 ++ isc_event_block@0 ++ isc_event_counts@16 ++ isc_que_events@28 ++ isc_wait_for_event@20 ++ isc_event_block_a@16 ++ isc_event_block_s@20 + + ; Security functions + -+ isc_add_user@8 @256 -+ isc_delete_user@8 @257 -+ isc_modify_user@8 @258 ++ isc_add_user@8 ++ isc_delete_user@8 ++ isc_modify_user@8 + + ; Services functions + -+ isc_service_attach@24 @225 -+ isc_service_detach@8 @226 -+ isc_service_query@36 @227 -+ isc_service_start@20 @228 ++ isc_service_attach@24 ++ isc_service_detach@8 ++ isc_service_query@36 ++ isc_service_start@20 + + ; Transaction control functions + -+ isc_commit_retaining@8 @114 -+ isc_commit_transaction@8 @115 -+ isc_prepare_transaction@8 @147 -+ isc_prepare_transaction2@16 @148 -+ isc_rollback_retaining@8 @260 -+ isc_rollback_transaction@8 @160 -+ isc_start_multiple@16 @167 -+ isc_start_transaction @169 -+ isc_transaction_info@24 @171 ++ isc_commit_retaining@8 ++ isc_commit_transaction@8 ++ isc_prepare_transaction@8 ++ isc_prepare_transaction2@16 ++ isc_rollback_retaining@8 ++ isc_rollback_transaction@8 ++ isc_start_multiple@16 ++ isc_start_transaction@0 ++ isc_transaction_info@24 + + ; Other functions + -+ isc_compile_request@20 @116 -+ isc_compile_request2@20 @117 -+ isc_ddl@20 @123 -+ isc_prepare@28 @146 -+ isc_receive@24 @156 -+ isc_reconnect_transaction@20 @157 -+ isc_release_request@8 @158 -+ isc_request_info@28 @159 -+ isc_seek_blob@20 @161 -+ isc_send@24 @162 -+ isc_start_and_send@28 @166 -+ isc_start_request@16 @168 -+ isc_transact_request@36 @132 -+ isc_unwind_request@12 @172 ++ isc_compile_request@20 ++ isc_compile_request2@20 ++ isc_ddl@20 ++ isc_prepare@28 ++ isc_receive@24 ++ isc_reconnect_transaction@20 ++ isc_release_request@8 ++ isc_request_info@28 ++ isc_seek_blob@20 ++ isc_send@24 ++ isc_start_and_send@28 ++ isc_start_request@16 ++ isc_transact_request@36 ++ isc_unwind_request@12 + + ; Other SQL functions + -+ isc_close@8 @112 -+ isc_declare@12 @124 -+ isc_describe@12 @126 -+ isc_describe_bind@12 @127 -+ isc_execute@16 @133 -+ isc_execute_immediate@20 @134 -+ isc_fetch@12 @136 -+ isc_fetch_a@16 @137 -+ isc_open@16 @143 ++ isc_close@8 ++ isc_declare@12 ++ isc_describe@12 ++ isc_describe_bind@12 ++ isc_execute@16 ++ isc_execute_immediate@20 ++ isc_fetch@12 ++ isc_fetch_a@16 ++ isc_open@16 + + ; Other BLOB functions + -+ BLOB_close@4 @91 -+ BLOB_display@16 @92 -+ BLOB_dump@16 @93 -+ BLOB_edit@16 @94 -+ BLOB_get@4 @95 -+ BLOB_load@16 @96 -+ BLOB_open@12 @97 -+ BLOB_put@8 @98 -+ BLOB_text_dump@16 @242 -+ BLOB_text_load@16 @243 -+ Bopen@16 @99 ++ BLOB_close@4 ++ BLOB_display@16 ++ BLOB_dump@16 ++ BLOB_edit@16 ++ BLOB_get@4 ++ BLOB_load@16 ++ BLOB_open@12 ++ BLOB_put@8 ++ BLOB_text_dump@16 ++ BLOB_text_load@16 ++ Bopen@16 + + ; Other misc functions + -+ isc_ftof@16 @138 -+ isc_free@4 @241 -+ isc_print_blr@16 @149 -+ fb_print_blr@20 @280 -+ isc_qtoq@8 @154 ++ isc_ftof@16 ++ isc_free@4 ++ isc_print_blr@16 ++ fb_print_blr@20 ++ isc_qtoq@8 + isc_reset_fpe@4 -+ isc_set_debug@4 @163 -+ isc_to_sqlda@20 @170 -+ isc_vtof@12 @175 -+ isc_vtov@12 @176 -+ isc_baddress@4 @276 -+ isc_baddress_s@8 @277 ++ isc_set_debug@4 ++ isc_to_sqlda@20 ++ isc_vtof@12 ++ isc_vtov@12 ++ isc_baddress@4 ++ isc_baddress_s@8 + -+ _isc_start_transaction=isc_start_transaction -+ _isc_expand_dpb=isc_expand_dpb -+ _isc_event_block=isc_event_block ++ _isc_start_transaction = isc_start_transaction@0 ++ _isc_expand_dpb = isc_expand_dpb@0 ++ _isc_event_block = isc_event_block@0 + + fb_ping@8 + fb_get_master_interface@0 @@ -1194,10 +1194,363 @@ index 0000000..fa8f733 +; OTHER FUNCTIONS +;----------------- + -+ CVT_move@12 @267 ++ CVT_move@12 + -+ KEYWORD_stringIsAToken@4 @271 -+ KEYWORD_getTokens@0 @272 ++ KEYWORD_stringIsAToken@4 ++ KEYWORD_getTokens@0 ++ ++;-------------------------------------- ++; DUPLICATE FOR COMPATIBILITY WITH MSVC ++;-------------------------------------- ++ ++;------------------- ++; PRIVATE INTERFACE ++;------------------- ++ ++ gds__alloc = gds__alloc@4 @1 ++ gds__attach_database = gds__attach_database@24 @2 ++ gds__blob_info = gds__blob_info@24 @3 ++ gds__blob_size = gds__blob_size@16 @4 ++ gds__cancel_blob = gds__cancel_blob@8 @5 ++ gds__cancel_events = gds__cancel_events@12 @6 ++ gds__close = gds__close@8 @7 ++ gds__close_blob = gds__close_blob@8 @8 ++ gds__commit_retaining = gds__commit_retaining@8 @9 ++ gds__commit_transaction = gds__commit_transaction@8 @10 ++ gds__compile_request = gds__compile_request@20 @11 ++ gds__compile_request2 = gds__compile_request2@20 @12 ++ gds__create_blob = gds__create_blob@20 @13 ++ gds__create_blob2 = gds__create_blob2@28 @14 ++ gds__create_database = gds__create_database@28 @15 ++ gds__database_cleanup = gds__database_cleanup@16 @16 ++ gds__database_info = gds__database_info@24 @17 ++ gds__ddl = gds__ddl@20 @18 ++ gds__declare = gds__declare@12 @19 ++ gds__decode = gds__decode@12 @20 ++ gds__decode_date = gds__decode_date@8 @21 ++ gds__describe = gds__describe@12 @22 ++ gds__describe_bind = gds__describe_bind@12 @23 ++ gds__detach_database = gds__detach_database@8 @24 ++ gds__disable_subsystem = gds__disable_subsystem@4 @25 ++ gds__dsql_finish = gds__dsql_finish@4 @26 ++ gds__edit = gds__edit@8 @27 ++ gds__enable_subsystem = gds__enable_subsystem@4 @28 ++ gds__encode = gds__encode@8 @29 ++ gds__encode_date = gds__encode_date@8 @30 ++ gds__event_block = gds__event_block@0 @31 ++ gds__event_counts = gds__event_counts@16 @32 ++ gds__event_wait = gds__event_wait@20 @33 ++ gds__execute = gds__execute@16 @34 ++ gds__execute_immediate = gds__execute_immediate@20 @35 ++ gds__fetch = gds__fetch@12 @36 ++ gds__free = gds__free@4 @37 ++ gds__ftof = gds__ftof@16 @38 ++ gds__get_prefix = gds__get_prefix@8 @248 ++ gds__get_segment = gds__get_segment@20 @39 ++ gds__get_slice = gds__get_slice@44 @40 ++ gds__interprete = gds__interprete@8 @41 ++ gds__log = gds__log@0 @42 ++ gds__log_status = gds__log_status@8 @142 ++ gds__map_blobs = gds__map_blobs@8 @240 ++ gds__msg_close = gds__msg_close@4 @223 ++ gds__msg_format = gds__msg_format@40 @43 ++ gds__msg_lookup = gds__msg_lookup@24 @44 ++ gds__msg_open = gds__msg_open@8 @45 ++ gds__msg_put = gds__msg_put@32 @46 ++ gds__open = gds__open@16 @47 ++ gds__open_blob = gds__open_blob@20 @48 ++ gds__open_blob2 = gds__open_blob2@28 @49 ++ gds__parse_bpb = gds__parse_bpb@16 @50 ++ gds__prefix = gds__prefix@8 @51 ++ gds__prefix_lock = gds__prefix_lock@8 @249 ++ gds__prefix_msg = gds__prefix_msg@8 @250 ++ gds__prepare = gds__prepare@28 @52 ++ gds__prepare_transaction = gds__prepare_transaction@8 @53 ++ gds__prepare_transaction2 = gds__prepare_transaction2@16 @54 ++ gds__print_blr = gds__print_blr@16 @55 ++ gds__print_status = gds__print_status@4 @56 ++ gds__put_error = gds__put_error@4 @57 ++ gds__put_segment = gds__put_segment@16 @58 ++ gds__put_slice = gds__put_slice@40 @59 ++ gds__qtoq = gds__qtoq@8 @60 ++ gds__que_events = gds__que_events@28 @61 ++ gds__receive = gds__receive@24 @62 ++ gds__reconnect_transaction = gds__reconnect_transaction@20 @63 ++ gds__register_cleanup = gds__register_cleanup@8 @64 ++ gds__release_request = gds__release_request@8 @65 ++ gds__request_info = gds__request_info@28 @66 ++ gds__rollback_transaction = gds__rollback_transaction@8 @67 ++ gds__seek_blob = gds__seek_blob@20 @68 ++ gds__send = gds__send@24 @69 ++ gds__set_debug = gds__set_debug@4 @70 ++ gds__sqlcode = gds__sqlcode@4 @71 ++ gds__start_and_send = gds__start_and_send@28 @72 ++ gds__start_multiple = gds__start_multiple@16 @73 ++ gds__start_request = gds__start_request@16 @74 ++ gds__start_transaction = gds__start_transaction@0 @75 ++ gds__temp_file = gds__temp_file@20 @231 ++ gds__thread_enable = gds__thread_enable@4 @76 ++ gds__thread_enter = gds__thread_enter@0 @77 ++ gds__thread_exit = gds__thread_exit@0 @78 ++ gds__thread_start = gds__thread_start@20 @79 ++ gds__to_sqlda = gds__to_sqlda@20 @80 ++ gds__transaction_cleanup = gds__transaction_cleanup@16 @235 ++ gds__transaction_info = gds__transaction_info@24 @81 ++ gds__unregister_cleanup = gds__unregister_cleanup@8 @224 ++ gds__unwind_request = gds__unwind_request@12 @82 ++ gds__validate_lib_path = gds__validate_lib_path@16 @255 ++ gds__vax_integer = gds__vax_integer@8 @83 ++ gds__version = gds__version@12 @84 ++ gds__vtof = gds__vtof@12 @85 ++ gds__vtov = gds__vtov@12 @86 ++ gds__default_printer = gds__default_printer@0 @87 ++ ++ gds__alloc_debug = gds__alloc_debug@12 ++ ++ gds_alloc_flag_unfreed = gds_alloc_flag_unfreed@4 ++ gds_alloc_report = gds_alloc_report@12 ++ ++ fb_shutdown = fb_shutdown@8 ++ fb_shutdown_callback = fb_shutdown_callback@16 ++ fb_cancel_operation = fb_cancel_operation@12 ++ fb_disconnect_transaction = fb_disconnect_transaction@8 ++ ++ perf_format = perf_format@20 @100 ++ perf_get_info = perf_get_info@8 @101 ++ perf_report = perf_report@16 @102 ++ ++ perf64_format = perf64_format@20 ++ perf64_get_info = perf64_get_info@8 ++ perf64_report = perf64_report@16 ++ ++;---------------------------- ++; PUBLIC INTERFACE, i.e. API ++;---------------------------- ++ ++ ; Array functions ++ ++ isc_array_gen_sdl = isc_array_gen_sdl@20 @217 ++ isc_array_get_slice = isc_array_get_slice@28 @218 ++ isc_array_lookup_bounds = isc_array_lookup_bounds@24 @219 ++ isc_array_lookup_desc = isc_array_lookup_desc@24 @220 ++ isc_array_put_slice = isc_array_put_slice@28 @221 ++ isc_array_set_desc = isc_array_set_desc@28 @222 ++ isc_get_slice = isc_get_slice@44 @140 ++ isc_put_slice = isc_put_slice@40 @153 ++ ++ ; BLOB functions ++ ++ isc_blob_default_desc = isc_blob_default_desc@12 @239 ++ isc_blob_gen_bpb = isc_blob_gen_bpb@24 @236 ++ isc_blob_info = isc_blob_info@24 @108 ++ isc_blob_lookup_desc = isc_blob_lookup_desc@28 @237 ++ isc_blob_set_desc = isc_blob_set_desc@28 @238 ++ isc_cancel_blob = isc_cancel_blob@8 @110 ++ isc_close_blob = isc_close_blob@8 @113 ++ isc_create_blob = isc_create_blob@20 @118 ++ isc_create_blob2 = isc_create_blob2@28 @119 ++ isc_get_segment = isc_get_segment@20 @139 ++ isc_open_blob = isc_open_blob@20 @144 ++ isc_open_blob2 = isc_open_blob2@28 @145 ++ isc_put_segment = isc_put_segment@16 @152 ++ ++ ; Database functions ++ ++ isc_attach_database = isc_attach_database@24 @103 ++ isc_create_database = isc_create_database@28 @120 ++ isc_database_info = isc_database_info@24 @122 ++ isc_detach_database = isc_detach_database@8 @128 ++ isc_drop_database = isc_drop_database@8 @229 ++ isc_expand_dpb = isc_expand_dpb@0 @135 ++ isc_modify_dpb = isc_modify_dpb@20 @244 ++ isc_version = isc_version@12 @174 ++ isc_get_client_major_version = isc_get_client_major_version@0 @268 ++ isc_get_client_minor_version = isc_get_client_minor_version@0 @269 ++ isc_get_client_version = isc_get_client_version@4 @270 ++ ++ ; Conversion functions ++ ++ isc_decode_date = isc_decode_date@8 @125 ++ isc_decode_sql_date = isc_decode_sql_date@8 @261 ++ isc_decode_sql_time = isc_decode_sql_time@8 @262 ++ isc_decode_timestamp = isc_decode_timestamp@8 @263 ++ isc_encode_date = isc_encode_date@8 @129 ++ isc_encode_sql_date = isc_encode_sql_date@8 @264 ++ isc_encode_sql_time = isc_encode_sql_time@8 @265 ++ isc_encode_timestamp = isc_encode_timestamp@8 @266 ++ isc_portable_integer = isc_portable_integer@8 @259 ++ isc_vax_integer = isc_vax_integer@8 @173 ++ ++ ; DSQL functions ++ ++ isc_dsql_allocate_statement = isc_dsql_allocate_statement@12 @178 ++ isc_dsql_alloc_statement2 = isc_dsql_alloc_statement2@12 @179 ++ isc_dsql_describe = isc_dsql_describe@16 @180 ++ isc_dsql_describe_bind = isc_dsql_describe_bind@16 @181 ++ isc_dsql_execute = isc_dsql_execute@20 @182 ++ isc_dsql_execute2 = isc_dsql_execute2@24 @183 ++ isc_dsql_execute_m = isc_dsql_execute_m@32 @184 ++ isc_dsql_execute2_m = isc_dsql_execute2_m@52 @185 ++ isc_dsql_execute_immediate = isc_dsql_execute_immediate@28 @186 ++ isc_dsql_exec_immed2 = isc_dsql_exec_immed2@32 @187 ++ isc_dsql_execute_immediate_m = isc_dsql_execute_immediate_m@44 @188 ++ isc_dsql_exec_immed2_m = isc_dsql_exec_immed2_m@64 @189 ++ isc_dsql_exec_immed3_m = isc_dsql_exec_immed3_m@64 @230 ++ isc_dsql_fetch = isc_dsql_fetch@16 @190 ++ isc_dsql_fetch_a = isc_dsql_fetch_a@20 @191 ++ isc_dsql_fetch_m = isc_dsql_fetch_m@28 @192 ++ isc_dsql_finish = isc_dsql_finish@4 @193 ++ isc_dsql_free_statement = isc_dsql_free_statement@12 @194 ++ isc_dsql_insert = isc_dsql_insert@16 @195 ++ isc_dsql_insert_m = isc_dsql_insert_m@28 @196 ++ isc_dsql_prepare = isc_dsql_prepare@28 @197 ++ isc_dsql_prepare_m = isc_dsql_prepare_m@40 @198 ++ isc_dsql_release = isc_dsql_release@8 @199 ++ isc_dsql_set_cursor_name = isc_dsql_set_cursor_name@16 @200 ++ isc_dsql_sql_info = isc_dsql_sql_info@24 @201 ++ ++ ; ESQL functions ++ ++ isc_embed_dsql_close = isc_embed_dsql_close@8 @202 ++ isc_embed_dsql_declare = isc_embed_dsql_declare@12 @203 ++ isc_embed_dsql_describe = isc_embed_dsql_describe@16 @204 ++ isc_embed_dsql_describe_bind = isc_embed_dsql_describe_bind@16 @205 ++ isc_embed_dsql_execute = isc_embed_dsql_execute@20 @206 ++ isc_embed_dsql_execute2 = isc_embed_dsql_execute2@24 @207 ++ isc_embed_dsql_execute_immed = isc_embed_dsql_execute_immed@28 @208 ++ isc_embed_dsql_exec_immed2 = isc_embed_dsql_exec_immed2@32 @209 ++ isc_embed_dsql_fetch = isc_embed_dsql_fetch@16 @210 ++ isc_embed_dsql_fetch_a = isc_embed_dsql_fetch_a@20 @211 ++ isc_embed_dsql_insert = isc_embed_dsql_insert@16 @212 ++ isc_embed_dsql_open = isc_embed_dsql_open@20 @213 ++ isc_embed_dsql_open2 = isc_embed_dsql_open2@24 @214 ++ isc_embed_dsql_prepare = isc_embed_dsql_prepare@32 @215 ++ isc_embed_dsql_release = isc_embed_dsql_release@8 @216 ++ isc_embed_dsql_length = isc_embed_dsql_length@8 @273 ++ ++ ; Error-handling functions ++ ++ isc_interprete = isc_interprete@8 @141 ++ fb_interpret = fb_interpret@12 ++ isc_print_sqlerror = isc_print_sqlerror@8 @150 ++ isc_print_status = isc_print_status@4 @151 ++ isc_sqlcode = isc_sqlcode@4 @165 ++ isc_sql_interprete = isc_sql_interprete@12 @164 ++ isc_sqlcode_s = isc_sqlcode_s@8 @278 ++ fb_sqlstate = fb_sqlstate@8 @279 ++ ++ ; Event functions ++ ++ isc_cancel_events = isc_cancel_events@12 @111 ++ isc_event_block = isc_event_block@0 @130 ++ isc_event_counts = isc_event_counts@16 @131 ++ isc_que_events = isc_que_events@28 @155 ++ isc_wait_for_event = isc_wait_for_event@20 @177 ++ isc_event_block_a = isc_event_block_a@16 @274 ++ isc_event_block_s = isc_event_block_s@20 @275 ++ ++ ; Security functions ++ ++ isc_add_user = isc_add_user@8 @256 ++ isc_delete_user = isc_delete_user@8 @257 ++ isc_modify_user = isc_modify_user@8 @258 ++ ++ ; Services functions ++ ++ isc_service_attach = isc_service_attach@24 @225 ++ isc_service_detach = isc_service_detach@8 @226 ++ isc_service_query = isc_service_query@36 @227 ++ isc_service_start = isc_service_start@20 @228 ++ ++ ; Transaction control functions ++ ++ isc_commit_retaining = isc_commit_retaining@8 @114 ++ isc_commit_transaction = isc_commit_transaction@8 @115 ++ isc_prepare_transaction = isc_prepare_transaction@8 @147 ++ isc_prepare_transaction2 = isc_prepare_transaction2@16 @148 ++ isc_rollback_retaining = isc_rollback_retaining@8 @260 ++ isc_rollback_transaction = isc_rollback_transaction@8 @160 ++ isc_start_multiple = isc_start_multiple@16 @167 ++ isc_start_transaction = isc_start_transaction@0 @169 ++ isc_transaction_info = isc_transaction_info@24 @171 ++ ++ ; Other functions ++ ++ isc_compile_request = isc_compile_request@20 @116 ++ isc_compile_request2 = isc_compile_request2@20 @117 ++ isc_ddl = isc_ddl@20 @123 ++ isc_prepare = isc_prepare@28 @146 ++ isc_receive = isc_receive@24 @156 ++ isc_reconnect_transaction = isc_reconnect_transaction@20 @157 ++ isc_release_request = isc_release_request@8 @158 ++ isc_request_info = isc_request_info@28 @159 ++ isc_seek_blob = isc_seek_blob@20 @161 ++ isc_send = isc_send@24 @162 ++ isc_start_and_send = isc_start_and_send@28 @166 ++ isc_start_request = isc_start_request@16 @168 ++ isc_transact_request = isc_transact_request@36 @132 ++ isc_unwind_request = isc_unwind_request@12 @172 ++ ++ ; Other SQL functions ++ ++ isc_close = isc_close@8 @112 ++ isc_declare = isc_declare@12 @124 ++ isc_describe = isc_describe@12 @126 ++ isc_describe_bind = isc_describe_bind@12 @127 ++ isc_execute = isc_execute@16 @133 ++ isc_execute_immediate = isc_execute_immediate@20 @134 ++ isc_fetch = isc_fetch@12 @136 ++ isc_fetch_a = isc_fetch_a@16 @137 ++ isc_open = isc_open@16 @143 ++ ++ ; Other BLOB functions ++ ++ BLOB_close = BLOB_close@4 @91 ++ BLOB_display = BLOB_display@16 @92 ++ BLOB_dump = BLOB_dump@16 @93 ++ BLOB_edit = BLOB_edit@16 @94 ++ BLOB_get = BLOB_get@4 @95 ++ BLOB_load = BLOB_load@16 @96 ++ BLOB_open = BLOB_open@12 @97 ++ BLOB_put = BLOB_put@8 @98 ++ BLOB_text_dump = BLOB_text_dump@16 @242 ++ BLOB_text_load = BLOB_text_load@16 @243 ++ Bopen = Bopen@16 @99 ++ ++ ; Other misc functions ++ ++ isc_ftof = isc_ftof@16 @138 ++ isc_free = isc_free@4 @241 ++ isc_print_blr = isc_print_blr@16 @149 ++ fb_print_blr = fb_print_blr@20 @280 ++ isc_qtoq = isc_qtoq@8 @154 ++ isc_reset_fpe = isc_reset_fpe@4 ++ isc_set_debug = isc_set_debug@4 @163 ++ isc_to_sqlda = isc_to_sqlda@20 @170 ++ isc_vtof = isc_vtof@12 @175 ++ isc_vtov = isc_vtov@12 @176 ++ isc_baddress = isc_baddress@4 @276 ++ isc_baddress_s = isc_baddress_s@8 @277 ++ ++ fb_ping = fb_ping@8 ++ fb_get_master_interface = fb_get_master_interface@0 ++ fb_get_database_handle = fb_get_database_handle@12 ++ fb_get_transaction_handle = fb_get_transaction_handle@12 ++ fb_database_crypt_callback = fb_database_crypt_callback@8 ++ ++ gds__trace = gds__trace@4 ++ gds__trace_raw = gds__trace_raw@8 ++ gds__trace_printer = gds__trace_printer@0 ++ gds__parse_bpb2 = gds__parse_bpb2@40 ++ ++;----------------- ++; OTHER FUNCTIONS ++;----------------- ++ ++ CVT_move = CVT_move@12 @267 ++ ++ KEYWORD_stringIsAToken = KEYWORD_stringIsAToken@4 @271 ++ KEYWORD_getTokens = KEYWORD_getTokens@0 @272 diff --git a/builds/win32/defs/fbclient64.def b/builds/win32/defs/fbclient64.def new file mode 100644 index 0000000..ed0b91e diff --git a/mingw-w64-firebird2-git/PKGBUILD b/mingw-w64-firebird2-git/PKGBUILD index a2ea40dfde..469af2a73d 100644 --- a/mingw-w64-firebird2-git/PKGBUILD +++ b/mingw-w64-firebird2-git/PKGBUILD @@ -2,7 +2,7 @@ _realname='firebird' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}2-git" -pkgver=2.5.5.26889.e7dc188 +pkgver=2.5.5.26898.3643334 pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features - version 2.x (mingw-w64)" url="http://www.firebirdsql.org/" @@ -24,13 +24,9 @@ makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird pre ) options=('!debug' 'strip') source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git#branch=branch_2_5" - mingw-w64-2_5.patch - mingw-load-crt.patch - mingw-relocate.patch) + mingw-w64-2_5.patch) sha256sums=('SKIP' - '1cf3187abdded6758162814dd65c1f44296536788abb5b56010d52ee8ab63ed8' - '3be62fb7d671cf466053e0910842984744ab7bdf3a0748e36590978d4aef7e38' - '8dbd0c9f9ea32e081f451792f3fdf0a3b2543175c0dd67f2215e8bfc83a804b6') + '8afc033eba603a7dbd166db3a4a79a4db7f1ae4ed5428f62de61a37c10284049') pkgver() { @@ -42,9 +38,6 @@ pkgver() { prepare() { cd ${_realname} git am ${srcdir}/mingw-w64-2_5.patch - - patch -p1 -i ${srcdir}/mingw-load-crt.patch - patch -p1 -i ${srcdir}/mingw-relocate.patch NOCONFIGURE=1 ./autogen.sh } diff --git a/mingw-w64-firebird2-git/mingw-load-crt.patch b/mingw-w64-firebird2-git/mingw-load-crt.patch deleted file mode 100644 index c68259fb89..0000000000 --- a/mingw-w64-firebird2-git/mingw-load-crt.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- build-x86_64-w64-mingw32/src/jrd/os/win32/mod_loader.cpp.orig 2015-06-15 12:43:29.538400000 +0300 -+++ build-x86_64-w64-mingw32/src/jrd/os/win32/mod_loader.cpp 2015-06-15 12:45:03.824800000 +0300 -@@ -74,7 +74,7 @@ - // if we don't use MSVC then we don't use MS CRT ? - // NS: versions of MSVC before 2005 and, as preliminary reports suggest, - // after 2008 do not need this hack --#if !defined(_MSC_VER) || (_MSC_VER < 1400) -+#if (!defined(_MSC_VER) || (_MSC_VER < 1400)) && !defined(__MINGW32__) - return; - #else - -@@ -89,7 +89,9 @@ - if ((*mFindActCtxSectionString) - (0, NULL, - ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, --#if _MSC_VER == 1400 -+#if defined(__MINGW32__) -+ "msvcrt.dll", -+#elif _MSC_VER == 1400 - "msvcr80.dll", - #elif _MSC_VER == 1500 - "msvcr90.dll", diff --git a/mingw-w64-firebird2-git/mingw-relocate.patch b/mingw-w64-firebird2-git/mingw-relocate.patch deleted file mode 100644 index 25b6f7fd39..0000000000 --- a/mingw-w64-firebird2-git/mingw-relocate.patch +++ /dev/null @@ -1,739 +0,0 @@ ---- build-x86_64-w64-mingw32/src/jrd/os/win32/config_root.cpp.orig 2015-06-15 12:46:56.254000000 +0300 -+++ build-x86_64-w64-mingw32/src/jrd/os/win32/config_root.cpp 2015-06-15 13:36:53.609400000 +0300 -@@ -28,6 +28,7 @@ - #include "fb_types.h" - #include "../../../common/classes/fb_string.h" - #include "../../../common/dllinst.h" -+#include "../../../common/pathtools.h" - - #include "../jrd/os/config_root.h" - #include "../utilities/install/registry.h" -@@ -88,7 +89,7 @@ - void ConfigRoot::osConfigRoot() - { - // check the registry first --#if defined(SUPERCLIENT) -+#if defined(SUPERCLIENT) && !defined(__MINGW32__) - if (getRootFromRegistry(root_dir)) - { - addSlash(); -@@ -125,7 +126,7 @@ - } - - // As a last resort get it from the default install directory -- root_dir = FB_PREFIX; -+ root_dir = single_path_relocation(FB_BINDIR,FB_PREFIX); - } - - void ConfigRoot::osConfigInstallDir() -@@ -159,5 +160,5 @@ - } - - // As a last resort get it from the default install directory -- install_dir = FB_PREFIX; -+ install_dir = single_path_relocation(FB_BINDIR,FB_PREFIX); - } ---- build-x86_64-w64-mingw32/src/jrd/os/win32/path_utils.cpp.orig 2015-06-15 13:09:03.796200000 +0300 -+++ build-x86_64-w64-mingw32/src/jrd/os/win32/path_utils.cpp 2015-06-15 13:09:31.330200000 +0300 -@@ -4,8 +4,11 @@ - #include // _access - - /// The Win32 implementation of the path_utils abstraction. -- -+#if defined(__MINGW32__) -+const char PathUtils::dir_sep = '/'; -+#else - const char PathUtils::dir_sep = '\\'; -+#endif - const char* PathUtils::up_dir_link = ".."; - - class Win32DirItr : public PathUtils::dir_iterator ---- build-x86_64-w64-mingw32/src/common/utils.cpp.orig 2015-06-15 13:03:34.560000000 +0300 -+++ build-x86_64-w64-mingw32/src/common/utils.cpp 2015-06-15 13:33:54.318600000 +0300 -@@ -43,6 +43,7 @@ - #include "../common/utils_proto.h" - #include "../common/classes/locks.h" - #include "../common/classes/init.h" -+#include "../common/pathtools.h" - #include "../jrd/constants.h" - #include "../jrd/os/path_utils.h" - #include "../jrd/os/fbsyslog.h" -@@ -929,9 +929,23 @@ - - #ifndef BOOT_BUILD - const char* configDir[] = { -- FB_BINDIR, FB_SBINDIR, FB_CONFDIR, FB_LIBDIR, FB_INCDIR, FB_DOCDIR, FB_UDFDIR, FB_SAMPLEDIR, -- FB_SAMPLEDBDIR, FB_HELPDIR, FB_INTLDIR, FB_MISCDIR, FB_SECDBDIR, FB_MSGDIR, FB_LOGDIR, -- FB_GUARDDIR, FB_PLUGDIR -+ single_path_relocation(FB_BINDIR,FB_BINDIR), -+ single_path_relocation(FB_BINDIR,FB_SBINDIR), -+ single_path_relocation(FB_BINDIR,FB_CONFDIR), -+ single_path_relocation(FB_BINDIR,FB_LIBDIR), -+ single_path_relocation(FB_BINDIR,FB_INCDIR), -+ single_path_relocation(FB_BINDIR,FB_DOCDIR), -+ single_path_relocation(FB_BINDIR,FB_UDFDIR), -+ single_path_relocation(FB_BINDIR,FB_SAMPLEDIR), -+ single_path_relocation(FB_BINDIR,FB_SAMPLEDBDIR), -+ single_path_relocation(FB_BINDIR,FB_HELPDIR), -+ single_path_relocation(FB_BINDIR,FB_INTLDIR), -+ single_path_relocation(FB_BINDIR,FB_MISCDIR), -+ single_path_relocation(FB_BINDIR,FB_SECDBDIR), -+ single_path_relocation(FB_BINDIR,FB_MSGDIR), -+ single_path_relocation(FB_BINDIR,FB_LOGDIR), -+ single_path_relocation(FB_BINDIR,FB_GUARDDIR), -+ single_path_relocation(FB_BINDIR,FB_PLUGDIR) - }; - - fb_assert(FB_NELEM(configDir) == FB_DIR_LAST); ---- build-x86_64-w64-mingw32/src/jrd/gds.cpp.orig 2015-06-15 13:12:20.423600000 +0300 -+++ build-x86_64-w64-mingw32/src/jrd/gds.cpp 2015-06-15 13:30:56.447400000 +0300 -@@ -56,6 +56,7 @@ - #include "../common/classes/timestamp.h" - #include "../common/classes/init.h" - #include "../common/classes/TempFile.h" -+#include "../common/pathtools.h" - #include "../common/utils_proto.h" - - #ifdef HAVE_UNISTD_H -@@ -3596,13 +3597,13 @@ - { - prefix = Config::getRootDirectory(); - if (prefix.isEmpty() && !GetProgramFilesDir(prefix)) -- prefix = FB_CONFDIR[0] ? FB_CONFDIR : FB_PREFIX; -+ prefix = FB_CONFDIR[0] ? single_path_relocation(FB_BINDIR,FB_CONFDIR) : single_path_relocation(FB_BINDIR,FB_PREFIX); - } - catch (Firebird::fatal_exception&) - { - // CVC: Presumably here we failed because the config file can't be located. - if (!GetProgramFilesDir(prefix)) -- prefix = FB_CONFDIR[0] ? FB_CONFDIR : FB_PREFIX; -+ prefix = FB_CONFDIR[0] ? single_path_relocation(FB_BINDIR,FB_CONFDIR) : single_path_relocation(FB_BINDIR,FB_PREFIX); - } - prefix.copyTo(fb_prefix_val, sizeof(fb_prefix_val)); - fb_prefix = fb_prefix_val; -@@ -3686,7 +3686,7 @@ - Firebird::PathName msgPrefix; - if (!fb_utils::readenv(FB_MSG_ENV, msgPrefix)) - { -- msgPrefix = FB_MSGDIR[0] ? FB_MSGDIR : prefix; -+ msgPrefix = FB_MSGDIR[0] ? single_path_relocation(FB_BINDIR,FB_MSGDIR) : prefix; - } - msgPrefix.copyTo(fb_prefix_msg_val, sizeof(fb_prefix_msg_val)); - fb_prefix_msg = fb_prefix_msg_val; ---- build-x86_64-w64-mingw32/src/common/pathtools.h.orig 1970-01-01 03:00:00.000000000 +0300 -+++ build-x86_64-w64-mingw32/src/common/pathtools.h 2014-10-19 12:49:27.000000000 +0400 -@@ -0,0 +1,53 @@ -+/* -+ .Some useful path tools. -+ .ASCII only for now. -+ .Written by Ray Donnelly in 2014. -+ .Licensed under CC0 (and anything. -+ .else you need to license it under). -+ .No warranties whatsoever. -+ .email: . -+ */ -+ -+#ifndef PATHTOOLS_H -+#define PATHTOOLS_H -+ -+#include -+#if defined(__APPLE__) -+#include -+#else -+#include -+#endif -+#include -+ -+char * malloc_copy_string(char const * original); -+ -+/* In-place replaces any '\' with '/' and any '//' with '/' */ -+void sanitise_path(char * path); -+ -+/* Uses a host OS specific function to determine the path of the executable, -+ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ -+int get_executable_path(char const * argv0, char * result, ssize_t max_size); -+ -+/* Where possible, in-place removes occourances of '.' and 'path/..' */ -+void simplify_path(char * path); -+ -+/* Allocates (via malloc) and returns the path to get from from to to. */ -+char * get_relative_path(char const * from, char const * to); -+ -+size_t split_path_list(char const * path_list, char split_char, char *** arr); -+ -+/* Advances path along by the amount that removes n prefix folders. */ -+char const * -+strip_n_prefix_folders(char const * path, size_t n); -+ -+/* NULL terminates path to remove n suffix folders. */ -+void -+strip_n_suffix_folders(char * path, size_t n); -+ -+char const * get_relocated_path (char const * from, char const * to, char const * actual_from); -+char * get_relocated_path_list(char const * from, char const * to_path_list); -+ -+char * single_path_relocation(const char *from, const char *to); -+char * pathlist_relocation(const char *from_path, const char *to_path_list); -+ -+#endif /* PATHTOOLS_H */ ---- build-x86_64-w64-mingw32/src/common/pathtools.cpp.orig 1970-01-01 03:00:00.000000000 +0300 -+++ build-x86_64-w64-mingw32/src/common/pathtools.cpp 2014-10-04 16:14:48.000000000 +0400 -@@ -0,0 +1,538 @@ -+/* -+ .Some useful path tools. -+ .ASCII only for now. -+ .Written by Ray Donnelly in 2014. -+ .Licensed under CC0 (and anything. -+ .else you need to license it under). -+ .No warranties whatsoever. -+ .email: . -+ */ -+ -+#if defined(__APPLE__) -+#include -+#else -+#include -+#endif -+#include -+#include -+#include -+#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) -+#include -+#endif -+#include -+ -+/* If you don't define this, then get_executable_path() -+ can only use argv[0] which will often not work well */ -+#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH -+ -+#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) -+#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) -+/* Nothing needed, unistd.h is enough. */ -+#elif defined(__APPLE__) -+#include -+#elif defined(_WIN32) -+#define WIN32_MEAN_AND_LEAN -+#include -+#include -+#endif -+#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ -+ -+#include "pathtools.h" -+ -+char * -+malloc_copy_string(char const * original) -+{ -+ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); -+ if (result != NULL) -+ { -+ strcpy (result, original); -+ } -+ return result; -+} -+ -+void -+sanitise_path(char * path) -+{ -+ size_t path_size = strlen (path); -+ -+ /* Replace any '\' with '/' */ -+ char * path_p = path; -+ while ((path_p = strchr (path_p, '\\')) != NULL) -+ { -+ *path_p = '/'; -+ } -+ /* Replace any '//' with '/' */ -+ path_p = path; -+ while ((path_p = strstr (path_p, "//")) != NULL) -+ { -+ memmove (path_p, path_p + 1, path_size--); -+ } -+ return; -+} -+ -+char * -+get_relative_path(char const * from_in, char const * to_in) -+{ -+ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); -+ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); -+ size_t max_size = (from_size + to_size) * 2 + 4; -+ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); -+ char * from; -+ char * to; -+ char * common_part; -+ char * result; -+ size_t count; -+ -+ /* No to, return "./" */ -+ if (to_in == NULL) -+ { -+ return malloc_copy_string ("./"); -+ } -+ -+ /* If alloca failed or no from was given return a copy of to */ -+ if ( from_in == NULL -+ || scratch_space == NULL ) -+ { -+ return malloc_copy_string (to_in); -+ } -+ -+ from = scratch_space; -+ strcpy (from, from_in); -+ to = from + from_size + 1; -+ strcpy (to, to_in); -+ common_part = to + to_size + 1; -+ result = common_part + max_size; -+ simplify_path (from); -+ simplify_path (to); -+ -+ result[0] = '\0'; -+ -+ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ -+ size_t match_size = 0; /* The running (and final) match size. */ -+ size_t largest_size = (from_size > to_size) ? from_size : to_size; -+ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; -+ char from_c; -+ char to_c; -+ for (match_size = 0; match_size < largest_size; ++match_size) -+ { -+ /* To simplify the logic, always pretend the strings end with '/' */ -+ from_c = (match_size < from_size) ? from[match_size] : '/'; -+ to_c = (match_size < to_size) ? to[match_size] : '/'; -+ -+ if (from_c != to_c) -+ { -+ if (from_c != '\0' || to_c != '\0') -+ { -+ match_size = match_size_dirsep; -+ } -+ break; -+ } -+ else if (from_c == '/') -+ { -+ match_size_dirsep = match_size; -+ } -+ } -+ strncpy (common_part, from, match_size); -+ common_part[match_size] = '\0'; -+ from += match_size; -+ to += match_size; -+ size_t ndotdots = 0; -+ char const* from_last = from + strlen(from) - 1; -+ while ((from = strchr (from, '/')) && from != from_last) -+ { -+ ++ndotdots; -+ ++from; -+ } -+ for (count = 0; count < ndotdots; ++count) -+ { -+ strcat(result, "../"); -+ } -+ if (strlen(to) > 0) -+ { -+ strcat(result, to+1); -+ } -+ /* Make sure that if to ends with '/' result does the same, and -+ vice-versa. */ -+ size_t size_result = strlen(result); -+ if ((to_final_is_slash == 1) -+ && (!size_result || result[size_result-1] != '/')) -+ { -+ strcat (result, "/"); -+ } -+ else if (!to_final_is_slash -+ && size_result && result[size_result-1] == '/') -+ { -+ result[size_result-1] = '\0'; -+ } -+ -+ return malloc_copy_string (result); -+} -+ -+void -+simplify_path(char * path) -+{ -+ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ -+ ssize_t i, j; -+ size_t tok_size; -+ size_t in_size = strlen (path); -+ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; -+ char * result = path; -+ sanitise_path(result); -+ char * result_p = result; -+ -+ do -+ { -+ ++n_toks; -+ ++result_p; -+ } while ((result_p = strchr (result_p, '/')) != NULL); -+ -+ result_p = result; -+ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); -+ n_toks = 0; -+ do -+ { -+ if (result_p > result) -+ { -+ *result_p++ = '\0'; -+ } -+ else if (*result_p == '/') -+ { -+ /* A leading / creates an empty initial token. */ -+ toks[n_toks++] = result_p; -+ *result_p++ = '\0'; -+ } -+ toks[n_toks++] = result_p; -+ } while ((result_p = strchr (result_p, '/')) != NULL); -+ -+ /* Remove all non-leading '.' and any '..' we can match -+ with an earlier forward path (i.e. neither '.' nor '..') */ -+ for (i = 1; i < n_toks; ++i) -+ { -+ int removals[2] = { -1, -1 }; -+ if ( strcmp (toks[i], "." ) == 0) -+ { -+ removals[0] = i; -+ } -+ else if ( strcmp (toks[i], ".." ) == 0) -+ { -+ /* Search backwards for a forward path to collapse. -+ If none are found then the .. also stays. */ -+ for (j = i - 1; j > -1; --j) -+ { -+ if ( strcmp (toks[j], "." ) -+ && strcmp (toks[j], ".." ) ) -+ { -+ removals[0] = j; -+ removals[1] = i; -+ break; -+ } -+ } -+ } -+ for (j = 0; j < 2; ++j) -+ { -+ if (removals[j] >= 0) /* Can become -2 */ -+ { -+ --n_toks; -+ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); -+ --i; -+ if (!j) -+ { -+ --removals[1]; -+ } -+ } -+ } -+ } -+ result_p = result; -+ for (i = 0; i < n_toks; ++i) -+ { -+ tok_size = strlen(toks[i]); -+ memcpy (result_p, toks[i], tok_size); -+ result_p += tok_size; -+ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) -+ { -+ *result_p = '/'; -+ ++result_p; -+ } -+ } -+ *result_p = '\0'; -+} -+ -+/* Returns actual_to by calculating the relative path from -> to and -+ applying that to actual_from. An assumption that actual_from is a -+ dir is made, and it may or may not end with a '/' */ -+char const * -+get_relocated_path (char const * from, char const * to, char const * actual_from) -+{ -+ char const * relative_from_to = get_relative_path (from, to); -+ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); -+ return actual_to; -+} -+ -+int -+get_executable_path(char const * argv0, char * result, ssize_t max_size) -+{ -+ char * system_result = (char *) alloca (max_size); -+ ssize_t system_result_size = -1; -+ ssize_t result_size = -1; -+ -+ if (system_result != NULL) -+ { -+#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) -+#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) -+ system_result_size = readlink("/proc/self/exe", system_result, max_size); -+#elif defined(__APPLE__) -+ uint32_t bufsize = (uint32_t)max_size; -+ if (_NSGetExecutablePath(system_result, &bufsize) == 0) -+ { -+ system_result_size = (ssize_t)bufsize; -+ } -+#elif defined(_WIN32) -+ unsigned long bufsize = (unsigned long)max_size; -+ system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); -+ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) -+ { -+ /* Error, possibly not enough space. */ -+ system_result_size = -1; -+ } -+ else -+ { -+ /* Early conversion to unix slashes instead of more changes -+ everywhere else .. */ -+ char * winslash; -+ system_result[system_result_size] = '\0'; -+ while ((winslash = strchr (system_result, '\\')) != NULL) -+ { -+ *winslash = '/'; -+ } -+ } -+#else -+#warning "Don't know how to get executable path on this system" -+#endif -+#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ -+ } -+ /* Use argv0 as a default in-case of failure */ -+ if (system_result_size != -1) -+ { -+ strncpy (result, system_result, system_result_size); -+ result[system_result_size] = '\0'; -+ } -+ else -+ { -+ if (argv0 != NULL) -+ { -+ strncpy (result, argv0, max_size); -+ result[max_size-1] = '\0'; -+ } -+ else -+ { -+ result[0] = '\0'; -+ } -+ } -+ result_size = strlen (result); -+ return result_size; -+} -+ -+char const * -+strip_n_prefix_folders(char const * path, size_t n) -+{ -+ if (path == NULL) -+ { -+ return NULL; -+ } -+ -+ if (path[0] != '/') -+ { -+ return path; -+ } -+ -+ char const * last = path; -+ while (n-- && path != NULL) -+ { -+ last = path; -+ path = strchr (path + 1, '/'); -+ } -+ return (path == NULL) ? last : path; -+} -+ -+void -+strip_n_suffix_folders(char * path, size_t n) -+{ -+ if (path == NULL) -+ { -+ return; -+ } -+ while (n--) -+ { -+ if (strrchr (path + 1, '/')) -+ { -+ *strrchr (path + 1, '/') = '\0'; -+ } -+ else -+ { -+ return; -+ } -+ } -+ return; -+} -+ -+size_t -+split_path_list(char const * path_list, char split_char, char *** arr) -+{ -+ size_t path_count; -+ size_t path_list_size; -+ char const * path_list_p; -+ -+ path_list_p = path_list; -+ if (path_list == NULL || path_list[0] == '\0') -+ { -+ return 0; -+ } -+ path_list_size = strlen (path_list); -+ -+ path_count = 0; -+ do -+ { -+ ++path_count; -+ ++path_list_p; -+ } -+ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); -+ -+ /* allocate everything in one go. */ -+ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); -+ if (all_memory == NULL) -+ return 0; -+ *arr = (char **)all_memory; -+ all_memory += sizeof (char *) * path_count; -+ -+ path_count = 0; -+ path_list_p = path_list; -+ char const * next_path_list_p = 0; -+ do -+ { -+ next_path_list_p = strchr (path_list_p, split_char); -+ if (next_path_list_p != NULL) -+ { -+ ++next_path_list_p; -+ } -+ size_t this_size = (next_path_list_p != NULL) -+ ? next_path_list_p - path_list_p - 1 -+ : &path_list[path_list_size] - path_list_p; -+ memcpy (all_memory, path_list_p, this_size); -+ all_memory[this_size] = '\0'; -+ (*arr)[path_count++] = all_memory; -+ all_memory += this_size + 1; -+ } while ((path_list_p = next_path_list_p) != NULL); -+ -+ return path_count; -+} -+ -+char * -+get_relocated_path_list(char const * from, char const * to_path_list) -+{ -+ char exe_path[MAX_PATH]; -+ char * temp; -+ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); -+ if ((temp = strrchr (exe_path, '/')) != NULL) -+ { -+ temp[1] = '\0'; -+ } -+ -+ char **arr = NULL; -+ /* Ask Alexey why he added this. Are we not 100% sure -+ that we're dealing with unix paths here? */ -+ char split_char = ':'; -+ if (strchr (to_path_list, ';')) -+ { -+ split_char = ';'; -+ } -+ size_t count = split_path_list (to_path_list, split_char, &arr); -+ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ -+ size_t exe_path_size = strlen (exe_path); -+ size_t i; -+ /* Space required is: -+ count * (exe_path_size + strlen (rel_to_datadir)) -+ rel_to_datadir upper bound is: -+ (count * strlen (from)) + (3 * num_slashes (from)) -+ + strlen(arr[i]) + 1. -+ .. pathalogically num_slashes (from) is strlen (from) -+ (from = ////////) */ -+ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; -+ for (i = 0; i < count; ++i) -+ { -+ space_required += strlen (arr[i]); -+ } -+ char * scratch = (char *) alloca (space_required); -+ if (scratch == NULL) -+ return NULL; -+ for (i = 0; i < count; ++i) -+ { -+ char * rel_to_datadir = get_relative_path (from, arr[i]); -+ scratch[0] = '\0'; -+ arr[i] = scratch; -+ strcat (scratch, exe_path); -+ strcat (scratch, rel_to_datadir); -+ simplify_path (arr[i]); -+ size_t arr_i_size = strlen (arr[i]); -+ result_size += arr_i_size; -+ scratch = arr[i] + arr_i_size + 1; -+ } -+ char * result = (char *) malloc (result_size); -+ if (result == NULL) -+ { -+ return NULL; -+ } -+ result[0] = '\0'; -+ for (i = 0; i < count; ++i) -+ { -+ strcat (result, arr[i]); -+ if (i != count-1) -+ { -+#if defined(_WIN32) -+ strcat (result, ";"); -+#else -+ strcat (result, ":"); -+#endif -+ } -+ } -+ free ((void*)arr); -+ return result; -+} -+ -+char * -+single_path_relocation(const char *from, const char *to) -+{ -+#if defined(__MINGW32__) -+ char exe_path[PATH_MAX]; -+ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); -+ if (strrchr (exe_path, '/') != NULL) -+ { -+ strrchr (exe_path, '/')[1] = '\0'; -+ } -+ char * rel_to_datadir = get_relative_path (from, to); -+ strcat (exe_path, rel_to_datadir); -+ simplify_path (&exe_path[0]); -+ return malloc_copy_string(exe_path); -+#else -+ return malloc_copy_string(to); -+#endif -+} -+ -+char * -+pathlist_relocation(const char *from_path, const char *to_path_list) -+{ -+#if defined(__MINGW32__) -+ static char stored_path[PATH_MAX]; -+ static int stored = 0; -+ if (stored == 0) -+ { -+ char const * relocated = get_relocated_path_list(from_path, to_path_list); -+ strncpy (stored_path, relocated, PATH_MAX); -+ stored_path[PATH_MAX-1] = '\0'; -+ free ((void *)relocated); -+ stored = 1; -+ } -+ return stored_path; -+#else -+ return (to_path_list); -+#endif -+} ---- build-x86_64-w64-mingw32/builds/posix/make.shared.variables.orig 2015-06-15 13:46:24.032800000 +0300 -+++ build-x86_64-w64-mingw32/builds/posix/make.shared.variables 2015-06-15 13:50:57.703600000 +0300 -@@ -259,7 +259,7 @@ - # common - - FBCOMMON_ClientFiles = fb_exception.cpp thd.cpp classes/MetaName.cpp StatusHolder.cpp classes/init.cpp StatusArg.cpp --FBCOMMON_ServerFiles = utils.cpp -+FBCOMMON_ServerFiles = utils.cpp pathtools.cpp - - FBCOMMON_ClientObjects = $(addprefix $(OBJ)/common/, $(addsuffix .o, $(basename $(FBCOMMON_ClientFiles)))) \ - $(addprefix $(OBJ)/jrd/, $(addsuffix .o, $(basename fbsyslog.cpp))) -@@ -287,7 +287,7 @@ - # just in case if make.platform defined some files - OS_SPECIFIC_Files += config_root.cpp path_utils.cpp mod_loader.cpp guid.cpp os_utils.cpp - --OS_SPECIFIC_Sources = $(addprefix jrd/, $(OS_SPECIFIC_Files)) common/dllinst.cpp -+OS_SPECIFIC_Sources = $(addprefix jrd/, $(OS_SPECIFIC_Files)) common/dllinst.cpp common/pathtools.cpp - ifneq ($(strip @BINRELOC_CFLAGS@),) - OS_SPECIFIC_Sources += $(ROOT)/extern/binreloc/binreloc.c - endif diff --git a/mingw-w64-firebird2-git/mingw-w64-2_5.patch b/mingw-w64-firebird2-git/mingw-w64-2_5.patch index c4a269a8e2..92d1b5d1a1 100644 --- a/mingw-w64-firebird2-git/mingw-w64-2_5.patch +++ b/mingw-w64-firebird2-git/mingw-w64-2_5.patch @@ -1,4 +1,4 @@ -From 3e38f9f7ec8f010fcbdab60b768d2c5e27b49ae7 Mon Sep 17 00:00:00 2001 +From 040e7991a66b7a116c2b2aec3845070feae9b1d6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 07:39:37 +0300 Subject: [PATCH] Remove hardcoded march to allow 64-bit builds. @@ -25,7 +25,7 @@ index fd36abe..04e0978 100644 -- 2.4.3 -From 0ed8f717543788f0c38324f4bcc550ff4e8025a0 Mon Sep 17 00:00:00 2001 +From 388764fb68898fe4f2d2c2032eb20dd537221b32 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 06:18:02 +0300 Subject: [PATCH] Always use Win32 threads for mingw. @@ -35,7 +35,7 @@ Subject: [PATCH] Always use Win32 threads for mingw. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jrd/common.h b/src/jrd/common.h -index 875040f..ca57c71 100644 +index ae54880..49e8b60 100644 --- a/src/jrd/common.h +++ b/src/jrd/common.h @@ -65,7 +65,7 @@ @@ -50,7 +50,7 @@ index 875040f..ca57c71 100644 -- 2.4.3 -From 45d71e7fa21beeb444a5e3b8c60207db1b6cf38f Mon Sep 17 00:00:00 2001 +From 25ab2a5c3452e500fb88929f8b31b4b15e9e37ad Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 08:56:28 +0300 Subject: [PATCH] Define AMD64 for 64-bit mingw. @@ -80,7 +80,7 @@ index 86e89f1..d345348 100644 -- 2.4.3 -From 56c1e99e9eb1fe8c1e822132332c72a9e6fd97b6 Mon Sep 17 00:00:00 2001 +From eebccb1a6b54c304e71295b4e0681fb1bc06fc59 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 09:20:35 +0300 Subject: [PATCH] mingw-w64 have isinf @@ -105,7 +105,7 @@ index e0e36ac..363cad5 100644 -- 2.4.3 -From 68681019a2aa6c93f1ec99fa368df23578f3f6bc Mon Sep 17 00:00:00 2001 +From 74d9460e370d88aace248cb83a77c70c998c6d9b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 09:57:27 +0300 Subject: [PATCH] Fix cast error. @@ -139,7 +139,7 @@ index c3816a8..f05de04 100644 -- 2.4.3 -From e9aa5ea0fb2ed70f036c13eb17821242c3482c7d Mon Sep 17 00:00:00 2001 +From ca424f7f14051b4bb2dcb6f2a78f62dec372ed47 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 10:08:42 +0300 Subject: [PATCH] mingw-w64 don't need hack for SecPkgContext_AccessToken @@ -164,7 +164,7 @@ index d420041..15b859c 100644 -- 2.4.3 -From 574e99459f6bec4857fcf459628651ca8f2b3b98 Mon Sep 17 00:00:00 2001 +From ee27fb5a5b44aaa6c8cdf2e9bb98a8cafc85e51f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 10:09:19 +0300 Subject: [PATCH] Use modern ICU libraries when link with system wide ICU. @@ -191,7 +191,7 @@ index 04e0978..7523670 100644 -- 2.4.3 -From 57b07ada01bcfa4deb9da61563823b184e5bbb10 Mon Sep 17 00:00:00 2001 +From 091fa8c6af051c2b2c28cc3fe7151fdcfbada1a7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 13:28:03 +0300 Subject: [PATCH] mingw-w64 don't have win98 support. @@ -216,7 +216,7 @@ index bbb9440..de6b2f8 100644 -- 2.4.3 -From f334249bd5d7ca5947940488d7b210f096e2d64d Mon Sep 17 00:00:00 2001 +From 0d645a60d9428071de004b66a5b42da71be6b44c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 15:47:34 +0300 Subject: [PATCH] Fix using function pointer. @@ -264,7 +264,7 @@ index 75ba194..d2ddb7d 100644 -- 2.4.3 -From 30e30e96daf43c5dcb42bd3c57d8df362589bb59 Mon Sep 17 00:00:00 2001 +From fe9183946307439cf80717e0a5d73834ff82cde1 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 18:54:37 +0300 Subject: [PATCH] Fix redefinition of matherr. @@ -293,7 +293,7 @@ index c5a620d..9017228 100644 -- 2.4.3 -From e5e3455760e07ced13c9c91b7aaa2e3116ace50d Mon Sep 17 00:00:00 2001 +From 1f2879b2cd476e9260c335951a21f0d5d9876618 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 21:44:53 +0300 Subject: [PATCH] Don't export gds__print_pool as it not part of API according @@ -319,7 +319,7 @@ index e3949fc..0b6852f 100644 -- 2.4.3 -From e3a94cfa6fe9686da6639b9605b7623c0aa960ac Mon Sep 17 00:00:00 2001 +From 0bfbf421ab2e5dcfe9af435c88c86a114f38c94e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 22:06:27 +0300 Subject: [PATCH] mingw-w64 have fenv.h @@ -353,7 +353,7 @@ index 363cad5..93e48be 100644 -- 2.4.3 -From 3ac3bbf82501f0b70b07cb5a1834885524b19763 Mon Sep 17 00:00:00 2001 +From 2451d9f71a68b84d3256d8e71b2feefc2508829e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 21 Nov 2014 12:38:29 +0300 Subject: [PATCH] Fix cast error for 64-bit. @@ -378,7 +378,7 @@ index fd0f75c..a0bf167 100644 -- 2.4.3 -From ceda81a2ad529ef0711bfa7136b053637d97f760 Mon Sep 17 00:00:00 2001 +From ae55d9f83c245655ad4cfbc2c7de79bcac5b3774 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 21 Nov 2014 14:21:32 +0300 Subject: [PATCH] Fix source extension. @@ -403,7 +403,7 @@ index 7523670..ac1327c 100644 -- 2.4.3 -From 9405c09c70b553e49e7fe385386aba1fb3225d3e Mon Sep 17 00:00:00 2001 +From 54226188d61f2edbbe8453b8f93e7c8a6288913e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 22 Nov 2014 12:03:41 +0300 Subject: [PATCH] Move extra mingw sources definitions for fbintl to @@ -443,7 +443,7 @@ index 57ecb34..8d1e4e4 100644 -- 2.4.3 -From a3a93057d7dec63d04e583080c47009466b9eb2a Mon Sep 17 00:00:00 2001 +From 96ce4d2f57a06a1643b5864cc74fb00928b237fd Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 22 Nov 2014 22:59:59 +0300 Subject: [PATCH] Add missing sources for utils building. @@ -545,7 +545,7 @@ index 0f1a09e..daee0d8 100644 -- 2.4.3 -From d671d8b1d4bec4683c3be258afacacbc47f640cc Mon Sep 17 00:00:00 2001 +From 665da4221ab9a54a2d927f506956e8f1ee72bb00 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 23 Nov 2014 00:13:24 +0300 Subject: [PATCH] smtp_server: Add win32 platform files. @@ -571,7 +571,7 @@ index d59b07a..ad471fd 100644 -- 2.4.3 -From 5cba22ce0e704841f7b808298a8d60a86aa10425 Mon Sep 17 00:00:00 2001 +From 19ad463e1d0eb2fbe94a51fb7bd3644feb1bcc05 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 23 Nov 2014 13:27:02 +0300 Subject: [PATCH] Fix building net_server and mp_server with mingw @@ -614,20 +614,26 @@ index 1bc3872..f386021 100644 -- 2.4.3 -From 715f7f59c04684720bd120c87a905052aececc92 Mon Sep 17 00:00:00 2001 +From a27a60606a72b99c9956b4188d1b31d38159fb9c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 26 Nov 2014 09:27:40 +0300 Subject: [PATCH] For mingw place dll's into BIN and generate import libraries in LIB. Don't link with def files. --- - builds/posix/make.defaults | 13 +++++++------ - builds/posix/prefix.mingw | 38 ++++++++++++++++++++++++-------------- - 2 files changed, 31 insertions(+), 20 deletions(-) + builds/posix/make.defaults | 18 +- + builds/posix/prefix.mingw | 38 ++- + builds/win32/defs/fbclient32.def | 707 +++++++++++++++++++++++++++++++++++++++ + builds/win32/defs/fbclient64.def | 361 ++++++++++++++++++++ + 4 files changed, 1104 insertions(+), 20 deletions(-) + create mode 100644 builds/win32/defs/fbclient32.def + create mode 100644 builds/win32/defs/fbclient64.def diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults -index bced0da..34fd3e9 100755 -@@ -93,6 +93,11 @@ +index bced0da..bc96ceb 100755 +--- a/builds/posix/make.defaults ++++ b/builds/posix/make.defaults +@@ -93,6 +93,11 @@ IsProdTypeBuild = @PROD_BUILD_FLG@ CpuType=@CPU_TYPE@ @@ -639,9 +645,7 @@ index bced0da..34fd3e9 100755 PLATFORM=@PLATFORM@ ifeq (@FIREBIRD_ARCH_TYPE@,classic) ArchPrefix=CS ---- a/builds/posix/make.defaults -+++ b/builds/posix/make.defaults -@@ -193,9 +193,9 @@ BLRTABLE = $(BIN)/blrtable$(EXEC_EXT) +@@ -193,9 +198,9 @@ BLRTABLE = $(BIN)/blrtable$(EXEC_EXT) # Scold me, but I don't want library names to be in configure.in # @@ -654,7 +658,7 @@ index bced0da..34fd3e9 100755 LIBFBEMBED_SO = $(LIB)/$(SharedLibraryName) LIBFBEMBED_SOBASENAME = $(LIB)/$(SharedLibrarySoName) -@@ -261,6 +261,7 @@ LIB_LINK_RPATH = $(call LIB_PLATFORM_RPATH,'$$$$ORIGIN/../$(1)') +@@ -261,6 +266,7 @@ LIB_LINK_RPATH = $(call LIB_PLATFORM_RPATH,'$$$$ORIGIN/../$(1)') endif LIB_PATH_OPTS = $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_RPATH,intl) LIB_LINK_SONAME= -Wl,-soname,$(1) @@ -662,7 +666,7 @@ index bced0da..34fd3e9 100755 LIB_LINK_MAPFILE= -Wl,--version-script, FBEMBED_LINK= -L$(LIB) -lfbembed -@@ -281,7 +282,7 @@ LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_ +@@ -281,7 +287,7 @@ LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_ LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS)\ @@ -671,7 +675,7 @@ index bced0da..34fd3e9 100755 LINK_IB_UTIL_LIBS = $(THR_LIBS) LINK_INTL = $(LIB_LINK) $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS)\ -@@ -293,11 +294,11 @@ LINK_TRACE = $(LIB_LINK) $(LINK_TRACE_SYMBOLS) $(LIB_LINK_OPTIONS)\ +@@ -293,11 +299,11 @@ LINK_TRACE = $(LIB_LINK) $(LINK_TRACE_SYMBOLS) $(LIB_LINK_OPTIONS)\ LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) LINK_CLIENT = $(CLIENTLIB_LINK) $(LINK_FIREBIRD_CLIENT_SYMBOLS) $(LIB_LINK_OPTIONS)\ @@ -686,7 +690,7 @@ index bced0da..34fd3e9 100755 # From utilities diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw -index ac1327c..09a5103 100644 +index ac1327c..8e514d8 100644 --- a/builds/posix/prefix.mingw +++ b/builds/posix/prefix.mingw @@ -36,16 +36,12 @@ OS_ServerFiles= os/win32/srvr_w32.cpp os/win32/window.cpp os/win32/chop.cpp os/w @@ -752,10 +756,10 @@ index ac1327c..09a5103 100644 LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) $(ICU_LIBS) diff --git a/builds/win32/defs/fbclient32.def b/builds/win32/defs/fbclient32.def new file mode 100644 -index d345348..346a94d 100644 +index 0000000..b14e89a --- /dev/null +++ b/builds/win32/defs/fbclient32.def -@@ -0,0 +1,361 @@ +@@ -0,0 +1,703 @@ +; The contents of this file are subject to the Interbase Public +; License Version 1.0 (the "License"); you may not use this file +; except in compliance with the License. You may obtain a copy @@ -780,103 +784,103 @@ index d345348..346a94d 100644 +; PRIVATE INTERFACE +;------------------- + -+ gds__alloc@4 @1 -+ gds__attach_database@24 @2 -+ gds__blob_info@24 @3 -+ gds__blob_size@16 @4 -+ gds__cancel_blob@8 @5 -+ gds__cancel_events@12 @6 -+ gds__close@8 @7 -+ gds__close_blob@8 @8 -+ gds__commit_retaining@8 @9 -+ gds__commit_transaction@8 @10 -+ gds__compile_request@20 @11 -+ gds__compile_request2@20 @12 -+ gds__create_blob@20 @13 -+ gds__create_blob2@28 @14 -+ gds__create_database@28 @15 -+ gds__database_cleanup@16 @16 -+ gds__database_info@24 @17 -+ gds__ddl@20 @18 -+ gds__declare@12 @19 -+ gds__decode@12 @20 -+ gds__decode_date@8 @21 -+ gds__describe@12 @22 -+ gds__describe_bind@12 @23 -+ gds__detach_database@8 @24 -+ gds__disable_subsystem@4 @25 -+ gds__dsql_finish@4 @26 -+ gds__edit@8 @27 -+ gds__enable_subsystem@4 @28 -+ gds__encode@8 @29 -+ gds__encode_date@8 @30 -+ gds__event_block @31 -+ gds__event_counts@16 @32 -+ gds__event_wait@20 @33 -+ gds__execute@16 @34 -+ gds__execute_immediate@20 @35 -+ gds__fetch@12 @36 -+ gds__free@4 @37 -+ gds__ftof@16 @38 -+ gds__get_prefix@8 @248 -+ gds__get_segment@20 @39 -+ gds__get_slice@44 @40 -+ gds__interprete@8 @41 -+ gds__log @42 -+ gds__log_status@8 @142 -+ gds__map_blobs@8 @240 -+ gds__msg_close@4 @223 -+ gds__msg_format@40 @43 -+ gds__msg_lookup@24 @44 -+ gds__msg_open@8 @45 -+ gds__msg_put@32 @46 -+ gds__open@16 @47 -+ gds__open_blob@20 @48 -+ gds__open_blob2@28 @49 -+ gds__parse_bpb@16 @50 -+ gds__prefix@8 @51 -+ gds__prefix_lock@8 @249 -+ gds__prefix_msg@8 @250 -+ gds__prepare@28 @52 -+ gds__prepare_transaction@8 @53 -+ gds__prepare_transaction2@16 @54 -+ gds__print_blr@16 @55 -+ gds__print_status@4 @56 -+ gds__put_error@4 @57 -+ gds__put_segment@16 @58 -+ gds__put_slice@40 @59 -+ gds__qtoq@8 @60 -+ gds__que_events@28 @61 -+ gds__receive@24 @62 -+ gds__reconnect_transaction@20 @63 -+ gds__register_cleanup@8 @64 -+ gds__release_request@8 @65 -+ gds__request_info@28 @66 -+ gds__rollback_transaction@8 @67 -+ gds__seek_blob@20 @68 -+ gds__send@24 @69 -+ gds__set_debug@4 @70 -+ gds__sqlcode@4 @71 -+ gds__start_and_send@28 @72 -+ gds__start_multiple@16 @73 -+ gds__start_request@16 @74 -+ gds__start_transaction @75 -+ gds__temp_file@20 @231 -+ gds__thread_enable@4 @76 -+ gds__thread_enter@0 @77 -+ gds__thread_exit@0 @78 -+ gds__thread_start@20 @79 -+ gds__to_sqlda@20 @80 -+ gds__transaction_cleanup@16 @235 -+ gds__transaction_info@24 @81 -+ gds__unregister_cleanup@8 @224 -+ gds__unwind_request@12 @82 -+ gds__validate_lib_path@16 @255 -+ gds__vax_integer@8 @83 -+ gds__version@12 @84 -+ gds__vtof@12 @85 -+ gds__vtov@12 @86 -+ gds__default_printer @87 ++ gds__alloc@4 ++ gds__attach_database@24 ++ gds__blob_info@24 ++ gds__blob_size@16 ++ gds__cancel_blob@8 ++ gds__cancel_events@12 ++ gds__close@8 ++ gds__close_blob@8 ++ gds__commit_retaining@8 ++ gds__commit_transaction@8 ++ gds__compile_request@20 ++ gds__compile_request2@20 ++ gds__create_blob@20 ++ gds__create_blob2@28 ++ gds__create_database@28 ++ gds__database_cleanup@16 ++ gds__database_info@24 ++ gds__ddl@20 ++ gds__declare@12 ++ gds__decode@12 ++ gds__decode_date@8 ++ gds__describe@12 ++ gds__describe_bind@12 ++ gds__detach_database@8 ++ gds__disable_subsystem@4 ++ gds__dsql_finish@4 ++ gds__edit@8 ++ gds__enable_subsystem@4 ++ gds__encode@8 ++ gds__encode_date@8 ++ gds__event_block@0 ++ gds__event_counts@16 ++ gds__event_wait@20 ++ gds__execute@16 ++ gds__execute_immediate@20 ++ gds__fetch@12 ++ gds__free@4 ++ gds__ftof@16 ++ gds__get_prefix@8 ++ gds__get_segment@20 ++ gds__get_slice@44 ++ gds__interprete@8 ++ gds__log@0 ++ gds__log_status@8 ++ gds__map_blobs@8 ++ gds__msg_close@4 ++ gds__msg_format@40 ++ gds__msg_lookup@24 ++ gds__msg_open@8 ++ gds__msg_put@32 ++ gds__open@16 ++ gds__open_blob@20 ++ gds__open_blob2@28 ++ gds__parse_bpb@16 ++ gds__prefix@8 ++ gds__prefix_lock@8 ++ gds__prefix_msg@8 ++ gds__prepare@28 ++ gds__prepare_transaction@8 ++ gds__prepare_transaction2@16 ++ gds__print_blr@16 ++ gds__print_status@4 ++ gds__put_error@4 ++ gds__put_segment@16 ++ gds__put_slice@40 ++ gds__qtoq@8 ++ gds__que_events@28 ++ gds__receive@24 ++ gds__reconnect_transaction@20 ++ gds__register_cleanup@8 ++ gds__release_request@8 ++ gds__request_info@28 ++ gds__rollback_transaction@8 ++ gds__seek_blob@20 ++ gds__send@24 ++ gds__set_debug@4 ++ gds__sqlcode@4 ++ gds__start_and_send@28 ++ gds__start_multiple@16 ++ gds__start_request@16 ++ gds__start_transaction@0 ++ gds__temp_file@20 ++ gds__thread_enable@4 ++ gds__thread_enter@0 ++ gds__thread_exit@0 ++ gds__thread_start@20 ++ gds__to_sqlda@20 ++ gds__transaction_cleanup@16 ++ gds__transaction_info@24 ++ gds__unregister_cleanup@8 ++ gds__unwind_request@12 ++ gds__validate_lib_path@16 ++ gds__vax_integer@8 ++ gds__version@12 ++ gds__vtof@12 ++ gds__vtov@12 ++ gds__default_printer@0 + + gds__alloc_debug@12 + @@ -888,9 +892,9 @@ index d345348..346a94d 100644 + fb_cancel_operation@12 + fb_disconnect_transaction@8 + -+ perf_format@20 @100 -+ perf_get_info@8 @101 -+ perf_report@16 @102 ++ perf_format@20 ++ perf_get_info@8 ++ perf_report@16 + + perf64_format@20 + perf64_get_info@8 @@ -902,224 +906,566 @@ index d345348..346a94d 100644 + + ; Array functions + -+ isc_array_gen_sdl@20 @217 -+ isc_array_get_slice@28 @218 -+ isc_array_lookup_bounds@24 @219 -+ isc_array_lookup_desc@24 @220 -+ isc_array_put_slice@28 @221 -+ isc_array_set_desc@28 @222 -+ isc_get_slice@44 @140 -+ isc_put_slice@40 @153 ++ isc_array_gen_sdl@20 ++ isc_array_get_slice@28 ++ isc_array_lookup_bounds@24 ++ isc_array_lookup_desc@24 ++ isc_array_put_slice@28 ++ isc_array_set_desc@28 ++ isc_get_slice@44 ++ isc_put_slice@40 + + ; BLOB functions + -+ isc_blob_default_desc@12 @239 -+ isc_blob_gen_bpb@24 @236 -+ isc_blob_info@24 @108 -+ isc_blob_lookup_desc@28 @237 -+ isc_blob_set_desc@28 @238 -+ isc_cancel_blob@8 @110 -+ isc_close_blob@8 @113 -+ isc_create_blob@20 @118 -+ isc_create_blob2@28 @119 -+ isc_get_segment@20 @139 -+ isc_open_blob@20 @144 -+ isc_open_blob2@28 @145 -+ isc_put_segment@16 @152 ++ isc_blob_default_desc@12 ++ isc_blob_gen_bpb@24 ++ isc_blob_info@24 ++ isc_blob_lookup_desc@28 ++ isc_blob_set_desc@28 ++ isc_cancel_blob@8 ++ isc_close_blob@8 ++ isc_create_blob@20 ++ isc_create_blob2@28 ++ isc_get_segment@20 ++ isc_open_blob@20 ++ isc_open_blob2@28 ++ isc_put_segment@16 + + ; Database functions + -+ isc_attach_database@24 @103 -+ isc_create_database@28 @120 -+ isc_database_info@24 @122 -+ isc_detach_database@8 @128 -+ isc_drop_database@8 @229 -+ isc_expand_dpb @135 -+ isc_modify_dpb@20 @244 -+ isc_version@12 @174 -+ isc_get_client_major_version@0 @268 -+ isc_get_client_minor_version@0 @269 -+ isc_get_client_version@4 @270 ++ isc_attach_database@24 ++ isc_create_database@28 ++ isc_database_info@24 ++ isc_detach_database@8 ++ isc_drop_database@8 ++ isc_expand_dpb@0 ++ isc_modify_dpb@20 ++ isc_version@12 ++ isc_get_client_major_version@0 ++ isc_get_client_minor_version@0 ++ isc_get_client_version@4 + + ; Conversion functions + -+ isc_decode_date@8 @125 -+ isc_decode_sql_date@8 @261 -+ isc_decode_sql_time@8 @262 -+ isc_decode_timestamp@8 @263 -+ isc_encode_date@8 @129 -+ isc_encode_sql_date@8 @264 -+ isc_encode_sql_time@8 @265 -+ isc_encode_timestamp@8 @266 -+ isc_portable_integer@8 @259 -+ isc_vax_integer@8 @173 ++ isc_decode_date@8 ++ isc_decode_sql_date@8 ++ isc_decode_sql_time@8 ++ isc_decode_timestamp@8 ++ isc_encode_date@8 ++ isc_encode_sql_date@8 ++ isc_encode_sql_time@8 ++ isc_encode_timestamp@8 ++ isc_portable_integer@8 ++ isc_vax_integer@8 + + ; DSQL functions + -+ isc_dsql_allocate_statement@12 @178 -+ isc_dsql_alloc_statement2@12 @179 -+ isc_dsql_describe@16 @180 -+ isc_dsql_describe_bind@16 @181 -+ isc_dsql_execute@20 @182 -+ isc_dsql_execute2@24 @183 -+ isc_dsql_execute_m@32 @184 -+ isc_dsql_execute2_m@52 @185 -+ isc_dsql_execute_immediate@28 @186 -+ isc_dsql_exec_immed2@32 @187 -+ isc_dsql_execute_immediate_m@44 @188 -+ isc_dsql_exec_immed2_m@64 @189 -+ isc_dsql_exec_immed3_m@64 @230 -+ isc_dsql_fetch@16 @190 -+ isc_dsql_fetch_a@20 @191 -+ isc_dsql_fetch_m@28 @192 -+ isc_dsql_finish@4 @193 -+ isc_dsql_free_statement@12 @194 -+ isc_dsql_insert@16 @195 -+ isc_dsql_insert_m@28 @196 -+ isc_dsql_prepare@28 @197 -+ isc_dsql_prepare_m@40 @198 -+ isc_dsql_release@8 @199 -+ isc_dsql_set_cursor_name@16 @200 -+ isc_dsql_sql_info@24 @201 ++ isc_dsql_allocate_statement@12 ++ isc_dsql_alloc_statement2@12 ++ isc_dsql_describe@16 ++ isc_dsql_describe_bind@16 ++ isc_dsql_execute@20 ++ isc_dsql_execute2@24 ++ isc_dsql_execute_m@32 ++ isc_dsql_execute2_m@52 ++ isc_dsql_execute_immediate@28 ++ isc_dsql_exec_immed2@32 ++ isc_dsql_execute_immediate_m@44 ++ isc_dsql_exec_immed2_m@64 ++ isc_dsql_exec_immed3_m@64 ++ isc_dsql_fetch@16 ++ isc_dsql_fetch_a@20 ++ isc_dsql_fetch_m@28 ++ isc_dsql_finish@4 ++ isc_dsql_free_statement@12 ++ isc_dsql_insert@16 ++ isc_dsql_insert_m@28 ++ isc_dsql_prepare@28 ++ isc_dsql_prepare_m@40 ++ isc_dsql_release@8 ++ isc_dsql_set_cursor_name@16 ++ isc_dsql_sql_info@24 + + ; ESQL functions + -+ isc_embed_dsql_close@8 @202 -+ isc_embed_dsql_declare@12 @203 -+ isc_embed_dsql_describe@16 @204 -+ isc_embed_dsql_describe_bind@16 @205 -+ isc_embed_dsql_execute@20 @206 -+ isc_embed_dsql_execute2@24 @207 -+ isc_embed_dsql_execute_immed@28 @208 -+ isc_embed_dsql_exec_immed2@32 @209 -+ isc_embed_dsql_fetch@16 @210 -+ isc_embed_dsql_fetch_a@20 @211 -+ isc_embed_dsql_insert@16 @212 -+ isc_embed_dsql_open@20 @213 -+ isc_embed_dsql_open2@24 @214 -+ isc_embed_dsql_prepare@32 @215 -+ isc_embed_dsql_release@8 @216 -+ isc_embed_dsql_length@8 @273 ++ isc_embed_dsql_close@8 ++ isc_embed_dsql_declare@12 ++ isc_embed_dsql_describe@16 ++ isc_embed_dsql_describe_bind@16 ++ isc_embed_dsql_execute@20 ++ isc_embed_dsql_execute2@24 ++ isc_embed_dsql_execute_immed@28 ++ isc_embed_dsql_exec_immed2@32 ++ isc_embed_dsql_fetch@16 ++ isc_embed_dsql_fetch_a@20 ++ isc_embed_dsql_insert@16 ++ isc_embed_dsql_open@20 ++ isc_embed_dsql_open2@24 ++ isc_embed_dsql_prepare@32 ++ isc_embed_dsql_release@8 ++ isc_embed_dsql_length@8 + + ; Error-handling functions + -+ isc_interprete@8 @141 ++ isc_interprete@8 + fb_interpret@12 -+ isc_print_sqlerror@8 @150 -+ isc_print_status@4 @151 -+ isc_sqlcode@4 @165 -+ isc_sql_interprete@12 @164 -+ isc_sqlcode_s@8 @278 -+ fb_sqlstate@8 @279 ++ isc_print_sqlerror@8 ++ isc_print_status@4 ++ isc_sqlcode@4 ++ isc_sql_interprete@12 ++ isc_sqlcode_s@8 ++ fb_sqlstate@8 + + ; Event functions + -+ isc_cancel_events@12 @111 -+ isc_event_block @130 -+ isc_event_counts@16 @131 -+ isc_que_events@28 @155 -+ isc_wait_for_event@20 @177 -+ isc_event_block_a@16 @274 -+ isc_event_block_s@20 @275 ++ isc_cancel_events@12 ++ isc_event_block@0 ++ isc_event_counts@16 ++ isc_que_events@28 ++ isc_wait_for_event@20 ++ isc_event_block_a@16 ++ isc_event_block_s@20 + + ; Security functions + -+ isc_add_user@8 @256 -+ isc_delete_user@8 @257 -+ isc_modify_user@8 @258 ++ isc_add_user@8 ++ isc_delete_user@8 ++ isc_modify_user@8 + + ; Services functions + -+ isc_service_attach@24 @225 -+ isc_service_detach@8 @226 -+ isc_service_query@36 @227 -+ isc_service_start@20 @228 ++ isc_service_attach@24 ++ isc_service_detach@8 ++ isc_service_query@36 ++ isc_service_start@20 + + ; Transaction control functions + -+ isc_commit_retaining@8 @114 -+ isc_commit_transaction@8 @115 -+ isc_prepare_transaction@8 @147 -+ isc_prepare_transaction2@16 @148 -+ isc_rollback_retaining@8 @260 -+ isc_rollback_transaction@8 @160 -+ isc_start_multiple@16 @167 -+ isc_start_transaction @169 -+ isc_transaction_info@24 @171 ++ isc_commit_retaining@8 ++ isc_commit_transaction@8 ++ isc_prepare_transaction@8 ++ isc_prepare_transaction2@16 ++ isc_rollback_retaining@8 ++ isc_rollback_transaction@8 ++ isc_start_multiple@16 ++ isc_start_transaction@0 ++ isc_transaction_info@24 + + ; Other functions + -+ isc_compile_request@20 @116 -+ isc_compile_request2@20 @117 -+ isc_ddl@20 @123 -+ isc_prepare@28 @146 -+ isc_receive@24 @156 -+ isc_reconnect_transaction@20 @157 -+ isc_release_request@8 @158 -+ isc_request_info@28 @159 -+ isc_seek_blob@20 @161 -+ isc_send@24 @162 -+ isc_start_and_send@28 @166 -+ isc_start_request@16 @168 -+ isc_transact_request@36 @132 -+ isc_unwind_request@12 @172 ++ isc_compile_request@20 ++ isc_compile_request2@20 ++ isc_ddl@20 ++ isc_prepare@28 ++ isc_receive@24 ++ isc_reconnect_transaction@20 ++ isc_release_request@8 ++ isc_request_info@28 ++ isc_seek_blob@20 ++ isc_send@24 ++ isc_start_and_send@28 ++ isc_start_request@16 ++ isc_transact_request@36 ++ isc_unwind_request@12 + + ; Other SQL functions + -+ isc_close@8 @112 -+ isc_declare@12 @124 -+ isc_describe@12 @126 -+ isc_describe_bind@12 @127 -+ isc_execute@16 @133 -+ isc_execute_immediate@20 @134 -+ isc_fetch@12 @136 -+ isc_fetch_a@16 @137 -+ isc_open@16 @143 ++ isc_close@8 ++ isc_declare@12 ++ isc_describe@12 ++ isc_describe_bind@12 ++ isc_execute@16 ++ isc_execute_immediate@20 ++ isc_fetch@12 ++ isc_fetch_a@16 ++ isc_open@16 + + ; Other BLOB functions + -+ BLOB_close@4 @91 -+ BLOB_display@16 @92 -+ BLOB_dump@16 @93 -+ BLOB_edit@16 @94 -+ BLOB_get@4 @95 -+ BLOB_load@16 @96 -+ BLOB_open@12 @97 -+ BLOB_put@8 @98 -+ BLOB_text_dump@16 @242 -+ BLOB_text_load@16 @243 -+ Bopen@16 @99 ++ BLOB_close@4 ++ BLOB_display@16 ++ BLOB_dump@16 ++ BLOB_edit@16 ++ BLOB_get@4 ++ BLOB_load@16 ++ BLOB_open@12 ++ BLOB_put@8 ++ BLOB_text_dump@16 ++ BLOB_text_load@16 ++ Bopen@16 + + ; Other misc functions + -+ isc_ftof@16 @138 -+ isc_free@4 @241 -+ isc_print_blr@16 @149 -+ fb_print_blr@20 @280 -+ isc_qtoq@8 @154 ++ isc_ftof@16 ++ isc_free@4 ++ isc_print_blr@16 ++ fb_print_blr@20 ++ isc_qtoq@8 + isc_reset_fpe@4 -+ isc_set_debug@4 @163 -+ isc_to_sqlda@20 @170 -+ isc_vtof@12 @175 -+ isc_vtov@12 @176 -+ isc_baddress@4 @276 -+ isc_baddress_s@8 @277 ++ isc_set_debug@4 ++ isc_to_sqlda@20 ++ isc_vtof@12 ++ isc_vtov@12 ++ isc_baddress@4 ++ isc_baddress_s@8 + -+ _isc_start_transaction=isc_start_transaction -+ _isc_expand_dpb=isc_expand_dpb -+ _isc_event_block=isc_event_block ++ _isc_start_transaction = isc_start_transaction@0 ++ _isc_expand_dpb = isc_expand_dpb@0 ++ _isc_event_block = isc_event_block@0 + +;----------------- +; OTHER FUNCTIONS +;----------------- + -+ CVT_move@12 @267 ++ CVT_move@12 + -+ KEYWORD_stringIsAToken@4 @271 -+ KEYWORD_getTokens@0 @272 ++ KEYWORD_stringIsAToken@4 ++ KEYWORD_getTokens@0 ++ ++;-------------------------------------- ++; DUPLICATE FOR COMPATIBILITY WITH MSVC ++;-------------------------------------- ++ ++;------------------- ++; PRIVATE INTERFACE ++;------------------- ++ ++ gds__alloc = gds__alloc@4 @1 ++ gds__attach_database = gds__attach_database@24 @2 ++ gds__blob_info = gds__blob_info@24 @3 ++ gds__blob_size = gds__blob_size@16 @4 ++ gds__cancel_blob = gds__cancel_blob@8 @5 ++ gds__cancel_events = gds__cancel_events@12 @6 ++ gds__close = gds__close@8 @7 ++ gds__close_blob = gds__close_blob@8 @8 ++ gds__commit_retaining = gds__commit_retaining@8 @9 ++ gds__commit_transaction = gds__commit_transaction@8 @10 ++ gds__compile_request = gds__compile_request@20 @11 ++ gds__compile_request2 = gds__compile_request2@20 @12 ++ gds__create_blob = gds__create_blob@20 @13 ++ gds__create_blob2 = gds__create_blob2@28 @14 ++ gds__create_database = gds__create_database@28 @15 ++ gds__database_cleanup = gds__database_cleanup@16 @16 ++ gds__database_info = gds__database_info@24 @17 ++ gds__ddl = gds__ddl@20 @18 ++ gds__declare = gds__declare@12 @19 ++ gds__decode = gds__decode@12 @20 ++ gds__decode_date = gds__decode_date@8 @21 ++ gds__describe = gds__describe@12 @22 ++ gds__describe_bind = gds__describe_bind@12 @23 ++ gds__detach_database = gds__detach_database@8 @24 ++ gds__disable_subsystem = gds__disable_subsystem@4 @25 ++ gds__dsql_finish = gds__dsql_finish@4 @26 ++ gds__edit = gds__edit@8 @27 ++ gds__enable_subsystem = gds__enable_subsystem@4 @28 ++ gds__encode = gds__encode@8 @29 ++ gds__encode_date = gds__encode_date@8 @30 ++ gds__event_block = gds__event_block@0 @31 ++ gds__event_counts = gds__event_counts@16 @32 ++ gds__event_wait = gds__event_wait@20 @33 ++ gds__execute = gds__execute@16 @34 ++ gds__execute_immediate = gds__execute_immediate@20 @35 ++ gds__fetch = gds__fetch@12 @36 ++ gds__free = gds__free@4 @37 ++ gds__ftof = gds__ftof@16 @38 ++ gds__get_prefix = gds__get_prefix@8 @248 ++ gds__get_segment = gds__get_segment@20 @39 ++ gds__get_slice = gds__get_slice@44 @40 ++ gds__interprete = gds__interprete@8 @41 ++ gds__log = gds__log@0 @42 ++ gds__log_status = gds__log_status@8 @142 ++ gds__map_blobs = gds__map_blobs@8 @240 ++ gds__msg_close = gds__msg_close@4 @223 ++ gds__msg_format = gds__msg_format@40 @43 ++ gds__msg_lookup = gds__msg_lookup@24 @44 ++ gds__msg_open = gds__msg_open@8 @45 ++ gds__msg_put = gds__msg_put@32 @46 ++ gds__open = gds__open@16 @47 ++ gds__open_blob = gds__open_blob@20 @48 ++ gds__open_blob2 = gds__open_blob2@28 @49 ++ gds__parse_bpb = gds__parse_bpb@16 @50 ++ gds__prefix = gds__prefix@8 @51 ++ gds__prefix_lock = gds__prefix_lock@8 @249 ++ gds__prefix_msg = gds__prefix_msg@8 @250 ++ gds__prepare = gds__prepare@28 @52 ++ gds__prepare_transaction = gds__prepare_transaction@8 @53 ++ gds__prepare_transaction2 = gds__prepare_transaction2@16 @54 ++ gds__print_blr = gds__print_blr@16 @55 ++ gds__print_status = gds__print_status@4 @56 ++ gds__put_error = gds__put_error@4 @57 ++ gds__put_segment = gds__put_segment@16 @58 ++ gds__put_slice = gds__put_slice@40 @59 ++ gds__qtoq = gds__qtoq@8 @60 ++ gds__que_events = gds__que_events@28 @61 ++ gds__receive = gds__receive@24 @62 ++ gds__reconnect_transaction = gds__reconnect_transaction@20 @63 ++ gds__register_cleanup = gds__register_cleanup@8 @64 ++ gds__release_request = gds__release_request@8 @65 ++ gds__request_info = gds__request_info@28 @66 ++ gds__rollback_transaction = gds__rollback_transaction@8 @67 ++ gds__seek_blob = gds__seek_blob@20 @68 ++ gds__send = gds__send@24 @69 ++ gds__set_debug = gds__set_debug@4 @70 ++ gds__sqlcode = gds__sqlcode@4 @71 ++ gds__start_and_send = gds__start_and_send@28 @72 ++ gds__start_multiple = gds__start_multiple@16 @73 ++ gds__start_request = gds__start_request@16 @74 ++ gds__start_transaction = gds__start_transaction@0 @75 ++ gds__temp_file = gds__temp_file@20 @231 ++ gds__thread_enable = gds__thread_enable@4 @76 ++ gds__thread_enter = gds__thread_enter@0 @77 ++ gds__thread_exit = gds__thread_exit@0 @78 ++ gds__thread_start = gds__thread_start@20 @79 ++ gds__to_sqlda = gds__to_sqlda@20 @80 ++ gds__transaction_cleanup = gds__transaction_cleanup@16 @235 ++ gds__transaction_info = gds__transaction_info@24 @81 ++ gds__unregister_cleanup = gds__unregister_cleanup@8 @224 ++ gds__unwind_request = gds__unwind_request@12 @82 ++ gds__validate_lib_path = gds__validate_lib_path@16 @255 ++ gds__vax_integer = gds__vax_integer@8 @83 ++ gds__version = gds__version@12 @84 ++ gds__vtof = gds__vtof@12 @85 ++ gds__vtov = gds__vtov@12 @86 ++ gds__default_printer = gds__default_printer@0 @87 ++ ++ gds__alloc_debug = gds__alloc_debug@12 ++ ++ gds_alloc_flag_unfreed = gds_alloc_flag_unfreed@4 ++ gds_alloc_report = gds_alloc_report@12 ++ ++ fb_shutdown = fb_shutdown@8 ++ fb_shutdown_callback = fb_shutdown_callback@16 ++ fb_cancel_operation = fb_cancel_operation@12 ++ fb_disconnect_transaction = fb_disconnect_transaction@8 ++ ++ perf_format = perf_format@20 @100 ++ perf_get_info = perf_get_info@8 @101 ++ perf_report = perf_report@16 @102 ++ ++ perf64_format = perf64_format@20 ++ perf64_get_info = perf64_get_info@8 ++ perf64_report = perf64_report@16 ++ ++;---------------------------- ++; PUBLIC INTERFACE, i.e. API ++;---------------------------- ++ ++ ; Array functions ++ ++ isc_array_gen_sdl = isc_array_gen_sdl@20 @217 ++ isc_array_get_slice = isc_array_get_slice@28 @218 ++ isc_array_lookup_bounds = isc_array_lookup_bounds@24 @219 ++ isc_array_lookup_desc = isc_array_lookup_desc@24 @220 ++ isc_array_put_slice = isc_array_put_slice@28 @221 ++ isc_array_set_desc = isc_array_set_desc@28 @222 ++ isc_get_slice = isc_get_slice@44 @140 ++ isc_put_slice = isc_put_slice@40 @153 ++ ++ ; BLOB functions ++ ++ isc_blob_default_desc = isc_blob_default_desc@12 @239 ++ isc_blob_gen_bpb = isc_blob_gen_bpb@24 @236 ++ isc_blob_info = isc_blob_info@24 @108 ++ isc_blob_lookup_desc = isc_blob_lookup_desc@28 @237 ++ isc_blob_set_desc = isc_blob_set_desc@28 @238 ++ isc_cancel_blob = isc_cancel_blob@8 @110 ++ isc_close_blob = isc_close_blob@8 @113 ++ isc_create_blob = isc_create_blob@20 @118 ++ isc_create_blob2 = isc_create_blob2@28 @119 ++ isc_get_segment = isc_get_segment@20 @139 ++ isc_open_blob = isc_open_blob@20 @144 ++ isc_open_blob2 = isc_open_blob2@28 @145 ++ isc_put_segment = isc_put_segment@16 @152 ++ ++ ; Database functions ++ ++ isc_attach_database = isc_attach_database@24 @103 ++ isc_create_database = isc_create_database@28 @120 ++ isc_database_info = isc_database_info@24 @122 ++ isc_detach_database = isc_detach_database@8 @128 ++ isc_drop_database = isc_drop_database@8 @229 ++ isc_expand_dpb = isc_expand_dpb@0 @135 ++ isc_modify_dpb = isc_modify_dpb@20 @244 ++ isc_version = isc_version@12 @174 ++ isc_get_client_major_version = isc_get_client_major_version@0 @268 ++ isc_get_client_minor_version = isc_get_client_minor_version@0 @269 ++ isc_get_client_version = isc_get_client_version@4 @270 ++ ++ ; Conversion functions ++ ++ isc_decode_date = isc_decode_date@8 @125 ++ isc_decode_sql_date = isc_decode_sql_date@8 @261 ++ isc_decode_sql_time = isc_decode_sql_time@8 @262 ++ isc_decode_timestamp = isc_decode_timestamp@8 @263 ++ isc_encode_date = isc_encode_date@8 @129 ++ isc_encode_sql_date = isc_encode_sql_date@8 @264 ++ isc_encode_sql_time = isc_encode_sql_time@8 @265 ++ isc_encode_timestamp = isc_encode_timestamp@8 @266 ++ isc_portable_integer = isc_portable_integer@8 @259 ++ isc_vax_integer = isc_vax_integer@8 @173 ++ ++ ; DSQL functions ++ ++ isc_dsql_allocate_statement = isc_dsql_allocate_statement@12 @178 ++ isc_dsql_alloc_statement2 = isc_dsql_alloc_statement2@12 @179 ++ isc_dsql_describe = isc_dsql_describe@16 @180 ++ isc_dsql_describe_bind = isc_dsql_describe_bind@16 @181 ++ isc_dsql_execute = isc_dsql_execute@20 @182 ++ isc_dsql_execute2 = isc_dsql_execute2@24 @183 ++ isc_dsql_execute_m = isc_dsql_execute_m@32 @184 ++ isc_dsql_execute2_m = isc_dsql_execute2_m@52 @185 ++ isc_dsql_execute_immediate = isc_dsql_execute_immediate@28 @186 ++ isc_dsql_exec_immed2 = isc_dsql_exec_immed2@32 @187 ++ isc_dsql_execute_immediate_m = isc_dsql_execute_immediate_m@44 @188 ++ isc_dsql_exec_immed2_m = isc_dsql_exec_immed2_m@64 @189 ++ isc_dsql_exec_immed3_m = isc_dsql_exec_immed3_m@64 @230 ++ isc_dsql_fetch = isc_dsql_fetch@16 @190 ++ isc_dsql_fetch_a = isc_dsql_fetch_a@20 @191 ++ isc_dsql_fetch_m = isc_dsql_fetch_m@28 @192 ++ isc_dsql_finish = isc_dsql_finish@4 @193 ++ isc_dsql_free_statement = isc_dsql_free_statement@12 @194 ++ isc_dsql_insert = isc_dsql_insert@16 @195 ++ isc_dsql_insert_m = isc_dsql_insert_m@28 @196 ++ isc_dsql_prepare = isc_dsql_prepare@28 @197 ++ isc_dsql_prepare_m = isc_dsql_prepare_m@40 @198 ++ isc_dsql_release = isc_dsql_release@8 @199 ++ isc_dsql_set_cursor_name = isc_dsql_set_cursor_name@16 @200 ++ isc_dsql_sql_info = isc_dsql_sql_info@24 @201 ++ ++ ; ESQL functions ++ ++ isc_embed_dsql_close = isc_embed_dsql_close@8 @202 ++ isc_embed_dsql_declare = isc_embed_dsql_declare@12 @203 ++ isc_embed_dsql_describe = isc_embed_dsql_describe@16 @204 ++ isc_embed_dsql_describe_bind = isc_embed_dsql_describe_bind@16 @205 ++ isc_embed_dsql_execute = isc_embed_dsql_execute@20 @206 ++ isc_embed_dsql_execute2 = isc_embed_dsql_execute2@24 @207 ++ isc_embed_dsql_execute_immed = isc_embed_dsql_execute_immed@28 @208 ++ isc_embed_dsql_exec_immed2 = isc_embed_dsql_exec_immed2@32 @209 ++ isc_embed_dsql_fetch = isc_embed_dsql_fetch@16 @210 ++ isc_embed_dsql_fetch_a = isc_embed_dsql_fetch_a@20 @211 ++ isc_embed_dsql_insert = isc_embed_dsql_insert@16 @212 ++ isc_embed_dsql_open = isc_embed_dsql_open@20 @213 ++ isc_embed_dsql_open2 = isc_embed_dsql_open2@24 @214 ++ isc_embed_dsql_prepare = isc_embed_dsql_prepare@32 @215 ++ isc_embed_dsql_release = isc_embed_dsql_release@8 @216 ++ isc_embed_dsql_length = isc_embed_dsql_length@8 @273 ++ ++ ; Error-handling functions ++ ++ isc_interprete = isc_interprete@8 @141 ++ fb_interpret = fb_interpret@12 ++ isc_print_sqlerror = isc_print_sqlerror@8 @150 ++ isc_print_status = isc_print_status@4 @151 ++ isc_sqlcode = isc_sqlcode@4 @165 ++ isc_sql_interprete = isc_sql_interprete@12 @164 ++ isc_sqlcode_s = isc_sqlcode_s@8 @278 ++ fb_sqlstate = fb_sqlstate@8 @279 ++ ++ ; Event functions ++ ++ isc_cancel_events = isc_cancel_events@12 @111 ++ isc_event_block = isc_event_block@0 @130 ++ isc_event_counts = isc_event_counts@16 @131 ++ isc_que_events = isc_que_events@28 @155 ++ isc_wait_for_event = isc_wait_for_event@20 @177 ++ isc_event_block_a = isc_event_block_a@16 @274 ++ isc_event_block_s = isc_event_block_s@20 @275 ++ ++ ; Security functions ++ ++ isc_add_user = isc_add_user@8 @256 ++ isc_delete_user = isc_delete_user@8 @257 ++ isc_modify_user = isc_modify_user@8 @258 ++ ++ ; Services functions ++ ++ isc_service_attach = isc_service_attach@24 @225 ++ isc_service_detach = isc_service_detach@8 @226 ++ isc_service_query = isc_service_query@36 @227 ++ isc_service_start = isc_service_start@20 @228 ++ ++ ; Transaction control functions ++ ++ isc_commit_retaining = isc_commit_retaining@8 @114 ++ isc_commit_transaction = isc_commit_transaction@8 @115 ++ isc_prepare_transaction = isc_prepare_transaction@8 @147 ++ isc_prepare_transaction2 = isc_prepare_transaction2@16 @148 ++ isc_rollback_retaining = isc_rollback_retaining@8 @260 ++ isc_rollback_transaction = isc_rollback_transaction@8 @160 ++ isc_start_multiple = isc_start_multiple@16 @167 ++ isc_start_transaction = isc_start_transaction@0 @169 ++ isc_transaction_info = isc_transaction_info@24 @171 ++ ++ ; Other functions ++ ++ isc_compile_request = isc_compile_request@20 @116 ++ isc_compile_request2 = isc_compile_request2@20 @117 ++ isc_ddl = isc_ddl@20 @123 ++ isc_prepare = isc_prepare@28 @146 ++ isc_receive = isc_receive@24 @156 ++ isc_reconnect_transaction = isc_reconnect_transaction@20 @157 ++ isc_release_request = isc_release_request@8 @158 ++ isc_request_info = isc_request_info@28 @159 ++ isc_seek_blob = isc_seek_blob@20 @161 ++ isc_send = isc_send@24 @162 ++ isc_start_and_send = isc_start_and_send@28 @166 ++ isc_start_request = isc_start_request@16 @168 ++ isc_transact_request = isc_transact_request@36 @132 ++ isc_unwind_request = isc_unwind_request@12 @172 ++ ++ ; Other SQL functions ++ ++ isc_close = isc_close@8 @112 ++ isc_declare = isc_declare@12 @124 ++ isc_describe = isc_describe@12 @126 ++ isc_describe_bind = isc_describe_bind@12 @127 ++ isc_execute = isc_execute@16 @133 ++ isc_execute_immediate = isc_execute_immediate@20 @134 ++ isc_fetch = isc_fetch@12 @136 ++ isc_fetch_a = isc_fetch_a@16 @137 ++ isc_open = isc_open@16 @143 ++ ++ ; Other BLOB functions ++ ++ BLOB_close = BLOB_close@4 @91 ++ BLOB_display = BLOB_display@16 @92 ++ BLOB_dump = BLOB_dump@16 @93 ++ BLOB_edit = BLOB_edit@16 @94 ++ BLOB_get = BLOB_get@4 @95 ++ BLOB_load = BLOB_load@16 @96 ++ BLOB_open = BLOB_open@12 @97 ++ BLOB_put = BLOB_put@8 @98 ++ BLOB_text_dump = BLOB_text_dump@16 @242 ++ BLOB_text_load = BLOB_text_load@16 @243 ++ Bopen = Bopen@16 @99 ++ ++ ; Other misc functions ++ ++ isc_ftof = isc_ftof@16 @138 ++ isc_free = isc_free@4 @241 ++ isc_print_blr = isc_print_blr@16 @149 ++ fb_print_blr = fb_print_blr@20 @280 ++ isc_qtoq = isc_qtoq@8 @154 ++ isc_reset_fpe = isc_reset_fpe@4 ++ isc_set_debug = isc_set_debug@4 @163 ++ isc_to_sqlda = isc_to_sqlda@20 @170 ++ isc_vtof = isc_vtof@12 @175 ++ isc_vtov = isc_vtov@12 @176 ++ isc_baddress = isc_baddress@4 @276 ++ isc_baddress_s = isc_baddress_s@8 @277 ++ ++;----------------- ++; OTHER FUNCTIONS ++;----------------- ++ ++ CVT_move = CVT_move@12 @267 ++ ++ KEYWORD_stringIsAToken = KEYWORD_stringIsAToken@4 @271 ++ KEYWORD_getTokens = KEYWORD_getTokens@0 @272 diff --git a/builds/win32/defs/fbclient64.def b/builds/win32/defs/fbclient64.def new file mode 100644 -index d345348..346a94d 100644 +index 0000000..ce3875c --- /dev/null +++ b/builds/win32/defs/fbclient64.def @@ -0,0 +1,361 @@ @@ -1487,7 +1833,7 @@ index d345348..346a94d 100644 -- 2.4.3 -From 8fc62a800a470a31ad36be09504310f765600f4f Mon Sep 17 00:00:00 2001 +From 6d98c3bf146bb2f937166fd44a9a8c3045919f25 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 26 Nov 2014 12:25:47 +0300 Subject: [PATCH] Don't install unix files for Windows platform @@ -1583,7 +1929,7 @@ index d345348..346a94d 100644 -- 2.4.3 -From 4d220545d836947405485990a9f69c509ccd5278 Mon Sep 17 00:00:00 2001 +From a4ee44393c1773cf58914e06657b66842041237e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 26 Nov 2014 16:15:47 +0300 Subject: [PATCH] Fix rules to use variables. @@ -1684,10 +2030,10 @@ index c1b61a6..68016cc 100644 $(CHMOD) 444 $@ diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults -index 34fd3e9..0f1da2d 100755 +index bc96ceb..2e60fd3 100755 --- a/builds/posix/make.defaults +++ b/builds/posix/make.defaults -@@ -178,7 +178,7 @@ SHRLIB_FOREIGN_EXT= $(SHRLIB_EXT) +@@ -183,7 +183,7 @@ SHRLIB_FOREIGN_EXT= $(SHRLIB_EXT) vpath %.so $(LIB) vpath %.a $(LIB) @@ -1699,7 +2045,7 @@ index 34fd3e9..0f1da2d 100755 -- 2.4.3 -From 3665f4d104ed9c57c5d4cda4c4213a82e373d83f Mon Sep 17 00:00:00 2001 +From 5b6eb56e1b994c86a415c2fa3c9e20ce1aa7a127 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 30 Nov 2014 15:08:19 +0300 Subject: [PATCH] Auto detect WINDRES with autoconf. @@ -1708,15 +2054,15 @@ Fix building .rc files. --- builds/posix/make.defaults | 4 +++- builds/posix/make.rules | 4 ++-- - builds/posix/make.shared.targets | 14 +++++++------- + builds/posix/make.shared.targets | 10 +++++----- configure.in | 10 ++++++++++ - 4 files changed, 22 insertions(+), 10 deletions(-) + 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults -index caa9930..65f8c6c 100755 +index 2e60fd3..8e3a39f 100755 --- a/builds/posix/make.defaults +++ b/builds/posix/make.defaults -@@ -151,9 +151,11 @@ ECHO= echo +@@ -139,9 +139,11 @@ ECHO= echo QUIET_ECHO= @echo CD= cd CAT= cat @@ -1730,10 +2076,10 @@ index caa9930..65f8c6c 100755 CC = @CC@ diff --git a/builds/posix/make.rules b/builds/posix/make.rules -index 42c719d..601dc82 100644 +index a784cb2..600b8f9 100644 --- a/builds/posix/make.rules +++ b/builds/posix/make.rules -@@ -102,5 +102,5 @@ $(OBJ)/%.o: $(SRC_ROOT)/%.cpp +@@ -115,5 +115,5 @@ $(OBJ)/%.o: $(SRC_ROOT)/%.cpp # Rules for making resource files @@ -1742,10 +2088,10 @@ index 42c719d..601dc82 100644 +$(OBJ)/%.res: $(SRC_ROOT)/%.rc + $(RC) --output-format=coff --include-dir=$( Date: Wed, 26 Nov 2014 16:23:09 +0300 Subject: [PATCH] Create symlinks of fbembed only if names are different @@ -1831,7 +2175,7 @@ index d919ba2..2e70ab9 100644 -- 2.4.3 -From 8373e05051d23ae15f3e455a879786e9f8f5d6f9 Mon Sep 17 00:00:00 2001 +From ed78858f827e8ba9969e81580863012fa640a073 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 3 Dec 2014 14:23:31 +0300 Subject: [PATCH] MSVC compatibility fix. @@ -1856,3 +2200,814 @@ index d2ddb7d..3586592 100644 -- 2.4.3 +From 8e36ccb8876d2118b0b5d3409c28b39f35725523 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Tue, 23 Jun 2015 11:57:07 +0300 +Subject: [PATCH] mod_loader: mingw always link to msvcrt.dll + +--- + src/jrd/os/win32/mod_loader.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/jrd/os/win32/mod_loader.cpp b/src/jrd/os/win32/mod_loader.cpp +index 76ceeca..51694ba 100644 +--- a/src/jrd/os/win32/mod_loader.cpp ++++ b/src/jrd/os/win32/mod_loader.cpp +@@ -74,7 +74,7 @@ public: + // if we don't use MSVC then we don't use MS CRT ? + // NS: versions of MSVC before 2005 and, as preliminary reports suggest, + // after 2008 do not need this hack +-#if !defined(_MSC_VER) || (_MSC_VER < 1400) ++#if (!defined(_MSC_VER) || (_MSC_VER < 1400)) && !defined(__MINGW32__) + return; + #else + +@@ -89,7 +89,9 @@ public: + if ((*mFindActCtxSectionString) + (0, NULL, + ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, +-#if _MSC_VER == 1400 ++#if defined(__MINGW32__) ++ "msvcrt.dll", ++#elif _MSC_VER == 1400 + "msvcr80.dll", + #elif _MSC_VER == 1500 + "msvcr90.dll", +-- +2.4.3 + +From 088f6afada0199d180859da6de65546dccf15a70 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Tue, 23 Jun 2015 11:59:24 +0300 +Subject: [PATCH] Relocate paths for unix-like files layout. + +--- + builds/posix/make.shared.variables | 4 +- + src/common/pathtools.cpp | 538 +++++++++++++++++++++++++++++++++++++ + src/common/pathtools.h | 53 ++++ + src/common/utils.cpp | 21 +- + src/jrd/gds.cpp | 7 +- + src/jrd/os/win32/config_root.cpp | 7 +- + src/jrd/os/win32/path_utils.cpp | 5 +- + 7 files changed, 623 insertions(+), 12 deletions(-) + create mode 100644 src/common/pathtools.cpp + create mode 100644 src/common/pathtools.h + +diff --git a/builds/posix/make.shared.variables b/builds/posix/make.shared.variables +index ef6099e..b10dae4 100644 +--- a/builds/posix/make.shared.variables ++++ b/builds/posix/make.shared.variables +@@ -259,7 +259,7 @@ VULCAN_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(VULCAN_Source + # common + + FBCOMMON_ClientFiles = fb_exception.cpp thd.cpp classes/MetaName.cpp StatusHolder.cpp classes/init.cpp StatusArg.cpp +-FBCOMMON_ServerFiles = utils.cpp ++FBCOMMON_ServerFiles = utils.cpp pathtools.cpp + + FBCOMMON_ClientObjects = $(addprefix $(OBJ)/common/, $(addsuffix .o, $(basename $(FBCOMMON_ClientFiles)))) \ + $(addprefix $(OBJ)/jrd/, $(addsuffix .o, $(basename fbsyslog.cpp))) +@@ -287,7 +287,7 @@ CLUMPLETS_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(CLUMPLETS_ + # just in case if make.platform defined some files + OS_SPECIFIC_Files += config_root.cpp path_utils.cpp mod_loader.cpp guid.cpp os_utils.cpp + +-OS_SPECIFIC_Sources = $(addprefix jrd/, $(OS_SPECIFIC_Files)) common/dllinst.cpp ++OS_SPECIFIC_Sources = $(addprefix jrd/, $(OS_SPECIFIC_Files)) common/dllinst.cpp common/pathtools.cpp + ifneq ($(strip @BINRELOC_CFLAGS@),) + OS_SPECIFIC_Sources += $(ROOT)/extern/binreloc/binreloc.c + endif +diff --git a/src/common/pathtools.cpp b/src/common/pathtools.cpp +new file mode 100644 +index 0000000..9291ffd +--- /dev/null ++++ b/src/common/pathtools.cpp +@@ -0,0 +1,538 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++#include ++#endif ++#include ++ ++/* If you don't define this, then get_executable_path() ++ can only use argv[0] which will often not work well */ ++#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH ++ ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++/* Nothing needed, unistd.h is enough. */ ++#elif defined(__APPLE__) ++#include ++#elif defined(_WIN32) ++#define WIN32_MEAN_AND_LEAN ++#include ++#include ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ ++#include "pathtools.h" ++ ++char * ++malloc_copy_string(char const * original) ++{ ++ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); ++ if (result != NULL) ++ { ++ strcpy (result, original); ++ } ++ return result; ++} ++ ++void ++sanitise_path(char * path) ++{ ++ size_t path_size = strlen (path); ++ ++ /* Replace any '\' with '/' */ ++ char * path_p = path; ++ while ((path_p = strchr (path_p, '\\')) != NULL) ++ { ++ *path_p = '/'; ++ } ++ /* Replace any '//' with '/' */ ++ path_p = path; ++ while ((path_p = strstr (path_p, "//")) != NULL) ++ { ++ memmove (path_p, path_p + 1, path_size--); ++ } ++ return; ++} ++ ++char * ++get_relative_path(char const * from_in, char const * to_in) ++{ ++ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); ++ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); ++ size_t max_size = (from_size + to_size) * 2 + 4; ++ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); ++ char * from; ++ char * to; ++ char * common_part; ++ char * result; ++ size_t count; ++ ++ /* No to, return "./" */ ++ if (to_in == NULL) ++ { ++ return malloc_copy_string ("./"); ++ } ++ ++ /* If alloca failed or no from was given return a copy of to */ ++ if ( from_in == NULL ++ || scratch_space == NULL ) ++ { ++ return malloc_copy_string (to_in); ++ } ++ ++ from = scratch_space; ++ strcpy (from, from_in); ++ to = from + from_size + 1; ++ strcpy (to, to_in); ++ common_part = to + to_size + 1; ++ result = common_part + max_size; ++ simplify_path (from); ++ simplify_path (to); ++ ++ result[0] = '\0'; ++ ++ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ ++ size_t match_size = 0; /* The running (and final) match size. */ ++ size_t largest_size = (from_size > to_size) ? from_size : to_size; ++ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; ++ char from_c; ++ char to_c; ++ for (match_size = 0; match_size < largest_size; ++match_size) ++ { ++ /* To simplify the logic, always pretend the strings end with '/' */ ++ from_c = (match_size < from_size) ? from[match_size] : '/'; ++ to_c = (match_size < to_size) ? to[match_size] : '/'; ++ ++ if (from_c != to_c) ++ { ++ if (from_c != '\0' || to_c != '\0') ++ { ++ match_size = match_size_dirsep; ++ } ++ break; ++ } ++ else if (from_c == '/') ++ { ++ match_size_dirsep = match_size; ++ } ++ } ++ strncpy (common_part, from, match_size); ++ common_part[match_size] = '\0'; ++ from += match_size; ++ to += match_size; ++ size_t ndotdots = 0; ++ char const* from_last = from + strlen(from) - 1; ++ while ((from = strchr (from, '/')) && from != from_last) ++ { ++ ++ndotdots; ++ ++from; ++ } ++ for (count = 0; count < ndotdots; ++count) ++ { ++ strcat(result, "../"); ++ } ++ if (strlen(to) > 0) ++ { ++ strcat(result, to+1); ++ } ++ /* Make sure that if to ends with '/' result does the same, and ++ vice-versa. */ ++ size_t size_result = strlen(result); ++ if ((to_final_is_slash == 1) ++ && (!size_result || result[size_result-1] != '/')) ++ { ++ strcat (result, "/"); ++ } ++ else if (!to_final_is_slash ++ && size_result && result[size_result-1] == '/') ++ { ++ result[size_result-1] = '\0'; ++ } ++ ++ return malloc_copy_string (result); ++} ++ ++void ++simplify_path(char * path) ++{ ++ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ ++ ssize_t i, j; ++ size_t tok_size; ++ size_t in_size = strlen (path); ++ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; ++ char * result = path; ++ sanitise_path(result); ++ char * result_p = result; ++ ++ do ++ { ++ ++n_toks; ++ ++result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ result_p = result; ++ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); ++ n_toks = 0; ++ do ++ { ++ if (result_p > result) ++ { ++ *result_p++ = '\0'; ++ } ++ else if (*result_p == '/') ++ { ++ /* A leading / creates an empty initial token. */ ++ toks[n_toks++] = result_p; ++ *result_p++ = '\0'; ++ } ++ toks[n_toks++] = result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ /* Remove all non-leading '.' and any '..' we can match ++ with an earlier forward path (i.e. neither '.' nor '..') */ ++ for (i = 1; i < n_toks; ++i) ++ { ++ int removals[2] = { -1, -1 }; ++ if ( strcmp (toks[i], "." ) == 0) ++ { ++ removals[0] = i; ++ } ++ else if ( strcmp (toks[i], ".." ) == 0) ++ { ++ /* Search backwards for a forward path to collapse. ++ If none are found then the .. also stays. */ ++ for (j = i - 1; j > -1; --j) ++ { ++ if ( strcmp (toks[j], "." ) ++ && strcmp (toks[j], ".." ) ) ++ { ++ removals[0] = j; ++ removals[1] = i; ++ break; ++ } ++ } ++ } ++ for (j = 0; j < 2; ++j) ++ { ++ if (removals[j] >= 0) /* Can become -2 */ ++ { ++ --n_toks; ++ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); ++ --i; ++ if (!j) ++ { ++ --removals[1]; ++ } ++ } ++ } ++ } ++ result_p = result; ++ for (i = 0; i < n_toks; ++i) ++ { ++ tok_size = strlen(toks[i]); ++ memcpy (result_p, toks[i], tok_size); ++ result_p += tok_size; ++ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) ++ { ++ *result_p = '/'; ++ ++result_p; ++ } ++ } ++ *result_p = '\0'; ++} ++ ++/* Returns actual_to by calculating the relative path from -> to and ++ applying that to actual_from. An assumption that actual_from is a ++ dir is made, and it may or may not end with a '/' */ ++char const * ++get_relocated_path (char const * from, char const * to, char const * actual_from) ++{ ++ char const * relative_from_to = get_relative_path (from, to); ++ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); ++ return actual_to; ++} ++ ++int ++get_executable_path(char const * argv0, char * result, ssize_t max_size) ++{ ++ char * system_result = (char *) alloca (max_size); ++ ssize_t system_result_size = -1; ++ ssize_t result_size = -1; ++ ++ if (system_result != NULL) ++ { ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++ system_result_size = readlink("/proc/self/exe", system_result, max_size); ++#elif defined(__APPLE__) ++ uint32_t bufsize = (uint32_t)max_size; ++ if (_NSGetExecutablePath(system_result, &bufsize) == 0) ++ { ++ system_result_size = (ssize_t)bufsize; ++ } ++#elif defined(_WIN32) ++ unsigned long bufsize = (unsigned long)max_size; ++ system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); ++ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) ++ { ++ /* Error, possibly not enough space. */ ++ system_result_size = -1; ++ } ++ else ++ { ++ /* Early conversion to unix slashes instead of more changes ++ everywhere else .. */ ++ char * winslash; ++ system_result[system_result_size] = '\0'; ++ while ((winslash = strchr (system_result, '\\')) != NULL) ++ { ++ *winslash = '/'; ++ } ++ } ++#else ++#warning "Don't know how to get executable path on this system" ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ } ++ /* Use argv0 as a default in-case of failure */ ++ if (system_result_size != -1) ++ { ++ strncpy (result, system_result, system_result_size); ++ result[system_result_size] = '\0'; ++ } ++ else ++ { ++ if (argv0 != NULL) ++ { ++ strncpy (result, argv0, max_size); ++ result[max_size-1] = '\0'; ++ } ++ else ++ { ++ result[0] = '\0'; ++ } ++ } ++ result_size = strlen (result); ++ return result_size; ++} ++ ++char const * ++strip_n_prefix_folders(char const * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return NULL; ++ } ++ ++ if (path[0] != '/') ++ { ++ return path; ++ } ++ ++ char const * last = path; ++ while (n-- && path != NULL) ++ { ++ last = path; ++ path = strchr (path + 1, '/'); ++ } ++ return (path == NULL) ? last : path; ++} ++ ++void ++strip_n_suffix_folders(char * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return; ++ } ++ while (n--) ++ { ++ if (strrchr (path + 1, '/')) ++ { ++ *strrchr (path + 1, '/') = '\0'; ++ } ++ else ++ { ++ return; ++ } ++ } ++ return; ++} ++ ++size_t ++split_path_list(char const * path_list, char split_char, char *** arr) ++{ ++ size_t path_count; ++ size_t path_list_size; ++ char const * path_list_p; ++ ++ path_list_p = path_list; ++ if (path_list == NULL || path_list[0] == '\0') ++ { ++ return 0; ++ } ++ path_list_size = strlen (path_list); ++ ++ path_count = 0; ++ do ++ { ++ ++path_count; ++ ++path_list_p; ++ } ++ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); ++ ++ /* allocate everything in one go. */ ++ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); ++ if (all_memory == NULL) ++ return 0; ++ *arr = (char **)all_memory; ++ all_memory += sizeof (char *) * path_count; ++ ++ path_count = 0; ++ path_list_p = path_list; ++ char const * next_path_list_p = 0; ++ do ++ { ++ next_path_list_p = strchr (path_list_p, split_char); ++ if (next_path_list_p != NULL) ++ { ++ ++next_path_list_p; ++ } ++ size_t this_size = (next_path_list_p != NULL) ++ ? next_path_list_p - path_list_p - 1 ++ : &path_list[path_list_size] - path_list_p; ++ memcpy (all_memory, path_list_p, this_size); ++ all_memory[this_size] = '\0'; ++ (*arr)[path_count++] = all_memory; ++ all_memory += this_size + 1; ++ } while ((path_list_p = next_path_list_p) != NULL); ++ ++ return path_count; ++} ++ ++char * ++get_relocated_path_list(char const * from, char const * to_path_list) ++{ ++ char exe_path[MAX_PATH]; ++ char * temp; ++ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ if ((temp = strrchr (exe_path, '/')) != NULL) ++ { ++ temp[1] = '\0'; ++ } ++ ++ char **arr = NULL; ++ /* Ask Alexey why he added this. Are we not 100% sure ++ that we're dealing with unix paths here? */ ++ char split_char = ':'; ++ if (strchr (to_path_list, ';')) ++ { ++ split_char = ';'; ++ } ++ size_t count = split_path_list (to_path_list, split_char, &arr); ++ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ ++ size_t exe_path_size = strlen (exe_path); ++ size_t i; ++ /* Space required is: ++ count * (exe_path_size + strlen (rel_to_datadir)) ++ rel_to_datadir upper bound is: ++ (count * strlen (from)) + (3 * num_slashes (from)) ++ + strlen(arr[i]) + 1. ++ .. pathalogically num_slashes (from) is strlen (from) ++ (from = ////////) */ ++ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; ++ for (i = 0; i < count; ++i) ++ { ++ space_required += strlen (arr[i]); ++ } ++ char * scratch = (char *) alloca (space_required); ++ if (scratch == NULL) ++ return NULL; ++ for (i = 0; i < count; ++i) ++ { ++ char * rel_to_datadir = get_relative_path (from, arr[i]); ++ scratch[0] = '\0'; ++ arr[i] = scratch; ++ strcat (scratch, exe_path); ++ strcat (scratch, rel_to_datadir); ++ simplify_path (arr[i]); ++ size_t arr_i_size = strlen (arr[i]); ++ result_size += arr_i_size; ++ scratch = arr[i] + arr_i_size + 1; ++ } ++ char * result = (char *) malloc (result_size); ++ if (result == NULL) ++ { ++ return NULL; ++ } ++ result[0] = '\0'; ++ for (i = 0; i < count; ++i) ++ { ++ strcat (result, arr[i]); ++ if (i != count-1) ++ { ++#if defined(_WIN32) ++ strcat (result, ";"); ++#else ++ strcat (result, ":"); ++#endif ++ } ++ } ++ free ((void*)arr); ++ return result; ++} ++ ++char * ++single_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} +diff --git a/src/common/pathtools.h b/src/common/pathtools.h +new file mode 100644 +index 0000000..139b7c2 +--- /dev/null ++++ b/src/common/pathtools.h +@@ -0,0 +1,53 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#ifndef PATHTOOLS_H ++#define PATHTOOLS_H ++ ++#include ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++ ++char * malloc_copy_string(char const * original); ++ ++/* In-place replaces any '\' with '/' and any '//' with '/' */ ++void sanitise_path(char * path); ++ ++/* Uses a host OS specific function to determine the path of the executable, ++ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ ++int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ ++/* Where possible, in-place removes occourances of '.' and 'path/..' */ ++void simplify_path(char * path); ++ ++/* Allocates (via malloc) and returns the path to get from from to to. */ ++char * get_relative_path(char const * from, char const * to); ++ ++size_t split_path_list(char const * path_list, char split_char, char *** arr); ++ ++/* Advances path along by the amount that removes n prefix folders. */ ++char const * ++strip_n_prefix_folders(char const * path, size_t n); ++ ++/* NULL terminates path to remove n suffix folders. */ ++void ++strip_n_suffix_folders(char * path, size_t n); ++ ++char const * get_relocated_path (char const * from, char const * to, char const * actual_from); ++char * get_relocated_path_list(char const * from, char const * to_path_list); ++ ++char * single_path_relocation(const char *from, const char *to); ++char * pathlist_relocation(const char *from_path, const char *to_path_list); ++ ++#endif /* PATHTOOLS_H */ +diff --git a/src/common/utils.cpp b/src/common/utils.cpp +index 34c7c5c..5991363 100644 +--- a/src/common/utils.cpp ++++ b/src/common/utils.cpp +@@ -43,6 +43,7 @@ + #include "../common/utils_proto.h" + #include "../common/classes/locks.h" + #include "../common/classes/init.h" ++#include "../common/pathtools.h" + #include "../jrd/constants.h" + #include "../jrd/os/path_utils.h" + #include "../jrd/os/fbsyslog.h" +@@ -929,9 +930,23 @@ Firebird::PathName getPrefix(FB_DIR prefType, const char* name) + + #ifndef BOOT_BUILD + const char* configDir[] = { +- FB_BINDIR, FB_SBINDIR, FB_CONFDIR, FB_LIBDIR, FB_INCDIR, FB_DOCDIR, FB_UDFDIR, FB_SAMPLEDIR, +- FB_SAMPLEDBDIR, FB_HELPDIR, FB_INTLDIR, FB_MISCDIR, FB_SECDBDIR, FB_MSGDIR, FB_LOGDIR, +- FB_GUARDDIR, FB_PLUGDIR ++ single_path_relocation(FB_BINDIR,FB_BINDIR), ++ single_path_relocation(FB_BINDIR,FB_SBINDIR), ++ single_path_relocation(FB_BINDIR,FB_CONFDIR), ++ single_path_relocation(FB_BINDIR,FB_LIBDIR), ++ single_path_relocation(FB_BINDIR,FB_INCDIR), ++ single_path_relocation(FB_BINDIR,FB_DOCDIR), ++ single_path_relocation(FB_BINDIR,FB_UDFDIR), ++ single_path_relocation(FB_BINDIR,FB_SAMPLEDIR), ++ single_path_relocation(FB_BINDIR,FB_SAMPLEDBDIR), ++ single_path_relocation(FB_BINDIR,FB_HELPDIR), ++ single_path_relocation(FB_BINDIR,FB_INTLDIR), ++ single_path_relocation(FB_BINDIR,FB_MISCDIR), ++ single_path_relocation(FB_BINDIR,FB_SECDBDIR), ++ single_path_relocation(FB_BINDIR,FB_MSGDIR), ++ single_path_relocation(FB_BINDIR,FB_LOGDIR), ++ single_path_relocation(FB_BINDIR,FB_GUARDDIR), ++ single_path_relocation(FB_BINDIR,FB_PLUGDIR) + }; + + fb_assert(FB_NELEM(configDir) == FB_DIR_LAST); +diff --git a/src/jrd/gds.cpp b/src/jrd/gds.cpp +index 0b6852f..29d6cda 100644 +--- a/src/jrd/gds.cpp ++++ b/src/jrd/gds.cpp +@@ -56,6 +56,7 @@ + #include "../common/classes/timestamp.h" + #include "../common/classes/init.h" + #include "../common/classes/TempFile.h" ++#include "../common/pathtools.h" + #include "../common/utils_proto.h" + + #ifdef HAVE_UNISTD_H +@@ -3596,13 +3597,13 @@ public: + { + prefix = Config::getRootDirectory(); + if (prefix.isEmpty() && !GetProgramFilesDir(prefix)) +- prefix = FB_CONFDIR[0] ? FB_CONFDIR : FB_PREFIX; ++ prefix = FB_CONFDIR[0] ? single_path_relocation(FB_BINDIR,FB_CONFDIR) : single_path_relocation(FB_BINDIR,FB_PREFIX); + } + catch (Firebird::fatal_exception&) + { + // CVC: Presumably here we failed because the config file can't be located. + if (!GetProgramFilesDir(prefix)) +- prefix = FB_CONFDIR[0] ? FB_CONFDIR : FB_PREFIX; ++ prefix = FB_CONFDIR[0] ? single_path_relocation(FB_BINDIR,FB_CONFDIR) : single_path_relocation(FB_BINDIR,FB_PREFIX); + } + prefix.copyTo(fb_prefix_val, sizeof(fb_prefix_val)); + fb_prefix = fb_prefix_val; +@@ -3685,7 +3686,7 @@ public: + Firebird::PathName msgPrefix; + if (!fb_utils::readenv(FB_MSG_ENV, msgPrefix)) + { +- msgPrefix = FB_MSGDIR[0] ? FB_MSGDIR : prefix; ++ msgPrefix = FB_MSGDIR[0] ? single_path_relocation(FB_BINDIR,FB_MSGDIR) : prefix; + } + msgPrefix.copyTo(fb_prefix_msg_val, sizeof(fb_prefix_msg_val)); + fb_prefix_msg = fb_prefix_msg_val; +diff --git a/src/jrd/os/win32/config_root.cpp b/src/jrd/os/win32/config_root.cpp +index f5c7d54..deb33cc 100644 +--- a/src/jrd/os/win32/config_root.cpp ++++ b/src/jrd/os/win32/config_root.cpp +@@ -28,6 +28,7 @@ + #include "fb_types.h" + #include "../../../common/classes/fb_string.h" + #include "../../../common/dllinst.h" ++#include "../../../common/pathtools.h" + + #include "../jrd/os/config_root.h" + #include "../utilities/install/registry.h" +@@ -88,7 +89,7 @@ bool getBinFromHInstance(PathName& root) + void ConfigRoot::osConfigRoot() + { + // check the registry first +-#if defined(SUPERCLIENT) ++#if defined(SUPERCLIENT) && !defined(__MINGW32__) + if (getRootFromRegistry(root_dir)) + { + addSlash(); +@@ -125,7 +126,7 @@ void ConfigRoot::osConfigRoot() + } + + // As a last resort get it from the default install directory +- root_dir = FB_PREFIX; ++ root_dir = single_path_relocation(FB_BINDIR,FB_PREFIX); + } + + void ConfigRoot::osConfigInstallDir() +@@ -159,5 +160,5 @@ void ConfigRoot::osConfigInstallDir() + } + + // As a last resort get it from the default install directory +- install_dir = FB_PREFIX; ++ install_dir = single_path_relocation(FB_BINDIR,FB_PREFIX); + } +diff --git a/src/jrd/os/win32/path_utils.cpp b/src/jrd/os/win32/path_utils.cpp +index 6e22f15..48186bc 100644 +--- a/src/jrd/os/win32/path_utils.cpp ++++ b/src/jrd/os/win32/path_utils.cpp +@@ -4,8 +4,11 @@ + #include // _access + + /// The Win32 implementation of the path_utils abstraction. +- ++#if defined(__MINGW32__) ++const char PathUtils::dir_sep = '/'; ++#else + const char PathUtils::dir_sep = '\\'; ++#endif + const char* PathUtils::up_dir_link = ".."; + + class Win32DirItr : public PathUtils::dir_iterator +-- +2.4.3 + From ea6ee846f95e9cfa760cb62fa3b4dd6768a4ec1a Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Tue, 23 Jun 2015 16:57:35 +0100 Subject: [PATCH 1199/2060] vlc-git: remove hacky gcrypt patch and update to head --- ...er-the-static-libraries-when-creati.patch} | 0 ...ups-time.h-is-assumed-in-many-places.patch | 26 -- mingw-w64-vlc-git/0015-gcrypt-fix.patch | 400 ------------------ mingw-w64-vlc-git/PKGBUILD | 13 +- 4 files changed, 3 insertions(+), 436 deletions(-) rename mingw-w64-vlc-git/{0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch => 0004-Revert-Win32-prefer-the-static-libraries-when-creati.patch} (100%) delete mode 100644 mingw-w64-vlc-git/0004-fixups-time.h-is-assumed-in-many-places.patch delete mode 100644 mingw-w64-vlc-git/0015-gcrypt-fix.patch diff --git a/mingw-w64-vlc-git/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch b/mingw-w64-vlc-git/0004-Revert-Win32-prefer-the-static-libraries-when-creati.patch similarity index 100% rename from mingw-w64-vlc-git/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch rename to mingw-w64-vlc-git/0004-Revert-Win32-prefer-the-static-libraries-when-creati.patch diff --git a/mingw-w64-vlc-git/0004-fixups-time.h-is-assumed-in-many-places.patch b/mingw-w64-vlc-git/0004-fixups-time.h-is-assumed-in-many-places.patch deleted file mode 100644 index 2bfa6827aa..0000000000 --- a/mingw-w64-vlc-git/0004-fixups-time.h-is-assumed-in-many-places.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 5d2e3cac97b6c119e6a55f5a6c715a7932556634 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Mon, 18 May 2015 17:26:53 +0100 -Subject: [PATCH 1/2] fixups: time.h is assumed in many places - ---- - include/vlc_fixups.h | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h -index f844641..0c72af7 100644 ---- a/include/vlc_fixups.h -+++ b/include/vlc_fixups.h -@@ -26,9 +26,7 @@ - #ifndef LIBVLC_FIXUPS_H - # define LIBVLC_FIXUPS_H 1 - --#if !defined (HAVE_GMTIME_R) || !defined (HAVE_LOCALTIME_R) - # include /* time_t */ --#endif - - #ifndef HAVE_LLDIV - typedef struct --- -2.4.1 - diff --git a/mingw-w64-vlc-git/0015-gcrypt-fix.patch b/mingw-w64-vlc-git/0015-gcrypt-fix.patch deleted file mode 100644 index 183b70ee88..0000000000 --- a/mingw-w64-vlc-git/0015-gcrypt-fix.patch +++ /dev/null @@ -1,400 +0,0 @@ ---- - configure.ac | 29 +++++---- - include/vlc_gcrypt.h | 103 ------------------------------ - include/vlc_threads.h | 1 - - modules/access/dcp/dcpdecrypt.cpp | 3 - - modules/access/dcp/dcpparser.h | 1 - - modules/access/rtp/rtp.c | 2 - - modules/access_output/livehttp.c | 3 - - modules/demux/hls/playlist/HLSSegment.cpp | 4 -- - modules/stream_out/raop.c | 4 +- - modules/stream_out/rtp.c | 2 - - modules/video_filter/remoteosd.c | 3 - - po/POTFILES.in | 1 - - src/Makefile.am | 1 - - src/misc/threads.c | 1 - - src/misc/update.c | 2 - - 15 files changed, 16 insertions(+), 144 deletions(-) - delete mode 100644 include/vlc_gcrypt.h - -diff --git a/configure.ac b/configure.ac -index 0d1437b..92eb979 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3966,22 +3966,23 @@ dnl libgcrypt - dnl - AC_ARG_ENABLE(libgcrypt, - [ --disable-libgcrypt gcrypt support (default enabled)]) -+# require libgcrypt >= 1.6.0 - AS_IF([test "${enable_libgcrypt}" != "no"], [ -- AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [ -- libgcrypt-config --version >/dev/null || \ -- AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found]) -- AC_CHECK_LIB(gcrypt, gcry_control, [ -- have_libgcrypt="yes" -- AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt]) -- GCRYPT_CFLAGS="`libgcrypt-config --cflags`" -- GCRYPT_LIBS="`libgcrypt-config --libs`" -- ], [ -- AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.]) -- ], [`libgcrypt-config --libs`]) -+ AC_TRY_COMPILE([ -+#include -+#if GCRYPT_VERSION_NUMBER < 0x010600 -+#error -+#endif], -+ [], [ -+ have_libgcrypt="yes" -+ AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt]) -+ GCRYPT_CFLAGS="`libgcrypt-config --cflags`" -+ GCRYPT_LIBS="`libgcrypt-config --libs`" - ], [ -- AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.]) -- ], [#include ] -- ) -+ AS_IF([test "${enable_libgcrypt}" == "yes"], [ -+ AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.]) -+ ]) -+ ]) - ]) - - AC_SUBST(GCRYPT_CFLAGS) -diff --git a/include/vlc_gcrypt.h b/include/vlc_gcrypt.h -deleted file mode 100644 -index 89bdab8..0000000 ---- a/include/vlc_gcrypt.h -+++ /dev/null -@@ -1,103 +0,0 @@ --/***************************************************************************** -- * vlc_gcrypt.h: VLC thread support for gcrypt -- ***************************************************************************** -- * Copyright (C) 2004-2010 Rémi Denis-Courmont -- * -- * This program is free software; you can redistribute it and/or modify it -- * under the terms of the GNU Lesser General Public License as published by -- * the Free Software Foundation; either version 2.1 of the License, or -- * (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU Lesser General Public License for more details. -- * -- * You should have received a copy of the GNU Lesser General Public License -- * along with this program; if not, write to the Free Software Foundation, -- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. -- *****************************************************************************/ -- --/** -- * \file -- * This file implements gcrypt support functions in vlc -- */ -- --#include -- --#ifdef LIBVLC_USE_PTHREAD --/** -- * If possible, use gcrypt-provided thread implementation. This is so that -- * other non-VLC components (inside the process) can also use gcrypt safely. -- */ --GCRY_THREAD_OPTION_PTHREAD_IMPL; --# define gcry_threads_vlc gcry_threads_pthread --#else -- --/** -- * gcrypt thread option VLC implementation -- */ -- --static int gcry_vlc_mutex_init( void **p_sys ) --{ -- vlc_mutex_t *p_lock = (vlc_mutex_t *)malloc( sizeof( vlc_mutex_t ) ); -- if( p_lock == NULL) -- return ENOMEM; -- -- vlc_mutex_init( p_lock ); -- *p_sys = p_lock; -- return VLC_SUCCESS; --} -- --static int gcry_vlc_mutex_destroy( void **p_sys ) --{ -- vlc_mutex_t *p_lock = (vlc_mutex_t *)*p_sys; -- vlc_mutex_destroy( p_lock ); -- free( p_lock ); -- return VLC_SUCCESS; --} -- --static int gcry_vlc_mutex_lock( void **p_sys ) --{ -- vlc_mutex_lock( (vlc_mutex_t *)*p_sys ); -- return VLC_SUCCESS; --} -- --static int gcry_vlc_mutex_unlock( void **lock ) --{ -- vlc_mutex_unlock( (vlc_mutex_t *)*lock ); -- return VLC_SUCCESS; --} -- --static const struct gcry_thread_cbs gcry_threads_vlc = --{ -- GCRY_THREAD_OPTION_USER, -- NULL, -- gcry_vlc_mutex_init, -- gcry_vlc_mutex_destroy, -- gcry_vlc_mutex_lock, -- gcry_vlc_mutex_unlock, -- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL --}; --#endif -- --/** -- * Initializes gcrypt with proper locking. -- */ --static inline void vlc_gcrypt_init (void) --{ -- /* This would need a process-wide static mutex with all libraries linking -- * to a given instance of libgcrypt. We cannot do this as we have different -- * plugins linking with gcrypt, and some underlying libraries may use it -- * behind our back. Only way is to always link gcrypt statically (ouch!) or -- * have upstream gcrypt provide one shared object per threading system. */ -- static bool done = false; -- -- vlc_global_lock (VLC_GCRYPT_MUTEX); -- if (!done) -- { -- gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_vlc); -- done = true; -- } -- vlc_global_unlock (VLC_GCRYPT_MUTEX); --} -diff --git a/include/vlc_threads.h b/include/vlc_threads.h -index 38bc3a7..c093a6a 100644 ---- a/include/vlc_threads.h -+++ b/include/vlc_threads.h -@@ -471,7 +471,6 @@ class vlc_mutex_locker - enum - { - VLC_AVCODEC_MUTEX = 0, -- VLC_GCRYPT_MUTEX, - VLC_XLIB_MUTEX, - VLC_MOSAIC_MUTEX, - VLC_HIGHLIGHT_MUTEX, -diff --git a/modules/access/dcp/dcpdecrypt.cpp b/modules/access/dcp/dcpdecrypt.cpp -index bc51dd0..f2d4941 100644 ---- a/modules/access/dcp/dcpdecrypt.cpp -+++ b/modules/access/dcp/dcpdecrypt.cpp -@@ -271,9 +271,6 @@ int AESKey::decryptRSA( string s_cipher_text_b64 ) - goto end; - } - -- /* initialize libgcrypt */ -- vlc_gcrypt_init (); -- - /* create S-expression for ciphertext */ - if( ( err = gcry_mpi_scan( &cipher_text_mpi, GCRYMPI_FMT_USG, ps_cipher_text, 256, NULL ) ) ) - { -diff --git a/modules/access/dcp/dcpparser.h b/modules/access/dcp/dcpparser.h -index 5789d21..5da39d7 100644 ---- a/modules/access/dcp/dcpparser.h -+++ b/modules/access/dcp/dcpparser.h -@@ -45,7 +45,6 @@ - - /* gcrypt headers */ - #include --#include - - #include - #include -diff --git a/modules/access/rtp/rtp.c b/modules/access/rtp/rtp.c -index 455c0e8..dd22208 100644 ---- a/modules/access/rtp/rtp.c -+++ b/modules/access/rtp/rtp.c -@@ -38,7 +38,6 @@ - #ifdef HAVE_SRTP - # include - # include --# include - #endif - - #define RTCP_PORT_TEXT N_("RTCP (local) port") -@@ -279,7 +278,6 @@ static int Open (vlc_object_t *obj) - char *key = var_CreateGetNonEmptyString (demux, "srtp-key"); - if (key) - { -- vlc_gcrypt_init (); - p_sys->srtp = srtp_create (SRTP_ENCR_AES_CM, SRTP_AUTH_HMAC_SHA1, 10, - SRTP_PRF_AES_CM, SRTP_RCC_MODE1); - if (p_sys->srtp == NULL) -diff --git a/modules/access_output/livehttp.c b/modules/access_output/livehttp.c -index 0167d3b..d29edc2 100644 ---- a/modules/access_output/livehttp.c -+++ b/modules/access_output/livehttp.c -@@ -45,7 +45,6 @@ - #include - - #include --#include - - #include - -@@ -328,8 +327,6 @@ static int CryptSetup( sout_access_out_t *p_access, char *key_file ) - return VLC_EGENERIC; - } - -- vlc_gcrypt_init(); -- - /*Setup encryption cipher*/ - gcry_error_t err = gcry_cipher_open( &p_sys->aes_ctx, GCRY_CIPHER_AES, - GCRY_CIPHER_MODE_CBC, 0 ); -diff --git a/modules/demux/hls/playlist/HLSSegment.cpp b/modules/demux/hls/playlist/HLSSegment.cpp -index 3dda79c..28214a8 100644 ---- a/modules/demux/hls/playlist/HLSSegment.cpp -+++ b/modules/demux/hls/playlist/HLSSegment.cpp -@@ -21,9 +21,6 @@ - - #include - #include --#ifdef HAVE_GCRYPT -- #include --#endif - - using namespace hls::playlist; - -@@ -59,7 +56,6 @@ void HLSSegment::onChunkDownload(block_t **pp_block, Chunk *chunk, BaseRepresent - /* first bytes */ - if(!ctx && chunk->getBytesRead() == p_block->i_buffer) - { -- vlc_gcrypt_init(); - if (encryption.iv.size() != 16) - { - encryption.iv.clear(); -diff --git a/modules/stream_out/raop.c b/modules/stream_out/raop.c -index 014cb36..9f72b0b 100644 ---- a/modules/stream_out/raop.c -+++ b/modules/stream_out/raop.c -@@ -29,6 +29,7 @@ - #endif - - #include -+#include - - #include - -@@ -40,7 +41,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -1377,8 +1377,6 @@ static int Open( vlc_object_t *p_this ) - uint32_t i_session_id; - uint64_t i_client_instance; - -- vlc_gcrypt_init(); -- - config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, - p_stream->p_cfg ); - -diff --git a/modules/stream_out/rtp.c b/modules/stream_out/rtp.c -index 7a03ba0..01188e5 100644 ---- a/modules/stream_out/rtp.c -+++ b/modules/stream_out/rtp.c -@@ -44,7 +44,6 @@ - #ifdef HAVE_SRTP - # include - # include --# include - #endif - - #include "rtp.h" -@@ -1028,7 +1027,6 @@ static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, - char *key = var_GetNonEmptyString (p_stream, SOUT_CFG_PREFIX"key"); - if (key) - { -- vlc_gcrypt_init (); - id->srtp = srtp_create (SRTP_ENCR_AES_CM, SRTP_AUTH_HMAC_SHA1, 10, - SRTP_PRF_AES_CM, SRTP_RCC_MODE1); - if (id->srtp == NULL) -diff --git a/modules/video_filter/remoteosd.c b/modules/video_filter/remoteosd.c -index f53bba1..f657d70 100644 ---- a/modules/video_filter/remoteosd.c -+++ b/modules/video_filter/remoteosd.c -@@ -58,7 +58,6 @@ - - #include /* net_*, htonl */ - #include /* to encrypt password */ --#include - - #include "remoteosd_rfbproto.h" /* type definitions of the RFB protocol for VNC */ - -@@ -310,8 +309,6 @@ static int CreateFilter ( vlc_object_t *p_this ) - es_format_Init( &p_filter->fmt_out, SPU_ES, VLC_CODEC_SPU ); - p_filter->fmt_out.i_priority = ES_PRIORITY_SELECTABLE_MIN; - -- vlc_gcrypt_init(); -- - /* create the vnc worker thread */ - if( vlc_clone( &p_sys->worker_thread, - vnc_worker_thread, p_filter, VLC_THREAD_PRIORITY_LOW ) ) -diff --git a/po/POTFILES.in b/po/POTFILES.in -index 3df64ef..014c605 100644 ---- a/po/POTFILES.in -+++ b/po/POTFILES.in -@@ -21,7 +21,6 @@ include/vlc_es_out.h - include/vlc_events.h - include/vlc_filter.h - include/vlc_fixups.h --include/vlc_gcrypt.h - include/vlc_httpd.h - include/vlc_image.h - include/vlc_input.h -diff --git a/src/Makefile.am b/src/Makefile.am -index e608e4d..cc69344 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -48,7 +48,6 @@ pluginsinclude_HEADERS = \ - ../include/vlc_filter.h \ - ../include/vlc_fourcc.h \ - ../include/vlc_fs.h \ -- ../include/vlc_gcrypt.h \ - ../include/vlc_opengl.h \ - ../include/vlc_http.h \ - ../include/vlc_httpd.h \ -diff --git a/src/misc/threads.c b/src/misc/threads.c -index 01e1d97..d805f0d 100644 ---- a/src/misc/threads.c -+++ b/src/misc/threads.c -@@ -36,7 +36,6 @@ void vlc_global_mutex (unsigned n, bool acquire) - VLC_STATIC_MUTEX, - VLC_STATIC_MUTEX, - VLC_STATIC_MUTEX, -- VLC_STATIC_MUTEX, - }; - static_assert (VLC_MAX_MUTEX == (sizeof (locks) / sizeof (locks[0])), - "Wrong number of global mutexes"); -diff --git a/src/misc/update.c b/src/misc/update.c -index 9c8f979..4ab3440 100644 ---- a/src/misc/update.c -+++ b/src/misc/update.c -@@ -51,7 +51,6 @@ - #include - - #include --#include - #ifdef _WIN32 - #include - #endif -@@ -118,7 +117,6 @@ update_t *update_New( vlc_object_t *p_this ) - p_update->p_check = NULL; - - p_update->p_pkey = NULL; -- vlc_gcrypt_init(); - - return p_update; - } --- -2.1.4 - diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index d78b04944d..1cea860abf 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -115,18 +115,15 @@ source=(#"${_realname}-${_ver_base}"::"git://git.videolan.org/${_realname}/${_re 0001-Use-libdir-for-plugins-on-msys2.patch 0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch 0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - 0004-fixups-time.h-is-assumed-in-many-places.patch - 0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch + 0004-Revert-Win32-prefer-the-static-libraries-when-creati.patch 0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch 0012-Only-build-correct-modules-for-WINSTORE.patch 0013-remove-AllocConsole-reference-for-WINSTORE.patch - 0014-Remove-some-legacy-mingw.org-header-defines.patch - 0015-gcrypt-fix.patch) + 0014-Remove-some-legacy-mingw.org-header-defines.patch) md5sums=('SKIP' 'b6a010849631177493135b3ad7c5f784' '13f5a8bf897b253e0d9626a5ae79bc8d' 'c53c41b440eb42e7a2cda9109a1651c4' - '7935a0abb05472342473e9aafa3c426f' '8cd35991a69b14a1c3ab3b6faa9f15bc' '3ab07dce68513b6d37321f36141a8340' '4c286b5d83b67e6c0ca15c16b9376fc4' @@ -153,8 +150,7 @@ fi git am "${srcdir}"/0002-MinGW-w64-lfind-s-_NumOfElements-is-an-unsigned-int.patch git am "${srcdir}"/0003-MinGW-w64-don-t-pass-static-to-pkg-config-if-SYS-min.patch - git am "${srcdir}"/0004-fixups-time.h-is-assumed-in-many-places.patch - git am "${srcdir}"/0005-Revert-Win32-prefer-the-static-libraries-when-creati.patch + git am "${srcdir}"/0004-Revert-Win32-prefer-the-static-libraries-when-creati.patch if [ "${_variant}" == "winrt" ]; then git am "${srcdir}"/0011-Add-include-on-WINSTORE-for-QueueTimer-functions.patch @@ -163,9 +159,6 @@ if [ "${_variant}" == "winrt" ]; then git am "${srcdir}"/0014-Remove-some-legacy-mingw.org-header-defines.patch fi - #temp patch until HEAD is fixed - patch -p1 < "${srcdir}"/0015-gcrypt-fix.patch - ./bootstrap sed -i -e 's:truetype/freefont:TTF:g' modules/text_renderer/freetype.c From 9a1cf610d49566376c7c95b9f02cb7fb897be444 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 24 Jun 2015 09:45:11 +0300 Subject: [PATCH 1200/2060] drmingw-git: Update to git SHA [bc67b75] --- mingw-w64-drmingw-git/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index 187846806e..e882addf6a 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=drmingw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r445.e937a46 +pkgver=r450.bc67b75 pkgrel=1 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') @@ -28,7 +28,7 @@ pkgver() { prepare() { cd ${_realname} - patch -p1 -i ${srcdir}/import-libs.patch + #patch -p1 -i ${srcdir}/import-libs.patch patch -p1 -i ${srcdir}/install-files.patch } From 6a43f0aa97354089b078fe0d9ef3befcc2f3d32a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 24 Jun 2015 09:46:02 +0300 Subject: [PATCH 1201/2060] ncurses: Update to 6.0.20150613 --- mingw-w64-ncurses/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ncurses/PKGBUILD b/mingw-w64-ncurses/PKGBUILD index 127742d726..b01009dc3a 100644 --- a/mingw-w64-ncurses/PKGBUILD +++ b/mingw-w64-ncurses/PKGBUILD @@ -2,8 +2,8 @@ _realname=ncurses pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_base_ver=5.9 -_date_rev=20150321 +_base_ver=6.0 +_date_rev=20150613 pkgver=${_base_ver}.${_date_rev} pkgrel=1 pkgdesc="System V Release 4.0 curses emulation library" @@ -15,7 +15,7 @@ license=('MIT') options=('staticlibs' 'strip') source=("${_realname}-${pkgver}.tar.gz"::http://invisible-island.net/datafiles/current/${_realname}.tar.gz 001-use-libsystre.patch) -md5sums=('9b017587092b9ef673e5ea72108791a1' +md5sums=('0c6a0389d004c78f4a995bc61884a563' 'b669861903d0699b6535b7c6e028880d') prepare() { @@ -24,6 +24,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} From a7d995281060ae11b0c365f8afac7f06dfe68a7e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 24 Jun 2015 09:50:24 +0300 Subject: [PATCH 1202/2060] nss: Update to 3.19.2 --- mingw-w64-nss/PKGBUILD | 6 +++--- mingw-w64-nss/nss-3.14.3-build.patch | 11 +---------- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/mingw-w64-nss/PKGBUILD b/mingw-w64-nss/PKGBUILD index 23612b78d3..acc8c0f249 100644 --- a/mingw-w64-nss/PKGBUILD +++ b/mingw-w64-nss/PKGBUILD @@ -3,7 +3,7 @@ _realname=nss pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.17.4 +pkgver=3.19.2 _nsprver=4.10.8 pkgrel=1 pkgdesc="Mozilla Network Security Services (mingw-w64)" @@ -25,12 +25,12 @@ source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/s blank-cert8.db blank-key3.db blank-secmod.db) -md5sums=('a77df26072cabf8afb26911b6fa9b755' +md5sums=('b02ffd1e8e8ef5f8512fa02d8ca9db3d' 'd9c6516eb4dca209e4b7ae46a4758ffa' 'c547b030c57fe1ed8b77c73bf52b3ded' '46bee81908f1e5b26d6a7a2e14c64d9f' 'd83c7b61abb7e9f8f7bcd157183d1ade' - 'bab1bb522443127b6eba75e46b1260b7' + 'e0fabc913e4874f2218120bb5902eea0' '9634847026a86bbfc395c7be23d30458' 'a5ae49867124ac75f029a9a33af31bad' '9315689bbd9f28ceebd47894f99fccbd' diff --git a/mingw-w64-nss/nss-3.14.3-build.patch b/mingw-w64-nss/nss-3.14.3-build.patch index a7e1660b0c..a2990b2fe6 100644 --- a/mingw-w64-nss/nss-3.14.3-build.patch +++ b/mingw-w64-nss/nss-3.14.3-build.patch @@ -68,7 +68,7 @@ else --- nss-3.14.3/nss/cmd/platlibs.mk 2013-01-08 18:16:03.000000000 +0100 +++ nss-3.14.3/nss/cmd/platlibs.mk 2013-04-09 11:04:28.265194341 +0200 -@@ -72,22 +72,21 @@ +@@ -72,14 +72,13 @@ $(DIST)/lib/$(LIB_PREFIX)smime.$(LIB_SUFFIX) \ $(DIST)/lib/$(LIB_PREFIX)ssl.$(LIB_SUFFIX) \ $(DIST)/lib/$(LIB_PREFIX)nss.$(LIB_SUFFIX) \ @@ -84,15 +84,6 @@ $(SOFTOKENLIB) \ $(CRYPTOLIB) \ $(DIST)/lib/$(LIB_PREFIX)nsspki.$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nssdev.$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nssb.$(LIB_SUFFIX) \ - $(PKIXLIB) \ - $(DBMLIB) \ -- $(DIST)/lib/$(LIB_PREFIX)$(SQLITE_LIB_NAME).$(LIB_SUFFIX) \ -+ $(SQLITE_LIB_DIR)/$(LIB_PREFIX)$(SQLITE_LIB_NAME).$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nssutil3.$(LIB_SUFFIX) \ - $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plc4.$(LIB_SUFFIX) \ - $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plds4.$(LIB_SUFFIX) \ --- nss-3.14.3/nss/cmd/shlibsign/Makefile 2013-01-08 18:16:03.000000000 +0100 +++ nss-3.14.3/nss/cmd/shlibsign/Makefile 2013-04-09 11:04:28.265194341 +0200 @@ -27,9 +27,9 @@ From 3080e7c19d95580e47a1806dff5010c85682458a Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Wed, 24 Jun 2015 08:25:32 -0300 Subject: [PATCH 1203/2060] drmingw, drmingw-git: Some documentation fixes. * Fix duplicated license installation. * Convert markdown readme to HTML. --- mingw-w64-drmingw-git/PKGBUILD | 17 ++++++++++++++--- mingw-w64-drmingw/PKGBUILD | 16 +++++++++++++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index e882addf6a..a0459f7cee 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -4,12 +4,15 @@ _realname=drmingw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=r450.bc67b75 -pkgrel=1 +pkgrel=2 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') license=(LGPL2.1) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "git") +makedepends=(${MINGW_PACKAGE_PREFIX}-discount + ${MINGW_PACKAGE_PREFIX}-cmake + ${MINGW_PACKAGE_PREFIX}-gcc + git) provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") url=('https://github.com/jrfonseca/drmingw') @@ -47,5 +50,13 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 install - install -Dm644 "${srcdir}/${_realname}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + # License files + cd "${pkgdir}${MINGW_PREFIX}/share" + mkdir -p licenses/${_realname} + mv doc/${_realname}/LICENSE* licenses/${_realname} + + # Readme + cd "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}" + markdown README.md > README.html + rm README.md } diff --git a/mingw-w64-drmingw/PKGBUILD b/mingw-w64-drmingw/PKGBUILD index da9f65423a..6f42d6e7ec 100644 --- a/mingw-w64-drmingw/PKGBUILD +++ b/mingw-w64-drmingw/PKGBUILD @@ -4,12 +4,14 @@ _realname=drmingw pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) pkgver=0.7.3 -pkgrel=3 +pkgrel=4 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') license=(LGPL2) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") +makedepends=(${MINGW_PACKAGE_PREFIX}-discount + ${MINGW_PACKAGE_PREFIX}-cmake + ${MINGW_PACKAGE_PREFIX}-gcc) url=('https://github.com/jrfonseca/drmingw') source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/archive/${pkgver}.tar.gz" import-libs.patch @@ -40,5 +42,13 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 install - install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + # License files + cd "${pkgdir}${MINGW_PREFIX}/share" + mkdir -p licenses/${_realname} + mv doc/${_realname}/LICENSE* licenses/${_realname} + + # Readme + cd "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}" + markdown README.md > README.html + rm README.md } From 757cad32c51b21ad85fd425694afe2f26306b826 Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Wed, 24 Jun 2015 21:38:23 +1000 Subject: [PATCH 1204/2060] mpv: Update to 0.9.2 The Lua package has changed from lua from lua51, since mpv does not support Lua 5.3. librubberband has been added for pitch correction. --- ...1-Revert-win32-fix-desktop-directory.patch | 29 +++++++++++ mingw-w64-mpv/PKGBUILD | 51 ++++++++++--------- 2 files changed, 56 insertions(+), 24 deletions(-) create mode 100644 mingw-w64-mpv/0001-Revert-win32-fix-desktop-directory.patch diff --git a/mingw-w64-mpv/0001-Revert-win32-fix-desktop-directory.patch b/mingw-w64-mpv/0001-Revert-win32-fix-desktop-directory.patch new file mode 100644 index 0000000000..1ecf58409f --- /dev/null +++ b/mingw-w64-mpv/0001-Revert-win32-fix-desktop-directory.patch @@ -0,0 +1,29 @@ +From 2739ea80b7137daf3f9a39fd3a2ddfd787a6b964 Mon Sep 17 00:00:00 2001 +From: James Ross-Gowan +Date: Wed, 24 Jun 2015 20:49:59 +1000 +Subject: [PATCH] Revert "win32: fix desktop directory" + +This reverts commit f56a7af9f696aab7f4095f282f22dcbe7c758c9e. + +This was incorrectly merged. There's no folder parameter in the version +of the function on the release branch. +--- + osdep/path-win.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/osdep/path-win.c b/osdep/path-win.c +index f22b8a3..26f7ffa 100644 +--- a/osdep/path-win.c ++++ b/osdep/path-win.c +@@ -51,7 +51,7 @@ static char *mp_get_win_app_dir(void *talloc_ctx) + { + wchar_t w_appdir[MAX_PATH + 1] = {0}; + +- if (SHGetFolderPathW(NULL, folder|CSIDL_FLAG_CREATE, NULL, ++ if (SHGetFolderPathW(NULL, CSIDL_APPDATA|CSIDL_FLAG_CREATE, NULL, + SHGFP_TYPE_CURRENT, w_appdir) != S_OK) + return NULL; + +-- +2.4.4 + diff --git a/mingw-w64-mpv/PKGBUILD b/mingw-w64-mpv/PKGBUILD index cb889ae92d..d057d109c0 100644 --- a/mingw-w64-mpv/PKGBUILD +++ b/mingw-w64-mpv/PKGBUILD @@ -3,31 +3,33 @@ _realname=mpv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.8.0 +pkgver=0.9.2 pkgrel=1 pkgdesc="Video player based on MPlayer/mplayer2 (mingw-w64)" url="http://mpv.io" arch=('any') license=('GPL') -depends=("${MINGW_PACKAGE_PREFIX}-ffmpeg" +depends=("${MINGW_PACKAGE_PREFIX}-enca" + "${MINGW_PACKAGE_PREFIX}-ffmpeg" "${MINGW_PACKAGE_PREFIX}-lcms2" - "${MINGW_PACKAGE_PREFIX}-libdvdread" - #"${MINGW_PACKAGE_PREFIX}-libcdio-paranoia" - "${MINGW_PACKAGE_PREFIX}-enca" - "${MINGW_PACKAGE_PREFIX}-libguess" - "${MINGW_PACKAGE_PREFIX}-mpg123" - "${MINGW_PACKAGE_PREFIX}-lua" - "${MINGW_PACKAGE_PREFIX}-libdvdnav" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-libcaca" + #"${MINGW_PACKAGE_PREFIX}-libcdio-paranoia" + "${MINGW_PACKAGE_PREFIX}-libdvdnav" + "${MINGW_PACKAGE_PREFIX}-libdvdread" + "${MINGW_PACKAGE_PREFIX}-libguess" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-lua51" + "${MINGW_PACKAGE_PREFIX}-rubberband" "winpty-git") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python3-docutils" - "python" "perl" - "pkg-config") -source=(https://github.com/mpv-player/${_realname}/archive/v$pkgver.tar.gz) -md5sums=('b3d02a0db096e77ce38c3946dd631e58') + "pkg-config" + "python") +source=(https://github.com/mpv-player/${_realname}/archive/v$pkgver.tar.gz + 0001-Revert-win32-fix-desktop-directory.patch) +md5sums=('ed1384e703f7032e531731842e4da4f7' + '384699c849f1028b4abd57361f10d743') # strip doesn't work well with the mpv.com wrapper, so strip manually instead options=(!strip !emptydirs) @@ -36,6 +38,7 @@ prepare() { cd ${_realname}-${pkgver} [ -x ./waf ] || /usr/bin/python3 ./bootstrap.py sed -i 's:bin/env python$:bin/env python3:' waf + patch -p1 -i "${srcdir}"/0001-Revert-win32-fix-desktop-directory.patch } build() { @@ -52,18 +55,18 @@ build() { --prefix=${MINGW_PREFIX} \ --check-c-compiler=gcc \ --enable-libmpv-shared \ - --enable-libguess \ - --enable-lua \ + --disable-cdda \ + --disable-ladspa \ + --enable-caca \ + --enable-dvdnav \ + --enable-dvdread \ + --enable-enca \ + --enable-jpeg \ + --enable-lcms2 \ --enable-libass \ --enable-libbluray \ - --enable-dvdread \ - --enable-dvdnav \ - --disable-cdda \ - --enable-enca \ - --enable-mpg123 \ - --enable-lcms2 \ - --enable-caca \ - --enable-jpeg \ + --enable-libguess \ + --enable-lua \ --out="${srcdir}/build-${MINGW_CHOST}" /usr/bin/python3 ./waf build From 541589719a1859434f6139fc03ca4ebb537f02a1 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Wed, 24 Jun 2015 10:24:20 -0300 Subject: [PATCH 1205/2060] cmake, cmake-git: Avoid installing useless file in MinGW root. --- mingw-w64-cmake-git/PKGBUILD | 3 ++- mingw-w64-cmake/PKGBUILD | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cmake-git/PKGBUILD b/mingw-w64-cmake-git/PKGBUILD index 1f53221fcd..b8e7691bfc 100644 --- a/mingw-w64-cmake-git/PKGBUILD +++ b/mingw-w64-cmake-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r28422.2848f93 +pkgver=r28590.6b5e94b pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') @@ -64,4 +64,5 @@ build() { package() { cd "${srcdir}/build-${CARCH}" ./bin/cmake.exe -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} -P cmake_install.cmake + rm "${pkgdir}${MINGW_PREFIX}/cmake.org.html" } diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 14ca7dd521..f2f60cb1a6 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -3,7 +3,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.2.3 -pkgrel=2 +pkgrel=3 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -55,4 +55,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" ./bin/cmake.exe -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} -P cmake_install.cmake + rm "${pkgdir}${MINGW_PREFIX}/cmake.org.html" } From 1b2e4d6c048304dad68e772eb202c3370bdc829f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 24 Jun 2015 19:04:16 +0300 Subject: [PATCH 1206/2060] Rename source archive on download. --- mingw-w64-badvpn/PKGBUILD | 2 +- mingw-w64-mpv/PKGBUILD | 2 +- mingw-w64-v8/PKGBUILD | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/mingw-w64-badvpn/PKGBUILD b/mingw-w64-badvpn/PKGBUILD index 37979d1ccc..fe6cd67d05 100644 --- a/mingw-w64-badvpn/PKGBUILD +++ b/mingw-w64-badvpn/PKGBUILD @@ -15,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-nspr" "${MINGW_PACKAGE_PREFIX}-nss" "${MINGW_PACKAGE_PREFIX}-openssl") -source=("https://github.com/ambrop72/badvpn/archive/${pkgver}.tar.gz") +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/ambrop72/badvpn/archive/${pkgver}.tar.gz") md5sums=('e65d8d298fc82eb9a6c12a9425a97e6d') build() { diff --git a/mingw-w64-mpv/PKGBUILD b/mingw-w64-mpv/PKGBUILD index d057d109c0..44b4949af3 100644 --- a/mingw-w64-mpv/PKGBUILD +++ b/mingw-w64-mpv/PKGBUILD @@ -26,7 +26,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "perl" "pkg-config" "python") -source=(https://github.com/mpv-player/${_realname}/archive/v$pkgver.tar.gz +source=(${_realname}-${pkgver}.tar.gz::https://github.com/mpv-player/${_realname}/archive/v${pkgver}.tar.gz 0001-Revert-win32-fix-desktop-directory.patch) md5sums=('ed1384e703f7032e531731842e4da4f7' '384699c849f1028b4abd57361f10d743') diff --git a/mingw-w64-v8/PKGBUILD b/mingw-w64-v8/PKGBUILD index d4d6707163..0513998b60 100644 --- a/mingw-w64-v8/PKGBUILD +++ b/mingw-w64-v8/PKGBUILD @@ -2,7 +2,6 @@ # Maintainer: Ray Donnelly _realname=v8 - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" #pkgver=3.27.34.6 pkgver=4.2.47 @@ -15,7 +14,7 @@ makedepends=("gyp-svn") depends=("${MINGW_PACKAGE_PREFIX}-readline" "${MINGW_PACKAGE_PREFIX}-icu") options=('!emptydirs' '!strip') -source=("https://github.com/v8/v8-git-mirror/archive/${pkgver}.tar.gz" +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/v8/v8-git-mirror/archive/${pkgver}.tar.gz" "0000-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch" "0001-Include-win32-headers-h-before-undef-MemoryBarrier.patch" "0002-OS-TotalPhysicalMemory-needed-for-MinGW-w64-too.patch" From 651f25de32027c90fde33adf2bc0406dcace0c02 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Jun 2015 12:21:44 +0300 Subject: [PATCH 1207/2060] ccache: Switch to release versions. --- mingw-w64-ccache-git/PKGBUILD | 44 ----------------------------------- mingw-w64-ccache/PKGBUILD | 39 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 44 deletions(-) delete mode 100644 mingw-w64-ccache-git/PKGBUILD create mode 100644 mingw-w64-ccache/PKGBUILD diff --git a/mingw-w64-ccache-git/PKGBUILD b/mingw-w64-ccache-git/PKGBUILD deleted file mode 100644 index 63e283b0d5..0000000000 --- a/mingw-w64-ccache-git/PKGBUILD +++ /dev/null @@ -1,44 +0,0 @@ -# Maintainer: Alexey Pavlov - -_realname=ccache - -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r1359.c5533d6 -pkgrel=1 -pkgdesc="A compiler cache (mingw-w64)." -arch=('any') -url="http://ccache.samba.org/" -license=("MIT") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "git") -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-zlib") -options=('staticlibs' 'strip') -source=("${_realname}"::"git+git://git.samba.org/ccache.git") -md5sums=('SKIP') - -pkgver() { - cd "$srcdir/$_realname" - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" -} - -prepare() { - cd ${_realname} - ./autogen.sh -} - -build() { - mkdir -p $srcdir/build-${CARCH} && cd $srcdir/build-${CARCH} - ../$_realname/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} - make -} - -package() { - cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install -} diff --git a/mingw-w64-ccache/PKGBUILD b/mingw-w64-ccache/PKGBUILD new file mode 100644 index 0000000000..bfd94b87f1 --- /dev/null +++ b/mingw-w64-ccache/PKGBUILD @@ -0,0 +1,39 @@ +# Maintainer: Alexey Pavlov + +_realname=ccache +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.2.2 +pkgrel=1 +pkgdesc="A compiler cache (mingw-w64)" +arch=('any') +url="http://ccache.samba.org/" +license=("MIT") +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-zlib") +options=('staticlibs' 'strip') +source=(http://samba.org/ftp/ccache/${_realname}-${pkgver}.tar.bz2{,.asc}) +md5sums=('0823f62b5b44f7b4b0fa5205416be74a' + 'SKIP') + +prepare() { + cd ${_realname}-${pkgver} + #./autogen.sh +} + +build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install +} From c435ea47e27dd6dff4938edc2d7a563deaa5534f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Jun 2015 15:01:45 +0300 Subject: [PATCH 1208/2060] openscad: Update to 2015.03 --- mingw-w64-openscad/01-glew-library.patch | 11 ----------- mingw-w64-openscad/PKGBUILD | 15 +++++---------- 2 files changed, 5 insertions(+), 21 deletions(-) delete mode 100644 mingw-w64-openscad/01-glew-library.patch diff --git a/mingw-w64-openscad/01-glew-library.patch b/mingw-w64-openscad/01-glew-library.patch deleted file mode 100644 index 8586f355e8..0000000000 --- a/mingw-w64-openscad/01-glew-library.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur openscad-2014.03-orig/glew.pri openscad-2014.03/glew.pri ---- openscad-2014.03-orig/glew.pri 2014-02-06 08:21:04.000000000 +0300 -+++ openscad-2014.03/glew.pri 2014-12-16 08:01:54.342600000 +0300 -@@ -9,6 +9,6 @@ - } - - unix:LIBS += -lGLEW -- win32:LIBS += -lglew32s -+ win32:LIBS += -lglew32 - CONFIG(mingw-cross-env):DEFINES += GLEW_STATIC - } diff --git a/mingw-w64-openscad/PKGBUILD b/mingw-w64-openscad/PKGBUILD index f2b4b9f073..c570842750 100644 --- a/mingw-w64-openscad/PKGBUILD +++ b/mingw-w64-openscad/PKGBUILD @@ -2,7 +2,7 @@ _realname=openscad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2014.03 +pkgver=2015.03 pkgrel=1 pkgdesc="The programmers solid 3D CAD modeller (mingw-w64)" arch=('any') @@ -18,16 +18,12 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-eigen3" "${MINGW_PACKAGE_PREFIX}-imagemagick") options=(!strip staticlibs !buildflags) -source=("http://files.openscad.org/${_realname}-${pkgver}.src.tar.gz" - 01-glew-library.patch) -md5sums=('38bebd02bce365fe39e695a07411ab73' - '0096cdf8865d85115713a28c12b81bd8') +source=("http://files.openscad.org/${_realname}-${pkgver}.src.tar.gz") +md5sums=('d1daed0ba048141bb910cfcadf8838e3') prepare() { cd "${srcdir}/${_realname}-${pkgver}" rm -f libraries/MCAD/*.py - - patch -p1 -i ${srcdir}/01-glew-library.patch } build() { @@ -37,8 +33,7 @@ build() { EIGENDIR=${MINGW_PREFIX} \ GLEWDIR=${MINGW_PREFIX} \ OPENCSGDIR=${MINGW_PREFIX} \ - OPENSCAD_LIBRARIES=${MINGW_PREFIX} \ - ${MINGW_PREFIX}/bin/qmake PREFIX="${MINGW_PREFIX}" VERSION="$pkgver" + ${MINGW_PREFIX}/bin/qmake CONFIG+=release PREFIX="${pkgdir}${MINGW_PREFIX}" VERSION="${pkgver}" make -j1 convert "icons/${_realname}.png" -resize 128x128\> "icons/${_realname}-128.png" @@ -46,6 +41,6 @@ build() { package() { cd ${srcdir}/${_realname}-${pkgver} - make INSTALL_ROOT="$pkgdir" install + make INSTALL_ROOT= install install -Dm644 "icons/${_realname}.xml" "${pkgdir}${MINGW_PREFIX}/share/mime/packages/${_realname}.xml" } From e9a1bf78662b45964c784eb887493424fc8b90ea Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 25 Jun 2015 13:21:33 +0100 Subject: [PATCH 1209/2060] qt-installer-framework: Don't report an invalid error If '--platform minimal' was passed, 'Unknown option: platform' was reported, so add --platform as a known option. --- ...-add-installation-stuff-to-pro-files.patch | 16 +++---- ...-recursive-option-to-rmdir-operation.patch | 12 +++--- .../0004-add-dirExists-fuction.patch | 14 +++---- ...Fix-RunProgram-variable-substitution.patch | 10 ++--- ...move-files-that-live-outside-of-path.patch | 10 ++--- ...vent-qmake-linking-qmltooling-plugin.patch | 6 +-- ...Use-QTPLUGIN-qminimal-on-Windows-too.patch | 6 +-- ...explicit-platform-commandline-option.patch | 42 +++++++++++++++++++ mingw-w64-qt-installer-framework/PKGBUILD | 21 ++++++---- 9 files changed, 91 insertions(+), 46 deletions(-) create mode 100644 mingw-w64-qt-installer-framework/0009-Add-explicit-platform-commandline-option.patch diff --git a/mingw-w64-qt-installer-framework/0002-add-installation-stuff-to-pro-files.patch b/mingw-w64-qt-installer-framework/0002-add-installation-stuff-to-pro-files.patch index 7a83c6f1f9..b300f55c1e 100644 --- a/mingw-w64-qt-installer-framework/0002-add-installation-stuff-to-pro-files.patch +++ b/mingw-w64-qt-installer-framework/0002-add-installation-stuff-to-pro-files.patch @@ -1,7 +1,7 @@ -From 15813ebd2ff591a5d3c855f128926aa5c3029f7a Mon Sep 17 00:00:00 2001 +From 272c7a0dbc676966c2ea660f81f08aacc5ae5f95 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 6 May 2014 11:11:50 +0100 -Subject: [PATCH 2/5] add installation stuff to pro files +Subject: [PATCH 2/9] add installation stuff to pro files --- src/sdk/sdk.pro | 2 ++ @@ -11,7 +11,7 @@ Subject: [PATCH 2/5] add installation stuff to pro files 4 files changed, 11 insertions(+) diff --git a/src/sdk/sdk.pro b/src/sdk/sdk.pro -index 4168923..7742add 100644 +index 8e78b12..68fb234 100644 --- a/src/sdk/sdk.pro +++ b/src/sdk/sdk.pro @@ -1,6 +1,8 @@ @@ -24,10 +24,10 @@ index 4168923..7742add 100644 include(../../installerfw.pri) diff --git a/tools/archivegen/archivegen.pro b/tools/archivegen/archivegen.pro -index 135c340..e94c03c 100644 +index 719b35a..fc4ab70 100644 --- a/tools/archivegen/archivegen.pro +++ b/tools/archivegen/archivegen.pro -@@ -15,3 +15,6 @@ SOURCES += archive.cpp \ +@@ -16,3 +16,6 @@ SOURCES += archive.cpp \ HEADERS += ../common/repositorygen.h macx:include(../../no_app_bundle.pri) @@ -35,10 +35,10 @@ index 135c340..e94c03c 100644 +target.path = $$PREFIX/bin +INSTALLS += target diff --git a/tools/binarycreator/binarycreator.pro b/tools/binarycreator/binarycreator.pro -index 7492647..053d16c 100644 +index 248c243..7255f1d 100644 --- a/tools/binarycreator/binarycreator.pro +++ b/tools/binarycreator/binarycreator.pro -@@ -18,3 +18,6 @@ HEADERS = rcc/rcc.h +@@ -19,3 +19,6 @@ HEADERS = rcc/rcc.h RESOURCES += binarycreator.qrc macx:include(../../no_app_bundle.pri) @@ -57,5 +57,5 @@ index e6ee447..52f53ce 100644 +target.path = $$PREFIX/bin +INSTALLS += target -- -2.0.0 +2.4.4 diff --git a/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch b/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch index 399abb748e..d4b23572d7 100644 --- a/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch +++ b/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch @@ -1,17 +1,17 @@ -From 23f5bd1e920ce1e71faa6064c27104bfd192af2c Mon Sep 17 00:00:00 2001 +From fa1576743936e71571db5d69ded9b8871f4b9364 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 7 May 2014 17:09:33 +0100 -Subject: [PATCH 1/4] add recursive option to rmdir operation +Subject: [PATCH 3/9] add recursive option to rmdir operation --- src/libs/kdtools/kdupdaterupdateoperations.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libs/kdtools/kdupdaterupdateoperations.cpp b/src/libs/kdtools/kdupdaterupdateoperations.cpp -index 90dbc7d..45cec27 100644 +index 9446790..39c8b4d 100644 --- a/src/libs/kdtools/kdupdaterupdateoperations.cpp +++ b/src/libs/kdtools/kdupdaterupdateoperations.cpp -@@ -525,7 +525,8 @@ void RmdirOperation::backup() +@@ -539,7 +539,8 @@ void RmdirOperation::backup() bool RmdirOperation::performOperation() { // Requires only one parameter. That is the name of the file to remove. @@ -21,7 +21,7 @@ index 90dbc7d..45cec27 100644 return false; const QString firstArg = arguments().at(0); -@@ -536,8 +537,11 @@ bool RmdirOperation::performOperation() +@@ -551,8 +552,11 @@ bool RmdirOperation::performOperation() return false; } @@ -35,5 +35,5 @@ index 90dbc7d..45cec27 100644 if (!removed) { setError(UserDefinedError); -- -2.3.4 +2.4.4 diff --git a/mingw-w64-qt-installer-framework/0004-add-dirExists-fuction.patch b/mingw-w64-qt-installer-framework/0004-add-dirExists-fuction.patch index 6e582523fb..b4c4938cec 100644 --- a/mingw-w64-qt-installer-framework/0004-add-dirExists-fuction.patch +++ b/mingw-w64-qt-installer-framework/0004-add-dirExists-fuction.patch @@ -1,7 +1,7 @@ -From e28ea0afaf1261cc005c80090011d675a3b51bff Mon Sep 17 00:00:00 2001 +From 07d6206d14e9c992d1c0ded3bc4229d613df42df Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 8 May 2014 12:01:54 +0100 -Subject: [PATCH 4/5] add dirExists() fuction +Subject: [PATCH 4/9] add dirExists() fuction --- src/libs/installer/packagemanagercore.cpp | 11 +++++++++++ @@ -9,10 +9,10 @@ Subject: [PATCH 4/5] add dirExists() fuction 2 files changed, 12 insertions(+) diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp -index 7b93a65..b6f4573 100644 +index 1bb800b..99ad454 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp -@@ -718,6 +718,17 @@ bool PackageManagerCore::fileExists(const QString &filePath) const +@@ -785,6 +785,17 @@ bool PackageManagerCore::fileExists(const QString &filePath) const return QFileInfo(filePath).exists(); } @@ -31,10 +31,10 @@ index 7b93a65..b6f4573 100644 /*! diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h -index a3f2b7e..4f30cb6 100644 +index 5160b05..a89fc7c 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h -@@ -179,6 +179,7 @@ public: +@@ -190,6 +190,7 @@ public: Q_INVOKABLE bool isFileExtensionRegistered(const QString &extension) const; Q_INVOKABLE bool fileExists(const QString &filePath) const; @@ -43,5 +43,5 @@ index a3f2b7e..4f30cb6 100644 public: ScriptEngine *componentScriptEngine() const; -- -2.0.0 +2.4.4 diff --git a/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch b/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch index 3bf7dcd4ba..f6fc6672dc 100644 --- a/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch +++ b/mingw-w64-qt-installer-framework/0005-Fix-RunProgram-variable-substitution.patch @@ -1,7 +1,7 @@ -From dd786f77b8db729128287c908cf7c35b482ade2c Mon Sep 17 00:00:00 2001 +From 56ab98f010e91f6dba841e5cd02ab493aedf1219 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 16 Jun 2014 20:32:48 +0100 -Subject: [PATCH] Fix RunProgram variable substitution +Subject: [PATCH 5/9] Fix RunProgram variable substitution Patch from https://bugreports.qt-project.org/browse/QTIFW-397 Using @TargetDir@/blah.exe would use only the @@ -11,10 +11,10 @@ default value of TargetDir, and ignored any user modification. 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp -index 6c4fcb5..d2d9eb4 100644 +index d25e9f4..8138fbb 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp -@@ -3019,8 +3019,9 @@ void FinishedPage::leaving() +@@ -3057,8 +3057,9 @@ void FinishedPage::leaving() */ void FinishedPage::handleFinishClicked() { @@ -26,5 +26,5 @@ index 6c4fcb5..d2d9eb4 100644 const QStringList args = packageManagerCore()->replaceVariables(packageManagerCore() ->values(scRunProgramArguments)); -- -2.3.4 +2.4.4 diff --git a/mingw-w64-qt-installer-framework/0006-Don-t-remove-files-that-live-outside-of-path.patch b/mingw-w64-qt-installer-framework/0006-Don-t-remove-files-that-live-outside-of-path.patch index 4fff25a9ab..0919cd0183 100644 --- a/mingw-w64-qt-installer-framework/0006-Don-t-remove-files-that-live-outside-of-path.patch +++ b/mingw-w64-qt-installer-framework/0006-Don-t-remove-files-that-live-outside-of-path.patch @@ -1,7 +1,7 @@ -From f743afd0ed931648ba1a407b1dd6ec7740bf0dce Mon Sep 17 00:00:00 2001 +From 0f2722ace0d2586a9fdac371e8841c4f07049ecb Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 30 Mar 2015 13:46:51 +0100 -Subject: [PATCH] Don't remove files that live outside of path +Subject: [PATCH 6/9] Don't remove files that live outside of path If a file is symlinked outside of path in QInstaller::removeFiles then it gets removed regardless. This will cause e.g. users' HOME @@ -11,7 +11,7 @@ directories to get removed on MSYS2. 1 file changed, 22 insertions(+) diff --git a/src/libs/installer/fileutils.cpp b/src/libs/installer/fileutils.cpp -index 5556e9e..5498425 100644 +index 00c289f..81a00bb 100644 --- a/src/libs/installer/fileutils.cpp +++ b/src/libs/installer/fileutils.cpp @@ -179,7 +179,29 @@ void QInstaller::removeFiles(const QString &path, bool ignoreErrors) @@ -43,7 +43,7 @@ index 5556e9e..5498425 100644 + } if (!f.remove()) { const QString errorMessage = QCoreApplication::translate("QInstaller", - "Could not remove file %1: %2").arg(f.fileName(), f.errorString()); + "Cannot remove file \"%1\": %2").arg( -- -2.3.4 +2.4.4 diff --git a/mingw-w64-qt-installer-framework/0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch b/mingw-w64-qt-installer-framework/0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch index 99d208b0dd..1af6818266 100644 --- a/mingw-w64-qt-installer-framework/0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch +++ b/mingw-w64-qt-installer-framework/0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch @@ -1,7 +1,7 @@ -From aa36062b4aff3fae4ed9204103e2f84183262e77 Mon Sep 17 00:00:00 2001 +From 58ef2828c799243134bbcac881cd15a71907b19b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 1 Apr 2015 15:01:08 +0100 -Subject: [PATCH] Don't prevent qmake linking qmltooling plugin +Subject: [PATCH 7/9] Don't prevent qmake linking qmltooling plugin Since it seems to be necessary. For now, I've removed the deliberate exclusion for win32 only, but I can't see why @@ -42,5 +42,5 @@ index 68fb234..1285109 100644 DESTDIR = $$IFW_APP_PATH -- -2.3.4 +2.4.4 diff --git a/mingw-w64-qt-installer-framework/0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch b/mingw-w64-qt-installer-framework/0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch index fddcc70c98..2895484176 100644 --- a/mingw-w64-qt-installer-framework/0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch +++ b/mingw-w64-qt-installer-framework/0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch @@ -1,7 +1,7 @@ -From d81c023ede33b483f131db24a9c7257ea140e989 Mon Sep 17 00:00:00 2001 +From 3a25fdf13e4978827769ac5626d5910dcec7acb6 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 16 Jun 2015 23:14:23 +0100 -Subject: [PATCH 8/8] Use QTPLUGIN += qminimal on Windows too +Subject: [PATCH 8/9] Use QTPLUGIN += qminimal on Windows too Fixes: http://sourceforge.net/p/msys2/tickets/149/ See also: https://bugreports.qt.io/browse/QTIFW-166 @@ -23,5 +23,5 @@ index 1285109..871df89 100644 } -- -2.4.3 +2.4.4 diff --git a/mingw-w64-qt-installer-framework/0009-Add-explicit-platform-commandline-option.patch b/mingw-w64-qt-installer-framework/0009-Add-explicit-platform-commandline-option.patch new file mode 100644 index 0000000000..c9ddae69b9 --- /dev/null +++ b/mingw-w64-qt-installer-framework/0009-Add-explicit-platform-commandline-option.patch @@ -0,0 +1,42 @@ +From 1811044eeb1d4481f0c65c9863f60c58649220f8 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Thu, 25 Jun 2015 10:49:42 +0100 +Subject: [PATCH 9/9] Add explicit '--platform' commandline option + +To prevent 'Unknown option: platform' when running +in headless mode (--platform minimal) +--- + src/sdk/commandlineparser.cpp | 4 ++++ + src/sdk/constants.h | 1 + + 2 files changed, 5 insertions(+) + +diff --git a/src/sdk/commandlineparser.cpp b/src/sdk/commandlineparser.cpp +index 842edde..0b8eaa6 100644 +--- a/src/sdk/commandlineparser.cpp ++++ b/src/sdk/commandlineparser.cpp +@@ -116,6 +116,10 @@ CommandLineParser::CommandLineParser() + "not started by the client application in that case, you need to start it on your own."), + QLatin1String("socketname,key"))); + ++ m_parser.addOption(QCommandLineOption(QLatin1String(CommandLineOptions::Platform), ++ QLatin1String("Use specified platform plugin. The 'minimal' platform plugin can be used " ++ "to run in headless mode."), QLatin1String("platform-plugin"))); ++ + m_parser.addPositionalArgument(QLatin1String(CommandLineOptions::KeyValue), + QLatin1String("Key Value pair to be set.")); + } +diff --git a/src/sdk/constants.h b/src/sdk/constants.h +index db3f8af..544e28f 100644 +--- a/src/sdk/constants.h ++++ b/src/sdk/constants.h +@@ -57,6 +57,7 @@ const char AddTmpRepository[] = "addTempRepository"; + const char SetTmpRepository[] = "setTempRepository"; + const char StartServer[] = "startserver"; + const char StartClient[] = "startclient"; ++const char Platform[] = "platform"; + + } // namespace CommandLineOptions + +-- +2.4.4 + diff --git a/mingw-w64-qt-installer-framework/PKGBUILD b/mingw-w64-qt-installer-framework/PKGBUILD index 815aee0877..cc8e147c37 100644 --- a/mingw-w64-qt-installer-framework/PKGBUILD +++ b/mingw-w64-qt-installer-framework/PKGBUILD @@ -3,7 +3,7 @@ _realname=installer-framework pkgname="${MINGW_PACKAGE_PREFIX}-qt-${_realname}-git" pkgdesc="The Qt Installer Framework used for the Qt SDK installer" -pkgver=r2741.b753081 +pkgver=r2748.5d53c5a pkgrel=1 arch=('any') url='http://qt-project.org/' @@ -20,15 +20,17 @@ source=("${_realname}"::"git+https://github.com/qtproject/${_realname}.git" "0005-Fix-RunProgram-variable-substitution.patch" "0006-Don-t-remove-files-that-live-outside-of-path.patch" "0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch" - "0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch") + "0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch" + "0009-Add-explicit-platform-commandline-option.patch") md5sums=('SKIP' - '19f0a7498ee991db0fcfc36ad755999c' - '536ce871a0c9fd00494841598c7b6f8f' - '01dd96f5da76f3e8e7fcf4af35c08881' - '1964ae60b6969a8a68f1266a21b52477' - '26536cd41a6e979e9af8d1391e530e7a' - '6b29e546704958ac0e7d7c79e4614277' - 'bbb01ba862ecd329ccc2e416b3e15d9d') + '2a6ebf7460b60488728dc976409bbc1f' + '960ff56654d6020e1ac126d0135671d0' + '7964a8f4946739059c9e916f128ef278' + '7681a82af85139c89af9575d0ea78709' + 'aa1b10d38971efef4efcecef20ddd196' + 'ad2e2c618928ca79bce11439ce35dccf' + 'c33e7c41a9af9deb5ab5db3c760c05c4' + 'ce3a8b7804cd3b1acb57989f18ff4478') pkgver() { cd "$srcdir"/${_realname} @@ -48,6 +50,7 @@ prepare() { git am "${srcdir}"/0006-Don-t-remove-files-that-live-outside-of-path.patch git am "${srcdir}"/0007-Don-t-prevent-qmake-linking-qmltooling-plugin.patch git am "${srcdir}"/0008-Use-QTPLUGIN-qminimal-on-Windows-too.patch + git am "${srcdir}"/0009-Add-explicit-platform-commandline-option.patch } build() { From a13e1f04a659ffe55bc3f899b8f6d505049d62ed Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Jun 2015 15:43:26 +0300 Subject: [PATCH 1210/2060] openscad-git: Update to git SHA [68e41af] --- mingw-w64-openscad-git/PKGBUILD | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/mingw-w64-openscad-git/PKGBUILD b/mingw-w64-openscad-git/PKGBUILD index 0c8f29ff6d..1d72ce3209 100644 --- a/mingw-w64-openscad-git/PKGBUILD +++ b/mingw-w64-openscad-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=openscad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r4930.0bf2d4e +pkgver=r5638.68e41af pkgrel=1 pkgdesc="The programmers solid 3D CAD modeller (mingw-w64)" arch=('any') @@ -18,13 +18,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt5" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-eigen3" + "${MINGW_PACKAGE_PREFIX}-imagemagick" "git") options=(!strip staticlibs !buildflags) -source=("${_realname}"::"git+https://github.com/openscad/openscad.git" - #01-glew-library.patch - mingw-detect-libs.patch) -md5sums=('SKIP' - 'c4f4af8df6cfbc0b444cbf232f26a958') +source=("${_realname}"::"git+https://github.com/openscad/openscad.git") +md5sums=('SKIP') pkgver() { cd "$srcdir/$_realname" @@ -34,24 +32,12 @@ pkgver() { prepare() { cd "${srcdir}/${_realname}" rm -f libraries/MCAD/*.py - - #patch -p1 -i ${srcdir}/01-glew-library.patch - #patch -p1 -i ${srcdir}/mingw-detect-libs.patch } build() { cd ${srcdir}/${_realname} - #BOOSTDIR=${MINGW_PREFIX} \ - #CGALDIR=${MINGW_PREFIX} \ - #EIGENDIR=${MINGW_PREFIX} \ - #GLEWDIR=${MINGW_PREFIX} \ - #OPENCSGDIR=${MINGW_PREFIX} \ - #OPENSCAD_LIBRARIES=${MINGW_PREFIX} \ - ${MINGW_PREFIX}/bin/qmake \ CONFIG+=release \ - QMAKE_CXXFLAGS+="-O1 -Wa,-mbig-obj" \ - QMAKE_CFLAGS+="-O1 -Wa,-mbig-obj" \ PREFIX="${pkgdir}${MINGW_PREFIX}" make -j1 @@ -59,6 +45,6 @@ build() { package() { cd ${srcdir}/${_realname} - make install + make INSTALL_ROOT= install install -Dm644 "icons/${_realname}.xml" "${pkgdir}${MINGW_PREFIX}/share/mime/packages/${_realname}.xml" } From 34ea54e4f174cc055aaee137a1c7f86495b4ebb0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 26 Jun 2015 10:19:57 +0100 Subject: [PATCH 1211/2060] cgal: Relocate CMake configure This fix needs to be applied to all of our CMake library projects. --- mingw-w64-cgal/PKGBUILD | 29 ++++++++++++------- .../msys2-relocate-cmake-config.patch | 28 ++++++++++++++++++ 2 files changed, 46 insertions(+), 11 deletions(-) create mode 100644 mingw-w64-cgal/msys2-relocate-cmake-config.patch diff --git a/mingw-w64-cgal/PKGBUILD b/mingw-w64-cgal/PKGBUILD index 60271e42d5..402cb3509a 100644 --- a/mingw-w64-cgal/PKGBUILD +++ b/mingw-w64-cgal/PKGBUILD @@ -3,7 +3,7 @@ _realname=cgal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.5.1 -pkgrel=2 +pkgrel=3 _pkgid=34139 pkgdesc="Computational Geometry Algorithms Library (mingw-w64)" arch=('any') @@ -24,31 +24,38 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-eigen3: for some packages, see the CGAL man options=('strip' 'staticlibs') source=(http://gforge.inria.fr/frs/download.php/$_pkgid/CGAL-$pkgver.tar.xz cgal-4.4-mingw.patch - convex_hull_fix.patch) + convex_hull_fix.patch + msys2-relocate-cmake-config.patch) sha1sums=('97c60d3b12727b4fbbcce45a0965941bb1d60cbe' '1d2b06fe6faa0cb1ee748fa14f2de92f9e9e091f' - 'a4256b91ecf6230d17751444bb304e87f9d68c88') + 'a847bc5aab43944429e7da62b5392347bac2fcd8' + '3742f2bb189f6c53e66e6ba5562c28685f9d1a86') prepare() { cd "${srcdir}"/CGAL-${pkgver%.*} - patch -p1 -i ${srcdir}/cgal-4.4-mingw.patch - patch -p1 -i ${srcdir}/convex_hull_fix.patch + patch -p1 -i "${srcdir}"/cgal-4.4-mingw.patch + patch -p1 -i "${srcdir}"/convex_hull_fix.patch + patch -p1 -i "${srcdir}"/msys2-relocate-cmake-config.patch } build() { mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} - ${MINGW_PREFIX}/bin/cmake \ - -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE=Release \ - ../CGAL-${pkgver%.*} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + ../CGAL-${pkgver%.*} make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install + make install DESTDIR=${pkgdir} + MINGW_PREFIX_WIN=$(cygpath -m ${MINGW_PREFIX}) + sed -s "s|${MINGW_PREFIX_WIN}|\${RELOCATED_INSTALL_PREFIX}|g" -i "${pkgdir}"${MINGW_PREFIX}/lib/CGAL/CGALConfig.cmake + sed -s "s|${MINGW_PREFIX}|\${RELOCATED_INSTALL_PREFIX}|g" -i "${pkgdir}"${MINGW_PREFIX}/lib/CGAL/CGALConfig.cmake } diff --git a/mingw-w64-cgal/msys2-relocate-cmake-config.patch b/mingw-w64-cgal/msys2-relocate-cmake-config.patch new file mode 100644 index 0000000000..1e4906d932 --- /dev/null +++ b/mingw-w64-cgal/msys2-relocate-cmake-config.patch @@ -0,0 +1,28 @@ +diff -urN CGAL-4.5.orig/cmake/modules/CGALConfig_binary.cmake.in CGAL-4.5/cmake/modules/CGALConfig_binary.cmake.in +--- CGAL-4.5.orig/cmake/modules/CGALConfig_binary.cmake.in 2015-06-26 09:41:08.742156800 +0100 ++++ CGAL-4.5/cmake/modules/CGALConfig_binary.cmake.in 2015-06-26 09:48:21.337089400 +0100 +@@ -8,6 +8,10 @@ + + set(CGAL_CONFIG_LOADED TRUE) + ++# MSYS2's PKGBUILD package() function replaces absolute build machine paths ++# with references to this variable in order to relocate the installation. ++get_filename_component(RELOCATED_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../.." REALPATH) ++ + set(CGAL_INSTALLATION_PACKAGE_DIR "@CGAL_INSTALLATION_PACKAGE_DIR@") + set(CGAL_CORE_PACKAGE_DIR "@CGAL_CORE_PACKAGE_DIR@") + +diff -urN CGAL-4.5.orig/cmake/modules/CGALConfig_install.cmake.in CGAL-4.5/cmake/modules/CGALConfig_install.cmake.in +--- CGAL-4.5.orig/cmake/modules/CGALConfig_install.cmake.in 2015-06-26 09:41:08.743156900 +0100 ++++ CGAL-4.5/cmake/modules/CGALConfig_install.cmake.in 2015-06-26 09:47:53.180013900 +0100 +@@ -8,6 +8,10 @@ + + set(CGAL_CONFIG_LOADED TRUE) + ++# MSYS2's PKGBUILD package() function replaces absolute build machine paths ++# with references to this variable in order to relocate the installation. ++get_filename_component(RELOCATED_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../.." REALPATH) ++ + # CGAL_DIR is the directory where this CGALConfig.cmake is installed + set(CGAL_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@") + From 55d427ff13173fd9ad7d2b9ee57a6ae768a8495d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 25 Jun 2015 23:14:03 +0300 Subject: [PATCH 1212/2060] fftw: Rebuild. Simplify build process. --- mingw-w64-fftw/PKGBUILD | 106 ++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 63 deletions(-) diff --git a/mingw-w64-fftw/PKGBUILD b/mingw-w64-fftw/PKGBUILD index c2e7e653f6..01b47736fe 100644 --- a/mingw-w64-fftw/PKGBUILD +++ b/mingw-w64-fftw/PKGBUILD @@ -3,7 +3,7 @@ _realname=fftw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.3.4 -pkgrel=3 +pkgrel=4 pkgdesc="A library for computing the discrete Fourier transform (DFT) (mingw-w64)" arch=('any') url="http://www.fftw.org" @@ -11,72 +11,52 @@ license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') -source=("$url/fftw-$pkgver.tar.gz") +source=("${url}/${_realname}-${pkgver}.tar.gz") md5sums=('2edab8c06b24feeb3b82bbb3ebf3e7b3') +precision="double float long_double quad" + build() { - cd "${srcdir}/fftw-${pkgver}" - mkdir -p build-${MINGW_CHOST}-d && pushd build-${MINGW_CHOST}-d - ../configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --enable-sse2 \ - --enable-avx \ - --enable-static \ - --enable-shared \ - --enable-threads \ - --with-combined-threads \ - --with-our-malloc \ - --with-g77-wrappers \ - --with-windows-f77-mangling - make - popd - - mkdir -p build-${MINGW_CHOST}-ld && pushd build-${MINGW_CHOST}-ld - ../configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --enable-long-double \ - --enable-static \ - --enable-shared \ - --enable-threads \ - --with-combined-threads \ - --with-our-malloc \ - --with-g77-wrappers \ - --with-windows-f77-mangling - make - popd - - mkdir -p build-${MINGW_CHOST}-f && pushd build-${MINGW_CHOST}-f - ../configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --enable-float \ - --enable-sse2 \ - --enable-avx \ - --enable-static \ - --enable-shared \ - --enable-threads \ - --with-combined-threads \ - --with-our-malloc \ - --with-g77-wrappers \ - --with-windows-f77-mangling - make - popd + cd "${srcdir}/${_realname}-${pkgver}" + for cur in ${precision}; do + local _config="--enable-sse2 --enable-avx" + if [ "${cur}" = "float" ]; then + _config="${_config} --enable-float" + elif [ "${cur}" = "long_double" ]; then + _config="--enable-long-double" + elif [ "${cur}" = "quad" ]; then + _config="--enable-quad-precision" + fi + [[ -d ${MINGW_CHOST}-${cur} ]] && rm -rf ${MINGW_CHOST}-${cur} + mkdir -p ${MINGW_CHOST}-${cur} + pushd ${MINGW_CHOST}-${cur} > /dev/null + msg "Building ${_realname} with ${cur} ..." + + ../configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + ${_config} \ + --enable-static \ + --enable-shared \ + --enable-threads \ + --with-combined-threads \ + --with-our-malloc \ + --with-g77-wrappers \ + --with-windows-f77-mangling + make + + popd > /dev/null + + done } package() { - cd "${srcdir}/fftw-${pkgver}/build-${MINGW_CHOST}-d" - make DESTDIR="$pkgdir" install - cd "${srcdir}/fftw-${pkgver}/build-${MINGW_CHOST}-ld" - make DESTDIR="$pkgdir" install - cd "${srcdir}/fftw-${pkgver}/build-${MINGW_CHOST}-f" - make DESTDIR="$pkgdir" install - - #rm "${pkgdir}"${MINGW_PREFIX}/bin/*.exe - #rm "${pkgdir}${MINGW_PREFIX}/bin/fftw-wisdom-to-conf" - #rm -r "${pkgdir}${MINGW_PREFIX}/share" + cd "${srcdir}/${_realname}-${pkgver}" + for cur in ${precision}; do + pushd ${MINGW_CHOST}-${cur} > /dev/null + msg "Instaling ${_realname} with ${cur} ..." + make DESTDIR="${pkgdir}" install + popd > /dev/null + done } From 6add750c0117de8efa5d69bbeab628f2814acfdd Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 26 Jun 2015 10:56:59 +0300 Subject: [PATCH 1213/2060] python2: Fix hashfunc prototype for 64-bit. --- mingw-w64-python2/1050-fix-hashfunc-prototype.patch | 11 +++++++++++ mingw-w64-python2/PKGBUILD | 6 ++++-- 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-python2/1050-fix-hashfunc-prototype.patch diff --git a/mingw-w64-python2/1050-fix-hashfunc-prototype.patch b/mingw-w64-python2/1050-fix-hashfunc-prototype.patch new file mode 100644 index 0000000000..7dbb449ccb --- /dev/null +++ b/mingw-w64-python2/1050-fix-hashfunc-prototype.patch @@ -0,0 +1,11 @@ +--- Python-2.7.10/Include/object.h.orig 2015-06-26 10:28:53.932400000 +0300 ++++ Python-2.7.10/Include/object.h 2015-06-26 10:29:01.950800000 +0300 +@@ -311,7 +311,7 @@ + typedef int (*setattrofunc)(PyObject *, PyObject *, PyObject *); + typedef int (*cmpfunc)(PyObject *, PyObject *); + typedef PyObject *(*reprfunc)(PyObject *); +-typedef long (*hashfunc)(PyObject *); ++typedef Py_ssize_t (*hashfunc)(PyObject *); + typedef PyObject *(*richcmpfunc) (PyObject *, PyObject *, int); + typedef PyObject *(*getiterfunc) (PyObject *); + typedef PyObject *(*iternextfunc) (PyObject *); diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index 844aa1a85e..757a9cf832 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -5,7 +5,7 @@ _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7.10 -pkgrel=1 +pkgrel=2 _pybasever=${pkgver%.*} pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') @@ -103,9 +103,9 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 1020-gdbm-module-includes.patch 1030-use-gnu_printf-in-format.patch 1040-install-msilib.patch + 1050-fix-hashfunc-prototype.patch 2000-distutils-add-windmc-to-cygwinccompiler.patch) - prepare() { cd "${srcdir}/Python-${pkgver}" @@ -200,6 +200,7 @@ prepare() { patch -p1 -i "${srcdir}"/1020-gdbm-module-includes.patch patch -p1 -i "${srcdir}"/1030-use-gnu_printf-in-format.patch patch -p1 -i "${srcdir}"/1040-install-msilib.patch + patch -p1 -i "${srcdir}"/1050-fix-hashfunc-prototype.patch plain "Apply Renato Silva's patch to distutils" patch -p1 -i "${srcdir}"/2000-distutils-add-windmc-to-cygwinccompiler.patch @@ -423,4 +424,5 @@ sha1sums=('ee5a50c5562e7448f037d35fdedc18d95c748b9e' '06ebbcf50d6d30780f47a0d3425f956b2eb8e847' '9042c4902ff03ecc12e0b41059aaebd6ad409009' 'dc6aa85fa4dc68a6809c1321e4a28a360a242f39' + '7afbbdc5f04fe8969818d5ab47caab2a01c6b892' '5c5d9fb5d1fc576251a68c781437d27ea8d7e208') From 09a960cec9fd97661d7a11341e7bd91c32a0fd07 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 26 Jun 2015 13:28:10 +0100 Subject: [PATCH 1214/2060] qt5-static: Avoid minimal platform segfaults on Win32 .. when platformNativeInterface() is a nullptr various QWidgets things would call virtual functions through that nullptr without checking it first. This affected calling the qt installer framework in commandline mode with '--platform minimal' --- ...face-segfaults-with-minimal-platform.patch | 42 +++++++++++++++++++ mingw-w64-qt5-static/PKGBUILD | 9 ++-- 2 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch diff --git a/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch b/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch new file mode 100644 index 0000000000..e589e35c16 --- /dev/null +++ b/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch @@ -0,0 +1,42 @@ +--- x86_64/qtbase/src/widgets/dialogs/qwizard_win.cpp.orig 2015-02-17 04:56:39.000000000 +0000 ++++ x86_64/qtbase/src/widgets/dialogs/qwizard_win.cpp 2015-06-26 12:50:04.817655600 +0100 +@@ -288,7 +288,8 @@ + // The dynamic property takes effect when creating the platform window. + window->setProperty("_q_windowsCustomMargins", customMarginsV); + // If a platform window exists, change via native interface. +- if (QPlatformWindow *platformWindow = window->handle()) { ++ if (QPlatformWindow *platformWindow = window->handle() ++ && QGuiApplication::platformNativeInterface()) { + QGuiApplication::platformNativeInterface()-> + setWindowProperty(platformWindow, QStringLiteral("WindowsCustomMargins"), + customMarginsV); +@@ -666,6 +667,8 @@ + // wizard is a child window. + HDC QVistaHelper::backingStoreDC(const QWidget *wizard, QPoint *offset) + { ++ if (!QGuiApplication::platformNativeInterface()) ++ return static_cast0; + HDC hdc = static_cast(QGuiApplication::platformNativeInterface()->nativeResourceForBackingStore(QByteArrayLiteral("getDC"), wizard->backingStore())); + *offset = QPoint(0, 0); + if (!wizard->windowHandle()) +@@ -680,7 +683,7 @@ + // Do not use winId() as this enforces native children of the parent + // widget when called before show() as happens when calling setWizardStyle(). + if (QWindow *window = wizard->windowHandle()) +- if (window->handle()) ++ if (window->handle() && QGuiApplication::platformNativeInterface()) + if (void *vHwnd = QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("handle"), window)) + return static_cast(vHwnd); + qWarning().nospace() << "Failed to obtain HWND for wizard."; +--- x86_64/qtbase/src/widgets/dialogs/qmessagebox.cpp.orig 2015-02-17 04:56:39.000000000 +0000 ++++ x86_64/qtbase/src/widgets/dialogs/qmessagebox.cpp 2015-06-26 12:52:31.468777900 +0100 +@@ -68,7 +68,8 @@ + #if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) + HMENU qt_getWindowsSystemMenu(const QWidget *w) + { +- if (QWindow *window = QApplicationPrivate::windowForWidget(w)) ++ if (QWindow *window = QApplicationPrivate::windowForWidget(w) ++ && QGuiApplication::platformNativeInterface()) + if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) + return GetSystemMenu(reinterpret_cast(handle), false); + return 0; diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 496b44a88e..c2b469f16f 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.2 pkgver=${_ver_base//-/} -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -179,7 +179,8 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch - 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch) + 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch + 0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch) md5sums=('c23bd0f14d66e7901d24906a1edce9b0' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' @@ -223,7 +224,8 @@ md5sums=('c23bd0f14d66e7901d24906a1edce9b0' 'ab2cac300aa7a908ea8840649f0b51fc' '7d8093f2b8b0347304159c0e5836f3aa' '51016015352313cdd749ae1ff3e14614' - '9bc9c1177134d0f2fd782db3f394a318') + '9bc9c1177134d0f2fd782db3f394a318' + 'e2cf92e478b71f097fd50db899d6566f') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -339,6 +341,7 @@ prepare() { patch -p1 -i ${srcdir}/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch patch -p1 -i ${srcdir}/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch patch -p1 -i ${srcdir}/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch + patch -p1 -i ${srcdir}/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch pushd qtbase > /dev/null patch -p1 -i ${srcdir}/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch From 15b9bb07d5f661b1cbb7e4168a6d9b0c0417caaf Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 26 Jun 2015 13:45:44 +0100 Subject: [PATCH 1215/2060] qt5-static: Fix previous patch --- ...face-segfaults-with-minimal-platform.patch | 43 ++++++++++++------- mingw-w64-qt5-static/PKGBUILD | 2 +- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch b/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch index e589e35c16..808990edae 100644 --- a/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch +++ b/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch @@ -1,21 +1,27 @@ ---- x86_64/qtbase/src/widgets/dialogs/qwizard_win.cpp.orig 2015-02-17 04:56:39.000000000 +0000 -+++ x86_64/qtbase/src/widgets/dialogs/qwizard_win.cpp 2015-06-26 12:50:04.817655600 +0100 -@@ -288,7 +288,8 @@ +--- x86_64/qtbase/src/widgets/dialogs/qwizard_win.cpp.orig 2015-06-26 13:39:31.574885900 +0100 ++++ x86_64/qtbase/src/widgets/dialogs/qwizard_win.cpp 2015-06-26 13:43:07.366287900 +0100 +@@ -288,10 +288,11 @@ // The dynamic property takes effect when creating the platform window. window->setProperty("_q_windowsCustomMargins", customMarginsV); // If a platform window exists, change via native interface. - if (QPlatformWindow *platformWindow = window->handle()) { -+ if (QPlatformWindow *platformWindow = window->handle() -+ && QGuiApplication::platformNativeInterface()) { - QGuiApplication::platformNativeInterface()-> - setWindowProperty(platformWindow, QStringLiteral("WindowsCustomMargins"), - customMarginsV); +- QGuiApplication::platformNativeInterface()-> +- setWindowProperty(platformWindow, QStringLiteral("WindowsCustomMargins"), +- customMarginsV); ++ if (QGuiApplication::platformNativeInterface()) { ++ if (QPlatformWindow *platformWindow = window->handle()) ++ QGuiApplication::platformNativeInterface()-> ++ setWindowProperty(platformWindow, QStringLiteral("WindowsCustomMargins"), ++ customMarginsV); + } + } + } @@ -666,6 +667,8 @@ // wizard is a child window. HDC QVistaHelper::backingStoreDC(const QWidget *wizard, QPoint *offset) { + if (!QGuiApplication::platformNativeInterface()) -+ return static_cast0; ++ return static_cast(0); HDC hdc = static_cast(QGuiApplication::platformNativeInterface()->nativeResourceForBackingStore(QByteArrayLiteral("getDC"), wizard->backingStore())); *offset = QPoint(0, 0); if (!wizard->windowHandle()) @@ -28,15 +34,20 @@ if (void *vHwnd = QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("handle"), window)) return static_cast(vHwnd); qWarning().nospace() << "Failed to obtain HWND for wizard."; ---- x86_64/qtbase/src/widgets/dialogs/qmessagebox.cpp.orig 2015-02-17 04:56:39.000000000 +0000 -+++ x86_64/qtbase/src/widgets/dialogs/qmessagebox.cpp 2015-06-26 12:52:31.468777900 +0100 -@@ -68,7 +68,8 @@ +--- x86_64/qtbase/src/widgets/dialogs/qmessagebox.cpp.orig 2015-06-26 13:39:36.597523700 +0100 ++++ x86_64/qtbase/src/widgets/dialogs/qmessagebox.cpp 2015-06-26 13:44:12.018997800 +0100 +@@ -68,9 +68,11 @@ #if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) HMENU qt_getWindowsSystemMenu(const QWidget *w) { - if (QWindow *window = QApplicationPrivate::windowForWidget(w)) -+ if (QWindow *window = QApplicationPrivate::windowForWidget(w) -+ && QGuiApplication::platformNativeInterface()) - if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) - return GetSystemMenu(reinterpret_cast(handle), false); +- if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) +- return GetSystemMenu(reinterpret_cast(handle), false); ++ if (QGuiApplication::platformNativeInterface()) { ++ if (QWindow *window = QApplicationPrivate::windowForWidget(w)) ++ if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) ++ return GetSystemMenu(reinterpret_cast(handle), false); ++ } return 0; + } + #endif diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index c2b469f16f..36d7d35a2f 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -225,7 +225,7 @@ md5sums=('c23bd0f14d66e7901d24906a1edce9b0' '7d8093f2b8b0347304159c0e5836f3aa' '51016015352313cdd749ae1ff3e14614' '9bc9c1177134d0f2fd782db3f394a318' - 'e2cf92e478b71f097fd50db899d6566f') + 'c0a24d18a9753cf49008987b975d6ca8') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) From 87691a9d0e9bc067499eec64e97a16ec4dfb538d Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Fri, 26 Jun 2015 23:50:32 +1000 Subject: [PATCH 1216/2060] mpv: Fix winpty wrapper for mpv 0.9.x --- mingw-w64-mpv/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-mpv/PKGBUILD b/mingw-w64-mpv/PKGBUILD index 44b4949af3..155c38bc6e 100644 --- a/mingw-w64-mpv/PKGBUILD +++ b/mingw-w64-mpv/PKGBUILD @@ -4,7 +4,7 @@ _realname=mpv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.2 -pkgrel=1 +pkgrel=2 pkgdesc="Video player based on MPlayer/mplayer2 (mingw-w64)" url="http://mpv.io" arch=('any') @@ -96,6 +96,7 @@ package() { mv "${pkgdir}${MINGW_PREFIX}/bin/mpv.exe" "${pkgdir}${MINGW_PREFIX}/bin/mpv_exe" _exename=mpv echo '#!/usr/bin/env bash' > "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" + echo 'export _started_from_console=yes' >> "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" echo '/usr/bin/winpty "$( dirname ${BASH_SOURCE[0]} )/'${_exename}'.exe" "$@"' >> "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" mv "${pkgdir}${MINGW_PREFIX}/bin/mpv_exe" "${pkgdir}${MINGW_PREFIX}/bin/mpv.exe" } From bf7431016691e0ff06e49faf46dfca2317a6d4b7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 26 Jun 2015 17:40:09 +0100 Subject: [PATCH 1217/2060] qt5-static: Prevent another case of deref platformNativeInterface() nullptr --- ...face-segfaults-with-minimal-platform.patch | 19 +++++++++++++++++++ mingw-w64-qt5-static/PKGBUILD | 4 ++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch b/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch index 808990edae..0e113e5e97 100644 --- a/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch +++ b/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch @@ -51,3 +51,22 @@ return 0; } #endif +--- x86_64/qtbase/src/widgets/kernel/qapplication_p.h.orig 2015-05-29 21:30:31.000000000 +0100 ++++ x86_64/qtbase/src/widgets/kernel/qapplication_p.h 2015-06-26 17:35:52.232016600 +0100 +@@ -254,10 +254,12 @@ + #ifdef Q_OS_WIN + static HWND getHWNDForWidget(const QWidget *widget) + { +- if (QWindow *window = windowForWidget(widget)) +- if (window->handle()) +- return static_cast (QGuiApplication::platformNativeInterface()-> +- nativeResourceForWindow(QByteArrayLiteral("handle"), window)); ++ if (QGuiApplication::platformNativeInterface()) { ++ if (QWindow *window = windowForWidget(widget)) ++ if (window->handle()) ++ return static_cast (QGuiApplication::platformNativeInterface()-> ++ nativeResourceForWindow(QByteArrayLiteral("handle"), window)); ++ } + return 0; + } + #endif diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 36d7d35a2f..41f9c32d4a 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -77,7 +77,7 @@ _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.4.2 pkgver=${_ver_base//-/} -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -225,7 +225,7 @@ md5sums=('c23bd0f14d66e7901d24906a1edce9b0' '7d8093f2b8b0347304159c0e5836f3aa' '51016015352313cdd749ae1ff3e14614' '9bc9c1177134d0f2fd782db3f394a318' - 'c0a24d18a9753cf49008987b975d6ca8') + 'c9931b34f176490a48439de35556e535') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) From 734eb0b73ec0a39d39c849f3b7116f78e5664121 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Thu, 25 Jun 2015 13:09:13 +0100 Subject: [PATCH 1218/2060] libuv: Update to 1.6.1 and new description --- mingw-w64-libuv/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libuv/PKGBUILD b/mingw-w64-libuv/PKGBUILD index 604387b44d..ef51257dcc 100644 --- a/mingw-w64-libuv/PKGBUILD +++ b/mingw-w64-libuv/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov +# Contributor: Martell Malone _realname=libuv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.2.1 +pkgver=1.6.1 pkgrel=1 -pkgdesc="A new platform layer for Node.JS (mingw-w64)" +pkgdesc="Cross-platform asychronous I/O (mingw-w64)" arch=('any') url="https://github.com/libuv/libuv" license=("custom") @@ -12,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("https://github.com/libuv/libuv/archive/v$pkgver.tar.gz") -sha256sums=('4c4fb49172d6dc59168a934bc128eb4a001e4a2091c2fe9a20d81c720f2caa30') +sha256sums=('f558ede285878d6a69f6a6d43b5df0241f3c35d62ac989477bdbd418badd83d7') prepare() { cd "$srcdir/${_realname}-$pkgver" From 6adc5d40deaa292784ca99438cfe6939bdbf7a07 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Fri, 26 Jun 2015 18:27:18 +0100 Subject: [PATCH 1219/2060] wslay: new package --- mingw-w64-wslay/PKGBUILD | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 mingw-w64-wslay/PKGBUILD diff --git a/mingw-w64-wslay/PKGBUILD b/mingw-w64-wslay/PKGBUILD new file mode 100644 index 0000000000..5a7d577239 --- /dev/null +++ b/mingw-w64-wslay/PKGBUILD @@ -0,0 +1,35 @@ +# Maintainer: Martell Malone + +_realname=wslay +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.0.0 +pkgrel=1 +pkgdesc="The WebSocket library in C (mingw-w64)" +arch=('any') +url="https://github.com/tatsuhiro-t/wslay" +license=("custom") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +options=('staticlibs' 'strip') +source=("https://github.com/tatsuhiro-t/wslay/archive/release-$pkgver.tar.gz") +sha256sums=('874c4a6aa15b596846ff3a3ef848b8a6e6f4ca579a1657df9b318a06ac6c79a6') + +prepare() { + cd "$srcdir/${_realname}-release-$pkgver" + autoreconf -fi +} + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "${srcdir}"/${_realname}-release-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} + make -C lib +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" -C lib install +} From 6cabd979d33dd434d2e95247fee7f747477c6d00 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Fri, 26 Jun 2015 20:16:53 +0100 Subject: [PATCH 1220/2060] h2o: new package (wip) --- ...pdate-yaml-to-0.1.6-for-security-fix.patch | 116 +++ .../0002-basic-windows-support.patch | 867 ++++++++++++++++++ ...-add-readdir_r-emulation-for-windows.patch | 37 + .../0004-serverutil-hackery-for-windows.patch | 174 ++++ .../0005-mman-hackery-for-windows.patch | 206 +++++ .../0006-import-time-code-from-mattn.patch | 56 ++ .../0007-cloexec-hackery-for-windows.patch | 63 ++ ...nore-O_CLOEXEC-in-file.c-for-windows.patch | 27 + mingw-w64-h2o/PKGBUILD | 63 ++ 9 files changed, 1609 insertions(+) create mode 100644 mingw-w64-h2o/0001-update-yaml-to-0.1.6-for-security-fix.patch create mode 100644 mingw-w64-h2o/0002-basic-windows-support.patch create mode 100644 mingw-w64-h2o/0003-add-readdir_r-emulation-for-windows.patch create mode 100644 mingw-w64-h2o/0004-serverutil-hackery-for-windows.patch create mode 100644 mingw-w64-h2o/0005-mman-hackery-for-windows.patch create mode 100644 mingw-w64-h2o/0006-import-time-code-from-mattn.patch create mode 100644 mingw-w64-h2o/0007-cloexec-hackery-for-windows.patch create mode 100644 mingw-w64-h2o/0008-ignore-O_CLOEXEC-in-file.c-for-windows.patch create mode 100644 mingw-w64-h2o/PKGBUILD diff --git a/mingw-w64-h2o/0001-update-yaml-to-0.1.6-for-security-fix.patch b/mingw-w64-h2o/0001-update-yaml-to-0.1.6-for-security-fix.patch new file mode 100644 index 0000000000..59feb22b8b --- /dev/null +++ b/mingw-w64-h2o/0001-update-yaml-to-0.1.6-for-security-fix.patch @@ -0,0 +1,116 @@ +From 30967875041a0d5797eeed6adaadf3e87885e860 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Fri, 26 Jun 2015 00:16:28 +0100 +Subject: [PATCH 1/8] update yaml to 0.1.6 for security fix + +--- + deps/yaml/configure.ac | 4 ++-- + deps/yaml/include/yaml.h | 12 +----------- + deps/yaml/src/scanner.c | 3 +++ + deps/yaml/src/yaml_private.h | 11 +++++++---- + deps/yaml/win32/config.h | 4 ++-- + 5 files changed, 15 insertions(+), 19 deletions(-) + +diff --git a/deps/yaml/configure.ac b/deps/yaml/configure.ac +index e7db798..dd1aca0 100644 +--- a/deps/yaml/configure.ac ++++ b/deps/yaml/configure.ac +@@ -3,7 +3,7 @@ + # Define the package version numbers and the bug reporting link. + m4_define([YAML_MAJOR], 0) + m4_define([YAML_MINOR], 1) +-m4_define([YAML_PATCH], 5) ++m4_define([YAML_PATCH], 6) + m4_define([YAML_BUGS], [http://pyyaml.org/newticket?component=libyaml]) + + # Define the libtool version numbers; check the Autobook, Section 11.4. +@@ -19,7 +19,7 @@ m4_define([YAML_BUGS], [http://pyyaml.org/newticket?component=libyaml]) + # YAML_AGE = 0 + m4_define([YAML_RELEASE], 0) + m4_define([YAML_CURRENT], 2) +-m4_define([YAML_REVISION], 3) ++m4_define([YAML_REVISION], 4) + m4_define([YAML_AGE], 0) + + # Initialize autoconf & automake. +diff --git a/deps/yaml/include/yaml.h b/deps/yaml/include/yaml.h +index 5a04d36..acd6e87 100644 +--- a/deps/yaml/include/yaml.h ++++ b/deps/yaml/include/yaml.h +@@ -26,17 +26,7 @@ extern "C" { + + /** The public API declaration. */ + +-#ifdef _WIN32 +-# if defined(YAML_DECLARE_STATIC) +-# define YAML_DECLARE(type) type +-# elif defined(YAML_DECLARE_EXPORT) +-# define YAML_DECLARE(type) __declspec(dllexport) type +-# else +-# define YAML_DECLARE(type) __declspec(dllimport) type +-# endif +-#else +-# define YAML_DECLARE(type) type +-#endif ++#define YAML_DECLARE(type) type + + /** @} */ + +diff --git a/deps/yaml/src/scanner.c b/deps/yaml/src/scanner.c +index 8817de2..88d4fa5 100644 +--- a/deps/yaml/src/scanner.c ++++ b/deps/yaml/src/scanner.c +@@ -2629,6 +2629,9 @@ yaml_parser_scan_tag_uri(yaml_parser_t *parser, int directive, + /* Check if it is a URI-escape sequence. */ + + if (CHECK(parser->buffer, '%')) { ++ if (!STRING_EXTEND(parser, string)) ++ goto error; ++ + if (!yaml_parser_scan_uri_escapes(parser, + directive, start_mark, &string)) goto error; + } +diff --git a/deps/yaml/src/yaml_private.h b/deps/yaml/src/yaml_private.h +index 73167d4..01ec73d 100644 +--- a/deps/yaml/src/yaml_private.h ++++ b/deps/yaml/src/yaml_private.h +@@ -1,8 +1,8 @@ + + #define YAML_VERSION_MAJOR 0 + #define YAML_VERSION_MINOR 1 +-#define YAML_VERSION_PATCH 5 +-#define YAML_VERSION_STRING "0.1.5" ++#define YAML_VERSION_PATCH 6 ++#define YAML_VERSION_STRING "0.1.6" + + #include + +@@ -144,9 +144,12 @@ yaml_string_join( + (string).start = (string).pointer = (string).end = 0) + + #define STRING_EXTEND(context,string) \ +- (((string).pointer+5 < (string).end) \ ++ ((((string).pointer+5 < (string).end) \ + || yaml_string_extend(&(string).start, \ +- &(string).pointer, &(string).end)) ++ &(string).pointer, &(string).end)) ? \ ++ 1 : \ ++ ((context)->error = YAML_MEMORY_ERROR, \ ++ 0)) + + #define CLEAR(context,string) \ + ((string).pointer = (string).start, \ +diff --git a/deps/yaml/win32/config.h b/deps/yaml/win32/config.h +index c551551..2459f49 100644 +--- a/deps/yaml/win32/config.h ++++ b/deps/yaml/win32/config.h +@@ -1,4 +1,4 @@ + #define YAML_VERSION_MAJOR 0 + #define YAML_VERSION_MINOR 1 +-#define YAML_VERSION_PATCH 5 +-#define YAML_VERSION_STRING "0.1.5" ++#define YAML_VERSION_PATCH 6 ++#define YAML_VERSION_STRING "0.1.6" +-- +2.4.4 + diff --git a/mingw-w64-h2o/0002-basic-windows-support.patch b/mingw-w64-h2o/0002-basic-windows-support.patch new file mode 100644 index 0000000000..b69807c8b8 --- /dev/null +++ b/mingw-w64-h2o/0002-basic-windows-support.patch @@ -0,0 +1,867 @@ +From a8fd6112b32cc1130df54b668fc05b7f65bc92ee Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 25 Jun 2015 23:43:29 +0100 +Subject: [PATCH 2/8] basic windows support + +--- + CMakeLists.txt | 4 ++ + examples/libh2o/http1client.c | 6 +++ + examples/libh2o/simple.c | 11 ++++- + include/h2o.h | 6 ++- + include/h2o/hostinfo.h | 17 ++++--- + include/h2o/socket.h | 6 ++- + include/h2o/socketpool.h | 2 + + lib/common/http1client.c | 20 ++++++--- + lib/common/multithread.c | 5 +++ + lib/common/socket.c | 15 +++++-- + lib/common/socket/evloop.c.h | 59 +++++++++++++++++++++++- + lib/common/socket/evloop/select.c.h | 2 + + lib/common/socketpool.c | 10 +++++ + lib/core/proxy.c | 4 +- + lib/handler/access_log.c | 12 ++++- + lib/handler/configurator/fastcgi.c | 20 +++++++-- + src/main.c | 90 ++++++++++++++++++++++++++++++++----- + 17 files changed, 252 insertions(+), 37 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 90b6338..c847a2d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -217,6 +217,10 @@ LIST(REMOVE_ITEM UNIT_TEST_SOURCE_FILES + + SET(EXTRA_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS}) + ++IF (WIN32) ++ SET(EXTRA_LIBRARIES ${EXTRA_LIBRARIES} ws2_32) ++ENDIF() ++ + ADD_LIBRARY(libh2o ${LIB_SOURCE_FILES}) + ADD_LIBRARY(libh2o-evloop ${LIB_SOURCE_FILES}) + SET_TARGET_PROPERTIES(libh2o PROPERTIES OUTPUT_NAME h2o) +diff --git a/examples/libh2o/http1client.c b/examples/libh2o/http1client.c +index 261241f..20a2f1e 100644 +--- a/examples/libh2o/http1client.c ++++ b/examples/libh2o/http1client.c +@@ -141,6 +141,12 @@ h2o_http1client_head_cb on_connect(h2o_http1client_t *client, const char *errstr + + int main(int argc, char **argv) + { ++ ++#ifdef _WIN32 ++ WSADATA wsaData; ++ WSAStartup(MAKEWORD(2, 0), &wsaData); ++#endif ++ + h2o_multithread_queue_t *queue; + h2o_multithread_receiver_t getaddr_receiver; + h2o_timeout_t io_timeout; +diff --git a/examples/libh2o/simple.c b/examples/libh2o/simple.c +index 48d6448..d74dc40 100644 +--- a/examples/libh2o/simple.c ++++ b/examples/libh2o/simple.c +@@ -21,11 +21,15 @@ + */ + #include + #include +-#include + #include + #include + #include ++#ifdef _WIN32 ++#include ++#else ++#include + #include ++#endif + #include + #include "h2o.h" + #include "h2o/http1.h" +@@ -215,7 +219,12 @@ int main(int argc, char **argv) + { + h2o_hostconf_t *hostconf; + ++#ifdef _WIN32 ++ WSADATA wsaData; ++ WSAStartup(MAKEWORD(2, 0), &wsaData); ++#else + signal(SIGPIPE, SIG_IGN); ++#endif + + h2o_config_init(&config); + hostconf = h2o_config_register_host(&config, h2o_iovec_init(H2O_STRLIT("default")), 65535); +diff --git a/include/h2o.h b/include/h2o.h +index 176aa84..0e3b766 100644 +--- a/include/h2o.h ++++ b/include/h2o.h +@@ -32,7 +32,11 @@ extern "C" { + #include + #include + #include +-#include ++#ifdef _WIN32 ++# include ++#else ++# include ++#endif + #include + #include + #include +diff --git a/include/h2o/hostinfo.h b/include/h2o/hostinfo.h +index 14ac30c..d12b4db 100644 +--- a/include/h2o/hostinfo.h ++++ b/include/h2o/hostinfo.h +@@ -22,13 +22,16 @@ + #ifndef h2o__hostinfo_h + #define h2o__hostinfo_h + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#ifdef _WIN32 ++# include ++#else ++# include ++# include ++# include ++# include ++# include ++# include ++#endif + #include "h2o/multithread.h" + + typedef struct st_h2o_hostinfo_getaddr_req_t h2o_hostinfo_getaddr_req_t; +diff --git a/include/h2o/socket.h b/include/h2o/socket.h +index 2d1e99c..42cd530 100644 +--- a/include/h2o/socket.h ++++ b/include/h2o/socket.h +@@ -27,7 +27,11 @@ extern "C" { + #endif + + #include +-#include ++#ifdef _WIN32 ++# include ++#else ++# include ++#endif + #include + #include "h2o/memory.h" + +diff --git a/include/h2o/socketpool.h b/include/h2o/socketpool.h +index 1220c96..d84091f 100644 +--- a/include/h2o/socketpool.h ++++ b/include/h2o/socketpool.h +@@ -26,8 +26,10 @@ + extern "C" { + #endif + ++#ifndef _WIN32 + #include + #include ++#endif + #include + #include "h2o/linklist.h" + #include "h2o/multithread.h" +diff --git a/lib/common/http1client.c b/lib/common/http1client.c +index fb5dcee..3a60a67 100644 +--- a/lib/common/http1client.c ++++ b/lib/common/http1client.c +@@ -19,11 +19,21 @@ + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ +-#include +-#include +-#include +-#include +-#include ++#ifdef _WIN32 ++# include ++# ifndef AI_ADDRCONFIG ++# define AI_ADDRCONFIG 0 ++# endif ++# ifndef AI_NUMERICSERV ++# define AI_NUMERICSERV 8 ++# endif ++#else ++# include ++# include ++# include ++# include ++# include ++#endif + #include "picohttpparser.h" + #include "h2o/string_.h" + #include "h2o/hostinfo.h" +diff --git a/lib/common/multithread.c b/lib/common/multithread.c +index c20ca55..0862829 100644 +--- a/lib/common/multithread.c ++++ b/lib/common/multithread.c +@@ -87,11 +87,16 @@ static void init_async(h2o_multithread_queue_t *queue, h2o_loop_t *loop) + { + int fds[2]; + ++#ifndef _WIN32 + if (cloexec_pipe(fds) != 0) { + perror("pipe"); + abort(); + } + fcntl(fds[1], F_SETFL, O_NONBLOCK); ++#else ++ u_long nonblock = 1; ++ ioctlsocket(fds[1], FIONBIO, &nonblock); ++#endif + queue->async.write = fds[1]; + queue->async.read = h2o_evloop_socket_create(loop, fds[0], NULL, 0, 0); + queue->async.read->data = queue; +diff --git a/lib/common/socket.c b/lib/common/socket.c +index 9a427c0..b0618fe 100644 +--- a/lib/common/socket.c ++++ b/lib/common/socket.c +@@ -22,9 +22,14 @@ + #include + #include + #include +-#include + #include +-#include ++#ifdef _WIN32 ++# include ++# define IOV_MAX 65536 ++#else ++# include ++# include ++#endif + #include + #include + #include "h2o/socket.h" +@@ -404,12 +409,16 @@ int h2o_socket_compare_address(struct sockaddr *x, struct sockaddr *y) + + CMP(x->sa_family, y->sa_family); + ++#ifndef _WIN32 + if (x->sa_family == AF_UNIX) { + struct sockaddr_un *xun = (void *)x, *yun = (void *)y; + int r = strcmp(xun->sun_path, yun->sun_path); + if (r != 0) + return r; +- } else if (x->sa_family == AF_INET) { ++ } else ++#endif ++ ++ if (x->sa_family == AF_INET) { + struct sockaddr_in *xin = (void *)x, *yin = (void *)y; + CMP(ntohl(xin->sin_addr.s_addr), ntohl(yin->sin_addr.s_addr)); + CMP(ntohs(xin->sin_port), ntohs(yin->sin_port)); +diff --git a/lib/common/socket/evloop.c.h b/lib/common/socket/evloop.c.h +index bfb6f62..fb859e1 100644 +--- a/lib/common/socket/evloop.c.h ++++ b/lib/common/socket/evloop.c.h +@@ -19,11 +19,37 @@ + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ ++ ++#include ++#ifdef _WIN32 ++ ++struct iovec { ++ char *buf; ++ unsigned long len; ++}; ++ ++static ssize_t ++writev(SOCKET fd, const struct iovec *iov, int iovcnt) { ++ DWORD sent = 0; ++ h2o_iovec_t* psend = (h2o_iovec_t*) iov; ++ LPWSABUF pbuf = alloca(sizeof(WSABUF) * iovcnt); ++ int i; ++ for (i = 0; i < iovcnt; ++i) { ++ pbuf[i].len = psend[i].len; ++ pbuf[i].buf = psend[i].base; ++ sent += pbuf[i].len; ++ } ++ if (WSASend(fd, pbuf, iovcnt, NULL, 0, NULL, NULL) == 0) ++ return (ssize_t) sent; ++ return -1; ++} ++ ++#else + #include + #include +-#include + #include + #include ++#endif + #include + #include "cloexec.h" + #include "h2o/linklist.h" +@@ -358,7 +384,12 @@ struct st_h2o_evloop_socket_t *create_socket(h2o_evloop_t *loop, int fd, struct + { + struct st_h2o_evloop_socket_t *sock; + ++#ifdef _WIN32 ++ u_long nonblock = 1; ++ ioctlsocket(fd, FIONBIO, &nonblock); ++#else + fcntl(fd, F_SETFL, O_NONBLOCK); ++#endif + + sock = h2o_mem_alloc(sizeof(*sock)); + memset(sock, 0, sizeof(*sock)); +@@ -381,14 +412,23 @@ struct st_h2o_evloop_socket_t *create_socket(h2o_evloop_t *loop, int fd, struct + static struct st_h2o_evloop_socket_t *create_socket_set_nodelay(h2o_evloop_t *loop, int fd, struct sockaddr *addr, + socklen_t addrlen, int flags) + { ++#ifdef _WIN32 ++ char on = 1; ++#else + int on = 1; ++#endif + setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); + return create_socket(loop, fd, addr, addrlen, flags); + } + + h2o_socket_t *h2o_evloop_socket_create(h2o_evloop_t *loop, int fd, struct sockaddr *addr, socklen_t addrlen, int flags) + { ++#ifdef _WIN32 ++ u_long nonblock = 1; ++ ioctlsocket(fd, FIONBIO, &nonblock); ++#else + fcntl(fd, F_SETFL, O_NONBLOCK); ++#endif + return &create_socket(loop, fd, addr, addrlen, flags)->super; + } + +@@ -405,7 +445,13 @@ h2o_socket_t *h2o_evloop_socket_accept(h2o_socket_t *_listener) + #else + if ((fd = cloexec_accept(listener->fd, (void *)&addr, &addrlen)) == -1) + return NULL; ++ ++# ifdef _WIN32 ++ u_long nonblock = 1; ++ ioctlsocket(fd, FIONBIO, &nonblock); ++# else + fcntl(fd, F_SETFL, O_NONBLOCK); ++# endif + #endif + + return &create_socket_set_nodelay(listener->loop, fd, (void *)&addr, addrlen, 0)->super; +@@ -418,7 +464,14 @@ h2o_socket_t *h2o_socket_connect(h2o_loop_t *loop, struct sockaddr *addr, sockle + + if ((fd = cloexec_socket(addr->sa_family, SOCK_STREAM, 0)) == -1) + return NULL; ++ ++#ifdef _WIN32 ++ u_long nonblock = 1; ++ ioctlsocket(fd, FIONBIO, &nonblock); ++#else + fcntl(fd, F_SETFL, O_NONBLOCK); ++#endif ++ + if (!(connect(fd, addr, addrlen) == 0 || errno == EINPROGRESS)) { + close(fd); + return NULL; +@@ -475,7 +528,11 @@ static void run_socket(struct st_h2o_evloop_socket_t *sock) + } + + if (sock->super._cb.write != NULL && sock->_wreq.cnt == 0) { ++#ifdef _WIN32 ++ char status; ++#else + int status; ++#endif + if ((sock->_flags & H2O_SOCKET_FLAG_IS_CONNECTING) != 0) { + socklen_t l = sizeof(status); + getsockopt(sock->fd, SOL_SOCKET, SO_ERROR, &status, &l); +diff --git a/lib/common/socket/evloop/select.c.h b/lib/common/socket/evloop/select.c.h +index 2036178..ef3eac5 100644 +--- a/lib/common/socket/evloop/select.c.h ++++ b/lib/common/socket/evloop/select.c.h +@@ -20,7 +20,9 @@ + * IN THE SOFTWARE. + */ + #include ++#ifndef _WIN32 + #include ++#endif + + #if 0 + #define DEBUG_LOG(...) fprintf(stderr, __VA_ARGS__) +diff --git a/lib/common/socketpool.c b/lib/common/socketpool.c +index 4fb8051..be035fe 100644 +--- a/lib/common/socketpool.c ++++ b/lib/common/socketpool.c +@@ -20,11 +20,21 @@ + * IN THE SOFTWARE. + */ + #include ++#ifdef _WIN32 ++# include ++# ifndef AI_ADDRCONFIG ++# define AI_ADDRCONFIG 0 ++# endif ++# ifndef AI_NUMERICSERV ++# define AI_NUMERICSERV 8 ++# endif ++#else + #include + #include + #include + #include + #include ++#endif + #include "h2o/hostinfo.h" + #include "h2o/linklist.h" + #include "h2o/socketpool.h" +diff --git a/lib/core/proxy.c b/lib/core/proxy.c +index 386d4cc..1d612ac 100644 +--- a/lib/core/proxy.c ++++ b/lib/core/proxy.c +@@ -19,10 +19,12 @@ + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ +-#include + #include + #include ++#ifndef _WIN32 ++#include + #include ++#endif + #include "picohttpparser.h" + #include "h2o.h" + #include "h2o/http1client.h" +diff --git a/lib/handler/access_log.c b/lib/handler/access_log.c +index 1100c22..dc1fd2d 100644 +--- a/lib/handler/access_log.c ++++ b/lib/handler/access_log.c +@@ -21,13 +21,15 @@ + */ + #include + #include ++#include ++#include ++#ifndef _WIN32 + #include + #include + #include +-#include +-#include + #include + #include ++#endif + #include "h2o.h" + #include "h2o/serverutil.h" + +@@ -397,6 +399,7 @@ int h2o_access_log_open_log(const char *path) + { + int fd; + ++#ifndef _WIN32 + if (path[0] == '|') { + int pipefds[2]; + pid_t pid; +@@ -422,11 +425,16 @@ int h2o_access_log_open_log(const char *path) + close(pipefds[0]); + fd = pipefds[1]; + } else { ++#else ++#define O_CLOEXEC 0 ++#endif + if ((fd = open(path, O_CREAT | O_WRONLY | O_APPEND | O_CLOEXEC, 0644)) == -1) { + fprintf(stderr, "failed to open log file:%s:%s\n", path, strerror(errno)); + return -1; + } ++#ifndef _WIN32 + } ++#endif + + return fd; + } +diff --git a/lib/handler/configurator/fastcgi.c b/lib/handler/configurator/fastcgi.c +index 320e401..3bd637a 100644 +--- a/lib/handler/configurator/fastcgi.c ++++ b/lib/handler/configurator/fastcgi.c +@@ -19,15 +19,17 @@ + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ +-#include + #include + #include + #include +-#include +-#include + #include + #include ++#ifndef _WIN32 ++#include ++#include ++#include + #include ++#endif + #include "h2o.h" + #include "h2o/configurator.h" + #include "h2o/serverutil.h" +@@ -120,6 +122,7 @@ static int on_config_connect(h2o_configurator_command_t *cmd, h2o_configurator_c + return -1; + } + ++#ifndef _WIN32 + if (strcmp(type, "unix") == 0) { + /* unix socket */ + struct sockaddr_un sun = {}; +@@ -130,7 +133,10 @@ static int on_config_connect(h2o_configurator_command_t *cmd, h2o_configurator_c + sun.sun_family = AF_UNIX; + strcpy(sun.sun_path, servname); + h2o_fastcgi_register_by_address(ctx->pathconf, (void *)&sun, sizeof(sun), self->vars); +- } else if (strcmp(type, "tcp") == 0) { ++ } else ++#endif ++ ++ if (strcmp(type, "tcp") == 0) { + /* tcp socket */ + uint16_t port; + if (sscanf(servname, "%" SCNu16, &port) != 1) { +@@ -146,6 +152,7 @@ static int on_config_connect(h2o_configurator_command_t *cmd, h2o_configurator_c + return 0; + } + ++#ifndef _WIN32 + static int create_spawnproc(h2o_configurator_command_t *cmd, yoml_t *node, const char *dirname, char **argv, + struct sockaddr_un *sun) + { +@@ -206,6 +213,7 @@ Error: + unlink(sun->sun_path); + return -1; + } ++#endif + + void spawnproc_on_dispose(h2o_fastcgi_handler_t *handler, void *data) + { +@@ -213,6 +221,7 @@ void spawnproc_on_dispose(h2o_fastcgi_handler_t *handler, void *data) + close(pipe_fd); + } + ++#ifndef _WIN32 + static int on_config_spawn(h2o_configurator_command_t *cmd, h2o_configurator_context_t *ctx, yoml_t *node) + { + struct fastcgi_configurator_t *self = (void *)cmd->configurator; +@@ -248,6 +257,7 @@ Exit: + free(argv[0]); + return ret; + } ++#endif + + static int on_config_enter(h2o_configurator_t *_self, h2o_configurator_context_t *ctx, yoml_t *node) + { +@@ -282,10 +292,12 @@ void h2o_fastcgi_register_configurator(h2o_globalconf_t *conf) + h2o_configurator_define_command(&c->super, "fastcgi.connect", + H2O_CONFIGURATOR_FLAG_PATH | H2O_CONFIGURATOR_FLAG_EXTENSION | H2O_CONFIGURATOR_FLAG_DEFERRED, + on_config_connect); ++#ifndef _WIN32 + h2o_configurator_define_command(&c->super, "fastcgi.spawn", + H2O_CONFIGURATOR_FLAG_PATH | H2O_CONFIGURATOR_FLAG_EXTENSION | H2O_CONFIGURATOR_FLAG_DEFERRED + | H2O_CONFIGURATOR_FLAG_EXPECT_SCALAR, + on_config_spawn); ++#endif + h2o_configurator_define_command(&c->super, "fastcgi.timeout.io", + H2O_CONFIGURATOR_FLAG_ALL_LEVELS | H2O_CONFIGURATOR_FLAG_EXPECT_SCALAR, on_config_timeout_io); + h2o_configurator_define_command(&c->super, "fastcgi.timeout.keepalive", +diff --git a/src/main.c b/src/main.c +index 82e834d..4ba83db 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -21,35 +21,52 @@ + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ +-#include + #include + #include + #include + #include + #include + #include +-#include +-#include +-#include + #include +-#include + #include +-#include + #include + #include +-#include + #include +-#include + #include + #include +-#include +-#include + #include + #include + #include + #ifdef __linux__ + #include + #endif ++#ifdef _WIN32 ++# include ++# ifndef AI_ADDRCONFIG ++# define AI_ADDRCONFIG 0 ++# endif ++# ifndef AI_NUMERICSERV ++# define AI_NUMERICSERV 8 ++# endif ++# include ++# define WEXITSTATUS(val) ((val) & 255) ++# define WIFEXITED(val) (((val) & 0xC0000000) == 0) ++# define WIFSIGNALED(val) (((val) & 0xC0000000) != 0) ++# define WTERMSIG(val) ((val > 0xC0000200) ? val - 0xC0000200 : val) ++# define WIFSTOPPED(val) (0) ++# define WSTOPSIG(var) (0) ++#else ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++#endif + #include "cloexec.h" + #include "yoml-parser.h" + #include "h2o.h" +@@ -155,10 +172,12 @@ static struct { + + static void set_cloexec(int fd) + { ++#ifndef _WIN32 + if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) { + perror("failed to set FD_CLOEXEC"); + abort(); + } ++#endif + } + + static int on_openssl_print_errors(const char *str, size_t len, void *fp) +@@ -682,6 +701,7 @@ Found: + return conf.server_starter.fds[i]; + } + ++#ifndef _WIN32 + static int open_unix_listener(h2o_configurator_command_t *cmd, yoml_t *node, struct sockaddr_un *sun) + { + struct stat st; +@@ -708,6 +728,7 @@ static int open_unix_listener(h2o_configurator_command_t *cmd, yoml_t *node, str + + return fd; + } ++#endif + + static int open_tcp_listener(h2o_configurator_command_t *cmd, yoml_t *node, const char *hostname, const char *servname, int domain, + int type, int protocol, struct sockaddr *addr, socklen_t addrlen) +@@ -718,13 +739,21 @@ static int open_tcp_listener(h2o_configurator_command_t *cmd, yoml_t *node, cons + goto Error; + set_cloexec(fd); + { /* set reuseaddr */ ++#ifdef _WIN32 ++ char flag = 1; ++#else + int flag = 1; ++#endif + if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(flag)) != 0) + goto Error; + } + #ifdef TCP_DEFER_ACCEPT + { /* set TCP_DEFER_ACCEPT */ ++#ifdef _WIN32 ++ char flag = 1; ++#else + int flag = 1; ++#endif + if (setsockopt(fd, IPPROTO_TCP, TCP_DEFER_ACCEPT, &flag, sizeof(flag)) != 0) + goto Error; + } +@@ -732,7 +761,11 @@ static int open_tcp_listener(h2o_configurator_command_t *cmd, yoml_t *node, cons + #ifdef IPV6_V6ONLY + /* set IPv6only */ + if (domain == AF_INET6) { ++#ifdef _WIN32 ++ char flag = 1; ++#else + int flag = 1; ++#endif + if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &flag, sizeof(flag)) != 0) + goto Error; + } +@@ -766,6 +799,12 @@ static int on_config_listen(h2o_configurator_command_t *cmd, h2o_configurator_co + const char *hostname = NULL, *servname = NULL, *type = "tcp"; + yoml_t *ssl_node = NULL; + ++#ifdef _WIN32 ++ hostname = "127.0.0.1"; ++ WSADATA wsaData; ++ WSAStartup(MAKEWORD(2, 0), &wsaData); ++#endif ++ + /* fetch servname (and hostname) */ + switch (node->type) { + case YOML_TYPE_SCALAR: +@@ -804,6 +843,7 @@ static int on_config_listen(h2o_configurator_command_t *cmd, h2o_configurator_co + return -1; + } + ++#ifndef _WIN32 + if (strcmp(type, "unix") == 0) { + + /* unix socket */ +@@ -844,7 +884,10 @@ static int on_config_listen(h2o_configurator_command_t *cmd, h2o_configurator_co + if (listener->hosts != NULL && ctx->hostconf != NULL) + h2o_append_to_null_terminated_list((void *)&listener->hosts, ctx->hostconf); + +- } else if (strcmp(type, "tcp") == 0) { ++ } else ++#endif ++ ++ if (strcmp(type, "tcp") == 0) { + + /* TCP socket */ + struct addrinfo hints, *res, *ai; +@@ -934,6 +977,7 @@ static int on_config_listen_exit(h2o_configurator_t *_configurator, h2o_configur + return 0; + } + ++#ifndef _WIN32 + static int setup_running_user(const char *login) + { + struct passwd *passwdbuf = h2o_mem_alloc(sizeof(*passwdbuf)); +@@ -969,6 +1013,7 @@ static int on_config_user(h2o_configurator_command_t *cmd, h2o_configurator_cont + + return 0; + } ++#endif + + static int on_config_pid_file(h2o_configurator_command_t *cmd, h2o_configurator_context_t *ctx, yoml_t *node) + { +@@ -1115,7 +1160,10 @@ static void on_sigfatal(int signo) + static void setup_signal_handlers(void) + { + h2o_set_signal_handler(SIGTERM, on_sigterm); ++#ifndef _WIN32 + h2o_set_signal_handler(SIGPIPE, SIG_IGN); ++#endif ++ + #ifdef __linux__ + if ((backtrace_symbols_to_fd = popen_annotate_backtrace_symbols()) == -1) + backtrace_symbols_to_fd = 2; +@@ -1320,11 +1368,13 @@ static char **build_server_starter_argv(const char *h2o_cmd, const char *config_ + sprintf(newarg, "--port=%s:%s", host, serv); + } + } break; ++#ifndef _WIN32 + case AF_UNIX: { + struct sockaddr_un *sun = (void *)&conf.listeners[i]->addr; + newarg = h2o_mem_alloc(sizeof("--path=") + strlen(sun->sun_path)); + sprintf(newarg, "--path=%s", sun->sun_path); + } break; ++#endif + } + h2o_vector_reserve(NULL, (void *)&args, sizeof(args.entries[0]), args.size + 1); + args.entries[args.size++] = newarg; +@@ -1343,7 +1393,13 @@ static char **build_server_starter_argv(const char *h2o_cmd, const char *config_ + static int run_using_server_starter(const char *h2o_cmd, const char *config_file) + { + char **args = build_server_starter_argv(h2o_cmd, config_file); ++ ++#ifndef _WIN32 + setenv("H2O_VIA_MASTER", "", 1); ++#else ++ putenv("H2O_VIA_MASTER=1"); ++#endif ++ + execvp(args[0], args); + fprintf(stderr, "failed to spawn %s:%s\n", args[0], strerror(errno)); + return EX_CONFIG; +@@ -1362,8 +1418,10 @@ static void setup_configurators(void) + + { + h2o_configurator_t *c = h2o_configurator_create(&conf.globalconf, sizeof(*c)); ++#ifndef _WIN32 + h2o_configurator_define_command(c, "user", H2O_CONFIGURATOR_FLAG_GLOBAL | H2O_CONFIGURATOR_FLAG_EXPECT_SCALAR, + on_config_user); ++#endif + h2o_configurator_define_command(c, "pid-file", H2O_CONFIGURATOR_FLAG_GLOBAL | H2O_CONFIGURATOR_FLAG_EXPECT_SCALAR, + on_config_pid_file); + h2o_configurator_define_command(c, "error-log", H2O_CONFIGURATOR_FLAG_GLOBAL | H2O_CONFIGURATOR_FLAG_EXPECT_SCALAR, +@@ -1516,7 +1574,11 @@ int main(int argc, char **argv) + } + } + ++#ifndef _WIN32 + unsetenv("SERVER_STARTER_PORT"); ++#else ++ putenv("SERVER_STARTER_PORT="); ++#endif + + /* handle run_mode == MASTER|TEST */ + switch (conf.run_mode) { +@@ -1541,6 +1603,7 @@ int main(int argc, char **argv) + conf.error_log = NULL; + } + ++#ifndef _WIN32 + { /* raise RLIMIT_NOFILE */ + struct rlimit limit; + if (getrlimit(RLIMIT_NOFILE, &limit) == 0) { +@@ -1554,6 +1617,7 @@ int main(int argc, char **argv) + } + } + } ++#endif + + setup_signal_handlers(); + +@@ -1563,6 +1627,7 @@ int main(int argc, char **argv) + return EX_CONFIG; + } + ++#ifndef _WIN32 + /* setuid */ + if (conf.running_user != NULL) { + if (h2o_setuidgid(conf.running_user) != 0) { +@@ -1580,6 +1645,7 @@ int main(int argc, char **argv) + } + } + } ++#endif + + /* pid file must be written after setuid, since we need to remove it */ + if (conf.pid_file != NULL) { +@@ -1594,6 +1660,7 @@ int main(int argc, char **argv) + + /* all setup should be complete by now */ + ++#ifndef _WIN32 + /* replace STDIN to an closed pipe */ + { + int fds[2]; +@@ -1605,6 +1672,7 @@ int main(int argc, char **argv) + dup2(fds[0], 0); + close(fds[0]); + } ++#endif + + /* redirect STDOUT and STDERR to error_log (if specified) */ + if (error_log_fd != -1) { +-- +2.4.4 + diff --git a/mingw-w64-h2o/0003-add-readdir_r-emulation-for-windows.patch b/mingw-w64-h2o/0003-add-readdir_r-emulation-for-windows.patch new file mode 100644 index 0000000000..c523e2a91f --- /dev/null +++ b/mingw-w64-h2o/0003-add-readdir_r-emulation-for-windows.patch @@ -0,0 +1,37 @@ +From f009a269ffa2fc7be012a8c7db5674490f6a6c54 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 25 Jun 2015 23:45:30 +0100 +Subject: [PATCH 3/8] add readdir_r emulation for windows + +--- + lib/handler/file/templates.c.h | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/lib/handler/file/templates.c.h b/lib/handler/file/templates.c.h +index c75f60e..fec65e3 100644 +--- a/lib/handler/file/templates.c.h ++++ b/lib/handler/file/templates.c.h +@@ -24,6 +24,20 @@ + * picotemplate.pl --conf=misc/picotemplate-conf.pl lib/file/_templates.c.h + */ + ++#ifdef _WIN32 ++static inline ++int readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result) ++{ ++ errno = 0; ++ entry = readdir (dirp); ++ *result = entry; ++ if (entry == NULL && errno != 0) { ++ return -1; ++ } ++ return 0; ++} ++#endif ++ + static h2o_buffer_t *build_dir_listing_html(h2o_mem_pool_t *pool, h2o_iovec_t path_normalized, DIR *dp) + { + h2o_buffer_t *_; +-- +2.4.4 + diff --git a/mingw-w64-h2o/0004-serverutil-hackery-for-windows.patch b/mingw-w64-h2o/0004-serverutil-hackery-for-windows.patch new file mode 100644 index 0000000000..b0c282edac --- /dev/null +++ b/mingw-w64-h2o/0004-serverutil-hackery-for-windows.patch @@ -0,0 +1,174 @@ +From 49e370aec2435420aa5a69920e7519046371ee46 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 25 Jun 2015 23:48:43 +0100 +Subject: [PATCH 4/8] serverutil hackery for windows + +--- + include/h2o/serverutil.h | 16 ++++++++++++ + lib/common/serverutil.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++- + 2 files changed, 79 insertions(+), 1 deletion(-) + +diff --git a/include/h2o/serverutil.h b/include/h2o/serverutil.h +index b084096..92e14b5 100644 +--- a/include/h2o/serverutil.h ++++ b/include/h2o/serverutil.h +@@ -23,7 +23,23 @@ + #define h2o__server_starter_h + + #include ++#ifndef _WIN32 + #include ++#else ++ ++ ++struct passwd { ++ char *pw_name; /* user name */ ++ char *pw_passwd; /* encrypted password */ ++ int pw_uid; /* user uid */ ++ int pw_gid; /* user gid */ ++ char *pw_comment; /* comment */ ++ char *pw_gecos; /* Honeywell login info */ ++ char *pw_dir; /* home directory */ ++ char *pw_shell; /* default shell */ ++}; ++ ++#endif + + /* taken from sysexits.h */ + #ifndef EX_SOFTWARE +diff --git a/lib/common/serverutil.c b/lib/common/serverutil.c +index 0b843b0..a027118 100644 +--- a/lib/common/serverutil.c ++++ b/lib/common/serverutil.c +@@ -21,19 +21,66 @@ + */ + #include + #include +-#include ++#ifndef _WIN32 ++# include ++#endif + #include + #include ++#ifdef _WIN32 ++#define sigemptyset(x) memset((x), 0, sizeof(*(x))) ++#ifndef SIGHUP ++# define SIGHUP -1 ++#endif ++#ifndef SIGPIPE ++# define SIGPIPE -1 ++#endif ++struct sigaction ++{ ++ void (*sa_handler)(int); ++ int sa_flags; ++ int sa_mask; ++}; ++int sigaction(int sig, struct sigaction *action, struct sigaction *old) ++{ ++ if (sig == -1) ++ return 0; ++ if (old == NULL) ++ { ++ if (signal(sig, SIG_DFL) == SIG_ERR) ++ return -1; ++ } ++ else ++ { ++ if (signal(sig, action->sa_handler) == SIG_ERR) ++ return -1; ++ } ++ return 0; ++} ++#define waitpid(a,b,c) _cwait(b,a,c) ++#define pipe(a) _pipe((a), 0, _O_BINARY | _O_NOINHERIT) ++typedef struct ++{ ++ int __allocated; ++ int __used; ++ struct __spawn_action *__actions; ++ int __pad[16]; ++} posix_spawn_file_actions_t; ++#else + #include ++#endif + #include + #include + #include + #include ++#ifndef _WIN32 + #include ++#endif + #include + #if !defined(_SC_NPROCESSORS_ONLN) ++#ifndef _WIN32 + #include + #endif ++#endif + #include "cloexec.h" + #include "h2o/memory.h" + #include "h2o/serverutil.h" +@@ -52,6 +99,7 @@ void h2o_set_signal_handler(int signo, void (*cb)(int signo)) + + int h2o_setuidgid(struct passwd *passwd) + { ++#ifndef _WIN32 + if (setgid(passwd->pw_gid) != 0) { + fprintf(stderr, "setgid(%d) failed:%s\n", (int)passwd->pw_gid, strerror(errno)); + return -1; +@@ -64,6 +112,7 @@ int h2o_setuidgid(struct passwd *passwd) + fprintf(stderr, "setuid(%d) failed:%s\n", (int)passwd->pw_uid, strerror(errno)); + return -1; + } ++#endif + + return 0; + } +@@ -101,6 +150,7 @@ size_t h2o_server_starter_get_fds(int **_fds) + return fds.size; + } + ++#ifndef _WIN32 + pid_t h2o_spawnp(const char *cmd, char **argv, const int *mapped_fds, int cloexec_mutex_is_locked) + { + #if defined(__linux__) +@@ -191,9 +241,14 @@ Error: + + #endif + } ++#endif + + int h2o_read_command(const char *cmd, char **argv, h2o_buffer_t **resp, int *child_status) + { ++#ifdef _WIN32 ++ return -1; ++#else ++ + int respfds[2] = {-1, -1}; + pid_t pid = -1; + int mutex_locked = 0, ret = -1; +@@ -206,7 +261,13 @@ int h2o_read_command(const char *cmd, char **argv, h2o_buffer_t **resp, int *chi + /* create pipe for reading the result */ + if (pipe(respfds) != 0) + goto Exit; ++ ++#ifdef _WIN32 ++ u_long nonblock = 0; ++ ioctlsocket(respfds[0], FIONBIO, &nonblock); ++#else + fcntl(respfds[0], F_SETFD, O_CLOEXEC); ++#endif + + /* spawn */ + int mapped_fds[] = {respfds[1], 1, /* stdout of the child process is read from the pipe */ +@@ -251,6 +312,7 @@ Exit: + h2o_buffer_dispose(resp); + + return ret; ++#endif + } + + size_t h2o_numproc() +-- +2.4.4 + diff --git a/mingw-w64-h2o/0005-mman-hackery-for-windows.patch b/mingw-w64-h2o/0005-mman-hackery-for-windows.patch new file mode 100644 index 0000000000..bd2ae1a008 --- /dev/null +++ b/mingw-w64-h2o/0005-mman-hackery-for-windows.patch @@ -0,0 +1,206 @@ +From 44de0d5b36e93d9e9475c7ae7c8c0c219e794bf7 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 25 Jun 2015 23:54:36 +0100 +Subject: [PATCH 5/8] mman hackery for windows + +--- + lib/common/memory.c | 182 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 182 insertions(+) + +diff --git a/lib/common/memory.c b/lib/common/memory.c +index a3ae2d6..b34443a 100644 +--- a/lib/common/memory.c ++++ b/lib/common/memory.c +@@ -27,7 +27,189 @@ + #include + #include + #include ++#ifndef _WIN32 + #include ++#else ++// borrowed from nmap-win32 from googlecode ++#include ++#include ++#include ++#include ++ ++#define PROT_NONE 0 ++#define PROT_READ 1 ++#define PROT_WRITE 2 ++#define PROT_EXEC 4 ++ ++#define MAP_FILE 0 ++#define MAP_SHARED 1 ++#define MAP_PRIVATE 2 ++#define MAP_TYPE 0xf ++#define MAP_FIXED 0x10 ++#define MAP_ANONYMOUS 0x20 ++#define MAP_ANON MAP_ANONYMOUS ++ ++#define MAP_FAILED ((void *)-1) ++ ++/* Flags for msync. */ ++#define MS_ASYNC 1 ++#define MS_SYNC 2 ++#define MS_INVALIDATE 4 ++ ++void* mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off); ++int munmap(void *addr, size_t len); ++int msync(void *addr, size_t len, int flags); ++int mlock(const void *addr, size_t len); ++int munlock(const void *addr, size_t len); ++ ++//#include "mman.h" ++ ++#ifndef FILE_MAP_EXECUTE ++#define FILE_MAP_EXECUTE 0x0020 ++#endif /* FILE_MAP_EXECUTE */ ++ ++static int __map_mman_error(const DWORD err, const int deferr) ++{ ++ if (err == 0) ++ return 0; ++ //TODO: implement ++ return err; ++} ++ ++static DWORD __map_mmap_prot_page(const int prot) ++{ ++ DWORD protect = 0; ++ ++ if (prot == PROT_NONE) ++ return protect; ++ ++ if ((prot & PROT_EXEC) != 0) ++ { ++ protect = ((prot & PROT_WRITE) != 0) ? ++ PAGE_EXECUTE_READWRITE : PAGE_EXECUTE_READ; ++ } ++ else ++ { ++ protect = ((prot & PROT_WRITE) != 0) ? ++ PAGE_READWRITE : PAGE_READONLY; ++ } ++ ++ return protect; ++} ++ ++static DWORD __map_mmap_prot_file(const int prot) ++{ ++ DWORD desiredAccess = 0; ++ ++ if (prot == PROT_NONE) ++ return desiredAccess; ++ ++ if ((prot & PROT_READ) != 0) ++ desiredAccess |= FILE_MAP_READ; ++ if ((prot & PROT_WRITE) != 0) ++ desiredAccess |= FILE_MAP_WRITE; ++ if ((prot & PROT_EXEC) != 0) ++ desiredAccess |= FILE_MAP_EXECUTE; ++ ++ return desiredAccess; ++} ++ ++void* mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off) ++{ ++ HANDLE fm, h; ++ ++ void * map = MAP_FAILED; ++ ++ const DWORD dwFileOffsetLow = (sizeof(off_t) <= sizeof(DWORD)) ? ++ (DWORD)off : (DWORD)(off & 0xFFFFFFFFL); ++ const DWORD dwFileOffsetHigh = (sizeof(off_t) <= sizeof(DWORD)) ? ++ (DWORD)0 : (DWORD)((off >> 32) & 0xFFFFFFFFL); ++ const DWORD protect = __map_mmap_prot_page(prot); ++ const DWORD desiredAccess = __map_mmap_prot_file(prot); ++ ++ errno = 0; ++ ++ if (len == 0 ++ /* Unsupported flag combinations */ ++ || (flags & MAP_FIXED) != 0 ++ /* Usupported protection combinations */ ++ || prot == PROT_EXEC) ++ { ++ errno = EINVAL; ++ return MAP_FAILED; ++ } ++ ++ h = ((flags & MAP_ANONYMOUS) == 0) ? ++ (HANDLE)_get_osfhandle(fildes) : INVALID_HANDLE_VALUE; ++ ++ if ((flags & MAP_ANONYMOUS) == 0 && h == INVALID_HANDLE_VALUE) ++ { ++ errno = EBADF; ++ return MAP_FAILED; ++ } ++ ++ fm = CreateFileMapping(h, NULL, protect, 0, len, NULL); ++ ++ if (fm == NULL) ++ { ++ errno = __map_mman_error(GetLastError(), EPERM); ++ return MAP_FAILED; ++ } ++ ++ map = MapViewOfFile(fm, desiredAccess, dwFileOffsetHigh, dwFileOffsetLow, len); ++ ++ CloseHandle(fm); ++ ++ if (map == NULL) ++ { ++ errno = __map_mman_error(GetLastError(), EPERM); ++ return MAP_FAILED; ++ } ++ ++ return map; ++} ++ ++int munmap(void *addr, size_t len) ++{ ++ if (UnmapViewOfFile(addr)) ++ return 0; ++ ++ errno = __map_mman_error(GetLastError(), EPERM); ++ ++ return -1; ++} ++ ++int msync(void *addr, size_t len, int flags) ++{ ++ if (FlushViewOfFile(addr, len)) ++ return 0; ++ ++ errno = __map_mman_error(GetLastError(), EPERM); ++ ++ return -1; ++} ++ ++int mlock(const void *addr, size_t len) ++{ ++ if (VirtualLock((LPVOID)addr, len)) ++ return 0; ++ ++ errno = __map_mman_error(GetLastError(), EPERM); ++ ++ return -1; ++} ++ ++int munlock(const void *addr, size_t len) ++{ ++ if (VirtualUnlock((LPVOID)addr, len)) ++ return 0; ++ ++ errno = __map_mman_error(GetLastError(), EPERM); ++ ++ return -1; ++} ++ ++#endif + #include + #include "h2o/memory.h" + +-- +2.4.4 + diff --git a/mingw-w64-h2o/0006-import-time-code-from-mattn.patch b/mingw-w64-h2o/0006-import-time-code-from-mattn.patch new file mode 100644 index 0000000000..19390ada4b --- /dev/null +++ b/mingw-w64-h2o/0006-import-time-code-from-mattn.patch @@ -0,0 +1,56 @@ +From 62ce49653c8ec2ed53428004efa212e83042e091 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 25 Jun 2015 23:56:02 +0100 +Subject: [PATCH 6/8] import time code from mattn + +--- + lib/common/time.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +diff --git a/lib/common/time.c b/lib/common/time.c +index 5308848..6b5e95c 100644 +--- a/lib/common/time.c ++++ b/lib/common/time.c +@@ -24,6 +24,26 @@ + #include + #include "h2o/time_.h" + ++#ifdef _WIN32 ++struct tm * ++localtime_r(const time_t *t, struct tm *r) { ++ struct tm *lt = localtime(t); ++ if (lt == NULL || r == NULL) ++ return NULL; ++ memcpy(r, lt, sizeof(struct tm)); ++ return r; ++} ++ ++struct tm * ++gmtime_r(const time_t *t, struct tm *r) { ++ struct tm *lt = gmtime(t); ++ if (lt == NULL || r == NULL) ++ return NULL; ++ memcpy(r, lt, sizeof(struct tm)); ++ return r; ++} ++#endif ++ + static char *emit_wday(char *dst, int wday) + { + memcpy(dst, ("SunMonTueWedThuFriSat") + wday * 3, 3); +@@ -139,7 +159,12 @@ void h2o_time2str_log(char *buf, time_t time) + { + struct tm localt; + localtime_r(&time, &localt); ++#ifdef _WIN32 ++ extern __declspec(dllimport) long _timezone; ++ int gmt_off = (int)(_timezone / 60); ++#else + int gmt_off = (int)(localt.tm_gmtoff / 60); ++#endif + int gmt_sign; + + if (gmt_off >= 0) { +-- +2.4.4 + diff --git a/mingw-w64-h2o/0007-cloexec-hackery-for-windows.patch b/mingw-w64-h2o/0007-cloexec-hackery-for-windows.patch new file mode 100644 index 0000000000..f2568007aa --- /dev/null +++ b/mingw-w64-h2o/0007-cloexec-hackery-for-windows.patch @@ -0,0 +1,63 @@ +From ba5305d42a210a07e9f6a18284dc0c07d5e45c14 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Fri, 26 Jun 2015 00:02:23 +0100 +Subject: [PATCH 7/8] cloexec hackery for windows + +--- + deps/cloexec/cloexec.c | 7 +++++++ + deps/cloexec/cloexec.h | 6 +++++- + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/deps/cloexec/cloexec.c b/deps/cloexec/cloexec.c +index 1442526..b9051fc 100644 +--- a/deps/cloexec/cloexec.c ++++ b/deps/cloexec/cloexec.c +@@ -26,7 +26,12 @@ pthread_mutex_t cloexec_mutex = PTHREAD_MUTEX_INITIALIZER; + + static int set_cloexec(int fd) + { ++#ifdef _WIN32 ++ u_long nonblock = 1; ++ return ioctlsocket(fd, FIONBIO, &nonblock) != -1 ? 0 : -1; ++#else + return fcntl(fd, F_SETFD, FD_CLOEXEC) != -1 ? 0 : -1; ++#endif + } + + int cloexec_accept(int socket, struct sockaddr *addr, socklen_t *addrlen) +@@ -51,6 +56,7 @@ Exit: + #endif + } + ++#ifndef _WIN32 + int cloexec_pipe(int fds[2]) + { + #ifdef __linux__ +@@ -70,6 +76,7 @@ Exit: + return ret; + #endif + } ++#endif + + int cloexec_socket(int domain, int type, int protocol) + { +diff --git a/deps/cloexec/cloexec.h b/deps/cloexec/cloexec.h +index 53987ed..1ea9155 100644 +--- a/deps/cloexec/cloexec.h ++++ b/deps/cloexec/cloexec.h +@@ -23,7 +23,11 @@ + #define CLOEXEC_H + + #include +-#include ++#ifdef _WIN32 ++# include ++#else ++# include ++#endif + #include + #include + +-- +2.4.4 + diff --git a/mingw-w64-h2o/0008-ignore-O_CLOEXEC-in-file.c-for-windows.patch b/mingw-w64-h2o/0008-ignore-O_CLOEXEC-in-file.c-for-windows.patch new file mode 100644 index 0000000000..d90b76a232 --- /dev/null +++ b/mingw-w64-h2o/0008-ignore-O_CLOEXEC-in-file.c-for-windows.patch @@ -0,0 +1,27 @@ +From 814d17f05e1d5a0f99ca5b24866189af7d098cbc Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Fri, 26 Jun 2015 00:33:17 +0100 +Subject: [PATCH 8/8] ignore O_CLOEXEC in file.c for windows + +--- + lib/handler/file.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/lib/handler/file.c b/lib/handler/file.c +index aa683ac..e958b03 100644 +--- a/lib/handler/file.c ++++ b/lib/handler/file.c +@@ -34,6 +34,10 @@ + + #include "h2o.h" + ++#ifdef _WIN32 ++#define O_CLOEXEC 0 ++#endif ++ + #define MAX_BUF_SIZE 65000 + #define BOUNDARY_SIZE 20 + #define FIXED_PART_SIZE (sizeof("\r\n--") - 1 + BOUNDARY_SIZE + sizeof("\r\nContent-Range: bytes=-/\r\nContent-Type: \r\n\r\n") - 1) +-- +2.4.4 + diff --git a/mingw-w64-h2o/PKGBUILD b/mingw-w64-h2o/PKGBUILD new file mode 100644 index 0000000000..a7d8459257 --- /dev/null +++ b/mingw-w64-h2o/PKGBUILD @@ -0,0 +1,63 @@ +# Maintainer: Martell Malone + +_realname=h2o +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.3.1 +pkgrel=1 +pkgdesc="The optimized HTTP/1, HTTP/2 server (mingw-w64)" +arch=('any') +url="https://github.com/h2o/h2o" +license=("MIT") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") +depends=("${MINGW_PACKAGE_PREFIX}-wslay" + "${MINGW_PACKAGE_PREFIX}-libuv") +options=('staticlibs' 'strip') + +source=("https://github.com/h2o/h2o/archive/v$pkgver.tar.gz" + "0001-update-yaml-to-0.1.6-for-security-fix.patch" + "0002-basic-windows-support.patch" + "0003-add-readdir_r-emulation-for-windows.patch" + "0004-serverutil-hackery-for-windows.patch" + "0005-mman-hackery-for-windows.patch" + "0006-import-time-code-from-mattn.patch" + "0007-cloexec-hackery-for-windows.patch" + "0008-ignore-O_CLOEXEC-in-file.c-for-windows.patch") + +sha256sums=('8668a7c70cdb59eef4e67889569a45e0cf75b95eec133bd30435879cbdb77fba' + 'f79055e76acde4a8f7ab5518418f535ef92a4597cf34b6d70e9c652f9a31b05f' + '92b93a4b47b21cc34dabe527cdab978f4c6224b76caf85287560dde6b412395c' + 'e0527b97a8ba668bacf077d2540ae0184339af36571f347b0be81131310ce702' + '8098ac07cddb81fabeb14d701ea9ffe94d3d25b9b3c6c6a97bade926b75f6458' + '3ac1ad8388f65c463d8e2a097ba4087d02c2712b99b13d558dd708f6ae467f92' + 'c8e9f0d2070a0ddcaeca36514e241dfeec193c36fc5a6b34dbbbf08de2be1043' + '6e61ee523048d2fe120397cf8c1619c0f0a920355152d9852c37637abefdacc5' + '9f6f6728e5652fa0b0333c0b052f58310a9391603a0140ab2fb0e2bf3f46f269') + +prepare() { + cd "$srcdir/${_realname}-${pkgver}" + patch -p1 -i "${srcdir}"/0001-update-yaml-to-0.1.6-for-security-fix.patch + patch -p1 -i "${srcdir}"/0002-basic-windows-support.patch + patch -p1 -i "${srcdir}"/0003-add-readdir_r-emulation-for-windows.patch + patch -p1 -i "${srcdir}"/0004-serverutil-hackery-for-windows.patch + patch -p1 -i "${srcdir}"/0005-mman-hackery-for-windows.patch + patch -p1 -i "${srcdir}"/0006-import-time-code-from-mattn.patch + patch -p1 -i "${srcdir}"/0007-cloexec-hackery-for-windows.patch + patch -p1 -i "${srcdir}"/0008-ignore-O_CLOEXEC-in-file.c-for-windows.patch +} + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_C_FLAGS="-D__USE_MINGW_ANSI_STDIO=1" \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + ../${_realname}-${pkgver} + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make install +} From 3af56bb578073fa2a98602d957536db2d4bc63b9 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 26 Jun 2015 20:47:53 +0200 Subject: [PATCH 1221/2060] evince: updated to 3.16.1. --- mingw-w64-evince/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index ad250f5ea5..55a78de6cc 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -2,8 +2,8 @@ _realname=evince pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 -pkgrel=2 +pkgver=3.16.1 +pkgrel=1 arch=('any') pkgdesc="Document (PostScript, PDF) viewer (mingw-w64)" options=(strip staticlibs) @@ -32,13 +32,14 @@ url="http://www.gnome.org" install=evince-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-give-cc-to-gir-scanner.mingw.patch) -sha256sums=('5138e2d05ccfe5e40df0c840b34f334c1f2bc03e5456aa954e64673d504ccd04' +sha256sums=('06ff75065b2a30cd588c402f6bd2ea88ee3166181805e0cc00bd54f71dbf6130' '2b704ea359fd73fb6ee905868b4b61246bb143cf783d7f970425a5236daa0686') prepare() { cd "${srcdir}"/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/001-give-cc-to-gir-scanner.mingw.patch - #autopoint --force + AUTOPOINT='intltoolize --automake --copy' autoreconf -f -i } From c5d0aed2c431049f17d11ede1ef80dd2c83a75c7 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 26 Jun 2015 21:39:07 +0200 Subject: [PATCH 1222/2060] gedit: updated to 3.16.2. --- mingw-w64-gedit/PKGBUILD | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gedit/PKGBUILD b/mingw-w64-gedit/PKGBUILD index dabc5e5129..6c08d3df4f 100644 --- a/mingw-w64-gedit/PKGBUILD +++ b/mingw-w64-gedit/PKGBUILD @@ -2,7 +2,7 @@ _realname=gedit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 +pkgver=3.16.2 pkgrel=1 arch=('any') pkgdesc="A text editor for GNOME (mingw-w64)" @@ -26,7 +26,7 @@ license=("GPL") url="http://www.gnome.org" install=gedit-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz) -sha256sums=('794647e9b3e3fdd062f8c59942e7517c429f5a7a7fb42e31f88dcc0b47db03cb') +sha256sums=('db60a9408711b00f3780f5f5b657e9f44722c88c683ba6e9f2b4885631f429aa') prepare() { cd "${srcdir}"/${_realname}-${pkgver} @@ -54,4 +54,6 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From c4db49e236e6a5db97d467b8513e88fdf7f1f352 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 26 Jun 2015 21:10:56 +0100 Subject: [PATCH 1223/2060] TODO.md: Update with info about needed CMake change. --- TODO.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/TODO.md b/TODO.md index 08d016c97b..8bd500f949 100644 --- a/TODO.md +++ b/TODO.md @@ -41,3 +41,6 @@ What we need to do: * Bison: Add path relocation when locating m4 * Add the Oyrol, Urho3D and Godot engines + +* CMake Library Packages (all): Relocate find_package()-called scripts as + was done for CGAL in https://github.com/Alexpux/MINGW-packages/commit/34ea54 From 9bc36e4dab8fa8a8767d361b391a2c94032d17fa Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 27 Jun 2015 09:55:09 +0300 Subject: [PATCH 1224/2060] Add PySide packages for Qt4 --- mingw-w64-pyside-qt4/PKGBUILD | 141 ++++++++++++++++ mingw-w64-pyside-qt4/pyside-i686.install | 14 ++ mingw-w64-pyside-qt4/pyside-x86_64.install | 14 ++ mingw-w64-pyside-qt4/pyside.patch | 57 +++++++ mingw-w64-pyside-tools-qt4/PKGBUILD | 123 ++++++++++++++ mingw-w64-shiboken-qt4/PKGBUILD | 156 ++++++++++++++++++ mingw-w64-shiboken-qt4/shiboken-i686.install | 14 ++ .../shiboken-x86_64.install | 14 ++ mingw-w64-shiboken-qt4/shiboken.patch | 68 ++++++++ 9 files changed, 601 insertions(+) create mode 100644 mingw-w64-pyside-qt4/PKGBUILD create mode 100644 mingw-w64-pyside-qt4/pyside-i686.install create mode 100644 mingw-w64-pyside-qt4/pyside-x86_64.install create mode 100644 mingw-w64-pyside-qt4/pyside.patch create mode 100644 mingw-w64-pyside-tools-qt4/PKGBUILD create mode 100644 mingw-w64-shiboken-qt4/PKGBUILD create mode 100644 mingw-w64-shiboken-qt4/shiboken-i686.install create mode 100644 mingw-w64-shiboken-qt4/shiboken-x86_64.install create mode 100644 mingw-w64-shiboken-qt4/shiboken.patch diff --git a/mingw-w64-pyside-qt4/PKGBUILD b/mingw-w64-pyside-qt4/PKGBUILD new file mode 100644 index 0000000000..69ddfe2e66 --- /dev/null +++ b/mingw-w64-pyside-qt4/PKGBUILD @@ -0,0 +1,141 @@ +# Maintainer: Alexey Pavlov +# Contributor: Xin Sun + +_realname=pyside +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-common ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}) +pkgver=1.2.2 +pkgrel=1 +arch=('any') +url="http://pyside.github.io/docs/pyside/" +license=("LGPL") +install=${_realname}-${CARCH}.install +source=(https://pypi.python.org/packages/source/P/PySide/PySide-${pkgver}.tar.gz + pyside.patch) +md5sums=('c45bc400c8a86d6b35f34c29e379e44d' + 'c56a8aa26cb6c940f2bd992e58567e80') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-python2-shiboken" + "${MINGW_PACKAGE_PREFIX}-python3-shiboken" + "${MINGW_PACKAGE_PREFIX}-qt4") +options=('staticlibs' 'strip') + +prepare() { + cd ${srcdir}/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/pyside.patch +} + +build() { + for pyv in python2 python3; do + local _conf= + if [ "${pyv}" = "python2" ]; then + _conf="-DPYTHON_SUFFIX=-python2.7" + fi + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf PySide-${pkgver} build-${MINGW_CHOST}-${pyv} + pushd ${srcdir}/build-${MINGW_CHOST}-${pyv}/sources/pyside > /dev/null + + export MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX" + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=RELEASE \ + ${_conf} \ + -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/${pyv}.exe + + make + + popd > /dev/null + done + +} + +fix_paths() { + local prefixwin=$(cygpath -am ${MINGW_PREFIX}) + local prefixinst=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) + + local _files=$(find ${pkgdir}${MINGW_PREFIX}/lib/cmake/PySide-${pkgver} -type f -iname "*.cmake" -o -iname "*.pc") + for f in ${_files}; do + plain "Patching ${f}..." + sed -e "s|${prefixwin}|${MINGW_PREFIX}|g" \ + -e "s|${prefixinst}|${MINGW_PREFIX}|g" \ + -i ${f} + done +} + +package_pyside-common() { + pkgdesc="Provides LGPL Qt bindings for Python and related tools for binding generation (Common files)(mingw-w64)" + + cd ${srcdir}/build-${MINGW_CHOST}-python3/sources/pyside + make DESTDIR=${pkgdir} install + + rm -rf ${pkgdir}${MINGW_PREFIX}/bin + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/python* + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/libpyside* + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig + rm ${pkgdir}${MINGW_PREFIX}/lib/cmake/PySide-${pkgver}/PySideConfig*python*.cmake + + fix_paths +} + +package_python2-pyside() { + pkgdesc="Provides LGPL Qt bindings for Python and related tools for binding generation (Python2)(mingw-w64)" + makedepends=("${MINGW_PACKAGE_PREFIX}-pyside-common" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python2-shiboken" + "${MINGW_PACKAGE_PREFIX}-qt4") + + cd ${srcdir}/build-${MINGW_CHOST}-python2/sources/pyside + make DESTDIR=${pkgdir} install + + #install -Dm644 PySideConfig-python2.7.cmake ${pkgdir}${MINGW_PREFIX}/lib/cmake/PySide-${pkgver}/ + mv ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/pyside{,-py2}.pc + + rm -rf ${pkgdir}${MINGW_PREFIX}/{include,share} + rm ${pkgdir}${MINGW_PREFIX}/lib/cmake/PySide-${pkgver}/PySideConfigVersion.cmake + rm ${pkgdir}${MINGW_PREFIX}/lib/cmake/PySide-${pkgver}/PySideConfig.cmake + + fix_paths +} + +package_python3-pyside() { + pkgdesc="Provides LGPL Qt bindings for Python and related tools for binding generation (Python3)(mingw-w64)" + makedepends=("${MINGW_PACKAGE_PREFIX}-pyside-common" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python3-shiboken" + "${MINGW_PACKAGE_PREFIX}-qt4") + + cd ${srcdir}/build-${MINGW_CHOST}-python3/sources/pyside + make DESTDIR=${pkgdir} install + + rm -rf ${pkgdir}${MINGW_PREFIX}/{include,share} + rm ${pkgdir}${MINGW_PREFIX}/lib/cmake/PySide-${pkgver}/PySideConfigVersion.cmake + rm ${pkgdir}${MINGW_PREFIX}/lib/cmake/PySide-${pkgver}/PySideConfig.cmake + + fix_paths +} + +# Wrappers +package_mingw-w64-i686-pyside-common() { + package_pyside-common +} + +package_mingw-w64-i686-python2-pyside() { + package_python2-pyside +} + +package_mingw-w64-i686-python3-pyside() { + package_python3-pyside +} + +package_mingw-w64-x86_64-pyside-common() { + package_pyside-common +} + +package_mingw-w64-x86_64-python2-pyside() { + package_python2-pyside +} + +package_mingw-w64-x86_64-python3-pyside() { + package_python3-pyside +} diff --git a/mingw-w64-pyside-qt4/pyside-i686.install b/mingw-w64-pyside-qt4/pyside-i686.install new file mode 100644 index 0000000000..40f180a3df --- /dev/null +++ b/mingw-w64-pyside-qt4/pyside-i686.install @@ -0,0 +1,14 @@ +post_install() { + cd mingw32 + local _prefix=$(pwd -W) + cd - + for f in mingw32/lib/cmake/PySide-*/*.cmake; do + # Do it twice if we already process one of the files + sed -e "s|${_prefix}|/mingw32|g" -i ${f} + sed -e "s|/mingw32|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-pyside-qt4/pyside-x86_64.install b/mingw-w64-pyside-qt4/pyside-x86_64.install new file mode 100644 index 0000000000..d5ca01db90 --- /dev/null +++ b/mingw-w64-pyside-qt4/pyside-x86_64.install @@ -0,0 +1,14 @@ +post_install() { + cd mingw64 + local _prefix=$(pwd -W) + cd - + for f in mingw64/lib/cmake/PySide-*/*.cmake; do + # Do it twice if we already process one of the files + sed -e "s|${_prefix}|/mingw64|g" -i ${f} + sed -e "s|/mingw64|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-pyside-qt4/pyside.patch b/mingw-w64-pyside-qt4/pyside.patch new file mode 100644 index 0000000000..c1a21fcdb8 --- /dev/null +++ b/mingw-w64-pyside-qt4/pyside.patch @@ -0,0 +1,57 @@ +--- PySide-1.2.2/sources/pyside/CMakeLists.txt.orig 2015-06-26 11:33:00.602600000 +0300 ++++ PySide-1.2.2/sources/pyside/CMakeLists.txt 2015-06-26 11:33:35.406200000 +0300 +@@ -31,6 +31,9 @@ + if(MSVC) + set(CMAKE_CXX_FLAGS "/Zc:wchar_t- /GR /EHsc /DNOCOLOR /DWIN32 /D_WINDOWS /D_SCL_SECURE_NO_WARNINGS") + else() ++ if(MINGW) ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWIN32 -D_WINDOWS") ++ endif() + if(CMAKE_HOST_UNIX AND NOT CYGWIN) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fvisibility=hidden -Wno-strict-aliasing") + endif() +--- PySide-1.2.2/sources/pyside/cmake/Macros/PySideModules.cmake.orig 2015-06-26 11:55:02.330400000 +0300 ++++ PySide-1.2.2/sources/pyside/cmake/Macros/PySideModules.cmake 2015-06-26 12:29:31.912800000 +0300 +@@ -22,8 +22,8 @@ + add_custom_command(OUTPUT ${${module_sources}} + COMMAND ${SHIBOKEN_BINARY} ${GENERATOR_EXTRA_FLAGS} + ${pyside_BINARY_DIR}/pyside_global.h +- --include-paths=${pyside_SOURCE_DIR}${PATH_SEP}${QT_INCLUDE_DIR} +- --typesystem-paths=${pyside_SOURCE_DIR}${PATH_SEP}${${module_typesystem_path}} ++ --include-paths="${pyside_SOURCE_DIR}${PATH_SEP}${QT_INCLUDE_DIR}" ++ --typesystem-paths="${pyside_SOURCE_DIR}${PATH_SEP}${${module_typesystem_path}}" + --output-directory=${CMAKE_CURRENT_BINARY_DIR} + --license-file=${CMAKE_CURRENT_SOURCE_DIR}/../licensecomment.txt + ${typesystem_path} +--- PySide-1.2.2/sources/pyside/PySide/QtCore/CMakeLists.txt.orig 2015-06-26 18:45:26.695000000 +0300 ++++ PySide-1.2.2/sources/pyside/PySide/QtCore/CMakeLists.txt 2015-06-26 18:45:55.158800000 +0300 +@@ -42,7 +42,7 @@ + ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/point_wrapper.cpp + ) + else() +- set(SPECIFIC_OS_FILES "") ++ set(SPECIFIC_OS_FILES ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsystemsemaphore_wrapper.cpp) + endif() + + set(QtCore_SRC +@@ -111,7 +111,6 @@ + ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsocketnotifier_wrapper.cpp + ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsysinfo_wrapper.cpp + ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsystemlocale_wrapper.cpp +-${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsystemsemaphore_wrapper.cpp + ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qt_wrapper.cpp + ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qtconcurrent_wrapper.cpp + ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qtcore_module_wrapper.cpp +--- PySide-1.2.2/sources/pyside/tests/pysidetest/CMakeLists.txt.orig 2015-06-26 12:32:49.376400000 +0300 ++++ PySide-1.2.2/sources/pyside/tests/pysidetest/CMakeLists.txt 2015-06-26 12:33:01.903200000 +0300 +@@ -36,8 +36,8 @@ + add_custom_command(OUTPUT ${testbinding_SRC} + COMMAND ${SHIBOKEN_BINARY} ${GENERATOR_EXTRA_FLAGS} + ${CMAKE_CURRENT_SOURCE_DIR}/pysidetest_global.h +- --include-paths=${pyside_BINARY_DIR}${PATH_SEP}${CMAKE_CURRENT_SOURCE_DIR}${PATH_SEP}${QT_INCLUDE_DIR}${PATH_SEP}${QT_QTCORE_INCLUDE_DIR}${PATH_SEP}${QT_QTGUI_INCLUDE_DIR} +- --typesystem-paths=${CMAKE_CURRENT_SOURCE_DIR}${PATH_SEP}${pyside_SOURCE_DIR}${PATH_SEP}${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR} ++ --include-paths="${pyside_BINARY_DIR}${PATH_SEP}${CMAKE_CURRENT_SOURCE_DIR}${PATH_SEP}${QT_INCLUDE_DIR}${PATH_SEP}${QT_QTCORE_INCLUDE_DIR}${PATH_SEP}${QT_QTGUI_INCLUDE_DIR}" ++ --typesystem-paths="${CMAKE_CURRENT_SOURCE_DIR}${PATH_SEP}${pyside_SOURCE_DIR}${PATH_SEP}${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}" + --output-directory=${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_pysidetest.xml + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/mingw-w64-pyside-tools-qt4/PKGBUILD b/mingw-w64-pyside-tools-qt4/PKGBUILD new file mode 100644 index 0000000000..531da63fb1 --- /dev/null +++ b/mingw-w64-pyside-tools-qt4/PKGBUILD @@ -0,0 +1,123 @@ +# Maintainer: Alexey Pavlov +# Contributor: Xin Sun + +_realname=pyside-tools +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-common ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}) +pkgver=1.2.2 +pkgrel=1 +pkgdesc="Python bindings for Qt4 (mingw-w64)" +arch=('any') +url="http://pyside.github.io/docs/pyside/" +license=("LGPL") +source=(https://pypi.python.org/packages/source/P/PySide/PySide-${pkgver}.tar.gz) +md5sums=('c45bc400c8a86d6b35f34c29e379e44d') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-python2-pyside" + "${MINGW_PACKAGE_PREFIX}-python3-pyside" + "${MINGW_PACKAGE_PREFIX}-qt4") +options=('staticlibs' 'strip') + +prepare() { + cd ${srcdir}/PySide-${pkgver} +} + +build() { + for pyv in python2 python3; do + local _conf= + if [ "${pyv}" = "python2" ]; then + _conf="-DPYTHON_SUFFIX=-python2.7 -DPYTHON_BASENAME=-python2.7" + fi + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf PySide-${pkgver} build-${MINGW_CHOST}-${pyv} + pushd ${srcdir}/build-${MINGW_CHOST}-${pyv}/sources/pyside-tools > /dev/null + + export MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX" + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + ${_conf} \ + -DCMAKE_BUILD_TYPE=RELEASE \ + + make + + popd > /dev/null + done + +} + +package_pyside-tools-common() { + pkgdesc="PySide lupdate, rcc, and uic development tools (Common Files) (mingw-w64)" + depends=("${MINGW_PACKAGE_PREFIX}-qt4") + + cd ${srcdir}/build-${MINGW_CHOST}-python3/sources/pyside-tools + make DESTDIR=${pkgdir} install + + rm -rf "${pkgdir}${MINGW_PREFIX}"/lib + rm -f "${pkgdir}${MINGW_PREFIX}"/bin/pyside-uic + rm -f "${pkgdir}${MINGW_PREFIX}"/share/man/man1/pyside-uic* +} + +package_python2-pyside-tools() { + pkgdesc="PySide lupdate, rcc, and uic development tools (for Python 2) (mingw-w64)" + makedepends=("${MINGW_PACKAGE_PREFIX}-pyside-tools-common" + "${MINGW_PACKAGE_PREFIX}-python2-pyside") + + cd ${srcdir}/build-${MINGW_CHOST}-python2/sources/pyside-tools + make DESTDIR=${pkgdir} install + + find "${pkgdir}${MINGW_PREFIX}" -type f -exec \ + sed -i -e '1 s|^#! *${MINGW_PREFIX}/bin/python[0-9.]*|#!${MINGW_PREFIX}/bin/python2|' \ + -e '1 s|^#! *${MINGW_PREFIX}/bin/env python[0-9.]*|#!${MINGW_PREFIX}/bin/env python2|' {} + + + mv "${pkgdir}${MINGW_PREFIX}"/bin/{,python2-}pyside-uic + mv "${pkgdir}${MINGW_PREFIX}"/share/man/man1/{,python2-}pyside-uic.1 + + rm -rf "${pkgdir}${MINGW_PREFIX}"/lib/python2*/site-packages/pysideuic/{port_v3,pyside-uic.1} + rm -f "${pkgdir}${MINGW_PREFIX}"/bin/pyside-{lupdate,rcc} + rm -f "${pkgdir}${MINGW_PREFIX}"/share/man/man1/pyside-{lupdate,rcc}* + + ${MINGW_PREFIX}/bin/python2 -m compileall "${pkgdir}${MINGW_PREFIX}"/lib/python2*/site-packages/pysideuic/ + ${MINGW_PREFIX}/bin/python2 -O -m compileall "${pkgdir}${MINGW_PREFIX}"/lib/python2*/site-packages/pysideuic/ +} + +package_python3-pyside-tools() { + pkgdesc="PySide lupdate, rcc, and uic development tools (for Python 3) (mingw-w64)" + makedepends=("${MINGW_PACKAGE_PREFIX}-pyside-tools-common" + "${MINGW_PACKAGE_PREFIX}-python3-pyside") + + cd ${srcdir}/build-${MINGW_CHOST}-python3/sources/pyside-tools + make DESTDIR=${pkgdir} install + + rm -rf "${pkgdir}${MINGW_PREFIX}"/lib/python3*/site-packages/pysideuic/{port_v2,pyside-uic.1} + rm -f "${pkgdir}${MINGW_PREFIX}"/bin/pyside-{lupdate,rcc} + rm -f "${pkgdir}${MINGW_PREFIX}"/share/man/man1/pyside-{lupdate,rcc}* + + ${MINGW_PREFIX}/bin/python3 -m compileall "${pkgdir}${MINGW_PREFIX}"/lib/python3*/site-packages/pysideuic/ + ${MINGW_PREFIX}/bin/python3 -O -m compileall "${pkgdir}${MINGW_PREFIX}"/lib/python3*/site-packages/pysideuic/ +} + +# Wrappers +package_mingw-w64-i686-pyside-tools-common() { + package_pyside-tools-common +} + +package_mingw-w64-i686-python2-pyside-tools() { + package_python2-pyside-tools +} + +package_mingw-w64-i686-python3-pyside-tools() { + package_python3-pyside-tools +} + +package_mingw-w64-x86_64-pyside-tools-common() { + package_pyside-tools-common +} + +package_mingw-w64-x86_64-python2-pyside-tools() { + package_python2-pyside-tools +} + +package_mingw-w64-x86_64-python3-pyside-tools() { + package_python3-pyside-tools +} diff --git a/mingw-w64-shiboken-qt4/PKGBUILD b/mingw-w64-shiboken-qt4/PKGBUILD new file mode 100644 index 0000000000..4384455730 --- /dev/null +++ b/mingw-w64-shiboken-qt4/PKGBUILD @@ -0,0 +1,156 @@ +# Maintainer: Alexey Pavlov +# Contributor: Xin Sun + +_realname=shiboken +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname} ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}) +pkgver=1.2.2 +pkgrel=1 +arch=('any') +url="http://pyside.github.io/docs/pyside/" +license=("LGPL") +install=${_realname}-${CARCH}.install +source=(https://pypi.python.org/packages/source/P/PySide/PySide-${pkgver}.tar.gz + shiboken.patch) +md5sums=('c45bc400c8a86d6b35f34c29e379e44d' + 'ae1f4fb9f824adb3246fbfda2e0e577e') +makedepends=("${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-qt4" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake") +options=('staticlibs' 'strip') + +prepare() { + cd ${srcdir}/PySide-${pkgver} + patch -p1 -i ${srcdir}/shiboken.patch +} + +build() { + for pyv in python2 python3; do + local _conf= + if [ "${pyv}" = "python3" ]; then + _conf="-DUSE_PYTHON3=yes" + fi + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf PySide-${pkgver} build-${MINGW_CHOST}-${pyv} + pushd ${srcdir}/build-${MINGW_CHOST}-${pyv}/sources/shiboken > /dev/null + + export MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX" + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + ${_conf} \ + -DCMAKE_BUILD_TYPE=RELEASE \ + -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/${pyv}.exe \ + + make + + popd > /dev/null + done + +} + +fix_paths() { + local prefixwin=$(cygpath -am ${MINGW_PREFIX}) + local prefixinst=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) + + local _files=$(find ${pkgdir}${MINGW_PREFIX}/lib/cmake/Shiboken-${pkgver} -type f -iname "*.cmake" -o -iname "*.pc") + for f in ${_files}; do + plain "Patching ${f}..." + sed -e "s|${prefixwin}|${MINGW_PREFIX}|g" \ + -e "s|${prefixinst}|${MINGW_PREFIX}|g" \ + -i ${f} + done +} + +package_shiboken() { + pkgdesc="CPython bindings generator for C++ libraries (mingw-w64)" + makedepends=("${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-qt4") + + cd ${srcdir}/build-${MINGW_CHOST}-python3/sources/shiboken + make DESTDIR=${pkgdir} install + + cd ${srcdir}/build-${MINGW_CHOST}-python2/sources/shiboken/data + #install -Dm644 ShibokenConfig-python2.7.cmake ${pkgdir}${MINGW_PREFIX}/lib/cmake/Shiboken-${pkgver}/ + #install -Dm644 shiboken.pc ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/Shiboken-py2.pc + + rm ${pkgdir}${MINGW_PREFIX}/bin/*.dll + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/python* + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/libshiboken* + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig + rm ${pkgdir}${MINGW_PREFIX}/lib/cmake/Shiboken-${pkgver}/ShibokenConfig*python*.cmake + + fix_paths +} + +package_python2-shiboken() { + pkgdesc="Support library for Python2 bindings (mingw-w64)" + makedepends=("${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-shiboken" + "${MINGW_PACKAGE_PREFIX}-qt4") + + cd ${srcdir}/build-${MINGW_CHOST}-python2/sources/shiboken + make DESTDIR=${pkgdir} install + + cd data + install -Dm644 ShibokenConfig-python2.7.cmake ${pkgdir}${MINGW_PREFIX}/lib/cmake/Shiboken-${pkgver}/ + mv ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/shiboken{,-py2}.pc + + rm ${pkgdir}${MINGW_PREFIX}/bin/*.exe + rm -rf ${pkgdir}${MINGW_PREFIX}/{include,share} + rm ${pkgdir}${MINGW_PREFIX}/lib/cmake/Shiboken-${pkgver}/ShibokenConfigVersion.cmake + rm ${pkgdir}${MINGW_PREFIX}/lib/cmake/Shiboken-${pkgver}/ShibokenConfig.cmake + + fix_paths +} + +package_python3-shiboken() { + pkgdesc="Support library for Python3 bindings (mingw-w64)" + makedepends=("${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-shiboken" + "${MINGW_PACKAGE_PREFIX}-qt4") + + cd ${srcdir}/build-${MINGW_CHOST}-python3/sources/shiboken + make DESTDIR=${pkgdir} install + + rm ${pkgdir}${MINGW_PREFIX}/bin/*.exe + rm -rf ${pkgdir}${MINGW_PREFIX}/{include,share} + rm ${pkgdir}${MINGW_PREFIX}/lib/cmake/Shiboken-${pkgver}/ShibokenConfigVersion.cmake + rm ${pkgdir}${MINGW_PREFIX}/lib/cmake/Shiboken-${pkgver}/ShibokenConfig.cmake + + fix_paths +} + +# Wrappers +package_mingw-w64-i686-shiboken() { + package_shiboken +} + +package_mingw-w64-i686-python2-shiboken() { + package_python2-shiboken +} + +package_mingw-w64-i686-python3-shiboken() { + package_python3-shiboken +} + +package_mingw-w64-x86_64-shiboken() { + package_shiboken +} + +package_mingw-w64-x86_64-python2-shiboken() { + package_python2-shiboken +} + +package_mingw-w64-x86_64-python3-shiboken() { + package_python3-shiboken +} diff --git a/mingw-w64-shiboken-qt4/shiboken-i686.install b/mingw-w64-shiboken-qt4/shiboken-i686.install new file mode 100644 index 0000000000..d5c739ecc5 --- /dev/null +++ b/mingw-w64-shiboken-qt4/shiboken-i686.install @@ -0,0 +1,14 @@ +post_install() { + cd mingw32 + local _prefix=$(pwd -W) + cd - + for f in mingw32/lib/cmake/Shiboken-*/*.cmake; do + # Do sed twice if we already process one of the files + sed -e "s|${_prefix}|/mingw32|g" -i ${f} + sed -e "s|/mingw32|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-shiboken-qt4/shiboken-x86_64.install b/mingw-w64-shiboken-qt4/shiboken-x86_64.install new file mode 100644 index 0000000000..6c5578ead7 --- /dev/null +++ b/mingw-w64-shiboken-qt4/shiboken-x86_64.install @@ -0,0 +1,14 @@ +post_install() { + cd mingw64 + local _prefix=$(pwd -W) + cd - + for f in mingw64/lib/cmake/Shiboken-*/*.cmake; do + # Do sed twice if we already process one of the files + sed -e "s|${_prefix}|/mingw64|g" -i ${f} + sed -e "s|/mingw64|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-shiboken-qt4/shiboken.patch b/mingw-w64-shiboken-qt4/shiboken.patch new file mode 100644 index 0000000000..b60a4fa2c7 --- /dev/null +++ b/mingw-w64-shiboken-qt4/shiboken.patch @@ -0,0 +1,68 @@ +--- PySide-1.2.2/sources/shiboken/CMakeLists.txt.orig 2015-06-26 11:25:44.610800000 +0300 ++++ PySide-1.2.2/sources/shiboken/CMakeLists.txt 2015-06-26 11:27:46.225600000 +0300 +@@ -49,6 +49,9 @@ + if(MSVC) + set(CMAKE_CXX_FLAGS "/Zc:wchar_t- /GR /EHsc /DWIN32 /D_WINDOWS /D_SCL_SECURE_NO_WARNINGS") + else() ++ if(MINGW) ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWIN32 -D_WINDOWS") ++ endif() + if(CMAKE_HOST_UNIX AND NOT CYGWIN) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fvisibility=hidden -Wno-strict-aliasing") + endif() +--- PySide-1.2.2/sources/shiboken/shibokenmodule/CMakeLists.txt.orig 2015-06-26 07:00:25.341400000 +0300 ++++ PySide-1.2.2/sources/shiboken/shibokenmodule/CMakeLists.txt 2015-06-26 07:00:39.974200000 +0300 +@@ -9,7 +9,7 @@ + ) + + add_custom_command(OUTPUT ${sample_SRC} +-COMMAND ${shibokengenerator_BINARY_DIR}/shiboken --project-file=${CMAKE_CURRENT_BINARY_DIR}/shibokenmodule.txt ${GENERATOR_EXTRA_FLAGS} ++COMMAND ${shibokengenerator_BINARY_DIR}/shiboken.exe --project-file=${CMAKE_CURRENT_BINARY_DIR}/shibokenmodule.txt ${GENERATOR_EXTRA_FLAGS} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Running generator for 'shiboken'..." + ) +--- PySide-1.2.2/sources/shiboken/tests/libsample/objecttype.h.orig 2015-06-26 10:11:42.262200000 +0300 ++++ PySide-1.2.2/sources/shiboken/tests/libsample/objecttype.h 2015-06-26 10:15:29.335800000 +0300 +@@ -70,7 +70,7 @@ + Str objectName() const; + void setObjectName(const Str& name); + +- inline unsigned long identifier() const { return reinterpret_cast(this); } ++ inline uintptr_t identifier() const { return reinterpret_cast(this); } + + bool causeEvent(Event::EventType eventType); + +--- PySide-1.2.2/sources/shiboken/tests/libsample/transform.cpp.orig 2015-06-26 07:02:00.766600000 +0300 ++++ PySide-1.2.2/sources/shiboken/tests/libsample/transform.cpp 2015-06-26 07:02:07.271800000 +0300 +@@ -27,7 +27,9 @@ + #ifdef _WIN32 + #include + #include ++#ifndef __MINGW64_VERSION_MAJOR + static inline bool isfinite(double a) { return _finite(a); } ++#endif + #else + #include + #endif +--- PySide-1.2.2/sources/shiboken/libshiboken/sbkpython.h.orig 2015-06-26 08:56:26.421800000 +0300 ++++ PySide-1.2.2/sources/shiboken/libshiboken/sbkpython.h 2015-06-26 08:56:29.666600000 +0300 +@@ -51,7 +51,7 @@ + #define SBK_STR_NAME "str" + #define SBK_PyMethod_New(X, Y) PyMethod_New(X, Y, (PyObject*)Py_TYPE(Y)) + +- #define Py_hash_t long ++ #define Py_hash_t Py_ssize_t + #endif + + #endif +--- PySide-1.2.2/sources/shiboken/generator/shiboken/overloaddata.cpp.orig 2015-06-26 10:00:46.779800000 +0300 ++++ PySide-1.2.2/sources/shiboken/generator/shiboken/overloaddata.cpp 2015-06-26 10:02:01.441400000 +0300 +@@ -882,7 +882,7 @@ + + s << "}" << endl; + } else { +- QString argId = QString("arg_%1").arg((ulong)this); ++ QString argId = QString("arg_%1").arg((uintptr_t)this); + s << argId << ';' << endl; + + s << indent << '"' << argId << "\" [shape=\"plaintext\" style=\"filled,bold\" margin=\"0\" fontname=\"freemono\" fillcolor=\"white\" penwidth=1 "; From a40d397cdd1a35fdabf3a13ce7168d07ecbedbb3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 27 Jun 2015 10:23:48 +0300 Subject: [PATCH 1225/2060] cgal: Update to 4.6 --- mingw-w64-cgal/PKGBUILD | 36 ++--- mingw-w64-cgal/cgal-4.4-mingw.patch | 12 -- mingw-w64-cgal/convex_hull_fix.patch | 223 --------------------------- 3 files changed, 15 insertions(+), 256 deletions(-) delete mode 100644 mingw-w64-cgal/cgal-4.4-mingw.patch delete mode 100644 mingw-w64-cgal/convex_hull_fix.patch diff --git a/mingw-w64-cgal/PKGBUILD b/mingw-w64-cgal/PKGBUILD index 402cb3509a..403240dfef 100644 --- a/mingw-w64-cgal/PKGBUILD +++ b/mingw-w64-cgal/PKGBUILD @@ -2,52 +2,46 @@ _realname=cgal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.5.1 -pkgrel=3 -_pkgid=34139 +pkgver=4.6 +pkgrel=1 +_pkgid=34705 pkgdesc="Computational Geometry Algorithms Library (mingw-w64)" arch=('any') url="http://www.cgal.org" license=("LGPL, GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-eigen3" - "${MINGW_PACKAGE_PREFIX}-boost") + "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-mpfr" "${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-gmp") + "${MINGW_PACKAGE_PREFIX}-gmp" + "${MINGW_PACKAGE_PREFIX}-mpfr") optdepends=("${MINGW_PACKAGE_PREFIX}-eigen3: for some packages, see the CGAL manual" #"${MINGW_PACKAGE_PREFIX}qt4: for CGAL_Qt4" ) options=('strip' 'staticlibs') -source=(http://gforge.inria.fr/frs/download.php/$_pkgid/CGAL-$pkgver.tar.xz - cgal-4.4-mingw.patch - convex_hull_fix.patch +source=(http://gforge.inria.fr/frs/download.php/${_pkgid}/CGAL-${pkgver}.tar.xz msys2-relocate-cmake-config.patch) -sha1sums=('97c60d3b12727b4fbbcce45a0965941bb1d60cbe' - '1d2b06fe6faa0cb1ee748fa14f2de92f9e9e091f' - 'a847bc5aab43944429e7da62b5392347bac2fcd8' +sha1sums=('8f0f0351de319306fea7d61f32d6a25381a5310a' '3742f2bb189f6c53e66e6ba5562c28685f9d1a86') prepare() { - cd "${srcdir}"/CGAL-${pkgver%.*} - patch -p1 -i "${srcdir}"/cgal-4.4-mingw.patch - patch -p1 -i "${srcdir}"/convex_hull_fix.patch + cd "${srcdir}"/CGAL-${pkgver} patch -p1 -i "${srcdir}"/msys2-relocate-cmake-config.patch } build() { - mkdir $srcdir/build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ - cmake \ + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ - ../CGAL-${pkgver%.*} + ../CGAL-${pkgver} make } @@ -55,7 +49,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make install DESTDIR=${pkgdir} - MINGW_PREFIX_WIN=$(cygpath -m ${MINGW_PREFIX}) + local MINGW_PREFIX_WIN=$(cygpath -am ${MINGW_PREFIX}) sed -s "s|${MINGW_PREFIX_WIN}|\${RELOCATED_INSTALL_PREFIX}|g" -i "${pkgdir}"${MINGW_PREFIX}/lib/CGAL/CGALConfig.cmake sed -s "s|${MINGW_PREFIX}|\${RELOCATED_INSTALL_PREFIX}|g" -i "${pkgdir}"${MINGW_PREFIX}/lib/CGAL/CGALConfig.cmake } diff --git a/mingw-w64-cgal/cgal-4.4-mingw.patch b/mingw-w64-cgal/cgal-4.4-mingw.patch deleted file mode 100644 index fa6505f790..0000000000 --- a/mingw-w64-cgal/cgal-4.4-mingw.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur CGAL-4.4-orig/include/CGAL/sse2.h CGAL-4.4/include/CGAL/sse2.h ---- CGAL-4.4-orig/include/CGAL/sse2.h 2012-11-13 17:13:59.000000000 +0400 -+++ CGAL-4.4/include/CGAL/sse2.h 2014-06-28 19:05:29.078000000 +0400 -@@ -27,7 +27,7 @@ - - #include - --#if defined ( _MSC_VER ) -+#if defined ( _WIN32 ) - #define CGAL_ALIGN_16 __declspec(align(16)) - #elif defined( __GNU__ ) - #define CGAL_ALIGN_16 __attribute__((aligned(16))) diff --git a/mingw-w64-cgal/convex_hull_fix.patch b/mingw-w64-cgal/convex_hull_fix.patch deleted file mode 100644 index 19bc308838..0000000000 --- a/mingw-w64-cgal/convex_hull_fix.patch +++ /dev/null @@ -1,223 +0,0 @@ -diff -Naur --ignore-all-space CGAL-4.5-org/include/CGAL/convex_hull_3.h CGAL-4.5/include/CGAL/convex_hull_3.h ---- CGAL-4.5-org/include/CGAL/convex_hull_3.h 2015-01-07 21:08:53.260410300 +0100 -+++ CGAL-4.5/include/CGAL/convex_hull_3.h 2015-01-07 09:24:02.000000000 +0100 -@@ -69,7 +69,7 @@ - //FT is a floating point type and Kernel is a filtered kernel - template - struct Default_traits_for_Chull_3{ -- typedef Convex_hull_traits_3< typename Kernel_traits::Kernel > type; -+ typedef Convex_hull_traits_3< typename Kernel_traits::Kernel, Tag_true > type; - }; - - template -@@ -77,9 +77,9 @@ - typedef CGAL::Polyhedron_3 type; - }; - --template --struct Default_polyhedron_for_Chull_3 >{ -- typedef typename Convex_hull_traits_3::Polyhedron_3 type; -+template -+struct Default_polyhedron_for_Chull_3 >{ -+ typedef typename Convex_hull_traits_3::Polyhedron_3 type; - }; - - //utility class to select the right version of internal predicate Is_on_positive_side_of_plane_3 -@@ -129,10 +129,10 @@ - //interval arithmetic (the protector must be created before using this predicate) - //and in case of failure, exact arithmetic is used. - template --class Is_on_positive_side_of_plane_3,Tag_true>{ -+class Is_on_positive_side_of_plane_3,Tag_true>{ - typedef Simple_cartesian::Type> PK; - typedef Simple_cartesian CK; -- typedef Convex_hull_traits_3 Traits; -+ typedef Convex_hull_traits_3 Traits; - typedef typename Traits::Point_3 Point_3; - - Cartesian_converter to_CK; -@@ -312,12 +312,8 @@ - template - void coplanar_3_hull(InputIterator first, InputIterator beyond, - const Point_3& p1, const Point_3& p2, const Point_3& p3, -- Polyhedron_3& P, const Traits& traits) -+ Polyhedron_3& P, const Traits& /* traits */) - { -- typedef typename Traits::Vector_3 Vector_3; -- typedef typename Traits::Construct_vector_3 Construct_vector_3; -- typedef typename Traits::Orientation_3 Orientation_3; -- - typedef typename internal::Convex_hull_3::Projection_traits PTraits; - typedef typename PTraits::Traits_xy_3 Traits_xy_3; - typedef typename PTraits::Traits_yz_3 Traits_yz_3; -@@ -326,31 +322,26 @@ - std::list CH_2; - typedef typename std::list::iterator CH_2_iterator; - -- Construct_vector_3 vector_3 = traits.construct_vector_3_object(); -- Orientation_3 orientation = traits.orientation_3_object(); -- Vector_3 v1 = vector_3(p1,p2); -- Vector_3 v2 = vector_3(p1,p3); -- -- Vector_3 vx = vector_3(1,0,0); -- -- -- -- if ( orientation(v1, v2, vx) != COPLANAR ) -+ Traits_xy_3 traits_xy; -+ typename Traits_xy_3::Left_turn_2 left_turn_in_xy = traits_xy.left_turn_2_object(); -+ if ( left_turn_in_xy(p1,p2,p3) || left_turn_in_xy(p2,p1,p3) ) - convex_hull_points_2( first, beyond, - std::back_inserter(CH_2), -- Traits_yz_3() ); -+ traits_xy ); - else{ -- Vector_3 vy = vector_3(0,1,0); -- if ( orientation(v1,v2,vy) != COPLANAR ) -+ Traits_yz_3 traits_yz; -+ typename Traits_yz_3::Left_turn_2 left_turn_in_yz = traits_yz.left_turn_2_object(); -+ if ( left_turn_in_yz(p1,p2,p3) || left_turn_in_yz(p2,p1,p3) ) - convex_hull_points_2( first, beyond, - std::back_inserter(CH_2), -- Traits_xz_3() ); -+ traits_yz ); - else{ -- CGAL_assertion_code( Vector_3 vz = vector_3(0,0,1); ) -- CGAL_assertion( orientation(v1,v2,vz) != COPLANAR ); -+ Traits_xz_3 traits_xz; -+ CGAL_assertion_code( typename Traits_xz_3::Left_turn_2 left_turn_in_xz = traits_xz.left_turn_2_object(); ) -+ CGAL_assertion( left_turn_in_xz(p1,p2,p3) || left_turn_in_xz(p2,p1,p3) ); - convex_hull_points_2( first, beyond, - std::back_inserter(CH_2), -- Traits_xy_3() ); -+ traits_xz ); - } - } - -diff -Naur --ignore-all-space CGAL-4.5-org/include/CGAL/Convex_hull_traits_3.h CGAL-4.5/include/CGAL/Convex_hull_traits_3.h ---- CGAL-4.5-org/include/CGAL/Convex_hull_traits_3.h 2015-01-07 21:08:53.188407300 +0100 -+++ CGAL-4.5/include/CGAL/Convex_hull_traits_3.h 2015-01-07 09:24:02.000000000 +0100 -@@ -27,6 +27,8 @@ - #include - #include - #include -+#include -+#include - - namespace CGAL { - template < class R_ > -@@ -53,18 +55,40 @@ - - }; - -+template -+struct Point_triple_converter{ -+ // Point_triple_less_signed_distance_to_plane_3 is only working with a Cartesian Kernel -+ // so I hardcoded the converter type -+ CGAL::Cartesian_converter base; -+ -+ Point_triple -+ operator()(const Point_triple& t) const{ -+ return Point_triple( -+ base(t.p()), -+ base(t.q()), -+ base(t.r()) ); -+ } -+ -+ typename To::Point_3 -+ operator()(const typename From::Point_3& t) const{ -+ return base(t); -+ } -+}; -+ - template - class Point_triple_has_on_positive_side_3 { - - public: - typedef typename K::Point_3 Point_3; -- typedef typename K::Plane_3 Plane_3; -+ typedef Point_triple Plane_3; - bool - operator()( const Plane_3& pl, const Point_3& p) const - { - typename K::Orientation_3 o; - return ( o(pl.p(), pl.q(), pl.r(), p) == CGAL::POSITIVE ); - } -+ -+ typedef bool result_type; - }; - template - class Point_triple_construct_orthogonal_vector_3 -@@ -103,12 +127,12 @@ - } - }; - --template -+template - class Point_triple_less_signed_distance_to_plane_3 - { - public: - typedef typename K::Point_3 Point_3; -- typedef typename K::Plane_3 Plane_3; -+ typedef Point_triple Plane_3; - - typedef bool result_type; - -@@ -135,14 +159,39 @@ - typedef typename GT::Point_3 Point_2; - }; - -+template -+struct Convex_hull_traits_base_3 { -+ typedef Point_triple_has_on_positive_side_3 Has_on_positive_side_3; - -+ typedef Point_triple_less_signed_distance_to_plane_3 -+ Less_signed_distance_to_plane_3; -+}; - - template --class Convex_hull_traits_3 -+struct Convex_hull_traits_base_3{ -+ typedef Filtered_predicate< -+ Point_triple_has_on_positive_side_3< typename R_::Exact_kernel_rt >, -+ Point_triple_has_on_positive_side_3< typename R_::Approximate_kernel >, -+ Point_triple_converter, -+ Point_triple_converter -+ > Has_on_positive_side_3; -+ -+ typedef Filtered_predicate< -+ Point_triple_less_signed_distance_to_plane_3< typename R_::Exact_kernel_rt >, -+ Point_triple_less_signed_distance_to_plane_3< typename R_::Approximate_kernel >, -+ Point_triple_converter, -+ Point_triple_converter -+ > Less_signed_distance_to_plane_3; -+}; -+ -+ -+template -+class Convex_hull_traits_3 : -+ public Convex_hull_traits_base_3 - { - public: - typedef R_ R; -- typedef Convex_hull_traits_3 Self; -+ typedef Convex_hull_traits_3 Self; - typedef typename R::Point_3 Point_3; - typedef typename R::Segment_3 Segment_3; - typedef typename R::Triangle_3 Triangle_3; -@@ -172,10 +221,12 @@ - typedef typename R::Collinear_3 Collinear_3; - typedef typename R::Coplanar_3 Coplanar_3; - typedef typename R::Less_distance_to_point_3 Less_distance_to_point_3; -- typedef Point_triple_has_on_positive_side_3 Has_on_positive_side_3; - -- typedef Point_triple_less_signed_distance_to_plane_3 -- Less_signed_distance_to_plane_3; -+ typedef typename Convex_hull_traits_base_3 -+ ::Has_on_positive_side_3 Has_on_positive_side_3; -+ -+ typedef typename Convex_hull_traits_base_3 -+ ::Less_signed_distance_to_plane_3 Less_signed_distance_to_plane_3; - - // required for degenerate case of all points coplanar - typedef CGAL::Projection_traits_xy_3 Traits_xy_3; From d8e7c50a39c759cacef2e0ebb27556083c733e41 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 27 Jun 2015 10:34:41 +0300 Subject: [PATCH 1226/2060] libuv: Rename source archive on download. --- mingw-w64-libuv/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libuv/PKGBUILD b/mingw-w64-libuv/PKGBUILD index ef51257dcc..9809e7410d 100644 --- a/mingw-w64-libuv/PKGBUILD +++ b/mingw-w64-libuv/PKGBUILD @@ -12,18 +12,19 @@ license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') -source=("https://github.com/libuv/libuv/archive/v$pkgver.tar.gz") +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/libuv/libuv/archive/v${pkgver}.tar.gz") sha256sums=('f558ede285878d6a69f6a6d43b5df0241f3c35d62ac989477bdbd418badd83d7') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "$srcdir/${_realname}-${pkgver}" ./autogen.sh } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} @@ -32,7 +33,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -D -m644 "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE } From 3279ffbebe831fe28275445d495dec8890b15378 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 27 Jun 2015 10:48:35 +0300 Subject: [PATCH 1227/2060] wslay: Rename source archive on download. --- mingw-w64-wslay/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-wslay/PKGBUILD b/mingw-w64-wslay/PKGBUILD index 5a7d577239..bdcd6c2a5c 100644 --- a/mingw-w64-wslay/PKGBUILD +++ b/mingw-w64-wslay/PKGBUILD @@ -11,15 +11,16 @@ license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') -source=("https://github.com/tatsuhiro-t/wslay/archive/release-$pkgver.tar.gz") +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/tatsuhiro-t/wslay/archive/release-${pkgver}.tar.gz") sha256sums=('874c4a6aa15b596846ff3a3ef848b8a6e6f4ca579a1657df9b318a06ac6c79a6') prepare() { - cd "$srcdir/${_realname}-release-$pkgver" + cd "${srcdir}/${_realname}-release-${pkgver}" autoreconf -fi } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" "${srcdir}"/${_realname}-release-${pkgver}/configure \ @@ -31,5 +32,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" -C lib install + make DESTDIR="${pkgdir}" -C lib install } From 72ea16684aa2a886f367f3bddf9dfbeb5d1e08e8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 27 Jun 2015 11:29:11 +0300 Subject: [PATCH 1228/2060] evince, edit: Change download URL. Put variables into braces. --- mingw-w64-evince/PKGBUILD | 9 ++++++--- mingw-w64-gedit/PKGBUILD | 7 ++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index 55a78de6cc..e6427dd5c7 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -23,6 +23,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "libtool" "automake-wrapper" "autoconf" + "gtk-doc" "intltool" "itstool" "gettext-devel" @@ -30,7 +31,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" license=("GPL 2") url="http://www.gnome.org" install=evince-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-give-cc-to-gir-scanner.mingw.patch) sha256sums=('06ff75065b2a30cd588c402f6bd2ea88ee3166181805e0cc00bd54f71dbf6130' '2b704ea359fd73fb6ee905868b4b61246bb143cf783d7f970425a5236daa0686') @@ -44,9 +45,11 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/share/pkgconfig" \ ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -62,8 +65,8 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-gedit/PKGBUILD b/mingw-w64-gedit/PKGBUILD index 6c08d3df4f..2617c64e38 100644 --- a/mingw-w64-gedit/PKGBUILD +++ b/mingw-w64-gedit/PKGBUILD @@ -25,7 +25,7 @@ options=('strip' 'staticlibs') license=("GPL") url="http://www.gnome.org" install=gedit-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz) +source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) sha256sums=('db60a9408711b00f3780f5f5b657e9f44722c88c683ba6e9f2b4885631f429aa') prepare() { @@ -35,6 +35,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -52,8 +53,8 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From d0ba625fa39cfd3f0b630897b654732a466b6d89 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Sat, 27 Jun 2015 12:35:01 +0100 Subject: [PATCH 1229/2060] h2o: use gnu funcions and patch socket in evloop --- ...nu_printf-and-gnu_scanf-in-mingw-w64.patch | 31 ++++++ ...re-socket-work-for-windows-on-evloop.patch | 105 ++++++++++++++++++ mingw-w64-h2o/PKGBUILD | 10 +- 3 files changed, 144 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-h2o/0009-use-gnu_printf-and-gnu_scanf-in-mingw-w64.patch create mode 100644 mingw-w64-h2o/0010-more-socket-work-for-windows-on-evloop.patch diff --git a/mingw-w64-h2o/0009-use-gnu_printf-and-gnu_scanf-in-mingw-w64.patch b/mingw-w64-h2o/0009-use-gnu_printf-and-gnu_scanf-in-mingw-w64.patch new file mode 100644 index 0000000000..750d3ef114 --- /dev/null +++ b/mingw-w64-h2o/0009-use-gnu_printf-and-gnu_scanf-in-mingw-w64.patch @@ -0,0 +1,31 @@ +From 9b5b5fd8d9a0e3fb6f5e0b3e37c84b3c9ffa73f9 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sat, 27 Jun 2015 12:13:52 +0100 +Subject: [PATCH 1/2] use gnu_printf and gnu_scanf in mingw-w64 + + +diff --git a/include/h2o/configurator.h b/include/h2o/configurator.h +index 16e96dd..db6277d 100644 +--- a/include/h2o/configurator.h ++++ b/include/h2o/configurator.h +@@ -119,7 +119,7 @@ int h2o_configurator_apply_commands(h2o_configurator_context_t *ctx, yoml_t *nod + * emits configuration error + */ + void h2o_configurator_errprintf(h2o_configurator_command_t *cmd, yoml_t *node, const char *reason, ...) +- __attribute__((format(printf, 3, 4))); ++ __attribute__((format(gnu_printf, 3, 4))); + /** + * interprets the configuration value using sscanf, or prints an error upon failure + * @param configurator configurator +@@ -128,7 +128,7 @@ void h2o_configurator_errprintf(h2o_configurator_command_t *cmd, yoml_t *node, c + * @return 0 if successful, -1 if not + */ + int h2o_configurator_scanf(h2o_configurator_command_t *cmd, yoml_t *node, const char *fmt, ...) +- __attribute__((format(scanf, 3, 4))); ++ __attribute__((format(gnu_scanf, 3, 4))); + /** + * interprets the configuration value and returns the index of the matched string within the candidate strings, or prints an error + * upon failure +-- +2.4.4 + diff --git a/mingw-w64-h2o/0010-more-socket-work-for-windows-on-evloop.patch b/mingw-w64-h2o/0010-more-socket-work-for-windows-on-evloop.patch new file mode 100644 index 0000000000..da34916daa --- /dev/null +++ b/mingw-w64-h2o/0010-more-socket-work-for-windows-on-evloop.patch @@ -0,0 +1,105 @@ +From 4227b19fd8fa974c7c59431974c92e318a3758b8 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sat, 27 Jun 2015 12:30:40 +0100 +Subject: [PATCH 2/2] more socket work for windows on evloop + + +diff --git a/include/h2o/socket.h b/include/h2o/socket.h +index 42cd530..5f3b6ef 100644 +--- a/include/h2o/socket.h ++++ b/include/h2o/socket.h +@@ -43,10 +43,10 @@ extern "C" { + #endif + #endif + +-#if OPENSSL_VERSION_NUMBER >= 0x10002000L ++#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(_WIN32) + #define H2O_USE_ALPN 1 + #define H2O_USE_NPN 1 +-#elif OPENSSL_VERSION_NUMBER >= 0x10001000L ++#elif OPENSSL_VERSION_NUMBER >= 0x10001000L && !defined(_WIN32) + #define H2O_USE_ALPN 0 + #define H2O_USE_NPN 1 + #else +diff --git a/lib/common/socket/evloop.c.h b/lib/common/socket/evloop.c.h +index fb859e1..899b16f 100644 +--- a/lib/common/socket/evloop.c.h ++++ b/lib/common/socket/evloop.c.h +@@ -44,7 +44,28 @@ writev(SOCKET fd, const struct iovec *iov, int iovcnt) { + return -1; + } + ++# undef socket_error ++# undef read_socket ++# undef close_socket ++# undef EINTR ++# define EINTR WSAEINTR ++# undef EWOULDBLOCK ++# define EWOULDBLOCK WSAEWOULDBLOCK ++# undef EAGAIN ++# define EAGAIN WSAEWOULDBLOCK ++# undef EINPROGRESS ++# define EINPROGRESS WSAEINPROGRESS ++ ++# define socket_error WSAGetLastError() ++# define read_socket(f, d, s) recv(f, d, s, 0) ++# define close_socket(f) closesocket(f) ++ + #else ++ ++# define socket_error errno ++# define read_socket(f, d, s) read(fd, d, s) ++# define close_socket(f) close(f) ++ + #include + #include + #include +@@ -140,10 +161,10 @@ static int on_read_core(int fd, h2o_buffer_t **input) + /* memory allocation failed */ + return -1; + } +- while ((rret = read(fd, buf.base, buf.len)) == -1 && errno == EINTR) ++ while ((rret = read_socket(fd, buf.base, buf.len)) == -1 && socket_error == EINTR) + ; + if (rret == -1) { +- if (errno == EAGAIN) ++ if (socket_error == EAGAIN) + break; + else + return -1; +@@ -182,10 +203,10 @@ static int write_core(int fd, h2o_iovec_t **bufs, size_t *bufcnt) + iovcnt = IOV_MAX; + if (*bufcnt < iovcnt) + iovcnt = (int)*bufcnt; +- while ((wret = writev(fd, (struct iovec *)*bufs, iovcnt)) == -1 && errno == EINTR) ++ while ((wret = writev(fd, (struct iovec *)*bufs, iovcnt)) == -1 && socket_error == EINTR) + ; + if (wret == -1) { +- if (errno != EAGAIN) ++ if (socket_error != EAGAIN) + return -1; + break; + } +@@ -269,7 +290,7 @@ void do_dispose_socket(h2o_socket_t *_sock) + evloop_do_on_socket_close(sock); + wreq_free_buffer_if_allocated(sock); + if (sock->fd != -1) { +- close(sock->fd); ++ close_socket(sock->fd); + sock->fd = -1; + } + sock->_flags = H2O_SOCKET_FLAG_IS_DISPOSED; +@@ -472,8 +493,8 @@ h2o_socket_t *h2o_socket_connect(h2o_loop_t *loop, struct sockaddr *addr, sockle + fcntl(fd, F_SETFL, O_NONBLOCK); + #endif + +- if (!(connect(fd, addr, addrlen) == 0 || errno == EINPROGRESS)) { +- close(fd); ++ if (!(connect(fd, addr, addrlen) == 0 || socket_error == EINPROGRESS)) { ++ close_socket(fd); + return NULL; + } + +-- +2.4.4 + diff --git a/mingw-w64-h2o/PKGBUILD b/mingw-w64-h2o/PKGBUILD index a7d8459257..db315bec86 100644 --- a/mingw-w64-h2o/PKGBUILD +++ b/mingw-w64-h2o/PKGBUILD @@ -21,7 +21,9 @@ source=("https://github.com/h2o/h2o/archive/v$pkgver.tar.gz" "0005-mman-hackery-for-windows.patch" "0006-import-time-code-from-mattn.patch" "0007-cloexec-hackery-for-windows.patch" - "0008-ignore-O_CLOEXEC-in-file.c-for-windows.patch") + "0008-ignore-O_CLOEXEC-in-file.c-for-windows.patch" + "0009-use-gnu_printf-and-gnu_scanf-in-mingw-w64.patch" + "0010-more-socket-work-for-windows-on-evloop.patch") sha256sums=('8668a7c70cdb59eef4e67889569a45e0cf75b95eec133bd30435879cbdb77fba' 'f79055e76acde4a8f7ab5518418f535ef92a4597cf34b6d70e9c652f9a31b05f' @@ -31,7 +33,9 @@ sha256sums=('8668a7c70cdb59eef4e67889569a45e0cf75b95eec133bd30435879cbdb77fba' '3ac1ad8388f65c463d8e2a097ba4087d02c2712b99b13d558dd708f6ae467f92' 'c8e9f0d2070a0ddcaeca36514e241dfeec193c36fc5a6b34dbbbf08de2be1043' '6e61ee523048d2fe120397cf8c1619c0f0a920355152d9852c37637abefdacc5' - '9f6f6728e5652fa0b0333c0b052f58310a9391603a0140ab2fb0e2bf3f46f269') + '9f6f6728e5652fa0b0333c0b052f58310a9391603a0140ab2fb0e2bf3f46f269' + 'fa0028f61d83e89ced9ef1fcbfdac8b87f8e6e60014e3871910a7cb3df3c31b7' + '866c9e8d3304f238c0cefae390d23453e9ab6931ec9a462cb116306116a43ee3') prepare() { cd "$srcdir/${_realname}-${pkgver}" @@ -43,6 +47,8 @@ prepare() { patch -p1 -i "${srcdir}"/0006-import-time-code-from-mattn.patch patch -p1 -i "${srcdir}"/0007-cloexec-hackery-for-windows.patch patch -p1 -i "${srcdir}"/0008-ignore-O_CLOEXEC-in-file.c-for-windows.patch + patch -p1 -i "${srcdir}"/0009-use-gnu_printf-and-gnu_scanf-in-mingw-w64.patch + patch -p1 -i "${srcdir}"/0010-more-socket-work-for-windows-on-evloop.patch } build() { From 1676af59b765bfa21b7d06e5dbd486b0d6517b56 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Sat, 27 Jun 2015 14:17:58 +0100 Subject: [PATCH 1230/2060] h2o: use mingw-w64 gmtime_r --- .../0006-fix-gmtime_r-for-mingw-w64.patch | 62 +++++++++++++++++++ .../0006-import-time-code-from-mattn.patch | 56 ----------------- mingw-w64-h2o/PKGBUILD | 6 +- 3 files changed, 65 insertions(+), 59 deletions(-) create mode 100644 mingw-w64-h2o/0006-fix-gmtime_r-for-mingw-w64.patch delete mode 100644 mingw-w64-h2o/0006-import-time-code-from-mattn.patch diff --git a/mingw-w64-h2o/0006-fix-gmtime_r-for-mingw-w64.patch b/mingw-w64-h2o/0006-fix-gmtime_r-for-mingw-w64.patch new file mode 100644 index 0000000000..479bd3ad75 --- /dev/null +++ b/mingw-w64-h2o/0006-fix-gmtime_r-for-mingw-w64.patch @@ -0,0 +1,62 @@ +From 32179f547aecfe594579f4797dc598f93c248cbc Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sat, 27 Jun 2015 13:40:38 +0100 +Subject: [PATCH] fix gmtime_r for mingw-w64 + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c847a2d..e473861 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -102,7 +102,7 @@ IF (NOT WSLAY_FOUND) + SET(WSLAY_LIBRARIES -lwslay) + ENDIF (NOT WSLAY_FOUND) + +-SET(CMAKE_C_FLAGS "-O2 -g -Wall -Wno-unused-function ${CMAKE_C_FLAGS} -DH2O_ROOT=\"\\\"${CMAKE_INSTALL_PREFIX}\\\"\"") ++SET(CMAKE_C_FLAGS "-O2 -g -Wall -Wno-unused-function ${CMAKE_C_FLAGS} -D_POSIX_C_SOURCE -DH2O_ROOT=\"\\\"${CMAKE_INSTALL_PREFIX}\\\"\"") + + INCLUDE_DIRECTORIES( + include +diff --git a/include/h2o/time_.h b/include/h2o/time_.h +index ab0db18..8098adc 100644 +--- a/include/h2o/time_.h ++++ b/include/h2o/time_.h +@@ -22,6 +22,9 @@ + #ifndef h2o__time_h + #define h2o__time_h + ++#ifndef _WIN32 ++#define _timezone localt.tm_gmtoff ++#endif + #include + + #ifdef __cplusplus +diff --git a/lib/common/time.c b/lib/common/time.c +index 5308848..42a7cbd 100644 +--- a/lib/common/time.c ++++ b/lib/common/time.c +@@ -139,7 +139,7 @@ void h2o_time2str_log(char *buf, time_t time) + { + struct tm localt; + localtime_r(&time, &localt); +- int gmt_off = (int)(localt.tm_gmtoff / 60); ++ int gmt_off = (int)(_timezone / 60); + int gmt_sign; + + if (gmt_off >= 0) { +diff --git a/lib/core/context.c b/lib/core/context.c +index 4ac9f97..7f3f27d 100644 +--- a/lib/core/context.c ++++ b/lib/core/context.c +@@ -173,7 +173,7 @@ void h2o_get_timestamp(h2o_context_t *ctx, h2o_mem_pool_t *pool, h2o_timestamp_t + if (ctx->_timestamp_cache.value != NULL) + h2o_mem_release_shared(ctx->_timestamp_cache.value); + ctx->_timestamp_cache.value = h2o_mem_alloc_shared(NULL, sizeof(h2o_timestamp_string_t), NULL); +- gmtime_r(&ctx->_timestamp_cache.tv_at.tv_sec, &gmt); ++ gmtime_r((time_t *)&ctx->_timestamp_cache.tv_at.tv_sec, &gmt); + h2o_time2str_rfc1123(ctx->_timestamp_cache.value->rfc1123, &gmt); + h2o_time2str_log(ctx->_timestamp_cache.value->log, ctx->_timestamp_cache.tv_at.tv_sec); + } +-- +2.4.4 + diff --git a/mingw-w64-h2o/0006-import-time-code-from-mattn.patch b/mingw-w64-h2o/0006-import-time-code-from-mattn.patch deleted file mode 100644 index 19390ada4b..0000000000 --- a/mingw-w64-h2o/0006-import-time-code-from-mattn.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 62ce49653c8ec2ed53428004efa212e83042e091 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Thu, 25 Jun 2015 23:56:02 +0100 -Subject: [PATCH 6/8] import time code from mattn - ---- - lib/common/time.c | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -diff --git a/lib/common/time.c b/lib/common/time.c -index 5308848..6b5e95c 100644 ---- a/lib/common/time.c -+++ b/lib/common/time.c -@@ -24,6 +24,26 @@ - #include - #include "h2o/time_.h" - -+#ifdef _WIN32 -+struct tm * -+localtime_r(const time_t *t, struct tm *r) { -+ struct tm *lt = localtime(t); -+ if (lt == NULL || r == NULL) -+ return NULL; -+ memcpy(r, lt, sizeof(struct tm)); -+ return r; -+} -+ -+struct tm * -+gmtime_r(const time_t *t, struct tm *r) { -+ struct tm *lt = gmtime(t); -+ if (lt == NULL || r == NULL) -+ return NULL; -+ memcpy(r, lt, sizeof(struct tm)); -+ return r; -+} -+#endif -+ - static char *emit_wday(char *dst, int wday) - { - memcpy(dst, ("SunMonTueWedThuFriSat") + wday * 3, 3); -@@ -139,7 +159,12 @@ void h2o_time2str_log(char *buf, time_t time) - { - struct tm localt; - localtime_r(&time, &localt); -+#ifdef _WIN32 -+ extern __declspec(dllimport) long _timezone; -+ int gmt_off = (int)(_timezone / 60); -+#else - int gmt_off = (int)(localt.tm_gmtoff / 60); -+#endif - int gmt_sign; - - if (gmt_off >= 0) { --- -2.4.4 - diff --git a/mingw-w64-h2o/PKGBUILD b/mingw-w64-h2o/PKGBUILD index db315bec86..dbc7b2e9cc 100644 --- a/mingw-w64-h2o/PKGBUILD +++ b/mingw-w64-h2o/PKGBUILD @@ -19,7 +19,7 @@ source=("https://github.com/h2o/h2o/archive/v$pkgver.tar.gz" "0003-add-readdir_r-emulation-for-windows.patch" "0004-serverutil-hackery-for-windows.patch" "0005-mman-hackery-for-windows.patch" - "0006-import-time-code-from-mattn.patch" + "0006-fix-gmtime_r-for-mingw-w64.patch" "0007-cloexec-hackery-for-windows.patch" "0008-ignore-O_CLOEXEC-in-file.c-for-windows.patch" "0009-use-gnu_printf-and-gnu_scanf-in-mingw-w64.patch" @@ -31,7 +31,7 @@ sha256sums=('8668a7c70cdb59eef4e67889569a45e0cf75b95eec133bd30435879cbdb77fba' 'e0527b97a8ba668bacf077d2540ae0184339af36571f347b0be81131310ce702' '8098ac07cddb81fabeb14d701ea9ffe94d3d25b9b3c6c6a97bade926b75f6458' '3ac1ad8388f65c463d8e2a097ba4087d02c2712b99b13d558dd708f6ae467f92' - 'c8e9f0d2070a0ddcaeca36514e241dfeec193c36fc5a6b34dbbbf08de2be1043' + '1c704e1e7465a895531dfa5b72ecaaa6da51088d0c3556455f93d96a1c614749' '6e61ee523048d2fe120397cf8c1619c0f0a920355152d9852c37637abefdacc5' '9f6f6728e5652fa0b0333c0b052f58310a9391603a0140ab2fb0e2bf3f46f269' 'fa0028f61d83e89ced9ef1fcbfdac8b87f8e6e60014e3871910a7cb3df3c31b7' @@ -44,7 +44,7 @@ prepare() { patch -p1 -i "${srcdir}"/0003-add-readdir_r-emulation-for-windows.patch patch -p1 -i "${srcdir}"/0004-serverutil-hackery-for-windows.patch patch -p1 -i "${srcdir}"/0005-mman-hackery-for-windows.patch - patch -p1 -i "${srcdir}"/0006-import-time-code-from-mattn.patch + patch -p1 -i "${srcdir}"/0006-fix-gmtime_r-for-mingw-w64.patch patch -p1 -i "${srcdir}"/0007-cloexec-hackery-for-windows.patch patch -p1 -i "${srcdir}"/0008-ignore-O_CLOEXEC-in-file.c-for-windows.patch patch -p1 -i "${srcdir}"/0009-use-gnu_printf-and-gnu_scanf-in-mingw-w64.patch From bf999bf38744b4d0f73c25d5fee75b8d435599f5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 28 Jun 2015 18:36:29 +0300 Subject: [PATCH 1231/2060] gcc: WIP updating to 5.1.0 --- mingw-w64-gcc/405-dwarf-regression.patch | 36 +++++++++++++ mingw-w64-gcc/PKGBUILD | 68 ++++++++++++++---------- mingw-w64-gcc/pr65882.patch | 66 +++++++++++++++++++++++ mingw-w64-gcc/pr66035.patch | 48 +++++++++++++++++ 4 files changed, 190 insertions(+), 28 deletions(-) create mode 100644 mingw-w64-gcc/405-dwarf-regression.patch create mode 100644 mingw-w64-gcc/pr65882.patch create mode 100644 mingw-w64-gcc/pr66035.patch diff --git a/mingw-w64-gcc/405-dwarf-regression.patch b/mingw-w64-gcc/405-dwarf-regression.patch new file mode 100644 index 0000000000..7756abb6e0 --- /dev/null +++ b/mingw-w64-gcc/405-dwarf-regression.patch @@ -0,0 +1,36 @@ +Relevant references: + +https://gcc.gnu.org/ml/gcc-patches/2014-09/msg00409.html +http://gcc.gcc.gnu.narkive.com/RMY4RcbE/asm-output-section-name-cleanup-patch-problem + +diff --git a/libgcc/libgcc2.c b/libgcc/libgcc2.c +index c737620..e5ab209 100644 +--- a/libgcc/libgcc2.c ++++ b/libgcc/libgcc2.c +@@ -2211,7 +2211,7 @@ TRANSFER_FROM_TRAMPOLINE + /* Some ELF crosses use crtstuff.c to provide __CTOR_LIST__, but use this + code to run constructors. In that case, we need to handle EH here, too. */ + +-#ifdef __LIBGCC_EH_FRAME_SECTION_NAME__ ++#ifdef EH_FRAME_SECTION_NAME + #include "unwind-dw2-fde.h" + extern unsigned char __EH_FRAME_BEGIN__[]; + #endif +@@ -2231,7 +2231,7 @@ __do_global_dtors (void) + (*(p-1)) (); + } + #endif +-#if defined (__LIBGCC_EH_FRAME_SECTION_NAME__) && !defined (HAS_INIT_SECTION) ++#if defined (EH_FRAME_SECTION_NAME) && !defined (HAS_INIT_SECTION) + { + static int completed = 0; + if (! completed) +@@ -2250,7 +2250,7 @@ __do_global_dtors (void) + void + __do_global_ctors (void) + { +-#ifdef __LIBGCC_EH_FRAME_SECTION_NAME__ ++#ifdef EH_FRAME_SECTION_NAME + { + static struct object object; + __register_frame_info (__EH_FRAME_BEGIN__, &object); diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index a1a4f297b3..154256eead 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -17,17 +17,19 @@ arch=('any') url="http://gcc.gnu.org" license=('GPL' 'LGPL' 'FDL' 'custom') groups=("${MINGW_PACKAGE_PREFIX}-toolchain") -depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-ada" - "${MINGW_PACKAGE_PREFIX}-binutils" - "${MINGW_PACKAGE_PREFIX}-crt" - "${MINGW_PACKAGE_PREFIX}-headers" - "${MINGW_PACKAGE_PREFIX}-isl" - "${MINGW_PACKAGE_PREFIX}-mpc" - "${MINGW_PACKAGE_PREFIX}-windows-default-manifest" - "${MINGW_PACKAGE_PREFIX}-winpthreads" - "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" - "${MINGW_PACKAGE_PREFIX}-libiconv") + "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" + "${MINGW_PACKAGE_PREFIX}-binutils" + "${MINGW_PACKAGE_PREFIX}-crt" + "${MINGW_PACKAGE_PREFIX}-headers" + "${MINGW_PACKAGE_PREFIX}-gmp" + "${MINGW_PACKAGE_PREFIX}-isl" + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-mpc" + "${MINGW_PACKAGE_PREFIX}-mpfr" + "${MINGW_PACKAGE_PREFIX}-windows-default-manifest" + "${MINGW_PACKAGE_PREFIX}-winpthreads" + "${MINGW_PACKAGE_PREFIX}-zlib") #checkdepends=('dejagnu') optdepends=() options=('strip' '!debug' 'staticlibs' '!emptydirs') @@ -46,13 +48,16 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- '310-gcc-make-xmmintrin-header-cplusplus-compatible.patch' '400-detect-sjlj-cleanup.patch' '410-fix-lto.patch' + '405-dwarf-regression.patch' 'enable-libitm.mingw.patch' 'enable-libsanitizer.mingw.patch' 'enable-shared-gnat.mingw.patch' 'no-fpic-in-sanitizer.all.patch' 'port-sanitizer-to-mingw.all.patch' 'enable-shared-gnat-implib.mingw.patch' - '955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch') + '955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch' + pr65882.patch + pr66035.patch) md5sums=('d5525b1127d07d215960e6051c5da35e' '41635a40493dc79416db6627b2826b21' 'f6b5fb08ff06a7d60ee3280e14240bb2' @@ -68,13 +73,16 @@ md5sums=('d5525b1127d07d215960e6051c5da35e' '4a6e2e0f6424abf37e830d7f37fd3351' '91cb14ef19c312b2575606b6f1cb1bfa' '4bae081d5820405b3800b7a881bf166d' + 'b558ee5f7529b1765e4266289ad1a83c' '27d5611996e209ba6f6a55ab417386e4' '5201bee23601ddfacde436461559f561' 'a56fb2cf67ae619f22e0d21f378ff704' '0f3fb8c9aab4bbb02a9923adc22c6109' '52592c1d7c6031ff601ecfdf3942b940' '62cc23251ae746b5f39c2c7aef121e8f' - '393ce6bf124d5b1ca0e38cbe0fc6eb51') + '393ce6bf124d5b1ca0e38cbe0fc6eb51' + '9a9cc98e916fd37c7b3dad50f29d2f48' + '5b980076cd5fcbc3aff6014f306282dd') _threads="posix" @@ -128,6 +136,7 @@ prepare() { patch -p1 -i ${srcdir}/310-gcc-make-xmmintrin-header-cplusplus-compatible.patch patch -p1 -i ${srcdir}/400-detect-sjlj-cleanup.patch + patch -p1 -i ${srcdir}/405-dwarf-regression.patch patch -p1 -i ${srcdir}/410-fix-lto.patch patch -p1 -i ${srcdir}/enable-shared-gnat-implib.mingw.patch @@ -139,6 +148,12 @@ prepare() { # patch -p1 -i ${srcdir}/port-sanitizer-to-mingw.all.patch patch -p1 -i ${srcdir}/955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch + + # https://gcc.gnu.org/ml/gcc-patches/2015-04/msg01558.html + patch -p1 -i ${srcdir}/pr65882.patch + + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66035 + patch -p1 -i ${srcdir}/pr66035.patch #if check_option "debug" "y"; then # Expose some libgomp internals for debugging. @@ -250,7 +265,16 @@ ENDFILE package_mingw-w64-gcc() { pkgdesc="GNU Compiler Collection (C,C++,OpenMP) for MinGW-w64" - depends=("${MINGW_PACKAGE_PREFIX}-crt" "${MINGW_PACKAGE_PREFIX}-binutils" "${MINGW_PACKAGE_PREFIX}-winpthreads" "${MINGW_PACKAGE_PREFIX}-headers" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-mpc" "${MINGW_PACKAGE_PREFIX}-cloog" "${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}") + depends=("${MINGW_PACKAGE_PREFIX}-binutils" + "${MINGW_PACKAGE_PREFIX}-crt" + "${MINGW_PACKAGE_PREFIX}-headers" + "${MINGW_PACKAGE_PREFIX}-isl" + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-mpc" + "${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}-${pkgver}" + "${MINGW_PACKAGE_PREFIX}-windows-default-manifest" + "${MINGW_PACKAGE_PREFIX}-winpthreads" + "${MINGW_PACKAGE_PREFIX}-zlib") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-base") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-base") @@ -328,7 +352,7 @@ package_mingw-w64-gcc() { package_mingw-w64-gcc-libgfortran() { pkgdesc="GNU Compiler Collection (libgfortran) for MinGW-w64" - depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}") + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}-${pkgver}") mkdir -p ${pkgdir}${MINGW_PREFIX}/bin cd ${srcdir}${MINGW_PREFIX} @@ -360,24 +384,12 @@ package_mingw-w64-gcc-fortran() { package_mingw-w64-gcc-ada() { pkgdesc="GNU Compiler Collection (Ada) for MinGW-w64" - depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgver}") mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share} cd ${srcdir}${MINGW_PREFIX} cp bin/gnat*.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatbind.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatchop.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatclean.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatdll.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatfind.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatkr.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatlink.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatls.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatmake.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatname.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatprep.exe ${pkgdir}${MINGW_PREFIX}/bin/ - # cp bin/gnatxref.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp bin/{libgnarl*,libgnat*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/adalib @@ -394,7 +406,7 @@ package_mingw-w64-gcc-ada() { package_mingw-w64-gcc-objc() { pkgdesc="GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64" - depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgver}") mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib} diff --git a/mingw-w64-gcc/pr65882.patch b/mingw-w64-gcc/pr65882.patch new file mode 100644 index 0000000000..673712b2b1 --- /dev/null +++ b/mingw-w64-gcc/pr65882.patch @@ -0,0 +1,66 @@ +diff --git a/gcc/cp/call.c b/gcc/cp/call.c +index 7bdf236..689d542 100644 +--- a/gcc/cp/call.c ++++ b/gcc/cp/call.c +@@ -5677,8 +5677,9 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1, + case TRUTH_ORIF_EXPR: + case TRUTH_AND_EXPR: + case TRUTH_OR_EXPR: +- warn_logical_operator (loc, code, boolean_type_node, +- code_orig_arg1, arg1, code_orig_arg2, arg2); ++ if (complain & tf_warning) ++ warn_logical_operator (loc, code, boolean_type_node, ++ code_orig_arg1, arg1, code_orig_arg2, arg2); + /* Fall through. */ + case GT_EXPR: + case LT_EXPR: +@@ -5686,8 +5687,9 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1, + case LE_EXPR: + case EQ_EXPR: + case NE_EXPR: +- if ((code_orig_arg1 == BOOLEAN_TYPE) +- ^ (code_orig_arg2 == BOOLEAN_TYPE)) ++ if ((complain & tf_warning) ++ && ((code_orig_arg1 == BOOLEAN_TYPE) ++ ^ (code_orig_arg2 == BOOLEAN_TYPE))) + maybe_warn_bool_compare (loc, code, arg1, arg2); + /* Fall through. */ + case PLUS_EXPR: +diff --git a/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C b/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C +new file mode 100644 +index 0000000..5655eb4 +--- /dev/null ++++ b/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C +@@ -0,0 +1,32 @@ ++// PR c++/65882 ++// { dg-do compile { target c++11 } } ++// { dg-options "-Wbool-compare" } ++ ++// Check that we don't ICE because of reentering error reporting routines while ++// evaluating template parameters ++ ++template ++struct type_function { ++ static constexpr bool value = false; ++}; ++ ++template ++struct dependent_type { ++ typedef int type; ++}; ++ ++template ++typename dependent_type<(5 > type_function::value)>::type ++bar(); ++ ++template ++typename dependent_type<(5 > type_function::value)>::type ++foo() ++{ ++ return bar(); ++} ++ ++int main() ++{ ++ foo(); ++} diff --git a/mingw-w64-gcc/pr66035.patch b/mingw-w64-gcc/pr66035.patch new file mode 100644 index 0000000000..c51822ca1f --- /dev/null +++ b/mingw-w64-gcc/pr66035.patch @@ -0,0 +1,48 @@ +--- a/gcc/fortran/trans-expr.c ++++ a/gcc/fortran/trans-expr.c +@@ -6897,6 +6897,30 @@ alloc_scalar_allocatable_for_subcomponent_assignment (stmtblock_t *block, + TREE_TYPE (tmp), tmp, + fold_convert (TREE_TYPE (tmp), size)); + } ++ else if (cm->ts.type == BT_CLASS) ++ { ++ gcc_assert (expr2->ts.type == BT_CLASS || expr2->ts.type == BT_DERIVED); ++ if (expr2->ts.type == BT_DERIVED) ++ { ++ tmp = gfc_get_symbol_decl (gfc_find_vtab (&expr2->ts)); ++ tmp = gfc_build_addr_expr (NULL_TREE, tmp); ++ size = fold_convert (size_type_node, gfc_vptr_size_get (tmp)); ++ } ++ else ++ { ++ gfc_expr *e2vtab; ++ gfc_se se; ++ e2vtab = gfc_find_and_cut_at_last_class_ref (expr2); ++ gfc_add_vptr_component (e2vtab); ++ gfc_add_size_component (e2vtab); ++ gfc_init_se (&se, NULL); ++ gfc_conv_expr (&se, e2vtab); ++ gfc_add_block_to_block (block, &se.pre); ++ size = fold_convert (size_type_node, se.expr); ++ gfc_free_expr (e2vtab); ++ } ++ size_in_bytes = size; ++ } + else + { + /* Otherwise use the length in bytes of the rhs. */ +@@ -7068,6 +7092,14 @@ gfc_trans_subcomponent_assign (tree dest, gfc_component * cm, gfc_expr * expr, + tmp = gfc_build_memcpy_call (tmp, se.expr, size); + gfc_add_expr_to_block (&block, tmp); + } ++ else if (cm->ts.type == BT_CLASS && expr->ts.type == BT_CLASS) ++ { ++ tmp = gfc_copy_class_to_class (se.expr, dest, integer_one_node, ++ CLASS_DATA (cm)->attr.unlimited_polymorphic); ++ gfc_add_expr_to_block (&block, tmp); ++ gfc_add_modify (&block, gfc_class_vptr_get (dest), ++ gfc_class_vptr_get (se.expr)); ++ } + else + gfc_add_modify (&block, tmp, + fold_convert (TREE_TYPE (tmp), se.expr)); From 73561fa3a0c2165045d1ade4822ae0922c808730 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 28 Jun 2015 18:44:36 +0300 Subject: [PATCH 1232/2060] qt5: Drop using "startdir" --- mingw-w64-qt5-static/PKGBUILD | 3 +-- mingw-w64-qt5/PKGBUILD | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 41f9c32d4a..be0236a87c 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -252,9 +252,8 @@ pkg_config_qt5() { } prepare() { - cd ${startdir} [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} - tar -xJf ${startdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true + tar -xJf ${srcdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true # cp -rf qt3d ${_pkgfqn}/ cd ${srcdir}/${_pkgfqn} diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index dc525e6b18..cd4a069598 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -259,9 +259,8 @@ pkg_config_qt5() { } prepare() { - cd ${startdir} [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} - tar -xJf ${startdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true + tar -xJf ${srcdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true # cp -rf qt3d ${_pkgfqn}/ cd ${srcdir}/${_pkgfqn} From 6702aff1b3a1ef80546731d44d543c62568f07a5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 28 Jun 2015 19:00:58 +0300 Subject: [PATCH 1233/2060] doxygen: Update to 1.8.10 --- mingw-w64-doxygen/PKGBUILD | 62 +++++---- mingw-w64-doxygen/cmake-mingw.patch | 20 +++ .../doxygen-configure-python2.patch | 11 -- mingw-w64-doxygen/force-win32.patch | 15 --- mingw-w64-doxygen/remove-extra-slashes.patch | 15 --- mingw-w64-doxygen/tmake-unquote.patch | 118 ------------------ 6 files changed, 49 insertions(+), 192 deletions(-) create mode 100644 mingw-w64-doxygen/cmake-mingw.patch delete mode 100644 mingw-w64-doxygen/doxygen-configure-python2.patch delete mode 100644 mingw-w64-doxygen/force-win32.patch delete mode 100644 mingw-w64-doxygen/remove-extra-slashes.patch delete mode 100644 mingw-w64-doxygen/tmake-unquote.patch diff --git a/mingw-w64-doxygen/PKGBUILD b/mingw-w64-doxygen/PKGBUILD index aabaf2de1c..9260a7ba42 100644 --- a/mingw-w64-doxygen/PKGBUILD +++ b/mingw-w64-doxygen/PKGBUILD @@ -2,7 +2,7 @@ _realname=doxygen pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.8.9.1 +pkgver=1.8.10 pkgrel=1 pkgdesc="A documentation system for C++, C, Java, IDL and PHP (mingw-w64)" arch=('any') @@ -11,53 +11,49 @@ options=('strip' 'staticlibs') license=('GPL') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv" - "${MINGW_PACKAGE_PREFIX}-recode" "${MINGW_PACKAGE_PREFIX}-sqlite3") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-qt4" 'flex' - "${MINGW_PACKAGE_PREFIX}-ghostscript" - "${MINGW_PACKAGE_PREFIX}-python3") + 'bison') +optdepends=("${MINGW_PACKAGE_PREFIX}-qt4") source=("http://ftp.stack.nl/pub/users/dimitri/${_realname}-${pkgver}.src.tar.gz" - 'doxygen-configure-python2.patch' - 'force-win32.patch' - 'tmake-unquote.patch' - 'fix-casts.patch' - 'remove-extra-slashes.patch') -sha1sums=('eb6b7e5f8dc8302e67053aba841f485017f246fd' - '98f9f473f906c5cd363b29c65b54bbe998c0793e' - '11ff505d15fa890aaa88fd7775842eb7ea3c1ed4' - '6b6338b36e1964064b303dc69282f87b335e5571' - '85f7e0b107fe788a071da5d94af54cd3bdab9e8a' - '4a8a560f317bd8710b88a658706391fb25212471') -noextract=(${_realname}-${pkgver}.src.tar.gz) + 'cmake-mingw.patch' + 'fix-casts.patch') +sha1sums=('6bad93cbdb1b2efacba14769d39bcc7bc9c0753b' + 'cf433df601aded5a5f6c7c04587e140a2d2d460f' + '85f7e0b107fe788a071da5d94af54cd3bdab9e8a') prepare() { - cd ${srcdir} - [[ -d $srcdir/${_realname}-${pkgver} ]] || tar -xzvf ${startdir}/${_realname}-${pkgver}.src.tar.gz -C $srcdir cd "${srcdir}/${_realname}-${pkgver}" - #patch -p1 -i "${srcdir}/doxygen-configure-python2.patch" - patch -p1 -i "${srcdir}/force-win32.patch" - patch -p1 -i "${srcdir}/tmake-unquote.patch" + patch -p1 -i "${srcdir}/cmake-mingw.patch" patch -p1 -i "${srcdir}/fix-casts.patch" - patch -p1 -i "${srcdir}/remove-extra-slashes.patch" } build() { export QTDIR=${MINGW_PREFIX} - cd ${srcdir}/${_realname}-${pkgver} - ./configure \ - --prefix ${MINGW_PREFIX} \ - --bison /usr/bin/bison \ - --with-sqlite3 \ - --sqlite3-path ${MINGW_PREFIX} \ - --shared + + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -Dbuild_wizard=ON \ + -Dbuild_search=OFF \ + -Duse_sqlite3=ON \ + -Duse_libclang=OFF \ + ../${_realname}-${pkgver} make } package() { - cd ${srcdir}/${_realname}-${pkgver} + cd ${srcdir}/build-${MINGW_CHOST} - #make DESTDIR="${pkgdir}" install - make INSTALL="${pkgdir}${MINGW_PREFIX}" MAN1DIR=share/man/man1 install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-doxygen/cmake-mingw.patch b/mingw-w64-doxygen/cmake-mingw.patch new file mode 100644 index 0000000000..e3957c02ef --- /dev/null +++ b/mingw-w64-doxygen/cmake-mingw.patch @@ -0,0 +1,20 @@ +--- doxygen-1.8.10/CMakeLists.txt.orig 2015-06-28 18:20:06.966200000 +0300 ++++ doxygen-1.8.10/CMakeLists.txt 2015-06-28 18:22:44.151800000 +0300 +@@ -44,7 +44,7 @@ + set(EXTRA_LIBS ${CORESERVICES_LIB}) + endif() + +-if (WIN32) ++if (MSVC) + set(ICONV_DIR "${CMAKE_SOURCE_DIR}/winbuild") + set(CMAKE_REQUIRED_DEFINITIONS "-DLIBICONV_STATIC") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") # needed for language.cpp on 64bit +@@ -104,7 +104,7 @@ + link_directories(${CUSTOM_LINK_DIR}) + endif() + +-if (win_static) ++if (win_static AND MSVC) + set(CompilerFlags + CMAKE_CXX_FLAGS + CMAKE_CXX_FLAGS_DEBUG diff --git a/mingw-w64-doxygen/doxygen-configure-python2.patch b/mingw-w64-doxygen/doxygen-configure-python2.patch deleted file mode 100644 index 9750d1eb2e..0000000000 --- a/mingw-w64-doxygen/doxygen-configure-python2.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- doxygen-1.8.6/configure.orig 2013-12-25 20:54:22.171988706 +0000 -+++ doxygen-1.8.6/configure 2013-12-25 20:54:33.405247482 +0000 -@@ -560,7 +560,7 @@ - - printf " Checking for python... " - if test "$f_python" = NO; then -- python_names="python" -+ python_names="python2 python" - python_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin" - python_prog=NO - python_found=NO diff --git a/mingw-w64-doxygen/force-win32.patch b/mingw-w64-doxygen/force-win32.patch deleted file mode 100644 index 926df2817a..0000000000 --- a/mingw-w64-doxygen/force-win32.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- doxygen-1.8.6/configure.orig 2014-03-30 15:24:01.362200000 +0400 -+++ doxygen-1.8.6/configure 2014-03-30 15:24:23.046200000 +0400 -@@ -719,6 +719,12 @@ - EOF - fi - -+if test "$f_platform" = "win32-mingw"; then -+ cat >> .makeconfig <> .makeconfig <Makefile.doxyapp -+ $(ENV) $(PERL) $(TMAKE) doxyapp.pro >Makefile.doxyapp - - strip: - strip doxyapp - - Makefile.doxyapp: doxyapp.pro -- $(ENV) $(PERL) "$(TMAKE)" doxyapp.pro >Makefile.doxyapp -+ $(ENV) $(PERL) $(TMAKE) doxyapp.pro >Makefile.doxyapp - - install: -diff -Naur doxygen-1.8.6-orig/addon/doxysearch/Makefile.in doxygen-1.8.6/addon/doxysearch/Makefile.in ---- doxygen-1.8.6-orig/addon/doxysearch/Makefile.in 2013-10-07 23:20:02.000000000 +0400 -+++ doxygen-1.8.6/addon/doxysearch/Makefile.in 2014-03-30 15:47:20.893600000 +0400 -@@ -10,17 +10,17 @@ - realclean: distclean - - tmake: -- $(ENV) $(PERL) "$(TMAKE)" doxysearch.pro >Makefile.doxysearch -- $(ENV) $(PERL) "$(TMAKE)" doxyindexer.pro >Makefile.doxyindexer -+ $(ENV) $(PERL) $(TMAKE) doxysearch.pro >Makefile.doxysearch -+ $(ENV) $(PERL) $(TMAKE) doxyindexer.pro >Makefile.doxyindexer - - strip: - strip doxysearch - - Makefile.doxysearch: doxysearch.pro -- $(ENV) $(PERL) "$(TMAKE)" doxysearch.pro >Makefile.doxysearch -+ $(ENV) $(PERL) $(TMAKE) doxysearch.pro >Makefile.doxysearch - - Makefile.doxyindexer: doxyindexer.pro -- $(ENV) $(PERL) "$(TMAKE)" doxyindexer.pro >Makefile.doxyindexer -+ $(ENV) $(PERL) $(TMAKE) doxyindexer.pro >Makefile.doxyindexer - - install: - $(INSTTOOL) -d $(INSTALL)/bin -diff -Naur doxygen-1.8.6-orig/libmd5/Makefile.in doxygen-1.8.6/libmd5/Makefile.in ---- doxygen-1.8.6-orig/libmd5/Makefile.in 2013-10-07 23:20:02.000000000 +0400 -+++ doxygen-1.8.6/libmd5/Makefile.in 2014-03-30 15:46:41.503600000 +0400 -@@ -10,9 +10,9 @@ - realclean: distclean - - tmake: -- $(ENV) $(PERL) "$(TMAKE)" libmd5.pro >Makefile.libmd5 -+ $(ENV) $(PERL) $(TMAKE) libmd5.pro >Makefile.libmd5 - - Makefile.libmd5: libmd5.pro -- $(ENV) $(PERL) "$(TMAKE)" libmd5.pro >Makefile.libmd5 -+ $(ENV) $(PERL) $(TMAKE) libmd5.pro >Makefile.libmd5 - - install: -diff -Naur doxygen-1.8.6-orig/qtools/Makefile.in doxygen-1.8.6/qtools/Makefile.in ---- doxygen-1.8.6-orig/qtools/Makefile.in 2013-10-07 23:20:02.000000000 +0400 -+++ doxygen-1.8.6/qtools/Makefile.in 2014-03-30 15:45:06.858400000 +0400 -@@ -17,10 +17,10 @@ - $(MAKE) -f Makefile.qtools $@ - - Makefile.qtools: qtools.pro -- $(ENV) $(PERL) "$(TMAKE)" qtools.pro >Makefile.qtools -+ $(ENV) $(PERL) $(TMAKE) qtools.pro >Makefile.qtools - - tmake: -- $(ENV) $(PERL) "$(TMAKE)" qtools.pro >Makefile.qtools -+ $(ENV) $(PERL) $(TMAKE) qtools.pro >Makefile.qtools - - clean: Makefile.qtools - $(MAKE) -f Makefile.qtools clean -diff -Naur doxygen-1.8.6-orig/src/Makefile.in doxygen-1.8.6/src/Makefile.in ---- doxygen-1.8.6-orig/src/Makefile.in 2013-10-07 23:20:02.000000000 +0400 -+++ doxygen-1.8.6/src/Makefile.in 2014-03-30 15:46:08.400400000 +0400 -@@ -20,19 +20,19 @@ - $(MAKE) -f Makefile.doxygen $@ - - Makefile.libdoxygen: libdoxygen.pro libdoxygen.t -- $(ENV) $(PERL) "$(TMAKE)" libdoxygen.pro >Makefile.libdoxygen -+ $(ENV) $(PERL) $(TMAKE) libdoxygen.pro >Makefile.libdoxygen - echo 'HEADERS += ' `ls -1 translator_??.h` >>Makefile.libdoxygen - - Makefile.libdoxycfg: libdoxycfg.pro libdoxycfg.t -- $(ENV) $(PERL) "$(TMAKE)" libdoxycfg.pro >Makefile.libdoxycfg -+ $(ENV) $(PERL) $(TMAKE) libdoxycfg.pro >Makefile.libdoxycfg - - Makefile.doxygen: doxygen.pro -- $(ENV) $(PERL) "$(TMAKE)" doxygen.pro >Makefile.doxygen -+ $(ENV) $(PERL) $(TMAKE) doxygen.pro >Makefile.doxygen - - tmake: -- $(ENV) $(PERL) "$(TMAKE)" libdoxygen.pro >Makefile.libdoxygen -- $(ENV) $(PERL) "$(TMAKE)" libdoxycfg.pro >Makefile.libdoxycfg -- $(ENV) $(PERL) "$(TMAKE)" doxygen.pro >Makefile.doxygen -+ $(ENV) $(PERL) $(TMAKE) libdoxygen.pro >Makefile.libdoxygen -+ $(ENV) $(PERL) $(TMAKE) libdoxycfg.pro >Makefile.libdoxycfg -+ $(ENV) $(PERL) $(TMAKE) doxygen.pro >Makefile.doxygen - - # clean objects - clean: Makefile.libdoxygen Makefile.libdoxycfg Makefile.doxygen ---- doxygen-1.8.8/vhdlparser/Makefile.in.orig 2014-08-15 02:46:42.000000000 +0900 -+++ doxygen-1.8.8/vhdlparser/Makefile.in 2014-09-30 17:31:22.033228500 +0900 -@@ -17,10 +17,10 @@ - $(MAKE) -f Makefile.vhdlparser $@ - - Makefile.vhdlparser: vhdlparser.pro -- $(ENV) $(PERL) "$(TMAKE)" vhdlparser.pro >Makefile.vhdlparser -+ $(ENV) $(PERL) $(TMAKE) vhdlparser.pro >Makefile.vhdlparser - - tmake: -- $(ENV) $(PERL) "$(TMAKE)" vhdlparser.pro >Makefile.vhdlparser -+ $(ENV) $(PERL) $(TMAKE) vhdlparser.pro >Makefile.vhdlparser - - clean: Makefile.vhdlparser - $(MAKE) -f Makefile.vhdlparser clean From cc0f20c9a20828ea8a09bdc81b50e5770e7f9a67 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Sun, 28 Jun 2015 17:32:45 +0100 Subject: [PATCH 1234/2060] libuv: fix pipe_getsockname_blocking regression --- ...o-trailing-terminator-in-exact-sized.patch | 181 ++++++++++++++++++ mingw-w64-libuv/PKGBUILD | 9 +- 2 files changed, 187 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-libuv/0001-Revert-fs-pipe-no-trailing-terminator-in-exact-sized.patch diff --git a/mingw-w64-libuv/0001-Revert-fs-pipe-no-trailing-terminator-in-exact-sized.patch b/mingw-w64-libuv/0001-Revert-fs-pipe-no-trailing-terminator-in-exact-sized.patch new file mode 100644 index 0000000000..13ffcaea35 --- /dev/null +++ b/mingw-w64-libuv/0001-Revert-fs-pipe-no-trailing-terminator-in-exact-sized.patch @@ -0,0 +1,181 @@ +From 2165edb245f11031ec7606a7541f4b87388dbec9 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sat, 27 Jun 2015 23:41:22 +0100 +Subject: [PATCH] Revert "fs, pipe: no trailing terminator in exact sized + buffers" + +This reverts commit 1e59ab1d49bace6d43726b076d2e820f318c53f9. + +diff --git a/docs/src/fs_event.rst b/docs/src/fs_event.rst +index 681ae52..e09dbad 100644 +--- a/docs/src/fs_event.rst ++++ b/docs/src/fs_event.rst +@@ -102,7 +102,4 @@ API + is not big enough UV_ENOBUFS will be returned and len will be set to the + required size. + +- .. versionchanged:: 1.3.0 the returned length no longer includes the terminating null byte, +- and the buffer is not null terminated. +- + .. seealso:: The :c:type:`uv_handle_t` API functions also apply. +diff --git a/docs/src/fs_poll.rst b/docs/src/fs_poll.rst +index 4efb244..9f694f1 100644 +--- a/docs/src/fs_poll.rst ++++ b/docs/src/fs_poll.rst +@@ -66,7 +66,4 @@ API + is not big enough UV_ENOBUFS will be returned and len will be set to the + required size. + +- .. versionchanged:: 1.3.0 the returned length no longer includes the terminating null byte, +- and the buffer is not null terminated. +- + .. seealso:: The :c:type:`uv_handle_t` API functions also apply. +diff --git a/docs/src/pipe.rst b/docs/src/pipe.rst +index df896a0..1a7d6b8 100644 +--- a/docs/src/pipe.rst ++++ b/docs/src/pipe.rst +@@ -69,9 +69,6 @@ API + output. If the buffer is not big enough ``UV_ENOBUFS`` will be returned and + len will contain the required size. + +- .. versionchanged:: 1.3.0 the returned length no longer includes the terminating null byte, +- and the buffer is not null terminated. +- + .. c:function:: int uv_pipe_getpeername(const uv_pipe_t* handle, char* buffer, size_t* size) + + Get the name of the Unix domain socket or the named pipe to which the handle +diff --git a/src/fs-poll.c b/src/fs-poll.c +index 44d47b8..a940ca7 100644 +--- a/src/fs-poll.c ++++ b/src/fs-poll.c +@@ -137,7 +137,7 @@ int uv_fs_poll_getpath(uv_fs_poll_t* handle, char* buffer, size_t* size) { + ctx = handle->poll_ctx; + assert(ctx != NULL); + +- required_len = strlen(ctx->path); ++ required_len = strlen(ctx->path) + 1; + if (required_len > *size) { + *size = required_len; + return UV_ENOBUFS; +diff --git a/src/unix/pipe.c b/src/unix/pipe.c +index 7f87a71..2ed75a6 100644 +--- a/src/unix/pipe.c ++++ b/src/unix/pipe.c +@@ -231,7 +231,7 @@ static int uv__pipe_getsockpeername(const uv_pipe_t* handle, + addrlen -= offsetof(struct sockaddr_un, sun_path); + else + #endif +- addrlen = strlen(sa.sun_path); ++ addrlen = strlen(sa.sun_path) + 1; + + + if (addrlen > *size) { +diff --git a/src/uv-common.c b/src/uv-common.c +index 4b9901f..c6fb575 100644 +--- a/src/uv-common.c ++++ b/src/uv-common.c +@@ -437,7 +437,7 @@ int uv_fs_event_getpath(uv_fs_event_t* handle, char* buffer, size_t* size) { + return UV_EINVAL; + } + +- required_len = strlen(handle->path); ++ required_len = strlen(handle->path) + 1; + if (required_len > *size) { + *size = required_len; + return UV_ENOBUFS; +diff --git a/src/win/pipe.c b/src/win/pipe.c +index 06cf0db..e64f726 100644 +--- a/src/win/pipe.c ++++ b/src/win/pipe.c +@@ -2030,9 +2030,9 @@ static int uv__pipe_getname(const uv_pipe_t* handle, char* buffer, size_t* size) + *size = 0; + err = uv_translate_sys_error(GetLastError()); + goto error; +- } else if (pipe_prefix_len + addrlen > *size) { +- /* "\\\\.\\pipe" + name */ +- *size = pipe_prefix_len + addrlen; ++ } else if (pipe_prefix_len + addrlen + 1 > *size) { ++ /* "\\\\.\\pipe" + name + '\0' */ ++ *size = pipe_prefix_len + addrlen + 1; + err = UV_ENOBUFS; + goto error; + } +@@ -2053,6 +2053,7 @@ static int uv__pipe_getname(const uv_pipe_t* handle, char* buffer, size_t* size) + } + + addrlen += pipe_prefix_len; ++ buffer[addrlen++] = '\0'; + *size = addrlen; + + err = 0; +diff --git a/test/test-fs-event.c b/test/test-fs-event.c +index 0a2ba33..5fd8da4 100644 +--- a/test/test-fs-event.c ++++ b/test/test-fs-event.c +@@ -642,7 +642,6 @@ TEST_IMPL(fs_event_getpath) { + len = sizeof buf; + r = uv_fs_event_getpath(&fs_event, buf, &len); + ASSERT(r == 0); +- ASSERT(buf[len - 1] != 0); + ASSERT(memcmp(buf, "watch_dir", len) == 0); + r = uv_fs_event_stop(&fs_event); + ASSERT(r == 0); +diff --git a/test/test-fs-poll.c b/test/test-fs-poll.c +index dbc1515..f4eb084 100644 +--- a/test/test-fs-poll.c ++++ b/test/test-fs-poll.c +@@ -172,7 +172,6 @@ TEST_IMPL(fs_poll_getpath) { + ASSERT(0 == uv_fs_poll_start(&poll_handle, poll_cb_fail, FIXTURE, 100)); + len = sizeof buf; + ASSERT(0 == uv_fs_poll_getpath(&poll_handle, buf, &len)); +- ASSERT(buf[len - 1] != 0); + ASSERT(0 == memcmp(buf, FIXTURE, len)); + + uv_close((uv_handle_t*) &poll_handle, close_cb); +diff --git a/test/test-pipe-getsockname.c b/test/test-pipe-getsockname.c +index 5e036f9..2634b09 100644 +--- a/test/test-pipe-getsockname.c ++++ b/test/test-pipe-getsockname.c +@@ -63,7 +63,6 @@ static void pipe_client_connect_cb(uv_connect_t* req, int status) { + r = uv_pipe_getpeername(&pipe_client, buf, &len); + ASSERT(r == 0); + +- ASSERT(buf[len - 1] != 0); + ASSERT(memcmp(buf, TEST_PIPENAME, len) == 0); + + len = sizeof buf; +@@ -113,7 +112,6 @@ TEST_IMPL(pipe_getsockname) { + r = uv_pipe_getsockname(&pipe_server, buf, &len); + ASSERT(r == 0); + +- ASSERT(buf[len - 1] != 0); + ASSERT(memcmp(buf, TEST_PIPENAME, len) == 0); + + len = sizeof buf; +@@ -144,7 +142,6 @@ TEST_IMPL(pipe_getsockname) { + r = uv_pipe_getpeername(&pipe_client, buf, &len); + ASSERT(r == 0); + +- ASSERT(buf[len - 1] != 0); + ASSERT(memcmp(buf, TEST_PIPENAME, len) == 0); + + r = uv_run(loop, UV_RUN_DEFAULT); +@@ -230,7 +227,6 @@ TEST_IMPL(pipe_getsockname_blocking) { + len1 = sizeof buf1; + r = uv_pipe_getsockname(&pipe_client, buf1, &len1); + ASSERT(r == 0); +- ASSERT(buf1[len1 - 1] != 0); + + r = uv_read_start((uv_stream_t*)&pipe_client, NULL, NULL); + ASSERT(r == 0); +@@ -239,7 +235,6 @@ TEST_IMPL(pipe_getsockname_blocking) { + len2 = sizeof buf2; + r = uv_pipe_getsockname(&pipe_client, buf2, &len2); + ASSERT(r == 0); +- ASSERT(buf2[len2 - 1] != 0); + + r = uv_read_stop((uv_stream_t*)&pipe_client); + ASSERT(r == 0); +-- +2.4.4 + diff --git a/mingw-w64-libuv/PKGBUILD b/mingw-w64-libuv/PKGBUILD index 9809e7410d..ed554b0819 100644 --- a/mingw-w64-libuv/PKGBUILD +++ b/mingw-w64-libuv/PKGBUILD @@ -4,7 +4,7 @@ _realname=libuv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.1 -pkgrel=1 +pkgrel=2 pkgdesc="Cross-platform asychronous I/O (mingw-w64)" arch=('any') url="https://github.com/libuv/libuv" @@ -12,11 +12,14 @@ license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') -source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/libuv/libuv/archive/v${pkgver}.tar.gz") -sha256sums=('f558ede285878d6a69f6a6d43b5df0241f3c35d62ac989477bdbd418badd83d7') +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/libuv/libuv/archive/v${pkgver}.tar.gz" + "0001-Revert-fs-pipe-no-trailing-terminator-in-exact-sized.patch") +sha256sums=('f558ede285878d6a69f6a6d43b5df0241f3c35d62ac989477bdbd418badd83d7' + '432203e598cefbad2193a3fbb98c2b4be59f256f26f6fe1ee98e80422e142aee') prepare() { cd "$srcdir/${_realname}-${pkgver}" + patch -p1 -i ${srcdir}/0001-Revert-fs-pipe-no-trailing-terminator-in-exact-sized.patch ./autogen.sh } From 4971e0778a46ddcfb0df8817dbed877df19a64ea Mon Sep 17 00:00:00 2001 From: Evgenii Pashkin Date: Sun, 28 Jun 2015 23:17:31 +0300 Subject: [PATCH 1235/2060] rust: Update to 1.1.0 --- mingw-w64-rust/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-rust/PKGBUILD b/mingw-w64-rust/PKGBUILD index 05f2706973..0861534e83 100644 --- a/mingw-w64-rust/PKGBUILD +++ b/mingw-w64-rust/PKGBUILD @@ -2,7 +2,7 @@ _realname=rust pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.0 +pkgver=1.1.0 pkgrel=2 pkgdesc="A safe, concurrent, practical language from Mozilla (mingw-w64)" arch=('any') @@ -20,7 +20,7 @@ makedepends=("git" options=('!makeflags' 'staticlibs') #install=rust.install source=(https://static.rust-lang.org/dist/${_realname}c-${pkgver}-src.tar.gz) -md5sums=('3fd3f9010be8eb411a81157b92566027') +md5sums=('5f2f923f8d1c77a55721d1f0813a158a') prepare() { cd ${srcdir}/${_realname}c-$pkgver From 26d03a94f4ac83d1f710268e09b140cb1b436a5e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 29 Jun 2015 06:43:42 +0300 Subject: [PATCH 1236/2060] bicolor-icon-theme: Update to 0.15. Fix post-install scripts --- mingw-w64-hicolor-icon-theme/PKGBUILD | 17 ++++++++++------- .../hicolor-icon-theme-i686.install | 2 ++ .../hicolor-icon-theme-x86_64.install | 2 ++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/mingw-w64-hicolor-icon-theme/PKGBUILD b/mingw-w64-hicolor-icon-theme/PKGBUILD index 046e1e6cef..5eec7389f1 100644 --- a/mingw-w64-hicolor-icon-theme/PKGBUILD +++ b/mingw-w64-hicolor-icon-theme/PKGBUILD @@ -2,7 +2,7 @@ _realname=hicolor-icon-theme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.14 +pkgver=0.15 pkgrel=1 pkgdesc="Freedesktop.org Hicolor icon theme (mingw-w64)" arch=('any') @@ -10,22 +10,25 @@ url="http://icon-theme.freedesktop.org/wiki/HicolorTheme" license=("GPL2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") install=${_realname}-${CARCH}.install -options=(!libtool strip staticlibs) +options=('!libtool' 'strip' 'staticlibs') source=("http://icon-theme.freedesktop.org/releases/${_realname}-${pkgver}.tar.xz") -md5sums=('56d2c6c3a9df5a0acd332430e3f3ae3e') +md5sums=('6aa2b3993a883d85017c7cc0cfc0fb73') build() { - cd ${srcdir}/${_realname}-${pkgver} - ./configure \ + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} + make } package() { - cd "${srcdir}/${_realname}-${pkgver}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING } diff --git a/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-i686.install b/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-i686.install index e9d79a9c1d..1220dd8c40 100644 --- a/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-i686.install +++ b/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-i686.install @@ -8,6 +8,8 @@ post_install() { [[ -f mingw32/bin/gdk-pixbuf-query-loaders.exe ]] && { mingw32/bin/gdk-pixbuf-query-loaders.exe --update-cache } + + return 0 } post_upgrade() { diff --git a/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-x86_64.install b/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-x86_64.install index 0f90cc6ec7..6a93522e78 100644 --- a/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-x86_64.install +++ b/mingw-w64-hicolor-icon-theme/hicolor-icon-theme-x86_64.install @@ -8,6 +8,8 @@ post_install() { [[ -f mingw64/bin/gdk-pixbuf-query-loaders.exe ]] && { mingw64/bin/gdk-pixbuf-query-loaders.exe --update-cache } + + return 0 } post_upgrade() { From 8d3c4e93347901f42b399c3d6a7822286706b300 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 29 Jun 2015 06:58:52 +0300 Subject: [PATCH 1237/2060] gdk-pixbuf2: Update to 2.31.4. Fix running post-install script --- ...-the-modules-using-the-open-source-l.patch | 55 ------------------- .../0002-gdk-pixbuf-introspection.patch | 22 +++----- mingw-w64-gdk-pixbuf2/PKGBUILD | 34 ++++++------ .../gdk-pixbuf2-i686.install | 6 +- .../gdk-pixbuf2-x86_64.install | 6 +- 5 files changed, 30 insertions(+), 93 deletions(-) delete mode 100644 mingw-w64-gdk-pixbuf2/0001-Give-priority-to-the-modules-using-the-open-source-l.patch diff --git a/mingw-w64-gdk-pixbuf2/0001-Give-priority-to-the-modules-using-the-open-source-l.patch b/mingw-w64-gdk-pixbuf2/0001-Give-priority-to-the-modules-using-the-open-source-l.patch deleted file mode 100644 index b60cebfbde..0000000000 --- a/mingw-w64-gdk-pixbuf2/0001-Give-priority-to-the-modules-using-the-open-source-l.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 3f33257a16e3490a9286881fc46c9951ed872aae Mon Sep 17 00:00:00 2001 -From: Ignacio Casal Quinteiro -Date: Wed, 3 Sep 2014 09:48:50 +0200 -Subject: [PATCH] Give priority to the modules using the open source libraries - instead of gdip - ---- - gdk-pixbuf/gdk-pixbuf-io.c | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) - -diff --git a/gdk-pixbuf/gdk-pixbuf-io.c b/gdk-pixbuf/gdk-pixbuf-io.c -index 7c50b87..90ac91d 100644 ---- a/gdk-pixbuf/gdk-pixbuf-io.c -+++ b/gdk-pixbuf/gdk-pixbuf-io.c -@@ -682,6 +682,18 @@ gdk_pixbuf_load_module_unlocked (GdkPixbufModule *image_module, - - try_module (pixdata,pixdata); - -+#ifdef INCLUDE_gdiplus -+ try_module (ico,gdip_ico); -+ try_module (wmf,gdip_wmf); -+ try_module (emf,gdip_emf); -+ try_module (bmp,gdip_bmp); -+ try_module (gif,gdip_gif); -+ try_module (jpeg,gdip_jpeg); -+ try_module (tiff,gdip_tiff); -+#endif -+#ifdef INCLUDE_gdip_png -+ try_module (png,gdip_png); -+#endif - #ifdef INCLUDE_png - try_module (png,png); - #endif -@@ -733,18 +745,6 @@ gdk_pixbuf_load_module_unlocked (GdkPixbufModule *image_module, - #ifdef INCLUDE_qtif - try_module (qtif,qtif); - #endif --#ifdef INCLUDE_gdiplus -- try_module (ico,gdip_ico); -- try_module (wmf,gdip_wmf); -- try_module (emf,gdip_emf); -- try_module (bmp,gdip_bmp); -- try_module (gif,gdip_gif); -- try_module (jpeg,gdip_jpeg); -- try_module (tiff,gdip_tiff); --#endif --#ifdef INCLUDE_gdip_png -- try_module (png,gdip_png); --#endif - - #undef try_module - --- -1.9.3 - diff --git a/mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch b/mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch index 01babfa760..b3a4e9b2c7 100644 --- a/mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch +++ b/mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch @@ -50,11 +50,10 @@ header files pached for introspection workaround GdkPixbuf *gdk_pixbuf_new_from_file (const char *filename, GError **error); GdkPixbuf *gdk_pixbuf_new_from_file_at_size (const char *filename, -@@ -303,33 +294,69 @@ - const guint8 *data, +@@ -303,28 +294,64 @@ gboolean copy_pixels, GError **error); -- + #endif + +#ifndef __GTK_DOC_IGNORE__ +#ifdef G_OS_WIN32 @@ -78,6 +77,7 @@ header files pached for introspection workaround +#endif +#endif + + /* Mutations */ void gdk_pixbuf_fill (GdkPixbuf *pixbuf, guint32 pixel); @@ -102,26 +102,18 @@ header files pached for introspection workaround /* DLL ABI stability hack. */ #define gdk_pixbuf_save gdk_pixbuf_save_utf8 #define gdk_pixbuf_savev gdk_pixbuf_savev_utf8 --#endif --#endif + #endif + #endif -gboolean gdk_pixbuf_save (GdkPixbuf *pixbuf, -+gboolean gdk_pixbuf_save_utf8 (GdkPixbuf *pixbuf, ++gboolean gdk_pixbuf_save_utf8 (GdkPixbuf *pixbuf, const char *filename, const char *type, GError **error, ...) G_GNUC_NULL_TERMINATED; -gboolean gdk_pixbuf_savev (GdkPixbuf *pixbuf, -+gboolean gdk_pixbuf_savev_utf8 (GdkPixbuf *pixbuf, ++gboolean gdk_pixbuf_savev_utf8 (GdkPixbuf *pixbuf, const char *filename, const char *type, char **option_keys, - char **option_values, - GError **error); -+ -+#endif -+#endif - - /* Saving to a callback function */ - diff --git a/mingw-w64-gdk-pixbuf2/PKGBUILD b/mingw-w64-gdk-pixbuf2/PKGBUILD index 9eae4d78dc..bbec4e57ff 100644 --- a/mingw-w64-gdk-pixbuf2/PKGBUILD +++ b/mingw-w64-gdk-pixbuf2/PKGBUILD @@ -3,43 +3,43 @@ _realname=gdk-pixbuf2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.31.1 -pkgrel=3 +pkgver=2.31.4 +pkgrel=1 pkgdesc="An image loading library (mingw-w64)" arch=('any') url="http://www.gtk.org" license=(LGPL2) -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-glib2>=2.37.2" - "${MINGW_PACKAGE_PREFIX}-jasper" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" - "${MINGW_PACKAGE_PREFIX}-libtiff") -options=('strip' 'staticlibs') + "${MINGW_PACKAGE_PREFIX}-glib2>=2.37.2" + "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff") +options=('strip' 'staticlibs' 'emptydirs') install=${_realname}-${CARCH}.install source=("http://download.gnome.org/sources/gdk-pixbuf/${pkgver%.*}/gdk-pixbuf-$pkgver.tar.xz" 0001-Use-a-regex-to-properly-export-the-symbols.patch - 0001-Give-priority-to-the-modules-using-the-open-source-l.patch 0002-gdk-pixbuf-introspection.patch) -sha256sums=('25a75e3c61dac11e6ff6416ad846951ccafac6486b1c6a1bfb0b213b99db52cd' +sha256sums=('e5d9977493f8188baa6f432c5015c9937f0f67d29e0b6bccd3fae23126a47a15' 'e8d278e30c44e973e14e3c61e8ab195621d6a9a402e0da557db4616955ca4543' - '8f8b3882b3bbc6d32e99230ab188a5749cea57c37b699e371cb7f6096a1ec712' - 'eb2c31acf2bd50a6d8a5eae465afca5651268f0e8bc6f3f7d8cdc54a4cc76c72') + 'c22ce6c4de87c9f6e8b18452a728e4677fac18d2b51d6e536db27160c368f0c6') prepare() { cd ${srcdir}/gdk-pixbuf-${pkgver} patch -p1 -i ${srcdir}/0001-Use-a-regex-to-properly-export-the-symbols.patch - patch -p1 -i ${srcdir}/0001-Give-priority-to-the-modules-using-the-open-source-l.patch patch -p0 -i ${srcdir}/0002-gdk-pixbuf-introspection.patch autoreconf -fi } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/gdk-pixbuf-${pkgver}/configure \ + ../gdk-pixbuf-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -52,7 +52,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + make DESTDIR="${pkgdir}" install + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gdk-pixbuf-2.0/2.10.0/loaders install -Dm644 "${srcdir}/gdk-pixbuf-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-gdk-pixbuf2/gdk-pixbuf2-i686.install b/mingw-w64-gdk-pixbuf2/gdk-pixbuf2-i686.install index 25c91e7c00..35640ba1ed 100644 --- a/mingw-w64-gdk-pixbuf2/gdk-pixbuf2-i686.install +++ b/mingw-w64-gdk-pixbuf2/gdk-pixbuf2-i686.install @@ -1,11 +1,11 @@ post_install() { - mingw32/bin/gdk-pixbuf-query-loaders --update-cache + mingw32/bin/gdk-pixbuf-query-loaders --update-cache } post_upgrade() { - post_install + post_install } pre_remove() { - rm -f mingw32/lib/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache + rm -f mingw32/lib/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache } \ No newline at end of file diff --git a/mingw-w64-gdk-pixbuf2/gdk-pixbuf2-x86_64.install b/mingw-w64-gdk-pixbuf2/gdk-pixbuf2-x86_64.install index a3dc1814fc..fcc5dd0573 100644 --- a/mingw-w64-gdk-pixbuf2/gdk-pixbuf2-x86_64.install +++ b/mingw-w64-gdk-pixbuf2/gdk-pixbuf2-x86_64.install @@ -1,11 +1,11 @@ post_install() { - mingw64/bin/gdk-pixbuf-query-loaders --update-cache + mingw64/bin/gdk-pixbuf-query-loaders --update-cache } post_upgrade() { - post_install + post_install } pre_remove() { - rm -f mingw64/lib/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache + rm -f mingw64/lib/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache } \ No newline at end of file From 384a7d4e9ad885db0cad7b9711c9c8f9985a7f30 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 29 Jun 2015 10:39:49 +0300 Subject: [PATCH 1238/2060] ncurses: Update to 6.0.20150627 --- mingw-w64-ncurses/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ncurses/PKGBUILD b/mingw-w64-ncurses/PKGBUILD index b01009dc3a..f78504fd7b 100644 --- a/mingw-w64-ncurses/PKGBUILD +++ b/mingw-w64-ncurses/PKGBUILD @@ -3,7 +3,7 @@ _realname=ncurses pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _base_ver=6.0 -_date_rev=20150613 +_date_rev=20150627 pkgver=${_base_ver}.${_date_rev} pkgrel=1 pkgdesc="System V Release 4.0 curses emulation library" @@ -15,7 +15,7 @@ license=('MIT') options=('staticlibs' 'strip') source=("${_realname}-${pkgver}.tar.gz"::http://invisible-island.net/datafiles/current/${_realname}.tar.gz 001-use-libsystre.patch) -md5sums=('0c6a0389d004c78f4a995bc61884a563' +md5sums=('a2bed858184157081aa433671d9a02c4' 'b669861903d0699b6535b7c6e028880d') prepare() { From f468fde450d9f37cc065da6cf0bbd53adae9dd3a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 29 Jun 2015 10:40:49 +0300 Subject: [PATCH 1239/2060] gcc: Fix dependencies between parts. --- mingw-w64-gcc/PKGBUILD | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 154256eead..761fba03e8 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -271,7 +271,7 @@ package_mingw-w64-gcc() { "${MINGW_PACKAGE_PREFIX}-isl" "${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-mpc" - "${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}-${pkgver}" + "${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}-${pkgrel}" "${MINGW_PACKAGE_PREFIX}-windows-default-manifest" "${MINGW_PACKAGE_PREFIX}-winpthreads" "${MINGW_PACKAGE_PREFIX}-zlib") @@ -352,7 +352,7 @@ package_mingw-w64-gcc() { package_mingw-w64-gcc-libgfortran() { pkgdesc="GNU Compiler Collection (libgfortran) for MinGW-w64" - depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}-${pkgver}") + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}-${pkgrel}") mkdir -p ${pkgdir}${MINGW_PREFIX}/bin cd ${srcdir}${MINGW_PREFIX} @@ -361,7 +361,8 @@ package_mingw-w64-gcc-libgfortran() { package_mingw-w64-gcc-fortran() { pkgdesc="GNU Compiler Collection (Fortran) for MinGW-w64" - depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}" "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran=${pkgver}") + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgrel}" + "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran=${pkgver}-${pkgrel}") mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share} @@ -384,7 +385,7 @@ package_mingw-w64-gcc-fortran() { package_mingw-w64-gcc-ada() { pkgdesc="GNU Compiler Collection (Ada) for MinGW-w64" - depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgver}") + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgrel}") mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share} @@ -406,7 +407,7 @@ package_mingw-w64-gcc-ada() { package_mingw-w64-gcc-objc() { pkgdesc="GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64" - depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgver}") + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgrel}") mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib} From 6aa885b0dbf1aa4282354d1f4f47ad9fad30a01e Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Sun, 28 Jun 2015 19:43:30 +0100 Subject: [PATCH 1240/2060] llvm-svn: update to head, add lld package and fix x86 triplets for mingw-w64 (close #576) --- ...sminfo-for-mingw-arm-and-cygwin-arm.patch} | 0 ...-GetHostTriple-for-mingw-w64-in-msys.patch | 27 ++++ ... => 0011-Add-Clang-MinGW-w64-driver.patch} | 57 ++++---- ... 0012-Fixup-all-windows-ARM-targets.patch} | 0 ...-x86-arch-name-to-i686-for-mingw-w64.patch | 26 ++++ mingw-w64-clang-svn/PKGBUILD | 130 ++++-------------- 6 files changed, 104 insertions(+), 136 deletions(-) rename mingw-w64-clang-svn/{0003-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch => 0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch} (100%) create mode 100644 mingw-w64-clang-svn/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch rename mingw-w64-clang-svn/{0001-Add-Clang-MinGW-w64-driver.patch => 0011-Add-Clang-MinGW-w64-driver.patch} (94%) rename mingw-w64-clang-svn/{0002-Fixup-all-windows-ARM-targets.patch => 0012-Fixup-all-windows-ARM-targets.patch} (100%) create mode 100644 mingw-w64-clang-svn/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch diff --git a/mingw-w64-clang-svn/0003-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch b/mingw-w64-clang-svn/0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch similarity index 100% rename from mingw-w64-clang-svn/0003-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch rename to mingw-w64-clang-svn/0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch diff --git a/mingw-w64-clang-svn/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch b/mingw-w64-clang-svn/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch new file mode 100644 index 0000000000..a919a30e25 --- /dev/null +++ b/mingw-w64-clang-svn/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch @@ -0,0 +1,27 @@ +From 12d299345b51c1686c1d82986de6de020970bb57 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sun, 28 Jun 2015 20:14:51 +0100 +Subject: [PATCH] Fix GetHostTriple for mingw-w64 in msys + + +diff --git a/cmake/modules/GetHostTriple.cmake b/cmake/modules/GetHostTriple.cmake +index 671a8ce..45c47e1 100644 +--- a/cmake/modules/GetHostTriple.cmake ++++ b/cmake/modules/GetHostTriple.cmake +@@ -8,11 +8,11 @@ function( get_host_triple var ) + else() + set( value "i686-pc-win32" ) + endif() +- elseif( MINGW AND NOT MSYS ) ++ elseif( MINGW ) + if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + set( value "x86_64-w64-mingw32" ) + else() +- set( value "i686-pc-mingw32" ) ++ set( value "i686-w64-mingw32" ) + endif() + else( MSVC ) + set(config_guess ${LLVM_MAIN_SRC_DIR}/autoconf/config.guess) +-- +2.4.5 + diff --git a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch similarity index 94% rename from mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch rename to mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch index de33ec45c2..e2712c33a8 100644 --- a/mingw-w64-clang-svn/0001-Add-Clang-MinGW-w64-driver.patch +++ b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch @@ -1,7 +1,7 @@ -From 417410c4e0881f98f806c8cdda7999d31295ae47 Mon Sep 17 00:00:00 2001 +From af60fa000be6cb20d00074521fb545432a04586b Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Tue, 24 Mar 2015 15:02:53 +0000 -Subject: [PATCH 1/2] Add Clang MinGW-w64 driver +Subject: [PATCH] Add Clang MinGW-w64 driver This adds the MinGW-w64 driver to clang with the new triplets compnerd introduced to clang. Based @@ -11,23 +11,15 @@ Update: March 2015: removed seh code as clang detects itself as of commit b27216c updated to head ---- - include/clang/Driver/Options.td | 5 + - lib/Driver/CMakeLists.txt | 1 + - lib/Driver/Driver.cpp | 7 +- - lib/Driver/MinGWToolChain.cpp | 191 +++++++++++++++++++++++++++++++++++ - lib/Driver/ToolChains.h | 29 ++++++ - lib/Driver/Tools.cpp | 204 ++++++++++++++++++++++++++++++++++++++ - lib/Driver/Tools.h | 33 ++++++ - lib/Frontend/InitHeaderSearch.cpp | 62 ++---------- - 8 files changed, 470 insertions(+), 62 deletions(-) - create mode 100644 lib/Driver/MinGWToolChain.cpp + +June 2015: updated to head to prepare for 3.7 release + may need to remove pic code for x64 because it it detected in the base class now on head diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td -index 4e1afbe..4d0bf35 100644 +index 4eb5647..beecc5d 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td -@@ -1134,6 +1134,11 @@ def march_EQ : Joined<["-"], "march=">, Group; +@@ -1153,6 +1153,11 @@ def march_EQ : Joined<["-"], "march=">, Group; def masm_EQ : Joined<["-"], "masm=">, Group, Flags<[DriverOption]>; def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group; def mconstant_cfstrings : Flag<["-"], "mconstant-cfstrings">, Group; @@ -52,10 +44,10 @@ index 412840b..8d88f96 100644 SanitizerArgs.cpp Tool.cpp diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index 07a5e42..8b3a846 100644 +index 5451132..54df2f8 100644 --- a/lib/Driver/Driver.cpp +++ b/lib/Driver/Driver.cpp -@@ -2079,12 +2079,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, +@@ -2053,12 +2053,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, TC = new toolchains::Generic_GCC(*this, Target, Args); break; case llvm::Triple::GNU: @@ -154,11 +146,11 @@ index 0000000..3b6901c + switch (AC) { + case Action::PreprocessJobClass: + if (!Preprocess) -+ Preprocess.reset(new tools::gcc::Preprocess(*this)); ++ Preprocess.reset(new tools::gcc::Preprocessor(*this)); + return Preprocess.get(); + case Action::CompileJobClass: + if (!Compile) -+ Compile.reset(new tools::gcc::Compile(*this)); ++ Compile.reset(new tools::gcc::Compiler(*this)); + return Compile.get(); + default: + return ToolChain::getTool(AC); @@ -267,11 +259,11 @@ index 0000000..3b6901c +#endif +} diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h -index d1b681f..af3ad72 100644 +index 4f50af0..dc32f6e 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h -@@ -549,6 +549,35 @@ protected: - +@@ -525,6 +525,35 @@ protected: + Tool *buildLinker() const override; }; +class LLVM_LIBRARY_VISIBILITY MinGW : public ToolChain { @@ -299,18 +291,18 @@ index d1b681f..af3ad72 100644 + +private: + std::string GCCVersion; -+ mutable std::unique_ptr Preprocess; -+ mutable std::unique_ptr Compile; ++ mutable std::unique_ptr Preprocess; ++ mutable std::unique_ptr Compile; +}; + - class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic_ELF { public: + OpenBSD(const Driver &D, const llvm::Triple &Triple, diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 7b661a7..35aea3b 100644 +index 1b990cf..605e935 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp -@@ -8607,6 +8607,210 @@ std::unique_ptr visualstudio::Compile::GetCommand( +@@ -8774,6 +8774,211 @@ std::unique_ptr visualstudio::Compiler::GetCommand( CmdArgs); } @@ -518,14 +510,15 @@ index 7b661a7..35aea3b 100644 + Args.MakeArgString(TC.GetProgramPath("ld")); + C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); +} - ++ /// XCore Tools // We pass assemble and link construction to the xcc tool. + diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h -index e8edaeb..43fd064 100644 +index d57df1c..fdfcb2d 100644 --- a/lib/Driver/Tools.h +++ b/lib/Driver/Tools.h -@@ -659,6 +659,39 @@ namespace visualstudio { +@@ -672,6 +672,39 @@ public: }; } // end namespace visualstudio @@ -566,7 +559,7 @@ index e8edaeb..43fd064 100644 StringRef getARMFloatABI(const Driver &D, const llvm::opt::ArgList &Args, const llvm::Triple &Triple); diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp -index 2bd999e..b01b546 100644 +index bf8470e..ab81a54 100644 --- a/lib/Frontend/InitHeaderSearch.cpp +++ b/lib/Frontend/InitHeaderSearch.cpp @@ -82,11 +82,6 @@ public: @@ -687,5 +680,5 @@ index 2bd999e..b01b546 100644 if (llvm::sys::fs::exists("/usr/lib/gcc47")) AddPath("/usr/include/c++/4.7", CXXSystem, false); -- -2.3.5 +2.4.5 diff --git a/mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch b/mingw-w64-clang-svn/0012-Fixup-all-windows-ARM-targets.patch similarity index 100% rename from mingw-w64-clang-svn/0002-Fixup-all-windows-ARM-targets.patch rename to mingw-w64-clang-svn/0012-Fixup-all-windows-ARM-targets.patch diff --git a/mingw-w64-clang-svn/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch b/mingw-w64-clang-svn/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch new file mode 100644 index 0000000000..90824a9c31 --- /dev/null +++ b/mingw-w64-clang-svn/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch @@ -0,0 +1,26 @@ +From 57def79f5d6e97f5b353b22a5fb856e627cdf061 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sun, 28 Jun 2015 19:12:19 +0100 +Subject: [PATCH] Set the x86 arch name to i686 for mingw-w64 + + +diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp +index 5451132..a6852b6 100644 +--- a/lib/Driver/Driver.cpp ++++ b/lib/Driver/Driver.cpp +@@ -1991,6 +1991,12 @@ static llvm::Triple computeTargetTriple(StringRef DefaultTargetTriple, + + if (AT != llvm::Triple::UnknownArch && AT != Target.getArch()) + Target.setArch(AT); ++ ++ // Override the default ArchName of 'i386' for mingw-w64 targets when passed -m32. ++ if (AT == llvm::Triple::x86 && Target.isWindowsGNUEnvironment() && ++ Target.getVendorName().equals(StringRef("w64"))) ++ Target.setArchName(StringRef("i686")); ++ + } + + return Target; +-- +2.4.5 + diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 407dbcade4..2766a3bb23 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -9,8 +9,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-lld-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn") -#pkgname="${MINGW_PACKAGE_PREFIX}-llvm-toolchain-svn" -pkgver=57103.e235fc4 +pkgver=57687.057d264 pkgrel=1 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') @@ -29,17 +28,21 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" #"rt"::"git+http://llvm.org/git/compiler-rt.git" #"testsuite"::"git+http://llvm.org/git/test-suite.git" #"libcxx"::"git+http://llvm.org/git/libcxx.git" - 0001-Add-Clang-MinGW-w64-driver.patch - 0002-Fixup-all-windows-ARM-targets.patch - 0003-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch) + 0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch + 0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch + 0011-Add-Clang-MinGW-w64-driver.patch + 0012-Fixup-all-windows-ARM-targets.patch + 0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch) md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - 'dae2bcb5bb68ce01eb2f806c6fadccf5' + '9b93c8e61c7480c551564d06c08291aa' + 'a384d4607d9dcdfdcac6912ac413ec58' + '83c43cba3e371596de5998a9ff7f4eb5' '6c31dc05b01f038d10ceb5e88c5fe9f5' - '9b93c8e61c7480c551564d06c08291aa') + 'e6ce086a33256043af99a5690b251be8') pkgver_internal() { if [ ! -d "$1" ]; then @@ -57,7 +60,8 @@ pkgver() { prepare() { cd "${srcdir}"/llvm - git am "${srcdir}"/0003-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch + git am "${srcdir}"/0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch + git am "${srcdir}"/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch # Fix docs installation directory sed -i 's:$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \ @@ -68,8 +72,9 @@ prepare() { cmake/modules/Makefile cd "${srcdir}"/clang - git am "${srcdir}"/0001-Add-Clang-MinGW-w64-driver.patch - git am "${srcdir}"/0002-Fixup-all-windows-ARM-targets.patch + git am "${srcdir}"/0011-Add-Clang-MinGW-w64-driver.patch + git am "${srcdir}"/0012-Fixup-all-windows-ARM-targets.patch + git am "${srcdir}"/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch cd "${srcdir}" mv lld llvm/tools/lld @@ -81,7 +86,6 @@ prepare() { } build() { - [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} # Include location of libffi headers in CPPFLAGS @@ -91,19 +95,17 @@ build() { # "Ninja" cant install each component seperately # https://github.com/martine/ninja/issues/932 - # "MSYS Makefiles" - # msys python2 cannot be used with mingw cmake because of path conversions - - PATH=${MINGW_PREFIX}/bin \ + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ - -G"MinGW Makefiles" \ + -G"MSYS Makefiles" \ + -DCMAKE_MAKE_PROGRAM="/usr/bin/make.exe" \ -DCMAKE_C_COMPILER="${MINGW_PREFIX}/bin/gcc.exe" \ -DCMAKE_CXX_COMPILER="${MINGW_PREFIX}/bin/g++.exe" \ -DFFI_INCLUDE_DIR="${FFI_INCLUDE_DIR}" \ -DCMAKE_C_FLAGS="${CFLAGS}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS} ${CPPFLAGS}" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_TARGETS_TO_BUILD="ARM;CppBackend;X86" \ -DLLVM_ENABLE_ASSERTIONS=OFF \ @@ -113,25 +115,7 @@ build() { -DLLVM_ENABLE_SPHINX=ON \ ../llvm -# ../llvm/configure \ -# -C \ -# --prefix=${MINGW_PREFIX} \ -# --build=${MINGW_CHOST} \ -# --host=${MINGW_CHOST} \ -# --with-sysroot=${MINGW_PREFIX} \ -# --enable-targets=arm,cpp,x86,x86_64 \ -# --enable-optimized \ -# --disable-assertions \ -# --disable-pthreads \ -# --with-python=/usr/bin/python2 \ -# --enable-libffi \ -# --enable-docs - - #ninja - mingw32-make - #make -C ../llvm/docs -f Makefile.sphinx man - #make -C ../llvm/docs -f Makefile.sphinx html - #make -C ../llvm/tools/clang/docs -f Makefile.sphinx html + make } #check() { @@ -140,39 +124,6 @@ build() { # make check || true #} -#Suite package - -package_llvm-toolchain(){ - pkgdesc="Low Level Virtual Machine Suite" - provides=("${MINGW_PACKAGE_PREFIX}-llvm" - "${MINGW_PACKAGE_PREFIX}-lld" - "${MINGW_PACKAGE_PREFIX}-clang" - "${MINGW_PACKAGE_PREFIX}-clang-tools-extra" - "${MINGW_PACKAGE_PREFIX}-clang-analyzer") - - conflicts=("${MINGW_PACKAGE_PREFIX}-llvm" - "${MINGW_PACKAGE_PREFIX}-lld" - "${MINGW_PACKAGE_PREFIX}-clang" - "${MINGW_PACKAGE_PREFIX}-clang-tools-extra" - "${MINGW_PACKAGE_PREFIX}-clang-analyzer") - pkgver=$(pkgver_internal "${srcdir}"/llvm) - - cd build-${CARCH} - DESTDIR="$pkgdir" ninja install - mv ${pkgdir}/msys64${MINGW_PREFIX} ${pkgdir} - rm -rf ${pkgdir}/msys64 -} - -package_mingw-w64-i686-llvm-toolchain-svn(){ - package_llvm-toolchain -} - -package_mingw-w64-x86_64-llvm-toolchain-svn(){ - package_llvm-toolchain -} - -# Seperate Packages - package_clang(){ pkgdesc="C language family frontend for LLVM" depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") @@ -186,24 +137,12 @@ package_clang(){ mv build-${CARCH}/tools/clang/tools/extra clang-tools-extra-${CARCH} cd build-${CARCH}/tools/clang - #ninja clang install - mingw32-make -j1 DESTDIR="$pkgdir" install - - mv ${pkgdir}/msys64${MINGW_PREFIX} ${pkgdir} - rm -rf ${pkgdir}/msys64 - - # Fix mis-named clang doc folder (is llvm, should be clang) - #mv "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm "${pkgdir}"${MINGW_PREFIX}/share/doc/clang + make -j1 DESTDIR="$pkgdir" rebuild_cache install # .. Unmove cd "${srcdir}" mv clang-tools-extra llvm/tools/clang/tools/extra mv clang-tools-extra-${CARCH} build-${CARCH}/tools/clang/tools/extra - - # Install html docs - #install -d "${pkgdir}"${MINGW_PREFIX}/share/doc/clang/html - #cp -rf "${srcdir}"/llvm/tools/clang/docs/_build/html/* "${pkgdir}"${MINGW_PREFIX}/share/doc/clang/html/ - #rm -r "${pkgdir}"${MINGW_PREFIX}/share/doc/clang/html/_sources } package_clang-tools-extra(){ @@ -215,10 +154,7 @@ package_clang-tools-extra(){ pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang/tools/extra) cd "${srcdir}"/build-${CARCH}/tools/clang/tools/extra - mingw32-make -j1 DESTDIR="$pkgdir" install - - mv ${pkgdir}/msys64${MINGW_PREFIX} ${pkgdir} - rm -rf ${pkgdir}/msys64 + make -j1 DESTDIR="$pkgdir" rebuild_cache install } # package_compiler-rt(){ @@ -231,12 +167,9 @@ package_lld(){ provides=("${MINGW_PACKAGE_PREFIX}-lld") conflicts=("${MINGW_PACKAGE_PREFIX}-lld") pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/lld) - - cd build-${CARCH}/tools/lld - mingw32-make -j1 DESTDIR="$pkgdir" install - mv ${pkgdir}/msys64${MINGW_PREFIX} ${pkgdir} - rm -rf ${pkgdir}/msys64 + cd "${srcdir}"/build-${CARCH}/tools/lld + make -j1 DESTDIR="$pkgdir" rebuild_cache install } package_llvm(){ @@ -256,10 +189,7 @@ package_llvm(){ mv build-${CARCH}/tools/lld lld-${CARCH} cd build-${CARCH} - mingw32-make -j1 DESTDIR="$pkgdir" install - - mv ${pkgdir}/msys64${MINGW_PREFIX} ${pkgdir} - rm -rf ${pkgdir}/msys64 + make -j1 DESTDIR="$pkgdir" install # .. Unmove cd "${srcdir}" @@ -269,19 +199,11 @@ package_llvm(){ mv lld llvm/tools/lld mv lld-${CARCH} build-${CARCH}/tools/lld - # Install man pages - #install -d "${pkgdir}"${MINGW_PREFIX}/share/man/man1 - #cp "${srcdir}"/llvm/docs/_build/man/*.1 "${pkgdir}"${MINGW_PREFIX}/share/man/man1/ - - # Install html docs - #install -d "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html - #cp -rf "${srcdir}"/llvm/docs/_build/html/* "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html/ - #rm -r "${pkgdir}"${MINGW_PREFIX}/share/doc/llvm/html/_sources - # Install CMake stuff install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/modules/" install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/platforms/" + install -Dm644 "${srcdir}/build-${CARCH}"/share/llvm/cmake/LLVMConfig.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/LLVMConfig.cmake } package_clang-analyzer() { From f162b5d65ef9e28158249ae71a903d475c3bc374 Mon Sep 17 00:00:00 2001 From: David Grayson Date: Mon, 29 Jun 2015 11:18:05 -0700 Subject: [PATCH 1241/2060] catch: Update to 1.2.0. --- mingw-w64-catch/PKGBUILD | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mingw-w64-catch/PKGBUILD b/mingw-w64-catch/PKGBUILD index 26b41d385d..65baf5325d 100644 --- a/mingw-w64-catch/PKGBUILD +++ b/mingw-w64-catch/PKGBUILD @@ -2,22 +2,21 @@ _realname=catch pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.1 +pkgver=1.2.0 pkgrel=1 pkgdesc="Multi-paradigm automated test framework for C++ and Objective-C (mingw-w64)" arch=('any') url='https://github.com/philsquared/Catch' license=('custom') -# The README says to get the latest version from the "develop" branch. -_src="https://raw.githubusercontent.com/philsquared/Catch/develop" +_src="https://raw.githubusercontent.com/philsquared/Catch/v${pkgver}" source=( "${_src}/single_include/catch.hpp" "${_src}/LICENSE_1_0.txt" ) -sha256sums=('d8d143fc91809792b961b62b1fcfc9c36023d8ca54173c337394e95c6b617095' +sha256sums=('ccd4c1fec3cf0715961dcb86a60967d7bc91ae050e00c8f42d03698b3ff8f590' 'c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566') package() { From 13c9aa2b19801848563f4fcc20cad72550a308fc Mon Sep 17 00:00:00 2001 From: "U-warlock\\alexx" Date: Tue, 30 Jun 2015 16:32:00 +0300 Subject: [PATCH 1242/2060] === Rebuild with GCC-5.1.0. Part I === --- mingw-w64-binutils/PKGBUILD | 7 ++- mingw-w64-bzip2/PKGBUILD | 9 ++-- mingw-w64-c-ares/PKGBUILD | 9 ++-- mingw-w64-ca-certificates/PKGBUILD | 2 +- mingw-w64-crt-git/PKGBUILD | 2 +- mingw-w64-curl/PKGBUILD | 4 +- mingw-w64-dbus/PKGBUILD | 12 ++--- mingw-w64-expat/PKGBUILD | 6 +-- mingw-w64-fossil/PKGBUILD | 13 +++--- mingw-w64-gdb/PKGBUILD | 15 +++---- mingw-w64-gdbm/PKGBUILD | 4 +- mingw-w64-gettext/PKGBUILD | 2 +- mingw-w64-giflib/PKGBUILD | 10 ++--- mingw-w64-glib2/PKGBUILD | 35 +++++++-------- mingw-w64-gmp/PKGBUILD | 8 ++-- mingw-w64-gnutls/PKGBUILD | 2 +- mingw-w64-headers-git/PKGBUILD | 2 +- mingw-w64-icu/PKGBUILD | 18 ++++---- mingw-w64-isl/PKGBUILD | 14 +++--- mingw-w64-jasper/PKGBUILD | 6 +-- mingw-w64-jsoncpp/PKGBUILD | 24 +++++----- mingw-w64-lcms/PKGBUILD | 13 +++--- mingw-w64-lcms2/PKGBUILD | 11 ++--- mingw-w64-libarchive/PKGBUILD | 10 ++--- mingw-w64-libffi/PKGBUILD | 3 +- mingw-w64-libgcrypt/PKGBUILD | 16 +++---- mingw-w64-libgpg-error/PKGBUILD | 10 ++--- mingw-w64-libiconv/PKGBUILD | 20 ++++----- mingw-w64-libidn/PKGBUILD | 11 ++--- mingw-w64-libjpeg-turbo/PKGBUILD | 23 +++++----- mingw-w64-libmangle-git/PKGBUILD | 2 +- mingw-w64-libmng/PKGBUILD | 13 +++--- mingw-w64-libpng/PKGBUILD | 24 +++++----- mingw-w64-libssh2/PKGBUILD | 6 +-- mingw-w64-libsystre/PKGBUILD | 2 +- mingw-w64-libtasn1/PKGBUILD | 8 ++-- mingw-w64-libtiff/PKGBUILD | 2 +- mingw-w64-libtool/PKGBUILD | 21 ++++----- mingw-w64-libtre-git/PKGBUILD | 3 +- mingw-w64-libwebp/PKGBUILD | 13 +++--- mingw-w64-libxml2/PKGBUILD | 22 ++++------ mingw-w64-libxslt/PKGBUILD | 41 ++++++++---------- mingw-w64-libyaml/PKGBUILD | 6 +-- mingw-w64-lz4/PKGBUILD | 4 +- mingw-w64-lzo2/PKGBUILD | 9 ++-- mingw-w64-mpc/PKGBUILD | 8 ++-- mingw-w64-mpfr/PKGBUILD | 8 ++-- mingw-w64-nasm/PKGBUILD | 3 +- mingw-w64-ncurses/PKGBUILD | 2 +- mingw-w64-nettle/PKGBUILD | 4 +- mingw-w64-openssl/PKGBUILD | 17 +++----- mingw-w64-p11-kit/PKGBUILD | 11 +++-- mingw-w64-pkg-config/PKGBUILD | 4 +- mingw-w64-python2/PKGBUILD | 2 +- mingw-w64-python3/PKGBUILD | 2 +- mingw-w64-readline/PKGBUILD | 8 ++-- mingw-w64-rtmpdump-git/PKGBUILD | 2 +- mingw-w64-sqlite3/PKGBUILD | 13 +++--- mingw-w64-tcl/PKGBUILD | 24 ++++++---- mingw-w64-termcap/PKGBUILD | 6 +-- mingw-w64-tk/PKGBUILD | 34 +++++++++------ mingw-w64-tools-git/PKGBUILD | 2 +- mingw-w64-winpthreads-git/PKGBUILD | 2 +- mingw-w64-xpm-nox/PKGBUILD | 2 +- mingw-w64-xpm-nox/xpm-nox-4.2.0.tar.bz2 | Bin 0 -> 135277 bytes mingw-w64-xz/PKGBUILD | 17 ++++---- mingw-w64-yasm/PKGBUILD | 7 +-- ...010-unzip-add-function-unzOpenBuffer.patch | 4 +- mingw-w64-zlib/PKGBUILD | 4 +- 69 files changed, 343 insertions(+), 340 deletions(-) create mode 100644 mingw-w64-xpm-nox/xpm-nox-4.2.0.tar.bz2 diff --git a/mingw-w64-binutils/PKGBUILD b/mingw-w64-binutils/PKGBUILD index 304b29d009..71ea8994e3 100644 --- a/mingw-w64-binutils/PKGBUILD +++ b/mingw-w64-binutils/PKGBUILD @@ -4,7 +4,7 @@ _realname=binutils pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.25 -pkgrel=4 +pkgrel=5 pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('any') url="http://www.gnu.org/software/binutils/" @@ -15,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' '!distcc' '!ccache') # 'debug' '!strip') #install=binutils.install -source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2{,.sig} +source=(ftp://ftp.gnu.org/gnu/binutils/${_realname}-${pkgver}.tar.bz2{,.sig} 0001-enable-gold-on.mingw32.patch 0002-check-for-unusual-file-harder.patch 0003-enable-shared-bfd.all.patch @@ -86,8 +86,7 @@ build() { CFLAGS+=" -O0" fi - cd $srcdir - rm -rf build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ diff --git a/mingw-w64-bzip2/PKGBUILD b/mingw-w64-bzip2/PKGBUILD index e8edcdd9a7..afb0e98065 100644 --- a/mingw-w64-bzip2/PKGBUILD +++ b/mingw-w64-bzip2/PKGBUILD @@ -4,7 +4,7 @@ _realname=bzip2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.6 -pkgrel=3 +pkgrel=4 pkgdesc="A high-quality data compression program (mingw-w64)" arch=('any') url="http://sources.redhat.com/bzip2" @@ -27,7 +27,7 @@ sha1sums=('3f89f861209ce81a6bab1fd1998c0ef311712002' '353b74786f3f8fcddb73691780280a72ef77b85d') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i "$srcdir/"bzip2-1.0.4-bzip2recover.patch patch -p1 -i "$srcdir/"bzip2-1.0.5-slash.patch patch -p1 -i "$srcdir/"bzgrep-debian-1.0.5-6.all.patch @@ -41,7 +41,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -58,8 +58,7 @@ check() { package() { cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + make DESTDIR="${pkgdir}" install # rm "${pkgdir}${MINGW_PREFIX}/bin/bz"{diff,grep,more} install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-c-ares/PKGBUILD b/mingw-w64-c-ares/PKGBUILD index 2c6f101dbd..9654becca5 100644 --- a/mingw-w64-c-ares/PKGBUILD +++ b/mingw-w64-c-ares/PKGBUILD @@ -1,17 +1,16 @@ # Maintainer: Alexey Pavlov _realname=c-ares - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.10.0 -pkgrel=1 +pkgrel=2 pkgdesc="C library that performs DNS requests and name resolves asynchronously (mingw-w64)" arch=('any') url="http://c-ares.haxx.se/" license=("MIT, BSD") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=(strip staticlibs) -source=("http://c-ares.haxx.se/download/${_realname}-$pkgver.tar.gz"{,.asc} +source=("http://c-ares.haxx.se/download/${_realname}-${pkgver}.tar.gz"{,.asc} 0001-Use-RPM-compiler-options.patch) sha1sums=('e44e6575d5af99cb3a38461486e1ee8b49810eb5' 'SKIP' @@ -27,7 +26,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -38,5 +37,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-ca-certificates/PKGBUILD b/mingw-w64-ca-certificates/PKGBUILD index 31356fb385..23af1e1fe7 100644 --- a/mingw-w64-ca-certificates/PKGBUILD +++ b/mingw-w64-ca-certificates/PKGBUILD @@ -3,7 +3,7 @@ _realname=ca-certificates pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=20150426 -pkgrel=1 +pkgrel=2 pkgdesc='Common CA certificates (mingw-w64)' arch=('any') url='http://packages.qa.debian.org/c/ca-certificates.html' diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 48ffa405a4..15cc5cfe76 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4507.5495a11 +pkgver=5.0.0.4509.2e5a9a2 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 210e2681ec..fe4eeecdbb 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -6,7 +6,7 @@ _variant=-openssl _realname=curl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=7.43.0 -pkgrel=1 +pkgrel=2 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" @@ -69,7 +69,7 @@ build() { _variant_config+=("--with-ca-bundle=${MINGW_PREFIX}/ssl/certs/ca-bundle.crt") fi cd "${srcdir}/build-${CARCH}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-dbus/PKGBUILD b/mingw-w64-dbus/PKGBUILD index 5fc5560353..d5d3f87b60 100644 --- a/mingw-w64-dbus/PKGBUILD +++ b/mingw-w64-dbus/PKGBUILD @@ -2,7 +2,7 @@ _realname=dbus pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.9.10 +pkgver=1.9.16 pkgrel=1 arch=('any') pkgdesc="Freedesktop.org message bus system (mingw-w64)" @@ -16,18 +16,18 @@ options=('strip' 'staticlibs') license=("BSD") url="http://www.freedesktop.org/wiki/Software/dbus" source=("http://dbus.freedesktop.org/releases/dbus/${_realname}-${pkgver}.tar.gz"{,.asc}) -md5sums=('72390a741009017258c00a3268daa728' +md5sums=('1bd7617fb3e665817e2bc70de8a7c0bf' 'SKIP') prepare() { - cd "${srcdir}"/dbus-${pkgver} + cd "${srcdir}"/${_realname}-${pkgver} } build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} - ../dbus-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ @@ -43,6 +43,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-expat/PKGBUILD b/mingw-w64-expat/PKGBUILD index e911a1c393..e90c65e02c 100644 --- a/mingw-w64-expat/PKGBUILD +++ b/mingw-w64-expat/PKGBUILD @@ -4,7 +4,7 @@ _realname=expat pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.0 -pkgrel=5 +pkgrel=6 pkgdesc="An XML parser library (mingw-w64)" arch=('any') url="http://expat.sourceforge.net" @@ -28,7 +28,7 @@ build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -41,6 +41,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-fossil/PKGBUILD b/mingw-w64-fossil/PKGBUILD index c8ebc866bc..d536a69936 100644 --- a/mingw-w64-fossil/PKGBUILD +++ b/mingw-w64-fossil/PKGBUILD @@ -6,7 +6,7 @@ _realname=fossil pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.33 -pkgrel=1 +pkgrel=2 pkgdesc='Simple, high-reliability, distributed software configuration management (mingw-w64)' arch=('any') license=('BSD') @@ -29,18 +29,21 @@ prepare() { } build() { - mkdir -p "${srcdir}/build-${CARCH}" - cd "${srcdir}/build-${CARCH}" - MSYS2_ARG_CONV_EXCL=--prefix ../${_realname}-src-${pkgver}/configure \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL=--prefix \ + ../${_realname}-src-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --disable-internal-sqlite + make \ CFLAGS+="-DBROKEN_MINGW_CMDLINE=not_actually_broken" } package() { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-gdb/PKGBUILD b/mingw-w64-gdb/PKGBUILD index 404ee68e59..9a12023873 100644 --- a/mingw-w64-gdb/PKGBUILD +++ b/mingw-w64-gdb/PKGBUILD @@ -2,12 +2,12 @@ # Contributor: Ray Donnelly _realname=gdb -_gcc_ver=4.9.2 +_gcc_ver=5.1.0 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") # Until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62279 is # fixed, we will stick with 7.6.2 which hasn't got this bug.. pkgver=7.9.1 -pkgrel=1 +pkgrel=2 pkgdesc="GNU Debugger (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gdb/" @@ -20,13 +20,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-expat" checkdepends=('dejagnu' 'bc') makedepends=("${MINGW_PACKAGE_PREFIX}-iconv" "${MINGW_PACKAGE_PREFIX}-ncurses" - "${MINGW_PACKAGE_PREFIX}-xz" - "${MINGW_PACKAGE_PREFIX}-zlib") + "${MINGW_PACKAGE_PREFIX}-xz") options=('staticlibs' '!distcc' '!ccache') -source=(http://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.xz{,.sig} +source=(http://ftp.gnu.org/gnu/gdb/${_realname}-${pkgver}.tar.xz{,.sig} 'gdbinit' 'gdb-fix-display-tabs-on-mingw.patch' -# 'gdb-mingw-gcc-4.7.patch' + #'gdb-mingw-gcc-4.7.patch' 'gdb-7.8.1-mingw-gcc-4.7.patch' 'gdb-7.6.2-mingw-gcc-4.7.patch' 'gdb-perfomance.patch' @@ -41,7 +40,7 @@ md5sums=('35374c77a70884eb430c97061053a36e' 'd7112b220466a294aa266bb4d5c06a59') prepare() { - cd ${srcdir}/gdb-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} # https://sourceware.org/ml/gdb-patches/2013-11/msg00224.html #patch -p1 -i ${srcdir}/gdb-fix-display-tabs-on-mingw.patch @@ -62,7 +61,7 @@ build() { mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/gdb-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ diff --git a/mingw-w64-gdbm/PKGBUILD b/mingw-w64-gdbm/PKGBUILD index 541d821f53..82268ed24b 100644 --- a/mingw-w64-gdbm/PKGBUILD +++ b/mingw-w64-gdbm/PKGBUILD @@ -3,7 +3,7 @@ _realname=gdbm pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.11 -pkgrel=2 +pkgrel=3 pkgdesc="GNU database library (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gdbm/gdbm.html" @@ -35,7 +35,7 @@ build() { mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index b69475793e..256b6d18de 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -4,7 +4,7 @@ _realname=gettext pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.19.4 -pkgrel=3 +pkgrel=4 arch=('any') pkgdesc="GNU internationalization library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" diff --git a/mingw-w64-giflib/PKGBUILD b/mingw-w64-giflib/PKGBUILD index d58a7c97be..6b2e434325 100644 --- a/mingw-w64-giflib/PKGBUILD +++ b/mingw-w64-giflib/PKGBUILD @@ -3,7 +3,7 @@ _realname=giflib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.1.1 -pkgrel=1 +pkgrel=2 pkgdesc="A library for reading and writing gif images (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/giflib" @@ -17,8 +17,8 @@ md5sums=('1c39333192712788c6568c78a949f13e' 'e39b98822334f2bd2009469e5dea65c5') prepare() { - cd "$srcdir/giflib-$pkgver" - patch -Np1 -i "$srcdir/giflib-5.0.4-include-stddef.patch" + cd "${srcdir}/${_realname}-${pkgver}" + patch -Np1 -i "${srcdir}/giflib-5.0.4-include-stddef.patch" } build() { @@ -26,7 +26,7 @@ build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -37,5 +37,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" bin_PROGRAMS='' install + make DESTDIR="${pkgdir}" bin_PROGRAMS='' install } diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 82711f8a3a..287a170f9d 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -4,7 +4,7 @@ _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.44.1 -pkgrel=1 +pkgrel=2 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" @@ -12,11 +12,11 @@ license=(LGPL2) options=('!debug' 'strip' 'staticlibs') install=glib2-${CARCH}.install depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-libffi") + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2") -source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.tar.xz" +source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-${pkgver}.tar.xz" 0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch 0003-g_abort.all.patch 0004-glib-prefer-constructors-over-DllMain.patch @@ -42,7 +42,7 @@ md5sums=('83efba4722a9674b97437d1d99af79db' '6c06cdfcbf877fb560e0be393a043d56') prepare() { - cd "$srcdir/glib-$pkgver" + cd "${srcdir}/glib-${pkgver}" patch -Np1 -i "$srcdir/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch" patch -Np1 -i "$srcdir/0003-g_abort.all.patch" @@ -59,14 +59,11 @@ prepare() { NOCONFIGURE=1 ./autogen.sh } -build() -{ - cd "$srcdir/glib-$pkgver" - +build() { export MSYS2_ARG_CONV_EXCL="-//OASIS//DTD" msg "Build shared version" - mkdir $srcdir/build-${CARCH}-shared && cd $srcdir/build-${CARCH}-shared - ../glib-$pkgver/configure \ + mkdir ${srcdir}/build-${CARCH}-shared && cd ${srcdir}/build-${CARCH}-shared + ../glib-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -79,8 +76,8 @@ build() make msg "Build static version" - mkdir $srcdir/build-${CARCH}-static && cd $srcdir/build-${CARCH}-static - ../glib-$pkgver/configure \ + mkdir ${srcdir}/build-${CARCH}-static && cd ${srcdir}/build-${CARCH}-static + ../glib-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -94,13 +91,13 @@ build() } package() { - cd "$srcdir/build-${CARCH}-static" - make DESTDIR="$pkgdir/static" install + cd "${srcdir}/build-${CARCH}-static" + make DESTDIR="${pkgdir}/static" install - cd "$srcdir/build-${CARCH}-shared" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${CARCH}-shared" + make DESTDIR="${pkgdir}" install - mv "$pkgdir/static/${MINGW_PREFIX}/lib/"*.a "$pkgdir/${MINGW_PREFIX}/lib/" + mv "${pkgdir}/static/${MINGW_PREFIX}/lib/"*.a "${pkgdir}/${MINGW_PREFIX}/lib/" rm -rf "${pkgdir}/static" diff --git a/mingw-w64-gmp/PKGBUILD b/mingw-w64-gmp/PKGBUILD index 19d556e500..0a5c7dd871 100644 --- a/mingw-w64-gmp/PKGBUILD +++ b/mingw-w64-gmp/PKGBUILD @@ -1,11 +1,10 @@ # Maintainer: Alexey Pavlov _realname=gmp - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=6.0.0 -pkgrel=2 -pkgdesc="A free library for arbitrary precision arithmetic" +pkgrel=3 +pkgdesc="A free library for arbitrary precision arithmetic (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") url="http://gmplib.org/" @@ -20,7 +19,8 @@ build() { # Build static version mkdir -p "${srcdir}/build-static-${CARCH}" && cd "${srcdir}/build-static-${CARCH}" - ../${_realname}-${pkgver}/configure --build=${MINGW_CHOST} \ + ../${_realname}-${pkgver}/configure \ + --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --enable-cxx \ --enable-static \ diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index e24a2a9d9a..a248150703 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -3,7 +3,7 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.4.2 -pkgrel=1 +pkgrel=2 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') license=('GPL3' 'LGPL2.1') diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index b839e91fa3..d2d569a4d7 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4507.5495a11 +pkgver=5.0.0.4509.2e5a9a2 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" diff --git a/mingw-w64-icu/PKGBUILD b/mingw-w64-icu/PKGBUILD index 920c42be49..350d62f105 100644 --- a/mingw-w64-icu/PKGBUILD +++ b/mingw-w64-icu/PKGBUILD @@ -4,7 +4,7 @@ _realname=icu pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-libs") pkgver=55.1 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="International Components for Unicode library (mingw-w64)" arch=('any') @@ -38,7 +38,7 @@ md5sums=('e2d523df79d6cb7855c2fbe284f4db29' 'd1accfbefbcd399a4a28a4a4e0737915' '3f13cf5733c4a9363c5823a24d3fba85') prepare() { - cd "$srcdir/icu" + cd "${srcdir}/icu" patch -p1 -i "$srcdir"/0004-move-to-bin.mingw.patch patch -p1 -i "$srcdir"/0007-actually-move-to-bin.mingw.patch @@ -57,7 +57,7 @@ prepare() { build() { local -a extra_config - cd "$srcdir/icu/" + cd "${srcdir}/icu/" # For ICU we ignore the options for debug above and always # build both debug and release (and static and shared). # This is because ICU people want the debug libraries be @@ -90,16 +90,16 @@ build() { check() { for _variant in debug release; do - pushd "$srcdir/icu/build-${CARCH}-${_variant}" - PATH=$srcdir/icu/build-${CARCH}/bin:$srcdir/icu/build-${CARCH}/lib:$PATH \ + pushd "${srcdir}/icu/build-${CARCH}-${_variant}" + PATH=${srcdir}/icu/build-${CARCH}/bin:${srcdir}/icu/build-${CARCH}/lib:$PATH \ make V=1 -k check popd done } package_icu() { - pushd "$srcdir/icu/build-${CARCH}-release" - make install DESTDIR="$pkgdir" + pushd "${srcdir}/icu/build-${CARCH}-release" + make install DESTDIR="${pkgdir}" mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ mv "${pkgdir}${MINGW_PREFIX}"/bin/*.a "${pkgdir}${MINGW_PREFIX}"/lib/ @@ -115,8 +115,8 @@ package_icu() { package_icu-debug-libs() { options=('debug' '!strip') - pushd "$srcdir/icu/build-${CARCH}-debug" - make install DESTDIR="$pkgdir" + pushd "${srcdir}/icu/build-${CARCH}-debug" + make install DESTDIR="${pkgdir}" mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ mv "${pkgdir}${MINGW_PREFIX}"/bin/*.a "${pkgdir}${MINGW_PREFIX}"/lib/ diff --git a/mingw-w64-isl/PKGBUILD b/mingw-w64-isl/PKGBUILD index 33e160981d..f41c84c401 100644 --- a/mingw-w64-isl/PKGBUILD +++ b/mingw-w64-isl/PKGBUILD @@ -3,7 +3,7 @@ _realname=isl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.14.1 -pkgrel=1 +pkgrel=2 pkgdesc="Library for manipulating sets and relations of integer points bounded by linear constraints" arch=('any') url="http://isl.gforge.inria.fr/" @@ -18,14 +18,16 @@ md5sums=('94fcd11e0b1c79250ae341affb1845ea' '38c67a10e197acb83217be17075070f9') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/isl-0.14.1-no-undefined.patch autoreconf -fi } build() { - cd "$srcdir/${_realname}-$pkgver" - ./configure --prefix=${MINGW_PREFIX} \ + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --enable-static \ --disable-shared \ @@ -35,11 +37,11 @@ build() { } check() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/build-${MINGW_CHOST}" make check } package() { - cd "${srcdir}/${_realname}-${pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-jasper/PKGBUILD b/mingw-w64-jasper/PKGBUILD index 1e84ce1ffc..324afe93b6 100644 --- a/mingw-w64-jasper/PKGBUILD +++ b/mingw-w64-jasper/PKGBUILD @@ -3,7 +3,7 @@ _realname=jasper pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.900.1 -pkgrel=3 +pkgrel=4 pkgdesc="A software-based implementation of the codec specified in the emerging JPEG-2000 Part-1 standard (mingw-w64)" arch=('any') url="http://www.ece.uvic.ca/~mdadams/jasper" @@ -93,7 +93,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -111,5 +111,5 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-jsoncpp/PKGBUILD b/mingw-w64-jsoncpp/PKGBUILD index 72f9b71018..545334c09e 100644 --- a/mingw-w64-jsoncpp/PKGBUILD +++ b/mingw-w64-jsoncpp/PKGBUILD @@ -3,7 +3,7 @@ _realname=jsoncpp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.2 -pkgrel=1 +pkgrel=2 pkgdesc="A C++ library for interacting with JSON (mingw-w64)" arch=('any') url="https://github.com/open-source-parsers/jsoncpp" @@ -13,30 +13,26 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2" ) options=('staticlibs' '!strip' '!buildflags') -source=("https://github.com/open-source-parsers/jsoncpp/archive/$pkgver.tar.gz") +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/open-source-parsers/jsoncpp/archive/${pkgver}.tar.gz") md5sums=('5a62da8b5c5b0e46a0e782e7363aee3d') build() { - mkdir "${srcdir}/build-${CARCH}" - cd "${srcdir}/build-${CARCH}" + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH="${pkgdir}/${MINGW_PREFIX}" \ + -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ -DCMAKE_BUILD_TYPE=Release \ -DJSONCPP_WITH_CMAKE_PACKAGE=ON \ - "${srcdir}/${_realname}-$pkgver" + ../${_realname}-${pkgver} make } package() { - cd "${srcdir}/build-${CARCH}" - make install - - pushd "${pkgdir}${MINGW_PREFIX}" > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/jsoncpp.pc" + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-lcms/PKGBUILD b/mingw-w64-lcms/PKGBUILD index bd1d838dc1..5be75a6ff1 100644 --- a/mingw-w64-lcms/PKGBUILD +++ b/mingw-w64-lcms/PKGBUILD @@ -3,7 +3,7 @@ _realname=lcms pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.19 -pkgrel=4 +pkgrel=5 pkgdesc="Lightweight color management development library/engine (mingw-w64)" arch=(any) url="http://www.littlecms.com" @@ -25,7 +25,7 @@ md5sums=('8af94611baf20d9646c7c2c285859818' '4017f8307298d6f65e1cb5bce9684fa5') prepare(){ - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -Np1 -i "$srcdir/cve-2013-4276.patch" patch -Np1 -i "$srcdir/lcms-1.19-rhbz1003950.patch" patch -Np1 -i "$srcdir/lcms-1.19-rhbz675186.patch" @@ -36,7 +36,10 @@ prepare(){ } build() { - cd "${srcdir}/${_realname}-${pkgver}" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + cp -rf ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ./configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -48,6 +51,6 @@ build() { } package() { - cd "${srcdir}/${_realname}-${pkgver}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-lcms2/PKGBUILD b/mingw-w64-lcms2/PKGBUILD index c927ca87c5..1cadf4bc37 100644 --- a/mingw-w64-lcms2/PKGBUILD +++ b/mingw-w64-lcms2/PKGBUILD @@ -3,7 +3,7 @@ _realname=lcms2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.6 -pkgrel=3 +pkgrel=4 pkgdesc="Small-footprint color management engine, version 2 (mingw-w64)" arch=(any) url="http://www.littlecms.com" @@ -30,9 +30,10 @@ prepare() { } build() { - cd "$srcdir/${_realname}-$pkgver" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + cp -rf ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/${_realname}-${pkgver}" ./configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -45,6 +46,6 @@ build() { } package() { - cd "${srcdir}/${_realname}-${pkgver}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libarchive/PKGBUILD b/mingw-w64-libarchive/PKGBUILD index 64056c0209..f2f070cb02 100644 --- a/mingw-w64-libarchive/PKGBUILD +++ b/mingw-w64-libarchive/PKGBUILD @@ -3,7 +3,7 @@ _realname=libarchive pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.1.2 -pkgrel=6 +pkgrel=7 pkgdesc="library that can create and read several streaming archive formats (mingw-w64)" arch=('any') url="http://www.libarchive.org" @@ -20,7 +20,7 @@ depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-xz ${MINGW_PACKAGE_PREFIX}-zlib) options=('!libtool' 'strip') -source=("http://libarchive.org/downloads/libarchive-$pkgver.tar.gz" +source=("http://libarchive.org/downloads/${_realname}-${pkgver}.tar.gz" "0001-mtree-fix-line-filename-length-calculation.patch" 'libarchive-3.1.3-CVE-2013-0211_read_buffer_overflow.patch') md5sums=('efad5a503f66329bb9d2f4308b5de98a' @@ -28,7 +28,7 @@ md5sums=('efad5a503f66329bb9d2f4308b5de98a' '6954a585c309dc548d1f2b05f2f3cfcb') prepare() { - cd "$srcdir/libarchive-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -Np1 -i "$srcdir/0001-mtree-fix-line-filename-length-calculation.patch" patch -Np1 -i "$srcdir/libarchive-3.1.3-CVE-2013-0211_read_buffer_overflow.patch" } @@ -37,7 +37,7 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -50,5 +50,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libffi/PKGBUILD b/mingw-w64-libffi/PKGBUILD index 1d87a18f41..9cd145e9bf 100644 --- a/mingw-w64-libffi/PKGBUILD +++ b/mingw-w64-libffi/PKGBUILD @@ -4,7 +4,7 @@ _realname=libffi pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.2.1 -pkgrel=2 +pkgrel=3 pkgdesc="A portable, high level programming interface to various calling conventions (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -20,6 +20,7 @@ prepare() { } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ diff --git a/mingw-w64-libgcrypt/PKGBUILD b/mingw-w64-libgcrypt/PKGBUILD index 5bcba1d77a..43cc255bdd 100644 --- a/mingw-w64-libgcrypt/PKGBUILD +++ b/mingw-w64-libgcrypt/PKGBUILD @@ -3,16 +3,16 @@ _realname=libgcrypt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.3 -pkgrel=1 +pkgrel=2 pkgdesc="General purpose cryptographic library based on the code from GnuPG (mingw-w64)" arch=('any') url="http://www.gnupg.org" license=('LGPL') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libgpg-error") groups=("${MINGW_PACKAGE_PREFIX}") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libgpg-error" "${MINGW_PACKAGE_PREFIX}-ghostscript") # "transfig" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libgpg-error") # "transfig""${MINGW_PACKAGE_PREFIX}-ghostscript" options=('staticlibs' 'strip') -source=("ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${pkgver}.tar.bz2" +source=("ftp://ftp.gnupg.org/gcrypt/libgcrypt/${_realname}-${pkgver}.tar.bz2" 'libgcrypt-mingw64-use-correct-datatype-for-GetProcessWorkingSet.patch' 'libgcrypt-use-correct-def-file.patch' 'libgcrypt-use-correct-asm-code-for-win64.patch' @@ -24,7 +24,7 @@ md5sums=('4262c3aadf837500756c2051a5c4ae5e' 'c29a3e3e1664229eca2198c2328af5f4') prepare() { - cd "${srcdir}/libgcrypt-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" patch -p0 -i "$srcdir"/libgcrypt-mingw64-use-correct-datatype-for-GetProcessWorkingSet.patch patch -p0 -i "$srcdir"/libgcrypt-use-correct-def-file.patch #patch -p0 -i "$srcdir"/libgcrypt-use-correct-asm-code-for-win64.patch @@ -34,8 +34,8 @@ prepare() { } build() { - cp -r "$srcdir/libgcrypt-${pkgver}" "$srcdir/build-${CARCH}" - cd "$srcdir/build-${CARCH}" + cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" [[ $CARCH == x86_64 ]] && BUILD_ASM="--disable-asm --disable-padlock-support" || BUILD_ASM="" ./configure \ --prefix=${MINGW_PREFIX} \ @@ -50,7 +50,7 @@ build() { } package() { - cd "$srcdir/build-${CARCH}" - make DESTDIR="$pkgdir" install -j1 + cd "${srcdir}/build-${CARCH}" + make DESTDIR="${pkgdir}" install -j1 find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-libgpg-error/PKGBUILD b/mingw-w64-libgpg-error/PKGBUILD index 8e4a4749da..b3cf82bec4 100644 --- a/mingw-w64-libgpg-error/PKGBUILD +++ b/mingw-w64-libgpg-error/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgpg-error pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.19 -pkgrel=1 +pkgrel=2 pkgdesc="Support library for libgcrypt (mingw-w64)" arch=('any') url="http://www.gnupg.org" @@ -12,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext") groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') -source=("ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-${pkgver}.tar.bz2" +source=("ftp://ftp.gnupg.org/gcrypt/libgpg-error/${_realname}-${pkgver}.tar.bz2" 01-mingw32-fix-potomo.mingw.patch 02-fix-symbollist-on.mingw.patch 04-use-winpthreads.mingw.patch @@ -28,7 +28,7 @@ md5sums=('c04c16245b92829281f43b5bef7d16da' '14cc65006c4c19919182c56759be7b95') prepare() { - cd "$srcdir/libgpg-error-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/01-mingw32-fix-potomo.mingw.patch patch -p1 -i ${srcdir}/02-fix-symbollist-on.mingw.patch #patch -p1 -i ${srcdir}/03-fix-config-on.mingw.patch @@ -42,7 +42,7 @@ prepare() { build() { [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" - ../libgpg-error-$pkgver/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -55,5 +55,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libiconv/PKGBUILD b/mingw-w64-libiconv/PKGBUILD index 972e58db16..24120015ff 100644 --- a/mingw-w64-libiconv/PKGBUILD +++ b/mingw-w64-libiconv/PKGBUILD @@ -5,7 +5,7 @@ _realname=libiconv pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname} ${MINGW_PACKAGE_PREFIX}-iconv) pkgver=1.14 -pkgrel=4 +pkgrel=5 groups=("${MINGW_PACKAGE_PREFIX}") arch=('any') url='http://www.gnu.org/software/libiconv/' @@ -16,7 +16,7 @@ md5sums=('e34509b1623cec449dfeb73d7ce9c6c6' '8818b7fe31286f589d180713329eb893' '9e955ee7135d39970a086451d4b87520') options=('!libtool' 'staticlibs') -makedepends=(${MINGW_PACKAGE_PREFIX}-gcc rsync) +makedepends=(${MINGW_PACKAGE_PREFIX}-gcc) prepare() { cd $srcdir/${_realname}-${pkgver} @@ -25,10 +25,10 @@ prepare() { } build() { - msg2 'Synchronizing build directory' - rsync --recursive --times "${srcdir}/${_realname}-${pkgver}"/* "${srcdir}/build-${CARCH}-${_realname}-${pkgver}" - cd "${srcdir}/build-${CARCH}-${_realname}-${pkgver}" - ./configure --prefix=${MINGW_PREFIX} \ + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + + ../${_realname}-${pkgver}/configure --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -44,7 +44,7 @@ build() { } check() { - cd "${srcdir}/build-${CARCH}-${_realname}-${pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make check } @@ -52,7 +52,7 @@ _package_libiconv() { pkgdesc='Character encoding conversion library (mingw-w64)' license=(LGPL2 documentation:'GPL3') # This is LGPL except for documentation, see README - cd "${srcdir}/build-${CARCH}-${_realname}-${pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make install DESTDIR="${pkgdir}" rm -fr "${pkgdir}${MINGW_PREFIX}"/bin/*.exe rm -f "${pkgdir}${MINGW_PREFIX}"/lib/charset.alias @@ -71,9 +71,9 @@ _package_iconv() { pkgdesc='Character encoding conversion utility (mingw-w64)' depends=("${MINGW_PACKAGE_PREFIX}-libiconv=${pkgver}-${pkgrel}" "${MINGW_PACKAGE_PREFIX}-gettext") - license=(GPL3) + license=('GPL3') - cd "${srcdir}/build-${CARCH}-${_realname}-${pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make install DESTDIR="${pkgdir}" rm -f "${pkgdir}${MINGW_PREFIX}"/bin/*.dll rm -fr "${pkgdir}${MINGW_PREFIX}"/include diff --git a/mingw-w64-libidn/PKGBUILD b/mingw-w64-libidn/PKGBUILD index 9d25812340..f44286dcb9 100644 --- a/mingw-w64-libidn/PKGBUILD +++ b/mingw-w64-libidn/PKGBUILD @@ -3,7 +3,7 @@ _realname=libidn pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.30 -pkgrel=1 +pkgrel=2 pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libidn" @@ -11,7 +11,7 @@ license=("GPL3, LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "gtk-doc") depends=("${MINGW_PACKAGE_PREFIX}-gettext") options=('staticlibs' 'strip') -source=("ftp://ftp.gnu.org/gnu/libidn/libidn-${pkgver}.tar.gz" +source=("ftp://ftp.gnu.org/gnu/libidn/${_realname}-${pkgver}.tar.gz" 0001-fix-gtkdoc.all.patch 0002-fix-gdoc.all.patch) sha1sums=('557e1e37f0978e975b21bcdc243c198cb708bb75' @@ -19,7 +19,7 @@ sha1sums=('557e1e37f0978e975b21bcdc243c198cb708bb75' '730dfdfdf3c2878113224c104f9c6c213010d7f0') prepare() { - cd "${srcdir}"/libidn-${pkgver} + cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-fix-gtkdoc.all.patch patch -p1 -i ${srcdir}/0002-fix-gdoc.all.patch @@ -28,9 +28,10 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/libidn-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX}\ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -44,5 +45,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libjpeg-turbo/PKGBUILD b/mingw-w64-libjpeg-turbo/PKGBUILD index 8e0495b14d..bcc73d35f0 100644 --- a/mingw-w64-libjpeg-turbo/PKGBUILD +++ b/mingw-w64-libjpeg-turbo/PKGBUILD @@ -3,8 +3,8 @@ _realname=libjpeg-turbo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.0 -pkgrel=3 +pkgver=1.4.1 +pkgrel=1 pkgdesc="JPEG image codec with accelerated baseline compression and decompression (mingw-w64)" arch=('any') url="http://libjpeg-turbo.virtualgl.org" @@ -16,22 +16,23 @@ provides=("${MINGW_PACKAGE_PREFIX}-libjpeg") conflicts=("${MINGW_PACKAGE_PREFIX}-libjpeg") replaces=("${MINGW_PACKAGE_PREFIX}-libjpeg") options=('staticlibs' 'strip') -source=("http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-$pkgver.tar.gz" +source=("http://downloads.sourceforge.net/libjpeg-turbo/${_realname}-${pkgver}.tar.gz" "0001-header-compat.mingw.patch" "libjpeg-turbo-1.3.1-libmng-compatibility.patch") -md5sums=('039153dabe61e1ac8d9323b5522b56b0' +md5sums=('b1f6b84859a16b8ebdcda951fa07c3f2' '11e4818dd682ae73cd75f11013a97e72' 'b54c2ab69837e1b72605184364360af0') prepare() { - cd "$srcdir/libjpeg-turbo-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-header-compat.mingw.patch patch -p1 -i ${srcdir}/libjpeg-turbo-1.3.1-libmng-compatibility.patch } build() { - mkdir -p "${srcdir}/build-${CARCH}" - cd "${srcdir}/build-${CARCH}" + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -45,14 +46,14 @@ build() { } check() { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make test } package() { - cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + cp "${srcdir}"/${_realname}-${pkgver}/{jinclude,transupp}.h ${pkgdir}${MINGW_PREFIX}/include/ # Licenses diff --git a/mingw-w64-libmangle-git/PKGBUILD b/mingw-w64-libmangle-git/PKGBUILD index 19be052b56..e6d642a40d 100644 --- a/mingw-w64-libmangle-git/PKGBUILD +++ b/mingw-w64-libmangle-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.0.0.4497.4254261 +pkgver=5.0.0.4509.2e5a9a2 pkgrel=1 pkgdesc="MinGW-w64 libmangle" arch=('any') diff --git a/mingw-w64-libmng/PKGBUILD b/mingw-w64-libmng/PKGBUILD index 3127c86249..0ad7111dcf 100644 --- a/mingw-w64-libmng/PKGBUILD +++ b/mingw-w64-libmng/PKGBUILD @@ -3,7 +3,7 @@ _realname=libmng pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.3 -pkgrel=1 +pkgrel=2 pkgdesc="Simple, small, C++ XML parser that can be easily integrated into other programs (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/libmng" @@ -26,7 +26,7 @@ md5sums=('e9e899adb1b681b17f14d91e261878c5' '3dff90a06b3ddb372d0a3dd15e08c713') prepare() { - cd "$srcdir/${_realname}-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" patch -p0 -i "$srcdir"/libmng-1.0.9-dont-leak-zlib-streams.diff patch -p1 -i "$srcdir"/libmng-1.0.10-mingw.patch patch -p1 -i "$srcdir"/no-undefined.patch @@ -40,9 +40,10 @@ build() { [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=RELEASE \ ../${_realname}-${pkgver} @@ -51,9 +52,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install - - local PREFIX_WIN=$(cygpath -m ${pkgdir}${MINGW_PREFIX}) - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libmng.pc + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libpng/PKGBUILD b/mingw-w64-libpng/PKGBUILD index 14e01dee40..d771c1857d 100644 --- a/mingw-w64-libpng/PKGBUILD +++ b/mingw-w64-libpng/PKGBUILD @@ -3,35 +3,33 @@ _realname=libpng pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.17 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A collection of routines used to create PNG format graphics (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-gcc-libs") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -groups=("${MINGW_PACKAGE_PREFIX}") license=('custom') url="http://www.libpng.org/pub/png/libpng.html" options=('strip' '!libtool' 'staticlibs') -source=("http://downloads.sourceforge.net/sourceforge/libpng/libpng-$pkgver.tar.xz" - "http://downloads.sourceforge.net/project/libpng-apng/libpng16/$pkgver/libpng-$pkgver-apng.patch.gz") +source=("http://downloads.sourceforge.net/sourceforge/libpng/${_realname}-${pkgver}.tar.xz" + "http://downloads.sourceforge.net/project/libpng-apng/libpng16/${pkgver}/${_realname}-${pkgver}-apng.patch.gz") md5sums=('430a9b76b78533235cd4b9b26ce75c7e' 'f68d34f10bcc7f43b8c3dce5708e1933') prepare() { - cd "$srcdir/libpng-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" # Add animated PNG (apng) support # see http://sourceforge.net/projects/libpng-apng/ - patch -p1 -i "${srcdir}/libpng-$pkgver-apng.patch" + patch -p1 -i "${srcdir}/${_realname}-${pkgver}-apng.patch" } build() { - cd "$srcdir/libpng-$pkgver" - - mkdir -p "${srcdir}/build-${CARCH}" - cd "${srcdir}/build-${CARCH}" - ../libpng-${pkgver}/configure \ + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -42,7 +40,7 @@ build() { } package () { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make install DESTDIR="${pkgdir}" install -D -m644 "${srcdir}/libpng-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/LICENSE" diff --git a/mingw-w64-libssh2/PKGBUILD b/mingw-w64-libssh2/PKGBUILD index ed93e6081e..8f13d4efaf 100644 --- a/mingw-w64-libssh2/PKGBUILD +++ b/mingw-w64-libssh2/PKGBUILD @@ -3,7 +3,7 @@ _realname=libssh2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.0 -pkgrel=1 +pkgrel=2 pkgdesc="A library implementing the SSH2 protocol as defined by Internet Drafts (mingw-w64)" arch=('any') url="http://www.libssh2.org" @@ -19,7 +19,7 @@ build() { [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -31,7 +31,7 @@ build() { package() { cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-libsystre/PKGBUILD b/mingw-w64-libsystre/PKGBUILD index 3cd5d7d289..e8fe227aae 100644 --- a/mingw-w64-libsystre/PKGBUILD +++ b/mingw-w64-libsystre/PKGBUILD @@ -6,7 +6,7 @@ provides="${MINGW_PACKAGE_PREFIX}-libgnurx" conflicts="${MINGW_PACKAGE_PREFIX}-libgnurx" replaces="${MINGW_PACKAGE_PREFIX}-libgnurx" pkgver=1.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="Wrapper library around TRE that provides POSIX API (mingw-w64)" arch=('any') url="" diff --git a/mingw-w64-libtasn1/PKGBUILD b/mingw-w64-libtasn1/PKGBUILD index eb38bfff3c..5a59e16d2f 100644 --- a/mingw-w64-libtasn1/PKGBUILD +++ b/mingw-w64-libtasn1/PKGBUILD @@ -3,7 +3,7 @@ _realname=libtasn1 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.5 -pkgrel=1 +pkgrel=2 pkgdesc="A library for Abstract Syntax Notation One (ASN.1) and Distinguish Encoding Rules (DER) manipulation (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libtasn1/" @@ -20,10 +20,10 @@ prepare() { } build() { - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX}\ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -36,7 +36,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.LIB "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE.LIB" diff --git a/mingw-w64-libtiff/PKGBUILD b/mingw-w64-libtiff/PKGBUILD index 7ece71455f..9959b29908 100644 --- a/mingw-w64-libtiff/PKGBUILD +++ b/mingw-w64-libtiff/PKGBUILD @@ -4,7 +4,7 @@ _realname=libtiff pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.0.4 -pkgrel=1 +pkgrel=2 pkgdesc="Library for manipulation of TIFF images (mingw-w64)" arch=('any') url="http://www.remotesensing.org/libtiff" diff --git a/mingw-w64-libtool/PKGBUILD b/mingw-w64-libtool/PKGBUILD index e18b17db01..a80f81b8ae 100644 --- a/mingw-w64-libtool/PKGBUILD +++ b/mingw-w64-libtool/PKGBUILD @@ -4,7 +4,7 @@ _realname=libtool pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.4.6 -pkgrel=1 +pkgrel=2 pkgdesc="A system independent dlopen wrapper for GNU libtool (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libtool" @@ -12,8 +12,8 @@ license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') -source=("http://ftp.gnu.org/pub/gnu/libtool/libtool-${pkgver}.tar.xz"{,.sig} - #ftp://alpha.gnu.org/gnu/libtool/libtool-${pkgver}.tar.xz{,.sig} +source=("http://ftp.gnu.org/pub/gnu/libtool/${_realname}-${pkgver}.tar.xz"{,.sig} + #ftp://alpha.gnu.org/gnu/libtool/${_realname}-${pkgver}.tar.xz{,.sig} 0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch 0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch 0005-Fix-seems-to-be-moved.patch @@ -28,7 +28,7 @@ md5sums=('1bfb9b923f2c1339b4d2ce1807064aa5' '2200a7e2cfa8f5f3f9811f03ed41c46a') prepare() { - cd ${srcdir}/libtool-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch patch -p1 -i ${srcdir}/0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch patch -p1 -i ${srcdir}/0005-Fix-seems-to-be-moved.patch @@ -37,8 +37,9 @@ prepare() { } build() { - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} - ../libtool-${pkgver}/configure \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -47,10 +48,10 @@ build() { } package() { - cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install # Because libtool will have queried native compilers, # it'll contain native paths, so sed them back again. - MINGW_PREFIX_W=$(cygpath -m "${MINGW_PREFIX}") - sed -i "s#${MINGW_PREFIX_W}#${MINGW_PREFIX}#g" "$pkgdir"${MINGW_PREFIX}/bin/libtool + local MINGW_PREFIX_W=$(cygpath -m "${MINGW_PREFIX}") + sed -i "s#${MINGW_PREFIX_W}#${MINGW_PREFIX}#g" "${pkgdir}${MINGW_PREFIX}"/bin/libtool } diff --git a/mingw-w64-libtre-git/PKGBUILD b/mingw-w64-libtre-git/PKGBUILD index 279ac59ff1..b34a401d91 100644 --- a/mingw-w64-libtre-git/PKGBUILD +++ b/mingw-w64-libtre-git/PKGBUILD @@ -6,7 +6,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=r122.c2f5d13 -pkgrel=3 +pkgrel=4 pkgdesc="The approximate regex matching library and agrep command line tool (mingw-w64)" url="https://github.com/laurikari/tre" arch=('any') @@ -35,6 +35,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} ../${_realname}/configure \ diff --git a/mingw-w64-libwebp/PKGBUILD b/mingw-w64-libwebp/PKGBUILD index 48ef9b38d3..a77d1741f9 100644 --- a/mingw-w64-libwebp/PKGBUILD +++ b/mingw-w64-libwebp/PKGBUILD @@ -3,7 +3,7 @@ _realname=libwebp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.4.3 -pkgrel=1 +pkgrel=2 pkgdesc="the WebP library. Includes conversion tools (mingw-w64)" arch=('any') url="https://developers.google.com/speed/webp/" @@ -18,13 +18,13 @@ md5sums=('08813525eeeffe7e305b4cbfade8ae9b' 'SKIP') prepare() { - cd $srcdir/$_realname-$pkgver + cd ${srcdir}/${_realname}-${pkgver} } build() { - mkdir -p $srcdir/$MINGW_CHOST - cd "$srcdir/$MINGW_CHOST" - ../$_realname-$pkgver/configure \ + mkdir -p ${srcdir}/${MINGW_CHOST} + cd "${srcdir}/${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ @@ -38,7 +38,6 @@ build() { } package() { - cd "$srcdir/$MINGW_CHOST" + cd "${srcdir}/$MINGW_CHOST" make install DESTDIR="${pkgdir}" - rm -r "${pkgdir}${MINGW_PREFIX}/share" } diff --git a/mingw-w64-libxml2/PKGBUILD b/mingw-w64-libxml2/PKGBUILD index 5d1f5914f3..9d0bd81d1b 100644 --- a/mingw-w64-libxml2/PKGBUILD +++ b/mingw-w64-libxml2/PKGBUILD @@ -4,7 +4,7 @@ _realname=libxml2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.9.2 -pkgrel=5 +pkgrel=6 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="XML parsing library, version 2 (mingw-w64)" @@ -17,7 +17,7 @@ options=('strip' 'staticlibs') license=(MIT) url="http://www.xmlsoft.org/" install=${_realname}-${CARCH}.install -source=("http://xmlsoft.org/sources/libxml2-${pkgver}.tar.gz" +source=("http://xmlsoft.org/sources/${_realname}-${pkgver}.tar.gz" "mingw32-libxml2-static-build-compile-fix.patch" "libxml2-2.9.2-catalog-revert.patch" 0004-detect-ws2tcpip.mingw.patch @@ -63,7 +63,7 @@ md5sums=('9e6a9aca9d155737868b3dc5fd82f788' '4a7a5b6027a5dbbfa1a3d7b5787e97bc') prepare() { - cd "${srcdir}/libxml2-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" patch -Np0 -i "${srcdir}"/mingw32-libxml2-static-build-compile-fix.patch patch -p1 -i ${srcdir}/libxml2-2.9.2-catalog-revert.patch @@ -94,12 +94,11 @@ prepare() { autoconf } -build() -{ +build() { # Static build mkdir -p ${srcdir}/build-static-${CARCH} && cd ${srcdir}/build-static-${CARCH} - ../libxml2-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -114,7 +113,7 @@ build() # Shared build mkdir -p ${srcdir}/build-shared-${CARCH} && cd ${srcdir}/build-shared-${CARCH} - ${srcdir}/libxml2-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -126,17 +125,12 @@ build() --with-threads=win32 # Hack for mingw python - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null + local PREFIX_DEPS=$(cygpath -am ${MINGW_PREFIX}) find . -type f -name "Makefile" -exec sed -i "s|${PREFIX_DEPS}|${MINGW_PREFIX}|g" {} \; make } -package() -{ - cd "${srcdir}/libxml2-${pkgver}" - +package() { # First install shared cd ${srcdir}/build-shared-${CARCH} diff --git a/mingw-w64-libxslt/PKGBUILD b/mingw-w64-libxslt/PKGBUILD index 28a1554ea4..e2c12fa342 100644 --- a/mingw-w64-libxslt/PKGBUILD +++ b/mingw-w64-libxslt/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libxslt - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.28 -pkgrel=4 +pkgrel=5 pkgdesc="XML stylesheet transformation library (mingw-w64)" arch=('any') url="http://xmlsoft.org/XSLT/" @@ -14,17 +13,17 @@ groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('strip' 'staticlibs') install=${_realname}-${CARCH}.install -source=("http://xmlsoft.org/sources/libxslt-${pkgver}.tar.gz" - "libxslt-1.1.26-w64.patch" - "libxslt-1.1.27-disable_static_modules.patch" - "libxslt-1.1.28-win32-shared.patch" - "libxslt.m4-libxslt-1.1.26.patch" - '0002-python-linking-on.mingw.patch' - '0003-fix-concurrent-directory-creation.all.patch' - '0004-add-missing-include-for-python.all.patch' - '0005-fix-freelocales-export.all.patch' - '0006-no-undefined-tests.patch' - '0007-use-mingw-C99-compatible-functions-{v}snprintf.patch') +source=("http://xmlsoft.org/sources/${_realname}-${pkgver}.tar.gz" + "libxslt-1.1.26-w64.patch" + "libxslt-1.1.27-disable_static_modules.patch" + "libxslt-1.1.28-win32-shared.patch" + "libxslt.m4-libxslt-1.1.26.patch" + '0002-python-linking-on.mingw.patch' + '0003-fix-concurrent-directory-creation.all.patch' + '0004-add-missing-include-for-python.all.patch' + '0005-fix-freelocales-export.all.patch' + '0006-no-undefined-tests.patch' + '0007-use-mingw-C99-compatible-functions-{v}snprintf.patch') md5sums=('9667bf6f9310b957254fdcf6596600b7' 'b994c0d9df0f644e219cf63561ee0d4e' '05498030f492ffb0774869bacafe5fc1' @@ -38,7 +37,7 @@ md5sums=('9667bf6f9310b957254fdcf6596600b7' '4fc5c9dc73cb6e4d8d35e58c0d447f2a') prepare() { - cd "$srcdir/libxslt-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i "${srcdir}/libxslt-1.1.26-w64.patch" patch -p1 -i "${srcdir}/libxslt-1.1.27-disable_static_modules.patch" patch -p1 -i "${srcdir}/libxslt-1.1.28-win32-shared.patch" @@ -55,8 +54,9 @@ prepare() { } build() { - mkdir -p "$srcdir/build-${CARCH}" && cd "$srcdir/build-${CARCH}" - $srcdir/libxslt-${pkgver}/configure \ + [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" + mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -68,17 +68,14 @@ build() { --with-python=${MINGW_PREFIX}/bin/python2 # Hack for mingw python - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null + local PREFIX_DEPS=$(cygpath -am ${MINGW_PREFIX}) find . -type f -name "Makefile" -exec sed -i "s|${PREFIX_DEPS}|${MINGW_PREFIX}|g" {} \; make } package() { export MSYS2_ARG_CONV_EXCL="-//OASIS" - cd "$srcdir/build-${CARCH}" - make DESTDIR="$pkgdir" install - #rm -r "${pkgdir}${MINGW_PREFIX}"/share + cd "${srcdir}/build-${CARCH}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libyaml/PKGBUILD b/mingw-w64-libyaml/PKGBUILD index ac00532f64..34b4307f16 100644 --- a/mingw-w64-libyaml/PKGBUILD +++ b/mingw-w64-libyaml/PKGBUILD @@ -3,14 +3,14 @@ _realname=libyaml pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.1.6 -pkgrel=1 +pkgrel=2 pkgdesc="YAML 1.1 library (mingw-w64)" arch=('any') url="http://pyyaml.org/wiki/LibYAML" license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('staticlibs' 'strip') -source=(https://bitbucket.org/xi/libyaml/get/$pkgver.tar.bz2 +source=(${_realname}-${pkgver}.tar.bz2::https://bitbucket.org/xi/libyaml/get/${pkgver}.tar.bz2 "0001-Proper-mingw-YAML_DECLARE-definition.patch" "0002-libyaml-no-undefined.patch") md5sums=('5b2d2f8c889fed55e98d6b1a0a89f607' @@ -40,5 +40,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-lz4/PKGBUILD b/mingw-w64-lz4/PKGBUILD index 4058b766d9..e15304c4f1 100644 --- a/mingw-w64-lz4/PKGBUILD +++ b/mingw-w64-lz4/PKGBUILD @@ -2,7 +2,7 @@ _realname=lz4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.7.0.r590 +pkgver=1.7.1.r656 pkgrel=1 pkgdesc="Very fast lossless compression algorithm (mingw-w64)" arch=('any') @@ -53,5 +53,5 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make CC=${MINGW_PREFIX}/bin/gcc DESTDIR="$pkgdir" PREFIX=${MINGW_PREFIX} install + make CC=${MINGW_PREFIX}/bin/gcc DESTDIR="${pkgdir}" PREFIX=${MINGW_PREFIX} install } diff --git a/mingw-w64-lzo2/PKGBUILD b/mingw-w64-lzo2/PKGBUILD index d3ca009397..5189bdfb34 100644 --- a/mingw-w64-lzo2/PKGBUILD +++ b/mingw-w64-lzo2/PKGBUILD @@ -3,7 +3,7 @@ _realname=lzo2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.09 -pkgrel=1 +pkgrel=2 pkgdesc="Portable lossless data compression library (mingw-w64)" arch=(any) url="http://www.oberhumer.com/opensource/lzo" @@ -18,7 +18,8 @@ prepare() { } build() { - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} ../lzo-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --host=${MINGW_CHOST} \ @@ -30,6 +31,6 @@ build() { } package() { - cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-mpc/PKGBUILD b/mingw-w64-mpc/PKGBUILD index b1ae0e17b6..19b07bb140 100644 --- a/mingw-w64-mpc/PKGBUILD +++ b/mingw-w64-mpc/PKGBUILD @@ -3,21 +3,21 @@ _realname=mpc pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.3 -pkgrel=1 +pkgrel=2 pkgdesc="Multiple precision complex arithmetic library (mingw-w64)" groups=("${MINGW_PACKAGE_PREFIX}") url='http://www.multiprecision.org' license=('LGPL') arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-mpfr") -makedepends=("${MINGW_PACKAGE_PREFIX}-gmp>=5.0" "${MINGW_PACKAGE_PREFIX}-mpfr") +makedepends=("${MINGW_PACKAGE_PREFIX}-gmp" "${MINGW_PACKAGE_PREFIX}-mpfr") options=('staticlibs' '!emptydirs') source=("http://www.multiprecision.org/mpc/download/${_realname}-${pkgver}.tar.gz") sha1sums=('b8be66396c726fdc36ebb0f692ed8a8cca3bcc66') build() { - mkdir -p ${srcdir}/build-${MINGW_CHOST} - cd "${srcdir}/build-${MINGW_CHOST}" + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} ../${_realname}-${pkgver}/configure --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --enable-static \ diff --git a/mingw-w64-mpfr/PKGBUILD b/mingw-w64-mpfr/PKGBUILD index 5435fa0a76..787e1802fb 100644 --- a/mingw-w64-mpfr/PKGBUILD +++ b/mingw-w64-mpfr/PKGBUILD @@ -5,15 +5,15 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") _pkgver=3.1.3 _patchlevel=p0 pkgver=${_pkgver}.${_patchlevel} -pkgrel=1 -pkgdesc="Multiple-precision floating-point library" +pkgrel=2 +pkgdesc="Multiple-precision floating-point library (mingw-w64)" arch=('any') url="http://www.mpfr.org/" groups=("${MINGW_PACKAGE_PREFIX}") license=('LGPL') options=('staticlibs') -depends=("${MINGW_PACKAGE_PREFIX}-gmp>=5.0") -makedepends=("${MINGW_PACKAGE_PREFIX}-gmp>=5.0") +depends=("${MINGW_PACKAGE_PREFIX}-gmp") +makedepends=("${MINGW_PACKAGE_PREFIX}-gmp") source=(http://www.mpfr.org/mpfr-current/${_realname}-${_pkgver}.tar.xz{,.asc}) md5sums=('6969398cd2fbc56a6af570b5273c56a9' 'SKIP') diff --git a/mingw-w64-nasm/PKGBUILD b/mingw-w64-nasm/PKGBUILD index 6c72a42ccb..1cace97252 100644 --- a/mingw-w64-nasm/PKGBUILD +++ b/mingw-w64-nasm/PKGBUILD @@ -3,7 +3,7 @@ _realname=nasm pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.11.08 -pkgrel=1 +pkgrel=2 pkgdesc="An 80x86 assembler designed for portability and modularity (mingw-w64)" arch=('any') license=('BSD') @@ -19,6 +19,7 @@ prepare() { } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -rf ${srcdir}/${_realname}-${pkgver} ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} ./configure \ diff --git a/mingw-w64-ncurses/PKGBUILD b/mingw-w64-ncurses/PKGBUILD index f78504fd7b..d4b42fd99f 100644 --- a/mingw-w64-ncurses/PKGBUILD +++ b/mingw-w64-ncurses/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _base_ver=6.0 _date_rev=20150627 pkgver=${_base_ver}.${_date_rev} -pkgrel=1 +pkgrel=2 pkgdesc="System V Release 4.0 curses emulation library" arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-libsystre") diff --git a/mingw-w64-nettle/PKGBUILD b/mingw-w64-nettle/PKGBUILD index 2f6223c434..247e331085 100644 --- a/mingw-w64-nettle/PKGBUILD +++ b/mingw-w64-nettle/PKGBUILD @@ -3,7 +3,7 @@ _realname=nettle pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.1.1 -pkgrel=1 +pkgrel=2 pkgdesc="A low-level cryptographic library (mingw-w64)" arch=('any') url="http://www.lysator.liu.se/~nisse/nettle" @@ -35,5 +35,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-openssl/PKGBUILD b/mingw-w64-openssl/PKGBUILD index 9f4893e5ee..7edf24bac2 100644 --- a/mingw-w64-openssl/PKGBUILD +++ b/mingw-w64-openssl/PKGBUILD @@ -5,7 +5,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver=1.0.2c # use a pacman compatible version scheme pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") @@ -33,7 +33,7 @@ validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491') prepare() { # Clean up old sources so re-patching doesn't fail. - [[ -d $srcdir/${_realname}-${_ver} ]] && rm -rf ${srcdir}/${_realname}-${_ver} + [[ -d ${srcdir}/${_realname}-${_ver} ]] && rm -rf ${srcdir}/${_realname}-${_ver} tar -xzvf ${_realname}-${_ver}.tar.gz -C ${srcdir} cd ${srcdir}/${_realname}-${_ver} @@ -44,6 +44,9 @@ prepare() { patch -p1 -i ${srcdir}/openssl-0.9.6-x509.patch patch -p1 -i ${srcdir}/openssl-1.0.1i-relocation.patch +} + +build() { # No support for out-of-source builds mkdir -p ${srcdir}/build-${CARCH} cp -a ${srcdir}/${_realname}-${_ver}/* ${srcdir}/build-${CARCH} @@ -51,12 +54,6 @@ prepare() { # Use mingw cflags instead of hardcoded ones sed -i -e '/^"mingw"/ s/-fomit-frame-pointer -O3 -march=i486 -Wall/-O2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4/' ${srcdir}/build-${CARCH}/Configure -} - -build() -{ - cd "${srcdir}/build-${CARCH}" - _mingw=mingw if $(echo ${CARCH} | grep -q x86_64); then _mingw=mingw64 @@ -74,12 +71,12 @@ build() enable-tlsext \ enable-rfc3779 - make ZLIB_INCLUDE=-"I${MINGW_PREFIX}/include" depend all -j1 + make -j1 ZLIB_INCLUDE=-I"${MINGW_PREFIX}"/include depend all } package() { cd "${srcdir}/build-${CARCH}" - make -j1 INSTALL_PREFIX="$pkgdir" MANDIR=${MINGW_PREFIX}/share/man MANSUFFIX=ssl install + make -j1 INSTALL_PREFIX="${pkgdir}" MANDIR=${MINGW_PREFIX}/share/man MANSUFFIX=ssl install install -D -m644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE diff --git a/mingw-w64-p11-kit/PKGBUILD b/mingw-w64-p11-kit/PKGBUILD index 73f5e9f9eb..e6bd5b6fb7 100644 --- a/mingw-w64-p11-kit/PKGBUILD +++ b/mingw-w64-p11-kit/PKGBUILD @@ -5,7 +5,7 @@ _realname=p11-kit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.23.1 -pkgrel=2 +pkgrel=3 pkgdesc="Library to work with PKCS#11 modules" arch=('any') url="http://p11-glue.freedesktop.org" @@ -17,7 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "gtk-doc") options=('!debug' 'strip' 'staticlibs') -source=($url/releases/$_realname-$pkgver.tar.gz{,.sig} +source=(${url}/releases/${_realname}-${pkgver}.tar.gz{,.sig} 0000-no-proxy.mingw.patch 0001-allow-gtkdocize.all.patch 0002-fix-includes.patch @@ -71,9 +71,12 @@ build() { extra_config+=( --enable-debug=no ) fi + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + + PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/share/pkgconfig" \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -91,5 +94,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" MSYS2_ARG_CONV_EXCL="-DBINDIR=;-DDATA_DIR=;-DP11_SYSTEM_CONFIG_FILE=;-DP11_SYSTEM_CONFIG_MODULES=;-DP11_PACKAGE_CONFIG_MODULES=;-DP11_MODULE_PATH=;-DDATADIR=;-DSYSCONFDIR=;-DPRIVATEDIR=;-DP11_USER_CONFIG_FILE=;-DP11_USER_CONFIG_MODULES=" \ - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-pkg-config/PKGBUILD b/mingw-w64-pkg-config/PKGBUILD index 8e9a5ade5c..b87a32c0c6 100644 --- a/mingw-w64-pkg-config/PKGBUILD +++ b/mingw-w64-pkg-config/PKGBUILD @@ -3,7 +3,7 @@ _realname=pkg-config pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.28 -pkgrel=3 +pkgrel=4 pkgdesc="A system for managing library compile/link flags (mingw-w64)" arch=('any') url="http://pkgconfig.freedesktop.org/wiki/" @@ -53,7 +53,7 @@ prepare() { } build() { - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} ../${_realname}-${pkgver}/configure \ diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index 757a9cf832..264bee7af3 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -5,7 +5,7 @@ _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7.10 -pkgrel=2 +pkgrel=3 _pybasever=${pkgver%.*} pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index d515721195..b231f83b05 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -17,7 +17,7 @@ _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.4 pkgver=${_pybasever}.3 -pkgrel=5 +pkgrel=6 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') diff --git a/mingw-w64-readline/PKGBUILD b/mingw-w64-readline/PKGBUILD index af4c9791e1..8052010510 100644 --- a/mingw-w64-readline/PKGBUILD +++ b/mingw-w64-readline/PKGBUILD @@ -4,15 +4,14 @@ _realname=readline pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _basever=6.2 _patchlevel=005 -pkgver=$_basever.$_patchlevel -pkgrel=3 +pkgver=${_basever}.${_patchlevel} +pkgrel=4 pkgdesc="MinGW port of readline for editing typed command lines (mingw-w64)" arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" #"${MINGW_PACKAGE_PREFIX}-ncurses" #"${MINGW_PACKAGE_PREFIX}-pdcurses" - "${MINGW_PACKAGE_PREFIX}-termcap" - ) + "${MINGW_PACKAGE_PREFIX}-termcap") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') license=('GPL') @@ -50,6 +49,7 @@ prepare() { } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} ../${_realname}-${_basever}/configure \ --prefix=${MINGW_PREFIX} \ diff --git a/mingw-w64-rtmpdump-git/PKGBUILD b/mingw-w64-rtmpdump-git/PKGBUILD index e95eaf80c4..a10462900e 100644 --- a/mingw-w64-rtmpdump-git/PKGBUILD +++ b/mingw-w64-rtmpdump-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=rtmpdump pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=r499.a107cef -pkgrel=2 +pkgrel=3 pkgdesc="A tool to download rtmp streams (mingw-w64)" arch=('any') url="http://rtmpdump.mplayerhq.hu/" diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index 65d40d2c7e..c7ff3abecc 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -5,7 +5,7 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _amalgamationver=3081002 pkgver=3.8.10.2 -pkgrel=1 +pkgrel=2 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') license=(PublicDomain) @@ -14,17 +14,16 @@ url="http://www.sqlite.org" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-readline") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-tcl") -source=("http://www.sqlite.org/2015/sqlite-autoconf-$_amalgamationver.tar.gz" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +source=("http://www.sqlite.org/2015/sqlite-autoconf-${_amalgamationver}.tar.gz" LICENSE) sha1sums=('c2f2c17d3dc4c4e179d35cc04e4420636d48a152' 'e2aa07adae13aed713860b74165d3325a18c6792') options=('!strip' 'staticlibs' '!buildflags') build() { - [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} CFLAGS+=" -fexceptions -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_ENABLE_RTREE=1 -fno-strict-aliasing" ../sqlite-autoconf-${_amalgamationver}/configure \ --prefix=${MINGW_PREFIX} \ @@ -37,7 +36,7 @@ build() { } package() { - cd ${srcdir}/build-${CARCH} + cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-tcl/PKGBUILD b/mingw-w64-tcl/PKGBUILD index d94901b2c9..6cce0c5665 100644 --- a/mingw-w64-tcl/PKGBUILD +++ b/mingw-w64-tcl/PKGBUILD @@ -4,7 +4,7 @@ _realname=tcl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=8.6.4 -pkgrel=1 +pkgrel=2 pkgdesc="The Tcl scripting language (mingw-w64)" arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") @@ -47,24 +47,29 @@ prepare() { } build() { + local extra_config= if check_option "debug" "y"; then - extra_config+=( --enable-symbols ) + extra_config="--enable-symbols" fi + local enable64bit= + [[ "${MINGW_CHOST}" = "x86_64-w64-mingw32" ]] && enable64bit='--enable-64bit' + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - cp -rf "$srcdir/tcl$pkgver/" "${srcdir}/build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} cd "${srcdir}/build-${MINGW_CHOST}" - [ "${MINGW_CHOST}" = "x86_64-w64-mingw32" ] && enable64bit='--enable-64bit' - "${srcdir}"/${_realname}${pkgver}/win/configure \ + ${srcdir}/tcl${pkgver}/win/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-threads \ - "${extra_config[@]}" \ - $enable64bit + ${extra_config} \ + ${enable64bit} + make -j1 } package() { + local debug_suffix= if check_option "debug" "y"; then debug_suffix="g" fi @@ -114,10 +119,11 @@ package() { # Install private headers mkdir -p "${pkgdir}${MINGW_PREFIX}/include/tcl${pkgver%.*}/tcl-private/"{generic,win} + cd ${srcdir}/tcl${pkgver} find generic win -name "*.h" -exec cp -p '{}' "${pkgdir}${MINGW_PREFIX}"/include/tcl${pkgver%.*}/tcl-private/'{}' ';' ( cd "${pkgdir}${MINGW_PREFIX}/include" - for i in *.h ; do - cp -f $i ${pkgdir}${MINGW_PREFIX}/include/tcl${pkgver%.*}/tcl-private/generic/ + for header in *.h ; do + cp -f ${header} ${pkgdir}${MINGW_PREFIX}/include/tcl${pkgver%.*}/tcl-private/generic/ done ) chmod a-x "${pkgdir}${MINGW_PREFIX}/lib/tcl${pkgver%.*}/encoding/"*.enc diff --git a/mingw-w64-termcap/PKGBUILD b/mingw-w64-termcap/PKGBUILD index dac4ebf1b0..daff63c433 100644 --- a/mingw-w64-termcap/PKGBUILD +++ b/mingw-w64-termcap/PKGBUILD @@ -2,10 +2,8 @@ _realname=termcap pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -#conflicts=("${MINGW_PACKAGE_PREFIX}-ncurses") -#provides=("${MINGW_PACKAGE_PREFIX}-ncurses") pkgver=1.3.1 -pkgrel=1 +pkgrel=2 pkgdesc="Terminal feature database (mingw-w64)" arch=('any') url="ftp://ftp.gnu.org/gnu/termcap/" @@ -43,7 +41,7 @@ build() { package() { cd ${srcdir}/build-${MINGW_CHOST} make install prefix="${pkgdir}${MINGW_PREFIX}" exec_prefix="${pkgdir}${MINGW_PREFIX}" oldincludedir= - rm -r "$pkgdir"${MINGW_PREFIX}/info/ + rm -r "${pkgdir}"${MINGW_PREFIX}/info/ mkdir -p "${pkgdir}"${MINGW_PREFIX}/{bin,lib} install -m 0755 libtermcap-0.dll "${pkgdir}${MINGW_PREFIX}/bin" install -m 0644 libtermcap.dll.a "${pkgdir}${MINGW_PREFIX}/lib" diff --git a/mingw-w64-tk/PKGBUILD b/mingw-w64-tk/PKGBUILD index a0f218406f..4c63d932d7 100644 --- a/mingw-w64-tk/PKGBUILD +++ b/mingw-w64-tk/PKGBUILD @@ -4,15 +4,15 @@ _realname=tk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=8.6.4 -pkgrel=1 +pkgrel=2 pkgdesc="A windowing toolkit for use with tcl (mingw-w64)" arch=('any') url="http://tcl.sourceforge.net" license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-tcl>=$pkgver") +depends=("${MINGW_PACKAGE_PREFIX}-tcl>=${pkgver}") options=('staticlibs') # '!strip' 'debug') -source=("http://downloads.sourceforge.net/sourceforge/tcl/tk${pkgver}-src.tar.gz" +source=("http://downloads.sourceforge.net/sourceforge/tcl/${_realname}${pkgver}-src.tar.gz" 002-implib-name.mingw.patch 003-fix-forbidden-colon-in-paths.mingw.patch 004-install-man.mingw.patch @@ -26,7 +26,7 @@ sha1sums=('ad24c59ac2e7453d1ed2bad0d7d18a01eabc5226' '51e26a818036453d4424c9a697aa75a4a796977c') prepare() { - cd "$srcdir/tk$pkgver" + cd "${srcdir}/${_realname}${pkgver}" patch -p1 -i "${srcdir}"/002-implib-name.mingw.patch patch -p1 -i "${srcdir}"/003-fix-forbidden-colon-in-paths.mingw.patch patch -p1 -i "${srcdir}"/004-install-man.mingw.patch @@ -37,39 +37,47 @@ prepare() { } build() { + local extra_config= if check_option "debug" "y"; then - extra_config+=( --enable-symbols ) + extra_config="--enable-symbols" fi + local enable64bit= + [[ "${MINGW_CHOST}" = 'x86_64-w64-mingw32' ]] && enable64bit='--enable-64bit' + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - cp -rf "$srcdir/tk$pkgver/" "${srcdir}/build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} cd "${srcdir}/build-${MINGW_CHOST}" - [ "${MINGW_CHOST}" = 'x86_64-w64-mingw32' ] && enable64bit='--enable-64bit' - "${srcdir}"/${_realname}${pkgver}/win/configure \ + ${srcdir}/tk${pkgver}/win/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ --with-tcl=${MINGW_PREFIX}/lib \ - "${extra_config[@]}" \ - $enable64bit + ${extra_config} \ + ${enable64bit} + make } package() { + local debug_suffix= if check_option "debug" "y"; then debug_suffix="g" fi cd "${srcdir}/build-${MINGW_CHOST}" - make install INSTALL_ROOT="$pkgdir" + make install INSTALL_ROOT="${pkgdir}" cp "${pkgdir}${MINGW_PREFIX}/bin/wish86${debug_suffix}.exe" "${pkgdir}${MINGW_PREFIX}/bin/wish.exe" find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm find "${pkgdir}${MINGW_PREFIX}" -name '*.sh' -o -name '*.dll' -o -name '*.exe' | xargs -rtl1 chmod 755 ln -s "${pkgdir}${MINGW_PREFIX}/lib/libtk86${debug_suffix}.dll.a" "${pkgdir}${MINGW_PREFIX}/lib/libtk.dll.a" mkdir -p "${pkgdir}${MINGW_PREFIX}/include/tk${pkgver%.*}/tk-private/"{generic/ttk,win} + + cd ${srcdir}/tk${pkgver} find generic win -name "*.h" -exec cp -p '{}' "${pkgdir}${MINGW_PREFIX}"/include/tk${pkgver%.*}/tk-private/'{}' ';' ( cd "${pkgdir}${MINGW_PREFIX}/include" - for i in *.h ; do - cp -f $i ${pkgdir}${MINGW_PREFIX}/include/tk${pkgver%.*}/tk-private/generic/ + for header in *.h ; do + cp -f ${header} ${pkgdir}${MINGW_PREFIX}/include/tk${pkgver%.*}/tk-private/generic/ done ) chmod a-x "${pkgdir}${MINGW_PREFIX}/lib/"*/pkgIndex.tcl diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index 3fe1203109..061b1c6ae0 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.0.0.4497.4254261 +pkgver=5.0.0.4509.2e5a9a2 pkgrel=1 pkgdesc="MinGW-w64 tools" arch=('any') diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index 9b517ca231..1b5f6f74b6 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=winpthreads pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") -pkgver=5.0.0.4497.4254261 +pkgver=5.0.0.4509.2e5a9a2 pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" url="http://mingw-w64.sourceforge.net" diff --git a/mingw-w64-xpm-nox/PKGBUILD b/mingw-w64-xpm-nox/PKGBUILD index 5621c4ba9b..95b6e1745b 100644 --- a/mingw-w64-xpm-nox/PKGBUILD +++ b/mingw-w64-xpm-nox/PKGBUILD @@ -3,7 +3,7 @@ _realname=xpm-nox pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.2.0 -pkgrel=3 +pkgrel=4 pkgdesc="X Pixmap library not using X (mingw-w64)" arch=('any') url="ftp://koala.inria.fr/pub/xpm" diff --git a/mingw-w64-xpm-nox/xpm-nox-4.2.0.tar.bz2 b/mingw-w64-xpm-nox/xpm-nox-4.2.0.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..889d629b2c7d58b7fbcda6d9e1dc0158faaa2fd4 GIT binary patch literal 135277 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 z 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%0Du6&fCv~c0fGP!0G6&Ne}Qi)!S1c>J%0K3f76ui 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%0D^#<&iK{9qx0QOv(TdV2Nd<%j z0-zO;B1|lj6+^a4)Hn;=}(XFMtu>X`CTp{<7lUp_i>H%eHp|!*AKb; zlc5N3ZqQMQBvu0uSZ>LKJ-u>FB^Vk7-7t+(SD)mV+3*#OkSHl(>`L~>h;U)LoJ&AB zAbIt(=#9IH;hQm~4tOST&MKse4lx5ber$7qmWmgO1~D7J7brG}foK7hv9Jq;g6b0J z|7e3uA|wwe z*Am3~?Rp!{y4n*41N&m7@drdOGlt1mqnVQZ+|V|Lu`vbU(m}DQuw4)s0FbC4-w9(0v=DfpixL77B1y#%C}MybcdZ6=`OA~&EZ%KN%UO_u zjrp*mGhsnrut3z1_9KQ1x%9gA@pZem$PeeXY51DW2@4H_g5;paGm2CN3FuvOsJOxHT8ppzscX?NEz|NeEj}2hXfG;VJdT!1V|ma6wojvV*(QB zZ#1q2)gEF!~%C6gYo@$}p`t_%uWCvi5(Cj=oo9VbP4adp>BbB#BD z*mXFR(VGgwwIn9c)FC*BP3YG)xMo+u$&{k;lQ5u_lxiCc zGaNBhkWoS?j3x{$6DBznDoKeH#G_g7bk$QuK|^bV3(;NI3#8xFfCnfVksT8V2FSYo zKI(Z;P>>%^51-rfyXklHw1KK4k0!FaQ&5$rU2}2ijhmLLk6^un&>I0DypY1_%=KSi>~_o6)h({a#a|{kO4r-!Iw! z`t`GyZ)=M2@4$ye)CDTNL{|D&qmivKG48eM_&EfNKePQ_Ns#eb3XmP2#=o+Eg}OHV zey`)pz!q*6B;Xd=6FtzPVbCu25F$ZU{awqUs9zI(x3|XeG`;4xfbl#!3lOU=$ye(|<-0(*TAuc};n`dw9^wEJAf^Z_SJLD5^?4LCprCkF zGoY!Wb<_=v0eU$0E7(;I*V$vYIzDbrHmMLOhq;$t<)G z_i)Bw+4?euGZWU!(Cnm(;!c{;LCPot9G*Y|XZ^mSc{H^jNO@}*5fI>NewBMWcK0E2 zn!CO7)m2qNfdnQi2y%cz5MuNf3qvVrFER!f!k?Yc?-%rPMI9NLuw+;Sf=DHI{Q|dr z-{)xF9GKWS{t?a?DnIAsK;8hszrjbld!DB%ni;SnYr5rv-a?vKT~!*!4va8?kP0xS zP(~P%dsEs<0k4wrGNYL)CM;R>7-mqi$_YKNQG`sOLJwLXW7_7fYoY%H1Kq$hKqM1* z3ZXw=-B@g(n$Z}m<2>{VI07}0R0Ty8LCh#8+G|0r+`mTgUy9~m*MBdq>v@f@qtSRD zJG`^O^SP~C*34DB91|RjTu&_Jjjj%aNqN+~Bi=Z40|lu?Y%cGNml-%t6`0n0bq=*` zncaH4g=3y>(4Sl=gu@uCA}2B*^z*V9%lj$CAd87%Q3qeSXgaDrXm_9h001HOKQ(SN zRK4tnE9|nJ*AHW(SMak#_m(X{F zVFQVonq+zhl+8|I|9zb!94mqS+CBQwx3q9JaP6Kz7h5dSYW`#$Rskku$xIrdzT(iFo^N%eGT z6pBBsrTSFA>i=VXumkb^>%|H8uFZkrn4n{*iJIjia-*5+hzkx0yPi|Wj;wIBpao?> z^dNz#njWL{Z~n)A_8;DYML?YnWA->P9-HT_|4y^|KISy2d~d0hN4`340RY%@d*5@& z>NTZs?-4~+6ycOS2jbKh0w)q2-uv}3@1`RRgF~tZl9Es%jfMBDos1^}2#^jE3>WUK zD3N0T!X%=nu=bQ5pg*812}F`f7^6oM5g??|XVbv&JR%ATL1aE%u@n)D6hab0NJDBL zWx?)$Gvn&@Avk7?s@J>@L#YZ1DQtbr%%>bdMfm2XGU2^(hNuISKaH1E`VejmUWSapIqd%1+n0di(#tYzq# zgcVFoYaT9Eu@J)!znnhpkh3OP?&#yXl>_v5hNnVU`*P-3q?uXYRt2IQJ&IkH9Hb53Av-JQ?L`YZbSa)e_h zFs3GiN4#>Ijc+(n)(#Q}DCVGSPakCLw@tnScUUZ5fP`(21u)S;poXz=5UniIU&zrX z(_w|g{qC~)7bp@>zyH@F>)UbZ0>PcUnvWZ?KgBwn_N0+=e53{Ice z9dtwd^o6Y^Fi|j}G|U(pWFvKL$x2csDKV5cGt6~_LczO}hx065P~w7aVeug$Q`mu& z1($Bh7Ob!W<>!`1p`HqeJ!@PMlVyRNmlU#gx-$1rP?116LR5#TftoCM6N3Ro7W|FF zrH1ppjOp|XfbP~)Mu%pEj<{k0TqWJoQP=DCYol5LBrQ-})U?9WcocM*JI-!zWri6E zid>Bm5m+MOPcV3>y4<1d16X#4L^Xj8q)`4KJz_x-jF99QbIQ~CZoxUNix}X^=6$3* z%mVqD1qpGIgCQ#lGglotL}56LhARMYI$%vOCX1?u0y!+KH)fLohD0+~L>4m;3}K>h zUeMq}sDa}Wjyw(Wy}VajpLOExv^vFLQ(#z8J7gzR>lOq+4pBt_ z+wnCO#O^|lXzL`9blSjnc$l&zVm@>lNW={43?UG-?iGPR(LjNW>9WfOwdvN7 z!yLlVvJyFx21sDdFO${l&~mRk-x`6)34SJMEP8Ro8?hU~s6|K)LHxbO=ngNMG2&GY>AQG9;Aw#^<{pLR`z90}n8V7V&V6>= zD0r%vBLvha9lIw?n`$$XRD_I6Q6!QOt`#<6TAW||{BBpT_S?_w`yN}}f-=~ny$&Qw zMie?A1nA@L=NW~j-_Tr5+@iu78Bdk?@AOdzMkxjO;E2u<%uC?5RW?Y&t;^B#6@C{M zJ`R;8NNzc3t`{DP!+G+vwa|=)f>qsPuMOPEd6*nh>s0LM<8r@9a-CJGtj%XfQD&}& zX7{|(TP#0Ex?t2b#RUvh($Jy0OArJEnJp~@$No(W01| zHmW>u`QZ&qxJ{y41~IIs2|XiP2@D|_=^6APIMy>leoL(|4vmU@P5$1T;Zv?zOuwq3 zRp3h!N1&r^W8CIm?RGO?X9*=Uin_9iM`pUZl*y?#ph}az(PsEA0uh6d$`t{4bmEB- z*{$f3>e^kh09nnVBRFVp#+FVHyJhjFq)~>cQDQ|7BvE(x`Av1%M51WIh=IfvwahxR zSqN0&0*WEFh$M=`Ef=|%BwUAkPZhmhc%^joZgkm9H+E@8HqCKmQIZpTp}C^61!ZBO z02D2~ z(}!pFzo6relYo#qguU6-&&aa_j&$f?A`1u1TNsfs)qc%8jxHmeM@FpWk&smucYq3@ zLe;L%fqvh=;`KQjz29HyGbCqLqL-r8H9iN^M0f1XGDgY zt@v+=hSD9lD9mF}?GmHI3^1R(@%@f#pvxo{k5BE5k^X<=dY1Lzar)?djbX5oY&=$? z)wb4nbW{i!UV{H|!l=9N-TeB=32`V6TtDynMF7}}WIr3+XPmev$;RTMD4Rb_;XNc| zKMJSL<9f;VTR5+W?%biFh(R23)%bb9fC?%dym(a6Jdpew8GHY{-`t8HdK47Jd+hHX zX9L85ZTdO&3`eY`IMg#-Nr&q-IN+pHi3zPz7))C>_Gbpk!Bxm` zgv3SxsDv584UEEAE0V=Qlu}Aj=8bNLDS^nd#EF4SB1oTiW!)(qxYrGg`G(T(dO92> zVVYNZx#2TUC*t0SO)$0=5u>v*jWD00pWaf)o;1A=-!8gd9s;SDH!1@`8-r>FM8HIE zlr%9sV1*&$)?V`}LvsL3gP3pw5Wqs2LWP!1WillTNeiwl7cgTkiw`6QqzOa$Hc7RG zzkb*;PO!c=+p2`bfJq_S&L`r1XHq@M-ZfgRq1%H3LLvw9dw2!u?+}8em9%IO!dejo zl*ncwtO;bs$fBZTf^vquoMa0V8S3QF1;<_t$pP#hQAn?;(^;PuyH_bXXMP{>l$`F+ z^!LEtkw|u6RJ@1}76oFZ8=B!FJQ+8pYh_fubRT_w!W6;j6_u;MFE9~gqB~TYG5Aq9}rPJ@wb0J=!ckww*W?b)J{fP38Tl?Zo@Z` zj7ZD6VW)&dr_ke$@7&2D!Xp)A1Z0GaJXEYfMUh!OMcBq0vuI9WDF>-YjHRWBkYqqM zZq$=(>dfp>-Q~j0072ybj$_h1wJ^#HuwnQXPX`iU6@?6igA@UbK_{RY)8~3(AcQFf z!KLob<`Y_!V1EYcx-CNnIFC6x5TkEekM~u=9}Y?)ny2R|N~yWKi|a=CCq? z2#TN?|HH`QX|M=N6UcKm8g+oyj~I4xxFUnW&{$fDtN2uk#7#N)18 z7}->AMGX>VDnxRRpz(BlP&b_?s!0hBM0RF*f}q%TAf`A8dBUF~1%U&#+U*1a;D!gk z=l`4OI5u~vNolPsKTYF8$_-MyH3kvmF;n=0Am3! z-;$a$EyI>!7Va}Vu>d2w|E>>EQRy=U01W{!uwcLh41^c}GY^)>^Mwo=&(PmQ#iJ}1 z!VLaEbtV>DrI3QgB}JNWk5YdMECntFUO?t?Ie7XErrhgEd4_A4Bq z3pqdqoJ{8j>lph$sYCx+Xa58y2x6_`N@_}3<|=Jp5(BhrEg6Un0DxNn5Fh{p_f)yq z<^XVT0nQ;#GHFQRsNw%I{R#fFVXT3l0Y9ZIT`8#=YIFgJkKU9Q471dsr;m5$=+?aSHZ` zSz|2@PLkv;9mL9>Tl^^9(tS?<{ABJuo_Fo-y^odRR;M7YO1oOk;wAg$M$ZH3z$04`nd|V8-ql!Zn6TuBF8C7MOsh z_LPa18Me;XUdP77M)LEXQ1?|#Lp;py#=$C~oNBn5`ppI1uR`3!g&BypF;y8xxQh>K zsdD+IY_KpxGG=FBOfXEyB2v-E5(#mbcus~i+Ey}0BHRg|1q@|c!?Mxaok&AAzm^msKlS#U3ddsS@I?nQB5ko1!c*1d|nw(3SCgH6R zT|Fv+q5?p7hJo75NH(`?U0Ptb3MiRD2tb9Sxb8Ee&gVIfEkJZX&lnD|er%~IFEl>| zo?TuGoyU*EgTXjo1hI6~B65LX;#i`g2u|XK>8z8-;@mbp%-<EaZPnKd{BhxdLB;vI8Im{2sKp^NOz$A z3Prml=7F&z?&fB)DJ$>>E*IKtct9OOVX!+B-JPvYIw#X2#tWhjR8ZUkuFSCW;?k zIBRQ!+h)#1@tR?Vc8+vG1?}B1s8{4O5}Aj!yB7aP_m6 zLyqg3-Jn6Wr<*HBTGp;zFgj(C+LUx{6D-I=H)Mh_ z8ryeR4xReCiMUGHvNM_{z2X?^+7ep(ULr!2EbTnrx)yMVgrhLb?24v=EuO@o*b~(< zCCPH5JG~WQ5ds-I-PW?zAxe8>Ce-(ac4R}jf!Ua3?T&MqH_WygM=<&AzB$ge;k4OT z4*0gV$VVu)jwaA?)m_Cql4vVwn{S)2!zQF(4@vYzw4HN~6b&xqTd6TGu5BYfEWsv@ zXF=X`rJcbcRpW`mRlgO9Zi%d$7IFtkYMZW|dMOQO3~$6v+Rg22($-?L97J{6WX+!X zK82Swiq-ED!`LR)u}$lsNKAY@cvP+(CeWGM!0$A5o@z?7kDNAnMvO4dY--#U{nmBS zyVo7tSkUC@ZFU%J-bq(KzWao)CY}mvS%nXJW6*MYs zA+m0n-9S7Ey-rAKOKG$`qO%~8jRyY8u{KQMn8@!>K+iA<2OyKb1A~(?86o|f*F`cjV3KR4fxSXevRM(bR4!_`xJI#^duc>;7DRE; zZ8_b{AvoU|2}udm%st%{y~9Xm=mEHFm)D}R#{kVPHcD+P0cXat$^r5eg;lGzXuXIcQx7l`V zAF{aD1W!f0y3n<25n9FKu#Li_ zN<5d7XNzHLGuhqK6Dc#d-U#G*qYYW+!IowfCg zVDq8#KNhgc22<6RK*`DKWDWo{)Qz@SSs0ZID@bvW$-vS^NO}qB_yTL0yAqKWwUCF0 zA?OrU7{w8cV4{k~3dM;85fDLqa1C#bWb1mf|GvZ3{$C^lg7H)HYvu++Uo}7OI(AN% z<7Q})nenV5%!Igw3?fL96&fInxDf%^AKm!=au_Z#KMS8l=Px#p6Y1u#?T$^{=Q(aaadRu!xiYYXaf3KX?7!c!|IrN-90%JjZkaBs}Q|q9P(BAc$B- zY;-~!?Q&tlCK>ZEV;~;pEF_f#o}`5dk-mBulN4x-gpAZD%#0R5*`q)-pdts>dV>Iu z*;mM*;q^xr1jeei%(AWOoStdBw*@3(&KeNI<*wglN8aQ zf*>A6D_;j6AmhL>5!4lr7vtY3mnhg&5XR}`Pp5&$h7HFbLBFnh0UvE{}hRu-nsG^?76F6z>&wvUYQX@+5T z8JQsohdB_>_{O#&=yHpuMGV7f8>SX^*j*_XZD3{@-CE<$m0%(H5Nm4+*>^aafjq`i zL@*7*Mv9my>al^ry0OM!mgC{LqnBrgEoKOyJe*pMHD)>>vIx5{0-=y?2JCn*`ZHTt6(*}kl^BUmH7hO@3m@rpfxr-*%@}~OY z7-6n4rCT@88sdp?w@S`*;wCn{5MCnqr_AD!+6cGFR=&CJ-SPScrl@3_OuI#JPjjSwjtkBqvT?0K1Udj0JjV7?br{lAQqM*K?x87n4}>f zBJszPB7wAecs=IsOa#J=3~(zC?2JQbYrCn;q8`9h2r!=#N-zOp3io0O%|&6T3W}jn zN3cZ!-3y?Ru@Fq+rX&&w5Jk9io+G?zPz)4NF_2`67`llHv`oiRd#nF5E$-^fScv4u zZI6GY4`b+b0;}v{$|}BK<)JiShQ1e(=if`a%<1bn5kzDJ8$I*(db2HpVF+VIK|)0Z zv;ZlR7qYwWbXn}^P%kEB3K~@l34aZMkmfp(hLFVCb`F9$?Q(S}JS`$Ke_l;iw`*yK zfIk5)oqfD&hO%P=G(0tU z4}Dk>07!z!1Nc8`cy*w3zfkIKrK(?Vg*&|~Ucu8A1cJyyL;%w1Q*i@S;~LI1ejda1 z-V{9kXu{(@!K5g5U?L#tD-l?N#xP)AkX9RwG7*hEUDBHIWFa@M43~NfLD0~}L0V)I zg>^XDvbS2Lfx9xa!sxKb!!0t`3SowUQn-v^P?VlF2i%@MI}qXq(!hV6)m z2&5SD%kwVWP)T6}qXPG6paK)33NZ*AM;){VnnLQy^a_g)>{psCrR8WiNy`)|boL?*rO-NPK<2L# z32Dj(Y?>K+leuU#G@h~AqJXAW^U6UL?#^pPixCGA`wpt1)N1&N4^V2%LYs5 zRL**)Y{OMz;-T7XYu2p+dR2&&xEfPpg84>pkBLp}{%FIy$@1yBCWeRy#*&N_0agGV z$B(XfKqzzEL$o0p_olXIqsO?rFO{i=$E#9sA~!)~KxqR5O^l?<&{u|>qzO<=>?DlpnS;9;dOXH6`@ zo3IVAL>fKKEMO6qk_HeUfULP8a$su=!#Lh@draZqdvaJ4FoeQD{TR|Ot@C-OljTxu z<&mS7D>)4Pz3*4xv6adyL@c_)*#}zm$F0_ zu2?)lTHEMEn0n;z&8Mu`A!_XHetbz5sH|E!P^?42FHb$lt;c>%Lxuv*(vdn$gcL~i zNeZlrPNYD?BeN3Vh2j7-IOE%o$9TGr5Ef2^3N&6G=oF7{&ur(e{J~Q&U6`mM~u4 z-A^l%&{`=>xuZiMiR1(i-pFImmth4+P=^_Yfr$aI5`Eg{UG9tOi~|MuK`}DWSx`o$ zBBIHbtTkxC3>&HqqcYWCYS2NDtY*EuxhgP+w(OiCQ*BszVPvr}gfIsuWLAO!7AY8m z1i+`+!vItb!~&Cvzd7aebs^!th@i3|7nn4z6U@!9a}GMLxV&a1!*1%=`7&XHqy-fV@yzv#^kR;5`!GV!Eviv z8+8{(r6)gf31sF^aDgpIr|;6Uie?p%5$p(+@_^p6Fm>WgXDP>VG-WJBOi9plIUFw1 zYMxE(c2L$9HoOB_gbCxVGvFDETJyl!tqeK6=NVqjP>__EIJs{-;>C#!)`w%+n&o0>&nfmhO~VOeoNyl zTl!h|6Tf*yGRN4|h5tt>%SnD}psu0=gXtcLZdd+eCXp5{#d5Z6-QS`^?PxeJ^#e(G zRY`IoLe*L~3cX3w6F2|?k_-SkRDu8p+#J&uc%;bEBD%b`+uoKF)_)J@@O%yE^iU3$ zpQNaK+N37JkyFc-thHRU4>aFGxT8@m6S?3y7+A;Uw|#G(_5C-Z(%F8z&VTB0Sw04% zqI2*Q7QrT&Wkf0x1Y#moRRFGzkW|@3Oaq24d0`v@4StNZ>w_jUge7c@#8bC!WSv_= ziUmUhFfb$=2@4h>?#dcKMf|E2hL{^kSOCKt5JiH6EX)d*Br%bZOJt}?6er@107dH< zYb+K1H=gnHj>0xj4B1PE4r4$OFBVt; z=6WDVA)iGEYgCvB41BX%@>C_VUsVtsTe!j#oLk4=Q)=~Q}DNR!{-&{ElG}ukD z5Q>Zgh5`0DPji|}29Uq4AI$e2-$q$5hLbTxu(E?f27mQuowzM)d#gFlbDZZodBZ_U z5``EM2lJjCR}Ac4V?&tjBmA|8qKR}!sdKp&m&BC9J!FB$RU}|!L1_o@f2Yy=fI!hU z$SN?NRP_y%(BPvVLFQ4jCV z*hJk(*oh?sDl&+|KQt%!HV4y)cOfKEjQQ*;3JV1hj8-UvBOojw2pTYH^-)~oU1=_0 zV1Rp0S9R0v+ruO>7^rr4rDi71SNU;#61%{nc?fdNJasL zsv{JPP(&E9RA8wV3Ze*u0AR)pP+$mxNRg{S0NoIgONCINW0fx&Z>8PjflhJCup>*E z5wT_z`ocG6Qr!@VHj-)swE(l5rVz7egA9nF(-+Uvoz4shds(l==yIa5R8xkC#e9+< z)QC+G{InD=B$tK~lSqb0h&r*u213yl>=+t37P&!ALW3KRnW8jWmHD%#e=k z3R7Gfp_R|YeU0PCIq3`>d726GyEq^_6IJ(FtCXM+!jB`pbe7yF1mFNLKsH2$02BZg ziMzK+@cc&&i`Z_v_siaUuQC6b>T~1`v>h!PRNgH^d`^CeMPRed+T~vr7X(2J=+svc z5HY|I{R;`e&&Jh@`%qfQaK_abRh{{ij<#!;`@Ey=Y5{fv)oj(BC441VyO4vapp=>nbyXEhudm* zz@tSNvxyl%AH0bTs6KoyQ1slkh1kBrM=HoH{HBrP}?lk@-U=i`Ouu84Pf?TpGK| zmrsa~hh-8G-y-a6Rjr*~TP1iTr&nGkrlR@M6H9)fMUlZf+PO1QalWWO97M zsX-#9IPngH;Q959$%XvjJI@<@#Rx$oc}0{-8#`%QYIU-60YG?-8_J&3FY)x*uL-nU z|I=yz_Ynij+>ZW(#NTDV2HiyjXP<@8?v^WvTkG; z5O52C0s?7_n-S;JM@DX+&FiUgtx(8Ly}p*Pa`&LzVkk*`aqH66pu?Npp8d;|U3ozl zx`i1RI$b|ZmWIvOS90dG`xBd*(i5V}1@(ebY;3O94mLg&AXPiNwWUT2rv$Q`72AsP zZ92O8C$7t8W&1e5y<3p#75M@Le`(UReXyZJX70|My|Rq{*|Jl>=g~f4muJ zs44o4FE0^C|9f?6xiO~-=Dy6;%7#R26-tdPIPI`;X4be{2pk3U>`I`I%D=bw*(%jj zYY*^W{+((1)6|^-3WC8Nv;BLNuJ{$!`?qMxEqK^S5Of9-#UQThyy)Fumf84t912}L z+WGe8w6f2$ZGkwCzV-^RZtshbcR|0JW%~bkWS$VZs>iqV)A{F7Sspa=!@ID3#t0#y zz@8W(Y`YoGFm*EZ<;C<1mI zD9W(k2URlPYpi5EX>u%f7x?BUbq#DJPcYJ;vWP@(t*=vca`;($v=#k=VCM5fqx3-?c4p@347y%tq$d^SS@F_LyP*o^sjD!;e+moE3H4JzT9Lq2PJEMnb zP6}|Kk%E91T7k-7M^aO`49$>&2G{{J3|b+ZED0@piPTLDo=)ZpZ6h9bP^|POn&2q;9KvcKT2KxW-n4S(^N_X3JrV*FlUul zzIv%Qa@M394dZ~7ZI%2Phvd+O81G&u&X2^h!wrW5BqGP!qDWpi9Wo0xTC~W;Wv*68 zNbEckk5}_Lmo}sB-Kq*%xo+%TZ9DXwdRtw_*4=h$(WS!h*~2&KlWY%4O~E-cusW?vHhklD zaM>?1Dr^fdJ)6Ra4`KJ48_DEsG+q`dK!?i19c&S@NLyb4Pi`pL1l>wVBfMhq2zg%t z^SwH6`fRrlVvzQ}E)%{Mv0RPez1$yaK?dktzb|rH>WBpO9oZ$Q>4~GW~jJyTy4)GcV z%B8#pzPh{S?S~mgIKwNId>dBo={#u9q*f{1zmE1oJu%ce{B=o(Bkb*dxz9VZ(F;4L z>+^)*LYq;CE^URkTQ8K}rRA3@*owKENg*qR zVU?R*W9eaa$)dGsT_c^*@|%xeADNa4AC`1$I}LPVd)CClQaT*5Cxcy)KNhW;iw?S9 z*gpGp;Z*nMAGgjn96mTQUHkh-DGj+yl?;@*-ZdENO3|cVbvWn7KMVYjc&_(V7X)9# z!B(5}I_#Fjqi=nk_opufZ5u69+sVr(Rw6mOcH>gh0#UaWL%URrsb7Q$g9i~XG>c>n&Xw?Y$N9iGHmWqwXLy7BW=vc+Czp z3Z=w0D19t$lxkhvgbs#64>qz0=vXd zIo$(BDFdNQA5qY{rSH^fFP}&r)m_>u*I8=o+Er`b%+)-Vnj6> zoh(F5A|m6CZ+VI+`ot{gQRmm%F945-DYb?Ld&~tZarz*yfIcls$gfvSIOFE__Pg!s z_#)lGf?o>hvxKZ@i;tczW9Tb}%{7~yT4N);WiZ(6-!1?|OP6$3Fe zSGpQrfZYVk%5OC%*4t26jkl{f{{gQv=nSVq(zTja>;eTkh|eB{N)pqAr6A;nhQ{`$ zbOE3w1bP?j1;LJFgA~Y5g8{?z+XnSOVs=9ncI-Bn!zyF`Qgxe6^5r5L872wsWLQHy zjNXnIEpUnc<3`Q2>@4B^MsR>*w{vWGNL8M|nOl!i8`nJK=+t4vNo^pJc0%y-E595C z7Ok)KS5n%vbV=RRMrie^XK#qvc~DkrmQ6*Kk)o{p@iQt2W9r=*rHyRxHIgnO1HlGb zn10Vtj=tAN5?ro_^Siey99yE*&ktxpVYIBH2*`&OO6Tke#b)xxohpn>r+G?6tCJCy zftN$mtSr#eb*Qlhq**T5SPU^eZo?f&DQZKQC^+Mg%v|hKB2M5o`?$%lAWVeCL(fgQ zgNdnhoFZ0jz5MxBfW}nWou{VA)kUhZY~ZU0&XeP8#FUHDo+2NUUi`h6e0ICsW3@Fm zxS__(GpUD+Vhke7?W3d#{b6rJ3S8_DKHi$1uSKDqhgtn^Yy~`d_*76boc^VLbLNYU z7f=z>?^W3g3ByA+MsHP2z4YXa39JrVE|JvS9;!5rT4+B7ne%lv<_YijtIC#?n^a)w zjr~#o)N81h>~`an@7w<8+G*8S@AR+BsaoNXj?frKu?e`=X)`v^9qI7~Ky>Z{w{9X_ z%03r*)fUQE6vH@f4w>eJI@?A#4rjA`$& zdkvXJ&P~QPom;!5rQR?!G3K$o)$8e-kCF$lgTS}P^`%cVpJ6f@RSH$L9+OIKZOm2# zH*P=MFrR&8wJTqDuJg_%PL&*+nuM(f23?(eCFoz!uQcwsY%8+JmBZ9K;MrPq6sJ%K2jULg+s1oJ>D_xb5;T z22fFs{3aNf!KBuyst}z<$rZ!K?|2X~>#w)GCE3{#D!#rpk{AplQ^#mC4P7zDr2puz znqK;4>>Oc!W#QgyV0AN@!cl03z?z8FKm(q}5E^f~I^-is_SqL0Y=PH5R}I2_1R*K^ zRn+6KPPpqz!faDJ#JQ>l=K_=VYxi2E#u~2qb|H`>N>vT2=AM%LplPaX8JPFi&6MA} zaews7v*MEW`I7dtDI)(3b+a2JSkz)k`66jD?)?ix5Ie$e2 zG)pmn8SGwl{Ez)!c6AJXKk?g>KDT$xwKPZ|q`mCXLvEeLPz{vQf3Ma<=r>$6%C=p$ zM{o>MrL_S^7B}aLx22wmJv`G9huhj9ewRv#~&^6byG=h*j=Z%5sfI)E4jp= zIc+=nx8xXu?Mh@b+(3XowzZM~l?Cw#&?He6D%7ByDxUOUP^#eZWTlXj?pv_%gy2zR zKA_=;O5;*(yy{hht$yM(bjCye%;UW^(f$TiBbRygmP|tRLt_D_4f9qm6=a7K2xkHv zVfs3O;=5#yAq3kZt<_j+u#_)t6li0dfk~;j9ysp~#KXe0Ga-&wXZ3V_8{P2XHRg%WWyFiH@rD9Lx55 z?yhpe$PCG(BAn)sODW55R%Kxe5WJQ?@2hNeGYL zmsBYSTCNjUzb%3w2{nQH+8ffaB&GvNy2&@h44RK6vjnKppZk70tBrkGu>+xLMr5KFy8+FX!8YE8jEz1?ZIjMG z#I~P}og|)5I#V-WCn)t$=Mh!~OYk*AwZeUEX$Zpam8CBiCN`xmC3wlOr$rz}EOcx= zvPNUPd_3!GK7Si^Sb+Bn)eLz6y!Z`u}%XkF#qP!%NN##y6JLJ zZUD<$97{v0A|_HLgKX^df#diw%|{Xm%QnPiVGWNr3>41B2BK<6J0`UXcvhvz0<+-g zVM7K6S`Fhw^^Py4ISjcN$F_R^MZ!aOh*u29-D<_kQk0+9;6{fg@(d8 zHIVbktTdD%kgC*)G!Yh`$(6)0Ju8jza&WP1K|=_c$AF?h9X4X6mbGd@V4%DK_UySu z;}Ij~tQ(4PxUTc;xchkaUhE@1mxTNE+XtLP+J0~SFs{hE?`0@dY2}^p#>!${Z1X2x zGsrm5bENgKyw}h zfB;|*IH}*R>nv~kk8W@Y6I(8N-eTRu4u3{SZ3(YBVi#-Djw8p1cio*VAUWE~*INjUiUiM>Z)8tI{faj~mb(TQ+#FQ*uXmlzI;oja zSW^o6z9xy(bM3%>gC!=7y(+iZGIgCf&|!;8Sdic!_4UX)Dk(3I{MYyR&Ys7wmwgt^ zKY9{ttS*nG7e+0O;ds>#FEXrWkq@n{l9&J9KD~YS#MFn{cpoCZwFpg>vi^P&6mt9I z{OUQ-4Tfnz{ejbpPUxE8pTz%E*XRpAY=4qJ+bBhVU_bgC579O_%eoH#aIJ@7MZ3DD zhLh2W)`^RgC1X;v+?#YQ6704!(Sci{VJ^Y4q{~b%?Cx)gR>_pRKOvMnBQ1ez*mx8INP{C;EAV0tj`)F}>^=(w@a#mmF*vA-MibTw^aWsg)z(Gt1s`LXv zyjsROugSN$z9cRPFpcT|RT)@0D#H!fzouGPZm(r==TUzx_w}^62Rx@%eA`^^k+{<}gT#a*gf_5AcTuG9AdetLU7dObHVsDE|>2WadIx z@aQyi(Y4oq7w#db2r7+i!&Z?tWPSPS1)qtQY>Qt`_dRgg1^XYmhxQ-*iMCx&*86^6 z!F$2{ulS?3E1AsoI)M4EY86kSrR7z=sDiN7cAXZ(e+_A%stt?oTVQnVu5A z`(dQzy`8kK{6jglA$>>XN4XzpLdBp{9d+MXTB`9}=U3eYt#u>n+B?YFU?`GzOaYK; z1<(RRWW|JW-sJ^#QFFL+`RBr#K6dIROFlp9-2Cz_`CP$Dcn8~&t)_-}- z)89hso2b%lBB(TsTr`roH5tt6edX4=>T2dq^8w6VBEgbnxJHR?Vm;+~k!; zK}$k7GoZ^>i7#dnb$6pYbs>VV$Iqq4DB>2uM!9yqUxU*cjn<15PUO9KuN5(xTN-oC zifWozrp(TBZ9o{Y`57O?EP33-YjV6bULD_mjG0E~vSqnF@NM_E1f3h$r+gm&rS6%y zmSZfCa4MXj7BKxmV8@VL{_XNkGT>Cmit$%-bj-~6JcI4Nvu*q3>odb;MhnL6?M`~e zx;0#xHA%pdVvOIz3^ivH4Y}*W2K55Br_I(P_6J3i?<8C7-~6?FgDf`hO4qbLA{l zrxp_O7i!yqm%BdQgKWdLLtZkt8Cu^!AJb)@UC}xb)A&pkry(^b3Od?weENW+F6q+a zh%KdeEm3#t>fElUimmJGb`u+ft(#|`c##aIkTZ2*e3p9|*Z~6FYjl04uUd0y9G?_{K$aiuSIx6p88^d#5#oLuDCseL&E&X``7hnuK4zqQJ zdook#k}xB z6`>4lrOVn`SpPdVvsRMcg4WGTlGw=K2!^J=r?FUNjv$-{t>Kh}*O~E5r@r73wR5WW zO$uIEKHv6ZNW17@J}H^1`y@uJK$n)fEgFuj^6~d57~|^vvv=`s)%x^z(Jw^p?22IY ze<^a=RM`^|x?h|%xMdBg1Zv;yA~gf*PXa$7k61z^@HfID>o%3Z@2Zh21PD) zEM8lTT(k%ZIzKVu*0Jzj$)#iQ0_9_oU~BX9PWyY;9qJvb9O-VIiftWBwIDi z7{*>AR(*b*NnajBTxh5?86S{=Mf7Z3dHFM1-H?Zh`9b138sIkEF*W8kV|$K8u*1qG zWa0E9O5<@K%gB>j<%>-f8h99(IQJIQm|8 zy{Ao)5OUmR3HS1LcrT&8pgf`;BEW#*qOd@65~bTNQH z4y@TiE(e=oSUNHcM{H!lK~8mO5mZ3{hE+iu_GUMZ|NJR!R1U+Rhd$nQ=!F#?c|Jxox6 zn*%&7fov0^`IH&fK?(>X?!9_>3&tnb?5AJ!If4UVee<;7zoakkUjDtD-;pgSEN1u# zSa==+XMO?FE1?wK>n~2e;IO)Ol@-SOsaZU)yFQ3=cj^wIK#}K(H~$0}W3fD+aT{M3 zGW23XCx6q;%i$*O>mXijd1G~A@&cEAp>vPcQOEw&zw-F$Q)(?Av~M-1z6{v$c>gz0 z#m|cMBG`M=v90%7#I8@%iJu0>wg{P{%+;o7W^yG?IdKV>Yf-m`>KDnh!1>>A^`$Zpa4%cu)G>qMMK?% z1*^}?;XOh}NlFEU@4K2mZarMlk1K!v{8#UDzSy$0f0{Rtqo)(1zVO=H9$xm*L*|cH z8|1sq^T|Erj<+yE55m_5@0&TPX!+kSYt?6gCe(#8s9_W&o*6Y>dd7Nw`^%D3#^Nhg zY?RI9f}i!v`@;D)2DSb$#YkkvPIw9OZ|7vOT^}giJpXdL)vMy2~-{|>kJ#=x%%Z|6rTL`XwGX2-N z_yz@zqTOpkNJDY!1)FRAvi;6P5QEBtB|wZY*o?lv)2V?_4*}$Mj~~}Ig!AIL9Z!Ql zaoGkGFq7eoqbgttUT_C?dNl}m>9dZ0>4TG&C9dc`N+}>o0mxU&=s`Vz!R4}#+5GzMzaC4!BA)=(hCFt8=~r@G-uu@ ztwe<^8{YhV>n^-Mm7(;$^66oS;D6(nf<*1j^51oRADWDNBh#FljjD~YPgSE|Cv1?b zhowa)^HtvHXNs}?4!M%~)-^)(&55yLeP8yP;rsKNUsu1LOv=4Si^s&ZZ*SmnpvPyj z+lf>G3-rSHc}D;jGiJM(J|CB`!tyHGlS8fzmSy z&d%}#Z#WOBfG3U9%jhXFTSXS*N0yt!TBuLu!k=O}(|Ks=V44cHzzAiw$Bsycp4hJA zku2ouss5Faggv?K4h^$CVdo6q8n?AZkOb|?)=^%@iRK=x>h{QU4y=_ zQ37VC@miv-6Ia|sBEm2~ng^$hdsIyw(LQNlpul21gE^1j}>S}ZMLce}QPL-=nFwzmFf!kuu% zK9^s1?$KZaK1IEO;?X9HKGZm%i31Zb0=zQCAxg-phi_?xqaNscZ8Z)_3zIs2Po1rB zw7A0mQya;WPZwq7UycIYtm1TTvw<@{$THb}OAwnEHonV*oq6bgPNUB2=8jjqg7A77Y=dXF@{WDb7Q_v<*zLH;qm~k8^;q1zE@M{)Jr-n*Y|*iGSjs&lZ=^LLRB~YB@6<7i2G(kcIzc_}_#} z$+29#g|GkW6kQC8JNnOV;>W)$L3g9&hp{sNTO&adWE66Y`esB|zdtLmL#7^3ZcO50Bs;yux5d$Ut~1GDNk#ixC*>T}-e z&PGHJ-W`d5)4FUGX}obi?6eZEcP_t(C!B`@^u?)e50*1_mp&~<4mBjOI;)QWoYSjn-c%)e%|iFjdSLu~tmchp5 zC@k90*EVl?_G3{|>Dk*GohT_Ki=gL0@BRFLC@L7RxjZ(hRXV4k3Vp6V?_?ATTY!`p zd6Q3{oLW9}TH)nQirXt;a_JPK6J161tHPb3)QWUf1rAKRLkch0x|`b1S)KI%Y7DwD zSBwCYs05m`bOEY$X-HT|5W8V4UG_Yq?!w?3VLG*E;{n<7GLH7_+P5;5!DpUna8na= zd0&K2lS8^yVKZ_%gWqe&f;Oib@_65*WOE!Y2xYwPh@P!Qxpjx~4jXSIc^o|8nEHP4 zUuSc7;fUo!+LyakBHom2yth-}3E1S7Ln(jtpTfL-KzchT+xfkM9C%_PypNl-4%!qI&pKa7cj*v-#w+_>{-LIPu>Zb4 z>E;m!y~OfefJ4dr!q4JLR@jNudc*9mdc8i%P$MD9uX0&nTO(Koxjll?wHNn`Bq$t#zXZX~$+7!VG!e3Vfn5H3vV0UtO;8*jt* zwcF%Gw_S>*_Q!FGI!D_3LBcnI@2-h&1oRAST-ZzeDm6P4tBvE`IgPhM9xn#;4W;+R zzL0|ehmU2>k=2Sr*~Ng8<2(B!MLq33h9y{?PHpxP-vjGaqaVInxUm^El*`m@ek z=tq1q2&F{I)SO#XZ2LC;(Rk`>dP!<~8QJXD7yZh|*0OnzoGhvjT}z9*MmY5;jGFrn zuCeA7uDTP4YjuLpRF=P3N`JsL2BWpj*e-8rrd(jr7Y(^>qKrOx%u!bryaGq- zQ_i#s!*E0%MMep20X%>}cZpyf(>+D-lAy=WZKPjo<_A#;g6DI%O5Typ`%`nBST`a+ zdM}NT7zNx;qHKH7HIpF%&@nr$p&FO$uKZF2501!y{z<_VHy$fHT%Or5PcB;rPpH+P zKy8W9#m~@Cz$v9hqXi%jR>5h^^QXBsL_lURRRu?bKe71SUr8T9q6WZ3&l&_4N2cNg z73lOTyga)JF8#vOjh_L9wxd@hB>($kmGrpO$z<}b8Fb(_DOHM=LPE0}QA*JH2Bi@& z$&#d}FWk7FF>j<6ilj>C_mdTX5J%n$bfFo&F$d#0KiQNof4Mr`cdTyzfwDWGUgv5` zemp~W?&{^GF{Iap6PcMbyLV$R&m_z-Q1Tck7~4pM4hwifTMaWdIGRT{O6oX9474en zU}08EhStc>s!oeJ>_G6BZcV;-8ha^5Z;6`0_7p9 zMxv$U8A(7$GkbFh#Uu2Yf1ak^3Al(PeH4Xs%3xRGV-6u#`a*OD-$uE~GG#upp3Mbb zF*!MM=h+YA79Goce5~iL^vcgew+s&G*NH`T8LF z`|4a+zN^t)9OmQ2f>0@hfnKn|qULxElz3{E>x?DZfG-wp%Vdf% zeTTVh2K(IqE+-Hpzo|Gn|CJB3RYFsT zrt3lvtl%zu)5;xRS8-{8pKVw+vOpyp`)oLz*qIQ>BVk_fBdRyH_4D6i?b+{dtY<&; zl{XzG_l+msOLKooFP)kA%oZ6Ld0s*OBVl=UV9Hi1EiThGg;I06v;@M>N@q}bup(g4 z%_J`1^WljS*5pl~9G9+kqPud+zq05nRb=3|VZMI9YMtx8$63n9Zj2Sp$Q&6eo2J;s zD{ZMa?Yn$mE8|SRweSQwlmZ4((Jx$Rga9guPXTc6iLI!Uq9RSLw*ShUL9suT6B>Z| zBD%>hE3sZNnB-#j#e4igN(j`|4|{r570{7wZ}gVG%4WNemu1bjiyLb_nbocNDdIv>aeqTXq|^#P89s9xsiyzK0tstt1#-S&pOjUhp~g3;U#7{F}=-LIs^D zzN|WO`s!VIRwny@N>PvI)%oLrTroWTC)IooyCqJoole*Pp1LZapZw}b5%JM_Z$s~e z^Nuq3fMqwle}x*rmB~AN=}|#$Vzb$lKbG?@HQ~jlH%Ch@+w$cz2Z=E2hax-)N1wWS zx?)r=tSB`-cB1vp3k-2|^rOT@kE}4HpL#iSXLXEEp_XGK*Uq3oA6MTYWTAKh1C^rO z)jCx`MOA59zj=RdheWj578g^8Wxce_Zoes2O}yH+74fI=>_sMr5&iM$n%x#0PjhQkR zyrkTsfQ0_b`ztu9d^5I=3~j19(PHR+%Y*9h(L*i9S_)W2#o%Ed+F!i35f39`$`XYjt2s6KPjYc$4e#EQdle&7=9d;6#{b!KHRW;33ApY# zJ|)pMvRg>X^1W5<*%m=E99yZqm3}WU^ z)WF~MK_H|I7~XS??Cpb0eR~W)4jLA%ed)$zDWGkktz;EO8ZL|ThkD*Wr_lG^j89PI zIzKay)dvG&wd0H}z~Fvw^adjf&MByhPhm(mGDXbMO(kjQCK#{uu`BK-c-N2KZB|E< z29f7avNE_%hl#J<&r)PxP!UM?ip;OTS11gia~b&+4I}`UdRvMxln4z_k*mwDYjh-Y z8O!3)4H-8?g^`U;xKN?-;U5X6KkiH@uxs;OwJ&&>DviDRQlVZZ;?y!l80WwYh^4wg zj?=(>;2Q18pr2_t>`gPkapamZs-h3#B&vVr8K=ab5vaEvjCr@AaV2+gP5aYy%$n%r z>5>#LxEa!ESoPixAa4N>`aWf2@?&j_%Y4Rxs!!rVMPfURk^(sq=PuX%Ls5fqY zI;3)^I$g0*_gpj7;Pr0&nbQUi5Q_p%vGS|&7wH>Sc{<(cYB>ff?;9b1AJ+bHNnL{R zeG*r_G^q?~{+=WDVOpt(qZ2{`9AE2+KH6&gH)3(xYHfEN3L-1f^XS zSqtM{0KQ6JuHXP=#1zo-)$;U|=`AK*RRU!IKyX{jRz}&#L-+M-qCU@WIcdnvWDd$o z>=*<=BQ9n>c#vnovwE`HY-7>36!LiWLI|6bflc70xG9jma_3W9mY+{YZKEk~ifQ2` z=E;hZ(>*-7San@oKHCyKg^OrFLD(1<&W8_MiSLBKen1VKuv^*Dq!r{nZ2BXqs;Xk9 zjdItJ7l-;}Wy`RFp|$t(myZ-`n(W;;j9W68h6p3QzlFw6VnVh#E-SEOUj!A5mgJLb zrlyi4q=kWhc4|fhRb)$>mXUL>(}iVYGv8hy$8`?==df<~1k1Ua;*7D;(y>pClTW5F zJbv9SH$8cq8GABLTKB4b%+^Z5sYig!bH$a4x6M8(sNmDHXnGVgoBSZIvG{k8X$f|` ztYn}SDpdX0u%QCs;A7Z~DlwD{?~9M3Qu8RHaForXJFwEFE>^0oVKXnUNt~>X3VUnC z&3#F}0^}K?Gl*gYdL?`DKn*e`fZ$a1PmQC}^Tio*M(cTXj zdyzKuM#5MwvqX_g)5+)<{^n#v;WRvuE~4?2axE?m)a++veb}4p-0i*mUun?h&ekdH z=_fQsdWGkS%O|4#%Pu^Ld%K!$W8*AU>c#giL>0ovS!-_#H*I(jlSSz=QeC(`0DtnMzYZiW_haN#Ps#Q;Y|sO9V#MVmsA5w1c%k;rzo^{ z@2XyMO&*)@>EtIzj-qROhF@NOEPf?d|FpFlGjU~-)%fdn^4TA|7jGrMd6|4&^=DyN zlJd|`5zxl{YE`|8b2pwXYoR}uNWtvCdHFoGC1Su?InM)C^h_?RPJL4@a{Z7{x2NEt z_+Mq%DpK=$Fyn1tH<4qLv*z#iynW~@CoTAfl!LrfvZIA(LFowr<|6D?Eqrs7d<;Xl_Rz&Y zJ#6VH=WoZG?)^`HENQaKD~&4xP<#hMFxRNB;`E(bgIxhW$$kvu(iaYTPHp`C%o|+> zJxhC!eb~JD)^>@nL^3W~XjHRn7Lz_>euevs8i$m0Mw|eJAv*kO45bIJem7s2eS1gc%v~Ujv z2tVLQ3IBhi4G`9y*PoK^)|`Gxy8pS|EfFN+_xE8Z6gZa9JRkx8a$kOon($=h=}PZH zt$1YeDVcw70=S2M^R9_3e$=&+Z30%q2*`fBW^hu!*uhpiX9A5CAMExIs1zmf4qOz0fYq8GKXE#Lb= z-jxf#1L$fCT7K|n!A9-EW=6}PADW*n+UKsxGh?5jQv@uPnDjW~`nhG7~BP`}MCYlAN zGb-q&wV`DoLKTM>e(j0e)wSz3N+p%_pv$|VgW`vkl^F1RMygC$JY$;*X@II|d3lP7 zCEjU(^ytV0kzM(|i5^UfX5+`K*4&+$y**VT_S;?_qAbrl&p|LfrK97hw#6=AvTnxJ zQ_p$!!%skZ142dE_GDPFNm1fEiSIBJHieES22*f8h<^b**&uGPFGOW@td-R|Z$qT# zf{kFuu(dk;_;G?V-IpE3qOidkzam`WEHE9^kEI%7YY_N;3dsn>20-J;oC0VfI2%Nu zV8H;-215{*po8K0E8phgQK)eu#!@O3r+Hj&plu3a=?FOr+d< zjN|u!*eWK~{T_kWR^i{`(={ur*H^XK5?nJ{@Tr`4-Cd+U!E1N_1G9jo^q8xai$Ty4 z8qEvt#m;adxo09X4$h5)3*ww%Lm+-FTWcMj!Y~3&AM`K$WCz&zeA@FJhj|&;rCoV0 z!0?9$pWhtDUnbhD=RA?!s34+SneN)o_>+M-w+2iW6t$li+Novnvfkf9mC(%Fb;0ZE z-rn)gfUUZhk!5v$*YRckWE!;G3Bf^`H*OfBG}-VaYGK8)&G^7s|!zT)t` zPx#XO#}kzSU3B&xj=`z12U1G*F(mM^-+Mf{*S+2yMs zGZb2R^AHjHhpvVkA5t>>4EIe`(w72&5pyLSSR|33X&RX_R;oQ!V(n zAHn>mnWX%b#L1qZ%P!HMs>N2Q*KAh4uZL%N)4bfX8%6wD?6%{)PXi#UY!E2C?knT7 zT-)2(%a?LZ#eJ*TDe3li=GY^0o=3XAI=_>o|Lb4k9pUG{w@)M-u+7|D8LuL{HEHhn zaX2KL4*2i3^`(r&;xVtzmn+U<81v3G{qyy;m3Ey!C3D=nveaT<>py;s*;2Ry2sH5B z{QLZF%vj(1^R*B~i`%N;b(Hk?re`_lp&@{f)qxZM0hj_%_bwk{{pJ4W-zOFMSv7-Q z(8&o_<6Fm-v6>qKEeFIC>nHy7tsln!yJLK7^YCc>uzf}C!+G7N;vk){|5|^}g?o(R zfYi|^QXR8}zPkOoS>?u*q_+bn-_^lrwm8QII?4X`8pepK;0*RO!Lj=QQP4r08Ky{B zfP5_rjV97TJa7aVRC9(gddz5{+9*OewtS0ut^|CJ+WTCZN8-0F1ZPx3VFY(}a0yVtU?q?Ag5h;&y-jxNDdGYrkxga&Vh;+6xb3aNw>dttMMtWCaC8^O%p<+S)VB*mH@#i#3)1u8R60M))e2*MgnQ3g84#Uigd42iK zc-WwWtl}CToT|g-{O2}?SM4aXN*1;AguLf}@>2KCK~LX?OAEvCjI8j?3Y7XIFbWo! z%0vnd8x%31@mG>nVkf>PZzm5-epi*{8|(eIZOQ7yJ9#zSRT0G1c^05B#folH2X6Z^ z??V^XU+H2YEl`__*ZPO--X<3p_nao#2MrN?i26w_Mz-g+@@Ow@SYK{lY&% zV)+IRZ227DSPQX5-K}&}HBMxq{?s6Kv&##bXN;#T=e1XJY2vls=crQMp11<&=nR~a zzn4uF-n`^({`mQ)*_-bh2GpHC-h-gi19Rbm52+JO%51(Q_cXU76(9AH@?-C$4k}8zyd*%8-I!*T~g_9A-eZ8duCxn8^k3;;%YY;+Y0Gh z?DUB5VJnRfFXw`_{QQT{P#*dG{2~KO7E<_aJ$z$m`O};EQkjcg`Ze?MZ>ma%n5xOn z>2|o*ld;!vF#&NoqtvdzT-#`0GTUwN3e z-n^%zV*CcI18RN=EMzlclnWi^F!+H2J?>wfa&N~&$h^#Gqj}QX*BJrk=Wtm}0qo5O zbr8;nygy>!E_dAHfByB+F1iuJi8O)?P=U6*7OXDG8XOb{%Xk%zRNo6>H|D1Kr2jAy zoBV3i!@_{@DMUkjP3;c@9=LrSo}3EeBKK2suy<|jZ?iCyTpL6sPTCMxOE5l^A{kAe zeGu1@TU^l;yn9vrd@4SdJT@RHqC-xrf@abHK41{L67(v_GqUtI+YSEfwsxME@}KuJ zGAbTcX61hO_sQn|_T?Rq$i{*U91wq}c=o@^7DuN%&fK9#hf^9?$0u)X@Dw~-qv}%orwXhW-i-Fd_oD@(4SSS!!vNl_|x0P>kmqH#@AyT-oM3QQeKxqd& zw}Xo9A1L%B<-;gv2>CT|&ysWrEG*+a24buTc!W!-^rACK3PkpvV60G~rT!b%B7o@V zMe=cyW40^g?@p;==XiXJ=$3;qzAtA?V1@Ldi%No@RT1p-+2-myU@HwKB~ZE8?Yn?# zHt=x9>$3;cOJlbFKDr;2Pn~>tMW=nj&|AJ%VY1{iukYlOE00yLRY_w?+(b@}sN=%@ z?5omUgdv103v~Vwfu45w;nn!BA@j*^eDke@)E?T@vXuP4#hFAccXjPtDF|P-7JqL} ziS_>ZtMRoGS(Mu%@=lFL$#~XjbEbgk?bW45tz}LBRW|ID4nZuh8 zpP~c3O-2zaM2^8_oMP$#Ljdr|GLo00bH2{BX=R@N@NSd-c~qP3-qRjRvBG9wQTwOn z24!b_p#Isw=-J!t{+@jYCjLC6&EbXknOZXImB{3|H940rk(}fI16x3(ze{6yXEf3n zu#zLyq$C=3aSyBc`5t$M+~wtXUO(<_TfVPNl)RUjiQtRLyUkTV<;Gb0IY}PG#nNx&m5qnFpu3Uac7EP89YEZCZW!}9W2qSDi|Y7r8mZ{ zyP7GvfJ*gr<4mEM6N2YlGdQ-SZ^P3$Hb_snj=~oDYJY z>sIEyE=x-MUU@qk*6&>FcpRmDGul;xw|-(C8gx3RZ4d~si>qI;c zFjA%|i;jAHUHp){Qozfzmy*h&S~E=tf(zY5GD9&)16L(t#3A9J+~2%D*w`Gg(4eq5 zy&M=KBOD)b0+X7wE>{YxY z<(Dmo9}j7gPW1W3OpL>EF@i@wj6bOH#jHd#4Uwp}_qi1l5iFhA5;Au|ymXm`XNXQa zhc7)ls?2G}I6Ydk*&2yG?=Z&HR+?`rT$pj?`UcKjlP&qdD+&1?sKVWD?D+gU!&~=0 zakUN{-T6!3lZ7H**rAb*aZ*1%1ezgcjUHMHJ(z^g%y#C?1YZW-$eSKLUxb#t%WKGq zZZKlag4V|*@(zat9l|@v*5)cXy%a&;*6c9aUCjqKL^1+=!!UNOa}l1FAr@JO2UeJY zDN5B5F8F&UI&vQN9?<2|ZQ>HL%XFG+#xr*BYIvH#0|C5X7}Ejo8pIh98BcsZhAPJ2OGH7 zn`aw&a~ZyDAuKeLC8{#O>=sCD#k+}MDOBDhx%EFXW*?(mgTBf-SROBI(XfbR7IhDp za;3@;NaLq?Wvso&aXZn`2c#Z(W#aFo^)%y)+hc3EjAZb-LbnT+8U+}3*$7N$SEZQ~ z3^WYGZ#u)a@!Hzj#P)efn$LzcdFJ^=xmHU(PPW!jPJ+@Kyzj%7HliyI>nJohd1Y|z zcrtMCqR$A{^Bi$_FBaN*bWS+07S*n3aJp-Z@p~nkbD1$-%#5imew9Go)K8x;TY}ux zida=p$*ziuJhL`!7#<|pnVU=;mkMEJAi*ZGO1WCXm}SioHR&+PxR-s!^A@sH|4gQ) z&qX!{0YrydZP6!9?3sEILTIcw=_*X;oD=J`k%zofUDd15?Mm6Rq*cU8wTumstb+3K@$WS1-NCZj-9)Pv zQ+8xG)5+ua`kbTB#Gq%~c$~CmiD9Z~*r{8)7TbriDy@owq-5wYFdas2mSq`flv9v& zYH)4_a56f<1q?>+N@^9`8&Tmx~wq3*jGvx6Oz6VSACAt(PIv;0{MAbEoYQs9Pp=% zIdm6?9Pk_ccV*qob|w1GN`+xScp?x`pTP;g|7&%)`j;iGc`8*(es_^mD4vB))Y%9w ziNTApX|d|LO0r?|CnzxWc!Wthv`tNB^)8KV%-;%VWW5Z?mF>?!vpSU5mmdkQnZ8{X zdq6^KOBfy@j6^gUBYESk$-YX+Z6)BURHcI9hdcp}Y}sIN7y-Rj%QY9;bTD-4^);Ub z5hA73VVl@+QC^~?aUz-1WUx=Fnk_>>STP~VC{++mhY4kH&~7l%$utviIU&BZKUZ+wY}|r>AKLX9 z!tU1FYbi?GN-dP7Ew!Rfn=J2sU#w8;(ZT?>9-pn zd50Kkxwb#hXhNy2mB;~1P6_)@v2D!E%*@O^&tL0)_IS~d#D>oedne*B&`wX;wPEnX z#9pcGKU32WZz7*Y3O;`@TR|Is+R|$`du|Xi*A0#J{x3=?y43T*2BL>wDsYTgK+0$f za^tN{NNN(ADr(dLU}0yttn)zCJHvQo(;Gu+HL<$ct!qazNp59@c zAWcF_7rl?JxWf%Zu){aUt-b;ol?!!VqylxIjp0 zUVz}bT+js_4eI5_l)MfUNW_sq@Qg-8rSB(#tY^K)aRAvj6NV`$fCm~qOg-Nbn+tME zXNYsG2s+TY6iyao$(&dRm(0}NTmz>EJqQ{TNrVN2W(U4@hh$jk8TupLvd@axCLtC&FH>v=Gyb?Y@X4GH!z%(pF7T&1h}L-fb8XFlwwzx5A4(9!QRvI==0 zG43@)bR^r<`9d~QQK?%P41)+1Dy7|SP_FrS2gIOjH?K)bEpf0p zooCPGItqxJljB)j4|~=S<`weBs|eCHBHZAYS9x?&5tJhJ`lv}Jh?W_OkalKjU6gHA zRDQ`e_;63{^q<@NynlE1x!(h<)#y0gU&+jIetV4R`VL!Zud*Dl0zq_0G1pH=x7zKG z%q^U`?lcJg8#4`utmVeCYf^F;LJ@FqNABR$a~Bduv|5*m(V6Y}5R<$7swV}E$BcJb3FiCxt?+a}jA+n&wL*eLbGQG5z zybf5B_rZokl|>;~OgvfJq6o+oqY&#bBzD9!`qN;!jA?g)@p-#GCCdufS}?;r=Ulcc z5P^n=M-j9{Rv98uq6C>jjih5;t!Gv!E?L^zXstP0baseDb?c70Yz&Kr9>t$4AAiLw|OX3JS-2a%y^qn39p zYMG*`p7A8dM%0la35>Y#ay!h*&t|gh>@n$_!)+z@i!PpJKQ*(71K)?OLnwQ zj4;{;M!`(Wj+z_X%E)AtZ>d=|Hbu5IB22p^RONC~JdWngVs>Tyjbat((7UH@Yi)S7 zZ6%&~Ahrj~#w{mwX6A6_Hy;(-GL4HTUYXf+^v5jpa&K7$Pnpa1y12CX8+^5YCKitWgm~08AIL@S5}NHS@;d)cEx05g`b^3K_)Z%n2?Yjvm4;%G<*Nc>Sbs?>5HyvM9zUBtDD$CI~r-68Z45UkdX0Q{_f4>*MB)8 z>b%B8%F!~}tWpURZ+lzm(el{t<*^JJJ*$Qu`X4YD0ub5x-mQyjab{yco<;WFaeM{r z1&|nE9WyZOHRNGnwlu9XA3J8AJd0~M9= zUmv}Z&*}Elj^@+c*M1HG0#Ab)HkJR@E4~A@A+Ui&t%w!_1*O>UN^76eEZYOm{k;@h zzJ376=$MY}bF@T7Q58lpRaI40RaH?kKG*s`&&eGa9B7l|eO6_bGy8mq*vLCOwuR(D z1(1g(;1~yNu}E`2FP~^8p-HUV|CmrY$o(iz|rfSk zh|k`BYrqib9r3X!zGIaL=!totRHQ}(hzvvD-kvYq(i^yk*HYTVAAJQl!Xh{*kWeqD z;EfH1kwtMXsu~d(*|JCgLLx;Xl0_i|7(rxIh>T)HBvFwNkdcrGl7rj)&cOVycftr} zj%11(XuB+*GdF6exG7tRA zRtBmxmM}69iHu;Ps=-+i$srP|K&}l)OjaWinqW%>Aq0>sD5?s?Vj&`>0s3f-W&WiaCpX|qy$ zB|)quO>vs;SqQNcx7#en+yh{i2PvY8AySH>K4z8TcQ8O=Z7Ptd6mNKj5Gv%e$eI#N zh(M8xRX{=zf}qHXNQ)4RR^e@K+M+}aU7~P~f|8;OU;6yqgV|zh)JXEpriu7vf(11k z76w7ltb-Fkf<&UAP#sOOVeP0l`8|CXy0Lgocx^S?fdo!Jfo&v}lkf5iU@utK_(v(T$t|`*umaNhGih z;WOKrMrom80&RzT0EFP1FR=Cc#T$Aj9S%SuLE>Qi2z2>R!_tWH8U^A&8WkWI=m0SE z6xWt(O>Xmh>dFG0+%XHC$1l_9$Od8fo4w*`2k`ks` zw5ge4M%I%-NaGTdB+CNvZs=%Xi)z)VReC}Zu|aVt-Kz0{SZQ5Ls6tD^+nmPENRABM zV(SC?_)j zjD#c&umT5iQYiGrg-?ZnD*^`K!lVx7092B&6oCSyD+nx=2%w}=6@-$okXnGNP|ey? zc?s492GP~6fU^lr1#{^lvI7-#cqr44UnOWSLD1gluV^?dl&%Vc{fh78AM5@1C; zn-z4UVyXtJ7lyNus10u7DIx?9DLB+Vg=4}3{xncFP*p(+h!|p`R8X@5qSF;xhUh{T zgovHQ#O8`~g;-n=ID!Zc4{+6n|DDPl@W_=$klhGrqLd)QMv)jLN)iwT6C(&m1}b#| z!@E#|AqEmLK~+f??q3kFqcx14DHGvD_3SjADiUdg{WFW+bbf9-Q;(Cvl zz(6ODv;QBs{GT}Di%7>`_lY*d$5PK z8Q?;j+@dvpKnUwH~K7R0FmRqMb zpMAWqp~ZTgPv`VLhx7V5A7hmEFw*UF%!;?WMYKf}GX%PHDgty0hza+(s{Ieh^7)9; zZm;^x<4N}7sS~IaJAXrK{<@x@PxtwK``v19{u@Wev$5_PfCdZzU;qpNV8Md`wIrM@ z06>@Q2@3`fzV3?*_;@YbD!_Sq5!Zg6^X)1=)jk*e|7TOL%^@_=5f^t51v2tXi30ufMzSpbd0-6)X=pF_iUl2;sZXLD3B z5ft&fGApI(@qml2`g$BB1d$cxjYdvQB`ucA=<@t zotkZcJxg(;>5ln$akvObZM2gR26Ti;0qX3bsWS*^ngu@N^x4{HIxnmp;a$tq2t{_K z`L%puxecWbH4xh6>tvJinHHxM|WI^gii;5isCWjDh7u}6h67nmlf2eg)(k9rP{3tVgs-p#-- zIN_PSLLoyI4JWKvU%iWDy(o$M^=oZ)V6s$P|1y~v|1Qyq5E#TpGggYAC<=$}oeaPQ zlCl_n3MJDlf`B9jB1jz1$;ekBu`n_e5(q?LWR6gvp3hVd zxP%iJ5_qB1`YF}M1|%Uo5DaJ1T=ifVfpD6DIU+a5@ITi7CBwlVIwH=}`0TjR8ihA2C=USzb;YhW zDc|)FD0T$j!TDm8^R zh>Id5fPy!Dw{;Qy?!+#d2NWdG#$sF&#hRz&Kso^L02BndCrAJS1`KEr0FYuSr8mQ? zAuvJve%C}Abxp&u!zkG#8M?Zbq8w4%az#KCa=B1eW;3WV|4Thy(ErNsYbip2d%+p~ zrThz+IdL7V7<6C4rR6LU|5{kJL9C^U+b1<`eFNM(-Gx?nX1Nq9n5RQfJVO^N_xMbB%c=rE(e0I z^)=a6v-mJ^EK*!Qd9OK7zI|U^((D2Jkq7Pm9oOBQS4r)7gKgrFJuvtHt9h2uV!%NF zKeMn8+yH(ML-X?hri!4a)wMr*ABkmhg01FKB^8o=yC`l*Nou+QQ8mW`0Gfc&+WB9b zx%H+nkdyseN*NU?ArjzI$M+E48$os}9a&gbTx7Zuu87J>Q{Ti&i3nWc4_Le);}4p# zAs0~3(Ep0H#sT{*j0X*e*I;lET#-X-RB^zz1vMSGDU=p`G)A==u45#GO{PF#;BO1l z7HtNDj8ujGqHx;C)}Fjc2ufP1Ley1kJmAd&ulQf#Xw)=EJG_MMl=2%W(|}Us7zRDG zg)%8Y5bCTuW)?Lu`9I0v{)Xp2rsOEd7zoJ7kbx3O2t{Obs2)%u8f9ML1%wNiE`nI% z_rI6_pZi{DulIYLzL&BhV701$T@0$lqxIRjCkOEP(vHp0$}^Qe#R*YFiof>EEqPNl zXY*3(#O>UKb=$)-M1nn9X7eCd8Xi%JBCGl2w4GD9DH!R&rKX1M)!uqavt;)0XEp(> zo9D_mA1LW{=h&NVu)f7k+8)BPJ>UQk0lEOh5Fj960nn=>sa@z&!(igKWllGDJ}wK9 z*k}+?A&UpllBz6V$rM;5M2HIn5h5uVF;PSWL}XY+g29PUd2fSP9^5LRdk@>>ME_sw z<}e0eAK~<9JhofUH~q}z6Xz-eA|RY7q9A=d{|BtnQr=;xOkT@^%l-X60X;-isg_BU*4C@*K$XA5SOO~!Lilk(S z|7;%8Amx%zDnfZ9`nznEkrgGVGQm_zl%(Tf=3+O%SC!5wZ6p~dT2&-ZSYu14leLpt z>(gHM1&&7%ni#R(twTBv)Jq>q&KNy>kfODqw`2?-tMmHn9z*wN+dj5n!Q?CbUCJ2_h-7iXvNk4}I8WGZf8%lD~(8+$;JF z!`#Hq@U)InE8)J!qyIaD(m9GGN{S!OfuaZom~?es%l$q;64SAAK%4sOAPNA9^ezx5 z1_%N`(1Af1t83OU*4{dw2O>$sbW6=bR3-fDo7Y2>*(k#m>g)3yBp{OQW1YydfTP)1 zQ=J~=3j3*2a&Mw=^Zfq1s9knRZ1+f#VY(v`!yM3q7Tby6u0G1U&o0x59dgo$%;MK~00ge}7q*sMDCpEr)nBpE#gR8S;B5RyR9Lfj8W^geQn`s3R=6bay=wIF@i z268YH-arn*0CCVg+!gxy|7OTO4ghLxztW1^NV9s5lnH7cD2T#>ql6e>VSwW^U{S_N z7l_r>Ch3>Wal`e9b#j0|nX-tS2Xnn}{&&WZGUoQ&r|9+C?ay0~s=i;o|8M_Su8He1 zY<`a?v*XQFffRtVy2fvSnmrgpPoyQA8n7tB4i@Z*{ixmfFoZy+AJ(Ni&_9bcXno1p zWeasS#L|fAY6aI^nkaIFBT{Xj_33E1arFTHcVOQ5z}$wJN!+RK5X2D(0R!i6mH_D@ z>cI0I2b#y3nrVh`)rP1l#jIFi5dfwF706f3gfd46Yb-&4qxDbyQ<{SWM4VjoKU8SvkQ2-Q(d zQ&AxjOMX3G7oS)7H^ZYC?<~ecrd&f@$M>0gaf05qnHAC>^n=>jwsiU&vJbQXW$2VAAp5In8ALC14beiN-`n&=7!A< zX(5w(-9`psb2TKwYaFz-3vH#;4GCX|SzdHrH$t?0!>NGD(djtW%UqX1jI6A-;E@Dk zXXth-ysir&miG+Ip=~9!wWUjJrPyUGoU>WXw#!}HUv0!DL4ww&cd~WchTKDGZ{R~f z(n}f$FEM78EQP9*zjyPxd`^4!V8T59EiI-%1GQocCn`Wm0YjAtzz7jz7>Gy=1d&Lj zQC1@%6ky1r#xf`|fB*vMFhGC+0C7{_)8SCifQdmojHWHGE$PqN*kJ>0olak;FMPn& zg^aZX+SE-1Vtd2!bv~oG%`*DlEGnjNr{`zp`O9a@5h^MIYr?! zSqG~YZRP2e$}|&BpU|UN!ipduMg+C_b>F+mZ*}aLuAO7vNv^Ktcb1uIYkro-{EoVj%PwA(~F3|Y~l zPyD@J2WTdR6lD&V_U3*p{00QiDJv6IA`N(Ky`e8E@b?Lv>^V)+7tYP%FRg?s1Z|SD z`E=E%1WaPGB$0{6VML4wL6AB6Ies~PhUq#mF$i)D;fA#egCL|4NX3K*5jD&b%v7Wz znZpBWBZ4E&suO@LETqJwGD{`pFoA_6Wgad6^3c51;nLybbwYxNc_Q|twm0&-_mN z-M?ONLg)A4YXF_E?1?JaR@s@PZ4PnT))RRZ#~% zg{ayD8Ze-*1>7Q#fDn)Advz1sFl15YbZo_1Ac46H$huN1pR`k?wqlL^?e`r9`_jtA zSP8`19<4Pm4%H)`Y%2e5UevV4cYT<9u^Skei2evlxuMxeStJWtrG_KZH{9lT8(1}b z&;2x(ZTMjjJU4%No4Hh|MaX93X%#~TgWaj~x@Yq}Z$ zAOHnmV1a&a0Q}MXKDc@d{LfoaiZ}&;8yNsfwP@Jas=8y4Ed$^9;6I;a(e;p=IezPr zfy)WH`7lPWhyVbA0xX^3um}gk-^xXBW~C?jdLwbEacROEuI(g{{^v6HvNyZ3O!*0* z)5iYQU8WI)%+MZAaj1Zv5^^9r8ol;rw=n@2fb;E_tI8>I@D_`SlV)-`LA8!{%^7UKh@b8=x8P+{b1lAK!E@V6Z_Z*KUkc90XTU!*Lu3n(K45^ zas+Ehh5^KM5iVJ6TVMd+(j^v)>26as-i9zJ1rtFJL*m%}{WLM(-nBm}+> zM9~L5OhB&`vIr5ff4+YU+H}26|NDJkh@X3^@q6#@^gfqF4JjiOAqFf+1O-6_6jcOJ z^i%kIb(eju#C={){S(is`5Zse=r`=2vBm5DC;M?5_NV>^0RjXISI$6UW+?pZ?G*Lz z4>Kv8l$a180P_Y2004?jJsFZQTDnA23vGB^au~G#KTo{d{B6wo&B`87BEkp6IFi-? zkdYY!|`auiqwgkaiIB`F9>5Go4-;+pzwS03d#(I=zb~TVKX)z0{vTJRrX!MofdF7Yl1MOwNH7@!1bvU>>&=n!*@FQj zmVGbc?tM?3_kG{Nho#x}|7Wg|00aOqU;qFh00vcCE#&Y263h_-1T<7YCJVfm{?bdN zHc;X4Z-tB&;x(ULR5$u2+-I1Jj~7k$WL@3&`ToS)e&^^3k-}!$U(0Cw%@0n;Dcj$O zi6vw4#e}|H!RN4zq7Pgt5WhFuB?ngA;59L$9qPB@5Gk6OulkV>dkzt?0#rS0NKsQW zum8fe1DHVd6sXrcRWhgV?F>r?A&e&bP5UDXM{P~iy;z2`oI#!pPH$&LVXh+-hxx4? z@%reDVgHiGy28K;2LsGg94+d;00@6YfS}|D=QHXIy)}zLSg1;`a!Mp`vd4m;x|x$F zyj$jx8SBztU9*vwM%$+^g1LhdNiFs4EvAmI!u{M;9+7neQ=DB$L5EL@ZjEx0qkz?< z!jGJ3I}lkJ|0Gg-E%Gh=M;bJJQuS}1nRMXGEQNM5H)^4x1-lXBXP!oE`a$Kl1gy1k zX2SXmv--_+rxLTuc#NzM$TRv#FNG7$%uCYmp|^&*(JGtNjtn}(;6ZeznT)`Va#?@S zwxPQOq}29D6Tov^hJWABQj7+>MqRH7`&V+BiQ^oIq|m4ctd(?Kox^C z_qqAiwp{YQy!gM)S>rJ#ZQagT4f-n3P|?s?{)rgS*or})?2=9xCHq*y4ey;WFr1#^ z5{aeGT5Od^z}6Cm&5tiq*jWCkj?qm3RINyT|uo6_Wl7#~bG^KPmE#`Hdgr3)8+ga&lRExIZbU1!Azq2H0c) z>nEMu~$Ototl+cOOY_D<(F@8XJ}JnAE+0mI`EppyJ-~(M*wF+T{L{+2#lLB9kc{ z{mV`hx?N5}rmO#mf97I{v#mOz54ND1v(d+o4vj5WF1FE0E?Mk9C*XZI@H~P0EBPrb z3v0Kx6GUvBaQ^oYuw3VLBNe`BCXxje_b_4nGF%yCd@@53U#n>McA`7KR0AJwj&3>! zhuO857^6QX1rw_q#knss0zOeX;rt;VJCxWWx-`?y`0)%r zGvNm%)P!)(4dt$n#BrnmzT%0!`3ZD;!1wIN9(x(73r~|R$aX%9RUo{JU2UnF&Nt?} zE6K`|d5=NG`XFe7-OPnifFqcd0tfyZer_93$o&)0U%s-$!$AFxM*HxF2ET@_mWiK9 zP{;i0{Ufu7!ui&0zlUyNLdPD6_cqn2HS+8Tj@cohci`AGlOL3-Jk^OMYOVem^S=;k z#XDQK)Ar=_fV|OHRBj_CaVb-5Kl(auyNkv;wi8I`^LVcCxb~rO)nX)43K{3X^W(91 z;qjD%Ue|R}Ax|;6bgvTS%1=RDZ6;#up83WP2V)}J$U%6e%)yc8awHHiMybK|cOZlN zq~UNWti7eO$G3gZip)r2yPJH^Locn5ku@7QX*sO2W2UF1H&64`KB%Z?Y(m5Jar1cx zV)%Rs3VNUSA{dSnwIdpu+vEsklmcUo*!Zf4q~AaAmS-o6&@a2?`Y36DBu~4DPwsu4MgBSFxD6u!{mg^G2jsvXA?>&2a9=3twgtQbje_kM)!H zN-}d2W>TB<$x0Lc2<~uoc#rdIhrm}Y)mCe$^}?H(2CH^(ooqJn%S`iYbSTPW3jR|V zCxi;5n?nC`8-r%?BN5Ej*>&?!G4=n|WaoQs#83O1)^V-1g$?tWx8|@QEX)KV)vxe< zb4oGQqcOttT1k7Ee8wN^9&yH!WjQkE+2Uzq2be%KLn+MkjVy7k{BMWGb^Ng4Y2T(? zw13G}r%}LvoR2g^G^9}x*V-W6kyq|eQuxboZM5#5(8C1D(Ird%Y*6!)sptQ35eXf1 zZV^H;JA`r(EmGMc=33O?bGKyl?f1`a+kZTZiVm!OVu%n;ODOc^ z+?HJ&l}t!B>DuGU|BkE~*)Y-`e)pkk#&nt^V^sn-y5{tdgwDTl{(+dYiwU%?c$`*p zVl<}{9w9~sG_O=P*u8eZ@0mwYYQM+$kr&#rr-s>47%kDGX6$(|-U%Bx%dA@S21^FVIwF(HUg@>Jk;!#Cf=#yU_> zd?-Es1l8rM5brXtPFwS8;-wMbl8YkX_Ba0at4{B~3VL&ruT}lTGfnGD&+4E9?#J-0 zN#A&y8e9|)rrf%cAnvG1j;mPX^N7qvsqdb`tjTY*iT!mkEYGIz`Uj@&P?i2d4FxEN z3gi)DEkF0kg8WZ7=LFJBWW6}YhY(!-BdkTIoPp|pIX{qvrfR~PoVec%{ez8jtdp(d zP?pO_$@w8gAKoIFqxy ztwxxi_InvjQC9Tl^Ks^NXixHe5z%tW*Av#0a*zjYz!ma-jsw;&&C~tNLm_x-Ue8)h zM=k#bmx+o{wNZBy@Yn=skE%#1lQ4SW2P@rbnw;qTTRu~6WiE3n#;Y7TR8uY=B({)IgD!rzUwJm^y^zVTzSLKw=H-n zK5&TLO`t`6khFA@W2qc$-7u6g8NZNS>j8_S8YToXst_G1V#{W;)smh;S4PT9P`)Rh zuSZCmQ4?M+4V3kD7GDZ}aoVGlyOfl%3%GVM$QbNnL~zHq&u0Y%-!B%^RQ{7zG5T13 z1DA!>(hv7`Q5G@=YOT6S8#eszZULe|x(ry}T+AEG^!ia_8&ste5*@>w8x@oJE=El2 z{I2Or6tLENXUqP3kDT=x2ZY>&(|2m|cNSmBNA-&TwnLTtM4Wt9Ym>~T zgv_3Z569A>Dm{-QKWk@c|78$NFmWC2SFe1zu4h|Yc1;Ua?e7DFo5w&5ukAGLSpi61 znnlM{3c<-RfPD8bxhH>vknhZ)HJ|MVuyb$}s&a2lFqdGtbQzPuDFi@5QNm9V20Bx+ zq+meS60xB~KUr_O(omLcPU;bZZ2|2XYvr)XGs)17GQo05+4i{D3B^XFaG5vyX_W@^ z_1s0QiJLOay$RpNOTHh*&H6Au9A-13Xr$rGA!T@WR9EkR#U1_sw5GwKB4j3rBb^Lw z85Lmn?`9x67?SxUtnNblzJ7%{m~_J2G4M3Li`XBD>ahr$b{TqZcdC|eB`s6&@6!)A zG(RxC1$JjaQW(gvojJ0EQ$BmPrs7>XuJ_M-{p+BFe%UNj%qpWgB7=3ODp?t{7t3uZ z(TEh=mt|8Vi!x&upr!fxhpaZti07$r+pF#*7S|pc{DP%+Jny^fEojgl zhbL!MF|q>mvu1sg?)`t-Uv|L$owsU}d1KqbJYRZ*+;423a{p5BW<~nBVr2YJybPi) z#FvZr3tzlnK_sX^qd&0s>@`@LBKDlnyHEX?Pw#Citr9ivi(QN_6(h7HTc_AUe4v!Y?*3P zig-zQ0t*&`s_o!G=i!D7CteQNkorPoaw>rBnV>Gg5ZS92GK@brMMEA-?U_7hqRtQ8|Cj zn20%JyFYKAT7wv2fY&`F_{nh!aBU!%ZhJy+6}E)mHdLXFIv2U<<{_>;Vy(0V%2|%* zHi&tT38~gUL4M|%xaja%`;(s5M#FNe&EC|CGlt>wD}Pc9^WwT0>d7d6sxCrI{qrsd z@3r-QU<)3I3G}=mxTWWv?Hb4>G+rd3b}9oj@(pa4Qz@OC!i4whr?hJYUa#LvX;=+*j&stpWIcSQiQ&;GbO9 zmpeoAuzK{VmiXBjY7bpZZPPk}$~|dpPM3JJ9gcLplkI0_^lrb9@+(-+>fj-K&W2-? z%141-v9F$zCtaFqZ4-`28Y|_Bvoz=*|Gemq(fp{dcj-U5A3BSLi zR369;>@(3+nF>bUOY^F{@#QBw<*weD zgKR@cpw+t8I%ExqbQ|5y_451I4-UzRx>;||uRs0XNLsWh<5IsSvNQ{ejhT4;6UC}E zW{c4#c5UQN@i^0et+2KN5|v_VKz15NSInoZ#+A_d&tgmg7q*R4v)aZsq%x=gBf8pg9qc`2!`(NiiTGpKvmyPD1SDWtKfrCWB9%vq9hB4l#u1QkTltp5By{4eh oIMqp;d0|G_SSD9 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 @@ -581,6 +582,16 @@ extern unzFile ZEXPORT unzOpen64(const void *path) - return unzOpenInternal(path, NULL, 1); + return unzOpenInternal(path, NULL); } +extern unzFile ZEXPORT unzOpenBuffer(const void* buffer, uLong size) @@ -44,7 +44,7 @@ index ce02265..bb72a66 100644 + zlib_filefunc64_32_def memory_file; + sprintf(path, "%llx %lx", (unsigned long long)buffer, (unsigned long)size); + fill_memory_filefunc(&memory_file, &FileMemory); -+ return unzOpenInternal(path, &memory_file, 0); ++ return unzOpenInternal(path, &memory_file); +} + extern int ZEXPORT unzClose(unzFile file) diff --git a/mingw-w64-zlib/PKGBUILD b/mingw-w64-zlib/PKGBUILD index 284de3aef1..3922839edb 100644 --- a/mingw-w64-zlib/PKGBUILD +++ b/mingw-w64-zlib/PKGBUILD @@ -5,7 +5,7 @@ _realname=zlib pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.2.8 -pkgrel=7 +pkgrel=8 pkgdesc="Compression library implementing the deflate compression method found in gzip and PKZIP (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -32,7 +32,7 @@ md5sums=('44d667c142d7cda120332623eab69f40' 'bb6c8eeb7f03978982406bca35f62ca3' '94f53bd0a4a4068bcedc195004e70316' '076b81ef097c6916cb81daa3ba8c3afa' - 'b6eaeb043f07dd3f50f355bb7f5dca3f' + '97b34cd7acb242436d567d1ba109686d' '68587b18a860e32753554a89450698b9' '10dcd6aeb87d3e4da236f217de953d52' 'bc039de4876256ff2e9e4162d6b42b09') From 49f0bb29cc876b1bba5b5ced47a26a178a44f040 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Tue, 30 Jun 2015 12:26:48 -0300 Subject: [PATCH 1243/2060] drmingw: Update to 0.7.4. --- mingw-w64-drmingw/PKGBUILD | 12 ++++++------ mingw-w64-drmingw/install-files.patch | 25 ++++++++++++++----------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/mingw-w64-drmingw/PKGBUILD b/mingw-w64-drmingw/PKGBUILD index 6f42d6e7ec..0ce7b1e351 100644 --- a/mingw-w64-drmingw/PKGBUILD +++ b/mingw-w64-drmingw/PKGBUILD @@ -3,11 +3,11 @@ _realname=drmingw pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) -pkgver=0.7.3 -pkgrel=4 +pkgver=0.7.4 +pkgrel=1 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') -license=(LGPL2) +license=(LGPL2.1) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=(${MINGW_PACKAGE_PREFIX}-discount ${MINGW_PACKAGE_PREFIX}-cmake @@ -17,13 +17,13 @@ source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/arc import-libs.patch install-files.patch) options=(!strip staticlibs) -md5sums=('2a606a5dfb85e6092ae82acbd4612a7c' +md5sums=('17a3df69abe4c2c46fc6aaabfb209e58' '95cf2d64efb65e035b96f58e9272798e' - '79edeee894e906bc3cce20f7f170de0c') + '5e8f6c0cf54d73b0232ae759ed950008') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i ${srcdir}/import-libs.patch + #patch -p1 -i ${srcdir}/import-libs.patch patch -p1 -i ${srcdir}/install-files.patch } diff --git a/mingw-w64-drmingw/install-files.patch b/mingw-w64-drmingw/install-files.patch index f3341dfb77..f42533b847 100644 --- a/mingw-w64-drmingw/install-files.patch +++ b/mingw-w64-drmingw/install-files.patch @@ -1,6 +1,7 @@ ---- drmingw/CMakeLists.txt.orig 2015-06-21 14:26:32.215200000 +0300 -+++ drmingw/CMakeLists.txt 2015-06-21 14:27:19.342800000 +0300 -@@ -120,7 +120,7 @@ +diff -aurN 000/CMakeLists.txt 001/CMakeLists.txt +--- 000/CMakeLists.txt 2015-06-26 13:00:48.000000000 -0300 ++++ 001/CMakeLists.txt 2015-06-30 12:07:28.121666600 -0300 +@@ -133,7 +133,7 @@ FILES LICENSE.txt README.md @@ -9,18 +10,20 @@ ) # cpack mistakenly detects Mingw-w64 as win32 ---- drmingw/sample/CMakeLists.txt.orig 2015-06-21 14:27:55.165000000 +0300 -+++ drmingw/sample/CMakeLists.txt 2015-06-21 14:28:26.833000000 +0300 +diff -aurN 000/sample/CMakeLists.txt 001/sample/CMakeLists.txt +--- 000/sample/CMakeLists.txt 2015-06-26 13:00:48.000000000 -0300 ++++ 001/sample/CMakeLists.txt 2015-06-30 12:07:28.121666600 -0300 @@ -6,5 +6,5 @@ - exchndl2.cpp - ) + add_dependencies (sample exchndl_implib) + target_link_libraries (sample ${EXCHNDL_IMPLIB}) --install (FILES sample.cpp exchndl2.cpp DESTINATION sample) +-install (FILES sample.cpp DESTINATION sample) -install (FILES sample.mak DESTINATION sample RENAME Makefile) -+install (FILES sample.cpp exchndl2.cpp DESTINATION share/drmingw/sample) ++install (FILES sample.cpp DESTINATION share/drmingw/sample) +install (FILES sample.mak DESTINATION share/drmingw/sample RENAME Makefile) ---- drmingw/thirdparty/dwarf/CMakeLists.txt.orig 2015-06-21 14:33:35.812200000 +0300 -+++ drmingw/thirdparty/dwarf/CMakeLists.txt 2015-06-21 14:33:45.733800000 +0300 +diff -aurN 000/thirdparty/dwarf/CMakeLists.txt 001/thirdparty/dwarf/CMakeLists.txt +--- 000/thirdparty/dwarf/CMakeLists.txt 2015-06-26 13:00:48.000000000 -0300 ++++ 001/thirdparty/dwarf/CMakeLists.txt 2015-06-30 12:07:28.121666600 -0300 @@ -38,6 +38,6 @@ install ( From c6910c98ff67b1bf509fce0c1243f26ad1f73f58 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 1 Jul 2015 17:46:43 +0300 Subject: [PATCH 1244/2060] === Rebuild with GCC-5.1.0. Part II === --- mingw-w64-adwaita-icon-theme/PKGBUILD | 10 ++-- mingw-w64-atk/PKGBUILD | 9 ++-- mingw-w64-cython/PKGBUILD | 34 ++++++------ mingw-w64-fontconfig/PKGBUILD | 4 +- mingw-w64-freetype/PKGBUILD | 2 +- mingw-w64-gdk-pixbuf2/PKGBUILD | 4 +- mingw-w64-gnome-common/PKGBUILD | 7 ++- mingw-w64-gobject-introspection/PKGBUILD | 43 ++++++++++----- mingw-w64-gtk2/PKGBUILD | 6 +-- mingw-w64-gtk3/PKGBUILD | 2 +- mingw-w64-harfbuzz/PKGBUILD | 2 +- mingw-w64-hicolor-icon-theme/PKGBUILD | 2 +- mingw-w64-json-glib/PKGBUILD | 8 +-- mingw-w64-libatomic_ops/PKGBUILD | 7 ++- mingw-w64-libcroco/PKGBUILD | 24 ++++----- mingw-w64-libepoxy/PKGBUILD | 9 ++-- mingw-w64-libmariadbclient/PKGBUILD | 23 ++++---- mingw-w64-libsigc++/PKGBUILD | 7 +-- mingw-w64-libssh/PKGBUILD | 13 ++--- mingw-w64-make/PKGBUILD | 13 +++-- mingw-w64-ninja/PKGBUILD | 7 ++- mingw-w64-openjpeg/PKGBUILD | 36 ++++++------- mingw-w64-openjpeg2/PKGBUILD | 53 +++++++------------ mingw-w64-pcre/PKGBUILD | 4 +- mingw-w64-pixman/PKGBUILD | 4 +- mingw-w64-postgresql/PKGBUILD | 2 +- mingw-w64-python-beaker/PKGBUILD | 6 +-- mingw-w64-python-csssselect/PKGBUILD | 3 +- mingw-w64-python-docutils/PKGBUILD | 32 +++++------ mingw-w64-python-ipython/PKGBUILD | 30 +++++------ mingw-w64-python-lxml/PKGBUILD | 2 +- mingw-w64-python-mako/PKGBUILD | 26 ++++----- mingw-w64-python-markupsafe/PKGBUILD | 24 +++------ mingw-w64-python-nose/PKGBUILD | 26 ++++----- .../0004-dont-execute-msvc.patch | 4 +- mingw-w64-python-setuptools/PKGBUILD | 9 ++-- mingw-w64-qtbinpatcher/PKGBUILD | 2 +- mingw-w64-shared-mime-info/PKGBUILD | 2 +- mingw-w64-vala/PKGBUILD | 10 ++-- mingw-w64-wineditline/PKGBUILD | 8 +-- 40 files changed, 243 insertions(+), 276 deletions(-) diff --git a/mingw-w64-adwaita-icon-theme/PKGBUILD b/mingw-w64-adwaita-icon-theme/PKGBUILD index f74c8c979d..e28f14f196 100644 --- a/mingw-w64-adwaita-icon-theme/PKGBUILD +++ b/mingw-w64-adwaita-icon-theme/PKGBUILD @@ -2,21 +2,19 @@ _realname=adwaita-icon-theme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 +pkgver=3.16.2 pkgrel=1 pkgdesc="GNOME icon theme (mingw-w64)" arch=('any') url="http://www.gnome.org" license=("GPL") -makedepends=("intltool") +makedepends=("intltool" "icon-naming-utils") depends=("${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" - "${MINGW_PACKAGE_PREFIX}-icon-naming-utils" "${MINGW_PACKAGE_PREFIX}-librsvg") -groups=("${MINGW_PACKAGE_PREFIX}-gnome") options=(!libtool strip staticlibs) install=theme-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz) -sha256sums=('a3c8ad3b099ca571b423811a20ee9a7a43498cfa04d299719ee43cd7af6f6eb1') +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) +sha256sums=('9c6662ad739cdb32d0ffe638f54e5033c5ea6f53e7f8c2b412ec64b8e7e1b4c2') prepare() { cd ${srcdir}/${_realname}-${pkgver} diff --git a/mingw-w64-atk/PKGBUILD b/mingw-w64-atk/PKGBUILD index 3029545175..1f610a5946 100644 --- a/mingw-w64-atk/PKGBUILD +++ b/mingw-w64-atk/PKGBUILD @@ -4,7 +4,7 @@ _realname=atk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.16.0 -pkgrel=1 +pkgrel=2 pkgdesc="A library providing a set of interfaces for accessibility (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -13,10 +13,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-gnome-common" - "${MINGW_PACKAGE_PREFIX}-glib2>=2.41.0") + "${MINGW_PACKAGE_PREFIX}-gnome-common" + "${MINGW_PACKAGE_PREFIX}-glib2>=2.41.0") options=('strip' 'staticlibs') -source=("http://ftp.gnome.org/pub/gnome/sources/atk/${pkgver%.*}/${_realname}-$pkgver.tar.xz") +source=("http://ftp.gnome.org/pub/gnome/sources/atk/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") md5sums=('c7c5002bd6e58b4723a165f1bf312116') prepare() { @@ -35,6 +35,7 @@ build() { --enable-shared \ --enable-introspection \ --disable-glibtest + make } diff --git a/mingw-w64-cython/PKGBUILD b/mingw-w64-cython/PKGBUILD index a09c565dd6..7cb2b85347 100644 --- a/mingw-w64-cython/PKGBUILD +++ b/mingw-w64-cython/PKGBUILD @@ -3,7 +3,7 @@ _realname=cython pkgname=("${MINGW_PACKAGE_PREFIX}-cython" "${MINGW_PACKAGE_PREFIX}-cython2") -pkgver=0.22 +pkgver=0.22.1 pkgrel=1 pkgdesc="C-Extensions for Python (mingw-w64)" arch=('any') @@ -15,17 +15,17 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-gcc" ) -source=("http://cython.org/release/Cython-$pkgver.tar.gz") -md5sums=('1ae25add4ef7b63ee9b4af697300d6b6') +source=("http://cython.org/release/Cython-${pkgver}.tar.gz") +md5sums=('b920f3c81ae767477a342807bf5e68e8') prepare() { - cp -a $_realname-$pkgver $_realname-py2-$pkgver-${CARCH} - mv $_realname-$pkgver $_realname-$pkgver-${CARCH} + cp -a ${_realname}-${pkgver} ${_realname}-py2-${pkgver}-${CARCH} + mv ${_realname}-${pkgver} ${_realname}-${pkgver}-${CARCH} } package_cython() { depends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools") - cd $_realname-$pkgver-${CARCH} + cd ${_realname}-${pkgver}-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ DISTUTILS_DEBUG=1 \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ @@ -38,7 +38,7 @@ package_cython() { package_cython2() { depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools") - cd $_realname-py2-$pkgver-${CARCH} + cd ${_realname}-py2-${pkgver}-${CARCH} DISTUTILS_DEBUG=1 \ MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ @@ -48,18 +48,18 @@ package_cython2() { # they look in PATH. sed -i 's|#!.*|#!/usr/bin/env python2|' ${pkgdir}/${MINGW_PREFIX}/bin/cy{gdb,thon}-script.py - mv $pkgdir/${MINGW_PREFIX}/bin/cygdb{,2}.exe - mv $pkgdir/${MINGW_PREFIX}/bin/cython{,2}.exe - mv $pkgdir/${MINGW_PREFIX}/bin/cythonize{,2}.exe - if [ -f $pkgdir/${MINGW_PREFIX}/bin/cygdb.exe.manifest ]; then - mv $pkgdir/${MINGW_PREFIX}/bin/cygdb{,2}.exe.manifest - mv $pkgdir/${MINGW_PREFIX}/bin/cython{,2}.exe.manifest - mv $pkgdir/${MINGW_PREFIX}/bin/cythonize{,2}.exe.manifest + mv ${pkgdir}${MINGW_PREFIX}/bin/cygdb{,2}.exe + mv ${pkgdir}${MINGW_PREFIX}/bin/cython{,2}.exe + mv ${pkgdir}${MINGW_PREFIX}/bin/cythonize{,2}.exe + if [ -f ${pkgdir}${MINGW_PREFIX}/bin/cygdb.exe.manifest ]; then + mv ${pkgdir}${MINGW_PREFIX}/bin/cygdb{,2}.exe.manifest + mv ${pkgdir}${MINGW_PREFIX}/bin/cython{,2}.exe.manifest + mv ${pkgdir}${MINGW_PREFIX}/bin/cythonize{,2}.exe.manifest fi - mv $pkgdir/${MINGW_PREFIX}/bin/cygdb{,2}-script.py - mv $pkgdir/${MINGW_PREFIX}/bin/cython{,2}-script.py - mv $pkgdir/${MINGW_PREFIX}/bin/cythonize{,2}-script.py + mv ${pkgdir}${MINGW_PREFIX}/bin/cygdb{,2}-script.py + mv ${pkgdir}${MINGW_PREFIX}/bin/cython{,2}-script.py + mv ${pkgdir}${MINGW_PREFIX}/bin/cythonize{,2}-script.py } package_mingw-w64-i686-cython() { diff --git a/mingw-w64-fontconfig/PKGBUILD b/mingw-w64-fontconfig/PKGBUILD index 43495f1c5e..e45e0ed69e 100644 --- a/mingw-w64-fontconfig/PKGBUILD +++ b/mingw-w64-fontconfig/PKGBUILD @@ -4,7 +4,7 @@ _realname=fontconfig pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.11.1 -pkgrel=3 +pkgrel=4 pkgdesc="A library for configuring and customizing font access (mingw-w64)" arch=('any') url="http://www.fontconfig.org/release" @@ -31,7 +31,7 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-freetype/PKGBUILD b/mingw-w64-freetype/PKGBUILD index 6eec346aea..dbc104da65 100644 --- a/mingw-w64-freetype/PKGBUILD +++ b/mingw-w64-freetype/PKGBUILD @@ -4,7 +4,7 @@ _realname=freetype pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.6 -pkgrel=1 +pkgrel=2 pkgdesc="TrueType font rendering library (mingw-w64)" arch=('any') url="http://www.freetype.org/" diff --git a/mingw-w64-gdk-pixbuf2/PKGBUILD b/mingw-w64-gdk-pixbuf2/PKGBUILD index bbec4e57ff..659dc7c323 100644 --- a/mingw-w64-gdk-pixbuf2/PKGBUILD +++ b/mingw-w64-gdk-pixbuf2/PKGBUILD @@ -4,7 +4,7 @@ _realname=gdk-pixbuf2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.31.4 -pkgrel=1 +pkgrel=2 pkgdesc="An image loading library (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -20,7 +20,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libtiff") options=('strip' 'staticlibs' 'emptydirs') install=${_realname}-${CARCH}.install -source=("http://download.gnome.org/sources/gdk-pixbuf/${pkgver%.*}/gdk-pixbuf-$pkgver.tar.xz" +source=("http://download.gnome.org/sources/gdk-pixbuf/${pkgver%.*}/gdk-pixbuf-${pkgver}.tar.xz" 0001-Use-a-regex-to-properly-export-the-symbols.patch 0002-gdk-pixbuf-introspection.patch) sha256sums=('e5d9977493f8188baa6f432c5015c9937f0f67d29e0b6bccd3fae23126a47a15' diff --git a/mingw-w64-gnome-common/PKGBUILD b/mingw-w64-gnome-common/PKGBUILD index 1e2cdfa230..3b3704c836 100644 --- a/mingw-w64-gnome-common/PKGBUILD +++ b/mingw-w64-gnome-common/PKGBUILD @@ -3,13 +3,12 @@ _realname=gnome-common pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.14.0 -pkgrel=1 +pkgrel=2 pkgdesc="Common development macros for GNOME (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}-gnome") license=('GPL') url="http://www.gnome.org" -source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz Werror-format-remove.patch) sha256sums=('4c00242f781bb441289f49dd80ed1d895d84de0c94bfc2c6818a104c9e39262c' 'c88704be75556c08a62645588ec70050f58def421f849c0519213c8709e36906') @@ -30,5 +29,5 @@ build() { package() { cd "${srcdir}/${_realname}-${pkgver}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index dd14e975d5..c8e551ffc4 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -1,20 +1,18 @@ # Maintainer: Alexey Pavlov _realname=gobject-introspection -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-runtime") pkgver=1.44.0 -pkgrel=3 -pkgdesc="GObject Introspection can scan C header and source files in order to generate introspection typelib files (mingw-w64)" +pkgrel=4 arch=('any') url="https://live.gnome.org/GObjectIntrospection" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-libffi" - "${MINGW_PACKAGE_PREFIX}-python2") + "${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python2-mako") options=('strip' 'staticlibs') source=(http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${pkgver%.*}/${_realname}-${pkgver}.tar.xz @@ -50,7 +48,7 @@ prepare() { build() { export PYTHON=${MINGW_PREFIX}/bin/python2 - + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ @@ -62,7 +60,28 @@ build() { make } -package() { +package_gobject-introspection() { + pkgdesc="Introspection system for GObject-based libraries (mingw-w64)" + depends=("${MINGW_PACKAGE_PREFIX}-gobject-introspection-runtime=${pkgver}" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python2-mako") + options=('!emptydirs') + cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install + make -j1 DESTDIR="${pkgdir}" uninstall-libLTLIBRARIES uninstall-typelibsDATA } + +package_gobject-introspection-runtime() { + pkgdesc="Introspection system for GObject-based libraries - runtime files (mingw-w64)" + depends=("${MINGW_PACKAGE_PREFIX}-glib2") + + cd "${srcdir}/build-${MINGW_CHOST}" + make -j1 DESTDIR="${pkgdir}" install-libLTLIBRARIES install-typelibsDATA +} + +# Wrappers +package_mingw-w64-i686-gobject-introspection() { package_gobject-introspection; } +package_mingw-w64-i686-gobject-introspection-runtime() { package_gobject-introspection-runtime; } +package_mingw-w64-x86_64-gobject-introspection() { package_gobject-introspection; } +package_mingw-w64-x86_64-gobject-introspection-runtime() { package_gobject-introspection-runtime; } diff --git a/mingw-w64-gtk2/PKGBUILD b/mingw-w64-gtk2/PKGBUILD index fc82460162..a185dfa586 100644 --- a/mingw-w64-gtk2/PKGBUILD +++ b/mingw-w64-gtk2/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtk2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.24.27 +pkgver=2.24.28 pkgrel=1 pkgdesc="GTK+ is a multi-platform toolkit (v2) (mingw-w64)" arch=('any') @@ -25,7 +25,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-glib2>=2.28.0" "${MINGW_PACKAGE_PREFIX}-pango>=1.20" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") -optdepends=("${MINGW_PACKAGE_PREFIX}-gnome-icon-theme: Default icon theme") +#optdepends=("${MINGW_PACKAGE_PREFIX}-gnome-icon-theme: Default icon theme") install=gtk2-${CARCH}.install options=(!libtool strip staticlibs) source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" @@ -40,7 +40,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0011-gir-for-gdkwin32.mingw.patch 0012-embed-manifest.all.patch) -md5sums=('b1e890e15602c5bcb40d85b13fe046fd' +md5sums=('bfacf87b2ea67e4e5c7866a9003e6526' '5105b21ea13dbfbef8975138b4355e7a' '4f4a6df623209e301b77a0e486f8c43d' '6a40366ed05024e1e93dbb9788c6747e' diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index bcee4e61df..5b73021bdd 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.4 -pkgrel=1 +pkgrel=2 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 4011802b6f..f2cef71a28 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -4,7 +4,7 @@ _realname=harfbuzz pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.41 -pkgrel=1 +pkgrel=2 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/HarfBuzz" diff --git a/mingw-w64-hicolor-icon-theme/PKGBUILD b/mingw-w64-hicolor-icon-theme/PKGBUILD index 5eec7389f1..6a31fdd0da 100644 --- a/mingw-w64-hicolor-icon-theme/PKGBUILD +++ b/mingw-w64-hicolor-icon-theme/PKGBUILD @@ -3,7 +3,7 @@ _realname=hicolor-icon-theme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.15 -pkgrel=1 +pkgrel=2 pkgdesc="Freedesktop.org Hicolor icon theme (mingw-w64)" arch=('any') url="http://icon-theme.freedesktop.org/wiki/HicolorTheme" diff --git a/mingw-w64-json-glib/PKGBUILD b/mingw-w64-json-glib/PKGBUILD index debad43ad3..662383d6e4 100644 --- a/mingw-w64-json-glib/PKGBUILD +++ b/mingw-w64-json-glib/PKGBUILD @@ -3,7 +3,7 @@ _realname=json-glib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.4 -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="JSON-GLib implements a full suite of JSON-related tools using GLib and GObject (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2") @@ -13,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs') license=('LGPL2.1+') url="https://wiki.gnome.org/Projects/JsonGlib" -source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz" +source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" 0001-Give-CC-to-gir-scanner.patch) sha256sums=('80f3593cb6bd13f1465828e46a9f740e2e9bd3cd2257889442b3e62bd6de05cd' 'd3d789fcd1466dde7b42ffe200f699f508bdb477fbabac8c7e0d36703f17a747') @@ -39,7 +39,7 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libatomic_ops/PKGBUILD b/mingw-w64-libatomic_ops/PKGBUILD index 39c4fccfb7..af1671aa3f 100644 --- a/mingw-w64-libatomic_ops/PKGBUILD +++ b/mingw-w64-libatomic_ops/PKGBUILD @@ -1,11 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libatomic_ops - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=7.4.2 -pkgrel=1 -pkgdesc="Provides semi-portable access to hardware provided atomic memory operations" +pkgrel=2 +pkgdesc="Provides semi-portable access to hardware provided atomic memory operations (mingw-w64)" arch=('any') url="https://github.com/ivmai/libatomic_ops" license=('GPL2' 'MIT') @@ -39,5 +38,5 @@ check() { package() { cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR="${pkgdir}" install - install -D -m644 ${srcdir}/${_realname}-${_realname}-${pkgver//./_}/doc/LICENSING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/LICENSE" + install -D -m644 ${srcdir}/${_realname}-${_realname}-${pkgver//./_}/doc/LICENSING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-libcroco/PKGBUILD b/mingw-w64-libcroco/PKGBUILD index 60e70ff16e..e4a5ebe6bb 100644 --- a/mingw-w64-libcroco/PKGBUILD +++ b/mingw-w64-libcroco/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libcroco - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.6.8 -pkgrel=2 +pkgrel=3 pkgdesc="A CSS parsing library (mingw-w64)" arch=('any') url="http://www.gnome.org" @@ -12,21 +11,20 @@ license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libxml2") options=('staticlibs' 'strip') -source=("http://ftp.gnome.org/pub/gnome/sources/libcroco/${pkgver%.*}/${_realname}-$pkgver.tar.xz") +source=("http://ftp.gnome.org/pub/gnome/sources/libcroco/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") sha256sums=('ea6e1b858c55219cefd7109756bff5bc1a774ba7a55f7d3ccd734d6b871b8570') build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-$pkgver/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} - make + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-$pkgver/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} + make } package() { - mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libepoxy/PKGBUILD b/mingw-w64-libepoxy/PKGBUILD index 3eeb97cb9f..44f0571e64 100644 --- a/mingw-w64-libepoxy/PKGBUILD +++ b/mingw-w64-libepoxy/PKGBUILD @@ -3,19 +3,18 @@ _realname=libepoxy pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2 -pkgrel=1 +pkgrel=2 pkgdesc="A library for handling OpenGL function pointer management for you. (mingw-w64)" arch=('any') url="https://github.com/anholt/libepoxy" license=("MIT") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - ) +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python3" "util-macros") options=('strip' 'staticlibs') -source=(https://github.com/anholt/${_realname}/archive/v${pkgver}.tar.gz +source=(${_realname}-${pkgver}.tar.gz::https://github.com/anholt/${_realname}/archive/v${pkgver}.tar.gz 0001-135f7bf1043ca2a48d88d920fd46f3fe0097f359.all.patch 0002-e9ce388f746f6c0557b863a38648ae1646658951.all.patch) sha256sums=('42c328440f60a5795835c5ec4bdfc1329e75bba16b6e22b3a87ed17e9679e8f6' @@ -47,5 +46,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libmariadbclient/PKGBUILD b/mingw-w64-libmariadbclient/PKGBUILD index 568d9c46fc..0280fdf842 100644 --- a/mingw-w64-libmariadbclient/PKGBUILD +++ b/mingw-w64-libmariadbclient/PKGBUILD @@ -3,7 +3,7 @@ _realname=libmariadbclient pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.0 -pkgrel=1 +pkgrel=2 pkgdesc="MariaDB client libraries (mingw-w64)" arch=('any') url="http://mariadb.org" @@ -25,7 +25,7 @@ sha256sums=('568050b89463af7610d458669fd9eee06dcc9405689aca8a526ac8c013b59167' 'f0fcf51886f51bee17ca518ee6b0f837f9320616333fe5c016afce2d00185b82') prepare() { - cd ${srcdir}/mariadb-connector-c-$pkgver-src + cd ${srcdir}/mariadb-connector-c-${pkgver}-src patch -p0 -i ../fix-libnames-mingw.patch patch -p0 -i ../use_fopen_for_xp_compatibility.patch patch -p0 -i ../fix-size-t-defined.patch @@ -33,29 +33,26 @@ prepare() { } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - mkdir -p ${srcdir}/${MINGW_CHOST} - cd ${srcdir}/${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=RELEASE \ -DWITH_EXTERNAL_ZLIB=ON \ -DWITH_SQLITE=OFF \ -DWITH_OPENSSL=ON \ -DWITH_MYSQLCOMPAT=OFF \ - ../mariadb-connector-c-$pkgver-src + ../mariadb-connector-c-${pkgver}-src make } package() { - cd "${srcdir}/${MINGW_CHOST}" - make install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install ln -s "${pkgdir}${MINGW_PREFIX}"/include/mariadb "${pkgdir}${MINGW_PREFIX}"/include/mysql diff --git a/mingw-w64-libsigc++/PKGBUILD b/mingw-w64-libsigc++/PKGBUILD index bb692c1786..b0ee84782b 100644 --- a/mingw-w64-libsigc++/PKGBUILD +++ b/mingw-w64-libsigc++/PKGBUILD @@ -3,7 +3,7 @@ _realname=libsigc++ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.4.1 -pkgrel=1 +pkgrel=2 pkgdesc="Libsigc++ implements a full callback system for use in widget libraries - V2 (mingw-w64)" arch=('any') url="http://libsigc.sourceforge.net" @@ -15,9 +15,10 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/libsigc++/${pkgver%.*}/libsigc++ sha256sums=('540443492a68e77e30db8d425f3c0b1299c825bf974d9bfc31ae7efafedc19ec') build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -30,7 +31,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libssh/PKGBUILD b/mingw-w64-libssh/PKGBUILD index 1e6fbee482..5582992a06 100644 --- a/mingw-w64-libssh/PKGBUILD +++ b/mingw-w64-libssh/PKGBUILD @@ -3,7 +3,7 @@ _realname=libssh pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.7.0 -pkgrel=1 +pkgrel=2 pkgdesc="Library for accessing ssh client services through C libraries (mingw-w64)" arch=('any') url="http://www.libssh.org/" @@ -39,9 +39,10 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DWITH_STATIC_LIB=ON \ ../${_realname}-${pkgver} @@ -51,11 +52,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install - - local PREFIX_WIN=$(cygpath -wm ${pkgdir}${MINGW_PREFIX}) - sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libssh.pc \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libssh_threads.pc \ - -i ${pkgdir}${MINGW_PREFIX}/lib/cmake/libssh/libssh-config.cmake + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-make/PKGBUILD b/mingw-w64-make/PKGBUILD index 73d654a1b8..2947daea9f 100644 --- a/mingw-w64-make/PKGBUILD +++ b/mingw-w64-make/PKGBUILD @@ -1,27 +1,26 @@ # Maintainer: Alexey Pavlov _realname=make - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -_ver_base=4.0 -pkgver=4.0.2289.432cb65 +_ver_base=4.1 +pkgver=4.1.2351.a80a8b8 pkgrel=1 -pkgdesc="GNU make utility to maintain groups of programs" +pkgdesc="GNU make utility to maintain groups of programs (mingw-w64)" arch=('any') url="http://www.gnu.org/software/make" license=('GPL3') groups=("${MINGW_PACKAGE_PREFIX}-toolchain") depends=() makedepends=('git' 'wget') -source=("$_realname"::'git://git.savannah.gnu.org/make.git' +source=("${_realname}"::'git://git.savannah.gnu.org/make.git' 'make-getopt.patch' 'make-linebuf-mingw.patch') md5sums=('SKIP' '5ce314a61bbb0b5b0f1f4613babc83d2' - 'a6c10267a37c4ff2d48c697ca0580c3c') + '7747139a747a9fe21b1099375ce72052') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } diff --git a/mingw-w64-ninja/PKGBUILD b/mingw-w64-ninja/PKGBUILD index 08770e8baf..6fba21e951 100644 --- a/mingw-w64-ninja/PKGBUILD +++ b/mingw-w64-ninja/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Martell Malone _realname=ninja - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.5.3 +pkgver=1.6.0 pkgrel=1 pkgdesc="Ninja is a small build system with a focus on speed (mingw-w64)" arch=('any') @@ -12,8 +11,8 @@ license=('Apache') depends=() options=('strip' 'staticlibs') makedepends=("python2") -source=("https://github.com/martine/ninja/archive/v${pkgver}.tar.gz") -md5sums=('67d11a83dceea0378908ce5e7477b6fb') +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/martine/ninja/archive/v${pkgver}.tar.gz") +md5sums=('254133059f2da79d8727f654d7198f43') prepare () { cd ${srcdir}/ninja-${pkgver} diff --git a/mingw-w64-openjpeg/PKGBUILD b/mingw-w64-openjpeg/PKGBUILD index 99e0e09d45..f5fb8685a3 100644 --- a/mingw-w64-openjpeg/PKGBUILD +++ b/mingw-w64-openjpeg/PKGBUILD @@ -3,7 +3,7 @@ _realname=openjpeg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.5.2 -pkgrel=2 +pkgrel=3 pkgdesc="An open source JPEG 2000 codec (mingw-w64)" arch=('any') url="http://www.openjpeg.org" @@ -30,7 +30,7 @@ md5sums=('c41772c30fb1c272358b3707233134a1' 'e68263246b76758903bfcc2c9de3601f') prepare() { - cd "$srcdir/openjpeg-$pkgver" + cd "${srcdir}/openjpeg-${pkgver}" # Fix CRLF line endings dos2unix libopenjpeg/opj_malloc.h #rm -r thirdparty @@ -44,13 +44,14 @@ prepare() { build() { msg "Build shared version..." - [[ -d $srcdir/build-shared-${MINGW_CHOST} ]] && rm -rf $srcdir/build-shared-${MINGW_CHOST} - mkdir $srcdir/build-shared-${MINGW_CHOST} - cd $srcdir/build-shared-${MINGW_CHOST} + [[ -d ${srcdir}/build-shared-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-shared-${MINGW_CHOST} + mkdir ${srcdir}/build-shared-${MINGW_CHOST} + cd ${srcdir}/build-shared-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TESTING:BOOL=ON \ -DCMAKE_SYSTEM_PREFIX_PATH=${MINGW_PREFIX} \ @@ -58,7 +59,7 @@ build() { -DBUILD_MJ2=ON \ -DBUILD_JPWL=ON \ -DBUILD_JPIP=ON \ - ../${_realname}-$pkgver + ../${_realname}-${pkgver} make msg "Build static version..." @@ -66,9 +67,10 @@ build() { mkdir $srcdir/build-static-${MINGW_CHOST} cd $srcdir/build-static-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TESTING:BOOL=OFF \ -DCMAKE_SYSTEM_PREFIX_PATH=${MINGW_PREFIX} \ @@ -77,24 +79,16 @@ build() { -DBUILD_JPWL=ON \ -DBUILD_JPIP=OFF \ -DBUILD_SHARED_LIBS=OFF \ - ../${_realname}-$pkgver + ../${_realname}-${pkgver} make } package() { - cd "$srcdir/build-static-${MINGW_CHOST}" - make install + cd "${srcdir}/build-static-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install - cd "$srcdir/build-shared-${MINGW_CHOST}" - make install - - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libopenjpeg.pc \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libopenjpeg1.pc + cd "${srcdir}/build-shared-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install # Fix conflict with openjpeg2 mv ${pkgdir}${MINGW_PREFIX}/bin/opj_dec_server{,1}.exe diff --git a/mingw-w64-openjpeg2/PKGBUILD b/mingw-w64-openjpeg2/PKGBUILD index 290e05836c..80271cb0d4 100644 --- a/mingw-w64-openjpeg2/PKGBUILD +++ b/mingw-w64-openjpeg2/PKGBUILD @@ -3,7 +3,7 @@ _realname=openjpeg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}2" pkgver=2.1.0 -pkgrel=2 +pkgrel=3 pkgdesc="An open source JPEG 2000 codec (mingw-w64)" arch=('any') url="http://www.openjpeg.org" @@ -30,7 +30,7 @@ md5sums=('f6419fcc233df84f9a81eb36633c6db6' '46704c1ed92e81dbe9e341872b4ef261') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-$pkgver" patch -p1 -i ${srcdir}/0001-fix-install-for-dlls.all.patch patch -p1 -i ${srcdir}/0003-versioned-dlls.mingw.patch patch -p1 -i ${srcdir}/0005-sock-jpip.all.patch @@ -38,66 +38,53 @@ prepare() { } build() { - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - msg "Build static version" - [[ -d $srcdir/build-static-${MINGW_CHOST} ]] && rm -rf $srcdir/build-static-${MINGW_CHOST} - mkdir $srcdir/build-static-${MINGW_CHOST} - cd $srcdir/build-static-${MINGW_CHOST} + [[ -d ${srcdir}/build-static-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-static-${MINGW_CHOST} + mkdir ${srcdir}/build-static-${MINGW_CHOST} + cd ${srcdir}/build-static-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=OFF \ -DBUILD_TESTING:BOOL=OFF \ - -DCMAKE_SYSTEM_PREFIX_PATH=${PREFIX_DEPS} \ + -DCMAKE_SYSTEM_PREFIX_PATH=${MINGW_PREFIX} \ -DBUILD_MJ2:bool=ON \ -DBUILD_JPWL:bool=ON \ -DBUILD_JPIP:bool=OFF \ -DBUILD_JP3D:bool=ON \ - ../${_realname}-$pkgver + ../${_realname}-${pkgver} make msg "Build shared version" - [[ -d $srcdir/build-shared-${MINGW_CHOST} ]] && rm -rf $srcdir/build-shared-${MINGW_CHOST} - mkdir $srcdir/build-shared-${MINGW_CHOST} - cd $srcdir/build-shared-${MINGW_CHOST} + [[ -d ${srcdir}/build-shared-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-shared-${MINGW_CHOST} + mkdir ${srcdir}/build-shared-${MINGW_CHOST} + cd ${srcdir}/build-shared-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_TESTING:BOOL=ON \ - -DCMAKE_SYSTEM_PREFIX_PATH=${PREFIX_DEPS} \ + -DCMAKE_SYSTEM_PREFIX_PATH=${MINGW_PREFIX} \ -DBUILD_MJ2:bool=ON \ -DBUILD_JPWL:bool=ON \ -DBUILD_JPIP:bool=ON \ -DBUILD_JP3D:bool=ON \ -DBUILD_DOC:bool=OFF \ -DBUILD_PKGCONFIG_FILES=ON \ - ../${_realname}-$pkgver + ../${_realname}-${pkgver} make } package() { - cd "$srcdir/build-static-${MINGW_CHOST}" - make install - - cd "$srcdir/build-shared-${MINGW_CHOST}" - make install - - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libopenjp2.pc \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libopenjp3d.pc \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libopenjpip.pc \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libopenjpwl.pc + cd "${srcdir}/build-static-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install + cd "${srcdir}/build-shared-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-pcre/PKGBUILD b/mingw-w64-pcre/PKGBUILD index 5a024d02e7..32579aa0e1 100644 --- a/mingw-w64-pcre/PKGBUILD +++ b/mingw-w64-pcre/PKGBUILD @@ -3,7 +3,7 @@ _realname=pcre pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=8.37 -pkgrel=1 +pkgrel=2 pkgdesc="A library that implements Perl 5-style regular expressions (mingw-w64)" arch=('any') url="http://pcre.org" @@ -47,5 +47,5 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-pixman/PKGBUILD b/mingw-w64-pixman/PKGBUILD index ff7b92dfd5..fc9e563d13 100644 --- a/mingw-w64-pixman/PKGBUILD +++ b/mingw-w64-pixman/PKGBUILD @@ -4,7 +4,7 @@ _realname=pixman pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.32.6 -pkgrel=2 +pkgrel=3 pkgdesc="The pixel-manipulation library for X and cairo (mingw-w64)" arch=('any') url="http://xorg.freedesktop.org" @@ -28,6 +28,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-postgresql/PKGBUILD b/mingw-w64-postgresql/PKGBUILD index 1595b6d24e..991d3907d5 100644 --- a/mingw-w64-postgresql/PKGBUILD +++ b/mingw-w64-postgresql/PKGBUILD @@ -3,7 +3,7 @@ _realname=postgresql pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=9.4.4 -pkgrel=1 +pkgrel=2 pkgdesc="Libraries for use with PostgreSQL (mingw-w64)" arch=('any') url="http://www.postgresql.org/" diff --git a/mingw-w64-python-beaker/PKGBUILD b/mingw-w64-python-beaker/PKGBUILD index 2b82a6cd4a..b1d9d2713c 100644 --- a/mingw-w64-python-beaker/PKGBUILD +++ b/mingw-w64-python-beaker/PKGBUILD @@ -4,13 +4,13 @@ _realname=beaker pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=1.7.0 -pkgrel=1 +pkgrel=2 pkgdesc="Caching and sessions WSGI middleware for use with web applications and stand-alone Python scripts and applications (mingw-w64)" arch=('any') license=('custom') url="http://beaker.groovie.org/" depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") -source=(https://github.com/bbangert/beaker/archive/${pkgver}.tar.gz) +source=(${_realname}-${pkgver}.tar.gz::https://github.com/bbangert/beaker/archive/${pkgver}.tar.gz) md5sums=('0a0d4933b28236cc339588871314df74') prepare() { @@ -42,7 +42,7 @@ package_python3-beaker() { } package_python2-beaker() { - depends=("${MINGW_PACKAGE_PREFIX}-python2>") + depends=("${MINGW_PACKAGE_PREFIX}-python2") cd "${srcdir}/python2-Beaker-${pkgver}" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=;--install-purelib=;--install-data=" \ diff --git a/mingw-w64-python-csssselect/PKGBUILD b/mingw-w64-python-csssselect/PKGBUILD index 6111122a43..ae776d7b33 100644 --- a/mingw-w64-python-csssselect/PKGBUILD +++ b/mingw-w64-python-csssselect/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=cssselect - pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.9.1 -pkgrel=2 +pkgrel=3 pkgdesc="Caching and sessions WSGI middleware for use with web applications and stand-alone Python scripts and applications (mingw-w64)" arch=('any') license=('BSD') diff --git a/mingw-w64-python-docutils/PKGBUILD b/mingw-w64-python-docutils/PKGBUILD index 1c4b322112..851710f36b 100644 --- a/mingw-w64-python-docutils/PKGBUILD +++ b/mingw-w64-python-docutils/PKGBUILD @@ -5,13 +5,13 @@ _realname=docutils pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.12 -pkgrel=3 +pkgrel=4 pkgdesc="Set of tools for processing plaintext docs into formats such as HTML, XML, or LaTeX (mingw-w64)" arch=('any') license=('custom') url="http://docutils.sourceforge.net" depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3") -source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.gz") +source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz") md5sums=('4622263b62c5c771c03502afa3157768') build() { @@ -26,7 +26,7 @@ build() { } check() { - cd ${_realname}-$pkgver + cd ${_realname}-${pkgver} # we need utf locale to valid utf8 tests export LANG=en_US.UTF-8 # Disable python3 check @@ -39,14 +39,12 @@ check() { package_python3-docutils() { depends=("${MINGW_PACKAGE_PREFIX}-python3") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) - cd ${_realname}-$pkgver + cd ${_realname}-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build --build-lib=build/python3 \ - install --prefix=${MINGW_PREFIX} --root="$pkgdir" --optimize=1 + install --prefix=${MINGW_PREFIX} --root="${pkgdir}" --optimize=1 # fix python-docutils conflict for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do @@ -59,23 +57,21 @@ package_python3-docutils() { ln -s "$(basename $f)" "${pkgdir}${MINGW_PREFIX}/bin/$(basename $f .py)" done # setup license - install -D -m644 COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.txt" - install -D -m644 licenses/python* "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/" + install -D -m644 COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/COPYING.txt" + install -D -m644 licenses/python* "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/" } package_python2-docutils() { depends=("${MINGW_PACKAGE_PREFIX}-python2") - provides=("${MINGW_PACKAGE_PREFIX}-docutils=$pkgver") + provides=("${MINGW_PACKAGE_PREFIX}-docutils=${pkgver}") replaces=("${MINGW_PACKAGE_PREFIX}-docutils") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) - cd ${_realname}-$pkgver + cd ${_realname}-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build --build-lib=build/python2 \ - install --prefix=${MINGW_PREFIX} --root="$pkgdir" --optimize=1 + install --prefix=${MINGW_PREFIX} --root="${pkgdir}" --optimize=1 # fix python command in files for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do @@ -86,8 +82,8 @@ package_python2-docutils() { ln -s "$(basename $_f)" "${pkgdir}${MINGW_PREFIX}/bin/$(basename $_f .py)" done # setup license - install -D -m644 COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.txt" - install -D -m644 licenses/python* "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/" + install -D -m644 COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/COPYING.txt" + install -D -m644 licenses/python* "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/" } package_mingw-w64-i686-python2-docutils() { diff --git a/mingw-w64-python-ipython/PKGBUILD b/mingw-w64-python-ipython/PKGBUILD index 75b7f68492..3894975b7c 100644 --- a/mingw-w64-python-ipython/PKGBUILD +++ b/mingw-w64-python-ipython/PKGBUILD @@ -2,7 +2,7 @@ _realname=ipython pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=3.1.0 +pkgver=3.2.0 pkgrel=1 pkgdesc="An enhanced Interactive Python shell (mingw-w64)" arch=('any') @@ -14,16 +14,16 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-sqlite3" source=("https://pypi.python.org/packages/source/i/ipython/${_realname}-${pkgver}.tar.gz" 0001-unimplemented-readline-calls.patch) -md5sums=('a749d90c16068687b0ec45a27e72ef8f' - 'f4e11a85fc52bd57ed234cad7d579536') +md5sums=('41aa9b34f39484861e77c46ffb29b699' + '0b1702a800266e6bd841708270cf9e80') prepare() { - cd "$srcdir/$_realname-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-unimplemented-readline-calls.patch } all_build() { - cd "$srcdir/$_realname-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" # see https://github.com/ipython/ipython/issues/2057 #export LC_ALL=en_US.UTF-8 @@ -31,11 +31,11 @@ all_build() { ${MINGW_PREFIX}/bin/${1} setup.py install \ --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 - find "$pkgdir/" -name '*.pyc' -delete - find "$pkgdir/" -type d -empty -delete + find "${pkgdir}/" -name "*.pyc" -delete + find "${pkgdir}/" -type d -empty -delete # setuptools doesnt see mingw-w64-python's readline - find "$pkgdir/" -name 'requires.txt' -delete + find "${pkgdir}/" -name 'requires.txt' -delete local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) # fix python command in files @@ -67,7 +67,7 @@ package_python3-ipython() { rm ${pkgdir}${MINGW_PREFIX}/bin/${file_script}{,.cmd} done - install -Dm644 docs/source/about/license_and_copyright.rst "$pkgdir${MINGW_PREFIX}/share/licenses/ipython/LICENSE" + install -Dm644 docs/source/about/license_and_copyright.rst "${pkgdir}${MINGW_PREFIX}/share/licenses/ipython/LICENSE" } @@ -87,17 +87,17 @@ package_python2-ipython() { all_build ${interpreter} - install -Dm644 docs/source/about/license_and_copyright.rst "$pkgdir${MINGW_PREFIX}/share/licenses/ipython2/LICENSE" + install -Dm644 docs/source/about/license_and_copyright.rst "${pkgdir}${MINGW_PREFIX}/share/licenses/ipython2/LICENSE" # Fix bin collisions - find "$pkgdir${MINGW_PREFIX}/bin/" -type f -regex '.*[^2].exe$' -delete - find "$pkgdir${MINGW_PREFIX}/bin/" -type f -regex '.*[^2]-script.py$' -delete - find "$pkgdir${MINGW_PREFIX}/bin/" -type f -regex '.*[^2].exe.manifest$' -delete + find "${pkgdir}${MINGW_PREFIX}/bin/" -type f -regex '.*[^2].exe$' -delete + find "${pkgdir}${MINGW_PREFIX}/bin/" -type f -regex '.*[^2]-script.py$' -delete + find "${pkgdir}${MINGW_PREFIX}/bin/" -type f -regex '.*[^2].exe.manifest$' -delete # Fix manpage collisions - cd "$pkgdir${MINGW_PREFIX}/share/man/man1/" + cd "${pkgdir}${MINGW_PREFIX}/share/man/man1/" for i in *; do - mv $i ${i/%.1/2.1} + mv ${i} ${i/%.1/2.1} done } diff --git a/mingw-w64-python-lxml/PKGBUILD b/mingw-w64-python-lxml/PKGBUILD index 1806b61097..94046c611d 100644 --- a/mingw-w64-python-lxml/PKGBUILD +++ b/mingw-w64-python-lxml/PKGBUILD @@ -5,7 +5,7 @@ _realname=lxml pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}" "${MINGW_PACKAGE_PREFIX}-python-${_realname}-docs") pkgver=3.4.4 -pkgrel=1 +pkgrel=2 arch=('any') license=('BSD' 'custom') url="http://lxml.de/" diff --git a/mingw-w64-python-mako/PKGBUILD b/mingw-w64-python-mako/PKGBUILD index cf28c212e4..d650228e5f 100644 --- a/mingw-w64-python-mako/PKGBUILD +++ b/mingw-w64-python-mako/PKGBUILD @@ -4,7 +4,7 @@ _realname=mako pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=1.0.1 -pkgrel=2 +pkgrel=3 pkgdesc="A super-fast templating language that borrows the best ideas from the existing templating languages (mingw-w64)" arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") @@ -29,18 +29,18 @@ prepare() { } build() { - cd "$srcdir" + cd "${srcdir}" for builddir in python{2,3}-build; do - pushd $builddir + pushd ${builddir} ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build popd done } check() { - cd "$srcdir" + cd "${srcdir}" for builddir in python{2,3}-build; do - pushd $builddir + pushd ${builddir} ${MINGW_PREFIX}/bin/${builddir%-build} setup.py test popd done @@ -49,14 +49,12 @@ check() { package_python2-mako() { depends=("${MINGW_PACKAGE_PREFIX}-python2-markupsafe" "${MINGW_PACKAGE_PREFIX}-python2-beaker") - cd "$srcdir/python2-build" + cd "${srcdir}/python2-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 # fix python command in files - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${_f} done @@ -75,14 +73,12 @@ package_python2-mako() { package_python3-mako() { depends=("${MINGW_PACKAGE_PREFIX}-python3-markupsafe" "${MINGW_PACKAGE_PREFIX}-python3-beaker") - cd "$srcdir/python3-build" + cd "${srcdir}/python3-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 # fix python command in files - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${_f} done diff --git a/mingw-w64-python-markupsafe/PKGBUILD b/mingw-w64-python-markupsafe/PKGBUILD index 35f7df8765..b6be9609d5 100644 --- a/mingw-w64-python-markupsafe/PKGBUILD +++ b/mingw-w64-python-markupsafe/PKGBUILD @@ -3,7 +3,7 @@ _realname=markupsafe pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.23 -pkgrel=2 +pkgrel=3 pkgdesc="Implements a XML/HTML/XHTML Markup safe string for Python (mingw-w64)" arch=('any') license=('custom') @@ -13,12 +13,12 @@ source=("http://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-${pkgver md5sums=('f5ab3deee4c37cd6a922fb81e730da6e') build() { - cd "$srcdir" + cd "${srcdir}" rm -rf python{2,3}-build for builddir in python{2,3}-build; do - cp -r MarkupSafe-$pkgver $builddir - pushd $builddir + cp -r MarkupSafe-${pkgver} $builddir + pushd ${builddir} ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build popd done @@ -27,13 +27,9 @@ build() { package_python3-markupsafe() { depends=("${MINGW_PACKAGE_PREFIX}-python3") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null - - cd "$srcdir/python3-build" + cd "${srcdir}/python3-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } @@ -41,13 +37,9 @@ package_python3-markupsafe() { package_python2-markupsafe() { depends=("${MINGW_PACKAGE_PREFIX}-python2") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null - - cd "$srcdir/python2-build" + cd "${srcdir}/python2-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" } diff --git a/mingw-w64-python-nose/PKGBUILD b/mingw-w64-python-nose/PKGBUILD index bb97392137..c83cd7bd0c 100644 --- a/mingw-w64-python-nose/PKGBUILD +++ b/mingw-w64-python-nose/PKGBUILD @@ -4,7 +4,7 @@ _realname=nose pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=1.3.7 -pkgrel=1 +pkgrel=2 pkgdesc="A discovery-based unittest extension (mingw-w64)" arch=('any') license=('LGPL-2.1') @@ -14,14 +14,14 @@ source=("http://pypi.python.org/packages/source/n/nose/nose-${pkgver}.tar.gz") md5sums=('4d3ad0ff07b61373d2cefc89c5d0b20b') build() { - cd "$srcdir/nose-$pkgver" + cd "${srcdir}/nose-${pkgver}" sed -i -e "s:man/man1:share/man/man1:g" setup.py - cd "$srcdir" + cd "${srcdir}" rm -rf python{2,3}-build for builddir in python{2,3}-build; do - cp -r nose-$pkgver $builddir - pushd $builddir + cp -r nose-${pkgver} $builddir + pushd ${builddir} ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build popd done @@ -30,13 +30,11 @@ build() { package_python3-nose() { depends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) - cd "$srcdir/python3-build" + cd "${srcdir}/python3-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 rm -f ${pkgdir}${MINGW_PREFIX}/bin/nosetests{.exe,-script.py,.exe.manifest} # fix python command in files @@ -49,13 +47,11 @@ package_python3-nose() { package_python2-nose() { depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) - cd "$srcdir/python2-build" + cd "${srcdir}/python2-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 # fix python command in files for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do diff --git a/mingw-w64-python-setuptools/0004-dont-execute-msvc.patch b/mingw-w64-python-setuptools/0004-dont-execute-msvc.patch index c7a2220ed0..d45747d3a2 100644 --- a/mingw-w64-python-setuptools/0004-dont-execute-msvc.patch +++ b/mingw-w64-python-setuptools/0004-dont-execute-msvc.patch @@ -10,6 +10,6 @@ -msvc9_support.patch_for_specialized_compiler() - - def have_pyrex(): + def _have_cython(): """ - Return True if Cython or Pyrex can be imported. + Return True if Cython can be imported. diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index 08a9d336c3..cf783c2399 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -6,8 +6,8 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.4 _py2_base=2.7 -pkgver=15.2 -pkgrel=2 +pkgver=18.0.1 +pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" arch=('any') license=('PSF') @@ -18,11 +18,11 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('ee7a6c9aefd199763f5552f81124934f66951164' +sha1sums=('ebc4fe81b7f6d61d923d9519f589903824044f52' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' - '8c7266a73334b166286baf8641ad0c139f15faad') + 'e803db42f6589d19c51f7e962a8742c826fd13fc') prepare() { cd "${srcdir}/setuptools-${pkgver}" @@ -96,6 +96,7 @@ package_python2-setuptools() { sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${pkgdir}${MINGW_PREFIX}/bin/easy_install-${_py2_base}-script.py } +# Wrappers package_mingw-w64-i686-python2-setuptools() { package_python2-setuptools } diff --git a/mingw-w64-qtbinpatcher/PKGBUILD b/mingw-w64-qtbinpatcher/PKGBUILD index 54127273f0..7b3d3e6649 100644 --- a/mingw-w64-qtbinpatcher/PKGBUILD +++ b/mingw-w64-qtbinpatcher/PKGBUILD @@ -3,7 +3,7 @@ _realname=qtbinpatcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.4 -pkgrel=1 +pkgrel=2 pkgdesc="Patcher for Qt libraries (mingw-w64)" arch=('any') url="http://tver-soft.org" diff --git a/mingw-w64-shared-mime-info/PKGBUILD b/mingw-w64-shared-mime-info/PKGBUILD index b6afd20609..f45bbeab2a 100644 --- a/mingw-w64-shared-mime-info/PKGBUILD +++ b/mingw-w64-shared-mime-info/PKGBUILD @@ -4,7 +4,7 @@ _realname=shared-mime-info pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4 -pkgrel=1 +pkgrel=2 pkgdesc="Freedesktop.org Shared MIME Info (mingw-w64)" arch=('any') license=(GPL2) diff --git a/mingw-w64-vala/PKGBUILD b/mingw-w64-vala/PKGBUILD index fc2c3eec28..1dbe69f4f0 100644 --- a/mingw-w64-vala/PKGBUILD +++ b/mingw-w64-vala/PKGBUILD @@ -2,7 +2,7 @@ _realname=vala pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.28.0 +pkgver=0.29.2 pkgrel=1 pkgdesc="Compiler for the GObject type system (mingw-w64)" arch=('any') @@ -12,9 +12,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-libxslt") depends=("${MINGW_PACKAGE_PREFIX}-glib2") -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-change-pkg-config-invocations.mingw.patch) -sha256sums=('0d9e3bd3f82145664875f7c29b2f544ba92d2814f75412948f774c0727fc977f' +sha256sums=('e4ef92b3b55a4dcaeb13a2cf673924234fb6330033b1b4906e125735fa41d1ba' 'c588a3a69097aae30ada1d543001d5029865b1dd1f46132d9e60d12e1833b325') prepare() { @@ -26,7 +26,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -36,5 +36,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-wineditline/PKGBUILD b/mingw-w64-wineditline/PKGBUILD index 43cc5001f9..10cf21afed 100644 --- a/mingw-w64-wineditline/PKGBUILD +++ b/mingw-w64-wineditline/PKGBUILD @@ -3,7 +3,7 @@ _realname=wineditline pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.101 -pkgrel=3 +pkgrel=4 pkgdesc="port of the NetBSD Editline library (mingw-w64)" arch=('any') license=('BSD') @@ -31,9 +31,11 @@ prepare() { build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ ../${_realname}-${pkgver} make @@ -41,7 +43,7 @@ build() { package() { cd ${srcdir}/build-${MINGW_CHOST} - make install + make DESTDIR=${pkgdir} install install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } From 02012f1ab5b067be2511e678f3ff1697d0c2bad5 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Thu, 2 Jul 2015 09:57:50 +0100 Subject: [PATCH 1245/2060] compiler-rt: new package. Also added gnu mode to lld for windows --- .../0000-Add-Clang-MinGW-w64-driver.patch.old | 753 +++++++++++++++++ .../0011-Add-Clang-MinGW-w64-driver.patch | 795 +++--------------- ...017-fix-dcelspec-for-mingw-and-cygwin.diff | 43 + ...dd-support-for-mingw-w64-in-builtins.patch | 83 ++ ...mplement-_chkstk-routine-for-windows.patch | 124 +++ ...FF-add-the-mingw-alias-for-ImageBase.patch | 24 + ...FF-add-the-mingw-alias-for-ImageBase.patch | 67 ++ ...hLibrary-function-with-sysroot-suppo.patch | 102 +++ ...4-GNU-add-support-for-linking-PECOFF.patch | 502 +++++++++++ mingw-w64-clang-svn/PKGBUILD | 106 ++- 10 files changed, 1916 insertions(+), 683 deletions(-) create mode 100644 mingw-w64-clang-svn/0000-Add-Clang-MinGW-w64-driver.patch.old create mode 100644 mingw-w64-clang-svn/0017-fix-dcelspec-for-mingw-and-cygwin.diff create mode 100644 mingw-w64-clang-svn/0021-add-support-for-mingw-w64-in-builtins.patch create mode 100644 mingw-w64-clang-svn/0022-builtins-implement-_chkstk-routine-for-windows.patch create mode 100644 mingw-w64-clang-svn/0031-COFF-add-the-mingw-alias-for-ImageBase.patch create mode 100644 mingw-w64-clang-svn/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch create mode 100644 mingw-w64-clang-svn/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch create mode 100644 mingw-w64-clang-svn/0034-GNU-add-support-for-linking-PECOFF.patch diff --git a/mingw-w64-clang-svn/0000-Add-Clang-MinGW-w64-driver.patch.old b/mingw-w64-clang-svn/0000-Add-Clang-MinGW-w64-driver.patch.old new file mode 100644 index 0000000000..92c27df01b --- /dev/null +++ b/mingw-w64-clang-svn/0000-Add-Clang-MinGW-w64-driver.patch.old @@ -0,0 +1,753 @@ +From 7d9fedef6c647c42304ed38a239cd99940635af7 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Tue, 24 Mar 2015 15:02:53 +0000 +Subject: [PATCH] Add Clang MinGW-w64 driver + +This adds the MinGW-w64 driver to clang with the +new triplets compnerd introduced to clang. Based +off of rubenvb's driver patch from January 2014. + +Update: + +March 2015: removed seh code as clang detects itself as of commit b27216c + updated to head + +May 2015: added support for thumb2pe and lld (forgot to commit so redone this again) + +June 2015: updated to head to prepare for 3.7 release + we may need to remove pic code for x64 because it it detected in the base class now on head ??? + +July 2015: now supports compiler rt and passing of --rtlib= where libgcc is now legacy mode :) + +diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td +index 4eb5647..a6ada2c 100644 +--- a/include/clang/Driver/Options.td ++++ b/include/clang/Driver/Options.td +@@ -1153,6 +1153,11 @@ def march_EQ : Joined<["-"], "march=">, Group; + def masm_EQ : Joined<["-"], "masm=">, Group, Flags<[DriverOption]>; + def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group; + def mconstant_cfstrings : Flag<["-"], "mconstant-cfstrings">, Group; ++def mconsole : Joined<["-"], "mconsole">, Group, Flags<[DriverOption]>; ++def mwindows : Joined<["-"], "mwindows">, Group, Flags<[DriverOption]>; ++def mdll : Joined<["-"], "mdll">, Group, Flags<[DriverOption]>; ++def municode : Joined<["-"], "municode">, Group, Flags<[DriverOption]>; ++def mthreads : Joined<["-"], "mthreads">, Group, Flags<[DriverOption]>; + def mcpu_EQ : Joined<["-"], "mcpu=">, Group; + def mdynamic_no_pic : Joined<["-"], "mdynamic-no-pic">, Group; + def mfix_and_continue : Flag<["-"], "mfix-and-continue">, Group; +@@ -1522,6 +1527,7 @@ def private__bundle : Flag<["-"], "private_bundle">; + def pthreads : Flag<["-"], "pthreads">; + def pthread : Flag<["-"], "pthread">, Flags<[CC1Option]>, + HelpText<"Support POSIX threads in generated code">; ++def no_pthread : Flag<["-"], "no-pthread">, Flags<[CC1Option]>; + def p : Flag<["-"], "p">; + def pie : Flag<["-"], "pie">; + def read__only__relocs : Separate<["-"], "read_only_relocs">; +diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt +index 412840b..8d88f96 100644 +--- a/lib/Driver/CMakeLists.txt ++++ b/lib/Driver/CMakeLists.txt +@@ -12,6 +12,7 @@ add_clang_library(clangDriver + Job.cpp + Multilib.cpp + MSVCToolChain.cpp ++ MinGWToolChain.cpp + Phases.cpp + SanitizerArgs.cpp + Tool.cpp +diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp +index 5451132..54df2f8 100644 +--- a/lib/Driver/Driver.cpp ++++ b/lib/Driver/Driver.cpp +@@ -2053,12 +2053,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, + TC = new toolchains::Generic_GCC(*this, Target, Args); + break; + case llvm::Triple::GNU: +- // FIXME: We need a MinGW toolchain. Use the default Generic_GCC +- // toolchain for now as the default case would below otherwise. +- if (Target.isOSBinFormatELF()) +- TC = new toolchains::Generic_ELF(*this, Target, Args); +- else +- TC = new toolchains::Generic_GCC(*this, Target, Args); ++ TC = new toolchains::MinGW(*this, Target, Args); + break; + case llvm::Triple::Itanium: + TC = new toolchains::CrossWindowsToolChain(*this, Target, Args); +diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp +new file mode 100644 +index 0000000..9828726 +--- /dev/null ++++ b/lib/Driver/MinGWToolChain.cpp +@@ -0,0 +1,191 @@ ++//===--- MinGWToolChain.cpp - MinGWToolChain Implementation -----------------------===// ++// ++// The LLVM Compiler Infrastructure ++// ++// This file is distributed under the University of Illinois Open Source ++// License. See LICENSE.TXT for details. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "ToolChains.h" ++#include "clang/Basic/CharInfo.h" ++#include "clang/Basic/DiagnosticIDs.h" ++#include "clang/Basic/Version.h" ++#include "clang/Driver/Compilation.h" ++#include "clang/Driver/Driver.h" ++#include "clang/Driver/DriverDiagnostic.h" ++#include "clang/Driver/Options.h" ++#include "llvm/Option/Arg.h" ++#include "llvm/Option/ArgList.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/FileSystem.h" ++#include "llvm/Support/Path.h" ++ ++using namespace clang::diag; ++using namespace clang::driver; ++using namespace clang::driver::toolchains; ++using namespace clang; ++using namespace llvm::opt; ++ ++MinGW::MinGW(const Driver &D, const llvm::Triple& Triple, ++ const ArgList &Args) ++ : ToolChain(D, Triple, Args) { ++ //TODO: libc++ directory ++ ++ // Get GCC version string for library and header directories ++ const std::string GCClibdir = ++#ifdef LLVM_ON_WIN32 ++ getDriver().Dir + "/../lib/gcc/" + getTriple().getArchName().str() + "-w64-mingw32"; ++#else ++ getDriver().SysRoot + "/usr/lib/gcc/" + getTriple().getArchName().str() + "-w64-mingw32"; ++#endif ++ if (llvm::sys::fs::exists(GCClibdir)) { ++ // Find subdirectory, should be the version of MinGW-w64 GCC ++ std::error_code EC; ++ llvm::sys::fs::directory_iterator entry(StringRef(GCClibdir), EC); ++ if (!EC) ++ GCCVersion = llvm::sys::path::filename(entry->path()); ++ // TODO report error: "no MinGW-w64 GCC installation found" ++ } ++ ++#ifdef LLVM_ON_WIN32 ++ // assume sysrooted compiler ++ getFilePaths().push_back(getDriver().Dir + "/../lib"); ++ getFilePaths().push_back(getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" ++ + "/lib"); ++ getFilePaths().push_back(getDriver().Dir + "/../lib/gcc/" ++ + getTriple().getArchName().str() + "-w64-mingw32" + "/" + GCCVersion); ++ ++#else ++ // assume install prefix /usr ++ getFilePaths().push_back(getDriver().SysRoot + "/usr/" ++ + getTriple().getArchName().str() + "-w64-mingw32" + "/lib"); ++ getFilePaths().push_back(getDriver().SysRoot + "/usr/lib/gcc/" ++ + getTriple().getArchName().str() + "-w64-mingw32" + "/" + GCCVersion); ++#endif ++} ++ ++Tool *MinGW::buildLinker() const { ++ return new tools::MinGW::Link(*this); ++} ++ ++bool MinGW::IsIntegratedAssemblerDefault() const { ++ return true; ++} ++ ++Tool *MinGW::getTool(Action::ActionClass AC) const { ++ switch (AC) { ++ case Action::PreprocessJobClass: ++ if (!Preprocess) ++ Preprocess.reset(new tools::gcc::Preprocessor(*this)); ++ return Preprocess.get(); ++ case Action::CompileJobClass: ++ if (!Compile) ++ Compile.reset(new tools::gcc::Compiler(*this)); ++ return Compile.get(); ++ default: ++ return ToolChain::getTool(AC); ++ } ++} ++ ++Tool *MinGW::buildAssembler() const { ++ return new tools::MinGW::Assemble(*this); ++} ++ ++bool MinGW::IsUnwindTablesDefault() const { ++ return getArch() == llvm::Triple::x86_64; ++} ++ ++bool MinGW::isPICDefault() const { ++ return getArch() == llvm::Triple::x86_64; ++} ++ ++bool MinGW::isPIEDefault() const { ++ return false; ++} ++ ++ ++bool MinGW::isPICDefaultForced() const { ++ return getArch() == llvm::Triple::x86_64; ++} ++ ++void MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, ++ ArgStringList &CC1Args) const { ++ if (DriverArgs.hasArg(options::OPT_nostdinc)) ++ return; ++ ++ if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { ++ SmallString<128> P(getDriver().ResourceDir); ++ llvm::sys::path::append(P, "include"); ++ addSystemInclude(DriverArgs, CC1Args, P.str()); ++ } ++ ++ if (DriverArgs.hasArg(options::OPT_nostdlibinc)) ++ return; ++ ++#ifdef LLVM_ON_WIN32 ++ // Clang runs on Windows, assume sysroot toolchain ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" ++ + "/include"); ++ // Add users standard include directory ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().Dir + "/../include"); ++#else ++ // Clang runs somewhere else, e.g. Linux, assume install prefix /usr ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" ++ + "/include"); ++#endif ++} ++ ++void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, ++ ArgStringList &CC1Args) const { ++ if (DriverArgs.hasArg(options::OPT_nostdlibinc) || ++ DriverArgs.hasArg(options::OPT_nostdincxx)) ++ return; ++ ++ // Check if libc++ has been enabled and provide its include paths if so. ++ if (GetCXXStdlibType(DriverArgs) == ToolChain::CST_Libcxx) { ++ // libc++ is always installed at a fixed path on Linux currently. ++#ifdef LLVM_ON_WIN32 ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().Dir + "/../include/c++/v1"); ++#else ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().SysRoot + "/usr/include/c++/v1"); ++#endif ++ return; ++ } ++#ifdef LLVM_ON_WIN32 ++ // Assume sysroot toolchain ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().Dir + "/../include/c++/" + GCCVersion); ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().Dir + "/../include/c++/" + GCCVersion ++ + "/" + getTriple().getArchName().str() + "-w64-mingw32"); ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().Dir + "/../include/c++/" + GCCVersion ++ + "/backward"); ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" ++ + "/include/c++"); ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" ++ + "/include/c++/" + getTriple().getArchName().str() + "-w64-mingw32"); ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" ++ + "/include/c++/backward"); ++#else ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" ++ + "/include/c++/" + GCCVersion); ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" ++ + "/include/c++/" + GCCVersion ++ + "/" + getTriple().getArchName().str() + "-w64-mingw32"); ++ addSystemInclude(DriverArgs, CC1Args, ++ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" ++ + "/include/c++/" + GCCVersion + "/backward"); ++#endif ++} +diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h +index 4f50af0..9896024 100644 +--- a/lib/Driver/ToolChains.h ++++ b/lib/Driver/ToolChains.h +@@ -525,6 +525,35 @@ protected: + Tool *buildLinker() const override; + }; + ++class LLVM_LIBRARY_VISIBILITY MinGW : public ToolChain { ++public: ++ MinGW(const Driver &D, const llvm::Triple &Triple, ++ const llvm::opt::ArgList &Args); ++ ++ bool IsIntegratedAssemblerDefault() const override; ++ bool IsUnwindTablesDefault() const override; ++ bool isPICDefault() const override; ++ bool isPIEDefault() const override; ++ bool isPICDefaultForced() const override; ++ ++ void ++ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, ++ llvm::opt::ArgStringList &CC1Args) const override; ++ void ++ AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, ++ llvm::opt::ArgStringList &CC1Args) const override; ++ ++protected: ++ Tool *buildLinker() const override; ++ Tool *buildAssembler() const override; ++ Tool *getTool(Action::ActionClass AC) const override; ++ ++private: ++ std::string GCCVersion; ++ mutable std::unique_ptr Preprocess; ++ mutable std::unique_ptr Compile; ++}; ++ + class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic_ELF { + public: + OpenBSD(const Driver &D, const llvm::Triple &Triple, +diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp +index 1b990cf..4afb55b 100644 +--- a/lib/Driver/Tools.cpp ++++ b/lib/Driver/Tools.cpp +@@ -2209,9 +2209,8 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, + + // Until ARM libraries are build separately, we have them all in one library + static StringRef getArchNameForCompilerRTLib(const ToolChain &TC) { +- // FIXME: handle 64-bit +- if (TC.getTriple().isOSWindows() && +- !TC.getTriple().isWindowsItaniumEnvironment()) ++ if (TC.getTriple().isWindowsMSVCEnvironment() && ++ TC.getArch() == llvm::Triple::x86) + return "i386"; + if (TC.getArch() == llvm::Triple::arm || TC.getArch() == llvm::Triple::armeb) + return "arm"; +@@ -2236,10 +2235,12 @@ static SmallString<128> getCompilerRT(const ToolChain &TC, StringRef Component, + : ""; + + bool IsOSWindows = TC.getTriple().isOSWindows(); ++ bool IsITANMSVCWindows = TC.getTriple().isWindowsMSVCEnvironment() || ++ TC.getTriple().isWindowsItaniumEnvironment(); + StringRef Arch = getArchNameForCompilerRTLib(TC); +- const char *Prefix = IsOSWindows ? "" : "lib"; ++ const char *Prefix = IsITANMSVCWindows ? "" : "lib"; + const char *Suffix = +- Shared ? (IsOSWindows ? ".dll" : ".so") : (IsOSWindows ? ".lib" : ".a"); ++ Shared ? (IsOSWindows ? ".dll" : ".so") : (IsITANMSVCWindows ? ".lib" : ".a"); + + SmallString<128> Path = getCompilerRTLibDir(TC); + llvm::sys::path::append(Path, Prefix + Twine("clang_rt.") + Component + "-" + +@@ -8774,6 +8775,241 @@ std::unique_ptr visualstudio::Compiler::GetCommand( + CmdArgs); + } + ++/// MinGW Tools ++void MinGW::Assemble::ConstructJob(Compilation &C, const JobAction &JA, ++ const InputInfo &Output, ++ const InputInfoList &Inputs, ++ const ArgList &Args, ++ const char *LinkingOutput) const { ++ ArgStringList CmdArgs; ++ ++ if (getToolChain().getArch() == llvm::Triple::x86) { ++ CmdArgs.push_back("--32"); ++ } else if (getToolChain().getArch() == llvm::Triple::x86_64) { ++ CmdArgs.push_back("--64"); ++ } ++ ++ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, ++ options::OPT_Xassembler); ++ ++ CmdArgs.push_back("-o"); ++ CmdArgs.push_back(Output.getFilename()); ++ ++ for (const auto &II : Inputs) ++ CmdArgs.push_back(II.getFilename()); ++ ++ const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as")); ++ C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); ++ ++ if (Args.hasArg(options::OPT_gsplit_dwarf)) ++ SplitDebugInfo(getToolChain(), C, *this, JA, Args, Output, ++ SplitDebugName(Args, Inputs[0])); ++} ++ ++void MinGW::Link::AddRuntime(const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs) const { ++ if (Args.hasArg(options::OPT_mthreads)) ++ CmdArgs.push_back("-lmingwthrd"); ++ ++ CmdArgs.push_back("-lmingw32"); ++ ++ StringRef Runtime = Args.getLastArgValue(options::OPT_rtlib_EQ, "compiler-rt"); ++ if (Runtime.equals_lower("compiler-rt")) ++ CmdArgs.push_back(Args.MakeArgString(getCompilerRT(TC, "builtins"))); ++ ++ // you need to pass --rtlib=libgcc for legacy mode ++ if (Runtime.equals_lower("libgcc")) { ++ if (Args.hasArg(options::OPT_shared) || ++ Args.hasArg(options::OPT_shared_libgcc)) { ++ CmdArgs.push_back("-lgcc_s"); ++ CmdArgs.push_back("-lgcc"); ++ } else { ++ CmdArgs.push_back("-lgcc"); ++ CmdArgs.push_back("-lgcc_eh"); ++ } ++ } ++ ++ CmdArgs.push_back("-lmoldname"); ++ CmdArgs.push_back("-lmingwex"); ++ CmdArgs.push_back("-lmsvcrt"); ++} ++ ++void MinGW::Link::ConstructJob(Compilation &C, const JobAction &JA, ++ const InputInfo &Output, ++ const InputInfoList &Inputs, ++ const ArgList &Args, ++ const char *LinkingOutput) const { ++ const ToolChain &TC = getToolChain(); ++ const Driver &D = TC.getDriver(); ++ //const SanitizerArgs &Sanitize = TC.getSanitizerArgs(); ++ ++ ArgStringList CmdArgs; ++ ++ // Silence warning for "clang -g foo.o -o foo" ++ Args.ClaimAllArgs(options::OPT_g_Group); ++ // and "clang -emit-llvm foo.o -o foo" ++ Args.ClaimAllArgs(options::OPT_emit_llvm); ++ // and for "clang -w foo.o -o foo". Other warning options are already ++ // handled somewhere else. ++ Args.ClaimAllArgs(options::OPT_w); ++ ++ // We default to lld and not ld because we are badass like that :) ++ StringRef Linker = Args.getLastArgValue(options::OPT_fuse_ld_EQ, "lld"); ++ if (Linker.equals_lower("lld")) { ++ CmdArgs.push_back("-flavor"); ++ CmdArgs.push_back("gnu"); ++ } ++ ++ if (!D.SysRoot.empty()) ++ CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); ++ ++ if (Args.hasArg(options::OPT_s)) ++ CmdArgs.push_back("-s"); ++ ++ CmdArgs.push_back("-m"); ++ switch (TC.getArch()) { ++ default: ++ llvm_unreachable("unsupported architecture"); ++ case llvm::Triple::arm: ++ case llvm::Triple::thumb: ++ CmdArgs.push_back("thumb2pe"); ++ break; ++ case llvm::Triple::x86: ++ CmdArgs.push_back("i386pe"); ++ break; ++ case llvm::Triple::x86_64: ++ CmdArgs.push_back("i386pep"); ++ break; ++ } ++ ++ if (Args.hasArg(options::OPT_mwindows)) { ++ CmdArgs.push_back("--subsystem"); ++ CmdArgs.push_back("windows"); ++ } else if (Args.hasArg(options::OPT_mconsole)) { ++ CmdArgs.push_back("--subsystem"); ++ CmdArgs.push_back("console"); ++ } ++ ++ if (Args.hasArg(options::OPT_static)) ++ CmdArgs.push_back("-Bstatic"); ++ else { ++ if (Args.hasArg(options::OPT_mdll)) ++ CmdArgs.push_back("--dll"); ++ else if (Args.hasArg(options::OPT_shared)) ++ CmdArgs.push_back("--shared"); ++ CmdArgs.push_back("-Bdynamic"); ++ if (Args.hasArg(options::OPT_mdll) || Args.hasArg(options::OPT_shared)) { ++ CmdArgs.push_back("-e"); ++ if (TC.getArch() == llvm::Triple::x86) ++ CmdArgs.push_back("_DllMainCRTStartup@12"); ++ else ++ CmdArgs.push_back("DllMainCRTStartup"); ++ CmdArgs.push_back("--enable-auto-image-base"); ++ } ++ } ++ ++ CmdArgs.push_back("-o"); ++ CmdArgs.push_back(Output.getFilename()); ++ ++ Args.AddAllArgs(CmdArgs, options::OPT_e); ++ // FIXME: add -N, -n flags ++ Args.AddLastArg(CmdArgs, options::OPT_r); ++ Args.AddLastArg(CmdArgs, options::OPT_s); ++ Args.AddLastArg(CmdArgs, options::OPT_t); ++ Args.AddAllArgs(CmdArgs, options::OPT_u_Group); ++ Args.AddLastArg(CmdArgs, options::OPT_Z_Flag); ++ ++ if (!Args.hasArg(options::OPT_nostdlib) && ++ !Args.hasArg(options::OPT_nostartfiles)) { ++ if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_mdll)) { ++ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("dllcrt2.o"))); ++ } else { ++ if (Args.hasArg(options::OPT_municode)) ++ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crt2u.o"))); ++ else ++ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crt2.o"))); ++ } ++ if (Args.hasArg(options::OPT_pg)) ++ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("gcrt2.o"))); ++ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtbegin.o"))); ++ } ++ ++ Args.AddAllArgs(CmdArgs, options::OPT_L); ++ const ToolChain::path_list Paths = TC.getFilePaths(); ++ for (const auto &Path : Paths) ++ CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + Path)); ++ ++ AddLinkerInputs(TC, Inputs, Args, CmdArgs); ++ ++ // TODO: Add ASan stuff here ++ ++ // TODO: Add profile stuff here ++ ++ if (D.CCCIsCXX() && ++ !Args.hasArg(options::OPT_nostdlib) && ++ !Args.hasArg(options::OPT_nodefaultlibs)) { ++ bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) && ++ !Args.hasArg(options::OPT_static); ++ if (OnlyLibstdcxxStatic) ++ CmdArgs.push_back("-Bstatic"); ++ TC.AddCXXStdlibLibArgs(Args, CmdArgs); ++ if (OnlyLibstdcxxStatic) ++ CmdArgs.push_back("-Bdynamic"); ++ } ++ ++ if (!Args.hasArg(options::OPT_nostdlib)) { ++ if (!Args.hasArg(options::OPT_nodefaultlibs)) { ++ if (Args.hasArg(options::OPT_static)) ++ CmdArgs.push_back("--start-group"); ++ ++ if (Args.hasArg(options::OPT_fstack_protector) || ++ Args.hasArg(options::OPT_fstack_protector_strong) || ++ Args.hasArg(options::OPT_fstack_protector_all)) { ++ CmdArgs.push_back("-lssp_nonshared"); ++ CmdArgs.push_back("-lssp"); ++ } ++ if (Args.hasArg(options::OPT_fopenmp)) ++ CmdArgs.push_back("-lgomp"); ++ ++ AddRuntime(TC, Args, CmdArgs); ++ ++ if (Args.hasArg(options::OPT_pg)) ++ CmdArgs.push_back("-lgmon"); ++ ++ // Currently required for OpenMP and posix-threading libgcc ++ if (!Args.hasArg(options::OPT_no_pthread)) ++ CmdArgs.push_back("-lpthread"); ++ ++ // add system libraries ++ if (Args.hasArg(options::OPT_mwindows)) { ++ CmdArgs.push_back("-lgdi32"); ++ CmdArgs.push_back("-lcomdlg32"); ++ } ++ CmdArgs.push_back("-ladvapi32"); ++ CmdArgs.push_back("-lshell32"); ++ CmdArgs.push_back("-luser32"); ++ CmdArgs.push_back("-lkernel32"); ++ ++ if (Args.hasArg(options::OPT_static)) ++ CmdArgs.push_back("--end-group"); ++ else //lld is more robust at looking up symbols ++ if (Linker.equals_lower("ld")) ++ AddRuntime(TC, Args, CmdArgs); ++ } ++ ++ if (!Args.hasArg(options::OPT_nostartfiles)) { ++ // Add crtfastmath.o if available and fast math is enabled. ++ TC.AddFastMathRuntimeIfAvailable(Args, CmdArgs); ++ ++ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend.o"))); ++ } ++ } ++ ++ const char *Exec = ++ Args.MakeArgString(TC.GetProgramPath(Linker.data())); ++ C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); ++ ++} ++ + /// XCore Tools + // We pass assemble and link construction to the xcc tool. + +diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h +index d57df1c..41636c5 100644 +--- a/lib/Driver/Tools.h ++++ b/lib/Driver/Tools.h +@@ -672,6 +672,39 @@ public: + }; + } // end namespace visualstudio + ++ /// MinGW -- Directly call GNU Binutils assembler and linker ++namespace MinGW { ++ class LLVM_LIBRARY_VISIBILITY Assemble : public Tool { ++ public: ++ Assemble(const ToolChain &TC) : Tool("MinGW::Assemble", "assembler", ++ TC) {} ++ ++ bool hasIntegratedCPP() const override { return false; } ++ ++ void ConstructJob(Compilation &C, const JobAction &JA, ++ const InputInfo &Output, ++ const InputInfoList &Inputs, ++ const llvm::opt::ArgList &TCArgs, ++ const char *LinkingOutput) const override; ++ }; ++ ++ class LLVM_LIBRARY_VISIBILITY Link : public Tool { ++ public: ++ Link(const ToolChain &TC) : Tool("MinGW::Link", "linker", TC) {} ++ ++ bool hasIntegratedCPP() const override { return false; } ++ bool isLinkJob() const override { return true; } ++ ++ void ConstructJob(Compilation &C, const JobAction &JA, ++ const InputInfo &Output, ++ const InputInfoList &Inputs, ++ const llvm::opt::ArgList &TCArgs, ++ const char *LinkingOutput) const override; ++ private: ++ void AddRuntime(const ToolChain &TC, const llvm::opt::ArgList &Args, ArgStringList &CmdArgs) const; ++ }; ++} // end namespace MinGW ++ + namespace arm { + StringRef getARMFloatABI(const Driver &D, const llvm::opt::ArgList &Args, + const llvm::Triple &Triple); +diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp +index bf8470e..ab81a54 100644 +--- a/lib/Frontend/InitHeaderSearch.cpp ++++ b/lib/Frontend/InitHeaderSearch.cpp +@@ -82,11 +82,6 @@ public: + StringRef Arch, + StringRef Version); + +- /// AddMinGW64CXXPaths - Add the necessary paths to support +- /// libstdc++ of x86_64-w64-mingw32 aka mingw-w64. +- void AddMinGW64CXXPaths(StringRef Base, +- StringRef Version); +- + // AddDefaultCIncludePaths - Add paths that should always be searched. + void AddDefaultCIncludePaths(const llvm::Triple &triple, + const HeaderSearchOptions &HSOpts); +@@ -208,18 +203,6 @@ void InitHeaderSearch::AddMinGWCPlusPlusIncludePaths(StringRef Base, + CXXSystem, false); + } + +-void InitHeaderSearch::AddMinGW64CXXPaths(StringRef Base, +- StringRef Version) { +- // Assumes Base is HeaderSearchOpts' ResourceDir +- AddPath(Base + "/../../../include/c++/" + Version, +- CXXSystem, false); +- AddPath(Base + "/../../../include/c++/" + Version + "/x86_64-w64-mingw32", +- CXXSystem, false); +- AddPath(Base + "/../../../include/c++/" + Version + "/i686-w64-mingw32", +- CXXSystem, false); +- AddPath(Base + "/../../../include/c++/" + Version + "/backward", +- CXXSystem, false); +-} + + void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, + const HeaderSearchOptions &HSOpts) { +@@ -233,6 +216,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, + case llvm::Triple::OpenBSD: + case llvm::Triple::Bitrig: + case llvm::Triple::NaCl: ++ case llvm::Triple::Win32: + break; + default: + // FIXME: temporary hack: hard-coded paths. +@@ -271,7 +255,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, + switch (os) { + case llvm::Triple::Linux: + llvm_unreachable("Include management is handled in the driver."); +- ++ break; + case llvm::Triple::CloudABI: { + // //include + SmallString<128> P = StringRef(HSOpts.ResourceDir); +@@ -319,30 +303,12 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, + case llvm::Triple::Win32: + switch (triple.getEnvironment()) { + default: llvm_unreachable("Include management is handled in the driver."); ++ break; + case llvm::Triple::Cygnus: + AddPath("/usr/include/w32api", System, false); ++ AddPath("/usr/include", ExternCSystem, false); + break; + case llvm::Triple::GNU: +- // mingw-w64 crt include paths +- // /i686-w64-mingw32/include +- SmallString<128> P = StringRef(HSOpts.ResourceDir); +- llvm::sys::path::append(P, "../../../i686-w64-mingw32/include"); +- AddPath(P, System, false); +- +- // /x86_64-w64-mingw32/include +- P.resize(HSOpts.ResourceDir.size()); +- llvm::sys::path::append(P, "../../../x86_64-w64-mingw32/include"); +- AddPath(P, System, false); +- +- // mingw.org crt include paths +- // /include +- P.resize(HSOpts.ResourceDir.size()); +- llvm::sys::path::append(P, "../../../include"); +- AddPath(P, System, false); +- AddPath("/mingw/include", System, false); +-#if defined(LLVM_ON_WIN32) +- AddPath("c:/mingw/include", System, false); +-#endif + break; + } + break; +@@ -354,6 +320,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, + case llvm::Triple::CloudABI: + case llvm::Triple::RTEMS: + case llvm::Triple::NaCl: ++ case llvm::Triple::Win32: + break; + default: + AddPath("/usr/include", ExternCSystem, false); +@@ -420,26 +387,9 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp + AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.2"); + break; + case llvm::Triple::GNU: +- // mingw-w64 C++ include paths (i686-w64-mingw32 and x86_64-w64-mingw32) +- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.0"); +- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.1"); +- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.2"); +- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.3"); +- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.0"); +- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.1"); +- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.2"); +- // mingw.org C++ include paths +-#if defined(LLVM_ON_WIN32) +- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.0"); +- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.1"); +- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.2"); +- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.3"); +- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.0"); +- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.1"); +- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.2"); +-#endif + break; + } ++ break; + case llvm::Triple::DragonFly: + if (llvm::sys::fs::exists("/usr/lib/gcc47")) + AddPath("/usr/include/c++/4.7", CXXSystem, false); +-- +2.4.5 + diff --git a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch index e2712c33a8..3819baeb5f 100644 --- a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch +++ b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch @@ -1,684 +1,161 @@ -From af60fa000be6cb20d00074521fb545432a04586b Mon Sep 17 00:00:00 2001 +From 69a5f208efed36c20aa2af6f164fd7c59e21ab95 Mon Sep 17 00:00:00 2001 From: Martell Malone -Date: Tue, 24 Mar 2015 15:02:53 +0000 +Date: Thu, 2 Jul 2015 09:24:03 +0100 Subject: [PATCH] Add Clang MinGW-w64 driver -This adds the MinGW-w64 driver to clang with the -new triplets compnerd introduced to clang. Based -off of rubenvb's driver patch from January 2014. - -Update: - -March 2015: removed seh code as clang detects itself as of commit b27216c - updated to head - -June 2015: updated to head to prepare for 3.7 release - may need to remove pic code for x64 because it it detected in the base class now on head diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td -index 4eb5647..beecc5d 100644 +index 6a75b7c..9b24986 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td -@@ -1153,6 +1153,11 @@ def march_EQ : Joined<["-"], "march=">, Group; - def masm_EQ : Joined<["-"], "masm=">, Group, Flags<[DriverOption]>; - def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group; - def mconstant_cfstrings : Flag<["-"], "mconstant-cfstrings">, Group; -+def mconsole : Joined<["-"], "mconsole">, Group, Flags<[DriverOption]>; -+def mwindows : Joined<["-"], "mwindows">, Group, Flags<[DriverOption]>; -+def mdll : Joined<["-"], "mdll">, Group, Flags<[DriverOption]>; -+def municode : Joined<["-"], "municode">, Group, Flags<[DriverOption]>; -+def mthreads : Joined<["-"], "mthreads">, Group, Flags<[DriverOption]>; - def mcpu_EQ : Joined<["-"], "mcpu=">, Group; - def mdynamic_no_pic : Joined<["-"], "mdynamic-no-pic">, Group; - def mfix_and_continue : Flag<["-"], "mfix-and-continue">, Group; -diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt -index 412840b..8d88f96 100644 ---- a/lib/Driver/CMakeLists.txt -+++ b/lib/Driver/CMakeLists.txt -@@ -12,6 +12,7 @@ add_clang_library(clangDriver - Job.cpp - Multilib.cpp - MSVCToolChain.cpp -+ MinGWToolChain.cpp - Phases.cpp - SanitizerArgs.cpp - Tool.cpp -diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index 5451132..54df2f8 100644 ---- a/lib/Driver/Driver.cpp -+++ b/lib/Driver/Driver.cpp -@@ -2053,12 +2053,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, - TC = new toolchains::Generic_GCC(*this, Target, Args); - break; - case llvm::Triple::GNU: -- // FIXME: We need a MinGW toolchain. Use the default Generic_GCC -- // toolchain for now as the default case would below otherwise. -- if (Target.isOSBinFormatELF()) -- TC = new toolchains::Generic_ELF(*this, Target, Args); -- else -- TC = new toolchains::Generic_GCC(*this, Target, Args); -+ TC = new toolchains::MinGW(*this, Target, Args); - break; - case llvm::Triple::Itanium: - TC = new toolchains::CrossWindowsToolChain(*this, Target, Args); -diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp -new file mode 100644 -index 0000000..3b6901c ---- /dev/null -+++ b/lib/Driver/MinGWToolChain.cpp -@@ -0,0 +1,191 @@ -+//===--- MinGWToolChain.cpp - MinGWToolChain Implementation -----------------------===// -+// -+// The LLVM Compiler Infrastructure -+// -+// This file is distributed under the University of Illinois Open Source -+// License. See LICENSE.TXT for details. -+// -+//===----------------------------------------------------------------------===// -+ -+#include "ToolChains.h" -+#include "clang/Basic/CharInfo.h" -+#include "clang/Basic/DiagnosticIDs.h" -+#include "clang/Basic/Version.h" -+#include "clang/Driver/Compilation.h" -+#include "clang/Driver/Driver.h" -+#include "clang/Driver/DriverDiagnostic.h" -+#include "clang/Driver/Options.h" -+#include "llvm/Option/Arg.h" -+#include "llvm/Option/ArgList.h" -+#include "llvm/Support/ErrorHandling.h" -+#include "llvm/Support/FileSystem.h" -+#include "llvm/Support/Path.h" -+ -+using namespace clang::diag; -+using namespace clang::driver; -+using namespace clang::driver::toolchains; -+using namespace clang; -+using namespace llvm::opt; -+ -+MinGW::MinGW(const Driver &D, const llvm::Triple& Triple, -+ const ArgList &Args) -+ : ToolChain(D, Triple, Args) { -+ //TODO: libc++ directory -+ -+ // Get GCC version string for library and header directories -+ const std::string GCClibdir = -+#ifdef LLVM_ON_WIN32 -+ getDriver().Dir + "/../lib/gcc/" + getTriple().getArchName().str() + "-w64-mingw32"; -+#else -+ getDriver().SysRoot + "/usr/lib/gcc/" + getTriple().getArchName().str() + "-w64-mingw32"; -+#endif -+ if (llvm::sys::fs::exists(GCClibdir)) { -+ // Find subdirectory, should be the version of MinGW-w64 GCC -+ std::error_code EC; -+ llvm::sys::fs::directory_iterator entry(StringRef(GCClibdir), EC); -+ if (!EC) -+ GCCVersion = llvm::sys::path::filename(entry->path()); -+ // TODO report error: "no MinGW-w64 GCC installation found" -+ } -+ -+#ifdef LLVM_ON_WIN32 -+ // assume sysrooted compiler -+ getFilePaths().push_back(getDriver().Dir + "/../lib"); -+ getFilePaths().push_back(getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/lib"); -+ getFilePaths().push_back(getDriver().Dir + "/../lib/gcc/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/" + GCCVersion); -+ -+#else -+ // assume install prefix /usr -+ getFilePaths().push_back(getDriver().SysRoot + "/usr/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/lib"); -+ getFilePaths().push_back(getDriver().SysRoot + "/usr/lib/gcc/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/" + GCCVersion); -+#endif -+} -+ -+Tool *MinGW::buildLinker() const { -+ return new tools::MinGW::Link(*this); -+} -+ -+bool MinGW::IsIntegratedAssemblerDefault() const { -+ return true; -+} -+ -+Tool *MinGW::getTool(Action::ActionClass AC) const { -+ switch (AC) { -+ case Action::PreprocessJobClass: -+ if (!Preprocess) -+ Preprocess.reset(new tools::gcc::Preprocessor(*this)); -+ return Preprocess.get(); -+ case Action::CompileJobClass: -+ if (!Compile) -+ Compile.reset(new tools::gcc::Compiler(*this)); -+ return Compile.get(); -+ default: -+ return ToolChain::getTool(AC); -+ } -+} -+ -+Tool *MinGW::buildAssembler() const { -+ return new tools::MinGW::Assemble(*this); -+} -+ -+bool MinGW::IsUnwindTablesDefault() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+bool MinGW::isPICDefault() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+bool MinGW::isPIEDefault() const { -+ return false; -+} -+ -+ -+bool MinGW::isPICDefaultForced() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+void MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, -+ ArgStringList &CC1Args) const { -+ if (DriverArgs.hasArg(options::OPT_nostdinc)) -+ return; -+ -+ if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { -+ SmallString<128> P(getDriver().ResourceDir); -+ llvm::sys::path::append(P, "include"); -+ addSystemInclude(DriverArgs, CC1Args, P.str()); -+ } -+ -+ if (DriverArgs.hasArg(options::OPT_nostdlibinc)) -+ return; -+ -+#ifdef LLVM_ON_WIN32 -+ // Clang runs on Windows, assume sysroot toolchain -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include"); -+ // Add users standard include directory -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include"); -+#else -+ // Clang runs somewhere else, e.g. Linux, assume install prefix /usr -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include"); -+#endif -+} -+ -+void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, -+ ArgStringList &CC1Args) const { -+ if (DriverArgs.hasArg(options::OPT_nostdlibinc) || -+ DriverArgs.hasArg(options::OPT_nostdincxx)) -+ return; -+ -+ // Check if libc++ has been enabled and provide its include paths if so. -+ if (GetCXXStdlibType(DriverArgs) == ToolChain::CST_Libcxx) { -+ // libc++ is always installed at a fixed path on Linux currently. -+#ifdef LLVM_ON_WIN32 -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/v1"); -+#else -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/include/c++/v1"); -+#endif -+ return; -+ } -+#ifdef LLVM_ON_WIN32 -+ // Assume sysroot toolchain -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion -+ + "/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion -+ + "/backward"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/backward"); -+#else -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion -+ + "/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion + "/backward"); -+#endif -+} -diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h -index 4f50af0..dc32f6e 100644 ---- a/lib/Driver/ToolChains.h -+++ b/lib/Driver/ToolChains.h -@@ -525,6 +525,35 @@ protected: - Tool *buildLinker() const override; - }; - -+class LLVM_LIBRARY_VISIBILITY MinGW : public ToolChain { -+public: -+ MinGW(const Driver &D, const llvm::Triple &Triple, -+ const llvm::opt::ArgList &Args); -+ -+ bool IsIntegratedAssemblerDefault() const override; -+ bool IsUnwindTablesDefault() const override; -+ bool isPICDefault() const override; -+ bool isPIEDefault() const override; -+ bool isPICDefaultForced() const override; -+ -+ void -+ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, -+ llvm::opt::ArgStringList &CC1Args) const override; -+ void -+ AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, -+ llvm::opt::ArgStringList &CC1Args) const override; -+ -+protected: -+ Tool *buildLinker() const override; -+ Tool *buildAssembler() const override; -+ Tool *getTool(Action::ActionClass AC) const override; -+ -+private: -+ std::string GCCVersion; -+ mutable std::unique_ptr Preprocess; -+ mutable std::unique_ptr Compile; -+}; -+ - class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic_ELF { - public: - OpenBSD(const Driver &D, const llvm::Triple &Triple, +@@ -1527,6 +1527,7 @@ def private__bundle : Flag<["-"], "private_bundle">; + def pthreads : Flag<["-"], "pthreads">; + def pthread : Flag<["-"], "pthread">, Flags<[CC1Option]>, + HelpText<"Support POSIX threads in generated code">; ++def no_pthread : Flag<["-"], "no-pthread">, Flags<[CC1Option]>; + def p : Flag<["-"], "p">; + def pie : Flag<["-"], "pie">; + def read__only__relocs : Separate<["-"], "read_only_relocs">; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 1b990cf..605e935 100644 +index a2955db..7e38039 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp -@@ -8774,6 +8774,211 @@ std::unique_ptr visualstudio::Compiler::GetCommand( - CmdArgs); +@@ -2231,8 +2231,7 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, + + // Until ARM libraries are build separately, we have them all in one library + static StringRef getArchNameForCompilerRTLib(const ToolChain &TC) { +- if (TC.getTriple().isOSWindows() && +- !TC.getTriple().isWindowsItaniumEnvironment() && ++ if (TC.getTriple().isWindowsMSVCEnvironment() && + TC.getArch() == llvm::Triple::x86) + return "i386"; + if (TC.getArch() == llvm::Triple::arm || TC.getArch() == llvm::Triple::armeb) +@@ -2258,10 +2257,12 @@ SmallString<128> tools::getCompilerRT(const ToolChain &TC, StringRef Component, + : ""; + + bool IsOSWindows = TC.getTriple().isOSWindows(); ++ bool IsITANMSVCWindows = TC.getTriple().isWindowsMSVCEnvironment() || ++ TC.getTriple().isWindowsItaniumEnvironment(); + StringRef Arch = getArchNameForCompilerRTLib(TC); +- const char *Prefix = IsOSWindows ? "" : "lib"; ++ const char *Prefix = IsITANMSVCWindows ? "" : "lib"; + const char *Suffix = +- Shared ? (IsOSWindows ? ".dll" : ".so") : (IsOSWindows ? ".lib" : ".a"); ++ Shared ? (IsOSWindows ? ".dll" : ".so") : (IsITANMSVCWindows ? ".lib" : ".a"); + + SmallString<128> Path = getCompilerRTLibDir(TC); + llvm::sys::path::append(Path, Prefix + Twine("clang_rt.") + Component + "-" + +@@ -8825,19 +8826,24 @@ void MinGW::Assembler::ConstructJob(Compilation &C, const JobAction &JA, + SplitDebugName(Args, Inputs[0])); } -+/// MinGW Tools -+void MinGW::Assemble::ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const ArgList &Args, -+ const char *LinkingOutput) const { -+ ArgStringList CmdArgs; -+ -+ if (getToolChain().getArch() == llvm::Triple::x86) { -+ CmdArgs.push_back("--32"); -+ } else if (getToolChain().getArch() == llvm::Triple::x86_64) { -+ CmdArgs.push_back("--64"); -+ } -+ -+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, -+ options::OPT_Xassembler); -+ -+ CmdArgs.push_back("-o"); -+ CmdArgs.push_back(Output.getFilename()); -+ -+ for (const auto &II : Inputs) -+ CmdArgs.push_back(II.getFilename()); -+ -+ const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as")); -+ C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); -+ -+ if (Args.hasArg(options::OPT_gsplit_dwarf)) -+ SplitDebugInfo(getToolChain(), C, *this, JA, Args, Output, -+ SplitDebugName(Args, Inputs[0])); -+} -+ -+void MinGW::Link::AddLibGCC(const ArgList &Args, ArgStringList &CmdArgs) const { -+ if (Args.hasArg(options::OPT_mthreads)) -+ CmdArgs.push_back("-lmingwthrd"); -+ CmdArgs.push_back("-lmingw32"); -+ if (Args.hasArg(options::OPT_shared) || -+ Args.hasArg(options::OPT_shared_libgcc)) { -+ CmdArgs.push_back("-lgcc_s"); -+ CmdArgs.push_back("-lgcc"); -+ } else { -+ CmdArgs.push_back("-lgcc"); -+ CmdArgs.push_back("-lgcc_eh"); -+ } -+ CmdArgs.push_back("-lmoldname"); -+ CmdArgs.push_back("-lmingwex"); -+ CmdArgs.push_back("-lmsvcrt"); -+} -+ -+void MinGW::Link::ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const ArgList &Args, -+ const char *LinkingOutput) const { -+ const ToolChain &TC = getToolChain(); -+ const Driver &D = TC.getDriver(); -+ //const SanitizerArgs &Sanitize = TC.getSanitizerArgs(); -+ -+ ArgStringList CmdArgs; -+ -+ // Silence warning for "clang -g foo.o -o foo" -+ Args.ClaimAllArgs(options::OPT_g_Group); -+ // and "clang -emit-llvm foo.o -o foo" -+ Args.ClaimAllArgs(options::OPT_emit_llvm); -+ // and for "clang -w foo.o -o foo". Other warning options are already -+ // handled somewhere else. -+ Args.ClaimAllArgs(options::OPT_w); -+ -+ if (!D.SysRoot.empty()) -+ CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); -+ -+ if (Args.hasArg(options::OPT_s)) -+ CmdArgs.push_back("-s"); -+ -+ CmdArgs.push_back("-m"); -+ if (TC.getArch() == llvm::Triple::x86) -+ CmdArgs.push_back("i386pe"); -+ if (TC.getArch() == llvm::Triple::x86_64) -+ CmdArgs.push_back("i386pep"); -+ -+ if (Args.hasArg(options::OPT_mwindows)) { -+ CmdArgs.push_back("--subsystem"); -+ CmdArgs.push_back("windows"); -+ } else if (Args.hasArg(options::OPT_mconsole)) { -+ CmdArgs.push_back("--subsystem"); -+ CmdArgs.push_back("console"); -+ } -+ -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("-Bstatic"); -+ else { -+ if (Args.hasArg(options::OPT_mdll)) -+ CmdArgs.push_back("--dll"); -+ else if (Args.hasArg(options::OPT_shared)) -+ CmdArgs.push_back("--shared"); -+ CmdArgs.push_back("-Bdynamic"); -+ if (Args.hasArg(options::OPT_mdll) || Args.hasArg(options::OPT_shared)) { -+ CmdArgs.push_back("-e"); -+ if (TC.getArch() == llvm::Triple::x86) -+ CmdArgs.push_back("_DllMainCRTStartup@12"); -+ else -+ CmdArgs.push_back("DllMainCRTStartup"); -+ CmdArgs.push_back("--enable-auto-image-base"); -+ } -+ } -+ -+ CmdArgs.push_back("-o"); -+ CmdArgs.push_back(Output.getFilename()); -+ -+ Args.AddAllArgs(CmdArgs, options::OPT_e); -+ // FIXME: add -N, -n flags -+ Args.AddLastArg(CmdArgs, options::OPT_r); -+ Args.AddLastArg(CmdArgs, options::OPT_s); -+ Args.AddLastArg(CmdArgs, options::OPT_t); -+ Args.AddAllArgs(CmdArgs, options::OPT_u_Group); -+ Args.AddLastArg(CmdArgs, options::OPT_Z_Flag); -+ -+ if (!Args.hasArg(options::OPT_nostdlib) && -+ !Args.hasArg(options::OPT_nostartfiles)) { -+ if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_mdll)) { -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("dllcrt2.o"))); +-void MinGW::Linker::AddLibGCC(const ArgList &Args, +- ArgStringList &CmdArgs) const { ++void MinGW::Linker::AddRuntime(const ToolChain &TC, const ArgList &Args, ++ ArgStringList &CmdArgs) const { + if (Args.hasArg(options::OPT_mthreads)) + CmdArgs.push_back("-lmingwthrd"); + CmdArgs.push_back("-lmingw32"); +- if (Args.hasArg(options::OPT_shared) || +- Args.hasArg(options::OPT_shared_libgcc) || +- !Args.hasArg(options::OPT_static_libgcc)) { +- CmdArgs.push_back("-lgcc_s"); +- CmdArgs.push_back("-lgcc"); +- } else { +- CmdArgs.push_back("-lgcc"); +- CmdArgs.push_back("-lgcc_eh"); ++ StringRef Runtime = Args.getLastArgValue(options::OPT_rtlib_EQ, "compiler-rt"); ++ if (Runtime.equals_lower("compiler-rt")) ++ CmdArgs.push_back(Args.MakeArgString(getCompilerRT(TC, "builtins"))); ++ if (Runtime.equals_lower("libgcc")) { ++ if (Args.hasArg(options::OPT_shared) || ++ Args.hasArg(options::OPT_shared_libgcc) || ++ !Args.hasArg(options::OPT_static_libgcc)) { ++ CmdArgs.push_back("-lgcc_s"); ++ CmdArgs.push_back("-lgcc"); + } else { -+ if (Args.hasArg(options::OPT_municode)) -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crt2u.o"))); -+ else -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crt2.o"))); ++ CmdArgs.push_back("-lgcc"); ++ CmdArgs.push_back("-lgcc_eh"); + } -+ if (Args.hasArg(options::OPT_pg)) -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("gcrt2.o"))); -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtbegin.o"))); + } + CmdArgs.push_back("-lmoldname"); + CmdArgs.push_back("-lmingwex"); +@@ -8863,6 +8869,13 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, + // handled somewhere else. + Args.ClaimAllArgs(options::OPT_w); + ++ // We default to lld and not ld because we are badass like that :) ++ StringRef Linker = Args.getLastArgValue(options::OPT_fuse_ld_EQ, "lld"); ++ if (Linker.equals_lower("lld")) { ++ CmdArgs.push_back("-flavor"); ++ CmdArgs.push_back("gnu"); + } + -+ Args.AddAllArgs(CmdArgs, options::OPT_L); -+ const ToolChain::path_list Paths = TC.getFilePaths(); -+ for (const auto &Path : Paths) -+ CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + Path)); -+ -+ AddLinkerInputs(TC, Inputs, Args, CmdArgs); -+ -+ // TODO: Add ASan stuff here -+ -+ // TODO: Add profile stuff here -+ -+ if (D.CCCIsCXX() && -+ !Args.hasArg(options::OPT_nostdlib) && -+ !Args.hasArg(options::OPT_nodefaultlibs)) { -+ bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) && -+ !Args.hasArg(options::OPT_static); -+ if (OnlyLibstdcxxStatic) -+ CmdArgs.push_back("-Bstatic"); -+ TC.AddCXXStdlibLibArgs(Args, CmdArgs); -+ if (OnlyLibstdcxxStatic) -+ CmdArgs.push_back("-Bdynamic"); -+ } -+ -+ if (!Args.hasArg(options::OPT_nostdlib)) { -+ if (!Args.hasArg(options::OPT_nodefaultlibs)) { -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("--start-group"); -+ -+ if (Args.hasArg(options::OPT_fstack_protector) || -+ Args.hasArg(options::OPT_fstack_protector_strong) || -+ Args.hasArg(options::OPT_fstack_protector_all)) { -+ CmdArgs.push_back("-lssp_nonshared"); -+ CmdArgs.push_back("-lssp"); -+ } -+ if (Args.hasArg(options::OPT_fopenmp)) -+ CmdArgs.push_back("-lgomp"); -+ -+ AddLibGCC(Args, CmdArgs); -+ -+ if (Args.hasArg(options::OPT_pg)) -+ CmdArgs.push_back("-lgmon"); -+ -+ // TODO: remove unconditionally linking pthreads library -+ // Currently required for OpenMP and posix-threading libgcc -+ CmdArgs.push_back("-lpthread"); -+ -+ // add system libraries -+ if (Args.hasArg(options::OPT_mwindows)) { -+ CmdArgs.push_back("-lgdi32"); -+ CmdArgs.push_back("-lcomdlg32"); -+ } -+ CmdArgs.push_back("-ladvapi32"); -+ CmdArgs.push_back("-lshell32"); -+ CmdArgs.push_back("-luser32"); -+ CmdArgs.push_back("-lkernel32"); -+ -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("--end-group"); -+ else -+ AddLibGCC(Args, CmdArgs); -+ } -+ -+ if (!Args.hasArg(options::OPT_nostartfiles)) { -+ // Add crtfastmath.o if available and fast math is enabled. -+ TC.AddFastMathRuntimeIfAvailable(Args, CmdArgs); -+ -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend.o"))); -+ } -+ } -+ const char *Exec = -+ Args.MakeArgString(TC.GetProgramPath("ld")); -+ C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); -+} -+ - /// XCore Tools - // We pass assemble and link construction to the xcc tool. + if (!D.SysRoot.empty()) + CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); + +@@ -8874,6 +8887,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, + CmdArgs.push_back("i386pe"); + if (TC.getArch() == llvm::Triple::x86_64) + CmdArgs.push_back("i386pep"); ++ if (TC.getArch() == llvm::Triple::arm) ++ CmdArgs.push_back("thumb2pe"); + + if (Args.hasArg(options::OPT_mwindows)) { + CmdArgs.push_back("--subsystem"); +@@ -8963,7 +8978,7 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, + if (Args.hasArg(options::OPT_fopenmp)) + CmdArgs.push_back("-lgomp"); + +- AddLibGCC(Args, CmdArgs); ++ AddRuntime(TC, Args, CmdArgs); + + if (Args.hasArg(options::OPT_pg)) + CmdArgs.push_back("-lgmon"); +@@ -8971,7 +8986,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, + // FIXME: what to do about pthreads library? + // Currently required for OpenMP and posix-threading libgcc, + // does not exists in mingw.org. +- //CmdArgs.push_back("-lpthread"); ++ if (!Args.hasArg(options::OPT_no_pthread)) ++ CmdArgs.push_back("-lpthread"); + + // add system libraries + if (Args.hasArg(options::OPT_mwindows)) { +@@ -8985,8 +9001,9 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, + + if (Args.hasArg(options::OPT_static)) + CmdArgs.push_back("--end-group"); +- else +- AddLibGCC(Args, CmdArgs); ++ else //lld is more robust at looking up symbols ++ if (Linker.equals_lower("ld")) ++ AddRuntime(TC, Args, CmdArgs); + } + + if (!Args.hasArg(options::OPT_nostartfiles)) { +@@ -8996,7 +9013,7 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, + CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend.o"))); + } + } +- const char *Exec = Args.MakeArgString(TC.GetProgramPath("ld")); ++ const char *Exec = Args.MakeArgString(TC.GetProgramPath(Linker.data())); + C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); + } diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h -index d57df1c..fdfcb2d 100644 +index 52ab731..d2e146b 100644 --- a/lib/Driver/Tools.h +++ b/lib/Driver/Tools.h -@@ -672,6 +672,39 @@ public: - }; - } // end namespace visualstudio +@@ -702,7 +702,7 @@ public: + const char *LinkingOutput) const override; -+ /// MinGW -- Directly call GNU Binutils assembler and linker -+namespace MinGW { -+ class LLVM_LIBRARY_VISIBILITY Assemble : public Tool { -+ public: -+ Assemble(const ToolChain &TC) : Tool("MinGW::Assemble", "assembler", -+ TC) {} -+ -+ bool hasIntegratedCPP() const override { return false; } -+ -+ void ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const llvm::opt::ArgList &TCArgs, -+ const char *LinkingOutput) const override; -+ }; -+ -+ class LLVM_LIBRARY_VISIBILITY Link : public Tool { -+ public: -+ Link(const ToolChain &TC) : Tool("MinGW::Link", "linker", TC) {} -+ -+ bool hasIntegratedCPP() const override { return false; } -+ bool isLinkJob() const override { return true; } -+ -+ void ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const llvm::opt::ArgList &TCArgs, -+ const char *LinkingOutput) const override; -+ private: -+ void AddLibGCC(const llvm::opt::ArgList &Args, ArgStringList &CmdArgs) const; -+ }; -+} // end namespace MinGW -+ - namespace arm { - StringRef getARMFloatABI(const Driver &D, const llvm::opt::ArgList &Args, - const llvm::Triple &Triple); -diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp -index bf8470e..ab81a54 100644 ---- a/lib/Frontend/InitHeaderSearch.cpp -+++ b/lib/Frontend/InitHeaderSearch.cpp -@@ -82,11 +82,6 @@ public: - StringRef Arch, - StringRef Version); + private: +- void AddLibGCC(const llvm::opt::ArgList &Args, ArgStringList &CmdArgs) const; ++ void AddRuntime(const ToolChain &TC, const llvm::opt::ArgList &Args, ArgStringList &CmdArgs) const; + }; + } // end namespace MinGW -- /// AddMinGW64CXXPaths - Add the necessary paths to support -- /// libstdc++ of x86_64-w64-mingw32 aka mingw-w64. -- void AddMinGW64CXXPaths(StringRef Base, -- StringRef Version); -- - // AddDefaultCIncludePaths - Add paths that should always be searched. - void AddDefaultCIncludePaths(const llvm::Triple &triple, - const HeaderSearchOptions &HSOpts); -@@ -208,18 +203,6 @@ void InitHeaderSearch::AddMinGWCPlusPlusIncludePaths(StringRef Base, - CXXSystem, false); - } - --void InitHeaderSearch::AddMinGW64CXXPaths(StringRef Base, -- StringRef Version) { -- // Assumes Base is HeaderSearchOpts' ResourceDir -- AddPath(Base + "/../../../include/c++/" + Version, -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/x86_64-w64-mingw32", -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/i686-w64-mingw32", -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/backward", -- CXXSystem, false); --} - - void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - const HeaderSearchOptions &HSOpts) { -@@ -233,6 +216,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - case llvm::Triple::OpenBSD: - case llvm::Triple::Bitrig: - case llvm::Triple::NaCl: -+ case llvm::Triple::Win32: - break; - default: - // FIXME: temporary hack: hard-coded paths. -@@ -271,7 +255,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - switch (os) { - case llvm::Triple::Linux: - llvm_unreachable("Include management is handled in the driver."); -- -+ break; - case llvm::Triple::CloudABI: { - // //include - SmallString<128> P = StringRef(HSOpts.ResourceDir); -@@ -319,30 +303,12 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - case llvm::Triple::Win32: - switch (triple.getEnvironment()) { - default: llvm_unreachable("Include management is handled in the driver."); -+ break; - case llvm::Triple::Cygnus: - AddPath("/usr/include/w32api", System, false); -+ AddPath("/usr/include", ExternCSystem, false); - break; - case llvm::Triple::GNU: -- // mingw-w64 crt include paths -- // /i686-w64-mingw32/include -- SmallString<128> P = StringRef(HSOpts.ResourceDir); -- llvm::sys::path::append(P, "../../../i686-w64-mingw32/include"); -- AddPath(P, System, false); -- -- // /x86_64-w64-mingw32/include -- P.resize(HSOpts.ResourceDir.size()); -- llvm::sys::path::append(P, "../../../x86_64-w64-mingw32/include"); -- AddPath(P, System, false); -- -- // mingw.org crt include paths -- // /include -- P.resize(HSOpts.ResourceDir.size()); -- llvm::sys::path::append(P, "../../../include"); -- AddPath(P, System, false); -- AddPath("/mingw/include", System, false); --#if defined(LLVM_ON_WIN32) -- AddPath("c:/mingw/include", System, false); --#endif - break; - } - break; -@@ -354,6 +320,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - case llvm::Triple::CloudABI: - case llvm::Triple::RTEMS: - case llvm::Triple::NaCl: -+ case llvm::Triple::Win32: - break; - default: - AddPath("/usr/include", ExternCSystem, false); -@@ -420,26 +387,9 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp - AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.2"); - break; - case llvm::Triple::GNU: -- // mingw-w64 C++ include paths (i686-w64-mingw32 and x86_64-w64-mingw32) -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.0"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.1"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.2"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.3"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.0"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.1"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.2"); -- // mingw.org C++ include paths --#if defined(LLVM_ON_WIN32) -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.0"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.1"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.2"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.3"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.0"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.1"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.2"); --#endif - break; - } -+ break; - case llvm::Triple::DragonFly: - if (llvm::sys::fs::exists("/usr/lib/gcc47")) - AddPath("/usr/include/c++/4.7", CXXSystem, false); -- 2.4.5 diff --git a/mingw-w64-clang-svn/0017-fix-dcelspec-for-mingw-and-cygwin.diff b/mingw-w64-clang-svn/0017-fix-dcelspec-for-mingw-and-cygwin.diff new file mode 100644 index 0000000000..8777100573 --- /dev/null +++ b/mingw-w64-clang-svn/0017-fix-dcelspec-for-mingw-and-cygwin.diff @@ -0,0 +1,43 @@ +r238238 breaks mingw-w64 and cygwin __declspec +http://comments.gmane.org/gmane.comp.compilers.clang.scm/123167 +Temp patch to hack around it + +diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp +index 33382ce..d89317f 100644 +--- a/lib/Basic/Targets.cpp ++++ b/lib/Basic/Targets.cpp +@@ -3595,11 +3595,8 @@ public: + }; + } // end anonymous namespace + +-static void addMinGWDefines(const LangOptions &Opts, MacroBuilder &Builder) { +- Builder.defineMacro("__MSVCRT__"); +- Builder.defineMacro("__MINGW32__"); +- +- // Mingw defines __declspec(a) to __attribute__((a)). Clang supports ++static void addCygMingDefines(const LangOptions &Opts, MacroBuilder &Builder) { ++ // Mingw and cygwin define __declspec(a) to __attribute__((a)). Clang supports + // __declspec natively under -fms-extensions, but we define a no-op __declspec + // macro anyway for pre-processor compatibility. + if (Opts.MicrosoftExt) +@@ -3622,6 +3619,12 @@ static void addMinGWDefines(const LangOptions &Opts, MacroBuilder &Builder) { + } + } + ++static void addMinGWDefines(const LangOptions &Opts, MacroBuilder &Builder) { ++ Builder.defineMacro("__MSVCRT__"); ++ Builder.defineMacro("__MINGW32__"); ++ addCygMingDefines(Opts, Builder); ++} ++ + namespace { + // x86-32 MinGW target + class MinGWX86_32TargetInfo : public WindowsX86_32TargetInfo { +@@ -3654,6 +3657,7 @@ public: + Builder.defineMacro("_X86_"); + Builder.defineMacro("__CYGWIN__"); + Builder.defineMacro("__CYGWIN32__"); ++ addCygMingDefines(Opts, Builder); + DefineStd(Builder, "unix", Opts); + if (Opts.CPlusPlus) + Builder.defineMacro("_GNU_SOURCE"); \ No newline at end of file diff --git a/mingw-w64-clang-svn/0021-add-support-for-mingw-w64-in-builtins.patch b/mingw-w64-clang-svn/0021-add-support-for-mingw-w64-in-builtins.patch new file mode 100644 index 0000000000..1d6b11ea5c --- /dev/null +++ b/mingw-w64-clang-svn/0021-add-support-for-mingw-w64-in-builtins.patch @@ -0,0 +1,83 @@ +From 0efb0ea1f9de0c9c231e8498da175c419f7d1f0d Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 2 Jul 2015 03:38:19 +0100 +Subject: [PATCH] add support for mingw-w64 in builtins + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index edad9f9..d13cafb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -164,7 +164,7 @@ set(COMPILER_RT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) + # We support running instrumented tests when we're not cross compiling + # and target a UNIX-like system or Windows. + # We can run tests on Android even when we are cross-compiling. +-if(("${CMAKE_HOST_SYSTEM}" STREQUAL "${CMAKE_SYSTEM}" AND (UNIX OR MSVC)) OR ANDROID ++if(("${CMAKE_HOST_SYSTEM}" STREQUAL "${CMAKE_SYSTEM}" AND (UNIX OR WIN32)) OR ANDROID + OR COMPILER_RT_EMULATOR) + option(COMPILER_RT_CAN_EXECUTE_TESTS "Can we execute instrumented tests" ON) + else() +diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt +index d79feae..58e3fd3 100644 +--- a/lib/builtins/CMakeLists.txt ++++ b/lib/builtins/CMakeLists.txt +@@ -260,7 +260,7 @@ set(arm_SOURCES + + add_custom_target(builtins) + +-if (NOT WIN32) ++if (NOT MSVC) + foreach (arch x86_64 i386 i686 arm) + if (CAN_TARGET_${arch}) + # Filter out generic versions of routines that are re-implemented in +diff --git a/lib/builtins/enable_execute_stack.c b/lib/builtins/enable_execute_stack.c +index 63d836b..3ee48c5 100644 +--- a/lib/builtins/enable_execute_stack.c ++++ b/lib/builtins/enable_execute_stack.c +@@ -10,7 +10,9 @@ + + #include "int_lib.h" + ++#ifndef _WIN32 + #include ++#endif + + /* #include "config.h" + * FIXME: CMake - include when cmake system is ready. +@@ -18,9 +20,14 @@ + */ + #define HAVE_SYSCONF 1 + ++#ifdef _WIN32 ++#include ++#include ++#else + #ifndef __APPLE__ + #include + #endif /* __APPLE__ */ ++#endif /* _WIN32 */ + + #if __LP64__ + #define TRAMPOLINE_SIZE 48 +@@ -40,6 +47,12 @@ COMPILER_RT_ABI void + __enable_execute_stack(void* addr) + { + ++#if _WIN32 ++ MEMORY_BASIC_INFORMATION mbi; ++ if (!VirtualQuery (addr, &mbi, sizeof(mbi))) ++ return; /* We should probably assert here because there is no return value */ ++ VirtualProtect (mbi.BaseAddress, mbi.RegionSize, PAGE_EXECUTE_READWRITE, &mbi.Protect); ++#else + #if __APPLE__ + /* On Darwin, pagesize is always 4096 bytes */ + const uintptr_t pageSize = 4096; +@@ -55,4 +68,5 @@ __enable_execute_stack(void* addr) + unsigned char* endPage = (unsigned char*)((p+TRAMPOLINE_SIZE+pageSize) & pageAlignMask); + size_t length = endPage - startPage; + (void) mprotect((void *)startPage, length, PROT_READ | PROT_WRITE | PROT_EXEC); ++#endif + } +-- +2.4.5 + diff --git a/mingw-w64-clang-svn/0022-builtins-implement-_chkstk-routine-for-windows.patch b/mingw-w64-clang-svn/0022-builtins-implement-_chkstk-routine-for-windows.patch new file mode 100644 index 0000000000..04b91d4377 --- /dev/null +++ b/mingw-w64-clang-svn/0022-builtins-implement-_chkstk-routine-for-windows.patch @@ -0,0 +1,124 @@ +From 72e860f184e4ae699a4afedd87294cc7664e6918 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 2 Jul 2015 19:49:51 +0100 +Subject: [PATCH] builtins: implement _chkstk routine for windows + + +diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt +index 58e3fd3..007cf73 100644 +--- a/lib/builtins/CMakeLists.txt ++++ b/lib/builtins/CMakeLists.txt +@@ -154,6 +154,12 @@ set(x86_64_SOURCES + x86_64/floatundixf.S + ${GENERIC_SOURCES}) + ++if(WIN32) ++ set(x86_64_SOURCES ++ ${x86_64_SOURCES} ++ x86_64/chkstk.S) ++endif() ++ + set(i386_SOURCES + i386/ashldi3.S + i386/ashrdi3.S +@@ -171,6 +177,12 @@ set(i386_SOURCES + i386/umoddi3.S + ${GENERIC_SOURCES}) + ++if(WIN32) ++ set(i386_SOURCES ++ ${i386_SOURCES} ++ i386/chkstk.S) ++endif() ++ + set(i686_SOURCES + ${i386_SOURCES}) + +diff --git a/lib/builtins/i386/chkstk.S b/lib/builtins/i386/chkstk.S +new file mode 100644 +index 0000000..5fed614 +--- /dev/null ++++ b/lib/builtins/i386/chkstk.S +@@ -0,0 +1,34 @@ ++// This file is dual licensed under the MIT and the University of Illinois Open ++// Source Licenses. See LICENSE.TXT for details. ++ ++#include "../assembly.h" ++ ++// _chkstk routine ++// This routine is windows specific ++// http://msdn.microsoft.com/en-us/library/ms648426.aspx ++ ++#ifdef __i386__ ++ ++.text ++.balign 4 ++DEFINE_COMPILERRT_FUNCTION(__chkstk_ms) ++ push %ecx ++ push %eax ++ cmp $0x1000,%eax ++ lea 12(%esp),%ecx ++ jb 1f ++2: ++ sub $0x1000,%ecx ++ orl $0,(%ecx) ++ sub $0x1000,%eax ++ cmp $0x1000,%eax ++ ja 2b ++1: ++ sub %eax,%ecx ++ orl $0,(%ecx) ++ pop %eax ++ pop %ecx ++ ret ++END_COMPILERRT_FUNCTION(__chkstk_ms) ++ ++#endif // __i386__ +diff --git a/lib/builtins/x86_64/chkstk.S b/lib/builtins/x86_64/chkstk.S +new file mode 100644 +index 0000000..89b4579 +--- /dev/null ++++ b/lib/builtins/x86_64/chkstk.S +@@ -0,0 +1,39 @@ ++// This file is dual licensed under the MIT and the University of Illinois Open ++// Source Licenses. See LICENSE.TXT for details. ++ ++#include "../assembly.h" ++ ++// _chkstk routine ++// This routine is windows specific ++// http://msdn.microsoft.com/en-us/library/ms648426.aspx ++ ++// Notes from r227519 ++// MSVC x64s __chkstk and cygmings ___chkstk_ms do not adjust %rsp ++// themselves. It also does not clobber %rax so we can reuse it when ++// adjusting %rsp. ++ ++#ifdef __x86_64__ ++ ++.text ++.balign 4 ++DEFINE_COMPILERRT_FUNCTION(___chkstk_ms) ++ push %rcx ++ push %rax ++ cmp $0x1000,%rax ++ lea 24(%rsp),%rcx ++ jb 1f ++2: ++ sub $0x1000,%rcx ++ orl $0,(%ecx) ++ sub $0x1000,%rax ++ cmp $0x1000,%rax ++ ja 2b ++1: ++ sub %rax,%rcx ++ orl $0,(%rcx) ++ pop %rax ++ pop %rcx ++ ret ++END_COMPILERRT_FUNCTION(___chkstk_ms) ++ ++#endif // __x86_64__ +-- +2.4.5 + diff --git a/mingw-w64-clang-svn/0031-COFF-add-the-mingw-alias-for-ImageBase.patch b/mingw-w64-clang-svn/0031-COFF-add-the-mingw-alias-for-ImageBase.patch new file mode 100644 index 0000000000..b609b3b97a --- /dev/null +++ b/mingw-w64-clang-svn/0031-COFF-add-the-mingw-alias-for-ImageBase.patch @@ -0,0 +1,24 @@ +From 0d44d5c00062f57a17eec0ca61e6590ab09d816d Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 8 Jun 2015 02:14:25 +0100 +Subject: [PATCH 1/4] COFF: add the mingw alias for ImageBase + +--- + COFF/SymbolTable.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/COFF/SymbolTable.cpp b/COFF/SymbolTable.cpp +index a90e208..e301b6a 100644 +--- a/COFF/SymbolTable.cpp ++++ b/COFF/SymbolTable.cpp +@@ -23,6 +23,7 @@ namespace coff { + + SymbolTable::SymbolTable() { + resolve(new (Alloc) DefinedAbsolute("__ImageBase", Config->ImageBase)); ++ resolve(new (Alloc) DefinedAbsolute("__image_base__", Config->ImageBase)); + if (!Config->EntryName.empty()) + resolve(new (Alloc) Undefined(Config->EntryName)); + } +-- +2.3.3 + diff --git a/mingw-w64-clang-svn/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch b/mingw-w64-clang-svn/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch new file mode 100644 index 0000000000..2a96e24bd1 --- /dev/null +++ b/mingw-w64-clang-svn/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch @@ -0,0 +1,67 @@ +From dd9f24a90e6f4cbe251280c40d61a99f7ffaee38 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 8 Jun 2015 02:17:26 +0100 +Subject: [PATCH 2/4] PECOFF: add the mingw alias for ImageBase + +--- + lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h | 10 +++++++--- + lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp | 2 +- + lib/ReaderWriter/PECOFF/WriterPECOFF.cpp | 4 +++- + 3 files changed, 11 insertions(+), 5 deletions(-) + +diff --git a/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h b/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h +index cfa66bf..21186f3 100644 +--- a/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h ++++ b/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h +@@ -97,13 +97,17 @@ class LinkerGeneratedSymbolFile : public SimpleFile { + public: + LinkerGeneratedSymbolFile(const PECOFFLinkingContext &ctx) + : SimpleFile(""), +- _imageBaseAtom(*this, ctx.decorateSymbol("__ImageBase"), ++ _imageBaseAtomMSVC(*this, ctx.decorateSymbol("__ImageBase"), ++ Atom::scopeGlobal, ctx.getBaseAddress()), ++ _imageBaseAtomGNU(*this, ctx.decorateSymbol("__image_base__"), + Atom::scopeGlobal, ctx.getBaseAddress()) { +- addAtom(_imageBaseAtom); ++ addAtom(_imageBaseAtomMSVC); ++ addAtom(_imageBaseAtomGNU); + }; + + private: +- SimpleAbsoluteAtom _imageBaseAtom; ++ SimpleAbsoluteAtom _imageBaseAtomMSVC; ++ SimpleAbsoluteAtom _imageBaseAtomGNU; + }; + + // A LocallyImporteSymbolFile is an archive file containing __imp_ +diff --git a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp +index ebd42f8..2bd0e9c 100644 +--- a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp ++++ b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp +@@ -146,7 +146,7 @@ void PECOFFLinkingContext::createImplicitFiles( + llvm::make_unique(*this))); + members.insert(members.begin() + getGroupStartPos(members), std::move(entry)); + +- // Create a file for __ImageBase. ++ // Create a file for __ImageBase and __image_base__. + std::unique_ptr fileNode(new FileNode( + llvm::make_unique(*this))); + members.push_back(std::move(fileNode)); +diff --git a/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp b/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp +index 8c3aac0..63d0dad 100644 +--- a/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp ++++ b/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp +@@ -791,7 +791,9 @@ void AtomChunk::addBaseRelocations(std::vector &relocSites) const { + // because that's relative to run-time image base address. + if (auto *abs = dyn_cast(ref->target())) + if (!abs->name().equals("__ImageBase") && +- !abs->name().equals("___ImageBase")) ++ !abs->name().equals("___ImageBase") && ++ !abs->name().equals("__image_base__") && ++ !abs->name().equals("___image_base__")) + continue; + + uint64_t address = layout->_virtualAddr + ref->offsetInAtom(); +-- +2.3.3 + diff --git a/mingw-w64-clang-svn/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch b/mingw-w64-clang-svn/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch new file mode 100644 index 0000000000..6f23faa3ad --- /dev/null +++ b/mingw-w64-clang-svn/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch @@ -0,0 +1,102 @@ +From ef70aa910f276615977c7b3e61f5c61418208960 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 8 Jun 2015 02:21:51 +0100 +Subject: [PATCH 3/4] PECOFF: add searchLibrary function with sysroot support + +--- + include/lld/ReaderWriter/PECOFFLinkingContext.h | 5 ++++ + lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp | 36 ++++++++++++++++++++++++ + 2 files changed, 41 insertions(+) + +diff --git a/include/lld/ReaderWriter/PECOFFLinkingContext.h b/include/lld/ReaderWriter/PECOFFLinkingContext.h +index 2e19dd8..4f48882 100644 +--- a/include/lld/ReaderWriter/PECOFFLinkingContext.h ++++ b/include/lld/ReaderWriter/PECOFFLinkingContext.h +@@ -105,6 +105,7 @@ public: + _tempFiles.push_back(std::move(fileRemover)); + } + ++ ErrorOr searchLibrary(StringRef libName) const; + StringRef searchLibraryFile(StringRef path) const; + + StringRef decorateSymbol(StringRef name) const; +@@ -321,6 +322,9 @@ public: + return _parseDirectives; + } + ++ StringRef getSysroot() const { return _sysrootPath; } ++ void setSysroot(StringRef path) { _sysrootPath = path; } ++ + protected: + /// Method to create a internal file for the entry symbol + std::unique_ptr createEntrySymbolFile() const override; +@@ -402,6 +406,7 @@ private: + std::set _noDefaultLibs; + + std::vector _inputSearchPaths; ++ StringRef _sysrootPath = ""; + std::unique_ptr _writer; + + // A map for weak aliases. +diff --git a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp +index 2bd0e9c..043fe6f 100644 +--- a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp ++++ b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp +@@ -23,11 +23,16 @@ + #include "llvm/ADT/STLExtras.h" + #include "llvm/ADT/SmallString.h" + #include "llvm/Support/Allocator.h" ++#include "llvm/Support/Errc.h" ++#include "llvm/Support/FileSystem.h" + #include "llvm/Support/Path.h" + #include + #include + #include + ++using llvm::sys::fs::exists; ++using llvm::sys::path::is_absolute; ++ + namespace lld { + + bool PECOFFLinkingContext::validateImpl(raw_ostream &diagnostics) { +@@ -214,6 +219,37 @@ bool PECOFFLinkingContext::addSectionRenaming(raw_ostream &diagnostics, + return true; + } + ++static void buildSearchPath(SmallString<128> &path, StringRef dir, ++ StringRef sysRoot) { ++ if (dir.startswith("=/")) { ++ // If a search directory begins with "=", "=" is replaced ++ // with the sysroot path. ++ path.assign(sysRoot); ++ path.append(dir.substr(1)); ++ } else { ++ path.assign(dir); ++ } ++} ++ ++ErrorOr PECOFFLinkingContext::searchLibrary(StringRef libName) const { ++ bool hasColonPrefix = libName[0] == ':'; ++ SmallString<128> path; ++ for (StringRef dir : _inputSearchPaths) { ++ // Search for static libraries too ++ buildSearchPath(path, dir, _sysrootPath); ++ llvm::sys::path::append(path, hasColonPrefix ++ ? libName.drop_front() ++ : Twine("lib", libName) + ".a"); ++ ++ if (exists(path.str())) ++ return path.str().copy(_allocator); ++ } ++ if (hasColonPrefix && exists(libName.drop_front())) ++ return libName.drop_front(); ++ ++ return make_error_code(llvm::errc::no_such_file_or_directory); ++} ++ + /// Try to find the input library file from the search paths and append it to + /// the input file list. Returns true if the library file is found. + StringRef PECOFFLinkingContext::searchLibraryFile(StringRef filename) const { +-- +2.3.3 + diff --git a/mingw-w64-clang-svn/0034-GNU-add-support-for-linking-PECOFF.patch b/mingw-w64-clang-svn/0034-GNU-add-support-for-linking-PECOFF.patch new file mode 100644 index 0000000000..478533fa28 --- /dev/null +++ b/mingw-w64-clang-svn/0034-GNU-add-support-for-linking-PECOFF.patch @@ -0,0 +1,502 @@ +From 4ae708fdabd2cfc8882cf03d07ab0d5bf22e4964 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 2 Jul 2015 05:35:51 +0100 +Subject: [PATCH] GNU: add support for linking PECOFF + + +diff --git a/include/lld/Driver/Driver.h b/include/lld/Driver/Driver.h +index 160826c..8a276e4 100644 +--- a/include/lld/Driver/Driver.h ++++ b/include/lld/Driver/Driver.h +@@ -67,14 +67,43 @@ class GnuLdDriver : public Driver { + public: + /// Parses command line arguments same as gnu/binutils ld and performs link. + /// Returns true iff an error occurred. +- static bool linkELF(llvm::ArrayRef args, ++ static bool linkGNU(llvm::ArrayRef args, + raw_ostream &diag = llvm::errs()); + + /// Uses gnu/binutils style ld command line options to fill in options struct. ++ /// Parses command line arguments same as gnu/binutils ld and performs link on ELF. ++ /// Returns true iff an error occurred. ++ static bool linkELF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ llvm::Triple &baseTriple, ++ raw_ostream &diag = llvm::errs()); ++ ++ /// Parses command line arguments same as gnu/binutils ld and performs link on PECOFF. ++ /// Returns true iff an error occurred. ++ static bool linkPECOFF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ raw_ostream &diag = llvm::errs()); ++ ++ /// Uses gnu/binutils style ld command line options to fill in options struct for ELF. + /// Returns true iff there was an error. +- static bool parse(llvm::ArrayRef args, +- std::unique_ptr &context, +- raw_ostream &diag = llvm::errs()); ++ static bool parseELF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ llvm::Triple &baseTriple, ++ std::unique_ptr &context, ++ raw_ostream &diag = llvm::errs()); ++ ++ /// Uses gnu/binutils style ld command line options to fill in options struct for PECOFF. ++ /// Returns true iff there was an error. ++ static bool parsePECOFF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ PECOFFLinkingContext &ctx, ++ raw_ostream &diag = llvm::errs(), ++ bool isDirective = false); ++ ++ // Same as parse(), but restricted to the context of directives. ++ static bool parseDirectives(int argc, const char *argv[], ++ PECOFFLinkingContext &info, ++ raw_ostream &diag = llvm::errs()); + + /// Parses a given memory buffer as a linker script and evaluate that. + /// Public function for testing. +diff --git a/lib/Driver/GnuLdDriver.cpp b/lib/Driver/GnuLdDriver.cpp +index fbdc12d..21abb62 100644 +--- a/lib/Driver/GnuLdDriver.cpp ++++ b/lib/Driver/GnuLdDriver.cpp +@@ -15,6 +15,7 @@ + + #include "lld/Driver/Driver.h" + #include "lld/ReaderWriter/ELFLinkingContext.h" ++#include "lld/ReaderWriter/PECOFFLinkingContext.h" + #include "lld/ReaderWriter/LinkerScript.h" + #include "llvm/ADT/ArrayRef.h" + #include "llvm/ADT/Optional.h" +@@ -134,12 +135,61 @@ static bool parseMaxPageSize(StringRef opt, uint64_t &val) { + return true; + } + +-bool GnuLdDriver::linkELF(llvm::ArrayRef args, ++bool GnuLdDriver::linkGNU(llvm::ArrayRef args, + raw_ostream &diag) { + BumpPtrAllocator alloc; + args = maybeExpandResponseFiles(args, alloc); ++ ++ // Parse command line options using GnuLdOptions.td ++ GnuLdOptTable table; ++ unsigned missingIndex; ++ unsigned missingCount; ++ ++ llvm::opt::InputArgList parsedArgs = ++ table.ParseArgs(args.slice(1), missingIndex, missingCount); ++ if (missingCount) { ++ diag << "error: missing arg value for '" ++ << parsedArgs.getArgString(missingIndex) << "' expected " ++ << missingCount << " argument(s).\n"; ++ return false; ++ } ++ ++ // Handle --help ++ if (parsedArgs.hasArg(OPT_help)) { ++ table.PrintHelp(llvm::outs(), args[0], "LLVM Linker", false); ++ return true; ++ } ++ ++ // Use -target or use default target triple to instantiate LinkingContext ++ llvm::Triple baseTriple; ++ if (auto *arg = parsedArgs.getLastArg(OPT_target)) { ++ baseTriple = llvm::Triple(arg->getValue()); ++ } else { ++ baseTriple = getDefaultTarget(args[0]); ++ } ++ llvm::Triple triple(baseTriple); ++ ++ if (!applyEmulation(triple, parsedArgs, diag)) ++ return false; ++ ++ if (triple.getOS() == llvm::Triple::Win32) { ++ if(!linkPECOFF(parsedArgs, triple, diag)) ++ return false; ++ } else { ++ if(!linkELF(parsedArgs, triple, baseTriple, diag)) ++ return false; ++ } ++ ++ return true; ++} ++ ++bool GnuLdDriver::linkELF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ llvm::Triple &baseTriple, ++ raw_ostream &diag) { ++ + std::unique_ptr options; +- if (!parse(args, options, diag)) ++ if (!parseELF(args, triple, baseTriple, options, diag)) + return false; + if (!options) + return true; +@@ -154,8 +204,65 @@ bool GnuLdDriver::linkELF(llvm::ArrayRef args, + return linked; + } + ++bool GnuLdDriver::linkPECOFF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ raw_ostream &diag) { ++ ++ PECOFFLinkingContext ctx; ++ ctx.setParseDirectives(parseDirectives); ++ ctx.registry().addSupportCOFFObjects(ctx); ++ ctx.registry().addSupportCOFFImportLibraries(ctx); ++ ctx.registry().addSupportArchives(ctx.logInputFiles()); ++ ctx.registry().addSupportYamlFiles(); ++ ++ if (!parsePECOFF(args, triple, ctx, diag)) ++ return false; ++ ++ bool linked = link(ctx, diag); ++ return linked; ++} ++ ++bool GnuLdDriver::parseDirectives(int argc, const char *argv[], ++ PECOFFLinkingContext &info, ++ raw_ostream &diag) { ++ ++ llvm::ArrayRef args(argv, argc); ++ GnuLdOptTable table; ++ unsigned missingIndex; ++ unsigned missingCount; ++ ++ llvm::opt::InputArgList parsedArgs = ++ table.ParseArgs(args.slice(1), missingIndex, missingCount); ++ if (missingCount) { ++ diag << "error: missing arg value for '" ++ << parsedArgs.getArgString(missingIndex) << "' expected " ++ << missingCount << " argument(s).\n"; ++ return false; ++ } ++ ++ // Use -target or use default target triple to instantiate LinkingContext ++ llvm::Triple baseTriple; ++ if (auto *arg = parsedArgs.getLastArg(OPT_target)) { ++ baseTriple = llvm::Triple(arg->getValue()); ++ } else { ++ baseTriple = getDefaultTarget(argv[0]); ++ } ++ llvm::Triple triple(baseTriple); ++ ++ return parsePECOFF(parsedArgs, triple, info, diag, true); ++} ++ + static llvm::Optional + getArchType(const llvm::Triple &triple, StringRef value) { ++ ++ //the base arch can be wrong for windows so just check the PE target ++ if (value == "i386pe") ++ return llvm::Triple::x86; ++ if (value == "i386pep") ++ return llvm::Triple::x86_64; ++ if (value == "thumb2pe") ++ return llvm::Triple::arm; ++ + switch (triple.getArch()) { + case llvm::Triple::x86: + case llvm::Triple::x86_64: +@@ -184,6 +291,29 @@ getArchType(const llvm::Triple &triple, StringRef value) { + } + } + ++static llvm::COFF::MachineTypes ++getCOFFType(const llvm::Triple &triple) { ++ switch (triple.getArch()) { ++ case llvm::Triple::x86: ++ return llvm::COFF::IMAGE_FILE_MACHINE_I386; ++ case llvm::Triple::x86_64: ++ return llvm::COFF::IMAGE_FILE_MACHINE_AMD64; ++ case llvm::Triple::arm: ++ case llvm::Triple::thumb: ++ return llvm::COFF::IMAGE_FILE_MACHINE_ARMNT; ++ default: ++ return llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN; ++ } ++} ++ ++static llvm::COFF::WindowsSubsystem ++getSubsystem(StringRef value) { ++ return llvm::StringSwitch(value.lower()) ++ .Case("windows", llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_GUI) ++ .Case("console", llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI) ++ .Default(llvm::COFF::IMAGE_SUBSYSTEM_UNKNOWN); ++} ++ + static bool isLinkerScript(StringRef path, raw_ostream &diag) { + llvm::sys::fs::file_magic magic = llvm::sys::fs::file_magic::unknown; + if (std::error_code ec = llvm::sys::fs::identify_magic(path, magic)) { +@@ -195,7 +325,24 @@ static bool isLinkerScript(StringRef path, raw_ostream &diag) { + } + + static ErrorOr +-findFile(ELFLinkingContext &ctx, StringRef path, bool dashL) { ++findFileELF(ELFLinkingContext &ctx, StringRef path, bool dashL) { ++ // If the path was referred to by using a -l argument, let's search ++ // for the file in the search path. ++ if (dashL) { ++ ErrorOr pathOrErr = ctx.searchLibrary(path); ++ if (std::error_code ec = pathOrErr.getError()) ++ return make_dynamic_error_code( ++ Twine("Unable to find library -l") + path + ": " + ec.message()); ++ path = pathOrErr.get(); ++ } ++ if (!llvm::sys::fs::exists(path)) ++ return make_dynamic_error_code( ++ Twine("lld: cannot find file ") + path); ++ return path; ++} ++ ++static ErrorOr ++findFilePECOFF(PECOFFLinkingContext &ctx, StringRef path, bool dashL = true) { + // If the path was referred to by using a -l argument, let's search + // for the file in the search path. + if (dashL) { +@@ -219,6 +366,17 @@ static bool isPathUnderSysroot(StringRef sysroot, StringRef path) { + return !path.empty(); + } + ++// Returns true if the given file node has already been added to the input ++// graph. ++static bool hasLibrary(PECOFFLinkingContext &ctx, File *file) { ++ StringRef path = file->path(); ++ for (std::unique_ptr &p : ctx.getNodes()) ++ if (auto *f = dyn_cast(p.get())) ++ if (f->getFile()->path() == path) ++ return true; ++ return false; ++} ++ + static std::error_code + addFilesFromLinkerScript(ELFLinkingContext &ctx, StringRef scriptPath, + const std::vector &inputPaths, +@@ -339,40 +497,11 @@ getBool(const llvm::opt::InputArgList &parsedArgs, + return llvm::None; + } + +-bool GnuLdDriver::parse(llvm::ArrayRef args, +- std::unique_ptr &context, +- raw_ostream &diag) { +- // Parse command line options using GnuLdOptions.td +- GnuLdOptTable table; +- unsigned missingIndex; +- unsigned missingCount; +- +- llvm::opt::InputArgList parsedArgs = +- table.ParseArgs(args.slice(1), missingIndex, missingCount); +- if (missingCount) { +- diag << "error: missing arg value for '" +- << parsedArgs.getArgString(missingIndex) << "' expected " +- << missingCount << " argument(s).\n"; +- return false; +- } +- +- // Handle --help +- if (parsedArgs.hasArg(OPT_help)) { +- table.PrintHelp(llvm::outs(), args[0], "LLVM Linker", false); +- return true; +- } +- +- // Use -target or use default target triple to instantiate LinkingContext +- llvm::Triple baseTriple; +- if (auto *arg = parsedArgs.getLastArg(OPT_target)) { +- baseTriple = llvm::Triple(arg->getValue()); +- } else { +- baseTriple = getDefaultTarget(args[0]); +- } +- llvm::Triple triple(baseTriple); +- +- if (!applyEmulation(triple, parsedArgs, diag)) +- return false; ++bool GnuLdDriver::parseELF(llvm::opt::InputArgList &parsedArgs, ++ llvm::Triple &triple, ++ llvm::Triple &baseTriple, ++ std::unique_ptr &context, ++ raw_ostream &diag) { + + std::unique_ptr ctx(createELFLinkingContext(triple)); + +@@ -673,7 +802,7 @@ bool GnuLdDriver::parse(llvm::ArrayRef args, + bool dashL = (arg->getOption().getID() == OPT_l); + StringRef path = arg->getValue(); + +- ErrorOr pathOrErr = findFile(*ctx, path, dashL); ++ ErrorOr pathOrErr = findFileELF(*ctx, path, dashL); + if (std::error_code ec = pathOrErr.getError()) { + auto file = llvm::make_unique(path, ec); + auto node = llvm::make_unique(std::move(file)); +@@ -747,6 +876,133 @@ bool GnuLdDriver::parse(llvm::ArrayRef args, + return true; + } + ++bool GnuLdDriver::parsePECOFF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ PECOFFLinkingContext &ctx, ++ raw_ostream &diag, ++ bool isReadingDirectiveSection) { ++ ++ // Parse may be called from multiple threads simultaneously to parse .drectve ++ // sections. This function is not thread-safe because it mutates the context ++ // object. So acquire the lock. ++ std::lock_guard lock(ctx.getMutex()); ++ ++ // The list of input files. ++ std::vector> files; ++ std::vector> libraries; ++ ++ llvm::COFF::MachineTypes type = getCOFFType(triple); ++ if (type == llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN) { ++ diag << "error: unknown machine type\n"; ++ return false; ++ } ++ ++ ctx.setMachineType(type); ++ ++ if (args.hasArg(OPT_t)) ++ ctx.setLogInputFiles(true); ++ ++ //mingw-w64 never uses wide versions of mainCRTStartup ++ if(type == llvm::COFF::IMAGE_FILE_MACHINE_I386) ++ ctx.setEntrySymbolName(ctx.allocate("_mainCRTStartup")); ++ else ++ ctx.setEntrySymbolName(ctx.allocate("mainCRTStartup")); ++ ++ if (auto *arg = args.getLastArg(OPT_output)) ++ ctx.setOutputPath(arg->getValue()); ++ ++ if (auto *arg = args.getLastArg(OPT_subsystem)) ++ ctx.setSubsystem(getSubsystem(arg->getValue())); ++ ++ if (args.hasArg(OPT_dll)) { ++ ctx.setIsDll(true); ++ // Default base address of a DLL is 0x10000000. ++ //if (!args.hasArg(OPT_base)) ++ //ctx.setBaseAddress(0x10000000); ++ } ++ ++ for (auto *arg : args.filtered(OPT_L)) ++ ctx.appendInputSearchPath(ctx.allocate(arg->getValue())); ++ ++ // Process files ++ for (auto arg : args) { ++ switch (arg->getOption().getID()) { ++ case OPT_INPUT: ++ case OPT_l: ++ case OPT_T: { ++ bool dashL = (arg->getOption().getID() == OPT_l); ++ StringRef path = arg->getValue(); ++ ErrorOr pathOrErr = findFilePECOFF(ctx, path, dashL); ++ StringRef realpath = pathOrErr.get(); ++ std::vector> curr; ++ ++ if(!pathOrErr){ ++ diag << "Cannot find " << path << "\n"; ++ return false; ++ } ++ ++ if(dashL) { ++ curr = loadFile(ctx, realpath, false); ++ for (std::unique_ptr &lib : curr) { ++ if (ctx.logInputFiles()) ++ diag << "lib: " << lib->path() << "\n"; ++ libraries.push_back(std::move(lib)); ++ } ++ } else { ++ curr = loadFile(ctx, realpath, false); ++ for (std::unique_ptr &file : curr) { ++ if (ctx.logInputFiles()) ++ diag << "input: " << file->path() << "\n"; ++ files.push_back(std::move(file)); ++ } ++ } ++ break; ++ } ++ } ++ } ++ ++ for (std::unique_ptr &file : files) { ++ if (isReadingDirectiveSection) { ++ File *f = file.get(); ++ ctx.getTaskGroup().spawn([f] { f->parse(); }); ++ } ++ ctx.getNodes().push_back(llvm::make_unique(std::move(file))); ++ } ++ ++ // Add the library group to the linking context. ++ if (!isReadingDirectiveSection) { ++ // Add a group-end marker. ++ ctx.getNodes().push_back(llvm::make_unique(0)); ++ } ++ ++ // Add the library files to the library group. ++ for (std::unique_ptr &file : libraries) { ++ if (!hasLibrary(ctx, file.get())) { ++ if (isReadingDirectiveSection) { ++ File *f = file.get(); ++ ctx.getTaskGroup().spawn([f] { f->parse(); }); ++ } ++ ctx.addLibraryFile(llvm::make_unique(std::move(file))); ++ } ++ } ++ ++ if (ctx.getNodes().empty()) { ++ diag << "No input files\n"; ++ return false; ++ } ++ ++ // Set default output file name if the output file was not specified. ++ if (ctx.outputPath().empty()) ++ ctx.setOutputPath("a.exe"); ++ ++ if (!ctx.validate(diag)) { ++ diag << "error: invalid linking context\n"; ++ return false; ++ } ++ ++ return true; ++} ++ + /// Get the default target triple based on either the program name + /// (e.g. "x86-ibm-linux-lld") or the primary target llvm was configured for. + llvm::Triple GnuLdDriver::getDefaultTarget(const char *progName) { +diff --git a/lib/Driver/GnuLdOptions.td b/lib/Driver/GnuLdOptions.td +index b3c3d90..7aa8547 100644 +--- a/lib/Driver/GnuLdOptions.td ++++ b/lib/Driver/GnuLdOptions.td +@@ -354,6 +354,18 @@ def pcrel_eh_reloc : Flag<["-", "--"], "pcrel-eh-reloc">, + HelpText<"Interpret R_MIPS_EH as R_MIPS_PC32">; + + //===----------------------------------------------------------------------===// ++/// Windows Target Specific Options ++//===----------------------------------------------------------------------===// ++def grp_windows_targetopts : OptionGroup<"WINDOWS SPECIFIC OPTIONS">, ++ Group; ++def subsystem : Separate<["--"], "subsystem">, MetaVarName<"">, ++ HelpText<"Select target subsystem">, ++ Group; ++def dll : Separate<["-", "--"], "dll">, ++ HelpText<"Create dynamic link library">, ++ Group; ++ ++//===----------------------------------------------------------------------===// + /// Ignored options + //===----------------------------------------------------------------------===// + def grp_ignored: OptionGroup<"ignored">, +diff --git a/lib/Driver/UniversalDriver.cpp b/lib/Driver/UniversalDriver.cpp +index c09addf..8ce45ea 100644 +--- a/lib/Driver/UniversalDriver.cpp ++++ b/lib/Driver/UniversalDriver.cpp +@@ -201,7 +201,7 @@ bool UniversalDriver::link(llvm::MutableArrayRef args, + // Switch to appropriate driver. + switch (flavor) { + case Flavor::gnu_ld: +- return GnuLdDriver::linkELF(args, diagnostics); ++ return GnuLdDriver::linkGNU(args, diagnostics); + case Flavor::darwin_ld: + return DarwinLdDriver::linkMachO(args, diagnostics); + case Flavor::win_link: +-- +2.4.5 + diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 2766a3bb23..763a879245 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -1,17 +1,20 @@ # Maintainer: Martell Malone # Contributor: Ray Donnelly +# Compiler rt is in a seperate package becuase it wont build with gcc +# Will leave the code here for it though incase we ever switch to clang ;) + _realname=clang pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-analyzer-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-tools-extra-svn" - #"${MINGW_PACKAGE_PREFIX}-compiler-rt-svn" + "${MINGW_PACKAGE_PREFIX}-compiler-rt-svn" "${MINGW_PACKAGE_PREFIX}-lld-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn") -pkgver=57687.057d264 +pkgver=57765.6c5a911 pkgrel=1 -pkgdesc="LC language family frontend for LLVM (mingw-w64)" +pkgdesc="C language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" license=("custom:University of Illinois/NCSA Open Source License") @@ -25,24 +28,46 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" "lld"::"git+http://llvm.org/git/lld.git" "clang"::"git+http://llvm.org/git/clang.git" "clang-tools-extra"::"git+http://llvm.org/git/clang-tools-extra.git" - #"rt"::"git+http://llvm.org/git/compiler-rt.git" - #"testsuite"::"git+http://llvm.org/git/test-suite.git" - #"libcxx"::"git+http://llvm.org/git/libcxx.git" + "compiler-rt"::"git+http://llvm.org/git/compiler-rt.git" + "testsuite"::"git+http://llvm.org/git/test-suite.git" + "libcxx"::"git+http://llvm.org/git/libcxx.git" 0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch 0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch 0011-Add-Clang-MinGW-w64-driver.patch 0012-Fixup-all-windows-ARM-targets.patch - 0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch) + 0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch + 0021-add-support-for-mingw-w64-in-builtins.patch + 0022-builtins-implement-_chkstk-routine-for-windows.patch + 0031-COFF-add-the-mingw-alias-for-ImageBase.patch + 0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch + 0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch + 0034-GNU-add-support-for-linking-PECOFF.patch) + +# Some patch notes :) +#0001-0009 -> llvm +#0011-0019 -> clang +#0021-0029 -> rt +#0031-0039 -> lld +#0041-0049 -> c++ md5sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' 'SKIP' 'SKIP' 'SKIP' '9b93c8e61c7480c551564d06c08291aa' 'a384d4607d9dcdfdcac6912ac413ec58' - '83c43cba3e371596de5998a9ff7f4eb5' + '6a4ab5c3cca98c249795257a04f9ab3d' '6c31dc05b01f038d10ceb5e88c5fe9f5' - 'e6ce086a33256043af99a5690b251be8') + 'e6ce086a33256043af99a5690b251be8' + '259b2ca36651bff1cb3e095608129ddf' + 'e9fb6994de197f8f05da1396be520085' + 'a1e06d17915f1cedb1d784ecfdfa60be' + '76b01f572c404c7245d227d758cdf7fc' + '559b5b75d4efd50079d76dda592fb1b7' + '72404042ab22a9c52bc77d24a22f7c01') pkgver_internal() { if [ ! -d "$1" ]; then @@ -76,11 +101,21 @@ prepare() { git am "${srcdir}"/0012-Fixup-all-windows-ARM-targets.patch git am "${srcdir}"/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch + cd "${srcdir}"/compiler-rt + git am "${srcdir}"/0021-add-support-for-mingw-w64-in-builtins.patch + git am "${srcdir}"/0022-builtins-implement-_chkstk-routine-for-windows.patch + + cd "${srcdir}"/lld + #git am "${srcdir}"/0031-COFF-add-the-mingw-alias-for-ImageBase.patch + git am "${srcdir}"/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch + git am "${srcdir}"/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch + git am "${srcdir}"/0034-GNU-add-support-for-linking-PECOFF.patch + cd "${srcdir}" mv lld llvm/tools/lld mv clang llvm/tools/clang mv clang-tools-extra llvm/tools/clang/tools/extra -# mv rt llvm/projects/compiler-rt + mv compiler-rt llvm/projects/compiler-rt # mv testsuite llvm/projects/test-suite # mv libcxx llvm/projects/libcxx } @@ -125,7 +160,7 @@ build() { #} package_clang(){ - pkgdesc="C language family frontend for LLVM" + pkgdesc="C language family frontend for LLVM (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") provides=("${MINGW_PACKAGE_PREFIX}-clang") conflicts=("${MINGW_PACKAGE_PREFIX}-clang") @@ -146,7 +181,7 @@ package_clang(){ } package_clang-tools-extra(){ - pkgdesc="Extra tools built using Clang's tooling APIs" + pkgdesc="Extra tools built using Clang's tooling APIs (mingw-w64)" url="http://clang.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-clang-svn") provides=("${MINGW_PACKAGE_PREFIX}-clang-tools-extra") @@ -157,12 +192,29 @@ package_clang-tools-extra(){ make -j1 DESTDIR="$pkgdir" rebuild_cache install } -# package_compiler-rt(){ -# pkgver=$(pkgver_internal "${srcdir}"/compiler-rt) -# } + package_compiler-rt(){ + pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)" + url="http://compiler-rt.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") + provides=("${MINGW_PACKAGE_PREFIX}-compiler-rt") + conflicts=("${MINGW_PACKAGE_PREFIX}-compiler-rt") + pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/compiler-rt) + + # Note this can only be built with clang and not gcc + # So we probably should move this to an seperate pkgbuild + # While gcc is still the default when compiling clang + + cd build-${CARCH} + make -j1 DESTDIR="$pkgdir" rebuild_cache + + # must move to correct lib/clang/x.x.x/subfolder + + cd "${srcdir}"/build-${CARCH}/projects/compiler-rt + make -j1 DESTDIR="$pkgdir" rebuild_cache install + } package_lld(){ - pkgdesc="Linker tools for LLVM" + pkgdesc="Linker tools for LLVM (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") provides=("${MINGW_PACKAGE_PREFIX}-lld") conflicts=("${MINGW_PACKAGE_PREFIX}-lld") @@ -173,7 +225,7 @@ package_lld(){ } package_llvm(){ - pkgdesc="Low Level Virtual Machine" + pkgdesc="Low Level Virtual Machine (mingw-w64)" #depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "${MINGW_PACKAGE_PREFIX}-compiler-rt" provides=("${MINGW_PACKAGE_PREFIX}-llvm") conflicts=("${MINGW_PACKAGE_PREFIX}-llvm") @@ -188,6 +240,9 @@ package_llvm(){ mv llvm/tools/lld lld mv build-${CARCH}/tools/lld lld-${CARCH} + mv llvm/projects/compiler-rt compiler-rt + mv build-${CARCH}/projects/compiler-rt compiler-rt-${CARCH} + cd build-${CARCH} make -j1 DESTDIR="$pkgdir" install @@ -199,6 +254,9 @@ package_llvm(){ mv lld llvm/tools/lld mv lld-${CARCH} build-${CARCH}/tools/lld + mv compiler-rt llvm/projects/compiler-rt + mv compiler-rt-${CARCH} build-${CARCH}/projects/compiler-rt + # Install CMake stuff install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/modules/" @@ -207,7 +265,7 @@ package_llvm(){ } package_clang-analyzer() { - pkgdesc="A source code analysis framework" + pkgdesc="A source code analysis framework (mingw-w64)" url="http://clang-analyzer.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-clang-svn" "${MINGW_PACKAGE_PREFIX}-python2") provides=("${MINGW_PACKAGE_PREFIX}-clang-analyzer") @@ -256,9 +314,9 @@ package_mingw-w64-i686-clang-tools-extra-svn(){ package_clang-tools-extra } -# package_mingw-w64-i686-compiler-rt-svn(){ -# package_compiler-rt -# } +package_mingw-w64-i686-compiler-rt-svn(){ + package_compiler-rt +} package_mingw-w64-i686-lld-svn(){ package_lld @@ -280,9 +338,9 @@ package_mingw-w64-x86_64-clang-tools-extra-svn(){ package_clang-tools-extra } -# package_mingw-w64-x86_64-compiler-rt-svn(){ -# package_compiler-rt -# } +package_mingw-w64-x86_64-compiler-rt-svn(){ + package_compiler-rt +} package_mingw-w64-x86_64-lld-svn(){ package_lld From ec4a42634e85cfb544e51d1cd1e92f7161851c27 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Fri, 3 Jul 2015 01:29:17 +0100 Subject: [PATCH 1246/2060] clang: set ld as the default linker and compiler-rt as default compiler runtime, add libc++ and libc++abi (needs clang to build) --- .../0011-Add-Clang-MinGW-w64-driver.patch | 2 +- mingw-w64-clang-svn/PKGBUILD | 76 +++++++++++++++---- 2 files changed, 62 insertions(+), 16 deletions(-) diff --git a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch index 3819baeb5f..89a948d8d9 100644 --- a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch +++ b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch @@ -85,7 +85,7 @@ index a2955db..7e38039 100644 Args.ClaimAllArgs(options::OPT_w); + // We default to lld and not ld because we are badass like that :) -+ StringRef Linker = Args.getLastArgValue(options::OPT_fuse_ld_EQ, "lld"); ++ StringRef Linker = Args.getLastArgValue(options::OPT_fuse_ld_EQ, "ld"); + if (Linker.equals_lower("lld")) { + CmdArgs.push_back("-flavor"); + CmdArgs.push_back("gnu"); diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 763a879245..ee1f74baf3 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -1,17 +1,20 @@ # Maintainer: Martell Malone # Contributor: Ray Donnelly -# Compiler rt is in a seperate package becuase it wont build with gcc -# Will leave the code here for it though incase we ever switch to clang ;) +# libc++ is in a seperate folder becuase it wont build with gcc +# Will leave the code here for it though incase we ever switch to clang +# I may add a bootstrap option for this case soon _realname=clang pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-analyzer-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-tools-extra-svn" "${MINGW_PACKAGE_PREFIX}-compiler-rt-svn" + #"${MINGW_PACKAGE_PREFIX}-libc++abi-svn" + #"${MINGW_PACKAGE_PREFIX}-libc++-svn" "${MINGW_PACKAGE_PREFIX}-lld-svn" - "${MINGW_PACKAGE_PREFIX}-llvm-svn") - + "${MINGW_PACKAGE_PREFIX}-llvm-svn" + ) pkgver=57765.6c5a911 pkgrel=1 pkgdesc="C language family frontend for LLVM (mingw-w64)" @@ -30,6 +33,7 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" "clang-tools-extra"::"git+http://llvm.org/git/clang-tools-extra.git" "compiler-rt"::"git+http://llvm.org/git/compiler-rt.git" "testsuite"::"git+http://llvm.org/git/test-suite.git" + "libcxxabi"::"git+http://llvm.org/git/libcxxabi.git" "libcxx"::"git+http://llvm.org/git/libcxx.git" 0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch 0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch @@ -57,9 +61,10 @@ md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' + 'SKIP' '9b93c8e61c7480c551564d06c08291aa' 'a384d4607d9dcdfdcac6912ac413ec58' - '6a4ab5c3cca98c249795257a04f9ab3d' + 'a22508be75294c02b678a2309a72eff9' '6c31dc05b01f038d10ceb5e88c5fe9f5' 'e6ce086a33256043af99a5690b251be8' '259b2ca36651bff1cb3e095608129ddf' @@ -116,8 +121,10 @@ prepare() { mv clang llvm/tools/clang mv clang-tools-extra llvm/tools/clang/tools/extra mv compiler-rt llvm/projects/compiler-rt -# mv testsuite llvm/projects/test-suite +# mv libcxxabi llvm/projects/libcxxabi # mv libcxx llvm/projects/libcxx +# mv testsuite llvm/projects/test-suite + } build() { @@ -200,19 +207,30 @@ package_clang-tools-extra(){ conflicts=("${MINGW_PACKAGE_PREFIX}-compiler-rt") pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/compiler-rt) - # Note this can only be built with clang and not gcc - # So we probably should move this to an seperate pkgbuild - # While gcc is still the default when compiling clang - - cd build-${CARCH} - make -j1 DESTDIR="$pkgdir" rebuild_cache - - # must move to correct lib/clang/x.x.x/subfolder - cd "${srcdir}"/build-${CARCH}/projects/compiler-rt make -j1 DESTDIR="$pkgdir" rebuild_cache install } +package_libcxxabi(){ + pkgdesc="C++ Standard Library Support (mingw-w64)" + provides=("${MINGW_PACKAGE_PREFIX}-libc++abi") + conflicts=("${MINGW_PACKAGE_PREFIX}-libc++abi") + pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxxabi) + + cd "${srcdir}"/build-${CARCH}/projects/libcxxabi + make -j1 DESTDIR="$pkgdir" rebuild_cache install +} + +package_libcxx(){ + pkgdesc="C++ Standard Library (mingw-w64)" + provides=("${MINGW_PACKAGE_PREFIX}-libc++") + conflicts=("${MINGW_PACKAGE_PREFIX}-libc++") + pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxx) + + cd "${srcdir}"/build-${CARCH}/projects/libcxx + make -j1 DESTDIR="$pkgdir" rebuild_cache install +} + package_lld(){ pkgdesc="Linker tools for LLVM (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") @@ -243,6 +261,12 @@ package_llvm(){ mv llvm/projects/compiler-rt compiler-rt mv build-${CARCH}/projects/compiler-rt compiler-rt-${CARCH} +# mv llvm/projects/libcxxabi libcxxabi +# mv build-${CARCH}/projects/libcxxabi libcxxabi-${CARCH} + +# mv llvm/projects/libcxx libcxx +# mv build-${CARCH}/projects/libcxx libcxx-${CARCH} + cd build-${CARCH} make -j1 DESTDIR="$pkgdir" install @@ -257,6 +281,12 @@ package_llvm(){ mv compiler-rt llvm/projects/compiler-rt mv compiler-rt-${CARCH} build-${CARCH}/projects/compiler-rt +# mv libcxxabi llvm/projects/libcxxabi +# mv libcxxabi-${CARCH} build-${CARCH}/projects/libcxxabi + +# mv libcxx llvm/projects/libcxx +# mv libcxx-${CARCH} build-${CARCH}/projects/libcxx + # Install CMake stuff install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/modules/" @@ -318,6 +348,14 @@ package_mingw-w64-i686-compiler-rt-svn(){ package_compiler-rt } +package_mingw-w64-i686-libc++abi-svn(){ + package_libcxxabi +} + +package_mingw-w64-i686-libc++-svn(){ + package_libcxx +} + package_mingw-w64-i686-lld-svn(){ package_lld } @@ -342,6 +380,14 @@ package_mingw-w64-x86_64-compiler-rt-svn(){ package_compiler-rt } +package_mingw-w64-x86_64-libc++abi-svn(){ + package_libcxxabi +} + +package_mingw-w64-x86_64-libc++-svn(){ + package_libcxx +} + package_mingw-w64-x86_64-lld-svn(){ package_lld } From db93153da97f288ea5290c51771a636a26a738b5 Mon Sep 17 00:00:00 2001 From: David Grayson Date: Thu, 2 Jul 2015 18:33:26 -0700 Subject: [PATCH 1247/2060] catch: Update to 1.2.1. --- mingw-w64-catch/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-catch/PKGBUILD b/mingw-w64-catch/PKGBUILD index 65baf5325d..4852de33fa 100644 --- a/mingw-w64-catch/PKGBUILD +++ b/mingw-w64-catch/PKGBUILD @@ -2,7 +2,7 @@ _realname=catch pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.2.0 +pkgver=1.2.1 pkgrel=1 pkgdesc="Multi-paradigm automated test framework for C++ and Objective-C (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ source=( "${_src}/LICENSE_1_0.txt" ) -sha256sums=('ccd4c1fec3cf0715961dcb86a60967d7bc91ae050e00c8f42d03698b3ff8f590' +sha256sums=('0a8e3f6f2aa325cddb242bc797b8033be5e5ed75d2e1f6ed75fbc4efd87c6faa' 'c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566') package() { From a936bcf8c896cac048f9ae95861e59e9ba83fa6d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 3 Jul 2015 14:44:21 +0300 Subject: [PATCH 1248/2060] qt5: Update to 5.5.0 (gcc-5.1.0) --- .../0007-activscp-remove-duplicates.patch | 93 ++++++++++++++ mingw-w64-headers-git/PKGBUILD | 9 +- mingw-w64-qbs/PKGBUILD | 16 +-- mingw-w64-qt-installer-framework/PKGBUILD | 2 +- .../0006-qt-5.3.0-win_flex-replace.patch | 24 +++- ...E_EXTENSION_IMPORTLIB-defaulting-to-.patch | 8 +- ...-qt-5.3.0-use-external-angle-library.patch | 116 +++++++++--------- ...qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch | 42 +++---- ...round-ansidecl-h-PTR-define-conflict.patch | 2 +- ....5.0-workaround-BOOL-define-conflict.patch | 24 ++++ ...ont-add-resource-files-to-qmake-libs.patch | 10 +- ...ke-also-link-plugins-and-plugin-deps.patch | 6 +- mingw-w64-qt5-static/PKGBUILD | 28 +++-- .../0006-qt-5.3.0-win_flex-replace.patch | 24 +++- ...E_EXTENSION_IMPORTLIB-defaulting-to-.patch | 8 +- ...-qt-5.3.0-use-external-angle-library.patch | 116 +++++++++--------- ...qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch | 42 +++---- ...round-ansidecl-h-PTR-define-conflict.patch | 2 +- ....5.0-workaround-BOOL-define-conflict.patch | 24 ++++ ...ont-add-resource-files-to-qmake-libs.patch | 10 +- ...ke-also-link-plugins-and-plugin-deps.patch | 2 +- mingw-w64-qt5/PKGBUILD | 31 ++--- .../002-qt-5.5-compatibility.patch | 10 ++ mingw-w64-qtbinpatcher/PKGBUILD | 14 ++- 24 files changed, 418 insertions(+), 245 deletions(-) create mode 100644 mingw-w64-headers-git/0007-activscp-remove-duplicates.patch create mode 100644 mingw-w64-qt5-static/0031-qt-5.5.0-workaround-BOOL-define-conflict.patch create mode 100644 mingw-w64-qt5/0031-qt-5.5.0-workaround-BOOL-define-conflict.patch create mode 100644 mingw-w64-qtbinpatcher/002-qt-5.5-compatibility.patch diff --git a/mingw-w64-headers-git/0007-activscp-remove-duplicates.patch b/mingw-w64-headers-git/0007-activscp-remove-duplicates.patch new file mode 100644 index 0000000000..9976c2dc14 --- /dev/null +++ b/mingw-w64-headers-git/0007-activscp-remove-duplicates.patch @@ -0,0 +1,93 @@ +From 9c95addcd62f7ef0e88171f8b1e29331cf5bcfc6 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Thu, 2 Jul 2015 09:04:12 +0300 +Subject: [PATCH] activscp: Remove duplicate defines. + +--- + mingw-w64-headers/include/activscp.h | 26 -------------------------- + mingw-w64-headers/include/activscp.idl | 26 -------------------------- + 2 files changed, 52 deletions(-) + +diff --git a/mingw-w64-headers/include/activscp.h b/mingw-w64-headers/include/activscp.h +index 847290e..cf93d7a 100644 +--- a/mingw-w64-headers/include/activscp.h ++++ b/mingw-w64-headers/include/activscp.h +@@ -175,35 +175,9 @@ extern "C" { + DEFINE_GUID(CATID_ActiveScript, 0xf0b7a1a1, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); + DEFINE_GUID(CATID_ActiveScriptParse, 0xf0b7a1a2, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); + DEFINE_GUID(CATID_ActiveScriptEncode, 0xf0b7a1a3, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); +-DEFINE_GUID(IID_IActiveScript, 0xbb1a2ae1, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); +-DEFINE_GUID(IID_IActiveScriptParse32, 0xbb1a2ae2, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); +-DEFINE_GUID(IID_IActiveScriptParse64, 0xc7ef7658, 0xe1ee, 0x480e, 0x97, 0xea, 0xd5, 0x2c, 0xb4, 0xd7, 0x6d, 0x17); +-DEFINE_GUID(IID_IActiveScriptEncode, 0xbb1a2ae3, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); +-DEFINE_GUID(IID_IActiveScriptHostEncode, 0xbee9b76e, 0xcfe3, 0x11d1, 0xb7, 0x47, 0x00, 0xc0, 0x4f, 0xc2, 0xb0, 0x85); +-DEFINE_GUID(IID_IActiveScriptParseProcedureOld32, 0x1cff0050, 0x6fdd, 0x11d0, 0x93, 0x28, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9); +-DEFINE_GUID(IID_IActiveScriptParseProcedureOld64, 0x21f57128, 0x08c9, 0x4638, 0xba, 0x12, 0x22, 0xd1, 0x5d, 0x88, 0xdc, 0x5c); +-DEFINE_GUID(IID_IActiveScriptParseProcedure32, 0xaa5b6a80, 0xb834, 0x11d0, 0x93, 0x2f, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9); +-DEFINE_GUID(IID_IActiveScriptParseProcedure64, 0xc64713b6, 0xe029, 0x4cc5, 0x92, 0x00, 0x43, 0x8b, 0x72, 0x89, 0x0b, 0x6a); +-DEFINE_GUID(IID_IActiveScriptParseProcedure2_32, 0x71ee5b20, 0xfb04, 0x11d1, 0xb3, 0xa8, 0x00, 0xa0, 0xc9, 0x11, 0xe8, 0xb2); +-DEFINE_GUID(IID_IActiveScriptParseProcedure2_64, 0xfe7c4271, 0x210c, 0x448d, 0x9f, 0x54, 0x76, 0xda, 0xb7, 0x04, 0x7b, 0x28); +-DEFINE_GUID(IID_IActiveScriptSite, 0xdb01a1e3, 0xa42b, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); +-DEFINE_GUID(IID_IActiveScriptSiteTraceInfo, 0x4b7272ae, 0x1955, 0x4bfe, 0x98, 0xb0, 0x78, 0x6, 0x21, 0x88, 0x85, 0x69); +-DEFINE_GUID(IID_IActiveScriptSiteWindow, 0xd10f6761, 0x83e9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); +-DEFINE_GUID(IID_IActiveScriptSiteInterruptPoll, 0x539698a0, 0xcdca, 0x11cf, 0xa5, 0xeb, 0x00, 0xaa, 0x00, 0x47, 0xa0, 0x63); +-DEFINE_GUID(IID_IActiveScriptSiteUIControl, 0xaedae97e, 0xd7ee, 0x4796, 0xb9, 0x60, 0x7f, 0x9, 0x2a, 0xe8, 0x44, 0xab); +-DEFINE_GUID(IID_IActiveScriptError, 0xeae1ba61, 0xa4ed, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); +-DEFINE_GUID(IID_IActiveScriptError64, 0xb21fb2a1, 0x5b8f, 0x4963, 0x8c, 0x21, 0x21, 0x45, 0x0f, 0x84, 0xed, 0x7f); +-DEFINE_GUID(IID_IBindEventHandler, 0x63cdbcb0, 0xc1b1, 0x11d0, 0x93, 0x36, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9); +-DEFINE_GUID(IID_IActiveScriptStats, 0xb8da6310, 0xe19b, 0x11d0, 0x93, 0x3c, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9); +-DEFINE_GUID(IID_IActiveScriptProperty, 0x4954E0D0, 0xFBC7, 0x11D1, 0x84, 0x10, 0x00, 0x60, 0x08, 0xC3, 0xFB, 0xFC); +-DEFINE_GUID(IID_ITridentEventSink, 0x1dc9ca50, 0x6ef, 0x11d2, 0x84, 0x15, 0x00, 0x60, 0x08, 0xc3, 0xfb, 0xfc); +-DEFINE_GUID(IID_IActiveScriptGarbageCollector, 0x6aa2c4a0, 0x2b53, 0x11d4, 0xa2, 0xa0, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90); +-DEFINE_GUID(IID_IActiveScriptSIPInfo, 0x764651d0, 0x38de, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90); +-DEFINE_GUID(IID_IActiveScriptTraceInfo, 0xC35456E7, 0xBEBF, 0x4a1b, 0x86, 0xA9, 0x24, 0xD5, 0x6B, 0xE8, 0xB3, 0x69); + DEFINE_GUID(OID_VBSSIP, 0x1629f04e, 0x2799, 0x4db5, 0x8f, 0xe5, 0xac, 0xe1, 0x0f, 0x17, 0xeb, 0xab); + DEFINE_GUID(OID_JSSIP, 0x6c9e010, 0x38ce, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90); + DEFINE_GUID(OID_WSFSIP, 0x1a610570, 0x38ce, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90); +-DEFINE_GUID(IID_IActiveScriptStringCompare, 0x58562769, 0xED52, 0x42f7, 0x84, 0x03, 0x49, 0x63, 0x51, 0x4E, 0x1F, 0x11); + #endif + + #define SCRIPTITEM_ISVISIBLE 0x00000002 +diff --git a/mingw-w64-headers/include/activscp.idl b/mingw-w64-headers/include/activscp.idl +index be17c66..c979b53 100755 +--- a/mingw-w64-headers/include/activscp.idl ++++ b/mingw-w64-headers/include/activscp.idl +@@ -23,35 +23,9 @@ cpp_quote("") + cpp_quote("DEFINE_GUID(CATID_ActiveScript, 0xf0b7a1a1, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") + cpp_quote("DEFINE_GUID(CATID_ActiveScriptParse, 0xf0b7a1a2, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") + cpp_quote("DEFINE_GUID(CATID_ActiveScriptEncode, 0xf0b7a1a3, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") +-cpp_quote("DEFINE_GUID(IID_IActiveScript, 0xbb1a2ae1, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptParse32, 0xbb1a2ae2, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptParse64, 0xc7ef7658, 0xe1ee, 0x480e, 0x97, 0xea, 0xd5, 0x2c, 0xb4, 0xd7, 0x6d, 0x17);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptEncode, 0xbb1a2ae3, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptHostEncode, 0xbee9b76e, 0xcfe3, 0x11d1, 0xb7, 0x47, 0x00, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedureOld32, 0x1cff0050, 0x6fdd, 0x11d0, 0x93, 0x28, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedureOld64, 0x21f57128, 0x08c9, 0x4638, 0xba, 0x12, 0x22, 0xd1, 0x5d, 0x88, 0xdc, 0x5c);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedure32, 0xaa5b6a80, 0xb834, 0x11d0, 0x93, 0x2f, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedure64, 0xc64713b6, 0xe029, 0x4cc5, 0x92, 0x00, 0x43, 0x8b, 0x72, 0x89, 0x0b, 0x6a);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedure2_32, 0x71ee5b20, 0xfb04, 0x11d1, 0xb3, 0xa8, 0x00, 0xa0, 0xc9, 0x11, 0xe8, 0xb2);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedure2_64, 0xfe7c4271, 0x210c, 0x448d, 0x9f, 0x54, 0x76, 0xda, 0xb7, 0x04, 0x7b, 0x28);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptSite, 0xdb01a1e3, 0xa42b, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptSiteTraceInfo, 0x4b7272ae, 0x1955, 0x4bfe, 0x98, 0xb0, 0x78, 0x6, 0x21, 0x88, 0x85, 0x69);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptSiteWindow, 0xd10f6761, 0x83e9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptSiteInterruptPoll, 0x539698a0, 0xcdca, 0x11cf, 0xa5, 0xeb, 0x00, 0xaa, 0x00, 0x47, 0xa0, 0x63);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptSiteUIControl, 0xaedae97e, 0xd7ee, 0x4796, 0xb9, 0x60, 0x7f, 0x9, 0x2a, 0xe8, 0x44, 0xab);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptError, 0xeae1ba61, 0xa4ed, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptError64, 0xb21fb2a1, 0x5b8f, 0x4963, 0x8c, 0x21, 0x21, 0x45, 0x0f, 0x84, 0xed, 0x7f);") +-cpp_quote("DEFINE_GUID(IID_IBindEventHandler, 0x63cdbcb0, 0xc1b1, 0x11d0, 0x93, 0x36, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptStats, 0xb8da6310, 0xe19b, 0x11d0, 0x93, 0x3c, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptProperty, 0x4954E0D0, 0xFBC7, 0x11D1, 0x84, 0x10, 0x00, 0x60, 0x08, 0xC3, 0xFB, 0xFC);") +-cpp_quote("DEFINE_GUID(IID_ITridentEventSink, 0x1dc9ca50, 0x6ef, 0x11d2, 0x84, 0x15, 0x00, 0x60, 0x08, 0xc3, 0xfb, 0xfc);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptGarbageCollector, 0x6aa2c4a0, 0x2b53, 0x11d4, 0xa2, 0xa0, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptSIPInfo, 0x764651d0, 0x38de, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptTraceInfo, 0xC35456E7, 0xBEBF, 0x4a1b, 0x86, 0xA9, 0x24, 0xD5, 0x6B, 0xE8, 0xB3, 0x69);") + cpp_quote("DEFINE_GUID(OID_VBSSIP, 0x1629f04e, 0x2799, 0x4db5, 0x8f, 0xe5, 0xac, 0xe1, 0x0f, 0x17, 0xeb, 0xab);") + cpp_quote("DEFINE_GUID(OID_JSSIP, 0x6c9e010, 0x38ce, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90);") + cpp_quote("DEFINE_GUID(OID_WSFSIP, 0x1a610570, 0x38ce, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90);") +-cpp_quote("DEFINE_GUID(IID_IActiveScriptStringCompare, 0x58562769, 0xED52, 0x42f7, 0x84, 0x03, 0x49, 0x63, 0x51, 0x4E, 0x1F, 0x11);") + cpp_quote("#endif") + cpp_quote("") + cpp_quote("#define SCRIPTITEM_ISVISIBLE 0x00000002") +-- +2.4.5 + diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index d2d569a4d7..652c3815cb 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" pkgver=5.0.0.4509.2e5a9a2 -pkgrel=1 +pkgrel=2 arch=('any') url="http://mingw-w64.sourceforge.net" license=('custom') @@ -20,14 +20,16 @@ source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" "0005-Add-missing-DirectX11-enum.patch" - "0006-Add-d3d11-video-decoder.patch") + "0006-Add-d3d11-video-decoder.patch" + "0007-activscp-remove-duplicates.patch") md5sums=('SKIP' '0bcf1726f2093c6ed7e998d7e6c9dd16' '20172a91981ffa87aa6aa5d3001c290b' 'bdca4fc47725678f08cc23c96d130151' '9973c46a1dc331fd07c4b3dc6f5472a0' '652859ad478448a70c2074a854a313ec' - 'e05b2eadfef91ddd27809031cb2728dd') + 'e05b2eadfef91ddd27809031cb2728dd' + 'bf498aee83b5dab2ce5a8e91c3deff9a') pkgver() { cd "$srcdir/mingw-w64" @@ -46,6 +48,7 @@ prepare() { git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch git am "${srcdir}/"0005-Add-missing-DirectX11-enum.patch git am "${srcdir}/"0006-Add-d3d11-video-decoder.patch + git am "${srcdir}/"0007-activscp-remove-duplicates.patch cd ${srcdir}/mingw-w64/mingw-w64-headers touch include/windows.*.h include/wincrypt.h include/prsht.h diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index 014129a9c9..fdcb8e1840 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -22,7 +22,7 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.0 -pkgrel=2 +pkgrel=3 _pkgfqn="${_realname}-${pkgver}.src" pkgdesc='Qt Build Suite' url='http://qt-project.org' @@ -31,7 +31,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt5") makedepends=("git") options=('docs' 'staticlibs') # '!strip' 'debug') source=("http://download.qt-project.org/official_releases/qbs/${pkgver}/${_pkgfqn}.tar.gz" - #${_realname}-${pkgver}::"git://gitorious.org/qt-labs/qbs.git#tag=v$pkgver" + #${_realname}-${pkgver}::"git://gitorious.org/qt-labs/qbs.git#tag=v${pkgver}" "manifest" "0001-add-hostosinfo.h-to-installed-headers.1.4.patch" "0002-WIP-Xcode-generator.1.4.patch" @@ -78,12 +78,12 @@ prepare() { } build() { -local _config -if check_option "debug" "n"; then - _config="release" -else - _config="debug" -fi + local _config + if check_option "debug" "n"; then + _config="release" + else + _config="debug" + fi cd ${srcdir}/${_realname}-${pkgver} [ -d build-${CARCH} ] && rm -rf build-${CARCH} mkdir build-${CARCH} diff --git a/mingw-w64-qt-installer-framework/PKGBUILD b/mingw-w64-qt-installer-framework/PKGBUILD index cc8e147c37..9cdf5535c3 100644 --- a/mingw-w64-qt-installer-framework/PKGBUILD +++ b/mingw-w64-qt-installer-framework/PKGBUILD @@ -3,7 +3,7 @@ _realname=installer-framework pkgname="${MINGW_PACKAGE_PREFIX}-qt-${_realname}-git" pkgdesc="The Qt Installer Framework used for the Qt SDK installer" -pkgver=r2748.5d53c5a +pkgver=r2752.f3c92c9 pkgrel=1 arch=('any') url='http://qt-project.org/' diff --git a/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch b/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch index aef0f1896f..719583ae5d 100644 --- a/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch +++ b/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch @@ -1,27 +1,43 @@ diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/preprocessor/preprocessor.pro b/qtbase/src/angle/src/compiler/preprocessor/preprocessor.pro --- a/qtbase/src/angle/src/compiler/preprocessor/preprocessor.pro 2014-05-02 23:06:13.969569900 +0100 +++ b/qtbase/src/angle/src/compiler/preprocessor/preprocessor.pro 2014-05-02 23:06:33.470685300 +0100 -@@ -41,7 +41,7 @@ +@@ -41,14 +41,14 @@ $$ANGLE_DIR/src/compiler/preprocessor/Token.cpp # NOTE: 'win_flex' and 'bison' can be found in qt5/gnuwin32/bin -flex.commands = $$addGnuPath(win_flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} -+flex.commands = $$addGnuPath(flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} ++flex.commands = flex --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} flex.output = ${QMAKE_FILE_BASE}.cpp flex.input = FLEX_SOURCES flex.dependency_type = TYPE_C + flex.variable_out = GENERATED_SOURCES + QMAKE_EXTRA_COMPILERS += flex + +-bison.commands = $$addGnuPath(win_bison) --no-lines --skeleton=yacc.c --output=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} ++bison.commands = bison --no-lines --skeleton=yacc.c --output=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} + bison.output = ${QMAKE_FILE_BASE}.cpp + bison.input = BISON_SOURCES + bison.dependency_type = TYPE_C diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/translator.pro b/qtbase/src/angle/src/compiler/translator.pro --- a/qtbase/src/angle/src/compiler/translator.pro 2014-05-02 23:06:13.969569900 +0100 +++ b/qtbase/src/angle/src/compiler/translator.pro 2014-05-02 23:06:33.467685100 +0100 -@@ -132,7 +132,7 @@ +@@ -132,14 +132,14 @@ } # NOTE: 'win_flex' and 'bison' can be found in qt5/gnuwin32/bin -flex.commands = $$addGnuPath(win_flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} -+flex.commands = $$addGnuPath(flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} ++flex.commands = flex --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} flex.output = ${QMAKE_FILE_BASE}_lex.cpp flex.input = FLEX_SOURCES flex.dependency_type = TYPE_C + flex.variable_out = GENERATED_SOURCES + QMAKE_EXTRA_COMPILERS += flex + +-bison.commands = $$addGnuPath(win_bison) --no-lines --skeleton=yacc.c --defines=${QMAKE_FILE_BASE}_tab.h \ ++bison.commands = bison --no-lines --skeleton=yacc.c --defines=${QMAKE_FILE_BASE}_tab.h \ + --output=${QMAKE_FILE_BASE}_tab.cpp ${QMAKE_FILE_NAME} + bison.output = ${QMAKE_FILE_BASE}_tab.h + bison.input = BISON_SOURCES diff -urN --ignore-all-space a/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf b/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf --- a/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf 2014-05-02 23:06:28.221385000 +0100 +++ b/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf 2014-05-02 23:06:33.474685500 +0100 diff --git a/mingw-w64-qt5-static/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch b/mingw-w64-qt5-static/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch index 6e894c62c6..a993071a2c 100644 --- a/mingw-w64-qt5-static/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch +++ b/mingw-w64-qt5-static/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch @@ -64,7 +64,7 @@ index 6d5764f..77e910b 100644 - + project->first("TARGET_VERSION_EXT") + ".a"); + + project->first("TARGET_VERSION_EXT") + + "." + getImportLibExtension()); - project->values("QMAKE_LFLAGS").append(QString("-Wl,--out-implib,") + project->first("MINGW_IMPORT_LIB")); + project->values("QMAKE_LFLAGS").append(QString("-Wl,--out-implib,") + fileVar("MINGW_IMPORT_LIB")); } diff --git a/qmake/generators/win32/mingw_make.h b/qmake/generators/win32/mingw_make.h @@ -72,13 +72,13 @@ index 0e12679..90e78ec 100644 --- a/qmake/generators/win32/mingw_make.h +++ b/qmake/generators/win32/mingw_make.h @@ -53,6 +53,7 @@ public: - ~MingwMakefileGenerator(); - protected: QString escapeDependencyPath(const QString &path) const; + ProString escapeDependencyPath(const ProString &path) const { return MakefileGenerator::escapeDependencyPath(path); } + virtual ProString fixLibFlag(const ProString &lib); + QString getImportLibExtension(); QString getLibTarget(); + virtual QString getManifestFileForRcFile() const; bool writeMakefile(QTextStream &); - void init(); -- 1.9.0 diff --git a/mingw-w64-qt5-static/0020-qt-5.3.0-use-external-angle-library.patch b/mingw-w64-qt5-static/0020-qt-5.3.0-use-external-angle-library.patch index 2984600503..b79ef19d22 100644 --- a/mingw-w64-qt5-static/0020-qt-5.3.0-use-external-angle-library.patch +++ b/mingw-w64-qt5-static/0020-qt-5.3.0-use-external-angle-library.patch @@ -1,54 +1,5 @@ ---- a/qtbase/mkspecs/win32-g++/qmake.conf.orig 2012-12-16 18:00:31.803375714 +0100 -+++ b/qtbase/mkspecs/win32-g++/qmake.conf 2012-12-16 18:00:25.883273471 +0100 -@@ -86,8 +86,8 @@ - QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32 - QMAKE_LIBS_NETWORK = -lws2_32 - QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32 --QMAKE_LIBS_OPENGL_ES2 = -llibEGL -llibGLESv2 -lgdi32 -luser32 --QMAKE_LIBS_OPENGL_ES2_DEBUG = -llibEGLd -llibGLESv2d -lgdi32 -luser32 -+QMAKE_LIBS_OPENGL_ES2 = -lEGL -lGLESv2 -lgdi32 -luser32 -+QMAKE_LIBS_OPENGL_ES2_DEBUG = -lEGL -lGLESv2 -lgdi32 -luser32 - QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32 - QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain - ---- a/qtbase/src/src.pro.orig 2012-12-16 18:00:31.803375714 +0100 -+++ b/qtbase/src/src.pro 2012-12-16 18:00:25.883273471 +0100 -@@ -114,10 +114,6 @@ - SUBDIRS += src_3rdparty_harfbuzzng - src_gui.depends += src_3rdparty_harfbuzzng - } -- win32:contains(QT_CONFIG, angle)|contains(QT_CONFIG, dynamicgl) { -- SUBDIRS += src_angle -- src_gui.depends += src_angle -- } - SUBDIRS += src_gui src_platformsupport - contains(QT_CONFIG, opengl(es1|es2)?):SUBDIRS += src_openglextensions - src_plugins.depends += src_gui src_platformsupport ---- a/qtbase/src/plugins/platforms/windows/windows.pri.orig 2012-12-21 19:32:52.519838959 +0100 -+++ b/qtbase/src/plugins/platforms/windows/windows.pri 2012-12-21 19:34:11.913226062 +0100 -@@ -13,6 +13,7 @@ - !wince*:LIBS *= -luser32 -lwinspool -limm32 -lwinmm -loleaut32 - - contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles2):!contains(QT_CONFIG, dynamicgl): LIBS *= -lopengl32 -+contains(QT_CONFIG, angle):LIBS += -lGLESv2 -lEGL - - mingw: LIBS *= -luuid - # For the dialog helpers: ---- a/qtbase/src/opengl/opengl.pro.orig 2012-12-21 19:30:29.916330288 +0100 -+++ b/qtbase/src/opengl/opengl.pro 2012-12-21 19:31:01.279878067 +0100 -@@ -15,6 +15,10 @@ - contains(QT_CONFIG, opengles2):CONFIG += opengles2 - contains(QT_CONFIG, egl):CONFIG += egl - -+win32:contains(QT_CONFIG, angle) { -+ LIBS_PRIVATE += -lGLESv2 -+} -+ - HEADERS += qgl.h \ - qgl_p.h \ - qglcolormap.h \ ---- a/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in.orig 2013-10-22 23:56:20.562965370 +0200 -+++ b/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in 2013-10-22 23:57:16.142476851 +0200 +--- a/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in 2014-12-05 09:24:36.000000000 -0700 ++++ b/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in 2014-12-11 10:19:51.599972209 -0700 @@ -2,9 +2,9 @@ !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE) @@ -61,10 +12,10 @@ !!ENDIF _qt5_Gui_check_file_exists(${Qt5Gui_EGL_INCLUDE_DIRS}) ---- a/qtbase/src/gui/gui.pro.orig 2013-10-23 00:12:41.084984399 +0200 -+++ b/qtbase/src/gui/gui.pro 2013-10-23 00:14:29.872985611 +0200 -@@ -12,12 +12,6 @@ - platforms \ +--- a/qtbase/src/gui/gui.pro 2014-12-05 09:24:35.000000000 -0700 ++++ b/qtbase/src/gui/gui.pro 2014-12-11 10:22:37.644366784 -0700 +@@ -15,12 +15,6 @@ + iconengines \ imageformats -# This is here only because the platform plugin is no module, obviously. @@ -76,7 +27,7 @@ load(qt_module) # Code coverage with TestCocoon -@@ -30,6 +30,10 @@ +@@ -33,6 +27,10 @@ mac:!ios: LIBS_PRIVATE += -framework Cocoa @@ -87,7 +38,7 @@ CONFIG += simd optimize_full include(accessible/accessible.pri) -@@ -50,13 +50,21 @@ +@@ -55,13 +53,21 @@ contains(QT_CONFIG, angle) { CMAKE_GL_INCDIRS = $$CMAKE_INCLUDE_DIR CMAKE_ANGLE_EGL_DLL_RELEASE = libEGL.dll @@ -102,8 +53,8 @@ + win32-g++* { + CMAKE_ANGLE_EGL_IMPLIB_RELEASE = libEGL.dll.a + CMAKE_ANGLE_GLES2_IMPLIB_RELEASE = libGLESv2.dll.a -+ CMAKE_ANGLE_EGL_IMPLIB_DEBUG = libEGL.dll.a -+ CMAKE_ANGLE_GLES2_IMPLIB_DEBUG = libGLESv2.dll.a ++ CMAKE_ANGLE_EGL_IMPLIB_DEBUG = libEGLd.dll.a ++ CMAKE_ANGLE_GLES2_IMPLIB_DEBUG = libGLESv2d.dll.a + } else { + CMAKE_ANGLE_EGL_IMPLIB_RELEASE = libEGL.lib + CMAKE_ANGLE_GLES2_IMPLIB_RELEASE = libGLESv2.lib @@ -113,3 +64,50 @@ CMAKE_QT_OPENGL_IMPLEMENTATION = GLESv2 } else { +--- a/qtbase/src/opengl/opengl.pro 2014-12-05 09:24:31.000000000 -0700 ++++ b/qtbase/src/opengl/opengl.pro 2014-12-11 10:15:45.884805707 -0700 +@@ -13,6 +13,10 @@ + contains(QT_CONFIG, opengl):CONFIG += opengl + contains(QT_CONFIG, opengles2):CONFIG += opengles2 + ++win32:contains(QT_CONFIG, angle) { ++ LIBS_PRIVATE += -lGLESv2 ++} ++ + HEADERS += qgl.h \ + qgl_p.h \ + qglcolormap.h \ +--- a/qtbase/src/plugins/platforms/windows/windows.pri 2014-12-05 09:24:37.000000000 -0700 ++++ b/qtbase/src/plugins/platforms/windows/windows.pri 2014-12-11 10:13:45.228261276 -0700 +@@ -3,6 +3,7 @@ + !wince*:LIBS *= -luser32 -lwinspool -limm32 -lwinmm -loleaut32 + + contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles2):!contains(QT_CONFIG, dynamicgl): LIBS *= -lopengl32 ++contains(QT_CONFIG, angle):LIBS += -lGLESv2 -lEGL + + mingw: LIBS *= -luuid + # For the dialog helpers: +--- a/qtbase/src/src.pro 2014-12-05 09:24:31.000000000 -0700 ++++ b/qtbase/src/src.pro 2014-12-11 10:06:14.882845813 -0700 +@@ -140,10 +140,6 @@ + SUBDIRS += src_3rdparty_harfbuzzng + src_gui.depends += src_3rdparty_harfbuzzng + } +- win32:contains(QT_CONFIG, angle)|contains(QT_CONFIG, dynamicgl) { +- SUBDIRS += src_angle +- src_gui.depends += src_angle +- } + SUBDIRS += src_gui src_platformsupport src_platformheaders + contains(QT_CONFIG, opengl(es2)?):SUBDIRS += src_openglextensions + src_plugins.depends += src_gui src_platformsupport src_platformheaders +--- a/qtbase/src/plugins/platforms/windows/qwindowseglcontext.cpp 2014-12-05 09:24:37.000000000 -0700 ++++ b/qtbase/src/plugins/platforms/windows/qwindowseglcontext.cpp 2014-12-11 20:07:27.099190408 -0700 +@@ -40,7 +40,7 @@ + + #if defined(QT_OPENGL_ES_2_ANGLE) || defined(QT_OPENGL_DYNAMIC) + # define EGL_EGLEXT_PROTOTYPES +-# include ++# include + #endif + + QT_BEGIN_NAMESPACE diff --git a/mingw-w64-qt5-static/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch b/mingw-w64-qt5-static/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch index c63b8f9ac6..106b20761e 100644 --- a/mingw-w64-qt5-static/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch +++ b/mingw-w64-qt5-static/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch @@ -1,31 +1,21 @@ ---- x86_64/qtbase/src/corelib/tools/tools.pri.orig 2014-04-20 21:21:48.808906400 +0100 -+++ x86_64/qtbase/src/corelib/tools/tools.pri 2014-04-20 21:20:41.677381800 +0100 -@@ -159,11 +159,17 @@ - CONFIG(static, static|shared) { - CONFIG(debug, debug|release) { - LIBS_PRIVATE += -lsicuind -lsicuucd -lsicudtd -+ DEFINES += "U_LIB_SUFFIX_C_NAME=d" - } else { - LIBS_PRIVATE += -lsicuin -lsicuuc -lsicudt - } - } else { -- LIBS_PRIVATE += -licuin -licuuc -licudt -+ CONFIG(debug, debug|release) { -+ LIBS_PRIVATE += -licuind -licuucd -licudtd -+ DEFINES += "U_LIB_SUFFIX_C_NAME=d" -+ } else { -+ LIBS_PRIVATE += -licuin -licuuc -licudt -+ } - } - } else { - LIBS_PRIVATE += -licui18n -licuuc -licudata ---- x86_64/qtbase/config.tests/unix/icu/icu.pro.orig 2014-04-20 21:24:31.107015700 +0100 -+++ x86_64/qtbase/config.tests/unix/icu/icu.pro 2014-04-20 21:24:25.573813000 +0100 -@@ -5,6 +5,7 @@ +--- x86_64/qtbase/src/3rdparty/icu_dependency.pri.orig 2014-04-20 21:24:31.107015700 +0100 ++++ x86_64/qtbase/src/3rdparty/icu_dependency.pri 2014-04-20 21:24:25.573813000 +0100 +@@ -2,11 +2,17 @@ CONFIG(static, static|shared) { CONFIG(debug, debug|release) { - LIBS += -lsicuind -lsicuucd -lsicudtd + LIBS_PRIVATE += -lsicuind -lsicuucd -lsicudtd + DEFINES += "U_LIB_SUFFIX_C_NAME=d" } else { - LIBS += -lsicuin -lsicuuc -lsicudt + LIBS_PRIVATE += -lsicuin -lsicuuc -lsicudt } + } else { +- LIBS_PRIVATE += -licuin -licuuc -licudt ++ CONFIG(debug, debug|release) { ++ LIBS_PRIVATE += -licuind -licuucd -licudtd ++ DEFINES += "U_LIB_SUFFIX_C_NAME=d" ++ } else { ++ LIBS_PRIVATE += -licuin -licuuc -licudt ++ } + } + } else { + LIBS_PRIVATE += -licui18n -licuuc -licudata diff --git a/mingw-w64-qt5-static/0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch b/mingw-w64-qt5-static/0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch index 334d1243bc..fd1c32fb50 100644 --- a/mingw-w64-qt5-static/0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch +++ b/mingw-w64-qt5-static/0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch @@ -12,9 +12,9 @@ { A = 1, @@ -207,6 +211,10 @@ - SRV = 33, TXT = 16 }; + Q_ENUM(Type) +// Set PTR back what it previously contained. +#ifdef PTR_OLD_DEFINE +#define PTR PTR_OLD_DEFINE diff --git a/mingw-w64-qt5-static/0031-qt-5.5.0-workaround-BOOL-define-conflict.patch b/mingw-w64-qt5-static/0031-qt-5.5.0-workaround-BOOL-define-conflict.patch new file mode 100644 index 0000000000..2c8b066a5e --- /dev/null +++ b/mingw-w64-qt5-static/0031-qt-5.5.0-workaround-BOOL-define-conflict.patch @@ -0,0 +1,24 @@ +--- a/qtcanvas3d/src/imports/qtcanvas3d/context3d_p.h.orig 2015-07-02 11:38:07.087024200 +0300 ++++ b/qtcanvas3d/src/imports/qtcanvas3d/context3d_p.h 2015-07-02 11:46:54.641638300 +0300 +@@ -100,6 +100,10 @@ + Q_PROPERTY(uint drawingBufferHeight READ drawingBufferHeight NOTIFY drawingBufferHeightChanged) + + public: ++#ifdef BOOL ++#define BOOL_OLD_DEFINE BOOL ++#undef BOOL ++#endif + enum glEnums { + /* ClearBufferMask */ + DEPTH_BUFFER_BIT = 0x00000100, +@@ -543,6 +547,10 @@ + COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02, + COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03 + }; ++// Set BOOL back what it previously contained. ++#ifdef BOOL_OLD_DEFINE ++#define BOOL BOOL_OLD_DEFINE ++#endif + + /* ClearBufferMask */ + ENUM_AS_PROPERTY(DEPTH_BUFFER_BIT) diff --git a/mingw-w64-qt5-static/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch b/mingw-w64-qt5-static/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch index f745464156..a7e4edfb17 100644 --- a/mingw-w64-qt5-static/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch +++ b/mingw-w64-qt5-static/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch @@ -1,11 +1,11 @@ --- qtbase-opensource-src-5.3.2/qtbase/qmake/generators/win32/mingw_make.cpp.orig 2014-10-19 12:16:07.387600000 +0400 +++ qtbase-opensource-src-5.3.2/qtbase/qmake/generators/win32/mingw_make.cpp 2014-10-19 12:16:07.387600000 +0400 @@ -254,7 +254,7 @@ + processVars(); - if (!project->values("RES_FILE").isEmpty()) { -- project->values("QMAKE_LIBS") += escapeFilePaths(project->values("RES_FILE")); -+ project->values("OBJECTS") += escapeFilePaths(project->values("RES_FILE")); - } +- project->values("QMAKE_LIBS") += project->values("RES_FILE"); ++ project->values("OBJECTS") += project->values("RES_FILE"); - ProStringList &configs = project->values("CONFIG"); + if (project->isActiveConfig("dll")) { + QString destDir = ""; diff --git a/mingw-w64-qt5-static/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch b/mingw-w64-qt5-static/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch index 90f5d21db2..f4f3f29554 100644 --- a/mingw-w64-qt5-static/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch +++ b/mingw-w64-qt5-static/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch @@ -63,7 +63,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!ELSE add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) !!ENDIF -@@ -242,6 +260,44 @@ +@@ -242,6 +260,46 @@ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) @@ -95,7 +95,9 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c + get_filename_component(_pluginname ${PLUGIN_LOCATION} NAME) + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY STATIC_PLUGINS ${Plugin}) + string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/share/qt5/plugins/${_plugindirname}/\\\\1.prl\" plugin_prl_file_location ${_pluginname}) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) + macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"share/qt5/plugins\" ${PLUGIN_LOCATION} ) ++!!ENDIF + + endmacro() + @@ -105,9 +107,9 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c + endforeach() + endif() + + !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_RELEASE_TYPE) !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) - _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" ) @@ -316,38 +363,6 @@ !!ENDIF // CMAKE_DEBUG_TYPE diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index be0236a87c..4d25920b0e 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -73,9 +73,10 @@ fi #_opengl=angle _opengl=desktop +#_opengl=dynamic _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.4.2 +_ver_base=5.5.0 pkgver=${_ver_base//-/} pkgrel=3 arch=('any') @@ -125,7 +126,7 @@ makedepends=("bison" "${MINGW_PACKAGE_PREFIX}-openssl") $([[ "$_variant" == "-shared" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-libmariadbclient" \ - "${MINGW_PACKAGE_PREFIX}-firebird" \ + "${MINGW_PACKAGE_PREFIX}-firebird2" \ "${MINGW_PACKAGE_PREFIX}-postgresql") ) @@ -167,6 +168,7 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch 0029-qt-5.3.1-Revert-fix-quoting-and-path-separators-in-qtPrepareT.patch 0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch + 0031-qt-5.5.0-workaround-BOOL-define-conflict.patch 0031-qt-5.3.1-Fix-masm-pri-build-race-condition.patch 0032-qt-5.3.2-Disable-jitted-Regexp-for-Mingw-64-bit-94712.patch 0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch @@ -181,15 +183,15 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch 0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch) -md5sums=('c23bd0f14d66e7901d24906a1edce9b0' +md5sums=('65d5282f3dee0336da9ed1f77148952f' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' '53edcf1df69ae8134a196292447ddaa3' 'b0b5cc641cf8ebc2660fa819bede0089' '457b97833220a81f542f529e7e0c549c' - 'c09d0a1b6a08883e307c7f33dc2d2157' + 'e34eef5aeec14b5b2a55344392c14dc7' '0f2e3a2f790b07442f0964f4f2f96596' - '8ce562d034bb19aaec28ab3abe79bbab' + 'a8f02cb5eb766e5bb8639cf8771537d2' 'ea5f1d5bf2ea4c1d69e6b5de0765adfb' '6914a82ad728ff0da3c959f53367384c' 'a3d928580732a966bb20e5dd8bc25606' @@ -201,28 +203,29 @@ md5sums=('c23bd0f14d66e7901d24906a1edce9b0' '23f6818466f6b6646c13549110376022' 'e65e3ed10e2dd98d5402321657c809c4' '9ee6524aa78b5e4fbb47f10dc3b267a4' - 'acb49bb963a23b15bc7d1a93d8896bee' + '68b3878c96f4be33b2803e5676fe3245' 'd64536bcf72b63d15df106e2c9913154' '05e73ac3ead09802111cc13d8e3e28c8' '09aaa20fe92aa3fb8eaa36f805503d7d' - 'f6cd909c1dd549dea769734f6fe7bd73' + 'a73080c2a48ab52ec8888745daa28c99' '3b550bd6c58d09aa6729987ef16fed65' '47c0f36b9de94cf878cd29b7e2b6ea1b' '01e8030718f088178559a28958a05350' '6d86c1358be850376ed05c2913175c50' 'a264f298702e70007820ab2f37facffb' - '4b60988f913708dd8ee3a79a2eac4cae' + '2d2e68ab042aadc3c0fd6845dbfae79a' + '7b1e5e2538b71e1e4ba006a241c853b9' 'e009d2a1c7edc41c1f5974883d4f38b2' '516036cb0721d1603009e01f5bd728aa' '47e70b9a063aa99aba0096007ed5b83d' '3049f9e43e24f7eaafb4659c72ca4789' - 'cbef002e6f4b0d043ca6a6e9d60ceca5' + 'df6964dca18a315fab60adc0d7a7aedb' 'fbf568c6ed68ab4a372e03f9b84dafe8' 'f323f5016ab38ceb3f10673ef9ae4337' 'd66b2afce490ab8a82feae08c747e367' '92fb1954fe3ab91d99a09c7f8a878218' 'ab2cac300aa7a908ea8840649f0b51fc' - '7d8093f2b8b0347304159c0e5836f3aa' + 'f1d010fc441350b8ff20213714ecae74' '51016015352313cdd749ae1ff3e14614' '9bc9c1177134d0f2fd782db3f394a318' 'c9931b34f176490a48439de35556e535') @@ -320,6 +323,7 @@ prepare() { patch -p1 -i ${srcdir}/0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch popd > /dev/null + patch -p1 -i ${srcdir}/0031-qt-5.5.0-workaround-BOOL-define-conflict.patch # See discussion at https://bugreports.qt-project.org/browse/QTBUG-41292 # I think what is possibly happening instead is that the Debug and Release # builds are happening in parallel and this causes the error. While Ossi's @@ -403,9 +407,7 @@ build() { touch qtbase/.gitignore mkdir -p ${pkgdir}${_qt5_prefix} - pushd ${pkgdir}${_qt5_prefix} > /dev/null - QTDIR_WIN=$(pwd -W) - popd > /dev/null + local QTDIR_WIN=$(cygpath -am ${pkgdir}${_qt5_prefix}) local _freetype2_pkgconf="" if [ "${_freetype2}" = "-system-freetype" ]; then diff --git a/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch b/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch index aef0f1896f..719583ae5d 100644 --- a/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch +++ b/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch @@ -1,27 +1,43 @@ diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/preprocessor/preprocessor.pro b/qtbase/src/angle/src/compiler/preprocessor/preprocessor.pro --- a/qtbase/src/angle/src/compiler/preprocessor/preprocessor.pro 2014-05-02 23:06:13.969569900 +0100 +++ b/qtbase/src/angle/src/compiler/preprocessor/preprocessor.pro 2014-05-02 23:06:33.470685300 +0100 -@@ -41,7 +41,7 @@ +@@ -41,14 +41,14 @@ $$ANGLE_DIR/src/compiler/preprocessor/Token.cpp # NOTE: 'win_flex' and 'bison' can be found in qt5/gnuwin32/bin -flex.commands = $$addGnuPath(win_flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} -+flex.commands = $$addGnuPath(flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} ++flex.commands = flex --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} flex.output = ${QMAKE_FILE_BASE}.cpp flex.input = FLEX_SOURCES flex.dependency_type = TYPE_C + flex.variable_out = GENERATED_SOURCES + QMAKE_EXTRA_COMPILERS += flex + +-bison.commands = $$addGnuPath(win_bison) --no-lines --skeleton=yacc.c --output=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} ++bison.commands = bison --no-lines --skeleton=yacc.c --output=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} + bison.output = ${QMAKE_FILE_BASE}.cpp + bison.input = BISON_SOURCES + bison.dependency_type = TYPE_C diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/translator.pro b/qtbase/src/angle/src/compiler/translator.pro --- a/qtbase/src/angle/src/compiler/translator.pro 2014-05-02 23:06:13.969569900 +0100 +++ b/qtbase/src/angle/src/compiler/translator.pro 2014-05-02 23:06:33.467685100 +0100 -@@ -132,7 +132,7 @@ +@@ -132,14 +132,14 @@ } # NOTE: 'win_flex' and 'bison' can be found in qt5/gnuwin32/bin -flex.commands = $$addGnuPath(win_flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} -+flex.commands = $$addGnuPath(flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} ++flex.commands = flex --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} flex.output = ${QMAKE_FILE_BASE}_lex.cpp flex.input = FLEX_SOURCES flex.dependency_type = TYPE_C + flex.variable_out = GENERATED_SOURCES + QMAKE_EXTRA_COMPILERS += flex + +-bison.commands = $$addGnuPath(win_bison) --no-lines --skeleton=yacc.c --defines=${QMAKE_FILE_BASE}_tab.h \ ++bison.commands = bison --no-lines --skeleton=yacc.c --defines=${QMAKE_FILE_BASE}_tab.h \ + --output=${QMAKE_FILE_BASE}_tab.cpp ${QMAKE_FILE_NAME} + bison.output = ${QMAKE_FILE_BASE}_tab.h + bison.input = BISON_SOURCES diff -urN --ignore-all-space a/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf b/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf --- a/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf 2014-05-02 23:06:28.221385000 +0100 +++ b/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf 2014-05-02 23:06:33.474685500 +0100 diff --git a/mingw-w64-qt5/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch b/mingw-w64-qt5/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch index 6e894c62c6..a993071a2c 100644 --- a/mingw-w64-qt5/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch +++ b/mingw-w64-qt5/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch @@ -64,7 +64,7 @@ index 6d5764f..77e910b 100644 - + project->first("TARGET_VERSION_EXT") + ".a"); + + project->first("TARGET_VERSION_EXT") + + "." + getImportLibExtension()); - project->values("QMAKE_LFLAGS").append(QString("-Wl,--out-implib,") + project->first("MINGW_IMPORT_LIB")); + project->values("QMAKE_LFLAGS").append(QString("-Wl,--out-implib,") + fileVar("MINGW_IMPORT_LIB")); } diff --git a/qmake/generators/win32/mingw_make.h b/qmake/generators/win32/mingw_make.h @@ -72,13 +72,13 @@ index 0e12679..90e78ec 100644 --- a/qmake/generators/win32/mingw_make.h +++ b/qmake/generators/win32/mingw_make.h @@ -53,6 +53,7 @@ public: - ~MingwMakefileGenerator(); - protected: QString escapeDependencyPath(const QString &path) const; + ProString escapeDependencyPath(const ProString &path) const { return MakefileGenerator::escapeDependencyPath(path); } + virtual ProString fixLibFlag(const ProString &lib); + QString getImportLibExtension(); QString getLibTarget(); + virtual QString getManifestFileForRcFile() const; bool writeMakefile(QTextStream &); - void init(); -- 1.9.0 diff --git a/mingw-w64-qt5/0020-qt-5.3.0-use-external-angle-library.patch b/mingw-w64-qt5/0020-qt-5.3.0-use-external-angle-library.patch index 2984600503..b79ef19d22 100644 --- a/mingw-w64-qt5/0020-qt-5.3.0-use-external-angle-library.patch +++ b/mingw-w64-qt5/0020-qt-5.3.0-use-external-angle-library.patch @@ -1,54 +1,5 @@ ---- a/qtbase/mkspecs/win32-g++/qmake.conf.orig 2012-12-16 18:00:31.803375714 +0100 -+++ b/qtbase/mkspecs/win32-g++/qmake.conf 2012-12-16 18:00:25.883273471 +0100 -@@ -86,8 +86,8 @@ - QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32 - QMAKE_LIBS_NETWORK = -lws2_32 - QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32 --QMAKE_LIBS_OPENGL_ES2 = -llibEGL -llibGLESv2 -lgdi32 -luser32 --QMAKE_LIBS_OPENGL_ES2_DEBUG = -llibEGLd -llibGLESv2d -lgdi32 -luser32 -+QMAKE_LIBS_OPENGL_ES2 = -lEGL -lGLESv2 -lgdi32 -luser32 -+QMAKE_LIBS_OPENGL_ES2_DEBUG = -lEGL -lGLESv2 -lgdi32 -luser32 - QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32 - QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain - ---- a/qtbase/src/src.pro.orig 2012-12-16 18:00:31.803375714 +0100 -+++ b/qtbase/src/src.pro 2012-12-16 18:00:25.883273471 +0100 -@@ -114,10 +114,6 @@ - SUBDIRS += src_3rdparty_harfbuzzng - src_gui.depends += src_3rdparty_harfbuzzng - } -- win32:contains(QT_CONFIG, angle)|contains(QT_CONFIG, dynamicgl) { -- SUBDIRS += src_angle -- src_gui.depends += src_angle -- } - SUBDIRS += src_gui src_platformsupport - contains(QT_CONFIG, opengl(es1|es2)?):SUBDIRS += src_openglextensions - src_plugins.depends += src_gui src_platformsupport ---- a/qtbase/src/plugins/platforms/windows/windows.pri.orig 2012-12-21 19:32:52.519838959 +0100 -+++ b/qtbase/src/plugins/platforms/windows/windows.pri 2012-12-21 19:34:11.913226062 +0100 -@@ -13,6 +13,7 @@ - !wince*:LIBS *= -luser32 -lwinspool -limm32 -lwinmm -loleaut32 - - contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles2):!contains(QT_CONFIG, dynamicgl): LIBS *= -lopengl32 -+contains(QT_CONFIG, angle):LIBS += -lGLESv2 -lEGL - - mingw: LIBS *= -luuid - # For the dialog helpers: ---- a/qtbase/src/opengl/opengl.pro.orig 2012-12-21 19:30:29.916330288 +0100 -+++ b/qtbase/src/opengl/opengl.pro 2012-12-21 19:31:01.279878067 +0100 -@@ -15,6 +15,10 @@ - contains(QT_CONFIG, opengles2):CONFIG += opengles2 - contains(QT_CONFIG, egl):CONFIG += egl - -+win32:contains(QT_CONFIG, angle) { -+ LIBS_PRIVATE += -lGLESv2 -+} -+ - HEADERS += qgl.h \ - qgl_p.h \ - qglcolormap.h \ ---- a/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in.orig 2013-10-22 23:56:20.562965370 +0200 -+++ b/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in 2013-10-22 23:57:16.142476851 +0200 +--- a/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in 2014-12-05 09:24:36.000000000 -0700 ++++ b/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in 2014-12-11 10:19:51.599972209 -0700 @@ -2,9 +2,9 @@ !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE) @@ -61,10 +12,10 @@ !!ENDIF _qt5_Gui_check_file_exists(${Qt5Gui_EGL_INCLUDE_DIRS}) ---- a/qtbase/src/gui/gui.pro.orig 2013-10-23 00:12:41.084984399 +0200 -+++ b/qtbase/src/gui/gui.pro 2013-10-23 00:14:29.872985611 +0200 -@@ -12,12 +12,6 @@ - platforms \ +--- a/qtbase/src/gui/gui.pro 2014-12-05 09:24:35.000000000 -0700 ++++ b/qtbase/src/gui/gui.pro 2014-12-11 10:22:37.644366784 -0700 +@@ -15,12 +15,6 @@ + iconengines \ imageformats -# This is here only because the platform plugin is no module, obviously. @@ -76,7 +27,7 @@ load(qt_module) # Code coverage with TestCocoon -@@ -30,6 +30,10 @@ +@@ -33,6 +27,10 @@ mac:!ios: LIBS_PRIVATE += -framework Cocoa @@ -87,7 +38,7 @@ CONFIG += simd optimize_full include(accessible/accessible.pri) -@@ -50,13 +50,21 @@ +@@ -55,13 +53,21 @@ contains(QT_CONFIG, angle) { CMAKE_GL_INCDIRS = $$CMAKE_INCLUDE_DIR CMAKE_ANGLE_EGL_DLL_RELEASE = libEGL.dll @@ -102,8 +53,8 @@ + win32-g++* { + CMAKE_ANGLE_EGL_IMPLIB_RELEASE = libEGL.dll.a + CMAKE_ANGLE_GLES2_IMPLIB_RELEASE = libGLESv2.dll.a -+ CMAKE_ANGLE_EGL_IMPLIB_DEBUG = libEGL.dll.a -+ CMAKE_ANGLE_GLES2_IMPLIB_DEBUG = libGLESv2.dll.a ++ CMAKE_ANGLE_EGL_IMPLIB_DEBUG = libEGLd.dll.a ++ CMAKE_ANGLE_GLES2_IMPLIB_DEBUG = libGLESv2d.dll.a + } else { + CMAKE_ANGLE_EGL_IMPLIB_RELEASE = libEGL.lib + CMAKE_ANGLE_GLES2_IMPLIB_RELEASE = libGLESv2.lib @@ -113,3 +64,50 @@ CMAKE_QT_OPENGL_IMPLEMENTATION = GLESv2 } else { +--- a/qtbase/src/opengl/opengl.pro 2014-12-05 09:24:31.000000000 -0700 ++++ b/qtbase/src/opengl/opengl.pro 2014-12-11 10:15:45.884805707 -0700 +@@ -13,6 +13,10 @@ + contains(QT_CONFIG, opengl):CONFIG += opengl + contains(QT_CONFIG, opengles2):CONFIG += opengles2 + ++win32:contains(QT_CONFIG, angle) { ++ LIBS_PRIVATE += -lGLESv2 ++} ++ + HEADERS += qgl.h \ + qgl_p.h \ + qglcolormap.h \ +--- a/qtbase/src/plugins/platforms/windows/windows.pri 2014-12-05 09:24:37.000000000 -0700 ++++ b/qtbase/src/plugins/platforms/windows/windows.pri 2014-12-11 10:13:45.228261276 -0700 +@@ -3,6 +3,7 @@ + !wince*:LIBS *= -luser32 -lwinspool -limm32 -lwinmm -loleaut32 + + contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles2):!contains(QT_CONFIG, dynamicgl): LIBS *= -lopengl32 ++contains(QT_CONFIG, angle):LIBS += -lGLESv2 -lEGL + + mingw: LIBS *= -luuid + # For the dialog helpers: +--- a/qtbase/src/src.pro 2014-12-05 09:24:31.000000000 -0700 ++++ b/qtbase/src/src.pro 2014-12-11 10:06:14.882845813 -0700 +@@ -140,10 +140,6 @@ + SUBDIRS += src_3rdparty_harfbuzzng + src_gui.depends += src_3rdparty_harfbuzzng + } +- win32:contains(QT_CONFIG, angle)|contains(QT_CONFIG, dynamicgl) { +- SUBDIRS += src_angle +- src_gui.depends += src_angle +- } + SUBDIRS += src_gui src_platformsupport src_platformheaders + contains(QT_CONFIG, opengl(es2)?):SUBDIRS += src_openglextensions + src_plugins.depends += src_gui src_platformsupport src_platformheaders +--- a/qtbase/src/plugins/platforms/windows/qwindowseglcontext.cpp 2014-12-05 09:24:37.000000000 -0700 ++++ b/qtbase/src/plugins/platforms/windows/qwindowseglcontext.cpp 2014-12-11 20:07:27.099190408 -0700 +@@ -40,7 +40,7 @@ + + #if defined(QT_OPENGL_ES_2_ANGLE) || defined(QT_OPENGL_DYNAMIC) + # define EGL_EGLEXT_PROTOTYPES +-# include ++# include + #endif + + QT_BEGIN_NAMESPACE diff --git a/mingw-w64-qt5/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch b/mingw-w64-qt5/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch index c63b8f9ac6..106b20761e 100644 --- a/mingw-w64-qt5/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch +++ b/mingw-w64-qt5/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch @@ -1,31 +1,21 @@ ---- x86_64/qtbase/src/corelib/tools/tools.pri.orig 2014-04-20 21:21:48.808906400 +0100 -+++ x86_64/qtbase/src/corelib/tools/tools.pri 2014-04-20 21:20:41.677381800 +0100 -@@ -159,11 +159,17 @@ - CONFIG(static, static|shared) { - CONFIG(debug, debug|release) { - LIBS_PRIVATE += -lsicuind -lsicuucd -lsicudtd -+ DEFINES += "U_LIB_SUFFIX_C_NAME=d" - } else { - LIBS_PRIVATE += -lsicuin -lsicuuc -lsicudt - } - } else { -- LIBS_PRIVATE += -licuin -licuuc -licudt -+ CONFIG(debug, debug|release) { -+ LIBS_PRIVATE += -licuind -licuucd -licudtd -+ DEFINES += "U_LIB_SUFFIX_C_NAME=d" -+ } else { -+ LIBS_PRIVATE += -licuin -licuuc -licudt -+ } - } - } else { - LIBS_PRIVATE += -licui18n -licuuc -licudata ---- x86_64/qtbase/config.tests/unix/icu/icu.pro.orig 2014-04-20 21:24:31.107015700 +0100 -+++ x86_64/qtbase/config.tests/unix/icu/icu.pro 2014-04-20 21:24:25.573813000 +0100 -@@ -5,6 +5,7 @@ +--- x86_64/qtbase/src/3rdparty/icu_dependency.pri.orig 2014-04-20 21:24:31.107015700 +0100 ++++ x86_64/qtbase/src/3rdparty/icu_dependency.pri 2014-04-20 21:24:25.573813000 +0100 +@@ -2,11 +2,17 @@ CONFIG(static, static|shared) { CONFIG(debug, debug|release) { - LIBS += -lsicuind -lsicuucd -lsicudtd + LIBS_PRIVATE += -lsicuind -lsicuucd -lsicudtd + DEFINES += "U_LIB_SUFFIX_C_NAME=d" } else { - LIBS += -lsicuin -lsicuuc -lsicudt + LIBS_PRIVATE += -lsicuin -lsicuuc -lsicudt } + } else { +- LIBS_PRIVATE += -licuin -licuuc -licudt ++ CONFIG(debug, debug|release) { ++ LIBS_PRIVATE += -licuind -licuucd -licudtd ++ DEFINES += "U_LIB_SUFFIX_C_NAME=d" ++ } else { ++ LIBS_PRIVATE += -licuin -licuuc -licudt ++ } + } + } else { + LIBS_PRIVATE += -licui18n -licuuc -licudata diff --git a/mingw-w64-qt5/0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch b/mingw-w64-qt5/0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch index 334d1243bc..fd1c32fb50 100644 --- a/mingw-w64-qt5/0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch +++ b/mingw-w64-qt5/0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch @@ -12,9 +12,9 @@ { A = 1, @@ -207,6 +211,10 @@ - SRV = 33, TXT = 16 }; + Q_ENUM(Type) +// Set PTR back what it previously contained. +#ifdef PTR_OLD_DEFINE +#define PTR PTR_OLD_DEFINE diff --git a/mingw-w64-qt5/0031-qt-5.5.0-workaround-BOOL-define-conflict.patch b/mingw-w64-qt5/0031-qt-5.5.0-workaround-BOOL-define-conflict.patch new file mode 100644 index 0000000000..2c8b066a5e --- /dev/null +++ b/mingw-w64-qt5/0031-qt-5.5.0-workaround-BOOL-define-conflict.patch @@ -0,0 +1,24 @@ +--- a/qtcanvas3d/src/imports/qtcanvas3d/context3d_p.h.orig 2015-07-02 11:38:07.087024200 +0300 ++++ b/qtcanvas3d/src/imports/qtcanvas3d/context3d_p.h 2015-07-02 11:46:54.641638300 +0300 +@@ -100,6 +100,10 @@ + Q_PROPERTY(uint drawingBufferHeight READ drawingBufferHeight NOTIFY drawingBufferHeightChanged) + + public: ++#ifdef BOOL ++#define BOOL_OLD_DEFINE BOOL ++#undef BOOL ++#endif + enum glEnums { + /* ClearBufferMask */ + DEPTH_BUFFER_BIT = 0x00000100, +@@ -543,6 +547,10 @@ + COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02, + COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03 + }; ++// Set BOOL back what it previously contained. ++#ifdef BOOL_OLD_DEFINE ++#define BOOL BOOL_OLD_DEFINE ++#endif + + /* ClearBufferMask */ + ENUM_AS_PROPERTY(DEPTH_BUFFER_BIT) diff --git a/mingw-w64-qt5/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch b/mingw-w64-qt5/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch index f745464156..a7e4edfb17 100644 --- a/mingw-w64-qt5/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch +++ b/mingw-w64-qt5/0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch @@ -1,11 +1,11 @@ --- qtbase-opensource-src-5.3.2/qtbase/qmake/generators/win32/mingw_make.cpp.orig 2014-10-19 12:16:07.387600000 +0400 +++ qtbase-opensource-src-5.3.2/qtbase/qmake/generators/win32/mingw_make.cpp 2014-10-19 12:16:07.387600000 +0400 @@ -254,7 +254,7 @@ + processVars(); - if (!project->values("RES_FILE").isEmpty()) { -- project->values("QMAKE_LIBS") += escapeFilePaths(project->values("RES_FILE")); -+ project->values("OBJECTS") += escapeFilePaths(project->values("RES_FILE")); - } +- project->values("QMAKE_LIBS") += project->values("RES_FILE"); ++ project->values("OBJECTS") += project->values("RES_FILE"); - ProStringList &configs = project->values("CONFIG"); + if (project->isActiveConfig("dll")) { + QString destDir = ""; diff --git a/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch b/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch index d6a8e73a22..f4f3f29554 100644 --- a/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch +++ b/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch @@ -107,9 +107,9 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c + endforeach() + endif() + + !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_RELEASE_TYPE) !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) - _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" ) @@ -316,38 +363,6 @@ !!ENDIF // CMAKE_DEBUG_TYPE diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index cd4a069598..11def91b8a 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -73,11 +73,12 @@ fi #_opengl=angle _opengl=desktop +#_opengl=dynamic _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.4.2 +_ver_base=5.5.0 pkgver=${_ver_base//-/} -pkgrel=2 +pkgrel=1 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -108,7 +109,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" ) optdepends=($([[ "$_variant" == "-shared" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-libmariadbclient" \ - "${MINGW_PACKAGE_PREFIX}-libfbclient" \ + "${MINGW_PACKAGE_PREFIX}-firebird" \ "${MINGW_PACKAGE_PREFIX}-postgresql") ) makedepends=("bison" @@ -172,6 +173,7 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0028-qt-5.3.1-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch 0029-qt-5.3.1-Revert-fix-quoting-and-path-separators-in-qtPrepareT.patch 0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch + 0031-qt-5.5.0-workaround-BOOL-define-conflict.patch 0031-qt-5.3.1-Fix-masm-pri-build-race-condition.patch 0032-qt-5.3.2-Disable-jitted-Regexp-for-Mingw-64-bit-94712.patch 0033-qt-5.3.2-Use-QMAKE_EXTENSION_STATICLIB-in-create_cmake-prf.patch @@ -187,15 +189,15 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch 0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch) -md5sums=('c23bd0f14d66e7901d24906a1edce9b0' +md5sums=('65d5282f3dee0336da9ed1f77148952f' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' '53edcf1df69ae8134a196292447ddaa3' 'b0b5cc641cf8ebc2660fa819bede0089' '457b97833220a81f542f529e7e0c549c' - 'c09d0a1b6a08883e307c7f33dc2d2157' + 'e34eef5aeec14b5b2a55344392c14dc7' '0f2e3a2f790b07442f0964f4f2f96596' - '8ce562d034bb19aaec28ab3abe79bbab' + 'a8f02cb5eb766e5bb8639cf8771537d2' 'ea5f1d5bf2ea4c1d69e6b5de0765adfb' '6914a82ad728ff0da3c959f53367384c' 'a3d928580732a966bb20e5dd8bc25606' @@ -207,28 +209,29 @@ md5sums=('c23bd0f14d66e7901d24906a1edce9b0' '23f6818466f6b6646c13549110376022' 'e65e3ed10e2dd98d5402321657c809c4' '9ee6524aa78b5e4fbb47f10dc3b267a4' - 'acb49bb963a23b15bc7d1a93d8896bee' + '68b3878c96f4be33b2803e5676fe3245' 'd64536bcf72b63d15df106e2c9913154' '05e73ac3ead09802111cc13d8e3e28c8' '09aaa20fe92aa3fb8eaa36f805503d7d' - 'f6cd909c1dd549dea769734f6fe7bd73' + 'a73080c2a48ab52ec8888745daa28c99' '3b550bd6c58d09aa6729987ef16fed65' '47c0f36b9de94cf878cd29b7e2b6ea1b' '01e8030718f088178559a28958a05350' '6d86c1358be850376ed05c2913175c50' 'a264f298702e70007820ab2f37facffb' - '4b60988f913708dd8ee3a79a2eac4cae' + '2d2e68ab042aadc3c0fd6845dbfae79a' + '7b1e5e2538b71e1e4ba006a241c853b9' 'e009d2a1c7edc41c1f5974883d4f38b2' '516036cb0721d1603009e01f5bd728aa' '47e70b9a063aa99aba0096007ed5b83d' '3049f9e43e24f7eaafb4659c72ca4789' - 'cbef002e6f4b0d043ca6a6e9d60ceca5' + 'df6964dca18a315fab60adc0d7a7aedb' 'fbf568c6ed68ab4a372e03f9b84dafe8' 'f323f5016ab38ceb3f10673ef9ae4337' 'd66b2afce490ab8a82feae08c747e367' '92fb1954fe3ab91d99a09c7f8a878218' 'ab2cac300aa7a908ea8840649f0b51fc' - '7fb83b02387cfe5452cc0a95a7e2e551' + 'f1d010fc441350b8ff20213714ecae74' 'd9e0f8a09b24757c274187469c7661d4' '51016015352313cdd749ae1ff3e14614' '9bc9c1177134d0f2fd782db3f394a318' @@ -327,6 +330,8 @@ prepare() { patch -p1 -i ${srcdir}/0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch popd > /dev/null + patch -p1 -i ${srcdir}/0031-qt-5.5.0-workaround-BOOL-define-conflict.patch + # See discussion at https://bugreports.qt-project.org/browse/QTBUG-41292 # I think what is possibly happening instead is that the Debug and Release # builds are happening in parallel and this causes the error. While Ossi's @@ -412,9 +417,7 @@ build() { touch qtbase/.gitignore mkdir -p ${pkgdir}${_qt5_prefix} - pushd ${pkgdir}${_qt5_prefix} > /dev/null - QTDIR_WIN=$(pwd -W) - popd > /dev/null + local QTDIR_WIN=$(cygpath -am ${pkgdir}${_qt5_prefix}) local _freetype2_pkgconf="" if [ "${_freetype2}" = "-system-freetype" ]; then diff --git a/mingw-w64-qtbinpatcher/002-qt-5.5-compatibility.patch b/mingw-w64-qtbinpatcher/002-qt-5.5-compatibility.patch new file mode 100644 index 0000000000..5a85dac165 --- /dev/null +++ b/mingw-w64-qtbinpatcher/002-qt-5.5-compatibility.patch @@ -0,0 +1,10 @@ +--- qtbinpatcher-2.1.4/QtBinPatcher.cpp.orig 2015-07-03 09:39:13.399693800 +0300 ++++ qtbinpatcher-2.1.4/QtBinPatcher.cpp 2015-07-03 10:44:04.574537400 +0300 +@@ -178,6 +178,7 @@ + + static const TParam Params[] = { + { "QT_INSTALL_PREFIX", "qt_prfxpath="}, ++ { "QT_INSTALL_PREFIX", "qt_epfxpath="}, + { "QT_INSTALL_ARCHDATA", "qt_adatpath="}, + { "QT_INSTALL_DOCS", "qt_docspath="}, + { "QT_INSTALL_HEADERS", "qt_hdrspath="}, diff --git a/mingw-w64-qtbinpatcher/PKGBUILD b/mingw-w64-qtbinpatcher/PKGBUILD index 7b3d3e6649..4d6075653d 100644 --- a/mingw-w64-qtbinpatcher/PKGBUILD +++ b/mingw-w64-qtbinpatcher/PKGBUILD @@ -3,21 +3,25 @@ _realname=qtbinpatcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.4 -pkgrel=2 +pkgrel=3 pkgdesc="Patcher for Qt libraries (mingw-w64)" arch=('any') url="http://tver-soft.org" license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") options=('staticlibs' 'strip') -source=(http://tver-soft.org/dl/${_realname}-${pkgver}.tar.bz2 - 001-minimize-files-touching.patch) -md5sums=('2a2d77cf6d8b423977c177bb3b8f4288' - 'c3c99f967b7c619d351740f155adc012') +source=(${_realname}-${pkgver}.tar.gz::https://github.com/tver-soft/QtBinPatcher/archive/v${pkgver}.tar.gz + #http://tver-soft.org/dl/${_realname}-${pkgver}.tar.bz2 + 001-minimize-files-touching.patch + 002-qt-5.5-compatibility.patch) +md5sums=('cb7dcc9a40b8e46bb09a768426b7025b' + 'c3c99f967b7c619d351740f155adc012' + '86f2aca492184fb8ff8e40b6b94d5ef1') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-minimize-files-touching.patch + patch -p1 -i ${srcdir}/002-qt-5.5-compatibility.patch } build() { From fac4a50b7f2559cb9e0efba75af0bf05e4a4f069 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 5 Jul 2015 21:33:40 +0300 Subject: [PATCH 1249/2060] sfml: Fix dependencies. --- mingw-w64-sfml/PKGBUILD | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mingw-w64-sfml/PKGBUILD b/mingw-w64-sfml/PKGBUILD index d2fa45fa90..2343d2f0b0 100644 --- a/mingw-w64-sfml/PKGBUILD +++ b/mingw-w64-sfml/PKGBUILD @@ -3,7 +3,7 @@ _realname=sfml pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.3 -pkgrel=1 +pkgrel=2 pkgdesc="A simple, fast, cross-platform, and object-oriented multimedia API (mingw-w64)" arch=('any') url="http://www.sfml-dev.org/" @@ -14,7 +14,10 @@ depends=("${MINGW_PACKAGE_PREFIX}-flac" "${MINGW_PACKAGE_PREFIX}-libjpeg" "${MINGW_PACKAGE_PREFIX}-libvorbis" "${MINGW_PACKAGE_PREFIX}-openal") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "doxygen" "unzip") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "unzip") source=(http://www.sfml-dev.org/files/SFML-${pkgver}-sources.zip mingw-w64-msys2.patch) md5sums=('abc06b4cdef6531143ac0221cd1b184a' @@ -30,9 +33,11 @@ prepare() { build() { [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DSFML_BUILD_EXAMPLES=1 \ -DSFML_BUILD_DOC=1 \ -DSFML_INSTALL_PKGCONFIG_FILES=ON \ @@ -44,12 +49,7 @@ build() { package() { cd build-${MINGW_CHOST} - make install - - local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) - for file in ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/*.pc; do - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${file} - done + make DESTDIR=${pkgdir} install install -Dm644 "${pkgdir}${MINGW_PREFIX}/share/SFML/cmake/Modules/FindSFML.cmake" "${pkgdir}${MINGW_PREFIX}/share/cmake-3.2/Modules/FindSFML.cmake" install -Dm644 ${srcdir}/SFML-${pkgver}/license.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" From 6514497c4fe3c7ef8f7b81ca4a3be057227a56b7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 6 Jul 2015 16:52:48 +0300 Subject: [PATCH 1250/2060] === Rebuild with GCC-5.1.0. Part III === --- mingw-w64-cairo/PKGBUILD | 2 +- ...-GetHostTriple-for-mingw-w64-in-msys.patch | 27 +++++ ...-x86-arch-name-to-i686-for-mingw-w64.patch | 26 +++++ mingw-w64-clang/PKGBUILD | 37 ++++--- ...asminfo-for-mingw-arm-and-cygwin-arm.patch | 2 +- mingw-w64-cmake/PKGBUILD | 14 +-- mingw-w64-cppunit/PKGBUILD | 5 +- mingw-w64-gd/PKGBUILD | 4 +- mingw-w64-ghostscript/PKGBUILD | 36 ++++--- mingw-w64-librsvg/PKGBUILD | 18 ++-- mingw-w64-libspectre/PKGBUILD | 15 +-- mingw-w64-libvpx/PKGBUILD | 12 +-- mingw-w64-libwmf/PKGBUILD | 23 ++--- mingw-w64-pango/PKGBUILD | 2 +- mingw-w64-poppler-data/PKGBUILD | 2 +- mingw-w64-poppler/PKGBUILD | 8 +- mingw-w64-python-babel/PKGBUILD | 86 ++++++++++++++++ mingw-w64-python-babel/babel-fix.patch | 98 +++++++++++++++++++ mingw-w64-python-colorama/PKGBUILD | 78 +++++++++++++++ mingw-w64-python-jinja/PKGBUILD | 35 +++---- mingw-w64-python-pygments/PKGBUILD | 49 +++++----- mingw-w64-python-pytz/PKGBUILD | 33 +++---- mingw-w64-python-six/PKGBUILD | 18 ++-- mingw-w64-python-snowballstemmer/PKGBUILD | 75 ++++++++++++++ .../PKGBUILD | 75 ++++++++++++++ mingw-w64-python-sphinx/PKGBUILD | 63 ++++++++---- mingw-w64-python-sphinx_rtd_theme/PKGBUILD | 75 ++++++++++++++ ...03-add-generator-header-installs.1.4.patch | 12 --- ...-many-files-to-installed-headers.1.4.patch | 6 +- ...tch => 0090-WIP-Xcode-generator.1.4.patch} | 7 +- ...091-Disable-WIP-Xcode-generator.1.4.patch} | 0 mingw-w64-qbs/PKGBUILD | 56 ++++++----- .../002-qt-5.5-compatibility.patch | 10 -- mingw-w64-qtbinpatcher/PKGBUILD | 13 +-- mingw-w64-qtcreator/PKGBUILD | 4 +- mingw-w64-wxPython/001-mingw-python.patch | 13 +++ mingw-w64-wxPython/PKGBUILD | 13 +-- mingw-w64-wxwidgets/PKGBUILD | 10 +- 38 files changed, 805 insertions(+), 257 deletions(-) create mode 100644 mingw-w64-clang/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch create mode 100644 mingw-w64-clang/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch create mode 100644 mingw-w64-python-babel/PKGBUILD create mode 100644 mingw-w64-python-babel/babel-fix.patch create mode 100644 mingw-w64-python-colorama/PKGBUILD create mode 100644 mingw-w64-python-snowballstemmer/PKGBUILD create mode 100644 mingw-w64-python-sphinx-alabaster-theme/PKGBUILD create mode 100644 mingw-w64-python-sphinx_rtd_theme/PKGBUILD rename mingw-w64-qbs/{0002-WIP-Xcode-generator.1.4.patch => 0090-WIP-Xcode-generator.1.4.patch} (99%) rename mingw-w64-qbs/{0009-Disable-WIP-Xcode-generator.1.4.patch => 0091-Disable-WIP-Xcode-generator.1.4.patch} (100%) delete mode 100644 mingw-w64-qtbinpatcher/002-qt-5.5-compatibility.patch diff --git a/mingw-w64-cairo/PKGBUILD b/mingw-w64-cairo/PKGBUILD index 8d49aeeaff..70ba545994 100644 --- a/mingw-w64-cairo/PKGBUILD +++ b/mingw-w64-cairo/PKGBUILD @@ -4,7 +4,7 @@ _realname=cairo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.14.2 -pkgrel=1 +pkgrel=2 pkgdesc="Cairo vector graphics library (mingw-w64)" arch=('any') url="http://cairographics.org" diff --git a/mingw-w64-clang/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch b/mingw-w64-clang/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch new file mode 100644 index 0000000000..a919a30e25 --- /dev/null +++ b/mingw-w64-clang/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch @@ -0,0 +1,27 @@ +From 12d299345b51c1686c1d82986de6de020970bb57 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sun, 28 Jun 2015 20:14:51 +0100 +Subject: [PATCH] Fix GetHostTriple for mingw-w64 in msys + + +diff --git a/cmake/modules/GetHostTriple.cmake b/cmake/modules/GetHostTriple.cmake +index 671a8ce..45c47e1 100644 +--- a/cmake/modules/GetHostTriple.cmake ++++ b/cmake/modules/GetHostTriple.cmake +@@ -8,11 +8,11 @@ function( get_host_triple var ) + else() + set( value "i686-pc-win32" ) + endif() +- elseif( MINGW AND NOT MSYS ) ++ elseif( MINGW ) + if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + set( value "x86_64-w64-mingw32" ) + else() +- set( value "i686-pc-mingw32" ) ++ set( value "i686-w64-mingw32" ) + endif() + else( MSVC ) + set(config_guess ${LLVM_MAIN_SRC_DIR}/autoconf/config.guess) +-- +2.4.5 + diff --git a/mingw-w64-clang/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch b/mingw-w64-clang/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch new file mode 100644 index 0000000000..90824a9c31 --- /dev/null +++ b/mingw-w64-clang/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch @@ -0,0 +1,26 @@ +From 57def79f5d6e97f5b353b22a5fb856e627cdf061 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sun, 28 Jun 2015 19:12:19 +0100 +Subject: [PATCH] Set the x86 arch name to i686 for mingw-w64 + + +diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp +index 5451132..a6852b6 100644 +--- a/lib/Driver/Driver.cpp ++++ b/lib/Driver/Driver.cpp +@@ -1991,6 +1991,12 @@ static llvm::Triple computeTargetTriple(StringRef DefaultTargetTriple, + + if (AT != llvm::Triple::UnknownArch && AT != Target.getArch()) + Target.setArch(AT); ++ ++ // Override the default ArchName of 'i386' for mingw-w64 targets when passed -m32. ++ if (AT == llvm::Triple::x86 && Target.isWindowsGNUEnvironment() && ++ Target.getVendorName().equals(StringRef("w64"))) ++ Target.setArchName(StringRef("i686")); ++ + } + + return Target; +-- +2.4.5 + diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index adb34d3d86..b6b0302a00 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -8,7 +8,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" #"${MINGW_PACKAGE_PREFIX}-compiler-rt" ) pkgver=3.6.1 -pkgrel=3 +pkgrel=4 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -19,17 +19,20 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "python2" "tar") depends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz{,.sig} - http://llvm.org/releases/$pkgver/cfe-$pkgver.src.tar.xz{,.sig} - http://llvm.org/releases/$pkgver/compiler-rt-$pkgver.src.tar.xz{,.sig} - http://llvm.org/releases/$pkgver/test-suite-$pkgver.src.tar.xz{,.sig} - http://llvm.org/releases/$pkgver/libcxx-$pkgver.src.tar.xz{,.sig} - http://llvm.org/releases/$pkgver/clang-tools-extra-$pkgver.src.tar.xz{,.sig} - http://llvm.org/releases/$pkgver/lldb-$pkgver.src.tar.xz{,.sig} +source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} + http://llvm.org/releases/${pkgver}/cfe-${pkgver}.src.tar.xz{,.sig} + http://llvm.org/releases/${pkgver}/compiler-rt-${pkgver}.src.tar.xz{,.sig} + http://llvm.org/releases/${pkgver}/test-suite-${pkgver}.src.tar.xz{,.sig} + http://llvm.org/releases/${pkgver}/libcxx-${pkgver}.src.tar.xz{,.sig} + http://llvm.org/releases/${pkgver}/clang-tools-extra-${pkgver}.src.tar.xz{,.sig} + http://llvm.org/releases/${pkgver}/lldb-${pkgver}.src.tar.xz{,.sig} asminfo-for-mingw-arm-and-cygwin-arm.patch clang-mingw-driver.patch mingw-arm-and-cygwin-arm-target.patch - llvm-3.5.0-fix-cmake-llvm-exports.patch) + llvm-3.5.0-fix-cmake-llvm-exports.patch + 0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch + 0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch + ) sha256sums=('2f00c615913aa0b56607ee1548936e60ad2aa89e6d56f23fb032a4463366fc7a' 'SKIP' '74f92d0c93b86678b015e87655f59474b2f657769680efdeb3c0524ffbd2dad7' @@ -44,16 +47,18 @@ sha256sums=('2f00c615913aa0b56607ee1548936e60ad2aa89e6d56f23fb032a4463366fc7a' 'SKIP' 'cefb5c64e78e85ad05a06b80f017ccfe1208b74d3da34eb425c505c6fef9aaba' 'SKIP' - 'd52e3c0226bbedac412a69ac0cbb58f26c5546820240f59fa1dbb8e825ff7b6b' + 'b37ad0edb84ef13e0750c7f8d41441363859928cb9133d05f248afa41f44fc93' '7c9366df58b27378c104d37466caa761873440e5fbee707d3d22693add5d2cdb' '5727fb67902b9cb3ef4e1c57bf16128076911b8bf58357f65e5c5201a6b59629' - '841a153d0e9d2d196ea5318388ff295e69c41547eb73b24edf92a1b2cc3cccdd') + '841a153d0e9d2d196ea5318388ff295e69c41547eb73b24edf92a1b2cc3cccdd' + '0804146b32138d55c611336cc81e1783c29a8fab0fe62f248ba1ad7acc711c4d' + '13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de') validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') noextract=(cfe-${pkgver}.src.tar.xz - libcxx-$pkgver.src.tar.xz - lldb-$pkgver.src.tar.xz - test-suite-$pkgver.src.tar.xz) + libcxx-${pkgver}.src.tar.xz + lldb-${pkgver}.src.tar.xz + test-suite-${pkgver}.src.tar.xz) prepare() { plain "Extracting clang-${pkgver}.src.tar.xz due to symlink(s) without pre-existing target(s)" @@ -61,11 +66,13 @@ prepare() { [[ -d ${srcdir}/cfe-${pkgver} ]] || tar -xJvf ${srcdir}/cfe-${pkgver}.src.tar.xz -C ${srcdir} || true cd "${srcdir}/llvm-${pkgver}.src" - patch -p1 -i ${srcdir}/asminfo-for-mingw-arm-and-cygwin-arm + patch -p1 -i ${srcdir}/asminfo-for-mingw-arm-and-cygwin-arm.patch + patch -p1 -i ${srcdir}/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch cd "${srcdir}/cfe-${pkgver}.src" patch -p1 -i ${srcdir}/clang-mingw-driver.patch patch -p1 -i ${srcdir}/mingw-arm-and-cygwin-arm-target.patch + patch -p1 -i ${srcdir}/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch mv "${srcdir}/llvm-${pkgver}.src" "$srcdir/llvm-${pkgver}" cd "${srcdir}/llvm-${pkgver}" diff --git a/mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch b/mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch index 0ee55a1a61..25239bd098 100644 --- a/mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch +++ b/mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch @@ -11,7 +11,7 @@ index 92c4d6a..e518d2e 100644 @@ -282,7 +282,9 @@ static MCAsmInfo *createARMMCAsmInfo(const MCRegisterInfo &MRI, MCAsmInfo *MAI; if (TheTriple.isOSDarwin() || TheTriple.isOSBinFormatMachO()) - MAI = new ARMMCAsmInfoDarwin(TheTriple); + MAI = new ARMMCAsmInfoDarwin(TT); - else if (TheTriple.isWindowsItaniumEnvironment()) + else if (TheTriple.isWindowsItaniumEnvironment() || + TheTriple.isWindowsGNUEnvironment() || diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index f2f60cb1a6..a26146dc92 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -3,7 +3,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.2.3 -pkgrel=3 +pkgrel=4 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -12,13 +12,13 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-qt5") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-curl" - "${MINGW_PACKAGE_PREFIX}-expat" - "${MINGW_PACKAGE_PREFIX}-jsoncpp" - "${MINGW_PACKAGE_PREFIX}-libarchive" - "${MINGW_PACKAGE_PREFIX}-zlib") + "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-jsoncpp" + "${MINGW_PACKAGE_PREFIX}-libarchive" + "${MINGW_PACKAGE_PREFIX}-zlib") optdepends=("${MINGW_PACKAGE_PREFIX}-qt5: CMake Qt GUI") -options=('staticlibs') # '!strip' 'debug') +options=('staticlibs') # '!strip' 'debug' source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" diff --git a/mingw-w64-cppunit/PKGBUILD b/mingw-w64-cppunit/PKGBUILD index d297e1e34c..9ab0101263 100644 --- a/mingw-w64-cppunit/PKGBUILD +++ b/mingw-w64-cppunit/PKGBUILD @@ -3,7 +3,7 @@ _realname=cppunit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.13.2 -pkgrel=3 +pkgrel=4 pkgdesc="A C++ unit testing framework (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/cppunit" @@ -15,6 +15,7 @@ source=("http://dev-www.libreoffice.org/src/${_realname}-${pkgver}.tar.gz") md5sums=('d1c6bdd5a76c66d2c38331e2d287bc01') build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ @@ -28,5 +29,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-gd/PKGBUILD b/mingw-w64-gd/PKGBUILD index 386d1df1be..d54add36c2 100644 --- a/mingw-w64-gd/PKGBUILD +++ b/mingw-w64-gd/PKGBUILD @@ -3,7 +3,7 @@ _realname=gd pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.1 -pkgrel=2 +pkgrel=3 pkgdesc='Library for the dynamic creation of images by programmers (mingw-w64)' url='http://www.libgd.org/' arch=('any') @@ -46,7 +46,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install install -Dm644 ${srcdir}/libgd-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/libgd/LICENSE } diff --git a/mingw-w64-ghostscript/PKGBUILD b/mingw-w64-ghostscript/PKGBUILD index 8a41ebd639..ca0f7f6e7f 100644 --- a/mingw-w64-ghostscript/PKGBUILD +++ b/mingw-w64-ghostscript/PKGBUILD @@ -3,26 +3,24 @@ _realname=ghostscript pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=9.15 -pkgrel=2 +pkgrel=3 arch=('any') groups=("${MINGW_PACKAGE_PREFIX}") license=('AGPL' 'custom') pkgdesc="An interpreter for the PostScript language (mingw-w64)" -depends=( - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-jasper" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-libpng>=1.5.7" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libtiff>=4.0.0" - "${MINGW_PACKAGE_PREFIX}-lcms2" - "${MINGW_PACKAGE_PREFIX}-dbus" - "${MINGW_PACKAGE_PREFIX}-openjpeg" - "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" - ) +depends=("${MINGW_PACKAGE_PREFIX}-dbus" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" + "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-openjpeg" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-gnutls") -optdepends=("${MINGW_PACKAGE_PREFIX}-gtk3: needed for gsx") +optdepends=("${MINGW_PACKAGE_PREFIX}-gtk3: needed for gsx") url="http://www.ghostscript.com/" source=(http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2 mingw-build.patch @@ -35,7 +33,7 @@ md5sums=('0ee21d975c67a4883ba66bcc332418f5' '1fddb43d7ec2cd90a38291e6410d108d') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/mingw-build.patch patch -p1 -i ${srcdir}/ghostscript-sys-zlib.patch patch -p1 -i ${srcdir}/libspectre.patch @@ -52,7 +50,7 @@ prepare() { build() { - cd ${srcdir}/${_realname}-$pkgver + cd ${srcdir}/${_realname}-${pkgver} ./configure \ --prefix=${MINGW_PREFIX} \ --host=${MINGW_CHOST} \ @@ -72,8 +70,8 @@ build() } package() { - cd ${srcdir}/${_realname}-$pkgver - make DESTDIR="$pkgdir" soinstall + cd ${srcdir}/${_realname}-${pkgver} + make DESTDIR="${pkgdir}" soinstall # install missing doc files # http://bugs.archlinux.org/task/18023 install -m 644 "${srcdir}"/${_realname}-${pkgver}/doc/{Ps2ps2.htm,gs-vms.hlp,gsdoc.el,pscet_status.txt} "${pkgdir}${MINGW_PREFIX}"/share/${_realname}/$pkgver/doc/ diff --git a/mingw-w64-librsvg/PKGBUILD b/mingw-w64-librsvg/PKGBUILD index 7b6d6726d9..54a03ef8f0 100644 --- a/mingw-w64-librsvg/PKGBUILD +++ b/mingw-w64-librsvg/PKGBUILD @@ -3,7 +3,7 @@ _realname=librsvg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.40.9 -pkgrel=1 +pkgrel=2 pkgdesc="A SVG viewing library (mingw-w64)" arch=('any') url="https://live.gnome.org/LibRsvg" @@ -14,10 +14,12 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-vala" "setconf") -depends=("${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" "${MINGW_PACKAGE_PREFIX}-pango" "${MINGW_PACKAGE_PREFIX}-libcroco") +depends=("${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" + "${MINGW_PACKAGE_PREFIX}-pango" + "${MINGW_PACKAGE_PREFIX}-libcroco") optdepends=("${MINGW_PACKAGE_PREFIX}-gtk3: for rsvg-view-3") options=('staticlibs' 'strip') -source=("http://ftp.gnome.org/pub/gnome/sources/librsvg/${pkgver%.*}/${_realname}-$pkgver.tar.xz" +source=("http://ftp.gnome.org/pub/gnome/sources/librsvg/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" "0001-give-cc-to-gir-scanner.mingw.patch" "0005-hack-unixy-paths.patch") sha256sums=('13964c5d35357552b47d365c34215eee0a63bf0e6059b689f048648c6bf5f43a' @@ -25,17 +27,17 @@ sha256sums=('13964c5d35357552b47d365c34215eee0a63bf0e6059b689f048648c6bf5f43a' 'b23b094c0cb65fcbbbb952350448de6f3430b30f273e05acdbf7a56d634212dc') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i "$srcdir/0001-give-cc-to-gir-scanner.mingw.patch" - patch -p1 -i "$srcdir/0005-hack-unixy-paths.patch" + patch -p1 -i "${srcdir}/0001-give-cc-to-gir-scanner.mingw.patch" + patch -p1 -i "${srcdir}/0005-hack-unixy-paths.patch" autoreconf -fi } build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - cp -r ${srcdir}/${_realname}-$pkgver "${srcdir}/build-${MINGW_CHOST}" + cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" #mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" CXXFLAGS+=" -D_POSIX_SOURCE" @@ -53,7 +55,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libspectre/PKGBUILD b/mingw-w64-libspectre/PKGBUILD index a9da693cc5..a299a92871 100644 --- a/mingw-w64-libspectre/PKGBUILD +++ b/mingw-w64-libspectre/PKGBUILD @@ -3,22 +3,22 @@ _realname=libspectre pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.2.7 -pkgrel=1 +pkgrel=2 arch=('any') -pkgdesc="libspectre is a small library for rendering PostScript documents. It provides a convenient easy to use API for handling and rendering PostScript documents. (mingw-w64)" +pkgdesc="libspectre is a small library for rendering PostScript documents. It provides a convenient easy to use API for handling and rendering PostScript documents (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-ghostscript" "${MINGW_PACKAGE_PREFIX}-cairo") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-libidn" + "${MINGW_PACKAGE_PREFIX}-pkg-config" "libtool" "automake-wrapper" "autoconf" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-libidn" "make") options=('strip' 'staticlibs') license=("GPL 2") url="http://libspectre.freedesktop.org/" -source=(http://libspectre.freedesktop.org/releases/${_realname}-$pkgver.tar.gz) +source=(http://libspectre.freedesktop.org/releases/${_realname}-${pkgver}.tar.gz) sha256sums=('e81b822a106beed14cf0fec70f1b890c690c2ffa150fa2eee41dc26518a6c3ec') prepare() { @@ -37,10 +37,11 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libvpx/PKGBUILD b/mingw-w64-libvpx/PKGBUILD index c1d6a46285..519a16ad3e 100644 --- a/mingw-w64-libvpx/PKGBUILD +++ b/mingw-w64-libvpx/PKGBUILD @@ -3,13 +3,13 @@ _realname=libvpx pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.0 -pkgrel=1 +pkgrel=2 pkgdesc="The VP8 Codec SDK (mingw-w64)" arch=('any') license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-yasm") url=('http://www.webmproject.org/') -source=(https://github.com/webmproject/libvpx/archive/v${pkgver}.tar.gz +source=(${_realname}-${pkgver}.tar.gz::https://github.com/webmproject/libvpx/archive/v${pkgver}.tar.gz 0001-enable-shared-on.mingw.patch 0002-no-pthreads.mingw.patch 0003-cross-with-native-binutils.mingw.patch @@ -26,7 +26,7 @@ md5sums=('9e82cdcb2d2146f812b71c8a7a2686a3' '1a5f3e0e8ff8126fbfd8bb133e7e1c87') prepare() { - cd ${srcdir}/$_realname-$pkgver + cd ${srcdir}/${_realname}-${pkgver} patch -Np1 -i ${srcdir}/0001-enable-shared-on.mingw.patch patch -Np1 -i ${srcdir}/0002-no-pthreads.mingw.patch @@ -42,9 +42,9 @@ build() { else _targetarch="x86_64-win64-gcc" fi - mkdir -p $srcdir/build-$MINGW_CHOST - cd "$srcdir/build-$MINGW_CHOST" - ../$_realname-$pkgver/configure \ + mkdir -p ${srcdir}/build-${MINGW_CHOST} + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --target=${_targetarch} \ --enable-vp8 \ diff --git a/mingw-w64-libwmf/PKGBUILD b/mingw-w64-libwmf/PKGBUILD index 78f3498f96..8bf04621bf 100644 --- a/mingw-w64-libwmf/PKGBUILD +++ b/mingw-w64-libwmf/PKGBUILD @@ -1,27 +1,24 @@ # Maintainer: Alexey Pavlov _realname=libwmf - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.2.8.4 -pkgrel=2 +pkgrel=3 pkgdesc="Library for Converting Metafile Images (mingw-w64)" arch=('any') url="http://wvWare.sourceforge.net" license=("GPL" "LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "libtool" - ) + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "libtool") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" - "${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-zlib" - ) + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-zlib") options=('strip' 'staticlibs') source=(http://downloads.sourceforge.net/wvware/libwmf-${pkgver}.tar.gz libwmf-0.2.8.4-libpng.patch) diff --git a/mingw-w64-pango/PKGBUILD b/mingw-w64-pango/PKGBUILD index 9822bfb2f8..0afffdc176 100644 --- a/mingw-w64-pango/PKGBUILD +++ b/mingw-w64-pango/PKGBUILD @@ -4,7 +4,7 @@ _realname=pango pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.37.1 -pkgrel=1 +pkgrel=2 pkgdesc="A library for layout and rendering of text (mingw-w64)" arch=('any') url="http://www.pango.org" diff --git a/mingw-w64-poppler-data/PKGBUILD b/mingw-w64-poppler-data/PKGBUILD index 76e52b27d9..f6fe05d1a1 100644 --- a/mingw-w64-poppler-data/PKGBUILD +++ b/mingw-w64-poppler-data/PKGBUILD @@ -3,7 +3,7 @@ _realname=poppler-data pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.4.7 -pkgrel=1 +pkgrel=2 pkgdesc="Encoding data for the poppler PDF rendering library" arch=('any') license=('custom' 'GPL2') diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index 091219fa50..aafc5274e4 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -3,7 +3,7 @@ _realname=poppler pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.33.0 -pkgrel=1 +pkgrel=2 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') url="http://poppler.freedesktop.org" @@ -26,13 +26,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-cairo" optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" "${MINGW_PACKAGE_PREFIX}-qt5: libpoppler-qt5") options=('strip' 'staticlibs') -source=("http://poppler.freedesktop.org/poppler-${pkgver}.tar.xz" +source=("http://poppler.freedesktop.org/${_realname}-${pkgver}.tar.xz" "give-cc-to-gir-scanner.mingw.patch") md5sums=('69927d1614d6704021c0b0dd0ee6a852' '727c1b414987f6ee2ba841d9db57a967') prepare() { - cd "$srcdir/poppler-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i "$srcdir/give-cc-to-gir-scanner.mingw.patch" #sed -i -e '/AC_PATH_XTRA/d' configure.ac #sed -i "s:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:" configure.ac @@ -59,5 +59,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-python-babel/PKGBUILD b/mingw-w64-python-babel/PKGBUILD new file mode 100644 index 0000000000..a9c3136129 --- /dev/null +++ b/mingw-w64-python-babel/PKGBUILD @@ -0,0 +1,86 @@ +# Maintainer: Alexey Pavlov + +_realname=babel +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") +pkgver=1.3 +pkgrel=1 +pkgdesc="A collection of tools for internationalizing Python applications" +url="http://babel.pocoo.org/" +license=("BSD") +arch=('any') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-python2-pytz" + "${MINGW_PACKAGE_PREFIX}-python3-pytz") +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/mitsuhiko/babel/archive/${pkgver}.tar.gz" + babel-fix.patch) +md5sums=('752ecd661a4002d64ba07384404a2988' + '6fdce5263b6010a3d6d922df92360b74') + +prepare() { + cd ${srcdir}/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/babel-fix.patch + + cd ${srcdir} + cp -r ${_realname}-${pkgver} build-python2 + cp -r ${_realname}-${pkgver} build-python3 +} + +package_python3-babel() { + depends=("${MINGW_PACKAGE_PREFIX}-python3-pytz") + + cd ${srcdir}/build-python3 + ${MINGW_PREFIX}/bin/python3 setup.py import_cldr + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" + + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) + # fix python command in files + for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do + sed -e "s|${PREFIX_WIN}/bin/|/usr/bin/env |g" -i ${_f} + done +} + +package_python2-babel() { + depends=("${MINGW_PACKAGE_PREFIX}-python2-pytz") + + cd ${srcdir}/build-python2 + ${MINGW_PREFIX}/bin/python2 setup.py import_cldr + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" + + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) + # fix python command in files + for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do + sed -e "s|${PREFIX_WIN}/bin/|/usr/bin/env |g" -i ${_f} + done + + for f in pybabel; do + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe + if [ -f "${pkgdir}${MINGW_PREFIX}"/bin/${f}.exe.manifest ]; then + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe.manifest + sed -e "s|${f}|${f}2|g" -i "${pkgdir}${MINGW_PREFIX}"/bin/${f}2.exe.manifest + fi + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}-script.py + done +} + +package_mingw-w64-i686-python2-babel() { + package_python2-babel +} + +package_mingw-w64-i686-python3-babel() { + package_python3-babel +} + +package_mingw-w64-x86_64-python2-babel() { + package_python2-babel +} + +package_mingw-w64-x86_64-python3-babel() { + package_python3-babel +} diff --git a/mingw-w64-python-babel/babel-fix.patch b/mingw-w64-python-babel/babel-fix.patch new file mode 100644 index 0000000000..1b1ec3ac91 --- /dev/null +++ b/mingw-w64-python-babel/babel-fix.patch @@ -0,0 +1,98 @@ +diff -Naur babel-1.3-orig/babel/localtime/_win32.py babel-1.3/babel/localtime/_win32.py +--- babel-1.3-orig/babel/localtime/_win32.py 2013-07-29 15:33:20.000000000 +0400 ++++ babel-1.3/babel/localtime/_win32.py 2015-07-06 09:12:35.343528600 +0300 +@@ -10,8 +10,14 @@ + import pytz + + +-tz_names = get_global('windows_zone_mapping') +- ++# When building the cldr data on windows this module gets imported. ++# Because at that point there is no global.dat yet this call will ++# fail. We want to catch it down in that case then and just assume ++# the mapping was empty. ++try: ++ tz_names = get_global('windows_zone_mapping') ++except RuntimeError: ++ tz_names = {} + + def valuestodict(key): + """Convert a registry key's values to a dictionary.""" +diff -Naur babel-1.3-orig/babel/messages/frontend.py babel-1.3/babel/messages/frontend.py +--- babel-1.3-orig/babel/messages/frontend.py 2013-07-29 15:33:20.000000000 +0400 ++++ babel-1.3/babel/messages/frontend.py 2015-07-06 09:19:44.621596500 +0300 +@@ -128,7 +128,7 @@ + + for idx, (locale, po_file) in enumerate(po_files): + mo_file = mo_files[idx] +- infile = open(po_file, 'r') ++ infile = open(po_file, 'rb') + try: + catalog = read_po(infile, locale) + finally: +@@ -439,7 +439,7 @@ + log.info('creating catalog %r based on %r', self.output_file, + self.input_file) + +- infile = open(self.input_file, 'r') ++ infile = open(self.input_file, 'rb') + try: + # Although reading from the catalog template, read_po must be fed + # the locale in order to correctly calculate plurals +@@ -554,7 +554,7 @@ + if not domain: + domain = os.path.splitext(os.path.basename(self.input_file))[0] + +- infile = open(self.input_file, 'U') ++ infile = open(self.input_file, 'rb') + try: + template = read_po(infile) + finally: +@@ -566,7 +566,7 @@ + for locale, filename in po_files: + log.info('updating catalog %r based on %r', filename, + self.input_file) +- infile = open(filename, 'U') ++ infile = open(filename, 'rb') + try: + catalog = read_po(infile, locale=locale, domain=domain) + finally: +@@ -577,7 +577,7 @@ + tmpname = os.path.join(os.path.dirname(filename), + tempfile.gettempprefix() + + os.path.basename(filename)) +- tmpfile = open(tmpname, 'w') ++ tmpfile = open(tmpname, 'wb') + try: + try: + write_po(tmpfile, catalog, +@@ -760,7 +760,7 @@ + + for idx, (locale, po_file) in enumerate(po_files): + mo_file = mo_files[idx] +- infile = open(po_file, 'r') ++ infile = open(po_file, 'rb') + try: + catalog = read_po(infile, locale) + finally: +@@ -1121,7 +1121,7 @@ + tmpname = os.path.join(os.path.dirname(filename), + tempfile.gettempprefix() + + os.path.basename(filename)) +- tmpfile = open(tmpname, 'w') ++ tmpfile = open(tmpname, 'wb') + try: + try: + write_po(tmpfile, catalog, +diff -Naur babel-1.3-orig/babel/numbers.py babel-1.3/babel/numbers.py +--- babel-1.3-orig/babel/numbers.py 2013-07-29 15:33:20.000000000 +0400 ++++ babel-1.3/babel/numbers.py 2015-07-06 09:16:30.100050600 +0300 +@@ -303,7 +303,7 @@ + + + PREFIX_END = r'[^0-9@#.,]' +-NUMBER_TOKEN = r'[0-9@#.\-,E+]' ++NUMBER_TOKEN = r'[0-9@#.,E+]' + + PREFIX_PATTERN = r"(?P(?:'[^']*'|%s)*)" % PREFIX_END + NUMBER_PATTERN = r"(?P%s+)" % NUMBER_TOKEN diff --git a/mingw-w64-python-colorama/PKGBUILD b/mingw-w64-python-colorama/PKGBUILD new file mode 100644 index 0000000000..589e4e6fee --- /dev/null +++ b/mingw-w64-python-colorama/PKGBUILD @@ -0,0 +1,78 @@ +# Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly + +_realname=colorama +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=0.3.3 +pkgrel=1 +pkgdesc="Python API for cross-platform colored terminal text (mingw-w64)" +arch=('any') +license=('BSD') +url="http://pypi.python.org/pypi/colorama" +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") +checkdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose" + "${MINGW_PACKAGE_PREFIX}-python3-nose") +options=('staticlibs') +source=(https://pypi.python.org/packages/source/c/colorama/colorama-${pkgver}.tar.gz) +md5sums=('a56b8dc55158a41ab3c89c4c8feb8824') + +prepare() { + cd ${srcdir} + cp -r colorama-${pkgver} python2-build + cp -r colorama-${pkgver} python3-build +} + +build() { + cd "${srcdir}" + for builddir in python{2,3}-build; do + pushd ${builddir} + ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build + popd + done +} + +check() { + cd "${srcdir}" + for builddir in python{2,3}-build; do + pushd ${builddir} + ${MINGW_PREFIX}/bin/${builddir%-build} py.test + popd + done +} + +package_python2-colorama() { + depends=("${MINGW_PACKAGE_PREFIX}-python2") + + cd "${srcdir}/python2-build" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 + + install -Dm644 LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/COPYING" +} + +package_python3-colorama() { + depends=("${MINGW_PACKAGE_PREFIX}-python3") + + cd "${srcdir}/python3-build" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 + + install -Dm644 LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/COPYING" +} + +package_mingw-w64-i686-python2-colorama() { + package_python2-colorama +} + +package_mingw-w64-i686-python3-colorama() { + package_python3-colorama +} + +package_mingw-w64-x86_64-python2-colorama() { + package_python2-colorama +} + +package_mingw-w64-x86_64-python3-colorama() { + package_python3-colorama +} diff --git a/mingw-w64-python-jinja/PKGBUILD b/mingw-w64-python-jinja/PKGBUILD index c649b64d5a..c1d8206c92 100644 --- a/mingw-w64-python-jinja/PKGBUILD +++ b/mingw-w64-python-jinja/PKGBUILD @@ -1,28 +1,25 @@ # Maintainer: Alexey Pavlov _realname=jinja - pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=2.7.2 -pkgrel=2 +pkgver=2.7.3 +pkgrel=1 pkgdesc="A simple pythonic template language written in Python (mingw-w64)" arch=('any') license=('BSD') url="http://jinja.pocoo.org/" -makedepends=( - "${MINGW_PACKAGE_PREFIX}-python3-setuptools" - "${MINGW_PACKAGE_PREFIX}-python3-markupsafe" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" - "${MINGW_PACKAGE_PREFIX}-python2-markupsafe" -) -source=(http://pypi.python.org/packages/source/J/Jinja2/Jinja2-$pkgver.tar.gz) -sha256sums=('310a35fbccac3af13ebf927297f871ac656b9da1d248b1fe6765affa71b53235') +makedepends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-markupsafe" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python2-markupsafe") +source=(http://pypi.python.org/packages/source/J/Jinja2/Jinja2-${pkgver}.tar.gz) +sha256sums=('2e24ac5d004db5714976a04ac0e80c6df6e47e98c354cb2c0d82f8879d4f8fdb') build() { - cd "$srcdir" + cd "${srcdir}" rm -rf python{2,3}-build for builddir in python{2,3}-build; do - cp -r Jinja2-$pkgver $builddir + cp -r Jinja2-${pkgver} $builddir pushd $builddir ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build popd @@ -33,21 +30,21 @@ package_python3-jinja() { pkgdesc='Python3 documentation generator' depends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-markupsafe") - cd "$srcdir/python3-build" + cd "${srcdir}/python3-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 - install -Dm644 LICENSE "${pkgdi}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } package_python2-jinja() { depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python2-markupsafe") - cd "$srcdir/python3-build" + cd "${srcdir}/python3-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 - install -Dm644 LICENSE "${pkgdi}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" } package_mingw-w64-i686-python2-jinja() { diff --git a/mingw-w64-python-pygments/PKGBUILD b/mingw-w64-python-pygments/PKGBUILD index 10d92ade99..37ff5007ed 100644 --- a/mingw-w64-python-pygments/PKGBUILD +++ b/mingw-w64-python-pygments/PKGBUILD @@ -5,7 +5,7 @@ _realname=pygments pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=2.0.2 -pkgrel=1 +pkgrel=2 pkgdesc="Python syntax highlighter (mingw-w64)" arch=('any') license=('BSD') @@ -21,12 +21,12 @@ prepare() { } build() { - cd "$srcdir" + cd "${srcdir}" rm -rf python{2,3}-build for builddir in python{2,3}-build; do - cp -r Pygments-$pkgver $builddir - pushd $builddir + cp -r Pygments-${pkgver} $builddir + pushd ${builddir} ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build popd done @@ -35,48 +35,43 @@ build() { package_python3-pygments() { depends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) - cd "$srcdir/python3-build" + cd "${srcdir}/python3-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 - # pygmentize has been moved to the python2-pygments package - #rm ${pkgdir}${MINGW_PREFIX}/bin/pygmentize.exe{,.manifest} - #rm -rf ${pkgdir}${MINGW_PREFIX}/bin - - for f in pygmentize; do - mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}.exe "${pkgdir}${MINGW_PREFIX}"/bin/${f}-3.4.exe - if [ -f "${pkgdir}${MINGW_PREFIX}"/bin/${f}.exe.manifest ]; then - mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}.exe.manifest "${pkgdir}${MINGW_PREFIX}"/bin/${f}-3.4.exe.manifest - sed -e "s|${f}|${f}-3.4|g" -i "${pkgdir}${MINGW_PREFIX}"/bin/${f}-3.4.exe.manifest - fi - mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}-script.py "${pkgdir}${MINGW_PREFIX}"/bin/${f}-3.4-script.py - done + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" + # fix python command in files for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${_f} done - install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } package_python2-pygments() { depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) - cd "$srcdir/python2-build" + cd "${srcdir}/python2-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 # fix python command in files for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${_f} done + + for f in pygmentize; do + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe + if [ -f "${pkgdir}${MINGW_PREFIX}"/bin/${f}.exe.manifest ]; then + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe.manifest + sed -e "s|${f}|${f}2|g" -i "${pkgdir}${MINGW_PREFIX}"/bin/${f}2.exe.manifest + fi + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}-script.py + done + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" } diff --git a/mingw-w64-python-pytz/PKGBUILD b/mingw-w64-python-pytz/PKGBUILD index 8269b1a2ad..8a8c833286 100644 --- a/mingw-w64-python-pytz/PKGBUILD +++ b/mingw-w64-python-pytz/PKGBUILD @@ -2,42 +2,39 @@ _realname=pytz pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=2014.7 +pkgver=2015.4 pkgrel=1 pkgdesc="Cross platform time zone library for Python (mingw-w64)" arch=('any') url="http://pypi.python.org/pypi/pytz" license=("MIT") -makedepends=( - "${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-python2" -) -source=(http://pypi.python.org/packages/source/p/pytz/pytz-$pkgver.tar.bz2) -md5sums=('5c1d3966406c6637b95d1eb2652cd8e1') +makedepends=("${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2") +source=(http://pypi.python.org/packages/source/p/pytz/pytz-${pkgver}.tar.bz2) +md5sums=('39f7375c4b1fa34cdcb4b4765d08f817') prepare() { cd "${srcdir}" - cp -r pytz-$pkgver python2-pytz-$pkgver - cp -r pytz-$pkgver python3-pytz-$pkgver + cp -r pytz-${pkgver} build-python2 + cp -r pytz-${pkgver} build-python3 } check(){ - cd $srcdir/python2-pytz-$pkgver/pytz/tests + cd ${srcdir}/build-python2/pytz/tests ${MINGW_PREFIX}/bin/python2 test_tzinfo.py - cd $srcdir/python3-pytz-$pkgver/pytz/tests + cd ${srcdir}/build-python3/pytz/tests ${MINGW_PREFIX}/bin/python3 test_tzinfo.py } package_python3-pytz() { depends=("${MINGW_PACKAGE_PREFIX}-python3") - cd $srcdir/python3-pytz-$pkgver + cd ${srcdir}/build-python3 # Fix locale https://github.com/ipython/ipython/issues/2057 export LC_ALL=en_US.UTF-8 MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ - --root=$pkgdir --optimize=1 + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 install -D LICENSE.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE } @@ -45,13 +42,15 @@ package_python3-pytz() { package_python2-pytz() { depends=("${MINGW_PACKAGE_PREFIX}-python2") - cd $srcdir/python2-pytz-$pkgver + cd ${srcdir}/build-python2 # Fix locale https://github.com/ipython/ipython/issues/2057 export LC_ALL=en_US.UTF-8 + # python 2 fix + sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' pytz/tzfile.py + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ - --root=$pkgdir --optimize=1 + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 install -D LICENSE.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE } diff --git a/mingw-w64-python-six/PKGBUILD b/mingw-w64-python-six/PKGBUILD index 83885f4467..ea399573d5 100644 --- a/mingw-w64-python-six/PKGBUILD +++ b/mingw-w64-python-six/PKGBUILD @@ -2,7 +2,7 @@ _realname=six pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=1.8.0 +pkgver=1.9.0 pkgrel=1 pkgdesc="Python 2 and 3 compatibility utilities (mingw-w64)" arch=('any') @@ -12,26 +12,26 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" ) -source=(http://pypi.python.org/packages/source/s/six/six-$pkgver.tar.gz) -md5sums=('1626eb24cc889110c38f7e786ec69885') +source=(http://pypi.python.org/packages/source/s/six/six-${pkgver}.tar.gz) +md5sums=('476881ef4012262dfc8adc645ee786c4') prepare() { cd "${srcdir}" - cp -r six-$pkgver python2-six-$pkgver - cp -r six-$pkgver python3-six-$pkgver + cp -r six-$pkgver python2-six-${pkgver} + cp -r six-$pkgver python3-six-${pkgver} } check() { - cd $srcdir/python2-six-$pkgver + cd ${srcdir}/python2-six-${pkgver} ${MINGW_PREFIX}/bin/python2 setup.py check - cd $srcdir/python3-six-$pkgver + cd ${srcdir}/python3-six-${pkgver} ${MINGW_PREFIX}/bin/python3 setup.py check } package_python3-six() { depends=("${MINGW_PACKAGE_PREFIX}-python3") - cd $srcdir/python3-six-$pkgver + cd ${srcdir}/python3-six-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ --root "${pkgdir}" --optimize=1 @@ -42,7 +42,7 @@ package_python3-six() { package_python2-six() { depends=("${MINGW_PACKAGE_PREFIX}-python2") - cd $srcdir/python2-six-$pkgver + cd ${srcdir}/python2-six-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ --root "${pkgdir}" --optimize=1 diff --git a/mingw-w64-python-snowballstemmer/PKGBUILD b/mingw-w64-python-snowballstemmer/PKGBUILD new file mode 100644 index 0000000000..59a63d20ff --- /dev/null +++ b/mingw-w64-python-snowballstemmer/PKGBUILD @@ -0,0 +1,75 @@ +# Maintainer: Alexey Pavlov + +_realname=snowballstemmer +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=1.2.0 +pkgrel=1 +pkgdesc="Snowball stemming library collection for Python (mingw-w64)" +arch=('any') +license=('BSD') +url='https://github.com/shibukawa/snowball_py' +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") +options=('staticlibs') +source=("https://pypi.python.org/packages/source/s/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('51f2ef829db8129dd0f2354f0b209970') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} python2-build + cp -r ${_realname}-${pkgver} python3-build +} + +build() { + cd "${srcdir}" + for builddir in python{2,3}-build; do + pushd ${builddir} + ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build + popd + done +} + +check() { + cd "${srcdir}" + for builddir in python{2,3}-build; do + pushd ${builddir} + ${MINGW_PREFIX}/bin/${builddir%-build} py.test + popd + done +} + +package_python2-snowballstemmer() { + depends=("${MINGW_PACKAGE_PREFIX}-python2") + + cd "${srcdir}/python2-build" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 + + install -Dm644 LICENSE.rst "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE.rst" +} + +package_python3-snowballstemmer() { + depends=("${MINGW_PACKAGE_PREFIX}-python3") + + cd "${srcdir}/python3-build" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 + + install -Dm644 LICENSE.rst "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE.rst" +} + +package_mingw-w64-i686-python2-snowballstemmer() { + package_python2-snowballstemmer +} + +package_mingw-w64-i686-python3-snowballstemmer() { + package_python3-snowballstemmer +} + +package_mingw-w64-x86_64-python2-snowballstemmer() { + package_python2-snowballstemmer +} + +package_mingw-w64-x86_64-python3-snowballstemmer() { + package_python3-snowballstemmer +} diff --git a/mingw-w64-python-sphinx-alabaster-theme/PKGBUILD b/mingw-w64-python-sphinx-alabaster-theme/PKGBUILD new file mode 100644 index 0000000000..65ceb8c553 --- /dev/null +++ b/mingw-w64-python-sphinx-alabaster-theme/PKGBUILD @@ -0,0 +1,75 @@ +# Maintainer: Alexey Pavlov + +_realname=sphinx-alabaster-theme +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=0.7.4 +pkgrel=1 +pkgdesc="Modified Kr Sphinx doc theme (mingw-w64)" +arch=('any') +license=('BSD') +url='https://github.com/bitprophet/alabaster' +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") +options=('staticlibs') +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/bitprophet/alabaster/archive/${pkgver}.tar.gz") +md5sums=('ed0f1f6cba60e930cba5ed45276b5323') + +prepare() { + cd ${srcdir} + cp -r alabaster-${pkgver} python2-build + cp -r alabaster-${pkgver} python3-build +} + +build() { + cd "${srcdir}" + for builddir in python{2,3}-build; do + pushd ${builddir} + ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build + popd + done +} + +check() { + cd "${srcdir}" + for builddir in python{2,3}-build; do + pushd ${builddir} + ${MINGW_PREFIX}/bin/${builddir%-build} py.test + popd + done +} + +package_python2-sphinx-alabaster-theme() { + depends=("${MINGW_PACKAGE_PREFIX}-python2") + + cd "${srcdir}/python2-build" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_python3-sphinx-alabaster-theme() { + depends=("${MINGW_PACKAGE_PREFIX}-python3") + + cd "${srcdir}/python3-build" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-sphinx-alabaster-theme() { + package_python2-sphinx-alabaster-theme +} + +package_mingw-w64-i686-python3-sphinx-alabaster-theme() { + package_python3-sphinx-alabaster-theme +} + +package_mingw-w64-x86_64-python2-sphinx-alabaster-theme() { + package_python2-sphinx-alabaster-theme +} + +package_mingw-w64-x86_64-python3-sphinx-alabaster-theme() { + package_python3-sphinx-alabaster-theme +} diff --git a/mingw-w64-python-sphinx/PKGBUILD b/mingw-w64-python-sphinx/PKGBUILD index 599dbc5c4d..3af7913def 100644 --- a/mingw-w64-python-sphinx/PKGBUILD +++ b/mingw-w64-python-sphinx/PKGBUILD @@ -3,29 +3,44 @@ _realname=sphinx pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.2.3 +pkgver=1.3.1 pkgrel=2 pkgdesc="A discovery-based unittest extension (mingw-w64)" arch=('any') license=('LGPL-2.1') url="http://sphinx.pocoo.org/" makedepends=( - "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-colorama" "${MINGW_PACKAGE_PREFIX}-python3-docutils" "${MINGW_PACKAGE_PREFIX}-python3-jinja" "${MINGW_PACKAGE_PREFIX}-python3-pygments" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-six" + + "${MINGW_PACKAGE_PREFIX}-python2-colorama" "${MINGW_PACKAGE_PREFIX}-python2-docutils" "${MINGW_PACKAGE_PREFIX}-python2-jinja" "${MINGW_PACKAGE_PREFIX}-python2-pygments" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python2-six" ) checkdepends=( "${MINGW_PACKAGE_PREFIX}-python3-nose" "${MINGW_PACKAGE_PREFIX}-python2-nose" + "${MINGW_PACKAGE_PREFIX}-python3-snowballstemmer" + "${MINGW_PACKAGE_PREFIX}-python2-snowballstemmer" + "${MINGW_PACKAGE_PREFIX}-python3-babel" + "${MINGW_PACKAGE_PREFIX}-python2-babel" + "${MINGW_PACKAGE_PREFIX}-python3-sphinx-alabaster-theme" + "${MINGW_PACKAGE_PREFIX}-python2-sphinx-alabaster-theme" + "${MINGW_PACKAGE_PREFIX}-python3-sphinx_rtd_theme" + "${MINGW_PACKAGE_PREFIX}-python2-sphinx_rtd_theme" + "${MINGW_PACKAGE_PREFIX}-python2-mock" + "${MINGW_PACKAGE_PREFIX}-python3-mock" #'texlive-latexextra' ) -source=("http://pypi.python.org/packages/source/S/Sphinx/Sphinx-$pkgver.tar.gz") -md5sums=('a98c93124035b4cd7183604aec656cb3') +source=("http://pypi.python.org/packages/source/S/Sphinx/Sphinx-${pkgver}.tar.gz") +md5sums=('8786a194acf9673464c5455b11fd4332') prepare() { # souce duplication is required because makefile modify source code @@ -41,9 +56,9 @@ prepare() { } build() { - cd "$srcdir" + cd "${srcdir}" for builddir in python{2,3}-build; do - pushd $builddir + pushd ${builddir} ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build popd done @@ -51,16 +66,21 @@ build() { package_python3-sphinx() { pkgdesc='Python3 documentation generator' - depends=("${MINGW_PACKAGE_PREFIX}-python3-jinja" "${MINGW_PACKAGE_PREFIX}-python3-pygments" "${MINGW_PACKAGE_PREFIX}-python3-docutils") + depends=("${MINGW_PACKAGE_PREFIX}-python3-babel" + "${MINGW_PACKAGE_PREFIX}-python3-colorama" + "${MINGW_PACKAGE_PREFIX}-python3-docutils" + "${MINGW_PACKAGE_PREFIX}-python3-jinja" + "${MINGW_PACKAGE_PREFIX}-python3-pygments" + "${MINGW_PACKAGE_PREFIX}-python3-sphinx_rtd_theme" + "${MINGW_PACKAGE_PREFIX}-python3-snowballstemmer" + "${MINGW_PACKAGE_PREFIX}-python3-sphinx-alabaster-theme") #optdepends=("${MINGW_PACKAGE_PREFIX}-texlive-latexextra": for generation of PDF documentation') - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) - cd "$srcdir/python3-build" + cd "${srcdir}/python3-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 #rm -f ${pkgdir}${MINGW_PREFIX}/bin/sphinx{.exe,-script.py,.exe.manifest} # fix python command in files @@ -71,16 +91,21 @@ package_python3-sphinx() { package_python2-sphinx() { pkgdesc='Python2 documentation generator' - depends=("${MINGW_PACKAGE_PREFIX}-python2-jinja" "${MINGW_PACKAGE_PREFIX}-python2-pygments" "${MINGW_PACKAGE_PREFIX}-python2-docutils") + depends=("${MINGW_PACKAGE_PREFIX}-python2-babel" + "${MINGW_PACKAGE_PREFIX}-python2-colorama" + "${MINGW_PACKAGE_PREFIX}-python2-docutils" + "${MINGW_PACKAGE_PREFIX}-python2-jinja" + "${MINGW_PACKAGE_PREFIX}-python2-pygments" + "${MINGW_PACKAGE_PREFIX}-python2-sphinx_rtd_theme" + "${MINGW_PACKAGE_PREFIX}-python2-snowballstemmer" + "${MINGW_PACKAGE_PREFIX}-python2-sphinx-alabaster-theme") #optdepends=("${MINGW_PACKAGE_PREFIX}-texlive-latexextra": for generation of PDF documentation') - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) - cd "$srcdir/python2-build" + cd "${srcdir}/python2-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 # fix python command in files for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do diff --git a/mingw-w64-python-sphinx_rtd_theme/PKGBUILD b/mingw-w64-python-sphinx_rtd_theme/PKGBUILD new file mode 100644 index 0000000000..f18fec1dd0 --- /dev/null +++ b/mingw-w64-python-sphinx_rtd_theme/PKGBUILD @@ -0,0 +1,75 @@ +# Maintainer: Alexey Pavlov + +_realname=sphinx_rtd_theme +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=0.1.8 +pkgrel=1 +pkgdesc="Python Sphinx Read The Docs Theme (mingw-w64)" +arch=('any') +license=('MIT') +url='https://github.com/snide/sphinx_rtd_theme' +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") +options=('staticlibs') +source=("https://pypi.python.org/packages/source/s/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('713ce7c53239449bdd799385577329ee') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} python2-build + cp -r ${_realname}-${pkgver} python3-build +} + +build() { + cd "${srcdir}" + for builddir in python{2,3}-build; do + pushd ${builddir} + ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build + popd + done +} + +check() { + cd "${srcdir}" + for builddir in python{2,3}-build; do + pushd ${builddir} + ${MINGW_PREFIX}/bin/${builddir%-build} py.test + popd + done +} + +package_python2-sphinx_rtd_theme() { + depends=("${MINGW_PACKAGE_PREFIX}-python2") + + cd "${srcdir}/python2-build" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/COPYING" +} + +package_python3-sphinx_rtd_theme() { + depends=("${MINGW_PACKAGE_PREFIX}-python3") + + cd "${srcdir}/python3-build" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/COPYING" +} + +package_mingw-w64-i686-python2-sphinx_rtd_theme() { + package_python2-sphinx_rtd_theme +} + +package_mingw-w64-i686-python3-sphinx_rtd_theme() { + package_python3-sphinx_rtd_theme +} + +package_mingw-w64-x86_64-python2-sphinx_rtd_theme() { + package_python2-sphinx_rtd_theme +} + +package_mingw-w64-x86_64-python3-sphinx_rtd_theme() { + package_python3-sphinx_rtd_theme +} diff --git a/mingw-w64-qbs/0003-add-generator-header-installs.1.4.patch b/mingw-w64-qbs/0003-add-generator-header-installs.1.4.patch index e9171a27f5..a392819e95 100644 --- a/mingw-w64-qbs/0003-add-generator-header-installs.1.4.patch +++ b/mingw-w64-qbs/0003-add-generator-header-installs.1.4.patch @@ -20,18 +20,6 @@ index 18b3b47..10d9bf8 100644 $$PWD/rulecommand.h \ $$PWD/runenvironment.h api_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/api -diff --git a/src/lib/corelib/tools/tools.pri b/src/lib/corelib/tools/tools.pri -index 431eb27..a77926c 100644 ---- a/src/lib/corelib/tools/tools.pri -+++ b/src/lib/corelib/tools/tools.pri -@@ -96,6 +96,7 @@ qbs_enable_unit_tests { - $$PWD/generateoptions.h \ - $$PWD/generatorpluginmanager.h \ - $$PWD/installoptions.h \ -+ $$PWD/generateoptions.h \ - $$PWD/setupprojectparameters.h - tools_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/tools - INSTALLS += tools_headers -- 2.3.5 diff --git a/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch b/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch index f548407c69..d2f1810858 100644 --- a/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch +++ b/mingw-w64-qbs/0008-add-many-files-to-installed-headers.1.4.patch @@ -19,17 +19,15 @@ diff --git a/src/lib/corelib/generators/generators.pri b/src/lib/corelib/generat index 2fa095e..4217853 100644 --- a/src/lib/corelib/generators/generators.pri +++ b/src/lib/corelib/generators/generators.pri -@@ -1,4 +1,10 @@ +@@ -1,2 +1,8 @@ HEADERS += \ $$PWD/generator.h - ++ +!qbs_no_dev_install { + generators_headers.files = $$PWD/generator.h + generators_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/generators + INSTALLS += generators_headers +} -+ - include(xcode/xcode.pri) diff --git a/src/lib/corelib/language/language.pri b/src/lib/corelib/language/language.pri index 6da8536..4f8f2ba 100644 --- a/src/lib/corelib/language/language.pri diff --git a/mingw-w64-qbs/0002-WIP-Xcode-generator.1.4.patch b/mingw-w64-qbs/0090-WIP-Xcode-generator.1.4.patch similarity index 99% rename from mingw-w64-qbs/0002-WIP-Xcode-generator.1.4.patch rename to mingw-w64-qbs/0090-WIP-Xcode-generator.1.4.patch index e7c737d0fe..c965c47868 100644 --- a/mingw-w64-qbs/0002-WIP-Xcode-generator.1.4.patch +++ b/mingw-w64-qbs/0090-WIP-Xcode-generator.1.4.patch @@ -202,9 +202,10 @@ diff --git a/src/lib/corelib/generators/generators.pri b/src/lib/corelib/generat index 6372e81..2fa095e 100644 --- a/src/lib/corelib/generators/generators.pri +++ b/src/lib/corelib/generators/generators.pri -@@ -1,2 +1,4 @@ - HEADERS += \ - $$PWD/generator.h +@@ -6,3 +6,5 @@ + generators_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/generators + INSTALLS += generators_headers + } + +include(xcode/xcode.pri) diff --git a/src/lib/corelib/generators/xcode/opensteppropertylist.cpp b/src/lib/corelib/generators/xcode/opensteppropertylist.cpp diff --git a/mingw-w64-qbs/0009-Disable-WIP-Xcode-generator.1.4.patch b/mingw-w64-qbs/0091-Disable-WIP-Xcode-generator.1.4.patch similarity index 100% rename from mingw-w64-qbs/0009-Disable-WIP-Xcode-generator.1.4.patch rename to mingw-w64-qbs/0091-Disable-WIP-Xcode-generator.1.4.patch diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index fdcb8e1840..fff41bf8e7 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -21,9 +21,9 @@ _realname=qbs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.0 -pkgrel=3 -_pkgfqn="${_realname}-${pkgver}.src" +pkgver=1.4.1 +pkgrel=1 +_pkgfqn="${_realname}-src-${pkgver}" pkgdesc='Qt Build Suite' url='http://qt-project.org' arch=('any') @@ -33,29 +33,25 @@ options=('docs' 'staticlibs') # '!strip' 'debug') source=("http://download.qt-project.org/official_releases/qbs/${pkgver}/${_pkgfqn}.tar.gz" #${_realname}-${pkgver}::"git://gitorious.org/qt-labs/qbs.git#tag=v${pkgver}" "manifest" - "0001-add-hostosinfo.h-to-installed-headers.1.4.patch" - "0002-WIP-Xcode-generator.1.4.patch" "0003-add-generator-header-installs.1.4.patch" "0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch" "0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch" "0006-Add-some-missing-files.1.4.patch" - "0007-add-commandechomode.h-to-installed-headers.1.4.patch" "0008-add-many-files-to-installed-headers.1.4.patch" - "0009-Disable-WIP-Xcode-generator.1.4.patch") -sha256sums=('d384d0368c3e32ab3bdd9d85c96bb037aa1f650e77326ab5cd400a38cfef33f3' + "0090-WIP-Xcode-generator.1.4.patch" + "0091-Disable-WIP-Xcode-generator.1.4.patch") +sha256sums=('eea8e0c1b2ef71f295fa5f1798a04a9f0509a701094fec11a691a4d7ae0155a9' '838098b25a8044176b3139b4003594570c62a8d64f5470fbbd769f3bf44e0855' - '55a48d077aa3f2274639cba2d4ad99f85db2351b22c8b307535b1c6df6daf594' - '7874ddf89d788d2bfef6ddc97956638df1389300c82132af680aa4268c6b52b6' - '12a4efc62b04ca4b157f3154589b7516d5a650388dc30eec8b107c6a087f0b81' + '18f1bfe2434ccf97e1366a96b83bdc41bbd4399185bb701d061710b292a5ad59' '6daa43c65e4ac440470687a31c74ab6d4bdcfa0fb3c195678e62a9f800356b1a' '5002df9cb3ad3451db92918a4b74bb05237648d8697faf8894d96b51cb7faa8a' '40d53fca4e80ab63baa8649bae43882daf2c91de22412c71dec712ac59f4a39e' - 'df453adffd85dfdefef285a2594da9d83ad22eaeddcf2f3f13fb66cbd32bfd32' - '10adad688e6c3222df7264d5946ba5231cb980d620ccf4393f76d1fd97b3a23f' + 'f00efb4af427e4de5edb0c46196f0c6192294559c92a309eea6dfd81c0d302c3' + '576d7a6875fc20f4360edea765f8134493ad64a5941afbd92732e841e055b854' 'ef46ff74aac8aa267a8397d4c02a9481554c45f41748ef8b04ac7ef152d52f22') prepare() { - cd ${_realname}-${pkgver} + cd ${_pkgfqn} [ -d src/plugins/generator ] && rm -rf src/plugins/generator rm -rf src/lib/corelib/api/generator.* rm -rf src/lib/corelib/tools/generat* @@ -66,15 +62,14 @@ prepare() { git add -A git commit -m "Initial git import" fi - git am "${srcdir}"/0001-add-hostosinfo.h-to-installed-headers.1.4.patch - git am "${srcdir}"/0002-WIP-Xcode-generator.1.4.patch + git am "${srcdir}"/0003-add-generator-header-installs.1.4.patch git am "${srcdir}"/0004-Use-.dll.a-instead-of-.a-for-mingw-import-librar.1.4.patch git am "${srcdir}"/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch git am "${srcdir}"/0006-Add-some-missing-files.1.4.patch - git am "${srcdir}"/0007-add-commandechomode.h-to-installed-headers.1.4.patch git am "${srcdir}"/0008-add-many-files-to-installed-headers.1.4.patch - git am "${srcdir}"/0009-Disable-WIP-Xcode-generator.1.4.patch + #git am "${srcdir}"/0090-WIP-Xcode-generator.1.4.patch + #git am "${srcdir}"/0091-Disable-WIP-Xcode-generator.1.4.patch } build() { @@ -84,27 +79,34 @@ build() { else _config="debug" fi - cd ${srcdir}/${_realname}-${pkgver} + cd ${srcdir}/${_pkgfqn} [ -d build-${CARCH} ] && rm -rf build-${CARCH} mkdir build-${CARCH} cd build-${CARCH} - ${MINGW_PREFIX}/bin/qmake.exe ../qbs.pro \ + + export MSYS2_ARG_CONV_EXCL="QBS_INSTALL_PREFIX=" + ${MINGW_PREFIX}/bin/qmake.exe \ + QBS_INSTALL_PREFIX="${MINGW_PREFIX}" \ CONFIG+=${_config} \ - CONFIG+=qbs_enable_project_file_updates + CONFIG+=qbs_enable_project_file_updates \ + ../qbs.pro + # Because xcodeprojectgenerator has a build order problem. - make -j1 + make make docs } package() { - cd ${srcdir}/${_realname}-${pkgver}/build-${CARCH} - make INSTALL_ROOT=${pkgdir}${MINGW_PREFIX} install - make INSTALL_ROOT=${pkgdir}${MINGW_PREFIX} install_docs + cd ${srcdir}/${_pkgfqn}/build-${CARCH} + + export MSYS2_ARG_CONV_EXCL="QBS_INSTALL_PREFIX=" + make INSTALL_ROOT=${pkgdir} install + make INSTALL_ROOT=${pkgdir} install_docs rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.dll - for file in qbs-setup-madde-platforms qbs-setup-qt; do - cp ${srcdir}/manifest ${pkgdir}${MINGW_PREFIX}/bin/${file}.exe.manifest + for ff in qbs-setup-toolchains qbs-setup-qt; do + cp ${srcdir}/manifest ${pkgdir}${MINGW_PREFIX}/bin/${ff}.exe.manifest done } diff --git a/mingw-w64-qtbinpatcher/002-qt-5.5-compatibility.patch b/mingw-w64-qtbinpatcher/002-qt-5.5-compatibility.patch deleted file mode 100644 index 5a85dac165..0000000000 --- a/mingw-w64-qtbinpatcher/002-qt-5.5-compatibility.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- qtbinpatcher-2.1.4/QtBinPatcher.cpp.orig 2015-07-03 09:39:13.399693800 +0300 -+++ qtbinpatcher-2.1.4/QtBinPatcher.cpp 2015-07-03 10:44:04.574537400 +0300 -@@ -178,6 +178,7 @@ - - static const TParam Params[] = { - { "QT_INSTALL_PREFIX", "qt_prfxpath="}, -+ { "QT_INSTALL_PREFIX", "qt_epfxpath="}, - { "QT_INSTALL_ARCHDATA", "qt_adatpath="}, - { "QT_INSTALL_DOCS", "qt_docspath="}, - { "QT_INSTALL_HEADERS", "qt_hdrspath="}, diff --git a/mingw-w64-qtbinpatcher/PKGBUILD b/mingw-w64-qtbinpatcher/PKGBUILD index 4d6075653d..5e4207d8b6 100644 --- a/mingw-w64-qtbinpatcher/PKGBUILD +++ b/mingw-w64-qtbinpatcher/PKGBUILD @@ -2,8 +2,8 @@ _realname=qtbinpatcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.4 -pkgrel=3 +pkgver=2.2.0 +pkgrel=1 pkgdesc="Patcher for Qt libraries (mingw-w64)" arch=('any') url="http://tver-soft.org" @@ -12,16 +12,13 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") options=('staticlibs' 'strip') source=(${_realname}-${pkgver}.tar.gz::https://github.com/tver-soft/QtBinPatcher/archive/v${pkgver}.tar.gz #http://tver-soft.org/dl/${_realname}-${pkgver}.tar.bz2 - 001-minimize-files-touching.patch - 002-qt-5.5-compatibility.patch) -md5sums=('cb7dcc9a40b8e46bb09a768426b7025b' - 'c3c99f967b7c619d351740f155adc012' - '86f2aca492184fb8ff8e40b6b94d5ef1') + 001-minimize-files-touching.patch) +md5sums=('cb170f2c4f304a23d734ac3717e9950c' + 'c3c99f967b7c619d351740f155adc012') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-minimize-files-touching.patch - patch -p1 -i ${srcdir}/002-qt-5.5-compatibility.patch } build() { diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index e30a90d13f..679adb1deb 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -4,7 +4,7 @@ _realname=qt-creator pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" __pre= -_base_ver=3.4.1 +_base_ver=3.4.2 pkgver=${_base_ver}${_pre} pkgrel=1 pkgdesc='Cross-patform IDE (mingw-w64)' @@ -41,7 +41,7 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v qt-creator-3.3.0-abi-msys-is-Windows.patch qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch) noextract=(${_pkgfqn}.tar.gz) -sha256sums=('029e22307e79c4fb3a34be854dedddaa56476c6c6374c312125b9302bcbc0fd9' +sha256sums=('f57df9954768badb252154a51cca9b21a4903f8e003ef944d25801cde1754bab' '205d8637152d6e6e57c4a9d9c5146efa7fa16db5fb7b8cabc3bc5ded96823d8a' '6217d0682c40ac586205abc835490b36ac79525fdefde5afd66e3b02daabd8a0' '22253cf29a2c8effebb1cc8313a0f350cf993d7fc404763063e6bd8444fa61f1' diff --git a/mingw-w64-wxPython/001-mingw-python.patch b/mingw-w64-wxPython/001-mingw-python.patch index d6b5958373..8e62061407 100644 --- a/mingw-w64-wxPython/001-mingw-python.patch +++ b/mingw-w64-wxPython/001-mingw-python.patch @@ -44,6 +44,19 @@ lflags = lflags.split() # if wx-config --libs output does not start with -L, wx is +@@ -663,9 +663,11 @@ + newLFLAGS = [] + for flag in lflags: + if flag[:2] == '-L': +- libdirs.append(flag[2:]) ++ libdirs.append(os.popen(' '.join(['cygpath', '-am', flag[2:]])).readline().strip()) + elif flag[:2] == '-l': + libs.append(flag[2:]) ++ elif flag[:1] == '/': ++ libs.append(os.popen(' '.join(['cygpath', '-am', flag])).readline().strip()) + else: + newLFLAGS.append(flag) + return removeDuplicates(newLFLAGS) @@ -856,14 +861,16 @@ # gcc needs '.res' and '.rc' compiled to object files !!! try: diff --git a/mingw-w64-wxPython/PKGBUILD b/mingw-w64-wxPython/PKGBUILD index 2038333e11..98dfda9a49 100644 --- a/mingw-w64-wxPython/PKGBUILD +++ b/mingw-w64-wxPython/PKGBUILD @@ -4,14 +4,13 @@ _realname=wxPython pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2.0 _editraver=0.7.20 -pkgrel=1 +pkgrel=3 pkgdesc="A wxWidgets GUI toolkit for Python (mingw-w64)" arch=('any') license=("custom:wxWindows") -groups=("${MINGW_PACKAGE_PREFIX}") url="http://www.wxpython.org/" depends=("${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-wxWidgets") + "${MINGW_PACKAGE_PREFIX}-wxWidgets") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' 'staticlibs' 'buildflags') source=(http://downloads.sourceforge.net/wxpython/${_realname}-src-${pkgver}.tar.bz2 @@ -20,7 +19,7 @@ source=(http://downloads.sourceforge.net/wxpython/${_realname}-src-${pkgver}.tar 002-system-includes.patch 003-fix-cast-error.patch) sha1sums=('5053f3fa04f4eb3a9d4bfd762d963deb7fa46866' - 'b189dac25d4354ba3cca93e6108fb279dea0e2b7' + '0c664ca61e64b35e88527c2a545b9cff0a3b25fc' 'fb96353201fb0b529a71e70710986246b2978e94' '9fa4ac1988fec999feca090f8a8360807664f987') @@ -67,13 +66,11 @@ package() { cd "${srcdir}/wxPython-src-${pkgver}/wxPython" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=;--install-headers=;-install-data=" \ ${MINGW_PREFIX}/bin/python2 setup.py NO_HEADERS=0 WXPORT=msw BUILD_ACTIVEX=0 UNICODE=1 COMPILER=mingw32 \ - install --prefix=${MINGW_PREFIX} --root="$pkgdir" + install --prefix=${MINGW_PREFIX} --root="${pkgdir}" install -D -m644 ../docs/licence.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" - pushd ${MINGW_PREFIX} > /dev/null - local _dir=`pwd -W` - popd > /dev/null + local _dir=$(cygpath -am ${MINGW_PREFIX}) for _f in ${pkgdir}${MINGW_PREFIX}/bin/*; do sed -e "s|${_dir}|${MINGW_PREFIX}|g" -i ${_f} done diff --git a/mingw-w64-wxwidgets/PKGBUILD b/mingw-w64-wxwidgets/PKGBUILD index c78bc40ab3..5700c6d093 100644 --- a/mingw-w64-wxwidgets/PKGBUILD +++ b/mingw-w64-wxwidgets/PKGBUILD @@ -5,11 +5,10 @@ _realname=wxWidgets pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2 -pkgrel=9 +pkgrel=10 pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)" arch=('any') license=("custom:wxWindows") -groups=("${MINGW_PACKAGE_PREFIX}") url="http://www.wxwidgets.org/" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-cppunit" @@ -89,12 +88,13 @@ build() { } package() { - cd ${srcdir}/build-${CARCH} - make DESTDIR="${pkgdir}" install - cd ${srcdir}/build-${CARCH}-static make DESTDIR="${pkgdir}" install + mv ${pkgdir}${MINGW_PREFIX}/bin/wx-config{,-static} + cd ${srcdir}/build-${CARCH} + make DESTDIR="${pkgdir}" install + mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin # License files From 04ac84c2a9e2c130af6fd6028bd9e9dfe5ecb21e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 7 Jul 2015 10:23:54 +0300 Subject: [PATCH 1251/2060] Remove groups from mingw packages. --- mingw-w64-OpenBLAS-git/PKGBUILD | 3 +-- mingw-w64-Pillow/PKGBUILD | 29 ++++++++++----------- mingw-w64-angleproject-git/PKGBUILD | 3 +-- mingw-w64-cloog/PKGBUILD | 2 -- mingw-w64-cython/PKGBUILD | 1 - mingw-w64-daala-git/PKGBUILD | 3 +-- mingw-w64-db/PKGBUILD | 1 - mingw-w64-dmake/PKGBUILD | 1 - mingw-w64-faac/PKGBUILD | 6 ++--- mingw-w64-faad2/PKGBUILD | 3 +-- mingw-w64-farstream/PKGBUILD | 5 ++-- mingw-w64-ffmpeg/PKGBUILD | 1 - mingw-w64-ffms2/PKGBUILD | 7 ++--- mingw-w64-fftw/PKGBUILD | 2 +- mingw-w64-fltk/PKGBUILD | 13 +++++----- mingw-w64-ghostscript/PKGBUILD | 1 - mingw-w64-gimp/PKGBUILD | 1 - mingw-w64-glew/PKGBUILD | 11 ++++---- mingw-w64-gmp/PKGBUILD | 1 - mingw-w64-gnome-js-common/PKGBUILD | 4 +-- mingw-w64-gnu-cobol-svn/PKGBUILD | 1 - mingw-w64-go/PKGBUILD | 5 +--- mingw-w64-gperf/PKGBUILD | 2 -- mingw-w64-gprbuild-gpl/PKGBUILD | 10 +++----- mingw-w64-grep/PKGBUILD | 5 ++-- mingw-w64-gtkada/PKGBUILD | 19 +++++++------- mingw-w64-gxml/PKGBUILD | 13 ++++------ mingw-w64-isl/PKGBUILD | 1 - mingw-w64-libebml/PKGBUILD | 3 +-- mingw-w64-libelf/PKGBUILD | 2 -- mingw-w64-libffi/PKGBUILD | 1 - mingw-w64-libgadu/PKGBUILD | 3 +-- mingw-w64-libgcrypt/PKGBUILD | 1 - mingw-w64-libgeotiff/PKGBUILD | 33 ++++++++++++------------ mingw-w64-libgnomecanvas/PKGBUILD | 5 ++-- mingw-w64-libgoom2/PKGBUILD | 5 ++-- mingw-w64-libgpg-error/PKGBUILD | 1 - mingw-w64-libiconv/PKGBUILD | 1 - mingw-w64-libid3tag/PKGBUILD | 35 ++++++++++++------------- mingw-w64-libimobiledevice/PKGBUILD | 5 ++-- mingw-w64-libjpeg-turbo/PKGBUILD | 1 - mingw-w64-libksba/PKGBUILD | 9 +++---- mingw-w64-libmatroska/PKGBUILD | 3 +-- mingw-w64-libplist/PKGBUILD | 7 +++-- mingw-w64-librescl/PKGBUILD | 36 ++++++++++++-------------- mingw-w64-libssh/PKGBUILD | 1 - mingw-w64-libssh2/PKGBUILD | 1 - mingw-w64-libtommath/PKGBUILD | 13 +++++----- mingw-w64-libtool/PKGBUILD | 1 - mingw-w64-libusbmuxd/PKGBUILD | 5 ++-- mingw-w64-libvorbisidec-svn/PKGBUILD | 5 ++-- mingw-w64-libxml++/PKGBUILD | 6 ++--- mingw-w64-libxml2/PKGBUILD | 1 - mingw-w64-libxslt/PKGBUILD | 1 - mingw-w64-mpc/PKGBUILD | 1 - mingw-w64-mpfr/PKGBUILD | 2 -- mingw-w64-oniguruma/PKGBUILD | 1 - mingw-w64-openblas/PKGBUILD | 13 +++++----- mingw-w64-openscenegraph-git/PKGBUILD | 2 +- mingw-w64-portablexdr/PKGBUILD | 1 - mingw-w64-proj/PKGBUILD | 23 ++++++++--------- mingw-w64-protobuf-c/PKGBUILD | 13 +++++----- mingw-w64-protobuf/PKGBUILD | 15 +++++------ mingw-w64-pygobject/PKGBUILD | 24 ++++++++++------- mingw-w64-pygobject2/PKGBUILD | 37 +++++++++++++++------------ mingw-w64-pygtksourceview2/PKGBUILD | 18 ++++++------- mingw-w64-python-mako/PKGBUILD | 1 - mingw-w64-python-pywin32/PKGBUILD | 2 -- mingw-w64-python2-pygtk/PKGBUILD | 3 +-- mingw-w64-qhull-git/PKGBUILD | 22 +++++----------- mingw-w64-qrupdate-svn/PKGBUILD | 9 +++---- mingw-w64-sqlite3/PKGBUILD | 1 - mingw-w64-suitesparse/PKGBUILD | 1 - mingw-w64-usbmuxd/PKGBUILD | 1 - mingw-w64-w32pth/PKGBUILD | 6 ++--- mingw-w64-xmlada-gpl/PKGBUILD | 23 ++++++++--------- mingw-w64-zlib/PKGBUILD | 1 - 77 files changed, 238 insertions(+), 321 deletions(-) diff --git a/mingw-w64-OpenBLAS-git/PKGBUILD b/mingw-w64-OpenBLAS-git/PKGBUILD index 25908e5e04..ed9707d3dc 100644 --- a/mingw-w64-OpenBLAS-git/PKGBUILD +++ b/mingw-w64-OpenBLAS-git/PKGBUILD @@ -10,7 +10,6 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") arch=('any') url="http://www.openblas.net/" license=('custom') -groups=("${MINGW_PACKAGE_PREFIX}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-openblas") conflicts=("${MINGW_PACKAGE_PREFIX}-openblas") @@ -23,7 +22,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gcc-fortran") -source=("$_realname"::"git://github.com/xianyi/${_realname}") +source=("${_realname}"::"git://github.com/xianyi/${_realname}") sha1sums=('SKIP') pkgver() { diff --git a/mingw-w64-Pillow/PKGBUILD b/mingw-w64-Pillow/PKGBUILD index 820906a57c..f44b0b3c1f 100644 --- a/mingw-w64-Pillow/PKGBUILD +++ b/mingw-w64-Pillow/PKGBUILD @@ -8,7 +8,6 @@ _py3basever=3.4m pkgrel=1 pkgdesc="Python Imaging Library (PIL) fork. Python3 version (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") license=('custom') url="https://github.com/python-pillow/Pillow/" depends=("${MINGW_PACKAGE_PREFIX}-freetype" @@ -22,30 +21,30 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools" "${MINGW_PACKAGE_PREFIX}-tk") options=('staticlibs') -source=("http://pypi.python.org/packages/source/P/$_realname/$_realname-$pkgver.tar.gz" +source=("http://pypi.python.org/packages/source/P/${_realname}/${_realname}-${pkgver}.tar.gz" freeze-support.patch) md5sums=('dd57c00352dcec1953b7790e1efabf23' '91fac3184fff48841738ce838abc6fdf') prepare() { - cd ${srcdir}/$_realname-$pkgver + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/freeze-support.patch cd ${srcdir} - cp -r "$_realname-$pkgver" "python2-build-${CARCH}" - cp -r "$_realname-$pkgver" "python3-build-${CARCH}" + cp -r "${_realname}-${pkgver}" "python2-build-${CARCH}" + cp -r "${_realname}-${pkgver}" "python3-build-${CARCH}" } package_python3-Pillow() { depends+=("${MINGW_PACKAGE_PREFIX}-python3") optdepends=("${MINGW_PACKAGE_PREFIX}-tk: for the ImageTK module") - cd "$srcdir/python3-build-${CARCH}" + cd "${srcdir}/python3-build-${CARCH}" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="$pkgdir/" --optimize=0 - install -Dm644 docs/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-$_realname/LICENSE" - - install -dm755 "${pkgdir}${MINGW_PREFIX}/include/python$_py3basever/" - install -m644 -t "${pkgdir}${MINGW_PREFIX}/include/python$_py3basever/" libImaging/*.h + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0 + + install -Dm644 docs/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" + install -dm755 "${pkgdir}${MINGW_PREFIX}/include/python${_py3basever}/" + install -m644 -t "${pkgdir}${MINGW_PREFIX}/include/python${_py3basever}/" libImaging/*.h # clean up bins cd "${pkgdir}${MINGW_PREFIX}/bin" @@ -61,15 +60,15 @@ package_python2-Pillow() { cd "$srcdir/python2-build-${CARCH}" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="$pkgdir/" --optimize=0 + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0 sed -i 's|/usr/local/bin/python$|/usr/bin/env python2|' \ "$pkgdir${MINGW_PREFIX}/lib/python$_py2basever/site-packages/PIL/OleFileIO.py" - install -Dm644 docs/LICENSE "$pkgdir${MINGW_PREFIX}/share/licenses/python2-$_realname/LICENSE" + install -Dm644 docs/LICENSE "$pkgdir${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" - install -dm755 "$pkgdir${MINGW_PREFIX}/include/python$_py2basever/" - install -m644 -t "$pkgdir${MINGW_PREFIX}/include/python$_py2basever/" libImaging/*.h + install -dm755 "$pkgdir${MINGW_PREFIX}/include/python${_py2basever}/" + install -m644 -t "$pkgdir${MINGW_PREFIX}/include/python${_py2basever}/" libImaging/*.h # clean up bins cd "$pkgdir${MINGW_PREFIX}/bin" diff --git a/mingw-w64-angleproject-git/PKGBUILD b/mingw-w64-angleproject-git/PKGBUILD index 8879eb75eb..1dc5eff551 100644 --- a/mingw-w64-angleproject-git/PKGBUILD +++ b/mingw-w64-angleproject-git/PKGBUILD @@ -3,13 +3,12 @@ _realname=angleproject pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=2.1.r4222 +pkgver=2.1.r4562 pkgrel=1 pkgdesc='Angle project built from git source (mingw-w64)' arch=('any') url='http://code.google.com/p/angleproject/' license=('LGPLv2+') -groups=('mingw-w64') depends=() makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" 'gyp-svn' 'git') provides=("${MINGW_PACKAGE_PREFIX}-angleproject") diff --git a/mingw-w64-cloog/PKGBUILD b/mingw-w64-cloog/PKGBUILD index 632324be7e..f3d8d1d890 100644 --- a/mingw-w64-cloog/PKGBUILD +++ b/mingw-w64-cloog/PKGBUILD @@ -1,11 +1,9 @@ # Maintainer: Alexey Pavlov _realname=cloog - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.18.1 pkgrel=3 -groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="Library that generates loops for scanning polyhedra" arch=('any') url="http://www.bastoul.net/cloog/" diff --git a/mingw-w64-cython/PKGBUILD b/mingw-w64-cython/PKGBUILD index 7cb2b85347..4a8dab27de 100644 --- a/mingw-w64-cython/PKGBUILD +++ b/mingw-w64-cython/PKGBUILD @@ -7,7 +7,6 @@ pkgver=0.22.1 pkgrel=1 pkgdesc="C-Extensions for Python (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") url="http://www.cython.org" license=('APACHE') makedepends=( diff --git a/mingw-w64-daala-git/PKGBUILD b/mingw-w64-daala-git/PKGBUILD index de6f7fab5f..c4fc138e3a 100644 --- a/mingw-w64-daala-git/PKGBUILD +++ b/mingw-w64-daala-git/PKGBUILD @@ -8,7 +8,6 @@ pkgrel=1 arch=('any') url="https://www.xiph.org/daala/" license=('BSD') -#groups=("${MINGW_PACKAGE_PREFIX}") makedepends=('git' "${MINGW_PACKAGE_PREFIX}-check") depends=("${MINGW_PACKAGE_PREFIX}-libogg" "${MINGW_PACKAGE_PREFIX}-libpng") @@ -23,7 +22,7 @@ md5sums=('SKIP' '901557d36c62ccebf40d508ad834f157') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } diff --git a/mingw-w64-db/PKGBUILD b/mingw-w64-db/PKGBUILD index 082fef2157..9b527dd949 100644 --- a/mingw-w64-db/PKGBUILD +++ b/mingw-w64-db/PKGBUILD @@ -9,7 +9,6 @@ pkgdesc="The Berkeley DB embedded database system (mingw-w64)" arch=('any') url="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" license=('custom') -groups=("${MINGW_PACKAGE_PREFIX}") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=(http://download.oracle.com/berkeley-db/db-${pkgver}.tar.gz diff --git a/mingw-w64-dmake/PKGBUILD b/mingw-w64-dmake/PKGBUILD index 2bc3df7c9f..de9eeaf78b 100644 --- a/mingw-w64-dmake/PKGBUILD +++ b/mingw-w64-dmake/PKGBUILD @@ -7,7 +7,6 @@ pkgver=4.12.2 pkgrel=5 pkgdesc="Dmake is a make utility similar to GNU make or the Workshop dmake (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') license=('GPL') diff --git a/mingw-w64-faac/PKGBUILD b/mingw-w64-faac/PKGBUILD index 0ba971ae6e..65593f6537 100644 --- a/mingw-w64-faac/PKGBUILD +++ b/mingw-w64-faac/PKGBUILD @@ -5,14 +5,13 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.28 pkgrel=1 pkgdesc='FAAC is an AAC audio encoder (mingw-w64)' -groups=("${MINGW_PACKAGE_PREFIX}") arch=('any') url='http://www.audiocoding.com/faac.html' license=('GPL2') source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" - "make-shared.patch") + "make-shared.patch") md5sums=('80763728d392c7d789cde25614c878f6' - 'aa5048e1b2c960329d716a50fe1cfeaa') + 'aa5048e1b2c960329d716a50fe1cfeaa') prepare() { cd $srcdir/${_realname}-${pkgver} @@ -20,7 +19,6 @@ prepare() { } build() { - cd "$srcdir"/${_realname}-${pkgver} [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} ../${_realname}-${pkgver}/configure \ diff --git a/mingw-w64-faad2/PKGBUILD b/mingw-w64-faad2/PKGBUILD index f8f852d90c..5a89a0e7f9 100644 --- a/mingw-w64-faad2/PKGBUILD +++ b/mingw-w64-faad2/PKGBUILD @@ -1,14 +1,12 @@ # Maintainer: Alexey Pavlov _realname=faad2 - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.7 pkgrel=1 pkgdesc="ISO AAC audio decoder (mingw-w64)" arch=('any') url="http://www.audiocoding.com/" -groups=("${MINGW_PACKAGE_PREFIX}") license=('GPL') options=('staticlibs' 'strip') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") @@ -36,6 +34,7 @@ prepare() { patch -p1 -i "${srcdir}/0001-update-ac.mingw.patch" patch -p1 -i "${srcdir}/0002-no-undefined.mingw.patch" patch -p1 -i "${srcdir}/0003-frontend.mingw.patch" + WANT_AUTOMAKE=latest autoreconf --force --install } diff --git a/mingw-w64-farstream/PKGBUILD b/mingw-w64-farstream/PKGBUILD index d1b9e79291..0bccb9f8ab 100644 --- a/mingw-w64-farstream/PKGBUILD +++ b/mingw-w64-farstream/PKGBUILD @@ -4,10 +4,9 @@ _realname=farstream pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.2.7 pkgrel=1 -pkgdesc="Farstream (formerly Farsight) - Audio/Video Communications Framework" +pkgdesc="Farstream (formerly Farsight) - Audio/Video Communications Framework (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/Farstream" -groups=("${MINGW_PACKAGE_PREFIX}") license=('LGPL') options=('staticlibs' 'strip') depends=("${MINGW_PACKAGE_PREFIX}-gst-plugins-base" "${MINGW_PACKAGE_PREFIX}-libnice") @@ -15,7 +14,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pkg-config" "gtk-doc") -source=(http://freedesktop.org/software/${_realname}/releases/${_realname}/${_realname}-$pkgver.tar.gz{,.asc} +source=(http://freedesktop.org/software/${_realname}/releases/${_realname}/${_realname}-${pkgver}.tar.gz{,.asc} 0001-farstream-0.2.4.patch 0002-give-cc-to-gir-scanner.all.patch) md5sums=('bb56af4cbf2cd42f35353f20cf04bc17' diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 4d93bd4ea5..44904ffca8 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -7,7 +7,6 @@ pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" -groups=("${MINGW_PACKAGE_PREFIX}") license=('GPL') options=('staticlibs' 'strip') depends=( diff --git a/mingw-w64-ffms2/PKGBUILD b/mingw-w64-ffms2/PKGBUILD index d4b928b6ff..aa65f8ffc8 100644 --- a/mingw-w64-ffms2/PKGBUILD +++ b/mingw-w64-ffms2/PKGBUILD @@ -1,16 +1,17 @@ +# Maintainer: Alexey Pavlov + _realname=ffms2 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.20 pkgrel=1 -pkgdesc="A cross-platform wrapper library around libav/FFmpeg" +pkgdesc="A cross-platform wrapper library around libav/FFmpeg (mingw-w64)" arch=('any') url="https://github.com/FFMS/ffms2/" -groups=("${MINGW_PACKAGE_PREFIX}") license=('MIT') options=('staticlibs' 'strip') depends=("${MINGW_PACKAGE_PREFIX}-ffmpeg") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -source=("https://github.com/FFMS/ffms2/archive/${pkgver}.tar.gz") +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/FFMS/ffms2/archive/${pkgver}.tar.gz") sha1sums=('bf09d8ed54e5aad86b352b4d335d29da016f2014') packagedir=${_realname}-${pkgver} diff --git a/mingw-w64-fftw/PKGBUILD b/mingw-w64-fftw/PKGBUILD index 01b47736fe..5c77b4a711 100644 --- a/mingw-w64-fftw/PKGBUILD +++ b/mingw-w64-fftw/PKGBUILD @@ -3,7 +3,7 @@ _realname=fftw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.3.4 -pkgrel=4 +pkgrel=5 pkgdesc="A library for computing the discrete Fourier transform (DFT) (mingw-w64)" arch=('any') url="http://www.fftw.org" diff --git a/mingw-w64-fltk/PKGBUILD b/mingw-w64-fltk/PKGBUILD index 894dd9505e..3606ba26fc 100644 --- a/mingw-w64-fltk/PKGBUILD +++ b/mingw-w64-fltk/PKGBUILD @@ -8,14 +8,13 @@ pkgdesc="C++ user interface toolkit (mingw-w64)" arch=('any') url="http://www.fltk.org" license=('LGPLv2+ with exceptions') -groups=("${MINGW_PACKAGE_PREFIX}") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libiconv" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-expat" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo") + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-zlib" + "${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' 'staticlibs' 'buildflags') source=("http://fltk.org/pub/fltk/${pkgver}/${_realname}-${pkgver}-source.tar.gz") diff --git a/mingw-w64-ghostscript/PKGBUILD b/mingw-w64-ghostscript/PKGBUILD index ca0f7f6e7f..c27f29b77e 100644 --- a/mingw-w64-ghostscript/PKGBUILD +++ b/mingw-w64-ghostscript/PKGBUILD @@ -5,7 +5,6 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=9.15 pkgrel=3 arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") license=('AGPL' 'custom') pkgdesc="An interpreter for the PostScript language (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-dbus" diff --git a/mingw-w64-gimp/PKGBUILD b/mingw-w64-gimp/PKGBUILD index 5d9ddd77b1..aa6647d62f 100644 --- a/mingw-w64-gimp/PKGBUILD +++ b/mingw-w64-gimp/PKGBUILD @@ -6,7 +6,6 @@ pkgver=2.8.14 pkgrel=4 pkgdesc="GNU Image Manipulation Program (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") url="http://www.gimp.org/" license=('GPL' 'LGPL') depends=("${MINGW_PACKAGE_PREFIX}-babl-git" diff --git a/mingw-w64-glew/PKGBUILD b/mingw-w64-glew/PKGBUILD index 5806627924..f4bd214f75 100644 --- a/mingw-w64-glew/PKGBUILD +++ b/mingw-w64-glew/PKGBUILD @@ -3,31 +3,30 @@ _realname=glew pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.12.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="GLEW, The OpenGL Extension Wrangler Library (mingw-w64)" depends=('') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "xz") -groups=("${MINGW_PACKAGE_PREFIX}") license=('Modified BSD/MIT/GPL') url="http://glew.sourceforge.net/" options=('strip' '!libtool' 'staticlibs') -source=("http://sourceforge.net/projects/glew/files/glew/$pkgver/glew-$pkgver.tgz" +source=("http://sourceforge.net/projects/glew/files/glew/${pkgver}/${_realname}-${pkgver}.tgz" 001-makefile.patch) md5sums=('01246c7ecd135d99be031aa63f86dca1' '0f4ea29bfa687508ebaaefd0de5199dc') prepare() { - cd "$srcdir/glew-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/001-makefile.patch } build() { - cd "$srcdir/glew-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" MSYSTEM=MINGW make GLEW_PREFIX=${MINGW_PREFIX} } package () { - cd "$srcdir/glew-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" MSYSTEM=MINGW make GLEW_PREFIX=${MINGW_PREFIX} DESTDIR="${pkgdir}" install.all } diff --git a/mingw-w64-gmp/PKGBUILD b/mingw-w64-gmp/PKGBUILD index 0a5c7dd871..8e7f93036b 100644 --- a/mingw-w64-gmp/PKGBUILD +++ b/mingw-w64-gmp/PKGBUILD @@ -6,7 +6,6 @@ pkgver=6.0.0 pkgrel=3 pkgdesc="A free library for arbitrary precision arithmetic (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") url="http://gmplib.org/" license=('LGPL3') source=(ftp://ftp.gmplib.org/pub/gmp-${pkgver}/${_realname}-${pkgver}a.tar.xz{,.sig}) diff --git a/mingw-w64-gnome-js-common/PKGBUILD b/mingw-w64-gnome-js-common/PKGBUILD index 0b458c6dfe..aacc6f44e2 100644 --- a/mingw-w64-gnome-js-common/PKGBUILD +++ b/mingw-w64-gnome-js-common/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=gnome-js-common - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.1.2 pkgrel=1 @@ -9,7 +8,6 @@ pkgdesc="GNOME JavaScript common modules (mingw-w64)" url="http://live.gnome.org/Seed/" license=('GPL3') arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("intltool") source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/0.1/${_realname}-${pkgver}.tar.bz2) sha1sums=('f3771ad53e158443ffe84b5d86fb2ce73417a69d') @@ -21,7 +19,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} make } diff --git a/mingw-w64-gnu-cobol-svn/PKGBUILD b/mingw-w64-gnu-cobol-svn/PKGBUILD index 1ba45a5ee7..1175383975 100644 --- a/mingw-w64-gnu-cobol-svn/PKGBUILD +++ b/mingw-w64-gnu-cobol-svn/PKGBUILD @@ -13,7 +13,6 @@ conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") url="http://sourceforge.net/projects/open-cobol/" options=('strip') license=('GPL' 'LGPL') -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("subversion" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libiconv") diff --git a/mingw-w64-go/PKGBUILD b/mingw-w64-go/PKGBUILD index db7a097d3d..32db243750 100644 --- a/mingw-w64-go/PKGBUILD +++ b/mingw-w64-go/PKGBUILD @@ -4,16 +4,13 @@ _realname=go pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.4 pkgrel=1 -pkgdesc="Go Lang" +pkgdesc="Go Lang (miongw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") url="http://www.golang.org/" - depends=() options=('!strip') - source=("http://golang.org/dl/go${pkgver}.src.tar.gz" "msys2-unix-files.patch" "relocation-support.patch") diff --git a/mingw-w64-gperf/PKGBUILD b/mingw-w64-gperf/PKGBUILD index a2c84fe367..431adfe02f 100644 --- a/mingw-w64-gperf/PKGBUILD +++ b/mingw-w64-gperf/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=gperf - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=3.0.4 pkgrel=2 @@ -9,7 +8,6 @@ pkgdesc="Perfect hash function generator (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gperf/" license=('GPL3') -#groups=("${MINGW_PACKAGE_PREFIX}") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") source=("http://ftp.gnu.org/pub/gnu/gperf/${_realname}-${pkgver}.tar.gz"{,.sig}) sha1sums=('e32d4aff8f0c730c9a56554377b2c6d82d0951b8' diff --git a/mingw-w64-gprbuild-gpl/PKGBUILD b/mingw-w64-gprbuild-gpl/PKGBUILD index 455d7de38f..2099650e5d 100644 --- a/mingw-w64-gprbuild-gpl/PKGBUILD +++ b/mingw-w64-gprbuild-gpl/PKGBUILD @@ -11,11 +11,10 @@ pkgdesc="Software tool designed to help automate the construction of multi-langu arch=('any') provides=("${MINGW_PACKAGE_PREFIX}-${_basename}") license=('GPL3') -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-ada" - "${MINGW_PACKAGE_PREFIX}-xmlada") + "${MINGW_PACKAGE_PREFIX}-xmlada") depends=("${MINGW_PACKAGE_PREFIX}-gcc-ada" - "${MINGW_PACKAGE_PREFIX}-xmlada") + "${MINGW_PACKAGE_PREFIX}-xmlada") url="http://www.adacore.com/gnatpro/toolsuite/gprbuild/" source=("http://downloads.dragonlace.net/src/${_realname}-${pkgver}-src.tgz") sha1sums=('71c6278fd19f80ba4574de2696bfb3cbb9be4b70') @@ -43,7 +42,6 @@ package() { make prefix="${pkgdir}${MINGW_PREFIX}" INSTALL=cp install # Copy License Files - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname - cp -pf COPYING* \ - ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} + cp -pf COPYING* ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/ } diff --git a/mingw-w64-grep/PKGBUILD b/mingw-w64-grep/PKGBUILD index c49490a7bf..4a1364eaa6 100644 --- a/mingw-w64-grep/PKGBUILD +++ b/mingw-w64-grep/PKGBUILD @@ -6,7 +6,6 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.21 pkgrel=2 pkgdesc="Grep searches one or more input files for lines containing a match to a specified pattern (mingw-w64)" -groups=("${MINGW_PACKAGE_PREFIX}") arch=('any') url='http://www.gnu.org/software/grep/' license=('GPL3') @@ -16,11 +15,11 @@ source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz") md5sums=('43c48064d6409862b8a850db83c8038a') prepare() { - cd $srcdir/${_realname}-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} } build() { - cd $srcdir/${_realname}-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} ./configure --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-gtkada/PKGBUILD b/mingw-w64-gtkada/PKGBUILD index b52ca0284b..f64db99049 100644 --- a/mingw-w64-gtkada/PKGBUILD +++ b/mingw-w64-gtkada/PKGBUILD @@ -11,23 +11,22 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") url="http://libre.adacore.com/tools/gtkada/" options=('!staticlibs' 'strip') license=('GPL3' 'custom') -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-ada") depends=("${MINGW_PACKAGE_PREFIX}-gcc-ada" "${MINGW_PACKAGE_PREFIX}-gtk3") source=("http://www.pfeifers-software.de/files/GNAT/${_realname}-gpl-${pkgver}-src.tgz" - "gtkada-mingw.diff") + "gtkada-mingw.diff") sha1sums=('84285ea8c016d18bac8860573ff5223ecea8ecf4' - 'ca7dcd32bfbfecdcbd923bb2e12dc5b8b0f91305') + 'ca7dcd32bfbfecdcbd923bb2e12dc5b8b0f91305') prepare() { - cd ${srcdir}/$_realname-$pkgver-src + cd ${srcdir}/${_realnam}e-${pkgver}-src patch -p0 < contrib/gtkada-3-win32.diff patch -p1 < ${srcdir}/gtkada-mingw.diff } build() { - cd ${srcdir}/$_realname-$pkgver-src + cd ${srcdir}/$_{realname}-${pkgver}-src if [ -f Makefile ]; then make distclean fi @@ -43,13 +42,13 @@ build() { } package() { - cd ${srcdir}/$_realname-$pkgver-src - make DESTDIR="$pkgdir" install + cd ${srcdir}/${_realname}-${pkgver}-src + make DESTDIR="${pkgdir}" install rm -rf ${pkgdir}${MINGW_PREFIX}/share/examples rm -rf ${pkgdir}${MINGW_PREFIX}/share/doc # Copy License Files - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname - cp -pf ${srcdir}/${_realname}-$pkgver-src/COPYING* \ - ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} + cp -pf ${srcdir}/${_realname}-${pkgver}-src/COPYING* \ + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} } diff --git a/mingw-w64-gxml/PKGBUILD b/mingw-w64-gxml/PKGBUILD index 6a51197da6..047baa2624 100644 --- a/mingw-w64-gxml/PKGBUILD +++ b/mingw-w64-gxml/PKGBUILD @@ -5,7 +5,6 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.4.1 pkgrel=2 arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="LibXML2 GObject wrapper version 0.4 (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" @@ -20,7 +19,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" options=('strip' 'staticlibs') license=('LGPL') url="http://live.gnome.org/GXml" -source=("http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver:0:3}/${_realname}-$pkgver.tar.xz") +source=("http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver:0:3}/${_realname}-${pkgver}.tar.xz") sha256sums=('f821c5b076208aa311151c263b951aaab27991663edd1918c05522aa0463663d') prepare() { @@ -30,8 +29,7 @@ prepare() { autoreconf -fiv } -build() -{ +build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -45,8 +43,7 @@ build() make -j1 } -package() -{ - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-isl/PKGBUILD b/mingw-w64-isl/PKGBUILD index f41c84c401..9bea1e97ce 100644 --- a/mingw-w64-isl/PKGBUILD +++ b/mingw-w64-isl/PKGBUILD @@ -7,7 +7,6 @@ pkgrel=2 pkgdesc="Library for manipulating sets and relations of integer points bounded by linear constraints" arch=('any') url="http://isl.gforge.inria.fr/" -groups=("${MINGW_PACKAGE_PREFIX}") #depends=("${MINGW_PACKAGE_PREFIX}-gmp") makedepends=("${MINGW_PACKAGE_PREFIX}-gmp") options=('staticlibs') diff --git a/mingw-w64-libebml/PKGBUILD b/mingw-w64-libebml/PKGBUILD index ef6d9997b7..84b7adbeca 100644 --- a/mingw-w64-libebml/PKGBUILD +++ b/mingw-w64-libebml/PKGBUILD @@ -6,7 +6,6 @@ pkgver=1.3.1 pkgrel=1 pkgdesc="Extensible Binary Meta Language library (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") license=('LGPL') url="http://dl.matroska.org/downloads/libebml/" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") @@ -22,7 +21,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-libelf/PKGBUILD b/mingw-w64-libelf/PKGBUILD index 3db419518b..aba82da352 100644 --- a/mingw-w64-libelf/PKGBUILD +++ b/mingw-w64-libelf/PKGBUILD @@ -1,13 +1,11 @@ # Maintainer: Martell Malone _realname=libelf - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.8.13 pkgrel=1 pkgdesc="ELF object file access library (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") license=('LGPL') url="http://www.mr511.de/software/english.html" options=('staticlibs') diff --git a/mingw-w64-libffi/PKGBUILD b/mingw-w64-libffi/PKGBUILD index 9cd145e9bf..29b3f8324e 100644 --- a/mingw-w64-libffi/PKGBUILD +++ b/mingw-w64-libffi/PKGBUILD @@ -7,7 +7,6 @@ pkgver=3.2.1 pkgrel=3 pkgdesc="A portable, high level programming interface to various calling conventions (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') license=('MIT') diff --git a/mingw-w64-libgadu/PKGBUILD b/mingw-w64-libgadu/PKGBUILD index 0bf0e49492..a322e62aa4 100644 --- a/mingw-w64-libgadu/PKGBUILD +++ b/mingw-w64-libgadu/PKGBUILD @@ -10,7 +10,6 @@ url="http://libgadu.net" license=("LGPL2.1") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gnutls" "${MINGW_PACKAGE_PREFIX}-protobuf-c") -groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') source=("http://github.com/wojtekka/libgadu/releases/download/${pkgver}/${_realname}-${pkgver}.tar.gz" protobuf-c.patch) @@ -44,5 +43,5 @@ check() { package() { cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libgcrypt/PKGBUILD b/mingw-w64-libgcrypt/PKGBUILD index 43cc255bdd..067ea1d96e 100644 --- a/mingw-w64-libgcrypt/PKGBUILD +++ b/mingw-w64-libgcrypt/PKGBUILD @@ -9,7 +9,6 @@ arch=('any') url="http://www.gnupg.org" license=('LGPL') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libgpg-error") -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libgpg-error") # "transfig""${MINGW_PACKAGE_PREFIX}-ghostscript" options=('staticlibs' 'strip') source=("ftp://ftp.gnupg.org/gcrypt/libgcrypt/${_realname}-${pkgver}.tar.bz2" diff --git a/mingw-w64-libgeotiff/PKGBUILD b/mingw-w64-libgeotiff/PKGBUILD index 1e2ae4e14f..c9e22572b2 100644 --- a/mingw-w64-libgeotiff/PKGBUILD +++ b/mingw-w64-libgeotiff/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=libgeotiff - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.0 pkgrel=1 @@ -10,11 +9,10 @@ arch=(any) url="http://trac.osgeo.org/geotiff/" license=('MIT') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-proj" - "${MINGW_PACKAGE_PREFIX}-zlib") -groups=("${MINGW_PACKAGE_PREFIX}") + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-proj" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool") options=('staticlibs' 'strip') source=("http://download.osgeo.org/geotiff/${_realname}/${_realname}-${pkgver}.tar.gz" @@ -41,26 +39,28 @@ prepare() { } build() { - [[ -d "$srcdir/build-${MINGW_CHOST}" ]] && rm -rf "$srcdir/build-${MINGW_CHOST}" - mkdir "$srcdir/build-${MINGW_CHOST}" - cd "$srcdir/build-${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" - ../${_realname}-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --with-proj \ --with-jpeg \ --with-zip - make + + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/ + cat > ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/${_realname}.pc < _realname=libid3tag - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.15.1b pkgrel=1 @@ -11,17 +10,16 @@ url="http://www.underbit.com/products/mad/" license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-zlib") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip' '!makeflags') source=(#"ftp://ftp.mars.org/pub/mpeg/${_realname}-${pkgver}.tar.gz" - http://sourceforge.net/projects/mad/files/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz - 0001-no-undefined.mingw.patch - 0002-update-ac-and-silent-rules.mingw.patch - '10_utf16.patch' - '11_unknown_encoding.patch' - 'CVE-2008-2109.patch' - 'id3tag.pc' - ) + http://sourceforge.net/projects/mad/files/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz + 0001-no-undefined.mingw.patch + 0002-update-ac-and-silent-rules.mingw.patch + '10_utf16.patch' + '11_unknown_encoding.patch' + 'CVE-2008-2109.patch' + 'id3tag.pc' + ) md5sums=('e5808ad997ba32c498803822078748c3' 'd6e03d565052d2267e382e811304ef87' '2daec906976c5316db171cc117fb697d' @@ -31,7 +29,7 @@ md5sums=('e5808ad997ba32c498803822078748c3' '9ee16beebe53f8b89f27504ea3d37385') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-no-undefined.mingw.patch patch -p1 -i ${srcdir}/0002-update-ac-and-silent-rules.mingw.patch patch -p1 -i ${srcdir}/10_utf16.patch @@ -46,18 +44,19 @@ prepare() { build() { mkdir -p $srcdir/build-${MINGW_CHOST} && cd $srcdir/build-${MINGW_CHOST} - ../${_realname}-$pkgver/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --enable-shared + --enable-shared + make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install - install -D -m644 "${srcdir}/id3tag.pc" "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/id3tag.pc" + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + install -D -m644 "${srcdir}/id3tag.pc" "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/id3tag.pc" sed -e "s|/usr|${MINGW_PREFIX}|g" -i "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/id3tag.pc" } diff --git a/mingw-w64-libimobiledevice/PKGBUILD b/mingw-w64-libimobiledevice/PKGBUILD index bcd9626ad8..c65b01e13e 100644 --- a/mingw-w64-libimobiledevice/PKGBUILD +++ b/mingw-w64-libimobiledevice/PKGBUILD @@ -5,7 +5,6 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.2.0 pkgrel=1 pkgdesc='A cross-platform protocol library to communicate with iOS devices (mingw-w64)' -groups=("${MINGW_PACKAGE_PREFIX}" "xdev") arch=('any') url='http://www.libimobiledevice.org/' license=('GPL2+') @@ -19,14 +18,14 @@ sha1sums=('a8e3f21180b1d6df754d04a4080a29cf6891e701' '9d091cf73ce1477db7b78fc8e47572e2e3031e79') prepare() { - cd $srcdir/${_realname}-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-cython-includes.patch autoreconf -fiv } build() { - cd "$srcdir"/${_realname}-${pkgver} + cd "${srcdir}"/${_realname}-${pkgver} [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} diff --git a/mingw-w64-libjpeg-turbo/PKGBUILD b/mingw-w64-libjpeg-turbo/PKGBUILD index bcc73d35f0..40173a785f 100644 --- a/mingw-w64-libjpeg-turbo/PKGBUILD +++ b/mingw-w64-libjpeg-turbo/PKGBUILD @@ -10,7 +10,6 @@ arch=('any') url="http://libjpeg-turbo.virtualgl.org" license=(custom:'BSD-like') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-nasm" "${MINGW_PACKAGE_PREFIX}-gcc") provides=("${MINGW_PACKAGE_PREFIX}-libjpeg") conflicts=("${MINGW_PACKAGE_PREFIX}-libjpeg") diff --git a/mingw-w64-libksba/PKGBUILD b/mingw-w64-libksba/PKGBUILD index fc510e79e2..a3062cdc29 100644 --- a/mingw-w64-libksba/PKGBUILD +++ b/mingw-w64-libksba/PKGBUILD @@ -9,15 +9,14 @@ arch=('any') license=('GPL') url="ftp://ftp.gnupg.org/gcrypt/alpha/libksba" depends=("${MINGW_PACKAGE_PREFIX}-libgpg-error") -groups=("${MINGW_PACKAGE_PREFIX}") options=('strip' 'staticlibs') -source=(ftp://ftp.gnupg.org/gcrypt/$_realname/$_realname-$pkgver.tar.bz2 +source=(ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2 0001-fix-def.mingw.patch) md5sums=('a5dd3c57fca254935f5cf8db26e39065' '437ad992a8ac21ba7646f707b2b4a4f2') prepare() { - cd $srcdir/$_realname-$pkgver + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-fix-def.mingw.patch } @@ -25,7 +24,7 @@ build() { [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" - ../$_realname-$pkgver/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -42,5 +41,5 @@ check() { package() { cd ${srcdir}/build-${MINGW_CHOST} - make -j1 DESTDIR=$pkgdir install + make -j1 DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libmatroska/PKGBUILD b/mingw-w64-libmatroska/PKGBUILD index e70e26ce69..1091825b73 100644 --- a/mingw-w64-libmatroska/PKGBUILD +++ b/mingw-w64-libmatroska/PKGBUILD @@ -6,7 +6,6 @@ pkgver=1.4.2 pkgrel=1 pkgdesc="Matroska library (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") license=('LGPL') url="http://dl.matroska.org/downloads/libebml/" depends=("${MINGW_PACKAGE_PREFIX}-libebml") @@ -27,7 +26,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-libplist/PKGBUILD b/mingw-w64-libplist/PKGBUILD index 553d577171..6705142189 100644 --- a/mingw-w64-libplist/PKGBUILD +++ b/mingw-w64-libplist/PKGBUILD @@ -5,7 +5,6 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.12 pkgrel=2 pkgdesc='A library to handle Apple Property List format in binary or XML (mingw-w64)' -groups=("${MINGW_PACKAGE_PREFIX}" "xdev") arch=('any') url='http://www.libimobiledevice.org/' license=('GPL2+') @@ -19,25 +18,25 @@ sha1sums=('48f071c723387637ef2cc2980d4ca0627aab067b' '974595d36c8ddfcf97aab0d3f2b4ee36b1440351') prepare() { - cd $srcdir/${_realname}-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-cython-module.patch autoreconf -fiv } build() { - cd "$srcdir"/${_realname}-${pkgver} [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} PYTHON=${MINGW_PREFIX}/bin/python3 \ - ../${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-static \ --enable-shared + make } diff --git a/mingw-w64-librescl/PKGBUILD b/mingw-w64-librescl/PKGBUILD index e167a2aee2..aab707bfe9 100644 --- a/mingw-w64-librescl/PKGBUILD +++ b/mingw-w64-librescl/PKGBUILD @@ -5,48 +5,46 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.2.1 pkgrel=1 arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="Reader/Writer SCL IEC 61850-6 files version 0.2.1 (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-xz" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-glib2>=2.34.0" - "${MINGW_PACKAGE_PREFIX}-libgee" - "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-gxml") + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-zlib" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-glib2>=2.34.0" + "${MINGW_PACKAGE_PREFIX}-libgee" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-gxml") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-libtool") options=('strip' 'staticlibs') license=('LGPL') url="https://github.com/pwmediaconsulting/librescl" -source=("https://github.com/pwmediaconsulting/librescl/archive/LIBRESCL_0_2_1.tar.gz") +source=("https://github.com/pwmediaconsulting/librescl/archive/LIBRESCL_${pkgver//./_}.tar.gz") sha256sums=('6c97b9f3285b8d406711ead5295991a8b6586898b93f9a5e95b759bc4d57490f') prepare() { - cd "${srcdir}"/librescl-LIBRESCL_0_2_1 + cd "${srcdir}"/librescl-LIBRESCL_${pkgver//./_} ./autogen.sh make distclean autoreconf -fiv } -build() -{ +build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} - ../librescl-LIBRESCL_0_2_1/configure \ + ../librescl-LIBRESCL_${pkgver//./_}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib + make -j1 } -package() -{ - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libssh/PKGBUILD b/mingw-w64-libssh/PKGBUILD index 5582992a06..e18ac89332 100644 --- a/mingw-w64-libssh/PKGBUILD +++ b/mingw-w64-libssh/PKGBUILD @@ -14,7 +14,6 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") depends=("${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib") -groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') validpgpkeys=('8DFF53E18F2ABC8D8F3C92237EE0FC4DCC014E3D') # Andreas Schneider source=(https://red.libssh.org/attachments/download/140/${_realname}-${pkgver}.tar.xz diff --git a/mingw-w64-libssh2/PKGBUILD b/mingw-w64-libssh2/PKGBUILD index 8f13d4efaf..52f8e31074 100644 --- a/mingw-w64-libssh2/PKGBUILD +++ b/mingw-w64-libssh2/PKGBUILD @@ -10,7 +10,6 @@ url="http://www.libssh2.org" license=("BSD") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib") -groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') source=("$url/download/${_realname}-${pkgver}.tar.gz") md5sums=('00aabd6e714a5f42a4fb82ace20db1dd') diff --git a/mingw-w64-libtommath/PKGBUILD b/mingw-w64-libtommath/PKGBUILD index f2b0ba8a8b..4745859ca8 100644 --- a/mingw-w64-libtommath/PKGBUILD +++ b/mingw-w64-libtommath/PKGBUILD @@ -9,7 +9,6 @@ url="http://www.libtom.org/" arch=('any') license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') source=("http://libtom.org/files/ltm-${pkgver}.tar.bz2" 'libtommath-0.42.0-makefile.patch') @@ -17,32 +16,32 @@ md5sums=('7380da904b020301be7045cb3a89039b' '0bf4d7eaf45e67dfc38c25e39510111a') prepare() { - cd $srcdir/${_realname}-$pkgver + cd $srcdir/${_realname}-${pkgver} patch -Np1 -i ${srcdir}/libtommath-0.42.0-makefile.patch } build() { - cp -rf ${_realname}-$pkgver build-${MINGW_CHOST} + cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} - CFLAGS+=" -I$srcdir/build-${MINGW_CHOST}" + CFLAGS+=" -I${srcdir}/build-${MINGW_CHOST}" CC="${MINGW_PREFIX}/bin/gcc" \ make -f makefile.shared IGNORE_SPEED=1 } check() { - cd $srcdir/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} CC=${MINGW_PREFIX}/bin/gcc \ make -f makefile.shared mtest } package() { - cd $srcdir/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} CC="${MINGW_PREFIX}/bin/gcc" \ make -f makefile.shared \ - DESTDIR=$pkgdir \ + DESTDIR=${pkgdir} \ INSTALL_GROUP=root \ LIBPATH=${MINGW_PREFIX}/lib \ INCPATH=${MINGW_PREFIX}/include \ diff --git a/mingw-w64-libtool/PKGBUILD b/mingw-w64-libtool/PKGBUILD index a80f81b8ae..78b07a54a9 100644 --- a/mingw-w64-libtool/PKGBUILD +++ b/mingw-w64-libtool/PKGBUILD @@ -10,7 +10,6 @@ arch=('any') url="http://www.gnu.org/software/libtool" license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -groups=("${MINGW_PACKAGE_PREFIX}") options=('staticlibs' 'strip') source=("http://ftp.gnu.org/pub/gnu/libtool/${_realname}-${pkgver}.tar.xz"{,.sig} #ftp://alpha.gnu.org/gnu/libtool/${_realname}-${pkgver}.tar.xz{,.sig} diff --git a/mingw-w64-libusbmuxd/PKGBUILD b/mingw-w64-libusbmuxd/PKGBUILD index a9414d4a93..401354be5e 100644 --- a/mingw-w64-libusbmuxd/PKGBUILD +++ b/mingw-w64-libusbmuxd/PKGBUILD @@ -5,7 +5,6 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.0.10 pkgrel=2 pkgdesc='A client library to multiplex connections from and to iOS devices (mingw-w64)' -groups=("${MINGW_PACKAGE_PREFIX}" "xdev") arch=('any') url='http://www.libimobiledevice.org/' license=('GPL2+') @@ -15,11 +14,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-libplist") sha1sums=('9d4ce8ac058cfea66e6785d2bad5bb9c93681b16') prepare() { - cd $srcdir/${_realname}-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} } build() { - cd "$srcdir"/${_realname}-${pkgver} + cd "${srcdir}"/${_realname}-${pkgver} [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} diff --git a/mingw-w64-libvorbisidec-svn/PKGBUILD b/mingw-w64-libvorbisidec-svn/PKGBUILD index b72423c3b6..9e9cdc98e3 100644 --- a/mingw-w64-libvorbisidec-svn/PKGBUILD +++ b/mingw-w64-libvorbisidec-svn/PKGBUILD @@ -11,7 +11,6 @@ pkgdesc='Integer-only Ogg Vorbis decoder, AKA \"tremor\" (mingw-w64)' arch=('any') url='http://svn.xiph.org/trunk/Tremor' license=('custom') -groups=("${MINGW_PACKAGE_PREFIX}") depends=("${MINGW_PACKAGE_PREFIX}-libogg") makedepends=("subversion" "${MINGW_PACKAGE_PREFIX}-gcc") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -27,7 +26,7 @@ md5sums=('SKIP' '43fba0fb6b12e663841c40f8e4f5fc4f') pkgver() { - cd "$srcdir/${_realname}" + cd "${srcdir}/${_realname}" local ver="$(svnversion)" printf "r%s" "${ver//[[:alpha:]]}" } @@ -45,7 +44,7 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/${_realname}/configure \ + ../${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-libxml++/PKGBUILD b/mingw-w64-libxml++/PKGBUILD index d7bc93b334..5db9d86d53 100644 --- a/mingw-w64-libxml++/PKGBUILD +++ b/mingw-w64-libxml++/PKGBUILD @@ -5,7 +5,6 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.38.1 pkgrel=1 arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="C++ wrapper for the libxml2 XML parser library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libxml2" @@ -25,7 +24,7 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -39,8 +38,7 @@ build() { make } -package() -{ +package() { cd "${srcdir}/build-${MINGW_CHOST}" make install DESTDIR="${pkgdir}" } diff --git a/mingw-w64-libxml2/PKGBUILD b/mingw-w64-libxml2/PKGBUILD index 9d0bd81d1b..609e9e9ff9 100644 --- a/mingw-w64-libxml2/PKGBUILD +++ b/mingw-w64-libxml2/PKGBUILD @@ -6,7 +6,6 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.9.2 pkgrel=6 arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") pkgdesc="XML parsing library, version 2 (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" diff --git a/mingw-w64-libxslt/PKGBUILD b/mingw-w64-libxslt/PKGBUILD index e2c12fa342..a432de4ccf 100644 --- a/mingw-w64-libxslt/PKGBUILD +++ b/mingw-w64-libxslt/PKGBUILD @@ -9,7 +9,6 @@ arch=('any') url="http://xmlsoft.org/XSLT/" license=('custom') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-libgcrypt") -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('strip' 'staticlibs') install=${_realname}-${CARCH}.install diff --git a/mingw-w64-mpc/PKGBUILD b/mingw-w64-mpc/PKGBUILD index 19b07bb140..64ea3c1f94 100644 --- a/mingw-w64-mpc/PKGBUILD +++ b/mingw-w64-mpc/PKGBUILD @@ -5,7 +5,6 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.3 pkgrel=2 pkgdesc="Multiple precision complex arithmetic library (mingw-w64)" -groups=("${MINGW_PACKAGE_PREFIX}") url='http://www.multiprecision.org' license=('LGPL') arch=('any') diff --git a/mingw-w64-mpfr/PKGBUILD b/mingw-w64-mpfr/PKGBUILD index 787e1802fb..689fd6df04 100644 --- a/mingw-w64-mpfr/PKGBUILD +++ b/mingw-w64-mpfr/PKGBUILD @@ -8,8 +8,6 @@ pkgver=${_pkgver}.${_patchlevel} pkgrel=2 pkgdesc="Multiple-precision floating-point library (mingw-w64)" arch=('any') -url="http://www.mpfr.org/" -groups=("${MINGW_PACKAGE_PREFIX}") license=('LGPL') options=('staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gmp") diff --git a/mingw-w64-oniguruma/PKGBUILD b/mingw-w64-oniguruma/PKGBUILD index 2f308e1ce5..bdb57619da 100644 --- a/mingw-w64-oniguruma/PKGBUILD +++ b/mingw-w64-oniguruma/PKGBUILD @@ -7,7 +7,6 @@ pkgver=5.9.5 pkgrel=2 pkgdesc="A regular expressions library (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") license=('BSD') url="http://www.geocities.jp/kosako3/oniguruma" options=('staticlibs') diff --git a/mingw-w64-openblas/PKGBUILD b/mingw-w64-openblas/PKGBUILD index 03593646fd..2dcfb4797d 100644 --- a/mingw-w64-openblas/PKGBUILD +++ b/mingw-w64-openblas/PKGBUILD @@ -5,11 +5,10 @@ _realname=OpenBLAS pkgname="${MINGW_PACKAGE_PREFIX}-openblas" pkgver=0.2.14 pkgrel=1 -pkgdesc="An optimized BLAS library based on GotoBLAS2 1.13 BSD, providing optimized blas, lapack, and cblas. (mingw-w64)" +pkgdesc="An optimized BLAS library based on GotoBLAS2 1.13 BSD, providing optimized blas, lapack, and cblas (mingw-w64)" arch=('any') url="http://xianyi.github.com/OpenBLAS/" license=('BSD') -groups=("${MINGW_PACKAGE_PREFIX}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-openblas-git") replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}" @@ -20,12 +19,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("perl" "${MINGW_PACKAGE_PREFIX}-gcc-fortran") options=('!buildflags' '!makeflags' 'strip' 'staticlibs') -source=(${_realname}-v${pkgver}.tar.gz::http://github.com/xianyi/OpenBLAS/archive/v${pkgver}.tar.gz) +source=(${_realname}-${pkgver}.tar.gz::http://github.com/xianyi/OpenBLAS/archive/v${pkgver}.tar.gz) install=(${_realname}.install) md5sums=('53cda7f420e1ba0ea55de536b24c9701') build() { - cd "$srcdir/$_realname-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" unset CFLAGS unset CXXFLAGS @@ -37,7 +36,7 @@ build() { } package() { - cd "$srcdir/$_realname-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" if [ -f libopenblas.dll ]; then if [ -f exports/libopenblas.def ]; then @@ -83,8 +82,8 @@ package() { # Copy Licencse mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname - cp -f ${srcdir}/${_realname}-$pkgver/LICENSE \ + cp -f ${srcdir}/${_realname}-${pkgver}/LICENSE \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname - cp -f ${srcdir}/${_realname}-$pkgver/lapack-netlib/LICENSE \ + cp -f ${srcdir}/${_realname}-${pkgver}/lapack-netlib/LICENSE \ ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/LICENSE-lapack } diff --git a/mingw-w64-openscenegraph-git/PKGBUILD b/mingw-w64-openscenegraph-git/PKGBUILD index 648b1eeca2..af21976f47 100644 --- a/mingw-w64-openscenegraph-git/PKGBUILD +++ b/mingw-w64-openscenegraph-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=OpenSceneGraph pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-git") -pkgver=r13241.57b5747 +pkgver=r13264.f81f47b pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" arch=('any') diff --git a/mingw-w64-portablexdr/PKGBUILD b/mingw-w64-portablexdr/PKGBUILD index 55b76bc2e1..2f4a0c1ff8 100644 --- a/mingw-w64-portablexdr/PKGBUILD +++ b/mingw-w64-portablexdr/PKGBUILD @@ -10,7 +10,6 @@ arch=(any) url="https://github.com/Alexpux/portablexdr" license=('LGPL2') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool" "git") options=('staticlibs' 'strip') source=(${_realname}::git+https://github.com/Alexpux/portablexdr.git#branch=Branch_4.9.1) diff --git a/mingw-w64-proj/PKGBUILD b/mingw-w64-proj/PKGBUILD index 0cda33103e..f4174091f7 100644 --- a/mingw-w64-proj/PKGBUILD +++ b/mingw-w64-proj/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=proj - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.8.0 pkgrel=1 @@ -10,7 +9,6 @@ arch=(any) url="http://proj.osgeo.org" license=('MIT') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool") options=('staticlibs' 'strip') source=("http://download.osgeo.org/proj/${_realname}-${pkgver}.tar.gz") @@ -21,20 +19,21 @@ prepare() { } build() { - [[ -d "$srcdir/build-${MINGW_CHOST}" ]] && rm -rf "$srcdir/build-${MINGW_CHOST}" - mkdir "$srcdir/build-${MINGW_CHOST}" - cd "$srcdir/build-${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" - ../${_realname}-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} - make + + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-protobuf-c/PKGBUILD b/mingw-w64-protobuf-c/PKGBUILD index 3d373d1143..ec28778800 100644 --- a/mingw-w64-protobuf-c/PKGBUILD +++ b/mingw-w64-protobuf-c/PKGBUILD @@ -9,10 +9,9 @@ arch=('any') url="https://github.com/protobuf-c/protobuf-c" license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-protobuf") -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=("$url/releases/download/v$pkgver/${_realname}-$pkgver.tar.gz") +source=("$url/releases/download/v$pkgver/${_realname}-${pkgver}.tar.gz") md5sums=('41d437677ea16f9d3611d98841c4af3b') prepare() { @@ -20,9 +19,9 @@ prepare() { } build() { - [[ -d "$srcdir/build-${MINGW_CHOST}" ]] && rm -rf "$srcdir/build-${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir build-${MINGW_CHOST} - cd "$srcdir/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ @@ -32,12 +31,12 @@ build() { } check() { - cd "$srcdir/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" make check } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-protobuf/PKGBUILD b/mingw-w64-protobuf/PKGBUILD index 2250df8192..9030137a8d 100644 --- a/mingw-w64-protobuf/PKGBUILD +++ b/mingw-w64-protobuf/PKGBUILD @@ -9,10 +9,9 @@ arch=('any') url='https://developers.google.com/protocol-buffers/' license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2-setuptools") options=('staticlibs' 'strip') -source=(https://github.com/google/protobuf/releases/download/$pkgver/protobuf-$pkgver.tar.bz2) +source=(https://github.com/google/protobuf/releases/download/${pkgver}/protobuf-${pkgver}.tar.bz2) md5sums=('11aaac2d704eef8efd1867a807865d85') prepare() { @@ -20,9 +19,9 @@ prepare() { } build() { - [[ -d "$srcdir/build-${MINGW_CHOST}" ]] && rm -rf "$srcdir/build-${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} - cd "$srcdir/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" ./configure \ --prefix=${MINGW_PREFIX} \ @@ -32,16 +31,16 @@ build() { } check() { - cd "$srcdir/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" make check } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE #cd python #MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - #${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" + #${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" } diff --git a/mingw-w64-pygobject/PKGBUILD b/mingw-w64-pygobject/PKGBUILD index b3e0ee9848..0e9e4381af 100644 --- a/mingw-w64-pygobject/PKGBUILD +++ b/mingw-w64-pygobject/PKGBUILD @@ -8,7 +8,6 @@ pkgdesc="Allows you to load glade interface files in a program at runtime (mingw arch=(any) url="http://www.pygtk.org" license=('LGPL') -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" @@ -28,12 +27,10 @@ build() { rm -rf python{2,3}-build mkdir python{2,3}-build devel - CFLAGS+=" -D__USE_MINGW_ANSI_STDIO=1" - CXXFLAGS+=" -D__USE_MINGW_ANSI_STDIO=1" - CPPFLAGS+=" -D__USE_MINGW_ANSI_STDIO=1" + for builddir in python{2,3}-build; do #cp -r ${_realname}-$pkgver $builddir - pushd $builddir + pushd ${builddir} PYTHON=${MINGW_PREFIX}/bin/${builddir%-build} \ ../${_realname}-$pkgver/configure --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -47,25 +44,34 @@ build() { package_python2-gobject() { pkgdesc="Python 2 bindings for GObject2 (mingw-w64)" - depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-python2-cairo" "${MINGW_PACKAGE_PREFIX}-libffi" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pygobject-devel=$pkgver") + depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-python2-cairo" + "${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pygobject-devel=${pkgver}") cd python2-build - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install mv "${pkgdir}${MINGW_PREFIX}"/{include,lib/pkgconfig} "$srcdir/devel" } package_python3-gobject() { pkgdesc="Python 3 bindings for GObject2 (mingw-w64)" - depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-python3-cairo" "${MINGW_PACKAGE_PREFIX}-libffi" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pygobject-devel=$pkgver") + depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-python3-cairo" + "${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pygobject-devel=${pkgver}") cd python3-build - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install rm -r "${pkgdir}${MINGW_PREFIX}"/{include,lib/pkgconfig} } package_pygobject-devel() { pkgdesc="Development files for the pygobject bindings" + cd "devel" mkdir -p "${pkgdir}${MINGW_PREFIX}"/{include,lib} mv include "${pkgdir}${MINGW_PREFIX}/" diff --git a/mingw-w64-pygobject2/PKGBUILD b/mingw-w64-pygobject2/PKGBUILD index 45d42e417b..dce4cf9851 100644 --- a/mingw-w64-pygobject2/PKGBUILD +++ b/mingw-w64-pygobject2/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=pygobject - pkgname=("${MINGW_PACKAGE_PREFIX}-python2-gobject2" "${MINGW_PACKAGE_PREFIX}-python3-gobject2" "${MINGW_PACKAGE_PREFIX}-pygobject2-devel") pkgver=2.28.6 pkgrel=2 @@ -13,8 +12,8 @@ groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-gnome-common") options=('staticlibs' 'strip') source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/${pkgver%.*}/${_realname}-${pkgver}.tar.xz - win32-fix.patch - python-m4.patch) + win32-fix.patch + python-m4.patch) md5sums=('9415cb7f2b3a847f2310ccea258b101e' '5dcee45159fb9d08248d56d0e73849c7' '5391d75a08c19e975679a0385c319f79') @@ -28,15 +27,12 @@ prepare() { } build() { - cd "$srcdir" - rm -rf python{2,3}-build mkdir python{2,3}-build devel - CFLAGS+=" -D__USE_MINGW_ANSI_STDIO=1 -Wno-error=format" - CXXFLAGS+=" -D__USE_MINGW_ANSI_STDIO=1" - CPPFLAGS+=" -D__USE_MINGW_ANSI_STDIO=1" + CFLAGS+=" -Wno-error=format" + for builddir in python{2,3}-build; do - pushd $builddir + pushd ${builddir} PYTHON=${MINGW_PREFIX}/bin/${builddir%-build} \ ../${_realname}-$pkgver/configure --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -51,7 +47,7 @@ build() { check() { for builddir in python{2,3}-build; do - pushd ${srcdir}/$builddir + pushd ${srcdir}/${builddir} PYTHON=${MINGW_PREFIX}/bin/${builddir%-build} \ make check popd @@ -60,10 +56,13 @@ check() { package_python2-gobject2() { pkgdesc="Python 2 bindings for GObject2 (mingw-w64)" - depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libffi" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pygobject2-devel=$pkgver") + depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pygobject2-devel=${pkgver}") cd python2-build - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}"/share/pygobject -name '*.py' -exec \ sed -i '1s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|' {} + @@ -74,17 +73,20 @@ package_python2-gobject2() { cd ${srcdir} mkdir -p devel${MINGW_PREFIX}/{bin,lib,share/pygobject} mv "${pkgdir}${MINGW_PREFIX}"/bin/pygobject-codegen-2.0 devel${MINGW_PREFIX}/bin/ - mv {"$pkgdir",devel}${MINGW_PREFIX}/include - mv {"$pkgdir",devel}${MINGW_PREFIX}/lib/pkgconfig - mv {"$pkgdir",devel}${MINGW_PREFIX}/share/pygobject/xsl + mv {"${pkgdir}",devel}${MINGW_PREFIX}/include + mv {"${pkgdir}",devel}${MINGW_PREFIX}/lib/pkgconfig + mv {"${pkgdir}",devel}${MINGW_PREFIX}/share/pygobject/xsl } package_python3-gobject2() { pkgdesc="Python 3 bindings for GObject2 (mingw-w64)" - depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libffi" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pygobject2-devel=$pkgver") + depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pygobject2-devel=${pkgver}") cd python3-build - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install # Delete devel stuff rm -f "${pkgdir}${MINGW_PREFIX}"/bin/pygobject-codegen-2.0 @@ -93,6 +95,7 @@ package_python3-gobject2() { package_pygobject2-devel() { pkgdesc="Development files for the pygobject bindings" + mv ${srcdir}/devel${MINGW_PREFIX} "${pkgdir}/" } diff --git a/mingw-w64-pygtksourceview2/PKGBUILD b/mingw-w64-pygtksourceview2/PKGBUILD index a150b2b192..0a93e1e7c8 100644 --- a/mingw-w64-pygtksourceview2/PKGBUILD +++ b/mingw-w64-pygtksourceview2/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=pygtksourceview - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}2" pkgver=2.10.1 pkgrel=1 @@ -9,14 +8,13 @@ pkgdesc="Python bindings for gtksourceview2 (mingw-w64)" arch=(any) url="http://www.gnome.org" license=('LGPL') -groups=("${MINGW_PACKAGE_PREFIX}") depends=("${MINGW_PACKAGE_PREFIX}-gtksourceview2>=2.10.0" - "${MINGW_PACKAGE_PREFIX}-python2-pygtk>=2.17.0") + "${MINGW_PACKAGE_PREFIX}-python2-pygtk>=2.17.0") makedepends=("${MINGW_PACKAGE_PREFIX}-python2-gobject2" - "intltool") + "intltool") options=('staticlibs' 'strip') source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.bz2 - python-m4.patch) + python-m4.patch) md5sums=('2654354d61422fb79d8375fc3a3b5393' 'bc368c2b741d2b3b8612b882378bbba6') @@ -34,20 +32,22 @@ build() { rm -rf python2-build mkdir python2-build - #cp -r ${_realname}-$pkgver $builddir + #cp -r ${_realname}-${pkgver} ${builddir} pushd python2-build export lt_cv_deplibs_check_method='pass_all' PYTHON=${MINGW_PREFIX}/bin/python2 \ - ../${_realname}-$pkgver/configure --prefix=${MINGW_PREFIX} \ + ../${_realname}-${pkgver}/configure --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --disable-static --disable-docs + --disable-static \ + --disable-docs + make VERBOSE=1 popd } package() { cd python2-build - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-python-mako/PKGBUILD b/mingw-w64-python-mako/PKGBUILD index d650228e5f..ff57f6899d 100644 --- a/mingw-w64-python-mako/PKGBUILD +++ b/mingw-w64-python-mako/PKGBUILD @@ -7,7 +7,6 @@ pkgver=1.0.1 pkgrel=3 pkgdesc="A super-fast templating language that borrows the best ideas from the existing templating languages (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") license=('custom') url="https://pypi.python.org/pypi/Mako" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" diff --git a/mingw-w64-python-pywin32/PKGBUILD b/mingw-w64-python-pywin32/PKGBUILD index 416a074afa..76d54afb1a 100644 --- a/mingw-w64-python-pywin32/PKGBUILD +++ b/mingw-w64-python-pywin32/PKGBUILD @@ -8,10 +8,8 @@ license=('PSF') arch=('any') pkgver=219 pkgrel=1 - makedepends=(${MINGW_PACKAGE_PREFIX}-python2 ${MINGW_PACKAGE_PREFIX}-python3 rsync) pkgname=(${MINGW_PACKAGE_PREFIX}-python2-${_realname} ${MINGW_PACKAGE_PREFIX}-python3-${_realname}) -groups=(${MINGW_PACKAGE_PREFIX}) source=("http://prdownloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.zip" 001-compile-and-setup-fixes.patch) sha1sums=('1eb8039f9e15f53f56a9e1b54f00cd2c0f63ff8e' diff --git a/mingw-w64-python2-pygtk/PKGBUILD b/mingw-w64-python2-pygtk/PKGBUILD index e4b158e995..feb1c5865a 100644 --- a/mingw-w64-python2-pygtk/PKGBUILD +++ b/mingw-w64-python2-pygtk/PKGBUILD @@ -8,7 +8,6 @@ pkgdesc="Python bindings for the GTK widget set (mingw-w64)" arch=(any) url="http://www.pygtk.org" license=('LGPL') -groups=("${MINGW_PACKAGE_PREFIX}") depends=("${MINGW_PACKAGE_PREFIX}-python2-cairo" "${MINGW_PACKAGE_PREFIX}-python2-gobject2" "${MINGW_PACKAGE_PREFIX}-libglade") @@ -54,7 +53,7 @@ build() { package() { cd python2-build - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -m644 ${srcdir}/${_realname}-$pkgver/gtk/gtk-extrafuncs.defs "${pkgdir}${MINGW_PREFIX}/share/pygtk/2.0/defs/" sed -i -e 's#env python$#env python2#' "${pkgdir}${MINGW_PREFIX}"/lib/pygtk/2.0/{,demos/}*.py } diff --git a/mingw-w64-qhull-git/PKGBUILD b/mingw-w64-qhull-git/PKGBUILD index 36324f77ff..97464ad966 100644 --- a/mingw-w64-qhull-git/PKGBUILD +++ b/mingw-w64-qhull-git/PKGBUILD @@ -12,7 +12,6 @@ pkgdesc="A general dimension code for computing convex hulls and related structu arch=('any') url="http://www.${_realname}.org/" license=('custom') -groups=("${MINGW_PACKAGE_PREFIX}") options=('strip' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("git" @@ -26,38 +25,31 @@ sha1sums=('SKIP' '5494fe7a909fda8842ee1a7c2771cdefb52eda6f') pkgver() { - cd "${srcdir}"/$_realname + cd "${srcdir}"/${_realname} printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd "${srcdir}"/$_realname + cd "${srcdir}"/${_realname} git am "${srcdir}"/0001-MSYS2-Adopt-FHS-layout-in-cmake.patch git am "${srcdir}"/0002-MinGW-w64-64-bit-ptr_intT-fix.patch } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DBUILD_SHARED_LIBS=ON \ - "${srcdir}"/$_realname + ../${_realname} + make } package() { cd "${srcdir}"/build-${CARCH} - make install # DESTDIR="$pkgdir" + make install # DESTDIR="${pkgdir}" pushd ${pkgdir}${MINGW_PREFIX}/lib >/dev/null if [ -f lib${_realname}static.a ]; then mv -f lib${_realname}static.a lib${_realname}.a diff --git a/mingw-w64-qrupdate-svn/PKGBUILD b/mingw-w64-qrupdate-svn/PKGBUILD index 77934d3e81..b7deb9ac76 100644 --- a/mingw-w64-qrupdate-svn/PKGBUILD +++ b/mingw-w64-qrupdate-svn/PKGBUILD @@ -5,17 +5,16 @@ _realname=qrupdate pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}-svn pkgver=r28 pkgrel=2 -pkgdesc="qrupdate is a Fortran library for fast updates of QR and Cholesky decompositions." +pkgdesc="qrupdate is a Fortran library for fast updates of QR and Cholesky decompositions (mingw-w64)" arch=('any') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") url="http://qrupdate.sourceforge.net/" options=('strip' 'staticlibs') license=('GPL' 'LGPL') -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("subversion" - "${MINGW_PACKAGE_PREFIX}-gcc-fortran") + "${MINGW_PACKAGE_PREFIX}-gcc-fortran") depends=("${MINGW_PACKAGE_PREFIX}-openblas") -source=("$_realname::svn+http://svn.code.sf.net/p/qrupdate/code") +source=("${_realname}::svn+http://svn.code.sf.net/p/qrupdate/code") md5sums=('SKIP') pkgver() { @@ -26,7 +25,7 @@ pkgver() { build() { mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} - cp -pR ../$_realname/* . + cp -pR ../${_realname}/* . make FPICFLAGS="" lib gfortran -shared -o lib${_realname}.dll -Wl,--out-implib,lib${_realname}.dll.a src/*.o -lopenblas -lgfortran } diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index c7ff3abecc..68fd76e69e 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -9,7 +9,6 @@ pkgrel=2 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') license=(PublicDomain) -groups=("${MINGW_PACKAGE_PREFIX}") url="http://www.sqlite.org" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-ncurses" diff --git a/mingw-w64-suitesparse/PKGBUILD b/mingw-w64-suitesparse/PKGBUILD index 8d2117b910..4e68077903 100644 --- a/mingw-w64-suitesparse/PKGBUILD +++ b/mingw-w64-suitesparse/PKGBUILD @@ -6,7 +6,6 @@ pkgver=4.4.3 pkgrel=1 pkgdesc='A suite of sparse matrix algorithms (mingw-w64)' license=('GPL') -groups=("${MINGW_PACKAGE_PREFIX}") arch=('any') source=("http://faculty.cse.tamu.edu/davis/${_realname}/${_realname}-${pkgver}.tar.gz" "0001-Win32-Do-not-link-librt.patch" diff --git a/mingw-w64-usbmuxd/PKGBUILD b/mingw-w64-usbmuxd/PKGBUILD index 01f920db08..b9bdb13d60 100644 --- a/mingw-w64-usbmuxd/PKGBUILD +++ b/mingw-w64-usbmuxd/PKGBUILD @@ -5,7 +5,6 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.1.0 pkgrel=1 pkgdesc='A socket daemon to multiplex connections from and to iOS devices (mingw-w64)' -groups=("${MINGW_PACKAGE_PREFIX}" "xdev") arch=('any') url='http://www.libimobiledevice.org/' license=('GPL2+') diff --git a/mingw-w64-w32pth/PKGBUILD b/mingw-w64-w32pth/PKGBUILD index 8ce6b7948b..9154937a08 100644 --- a/mingw-w64-w32pth/PKGBUILD +++ b/mingw-w64-w32pth/PKGBUILD @@ -1,20 +1,18 @@ # Maintainer: Alexey Pavlov _realname=w32pth - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.5 pkgrel=2 pkgdesc="An emulation of PTH for MS Windows (mingw-w64)" arch=('any') license=("LGPL") -groups=("${MINGW_PACKAGE_PREFIX}") url="http://www.gnupg.org" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' 'staticlibs') source=("ftp://ftp.g10code.com/g10code/w32pth/w32pth-${pkgver}.tar.bz2" - w32pth-2.0.4-deffile.patch - w32pth-2.0.4-mingw.patch) + w32pth-2.0.4-deffile.patch + w32pth-2.0.4-mingw.patch) sha1sums=('d648b98ce215f81e901f3f982470d37c704433a6' '8e64fa8432e990a4b0e5bedb62cebad64a8d7197' '27ac166bfe7761e56e6d6333b8af7b08c11fe5db') diff --git a/mingw-w64-xmlada-gpl/PKGBUILD b/mingw-w64-xmlada-gpl/PKGBUILD index f5581a4c79..0f2439eaf2 100644 --- a/mingw-w64-xmlada-gpl/PKGBUILD +++ b/mingw-w64-xmlada-gpl/PKGBUILD @@ -13,16 +13,13 @@ arch=('any') provides=("${MINGW_PACKAGE_PREFIX}-${_basename}") url="http://libre.adacore.com/libre/tools/xmlada/" license=('GPL3') -depends=("gcc-ada") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-ada") source=(http://downloads.dragonlace.net/src/${_realname}-${pkgver}-src.tar.gz) md5sums=('1aaa49885ec280a3242823f659460dff') options=('strip') -groups=("${MINGW_PACKAGE_PREFIX}") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-ada") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-ada") build() { - cd $srcdir/$_basename-$pkgver-src + cd ${srcdir}/${_basename}-${pkgver}-src ./configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -32,19 +29,19 @@ build() { } package() { - mkdir -p $pkgdir$MINGW_PREFIX/include/xmlada - mkdir -p $pkgdir$MINGW_PREFIX/lib/xmlada/static - mkdir -p $pkgdir$MINGW_PREFIX/lib/xmlada/relocatable - mkdir -p $pkgdir$MINGW_PREFIX/lib/gnat/xmlada + mkdir -p ${pkgdir}${MINGW_PREFIX}/include/xmlada + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/xmlada/static + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/xmlada/relocatable + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gnat/xmlada - cd ${srcdir}/$_basename-$pkgver-src - make prefix=$pkgdir$MINGW_PREFIX INSTALL=cp install + cd ${srcdir}/${_basename}-${pkgver}-src + make prefix=${pkgdir}${MINGW_PREFIX} INSTALL=cp install rm -rf ${pkgdir}${MINGW_PREFIX}/share/examples rm -rf ${pkgdir}${MINGW_PREFIX}/share/doc # Copy License Files mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname - cp -pf ${srcdir}/${_basename}-$pkgver-src/COPYING* \ - ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + cp -pf ${srcdir}/${_basename}-${pkgver}-src/COPYING* \ + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} } diff --git a/mingw-w64-zlib/PKGBUILD b/mingw-w64-zlib/PKGBUILD index 3922839edb..ec9c705dae 100644 --- a/mingw-w64-zlib/PKGBUILD +++ b/mingw-w64-zlib/PKGBUILD @@ -8,7 +8,6 @@ pkgver=1.2.8 pkgrel=8 pkgdesc="Compression library implementing the deflate compression method found in gzip and PKZIP (mingw-w64)" arch=('any') -groups=("${MINGW_PACKAGE_PREFIX}") license=(ZLIB) url="http://www.zlib.net/" depends=("${MINGW_PACKAGE_PREFIX}-bzip2") From 30af6b1258963c55908fea5c12e3acc71e739217 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 7 Jul 2015 14:33:36 +0300 Subject: [PATCH 1252/2060] allegro: Update to 5.1.11 --- mingw-w64-allegro/PKGBUILD | 66 ++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 38 deletions(-) diff --git a/mingw-w64-allegro/PKGBUILD b/mingw-w64-allegro/PKGBUILD index 9663fcebcc..919be3aa94 100644 --- a/mingw-w64-allegro/PKGBUILD +++ b/mingw-w64-allegro/PKGBUILD @@ -2,58 +2,49 @@ _realname=allegro pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.0.11 +pkgver=5.1.11 pkgrel=1 pkgdesc="Portable library mainly aimed at video game and multimedia programming (mingw-w64)" arch=(any) url="http://alleg.sourceforge.net" license=("ZLIB") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-physfs" - "${MINGW_PACKAGE_PREFIX}-libvorbis" - "${MINGW_PACKAGE_PREFIX}-flac" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-openal" - "${MINGW_PACKAGE_PREFIX}-dumb" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-dumb" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-flac" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libvorbis" + "${MINGW_PACKAGE_PREFIX}-openal" + "${MINGW_PACKAGE_PREFIX}-physfs") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -optdepends=( - "${MINGW_PACKAGE_PREFIX}-dumb: allegro_audio" - "${MINGW_PACKAGE_PREFIX}-flac: allegro_audio" - "${MINGW_PACKAGE_PREFIX}-freetype: allegro_font" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo: allegro_image" - "${MINGW_PACKAGE_PREFIX}-libpng: allegro_image" - "${MINGW_PACKAGE_PREFIX}-libvorbis: allegro_audio" - "${MINGW_PACKAGE_PREFIX}-openal: allegro_audio" - "${MINGW_PACKAGE_PREFIX}-physfs: allegro_physfs") +optdepends=("${MINGW_PACKAGE_PREFIX}-dumb: allegro_audio" + "${MINGW_PACKAGE_PREFIX}-flac: allegro_audio" + "${MINGW_PACKAGE_PREFIX}-freetype: allegro_font" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo: allegro_image" + "${MINGW_PACKAGE_PREFIX}-libpng: allegro_image" + "${MINGW_PACKAGE_PREFIX}-libvorbis: allegro_audio" + "${MINGW_PACKAGE_PREFIX}-openal: allegro_audio" + "${MINGW_PACKAGE_PREFIX}-physfs: allegro_physfs") options=('strip' 'staticlibs') -source=("http://downloads.sourceforge.net/alleg/allegro-$pkgver.tar.gz") +source=("http://downloads.sourceforge.net/alleg/allegro-${pkgver}.tar.gz") conflicts=("${MINGW_PACKAGE_PREFIX}-allegro-static") provides=("${MINGW_PACKAGE_PREFIX}-allegro-static") -sha256sums=('49fe14c9571463ba08db4ff778d1fbb15e49f9c33bdada3ac8599e04330ea531') +sha256sums=('7a071635e39105ce52cd82c8641a8f3841efbdfe8fdb39f7a5ae1be6db3be07f') prepare() { - cd "$srcdir/allegro-$pkgver" + cd "$srcdir/allegro-${pkgver}" sed -i "s,DS3DALG_DEFAULT,GUID_NULL,g" "addons/audio/dsound.cpp" } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - - export DXSDK_DIR=${PREFIX_DEPS}/${MINGW_CHOST} - mkdir -p "$srcdir/build-${MINGW_CHOST}" && cd "$srcdir/build-${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DWANT_DEMO=OFF \ -DWANT_DOCS=OFF \ @@ -64,7 +55,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make install - find "${pkgdir}${MINGW_PREFIX}" -name '*.bat' -o -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } From f4911b647abfdb859685099af999b78614ce38d0 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 7 Jul 2015 16:23:44 +0300 Subject: [PATCH 1253/2060] === Rebuild with GCC-5.1.0. Part IV === --- mingw-w64-SDL/PKGBUILD | 8 +- mingw-w64-boost/PKGBUILD | 148 ++++++++++++++---- mingw-w64-boost/boost-1.50.0-pool.patch | 4 +- .../boost-1.54.0-locale-unused_typedef.patch | 11 ++ .../boost-1.54.0-pool-max_chunks_shadow.patch | 14 ++ .../boost-1.54.0-python-unused_typedef.patch | 15 ++ ...0-python-test-PyImport_AppendInittab.patch | 98 ++++++++++++ ...ng-include-to-signals2-trackable.hpp.patch | 29 ---- .../boost-1.57.0-build-optflags.patch | 48 ++++++ .../boost-1.57.0-move-is_class.patch | 20 +++ mingw-w64-boost/boost-1.57.0-mpl-print.patch | 31 ++++ .../boost-1.57.0-pool-test_linking.patch | 33 ++++ .../boost-1.57.0-python-abi_letters.patch | 62 ++++++++ .../boost-1.57.0-python-libpython_dep.patch | 13 ++ .../boost-1.57.0-signals2-weak_ptr.patch | 24 +++ .../boost-1.57.0-spirit-unused_typedef.patch | 19 +++ .../boost-1.57.0-uuid-comparison.patch | 22 +++ .../boost-include-intrin-h-on-mingw-w64.patch | 14 ++ .../msys2-mingw-folders-bootstrap.patch | 29 ++++ mingw-w64-celt/PKGBUILD | 10 +- mingw-w64-enca/PKGBUILD | 6 +- mingw-w64-flac/PKGBUILD | 19 ++- mingw-w64-fluidsynth/PKGBUILD | 31 ++-- mingw-w64-fribidi/PKGBUILD | 8 +- mingw-w64-glew/PKGBUILD | 4 +- mingw-w64-gsm/PKGBUILD | 14 +- mingw-w64-l-smash/PKGBUILD | 3 +- mingw-w64-lame/PKGBUILD | 9 +- mingw-w64-libass/PKGBUILD | 15 +- mingw-w64-libogg/PKGBUILD | 7 +- mingw-w64-libsndfile/PKGBUILD | 23 +-- mingw-w64-libvorbis/PKGBUILD | 16 +- mingw-w64-mpg123/PKGBUILD | 20 +-- mingw-w64-openal/PKGBUILD | 28 ++-- mingw-w64-openblas/PKGBUILD | 14 +- mingw-w64-portaudio/PKGBUILD | 17 +- mingw-w64-python-numpy/1.0.4-fenv.patch | 18 +++ mingw-w64-python-numpy/PKGBUILD | 39 +++-- mingw-w64-python-numpy/fix-testsuite.patch | 4 +- mingw-w64-python-scipy/PKGBUILD | 40 ++--- mingw-w64-recode/PKGBUILD | 7 +- mingw-w64-rust/PKGBUILD | 2 +- mingw-w64-speex/PKGBUILD | 7 +- mingw-w64-speexdsp/PKGBUILD | 7 +- mingw-w64-x264/PKGBUILD | 5 +- mingw-w64-x265/PKGBUILD | 15 +- 46 files changed, 778 insertions(+), 252 deletions(-) create mode 100644 mingw-w64-boost/boost-1.54.0-locale-unused_typedef.patch create mode 100644 mingw-w64-boost/boost-1.54.0-pool-max_chunks_shadow.patch create mode 100644 mingw-w64-boost/boost-1.54.0-python-unused_typedef.patch create mode 100644 mingw-w64-boost/boost-1.55.0-python-test-PyImport_AppendInittab.patch delete mode 100644 mingw-w64-boost/boost-1.57.0-Add-missing-include-to-signals2-trackable.hpp.patch create mode 100644 mingw-w64-boost/boost-1.57.0-build-optflags.patch create mode 100644 mingw-w64-boost/boost-1.57.0-move-is_class.patch create mode 100644 mingw-w64-boost/boost-1.57.0-mpl-print.patch create mode 100644 mingw-w64-boost/boost-1.57.0-pool-test_linking.patch create mode 100644 mingw-w64-boost/boost-1.57.0-python-abi_letters.patch create mode 100644 mingw-w64-boost/boost-1.57.0-python-libpython_dep.patch create mode 100644 mingw-w64-boost/boost-1.57.0-signals2-weak_ptr.patch create mode 100644 mingw-w64-boost/boost-1.57.0-spirit-unused_typedef.patch create mode 100644 mingw-w64-boost/boost-1.57.0-uuid-comparison.patch create mode 100644 mingw-w64-boost/boost-include-intrin-h-on-mingw-w64.patch create mode 100644 mingw-w64-boost/msys2-mingw-folders-bootstrap.patch create mode 100644 mingw-w64-python-numpy/1.0.4-fenv.patch diff --git a/mingw-w64-SDL/PKGBUILD b/mingw-w64-SDL/PKGBUILD index ef0c4e3be8..fa47ccb968 100644 --- a/mingw-w64-SDL/PKGBUILD +++ b/mingw-w64-SDL/PKGBUILD @@ -3,7 +3,7 @@ _realname=SDL pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2.15 -pkgrel=5 +pkgrel=6 pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (mingw-w64)" arch=('any') url="http://libsdl.org" @@ -15,18 +15,20 @@ source=("$url/release/SDL-$pkgver.tar.gz") md5sums=('9d96df8417572a2afb781a7c4c811a85') build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/SDL-${pkgver}/configure \ + ../SDL-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --disable-assembly + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install sed -e "s|-mwindows||g" -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/sdl.pc } diff --git a/mingw-w64-boost/PKGBUILD b/mingw-w64-boost/PKGBUILD index fdfb1c100e..644d76d7cc 100644 --- a/mingw-w64-boost/PKGBUILD +++ b/mingw-w64-boost/PKGBUILD @@ -4,7 +4,7 @@ _realname=boost pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.57.0 _boostver=${pkgver//./_} -pkgrel=2 +pkgrel=3 pkgdesc="Free peer-reviewed portable C++ source libraries (mingw-w64)" arch=('any') url="http://www.boost.org/" @@ -22,46 +22,126 @@ source=(http://downloads.sourceforge.net/sourceforge/boost/boost_${_boostver}.ta boost-1.50.0-fix-non-utf8-files.patch boost-1.50.0-pool.patch boost-1.54.0-bootstrap.patch - boost-1.57.0-Add-missing-include-to-signals2-trackable.hpp.patch + boost-1.54.0-locale-unused_typedef.patch + boost-1.54.0-pool-max_chunks_shadow.patch + boost-1.54.0-python-unused_typedef.patch + boost-1.55.0-python-test-PyImport_AppendInittab.patch boost-1.56-mingw-context.patch + boost-1.57.0-build-optflags.patch + boost-1.57.0-move-is_class.patch + boost-1.57.0-mpl-print.patch + boost-1.57.0-pool-test_linking.patch + boost-1.57.0-python-abi_letters.patch + boost-1.57.0-python-libpython_dep.patch + boost-1.57.0-signals2-weak_ptr.patch + boost-1.57.0-spirit-unused_typedef.patch + boost-1.57.0-uuid-comparison.patch + boost-include-intrin-h-on-mingw-w64.patch using-mingw-w64-python.patch - ) + msys2-mingw-folders-bootstrap.patch) md5sums=('1be49befbdd9a5ce9def2983ba3e7b76' 'dff8166486150121bf89d7050c7e5c49' 'ef427ef3a47f8fdeeb6b4ae3246aa84f' - 'a69f826fd911dcf34189aaaacf16853f' + '957b9ec07e4197b87a0f1073e565d955' '45dbfa0c971c8625c5cb985e6ed71b5d' - '26a97a0abc51efb7e87853d4d1030d48' + '18963bb39f778b0f0ed7894a5b48845d' + 'aac88d8444c25db38e6fc9f6e549ea4b' + '4e652869f58b4ce601715b9fb2c2b9ee' + 'a08837900284c677cf1cff21636ecbe7' '2c65a8915b70b9de25ac37a73a74d84d' - 'c2aac61b370b321552b5240b9ee7248e') + '2f7eaf049a7ab916008806beaf3eea0b' + '65a7e8edffbed332162253d31301fa29' + 'e6631765436f87e90c16778a25d2129c' + 'c28bcd8eeafd494021ebcd80456a687a' + 'a128f4a4e371bdde469f055c7a045db7' + 'ff8ee6c27cc2f4d912f1c028d4f2d91d' + '254c27857ee0574da377aa5ac107101c' + 'd8fb4b4bb69e225ff076513dfd756db9' + '92f66bba767a61bb553a13a794270f28' + '1f0904cea88ca36e6b927432c85676a3' + 'c2aac61b370b321552b5240b9ee7248e' + '29ffd4b1636e31678fa8e1afa77305eb') prepare() { cd "${srcdir}/boost_${_boostver}" - - patch -p1 -i ${srcdir}/boost-1.50.0-fix-non-utf8-files.patch - patch -p1 -i ${srcdir}/boost-1.48.0-add-bjam-man-page.patch - patch -p1 -i ${srcdir}/boost-1.50.0-pool.patch - patch -p1 -i ${srcdir}/boost-1.56-mingw-context.patch + patch -p1 -i ${srcdir}/boost-1.54.0-bootstrap.patch - patch -p1 -i ${srcdir}/boost-1.57.0-Add-missing-include-to-signals2-trackable.hpp.patch + + # https://svn.boost.org/trac/boost/ticket/6150 + patch -p1 -i ${srcdir}/boost-1.50.0-fix-non-utf8-files.patch + + # Add a manual page for bjam, based on the on-line documentation: + # http://www.boost.org/boost-build2/doc/html/bbv2/overview.html + patch -p1 -i ${srcdir}/boost-1.48.0-add-bjam-man-page.patch + + # https://bugzilla.redhat.com/show_bug.cgi?id=828856 + # https://bugzilla.redhat.com/show_bug.cgi?id=828857 + # https://svn.boost.org/trac/boost/ticket/6701 + patch -p1 -i ${srcdir}/boost-1.50.0-pool.patch + + # https://svn.boost.org/trac/boost/ticket/5637 + patch -p1 -i ${srcdir}/boost-1.57.0-mpl-print.patch + + # https://svn.boost.org/trac/boost/ticket/8870 + patch -p1 -i ${srcdir}/boost-1.57.0-spirit-unused_typedef.patch + + # https://svn.boost.org/trac/boost/ticket/8878 + patch -p1 -i ${srcdir}/boost-1.54.0-locale-unused_typedef.patch + + # https://svn.boost.org/trac/boost/ticket/8888 + patch -p1 -i ${srcdir}/boost-1.54.0-python-unused_typedef.patch + + # https://svn.boost.org/trac/boost/ticket/9038 + patch -p1 -i ${srcdir}/boost-1.57.0-pool-test_linking.patch + + # This was already fixed upstream, so no tracking bug. + patch -p1 -i ${srcdir}/boost-1.54.0-pool-max_chunks_shadow.patch + + # https://bugzilla.redhat.com/show_bug.cgi?id=1102667 + patch -p1 -i ${srcdir}/boost-1.57.0-python-libpython_dep.patch + patch -p1 -i ${srcdir}/boost-1.57.0-python-abi_letters.patch + patch -p1 -i ${srcdir}/boost-1.55.0-python-test-PyImport_AppendInittab.patch + + # https://svn.boost.org/trac/boost/ticket/10100 + # https://github.com/boostorg/signals2/pull/8 + patch -p1 -i ${srcdir}/boost-1.57.0-signals2-weak_ptr.patch + + # https://bugzilla.redhat.com/show_bug.cgi?id=1190039 + patch -p1 -i ${srcdir}/boost-1.57.0-build-optflags.patch + + # https://svn.boost.org/trac/boost/ticket/10510 + patch -p1 -i ${srcdir}/boost-1.57.0-uuid-comparison.patch + + # https://bugzilla.redhat.com/show_bug.cgi?id=1192002 + # https://svn.boost.org/trac/boost/ticket/11044 + patch -p1 -i ${srcdir}/boost-1.57.0-move-is_class.patch + + # https://svn.boost.org/trac/boost/ticket/7262 + patch -p1 -i ${srcdir}/boost-1.56-mingw-context.patch + + # Fix FTBFS on recent mingw-w64 and also use intrinsics based + # versions of the Interlocked symbols which are better optimized + patch -p1 -i ${srcdir}/boost-include-intrin-h-on-mingw-w64.patch # Use out own build Python patch -p1 -i ${srcdir}/using-mingw-w64-python.patch - - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - - echo "using python : 2.7 : ${PREFIX_DEPS}/bin/python2.exe : ${PREFIX_DEPS}/include/python2.7 ;" >> ./tools/build/src/user-config.jam - echo "using python : 3.4 : ${PREFIX_DEPS}/bin/python3.exe : ${PREFIX_DEPS}/include/python3.4m : ${PREFIX_DEPS}/lib/python3.4/config-3.4m ;" >> ./tools/build/src/user-config.jam - - mkdir -p "${srcdir}/boost-${MINGW_CHOST}" - lndir "${srcdir}/boost_${_boostver}" "${srcdir}/boost-${MINGW_CHOST}" + + patch -p1 -i ${srcdir}/msys2-mingw-folders-bootstrap.patch } build() { - cd "${srcdir}/boost-${MINGW_CHOST}" - ./bootstrap.sh --with-icu=${MINGW_PREFIX} --with-python=${MINGW_PREFIX} + local PREFIX_DEPS=$(cygpath -am ${MINGW_PREFIX}) + + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + lndir "${srcdir}/boost_${_boostver}" "${srcdir}/build-${MINGW_CHOST}" + + cd "${srcdir}/build-${MINGW_CHOST}" + + echo "using python : 2.7 : ${PREFIX_DEPS}/bin/python2.exe : ${PREFIX_DEPS}/include/python2.7 ;" >> ./tools/build/src/user-config.jam + echo "using python : 3.4 : ${PREFIX_DEPS}/bin/python3.exe : ${PREFIX_DEPS}/include/python3.4m : ${PREFIX_DEPS}/lib/python3.4/config-3.4m ;" >> ./tools/build/src/user-config.jam + #echo "using gcc : : ${PREFIX_DEPS}/bin/g++.exe : ${PREFIX_DEPS}/bin/windres.exe ;" >> ./tools/build/src/user-config.jam + + ./bootstrap.sh --with-icu=${MINGW_PREFIX} --with-python=${MINGW_PREFIX} --with-toolset=gcc case ${CARCH} in i686) @@ -80,13 +160,17 @@ build() { ./b2 \ toolset=gcc \ - variant=$variant \ + link=shared,static \ + address-model=${_model} \ + pch=off \ + runtime-link=shared \ threading=multi \ threadapi=win32 \ - link=shared,static \ - runtime-link=shared \ + variant=${variant} \ --debug-configuration \ --prefix=${pkgdir}${MINGW_PREFIX} \ + --layout=tagged \ + --without-mpi \ -sHAVE_ICU=1 \ -sICU_PATH=${MINGW_PREFIX} \ -sICU_LINK="-L${MINGW_PREFIX}/lib -licuuc -licuin -licudt" \ @@ -100,15 +184,11 @@ build() { -sZLIB_BINARY=z \ -sZLIB_INCLUDE=${MINGW_PREFIX}/include \ -sZLIB_LIBPATH=${MINGW_PREFIX}/zlib \ - pch=off \ - -d2 \ - address-model=${_model} \ - --layout=tagged \ - --without-mpi + -d2 } package() { - cd "${srcdir}/boost-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" case ${CARCH} in i686) local _model=32 @@ -126,7 +206,7 @@ package() { ./b2 \ toolset=gcc \ - variant=$variant \ + variant=${variant} \ threading=multi \ threadapi=win32 \ link=shared,static \ diff --git a/mingw-w64-boost/boost-1.50.0-pool.patch b/mingw-w64-boost/boost-1.50.0-pool.patch index 15ce400767..a5a9caad97 100644 --- a/mingw-w64-boost/boost-1.50.0-pool.patch +++ b/mingw-w64-boost/boost-1.50.0-pool.patch @@ -1,4 +1,4 @@ -Index: boost/pool/pool.hpp +Index: a/boost/pool/pool.hpp =================================================================== --- a/boost/pool/pool.hpp (revision 78317) +++ b/boost/pool/pool.hpp (revision 78326) @@ -88,7 +88,7 @@ Index: boost/pool/pool.hpp + set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); // insert it into the list, -Index: libs/pool/test/test_bug_6701.cpp +Index: a/libs/pool/test/test_bug_6701.cpp =================================================================== --- a/libs/pool/test/test_bug_6701.cpp (revision 78326) +++ b/libs/pool/test/test_bug_6701.cpp (revision 78326) diff --git a/mingw-w64-boost/boost-1.54.0-locale-unused_typedef.patch b/mingw-w64-boost/boost-1.54.0-locale-unused_typedef.patch new file mode 100644 index 0000000000..b7c91284d9 --- /dev/null +++ b/mingw-w64-boost/boost-1.54.0-locale-unused_typedef.patch @@ -0,0 +1,11 @@ +diff -urp boost_1_54_0-orig/boost/locale/boundary/segment.hpp boost_1_54_0/boost/locale/boundary/segment.hpp +--- boost_1_54_0-orig/boost/locale/boundary/segment.hpp 2013-07-23 00:47:27.020787174 +0200 ++++ boost_1_54_0/boost/locale/boundary/segment.hpp 2013-07-23 00:50:40.382959016 +0200 +@@ -27,7 +27,6 @@ namespace boundary { + int compare_text(LeftIterator l_begin,LeftIterator l_end,RightIterator r_begin,RightIterator r_end) + { + typedef LeftIterator left_iterator; +- typedef RightIterator right_iterator; + typedef typename std::iterator_traits::value_type char_type; + typedef std::char_traits traits; + while(l_begin!=l_end && r_begin!=r_end) { diff --git a/mingw-w64-boost/boost-1.54.0-pool-max_chunks_shadow.patch b/mingw-w64-boost/boost-1.54.0-pool-max_chunks_shadow.patch new file mode 100644 index 0000000000..1a85fceb82 --- /dev/null +++ b/mingw-w64-boost/boost-1.54.0-pool-max_chunks_shadow.patch @@ -0,0 +1,14 @@ +diff -up ./boost/pool/pool.hpp~ ./boost/pool/pool.hpp +--- ./boost/pool/pool.hpp~ 2013-08-21 17:49:56.023296922 +0200 ++++ ./boost/pool/pool.hpp 2013-08-22 11:38:01.133912638 +0200 +@@ -361,9 +361,7 @@ class pool: protected simple_segregated_ + { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool. + size_type partition_size = alloc_size(); + size_type POD_size = math::static_lcm::value + sizeof(size_type); +- size_type max_chunks = (std::numeric_limits::max() - POD_size) / alloc_size(); +- +- return max_chunks; ++ return (std::numeric_limits::max() - POD_size) / alloc_size(); + } + + static void * & nextof(void * const ptr) diff --git a/mingw-w64-boost/boost-1.54.0-python-unused_typedef.patch b/mingw-w64-boost/boost-1.54.0-python-unused_typedef.patch new file mode 100644 index 0000000000..8adf8ed208 --- /dev/null +++ b/mingw-w64-boost/boost-1.54.0-python-unused_typedef.patch @@ -0,0 +1,15 @@ +diff -up boost_1_53_0/boost/python/to_python_value.hpp\~ boost_1_53_0/boost/python/to_python_value.hpp +--- boost_1_53_0/boost/python/to_python_value.hpp~ 2007-12-16 11:12:07.000000000 +0100 ++++ boost_1_53_0/boost/python/to_python_value.hpp 2013-07-23 16:19:02.518904596 +0200 +@@ -147,8 +147,8 @@ namespace detail + template + inline PyObject* registry_to_python_value::operator()(argument_type x) const + { +- typedef converter::registered r; + # if BOOST_WORKAROUND(__GNUC__, < 3) ++ typedef converter::registered r; + // suppresses an ICE, somehow + (void)r::converters; + # endif + +Diff finished. Tue Jul 23 16:19:05 2013 diff --git a/mingw-w64-boost/boost-1.55.0-python-test-PyImport_AppendInittab.patch b/mingw-w64-boost/boost-1.55.0-python-test-PyImport_AppendInittab.patch new file mode 100644 index 0000000000..1d2ee5c382 --- /dev/null +++ b/mingw-w64-boost/boost-1.55.0-python-test-PyImport_AppendInittab.patch @@ -0,0 +1,98 @@ +diff -up boost_1_55_0/libs/python/test/exec.cpp\~ boost_1_55_0/libs/python/test/exec.cpp +--- boost_1_55_0/libs/python/test/exec.cpp~ 2010-07-05 00:38:38.000000000 +0200 ++++ boost_1_55_0/libs/python/test/exec.cpp 2015-01-09 21:31:12.903218280 +0100 +@@ -56,6 +56,20 @@ void eval_test() + BOOST_TEST(value == "ABCDEFG"); + } + ++struct PyCtx ++{ ++ PyCtx() { ++ Py_Initialize(); ++ } ++ ++ ~PyCtx() { ++ // N.B. certain problems may arise when Py_Finalize is called when ++ // using Boost.Python. However in this test suite it all seems to ++ // work fine. ++ Py_Finalize(); ++ } ++}; ++ + void exec_test() + { + // Register the module with the interpreter +@@ -68,6 +82,8 @@ void exec_test() + ) == -1) + throw std::runtime_error("Failed to add embedded_hello to the interpreter's " + "builtin modules"); ++ ++ PyCtx ctx; + // Retrieve the main module + python::object main = python::import("__main__"); + +@@ -148,41 +164,43 @@ void check_pyerr(bool pyerr_expected=fal + } + } + ++template ++bool ++run_and_handle_exception(Cb cb, bool pyerr_expected = false) ++{ ++ PyCtx ctx; ++ if (python::handle_exception(cb)) { ++ check_pyerr(pyerr_expected); ++ return true; ++ } else { ++ return false; ++ } ++} ++ + int main(int argc, char **argv) + { + BOOST_TEST(argc == 2 || argc == 3); + std::string script = argv[1]; +- // Initialize the interpreter +- Py_Initialize(); + +- if (python::handle_exception(eval_test)) { +- check_pyerr(); +- } +- else if(python::handle_exception(exec_test)) { +- check_pyerr(); +- } +- else if (python::handle_exception(boost::bind(exec_file_test, script))) { ++ // N.B. exec_test mustn't be called through run_and_handle_exception ++ // as it needs to handles the python context by itself. ++ if (run_and_handle_exception(eval_test) ++ || python::handle_exception(exec_test)) + check_pyerr(); +- } +- +- if (python::handle_exception(exec_test_error)) +- { +- check_pyerr(/*pyerr_expected*/ true); +- } + else +- { ++ run_and_handle_exception(boost::bind(exec_file_test, script)); ++ ++ if (!run_and_handle_exception(exec_test_error, true)) + BOOST_ERROR("Python exception expected, but not seen."); +- } + + if (argc > 2) { ++ PyCtx ctx; + // The main purpose is to test compilation. Since this test generates + // a file and I (rwgk) am uncertain about the side-effects, run it only + // if explicitly requested. + exercise_embedding_html(); + } + +- // Boost.Python doesn't support Py_Finalize yet. +- // Py_Finalize(); + return boost::report_errors(); + } + + +Diff finished. Fri Jan 9 21:31:13 2015 diff --git a/mingw-w64-boost/boost-1.57.0-Add-missing-include-to-signals2-trackable.hpp.patch b/mingw-w64-boost/boost-1.57.0-Add-missing-include-to-signals2-trackable.hpp.patch deleted file mode 100644 index 7ecd749eb2..0000000000 --- a/mingw-w64-boost/boost-1.57.0-Add-missing-include-to-signals2-trackable.hpp.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 06ccdfee76fe487a141b95848d1c866890f15d88 Mon Sep 17 00:00:00 2001 -From: Evangelos Foutras -Date: Thu, 6 Nov 2014 09:19:26 +0200 -Subject: [PATCH] Add missing include to signals2/trackable.hpp - -boost::weak_ptr started being used in commit a0bf2d1 (Disconnect slots -associated with signals2::trackable immediately) but the matching header -wasn't included. - -https://svn.boost.org/trac/boost/ticket/10100#comment:7 ---- - boost/signals2/trackable.hpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/boost/signals2/trackable.hpp b/boost/signals2/trackable.hpp -index dba001d..64e8489 100644 ---- a/boost/signals2/trackable.hpp -+++ b/boost/signals2/trackable.hpp -@@ -18,6 +18,7 @@ - - #include - #include -+#include - - namespace boost { - namespace signals2 { --- -2.1.3 - diff --git a/mingw-w64-boost/boost-1.57.0-build-optflags.patch b/mingw-w64-boost/boost-1.57.0-build-optflags.patch new file mode 100644 index 0000000000..d0b925fbbc --- /dev/null +++ b/mingw-w64-boost/boost-1.57.0-build-optflags.patch @@ -0,0 +1,48 @@ +diff -up ./tools/build/src/tools/gcc.jam~ ./tools/build/src/tools/gcc.jam +--- ./tools/build/src/tools/gcc.jam~ 2015-02-09 15:01:04.850331626 +0100 ++++ ./tools/build/src/tools/gcc.jam 2015-02-09 15:44:29.122307134 +0100 +@@ -366,17 +366,17 @@ generators.override gcc.compile.c++.pch + toolset.flags gcc.compile PCH_FILE on : ; + + # Declare flags and action for compilation. +-toolset.flags gcc.compile OPTIONS off : -O0 ; +-toolset.flags gcc.compile OPTIONS speed : -O3 ; +-toolset.flags gcc.compile OPTIONS space : -Os ; ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS speed : ; ++toolset.flags gcc.compile OPTIONS space : ; + +-toolset.flags gcc.compile OPTIONS off : -fno-inline ; +-toolset.flags gcc.compile OPTIONS on : -Wno-inline ; +-toolset.flags gcc.compile OPTIONS full : -finline-functions -Wno-inline ; ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS full : ; + +-toolset.flags gcc.compile OPTIONS off : -w ; +-toolset.flags gcc.compile OPTIONS on : -Wall ; +-toolset.flags gcc.compile OPTIONS all : -Wall -pedantic ; ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS all : ; + toolset.flags gcc.compile OPTIONS on : -Werror ; + + toolset.flags gcc.compile OPTIONS on : -g ; +@@ -603,7 +603,7 @@ rule compile.fortran ( targets * : sourc + + actions compile.c++ bind PCH_FILE + { +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)" + } + + actions compile.c bind PCH_FILE +@@ -613,7 +613,7 @@ actions compile.c bind PCH_FILE + + actions compile.c++.preprocess bind PCH_FILE + { +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)" + } + + actions compile.c.preprocess bind PCH_FILE diff --git a/mingw-w64-boost/boost-1.57.0-move-is_class.patch b/mingw-w64-boost/boost-1.57.0-move-is_class.patch new file mode 100644 index 0000000000..e37af32794 --- /dev/null +++ b/mingw-w64-boost/boost-1.57.0-move-is_class.patch @@ -0,0 +1,20 @@ +diff -up a/move/core.hpp b/move/core.hpp +--- a/boost/move/core.hpp~ 2015-02-09 17:33:35.000000000 +0100 ++++ b/boost/move/core.hpp 2015-02-13 13:54:52.012130813 +0100 +@@ -43,6 +43,7 @@ + #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED) + + #include ++ #include + + //Move emulation rv breaks standard aliasing rules so add workarounds for some compilers + #if defined(__GNUC__) && (__GNUC__ >= 4) && \ +@@ -65,7 +66,7 @@ + template + class rv + : public ::boost::move_detail::if_c +- < ::boost::move_detail::is_class_or_union::value ++ < ::boost::is_class::value + , T + , ::boost::move_detail::nat + >::type diff --git a/mingw-w64-boost/boost-1.57.0-mpl-print.patch b/mingw-w64-boost/boost-1.57.0-mpl-print.patch new file mode 100644 index 0000000000..561cef19eb --- /dev/null +++ b/mingw-w64-boost/boost-1.57.0-mpl-print.patch @@ -0,0 +1,31 @@ +diff -up boost_1_57_0/boost/mpl/print.hpp\~ boost_1_57_0/boost/mpl/print.hpp +--- boost_1_57_0/boost/mpl/print.hpp~ 2014-07-09 23:12:31.000000000 +0200 ++++ boost_1_57_0/boost/mpl/print.hpp 2015-01-20 12:44:59.621400948 +0100 +@@ -52,16 +52,15 @@ struct print + enum { n = sizeof(T) + -1 }; + #elif defined(__MWERKS__) + void f(int); +-#else +- enum { +- n = +-# if defined(__EDG_VERSION__) +- aux::dependent_unsigned::value > -1 +-# else +- sizeof(T) > -1 +-# endif +- }; +-#endif ++#elif defined(__EDG_VERSION__) ++ enum { n = aux::dependent_unsigned::value > -1 }; ++#elif defined(BOOST_GCC) ++ enum { n1 }; ++ enum { n2 }; ++ enum { n = n1 != n2 }; ++#else ++ enum { n = sizeof(T) > -1 }; ++#endif + }; + + #if defined(BOOST_MSVC) + +Diff finished. Tue Jan 20 12:45:03 2015 diff --git a/mingw-w64-boost/boost-1.57.0-pool-test_linking.patch b/mingw-w64-boost/boost-1.57.0-pool-test_linking.patch new file mode 100644 index 0000000000..57e6206bba --- /dev/null +++ b/mingw-w64-boost/boost-1.57.0-pool-test_linking.patch @@ -0,0 +1,33 @@ +diff -up boost_1_57_0/libs/pool/test/Jamfile.v2\~ boost_1_57_0/libs/pool/test/Jamfile.v2 +--- boost_1_57_0/libs/pool/test/Jamfile.v2~ 2014-07-10 06:36:10.000000000 +0200 ++++ boost_1_57_0/libs/pool/test/Jamfile.v2 2015-01-20 13:59:10.818700586 +0100 +@@ -28,17 +28,17 @@ explicit valgrind_config_check ; + local use-valgrind = [ check-target-builds valgrind_config_check "valgrind" : "valgrind --error-exitcode=1" : no ] ; + + test-suite pool : +- [ run test_simple_seg_storage.cpp ] +- [ run test_pool_alloc.cpp ] +- [ run pool_msvc_compiler_bug_test.cpp ] +- [ run test_msvc_mem_leak_detect.cpp ] +- [ run test_bug_3349.cpp ] +- [ run test_bug_4960.cpp ] +- [ run test_bug_1252.cpp ] +- [ run test_bug_2696.cpp ] +- [ run test_bug_5526.cpp ] ++ [ run test_simple_seg_storage.cpp : : : /boost/system//boost_system ] ++ [ run test_pool_alloc.cpp : : : /boost/system//boost_system ] ++ [ run pool_msvc_compiler_bug_test.cpp : : : /boost/system//boost_system ] ++ [ run test_msvc_mem_leak_detect.cpp : : : /boost/system//boost_system ] ++ [ run test_bug_3349.cpp : : : /boost/system//boost_system ] ++ [ run test_bug_4960.cpp : : : /boost/system//boost_system ] ++ [ run test_bug_1252.cpp : : : /boost/system//boost_system ] ++ [ run test_bug_2696.cpp : : : /boost/system//boost_system ] ++ [ run test_bug_5526.cpp : : : /boost/system//boost_system ] + [ run test_threading.cpp : : : multi /boost/thread//boost_thread gcc:-Wno-attributes gcc:-Wno-missing-field-initializers ] +- [ run ../example/time_pool_alloc.cpp ] ++ [ run ../example/time_pool_alloc.cpp : : : /boost/system//boost_system ] + [ compile test_poisoned_macros.cpp ] + + # + +Diff finished. Tue Jan 20 13:59:16 2015 diff --git a/mingw-w64-boost/boost-1.57.0-python-abi_letters.patch b/mingw-w64-boost/boost-1.57.0-python-abi_letters.patch new file mode 100644 index 0000000000..7df3ee7047 --- /dev/null +++ b/mingw-w64-boost/boost-1.57.0-python-abi_letters.patch @@ -0,0 +1,62 @@ +--- boost_1_57_0/tools/build/src/tools/python.jam 2013-05-21 06:14:18.000000000 +0200 ++++ boost_1_55_0/tools/build/src/tools/python.jam 2014-05-29 19:09:12.115413877 +0200 +@@ -94,7 +94,7 @@ feature.feature pythonpath : : free opti + # using python : 2.3 : /usr/local/bin/python ; + # + rule init ( version ? : cmd-or-prefix ? : includes * : libraries ? +- : condition * : extension-suffix ? ) ++ : condition * : extension-suffix ? : abi-letters ? ) + { + project.push-current $(.project) ; + +@@ -107,7 +107,7 @@ rule init ( version ? : cmd-or-prefix ? + } + } + +- configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) : $(condition) : $(extension-suffix) ; ++ configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) : $(condition) : $(extension-suffix) : $(abi-letters) ; + + project.pop-current ; + } +@@ -653,7 +653,7 @@ local rule system-library-dependencies ( + + # Declare a target to represent Python's library. + # +-local rule declare-libpython-target ( version ? : requirements * ) ++local rule declare-libpython-target ( version ? : requirements * : abi-letters ? ) + { + # Compute the representation of Python version in the name of Python's + # library file. +@@ -677,13 +677,13 @@ local rule declare-libpython-target ( ve + } + + # Declare it. +- lib python.lib : : python$(lib-version) $(requirements) ; ++ lib python.lib : : python$(lib-version)$(abi-letters) $(requirements) ; + } + + + # Implementation of init. + local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? : +- condition * : extension-suffix ? ) ++ condition * : extension-suffix ? : abi-letters ? ) + { + local prefix ; + local exec-prefix ; +@@ -699,6 +699,7 @@ local rule configure ( version ? : cmd-o + extension-suffix ?= _d ; + } + extension-suffix ?= "" ; ++ abi-letters ?= "" ; + + # Normalize and dissect any version number. + local major-minor ; +@@ -922,7 +923,7 @@ local rule configure ( version ? : cmd-o + } + else + { +- declare-libpython-target $(version) : $(target-requirements) ; ++ declare-libpython-target $(version) : $(target-requirements) : $(abi-letters) ; + + # This is an evil hack. On, Windows, when Python is embedded, nothing + # seems to set up sys.path to include Python's standard library diff --git a/mingw-w64-boost/boost-1.57.0-python-libpython_dep.patch b/mingw-w64-boost/boost-1.57.0-python-libpython_dep.patch new file mode 100644 index 0000000000..57bfc26774 --- /dev/null +++ b/mingw-w64-boost/boost-1.57.0-python-libpython_dep.patch @@ -0,0 +1,13 @@ +Index: boost_1_57_0/tools/build/src/tools/python.jam +=================================================================== +--- boost_1_57_0/tools/build/src/tools/python.jam (revision 50406) ++++ boost_1_57_0/tools/build/src/tools/python.jam (working copy) +@@ -994,7 +994,7 @@ + else + { + alias python_for_extensions +- : ++ : python + : $(target-requirements) + : + : $(usage-requirements) diff --git a/mingw-w64-boost/boost-1.57.0-signals2-weak_ptr.patch b/mingw-w64-boost/boost-1.57.0-signals2-weak_ptr.patch new file mode 100644 index 0000000000..b0ce430a8f --- /dev/null +++ b/mingw-w64-boost/boost-1.57.0-signals2-weak_ptr.patch @@ -0,0 +1,24 @@ +From fd0d8042e2bb2fb5a4d88bcfc700c1cb9d7aa1bb Mon Sep 17 00:00:00 2001 +From: Frank Mori Hess +Date: Thu, 6 Nov 2014 23:32:20 -0500 +Subject: [PATCH] Fix for missing include from Evangelos Foutras. + +--- + boost/signals2/trackable.hpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/boost/signals2/trackable.hpp b/boost/signals2/trackable.hpp +index dba001d..64e8489 100644 +--- a/boost/signals2/trackable.hpp ++++ b/boost/signals2/trackable.hpp +@@ -18,6 +18,7 @@ + + #include + #include ++#include + + namespace boost { + namespace signals2 { +-- +2.1.0 + diff --git a/mingw-w64-boost/boost-1.57.0-spirit-unused_typedef.patch b/mingw-w64-boost/boost-1.57.0-spirit-unused_typedef.patch new file mode 100644 index 0000000000..282962987c --- /dev/null +++ b/mingw-w64-boost/boost-1.57.0-spirit-unused_typedef.patch @@ -0,0 +1,19 @@ +diff -up boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp\~ boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp +--- boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp~ 2014-10-13 12:21:40.000000000 +0200 ++++ boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp 2015-01-20 13:25:50.069710766 +0100 +@@ -282,12 +282,12 @@ struct grammar_definition + #if !defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE) + typedef impl::grammar_helper_base helper_base_t; + typedef grammar_helper_list helper_list_t; +- typedef typename helper_list_t::vector_t::reverse_iterator iterator_t; + + helper_list_t& helpers = + grammartract_helper_list::do_(self); + + # if defined(BOOST_INTEL_CXX_VERSION) ++ typedef typename helper_list_t::vector_t::reverse_iterator iterator_t; + for (iterator_t i = helpers.rbegin(); i != helpers.rend(); ++i) + (*i)->undefine(self); + # else + +Diff finished. Tue Jan 20 13:25:53 2015 diff --git a/mingw-w64-boost/boost-1.57.0-uuid-comparison.patch b/mingw-w64-boost/boost-1.57.0-uuid-comparison.patch new file mode 100644 index 0000000000..739d795b36 --- /dev/null +++ b/mingw-w64-boost/boost-1.57.0-uuid-comparison.patch @@ -0,0 +1,22 @@ +From fc32eea4ac9e514a7d210306cd9fa3a017dfe02c Mon Sep 17 00:00:00 2001 +From: VemundH +Date: Tue, 30 Sep 2014 21:53:45 +0200 +Subject: [PATCH] remove incorrect casts + +--- + boost/uuid/detail/uuid_x86.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/boost/uuid/detail/uuid_x86.hpp b/boost/uuid/detail/uuid_x86.hpp +index 1a329b0..5a2cdec 100644 +--- a/boost/uuid/detail/uuid_x86.hpp ++++ b/boost/uuid/detail/uuid_x86.hpp +@@ -100,7 +100,7 @@ inline bool operator< (uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT + cmp = (cmp - 1u) ^ cmp; + rcmp = (rcmp - 1u) ^ rcmp; + +- return static_cast< uint16_t >(cmp) < static_cast< uint16_t >(rcmp); ++ return cmp < rcmp; + } + + } // namespace uuids diff --git a/mingw-w64-boost/boost-include-intrin-h-on-mingw-w64.patch b/mingw-w64-boost/boost-include-intrin-h-on-mingw-w64.patch new file mode 100644 index 0000000000..acc3bd49d1 --- /dev/null +++ b/mingw-w64-boost/boost-include-intrin-h-on-mingw-w64.patch @@ -0,0 +1,14 @@ +--- a/boost/detail/interlocked.hpp.interlocked 2012-12-11 15:42:26.000000000 +0100 ++++ b/boost/detail/interlocked.hpp 2013-07-21 15:22:56.082346444 +0200 +@@ -92,9 +92,9 @@ + # define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ + ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange))) + +-#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN ) ++#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN ) || defined( __MINGW64_VERSION_MAJOR ) + +-#if defined( BOOST_MSVC ) && BOOST_MSVC >= 1400 ++#if ( defined( BOOST_MSVC ) && BOOST_MSVC >= 1400 ) || defined( __MINGW64_VERSION_MAJOR ) + + #include + diff --git a/mingw-w64-boost/msys2-mingw-folders-bootstrap.patch b/mingw-w64-boost/msys2-mingw-folders-bootstrap.patch new file mode 100644 index 0000000000..e94744573b --- /dev/null +++ b/mingw-w64-boost/msys2-mingw-folders-bootstrap.patch @@ -0,0 +1,29 @@ +--- a/tools/build/src/engine/build.sh 2015-07-07 09:46:25.813659600 +0300 ++++ b/tools/build/src/engine/build.sh 2015-07-07 09:47:50.111229000 +0300 +@@ -58,13 +58,26 @@ + test `uname` = $* + fi + } ++ ++test_msystem () ++{ ++ if [ -n $MSYSTEM ]; then ++ test "$MSYSTEM" = "$*" ++ fi ++} + + # Try and guess the toolset to bootstrap the build with... + Guess_Toolset () + { + if test -r /mingw/bin/gcc ; then + BOOST_JAM_TOOLSET=mingw + BOOST_JAM_TOOLSET_ROOT=/mingw/ ++ elif test_msystem MINGW32 ; then ++ BOOST_JAM_TOOLSET=mingw ++ BOOST_JAM_TOOLSET_ROOT=/mingw32/ ++ elif test_msystem MINGW64 ; then ++ BOOST_JAM_TOOLSET=mingw ++ BOOST_JAM_TOOLSET_ROOT=/mingw64/ + elif test_uname Darwin ; then BOOST_JAM_TOOLSET=darwin + elif test_uname IRIX ; then BOOST_JAM_TOOLSET=mipspro + elif test_uname IRIX64 ; then BOOST_JAM_TOOLSET=mipspro diff --git a/mingw-w64-celt/PKGBUILD b/mingw-w64-celt/PKGBUILD index 49a69bf1d1..d8f7af6891 100644 --- a/mingw-w64-celt/PKGBUILD +++ b/mingw-w64-celt/PKGBUILD @@ -3,7 +3,7 @@ _realname=celt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.11.3 -pkgrel=2 +pkgrel=3 pkgdesc="Low-latency audio communication codec (mingw-w64)" arch=('any') url="http://www.celt-codec.org/" @@ -11,21 +11,23 @@ license=("BSD") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-libogg") options=('strip' 'staticlibs') -source=(http://downloads.us.xiph.org/releases/${_realname}/${_realname}-$pkgver.tar.gz) +source=(http://downloads.us.xiph.org/releases/${_realname}/${_realname}-${pkgver}.tar.gz) md5sums=('5511732a426cc42bf986ca79b5cdd02f') build() { export lt_cv_deplibs_check_method='pass_all' + [[ -d"${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ../${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-custom-modes \ - --disable-static + --enable-shared \ + --enable-static make } diff --git a/mingw-w64-enca/PKGBUILD b/mingw-w64-enca/PKGBUILD index d52ccfc301..26335195a3 100644 --- a/mingw-w64-enca/PKGBUILD +++ b/mingw-w64-enca/PKGBUILD @@ -3,7 +3,7 @@ _realname=enca pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.16 -pkgrel=1 +pkgrel=2 pkgdesc="Charset analyser and converter (mingw-w64)" arch=('any') url="http://cihar.com/software/enca/" @@ -27,9 +27,10 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/enca-${pkgver}/configure \ + ../enca-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -37,6 +38,7 @@ build() { --mandir=${MINGW_PREFIX}/share/man \ --with-librecode=${MINGW_PREFIX} \ --enable-external + make } diff --git a/mingw-w64-flac/PKGBUILD b/mingw-w64-flac/PKGBUILD index 84744ac32b..55786b23b2 100644 --- a/mingw-w64-flac/PKGBUILD +++ b/mingw-w64-flac/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=flac - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.1 -pkgrel=1 +pkgrel=2 pkgdesc="Free Lossless Audio Codec (mingw-w64)" arch=('any') url="http://flac.sourceforge.net/" @@ -16,14 +15,20 @@ options=('strip' 'staticlibs') source=("http://downloads.xiph.org/releases/flac/flac-${pkgver}.tar.xz") md5sums=('b9922c9a0378c88d3e901b234f852698') -build() { - cd "$srcdir/${_realname}-${pkgver}" +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" #Required as AM_CONFIG_HEADER is deprecated and causes autotools to error out. #sed -i "s/\/AC_CONFIG_HEADERS/g" configure.in touch config.rpath #./autogen.sh - ./configure \ +} + +build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --enable-shared \ --enable-static\ --disable-xmms-plugin \ @@ -37,6 +42,6 @@ build() { } package() { - cd "$srcdir/${_realname}-${pkgver}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-fluidsynth/PKGBUILD b/mingw-w64-fluidsynth/PKGBUILD index 1f37a1201c..955f913bcd 100644 --- a/mingw-w64-fluidsynth/PKGBUILD +++ b/mingw-w64-fluidsynth/PKGBUILD @@ -1,25 +1,22 @@ # Maintainer: Alexey Pavlov _realname=fluidsynth - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.6 -pkgrel=2 +pkgrel=3 pkgdesc="A real-time software synthesizer based on the SoundFont 2 specifications (mingw-w64)" arch=('any') url="http://www.fluidsynth.org/" license=('LGPL') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-libsndfile" - "${MINGW_PACKAGE_PREFIX}-portaudio" - ) + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-libsndfile" + "${MINGW_PACKAGE_PREFIX}-portaudio") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-nasm" - "${MINGW_PACKAGE_PREFIX}-libtool" - patch automake-wrapper autoconf) + "${MINGW_PACKAGE_PREFIX}-nasm" + "${MINGW_PACKAGE_PREFIX}-libtool") options=('strip' 'staticlibs') -source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.gz" +source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" 0001-10-ftbfs-bug-690006.all.patch 0002-1001-revert_abi_break_114.all.patch 0003-include-blddir.all.patch @@ -31,7 +28,7 @@ md5sums=('ae5aca6de824b4173667cbd3a310b263' '18f50014be62facdd4b10f305b886e88') prepare() { - cd "$srcdir/${_realname}-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-10-ftbfs-bug-690006.all.patch patch -p1 -i ${srcdir}/0002-1001-revert_abi_break_114.all.patch patch -p1 -i ${srcdir}/0003-include-blddir.all.patch @@ -41,10 +38,11 @@ prepare() { } build() { - cd "$srcdir/${_realname}-${pkgver}" - export lt_cv_deplibs_check_method='pass_all' - ./configure \ + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -53,10 +51,11 @@ build() { --enable-shared \ --enable-static \ STRIP=true CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" PTHREAD_LIBS=-lpthread + make } package() { - cd "$srcdir/${_realname}-${pkgver}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-fribidi/PKGBUILD b/mingw-w64-fribidi/PKGBUILD index 078555487d..d6b8dfbbde 100644 --- a/mingw-w64-fribidi/PKGBUILD +++ b/mingw-w64-fribidi/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=fribidi - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.19.6 -pkgrel=3 +pkgrel=4 pkgdesc="A Free Implementation of the Unicode Bidirectional Algorithm (mingw-w64)" arch=('any') license=('LGPL') @@ -26,16 +25,15 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-static \ --with-glib - #touch ${srcdir}/${_realname}-${pkgver}/doc/c2man.stamp - #touch ${srcdir}/${_realname}-${pkgver}/doc/*.3 make } diff --git a/mingw-w64-glew/PKGBUILD b/mingw-w64-glew/PKGBUILD index f4bd214f75..cb59a8e628 100644 --- a/mingw-w64-glew/PKGBUILD +++ b/mingw-w64-glew/PKGBUILD @@ -3,10 +3,10 @@ _realname=glew pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.12.0 -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="GLEW, The OpenGL Extension Wrangler Library (mingw-w64)" -depends=('') +depends=() makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "xz") license=('Modified BSD/MIT/GPL') url="http://glew.sourceforge.net/" diff --git a/mingw-w64-gsm/PKGBUILD b/mingw-w64-gsm/PKGBUILD index c0bb2c4161..2c4a3ddcb2 100644 --- a/mingw-w64-gsm/PKGBUILD +++ b/mingw-w64-gsm/PKGBUILD @@ -1,20 +1,19 @@ # Maintainer: Alexey Pavlov _realname=gsm - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.13 -pkgrel=2 +pkgrel=3 pkgdesc="Shared libraries for GSM 06.10 lossy speech compression (mingw-w64)" arch=('any') url="http://www.quut.com/gsm/" license=("custom") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "yasm") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-yasm") options=('strip' 'staticlibs') source=("http://www.quut.com/${_realname}/${_realname}-${pkgver}.tar.gz" - 0001-adapt-makefile-to.mingw.patch - 0002-adapt-config-h-to.mingw.patch - 0003-fix-ln.mingw.patch) + 0001-adapt-makefile-to.mingw.patch + 0002-adapt-config-h-to.mingw.patch + 0003-fix-ln.mingw.patch) md5sums=('c1ba392ce61dc4aff1c29ea4e92f6df4' '7956623dd6ecf75fedbc37acb65ce451' '50841d8e3e1d3c345c719748dc8d8786' @@ -39,8 +38,7 @@ package() { # Prepare directories install -m755 -d "${pkgdir}${MINGW_PREFIX}"/{bin,lib,include,share/{licenses/${_realname},man/man{1,3}}} - make -j1 INSTALL_ROOT="${pkgdir}${MINGW_PREFIX}" \ - install + make -j1 INSTALL_ROOT="${pkgdir}${MINGW_PREFIX}" install # Install license install -m644 COPYRIGHT ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/license.txt diff --git a/mingw-w64-l-smash/PKGBUILD b/mingw-w64-l-smash/PKGBUILD index d633476318..42e1c9ba2c 100644 --- a/mingw-w64-l-smash/PKGBUILD +++ b/mingw-w64-l-smash/PKGBUILD @@ -4,7 +4,7 @@ _realname=l-smash pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgdesc="Loyal to Spec of Mpeg4 and Ad-hoc Simple Hackwork. Yet another opensource mp4 handler (mingw-w64)" pkgver=2.3.0 -pkgrel=1 +pkgrel=2 arch=('any') url="http://l-smash.github.io/l-smash/" license=('ISC') @@ -24,6 +24,7 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} diff --git a/mingw-w64-lame/PKGBUILD b/mingw-w64-lame/PKGBUILD index 90ed85bb95..1fc8f1c063 100644 --- a/mingw-w64-lame/PKGBUILD +++ b/mingw-w64-lame/PKGBUILD @@ -3,16 +3,16 @@ _realname=lame pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.99.5 -pkgrel=3 +pkgrel=4 pkgdesc="A high quality MPEG Audio Layer III (MP3) encoder (mingw-w64)" arch=('any') url="http://lame.sourceforge.net/" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-mpg123" - "${MINGW_PACKAGE_PREFIX}-nasm") + "${MINGW_PACKAGE_PREFIX}-nasm" + "${MINGW_PACKAGE_PREFIX}-ncurses" + "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-libiconv") options=('strip' 'staticlibs') source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" @@ -40,6 +40,7 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ diff --git a/mingw-w64-libass/PKGBUILD b/mingw-w64-libass/PKGBUILD index 39ee32f510..7f52183639 100644 --- a/mingw-w64-libass/PKGBUILD +++ b/mingw-w64-libass/PKGBUILD @@ -2,7 +2,7 @@ _realname=libass pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.12.2 +pkgver=0.12.3 pkgrel=1 pkgdesc="A portable library for SSA/ASS subtitles rendering (mingw-w64)" arch=('any') @@ -11,14 +11,14 @@ license=('ISC') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-yasm" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-fribidi" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-harfbuzz" - "${MINGW_PACKAGE_PREFIX}-enca") +depends=("${MINGW_PACKAGE_PREFIX}-enca" + "${MINGW_PACKAGE_PREFIX}-fribidi" + "${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-harfbuzz") options=('strip' 'staticlibs') source=("${_realname}-${pkgver}.tar.gz"::https://github.com/libass/${_realname}/archive/${pkgver}.tar.gz) -md5sums=('62d0868532eab9fcb5933ff4cc161b12') +md5sums=('1b53e739ab389335ce46fd626777ec61') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -26,6 +26,7 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ diff --git a/mingw-w64-libogg/PKGBUILD b/mingw-w64-libogg/PKGBUILD index 25647307c1..8e8964566b 100644 --- a/mingw-w64-libogg/PKGBUILD +++ b/mingw-w64-libogg/PKGBUILD @@ -3,7 +3,7 @@ _realname=libogg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.2 -pkgrel=1 +pkgrel=2 pkgdesc="Ogg bitstream and framing library (mingw-w64)" arch=('any') url="http://xiph.org" @@ -18,9 +18,10 @@ prepare() { } build() { + [[ -d"${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/libogg-${pkgver}/configure \ + ../libogg-${pkgver}/configure \ --enable-shared \ --enable-static \ --prefix=${MINGW_PREFIX} \ @@ -32,5 +33,5 @@ build() { package() { cd ${srcdir}/build-${MINGW_CHOST} - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libsndfile/PKGBUILD b/mingw-w64-libsndfile/PKGBUILD index d266a3016c..5240b3d434 100644 --- a/mingw-w64-libsndfile/PKGBUILD +++ b/mingw-w64-libsndfile/PKGBUILD @@ -1,22 +1,21 @@ # Maintainer: Alexey Pavlov _realname=libsndfile - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.0.25 -pkgrel=2 +pkgrel=3 pkgdesc="A C library for reading and writing files containing sampled sound (mingw-w64)" arch=('any') url="http://www.mega-nerd.com/libsndfile" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -depends=("${MINGW_PACKAGE_PREFIX}-flac" "${MINGW_PACKAGE_PREFIX}-libvorbis") +depends=("${MINGW_PACKAGE_PREFIX}-flac" "${MINGW_PACKAGE_PREFIX}-libvorbis" "${MINGW_PACKAGE_PREFIX}-speex") options=('staticlibs' 'strip') source=(http://www.mega-nerd.com/libsndfile/files/${_realname}-${pkgver}.tar.gz - 0001-more-elegant-and-foolproof-autogen-fallback.all.patch - 0002-conditional-truncate.mingw.patch - 0003-fix-source-searches.mingw.patch - 0004-fix-linking-external-libs.patch) + 0001-more-elegant-and-foolproof-autogen-fallback.all.patch + 0002-conditional-truncate.mingw.patch + 0003-fix-source-searches.mingw.patch + 0004-fix-linking-external-libs.patch) md5sums=('e2b7bb637e01022c7d20f95f9c3990a2' '9b4254acf1cfc17a1e94af29f7260d30' 'c9ac8330da543496b0b5cb6ae081a7b6' @@ -36,18 +35,20 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} ../${_realname}-${pkgver}/configure \ - --enable-shared \ - --enable-static \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --disable-sqlite \ --disable-test-coverage \ - --enable-external-libs - #--enable-experimental # speex support + --enable-external-libs \ + --enable-experimental \ + --enable-shared \ + --enable-static + make } diff --git a/mingw-w64-libvorbis/PKGBUILD b/mingw-w64-libvorbis/PKGBUILD index 1f8a97fb61..2cfe66172e 100644 --- a/mingw-w64-libvorbis/PKGBUILD +++ b/mingw-w64-libvorbis/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libvorbis - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.4 -pkgrel=1 +pkgrel=2 pkgdesc="Vorbis codec library (mingw-w64)" arch=('any') url="http://xiph.org" @@ -16,20 +15,21 @@ source=(http://downloads.xiph.org/releases/vorbis/${_realname}-${pkgver}.tar.gz) md5sums=('8851c593a52d1ef9c526d95174873852') build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ - --enable-shared \ - --enable-static \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + make } package() { cd ${srcdir}/build-${MINGW_CHOST} - make DESTDIR="$pkgdir" install - rm -r ${pkgdir}${MINGW_PREFIX}/share/doc + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-mpg123/PKGBUILD b/mingw-w64-mpg123/PKGBUILD index 8b4e85f89f..81537e9515 100644 --- a/mingw-w64-mpg123/PKGBUILD +++ b/mingw-w64-mpg123/PKGBUILD @@ -3,19 +3,19 @@ _realname=mpg123 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.22.2 -pkgrel=1 +pkgrel=2 pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3 (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/mpg123" license=("LGPL2.1") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-portaudio" - "${MINGW_PACKAGE_PREFIX}-openal" - "${MINGW_PACKAGE_PREFIX}-SDL") + "${MINGW_PACKAGE_PREFIX}-openal" + "${MINGW_PACKAGE_PREFIX}-portaudio" + "${MINGW_PACKAGE_PREFIX}-SDL") depends=("${MINGW_PACKAGE_PREFIX}-libtool" "${MINGW_PACKAGE_PREFIX}-gcc-libs") -optdepends=("${MINGW_PACKAGE_PREFIX}-portaudio" - "${MINGW_PACKAGE_PREFIX}-openal" +optdepends=("${MINGW_PACKAGE_PREFIX}-openal" + "${MINGW_PACKAGE_PREFIX}-portaudio" "${MINGW_PACKAGE_PREFIX}-SDL") options=('strip' 'staticlibs' 'libtool') source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2"{,.sig} @@ -27,7 +27,7 @@ md5sums=('6f6d2178c354f39207bf97e062936110' '9ac9a255f3ab3043915ceec455ccdbec') prepare() { - cd "$srcdir/${_realname}-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i "$srcdir"/0001-update-ac-and-silent-rules.mingw.patch patch -p1 -i "$srcdir"/0002-openal-library.patch @@ -35,11 +35,11 @@ prepare() { } build() { + export lt_cv_deplibs_check_method='pass_all' [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - export lt_cv_deplibs_check_method='pass_all' - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -52,7 +52,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-openal/PKGBUILD b/mingw-w64-openal/PKGBUILD index 2e7f0ff8ca..0f1a70d15e 100644 --- a/mingw-w64-openal/PKGBUILD +++ b/mingw-w64-openal/PKGBUILD @@ -3,28 +3,27 @@ _realname=openal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.16.0 -pkgrel=2 +pkgrel=3 pkgdesc="OpenAL audio library for use with opengl (mingw-w64)" arch=('any') url="http://kcat.strangesoft.net/openal.html" license=('GPL2') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-ffmpeg" - #"${MINGW_PACKAGE_PREFIX}-fluidsynth" - "${MINGW_PACKAGE_PREFIX}-portaudio") + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-fluidsynth" + "${MINGW_PACKAGE_PREFIX}-portaudio") options=('strip' 'staticlibs') -source=(http://kcat.strangesoft.net/openal-releases/openal-soft-$pkgver.tar.bz2) +source=(http://kcat.strangesoft.net/openal-releases/openal-soft-${pkgver}.tar.bz2) md5sums=('14db4b0d12f07252070b4fe5eb5911f6') build() { export DXSDK_DIR=${MINGW_PREFIX}/${MINGW_CHOST} - mkdir -p "${srcdir}/build-shared-${MINGW_CHOST}" && cd "${srcdir}/build-shared-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DALSOFT_EXAMPLES=OFF \ -DLIBTYPE=SHARED \ -DDSOUND_INCLUDE_DIR=${MINGW_PREFIX}/${MINGW_CHOST}/include \ @@ -33,9 +32,10 @@ build() { make mkdir -p "${srcdir}/build-static-${MINGW_CHOST}" && cd "${srcdir}/build-static-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DALSOFT_EXAMPLES=OFF \ -DLIBTYPE=STATIC \ -DDSOUND_INCLUDE_DIR=${MINGW_PREFIX}/${MINGW_CHOST}/include \ @@ -46,14 +46,8 @@ build() { package() { cd "${srcdir}/build-static-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install cd "${srcdir}/build-shared-${MINGW_CHOST}" - make install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/openal.pc + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-openblas/PKGBUILD b/mingw-w64-openblas/PKGBUILD index 2dcfb4797d..ae6665f61a 100644 --- a/mingw-w64-openblas/PKGBUILD +++ b/mingw-w64-openblas/PKGBUILD @@ -4,7 +4,7 @@ _realname=OpenBLAS pkgname="${MINGW_PACKAGE_PREFIX}-openblas" pkgver=0.2.14 -pkgrel=1 +pkgrel=2 pkgdesc="An optimized BLAS library based on GotoBLAS2 1.13 BSD, providing optimized blas, lapack, and cblas (mingw-w64)" arch=('any') url="http://xianyi.github.com/OpenBLAS/" @@ -58,14 +58,14 @@ package() { install if [ -f libopenblas.dll ]; then - cp -f libopenblas.dll "${pkgdir}$MINGW_PREFIX/bin/" + cp -f libopenblas.dll "${pkgdir}${MINGW_PREFIX}/bin/" else echo "DLL not found" >&2 exit 1 fi if [ -f libopenblas.dll.a ]; then - cp -f libopenblas.dll.a "${pkgdir}$MINGW_PREFIX/lib/" + cp -f libopenblas.dll.a "${pkgdir}${MINGW_PREFIX}/lib/" else echo "Export library not found" >&2 exit 1 @@ -74,16 +74,16 @@ package() { if [ -f libopenblasp.a ]; then rm -f "${pkgdir}$MINGW_PREFIX/lib/libopenblasp.a" rm -f "${pkgdir}$MINGW_PREFIX/lib/libopenblas.a" - cp -f libopenblasp.a "${pkgdir}$MINGW_PREFIX/lib/libopenblas.a" + cp -f libopenblasp.a "${pkgdir}${MINGW_PREFIX}/lib/libopenblas.a" else echo "Static library not found" >&2 exit 1 fi # Copy Licencse - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} cp -f ${srcdir}/${_realname}-${pkgver}/LICENSE \ - ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} cp -f ${srcdir}/${_realname}-${pkgver}/lapack-netlib/LICENSE \ - ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/LICENSE-lapack + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE-lapack } diff --git a/mingw-w64-portaudio/PKGBUILD b/mingw-w64-portaudio/PKGBUILD index 7775d11ff5..7e2b9cc5ee 100644 --- a/mingw-w64-portaudio/PKGBUILD +++ b/mingw-w64-portaudio/PKGBUILD @@ -1,20 +1,19 @@ # Maintainer: Alexey Pavlov _realname=portaudio - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=19_20140130 -pkgrel=1 -pkgdesc="A free, cross-platform, open source, audio I/O library. (mingw-w64)" +pkgrel=2 +pkgdesc="A free, cross-platform, open source, audio I/O library (mingw-w64)" arch=('any') url="http://www.portaudio.com" license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=(!libtool strip !makeflags staticlibs) -source=("http://www.portaudio.com/archives/pa_stable_v$pkgver.tgz" - mingw-w64-fix.patch - mingw-w64-cmake-allow-cxx.patch) +source=("http://www.portaudio.com/archives/pa_stable_v${pkgver}.tgz" + mingw-w64-fix.patch + mingw-w64-cmake-allow-cxx.patch) md5sums=('7f220406902af9dca009668e198cbd23' '99da198098bd39e24333d6e4ab1bef4a' '9ae34b0d0dee106c6a90dfc744bf096c') @@ -29,9 +28,10 @@ prepare() { build() { export lt_cv_deplibs_check_method='pass_all' + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/${_realname}/configure \ + ../${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -41,10 +41,11 @@ build() { --with-dxdir=${MINGW_PREFIX}/${MINGW_CHOST} \ --with-winapi=wmme,directx,wdmks #wasapi, + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-python-numpy/1.0.4-fenv.patch b/mingw-w64-python-numpy/1.0.4-fenv.patch new file mode 100644 index 0000000000..d72bce7b5e --- /dev/null +++ b/mingw-w64-python-numpy/1.0.4-fenv.patch @@ -0,0 +1,18 @@ +--- numpy-1.0.4/numpy/core/include/numpy/fenv/fenv.c.orig 2007-11-07 16:05:15.000000000 -0600 ++++ numpy-1.0.4/numpy/core/include/numpy/fenv/fenv.c 2007-11-29 22:29:31.513750000 -0600 +@@ -26,6 +26,9 @@ + * $FreeBSD$ + */ + ++#ifndef NUMPY_FENV_C ++#define NUMPY_FENV_C ++ + #include + #include "fenv.h" + +@@ -36,3 +39,5 @@ + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff } + }; ++ ++#endif /* NUMPY_FENV_C */ diff --git a/mingw-w64-python-numpy/PKGBUILD b/mingw-w64-python-numpy/PKGBUILD index 3023bc693f..95dba46042 100644 --- a/mingw-w64-python-numpy/PKGBUILD +++ b/mingw-w64-python-numpy/PKGBUILD @@ -4,7 +4,7 @@ _realname=numpy pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=1.9.2 -pkgrel=1 +pkgrel=3 pkgdesc="Scientific tools for Python (mingw-w64)" arch=('any') license=('BSD') @@ -19,27 +19,30 @@ options=('staticlibs' 'strip' '!debug') source=(http://downloads.sourceforge.net/numpy/${_realname}-${pkgver}.tar.gz fix-finding-python2.patch gfortran-better-version-check.patch - fix-testsuite.patch) + fix-testsuite.patch + 1.0.4-fenv.patch) md5sums=('a1ed53432dbcd256398898d35bc8e645' '6f03968645956c24216763b6ccce609d' '58aff1fb52401458bfd6a03c9b3b5e32' - '84e65671dc50c0a0e5fa40a1dd25359d') + '59c4e9b71cc7b297099b4430bcb7ea28' + 'c0a280441fff1a8c15a11d7e567f2544') prepare() { - cd ${_realname}-$pkgver + cd ${_realname}-${pkgver} patch -Np1 -i ${srcdir}/fix-finding-python2.patch patch -Np1 -i ${srcdir}/gfortran-better-version-check.patch patch -Np1 -i ${srcdir}/fix-testsuite.patch + patch -Np1 -i ${srcdir}/1.0.4-fenv.patch cd .. - cp -a numpy-$pkgver numpy-py2-$pkgver-${CARCH} - cp -a numpy-$pkgver numpy-py3-$pkgver-${CARCH} + cp -a numpy-${pkgver} numpy-py2-${pkgver}-${CARCH} + cp -a numpy-${pkgver} numpy-py3-${pkgver}-${CARCH} - cd numpy-py2-$pkgver-${CARCH} + cd numpy-py2-${pkgver}-${CARCH} sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ -e "s|#![ ]*/bin/env python$|#!/usr/bin/env python2|" \ - -i $(find . -name '*.py') + -i $(find . -name '*.py') } build() { @@ -47,12 +50,12 @@ build() { export LDFLAGS="$LDFLAGS -shared" echo "Building Python2" - cd numpy-py2-$pkgver-${CARCH} + cd numpy-py2-${pkgver}-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py config_fc --fcompiler=gnu95 build echo "Building Python3" - cd ../numpy-py3-$pkgver-${CARCH} + cd ../numpy-py3-${pkgver}-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py config_fc --fcompiler=gnu95 build } @@ -66,7 +69,7 @@ package_python2-numpy() { export ATLAS=None export LDFLAGS="$LDFLAGS -shared" - cd numpy-py2-$pkgver-${CARCH} + cd numpy-py2-${pkgver}-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py config_fc --fcompiler=gnu95 install --prefix=${MINGW_PREFIX} --root="${pkgdir}" --optimize=1 @@ -77,9 +80,7 @@ package_python2-numpy() { cp -rf ${pkgdir}${MINGW_PREFIX}/lib/python${_pyver}/site-packages/numpy/core/include/numpy "${pkgdir}${MINGW_PREFIX}/include/python${_pyver}/" # fix python command in files - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${_f} done @@ -95,20 +96,18 @@ package_python3-numpy() { export ATLAS=None export LDFLAGS="$LDFLAGS -shared" - cd numpy-py3-$pkgver-${CARCH} + cd numpy-py3-${pkgver}-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py config_fc --fcompiler=gnu95 install --prefix=${MINGW_PREFIX} --root="${pkgdir}" --optimize=1 - install -m755 -d "${pkgdir}${MINGW_PREFIX}/share/licenses/python-numpy" - install -m644 LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python-numpy/" + install -m755 -d "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-numpy" + install -m644 LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-numpy/" install -m755 -d "${pkgdir}${MINGW_PREFIX}/include/python${_pyinc}" cp -rf ${pkgdir}${MINGW_PREFIX}/lib/python${_pyver}/site-packages/numpy/core/include/numpy "${pkgdir}${MINGW_PREFIX}/include/python${_pyinc}/" # fix python command in files - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${_f} done diff --git a/mingw-w64-python-numpy/fix-testsuite.patch b/mingw-w64-python-numpy/fix-testsuite.patch index ff799c1d34..2b19f8703b 100644 --- a/mingw-w64-python-numpy/fix-testsuite.patch +++ b/mingw-w64-python-numpy/fix-testsuite.patch @@ -1,5 +1,5 @@ ---- numpy-1.9.0/numpy/core/tests/test_multiarray.py 2014-09-07 10:57:48.000000000 +0200 -+++ /mingw64/lib/python3.4/site-packages/numpy/core/tests/test_multiarray.py 2014-09-22 20:42:55.177362800 +0200 +--- numpy-1.9.0/numpy/core/tests/test_multiarray.py.orig 2014-09-07 10:57:48.000000000 +0200 ++++ numpy-1.9.0/numpy/core/tests/test_multiarray.py 2014-09-22 20:42:55.177362800 +0200 @@ -2691,7 +2691,7 @@ """Test workarounds for 32-bit limited fwrite, fseek, and ftell calls in windows. These normally would hang doing something like this. diff --git a/mingw-w64-python-scipy/PKGBUILD b/mingw-w64-python-scipy/PKGBUILD index a14e17ebd5..6901b65645 100644 --- a/mingw-w64-python-scipy/PKGBUILD +++ b/mingw-w64-python-scipy/PKGBUILD @@ -1,21 +1,19 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=scipy -pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.15.1 -pkgrel=1 +pkgrel=2 pkgdesc="SciPy is open-source software for mathematics, science, and engineering. (mingw-w64)" arch=('any') url="http://www.scipy.org/" license=('BSD') -makedepends=( - "${MINGW_PACKAGE_PREFIX}-gcc-fortran" - "${MINGW_PACKAGE_PREFIX}-openblas" - "${MINGW_PACKAGE_PREFIX}-python2-numpy" - "${MINGW_PACKAGE_PREFIX}-python3-numpy" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" - "${MINGW_PACKAGE_PREFIX}-python3-setuptools" -) +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran" + "${MINGW_PACKAGE_PREFIX}-openblas" + "${MINGW_PACKAGE_PREFIX}-python2-numpy" + "${MINGW_PACKAGE_PREFIX}-python3-numpy" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=("https://pypi.python.org/packages/source/s/scipy/scipy-${pkgver}.tar.gz"{,.asc} fix-qhull.patch) md5sums=('be56cd8e60591d6332aac792a5880110' @@ -39,7 +37,7 @@ prepare() { } build() { - export LDFLAGS="-Wall -shared" + LDFLAGS="${LDFLAGS} -Wall -shared" # build for python2 cd ${srcdir}/${_realname}-py2-${pkgver} @@ -59,36 +57,32 @@ build() { } package_python2-scipy() { - depends=( - "${MINGW_PACKAGE_PREFIX}-openblas" - "${MINGW_PACKAGE_PREFIX}-python2-numpy" - ) + depends=("${MINGW_PACKAGE_PREFIX}-openblas" + "${MINGW_PACKAGE_PREFIX}-python2-numpy") optdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose: testsuite") cd ${_realname}-py2-${pkgver} - export LDFLAGS="-Wall -shared" + LDFLAGS="${LDFLAGS} -Wall -shared" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py config_fc --fcompiler=gnu95 install \ - --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 + --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 install -Dm644 LICENSE.txt \ "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" } package_python3-scipy() { - depends=( - "${MINGW_PACKAGE_PREFIX}-openblas" - "${MINGW_PACKAGE_PREFIX}-python3-numpy" - ) + depends=("${MINGW_PACKAGE_PREFIX}-openblas" + "${MINGW_PACKAGE_PREFIX}-python3-numpy") optdepends=("${MINGW_PACKAGE_PREFIX}-python3-nose: testsuite") cd ${_realname}-py3-${pkgver} - export LDFLAGS="-Wall -shared" + LDFLAGS="${LDFLAGS} -Wall -shared" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py config_fc --fcompiler=gnu95 install \ - --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 + --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 install -Dm644 LICENSE.txt \ "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" diff --git a/mingw-w64-recode/PKGBUILD b/mingw-w64-recode/PKGBUILD index 323a2f46fa..e8b8b33efc 100644 --- a/mingw-w64-recode/PKGBUILD +++ b/mingw-w64-recode/PKGBUILD @@ -3,7 +3,7 @@ _realname=recode pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=3.6 -pkgrel=4 +pkgrel=5 pkgdesc="Converts files between various character sets and usages (mingw-w64)" arch=('any') url="http://recode.progiciels-bpi.ca/index.html" @@ -76,17 +76,20 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + export ac_cv_func_malloc_0_nonnull=yes export jm_cv_func_working_malloc=yes export jm_cv_func_working_realloc=yes - ${srcdir}/pinard-Recode-2127b34/configure \ + ../pinard-Recode-2127b34/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --mandir=${MINGW_PREFIX}/share/man \ --infodir=${MINGW_PREFIX}/share/info \ --without-included-gettext + make } diff --git a/mingw-w64-rust/PKGBUILD b/mingw-w64-rust/PKGBUILD index 0861534e83..c5994695ba 100644 --- a/mingw-w64-rust/PKGBUILD +++ b/mingw-w64-rust/PKGBUILD @@ -3,7 +3,7 @@ _realname=rust pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.0 -pkgrel=2 +pkgrel=3 pkgdesc="A safe, concurrent, practical language from Mozilla (mingw-w64)" arch=('any') url="http://www.rust-lang.org/" diff --git a/mingw-w64-speex/PKGBUILD b/mingw-w64-speex/PKGBUILD index 156247bfaf..095fea15ea 100644 --- a/mingw-w64-speex/PKGBUILD +++ b/mingw-w64-speex/PKGBUILD @@ -3,7 +3,7 @@ _realname=speex pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2rc2 -pkgrel=1 +pkgrel=2 pkgdesc="A free codec for free speech (mingw-w64)" arch=('any') license=('BSD') @@ -12,7 +12,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-libogg" "${MINGW_PACKAGE_PREFIX}-speexdsp") options=('strip' '!libtool' 'staticlibs') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -source=(http://downloads.us.xiph.org/releases/${_realname}/${_realname}-$pkgver.tar.gz +source=(http://downloads.us.xiph.org/releases/${_realname}/${_realname}-${pkgver}.tar.gz 01-mingw-winmm.patch) md5sums=('6ae7db3bab01e1d4b86bacfa8ca33e81' '8edb0120f01d93e8202a97ebb1f5fc24') @@ -25,8 +25,9 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-speexdsp/PKGBUILD b/mingw-w64-speexdsp/PKGBUILD index 1d2e3d6855..e07453e9c6 100644 --- a/mingw-w64-speexdsp/PKGBUILD +++ b/mingw-w64-speexdsp/PKGBUILD @@ -3,7 +3,7 @@ _realname=speexdsp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2rc3 -pkgrel=1 +pkgrel=2 pkgdesc="DSP library derived from Speex (mingw-w64)" arch=('any') license=('BSD') @@ -11,7 +11,7 @@ url="http://www.speex.org/" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' '!libtool' 'staticlibs') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -source=(http://downloads.us.xiph.org/releases/speex/${_realname}-$pkgver.tar.gz) +source=(http://downloads.us.xiph.org/releases/speex/${_realname}-${pkgver}.tar.gz) md5sums=('70d9d31184f7eb761192fd1ef0b73333') prepare() { @@ -20,8 +20,9 @@ prepare() { build() { #export lt_cv_deplibs_check_method='pass_all' + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-x264/PKGBUILD b/mingw-w64-x264/PKGBUILD index 4283f60530..1e05bc17b4 100644 --- a/mingw-w64-x264/PKGBUILD +++ b/mingw-w64-x264/PKGBUILD @@ -2,7 +2,7 @@ _realname=x264 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=r2491.24e4fed +pkgver=r2538.121396c pkgrel=1 pkgdesc="Library for encoding H264/AVC video streams (mingw-w64)" arch=('any') @@ -31,6 +31,7 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}/configure \ @@ -44,5 +45,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-x265/PKGBUILD b/mingw-w64-x265/PKGBUILD index eb67377679..f461f595ff 100644 --- a/mingw-w64-x265/PKGBUILD +++ b/mingw-w64-x265/PKGBUILD @@ -4,7 +4,7 @@ _realname=x265 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.7 -pkgrel=2 +pkgrel=3 pkgdesc='Open Source H265/HEVC video encoder (mingw-w64)' arch=('any') license=('GPL') @@ -31,9 +31,10 @@ build() { mkdir -p 8bit cd 8bit + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ ../../../source make @@ -50,10 +51,12 @@ build() { _ENABLE_ASM=ON fi + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DHIGH_BIT_DEPTH=ON \ - -DENABLE_ASSEMBLY=$_ENABLE_ASM \ + -DENABLE_ASSEMBLY=${_ENABLE_ASM} \ -DENABLE_CLI=OFF \ ../../../source make @@ -61,11 +64,7 @@ build() { package() { cd "${srcdir}"/multicoreware-x265-*/build/msys/8bit - make install - - local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i "${pkgdir}"${MINGW_PREFIX}/lib/pkgconfig/x265.pc + make DESTDIR=${pkgdir} install # Install 10 bit-depth dll. cd "${srcdir}"/multicoreware-x265-*/build/msys/10bit From 8e8a3e0fad8cc76b18149a1a9999da2b540875ae Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Fri, 3 Jul 2015 01:29:17 +0100 Subject: [PATCH 1254/2060] clang: set ld as the default linker and compiler-rt as default compiler runtime, add libc++ and libc++abi --- .../0011-Add-Clang-MinGW-w64-driver.patch | 42 +++++++-------- ...041-libcxx-add-support-for-mingw-w64.patch | 35 ++++++++++++ mingw-w64-clang-svn/PKGBUILD | 53 ++++++++++++------- 3 files changed, 86 insertions(+), 44 deletions(-) create mode 100644 mingw-w64-clang-svn/0041-libcxx-add-support-for-mingw-w64.patch diff --git a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch index 89a948d8d9..d23a73489c 100644 --- a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch +++ b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch @@ -1,11 +1,11 @@ -From 69a5f208efed36c20aa2af6f164fd7c59e21ab95 Mon Sep 17 00:00:00 2001 +From 7aae4813ddf6277ddf7ed35650d480a2926dfef4 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Thu, 2 Jul 2015 09:24:03 +0100 Subject: [PATCH] Add Clang MinGW-w64 driver diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td -index 6a75b7c..9b24986 100644 +index 9855c7d..cc13db1 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -1527,6 +1527,7 @@ def private__bundle : Flag<["-"], "private_bundle">; @@ -17,10 +17,10 @@ index 6a75b7c..9b24986 100644 def pie : Flag<["-"], "pie">; def read__only__relocs : Separate<["-"], "read_only_relocs">; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index a2955db..7e38039 100644 +index 058fdf5..d5478b1 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp -@@ -2231,8 +2231,7 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, +@@ -2239,8 +2239,7 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, // Until ARM libraries are build separately, we have them all in one library static StringRef getArchNameForCompilerRTLib(const ToolChain &TC) { @@ -30,7 +30,7 @@ index a2955db..7e38039 100644 TC.getArch() == llvm::Triple::x86) return "i386"; if (TC.getArch() == llvm::Triple::arm || TC.getArch() == llvm::Triple::armeb) -@@ -2258,10 +2257,12 @@ SmallString<128> tools::getCompilerRT(const ToolChain &TC, StringRef Component, +@@ -2266,10 +2265,12 @@ SmallString<128> tools::getCompilerRT(const ToolChain &TC, StringRef Component, : ""; bool IsOSWindows = TC.getTriple().isOSWindows(); @@ -45,7 +45,7 @@ index a2955db..7e38039 100644 SmallString<128> Path = getCompilerRTLibDir(TC); llvm::sys::path::append(Path, Prefix + Twine("clang_rt.") + Component + "-" + -@@ -8825,19 +8826,24 @@ void MinGW::Assembler::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8826,19 +8827,24 @@ void MinGW::Assembler::ConstructJob(Compilation &C, const JobAction &JA, SplitDebugName(Args, Inputs[0])); } @@ -80,11 +80,10 @@ index a2955db..7e38039 100644 } CmdArgs.push_back("-lmoldname"); CmdArgs.push_back("-lmingwex"); -@@ -8863,6 +8869,13 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8864,6 +8870,12 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, // handled somewhere else. Args.ClaimAllArgs(options::OPT_w); -+ // We default to lld and not ld because we are badass like that :) + StringRef Linker = Args.getLastArgValue(options::OPT_fuse_ld_EQ, "ld"); + if (Linker.equals_lower("lld")) { + CmdArgs.push_back("-flavor"); @@ -94,7 +93,7 @@ index a2955db..7e38039 100644 if (!D.SysRoot.empty()) CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); -@@ -8874,6 +8887,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8875,6 +8887,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("i386pe"); if (TC.getArch() == llvm::Triple::x86_64) CmdArgs.push_back("i386pep"); @@ -103,7 +102,7 @@ index a2955db..7e38039 100644 if (Args.hasArg(options::OPT_mwindows)) { CmdArgs.push_back("--subsystem"); -@@ -8963,7 +8978,7 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8964,12 +8978,13 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, if (Args.hasArg(options::OPT_fopenmp)) CmdArgs.push_back("-lgomp"); @@ -112,29 +111,24 @@ index a2955db..7e38039 100644 if (Args.hasArg(options::OPT_pg)) CmdArgs.push_back("-lgmon"); -@@ -8971,7 +8986,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, - // FIXME: what to do about pthreads library? - // Currently required for OpenMP and posix-threading libgcc, - // does not exists in mingw.org. -- //CmdArgs.push_back("-lpthread"); -+ if (!Args.hasArg(options::OPT_no_pthread)) -+ CmdArgs.push_back("-lpthread"); + +- if (Args.hasArg(options::OPT_pthread)) ++ if (Args.hasArg(options::OPT_pthread) && ++ !Args.hasArg(options::OPT_no_pthread)) + CmdArgs.push_back("-lpthread"); // add system libraries - if (Args.hasArg(options::OPT_mwindows)) { -@@ -8985,8 +9001,9 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, - +@@ -8985,7 +9000,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, if (Args.hasArg(options::OPT_static)) CmdArgs.push_back("--end-group"); -- else + else - AddLibGCC(Args, CmdArgs); -+ else //lld is more robust at looking up symbols -+ if (Linker.equals_lower("ld")) ++ if (!Linker.equals_lower("lld")) + AddRuntime(TC, Args, CmdArgs); } if (!Args.hasArg(options::OPT_nostartfiles)) { -@@ -8996,7 +9013,7 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8995,7 +9011,7 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend.o"))); } } diff --git a/mingw-w64-clang-svn/0041-libcxx-add-support-for-mingw-w64.patch b/mingw-w64-clang-svn/0041-libcxx-add-support-for-mingw-w64.patch new file mode 100644 index 0000000000..4b4437b84d --- /dev/null +++ b/mingw-w64-clang-svn/0041-libcxx-add-support-for-mingw-w64.patch @@ -0,0 +1,35 @@ +From 53625b291503734db14e4a6146ceb06f288fd987 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sun, 5 Jul 2015 00:54:34 +0100 +Subject: [PATCH] libcxx: add support for mingw-w64 + + +diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt +index d3d5f38..4820f2c 100644 +--- a/lib/CMakeLists.txt ++++ b/lib/CMakeLists.txt +@@ -2,7 +2,7 @@ set(LIBCXX_LIB_CMAKEFILES_DIR "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTOR + + # Get sources + file(GLOB LIBCXX_SOURCES ../src/*.cpp) +-if(WIN32) ++if(MSVC) + file(GLOB LIBCXX_WIN32_SOURCES ../src/support/win32/*.cpp) + list(APPEND LIBCXX_SOURCES ${LIBCXX_WIN32_SOURCES}) + elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS") +diff --git a/src/random.cpp b/src/random.cpp +index 4ab424e..d3062f5 100644 +--- a/src/random.cpp ++++ b/src/random.cpp +@@ -7,7 +7,7 @@ + // + //===----------------------------------------------------------------------===// + +-#if defined(_LIBCPP_USING_WIN32_RANDOM) ++#if defined(_LIBCPP_USING_WIN32_RANDOM) || defined(__MINGW32__) + // Must be defined before including stdlib.h to enable rand_s(). + #define _CRT_RAND_S + #endif // defined(_LIBCPP_USING_WIN32_RANDOM) +-- +2.4.5 + diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index ee1f74baf3..3c12e747b0 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -1,21 +1,26 @@ # Maintainer: Martell Malone # Contributor: Ray Donnelly -# libc++ is in a seperate folder becuase it wont build with gcc -# Will leave the code here for it though incase we ever switch to clang -# I may add a bootstrap option for this case soon +# Martell's notes +# libc++ and libc++abi are built statically only becuase shared will depend +# on libstdc++ atm which would make a big mess for us +# We could either use libc++ for this or use a static libstdc++ +# I would like to avoid the latter. + +# I may add a bootstrap option for libc++ to build libc++ soon +# Maybe having a seperate PKGBUILD for it would be helpful for this also _realname=clang pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-analyzer-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-tools-extra-svn" "${MINGW_PACKAGE_PREFIX}-compiler-rt-svn" - #"${MINGW_PACKAGE_PREFIX}-libc++abi-svn" - #"${MINGW_PACKAGE_PREFIX}-libc++-svn" + "${MINGW_PACKAGE_PREFIX}-libc++abi-svn" + "${MINGW_PACKAGE_PREFIX}-libc++-svn" "${MINGW_PACKAGE_PREFIX}-lld-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn" ) -pkgver=57765.6c5a911 +pkgver=57869.4a4b27a pkgrel=1 pkgdesc="C language family frontend for LLVM (mingw-w64)" arch=('any') @@ -45,7 +50,8 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" 0031-COFF-add-the-mingw-alias-for-ImageBase.patch 0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch 0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch - 0034-GNU-add-support-for-linking-PECOFF.patch) + 0034-GNU-add-support-for-linking-PECOFF.patch + 0041-libcxx-add-support-for-mingw-w64.patch) # Some patch notes :) #0001-0009 -> llvm @@ -64,7 +70,7 @@ md5sums=('SKIP' 'SKIP' '9b93c8e61c7480c551564d06c08291aa' 'a384d4607d9dcdfdcac6912ac413ec58' - 'a22508be75294c02b678a2309a72eff9' + 'd7b27822d33dd3ee12510d388091d0f3' '6c31dc05b01f038d10ceb5e88c5fe9f5' 'e6ce086a33256043af99a5690b251be8' '259b2ca36651bff1cb3e095608129ddf' @@ -72,7 +78,8 @@ md5sums=('SKIP' 'a1e06d17915f1cedb1d784ecfdfa60be' '76b01f572c404c7245d227d758cdf7fc' '559b5b75d4efd50079d76dda592fb1b7' - '72404042ab22a9c52bc77d24a22f7c01') + '72404042ab22a9c52bc77d24a22f7c01' + '6b0b769d999dc884e59d388c5a7f3866') pkgver_internal() { if [ ! -d "$1" ]; then @@ -114,15 +121,18 @@ prepare() { #git am "${srcdir}"/0031-COFF-add-the-mingw-alias-for-ImageBase.patch git am "${srcdir}"/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch git am "${srcdir}"/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch - git am "${srcdir}"/0034-GNU-add-support-for-linking-PECOFF.patch + git am "${srcdir}"/0034-GNU-add-support-for-linking-PECOFF.patch + + cd "${srcdir}"/libcxx + git am "${srcdir}"/0041-libcxx-add-support-for-mingw-w64.patch cd "${srcdir}" mv lld llvm/tools/lld mv clang llvm/tools/clang mv clang-tools-extra llvm/tools/clang/tools/extra mv compiler-rt llvm/projects/compiler-rt -# mv libcxxabi llvm/projects/libcxxabi -# mv libcxx llvm/projects/libcxx + mv libcxxabi llvm/projects/libcxxabi + mv libcxx llvm/projects/libcxx # mv testsuite llvm/projects/test-suite } @@ -155,6 +165,9 @@ build() { -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \ -DLLVM_ENABLE_FFI=ON \ -DLLVM_ENABLE_SPHINX=ON \ + -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE -D_LIBCPP_HAS_NO_CONSTEXPR" \ + -DLIBCXX_ENABLE_SHARED=OFF \ + -DLIBCXXABI_ENABLE_SHARED=OFF \ ../llvm make @@ -261,11 +274,11 @@ package_llvm(){ mv llvm/projects/compiler-rt compiler-rt mv build-${CARCH}/projects/compiler-rt compiler-rt-${CARCH} -# mv llvm/projects/libcxxabi libcxxabi -# mv build-${CARCH}/projects/libcxxabi libcxxabi-${CARCH} + mv llvm/projects/libcxxabi libcxxabi + mv build-${CARCH}/projects/libcxxabi libcxxabi-${CARCH} -# mv llvm/projects/libcxx libcxx -# mv build-${CARCH}/projects/libcxx libcxx-${CARCH} + mv llvm/projects/libcxx libcxx + mv build-${CARCH}/projects/libcxx libcxx-${CARCH} cd build-${CARCH} make -j1 DESTDIR="$pkgdir" install @@ -281,11 +294,11 @@ package_llvm(){ mv compiler-rt llvm/projects/compiler-rt mv compiler-rt-${CARCH} build-${CARCH}/projects/compiler-rt -# mv libcxxabi llvm/projects/libcxxabi -# mv libcxxabi-${CARCH} build-${CARCH}/projects/libcxxabi + mv libcxxabi llvm/projects/libcxxabi + mv libcxxabi-${CARCH} build-${CARCH}/projects/libcxxabi -# mv libcxx llvm/projects/libcxx -# mv libcxx-${CARCH} build-${CARCH}/projects/libcxx + mv libcxx llvm/projects/libcxx + mv libcxx-${CARCH} build-${CARCH}/projects/libcxx # Install CMake stuff install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} From d37f649a714c2349fbab7869a1e4fbb4db53f24a Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 8 Jul 2015 00:05:37 +0100 Subject: [PATCH 1255/2060] clang-svn: handle libc++ include dirs --- .../0011-Add-Clang-MinGW-w64-driver.patch | 105 ++++++++++++++++-- mingw-w64-clang-svn/PKGBUILD | 2 +- 2 files changed, 97 insertions(+), 10 deletions(-) diff --git a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch index d23a73489c..5f336e4134 100644 --- a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch +++ b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch @@ -1,4 +1,4 @@ -From 7aae4813ddf6277ddf7ed35650d480a2926dfef4 Mon Sep 17 00:00:00 2001 +From 7294b887148ee9a45cab5d1596dbc79a1813904b Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Thu, 2 Jul 2015 09:24:03 +0100 Subject: [PATCH] Add Clang MinGW-w64 driver @@ -16,8 +16,90 @@ index 9855c7d..cc13db1 100644 def p : Flag<["-"], "p">; def pie : Flag<["-"], "pie">; def read__only__relocs : Separate<["-"], "read_only_relocs">; +diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp +index 86b3681..f153602 100644 +--- a/lib/Driver/MinGWToolChain.cpp ++++ b/lib/Driver/MinGWToolChain.cpp +@@ -9,6 +9,7 @@ + + #include "ToolChains.h" + #include "clang/Driver/Driver.h" ++#include "clang/Driver/DriverDiagnostic.h" + #include "clang/Driver/Options.h" + #include "llvm/Option/ArgList.h" + #include "llvm/Support/FileSystem.h" +@@ -128,21 +129,40 @@ void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, + DriverArgs.hasArg(options::OPT_nostdincxx)) + return; + +- // C++ includes may be found in several locations depending on distribution. +- // mingw-w64 mingw-builds: $sysroot/i686-w64-mingw32/include/c++. +- // mingw-w64 msys2: $sysroot/include/c++/4.9.2 +- // mingw.org: GccLibDir/include/c++ +- llvm::SmallVector, 3> CppIncludeBases; +- CppIncludeBases.emplace_back(Base); +- llvm::sys::path::append(CppIncludeBases[0], Arch, "include", "c++"); +- CppIncludeBases.emplace_back(Base); +- llvm::sys::path::append(CppIncludeBases[1], "include", "c++", Ver); +- CppIncludeBases.emplace_back(GccLibDir); +- llvm::sys::path::append(CppIncludeBases[2], "include", "c++"); +- for (auto &CppIncludeBase : CppIncludeBases) { +- CppIncludeBase += llvm::sys::path::get_separator(); +- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase); +- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + Arch); +- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); ++ switch (GetCXXStdlibType(DriverArgs)) { ++ case ToolChain::CST_Libcxx: ++ addSystemInclude(DriverArgs, CC1Args, Base + "include" + "c++" + "v1"); ++ break; ++ ++ case ToolChain::CST_Libstdcxx: ++ // C++ includes may be found in several locations depending on distribution. ++ // mingw-w64 mingw-builds: $sysroot/i686-w64-mingw32/include/c++. ++ // mingw-w64 msys2: $sysroot/include/c++/4.9.2 ++ // mingw.org: GccLibDir/include/c++ ++ llvm::SmallVector, 3> CppIncludeBases; ++ CppIncludeBases.emplace_back(Base); ++ llvm::sys::path::append(CppIncludeBases[0], Arch, "include", "c++"); ++ CppIncludeBases.emplace_back(Base); ++ llvm::sys::path::append(CppIncludeBases[1], "include", "c++", Ver); ++ CppIncludeBases.emplace_back(GccLibDir); ++ llvm::sys::path::append(CppIncludeBases[2], "include", "c++"); ++ for (auto &CppIncludeBase : CppIncludeBases) { ++ CppIncludeBase += llvm::sys::path::get_separator(); ++ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase); ++ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + Arch); ++ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); ++ } ++ break; + } + } ++ ++ToolChain::CXXStdlibType MinGW::GetCXXStdlibType(const ArgList &Args) const{ ++ StringRef Value = Args.getLastArgValue(options::OPT_stdlib_EQ, "libc++"); ++ if (Value == "libc++") ++ return ToolChain::CST_Libcxx; ++ if (Value == "libstdc++") ++ return ToolChain::CST_Libstdcxx; ++ getDriver().Diag(diag::err_drv_invalid_stdlib_name) ++ << Value; ++ return ToolChain::CST_Libcxx; ++} +diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h +index 05066ee..60e72da 100644 +--- a/lib/Driver/ToolChains.h ++++ b/lib/Driver/ToolChains.h +@@ -543,6 +543,8 @@ public: + void AddClangCXXStdlibIncludeArgs( + const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const override; ++ CXXStdlibType GetCXXStdlibType( ++ const llvm::opt::ArgList &Args) const override; + + protected: + Tool *getTool(Action::ActionClass AC) const override; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 058fdf5..d5478b1 100644 +index 058fdf5..53e6f20 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -2239,8 +2239,7 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, @@ -45,7 +127,7 @@ index 058fdf5..d5478b1 100644 SmallString<128> Path = getCompilerRTLibDir(TC); llvm::sys::path::append(Path, Prefix + Twine("clang_rt.") + Component + "-" + -@@ -8826,19 +8827,24 @@ void MinGW::Assembler::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8826,19 +8827,29 @@ void MinGW::Assembler::ConstructJob(Compilation &C, const JobAction &JA, SplitDebugName(Args, Inputs[0])); } @@ -65,8 +147,13 @@ index 058fdf5..d5478b1 100644 - CmdArgs.push_back("-lgcc"); - CmdArgs.push_back("-lgcc_eh"); + StringRef Runtime = Args.getLastArgValue(options::OPT_rtlib_EQ, "compiler-rt"); -+ if (Runtime.equals_lower("compiler-rt")) ++ if (Runtime.equals_lower("compiler-rt")) { + CmdArgs.push_back(Args.MakeArgString(getCompilerRT(TC, "builtins"))); ++ if (getToolChain().GetCXXStdlibType(Args) == ToolChain::CST_Libstdcxx) ++ if (TC.getDriver().CCCIsCXX()) ++ CmdArgs.push_back("-lgcc_eh"); ++ } ++ + if (Runtime.equals_lower("libgcc")) { + if (Args.hasArg(options::OPT_shared) || + Args.hasArg(options::OPT_shared_libgcc) || @@ -80,7 +167,7 @@ index 058fdf5..d5478b1 100644 } CmdArgs.push_back("-lmoldname"); CmdArgs.push_back("-lmingwex"); -@@ -8864,6 +8870,12 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8864,6 +8875,12 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, // handled somewhere else. Args.ClaimAllArgs(options::OPT_w); @@ -93,7 +180,7 @@ index 058fdf5..d5478b1 100644 if (!D.SysRoot.empty()) CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); -@@ -8875,6 +8887,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8875,6 +8892,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("i386pe"); if (TC.getArch() == llvm::Triple::x86_64) CmdArgs.push_back("i386pep"); @@ -102,7 +189,7 @@ index 058fdf5..d5478b1 100644 if (Args.hasArg(options::OPT_mwindows)) { CmdArgs.push_back("--subsystem"); -@@ -8964,12 +8978,13 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8964,12 +8983,13 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, if (Args.hasArg(options::OPT_fopenmp)) CmdArgs.push_back("-lgomp"); @@ -118,7 +205,7 @@ index 058fdf5..d5478b1 100644 CmdArgs.push_back("-lpthread"); // add system libraries -@@ -8985,7 +9000,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8985,7 +9005,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, if (Args.hasArg(options::OPT_static)) CmdArgs.push_back("--end-group"); else @@ -128,7 +215,7 @@ index 058fdf5..d5478b1 100644 } if (!Args.hasArg(options::OPT_nostartfiles)) { -@@ -8995,7 +9011,7 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8995,7 +9016,7 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend.o"))); } } diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 3c12e747b0..3907830841 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -70,7 +70,7 @@ md5sums=('SKIP' 'SKIP' '9b93c8e61c7480c551564d06c08291aa' 'a384d4607d9dcdfdcac6912ac413ec58' - 'd7b27822d33dd3ee12510d388091d0f3' + '10385637cb1b2355b1a91fdefc26e766' '6c31dc05b01f038d10ceb5e88c5fe9f5' 'e6ce086a33256043af99a5690b251be8' '259b2ca36651bff1cb3e095608129ddf' From 6bc5380cb82d23f5263a2f9fc28859f8690cc718 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 9 Jul 2015 15:32:38 +0300 Subject: [PATCH 1256/2060] == Rebuild with GCC-5.1.0. Part V === --- mingw-w64-LibRaw/PKGBUILD | 16 +- mingw-w64-SDL2/PKGBUILD | 19 +- .../SDL2-fix-gcc-compatibility.patch | 413 ++++++++++++++++++ ...prevent-duplicate-d3d11-declarations.patch | 27 ++ mingw-w64-SDL2_gfx/PKGBUILD | 20 +- mingw-w64-SDL2_image/PKGBUILD | 16 +- mingw-w64-SDL2_mixer/PKGBUILD | 13 +- mingw-w64-SDL2_net/PKGBUILD | 9 +- mingw-w64-SDL2_sound-hg/PKGBUILD | 8 +- mingw-w64-SDL2_ttf/PKGBUILD | 5 +- mingw-w64-SDL_gfx/PKGBUILD | 12 +- mingw-w64-SDL_image/PKGBUILD | 8 +- mingw-w64-SDL_ttf/PKGBUILD | 13 +- mingw-w64-SDL_ttf/bug1433.patch | 11 - mingw-w64-check/PKGBUILD | 5 +- mingw-w64-chromaprint/PKGBUILD | 16 +- mingw-w64-clutter/PKGBUILD | 34 +- mingw-w64-cogl/PKGBUILD | 8 +- .../0003-missing-include.patch | 10 + mingw-w64-daala-git/0004-xp-sp2.all.patch | 11 + .../0005-no-pkg-config-prefix.mingw.patch | 27 ++ mingw-w64-daala-git/PKGBUILD | 30 +- mingw-w64-eigen3/PKGBUILD | 47 +- mingw-w64-eigen3/eigen-pkgconfig.patch | 19 +- mingw-w64-eigen3/eigen-test.patch | 11 + mingw-w64-enchant/PKGBUILD | 20 +- mingw-w64-ffmpeg/PKGBUILD | 8 +- mingw-w64-field3d/PKGBUILD | 19 +- mingw-w64-glib-networking/PKGBUILD | 8 +- mingw-w64-gsl/PKGBUILD | 20 +- mingw-w64-gst-plugins-base/PKGBUILD | 29 +- mingw-w64-gst-plugins-good/PKGBUILD | 37 +- mingw-w64-gstreamer/PKGBUILD | 36 +- mingw-w64-hdf5/PKGBUILD | 22 +- mingw-w64-hdf5/hdf5-fix-install-docs.patch | 2 +- mingw-w64-hdf5/hdf5-link-ws2_32-mingw.patch | 4 +- mingw-w64-hunspell/PKGBUILD | 18 +- mingw-w64-ilmbase/PKGBUILD | 38 +- mingw-w64-intel-tbb/PKGBUILD | 6 +- mingw-w64-libblueray/PKGBUILD | 15 +- mingw-w64-libcaca/PKGBUILD | 27 +- mingw-w64-libdvdcss/PKGBUILD | 29 +- mingw-w64-libdvdnav/PKGBUILD | 22 +- mingw-w64-libdvdread/PKGBUILD | 26 +- mingw-w64-libexif/PKGBUILD | 11 +- mingw-w64-libgme/PKGBUILD | 22 +- mingw-w64-libmimic/PKGBUILD | 23 +- mingw-w64-libmodplug/PKGBUILD | 5 +- mingw-w64-libshout/PKGBUILD | 6 +- .../0002-fix-keyword-conflict.patch | 62 --- mingw-w64-libsoup/PKGBUILD | 26 +- mingw-w64-libtheora/PKGBUILD | 13 +- mingw-w64-libvorbisidec-svn/PKGBUILD | 2 +- mingw-w64-opencollada-git/PKGBUILD | 11 +- .../PKGBUILD | 32 +- .../detect-mingw-python.patch | 0 .../fix-redefinitions.patch | 0 .../mingw-w64.patch | 0 mingw-w64-opencore-amr/PKGBUILD | 7 +- mingw-w64-opencv/PKGBUILD | 74 ++-- .../free-tls-keys-on-dll-unload.patch | 63 --- mingw-w64-opencv/issue-4107.patch | 13 + mingw-w64-opencv/mingw-w64-cmake.patch | 82 ++-- ...ngs-generation-DetectionBasedTracker.patch | 34 ++ mingw-w64-openexr/PKGBUILD | 43 +- mingw-w64-opus-tools/PKGBUILD | 6 +- mingw-w64-opus/PKGBUILD | 10 +- mingw-w64-opusfile/PKGBUILD | 3 +- mingw-w64-orc/PKGBUILD | 9 +- mingw-w64-physfs-hg/PKGBUILD | 31 +- mingw-w64-physfs/PKGBUILD | 19 +- mingw-w64-pyqt5/PKGBUILD | 6 +- mingw-w64-python-dateutil/PKGBUILD | 30 +- mingw-w64-python-matplotlib/PKGBUILD | 29 +- mingw-w64-python-pygments/PKGBUILD | 4 +- mingw-w64-python-pyparsing/PKGBUILD | 20 +- mingw-w64-python2-cairo/PKGBUILD | 11 +- .../1050-fix-hashfunc-prototype.patch | 11 - mingw-w64-python2/PKGBUILD | 5 +- mingw-w64-python3-cairo/PKGBUILD | 15 +- mingw-w64-ruby/PKGBUILD | 2 +- mingw-w64-schroedinger/PKGBUILD | 9 +- mingw-w64-sip/PKGBUILD | 7 +- mingw-w64-smpeg2/PKGBUILD | 10 +- mingw-w64-soundtouch/PKGBUILD | 2 +- mingw-w64-szip/PKGBUILD | 23 +- mingw-w64-taglib/PKGBUILD | 29 +- mingw-w64-tinyxml/PKGBUILD | 17 +- mingw-w64-tinyxml2/PKGBUILD | 48 +- mingw-w64-vtk/PKGBUILD | 23 +- mingw-w64-wavpack/PKGBUILD | 17 +- mingw-w64-xvidcore/PKGBUILD | 2 +- mingw-w64-yaml-cpp/PKGBUILD | 57 +-- mingw-w64-yaml-cpp0.3/PKGBUILD | 50 +-- 94 files changed, 1334 insertions(+), 894 deletions(-) create mode 100644 mingw-w64-SDL2/SDL2-fix-gcc-compatibility.patch create mode 100644 mingw-w64-SDL2/SDL2-prevent-duplicate-d3d11-declarations.patch delete mode 100644 mingw-w64-SDL_ttf/bug1433.patch create mode 100644 mingw-w64-daala-git/0003-missing-include.patch create mode 100644 mingw-w64-daala-git/0004-xp-sp2.all.patch create mode 100644 mingw-w64-daala-git/0005-no-pkg-config-prefix.mingw.patch create mode 100644 mingw-w64-eigen3/eigen-test.patch delete mode 100644 mingw-w64-libsoup/0002-fix-keyword-conflict.patch rename {mingw-w64-opencolorio => mingw-w64-opencolorio-git}/PKGBUILD (74%) rename {mingw-w64-opencolorio => mingw-w64-opencolorio-git}/detect-mingw-python.patch (100%) rename {mingw-w64-opencolorio => mingw-w64-opencolorio-git}/fix-redefinitions.patch (100%) rename {mingw-w64-opencolorio => mingw-w64-opencolorio-git}/mingw-w64.patch (100%) delete mode 100644 mingw-w64-opencv/free-tls-keys-on-dll-unload.patch create mode 100644 mingw-w64-opencv/issue-4107.patch create mode 100644 mingw-w64-opencv/remove-bindings-generation-DetectionBasedTracker.patch delete mode 100644 mingw-w64-python2/1050-fix-hashfunc-prototype.patch diff --git a/mingw-w64-LibRaw/PKGBUILD b/mingw-w64-LibRaw/PKGBUILD index 4fc9c8c47a..b883e99487 100644 --- a/mingw-w64-LibRaw/PKGBUILD +++ b/mingw-w64-LibRaw/PKGBUILD @@ -3,7 +3,7 @@ _realname=LibRaw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.16.2 -pkgrel=1 +pkgrel=2 pkgdesc="Library for reading RAW files obtained from digital photo cameras (mingw-w64)" arch=(any) url="http://www.libraw.org" @@ -25,11 +25,11 @@ sha256sums=('6344e355f7c23f13e266844b36265d5f624237ba5a62dc901c7b91b510a84187' '4a31c0ee066f43915beff6f7959b6b2cd246d390720df379bfc047d4cedb6a8f') prepare() { - mv $srcdir/${_realname}-demosaic-pack-GPL2-${pkgver} $srcdir/${_realname}-$pkgver/ - mv $srcdir/${_realname}-demosaic-pack-GPL3-${pkgver} $srcdir/${_realname}-$pkgver/ - cd "$srcdir/${_realname}-$pkgver" - patch -Np1 -i "$srcdir/LibRaw_wsock32.patch" - patch -Np1 -i "$srcdir/LibRaw_obsolete-macros.patch" + mv ${srcdir}/${_realname}-demosaic-pack-GPL2-${pkgver} $srcdir/${_realname}-$}pkgver}/ + mv ${srcdir}/${_realname}-demosaic-pack-GPL3-${pkgver} $srcdir/${_realname}-${pkgver}/ + cd "${srcdir}/${_realname}-${pkgver}" + patch -Np1 -i "${srcdir}/LibRaw_wsock32.patch" + patch -Np1 -i "${srcdir}/LibRaw_obsolete-macros.patch" autoreconf -ifv } @@ -39,7 +39,7 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-$pkgver/configure \ + ../${_realname}-$pkgver/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -53,5 +53,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-SDL2/PKGBUILD b/mingw-w64-SDL2/PKGBUILD index 7dc3074ee6..2b1462947d 100644 --- a/mingw-w64-SDL2/PKGBUILD +++ b/mingw-w64-SDL2/PKGBUILD @@ -3,7 +3,7 @@ _realname=SDL2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.3 -pkgrel=2 +pkgrel=3 pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (Version 2) (mingw-w64)" arch=('any') url="http://libsdl.org" @@ -11,14 +11,20 @@ license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv") options=('staticlibs' 'strip') -source=("http://libsdl.org/release/SDL2-$pkgver.tar.gz" - fix-linker-flags.patch) +source=("http://libsdl.org/release/SDL2-${pkgver}.tar.gz" + fix-linker-flags.patch + SDL2-prevent-duplicate-d3d11-declarations.patch + SDL2-fix-gcc-compatibility.patch) md5sums=('fe6c61d2e9df9ef570e7e80c6e822537' - '932a4c42f068a9117c3c02efead14b29') + '932a4c42f068a9117c3c02efead14b29' + 'a70714d69deaea9e4f0cbfb17e9f4acf' + 'abbdbc90d737c8296b58d6af462b68b7') prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/fix-linker-flags.patch + patch -p1 -i ${srcdir}/SDL2-prevent-duplicate-d3d11-declarations.patch + patch -p1 -i ${srcdir}/SDL2-fix-gcc-compatibility.patch ./autogen.sh } @@ -26,15 +32,16 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install sed -e "s|-mwindows||g" -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/sdl2.pc } diff --git a/mingw-w64-SDL2/SDL2-fix-gcc-compatibility.patch b/mingw-w64-SDL2/SDL2-fix-gcc-compatibility.patch new file mode 100644 index 0000000000..a17e037e4a --- /dev/null +++ b/mingw-w64-SDL2/SDL2-fix-gcc-compatibility.patch @@ -0,0 +1,413 @@ +--- a/src/render/direct3d11/SDL_render_d3d11.c.orig 2015-03-21 20:17:57.816864185 +0100 ++++ b/src/render/direct3d11/SDL_render_d3d11.c 2015-03-21 22:21:30.123045735 +0100 +@@ -46,6 +46,9 @@ + #endif /* __WINRT__ */ + + ++#define SDL_DEBUG_STRINGIFY_ARG(str) #str ++#define SDL_DEBUG(str) SDL_DEBUG_STRINGIFY_ARG(__FUNCTION__) str ++ + #define SAFE_RELEASE(X) if ((X)) { IUnknown_Release(SDL_static_cast(IUnknown*, X)); X = NULL; } + + +@@ -910,7 +925,7 @@ + blendDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; + result = ID3D11Device_CreateBlendState(data->d3dDevice, &blendDesc, blendStateOutput); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBlendState", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBlendState"), result); + return result; + } + +@@ -992,14 +1007,14 @@ + + result = CreateDXGIFactoryFunc(&IID_IDXGIFactory2, &data->dxgiFactory); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", CreateDXGIFactory", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", CreateDXGIFactory"), result); + goto done; + } + + /* FIXME: Should we use the default adapter? */ + result = IDXGIFactory2_EnumAdapters(data->dxgiFactory, 0, &data->dxgiAdapter); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", D3D11CreateDevice", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", D3D11CreateDevice"), result); + goto done; + } + +@@ -1028,25 +1043,25 @@ + &d3dContext /* Returns the device immediate context. */ + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", D3D11CreateDevice", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", D3D11CreateDevice"), result); + goto done; + } + + result = ID3D11Device_QueryInterface(d3dDevice, &IID_ID3D11Device1, &data->d3dDevice); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device to ID3D11Device1", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device to ID3D11Device1"), result); + goto done; + } + + result = ID3D11DeviceContext_QueryInterface(d3dContext, &IID_ID3D11DeviceContext1, &data->d3dContext); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext to ID3D11DeviceContext1", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext to ID3D11DeviceContext1"), result); + goto done; + } + + result = ID3D11Device_QueryInterface(d3dDevice, &IID_IDXGIDevice1, &dxgiDevice); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device to IDXGIDevice1", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device to IDXGIDevice1"), result); + goto done; + } + +@@ -1055,7 +1070,7 @@ + */ + result = IDXGIDevice1_SetMaximumFrameLatency(dxgiDevice, 1); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIDevice1::SetMaximumFrameLatency", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIDevice1::SetMaximumFrameLatency"), result); + goto done; + } + +@@ -1084,7 +1099,7 @@ + break; + + default: +- SDL_SetError(__FUNCTION__ ", Unexpected feature level: %d", data->featureLevel); ++ SDL_SetError("%s, Unexpected feature level: %d", __FUNCTION__, data->featureLevel); + result = E_FAIL; + goto done; + } +@@ -1097,7 +1112,7 @@ + &data->vertexShader + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateVertexShader", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateVertexShader"), result); + goto done; + } + +@@ -1110,7 +1125,7 @@ + &data->inputLayout + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateInputLayout", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateInputLayout"), result); + goto done; + } + +@@ -1122,7 +1137,7 @@ + &data->colorPixelShader + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['color' shader]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['color' shader]"), result); + goto done; + } + +@@ -1133,7 +1148,7 @@ + &data->texturePixelShader + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['textures' shader]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['textures' shader]"), result); + goto done; + } + +@@ -1144,7 +1159,7 @@ + &data->yuvPixelShader + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['yuv' shader]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['yuv' shader]"), result); + goto done; + } + +@@ -1159,7 +1174,7 @@ + &data->vertexShaderConstants + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBuffer [vertex shader constants]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBuffer [vertex shader constants]"), result); + goto done; + } + +@@ -1179,7 +1194,7 @@ + &data->nearestPixelSampler + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateSamplerState [nearest-pixel filter]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateSamplerState [nearest-pixel filter]"), result); + goto done; + } + +@@ -1189,7 +1204,7 @@ + &data->linearSampler + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateSamplerState [linear filter]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateSamplerState [linear filter]"), result); + goto done; + } + +@@ -1207,14 +1222,14 @@ + rasterDesc.SlopeScaledDepthBias = 0.0f; + result = ID3D11Device_CreateRasterizerState(data->d3dDevice, &rasterDesc, &data->mainRasterizer); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRasterizerState [main rasterizer]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRasterizerState [main rasterizer]"), result); + goto done; + } + + rasterDesc.ScissorEnable = TRUE; + result = ID3D11Device_CreateRasterizerState(data->d3dDevice, &rasterDesc, &data->clippedRasterizer); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRasterizerState [clipped rasterizer]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRasterizerState [clipped rasterizer]"), result); + goto done; + } + +@@ -1374,7 +1389,7 @@ + &data->swapChain + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForCoreWindow", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForCoreWindow"), result); + goto done; + } + } else if (usingXAML) { +@@ -1384,18 +1399,18 @@ + NULL, + &data->swapChain); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForComposition", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForComposition"), result); + goto done; + } + + #if WINAPI_FAMILY == WINAPI_FAMILY_APP + result = ISwapChainBackgroundPanelNative_SetSwapChain(WINRT_GlobalSwapChainBackgroundPanelNative, (IDXGISwapChain *) data->swapChain); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ISwapChainBackgroundPanelNative::SetSwapChain", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ISwapChainBackgroundPanelNative::SetSwapChain"), result); + goto done; + } + #else +- SDL_SetError(__FUNCTION__ ", XAML support is not yet available for Windows Phone"); ++ SDL_SetError(SDL_DEBUG(", XAML support is not yet available for Windows Phone")); + result = E_FAIL; + goto done; + #endif +@@ -1414,7 +1429,7 @@ + &data->swapChain + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForHwnd", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForHwnd"), result); + goto done; + } + #else +@@ -1464,7 +1479,7 @@ + 0 + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::ResizeBuffers", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::ResizeBuffers"), result); + goto done; + } + #endif +@@ -1485,7 +1500,7 @@ + if (data->swapEffect == DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL) { + result = IDXGISwapChain1_SetRotation(data->swapChain, data->rotation); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain1::SetRotation", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain1::SetRotation"), result); + goto done; + } + } +@@ -1497,7 +1512,7 @@ + &backBuffer + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::GetBuffer [back-buffer]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::GetBuffer [back-buffer]"), result); + goto done; + } + +@@ -1508,7 +1523,7 @@ + &data->mainRenderTargetView + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device::CreateRenderTargetView", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device::CreateRenderTargetView"), result); + goto done; + } + +@@ -1628,7 +1643,7 @@ + ); + if (FAILED(result)) { + D3D11_DestroyTexture(renderer, texture); +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result); + return -1; + } + +@@ -1646,7 +1661,7 @@ + ); + if (FAILED(result)) { + D3D11_DestroyTexture(renderer, texture); +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result); + return -1; + } + +@@ -1657,7 +1672,7 @@ + ); + if (FAILED(result)) { + D3D11_DestroyTexture(renderer, texture); +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result); + return -1; + } + } +@@ -1673,7 +1688,7 @@ + ); + if (FAILED(result)) { + D3D11_DestroyTexture(renderer, texture); +- WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result); + return -1; + } + +@@ -1685,7 +1700,7 @@ + ); + if (FAILED(result)) { + D3D11_DestroyTexture(renderer, texture); +- WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result); + return -1; + } + result = ID3D11Device_CreateShaderResourceView(rendererData->d3dDevice, +@@ -1695,7 +1710,7 @@ + ); + if (FAILED(result)) { + D3D11_DestroyTexture(renderer, texture); +- WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result); + return -1; + } + } +@@ -1712,7 +1727,7 @@ + &textureData->mainTextureRenderTargetView); + if (FAILED(result)) { + D3D11_DestroyTexture(renderer, texture); +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRenderTargetView", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRenderTargetView"), result); + return -1; + } + } +@@ -1768,7 +1783,7 @@ + NULL, + &stagingTexture); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result); + return -1; + } + +@@ -1781,7 +1796,7 @@ + &textureMemory + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result); + SAFE_RELEASE(stagingTexture); + return -1; + } +@@ -1943,7 +1958,7 @@ + NULL, + &textureData->stagingTexture); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result); + return -1; + } + +@@ -1956,7 +1971,7 @@ + &textureMemory + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result); + SAFE_RELEASE(textureData->stagingTexture); + return -1; + } +@@ -2238,7 +2253,7 @@ + &mappedResource + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [vertex buffer]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [vertex buffer]"), result); + return -1; + } + SDL_memcpy(mappedResource.pData, vertexData, dataSizeInBytes); +@@ -2262,7 +2277,7 @@ + &rendererData->vertexBuffer + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBuffer [vertex buffer]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBuffer [vertex buffer]"), result); + return -1; + } + +@@ -2732,7 +2747,7 @@ + &backBuffer + ); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain1::GetBuffer [get back buffer]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain1::GetBuffer [get back buffer]"), result); + goto done; + } + +@@ -2749,7 +2764,7 @@ + NULL, + &stagingTexture); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result); + goto done; + } + +@@ -2781,7 +2796,7 @@ + 0, + &textureMemory); + if (FAILED(result)) { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result); + goto done; + } + +@@ -2800,7 +2815,7 @@ + * Get the error message, and attach some extra data to it. + */ + char errorMessage[1024]; +- SDL_snprintf(errorMessage, sizeof(errorMessage), __FUNCTION__ ", Convert Pixels failed: %s", SDL_GetError()); ++ SDL_snprintf(errorMessage, sizeof(errorMessage), "%s, Convert Pixels failed: %s", __FUNCTION__, SDL_GetError()); + SDL_SetError(errorMessage); + goto done; + } +@@ -2869,7 +2884,7 @@ + /* We probably went through a fullscreen <-> windowed transition */ + D3D11_CreateWindowSizeDependentResources(renderer); + } else { +- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::Present", result); ++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::Present"), result); + } + } + } diff --git a/mingw-w64-SDL2/SDL2-prevent-duplicate-d3d11-declarations.patch b/mingw-w64-SDL2/SDL2-prevent-duplicate-d3d11-declarations.patch new file mode 100644 index 0000000000..32670831d0 --- /dev/null +++ b/mingw-w64-SDL2/SDL2-prevent-duplicate-d3d11-declarations.patch @@ -0,0 +1,27 @@ +--- a/src/render/direct3d11/SDL_render_d3d11.c.orig 2015-03-21 20:17:57.816864185 +0100 ++++ b/src/render/direct3d11/SDL_render_d3d11.c 2015-03-21 22:16:38.285858676 +0100 +@@ -132,12 +132,24 @@ + + + /* Defined here so we don't have to include uuid.lib */ ++#ifndef __IDXGIFactory2_INTERFACE_DEFINED__ + static const GUID IID_IDXGIFactory2 = { 0x50c83a1c, 0xe072, 0x4c48, { 0x87, 0xb0, 0x36, 0x30, 0xfa, 0x36, 0xa6, 0xd0 } }; ++#endif ++#ifndef __IDXGIDevice1_INTERFACE_DEFINED__ + static const GUID IID_IDXGIDevice1 = { 0x77db970f, 0x6276, 0x48ba, { 0xba, 0x28, 0x07, 0x01, 0x43, 0xb4, 0x39, 0x2c } }; ++#endif ++#ifndef __ID3D11Texture2D_INTERFACE_DEFINED__ + static const GUID IID_ID3D11Texture2D = { 0x6f15aaf2, 0xd208, 0x4e89, { 0x9a, 0xb4, 0x48, 0x95, 0x35, 0xd3, 0x4f, 0x9c } }; ++#endif ++#ifndef __ID3D11Device1_INTERFACE_DEFINED__ + static const GUID IID_ID3D11Device1 = { 0xa04bfb29, 0x08ef, 0x43d6, { 0xa4, 0x9c, 0xa9, 0xbd, 0xbd, 0xcb, 0xe6, 0x86 } }; ++#endif ++#ifndef __ID3D11DeviceContext1_INTERFACE_DEFINED__ + static const GUID IID_ID3D11DeviceContext1 = { 0xbb2c6faa, 0xb5fb, 0x4082, { 0x8e, 0x6b, 0x38, 0x8b, 0x8c, 0xfa, 0x90, 0xe1 } }; ++#endif ++#ifndef __ID3D11Debug_INTERFACE_DEFINED__ + static const GUID IID_ID3D11Debug = { 0x79cf2233, 0x7536, 0x4948, { 0x9d, 0x36, 0x1e, 0x46, 0x92, 0xdc, 0x57, 0x60 } }; ++#endif + + /* Direct3D 11.x shaders + diff --git a/mingw-w64-SDL2_gfx/PKGBUILD b/mingw-w64-SDL2_gfx/PKGBUILD index 592508260b..ffae4ff7db 100644 --- a/mingw-w64-SDL2_gfx/PKGBUILD +++ b/mingw-w64-SDL2_gfx/PKGBUILD @@ -3,29 +3,37 @@ _realname=SDL2_gfx pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.1 -pkgrel=1 -pkgdesc="SDL graphics drawing primitives and other support functions wrapped up in an addon library for the Simple Direct Media (SDL) cross-platform API layer." +pkgrel=2 +pkgdesc="SDL graphics drawing primitives and other support functions wrapped up in an addon library for the Simple Direct Media (SDL) cross-platform API layer" arch=('any') url="http://cms.ferzkopp.net/index.php/software/13-sdl-gfx" license=("zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-SDL2") options=('staticlibs' 'strip') -source=("http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-$pkgver.tar.gz") +source=("http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-${pkgver}.tar.gz") md5sums=('9c96816618e3e086d885d1d214e59d87') +prepare() { + cd ${_realname}-${pkgver} + autoreconf -fiv +} + build() { + export lt_cv_deplibs_check_method='pass_all' + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install - install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + make DESTDIR="${pkgdir}" install + install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-SDL2_image/PKGBUILD b/mingw-w64-SDL2_image/PKGBUILD index 1fd979a08a..d91bac0712 100644 --- a/mingw-w64-SDL2_image/PKGBUILD +++ b/mingw-w64-SDL2_image/PKGBUILD @@ -3,17 +3,17 @@ _realname=SDL2_image pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=2.0.0 -pkgrel=3 +pkgrel=4 pkgdesc=("A simple library to load images of various formats as SDL surfaces (Version 2)") arch=('any') url="http://www.libsdl.org/projects/SDL_image" license=('MIT') depends=("${MINGW_PACKAGE_PREFIX}-SDL2" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" - "${MINGW_PACKAGE_PREFIX}-libwebp") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libwebp") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=("${url}/release/${_realname}-${pkgver}.tar.gz") sha1sums=('20b1b0db9dd540d6d5e40c7da8a39c6a81248865') @@ -21,7 +21,7 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}/" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -33,8 +33,8 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}/" + make DESTDIR="${pkgdir}" install - make DESTDIR="${pkgdir}/" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.txt" \ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-SDL2_mixer/PKGBUILD b/mingw-w64-SDL2_mixer/PKGBUILD index e7e3050ff6..3f7bb9a0dc 100644 --- a/mingw-w64-SDL2_mixer/PKGBUILD +++ b/mingw-w64-SDL2_mixer/PKGBUILD @@ -3,7 +3,7 @@ _realname=SDL2_mixer pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.0 -pkgrel=4 +pkgrel=5 pkgdesc="A simple multi-channel audio mixer (Version 2) (mingw-w64)" arch=('any') url="http://www.libsdl.org/projects/SDL_mixer" @@ -22,8 +22,7 @@ source=("$url/release/${_realname}-${pkgver}.tar.gz") md5sums=('65f6d80df073a1fb3bb537fbda031b50') prepare() { - cd $startdir/ - [ -d $srcdir/${_realname}-$pkgver ] || tar -xzvf ${_realname}-${pkgver}.tar.gz -C $srcdir || true + [[ -d ${srcdir}/${_realname}-${pkgver} ]] || tar -xzvf ${_realname}-${pkgver}.tar.gz -C ${srcdir} || true cd "${srcdir}"/${_realname}-${pkgver} @@ -32,19 +31,21 @@ prepare() { } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + cd "${srcdir}/build-${MINGW_CHOST}/" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-SDL2_net/PKGBUILD b/mingw-w64-SDL2_net/PKGBUILD index e284e0e37b..5256723433 100644 --- a/mingw-w64-SDL2_net/PKGBUILD +++ b/mingw-w64-SDL2_net/PKGBUILD @@ -3,7 +3,7 @@ _realname=SDL2_net pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.0 -pkgrel=2 +pkgrel=3 pkgdesc="A small sample cross-platform networking library (Version 2) (mingw-w64)" arch=('any') url="http://www.libsdl.org/projects/SDL_net" @@ -11,23 +11,24 @@ license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-SDL2") options=('staticlibs' 'strip') -source=("$url/release/${_realname}-${pkgver}.tar.gz") +source=("${url}/release/${_realname}-${pkgver}.tar.gz") md5sums=('83bcd0e67796b81b35b08a014c677200') build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-SDL2_sound-hg/PKGBUILD b/mingw-w64-SDL2_sound-hg/PKGBUILD index 0075a3b95c..9ee67ce8c2 100644 --- a/mingw-w64-SDL2_sound-hg/PKGBUILD +++ b/mingw-w64-SDL2_sound-hg/PKGBUILD @@ -22,7 +22,7 @@ makedepends=('mercurial') conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('strip' 'staticlibs') -source=($_realname::"hg+http://hg.icculus.org/icculus/SDL_sound" +source=(${_realname}::"hg+http://hg.icculus.org/icculus/SDL_sound" 'pkgconfig.patch' 'physfs-renamed-export.patch' 'no-undefined.patch' @@ -53,7 +53,7 @@ build() { export lt_cv_deplibs_check_method='pass_all' mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/${_realname}/configure \ + ../${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -61,11 +61,11 @@ build() { --enable-shared \ --enable-static \ --disable-mikmod + make } package() { cd ${srcdir}/build-${MINGW_CHOST} - - make DESTDIR="$pkgdir/" install + make DESTDIR="${pkgdir}/" install } diff --git a/mingw-w64-SDL2_ttf/PKGBUILD b/mingw-w64-SDL2_ttf/PKGBUILD index 93d8a5507a..cdda89a06b 100644 --- a/mingw-w64-SDL2_ttf/PKGBUILD +++ b/mingw-w64-SDL2_ttf/PKGBUILD @@ -4,7 +4,7 @@ _realname=SDL2_ttf pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=2.0.12 -pkgrel=2 +pkgrel=3 pkgdesc="A library that allows you to use TrueType fonts in your SDL applications (Version 2)" arch=('any') url="http://www.libsdl.org/projects/SDL_ttf" @@ -20,8 +20,7 @@ build() { mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/${_realname}-${pkgver}/configure \ - --disable-static \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-SDL_gfx/PKGBUILD b/mingw-w64-SDL_gfx/PKGBUILD index e1fad79a4a..4f03e471b7 100644 --- a/mingw-w64-SDL_gfx/PKGBUILD +++ b/mingw-w64-SDL_gfx/PKGBUILD @@ -3,7 +3,7 @@ _realname=SDL_gfx pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=2.0.25 -pkgrel=1 +pkgrel=2 pkgdesc="SDL Graphic Primitives (mingw-w64)" arch=('any') url="http://www.ferzkopp.net/joomla/software-mainmenu-14/4-ferzkopps-linux-software/19-sdlgfx" @@ -14,10 +14,10 @@ source=("http://www.ferzkopp.net/Software/SDL_gfx-2.0/${_realname}-${pkgver}.tar sha1sums=('20a89d0b71b7b790b830c70f17ed2c44100bc0f4') build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}/" - "${srcdir}"/${_realname}-${pkgver}/configure \ - --disable-static \ + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -28,9 +28,9 @@ build() { } package() { - cd "${srcdir}/build-${MINGW_CHOST}/" + cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="${pkgdir}/" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-SDL_image/PKGBUILD b/mingw-w64-SDL_image/PKGBUILD index 20cbd5f87a..29a55331a7 100644 --- a/mingw-w64-SDL_image/PKGBUILD +++ b/mingw-w64-SDL_image/PKGBUILD @@ -3,7 +3,7 @@ _realname=SDL_image pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=1.2.12 -pkgrel=2 +pkgrel=3 pkgdesc=("A simple library to load images of various formats as SDL surfaces (mingw-w64)") arch=('any') url="http://www.libsdl.org/projects/SDL_image" @@ -19,10 +19,10 @@ source=("${url}/release/${_realname}-${pkgver}.tar.gz") sha1sums=('5e3e393d4e366638048bbb10d6a269ea3f4e4cf2') build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}/" - "${srcdir}"/${_realname}-${pkgver}/configure \ - --disable-static \ + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-SDL_ttf/PKGBUILD b/mingw-w64-SDL_ttf/PKGBUILD index 4ff202cb57..89987f5642 100644 --- a/mingw-w64-SDL_ttf/PKGBUILD +++ b/mingw-w64-SDL_ttf/PKGBUILD @@ -3,7 +3,7 @@ _realname=SDL_ttf pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.11 -pkgrel=1 +pkgrel=3 pkgdesc="A library that allows you to use TrueType fonts in your SDL applications (mingw-w64)" arch=('any') url="http://www.libsdl.org/projects/SDL_ttf/" @@ -11,15 +11,14 @@ license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-SDL" "${MINGW_PACKAGE_PREFIX}-freetype") options=('staticlibs' 'strip') -source=(http://www.libsdl.org/projects/SDL_ttf/release/${_realname}-$pkgver.tar.gz - bug1433.patch) -md5sums=('61e29bd9da8d245bc2471d1b2ce591aa' - '52d4ce6ec81588cba9fb9f3ff57a4e92') +source=(http://www.libsdl.org/projects/SDL_ttf/release/${_realname}-${pkgver}.tar.gz) +md5sums=('61e29bd9da8d245bc2471d1b2ce591aa') build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -31,6 +30,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-SDL_ttf/bug1433.patch b/mingw-w64-SDL_ttf/bug1433.patch deleted file mode 100644 index 819fcc4586..0000000000 --- a/mingw-w64-SDL_ttf/bug1433.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/SDL_ttf.c 2012-02-12 16:36:41.859977617 +0100 -+++ b/SDL_ttf.c 2012-02-12 16:36:53.696580159 +0100 -@@ -1747,7 +1747,7 @@ - /* Copy the character from the pixmap */ - src = glyph->pixmap.buffer; - dst = (Uint8*) textbuf->pixels; -- for ( row = 0; row < glyph->bitmap.rows; ++row ) { -+ for ( row = 0; row < glyph->pixmap.rows; ++row ) { - memcpy( dst, src, glyph->pixmap.width ); - src += glyph->pixmap.pitch; - dst += textbuf->pitch; diff --git a/mingw-w64-check/PKGBUILD b/mingw-w64-check/PKGBUILD index b8e6c38832..dfa0c29e98 100644 --- a/mingw-w64-check/PKGBUILD +++ b/mingw-w64-check/PKGBUILD @@ -3,17 +3,18 @@ _realname=check pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.14 -pkgrel=1 +pkgrel=2 pkgdesc="A unit testing framework for C (mingw-w64)" arch=('any') url="http://check.sourceforge.net/" license=("LGPL") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' 'staticlibs') -source=(http://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-$pkgver.tar.gz) +source=(http://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-${pkgver}.tar.gz) md5sums=('38263d115d784c17aa3b959ce94be8b8') build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ diff --git a/mingw-w64-chromaprint/PKGBUILD b/mingw-w64-chromaprint/PKGBUILD index 4b82184596..6f58824af2 100644 --- a/mingw-w64-chromaprint/PKGBUILD +++ b/mingw-w64-chromaprint/PKGBUILD @@ -3,7 +3,7 @@ _realname=chromaprint pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2 -pkgrel=1 +pkgrel=2 pkgdesc="Library that implements a custom algorithm for extracting fingerprints from any audio source (mingw-w64)" arch=('any') url="http://acoustid.org/chromaprint/" @@ -22,23 +22,19 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DWITH_AVFFT=ON \ ../${_realname}-${pkgver} + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install - - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libchromaprint.pc + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-clutter/PKGBUILD b/mingw-w64-clutter/PKGBUILD index 2f7877d7f7..d90d4d55b2 100644 --- a/mingw-w64-clutter/PKGBUILD +++ b/mingw-w64-clutter/PKGBUILD @@ -2,31 +2,29 @@ _realname=clutter pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.22.2 +pkgver=1.23.2 pkgrel=1 -pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces. (mingw-w64)" +pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces (mingw-w64)" arch=('any') url="http://clutter-project.org/" license=("LGPL") -makedepends=('automake' 'libtool' 'intltool' 'itstool' 'gtk-doc' 'gnome-doc-utils' 'yelp-tools') -depends=("${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-atk" - "${MINGW_PACKAGE_PREFIX}-json-glib" - "${MINGW_PACKAGE_PREFIX}-cogl" - ) +makedepends=('automake' 'libtool' 'intltool' 'itstool' 'gtk-doc' 'gnome-doc-utils' 'yelp-tools' + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +depends=("${MINGW_PACKAGE_PREFIX}-gobject-introspection-runtime" + "${MINGW_PACKAGE_PREFIX}-atk" + "${MINGW_PACKAGE_PREFIX}-json-glib" + "${MINGW_PACKAGE_PREFIX}-cogl") options=(!libtool strip staticlibs) - -source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz #"git://git.gnome.org/$_realname#tag=${pkgver}" "0001-msys2-add-header-for-BOOL-defintion.patch" "0002-msys2-add-CC-flags-to-gir-scanner.patch") - -md5sums=('48398ac43d45916eec03abc7a6e4f2ec' +md5sums=('48001c0b7f499cbf07f2b8af1999a2f9' '3a92db8341129b0db058d47f97062f65' '993eabbeb6fa31af855a593956727e6f') prepare() { - cd ${_realname}-$pkgver + cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-msys2-add-header-for-BOOL-defintion.patch patch -p1 -i ${srcdir}/0002-msys2-add-CC-flags-to-gir-scanner.patch autoreconf -fvi @@ -38,12 +36,7 @@ build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - mkdir -p doc/reference/cally/html - cp -rf ../${_realname}-${pkgver}/doc/reference/cally/html/* doc/reference/cally/html - mkdir -p doc/reference/clutter/html - cp -rf ../${_realname}-${pkgver}/doc/reference/clutter/html/* doc/reference/clutter/html - - ../${_realname}-$pkgver/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -51,12 +44,13 @@ build() { --enable-shared \ --enable-silent-rules \ --disable-gtk-doc + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-cogl/PKGBUILD b/mingw-w64-cogl/PKGBUILD index 60e1779f0f..67d9c790a4 100644 --- a/mingw-w64-cogl/PKGBUILD +++ b/mingw-w64-cogl/PKGBUILD @@ -3,15 +3,14 @@ _realname=cogl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.20.0 -pkgrel=1 +pkgrel=2 pkgdesc="An object oriented GL/GLES Abstraction/Utility Layer (mingw-w64)" arch=('any') url="http://www.clutter-project.org/" license=('GPL2') makedepends=('automake' 'libtool' 'intltool' 'itstool' 'gtk-doc' 'gnome-doc-utils' 'yelp-tools') depends=("${MINGW_PACKAGE_PREFIX}-pango" - "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" - ) + "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2") options=(!libtool strip staticlibs) source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz "0001-msys2-fix-introspection-build.patch" @@ -29,7 +28,6 @@ prepare() { } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" @@ -47,5 +45,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-daala-git/0003-missing-include.patch b/mingw-w64-daala-git/0003-missing-include.patch new file mode 100644 index 0000000000..682a0ffd69 --- /dev/null +++ b/mingw-w64-daala-git/0003-missing-include.patch @@ -0,0 +1,10 @@ +--- daala/src/mc.c.orig 2015-07-09 05:02:28.000000000 +0000 ++++ daala/src/mc.c 2015-07-09 12:24:59.844345500 +0000 +@@ -28,6 +28,7 @@ + + #include + #include ++#include + #include "logging.h" + #include "mc.h" + #include "state.h" diff --git a/mingw-w64-daala-git/0004-xp-sp2.all.patch b/mingw-w64-daala-git/0004-xp-sp2.all.patch new file mode 100644 index 0000000000..12ca426ad4 --- /dev/null +++ b/mingw-w64-daala-git/0004-xp-sp2.all.patch @@ -0,0 +1,11 @@ +--- daala-cb5f87b/configure.ac.orig 2015-01-16 05:02:28.000000000 +0000 ++++ daala-cb5f87b/configure.ac 2015-01-18 12:24:59.844345500 +0000 +@@ -52,7 +52,7 @@ + # It's okay to define this even when HTTP support is disabled, as it only + # affects header declarations, not linking (unless we actually use some + # XP-only functions). +- AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x501, ++ AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x502, + [We need at least WindowsXP for getaddrinfo/freaddrinfo]) + host_mingw=true + ;; diff --git a/mingw-w64-daala-git/0005-no-pkg-config-prefix.mingw.patch b/mingw-w64-daala-git/0005-no-pkg-config-prefix.mingw.patch new file mode 100644 index 0000000000..24f5933fca --- /dev/null +++ b/mingw-w64-daala-git/0005-no-pkg-config-prefix.mingw.patch @@ -0,0 +1,27 @@ +--- daala-cc4432e/m4/pkg.m4.orig 2015-04-03 02:08:04.000000000 +0000 ++++ daala-cc4432e/m4/pkg.m4 2015-04-06 12:13:46.678780600 +0000 +@@ -122,9 +122,9 @@ + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then +- $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` ++ $1[]_PKG_ERRORS=`$PKG_CONFIG --dont-define-prefix --short-errors --print-errors --cflags --libs "$2" 2>&1` + else +- $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` ++ $1[]_PKG_ERRORS=`$PKG_CONFIG --dont-define-prefix --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD +--- daala-cc4432e/m4/pkg.m4.orig 2015-04-06 12:17:39.485343300 +0000 ++++ daala-cc4432e/m4/pkg.m4 2015-04-06 12:19:32.115645500 +0000 +@@ -111,8 +111,8 @@ + pkg_failed=no + AC_MSG_CHECKING([for $1]) + +-_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +-_PKG_CONFIG([$1][_LIBS], [libs], [$2]) ++_PKG_CONFIG([$1][_CFLAGS], [cflags --dont-define-prefix], [$2]) ++_PKG_CONFIG([$1][_LIBS], [libs --dont-define-prefix], [$2]) + + m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS + and $1[]_LIBS to avoid the need to call pkg-config. diff --git a/mingw-w64-daala-git/PKGBUILD b/mingw-w64-daala-git/PKGBUILD index c4fc138e3a..6345a4bf1e 100644 --- a/mingw-w64-daala-git/PKGBUILD +++ b/mingw-w64-daala-git/PKGBUILD @@ -2,24 +2,34 @@ _realname=daala pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgdesc="Daala is next-next-gen video compression technology from Xiph.org, Mozilla and others." -pkgver=r1109.07ba88c +pkgdesc="Daala is next-next-gen video compression technology from Xiph.org, Mozilla and others (mingw-w64)" +pkgver=r1373.efb96ed pkgrel=1 arch=('any') url="https://www.xiph.org/daala/" license=('BSD') -makedepends=('git' "${MINGW_PACKAGE_PREFIX}-check") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-check" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "git") depends=("${MINGW_PACKAGE_PREFIX}-libogg" - "${MINGW_PACKAGE_PREFIX}-libpng") + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-SDL2") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('strip' 'staticlibs') source=("${_realname}"::"git+https://git.xiph.org/daala.git" 0001-make-daalabase-public.mingw.patch - 0002-make-daalabase-public.mingw.patch) + 0002-make-daalabase-public.mingw.patch + 0003-missing-include.patch + 0004-xp-sp2.all.patch + 0005-no-pkg-config-prefix.mingw.patch) md5sums=('SKIP' 'b6aae57a2a95c785aa7b94f67c428b51' - '901557d36c62ccebf40d508ad834f157') + '901557d36c62ccebf40d508ad834f157' + '24df25713bb777ea48ba89ec0e4ccee5' + 'cc34a41847702531b0f3291bb51893d0' + '77ffed41ff865827171a6e70c4cd04d0') pkgver() { cd "${srcdir}/${_realname}" @@ -30,12 +40,17 @@ prepare() { cd ${srcdir}/${_realname} patch -p1 -i ${srcdir}/0001-make-daalabase-public.mingw.patch patch -p1 -i ${srcdir}/0002-make-daalabase-public.mingw.patch + patch -p1 -i ${srcdir}/0003-missing-include.patch + patch -p1 -i ${srcdir}/0004-xp-sp2.all.patch + patch -p1 -i ${srcdir}/0005-no-pkg-config-prefix.mingw.patch autoreconf -fi } build() { - mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -45,6 +60,7 @@ build() { --enable-static \ --enable-tools \ --disable-unit-tests + make } diff --git a/mingw-w64-eigen3/PKGBUILD b/mingw-w64-eigen3/PKGBUILD index 48b51efe38..b4134f796d 100644 --- a/mingw-w64-eigen3/PKGBUILD +++ b/mingw-w64-eigen3/PKGBUILD @@ -2,25 +2,32 @@ _realname=eigen pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}3") -pkgver=3.2.4 +pkgver=3.2.5 pkgrel=1 pkgdesc="Lightweight C++ template library for vector and matrix math (mingw-w64)" arch=('any') url='http://eigen.tuxfamily.org' license=('MPL2') options=('strip' 'staticlibs') -depends=("${MINGW_PACKAGE_PREFIX}-recode") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -source=("http://bitbucket.org/eigen/eigen/get/${pkgver}.tar.bz2" +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-fftw" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-mpfr" + #"${MINGW_PACKAGE_PREFIX}-qt4" + ) +source=(${_realname}-${pkgver}.tar.bz2::"http://bitbucket.org/eigen/eigen/get/${pkgver}.tar.bz2" 'eigen-3.1.2_osversion.patch' 'eigen-3.2_gcc58087.patch' 'TryRunResults.cmake' - 'eigen-pkgconfig.patch') -md5sums=('4c4b5ed9a388a1e475166d575af25477' + 'eigen-pkgconfig.patch' + 'eigen-test.patch') +md5sums=('21a928f6e0f1c7f24b6f63ff823593f5' '89587f79971efc8f363d478f48f86829' '1db055c7681799bb21118b2dcf95980a' '67e151de214f29c1e6cf00452916d7d4' - '1add870c05bb4c7bfcb4b739bc895cd4') + 'e07e847d7a87348b554fafe5e14b97ab' + '84d0f7d8967a9b04bf4e0fc7613c0f56') prepare() { cd "${srcdir}"/eigen-eigen-* @@ -28,31 +35,27 @@ prepare() { patch -Np2 -i "${srcdir}/eigen-3.1.2_osversion.patch" patch -Np1 -i "${srcdir}/eigen-3.2_gcc58087.patch" patch -Np1 -i "${srcdir}/eigen-pkgconfig.patch" + patch -Np1 -i "${srcdir}/eigen-test.patch" } build() { - cd ${srcdir}/eigen-eigen-* [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ - -C "$srcdir"/TryRunResults.cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ - -DEIGEN_BUILD_PKGCONFIG:BOOL=ON \ - .. + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DEIGEN_BUILD_PKGCONFIG=ON \ + -DFFTW_USE_STATIC_LIBS=ON \ + -DFFTW_ROOT=${MINGW_PREFIX} \ + -C "${srcdir}"/TryRunResults.cmake \ + ../eigen-eigen-* make } package() { - cd ${srcdir}/eigen-eigen-*/build-${MINGW_CHOST} - - make install - mv ${pkgdir}${MINGW_PREFIX}/share ${pkgdir}${MINGW_PREFIX}/lib - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/eigen3.pc + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-eigen3/eigen-pkgconfig.patch b/mingw-w64-eigen3/eigen-pkgconfig.patch index 4129a49b6a..d39e560426 100644 --- a/mingw-w64-eigen3/eigen-pkgconfig.patch +++ b/mingw-w64-eigen3/eigen-pkgconfig.patch @@ -16,7 +16,24 @@ +Cflags: -I${includedir} --- eigen-eigen-1306d75b4a21/CMakeLists.txt.orig 2014-12-21 00:45:25.606600000 +0300 +++ eigen-eigen-1306d75b4a21/CMakeLists.txt 2014-12-21 00:45:50.519800000 +0300 -@@ -336,7 +336,7 @@ +@@ -92,9 +92,9 @@ + endif() + + option(EIGEN_BUILD_BTL "Build benchmark suite" OFF) +-if(NOT WIN32) ++if(NOT MSVC) + option(EIGEN_BUILD_PKGCONFIG "Build pkg-config .pc file for Eigen" ON) +-endif(NOT WIN32) ++endif(NOT MSVC) + + set(CMAKE_INCLUDE_CURRENT_DIR ON) + +@@ -336,11 +336,11 @@ + SET(pkg_config_install_dir ${pkg_config_libdir}) + message(STATUS "found ${pkg_config_libdir}/pkgconfig" ) + else(pkg_config_libdir) +- SET(pkg_config_install_dir ${CMAKE_INSTALL_PREFIX}/share) ++ SET(pkg_config_install_dir ${CMAKE_INSTALL_PREFIX}/lib) message(STATUS "pkgconfig not found; installing in ${pkg_config_install_dir}" ) endif(pkg_config_libdir) diff --git a/mingw-w64-eigen3/eigen-test.patch b/mingw-w64-eigen3/eigen-test.patch new file mode 100644 index 0000000000..7aaeee219f --- /dev/null +++ b/mingw-w64-eigen3/eigen-test.patch @@ -0,0 +1,11 @@ +--- eigen-eigen-bdd17ee3b1b3/cmake/EigenTesting.cmake.orig 2014-08-04 13:51:54.000000000 +0300 ++++ eigen-eigen-bdd17ee3b1b3/cmake/EigenTesting.cmake 2014-12-21 00:44:50.850000000 +0300 +@@ -324,7 +324,7 @@ + # on all other system we rely on ${CMAKE_CXX_COMPILER} + # supporting a "--version" or "/version" flag + +- if(WIN32 AND NOT CYGWIN) ++ if(WIN32 AND NOT CYGWIN AND NOT MINGW) + set(EIGEN_CXX_FLAG_VERSION "/version") + else() + set(EIGEN_CXX_FLAG_VERSION "--version") diff --git a/mingw-w64-enchant/PKGBUILD b/mingw-w64-enchant/PKGBUILD index 59d203a50d..ff732c81e3 100644 --- a/mingw-w64-enchant/PKGBUILD +++ b/mingw-w64-enchant/PKGBUILD @@ -4,16 +4,16 @@ _realname=enchant pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.0 -pkgrel=7 +pkgrel=8 pkgdesc="Enchanting Spell Checking Library (mingw-w64)" arch=('any') url="http://www.abisource.com/" license=(LGPL2.1) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs - ${MINGW_PACKAGE_PREFIX}-glib2 - #${MINGW_PACKAGE_PREFIX}-aspell - ${MINGW_PACKAGE_PREFIX}-hunspell) + ${MINGW_PACKAGE_PREFIX}-glib2 + #${MINGW_PACKAGE_PREFIX}-aspell + ${MINGW_PACKAGE_PREFIX}-hunspell) options=('!libtool' 'strip' '!debug' '!makeflags') source=("http://www.abisource.com/downloads/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz" 01-relocate.patch @@ -23,7 +23,7 @@ md5sums=('de11011aff801dc61042828041fb59c7' '4fc6176b94518ac1307e4a2173dc64d4') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" # True relocate patch #patch -p1 -i ${srcdir}/01-relocate.patch # Use instead relocate patch @@ -33,11 +33,11 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" - mkdir -p "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" - - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -57,7 +57,7 @@ build() { } package() { - cd "${srcdir}/${_realname}-${pkgver}-build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" # MSYS2_ARG_CONV_EXCL="-DENCHANT_USPELL_DICT_DIR=;-DENCHANT_MYSPELL_DICT_DIR=;-DENCHANT_ISPELL_DICT_DIR=;-DENCHANT_PREFIX_DIR=;-DENCHANT_GLOBAL_MODULE_DIR=;-DENCHANT_GLOBAL_ORDERING=;-DENCHANT_BIN_DIR=" make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 44904ffca8..57f47d7ece 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -3,7 +3,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.7.1 -pkgrel=1 +pkgrel=2 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" @@ -38,7 +38,7 @@ depends=( "${MINGW_PACKAGE_PREFIX}-xvidcore" "${MINGW_PACKAGE_PREFIX}-zlib" ) -makedepends=("yasm" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-yasm") source=(http://ffmpeg.org/releases/${_realname}-${pkgver}.tar.bz2) md5sums=('f159c6d7eed8546b23e1a17325cbf1f8') @@ -47,6 +47,7 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" #CPPFLAGS+=" --save-temps" @@ -91,6 +92,7 @@ build() { --enable-postproc \ --enable-runtime-cpudetect \ --enable-shared \ + --enable-static \ --enable-swresample \ --enable-version3 \ --enable-zlib \ @@ -111,4 +113,6 @@ package() { mv "${pkgdir}${MINGW_PREFIX}"/bin/*.lib "${pkgdir}${MINGW_PREFIX}"/lib/ #find ${pkgdir}${MINGW_PREFIX}/bin -type f -name "*.exe" -exec objcopy --subsystem console {} \; + # rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.def + # rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.lib } diff --git a/mingw-w64-field3d/PKGBUILD b/mingw-w64-field3d/PKGBUILD index 20c8792dd2..13be25bef0 100644 --- a/mingw-w64-field3d/PKGBUILD +++ b/mingw-w64-field3d/PKGBUILD @@ -3,17 +3,19 @@ _realname=field3d pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.3 -pkgrel=2 +pkgrel=1 pkgdesc="Open source library for storing voxel data (mingw-w64)" arch=('any') url="https://sites.google.com/site/field3d/" license=("custom") depends=("${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-hdf5" - "${MINGW_PACKAGE_PREFIX}-openexr") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") + "${MINGW_PACKAGE_PREFIX}-hdf5" + "${MINGW_PACKAGE_PREFIX}-openexr") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' 'buildflags') -source=(https://github.com/imageworks/Field3D/archive/v${pkgver}.tar.gz +source=(${_realname}-${pkgver}.tar.gz::https://github.com/imageworks/Field3D/archive/v${pkgver}.tar.gz cmake-mingw.patch) md5sums=('f76d8537f1d058ede0bcb14fbc09e28c' 'ceaf0f2e8b9afb0b3a3ae117ff2553e4') @@ -21,22 +23,21 @@ md5sums=('f76d8537f1d058ede0bcb14fbc09e28c' prepare() { cd ${srcdir}/Field3D-${pkgver} patch -p1 -i ${srcdir}/cmake-mingw.patch - #patch -p1 -i ${srcdir}/workaround-ansidecl-h-PTR-define-conflict.patch } build() { [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ ../Field3D-${pkgver} make } package() { cd "$srcdir"/build-${MINGW_CHOST} - - make install + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-glib-networking/PKGBUILD b/mingw-w64-glib-networking/PKGBUILD index cdb335fa9d..5f767ed9e5 100644 --- a/mingw-w64-glib-networking/PKGBUILD +++ b/mingw-w64-glib-networking/PKGBUILD @@ -20,7 +20,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-p11-kit" "${MINGW_PACKAGE_PREFIX}-xz") options=('staticlibs' 'strip') -source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz" +source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" 0001-dont-overwrite-prefix-remain-relative.mingw.patch 0001-hack-path.patch 0002-relative-system-ca-file.mingw.patch) @@ -30,7 +30,7 @@ md5sums=('6989b20cf3b26dd5ae272e04a9acb0b3' 'b96895469c4dc36e172056763aa0d014') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" #patch -p1 -i ${srcdir}/0001-dont-overwrite-prefix-remain-relative.mingw.patch patch -p1 -i ${srcdir}/0001-hack-path.patch patch -p1 -i ${srcdir}/0002-relative-system-ca-file.mingw.patch @@ -42,7 +42,7 @@ build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd build-${MINGW_CHOST} - ../${_realname}-$pkgver/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -56,6 +56,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install rm -f ${pkgdir}${MINGW_PREFIX}/lib/gio/modules/*.a } diff --git a/mingw-w64-gsl/PKGBUILD b/mingw-w64-gsl/PKGBUILD index 99ce70ae47..90f9432ecf 100644 --- a/mingw-w64-gsl/PKGBUILD +++ b/mingw-w64-gsl/PKGBUILD @@ -1,30 +1,32 @@ # Maintainer: Alexey Pavlov _realname=gsl - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.16 -pkgrel=2 +pkgrel=3 pkgdesc="The GNU Scientific Library (GSL) is a modern numerical library for C and C++ programmers (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gsl/gsl.html" license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('staticlibs' 'strip') -source=("http://mirror.ibcp.fr/pub/gnu/gsl/gsl-$pkgver.tar.gz") +source=("http://mirror.ibcp.fr/pub/gnu/gsl/${_realname}-${pkgver}.tar.gz") md5sums=('e49a664db13d81c968415cd53f62bc8b') build() { - cd "$srcdir/gsl-$pkgver" - mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - ../configure \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} - make + + make } package() { - cd "${srcdir}/gsl-${pkgver}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-gst-plugins-base/PKGBUILD b/mingw-w64-gst-plugins-base/PKGBUILD index 6a06c86f99..3d69ec6954 100644 --- a/mingw-w64-gst-plugins-base/PKGBUILD +++ b/mingw-w64-gst-plugins-base/PKGBUILD @@ -3,24 +3,24 @@ _realname=gst-plugins-base pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.5 -pkgrel=1 +pkgrel=2 pkgdesc="GStreamer Multimedia Framework Base Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" ) depends=("${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-libvorbis" - "${MINGW_PACKAGE_PREFIX}-libtheora" - "${MINGW_PACKAGE_PREFIX}-libvorbisidec" - "${MINGW_PACKAGE_PREFIX}-pango" - #"${MINGW_PACKAGE_PREFIX}-libvisual" - #"${MINGW_PACKAGE_PREFIX}-cdparanoia" - "${MINGW_PACKAGE_PREFIX}-gstreamer" - "${MINGW_PACKAGE_PREFIX}-orc" + "${MINGW_PACKAGE_PREFIX}-libvorbis" + "${MINGW_PACKAGE_PREFIX}-libtheora" + "${MINGW_PACKAGE_PREFIX}-libvorbisidec" + "${MINGW_PACKAGE_PREFIX}-pango" + #"${MINGW_PACKAGE_PREFIX}-libvisual" + #"${MINGW_PACKAGE_PREFIX}-cdparanoia" + "${MINGW_PACKAGE_PREFIX}-gstreamer" + "${MINGW_PACKAGE_PREFIX}-orc" ) options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz @@ -51,11 +51,10 @@ prepare() { } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ./configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -69,7 +68,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a } diff --git a/mingw-w64-gst-plugins-good/PKGBUILD b/mingw-w64-gst-plugins-good/PKGBUILD index 1dc5e90c3d..fce40d6a10 100644 --- a/mingw-w64-gst-plugins-good/PKGBUILD +++ b/mingw-w64-gst-plugins-good/PKGBUILD @@ -3,27 +3,27 @@ _realname=gst-plugins-good pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.5 -pkgrel=1 +pkgrel=2 pkgdesc="GStreamer Multimedia Framework Base Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-python2" ) depends=("${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-flac" - "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" - "${MINGW_PACKAGE_PREFIX}-gstreamer" - "${MINGW_PACKAGE_PREFIX}-gst-plugins-base" - "${MINGW_PACKAGE_PREFIX}-libcaca" - "${MINGW_PACKAGE_PREFIX}-libshout" - "${MINGW_PACKAGE_PREFIX}-libsoup" - "${MINGW_PACKAGE_PREFIX}-libvpx" - "${MINGW_PACKAGE_PREFIX}-speex" - "${MINGW_PACKAGE_PREFIX}-taglib" - "${MINGW_PACKAGE_PREFIX}-wavpack" + "${MINGW_PACKAGE_PREFIX}-flac" + "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" + "${MINGW_PACKAGE_PREFIX}-gstreamer" + "${MINGW_PACKAGE_PREFIX}-gst-plugins-base" + "${MINGW_PACKAGE_PREFIX}-libcaca" + "${MINGW_PACKAGE_PREFIX}-libshout" + "${MINGW_PACKAGE_PREFIX}-libsoup" + "${MINGW_PACKAGE_PREFIX}-libvpx" + "${MINGW_PACKAGE_PREFIX}-speex" + "${MINGW_PACKAGE_PREFIX}-taglib" + "${MINGW_PACKAGE_PREFIX}-wavpack" ) options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz @@ -42,11 +42,11 @@ prepare() { } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + #cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ./configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -55,12 +55,13 @@ build() { --enable-silent-rules \ --enable-experimental \ --disable-gtk-doc + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a } diff --git a/mingw-w64-gstreamer/PKGBUILD b/mingw-w64-gstreamer/PKGBUILD index 9533514bdb..58c5e6ad16 100644 --- a/mingw-w64-gstreamer/PKGBUILD +++ b/mingw-w64-gstreamer/PKGBUILD @@ -3,25 +3,24 @@ _realname=gstreamer pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.5 -pkgrel=1 +pkgrel=2 pkgdesc="GStreamer Multimedia Framework (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "intltool" - "gtk-doc" - "flex" - "bison" - ) + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "intltool" + "gtk-doc" + "flex" + "bison") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-gmp" - "${MINGW_PACKAGE_PREFIX}-gsl") + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-gmp" + "${MINGW_PACKAGE_PREFIX}-gsl") options=(!libtool strip staticlibs) source=("${url}/src/gstreamer/gstreamer-${pkgver}.tar.xz" 'give-cc-to-gir-scanner.mingw.patch' @@ -46,11 +45,11 @@ build() { fi [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" - #mkdir -p "${srcdir}/build-${MINGW_CHOST}" + #cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - export PKG_CONFIG_EXPAND_PATHS=1 - ./configure \ + + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -63,12 +62,13 @@ build() { --enable-check \ --disable-silent-rules \ "${extra_config[@]}" + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a } diff --git a/mingw-w64-hdf5/PKGBUILD b/mingw-w64-hdf5/PKGBUILD index 1235175c50..c6acec4bd6 100644 --- a/mingw-w64-hdf5/PKGBUILD +++ b/mingw-w64-hdf5/PKGBUILD @@ -3,22 +3,24 @@ _realname=hdf5 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.8.14 +_ver=1.8.15 +patch=-patch1 +pkgver=${_ver}${patch//-/.} pkgrel=1 pkgdesc="General purpose library and file format for storing scientific data" arch=('any') url="http://www.hdfgroup.org/HDF5/" -source=("http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-${pkgver}/src/hdf5-${pkgver}.tar.bz2" +source=("http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-${_ver}${patch}/src/hdf5-${_ver}${patch}.tar.bz2" "hdf5-link-ws2_32-mingw.patch" "hdf5-default-import-suffix.patch" "hdf5-install.patch" "hdf5-fix-install-docs.patch" ) -md5sums=('4e31a751ef12f5958e23e4ee548c4ca5' - '35e0198f4ed456ee5673c23a06aa5eb6' +md5sums=('3c0d7a8c38d1abc7b40fc12c1d5f2bb8' + 'a7521a2d777df6cb971d646720f353a9' '4a9a46e98db4a6ed68e0dd2d3e2cf4ac' 'f08826ac66e319190a01d3f82a692c0e' - '44ac9317cb413eca5ed506033fd3b676') + '45267f00ae4feca9862de19f68f487d0') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran" "${MINGW_PACKAGE_PREFIX}-szip" @@ -30,7 +32,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('staticlibs' 'strip') prepare() { - cd ${srcdir}/${_realname}-${pkgver} + cd ${srcdir}/${_realname}-${_ver}${patch} patch -p1 -i ${srcdir}/hdf5-link-ws2_32-mingw.patch patch -p1 -i ${srcdir}/hdf5-install.patch patch -p1 -i ${srcdir}/hdf5-default-import-suffix.patch @@ -53,9 +55,11 @@ prepare() { build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_SKIP_RPATH=ON \ @@ -66,11 +70,11 @@ build() { -DHDF5_ENABLE_DEPRECATED_SYMBOLS=ON \ -DHDF5_ENABLE_SZIP_SUPPORT=ON \ -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \ - ../${_realname}-${pkgver} + ../${_realname}-${_ver}${patch} make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 install + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-hdf5/hdf5-fix-install-docs.patch b/mingw-w64-hdf5/hdf5-fix-install-docs.patch index 00c233a94b..0474279a12 100644 --- a/mingw-w64-hdf5/hdf5-fix-install-docs.patch +++ b/mingw-w64-hdf5/hdf5-fix-install-docs.patch @@ -14,7 +14,7 @@ install ( FILES ${release_files} - DESTINATION ${HDF5_INSTALL_DATA_DIR} -+ DESTINATION ${HDF5_INSTALL_DATA_DIR}/doc/hdf5 ++ DESTINATION ${HDF5_INSTALL_DATA_DIR}/doc/hdf5 COMPONENT hdfdocuments ) endif (EXISTS "${HDF5_SOURCE_DIR}/release_docs" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/release_docs") diff --git a/mingw-w64-hdf5/hdf5-link-ws2_32-mingw.patch b/mingw-w64-hdf5/hdf5-link-ws2_32-mingw.patch index ec8ae0e09e..851fd87eb1 100644 --- a/mingw-w64-hdf5/hdf5-link-ws2_32-mingw.patch +++ b/mingw-w64-hdf5/hdf5-link-ws2_32-mingw.patch @@ -4,7 +4,7 @@ diff -ur hdf5-1.8.12.orig/src/CMakeLists.txt hdf5-1.8.12/src/CMakeLists.txt @@ -615,9 +615,11 @@ #----------------------------------------------------------------------------- add_executable (H5detect ${HDF5_SRC_DIR}/H5detect.c) - TARGET_C_PROPERTIES (H5detect " " " ") + TARGET_C_PROPERTIES (H5detect STATIC " " " ") -if (MSVC OR MINGW) +if (MSVC) target_link_libraries (H5detect "ws2_32.lib") @@ -18,7 +18,7 @@ diff -ur hdf5-1.8.12.orig/src/CMakeLists.txt hdf5-1.8.12/src/CMakeLists.txt @@ -629,9 +629,11 @@ add_executable (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c) - TARGET_C_PROPERTIES (H5make_libsettings " " " ") + TARGET_C_PROPERTIES (H5make_libsettings STATIC " " " ") -if (MSVC OR MINGW) +if (MSVC) target_link_libraries (H5make_libsettings "ws2_32.lib") diff --git a/mingw-w64-hunspell/PKGBUILD b/mingw-w64-hunspell/PKGBUILD index 75557f3e21..28dfab668a 100644 --- a/mingw-w64-hunspell/PKGBUILD +++ b/mingw-w64-hunspell/PKGBUILD @@ -5,7 +5,7 @@ _realname=hunspell pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.3 -pkgrel=9 +pkgrel=10 pkgdesc="Spell checker and morphological analyzer library and program (mingw-w64)" arch=('any') url="http://hunspell.sourceforge.net/" @@ -15,9 +15,9 @@ license=(GPL2+ LGPL2.1+) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs - ${MINGW_PACKAGE_PREFIX}-gettext) + ${MINGW_PACKAGE_PREFIX}-gettext) options=('!libtool' 'strip' '!debug') -source=("http://download.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.gz" +source=("http://download.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" "hunspell-1.3.2-canonicalhost.patch" "hunspell-1.3.3-exit-on-MAX_PREFIXES_SUFFIXES.patch" "hunspell-1.3.3-inc-MAX_PREFIXES_SUFFIXES-to-2048.patch" @@ -31,7 +31,7 @@ md5sums=('4967da60b23413604c9e563beacc63b4' '7d59a4f3c4c2f6b40cba5c54072cbd67') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -Np1 -i "$srcdir"/hunspell-1.3.2-canonicalhost.patch patch -Np1 -i "$srcdir"/hunspell-1.3.3-exit-on-MAX_PREFIXES_SUFFIXES.patch patch -Np1 -i "$srcdir"/hunspell-1.3.3-inc-MAX_PREFIXES_SUFFIXES-to-2048.patch @@ -42,11 +42,11 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" - mkdir -p "${srcdir}/build-${CARCH}" - cd "${srcdir}/build-${CARCH}" - - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -61,7 +61,7 @@ build() { } package() { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" MSYS2_ARG_CONV_EXCL="-DBINDIR=;-DDATA_DIR=" \ make DESTDIR="${pkgdir}" install cp ${pkgdir}${MINGW_PREFIX}/lib/lib${_realname}-${pkgver%.*}.dll.a ${pkgdir}${MINGW_PREFIX}/lib/lib${_realname}.dll.a diff --git a/mingw-w64-ilmbase/PKGBUILD b/mingw-w64-ilmbase/PKGBUILD index e5b0f38aaf..9a4e1ee2c3 100644 --- a/mingw-w64-ilmbase/PKGBUILD +++ b/mingw-w64-ilmbase/PKGBUILD @@ -3,12 +3,12 @@ _realname=ilmbase pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.2.0 -pkgrel=1 +pkgrel=2 pkgdesc="Base libraries from ILM for OpenEXR (mingw-w64)" arch=('any') url="http://http://www.openexr.com/" license=("custom") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "libtool") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://download.savannah.nongnu.org/releases/openexr/${_realname}-${pkgver}.tar.gz" @@ -26,24 +26,26 @@ md5sums=('b540db502c5fa42078249f43d18a4652' 'baaa4fa9467969a611c70e62efa1fe6b' '20447d0f67bbcd7b98d51fd0c37dabec') prepare(){ - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" # Use either one or the other of the ilmthread patches # depending on the sort of threads that you want. - # patch -Np1 -i "$srcdir/ilmthread-mingw-win32.patch" - patch -Np1 -i "$srcdir/ilmthread-mingw-pthreads.patch" - patch -Np1 -i "$srcdir/ilmbase-2.1.0_obsolete-macros.patch" - patch -Np1 -i "$srcdir/cmake-soversion.patch" - patch -Np1 -i "$srcdir/cmake-install-binaries.patch" - patch -Np2 -i "$srcdir/pull93.patch" - #./bootstrap + # patch -p1 -i "${srcdir}/ilmthread-mingw-win32.patch" + patch -p1 -i "${srcdir}/ilmthread-mingw-pthreads.patch" + patch -p1 -i "${srcdir}/ilmbase-2.1.0_obsolete-macros.patch" + patch -p1 -i "${srcdir}/cmake-soversion.patch" + patch -p1 -i "${srcdir}/cmake-install-binaries.patch" + patch -p2 -i "${srcdir}/pull93.patch" } build() { - mkdir build-${CARCH} - cd build-${CARCH} + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBUILD_SHARED_LIBS=ON \ -DNAMESPACE_VERSIONING=ON \ ../${_realname}-${pkgver} @@ -52,12 +54,6 @@ build() { } package() { - cd "${srcdir}/build-${CARCH}" - make install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/IlmBase.pc + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-intel-tbb/PKGBUILD b/mingw-w64-intel-tbb/PKGBUILD index 02c1934b48..5d0b508880 100644 --- a/mingw-w64-intel-tbb/PKGBUILD +++ b/mingw-w64-intel-tbb/PKGBUILD @@ -2,7 +2,7 @@ _realname=intel-tbb pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.3_20150209 +pkgver=4.3_20150611 pkgrel=1 pkgdesc='High level abstract threading library (mingw-w64)' depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") @@ -11,9 +11,9 @@ options=('!strip' 'staticlibs') arch=('any') url='http://www.threadingbuildingblocks.org/' license=('GPL') -source=("http://threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb${pkgver/\./}oss_src.tgz" +source=(https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb${pkgver//./}oss_src.tgz 'tbb-disable_windows_api.patch') -sha1sums=('cb17bee2a9c98a2b98f3ff16208c1c1fae29e6ab' +sha1sums=('5457cd15ad13625442283e67844199a79e88a3a4' '13784f69be6915a0e9d751bfa5b6cc0166449ac7') prepare () { diff --git a/mingw-w64-libblueray/PKGBUILD b/mingw-w64-libblueray/PKGBUILD index 72cbba663d..8b8f8aa50b 100644 --- a/mingw-w64-libblueray/PKGBUILD +++ b/mingw-w64-libblueray/PKGBUILD @@ -2,7 +2,7 @@ _realname=libbluray pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.8.0 +pkgver=0.8.1 pkgrel=1 pkgdesc='Library to access Blu-Ray disks for video playback (mingw-w64)' arch=('any') @@ -10,10 +10,12 @@ url='http://www.videolan.org/developers/libbluray.html' license=('LGPL2.1') depends=("${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-freetype") options=('strip' 'staticlibs') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -source=(ftp://ftp.videolan.org/pub/videolan/libbluray/$pkgver/${_realname}-$pkgver.tar.bz2 +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +source=(ftp://ftp.videolan.org/pub/videolan/libbluray/${pkgver}/${_realname}-${pkgver}.tar.bz2 no-undefined.patch) -md5sums=('bd2b8684d5afd17dc270f19eb1a5bb9a' +md5sums=('c7a89966ad091fa6075a58d31a698e70' 'abefd822b6db0a042640e9a6dda06254') prepare() { @@ -28,17 +30,18 @@ build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" export lt_cv_deplibs_check_method='pass_all' - ../${_realname}-$pkgver/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-examples \ --disable-bdjava + make } package() { cd ${srcdir}/build-${MINGW_CHOST} - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libcaca/PKGBUILD b/mingw-w64-libcaca/PKGBUILD index 68d6d46fa8..09781114d9 100644 --- a/mingw-w64-libcaca/PKGBUILD +++ b/mingw-w64-libcaca/PKGBUILD @@ -1,24 +1,22 @@ # Maintainer: Alexey Pavlov _realname=libcaca - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.99.beta19 -pkgrel=1 +pkgrel=2 pkgdesc="Color AsCii Art library (mingw-w64)" arch=('any') url="http://caca.zoy.org/wiki/libcaca" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - #"${MINGW_PACKAGE_PREFIX}-ncurses" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-ruby" - ) -depends=("${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + #"${MINGW_PACKAGE_PREFIX}-ncurses" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-ruby") +depends=("${MINGW_PACKAGE_PREFIX}-cppunit" "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-cppunit") + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-zlib") options=(!libtool strip staticlibs) source=(http://libcaca.zoy.org/files/libcaca/${_realname}-${pkgver}.tar.gz 0001-win32-is-not-msvc-it-could-be.mingw.patch @@ -45,22 +43,21 @@ prepare() { } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - ./configure \ + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-static \ --enable-shared \ --disable-ncurses + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-libdvdcss/PKGBUILD b/mingw-w64-libdvdcss/PKGBUILD index 6ce9cf604d..6db8edb561 100644 --- a/mingw-w64-libdvdcss/PKGBUILD +++ b/mingw-w64-libdvdcss/PKGBUILD @@ -2,29 +2,42 @@ _realname=libdvdcss pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.0 +pkgver=1.3.99 pkgrel=1 pkgdesc="Portable abstraction library for DVD decryption (mingw-w64)" arch=('any') url="http://www.videolan.org/libdvdcss" license=("GPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') -source=("http://download.videolan.org/pub/${_realname}/$pkgver/${_realname}-$pkgver.tar.bz2") -sha256sums=('7c414acd520c4e4dd7267952f72d738ff50321a7869af4d75c65aefad44f1395') +source=(#"http://download.videolan.org/pub/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.bz2" + "${_realname}-${pkgver}"::"git://git.videolan.org/${_realname}.git#tag=${pkgver}") +sha256sums=('SKIP') + +prepare() { + cd ${srcdir}/${_realname}-${pkgver} + autoreconf -fi +} build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + #mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-$pkgver/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} + --host=${MINGW_CHOST} \ + --disable-doc + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libdvdnav/PKGBUILD b/mingw-w64-libdvdnav/PKGBUILD index 2fc63c68b2..063dbe9e0f 100644 --- a/mingw-w64-libdvdnav/PKGBUILD +++ b/mingw-w64-libdvdnav/PKGBUILD @@ -2,16 +2,19 @@ _realname=libdvdnav pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.0.1 +pkgver=5.0.3 pkgrel=1 pkgdesc="The library for xine-dvdnav plugin (mingw-w64)" arch=('any') url="http://dvdnav.mplayerhq.hu/" license=("GPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "git") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git") depends=("${MINGW_PACKAGE_PREFIX}-libdvdread") options=('staticlibs' 'strip') -source=("${_realname}-${pkgver}"::"git://git.videolan.org/libdvdnav.git#tag=$pkgver" +source=("${_realname}-${pkgver}"::"git://git.videolan.org/${_realname}.git#tag=${pkgver}" #"http://dvdnav.mplayerhq.hu/releases/${_realname}-${pkgver}.tar.xz" 001-no-undefined.patch) sha256sums=('SKIP' @@ -24,17 +27,20 @@ prepare() { } build() { - cd "${srcdir}/${_realname}-$pkgver" - ./configure \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --enable-static + --enable-static \ + --disable-doc make } package() { - cd "${srcdir}/${_realname}-$pkgver" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libdvdread/PKGBUILD b/mingw-w64-libdvdread/PKGBUILD index 2960425354..6325a77d20 100644 --- a/mingw-w64-libdvdread/PKGBUILD +++ b/mingw-w64-libdvdread/PKGBUILD @@ -2,16 +2,21 @@ _realname=libdvdread pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.0.0 +pkgver=5.0.3 pkgrel=1 pkgdesc="Provides a simple foundation for reading DVD video disks (mingw-w64)" arch=('any') url="http://dvdnav.mplayerhq.hu" license=("GPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "git") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git") depends=("${MINGW_PACKAGE_PREFIX}-libdvdcss") options=('staticlibs' 'strip') -source=("${_realname}-${pkgver}"::"git://git.videolan.org/libdvdread.git#tag=$pkgver" +source=(#"http://download.videolan.org/pub/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.bz2" + #ftp://ftp.videolan.org/pub/videolan/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.bz2 + "${_realname}-${pkgver}"::"git://git.videolan.org/${_realname}.git#tag=${pkgver}" 0001-no-undefined-on.all.patch) sha256sums=('SKIP' '0a9664cce3a2e001445d150edfe5d8f06f3ca0d1affb91b50b1b5bde90c2713e') @@ -19,24 +24,27 @@ sha256sums=('SKIP' prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-no-undefined-on.all.patch - autoreconf -fi } build() { - cd "${srcdir}/${_realname}-$pkgver" - ./configure \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ --enable-static \ --disable-dlfcn \ - --with-libdvdcss + --with-libdvdcss \ + --disable-doc + make } package() { - cd "${srcdir}/${_realname}-$pkgver" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libexif/PKGBUILD b/mingw-w64-libexif/PKGBUILD index c51c89bc7b..b2ba1a5859 100644 --- a/mingw-w64-libexif/PKGBUILD +++ b/mingw-w64-libexif/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libexif - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.6.21 -pkgrel=2 +pkgrel=3 pkgdesc="A library to parse an EXIF file and read the data from those tags (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/libexif" @@ -16,21 +15,23 @@ source=("http://downloads.sf.net/sourceforge/libexif/libexif-${pkgver}.tar.bz2") md5sums=('27339b89850f28c8f1c237f233e05b27') build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --disable-docs \ --enable-shared \ - --disable-static + --enable-static + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-libgme/PKGBUILD b/mingw-w64-libgme/PKGBUILD index 22cd32c661..ab5751b8ed 100644 --- a/mingw-w64-libgme/PKGBUILD +++ b/mingw-w64-libgme/PKGBUILD @@ -6,15 +6,15 @@ pkgver=0.6.0 pkgrel=1 pkgdesc="Video game music file emulation/playback library (mingw-w64)" arch=('any') -url="http://game-music-emu.googlecode.com/" +url="https://bitbucket.org/mpyne/game-music-emu/wiki/Home" license=('LGPL') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkgconf" + "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-cmake" ) options=('strip' '!emptydirs') -source=("https://game-music-emu.googlecode.com/files/game-music-emu-${pkgver}.tar.bz2") +source=("https://bitbucket.org/mpyne/game-music-emu/downloads/game-music-emu-${pkgver}.tar.bz2") md5sums=('b98fafb737bc889dc65e7a8b94bd1bf5') prepare() { @@ -22,12 +22,14 @@ prepare() { } build() { - mkdir $srcdir/build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ ../game-music-emu-${pkgver} @@ -36,11 +38,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libgme.pc + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libmimic/PKGBUILD b/mingw-w64-libmimic/PKGBUILD index f35a1aa181..aa3c8e06e0 100644 --- a/mingw-w64-libmimic/PKGBUILD +++ b/mingw-w64-libmimic/PKGBUILD @@ -1,15 +1,14 @@ # Maintainer: Alexey Pavlov _realname=libmimic - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.4 -pkgrel=1 +pkgrel=2 pkgdesc="An open source video encoding/decoding library for Mimic V2.x (mingw-w64)" arch=('any') url="ttp://farsight.sourceforge.net" license=("LGPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-doxygen") depends=("${MINGW_PACKAGE_PREFIX}-glib2") options=('strip' 'staticlibs') source=("http://downloads.sourceforge.net/sourceforge/farsight/${_realname}-${pkgver}.tar.gz" @@ -22,27 +21,33 @@ md5sums=('94f0dbb1d3c253201553a4069555fb84' 'e7eedf26c42f266010ef18d4498e2c33') prepare() { - cd "$srcdir/${_realname}-${pkgver}" - patch -p1 -i "$srcdir"/0001-update-ac-and-silent-rules.mingw.patch - patch -p1 -i "$srcdir"/0002-no-undefined.mingw.patch - patch -p1 -i "$srcdir"/0003-link-to-glib.mingw.patch + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i "${srcdir}"/0001-update-ac-and-silent-rules.mingw.patch + patch -p1 -i "${srcdir}"/0002-no-undefined.mingw.patch + patch -p1 -i "${srcdir}"/0003-link-to-glib.mingw.patch WANT_AUTOMAKE=latest autoreconf -fi } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ --enable-static + + cd doc + ${MINGW_PREFIX}/bin/doxygen -u + cd .. + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libmodplug/PKGBUILD b/mingw-w64-libmodplug/PKGBUILD index 44888cf56b..0565c6120c 100644 --- a/mingw-w64-libmodplug/PKGBUILD +++ b/mingw-w64-libmodplug/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libmodplug - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.8.8.5 -pkgrel=2 +pkgrel=3 pkgdesc="A MOD playing library (mingw-w64)" arch=('any') url="http://modplug-xmms.sourceforge.net/" @@ -26,6 +25,7 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ @@ -35,6 +35,7 @@ build() { --target=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } diff --git a/mingw-w64-libshout/PKGBUILD b/mingw-w64-libshout/PKGBUILD index b482a512df..1a0fd7ba6b 100644 --- a/mingw-w64-libshout/PKGBUILD +++ b/mingw-w64-libshout/PKGBUILD @@ -3,7 +3,7 @@ _realname=libshout pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.3.1 -pkgrel=1 +pkgrel=2 pkgdesc="Library for accessing a shoutcast/icecast server (mingw-w64)" arch=("any") url="http://www.icecast.org/" @@ -35,10 +35,9 @@ prepare() { } build() { - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - #cd ${_realname}-${pkgver} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -46,6 +45,7 @@ build() { --target=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } diff --git a/mingw-w64-libsoup/0002-fix-keyword-conflict.patch b/mingw-w64-libsoup/0002-fix-keyword-conflict.patch deleted file mode 100644 index c90c0d9a2a..0000000000 --- a/mingw-w64-libsoup/0002-fix-keyword-conflict.patch +++ /dev/null @@ -1,62 +0,0 @@ -diff -Naur libsoup-2.48.0-orig/libsoup/soup-cache.c libsoup-2.48.0/libsoup/soup-cache.c ---- libsoup-2.48.0-orig/libsoup/soup-cache.c 2014-09-23 03:02:43.000000000 +0500 -+++ libsoup-2.48.0/libsoup/soup-cache.c 2014-09-23 15:15:23.836600000 +0500 -@@ -51,7 +51,7 @@ - static void soup_cache_session_feature_init (SoupSessionFeatureInterface *feature_interface, gpointer interface_data); - - static SoupContentProcessorInterface *soup_cache_default_content_processor_interface; --static void soup_cache_content_processor_init (SoupContentProcessorInterface *interface, gpointer interface_data); -+static void soup_cache_content_processor_init (SoupContentProcessorInterface *interface_name, gpointer interface_data); - - #define DEFAULT_MAX_SIZE 50 * 1024 * 1024 - #define MAX_ENTRY_DATA_PERCENTAGE 10 /* Percentage of the total size -diff -Naur libsoup-2.48.0-orig/libsoup/soup-content-decoder.c libsoup-2.48.0/libsoup/soup-content-decoder.c ---- libsoup-2.48.0-orig/libsoup/soup-content-decoder.c 2014-06-18 19:42:51.000000000 +0500 -+++ libsoup-2.48.0/libsoup/soup-content-decoder.c 2014-09-23 15:15:43.508200000 +0500 -@@ -59,7 +59,7 @@ - static void soup_content_decoder_session_feature_init (SoupSessionFeatureInterface *feature_interface, gpointer interface_data); - - static SoupContentProcessorInterface *soup_content_decoder_default_content_processor_interface; --static void soup_content_decoder_content_processor_init (SoupContentProcessorInterface *interface, gpointer interface_data); -+static void soup_content_decoder_content_processor_init (SoupContentProcessorInterface *interface_name, gpointer interface_data); - - - G_DEFINE_TYPE_WITH_CODE (SoupContentDecoder, soup_content_decoder, G_TYPE_OBJECT, -diff -Naur libsoup-2.48.0-orig/libsoup/soup-content-processor.c libsoup-2.48.0/libsoup/soup-content-processor.c ---- libsoup-2.48.0-orig/libsoup/soup-content-processor.c 2014-06-18 19:42:51.000000000 +0500 -+++ libsoup-2.48.0/libsoup/soup-content-processor.c 2014-09-23 15:16:35.081800000 +0500 -@@ -11,7 +11,7 @@ - #include "soup-content-processor.h" - #include "soup.h" - --static void soup_content_processor_default_init (SoupContentProcessorInterface *interface); -+static void soup_content_processor_default_init (SoupContentProcessorInterface *interface_name); - - G_DEFINE_INTERFACE (SoupContentProcessor, soup_content_processor, G_TYPE_OBJECT) - -@@ -25,10 +25,10 @@ - } - - static void --soup_content_processor_default_init (SoupContentProcessorInterface *interface) -+soup_content_processor_default_init (SoupContentProcessorInterface *interface_name) - { -- interface->processing_stage = SOUP_STAGE_INVALID; -- interface->wrap_input = soup_content_processor_real_wrap_input; -+ interface_name->processing_stage = SOUP_STAGE_INVALID; -+ interface_name->wrap_input = soup_content_processor_real_wrap_input; - } - - GInputStream * -diff -Naur libsoup-2.48.0-orig/libsoup/soup-content-sniffer.c libsoup-2.48.0/libsoup/soup-content-sniffer.c ---- libsoup-2.48.0-orig/libsoup/soup-content-sniffer.c 2014-06-18 19:42:51.000000000 +0500 -+++ libsoup-2.48.0/libsoup/soup-content-sniffer.c 2014-09-23 15:16:58.232200000 +0500 -@@ -38,7 +38,7 @@ - static void soup_content_sniffer_session_feature_init (SoupSessionFeatureInterface *feature_interface, gpointer interface_data); - - static SoupContentProcessorInterface *soup_content_sniffer_default_content_processor_interface; --static void soup_content_sniffer_content_processor_init (SoupContentProcessorInterface *interface, gpointer interface_data); -+static void soup_content_sniffer_content_processor_init (SoupContentProcessorInterface *interface_name, gpointer interface_data); - - - G_DEFINE_TYPE_WITH_CODE (SoupContentSniffer, soup_content_sniffer, G_TYPE_OBJECT, diff --git a/mingw-w64-libsoup/PKGBUILD b/mingw-w64-libsoup/PKGBUILD index 8a0ae7e9aa..d6a6e1fcf8 100644 --- a/mingw-w64-libsoup/PKGBUILD +++ b/mingw-w64-libsoup/PKGBUILD @@ -2,32 +2,32 @@ _realname=libsoup pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.50.0 +pkgver=2.51.3 pkgrel=1 pkgdesc="HTTP client/server library (mingw-w64)" arch=(any) url="http://ftp.gnome.org/pub/GNOME/sources/libsoup" license=("LGPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "intltool") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "intltool") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-sqlite3" - "${MINGW_PACKAGE_PREFIX}-glib-networking") + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-glib-networking") options=('staticlibs' 'strip') -source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz" +source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" 0001-give-cc-to-gir-scanner.mingw.patch - 0002-fix-keyword-conflict.patch 0004-localedir-fix.patch) -md5sums=('9a84d66e1b7ccd3bd340574b11eccc15' +md5sums=('0a08e41c112ef52d9e66ccdfa95887c5' 'a1ddc19ab3f73bbddda1d41a6a7de399' - '48305a9372aa62df66f49271ce3eebb9' 'ee2cc56c1448c32020288c817b81ff7f') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.mingw.patch - patch -p1 -i ${srcdir}/0002-fix-keyword-conflict.patch patch -p1 -i ${srcdir}/0004-localedir-fix.patch autoreconf -fi } @@ -49,5 +49,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libtheora/PKGBUILD b/mingw-w64-libtheora/PKGBUILD index 9341b08414..dec806cc33 100644 --- a/mingw-w64-libtheora/PKGBUILD +++ b/mingw-w64-libtheora/PKGBUILD @@ -3,7 +3,7 @@ _realname=libtheora pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.1 -pkgrel=2 +pkgrel=3 pkgdesc="An open video codec developed by the Xiph.org (mingw-w64)" arch=('any') url="http://xiph.org" @@ -28,18 +28,19 @@ prepare() { } build() { - mkdir -p $srcdir/build-$MINGW_CHOST - cd "$srcdir/build-$MINGW_CHOST" - ../$_realname-$pkgver/configure \ + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-$MINGW_CHOST + cd "${srcdir}/build-$MINGW_CHOST" + ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} - make -j1 + make } package() { - cd "$srcdir/build-$MINGW_CHOST" + cd "${srcdir}/build-$MINGW_CHOST" make install DESTDIR="${pkgdir}" } diff --git a/mingw-w64-libvorbisidec-svn/PKGBUILD b/mingw-w64-libvorbisidec-svn/PKGBUILD index 9e9cdc98e3..ed53bfec7c 100644 --- a/mingw-w64-libvorbisidec-svn/PKGBUILD +++ b/mingw-w64-libvorbisidec-svn/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _revision= _fragment= [[ -n ${_revision} ]] && _fragment="#revision=${_revision}" -pkgver=r19222 +pkgver=r19494 pkgrel=1 pkgdesc='Integer-only Ogg Vorbis decoder, AKA \"tremor\" (mingw-w64)' arch=('any') diff --git a/mingw-w64-opencollada-git/PKGBUILD b/mingw-w64-opencollada-git/PKGBUILD index e2bf7d4166..2590da355a 100644 --- a/mingw-w64-opencollada-git/PKGBUILD +++ b/mingw-w64-opencollada-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=opencollada pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r1079.2effbf1 +pkgver=r1184.0496c15 pkgrel=1 pkgdesc="Stream based reader and writer library for COLLADA files (mingw-w64)" arch=('any') @@ -22,7 +22,7 @@ md5sums=('SKIP' '11ff58142f0feb1dca80f004615a01ca') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } @@ -33,11 +33,14 @@ prepare() { } build() { + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} mkdir -p "${srcdir}"/build-${MINGW_CHOST} cd "${srcdir}"/build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ ../${_realname} make @@ -45,7 +48,7 @@ build() { package() { cd "${srcdir}"/build-${MINGW_CHOST} - make -j1 install + make DESTDIR=${pkgdir} install # replace absolute paths in .cmake scripts sed -i '1i get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)' "${pkgdir}${MINGW_PREFIX}/lib/${_realname}/cmake"/*Targets*.cmake diff --git a/mingw-w64-opencolorio/PKGBUILD b/mingw-w64-opencolorio-git/PKGBUILD similarity index 74% rename from mingw-w64-opencolorio/PKGBUILD rename to mingw-w64-opencolorio-git/PKGBUILD index 79ac466df8..5efc612128 100644 --- a/mingw-w64-opencolorio/PKGBUILD +++ b/mingw-w64-opencolorio-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=opencolorio pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=701.a557a85 -pkgrel=1 +pkgrel=2 pkgdesc="A color management framework for visual effects and animation (mingw-w64)" arch=('any') url="http://opencolorio.org" @@ -11,17 +11,17 @@ license=('BSD') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-glew" - "${MINGW_PACKAGE_PREFIX}-lcms2" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-tinyxml") + "${MINGW_PACKAGE_PREFIX}-glew" + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-tinyxml") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-yaml-cpp" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "git") + "${MINGW_PACKAGE_PREFIX}-yaml-cpp" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git") options=('strip') source=("${_realname}"::"git+https://github.com/imageworks/OpenColorIO.git" - #http://github.com/imageworks/OpenColorIO/tarball/v$pkgver + #${_realname}-${pkgver}.tar.gz::http://github.com/imageworks/OpenColorIO/tarball/v${pkgver}.tar.gz mingw-w64.patch fix-redefinitions.patch detect-mingw-python.patch) @@ -31,24 +31,26 @@ sha1sums=('SKIP' 'ff94a1cbfc4935d4f04e5225d078158d5bcaedcc') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd $_realname + cd ${_realname} patch -p1 -i ${srcdir}/mingw-w64.patch patch -p1 -i ${srcdir}/fix-redefinitions.patch patch -p1 -i ${srcdir}/detect-mingw-python.patch } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DGLEW_INCLUDES=${MINGW_PREFIX}/include \ -DGLEW_LIBRARIES=${MINGW_PREFIX}/lib/libglew32.dll.a \ -DUSE_EXTERNAL_TINYXML=ON \ @@ -66,14 +68,10 @@ build() { package() { cd build-${MINGW_CHOST} - make install + make DESTDIR=${pkgdir} install install -Dm644 ${srcdir}/${_realname}/LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE cd ${pkgdir}${MINGW_PREFIX} - export PREFIX_WIN=`pwd -W` mkdir -p bin mv lib/*.dll bin/ - for ff in lib/pkgconfig/*.pc; do - sed -i "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" $ff - done } diff --git a/mingw-w64-opencolorio/detect-mingw-python.patch b/mingw-w64-opencolorio-git/detect-mingw-python.patch similarity index 100% rename from mingw-w64-opencolorio/detect-mingw-python.patch rename to mingw-w64-opencolorio-git/detect-mingw-python.patch diff --git a/mingw-w64-opencolorio/fix-redefinitions.patch b/mingw-w64-opencolorio-git/fix-redefinitions.patch similarity index 100% rename from mingw-w64-opencolorio/fix-redefinitions.patch rename to mingw-w64-opencolorio-git/fix-redefinitions.patch diff --git a/mingw-w64-opencolorio/mingw-w64.patch b/mingw-w64-opencolorio-git/mingw-w64.patch similarity index 100% rename from mingw-w64-opencolorio/mingw-w64.patch rename to mingw-w64-opencolorio-git/mingw-w64.patch diff --git a/mingw-w64-opencore-amr/PKGBUILD b/mingw-w64-opencore-amr/PKGBUILD index 869507c057..b14c77d888 100644 --- a/mingw-w64-opencore-amr/PKGBUILD +++ b/mingw-w64-opencore-amr/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=opencore-amr - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.1.3 -pkgrel=2 +pkgrel=3 pkgdesc="Open source implementation of the Adaptive Multi Rate (AMR) speech codec (mingw-w64)" arch=('any') url="http://opencore-amr.sourceforge.net/" @@ -19,6 +18,7 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ @@ -26,7 +26,8 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --disable-static + --enable-shared \ + --enable-static make } diff --git a/mingw-w64-opencv/PKGBUILD b/mingw-w64-opencv/PKGBUILD index 599a9244b4..b3ba90fd37 100644 --- a/mingw-w64-opencv/PKGBUILD +++ b/mingw-w64-opencv/PKGBUILD @@ -2,50 +2,54 @@ _realname=opencv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.4.11 -pkgrel=2 +pkgver=3.0.0 +pkgrel=1 pkgdesc="Open Source Computer Vision Library (mingw-w64)" arch=('any') url="http://opencv.org/" depends=(#"${MINGW_PACKAGE_PREFIX}-gst-plugins-base0.10" - "${MINGW_PACKAGE_PREFIX}-intel-tbb" - "${MINGW_PACKAGE_PREFIX}-jasper" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-openexr" - "${MINGW_PACKAGE_PREFIX}-zlib" - #"${MINGW_PACKAGE_PREFIX}-qt5" - #"${MINGW_PACKAGE_PREFIX}-gtkglext" - #"${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-intel-tbb" + "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-openexr" + "${MINGW_PACKAGE_PREFIX}-zlib" + #"${MINGW_PACKAGE_PREFIX}-qt5" + #"${MINGW_PACKAGE_PREFIX}-gtkglext" + #"${MINGW_PACKAGE_PREFIX}-gtk2" ) makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" - #"${MINGW_PACKAGE_PREFIX}-qt5" - "${MINGW_PACKAGE_PREFIX}-eigen3" - "${MINGW_PACKAGE_PREFIX}-ffmpeg" - "${MINGW_PACKAGE_PREFIX}-python2-numpy" - "${MINGW_PACKAGE_PREFIX}-vtk" + #"${MINGW_PACKAGE_PREFIX}-qt5" + "${MINGW_PACKAGE_PREFIX}-eigen3" + "${MINGW_PACKAGE_PREFIX}-ffmpeg" + "${MINGW_PACKAGE_PREFIX}-python2-numpy" + "${MINGW_PACKAGE_PREFIX}-python3-numpy" + "${MINGW_PACKAGE_PREFIX}-vtk" ) optdepends=("${MINGW_PACKAGE_PREFIX}-eigen3" "${MINGW_PACKAGE_PREFIX}-ffmpeg: support to read and write video files" "${MINGW_PACKAGE_PREFIX}-python2-numpy: Python 2.x interface" + "${MINGW_PACKAGE_PREFIX}-python3-numpy: Python 3.x interface" "${MINGW_PACKAGE_PREFIX}-vtk: opencv_viz module") -source=(#"http://downloads.sourceforge.net/opencvlibrary/${_realname}-$pkgver.zip" - https://github.com/Itseez/opencv/archive/$pkgver.tar.gz +source=("${_realname}-${pkgver}.tar.gz"::https://github.com/Itseez/opencv/archive/${pkgver}.tar.gz 'mingw-w64-cmake.patch' - 'free-tls-keys-on-dll-unload.patch' - 'solve_deg3-underflow.patch') -md5sums=('fa06384719cb0be48183b4de972f0b2a' - '8d7819b9507cc070511ac3c64fd2bfb0' - '0f3f69b677d129260322ccf3e9412962' - 'ae03a59cf1202d5eafa94c2aac419ae6') + 'solve_deg3-underflow.patch' + 'issue-4107.patch' + 'remove-bindings-generation-DetectionBasedTracker.patch') +md5sums=('e6c72f54f7127161b371ef798f34d5c9' + '8ff3af2593c9c92f48c2e9f59adaaa3d' + 'ae03a59cf1202d5eafa94c2aac419ae6' + '49b6e0d5a376300238a769074cd5d32c' + '232993e4a053e1014b513c39b789188a') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -Np1 -i "$srcdir/mingw-w64-cmake.patch" - patch -Np1 -i "$srcdir/free-tls-keys-on-dll-unload.patch" - patch -Np1 -i "$srcdir/solve_deg3-underflow.patch" + patch -Np1 -i "${srcdir}/mingw-w64-cmake.patch" + patch -Np1 -i "${srcdir}/solve_deg3-underflow.patch" + patch -Np1 -i "${srcdir}/issue-4107.patch" + patch -Np1 -i "${srcdir}/remove-bindings-generation-DetectionBasedTracker.patch" } build() { @@ -67,15 +71,17 @@ build() { pushd ${srcdir}/${_realname}-${pkgver}/3rdparty/ffmpeg > /dev/null rm -f ./*.dll gcc -Wall -shared -o ${_ffmpeg_plugin} ${CXXFLAGS} -x c++ \ - -I../include -I../../modules/highgui/src ffopencv.c \ + -I../include -I../../modules/highgui/src -I../../modules/videoio/src ffopencv.c \ -lavformat -lavcodec -lavdevice -lswscale -lavutil -lws2_32 popd > /dev/null [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe -Wno-dev \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DWITH_OPENCL=ON \ -DWITH_OPENGL=ON \ -DWITH_TBB=ON \ @@ -103,11 +109,5 @@ build() { package() { cd "${srcdir}/build-${CARCH}" - make -j1 install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/opencv.pc + make DESTDIR=${pkgdir} -j1 install } diff --git a/mingw-w64-opencv/free-tls-keys-on-dll-unload.patch b/mingw-w64-opencv/free-tls-keys-on-dll-unload.patch deleted file mode 100644 index 10027eb80b..0000000000 --- a/mingw-w64-opencv/free-tls-keys-on-dll-unload.patch +++ /dev/null @@ -1,63 +0,0 @@ -diff -Naur a/modules/core/src/alloc.cpp b/modules/core/src/alloc.cpp ---- a/modules/core/src/alloc.cpp 2015-02-25 18:10:31.000000000 +0600 -+++ b/modules/core/src/alloc.cpp 2015-03-05 22:17:56.243231600 +0600 -@@ -56,7 +56,7 @@ - #if CV_USE_SYSTEM_MALLOC - - #if defined WIN32 || defined _WIN32 --void deleteThreadAllocData() {} -+void deleteThreadAllocData(unsigned long) {} - #endif - - void* fastMalloc( size_t size ) -diff -Naur a/modules/core/src/precomp.hpp b/modules/core/src/precomp.hpp ---- a/modules/core/src/precomp.hpp 2015-02-25 18:10:31.000000000 +0600 -+++ b/modules/core/src/precomp.hpp 2015-03-05 22:17:56.243231600 +0600 -@@ -83,8 +83,8 @@ - - - #if defined WIN32 || defined _WIN32 --void deleteThreadAllocData(); --void deleteThreadRNGData(); -+void deleteThreadAllocData(unsigned long); -+void deleteThreadRNGData(unsigned long); - #endif - - template struct OpAdd -diff -Naur a/modules/core/src/rand.cpp b/modules/core/src/rand.cpp ---- a/modules/core/src/rand.cpp 2015-02-25 18:10:31.000000000 +0600 -+++ b/modules/core/src/rand.cpp 2015-03-05 22:17:56.258831700 +0600 -@@ -752,10 +752,15 @@ - #endif - static DWORD tlsRNGKey = TLS_OUT_OF_INDEXES; - -- void deleteThreadRNGData() -- { -- if( tlsRNGKey != TLS_OUT_OF_INDEXES ) -- delete (RNG*)TlsGetValue( tlsRNGKey ); -+void deleteThreadRNGData(unsigned long reason) -+{ -+ if( tlsRNGKey != TLS_OUT_OF_INDEXES ) -+ delete (RNG*)TlsGetValue( tlsRNGKey ); -+ if( reason == DLL_PROCESS_DETACH && tlsRNGKey != TLS_OUT_OF_INDEXES ) -+ { -+ TlsFree(tlsRNGKey); -+ tlsRNGKey = TLS_OUT_OF_INDEXES; -+ } - } - - RNG& theRNG() -diff -Naur a/modules/core/src/system.cpp b/modules/core/src/system.cpp ---- a/modules/core/src/system.cpp 2015-02-25 18:10:31.000000000 +0600 -+++ b/modules/core/src/system.cpp 2015-03-05 22:17:56.258831700 +0600 -@@ -1082,8 +1082,8 @@ - { - if (fdwReason == DLL_THREAD_DETACH || fdwReason == DLL_PROCESS_DETACH) - { -- cv::deleteThreadAllocData(); -- cv::deleteThreadRNGData(); -+ cv::deleteThreadAllocData(fdwReason); -+ cv::deleteThreadRNGData(fdwReason); - cv::deleteThreadData(); - } - return TRUE; diff --git a/mingw-w64-opencv/issue-4107.patch b/mingw-w64-opencv/issue-4107.patch new file mode 100644 index 0000000000..2befda41eb --- /dev/null +++ b/mingw-w64-opencv/issue-4107.patch @@ -0,0 +1,13 @@ +http://code.opencv.org/issues/4107 + +diff -Naur a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake +--- a/cmake/OpenCVCompilerOptions.cmake 2015-02-25 18:10:31.000000000 +0600 ++++ b/cmake/OpenCVCompilerOptions.cmake 2015-03-05 22:18:10.532856700 +0600 +@@ -64,7 +64,6 @@ + add_extra_compiler_option(-W) + add_extra_compiler_option(-Wall) + add_extra_compiler_option(-Werror=return-type) +- add_extra_compiler_option(-Werror=non-virtual-dtor) + add_extra_compiler_option(-Werror=address) + add_extra_compiler_option(-Werror=sequence-point) + add_extra_compiler_option(-Wformat) diff --git a/mingw-w64-opencv/mingw-w64-cmake.patch b/mingw-w64-opencv/mingw-w64-cmake.patch index 7b74f4ce02..b43d02a18d 100644 --- a/mingw-w64-opencv/mingw-w64-cmake.patch +++ b/mingw-w64-opencv/mingw-w64-cmake.patch @@ -1,27 +1,3 @@ -diff -Naur a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake ---- a/cmake/OpenCVDetectCXXCompiler.cmake 2015-02-25 18:10:31.000000000 +0600 -+++ b/cmake/OpenCVDetectCXXCompiler.cmake 2015-03-05 22:18:10.532856700 +0600 -@@ -147,7 +147,7 @@ - execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpmachine - OUTPUT_VARIABLE OPENCV_GCC_TARGET_MACHINE - OUTPUT_STRIP_TRAILING_WHITESPACE) -- if(CMAKE_OPENCV_GCC_TARGET_MACHINE MATCHES "64") -+ if(CMAKE_OPENCV_GCC_TARGET_MACHINE MATCHES "amd64|x86_64|AMD64") - set(MINGW64 1) - set(OpenCV_ARCH x64) - else() -diff -Naur a/cmake/OpenCVDetectPython.cmake b/cmake/OpenCVDetectPython.cmake ---- a/cmake/OpenCVDetectPython.cmake 2015-02-25 18:10:31.000000000 +0600 -+++ b/cmake/OpenCVDetectPython.cmake 2015-03-05 22:18:10.517256700 +0600 -@@ -52,7 +52,7 @@ - endif() - - if(NOT ANDROID AND NOT IOS) -- if(CMAKE_HOST_UNIX) -+ if(CMAKE_HOST_UNIX OR MINGW) - execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import *; print get_python_lib()" - RESULT_VARIABLE PYTHON_CVPY_PROCESS - OUTPUT_VARIABLE PYTHON_STD_PACKAGES_PATH diff -Naur a/cmake/OpenCVFindOpenEXR.cmake b/cmake/OpenCVFindOpenEXR.cmake --- a/cmake/OpenCVFindOpenEXR.cmake 2015-02-25 18:10:31.000000000 +0600 +++ b/cmake/OpenCVFindOpenEXR.cmake 2015-03-05 22:18:10.517256700 +0600 @@ -34,6 +10,18 @@ diff -Naur a/cmake/OpenCVFindOpenEXR.cmake b/cmake/OpenCVFindOpenEXR.cmake SET(OPENEXR_ROOT "C:/Deploy" CACHE STRING "Path to the OpenEXR \"Deploy\" folder") if(CMAKE_CL_64) SET(OPENEXR_LIBSEARCH_SUFFIXES x64/Release x64 x64/Debug) +diff -Naur a/cmake/OpenCVDetectPython.cmake b/cmake/OpenCVDetectPython.cmake +--- a/cmake/OpenCVDetectPython.cmake 2015-02-25 18:10:31.000000000 +0600 ++++ b/cmake/OpenCVDetectPython.cmake 2015-03-05 22:18:10.517256700 +0600 +@@ -125,7 +125,7 @@ + endif() + + if(NOT ANDROID AND NOT IOS) +- if(CMAKE_HOST_UNIX) ++ if(CMAKE_HOST_UNIX OR MINGW) + execute_process(COMMAND ${_executable} -c "from distutils.sysconfig import *; print(get_python_lib())" + RESULT_VARIABLE _cvpy_process + OUTPUT_VARIABLE _std_packages_path diff -Naur a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake --- a/cmake/OpenCVGenConfig.cmake 2015-02-25 18:10:31.000000000 +0600 +++ b/cmake/OpenCVGenConfig.cmake 2015-03-05 22:18:10.532856700 +0600 @@ -63,7 +51,7 @@ diff -Naur a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake @ONLY) -if(UNIX AND NOT ANDROID) -+if(UNIX OR MINGW AND NOT ANDROID) ++if((UNIX AND NOT ANDROID) OR MINGW) install(FILES ${CMAKE_BINARY_DIR}/unix-install/${OPENCV_PC_FILE_NAME} DESTINATION ${OPENCV_LIB_INSTALL_PATH}/pkgconfig COMPONENT dev) endif() diff -Naur a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake @@ -116,8 +104,17 @@ diff -Naur a/CMakeLists.txt b/CMakeLists.txt # ---------------------------------------------------------------------------- # OpenCV cmake options # ---------------------------------------------------------------------------- +@@ -156,7 +156,7 @@ + OCV_OPTION(WITH_GSTREAMER_0_10 "Enable Gstreamer 0.10 support (instead of 1.x)" OFF ) + OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) ) + OCV_OPTION(WITH_GTK_2_X "Use GTK version 2" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) ) +-OCV_OPTION(WITH_IPP "Include Intel IPP support" ON IF (X86_64 OR X86) AND NOT WINRT) ++OCV_OPTION(WITH_IPP "Include Intel IPP support" ON IF (X86_64 OR X86) AND NOT WINRT AND NOT MINGW) + OCV_OPTION(WITH_JASPER "Include JPEG2K support" ON IF (NOT IOS) ) + OCV_OPTION(WITH_JPEG "Include JPEG support" ON) + OCV_OPTION(WITH_WEBP "Include WebP support" ON IF (NOT IOS AND NOT WINRT) ) @@ -191,12 +177,12 @@ - OCV_OPTION(BUILD_ANDROID_PACKAGE "Build platform-specific package for Google Play" OFF IF ANDROID ) + OCV_OPTION(BUILD_CUDA_STUBS "Build CUDA modules stubs when no CUDA SDK" OFF IF (NOT IOS) ) # 3rd party libs -OCV_OPTION(BUILD_ZLIB "Build zlib from source" WIN32 OR APPLE ) @@ -125,40 +122,47 @@ diff -Naur a/CMakeLists.txt b/CMakeLists.txt -OCV_OPTION(BUILD_JASPER "Build libjasper from source" WIN32 OR ANDROID OR APPLE ) -OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 OR ANDROID OR APPLE ) -OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 OR ANDROID OR APPLE ) --OCV_OPTION(BUILD_OPENEXR "Build openexr from source" WIN32 OR ANDROID OR APPLE ) +-OCV_OPTION(BUILD_OPENEXR "Build openexr from source" (WIN32 OR ANDROID OR APPLE) AND NOT WINRT) +OCV_OPTION(BUILD_ZLIB "Build zlib from source" WIN32 AND NOT MINGW OR APPLE ) +OCV_OPTION(BUILD_TIFF "Build libtiff from source" WIN32 AND NOT MINGW OR ANDROID OR APPLE ) +OCV_OPTION(BUILD_JASPER "Build libjasper from source" WIN32 AND NOT MINGW OR ANDROID OR APPLE ) +OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 AND NOT MINGW OR ANDROID OR APPLE ) +OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 AND NOT MINGW OR ANDROID OR APPLE ) -+OCV_OPTION(BUILD_OPENEXR "Build openexr from source" WIN32 AND NOT MINGW OR ANDROID OR APPLE ) ++OCV_OPTION(BUILD_OPENEXR "Build openexr from source" (WIN32 OR ANDROID OR APPLE) AND NOT WINRT AND NOT MINGW ) OCV_OPTION(BUILD_TBB "Download and build TBB from source" ANDROID ) # OpenCV installation options -@@ -268,7 +254,7 @@ +@@ -268,13 +254,13 @@ endif() endif() -if(ANDROID OR WIN32) -+if(ANDROID OR WIN32 AND NOT MINGW) ++if((ANDROID OR WIN32) AND NOT MINGW) set(OPENCV_DOC_INSTALL_PATH doc) - elseif(INSTALL_TO_MANGLED_PATHS) - set(OPENCV_DOC_INSTALL_PATH share/OpenCV-${OPENCV_VERSION}/doc) -@@ -276,7 +262,7 @@ + else() set(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc) endif() --if(WIN32) -+if(WIN32 AND NOT MINGW) +-if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows) ++if((WIN32 AND NOT MINGW) AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows) if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH) set(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/") else() -@@ -316,7 +302,7 @@ +@@ -305,7 +305,7 @@ + if(ANDROID) + set(OPENCV_SAMPLES_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}samples/${ANDROID_NDK_ABI_NAME}") else() +- set(OPENCV_SAMPLES_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}samples") ++ set(OPENCV_SAMPLES_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}share/OpenCV/samples") + endif() + + if(ANDROID) +@@ -345,7 +345,7 @@ set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib") set(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}") -- if(WIN32) -+ if(WIN32 AND NOT MINGW) + +- if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows) ++ if((WIN32 AND NOT MINGW) AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows) if(OpenCV_STATIC) set(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}") else() @@ -167,7 +171,7 @@ diff -Naur a/CMakeLists.txt b/CMakeLists.txt # for UNIX it does not make sense as LICENSE and readme will be part of the package automatically -if(ANDROID OR NOT UNIX) -+if(ANDROID OR NOT UNIX AND NOT MINGW) ++if((ANDROID OR NOT UNIX) AND NOT MINGW) install(FILES ${OPENCV_LICENSE_FILE} PERMISSIONS OWNER_READ GROUP_READ WORLD_READ DESTINATION . COMPONENT libs) diff --git a/mingw-w64-opencv/remove-bindings-generation-DetectionBasedTracker.patch b/mingw-w64-opencv/remove-bindings-generation-DetectionBasedTracker.patch new file mode 100644 index 0000000000..5edac6ba12 --- /dev/null +++ b/mingw-w64-opencv/remove-bindings-generation-DetectionBasedTracker.patch @@ -0,0 +1,34 @@ +From caaf60ba008bb7b61e2a791aab31dafe5267ab33 Mon Sep 17 00:00:00 2001 +From: Alexander Alekhin +Date: Tue, 9 Jun 2015 16:58:58 +0300 +Subject: [PATCH] remove bindings generation for DetectionBasedTracker + +--- + modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp | 1 + + modules/python/common.cmake | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp b/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp +index 54117fd..1f5f1d3 100644 +--- a/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp ++++ b/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp +@@ -44,6 +44,7 @@ + #ifndef __OPENCV_OBJDETECT_DBT_HPP__ + #define __OPENCV_OBJDETECT_DBT_HPP__ + ++// After this condition removal update blacklist for bindings: modules/python/common.cmake + #if defined(__linux__) || defined(LINUX) || defined(__APPLE__) || defined(__ANDROID__) || \ + (defined(__cplusplus) && __cplusplus > 201103L) || (defined(_MSC_VER) && _MSC_VER >= 1700) + +diff --git a/modules/python/common.cmake b/modules/python/common.cmake +index 5743980..2444b77 100644 +--- a/modules/python/common.cmake ++++ b/modules/python/common.cmake +@@ -28,6 +28,7 @@ endforeach(m) + ocv_list_filterout(opencv_hdrs ".h$") + ocv_list_filterout(opencv_hdrs "cuda") + ocv_list_filterout(opencv_hdrs "cudev") ++ocv_list_filterout(opencv_hdrs "detection_based_tracker.hpp") # Conditional compilation + + set(cv2_generated_hdrs + "${CMAKE_CURRENT_BINARY_DIR}/pyopencv_generated_include.h" diff --git a/mingw-w64-openexr/PKGBUILD b/mingw-w64-openexr/PKGBUILD index c121e43c90..0f7f41f0bd 100644 --- a/mingw-w64-openexr/PKGBUILD +++ b/mingw-w64-openexr/PKGBUILD @@ -3,13 +3,13 @@ _realname=openexr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.2.0 -pkgrel=1 +pkgrel=2 pkgdesc="Openexr library for EXR images (mingw-w64)" arch=('any') -url="http://http://www.openexr.com/" +url="http://www.openexr.com/" license=("custom") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-ilmbase") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-ilmbase" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') source=("http://download.savannah.nongnu.org/releases/openexr/${_realname}-${pkgver}.tar.gz" mingw-w64-fix.patch @@ -35,19 +35,19 @@ md5sums=('b64e931c82aa3790329c21418373db4e' 'e913e6fa443d2ae28951ed22ae680653') prepare(){ - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-$pkgver" sed -i 's/#define ZLIB_WINAPI/\/\/#define ZLIB_WINAPI/g' IlmImf/ImfZipCompressor.cpp sed -i 's/#define ZLIB_WINAPI/\/\/#define ZLIB_WINAPI/g' IlmImf/ImfPxr24Compressor.cpp - patch -Np1 -i "$srcdir/mingw-w64-fix.patch" - patch -Np1 -i "$srcdir/openexr-2.1.0-headers.patch" - #patch -Np1 -i "$srcdir/openexr-2.1.0_bb44ExpLogTable.patch" - patch -Np1 -i "$srcdir/openexr-2.1.0_aligned-malloc.patch" - patch -Np1 -i "$srcdir/openexr-2.1.0_cast.patch" - patch -Np1 -i "$srcdir/openexr_obsolete-macros.patch" - patch -Np1 -i "$srcdir/cmake-soversion.patch" - patch -Np2 -i "$srcdir/pull93.patch" + patch -p1 -i "${srcdir}/mingw-w64-fix.patch" + patch -p1 -i "${srcdir}/openexr-2.1.0-headers.patch" + #patch -p1 -i "${srcdir}/openexr-2.1.0_bb44ExpLogTable.patch" + patch -p1 -i "${srcdir}/openexr-2.1.0_aligned-malloc.patch" + patch -p1 -i "${srcdir}/openexr-2.1.0_cast.patch" + patch -p1 -i "${srcdir}/openexr_obsolete-macros.patch" + patch -p1 -i "${srcdir}/cmake-soversion.patch" + patch -p2 -i "${srcdir}/pull93.patch" patch -p2 -i ${srcdir}/change-suffixes-for-64bit-literals.patch patch -p1 -i ${srcdir}/win-dwalookups.patch @@ -55,13 +55,14 @@ prepare(){ build() { CXXFLAGS+=" -I${MINGW_PREFIX}/include/OpenEXR" - [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - mkdir "${srcdir}/build-${MINGW_CHOST}" + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBUILD_SHARED_LIBS=ON \ -DNAMESPACE_VERSIONING=ON \ -DUSE_ZLIB_WINAPI=OFF \ @@ -73,11 +74,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/OpenEXR.pc + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-opus-tools/PKGBUILD b/mingw-w64-opus-tools/PKGBUILD index 5c326fc5f8..23443d848e 100644 --- a/mingw-w64-opus-tools/PKGBUILD +++ b/mingw-w64-opus-tools/PKGBUILD @@ -4,7 +4,7 @@ _realname=opus-tools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.1.9 -pkgrel=1 +pkgrel=2 pkgdesc="Collection of tools for Opus audio codec (mingw-w64)" arch=('any') url="http://www.opus-codec.org/" @@ -15,10 +15,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libogg" "${MINGW_PACKAGE_PREFIX}-opus") options=('strip' 'staticlibs') -source=(http://downloads.xiph.org/releases/opus/$_realname-$pkgver.tar.gz) +source=(http://downloads.xiph.org/releases/opus/${_realname}-${pkgver}.tar.gz) md5sums=('20682e4d8d1ae9ec5af3cf43e808b8cb') build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ @@ -26,6 +27,7 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} + make } diff --git a/mingw-w64-opus/PKGBUILD b/mingw-w64-opus/PKGBUILD index 860d55bb45..910e3d198c 100644 --- a/mingw-w64-opus/PKGBUILD +++ b/mingw-w64-opus/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=opus - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1 -pkgrel=2 +pkgrel=3 pkgdesc="Codec designed for interactive speech and audio transmission over the Internet (mingw-w64)" arch=('any') url="http://www.opus-codec.org/" @@ -12,7 +11,7 @@ license=("BSD") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('strip' 'staticlibs') source=("http://downloads.us.xiph.org/releases/${_realname}/${_realname}-${pkgver}.tar.gz" - 0001-correctly-detect-alloca.mingw.patch) + 0001-correctly-detect-alloca.mingw.patch) md5sums=('c5a8cf7c0b066759542bc4ca46817ac6' '006d3e2769d82904837b95abc20d196a') @@ -23,6 +22,7 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ @@ -31,7 +31,9 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-custom-modes \ - --disable-static + --enable-shared \ + --enable-static + make } diff --git a/mingw-w64-opusfile/PKGBUILD b/mingw-w64-opusfile/PKGBUILD index b0275ebd08..a95a40cdcc 100644 --- a/mingw-w64-opusfile/PKGBUILD +++ b/mingw-w64-opusfile/PKGBUILD @@ -3,7 +3,7 @@ _realname=opusfile pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.6 -pkgrel=1 +pkgrel=2 pkgdesc="Library for opening, seeking, and decoding .opus files (mingw-w64)" arch=('any') url="https://www.opus-codec.org/" @@ -21,6 +21,7 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ diff --git a/mingw-w64-orc/PKGBUILD b/mingw-w64-orc/PKGBUILD index 5c24c0a7fb..b9f1e9c667 100644 --- a/mingw-w64-orc/PKGBUILD +++ b/mingw-w64-orc/PKGBUILD @@ -2,7 +2,7 @@ _realname=orc pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.4.22 +pkgver=0.4.24 pkgrel=1 pkgdesc="The Oild Runtime Compiler (mingw-w64)" arch=('any') @@ -10,15 +10,15 @@ url="http://code.entropywave.com/projects/orc/" license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('strip' 'staticlibs') -source=(#"http://gstreamer.freedesktop.org/src/orc/${_realname}-${pkgver}.tar.gz" - "http://gstreamer.freedesktop.org/src/orc/${_realname}-${pkgver}.tar.xz") -md5sums=('eecd4788688a95aae97adf1125585cbf') +source=("http://gstreamer.freedesktop.org/src/orc/${_realname}-${pkgver}.tar.xz") +md5sums=('9e793ec34c0e20339659dd4bbbf62135') prepare() { cd "${srcdir}/${_realname}-${pkgver}" } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ @@ -28,6 +28,7 @@ build() { --target=${MINGW_CHOST} \ --enable-static \ --enable-shared + make } diff --git a/mingw-w64-physfs-hg/PKGBUILD b/mingw-w64-physfs-hg/PKGBUILD index 108480342a..dc04175ec1 100644 --- a/mingw-w64-physfs-hg/PKGBUILD +++ b/mingw-w64-physfs-hg/PKGBUILD @@ -5,8 +5,8 @@ _realname=physfs pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}-hg -pkgver=r1345.29ab417d9453 -pkgrel=2 +pkgver=r1363.a3dabf75a0d0 +pkgrel=1 pkgdesc="A library to provide abstract access to various archives (development version)" arch=('any') url="http://icculus.org/physfs/" @@ -14,7 +14,7 @@ license=('zlib') options=('staticlibs' 'strip') depends=("${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" - 'doxygen' + "${MINGW_PACKAGE_PREFIX}-doxygen" 'mercurial') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -37,34 +37,25 @@ prepare() { } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - #pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - #export PREFIX_WIN=`pwd -W` - #popd > /dev/null - mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DPHYSFS_BUILD_TEST=OFF \ -DCMAKE_BUILD_TYPE=Release \ - -DPHYSFS_BUILD_WX_TEST=OFF ${srcdir}/${_realname} - make all + -DPHYSFS_BUILD_WX_TEST=OFF \ + ../${_realname} + + make } package() { cd ${srcdir}/build-${MINGW_CHOST} - - make install + make DESTDIR=${pkgdir} install install -Dm644 ${srcdir}/${_realname}/LICENSE.txt \ - "$pkgdir"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/physfs.pc + "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-physfs/PKGBUILD b/mingw-w64-physfs/PKGBUILD index a164af6f86..177ce768a9 100644 --- a/mingw-w64-physfs/PKGBUILD +++ b/mingw-w64-physfs/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=physfs - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.3 -pkgrel=1 +pkgrel=2 pkgdesc="A library to provide abstract access to various archives (mingw-w64)" arch=('any') url="http://icculus.org/physfs/" @@ -24,25 +23,23 @@ build() { #Unstrict warnings are required as 64 bit compiler complains about an int->pointer cast (which should be safe) sed -i 's/-Werror//g' CMakeLists.txt - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ${MINGW_PREFIX}/bin/cmake \ + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DPHYSFS_BUILD_TEST=OFF \ -DPHYSFS_BUILD_WX_TEST=OFF \ ../${_realname}-${pkgver} - make all + + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install cd "${srcdir}/physfs-${pkgver}" install -D -m644 LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-pyqt5/PKGBUILD b/mingw-w64-pyqt5/PKGBUILD index 0642f00f29..ec1559f0f1 100644 --- a/mingw-w64-pyqt5/PKGBUILD +++ b/mingw-w64-pyqt5/PKGBUILD @@ -2,7 +2,7 @@ _realname=pyqt5 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-common" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=5.4.1 +pkgver=5.4.2 pkgrel=1 pkgdesc="Qt5 bindings for Python (mingw-w64)" arch=('any') @@ -12,10 +12,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-sip" "${MINGW_PACKAGE_PREFIX}-python3-sip" "${MINGW_PACKAGE_PREFIX}-qt5") options=('strip' 'staticlibs') -source=("http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-$pkgver/PyQt-gpl-$pkgver.tar.gz" +source=("http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-${pkgver}/PyQt-gpl-${pkgver}.tar.gz" #"http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-${pkgver%.*}/PyQt-gpl-${pkgver%.*}.tar.gz" 001-mingw-python.patch) -md5sums=('a07bd7c426c7cda39f9a5072ee724aba' +md5sums=('33936458544b69251a8f4a2308d469d3' '3b11ff26e229e256ee13f484422047d9') prepare() { diff --git a/mingw-w64-python-dateutil/PKGBUILD b/mingw-w64-python-dateutil/PKGBUILD index 917ad9c6ed..8410f5df39 100644 --- a/mingw-w64-python-dateutil/PKGBUILD +++ b/mingw-w64-python-dateutil/PKGBUILD @@ -2,8 +2,8 @@ _realname=dateutil pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=2.2 -pkgrel=2 +pkgver=2.4.2 +pkgrel=1 pkgdesc="Provides powerful extensions to the standard datetime module (mingw-w64)" arch=('any') license=('custom:PYTHON') @@ -14,53 +14,53 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-python2-six" "${MINGW_PACKAGE_PREFIX}-python3-six" ) -source=(http://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-$pkgver.tar.gz) -md5sums=('c1f654d0ff7e33999380a8ba9783fd5c') +source=(http://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-${pkgver}.tar.gz) +md5sums=('4ef68e1c485b09e9f034e10473e5add2') prepare() { cd "${srcdir}" - cp -r python-dateutil-$pkgver python2-dateutil-$pkgver - cp -r python-dateutil-$pkgver python3-dateutil-$pkgver + cp -r python-dateutil-${pkgver} python2-build + cp -r python-dateutil-${pkgver} python3-build } check() { - cd $srcdir/python3-dateutil-$pkgver + cd ${srcdir}/python3-build ${MINGW_PREFIX}/bin/python3 test.py - cd $srcdir/python2-dateutil-$pkgver + cd ${srcdir}/python2-build ${MINGW_PREFIX}/bin/python2 test.py } package_python3-dateutil() { depends=("${MINGW_PACKAGE_PREFIX}-python3-six") - cd $srcdir/python3-dateutil-$pkgver + cd ${srcdir}/python3-build MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ - --root=$pkgdir --optimize=1 + --root=${pkgdir} --optimize=1 install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE chmod -R a+r $pkgdir/${MINGW_PREFIX}/lib/python3.4/ # Remove data files - rm $pkgdir/${MINGW_PREFIX}/lib/python3.4/site-packages/dateutil/zoneinfo/zoneinfo--latest.tar.gz + #rm ${pkgdir}${MINGW_PREFIX}/lib/python3.4/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz } package_python2-dateutil() { depends=("${MINGW_PACKAGE_PREFIX}-python2-six") - cd $srcdir/python2-dateutil-$pkgver + cd ${srcdir}/python2-build MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ - --root=$pkgdir --optimize=1 + --root=${pkgdir} --optimize=1 install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE - chmod -R a+r $pkgdir/${MINGW_PREFIX}/lib/python2.7/ + chmod -R a+r ${pkgdir}/${MINGW_PREFIX}/lib/python2.7/ # Remove data files - rm $pkgdir/${MINGW_PREFIX}/lib/python2.7/site-packages/dateutil/zoneinfo/zoneinfo--latest.tar.gz + #rm ${pkgdir}${MINGW_PREFIX}/lib/python2.7/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz } package_mingw-w64-i686-python2-dateutil() { diff --git a/mingw-w64-python-matplotlib/PKGBUILD b/mingw-w64-python-matplotlib/PKGBUILD index fe9bb70a7b..6a5ccde64a 100644 --- a/mingw-w64-python-matplotlib/PKGBUILD +++ b/mingw-w64-python-matplotlib/PKGBUILD @@ -2,7 +2,7 @@ _realname=matplotlib pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=1.4.2 +pkgver=1.4.3 pkgrel=1 pkgdesc="A python plotting library, making publication quality plots (mingw-w64)" arch=('any') @@ -25,34 +25,33 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-libpng" #"${MINGW_PACKAGE_PREFIX}-qhull" ) -source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/matplotlib/matplotlib/archive/v$pkgver.tar.gz" +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/matplotlib/matplotlib/archive/v${pkgver}.tar.gz" setupext.py.patch setup.py.patch) -md5sums=('79d86283a47530611b3695670c0a9b3c' +md5sums=('f1bb5e2317cceed593119fad2071e236' '24b0ed92631fd0adb2ae11ff1ef31490' 'b5f64259a266ccc517586debb8c4e5c8') noextract=("${_realname}-${pkgver}.tar.gz") prepare() { - cd $startdir/ # Clean up old sources so re-patching doesn't fail. - [ -d $srcdir/${_realname}-$pkgver ] && rm -rf $srcdir/${_realname}-$pkgver - tar -xzvf ${_realname}-${pkgver}.tar.gz -C $srcdir + [[ -d ${srcdir}/${_realname}-${pkgver} ]] && rm -rf $srcdir/${_realname}-${pkgver} + tar -xzvf ${_realname}-${pkgver}.tar.gz -C ${srcdir} - cd $srcdir/${_realname}-$pkgver + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/setupext.py.patch patch -p1 -i ${srcdir}/setup.py.patch cd ${srcdir} - cp -a $_realname-$pkgver $_realname-py2-$pkgver - cp -a $_realname-$pkgver $_realname-py3-$pkgver + cp -a ${_realname}-${pkgver} ${_realname}-py2-${pkgver} + cp -a ${_realname}-${pkgver} ${_realname}-py3-${pkgver} - cd ${srcdir}/$_realname-py3-$pkgver + cd ${srcdir}/${_realname}-py3-${pkgver} # remove cairo which fails for python3 sed -i 's/setupext\.BackendGtk3Cairo/#setupext\.BackendGtk3Cairo/g' setup.py sed -i 's/setupext\.BackendCairo/#setupext\.BackendCairo/g' setup.py - cd ${srcdir}/$_realname-py2-$pkgver + cd ${srcdir}/${_realname}-py2-${pkgver} sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/env python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ -e "s|#![ ]*/bin/env python$|#!/usr/bin/env python2|" \ @@ -60,11 +59,11 @@ prepare() { } build() { - cd ${srcdir}/$_realname-py2-$pkgver + cd ${srcdir}/${_realname}-py2-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build - cd ${srcdir}/$_realname-py3-$pkgver + cd ${srcdir}/$_realname-py3-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build } @@ -81,7 +80,7 @@ package_python3-matplotlib() { "${MINGW_PACKAGE_PREFIX}-libpng" #"${MINGW_PACKAGE_PREFIX}-qhull" ) - cd ${srcdir}/$_realname-py3-$pkgver + cd ${srcdir}/$_realname-py3-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install -O1 --skip-build \ @@ -102,7 +101,7 @@ package_python2-matplotlib() { "${MINGW_PACKAGE_PREFIX}-libpng" #"${MINGW_PACKAGE_PREFIX}-qhull" ) - cd ${srcdir}/$_realname-py2-$pkgver + cd ${srcdir}/$_realname-py2-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install -O1 --skip-build \ diff --git a/mingw-w64-python-pygments/PKGBUILD b/mingw-w64-python-pygments/PKGBUILD index 37ff5007ed..8ae977c7ed 100644 --- a/mingw-w64-python-pygments/PKGBUILD +++ b/mingw-w64-python-pygments/PKGBUILD @@ -5,13 +5,13 @@ _realname=pygments pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=2.0.2 -pkgrel=2 +pkgrel=3 pkgdesc="Python syntax highlighter (mingw-w64)" arch=('any') license=('BSD') url="http://pygments.org/" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") -source=(http://pypi.python.org/packages/source/P/Pygments/Pygments-$pkgver.tar.gz) +source=(http://pypi.python.org/packages/source/P/Pygments/Pygments-${pkgver}.tar.gz) noextract=("Pygments-${pkgver}.tar.gz") sha256sums=('7320919084e6dac8f4540638a46447a3bd730fca172afc17d2c03eed22cf4f51') diff --git a/mingw-w64-python-pyparsing/PKGBUILD b/mingw-w64-python-pyparsing/PKGBUILD index 13d59d9957..293cd37638 100644 --- a/mingw-w64-python-pyparsing/PKGBUILD +++ b/mingw-w64-python-pyparsing/PKGBUILD @@ -1,8 +1,8 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=pyparsing -pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=2.0.2 +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=2.0.3 pkgrel=1 pkgdesc='General parsing module for Python (mingw-w64)' arch=('any') @@ -12,22 +12,22 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python2" ) -source=("http://downloads.sourceforge.net/pyparsing/pyparsing-$pkgver.tar.gz") -sha256sums=('17e43d6b17588ed5968735575b3983a952133ec4082596d214d7090b56d48a06') +source=("http://downloads.sourceforge.net/pyparsing/pyparsing-${pkgver}.tar.gz") +sha256sums=('06e729e1cbf5274703b1f47b6135ed8335999d547f9d8cf048b210fb8ebf844f') prepare() { cd "${srcdir}" - cp -r pyparsing-$pkgver python2-pyparsing-$pkgver - cp -r pyparsing-$pkgver python3-pyparsing-$pkgver + cp -r pyparsing-${pkgver} python2-build + cp -r pyparsing-${pkgver} python3-build } package_python3-pyparsing() { depends=("${MINGW_PACKAGE_PREFIX}-python3") - cd $srcdir/python3-pyparsing-$pkgver + cd ${srcdir}/python3-build MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ - --root="$pkgdir" --optimize=1 + --root="${pkgdir}" --optimize=1 install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } @@ -35,10 +35,10 @@ package_python3-pyparsing() { package_python2-pyparsing() { depends=("${MINGW_PACKAGE_PREFIX}-python2") - cd $srcdir/python2-pyparsing-$pkgver + cd ${srcdir}/python2-build MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ - --root="$pkgdir" --optimize=1 + --root="${pkgdir}" --optimize=1 install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" } diff --git a/mingw-w64-python2-cairo/PKGBUILD b/mingw-w64-python2-cairo/PKGBUILD index ac56adc0ca..ca07bcbe9a 100644 --- a/mingw-w64-python2-cairo/PKGBUILD +++ b/mingw-w64-python2-cairo/PKGBUILD @@ -1,17 +1,16 @@ # Maintainer: Alexey Pavlov _realname=python2-cairo - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.10.0 -pkgrel=1 +pkgrel=2 pkgdesc="Python2 bindings for the cairo graphics library (mingw-w64)" url="http://www.cairographics.org/pycairo" arch=('any') license=('LGPL' 'MPL') depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-cairo") source=(http://cairographics.org/releases/py2cairo-${pkgver}.tar.bz2 - waflib.patch) + waflib.patch) md5sums=('20337132c4ab06c1146ad384d55372c5' 'dfbfb1d1901a311c2d2ca8e8ea1be592') @@ -24,12 +23,8 @@ build() { rm -f waflib/*.pyc popd - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - export PYTHON=${MINGW_PREFIX}/bin/python2 - CFLAGS+=" -I${MINGW_PREFIX}/include/python2.7" + CFLAGS+=" -I${MINGW_PREFIX}/include/python2.7 -I${MINGW_PREFIX}/include/cairo" /usr/bin/python2 ./waf --help /usr/bin/python2 ./waf configure --prefix=${MINGW_PREFIX} /usr/bin/python2 ./waf build diff --git a/mingw-w64-python2/1050-fix-hashfunc-prototype.patch b/mingw-w64-python2/1050-fix-hashfunc-prototype.patch deleted file mode 100644 index 7dbb449ccb..0000000000 --- a/mingw-w64-python2/1050-fix-hashfunc-prototype.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- Python-2.7.10/Include/object.h.orig 2015-06-26 10:28:53.932400000 +0300 -+++ Python-2.7.10/Include/object.h 2015-06-26 10:29:01.950800000 +0300 -@@ -311,7 +311,7 @@ - typedef int (*setattrofunc)(PyObject *, PyObject *, PyObject *); - typedef int (*cmpfunc)(PyObject *, PyObject *); - typedef PyObject *(*reprfunc)(PyObject *); --typedef long (*hashfunc)(PyObject *); -+typedef Py_ssize_t (*hashfunc)(PyObject *); - typedef PyObject *(*richcmpfunc) (PyObject *, PyObject *, int); - typedef PyObject *(*getiterfunc) (PyObject *); - typedef PyObject *(*iternextfunc) (PyObject *); diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index 264bee7af3..4e8e8c43cc 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -5,7 +5,7 @@ _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7.10 -pkgrel=3 +pkgrel=4 _pybasever=${pkgver%.*} pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') @@ -103,7 +103,6 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 1020-gdbm-module-includes.patch 1030-use-gnu_printf-in-format.patch 1040-install-msilib.patch - 1050-fix-hashfunc-prototype.patch 2000-distutils-add-windmc-to-cygwinccompiler.patch) prepare() { @@ -200,7 +199,6 @@ prepare() { patch -p1 -i "${srcdir}"/1020-gdbm-module-includes.patch patch -p1 -i "${srcdir}"/1030-use-gnu_printf-in-format.patch patch -p1 -i "${srcdir}"/1040-install-msilib.patch - patch -p1 -i "${srcdir}"/1050-fix-hashfunc-prototype.patch plain "Apply Renato Silva's patch to distutils" patch -p1 -i "${srcdir}"/2000-distutils-add-windmc-to-cygwinccompiler.patch @@ -424,5 +422,4 @@ sha1sums=('ee5a50c5562e7448f037d35fdedc18d95c748b9e' '06ebbcf50d6d30780f47a0d3425f956b2eb8e847' '9042c4902ff03ecc12e0b41059aaebd6ad409009' 'dc6aa85fa4dc68a6809c1321e4a28a360a242f39' - '7afbbdc5f04fe8969818d5ab47caab2a01c6b892' '5c5d9fb5d1fc576251a68c781437d27ea8d7e208') diff --git a/mingw-w64-python3-cairo/PKGBUILD b/mingw-w64-python3-cairo/PKGBUILD index 5c3313541a..33f974a343 100644 --- a/mingw-w64-python3-cairo/PKGBUILD +++ b/mingw-w64-python3-cairo/PKGBUILD @@ -1,27 +1,32 @@ # Maintainer: Alexey Pavlov _realname=pycairo - pkgname="${MINGW_PACKAGE_PREFIX}-python3-cairo" pkgver=1.10.0 -pkgrel=3 +pkgrel=4 pkgdesc="Python2 bindings for the cairo graphics library (mingw-w64)" url="http://www.cairographics.org/pycairo" arch=('any') license=('LGPL' 'MPL') depends=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-cairo") +makedepends=("python3") source=(http://cairographics.org/releases/${_realname}-${pkgver}.tar.bz2 - context.patch - pycairo-1.10.0-waf-python3.4.tar.bz2) + context.patch + pycairo-1.10.0-waf-python3.4.tar.bz2) md5sums=('e6fd3f2f1e6a72e0db0868c4985669c5' 'd4ded5af833f9072954c8bc434f90986' '06a60ae51953a2d4e89eb46ac4d282f6') -build() { +prepare() { cd "${srcdir}/pycairo-${pkgver}" patch -p1 -i ${srcdir}/context.patch patch -p1 -i ${srcdir}/pycairo-1.10.0-waf-python3.4.patch sed -i 's:bin/env python:bin/env python3:' waf +} + +build() { + cd "${srcdir}/pycairo-${pkgver}" + /usr/bin/python3 ./waf --version || true pushd .waf3-* #patch -p0 -i ${srcdir}/waflib.patch diff --git a/mingw-w64-ruby/PKGBUILD b/mingw-w64-ruby/PKGBUILD index e45d0b1a23..14d3598a1d 100644 --- a/mingw-w64-ruby/PKGBUILD +++ b/mingw-w64-ruby/PKGBUILD @@ -3,7 +3,7 @@ _realname=ruby pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.2.2 -pkgrel=1 +pkgrel=2 pkgdesc="An object-oriented language for quick and easy programming (mingw-w64)" arch=('any') url="http://www.ruby-lang.org/en" diff --git a/mingw-w64-schroedinger/PKGBUILD b/mingw-w64-schroedinger/PKGBUILD index dc0eb53666..74a7905155 100644 --- a/mingw-w64-schroedinger/PKGBUILD +++ b/mingw-w64-schroedinger/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=schroedinger - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.11 -pkgrel=2 +pkgrel=3 pkgdesc="An implemenation of the Dirac video codec in ANSI C code (mingw-w64)" arch=('any') url="http://www.diracvideo.org/" @@ -13,8 +12,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-orc") options=('strip' 'staticlibs') source=("http://www.diracvideo.org/download/schroedinger/${_realname}-${pkgver}.tar.gz" - 0001-builddir-not-srcdir.all.patch - 0002-link-testsuite-to-orc-tmp.mingw.patch) + 0001-builddir-not-srcdir.all.patch + 0002-link-testsuite-to-orc-tmp.mingw.patch) md5sums=('da6af08e564ca1157348fb8d92efc891' '2a98d3929c8e4106768d437cc0ce58fb' 'e073b0580ca3e8171a2266aa529472bd') @@ -27,6 +26,7 @@ prepare() { } build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ @@ -35,6 +35,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --with-opengl=${MINGW_PREFIX} + make } diff --git a/mingw-w64-sip/PKGBUILD b/mingw-w64-sip/PKGBUILD index b5cb3fbe53..8533898d10 100644 --- a/mingw-w64-sip/PKGBUILD +++ b/mingw-w64-sip/PKGBUILD @@ -4,15 +4,14 @@ _realname=sip pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=4.16.8 -pkgrel=1 +pkgrel=2 pkgdesc="Tool to create Python bindings for C and C++ libraries" arch=('any') license=('GPL') url="http://www.riverbankcomputing.co.uk/software/sip" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python3") - + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3") source=("http://downloads.sourceforge.net/project/pyqt/${_realname}/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.gz" "0001-mingw-python.patch") md5sums=('8e48cd78bcd31f9310a701a4111c2739' diff --git a/mingw-w64-smpeg2/PKGBUILD b/mingw-w64-smpeg2/PKGBUILD index 650df19497..bbc3011f5f 100644 --- a/mingw-w64-smpeg2/PKGBUILD +++ b/mingw-w64-smpeg2/PKGBUILD @@ -3,7 +3,7 @@ _realname=smpeg2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.0 -pkgrel=2 +pkgrel=3 pkgdesc="SDL2 MPEG Player Library (mingw-w64)" arch=('any') url="http://icculus.org/smpeg/" @@ -21,21 +21,23 @@ prepare() { } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}/configure \ + cd "${srcdir}/build-${MINGW_CHOST}/" + ../${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --mandir=${MINGW_PREFIX}/share/man \ --enable-shared \ --enable-static + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install # hacky way of resolving conflicts rm ${pkgdir}${MINGW_PREFIX}/bin/plaympeg diff --git a/mingw-w64-soundtouch/PKGBUILD b/mingw-w64-soundtouch/PKGBUILD index 4016c3aca5..0bdecb3aad 100644 --- a/mingw-w64-soundtouch/PKGBUILD +++ b/mingw-w64-soundtouch/PKGBUILD @@ -3,7 +3,7 @@ _realname=soundtouch pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.9.0 -pkgrel=1 +pkgrel=2 pkgdesc="An audio processing library (mingw-w64)" arch=('any') url="http://www.surina.net/soundtouch/" diff --git a/mingw-w64-szip/PKGBUILD b/mingw-w64-szip/PKGBUILD index ac0523c225..1cfd382847 100644 --- a/mingw-w64-szip/PKGBUILD +++ b/mingw-w64-szip/PKGBUILD @@ -2,20 +2,17 @@ # Contributor: Xin Sun _realname=szip - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1 -pkgrel=1 -pkgdesc="Extended-Rice lossless compression algorithm implementation" +pkgrel=2 +pkgdesc="Extended-Rice lossless compression algorithm implementation (mingw-w64)" arch=('any') url="http://www.hdfgroup.org/doc_resource/SZIP/" -source=( - "http://www.hdfgroup.org/ftp/lib-external/szip/${pkgver}/src/szip-${pkgver}.tar.gz" - "szip-hdf5.patch" - "szip-default-import-suffix.patch" - "szip-fix-install-docs.patch" - "szip-fix-cmake-macros.patch" - ) +source=("http://www.hdfgroup.org/ftp/lib-external/szip/${pkgver}/src/szip-${pkgver}.tar.gz" + "szip-hdf5.patch" + "szip-default-import-suffix.patch" + "szip-fix-install-docs.patch" + "szip-fix-cmake-macros.patch") md5sums=('902f831bcefb69c6b635374424acbead' '2ac1108913387e1f7b4749a18cc353a3' '574aff51b619b306fc8cac05a600d89b' @@ -40,9 +37,11 @@ prepare() { build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_SKIP_RPATH=ON \ @@ -52,5 +51,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 install + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-taglib/PKGBUILD b/mingw-w64-taglib/PKGBUILD index ca2377d960..85f7701bc2 100644 --- a/mingw-w64-taglib/PKGBUILD +++ b/mingw-w64-taglib/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=taglib - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.9.1 pkgrel=3 @@ -33,12 +32,13 @@ build() { mkdir -p "${srcdir}/build-shared-${MINGW_CHOST}" cd "${srcdir}/build-shared-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -DENABLE_STATIC:BOOL=OFF \ - -DWITH_ASF:BOOL=ON \ - -DWITH_MP4:BOOL=ON \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DENABLE_STATIC=OFF \ + -DWITH_ASF=ON \ + -DWITH_MP4=ON \ ../${_realname}-${pkgver} make @@ -47,12 +47,13 @@ build() { mkdir -p "${srcdir}/build-static-${MINGW_CHOST}" cd "${srcdir}/build-static-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -DENABLE_STATIC:BOOL=ON \ - -DWITH_ASF:BOOL=ON \ - -DWITH_MP4:BOOL=ON \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DENABLE_STATIC=ON \ + -DWITH_ASF=ON \ + -DWITH_MP4=ON \ ../${_realname}-${pkgver} make @@ -60,14 +61,8 @@ build() { package() { cd "${srcdir}/build-static-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install cd "${srcdir}/build-shared-${MINGW_CHOST}" - make install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/taglib.pc + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-tinyxml/PKGBUILD b/mingw-w64-tinyxml/PKGBUILD index af6e089d6a..00b7224f33 100644 --- a/mingw-w64-tinyxml/PKGBUILD +++ b/mingw-w64-tinyxml/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=tinyxml - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.6.2 -pkgrel=2 +pkgrel=3 pkgdesc="Simple, small, C++ XML parser that can be easily integrated into other programs (mingw-w64)" arch=('any') url="http://www.grinninglizard.com/tinyxml" @@ -13,18 +12,18 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' 'staticlibs') source=("http://downloads.sourceforge.net/tinyxml/tinyxml_${pkgver//./_}.tar.gz" - "entity.patch" - "tinyxml-2.5.3-stl.patch" - "tinyxml.pc") + "entity.patch" + "tinyxml-2.5.3-stl.patch" + "tinyxml.pc") sha256sums=('15bdfdcec58a7da30adc87ac2b078e4417dbe5392f3afb719f9ba6d062645593' 'ef493209b0a51160171fd834a7ecdddd02679463b85fb89a2ea254213e47f99b' '3baf2c4dbc2c8f54a151dac8860113d2f549174f83ed85d552b094dfaebb52af' '60bcff16486698f4d2f076f5a3c6e5566e098e3d0d30f1bdbbe7012d3d36c095') prepare() { - cd "$srcdir/tinyxml" - patch -p0 -i "$srcdir"/entity.patch - patch -p1 -i "$srcdir"/tinyxml-2.5.3-stl.patch + cd "${srcdir}/tinyxml" + patch -p0 -i "${srcdir}"/entity.patch + patch -p1 -i "${srcdir}"/tinyxml-2.5.3-stl.patch } build() { @@ -32,7 +31,7 @@ build() { cp -r "${srcdir}/tinyxml/"* "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" for file in $(ls *.cpp | grep -v xmltest); do - g++ -c -Wall -Wno-unknown-pragmas -Wno-format -O3 $file + g++ -c -Wall -Wno-unknown-pragmas -Wno-format -O3 ${file} done ar rcs -o libtinyxml.a $(ls *.o) g++ -shared -o libtinyxml-0.dll -Xlinker --out-implib -Xlinker libtinyxml.dll.a $(ls *.o) diff --git a/mingw-w64-tinyxml2/PKGBUILD b/mingw-w64-tinyxml2/PKGBUILD index fa85d17d5b..fd7ddbd669 100644 --- a/mingw-w64-tinyxml2/PKGBUILD +++ b/mingw-w64-tinyxml2/PKGBUILD @@ -2,7 +2,7 @@ _realname=tinyxml2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.2.0 +pkgver=3.0.0 pkgrel=1 pkgdesc="Simple, small, C++ XML parser that can be easily integrated into other programs (mingw-w64)" arch=('any') @@ -11,35 +11,45 @@ license=("zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' 'staticlibs') -source=(https://github.com/leethomason/tinyxml2/archive/${pkgver}.tar.gz) -md5sums=('3c7a9191c8f26e4f056a89902ac848b1') +source=(${_realname}-${pkgver}.tar.gz::https://github.com/leethomason/tinyxml2/archive/${pkgver}.tar.gz) +md5sums=('26584d2c1666aea5e664c105eb4e8153') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} - [[ -d $srcdir/build-${MINGW_CHOST} ]] && rm -rf $srcdir/build-${MINGW_CHOST} - mkdir $srcdir/build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} - + msg "Build shared version..." + mkdir shared && cd shared + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_STATIC_LIBS:BOOL=ON \ - ../${_realname}-$pkgver + -DBUILD_SHARED_LIBS=ON \ + ../../${_realname}-${pkgver} + make + + cd ${srcdir}/build-${MINGW_CHOST} + msg "Build static version..." + mkdir static && cd static + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + ../../${_realname}-${pkgver} make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/tinyxml2.pc + cd "${srcdir}/build-${MINGW_CHOST}/shared" + make DESTDIR=${pkgdir} install + + cp ${srcdir}/build-${MINGW_CHOST}/static/libtinyxml2.a ${pkgdir}${MINGW_PREFIX}/lib/ } diff --git a/mingw-w64-vtk/PKGBUILD b/mingw-w64-vtk/PKGBUILD index e4ab0f9487..b9db145636 100644 --- a/mingw-w64-vtk/PKGBUILD +++ b/mingw-w64-vtk/PKGBUILD @@ -3,7 +3,7 @@ _realname=vtk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=6.2.0 -pkgrel=1 +pkgrel=2 pkgdesc="A software system for 3D computer graphics, image processing and visualization (mingw-w64)" arch=('any') url="http://www.vtk.org/" @@ -37,7 +37,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-boost: InfovisBoost and InfovisBoostGraphAl "${MINGW_PACKAGE_PREFIX}-python2: Python bindings" "${MINGW_PACKAGE_PREFIX}-python2-matplotlib: Matplotlib renderer" "${MINGW_PACKAGE_PREFIX}-tk: TCL bindings, Python Tk widgets") -source=("https://github.com/Kitware/VTK/archive/v$pkgver.tar.gz" +source=(${_realname}-${pkgver}.tar.gz::"https://github.com/Kitware/VTK/archive/v${pkgver}.tar.gz" "vtk-mingw-w64.patch" "win64-ptr-cast.patch") md5sums=('742a2b3fbe5520c75d2a3925e8774040' @@ -64,11 +64,12 @@ build() { [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;-DVTK_INSTALL_QT_PLUGIN_DIR=;-DVTK_INSTALL_TCL_DIR=" \ ${MINGW_PREFIX}/bin/cmake.exe -Wno-dev \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -DVTK_INSTALL_QT_PLUGIN_DIR=${pkgdir}${MINGW_PREFIX}/share/qt5/plugins/designer \ - -DVTK_INSTALL_TCL_DIR=${pkgdir}${MINGW_PREFIX}/lib/vtk-${pkgver%.*} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DVTK_INSTALL_QT_PLUGIN_DIR=${MINGW_PREFIX}/share/qt5/plugins/designer \ + -DVTK_INSTALL_TCL_DIR=${MINGW_PREFIX}/lib/vtk-${pkgver%.*} \ -DBUILD_DOCUMENTATION=OFF \ -DBUILD_EXAMPLES=OFF \ -DBUILD_TESTING=OFF \ @@ -126,17 +127,15 @@ build() { package() { cd "${srcdir}/build-${CARCH}" - make -j1 install + make -j1 DESTDIR=${pkgdir} install - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null + #local PREFIX_DEPS=$(cygpath -am ${MINGW_PREFIX}) pushd ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}-${pkgver%.*} > /dev/null sed -s 's|Qt5::|Qt5|g' -i ./VTKTargets*.cmake - sed -s "s|${PREFIX_DEPS}|\${_IMPORT_PREFIX}|g" -i ./VTKTargets.cmake - find . -name '*.cmake' -exec \ - sed -s "s|${PREFIX_DEPS}|\${VTK_INSTALL_PREFIX}|g" -i {} \; + #sed -s "s|${PREFIX_DEPS}|\${_IMPORT_PREFIX}|g" -i ./VTKTargets.cmake + #find . -name '*.cmake' -exec \ + # sed -s "s|${PREFIX_DEPS}|\${VTK_INSTALL_PREFIX}|g" -i {} \; popd > /dev/null install -Dm644 ${srcdir}/${_realname}-${pkgver}/Copyright.txt \ diff --git a/mingw-w64-wavpack/PKGBUILD b/mingw-w64-wavpack/PKGBUILD index 61bd7a1b99..9a0ca9f1fe 100644 --- a/mingw-w64-wavpack/PKGBUILD +++ b/mingw-w64-wavpack/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=wavpack - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.70.0 +pkgver=4.75.0 pkgrel=1 pkgdesc="Audio compression format with lossless, lossy and hybrid compression modes (mingw-w64)" arch=('any') @@ -13,27 +12,27 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=(!libtool strip staticlibs) source=(http://www.wavpack.com/${_realname}-${pkgver}.tar.bz2) -sha1sums=('7bf2022c988c19067196ee1fdadc919baacf46d1') +sha1sums=('ef99ec8d2e91bcb486ad640cfec0d970f43eb750') prepare() { cd ${srcdir}/${_realname}-${pkgver} } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - ./configure \ + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --enable-mmx + --enable-shared \ + --enable-static + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-xvidcore/PKGBUILD b/mingw-w64-xvidcore/PKGBUILD index de5d166600..82270b82a6 100644 --- a/mingw-w64-xvidcore/PKGBUILD +++ b/mingw-w64-xvidcore/PKGBUILD @@ -3,7 +3,7 @@ _realname=xvidcore pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.4 -pkgrel=1 +pkgrel=2 pkgdesc="XviD is an open source MPEG-4 video codec (mingw-w64)" arch=('any') license=('GPL') diff --git a/mingw-w64-yaml-cpp/PKGBUILD b/mingw-w64-yaml-cpp/PKGBUILD index a710f4c26f..5e2833428d 100644 --- a/mingw-w64-yaml-cpp/PKGBUILD +++ b/mingw-w64-yaml-cpp/PKGBUILD @@ -1,61 +1,46 @@ # Maintainer: Alexey Pavlov _realname=yaml-cpp - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.5.1 -pkgrel=2 +pkgver=0.5.2 +pkgrel=1 pkgdesc="A YAML parser and emitter in C++ matching the YAML 1.2 spec (mingw-w64)" arch=('any') -url="https://code.google.com/p/yaml-cpp/" +url="https://github.com/jbeder/yaml-cpp" license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-boost") + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-python2") options=('staticlibs' 'strip') -source=(http://yaml-cpp.googlecode.com/files/${_realname}-${pkgver}.tar.gz - mingw-install-pkgconfig.patch) -md5sums=('0fa47a5ed8fedefab766592785c85ee7' +source=(${_realname}-${pkgver}.tar.gz::https://github.com/jbeder/yaml-cpp/archive/release-${pkgver}.tar.gz + mingw-install-pkgconfig.patch) +md5sums=('2728af8a15e2b2c407730c45b99b274b' 'acf096cb06ee28ecb730a8e0b0cf044d') prepare() { - cd ${srcdir}/${_realname}-${pkgver} + cd ${srcdir}/${_realname}-release-${pkgver} patch -p1 -i ${srcdir}/mingw-install-pkgconfig.patch } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - - mkdir $srcdir/build-${MINGW_CHOST} - - cd "$srcdir/build-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ - ../${_realname}-${pkgver} \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBUILD_SHARED_LIBS=OFF \ - ../${_realname}-${pkgver} + ../${_realname}-release-${pkgver} + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make -j1 install - install -Dm644 ${srcdir}/${_realname}-${pkgver}/license.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE - - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - cd ${pkgdir}${MINGW_PREFIX} - sed -i "s|$PREFIX_WIN|$MINGW_PREFIX|g" lib/pkgconfig/yaml-cpp.pc + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install + install -Dm644 ${srcdir}/${_realname}-release-${pkgver}/license.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-yaml-cpp0.3/PKGBUILD b/mingw-w64-yaml-cpp0.3/PKGBUILD index 1e577fda32..6bf6ae9142 100644 --- a/mingw-w64-yaml-cpp0.3/PKGBUILD +++ b/mingw-w64-yaml-cpp0.3/PKGBUILD @@ -1,62 +1,46 @@ # Maintainer: Alexey Pavlov _realname=yaml-cpp0.3 - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.3.0 pkgrel=2 pkgdesc="A YAML parser and emitter in C++ matching the YAML 1.2 spec (mingw-w64) - old version" arch=('any') -url="https://code.google.com/p/yaml-cpp/" +url="https://github.com/jbeder/yaml-cpp" license=("MIT") provides=("${MINGW_PACKAGE_PREFIX}-yaml-cpp") conflicts=("${MINGW_PACKAGE_PREFIX}-yaml-cpp") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-boost") + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('staticlibs' 'strip') -source=(http://yaml-cpp.googlecode.com/files/yaml-cpp-${pkgver}.tar.gz - mingw-install-pkgconfig.patch) -md5sums=('9aa519205a543f9372bf4179071c8ac6' +source=(yaml-cpp-${pkgver}.tar.gz::https://github.com/jbeder/yaml-cpp/archive/release-${pkgver}.tar.gz + mingw-install-pkgconfig.patch) +md5sums=('0c0496b195299e956056430444e237b9' 'acf096cb06ee28ecb730a8e0b0cf044d') prepare() { - cd ${srcdir}/yaml-cpp + cd ${srcdir}/yaml-cpp-release-${pkgver} patch -p1 -i ${srcdir}/mingw-install-pkgconfig.patch } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - - mkdir $srcdir/build-${MINGW_CHOST} - - cd "$srcdir/build-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ - ../yaml-cpp-${pkgver} \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBUILD_SHARED_LIBS=OFF \ - ../yaml-cpp + ../yaml-cpp-release-${pkgver} + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make -j1 install - - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - cd ${pkgdir}${MINGW_PREFIX} - sed -i "s|$PREFIX_WIN|$MINGW_PREFIX|g" lib/pkgconfig/yaml-cpp.pc + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install + install -Dm644 ${srcdir}/yaml-cpp-release-${pkgver}/license.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } From 4bd668f4bac2a76682f40b19e0fc2627218dada3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20H=C3=BCttner?= Date: Thu, 9 Jul 2015 19:04:44 +0200 Subject: [PATCH 1257/2060] Updated Openssl to Version 1.0.2d --- mingw-w64-openssl/PKGBUILD | 18 ++++---- mingw-w64-openssl/openssl-0.9.6-x509.patch | 6 +-- .../openssl-1.0.0a-ldflags.patch | 2 +- .../openssl-1.0.0d-windres.patch | 6 +-- mingw-w64-openssl/openssl-1.0.1-x32.patch | 8 ++-- .../openssl-1.0.1i-relocation.patch | 30 ++++++------- .../openssl-1.0.2a-parallel-build.patch | 45 +++++++++---------- 7 files changed, 55 insertions(+), 60 deletions(-) diff --git a/mingw-w64-openssl/PKGBUILD b/mingw-w64-openssl/PKGBUILD index 7edf24bac2..91df897ddb 100644 --- a/mingw-w64-openssl/PKGBUILD +++ b/mingw-w64-openssl/PKGBUILD @@ -2,10 +2,10 @@ _realname=openssl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -_ver=1.0.2c +_ver=1.0.2d # use a pacman compatible version scheme pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} -pkgrel=2 +pkgrel=1 arch=('any') pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") @@ -21,14 +21,14 @@ source=(http://www.openssl.org/source/${_realname}-${_ver}.tar.gz{,.asc} 'openssl-1.0.1-x32.patch' 'openssl-0.9.6-x509.patch' 'openssl-1.0.1i-relocation.patch') -md5sums=('8c8d81a9ae7005276e486702edbcd4b6' +md5sums=('38dd619b2e77cbac69b99f52a053d25a' 'SKIP' - '9e0abad8dd17079815d9e92345c5adcb' - '835a78dbe9c8690dbdd9190aaf5432e7' - '1d363d5e19c6eb4144b49f9daadefd5f' - '87610b76871d53d4b6f07374000dae87' - 'cae4eea6db48a254653fd1903cfabd15' - 'd8ed0865f35216a5e420e37d7a4e2515') + 'dd616e53eba607f5ab46634f93d5c5a5' + 'df46ea89a28b0bd18f13b9ab63d1ade3' + '7ea5aaac21cee0f89dfb58b03219caaa' + '7400927e547cd4c68d2af2fe0b322345' + '990d027cc82ff8b2acffead24073d43c' + '43e1787d8891f990e8fbe7dd4f6a258b') validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491') prepare() { diff --git a/mingw-w64-openssl/openssl-0.9.6-x509.patch b/mingw-w64-openssl/openssl-0.9.6-x509.patch index f769b35561..4c3222533b 100644 --- a/mingw-w64-openssl/openssl-0.9.6-x509.patch +++ b/mingw-w64-openssl/openssl-0.9.6-x509.patch @@ -2,7 +2,7 @@ Do not treat duplicate certs as an error. --- openssl-0.9.6/crypto/x509/by_file.c Wed Sep 27 15:09:05 2000 +++ openssl-0.9.6/crypto/x509/by_file.c Wed Sep 27 14:21:20 2000 -@@ -163,9 +163,12 @@ +@@ -152,9 +152,12 @@ } } i = X509_STORE_add_cert(ctx->store_ctx, x); @@ -18,7 +18,7 @@ Do not treat duplicate certs as an error. X509_free(x); x = NULL; } -@@ -179,8 +183,8 @@ +@@ -166,8 +169,8 @@ goto err; } i = X509_STORE_add_cert(ctx->store_ctx, x); @@ -31,7 +31,7 @@ Do not treat duplicate certs as an error. X509err(X509_F_X509_LOAD_CERT_FILE, X509_R_BAD_X509_FILETYPE); --- openssl-0.9.6/crypto/store/store.h 2009-08-12 00:57:20.000000000 +0200 +++ openssl-0.9.6/crypto/store/store.h 2009-08-12 01:00:27.000000000 +0200 -@@ -70,6 +70,13 @@ +@@ -77,6 +77,13 @@ extern "C" { #endif diff --git a/mingw-w64-openssl/openssl-1.0.0a-ldflags.patch b/mingw-w64-openssl/openssl-1.0.0a-ldflags.patch index ffe36fb6dd..ca74241a94 100644 --- a/mingw-w64-openssl/openssl-1.0.0a-ldflags.patch +++ b/mingw-w64-openssl/openssl-1.0.0a-ldflags.patch @@ -2,7 +2,7 @@ http://bugs.gentoo.org/327421 --- a/Makefile.org +++ b/Makefile.org -@@ -189,6 +189,7 @@ +@@ -216,6 +216,7 @@ MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD $(MAKEDEPPROG)' \ DEPFLAG='-DOPENSSL_NO_DEPRECATED $(DEPFLAG)' \ MAKEDEPPROG='$(MAKEDEPPROG)' \ diff --git a/mingw-w64-openssl/openssl-1.0.0d-windres.patch b/mingw-w64-openssl/openssl-1.0.0d-windres.patch index 428012c2db..2ef540e8fb 100644 --- a/mingw-w64-openssl/openssl-1.0.0d-windres.patch +++ b/mingw-w64-openssl/openssl-1.0.0d-windres.patch @@ -12,7 +12,7 @@ retrieving revision 1.621.2.40 diff -u -p -r1.621.2.40 Configure --- a/Configure 30 Nov 2010 22:19:26 -0000 1.621.2.40 +++ b/Configure 4 Jul 2011 23:12:32 -0000 -@@ -1094,6 +1094,7 @@ my $shared_extension = $fields[$idx_shar +@@ -1244,6 +1244,7 @@ my $shared_extension = $fields[$idx_shar my $ranlib = $ENV{'RANLIB'} || $fields[$idx_ranlib]; my $ar = $ENV{'AR'} || "ar"; my $arflags = $fields[$idx_arflags]; @@ -20,7 +20,7 @@ diff -u -p -r1.621.2.40 Configure my $multilib = $fields[$idx_multilib]; # if $prefix/lib$multilib is not an existing directory, then -@@ -1511,12 +1512,14 @@ while () +@@ -1706,12 +1707,14 @@ while () s/^AR=\s*/AR= \$\(CROSS_COMPILE\)/; s/^NM=\s*/NM= \$\(CROSS_COMPILE\)/; s/^RANLIB=\s*/RANLIB= \$\(CROSS_COMPILE\)/; @@ -50,7 +50,7 @@ diff -u -p -r1.295.2.10 Makefile.org NM= nm PERL= perl TAR= tar -@@ -180,6 +181,7 @@ BUILDENV= PLATFORM='$(PLATFORM)' PROCESS +@@ -207,6 +208,7 @@ BUILDENV= PLATFORM='$(PLATFORM)' PROCESS CC='$(CC)' CFLAG='$(CFLAG)' \ AS='$(CC)' ASFLAG='$(CFLAG) -c' \ AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)' \ diff --git a/mingw-w64-openssl/openssl-1.0.1-x32.patch b/mingw-w64-openssl/openssl-1.0.1-x32.patch index 985b78de4b..cfdeccdca3 100644 --- a/mingw-w64-openssl/openssl-1.0.1-x32.patch +++ b/mingw-w64-openssl/openssl-1.0.1-x32.patch @@ -12,7 +12,7 @@ Index: openssl-1.0.2a/Configure =================================================================== --- openssl-1.0.2a.orig/Configure +++ openssl-1.0.2a/Configure -@@ -393,6 +393,7 @@ my %table=( +@@ -217,6 +217,7 @@ my %table=( "debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "debug-linux-generic64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", @@ -24,7 +24,7 @@ Index: openssl-1.0.2a/crypto/bn/asm/x86_64-gcc.c =================================================================== --- openssl-1.0.2a.orig/crypto/bn/asm/x86_64-gcc.c +++ openssl-1.0.2a/crypto/bn/asm/x86_64-gcc.c -@@ -192,9 +192,9 @@ BN_ULONG bn_add_words (BN_ULONG *rp, con +@@ -212,9 +212,9 @@ BN_ULONG bn_add_words (BN_ULONG *rp, con asm volatile (" subq %0,%0 \n" /* clear carry */ " jmp 1f \n" ".p2align 4 \n" @@ -37,7 +37,7 @@ Index: openssl-1.0.2a/crypto/bn/asm/x86_64-gcc.c " lea 1(%2),%2 \n" " loop 1b \n" " sbbq %0,%0 \n":"=&r" (ret), "+c"(n), -@@ -215,9 +215,9 @@ BN_ULONG bn_sub_words (BN_ULONG *rp, con +@@ -238,9 +238,9 @@ BN_ULONG bn_sub_words (BN_ULONG *rp, con asm volatile (" subq %0,%0 \n" /* clear borrow */ " jmp 1f \n" ".p2align 4 \n" @@ -54,7 +54,7 @@ Index: openssl-1.0.2a/crypto/bn/bn.h =================================================================== --- openssl-1.0.2a.orig/crypto/bn/bn.h +++ openssl-1.0.2a/crypto/bn/bn.h -@@ -172,6 +172,13 @@ extern "C" { +@@ -173,6 +173,13 @@ extern "C" { # endif # endif diff --git a/mingw-w64-openssl/openssl-1.0.1i-relocation.patch b/mingw-w64-openssl/openssl-1.0.1i-relocation.patch index 9a8a9ad38e..b33a98546a 100644 --- a/mingw-w64-openssl/openssl-1.0.1i-relocation.patch +++ b/mingw-w64-openssl/openssl-1.0.1i-relocation.patch @@ -1,7 +1,7 @@ diff -Naur openssl-1.0.1i-orig/Configure openssl-1.0.1i/Configure --- openssl-1.0.1i-orig/Configure 2014-08-07 01:10:56.000000000 +0400 +++ openssl-1.0.1i/Configure 2014-08-08 00:23:45.884200000 +0400 -@@ -1803,6 +1803,12 @@ +@@ -1900,6 +1900,12 @@ $foo =~ s/\\/\\\\/g; print OUT "#define OPENSSLDIR \"$foo\"\n"; } @@ -17,17 +17,17 @@ diff -Naur openssl-1.0.1i-orig/Configure openssl-1.0.1i/Configure diff -Naur openssl-1.0.1i-orig/crypto/engine/eng_list.c openssl-1.0.1i/crypto/engine/eng_list.c --- openssl-1.0.1i-orig/crypto/engine/eng_list.c 2014-07-22 23:41:23.000000000 +0400 +++ openssl-1.0.1i/crypto/engine/eng_list.c 2014-08-08 00:32:40.141000000 +0400 -@@ -62,6 +62,7 @@ +@@ -63,6 +63,7 @@ */ #include "eng_int.h" +#include "pathtools.h" - /* The linked-list of pointers to engine types. engine_list_head - * incorporates an implicit structural reference but engine_list_tail -@@ -79,6 +80,24 @@ - /* This cleanup function is only needed internally. If it should be called, we - * register it with the "ENGINE_cleanup()" stack to be called during cleanup. */ + /* + * The linked-list of pointers to engine types. engine_list_head incorporates +@@ -84,6 +85,24 @@ + * cleanup. + */ +char * enginedir_relocation(const char *path) +{ @@ -48,9 +48,9 @@ diff -Naur openssl-1.0.1i-orig/crypto/engine/eng_list.c openssl-1.0.1i/crypto/en +} + static void engine_list_cleanup(void) - { - ENGINE *iterator = engine_list_head; -@@ -401,8 +420,10 @@ + { + ENGINE *iterator = engine_list_head; +@@ -371,8 +390,10 @@ if ((load_dir = getenv("OPENSSL_ENGINES")) == 0) load_dir = "SSLROOT:[ENGINES]"; # else @@ -66,7 +66,7 @@ diff -Naur openssl-1.0.1i-orig/crypto/engine/eng_list.c openssl-1.0.1i/crypto/en diff -Naur openssl-1.0.1i-orig/crypto/engine/Makefile openssl-1.0.1i/crypto/engine/Makefile --- openssl-1.0.1i-orig/crypto/engine/Makefile 2014-08-07 01:18:34.000000000 +0400 +++ openssl-1.0.1i/crypto/engine/Makefile 2014-08-08 00:41:21.195800000 +0400 -@@ -207,7 +207,7 @@ +@@ -209,7 +209,7 @@ eng_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h eng_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h eng_lib.o: ../cryptlib.h eng_int.h eng_lib.c @@ -78,7 +78,7 @@ diff -Naur openssl-1.0.1i-orig/crypto/engine/Makefile openssl-1.0.1i/crypto/engi diff -Naur openssl-1.0.1i-orig/crypto/Makefile openssl-1.0.1i/crypto/Makefile --- openssl-1.0.1i-orig/crypto/Makefile 2014-08-07 01:18:30.000000000 +0400 +++ openssl-1.0.1i/crypto/Makefile 2014-08-08 00:38:49.430000000 +0400 -@@ -34,9 +34,9 @@ +@@ -35,9 +35,9 @@ LIB= $(TOP)/libcrypto.a SHARED_LIB= libcrypto$(SHLIB_EXT) @@ -90,7 +90,7 @@ diff -Naur openssl-1.0.1i-orig/crypto/Makefile openssl-1.0.1i/crypto/Makefile uid.o o_time.o o_str.o o_dir.o o_fips.o o_init.o fips_ers.o $(CPUID_OBJ) SRC= $(LIBSRC) -@@ -213,6 +213,7 @@ +@@ -215,6 +215,7 @@ o_str.o: o_str.c o_str.h o_time.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h o_time.c o_time.o: o_time.h @@ -101,7 +101,7 @@ diff -Naur openssl-1.0.1i-orig/crypto/Makefile openssl-1.0.1i/crypto/Makefile diff -Naur openssl-1.0.1i-orig/crypto/opensslconf.h openssl-1.0.1i/crypto/opensslconf.h --- openssl-1.0.1i-orig/crypto/opensslconf.h 2014-08-07 01:18:45.000000000 +0400 +++ openssl-1.0.1i/crypto/opensslconf.h 2014-08-08 00:26:43.479000000 +0400 -@@ -86,6 +86,7 @@ +@@ -101,6 +101,7 @@ #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) @@ -679,7 +679,7 @@ diff -urN old/pathtools.h new/pathtools.h diff -Naur openssl-1.0.1i-orig/crypto/x509/Makefile openssl-1.0.1i/crypto/x509/Makefile --- openssl-1.0.1i-orig/crypto/x509/Makefile 2014-08-07 01:18:39.000000000 +0400 +++ openssl-1.0.1i/crypto/x509/Makefile 2014-08-08 00:39:56.382600000 +0400 -@@ -151,7 +151,7 @@ +@@ -153,7 +153,7 @@ x509_d2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h x509_d2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h x509_d2.o: ../cryptlib.h x509_d2.c diff --git a/mingw-w64-openssl/openssl-1.0.2a-parallel-build.patch b/mingw-w64-openssl/openssl-1.0.2a-parallel-build.patch index 280b8e0b57..053106d481 100644 --- a/mingw-w64-openssl/openssl-1.0.2a-parallel-build.patch +++ b/mingw-w64-openssl/openssl-1.0.2a-parallel-build.patch @@ -91,36 +91,31 @@ http://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest ctags $(SRC) --- openssl-1.0.2a/Makefile.org +++ openssl-1.0.2a/Makefile.org -@@ -274,17 +274,17 @@ - build_libs: build_crypto build_ssl build_engines +@@ -281,17 +281,17 @@ + build_libssl: build_ssl libssl.pc build_crypto: - @dir=crypto; target=all; $(BUILD_ONE_CMD) --build_ssl: -- @dir=ssl; target=all; $(BUILD_ONE_CMD) --build_engines: -- @dir=engines; target=all; $(BUILD_ONE_CMD) --build_apps: -- @dir=apps; target=all; $(BUILD_ONE_CMD) --build_tests: -- @dir=test; target=all; $(BUILD_ONE_CMD) --build_tools: -- @dir=tools; target=all; $(BUILD_ONE_CMD) + +@dir=crypto; target=all; $(BUILD_ONE_CMD) -+build_ssl: build_crypto + build_ssl: build_crypto +- @dir=ssl; target=all; $(BUILD_ONE_CMD) + +@dir=ssl; target=all; $(BUILD_ONE_CMD) -+build_engines: build_crypto + build_engines: build_crypto +- @dir=engines; target=all; $(BUILD_ONE_CMD) + +@dir=engines; target=all; $(BUILD_ONE_CMD) -+build_apps: build_libs + build_apps: build_libs +- @dir=apps; target=all; $(BUILD_ONE_CMD) + +@dir=apps; target=all; $(BUILD_ONE_CMD) -+build_tests: build_libs + build_tests: build_libs +- @dir=test; target=all; $(BUILD_ONE_CMD) + +@dir=test; target=all; $(BUILD_ONE_CMD) -+build_tools: build_libs + build_tools: build_libs +- @dir=tools; target=all; $(BUILD_ONE_CMD) + +@dir=tools; target=all; $(BUILD_ONE_CMD) all_testapps: build_libs build_testapps build_testapps: -@@ -536,9 +536,9 @@ +@@ -530,9 +530,9 @@ dist_pem_h: (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) @@ -132,7 +127,7 @@ http://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \ -@@ -547,12 +547,19 @@ +@@ -541,12 +541,19 @@ $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ $(INSTALL_PREFIX)$(OPENSSLDIR)/private @@ -153,7 +148,7 @@ http://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest @set -e; liblist="$(LIBS)"; for i in $$liblist ;\ do \ if [ -f "$$i" ]; then \ -@@ -636,12 +643,7 @@ +@@ -630,12 +640,7 @@ done; \ done @@ -187,7 +182,7 @@ http://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest fi; \ --- openssl-1.0.2a/test/Makefile +++ openssl-1.0.2a/test/Makefile -@@ -133,7 +133,7 @@ +@@ -134,7 +134,7 @@ tags: ctags $(SRC) @@ -196,7 +191,7 @@ http://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest apps: @(cd ..; $(MAKE) DIRS=apps all) -@@ -402,121 +402,121 @@ +@@ -408,121 +408,121 @@ link_app.$${shlib_target} $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO) @@ -355,9 +350,9 @@ http://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest - @target=$(CONSTTIMETEST) $(BUILD_CMD) + +@target=$(CONSTTIMETEST) $(BUILD_CMD) - #$(AESTEST).o: $(AESTEST).c - # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c -@@ -529,7 +529,7 @@ + $(VERIFYEXTRATEST)$(EXE_EXT): $(VERIFYEXTRATEST).o + @target=$(VERIFYEXTRATEST) $(BUILD_CMD) +@@ -538,7 +538,7 @@ # fi dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO) From 57eff5a96c4daf0a9296b1d6db7e626bd6b1d231 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Thu, 9 Jul 2015 18:52:46 +0100 Subject: [PATCH 1258/2060] clang-svn: more work on libc++ linking, we just need unwind now from rt --- .../0011-Add-Clang-MinGW-w64-driver.patch | 111 ++++++++++++++---- mingw-w64-clang-svn/PKGBUILD | 2 +- 2 files changed, 86 insertions(+), 27 deletions(-) diff --git a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch index 5f336e4134..6daa7c7f2d 100644 --- a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch +++ b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch @@ -1,4 +1,4 @@ -From 7294b887148ee9a45cab5d1596dbc79a1813904b Mon Sep 17 00:00:00 2001 +From 864b59b45d091d8fd31142bf016e640f10fd2fb7 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Thu, 2 Jul 2015 09:24:03 +0100 Subject: [PATCH] Add Clang MinGW-w64 driver @@ -17,7 +17,7 @@ index 9855c7d..cc13db1 100644 def pie : Flag<["-"], "pie">; def read__only__relocs : Separate<["-"], "read_only_relocs">; diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp -index 86b3681..f153602 100644 +index 86b3681..6ff1172 100644 --- a/lib/Driver/MinGWToolChain.cpp +++ b/lib/Driver/MinGWToolChain.cpp @@ -9,6 +9,7 @@ @@ -28,7 +28,29 @@ index 86b3681..f153602 100644 #include "clang/Driver/Options.h" #include "llvm/Option/ArgList.h" #include "llvm/Support/FileSystem.h" -@@ -128,21 +129,40 @@ void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, +@@ -113,13 +114,16 @@ void MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, + if (DriverArgs.hasArg(options::OPT_nostdlibinc)) + return; + +- llvm::SmallString<1024> IncludeDir(GccLibDir); +- llvm::sys::path::append(IncludeDir, "include"); +- addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); +- IncludeDir += "-fixed"; +- addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); + addSystemInclude(DriverArgs, CC1Args, Base + Arch + "include"); + addSystemInclude(DriverArgs, CC1Args, Base + "include"); ++ ++ if (GetRuntimeLibType(DriverArgs) == ToolChain::RLT_Libgcc) { ++ llvm::SmallString<1024> IncludeDir(GccLibDir); ++ llvm::sys::path::append(IncludeDir, "include"); ++ addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); ++ IncludeDir += "-fixed"; ++ addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); ++ } + } + + void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, +@@ -128,21 +132,71 @@ void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, DriverArgs.hasArg(options::OPT_nostdincxx)) return; @@ -50,7 +72,9 @@ index 86b3681..f153602 100644 - addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); + switch (GetCXXStdlibType(DriverArgs)) { + case ToolChain::CST_Libcxx: -+ addSystemInclude(DriverArgs, CC1Args, Base + "include" + "c++" + "v1"); ++ addSystemInclude(DriverArgs, CC1Args, Base + "include" + ++ llvm::sys::path::get_separator() + "c++" + ++ llvm::sys::path::get_separator() + "v1"); + break; + + case ToolChain::CST_Libstdcxx: @@ -72,34 +96,68 @@ index 86b3681..f153602 100644 + addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); + } + break; - } - } ++ } ++} ++ ++void MinGW::AddCXXStdlibLibArgs(const llvm::opt::ArgList &DriverArgs, ++ llvm::opt::ArgStringList &CmdArgs) const { ++ switch (GetCXXStdlibType(DriverArgs)) { ++ case ToolChain::CST_Libcxx: ++ CmdArgs.push_back("-lc++"); ++ CmdArgs.push_back("-lc++abi"); ++ break; ++ ++ case ToolChain::CST_Libstdcxx: ++ CmdArgs.push_back("-lstdc++"); ++ break; ++ } ++} ++ ++ToolChain::RuntimeLibType MinGW::GetRuntimeLibType(const ArgList &Args) const{ ++ if (Arg *A = Args.getLastArg(options::OPT_rtlib_EQ)) { ++ StringRef Value = A->getValue(); ++ if (Value == "compiler-rt") ++ return ToolChain::RLT_CompilerRT; ++ if (Value == "libgcc") ++ return ToolChain::RLT_Libgcc; ++ getDriver().Diag(diag::err_drv_invalid_rtlib_name) ++ << A->getAsString(Args); ++ } ++ return ToolChain::RLT_CompilerRT; ++} + +ToolChain::CXXStdlibType MinGW::GetCXXStdlibType(const ArgList &Args) const{ -+ StringRef Value = Args.getLastArgValue(options::OPT_stdlib_EQ, "libc++"); -+ if (Value == "libc++") -+ return ToolChain::CST_Libcxx; -+ if (Value == "libstdc++") -+ return ToolChain::CST_Libstdcxx; -+ getDriver().Diag(diag::err_drv_invalid_stdlib_name) -+ << Value; ++ if (Arg *A = Args.getLastArg(options::OPT_stdlib_EQ)) { ++ StringRef Value = A->getValue(); ++ if (Value == "libc++") ++ return ToolChain::CST_Libcxx; ++ if (Value == "libstdc++") ++ return ToolChain::CST_Libstdcxx; ++ getDriver().Diag(diag::err_drv_invalid_stdlib_name) ++ << A->getAsString(Args); + } + return ToolChain::CST_Libcxx; -+} + } diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h -index 05066ee..60e72da 100644 +index 05066ee..1c570ca 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h -@@ -543,6 +543,8 @@ public: +@@ -543,6 +543,13 @@ public: void AddClangCXXStdlibIncludeArgs( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; ++ void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, ++ llvm::opt::ArgStringList &CmdArgs) const override; ++ + CXXStdlibType GetCXXStdlibType( ++ const llvm::opt::ArgList &Args) const override; ++ RuntimeLibType GetRuntimeLibType( + const llvm::opt::ArgList &Args) const override; protected: Tool *getTool(Action::ActionClass AC) const override; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 058fdf5..53e6f20 100644 +index 058fdf5..74f5103 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -2239,8 +2239,7 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, @@ -127,7 +185,7 @@ index 058fdf5..53e6f20 100644 SmallString<128> Path = getCompilerRTLibDir(TC); llvm::sys::path::append(Path, Prefix + Twine("clang_rt.") + Component + "-" + -@@ -8826,19 +8827,29 @@ void MinGW::Assembler::ConstructJob(Compilation &C, const JobAction &JA, +@@ -8826,20 +8827,30 @@ void MinGW::Assembler::ConstructJob(Compilation &C, const JobAction &JA, SplitDebugName(Args, Inputs[0])); } @@ -146,15 +204,13 @@ index 058fdf5..53e6f20 100644 - } else { - CmdArgs.push_back("-lgcc"); - CmdArgs.push_back("-lgcc_eh"); -+ StringRef Runtime = Args.getLastArgValue(options::OPT_rtlib_EQ, "compiler-rt"); -+ if (Runtime.equals_lower("compiler-rt")) { -+ CmdArgs.push_back(Args.MakeArgString(getCompilerRT(TC, "builtins"))); -+ if (getToolChain().GetCXXStdlibType(Args) == ToolChain::CST_Libstdcxx) -+ if (TC.getDriver().CCCIsCXX()) -+ CmdArgs.push_back("-lgcc_eh"); -+ } + -+ if (Runtime.equals_lower("libgcc")) { ++ switch (TC.GetRuntimeLibType(Args)) { ++ case ToolChain::RLT_CompilerRT: ++ CmdArgs.push_back(Args.MakeArgString(getCompilerRT(TC, "builtins"))); ++ break; ++ ++ case ToolChain::RLT_Libgcc: + if (Args.hasArg(options::OPT_shared) || + Args.hasArg(options::OPT_shared_libgcc) || + !Args.hasArg(options::OPT_static_libgcc)) { @@ -164,9 +220,12 @@ index 058fdf5..53e6f20 100644 + CmdArgs.push_back("-lgcc"); + CmdArgs.push_back("-lgcc_eh"); + } ++ break; } ++ CmdArgs.push_back("-lmoldname"); CmdArgs.push_back("-lmingwex"); + CmdArgs.push_back("-lmsvcrt"); @@ -8864,6 +8875,12 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, // handled somewhere else. Args.ClaimAllArgs(options::OPT_w); diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 3907830841..803020651d 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -70,7 +70,7 @@ md5sums=('SKIP' 'SKIP' '9b93c8e61c7480c551564d06c08291aa' 'a384d4607d9dcdfdcac6912ac413ec58' - '10385637cb1b2355b1a91fdefc26e766' + 'b6b1fdf2ee41ce16ddaf59892bdfd333' '6c31dc05b01f038d10ceb5e88c5fe9f5' 'e6ce086a33256043af99a5690b251be8' '259b2ca36651bff1cb3e095608129ddf' From 129fffebf2d98a3660d0155d969e6ac458cb4ae8 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 10 Jul 2015 09:42:49 +0300 Subject: [PATCH 1259/2060] poppler: Update to 0.34.0 --- mingw-w64-poppler/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index aafc5274e4..d8c5921e97 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -2,8 +2,8 @@ _realname=poppler pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.33.0 -pkgrel=2 +pkgver=0.34.0 +pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') url="http://poppler.freedesktop.org" @@ -28,7 +28,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" options=('strip' 'staticlibs') source=("http://poppler.freedesktop.org/${_realname}-${pkgver}.tar.xz" "give-cc-to-gir-scanner.mingw.patch") -md5sums=('69927d1614d6704021c0b0dd0ee6a852' +md5sums=('7d788f85bca1c03d71773af0b902e203' '727c1b414987f6ee2ba841d9db57a967') prepare() { From 341d4deab53985982a217757b954c23acc8dd2a7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 10 Jul 2015 15:08:05 +0300 Subject: [PATCH 1260/2060] qt4: More fixes to configure script. --- mingw-w64-qt4/PKGBUILD | 114 +++++------ mingw-w64-qt4/qt-4.8.7-mingw-configure.patch | 187 ++++++++++++++++++- 2 files changed, 241 insertions(+), 60 deletions(-) diff --git a/mingw-w64-qt4/PKGBUILD b/mingw-w64-qt4/PKGBUILD index e231315b5d..b3c5575759 100644 --- a/mingw-w64-qt4/PKGBUILD +++ b/mingw-w64-qt4/PKGBUILD @@ -3,45 +3,45 @@ _realname=qt4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.8.7 -pkgrel=2 +pkgrel=3 arch=('any') url='http://qt-project.org/' install=qt4-${CARCH}.install license=('GPL3' 'LGPL' 'FDL' 'custom') conflicts=("${MINGW_PACKAGE_PREFIX}-qt5") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-dbus" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-libiconv" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libmng" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-libwebp" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-libxslt" - "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-pcre" - "${MINGW_PACKAGE_PREFIX}-qtbinpatcher" - "${MINGW_PACKAGE_PREFIX}-sqlite3" - "${MINGW_PACKAGE_PREFIX}-zlib") + "${MINGW_PACKAGE_PREFIX}-dbus" + "${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libmng" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-pcre" + "${MINGW_PACKAGE_PREFIX}-qtbinpatcher" + "${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("bison" - "flex" - "gperf" - "lndir" - "m4" - "perl" - "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-firebird2" - "${MINGW_PACKAGE_PREFIX}-libmariadbclient" - "${MINGW_PACKAGE_PREFIX}-postgresql" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-ruby" - "${MINGW_PACKAGE_PREFIX}-sqlite3" - #"${MINGW_PACKAGE_PREFIX}-perl" - #"${MINGW_PACKAGE_PREFIX}-gperf" + "flex" + "gperf" + "lndir" + "m4" + "perl" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-firebird2" + "${MINGW_PACKAGE_PREFIX}-libmariadbclient" + "${MINGW_PACKAGE_PREFIX}-postgresql" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-ruby" + "${MINGW_PACKAGE_PREFIX}-sqlite3" + #"${MINGW_PACKAGE_PREFIX}-perl" + #"${MINGW_PACKAGE_PREFIX}-gperf" ) optdepends=($([[ "$_variant" == "-shared" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-libmariadbclient" \ @@ -93,7 +93,7 @@ md5sums=('d990ee66bf7ab0c785589776f35ba6ad' '68657fc5b131e2c5e3532b61e2c3da42' '562ababd98ecca9e3a6cbc9b70e8f7f9' '49c33922e8f3c506cb7cc15cbe9b4a0a' - '0f179f2ea5740f97345e10329c75d406' + 'a90f328568d90838fd3fb1d32e99e579' 'fc3b3f45db0eda55d429310faf529ae9') prepare() { @@ -123,10 +123,10 @@ prepare() { patch -p1 -i ${srcdir}/qt4-build-debug-qmake.patch fi - cd ${srcdir} - mkdir ${CARCH} - lndir ${srcdir}/${_pkgfqn} ${srcdir}/${CARCH} - cd ${CARCH} + #cd ${srcdir} + #mkdir ${CARCH} + #lndir ${srcdir}/${_pkgfqn} ${srcdir}/${CARCH} + #cd ${CARCH} local _optim= case ${MINGW_CHOST} in @@ -142,28 +142,32 @@ prepare() { sed -i "s|^QMAKE_CFLAGS =\(.*\)$|QMAKE_CFLAGS = \1 ${_optim} |g" mkspecs/win32-g++/qmake.conf sed -i "s|^QMAKE_LFLAGS =\(.*\)$|QMAKE_LFLAGS = \1 ${STATIC_LD}|g" mkspecs/win32-g++/qmake.conf + + cd ${srcdir} + mv ${_pkgfqn} ${_realname}-${pkgver} } build() { - cd $srcdir/${CARCH} + cd ${srcdir}/${_realname}-${pkgver} mkdir -p ${pkgdir}${MINGW_PREFIX} local QTDIR_WIN=$(cygpath -wm ${pkgdir}${MINGW_PREFIX}) - local pkg_conf_inc=$(pkg-config --cflags-only-I libxml-2.0 dbus-1) + local pkg_conf_inc="-I ${MINGW_PREFIX}/include/mariadb" + #pkg_conf_inc=$(pkg-config --dont-define-prefix --cflags-only-I libxml-2.0 dbus-1) export PATH=${srcdir}/${CARCH}/bin:${srcdir}/${CARCH}/lib:${PATH} ./configure \ -prefix ${pkgdir}${MINGW_PREFIX} \ - -datadir ${QTDIR_WIN}/share/qt4 \ - -docdir ${QTDIR_WIN}/share/qt4/doc \ - -headerdir ${QTDIR_WIN}/include/qt4 \ - -plugindir ${QTDIR_WIN}/share/qt4/plugins \ - -importdir ${QTDIR_WIN}/share/qt4/imports \ - -translationdir ${QTDIR_WIN}/share/qt4/translations \ - -sysconfdir ${QTDIR_WIN}/etc \ - -examplesdir ${QTDIR_WIN}/share/qt4/examples \ - -demosdir ${QTDIR_WIN}/share/qt4/demos \ + -datadir ${pkgdir}${MINGW_PREFIX}/share/qt4 \ + -docdir ${pkgdir}${MINGW_PREFIX}/share/qt4/doc \ + -headerdir ${pkgdir}${MINGW_PREFIX}/include/qt4 \ + -plugindir ${pkgdir}${MINGW_PREFIX}/share/qt4/plugins \ + -importdir ${pkgdir}${MINGW_PREFIX}/share/qt4/imports \ + -translationdir ${pkgdir}${MINGW_PREFIX}/share/qt4/translations \ + -sysconfdir ${pkgdir}${MINGW_PREFIX}/etc \ + -examplesdir ${pkgdir}${MINGW_PREFIX}/share/qt4/examples \ + -demosdir ${pkgdir}${MINGW_PREFIX}/share/qt4/demos \ -opensource \ -confirm-license \ -debug-and-release \ @@ -175,7 +179,6 @@ build() { -plugin-sql-sqlite \ -plugin-sql-odbc \ -fontconfig \ - -freetype \ -openssl \ -dbus \ -shared \ @@ -192,18 +195,20 @@ build() { -phonon \ -phonon-backend \ -javascript-jit \ - -qt-libmng \ - -system-zlib \ + -system-libmng \ -system-libtiff \ -system-libpng \ -system-libjpeg \ -system-sqlite \ - -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-neon \ + -system-zlib \ + -native-gestures \ + -s60 \ + -largefile \ + -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-neon \ -nomake tests \ -nomake demos \ -nomake examples \ -verbose \ - -I ${MINGW_PREFIX}/include/mariadb \ ${pkg_conf_inc} # Fix building @@ -214,8 +219,7 @@ build() { } package() { - - cd ${srcdir}/${CARCH} + cd ${srcdir}/${_realname}-${pkgver} export PATH=${srcdir}/${CARCH}/bin:${PATH} make install rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.dll diff --git a/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch index c6ebfc9d56..b15889c4bc 100644 --- a/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch +++ b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch @@ -22,7 +22,24 @@ #license file location LICENSE_FILE="$QT_LICENSE_FILE" -@@ -1376,7 +1386,11 @@ +@@ -753,6 +763,7 @@ + CFG_ZLIB=auto + CFG_SYMBIAN_DEFFILES=auto + CFG_S60=auto ++CFG_NATIVE_GESTURES=auto + CFG_SQLITE=qt + CFG_GIF=auto + CFG_TIFF=auto +@@ -1144,7 +1155,7 @@ + VAL=no + ;; + #Qt style yes options +- -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-harfbuzz|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-declarative-debug|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config|-s60|-usedeffiles|-icu) ++ -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-harfbuzz|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-declarative-debug|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config|-s60|-native-gestures|-usedeffiles|-icu) + VAR=`echo $1 | sed "s,^-\(.*\),\1,"` + VAL=yes + ;; +@@ -1376,7 +1387,11 @@ CFG_PSQL_CONFIG="$VAL" ;; prefix) @@ -35,7 +52,21 @@ ;; hostprefix) QT_HOST_PREFIX="$VAL" -@@ -2966,6 +2776,12 @@ +@@ -1988,6 +2003,13 @@ + UNKNOWN_OPT=yes + fi + ;; ++ native-gestures) ++ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then ++ CFG_NATIVE_GESTURES="$VAL" ++ else ++ UNKNOWN_OPT=yes ++ fi ++ ;; + usedeffiles) + if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then + CFG_SYMBIAN_DEFFILES="$VAL" +@@ -2966,6 +2988,12 @@ - Also available for Reliant UNIX: reliant-cds-64 " ;; @@ -48,7 +79,7 @@ CYGWIN*:*) PLATFORM=cygwin-g++ ;; -@@ -3754,6 +3774,8 @@ +@@ -3754,6 +3782,8 @@ if [ -z "$QT_INSTALL_SETTINGS" ]; then #default if [ "$PLATFORM_MAC" = "yes" ]; then QT_INSTALL_SETTINGS=/Library/Preferences/Qt @@ -57,7 +88,23 @@ else QT_INSTALL_SETTINGS=/etc/xdg fi -@@ -4943,7 +4965,15 @@ +@@ -4545,6 +4575,15 @@ + EOF + fi + ++if [ "$XPLATFORM_MINGW" = "yes" ]; then ++ cat << EOF ++ ++Qt for Windows only: ++ -no-native-gestures ............ Do not use native gestures on Windows 7. ++ + -native-gestures ............... Use native gestures on Windows 7. ++EOF ++fi ++ + if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then + cat << EOF + +@@ -4943,7 +4982,15 @@ #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured rm -rf mkspecs/default @@ -74,7 +121,7 @@ # fix makefiles for mkfile in GNUmakefile Makefile; do EXTRA_LFLAGS= -@@ -4953,7 +4985,11 @@ +@@ -4953,7 +5000,11 @@ # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then # (cd qmake && qmake) >/dev/null 2>&1 && continue # fi @@ -87,3 +134,133 @@ fi in_mkfile="$relpath/qmake/$in_mkfile" mkfile="$outpath/qmake/$mkfile" +@@ -5357,7 +5408,7 @@ + fi + + # check IPC support +-if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then ++if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then + # Raptor does not support configure tests. + if ! compileTest unix/ipc_sysv "ipc_sysv" ; then + # SYSV IPC is not supported - check POSIX IPC +@@ -5410,6 +5461,13 @@ + CFG_LARGEFILE=yes + fi + ++if [ "$CFG_NATIVE_GESTURES" = auto ]; then ++ if [ "$XPLATFORM_MINGW" = "yes" ]; then ++ CFG_NATIVE_GESTURES=yes ++ else ++ CFG_NATIVE_GESTURES=no ++ fi ++fi + + if [ "$CFG_S60" = "auto" ]; then + if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then +@@ -5574,7 +5632,7 @@ + if [ "$CFG_SQL_psql" != "no" ]; then + [ -z "$CFG_PSQL_CONFIG" ] && CFG_PSQL_CONFIG=`"$WHICH" pg_config` + # Be careful not to use native pg_config when cross building. +- if [ "$XPLATFORM_MINGW" != "yes" ] && [ -x "$CFG_PSQL_CONFIG" ]; then ++ if [ -x "$CFG_PSQL_CONFIG" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then + QT_CFLAGS_PSQL=`$CFG_PSQL_CONFIG --includedir 2>/dev/null` + QT_LFLAGS_PSQL=`$CFG_PSQL_CONFIG --libdir 2>/dev/null` + fi +@@ -6694,6 +6752,24 @@ + + fi # QWS + ++if [ "$XPLATFORM_MINGW" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then ++ # auto-detect FontConfig support ++ if [ "$CFG_FONTCONFIG" != "no" ]; then ++ if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then ++ QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null` ++ QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null` ++ else ++ QT_CFLAGS_FONTCONFIG= ++ QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig" ++ fi ++ if compileTest x11/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then ++ QT_CONFIG="$QT_CONFIG fontconfig" ++ QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG" ++ QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG" ++ fi ++ fi ++fi # MINGW ++ + EGL_VARIANT=none + # EGL Support + if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then +@@ -7393,7 +7470,7 @@ + QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR" + QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR" + fi +-if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then ++if [ "$CFG_LARGEFILE" = "yes" ]; then + QMAKE_CONFIG="$QMAKE_CONFIG largefile" + fi + if [ "$CFG_STL" = "no" ]; then +@@ -7664,6 +7741,10 @@ + # Follow default behavior of configure.exe by overriding with "rtti" + # (also on Symbian). + QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti" ++ ++ if [ "$CFG_NATIVE_GESTURES" = "yes" ]; then ++ QTCONFIG_CONFIG="$QTCONFIG_CONFIG native-gestures" ++ fi + fi + + if [ "$CFG_ALSA" = "yes" ]; then +@@ -8258,6 +8339,15 @@ + ;; + esac + ++if [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_SHARED" = "yes" ]; then ++ cat >>"$outpath/src/corelib/global/qconfig.h.new" <>"$outpath/src/corelib/global/qconfig.h.new" <>"$outpath/src/corelib/global/qconfig.h.new" + [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new" + +-if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then ++if [ "$CFG_LARGEFILE" = "yes" ]; then + echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new" + fi + +@@ -8503,7 +8593,7 @@ + [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV" + [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB" + [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK" +-if [ "$XPLATFORM_SYMBIAN" = "no" ]; then ++if [ "$XPLATFORM_SYMBIAN" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then + # Do not apply following negative X11/Unix/Mac only flags on Symbian, so that + # configuration matches with the one generated by configure executable tool + [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS" +@@ -8999,6 +9089,7 @@ + fi + echo "Support for S60 ........ $CFG_S60" + echo "Symbian DEF files ...... $CFG_SYMBIAN_DEFFILES" ++echo "Use native gestures .... $CFG_NATIVE_GESTURES" + echo "STL support ............ $CFG_STL" + echo "PCH support ............ $CFG_PRECOMPILE" + echo "MMX/3DNOW/SSE/SSE2/SSE3. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}/${CFG_SSE3}" +@@ -9047,6 +9138,10 @@ + fi + echo "zlib support ........... $CFG_ZLIB" + echo "Session management ..... $CFG_SM" ++if [ "$XPLATFORM_MINGW" = "yes" ]; then ++ echo "Freetype2 support ...... $CFG_LIBFREETYPE" ++ echo "FontConfig support ..... $CFG_FONTCONFIG" ++fi + if [ "$PLATFORM_QWS" = "yes" ]; then + echo "Embedded support ....... $CFG_EMBEDDED" + if [ "$CFG_QWS_FREETYPE" = "auto" ]; then From 3c3d97c65771954c9ba3703de4eb33a106e5c06f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 10 Jul 2015 16:37:36 +0300 Subject: [PATCH 1261/2060] === Rebuild with GCC-5.1.0. Part VI === --- .../0000-build-fix.patch | 14 ----- mingw-w64-angleproject-git/PKGBUILD | 6 +- ...lude-import-library-and-use-def-file.patch | 28 ++++++---- mingw-w64-dbus-glib/PKGBUILD | 15 ++--- mingw-w64-geoclue/PKGBUILD | 18 +++--- mingw-w64-geoclue/gio-win.patch | 20 +++++++ mingw-w64-webkitgtk3/PKGBUILD | 56 +++++++++---------- mingw-w64-windows-default-manifest/PKGBUILD | 2 +- 8 files changed, 86 insertions(+), 73 deletions(-) create mode 100644 mingw-w64-geoclue/gio-win.patch diff --git a/mingw-w64-angleproject-git/0000-build-fix.patch b/mingw-w64-angleproject-git/0000-build-fix.patch index 9643c9bf27..ca8359d139 100644 --- a/mingw-w64-angleproject-git/0000-build-fix.patch +++ b/mingw-w64-angleproject-git/0000-build-fix.patch @@ -75,17 +75,3 @@ index c4b79ee..f22609b 100644 typedef BOOL(WINAPI *PFNWGLMAKECURRENTPROC)(HDC, HGLRC); typedef BOOL(WINAPI *PFNWGLSHARELISTSPROC)(HGLRC, HGLRC); typedef BOOL(WINAPI *PFNWGLUSEFONTBITMAPSAPROC)(HDC, DWORD, DWORD, DWORD); -diff --git a/src/libGLESv2.gypi b/src/libGLESv2.gypi -index b8d9944..a581c8d 100644 ---- a/src/libGLESv2.gypi -+++ b/src/libGLESv2.gypi -@@ -716,6 +716,9 @@ - 'msvs_enable_winphone' : '1', - }], - ], -+ 'libraries': [ -+ '-ldxguid -ld3d9 -lgdi32' -+ ] - }, - ], - } diff --git a/mingw-w64-angleproject-git/PKGBUILD b/mingw-w64-angleproject-git/PKGBUILD index 1dc5eff551..945ce97c8f 100644 --- a/mingw-w64-angleproject-git/PKGBUILD +++ b/mingw-w64-angleproject-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=angleproject pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=2.1.r4562 +pkgver=2.1.r4611 pkgrel=1 pkgdesc='Angle project built from git source (mingw-w64)' arch=('any') @@ -21,9 +21,9 @@ source=("angleproject"::git+https://chromium.googlesource.com/angle/angle libEGL_mingw32.def libGLESv2_mingw32.def) md5sums=('SKIP' - 'df05362804c1a49515b886b2ae94e466' + '3caf19560f2b8cac70f4a27b23093775' '70615a5e327a53fd60cc4dec916842c0' - 'a9d50a4c18e1eedf007b2b21c9a7516c' + '3586b5bcf9f7d57d87a5c783fb9b44b3' '232a2f50c3b55247f95fecfab1bec60e' 'f5519fd7fc7f654c0805fbd802a5722d') pkgver() { diff --git a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch index 6430f0aead..502ac1d112 100644 --- a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch +++ b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch @@ -1,6 +1,6 @@ ---- angleproject/src/libEGL.gypi.orig 2015-03-27 12:16:37.200400000 +0300 -+++ angleproject/src/libEGL.gypi 2015-03-27 12:21:32.352400000 +0300 -@@ -47,6 +47,12 @@ +--- angleproject/src/libEGL.gypi.orig 2015-07-10 11:42:08.230786800 +0300 ++++ angleproject/src/libEGL.gypi 2015-07-10 11:44:01.168491900 +0300 +@@ -48,7 +48,16 @@ { 'msvs_enable_winphone' : '1', }], @@ -11,13 +11,17 @@ + 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a' ], + }], ], ++ 'libraries': [ ++ '-ldxguid -ld3d9 -lgdi32' ++ ] }, ], ---- angleproject/src/libGLESv2.gypi.orig 2015-03-27 12:17:45.575200000 +0300 -+++ angleproject/src/libGLESv2.gypi 2015-03-27 12:19:50.032000000 +0300 -@@ -721,6 +721,12 @@ - { - 'msvs_enable_winphone' : '1', + } +--- angleproject/src/libGLESv2.gypi.orig 2015-07-10 11:41:58.223787600 +0300 ++++ angleproject/src/libGLESv2.gypi 2015-07-10 11:44:36.585949800 +0300 +@@ -783,7 +783,16 @@ + ], + }, }], + ['TARGET=="win32"', { + 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a' ], @@ -26,5 +30,9 @@ + 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a' ], + }], ], - 'libraries': [ - '-ldxguid -ld3d9 -lgdi32' ++ 'libraries': [ ++ '-ldxguid -ld3d9 -lgdi32' ++ ] + }, + ], + } diff --git a/mingw-w64-dbus-glib/PKGBUILD b/mingw-w64-dbus-glib/PKGBUILD index 72416c709a..8d2a80ad85 100644 --- a/mingw-w64-dbus-glib/PKGBUILD +++ b/mingw-w64-dbus-glib/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=dbus-glib - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.102 +pkgver=0.104 pkgrel=1 arch=('any') pkgdesc="D-Bus Message Bus System (mingw-w64)" @@ -13,7 +12,7 @@ options=('strip' 'staticlibs') license=("BSD") url="http://www.freedesktop.org/wiki/Software/dbus" source=("http://dbus.freedesktop.org/releases/${_realname}/${_realname}-${pkgver}.tar.gz"{,.asc}) -md5sums=('f76b8558fd575d0106c3a556eaa49184' +md5sums=('5497d2070709cf796f1878c75a72a039' 'SKIP') prepare() { @@ -31,14 +30,12 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --enable-shared \ - --disable-static + --enable-static + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm - #rm -rf "${pkgdir}${MINGW_PREFIX}"/share/man - #rm -rf "${pkgdir}${MINGW_PREFIX}"/{etc,var,libexec,share} + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-geoclue/PKGBUILD b/mingw-w64-geoclue/PKGBUILD index 5422914bee..11e229b3e9 100644 --- a/mingw-w64-geoclue/PKGBUILD +++ b/mingw-w64-geoclue/PKGBUILD @@ -3,7 +3,8 @@ _realname=geoclue pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.12.99 -pkgrel=2 +#pkgver=2.2.0 +pkgrel=3 arch=('any') pkgdesc="Modular Geoinformation Service (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" @@ -19,13 +20,16 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-libsoup: Skyhook location provider") options=('strip' 'staticlibs') license=("BSD") url="http://geoclue.freedesktop.org/" -source=(http://freedesktop.org/~hadess/${_realname}-$pkgver.tar.gz +source=(http://freedesktop.org/~hadess/${_realname}-${pkgver}.tar.gz + #http://freedesktop.org/software/geoclue/releases/${pkgver:0:3}/${_realname}-${pkgver}.tar.xz geoclue-0.12.0-win32reloc.patch geoclue-0.12.99-ldflags.patch + gio-win.patch ) md5sums=('779245045bfeeec4853da8baaa3a18e6' '175021cc9767407260908f315d3c36d3' - 'b446a0942aaa88bfbc2e8ec47bb24877') + 'b446a0942aaa88bfbc2e8ec47bb24877' + '52e8e77cdae3063f85f8dec5685c8422') prepare() { cd "${srcdir}"/${_realname}-${pkgver} @@ -44,12 +48,12 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --enable-shared \ - --disable-static + --enable-static + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-geoclue/gio-win.patch b/mingw-w64-geoclue/gio-win.patch new file mode 100644 index 0000000000..d734554d6f --- /dev/null +++ b/mingw-w64-geoclue/gio-win.patch @@ -0,0 +1,20 @@ +--- geoclue-2.2.0/configure.ac.orig 2015-07-10 12:50:52.864282200 +0300 ++++ geoclue-2.2.0/configure.ac 2015-07-10 12:51:12.097358700 +0300 +@@ -53,7 +53,7 @@ + PKG_CHECK_MODULES(GEOCLUE, [ + glib-2.0 >= $GLIB_MIN_VERSION + gio-2.0 >= $GLIB_MIN_VERSION +- gio-unix-2.0 >= $GLIB_MIN_VERSION ++ gio-windows-2.0 >= $GLIB_MIN_VERSION + json-glib-1.0 >= $JSON_GLIB_MIN_VERSION + libsoup-2.4 >= $LIBSOUP_MIN_VERSION + ]) +@@ -115,7 +115,7 @@ + PKG_CHECK_MODULES(DEMO_AGENT, [ + glib-2.0 >= $GLIB_MIN_VERSION + gio-2.0 >= $GLIB_MIN_VERSION +- gio-unix-2.0 >= $GLIB_MIN_VERSION ++ gio-windows-2.0 >= $GLIB_MIN_VERSION + libnotify]) + else + AC_DEFINE([BUILD_DEMO_AGENT], [0], [Build demo agent?]) diff --git a/mingw-w64-webkitgtk3/PKGBUILD b/mingw-w64-webkitgtk3/PKGBUILD index fea9d49a43..2e9c38c2ae 100644 --- a/mingw-w64-webkitgtk3/PKGBUILD +++ b/mingw-w64-webkitgtk3/PKGBUILD @@ -2,8 +2,8 @@ _realname=webkitgtk pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}2" "${MINGW_PACKAGE_PREFIX}-${_realname}3") -pkgver=2.4.8 -pkgrel=3 +pkgver=2.4.9 +pkgrel=1 pkgdesc="GTK+ Web content engine library (mingw-w64)" arch=('any') url="http://webkitgtk.org/" @@ -73,32 +73,32 @@ source=(http://webkitgtk.org/releases/webkitgtk-${pkgver}.tar.xz prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch - patch -p1 -i ${srcdir}/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch - patch -p1 -i ${srcdir}/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch - patch -p1 -i ${srcdir}/0003-W32-Use-confgured-Python-interpreter.all.patch - patch -p1 -i ${srcdir}/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch - patch -p1 -i ${srcdir}/0005-Add-missing-gcc-asm-code-for-JIT.all.patch - patch -p1 -i ${srcdir}/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch - patch -p1 -i ${srcdir}/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch - patch -p1 -i ${srcdir}/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch - patch -p1 -i ${srcdir}/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch - patch -p1 -i ${srcdir}/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch - patch -p1 -i ${srcdir}/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch - patch -p1 -i ${srcdir}/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch - patch -p1 -i ${srcdir}/0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch - patch -p1 -i ${srcdir}/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch - patch -p1 -i ${srcdir}/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch - patch -p1 -i ${srcdir}/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch - patch -p1 -i ${srcdir}/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch - patch -p1 -i ${srcdir}/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch - patch -p1 -i ${srcdir}/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch + # patch -p1 -i ${srcdir}/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch + # patch -p1 -i ${srcdir}/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch + # patch -p1 -i ${srcdir}/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch + # patch -p1 -i ${srcdir}/0003-W32-Use-confgured-Python-interpreter.all.patch + # patch -p1 -i ${srcdir}/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch + # patch -p1 -i ${srcdir}/0005-Add-missing-gcc-asm-code-for-JIT.all.patch + # patch -p1 -i ${srcdir}/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch + # patch -p1 -i ${srcdir}/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch + # patch -p1 -i ${srcdir}/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch + # patch -p1 -i ${srcdir}/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch + # patch -p1 -i ${srcdir}/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch + # patch -p1 -i ${srcdir}/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch + # patch -p1 -i ${srcdir}/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch + # patch -p1 -i ${srcdir}/0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch + # patch -p1 -i ${srcdir}/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch + # patch -p1 -i ${srcdir}/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch + # patch -p1 -i ${srcdir}/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch + # patch -p1 -i ${srcdir}/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch + # patch -p1 -i ${srcdir}/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch + # patch -p1 -i ${srcdir}/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch patch -p1 -i ${srcdir}/0020-W32-Fixup-dummy-HeapStatistics-implementation.all.patch patch -p1 -i ${srcdir}/0021-W32-Change-printf-format-atribute-to-gnu_printf-.all.patch patch -p1 -i ${srcdir}/0101-webkitgtk-2.4.3-gcc-asm.all.patch - patch -p1 -i ${srcdir}/9999-ossource_win.cpp.all.patch + # patch -p1 -i ${srcdir}/9999-ossource_win.cpp.all.patch - autoreconf --verbose --install -I Source/autotools + # autoreconf --verbose --install -I Source/autotools rm -rf ${srcdir}/build-gtk{2,3} mkdir -p ${srcdir}/build-gtk{2,3} @@ -130,8 +130,6 @@ _build() { --enable-geolocation \ --disable-x11-target \ --enable-win32-target \ - --enable-gles2=no \ - --enable-egl=no \ "$@" make @@ -157,7 +155,7 @@ package_webkitgtk2() { depends+=(${MINGW_PACKAGE_PREFIX}-gtk2) #provides=("${MINGW_PACKAGE_PREFIX}-libwebkit2=${pkgver}") cd "${srcdir}/build-gtk2" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } @@ -166,7 +164,7 @@ package_webkitgtk3() { optdepends+=("${MINGW_PACKAGE_PREFIX}-gtk2: Netscape plugin support") #provides=("${MINGW_PACKAGE_PREFIX}-webkitgtk3=${pkgver}" "${MINGW_PACKAGE_PREFIX}-libwebkit3=${pkgver}") cd "${srcdir}/build-gtk3" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } @@ -186,7 +184,7 @@ package_mingw-w64-x86_64-webkitgtk3() { package_webkitgtk3 } -md5sums=('bcdcef8e1ba28dbd5bb05f86c79f76b8' +md5sums=('312fd29eb7f5970660c6a64b8bf8420e' 'a5a9558ab8c206660b5e61d7a0805e78' '372611b19ea2bd9652706cf6e4e5fdad' '2e06d339b5216fb12bda8e986c48dc5c' diff --git a/mingw-w64-windows-default-manifest/PKGBUILD b/mingw-w64-windows-default-manifest/PKGBUILD index 81b81637eb..e5f2a41d17 100644 --- a/mingw-w64-windows-default-manifest/PKGBUILD +++ b/mingw-w64-windows-default-manifest/PKGBUILD @@ -3,7 +3,7 @@ _realname=windows-default-manifest pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=6.4 -pkgrel=1 +pkgrel=2 pkgdesc='Default Windows application manifest (mingw-w64)' url='http://cygwin.com/' arch=('any') From 0e38bbf8969f5e6e64d1be6bf712c30ab96b9489 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 29 Jun 2015 00:00:00 +0100 Subject: [PATCH 1262/2060] firefox: WIP --- mingw-w64-firefox/.mozconfig.i686 | 20 + mingw-w64-firefox/.mozconfig.x86_64 | 20 + .../0001-Support-MSYS2-as-build-machine.patch | 81 + mingw-w64-firefox/PKGBUILD | 62 + mingw-w64-firefox/config.guess | 1443 +++++++++++++ mingw-w64-firefox/config.sub | 1810 +++++++++++++++++ 6 files changed, 3436 insertions(+) create mode 100644 mingw-w64-firefox/.mozconfig.i686 create mode 100644 mingw-w64-firefox/.mozconfig.x86_64 create mode 100644 mingw-w64-firefox/0001-Support-MSYS2-as-build-machine.patch create mode 100644 mingw-w64-firefox/PKGBUILD create mode 100644 mingw-w64-firefox/config.guess create mode 100644 mingw-w64-firefox/config.sub diff --git a/mingw-w64-firefox/.mozconfig.i686 b/mingw-w64-firefox/.mozconfig.i686 new file mode 100644 index 0000000000..3f5234d1b7 --- /dev/null +++ b/mingw-w64-firefox/.mozconfig.i686 @@ -0,0 +1,20 @@ +#Specify the cross compile +export CROSS_COMPILE=1 +ac_add_options --enable-application=browser +ac_add_options --target=i686-w64-mingw32 +ac_add_options --enable-default-toolkit=cairo-windows +mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../mozilla-mingw.i686 + +ac_add_options --enable-debug +ac_add_options --disable-optimize + +ac_add_options --disable-updater +ac_add_options --disable-crashreporter +ac_add_options --disable-maintenance-service +ac_add_options --disable-webrtc +ac_add_options --without-intl-api + +# ac_add_options --disable-accessibility # uncomment if you don't have widl installed + +# Use parallel build. Adjust number of processes for your setup. +mk_add_options MOZ_MAKE_FLAGS=-j8 diff --git a/mingw-w64-firefox/.mozconfig.x86_64 b/mingw-w64-firefox/.mozconfig.x86_64 new file mode 100644 index 0000000000..b9fd4d3753 --- /dev/null +++ b/mingw-w64-firefox/.mozconfig.x86_64 @@ -0,0 +1,20 @@ +#Specify the cross compile +export CROSS_COMPILE=1 +ac_add_options --enable-application=browser +ac_add_options --target=x86_64-w64-mingw32 +ac_add_options --enable-default-toolkit=cairo-windows +mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../mozilla-mingw.x86_64 + +ac_add_options --enable-debug +ac_add_options --disable-optimize + +ac_add_options --disable-updater +ac_add_options --disable-crashreporter +ac_add_options --disable-maintenance-service +ac_add_options --disable-webrtc +ac_add_options --without-intl-api + +# ac_add_options --disable-accessibility # uncomment if you don't have widl installed + +# Use parallel build. Adjust number of processes for your setup. +mk_add_options MOZ_MAKE_FLAGS=-j8 diff --git a/mingw-w64-firefox/0001-Support-MSYS2-as-build-machine.patch b/mingw-w64-firefox/0001-Support-MSYS2-as-build-machine.patch new file mode 100644 index 0000000000..36bbbddce0 --- /dev/null +++ b/mingw-w64-firefox/0001-Support-MSYS2-as-build-machine.patch @@ -0,0 +1,81 @@ +diff -urN firefox-38.0.5.orig/config/baseconfig.mk firefox-38.0.5/config/baseconfig.mk +--- firefox-38.0.5.orig/config/baseconfig.mk 2015-05-25 22:28:44.000000000 +0100 ++++ firefox-38.0.5/config/baseconfig.mk 2015-06-28 23:29:12.430351300 +0100 +@@ -31,9 +31,6 @@ + $(error Pymake is no longer supported. Please upgrade to MozillaBuild 1.9 or newer and build with 'mach' or 'mozmake') + endif + +-ifeq (a,$(firstword a$(subst /, ,$(abspath .)))) +-$(error MSYS make is not supported) +-endif + # 4.0- happens to be greater than 4.0, lower than the mozmake version, + # and lower than 4.0.1 or 4.1, whatever next version of gnu make will + # be released. +diff -urN firefox-38.0.5.orig/mach firefox-38.0.5/mach +--- firefox-38.0.5.orig/mach 2015-05-25 22:28:46.000000000 +0100 ++++ firefox-38.0.5/mach 2015-06-28 23:27:16.616644800 +0100 +@@ -6,7 +6,7 @@ + # The beginning of this script is both valid shell and valid python, + # such that the script starts with the shell and is reexecuted with + # the right python. +-'''which' python2.7 > /dev/null && exec python2.7 "$0" "$@" || exec python "$0" "$@" ++'''which' ${PYTHON} > /dev/null && exec ${PYTHON} "$0" "$@" || exec python2.7 "$0" "$@" || exec python "$0" "$@" + ''' + + from __future__ import print_function, unicode_literals +diff -urN firefox-38.0.5.orig/python/virtualenv/virtualenv.py firefox-38.0.5/python/virtualenv/virtualenv.py +--- firefox-38.0.5.orig/python/virtualenv/virtualenv.py 2015-05-25 22:28:56.000000000 +0100 ++++ firefox-38.0.5/python/virtualenv/virtualenv.py 2015-07-03 18:05:22.708700600 +0100 +@@ -45,6 +45,7 @@ + is_pypy = hasattr(sys, 'pypy_version_info') + is_win = (sys.platform == 'win32') + is_cygwin = (sys.platform == 'cygwin') ++is_msys = (sys.platform == 'msys') + is_darwin = (sys.platform == 'darwin') + abiflags = getattr(sys, 'abiflags', '') + +@@ -1276,7 +1277,7 @@ + executable = sys.executable + shutil.copyfile(executable, py_executable) + make_exe(py_executable) +- if is_win or is_cygwin: ++ if is_win or is_cygwin or is_msys: + pythonw = os.path.join(os.path.dirname(sys.executable), 'pythonw.exe') + if os.path.exists(pythonw): + logger.info('Also created pythonw.exe') +@@ -1291,10 +1292,18 @@ + os.unlink(python_d_dest) + # we need to copy the DLL to enforce that windows will load the correct one. + # may not exist if we are cygwin. +- py_executable_dll = 'python%s%s.dll' % ( +- sys.version_info[0], sys.version_info[1]) +- py_executable_dll_d = 'python%s%s_d.dll' % ( +- sys.version_info[0], sys.version_info[1]) ++ cygwin_msys_dll = None ++ python_dll_prefix = '' ++ if is_cygwin: ++ cygwin_msys_dll = 'cygwin1.dll' ++ python_dll_prefix = 'cygwin-' ++ if is_msys: ++ cygwin_msys_dll = 'msys-2.0.dll' ++ python_dll_prefix = 'msys-' ++ py_executable_dll = '%spython%s%s.dll' % ( ++ python_dll_prefix, sys.version_info[0], sys.version_info[1]) ++ py_executable_dll_d = '%spython%s%s_d.dll' % ( ++ python_dll_prefix, sys.version_info[0], sys.version_info[1]) + pythondll = os.path.join(os.path.dirname(sys.executable), py_executable_dll) + pythondll_d = os.path.join(os.path.dirname(sys.executable), py_executable_dll_d) + pythondll_d_dest = os.path.join(os.path.dirname(py_executable), py_executable_dll_d) +@@ -1307,6 +1316,12 @@ + elif os.path.exists(pythondll_d_dest): + logger.info('Removed %s as the source does not exist' % pythondll_d_dest) + os.unlink(pythondll_d_dest) ++ if cygwin_msys_dll: ++ cygwin_msys_dll_dest = os.path.join(os.path.dirname(py_executable), cygwin_msys_dll) ++ cygwin_msys_dll = os.path.join(os.path.dirname(sys.executable), cygwin_msys_dll) ++ if os.path.exists(cygwin_msys_dll): ++ logger.info('Also copied Cygwin/MSYS2 core system dll %s' % cygwin_msys_dll) ++ shutil.copyfile(cygwin_msys_dll, cygwin_msys_dll_dest) + if is_pypy: + # make a symlink python --> pypy-c + python_executable = os.path.join(os.path.dirname(py_executable), 'python') diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD new file mode 100644 index 0000000000..54dece7e5d --- /dev/null +++ b/mingw-w64-firefox/PKGBUILD @@ -0,0 +1,62 @@ +# Maintainer: Ray Donnelly + +_realname=firefox +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=38.0.5 +pkgrel=1 +pkgdesc='Mozilla Firefox (mingw-w64)' +groups=("${MINGW_PACKAGE_PREFIX}") +arch=('any') +url='https://www.mozilla.org/firefox/' +license=('MPL2') +source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/source/${_realname}-${pkgver}.source.tar.bz2" + "0001-Support-MSYS2-as-build-machine.patch" + ".mozconfig.x86_64" + ".mozconfig.i686" + "config.sub" + "config.guess") +noextract=("${_realname}-${pkgver}.source.tar.bz2") +sha1sums=('74da3e225d5b542e784549be63475802c45e1b02' + 'dd46cd0b491d8f1f3103bb9557f788c3ce041499' + '9405456c0383b22255a494e0131cd3ea8f33b15d' + 'dd68b964cceb9dbd632b24659871093803522f6e' + '17c4f8628ea435c999be66ee4c2967fdaf3b2955' + 'ffb6644dbad00413c668c833e3f3680d1d73aa53') + +prepare() { + tar -xf "${srcdir}"/${_realname}-${pkgver}.source.tar.bz2 || true + if [ -d "${srcdir}"/mozilla-beta ]; then + mv "${srcdir}"/mozilla-beta "${srcdir}"/${_realname}-${pkgver} + elif [ -d "${srcdir}"/mozilla-release ]; then + mv "${srcdir}"/mozilla-release "${srcdir}"/${_realname}-${pkgver} + else + echo "Can't find sources!" + exit 1 + fi + cd "${srcdir}"/${_realname}-${pkgver} + patch -p1 -i "${srcdir}"/0001-Support-MSYS2-as-build-machine.patch + find . -name config.sub -exec cp "${srcdir}"/config.sub {} \; + find . -name config.guess -exec cp "${srcdir}"/config.guess {} \; +} + +build() { + cd "${srcdir}"/${_realname}-${pkgver} + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mkdir "${srcdir}"/build-${CARCH} + cd "${srcdir}"/build-${CARCH} + cp "${srcdir}"/.mozconfig.${CARCH} ${PWD}/.mozconfig + export PYTHON=/usr/bin/python2.7.exe + export MOZCONFIG=${PWD}/.mozconfig + make -f ../${_realname}-${pkgver}/client.mk configure + make -f ../${_realname}-${pkgver}/client.mk build +} + +check() { + cd "${srcdir}"/build-${CARCH} + make check +} + +package() { + cd "${srcdir}"/build-${CARCH} + make -C mozilla-mingw.${CARCH} package INNER_MAKE_PACKAGE=true +} diff --git a/mingw-w64-firefox/config.guess b/mingw-w64-firefox/config.guess new file mode 100644 index 0000000000..e384484ed3 --- /dev/null +++ b/mingw-w64-firefox/config.guess @@ -0,0 +1,1443 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2015 Free Software Foundation, Inc. + +timestamp='2015-03-04' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2015 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-w64-mingw32 + exit ;; + *:MINGW32*:*) + case "${UNAME_RELEASE}" in + 1.*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + esac + echo ${UNAME_MACHINE}-w64-mingw32 + exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; +esac + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/mingw-w64-firefox/config.sub b/mingw-w64-firefox/config.sub new file mode 100644 index 0000000000..8f1229c6f7 --- /dev/null +++ b/mingw-w64-firefox/config.sub @@ -0,0 +1,1810 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2015 Free Software Foundation, Inc. + +timestamp='2015-03-08' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2015 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: From 30bae58894255e9882fd70c99def7dcf0895e990 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 11 Jul 2015 12:36:22 +0100 Subject: [PATCH 1263/2060] openimageio: Fix linking to opencv --- .../0002-Also-link-to-opencv_videoio-library.patch | 11 +++++++++++ mingw-w64-openimageio/PKGBUILD | 7 +++++-- 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-openimageio/0002-Also-link-to-opencv_videoio-library.patch diff --git a/mingw-w64-openimageio/0002-Also-link-to-opencv_videoio-library.patch b/mingw-w64-openimageio/0002-Also-link-to-opencv_videoio-library.patch new file mode 100644 index 0000000000..311d0241a9 --- /dev/null +++ b/mingw-w64-openimageio/0002-Also-link-to-opencv_videoio-library.patch @@ -0,0 +1,11 @@ +--- oiio-Release-1.5.16/src/libOpenImageIO/CMakeLists.txt.orig 2015-07-10 13:11:48.682388900 +0100 ++++ oiio-Release-1.5.16/src/libOpenImageIO/CMakeLists.txt 2015-07-10 13:28:23.918980400 +0100 +@@ -231,7 +231,7 @@ + # Include OpenCV if using it + if (OpenCV_FOUND) + include_directories (${OpenCV_INCLUDE_DIR}) +- target_link_libraries (OpenImageIO opencv_core opencv_highgui) ++ target_link_libraries (OpenImageIO opencv_core opencv_highgui opencv_videoio) + endif () + + # Include OpenSSL if using it diff --git a/mingw-w64-openimageio/PKGBUILD b/mingw-w64-openimageio/PKGBUILD index 647e0ba47a..d41ee812a8 100644 --- a/mingw-w64-openimageio/PKGBUILD +++ b/mingw-w64-openimageio/PKGBUILD @@ -35,15 +35,18 @@ optdepends=(#"${MINGW_PACKAGE_PREFIX}-qt4: iv image viewer" options=('strip' 'buildflags') source=(https://github.com/OpenImageIO/oiio/archive/Release-$pkgver.tar.gz fix-mingw-w64.patch - workaround-ansidecl-h-PTR-define-conflict.patch) + workaround-ansidecl-h-PTR-define-conflict.patch + 0002-Also-link-to-opencv_videoio-library.patch) md5sums=('9139027f4030e7103ea8b1557dfcb210' '58f3082fc728e7cc3ba6ec4d4368e4fe' - '1bf4c840ee73d37ebdfc98d3ea527ed4') + '1bf4c840ee73d37ebdfc98d3ea527ed4' + 'a446aac9182de3d59b43649e754e8bae') prepare() { cd ${srcdir}/oiio-Release-${pkgver} patch -p1 -i ${srcdir}/fix-mingw-w64.patch patch -p1 -i ${srcdir}/workaround-ansidecl-h-PTR-define-conflict.patch + patch -p1 -i ${srcdir}/0002-Also-link-to-opencv_videoio-library.patch } build() { From 57f30ad85b370e60694df4ac28daf4634b9b1e42 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 11 Jul 2015 12:39:27 +0100 Subject: [PATCH 1264/2060] openimageio: Include winbase.h early for TCHAR types --- ...nclude-winbase-h-early-for-TCHAR-types.patch | 12 ++++++++++++ mingw-w64-openimageio/PKGBUILD | 17 +++++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-openimageio/0001-MinGW-w64-include-winbase-h-early-for-TCHAR-types.patch diff --git a/mingw-w64-openimageio/0001-MinGW-w64-include-winbase-h-early-for-TCHAR-types.patch b/mingw-w64-openimageio/0001-MinGW-w64-include-winbase-h-early-for-TCHAR-types.patch new file mode 100644 index 0000000000..7d4c2bc1d5 --- /dev/null +++ b/mingw-w64-openimageio/0001-MinGW-w64-include-winbase-h-early-for-TCHAR-types.patch @@ -0,0 +1,12 @@ +--- oiio-Release-1.5.16/src/include/OpenImageIO/SHA1.h.orig 2015-07-10 13:06:07.858304300 +0100 ++++ oiio-Release-1.5.16/src/include/OpenImageIO/SHA1.h 2015-07-10 13:06:31.503304300 +0100 +@@ -88,6 +88,9 @@ + #endif + #endif + ++#ifdef WIN32 ++#include ++#endif + #include + + #ifdef SHA1_UTILITY_FUNCTIONS diff --git a/mingw-w64-openimageio/PKGBUILD b/mingw-w64-openimageio/PKGBUILD index d41ee812a8..6cb0f7d690 100644 --- a/mingw-w64-openimageio/PKGBUILD +++ b/mingw-w64-openimageio/PKGBUILD @@ -2,7 +2,8 @@ _realname=openimageio pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.12 +pkgver=1.5.16 +#pkgver=1.6.3dev pkgrel=1 pkgdesc="A library for reading and writing images, including classes, utilities, and applications (mingw-w64)" arch=('any') @@ -33,26 +34,30 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" optdepends=(#"${MINGW_PACKAGE_PREFIX}-qt4: iv image viewer" "${MINGW_PACKAGE_PREFIX}-python2: bindings support") options=('strip' 'buildflags') -source=(https://github.com/OpenImageIO/oiio/archive/Release-$pkgver.tar.gz +source=(${_realname}-${pkgver}.tar.gz::https://github.com/OpenImageIO/oiio/archive/Release-${pkgver}.tar.gz fix-mingw-w64.patch workaround-ansidecl-h-PTR-define-conflict.patch + 0001-MinGW-w64-include-winbase-h-early-for-TCHAR-types.patch 0002-Also-link-to-opencv_videoio-library.patch) -md5sums=('9139027f4030e7103ea8b1557dfcb210' +md5sums=('9e7f404dba4c6e6da99464830325418b' '58f3082fc728e7cc3ba6ec4d4368e4fe' '1bf4c840ee73d37ebdfc98d3ea527ed4' + '35107a59495961ba8301b8beb158b2dd' 'a446aac9182de3d59b43649e754e8bae') prepare() { cd ${srcdir}/oiio-Release-${pkgver} patch -p1 -i ${srcdir}/fix-mingw-w64.patch patch -p1 -i ${srcdir}/workaround-ansidecl-h-PTR-define-conflict.patch + patch -p1 -i ${srcdir}/0001-MinGW-w64-include-winbase-h-early-for-TCHAR-types.patch patch -p1 -i ${srcdir}/0002-Also-link-to-opencv_videoio-library.patch } build() { export OPENJPEG_HOME=${MINGW_PREFIX} - [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} - mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ @@ -77,5 +82,5 @@ package() { make install rm -r ${pkgdir}${MINGW_PREFIX}/doc - install -Dm644 ${srcdir}/oiio-Release-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/LICENSE" + install -Dm644 ${srcdir}/oiio-Release-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From 57fc2324f41ce6c67ef523d0eeda69b334d8f81a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 11 Jul 2015 15:52:48 +0100 Subject: [PATCH 1265/2060] openimageio: Improved installation Using MINGW_ARGC_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" .. --- mingw-w64-openimageio/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-openimageio/PKGBUILD b/mingw-w64-openimageio/PKGBUILD index 6cb0f7d690..5a593a11ed 100644 --- a/mingw-w64-openimageio/PKGBUILD +++ b/mingw-w64-openimageio/PKGBUILD @@ -59,9 +59,10 @@ build() { mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DPYLIB_INSTALL_DIR=lib/python2.7/site-packages \ -DUSE_FREETYPE=ON \ -DFREETYPE_INCLUDE_PATH=${MINGW_PREFIX}/include/freetype2 \ @@ -77,9 +78,9 @@ build() { } package() { - cd "$srcdir"/build-${MINGW_CHOST} + cd "${srcdir}"/build-${MINGW_CHOST} - make install + make DESTDIR=${pkgdir} install rm -r ${pkgdir}${MINGW_PREFIX}/doc install -Dm644 ${srcdir}/oiio-Release-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" From a436808704fb765836a6e8d3d192da5834765084 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 11 Jul 2015 22:13:49 +0100 Subject: [PATCH 1266/2060] ag: Build from ggreer's repo, rebase patches Also moved myself into position of 1st maintainer since it seems I hack on it quite a lot. --- ...low-both-extensions-and-full-filenames.patch | 12 ++++++------ ...tions-Fix-ordering-problems-with-color.patch | 6 +++--- ...0003-lang-Add-autotools-ac-am-in-m4-pc.patch | 6 +++--- ...ke-Makefile-Makefile.Debug-Makefile.Re.patch | 8 ++++---- ...makepkg-PKGBUILD-diff-patch-in-install.patch | 8 ++++---- mingw-w64-ag/PKGBUILD | 17 ++++++++--------- 6 files changed, 28 insertions(+), 29 deletions(-) diff --git a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch index 71ba8797f2..f9a5324f64 100644 --- a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch +++ b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch @@ -1,4 +1,4 @@ -From 5a80036bfcff8a3b91b9985aaf37ca0b38d636db Mon Sep 17 00:00:00 2001 +From e181c2ef2cbe8e377684c4111442fcad437b5730 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 21:46:45 +0000 Subject: [PATCH 1/5] lang: Allow both extensions and full filenames @@ -16,10 +16,10 @@ are indicated by prefixing the pattern with a '^'. 3 files changed, 61 insertions(+), 48 deletions(-) diff --git a/src/lang.c b/src/lang.c -index 540bcb6..ee1f1e4 100644 +index 6841f67..0041c47 100644 --- a/src/lang.c +++ b/src/lang.c -@@ -88,20 +88,27 @@ size_t get_lang_count() { +@@ -93,20 +93,27 @@ size_t get_lang_count() { return sizeof(langs) / sizeof(lang_spec_t); } @@ -55,7 +55,7 @@ index 540bcb6..ee1f1e4 100644 regex_capacity *= 2; regex = ag_realloc(regex, regex_capacity); } -@@ -110,8 +117,12 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { +@@ -115,8 +122,12 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { } else { subsequent = 1; } @@ -70,7 +70,7 @@ index 540bcb6..ee1f1e4 100644 } regex[regex_length++] = ')'; -@@ -120,29 +131,29 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { +@@ -125,29 +136,29 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { return regex; } @@ -236,5 +236,5 @@ index 6efa4dd..a000f15 100644 printf("\n\n"); } -- -2.3.5 +2.4.5 diff --git a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch index 3e3c5db1b5..4292e680bd 100644 --- a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch +++ b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch @@ -1,4 +1,4 @@ -From b369239d9a1eb01f1baa2582e170ea8b24b3036f Mon Sep 17 00:00:00 2001 +From 171ac752fda4aadafc649888d89c13a8cc49018d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:12:15 +0000 Subject: [PATCH 2/5] options: Fix ordering problems with --color @@ -24,7 +24,7 @@ Moved around the logic of setting opts.color so that: 3 files changed, 102 insertions(+), 58 deletions(-) diff --git a/configure.ac b/configure.ac -index 06dfbd1..5674193 100644 +index f266ec6..09c43db 100644 --- a/configure.ac +++ b/configure.ac @@ -24,7 +24,7 @@ AX_PTHREAD( @@ -255,5 +255,5 @@ index 7d7aca1..4bbd4e2 100644 int ackmate; pcre *ackmate_dir_filter; -- -2.3.5 +2.4.5 diff --git a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch index 3a9c2d1cef..ae54a3d04f 100644 --- a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch +++ b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch @@ -1,4 +1,4 @@ -From b87794bea192751fb28ce0fa51eea2868760da0e Mon Sep 17 00:00:00 2001 +From da115d2c7118406bda5ddf1f121c579758bc7c7f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:16:54 +0000 Subject: [PATCH 3/5] lang: Add autotools (ac, am, in, m4, pc) @@ -8,7 +8,7 @@ Subject: [PATCH 3/5] lang: Add autotools (ac, am, in, m4, pc) 1 file changed, 1 insertion(+) diff --git a/src/lang.c b/src/lang.c -index ee1f1e4..4d56ff0 100644 +index 0041c47..2a763a7 100644 --- a/src/lang.c +++ b/src/lang.c @@ -8,6 +8,7 @@ lang_spec_t langs[] = { @@ -20,5 +20,5 @@ index ee1f1e4..4d56ff0 100644 { "cc", { "c", "h", "xs" } }, { "cfmx", { "cfc", "cfm", "cfml" } }, -- -2.3.5 +2.4.5 diff --git a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch index f2f9e601e9..9daa6691ec 100644 --- a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch +++ b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch @@ -1,4 +1,4 @@ -From 5fdb62e6d5fd206316f5b97636f41f81e1cfa903 Mon Sep 17 00:00:00 2001 +From 48d7b444152679fed68861a370111f6d5ab6ad82 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:18:27 +0000 Subject: [PATCH 4/5] lang: Add to make (^Makefile, ^Makefile.Debug, @@ -11,10 +11,10 @@ are used by Qt. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang.c b/src/lang.c -index 4d56ff0..560cccf 100644 +index 2a763a7..5deb4ad 100644 --- a/src/lang.c +++ b/src/lang.c -@@ -40,7 +40,7 @@ lang_spec_t langs[] = { +@@ -42,7 +42,7 @@ lang_spec_t langs[] = { { "lisp", { "lisp", "lsp" } }, { "lua", { "lua" } }, { "m4", { "m4" } }, @@ -24,5 +24,5 @@ index 4d56ff0..560cccf 100644 { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, { "matlab", { "m" } }, -- -2.3.5 +2.4.5 diff --git a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch index 7001d974c7..fd66bffa26 100644 --- a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch +++ b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch @@ -1,4 +1,4 @@ -From 35d2652a1a25566c61385e26fd5cf2185b6998df Mon Sep 17 00:00:00 2001 +From a695cac1d9145b6c2f0a10bc50a27f6c9e6ee839 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:21:26 +0000 Subject: [PATCH 5/5] lang: Add makepkg (^PKGBUILD, diff, patch, in, install) @@ -9,10 +9,10 @@ Used by the makepkg build system of ArchLinux and MSYS2 1 file changed, 1 insertion(+) diff --git a/src/lang.c b/src/lang.c -index 560cccf..e6a6b4f 100644 +index 5deb4ad..7fd2622 100644 --- a/src/lang.c +++ b/src/lang.c -@@ -41,6 +41,7 @@ lang_spec_t langs[] = { +@@ -43,6 +43,7 @@ lang_spec_t langs[] = { { "lua", { "lua" } }, { "m4", { "m4" } }, { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak" } }, @@ -21,5 +21,5 @@ index 560cccf..e6a6b4f 100644 { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, { "matlab", { "m" } }, -- -2.3.5 +2.4.5 diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index 3e5a45e3fc..47df0f0608 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -1,10 +1,10 @@ -# Maintainer: Martell Malone # Maintainer: Ray Donnelly +# Maintainer: Martell Malone _realname=ag _longname=the_silver_searcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.29.1.r1562.60a0b77 +pkgver=0.30.0.r1599.07f8336 pkgrel=1 pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" arch=('any') @@ -17,19 +17,18 @@ depends=("${MINGW_PACKAGE_PREFIX}-pcre" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs') # '!strip' 'debug') -source=(#http://geoff.greer.fm/ag/releases/$_longname-$pkgver.tar.gz - "${_realname}"::"git+https://github.com/msys2/the_silver_searcher.git" +source=("${_realname}"::"git+https://github.com/ggreer/the_silver_searcher.git" "0001-lang-Allow-both-extensions-and-full-filenames.patch" "0002-options-Fix-ordering-problems-with-color.patch" "0003-lang-Add-autotools-ac-am-in-m4-pc.patch" "0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch" "0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch") md5sums=('SKIP' - '724af3c53b17138436b612d2221ab3c9' - '09f7f5aaa60b59b064ee0c8059779fbb' - 'b953503903c23cfd2100bbf84d0fa097' - '673513fd7129abf7fed400a176654577' - '9856bce9814d618c0177bf9532f97545') + '6aeb23bcef5ae575ba16ef185e4cb5ed' + '2404684ccfed436db5931862ef13f895' + '6ce0a9f4c3907c7e49db7d3f171005ee' + '4736eb32c5737e711fe48c4a0eb5585f' + 'dce91f9375191a9ee89c389d56d67a68') pkgver() { cd ${srcdir}/${_realname} From 2a50aeb541699c290fe487e802e7f3d7a7e047aa Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 12 Jul 2015 13:13:39 +0100 Subject: [PATCH 1267/2060] libmpeg2-svn: Do not do AC_C_ALWAYS_INLINE Since it redefines inline which is a bit extreme. .. and breaks mingw-w64's __CRT_INLINE definition when using GCC 5.1.0 and C99 --- .../0007-activscp-remove-duplicates.patch | 93 ------------------- ...ine-breaking-mingw-w64-GCC-5.1.0-C99.patch | 11 +++ mingw-w64-libmpeg2-svn/PKGBUILD | 14 ++- 3 files changed, 20 insertions(+), 98 deletions(-) delete mode 100644 mingw-w64-headers-git/0007-activscp-remove-duplicates.patch create mode 100644 mingw-w64-libmpeg2-svn/0003-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch diff --git a/mingw-w64-headers-git/0007-activscp-remove-duplicates.patch b/mingw-w64-headers-git/0007-activscp-remove-duplicates.patch deleted file mode 100644 index 9976c2dc14..0000000000 --- a/mingw-w64-headers-git/0007-activscp-remove-duplicates.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 9c95addcd62f7ef0e88171f8b1e29331cf5bcfc6 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Thu, 2 Jul 2015 09:04:12 +0300 -Subject: [PATCH] activscp: Remove duplicate defines. - ---- - mingw-w64-headers/include/activscp.h | 26 -------------------------- - mingw-w64-headers/include/activscp.idl | 26 -------------------------- - 2 files changed, 52 deletions(-) - -diff --git a/mingw-w64-headers/include/activscp.h b/mingw-w64-headers/include/activscp.h -index 847290e..cf93d7a 100644 ---- a/mingw-w64-headers/include/activscp.h -+++ b/mingw-w64-headers/include/activscp.h -@@ -175,35 +175,9 @@ extern "C" { - DEFINE_GUID(CATID_ActiveScript, 0xf0b7a1a1, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); - DEFINE_GUID(CATID_ActiveScriptParse, 0xf0b7a1a2, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); - DEFINE_GUID(CATID_ActiveScriptEncode, 0xf0b7a1a3, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); --DEFINE_GUID(IID_IActiveScript, 0xbb1a2ae1, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); --DEFINE_GUID(IID_IActiveScriptParse32, 0xbb1a2ae2, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); --DEFINE_GUID(IID_IActiveScriptParse64, 0xc7ef7658, 0xe1ee, 0x480e, 0x97, 0xea, 0xd5, 0x2c, 0xb4, 0xd7, 0x6d, 0x17); --DEFINE_GUID(IID_IActiveScriptEncode, 0xbb1a2ae3, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); --DEFINE_GUID(IID_IActiveScriptHostEncode, 0xbee9b76e, 0xcfe3, 0x11d1, 0xb7, 0x47, 0x00, 0xc0, 0x4f, 0xc2, 0xb0, 0x85); --DEFINE_GUID(IID_IActiveScriptParseProcedureOld32, 0x1cff0050, 0x6fdd, 0x11d0, 0x93, 0x28, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9); --DEFINE_GUID(IID_IActiveScriptParseProcedureOld64, 0x21f57128, 0x08c9, 0x4638, 0xba, 0x12, 0x22, 0xd1, 0x5d, 0x88, 0xdc, 0x5c); --DEFINE_GUID(IID_IActiveScriptParseProcedure32, 0xaa5b6a80, 0xb834, 0x11d0, 0x93, 0x2f, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9); --DEFINE_GUID(IID_IActiveScriptParseProcedure64, 0xc64713b6, 0xe029, 0x4cc5, 0x92, 0x00, 0x43, 0x8b, 0x72, 0x89, 0x0b, 0x6a); --DEFINE_GUID(IID_IActiveScriptParseProcedure2_32, 0x71ee5b20, 0xfb04, 0x11d1, 0xb3, 0xa8, 0x00, 0xa0, 0xc9, 0x11, 0xe8, 0xb2); --DEFINE_GUID(IID_IActiveScriptParseProcedure2_64, 0xfe7c4271, 0x210c, 0x448d, 0x9f, 0x54, 0x76, 0xda, 0xb7, 0x04, 0x7b, 0x28); --DEFINE_GUID(IID_IActiveScriptSite, 0xdb01a1e3, 0xa42b, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); --DEFINE_GUID(IID_IActiveScriptSiteTraceInfo, 0x4b7272ae, 0x1955, 0x4bfe, 0x98, 0xb0, 0x78, 0x6, 0x21, 0x88, 0x85, 0x69); --DEFINE_GUID(IID_IActiveScriptSiteWindow, 0xd10f6761, 0x83e9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); --DEFINE_GUID(IID_IActiveScriptSiteInterruptPoll, 0x539698a0, 0xcdca, 0x11cf, 0xa5, 0xeb, 0x00, 0xaa, 0x00, 0x47, 0xa0, 0x63); --DEFINE_GUID(IID_IActiveScriptSiteUIControl, 0xaedae97e, 0xd7ee, 0x4796, 0xb9, 0x60, 0x7f, 0x9, 0x2a, 0xe8, 0x44, 0xab); --DEFINE_GUID(IID_IActiveScriptError, 0xeae1ba61, 0xa4ed, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64); --DEFINE_GUID(IID_IActiveScriptError64, 0xb21fb2a1, 0x5b8f, 0x4963, 0x8c, 0x21, 0x21, 0x45, 0x0f, 0x84, 0xed, 0x7f); --DEFINE_GUID(IID_IBindEventHandler, 0x63cdbcb0, 0xc1b1, 0x11d0, 0x93, 0x36, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9); --DEFINE_GUID(IID_IActiveScriptStats, 0xb8da6310, 0xe19b, 0x11d0, 0x93, 0x3c, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9); --DEFINE_GUID(IID_IActiveScriptProperty, 0x4954E0D0, 0xFBC7, 0x11D1, 0x84, 0x10, 0x00, 0x60, 0x08, 0xC3, 0xFB, 0xFC); --DEFINE_GUID(IID_ITridentEventSink, 0x1dc9ca50, 0x6ef, 0x11d2, 0x84, 0x15, 0x00, 0x60, 0x08, 0xc3, 0xfb, 0xfc); --DEFINE_GUID(IID_IActiveScriptGarbageCollector, 0x6aa2c4a0, 0x2b53, 0x11d4, 0xa2, 0xa0, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90); --DEFINE_GUID(IID_IActiveScriptSIPInfo, 0x764651d0, 0x38de, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90); --DEFINE_GUID(IID_IActiveScriptTraceInfo, 0xC35456E7, 0xBEBF, 0x4a1b, 0x86, 0xA9, 0x24, 0xD5, 0x6B, 0xE8, 0xB3, 0x69); - DEFINE_GUID(OID_VBSSIP, 0x1629f04e, 0x2799, 0x4db5, 0x8f, 0xe5, 0xac, 0xe1, 0x0f, 0x17, 0xeb, 0xab); - DEFINE_GUID(OID_JSSIP, 0x6c9e010, 0x38ce, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90); - DEFINE_GUID(OID_WSFSIP, 0x1a610570, 0x38ce, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90); --DEFINE_GUID(IID_IActiveScriptStringCompare, 0x58562769, 0xED52, 0x42f7, 0x84, 0x03, 0x49, 0x63, 0x51, 0x4E, 0x1F, 0x11); - #endif - - #define SCRIPTITEM_ISVISIBLE 0x00000002 -diff --git a/mingw-w64-headers/include/activscp.idl b/mingw-w64-headers/include/activscp.idl -index be17c66..c979b53 100755 ---- a/mingw-w64-headers/include/activscp.idl -+++ b/mingw-w64-headers/include/activscp.idl -@@ -23,35 +23,9 @@ cpp_quote("") - cpp_quote("DEFINE_GUID(CATID_ActiveScript, 0xf0b7a1a1, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") - cpp_quote("DEFINE_GUID(CATID_ActiveScriptParse, 0xf0b7a1a2, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") - cpp_quote("DEFINE_GUID(CATID_ActiveScriptEncode, 0xf0b7a1a3, 0x9847, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") --cpp_quote("DEFINE_GUID(IID_IActiveScript, 0xbb1a2ae1, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptParse32, 0xbb1a2ae2, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptParse64, 0xc7ef7658, 0xe1ee, 0x480e, 0x97, 0xea, 0xd5, 0x2c, 0xb4, 0xd7, 0x6d, 0x17);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptEncode, 0xbb1a2ae3, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptHostEncode, 0xbee9b76e, 0xcfe3, 0x11d1, 0xb7, 0x47, 0x00, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedureOld32, 0x1cff0050, 0x6fdd, 0x11d0, 0x93, 0x28, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedureOld64, 0x21f57128, 0x08c9, 0x4638, 0xba, 0x12, 0x22, 0xd1, 0x5d, 0x88, 0xdc, 0x5c);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedure32, 0xaa5b6a80, 0xb834, 0x11d0, 0x93, 0x2f, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedure64, 0xc64713b6, 0xe029, 0x4cc5, 0x92, 0x00, 0x43, 0x8b, 0x72, 0x89, 0x0b, 0x6a);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedure2_32, 0x71ee5b20, 0xfb04, 0x11d1, 0xb3, 0xa8, 0x00, 0xa0, 0xc9, 0x11, 0xe8, 0xb2);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptParseProcedure2_64, 0xfe7c4271, 0x210c, 0x448d, 0x9f, 0x54, 0x76, 0xda, 0xb7, 0x04, 0x7b, 0x28);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptSite, 0xdb01a1e3, 0xa42b, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptSiteTraceInfo, 0x4b7272ae, 0x1955, 0x4bfe, 0x98, 0xb0, 0x78, 0x6, 0x21, 0x88, 0x85, 0x69);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptSiteWindow, 0xd10f6761, 0x83e9, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptSiteInterruptPoll, 0x539698a0, 0xcdca, 0x11cf, 0xa5, 0xeb, 0x00, 0xaa, 0x00, 0x47, 0xa0, 0x63);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptSiteUIControl, 0xaedae97e, 0xd7ee, 0x4796, 0xb9, 0x60, 0x7f, 0x9, 0x2a, 0xe8, 0x44, 0xab);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptError, 0xeae1ba61, 0xa4ed, 0x11cf, 0x8f, 0x20, 0x00, 0x80, 0x5f, 0x2c, 0xd0, 0x64);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptError64, 0xb21fb2a1, 0x5b8f, 0x4963, 0x8c, 0x21, 0x21, 0x45, 0x0f, 0x84, 0xed, 0x7f);") --cpp_quote("DEFINE_GUID(IID_IBindEventHandler, 0x63cdbcb0, 0xc1b1, 0x11d0, 0x93, 0x36, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptStats, 0xb8da6310, 0xe19b, 0x11d0, 0x93, 0x3c, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptProperty, 0x4954E0D0, 0xFBC7, 0x11D1, 0x84, 0x10, 0x00, 0x60, 0x08, 0xC3, 0xFB, 0xFC);") --cpp_quote("DEFINE_GUID(IID_ITridentEventSink, 0x1dc9ca50, 0x6ef, 0x11d2, 0x84, 0x15, 0x00, 0x60, 0x08, 0xc3, 0xfb, 0xfc);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptGarbageCollector, 0x6aa2c4a0, 0x2b53, 0x11d4, 0xa2, 0xa0, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptSIPInfo, 0x764651d0, 0x38de, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptTraceInfo, 0xC35456E7, 0xBEBF, 0x4a1b, 0x86, 0xA9, 0x24, 0xD5, 0x6B, 0xE8, 0xB3, 0x69);") - cpp_quote("DEFINE_GUID(OID_VBSSIP, 0x1629f04e, 0x2799, 0x4db5, 0x8f, 0xe5, 0xac, 0xe1, 0x0f, 0x17, 0xeb, 0xab);") - cpp_quote("DEFINE_GUID(OID_JSSIP, 0x6c9e010, 0x38ce, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90);") - cpp_quote("DEFINE_GUID(OID_WSFSIP, 0x1a610570, 0x38ce, 0x11d4, 0xa2, 0xa3, 0x00, 0x10, 0x4b, 0xd3, 0x50, 0x90);") --cpp_quote("DEFINE_GUID(IID_IActiveScriptStringCompare, 0x58562769, 0xED52, 0x42f7, 0x84, 0x03, 0x49, 0x63, 0x51, 0x4E, 0x1F, 0x11);") - cpp_quote("#endif") - cpp_quote("") - cpp_quote("#define SCRIPTITEM_ISVISIBLE 0x00000002") --- -2.4.5 - diff --git a/mingw-w64-libmpeg2-svn/0003-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch b/mingw-w64-libmpeg2-svn/0003-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch new file mode 100644 index 0000000000..b2918cb8a7 --- /dev/null +++ b/mingw-w64-libmpeg2-svn/0003-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch @@ -0,0 +1,11 @@ +diff -urN libmpeg2.orig/configure.ac libmpeg2/configure.ac +--- libmpeg2.orig/configure.ac 2015-07-12 12:53:19.295988900 +0100 ++++ libmpeg2/configure.ac 2015-07-12 12:53:27.344449300 +0100 +@@ -142,7 +142,6 @@ + + dnl Checks for typedefs, structures, and compiler characteristics. + AC_C_CONST +-AC_C_ALWAYS_INLINE + AC_C_RESTRICT + AC_C_BUILTIN_EXPECT + AC_C_BIGENDIAN diff --git a/mingw-w64-libmpeg2-svn/PKGBUILD b/mingw-w64-libmpeg2-svn/PKGBUILD index 21b840b6fc..9e38f1e73e 100644 --- a/mingw-w64-libmpeg2-svn/PKGBUILD +++ b/mingw-w64-libmpeg2-svn/PKGBUILD @@ -16,10 +16,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("${_realname}"::"svn+svn://svn.videolan.org/libmpeg2/trunk" 0001-fix-bootstrap.mingw.patch - 0002-libmpeg2-fix-deprecated.patch) + 0002-libmpeg2-fix-deprecated.patch + 0003-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch) sha256sums=('SKIP' '0ba11aa8ee1aa185dec49790d6c12ed364345fe2ea78616caafa96f1cbd91766' - '4dca32a82a5845f4fcbc26d79ae4fdc5d9ab27cca5c2ae5ea5fa9078a0077eb6') + '4dca32a82a5845f4fcbc26d79ae4fdc5d9ab27cca5c2ae5ea5fa9078a0077eb6' + '8beb78faac22b9a6c37b4ff23663cd83ce894443c02337e427729acd8bd6cce0') pkgver() { cd "$srcdir/$_realname" @@ -31,13 +33,15 @@ prepare() { cd ${srcdir}/${_realname} patch -p1 -i ${srcdir}/0001-fix-bootstrap.mingw.patch patch -p1 -i ${srcdir}/0002-libmpeg2-fix-deprecated.patch + patch -p1 -i ${srcdir}/0003-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch ./bootstrap } build() { - cd "${srcdir}/${_realname}" - ./configure \ + [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} + mkdir build-${CARCH} && cd build-${CARCH} + "${srcdir}"/${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -48,6 +52,6 @@ build() { } package() { - cd "${srcdir}/${_realname}" + cd "${srcdir}"/build-${CARCH} make DESTDIR="$pkgdir" install } From e8de4fbf4ce2524920d08639b86113ae3f69ca6f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 12 Jul 2015 13:20:35 +0100 Subject: [PATCH 1268/2060] libdca-svn: Do not do AC_C_ALWAYS_INLINE Since it redefines inline which is a bit extreme. .. and breaks mingw-w64's __CRT_INLINE definition when using GCC 5.1.0 and C99 --- ...ines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch | 11 +++++++++++ mingw-w64-libdca-svn/PKGBUILD | 9 ++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-libdca-svn/0005-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch diff --git a/mingw-w64-libdca-svn/0005-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch b/mingw-w64-libdca-svn/0005-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch new file mode 100644 index 0000000000..4545395bb7 --- /dev/null +++ b/mingw-w64-libdca-svn/0005-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch @@ -0,0 +1,11 @@ +diff -urN libdca.orig/configure.ac libdca/configure.ac +--- libdca.orig/configure.ac 2015-07-12 13:15:51.803347900 +0100 ++++ libdca/configure.ac 2015-07-12 13:16:11.160455100 +0100 +@@ -105,7 +105,6 @@ + + dnl Checks for typedefs, structures, and compiler characteristics. + AC_C_CONST +-AC_C_ALWAYS_INLINE + AC_C_RESTRICT + AC_C_BUILTIN_EXPECT + AC_TYPE_SIZE_T diff --git a/mingw-w64-libdca-svn/PKGBUILD b/mingw-w64-libdca-svn/PKGBUILD index d757979b95..bf1c744ccc 100644 --- a/mingw-w64-libdca-svn/PKGBUILD +++ b/mingw-w64-libdca-svn/PKGBUILD @@ -4,7 +4,7 @@ _realname=libdca pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgver=r91 -pkgrel=1 +pkgrel=2 pkgdesc="Free library for decoding DTS Coherent Acoustics streams (mingw-w64)" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-libdts") replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-libdts") @@ -17,12 +17,14 @@ source=("${_realname}"::"svn://svn.videolan.org/libdca/trunk" 0001-Proper-use-of-destdir.all.patch 0002-fix-bootstrap.mingw.patch 0003-fix-symlink.mingw.patch - 0004-fix-regex.all.patch) + 0004-fix-regex.all.patch + 0005-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch) md5sums=('SKIP' '168b6a93e0ad60af0c261b8ad7cbf1c3' '74e72d3df921d187377e716b1852df42' '724beececd673be8cfcfd53356d38e5d' - '5ca23f28028357bbe5569c821360fb7b') + '5ca23f28028357bbe5569c821360fb7b' + '5864491a27a68cd394bb71d21b5fc684') pkgver() { cd "$srcdir/${_realname}" @@ -36,6 +38,7 @@ prepare() { patch -p1 -i ${srcdir}/0002-fix-bootstrap.mingw.patch patch -p1 -i ${srcdir}/0003-fix-symlink.mingw.patch patch -p1 -i ${srcdir}/0004-fix-regex.all.patch + patch -p1 -i ${srcdir}/0005-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch autoreconf -fi } From 6c571509e2160f61cd3a56879ea5aef281c82267 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 12 Jul 2015 13:31:56 +0100 Subject: [PATCH 1269/2060] mingw-w64-headers-git: Refresh patches --- ...ototype-for-CreateDeviceAndSwapChain.patch | 14 +++++------ ...dxgi-Add-interface-for-IDXGISurface1.patch | 14 +++++------ ...sing-dxgi-1.2-structs-and-interfaces.patch | 24 +++++++++--------- ...ing-d3d11-1.1-structs-and-interfaces.patch | 20 +++++++-------- ...=> 0005-Add-missing-DirectX-11-enum.patch} | 6 ++--- .../0006-Add-d3d11-video-decoder.patch | 10 +++++--- mingw-w64-headers-git/PKGBUILD | 25 ++++++++----------- 7 files changed, 57 insertions(+), 56 deletions(-) rename mingw-w64-headers-git/{0005-Add-missing-DirectX11-enum.patch => 0005-Add-missing-DirectX-11-enum.patch} (94%) diff --git a/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch b/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch index 86c5b48e10..b98d3c008f 100644 --- a/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch +++ b/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch @@ -1,7 +1,7 @@ -From 606f796685f7833ead74c25d4344b648353f6f2f Mon Sep 17 00:00:00 2001 +From 9edc68dfaf560cb9d9979b0883bdd9378841d6d1 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 19:02:56 +0000 -Subject: [PATCH 1/5] d3d11: Add prototype for CreateDeviceAndSwapChain +Subject: [PATCH 1/6] d3d11: Add prototype for CreateDeviceAndSwapChain --- mingw-w64-headers/direct-x/include/d3d11.h | 3 +++ @@ -9,10 +9,10 @@ Subject: [PATCH 1/5] d3d11: Add prototype for CreateDeviceAndSwapChain 2 files changed, 8 insertions(+) diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h -index 34c846b..4896a79 100644 +index cc64c3f..e49fd99 100644 --- a/mingw-w64-headers/direct-x/include/d3d11.h +++ b/mingw-w64-headers/direct-x/include/d3d11.h -@@ -8857,6 +8857,9 @@ HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,cons +@@ -8878,6 +8878,9 @@ HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,cons typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT, const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**, D3D_FEATURE_LEVEL*,ID3D11DeviceContext**); @@ -23,7 +23,7 @@ index 34c846b..4896a79 100644 diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl -index d5732c9..d2ecbfa 100644 +index c187463..59beafb 100644 --- a/mingw-w64-headers/direct-x/include/d3d11.idl +++ b/mingw-w64-headers/direct-x/include/d3d11.idl @@ -1,6 +1,7 @@ @@ -34,7 +34,7 @@ index d5732c9..d2ecbfa 100644 * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public -@@ -2134,3 +2135,7 @@ cpp_quote(" UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext** +@@ -2157,3 +2158,7 @@ cpp_quote(" UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext** cpp_quote("typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") @@ -43,5 +43,5 @@ index d5732c9..d2ecbfa 100644 +cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") +cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") -- -2.3.0 +2.4.5 diff --git a/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch b/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch index 2bb8f19c94..de09588ee9 100644 --- a/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch +++ b/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch @@ -1,7 +1,7 @@ -From f9592e22e65a0e6c1d0c390534618e5bb946c2a2 Mon Sep 17 00:00:00 2001 +From a02316fd603ffa47e68c700390e66baaa2ffa7f5 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 19:56:22 +0000 -Subject: [PATCH 2/5] dxgi: Add interface for IDXGISurface1 +Subject: [PATCH 2/6] dxgi: Add interface for IDXGISurface1 --- mingw-w64-headers/direct-x/include/dxgi.h | 191 ++++++++++++++++++++++++++++ @@ -9,7 +9,7 @@ Subject: [PATCH 2/5] dxgi: Add interface for IDXGISurface1 2 files changed, 210 insertions(+) diff --git a/mingw-w64-headers/direct-x/include/dxgi.h b/mingw-w64-headers/direct-x/include/dxgi.h -index a8a99ed..edfae00 100644 +index 88e76a2..08def83 100644 --- a/mingw-w64-headers/direct-x/include/dxgi.h +++ b/mingw-w64-headers/direct-x/include/dxgi.h @@ -42,6 +42,11 @@ typedef interface IDXGIKeyedMutex IDXGIKeyedMutex; @@ -24,7 +24,7 @@ index a8a99ed..edfae00 100644 #ifndef __IDXGIOutput_FWD_DEFINED__ #define __IDXGIOutput_FWD_DEFINED__ typedef interface IDXGIOutput IDXGIOutput; -@@ -1018,6 +1023,192 @@ void __RPC_STUB IDXGISurface_Unmap_Stub( +@@ -1019,6 +1024,192 @@ void __RPC_STUB IDXGISurface_Unmap_Stub( #endif /* __IDXGISurface_INTERFACE_DEFINED__ */ /***************************************************************************** @@ -218,7 +218,7 @@ index a8a99ed..edfae00 100644 */ #ifndef __IDXGIOutput_INTERFACE_DEFINED__ diff --git a/mingw-w64-headers/direct-x/include/dxgi.idl b/mingw-w64-headers/direct-x/include/dxgi.idl -index bc9538e..330a2c3 100644 +index 009a6b5..41ff7f1 100644 --- a/mingw-w64-headers/direct-x/include/dxgi.idl +++ b/mingw-w64-headers/direct-x/include/dxgi.idl @@ -1,5 +1,6 @@ @@ -228,7 +228,7 @@ index bc9538e..330a2c3 100644 * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public -@@ -222,6 +223,24 @@ interface IDXGISurface : IDXGIDeviceSubObject +@@ -223,6 +224,24 @@ interface IDXGISurface : IDXGIDeviceSubObject [ object, @@ -254,5 +254,5 @@ index bc9538e..330a2c3 100644 uuid(ae02eedb-c735-4690-8d52-5a8dc20213aa) ] -- -2.3.0 +2.4.5 diff --git a/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch b/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch index 47e653dec8..4d77b2292e 100644 --- a/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch +++ b/mingw-w64-headers-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch @@ -1,15 +1,15 @@ -From 5795b28b5cd163b7ade55196f929a7ec5683bf19 Mon Sep 17 00:00:00 2001 +From 0e266c2461defa50a51bda4eab1b1c08d37f698d Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 23:10:00 +0000 -Subject: [PATCH 3/5] dxgi: Add missing dxgi 1.2 structs and interfaces +Subject: [PATCH 3/6] dxgi: Add missing dxgi 1.2 structs and interfaces --- - mingw-w64-headers/direct-x/include/dxgi1_2.h | 1384 ++++++++++++++++++++++++ - mingw-w64-headers/direct-x/include/dxgi1_2.idl | 268 +++++ - 2 files changed, 1652 insertions(+) + mingw-w64-headers/direct-x/include/dxgi1_2.h | 744 +++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/dxgi1_2.idl | 151 +++++ + 2 files changed, 895 insertions(+) diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.h b/mingw-w64-headers/direct-x/include/dxgi1_2.h -index f621d30..406135b 100644 +index de3f359..3af09c7 100644 --- a/mingw-w64-headers/direct-x/include/dxgi1_2.h +++ b/mingw-w64-headers/direct-x/include/dxgi1_2.h @@ -17,6 +17,16 @@ @@ -29,7 +29,7 @@ index f621d30..406135b 100644 #ifndef __IDXGIDevice2_FWD_DEFINED__ #define __IDXGIDevice2_FWD_DEFINED__ typedef interface IDXGIDevice2 IDXGIDevice2; -@@ -36,6 +46,11 @@ typedef interface IDXGIDevice2 IDXGIDevice2; +@@ -37,6 +47,11 @@ typedef interface IDXGIFactory2 IDXGIFactory2; typedef interface IDXGIAdapter2 IDXGIAdapter2; #endif @@ -41,7 +41,7 @@ index f621d30..406135b 100644 /* Headers for imported files */ #include -@@ -35,6 +60,423 @@ typedef interface IDXGISwapChain1 IDXGISwapChain1; +@@ -45,6 +60,423 @@ typedef interface IDXGIAdapter2 IDXGIAdapter2; extern "C" { #endif @@ -465,7 +465,7 @@ index f621d30..406135b 100644 typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2, -@@ -1385,6 +1385,318 @@ void __RPC_STUB IDXGISwapChain1_GetRotation_Stub( +@@ -1385,6 +1817,318 @@ void __RPC_STUB IDXGIAdapter2_GetDesc2_Stub( #endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */ @@ -785,7 +785,7 @@ index f621d30..406135b 100644 diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.idl b/mingw-w64-headers/direct-x/include/dxgi1_2.idl -index bba4ab8..eed13bb 100644 +index 92f9c0e..838521e 100644 --- a/mingw-w64-headers/direct-x/include/dxgi1_2.idl +++ b/mingw-w64-headers/direct-x/include/dxgi1_2.idl @@ -1,5 +1,6 @@ @@ -910,7 +910,7 @@ index bba4ab8..eed13bb 100644 typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, DXGI_OFFER_RESOURCE_PRIORITY_NORMAL, -@@ -232,3 +239,45 @@ interface IDXGISwapChain1 : IDXGISwapChain +@@ -232,3 +341,45 @@ interface IDXGIAdapter2 : IDXGIAdapter1 { HRESULT GetDesc2([out] DXGI_ADAPTER_DESC2 *pDesc); } @@ -957,5 +957,5 @@ index bba4ab8..eed13bb 100644 + ); +} -- -2.3.0 +2.4.5 diff --git a/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch b/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch index 01897bbf65..4967bbbc4f 100644 --- a/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch +++ b/mingw-w64-headers-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch @@ -1,18 +1,18 @@ -From a4c30c0a15456a8a62af03f5eea02006eb453a87 Mon Sep 17 00:00:00 2001 +From 72fea0e0d302849b000e89dd9884661aa80f27dd Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 23:40:12 +0000 -Subject: [PATCH 4/5] d3d11: Add missing d3d11 1.1 structs and interfaces +Subject: [PATCH 4/6] d3d11: Add missing d3d11 1.1 structs and interfaces --- - mingw-w64-headers/direct-x/include/d3d11_1.h | 970 +++++++++++++++++++++++++ - mingw-w64-headers/direct-x/include/d3d11_1.idl | 139 ++++ - 2 files changed, 1109 insertions(+) + mingw-w64-headers/direct-x/include/d3d11_1.h | 5 +++++ + mingw-w64-headers/direct-x/include/d3d11_1.idl | 6 ++++++ + 2 files changed, 11 insertions(+) diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.h b/mingw-w64-headers/direct-x/include/d3d11_1.h -index ad50171..17183ef 100644 +index 51ca735..2460b3d 100644 --- a/mingw-w64-headers/direct-x/include/d3d11_1.h +++ b/mingw-w64-headers/direct-x/include/d3d11_1.h -@@ -59,6 +59,11 @@ void __RPC_STUB ID3D11DeviceContext1_DiscardView1_Stub( +@@ -59,6 +59,11 @@ typedef interface ID3D11Device1 ID3D11Device1; extern "C" { #endif @@ -25,10 +25,10 @@ index ad50171..17183ef 100644 D3D11_LOGIC_OP_CLEAR = 0, D3D11_LOGIC_OP_SET = 1, diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.idl b/mingw-w64-headers/direct-x/include/d3d11_1.idl -index 928548f..bf11725 100644 +index 1a46abf..319d522 100644 --- a/mingw-w64-headers/direct-x/include/d3d11_1.idl +++ b/mingw-w64-headers/direct-x/include/d3d11_1.idl -@@ -22,6 +22,12 @@ interface ID3D11DeviceContext1 : ID3D11DeviceContext +@@ -22,6 +22,12 @@ import "dxgi1_2.idl"; import "d3dcommon.idl"; import "d3d11.idl"; @@ -42,5 +42,5 @@ index 928548f..bf11725 100644 D3D11_LOGIC_OP_CLEAR = 0, D3D11_LOGIC_OP_SET, -- -2.3.0 +2.4.5 diff --git a/mingw-w64-headers-git/0005-Add-missing-DirectX11-enum.patch b/mingw-w64-headers-git/0005-Add-missing-DirectX-11-enum.patch similarity index 94% rename from mingw-w64-headers-git/0005-Add-missing-DirectX11-enum.patch rename to mingw-w64-headers-git/0005-Add-missing-DirectX-11-enum.patch index dc6906de48..15939a8bf0 100644 --- a/mingw-w64-headers-git/0005-Add-missing-DirectX11-enum.patch +++ b/mingw-w64-headers-git/0005-Add-missing-DirectX-11-enum.patch @@ -1,7 +1,7 @@ -From 6be0b32a05605d0d748df6994907761780026861 Mon Sep 17 00:00:00 2001 +From 6430ecb9f4241e8b516f35bd3a671c575c095efb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 17 Feb 2015 19:13:53 +0300 -Subject: [PATCH 5/5] Add missing DirectX 11 enum +Subject: [PATCH 5/6] Add missing DirectX 11 enum --- mingw-w64-headers/direct-x/include/d3dcommon.h | 11 +++++++++++ @@ -55,5 +55,5 @@ index f8fe203..3f75afb 100644 { D3D_SVT_VOID, -- -2.3.0 +2.4.5 diff --git a/mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch b/mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch index 947ae70ec7..2e78e28dc0 100644 --- a/mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch +++ b/mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch @@ -1,8 +1,12 @@ -From fae1ef8915b40d57ddd0e1cfd3526526d3137861 Mon Sep 17 00:00:00 2001 +From b952e857814e5cfe766626573e2f056ed91ceb09 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Sun, 14 Jun 2015 21:07:03 +0100 -Subject: [PATCH] Add d3d11 video decoder +Subject: [PATCH 6/6] Add d3d11 video decoder +--- + mingw-w64-headers/direct-x/include/d3d11.h | 949 +++++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/d3d11.idl | 208 ++++++ + 2 files changed, 1157 insertions(+) diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h index e49fd99..834a536 100644 @@ -1184,5 +1188,5 @@ index 59beafb..cfae7c8 100644 D3D11_CREATE_DEVICE_SINGLETHREADED = 0x0001, D3D11_CREATE_DEVICE_DEBUG = 0x0002, -- -2.4.3 +2.4.5 diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 652c3815cb..a8abf06410 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,8 +4,8 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4509.2e5a9a2 -pkgrel=2 +pkgver=5.0.0.4520.f3f8cd3 +pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" license=('custom') @@ -19,17 +19,15 @@ source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" - "0005-Add-missing-DirectX11-enum.patch" - "0006-Add-d3d11-video-decoder.patch" - "0007-activscp-remove-duplicates.patch") + "0005-Add-missing-DirectX-11-enum.patch" + "0006-Add-d3d11-video-decoder.patch") md5sums=('SKIP' - '0bcf1726f2093c6ed7e998d7e6c9dd16' - '20172a91981ffa87aa6aa5d3001c290b' - 'bdca4fc47725678f08cc23c96d130151' - '9973c46a1dc331fd07c4b3dc6f5472a0' - '652859ad478448a70c2074a854a313ec' - 'e05b2eadfef91ddd27809031cb2728dd' - 'bf498aee83b5dab2ce5a8e91c3deff9a') + 'ceab0a56e8195e0975cdc067918e48d7' + 'ada92acb4a3939bcede26298adc0a5d0' + 'b664667ec276614e62e4ea289c79c4b1' + '79bb56620aaef710ef1d73415dc5bc13' + '0595cbc641de91de1ca46e60011028e9' + 'a7b8ffba019fc9d1c6d33a9a9d1d10aa') pkgver() { cd "$srcdir/mingw-w64" @@ -46,9 +44,8 @@ prepare() { git am "${srcdir}/"0002-dxgi-Add-interface-for-IDXGISurface1.patch git am "${srcdir}/"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch - git am "${srcdir}/"0005-Add-missing-DirectX11-enum.patch + git am "${srcdir}/"0005-Add-missing-DirectX-11-enum.patch git am "${srcdir}/"0006-Add-d3d11-video-decoder.patch - git am "${srcdir}/"0007-activscp-remove-duplicates.patch cd ${srcdir}/mingw-w64/mingw-w64-headers touch include/windows.*.h include/wincrypt.h include/prsht.h From 8b0be7e2a32db6ae84ddd75a2fd8800b203823bc Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 12 Jul 2015 13:51:33 +0100 Subject: [PATCH 1270/2060] mingw-w64: Refresh patches --- ...ototype-for-CreateDeviceAndSwapChain.patch | 14 +- ...dxgi-Add-interface-for-IDXGISurface1.patch | 14 +- ...sing-dxgi-1.2-structs-and-interfaces.patch | 24 +- ...ing-d3d11-1.1-structs-and-interfaces.patch | 20 +- ...=> 0005-Add-missing-DirectX-11-enum.patch} | 6 +- .../0006-Add-d3d11-video-decoder.patch | 1192 +++++++++++++++++ mingw-w64-crt-git/PKGBUILD | 27 +- 7 files changed, 1246 insertions(+), 51 deletions(-) rename mingw-w64-crt-git/{0005-Add-missing-DirectX11-enum.patch => 0005-Add-missing-DirectX-11-enum.patch} (94%) create mode 100644 mingw-w64-crt-git/0006-Add-d3d11-video-decoder.patch diff --git a/mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch b/mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch index 86c5b48e10..b98d3c008f 100644 --- a/mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch +++ b/mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch @@ -1,7 +1,7 @@ -From 606f796685f7833ead74c25d4344b648353f6f2f Mon Sep 17 00:00:00 2001 +From 9edc68dfaf560cb9d9979b0883bdd9378841d6d1 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 19:02:56 +0000 -Subject: [PATCH 1/5] d3d11: Add prototype for CreateDeviceAndSwapChain +Subject: [PATCH 1/6] d3d11: Add prototype for CreateDeviceAndSwapChain --- mingw-w64-headers/direct-x/include/d3d11.h | 3 +++ @@ -9,10 +9,10 @@ Subject: [PATCH 1/5] d3d11: Add prototype for CreateDeviceAndSwapChain 2 files changed, 8 insertions(+) diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h -index 34c846b..4896a79 100644 +index cc64c3f..e49fd99 100644 --- a/mingw-w64-headers/direct-x/include/d3d11.h +++ b/mingw-w64-headers/direct-x/include/d3d11.h -@@ -8857,6 +8857,9 @@ HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,cons +@@ -8878,6 +8878,9 @@ HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,cons typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT, const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**, D3D_FEATURE_LEVEL*,ID3D11DeviceContext**); @@ -23,7 +23,7 @@ index 34c846b..4896a79 100644 diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl -index d5732c9..d2ecbfa 100644 +index c187463..59beafb 100644 --- a/mingw-w64-headers/direct-x/include/d3d11.idl +++ b/mingw-w64-headers/direct-x/include/d3d11.idl @@ -1,6 +1,7 @@ @@ -34,7 +34,7 @@ index d5732c9..d2ecbfa 100644 * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public -@@ -2134,3 +2135,7 @@ cpp_quote(" UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext** +@@ -2157,3 +2158,7 @@ cpp_quote(" UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext** cpp_quote("typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") @@ -43,5 +43,5 @@ index d5732c9..d2ecbfa 100644 +cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") +cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") -- -2.3.0 +2.4.5 diff --git a/mingw-w64-crt-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch b/mingw-w64-crt-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch index 2bb8f19c94..de09588ee9 100644 --- a/mingw-w64-crt-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch +++ b/mingw-w64-crt-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch @@ -1,7 +1,7 @@ -From f9592e22e65a0e6c1d0c390534618e5bb946c2a2 Mon Sep 17 00:00:00 2001 +From a02316fd603ffa47e68c700390e66baaa2ffa7f5 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 19:56:22 +0000 -Subject: [PATCH 2/5] dxgi: Add interface for IDXGISurface1 +Subject: [PATCH 2/6] dxgi: Add interface for IDXGISurface1 --- mingw-w64-headers/direct-x/include/dxgi.h | 191 ++++++++++++++++++++++++++++ @@ -9,7 +9,7 @@ Subject: [PATCH 2/5] dxgi: Add interface for IDXGISurface1 2 files changed, 210 insertions(+) diff --git a/mingw-w64-headers/direct-x/include/dxgi.h b/mingw-w64-headers/direct-x/include/dxgi.h -index a8a99ed..edfae00 100644 +index 88e76a2..08def83 100644 --- a/mingw-w64-headers/direct-x/include/dxgi.h +++ b/mingw-w64-headers/direct-x/include/dxgi.h @@ -42,6 +42,11 @@ typedef interface IDXGIKeyedMutex IDXGIKeyedMutex; @@ -24,7 +24,7 @@ index a8a99ed..edfae00 100644 #ifndef __IDXGIOutput_FWD_DEFINED__ #define __IDXGIOutput_FWD_DEFINED__ typedef interface IDXGIOutput IDXGIOutput; -@@ -1018,6 +1023,192 @@ void __RPC_STUB IDXGISurface_Unmap_Stub( +@@ -1019,6 +1024,192 @@ void __RPC_STUB IDXGISurface_Unmap_Stub( #endif /* __IDXGISurface_INTERFACE_DEFINED__ */ /***************************************************************************** @@ -218,7 +218,7 @@ index a8a99ed..edfae00 100644 */ #ifndef __IDXGIOutput_INTERFACE_DEFINED__ diff --git a/mingw-w64-headers/direct-x/include/dxgi.idl b/mingw-w64-headers/direct-x/include/dxgi.idl -index bc9538e..330a2c3 100644 +index 009a6b5..41ff7f1 100644 --- a/mingw-w64-headers/direct-x/include/dxgi.idl +++ b/mingw-w64-headers/direct-x/include/dxgi.idl @@ -1,5 +1,6 @@ @@ -228,7 +228,7 @@ index bc9538e..330a2c3 100644 * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public -@@ -222,6 +223,24 @@ interface IDXGISurface : IDXGIDeviceSubObject +@@ -223,6 +224,24 @@ interface IDXGISurface : IDXGIDeviceSubObject [ object, @@ -254,5 +254,5 @@ index bc9538e..330a2c3 100644 uuid(ae02eedb-c735-4690-8d52-5a8dc20213aa) ] -- -2.3.0 +2.4.5 diff --git a/mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch b/mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch index 47e653dec8..4d77b2292e 100644 --- a/mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch +++ b/mingw-w64-crt-git/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch @@ -1,15 +1,15 @@ -From 5795b28b5cd163b7ade55196f929a7ec5683bf19 Mon Sep 17 00:00:00 2001 +From 0e266c2461defa50a51bda4eab1b1c08d37f698d Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 23:10:00 +0000 -Subject: [PATCH 3/5] dxgi: Add missing dxgi 1.2 structs and interfaces +Subject: [PATCH 3/6] dxgi: Add missing dxgi 1.2 structs and interfaces --- - mingw-w64-headers/direct-x/include/dxgi1_2.h | 1384 ++++++++++++++++++++++++ - mingw-w64-headers/direct-x/include/dxgi1_2.idl | 268 +++++ - 2 files changed, 1652 insertions(+) + mingw-w64-headers/direct-x/include/dxgi1_2.h | 744 +++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/dxgi1_2.idl | 151 +++++ + 2 files changed, 895 insertions(+) diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.h b/mingw-w64-headers/direct-x/include/dxgi1_2.h -index f621d30..406135b 100644 +index de3f359..3af09c7 100644 --- a/mingw-w64-headers/direct-x/include/dxgi1_2.h +++ b/mingw-w64-headers/direct-x/include/dxgi1_2.h @@ -17,6 +17,16 @@ @@ -29,7 +29,7 @@ index f621d30..406135b 100644 #ifndef __IDXGIDevice2_FWD_DEFINED__ #define __IDXGIDevice2_FWD_DEFINED__ typedef interface IDXGIDevice2 IDXGIDevice2; -@@ -36,6 +46,11 @@ typedef interface IDXGIDevice2 IDXGIDevice2; +@@ -37,6 +47,11 @@ typedef interface IDXGIFactory2 IDXGIFactory2; typedef interface IDXGIAdapter2 IDXGIAdapter2; #endif @@ -41,7 +41,7 @@ index f621d30..406135b 100644 /* Headers for imported files */ #include -@@ -35,6 +60,423 @@ typedef interface IDXGISwapChain1 IDXGISwapChain1; +@@ -45,6 +60,423 @@ typedef interface IDXGIAdapter2 IDXGIAdapter2; extern "C" { #endif @@ -465,7 +465,7 @@ index f621d30..406135b 100644 typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2, -@@ -1385,6 +1385,318 @@ void __RPC_STUB IDXGISwapChain1_GetRotation_Stub( +@@ -1385,6 +1817,318 @@ void __RPC_STUB IDXGIAdapter2_GetDesc2_Stub( #endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */ @@ -785,7 +785,7 @@ index f621d30..406135b 100644 diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.idl b/mingw-w64-headers/direct-x/include/dxgi1_2.idl -index bba4ab8..eed13bb 100644 +index 92f9c0e..838521e 100644 --- a/mingw-w64-headers/direct-x/include/dxgi1_2.idl +++ b/mingw-w64-headers/direct-x/include/dxgi1_2.idl @@ -1,5 +1,6 @@ @@ -910,7 +910,7 @@ index bba4ab8..eed13bb 100644 typedef enum _DXGI_OFFER_RESOURCE_PRIORITY { DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, DXGI_OFFER_RESOURCE_PRIORITY_NORMAL, -@@ -232,3 +239,45 @@ interface IDXGISwapChain1 : IDXGISwapChain +@@ -232,3 +341,45 @@ interface IDXGIAdapter2 : IDXGIAdapter1 { HRESULT GetDesc2([out] DXGI_ADAPTER_DESC2 *pDesc); } @@ -957,5 +957,5 @@ index bba4ab8..eed13bb 100644 + ); +} -- -2.3.0 +2.4.5 diff --git a/mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch b/mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch index 01897bbf65..4967bbbc4f 100644 --- a/mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch +++ b/mingw-w64-crt-git/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch @@ -1,18 +1,18 @@ -From a4c30c0a15456a8a62af03f5eea02006eb453a87 Mon Sep 17 00:00:00 2001 +From 72fea0e0d302849b000e89dd9884661aa80f27dd Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 16 Feb 2015 23:40:12 +0000 -Subject: [PATCH 4/5] d3d11: Add missing d3d11 1.1 structs and interfaces +Subject: [PATCH 4/6] d3d11: Add missing d3d11 1.1 structs and interfaces --- - mingw-w64-headers/direct-x/include/d3d11_1.h | 970 +++++++++++++++++++++++++ - mingw-w64-headers/direct-x/include/d3d11_1.idl | 139 ++++ - 2 files changed, 1109 insertions(+) + mingw-w64-headers/direct-x/include/d3d11_1.h | 5 +++++ + mingw-w64-headers/direct-x/include/d3d11_1.idl | 6 ++++++ + 2 files changed, 11 insertions(+) diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.h b/mingw-w64-headers/direct-x/include/d3d11_1.h -index ad50171..17183ef 100644 +index 51ca735..2460b3d 100644 --- a/mingw-w64-headers/direct-x/include/d3d11_1.h +++ b/mingw-w64-headers/direct-x/include/d3d11_1.h -@@ -59,6 +59,11 @@ void __RPC_STUB ID3D11DeviceContext1_DiscardView1_Stub( +@@ -59,6 +59,11 @@ typedef interface ID3D11Device1 ID3D11Device1; extern "C" { #endif @@ -25,10 +25,10 @@ index ad50171..17183ef 100644 D3D11_LOGIC_OP_CLEAR = 0, D3D11_LOGIC_OP_SET = 1, diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.idl b/mingw-w64-headers/direct-x/include/d3d11_1.idl -index 928548f..bf11725 100644 +index 1a46abf..319d522 100644 --- a/mingw-w64-headers/direct-x/include/d3d11_1.idl +++ b/mingw-w64-headers/direct-x/include/d3d11_1.idl -@@ -22,6 +22,12 @@ interface ID3D11DeviceContext1 : ID3D11DeviceContext +@@ -22,6 +22,12 @@ import "dxgi1_2.idl"; import "d3dcommon.idl"; import "d3d11.idl"; @@ -42,5 +42,5 @@ index 928548f..bf11725 100644 D3D11_LOGIC_OP_CLEAR = 0, D3D11_LOGIC_OP_SET, -- -2.3.0 +2.4.5 diff --git a/mingw-w64-crt-git/0005-Add-missing-DirectX11-enum.patch b/mingw-w64-crt-git/0005-Add-missing-DirectX-11-enum.patch similarity index 94% rename from mingw-w64-crt-git/0005-Add-missing-DirectX11-enum.patch rename to mingw-w64-crt-git/0005-Add-missing-DirectX-11-enum.patch index dc6906de48..15939a8bf0 100644 --- a/mingw-w64-crt-git/0005-Add-missing-DirectX11-enum.patch +++ b/mingw-w64-crt-git/0005-Add-missing-DirectX-11-enum.patch @@ -1,7 +1,7 @@ -From 6be0b32a05605d0d748df6994907761780026861 Mon Sep 17 00:00:00 2001 +From 6430ecb9f4241e8b516f35bd3a671c575c095efb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 17 Feb 2015 19:13:53 +0300 -Subject: [PATCH 5/5] Add missing DirectX 11 enum +Subject: [PATCH 5/6] Add missing DirectX 11 enum --- mingw-w64-headers/direct-x/include/d3dcommon.h | 11 +++++++++++ @@ -55,5 +55,5 @@ index f8fe203..3f75afb 100644 { D3D_SVT_VOID, -- -2.3.0 +2.4.5 diff --git a/mingw-w64-crt-git/0006-Add-d3d11-video-decoder.patch b/mingw-w64-crt-git/0006-Add-d3d11-video-decoder.patch new file mode 100644 index 0000000000..2e78e28dc0 --- /dev/null +++ b/mingw-w64-crt-git/0006-Add-d3d11-video-decoder.patch @@ -0,0 +1,1192 @@ +From b952e857814e5cfe766626573e2f056ed91ceb09 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sun, 14 Jun 2015 21:07:03 +0100 +Subject: [PATCH 6/6] Add d3d11 video decoder + +--- + mingw-w64-headers/direct-x/include/d3d11.h | 949 +++++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/d3d11.idl | 208 ++++++ + 2 files changed, 1157 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h +index e49fd99..834a536 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.h ++++ b/mingw-w64-headers/direct-x/include/d3d11.h +@@ -8850,6 +8850,955 @@ void __RPC_STUB ID3D11Device_GetExceptionMode_Stub( + + #endif /* __ID3D11Device_INTERFACE_DEFINED__ */ + ++typedef enum D3D11_VDOV_DIMENSION { ++ D3D11_VDOV_DIMENSION_UNKNOWN = 0, ++ D3D11_VDOV_DIMENSION_TEXTURE2D = 1 ++} D3D11_VDOV_DIMENSION; ++typedef struct D3D11_TEX2D_VDOV { ++ UINT ArraySlice; ++} D3D11_TEX2D_VDOV; ++typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC { ++ GUID DecodeProfile; ++ D3D11_VDOV_DIMENSION ViewDimension; ++ __C89_NAMELESS union { ++ D3D11_TEX2D_VDOV Texture2D; ++ } __C89_NAMELESSUNIONNAME; ++} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; ++/***************************************************************************** ++ * ID3D11VideoDecoderOutputView interface ++ */ ++#ifndef __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ ++#define __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("c2931aea-2a85-4f20-860f-fba1fd256e18") ++ID3D11VideoDecoderOutputView : public ID3D11View ++{ ++ virtual void STDMETHODCALLTYPE GetDesc( ++ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18) ++#endif ++#else ++typedef struct ID3D11VideoDecoderOutputViewVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11VideoDecoderOutputView* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11VideoDecoderOutputView* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11VideoDecoderOutputView* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11VideoDecoderOutputView* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11VideoDecoderOutputView* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11VideoDecoderOutputView* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11VideoDecoderOutputView* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ /*** ID3D11View methods ***/ ++ void (STDMETHODCALLTYPE *GetResource)( ++ ID3D11VideoDecoderOutputView* This, ++ ID3D11Resource **ppResource); ++ ++ /*** ID3D11VideoDecoderOutputView methods ***/ ++ void (STDMETHODCALLTYPE *GetDesc)( ++ ID3D11VideoDecoderOutputView* This, ++ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); ++ ++ END_INTERFACE ++} ID3D11VideoDecoderOutputViewVtbl; ++interface ID3D11VideoDecoderOutputView { ++ CONST_VTBL ID3D11VideoDecoderOutputViewVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11VideoDecoderOutputView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11VideoDecoderOutputView_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11VideoDecoderOutputView_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11VideoDecoderOutputView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11VideoDecoderOutputView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11VideoDecoderOutputView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11VideoDecoderOutputView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++/*** ID3D11View methods ***/ ++#define ID3D11VideoDecoderOutputView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource) ++/*** ID3D11VideoDecoderOutputView methods ***/ ++#define ID3D11VideoDecoderOutputView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_QueryInterface(ID3D11VideoDecoderOutputView* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11VideoDecoderOutputView_AddRef(ID3D11VideoDecoderOutputView* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11VideoDecoderOutputView_Release(ID3D11VideoDecoderOutputView* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11VideoDecoderOutputView_GetDevice(ID3D11VideoDecoderOutputView* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_GetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_SetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_SetPrivateDataInterface(ID3D11VideoDecoderOutputView* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++/*** ID3D11View methods ***/ ++static FORCEINLINE void ID3D11VideoDecoderOutputView_GetResource(ID3D11VideoDecoderOutputView* This,ID3D11Resource **ppResource) { ++ This->lpVtbl->GetResource(This,ppResource); ++} ++/*** ID3D11VideoDecoderOutputView methods ***/ ++static FORCEINLINE void ID3D11VideoDecoderOutputView_GetDesc(ID3D11VideoDecoderOutputView* This,D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) { ++ This->lpVtbl->GetDesc(This,pDesc); ++} ++#endif ++#endif ++ ++#endif ++ ++void STDMETHODCALLTYPE ID3D11VideoDecoderOutputView_GetDesc_Proxy( ++ ID3D11VideoDecoderOutputView* This, ++ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); ++void __RPC_STUB ID3D11VideoDecoderOutputView_GetDesc_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ */ ++ ++/***************************************************************************** ++ * ID3D11VideoDecoder interface ++ */ ++#ifndef __ID3D11VideoDecoder_INTERFACE_DEFINED__ ++#define __ID3D11VideoDecoder_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("3c9c5b51-995d-48d1-9b8d-fa5caeded65c") ++ID3D11VideoDecoder : public ID3D11DeviceChild ++{ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c) ++#endif ++#else ++typedef struct ID3D11VideoDecoderVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11VideoDecoder* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11VideoDecoder* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11VideoDecoder* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11VideoDecoder* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11VideoDecoder* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11VideoDecoder* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11VideoDecoder* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ END_INTERFACE ++} ID3D11VideoDecoderVtbl; ++interface ID3D11VideoDecoder { ++ CONST_VTBL ID3D11VideoDecoderVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11VideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11VideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11VideoDecoder_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11VideoDecoder_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11VideoDecoder_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11VideoDecoder_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoDecoder_QueryInterface(ID3D11VideoDecoder* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11VideoDecoder_AddRef(ID3D11VideoDecoder* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11VideoDecoder_Release(ID3D11VideoDecoder* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11VideoDecoder_GetDevice(ID3D11VideoDecoder* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoder_GetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoder_SetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoDecoder_SetPrivateDataInterface(ID3D11VideoDecoder* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++#endif ++#endif ++ ++#endif ++ ++ ++#endif /* __ID3D11VideoDecoder_INTERFACE_DEFINED__ */ ++ ++typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE { ++ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, ++ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, ++ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, ++ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, ++ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, ++ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, ++ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, ++ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, ++ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8 ++} D3D11_VIDEO_DECODER_BUFFER_TYPE; ++typedef struct D3D11_ENCRYPTED_BLOCK_INFO { ++ UINT NumEncryptedBytesAtBeginning; ++ UINT NumBytesInSkipPattern; ++ UINT NumBytesInEncryptPattern; ++} D3D11_ENCRYPTED_BLOCK_INFO; ++typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC { ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; ++ UINT BufferIndex; ++ UINT DataOffset; ++ UINT DataSize; ++ UINT FirstMBaddress; ++ UINT NumMBsInBuffer; ++ UINT Width; ++ UINT Height; ++ UINT Stride; ++ UINT ReservedBits; ++ void *pIV; ++ UINT IVSize; ++ WINBOOL PartialEncryption; ++ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; ++} D3D11_VIDEO_DECODER_BUFFER_DESC; ++/***************************************************************************** ++ * ID3D11VideoContext interface ++ */ ++#ifndef __ID3D11VideoContext_INTERFACE_DEFINED__ ++#define __ID3D11VideoContext_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("61f21c45-3c0e-4a74-9cea-67100d9ad5e4") ++ID3D11VideoContext : public ID3D11DeviceChild ++{ ++ virtual HRESULT STDMETHODCALLTYPE GetDecoderBuffer( ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE ReleaseDecoderBuffer( ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame( ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE DecoderEndFrame( ++ ID3D11VideoDecoder *pDecoder) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers( ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4) ++#endif ++#else ++typedef struct ID3D11VideoContextVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11VideoContext* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11VideoContext* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11VideoContext* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11VideoContext* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ /*** ID3D11VideoContext methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer); ++ ++ HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++ ++ HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey); ++ ++ HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder); ++ ++ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++ ++ END_INTERFACE ++} ID3D11VideoContextVtbl; ++interface ID3D11VideoContext { ++ CONST_VTBL ID3D11VideoContextVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11VideoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11VideoContext_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11VideoContext_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11VideoContext_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11VideoContext_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11VideoContext_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11VideoContext_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++/*** ID3D11VideoContext methods ***/ ++#define ID3D11VideoContext_GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) (This)->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) ++#define ID3D11VideoContext_ReleaseDecoderBuffer(This,pDecoder,BufferType) (This)->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType) ++#define ID3D11VideoContext_DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) (This)->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) ++#define ID3D11VideoContext_DecoderEndFrame(This,pDecoder) (This)->lpVtbl->DecoderEndFrame(This,pDecoder) ++#define ID3D11VideoContext_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) (This)->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoContext_QueryInterface(ID3D11VideoContext* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11VideoContext_AddRef(ID3D11VideoContext* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11VideoContext_Release(ID3D11VideoContext* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11VideoContext_GetDevice(ID3D11VideoContext* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_GetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateDataInterface(ID3D11VideoContext* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++/*** ID3D11VideoContext methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoContext_GetDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType,UINT *pBufferSize,void **ppBuffer) { ++ return This->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_ReleaseDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) { ++ return This->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_DecoderBeginFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,ID3D11VideoDecoderOutputView *pVideoDecoderOutputView,UINT ContentKeySize,const void *pContentKey) { ++ return This->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_DecoderEndFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder) { ++ return This->lpVtbl->DecoderEndFrame(This,pDecoder); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SubmitDecoderBuffers(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,UINT NumBuffers,const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) { ++ return This->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_GetDecoderBuffer_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer); ++void __RPC_STUB ID3D11VideoContext_GetDecoderBuffer_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_ReleaseDecoderBuffer_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++void __RPC_STUB ID3D11VideoContext_ReleaseDecoderBuffer_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderBeginFrame_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey); ++void __RPC_STUB ID3D11VideoContext_DecoderBeginFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderEndFrame_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder); ++void __RPC_STUB ID3D11VideoContext_DecoderEndFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_SubmitDecoderBuffers_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++void __RPC_STUB ID3D11VideoContext_SubmitDecoderBuffers_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11VideoContext_INTERFACE_DEFINED__ */ ++ ++typedef struct D3D11_VIDEO_DECODER_DESC { ++ GUID Guid; ++ UINT SampleWidth; ++ UINT SampleHeight; ++ DXGI_FORMAT OutputFormat; ++} D3D11_VIDEO_DECODER_DESC; ++typedef struct D3D11_VIDEO_DECODER_CONFIG { ++ GUID guidConfigBitstreamEncryption; ++ GUID guidConfigMBcontrolEncryption; ++ GUID guidConfigResidDiffEncryption; ++ UINT ConfigBitstreamRaw; ++ UINT ConfigMBcontrolRasterOrder; ++ UINT ConfigResidDiffHost; ++ UINT ConfigSpatialResid8; ++ UINT ConfigResid8Subtraction; ++ UINT ConfigSpatialHost8or9Clipping; ++ UINT ConfigSpatialResidInterleaved; ++ UINT ConfigIntraResidUnsigned; ++ UINT ConfigResidDiffAccelerator; ++ UINT ConfigHostInverseScan; ++ UINT ConfigSpecificIDCT; ++ UINT Config4GroupedCoefs; ++ USHORT ConfigMinRenderTargetBuffCount; ++ USHORT ConfigDecoderSpecific; ++} D3D11_VIDEO_DECODER_CONFIG; ++typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE { ++ D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, ++ D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2, ++ D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3 ++} D3D11_AUTHENTICATED_CHANNEL_TYPE; ++#ifndef __ID3D11VideoProcessorEnumerator_FWD_DEFINED__ ++#define __ID3D11VideoProcessorEnumerator_FWD_DEFINED__ ++typedef interface ID3D11VideoProcessorEnumerator ID3D11VideoProcessorEnumerator; ++#endif ++ ++#ifndef __ID3D11VideoProcessor_FWD_DEFINED__ ++#define __ID3D11VideoProcessor_FWD_DEFINED__ ++typedef interface ID3D11VideoProcessor ID3D11VideoProcessor; ++#endif ++ ++#ifndef __ID3D11VideoProcessorInputView_FWD_DEFINED__ ++#define __ID3D11VideoProcessorInputView_FWD_DEFINED__ ++typedef interface ID3D11VideoProcessorInputView ID3D11VideoProcessorInputView; ++#endif ++ ++#ifndef __ID3D11VideoProcessorOutputView_FWD_DEFINED__ ++#define __ID3D11VideoProcessorOutputView_FWD_DEFINED__ ++typedef interface ID3D11VideoProcessorOutputView ID3D11VideoProcessorOutputView; ++#endif ++ ++#ifndef __ID3D11AuthenticatedChannel_FWD_DEFINED__ ++#define __ID3D11AuthenticatedChannel_FWD_DEFINED__ ++typedef interface ID3D11AuthenticatedChannel ID3D11AuthenticatedChannel; ++#endif ++ ++#ifndef __ID3D11CryptoSession_FWD_DEFINED__ ++#define __ID3D11CryptoSession_FWD_DEFINED__ ++typedef interface ID3D11CryptoSession ID3D11CryptoSession; ++#endif ++ ++/***************************************************************************** ++ * ID3D11VideoDevice interface ++ */ ++#ifndef __ID3D11VideoDevice_INTERFACE_DEFINED__ ++#define __ID3D11VideoDevice_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("10ec4d5b-975a-4689-b9e4-d0aac30fe333") ++ID3D11VideoDevice : public IUnknown ++{ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder( ++ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, ++ const D3D11_VIDEO_DECODER_CONFIG *pConfig, ++ ID3D11VideoDecoder **ppVideoDecoder) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor( ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ UINT RateConversionIndex, ++ ID3D11VideoProcessor **ppVideoProcessor) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateAuthenticatedChannel( ++ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, ++ ID3D11AuthenticatedChannel **ppAuthenticatedChannel) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateCryptoSession( ++ const GUID *pCryptoType, ++ const GUID *pDecoderProfile, ++ const GUID *pKeyExchangeType, ++ ID3D11CryptoSession **ppCryptoSession) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderOutputView( ++ ID3D11Resource *pResource, ++ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, ++ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorInputView( ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ const void *pInputDesc, ++ ID3D11VideoProcessorInputView **ppVideoProcInputView) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorOutputView( ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *pEnumerator, ++ const void *pOutputDesc, ++ ID3D11VideoProcessorOutputView **ppVideoProcOutputView) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorEnumerator( ++ const void *pContentDesc, ++ ID3D11VideoProcessorEnumerator **ppProcEnumerator) = 0; ++ ++ virtual UINT STDMETHODCALLTYPE GetVideoDecoderProfileCount( ++ ) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderProfile( ++ UINT DecoderIndex, ++ GUID *pDecoderProfile) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE CheckVideoDecoderFormat( ++ const GUID *pDecoderProfile, ++ DXGI_FORMAT Format, ++ WINBOOL *pSupported) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfigCount( ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT *pCount) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfig( ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT DecoderIndex, ++ D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33) ++#endif ++#else ++typedef struct ID3D11VideoDeviceVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11VideoDevice* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11VideoDevice* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11VideoDevice* This); ++ ++ /*** ID3D11VideoDevice methods ***/ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoder)( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, ++ const D3D11_VIDEO_DECODER_CONFIG *pConfig, ++ ID3D11VideoDecoder **ppVideoDecoder); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)( ++ ID3D11VideoDevice* This, ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ UINT RateConversionIndex, ++ ID3D11VideoProcessor **ppVideoProcessor); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateAuthenticatedChannel)( ++ ID3D11VideoDevice* This, ++ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, ++ ID3D11AuthenticatedChannel **ppAuthenticatedChannel); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateCryptoSession)( ++ ID3D11VideoDevice* This, ++ const GUID *pCryptoType, ++ const GUID *pDecoderProfile, ++ const GUID *pKeyExchangeType, ++ ID3D11CryptoSession **ppCryptoSession); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoderOutputView)( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, ++ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorInputView)( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ const void *pInputDesc, ++ ID3D11VideoProcessorInputView **ppVideoProcInputView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorOutputView)( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *pEnumerator, ++ const void *pOutputDesc, ++ ID3D11VideoProcessorOutputView **ppVideoProcOutputView); ++ ++ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorEnumerator)( ++ ID3D11VideoDevice* This, ++ const void *pContentDesc, ++ ID3D11VideoProcessorEnumerator **ppProcEnumerator); ++ ++ UINT (STDMETHODCALLTYPE *GetVideoDecoderProfileCount)( ++ ID3D11VideoDevice* This); ++ ++ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderProfile)( ++ ID3D11VideoDevice* This, ++ UINT DecoderIndex, ++ GUID *pDecoderProfile); ++ ++ HRESULT (STDMETHODCALLTYPE *CheckVideoDecoderFormat)( ++ ID3D11VideoDevice* This, ++ const GUID *pDecoderProfile, ++ DXGI_FORMAT Format, ++ WINBOOL *pSupported); ++ ++ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfigCount)( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT *pCount); ++ ++ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfig)( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT DecoderIndex, ++ D3D11_VIDEO_DECODER_CONFIG *pConfig); ++ ++ END_INTERFACE ++} ID3D11VideoDeviceVtbl; ++interface ID3D11VideoDevice { ++ CONST_VTBL ID3D11VideoDeviceVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11VideoDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11VideoDevice_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11VideoDevice_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11VideoDevice methods ***/ ++#define ID3D11VideoDevice_CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder) (This)->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder) ++#define ID3D11VideoDevice_CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor) (This)->lpVtbl->CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor) ++#define ID3D11VideoDevice_CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) (This)->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) ++#define ID3D11VideoDevice_CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) (This)->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) ++#define ID3D11VideoDevice_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView) (This)->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView) ++#define ID3D11VideoDevice_CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView) (This)->lpVtbl->CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView) ++#define ID3D11VideoDevice_CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView) (This)->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView) ++#define ID3D11VideoDevice_CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator) (This)->lpVtbl->CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator) ++#define ID3D11VideoDevice_GetVideoDecoderProfileCount(This) (This)->lpVtbl->GetVideoDecoderProfileCount(This) ++#define ID3D11VideoDevice_GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile) (This)->lpVtbl->GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile) ++#define ID3D11VideoDevice_CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) (This)->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) ++#define ID3D11VideoDevice_GetVideoDecoderConfigCount(This,pDesc,pCount) (This)->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount) ++#define ID3D11VideoDevice_GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig) (This)->lpVtbl->GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoDevice_QueryInterface(ID3D11VideoDevice* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11VideoDevice_AddRef(ID3D11VideoDevice* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11VideoDevice_Release(ID3D11VideoDevice* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11VideoDevice methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoDecoder(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pVideoDesc,const D3D11_VIDEO_DECODER_CONFIG *pConfig,ID3D11VideoDecoder **ppVideoDecoder) { ++ return This->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessor(ID3D11VideoDevice* This,ID3D11VideoProcessorEnumerator *ppProcEnumerator,UINT RateConversionIndex,ID3D11VideoProcessor **ppVideoProcessor) { ++ return This->lpVtbl->CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateAuthenticatedChannel(ID3D11VideoDevice* This,D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,ID3D11AuthenticatedChannel **ppAuthenticatedChannel) { ++ return This->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateCryptoSession(ID3D11VideoDevice* This,const GUID *pCryptoType,const GUID *pDecoderProfile,const GUID *pKeyExchangeType,ID3D11CryptoSession **ppCryptoSession) { ++ return This->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoDecoderOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView) { ++ return This->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorInputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *ppProcEnumerator,const void *pInputDesc,ID3D11VideoProcessorInputView **ppVideoProcInputView) { ++ return This->lpVtbl->CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *pEnumerator,const void *pOutputDesc,ID3D11VideoProcessorOutputView **ppVideoProcOutputView) { ++ return This->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorEnumerator(ID3D11VideoDevice* This,const void *pContentDesc,ID3D11VideoProcessorEnumerator **ppProcEnumerator) { ++ return This->lpVtbl->CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator); ++} ++static FORCEINLINE UINT ID3D11VideoDevice_GetVideoDecoderProfileCount(ID3D11VideoDevice* This) { ++ return This->lpVtbl->GetVideoDecoderProfileCount(This); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderProfile(ID3D11VideoDevice* This,UINT DecoderIndex,GUID *pDecoderProfile) { ++ return This->lpVtbl->GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_CheckVideoDecoderFormat(ID3D11VideoDevice* This,const GUID *pDecoderProfile,DXGI_FORMAT Format,WINBOOL *pSupported) { ++ return This->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderConfigCount(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT *pCount) { ++ return This->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount); ++} ++static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderConfig(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT DecoderIndex,D3D11_VIDEO_DECODER_CONFIG *pConfig) { ++ return This->lpVtbl->GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoDecoder_Proxy( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, ++ const D3D11_VIDEO_DECODER_CONFIG *pConfig, ++ ID3D11VideoDecoder **ppVideoDecoder); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoDecoder_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessor_Proxy( ++ ID3D11VideoDevice* This, ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ UINT RateConversionIndex, ++ ID3D11VideoProcessor **ppVideoProcessor); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessor_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateAuthenticatedChannel_Proxy( ++ ID3D11VideoDevice* This, ++ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, ++ ID3D11AuthenticatedChannel **ppAuthenticatedChannel); ++void __RPC_STUB ID3D11VideoDevice_CreateAuthenticatedChannel_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateCryptoSession_Proxy( ++ ID3D11VideoDevice* This, ++ const GUID *pCryptoType, ++ const GUID *pDecoderProfile, ++ const GUID *pKeyExchangeType, ++ ID3D11CryptoSession **ppCryptoSession); ++void __RPC_STUB ID3D11VideoDevice_CreateCryptoSession_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoDecoderOutputView_Proxy( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, ++ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoDecoderOutputView_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorInputView_Proxy( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ const void *pInputDesc, ++ ID3D11VideoProcessorInputView **ppVideoProcInputView); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorInputView_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorOutputView_Proxy( ++ ID3D11VideoDevice* This, ++ ID3D11Resource *pResource, ++ ID3D11VideoProcessorEnumerator *pEnumerator, ++ const void *pOutputDesc, ++ ID3D11VideoProcessorOutputView **ppVideoProcOutputView); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorOutputView_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorEnumerator_Proxy( ++ ID3D11VideoDevice* This, ++ const void *pContentDesc, ++ ID3D11VideoProcessorEnumerator **ppProcEnumerator); ++void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorEnumerator_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++UINT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderProfileCount_Proxy( ++ ID3D11VideoDevice* This); ++void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderProfileCount_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderProfile_Proxy( ++ ID3D11VideoDevice* This, ++ UINT DecoderIndex, ++ GUID *pDecoderProfile); ++void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderProfile_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CheckVideoDecoderFormat_Proxy( ++ ID3D11VideoDevice* This, ++ const GUID *pDecoderProfile, ++ DXGI_FORMAT Format, ++ WINBOOL *pSupported); ++void __RPC_STUB ID3D11VideoDevice_CheckVideoDecoderFormat_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderConfigCount_Proxy( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT *pCount); ++void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderConfigCount_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderConfig_Proxy( ++ ID3D11VideoDevice* This, ++ const D3D11_VIDEO_DECODER_DESC *pDesc, ++ UINT DecoderIndex, ++ D3D11_VIDEO_DECODER_CONFIG *pConfig); ++void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderConfig_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11VideoDevice_INTERFACE_DEFINED__ */ ++ + typedef enum D3D11_CREATE_DEVICE_FLAG { + D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1, + D3D11_CREATE_DEVICE_DEBUG = 0x2, +diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl +index 59beafb..cfae7c8 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.idl ++++ b/mingw-w64-headers/direct-x/include/d3d11.idl +@@ -2126,6 +2126,214 @@ interface ID3D11Device : IUnknown + UINT GetExceptionMode(); + } + ++typedef enum D3D11_VDOV_DIMENSION ++{ ++ D3D11_VDOV_DIMENSION_UNKNOWN = 0, ++ D3D11_VDOV_DIMENSION_TEXTURE2D ++} D3D11_VDOV_DIMENSION; ++ ++typedef struct D3D11_TEX2D_VDOV ++{ ++ UINT ArraySlice; ++} D3D11_TEX2D_VDOV; ++ ++typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC ++{ ++ GUID DecodeProfile; ++ D3D11_VDOV_DIMENSION ViewDimension; ++ ++ union ++ { ++ D3D11_TEX2D_VDOV Texture2D; ++ }; ++} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; ++ ++[ ++ object, ++ local, ++ uuid(c2931aea-2a85-4f20-860f-fba1fd256e18) ++] ++interface ID3D11VideoDecoderOutputView : ID3D11View ++{ ++ void GetDesc( ++ [out] D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc ); ++} ++ ++[ ++ object, ++ local, ++ uuid(3c9c5b51-995d-48d1-9b8d-fa5caeded65c) ++] ++interface ID3D11VideoDecoder : ID3D11DeviceChild ++{ ++} ++ ++typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE ++{ ++ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, ++ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE, ++ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX, ++ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM, ++ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR, ++ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN ++} D3D11_VIDEO_DECODER_BUFFER_TYPE; ++ ++typedef struct D3D11_ENCRYPTED_BLOCK_INFO ++{ ++ UINT NumEncryptedBytesAtBeginning; ++ UINT NumBytesInSkipPattern; ++ UINT NumBytesInEncryptPattern; ++} D3D11_ENCRYPTED_BLOCK_INFO; ++ ++typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC ++{ ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; ++ UINT BufferIndex; ++ UINT DataOffset; ++ UINT DataSize; ++ UINT FirstMBaddress; ++ UINT NumMBsInBuffer; ++ UINT Width; ++ UINT Height; ++ UINT Stride; ++ UINT ReservedBits; ++ void *pIV; ++ UINT IVSize; ++ BOOL PartialEncryption; ++ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; ++} D3D11_VIDEO_DECODER_BUFFER_DESC; ++ ++[ ++ object, ++ local, ++ uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4) ++] ++interface ID3D11VideoContext : ID3D11DeviceChild ++{ ++ HRESULT GetDecoderBuffer( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ [out] UINT *pBufferSize, ++ [out] void **ppBuffer); ++ HRESULT ReleaseDecoderBuffer( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++ HRESULT DecoderBeginFrame( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ [in] UINT ContentKeySize, ++ [in] const void *pContentKey); ++ HRESULT DecoderEndFrame( ++ [in] ID3D11VideoDecoder *pDecoder); ++ HRESULT SubmitDecoderBuffers( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] UINT NumBuffers, ++ [in] const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++} ++ ++typedef struct D3D11_VIDEO_DECODER_DESC ++{ ++ GUID Guid; ++ UINT SampleWidth; ++ UINT SampleHeight; ++ DXGI_FORMAT OutputFormat; ++} D3D11_VIDEO_DECODER_DESC; ++ ++typedef struct D3D11_VIDEO_DECODER_CONFIG ++{ ++ GUID guidConfigBitstreamEncryption; ++ GUID guidConfigMBcontrolEncryption; ++ GUID guidConfigResidDiffEncryption; ++ UINT ConfigBitstreamRaw; ++ UINT ConfigMBcontrolRasterOrder; ++ UINT ConfigResidDiffHost; ++ UINT ConfigSpatialResid8; ++ UINT ConfigResid8Subtraction; ++ UINT ConfigSpatialHost8or9Clipping; ++ UINT ConfigSpatialResidInterleaved; ++ UINT ConfigIntraResidUnsigned; ++ UINT ConfigResidDiffAccelerator; ++ UINT ConfigHostInverseScan; ++ UINT ConfigSpecificIDCT; ++ UINT Config4GroupedCoefs; ++ USHORT ConfigMinRenderTargetBuffCount; ++ USHORT ConfigDecoderSpecific; ++} D3D11_VIDEO_DECODER_CONFIG; ++ ++typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE ++{ ++ D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, ++ D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE, ++ D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE ++} D3D11_AUTHENTICATED_CHANNEL_TYPE; ++ ++interface ID3D11VideoProcessorEnumerator; ++interface ID3D11VideoProcessor; ++interface ID3D11VideoProcessorInputView; ++interface ID3D11VideoProcessorOutputView; ++interface ID3D11AuthenticatedChannel; ++interface ID3D11CryptoSession; ++ ++[ ++ object, ++ local, ++ uuid(10ec4d5b-975a-4689-b9e4-d0aac30fe333) ++] ++interface ID3D11VideoDevice : IUnknown ++{ ++ HRESULT CreateVideoDecoder( ++ [in] const D3D11_VIDEO_DECODER_DESC *pVideoDesc, ++ [in] const D3D11_VIDEO_DECODER_CONFIG *pConfig, ++ [out] ID3D11VideoDecoder **ppVideoDecoder); ++ HRESULT CreateVideoProcessor( ++ [in] ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ [in] UINT RateConversionIndex, ++ [out] ID3D11VideoProcessor **ppVideoProcessor); ++ HRESULT CreateAuthenticatedChannel( ++ [in] D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, ++ [out] ID3D11AuthenticatedChannel **ppAuthenticatedChannel); ++ HRESULT CreateCryptoSession( ++ [in] const GUID *pCryptoType, ++ [in] const GUID *pDecoderProfile, ++ [in] const GUID *pKeyExchangeType, ++ [out] ID3D11CryptoSession **ppCryptoSession); ++ HRESULT CreateVideoDecoderOutputView( ++ [in] ID3D11Resource *pResource, ++ [in] const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, ++ [out] ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); ++ HRESULT CreateVideoProcessorInputView( ++ [in] ID3D11Resource *pResource, ++ [in] ID3D11VideoProcessorEnumerator *ppProcEnumerator, ++ [in] const void *pInputDesc, /*D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC */ ++ [out] ID3D11VideoProcessorInputView **ppVideoProcInputView); ++ HRESULT CreateVideoProcessorOutputView( ++ [in] ID3D11Resource *pResource, ++ [in] ID3D11VideoProcessorEnumerator *pEnumerator, ++ [in] const void *pOutputDesc, /*D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC */ ++ [out] ID3D11VideoProcessorOutputView **ppVideoProcOutputView); ++ HRESULT CreateVideoProcessorEnumerator( ++ [in] const void *pContentDesc, /*D3D11_VIDEO_PROCESSOR_CONTENT_DESC */ ++ [out] ID3D11VideoProcessorEnumerator **ppProcEnumerator); ++ UINT GetVideoDecoderProfileCount(void); ++ HRESULT GetVideoDecoderProfile( ++ [in] UINT DecoderIndex, ++ [out] GUID *pDecoderProfile); ++ HRESULT CheckVideoDecoderFormat( ++ [in] const GUID *pDecoderProfile, ++ [in] DXGI_FORMAT Format, ++ [out] BOOL *pSupported); ++ HRESULT GetVideoDecoderConfigCount( ++ [in] const D3D11_VIDEO_DECODER_DESC *pDesc, ++ [out] UINT *pCount); ++ HRESULT GetVideoDecoderConfig( ++ [in] const D3D11_VIDEO_DECODER_DESC *pDesc, ++ [in] UINT DecoderIndex, ++ [out] D3D11_VIDEO_DECODER_CONFIG *pConfig); ++} ++ + typedef enum D3D11_CREATE_DEVICE_FLAG { + D3D11_CREATE_DEVICE_SINGLETHREADED = 0x0001, + D3D11_CREATE_DEVICE_DEBUG = 0x0002, +-- +2.4.5 + diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 15cc5cfe76..d2c327a9ef 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4509.2e5a9a2 +pkgver=5.0.0.4520.f3f8cd3 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -22,13 +22,15 @@ source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" - "0005-Add-missing-DirectX11-enum.patch") + "0005-Add-missing-DirectX-11-enum.patch" + "0006-Add-d3d11-video-decoder.patch") md5sums=('SKIP' - '0bcf1726f2093c6ed7e998d7e6c9dd16' - '20172a91981ffa87aa6aa5d3001c290b' - 'bdca4fc47725678f08cc23c96d130151' - '9973c46a1dc331fd07c4b3dc6f5472a0' - '652859ad478448a70c2074a854a313ec') + 'ceab0a56e8195e0975cdc067918e48d7' + 'ada92acb4a3939bcede26298adc0a5d0' + 'b664667ec276614e62e4ea289c79c4b1' + '79bb56620aaef710ef1d73415dc5bc13' + '0595cbc641de91de1ca46e60011028e9' + 'a7b8ffba019fc9d1c6d33a9a9d1d10aa') pkgver() { cd "$srcdir/mingw-w64" @@ -40,11 +42,12 @@ pkgver() { prepare() { cd ${srcdir}/mingw-w64 - git am "${srcdir}/"0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch - git am "${srcdir}/"0002-dxgi-Add-interface-for-IDXGISurface1.patch - git am "${srcdir}/"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch - git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch - git am "${srcdir}/"0005-Add-missing-DirectX11-enum.patch + git am "${srcdir}"/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch + git am "${srcdir}"/0002-dxgi-Add-interface-for-IDXGISurface1.patch + git am "${srcdir}"/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch + git am "${srcdir}"/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch + git am "${srcdir}"/0005-Add-missing-DirectX-11-enum.patch + git am "${srcdir}"/0006-Add-d3d11-video-decoder.patch } build() { From c09924c184f4d553e93852f57af7e5ebcd65c81d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 12 Jul 2015 14:36:24 +0100 Subject: [PATCH 1271/2060] libmpeg2-svn: Bump pkgrel add myself as a contributor --- mingw-w64-libmpeg2-svn/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-libmpeg2-svn/PKGBUILD b/mingw-w64-libmpeg2-svn/PKGBUILD index 9e38f1e73e..62d76b833d 100644 --- a/mingw-w64-libmpeg2-svn/PKGBUILD +++ b/mingw-w64-libmpeg2-svn/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly _realname=libmpeg2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgver=r1206 -pkgrel=1 +pkgrel=2 pkgdesc="Library for decoding MPEG-1 and MPEG-2 video streams (mingw-w64)" arch=('any') url="http://libmpeg2.sourceforge.net/" From 63387d4ab6c330463c26dca6cf6c20f371387fc9 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 13 Jul 2015 10:16:40 +0300 Subject: [PATCH 1272/2060] === Rebuild with GC-5.1.0. Part VII === --- ...ld.patch => 0001-a52dec-0.7.4-build.patch} | 0 ...ine-breaking-mingw-w64-GCC-5.1.0-C99.patch | 11 + mingw-w64-a52dec/PKGBUILD | 26 ++- .../PKGBUILD | 23 +- mingw-w64-exiv2/PKGBUILD | 16 +- mingw-w64-faac/PKGBUILD | 5 +- mingw-w64-faad2/PKGBUILD | 3 +- mingw-w64-firebird2-git/PKGBUILD | 4 +- mingw-w64-firebird2-git/mingw-w64-2_5.patch | 24 ++ .../0001-fix-config-linking.all.patch | 17 ++ .../0002-fix-mkdir.mingw.patch | 12 + .../0004-fix-mkdtemp.mingw.patch | 216 ++++++++++++++++++ .../0005-fix-setenv.mingw.patch | 27 +++ .../0007-pkgconfig.mingw.patch | 22 ++ mingw-w64-fontconfig/PKGBUILD | 34 ++- .../fontconfig-2.11.0-symlinks-fix.patch | 14 -- .../0001-give-cc-to-gir-scanner.all.patch | 0 .../PKGBUILD | 27 +-- mingw-w64-gst-plugins-bad/PKGBUILD | 4 +- mingw-w64-gst-plugins-ugly/PKGBUILD | 22 +- mingw-w64-lensfun/PKGBUILD | 20 +- mingw-w64-libcddb/PKGBUILD | 5 +- mingw-w64-libcdio/PKGBUILD | 13 +- mingw-w64-libdca-svn/PKGBUILD | 4 +- mingw-w64-libmad/PKGBUILD | 13 +- mingw-w64-libmpeg2-svn/PKGBUILD | 8 +- mingw-w64-libspiro/PKGBUILD | 28 ++- mingw-w64-lua-lpeg/PKGBUILD | 7 +- mingw-w64-lua/PKGBUILD | 4 +- mingw-w64-lua51/PKGBUILD | 6 +- mingw-w64-luabind-git/PKGBUILD | 19 +- .../002-fix-pkg-config-file.patch | 9 + mingw-w64-luajit-git/PKGBUILD | 26 ++- mingw-w64-twolame/PKGBUILD | 8 +- mingw-w64-webkitgtk3/0022-gl-casts.patch | 11 + mingw-w64-webkitgtk3/PKGBUILD | 5 + 36 files changed, 536 insertions(+), 157 deletions(-) rename mingw-w64-a52dec/{a52dec-0.7.4-build.patch => 0001-a52dec-0.7.4-build.patch} (100%) create mode 100644 mingw-w64-a52dec/0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch rename {mingw-w64-babl-git => mingw-w64-babl}/PKGBUILD (70%) create mode 100644 mingw-w64-fontconfig/0001-fix-config-linking.all.patch create mode 100644 mingw-w64-fontconfig/0002-fix-mkdir.mingw.patch create mode 100644 mingw-w64-fontconfig/0004-fix-mkdtemp.mingw.patch create mode 100644 mingw-w64-fontconfig/0005-fix-setenv.mingw.patch create mode 100644 mingw-w64-fontconfig/0007-pkgconfig.mingw.patch delete mode 100644 mingw-w64-fontconfig/fontconfig-2.11.0-symlinks-fix.patch rename {mingw-w64-gegl-git => mingw-w64-gegl}/0001-give-cc-to-gir-scanner.all.patch (100%) rename {mingw-w64-gegl-git => mingw-w64-gegl}/PKGBUILD (84%) create mode 100644 mingw-w64-luajit-git/002-fix-pkg-config-file.patch create mode 100644 mingw-w64-webkitgtk3/0022-gl-casts.patch diff --git a/mingw-w64-a52dec/a52dec-0.7.4-build.patch b/mingw-w64-a52dec/0001-a52dec-0.7.4-build.patch similarity index 100% rename from mingw-w64-a52dec/a52dec-0.7.4-build.patch rename to mingw-w64-a52dec/0001-a52dec-0.7.4-build.patch diff --git a/mingw-w64-a52dec/0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch b/mingw-w64-a52dec/0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch new file mode 100644 index 0000000000..fd8b5e3a6a --- /dev/null +++ b/mingw-w64-a52dec/0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch @@ -0,0 +1,11 @@ +diff -urN a52dec-0.7.4-orig/configure.in a52dec-0.7.4/configure.in +--- a52dec-0.7.4-orig/configure.in 2015-07-12 13:15:51.803347900 +0100 ++++ a52dec-0.7.4/configure.in 2015-07-12 13:16:11.160455100 +0100 +@@ -85,7 +85,6 @@ + + dnl Checks for typedefs, structures, and compiler characteristics. + AC_C_CONST +-AC_C_ALWAYS_INLINE + AC_C_RESTRICT + AC_TYPE_SIZE_T + AC_C_BIGENDIAN diff --git a/mingw-w64-a52dec/PKGBUILD b/mingw-w64-a52dec/PKGBUILD index d0c75aeeab..e3a2103ed2 100644 --- a/mingw-w64-a52dec/PKGBUILD +++ b/mingw-w64-a52dec/PKGBUILD @@ -4,38 +4,42 @@ _realname=a52dec pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.7.4 -pkgrel=1 -pkgdesc="A free library for decoding ATSC A/52 streams" +pkgrel=3 +pkgdesc="A free library for decoding ATSC A/52 streams (mingw-w64)" url="http://liba52.sourceforge.net/" arch=('any') license=('GPL2') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=("http://liba52.sourceforge.net/files/${_realname}-${pkgver}.tar.gz" - 'a52dec-0.7.4-build.patch') + '0001-a52dec-0.7.4-build.patch' + '0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch') md5sums=('caa9f5bc44232dc8aeea773fea56be80' - 'fa16f224a7dceb7613824380abef0052') + 'fa16f224a7dceb7613824380abef0052' + 'f3e200f41ecd682c6675d1b9c621c23b') prepare() { cd "${_realname}-${pkgver}" - patch -Np1 -i "${srcdir}/a52dec-0.7.4-build.patch" + patch -Np1 -i "${srcdir}/0001-a52dec-0.7.4-build.patch" + patch -Np1 -i "${srcdir}/0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch" sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.in mv configure.in configure.ac - ./bootstrap \ - --prefix=${MINGW_PREFIX} + ./bootstrap } build() { - cd ${_realname}-${pkgver} - ./configure \ + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared + make } package() { - cd "${srcdir}/${_realname}-${pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install - install -m644 liba52/a52_internal.h "${pkgdir}${MINGW_PREFIX}/include/a52dec/" + install -m644 ${srcdir}/${_realname}-${pkgver}/liba52/a52_internal.h "${pkgdir}${MINGW_PREFIX}/include/a52dec/" } diff --git a/mingw-w64-babl-git/PKGBUILD b/mingw-w64-babl/PKGBUILD similarity index 70% rename from mingw-w64-babl-git/PKGBUILD rename to mingw-w64-babl/PKGBUILD index 552fa32e89..24458a0303 100644 --- a/mingw-w64-babl-git/PKGBUILD +++ b/mingw-w64-babl/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov _realname=babl -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r778.f68079d +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}"-git) +pkgver=0.1.12 pkgrel=1 pkgdesc="Dynamic Pixel Format Translation Library (mingw-w64)" arch=('any') @@ -16,35 +17,33 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' 'staticlibs') -source=("${_realname}"::"git://git.gnome.org/babl") -sha1sums=('SKIP') - -pkgver() { - cd "$srcdir/$_realname" - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" -} +source=(#"${_realname}"::"git://git.gnome.org/babl" + #https://git.gnome.org/browse/babl/snapshot/BABL_${pkgver//./_}.tar.xz + http://ftp.gtk.org/pub/babl/${pkgver%.*}/${_realname}-${pkgver}.tar.bz2) +sha1sums=('b9a811d9d05717d66bc107a18447fbd74cff7eea') prepare() { - cd ${srcdir}/${_realname} + cd ${srcdir}/${_realname}-${pkgver} autoreconf --force --install --verbose } build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-shared \ --disable-static + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm rm "${pkgdir}${MINGW_PREFIX}"/lib/babl-*/*.dll.a } diff --git a/mingw-w64-exiv2/PKGBUILD b/mingw-w64-exiv2/PKGBUILD index f4794aae29..94036d13b3 100644 --- a/mingw-w64-exiv2/PKGBUILD +++ b/mingw-w64-exiv2/PKGBUILD @@ -4,7 +4,7 @@ _realname=exiv2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.25 -pkgrel=1 +pkgrel=2 pkgdesc="Exif and Iptc metadata manipulation library and tools (mingw-w64)" arch=('any') url="http://exiv2.org" @@ -44,15 +44,15 @@ build() { # Fix executables extensions sed -i 's|BINARY = $(BINSRC:.cpp=)|BINARY = $(BINSRC:.cpp=$(EXEEXT))|; - s|EXIV2BIN = $(EXIV2MAIN:.cpp=)|EXIV2BIN = $(EXIV2MAIN:.cpp=$(EXEEXT))|; - s|MCBIN = $(MCMAIN:.cpp=)|MCBIN = $(MCMAIN:.cpp=$(EXEEXT))|; - s|-o $@ $(LIBRARY) $@.o|-o $@ $(LIBRARY) $(BINOBJ)| - s|$(BINARY): %: %.o lib|$(BINARY): lib $(BINOBJ)|' src/Makefile + s|EXIV2BIN = $(EXIV2MAIN:.cpp=)|EXIV2BIN = $(EXIV2MAIN:.cpp=$(EXEEXT))|; + s|MCBIN = $(MCMAIN:.cpp=)|MCBIN = $(MCMAIN:.cpp=$(EXEEXT))|; + s|-o $@ $(LIBRARY) $@.o|-o $@ $(LIBRARY) $(BINOBJ)| + s|$(BINARY): %: %.o lib|$(BINARY): lib $(BINOBJ)|' src/Makefile + + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - #make || true - #cp src/.libs/localtime.o src/ - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-faac/PKGBUILD b/mingw-w64-faac/PKGBUILD index 65593f6537..427222d781 100644 --- a/mingw-w64-faac/PKGBUILD +++ b/mingw-w64-faac/PKGBUILD @@ -3,7 +3,7 @@ _realname=faac pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.28 -pkgrel=1 +pkgrel=2 pkgdesc='FAAC is an AAC audio encoder (mingw-w64)' arch=('any') url='http://www.audiocoding.com/faac.html' @@ -14,7 +14,7 @@ md5sums=('80763728d392c7d789cde25614c878f6' 'aa5048e1b2c960329d716a50fe1cfeaa') prepare() { - cd $srcdir/${_realname}-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} patch -Np1 -i ${srcdir}/make-shared.patch } @@ -29,6 +29,7 @@ build() { --enable-static \ --enable-shared \ --without-mp4v2 + make } diff --git a/mingw-w64-faad2/PKGBUILD b/mingw-w64-faad2/PKGBUILD index 5a89a0e7f9..5915e80d46 100644 --- a/mingw-w64-faad2/PKGBUILD +++ b/mingw-w64-faad2/PKGBUILD @@ -3,7 +3,7 @@ _realname=faad2 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.7 -pkgrel=1 +pkgrel=2 pkgdesc="ISO AAC audio decoder (mingw-w64)" arch=('any') url="http://www.audiocoding.com/" @@ -47,6 +47,7 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} + make } diff --git a/mingw-w64-firebird2-git/PKGBUILD b/mingw-w64-firebird2-git/PKGBUILD index 469af2a73d..89d7d1f1bd 100644 --- a/mingw-w64-firebird2-git/PKGBUILD +++ b/mingw-w64-firebird2-git/PKGBUILD @@ -2,7 +2,7 @@ _realname='firebird' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}2-git" -pkgver=2.5.5.26898.3643334 +pkgver=2.5.5.26913.d262412 pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features - version 2.x (mingw-w64)" url="http://www.firebirdsql.org/" @@ -26,7 +26,7 @@ options=('!debug' 'strip') source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git#branch=branch_2_5" mingw-w64-2_5.patch) sha256sums=('SKIP' - '8afc033eba603a7dbd166db3a4a79a4db7f1ae4ed5428f62de61a37c10284049') + '5b220d77ba9488d3589d31cd98f08709e81a360cf7f36f2fa45d9362ae0b7fa3') pkgver() { diff --git a/mingw-w64-firebird2-git/mingw-w64-2_5.patch b/mingw-w64-firebird2-git/mingw-w64-2_5.patch index 92d1b5d1a1..7acca0bf98 100644 --- a/mingw-w64-firebird2-git/mingw-w64-2_5.patch +++ b/mingw-w64-firebird2-git/mingw-w64-2_5.patch @@ -3010,4 +3010,28 @@ index 6e22f15..48186bc 100644 class Win32DirItr : public PathUtils::dir_iterator -- 2.4.3 +From 0982205145962152e3b964aa63559c435bddb6f1 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Sat, 11 Jul 2015 16:57:36 +0300 +Subject: [PATCH] Fix building gstat + +--- + src/utilities/gstat/dba.epp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/utilities/gstat/dba.epp b/src/utilities/gstat/dba.epp +index 76a10c5..71e6cf5 100644 +--- a/src/utilities/gstat/dba.epp ++++ b/src/utilities/gstat/dba.epp +@@ -42,7 +42,7 @@ + #include "../jrd/ibase.h" + #include "../jrd/ods.h" + #include "../jrd/btn.h" +-#include "../jrd/svc.h" ++#include "../jrd/ThreadData.h" + #include "../jrd/license.h" + #include "../jrd/msg_encode.h" + #include "../jrd/gdsassert.h" +-- +2.4.5 diff --git a/mingw-w64-fontconfig/0001-fix-config-linking.all.patch b/mingw-w64-fontconfig/0001-fix-config-linking.all.patch new file mode 100644 index 0000000000..6e39c5411a --- /dev/null +++ b/mingw-w64-fontconfig/0001-fix-config-linking.all.patch @@ -0,0 +1,17 @@ +--- fontconfig-2.10.92/conf.d/Makefile.am.orig 2013-04-13 06:32:27 +0400 ++++ fontconfig-2.10.92/conf.d/Makefile.am 2013-04-13 06:37:08 +0400 +@@ -81,12 +81,8 @@ + install-data-hook: + mkdir -p $(DESTDIR)$(configdir) + @(echo cd $(DESTDIR)$(configdir); \ +- cd $(DESTDIR)$(configdir); \ +- for i in $(CONF_LINKS); do \ +- echo $(RM) $$i";" ln -s $(templatedir)/$$i .; \ +- $(RM) $$i; \ +- ln -s $(templatedir)/$$i .; \ +- done) ++ mkdir -p $(DESTDIR)$(templatedir); \ ++ ) + uninstall-local: + @(echo cd $(DESTDIR)$(configdir); \ + cd $(DESTDIR)$(configdir); \ diff --git a/mingw-w64-fontconfig/0002-fix-mkdir.mingw.patch b/mingw-w64-fontconfig/0002-fix-mkdir.mingw.patch new file mode 100644 index 0000000000..62682ffb1a --- /dev/null +++ b/mingw-w64-fontconfig/0002-fix-mkdir.mingw.patch @@ -0,0 +1,12 @@ +--- fontconfig-2.11.0/test/test-migration.c.orig 2013-10-11 03:10:18.000000000 +0000 ++++ fontconfig-2.11.0/test/test-migration.c 2014-02-06 12:20:57.859195300 +0000 +@@ -4,6 +4,9 @@ + #include + #include + #include ++#ifdef _WIN32 ++#define mkdir(path,mode) _mkdir(path) ++#endif + #ifndef HAVE_STRUCT_DIRENT_D_TYPE + #include + #include diff --git a/mingw-w64-fontconfig/0004-fix-mkdtemp.mingw.patch b/mingw-w64-fontconfig/0004-fix-mkdtemp.mingw.patch new file mode 100644 index 0000000000..d3980a6111 --- /dev/null +++ b/mingw-w64-fontconfig/0004-fix-mkdtemp.mingw.patch @@ -0,0 +1,216 @@ +--- fontconfig-2.11.0/test/test-migration.c.orig 2014-02-06 12:24:45.529605800 +0000 ++++ fontconfig-2.11.0/test/test-migration.c 2014-02-06 14:43:19.691870300 +0000 +@@ -9,6 +9,213 @@ + #endif + #include + ++#if defined(_WIN32) ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static PSECURITY_DESCRIPTOR ++create_sd (int permissions) ++{ ++ PSECURITY_DESCRIPTOR pSD = NULL; ++ int i; ++ int j; ++ EXPLICIT_ACCESS ea[3]; ++ PSID sids[3] = { NULL, NULL, NULL }; ++ WELL_KNOWN_SID_TYPE sidtypes[3] = { WinCreatorOwnerSid, WinCreatorGroupSid, WinWorldSid }; ++ int ea_len = 0; ++ DWORD dwRes, dwDisposition; ++ PACL pACL = NULL; ++ ++ /* Initialize a security descriptor. */ ++ pSD = (PSECURITY_DESCRIPTOR) LocalAlloc (LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH); ++ if (NULL == pSD) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ ++ if (!InitializeSecurityDescriptor (pSD, SECURITY_DESCRIPTOR_REVISION)) ++ { ++ LocalFree (pSD); ++ errno = EIO; ++ return NULL; ++ } ++ ++ for (i = 0; i < 3; i++) ++ { ++ BOOL b; ++ DWORD bytes; ++ int imasked = permissions & (07 << (2 - i)); ++ if (!imasked) ++ continue; ++ ++ bytes = SECURITY_MAX_SID_SIZE; ++ sids[ea_len] = (PSID) LocalAlloc (LMEM_FIXED, bytes); ++ if (NULL == sids[ea_len]) ++ { ++ errno = ENOMEM; ++ LocalFree (pSD); ++ for (j = 0; j < ea_len; j++) ++ { ++ if (sids[j] != NULL) ++ { ++ LocalFree (sids[j]); ++ sids[j] = NULL; ++ } ++ } ++ return NULL; ++ } ++ ++ b = CreateWellKnownSid (sidtypes[i], NULL, sids[ea_len], &bytes); ++ if (!b) ++ { ++ errno = EINVAL; ++ LocalFree (pSD); ++ for (j = 0; j < ea_len; j++) ++ { ++ if (sids[j] != NULL) ++ { ++ LocalFree (sids[j]); ++ sids[j] = NULL; ++ } ++ } ++ return NULL; ++ } ++ ++ /* Initialize an EXPLICIT_ACCESS structure for an ACE. */ ++ ZeroMemory (&ea[ea_len], sizeof(EXPLICIT_ACCESS)); ++ bytes = 0; ++ if (01 & imasked) ++ bytes = bytes | GENERIC_READ; ++ if (02 & imasked) ++ bytes = bytes | GENERIC_WRITE; ++ if (04 & imasked) ++ bytes = bytes | GENERIC_EXECUTE; ++ ea[ea_len].grfAccessPermissions = bytes; ++ ea[ea_len].grfAccessMode = SET_ACCESS; ++ ea[ea_len].grfInheritance= NO_INHERITANCE; ++ ea[ea_len].Trustee.TrusteeForm = TRUSTEE_IS_SID; ++ ea[ea_len].Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP; ++ ea[ea_len].Trustee.ptstrName = (LPTSTR) sids[ea_len]; ++ ea_len = ea_len + 1; ++ } ++ ++ /* Create a new ACL that contains the new ACEs. */ ++ dwRes = SetEntriesInAcl (ea_len, ea, NULL, &pACL); ++ if (ERROR_SUCCESS != dwRes) ++ { ++ errno = EIO; ++ LocalFree (pSD); ++ for (j = 0; j < ea_len; j++) ++ { ++ if (sids[j] != NULL) ++ { ++ LocalFree (sids[j]); ++ sids[j] = NULL; ++ } ++ } ++ return NULL; ++ } ++ ++ for (j = 0; j < ea_len; j++) ++ { ++ if (sids[j] != NULL) ++ { ++ LocalFree (sids[j]); ++ sids[j] = NULL; ++ } ++ } ++ ++ /* Add the ACL to the security descriptor. */ ++ if (!SetSecurityDescriptorDacl (pSD, ++ TRUE, // bDaclPresent flag ++ pACL, ++ FALSE)) // not a default DACL ++ { ++ errno = EIO; ++ LocalFree (pSD); ++ LocalFree (pACL); ++ return NULL; ++ } ++ ++ return pSD; ++} ++ ++static void ++free_sd (PSECURITY_DESCRIPTOR sd) ++{ ++ BOOL b, present, defaulted; ++ PACL pACL = NULL; ++ present = FALSE; ++ b = GetSecurityDescriptorDacl (sd, &present, &pACL, &defaulted); ++ if (b && present && !defaulted && pACL) ++ LocalFree (pACL); ++ LocalFree (sd); ++} ++ ++static void ++randtemplate (char *template, size_t l) ++{ ++ int i; ++ for (i = l - 6; i < l; i++) ++ { ++ int r = rand (); ++ if ((r / (RAND_MAX + 1)) > ((RAND_MAX + 1) / 2)) ++ template[i] = 'A' + (double) rand () / (RAND_MAX + 1) * ('Z' - 'A'); ++ else ++ template[i] = 'a' + (double) rand () / (RAND_MAX + 1) * ('z' - 'a'); ++ } ++} ++ ++static char * ++mkdtemp (char *template) ++{ ++ int i; ++ size_t l; ++ BOOL b; ++ SECURITY_ATTRIBUTES sa; ++ ++ if (template == NULL) ++ { ++ errno = EINVAL; ++ return NULL; ++ } ++ l = strlen (template); ++ if (l < 6 || strcmp (&template[l - 6], "XXXXXX") != 0) ++ { ++ errno = EINVAL; ++ return NULL; ++ } ++ srand(time (NULL)); ++ sa.nLength = sizeof (sa); ++ sa.lpSecurityDescriptor = create_sd (0700); ++ sa.bInheritHandle = FALSE; ++ do ++ { ++ randtemplate (template, l); ++ SetLastError (0); ++ b = CreateDirectoryA (template, &sa); ++ } while (!b && GetLastError () == ERROR_ALREADY_EXISTS); ++ free_sd (sa.lpSecurityDescriptor); ++ if (!b) ++ { ++ errno = EIO; ++ return NULL; ++ } ++ else ++ { ++ errno = 0; ++ return template; ++ } ++} ++#endif ++ + FcBool + mkdir_p(const char *dir) + { diff --git a/mingw-w64-fontconfig/0005-fix-setenv.mingw.patch b/mingw-w64-fontconfig/0005-fix-setenv.mingw.patch new file mode 100644 index 0000000000..36d31d3b06 --- /dev/null +++ b/mingw-w64-fontconfig/0005-fix-setenv.mingw.patch @@ -0,0 +1,27 @@ +--- fontconfig-2.11.0/test/test-migration.c.orig 2014-02-06 14:43:19.691870300 +0000 ++++ fontconfig-2.11.0/test/test-migration.c 2014-02-06 14:48:25.336182200 +0000 +@@ -214,6 +214,24 @@ + return template; + } + } ++ ++static int ++setenv (const char *var, const char *val, int ovr) ++{ ++ BOOL b; ++ char c[2]; ++ if (!ovr) ++ { ++ DWORD d; ++ d = GetEnvironmentVariableA (var, c, 2); ++ if (0 != d && GetLastError () != ERROR_ENVVAR_NOT_FOUND) ++ return; ++ } ++ b = SetEnvironmentVariableA (var, val); ++ if (b) ++ return 0; ++ return 1; ++} + #endif + + FcBool diff --git a/mingw-w64-fontconfig/0007-pkgconfig.mingw.patch b/mingw-w64-fontconfig/0007-pkgconfig.mingw.patch new file mode 100644 index 0000000000..0895c2fc43 --- /dev/null +++ b/mingw-w64-fontconfig/0007-pkgconfig.mingw.patch @@ -0,0 +1,22 @@ +--- fontconfig-2.11.93/m4/pkg.m4.orig 2015-03-09 02:54:03.000000000 +0000 ++++ fontconfig-2.11.93/m4/pkg.m4 2015-04-06 11:04:21.862416100 +0000 +@@ -111,8 +111,8 @@ + pkg_failed=no + AC_MSG_CHECKING([for $1]) + +-_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +-_PKG_CONFIG([$1][_LIBS], [libs], [$2]) ++_PKG_CONFIG([$1][_CFLAGS], [cflags --dont-define-prefix], [$2]) ++_PKG_CONFIG([$1][_LIBS], [libs --dont-define-prefix], [$2]) + + m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS + and $1[]_LIBS to avoid the need to call pkg-config. +@@ -207,7 +207,7 @@ + [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl + AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +-_PKG_CONFIG([$1], [variable="][$3]["], [$2]) ++_PKG_CONFIG([$1], [variable="][$3][" --dont-define-prefix], [$2]) + AS_VAR_COPY([$1], [pkg_cv_][$1]) + + AS_VAR_IF([$1], [""], [$5], [$4])dnl diff --git a/mingw-w64-fontconfig/PKGBUILD b/mingw-w64-fontconfig/PKGBUILD index e45e0ed69e..c26f5b2487 100644 --- a/mingw-w64-fontconfig/PKGBUILD +++ b/mingw-w64-fontconfig/PKGBUILD @@ -3,8 +3,8 @@ _realname=fontconfig pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.11.1 -pkgrel=4 +pkgver=2.11.94 +pkgrel=1 pkgdesc="A library for configuring and customizing font access (mingw-w64)" arch=('any') url="http://www.fontconfig.org/release" @@ -17,14 +17,28 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv") options=('staticlibs' 'strip') install=${_realname}-${CARCH}.install -source=("http://www.fontconfig.org/release/fontconfig-$pkgver.tar.bz2" - "fontconfig-2.11.0-symlinks-fix.patch") -sha256sums=('dc62447533bca844463a3c3fd4083b57c90f18a70506e7a9f4936b5a1e516a99' - '92541375e945261832d4876551f94596fcf540c4edaf789ac0f36de7592c5966') +source=("http://www.fontconfig.org/release/fontconfig-${pkgver}.tar.bz2" + 0001-fix-config-linking.all.patch + 0002-fix-mkdir.mingw.patch + 0004-fix-mkdtemp.mingw.patch + 0005-fix-setenv.mingw.patch + 0007-pkgconfig.mingw.patch) +sha256sums=('d763c024df434146f3352448bc1f4554f390c8a48340cef7aa9cc44716a159df' + 'a262d07c3d298af4a80caf027dab9ffa2fd2e5a8f11f1a04c82b14513791c041' + '0d950eb8a19858bff1f0b26e4a560f589e79e7eb7f22f723267748dfe55e0b63' + '57ff8420dbf62873b6fcb38b52fb7b37e0e278425a9125e15dccba54668c8ab9' + '552b54010f9fe4097f332cf2397bbd3e78489542d3bbf07792ed1cfe9381796e' + 'af373531873da46d0356305da5444c1ec74f443cd2635ea2db6b7dadd1561f5b') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/fontconfig-2.11.0-symlinks-fix.patch + patch -p1 -i ${srcdir}/0001-fix-config-linking.all.patch + patch -p1 -i ${srcdir}/0002-fix-mkdir.mingw.patch + patch -p1 -i ${srcdir}/0004-fix-mkdtemp.mingw.patch + patch -p1 -i ${srcdir}/0005-fix-setenv.mingw.patch + patch -p1 -i ${srcdir}/0007-pkgconfig.mingw.patch + + autoreconf -fiv } build() { @@ -38,6 +52,7 @@ build() { --enable-iconv \ --disable-docs \ --with-arch=${CARCH} \ + --with-cache-dir=${MINGW_PREFIX}/var/cache/${_realname} \ as_ln_s="cp -pR" sed -i 's,all-am: Makefile $(PROGRAMS),all-am:,' test/Makefile @@ -46,7 +61,8 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm + make -j1 DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + + find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-fontconfig/fontconfig-2.11.0-symlinks-fix.patch b/mingw-w64-fontconfig/fontconfig-2.11.0-symlinks-fix.patch deleted file mode 100644 index 1340a7dbe5..0000000000 --- a/mingw-w64-fontconfig/fontconfig-2.11.0-symlinks-fix.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- fontconfig-2.11.0/conf.d/Makefile.in.orig 2013-11-27 19:16:03.409200000 +0400 -+++ fontconfig-2.11.0/conf.d/Makefile.in 2013-11-27 19:26:38.045000000 +0400 -@@ -632,9 +632,9 @@ - @(echo cd $(DESTDIR)$(configdir); \ - cd $(DESTDIR)$(configdir); \ - for i in $(CONF_LINKS); do \ -- echo $(RM) $$i";" ln -s $(templatedir)/$$i .; \ -+ echo $(RM) $$i";" ln -s $(DESTDIR)$(templatedir)/$$i .; \ - $(RM) $$i; \ -- ln -s $(templatedir)/$$i .; \ -+ ln -s $(DESTDIR)$(templatedir)/$$i .; \ - done) - uninstall-local: - @(echo cd $(DESTDIR)$(configdir); \ diff --git a/mingw-w64-gegl-git/0001-give-cc-to-gir-scanner.all.patch b/mingw-w64-gegl/0001-give-cc-to-gir-scanner.all.patch similarity index 100% rename from mingw-w64-gegl-git/0001-give-cc-to-gir-scanner.all.patch rename to mingw-w64-gegl/0001-give-cc-to-gir-scanner.all.patch diff --git a/mingw-w64-gegl-git/PKGBUILD b/mingw-w64-gegl/PKGBUILD similarity index 84% rename from mingw-w64-gegl-git/PKGBUILD rename to mingw-w64-gegl/PKGBUILD index fc78801575..40317555a5 100644 --- a/mingw-w64-gegl-git/PKGBUILD +++ b/mingw-w64-gegl/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov _realname=gegl -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r6597.1cbe63f +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") +pkgver=0.3.0 pkgrel=1 pkgdesc="Generic Graphics Library (mingw-w64)" arch=('any') @@ -20,7 +21,7 @@ makedepends=("asciidoc" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-ruby" "${MINGW_PACKAGE_PREFIX}-vala") -depends=("${MINGW_PACKAGE_PREFIX}-babl-git" +depends=("${MINGW_PACKAGE_PREFIX}-babl" "${MINGW_PACKAGE_PREFIX}-cairo" "${MINGW_PACKAGE_PREFIX}-exiv2" "${MINGW_PACKAGE_PREFIX}-gcc-libs" @@ -45,28 +46,24 @@ depends=("${MINGW_PACKAGE_PREFIX}-babl-git" # "${MINGW_PACKAGE_PREFIX}-librsvg: for using the svg plugin" # "${MINGW_PACKAGE_PREFIX}-jasper: for using the jasper plugin") options=('strip' 'staticlibs') -source=("${_realname}"::"git://git.gnome.org/gegl" +source=(#"${_realname}"::"git://git.gnome.org/gegl" + http://ftp.gtk.org/pub/gegl/${pkgver%.*}/${_realname}-${pkgver}.tar.bz2 0001-give-cc-to-gir-scanner.all.patch) -sha1sums=('SKIP' +sha1sums=('d6b77996740bc885fd42f5c639c9d3fce6211855' 'aabcead7c7a81b875840cbd233826ff4920c042f') -pkgver() { - cd "$srcdir/$_realname" - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" -} - prepare() { - cd ${srcdir}/${_realname} + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.all.patch autoreconf --force --install --verbose } build() { - # export lt_cv_deplibs_check_method='pass_all' + export lt_cv_deplibs_check_method='pass_all' mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - PKG_CONFIG=${MINGW_PREFIX}/bin/pkg-config.exe \ - "${srcdir}"/${_realname-}/configure \ + + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -86,7 +83,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm rm "${pkgdir}${MINGW_PREFIX}"/lib/gegl-*/*.dll.a } diff --git a/mingw-w64-gst-plugins-bad/PKGBUILD b/mingw-w64-gst-plugins-bad/PKGBUILD index da04cbf551..3b13c98925 100644 --- a/mingw-w64-gst-plugins-bad/PKGBUILD +++ b/mingw-w64-gst-plugins-bad/PKGBUILD @@ -3,7 +3,7 @@ _realname=gst-plugins-bad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.5 -pkgrel=4 +pkgrel=5 pkgdesc="GStreamer Multimedia Framework Bad Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" @@ -92,7 +92,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a } diff --git a/mingw-w64-gst-plugins-ugly/PKGBUILD b/mingw-w64-gst-plugins-ugly/PKGBUILD index ee1940031e..2b51bf9b7e 100644 --- a/mingw-w64-gst-plugins-ugly/PKGBUILD +++ b/mingw-w64-gst-plugins-ugly/PKGBUILD @@ -3,7 +3,7 @@ _realname=gst-plugins-ugly pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.5 -pkgrel=1 +pkgrel=2 pkgdesc="GStreamer Multimedia Framework Ugly Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" @@ -13,16 +13,16 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2" ) depends=("${MINGW_PACKAGE_PREFIX}-a52dec" - "${MINGW_PACKAGE_PREFIX}-gst-plugins-base" - "${MINGW_PACKAGE_PREFIX}-gstreamer" - "${MINGW_PACKAGE_PREFIX}-lame" - "${MINGW_PACKAGE_PREFIX}-libdvdread" - "${MINGW_PACKAGE_PREFIX}-libmad" - "${MINGW_PACKAGE_PREFIX}-libmpeg2" - "${MINGW_PACKAGE_PREFIX}-libcdio" - "${MINGW_PACKAGE_PREFIX}-opencore-amr" - "${MINGW_PACKAGE_PREFIX}-twolame" - "${MINGW_PACKAGE_PREFIX}-x264" + "${MINGW_PACKAGE_PREFIX}-gst-plugins-base" + "${MINGW_PACKAGE_PREFIX}-gstreamer" + "${MINGW_PACKAGE_PREFIX}-lame" + "${MINGW_PACKAGE_PREFIX}-libdvdread" + "${MINGW_PACKAGE_PREFIX}-libmad" + "${MINGW_PACKAGE_PREFIX}-libmpeg2" + "${MINGW_PACKAGE_PREFIX}-libcdio" + "${MINGW_PACKAGE_PREFIX}-opencore-amr" + "${MINGW_PACKAGE_PREFIX}-twolame" + "${MINGW_PACKAGE_PREFIX}-x264" ) options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz) diff --git a/mingw-w64-lensfun/PKGBUILD b/mingw-w64-lensfun/PKGBUILD index a3a25a5bf0..7c8498964d 100644 --- a/mingw-w64-lensfun/PKGBUILD +++ b/mingw-w64-lensfun/PKGBUILD @@ -3,7 +3,7 @@ _realname=lensfun pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.3.1 -pkgrel=1 +pkgrel=2 pkgdesc="Database of photographic lenses and a library that allows advanced access to the database (mingw-w64)" arch=('any') url="http://lensfun.sourceforge.net" @@ -22,19 +22,20 @@ md5sums=('7f577385f98b260ea5384b99c6eb03aa' '44c20404014c73b33e92d89d61d6afdf') prepare(){ - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i "${srcdir}/cmake-mingw.patch" } build() { - [[ -d $srcdir/build-${MINGW_CHOST} ]] && rm -rf $srcdir/build-${MINGW_CHOST} - mkdir $srcdir/build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} [[ $CARCH == x86_64 ]] && ENABLESSE2="-DBUILD_FOR_SSE2=ON" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBUILD_STATIC=OFF \ -DBUILD_AUXFUN=ON \ -DBUILD_TESTS=OFF \ @@ -47,9 +48,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make install - - local PREFIX_WIN=$(cygpath -ma ${pkgdir}${MINGW_PREFIX}) - sed -i "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/lensfun.pc + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libcddb/PKGBUILD b/mingw-w64-libcddb/PKGBUILD index b7db7f2f29..373e64125b 100644 --- a/mingw-w64-libcddb/PKGBUILD +++ b/mingw-w64-libcddb/PKGBUILD @@ -4,14 +4,14 @@ _realname=libcddb pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.2 -pkgrel=2 +pkgrel=3 pkgdesc="Library that implements the different protocols (CDDBP, HTTP, SMTP) to access data on a CDDB server (e.g. http://freedb.org)." arch=('any') license=('LGPL') url="http://sourceforge.net/projects/libcddb/" options=('staticlibs' 'strip') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-libsystre") source=(http://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-${pkgver}.tar.bz2 0001-include-winsock2-before-windows.mingw.patch @@ -52,6 +52,7 @@ build() { --host=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } diff --git a/mingw-w64-libcdio/PKGBUILD b/mingw-w64-libcdio/PKGBUILD index 5464f44cc2..57e7f78d00 100644 --- a/mingw-w64-libcdio/PKGBUILD +++ b/mingw-w64-libcdio/PKGBUILD @@ -4,14 +4,14 @@ _realname=libcdio pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.93 -pkgrel=1 +pkgrel=2 pkgdesc="GNU Compact Disc Input and Control Library" arch=('any') license=('GPL3') url="http://www.gnu.org/software/libcdio/" options=('staticlibs' 'strip') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-libcddb") source=(http://ftp.gnu.org/gnu/libcdio/${_realname}-${pkgver}.tar.gz{,.sig} @@ -28,8 +28,10 @@ prepare() { } build() { - cd ${_realname}-${pkgver} - ./configure \ + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -37,11 +39,12 @@ build() { --enable-cpp-progs \ --enable-shared \ --enable-static + make } package() { - cd ${_realname}-${pkgver} + cd build-${MINGW_CHOST} make -j1 DESTDIR="${pkgdir}" install sed -i "/LIBCDIO_SOURCE_PATH/s|.*|/* #undef LIBCDIO_SOURCE_PATH */|" \ diff --git a/mingw-w64-libdca-svn/PKGBUILD b/mingw-w64-libdca-svn/PKGBUILD index bf1c744ccc..697397fd90 100644 --- a/mingw-w64-libdca-svn/PKGBUILD +++ b/mingw-w64-libdca-svn/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=libdca - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgver=r91 pkgrel=2 @@ -27,7 +26,7 @@ md5sums=('SKIP' '5864491a27a68cd394bb71d21b5fc684') pkgver() { - cd "$srcdir/${_realname}" + cd "${srcdir}/${_realname}" local ver="$(svnversion)" printf "r%s" "${ver//[[:alpha:]]}" } @@ -53,6 +52,7 @@ build() { --enable-static \ --enable-shared \ --mandir=${MINGW_PREFIX}/share/man + make } diff --git a/mingw-w64-libmad/PKGBUILD b/mingw-w64-libmad/PKGBUILD index 6a21b21340..f6d013a1ef 100644 --- a/mingw-w64-libmad/PKGBUILD +++ b/mingw-w64-libmad/PKGBUILD @@ -4,16 +4,16 @@ _realname=libmad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.15.1b -pkgrel=1 -pkgdesc="A high-quality MPEG audio decoder" +pkgrel=2 +pkgdesc="A high-quality MPEG audio decoder (mingw-w64)" arch=('any') url="http://www.underbit.com/products/mad/" license=('GPL') depends=() makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "autoconf" - "m4") + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "autoconf" + "m4") source=(http://downloads.sourceforge.net/sourceforge/mad/${_realname}-${pkgver}.tar.gz 0001-no-undefined.mingw.patch 0003-update-ac-and-silent-rules.mingw.patch @@ -46,12 +46,13 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ + --host=${MINGW_CHOST} make } diff --git a/mingw-w64-libmpeg2-svn/PKGBUILD b/mingw-w64-libmpeg2-svn/PKGBUILD index 62d76b833d..5a517b3399 100644 --- a/mingw-w64-libmpeg2-svn/PKGBUILD +++ b/mingw-w64-libmpeg2-svn/PKGBUILD @@ -2,7 +2,6 @@ # Contributor: Ray Donnelly _realname=libmpeg2 - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgver=r1206 pkgrel=2 @@ -25,7 +24,7 @@ sha256sums=('SKIP' '8beb78faac22b9a6c37b4ff23663cd83ce894443c02337e427729acd8bd6cce0') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" local ver="$(svnversion)" printf "r%s" "${ver//[[:alpha:]]}" } @@ -42,17 +41,18 @@ prepare() { build() { [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} mkdir build-${CARCH} && cd build-${CARCH} - "${srcdir}"/${_realname}/configure \ + ../${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ --enable-static \ --disable-sdl + make } package() { cd "${srcdir}"/build-${CARCH} - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libspiro/PKGBUILD b/mingw-w64-libspiro/PKGBUILD index da6ffc83ea..c7e6f59d7d 100644 --- a/mingw-w64-libspiro/PKGBUILD +++ b/mingw-w64-libspiro/PKGBUILD @@ -2,24 +2,32 @@ _realname=libspiro pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=20071029 -pkgrel=3 +_pkgver=0.5 +_pkgdate=20150702 +pkgver=${_pkgver}.${_pkgdate} +pkgrel=1 +epoch=1 pkgdesc="Simplifies the drawing of beautiful curves (mingw-w64)" arch=(any) url="http://libspiro.sourceforge.net/" license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('staticlibs' 'strip') -source=("http://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}_src-${pkgver}.tar.bz2") -md5sums=('ab6aaa50bbd8fa55e78f8b8b0112f6cd') +source=(${_realname}-${pkgver}.tar.gz::https://github.com/fontforge/libspiro/archive/${pkgver}.tar.gz) +md5sums=('0ea5983578628807d07e61c6b0c7c889') prepare() { - cd "$srcdir/${_realname}-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" + autoreconf -fiv } build() { - cd "${srcdir}/${_realname}-${pkgver}" - ./configure \ + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + cp -rf ${srcdir}/${_realname}-${pkgver} ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + + #cd "${srcdir}/${_realname}-${pkgver}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -31,8 +39,8 @@ build() { } package() { - cd "${srcdir}/${_realname}-${pkgver}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install - install -Dm644 ${srcdir}/${_realname}-${pkgver}/gpl.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-lua-lpeg/PKGBUILD b/mingw-w64-lua-lpeg/PKGBUILD index 58c9c80fcb..57fc5d32f3 100644 --- a/mingw-w64-lua-lpeg/PKGBUILD +++ b/mingw-w64-lua-lpeg/PKGBUILD @@ -13,11 +13,12 @@ license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-lua" "${MINGW_PACKAGE_PREFIX}-lua51" "${MINGW_PACKAGE_PREFIX}-gcc") -source=("http://www.inf.puc-rio.br/~roberto/${_realname}/${_realname}-${pkgver}.tar.gz" +source=(#"http://www.inf.puc-rio.br/~roberto/${_realname}/${_realname}-${pkgver}.tar.gz" + ${_realname}-${pkgver}.tar.gz::https://github.com/lua/lpeg/archive/${pkgver}.tar.gz "lpeg-0.12-makefile.patch" - "lptypes-lua-503.patch" + "lptypes-lua-503.patch" "LICENSE") -md5sums=('4abb3c28cd8b6565c6a65e88f06c9162' +md5sums=('96a468edb8c51087e15600a2a6c714d6' '8f2f06957131ccb64413433c08e18d65' '1b876fcf29e29dafae1ca8c5362236c3' 'dccb97b431c3a3ccaacc216c6242e9fd') diff --git a/mingw-w64-lua/PKGBUILD b/mingw-w64-lua/PKGBUILD index a49a2d828f..17a90646a3 100644 --- a/mingw-w64-lua/PKGBUILD +++ b/mingw-w64-lua/PKGBUILD @@ -5,7 +5,7 @@ _realname=lua pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.3.1 -pkgrel=1 +pkgrel=2 pkgdesc="A powerful light-weight programming language designed for extending applications. (mingw-w64)" arch=('any') url="http://www.lua.org/" @@ -13,7 +13,7 @@ license=('MIT') depends=('winpty') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip' 'emptydirs') -source=("$url/ftp/lua-$pkgver.tar.gz" +source=("${url}/ftp/lua-${pkgver}.tar.gz" 'lua.pc' 'searchpath.patch' 'implib.patch') diff --git a/mingw-w64-lua51/PKGBUILD b/mingw-w64-lua51/PKGBUILD index 3d7fbb1a8f..e3f5707ac7 100644 --- a/mingw-w64-lua51/PKGBUILD +++ b/mingw-w64-lua51/PKGBUILD @@ -4,15 +4,15 @@ _realname=lua51 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.1.5 -pkgrel=3 -pkgdesc="A powerful light-weight programming language designed for extending applications. Version 5.1.x. (mingw-w64)" +pkgrel=4 +pkgdesc="A powerful light-weight programming language designed for extending applications. Version 5.1.x (mingw-w64)" arch=('any') url="http://www.lua.org/" license=('MIT') depends=('winpty') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip' 'emptydirs') -source=("$url/ftp/lua-$pkgver.tar.gz" +source=("${url}/ftp/lua-${pkgver}.tar.gz" 'searchpath.patch' 'implib.patch') md5sums=('2e115fe26e435e33b0d5c022e4490567' diff --git a/mingw-w64-luabind-git/PKGBUILD b/mingw-w64-luabind-git/PKGBUILD index da9b9a11ee..ba3273502b 100644 --- a/mingw-w64-luabind-git/PKGBUILD +++ b/mingw-w64-luabind-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=luabind pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=0.9.1.142.g2b904b3 +pkgver=0.9.1.144.ge414c57 pkgrel=1 pkgdesc="A library that helps you create bindings between C++ and Lua (mingw-w64)" arch=('any') @@ -15,24 +15,25 @@ source=("${_realname}"::"git+https://github.com/DennisOSRM/luabind.git") md5sums=(SKIP) pkgver() { - cd "$_realname" + cd "${_realname}" git describe --tags | sed -e 's|-|.|g' -e 's|v||g' } build() { - echo "Build static version..." - [[ -d ${srcdir}/static-${MINGW_CHOST} ]] && rm -rf ${srcdir}/static-${MINGW_CHOST} - mkdir ${srcdir}/static-${MINGW_CHOST} - cd "${srcdir}/static-${MINGW_CHOST}" + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd "${srcdir}/build-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ ../${_realname} + make } package() { - cd "${srcdir}/static-${MINGW_CHOST}" - make install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-luajit-git/002-fix-pkg-config-file.patch b/mingw-w64-luajit-git/002-fix-pkg-config-file.patch new file mode 100644 index 0000000000..a61d1b5766 --- /dev/null +++ b/mingw-w64-luajit-git/002-fix-pkg-config-file.patch @@ -0,0 +1,9 @@ +--- luajit/etc/luajit.pc.orig 2015-07-13 09:32:17.569800000 +0300 ++++ luajit/etc/luajit.pc 2015-07-13 09:32:22.858200000 +0300 +@@ -21,5 +21,5 @@ + Version: ${version} + Requires: + Libs: -L${libdir} -l${libname} +-Libs.private: -Wl,-E -lm -ldl ++Libs.private: -Wl,-E -lm + Cflags: -I${includedir} diff --git a/mingw-w64-luajit-git/PKGBUILD b/mingw-w64-luajit-git/PKGBUILD index 541fbab6cf..a58adbfa37 100644 --- a/mingw-w64-luajit-git/PKGBUILD +++ b/mingw-w64-luajit-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=luajit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=v2.0.3.40.g3f2e4ec +pkgver=v2.0.4.3.g575bfe5 pkgrel=1 pkgdesc="Just-in-time compiler and drop-in replacement for Lua 5.1 (mingw-w64)" arch=('any') @@ -14,9 +14,11 @@ provides=("${MINGW_PACKAGE_PREFIX}-lua51") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git") options=('strip' 'staticlibs') source=("${_realname}"::"git+http://luajit.org/git/luajit-2.0.git" - 001-make-import-library.patch) + 001-make-import-library.patch + 002-fix-pkg-config-file.patch) md5sums=('SKIP' - '668114665f129fa461bdebc53d9952c2') + '668114665f129fa461bdebc53d9952c2' + '2b3aec6c289fbfc40a32762e0e36324e') pkgver() { cd "${srcdir}/${_realname}" @@ -26,23 +28,27 @@ pkgver() { prepare() { cd "${srcdir}/${_realname}" patch -p1 -i ${srcdir}/001-make-import-library.patch - sed -i "s|export PREFIX= /usr/local|export PREFIX="${pkgdir}${MINGW_PREFIX}"|g" $srcdir/$_realname/Makefile + patch -p1 -i ${srcdir}/002-fix-pkg-config-file.patch + sed -i "s|export PREFIX= /usr/local|export PREFIX="${MINGW_PREFIX}"|g" ${srcdir}/${_realname}/Makefile } build() { cd "${srcdir}/${_realname}" - make #TARGET_SHLDFLAGS="-Wl,--implib=luajit.dll.a" + make } package() { cd "${srcdir}/${_realname}" - make install + make DESTDIR=${pkgdir} install - _exename=$_realname + _exename=${_realname} echo "#!/usr/bin/env bash" > "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" echo '/usr/bin/winpty "$( dirname ${BASH_SOURCE[0]} )/'${_exename}'.exe" "$@"' >> "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" - install -v -Dm644 "$srcdir/$_realname/src/lua51.dll" "${pkgdir}${MINGW_PREFIX}/bin/lua51.dll" || exit 1 - install -v -Dm644 "$srcdir/$_realname/src/luajit.exe" "${pkgdir}${MINGW_PREFIX}/bin/luajit.exe" || exit 1 - install -v -Dm644 "$srcdir/$_realname/src/libluajit-5.1.dll.a" "${pkgdir}${MINGW_PREFIX}/lib/libluajit-5.1.dll.a" || exit 1 + install -v -Dm644 "${srcdir}/${_realname}/src/lua51.dll" "${pkgdir}${MINGW_PREFIX}/bin/lua51.dll" || exit 1 + install -v -Dm644 "${srcdir}/${_realname}/src/luajit.exe" "${pkgdir}${MINGW_PREFIX}/bin/luajit.exe" || exit 1 + install -v -Dm644 "${srcdir}/${_realname}/src/libluajit-5.1.dll.a" "${pkgdir}${MINGW_PREFIX}/lib/libluajit-5.1.dll.a" || exit 1 + + #cp ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/lua{jit,51}.pc + cp ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/lua{jit,5.1}.pc } diff --git a/mingw-w64-twolame/PKGBUILD b/mingw-w64-twolame/PKGBUILD index 5cbad33f59..512837b11c 100644 --- a/mingw-w64-twolame/PKGBUILD +++ b/mingw-w64-twolame/PKGBUILD @@ -3,14 +3,14 @@ _realname=twolame pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.3.13 -pkgrel=1 -pkgdesc="An optimized MPEG Audio Layer 2 (MP2) encoder" +pkgrel=2 +pkgdesc="An optimized MPEG Audio Layer 2 (MP2) encoder (mingw-w64)" arch=('any') license=('LGPL') url="http://www.twolame.org/" options=('staticlibs' 'strip') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-libsndfile") source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" 0001-mingw32-does-not-need-handholding.all.patch @@ -37,6 +37,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} ../${_realname}-${pkgver}/configure \ @@ -45,6 +46,7 @@ build() { --host=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } diff --git a/mingw-w64-webkitgtk3/0022-gl-casts.patch b/mingw-w64-webkitgtk3/0022-gl-casts.patch new file mode 100644 index 0000000000..d926c0cd2b --- /dev/null +++ b/mingw-w64-webkitgtk3/0022-gl-casts.patch @@ -0,0 +1,11 @@ +--- webkitgtk-2.4.9/Source/WebCore/platform/graphics/GLContext.cpp.orig 2015-07-12 20:33:29.627600000 +0300 ++++ webkitgtk-2.4.9/Source/WebCore/platform/graphics/GLContext.cpp 2015-07-12 20:33:36.054800000 +0300 +@@ -159,7 +159,7 @@ + return glxContext.release(); + #endif + #if USE(EGL) +- if (OwnPtr eglContext = GLContextEGL::createContext(windowHandle, sharingContext)) ++ if (OwnPtr eglContext = GLContextEGL::createContext((EGLNativeWindowType)windowHandle, sharingContext)) + return eglContext.release(); + #endif + return nullptr; diff --git a/mingw-w64-webkitgtk3/PKGBUILD b/mingw-w64-webkitgtk3/PKGBUILD index 2e9c38c2ae..c2d66bca3d 100644 --- a/mingw-w64-webkitgtk3/PKGBUILD +++ b/mingw-w64-webkitgtk3/PKGBUILD @@ -68,6 +68,7 @@ source=(http://webkitgtk.org/releases/webkitgtk-${pkgver}.tar.xz 0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch 0020-W32-Fixup-dummy-HeapStatistics-implementation.all.patch 0021-W32-Change-printf-format-atribute-to-gnu_printf-.all.patch + 0022-gl-casts.patch 0101-webkitgtk-2.4.3-gcc-asm.all.patch 9999-ossource_win.cpp.all.patch) @@ -95,6 +96,7 @@ prepare() { # patch -p1 -i ${srcdir}/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch patch -p1 -i ${srcdir}/0020-W32-Fixup-dummy-HeapStatistics-implementation.all.patch patch -p1 -i ${srcdir}/0021-W32-Change-printf-format-atribute-to-gnu_printf-.all.patch + patch -p1 -i ${srcdir}/0022-gl-casts.patch patch -p1 -i ${srcdir}/0101-webkitgtk-2.4.3-gcc-asm.all.patch # patch -p1 -i ${srcdir}/9999-ossource_win.cpp.all.patch @@ -130,6 +132,8 @@ _build() { --enable-geolocation \ --disable-x11-target \ --enable-win32-target \ + --enable-gles2=no \ + --enable-egl=no \ "$@" make @@ -207,5 +211,6 @@ md5sums=('312fd29eb7f5970660c6a64b8bf8420e' '1b4edfd688ef9bfb1b1bccab9b8922e8' '23cda04f494c76bd0eb8575b24b05f26' '36cfb85d11164a489ab9616035827760' + '80c93a26be41e5eca4845c2c6fb78ca7' 'e36f95bd1d0ffaf52046e584a7094b56' '7e337b36b8e6e13416d7f49d372b57e7') From 28fe1ef2edb55f9b7d5b77f0ac903f1e1e730112 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 13 Jul 2015 13:03:10 +0300 Subject: [PATCH 1273/2060] gnutls: Update to 3.4.3 --- mingw-w64-gnutls/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index a248150703..db7c4e112b 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -2,8 +2,8 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.4.2 -pkgrel=2 +pkgver=3.4.3 +pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') license=('GPL3' 'LGPL2.1') @@ -23,7 +23,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") # Need remove "autogen" package before building. source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*}/${_realname}-${pkgver}.tar.xz{,.sig} 0001-add-missing-define.patch) -md5sums=('4fb4a6253e09aa070e6c467cbb51ba33' +md5sums=('8a119d7830b81a44faa721a6fde2a295' 'SKIP' '807a79513358a9f4123f62111f1eed59') validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F') From 42b49528ef252653403e3347b8024d63bba9c409 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 13 Jul 2015 15:28:25 +0300 Subject: [PATCH 1274/2060] webkitgtk: Remove obsolete patches. --- ...d.-Fix-the-build-with-newer-GLib.all.patch | 355 ----------------- ...clude-non-existing-WTF-WTFHeader.all.patch | 30 -- ...nGW-GCC-to-use-GCC-asm-code-for-.all.patch | 28 -- ...Use-confgured-Python-interpreter.all.patch | 51 --- ...armonize-binary-semaphore-ifdefs.all.patch | 67 ---- ...Add-missing-gcc-asm-code-for-JIT.all.patch | 261 ------------- ...iOverTwoDouble-instead-of-M_PI_2.all.patch | 34 -- ...issing-includes-to-FileSystemGtk.all.patch | 29 -- ...um-LineLayoutPath-in-RenderBlock.all.patch | 40 -- ...bject-prototypte-fix-header-case.all.patch | 49 --- ...hardcode-ossource_posix.cpp-in-t.all.patch | 40 -- ...L-checks-to-work-on-W32-add-libo.all.patch | 74 ---- ...ect-.la-files-as-library-argumen.all.patch | 33 -- ...rator-scripts-get-CC-from-config.all.patch | 356 ------------------ ...LE-Silence-two-warnings-in-ANGLE.all.patch | 47 --- ...kg-config-to-detect-ICU-librarie.all.patch | 42 --- ...k-around-name-conflicts-NO_ERROR.all.patch | 95 ----- ...related-files-when-compiling-wit.all.patch | 56 --- ...ing-about-JSValue-v-being-uninit.all.patch | 56 --- ...wsVersion-and-osVersionForUAStri.all.patch | 188 --------- .../9999-ossource_win.cpp.all.patch | 64 ---- mingw-w64-webkitgtk3/PKGBUILD | 67 +--- 22 files changed, 2 insertions(+), 2060 deletions(-) delete mode 100644 mingw-w64-webkitgtk3/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch delete mode 100644 mingw-w64-webkitgtk3/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch delete mode 100644 mingw-w64-webkitgtk3/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch delete mode 100644 mingw-w64-webkitgtk3/0003-W32-Use-confgured-Python-interpreter.all.patch delete mode 100644 mingw-w64-webkitgtk3/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch delete mode 100644 mingw-w64-webkitgtk3/0005-Add-missing-gcc-asm-code-for-JIT.all.patch delete mode 100644 mingw-w64-webkitgtk3/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch delete mode 100644 mingw-w64-webkitgtk3/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch delete mode 100644 mingw-w64-webkitgtk3/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch delete mode 100644 mingw-w64-webkitgtk3/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch delete mode 100644 mingw-w64-webkitgtk3/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch delete mode 100644 mingw-w64-webkitgtk3/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch delete mode 100644 mingw-w64-webkitgtk3/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch delete mode 100644 mingw-w64-webkitgtk3/0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch delete mode 100644 mingw-w64-webkitgtk3/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch delete mode 100644 mingw-w64-webkitgtk3/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch delete mode 100644 mingw-w64-webkitgtk3/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch delete mode 100644 mingw-w64-webkitgtk3/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch delete mode 100644 mingw-w64-webkitgtk3/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch delete mode 100644 mingw-w64-webkitgtk3/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch delete mode 100644 mingw-w64-webkitgtk3/9999-ossource_win.cpp.all.patch diff --git a/mingw-w64-webkitgtk3/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch b/mingw-w64-webkitgtk3/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch deleted file mode 100644 index 3e680dbc2b..0000000000 --- a/mingw-w64-webkitgtk3/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch +++ /dev/null @@ -1,355 +0,0 @@ -From 62818a59067464897b974b64f4eec51caf771aba Mon Sep 17 00:00:00 2001 -From: "carlosgc@webkit.org" - -Date: Tue, 7 Apr 2015 09:23:10 +0000 -Subject: [PATCH] Unreviewed. Fix the build with newer GLib. - -Source/WebCore: - -Use WTF::GMutexLocker. - -* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: -(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): -(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): -(WebCore::MediaPlayerPrivateGStreamerBase::paint): -* platform/graphics/gstreamer/VideoSinkGStreamer.cpp: -(webkitVideoSinkTimeoutCallback): -(webkitVideoSinkRender): -(unlockBufferMutex): -(webkitVideoSinkUnlockStop): -(webkitVideoSinkStart): -* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: -(webKitWebSrcSetProperty): -(webKitWebSrcGetProperty): -(webKitWebSrcStop): -(webKitWebSrcStart): -(webKitWebSrcChangeState): -(webKitWebSrcQueryWithParent): -(webKitWebSrcGetUri): -(webKitWebSrcSetUri): -(webKitWebSrcNeedDataMainCb): -(webKitWebSrcNeedDataCb): -(webKitWebSrcEnoughDataMainCb): -(webKitWebSrcEnoughDataCb): -(webKitWebSrcSeekMainCb): -(webKitWebSrcSeekDataCb): -(webKitWebSrcSetMediaPlayer): -(StreamingClient::createReadBuffer): -(StreamingClient::handleResponseReceived): -(StreamingClient::handleDataReceived): -(StreamingClient::handleNotifyFinished): -(ResourceHandleStreamingClient::wasBlocked): -(ResourceHandleStreamingClient::cannotShowURL): - -Source/WTF: - -* wtf/gobject/GMutexLocker.h: Move to the WTF namespace. - -git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.4@182456 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - Source/WTF/ChangeLog | 6 +++ - Source/WTF/wtf/gobject/GMutexLocker.h | 2 +- - Source/WebCore/ChangeLog | 39 +++++++++++++++++++ - .../gstreamer/MediaPlayerPrivateGStreamerBase.cpp | 6 +-- - .../graphics/gstreamer/VideoSinkGStreamer.cpp | 10 ++--- - .../gstreamer/WebKitWebSourceGStreamer.cpp | 44 +++++++++++----------- - 6 files changed, 76 insertions(+), 31 deletions(-) - -diff --git a/Source/WTF/wtf/gobject/GMutexLocker.h b/Source/WTF/wtf/gobject/GMutexLocker.h -index bf7864a..87b4063 100644 ---- a/Source/WTF/wtf/gobject/GMutexLocker.h -+++ b/Source/WTF/wtf/gobject/GMutexLocker.h -@@ -27,7 +27,7 @@ - #include - #include - --namespace WebCore { -+namespace WTF { - - class GMutexLocker { - WTF_MAKE_NONCOPYABLE(GMutexLocker); WTF_MAKE_FAST_ALLOCATED; -diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp -index b6069b9..c656473 100644 ---- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp -+++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp -@@ -316,7 +316,7 @@ void MediaPlayerPrivateGStreamerBase::muteChanged() - #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) && !USE(COORDINATED_GRAPHICS) - PassRefPtr MediaPlayerPrivateGStreamerBase::updateTexture(TextureMapper* textureMapper) - { -- GMutexLocker lock(m_bufferMutex); -+ WTF::GMutexLocker lock(m_bufferMutex); - if (!m_buffer) - return nullptr; - -@@ -366,7 +366,7 @@ void MediaPlayerPrivateGStreamerBase::triggerRepaint(GstBuffer* buffer) - g_return_if_fail(GST_IS_BUFFER(buffer)); - - { -- GMutexLocker lock(m_bufferMutex); -+ WTF::GMutexLocker lock(m_bufferMutex); - gst_buffer_replace(&m_buffer, buffer); - } - -@@ -398,7 +398,7 @@ void MediaPlayerPrivateGStreamerBase::paint(GraphicsContext* context, const IntR - if (!m_player->visible()) - return; - -- GMutexLocker lock(m_bufferMutex); -+ WTF::GMutexLocker lock(m_bufferMutex); - if (!m_buffer) - return; - -diff --git a/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp -index 651c7f4..7dd894e 100644 ---- a/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp -+++ b/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp -@@ -118,7 +118,7 @@ static gboolean webkitVideoSinkTimeoutCallback(gpointer data) - WebKitVideoSink* sink = reinterpret_cast(data); - WebKitVideoSinkPrivate* priv = sink->priv; - -- GMutexLocker lock(priv->bufferMutex); -+ WTF::GMutexLocker lock(priv->bufferMutex); - GstBuffer* buffer = priv->buffer; - priv->buffer = 0; - priv->timeoutId = 0; -@@ -140,7 +140,7 @@ static GstFlowReturn webkitVideoSinkRender(GstBaseSink* baseSink, GstBuffer* buf - WebKitVideoSink* sink = WEBKIT_VIDEO_SINK(baseSink); - WebKitVideoSinkPrivate* priv = sink->priv; - -- GMutexLocker lock(priv->bufferMutex); -+ WTF::GMutexLocker lock(priv->bufferMutex); - - if (priv->unlocked) - return GST_FLOW_OK; -@@ -279,7 +279,7 @@ static void webkitVideoSinkGetProperty(GObject* object, guint propertyId, GValue - - static void unlockBufferMutex(WebKitVideoSinkPrivate* priv) - { -- GMutexLocker lock(priv->bufferMutex); -+ WTF::GMutexLocker lock(priv->bufferMutex); - - if (priv->buffer) { - gst_buffer_unref(priv->buffer); -@@ -305,7 +305,7 @@ static gboolean webkitVideoSinkUnlockStop(GstBaseSink* baseSink) - WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; - - { -- GMutexLocker lock(priv->bufferMutex); -+ WTF::GMutexLocker lock(priv->bufferMutex); - priv->unlocked = false; - } - -@@ -330,7 +330,7 @@ static gboolean webkitVideoSinkStart(GstBaseSink* baseSink) - { - WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; - -- GMutexLocker lock(priv->bufferMutex); -+ WTF::GMutexLocker lock(priv->bufferMutex); - priv->unlocked = false; - return TRUE; - } -diff --git a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp -index ab9b3f5..c7d8eca 100644 ---- a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp -+++ b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp -@@ -346,7 +346,7 @@ static void webKitWebSrcSetProperty(GObject* object, guint propID, const GValue* - - switch (propID) { - case PROP_IRADIO_MODE: { -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - priv->iradioMode = g_value_get_boolean(value); - break; - } -@@ -364,7 +364,7 @@ static void webKitWebSrcGetProperty(GObject* object, guint propID, GValue* value - WebKitWebSrc* src = WEBKIT_WEB_SRC(object); - WebKitWebSrcPrivate* priv = src->priv; - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - switch (propID) { - case PROP_IRADIO_MODE: - g_value_set_boolean(value, priv->iradioMode); -@@ -417,7 +417,7 @@ static gboolean webKitWebSrcStop(WebKitWebSrc* src) - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - bool seeking = priv->seekID; - -@@ -476,7 +476,7 @@ static gboolean webKitWebSrcStart(WebKitWebSrc* src) - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - priv->startID = 0; - priv->corsAccessCheck = CORSNoCheck; -@@ -573,7 +573,7 @@ static GstStateChangeReturn webKitWebSrcChangeState(GstElement* element, GstStat - return ret; - } - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - switch (transition) { - case GST_STATE_CHANGE_READY_TO_PAUSED: - GST_DEBUG_OBJECT(src, "READY->PAUSED"); -@@ -604,7 +604,7 @@ static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ - gst_query_parse_duration(query, &format, NULL); - - GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format)); -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - if (format == GST_FORMAT_BYTES && src->priv->size > 0) { - gst_query_set_duration(query, format, src->priv->size); - result = TRUE; -@@ -612,7 +612,7 @@ static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ - break; - } - case GST_QUERY_URI: { -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - gst_query_set_uri(query, src->priv->uri); - result = TRUE; - break; -@@ -653,7 +653,7 @@ static gchar* webKitWebSrcGetUri(GstURIHandler* handler) - WebKitWebSrc* src = WEBKIT_WEB_SRC(handler); - gchar* ret; - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - ret = g_strdup(src->priv->uri); - return ret; - } -@@ -668,7 +668,7 @@ static gboolean webKitWebSrcSetUri(GstURIHandler* handler, const gchar* uri, GEr - return FALSE; - } - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - g_free(priv->uri); - priv->uri = 0; -@@ -704,7 +704,7 @@ static gboolean webKitWebSrcNeedDataMainCb(WebKitWebSrc* src) - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - // already stopped - if (!priv->needDataID) - return FALSE; -@@ -725,7 +725,7 @@ static void webKitWebSrcNeedDataCb(GstAppSrc*, guint length, gpointer userData) - - GST_DEBUG_OBJECT(src, "Need more data: %u", length); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - if (priv->needDataID || !priv->paused) { - return; - } -@@ -739,7 +739,7 @@ static gboolean webKitWebSrcEnoughDataMainCb(WebKitWebSrc* src) - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - // already stopped - if (!priv->enoughDataID) - return FALSE; -@@ -760,7 +760,7 @@ static void webKitWebSrcEnoughDataCb(GstAppSrc*, gpointer userData) - - GST_DEBUG_OBJECT(src, "Have enough data"); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - if (priv->enoughDataID || priv->paused) { - return; - } -@@ -774,7 +774,7 @@ static gboolean webKitWebSrcSeekMainCb(WebKitWebSrc* src) - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - // already stopped - if (!priv->seekID) - return FALSE; -@@ -792,7 +792,7 @@ static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user - WebKitWebSrcPrivate* priv = src->priv; - - GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset); -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - if (offset == priv->offset && priv->requestedOffset == priv->offset) - return TRUE; - -@@ -811,7 +811,7 @@ static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user - void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player) - { - ASSERT(player); -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - src->priv->player = player; - } - -@@ -841,7 +841,7 @@ char* StreamingClient::createReadBuffer(size_t requestedSize, size_t& actualSize - - mapGstBuffer(buffer); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - priv->buffer = adoptGRef(buffer); - locker.unlock(); - -@@ -867,7 +867,7 @@ void StreamingClient::handleResponseReceived(const ResourceResponse& response, C - return; - } - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - priv->corsAccessCheck = corsAccessCheck; - -@@ -966,7 +966,7 @@ void StreamingClient::handleDataReceived(const char* data, int length) - WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src); - WebKitWebSrcPrivate* priv = src->priv; - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - GST_LOG_OBJECT(src, "Have %lld bytes of data", priv->buffer ? static_cast(gst_buffer_get_size(priv->buffer.get())) : length); - -@@ -1035,7 +1035,7 @@ void StreamingClient::handleNotifyFinished() - - GST_DEBUG_OBJECT(src, "Have EOS"); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - if (!priv->seekID) { - locker.unlock(); - gst_app_src_end_of_stream(priv->appsrc); -@@ -1194,7 +1194,7 @@ void ResourceHandleStreamingClient::wasBlocked(ResourceHandle*) - - GST_ERROR_OBJECT(src, "Request was blocked"); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - uri.reset(g_strdup(src->priv->uri)); - locker.unlock(); - -@@ -1208,7 +1208,7 @@ void ResourceHandleStreamingClient::cannotShowURL(ResourceHandle*) - - GST_ERROR_OBJECT(src, "Cannot show URL"); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WTF::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - uri.reset(g_strdup(src->priv->uri)); - locker.unlock(); - --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch b/mingw-w64-webkitgtk3/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch deleted file mode 100644 index 426b6e3fac..0000000000 --- a/mingw-w64-webkitgtk3/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 2da1ce15dfc85cfbd390b4cfb9350a13a6b47003 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?= -Date: Mon, 13 Apr 2015 00:29:21 +0000 -Subject: [PATCH 01/20] [GTK][W32] Don't include non-existing - WTF/WTFHeaderDetection.h in 2.4.x - -WTF/WTFHeaderDetection.h seems to be from some other universe, -there are no rules to generate it in webkit-2.4, except for MSVS projects. ---- - Source/WTF/wtf/Platform.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h -index d918b43..2ebdeea 100644 ---- a/Source/WTF/wtf/Platform.h -+++ b/Source/WTF/wtf/Platform.h -@@ -611,7 +611,9 @@ - #define HAVE_ALIGNED_MALLOC 1 - #define HAVE_ISDEBUGGERPRESENT 1 - -+#ifdef _MSC_VER - #include -+#endif - - #endif - --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch b/mingw-w64-webkitgtk3/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch deleted file mode 100644 index a2756133d0..0000000000 --- a/mingw-w64-webkitgtk3/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b9e96a5642c2e5137fae4a096723c403285e1ef2 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?= -Date: Mon, 13 Apr 2015 00:46:48 +0000 -Subject: [PATCH 02/20] [GTK][W32] Allow MinGW-GCC to use GCC asm code for - weakCompareAndSwap - -OS(WINDOWS) != COMPILER(MSVC) ---- - Source/WTF/wtf/Atomics.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/WTF/wtf/Atomics.h b/Source/WTF/wtf/Atomics.h -index 3d18e3e..e6da897 100644 ---- a/Source/WTF/wtf/Atomics.h -+++ b/Source/WTF/wtf/Atomics.h -@@ -260,7 +260,7 @@ inline void memoryBarrierBeforeUnlock() { compilerFence(); } - inline bool weakCompareAndSwap(uint8_t* location, uint8_t expected, uint8_t newValue) - { - #if ENABLE(COMPARE_AND_SWAP) --#if !OS(WINDOWS) && (CPU(X86) || CPU(X86_64)) -+#if (!OS(WINDOWS) || COMPILER(GCC)) && (CPU(X86) || CPU(X86_64)) - unsigned char result; - asm volatile( - "lock; cmpxchgb %3, %2\n\t" --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0003-W32-Use-confgured-Python-interpreter.all.patch b/mingw-w64-webkitgtk3/0003-W32-Use-confgured-Python-interpreter.all.patch deleted file mode 100644 index 4220a48d7d..0000000000 --- a/mingw-w64-webkitgtk3/0003-W32-Use-confgured-Python-interpreter.all.patch +++ /dev/null @@ -1,51 +0,0 @@ -From b2deca683e0d57d9313c267d15c798f420ae3701 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?= -Date: Mon, 13 Apr 2015 02:03:42 +0000 -Subject: [PATCH 03/20] [W32] Use confgured Python interpreter - -Configure script has tests for Python (AC_PATH_PROG(PYTHON, python)), -use the interpretor they provide (which is overridable by user by -the way of passing PYTHON=... to configure) instead of the first -thing found in PATH. - -Otherwise wrong version of Python might be used. Mingw-python, -for example, which has commandline length limit, which results in -errors like: -/usr/bin/env: python: Argument list too long -GNUmakefile:82317: recipe for target -'DerivedSources/WebInspectorUI/GResourceBundle.xml' failed ---- - Source/WebInspectorUI/GNUmakefile.am | 2 +- - Tools/gtk/GNUmakefile.am | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Source/WebInspectorUI/GNUmakefile.am b/Source/WebInspectorUI/GNUmakefile.am -index 67b2477..25cdc41 100644 ---- a/Source/WebInspectorUI/GNUmakefile.am -+++ b/Source/WebInspectorUI/GNUmakefile.am -@@ -13,7 +13,7 @@ ${GENSOURCES_WEBINSPECTOR_UI}/GResourceBundle.xml: GNUmakefile \ - $(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py - $(AM_V_GEN) - $(AM_V_at)mkdir -p ${GENSOURCES_WEBINSPECTOR_UI} -- $(AM_V_at)$(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py --output $@ $(inspector_files) -+ $(AM_V_at)$(PYTHON) $(srcdir)/Tools/gtk/generate-inspector-gresource-manifest.py --output $@ $(inspector_files) - - ${GENSOURCES_WEBINSPECTOR_UI}/GResourceBundle.c: DerivedSources/WebInspectorUI/GResourceBundle.xml - $(AM_V_GEN) -diff --git a/Tools/gtk/GNUmakefile.am b/Tools/gtk/GNUmakefile.am -index 757207a..61cff01 100644 ---- a/Tools/gtk/GNUmakefile.am -+++ b/Tools/gtk/GNUmakefile.am -@@ -35,7 +35,7 @@ docs_build_dependencies += \ - gtkdoc-webkitdom.cfg - - docs-build.stamp: $(docs_build_dependencies) -- CC=$(CC) $(srcdir)/Tools/gtk/generate-gtkdoc -+ CC=$(CC) $(PYTHON) $(srcdir)/Tools/gtk/generate-gtkdoc - @touch docs-build.stamp - - clean-local: doc-clean-local --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch b/mingw-w64-webkitgtk3/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch deleted file mode 100644 index 3971ffcc7a..0000000000 --- a/mingw-w64-webkitgtk3/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 30f8d9bcdaaa8298b04dc9f79e068b1efc9bc4fa 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?= -Date: Mon, 13 Apr 2015 02:35:07 +0000 -Subject: [PATCH 04/20] [GTK][W32] Harmonize binary semaphore ifdefs - -They should be either OS(WINDOWS) (in which case we'd need -BinarySemaphoreWin.cpp, which is not shipped by WebKitGTK) -or PLATFORM(WIN) (in which case Mutex/ThreadCondition-based -implementation is used). - -This fixes errors like: - CXX Source/WTF/wtf/threads/libWTF_la-BinarySemaphore.lo -../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In constructor 'WTF::BinarySemaphore::BinarySemaphore()': -../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:34:7: error: class 'WTF::BinarySemaphore' does not have any field named 'm_isSet' - : m_isSet(false) - ^ -../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In member function 'void WTF::BinarySemaphore::signal()': -../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:44:24: error: 'm_mutex' was not declared in this scope - MutexLocker locker(m_mutex); - ^ -../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:46:5: error: 'm_isSet' was not declared in this scope - m_isSet = true; - ^ -../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:47:5: error: 'm_condition' was not declared in this scope - m_condition.signal(); - ^ -../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In member function 'bool WTF::BinarySemaphore::wait(double)': -../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:52:24: error: 'm_mutex' was not declared in this scope - MutexLocker locker(m_mutex); - ^ -../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:55:13: error: 'm_isSet' was not declared in this scope - while (!m_isSet) { - ^ -../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:56:21: error: 'm_condition' was not declared in this scope - timedOut = !m_condition.timedWait(m_mutex, absoluteTime); - ^ -../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:62:5: error: 'm_isSet' was not declared in this scope - m_isSet = false; - ^ -GNUmakefile:52762: recipe for target 'Source/WTF/wtf/threads/libWTF_la-BinarySemaphore.lo' failed ---- - Source/WTF/wtf/threads/BinarySemaphore.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Source/WTF/wtf/threads/BinarySemaphore.h b/Source/WTF/wtf/threads/BinarySemaphore.h -index de51d47..cae1023 100644 ---- a/Source/WTF/wtf/threads/BinarySemaphore.h -+++ b/Source/WTF/wtf/threads/BinarySemaphore.h -@@ -41,12 +41,12 @@ public: - WTF_EXPORT_PRIVATE void signal(); - WTF_EXPORT_PRIVATE bool wait(double absoluteTime); - --#if OS(WINDOWS) -+#if PLATFORM(WIN) - HANDLE event() const { return m_event; } - #endif - - private: --#if OS(WINDOWS) -+#if PLATFORM(WIN) - HANDLE m_event; - #else - bool m_isSet; --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0005-Add-missing-gcc-asm-code-for-JIT.all.patch b/mingw-w64-webkitgtk3/0005-Add-missing-gcc-asm-code-for-JIT.all.patch deleted file mode 100644 index ec297ab473..0000000000 --- a/mingw-w64-webkitgtk3/0005-Add-missing-gcc-asm-code-for-JIT.all.patch +++ /dev/null @@ -1,261 +0,0 @@ -From 1a2a777aad7d67d2e8e53ca97453eb3d1fd209f9 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?= -Date: Mon, 13 Apr 2015 07:17:38 +0000 -Subject: [PATCH 05/20] Add missing gcc asm code for JIT - -Fixes linking errors like these: - CXXLD libjavascriptcoregtk-3.0.la -Source\\JavaScriptCore\\interpreter\\.libs\\libjavascriptcoregtk_3_0_la-Interpreter.o: In function `executeCall': -/webkitgtk-2.4.8-1/bld/../webkitgtk-2.4.8/Source/JavaScriptCore/interpreter/Interpreter.cpp:972: undefined reference to `_callToNativeFunction' -Source\\JavaScriptCore\\interpreter\\.libs\\libjavascriptcoregtk_3_0_la-Interpreter.o: In function `executeConstruct': -/webkitgtk-2.4.8-1/bld/../webkitgtk-2.4.8/Source/JavaScriptCore/interpreter/Interpreter.cpp:1040: undefined reference to `_callToNativeFunction' -Source\\JavaScriptCore\\jit\\.libs\\libjavascriptcoregtk_3_0_la-JITCode.o: In function `execute': -/webkitgtk-2.4.8-1/bld/../webkitgtk-2.4.8/Source/JavaScriptCore/jit/JITCode.cpp:48: undefined reference to `_callToJavaScript' -Source\\JavaScriptCore\\jit\\.libs\\libjavascriptcoregtk_3_0_la-JITExceptions.o: In function `genericUnwind': -/webkitgtk-2.4.8-1/bld/../webkitgtk-2.4.8/Source/JavaScriptCore/jit/JITExceptions.cpp:62: undefined reference to `_returnFromJavaScript' ---- - Source/JavaScriptCore/jit/JITStubsX86.h | 220 ++++++++++++++++++++++++++++++++ - 1 file changed, 220 insertions(+) - -diff --git a/Source/JavaScriptCore/jit/JITStubsX86.h b/Source/JavaScriptCore/jit/JITStubsX86.h -index a1fbdef..d18f17d 100644 ---- a/Source/JavaScriptCore/jit/JITStubsX86.h -+++ b/Source/JavaScriptCore/jit/JITStubsX86.h -@@ -32,6 +32,7 @@ - #define JITStubsX86_h - - #include "JITStubsX86Common.h" -+#include - - #if !CPU(X86) - #error "JITStubsX86.h should only be #included if CPU(X86)" -@@ -198,6 +199,225 @@ SYMBOL_STRING(ctiMasmProbeTrampolineEnd) ":" "\n" - ); - #endif // USE(MASM_PROBE) - -+#if OS(WINDOWS) && ENABLE(JIT) -+extern "C" { -+ -+ // FIXME: Since Windows doesn't use the LLInt, we have inline stubs here. -+ // Until the LLInt is changed to support Windows, these stub needs to be updated. -+ asm ( -+ ".globl " SYMBOL_STRING(callToJavaScript) "\n" -+ HIDE_SYMBOL(callToJavaScript) "\n" -+ SYMBOL_STRING(callToJavaScript) ":" "\n" -+ "mov (%esp),%edx" "\n" -+ "push %ebp" "\n" -+ "mov %ebp,%eax" "\n" -+ "mov %esp,%ebp" "\n" -+ "push %esi" "\n" -+ "push %edi" "\n" -+ "push %ebx" "\n" -+ "sub $0x1c,%esp" "\n" -+ "mov 0x34(%esp),%ecx" "\n" -+ "mov 0x38(%esp),%esi" "\n" -+ "mov 0x3c(%esp),%ebp" "\n" -+ "sub $0x20,%ebp" "\n" -+ "movl $0x0,0x24(%ebp)" "\n" -+ "movl $0x0,0x20(%ebp)" "\n" -+ "movl $0x0,0x1c(%ebp)" "\n" -+ "mov %ecx,0x18(%ebp)" "\n" -+ "mov (%ecx),%ebx" "\n" -+ "movl $0x0,0x14(%ebp)" "\n" -+ "mov %ebx,0x10(%ebp)" "\n" -+ "movl $0x0,0xc(%ebp)" "\n" -+ "movl $0x1,0x8(%ebp)" "\n" -+ "mov %edx,0x4(%ebp)" "\n" -+ "mov %eax,0x0(%ebp)" "\n" -+ "mov %ebp,%eax" "\n" -+ -+ "mov 0x28(%esi),%edx" "\n" -+ "add $0x5,%edx" "\n" -+ "shl $0x3,%edx" "\n" -+ "sub %edx,%ebp" "\n" -+ "mov %eax,0x0(%ebp)" "\n" -+ -+ "mov $0x5,%eax" "\n" -+ -+ ".copyHeaderLoop:" "\n" -+ "sub $0x1,%eax" "\n" -+ "mov (%esi,%eax,8),%ecx" "\n" -+ "mov %ecx,0x8(%ebp,%eax,8)" "\n" -+ "mov 0x4(%esi,%eax,8),%ecx" "\n" -+ "mov %ecx,0xc(%ebp,%eax,8)" "\n" -+ "test %eax,%eax" "\n" -+ "jne .copyHeaderLoop" "\n" -+ -+ "mov 0x18(%esi),%edx" "\n" -+ "sub $0x1,%edx" "\n" -+ "mov 0x28(%esi),%ecx" "\n" -+ "sub $0x1,%ecx" "\n" -+ -+ "cmp %ecx,%edx" "\n" -+ "je .copyArgs" "\n" -+ -+ "xor %eax,%eax" "\n" -+ "mov $0xfffffffc,%ebx" "\n" -+ -+ ".fillExtraArgsLoop:" "\n" -+ "sub $0x1,%ecx" "\n" -+ "mov %eax,0x30(%ebp,%ecx,8)" "\n" -+ "mov %ebx,0x34(%ebp,%ecx,8)" "\n" -+ "cmp %ecx,%edx" "\n" -+ "jne .fillExtraArgsLoop" "\n" -+ -+ ".copyArgs:" "\n" -+ "mov 0x2c(%esi),%eax" "\n" -+ -+ ".copyArgsLoop:" "\n" -+ "test %edx,%edx" "\n" -+ "je .copyArgsDone" "\n" -+ "sub $0x1,%edx" "\n" -+ "mov (%eax,%edx,8),%ecx" "\n" -+ "mov 0x4(%eax,%edx,8),%ebx" "\n" -+ "mov %ecx,0x30(%ebp,%edx,8)" "\n" -+ "mov %ebx,0x34(%ebp,%edx,8)" "\n" -+ "jmp .copyArgsLoop" "\n" -+ -+ ".copyArgsDone:" "\n" -+ "mov 0x34(%esp),%ecx" "\n" -+ "mov %ebp,(%ecx)" "\n" -+ -+ "call *0x30(%esp)" "\n" -+ -+ "cmpl $0x1,0x8(%ebp)" "\n" -+ "je .calleeFramePopped" "\n" -+ "mov 0x0(%ebp),%ebp" "\n" -+ -+ ".calleeFramePopped:" "\n" -+ "mov 0x18(%ebp),%ecx" "\n" -+ "mov 0x10(%ebp),%ebx" "\n" -+ "mov %ebx,(%ecx)" "\n" -+ -+ "add $0x1c,%esp" "\n" -+ "pop %ebx" "\n" -+ "pop %edi" "\n" -+ "pop %esi" "\n" -+ "pop %ebp" "\n" -+ "ret" "\n" -+ -+ ".globl " SYMBOL_STRING(returnFromJavaScript) "\n" -+ HIDE_SYMBOL(returnFromJavaScript) "\n" -+ SYMBOL_STRING(returnFromJavaScript) ":" "\n" -+ "add $0x1c,%esp" "\n" -+ "pop %ebx" "\n" -+ "pop %edi" "\n" -+ "pop %esi" "\n" -+ "pop %ebp" "\n" -+ "ret" "\n" -+ -+ ".globl " SYMBOL_STRING(callToNativeFunction) "\n" -+ HIDE_SYMBOL(callToNativeFunction) "\n" -+ SYMBOL_STRING(callToNativeFunction) ":" "\n" -+ "mov (%esp),%edx" "\n" -+ "push %ebp" "\n" -+ "mov %ebp,%eax" "\n" -+ "mov %esp,%ebp" "\n" -+ "push %esi" "\n" -+ "push %edi" "\n" -+ "push %ebx" "\n" -+ "sub $0x1c,%esp" "\n" -+ "mov 0x34(%esp),%ecx" "\n" -+ "mov 0x38(%esp),%esi" "\n" -+ "mov 0x3c(%esp),%ebp" "\n" -+ "sub $0x20,%ebp" "\n" -+ "movl $0x0,0x24(%ebp)" "\n" -+ "movl $0x0,0x20(%ebp)" "\n" -+ "movl $0x0,0x1c(%ebp)" "\n" -+ "mov %ecx,0x18(%ebp)" "\n" -+ "mov (%ecx),%ebx" "\n" -+ "movl $0x0,0x14(%ebp)" "\n" -+ "mov %ebx,0x10(%ebp)" "\n" -+ "movl $0x0,0xc(%ebp)" "\n" -+ "movl $0x1,0x8(%ebp)" "\n" -+ "mov %edx,0x4(%ebp)" "\n" -+ "mov %eax,0x0(%ebp)" "\n" -+ "mov %ebp,%eax" "\n" -+ -+ "mov 0x28(%esi),%edx" "\n" -+ "add $0x5,%edx" "\n" -+ "shl $0x3,%edx" "\n" -+ "sub %edx,%ebp" "\n" -+ "mov %eax,0x0(%ebp)" "\n" -+ -+ "mov $0x5,%eax" "\n" -+ -+ "copyHeaderLoop:" "\n" -+ "sub $0x1,%eax" "\n" -+ "mov (%esi,%eax,8),%ecx" "\n" -+ "mov %ecx,0x8(%ebp,%eax,8)" "\n" -+ "mov 0x4(%esi,%eax,8),%ecx" "\n" -+ "mov %ecx,0xc(%ebp,%eax,8)" "\n" -+ "test %eax,%eax" "\n" -+ "jne copyHeaderLoop" "\n" -+ -+ "mov 0x18(%esi),%edx" "\n" -+ "sub $0x1,%edx" "\n" -+ "mov 0x28(%esi),%ecx" "\n" -+ "sub $0x1,%ecx" "\n" -+ -+ "cmp %ecx,%edx" "\n" -+ "je copyArgs" "\n" -+ -+ "xor %eax,%eax" "\n" -+ "mov $0xfffffffc,%ebx" "\n" -+ -+ "fillExtraArgsLoop:" "\n" -+ "sub $0x1,%ecx" "\n" -+ "mov %eax,0x30(%ebp,%ecx,8)" "\n" -+ "mov %ebx,0x34(%ebp,%ecx,8)" "\n" -+ "cmp %ecx,%edx" "\n" -+ "jne fillExtraArgsLoop" "\n" -+ -+ "copyArgs:" "\n" -+ "mov 0x2c(%esi),%eax" "\n" -+ -+ "copyArgsLoop:" "\n" -+ "test %edx,%edx" "\n" -+ "je copyArgsDone" "\n" -+ "sub $0x1,%edx" "\n" -+ "mov (%eax,%edx,8),%ecx" "\n" -+ "mov 0x4(%eax,%edx,8),%ebx" "\n" -+ "mov %ecx,0x30(%ebp,%edx,8)" "\n" -+ "mov %ebx,0x34(%ebp,%edx,8)" "\n" -+ "jmp copyArgsLoop" "\n" -+ -+ "copyArgsDone:" "\n" -+ "mov 0x34(%esp),%ecx" "\n" -+ "mov %ebp,(%ecx)" "\n" -+ -+ "mov 0x30(%esp),%edi" "\n" -+ "mov %ebp,0x30(%esp)" "\n" -+ "mov %ebp,%ecx" "\n" -+ "call *%edi" "\n" -+ -+ "cmpl $0x1,0x8(%ebp)" "\n" -+ "je calleeFramePopped" "\n" -+ "mov 0x0(%ebp),%ebp" "\n" -+ -+ "calleeFramePopped:" "\n" -+ "mov 0x18(%ebp),%ecx" "\n" -+ "mov 0x10(%ebp),%ebx" "\n" -+ "mov %ebx,(%ecx)" "\n" -+ -+ "add $0x1c,%esp" "\n" -+ "pop %ebx" "\n" -+ "pop %edi" "\n" -+ "pop %esi" "\n" -+ "pop %ebp" "\n" -+ "ret" "\n" -+ ); -+} -+ -+#endif // OS(WINDOWS) && ENABLE(JIT) -+ - #endif // COMPILER(GCC) - - #if COMPILER(MSVC) --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch b/mingw-w64-webkitgtk3/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch deleted file mode 100644 index 667ea8a38c..0000000000 --- a/mingw-w64-webkitgtk3/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch +++ /dev/null @@ -1,34 +0,0 @@ -From eff935cade14c1dc731a29b6a02f260f348f885e 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?= -Date: Mon, 13 Apr 2015 08:33:29 +0000 -Subject: [PATCH 06/20] Use piOverTwoDouble instead of M_PI_2 - -Because M_PI_2 is not defined everywhere. -Fixes errors like: - CXX Source/WebCore/platform/graphics/freetype/libPlatformGtk_la-FontPlatformDataFreeType.lo -../webkitgtk-2.4.8/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp: In function 'void WebCore::rotateCairoMatrixForVerticalOrientation(cairo_matrix_t*)': -../webkitgtk-2.4.8/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:123:34: error: 'M_PI_2' was not declared in this scope - cairo_matrix_rotate(matrix, -M_PI_2); - ^ -GNUmakefile:51663: recipe for target 'Source/WebCore/platform/graphics/freetype/libPlatformGtk_la-FontPlatformDataFreeType.lo' failed ---- - Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp b/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp -index 0b6cdd1..7c4d853 100644 ---- a/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp -+++ b/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp -@@ -120,7 +120,7 @@ static void rotateCairoMatrixForVerticalOrientation(cairo_matrix_t* matrix) - // combination of rotation (R) and translation (T) applied on the - // horizontal matrix (H). V = H . R . T, where R rotates by -90 degrees - // and T translates by font size towards y axis. -- cairo_matrix_rotate(matrix, -M_PI_2); -+ cairo_matrix_rotate(matrix, -piOverTwoDouble); - cairo_matrix_translate(matrix, 0.0, 1.0); - } - --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch b/mingw-w64-webkitgtk3/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch deleted file mode 100644 index f58a6f32e1..0000000000 --- a/mingw-w64-webkitgtk3/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 91625d8f6bde23b34fcb1c8fb8316e0b0f8d8b78 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?= -Date: Mon, 13 Apr 2015 08:43:58 +0000 -Subject: [PATCH 07/20] [GTK][W32] Add missing includes to FileSystemGtk - -Needed for GetModuleHandleExA() & Co. ---- - Source/WebCore/platform/gtk/FileSystemGtk.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/Source/WebCore/platform/gtk/FileSystemGtk.cpp b/Source/WebCore/platform/gtk/FileSystemGtk.cpp -index 9ebeca5..e741d1c 100644 ---- a/Source/WebCore/platform/gtk/FileSystemGtk.cpp -+++ b/Source/WebCore/platform/gtk/FileSystemGtk.cpp -@@ -23,6 +23,10 @@ - #include "config.h" - #include "FileSystem.h" - -+#if OS(WINDOWS) -+#include -+#endif -+ - #include "FileMetadata.h" - #include "UUID.h" - #include --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch b/mingw-w64-webkitgtk3/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch deleted file mode 100644 index 448dba2fc6..0000000000 --- a/mingw-w64-webkitgtk3/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch +++ /dev/null @@ -1,40 +0,0 @@ -From a75ba28de22695c3b3bfb06c9564e4959b4e4cb7 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?= -Date: Mon, 13 Apr 2015 10:21:42 +0000 -Subject: [PATCH 08/20] [W32] Move enum LineLayoutPath in RenderBlock - -This removes the bitfield interruption, allowing more efficient -packing. -Otherwise compile-time assertion fails: -In file included from ../webkitgtk-2.4.8/Source/WTF/wtf/PossiblyNull.h:29:0, - from ../webkitgtk-2.4.8/Source/WTF/wtf/FastMalloc.h:27, - from ../webkitgtk-2.4.8/Source/WebCore/config.h:74, - from ../webkitgtk-2.4.8/Source/WebCore/rendering/RenderBlock.cpp:24: -../webkitgtk-2.4.8/Source/WTF/wtf/Assertions.h:326:35: error: static assertion failed: RenderBlock_should_stay_small - #define COMPILE_ASSERT(exp, name) static_assert((exp), #name) - ^ -../webkitgtk-2.4.8/Source/WebCore/rendering/RenderBlock.cpp:88:1: note: in expansion of macro 'COMPILE_ASSERT' - COMPILE_ASSERT(sizeof(RenderBlock) == sizeof(SameSizeAsRenderBlock), RenderBlock_should_stay_small); - ^ ---- - Source/WebCore/rendering/RenderBlock.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/WebCore/rendering/RenderBlock.h b/Source/WebCore/rendering/RenderBlock.h -index 5aa29e0..c29b078 100644 ---- a/Source/WebCore/rendering/RenderBlock.h -+++ b/Source/WebCore/rendering/RenderBlock.h -@@ -611,8 +611,8 @@ public: - unsigned m_beingDestroyed : 1; - unsigned m_hasMarkupTruncation : 1; - unsigned m_hasBorderOrPaddingLogicalWidthChanged : 1; -- enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; - unsigned m_lineLayoutPath : 2; -+ enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; - - // RenderRubyBase objects need to be able to split and merge, moving their children around - // (calling moveChildTo, moveAllChildrenTo, and makeChildrenNonInline). --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch b/mingw-w64-webkitgtk3/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch deleted file mode 100644 index 0961214b58..0000000000 --- a/mingw-w64-webkitgtk3/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 3af08080d48481b6e187bc3319ad900689d7147e 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?= -Date: Mon, 13 Apr 2015 12:11:47 +0000 -Subject: [PATCH 09/20] [W32] Fix deleteObject prototypte, fix header case - -Apparently, is unneeded here: - -In file included from ../webkitgtk-2.4.8/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp:35:0: -../webkitgtk-2.4.8/Source/WTF/wtf/win/GdiObject.h:114:58: error: function template partial specialization 'deleteObject' is not allowed - template inline void deleteObject(T object) - ^ - -As a bonus, change GdiObject.h -> GDIObject.h (this matters when -cross-compiling or when using case-sensitive filesystems on W32). ---- - Source/WTF/wtf/win/GDIObject.h | 2 +- - Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Source/WTF/wtf/win/GDIObject.h b/Source/WTF/wtf/win/GDIObject.h -index e8b00be..4e01b3ce 100644 ---- a/Source/WTF/wtf/win/GDIObject.h -+++ b/Source/WTF/wtf/win/GDIObject.h -@@ -111,7 +111,7 @@ template inline void swap(GDIObject& a, GDIObject& b) - } - - // Nearly all GDI types use the same DeleteObject call. --template inline void deleteObject(T object) -+template inline void deleteObject(T object) - { - if (object) - ::DeleteObject(object); -diff --git a/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp b/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp -index 1b2d865..3fb2ac0 100644 ---- a/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp -+++ b/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp -@@ -32,7 +32,7 @@ - - #include - #include "GraphicsContextPlatformPrivateCairo.h" --#include -+#include - - using namespace std; - --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch b/mingw-w64-webkitgtk3/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch deleted file mode 100644 index 70bbe5e5ec..0000000000 --- a/mingw-w64-webkitgtk3/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 22a1a49e1d5fecaa4ba6cee5d9ffba13fb1176fc 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?= -Date: Mon, 13 Apr 2015 13:52:29 +0000 -Subject: [PATCH 10/20] [ANGLE][W32] Don't hardcode ossource_posix.cpp in the - makefile - -Compile ossource_posix.cpp or ossource_win.cpp depending on the target. - -Otherwise you get an error: -../webkitgtk-2.4.8/Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp:13:2: error: #error Trying to build a posix specific file in a non-posix build. ---- - Source/ThirdParty/ANGLE/GNUmakefile.am | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/Source/ThirdParty/ANGLE/GNUmakefile.am b/Source/ThirdParty/ANGLE/GNUmakefile.am -index 4c14ac1..70904bb 100644 ---- a/Source/ThirdParty/ANGLE/GNUmakefile.am -+++ b/Source/ThirdParty/ANGLE/GNUmakefile.am -@@ -80,7 +80,6 @@ libANGLE_la_SOURCES = \ - Source/ThirdParty/ANGLE/src/compiler/MMap.h \ - Source/ThirdParty/ANGLE/src/compiler/NodeSearch.h \ - Source/ThirdParty/ANGLE/src/compiler/osinclude.h \ -- Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp \ - Source/ThirdParty/ANGLE/src/compiler/OutputESSL.cpp \ - Source/ThirdParty/ANGLE/src/compiler/OutputESSL.h \ - Source/ThirdParty/ANGLE/src/compiler/OutputGLSLBase.cpp \ -@@ -161,3 +160,9 @@ libANGLE_la_SOURCES = \ - Source/ThirdParty/ANGLE/src/compiler/VersionGLSL.h \ - Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.cpp \ - Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.h -+ -+if TARGET_WIN32 -+libANGLE_la_SOURCES += Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp -+else -+libANGLE_la_SOURCES += Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp -+endif --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch b/mingw-w64-webkitgtk3/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch deleted file mode 100644 index fa2183d340..0000000000 --- a/mingw-w64-webkitgtk3/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 723ff2fa4708a211734f469e3cc2092beb6bbf02 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?= -Date: Mon, 13 Apr 2015 15:31:56 +0000 -Subject: [PATCH 11/20] [W32] Change OpenGL checks to work on W32, add - libopengl32 - -AGain, use OS(WINDOWS) for things that are W32 but not necessarily MSVC. -Don't try to check for dlopen() on W32 (it might be available, but -native code is already here, so use it). - -Correctly cast the result of GetProcAddress(), because C++. - -Link W32 version to -lOpenGL32 instead of -lGL, otherwise libtool complains: -*** Warning: linker path does not have real file for library -lGL. ---- - Source/WebCore/platform/graphics/OpenGLShims.cpp | 6 +++--- - Source/autotools/FindDependencies.m4 | 7 ++++++- - 2 files changed, 9 insertions(+), 4 deletions(-) - -diff --git a/Source/WebCore/platform/graphics/OpenGLShims.cpp b/Source/WebCore/platform/graphics/OpenGLShims.cpp -index 916a908..d77a8b0 100644 ---- a/Source/WebCore/platform/graphics/OpenGLShims.cpp -+++ b/Source/WebCore/platform/graphics/OpenGLShims.cpp -@@ -22,7 +22,7 @@ - #define DISABLE_SHIMS - #include "OpenGLShims.h" - --#if !PLATFORM(WIN) -+#if !OS(WINDOWS) - #include - #endif - -@@ -37,10 +37,10 @@ OpenGLFunctionTable* openGLFunctionTable() - return &table; - } - --#if PLATFORM(WIN) -+#if OS(WINDOWS) - static void* getProcAddress(const char* procName) - { -- return GetProcAddress(GetModuleHandleA("libGLESv2"), procName); -+ return reinterpret_cast(GetProcAddress(GetModuleHandleA("libGLESv2"), procName)); - } - #else - typedef void* (*glGetProcAddressType) (const char* procName); -diff --git a/Source/autotools/FindDependencies.m4 b/Source/autotools/FindDependencies.m4 -index 9a2c496..3ce3f76 100644 ---- a/Source/autotools/FindDependencies.m4 -+++ b/Source/autotools/FindDependencies.m4 -@@ -453,6 +453,9 @@ if test "$found_opengl" = "yes"; then - if test "$enable_gles2" = "yes"; then - acceleration_description="$acceleration_description (gles2" - OPENGL_LIBS="-lGLESv2" -+ elif test "$os_win32" = "yes"; then -+ acceleration_description="$acceleration_description (gl" -+ OPENGL_LIBS="-lopengl32" - else - acceleration_description="$acceleration_description (gl" - OPENGL_LIBS="-lGL" -@@ -467,7 +470,9 @@ if test "$found_opengl" = "yes"; then - - # Check whether dlopen() is in the core libc like on FreeBSD, or in a separate - # libdl like on GNU/Linux (in which case we want to link to libdl). -- AC_CHECK_FUNC([dlopen], [], [AC_CHECK_LIB([dl], [dlopen], [OPENGL_LIBS="$OPENGL_LIBS -ldl"])]) -+ if test "$os_win32" = "no"; then -+ AC_CHECK_FUNC([dlopen], [], [AC_CHECK_LIB([dl], [dlopen], [OPENGL_LIBS="$OPENGL_LIBS -ldl"])]) -+ fi - - acceleration_description="$acceleration_description)" - fi --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch b/mingw-w64-webkitgtk3/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch deleted file mode 100644 index 844bc7e7e4..0000000000 --- a/mingw-w64-webkitgtk3/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d917ab9a3ce0e92a863b8040e819755804a529f0 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?= -Date: Mon, 13 Apr 2015 16:14:33 +0000 -Subject: [PATCH 12/20] [W32][GTK] Use correct .la files as --library arguments - for GI scanner - -This way it plays well with W32 gobject-introspection library resolution -code. -Without that one would get things like: -ERROR: can't resolve libraries to shared libraries: webkitgtk-3.0, javascriptcoregtk-3.0 ---- - Source/WebKit/gtk/GNUmakefile.am | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Source/WebKit/gtk/GNUmakefile.am b/Source/WebKit/gtk/GNUmakefile.am -index 2ba8541..5502f25 100644 ---- a/Source/WebKit/gtk/GNUmakefile.am -+++ b/Source/WebKit/gtk/GNUmakefile.am -@@ -311,8 +311,8 @@ WebKit-@WEBKITGTK_API_VERSION@.gir: $(G_IR_SCANNER) JavaScriptCore-@WEBKITGTK_AP - --include=Gtk-@GTK_API_VERSION@ \ - --include=JavaScriptCore-@WEBKITGTK_API_VERSION@ \ - --include=Soup-2.4 \ -- --library=webkitgtk-@WEBKITGTK_API_VERSION@ \ -- --library=javascriptcoregtk-@WEBKITGTK_API_VERSION@ \ -+ --library=libwebkitgtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \ -+ --library=libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \ - --libtool="$(LIBTOOL)" \ - --pkg=gobject-2.0 \ - --pkg=gtk+-@GTK_API_VERSION@ \ --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch b/mingw-w64-webkitgtk3/0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch deleted file mode 100644 index da2ddf3a56..0000000000 --- a/mingw-w64-webkitgtk3/0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch +++ /dev/null @@ -1,356 +0,0 @@ -From a707d6c192cebc257f7aea00cc30ee5dbe7e9713 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?= -Date: Tue, 14 Apr 2015 10:42:31 +0000 -Subject: [PATCH 13/20] Ensure that generator-scripts get CC from configure - -Various scripts check the CC environment variable to get the compiler to -use. In absence of that variable they do various educated guesses. - -They guess wrong when running in MSYS (find /usr/bin/gcc instead -of /mingw/bin/gcc) and likely also guess wrong when cross-compiling. - -Note that if the version of a "wrong" gcc is close enough to the "right" gcc, -things might just work out somehow, but we shouldn't bet on that. ---- - Source/JavaScriptCore/GNUmakefile.am | 20 ++++---- - Source/Platform/GNUmakefile.am | 4 +- - Source/WebCore/GNUmakefile.am | 64 +++++++++++++------------- - Source/WebCore/bindings/gobject/GNUmakefile.am | 6 +-- - Tools/TestWebKitAPI/GNUmakefile.am | 4 +- - Tools/WebKitTestRunner/GNUmakefile.am | 4 +- - 6 files changed, 51 insertions(+), 51 deletions(-) - -diff --git a/Source/JavaScriptCore/GNUmakefile.am b/Source/JavaScriptCore/GNUmakefile.am -index ab058b6..3fa990f 100644 ---- a/Source/JavaScriptCore/GNUmakefile.am -+++ b/Source/JavaScriptCore/GNUmakefile.am -@@ -95,25 +95,25 @@ pkgconfig_DATA += Source/JavaScriptCore/javascriptcoregtk-@WEBKITGTK_API_VERSION - $(shell mkdir -p DerivedSources/JavaScriptCore) - - DerivedSources/JavaScriptCore/Lexer.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/parser/Keywords.table -- $(AM_V_GEN)$(PERL) $^ > $@ -+ $(AM_V_GEN)CC=$(CC) $(PERL) $^ > $@ - - DerivedSources/JavaScriptCore/%.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/runtime/%.cpp -- $(AM_V_GEN)$(PERL) $^ -i > $@ -+ $(AM_V_GEN)CC=$(CC) $(PERL) $^ -i > $@ - - DerivedSources/JavaScriptCore/RegExpJitTables.h: $(srcdir)/Source/JavaScriptCore/create_regex_tables -- $(AM_V_GEN)$(PYTHON) $^ > $@ -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $^ > $@ - - DerivedSources/JavaScriptCore/KeywordLookup.h: $(srcdir)/Source/JavaScriptCore/KeywordLookupGenerator.py $(srcdir)/Source/JavaScriptCore/parser/Keywords.table -- $(AM_V_GEN)$(PYTHON) $^ > $@ -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $^ > $@ - - DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h: $(javascriptcore_sources) $(llint_nosources) $(offlineasm_nosources) -- $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@ -+ $(AM_V_GEN)CC=$(CC) $(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@ - $(AM_V_at)touch $@ - - $(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h - - DerivedSources/JavaScriptCore/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT) -- $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@ -+ $(AM_V_GEN)CC=$(CC) $(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@ - $(AM_V_at)touch $@ - - $(libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_OBJECTS): DerivedSources/JavaScriptCore/LLIntAssembly.h -@@ -253,12 +253,12 @@ JavaScriptCore_INSPECTOR_DOMAINS := \ - $(JavaScriptCore)/inspector/protocol/Runtime.json - - DerivedSources/JavaScriptCore/InspectorJS.json: $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore_INSPECTOR_DOMAINS) -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore)/inspector/protocol > $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore)/inspector/protocol > $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json - - # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders - # Copy generated header files to DerivedSources/JavaScriptCore/inspector so that WebCore's ForwardingHeader style of #include will work. - DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.cpp: DerivedSources/JavaScriptCore/InspectorJS.json $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspectorStrings.py -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_JAVASCRIPTCORE) --output_cpp_dir $(GENSOURCES_JAVASCRIPTCORE) --output_js_dir $(GENSOURCES_JAVASCRIPTCORE) --output_type JavaScript -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_JAVASCRIPTCORE) --output_cpp_dir $(GENSOURCES_JAVASCRIPTCORE) --output_js_dir $(GENSOURCES_JAVASCRIPTCORE) --output_type JavaScript - $(AM_V_at)touch $@ - mkdir -p DerivedSources/JavaScriptCore/inspector - cp DerivedSources/JavaScriptCore/InspectorJSTypeBuilders.h DerivedSources/JavaScriptCore/InspectorJSFrontendDispatchers.h DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.h DerivedSources/JavaScriptCore/inspector -@@ -270,6 +270,6 @@ DerivedSources/JavaScriptCore/InspectorJSBackendCommands.js: DerivedSources/Java - DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.h: DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.cpp - - DerivedSources/JavaScriptCore/InjectedScriptSource.h: $(JavaScriptCore)/inspector/InjectedScriptSource.js $(INSPECTOR_SCRIPTS_DIR)/xxd.pl $(INSPECTOR_SCRIPTS_DIR)/jsmin.py -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py < $< > $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js -- $(AM_V_at)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptSource_js $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js $@ -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py < $< > $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js -+ $(AM_V_at)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptSource_js $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js $@ - $(AM_V_at)rm -rf $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js -diff --git a/Source/Platform/GNUmakefile.am b/Source/Platform/GNUmakefile.am -index faf3e8c..1930098 100644 ---- a/Source/Platform/GNUmakefile.am -+++ b/Source/Platform/GNUmakefile.am -@@ -126,8 +126,8 @@ libPlatformGtk_la_CPPFLAGS = \ - $(LIBSOUP_CFLAGS) - - DerivedSources/Platform/ColorData.cpp: $(WebCore)/platform/ColorData.gperf $(WebCore)/make-hash-tools.pl -- $(AM_V_GEN)$(PERL) $(WebCore)/make-hash-tools.pl $(GENSOURCES_PLATFORM) $(WebCore)/platform/ColorData.gperf -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(WebCore)/make-hash-tools.pl $(GENSOURCES_PLATFORM) $(WebCore)/platform/ColorData.gperf - - DerivedSources/Platform/WebKitFontFamilyNames.cpp: DerivedSources/Platform/WebKitFontFamilyNames.h - DerivedSources/Platform/WebKitFontFamilyNames.h: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/css/WebKitFontFamilyNames.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --fonts $(WebCore)/css/WebKitFontFamilyNames.in --outputDir "$(GENSOURCES_PLATFORM)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --fonts $(WebCore)/css/WebKitFontFamilyNames.in --outputDir "$(GENSOURCES_PLATFORM)" -diff --git a/Source/WebCore/GNUmakefile.am b/Source/WebCore/GNUmakefile.am -index cc2484b..c145ea7 100644 ---- a/Source/WebCore/GNUmakefile.am -+++ b/Source/WebCore/GNUmakefile.am -@@ -150,13 +150,13 @@ endif # END TARGET_WIN32 - $(GENSOURCES_WEBCORE)/XPathGrammar.h: $(GENSOURCES_WEBCORE)/XPathGrammar.cpp - $(GENSOURCES_WEBCORE)/XPathGrammar.cpp: $(WebCore)/xml/XPathGrammar.y - $(AM_V_GEN) -- $(AM_V_at)perl $(WebCore)/css/makegrammar.pl --outputDir $(GENSOURCES_WEBCORE) --bison "$(BISON)" --symbolsPrefix xpathyy $< -+ $(AM_V_at)CC=$(CC) perl $(WebCore)/css/makegrammar.pl --outputDir $(GENSOURCES_WEBCORE) --bison "$(BISON)" --symbolsPrefix xpathyy $< - - # MathML tag and attribute names, and element factory - DerivedSources/WebCore/MathMLElementFactory.h: DerivedSources/WebCore/MathMLElementFactory.cpp - DerivedSources/WebCore/MathMLNames.h: DerivedSources/WebCore/MathMLNames.cpp - DerivedSources/WebCore/MathMLElementFactory.cpp DerivedSources/WebCore/MathMLNames.cpp: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/mathml/mathtags.in $(WebCore)/mathml/mathattrs.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --tags $(WebCore)/mathml/mathtags.in --attrs $(WebCore)/mathml/mathattrs.in --factory --wrapperFactory --outputDir "$(GENSOURCES_WEBCORE)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --tags $(WebCore)/mathml/mathtags.in --attrs $(WebCore)/mathml/mathattrs.in --factory --wrapperFactory --outputDir "$(GENSOURCES_WEBCORE)" - - # ---- - # SVG Support -@@ -202,13 +202,13 @@ endif # END_ENABLE_SVG - DerivedSources/WebCore/SVGNames.cpp: DerivedSources/WebCore/SVGElementFactory.cpp - DerivedSources/WebCore/JSSVGElementWrapperFactory.cpp: DerivedSources/WebCore/SVGElementFactory.cpp - DerivedSources/WebCore/SVGElementFactory.cpp: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/svg/svgtags.in $(WebCore)/svg/svgattrs.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --extraDefines "$(feature_defines)" --factory --wrapperFactory --outputDir "$(GENSOURCES_WEBCORE)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --extraDefines "$(feature_defines)" --factory --wrapperFactory --outputDir "$(GENSOURCES_WEBCORE)" - - # end SVG Features - - DerivedSources/WebCore/XLinkNames.h: DerivedSources/WebCore/XLinkNames.cpp - DerivedSources/WebCore/XLinkNames.cpp : $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/svg/xlinkattrs.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --attrs $(WebCore)/svg/xlinkattrs.in --outputDir "$(GENSOURCES_WEBCORE)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --attrs $(WebCore)/svg/xlinkattrs.in --outputDir "$(GENSOURCES_WEBCORE)" - - if USE_TEXTURE_MAPPER_GL - webcore_cppflags += \ -@@ -234,7 +234,7 @@ DerivedSources/WebCore/CSSPropertyNames.cpp: DerivedSources/WebCore/CSSPropertyN - DerivedSources/WebCore/CSSPropertyNames.h: $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/makeprop.pl - $(AM_V_GEN) - $(AM_V_at)cat $(WEBCORE_CSS_PROPERTY_NAMES) > CSSPropertyNames.in -- $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts "$(WebCore)/css/makeprop.pl" --defines "$(feature_defines)" -+ $(AM_V_at)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts "$(WebCore)/css/makeprop.pl" --defines "$(feature_defines)" - $(AM_V_at)mv CSSPropertyNames* $(GENSOURCES_WEBCORE) - - # Lower case all the values, as CSS values are case-insensitive -@@ -242,29 +242,29 @@ DerivedSources/WebCore/CSSValueKeywords.cpp: DerivedSources/WebCore/CSSValueKeyw - DerivedSources/WebCore/CSSValueKeywords.h: $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/makevalues.pl - $(AM_V_GEN) - $(AM_V_at)cat $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in -- $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts "$(WebCore)/css/makevalues.pl" --defines "$(feature_defines)" -+ $(AM_V_at)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts "$(WebCore)/css/makevalues.pl" --defines "$(feature_defines)" - $(AM_V_at)mv CSSValueKeywords* $(GENSOURCES_WEBCORE) - - # XML Viewer CSS - DerivedSources/WebCore/XMLViewerCSS.h: $(WebCore)/xml/XMLViewer.css -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/cssmin.py <$(WebCore)/xml/XMLViewer.css > $(GENSOURCES_WEBCORE)/XMLViewer.min.css -- $(AM_V_GEN)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl XMLViewer_css $(GENSOURCES_WEBCORE)/XMLViewer.min.css $(GENSOURCES_WEBCORE)/XMLViewerCSS.h -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/cssmin.py <$(WebCore)/xml/XMLViewer.css > $(GENSOURCES_WEBCORE)/XMLViewer.min.css -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl XMLViewer_css $(GENSOURCES_WEBCORE)/XMLViewer.min.css $(GENSOURCES_WEBCORE)/XMLViewerCSS.h - - # XML Viewer JS - DerivedSources/WebCore/XMLViewerJS.h: $(WebCore)/xml/XMLViewer.js -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/xml/XMLViewer.js > $(GENSOURCES_WEBCORE)/XMLViewer.min.js -- $(AM_V_GEN)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl XMLViewer_js $(GENSOURCES_WEBCORE)/XMLViewer.min.js $(GENSOURCES_WEBCORE)/XMLViewerJS.h -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/xml/XMLViewer.js > $(GENSOURCES_WEBCORE)/XMLViewer.min.js -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl XMLViewer_js $(GENSOURCES_WEBCORE)/XMLViewer.min.js $(GENSOURCES_WEBCORE)/XMLViewerJS.h - - # HTML entity names - DerivedSources/WebCore/HTMLEntityTable.cpp: $(WebCore)/html/parser/HTMLEntityNames.in $(WebCore)/html/parser/create-html-entity-table -- $(AM_V_GEN)$(PYTHON) $(WebCore)/html/parser/create-html-entity-table -o $(GENSOURCES_WEBCORE)/HTMLEntityTable.cpp $(WebCore)/html/parser/HTMLEntityNames.in -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(WebCore)/html/parser/create-html-entity-table -o $(GENSOURCES_WEBCORE)/HTMLEntityTable.cpp $(WebCore)/html/parser/HTMLEntityNames.in - - # CSS grammar - - DerivedSources/WebCore/CSSGrammar.h: $(GENSOURCES_WEBCORE)/CSSGrammar.cpp - DerivedSources/WebCore/CSSGrammar.cpp: $(WebCore)/css/CSSGrammar.y.in - $(AM_V_GEN) -- $(AM_V_at)perl -I $(WebCore)/bindings/scripts $(WebCore)/css/makegrammar.pl --extraDefines "$(feature_defines)" --outputDir $(GENSOURCES_WEBCORE) --bison "$(BISON)" --symbolsPrefix cssyy $< -+ $(AM_V_at)CC=$(CC) perl -I $(WebCore)/bindings/scripts $(WebCore)/css/makegrammar.pl --extraDefines "$(feature_defines)" --outputDir $(GENSOURCES_WEBCORE) --bison "$(BISON)" --symbolsPrefix cssyy $< - - # user agent style sheets - USER_AGENT_STYLE_SHEETS = \ -@@ -296,11 +296,11 @@ SCRIPTS_FOR_PREPROCESS_IDLS = \ - - DerivedSources/WebCore/UserAgentStyleSheetsData.cpp: DerivedSources/WebCore/UserAgentStyleSheets.h - DerivedSources/WebCore/UserAgentStyleSheets.h: $(WebCore)/css/make-css-file-arrays.pl $(WebCore)/bindings/scripts/preprocessor.pm $(USER_AGENT_STYLE_SHEETS) -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --defines "$(feature_defines)" $@ DerivedSources/WebCore/UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS) -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --defines "$(feature_defines)" $@ DerivedSources/WebCore/UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS) - - DerivedSources/WebCore/PlugInsResourcesData.cpp: DerivedSources/WebCore/PlugInsResources.h - DerivedSources/WebCore/PlugInsResources.h: $(WebCore)/css/make-css-file-arrays.pl $(WebCore)/bindings/scripts/preprocessor.pm $(PLUG_INS_RESOURCES) -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --defines "$(feature_defines)" $@ DerivedSources/WebCore/PlugInsResourcesData.cpp $(PLUG_INS_RESOURCES) -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --defines "$(feature_defines)" $@ DerivedSources/WebCore/PlugInsResourcesData.cpp $(PLUG_INS_RESOURCES) - - - # HTML tag and attribute names -@@ -310,26 +310,26 @@ DerivedSources/WebCore/HTMLElementFactory.h: DerivedSources/WebCore/HTMLNames.cp - DerivedSources/WebCore/HTMLElementTypeHelpers.h: DerivedSources/WebCore/HTMLNames.h - DerivedSources/WebCore/HTMLNames.cpp: DerivedSources/WebCore/HTMLNames.h - DerivedSources/WebCore/HTMLNames.h: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/html/HTMLTagNames.in $(WebCore)/html/HTMLAttributeNames.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --extraDefines "$(feature_defines)" --factory --wrapperFactory --outputDir "$(GENSOURCES_WEBCORE)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --extraDefines "$(feature_defines)" --factory --wrapperFactory --outputDir "$(GENSOURCES_WEBCORE)" - - - DerivedSources/WebCore/XMLNSNames.cpp DerivedSources/WebCore/XMLNSNames.h: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/xml/xmlnsattrs.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlnsattrs.in --outputDir "$(GENSOURCES_WEBCORE)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlnsattrs.in --outputDir "$(GENSOURCES_WEBCORE)" - - DerivedSources/WebCore/XMLNames.cpp DerivedSources/WebCore/XMLNames.h: $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/xml/xmlattrs.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlattrs.in --outputDir "$(GENSOURCES_WEBCORE)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlattrs.in --outputDir "$(GENSOURCES_WEBCORE)" - - DerivedSources/WebCore/EventFactory.cpp DerivedSources/WebCore/EventHeaders.h DerivedSources/WebCore/EventInterfaces.h: $(WebCore)/dom/make_event_factory.pl $(WebCore)/dom/EventNames.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --input $(WebCore)/dom/EventNames.in --outputDir "$(GENSOURCES_WEBCORE)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --input $(WebCore)/dom/EventNames.in --outputDir "$(GENSOURCES_WEBCORE)" - - DerivedSources/WebCore/EventTargetHeaders.h DerivedSources/WebCore/EventTargetInterfaces.h: $(WebCore)/dom/make_event_factory.pl $(WebCore)/dom/EventTargetFactory.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --input $(WebCore)/dom/EventTargetFactory.in --outputDir "$(GENSOURCES_WEBCORE)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --input $(WebCore)/dom/EventTargetFactory.in --outputDir "$(GENSOURCES_WEBCORE)" - - DerivedSources/WebCore/ExceptionCodeDescription.cpp DerivedSources/WebCore/ExceptionCodeDescription.h DerivedSources/WebCore/ExceptionHeaders.h DerivedSources/WebCore/ExceptionInterfaces.h: $(WebCore)/dom/make_dom_exceptions.pl $(WebCore)/dom/DOMExceptions.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --input $(WebCore)/dom/DOMExceptions.in --outputDir "$(GENSOURCES_WEBCORE)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --input $(WebCore)/dom/DOMExceptions.in --outputDir "$(GENSOURCES_WEBCORE)" - - DerivedSources/WebCore/SettingsMacros.h DerivedSources/WebCore/InternalSettingsGenerated.idl DerivedSources/WebCore/InternalSettingsGenerated.cpp DerivedSources/WebCore/InternalSettingsGenerated.h: $(WebCore)/page/make_settings.pl $(WebCore)/page/Settings.in -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --input $(WebCore)/page/Settings.in --outputDir "$(GENSOURCES_WEBCORE)" -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $< --input $(WebCore)/page/Settings.in --outputDir "$(GENSOURCES_WEBCORE)" - - dom_binding_idls += \ - DerivedSources/WebCore/InternalSettingsGenerated.idl -@@ -356,11 +356,11 @@ WebCore_INSPECTOR_DOMAINS := \ - $(WebCore)/inspector/protocol/Worker.json - - DerivedSources/WebCore/InspectorWeb.json: $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(WebCore_INSPECTOR_DOMAINS) -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(WebCore)/inspector/protocol > $(GENSOURCES_WEBCORE)/InspectorWeb.json -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(WebCore)/inspector/protocol > $(GENSOURCES_WEBCORE)/InspectorWeb.json - - # All Web Inspector generated files are created with this one call to CodeGeneratorInspector.py - DerivedSources/WebCore/InspectorWebBackendDispatchers.cpp: $(GENSOURCES_WEBCORE)/InspectorWeb.json $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspectorStrings.py $(GENSOURCES_JAVASCRIPTCORE)/InspectorJSTypeBuilders.h -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $(GENSOURCES_WEBCORE)/InspectorWeb.json $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json --output_h_dir $(GENSOURCES_WEBCORE) --output_cpp_dir $(GENSOURCES_WEBCORE) --output_js_dir $(GENSOURCES_WEBCORE) --output_type Web -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $(GENSOURCES_WEBCORE)/InspectorWeb.json $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json --output_h_dir $(GENSOURCES_WEBCORE) --output_cpp_dir $(GENSOURCES_WEBCORE) --output_js_dir $(GENSOURCES_WEBCORE) --output_type Web - $(AM_V_at)touch $@ - DerivedSources/WebCore/InspectorWebTypeBuilders.h: DerivedSources/WebCore/InspectorWebTypeBuilders.cpp - DerivedSources/WebCore/InspectorWebTypeBuilders.cpp: DerivedSources/WebCore/InspectorWebFrontendDispatchers.h -@@ -370,16 +370,16 @@ DerivedSources/WebCore/InspectorWebBackendCommands.js: DerivedSources/WebCore/In - DerivedSources/WebCore/InspectorWebBackendDispatchers.h: DerivedSources/WebCore/InspectorWebBackendDispatchers.cpp - - DerivedSources/WebCore/InspectorOverlayPage.h: $(WebCore)/inspector/InspectorOverlayPage.html $(WebCore)/inspector/InspectorOverlayPage.css $(WebCore)/inspector/InspectorOverlayPage.js -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/inline-and-minify-stylesheets-and-scripts.py $(WebCore)/inspector/InspectorOverlayPage.html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.combined.html -- $(AM_V_GEN)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InspectorOverlayPage_html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.combined.html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.h -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/inline-and-minify-stylesheets-and-scripts.py $(WebCore)/inspector/InspectorOverlayPage.html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.combined.html -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InspectorOverlayPage_html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.combined.html $(GENSOURCES_WEBCORE)/InspectorOverlayPage.h - - DerivedSources/WebCore/CommandLineAPIModuleSource.h: $(WebCore)/inspector/CommandLineAPIModuleSource.js -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/inspector/CommandLineAPIModuleSource.js > $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.min.js -- $(AM_V_GEN)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl CommandLineAPIModuleSource_js $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.min.js $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.h -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/inspector/CommandLineAPIModuleSource.js > $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.min.js -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl CommandLineAPIModuleSource_js $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.min.js $(GENSOURCES_WEBCORE)/CommandLineAPIModuleSource.h - - DerivedSources/WebCore/InjectedScriptCanvasModuleSource.h: $(WebCore)/inspector/InjectedScriptCanvasModuleSource.js -- $(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/inspector/InjectedScriptCanvasModuleSource.js > $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.min.js -- $(AM_V_GEN)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptCanvasModuleSource_js $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.min.js $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.h -+ $(AM_V_GEN)CC=$(CC) $(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py <$(WebCore)/inspector/InjectedScriptCanvasModuleSource.js > $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.min.js -+ $(AM_V_GEN)CC=$(CC) $(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptCanvasModuleSource_js $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.min.js $(GENSOURCES_WEBCORE)/InjectedScriptCanvasModuleSource.h - - if ENABLE_WEB_AUDIO - # Installing HRTF database wav files -@@ -448,7 +448,7 @@ $(supplemental_dependency_file): $(SCRIPTS_FOR_PREPROCESS_IDLS) $(dom_binding_id - $(AM_V_GEN) - $(AM_V_at)true > $(idl_files_list) - $(AM_V_at)($(foreach idl, $(dom_binding_idls), echo $(idl) &&) true) >> $(idl_files_list) -- $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/preprocess-idls.pl --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --idlFilesList $(idl_files_list) --windowConstructorsFile $(window_constructors_file) --workerGlobalScopeConstructorsFile $(workerglobalscope_constructors_file) --sharedWorkerGlobalScopeConstructorsFile $(sharedworkerglobalscope_constructors_file) --dedicatedWorkerGlobalScopeConstructorsFile $(dedicatedworkerglobalscope_constructors_file) --supplementalDependencyFile $@ -+ $(AM_V_at)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/preprocess-idls.pl --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --idlFilesList $(idl_files_list) --windowConstructorsFile $(window_constructors_file) --workerGlobalScopeConstructorsFile $(workerglobalscope_constructors_file) --sharedWorkerGlobalScopeConstructorsFile $(sharedworkerglobalscope_constructors_file) --dedicatedWorkerGlobalScopeConstructorsFile $(dedicatedworkerglobalscope_constructors_file) --supplementalDependencyFile $@ - $(AM_V_at)touch $@ - - .PHONY: $(window_constructors_file) $(workerglobalscope_constructors_file) $(sharedworkerglobalscope_constructors_file) $(dedicatedworkerglobalscope_constructors_file) -@@ -459,11 +459,11 @@ DerivedSources/WebCore/JS%.cpp: DerivedSources/WebCore/JS%.h; - - .SECONDARY: - DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file) $(idl_attributes_file) -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< - - .SECONDARY: - DerivedSources/WebCore/JSInternalSettingsGenerated.h: DerivedSources/WebCore/InternalSettingsGenerated.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file) $(idl_attributes_file) -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $< - - # See https://bugs.webkit.org/show_bug.cgi?id=76388 - # We need to introduce a manual dependency to prevent non-generated sources from -diff --git a/Source/WebCore/bindings/gobject/GNUmakefile.am b/Source/WebCore/bindings/gobject/GNUmakefile.am -index 3d5e9dc..3f88ed3 100644 ---- a/Source/WebCore/bindings/gobject/GNUmakefile.am -+++ b/Source/WebCore/bindings/gobject/GNUmakefile.am -@@ -478,10 +478,10 @@ BUILT_SOURCES += \ - gdom_class_list := $(subst WebKitDOM,, $(filter-out %Private, $(basename $(notdir $(webkitgtk_gdom_built_sources))))) - gdom_class_list += Custom EventTarget Object Deprecated - DerivedSources/webkitdom/webkitdom.h: $(WebCore)/bindings/scripts/gobject-generate-headers.pl $(WebCore)/bindings/gobject/GNUmakefile.am -- $(AM_V_GEN)echo $(gdom_class_list) | $(PERL) $< gdom > $@ -+ $(AM_V_GEN)echo $(gdom_class_list) | CC=$(CC) $(PERL) $< gdom > $@ - - DerivedSources/webkitdom/webkitdomdefines.h: $(WebCore)/bindings/scripts/gobject-generate-headers.pl $(WebCore)/bindings/gobject/GNUmakefile.am -- $(AM_V_GEN)echo $(gdom_class_list) | $(PERL) $< defines > $@ -+ $(AM_V_GEN)echo $(gdom_class_list) | CC=$(CC) $(PERL) $< defines > $@ - - gdom_symbol_files += $(patsubst %.h,%.symbols, $(filter DerivedSources/webkitdom/WebKitDOM%.h, $(webkitgtk_gdom_built_h_api))) - -@@ -533,7 +533,7 @@ $(top_builddir)/DerivedSources/webkitdom/WebKitDOMDeprecated.h: $(WebCore)/bindi - # Filter out SVG and IndexedDB for now - gdom_feature_defines := $(filter-out ENABLE_INDEXED_DATABASE=1, $(filter-out ENABLE_SVG%, $(feature_defines))) ENABLE_INDEXED_DATABASE=0 - DerivedSources/webkitdom/WebKitDOM%.cpp DerivedSources/webkitdom/WebKitDOM%.h DerivedSources/webkitdom/WebKitDOM%Private.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorGObject.pm $(WebCore)/bindings/gobject/GNUmakefile.am $(supplemental_dependency_file) -- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl --include $(WebCore)/Modules --include $(WebCore)/dom --include $(WebCore)/html --include $(WebCore)/css --include $(WebCore)/page --include $(WebCore)/fileapi --include $(WebCore)/xml --include $(WebCore)/svg --outputDir "$(GENSOURCES_WEBKITDOM)" --defines "LANGUAGE_GOBJECT=1 $(gdom_feature_defines)" --generator GObject --supplementalDependencyFile $(supplemental_dependency_file) $< -+ $(AM_V_GEN)CC=$(CC) $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl --include $(WebCore)/Modules --include $(WebCore)/dom --include $(WebCore)/html --include $(WebCore)/css --include $(WebCore)/page --include $(WebCore)/fileapi --include $(WebCore)/xml --include $(WebCore)/svg --outputDir "$(GENSOURCES_WEBKITDOM)" --defines "LANGUAGE_GOBJECT=1 $(gdom_feature_defines)" --generator GObject --supplementalDependencyFile $(supplemental_dependency_file) $< - - libwebkitdomincludedir = $(libwebkitgtkincludedir)/webkitdom - nodist_libwebkitdominclude_HEADERS = \ -diff --git a/Tools/TestWebKitAPI/GNUmakefile.am b/Tools/TestWebKitAPI/GNUmakefile.am -index 2ea6173..94be896 100644 ---- a/Tools/TestWebKitAPI/GNUmakefile.am -+++ b/Tools/TestWebKitAPI/GNUmakefile.am -@@ -893,11 +893,11 @@ Programs_TestWebKitAPI_WebKit2Gtk_TestUIClient_LDFLAGS = $(webkit2gtk_tests_ldfl - - - stamp-testwebkitapi-webcore-forwarding-headers: $(WebKit2)/Scripts/generate-forwarding-headers.pl $(Programs_TestWebKitAPI_WebCore_TestWebCore_SOURCES) -- $(AM_V_GEN)$(PERL) $< $(srcdir)/Tools/TestWebKitAPI/Tests/WebCore $(GENSOURCES_WEBCORE)/include gtk \ -+ $(AM_V_GEN)CC=$(CC) $(PERL) $< $(srcdir)/Tools/TestWebKitAPI/Tests/WebCore $(GENSOURCES_WEBCORE)/include gtk \ - && echo timestamp > $(@F) - - stamp-testwebkitapi-webkit2-forwarding-headers: $(WebKit2)/Scripts/generate-forwarding-headers.pl $(Programs_TestWebKitAPI_WebKit2_TestWebKit2_SOURCES) $(Libraries_libTestWebKitAPIInjectedBundle_la_SOURCES) -- $(AM_V_GEN)$(PERL) $< $(srcdir)/Tools/TestWebKitAPI $(GENSOURCES_WEBKIT2)/include gtk \ -+ $(AM_V_GEN)CC=$(CC) $(PERL) $< $(srcdir)/Tools/TestWebKitAPI $(GENSOURCES_WEBKIT2)/include gtk \ - && echo timestamp > $(@F) - - BUILT_SOURCES += $(top_builddir)/stamp-testwebkitapi-webcore-forwarding-headers -diff --git a/Tools/WebKitTestRunner/GNUmakefile.am b/Tools/WebKitTestRunner/GNUmakefile.am -index 28a2d57..e664c56 100644 ---- a/Tools/WebKitTestRunner/GNUmakefile.am -+++ b/Tools/WebKitTestRunner/GNUmakefile.am -@@ -1,6 +1,6 @@ - - stamp-webkittestrunner-forwarding-headers: $(WebKit2)/Scripts/generate-forwarding-headers.pl $(Programs_WebKitTestRunner_SOURCES) $(Libraries_libTestRunnerInjectedBundle_la_SOURCES) -- $(AM_V_GEN)$(PERL) $< $(srcdir)/Tools/WebKitTestRunner $(GENSOURCES_WEBKIT2)/include gtk \ -+ $(AM_V_GEN)CC=$(CC) $(PERL) $< $(srcdir)/Tools/WebKitTestRunner $(GENSOURCES_WEBKIT2)/include gtk \ - && echo timestamp > $(@F) - - BUILT_SOURCES += $(top_builddir)/stamp-webkittestrunner-forwarding-headers -@@ -157,7 +157,7 @@ code_generation_dependencies = \ - Source/WebCore/bindings/scripts/generate-bindings.pl - - DerivedSources/InjectedBundle/JS%.cpp: Tools/WebKitTestRunner/InjectedBundle/Bindings/%.idl $(code_generation_dependencies) -- $(AM_V_GEN)$(PERL) \ -+ $(AM_V_GEN)CC=$(CC) $(PERL) \ - -I $(srcdir)/Source/WebCore/bindings/scripts \ - -I $(srcdir)/Tools/WebKitTestRunner/InjectedBundle/Bindings \ - $(srcdir)/Source/WebCore/bindings/scripts/generate-bindings.pl \ --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch b/mingw-w64-webkitgtk3/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch deleted file mode 100644 index cab46ac369..0000000000 --- a/mingw-w64-webkitgtk3/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 15bb53231a42240baf882baeeb265b5bee861190 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?= -Date: Tue, 14 Apr 2015 10:48:26 +0000 -Subject: [PATCH 14/20] [W32][ANGLE] Silence two warnings in ANGLE - -../webkitgtk-2.4.8/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp:538:123: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] - if (op == EOpConstructStruct && !type->isArray() && int(type->getStruct()->fields().size()) != function.getParamCount()) { - ^ -../webkitgtk-2.4.8/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp:7:0: warning: ignoring #pragma warning [-Wunknown-pragmas] - #pragma warning(disable: 4718) - ^ ---- - Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp | 2 +- - Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp | 2 ++ - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp b/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp -index 9a27952..a93d286 100644 ---- a/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp -+++ b/Source/ThirdParty/ANGLE/src/compiler/ParseContext.cpp -@@ -535,7 +535,7 @@ bool TParseContext::constructorErrorCheck(const TSourceLoc& line, TIntermNode* n - return true; - } - -- if (op == EOpConstructStruct && !type->isArray() && int(type->getStruct()->fields().size()) != function.getParamCount()) { -+ if (op == EOpConstructStruct && !type->isArray() && int(type->getStruct()->fields().size()) != int(function.getParamCount())) { - error(line, "Number of constructor parameters does not match the number of structure fields", "constructor"); - return true; - } -diff --git a/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp b/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp -index ca661d6..3d306a3 100644 ---- a/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp -+++ b/Source/ThirdParty/ANGLE/src/compiler/depgraph/DependencyGraph.cpp -@@ -4,7 +4,9 @@ - // found in the LICENSE file. - // - -+#ifdef _MSC_VER - #pragma warning(disable: 4718) -+#endif - - #include "compiler/depgraph/DependencyGraph.h" - #include "compiler/depgraph/DependencyGraphBuilder.h" --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch b/mingw-w64-webkitgtk3/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch deleted file mode 100644 index 70f7468a38..0000000000 --- a/mingw-w64-webkitgtk3/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch +++ /dev/null @@ -1,42 +0,0 @@ -From dd36f7430eed1724cfa8bc30ceaa6159569ee9e8 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?= -Date: Tue, 14 Apr 2015 10:51:02 +0000 -Subject: [PATCH 15/20] [W32] Try to use pkg-config to detect ICU libraries - -MinGW packages tend to have .pc files these days. Use them. - -ICU naming and structure is complex enough to warrant this, and asking -pkg-config might result in things like -UNICODE_LIBS="-licui18n54 -licuuc54 -licudata54" -instead of the default -UNICODE_LIBS="-licui18n -licuuc" -and pkg-config usually knows best. ---- - Source/autotools/FindDependencies.m4 | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/Source/autotools/FindDependencies.m4 b/Source/autotools/FindDependencies.m4 -index 3ce3f76..a21e68d 100644 ---- a/Source/autotools/FindDependencies.m4 -+++ b/Source/autotools/FindDependencies.m4 -@@ -109,8 +109,14 @@ case "$host" in - UNICODE_LIBS="-licucore" - ;; - *-*-mingw*) -- UNICODE_CFLAGS="" -- UNICODE_LIBS="-licui18n -licuuc" -+ PKG_CHECK_MODULES(ICU, icu-i18n, ,) -+ if test "x$ICU_LIBS" = "x" ; then -+ UNICODE_CFLAGS="" -+ UNICODE_LIBS="-licui18n -licuuc" -+ else -+ UNICODE_CFLAGS="$ICU_CFLAGS" -+ UNICODE_LIBS="$ICU_LIBS" -+ fi - AC_CHECK_HEADERS([unicode/uchar.h], [], [AC_MSG_ERROR([Could not find ICU headers.])]) - ;; - *) --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch b/mingw-w64-webkitgtk3/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch deleted file mode 100644 index 7de91ca3e0..0000000000 --- a/mingw-w64-webkitgtk3/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 9a724e8caa5b27fdece040d3f698d9948f62ae6c 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?= -Date: Tue, 14 Apr 2015 10:57:41 +0000 -Subject: [PATCH 16/20] [W32][GTK] Work around name conflicts (NO_ERROR) - -In file included from /mingw/include/_mingw.h:12:0, - from ../webkitgtk-2.4.8/Source/WTF/wtf/Compiler.h:93, - from ../webkitgtk-2.4.8/Source/WTF/wtf/Platform.h:32, - from ../webkitgtk-2.4.8/Source/JavaScriptCore/config.h:30, - from ../webkitgtk-2.4.8/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:27: -../webkitgtk-2.4.8/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: In member function 'virtual int WebCore::Extensions3DOpenGLCommon::getGraphicsResetStatusARB()': -../webkitgtk-2.4.8/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:144:31: error: expected unqualified-id before numeric constant - return GraphicsContext3D::NO_ERROR; - -because NO_ERROR is also a macro defined in Windows headers. Ouch. -Also expand this to the (PLATFORM(GTK) && OS(WINDOWS)) combination, -in addition to the workaround for VERSION already present there. ---- - Source/WebCore/html/canvas/WebGLRenderingContext.cpp | 8 ++++++++ - Source/WebCore/platform/graphics/GraphicsContext3D.h | 6 ++++-- - .../WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp | 4 ++++ - .../platform/graphics/texmap/TextureMapperShaderProgram.cpp | 4 ++++ - 4 files changed, 20 insertions(+), 2 deletions(-) - -diff --git a/Source/WebCore/html/canvas/WebGLRenderingContext.cpp b/Source/WebCore/html/canvas/WebGLRenderingContext.cpp -index fa5537b..758abeb 100644 ---- a/Source/WebCore/html/canvas/WebGLRenderingContext.cpp -+++ b/Source/WebCore/html/canvas/WebGLRenderingContext.cpp -@@ -85,6 +85,14 @@ - #include - #include - -+#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) -+#undef NO_ERROR -+#endif -+ -+#if PLATFORM(GTK) -+#undef VERSION -+#endif -+ - namespace WebCore { - - const double secondsBetweenRestoreAttempts = 1.0; -diff --git a/Source/WebCore/platform/graphics/GraphicsContext3D.h b/Source/WebCore/platform/graphics/GraphicsContext3D.h -index 705c327..de53b04 100644 ---- a/Source/WebCore/platform/graphics/GraphicsContext3D.h -+++ b/Source/WebCore/platform/graphics/GraphicsContext3D.h -@@ -43,9 +43,11 @@ - #endif - - // FIXME: Find a better way to avoid the name confliction for NO_ERROR. --#if PLATFORM(WIN) -+#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) - #undef NO_ERROR --#elif PLATFORM(GTK) -+#endif -+ -+#if PLATFORM(GTK) - // This define is from the X11 headers, but it's used below, so we must undefine it. - #undef VERSION - #endif -diff --git a/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp b/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp -index f1713d8..3bd2b73 100644 ---- a/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp -+++ b/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp -@@ -49,6 +49,10 @@ - #include - #include - -+#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) -+#undef NO_ERROR -+#endif -+ - namespace WebCore { - - Extensions3DOpenGLCommon::Extensions3DOpenGLCommon(GraphicsContext3D* context) -diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp -index f4b9a7e..d8caeac 100644 ---- a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp -+++ b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp -@@ -29,6 +29,10 @@ - - #include - -+#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS)) -+#undef NO_ERROR -+#endif -+ - #define STRINGIFY(...) #__VA_ARGS__ - - namespace WebCore { --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch b/mingw-w64-webkitgtk3/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch deleted file mode 100644 index 7d4b4c15d5..0000000000 --- a/mingw-w64-webkitgtk3/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 1c8e4633f8b938a1aaa9a65d992c42bae46fe386 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?= -Date: Tue, 14 Apr 2015 11:02:02 +0000 -Subject: [PATCH 17/20] [W32] Also use GL-related files when compiling with - MinGW - - CXXLD libwebkitgtk-3.0.la -./.libs/../source/webcore/platform/graphics/.libs/libplatform_la-graphicscontext3dprivate.o: In function `GraphicsContext3DPrivate': -/src/mingw/webkitgtk-2.4.8-1\bld/../webkitgtk-2.4.8/Source/WebCore/platform/graphics/GraphicsContext3DPrivate.cpp:59: undefined reference to `__ZN7WebCore9GLContext14sharingContextEv' -/src/mingw/webkitgtk-2.4.8-1\bld/../webkitgtk-2.4.8/Source/WebCore/platform/graphics/GraphicsContext3DPrivate.cpp:59: undefined reference to `__ZN7WebCore9GLContext22createOffscreenContextEPS0_' -./.libs/../source/webcore/platform/graphics/.libs/libplatform_la-graphicscontext3dprivate.o: In function `platformContext': -/src/mingw/webkitgtk-2.4.8-1\bld/../webkitgtk-2.4.8/Source/WebCore/platform/graphics/GraphicsContext3DPrivate.cpp:84: undefined reference to `__ZN7WebCore9GLContext10getCurrentEv' - -Becuase GLContext.cpp is not used, which happens because it's under -TARGET_X11_OR_WAYLAND condition in the GNUmakefile.list.am. -Move TARGET_X11_OR_WAYLAND up a bit to free up GLContext.cpp (now only -protected by USE_OPENGL). ---- - Source/WebCore/GNUmakefile.list.am | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git a/Source/WebCore/GNUmakefile.list.am b/Source/WebCore/GNUmakefile.list.am -index 22956c7..443399d 100644 ---- a/Source/WebCore/GNUmakefile.list.am -+++ b/Source/WebCore/GNUmakefile.list.am -@@ -6267,6 +6267,13 @@ if TARGET_X11_OR_WAYLAND - platformgtk_sources += \ - Source/WebCore/platform/cairo/WidgetBackingStoreCairo.h \ - Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp -+if USE_EGL -+webcoregtk_sources += \ -+ Source/WebCore/platform/graphics/egl/GLContextEGL.cpp \ -+ Source/WebCore/platform/graphics/egl/GLContextEGL.h -+endif # END USE_EGL -+endif # END TARGET_X11_OR_WAYLAND -+ - if USE_OPENGL - platformgtk_sources += \ - Source/WebCore/platform/graphics/GLContext.cpp \ -@@ -6274,12 +6281,6 @@ platformgtk_sources += \ - Source/WebCore/platform/gtk/RedirectedXCompositeWindow.cpp \ - Source/WebCore/platform/gtk/RedirectedXCompositeWindow.h - endif # END USE_OPENGL --if USE_EGL --webcoregtk_sources += \ -- Source/WebCore/platform/graphics/egl/GLContextEGL.cpp \ -- Source/WebCore/platform/graphics/egl/GLContextEGL.h --endif # END USE_EGL --endif # END TARGET_X11_OR_WAYLAND - - if TARGET_WIN32 - webcore_sources += \ --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch b/mingw-w64-webkitgtk3/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch deleted file mode 100644 index 346c04fcb3..0000000000 --- a/mingw-w64-webkitgtk3/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch +++ /dev/null @@ -1,56 +0,0 @@ -From e7ce4cf2de87ec0cbe2d60738cd5ca9515d56c3a 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?= -Date: Tue, 14 Apr 2015 14:48:32 +0000 -Subject: [PATCH 18/20] Silence the warning about JSValue 'v' being - uninitialized - -This shouldn't really happen, as the enumeration only has two values, -but gcc doesn't seem to understand it. Probably because it's a template. -Also, 'v' is an object, so there's an uninitialized object that participates -in a '=' operator, so that could be the cause for concern as well. - -Fix this by completely separating two cases at the cost of code duplication. - -Otherwise one would get this: -../webkitgtk-2.4.8/Source/JavaScriptCore/runtime/JSObject.cpp: In member function 'JSC::ContiguousJSValues JSC::JSObject::genericConvertDoubleToContiguous(JSC::VM&) [with JSC::JSObject::DoubleToContiguousMode mode = (JSC::JSObject::DoubleToContiguousMode)0u; JSC::ContiguousJSValues = JSC::ContiguousData >]': -../webkitgtk-2.4.8/Source/JavaScriptCore/runtime/JSObject.cpp:822:17: warning: 'v' is used uninitialized in this function [-Wuninitialized] ---- - Source/JavaScriptCore/runtime/JSObject.cpp | 20 ++++++++++++-------- - 1 file changed, 12 insertions(+), 8 deletions(-) - -diff --git a/Source/JavaScriptCore/runtime/JSObject.cpp b/Source/JavaScriptCore/runtime/JSObject.cpp -index 6910b7e..5f52fe0 100644 ---- a/Source/JavaScriptCore/runtime/JSObject.cpp -+++ b/Source/JavaScriptCore/runtime/JSObject.cpp -@@ -821,15 +821,19 @@ ContiguousJSValues JSObject::genericConvertDoubleToContiguous(VM& vm) - } - JSValue v; - switch (mode) { -- case EncodeValueAsDouble: -- v = JSValue(JSValue::EncodeAsDouble, value); -- break; -- case RageConvertDoubleToValue: -- v = jsNumber(value); -- break; -+ case EncodeValueAsDouble: { -+ JSValue v = JSValue(JSValue::EncodeAsDouble, value); -+ ASSERT(v.isNumber()); -+ currentAsValue->setWithoutWriteBarrier(v); -+ break; -+ } -+ case RageConvertDoubleToValue: { -+ JSValue v = jsNumber(value); -+ ASSERT(v.isNumber()); -+ currentAsValue->setWithoutWriteBarrier(v); -+ break; -+ } - } -- ASSERT(v.isNumber()); -- currentAsValue->setWithoutWriteBarrier(v); - } - - setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateContiguous)); --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch b/mingw-w64-webkitgtk3/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch deleted file mode 100644 index a161926e73..0000000000 --- a/mingw-w64-webkitgtk3/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch +++ /dev/null @@ -1,188 +0,0 @@ -From 00333182aa303b29975ac3aa656eaf29c4d5d0e5 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?= -Date: Tue, 14 Apr 2015 14:51:22 +0000 -Subject: [PATCH 19/20] [W32] Update windowsVersion() and - osVersionForUAString() - -Add support for newer Windows versions to windowsVersion(), handle all -defined cases in osVersionForUAString(), avoiding warnings like -../webkitgtk-2.4.8/Source/WebCore/platform/win/SystemInfo.cpp: In function 'WTF::String WebCore::osVersionForUAString()': -../webkitgtk-2.4.8/Source/WebCore/platform/win/SystemInfo.cpp:94:12: warning: enumeration value 'WindowsCE5' not handled in switch [-Wswitch] -repeated for each unhandled value ---- - Source/WebCore/platform/win/SystemInfo.cpp | 107 +++++++++++++++++++++++++++-- - Source/WebCore/platform/win/SystemInfo.h | 9 +++ - 2 files changed, 111 insertions(+), 5 deletions(-) - -diff --git a/Source/WebCore/platform/win/SystemInfo.cpp b/Source/WebCore/platform/win/SystemInfo.cpp -index c9edca0..de5e8dc 100644 ---- a/Source/WebCore/platform/win/SystemInfo.cpp -+++ b/Source/WebCore/platform/win/SystemInfo.cpp -@@ -29,6 +29,10 @@ - #include - #include - -+#ifndef SM_SERVERR2 -+#define SM_SERVERR2 89 -+#endif -+ - namespace WebCore { - - WindowsVersion windowsVersion(int* major, int* minor) -@@ -65,15 +69,73 @@ WindowsVersion windowsVersion(int* major, int* minor) - version = (minorVersion == 10) ? Windows98 : WindowsME; - } else { - if (majorVersion == 5) { -- if (!minorVersion) -+ switch (minorVersion) { -+ default: -+ case 0: - version = Windows2000; -+ break; -+ case 1: -+ version = WindowsXP; -+ break; -+ case 2: -+ if (versionInfo.wProductType == VER_NT_WORKSTATION) -+ version = WindowsXP64; -+ else { -+ if (GetSystemMetrics(SM_SERVERR2) == 0) -+ version = WindowsServer2003; -+ else -+ version = WindowsServer2003R2; -+ } -+ break; -+ } -+ } else if (majorVersion == 6) { -+ if (versionInfo.wProductType == VER_NT_WORKSTATION) -+ switch (minorVersion) { -+ default: -+ case 0: -+ version = WindowsVista; -+ break; -+ case 1: -+ version = Windows7; -+ break; -+ case 2: -+ version = Windows8; -+ break; -+ case 3: -+ version = Windows81; -+ break; -+ } - else -- version = (minorVersion == 1) ? WindowsXP : WindowsServer2003; -- } else if (majorVersion >= 6) { -+ switch (minorVersion) { -+ default: -+ case 0: -+ version = WindowsServer2008; -+ break; -+ case 1: -+ version = WindowsServer2008R2; -+ break; -+ case 2: -+ version = WindowsServer2012; -+ break; -+ case 3: -+ version = WindowsServer2012R2; -+ break; -+ } -+ } else if (majorVersion == 10) { - if (versionInfo.wProductType == VER_NT_WORKSTATION) -- version = (majorVersion == 6 && !minorVersion) ? WindowsVista : Windows7; -+ switch (minorVersion) { -+ default: -+ case 0: -+ version = Windows10; -+ break; -+ } - else -- version = WindowsServer2008; -+ switch (minorVersion) { -+ default: -+ case 0: -+ version = WindowsServer2016; -+ break; -+ } - } else - version = (majorVersion == 4) ? WindowsNT4 : WindowsNT3; - } -@@ -97,6 +159,9 @@ static String osVersionForUAString() - case WindowsCE3: - return "Windows CE"; - case WindowsCE4: -+ case WindowsCE5: -+ case WindowsCE6: -+ case WindowsCE7: - return "Windows CE .NET"; - case Windows3_1: - return "Windows 3.1"; -@@ -106,8 +171,40 @@ static String osVersionForUAString() - return "Windows 98"; - case WindowsME: - return "Windows 98; Win 9x 4.90"; -+ case WindowsNT3: -+ return "WinNT3.0"; - case WindowsNT4: - return "WinNT4.0"; -+ case Windows2000: -+ return "Windows 2000"; -+ case WindowsXP: -+ return "Windows XP"; -+ case WindowsServer2003: -+ return "Windows Server 2003"; -+ case WindowsXP64: -+ return "Windows XP Professional x64 Edition"; -+ case WindowsServer2003R2: -+ return "Windows Server 2003 R2"; -+ case WindowsVista: -+ return "Windows Vista"; -+ case WindowsServer2008: -+ return "Windows Server 2008"; -+ case Windows7: -+ return "Windows 7"; -+ case WindowsServer2008R2: -+ return "Windows Server 2008 R2"; -+ case Windows8: -+ return "Windows 8"; -+ case WindowsServer2012: -+ return "Windows Server 2012"; -+ case Windows81: -+ return "Windows 8.1"; -+ case WindowsServer2012R2: -+ return "Windows Server 2012 R2"; -+ case Windows10: -+ return "Windows 10"; -+ case WindowsServer2016: -+ return "Windows Server 2016"; - } - - const char* familyName = (version >= WindowsNT3) ? "Windows NT " : "Windows CE "; -diff --git a/Source/WebCore/platform/win/SystemInfo.h b/Source/WebCore/platform/win/SystemInfo.h -index 2631ace..7bfb222 100644 ---- a/Source/WebCore/platform/win/SystemInfo.h -+++ b/Source/WebCore/platform/win/SystemInfo.h -@@ -54,9 +54,18 @@ enum WindowsVersion { - Windows2000, - WindowsXP, - WindowsServer2003, -+ WindowsXP64, -+ WindowsServer2003R2, - WindowsVista, - WindowsServer2008, - Windows7, -+ WindowsServer2008R2, -+ Windows8, -+ WindowsServer2012, -+ Windows81, -+ WindowsServer2012R2, -+ Windows10, -+ WindowsServer2016, - }; - - // If supplied, |major| and |minor| are set to the OSVERSIONINFO::dwMajorVersion --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/9999-ossource_win.cpp.all.patch b/mingw-w64-webkitgtk3/9999-ossource_win.cpp.all.patch deleted file mode 100644 index 8c2b507063..0000000000 --- a/mingw-w64-webkitgtk3/9999-ossource_win.cpp.all.patch +++ /dev/null @@ -1,64 +0,0 @@ ---- /dev/null 2013-12-01 23:52:53.623612457 +0100 -+++ webkitgtk-2.2.3/Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp 2013-12-04 23:17:33.367830698 +0100 -@@ -0,0 +1,58 @@ -+// -+// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+// -+ -+#include "compiler/osinclude.h" -+// -+// This file contains contains the window's specific functions -+// -+ -+#if !defined(ANGLE_OS_WIN) -+#error Trying to build a windows specific file in a non windows build. -+#endif -+ -+ -+// -+// Thread Local Storage Operations -+// -+OS_TLSIndex OS_AllocTLSIndex() -+{ -+ DWORD dwIndex = TlsAlloc(); -+ if (dwIndex == TLS_OUT_OF_INDEXES) { -+ assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage"); -+ return OS_INVALID_TLS_INDEX; -+ } -+ -+ return dwIndex; -+} -+ -+ -+bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) -+{ -+ if (nIndex == OS_INVALID_TLS_INDEX) { -+ assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); -+ return false; -+ } -+ -+ if (TlsSetValue(nIndex, lpvValue)) -+ return true; -+ else -+ return false; -+} -+ -+ -+bool OS_FreeTLSIndex(OS_TLSIndex nIndex) -+{ -+ if (nIndex == OS_INVALID_TLS_INDEX) { -+ assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); -+ return false; -+ } -+ -+ if (TlsFree(nIndex)) -+ return true; -+ else -+ return false; -+} -+ --- -1.8.5.3 - diff --git a/mingw-w64-webkitgtk3/PKGBUILD b/mingw-w64-webkitgtk3/PKGBUILD index c2d66bca3d..dc39a8c698 100644 --- a/mingw-w64-webkitgtk3/PKGBUILD +++ b/mingw-w64-webkitgtk3/PKGBUILD @@ -46,59 +46,17 @@ depends=("${MINGW_PACKAGE_PREFIX}-angleproject" "${MINGW_PACKAGE_PREFIX}-xz" ) source=(http://webkitgtk.org/releases/webkitgtk-${pkgver}.tar.xz - 0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch - 0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch - 0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch - 0003-W32-Use-confgured-Python-interpreter.all.patch - 0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch - 0005-Add-missing-gcc-asm-code-for-JIT.all.patch - 0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch - 0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch - 0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch - 0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch - 0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch - 0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch - 0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch - 0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch - 0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch - 0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch - 0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch - 0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch - 0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch - 0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch 0020-W32-Fixup-dummy-HeapStatistics-implementation.all.patch 0021-W32-Change-printf-format-atribute-to-gnu_printf-.all.patch 0022-gl-casts.patch - 0101-webkitgtk-2.4.3-gcc-asm.all.patch - 9999-ossource_win.cpp.all.patch) + 0101-webkitgtk-2.4.3-gcc-asm.all.patch) prepare() { cd ${srcdir}/${_realname}-${pkgver} - # patch -p1 -i ${srcdir}/0000-Unreviewed.-Fix-the-build-with-newer-GLib.all.patch - # patch -p1 -i ${srcdir}/0001-GTK-W32-Don-t-include-non-existing-WTF-WTFHeader.all.patch - # patch -p1 -i ${srcdir}/0002-GTK-W32-Allow-MinGW-GCC-to-use-GCC-asm-code-for-.all.patch - # patch -p1 -i ${srcdir}/0003-W32-Use-confgured-Python-interpreter.all.patch - # patch -p1 -i ${srcdir}/0004-GTK-W32-Harmonize-binary-semaphore-ifdefs.all.patch - # patch -p1 -i ${srcdir}/0005-Add-missing-gcc-asm-code-for-JIT.all.patch - # patch -p1 -i ${srcdir}/0006-Use-piOverTwoDouble-instead-of-M_PI_2.all.patch - # patch -p1 -i ${srcdir}/0007-GTK-W32-Add-missing-includes-to-FileSystemGtk.all.patch - # patch -p1 -i ${srcdir}/0008-W32-Move-enum-LineLayoutPath-in-RenderBlock.all.patch - # patch -p1 -i ${srcdir}/0009-W32-Fix-deleteObject-prototypte-fix-header-case.all.patch - # patch -p1 -i ${srcdir}/0010-ANGLE-W32-Don-t-hardcode-ossource_posix.cpp-in-t.all.patch - # patch -p1 -i ${srcdir}/0011-W32-Change-OpenGL-checks-to-work-on-W32-add-libo.all.patch - # patch -p1 -i ${srcdir}/0012-W32-GTK-Use-correct-.la-files-as-library-argumen.all.patch - # patch -p1 -i ${srcdir}/0013-Ensure-that-generator-scripts-get-CC-from-config.all.patch - # patch -p1 -i ${srcdir}/0014-W32-ANGLE-Silence-two-warnings-in-ANGLE.all.patch - # patch -p1 -i ${srcdir}/0015-W32-Try-to-use-pkg-config-to-detect-ICU-librarie.all.patch - # patch -p1 -i ${srcdir}/0016-W32-GTK-Work-around-name-conflicts-NO_ERROR.all.patch - # patch -p1 -i ${srcdir}/0017-W32-Also-use-GL-related-files-when-compiling-wit.all.patch - # patch -p1 -i ${srcdir}/0018-Silence-the-warning-about-JSValue-v-being-uninit.all.patch - # patch -p1 -i ${srcdir}/0019-W32-Update-windowsVersion-and-osVersionForUAStri.all.patch patch -p1 -i ${srcdir}/0020-W32-Fixup-dummy-HeapStatistics-implementation.all.patch patch -p1 -i ${srcdir}/0021-W32-Change-printf-format-atribute-to-gnu_printf-.all.patch patch -p1 -i ${srcdir}/0022-gl-casts.patch patch -p1 -i ${srcdir}/0101-webkitgtk-2.4.3-gcc-asm.all.patch - # patch -p1 -i ${srcdir}/9999-ossource_win.cpp.all.patch # autoreconf --verbose --install -I Source/autotools @@ -189,28 +147,7 @@ package_mingw-w64-x86_64-webkitgtk3() { } md5sums=('312fd29eb7f5970660c6a64b8bf8420e' - 'a5a9558ab8c206660b5e61d7a0805e78' - '372611b19ea2bd9652706cf6e4e5fdad' - '2e06d339b5216fb12bda8e986c48dc5c' - 'd1f88d7246a2049d2265fc1d9affa3cc' - '91642c1f7cb4da6c0147a60d20ffd2d4' - '0fd9213cb67b61a08e4e5c414a8b1199' - '1bb1387de684f4c11c1c07df95b8a994' - 'e6c793b87285873ac882dda8b80fce0d' - '0ec7e1c86d25b8d7623efa1b942dc2b1' - '1f2848a4e572f0be29e7b704dcc9c98b' - 'd2f03b506d15c6888d0a9269a7b6fd1b' - '6e754ac606c7ce7051b9da43283378e7' - '76e800fe615ff86a023ee17bed346ffe' - 'e9033b7ef619a4f36a77f0b89764adf3' - '62d764bb1e3a9cfe088e4cc01d862448' - 'c91d561284cf3ec11dccd0127fa4fc9b' - '2b5b009af10ac715011fdd194532c2f6' - '945f90dc7e42a5f05559bc0a7085c8a6' - 'da82f8f11315cfa5d1312988d283b6b1' - '1b4edfd688ef9bfb1b1bccab9b8922e8' '23cda04f494c76bd0eb8575b24b05f26' '36cfb85d11164a489ab9616035827760' '80c93a26be41e5eca4845c2c6fb78ca7' - 'e36f95bd1d0ffaf52046e584a7094b56' - '7e337b36b8e6e13416d7f49d372b57e7') + 'e36f95bd1d0ffaf52046e584a7094b56') From 8c0a119c600728c77f9759cdca14301648a6f99e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 13 Jul 2015 15:53:25 +0300 Subject: [PATCH 1275/2060] === Rebuild with GCC-5.1.0. Part VIII === --- mingw-w64-gimp/PKGBUILD | 20 ++++++++++++-------- mingw-w64-iso-codes/PKGBUILD | 8 ++++---- mingw-w64-libglade/PKGBUILD | 18 +++++++++--------- mingw-w64-pygobject/PKGBUILD | 23 +++++++++++------------ mingw-w64-pygobject2/PKGBUILD | 23 +++++++++++------------ mingw-w64-python2-pygtk/PKGBUILD | 17 ++++++++--------- 6 files changed, 55 insertions(+), 54 deletions(-) diff --git a/mingw-w64-gimp/PKGBUILD b/mingw-w64-gimp/PKGBUILD index aa6647d62f..b6bdd0f08e 100644 --- a/mingw-w64-gimp/PKGBUILD +++ b/mingw-w64-gimp/PKGBUILD @@ -3,15 +3,15 @@ _realname=gimp pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.8.14 -pkgrel=4 +pkgrel=5 pkgdesc="GNU Image Manipulation Program (mingw-w64)" arch=('any') url="http://www.gimp.org/" license=('GPL' 'LGPL') -depends=("${MINGW_PACKAGE_PREFIX}-babl-git" +depends=("${MINGW_PACKAGE_PREFIX}-babl" "${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-dbus-glib" - "${MINGW_PACKAGE_PREFIX}-gegl-git" + "${MINGW_PACKAGE_PREFIX}-gegl" "${MINGW_PACKAGE_PREFIX}-ghostscript" "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" "${MINGW_PACKAGE_PREFIX}-jasper" @@ -26,8 +26,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-babl-git" "${MINGW_PACKAGE_PREFIX}-webkitgtk2" "${MINGW_PACKAGE_PREFIX}-xpm-nox" ) -makedepends=('intltool' - "${MINGW_PACKAGE_PREFIX}-iso-codes") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-iso-codes" + "intltool") options=('strip' 'makeflags') install=gimp-${CARCH}.install source=(http://download.gimp.org/pub/gimp/v${pkgver%.*}/${_realname}-${pkgver}.tar.bz2 @@ -59,10 +60,13 @@ prepare() { } build() { - cd "${srcdir}/${_realname}-${pkgver}" + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} + cd build-${MINGW_CHOST} PYTHON=${MINGW_PREFIX}/bin/python2 \ - ./configure --prefix=${MINGW_PREFIX} \ + ./configure \ + --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -82,7 +86,7 @@ build() { } package() { - cd "${srcdir}/${_realname}-${pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install ln -s gimptool-2.0 "${pkgdir}${MINGW_PREFIX}/bin/gimptool.exe" diff --git a/mingw-w64-iso-codes/PKGBUILD b/mingw-w64-iso-codes/PKGBUILD index 9970e79bc6..003ed1dc88 100644 --- a/mingw-w64-iso-codes/PKGBUILD +++ b/mingw-w64-iso-codes/PKGBUILD @@ -2,14 +2,14 @@ _realname=iso-codes pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.57 +pkgver=3.59 pkgrel=1 pkgdesc="Lists of the country, language, and currency names (mingw-w64)" arch=('any') license=('LGPL') url="http://pkg-isocodes.alioth.debian.org/" -source=(http://pkg-isocodes.alioth.debian.org/downloads/${_realname}-$pkgver.tar.xz{,.sig}) -md5sums=('ea67bb8f94063816d96c972bd00f7720' +source=(http://pkg-isocodes.alioth.debian.org/downloads/${_realname}-${pkgver}.tar.xz{,.sig}) +md5sums=('f16ea4bf101c226d6c8a253d39a9d23b' 'SKIP') build() { @@ -24,5 +24,5 @@ build() { package() { cd "${srcdir}/${_realname}-${pkgver}" - make DESTDIR="$pkgdir" pkgconfigdir=${MINGW_PREFIX}/lib/pkgconfig install + make DESTDIR="${pkgdir}" pkgconfigdir=${MINGW_PREFIX}/lib/pkgconfig install } diff --git a/mingw-w64-libglade/PKGBUILD b/mingw-w64-libglade/PKGBUILD index 7f50c90d04..6062fd01bc 100644 --- a/mingw-w64-libglade/PKGBUILD +++ b/mingw-w64-libglade/PKGBUILD @@ -3,7 +3,7 @@ _realname=libglade pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.6.4 -pkgrel=3 +pkgrel=4 pkgdesc="Allows you to load glade interface files in a program at runtime (mingw-w64)" arch=(any) url="http://www.gnome.org" @@ -26,17 +26,17 @@ md5sums=('d1776b40f4e166b5e9c107f1c8fe4139' prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i "$srcdir"/libglade-2.0.1-nowarning.patch - patch -p1 -i "$srcdir"/libglade-link-against-gmodule.patch - patch -p1 -i "$srcdir"/libglade-secondary.patch + patch -p1 -i "${srcdir}"/libglade-2.0.1-nowarning.patch + patch -p1 -i "${srcdir}"/libglade-link-against-gmodule.patch + patch -p1 -i "${srcdir}"/libglade-secondary.patch WANT_AUTOMAKE=latest autoreconf -fi } build() { - [[ -d "$srcdir/build-${MINGW_CHOST}" ]] && rm -rf "$srcdir/build-${MINGW_CHOST}" - cp -r "$srcdir/${_realname}-${pkgver}" "$srcdir/build-${MINGW_CHOST}" - cd "$srcdir/build-${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" PYTHON=${MINGW_PREFIX}/bin/python2 \ ./configure \ @@ -49,7 +49,7 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install -j1 + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install -j1 install -m755 libglade-convert "${pkgdir}${MINGW_PREFIX}/bin/" } diff --git a/mingw-w64-pygobject/PKGBUILD b/mingw-w64-pygobject/PKGBUILD index 0e9e4381af..860ca250a6 100644 --- a/mingw-w64-pygobject/PKGBUILD +++ b/mingw-w64-pygobject/PKGBUILD @@ -2,7 +2,7 @@ _realname=pygobject pkgname=("${MINGW_PACKAGE_PREFIX}-python2-gobject" "${MINGW_PACKAGE_PREFIX}-python3-gobject" "${MINGW_PACKAGE_PREFIX}-pygobject-devel") -pkgver=3.16.0 +pkgver=3.16.2 pkgrel=1 pkgdesc="Allows you to load glade interface files in a program at runtime (mingw-w64)" arch=(any) @@ -14,7 +14,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-gnome-common") options=('staticlibs' 'strip') source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) -md5sums=('fedf819b15300c3898b3da9b32a1e719') +md5sums=('8a3720efa69dd2d520e0b21b5d9e7c19') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -23,22 +23,21 @@ prepare() { } build() { - cd "$srcdir" - rm -rf python{2,3}-build mkdir python{2,3}-build devel for builddir in python{2,3}-build; do - #cp -r ${_realname}-$pkgver $builddir - pushd ${builddir} - PYTHON=${MINGW_PREFIX}/bin/${builddir%-build} \ - ../${_realname}-$pkgver/configure --prefix=${MINGW_PREFIX} \ + #cp -r ${_realname}-${pkgver} ${builddir} + pushd ${builddir} > /dev/null + PYTHON=${MINGW_PREFIX}/bin/${builddir%-build} \ + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --disable-silent-rules make VERBOSE=1 - popd + popd > /dev/null done } @@ -47,12 +46,12 @@ package_python2-gobject() { depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-python2-cairo" "${MINGW_PACKAGE_PREFIX}-libffi" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection-runtime" "${MINGW_PACKAGE_PREFIX}-pygobject-devel=${pkgver}") cd python2-build make DESTDIR="${pkgdir}" install - mv "${pkgdir}${MINGW_PREFIX}"/{include,lib/pkgconfig} "$srcdir/devel" + mv "${pkgdir}${MINGW_PREFIX}"/{include,lib/pkgconfig} "${srcdir}/devel" } package_python3-gobject() { @@ -60,7 +59,7 @@ package_python3-gobject() { depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-python3-cairo" "${MINGW_PACKAGE_PREFIX}-libffi" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection-runtime" "${MINGW_PACKAGE_PREFIX}-pygobject-devel=${pkgver}") cd python3-build diff --git a/mingw-w64-pygobject2/PKGBUILD b/mingw-w64-pygobject2/PKGBUILD index dce4cf9851..84220efc5e 100644 --- a/mingw-w64-pygobject2/PKGBUILD +++ b/mingw-w64-pygobject2/PKGBUILD @@ -3,12 +3,11 @@ _realname=pygobject pkgname=("${MINGW_PACKAGE_PREFIX}-python2-gobject2" "${MINGW_PACKAGE_PREFIX}-python3-gobject2" "${MINGW_PACKAGE_PREFIX}-pygobject2-devel") pkgver=2.28.6 -pkgrel=2 +pkgrel=3 pkgdesc="Allows you to load glade interface files in a program at runtime (mingw-w64)" arch=(any) url="http://www.pygtk.org" license=('LGPL') -groups=("${MINGW_PACKAGE_PREFIX}") makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-gnome-common") options=('staticlibs' 'strip') source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/${pkgver%.*}/${_realname}-${pkgver}.tar.xz @@ -23,7 +22,6 @@ prepare() { patch -p1 -i ${srcdir}/win32-fix.patch patch -p1 -i ${srcdir}/python-m4.patch WANT_AUTOMAKE=latest autoreconf -fi - #WANT_AUTOMAKE=latest ./autogen.sh } build() { @@ -32,25 +30,26 @@ build() { CFLAGS+=" -Wno-error=format" for builddir in python{2,3}-build; do - pushd ${builddir} - PYTHON=${MINGW_PREFIX}/bin/${builddir%-build} \ - ../${_realname}-$pkgver/configure --prefix=${MINGW_PREFIX} \ + pushd ${builddir} > /dev/null + PYTHON=${MINGW_PREFIX}/bin/${builddir%-build} \ + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --disable-silent-rules \ --disable-introspection make VERBOSE=1 - popd + popd > /dev/null done } check() { for builddir in python{2,3}-build; do - pushd ${srcdir}/${builddir} - PYTHON=${MINGW_PREFIX}/bin/${builddir%-build} \ + pushd ${srcdir}/${builddir} > /dev/null + PYTHON=${MINGW_PREFIX}/bin/${builddir%-build} \ make check - popd + popd > /dev/null done } @@ -58,7 +57,7 @@ package_python2-gobject2() { pkgdesc="Python 2 bindings for GObject2 (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libffi" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection-runtime" "${MINGW_PACKAGE_PREFIX}-pygobject2-devel=${pkgver}") cd python2-build @@ -82,7 +81,7 @@ package_python3-gobject2() { pkgdesc="Python 3 bindings for GObject2 (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libffi" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection-runtime" "${MINGW_PACKAGE_PREFIX}-pygobject2-devel=${pkgver}") cd python3-build diff --git a/mingw-w64-python2-pygtk/PKGBUILD b/mingw-w64-python2-pygtk/PKGBUILD index feb1c5865a..e65b7cea10 100644 --- a/mingw-w64-python2-pygtk/PKGBUILD +++ b/mingw-w64-python2-pygtk/PKGBUILD @@ -3,9 +3,9 @@ _realname=pygtk pkgname="${MINGW_PACKAGE_PREFIX}-python2-pygtk" pkgver=2.24.0 -pkgrel=3 +pkgrel=4 pkgdesc="Python bindings for the GTK widget set (mingw-w64)" -arch=(any) +arch=('any') url="http://www.pygtk.org" license=('LGPL') depends=("${MINGW_PACKAGE_PREFIX}-python2-cairo" @@ -36,24 +36,23 @@ prepare() { } build() { - cd "$srcdir" - rm -rf python2-build mkdir python2-build - #cp -r ${_realname}-$pkgver $builddir - pushd python2-build + #cp -r ${_realname}-${pkgver} ${builddir} + pushd python2-build > /dev/null PYTHON=${MINGW_PREFIX}/bin/python2 \ - ../${_realname}-$pkgver/configure --prefix=${MINGW_PREFIX} \ + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} make VERBOSE=1 - popd + popd > /dev/null } package() { cd python2-build make DESTDIR="${pkgdir}" install - install -m644 ${srcdir}/${_realname}-$pkgver/gtk/gtk-extrafuncs.defs "${pkgdir}${MINGW_PREFIX}/share/pygtk/2.0/defs/" + install -m644 ${srcdir}/${_realname}-${pkgver}/gtk/gtk-extrafuncs.defs "${pkgdir}${MINGW_PREFIX}/share/pygtk/2.0/defs/" sed -i -e 's#env python$#env python2#' "${pkgdir}${MINGW_PREFIX}"/lib/pygtk/2.0/{,demos/}*.py } From 2bf5cd0a3ade3a0aed054dd9111e6e84bb6d2d6f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 13 Jul 2015 23:39:11 +0100 Subject: [PATCH 1276/2060] firefox: More WIP --- .../0001-Allow-MSYS2-shell.patch | 12 ++ .../0001-Support-MSYS2-as-build-machine.patch | 81 ---------- mingw-w64-firefox/0002-Allow-MSYS2-make.patch | 13 ++ .../0003-Use-PYTHON-env-var.patch | 12 ++ .../0004-Allow-MSYS2-python.patch | 143 ++++++++++++++++++ .../0005-Allow-mingw-w64-python.patch | 72 +++++++++ mingw-w64-firefox/PKGBUILD | 78 +++++++--- mingw-w64-firefox/debugging.patch | 20 +++ 8 files changed, 333 insertions(+), 98 deletions(-) create mode 100644 mingw-w64-firefox/0001-Allow-MSYS2-shell.patch delete mode 100644 mingw-w64-firefox/0001-Support-MSYS2-as-build-machine.patch create mode 100644 mingw-w64-firefox/0002-Allow-MSYS2-make.patch create mode 100644 mingw-w64-firefox/0003-Use-PYTHON-env-var.patch create mode 100644 mingw-w64-firefox/0004-Allow-MSYS2-python.patch create mode 100644 mingw-w64-firefox/0005-Allow-mingw-w64-python.patch create mode 100644 mingw-w64-firefox/debugging.patch diff --git a/mingw-w64-firefox/0001-Allow-MSYS2-shell.patch b/mingw-w64-firefox/0001-Allow-MSYS2-shell.patch new file mode 100644 index 0000000000..4c526b4c80 --- /dev/null +++ b/mingw-w64-firefox/0001-Allow-MSYS2-shell.patch @@ -0,0 +1,12 @@ +diff -urN a/python/mach/mach/mixin/process.py b/python/mach/mach/mixin/process.py +--- a/python/mach/mach/mixin/process.py 2015-07-13 21:48:50.238620500 +0100 ++++ b/python/mach/mach/mixin/process.py 2015-07-13 21:59:40.972145000 +0100 +@@ -30,7 +30,7 @@ + + _in_msys = False + +-if os.environ.get('MSYSTEM', None) == 'MINGW32': ++if os.environ.get('MSYSTEM', None) in ['MINGW32', 'MINGW64', 'MSYS']: + _in_msys = True + + if not _current_shell.lower().endswith('.exe'): diff --git a/mingw-w64-firefox/0001-Support-MSYS2-as-build-machine.patch b/mingw-w64-firefox/0001-Support-MSYS2-as-build-machine.patch deleted file mode 100644 index 36bbbddce0..0000000000 --- a/mingw-w64-firefox/0001-Support-MSYS2-as-build-machine.patch +++ /dev/null @@ -1,81 +0,0 @@ -diff -urN firefox-38.0.5.orig/config/baseconfig.mk firefox-38.0.5/config/baseconfig.mk ---- firefox-38.0.5.orig/config/baseconfig.mk 2015-05-25 22:28:44.000000000 +0100 -+++ firefox-38.0.5/config/baseconfig.mk 2015-06-28 23:29:12.430351300 +0100 -@@ -31,9 +31,6 @@ - $(error Pymake is no longer supported. Please upgrade to MozillaBuild 1.9 or newer and build with 'mach' or 'mozmake') - endif - --ifeq (a,$(firstword a$(subst /, ,$(abspath .)))) --$(error MSYS make is not supported) --endif - # 4.0- happens to be greater than 4.0, lower than the mozmake version, - # and lower than 4.0.1 or 4.1, whatever next version of gnu make will - # be released. -diff -urN firefox-38.0.5.orig/mach firefox-38.0.5/mach ---- firefox-38.0.5.orig/mach 2015-05-25 22:28:46.000000000 +0100 -+++ firefox-38.0.5/mach 2015-06-28 23:27:16.616644800 +0100 -@@ -6,7 +6,7 @@ - # The beginning of this script is both valid shell and valid python, - # such that the script starts with the shell and is reexecuted with - # the right python. --'''which' python2.7 > /dev/null && exec python2.7 "$0" "$@" || exec python "$0" "$@" -+'''which' ${PYTHON} > /dev/null && exec ${PYTHON} "$0" "$@" || exec python2.7 "$0" "$@" || exec python "$0" "$@" - ''' - - from __future__ import print_function, unicode_literals -diff -urN firefox-38.0.5.orig/python/virtualenv/virtualenv.py firefox-38.0.5/python/virtualenv/virtualenv.py ---- firefox-38.0.5.orig/python/virtualenv/virtualenv.py 2015-05-25 22:28:56.000000000 +0100 -+++ firefox-38.0.5/python/virtualenv/virtualenv.py 2015-07-03 18:05:22.708700600 +0100 -@@ -45,6 +45,7 @@ - is_pypy = hasattr(sys, 'pypy_version_info') - is_win = (sys.platform == 'win32') - is_cygwin = (sys.platform == 'cygwin') -+is_msys = (sys.platform == 'msys') - is_darwin = (sys.platform == 'darwin') - abiflags = getattr(sys, 'abiflags', '') - -@@ -1276,7 +1277,7 @@ - executable = sys.executable - shutil.copyfile(executable, py_executable) - make_exe(py_executable) -- if is_win or is_cygwin: -+ if is_win or is_cygwin or is_msys: - pythonw = os.path.join(os.path.dirname(sys.executable), 'pythonw.exe') - if os.path.exists(pythonw): - logger.info('Also created pythonw.exe') -@@ -1291,10 +1292,18 @@ - os.unlink(python_d_dest) - # we need to copy the DLL to enforce that windows will load the correct one. - # may not exist if we are cygwin. -- py_executable_dll = 'python%s%s.dll' % ( -- sys.version_info[0], sys.version_info[1]) -- py_executable_dll_d = 'python%s%s_d.dll' % ( -- sys.version_info[0], sys.version_info[1]) -+ cygwin_msys_dll = None -+ python_dll_prefix = '' -+ if is_cygwin: -+ cygwin_msys_dll = 'cygwin1.dll' -+ python_dll_prefix = 'cygwin-' -+ if is_msys: -+ cygwin_msys_dll = 'msys-2.0.dll' -+ python_dll_prefix = 'msys-' -+ py_executable_dll = '%spython%s%s.dll' % ( -+ python_dll_prefix, sys.version_info[0], sys.version_info[1]) -+ py_executable_dll_d = '%spython%s%s_d.dll' % ( -+ python_dll_prefix, sys.version_info[0], sys.version_info[1]) - pythondll = os.path.join(os.path.dirname(sys.executable), py_executable_dll) - pythondll_d = os.path.join(os.path.dirname(sys.executable), py_executable_dll_d) - pythondll_d_dest = os.path.join(os.path.dirname(py_executable), py_executable_dll_d) -@@ -1307,6 +1316,12 @@ - elif os.path.exists(pythondll_d_dest): - logger.info('Removed %s as the source does not exist' % pythondll_d_dest) - os.unlink(pythondll_d_dest) -+ if cygwin_msys_dll: -+ cygwin_msys_dll_dest = os.path.join(os.path.dirname(py_executable), cygwin_msys_dll) -+ cygwin_msys_dll = os.path.join(os.path.dirname(sys.executable), cygwin_msys_dll) -+ if os.path.exists(cygwin_msys_dll): -+ logger.info('Also copied Cygwin/MSYS2 core system dll %s' % cygwin_msys_dll) -+ shutil.copyfile(cygwin_msys_dll, cygwin_msys_dll_dest) - if is_pypy: - # make a symlink python --> pypy-c - python_executable = os.path.join(os.path.dirname(py_executable), 'python') diff --git a/mingw-w64-firefox/0002-Allow-MSYS2-make.patch b/mingw-w64-firefox/0002-Allow-MSYS2-make.patch new file mode 100644 index 0000000000..91614184be --- /dev/null +++ b/mingw-w64-firefox/0002-Allow-MSYS2-make.patch @@ -0,0 +1,13 @@ +diff -urN a/config/baseconfig.mk b/config/baseconfig.mk +--- a/config/baseconfig.mk 2015-07-13 22:05:44.022749700 +0100 ++++ b/config/baseconfig.mk 2015-07-13 22:16:09.001405100 +0100 +@@ -31,9 +31,6 @@ + $(error Pymake is no longer supported. Please upgrade to MozillaBuild 1.9 or newer and build with 'mach' or 'mozmake') + endif + +-ifeq (a,$(firstword a$(subst /, ,$(abspath .)))) +-$(error MSYS make is not supported) +-endif + # 4.0- happens to be greater than 4.0, lower than the mozmake version, + # and lower than 4.0.1 or 4.1, whatever next version of gnu make will + # be released. diff --git a/mingw-w64-firefox/0003-Use-PYTHON-env-var.patch b/mingw-w64-firefox/0003-Use-PYTHON-env-var.patch new file mode 100644 index 0000000000..5ccc78a3b2 --- /dev/null +++ b/mingw-w64-firefox/0003-Use-PYTHON-env-var.patch @@ -0,0 +1,12 @@ +diff -urN a/mach b/mach +--- a/mach 2015-07-13 22:22:35.106011700 +0100 ++++ b/mach 2015-07-13 22:31:13.115823900 +0100 +@@ -6,7 +6,7 @@ + # The beginning of this script is both valid shell and valid python, + # such that the script starts with the shell and is reexecuted with + # the right python. +-'''which' python2.7 > /dev/null && exec python2.7 "$0" "$@" || exec python "$0" "$@" ++'''which' ${PYTHON} > /dev/null && exec ${PYTHON} "$0" "$@" || exec python2.7 "$0" "$@" || exec python "$0" "$@" + ''' + + from __future__ import print_function, unicode_literals diff --git a/mingw-w64-firefox/0004-Allow-MSYS2-python.patch b/mingw-w64-firefox/0004-Allow-MSYS2-python.patch new file mode 100644 index 0000000000..809104382d --- /dev/null +++ b/mingw-w64-firefox/0004-Allow-MSYS2-python.patch @@ -0,0 +1,143 @@ +diff -urN a/build/autoconf/config.status.m4 b/build/autoconf/config.status.m4 +--- a/build/autoconf/config.status.m4 2015-07-13 22:34:59.729176500 +0100 ++++ b/build/autoconf/config.status.m4 2015-07-13 22:47:20.516343000 +0100 +@@ -87,7 +87,6 @@ + case "$host_os" in + mingw*) + WIN_TOP_SRC=`cd $srcdir; pwd -W` +- encoding=mbcs + ;; + esac + AC_SUBST(WIN_TOP_SRC) +diff -urN a/build/autoconf/python-virtualenv.m4 b/build/autoconf/python-virtualenv.m4 +--- a/build/autoconf/python-virtualenv.m4 2015-07-13 22:34:59.729176500 +0100 ++++ b/build/autoconf/python-virtualenv.m4 2015-07-13 22:47:20.520343200 +0100 +@@ -56,14 +56,7 @@ + $_virtualenv_topsrcdir $MOZ_BUILD_ROOT $MOZ_BUILD_ROOT/_virtualenv \ + $_virtualenv_topsrcdir/build/virtualenv_packages.txt || exit 1 + +- case "$host_os" in +- mingw*) +- PYTHON=`cd $MOZ_BUILD_ROOT && pwd -W`/_virtualenv/Scripts/python.exe +- ;; +- *) +- PYTHON=$MOZ_BUILD_ROOT/_virtualenv/bin/python +- ;; +- esac ++ PYTHON=$MOZ_BUILD_ROOT/_virtualenv/bin/python + fi + + AC_SUBST(PYTHON) +diff -urN a/configure b/configure +--- a/configure 2015-07-13 22:37:44.550806000 +0100 ++++ b/configure 2015-07-13 22:47:20.534344000 +0100 +@@ -1367,7 +1367,7 @@ + exit 1 + break + fi +-MOZ_BUILD_ROOT=`pwd -W 2>/dev/null || pwd` ++MOZ_BUILD_ROOT=`pwd` + + + +@@ -1474,14 +1474,7 @@ + $_virtualenv_topsrcdir $MOZ_BUILD_ROOT $MOZ_BUILD_ROOT/_virtualenv \ + $_virtualenv_topsrcdir/build/virtualenv_packages.txt || exit 1 + +- case "$host_os" in +- mingw*) +- PYTHON=`cd $MOZ_BUILD_ROOT && pwd -W`/_virtualenv/Scripts/python.exe +- ;; +- *) +- PYTHON=$MOZ_BUILD_ROOT/_virtualenv/bin/python +- ;; +- esac ++ PYTHON=$MOZ_BUILD_ROOT/_virtualenv/bin/python + fi + + +diff -urN a/configure.in b/configure.in +--- a/configure.in 2015-07-13 22:36:56.161466600 +0100 ++++ b/configure.in 2015-07-13 22:47:20.772353700 +0100 +@@ -133,7 +133,7 @@ + exit 1 + break + fi +-MOZ_BUILD_ROOT=`pwd -W 2>/dev/null || pwd` ++MOZ_BUILD_ROOT=`pwd` + + MOZ_PYTHON + +diff -urN a/js/src/configure b/js/src/configure +--- a/js/src/configure 2015-07-13 22:38:51.104908900 +0100 ++++ b/js/src/configure 2015-07-13 22:47:20.782353700 +0100 +@@ -1061,7 +1061,7 @@ + exit 1 + break + fi +-MOZ_BUILD_ROOT=`pwd -W 2>/dev/null || pwd` ++MOZ_BUILD_ROOT=`pwd` + + + # Check whether --with-dist-dir or --without-dist-dir was given. +@@ -4404,14 +4404,7 @@ + $_virtualenv_topsrcdir $MOZ_BUILD_ROOT $MOZ_BUILD_ROOT/_virtualenv \ + $_virtualenv_topsrcdir/build/virtualenv_packages.txt || exit 1 + +- case "$host_os" in +- mingw*) +- PYTHON=`cd $MOZ_BUILD_ROOT && pwd -W`/_virtualenv/Scripts/python.exe +- ;; +- *) +- PYTHON=$MOZ_BUILD_ROOT/_virtualenv/bin/python +- ;; +- esac ++ PYTHON=$MOZ_BUILD_ROOT/_virtualenv/bin/python + fi + + +diff -urN a/python/virtualenv/virtualenv.py b/python/virtualenv/virtualenv.py +--- a/python/virtualenv/virtualenv.py 2015-07-13 22:35:33.117337000 +0100 ++++ b/python/virtualenv/virtualenv.py 2015-07-13 22:47:20.797353800 +0100 +@@ -45,6 +45,7 @@ + is_pypy = hasattr(sys, 'pypy_version_info') + is_win = (sys.platform == 'win32') + is_cygwin = (sys.platform == 'cygwin') ++is_msys = (sys.platform == 'msys') + is_darwin = (sys.platform == 'darwin') + abiflags = getattr(sys, 'abiflags', '') + +@@ -1276,7 +1277,7 @@ + executable = sys.executable + shutil.copyfile(executable, py_executable) + make_exe(py_executable) +- if is_win or is_cygwin: ++ if is_win or is_cygwin or is_msys: + pythonw = os.path.join(os.path.dirname(sys.executable), 'pythonw.exe') + if os.path.exists(pythonw): + logger.info('Also created pythonw.exe') +@@ -1290,11 +1291,19 @@ + logger.info('Removed python_d.exe as it is no longer at the source') + os.unlink(python_d_dest) + # we need to copy the DLL to enforce that windows will load the correct one. +- # may not exist if we are cygwin. +- py_executable_dll = 'python%s%s.dll' % ( +- sys.version_info[0], sys.version_info[1]) +- py_executable_dll_d = 'python%s%s_d.dll' % ( +- sys.version_info[0], sys.version_info[1]) ++ try: ++ # Cygwin, msys2 and MSYS2's mingw-w64-{i686,x86-64}-python all support this. ++ # .. disabled for now on msys2 as there's a dll address overlap issue: ++ # 0 [main] python 824 child_info_fork::abort: address space needed by 'msys-python2.7.dll' (0x6F0000) is already occupied ++ import sysconfig ++ py_executable_dll = 'unused' if is_msys else sysconfig.get_config_var('DLLLIBRARY') ++ py_executable_dll_d = 'unused' ++ except: ++ # .. but CPython doesn't. ++ py_executable_dll = 'python%s%s.dll' % ( ++ sys.version_info[0], sys.version_info[1]) ++ py_executable_dll_d = 'python%s%s_d.dll' % ( ++ sys.version_info[0], sys.version_info[1]) + pythondll = os.path.join(os.path.dirname(sys.executable), py_executable_dll) + pythondll_d = os.path.join(os.path.dirname(sys.executable), py_executable_dll_d) + pythondll_d_dest = os.path.join(os.path.dirname(py_executable), py_executable_dll_d) diff --git a/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch b/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch new file mode 100644 index 0000000000..c3ed58f0ce --- /dev/null +++ b/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch @@ -0,0 +1,72 @@ +diff -urN a/python/virtualenv/virtualenv.py b/python/virtualenv/virtualenv.py +--- a/python/virtualenv/virtualenv.py 2015-07-13 22:51:52.604249800 +0100 ++++ b/python/virtualenv/virtualenv.py 2015-07-13 23:03:40.898855100 +0100 +@@ -41,6 +41,7 @@ + join = os.path.join + py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1]) + ++is_mingw = (sys.platform == 'win32' and 'GCC' in sys.version) + is_jython = sys.platform.startswith('java') + is_pypy = hasattr(sys, 'pypy_version_info') + is_win = (sys.platform == 'win32') +@@ -65,7 +66,7 @@ + + # Return a mapping of version -> Python executable + # Only provided for Windows, where the information in the registry is used +-if not is_win: ++if not is_win or is_mingw: + def get_installed_pythons(): + return {} + else: +@@ -113,6 +114,14 @@ + 're', 'sre', 'sre_parse', 'sre_constants', 'sre_compile', + 'zlib'] + ++if is_mingw: ++ REQUIRED_MODULES.extend(['functools', '__future__', 'logging', 'traceback', ++ 'weakref', 'collections', 'keyword', 'heapq', ++ 'atexit', 'optparse', 'textwrap', 'string', ++ 'contextlib', 'shutil', 'subprocess', 'threading', ++ 'tarfile', 'struct', 'copy', 'zipfile', 'io', ++ 'glob']) ++ + REQUIRED_FILES = ['lib-dynload', 'config'] + + majver, minver = sys.version_info[:2] +@@ -953,7 +962,9 @@ + logger.start_progress('Installing %s...' % (', '.join(project_names))) + logger.indent += 2 + try: +- call_subprocess(cmd, show_stdout=False, ++ print('cmd is %s' % cmd) ++ print('PYTHONPATH="%s" PIP_FIND_LINKS="%s" PIP_USE_WHEEL=1 PIP_PRE=1 PIP_NO_INDEX=1' % (pythonpath, findlinks)) ++ call_subprocess(cmd, show_stdout=True, + extra_env = { + 'PYTHONPATH': pythonpath, + 'PIP_FIND_LINKS': findlinks, +@@ -991,6 +1002,7 @@ + to_install = ['setuptools'] + if not no_pip: + to_install.append('pip') ++ print('install_wheel to_install=%s, py_executable=%s, search_dirs=%s' % (to_install, py_executable, search_dirs)) + install_wheel(to_install, py_executable, search_dirs) + + install_activate(home_dir, bin_dir, prompt) +@@ -1003,7 +1015,7 @@ + where scripts go, etc)""" + # XXX: We'd use distutils.sysconfig.get_python_inc/lib but its + # prefix arg is broken: http://bugs.python.org/issue3386 +- if is_win: ++ if is_win and not is_mingw: + # Windows has lots of problems with executables with spaces in + # the name; this function will remove them (using the ~1 + # format): +@@ -1035,7 +1047,7 @@ + lib_dir = home_dir + inc_dir = join(home_dir, 'include') + bin_dir = join(home_dir, 'bin') +- elif not is_win: ++ elif not is_win or is_mingw: + lib_dir = join(home_dir, 'lib', py_version) + multiarch_exec = '/usr/bin/multiarch-platform' + if is_executable_file(multiarch_exec): diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index 54dece7e5d..e75c55ea82 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -1,8 +1,12 @@ # Maintainer: Ray Donnelly +# pushd /c/repo/mingw-w64-firefox/src +# PATH=/mingw64/bin:$PATH /mingw64/bin/python2.7.exe $PWD/firefox-39.0/python/virtualenv/virtualenv.py /tmp/test +# PATH=/mingw64/bin:$PATH PYTHONPATH="C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support/setuptools-11.0-py2.py3-none-any.whl;C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support/pip-6.0.6-py2.py3-none-any.whl" PIP_FIND_LINKS=". C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support" PIP_USE_WHEEL=1 PIP_PRE=1 PIP_NO_INDEX=1 C:/msys64t/tmp/test/bin/python2.7.exe -c 'import sys, pip; sys.exit(pip.main(["install", "--ignore-installed"] + sys.argv[1:]))' setuptools pip + _realname=firefox pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=38.0.5 +pkgver=39.0 pkgrel=1 pkgdesc='Mozilla Firefox (mingw-w64)' groups=("${MINGW_PACKAGE_PREFIX}") @@ -10,20 +14,31 @@ arch=('any') url='https://www.mozilla.org/firefox/' license=('MPL2') source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/source/${_realname}-${pkgver}.source.tar.bz2" - "0001-Support-MSYS2-as-build-machine.patch" - ".mozconfig.x86_64" - ".mozconfig.i686" + "0001-Allow-MSYS2-shell.patch" + "0002-Allow-MSYS2-make.patch" + "0003-Use-PYTHON-env-var.patch" + "0004-Allow-MSYS2-python.patch" + "0005-Allow-mingw-w64-python.patch" + "debugging.patch" + "mozconfig.x86_64" + "mozconfig.i686" "config.sub" "config.guess") noextract=("${_realname}-${pkgver}.source.tar.bz2") -sha1sums=('74da3e225d5b542e784549be63475802c45e1b02' - 'dd46cd0b491d8f1f3103bb9557f788c3ce041499' - '9405456c0383b22255a494e0131cd3ea8f33b15d' - 'dd68b964cceb9dbd632b24659871093803522f6e' +sha1sums=('32785daee7ddb9da8d7509ef095258fc58fe838e' + '1c0810fbfd6f336eec81e236c89c6c9ca0e79290' + 'c269337da604ab047de5dea088dbbe8f547dfbea' + '2fd8904f036d2515e314b3d7510d8358add298d2' + 'e3079d2151b89145134bd70d5b66bd772e5d56e6' + 'ea32e4d47b46cb85173e686a4609e32e97f8d957' + '60d0ff16614804a1408feeed81b4a77a808d9a5a' + '36da1863d7f1f5ea7faa50f773a6dbdda405d7f5' + '3861e9d68ee67aa2dc6a087158054c29466cd4da' '17c4f8628ea435c999be66ee4c2967fdaf3b2955' 'ffb6644dbad00413c668c833e3f3680d1d73aa53') prepare() { + [ -d "${srcdir}"/${_realname}-${pkgver} ] && rm -rf ${_realname}-${pkgver} tar -xf "${srcdir}"/${_realname}-${pkgver}.source.tar.bz2 || true if [ -d "${srcdir}"/mozilla-beta ]; then mv "${srcdir}"/mozilla-beta "${srcdir}"/${_realname}-${pkgver} @@ -34,21 +49,50 @@ prepare() { exit 1 fi cd "${srcdir}"/${_realname}-${pkgver} - patch -p1 -i "${srcdir}"/0001-Support-MSYS2-as-build-machine.patch + # Mostly this patch is about msys2-python and mingw-w64-python not + # working with virtualenv. Really it needs splitting into two, one + # adding support for each of them. Most of the "is_win or True:" + # and "is_win and False:" stuff relates to mingw-w64-python and is + # to be replaced with proper detection and a variable "is_mingw". + patch -p1 -i "${srcdir}"/0001-Allow-MSYS2-shell.patch + patch -p1 -i "${srcdir}"/0002-Allow-MSYS2-make.patch + patch -p1 -i "${srcdir}"/0003-Use-PYTHON-env-var.patch + patch -p1 -i "${srcdir}"/0004-Allow-MSYS2-python.patch + patch -p1 -i "${srcdir}"/0005-Allow-mingw-w64-python.patch + patch -p1 -i "${srcdir}"/debugging.patch + find . -name config.sub -exec cp "${srcdir}"/config.sub {} \; find . -name config.guess -exec cp "${srcdir}"/config.guess {} \; + (autoconf-2.13 && cd js/src && autoconf-2.13) } build() { cd "${srcdir}"/${_realname}-${pkgver} - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} - mkdir "${srcdir}"/build-${CARCH} - cd "${srcdir}"/build-${CARCH} - cp "${srcdir}"/.mozconfig.${CARCH} ${PWD}/.mozconfig - export PYTHON=/usr/bin/python2.7.exe - export MOZCONFIG=${PWD}/.mozconfig - make -f ../${_realname}-${pkgver}/client.mk configure - make -f ../${_realname}-${pkgver}/client.mk build + if [ "${CARCH}" = "i686" ]; then + _builddir=obj-i686-w64-mingw32 + else + _builddir=obj-x86_64-w64-mingw32 + fi + [ -d ${_builddir} ] && rm -rf "${_builddir}" + mkdir ${_builddir} + cp "${srcdir}"/mozconfig.${CARCH} ${_builddir}/.mozconfig +# export PYTHON=/usr/bin/python2.7.exe + export PYTHON=${MINGW_PREFIX}/bin/python2.7.exe + export MOZCONFIG=${PWD}/${_builddir}/.mozconfig + export MIDL=${MINGW_PREFIX}/bin/widl.exe + export MOZ_TOOLS=${MINGW_PREFIX} + + set |awk ' + BEGIN { _p = 1; } + $0~/^[^ ]+ \(\)/ { _p = 0; } + _p == 1 + $0 == "}" { _p = 1; } + ' |sed -r -e '/^BASH_(ARGC|ARGV|LINENO|SOURCE|VERSINFO)=/d; + /^(UID|EUID)=/d; + /^(FUNCNAME|GROUPS|PPID|SHELLOPTS|BASHOPTS)=/d;' > ./env-${CARCH}.sh + + make -f client.mk configure + make -f client.mk build } check() { diff --git a/mingw-w64-firefox/debugging.patch b/mingw-w64-firefox/debugging.patch new file mode 100644 index 0000000000..dece3e82d9 --- /dev/null +++ b/mingw-w64-firefox/debugging.patch @@ -0,0 +1,20 @@ +diff -urN a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbuild/frontend/emitter.py +--- a/python/mozbuild/mozbuild/frontend/emitter.py 2015-06-30 23:58:07.000000000 +0100 ++++ b/python/mozbuild/mozbuild/frontend/emitter.py 2015-07-13 21:43:47.955204200 +0100 +@@ -3,6 +3,7 @@ + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + + from __future__ import unicode_literals ++from __future__ import print_function + + import itertools + import json +@@ -672,6 +673,8 @@ + def _process_sources(self, context, passthru): + for symbol in ('SOURCES', 'HOST_SOURCES', 'UNIFIED_SOURCES'): + for src in (context[symbol] or []): ++ print('sys.argv is %s' % sys.argv, file=sys.stderr) ++ print('checking if %s exists' % (mozpath.join(context.srcdir, src)), file=sys.stderr) + if not os.path.exists(mozpath.join(context.srcdir, src)): + raise SandboxValidationError('File listed in %s does not ' + 'exist: \'%s\'' % (symbol, src), context) From 8c859848a0f4bb16278ff7d74ff322c5633bb4af Mon Sep 17 00:00:00 2001 From: Shreeshrii Date: Tue, 14 Jul 2015 11:13:36 +0530 Subject: [PATCH 1277/2060] Update for Tesseract-ocr 3.04.00 release More details at https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/tesseract-dev/8e0F2cK2YzU/EHH59yMJIowJ --- mingw-w64-tesseract-ocr/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-tesseract-ocr/PKGBUILD b/mingw-w64-tesseract-ocr/PKGBUILD index dc7c0f5d3d..6a8835e49d 100644 --- a/mingw-w64-tesseract-ocr/PKGBUILD +++ b/mingw-w64-tesseract-ocr/PKGBUILD @@ -3,7 +3,7 @@ _realname=tesseract-ocr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.04.rc1.master +pkgver=3.04.00 pkgrel=1 pkgdesc="Tesseract OCR (mingw-w64)" arch=('any') @@ -17,11 +17,11 @@ depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-pango ${MINGW_PACKAGE_PREFIX}-zlib) options=('!libtool' 'strip') -source=("https://github.com/tesseract-ocr/tesseract/archive/master.zip") +source=("https://github.com/tesseract-ocr/tesseract/archive/${pkgver}.zip") sha256sums=('SKIP' ) prepare() { - cd "$srcdir/${_realname}-master" + cd "$srcdir/${_realname}-/${pkgver}" ./autogen.sh } @@ -34,7 +34,7 @@ build() { extra_config+=( --enable-debug ) fi - ${srcdir}/${_realname}-master/configure \ + ${srcdir}/${_realname}-/${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ From d862daa966a8b87b5d7503b8bae20380f1ec60e1 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 14 Jul 2015 12:24:22 +0300 Subject: [PATCH 1278/2060] Qt4: Fix architecture detecting. --- mingw-w64-libmng/PKGBUILD | 4 +- mingw-w64-qt4/PKGBUILD | 2 +- mingw-w64-qt4/qt-4.8.7-mingw-configure.patch | 49 ++++++++++++++------ 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/mingw-w64-libmng/PKGBUILD b/mingw-w64-libmng/PKGBUILD index 0ad7111dcf..c1232aacef 100644 --- a/mingw-w64-libmng/PKGBUILD +++ b/mingw-w64-libmng/PKGBUILD @@ -3,8 +3,8 @@ _realname=libmng pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.3 -pkgrel=2 -pkgdesc="Simple, small, C++ XML parser that can be easily integrated into other programs (mingw-w64)" +pkgrel=3 +pkgdesc="A collection of routines used to create and manipulate MNG format graphics files (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/libmng" license=("zlib") diff --git a/mingw-w64-qt4/PKGBUILD b/mingw-w64-qt4/PKGBUILD index b3c5575759..6c128104e9 100644 --- a/mingw-w64-qt4/PKGBUILD +++ b/mingw-w64-qt4/PKGBUILD @@ -93,7 +93,7 @@ md5sums=('d990ee66bf7ab0c785589776f35ba6ad' '68657fc5b131e2c5e3532b61e2c3da42' '562ababd98ecca9e3a6cbc9b70e8f7f9' '49c33922e8f3c506cb7cc15cbe9b4a0a' - 'a90f328568d90838fd3fb1d32e99e579' + 'e202913dee43bef855d7429138d7436b' 'fc3b3f45db0eda55d429310faf529ae9') prepare() { diff --git a/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch index b15889c4bc..59828f79d1 100644 --- a/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch +++ b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch @@ -79,7 +79,26 @@ CYGWIN*:*) PLATFORM=cygwin-g++ ;; -@@ -3754,6 +3782,8 @@ +@@ -3139,6 +3167,18 @@ + + if [ -z "${CFG_HOST_ARCH}" ]; then + case "$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE" in ++ MINGW*:*:*) ++ MACHINE_GCC=`(gcc -dumpmachine) 2>/dev/null` ++ CFG_HOST_ARCH=${MACHINE_GCC%%-*} ++ case "$CFG_HOST_ARCH" in ++ i?86) ++ CFG_HOST_ARCH=i686 ++ ;; ++ esac ++ if [ "$OPT_VERBOSE" = "yes" ]; then ++ echo " MINGW/MSYS ($CFG_HOST_ARCH)" ++ fi ++ ;; + GNU:*:*) + CFG_HOST_ARCH=`echo ${UNAME_MACHINE} | sed -e 's,[-/].*$,,'` + case "$CFG_HOST_ARCH" in +@@ -3754,6 +3794,8 @@ if [ -z "$QT_INSTALL_SETTINGS" ]; then #default if [ "$PLATFORM_MAC" = "yes" ]; then QT_INSTALL_SETTINGS=/Library/Preferences/Qt @@ -88,7 +107,7 @@ else QT_INSTALL_SETTINGS=/etc/xdg fi -@@ -4545,6 +4575,15 @@ +@@ -4545,6 +4587,15 @@ EOF fi @@ -104,7 +123,7 @@ if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then cat << EOF -@@ -4943,7 +4982,15 @@ +@@ -4943,7 +4994,15 @@ #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured rm -rf mkspecs/default @@ -121,7 +140,7 @@ # fix makefiles for mkfile in GNUmakefile Makefile; do EXTRA_LFLAGS= -@@ -4953,7 +5000,11 @@ +@@ -4953,7 +5012,11 @@ # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then # (cd qmake && qmake) >/dev/null 2>&1 && continue # fi @@ -134,7 +153,7 @@ fi in_mkfile="$relpath/qmake/$in_mkfile" mkfile="$outpath/qmake/$mkfile" -@@ -5357,7 +5408,7 @@ +@@ -5362,7 +5425,7 @@ fi # check IPC support @@ -143,7 +162,7 @@ # Raptor does not support configure tests. if ! compileTest unix/ipc_sysv "ipc_sysv" ; then # SYSV IPC is not supported - check POSIX IPC -@@ -5410,6 +5461,13 @@ +@@ -5415,6 +5478,13 @@ CFG_LARGEFILE=yes fi @@ -157,7 +176,7 @@ if [ "$CFG_S60" = "auto" ]; then if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then -@@ -5574,7 +5632,7 @@ +@@ -5579,7 +5649,7 @@ if [ "$CFG_SQL_psql" != "no" ]; then [ -z "$CFG_PSQL_CONFIG" ] && CFG_PSQL_CONFIG=`"$WHICH" pg_config` # Be careful not to use native pg_config when cross building. @@ -166,7 +185,7 @@ QT_CFLAGS_PSQL=`$CFG_PSQL_CONFIG --includedir 2>/dev/null` QT_LFLAGS_PSQL=`$CFG_PSQL_CONFIG --libdir 2>/dev/null` fi -@@ -6694,6 +6752,24 @@ +@@ -6699,6 +6769,24 @@ fi # QWS @@ -191,7 +210,7 @@ EGL_VARIANT=none # EGL Support if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then -@@ -7393,7 +7470,7 @@ +@@ -7398,7 +7486,7 @@ QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR" QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR" fi @@ -200,7 +219,7 @@ QMAKE_CONFIG="$QMAKE_CONFIG largefile" fi if [ "$CFG_STL" = "no" ]; then -@@ -7664,6 +7741,10 @@ +@@ -7669,6 +7757,10 @@ # Follow default behavior of configure.exe by overriding with "rtti" # (also on Symbian). QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti" @@ -211,7 +230,7 @@ fi if [ "$CFG_ALSA" = "yes" ]; then -@@ -8258,6 +8339,15 @@ +@@ -8263,6 +8355,15 @@ ;; esac @@ -227,7 +246,7 @@ cat >>"$outpath/src/corelib/global/qconfig.h.new" <>"$outpath/src/corelib/global/qconfig.h.new" [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new" @@ -236,7 +255,7 @@ echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new" fi -@@ -8503,7 +8593,7 @@ +@@ -8508,7 +8609,7 @@ [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV" [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB" [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK" @@ -245,7 +264,7 @@ # Do not apply following negative X11/Unix/Mac only flags on Symbian, so that # configuration matches with the one generated by configure executable tool [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS" -@@ -8999,6 +9089,7 @@ +@@ -9010,6 +9111,7 @@ fi echo "Support for S60 ........ $CFG_S60" echo "Symbian DEF files ...... $CFG_SYMBIAN_DEFFILES" @@ -253,7 +272,7 @@ echo "STL support ............ $CFG_STL" echo "PCH support ............ $CFG_PRECOMPILE" echo "MMX/3DNOW/SSE/SSE2/SSE3. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}/${CFG_SSE3}" -@@ -9047,6 +9138,10 @@ +@@ -9058,6 +9160,10 @@ fi echo "zlib support ........... $CFG_ZLIB" echo "Session management ..... $CFG_SM" From 9215e839df3c4f98ea4b160831c17ddada121dfa Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 15 Jul 2015 01:27:45 +0300 Subject: [PATCH 1279/2060] === Rebuild with GCC-5.1.0. Part IX === --- mingw-w64-aspell/PKGBUILD | 4 +- mingw-w64-atkmm/PKGBUILD | 13 +-- mingw-w64-cairomm/PKGBUILD | 8 +- mingw-w64-cfitsio/PKGBUILD | 13 ++- ...ys-add-no-undefined-to-libtool-flags.patch | 24 ---- ...update-clutter-win32-header-location.patch | 25 ---- mingw-w64-clutter-gtk/PKGBUILD | 35 +++--- mingw-w64-cmake/PKGBUILD | 9 +- .../pkg-config-without-prefix.patch | 17 +++ mingw-w64-djvulibre/PKGBUILD | 54 ++++----- .../djvulibre-3.5.22-exeext.patch | 109 ------------------ .../djvulibre-3.5.22-msvcp60.patch | 22 ---- .../djvulibre-3.5.23-size_t.patch | 12 -- .../djvulibre-3.5.25-precision.patch | 88 -------------- .../djvulibre-3.5.27-win32.patch | 10 ++ mingw-w64-doxygen/PKGBUILD | 7 +- mingw-w64-eog/PKGBUILD | 24 ++-- mingw-w64-gc/PKGBUILD | 8 +- mingw-w64-gedit/PKGBUILD | 2 +- mingw-w64-gimp-ufraw/PKGBUILD | 40 +++---- mingw-w64-gimp-ufraw/mingw-w64-fixes.patch | 51 ++++---- mingw-w64-glade/PKGBUILD | 8 +- mingw-w64-glibmm/PKGBUILD | 9 +- mingw-w64-graphicsmagick/PKGBUILD | 35 +++--- mingw-w64-gsettings-desktop-schemas/PKGBUILD | 22 ++-- mingw-w64-gtkimageview/PKGBUILD | 5 +- .../gtkimageview-1.6.4.tar.gz | Bin 0 -> 1158138 bytes mingw-w64-gtkmm/PKGBUILD | 7 +- mingw-w64-gtkmm3/PKGBUILD | 6 +- mingw-w64-gtksourceview2/PKGBUILD | 14 +-- mingw-w64-gtksourceview3/PKGBUILD | 9 +- mingw-w64-gtkspell/PKGBUILD | 7 +- mingw-w64-gtkspell3/PKGBUILD | 27 ++--- mingw-w64-http-parser/PKGBUILD | 17 ++- mingw-w64-http-parser/makefile.patch | 17 +-- mingw-w64-imagemagick/PKGBUILD | 4 +- mingw-w64-inkscape/PKGBUILD | 7 +- mingw-w64-jbigkit/PKGBUILD | 4 +- mingw-w64-leptonica/PKGBUILD | 8 +- mingw-w64-libcdr/PKGBUILD | 32 ++--- mingw-w64-libchamplain/PKGBUILD | 14 +-- mingw-w64-libgdata/0004-localedir-fix.patch | 66 ----------- mingw-w64-libgdata/PKGBUILD | 41 ++++--- mingw-w64-libgit2/002-windows-headers.patch | 15 --- mingw-w64-libgit2/PKGBUILD | 34 +++--- mingw-w64-liblqr/PKGBUILD | 16 +-- mingw-w64-libmng/PKGBUILD | 16 ++- mingw-w64-libmng/fix-mng-version-cmake.patch | 7 ++ mingw-w64-libmng/pkg-config-extra-flags.patch | 26 +++++ mingw-w64-liboauth/PKGBUILD | 15 ++- mingw-w64-libpeas/0003-localedir-fix.patch | 33 ------ .../0004-fix-crash-on-gc-collect.patch | 43 ------- mingw-w64-libpeas/PKGBUILD | 18 +-- mingw-w64-librevenge/PKGBUILD | 7 +- mingw-w64-libwpd/PKGBUILD | 25 ++-- mingw-w64-libwpg/PKGBUILD | 17 +-- mingw-w64-memphis/PKGBUILD | 15 +-- mingw-w64-nspr/PKGBUILD | 2 +- mingw-w64-pangomm/PKGBUILD | 8 +- mingw-w64-popt/PKGBUILD | 8 +- mingw-w64-postr/PKGBUILD | 16 ++- .../0001-Fix-broken_MSC_VER-checks.patch | 16 --- ...Use-intptr_t-for-pointer-cast-target.patch | 11 -- mingw-w64-tesseract-ocr/PKGBUILD | 29 ++--- mingw-w64-tesseract-ocr/build-fixes.patch | 11 ++ mingw-w64-uhttpmock/PKGBUILD | 15 ++- 66 files changed, 467 insertions(+), 870 deletions(-) delete mode 100644 mingw-w64-clutter-gtk/0001-msys-add-no-undefined-to-libtool-flags.patch delete mode 100644 mingw-w64-clutter-gtk/0003-msys-update-clutter-win32-header-location.patch create mode 100644 mingw-w64-cmake/pkg-config-without-prefix.patch delete mode 100644 mingw-w64-djvulibre/djvulibre-3.5.22-exeext.patch delete mode 100644 mingw-w64-djvulibre/djvulibre-3.5.22-msvcp60.patch delete mode 100644 mingw-w64-djvulibre/djvulibre-3.5.23-size_t.patch delete mode 100644 mingw-w64-djvulibre/djvulibre-3.5.25-precision.patch create mode 100644 mingw-w64-djvulibre/djvulibre-3.5.27-win32.patch create mode 100644 mingw-w64-gtkimageview/gtkimageview-1.6.4.tar.gz delete mode 100644 mingw-w64-libgdata/0004-localedir-fix.patch delete mode 100644 mingw-w64-libgit2/002-windows-headers.patch create mode 100644 mingw-w64-libmng/fix-mng-version-cmake.patch create mode 100644 mingw-w64-libmng/pkg-config-extra-flags.patch delete mode 100644 mingw-w64-libpeas/0003-localedir-fix.patch delete mode 100644 mingw-w64-libpeas/0004-fix-crash-on-gc-collect.patch delete mode 100644 mingw-w64-tesseract-ocr/0001-Fix-broken_MSC_VER-checks.patch delete mode 100644 mingw-w64-tesseract-ocr/0002-Use-intptr_t-for-pointer-cast-target.patch create mode 100644 mingw-w64-tesseract-ocr/build-fixes.patch diff --git a/mingw-w64-aspell/PKGBUILD b/mingw-w64-aspell/PKGBUILD index 4f63e1d40c..a536a61e70 100644 --- a/mingw-w64-aspell/PKGBUILD +++ b/mingw-w64-aspell/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _date_ver=20131207 _ver_base=0.60.7 pkgver=${_ver_base}.${_date_ver} -pkgrel=1 +pkgrel=2 pkgdesc="A spell checker designed to eventually replace Ispell (mingw-w64)" arch=('any') url="http://aspell.net/" @@ -63,5 +63,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-atkmm/PKGBUILD b/mingw-w64-atkmm/PKGBUILD index 3a989d29a5..8e402fda49 100644 --- a/mingw-w64-atkmm/PKGBUILD +++ b/mingw-w64-atkmm/PKGBUILD @@ -3,19 +3,18 @@ _realname=atkmm pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.22.7 -pkgrel=2 +pkgrel=3 pkgdesc="C++ bindings for atk (mingw-w64)" arch=('any') url="http://gtkmm.sourceforge.net" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libsigc++" - "${MINGW_PACKAGE_PREFIX}-glibmm>=2.36.0" - "${MINGW_PACKAGE_PREFIX}-atk" - ) + "${MINGW_PACKAGE_PREFIX}-libsigc++" + "${MINGW_PACKAGE_PREFIX}-glibmm" + "${MINGW_PACKAGE_PREFIX}-atk") options=(strip staticlibs) -source=("http://ftp.gnome.org/pub/GNOME/sources/atkmm/${pkgver%.*}/atkmm-$pkgver.tar.xz") +source=("http://ftp.gnome.org/pub/GNOME/sources/atkmm/${pkgver%.*}/atkmm-${pkgver}.tar.xz") md5sums=('fec7db3fc47ba2e0c95d130ec865a236') build() { @@ -34,6 +33,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-cairomm/PKGBUILD b/mingw-w64-cairomm/PKGBUILD index 7053c17ce2..313c2f02d5 100644 --- a/mingw-w64-cairomm/PKGBUILD +++ b/mingw-w64-cairomm/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=cairomm - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.11.2 -pkgrel=1 +pkgrel=2 pkgdesc="C++ bindings to Cairo vector graphics library (mingw-w64)" arch=('any') url="http://www.cairographics.org" @@ -20,18 +19,19 @@ build() { export lt_cv_deplibs_check_method='pass_all' mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ --enable-static \ --disable-documentation + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-cfitsio/PKGBUILD b/mingw-w64-cfitsio/PKGBUILD index f64afeaa36..1f544f887e 100644 --- a/mingw-w64-cfitsio/PKGBUILD +++ b/mingw-w64-cfitsio/PKGBUILD @@ -3,7 +3,7 @@ _realname=cfitsio pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.370 -pkgrel=1 +pkgrel=2 pkgdesc="A library of C and Fortran subroutines for reading and writing data files in FITS (Flexible Image Transport System) data format (mingw-w64)" arch=('any') url="http://heasarc.gsfc.nasa.gov/fitsio/" @@ -24,8 +24,9 @@ prepare() { build() { #export lt_cv_deplibs_check_method='pass_all' - - cd "${srcdir}/${_realname}" + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + cp -rf ${_realname} build-${MINGW_CHOST} + cd build-${MINGW_CHOST} ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -36,7 +37,7 @@ build() { } check() { - cd ${_realname} + cd build-${MINGW_CHOST} make testprog LD_LIBRARY_PATH=. ./testprog > testprog.lis [[ -z $(diff testprog.lis testprog.out) ]] || return 1 @@ -44,9 +45,9 @@ check() { } package() { - cd "${srcdir}/${_realname}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install mkdir -p "${pkgdir}${MINGW_PREFIX}"/bin mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ - install -D -m644 License.txt "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE + install -Dm644 License.txt "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-clutter-gtk/0001-msys-add-no-undefined-to-libtool-flags.patch b/mingw-w64-clutter-gtk/0001-msys-add-no-undefined-to-libtool-flags.patch deleted file mode 100644 index f4f45665de..0000000000 --- a/mingw-w64-clutter-gtk/0001-msys-add-no-undefined-to-libtool-flags.patch +++ /dev/null @@ -1,24 +0,0 @@ -From d1c4e1b208ad71b5b7392ada878abbaf2b5d62c6 Mon Sep 17 00:00:00 2001 -From: Lubosz Sarnecki -Date: Sun, 3 Aug 2014 17:34:41 +0200 -Subject: [PATCH 1/3] msys: add -no-undefined to libtool flags - ---- - clutter-gtk/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/clutter-gtk/Makefile.am b/clutter-gtk/Makefile.am -index 9a35919..e9e4616 100644 ---- a/clutter-gtk/Makefile.am -+++ b/clutter-gtk/Makefile.am -@@ -48,6 +48,7 @@ libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_SOURCES = $(source_c) $(source_h) $( - libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_LIBADD = $(CLUTTER_GTK_DEPS_LIBS) $(LIBM) - libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_LDFLAGS = \ - $(CLUTTER_LT_LDFLAGS) \ -+ -no-undefined \ - -export-symbols-regex "^gtk_clutter.*" - - cluttergtkheadersdir = $(includedir)/clutter-gtk-@CLUTTER_GTK_API_VERSION@/clutter-gtk --- -2.0.4 - diff --git a/mingw-w64-clutter-gtk/0003-msys-update-clutter-win32-header-location.patch b/mingw-w64-clutter-gtk/0003-msys-update-clutter-win32-header-location.patch deleted file mode 100644 index 67be4669a6..0000000000 --- a/mingw-w64-clutter-gtk/0003-msys-update-clutter-win32-header-location.patch +++ /dev/null @@ -1,25 +0,0 @@ -From d76dc6b14c470f6d92cf6a599796496b97783d27 Mon Sep 17 00:00:00 2001 -From: Lubosz Sarnecki -Date: Sun, 3 Aug 2014 17:35:31 +0200 -Subject: [PATCH 3/3] msys: update clutter-win32 header location - ---- - clutter-gtk/gtk-clutter-actor.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/clutter-gtk/gtk-clutter-actor.c b/clutter-gtk/gtk-clutter-actor.c -index b5de571..e090a89 100644 ---- a/clutter-gtk/gtk-clutter-actor.c -+++ b/clutter-gtk/gtk-clutter-actor.c -@@ -59,7 +59,7 @@ - #endif - - #ifdef CLUTTER_WINDOWING_WIN32 --#include -+#include - #endif - #ifdef GDK_WINDOWING_WIN32 - #include --- -2.0.4 - diff --git a/mingw-w64-clutter-gtk/PKGBUILD b/mingw-w64-clutter-gtk/PKGBUILD index 2a8f130af4..049eb6e09b 100644 --- a/mingw-w64-clutter-gtk/PKGBUILD +++ b/mingw-w64-clutter-gtk/PKGBUILD @@ -2,44 +2,34 @@ _realname=clutter-gtk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.0 +pkgver=1.6.2 pkgrel=1 -pkgdesc="Clutter integration with GTK+. (mingw-w64)" +pkgdesc="Clutter integration with GTK+ (mingw-w64)" arch=('any') url="http://clutter-project.org/" license=("LGPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gobject-introspection" - #"git" - ) +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") depends=("${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-clutter" - ) + "${MINGW_PACKAGE_PREFIX}-clutter") options=(!libtool strip staticlibs) -source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz - #"git://git.gnome.org/$_realname#tag=$pkgver" - "0001-msys-add-no-undefined-to-libtool-flags.patch" - "0002-msys-fix-introspection-build.patch" - "0003-msys-update-clutter-win32-header-location.patch") -md5sums=('08e5d7c249733d4d96bbbd2dc970a06c' - '317a8e3259f818c2e1147697d623e920' - '4b892afaf561ac2503962d238770f967' - '48afee140d22c548a85691d1ca2097a3') +source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz + "0002-msys-fix-introspection-build.patch") +md5sums=('557d814c3e70cc3a2d1cf3816919b14f' + '4b892afaf561ac2503962d238770f967') prepare() { - cd ${_realname}-$pkgver - patch -p1 -i ${srcdir}/0001-msys-add-no-undefined-to-libtool-flags.patch + cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/0002-msys-fix-introspection-build.patch - patch -p1 -i ${srcdir}/0003-msys-update-clutter-win32-header-location.patch autoreconf -fvi #NOCONFIGURE=1 ./autogen.sh } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ../${_realname}-$pkgver/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -47,10 +37,11 @@ build() { --enable-shared \ --enable-silent-rules \ --disable-gtk-doc + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index a26146dc92..6f71427899 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -3,7 +3,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.2.3 -pkgrel=4 +pkgrel=5 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -22,17 +22,20 @@ options=('staticlibs') # '!strip' 'debug' source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" - "qt5-static-plugin-support.patch") + "qt5-static-plugin-support.patch" + "pkg-config-without-prefix.patch") md5sums=('d51c92bf66b1e9d4fe2b7aaedd51377c' '567da5e1794863b4df8affdc7e876a7e' 'fb33ace70ba863159b2c7964a9661e1e' - '6461b89ff7d1ca0c4022801dff8475a7') + '6461b89ff7d1ca0c4022801dff8475a7' + 'a55c5c6231fc953bad5600c3bb49667b') prepare() { cd ${_realname}-${pkgver} patch -Np1 -i ${srcdir}/disable-response-files-for-msys.patch patch -Np1 -i ${srcdir}/dont-install-bundle.patch patch -Np1 -i ${srcdir}/qt5-static-plugin-support.patch + patch -Np1 -i ${srcdir}/pkg-config-without-prefix.patch } build() { diff --git a/mingw-w64-cmake/pkg-config-without-prefix.patch b/mingw-w64-cmake/pkg-config-without-prefix.patch new file mode 100644 index 0000000000..1860ffe074 --- /dev/null +++ b/mingw-w64-cmake/pkg-config-without-prefix.patch @@ -0,0 +1,17 @@ +--- cmake-3.2.3/Modules/FindPkgConfig.cmake.orig 2015-07-14 09:18:44.905200000 +0300 ++++ cmake-3.2.3/Modules/FindPkgConfig.cmake 2015-07-14 09:19:05.606400000 +0300 +@@ -67,8 +67,13 @@ + macro(_pkgconfig_invoke _pkglist _prefix _varname _regexp) + set(_pkgconfig_invoke_result) + ++ if (PKG_CONFIG_WITHOUT_PREFIX) ++ set(_pkgconfig_extra_arg "--dont-define-prefix") ++ else() ++ set(_pkgconfig_extra_arg "") ++ endif() + execute_process( +- COMMAND ${PKG_CONFIG_EXECUTABLE} ${ARGN} ${_pkglist} ++ COMMAND ${PKG_CONFIG_EXECUTABLE} ${_pkgconfig_extra_arg} ${ARGN} ${_pkglist} + OUTPUT_VARIABLE _pkgconfig_invoke_result + RESULT_VARIABLE _pkgconfig_failed) + diff --git a/mingw-w64-djvulibre/PKGBUILD b/mingw-w64-djvulibre/PKGBUILD index 75a0dd30e2..4879eb6f66 100644 --- a/mingw-w64-djvulibre/PKGBUILD +++ b/mingw-w64-djvulibre/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Alexey Pavlov _realname=djvulibre - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.5.25.3 +pkgver=3.5.27 pkgrel=1 pkgdesc="Suite to create, manipulate and view DjVu (mingw-w64)" arch=('any') @@ -11,42 +10,37 @@ url="http://djvu.sourceforge.net/" license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-zlib" - ) + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') source=("http://downloads.sourceforge.net/djvu/${_realname}-${pkgver}.tar.gz" - djvulibre-3.5.22-exeext.patch - djvulibre-3.5.22-msvcp60.patch - djvulibre-3.5.23-size_t.patch - djvulibre-3.5.25-precision.patch) -md5sums=('5f45d6cd5700b4dd31b1eb963482089b' - '1f3f9949aa9ef1a2228512f8e928160b' - 'c9e60c5553223380faa54b9db5328cb7' - '8cc6fcf9c449631526e5644e1600379c' - '64ceeff2ff000a8ce1c749f796ed956c') + djvulibre-3.5.27-win32.patch) +md5sums=('aa4ed331f669f5a72e3c0d7f9196c4e6' + 'b95e00f15a67df96df985b5a51b15745') prepare() { - cd "$srcdir/${_realname}-${pkgver%.*}" - patch -p1 -i ${srcdir}/djvulibre-3.5.22-exeext.patch - patch -p1 -i ${srcdir}/djvulibre-3.5.22-msvcp60.patch - patch -p1 -i ${srcdir}/djvulibre-3.5.23-size_t.patch - patch -p1 -i ${srcdir}/djvulibre-3.5.25-precision.patch + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i ${srcdir}/djvulibre-3.5.27-win32.patch + + autoreconf -fiv } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver%.*}/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --disable-static --enable-shared - make + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-static \ + --enable-shared + + make -j1 } package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-djvulibre/djvulibre-3.5.22-exeext.patch b/mingw-w64-djvulibre/djvulibre-3.5.22-exeext.patch deleted file mode 100644 index 69d14eec22..0000000000 --- a/mingw-w64-djvulibre/djvulibre-3.5.22-exeext.patch +++ /dev/null @@ -1,109 +0,0 @@ ---- djvulibre-3.5.22/tools/Makefile.in 2008-09-06 04:52:46.000000000 +0200 -+++ djvulibre-3.5.22/tools/Makefile.in 2009-06-23 10:53:57.000000000 +0200 -@@ -38,6 +38,7 @@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_DATA = @INSTALL_DATA@ - LIBTOOL = @LIBTOOL@ -+EXEEXT = @EXEEXT@ - - DEFS = @DEFS@ - OPTS = @OPTS@ -@@ -60,10 +61,10 @@ - - SUBDIRS = jb2cmp - --PROGRAMS = bzz c44 cjb2 cpaldjvu csepdjvu \ -- ddjvu djvm djvmcvt djvudump \ -- djvups djvuextract djvumake \ -- djvused djvutxt djvuserve -+PROGRAMS = bzz${EXEEXT} c44${EXEEXT} cjb2${EXEEXT} cpaldjvu${EXEEXT} csepdjvu${EXEEXT} \ -+ ddjvu${EXEEXT} djvm${EXEEXT} djvmcvt${EXEEXT} djvudump${EXEEXT} \ -+ djvups${EXEEXT} djvuextract${EXEEXT} djvumake${EXEEXT} \ -+ djvused${EXEEXT} djvutxt${EXEEXT} djvuserve${EXEEXT} - - SCRIPTS = djvudigital any2djvu - -@@ -113,67 +114,67 @@ - jb2cmp/libjb2cmp.a: FORCE - cd jb2cmp && ${MAKE} - --annotate: annotate.o -+annotate${EXEEXT}: annotate.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} annotate.o ${LIBDJVU} ${LIBS} - --bzz: bzz.o -+bzz${EXEEXT}: bzz.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} bzz.o ${LIBDJVU} ${LIBS} - --c44: c44.o -+c44${EXEEXT}: c44.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} c44.o ${LIBDJVU} ${LIBS} - --cjb2: cjb2.o ${JB2OBJS} -+cjb2${EXEEXT}: cjb2.o ${JB2OBJS} - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} cjb2.o ${JB2OBJS} ${LIBDJVU} ${MORELIBS} - --cpaldjvu: cpaldjvu.o ${JB2OBJS} -+cpaldjvu${EXEEXT}: cpaldjvu.o ${JB2OBJS} - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} cpaldjvu.o ${JB2OBJS} ${LIBDJVU} ${LIBS} - --csepdjvu: csepdjvu.o ${JB2OBJS} -+csepdjvu${EXEEXT}: csepdjvu.o ${JB2OBJS} - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} csepdjvu.o ${JB2OBJS} ${LIBDJVU} ${LIBS} - --ddjvu: ddjvu.o tiff2pdf.o -+ddjvu${EXEEXT}: ddjvu.o tiff2pdf.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} ddjvu.o tiff2pdf.o ${LIBDJVU} ${MORELIBS} - --djvm: djvm.o -+djvm${EXEEXT}: djvm.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} djvm.o ${LIBDJVU} ${LIBS} - --djvmcvt: djvmcvt.o -+djvmcvt${EXEEXT}: djvmcvt.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} djvmcvt.o ${LIBDJVU} ${LIBS} - --djvudump: djvudump.o -+djvudump${EXEEXT}: djvudump.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} djvudump.o ${LIBDJVU} ${LIBS} - --djvups: djvups.o -+djvups${EXEEXT}: djvups.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} djvups.o ${LIBDJVU} ${LIBS} - --djvuextract: djvuextract.o -+djvuextract${EXEEXT}: djvuextract.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} djvuextract.o ${LIBDJVU} ${LIBS} - --djvumake: djvumake.o -+djvumake${EXEEXT}: djvumake.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} djvumake.o ${LIBDJVU} ${LIBS} - --djvused: djvused.o -+djvused${EXEEXT}: djvused.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} djvused.o ${LIBDJVU} ${LIBS} - --djvutxt: djvutxt.o -+djvutxt${EXEEXT}: djvutxt.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} djvutxt.o ${LIBDJVU} ${LIBS} - --djvuserve: djvuserve.o -+djvuserve${EXEEXT}: djvuserve.o - ${LIBTOOL} --mode=link \ - ${CXX} -o $@ ${CXXFLAGS} djvuserve.o ${LIBDJVU} ${LIBS} - diff --git a/mingw-w64-djvulibre/djvulibre-3.5.22-msvcp60.patch b/mingw-w64-djvulibre/djvulibre-3.5.22-msvcp60.patch deleted file mode 100644 index b31d30003e..0000000000 --- a/mingw-w64-djvulibre/djvulibre-3.5.22-msvcp60.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -u -r djvulibre-3.5.22/configure djvulibre-3.5.22/configure ---- djvulibre-3.5.22/configure 2009-05-21 17:15:50.000000000 +0200 -+++ djvulibre-3.5.22/configure 2009-11-13 21:42:30.000000000 +0100 -@@ -2166,7 +2166,6 @@ - case "$host" in - *-mingw32) - DLLFLAGS="$DLLFLAGS -Wl,--export-all-symbols" -- LIBS=-lmsvcp60 - ;; - *-darwin* | *-macos10*) - if test -d /opt/local ; then -diff -u -r djvulibre-3.5.22/configure.ac djvulibre-3.5.22/configure.ac ---- djvulibre-3.5.22/configure.ac 2009-05-21 17:15:50.000000000 +0200 -+++ djvulibre-3.5.22/configure.ac 2009-11-13 21:42:16.000000000 +0100 -@@ -75,7 +75,6 @@ - case "$host" in - *-mingw32) - DLLFLAGS="$DLLFLAGS -Wl,--export-all-symbols" -- LIBS=-lmsvcp60 - ;; - *-darwin* | *-macos10*) - if test -d /opt/local ; then diff --git a/mingw-w64-djvulibre/djvulibre-3.5.23-size_t.patch b/mingw-w64-djvulibre/djvulibre-3.5.23-size_t.patch deleted file mode 100644 index 3710cdb229..0000000000 --- a/mingw-w64-djvulibre/djvulibre-3.5.23-size_t.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur djvulibre-3.5.23/libdjvu/GSmartPointer.h djvulibre-3.5.23.new/libdjvu/GSmartPointer.h ---- djvulibre-3.5.23/libdjvu/GSmartPointer.h 2008-03-05 02:44:20.000000000 +0100 -+++ djvulibre-3.5.23.new/libdjvu/GSmartPointer.h 2011-03-31 09:28:02.769165003 +0200 -@@ -65,6 +65,8 @@ - # pragma interface - #endif - -+#include // For size_t -+ - /** @name GSmartPointer.h - - Files #"GSmartPointer.h"# and #"GSmartPointer.cpp"# define a smart-pointer diff --git a/mingw-w64-djvulibre/djvulibre-3.5.25-precision.patch b/mingw-w64-djvulibre/djvulibre-3.5.25-precision.patch deleted file mode 100644 index 1fc43dde5b..0000000000 --- a/mingw-w64-djvulibre/djvulibre-3.5.25-precision.patch +++ /dev/null @@ -1,88 +0,0 @@ ---- djvulibre-3.5.25/libdjvu/DjVuPort.cpp 2012-03-17 23:49:02.000000000 +0100 -+++ djvulibre-3.5.25/libdjvu/DjVuPort.cpp 2012-04-05 11:11:53.983644255 +0200 -@@ -466,11 +466,11 @@ - // Sort in depth order - int max_dist=0; - for(pos=set;pos;++pos) -- if (max_dist < (int)(long)set[pos]) -- max_dist = (int)(long)set[pos]; -+ if (max_dist < (int)(size_t)set[pos]) -+ max_dist = (int)(size_t)set[pos]; - GArray > lists(0,max_dist); - for(pos=set;pos;++pos) -- lists[(int)(long)set[pos]].append(set.key(pos)); -+ lists[(int)(size_t)set[pos]].append(set.key(pos)); - for(int dist=0;dist<=max_dist;dist++) - for(pos=lists[dist];pos;++pos) - { ---- djvulibre-3.5.25/libdjvu/GBitmap.cpp 2012-03-17 23:49:02.000000000 +0100 -+++ djvulibre-3.5.25/libdjvu/GBitmap.cpp 2012-04-05 11:11:53.983644255 +0200 -@@ -469,7 +469,7 @@ - { - if (!monitorptr) - { -- unsigned long x = (unsigned long)this; -+ size_t x = (size_t)this; - monitorptr = &monitors[(x^(x>>5)) % NMONITORS]; - } - } ---- djvulibre-3.5.25/libdjvu/GContainer.h 2012-03-17 23:49:02.000000000 +0100 -+++ djvulibre-3.5.25/libdjvu/GContainer.h 2012-04-05 11:11:53.984644229 +0200 -@@ -178,7 +178,7 @@ - static inline unsigned int - hash(const void * const & x) - { -- return (unsigned long) x; -+ return (unsigned long)((size_t) x); - } - - /** Hashing function (float). */ ---- djvulibre-3.5.25/libdjvu/IW44EncodeCodec.cpp 2012-03-17 23:49:02.000000000 +0100 -+++ djvulibre-3.5.25/libdjvu/IW44EncodeCodec.cpp 2012-04-05 11:10:49.230256891 +0200 -@@ -310,7 +310,7 @@ - static inline void - mmx_fv_1 ( short* &q, short* e, int s, int s3 ) - { -- while (q _realname=gc - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=7.4.2 -pkgrel=1 +pkgrel=2 pkgdesc="A garbage collector for C and C++ (mingw-w64)" arch=('any') url="http://www.hboehm.info/gc" @@ -31,7 +30,7 @@ build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" export lt_cv_deplibs_check_method='pass_all' - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -40,10 +39,11 @@ build() { --disable-dependency-tracking \ --enable-large-config \ --enable-cplusplus + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-gedit/PKGBUILD b/mingw-w64-gedit/PKGBUILD index 2617c64e38..ee795d9927 100644 --- a/mingw-w64-gedit/PKGBUILD +++ b/mingw-w64-gedit/PKGBUILD @@ -3,7 +3,7 @@ _realname=gedit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.2 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A text editor for GNOME (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" diff --git a/mingw-w64-gimp-ufraw/PKGBUILD b/mingw-w64-gimp-ufraw/PKGBUILD index 8d637d9962..6a7a88e82b 100644 --- a/mingw-w64-gimp-ufraw/PKGBUILD +++ b/mingw-w64-gimp-ufraw/PKGBUILD @@ -1,33 +1,30 @@ # Maintainer: Alexey Pavlov _realname=ufraw - pkgname="${MINGW_PACKAGE_PREFIX}-gimp-${_realname}" groups=("${MINGW_PACKAGE_PREFIX}-gimp-plugins") -pkgver=0.19.2 +pkgver=0.22 pkgrel=1 pkgdesc="Converter for raw files; utility and GIMP plugin (mingw-w64)" arch=('any') url="http://ufraw.sourceforge.net/" license=("GPL") options=('strip' 'staticlibs') -depends=( - "${MINGW_PACKAGE_PREFIX}-gtkimageview" - "${MINGW_PACKAGE_PREFIX}-exiv2" - "${MINGW_PACKAGE_PREFIX}-lcms" - "${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-lensfun" - "${MINGW_PACKAGE_PREFIX}-cfitsio" - ) +depends=("${MINGW_PACKAGE_PREFIX}-bzip2" + "${MINGW_PACKAGE_PREFIX}-cfitsio" + "${MINGW_PACKAGE_PREFIX}-exiv2" + "${MINGW_PACKAGE_PREFIX}-gtkimageview" + "${MINGW_PACKAGE_PREFIX}-lcms" + "${MINGW_PACKAGE_PREFIX}-lensfun") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gimp") + "${MINGW_PACKAGE_PREFIX}-gimp") optdepends=("${MINGW_PACKAGE_PREFIX}-gimp: to use the gimp import plugin for raw images") -source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.gz" - mingw-getopt-long.patch - mingw-w64-fixes.patch) -sha256sums=('73befe9f16f015a8c0f26cef3bb2e17cac9ae64aef2ade48c29aedb1ee51abd3' +source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" + mingw-getopt-long.patch + mingw-w64-fixes.patch) +sha256sums=('f7abd28ce587db2a74b4c54149bd8a2523a7ddc09bedf4f923246ff0ae09a25e' '41c7c530b6c8992653166ba2adb155c3ae137eb12ed7bc8675d623fd58a6bb13' - 'd38eb64d6b5d5d85a25e1adaa5cafbd0156ba939329b66d48c46047f833ab1ec') + '9bbb7748bdb3bb9e085600b827a061d91e938852aae80e51da082f030901cd25') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -37,9 +34,10 @@ prepare() { } build() { - cd "${srcdir}/${_realname}-${pkgver}" + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="GIMP_LIBDIR" \ - ./configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -50,12 +48,12 @@ build() { --enable-contrast local wgimp_pref=$(cygpath -wm ${MINGW_PREFIX}) - sed -e "s|$wgimp_pref|${MINGW_PREFIX}|g" -i Makefile + sed -e "s|${wgimp_pref}|${MINGW_PREFIX}|g" -i Makefile sed -e "s|-ffast-math -fomit-frame-pointer -W -Wall -O3|${CFLAGS}|" -i Makefile make VERBOSE=1 } package() { - cd "${srcdir}/${_realname}-${pkgver}" - make -j1 DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make -j1 DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-gimp-ufraw/mingw-w64-fixes.patch b/mingw-w64-gimp-ufraw/mingw-w64-fixes.patch index febe2c1809..634143492f 100644 --- a/mingw-w64-gimp-ufraw/mingw-w64-fixes.patch +++ b/mingw-w64-gimp-ufraw/mingw-w64-fixes.patch @@ -1,40 +1,29 @@ ---- ufraw-0.19.2/dcraw.cc.orig 2014-02-27 09:46:30.949200000 +0400 -+++ ufraw-0.19.2/dcraw.cc 2014-02-27 09:46:52.898400000 +0400 -@@ -513,7 +513,7 @@ +--- ufraw-0.22/dcraw.cc.orig 2014-02-27 09:46:30.949200000 +0400 ++++ ufraw-0.22/dcraw.cc 2014-02-27 09:46:52.898400000 +0400 +@@ -446,7 +446,7 @@ { if (fread (pixel, 2, count, ifp) < count) derror(); if ((order == 0x4949) == (ntohs(0x1234) == 0x1234)) -- swab ((const char *)pixel, (char *)pixel, count*2); /*mingw support UF*/ -+ swab ((char *)pixel, (char *)pixel, count*2); /*mingw support UF*/ - } - - void CLASS canon_600_fixed_wb (int temp) -@@ -2187,7 +2187,7 @@ +-#if defined(__MINGW64_VERSION_MAJOR) && __MINGW64_VERSION_MAJOR < 4 ++#if defined(__MINGW64_VERSION_MAJOR) + swab ((char *) pixel, (char *) pixel, count*2); + #else + swab ((const char *) pixel, (char *) pixel, count*2); +@@ -2397,7 +2397,7 @@ DCRaw *d = (DCRaw*)cinfo->client_data; nbytes = fread (jpeg_buffer, 1, 4096, d->ifp); -- swab ((const char *)jpeg_buffer, (char *)jpeg_buffer, nbytes); /*mingw UF*/ -+ swab ((char *)jpeg_buffer, (char *)jpeg_buffer, nbytes); /*mingw UF*/ - cinfo->src->next_input_byte = jpeg_buffer; - cinfo->src->bytes_in_buffer = nbytes; - return TRUE; -@@ -9342,7 +9342,7 @@ +-#if defined(__MINGW64_VERSION_MAJOR) && __MINGW64_VERSION_MAJOR < 4 ++#if defined(__MINGW64_VERSION_MAJOR) + swab ((char *) jpeg_buffer, (char *) jpeg_buffer, nbytes); + #else + swab ((const char *) jpeg_buffer, (char *) jpeg_buffer, nbytes); +@@ -10196,7 +10196,7 @@ FORCC ppm [col*colors+c] = curve[image[soff][c]] >> 8; else FORCC ppm2[col*colors+c] = curve[image[soff][c]]; if (output_bps == 16 && !output_tiff && htons(0x55aa) != 0x55aa) -- swab ((const char *)ppm2, (char *)ppm2, width*colors*2); /*mingw UF*/ -+ swab ((char *)ppm2, (char *)ppm2, width*colors*2); /*mingw UF*/ - fwrite (ppm, colors*output_bps/8, width, ofp); - } - free (ppm); ---- ufraw-0.19.2/uf_gtk.cc.orig 2014-02-27 09:46:30.949200000 +0400 -+++ ufraw-0.19.2/uf_gtk.cc 2014-02-27 09:46:52.898400000 +0400 -@@ -97,7 +97,7 @@ - // Set combo box data and keep it up to date - void uf_combo_box_set_data(GtkComboBox *combo, int *valuep) - { -- gulong handler_id = reinterpret_cast( -+ guint64 handler_id = reinterpret_cast( - g_object_get_data(G_OBJECT(combo), "uf-combo-handler-id")); - if (handler_id != 0) - g_signal_handler_disconnect(G_OBJECT(combo), handler_id); +-#if defined(__MINGW64_VERSION_MAJOR) && __MINGW64_VERSION_MAJOR < 4 ++#if defined(__MINGW64_VERSION_MAJOR) + swab ((char *) ppm2, (char *) ppm2, width*colors*2); + #else + swab ((const char *) ppm2, (char *) ppm2, width*colors*2); diff --git a/mingw-w64-glade/PKGBUILD b/mingw-w64-glade/PKGBUILD index 1e02851df7..ec0d8fdb85 100644 --- a/mingw-w64-glade/PKGBUILD +++ b/mingw-w64-glade/PKGBUILD @@ -2,8 +2,8 @@ _realname=glade pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.18.3 -pkgrel=4 +pkgver=3.19.0 +pkgrel=1 pkgdesc="User interface builder for GTK+ and GNOME (mingw-w64)" arch=('any') url="http://glade.gnome.org" @@ -14,7 +14,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-python2-gobject2" + "${MINGW_PACKAGE_PREFIX}-python2-gobject" "${MINGW_PACKAGE_PREFIX}-pkg-config" "gtk-doc" "intltool" @@ -32,7 +32,7 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_real 0006-disable-gnome-help.patch 0007-glade-3.16.1-no-undefined.patch 0008-localedir-fix.patch) -md5sums=('6852d6286683728e0ea40ca9b5d2416f' +md5sums=('2f446e84b399864c426679b89f250ecd' '0605a5d30457be0cdf4061c07f1096f2' 'fb4d5a33bbfea33b6437c85a9ac567c8' '294197385457bdc58905a32b6d0e9e1e' diff --git a/mingw-w64-glibmm/PKGBUILD b/mingw-w64-glibmm/PKGBUILD index 1e3059126d..c46a3ce449 100644 --- a/mingw-w64-glibmm/PKGBUILD +++ b/mingw-w64-glibmm/PKGBUILD @@ -3,7 +3,7 @@ _realname=glibmm pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.44.0 -pkgrel=1 +pkgrel=2 pkgdesc="Glib-- (glibmm) is a C++ interface for glib (mingw-w64)" arch=('any') url="http://www.gtkmm.org" @@ -11,7 +11,7 @@ license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-libsigc++" "${MINGW_PACKAGE_PREFIX}-glib2") options=('staticlibs' 'strip') -source=("http://ftp.gnome.org/pub/GNOME/sources/glibmm/${pkgver%.*}/glibmm-$pkgver.tar.xz") +source=("http://ftp.gnome.org/pub/GNOME/sources/glibmm/${pkgver%.*}/glibmm-${pkgver}.tar.xz") sha256sums=('1b0ac0425d24895507c0e0e8088a464c7ae2d289c47afa1c11f63278fc672ea8') prepare() { @@ -19,9 +19,10 @@ prepare() { } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -34,5 +35,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-graphicsmagick/PKGBUILD b/mingw-w64-graphicsmagick/PKGBUILD index 403f7fa047..eeb0c82222 100644 --- a/mingw-w64-graphicsmagick/PKGBUILD +++ b/mingw-w64-graphicsmagick/PKGBUILD @@ -3,30 +3,29 @@ _realname=graphicsmagick pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.21 -pkgrel=1 +pkgrel=2 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') url="http://www.graphicsmagick.org/" license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-ghostscript" - "${MINGW_PACKAGE_PREFIX}-jasper" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-libwebp") + "${MINGW_PACKAGE_PREFIX}-ghostscript" + "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-fontconfig" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-jbigkit" - "${MINGW_PACKAGE_PREFIX}-lcms2" - "${MINGW_PACKAGE_PREFIX}-libtool" - "${MINGW_PACKAGE_PREFIX}-xz" - "${MINGW_PACKAGE_PREFIX}-zlib" - #"${MINGW_PACKAGE_PREFIX}-perl" - ) + "${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-jbigkit" + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-libtool" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-zlib") + #"${MINGW_PACKAGE_PREFIX}-perl" optdepends=("${MINGW_PACKAGE_PREFIX}-ghostscript: for Ghostscript support" "${MINGW_PACKAGE_PREFIX}-libxml2: for XML support" "${MINGW_PACKAGE_PREFIX}-jasper: for JPEG-2000 support" diff --git a/mingw-w64-gsettings-desktop-schemas/PKGBUILD b/mingw-w64-gsettings-desktop-schemas/PKGBUILD index 8f7807c949..f1b8aedcf0 100644 --- a/mingw-w64-gsettings-desktop-schemas/PKGBUILD +++ b/mingw-w64-gsettings-desktop-schemas/PKGBUILD @@ -2,7 +2,7 @@ _realname=gsettings-desktop-schemas pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 +pkgver=3.16.1 pkgrel=1 arch=('any') url="http://live.gnome.org/" @@ -12,31 +12,31 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gobject-introspection" "intltool") license=('GPL') options=('strip' 'staticlibs') install=schemas-${CARCH}.install -source=("http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz") -sha256sums=('26388d5b4d4ec1a345b2e382dff057ad9a216c50cc35bf54aa264c34280cb709') +source=("http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") +sha256sums=('74fe9fdad510c8a6666febeceb7ebafc581ef990b3afcc8c1e8b5d90b24b3461') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" autoreconf -fi } build() { - rm -rf $srcdir/build-${MINGW_CHOST} - mkdir $srcdir/build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} - ../${_realname}-$pkgver/configure \ + rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --disable-schemas-compile \ --enable-introspection + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install - mv ${pkgdir}${MINGW_PREFIX}/share/pkgconfig ${pkgdir}${MINGW_PREFIX}/lib/ + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-gtkimageview/PKGBUILD b/mingw-w64-gtkimageview/PKGBUILD index ba7e80adfb..e25a71e748 100644 --- a/mingw-w64-gtkimageview/PKGBUILD +++ b/mingw-w64-gtkimageview/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=gtkimageview - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.4 -pkgrel=1 +pkgrel=2 pkgdesc="Simple image viewer widget for GTK2 (mingw-w64)" arch=('any') url="https://github.com/GNOME/gtkimageview" @@ -13,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gtk2") options=('strip' 'staticlibs') source=("http://trac.bjourne.webfactional.com/chrome/common/releases/${_realname}-${pkgver}.tar.gz") -md5sums=('8346b42012a82d5fe6f1c151bae346c3') +md5sums=('501367b3f50e69a12208dc9c6ad00b18') prepare() { cd "${srcdir}/${_realname}-${pkgver}" diff --git a/mingw-w64-gtkimageview/gtkimageview-1.6.4.tar.gz b/mingw-w64-gtkimageview/gtkimageview-1.6.4.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..4eda1aaaf04e480fcd2c1404dad631ad015b3426 GIT binary patch literal 1158138 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

6MEX1WF*!u)7dJ1LqfjCoj!lWT; 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

wIhW2_a#6zj;>KUk6Y0$X`Sm#LJ0b-s6)nG`; zfJEZxfdhDT7nG2ts3;(?2(gM5Y+6)ka~7q50uAMgxp@JDL0n3l^mO+rPn|1m{XCrD1kgVsnv47^IZHveps0reL<4A_Mw0#)(w!qFy{C(hN~1+sPv&#w79 z4p`LxZv7TcPy?6+g^mi)D);Y9QpPSV*rJ~e7*G>pq@%CR7+H*dnvVww;hDZFSCQK(EN71ojKCE+_L!#6U^q zS@gKDX3&YbPs3Vews{NzcI{=)5$<7Vua;$vWF3s6qGF35CIR{ss<|)wUN6)LUr27> zi<&?F?c7o9vEjk6NGBd~@`WzZd*BHK3}Y_|qG3OwRJ2ncKc7@E7@Aa2sTi0Mh9?@7ac>*gord zgMSxm8gK*&%})XE7(f#P9w`_Mcvbuq%_=S}z0iDKg`sbD1E&}h3-lA~XaRQSjVXkH zlT203&_-|w;z^?K|K@*fk5(0+fE`O#!kj@)1c`Y{7F}DIx zOf+f25kO1{v9VY4F5^MG7khE^Z5sN<@;^tYt2fNzvF19Ds|IKzNG-*g!}+hGFOGgj zCbIv$;QvIq3%il+VhtKP;YmBD30h$x(0Oe7s9>W;3;O`zfRXbAO)M39}aGo zS@m}ZHVq&2WtOd70P#c$0^BOBNu^u@4S53qxyoBSJan1B2Qm;hgFNrNjz+*gl%%NFa_-Gp(!d+*!jH# z9e4rH2h#7{fSV2Ai)wfe$l#2qC}e5?2e5w(!!9Q!L=Vb{NQg>FprHrKXh#LXp#&Os z0l0Q>7Z}tx(I2HEfSKrlM*)4Dz~lI|ckWP-;Q`cMa78fmBOC|qPlKm)J<;$BP~hc# zJLvs9QKYD@o|-AhKwy#oIr|^9v&#Pi8xx>Cj6(+x{>=U-WG(}?|8Zcygd}MH^T0s~ zaRln%f9-$#e_;RRUmUIfAKQNsKO`jy+kZWHNJ{E}Bmfte0*AqW?Z5nA_`9mFtG*Vw z9i$g)H8oTX5D1Q!!2iybD*(u<E2m}hD32>givHi_{x9xF(Vnc&6S>%=)`PFasi!8ah|J+J* zqgb0W98njg#h0x6Wy_yfRkvTy3f|XCQ4ZVQu97dZz5L+2^{Blo&a8gHu}V~9%?h{m z_V>2k-gf(0a_!@cCdIQalV83JBIUe%lJ|J(Gi6jxZfxx2p#N8F5jL4*H6v%_-d1n& zE-FY&K%n|#(Cqk*{1H-;*4%KzXzJC(D&>G~!CC=Q%hgP)qNt4cH zQ=dDUEw*pv^5CED_S(vG?YWc5h6{Gb>}pL_RUJBB%i`~5q#aMq3wTW|AZ+a(?0L1L zvVa@WmJmF%LToMKTOHpr<%_&3=YNe2DP1!9>5$vIT*o+~AW1^;e(m<(yX-d^ zauI1J>hU{l&r?c;Z{KyjY2=QC3FG3~jb#>oZ_`YHf6qSK^=+9H^9z5bJUerCddmjO zx`USwKOe+2t?(smrX!U3R60}(;zn_Z(!4=%~#4w1IF`|K$nidI7Q~^*^*Sc<* z&BgOo)<=^w^nx)J(legEgJM0%F@z1|@fH$7R!IlzH1Kiiv;S&8Z8 ziXR!QuGP!bnNFD|eId$JC67@$?Tj+`GH2o_*5j8?4jmdamzkuF1nT!^S9r_TV>8kK z>`hJ`?N2HaZvI+5Gh7;8bUo2>F8VGxRZ@5B5&yxkcc=NBGjFJv{<3l3b@>xpiw
@&~7~N8a-0{Y%4JE>MEU%WK}< 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 _@LKCD?IW5*{?jQvxk+bl5+-q? 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
kykrbsk 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

~HY%v9 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 z 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%0D(V4%gEXN)LzFn(yq zdANm6Oxf>Q*dInHHLRkGIW}mkko`R8Fd=Q&JbFZc;)$@}2f5fnr#$E$d=4AN{5oGJ z`&67ZeqZ+z4;=rHbeOjmlz3<&yfcGZ^;ZI)I#Qz8M|RjPn|!N6j_ENOlCE7=)!8Xl z&6jKXXxugdD9vO6b*t)&y`H(GD5OY*=0hTl@MI$S5euu{5`6WI(SBnLGpEZ3{AU*$ zS@@23BB!nS{G$N_2Pg~~k;`e+OeRe6WNC zr7^@+IWYQ{jI)nBfu|dfSnEJmiY}>Gcs4z|yR?>UEX4-`*87Wq6IFI|Bl=MmF^cOd z?6^&nefXho=5xC;okBEnRKo^z14y`fkv1tJkpoDOhs;-<0Ekv!BOK?D=E0P+lS1S$ z_Gbf3X$;x4_&vh9GPQbDY^-`JFa^CXB74OsFF-+E8`n!(a*1WAlM}_IVmvd&@sSP#wsZfv->bkL9@R7zcnbv?ESfjJfL3d zj_zmu9j|nYzi+(Hw$F#FH!gBLeV}>TKNI#n(;vGizjxRm@i3Mrm9^X+J?oql;#*6~yNmNl?h6D z9-v@J$Oe{cw!e_~9|Bc+IDq zNQd*a2_?TE?1O$n^#|;D(6MUQ6QEXw&WNDM9n-Lq@|j5614aD!+D>vC$==uoav4

E>4RU@_0?&qO8uTiiUvj6_1YN7=wD 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

QX|;d-%&6ZtqF7s{K9x7t5NIpzcO8 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 Tx&Qy${pX+O*0zp8Lze*nQc+ua literal 0 HcmV?d00001 diff --git a/mingw-w64-gtkmm/PKGBUILD b/mingw-w64-gtkmm/PKGBUILD index 5fff9d7a93..9e33f662f9 100644 --- a/mingw-w64-gtkmm/PKGBUILD +++ b/mingw-w64-gtkmm/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=gtkmm - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.24.4 -pkgrel=2 +pkgrel=3 pkgdesc="C++ bindings for gtk2 (mingw-w64)" arch=('any') url="http://www.gtkmm.org" @@ -12,7 +11,7 @@ license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-atkmm" "${MINGW_PACKAGE_PREFIX}-pangomm" "${MINGW_PACKAGE_PREFIX}-gtk2") options=(staticlibs strip) -source=("http://ftp.gnome.org/pub/GNOME/sources/gtkmm/${pkgver%.*}/gtkmm-$pkgver.tar.xz") +source=("http://ftp.gnome.org/pub/GNOME/sources/gtkmm/${pkgver%.*}/gtkmm-${pkgver}.tar.xz") md5sums=('b9ac60c90959a71095f07f84dd39961d') build() { @@ -31,6 +30,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-gtkmm3/PKGBUILD b/mingw-w64-gtkmm3/PKGBUILD index f1d0a76cf2..41ad6bfea7 100644 --- a/mingw-w64-gtkmm3/PKGBUILD +++ b/mingw-w64-gtkmm3/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtkmm3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.0 -pkgrel=1 +pkgrel=2 pkgdesc="C++ bindings for gtk3 (mingw-w64)" arch=('any') url="http://gtkmm.org" @@ -11,7 +11,7 @@ license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-atkmm" "${MINGW_PACKAGE_PREFIX}-pangomm" "${MINGW_PACKAGE_PREFIX}-gtk3") options=('staticlibs' 'strip') -source=("http://ftp.gnome.org/pub/GNOME/sources/gtkmm/${pkgver%.*}/gtkmm-$pkgver.tar.xz") +source=("http://ftp.gnome.org/pub/GNOME/sources/gtkmm/${pkgver%.*}/gtkmm-${pkgver}.tar.xz") sha256sums=('9b8d4af5e1bb64e52b53bc8ef471ef43e1b9d11a829f16ef54c3a92985b0dd0c') build() { @@ -29,6 +29,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-gtksourceview2/PKGBUILD b/mingw-w64-gtksourceview2/PKGBUILD index 860b5144a2..292d7234a9 100644 --- a/mingw-w64-gtksourceview2/PKGBUILD +++ b/mingw-w64-gtksourceview2/PKGBUILD @@ -1,25 +1,22 @@ # Maintainer: Alexey Pavlov _realname=gtksourceview - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}2" pkgver=2.10.5 -pkgrel=1 +pkgrel=2 pkgdesc="A text widget adding syntax highlighting and more to GNOME (mingw-w64)" arch=('any') url="http://www.gnome.org" license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "intltool") -depends=( - "${MINGW_PACKAGE_PREFIX}-gtk2>=2.22.0" - "${MINGW_PACKAGE_PREFIX}-libxml2>=2.7.7" -) +depends=("${MINGW_PACKAGE_PREFIX}-gtk2>=2.22.0" + "${MINGW_PACKAGE_PREFIX}-libxml2>=2.7.7") options=(!libtool strip staticlibs) source=("http://ftp.gnome.org/pub/gnome/sources/gtksourceview/${pkgver%.*}/gtksourceview-${pkgver}.tar.bz2") md5sums=('1219ad1694df136f126507466aeb41aa') prepare() { - cd ${_realname}-$pkgver + cd ${_realname}-${pkgver} sed -i 's#python#python2#' gtksourceview/language-specs/convert.py } @@ -33,10 +30,11 @@ build() { --enable-shared \ --disable-static \ --enable-compile-warnings=maximum + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-gtksourceview3/PKGBUILD b/mingw-w64-gtksourceview3/PKGBUILD index e30ce98ef5..d90666bfd6 100644 --- a/mingw-w64-gtksourceview3/PKGBUILD +++ b/mingw-w64-gtksourceview3/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtksourceview pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" pkgver=3.16.1 -pkgrel=1 +pkgrel=2 pkgdesc="A text widget adding syntax highlighting and more to GNOME (mingw-w64)" arch=('any') url="http://www.gnome.org" @@ -12,6 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-glade" + "${MINGW_PACKAGE_PREFIX}-vala" "intltool" "gtk-doc") depends=("${MINGW_PACKAGE_PREFIX}-gtk3" @@ -23,8 +24,7 @@ md5sums=('e727db8202d23a54b54b69ebc66f5331' '324c9e3bb2e4fa2a4977653ce6ed6ef9') prepare() { - cd ${_realname}-$pkgver - + cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/0006-hack-convert-path-back-to-unix.patch autoreconf -fi @@ -45,12 +45,13 @@ build() { --enable-shared \ --disable-static \ --enable-glade-catalog + LC_ALL=C make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install for ff in ${pkgdir}/${MINGW_PREFIX}/bin/libgtksourceview*.dll; do local _reallib=$(basename $ff) diff --git a/mingw-w64-gtkspell/PKGBUILD b/mingw-w64-gtkspell/PKGBUILD index 822b8f948b..8231ef19ae 100644 --- a/mingw-w64-gtkspell/PKGBUILD +++ b/mingw-w64-gtkspell/PKGBUILD @@ -4,7 +4,7 @@ _realname=gtkspell pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.16 -pkgrel=3 +pkgrel=4 pkgdesc="Provides word-processor-style highlighting and replacement of misspelled words in a GtkTextView widget (mingw-w64)" arch=('any') url="http://gtkspell.sourceforge.net/" @@ -22,7 +22,7 @@ md5sums=('f75dcc9338f182c571b321d37c606a94' '0ea2a6801314e22ba8e517fca4ad3066') prepare() { - cd ${_realname}-$pkgver + cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/gtkspell-no-undefined.patch WANT_AUTOMAKE=latest autoreconf -fi @@ -37,11 +37,12 @@ build() { --host=${MINGW_CHOST} \ --enable-shared \ --disable-static + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-gtkspell3/PKGBUILD b/mingw-w64-gtkspell3/PKGBUILD index 1725c0f272..e5087fe521 100644 --- a/mingw-w64-gtkspell3/PKGBUILD +++ b/mingw-w64-gtkspell3/PKGBUILD @@ -2,31 +2,30 @@ _realname=gtkspell3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.0.6 +pkgver=3.0.7 pkgrel=1 pkgdesc="Provides word-processor-style highlighting and replacement of misspelled words in a GtkTextView widget (mingw-w64)" arch=('any') url="http://gtkspell.sourceforge.net/" license=("GPL") -makedepends=("gtk-doc" - "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-iso-codes" - "intltool") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-iso-codes" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-vala" + "gtk-doc" + "intltool") depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-enchant") + "${MINGW_PACKAGE_PREFIX}-enchant") options=(!libtool strip staticlibs) source=(http://gtkspell.sourceforge.net/download/${_realname}-${pkgver}.tar.gz 001-win.patch) -md5sums=('cdc550a06dc424c8c497672bc54649db' +md5sums=('f15a7c29b71d6ae343c783af3571c8d2' '761980f7811a41f4dab9a2a797946316') prepare() { - cd ${_realname}-$pkgver - + cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-win.patch WANT_AUTOMAKE=latest autoreconf -fi @@ -42,10 +41,12 @@ build() { --enable-shared \ --disable-static \ --enable-gtk2 + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-http-parser/PKGBUILD b/mingw-w64-http-parser/PKGBUILD index 2f8ff886c0..da3719f7d2 100644 --- a/mingw-w64-http-parser/PKGBUILD +++ b/mingw-w64-http-parser/PKGBUILD @@ -2,26 +2,25 @@ _realname=http-parser pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.3 -pkgrel=2 +pkgver=2.5.0 +pkgrel=1 pkgdesc='Parser for HTTP Request/Response written in C (mingw-w64)' arch=('any') url='http://github.com/joyent/http-parser' license=('MIT') -source=("http://github.com/joyent/http-parser/archive/v${pkgver}.tar.gz" +source=(${_realname}-${pkgver}.tar.gz::"http://github.com/joyent/http-parser/archive/v${pkgver}.tar.gz" makefile.patch) -md5sums=('2c4092f5c2dc99798fe28e9c0647e869' - '8f7d045d19fdbf8132928cfba98e2dce') +md5sums=('6172c0d2fbc10d2b57ff05f03b67312f' + '9d8371b97bc17616a8df6c69f7b75d7f') options=('strip' 'staticlibs') prepare() { - cd ${srcdir}/${_realname}-$pkgver - + cd ${srcdir}/${_realname}-${pkgver} patch -p0 -i ${srcdir}/makefile.patch } build() { - cd ${srcdir}/${_realname}-$pkgver + cd ${srcdir}/${_realname}-${pkgver} CC=gcc \ AR=ar \ make -j1 \ @@ -30,7 +29,7 @@ build() { package() { - cd ${srcdir}/${_realname}-$pkgver + cd ${srcdir}/${_realname}-${pkgver} mkdir -p ${pkgdir}/${MINGW_PREFIX}/{bin,include,lib} install -Dm644 http_parser.h "${pkgdir}/${MINGW_PREFIX}/include/http_parser.h" cp *.a ${pkgdir}/${MINGW_PREFIX}/lib/ diff --git a/mingw-w64-http-parser/makefile.patch b/mingw-w64-http-parser/makefile.patch index 7acb466668..b0ec0f5852 100644 --- a/mingw-w64-http-parser/makefile.patch +++ b/mingw-w64-http-parser/makefile.patch @@ -4,24 +4,19 @@ # IN THE SOFTWARE. PLATFORM ?= $(shell sh -c 'uname -s | tr "[A-Z]" "[a-z]"') --SONAME ?= libhttp_parser.so.2.3 +-SONAME ?= libhttp_parser.so.2.5.0 +SONAME ?= libhttp_parser-2.dll CC?=gcc AR?=ar -@@ -33,14 +33,8 @@ - CFLAGS += -Wall -Wextra -Werror +@@ -33,9 +33,7 @@ CFLAGS_DEBUG = $(CFLAGS) -O0 -g $(CFLAGS_DEBUG_EXTRA) CFLAGS_FAST = $(CFLAGS) -O3 $(CFLAGS_FAST_EXTRA) + CFLAGS_BENCH = $(CFLAGS_FAST) -Wno-unused-parameter -CFLAGS_LIB = $(CFLAGS_FAST) -fPIC - --LDFLAGS_LIB = $(LDFLAGS) -shared - --ifneq (darwin,$(PLATFORM)) --# TODO(bnoordhuis) The native SunOS linker expects -h rather than -soname... --LDFLAGS_LIB += -Wl,-soname=$(SONAME) --endif +-LDFLAGS_LIB = $(LDFLAGS) -shared +LDFLAGS_LIB = $(LDFLAGS) -shared -Wl,--out-implib=libhttp_parser.dll.a - test: test_g test_fast - ./test_g + INSTALL ?= install + PREFIX ?= $(DESTDIR)/usr/local diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index d0f0572237..fe45503ce2 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -2,7 +2,7 @@ _realname=imagemagick pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.9.1.2 +pkgver=6.9.1.8 pkgrel=1 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') @@ -51,7 +51,7 @@ source=(http://www.imagemagick.org/download/ImageMagick-${pkgver%.*}-${pkgver##* 001-relocate.patch 002-build-fixes.patch winpath.patch) -md5sums=('57e8e138b05d8115c1ab7d9f151645bd' +md5sums=('deca570ef08bfff8a1630a7c7a6b4841' 'SKIP' 'c95a23e8562dbab4e6b0e5407da25209' '7821087a00c459c0d3482508fdc1e25e' diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index d76375286b..1b8038c76f 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -11,7 +11,7 @@ fi _realname=inkscape pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.91 -pkgrel=7 +pkgrel=8 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') url="http://inkscape.sourceforge.net/" @@ -20,8 +20,7 @@ install=inkscape-${CARCH}.install makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-boost" - "intltool" - ) + "intltool") depends=( "${MINGW_PACKAGE_PREFIX}-aspell" "${MINGW_PACKAGE_PREFIX}-gc" @@ -97,7 +96,7 @@ prepare() { build() { # export lt_cv_deplibs_check_method='pass_all' - rm -rf $srcdir/cd build-${CARCH} + [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} mkdir -p build-${CARCH} && cd build-${CARCH} declare -a extra_config diff --git a/mingw-w64-jbigkit/PKGBUILD b/mingw-w64-jbigkit/PKGBUILD index d87bf6004b..4b86959729 100644 --- a/mingw-w64-jbigkit/PKGBUILD +++ b/mingw-w64-jbigkit/PKGBUILD @@ -4,7 +4,7 @@ _realname=jbigkit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1 -pkgrel=2 +pkgrel=3 pkgdesc="Data compression library/utilities for bi-level high-resolution images (mingw-w64)" arch=('any') url="http://www.cl.cam.ac.uk/~mgk25/jbigkit/" @@ -12,7 +12,7 @@ license=(GPL2) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=("http://www.cl.cam.ac.uk/~mgk25/download/${_realname}-$pkgver.tar.gz" +source=("http://www.cl.cam.ac.uk/~mgk25/download/${_realname}-${pkgver}.tar.gz" allNewMainMakefile.all.patch manfiles.all.patch pbmtoolsMakefile.all.patch diff --git a/mingw-w64-leptonica/PKGBUILD b/mingw-w64-leptonica/PKGBUILD index 787fc5ab5e..7dc9e679d1 100644 --- a/mingw-w64-leptonica/PKGBUILD +++ b/mingw-w64-leptonica/PKGBUILD @@ -3,7 +3,7 @@ _realname=leptonica pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.72 -pkgrel=1 +pkgrel=2 pkgdesc="Leptonica library (mingw-w64)" arch=('any') url="http://www.leptonica.org" @@ -21,14 +21,14 @@ source=("http://www.leptonica.org/source/${_realname}-${pkgver}.tar.gz") md5sums=('7581db29f8442197ce68e766c6047c4b') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "$srcdir/${_realname}-${pkgver}" } build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -44,5 +44,5 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libcdr/PKGBUILD b/mingw-w64-libcdr/PKGBUILD index 2f5845b259..4de118fc75 100644 --- a/mingw-w64-libcdr/PKGBUILD +++ b/mingw-w64-libcdr/PKGBUILD @@ -3,21 +3,21 @@ _realname=libcdr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.1.1 -pkgrel=2 +pkgrel=3 pkgdesc="CorelDraw file format importer library for LibreOffice (mingw-w64)" arch=('any') license=('GPL2' 'LGPL2.1' 'MPL') url="https://wiki.documentfoundation.org/DLP/Libraries/libcdr" -options=('staticlibs' 'strip') +options=('staticlibs' 'strip' '!buildflags') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "doxygen") -depends=("${MINGW_PACKAGE_PREFIX}-libwpd" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-doxygen") +depends=("${MINGW_PACKAGE_PREFIX}-icu" "${MINGW_PACKAGE_PREFIX}-lcms2" "${MINGW_PACKAGE_PREFIX}-librevenge" - "${MINGW_PACKAGE_PREFIX}-icu") -source=(http://dev-www.libreoffice.org/src/${_realname}/${_realname}-$pkgver.tar.xz) + "${MINGW_PACKAGE_PREFIX}-libwpd") +source=(http://dev-www.libreoffice.org/src/${_realname}/${_realname}-${pkgver}.tar.xz) md5sums=('72ed4d2f900eac95061207d026d5324c') prepare() { @@ -25,23 +25,27 @@ prepare() { } build() { - cd ${_realname}-${pkgver} - ./configure \ + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + #cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --enable-static + --enable-static \ + --disable-silent-rules - make + make V=1 } check() { - cd ${_realname}-${pkgver} + cd build-${MINGW_CHOST} make -k check } package() { - cd ${_realname}-${pkgver} + cd build-${MINGW_CHOST} make -j1 DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libchamplain/PKGBUILD b/mingw-w64-libchamplain/PKGBUILD index 29f61c191d..ec83335a97 100644 --- a/mingw-w64-libchamplain/PKGBUILD +++ b/mingw-w64-libchamplain/PKGBUILD @@ -3,23 +3,23 @@ _realname=libchamplain pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.12.10 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="C library providing ClutterActor to display maps (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-clutter" "${MINGW_PACKAGE_PREFIX}-clutter-gtk" "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-sqlite3" "${MINGW_PACKAGE_PREFIX}-libsoup" - "${MINGW_PACKAGE_PREFIX}-memphis") + "${MINGW_PACKAGE_PREFIX}-memphis" + "${MINGW_PACKAGE_PREFIX}-sqlite3") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-vala" "gtk-doc") options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch 002-give-cc-to-gir-scanner.mingw.patch) sha256sums=('bf53ceb2405d4e23a14596a53ecc2a821b003f8c69de4a7de3a39d6e99462b05' @@ -53,8 +53,8 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libgdata/0004-localedir-fix.patch b/mingw-w64-libgdata/0004-localedir-fix.patch deleted file mode 100644 index efea498db9..0000000000 --- a/mingw-w64-libgdata/0004-localedir-fix.patch +++ /dev/null @@ -1,66 +0,0 @@ ---- libgdata-0.15.2/m4/intltool.m4.orig 2014-08-15 23:20:04.371400000 +0400 -+++ libgdata-0.15.2/m4/intltool.m4 2014-08-15 23:21:28.549000000 +0400 -@@ -155,31 +155,6 @@ - # Substitute ALL_LINGUAS so we can use it in po/Makefile - AC_SUBST(ALL_LINGUAS) - --# Set DATADIRNAME correctly if it is not set yet --# (copied from glib-gettext.m4) --if test -z "$DATADIRNAME"; then -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[]], -- [[extern int _nl_msg_cat_cntr; -- return _nl_msg_cat_cntr]])], -- [DATADIRNAME=share], -- [case $host in -- *-*-solaris*) -- dnl On Solaris, if bind_textdomain_codeset is in libc, -- dnl GNU format message catalog is always supported, -- dnl since both are added to the libc all together. -- dnl Hence, we'd like to go with DATADIRNAME=share -- dnl in this case. -- AC_CHECK_FUNC(bind_textdomain_codeset, -- [DATADIRNAME=share], [DATADIRNAME=lib]) -- ;; -- *) -- [DATADIRNAME=lib] -- ;; -- esac]) --fi --AC_SUBST(DATADIRNAME) -- - IT_PO_SUBDIR([po]) - - ]) ---- libgdata-0.15.2/po/Makefile.in.in.orig 2014-08-15 23:15:13.750400000 +0400 -+++ libgdata-0.15.2/po/Makefile.in.in 2014-08-15 23:19:03.934000000 +0400 -@@ -33,8 +33,7 @@ - datadir = @datadir@ - datarootdir = @datarootdir@ - libdir = @libdir@ --DATADIRNAME = @DATADIRNAME@ --itlocaledir = $(prefix)/$(DATADIRNAME)/locale -+localedir = @localedir@ - subdir = po - install_sh = @install_sh@ - # Automake >= 1.8 provides @mkdir_p@. -@@ -108,7 +107,7 @@ - install-data-yes: all - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ -+ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ -@@ -142,8 +141,8 @@ - uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - - check: all $(GETTEXT_PACKAGE).pot diff --git a/mingw-w64-libgdata/PKGBUILD b/mingw-w64-libgdata/PKGBUILD index f239fb83d5..cf0cd040e4 100644 --- a/mingw-w64-libgdata/PKGBUILD +++ b/mingw-w64-libgdata/PKGBUILD @@ -2,40 +2,38 @@ _realname=libgdata pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.17.1 +pkgver=0.17.2 pkgrel=1 arch=('any') pkgdesc="Library for accessing GData webservices (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-libsoup" - "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" - "${MINGW_PACKAGE_PREFIX}-liboauth" "${MINGW_PACKAGE_PREFIX}-json-glib" + "${MINGW_PACKAGE_PREFIX}-liboauth" + "${MINGW_PACKAGE_PREFIX}-libsoup" + "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-uhttpmock") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "make" - "libtool" - "intltool" - "automake-wrapper" - "autoconf" - "patch") + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "make" + "libtool" + "intltool" + "automake-wrapper" + "autoconf" + "patch") options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 0001-give-cc-to-gir-scanner.all.patch 0002-symbols.patch - 0003-wsock.patch - 0004-localedir-fix.patch) -sha256sums=('5ef1c0f246f60812c43e3a7d077442afc872913a03f3a5eb789698dc2319bd95' + 0003-wsock.patch) +sha256sums=('9b9b4f68bef86ee2926ea14f182baf7ddaa6717dd138b5ff670f07d126176fe0' '2184839b01d19afebf10b8ca91c79682b834c9e812e0fdeb683c69b851689d1f' '3f9d5f53a2d1be337686a83d3b33f111e294dcbc4f78ed1facbfb048f6c5973a' - 'ed4c9c441ee3bf4a5279c5d212b2c1116ce443763151b71975611406310575df' - '0d035c44f80b0bfb6ed28b14dc908bf98ac11c943a99281cd93c5d8ed26b51a8') + 'ed4c9c441ee3bf4a5279c5d212b2c1116ce443763151b71975611406310575df') prepare() { cd ${_realname}-${pkgver} @@ -43,12 +41,12 @@ prepare() { patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.all.patch patch -p1 -i ${srcdir}/0002-symbols.patch patch -p1 -i ${srcdir}/0003-wsock.patch - patch -p1 -i ${srcdir}/0004-localedir-fix.patch autoreconf -fi } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -62,12 +60,13 @@ build() { --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ --disable-gnome + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libgit2/002-windows-headers.patch b/mingw-w64-libgit2/002-windows-headers.patch deleted file mode 100644 index 499803fa2a..0000000000 --- a/mingw-w64-libgit2/002-windows-headers.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- libgit2-0.22.2/src/openssl_stream.c.orig 2015-03-25 11:59:25.797000000 +0300 -+++ libgit2-0.22.2/src/openssl_stream.c 2015-03-25 12:03:30.654600000 +0300 -@@ -9,8 +9,12 @@ - - #include - #include -+#ifdef _WIN32 -+#include -+#else - #include - #include -+#endif - - #include "global.h" - #include "posix.h" diff --git a/mingw-w64-libgit2/PKGBUILD b/mingw-w64-libgit2/PKGBUILD index e45e93c73b..fffabc68d8 100644 --- a/mingw-w64-libgit2/PKGBUILD +++ b/mingw-w64-libgit2/PKGBUILD @@ -2,52 +2,46 @@ _realname=libgit2 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=0.22.2 +pkgver=0.23.0 pkgrel=1 pkgdesc='A linkable library for Git (mingw-w64)' arch=('any') url='https://github.com/libgit2/libgit2' license=('GPL2' 'custom') options=('strip') -depends=("${MINGW_PACKAGE_PREFIX}-http-parser" +depends=("${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-http-parser" "${MINGW_PACKAGE_PREFIX}-libssh2" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") -_pkgfqn=v${pkgver}.tar.gz -source=("https://github.com/libgit2/libgit2/archive/${_pkgfqn}" - 001-fix-pkg-config.patch - 002-windows-headers.patch) -md5sums=('7b21448c471dc76a3ca4801b61ac856a' - '341f5b8f48d1a489b157dc5300628960' - '0ce56d74377548c04434ed50bf3c6aa7') +source=(${_realname}-${pkgver}.tar.gz::"https://github.com/libgit2/libgit2/archive/v${pkgver}.tar.gz" + 001-fix-pkg-config.patch) +md5sums=('683d1164e361e2a0a8d52652840e2340' + '341f5b8f48d1a489b157dc5300628960') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-fix-pkg-config.patch - patch -p1 -i ${srcdir}/002-windows-headers.patch } build() { mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DTHREADSAFE:BOOL=1 \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ - ${srcdir}/${_realname}-${pkgver} + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DPKG_CONFIG_WITHOUT_PREFIX=ON \ + -DTHREADSAFE=ON \ + -DWINHTTP=OFF \ + ../${_realname}-${pkgver} make } package() { cd ${srcdir}/build-${MINGW_CHOST} - make install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libgit2.pc + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-liblqr/PKGBUILD b/mingw-w64-liblqr/PKGBUILD index 8850b53038..7f1b339662 100644 --- a/mingw-w64-liblqr/PKGBUILD +++ b/mingw-w64-liblqr/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=liblqr - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.4.2 -pkgrel=2 +pkgrel=3 pkgdesc="A seam-carving C/C++ library called Liquid Rescale (mingw-w64)" arch=('any') url="http://liblqr.wikidot.com/" @@ -12,20 +11,21 @@ license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-glib2") options=('staticlibs' 'strip') -source=("http://liblqr.wikidot.com/local--files/en:download-page/${_realname}-1-$pkgver.tar.bz2") -md5sums=('915643d993da97e10665d48c0bf8f3d0') +source=(${_realname}-${pkgver}.tar.gz::https://github.com/carlobaldassi/liblqr/archive/v${pkgver}.tar.gz) +md5sums=('f7b4ecddd8a038f057e236347fd7767c') build() { - cd "$srcdir/${_realname}-1-$pkgver" + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - ../configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} + make } package() { - cd "$srcdir/${_realname}-1-$pkgver/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libmng/PKGBUILD b/mingw-w64-libmng/PKGBUILD index c1232aacef..a9c1f22781 100644 --- a/mingw-w64-libmng/PKGBUILD +++ b/mingw-w64-libmng/PKGBUILD @@ -17,13 +17,17 @@ source=("http://downloads.sourceforge.net/libmng/${_realname}-${pkgver}.tar.xz"{ libmng-1.0.10-mingw.patch libmng-1.0.9-dont-leak-zlib-streams.diff no-undefined.patch - libmng-2.0.3-cmake-versioning.patch) + libmng-2.0.3-cmake-versioning.patch + fix-mng-version-cmake.patch + pkg-config-extra-flags.patch) md5sums=('e9e899adb1b681b17f14d91e261878c5' 'SKIP' 'cb375eee738835855615afd5c056252e' '9a3638775d5efaa1111973b40f4f96a4' 'e4614f8cd3c813b38340468b2277c3ae' - '3dff90a06b3ddb372d0a3dd15e08c713') + '3dff90a06b3ddb372d0a3dd15e08c713' + '3fd61b6c7814bb30dc03cf2b65280a0b' + 'eab95494c678f84164a6b6bd418732b9') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -31,20 +35,20 @@ prepare() { patch -p1 -i "$srcdir"/libmng-1.0.10-mingw.patch patch -p1 -i "$srcdir"/no-undefined.patch patch -p1 -i "$srcdir"/libmng-2.0.3-cmake-versioning.patch - - #make distclean - #autoreconf -fiv + patch -p1 -i "$srcdir"/fix-mng-version-cmake.patch + patch -p1 -i "$srcdir"/pkg-config-extra-flags.patch } build() { [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd ${srcdir}/build-${MINGW_CHOST} - MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=RELEASE \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_STATIC_LIBS=ON \ ../${_realname}-${pkgver} make diff --git a/mingw-w64-libmng/fix-mng-version-cmake.patch b/mingw-w64-libmng/fix-mng-version-cmake.patch new file mode 100644 index 0000000000..4a24a0bcae --- /dev/null +++ b/mingw-w64-libmng/fix-mng-version-cmake.patch @@ -0,0 +1,7 @@ +--- libmng-2.0.3/cmake/vers.cmake.orig 2013-03-05 15:14:32.000000000 +0400 ++++ libmng-2.0.3/cmake/vers.cmake 2015-07-14 14:57:28.455000000 +0300 +@@ -1,3 +1,3 @@ + SET(MNG_VERSION_MAJOR 2) + SET(MNG_VERSION_MINOR 0) +-SET(MNG_VERSION_PATCH 2) ++SET(MNG_VERSION_PATCH 3) diff --git a/mingw-w64-libmng/pkg-config-extra-flags.patch b/mingw-w64-libmng/pkg-config-extra-flags.patch new file mode 100644 index 0000000000..2b9a37a00a --- /dev/null +++ b/mingw-w64-libmng/pkg-config-extra-flags.patch @@ -0,0 +1,26 @@ +--- libmng-2.0.3/cmake/libmng.pc.cmake.orig 2015-07-14 14:58:28.186600000 +0300 ++++ libmng-2.0.3/cmake/libmng.pc.cmake 2015-07-14 14:58:41.977000000 +0300 +@@ -8,4 +8,4 @@ + Version: @MNG_VERSION@ + Libs: -L${libdir} -lmng + Libs.private: @MNG_LIBS_PRIVATE@ +-Cflags: -I${includedir} ++Cflags: -I${includedir} @MNG_DEFINES@ +--- libmng-2.0.3/CMakeLists.txt.orig 2012-07-29 23:28:11.000000000 +0400 ++++ libmng-2.0.3/CMakeLists.txt 2015-07-14 14:59:15.095800000 +0300 +@@ -342,6 +342,7 @@ + # + #------------------ STATIC --------------------- + IF(BUILD_STATIC_LIBS) ++ SET(MNG_DEFINES "") + ADD_LIBRARY(${MNG_LIBRARY_NAME} STATIC + ${TARGET_FILES}) + # +@@ -387,6 +388,7 @@ + IF(WIN32) + #-DMNG_BUILD_DLL or -DMNG_DLL or -DMNG_USE_DLL : cnf. libmng_types.h + ADD_DEFINITIONS(-DMNG_BUILD_DLL) ++ SET(MNG_DEFINES "-DMNG_USE_DLL") + ENDIF(WIN32) + + ADD_LIBRARY(${MNG_LIBRARY_NAME}-shared diff --git a/mingw-w64-liboauth/PKGBUILD b/mingw-w64-liboauth/PKGBUILD index 7a48da69a4..59cac28225 100644 --- a/mingw-w64-liboauth/PKGBUILD +++ b/mingw-w64-liboauth/PKGBUILD @@ -3,13 +3,14 @@ _realname=liboauth pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.3 -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="liboauth is a collection of POSIX-c functions implementing the OAuth Core RFC 5849 standard (mingw-w64)" license=("GPL 2") url="http://liboauth.sourceforge.net/" -depends=("${MINGW_PACKAGE_PREFIX}-nss" - "${MINGW_PACKAGE_PREFIX}-curl") +depends=("${MINGW_PACKAGE_PREFIX}-curl" + #"${MINGW_PACKAGE_PREFIX}-nss" + ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "make" @@ -31,6 +32,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -40,11 +42,12 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ - --enable-nss + --disable-nss + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libpeas/0003-localedir-fix.patch b/mingw-w64-libpeas/0003-localedir-fix.patch deleted file mode 100644 index 76a3f230e2..0000000000 --- a/mingw-w64-libpeas/0003-localedir-fix.patch +++ /dev/null @@ -1,33 +0,0 @@ -=== modified file 'Makefile.in.in' ---- a/po/Makefile.in.in 2012-01-18 16:37:06 +0000 -+++ b/po/Makefile.in.in 2013-05-12 17:12:40 +0000 -@@ -33,8 +33,7 @@ - datadir = @datadir@ - datarootdir = @datarootdir@ - libdir = @libdir@ --DATADIRNAME = @DATADIRNAME@ --itlocaledir = $(prefix)/$(DATADIRNAME)/locale -+localedir = @localedir@ - subdir = po - install_sh = @install_sh@ - # Automake >= 1.8 provides @mkdir_p@. -@@ -108,7 +107,7 @@ - install-data-yes: all - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ -+ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ -@@ -142,8 +141,8 @@ - uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - - check: all $(GETTEXT_PACKAGE).pot diff --git a/mingw-w64-libpeas/0004-fix-crash-on-gc-collect.patch b/mingw-w64-libpeas/0004-fix-crash-on-gc-collect.patch deleted file mode 100644 index b4612517e1..0000000000 --- a/mingw-w64-libpeas/0004-fix-crash-on-gc-collect.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/loaders/python/peas-python-internal.py b/loaders/python/peas-python-internal.py -index 1f96ee1..029648f 100644 ---- a/loaders/python/peas-python-internal.py -+++ b/loaders/python/peas-python-internal.py -@@ -48,7 +48,6 @@ class Hooks(object): - sys.path.insert(0, PEAS_PYEXECDIR) - gettext.install(GETTEXT_PACKAGE, PEAS_LOCALEDIR) - -- self.__idle_gc = 0 - self.__module_cache = {} - self.__extension_cache = {} - -@@ -152,30 +151,17 @@ class Hooks(object): - module_gtypes[gtype] = None - return None - -- def __run_gc(self): -- gc.collect() -- -- self.__idle_gc = 0 -- return False -- - def garbage_collect(self): - # We run the GC right now and we schedule - # a further collection in the main loop - gc.collect() - -- if self.__idle_gc == 0: -- self.__idle_gc = GLib.idle_add(self.__run_gc) -- GLib.source_set_name_by_id(self.__idle_gc, '[libpeas] run_gc') -- - def all_plugins_unloaded(self): - pass - - def exit(self): - gc.collect() - -- if self.__idle_gc != 0: -- GLib.source_remove(self.__idle_gc) -- - - if os.getenv('PEAS_PYTHON_PROFILE') is not None: - import cProfile diff --git a/mingw-w64-libpeas/PKGBUILD b/mingw-w64-libpeas/PKGBUILD index d8321f87c8..21c29a4078 100644 --- a/mingw-w64-libpeas/PKGBUILD +++ b/mingw-w64-libpeas/PKGBUILD @@ -2,7 +2,7 @@ _realname=libpeas pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.14.0 +pkgver=1.15.0 pkgrel=1 pkgdesc="A GObject-based plugins engine (mingw-w64)" arch=('any') @@ -23,19 +23,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('strip' 'staticlibs') install=${_realname}-${CARCH}.install source=(http://download.gnome.org/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz - 0002-give-cc-to-gir-scanner.all.patch - 0003-localedir-fix.patch - 0004-fix-crash-on-gc-collect.patch) -md5sums=('1347653703ba4d50dd746845c35d010a' - 'b79cae8a6794dc2511f6fcceaa809111' - 'ee5129050dae05733df41aec8cf36b40' - '4c1889c21cd595c5ffa0c5c81387d7c8') + 0002-give-cc-to-gir-scanner.all.patch) +md5sums=('990dcbcdea482e4845176b4ee88e7c63' + 'b79cae8a6794dc2511f6fcceaa809111') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0002-give-cc-to-gir-scanner.all.patch - patch -p1 -i ${srcdir}/0003-localedir-fix.patch - patch -p1 -i ${srcdir}/0004-fix-crash-on-gc-collect.patch autoreconf -fi } @@ -44,7 +38,7 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --sysconfdir=${MINGW_PREFIX}/etc \ --localstatedir=${MINGW_PREFIX}/var \ @@ -62,7 +56,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-librevenge/PKGBUILD b/mingw-w64-librevenge/PKGBUILD index c1bb4e59c3..fccc5c0758 100644 --- a/mingw-w64-librevenge/PKGBUILD +++ b/mingw-w64-librevenge/PKGBUILD @@ -3,14 +3,15 @@ _realname=librevenge pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.0.2 -pkgrel=1 +pkgrel=2 pkgdesc="Library for REVerses ENGineered formats filters (mingw-w64)" arch=('any') url="http://sf.net/p/libwpd/librevenge/" license=("MPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-doxygen" "${MINGW_PACKAGE_PREFIX}-pkg-config" - "doxygen") + "${MINGW_PACKAGE_PREFIX}-doxygen") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-zlib") @@ -41,7 +42,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LGPL" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LGPL" diff --git a/mingw-w64-libwpd/PKGBUILD b/mingw-w64-libwpd/PKGBUILD index e7a0c77afd..1f7a6db674 100644 --- a/mingw-w64-libwpd/PKGBUILD +++ b/mingw-w64-libwpd/PKGBUILD @@ -1,41 +1,48 @@ # Maintainer: Alexey Pavlov _realname=libwpd - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.10.0 -pkgrel=1 +pkgrel=2 pkgdesc="Library for Importing WordPerfect (tm) Documents (mingw-w64)" arch=('any') url="http://libwpd.sourceforge.net/" license=("LGPL-2.1+" "MPL-2.0+") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-librevenge" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-xz") -options=(staticlibs strip) +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-librevenge" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-zlib") +options=(staticlibs strip !buildflags) source=("http://downloads.sourceforge.net/project/${_realname}/${_realname}/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz") md5sums=('f7abb9b3ea96faf02ae019af68b1f07c') prepare() { cd ${srcdir}/${_realname}-${pkgver} + autoreconf -fiv } build() { export lt_cv_deplibs_check_method='pass_all' - cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + #cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} cd "${srcdir}/build-${MINGW_CHOST}" - ./configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ --enable-static \ --without-docs \ - --disable-werror - make + --disable-werror \ + --disable-silent-rules + + make V=1 } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-libwpg/PKGBUILD b/mingw-w64-libwpg/PKGBUILD index 025479d644..3c7757761c 100644 --- a/mingw-w64-libwpg/PKGBUILD +++ b/mingw-w64-libwpg/PKGBUILD @@ -1,16 +1,17 @@ # Maintainer: Alexey Pavlov _realname=libwpg - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.3.0 -pkgrel=1 +pkgrel=2 pkgdesc="Library to read and parse graphics in WordPerfect Graphics format (mingw-w64)" arch=('any') url="http://libwpg.sourceforge.net/" license=("LGPL-2.1+" "MPL-2.0+") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libwpd" "${MINGW_PACKAGE_PREFIX}-librevenge") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-librevenge" + "${MINGW_PACKAGE_PREFIX}-libwpd") options=(staticlibs strip) source=("http://downloads.sourceforge.net/project/${_realname}/${_realname}/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz") md5sums=('00f2db157d130c1334ef36da2e9f20a3') @@ -20,10 +21,11 @@ prepare() { } build() { - export lt_cv_deplibs_check_method='pass_all' - cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + #cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} cd "${srcdir}/build-${MINGW_CHOST}" - ./configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -31,11 +33,12 @@ build() { --enable-static \ --without-docs \ --disable-werror + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-memphis/PKGBUILD b/mingw-w64-memphis/PKGBUILD index 45d35255f3..90e55855c0 100644 --- a/mingw-w64-memphis/PKGBUILD +++ b/mingw-w64-memphis/PKGBUILD @@ -3,20 +3,20 @@ _realname=memphis pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.2.3 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A map-rendering library for OpenStreetMap (mingw-w64)" options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-cairo" "${MINGW_PACKAGE_PREFIX}-expat") -makedepends=("${MINGW_PACKAGE_PREFIX}-gtk-doc" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-vala") +makedepends=("${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-vala" + "gtk-doc") options=('strip' 'staticlibs') license=("GPL 2") url="https://github.com/jiuka/" -source=(https://github.com/jiuka/memphis/archive/${pkgver}.tar.gz +source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jiuka/memphis/archive/${pkgver}.tar.gz" 001-win.patch 002-give-cc-to-gir-scanner.mingw.patch) sha256sums=('10b43b2325ce9937ce33a7afdc247e926cc515ac612b50eb0520e1ac1455e1ab' @@ -47,10 +47,11 @@ build() { --target=${MINGW_CHOST} \ --enable-introspection \ --enable-vala=no + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-nspr/PKGBUILD b/mingw-w64-nspr/PKGBUILD index 7674af59e6..5d03706a4c 100644 --- a/mingw-w64-nspr/PKGBUILD +++ b/mingw-w64-nspr/PKGBUILD @@ -4,7 +4,7 @@ _realname=nspr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.10.8 -pkgrel=1 +pkgrel=2 pkgdesc="Netscape Portable Runtime (mingw-w64)" arch=('any') url="http://www.mozilla.org/projects/nspr/" diff --git a/mingw-w64-pangomm/PKGBUILD b/mingw-w64-pangomm/PKGBUILD index 00c77ea9b4..a31c43bcd4 100644 --- a/mingw-w64-pangomm/PKGBUILD +++ b/mingw-w64-pangomm/PKGBUILD @@ -3,7 +3,7 @@ _realname=pangomm pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.36.0 -pkgrel=0 +pkgrel=2 pkgdesc="C++ bindings for pango (mingw-w64)" arch=('any') url="http://gtkmm.sourceforge.net" @@ -11,11 +11,11 @@ license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-cairomm" "${MINGW_PACKAGE_PREFIX}-glibmm" "${MINGW_PACKAGE_PREFIX}-pango") options=(staticlibs strip) -source=("http://ftp.gnome.org/pub/GNOME/sources/pangomm/${pkgver%.*}/pangomm-$pkgver.tar.xz") +source=("http://ftp.gnome.org/pub/GNOME/sources/pangomm/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") sha256sums=('a8d96952c708d7726bed260d693cece554f8f00e48b97cccfbf4f5690b6821f0') prepare() { - cd "$srcdir/pangomm-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" sed -i -e "s,AC_DISABLE_STATIC,AC_DISABLE_STATIC\nlt_cv_deplibs_check_method='pass_all'," configure.ac autoconf --force } @@ -37,5 +37,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-popt/PKGBUILD b/mingw-w64-popt/PKGBUILD index 0351d5a529..f5c360dfcd 100644 --- a/mingw-w64-popt/PKGBUILD +++ b/mingw-w64-popt/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=popt - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.10.7 -pkgrel=3 +pkgrel=4 pkgdesc="C library for parsing command line parameters(mingw-w64)" arch=('any') url="http://www.rpm5.org/" @@ -31,12 +30,13 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --disable-static + --enable-static + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-postr/PKGBUILD b/mingw-w64-postr/PKGBUILD index f58af9c9ba..d8e9a3120a 100644 --- a/mingw-w64-postr/PKGBUILD +++ b/mingw-w64-postr/PKGBUILD @@ -2,19 +2,20 @@ _realname=postr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.13 +pkgver=0.13.1 pkgrel=1 arch=('any') pkgdesc="Upload photos to Flickr (mingw-w64)" options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-python2-pygtk") -makedepends=("${MINGW_PACKAGE_PREFIX}-gnome-doc-utils") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "gnome-doc-utils") options=('strip' 'staticlibs') license=("GPL 2") url="http://www.gnome.org" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) -sha256sums=('3d5d4515892c8b81494257d7fc35d1c13a857bbdaf7b01ba67bde62ebddb962c' +sha256sums=('8b004d108ebe18e0399f8a20282f129a3c8c9b6615322479d0e01918c6b42fbc' '7f963d3703a7e0fc678622a69961a6dabb00af050086520fd122fdcc37fbc292') prepare() { @@ -26,20 +27,23 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/share/pkgconfig" \ ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install rm ${pkgdir}/postrExtension.py } diff --git a/mingw-w64-tesseract-ocr/0001-Fix-broken_MSC_VER-checks.patch b/mingw-w64-tesseract-ocr/0001-Fix-broken_MSC_VER-checks.patch deleted file mode 100644 index 9ee19febb2..0000000000 --- a/mingw-w64-tesseract-ocr/0001-Fix-broken_MSC_VER-checks.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- tesseract-ocr-298e31465a44/ccutil/platform.h.orig 2014-08-25 21:33:43.758846200 +0100 -+++ tesseract-ocr-298e31465a44/ccutil/platform.h 2014-08-25 21:34:23.670129000 +0100 -@@ -28,10 +28,12 @@ - #define ultoa _ultoa - #endif /* __GNUC__ */ - #define SIGNED -+#if defined(_MSC_VER) - #define snprintf _snprintf - #if (_MSC_VER <= 1400) - #define vsnprintf _vsnprintf --#endif /* _WIN32 */ -+#endif /* (_MSC_VER <= 1400) */ -+#endif /* defined(_MSC_VER) */ - #else - #define __UNIX__ - #include diff --git a/mingw-w64-tesseract-ocr/0002-Use-intptr_t-for-pointer-cast-target.patch b/mingw-w64-tesseract-ocr/0002-Use-intptr_t-for-pointer-cast-target.patch deleted file mode 100644 index b189c5f8fe..0000000000 --- a/mingw-w64-tesseract-ocr/0002-Use-intptr_t-for-pointer-cast-target.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- tesseract-ocr-298e31465a44/cube/tess_lang_mod_edge.h.orig 2010-11-23 18:34:14.000000000 +0000 -+++ tesseract-ocr-298e31465a44/cube/tess_lang_mod_edge.h 2014-08-25 21:42:01.540317700 +0100 -@@ -177,7 +177,7 @@ - // to quickly lookup exisiting edges to converge during search - inline unsigned int Hash() const { - return static_cast(((start_edge_ | end_edge_) ^ -- ((reinterpret_cast(dawg_)))) ^ -+ ((reinterpret_cast(dawg_)))) ^ - ((unsigned int)edge_mask_) ^ - class_id_); - } diff --git a/mingw-w64-tesseract-ocr/PKGBUILD b/mingw-w64-tesseract-ocr/PKGBUILD index 6a8835e49d..3c24dfe5eb 100644 --- a/mingw-w64-tesseract-ocr/PKGBUILD +++ b/mingw-w64-tesseract-ocr/PKGBUILD @@ -10,18 +10,21 @@ arch=('any') url="https://github.com/tesseract-ocr/tesseract" license=("Apache License 2.0") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs - ${MINGW_PACKAGE_PREFIX}-leptonica - ${MINGW_PACKAGE_PREFIX}-icu - ${MINGW_PACKAGE_PREFIX}-cairo - ${MINGW_PACKAGE_PREFIX}-pango - ${MINGW_PACKAGE_PREFIX}-zlib) +depends=(${MINGW_PACKAGE_PREFIX}-cairo + ${MINGW_PACKAGE_PREFIX}-gcc-libs + ${MINGW_PACKAGE_PREFIX}-icu + ${MINGW_PACKAGE_PREFIX}-leptonica + ${MINGW_PACKAGE_PREFIX}-pango + ${MINGW_PACKAGE_PREFIX}-zlib) options=('!libtool' 'strip') -source=("https://github.com/tesseract-ocr/tesseract/archive/${pkgver}.zip") -sha256sums=('SKIP' -) +source=(${_realname}-${pkgver}.tar.gz::https://github.com/tesseract-ocr/tesseract/archive/${pkgver}.tar.gz + build-fixes.patch) +sha256sums=('7e6e48b625e1fba9bc825a4ef8c39f12c60aae1084939133b3c6a00f8f8dc38c' + '34cf8e6f1c13e123b872d92e678972edc9f62cd335f5fe4baa313d2184044a3f') + prepare() { - cd "$srcdir/${_realname}-/${pkgver}" + cd "${srcdir}/tesseract-${pkgver}" + patch -p1 -i ${srcdir}/build-fixes.patch ./autogen.sh } @@ -34,7 +37,7 @@ build() { extra_config+=( --enable-debug ) fi - ${srcdir}/${_realname}-/${pkgver}/configure \ + ../tesseract-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -52,7 +55,7 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install make training - make DESTDIR="$pkgdir" training-install + make DESTDIR="${pkgdir}" training-install } diff --git a/mingw-w64-tesseract-ocr/build-fixes.patch b/mingw-w64-tesseract-ocr/build-fixes.patch new file mode 100644 index 0000000000..e9ed3234d5 --- /dev/null +++ b/mingw-w64-tesseract-ocr/build-fixes.patch @@ -0,0 +1,11 @@ +--- tesseract-3.04.00/ccutil/Makefile.am.orig 2015-07-14 22:28:59.961600000 +0300 ++++ tesseract-3.04.00/ccutil/Makefile.am 2015-07-14 22:29:49.101600000 +0300 +@@ -42,7 +42,7 @@ + params.cpp universalambigs.cpp + + if T_WIN +-AM_CPPFLAGS += -I$(top_srcdir)/vs2008/port -DWINDLLNAME=\"lib@GENERIC_LIBRARY_NAME@\" ++AM_CPPFLAGS += -I$(top_srcdir)/vs2010/port -DWINDLLNAME=\"lib@GENERIC_LIBRARY_NAME@\" + noinst_HEADERS += ../vs2010/port/strtok_r.h + libtesseract_ccutil_la_SOURCES += ../vs2010/port/strtok_r.cpp + endif diff --git a/mingw-w64-uhttpmock/PKGBUILD b/mingw-w64-uhttpmock/PKGBUILD index 807aa381b6..1ca633676c 100644 --- a/mingw-w64-uhttpmock/PKGBUILD +++ b/mingw-w64-uhttpmock/PKGBUILD @@ -2,7 +2,7 @@ _realname=uhttpmock pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.3.3 +pkgver=0.5.0 pkgrel=1 arch=('any') pkgdesc="uhttpmock is a HTTP web service mocking project for projects which use libsoup (mingw-w64)" @@ -10,6 +10,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libsoup") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-vala" "pkg-config" "make" "libtool" @@ -19,10 +20,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs' '!debug') license=("LGPL 2.1") url="http://tecnocode.co.uk/" -source=(http://tecnocode.co.uk/downloads/${_realname}/${_realname}-$pkgver.tar.xz +source=(http://tecnocode.co.uk/downloads/${_realname}/${_realname}-${pkgver}.tar.xz 0001-wsock.patch 0002-give-cc-to-gir-scanner.all.patch) -sha256sums=('7cc1eda146b5e7a434ed31413f6f12660db00c34d10083f693b93683a28bd57e' +sha256sums=('26da182a2db2579c5ba4dad9096d52099e0766228c295cfbaed6de4046f7d16e' '61a3563903d979a93514e09582400ed0647e3029a0632d5c6fbbd0f0589ba809' 'd12318d529f768ddfb2107e249d9c181e009dc1e62fdcced4c3397ead36e4845') @@ -35,6 +36,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -43,11 +45,12 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --libexecdir=${MINGW_PREFIX}/lib + --libexecdir=${MINGW_PREFIX}/lib{ + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } From e18dcefedf7c05fe0df69cb0d5aee4e8e6e3f9e0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 14 Jul 2015 22:30:57 +0100 Subject: [PATCH 1280/2060] qt-creator: Update to 3.5.0-beta1 --- ...ger-Handle-case-of-os.path.sep-being.patch | 37 ----------- .../0002-autotools-Use-summaryInWorkdir.patch | 28 --------- mingw-w64-qtcreator/PKGBUILD | 31 ++++------ ...static-clang-via-LLVM_STATIC-env-var.patch | 61 ++++++++----------- ...te-declspec-dllexport-for-unix-shell.patch | 11 ++++ 5 files changed, 48 insertions(+), 120 deletions(-) delete mode 100644 mingw-w64-qtcreator/0002-Debugger-Handle-case-of-os.path.sep-being.patch delete mode 100644 mingw-w64-qtcreator/0002-autotools-Use-summaryInWorkdir.patch create mode 100644 mingw-w64-qtcreator/qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch diff --git a/mingw-w64-qtcreator/0002-Debugger-Handle-case-of-os.path.sep-being.patch b/mingw-w64-qtcreator/0002-Debugger-Handle-case-of-os.path.sep-being.patch deleted file mode 100644 index 8fa9366ca3..0000000000 --- a/mingw-w64-qtcreator/0002-Debugger-Handle-case-of-os.path.sep-being.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 09a4253ff82f71d5de711b561b8c4b9f73b48f50 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Sat, 9 May 2015 14:49:19 +0100 -Subject: [PATCH 2/2] Debugger: Handle case of os.path.sep being '/' - -On MSYS2, if QtCreator is launched from one of the msys2 shells -then the MSYSTEM env. var is set and our Pythons set os.sep and -os.path.sep to '/' so that it aligns with the default separator -of those shells. - -fromNativePath(str) then fails to convert '\' seprators embedded -in binaries since str.replace('/', '/') is a noop. The operation -we want here is to convert all '\' to '/' anyway so this is more -explicit regardless of any opinions on our choice to dynamically -vary os.sep and os.path.sep - -Change-Id: I76c05b188abca41c6a1b516c68b584e0c06e7235 ---- - share/qtcreator/debugger/gdbbridge.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py -index d219689..e96fe86 100644 ---- a/share/qtcreator/debugger/gdbbridge.py -+++ b/share/qtcreator/debugger/gdbbridge.py -@@ -1545,7 +1545,7 @@ class Dumper(DumperBase): - - def stackListFrames(self, args): - def fromNativePath(str): -- return str.replace(os.path.sep, '/') -+ return str.replace('\\', '/') - - limit = int(args['limit']) - if limit <= 0: --- -2.4.0 - diff --git a/mingw-w64-qtcreator/0002-autotools-Use-summaryInWorkdir.patch b/mingw-w64-qtcreator/0002-autotools-Use-summaryInWorkdir.patch deleted file mode 100644 index ec4886bc24..0000000000 --- a/mingw-w64-qtcreator/0002-autotools-Use-summaryInWorkdir.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b25518e13179bc6553bd8b0d9a0f554bcf7bd288 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Wed, 10 Sep 2014 00:20:34 +0100 -Subject: [PATCH 2/2] autotools: Use summaryInWorkdir() - -.. for the configure step. Though IMHO displaying the relative -path would look better. - -Change-Id: If5ec2597d8c4ae064281f848104a8eb99f2c5d1f ---- - src/plugins/autotoolsprojectmanager/configurestep.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/plugins/autotoolsprojectmanager/configurestep.cpp b/src/plugins/autotoolsprojectmanager/configurestep.cpp -index 06acfb9..f97f094 100644 ---- a/src/plugins/autotoolsprojectmanager/configurestep.cpp -+++ b/src/plugins/autotoolsprojectmanager/configurestep.cpp -@@ -298,6 +298,6 @@ void ConfigureStepConfigWidget::updateDetails() - param.setWorkingDirectory(bc->buildDirectory().toString()); - param.setCommand(projectDirRelativeToBuildDir(bc) + QLatin1String("configure")); - param.setArguments(m_configureStep->additionalArguments()); -- m_summaryText = param.summary(displayName()); -+ m_summaryText = param.summaryInWorkdir(displayName()); - emit updateSummary(); - } --- -2.1.0 - diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 679adb1deb..c0dff7b718 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -3,8 +3,8 @@ _realname=qt-creator pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -__pre= -_base_ver=3.4.2 +__pre=-beta1 +_base_ver=3.5.0 pkgver=${_base_ver}${_pre} pkgrel=1 pkgdesc='Cross-patform IDE (mingw-w64)' @@ -26,11 +26,8 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-gdb: for the debugger" #'bzr: for bazaar support' ) _pkgfqn="${_realname}-opensource-src-${_base_ver}${__pre}" -source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_ver%.*}/${_base_ver}${__pre}/${_pkgfqn}.tar.gz - http://download.qt-project.org/official_releases/qtcreator/${pkgver%.*}/${pkgver}/${_pkgfqn}.tar.gz - 0001-autotools-Set-a-default-buildDir.patch - 0002-Debugger-Handle-case-of-os.path.sep-being.patch - 0002-autotools-Use-summaryInWorkdir.patch +source=(http://download.qt-project.org/development_releases/qtcreator/${_base_ver%.*}/${_base_ver}${__pre}/${_pkgfqn}.tar.gz + #http://download.qt-project.org/official_releases/qtcreator/${pkgver%.*}/${pkgver}/${_pkgfqn}.tar.gz qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch qt-creator-3.2.0-Allow-iOS-plugin-on-any-platform.patch qt-creator-3.2.0-Define-QBS_INSTALL_DIR-as-relative-path.patch @@ -39,13 +36,12 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v qt-creator-3.2.0-autotools-allow-non-Automake-Makefile-in-projects.patch qt-creator-3.2.0-i[3456]86-and-x86-have-32bit-wordWidth.patch qt-creator-3.3.0-abi-msys-is-Windows.patch - qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch) + qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch + qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch) noextract=(${_pkgfqn}.tar.gz) -sha256sums=('f57df9954768badb252154a51cca9b21a4903f8e003ef944d25801cde1754bab' - '205d8637152d6e6e57c4a9d9c5146efa7fa16db5fb7b8cabc3bc5ded96823d8a' - '6217d0682c40ac586205abc835490b36ac79525fdefde5afd66e3b02daabd8a0' +sha256sums=('e1a1c7daf7fb47bf3df1183c342d263ad4333120394d857b52c6ba58116d1148' '22253cf29a2c8effebb1cc8313a0f350cf993d7fc404763063e6bd8444fa61f1' - '45b9fc82c7a9364450420920adcdb04a3b67eeb96f64733166da757a5ab91013' + '3197763396b90e640e7897c648d48d6ca906df5b3a4bc343a7e1bfdf05f07cef' '96c14f54577bf6cadf5c12018745666a9e99cd8d6a876c29a28b13599a8cb368' '68133c95b70c1b54e55ab4c8b31023afe4ab9a33667e4510bda64c828b95e91e' '1a1738379b0413484fd1ff3521b6bc85d034f5f964311d963dd044b4966b274b' @@ -53,7 +49,8 @@ sha256sums=('f57df9954768badb252154a51cca9b21a4903f8e003ef944d25801cde1754bab' '0b0bba8bda0fd8247563e3827f58fe73baed17b09b9de6ea28375b7f1afa3ee1' '79fc4d2ef02ff8f458b1b330c683c2a86397f056369c90176a9ddbeba3b719fd' 'c4cae708825102d538e1ecb9a88ecb216d366feb779553a2e91f97c4b78f8427' - 'b4cf07e2772b2ec6710ee7df6463feddb4195d65fa59e6c6095fbc0cb240417e') + 'b4cf07e2772b2ec6710ee7df6463feddb4195d65fa59e6c6095fbc0cb240417e' + '802376acf3bc4546db60efdc026b348c4d09485b532a8db31d51d9e3fb74cecc') prepare() { [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} @@ -61,12 +58,6 @@ prepare() { cd ${srcdir}/${_pkgfqn} - # Attempting to upstream: https://codereview.qt-project.org/#/c/94366/ - patch -p1 -i "${srcdir}"/0001-autotools-Set-a-default-buildDir.patch - patch -p1 -i "${srcdir}"/0002-Debugger-Handle-case-of-os.path.sep-being.patch - - # patch -p1 -i "${srcdir}"/0002-autotools-Use-summaryInWorkdir.patch - patch -p1 -i "${srcdir}"/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-Allow-iOS-plugin-on-any-platform.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-Define-QBS_INSTALL_DIR-as-relative-path.patch @@ -78,6 +69,8 @@ prepare() { patch -p1 -i "${srcdir}"/qt-creator-3.3.0-abi-msys-is-Windows.patch patch -p1 -i "${srcdir}"/qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch + patch -p1 -i "${srcdir}"/qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch + # Use system installed qbs rm -rf src/shared/qbs } diff --git a/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch b/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch index 97bd4f5ffd..cb24fcc1eb 100644 --- a/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch +++ b/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch @@ -1,55 +1,44 @@ ---- qt-creator-opensource-src-3.2.0-rc1/src/plugins/clangcodemodel/clang_installation.pri.orig 2014-08-01 10:17:30.000000000 +0100 -+++ qt-creator-opensource-src-3.2.0-rc1/src/plugins/clangcodemodel/clang_installation.pri 2014-08-17 20:14:44.611209200 +0100 -@@ -50,7 +50,7 @@ - error("Cannot find clang shared library at $${LLVM_INSTALL_DIR}") +--- qt-creator-opensource-src-3.5.0-beta1/src/shared/clang/clang_installation.pri.orig 2015-07-07 14:02:27.000000000 +0100 ++++ qt-creator-opensource-src-3.5.0-beta1/src/shared/clang/clang_installation.pri 2015-07-08 16:29:43.546384900 +0100 +@@ -40,7 +40,7 @@ + } } -win32 { +win32:!win32-g++ { LLVM_INCLUDEPATH = "$$LLVM_INSTALL_DIR/include" - CLANG_LIB_PATH = $$findClangOnWindows() - CLANG_LIB = clang -@@ -61,7 +61,7 @@ - LLVM_VERSION = 3.4 + LLVM_LIBDIR = $$findClangOnWindows() + isEmpty(LLVM_LIBDIR): error("Cannot find clang shared library at $${LLVM_INSTALL_DIR}") +@@ -53,7 +53,7 @@ + LLVM_LIBS += -ladvapi32 -lshell32 } -unix { +unix|win32-g++ { - LLVM_CONFIG = $$findLLVMConfig() + llvm_config = $$LLVM_INSTALL_DIR/bin/llvm-config + exists($$llvm_config) { + #message("llvm-config found, querying it for paths and version") +@@ -74,5 +74,22 @@ + clang_lib = $$findClangLibInLibDir($$LLVM_LIBDIR) + isEmpty(clang_lib): error("Cannot find Clang shared library in $$LLVM_LIBDIR") - LLVM_VERSION = $$system($$LLVM_CONFIG --version) -@@ -93,7 +93,33 @@ - } - - LLVM_LIBS = -L$${LLVM_LIBDIR} -- LLVM_LIBS += -l$${CLANG_LIB} -+ +- LLVM_LIBS = -L$${LLVM_LIBDIR} -l$${clang_lib} + LLVM_STATIC = $$(LLVM_STATIC) + isEqual($$(LLVM_STATIC), 0): { -+ LLVM_LIBS += -l$${CLANG_LIB} ++ LLVM_LIBS += -l$${clang_lib} + } else { + # Since there is no clang-config .. + LLVM_LIBS += -Wl,--start-group -+ CLANG_LIBS = $$files($${LLVM_LIBDIR}/libclang*) -+ for (CLANG_LIB, CLANG_LIBS) { -+ CLANG_LIB = $$basename(CLANG_LIB) -+ CLANG_LIB ~= s,^$$QMAKE_PREFIX_STATICLIB,, -+ CLANG_LIB ~= s,\.$$QMAKE_EXTENSION_STATICLIB\$,, -+ LLVM_LIBS += -l$${CLANG_LIB} ++ CLANG_STATIC_LIBS = $$files($${LLVM_LIBDIR}/libclang*) ++ for (CLANG_STATIC_LIB, CLANG_STATIC_LIBS) { ++ CLANG_STATIC_LIB = $$basename(CLANG_STATIC_LIB) ++ CLANG_STATIC_LIB ~= s,^$$QMAKE_PREFIX_STATICLIB,, ++ CLANG_STATIC_LIB ~= s,\.$$QMAKE_EXTENSION_STATICLIB\$,, ++ LLVM_LIBS += -l$${CLANG_STATIC_LIB} + } -+ # We might want to try "$$LLVM_CONFIG --libs analysis" instead. -+ LLVM_LIBS += $$system($$LLVM_CONFIG --libs) -+ LLVM_LIBS += $$system($$LLVM_CONFIG --system-libs) ++ # We might want to try "$$llvm_config --libs analysis" instead. ++ LLVM_LIBS += $$system($$llvm_config --libs) ++ LLVM_LIBS += $$system($$llvm_config --system-libs) + LLVM_LIBS += -Wl,--end-group + } -+} -+ -+# llvm-config --ldflags could be used here, but -+# that lists lots of unnecessary libraries: -+# llvm-config.exe --ldflags -+# -LC:\msys64\mingw64/lib -lz -lffi -lncurses -lshell32 -lpsapi -limagehlp -lm -+win32 { -+ LLVM_LIBS += -limagehlp } - - DEFINES += CLANG_VERSION=\\\"$${LLVM_VERSION}\\\" diff --git a/mingw-w64-qtcreator/qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch b/mingw-w64-qtcreator/qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch new file mode 100644 index 0000000000..8490551b14 --- /dev/null +++ b/mingw-w64-qtcreator/qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch @@ -0,0 +1,11 @@ +--- qt-creator-opensource-src-3.5.0-beta1/src/libs/3rdparty/sqlite/sqlite.pri.orig 2015-07-07 14:02:27.000000000 +0100 ++++ qt-creator-opensource-src-3.5.0-beta1/src/libs/3rdparty/sqlite/sqlite.pri 2015-07-08 18:22:04.719461900 +0100 +@@ -7,7 +7,7 @@ + + SOURCES += $$PWD/sqlite3.c + +-win32:DEFINES += SQLITE_API=__declspec(dllexport) ++win32:DEFINES += $$shell_quote(SQLITE_API=__declspec(dllexport)) + unix:DEFINES += SQLITE_API=\"__attribute__((visibility(\\\"default\\\")))\" + + gcc { From 27223e60f72c4096454a4afdfb203f9acb45c12d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 15 Jul 2015 00:15:26 +0100 Subject: [PATCH 1281/2060] python-sphinx: Add python-six depends --- mingw-w64-python-sphinx/PKGBUILD | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mingw-w64-python-sphinx/PKGBUILD b/mingw-w64-python-sphinx/PKGBUILD index 3af7913def..86b2b62586 100644 --- a/mingw-w64-python-sphinx/PKGBUILD +++ b/mingw-w64-python-sphinx/PKGBUILD @@ -4,7 +4,7 @@ _realname=sphinx pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=1.3.1 -pkgrel=2 +pkgrel=3 pkgdesc="A discovery-based unittest extension (mingw-w64)" arch=('any') license=('LGPL-2.1') @@ -73,7 +73,8 @@ package_python3-sphinx() { "${MINGW_PACKAGE_PREFIX}-python3-pygments" "${MINGW_PACKAGE_PREFIX}-python3-sphinx_rtd_theme" "${MINGW_PACKAGE_PREFIX}-python3-snowballstemmer" - "${MINGW_PACKAGE_PREFIX}-python3-sphinx-alabaster-theme") + "${MINGW_PACKAGE_PREFIX}-python3-sphinx-alabaster-theme" + "${MINGW_PACKAGE_PREFIX}-python3-six") #optdepends=("${MINGW_PACKAGE_PREFIX}-texlive-latexextra": for generation of PDF documentation') local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) @@ -98,7 +99,8 @@ package_python2-sphinx() { "${MINGW_PACKAGE_PREFIX}-python2-pygments" "${MINGW_PACKAGE_PREFIX}-python2-sphinx_rtd_theme" "${MINGW_PACKAGE_PREFIX}-python2-snowballstemmer" - "${MINGW_PACKAGE_PREFIX}-python2-sphinx-alabaster-theme") + "${MINGW_PACKAGE_PREFIX}-python2-sphinx-alabaster-theme" + "${MINGW_PACKAGE_PREFIX}-python3-six") #optdepends=("${MINGW_PACKAGE_PREFIX}-texlive-latexextra": for generation of PDF documentation') local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) From 66babeee0f4d4fa359c33daefccbe912467b9960 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 15 Jul 2015 06:25:55 +0300 Subject: [PATCH 1282/2060] python-sphinx: Fix typo --- mingw-w64-python-sphinx/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-python-sphinx/PKGBUILD b/mingw-w64-python-sphinx/PKGBUILD index 86b2b62586..7a5f46474f 100644 --- a/mingw-w64-python-sphinx/PKGBUILD +++ b/mingw-w64-python-sphinx/PKGBUILD @@ -100,7 +100,7 @@ package_python2-sphinx() { "${MINGW_PACKAGE_PREFIX}-python2-sphinx_rtd_theme" "${MINGW_PACKAGE_PREFIX}-python2-snowballstemmer" "${MINGW_PACKAGE_PREFIX}-python2-sphinx-alabaster-theme" - "${MINGW_PACKAGE_PREFIX}-python3-six") + "${MINGW_PACKAGE_PREFIX}-python2-six") #optdepends=("${MINGW_PACKAGE_PREFIX}-texlive-latexextra": for generation of PDF documentation') local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) From 8a39543a91fa731e8159a8dc8b60c8ba35e2b880 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 15 Jul 2015 08:35:02 +0100 Subject: [PATCH 1283/2060] clang: Update to 3.6.2 --- mingw-w64-clang/PKGBUILD | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index b6b0302a00..035c4442ab 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -1,4 +1,6 @@ # Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly +# Contributor: Martell Malone _realname=clang pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" @@ -7,8 +9,8 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" #"${MINGW_PACKAGE_PREFIX}-compiler-rt" ) -pkgver=3.6.1 -pkgrel=4 +pkgver=3.6.2 +pkgrel=1 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -33,19 +35,19 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} 0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch 0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch ) -sha256sums=('2f00c615913aa0b56607ee1548936e60ad2aa89e6d56f23fb032a4463366fc7a' +sha256sums=('f60dc158bfda6822de167e87275848969f0558b3134892ff54fced87e4667b94' 'SKIP' - '74f92d0c93b86678b015e87655f59474b2f657769680efdeb3c0524ffbd2dad7' + 'ae9180466a23acb426d12444d866b266ff2289b266064d362462e44f8d4699f3' 'SKIP' - 'fcbf610c77be6047f11ca10c4725610417beba832565115a9e2fcfe2897b649f' + '0f2ff37d80a64575fecd8cf0d5c50f7ac1f837ddf700d1855412bb7547431d87' 'SKIP' - 'c1c4d9159b978a81eaca25bfa57d617f64c6ed7c8acb2e736a4ea12ddff1be61' + '66f2e07eea910563d294ef09fc71f8e79d4b6001dc0944b1da265c2e50a5c08a' 'SKIP' - '5a5c653becf3978d4c4f6095708660855bed691210a9426bb839eecd88b6c0f9' + '52f3d452f48209c9df1792158fdbd7f3e98ed9bca8ebb51fcd524f67437c8b81' 'SKIP' - 'f4ee70d870d550a9147ac6a548ce7daf7d9e6897348bf411f43c572966fb92b6' + '6a0ec627d398f501ddf347060f7a2ccea4802b2494f1d4fd7bda3e0442d04feb' 'SKIP' - 'cefb5c64e78e85ad05a06b80f017ccfe1208b74d3da34eb425c505c6fef9aaba' + '940dc96b64919b7dbf32c37e0e1d1fc88cc18e1d4b3acf1e7dfe5a46eb6523a9' 'SKIP' 'b37ad0edb84ef13e0750c7f8d41441363859928cb9133d05f248afa41f44fc93' '7c9366df58b27378c104d37466caa761873440e5fbee707d3d22693add5d2cdb' From f798f41aedb1e6d7011bdf01f4fab9ebd672b1af Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 15 Jul 2015 08:37:16 +0100 Subject: [PATCH 1284/2060] firefox: WIP part 3 --- mingw-w64-firefox/0002-Allow-MSYS2-make.patch | 14 ++++++++++++++ .../0004-Allow-MSYS2-python.patch | 18 ++++++++++++++++++ .../0005-Allow-mingw-w64-python.patch | 6 ++++-- mingw-w64-firefox/PKGBUILD | 15 +++++++++------ mingw-w64-firefox/debugging.patch | 12 ++++++++++++ 5 files changed, 57 insertions(+), 8 deletions(-) diff --git a/mingw-w64-firefox/0002-Allow-MSYS2-make.patch b/mingw-w64-firefox/0002-Allow-MSYS2-make.patch index 91614184be..db9d93a389 100644 --- a/mingw-w64-firefox/0002-Allow-MSYS2-make.patch +++ b/mingw-w64-firefox/0002-Allow-MSYS2-make.patch @@ -11,3 +11,17 @@ diff -urN a/config/baseconfig.mk b/config/baseconfig.mk # 4.0- happens to be greater than 4.0, lower than the mozmake version, # and lower than 4.0.1 or 4.1, whatever next version of gnu make will # be released. +--- firefox-39.0/config/baseconfig.mk.orig 2015-07-14 21:57:46.627572700 +0100 ++++ firefox-39.0/config/baseconfig.mk 2015-07-14 22:02:47.929566800 +0100 +@@ -38,11 +38,6 @@ + $(error Make version too old. Only versions strictly greater than 4.0 are supported.) + endif + +-ifdef INCLUDED_AUTOCONF_MK +-ifeq (a,$(firstword a$(subst /, ,$(srcdir)))) +-$(error MSYS-style srcdir are not supported for Windows builds.) +-endif +-endif + endif # WINNT + + include_deps = $(eval $(if $(2),,-)include $(1)) diff --git a/mingw-w64-firefox/0004-Allow-MSYS2-python.patch b/mingw-w64-firefox/0004-Allow-MSYS2-python.patch index 809104382d..913159ddab 100644 --- a/mingw-w64-firefox/0004-Allow-MSYS2-python.patch +++ b/mingw-w64-firefox/0004-Allow-MSYS2-python.patch @@ -141,3 +141,21 @@ diff -urN a/python/virtualenv/virtualenv.py b/python/virtualenv/virtualenv.py pythondll = os.path.join(os.path.dirname(sys.executable), py_executable_dll) pythondll_d = os.path.join(os.path.dirname(sys.executable), py_executable_dll_d) pythondll_d_dest = os.path.join(os.path.dirname(py_executable), py_executable_dll_d) +diff -urN a/build/autoconf/config.status.m4 b/build/autoconf/config.status.m4 +--- a/build/autoconf/config.status.m4 2015-07-14 20:29:46.830015600 +0100 ++++ b/build/autoconf/config.status.m4 2015-07-14 21:47:36.475764800 +0100 +@@ -81,12 +81,12 @@ + + dnl Replace AC_OUTPUT to create and call a python config.status + define([MOZ_CREATE_CONFIG_STATUS], +-[dnl Top source directory in Windows format (as opposed to msys format). ++[dnl Top source directory in Python-appropriate format (Win, MSYS or Cygwin format). + WIN_TOP_SRC= + encoding=utf-8 + case "$host_os" in + mingw*) +- WIN_TOP_SRC=`cd $srcdir; pwd -W` ++ WIN_TOP_SRC=`${PYTHON} -c "import os, sys; print(os.path.abspath(sys.argv[1])" $srcdir` + ;; + esac + AC_SUBST(WIN_TOP_SRC) diff --git a/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch b/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch index c3ed58f0ce..450e08267f 100644 --- a/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch +++ b/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch @@ -18,7 +18,7 @@ diff -urN a/python/virtualenv/virtualenv.py b/python/virtualenv/virtualenv.py def get_installed_pythons(): return {} else: -@@ -113,6 +114,14 @@ +@@ -113,6 +114,16 @@ 're', 'sre', 'sre_parse', 'sre_constants', 'sre_compile', 'zlib'] @@ -28,7 +28,9 @@ diff -urN a/python/virtualenv/virtualenv.py b/python/virtualenv/virtualenv.py + 'atexit', 'optparse', 'textwrap', 'string', + 'contextlib', 'shutil', 'subprocess', 'threading', + 'tarfile', 'struct', 'copy', 'zipfile', 'io', -+ 'glob']) ++ 'glob', 'tempfile', 'StringIO', 'SocketServer', ++ 'socket', 'random', 'opcode', 'hashlib', 'gettext', ++ 'getpass']) + REQUIRED_FILES = ['lib-dynload', 'config'] diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index e75c55ea82..fd73c688e0 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -13,6 +13,9 @@ groups=("${MINGW_PACKAGE_PREFIX}") arch=('any') url='https://www.mozilla.org/firefox/' license=('MPL2') +makedepends=('unzip' + 'zip' + "${MINGW_PACKAGE_PREFIX}-yasm") source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/source/${_realname}-${pkgver}.source.tar.bz2" "0001-Allow-MSYS2-shell.patch" "0002-Allow-MSYS2-make.patch" @@ -27,11 +30,11 @@ source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/ noextract=("${_realname}-${pkgver}.source.tar.bz2") sha1sums=('32785daee7ddb9da8d7509ef095258fc58fe838e' '1c0810fbfd6f336eec81e236c89c6c9ca0e79290' - 'c269337da604ab047de5dea088dbbe8f547dfbea' + 'b59591f2ead727f6fcd3836305ece3ed6184544a' '2fd8904f036d2515e314b3d7510d8358add298d2' - 'e3079d2151b89145134bd70d5b66bd772e5d56e6' - 'ea32e4d47b46cb85173e686a4609e32e97f8d957' - '60d0ff16614804a1408feeed81b4a77a808d9a5a' + '12e2360c2d6abad989dbc996fa4940fd6a6e830e' + 'bd2bb1270373703447db5f0f9bcd6a558621a0f7' + '60e51c33dd5eeaeaa1c38c7b575d183f27bb61a7' '36da1863d7f1f5ea7faa50f773a6dbdda405d7f5' '3861e9d68ee67aa2dc6a087158054c29466cd4da' '17c4f8628ea435c999be66ee4c2967fdaf3b2955' @@ -76,8 +79,8 @@ build() { [ -d ${_builddir} ] && rm -rf "${_builddir}" mkdir ${_builddir} cp "${srcdir}"/mozconfig.${CARCH} ${_builddir}/.mozconfig -# export PYTHON=/usr/bin/python2.7.exe - export PYTHON=${MINGW_PREFIX}/bin/python2.7.exe + export PYTHON=/usr/bin/python2.7.exe +# export PYTHON=${MINGW_PREFIX}/bin/python2.7.exe export MOZCONFIG=${PWD}/${_builddir}/.mozconfig export MIDL=${MINGW_PREFIX}/bin/widl.exe export MOZ_TOOLS=${MINGW_PREFIX} diff --git a/mingw-w64-firefox/debugging.patch b/mingw-w64-firefox/debugging.patch index dece3e82d9..9ce7bd961f 100644 --- a/mingw-w64-firefox/debugging.patch +++ b/mingw-w64-firefox/debugging.patch @@ -18,3 +18,15 @@ diff -urN a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbu if not os.path.exists(mozpath.join(context.srcdir, src)): raise SandboxValidationError('File listed in %s does not ' 'exist: \'%s\'' % (symbol, src), context) +diff -urN a/python/mozbuild/mozbuild/config_status.py b/python/mozbuild/mozbuild/config_status.py +--- a/python/mozbuild/mozbuild/config_status.py 2015-06-30 23:58:07.000000000 +0100 ++++ b/python/mozbuild/mozbuild/config_status.py 2015-07-14 20:21:48.954130100 +0100 +@@ -145,7 +145,7 @@ + log_manager.add_terminal_logging(level=log_level) + log_manager.enable_unstructured() + +- print('Reticulating splines...', file=sys.stderr) ++ print('Reticulating splines... sys.argv = %s' % sys.argv, file=sys.stderr) + summary = the_backend.consume(definitions) + + for line in summary.summaries(): From c47d0fdc3b813f5ca2e0191dbc2e6e65f2d18dff Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 15 Jul 2015 12:22:29 +0300 Subject: [PATCH 1285/2060] === Rebuild for GCC-5.1.0. Part X === --- mingw-w64-aribb24/PKGBUILD | 7 ++-- mingw-w64-bullet/PKGBUILD | 19 ++++------ mingw-w64-crt-git/PKGBUILD | 2 +- mingw-w64-eog-plugins/PKGBUILD | 16 ++++---- mingw-w64-evince/PKGBUILD | 3 +- mingw-w64-freeglut/PKGBUILD | 12 +++--- mingw-w64-headers-git/PKGBUILD | 2 +- mingw-w64-libdvbpsi/PKGBUILD | 15 ++++---- mingw-w64-libebml/PKGBUILD | 8 ++-- mingw-w64-libgoom2/PKGBUILD | 7 ++-- mingw-w64-libgxps/PKGBUILD | 30 ++++++++------- mingw-w64-libmatroska/PKGBUILD | 8 ++-- mingw-w64-libmpcdec/PKGBUILD | 6 +-- mingw-w64-libproxy/PKGBUILD | 38 ++++++++----------- mingw-w64-libsamplerate/PKGBUILD | 13 +++---- mingw-w64-protobuf-c/PKGBUILD | 4 +- mingw-w64-protobuf/PKGBUILD | 4 +- mingw-w64-qt4/PKGBUILD | 9 +++-- mingw-w64-qt4/qt-4.8.7-mingw-configure.patch | 7 +--- .../qt-4.8.7-mingw-use-shared-libmng.patch | 14 +++++++ mingw-w64-vcdimager/PKGBUILD | 10 +++-- 21 files changed, 122 insertions(+), 112 deletions(-) create mode 100644 mingw-w64-qt4/qt-4.8.7-mingw-use-shared-libmng.patch diff --git a/mingw-w64-aribb24/PKGBUILD b/mingw-w64-aribb24/PKGBUILD index e4a0268477..a730279f7d 100644 --- a/mingw-w64-aribb24/PKGBUILD +++ b/mingw-w64-aribb24/PKGBUILD @@ -3,7 +3,7 @@ _realname=aribb24 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.3 -pkgrel=1 +pkgrel=2 pkgdesc="A library for ARIB STD-B24, decoding JIS 8 bit characters and parsing MPEG-TS stream (mingw-w64)" arch=('any') url="https://github.com/nkoriyama/aribb24" @@ -25,16 +25,17 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-static \ --enable-shared + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-bullet/PKGBUILD b/mingw-w64-bullet/PKGBUILD index 5b81714b36..4bd4b0fef3 100644 --- a/mingw-w64-bullet/PKGBUILD +++ b/mingw-w64-bullet/PKGBUILD @@ -2,7 +2,7 @@ _realname=bullet pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -pkgver=2.83.4 +pkgver=2.83.5 pkgrel=1 pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation (mingw-w64)" arch=('any') @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/bulletphysics/bullet3/archive/${pkgver}.tar.gz" cast-error.patch promit-bulletcollisions.patch) -md5sums=('58b4e151bf580fe6746e8413cb2a4cbe' +md5sums=('87e42fad2216801d5cef0af7e547ce08' '8db1300cf01a0fb244cb4b3ea5eb102e' '1340ed3f23915dcaf8e29d0eedc5e8c3') @@ -35,9 +35,10 @@ build_release() { [ -d build-release ] && rm -rf build-release mkdir -p build-release && pushd build-release + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX}\ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX}\ -DBUILD_SHARED_LIBS=1 \ -DBUILD_EXTRAS=1 \ -DINSTALL_LIBS=1 \ @@ -48,7 +49,7 @@ build_release() { ../bullet3-${pkgver} make - make install + make DESTDIR=${pkgdir} install mkdir -p ${pkgdir}${MINGW_PREFIX}/share/bullet for f in $(find examples -type f -iname *.dll -o -iname *.exe); do @@ -60,11 +61,6 @@ build_release() { done mv -f ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ - - local PREFIX_WIN=$(cygpath -wm ${pkgdir}${MINGW_PREFIX}) - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/bullet.pc \ - -i ${pkgdir}${MINGW_PREFIX}/lib/cmake/bullet/BulletConfig.cmake } build_debug() { @@ -72,9 +68,10 @@ build_debug() { [ -d build-debug ] && rm -rf build-debug mkdir -p build-debug && pushd build-debug + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBUILD_SHARED_LIBS=1 \ -DBUILD_EXTRAS=1 \ -DINSTALL_LIBS=1 \ @@ -86,7 +83,7 @@ build_debug() { ../bullet3-${pkgver} make - make install + make DESTDIR=${pkgdir} install mv -f ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index d2c327a9ef..1d5937a88f 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4520.f3f8cd3 +pkgver=5.0.0.4522.e2d9393 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') diff --git a/mingw-w64-eog-plugins/PKGBUILD b/mingw-w64-eog-plugins/PKGBUILD index cea48327a2..303cae7ba4 100644 --- a/mingw-w64-eog-plugins/PKGBUILD +++ b/mingw-w64-eog-plugins/PKGBUILD @@ -3,21 +3,21 @@ _realname=eog-plugins pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Eye of GNOME graphics viewer program - plugins (mingw-w64)" options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-eog" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-libgdata" + "${MINGW_PACKAGE_PREFIX}-libchamplain" "${MINGW_PACKAGE_PREFIX}-libexif" + "${MINGW_PACKAGE_PREFIX}-libgdata" "${MINGW_PACKAGE_PREFIX}-postr" - "${MINGW_PACKAGE_PREFIX}-libchamplain") + "${MINGW_PACKAGE_PREFIX}-python2") makedepends=("${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas") options=('strip' 'staticlibs') license=("GPL 2") url="http://www.gnome.org" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch 002-champlain.patch) sha256sums=('6fab1c1e0705fc2b0e4a63caf3ba1c5b64b4eaa1301e4cbc04bb934428b68450' @@ -34,6 +34,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -43,10 +44,11 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index e6427dd5c7..7d08f2cb56 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -3,7 +3,7 @@ _realname=evince pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.1 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Document (PostScript, PDF) viewer (mingw-w64)" options=(strip staticlibs) @@ -38,7 +38,6 @@ sha256sums=('06ff75065b2a30cd588c402f6bd2ea88ee3166181805e0cc00bd54f71dbf6130' prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/001-give-cc-to-gir-scanner.mingw.patch AUTOPOINT='intltoolize --automake --copy' autoreconf -f -i diff --git a/mingw-w64-freeglut/PKGBUILD b/mingw-w64-freeglut/PKGBUILD index 92eba863d5..64c4eba548 100644 --- a/mingw-w64-freeglut/PKGBUILD +++ b/mingw-w64-freeglut/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pre= _ver=3.0.0 pkgver=${_ver}${_pre} -pkgrel=1 +pkgrel=2 pkgdesc="Freeglut allows the user to create and manage windows containing OpenGL contexts (mingw32-w64)" arch=('any') url="http://freeglut.sourceforge.net/" @@ -17,10 +17,9 @@ md5sums=('90c3ca4dd9d51cf32276bc5344ec9754') noextract=(${_realname}-${_ver}${_pre}.tar.gz) prepare() { - cd ${startdir} # Clean up old sources so re-patching doesn't fail. - [[ -d $srcdir/${_realname}-${_ver}${_pre} ]] && rm -rf $srcdir/${_realname}-${_ver}${_pre} - tar -xzvf ${_realname}-${_ver}${_pre}.tar.gz -C $srcdir + [[ -d ${srcdir}/${_realname}-${_ver}${_pre} ]] && rm -rf ${srcdir}/${_realname}-${_ver}${_pre} + tar -xzvf ${_realname}-${_ver}${_pre}.tar.gz -C ${srcdir} } build() { @@ -28,9 +27,10 @@ build() { mkdir "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ ../${_realname}-${_ver}${_pre} @@ -39,5 +39,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index a8abf06410..ab9fd67f90 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4520.f3f8cd3 +pkgver=5.0.0.4522.e2d9393 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" diff --git a/mingw-w64-libdvbpsi/PKGBUILD b/mingw-w64-libdvbpsi/PKGBUILD index 9749c4c458..195769adf3 100644 --- a/mingw-w64-libdvbpsi/PKGBUILD +++ b/mingw-w64-libdvbpsi/PKGBUILD @@ -2,7 +2,7 @@ _realname=libdvbpsi pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.1.2 +pkgver=1.3.0 pkgrel=1 pkgdesc="A library designed for decoding and generation of MPEG TS and DVB PSI tables (mingw-w64)" arch=('any') @@ -11,21 +11,22 @@ license=("LGPL2.1") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') -source=("http://download.videolan.org/pub/${_realname}/$pkgver/${_realname}-$pkgver.tar.bz2") -sha256sums=('22436366beaa1bff27b3f6d80e43de1012b16d3b63b1e22d37d4a6fcb5db8933') +source=("http://download.videolan.org/pub/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.bz2") +sha256sums=('a2fed1d11980662f919bbd1f29e2462719e0f6227e1a531310bd5a706db0a1fe') build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/${_realname}-$pkgver" - ./configure \ + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-release + make SUBDIRS=src } package() { - cd "${srcdir}/${_realname}-$pkgver" - make SUBDIRS=src DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make SUBDIRS=src DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libebml/PKGBUILD b/mingw-w64-libebml/PKGBUILD index 84b7adbeca..ac615797c4 100644 --- a/mingw-w64-libebml/PKGBUILD +++ b/mingw-w64-libebml/PKGBUILD @@ -3,13 +3,15 @@ _realname=libebml pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.3.1 -pkgrel=1 +pkgrel=2 pkgdesc="Extensible Binary Meta Language library (mingw-w64)" arch=('any') license=('LGPL') -url="http://dl.matroska.org/downloads/libebml/" +url="http://matroska.org" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "automake" "autoconf") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "automake" "autoconf") options=('staticlibs') source=("http://dl.matroska.org/downloads/${_realname}/${_realname}-${pkgver}.tar.bz2") md5sums=('2d5a0e502fabedfded2a890c6b5513a5') diff --git a/mingw-w64-libgoom2/PKGBUILD b/mingw-w64-libgoom2/PKGBUILD index fa04fb0121..214cbe7c09 100644 --- a/mingw-w64-libgoom2/PKGBUILD +++ b/mingw-w64-libgoom2/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgoom2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2k4 -pkgrel=1 +pkgrel=2 pkgdesc="Shared library part of the Goom visualization plugin (mingw-w64)" arch=('any') url="http://www.fovea.cc/?page=details_produits&id=goom" @@ -11,7 +11,7 @@ license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "flex") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') -source=("http://downloads.sourceforge.net/project/goom/goom2k4/0/goom-2k4-0-src.tar.gz" +source=("http://downloads.sourceforge.net/project/goom/goom2k4/0/goom-${pkgver}-0-src.tar.gz" 001-no-undefined.patch 002-fix-random.patch) md5sums=('8100dd07e0c6784fdf079eeaa53a5c7f' @@ -30,7 +30,7 @@ prepare() { } build() { - mkdir -p $srcdir/build-${CARCH} && cd $srcdir/build-${CARCH} + mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} ../goom2k4-0/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -40,6 +40,7 @@ build() { --enable-static \ --without-xmms \ --without-sdl + make } diff --git a/mingw-w64-libgxps/PKGBUILD b/mingw-w64-libgxps/PKGBUILD index 3611640a63..e2e0c1e39a 100644 --- a/mingw-w64-libgxps/PKGBUILD +++ b/mingw-w64-libgxps/PKGBUILD @@ -3,25 +3,25 @@ _realname=libgxps pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.2.2 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A library to handling and rendering XPS documents (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-lcms2" - "${MINGW_PACKAGE_PREFIX}-libarchive" - "${MINGW_PACKAGE_PREFIX}-libxslt" - "${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-libjpeg") + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-libarchive" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libxslt") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "make" - "intltool" - "gettext-devel") + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "make" + "intltool" + "gettext-devel") options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:3}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:3}/${_realname}-${pkgver}.tar.xz 0001-give-cc-to-gir-scanner.all.patch 0002-missing-include.patch) sha256sums=('39d104739bf0db43905c315de1d8002460f1a098576f4418f69294013a5820be' @@ -37,6 +37,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -46,10 +47,11 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libmatroska/PKGBUILD b/mingw-w64-libmatroska/PKGBUILD index 1091825b73..69e6915825 100644 --- a/mingw-w64-libmatroska/PKGBUILD +++ b/mingw-w64-libmatroska/PKGBUILD @@ -3,13 +3,15 @@ _realname=libmatroska pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.4.2 -pkgrel=1 +pkgrel=2 pkgdesc="Matroska library (mingw-w64)" arch=('any') license=('LGPL') -url="http://dl.matroska.org/downloads/libebml/" +url="http://matroska.org" depends=("${MINGW_PACKAGE_PREFIX}-libebml") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "automake" "autoconf") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "automake" "autoconf") options=('staticlibs') source=("http://dl.matroska.org/downloads/${_realname}/${_realname}-${pkgver}.tar.bz2" 001-ebml-ldflags.patch) diff --git a/mingw-w64-libmpcdec/PKGBUILD b/mingw-w64-libmpcdec/PKGBUILD index 2aedc26a13..6cb0f5cf85 100644 --- a/mingw-w64-libmpcdec/PKGBUILD +++ b/mingw-w64-libmpcdec/PKGBUILD @@ -3,7 +3,7 @@ _realname=libmpcdec pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2.6 -pkgrel=1 +pkgrel=2 pkgdesc="Musepack decoding library (mingw-w64)" arch=("any") url="http://musepack.net/" @@ -19,10 +19,9 @@ prepare() { } build() { - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - #cd ${_realname}-${pkgver} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -30,6 +29,7 @@ build() { --target=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } diff --git a/mingw-w64-libproxy/PKGBUILD b/mingw-w64-libproxy/PKGBUILD index 88899648d2..de6ffc7d41 100644 --- a/mingw-w64-libproxy/PKGBUILD +++ b/mingw-w64-libproxy/PKGBUILD @@ -3,15 +3,15 @@ _realname=libproxy pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.4.11 -pkgrel=1 +pkgrel=2 pkgdesc="A library that provides automatic proxy configuration management (mingw-w64)" arch=('any') url="http://libproxy.googlecode.com" license=("LGPL") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-python2") options=('staticlibs' 'strip') source=("http://libproxy.googlecode.com/files/${_realname}-${pkgver}.tar.gz" @@ -23,13 +23,13 @@ source=("http://libproxy.googlecode.com/files/${_realname}-${pkgver}.tar.gz" md5sums=('3cd1ae2a4abecf44b3f24d6639d2cd84' '6c8423fb0b2595d5254c8aac3797a36a' - 'e8f9219bf9e0e6311419cd96a85b4c9d' + '3fe1d50d8a4bccdc14a58166ec7f9b59' '275ae951b6fcb2608498549c493810d7' '35bcd97f6f79d83b0689907f97476e4b' '74adbf77b1ba5b99ea11600d9e43c8f9') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/001-fix-casting-error.patch patch -p1 -i ${srcdir}/002-fix-win32-close-scoket.patch patch -p1 -i ${srcdir}/003-fix-leaks.patch @@ -38,35 +38,27 @@ prepare() { } build() { - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEPS=`pwd -W` - popd > /dev/null - - [[ -d $srcdir/build-${MINGW_CHOST} ]] && rm -rf $srcdir/build-${MINGW_CHOST} - mkdir $srcdir/build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;-DLIBEXEC_INSTALL_DIR=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -DLIBEXEC_INSTALL_DIR=${pkgdir}${MINGW_PREFIX}/lib/libproxy \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DLIBEXEC_INSTALL_DIR=${MINGW_PREFIX}/lib/libproxy \ -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DCMAKE_C_FLAGS="${CFLAGS}" \ -DWITH_PERL=OFF \ -DWITH_PYTHON=ON \ - ../${_realname}-$pkgver + ../${_realname}-${pkgver} + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - local PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libproxy-1.0.pc + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libsamplerate/PKGBUILD b/mingw-w64-libsamplerate/PKGBUILD index aa3f11de8c..5088b9eec0 100644 --- a/mingw-w64-libsamplerate/PKGBUILD +++ b/mingw-w64-libsamplerate/PKGBUILD @@ -4,19 +4,16 @@ _realname=libsamplerate pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.1.8 -pkgrel=1 -pkgdesc="Secret Rabbit Code (aka libsamplerate) is a Sample Rate Converter for audio." +pkgrel=2 +pkgdesc="Secret Rabbit Code (aka libsamplerate) is a Sample Rate Converter for audio (mingw-w64)" arch=('any') license=('GGPL') url="http://www.mega-nerd.com" depends=("${MINGW_PACKAGE_PREFIX}-libsndfile" - "${MINGW_PACKAGE_PREFIX}-fftw") - + "${MINGW_PACKAGE_PREFIX}-fftw") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config") - + "${MINGW_PACKAGE_PREFIX}-pkg-config") options=(!strip staticlibs !buildflags) - source=("http://www.mega-nerd.com/SRC/${_realname}-${pkgver}.tar.gz") md5sums=('1c7fb25191b4e6e3628d198a66a84f47') @@ -24,7 +21,7 @@ build() { mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} diff --git a/mingw-w64-protobuf-c/PKGBUILD b/mingw-w64-protobuf-c/PKGBUILD index ec28778800..b40157880e 100644 --- a/mingw-w64-protobuf-c/PKGBUILD +++ b/mingw-w64-protobuf-c/PKGBUILD @@ -3,7 +3,7 @@ _realname=protobuf-c pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.1 -pkgrel=1 +pkgrel=2 pkgdesc="Protocol Buffers implementation in C (mingw-w64)" arch=('any') url="https://github.com/protobuf-c/protobuf-c" @@ -11,7 +11,7 @@ license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-protobuf") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=("$url/releases/download/v$pkgver/${_realname}-${pkgver}.tar.gz") +source=("$url/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.gz") md5sums=('41d437677ea16f9d3611d98841c4af3b') prepare() { diff --git a/mingw-w64-protobuf/PKGBUILD b/mingw-w64-protobuf/PKGBUILD index 9030137a8d..40df6c84a1 100644 --- a/mingw-w64-protobuf/PKGBUILD +++ b/mingw-w64-protobuf/PKGBUILD @@ -3,7 +3,7 @@ _realname=protobuf pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.6.1 -pkgrel=1 +pkgrel=2 pkgdesc="Protocol Buffers - Google's data interchange format (mingw-w64)" arch=('any') url='https://developers.google.com/protocol-buffers/' @@ -11,7 +11,7 @@ license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2-setuptools") options=('staticlibs' 'strip') -source=(https://github.com/google/protobuf/releases/download/${pkgver}/protobuf-${pkgver}.tar.bz2) +source=(https://github.com/google/protobuf/releases/download/v${pkgver}/protobuf-${pkgver}.tar.bz2) md5sums=('11aaac2d704eef8efd1867a807865d85') prepare() { diff --git a/mingw-w64-qt4/PKGBUILD b/mingw-w64-qt4/PKGBUILD index 6c128104e9..7f5e442c33 100644 --- a/mingw-w64-qt4/PKGBUILD +++ b/mingw-w64-qt4/PKGBUILD @@ -72,7 +72,8 @@ source=("http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${pkgv qt-4.8.7-dont-add-resource-files-to-qmake-libs.patch qt4-build-debug-qmake.patch qt-4.8.7-mingw-configure.patch - qt-4.8.7-mingw-unix-tests.patch) + qt-4.8.7-mingw-unix-tests.patch + qt-4.8.7-mingw-use-shared-libmng.patch) md5sums=('d990ee66bf7ab0c785589776f35ba6ad' '3795e9f26a38045b69bb411f307905ac' '63dc5a13265ed82b2ba3abd0aa7a59f7' @@ -93,8 +94,9 @@ md5sums=('d990ee66bf7ab0c785589776f35ba6ad' '68657fc5b131e2c5e3532b61e2c3da42' '562ababd98ecca9e3a6cbc9b70e8f7f9' '49c33922e8f3c506cb7cc15cbe9b4a0a' - 'e202913dee43bef855d7429138d7436b' - 'fc3b3f45db0eda55d429310faf529ae9') + 'de870877cb94f64a57c81d52ce6327e5' + 'fc3b3f45db0eda55d429310faf529ae9' + '7370d976dc950404b65e4958ceadb4c7') prepare() { cd ${srcdir}/${_pkgfqn} @@ -118,6 +120,7 @@ prepare() { patch -p1 -i ${srcdir}/qt-4.8.7-dont-add-resource-files-to-qmake-libs.patch patch -p1 -i ${srcdir}/qt-4.8.7-mingw-configure.patch patch -p1 -i ${srcdir}/qt-4.8.7-mingw-unix-tests.patch + patch -p1 -i ${srcdir}/qt-4.8.7-mingw-use-shared-libmng.patch if check_option "debug" "y"; then patch -p1 -i ${srcdir}/qt4-build-debug-qmake.patch diff --git a/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch index 59828f79d1..a5207f3196 100644 --- a/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch +++ b/mingw-w64-qt4/qt-4.8.7-mingw-configure.patch @@ -79,18 +79,13 @@ CYGWIN*:*) PLATFORM=cygwin-g++ ;; -@@ -3139,6 +3167,18 @@ +@@ -3139,6 +3167,13 @@ if [ -z "${CFG_HOST_ARCH}" ]; then case "$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE" in + MINGW*:*:*) + MACHINE_GCC=`(gcc -dumpmachine) 2>/dev/null` + CFG_HOST_ARCH=${MACHINE_GCC%%-*} -+ case "$CFG_HOST_ARCH" in -+ i?86) -+ CFG_HOST_ARCH=i686 -+ ;; -+ esac + if [ "$OPT_VERBOSE" = "yes" ]; then + echo " MINGW/MSYS ($CFG_HOST_ARCH)" + fi diff --git a/mingw-w64-qt4/qt-4.8.7-mingw-use-shared-libmng.patch b/mingw-w64-qt4/qt-4.8.7-mingw-use-shared-libmng.patch new file mode 100644 index 0000000000..2e1e65fcd7 --- /dev/null +++ b/mingw-w64-qt4/qt-4.8.7-mingw-use-shared-libmng.patch @@ -0,0 +1,14 @@ +--- a/src/gui/image/qmnghandler.cpp 2015-05-27 14:49:31.512616600 +0300 ++++ b/src/gui/image/qmnghandler.cpp 2015-05-27 14:49:38.480009800 +0300 +@@ -45,7 +45,11 @@ + #include "qvariant.h" + #include "qcolor.h" + ++#ifdef _WIN32 ++#define MNG_USE_DLL ++#else + #define MNG_USE_SO ++#endif + #include + + QT_BEGIN_NAMESPACE diff --git a/mingw-w64-vcdimager/PKGBUILD b/mingw-w64-vcdimager/PKGBUILD index 65320beff8..d81f538360 100644 --- a/mingw-w64-vcdimager/PKGBUILD +++ b/mingw-w64-vcdimager/PKGBUILD @@ -3,7 +3,7 @@ _realname=vcdimager pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.7.24 -pkgrel=1 +pkgrel=2 pkgdesc="A full-featured mastering suite for authoring disassembling and analyzing Video CD's and Super Video CD's (mingw-w64)" arch=("any") url="http://www.vcdimager.org/" @@ -30,18 +30,20 @@ prepare() { } build() { - cd ${_realname}-${pkgver} - ./configure \ + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-static \ --enable-shared + make } package() { - cd ${_realname}-${pkgver} + cd build-${MINGW_CHOST} make DESTDIR="${pkgdir}" install } From 88280df965fe01f7980f98256d4c462ba55e925c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 15 Jul 2015 15:44:37 +0300 Subject: [PATCH 1286/2060] qt4: Fix building with system libmng. --- mingw-w64-qt4/PKGBUILD | 6 +- ...-define-MNG_USE_DLL-and-use-MNG_DECL.patch | 132 ++++++++++++++++++ .../qt-4.8.7-mingw-use-shared-libmng.patch | 14 -- 3 files changed, 135 insertions(+), 17 deletions(-) create mode 100644 mingw-w64-qt4/qt-4.8.7-MinGW-w64-fix-qmng-define-MNG_USE_DLL-and-use-MNG_DECL.patch delete mode 100644 mingw-w64-qt4/qt-4.8.7-mingw-use-shared-libmng.patch diff --git a/mingw-w64-qt4/PKGBUILD b/mingw-w64-qt4/PKGBUILD index 7f5e442c33..8ab37bce1d 100644 --- a/mingw-w64-qt4/PKGBUILD +++ b/mingw-w64-qt4/PKGBUILD @@ -73,7 +73,7 @@ source=("http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${pkgv qt4-build-debug-qmake.patch qt-4.8.7-mingw-configure.patch qt-4.8.7-mingw-unix-tests.patch - qt-4.8.7-mingw-use-shared-libmng.patch) + qt-4.8.7-MinGW-w64-fix-qmng-define-MNG_USE_DLL-and-use-MNG_DECL.patch) md5sums=('d990ee66bf7ab0c785589776f35ba6ad' '3795e9f26a38045b69bb411f307905ac' '63dc5a13265ed82b2ba3abd0aa7a59f7' @@ -96,7 +96,7 @@ md5sums=('d990ee66bf7ab0c785589776f35ba6ad' '49c33922e8f3c506cb7cc15cbe9b4a0a' 'de870877cb94f64a57c81d52ce6327e5' 'fc3b3f45db0eda55d429310faf529ae9' - '7370d976dc950404b65e4958ceadb4c7') + 'cd1be38b3166cde16e29f255d092ecd4') prepare() { cd ${srcdir}/${_pkgfqn} @@ -120,7 +120,7 @@ prepare() { patch -p1 -i ${srcdir}/qt-4.8.7-dont-add-resource-files-to-qmake-libs.patch patch -p1 -i ${srcdir}/qt-4.8.7-mingw-configure.patch patch -p1 -i ${srcdir}/qt-4.8.7-mingw-unix-tests.patch - patch -p1 -i ${srcdir}/qt-4.8.7-mingw-use-shared-libmng.patch + patch -p1 -i ${srcdir}/qt-4.8.7-MinGW-w64-fix-qmng-define-MNG_USE_DLL-and-use-MNG_DECL.patch if check_option "debug" "y"; then patch -p1 -i ${srcdir}/qt4-build-debug-qmake.patch diff --git a/mingw-w64-qt4/qt-4.8.7-MinGW-w64-fix-qmng-define-MNG_USE_DLL-and-use-MNG_DECL.patch b/mingw-w64-qt4/qt-4.8.7-MinGW-w64-fix-qmng-define-MNG_USE_DLL-and-use-MNG_DECL.patch new file mode 100644 index 0000000000..243ef69265 --- /dev/null +++ b/mingw-w64-qt4/qt-4.8.7-MinGW-w64-fix-qmng-define-MNG_USE_DLL-and-use-MNG_DECL.patch @@ -0,0 +1,132 @@ +--- qt-everywhere-opensource-src-4.8.7/src/gui/image/qmnghandler.cpp 2015-05-07 15:14:44.000000000 +0100 ++++ qt4-4.8.7/src/gui/image/qmnghandler.cpp 2015-07-15 10:44:14.858545100 +0100 +@@ -45,7 +45,12 @@ + #include "qvariant.h" + #include "qcolor.h" + +-#define MNG_USE_SO ++#if defined(Q_OS_WIN) ++ #define MNG_USE_DLL ++#else ++ #define MNG_USE_SO ++#endif ++ + #include + + QT_BEGIN_NAMESPACE +@@ -82,7 +87,7 @@ + QMngHandler *q_ptr; + }; + +-static mng_bool myerror(mng_handle /*hMNG*/, ++static mng_bool MNG_DECL myerror(mng_handle /*hMNG*/, + mng_int32 iErrorcode, + mng_int8 /*iSeverity*/, + mng_chunkid iChunkname, +@@ -101,7 +106,7 @@ + return TRUE; + } + +-static mng_ptr myalloc(mng_size_t iSize) ++static mng_ptr MNG_DECL myalloc(mng_size_t iSize) + { + #if defined(Q_OS_WINCE) + mng_ptr ptr = malloc(iSize); +@@ -112,24 +117,24 @@ + #endif + } + +-static void myfree(mng_ptr pPtr, mng_size_t /*iSize*/) ++static void MNG_DECL myfree(mng_ptr pPtr, mng_size_t /*iSize*/) + { + free(pPtr); + } + +-static mng_bool myopenstream(mng_handle) ++static mng_bool MNG_DECL myopenstream(mng_handle) + { + return MNG_TRUE; + } + +-static mng_bool myclosestream(mng_handle hMNG) ++static mng_bool MNG_DECL myclosestream(mng_handle hMNG) + { + QMngHandlerPrivate *pMydata = reinterpret_cast(mng_get_userdata(hMNG)); + pMydata->haveReadAll = true; + return MNG_TRUE; + } + +-static mng_bool myreaddata(mng_handle hMNG, ++static mng_bool MNG_DECL myreaddata(mng_handle hMNG, + mng_ptr pBuf, + mng_uint32 iSize, + mng_uint32p pRead) +@@ -138,7 +143,7 @@ + return pMydata->readData(pBuf, iSize, pRead); + } + +-static mng_bool mywritedata(mng_handle hMNG, ++static mng_bool MNG_DECL mywritedata(mng_handle hMNG, + mng_ptr pBuf, + mng_uint32 iSize, + mng_uint32p pWritten) +@@ -147,7 +152,7 @@ + return pMydata->writeData(pBuf, iSize, pWritten); + } + +-static mng_bool myprocessheader(mng_handle hMNG, ++static mng_bool MNG_DECL myprocessheader(mng_handle hMNG, + mng_uint32 iWidth, + mng_uint32 iHeight) + { +@@ -155,14 +160,14 @@ + return pMydata->processHeader(iWidth, iHeight); + } + +-static mng_ptr mygetcanvasline(mng_handle hMNG, ++static mng_ptr MNG_DECL mygetcanvasline(mng_handle hMNG, + mng_uint32 iLinenr) + { + QMngHandlerPrivate *pMydata = reinterpret_cast(mng_get_userdata(hMNG)); + return (mng_ptr)pMydata->image.scanLine(iLinenr); + } + +-static mng_bool myrefresh(mng_handle /*hMNG*/, ++static mng_bool MNG_DECL myrefresh(mng_handle /*hMNG*/, + mng_uint32 /*iX*/, + mng_uint32 /*iY*/, + mng_uint32 /*iWidth*/, +@@ -171,13 +176,13 @@ + return MNG_TRUE; + } + +-static mng_uint32 mygettickcount(mng_handle hMNG) ++static mng_uint32 MNG_DECL mygettickcount(mng_handle hMNG) + { + QMngHandlerPrivate *pMydata = reinterpret_cast(mng_get_userdata(hMNG)); + return pMydata->elapsed++; + } + +-static mng_bool mysettimer(mng_handle hMNG, ++static mng_bool MNG_DECL mysettimer(mng_handle hMNG, + mng_uint32 iMsecs) + { + QMngHandlerPrivate *pMydata = reinterpret_cast(mng_get_userdata(hMNG)); +@@ -186,7 +191,7 @@ + return MNG_TRUE; + } + +-static mng_bool myprocessterm(mng_handle hMNG, ++static mng_bool MNG_DECL myprocessterm(mng_handle hMNG, + mng_uint8 iTermaction, + mng_uint8 /*iIteraction*/, + mng_uint32 /*iDelay*/, +@@ -198,7 +203,7 @@ + return MNG_TRUE; + } + +-static mng_bool mytrace(mng_handle, ++static mng_bool MNG_DECL mytrace(mng_handle, + mng_int32 iFuncnr, + mng_int32 iFuncseq, + mng_pchar zFuncname) diff --git a/mingw-w64-qt4/qt-4.8.7-mingw-use-shared-libmng.patch b/mingw-w64-qt4/qt-4.8.7-mingw-use-shared-libmng.patch deleted file mode 100644 index 2e1e65fcd7..0000000000 --- a/mingw-w64-qt4/qt-4.8.7-mingw-use-shared-libmng.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/src/gui/image/qmnghandler.cpp 2015-05-27 14:49:31.512616600 +0300 -+++ b/src/gui/image/qmnghandler.cpp 2015-05-27 14:49:38.480009800 +0300 -@@ -45,7 +45,11 @@ - #include "qvariant.h" - #include "qcolor.h" - -+#ifdef _WIN32 -+#define MNG_USE_DLL -+#else - #define MNG_USE_SO -+#endif - #include - - QT_BEGIN_NAMESPACE From 772198abbc48b33be4d324330a6e08c8b1476a11 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 15 Jul 2015 16:19:50 +0300 Subject: [PATCH 1287/2060] opencv: Generate proper pkg-config file. --- mingw-w64-opencv/PKGBUILD | 11 +++++++--- .../generate-proper-pkg-config-file.patch | 21 +++++++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-opencv/generate-proper-pkg-config-file.patch diff --git a/mingw-w64-opencv/PKGBUILD b/mingw-w64-opencv/PKGBUILD index b3ba90fd37..7af574cad8 100644 --- a/mingw-w64-opencv/PKGBUILD +++ b/mingw-w64-opencv/PKGBUILD @@ -3,7 +3,7 @@ _realname=opencv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.0 -pkgrel=1 +pkgrel=2 pkgdesc="Open Source Computer Vision Library (mingw-w64)" arch=('any') url="http://opencv.org/" @@ -36,12 +36,14 @@ source=("${_realname}-${pkgver}.tar.gz"::https://github.com/Itseez/opencv/archiv 'mingw-w64-cmake.patch' 'solve_deg3-underflow.patch' 'issue-4107.patch' - 'remove-bindings-generation-DetectionBasedTracker.patch') + 'remove-bindings-generation-DetectionBasedTracker.patch' + 'generate-proper-pkg-config-file.patch') md5sums=('e6c72f54f7127161b371ef798f34d5c9' '8ff3af2593c9c92f48c2e9f59adaaa3d' 'ae03a59cf1202d5eafa94c2aac419ae6' '49b6e0d5a376300238a769074cd5d32c' - '232993e4a053e1014b513c39b789188a') + '232993e4a053e1014b513c39b789188a' + 'e3102a8339b25bffabd47e46c33807e4') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -50,6 +52,7 @@ prepare() { patch -Np1 -i "${srcdir}/solve_deg3-underflow.patch" patch -Np1 -i "${srcdir}/issue-4107.patch" patch -Np1 -i "${srcdir}/remove-bindings-generation-DetectionBasedTracker.patch" + patch -Np1 -i "${srcdir}/generate-proper-pkg-config-file.patch" } build() { @@ -78,10 +81,12 @@ build() { [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe -Wno-dev \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DPKG_CONFIG_WITHOUT_PREFIX=ON \ -DWITH_OPENCL=ON \ -DWITH_OPENGL=ON \ -DWITH_TBB=ON \ diff --git a/mingw-w64-opencv/generate-proper-pkg-config-file.patch b/mingw-w64-opencv/generate-proper-pkg-config-file.patch new file mode 100644 index 0000000000..3526f1c458 --- /dev/null +++ b/mingw-w64-opencv/generate-proper-pkg-config-file.patch @@ -0,0 +1,21 @@ +--- opencv-3.0.0/cmake/OpenCVGenPkgconfig.cmake.orig 2015-07-15 12:59:24.381598000 +0300 ++++ opencv-3.0.0/cmake/OpenCVGenPkgconfig.cmake 2015-07-15 13:09:57.506279200 +0300 +@@ -17,6 +17,7 @@ + if("${isown}") + get_filename_component(item "${item}" NAME_WE) + string(REGEX REPLACE "^lib(.*)" "\\1" item "${item}") ++ string(REGEX REPLACE "${OPENCV_DLLVERSION}" "" item "${item}") + endif() + endif() + if(item MATCHES "^-l") +@@ -25,8 +26,10 @@ + get_filename_component(libdir "${item}" PATH) + get_filename_component(libname "${item}" NAME_WE) + string(REGEX REPLACE "^lib(.*)" "\\1" libname "${libname}") ++ string(REGEX REPLACE "${OPENCV_DLLVERSION}" "" item "${item}") + list(APPEND _lst "-L${libdir}" "-l${libname}") + else() ++ string(REGEX REPLACE "${OPENCV_DLLVERSION}" "" item "${item}") + list(APPEND _lst "-l${item}") + endif() + endforeach() From 168223c598c88f6ded41145adb64add13c35285b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 15 Jul 2015 23:47:15 +0100 Subject: [PATCH 1288/2060] firefox: Very WIP --- mingw-w64-firefox/0002-Allow-MSYS2-make.patch | 14 - .../0004-Allow-MSYS2-python.patch | 43 -- .../0005-Allow-mingw-w64-python.patch | 398 ++++++++++++++++-- mingw-w64-firefox/PKGBUILD | 105 ++++- 4 files changed, 447 insertions(+), 113 deletions(-) diff --git a/mingw-w64-firefox/0002-Allow-MSYS2-make.patch b/mingw-w64-firefox/0002-Allow-MSYS2-make.patch index db9d93a389..91614184be 100644 --- a/mingw-w64-firefox/0002-Allow-MSYS2-make.patch +++ b/mingw-w64-firefox/0002-Allow-MSYS2-make.patch @@ -11,17 +11,3 @@ diff -urN a/config/baseconfig.mk b/config/baseconfig.mk # 4.0- happens to be greater than 4.0, lower than the mozmake version, # and lower than 4.0.1 or 4.1, whatever next version of gnu make will # be released. ---- firefox-39.0/config/baseconfig.mk.orig 2015-07-14 21:57:46.627572700 +0100 -+++ firefox-39.0/config/baseconfig.mk 2015-07-14 22:02:47.929566800 +0100 -@@ -38,11 +38,6 @@ - $(error Make version too old. Only versions strictly greater than 4.0 are supported.) - endif - --ifdef INCLUDED_AUTOCONF_MK --ifeq (a,$(firstword a$(subst /, ,$(srcdir)))) --$(error MSYS-style srcdir are not supported for Windows builds.) --endif --endif - endif # WINNT - - include_deps = $(eval $(if $(2),,-)include $(1)) diff --git a/mingw-w64-firefox/0004-Allow-MSYS2-python.patch b/mingw-w64-firefox/0004-Allow-MSYS2-python.patch index 913159ddab..21b3ea0221 100644 --- a/mingw-w64-firefox/0004-Allow-MSYS2-python.patch +++ b/mingw-w64-firefox/0004-Allow-MSYS2-python.patch @@ -116,46 +116,3 @@ diff -urN a/python/virtualenv/virtualenv.py b/python/virtualenv/virtualenv.py pythonw = os.path.join(os.path.dirname(sys.executable), 'pythonw.exe') if os.path.exists(pythonw): logger.info('Also created pythonw.exe') -@@ -1290,11 +1291,19 @@ - logger.info('Removed python_d.exe as it is no longer at the source') - os.unlink(python_d_dest) - # we need to copy the DLL to enforce that windows will load the correct one. -- # may not exist if we are cygwin. -- py_executable_dll = 'python%s%s.dll' % ( -- sys.version_info[0], sys.version_info[1]) -- py_executable_dll_d = 'python%s%s_d.dll' % ( -- sys.version_info[0], sys.version_info[1]) -+ try: -+ # Cygwin, msys2 and MSYS2's mingw-w64-{i686,x86-64}-python all support this. -+ # .. disabled for now on msys2 as there's a dll address overlap issue: -+ # 0 [main] python 824 child_info_fork::abort: address space needed by 'msys-python2.7.dll' (0x6F0000) is already occupied -+ import sysconfig -+ py_executable_dll = 'unused' if is_msys else sysconfig.get_config_var('DLLLIBRARY') -+ py_executable_dll_d = 'unused' -+ except: -+ # .. but CPython doesn't. -+ py_executable_dll = 'python%s%s.dll' % ( -+ sys.version_info[0], sys.version_info[1]) -+ py_executable_dll_d = 'python%s%s_d.dll' % ( -+ sys.version_info[0], sys.version_info[1]) - pythondll = os.path.join(os.path.dirname(sys.executable), py_executable_dll) - pythondll_d = os.path.join(os.path.dirname(sys.executable), py_executable_dll_d) - pythondll_d_dest = os.path.join(os.path.dirname(py_executable), py_executable_dll_d) -diff -urN a/build/autoconf/config.status.m4 b/build/autoconf/config.status.m4 ---- a/build/autoconf/config.status.m4 2015-07-14 20:29:46.830015600 +0100 -+++ b/build/autoconf/config.status.m4 2015-07-14 21:47:36.475764800 +0100 -@@ -81,12 +81,12 @@ - - dnl Replace AC_OUTPUT to create and call a python config.status - define([MOZ_CREATE_CONFIG_STATUS], --[dnl Top source directory in Windows format (as opposed to msys format). -+[dnl Top source directory in Python-appropriate format (Win, MSYS or Cygwin format). - WIN_TOP_SRC= - encoding=utf-8 - case "$host_os" in - mingw*) -- WIN_TOP_SRC=`cd $srcdir; pwd -W` -+ WIN_TOP_SRC=`${PYTHON} -c "import os, sys; print(os.path.abspath(sys.argv[1])" $srcdir` - ;; - esac - AC_SUBST(WIN_TOP_SRC) diff --git a/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch b/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch index 450e08267f..4cf457b2ef 100644 --- a/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch +++ b/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch @@ -1,6 +1,6 @@ -diff -urN a/python/virtualenv/virtualenv.py b/python/virtualenv/virtualenv.py ---- a/python/virtualenv/virtualenv.py 2015-07-13 22:51:52.604249800 +0100 -+++ b/python/virtualenv/virtualenv.py 2015-07-13 23:03:40.898855100 +0100 +diff -urN firefox-39.0.orig/python/virtualenv/virtualenv.py firefox-39.0/python/virtualenv/virtualenv.py +--- firefox-39.0.orig/python/virtualenv/virtualenv.py 2015-07-15 15:31:44.566317100 +0100 ++++ firefox-39.0/python/virtualenv/virtualenv.py 2015-07-15 19:22:03.026946400 +0100 @@ -41,6 +41,7 @@ join = os.path.join py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1]) @@ -18,43 +18,7 @@ diff -urN a/python/virtualenv/virtualenv.py b/python/virtualenv/virtualenv.py def get_installed_pythons(): return {} else: -@@ -113,6 +114,16 @@ - 're', 'sre', 'sre_parse', 'sre_constants', 'sre_compile', - 'zlib'] - -+if is_mingw: -+ REQUIRED_MODULES.extend(['functools', '__future__', 'logging', 'traceback', -+ 'weakref', 'collections', 'keyword', 'heapq', -+ 'atexit', 'optparse', 'textwrap', 'string', -+ 'contextlib', 'shutil', 'subprocess', 'threading', -+ 'tarfile', 'struct', 'copy', 'zipfile', 'io', -+ 'glob', 'tempfile', 'StringIO', 'SocketServer', -+ 'socket', 'random', 'opcode', 'hashlib', 'gettext', -+ 'getpass']) -+ - REQUIRED_FILES = ['lib-dynload', 'config'] - - majver, minver = sys.version_info[:2] -@@ -953,7 +962,9 @@ - logger.start_progress('Installing %s...' % (', '.join(project_names))) - logger.indent += 2 - try: -- call_subprocess(cmd, show_stdout=False, -+ print('cmd is %s' % cmd) -+ print('PYTHONPATH="%s" PIP_FIND_LINKS="%s" PIP_USE_WHEEL=1 PIP_PRE=1 PIP_NO_INDEX=1' % (pythonpath, findlinks)) -+ call_subprocess(cmd, show_stdout=True, - extra_env = { - 'PYTHONPATH': pythonpath, - 'PIP_FIND_LINKS': findlinks, -@@ -991,6 +1002,7 @@ - to_install = ['setuptools'] - if not no_pip: - to_install.append('pip') -+ print('install_wheel to_install=%s, py_executable=%s, search_dirs=%s' % (to_install, py_executable, search_dirs)) - install_wheel(to_install, py_executable, search_dirs) - - install_activate(home_dir, bin_dir, prompt) -@@ -1003,7 +1015,7 @@ +@@ -1003,7 +1004,7 @@ where scripts go, etc)""" # XXX: We'd use distutils.sysconfig.get_python_inc/lib but its # prefix arg is broken: http://bugs.python.org/issue3386 @@ -63,7 +27,7 @@ diff -urN a/python/virtualenv/virtualenv.py b/python/virtualenv/virtualenv.py # Windows has lots of problems with executables with spaces in # the name; this function will remove them (using the ~1 # format): -@@ -1035,7 +1047,7 @@ +@@ -1035,7 +1036,7 @@ lib_dir = home_dir inc_dir = join(home_dir, 'include') bin_dir = join(home_dir, 'bin') @@ -72,3 +36,355 @@ diff -urN a/python/virtualenv/virtualenv.py b/python/virtualenv/virtualenv.py lib_dir = join(home_dir, 'lib', py_version) multiarch_exec = '/usr/bin/multiarch-platform' if is_executable_file(multiarch_exec): +@@ -1160,7 +1161,7 @@ + mkdir(lib_dir) + fix_lib64(lib_dir, symlink) + stdlib_dirs = [os.path.dirname(os.__file__)] +- if is_win: ++ if is_win and not is_mingw: + stdlib_dirs.append(join(os.path.dirname(stdlib_dirs[0]), 'DLLs')) + elif is_darwin: + stdlib_dirs.append(join(stdlib_dirs[0], 'site-packages')) +@@ -1197,7 +1198,7 @@ + if not site_packages: + writefile(site_packages_filename, '') + +- if is_pypy or is_win: ++ if is_pypy or (is_win and not is_mingw): + stdinc_dir = join(prefix, 'include') + else: + stdinc_dir = join(prefix, 'include', py_version + abiflags) +@@ -1223,7 +1224,7 @@ + + # pypy never uses exec_prefix, just ignore it + if sys.exec_prefix != prefix and not is_pypy: +- if is_win: ++ if is_win and not is_mingw: + exec_dir = join(sys.exec_prefix, 'lib') + elif is_jython: + exec_dir = join(sys.exec_prefix, 'Lib') +@@ -1291,8 +1293,9 @@ + os.unlink(python_d_dest) + # we need to copy the DLL to enforce that windows will load the correct one. + # may not exist if we are cygwin. +- py_executable_dll = 'python%s%s.dll' % ( +- sys.version_info[0], sys.version_info[1]) ++ import sysconfig ++ py_executable_dll = sysconfig.get_config_var('DLLLIBRARY') if is_mingw else \ ++ 'python%s%s.dll' % (sys.version_info[0], sys.version_info[1]) + py_executable_dll_d = 'python%s%s_d.dll' % ( + sys.version_info[0], sys.version_info[1]) + pythondll = os.path.join(os.path.dirname(sys.executable), py_executable_dll) +@@ -1859,147 +1861,147 @@ + + ##file site.py + SITE_PY = convert(""" +-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 +-AVijEPwfucjncQ== ++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 ++pdriTdy0wSBndqo8AGMUvP8DesjxGg== + """) + + ##file activate.sh +diff -urN firefox-39.0.orig/python/virtualenv/virtualenv_embedded/site.py firefox-39.0/python/virtualenv/virtualenv_embedded/site.py +--- firefox-39.0.orig/python/virtualenv/virtualenv_embedded/site.py 2015-07-15 15:31:44.632317100 +0100 ++++ firefox-39.0/python/virtualenv/virtualenv_embedded/site.py 2015-07-15 19:06:43.500946400 +0100 +@@ -578,7 +578,7 @@ + plat_path = os.path.join(path, 'plat-%s' % sys.platform) + if os.path.exists(plat_path): + paths.append(plat_path) +- elif sys.platform == 'win32': ++ elif sys.platform == 'win32' and not 'GCC' in sys.version: + paths = [os.path.join(sys.real_prefix, 'Lib'), os.path.join(sys.real_prefix, 'DLLs')] + else: + paths = [os.path.join(sys.real_prefix, 'lib', 'python'+sys.version[:3])] +diff -urN firefox-39.0.orig/python/mozbuild/mozbuild/virtualenv.py firefox-39.0/python/mozbuild/mozbuild/virtualenv.py +--- firefox-39.0.orig/python/mozbuild/mozbuild/virtualenv.py 2015-07-15 21:11:43.419860400 +0100 ++++ firefox-39.0/python/mozbuild/mozbuild/virtualenv.py 2015-07-15 21:12:18.702750700 +0100 +@@ -65,7 +65,7 @@ + # we have a bit of a chicken-and-egg problem and can't reliably + # import virtualenv. The functionality is trivial, so just implement + # it here. +- if sys.platform in ('win32', 'cygwin'): ++ if sys.platform == 'win32' and not 'GCC' in sys.version: + return os.path.join(self.virtualenv_root, 'Scripts') + + return os.path.join(self.virtualenv_root, 'bin') diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index fd73c688e0..5b62326f21 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -1,8 +1,78 @@ # Maintainer: Ray Donnelly -# pushd /c/repo/mingw-w64-firefox/src -# PATH=/mingw64/bin:$PATH /mingw64/bin/python2.7.exe $PWD/firefox-39.0/python/virtualenv/virtualenv.py /tmp/test -# PATH=/mingw64/bin:$PATH PYTHONPATH="C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support/setuptools-11.0-py2.py3-none-any.whl;C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support/pip-6.0.6-py2.py3-none-any.whl" PIP_FIND_LINKS=". C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support" PIP_USE_WHEEL=1 PIP_PRE=1 PIP_NO_INDEX=1 C:/msys64t/tmp/test/bin/python2.7.exe -c 'import sys, pip; sys.exit(pip.main(["install", "--ignore-installed"] + sys.argv[1:]))' setuptools pip +# My workings .. +# +# Setting up a virtualenv and installing setuptools and pip into it: +# pushd /c/repo/mingw-w64-firefox/src +# PATH=/mingw64/bin:$PATH /mingw64/bin/python2.7.exe $PWD/firefox-39.0/python/virtualenv/virtualenv.py /tmp/test +# PATH=/mingw64/bin:$PATH PYTHONPATH="C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support/setuptools-11.0-py2.py3-none-any.whl;C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support/pip-6.0.6-py2.py3-none-any.whl" PIP_FIND_LINKS=". C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support" PIP_USE_WHEEL=1 PIP_PRE=1 PIP_NO_INDEX=1 C:/msys64t/tmp/test/bin/python2.7.exe -c 'import sys, pip; sys.exit(pip.main(["install", "--ignore-installed"] + sys.argv[1:]))' setuptools pip +# +# Using msys2-python has a problem. It emits .cpp files containing msys2 paths which causes MinGW-w64 GCC to fall over. +# seems harfbuzz have some conversion detection support that may be useful: +# "checking how to convert x86_64-pc-mingw64 file names to toolchain format... func_convert_file_msys_to_w32" +# but it'd need implementing in Python with subprocess I guess: +# msys2-python -> mingw-w64-gcc : cygpath -m +# msys2-python -> msys2-mingw-w64-cross-gcc : noop +# mingw-python -> mingw-w64-gcc : noop +# mingw-python -> msys2-mingw-w64-cross-gcc : cygpath -u +# * -> * : noop + +# Testing: +# cd /c/repo/mingw-w64-firefox/src +# [[ -d /tmp/win32-python ]] && rm -rf /tmp/win32-python +# mkdir /tmp/win32-python +# [[ -d /tmp/mingw-python ]] && rm -rf /tmp/mingw-python +# mkdir /tmp/mingw-python +# /c/Python27/python.exe $PWD/firefox-39.0/python/virtualenv/virtualenv.py /tmp/win32-python > /tmp/win32-python/log.txt +# /mingw64/bin/python.exe $PWD/firefox-39.0/python/virtualenv/virtualenv.py /tmp/mingw-python > /tmp/mingw-python/log.txt +# +# "ImportError: No module named opcode" <- it's meant to be found in the original location?! +# Working: +# In fake distutils __init__.py, sys.path is +# ['', +# 'C:\\repo\\mingw-w64-firefox\\src\\firefox-39.0\\python\\virtualenv\\virtualenv_support\\setuptools-11.0-py2.py3-none-any.whl', +# 'C:\\repo\\mingw-w64-firefox\\src\\firefox-39.0\\python\\virtualenv\\virtualenv_support\\pip-6.0.6-py2.py3-none-any.whl', +# 'C:\\windows\\system32\\python27.zip', +# 'C:\\msys64t\\tmp\\win32-python\\DLLs', +# 'C:\\msys64t\\tmp\\win32-python\\lib', +# 'C:\\msys64t\\tmp\\win32-python\\lib\\plat-win', +# 'C:\\msys64t\\tmp\\win32-python\\lib\\lib-tk', +# 'C:\\msys64t\\tmp\\win32-python\\Scripts', +# 'C:\\Python27\\Lib', +# 'C:\\Python27\\DLLs', +# 'C:\\Python27\\Lib\\lib-tk', +# 'C:\\msys64t\\tmp\\win32-python', +# 'C:\\msys64t\\tmp\\win32-python\\lib\\site-packages'] + +# In fake distutils __init__.py, sys.path is +# ['', +# 'C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support/setuptools-11.0-py2.py3-none-any.whl', +# 'C:/repo/mingw-w64-firefox/src/firefox-39.0/python/virtualenv/virtualenv_support/pip-6.0.6-py2.py3-none-any.whl', +# 'C:/msys64t/tmp/mingw-python/lib/python27.zip', +# 'C:/msys64t/tmp/mingw-python/lib/python2.7', +# 'C:/msys64t/tmp/mingw-python/lib/python2.7/plat-win32', +# 'C:/msys64t/tmp/mingw-python/lib/python2.7/lib-tk', +# 'C:/msys64t/tmp/mingw-python/lib/python2.7/lib-old', +# 'C:/msys64t/tmp/mingw-python/lib/python2.7/lib-dynload', +# 'C:/building/msys32/mingw64', +# 'C:/msys64t/mingw64/Lib', +# 'C:/msys64t/mingw64/DLLs', +# 'C:/msys64t/tmp/mingw-python/lib/python2.7/site-packages'] + +# Tweaks. +#_make="make.exe" +_make="mingw32-make.exe" +#_python="/usr/bin/python2.7.exe" +#_python="${MINGW_PREFIX}/bin/python2.7.exe" +#_python="/c/Python27/python.exe" +_python="/e/WinProgF/Python27/python.exe" +path_conv_for_make() { + if [ "${_make}" = "mingw32-make.exe" ]; then + echo $(cygpath -m "${1}") + else + echo $(cygpath -u "${1}") + fi +} _realname=firefox pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -30,13 +100,13 @@ source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/ noextract=("${_realname}-${pkgver}.source.tar.bz2") sha1sums=('32785daee7ddb9da8d7509ef095258fc58fe838e' '1c0810fbfd6f336eec81e236c89c6c9ca0e79290' - 'b59591f2ead727f6fcd3836305ece3ed6184544a' + 'c269337da604ab047de5dea088dbbe8f547dfbea' '2fd8904f036d2515e314b3d7510d8358add298d2' - '12e2360c2d6abad989dbc996fa4940fd6a6e830e' - 'bd2bb1270373703447db5f0f9bcd6a558621a0f7' - '60e51c33dd5eeaeaa1c38c7b575d183f27bb61a7' - '36da1863d7f1f5ea7faa50f773a6dbdda405d7f5' - '3861e9d68ee67aa2dc6a087158054c29466cd4da' + 'c06e3e351cb3d29148e0d477ad50b70973baf8be' + '1158054796bf8f26bf0d9ee97d5afbb533c5e39a' + 'c2a0ed20a82d212bb4aa84cb2f294be3ba0bb859' + 'f437cc5a819788b63d8d9202290f516a85e9f6a2' + 'f6da0857f310788c4a23d158bf03a93ab11230b7' '17c4f8628ea435c999be66ee4c2967fdaf3b2955' 'ffb6644dbad00413c668c833e3f3680d1d73aa53') @@ -58,9 +128,13 @@ prepare() { # and "is_win and False:" stuff relates to mingw-w64-python and is # to be replaced with proper detection and a variable "is_mingw". patch -p1 -i "${srcdir}"/0001-Allow-MSYS2-shell.patch - patch -p1 -i "${srcdir}"/0002-Allow-MSYS2-make.patch + if [ "${_make}" = "make" ]; then + patch -p1 -i "${srcdir}"/0002-Allow-MSYS2-make.patch + fi patch -p1 -i "${srcdir}"/0003-Use-PYTHON-env-var.patch - patch -p1 -i "${srcdir}"/0004-Allow-MSYS2-python.patch + if [ "${_python}" = "/usr/bin/python2.7.exe" ]; then + patch -p1 -i "${srcdir}"/0004-Allow-MSYS2-python.patch + fi patch -p1 -i "${srcdir}"/0005-Allow-mingw-w64-python.patch patch -p1 -i "${srcdir}"/debugging.patch @@ -79,9 +153,10 @@ build() { [ -d ${_builddir} ] && rm -rf "${_builddir}" mkdir ${_builddir} cp "${srcdir}"/mozconfig.${CARCH} ${_builddir}/.mozconfig - export PYTHON=/usr/bin/python2.7.exe -# export PYTHON=${MINGW_PREFIX}/bin/python2.7.exe + export PYTHON="${_python}" export MOZCONFIG=${PWD}/${_builddir}/.mozconfig + # See: https://bugzilla.mozilla.org/show_bug.cgi?id=950332 + echo "mk_add_options MOZ_OBJDIR=$(path_conv_for_make ${PWD}/${_builddir})" >> ${_builddir}/.mozconfig export MIDL=${MINGW_PREFIX}/bin/widl.exe export MOZ_TOOLS=${MINGW_PREFIX} @@ -94,8 +169,8 @@ build() { /^(UID|EUID)=/d; /^(FUNCNAME|GROUPS|PPID|SHELLOPTS|BASHOPTS)=/d;' > ./env-${CARCH}.sh - make -f client.mk configure - make -f client.mk build + "${_make}" -f client.mk configure + "${_make}" -f client.mk build } check() { From 6ce6251043f80c4c47b422dcd1b1d7aada5ced46 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 16 Jul 2015 09:03:26 +0300 Subject: [PATCH 1289/2060] === Rebuild with GCC-5.1.0. Part XI === --- mingw-w64-discount/PKGBUILD | 8 ++++---- mingw-w64-drmingw/PKGBUILD | 8 +++++--- mingw-w64-ghostscript/PKGBUILD | 3 ++- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/mingw-w64-discount/PKGBUILD b/mingw-w64-discount/PKGBUILD index 88a911f952..7521ecdda3 100644 --- a/mingw-w64-discount/PKGBUILD +++ b/mingw-w64-discount/PKGBUILD @@ -3,7 +3,7 @@ _realname=discount pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.8 -pkgrel=1 +pkgrel=2 pkgdesc="A Markdown implementation written in C (mingw-w64)" arch=('any') url="http://www.pell.portland.or.us/~orc/Code/discount/" @@ -11,7 +11,7 @@ license=('custom:BSD') provides=("${MINGW_PACKAGE_PREFIX}-markdown") conflicts=("${MINGW_PACKAGE_PREFIX}-markdown") options=('strip' 'staticlibs') -source=(http://www.pell.portland.or.us/~orc/Code/discount/${_realname}-$pkgver.tar.gz +source=(http://www.pell.portland.or.us/~orc/Code/discount/${_realname}-${pkgver}.tar.gz discount-mingw-building.patch) md5sums=('fcb1e7a3d19c2e666655fa8a28066e76' 'f24ced063ce7229bcbdefc18db52b976') @@ -37,9 +37,9 @@ build() { } package() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,include,lib} - make DESTDIR="$pkgdir" install.everything + make DESTDIR="${pkgdir}" install.everything mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ install -Dm644 COPYRIGHT "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-drmingw/PKGBUILD b/mingw-w64-drmingw/PKGBUILD index 0ce7b1e351..95de650c37 100644 --- a/mingw-w64-drmingw/PKGBUILD +++ b/mingw-w64-drmingw/PKGBUILD @@ -4,7 +4,7 @@ _realname=drmingw pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) pkgver=0.7.4 -pkgrel=1 +pkgrel=2 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') license=(LGPL2.1) @@ -31,16 +31,18 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ ../${_realname}-${pkgver} + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 install + make DESTDIR=${pkgdir} -j1 install # License files cd "${pkgdir}${MINGW_PREFIX}/share" diff --git a/mingw-w64-ghostscript/PKGBUILD b/mingw-w64-ghostscript/PKGBUILD index c27f29b77e..aa87d1f319 100644 --- a/mingw-w64-ghostscript/PKGBUILD +++ b/mingw-w64-ghostscript/PKGBUILD @@ -3,7 +3,7 @@ _realname=ghostscript pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=9.15 -pkgrel=3 +pkgrel=4 arch=('any') license=('AGPL' 'custom') pkgdesc="An interpreter for the PostScript language (mingw-w64)" @@ -78,6 +78,7 @@ package() { install -D -m644 "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE cp ${pkgdir}${MINGW_PREFIX}/bin/{gsc,gswin32c}.exe + cp ${pkgdir}${MINGW_PREFIX}/bin/{gsc,gs}.exe # remove unwanted localized man-pages rm -rf "${pkgdir}${MINGW_PREFIX}"/share/man/[^man1]* From e9056d0b4ff1e979ae35b99aab46d1141bdc3f25 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 16 Jul 2015 15:44:34 +0300 Subject: [PATCH 1290/2060] === Rebuild with GCC-5.1.0. Part XII === --- mingw-w64-codelite-git/PKGBUILD | 28 ++++--- .../windows-headers-conflict.patch | 16 ++++ mingw-w64-cyrus-sasl/PKGBUILD | 6 +- mingw-w64-extra-cmake-modules/PKGBUILD | 21 +++--- mingw-w64-gnupg/PKGBUILD | 8 +- mingw-w64-gpgme/PKGBUILD | 2 +- mingw-w64-gst-editing-services/PKGBUILD | 30 ++++---- mingw-w64-libassuan/PKGBUILD | 2 +- mingw-w64-libksba/PKGBUILD | 3 +- mingw-w64-liboauth/PKGBUILD | 20 ++--- mingw-w64-libusb-compat-git/PKGBUILD | 2 +- mingw-w64-libusb/PKGBUILD | 10 +-- mingw-w64-mesa/PKGBUILD | 14 ++-- mingw-w64-npth/PKGBUILD | 4 +- mingw-w64-nss/PKGBUILD | 24 +++--- mingw-w64-qca-qt5-git/PKGBUILD | 75 +++++++++++++++++++ .../cyrus_sasl_linking.patch | 13 ++++ mingw-w64-qca-qt5-git/find_nss_cmake.patch | 15 ++++ .../qca-mingw-custom-certificates.patch | 72 ++++++++++++++++++ .../qca-mingw-pkg-config.patch | 20 +++++ .../qca-qt5-git-i686.install | 12 +++ .../qca-qt5-git-x86_64.install | 12 +++ mingw-w64-qca-qt5-git/qt5-custom-dirs.patch | 42 +++++++++++ mingw-w64-qwt-qt5/PKGBUILD | 13 +--- mingw-w64-qxmpp/PKGBUILD | 4 +- mingw-w64-snoregrowl/PKGBUILD | 29 +++---- mingw-w64-snorenotify/PKGBUILD | 28 +++---- 27 files changed, 394 insertions(+), 131 deletions(-) create mode 100644 mingw-w64-qca-qt5-git/PKGBUILD create mode 100644 mingw-w64-qca-qt5-git/cyrus_sasl_linking.patch create mode 100644 mingw-w64-qca-qt5-git/find_nss_cmake.patch create mode 100644 mingw-w64-qca-qt5-git/qca-mingw-custom-certificates.patch create mode 100644 mingw-w64-qca-qt5-git/qca-mingw-pkg-config.patch create mode 100644 mingw-w64-qca-qt5-git/qca-qt5-git-i686.install create mode 100644 mingw-w64-qca-qt5-git/qca-qt5-git-x86_64.install create mode 100644 mingw-w64-qca-qt5-git/qt5-custom-dirs.patch diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index dc2c12b9db..7c3898ceb2 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -4,17 +4,18 @@ _realname=codelite pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=8.0.1.125.gcdaabf0 +pkgver=8.0.1.254.g466ff70 pkgrel=1 pkgdesc="Open-source, cross platform IDE for the C/C++ programming languages (mingw-w64)" arch=('any') license=('GPL') url="http://www.codelite.org" -depends=("${MINGW_PACKAGE_PREFIX}-hunspell" - "${MINGW_PACKAGE_PREFIX}-libssh" - "${MINGW_PACKAGE_PREFIX}-wxWidgets" - #"${MINGW_PACKAGE_PREFIX}-drmingw" - "${MINGW_PACKAGE_PREFIX}-gcc-libs") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-hunspell" + "${MINGW_PACKAGE_PREFIX}-libssh" + "${MINGW_PACKAGE_PREFIX}-drmingw" + "${MINGW_PACKAGE_PREFIX}-wxWidgets" + ) optdepends=("${MINGW_PACKAGE_PREFIX}-clang") makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-cmake" @@ -25,27 +26,24 @@ source=("${_realname}::git+https://github.com/eranif/codelite.git" include-winsock-header.patch mingw-use-wx-manifests.patch use-gnu-extensions.patch - windows-headers-conflict.patch - codelite-clang-3.6.patch) + windows-headers-conflict.patch) md5sums=('SKIP' '926c4848932586577192bd950ffc604b' 'b18e62316a10dac7c274e2faccd86180' 'f7ce106c3565835c019fbcda0f9bea56' - 'edfe66ed42e12811d51e771bf947fd00' - '71dd975305f41b0b5a7efba440bb35fc') + '1ae47bc9b913d425f98533c237b45ceb') pkgver() { - cd "$_realname" + cd "${_realname}" git describe --tags | sed 's|-|.|g' } prepare() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" patch -p1 -i ${srcdir}/include-winsock-header.patch patch -p1 -i ${srcdir}/mingw-use-wx-manifests.patch patch -p1 -i ${srcdir}/use-gnu-extensions.patch patch -p1 -i ${srcdir}/windows-headers-conflict.patch - patch -p1 -i ${srcdir}/codelite-clang-3.6.patch } build() { @@ -57,7 +55,7 @@ build() { extra_config+=( -DCMAKE_BUILD_TYPE=Release ) fi - cd $srcdir/${_realname} + cd ${srcdir}/${_realname} ${MINGW_PREFIX}/bin/cmake \ -Wno-dev \ -G"MSYS Makefiles" \ @@ -73,7 +71,7 @@ build() { } package() { - cd "$srcdir/${_realname}" + cd "${srcdir}/${_realname}" make install rm -f ${pkgdir}${MINGW_PREFIX}/lib/codelite/*.a diff --git a/mingw-w64-codelite-git/windows-headers-conflict.patch b/mingw-w64-codelite-git/windows-headers-conflict.patch index fd55cbb5fe..843b5d91bc 100644 --- a/mingw-w64-codelite-git/windows-headers-conflict.patch +++ b/mingw-w64-codelite-git/windows-headers-conflict.patch @@ -17,3 +17,19 @@ #include "fileextmanager.h" const wxEventType wxEVT_SV_GOTO_DEFINITION = wxNewEventType(); +--- a/CodeLite/SocketAPI/clSocketBase.h.orig 2015-07-15 18:25:00.504000000 +0300 ++++ b/CodeLite/SocketAPI/clSocketBase.h 2015-07-15 18:34:16.400800000 +0300 +@@ -31,11 +31,12 @@ + #include + #include "codelite_exports.h" + +-#ifdef _WIN32 ++#ifdef __WXMSW__ + #include + + typedef SOCKET socket_t; + typedef int socklen_t; ++#include + #else + typedef int socket_t; + #define INVALID_SOCKET -1 diff --git a/mingw-w64-cyrus-sasl/PKGBUILD b/mingw-w64-cyrus-sasl/PKGBUILD index 28d070922b..0434162f9e 100644 --- a/mingw-w64-cyrus-sasl/PKGBUILD +++ b/mingw-w64-cyrus-sasl/PKGBUILD @@ -24,7 +24,7 @@ _realname=cyrus-sasl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.1.26 -pkgrel=4 +pkgrel=5 pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library" arch=('any') url="http://cyrusimap.web.cmu.edu/" @@ -135,7 +135,7 @@ build() { # * https://www.openssl.org/support/faq.html#LEGAL2 # * http://en.wikipedia.org/wiki/OpenSSL#Licensing - ../$_realname-$pkgver/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -161,5 +161,5 @@ package() { cd "${srcdir}/build-${CARCH}" make DESTDIR="${pkgdir}" install sasldir=${_plugindir} - install -Dm644 ${srcdir}/$_realname-$pkgver/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-extra-cmake-modules/PKGBUILD b/mingw-w64-extra-cmake-modules/PKGBUILD index a61910f4a6..a50e08ea7f 100644 --- a/mingw-w64-extra-cmake-modules/PKGBUILD +++ b/mingw-w64-extra-cmake-modules/PKGBUILD @@ -4,18 +4,17 @@ _realname=extra-cmake-modules pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.0 -_pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 pkgdesc='Extra CMake modules (mingw-w64)' arch=('any') url='https://projects.kde.org/projects/kdesupport/extra-cmake-modules' license=('LGPL') depends=("${MINGW_PACKAGE_PREFIX}-cmake") -# makedepends=('python-sphinx') # qt5-tools for QtHelp pages -source=("http://download.kde.org/stable/frameworks/${_pkgver%.*}/${_realname}-${pkgver}.tar.xz" +makedepends=("${MINGW_PACKAGE_PREFIX}-python3-sphinx") # qt5-tools for QtHelp pages +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" "set-AUTOSTATICPLUGINS.patch") -md5sums=('2967e1ac220cf9b3a52cd19ec2a608df' +md5sums=('e4042cf258b545267d74b0cf7d756150' '0d249754247382f3b8dda80d6833aac4') prepare() { @@ -29,11 +28,12 @@ prepare() { build() { cd build-${CARCH} MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ - cmake ../${_realname}-${pkgver} \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_HTML_DOCS=OFF \ - -G'MSYS Makefiles' + cmake ../${_realname}-${pkgver} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_HTML_DOCS=OFF \ + -G'MSYS Makefiles' + make } @@ -41,4 +41,3 @@ package() { cd build-${CARCH} make DESTDIR="${pkgdir}" install } - diff --git a/mingw-w64-gnupg/PKGBUILD b/mingw-w64-gnupg/PKGBUILD index 4e05dc85bc..c8d4bed7db 100644 --- a/mingw-w64-gnupg/PKGBUILD +++ b/mingw-w64-gnupg/PKGBUILD @@ -2,7 +2,7 @@ _realname=gnupg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.3 +pkgver=2.1.6 pkgrel=1 pkgdesc="GNU Privacy Guard - a PGP replacement tool (mingw-w64)" arch=('any') @@ -20,9 +20,9 @@ makedepends=("texinfo" "${MINGW_PACKAGE_PREFIX}-gcc") # REMOVE openldap package before build license=('GPL') url="http://www.gnupg.org/" -source=(ftp://ftp.gnupg.org/gcrypt/gnupg/${_realname}-$pkgver.tar.bz2{,.sig} +source=(ftp://ftp.gnupg.org/gcrypt/gnupg/${_realname}-${pkgver}.tar.bz2{,.sig} 01-mingw32-fix-potomo.mingw.patch) -sha1sums=('091e69ec1ce3f0032e6b135e4da561e8d46d20a7' +sha1sums=('9e8157b3386da04760657ce3117fc4dc570c57c5' 'SKIP' 'adca40b456c054db3aae5f112e18f56235322a45') @@ -37,7 +37,7 @@ build() { [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-gpgme/PKGBUILD b/mingw-w64-gpgme/PKGBUILD index f22fac7808..e27cbd210b 100644 --- a/mingw-w64-gpgme/PKGBUILD +++ b/mingw-w64-gpgme/PKGBUILD @@ -3,7 +3,7 @@ _realname=gpgme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.5.5 -pkgrel=1 +pkgrel=2 pkgdesc="A C wrapper library for GnuPG (mingw-w64)" arch=('any') url="http://www.gnupg.org/related_software/gpgme/" diff --git a/mingw-w64-gst-editing-services/PKGBUILD b/mingw-w64-gst-editing-services/PKGBUILD index 5873b05d8a..052aa6ae9b 100644 --- a/mingw-w64-gst-editing-services/PKGBUILD +++ b/mingw-w64-gst-editing-services/PKGBUILD @@ -1,55 +1,59 @@ # Maintainer: Lubosz Sarnecki +_srcname=gstreamer-editing-services _realname=gst-editing-services pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.2.1 +pkgver=1.4.0 pkgrel=1 pkgdesc="GStreamer Editing Services (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-python2" - "git") + "${MINGW_PACKAGE_PREFIX}-python2") depends=("${MINGW_PACKAGE_PREFIX}-gst-plugins-base" "${MINGW_PACKAGE_PREFIX}-gstreamer") options=(!libtool strip staticlibs) -source=("git://anongit.freedesktop.org/gstreamer/$_realname#tag=${pkgver}" +source=(http://gstreamer.freedesktop.org/src/${_realname}/${_srcname}-${pkgver}.tar.xz 0001-make-mingw-find-gir-scanner.patch 0002-add-cflags-for-gir.patch ) -md5sums=('SKIP' +md5sums=('063cc8aae62c9013d078da7f3825805f' '38b10c073e9ccd3dfbeab28e151fdc9a' '650a069277d5b0e85f8be15948e2d03a') prepare() { - cd $_realname - git am ../0001-make-mingw-find-gir-scanner.patch - git am ../0002-add-cflags-for-gir.patch - NOCONFIGURE=1 ./autogen.sh + cd ${_srcname}-${pkgver} + patch -p1 -i ${srcdir}/0001-make-mingw-find-gir-scanner.patch + patch -p1 -i ${srcdir}/0002-add-cflags-for-gir.patch + + autoreconf -fiv + #NOCONFIGURE=1 ./autogen.sh } build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - cp -rf ${_realname} "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + #cp -rf ${_realname} "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ./configure \ + ../${_srcname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --disable-static \ --enable-shared \ --enable-silent-rules \ - --enable-experimental \ --disable-gtk-doc + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a } diff --git a/mingw-w64-libassuan/PKGBUILD b/mingw-w64-libassuan/PKGBUILD index 33d1a0ed9f..e262c49a6c 100644 --- a/mingw-w64-libassuan/PKGBUILD +++ b/mingw-w64-libassuan/PKGBUILD @@ -3,7 +3,7 @@ _realname=libassuan pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.2.1 -pkgrel=1 +pkgrel=2 pkgdesc="A IPC library used by some GnuPG related software (mingw-w64)" arch=('any') license=('GPL') diff --git a/mingw-w64-libksba/PKGBUILD b/mingw-w64-libksba/PKGBUILD index a3062cdc29..40c98305bc 100644 --- a/mingw-w64-libksba/PKGBUILD +++ b/mingw-w64-libksba/PKGBUILD @@ -3,7 +3,7 @@ _realname=libksba pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.3 -pkgrel=1 +pkgrel=2 pkgdesc="A CMS and X.509 access library (mingw-w64)" arch=('any') license=('GPL') @@ -31,6 +31,7 @@ build() { --target=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } diff --git a/mingw-w64-liboauth/PKGBUILD b/mingw-w64-liboauth/PKGBUILD index 59cac28225..8b0067f786 100644 --- a/mingw-w64-liboauth/PKGBUILD +++ b/mingw-w64-liboauth/PKGBUILD @@ -3,7 +3,7 @@ _realname=liboauth pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.3 -pkgrel=3 +pkgrel=4 arch=('any') pkgdesc="liboauth is a collection of POSIX-c functions implementing the OAuth Core RFC 5849 standard (mingw-w64)" license=("GPL 2") @@ -12,14 +12,15 @@ depends=("${MINGW_PACKAGE_PREFIX}-curl" #"${MINGW_PACKAGE_PREFIX}-nss" ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "make" - "libtool" - "automake-wrapper" - "autoconf" - "patch") + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "make" + "libtool" + "automake-wrapper" + "autoconf" + "patch") options=('strip' '!debug' 'staticlibs') -source=(http://downloads.sourceforge.net/project/${_realname}/${_realname}-$pkgver.tar.gz +source=(http://downloads.sourceforge.net/project/${_realname}/${_realname}-${pkgver}.tar.gz noundefined.patch) sha256sums=('0df60157b052f0e774ade8a8bac59d6e8d4b464058cc55f9208d72e41156811f' 'ae77e26395eedd19e27359579ace90976e6d7746bb3fcfa56493c2b1a60f9970') @@ -42,9 +43,10 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ - --disable-nss + --enable-nss make + # make dox # Generate doxygen docs } package() { diff --git a/mingw-w64-libusb-compat-git/PKGBUILD b/mingw-w64-libusb-compat-git/PKGBUILD index eee411a966..b1215c39dd 100644 --- a/mingw-w64-libusb-compat-git/PKGBUILD +++ b/mingw-w64-libusb-compat-git/PKGBUILD @@ -6,7 +6,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides="${MINGW_PACKAGE_PREFIX}-${_realname}" conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=r60.072a5e4 -pkgrel=2 +pkgrel=3 pkgdesc="libusb provides generic access to USB devices (mingw-w64)" arch=('any') url="http://libusb.info" diff --git a/mingw-w64-libusb/PKGBUILD b/mingw-w64-libusb/PKGBUILD index f97b6fff8a..106d8964e5 100644 --- a/mingw-w64-libusb/PKGBUILD +++ b/mingw-w64-libusb/PKGBUILD @@ -3,21 +3,21 @@ _realname=libusb pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.19 -pkgrel=2 -pkgdesc="Library that provides generic access to USB devices'. (mingw-w64)" +pkgrel=3 +pkgdesc="Library that provides generic access to USB devices (mingw-w64)" arch=('any') url="http://libusb.info/" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.bz2") +source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2") md5sums=('f9e2bb5879968467e5ca756cb4e1fa7e') build() { #export lt_cv_deplibs_check_method='pass_all' mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -34,5 +34,5 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 55e2d64227..4caac9de8c 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,7 +2,7 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.6.0 +pkgver=10.6.2 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('1a7e2e9f17eff9307fd14fb6cc70783b' +md5sums=('3402949cae357ddf61a24c2518e87c22' 'SKIP' '3eaea880ab48f851c392c2106a616e21') @@ -31,12 +31,12 @@ case ${MINGW_CHOST} in esac prepare() { - cd ${srcdir}/${_realname}-$pkgver + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-extra-libs.patch } build() { - cd ${srcdir}/${_realname}-$pkgver + cd ${srcdir}/${_realname}-${pkgver} LLVM=${MINGW_PREFIX} \ CFLAGS="-march=core2 -pipe -D_USE_MATH_DEFINES" \ @@ -46,12 +46,12 @@ build() { } package() { - cd ${srcdir}/${_realname}-$pkgver + cd ${srcdir}/${_realname}-${pkgver} mkdir -p ${pkgdir}${MINGW_PREFIX}/bin #mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/mesa - local _dll_files=( $(find ${srcdir}/${_realname}-$pkgver -type f -name "*.dll") ) + local _dll_files=( $(find ${srcdir}/${_realname}-${pkgver} -type f -name "*.dll") ) cp -f ${_dll_files[@]} ${pkgdir}${MINGW_PREFIX}/bin/ - #local _dlla_files=( $(find ${srcdir}/Mesa-$pkgver -type f -name "*.a") ) + #local _dlla_files=( $(find ${srcdir}/Mesa-${pkgver} -type f -name "*.a") ) #cp -f ${_dlla_files[@]} ${pkgdir}${MINGW_PREFIX}/lib/mesa/ } diff --git a/mingw-w64-npth/PKGBUILD b/mingw-w64-npth/PKGBUILD index ecca461a2e..7e72b249c1 100644 --- a/mingw-w64-npth/PKGBUILD +++ b/mingw-w64-npth/PKGBUILD @@ -3,7 +3,7 @@ _realname=npth pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2 -pkgrel=1 +pkgrel=2 pkgdesc="New portable threads library (mingw-w64)" arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") @@ -23,7 +23,7 @@ build() { [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-nss/PKGBUILD b/mingw-w64-nss/PKGBUILD index acc8c0f249..bd1084198e 100644 --- a/mingw-w64-nss/PKGBUILD +++ b/mingw-w64-nss/PKGBUILD @@ -5,14 +5,14 @@ _realname=nss pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.19.2 _nsprver=4.10.8 -pkgrel=1 +pkgrel=2 pkgdesc="Mozilla Network Security Services (mingw-w64)" arch=('any') url="http://www.mozilla.org/projects/security/pki/nss/" license=(MPL2) depends=("${MINGW_PACKAGE_PREFIX}-nspr" - "${MINGW_PACKAGE_PREFIX}-sqlite3" - "${MINGW_PACKAGE_PREFIX}-zlib") + "${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "zip" "perl") options=('staticlibs' 'strip' '!emptydirs') source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/src/${_realname}-${pkgver}.tar.gz @@ -57,6 +57,7 @@ build() { export BUILD_OPT=1 export NSS_USE_SYSTEM_SQLITE=1 export NSS_ENABLE_ECC=1 + export NSS_DISABLE_DBM=1 export NSPR_INCLUDE_DIR="`nspr-config --includedir`" export NSPR_LIB_DIR="`nspr-config --libdir`" export SQLITE_LIB_DIR=${MINGW_PREFIX}/lib @@ -89,7 +90,7 @@ package() { -e "s,%NSPR_VERSION%,${_nsprver},g" \ -e "s,%NSS_VERSION%,${pkgver},g" \ > "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/nss.pc" - cp -f ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/nss.pc "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/mozilla-nss.pc" + cp -f ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/nss.pc ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/mozilla-nss.pc sed ../nss-config.in \ -e "s,@libdir@,${MINGW_PREFIX}/lib,g" \ @@ -100,12 +101,11 @@ package() { -e "s,@MOD_MINOR_VERSION@,${NSS_VMINOR},g" \ -e "s,@MOD_PATCH_VERSION@,${NSS_VPATCH},g" \ > "${pkgdir}${MINGW_PREFIX}/bin/nss-config" - chmod 755 "${pkgdir}${MINGW_PREFIX}/bin/nss-config" + chmod 755 ${pkgdir}${MINGW_PREFIX}/bin/nss-config # Copy the binary libraries we want - for file in softokn nss nssutil \ - ssl smime nssdbm + for file in softokn nss nssutil ssl smime #nssdbm do install -m 755 dist/*.OBJ/lib/${file}3.dll ${pkgdir}${MINGW_PREFIX}/bin/ install -m 644 dist/*.OBJ/lib/lib${file}3.dll.a ${pkgdir}${MINGW_PREFIX}/lib/lib${file}3.dll.a @@ -123,28 +123,28 @@ package() { # Copy the development libraries we want for file in libcrmf.dll.a libnssb.dll.a libnssckfw.dll.a do - install -m 644 dist/*.OBJ/lib/$file ${pkgdir}${MINGW_PREFIX}/lib/ + install -m 644 dist/*.OBJ/lib/${file} ${pkgdir}${MINGW_PREFIX}/lib/ done # Copy the binaries we want for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap do - install -m 755 dist/*.OBJ/bin/$file.exe ${pkgdir}${MINGW_PREFIX}/bin/ + install -m 755 dist/*.OBJ/bin/${file}.exe ${pkgdir}${MINGW_PREFIX}/bin/ done # Copy the binaries we ship as unsupported for file in atob btoa derdump ocspclnt pp selfserv shlibsign strsclnt symkeyutil \ tstclnt vfyserv vfychain do - install -m 755 dist/*.OBJ/bin/$file.exe ${pkgdir}${MINGW_PREFIX}/lib/nss/ + install -m 755 dist/*.OBJ/bin/${file}.exe ${pkgdir}${MINGW_PREFIX}/lib/nss/ done # Copy the include files we want for file in dist/public/nss/*.h do - install -m 644 $file ${pkgdir}${MINGW_PREFIX}/include/nss3 + install -m 644 ${file} ${pkgdir}${MINGW_PREFIX}/include/nss3 done # License - install -Dm644 nss/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + install -Dm644 nss/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING } diff --git a/mingw-w64-qca-qt5-git/PKGBUILD b/mingw-w64-qca-qt5-git/PKGBUILD new file mode 100644 index 0000000000..78591f7f3f --- /dev/null +++ b/mingw-w64-qca-qt5-git/PKGBUILD @@ -0,0 +1,75 @@ +# Maintainer: AlexWMF + +_realname=qca +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt5-git" +pkgver=2219.4fd11c4 +pkgrel=1 +pkgdesc="Qt Cryptographic Architecture (mingw-w64)" +arch=('any') +url="http://delta.affinix.com/qca/" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git") +depends=("${MINGW_PACKAGE_PREFIX}-ca-certificates" + "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-gnupg" + "${MINGW_PACKAGE_PREFIX}-libgcrypt" + "${MINGW_PACKAGE_PREFIX}-nss" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-qt5") +install=${_realname}-qt5-git-${CARCH}.install +source=("${_realname}"::"git://anongit.kde.org/qca.git" + "cyrus_sasl_linking.patch" + "find_nss_cmake.patch" + "qt5-custom-dirs.patch" + "qca-mingw-pkg-config.patch" + "qca-mingw-custom-certificates.patch") +md5sums=('SKIP' + '89d537c0b449408685ff48f401239544' + '2ce45122eba6d2518f773bc4c5934e32' + 'd7aa8839528f2ec51d2a1d39fa0e38f4' + 'ab16edc15378a7221da06de0e989ed09' + 'c6c5d9b2c071e44dd909d9313d8625df') + +pkgver() { + cd ${srcdir}/${_realname} + printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}/${_realname}" + patch -p1 -i ${srcdir}/cyrus_sasl_linking.patch + patch -p1 -i ${srcdir}/find_nss_cmake.patch + patch -p1 -i ${srcdir}/qt5-custom-dirs.patch + patch -p1 -i ${srcdir}/qca-mingw-pkg-config.patch + patch -p1 -i ${srcdir}/qca-mingw-custom-certificates.patch +} + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + + #QC_CERTSTORE_PATH=${MINGW_PREFIX}/ssl/certs/ca-bundle.crt + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;DQC_CERTSTORE_PATH=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_TESTS=False \ + -DQT4_BUILD=OFF \ + -DQCA_SUFFIX=qt5 \ + -DQCA_SYSTEMSTORE_PATH=../ssl/certs/ca-bundle.crt \ + -DQCA_INSTALL_IN_QT_PREFIX=ON \ + ../${_realname} + + make ${MAKEFLAGS} +} + +package() { + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR="${pkgdir}" install +} diff --git a/mingw-w64-qca-qt5-git/cyrus_sasl_linking.patch b/mingw-w64-qca-qt5-git/cyrus_sasl_linking.patch new file mode 100644 index 0000000000..50ee0ab841 --- /dev/null +++ b/mingw-w64-qca-qt5-git/cyrus_sasl_linking.patch @@ -0,0 +1,13 @@ +--- qca/plugins/qca-cyrus-sasl/qca-cyrus-sasl.cpp.orig 2014-12-13 15:14:30.695884500 +0300 ++++ qca/plugins/qca-cyrus-sasl/qca-cyrus-sasl.cpp 2014-12-13 15:14:48.425898600 +0300 +@@ -24,10 +24,7 @@ + #include + #include + +-extern "C" +-{ + #include +-} + + #include + #include diff --git a/mingw-w64-qca-qt5-git/find_nss_cmake.patch b/mingw-w64-qca-qt5-git/find_nss_cmake.patch new file mode 100644 index 0000000000..af95fa64de --- /dev/null +++ b/mingw-w64-qca-qt5-git/find_nss_cmake.patch @@ -0,0 +1,15 @@ +--- qca/cmake/modules/FindNss.cmake.orig 2014-12-13 15:22:53.153623400 +0300 ++++ qca/cmake/modules/FindNss.cmake 2014-12-13 15:24:46.642114600 +0300 +@@ -17,10 +17,8 @@ + SET(NSS_FOUND TRUE) + + else() +- if(NOT WIN32) +- find_package(PkgConfig) +- pkg_search_module(NSS nss) +- endif(NOT WIN32) ++ find_package(PkgConfig) ++ pkg_search_module(NSS nss) + + if (NSS_FOUND) + if (NOT Nss_FIND_QUIETLY) diff --git a/mingw-w64-qca-qt5-git/qca-mingw-custom-certificates.patch b/mingw-w64-qca-qt5-git/qca-mingw-custom-certificates.patch new file mode 100644 index 0000000000..cb15b31e88 --- /dev/null +++ b/mingw-w64-qca-qt5-git/qca-mingw-custom-certificates.patch @@ -0,0 +1,72 @@ +--- qca/CMakeLists.txt.orig 2015-07-16 11:01:38.665447700 +0300 ++++ qca/CMakeLists.txt 2015-07-16 11:19:17.252578400 +0300 +@@ -277,10 +277,11 @@ + endif (APPLE) + + message(STATUS "Checking for certstore..") ++if(NOT QCA_SYSTEMSTORE_PATH) + # fixme add OR mac +-if( WIN32 ) ++if( MSVC ) + # USE BUILTIN +-else ( WIN32 ) ++else ( MSVC ) + if ( DEFINED ENV{QC_CERTSTORE_PATH} ) + if(EXISTS $ENV{QC_CERTSTORE_PATH}) + set( qca_CERTSTORE $ENV{QC_CERTSTORE_PATH}) +@@ -302,7 +303,9 @@ + endif(EXISTS ${_current_try}) + endforeach (_current_try) + endif( DEFINED ENV{QC_CERTSTORE_PATH} ) +-endif(WIN32) ++else() ++ set( qca_CERTSTORE ${QCA_SYSTEMSTORE_PATH}) ++endif(MSVC) + + if (qca_CERTSTORE) + message(STATUS "Found system certstore") +@@ -316,6 +317,10 @@ + endif (qca_CERTSTORE) + message(STATUS "certstore path: " ${qca_CERTSTORE}) + add_definitions( -DQCA_SYSTEMSTORE_PATH="${qca_CERTSTORE}" ) ++else() ++message(STATUS "certstore path: " ${QCA_SYSTEMSTORE_PATH}) ++add_definitions( -DQCA_SYSTEMSTORE_PATH="${qca_CERTSTORE}" ) ++endif() + + + set( private_HEADERS ${qca_INCLUDEDIR}/QtCrypto/qca_plugin.h ${qca_INCLUDEDIR}/QtCrypto/qca_systemstore.h ) +--- qca/src/CMakeLists.txt.orig 2015-07-16 11:09:16.212688400 +0300 ++++ qca/src/CMakeLists.txt 2015-07-16 11:16:34.878817400 +0300 +@@ -52,7 +52,7 @@ + support/syncthread.cpp + ) + +-IF (WIN32) ++IF (WIN32 AND NOT MINGW) + SET( nonmoc_SOURCES ${nonmoc_SOURCES} qca_systemstore_win.cpp ) + elseif(APPLE) + set( nonmoc_SOURCES ${nonmoc_SOURCES} qca_systemstore_mac.cpp) +--- qca/src/qca_systemstore_flatfile.cpp.orig 2015-07-16 11:16:51.678137300 +0300 ++++ qca/src/qca_systemstore_flatfile.cpp 2015-07-16 11:35:28.073486600 +0300 +@@ -21,6 +21,7 @@ + #include "qca_systemstore.h" + + #include ++#include + + namespace QCA { + +@@ -32,7 +32,12 @@ + + CertificateCollection qca_get_systemstore(const QString &provider) + { ++#ifdef Q_OS_WIN ++ QString certstore = QString("%1%2").arg(QCoreApplication::applicationDirPath()).arg(QCA_SYSTEMSTORE_PATH); ++ return CertificateCollection::fromFlatTextFile(certstore, 0, provider); ++#else + return CertificateCollection::fromFlatTextFile(QCA_SYSTEMSTORE_PATH, 0, provider); ++#endif + } + + } diff --git a/mingw-w64-qca-qt5-git/qca-mingw-pkg-config.patch b/mingw-w64-qca-qt5-git/qca-mingw-pkg-config.patch new file mode 100644 index 0000000000..a6634b22d8 --- /dev/null +++ b/mingw-w64-qca-qt5-git/qca-mingw-pkg-config.patch @@ -0,0 +1,20 @@ +--- qca/CMakeLists.txt.orig 2015-07-16 11:01:38.665447700 +0300 ++++ qca/CMakeLists.txt 2015-07-16 11:19:17.252578400 +0300 +@@ -222,7 +222,7 @@ + endif() + endforeach() + +-if(NOT WIN32) ++if(NOT MSVC) + if(OSX_FRAMEWORK) + set(PKGCONFIG_CFLAGS "-F\${libdir} -I\${libdir}/${QCA_LIB_NAME}.framework/Headers") + set(PKGCONFIG_LIBS "-F\${libdir} -framework ${QCA_LIB_NAME}") +@@ -236,7 +236,7 @@ + if(NOT DEVELOPER_MODE) + install(FILES "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pkgconfig/${QCA_PC_NAME}" DESTINATION ${PKGCONFIG_INSTALL_PREFIX}) + endif() +-endif(NOT WIN32) ++endif(NOT MSVC) + + # strip CMAKE_INSTALL_PREFIX in all paths + if(USE_RELATIVE_PATHS) diff --git a/mingw-w64-qca-qt5-git/qca-qt5-git-i686.install b/mingw-w64-qca-qt5-git/qca-qt5-git-i686.install new file mode 100644 index 0000000000..ff86c83741 --- /dev/null +++ b/mingw-w64-qca-qt5-git/qca-qt5-git-i686.install @@ -0,0 +1,12 @@ +post_install() { + cd mingw32 + local _prefix=$(pwd -W) + cd - + for f in mingw32/lib/cmake/Qca/*.cmake; do + sed -s "s|/mingw32|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-qca-qt5-git/qca-qt5-git-x86_64.install b/mingw-w64-qca-qt5-git/qca-qt5-git-x86_64.install new file mode 100644 index 0000000000..8ffc42c5bc --- /dev/null +++ b/mingw-w64-qca-qt5-git/qca-qt5-git-x86_64.install @@ -0,0 +1,12 @@ +post_install() { + cd mingw64 + local _prefix=$(pwd -W) + cd - + for f in mingw64/lib/cmake/Qca/*.cmake; do + sed -s "s|/mingw64|${_prefix}|g" -i ${f} + done +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-qca-qt5-git/qt5-custom-dirs.patch b/mingw-w64-qca-qt5-git/qt5-custom-dirs.patch new file mode 100644 index 0000000000..57d92e121b --- /dev/null +++ b/mingw-w64-qca-qt5-git/qt5-custom-dirs.patch @@ -0,0 +1,42 @@ +--- qca/CMakeLists.txt.orig 2014-12-13 15:22:53.153623400 +0300 ++++ qca/CMakeLists.txt 2014-12-13 15:24:46.642114600 +0300 +@@ -183,7 +183,7 @@ + set(QCA_PLUGINS_INSTALL_DIR "${LIB_INSTALL_DIR}/${QCA_LIB_NAME}" CACHE PATH "Directory where qca plugins will install") + set(QCA_BINARY_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Directory where qca plugins will install") + set(QCA_LIBRARY_INSTALL_DIR "${LIB_INSTALL_DIR}" CACHE PATH "Directory where qca library will install") +- set(QCA_FEATURE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/mkspecs/features" CACHE PATH "Directory where qca feature file will install") ++ set(QCA_FEATURE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/qt5/mkspecs/features" CACHE PATH "Directory where qca feature file will install") + if(NOT QCA_SUFFIX) + set(QCA_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Directory where qca public headers will install") + set(QCA_PRIVATE_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Directory where qca headers will install") +--- qca/cmake/modules/QcaMacro.cmake.orig 2014-12-13 15:22:53.153623400 +0300 ++++ qca/cmake/modules/QcaMacro.cmake 2014-12-13 15:24:46.642114600 +0300 +@@ -28,6 +28,7 @@ + MACRO(SETUP_QT4_DIRS) + _qt4_query_qmake(QT_INSTALL_PREFIX QT_PREFIX_DIR) + _qt4_query_qmake(QT_INSTALL_DATA QT_DATA_DIR) ++ SET( QT_MKSPECS_DIR "${QT_INSTALL_PREFIX}/share/qt5/mkspecs" ) + ENDMACRO(SETUP_QT4_DIRS) + ENDIF() + +--- qca/cmake/modules/QcaMacro.cmake.orig 2015-07-16 12:12:02.018070200 +0300 ++++ qca/cmake/modules/QcaMacro.cmake 2015-07-16 12:12:16.385633300 +0300 +@@ -20,6 +20,18 @@ + EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_DOCS" OUTPUT_VARIABLE QT_DOC_DIR ) + EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_DATA" OUTPUT_VARIABLE QT_DATA_DIR ) + EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_ARCHDATA" OUTPUT_VARIABLE QT_ARCHDATA_DIR ) ++ ++ if(MINGW) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_LIBRARY_DIR}" OUTPUT_VARIABLE QT_LIBRARY_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_PREFIX_DIR}" OUTPUT_VARIABLE QT_PREFIX_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_PLUGINS_DIR}" OUTPUT_VARIABLE QT_PLUGINS_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_BINARY_DIR}" OUTPUT_VARIABLE QT_BINARY_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_HEADERS_DIR}" OUTPUT_VARIABLE QT_HEADERS_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_DOC_DIR}" OUTPUT_VARIABLE QT_DOC_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_DATA_DIR}" OUTPUT_VARIABLE QT_DATA_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_ARCHDATA_DIR}" OUTPUT_VARIABLE QT_ARCHDATA_DIR ) ++ endif() ++ + SET( QT_MKSPECS_DIR "${QT_ARCHDATA_DIR}/mkspecs" ) + ENDMACRO(SETUP_QT5_DIRS) + ELSE (Qt5Core_FOUND) diff --git a/mingw-w64-qwt-qt5/PKGBUILD b/mingw-w64-qwt-qt5/PKGBUILD index 1592f17ded..2853f7f5d0 100644 --- a/mingw-w64-qwt-qt5/PKGBUILD +++ b/mingw-w64-qwt-qt5/PKGBUILD @@ -5,7 +5,7 @@ _realname=qwt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt5" pkgver=6.1.2 -pkgrel=1 +pkgrel=2 pkgdesc="Qt Widgets for Technical Applications (mingw-w64)" arch=('any') license=("custom:$pkgname") @@ -13,16 +13,13 @@ url="http://qwt.sourceforge.net/" depends=("${MINGW_PACKAGE_PREFIX}-qt5") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=(!strip staticlibs !buildflags) -source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.bz2" \ +source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2" "qwtconfig-msys2.pri") md5sums=('9c88db1774fa7e3045af063bbde44d7d' '2bb4059cc41cba7e9e18d921e3fe8a0d') prepare() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) cd ${srcdir}/${_realname}-${pkgver} # copy our config file to the right place @@ -45,9 +42,7 @@ package() { mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null + local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/share/qt5/mkspecs/features/qwtconfig.pri diff --git a/mingw-w64-qxmpp/PKGBUILD b/mingw-w64-qxmpp/PKGBUILD index 94f08c236f..98ca8ea2f8 100644 --- a/mingw-w64-qxmpp/PKGBUILD +++ b/mingw-w64-qxmpp/PKGBUILD @@ -4,7 +4,7 @@ _realname=qxmpp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.8.3 -pkgrel=1 +pkgrel=2 pkgdesc="Cross-platform C++ XMPP client and server library" arch=('any') license=("LGPL") @@ -15,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt5" "${MINGW_PACKAGE_PREFIX}-libvpx") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=(!strip staticlibs) -source=("${_realname}-$pkgver".tar.gz::"https://github.com/qxmpp-project/${_realname}/archive/v${pkgver}.tar.gz") +source=("${_realname}-${pkgver}".tar.gz::"https://github.com/qxmpp-project/${_realname}/archive/v${pkgver}.tar.gz") md5sums=('e945edf90eafbc8fcaaa9dde1a7b357a') build() { diff --git a/mingw-w64-snoregrowl/PKGBUILD b/mingw-w64-snoregrowl/PKGBUILD index d0ea90ddff..afbdb13d34 100644 --- a/mingw-w64-snoregrowl/PKGBUILD +++ b/mingw-w64-snoregrowl/PKGBUILD @@ -3,39 +3,32 @@ _realname=SnoreGrowl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.4.0 -pkgrel=1 -pkgdesc="A C and C++ library providing an api to use Growl notifications, based on the GNTP protocol. (mingw-w64)" +pkgrel=2 +pkgdesc="A C and C++ library providing an api to use Growl notifications, based on the GNTP protocol (mingw-w64)" arch=('any') license=("BSD") url="https://github.com/Snorenotify/Snorenotify" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake") + "${MINGW_PACKAGE_PREFIX}-cmake") options=(!strip staticlibs !buildflags) source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/Snorenotify/${_realname}/archive/v${pkgver}.tar.gz") +md5sums=('15b76b9e7626706b69574b6ec7928d6c') build() { - mkdir $srcdir/build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ - ${srcdir}/${_realname}-${pkgver} + ../${_realname}-${pkgver} make # VERBOSE=1 } package() { - cd $srcdir/build-${MINGW_CHOST} - make install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}/*.cmake; do - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} - done + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install } -md5sums=('15b76b9e7626706b69574b6ec7928d6c') diff --git a/mingw-w64-snorenotify/PKGBUILD b/mingw-w64-snorenotify/PKGBUILD index 75622f360a..2b7f19bb07 100644 --- a/mingw-w64-snorenotify/PKGBUILD +++ b/mingw-w64-snorenotify/PKGBUILD @@ -2,9 +2,9 @@ _realname=Snorenotify pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.5.2 +pkgver=0.5.3 pkgrel=1 -pkgdesc="Snorenotify is a multi platform Qt notification framework. Using a plugin system it is possible to create notifications with many different notification systems on Windows, Mac OS and Unix. (mingw-w64)" +pkgdesc="Snorenotify is a multi platform Qt notification framework. Using a plugin system it is possible to create notifications with many different notification systems on Windows, Mac OS and Unix (mingw-w64)" arch=('any') license=("LGPL3") url="https://github.com/Snorenotify/Snorenotify" @@ -14,32 +14,26 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") options=(!strip staticlibs !buildflags) -source=("${_realname}-$pkgver".tar.gz::"https://github.com/${_realname}/${_realname}/archive/v${pkgver}.tar.gz") -md5sums=('508dafd77c2cb1b57239c1dc6ad73727') +source=("${_realname}-${pkgver}".tar.gz::"https://github.com/${_realname}/${_realname}/archive/v${pkgver}.tar.gz") +md5sums=('094fe35757a4cc3d55fdfad32275e83e') build() { - mkdir $srcdir/build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DWITH_QT4=OFF \ - ${srcdir}/${_realname}-${pkgver} + ../${_realname}-${pkgver} make # VERBOSE=1 } package() { - cd $srcdir/build-${MINGW_CHOST} - make install + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/libsnoreQt5/*.cmake; do - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} - done } From 68077bab772e5adb631a01f96fb4cdd874b1a7cf Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 16 Jul 2015 15:48:50 +0300 Subject: [PATCH 1291/2060] goocanvas: Rebuild with gcc-5.1.0 --- mingw-w64-goocanvas/PKGBUILD | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/mingw-w64-goocanvas/PKGBUILD b/mingw-w64-goocanvas/PKGBUILD index bb01fe3892..929fff1c41 100644 --- a/mingw-w64-goocanvas/PKGBUILD +++ b/mingw-w64-goocanvas/PKGBUILD @@ -3,24 +3,25 @@ _realname=goocanvas pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.2 -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="Canvas widget for GTK+ that uses the Cairo 2D library (mingw-w64)" license=("LGPL 2") url="http://www.gnome.org" depends=("${MINGW_PACKAGE_PREFIX}-gtk3") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python3" - "make" - "libtool" - "automake-wrapper" - "autoconf" - "gettext" - "libintl" - "patch") + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "make" + "libtool" + "automake-wrapper" + "autoconf" + "gettext" + "libintl" + "patch") options=('strip' '!debug' 'staticlibs') -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:3}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:3}/${_realname}-${pkgver}.tar.xz 001-convert-python-path-to-unix.patch 002-fix-introspection.patch) sha256sums=('f20e5fbef8d1a2633033edbd886dd13146a1b948d1813a9c353a80a29295d1d0' @@ -48,7 +49,7 @@ build() { --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ --enable-introspection=yes \ - PYTHON=${_python} + PYTHON=${MINGW_PREFIX}/bin/${_python} make done } @@ -56,6 +57,6 @@ build() { package() { for _python in python{2,3}; do cd ${srcdir}/${MINGW_CHOST}-${_realname}-${_python} - make DESTDIR=$pkgdir install + make DESTDIR=${pkgdir} install done } From a6a16a321036098d81682318a94670e5955d5215 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 17 Jul 2015 00:41:14 +0300 Subject: [PATCH 1292/2060] GCC: Update to 5.2.0 --- mingw-w64-gcc/400-detect-sjlj-cleanup.patch | 1501 ------------------- mingw-w64-gcc/410-fix-lto.patch | 10 - mingw-w64-gcc/PKGBUILD | 21 +- mingw-w64-gcc/pr65882.patch | 66 - 4 files changed, 6 insertions(+), 1592 deletions(-) delete mode 100644 mingw-w64-gcc/400-detect-sjlj-cleanup.patch delete mode 100644 mingw-w64-gcc/410-fix-lto.patch delete mode 100644 mingw-w64-gcc/pr65882.patch diff --git a/mingw-w64-gcc/400-detect-sjlj-cleanup.patch b/mingw-w64-gcc/400-detect-sjlj-cleanup.patch deleted file mode 100644 index 5f0d8818d8..0000000000 --- a/mingw-w64-gcc/400-detect-sjlj-cleanup.patch +++ /dev/null @@ -1,1501 +0,0 @@ -From 177cc56cf225e09e18161e72d2f369be27b22119 Mon Sep 17 00:00:00 2001 -From: ebotcazou -Date: Wed, 13 May 2015 21:15:31 +0000 -Subject: [PATCH] config/ * sjlj.m4: New file. libgcc/ * - configure.ac: Include config/sjlj.m4. Remove manual SJLJ check, add - GCC_CHECK_SJLJ_EXCEPTIONS and adjust. * config.in: Regenerate. * - configure: Likewise. * config.host: Replace enable_sjlj_exceptions by - ac_cv_sjlj_exceptions. libjava/ * configure.ac: Include - config/sjlj.m4. Remove manual SJLJ check, add - GCC_CHECK_SJLJ_EXCEPTIONS and adjust. * include/config.h.in: Regenerate. - * configure: Likewise. * exception.cc: Replace SJLJ_EXCEPTIONS by - __USING_SJLJ_EXCEPTIONS__. * stacktrace.cc: Likewise. * - include/default-signal.h: Likewise. * sysdep/i386/backtrace.h: Likewise. - libobjc/ * configure.ac: Remove manual SJLJ check. * config.h.in: - Regenerate. * configure: Likewise. * exception.c: Replace SJLJ_EXCEPTIONS - by __USING_SJLJ_EXCEPTIONS__. libstdc++-v3/ * acinclude.m4 - (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Delete. * configure.ac: Remove - GLIBCXX_ENABLE_SJLJ_EXCEPTIONS. * config.h.in: Regenerate. * - configure: Likewise. * libsupc++/eh_personality.cc: Replace - _GLIBCXX_SJLJ_EXCEPTIONS by __USING_SJLJ_EXCEPTIONS__. * - libsupc++/eh_throw.cc: Likewise. * libsupc++/eh_ptr.cc: Likewise. - * doc/html/manual/appendix_porting.html: Remove - GLIBCXX_ENABLE_SJLJ_EXCEPTIONS * doc/xml/manual/build_hacking.xml: - Likewise. * doc/html/manual/configure.html: Remove - --enable-sjlj-exceptions. * doc/xml/manual/configure.xml: Likewise. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223181 138bc75d-0d04-0410-961f-82ee72b054a4 ---- - config/ChangeLog | 4 + - config/sjlj.m4 | 12 +++ - libgcc/ChangeLog | 8 ++ - libgcc/config.host | 20 ++-- - libgcc/config.in | 3 - - libgcc/configure | 84 +++++----------- - libgcc/configure.ac | 62 ++---------- - libgo/config.h.in | 3 --- - libgo/configure | 69 ++--------------------------------------------- - libgo/configure.ac | 50 ---------------------------------- - libgo/runtime/go-unwind.c | 2 +- - libjava/ChangeLog | 11 +++ - libjava/configure.ac | 59 ++--------- - libjava/exception.cc | 8 +- - libjava/include/config.h.in | 3 - - libjava/include/default-signal.h | 6 +- - libjava/stacktrace.cc | 6 +- - libjava/sysdep/i386/backtrace.h | 4 +- - libobjc/ChangeLog | 7 ++ - libobjc/config.h.in | 3 - - libobjc/configure | 72 +------------- - libobjc/configure.ac | 54 ----------- - libobjc/exception.c | 10 +- - libstdc++-v3/ChangeLog | 16 +++ - libstdc++-v3/acinclude.m4 | 73 -------------- - libstdc++-v3/config.h.in | 3 - - libstdc++-v3/configure | 108 ++------------------- - libstdc++-v3/configure.ac | 1 - - libstdc++-v3/doc/html/manual/appendix_porting.html | 1 - - libstdc++-v3/doc/html/manual/configure.html | 5 - - libstdc++-v3/doc/xml/manual/build_hacking.xml | 1 - - libstdc++-v3/doc/xml/manual/configure.xml | 9 -- - libstdc++-v3/libsupc++/eh_personality.cc | 12 +-- - libstdc++-v3/libsupc++/eh_ptr.cc | 2 +- - libstdc++-v3/libsupc++/eh_throw.cc | 4 +- - 35 files changed, 143 insertions(+), 652 deletions(-) - create mode 100644 config/sjlj.m4 - -diff --git a/config/sjlj.m4 b/config/sjlj.m4 -new file mode 100644 -index 0000000..71c8b31 ---- /dev/null -+++ b/config/sjlj.m4 -@@ -0,0 +1,12 @@ -+dnl Check if the compiler is configured for setjmp/longjmp exceptions. -+AC_DEFUN([GCC_CHECK_SJLJ_EXCEPTIONS], -+ [AC_CACHE_CHECK([whether the compiler is configured for setjmp/longjmp exceptions], -+ ac_cv_sjlj_exceptions, -+ [AC_COMPILE_IFELSE( -+ [AC_LANG_PROGRAM( -+ [[#ifdef __USING_SJLJ_EXCEPTIONS__ -+ this will fail -+ #endif]], -+ [[int i;]])], -+ [ac_cv_sjlj_exceptions=no], -+ [ac_cv_sjlj_exceptions=yes])])]) -diff --git a/libgcc/config.host b/libgcc/config.host -index d558c38..925db29 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -499,7 +499,7 @@ hppa*64*-*-linux*) - hppa*-*-linux*) - tmake_file="$tmake_file pa/t-linux t-slibgcc-libgcc" - # Set the libgcc version number -- if test x$enable_sjlj_exceptions = xyes; then -+ if test x$ac_cv_sjlj_exceptions = xyes; then - tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" - else - tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" -@@ -510,7 +510,7 @@ hppa*-*-linux*) - hppa[12]*-*-hpux10*) - tmake_file="$tmake_file pa/t-hpux pa/t-hpux10 t-libgcc-pic t-slibgcc" - # Set the libgcc version number -- if test x$enable_sjlj_exceptions = xyes; then -+ if test x$ac_cv_sjlj_exceptions = xyes; then - tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" - else - tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" -@@ -521,7 +521,7 @@ hppa[12]*-*-hpux10*) - hppa*64*-*-hpux11*) - tmake_file="$tmake_file pa/t-hpux pa/t-pa64 pa/t-stublib t-libgcc-pic t-slibgcc" - # Set the libgcc version number -- if test x$enable_sjlj_exceptions = xyes; then -+ if test x$ac_cv_sjlj_exceptions = xyes; then - tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" - else - tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" -@@ -534,7 +534,7 @@ hppa*64*-*-hpux11*) - hppa[12]*-*-hpux11*) - tmake_file="$tmake_file pa/t-hpux pa/t-stublib t-libgcc-pic t-slibgcc" - # Set the libgcc version number -- if test x$enable_sjlj_exceptions = xyes; then -+ if test x$ac_cv_sjlj_exceptions = xyes; then - tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" - else - tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" -@@ -635,7 +635,7 @@ i[34567]86-*-cygwin*) - extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o" - fi - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h -- if test x$enable_sjlj_exceptions = xyes; then -+ if test x$ac_cv_sjlj_exceptions = xyes; then - tmake_eh_file="i386/t-sjlj-eh" - else - tmake_eh_file="i386/t-dw2-eh" -@@ -654,7 +654,7 @@ x86_64-*-cygwin*) - extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o" - fi - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h -- if test x$enable_sjlj_exceptions = xyes; then -+ if test x$ac_cv_sjlj_exceptions = xyes; then - tmake_eh_file="i386/t-sjlj-eh" - else - tmake_eh_file="i386/t-seh-eh" -@@ -682,7 +682,7 @@ i[34567]86-*-mingw*) - ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h -- if test x$enable_sjlj_exceptions = xyes; then -+ if test x$ac_cv_sjlj_exceptions = xyes; then - tmake_eh_file="i386/t-sjlj-eh" - else - tmake_eh_file="i386/t-dw2-eh" -@@ -706,7 +706,7 @@ x86_64-*-mingw*) - ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h -- if test x$enable_sjlj_exceptions = xyes; then -+ if test x$ac_cv_sjlj_exceptions = xyes; then - tmake_eh_file="i386/t-sjlj-eh" - else - tmake_eh_file="i386/t-seh-eh" -@@ -799,9 +799,9 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux - # with ELF format using glibc 2 - # aka the GNU/Linux C library 6. - tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux" -- # If not configured with --enable-sjlj-exceptions, bump the -+ # If not configured with setjmp/longjmp exceptions, bump the - # libgcc version number. -- if test x$enable_sjlj_exceptions != xyes; then -+ if test x$ac_cv_sjlj_exceptions != xyes; then - tmake_file="$tmake_file m68k/t-slibgcc-elf-ver" - fi - md_unwind_header=m68k/linux-unwind.h -diff --git a/libgcc/config.in b/libgcc/config.in -index 57fdec1..59a7961 100644 ---- a/libgcc/config.in -+++ b/libgcc/config.in -@@ -39,9 +39,6 @@ - /* Define to 1 if you have the header file. */ - #undef HAVE_UNISTD_H - --/* Define if the C compiler is configured for setjmp/longjmp exceptions. */ --#undef LIBGCC_SJLJ_EXCEPTIONS -- - /* Define to the address where bug reports for this package should be sent. */ - #undef PACKAGE_BUGREPORT - -diff --git a/libgcc/configure b/libgcc/configure -index e911a9d..ce66d1d 100644 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -670,7 +670,6 @@ enable_maintainer_mode - with_build_libsubdir - enable_decimal_float - with_system_libunwind --enable_sjlj_exceptions - enable_explicit_exception_frame_registration - with_glibc_version - enable_tls -@@ -1308,8 +1307,6 @@ Optional Features: - enable decimal float extension to C. Selecting 'bid' - or 'dpd' choses which decimal floating point format - to use -- --enable-sjlj-exceptions -- force use of builtin_setjmp for exceptions - --enable-explicit-exception-frame-registration - register exception tables explicitly at module - start, for use e.g. for compatibility with -@@ -4539,80 +4536,43 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h - fi - - --# The sjlj test is almost duplicated here and in libgo/configure.ac (for C), --# libstdc++-v3/acinclude.m4 and libjava/configure.ac (for C++), and --# libobjc/configure.ac (for Objective-C). --# FIXME: This should be centralized in config/sjlj.m4. --# Check whether --enable-sjlj-exceptions was given. --if test "${enable_sjlj_exceptions+set}" = set; then : -- enableval=$enable_sjlj_exceptions; case "$enableval" in -- yes|no|auto) ;; -- *) as_fn_error "unknown argument to --enable-sjlj-exceptions" "$LINENO" 5 ;; -- esac --else -- enable_sjlj_exceptions=auto --fi -- -- --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use setjmp/longjmp exceptions" >&5 --$as_echo_n "checking whether to use setjmp/longjmp exceptions... " >&6; } --if test "${libgcc_cv_lib_sjlj_exceptions+set}" = set; then : -+# Check if the compiler is configured for setjmp/longjmp exceptions. -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is configured for setjmp/longjmp exceptions" >&5 -+$as_echo_n "checking whether the compiler is configured for setjmp/longjmp exceptions... " >&6; } -+if test "${ac_cv_sjlj_exceptions+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ -- --void bar (); --void clean (int *); --void foo () -+#ifdef __USING_SJLJ_EXCEPTIONS__ -+ this will fail -+ #endif -+int -+main () - { -- int i __attribute__ ((cleanup (clean))); -- bar(); -+int i; -+ ; -+ return 0; - } -- - _ACEOF --CFLAGS_hold=$CFLAGS --CFLAGS="--save-temps -fexceptions" --libgcc_cv_lib_sjlj_exceptions=unknown --if ac_fn_c_try_compile; then : -- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then -- libgcc_cv_lib_sjlj_exceptions=yes -- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1; then -- libgcc_cv_lib_sjlj_exceptions=no -- fi --fi --CFLAGS=$CFLAGS_hold --rm -f conftest* -- -+if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_sjlj_exceptions=no -+else -+ ac_cv_sjlj_exceptions=yes - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgcc_cv_lib_sjlj_exceptions" >&5 --$as_echo "$libgcc_cv_lib_sjlj_exceptions" >&6; } -- --if test "$enable_sjlj_exceptions" = "auto"; then -- enable_sjlj_exceptions=$libgcc_cv_lib_sjlj_exceptions -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi -- --case $enable_sjlj_exceptions in --yes) -- --$as_echo "#define LIBGCC_SJLJ_EXCEPTIONS 1" >>confdefs.h -- -- ;; --no) -- ;; --*) -- as_fn_error "unable to detect exception model" "$LINENO" 5 -- ;; --esac -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sjlj_exceptions" >&5 -+$as_echo "$ac_cv_sjlj_exceptions" >&6; } - - # Check whether --enable-explicit-exception-frame-registration was given. - if test "${enable_explicit_exception_frame_registration+set}" = set; then : - enableval=$enable_explicit_exception_frame_registration; - force_explicit_eh_registry= - if test "$enable_explicit_exception_frame_registration" = yes; then -- if test "$enable_sjlj_exceptions" = yes; then -- as_fn_error "Can't enable both of --enable-sjlj-exceptions -- and --enable-explicit-exception-frame-registration" "$LINENO" 5 -+ if test $ac_cv_sjlj_exceptions = yes; then -+ as_fn_error "Can't --enable-explicit-exception-frame-registration -+ with setjmp/longjmp exceptions" "$LINENO" 5 - fi - force_explicit_eh_registry=-DUSE_EH_FRAME_REGISTRY_ALWAYS - fi -diff --git a/libgcc/configure.ac b/libgcc/configure.ac -index 48fd5b9..dfabd80 100644 ---- a/libgcc/configure.ac -+++ b/libgcc/configure.ac -@@ -10,6 +10,7 @@ sinclude(../config/picflag.m4) - sinclude(../config/dfp.m4) - sinclude(../config/unwind_ipinfo.m4) - sinclude(../config/gthr.m4) -+sinclude(../config/sjlj.m4) - - AC_PREREQ(2.64) - AC_INIT([GNU C Runtime Library], 1.0,,[libgcc]) -@@ -230,59 +231,8 @@ AC_SUBST(fixed_point) - # config.gcc also contains tests of with_system_libunwind. - GCC_CHECK_UNWIND_GETIPINFO - --# The sjlj test is almost duplicated here and in libgo/configure.ac (for C), --# libstdc++-v3/acinclude.m4 and libjava/configure.ac (for C++), and --# libobjc/configure.ac (for Objective-C). --# FIXME: This should be centralized in config/sjlj.m4. --AC_ARG_ENABLE(sjlj-exceptions, -- AC_HELP_STRING([--enable-sjlj-exceptions], -- [force use of builtin_setjmp for exceptions]), -- [case "$enableval" in -- yes|no|auto) ;; -- *) AC_MSG_ERROR([unknown argument to --enable-sjlj-exceptions]) ;; -- esac], -- [enable_sjlj_exceptions=auto]) -- --AC_CACHE_CHECK([whether to use setjmp/longjmp exceptions], --[libgcc_cv_lib_sjlj_exceptions], --[AC_LANG_CONFTEST( -- [AC_LANG_SOURCE([ --void bar (); --void clean (int *); --void foo () --{ -- int i __attribute__ ((cleanup (clean))); -- bar(); --} --])]) --CFLAGS_hold=$CFLAGS --CFLAGS="--save-temps -fexceptions" --libgcc_cv_lib_sjlj_exceptions=unknown --AS_IF([ac_fn_c_try_compile], -- [if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then -- libgcc_cv_lib_sjlj_exceptions=yes -- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1; then -- libgcc_cv_lib_sjlj_exceptions=no -- fi]) --CFLAGS=$CFLAGS_hold --rm -f conftest* --]) -- --if test "$enable_sjlj_exceptions" = "auto"; then -- enable_sjlj_exceptions=$libgcc_cv_lib_sjlj_exceptions --fi -- --case $enable_sjlj_exceptions in --yes) -- AC_DEFINE(LIBGCC_SJLJ_EXCEPTIONS, 1, -- [Define if the C compiler is configured for setjmp/longjmp exceptions.]) -- ;; --no) -- ;; --*) -- AC_MSG_ERROR([unable to detect exception model]) -- ;; --esac -+# Check if the compiler is configured for setjmp/longjmp exceptions. -+GCC_CHECK_SJLJ_EXCEPTIONS - - AC_ARG_ENABLE([explicit-exception-frame-registration], - [AC_HELP_STRING([--enable-explicit-exception-frame-registration], -@@ -291,9 +241,9 @@ AC_ARG_ENABLE([explicit-exception-frame-registration], - [ - force_explicit_eh_registry= - if test "$enable_explicit_exception_frame_registration" = yes; then -- if test "$enable_sjlj_exceptions" = yes; then -- AC_MSG_ERROR([Can't enable both of --enable-sjlj-exceptions -- and --enable-explicit-exception-frame-registration]) -+ if test $ac_cv_sjlj_exceptions = yes; then -+ AC_MSG_ERROR([Can't --enable-explicit-exception-frame-registration -+ with setjmp/longjmp exceptions]) - fi - force_explicit_eh_registry=-DUSE_EH_FRAME_REGISTRY_ALWAYS - fi -diff --git a/libgo/config.h.in b/libgo/config.h.in -index 629c603..298b8d6 100644 ---- a/libgo/config.h.in -+++ b/libgo/config.h.in -@@ -337,9 +337,6 @@ - /* Define to 1 if you have the `wait4' function. */ - #undef HAVE_WAIT4 - --/* Define if the C++ compiler is configured for setjmp/longjmp exceptions. */ --#undef LIBGO_SJLJ_EXCEPTIONS -- - /* Define if the linker support split stack adjustments */ - #undef LINKER_SUPPORTS_SPLIT_STACK - -diff --git a/libgo/configure b/libgo/configure -index 377179d..03d4e15 100755 ---- a/libgo/configure -+++ b/libgo/configure -@@ -828,7 +828,6 @@ enable_version_specific_runtime_libs - with_libffi - with_libatomic - with_system_libunwind --enable_sjlj_exceptions - ' - ac_precious_vars='build_alias - host_alias -@@ -1469,8 +1468,6 @@ Optional Features: - --enable-version-specific-runtime-libs - Specify that runtime libraries should be installed - in a compiler-specific directory -- --enable-sjlj-exceptions -- force use of builtin_setjmp for exceptions - - Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -@@ -11121,7 +11118,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11124 "configure" -+#line 11121 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11227,7 +11224,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11230 "configure" -+#line 11227 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -14667,68 +14664,6 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h - fi - - --# Check whether --enable-sjlj-exceptions was given. --if test "${enable_sjlj_exceptions+set}" = set; then : -- enableval=$enable_sjlj_exceptions; case "$enableval" in -- yes|no|auto) ;; -- *) as_fn_error "unknown argument to --enable-sjlj-exceptions" "$LINENO" 5 ;; -- esac --else -- enable_sjlj_exceptions=auto --fi -- -- --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use setjmp/longjmp exceptions" >&5 --$as_echo_n "checking whether to use setjmp/longjmp exceptions... " >&6; } --if test "${libgo_cv_lib_sjlj_exceptions+set}" = set; then : -- $as_echo_n "(cached) " >&6 --else -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ -- --void bar (); --void clean (int *); --void foo () --{ -- int i __attribute__ ((cleanup (clean))); -- bar(); --} -- --_ACEOF --CFLAGS_hold=$CFLAGS --CFLAGS="--save-temps -fexceptions" --libgo_cv_lib_sjlj_exceptions=unknown --if ac_fn_c_try_compile; then : -- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then -- libgo_cv_lib_sjlj_exceptions=yes -- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1; then -- libgo_cv_lib_sjlj_exceptions=no -- fi --fi --CFLAGS=$CFLAGS_hold --rm -f conftest* -- --fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgo_cv_lib_sjlj_exceptions" >&5 --$as_echo "$libgo_cv_lib_sjlj_exceptions" >&6; } -- --if test "$enable_sjlj_exceptions" = "auto"; then -- enable_sjlj_exceptions=$libgo_cv_lib_sjlj_exceptions --fi -- --case $enable_sjlj_exceptions in --yes) -- --$as_echo "#define LIBGO_SJLJ_EXCEPTIONS 1" >>confdefs.h -- -- ;; --no) -- ;; --*) -- as_fn_error "unable to detect exception model" "$LINENO" 5 -- ;; --esac -- - for ac_header in sched.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/reboot.h netinet/icmp6.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h - do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -diff --git a/libgo/configure.ac b/libgo/configure.ac -index 0baff41..7c403a5 100644 ---- a/libgo/configure.ac -+++ b/libgo/configure.ac -@@ -473,56 +473,6 @@ AC_C_BIGENDIAN - - GCC_CHECK_UNWIND_GETIPINFO - --AC_ARG_ENABLE(sjlj-exceptions, -- AC_HELP_STRING([--enable-sjlj-exceptions], -- [force use of builtin_setjmp for exceptions]), -- [case "$enableval" in -- yes|no|auto) ;; -- *) AC_MSG_ERROR([unknown argument to --enable-sjlj-exceptions]) ;; -- esac], -- [enable_sjlj_exceptions=auto]) -- --AC_CACHE_CHECK([whether to use setjmp/longjmp exceptions], --[libgo_cv_lib_sjlj_exceptions], --[AC_LANG_CONFTEST( -- [AC_LANG_SOURCE([ --void bar (); --void clean (int *); --void foo () --{ -- int i __attribute__ ((cleanup (clean))); -- bar(); --} --])]) --CFLAGS_hold=$CFLAGS --CFLAGS="--save-temps -fexceptions" --libgo_cv_lib_sjlj_exceptions=unknown --AS_IF([ac_fn_c_try_compile], -- [if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then -- libgo_cv_lib_sjlj_exceptions=yes -- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1; then -- libgo_cv_lib_sjlj_exceptions=no -- fi]) --CFLAGS=$CFLAGS_hold --rm -f conftest* --]) -- --if test "$enable_sjlj_exceptions" = "auto"; then -- enable_sjlj_exceptions=$libgo_cv_lib_sjlj_exceptions --fi -- --case $enable_sjlj_exceptions in --yes) -- AC_DEFINE(LIBGO_SJLJ_EXCEPTIONS, 1, -- [Define if the C++ compiler is configured for setjmp/longjmp exceptions.]) -- ;; --no) -- ;; --*) -- AC_MSG_ERROR([unable to detect exception model]) -- ;; --esac -- - AC_CHECK_HEADERS(sched.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/reboot.h netinet/icmp6.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h) - - AC_CHECK_HEADERS([linux/filter.h linux/if_addr.h linux/if_ether.h linux/if_tun.h linux/netlink.h linux/rtnetlink.h], [], [], -diff --git a/libgo/runtime/go-unwind.c b/libgo/runtime/go-unwind.c -index 849256b..87d9eb3 100644 ---- a/libgo/runtime/go-unwind.c -+++ b/libgo/runtime/go-unwind.c -@@ -141,7 +141,7 @@ __go_check_defer (_Bool *frame) - - hdr = (struct _Unwind_Exception *) g->exception; - --#ifdef LIBGO_SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - _Unwind_SjLj_Resume_or_Rethrow (hdr); - #else - #if defined(_LIBUNWIND_STD_ABI) -diff --git a/libjava/configure.ac b/libjava/configure.ac -index 01c436d..00bbd36 100644 ---- a/libjava/configure.ac -+++ b/libjava/configure.ac -@@ -1,4 +1,7 @@ - dnl # Process this with autoconf to create configure -+ -+sinclude(../config/sjlj.m4) -+ - AC_PREREQ(2.64) - # Still use "libjava" here to placate dejagnu. - AC_INIT([libjava], [version-unused],, [libjava]) -@@ -699,58 +702,10 @@ INTERPRETER="$libgcj_interpreter" - AC_SUBST(INTERPRETER) - AM_CONDITIONAL(INTERPRETER, test "$libgcj_interpreter" = yes) - --AC_MSG_CHECKING([for exception model to use]) --AC_LANG_PUSH(C++) --AC_ARG_ENABLE(sjlj-exceptions, -- AS_HELP_STRING([--enable-sjlj-exceptions], -- [force use of builtin_setjmp for exceptions]), --[:], --[dnl Botheration. Now we've got to detect the exception model. --dnl Link tests against libgcc.a are problematic since -- at least --dnl as of this writing -- we've not been given proper -L bits for --dnl single-tree newlib and libgloss. --dnl --dnl This is what AC_TRY_COMPILE would do if it didn't delete the --dnl conftest files before we got a change to grep them first. --cat > conftest.$ac_ext << EOF --[#]line __oline__ "configure" --struct S { ~S(); }; --void bar(); --void foo() --{ -- S s; -- bar(); --} --EOF --old_CXXFLAGS="$CXXFLAGS" --CXXFLAGS=-S --if AC_TRY_EVAL(ac_compile); then -- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=yes -- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=no -- elif grep __cxa_end_cleanup conftest.s >/dev/null 2>&1 ; then -- # ARM EH ABI. -- enable_sjlj_exceptions=no -- fi --fi --CXXFLAGS="$old_CXXFLAGS" --rm -f conftest*]) --if test x$enable_sjlj_exceptions = xyes; then -- AC_DEFINE(SJLJ_EXCEPTIONS, 1, -- [Define if the compiler is configured for setjmp/longjmp exceptions.]) -- ac_exception_model_name=sjlj --elif test x$enable_sjlj_exceptions = xno; then -- ac_exception_model_name="call frame" --else -- AC_MSG_ERROR([unable to detect exception model]) --fi --AC_LANG_POP(C++) --AC_MSG_RESULT($ac_exception_model_name) -- --# If we are non using SJLJ exceptions, and this host does not have support -+# If we are not using SJLJ exceptions, and this host does not have support - # for unwinding from a signal handler, enable checked dereferences and divides. --if test $can_unwind_signal = no && test $enable_sjlj_exceptions = no; then -+GCC_CHECK_SJLJ_EXCEPTIONS -+if test $ac_cv_sjlj_exceptions = no && test $can_unwind_signal = no; then - CHECKREFSPEC=-fcheck-references - DIVIDESPEC=-fuse-divide-subroutine - EXCEPTIONSPEC= -@@ -1761,7 +1716,7 @@ case "${host}" in - esac - - # If we're using sjlj exceptions, forget what we just learned. --if test "$enable_sjlj_exceptions" = yes; then -+if test "$ac_cv_sjlj_exceptions" = yes; then - SIGNAL_HANDLER=include/default-signal.h - SIGNAL_HANDLER_AUX= - fi -diff --git a/libjava/exception.cc b/libjava/exception.cc -index cc5ab7c..61734a9 100644 ---- a/libjava/exception.cc -+++ b/libjava/exception.cc -@@ -112,7 +112,7 @@ _Jv_Throw (jthrowable value) - - /* We're happy with setjmp/longjmp exceptions or region-based - exception handlers: entry points are provided here for both. */ --#ifdef SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - _Unwind_SjLj_RaiseException (&xh->unwindHeader); - #else - _Unwind_RaiseException (&xh->unwindHeader); -@@ -194,7 +194,7 @@ get_ttype_entry (_Unwind_Context *context, lsda_header_info *info, long i) - - // Using a different personality function name causes link failures - // when trying to mix code using different exception handling models. --#ifdef SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - #define PERSONALITY_FUNCTION __gcj_personality_sj0 - #define __builtin_eh_return_data_regno(x) x - #elif defined (__SEH__) -@@ -331,7 +331,7 @@ PERSONALITY_FUNCTION (int version, - action_record = 0; - handler_switch_value = 0; - --#ifdef SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - // The given "IP" is an index into the call-site table, with two - // exceptions -- -1 means no-action, and 0 means terminate. But - // since we're using uleb128 values, we've not got random access -@@ -380,7 +380,7 @@ PERSONALITY_FUNCTION (int version, - goto found_something; - } - } --#endif // SJLJ_EXCEPTIONS -+#endif // __USING_SJLJ_EXCEPTIONS__ - - // If ip is not present in the table, C++ would call terminate. - // ??? It is perhaps better to tweek the LSDA so that no-action -diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in -index 8e718ac..ea5afe2 100644 ---- a/libjava/include/config.h.in -+++ b/libjava/include/config.h.in -@@ -423,9 +423,6 @@ - /* The size of `void *', as computed by sizeof. */ - #undef SIZEOF_VOID_P - --/* Define if the compiler is configured for setjmp/longjmp exceptions. */ --#undef SJLJ_EXCEPTIONS -- - /* Define if if the synchronization code should try to avoid pthread_self - calls by caching thread IDs in a hashtable. */ - #undef SLOW_PTHREAD_SELF -diff --git a/libjava/include/default-signal.h b/libjava/include/default-signal.h -index 6aea734..629acfb 100644 ---- a/libjava/include/default-signal.h -+++ b/libjava/include/default-signal.h -@@ -11,7 +11,7 @@ details. */ - #ifndef JAVA_SIGNAL_H - #define JAVA_SIGNAL_H 1 - --#ifdef SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - - #define HANDLE_SEGV 1 - #define HANDLE_FPE 1 -@@ -37,7 +37,7 @@ while (0) - - #define MAKE_THROW_FRAME(_exception) do {} while (0) - --#else /* SJLJ_EXCEPTIONS */ -+#else /* __USING_SJLJ_EXCEPTIONS__ */ - - #undef HANDLE_SEGV - #undef HANDLE_FPE -@@ -45,7 +45,7 @@ while (0) - #define INIT_SEGV do {} while (0) - #define INIT_FPE do {} while (0) - --#endif /* SJLJ_EXCEPTIONS */ -+#endif /* __USING_SJLJ_EXCEPTIONS__ */ - - #endif /* JAVA_SIGNAL_H */ - -diff --git a/libjava/stacktrace.cc b/libjava/stacktrace.cc -index d8d1f38..0fc91c4 100644 ---- a/libjava/stacktrace.cc -+++ b/libjava/stacktrace.cc -@@ -325,7 +325,7 @@ _Jv_StackTrace::GetStackTraceElements (_Jv_StackTrace *trace, - { - ArrayList *list = new ArrayList (); - --#if defined (SJLJ_EXCEPTIONS) && ! defined (WIN32) -+#if defined (__USING_SJLJ_EXCEPTIONS__) && ! defined (WIN32) - // We can't use the nCodeMap without unwinder support. Instead, - // fake the method name by giving the IP in hex - better than nothing. - jstring hex = JvNewStringUTF ("0x"); -@@ -344,7 +344,7 @@ _Jv_StackTrace::GetStackTraceElements (_Jv_StackTrace *trace, - list->add (element); - } - --#else /* SJLJ_EXCEPTIONS && !WIN32 */ -+#else /* __USING_SJLJ_EXCEPTIONS__ && !WIN32 */ - - //JvSynchronized (ncodeMap); - UpdateNCodeMap (); -@@ -412,7 +412,7 @@ _Jv_StackTrace::GetStackTraceElements (_Jv_StackTrace *trace, - } - - finder->close(); --#endif /* SJLJ_EXCEPTIONS && !WIN32 */ -+#endif /* __USING_SJLJ_EXCEPTIONS__ && !WIN32 */ - - JArray *array = JvNewObjectArray (list->size (), - &StackTraceElement::class$, NULL); -diff --git a/libjava/sysdep/i386/backtrace.h b/libjava/sysdep/i386/backtrace.h -index 1bad2e1..cfdf07b 100644 ---- a/libjava/sysdep/i386/backtrace.h -+++ b/libjava/sysdep/i386/backtrace.h -@@ -36,7 +36,7 @@ struct _Unwind_Context - _Jv_uintptr_t ret_addr; - }; - --#ifdef SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - - #undef _Unwind_GetIPInfo - #define _Unwind_GetIPInfo(ctx,ip_before_insn) \ -@@ -50,7 +50,7 @@ struct _Unwind_Context - #define _Unwind_Backtrace(trace_fn,state_ptr) \ - (fallback_backtrace (trace_fn, state_ptr)) - --#endif /* SJLJ_EXCEPTIONS */ -+#endif /* __USING_SJLJ_EXCEPTIONS__ */ - - /* Unwind through the call stack calling TRACE_FN with STATE for each stack - frame. Returns the reason why the unwinding was stopped. */ -diff --git a/libobjc/config.h.in b/libobjc/config.h.in -index 20d1fca..0f3dbf2 100644 ---- a/libobjc/config.h.in -+++ b/libobjc/config.h.in -@@ -67,8 +67,5 @@ - /* Define to the version of this package. */ - #undef PACKAGE_VERSION - --/* Define if the compiler is configured for setjmp/longjmp exceptions. */ --#undef SJLJ_EXCEPTIONS -- - /* Define to 1 if you have the ANSI C header files. */ - #undef STDC_HEADERS -diff --git a/libobjc/configure b/libobjc/configure -index 2f71735..55fcc33 100755 ---- a/libobjc/configure -+++ b/libobjc/configure -@@ -721,7 +721,6 @@ enable_fast_install - with_gnu_ld - enable_libtool_lock - enable_tls --enable_sjlj_exceptions - ' - ac_precious_vars='build_alias - host_alias -@@ -1355,8 +1354,6 @@ Optional Features: - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --enable-tls Use thread-local storage [default=yes] -- --enable-sjlj-exceptions -- force use of builtin_setjmp for exceptions - - Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -@@ -10601,7 +10598,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10604 "configure" -+#line 10601 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -10707,7 +10704,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10710 "configure" -+#line 10707 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11465,71 +11462,6 @@ $as_echo "#define HAVE_TLS 1" >>confdefs.h - - fi - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for exception model to use" >&5 --$as_echo_n "checking for exception model to use... " >&6; } --ac_ext=c --ac_cpp='$CPP $CPPFLAGS' --ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_c_compiler_gnu -- --# Check whether --enable-sjlj-exceptions was given. --if test "${enable_sjlj_exceptions+set}" = set; then : -- enableval=$enable_sjlj_exceptions; : --else -- cat > conftest.$ac_ext << EOF --#line 11481 "configure" --@interface Frob --@end --@implementation Frob --@end --int proc(); --int foo() --{ -- @try { -- return proc(); -- } -- @catch (Frob* ex) { -- return 0; -- } --} --EOF --old_CFLAGS="$CFLAGS" --CFLAGS="-x objective-c -fgnu-runtime -fobjc-exceptions -S" --if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 -- (eval $ac_compile) 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=yes -- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=no -- fi --fi --CFLAGS="$old_CFLAGS" --rm -f conftest* --fi -- --if test x$enable_sjlj_exceptions = xyes; then -- --$as_echo "#define SJLJ_EXCEPTIONS 1" >>confdefs.h -- -- ac_exception_model_name=sjlj --elif test x$enable_sjlj_exceptions = xno; then -- ac_exception_model_name="call frame" --else -- as_fn_error "unable to detect exception model" "$LINENO" 5 --fi --ac_ext=c --ac_cpp='$CPP $CPPFLAGS' --ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_c_compiler_gnu -- --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_exception_model_name" >&5 --$as_echo "$ac_exception_model_name" >&6; } -- - # ------ - # Output - # ------ -diff --git a/libobjc/configure.ac b/libobjc/configure.ac -index 2d88519..884194a 100644 ---- a/libobjc/configure.ac -+++ b/libobjc/configure.ac -@@ -212,60 +212,6 @@ AC_CHECK_HEADERS(sched.h) - # Check if we have thread-local storage - GCC_CHECK_TLS - --AC_MSG_CHECKING([for exception model to use]) --AC_LANG_PUSH(C) --AC_ARG_ENABLE(sjlj-exceptions, -- AS_HELP_STRING([--enable-sjlj-exceptions], -- [force use of builtin_setjmp for exceptions]), --[:], --[dnl Botheration. Now we've got to detect the exception model. --dnl Link tests against libgcc.a are problematic since -- at least --dnl as of this writing -- we've not been given proper -L bits for --dnl single-tree newlib and libgloss. --dnl --dnl This is what AC_TRY_COMPILE would do if it didn't delete the --dnl conftest files before we got a change to grep them first. --cat > conftest.$ac_ext << EOF --[#]line __oline__ "configure" --@interface Frob --@end --@implementation Frob --@end --int proc(); --int foo() --{ -- @try { -- return proc(); -- } -- @catch (Frob* ex) { -- return 0; -- } --} --EOF --old_CFLAGS="$CFLAGS" --dnl work around that we don't have Objective-C support in autoconf --CFLAGS="-x objective-c -fgnu-runtime -fobjc-exceptions -S" --if AC_TRY_EVAL(ac_compile); then -- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=yes -- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=no -- fi --fi --CFLAGS="$old_CFLAGS" --rm -f conftest*]) --if test x$enable_sjlj_exceptions = xyes; then -- AC_DEFINE(SJLJ_EXCEPTIONS, 1, -- [Define if the compiler is configured for setjmp/longjmp exceptions.]) -- ac_exception_model_name=sjlj --elif test x$enable_sjlj_exceptions = xno; then -- ac_exception_model_name="call frame" --else -- AC_MSG_ERROR([unable to detect exception model]) --fi --AC_LANG_POP(C) --AC_MSG_RESULT($ac_exception_model_name) -- - # ------ - # Output - # ------ -diff --git a/libobjc/exception.c b/libobjc/exception.c -index d6eb5db..1cc837b 100644 ---- a/libobjc/exception.c -+++ b/libobjc/exception.c -@@ -199,10 +199,10 @@ get_ttype_entry (struct lsda_header_info *info, _Unwind_Word i) - /* Using a different personality function name causes link failures - when trying to mix code using different exception handling - models. */ --#ifdef SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - #define PERSONALITY_FUNCTION __gnu_objc_personality_sj0 - #define __builtin_eh_return_data_regno(x) x --#elif defined(__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__) -+#elif defined(__SEH__) - #define PERSONALITY_FUNCTION __gnu_objc_personality_imp - #else - #define PERSONALITY_FUNCTION __gnu_objc_personality_v0 -@@ -329,7 +329,7 @@ PERSONALITY_FUNCTION (int version, - action_record = 0; - handler_switch_value = 0; - --#ifdef SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - /* The given "IP" is an index into the call-site table, with two - exceptions -- -1 means no-action, and 0 means terminate. But - since we're using uleb128 values, we've not got random access to -@@ -380,7 +380,7 @@ PERSONALITY_FUNCTION (int version, - goto found_something; - } - } --#endif /* SJLJ_EXCEPTIONS */ -+#endif /* __USING_SJLJ_EXCEPTIONS__ */ - - /* If ip is not present in the table, C++ would call terminate. */ - /* ??? As with Java, it's perhaps better to tweek the LSDA to that -@@ -508,7 +508,7 @@ objc_exception_throw (id exception) - header->base.exception_cleanup = __objc_exception_cleanup; - header->value = exception; - --#ifdef SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - _Unwind_SjLj_RaiseException (&header->base); - #else - _Unwind_RaiseException (&header->base); -diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 -index 6f67774..46e303c 100644 ---- a/libstdc++-v3/acinclude.m4 -+++ b/libstdc++-v3/acinclude.m4 -@@ -3129,79 +3129,6 @@ EOF - - - dnl --dnl Check for exception handling support. If an explicit enable/disable --dnl sjlj exceptions is given, we don't have to detect. Otherwise the --dnl target may or may not support call frame exceptions. --dnl --dnl --enable-sjlj-exceptions forces the use of builtin setjmp. --dnl --disable-sjlj-exceptions forces the use of call frame unwinding. --dnl Neither one forces an attempt at detection. --dnl --dnl Defines: --dnl _GLIBCXX_SJLJ_EXCEPTIONS if the compiler is configured for it --dnl --AC_DEFUN([GLIBCXX_ENABLE_SJLJ_EXCEPTIONS], [ -- AC_MSG_CHECKING([for exception model to use]) -- AC_LANG_SAVE -- AC_LANG_CPLUSPLUS -- GLIBCXX_ENABLE(sjlj-exceptions,auto,, -- [force use of builtin_setjmp for exceptions], -- [permit yes|no|auto]) -- -- if test $enable_sjlj_exceptions = auto; then -- # Botheration. Now we've got to detect the exception model. Link tests -- # against libgcc.a are problematic since we've not been given proper -L -- # bits for single-tree newlib and libgloss. -- # -- # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. -- cat > conftest.$ac_ext << EOF --[#]line __oline__ "configure" --struct S { ~S(); }; --void bar(); --void foo() --{ -- S s; -- bar(); --} --EOF -- old_CXXFLAGS="$CXXFLAGS" -- CXXFLAGS=-S -- if AC_TRY_EVAL(ac_compile); then -- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=yes -- elif grep _Unwind_SjLj_Register conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=yes -- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=no -- elif grep __cxa_end_cleanup conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=no -- fi -- fi -- CXXFLAGS="$old_CXXFLAGS" -- rm -f conftest* -- fi -- -- # This is a tad weird, for hysterical raisins. We have to map -- # enable/disable to two different models. -- case $enable_sjlj_exceptions in -- yes) -- AC_DEFINE(_GLIBCXX_SJLJ_EXCEPTIONS, 1, -- [Define if the compiler is configured for setjmp/longjmp exceptions.]) -- ac_exception_model_name=sjlj -- ;; -- no) -- ac_exception_model_name="call frame" -- ;; -- *) -- AC_MSG_ERROR([unable to detect exception model]) -- ;; -- esac -- AC_LANG_RESTORE -- AC_MSG_RESULT($ac_exception_model_name) --]) -- -- --dnl - dnl Allow visibility attributes to be used on namespaces, objects, etc. - dnl - dnl --enable-libstdcxx-visibility enables attempt to use visibility attributes. -diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in -index 88d56b5..945d44e 100644 ---- a/libstdc++-v3/config.h.in -+++ b/libstdc++-v3/config.h.in -@@ -768,9 +768,6 @@ - /* Define if size_t is unsigned int. */ - #undef _GLIBCXX_SIZE_T_IS_UINT - --/* Define if the compiler is configured for setjmp/longjmp exceptions. */ --#undef _GLIBCXX_SJLJ_EXCEPTIONS -- - /* Define to the value of the EOF integer constant. */ - #undef _GLIBCXX_STDIO_EOF - -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index 35508d3..c206bcf 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -862,7 +862,6 @@ with_gnu_ld - enable_libtool_lock - enable_hosted_libstdcxx - enable_libstdcxx_verbose --enable_sjlj_exceptions - enable_libstdcxx_pch - enable_cstdio - enable_clocale -@@ -1542,9 +1541,6 @@ Optional Features: - only build freestanding C++ runtime support - --disable-libstdcxx-verbose - disable termination messages to standard error -- --enable-sjlj-exceptions -- force use of builtin_setjmp for exceptions -- [default=auto] - --enable-libstdcxx-pch build pre-compiled libstdc++ headers - [default=$is_hosted] - --enable-cstdio[=PACKAGE] -@@ -11655,7 +11651,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11596 "configure" -+#line 11592 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11761,7 +11757,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11702 "configure" -+#line 11698 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -15151,92 +15147,6 @@ _ACEOF - - # Enable compiler support that doesn't require linking. - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exception model to use" >&5 --$as_echo_n "checking for exception model to use... " >&6; } -- -- ac_ext=cpp --ac_cpp='$CXXCPP $CPPFLAGS' --ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -- -- # Check whether --enable-sjlj-exceptions was given. --if test "${enable_sjlj_exceptions+set}" = set; then : -- enableval=$enable_sjlj_exceptions; -- case "$enableval" in -- yes|no|auto) ;; -- *) as_fn_error "Unknown argument to enable/disable sjlj-exceptions" "$LINENO" 5 ;; -- esac -- --else -- enable_sjlj_exceptions=auto --fi -- -- -- -- if test $enable_sjlj_exceptions = auto; then -- # Botheration. Now we've got to detect the exception model. Link tests -- # against libgcc.a are problematic since we've not been given proper -L -- # bits for single-tree newlib and libgloss. -- # -- # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. -- cat > conftest.$ac_ext << EOF --#line 15122 "configure" --struct S { ~S(); }; --void bar(); --void foo() --{ -- S s; -- bar(); --} --EOF -- old_CXXFLAGS="$CXXFLAGS" -- CXXFLAGS=-S -- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 -- (eval $ac_compile) 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=yes -- elif grep _Unwind_SjLj_Register conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=yes -- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=no -- elif grep __cxa_end_cleanup conftest.s >/dev/null 2>&1 ; then -- enable_sjlj_exceptions=no -- fi -- fi -- CXXFLAGS="$old_CXXFLAGS" -- rm -f conftest* -- fi -- -- # This is a tad weird, for hysterical raisins. We have to map -- # enable/disable to two different models. -- case $enable_sjlj_exceptions in -- yes) -- --$as_echo "#define _GLIBCXX_SJLJ_EXCEPTIONS 1" >>confdefs.h -- -- ac_exception_model_name=sjlj -- ;; -- no) -- ac_exception_model_name="call frame" -- ;; -- *) -- as_fn_error "unable to detect exception model" "$LINENO" 5 -- ;; -- esac -- ac_ext=c --ac_cpp='$CPP $CPPFLAGS' --ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_c_compiler_gnu -- -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_exception_model_name" >&5 --$as_echo "$ac_exception_model_name" >&6; } -- -- - # Check whether --enable-libstdcxx-pch was given. - if test "${enable_libstdcxx_pch+set}" = set; then : - enableval=$enable_libstdcxx_pch; -@@ -15533,7 +15443,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; } - # Fake what AC_TRY_COMPILE does. - - cat > conftest.$ac_ext << EOF --#line 15474 "configure" -+#line 15484 "configure" - int main() - { - typedef bool atomic_type; -@@ -15568,7 +15478,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; } - rm -f conftest* - - cat > conftest.$ac_ext << EOF --#line 15509 "configure" -+#line 15419 "configure" - int main() - { - typedef short atomic_type; -@@ -15603,7 +15513,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; } - rm -f conftest* - - cat > conftest.$ac_ext << EOF --#line 15544 "configure" -+#line 15454 "configure" - int main() - { - // NB: _Atomic_word not necessarily int. -@@ -15639,7 +15549,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; } - rm -f conftest* - - cat > conftest.$ac_ext << EOF --#line 15580 "configure" -+#line 15490 "configure" - int main() - { - typedef long long atomic_type; -@@ -15718,7 +15628,7 @@ $as_echo "$as_me: WARNING: Performance of certain classes will degrade as a resu - # unnecessary for this test. - - cat > conftest.$ac_ext << EOF --#line 15659 "configure" -+#line 15569 "configure" - int main() - { - _Decimal32 d1; -@@ -15760,7 +15670,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - # unnecessary for this test. - - cat > conftest.$ac_ext << EOF --#line 15701 "configure" -+#line 15611 "configure" - template - struct same - { typedef T2 type; }; -@@ -15794,7 +15704,7 @@ $as_echo "$enable_int128" >&6; } - rm -f conftest* - - cat > conftest.$ac_ext << EOF --#line 15735 "configure" -+#line 15645 "configure" - template - struct same - { typedef T2 type; }; -diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac -index 311baa5..7eac8a1 100644 ---- a/libstdc++-v3/configure.ac -+++ b/libstdc++-v3/configure.ac -@@ -147,7 +147,6 @@ GLIBCXX_ENABLE_HOSTED - GLIBCXX_ENABLE_VERBOSE - - # Enable compiler support that doesn't require linking. --GLIBCXX_ENABLE_SJLJ_EXCEPTIONS - GLIBCXX_ENABLE_PCH($is_hosted) - GLIBCXX_ENABLE_THREADS - GLIBCXX_ENABLE_ATOMIC_BUILTINS -diff --git a/libstdc++-v3/doc/html/manual/appendix_porting.html b/libstdc++-v3/doc/html/manual/appendix_porting.html -index cee8168..e2eebe6 100644 ---- a/libstdc++-v3/doc/html/manual/appendix_porting.html -+++ b/libstdc++-v3/doc/html/manual/appendix_porting.html -@@ -162,7 +162,6 @@ in the build directory starts the build process. The all

-diff --git a/libstdc++-v3/doc/html/manual/configure.html b/libstdc++-v3/doc/html/manual/configure.html -index 96f40a6..5ec0cf2 100644 ---- a/libstdc++-v3/doc/html/manual/configure.html -+++ b/libstdc++-v3/doc/html/manual/configure.html -@@ -22,11 +22,6 @@ - libstdc++ built many different ways: "-msoft-float" - and not, etc. A different libstdc++ will be built for each of - the different multilib versions. This option is on by default. --

--enable-sjlj-exceptions

Forces old, set-jump/long-jump exception handling model. If -- at all possible, the new, frame unwinding exception handling routines -- should be used instead, as they significantly reduce both -- runtime memory usage and executable size. This option can -- change the library ABI. -

--enable-version-specific-runtime-libs

Specify that run-time libraries should be installed in the - compiler-specific subdirectory (i.e., - ${libdir}/gcc-lib/${target_alias}/${gcc_version}) -diff --git a/libstdc++-v3/doc/xml/manual/build_hacking.xml b/libstdc++-v3/doc/xml/manual/build_hacking.xml -index afcc373..1b789d3 100644 ---- a/libstdc++-v3/doc/xml/manual/build_hacking.xml -+++ b/libstdc++-v3/doc/xml/manual/build_hacking.xml -@@ -232,7 +232,6 @@ in the build directory starts the build process. The all targ - GLIBCXX_ENABLE_DEBUG_FLAGS - GLIBCXX_ENABLE_LONG_LONG - GLIBCXX_ENABLE_PCH -- GLIBCXX_ENABLE_SJLJ_EXCEPTIONS - GLIBCXX_ENABLE_SYMVERS - GLIBCXX_ENABLE_THREADS - -diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml -index 56d071e..9ba9c1a 100644 ---- a/libstdc++-v3/doc/xml/manual/configure.xml -+++ b/libstdc++-v3/doc/xml/manual/configure.xml -@@ -45,15 +45,6 @@ - - - -- --enable-sjlj-exceptions -- Forces old, set-jump/long-jump exception handling model. If -- at all possible, the new, frame unwinding exception handling routines -- should be used instead, as they significantly reduce both -- runtime memory usage and executable size. This option can -- change the library ABI. -- -- -- - --enable-version-specific-runtime-libs - Specify that run-time libraries should be installed in the - compiler-specific subdirectory (i.e., -diff --git a/libstdc++-v3/libsupc++/eh_personality.cc b/libstdc++-v3/libsupc++/eh_personality.cc -index 74bc884..f35d51e 100644 ---- a/libstdc++-v3/libsupc++/eh_personality.cc -+++ b/libstdc++-v3/libsupc++/eh_personality.cc -@@ -327,16 +327,16 @@ namespace __cxxabiv1 - - // Using a different personality function name causes link failures - // when trying to mix code using different exception handling models. --#ifdef _GLIBCXX_SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - #define PERSONALITY_FUNCTION __gxx_personality_sj0 - #define __builtin_eh_return_data_regno(x) x --#elif defined(__SEH__) && !defined (_GLIBCXX_SJLJ_EXCEPTIONS) -+#elif defined(__SEH__) - #define PERSONALITY_FUNCTION __gxx_personality_imp - #else - #define PERSONALITY_FUNCTION __gxx_personality_v0 - #endif - --#if defined (__SEH__) && !defined (_GLIBCXX_SJLJ_EXCEPTIONS) -+#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__) - static - #else - extern "C" -@@ -455,7 +455,7 @@ PERSONALITY_FUNCTION (int version, - action_record = 0; - handler_switch_value = 0; - --#ifdef _GLIBCXX_SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - // The given "IP" is an index into the call-site table, with two - // exceptions -- -1 means no-action, and 0 means terminate. But - // since we're using uleb128 values, we've not got random access -@@ -508,7 +508,7 @@ PERSONALITY_FUNCTION (int version, - goto found_something; - } - } --#endif // _GLIBCXX_SJLJ_EXCEPTIONS -+#endif // __USING_SJLJ_EXCEPTIONS__ - - // If ip is not present in the table, call terminate. This is for - // a destructor inside a cleanup, or a library routine the compiler -@@ -789,7 +789,7 @@ __cxa_call_unexpected (void *exc_obj_in) - } - #endif - --#if defined (__SEH__) && !defined (_GLIBCXX_SJLJ_EXCEPTIONS) -+#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__) - extern "C" - EXCEPTION_DISPOSITION - __gxx_personality_seh0 (PEXCEPTION_RECORD ms_exc, void *this_frame, -diff --git a/libstdc++-v3/libsupc++/eh_ptr.cc b/libstdc++-v3/libsupc++/eh_ptr.cc -index dae9246..3872767 100644 ---- a/libstdc++-v3/libsupc++/eh_ptr.cc -+++ b/libstdc++-v3/libsupc++/eh_ptr.cc -@@ -248,7 +248,7 @@ std::rethrow_exception(std::exception_ptr ep) - __cxa_eh_globals *globals = __cxa_get_globals (); - globals->uncaughtExceptions += 1; - --#ifdef _GLIBCXX_SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - _Unwind_SjLj_RaiseException (&dep->unwindHeader); - #else - _Unwind_RaiseException (&dep->unwindHeader); -diff --git a/libstdc++-v3/libsupc++/eh_throw.cc b/libstdc++-v3/libsupc++/eh_throw.cc -index d3fa70d..4c953e0 100644 ---- a/libstdc++-v3/libsupc++/eh_throw.cc -+++ b/libstdc++-v3/libsupc++/eh_throw.cc -@@ -76,7 +76,7 @@ __cxxabiv1::__cxa_throw (void *obj, std::type_info *tinfo, - __GXX_INIT_PRIMARY_EXCEPTION_CLASS(header->exc.unwindHeader.exception_class); - header->exc.unwindHeader.exception_cleanup = __gxx_exception_cleanup; - --#ifdef _GLIBCXX_SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - _Unwind_SjLj_RaiseException (&header->exc.unwindHeader); - #else - _Unwind_RaiseException (&header->exc.unwindHeader); -@@ -109,7 +109,7 @@ __cxxabiv1::__cxa_rethrow () - header->exceptionType); - } - --#ifdef _GLIBCXX_SJLJ_EXCEPTIONS -+#ifdef __USING_SJLJ_EXCEPTIONS__ - _Unwind_SjLj_Resume_or_Rethrow (&header->unwindHeader); - #else - #if defined(_LIBUNWIND_STD_ABI) --- -2.4.0 diff --git a/mingw-w64-gcc/410-fix-lto.patch b/mingw-w64-gcc/410-fix-lto.patch deleted file mode 100644 index 8f606e8c5a..0000000000 --- a/mingw-w64-gcc/410-fix-lto.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- gcc-5.1.0/gcc/lto-wrapper.c.orig 2015-05-01 16:38:03.348243300 -0400 -+++ gcc-5.1.0/gcc/lto-wrapper.c 2015-05-02 00:30:58.345729900 -0400 -@@ -934,7 +934,7 @@ - file_offset = (off_t) loffset; - } -- fd = open (argv[i], O_RDONLY); -+ fd = open (filename, O_RDONLY|O_BINARY); - if (fd == -1) - { - lto_argv[lto_argc++] = argv[i]; diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 761fba03e8..629e4e6d5e 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -10,7 +10,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc") -pkgver=5.1.0 +pkgver=5.2.0 pkgrel=1 pkgdesc="GCC for the MinGW-w64" arch=('any') @@ -46,8 +46,6 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- '240-prettify-linking-no-undefined.mingw.patch' '300-libgomp-no-static.patch' '310-gcc-make-xmmintrin-header-cplusplus-compatible.patch' - '400-detect-sjlj-cleanup.patch' - '410-fix-lto.patch' '405-dwarf-regression.patch' 'enable-libitm.mingw.patch' 'enable-libsanitizer.mingw.patch' @@ -56,9 +54,8 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- 'port-sanitizer-to-mingw.all.patch' 'enable-shared-gnat-implib.mingw.patch' '955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch' - pr65882.patch pr66035.patch) -md5sums=('d5525b1127d07d215960e6051c5da35e' +md5sums=('a51bcfeb3da7dd4c623e27207ed43467' '41635a40493dc79416db6627b2826b21' 'f6b5fb08ff06a7d60ee3280e14240bb2' '71cdb550528efcf2a5c9112464bfbabc' @@ -71,8 +68,6 @@ md5sums=('d5525b1127d07d215960e6051c5da35e' '09bdad41515c8d353612f30c91b3bac2' '0a78aaac959e212acb24bb38271804cb' '4a6e2e0f6424abf37e830d7f37fd3351' - '91cb14ef19c312b2575606b6f1cb1bfa' - '4bae081d5820405b3800b7a881bf166d' 'b558ee5f7529b1765e4266289ad1a83c' '27d5611996e209ba6f6a55ab417386e4' '5201bee23601ddfacde436461559f561' @@ -81,7 +76,6 @@ md5sums=('d5525b1127d07d215960e6051c5da35e' '52592c1d7c6031ff601ecfdf3942b940' '62cc23251ae746b5f39c2c7aef121e8f' '393ce6bf124d5b1ca0e38cbe0fc6eb51' - '9a9cc98e916fd37c7b3dad50f29d2f48' '5b980076cd5fcbc3aff6014f306282dd') _threads="posix" @@ -134,10 +128,10 @@ prepare() { patch -p1 -i ${srcdir}/240-prettify-linking-no-undefined.mingw.patch patch -p1 -i ${srcdir}/310-gcc-make-xmmintrin-header-cplusplus-compatible.patch - - patch -p1 -i ${srcdir}/400-detect-sjlj-cleanup.patch - patch -p1 -i ${srcdir}/405-dwarf-regression.patch - patch -p1 -i ${srcdir}/410-fix-lto.patch + + if [ "${CARCH}" = "i686" ]; then + patch -p1 -i ${srcdir}/405-dwarf-regression.patch + fi patch -p1 -i ${srcdir}/enable-shared-gnat-implib.mingw.patch @@ -148,9 +142,6 @@ prepare() { # patch -p1 -i ${srcdir}/port-sanitizer-to-mingw.all.patch patch -p1 -i ${srcdir}/955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch - - # https://gcc.gnu.org/ml/gcc-patches/2015-04/msg01558.html - patch -p1 -i ${srcdir}/pr65882.patch # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66035 patch -p1 -i ${srcdir}/pr66035.patch diff --git a/mingw-w64-gcc/pr65882.patch b/mingw-w64-gcc/pr65882.patch deleted file mode 100644 index 673712b2b1..0000000000 --- a/mingw-w64-gcc/pr65882.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff --git a/gcc/cp/call.c b/gcc/cp/call.c -index 7bdf236..689d542 100644 ---- a/gcc/cp/call.c -+++ b/gcc/cp/call.c -@@ -5677,8 +5677,9 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1, - case TRUTH_ORIF_EXPR: - case TRUTH_AND_EXPR: - case TRUTH_OR_EXPR: -- warn_logical_operator (loc, code, boolean_type_node, -- code_orig_arg1, arg1, code_orig_arg2, arg2); -+ if (complain & tf_warning) -+ warn_logical_operator (loc, code, boolean_type_node, -+ code_orig_arg1, arg1, code_orig_arg2, arg2); - /* Fall through. */ - case GT_EXPR: - case LT_EXPR: -@@ -5686,8 +5687,9 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1, - case LE_EXPR: - case EQ_EXPR: - case NE_EXPR: -- if ((code_orig_arg1 == BOOLEAN_TYPE) -- ^ (code_orig_arg2 == BOOLEAN_TYPE)) -+ if ((complain & tf_warning) -+ && ((code_orig_arg1 == BOOLEAN_TYPE) -+ ^ (code_orig_arg2 == BOOLEAN_TYPE))) - maybe_warn_bool_compare (loc, code, arg1, arg2); - /* Fall through. */ - case PLUS_EXPR: -diff --git a/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C b/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C -new file mode 100644 -index 0000000..5655eb4 ---- /dev/null -+++ b/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C -@@ -0,0 +1,32 @@ -+// PR c++/65882 -+// { dg-do compile { target c++11 } } -+// { dg-options "-Wbool-compare" } -+ -+// Check that we don't ICE because of reentering error reporting routines while -+// evaluating template parameters -+ -+template -+struct type_function { -+ static constexpr bool value = false; -+}; -+ -+template -+struct dependent_type { -+ typedef int type; -+}; -+ -+template -+typename dependent_type<(5 > type_function::value)>::type -+bar(); -+ -+template -+typename dependent_type<(5 > type_function::value)>::type -+foo() -+{ -+ return bar(); -+} -+ -+int main() -+{ -+ foo(); -+} From d25be78289aa569a6fb1c5f46f2fe64d2263cf2c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 17 Jul 2015 09:12:14 +0300 Subject: [PATCH 1293/2060] vlc-git: Rebuild with gcc-5.x --- mingw-w64-vlc-git/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-vlc-git/PKGBUILD b/mingw-w64-vlc-git/PKGBUILD index 1cea860abf..cd724e0919 100644 --- a/mingw-w64-vlc-git/PKGBUILD +++ b/mingw-w64-vlc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=2.2 -pkgver=3.0.0.61132.1a2f7b2 +pkgver=3.0.0.61503.1d43e72 pkgrel=1 pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" arch=('any') @@ -53,6 +53,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-a52dec" "${MINGW_PACKAGE_PREFIX}-opencv" "${MINGW_PACKAGE_PREFIX}-opus" "${MINGW_PACKAGE_PREFIX}-portaudio" + "${MINGW_PACKAGE_PREFIX}-protobuf" "${MINGW_PACKAGE_PREFIX}-schroedinger" "${MINGW_PACKAGE_PREFIX}-speex" "${MINGW_PACKAGE_PREFIX}-taglib" @@ -128,8 +129,7 @@ md5sums=('SKIP' '3ab07dce68513b6d37321f36141a8340' '4c286b5d83b67e6c0ca15c16b9376fc4' '0b3303af4b3d68cf5317f025975adb32' - '0301207ee4fa1ce5dc510d6ee402adaa' - 'b0727dcfbab81988f8f78f146ff10611') + '0301207ee4fa1ce5dc510d6ee402adaa') pkgver() { cd $_realname From 90e0f72c292d3bdca8ec86a66925909351611791 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 17 Jul 2015 09:24:29 +0300 Subject: [PATCH 1294/2060] gplugin: WIP update --- mingw-w64-gplugin/001-win.patch | 15 ++++++++++++++- mingw-w64-gplugin/PKGBUILD | 32 ++++++++++++++------------------ 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/mingw-w64-gplugin/001-win.patch b/mingw-w64-gplugin/001-win.patch index 88b5992cd1..ba578b38d3 100644 --- a/mingw-w64-gplugin/001-win.patch +++ b/mingw-w64-gplugin/001-win.patch @@ -32,7 +32,7 @@ gplugin_manager_add_default_paths(void) { gchar *path; -- path = g_build_filename(PREFIX, "lib", "gplugin", NULL); +- path = g_build_filename(PREFIX, LIBDIR, "gplugin", NULL); + gchar *dir; + + dir = g_win32_get_package_installation_directory_of_module (NULL); @@ -41,6 +41,19 @@ gplugin_manager_prepend_path(path); g_free(path); +@@ -1146,7 +1146,11 @@ + + g_return_if_fail(appname != NULL); + +- path = g_build_filename(prefix, LIBDIR, appname, NULL); ++ gchar *dir; ++ ++ dir = g_win32_get_package_installation_directory_of_module (NULL); ++ path = g_build_filename(dir, "lib", appname, NULL); ++ g_free (dir); + gplugin_manager_prepend_path(path); + g_free(path); + --- ./gplugin-gtk/gplugin-gtk-plugin-info.c.orig 2015-05-10 20:00:56.780137100 +0200 +++ ./gplugin-gtk/gplugin-gtk-plugin-info.c 2015-05-10 20:01:16.721412000 +0200 @@ -239,8 +239,13 @@ diff --git a/mingw-w64-gplugin/PKGBUILD b/mingw-w64-gplugin/PKGBUILD index 3b562169e0..908b2aa105 100644 --- a/mingw-w64-gplugin/PKGBUILD +++ b/mingw-w64-gplugin/PKGBUILD @@ -2,7 +2,7 @@ _realname=gplugin pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.0.18 +pkgver=0.0.21 pkgrel=1 arch=('any') pkgdesc="A GObject based library that implements a reusable plugin system (mingw-w64)" @@ -16,13 +16,13 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-pkg-config" "gettext") options=('strip' '!debug' 'staticlibs') -source=("${_realname}-${pkgver}.tar.bz2"::https://bitbucket.org/rw_grim/${_realname}/get/v$pkgver.tar.bz2 +source=("${_realname}-${pkgver}.tar.bz2"::https://bitbucket.org/rw_grim/${_realname}/get/v${pkgver}.tar.bz2 001-win.patch) -sha256sums=('fe0d6e450ff9f63e866bf75344cb561985dccae1e89e4162c20d07d961b71fc9' - '583b969c8d67fd303cf219e5a6f475be8f4f535711324966efc57479fe031153') +sha256sums=('df6c0cb47605c5f38fed6aad216fbaa97bb47378de70103884eaa43252af0314' + '3b5ef908992fe9073a0c14de9b58e81a0a11969f50e28fbd1a34fd7f3bbd13ce') prepare() { - cd rw_grim-gplugin-9f4dea11d6eb + cd rw_grim-gplugin-* patch -p1 -i ${srcdir}/001-win.patch } @@ -32,8 +32,9 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DCMAKE_C_FLAGS="${CFLAGS}" \ @@ -43,22 +44,17 @@ build() { -DBUILD_SEED="Off" \ -DTESTING_ENABLED="Off" \ -G "MSYS Makefiles" \ - ../rw_grim-gplugin-9f4dea11d6eb + ../rw_grim-gplugin-* - make + make -j1 } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install - install -Dm644 "${srcdir}/rw_grim-gplugin-9f4dea11d6eb/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + install -Dm644 "${srcdir}/rw_grim-gplugin-*/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" - mv "$pkgdir${MINGW_PREFIX}/lib/libgplugin.dll" "$pkgdir${MINGW_PREFIX}/bin" - mv "$pkgdir${MINGW_PREFIX}/lib/libgplugin-gtk.dll" "$pkgdir${MINGW_PREFIX}/bin" - - local MINGW_PREFIX_W=$(cygpath -m "${pkgdir}${MINGW_PREFIX}") - sed -e "s#${MINGW_PREFIX_W}#${MINGW_PREFIX}#g" \ - -i "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/gplugin.pc \ - -i "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/gplugin-gtk.pc + mv "${pkgdir}${MINGW_PREFIX}/lib/libgplugin.dll" "${pkgdir}${MINGW_PREFIX}/bin" + mv "${pkgdir}${MINGW_PREFIX}/lib/libgplugin-gtk.dll" "${pkgdir}${MINGW_PREFIX}/bin" } From 187f4a5f4583d42e1eed933a0d5b8e2824bfc7be Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 17 Jul 2015 13:09:37 +0300 Subject: [PATCH 1295/2060] miniupnpc: Update to 1.9.20150609. Istall python extensions --- mingw-w64-miniupnpc/PKGBUILD | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/mingw-w64-miniupnpc/PKGBUILD b/mingw-w64-miniupnpc/PKGBUILD index 127a0a4cf3..8aff9acf1b 100644 --- a/mingw-w64-miniupnpc/PKGBUILD +++ b/mingw-w64-miniupnpc/PKGBUILD @@ -2,7 +2,7 @@ _realname=miniupnpc pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} -pkgver=1.9.20150206 +pkgver=1.9.20150609 pkgrel=1 pkgdesc="A small UPnP client library/tool to access Internet Gateway Devices (mingw-w64)" arch=('any') @@ -10,10 +10,14 @@ url="http://miniupnp.free.fr" license=('BSD') options=('staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") -source=("http://miniupnp.free.fr/files/${_realname}-$pkgver.tar.gz" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3") +source=(#"http://miniupnp.free.fr/files/${_realname}-${pkgver}.tar.gz" + http://miniupnp.tuxfamily.org/files/${_realname}-${pkgver}.tar.gz 001-link-libraries.patch) -sha256sums=('230d3ad5a3047daa77f99602503d798f720428207217ebfbfe2a4f7762b029e7' +sha256sums=('86e6ccec5b660ba6889893d1f3fca21db087c6466b1a90f495a1f87ab1cd1c36' '3ac8b46b15ab48415cbbfa759d968873b315a96120d4dcbe062fbc39a909726d') prepare() { @@ -22,24 +26,40 @@ prepare() { } build() { - mkdir -p build-${MINGW_CHOST} + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} + #mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DUPNPC_BUILD_SHARED=ON \ -DUPNPC_BUILD_STATIC=ON \ - ../${_realname}-${pkgver} + . make + + for pyt in 2 3; do + msg "Build Python${pyt} extension..." + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python${pyt} setupmingw32.py build + done } package() { cd build-${MINGW_CHOST} - make install + make DESTDIR=${pkgdir} install install -Dm644 ${srcdir}/${_realname}-${pkgver}/man3/miniupnpc.3 \ "${pkgdir}${MINGW_PREFIX}/share/man/man3/miniupnpc.3" install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE \ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + + for pyt in 2 3; do + msg "Install Python${pyt} extension..." + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python${pyt} setupmingw32.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + done } From 5051440a86a02aef20bf54dfcbbf3e0a3171bf51 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 17 Jul 2015 15:44:28 +0300 Subject: [PATCH 1296/2060] === Rebuild with GCC-5.x. Part XIII === --- mingw-w64-gdal/PKGBUILD | 2 +- mingw-w64-geos/PKGBUILD | 10 ++++++---- mingw-w64-gst-libav/PKGBUILD | 15 +++++++------- mingw-w64-json-c/PKGBUILD | 8 ++++---- mingw-w64-ladspa-sdk/PKGBUILD | 8 ++++---- mingw-w64-libfreexl/PKGBUILD | 8 ++++---- mingw-w64-libgeotiff/PKGBUILD | 2 +- mingw-w64-libguess/PKGBUILD | 7 +++---- mingw-w64-libgusb/PKGBUILD | 8 ++++---- mingw-w64-libmowgli/PKGBUILD | 5 +++-- .../01-fix-pkgconfig.patch | 6 ++---- mingw-w64-libspatialite/PKGBUILD | 20 ++++++++++++------- mingw-w64-libzip/PKGBUILD | 6 +++--- mingw-w64-live-media/PKGBUILD | 4 ++-- mingw-w64-meld3/PKGBUILD | 10 +++++----- mingw-w64-mhook/PKGBUILD | 18 +++++++++-------- mingw-w64-mpv/PKGBUILD | 2 +- mingw-w64-proj/PKGBUILD | 4 ++-- mingw-w64-rubberband/PKGBUILD | 12 +++++------ mingw-w64-vamp-plugin-sdk/PKGBUILD | 6 +++--- mingw-w64-xalan-c/PKGBUILD | 11 +++++----- mingw-w64-xerces-c/PKGBUILD | 8 ++++---- 22 files changed, 94 insertions(+), 86 deletions(-) diff --git a/mingw-w64-gdal/PKGBUILD b/mingw-w64-gdal/PKGBUILD index fbe93a4cad..53a47c43d0 100644 --- a/mingw-w64-gdal/PKGBUILD +++ b/mingw-w64-gdal/PKGBUILD @@ -6,7 +6,7 @@ _realname=gdal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.0 -pkgrel=1 +pkgrel=3 pkgdesc="A translator library for raster geospatial data formats (mingw-w64)" arch=('any') url="http://www.gdal.org/" diff --git a/mingw-w64-geos/PKGBUILD b/mingw-w64-geos/PKGBUILD index 10443e88b1..5265509997 100644 --- a/mingw-w64-geos/PKGBUILD +++ b/mingw-w64-geos/PKGBUILD @@ -3,14 +3,14 @@ _realname=geos pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.4.2 -pkgrel=3 +pkgrel=4 pkgdesc="C++ port of the Java Topology Suite (mingw-w64)" arch=('any') url="http://trac.osgeo.org/geos/" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' '!emptydirs') -source=(http://download.osgeo.org/geos/geos-$pkgver.tar.bz2 +source=(http://download.osgeo.org/geos/geos-${pkgver}.tar.bz2 01-fix-buildsystem.patch) sha256sums=('15e8bfdf7e29087a957b56ac543ea9a80321481cef4d4f63a7b268953ad26c53' '89cd30338e6d29bfb0b1f50565b6ac32f85a4e327fbcfa025f20e51af4abae27') @@ -23,9 +23,11 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TESTS=ON \ -DGEOS_ENABLE_INLINE=OFF \ @@ -35,7 +37,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install } check() { diff --git a/mingw-w64-gst-libav/PKGBUILD b/mingw-w64-gst-libav/PKGBUILD index b1e3343181..716b301295 100644 --- a/mingw-w64-gst-libav/PKGBUILD +++ b/mingw-w64-gst-libav/PKGBUILD @@ -3,19 +3,19 @@ _realname=gst-libav pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.5 -pkgrel=1 +pkgrel=2 pkgdesc="GStreamer libav (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-python2" - "yasm" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-python2" + "yasm" ) depends=("${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-gst-plugins-base" - "${MINGW_PACKAGE_PREFIX}-gstreamer") + "${MINGW_PACKAGE_PREFIX}-gst-plugins-base" + "${MINGW_PACKAGE_PREFIX}-gstreamer") options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz) md5sums=('f4922a46adbcbe7bd01331ff5dc7979d') @@ -30,6 +30,7 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + MSYSTEM=mingw32 \ ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -43,6 +44,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a } diff --git a/mingw-w64-json-c/PKGBUILD b/mingw-w64-json-c/PKGBUILD index 57687b3bc9..32c7ce65d0 100644 --- a/mingw-w64-json-c/PKGBUILD +++ b/mingw-w64-json-c/PKGBUILD @@ -3,7 +3,7 @@ _realname=json-c pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.12 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A JSON implementation in C." url='https://github.com/json-c/json-c' @@ -15,11 +15,11 @@ source=("http://s3.amazonaws.com/json-c_releases/releases/${_realname}-${pkgver} md5sums=('3ca4bbb881dfc4017e8021b5e0a8c491') prepare() { - cd "$srcdir/${_realname}-${pkgver/_/-}" + cd "${srcdir}/${_realname}-${pkgver/_/-}" } build() { - cd "$srcdir/${_realname}-${pkgver/_/-}" + cd "${srcdir}/${_realname}-${pkgver/_/-}" # sh autogen.sh # only for github release tarballs CFLAGS="-Wno-error=unused-but-set-variable -Wno-error=unknown-pragmas $CFLAGS" export CFLAGS @@ -28,7 +28,7 @@ build() { } package() { - cd "$srcdir/${_realname}-${pkgver/_/-}" + cd "${srcdir}/${_realname}-${pkgver/_/-}" make DESTDIR="${pkgdir}" install install -D COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING } diff --git a/mingw-w64-ladspa-sdk/PKGBUILD b/mingw-w64-ladspa-sdk/PKGBUILD index cdd6f47328..7f91ab000b 100644 --- a/mingw-w64-ladspa-sdk/PKGBUILD +++ b/mingw-w64-ladspa-sdk/PKGBUILD @@ -3,8 +3,8 @@ _realname=ladspa-sdk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.13 -pkgrel=1 -pkgdesc="Linux Audio Developer's Simple Plugin API (LADSPA) SDK. (mingw-w64)" +pkgrel=2 +pkgdesc="Linux Audio Developer's Simple Plugin API (LADSPA) SDK (mingw-w64)" arch=('any') url="http://www.ladspa.org/" license=("LGPL") @@ -15,5 +15,5 @@ md5sums=('7550280c79d24228361a9762b63e5b7e') package() { install -d "${pkgdir}/${MINGW_PREFIX}/include" - cp "$srcdir/ladspa.h.txt" "${pkgdir}/${MINGW_PREFIX}/include/ladspa.h" -} \ No newline at end of file + cp "${srcdir}/ladspa.h.txt" "${pkgdir}/${MINGW_PREFIX}/include/ladspa.h" +} diff --git a/mingw-w64-libfreexl/PKGBUILD b/mingw-w64-libfreexl/PKGBUILD index d7fb510ded..43cf16d65c 100644 --- a/mingw-w64-libfreexl/PKGBUILD +++ b/mingw-w64-libfreexl/PKGBUILD @@ -5,17 +5,17 @@ _realname=libfreexl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.0g -pkgrel=4 +pkgver=1.0.2 +pkgrel=1 pkgdesc="Library to extract valid data from within an Excel (.xls) spreadsheet" arch=('any') url="https://www.gaia-gis.it/fossil/freexl" license=('MPL' 'GPL' 'LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libiconv") options=(strip) -source=("http://www.gaia-gis.it/gaia-sins/freexl-$pkgver.tar.gz" +source=("http://www.gaia-gis.it/gaia-sins/freexl-${pkgver}.tar.gz" "01-fix-pkgconfig.patch") -sha256sums=('cf2b110f5fc7089fa61c7421f59caa4125b13087b4686ed82dba7abedf2ec266' +sha256sums=('b39a4814a0f53f5e09a9192c41e3e51bd658843f770399023a963eb064f6409d' 'bc6facd7b0bde308d442962b350fa1894cd6605412ae4665775be745069e4ea5') prepare() { diff --git a/mingw-w64-libgeotiff/PKGBUILD b/mingw-w64-libgeotiff/PKGBUILD index c9e22572b2..6d11187d43 100644 --- a/mingw-w64-libgeotiff/PKGBUILD +++ b/mingw-w64-libgeotiff/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgeotiff pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.0 -pkgrel=1 +pkgrel=2 pkgdesc="Cartographic projection software (PROJ.4) (mingw-w64)" arch=(any) url="http://trac.osgeo.org/geotiff/" diff --git a/mingw-w64-libguess/PKGBUILD b/mingw-w64-libguess/PKGBUILD index 73fb349d59..4769b98312 100644 --- a/mingw-w64-libguess/PKGBUILD +++ b/mingw-w64-libguess/PKGBUILD @@ -3,7 +3,7 @@ _realname=libguess pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2 -pkgrel=1 +pkgrel=2 pkgdesc="High-speed character set detection library (mingw-w64)" arch=('any') url="http://atheme.org/projects/libguess.html" @@ -27,9 +27,8 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ - --enable-shared \ - --enable-static + --target=${MINGW_CHOST} + make } diff --git a/mingw-w64-libgusb/PKGBUILD b/mingw-w64-libgusb/PKGBUILD index befec58322..8a627a8c22 100644 --- a/mingw-w64-libgusb/PKGBUILD +++ b/mingw-w64-libgusb/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgusb _tarballname=gusb pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.2.4 +pkgver=0.2.6 pkgrel=1 arch=('any') pkgdesc="GLib wrapper around libusb1 (mingw-w64)" @@ -17,7 +17,7 @@ options=('strip' 'staticlibs') license=("LGPL") url="https://github.com/hughsie/libgusb" source=("https://github.com/hughsie/${_realname}/archive/${_tarballname}_${pkgver//./_}.tar.gz") -sha256sums=('43e04b9d9b555e330481c306ee073dbffad06609599ca8699722e88c857f80d1') +sha256sums=('d996e8b8adc8438fb7a19bbfae25a0d6b71e06b3ac40274baf6005a4befa2d41') prepare() { cd "${srcdir}"/${_realname}-${_tarballname}_${pkgver//./_} @@ -41,6 +41,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libmowgli/PKGBUILD b/mingw-w64-libmowgli/PKGBUILD index ba4ab2dbc4..41afeae25d 100644 --- a/mingw-w64-libmowgli/PKGBUILD +++ b/mingw-w64-libmowgli/PKGBUILD @@ -3,7 +3,7 @@ _realname=libmowgli pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.0 -pkgrel=2 +pkgrel=3 pkgdesc="Performance and usability-oriented extensions to C (mingw-w64)" arch=('any') url="http://www.atheme.org/project/mowgli" @@ -34,11 +34,12 @@ build() { --target=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } package() { cd ${srcdir}/build-${MINGW_CHOST} - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -D -m644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libspatialite/01-fix-pkgconfig.patch b/mingw-w64-libspatialite/01-fix-pkgconfig.patch index 4eeb354116..749e87c86f 100644 --- a/mingw-w64-libspatialite/01-fix-pkgconfig.patch +++ b/mingw-w64-libspatialite/01-fix-pkgconfig.patch @@ -1,10 +1,8 @@ --- a/spatialite.pc.in 2014-10-28 12:53:37.868503600 +0300 +++ b/spatialite.pc.in 2014-10-28 12:56:36.391156800 +0300 -@@ -8,5 +8,6 @@ - Name: spatialite +@@ -8,4 +8,5 @@ Description: Spatial SQL database engine based on SQLite Version: @VERSION@ --Libs: -L${libdir} -lspatialite -lsqlite3 -lm -lz -+Libs: -L${libdir} -lspatialite -lsqlite3 + Libs: -L${libdir} -lspatialite +Libs.private: -liconv -lz -lm Cflags: -I${includedir} diff --git a/mingw-w64-libspatialite/PKGBUILD b/mingw-w64-libspatialite/PKGBUILD index e69bddff5f..13f1989dc7 100644 --- a/mingw-w64-libspatialite/PKGBUILD +++ b/mingw-w64-libspatialite/PKGBUILD @@ -5,19 +5,24 @@ _realname=libspatialite pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.2.0 -pkgrel=4 +pkgver=4.3.0 +pkgrel=1 pkgdesc="SQLite extension to support spatial data types and operations (mingw-w64)" arch=('any') -url="http://www.gaia-gis.it/fossil/libspatialite" +url="https://www.gaia-gis.it/fossil/libspatialite/index" license=('MPL' 'GPL' 'LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "automake" "autoconf") -depends=("${MINGW_PACKAGE_PREFIX}-geos" "${MINGW_PACKAGE_PREFIX}-libfreexl" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-proj" "${MINGW_PACKAGE_PREFIX}-sqlite3" "${MINGW_PACKAGE_PREFIX}-libiconv") +depends=("${MINGW_PACKAGE_PREFIX}-geos" + "${MINGW_PACKAGE_PREFIX}-libfreexl" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-proj" + "${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-libiconv") options=('strip') -source=("https://www.gaia-gis.it/gaia-sins/${_realname}-$pkgver.tar.gz" +source=("https://www.gaia-gis.it/gaia-sins/${_realname}-${pkgver}.tar.gz" "01-fix-pkgconfig.patch") -sha256sums=('9f138a6854740c7827fdee53845eb1485fce3e805a7aa9fc9151f8046ebd312d' - '8036b7b7645801611100d74d55674c6a4979a1af70721479c984c5e840914576') +sha256sums=('4acf2d2b891989e61351584fe28514a6561f8f6a1901b988990513be5fe1bdfe' + '50dace4542a2f378131be76c9dfe45fd78e7cf135f1339df8665b5f26c8ad6cc') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -36,6 +41,7 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --enable-libxml2 + make } diff --git a/mingw-w64-libzip/PKGBUILD b/mingw-w64-libzip/PKGBUILD index 6adb2cf003..857158b20b 100644 --- a/mingw-w64-libzip/PKGBUILD +++ b/mingw-w64-libzip/PKGBUILD @@ -3,7 +3,7 @@ _realname=libzip pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="A C library for reading, creating, and modifying zip archives (mingw-w64)" url="http://www.nih.at/libzip/index.html" license=('BSD') @@ -15,7 +15,7 @@ source=("http://www.nih.at/${_realname}/${_realname}-${pkgver}.tar.xz") md5sums=('e2371fc6f04a46efdaf8cbf4118ffafd') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" autoreconf -fi } @@ -23,7 +23,7 @@ prepare() { build() { mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-live-media/PKGBUILD b/mingw-w64-live-media/PKGBUILD index e52306dbb1..c42235f889 100644 --- a/mingw-w64-live-media/PKGBUILD +++ b/mingw-w64-live-media/PKGBUILD @@ -5,7 +5,7 @@ _realname=live-media pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2014.10.21 +pkgver=2015.06.25 pkgrel=1 pkgdesc="A set of C++ libraries for multimedia streaming (mingw-w64)" arch=('any') @@ -14,7 +14,7 @@ url="http://live555.com/liveMedia" depends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs') source=("http://live555.com/liveMedia/public/live.${pkgver}.tar.gz") -md5sums=('c07bbbe7be3add603879431b624b8092') +md5sums=('7c13d58c020efa42369b5f23a839be0c') build() { cd ${srcdir}/live diff --git a/mingw-w64-meld3/PKGBUILD b/mingw-w64-meld3/PKGBUILD index 657cc3a705..26088287f0 100644 --- a/mingw-w64-meld3/PKGBUILD +++ b/mingw-w64-meld3/PKGBUILD @@ -2,7 +2,7 @@ _realname=meld pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.13.1 +pkgver=3.13.2 pkgrel=1 pkgdesc="Visual diff and merge tool (mingw-w64)" arch=('any') @@ -11,11 +11,11 @@ license=("GPL" "LGPL") options=('strip' 'staticlibs') depends=( "${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-python2-gobject" "${MINGW_PACKAGE_PREFIX}-gtksourceview3" "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-python2-gobject" ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" @@ -23,10 +23,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" 'intltool' 'itstool') install=meld-${CARCH}.install -source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz '0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch' "0002-build-exe.patch") -md5sums=('1c357232efd81c7f92f797e2bafaff19' +md5sums=('f741528032f2b52d975d3dde60bebffd' '6ddb432315e37fed974491a27fd15736' 'c4770167f70e061c1f94d8c3fa3e7150') diff --git a/mingw-w64-mhook/PKGBUILD b/mingw-w64-mhook/PKGBUILD index 16e257785e..90801d3e54 100644 --- a/mingw-w64-mhook/PKGBUILD +++ b/mingw-w64-mhook/PKGBUILD @@ -1,32 +1,34 @@ # Maintainer: Jürgen Pfeifer _realname=mhook - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=r7.a159eed pkgrel=1 arch=('any') pkgdesc="An API hooking library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("git" - "${MINGW_PACKAGE_PREFIX}-cmake") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "git") options=('strip' 'staticlibs') license=('custom') url="https://github.com/SirAnthony/mhook" -source=("$_realname"::"git+https://github.com/SirAnthony/mhook.git") +source=("${_realname}"::"git+https://github.com/SirAnthony/mhook.git") sha1sums=('SKIP') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } build() { - cd "$srcdir" + cd "${srcdir}" mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DMHOOK_TESTS=ON \ ../${_realname} @@ -35,12 +37,12 @@ build() { check() { - cd "$srcdir/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" ./mhook-tests } package() { - cd "$srcdir/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/ mkdir -p ${pkgdir}${MINGW_PREFIX}/include/ diff --git a/mingw-w64-mpv/PKGBUILD b/mingw-w64-mpv/PKGBUILD index 155c38bc6e..b984f2eee2 100644 --- a/mingw-w64-mpv/PKGBUILD +++ b/mingw-w64-mpv/PKGBUILD @@ -4,7 +4,7 @@ _realname=mpv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.2 -pkgrel=2 +pkgrel=3 pkgdesc="Video player based on MPlayer/mplayer2 (mingw-w64)" url="http://mpv.io" arch=('any') diff --git a/mingw-w64-proj/PKGBUILD b/mingw-w64-proj/PKGBUILD index f4174091f7..dd86e43331 100644 --- a/mingw-w64-proj/PKGBUILD +++ b/mingw-w64-proj/PKGBUILD @@ -2,7 +2,7 @@ _realname=proj pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.8.0 +pkgver=4.9.1 pkgrel=1 pkgdesc="Cartographic projection software (PROJ.4) (mingw-w64)" arch=(any) @@ -12,7 +12,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool") options=('staticlibs' 'strip') source=("http://download.osgeo.org/proj/${_realname}-${pkgver}.tar.gz") -md5sums=('d815838c92a29179298c126effbb1537') +md5sums=('3cbb2a964fd19a496f5f4265a717d31c') prepare() { cd "${srcdir}/${_realname}-${pkgver}" diff --git a/mingw-w64-rubberband/PKGBUILD b/mingw-w64-rubberband/PKGBUILD index 848f95ac07..8d4de8d25c 100644 --- a/mingw-w64-rubberband/PKGBUILD +++ b/mingw-w64-rubberband/PKGBUILD @@ -3,19 +3,19 @@ _realname=rubberband pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.8.1 -pkgrel=1 +pkgrel=2 pkgdesc="High quality software library for audio time-stretching and pitch-shifting. (mingw-w64)" arch=('any') url="http://breakfastquay.com/rubberband/" license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-vamp-plugin-sdk" + "${MINGW_PACKAGE_PREFIX}-fftw" "${MINGW_PACKAGE_PREFIX}-libsamplerate" "${MINGW_PACKAGE_PREFIX}-libsndfile" - "${MINGW_PACKAGE_PREFIX}-fftw" - "${MINGW_PACKAGE_PREFIX}-ladspa-sdk") -source=("http://code.breakfastquay.com/attachments/download/34/rubberband-$pkgver.tar.bz2" + "${MINGW_PACKAGE_PREFIX}-ladspa-sdk" + "${MINGW_PACKAGE_PREFIX}-vamp-plugin-sdk") +source=("http://code.breakfastquay.com/attachments/download/34/${_realname}-${pkgver}.tar.bz2" 01-mingw-shared.patch) md5sums=('6c2b4e18a714bcc297d0db81a10f9348' 'a8afbacb354ee668d1a2aa4035dc0914') @@ -41,5 +41,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-vamp-plugin-sdk/PKGBUILD b/mingw-w64-vamp-plugin-sdk/PKGBUILD index 28ab590d3c..7f2ec705f4 100644 --- a/mingw-w64-vamp-plugin-sdk/PKGBUILD +++ b/mingw-w64-vamp-plugin-sdk/PKGBUILD @@ -3,7 +3,7 @@ _realname=vamp-plugin-sdk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.5 -pkgrel=1 +pkgrel=2 pkgdesc="Vamp plugins extract descriptive information from audio data (mingw-w64)" arch=('any') url="http://www.vamp-plugins.org/" @@ -11,7 +11,7 @@ license=("BSD") options=('!buildflags') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libsndfile") -source=("http://code.soundsoftware.ac.uk/attachments/download/690/vamp-plugin-sdk-$pkgver.tar.gz" +source=("http://code.soundsoftware.ac.uk/attachments/download/690/vamp-plugin-sdk-${pkgver}.tar.gz" 01-mingw-shared.patch) md5sums=('199872997f74951f6769b982bf0d0646' '286ace365aff641d248fe2a0fa85d811') @@ -37,5 +37,5 @@ build() { package() { cd ${srcdir}/build-${MINGW_CHOST} - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-xalan-c/PKGBUILD b/mingw-w64-xalan-c/PKGBUILD index 698de85a15..64afe1d08f 100644 --- a/mingw-w64-xalan-c/PKGBUILD +++ b/mingw-w64-xalan-c/PKGBUILD @@ -1,19 +1,18 @@ # Maintainer: Alexey Pavlov _realname=xalan-c - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.11 -pkgrel=2 +pkgrel=3 pkgdesc="An XSLT processing library (mingw-w64)" arch=('any') url="http://xalan.apache.org/xalan-c" license=('APACHE') -makedepends=("sed" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-xerces-c=3.2.1" "${MINGW_PACKAGE_PREFIX}-tools") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-xerces-c=3.2.1") +makedepends=("sed" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-xerces-c=3.1.2" "${MINGW_PACKAGE_PREFIX}-tools") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-xerces-c=3.1.2") options=('!libtool' 'strip') -source=(http://apache.mirror.iphh.net/xalan/xalan-c/sources/xalan_c-$pkgver-src.tar.gz - mingw-w64-fix.patch) +source=(http://apache.mirror.iphh.net/xalan/xalan-c/sources/xalan_c-${pkgver}-src.tar.gz + mingw-w64-fix.patch) md5sums=('9227d3e7ab375da3c643934b33a585b8' '8be81685b5b6a0dda95a14d54ff888f4') diff --git a/mingw-w64-xerces-c/PKGBUILD b/mingw-w64-xerces-c/PKGBUILD index 99a848b669..44537899cf 100644 --- a/mingw-w64-xerces-c/PKGBUILD +++ b/mingw-w64-xerces-c/PKGBUILD @@ -3,15 +3,15 @@ _realname=xerces-c pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.1.2 -pkgrel=1 -pkgdesc="A validating XML parser written in a portable subset of C++. (mingw-w64)" +pkgrel=2 +pkgdesc="A validating XML parser written in a portable subset of C++ (mingw-w64)" arch=('any') url="http://xerces.apache.org/xerces-c" license=("APACHE") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") # "${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-icu" options=('staticlibs' 'strip') -source=("http://mirrors.sonic.net/apache/xerces/c/3/sources/xerces-c-$pkgver.tar.gz" +source=("http://mirrors.sonic.net/apache/xerces/c/3/sources/xerces-c-${pkgver}.tar.gz" 001-no-undefined.patch) md5sums=('9eb1048939e88d6a7232c67569b23985' '65846bed6ac34fdcc2dfbaf6245f37f6') @@ -37,5 +37,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } From 20d996c896fb92b13b125bb976e5267afb645cc0 Mon Sep 17 00:00:00 2001 From: Mark Laws Date: Sun, 19 Jul 2015 08:46:30 +0900 Subject: [PATCH 1297/2060] update pkgconf to 0.9.11 --- mingw-w64-pkgconf/0002-relocate.patch | 2 +- mingw-w64-pkgconf/PKGBUILD | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-pkgconf/0002-relocate.patch b/mingw-w64-pkgconf/0002-relocate.patch index fdf486c332..2872f52b4e 100644 --- a/mingw-w64-pkgconf/0002-relocate.patch +++ b/mingw-w64-pkgconf/0002-relocate.patch @@ -2,7 +2,7 @@ diff -Naur pkgconf-0.9.7-orig/configure.ac pkgconf-0.9.7/configure.ac --- pkgconf-0.9.7-orig/configure.ac 2014-06-08 00:32:08.000000000 +0400 +++ pkgconf-0.9.7/configure.ac 2014-08-08 14:31:00.604400000 +0400 @@ -15,6 +15,7 @@ - AC_INIT([pkgconf], [0.9.7], [http://github.com/pkgconf/pkgconf/issues]) + AC_INIT([pkgconf], [0.9.11], [http://github.com/pkgconf/pkgconf/issues]) AC_CONFIG_SRCDIR([pkg.c]) AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_MACRO_DIR([m4]) diff --git a/mingw-w64-pkgconf/PKGBUILD b/mingw-w64-pkgconf/PKGBUILD index b54f615ac6..4be19bf032 100644 --- a/mingw-w64-pkgconf/PKGBUILD +++ b/mingw-w64-pkgconf/PKGBUILD @@ -2,7 +2,7 @@ _realname=pkgconf pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.7 +pkgver=0.9.11 pkgrel=2 pkgdesc='pkg-config compatible utility which does not depend on glib' url='https://github.com/nenolod/pkgconf' @@ -14,8 +14,8 @@ conflicts=("${MINGW_PACKAGE_PREFIX}-pkg-config") provides=("${MINGW_PACKAGE_PREFIX}-pkg-config") source=(http://rabbit.dereferenced.org/~nenolod/distfiles//$_realname-$pkgver.tar.bz2 0002-relocate.patch) -sha256sums=('afd2675d3cf39741906ab08e86421381271d67122a8a401d3a0fe59ad46af493' - 'f8579642f97be9a5a04714dfe979081b698045d01dd4035b96e8266120d74a50') +sha256sums=('3bdae1b2672133943dc0dda694ed57074f8b03c3fea10efb215d76d3cabe2c3b' + 'b208aa88b3ab7be8425819f83ccf2ec1d3befc35b9e7b3de3a686d0e6812c0c8') prepare() { cd $_realname-$pkgver From bb1f796c29ea64a0e6be3530d4f3276afa40bcfd Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 17 Jul 2015 16:20:47 +0100 Subject: [PATCH 1298/2060] nspr: Build in CARCH build directories --- mingw-w64-nspr/PKGBUILD | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/mingw-w64-nspr/PKGBUILD b/mingw-w64-nspr/PKGBUILD index 5d03706a4c..d49c2c387b 100644 --- a/mingw-w64-nspr/PKGBUILD +++ b/mingw-w64-nspr/PKGBUILD @@ -42,16 +42,15 @@ prepare() { } build() { - #mkdir -p ${srcdir}/build-${MINGW_CHOST} - #cd ${srcdir}/build-${MINGW_CHOST} - cd ${srcdir}/${_realname}-${pkgver} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} if [ "$CARCH" = "x86_64" ]; then _confflags="--enable-64bit" else _confflags="" fi - ./nspr/configure \ + "${srcdir}"/${_realname}-${pkgver}/nspr/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -65,8 +64,8 @@ build() { } package() { - cd ${srcdir}/${_realname}-${pkgver} - PATH="$PATH:${srcdir}/${_realname}-${pkgver}" make DESTDIR="$pkgdir" install + cd "${srcdir}"/build-${CARCH} + PATH="$PATH:${srcdir}/moztools/bin:$PWD" make DESTDIR="$pkgdir" install mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ @@ -74,5 +73,5 @@ package() { rm -r ${pkgdir}${MINGW_PREFIX}/bin/{compile-et.pl,prerr.properties} \ ${pkgdir}${MINGW_PREFIX}/include/nspr/md - install -Dm644 nspr/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 "${srcdir}"/${_realname}-${pkgver}/nspr/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From a71173422024970b525befe6e052f03f2e455a52 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 19 Jul 2015 10:56:45 +0100 Subject: [PATCH 1299/2060] mingw-w64-tools-git: widl: Relocate DEFAULT_INCLUDE_DIR --- ...01-widl-Relocate-DEFAULT_INCLUDE_DIR.patch | 768 ++++++++++++++++++ mingw-w64-tools-git/PKGBUILD | 13 +- 2 files changed, 778 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-tools-git/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch diff --git a/mingw-w64-tools-git/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch b/mingw-w64-tools-git/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch new file mode 100644 index 0000000000..bebdc69eb3 --- /dev/null +++ b/mingw-w64-tools-git/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch @@ -0,0 +1,768 @@ +From 807e422aeb7e6c803edd07298b693a8e72a7158f Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 18 Jul 2015 13:53:41 +0100 +Subject: [PATCH] widl: Relocate DEFAULT_INCLUDE_DIR + +--- + mingw-w64-tools/widl/Makefile.am | 6 +- + mingw-w64-tools/widl/Makefile.in | 26 +- + mingw-w64-tools/widl/include/pathtools.h | 53 +++ + mingw-w64-tools/widl/src/pathtools.c | 547 +++++++++++++++++++++++++++++++ + mingw-w64-tools/widl/src/widl.c | 14 +- + 5 files changed, 640 insertions(+), 6 deletions(-) + create mode 100644 mingw-w64-tools/widl/include/pathtools.h + create mode 100644 mingw-w64-tools/widl/src/pathtools.c + +diff --git a/mingw-w64-tools/widl/Makefile.am b/mingw-w64-tools/widl/Makefile.am +index 44013fe..1e348c7 100644 +--- a/mingw-w64-tools/widl/Makefile.am ++++ b/mingw-w64-tools/widl/Makefile.am +@@ -36,6 +36,7 @@ widl_SOURCES = src/widl.h \ + src/wpp/ppy.tab.c \ + src/wpp/preproc.c \ + src/wpp/wpp.c \ ++ src/pathtools.c \ + include/pshpack1.h \ + include/pshpack2.h \ + include/winbase.h \ +@@ -54,9 +55,10 @@ widl_SOURCES = src/widl.h \ + include/pshpack4.h \ + include/winnt.h \ + include/winnls.h \ ++ include/pathtools.h \ + include/winnt.rh + +-widl_CPPFLAGS = -I$(top_srcdir)/include -DDEFAULT_INCLUDE_DIR=\"$(includedir)/../$(target)/include\" +-widl_CFLAGS = -O3 -g -Wall -Wformat -Wpacked -Wmissing-declarations -Wimplicit-function-declaration -Wmissing-prototypes -Wstrict-aliasing=2 ++widl_CPPFLAGS = -I$(top_srcdir)/include -DDEFAULT_INCLUDE_DIR=\"$(includedir)/../$(target)/include\" -DDEFAULT_BINDIR=\"$(bindir)\" ++widl_CFLAGS = -Wall -Wformat -Wpacked -Wmissing-declarations -Wimplicit-function-declaration -Wmissing-prototypes -Wstrict-aliasing=2 + + DISTCHECK_CONFIGURE_FLAGS = --host=$(host) --target=$(target) +diff --git a/mingw-w64-tools/widl/Makefile.in b/mingw-w64-tools/widl/Makefile.in +index 013ccf0..d76c66c 100644 +--- a/mingw-w64-tools/widl/Makefile.in ++++ b/mingw-w64-tools/widl/Makefile.in +@@ -85,7 +85,8 @@ am_widl_OBJECTS = src/widl-client.$(OBJEXT) src/widl-expr.$(OBJEXT) \ + src/widl-typetree.$(OBJEXT) src/widl-utils.$(OBJEXT) \ + src/widl-widl.$(OBJEXT) src/widl-write_msft.$(OBJEXT) \ + src/wpp/widl-ppl.yy.$(OBJEXT) src/wpp/widl-ppy.tab.$(OBJEXT) \ +- src/wpp/widl-preproc.$(OBJEXT) src/wpp/widl-wpp.$(OBJEXT) ++ src/wpp/widl-preproc.$(OBJEXT) src/wpp/widl-wpp.$(OBJEXT) \ ++ src/widl-pathtools.$(OBJEXT) + widl_OBJECTS = $(am_widl_OBJECTS) + widl_LDADD = $(LDADD) + widl_LINK = $(CCLD) $(widl_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ +@@ -262,6 +263,7 @@ widl_SOURCES = src/widl.h \ + src/wpp/ppy.tab.c \ + src/wpp/preproc.c \ + src/wpp/wpp.c \ ++ src/pathtools.c \ + include/pshpack1.h \ + include/pshpack2.h \ + include/winbase.h \ +@@ -280,10 +282,11 @@ widl_SOURCES = src/widl.h \ + include/pshpack4.h \ + include/winnt.h \ + include/winnls.h \ ++ include/pathtools.h \ + include/winnt.rh + +-widl_CPPFLAGS = -I$(top_srcdir)/include -DDEFAULT_INCLUDE_DIR=\"$(includedir)/../$(target)/include\" +-widl_CFLAGS = -O3 -g -Wall -Wformat -Wpacked -Wmissing-declarations -Wimplicit-function-declaration -Wmissing-prototypes -Wstrict-aliasing=2 ++widl_CPPFLAGS = -I$(top_srcdir)/include -DDEFAULT_INCLUDE_DIR=\"$(includedir)/../$(target)/include\" -DDEFAULT_BINDIR=\"$(bindir)\" ++widl_CFLAGS = -Wall -Wformat -Wpacked -Wmissing-declarations -Wimplicit-function-declaration -Wmissing-prototypes -Wstrict-aliasing=2 + DISTCHECK_CONFIGURE_FLAGS = --host=$(host) --target=$(target) + all: all-am + +@@ -440,6 +443,8 @@ src/wpp/widl-preproc.$(OBJEXT): src/wpp/$(am__dirstamp) \ + src/wpp/$(DEPDIR)/$(am__dirstamp) + src/wpp/widl-wpp.$(OBJEXT): src/wpp/$(am__dirstamp) \ + src/wpp/$(DEPDIR)/$(am__dirstamp) ++src/widl-pathtools.$(OBJEXT): src/$(am__dirstamp) \ ++ src/$(DEPDIR)/$(am__dirstamp) + widl$(EXEEXT): $(widl_OBJECTS) $(widl_DEPENDENCIES) $(EXTRA_widl_DEPENDENCIES) + @rm -f widl$(EXEEXT) + $(widl_LINK) $(widl_OBJECTS) $(widl_LDADD) $(LIBS) +@@ -459,6 +464,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-header.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-parser.tab.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-parser.yy.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-pathtools.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-proxy.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-register.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-server.Po@am__quote@ +@@ -800,6 +806,20 @@ src/wpp/widl-wpp.obj: src/wpp/wpp.c + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/wpp/widl-wpp.obj `if test -f 'src/wpp/wpp.c'; then $(CYGPATH_W) 'src/wpp/wpp.c'; else $(CYGPATH_W) '$(srcdir)/src/wpp/wpp.c'; fi` + ++src/widl-pathtools.o: src/pathtools.c ++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-pathtools.o -MD -MP -MF src/$(DEPDIR)/widl-pathtools.Tpo -c -o src/widl-pathtools.o `test -f 'src/pathtools.c' || echo '$(srcdir)/'`src/pathtools.c ++@am__fastdepCC_TRUE@ $(am__mv) src/$(DEPDIR)/widl-pathtools.Tpo src/$(DEPDIR)/widl-pathtools.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/pathtools.c' object='src/widl-pathtools.o' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-pathtools.o `test -f 'src/pathtools.c' || echo '$(srcdir)/'`src/pathtools.c ++ ++src/widl-pathtools.obj: src/pathtools.c ++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-pathtools.obj -MD -MP -MF src/$(DEPDIR)/widl-pathtools.Tpo -c -o src/widl-pathtools.obj `if test -f 'src/pathtools.c'; then $(CYGPATH_W) 'src/pathtools.c'; else $(CYGPATH_W) '$(srcdir)/src/pathtools.c'; fi` ++@am__fastdepCC_TRUE@ $(am__mv) src/$(DEPDIR)/widl-pathtools.Tpo src/$(DEPDIR)/widl-pathtools.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/pathtools.c' object='src/widl-pathtools.obj' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-pathtools.obj `if test -f 'src/pathtools.c'; then $(CYGPATH_W) 'src/pathtools.c'; else $(CYGPATH_W) '$(srcdir)/src/pathtools.c'; fi` ++ + ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ +diff --git a/mingw-w64-tools/widl/include/pathtools.h b/mingw-w64-tools/widl/include/pathtools.h +new file mode 100644 +index 0000000..139b7c2 +--- /dev/null ++++ b/mingw-w64-tools/widl/include/pathtools.h +@@ -0,0 +1,53 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#ifndef PATHTOOLS_H ++#define PATHTOOLS_H ++ ++#include ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++ ++char * malloc_copy_string(char const * original); ++ ++/* In-place replaces any '\' with '/' and any '//' with '/' */ ++void sanitise_path(char * path); ++ ++/* Uses a host OS specific function to determine the path of the executable, ++ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ ++int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ ++/* Where possible, in-place removes occourances of '.' and 'path/..' */ ++void simplify_path(char * path); ++ ++/* Allocates (via malloc) and returns the path to get from from to to. */ ++char * get_relative_path(char const * from, char const * to); ++ ++size_t split_path_list(char const * path_list, char split_char, char *** arr); ++ ++/* Advances path along by the amount that removes n prefix folders. */ ++char const * ++strip_n_prefix_folders(char const * path, size_t n); ++ ++/* NULL terminates path to remove n suffix folders. */ ++void ++strip_n_suffix_folders(char * path, size_t n); ++ ++char const * get_relocated_path (char const * from, char const * to, char const * actual_from); ++char * get_relocated_path_list(char const * from, char const * to_path_list); ++ ++char * single_path_relocation(const char *from, const char *to); ++char * pathlist_relocation(const char *from_path, const char *to_path_list); ++ ++#endif /* PATHTOOLS_H */ +diff --git a/mingw-w64-tools/widl/src/pathtools.c b/mingw-w64-tools/widl/src/pathtools.c +new file mode 100644 +index 0000000..d150cd3 +--- /dev/null ++++ b/mingw-w64-tools/widl/src/pathtools.c +@@ -0,0 +1,547 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++#include ++#endif ++#include ++ ++/* If you don't define this, then get_executable_path() ++ can only use argv[0] which will often not work well */ ++#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH ++ ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++/* Nothing needed, unistd.h is enough. */ ++#elif defined(__APPLE__) ++#include ++#elif defined(_WIN32) ++// widl can't include the normal Windows headers due to providing its own winnt.h (and others). ++#ifdef __x86_64__ ++__attribute__((dllimport)) long GetModuleFileNameA (long hModule, void* lpFilename, long nSize); ++#else ++__attribute__((dllimport)) long __attribute__((__stdcall__)) GetModuleFileNameA (long hModule, void* lpFilename, long nSize); ++#endif ++#endif ++#else ++#define PATH_MAX 260 ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ ++#include "pathtools.h" ++ ++char * ++malloc_copy_string(char const * original) ++{ ++ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); ++ if (result != NULL) ++ { ++ strcpy (result, original); ++ } ++ return result; ++} ++ ++void ++sanitise_path(char * path) ++{ ++ size_t path_size = strlen (path); ++ ++ /* Replace any '\' with '/' */ ++ char * path_p = path; ++ while ((path_p = strchr (path_p, '\\')) != NULL) ++ { ++ *path_p = '/'; ++ } ++ /* Replace any '//' with '/' */ ++ path_p = path; ++ while ((path_p = strstr (path_p, "//")) != NULL) ++ { ++ memmove (path_p, path_p + 1, path_size--); ++ } ++ return; ++} ++ ++char * ++get_relative_path(char const * from_in, char const * to_in) ++{ ++ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); ++ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); ++ size_t max_size = (from_size + to_size) * 2 + 4; ++ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); ++ char * from; ++ char * to; ++ char * common_part; ++ char * result; ++ size_t count; ++ ++ /* No to, return "./" */ ++ if (to_in == NULL) ++ { ++ return malloc_copy_string ("./"); ++ } ++ ++ /* If alloca failed or no from was given return a copy of to */ ++ if ( from_in == NULL ++ || scratch_space == NULL ) ++ { ++ return malloc_copy_string (to_in); ++ } ++ ++ from = scratch_space; ++ strcpy (from, from_in); ++ to = from + from_size + 1; ++ strcpy (to, to_in); ++ common_part = to + to_size + 1; ++ result = common_part + max_size; ++ simplify_path (from); ++ simplify_path (to); ++ ++ result[0] = '\0'; ++ ++ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ ++ size_t match_size = 0; /* The running (and final) match size. */ ++ size_t largest_size = (from_size > to_size) ? from_size : to_size; ++ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; ++ char from_c; ++ char to_c; ++ for (match_size = 0; match_size < largest_size; ++match_size) ++ { ++ /* To simplify the logic, always pretend the strings end with '/' */ ++ from_c = (match_size < from_size) ? from[match_size] : '/'; ++ to_c = (match_size < to_size) ? to[match_size] : '/'; ++ ++ if (from_c != to_c) ++ { ++ if (from_c != '\0' || to_c != '\0') ++ { ++ match_size = match_size_dirsep; ++ } ++ break; ++ } ++ else if (from_c == '/') ++ { ++ match_size_dirsep = match_size; ++ } ++ } ++ strncpy (common_part, from, match_size); ++ common_part[match_size] = '\0'; ++ from += match_size; ++ to += match_size; ++ size_t ndotdots = 0; ++ char const* from_last = from + strlen(from) - 1; ++ while ((from = strchr (from, '/')) && from != from_last) ++ { ++ ++ndotdots; ++ ++from; ++ } ++ for (count = 0; count < ndotdots; ++count) ++ { ++ strcat(result, "../"); ++ } ++ if (strlen(to) > 0) ++ { ++ strcat(result, to+1); ++ } ++ /* Make sure that if to ends with '/' result does the same, and ++ vice-versa. */ ++ size_t size_result = strlen(result); ++ if ((to_final_is_slash == 1) ++ && (!size_result || result[size_result-1] != '/')) ++ { ++ strcat (result, "/"); ++ } ++ else if (!to_final_is_slash ++ && size_result && result[size_result-1] == '/') ++ { ++ result[size_result-1] = '\0'; ++ } ++ ++ return malloc_copy_string (result); ++} ++ ++void ++simplify_path(char * path) ++{ ++ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ ++ ssize_t i, j; ++ size_t tok_size; ++ size_t in_size = strlen (path); ++ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; ++ char * result = path; ++ sanitise_path(result); ++ char * result_p = result; ++ ++ do ++ { ++ ++n_toks; ++ ++result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ result_p = result; ++ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); ++ n_toks = 0; ++ do ++ { ++ if (result_p > result) ++ { ++ *result_p++ = '\0'; ++ } ++ else if (*result_p == '/') ++ { ++ /* A leading / creates an empty initial token. */ ++ toks[n_toks++] = result_p; ++ *result_p++ = '\0'; ++ } ++ toks[n_toks++] = result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ /* Remove all non-leading '.' and any '..' we can match ++ with an earlier forward path (i.e. neither '.' nor '..') */ ++ for (i = 1; i < n_toks; ++i) ++ { ++ int removals[2] = { -1, -1 }; ++ if ( strcmp (toks[i], "." ) == 0) ++ { ++ removals[0] = i; ++ } ++ else if ( strcmp (toks[i], ".." ) == 0) ++ { ++ /* Search backwards for a forward path to collapse. ++ If none are found then the .. also stays. */ ++ for (j = i - 1; j > -1; --j) ++ { ++ if ( strcmp (toks[j], "." ) ++ && strcmp (toks[j], ".." ) ) ++ { ++ removals[0] = j; ++ removals[1] = i; ++ break; ++ } ++ } ++ } ++ for (j = 0; j < 2; ++j) ++ { ++ if (removals[j] >= 0) /* Can become -2 */ ++ { ++ --n_toks; ++ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); ++ --i; ++ if (!j) ++ { ++ --removals[1]; ++ } ++ } ++ } ++ } ++ result_p = result; ++ for (i = 0; i < n_toks; ++i) ++ { ++ tok_size = strlen(toks[i]); ++ memcpy (result_p, toks[i], tok_size); ++ result_p += tok_size; ++ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) ++ { ++ *result_p = '/'; ++ ++result_p; ++ } ++ } ++ *result_p = '\0'; ++} ++ ++/* Returns actual_to by calculating the relative path from -> to and ++ applying that to actual_from. An assumption that actual_from is a ++ dir is made, and it may or may not end with a '/' */ ++char const * ++get_relocated_path (char const * from, char const * to, char const * actual_from) ++{ ++ char const * relative_from_to = get_relative_path (from, to); ++ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); ++ return actual_to; ++} ++ ++int ++get_executable_path(char const * argv0, char * result, ssize_t max_size) ++{ ++ char * system_result = (char *) alloca (max_size); ++ ssize_t system_result_size = -1; ++ ssize_t result_size = -1; ++ ++ if (system_result != NULL) ++ { ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++ system_result_size = readlink("/proc/self/exe", system_result, max_size); ++#elif defined(__APPLE__) ++ uint32_t bufsize = (uint32_t)max_size; ++ if (_NSGetExecutablePath(system_result, &bufsize) == 0) ++ { ++ system_result_size = (ssize_t)bufsize; ++ } ++#elif defined(_WIN32) ++ unsigned long bufsize = (unsigned long)max_size; ++ system_result_size = GetModuleFileNameA(0, system_result, bufsize); ++ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) ++ { ++ /* Error, possibly not enough space. */ ++ system_result_size = -1; ++ } ++ else ++ { ++ /* Early conversion to unix slashes instead of more changes ++ everywhere else .. */ ++ char * winslash; ++ system_result[system_result_size] = '\0'; ++ while ((winslash = strchr (system_result, '\\')) != NULL) ++ { ++ *winslash = '/'; ++ } ++ } ++#else ++#warning "Don't know how to get executable path on this system" ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ } ++ /* Use argv0 as a default in-case of failure */ ++ if (system_result_size != -1) ++ { ++ strncpy (result, system_result, system_result_size); ++ result[system_result_size] = '\0'; ++ } ++ else ++ { ++ if (argv0 != NULL) ++ { ++ strncpy (result, argv0, max_size); ++ char *slash; ++ while ((slash = strchr(result, '\\')) != NULL) { ++ *slash++ = '/'; ++ } ++ result[max_size-1] = '\0'; ++ } ++ else ++ { ++ result[0] = '\0'; ++ } ++ } ++ result_size = strlen (result); ++ return result_size; ++} ++ ++char const * ++strip_n_prefix_folders(char const * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return NULL; ++ } ++ ++ if (path[0] != '/') ++ { ++ return path; ++ } ++ ++ char const * last = path; ++ while (n-- && path != NULL) ++ { ++ last = path; ++ path = strchr (path + 1, '/'); ++ } ++ return (path == NULL) ? last : path; ++} ++ ++void ++strip_n_suffix_folders(char * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return; ++ } ++ while (n--) ++ { ++ if (strrchr (path + 1, '/')) ++ { ++ *strrchr (path + 1, '/') = '\0'; ++ } ++ else ++ { ++ return; ++ } ++ } ++ return; ++} ++ ++size_t ++split_path_list(char const * path_list, char split_char, char *** arr) ++{ ++ size_t path_count; ++ size_t path_list_size; ++ char const * path_list_p; ++ ++ path_list_p = path_list; ++ if (path_list == NULL || path_list[0] == '\0') ++ { ++ return 0; ++ } ++ path_list_size = strlen (path_list); ++ ++ path_count = 0; ++ do ++ { ++ ++path_count; ++ ++path_list_p; ++ } ++ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); ++ ++ /* allocate everything in one go. */ ++ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); ++ if (all_memory == NULL) ++ return 0; ++ *arr = (char **)all_memory; ++ all_memory += sizeof (char *) * path_count; ++ ++ path_count = 0; ++ path_list_p = path_list; ++ char const * next_path_list_p = 0; ++ do ++ { ++ next_path_list_p = strchr (path_list_p, split_char); ++ if (next_path_list_p != NULL) ++ { ++ ++next_path_list_p; ++ } ++ size_t this_size = (next_path_list_p != NULL) ++ ? next_path_list_p - path_list_p - 1 ++ : &path_list[path_list_size] - path_list_p; ++ memcpy (all_memory, path_list_p, this_size); ++ all_memory[this_size] = '\0'; ++ (*arr)[path_count++] = all_memory; ++ all_memory += this_size + 1; ++ } while ((path_list_p = next_path_list_p) != NULL); ++ ++ return path_count; ++} ++ ++char * ++get_relocated_path_list(char const * from, char const * to_path_list) ++{ ++ char exe_path[PATH_MAX]; ++ char * temp; ++ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ if ((temp = strrchr (exe_path, '/')) != NULL) ++ { ++ temp[1] = '\0'; ++ } ++ ++ char **arr = NULL; ++ /* Ask Alexey why he added this. Are we not 100% sure ++ that we're dealing with unix paths here? */ ++ char split_char = ':'; ++ if (strchr (to_path_list, ';')) ++ { ++ split_char = ';'; ++ } ++ size_t count = split_path_list (to_path_list, split_char, &arr); ++ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ ++ size_t exe_path_size = strlen (exe_path); ++ size_t i; ++ /* Space required is: ++ count * (exe_path_size + strlen (rel_to_datadir)) ++ rel_to_datadir upper bound is: ++ (count * strlen (from)) + (3 * num_slashes (from)) ++ + strlen(arr[i]) + 1. ++ .. pathalogically num_slashes (from) is strlen (from) ++ (from = ////////) */ ++ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; ++ for (i = 0; i < count; ++i) ++ { ++ space_required += strlen (arr[i]); ++ } ++ char * scratch = (char *) alloca (space_required); ++ if (scratch == NULL) ++ return NULL; ++ for (i = 0; i < count; ++i) ++ { ++ char * rel_to_datadir = get_relative_path (from, arr[i]); ++ scratch[0] = '\0'; ++ arr[i] = scratch; ++ strcat (scratch, exe_path); ++ strcat (scratch, rel_to_datadir); ++ simplify_path (arr[i]); ++ size_t arr_i_size = strlen (arr[i]); ++ result_size += arr_i_size; ++ scratch = arr[i] + arr_i_size + 1; ++ } ++ char * result = (char *) malloc (result_size); ++ if (result == NULL) ++ { ++ return NULL; ++ } ++ result[0] = '\0'; ++ for (i = 0; i < count; ++i) ++ { ++ strcat (result, arr[i]); ++ if (i != count-1) ++ { ++#if defined(_WIN32) ++ strcat (result, ";"); ++#else ++ strcat (result, ":"); ++#endif ++ } ++ } ++ free ((void*)arr); ++ return result; ++} ++ ++char * ++single_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} +diff --git a/mingw-w64-tools/widl/src/widl.c b/mingw-w64-tools/widl/src/widl.c +index dfe2341..51186d1 100644 +--- a/mingw-w64-tools/widl/src/widl.c ++++ b/mingw-w64-tools/widl/src/widl.c +@@ -42,6 +42,7 @@ + #include "parser.h" + #include "wine/wpp.h" + #include "header.h" ++#include "pathtools.h" + + /* future options to reserve characters for: */ + /* A = ACF input filename */ +@@ -540,6 +541,7 @@ int main(int argc,char *argv[]) + int opti = 0; + char *output_name = NULL; + ++ + signal( SIGTERM, exit_on_signal ); + signal( SIGINT, exit_on_signal ); + #ifdef SIGHUP +@@ -695,7 +697,17 @@ int main(int argc,char *argv[]) + } + + #ifdef DEFAULT_INCLUDE_DIR +- wpp_add_include_path(DEFAULT_INCLUDE_DIR); ++ char exe_path[PATH_MAX]; ++ get_executable_path (argv[0], &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ char * rel_to_includedir = get_relative_path (DEFAULT_BINDIR, DEFAULT_INCLUDE_DIR); ++ if (strrchr (exe_path, '/') != NULL) { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char relocated_default_include_dir[PATH_MAX]; ++ strcpy (relocated_default_include_dir, exe_path); ++ strcat (relocated_default_include_dir, rel_to_includedir); ++ simplify_path (&relocated_default_include_dir[0]); ++ wpp_add_include_path(relocated_default_include_dir); + #endif + + /* if nothing specified, try to guess output type from the output file name */ +-- +2.4.5 + diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index 061b1c6ae0..3f8f67e4a6 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.0.0.4509.2e5a9a2 +pkgver=5.0.0.4520.f3f8cd3 pkgrel=1 pkgdesc="MinGW-w64 tools" arch=('any') @@ -15,8 +15,10 @@ groups=("${MINGW_PACKAGE_PREFIX}-toolchain") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libmangle") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' '!emptydirs') -source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=('SKIP') +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" + "0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch") +md5sums=('SKIP' + '4881e9b6cb7640e3542f45b88bd53a5e') _tools="gendef genidl genpeimg widl" # genstubdll pkgver() { @@ -27,6 +29,11 @@ pkgver() { printf "%s.%s.%s.%s.%s" ${_major} ${_minor} ${_rev} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } +prepare() { + cd "$srcdir/mingw-w64" + git am "$srcdir/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch" +} + build() { local cur= for cur in ${_tools}; do From 42f7e6b1fca2d71f2d3e5b23bd95d217d9956c63 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 19 Jul 2015 19:58:01 +0100 Subject: [PATCH 1300/2060] firefox: Test commit for CanadianBaconato He wants to see how buildbot reacts .. --- .../0006-Fix-pointer-casting.patch | 11 +++++ mingw-w64-firefox/PKGBUILD | 46 +++++++++++++++---- 2 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 mingw-w64-firefox/0006-Fix-pointer-casting.patch diff --git a/mingw-w64-firefox/0006-Fix-pointer-casting.patch b/mingw-w64-firefox/0006-Fix-pointer-casting.patch new file mode 100644 index 0000000000..040820e2ee --- /dev/null +++ b/mingw-w64-firefox/0006-Fix-pointer-casting.patch @@ -0,0 +1,11 @@ +--- firefox-39.0/security/sandbox/chromium/base/win/pe_image.h.orig 2015-06-30 23:57:54.000000000 +0100 ++++ firefox-39.0/security/sandbox/chromium/base/win/pe_image.h 2015-07-19 19:49:17.704118900 +0100 +@@ -247,7 +247,7 @@ + } + + inline WORD PEImage::ToOrdinal(LPCSTR name) { +- return reinterpret_cast(name); ++ return static_cast(reinterpret_cast(name)); + } + + inline HMODULE PEImage::module() const { diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index 5b62326f21..53b87a3c97 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -63,9 +63,9 @@ #_make="make.exe" _make="mingw32-make.exe" #_python="/usr/bin/python2.7.exe" -#_python="${MINGW_PREFIX}/bin/python2.7.exe" +_python="${MINGW_PREFIX}/bin/python2.7.exe" #_python="/c/Python27/python.exe" -_python="/e/WinProgF/Python27/python.exe" +#_python="/e/WinProgF/Python27/python.exe" path_conv_for_make() { if [ "${_make}" = "mingw32-make.exe" ]; then echo $(cygpath -m "${1}") @@ -87,11 +87,14 @@ makedepends=('unzip' 'zip' "${MINGW_PACKAGE_PREFIX}-yasm") source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/source/${_realname}-${pkgver}.source.tar.bz2" + "http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/moztools-static.zip" + manifest "0001-Allow-MSYS2-shell.patch" "0002-Allow-MSYS2-make.patch" "0003-Use-PYTHON-env-var.patch" "0004-Allow-MSYS2-python.patch" "0005-Allow-mingw-w64-python.patch" + "0006-Fix-pointer-casting.patch" "debugging.patch" "mozconfig.x86_64" "mozconfig.i686" @@ -99,11 +102,14 @@ source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/ "config.guess") noextract=("${_realname}-${pkgver}.source.tar.bz2") sha1sums=('32785daee7ddb9da8d7509ef095258fc58fe838e' + '6c018e4ac903180f5f65492241502842dc1c035a' + 'c4e841bf724a1ff907592c8a11ba9683568acfd5' '1c0810fbfd6f336eec81e236c89c6c9ca0e79290' 'c269337da604ab047de5dea088dbbe8f547dfbea' '2fd8904f036d2515e314b3d7510d8358add298d2' 'c06e3e351cb3d29148e0d477ad50b70973baf8be' - '1158054796bf8f26bf0d9ee97d5afbb533c5e39a' + '4883d29fefd5c25d4892091bf6a45572f3d7aca4' + '61de9dea3b9136303c7371b8980e5b293c4b46c8' 'c2a0ed20a82d212bb4aa84cb2f294be3ba0bb859' 'f437cc5a819788b63d8d9202290f516a85e9f6a2' 'f6da0857f310788c4a23d158bf03a93ab11230b7' @@ -114,13 +120,17 @@ prepare() { [ -d "${srcdir}"/${_realname}-${pkgver} ] && rm -rf ${_realname}-${pkgver} tar -xf "${srcdir}"/${_realname}-${pkgver}.source.tar.bz2 || true if [ -d "${srcdir}"/mozilla-beta ]; then - mv "${srcdir}"/mozilla-beta "${srcdir}"/${_realname}-${pkgver} + _archivedir="mozilla-beta" elif [ -d "${srcdir}"/mozilla-release ]; then - mv "${srcdir}"/mozilla-release "${srcdir}"/${_realname}-${pkgver} + _archivedir="mozilla-release" else echo "Can't find sources!" exit 1 fi + # Getting a lot of "mv: cannot move .. Permission denied", try a bit of sleeping. Yuck. + sleep 1 + mv "${srcdir}"/"${_archivedir}" "${srcdir}"/${_realname}-${pkgver} || (sleep 1 && mv "${srcdir}"/"${_archivedir}" "${srcdir}"/${_realname}-${pkgver}) + cd "${srcdir}"/${_realname}-${pkgver} # Mostly this patch is about msys2-python and mingw-w64-python not # working with virtualenv. Really it needs splitting into two, one @@ -136,11 +146,15 @@ prepare() { patch -p1 -i "${srcdir}"/0004-Allow-MSYS2-python.patch fi patch -p1 -i "${srcdir}"/0005-Allow-mingw-w64-python.patch + patch -p1 -i "${srcdir}"/0006-Fix-pointer-casting.patch patch -p1 -i "${srcdir}"/debugging.patch find . -name config.sub -exec cp "${srcdir}"/config.sub {} \; find . -name config.guess -exec cp "${srcdir}"/config.guess {} \; - (autoconf-2.13 && cd js/src && autoconf-2.13) + autoconf-2.13 && cd js/src && autoconf-2.13 + + cp ${srcdir}/moztools/bin/nsinstall.exe . + cp ${srcdir}/manifest nsinstall.exe.manifest } build() { @@ -153,13 +167,18 @@ build() { [ -d ${_builddir} ] && rm -rf "${_builddir}" mkdir ${_builddir} cp "${srcdir}"/mozconfig.${CARCH} ${_builddir}/.mozconfig - export PYTHON="${_python}" + export PYTHON=$(path_conv_for_make "${_python}") + echo $PYTHON export MOZCONFIG=${PWD}/${_builddir}/.mozconfig # See: https://bugzilla.mozilla.org/show_bug.cgi?id=950332 echo "mk_add_options MOZ_OBJDIR=$(path_conv_for_make ${PWD}/${_builddir})" >> ${_builddir}/.mozconfig - export MIDL=${MINGW_PREFIX}/bin/widl.exe + export MIDL="${MINGW_PREFIX}/bin/widl.exe -I ${MINGW_PREFIX}/${CARCH}-w64-mingw32/include" export MOZ_TOOLS=${MINGW_PREFIX} + export MAKEFLAGS=-j1 + # .. make a shell script so we can easily recreate the build environment while + # developing this PKGBUILD. + set set |awk ' BEGIN { _p = 1; } $0~/^[^ ]+ \(\)/ { _p = 0; } @@ -168,9 +187,16 @@ build() { ' |sed -r -e '/^BASH_(ARGC|ARGV|LINENO|SOURCE|VERSINFO)=/d; /^(UID|EUID)=/d; /^(FUNCNAME|GROUPS|PPID|SHELLOPTS|BASHOPTS)=/d;' > ./env-${CARCH}.sh + echo "export PYTHON MOZCONFIG MIDL MOZ_TOOLS CPPFLAGS CFLAGS CXXFLAGS MAKEFLAGS" >> ./env-${CARCH}.sh - "${_make}" -f client.mk configure - "${_make}" -f client.mk build + "${_make}" -f $PWD/client.mk configure + # We need nsinstall.exe +# pushd "${_builddir}"/config +# # cd src/firefox-39.0/ ; source env-x86_64.sh ; cd obj-x86_64-w64-mingw32/config/; "${_make}" -f $PWD/../../client.mk build +# "${_make}" -f $PWD/../../client.mk build NSINSTALL=${srcdir}/moztools/bin/nsinstall.exe +# "${_make}" -f $PWD/../../client.mk install NSINSTALL=${srcdir}/moztools/bin/nsinstall.exe +# popd + "${_make}" -f $PWD/client.mk build NSINSTALL=${srcdir}/moztools/bin/nsinstall.exe } check() { From 4293803a24210825d9769867fb115893b9f09e61 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 20 Jul 2015 00:49:34 +0300 Subject: [PATCH 1301/2060] === Rebuild with GCC-5.x. Part XIV === --- mingw-w64-FreeImage/PKGBUILD | 2 +- mingw-w64-allegro/PKGBUILD | 2 +- mingw-w64-apr-util/PKGBUILD | 2 +- mingw-w64-apr/PKGBUILD | 8 +- mingw-w64-aria2/PKGBUILD | 4 +- mingw-w64-armadillo/PKGBUILD | 15 +-- mingw-w64-arpack/PKGBUILD | 19 +-- mingw-w64-astyle/PKGBUILD | 2 +- mingw-w64-badvpn/PKGBUILD | 17 +-- mingw-w64-box2d/PKGBUILD | 14 ++- ...INARY-redefinition-warning-on-Cygwin.patch | 42 ------- ...04-Remove-local-copy-of-curl-headers.patch | 4 +- .../0013-Add-symsrv_convert.patch | 4 +- ...USE_MINGW_ANSI_STDIO-for-MinGW-build.patch | 6 +- ...google-breakpad-0.1.svn.1413-libtool.patch | 50 ++++---- .../0028-pecoff-fix-assign-const.patch | 13 +++ mingw-w64-breakpad-svn/PKGBUILD | 110 +++++++++--------- mingw-w64-bwidget/PKGBUILD | 22 ++-- mingw-w64-catch/PKGBUILD | 18 +-- mingw-w64-ccache/PKGBUILD | 2 +- mingw-w64-cgal/PKGBUILD | 14 +-- mingw-w64-chipmunk/PKGBUILD | 18 +-- .../0001-msys2-fix-gir-scanner.patch | 19 +-- mingw-w64-clutter-gst/PKGBUILD | 32 +++-- mingw-w64-clutter/PKGBUILD | 10 +- .../PKGBUILD | 38 +++--- .../llvm-config-cygpath | 0 mingw-w64-csfml/PKGBUILD | 12 +- mingw-w64-ctags/PKGBUILD | 10 +- mingw-w64-ctpl-git/PKGBUILD | 13 ++- mingw-w64-d-feet/PKGBUILD | 8 +- mingw-w64-dcadec-git/PKGBUILD | 8 +- mingw-w64-dlfcn/PKGBUILD | 8 +- mingw-w64-dmake/PKGBUILD | 2 +- mingw-w64-dnscrypt-proxy/PKGBUILD | 6 +- mingw-w64-docbook-xml/PKGBUILD | 15 ++- mingw-w64-docbook-xsl/PKGBUILD | 3 +- mingw-w64-dumb/PKGBUILD | 6 +- mingw-w64-editrights/PKGBUILD | 12 +- mingw-w64-emacs/PKGBUILD | 11 +- mingw-w64-farstream/PKGBUILD | 2 +- mingw-w64-fltk/PKGBUILD | 15 +-- mingw-w64-ftgl/PKGBUILD | 25 ++-- mingw-w64-gdb/PKGBUILD | 4 +- mingw-w64-gettext/PKGBUILD | 10 +- mingw-w64-gexiv2/PKGBUILD | 11 +- mingw-w64-ghex/PKGBUILD | 12 +- mingw-w64-ghex/ghex-i686.install | 10 +- mingw-w64-ghex/ghex-x86_64.install | 10 +- mingw-w64-gl2ps/PKGBUILD | 26 ++--- mingw-w64-glfw/PKGBUILD | 36 +++--- mingw-w64-glm/PKGBUILD | 22 ++-- mingw-w64-glpk/PKGBUILD | 9 +- mingw-w64-gmime/PKGBUILD | 12 +- mingw-w64-gnome-calculator/001-win.patch | 66 ----------- mingw-w64-gnome-calculator/PKGBUILD | 17 +-- .../PKGBUILD | 36 ++---- mingw-w64-gsasl/PKGBUILD | 3 +- .../001-autoconf.patch | 9 -- .../002-gnulib.patch | 30 ----- {mingw-w64-gss-git => mingw-w64-gss}/PKGBUILD | 37 +++--- mingw-w64-gtk-engine-unico/PKGBUILD | 10 +- mingw-w64-gtk-vnc/PKGBUILD | 10 +- mingw-w64-gtkglext/PKGBUILD | 14 +-- mingw-w64-gxml/PKGBUILD | 26 +++-- mingw-w64-hidapi/PKGBUILD | 4 +- mingw-w64-icoutils/PKGBUILD | 6 +- mingw-w64-id3lib/PKGBUILD | 7 +- mingw-w64-indent/PKGBUILD | 9 +- mingw-w64-irrlicht/PKGBUILD | 9 +- mingw-w64-jansson/PKGBUILD | 15 +-- mingw-w64-jemalloc/PKGBUILD | 10 +- mingw-w64-jq/PKGBUILD | 2 +- mingw-w64-kiss_fft/PKGBUILD | 2 +- mingw-w64-latexila/PKGBUILD | 16 +-- mingw-w64-libelf/PKGBUILD | 2 +- mingw-w64-libgee/PKGBUILD | 8 +- mingw-w64-libnice/0002-no-undefined.patch | 11 -- mingw-w64-libnice/PKGBUILD | 11 +- mingw-w64-libntlm/PKGBUILD | 9 +- mingw-w64-libsodium/PKGBUILD | 2 +- mingw-w64-libuv/PKGBUILD | 5 +- mingw-w64-libview/PKGBUILD | 8 +- mingw-w64-libwebsockets/PKGBUILD | 22 ++-- mingw-w64-sfml/PKGBUILD | 6 +- .../004-fix-download-po.patch | 11 ++ mingw-w64-shishi-git/PKGBUILD | 4 +- mingw-w64-swig/PKGBUILD | 4 +- mingw-w64-xxhash-svn/PKGBUILD | 45 ------- .../Makefile | 0 mingw-w64-xxhash/PKGBUILD | 35 ++++++ 91 files changed, 578 insertions(+), 748 deletions(-) delete mode 100644 mingw-w64-breakpad-svn/0002-Avoid-O_BINARY-redefinition-warning-on-Cygwin.patch create mode 100644 mingw-w64-breakpad-svn/0028-pecoff-fix-assign-const.patch rename {mingw-w64-creduce-git => mingw-w64-creduce}/PKGBUILD (56%) rename {mingw-w64-creduce-git => mingw-w64-creduce}/llvm-config-cygpath (100%) rename {mingw-w64-gnonlin-git => mingw-w64-gnonlin}/PKGBUILD (57%) rename {mingw-w64-gss-git => mingw-w64-gss}/001-autoconf.patch (59%) rename {mingw-w64-gss-git => mingw-w64-gss}/002-gnulib.patch (83%) rename {mingw-w64-gss-git => mingw-w64-gss}/PKGBUILD (57%) delete mode 100644 mingw-w64-libnice/0002-no-undefined.patch create mode 100644 mingw-w64-shishi-git/004-fix-download-po.patch delete mode 100644 mingw-w64-xxhash-svn/PKGBUILD rename {mingw-w64-xxhash-svn => mingw-w64-xxhash}/Makefile (100%) create mode 100644 mingw-w64-xxhash/PKGBUILD diff --git a/mingw-w64-FreeImage/PKGBUILD b/mingw-w64-FreeImage/PKGBUILD index 13e1355c51..e1e903a7bd 100644 --- a/mingw-w64-FreeImage/PKGBUILD +++ b/mingw-w64-FreeImage/PKGBUILD @@ -3,7 +3,7 @@ _realname=FreeImage pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.0 -pkgrel=6 +pkgrel=7 pkgdesc="Library project for developers who would like to support popular graphics image formats (mingw-w64)." arch=('any') license=('GPL' 'custom:FIPL') diff --git a/mingw-w64-allegro/PKGBUILD b/mingw-w64-allegro/PKGBUILD index 919be3aa94..2af254b3af 100644 --- a/mingw-w64-allegro/PKGBUILD +++ b/mingw-w64-allegro/PKGBUILD @@ -3,7 +3,7 @@ _realname=allegro pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.1.11 -pkgrel=1 +pkgrel=2 pkgdesc="Portable library mainly aimed at video game and multimedia programming (mingw-w64)" arch=(any) url="http://alleg.sourceforge.net" diff --git a/mingw-w64-apr-util/PKGBUILD b/mingw-w64-apr-util/PKGBUILD index 4b98e28b0c..dbdab3f7c4 100644 --- a/mingw-w64-apr-util/PKGBUILD +++ b/mingw-w64-apr-util/PKGBUILD @@ -3,7 +3,7 @@ _realname=apr-util pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.5.4 -pkgrel=1 +pkgrel=2 pkgdesc="The Apache Portable Runtime (mingw-w64)" arch=('any') url="http://apr.apache.org/" diff --git a/mingw-w64-apr/PKGBUILD b/mingw-w64-apr/PKGBUILD index 6d76c9b0d6..7dc0c6b3c1 100644 --- a/mingw-w64-apr/PKGBUILD +++ b/mingw-w64-apr/PKGBUILD @@ -3,7 +3,7 @@ _realname=apr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.5.2 -pkgrel=1 +pkgrel=2 pkgdesc="The Apache Portable Runtime (mingw-w64)" arch=('any') url="https://apr.apache.org/" @@ -52,10 +52,4 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install - - #pushd "${pkgdir}${MINGW_PREFIX}" > /dev/null - #export PREFIX_WIN=`pwd -W` - #popd > /dev/null - #sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - # -i "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/apr-1.pc" } diff --git a/mingw-w64-aria2/PKGBUILD b/mingw-w64-aria2/PKGBUILD index 90fd807fc8..3c5eb854db 100644 --- a/mingw-w64-aria2/PKGBUILD +++ b/mingw-w64-aria2/PKGBUILD @@ -3,7 +3,7 @@ _realname=aria2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.19.0 -pkgrel=1 +pkgrel=2 pkgdesc="A multi-protocol & multi-source, cross platform download utility (mingw-w64)" arch=('any') url="http://aria2.sourceforge.net/" @@ -13,6 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" "${MINGW_PACKAGE_PREFIX}-c-ares" + "${MINGW_PACKAGE_PREFIX}-cppunit" "${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-libssh2" "${MINGW_PACKAGE_PREFIX}-libuv" @@ -52,6 +53,7 @@ build() { --without-gnutls \ --without-wintls \ --enable-libaria2 + make } diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index 5ae8ec571a..e5159af216 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -3,7 +3,7 @@ _realname=armadillo pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.200.2 -pkgrel=1 +pkgrel=2 pkgdesc="C++ linear algebra library (mingw-w64)" arch=('any') url="http://arma.sourceforge.net/" @@ -27,9 +27,10 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DLAPACK_NAMES=openblas \ ../${_realname}-${pkgver} @@ -39,13 +40,13 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install - local _INSTALL_PREFIX_WIN="$(cygpath -am "${pkgdir}${MINGW_PREFIX}")" - local _MINGW_PREFIX_WIN="$(cygpath -am "${MINGW_PREFIX}")" + #local _INSTALL_PREFIX_WIN="$(cygpath -am "${pkgdir}${MINGW_PREFIX}")" + #local _MINGW_PREFIX_WIN="$(cygpath -am "${MINGW_PREFIX}")" - sed -s -e "s|${_INSTALL_PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -e "s|${_MINGW_PREFIX_WIN}|${MINGW_PREFIX}|g" -i "${pkgdir}${MINGW_PREFIX}/share/Armadillo/CMake/"*.cmake + #sed -s -e "s|${_INSTALL_PREFIX_WIN}|${MINGW_PREFIX}|g" \ + # -e "s|${_MINGW_PREFIX_WIN}|${MINGW_PREFIX}|g" -i "${pkgdir}${MINGW_PREFIX}/share/Armadillo/CMake/"*.cmake install -d ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname} install -m644 "${srcdir}/${_realname}-${pkgver}/"*{.html,.png,.pdf,README.txt} \ diff --git a/mingw-w64-arpack/PKGBUILD b/mingw-w64-arpack/PKGBUILD index e2142e3210..92304d5676 100644 --- a/mingw-w64-arpack/PKGBUILD +++ b/mingw-w64-arpack/PKGBUILD @@ -6,7 +6,7 @@ _realname=arpack pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.1.5 +pkgver=3.2.0 pkgrel=1 arch=('any') pkgdesc='Fortran77 subroutines designed to solve large scale eigenvalue problems (mingw-w64)' @@ -15,27 +15,28 @@ license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-openblas") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran") provides=("${MINGW_PACKAGE_PREFIX}-arpack-ng") -source=("http://forge.scilab.org/upload/$_realname-ng/files/$_realname-ng_$pkgver.tar.gz") -sha256sums=('a269ce7806bc77ced31ef794d23c3e3aff8543b65550fd7e3e24660f2a79d515') +source=(#"http://forge.scilab.org/upload/$_realname-ng/files/$_realname-ng_${pkgver}.tar.gz" + ${_realname}-${pkgver}.tar.gz::https://github.com/opencollab/arpack-ng/archive/${pkgver}.tar.gz) +sha256sums=('ce6de85d8de6ae3a741fb9d6169c194ff1b2ffdab289f7af8e41d71bb7818cbb') build() { [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} mkdir "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} - "${srcdir}"/${_realname}-ng-${pkgver}/configure \ + ../${_realname}-ng-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --with-blas=openblas \ --disable-mpi - make \ - F77="gfortran" + + make F77="gfortran" } package() { cd "${srcdir}"/build-${CARCH} - make DESTDIR="$pkgdir"/ install - install -Dm644 "${srcdir}"/${_realname}-ng-${pkgver}/COPYING \ - "$pkgdir"${MINGW_PREFIX}/share/licenses/$_realname/COPYING + make DESTDIR="${pkgdir}"/ install + install -Dm644 ${srcdir}/${_realname}-ng-${pkgver}/COPYING \ + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING } # vim:set ts=2 sw=2 et: diff --git a/mingw-w64-astyle/PKGBUILD b/mingw-w64-astyle/PKGBUILD index ba7f0a4420..758323a985 100644 --- a/mingw-w64-astyle/PKGBUILD +++ b/mingw-w64-astyle/PKGBUILD @@ -3,7 +3,7 @@ _realname=astyle pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.05.1 -pkgrel=1 +pkgrel=2 pkgdesc='A free, fast and small automatic formatter for C, C++, C#, and Java source code (mingw-w64)' arch=('any') license=('LGPL') diff --git a/mingw-w64-badvpn/PKGBUILD b/mingw-w64-badvpn/PKGBUILD index fe6cd67d05..fae3f49b42 100644 --- a/mingw-w64-badvpn/PKGBUILD +++ b/mingw-w64-badvpn/PKGBUILD @@ -4,7 +4,7 @@ _realname=badvpn pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.999.130 -pkgrel=1 +pkgrel=2 pkgdesc="NCD scripting language, tun2socks proxifier, P2P VPN (mingw-w64)" arch=('any') url="https://github.com/ambrop72/badvpn" @@ -22,18 +22,21 @@ build() { mkdir -p "${srcdir}"/build-${CARCH} cd "${srcdir}"/build-${CARCH} - cmake ../${_realname}-${pkgver} \ + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX="${pkgdir}${MINGW_PREFIX}" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INCLUDE_PATH="${MINGW_PREFIX}"/include/nspr:"${MINGW_PREFIX}"/include/nss3 \ + -DCMAKE_INCLUDE_PATH="${MINGW_PREFIX}/include/nspr:${MINGW_PREFIX}/include/nss3" \ -DBUILD_EXAMPLES=OFF \ - -DBUILD_TESTS=OFF + -DBUILD_TESTS=OFF \ + ../${_realname}-${pkgver} + make } package() { cd "${srcdir}"/build-${CARCH} - make install - install -Dm644 "${srcdir}"/$_realname-$pkgver/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + make DESTDIR=${pkgdir} install + install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/COPYING } diff --git a/mingw-w64-box2d/PKGBUILD b/mingw-w64-box2d/PKGBUILD index 5d9b2a40fd..052e520c2c 100644 --- a/mingw-w64-box2d/PKGBUILD +++ b/mingw-w64-box2d/PKGBUILD @@ -2,15 +2,15 @@ _realname=box2d pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.3.0 +pkgver=2.3.1 pkgrel=1 pkgdesc="2D rigid body simulation library for games (mingw-w64)" arch=('any') url="http://www.box2d.org/" license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") -source=(http://box2d.googlecode.com/files/Box2D_v${pkgver}.7z) -md5sums=('696a457fc6260a9bb6d2c380b9100279') +source=(${_realname}-${pkgver}.tar.gz::https://github.com/erincatto/Box2D/archive/v${pkgver}.tar.gz) +md5sums=('9ee551c9089b9d1c5ceecbd3d7df5156') options=(staticlibs !buildflags !strip) build() { @@ -18,19 +18,21 @@ build() { mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX="${pkgdir}${MINGW_PREFIX}" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBOX2D_INSTALL=ON \ -DBOX2D_BUILD_SHARED=ON \ -DBOX2D_BUILD_STATIC=ON \ -DBOX2D_BUILD_EXAMPLES=OFF \ - ../Box2D_v${pkgver}/Box2D + ../Box2D-${pkgver}/Box2D + make } package() { cd "${srcdir}/build-${CARCH}" - make install + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-breakpad-svn/0002-Avoid-O_BINARY-redefinition-warning-on-Cygwin.patch b/mingw-w64-breakpad-svn/0002-Avoid-O_BINARY-redefinition-warning-on-Cygwin.patch deleted file mode 100644 index de324c4834..0000000000 --- a/mingw-w64-breakpad-svn/0002-Avoid-O_BINARY-redefinition-warning-on-Cygwin.patch +++ /dev/null @@ -1,42 +0,0 @@ -From eb32eb8c96d3948823b8467dd1837aa3d3c5ec27 Mon Sep 17 00:00:00 2001 -From: Jon TURNEY -Date: Sat, 12 Jul 2014 13:33:47 +0100 -Subject: [PATCH 02/24] Avoid O_BINARY redefinition warning on Cygwin - -Avoid O_BINARY redefinition warning compiling processor for Cygwin - -On Cygwin, WIN32 not defined, but O_BINARY is defined by fcntl.h, so avoid a -redefinition warning. - -../src/processor/minidump.cc:55:0: warning: "O_BINARY" redefined [enabled by default] - #define O_BINARY 0 - ^ -In file included from /usr/include/sys/fcntl.h:3:0, - from /usr/include/fcntl.h:14, - from ../src/processor/minidump.cc:39: -/usr/include/sys/_default_fcntl.h:52:0: note: this is the location of the previous definition - #define O_BINARY _FBINARY - ^ - -Signed-off-by: Jon TURNEY ---- - src/processor/minidump.cc | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc -index 8ae260d..a4bf55a 100644 ---- a/src/processor/minidump.cc -+++ b/src/processor/minidump.cc -@@ -49,7 +49,9 @@ - #define snprintf _snprintf - #else // _WIN32 - #include -+#ifndef O_BINARY - #define O_BINARY 0 -+#endif - #endif // _WIN32 - - #include --- -2.1.1 - diff --git a/mingw-w64-breakpad-svn/0004-Remove-local-copy-of-curl-headers.patch b/mingw-w64-breakpad-svn/0004-Remove-local-copy-of-curl-headers.patch index e65d4027d9..be8c6d0d0d 100644 --- a/mingw-w64-breakpad-svn/0004-Remove-local-copy-of-curl-headers.patch +++ b/mingw-w64-breakpad-svn/0004-Remove-local-copy-of-curl-headers.patch @@ -161,7 +161,7 @@ index 160cd98..0000000 - require it! */ -#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ - defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ -- defined(ANDROID) +- defined(__ANDROID__) -#include -#endif - @@ -2184,7 +2184,7 @@ index 87d0c7b..0000000 - -/* The size of `long', as computed by sizeof. */ -#if defined(_M_X64) || (defined(__x86_64__) && !defined(__ILP32__)) || \ -- defined(__aarch64__) +- defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABI64) -#define CURL_SIZEOF_LONG 8 -#else -#define CURL_SIZEOF_LONG 4 diff --git a/mingw-w64-breakpad-svn/0013-Add-symsrv_convert.patch b/mingw-w64-breakpad-svn/0013-Add-symsrv_convert.patch index b31e75cabf..efd6223712 100644 --- a/mingw-w64-breakpad-svn/0013-Add-symsrv_convert.patch +++ b/mingw-w64-breakpad-svn/0013-Add-symsrv_convert.patch @@ -30,8 +30,8 @@ index aadc21a..5f4bff7 100644 'all_dependent_settings': { 'include_dirs': [ '<(DEPTH)', -- '$(VSInstallDir)\DIA SDK\include', -+ '"$(VSInstallDir)\DIA SDK\include"', +- '$(VSInstallDir)/DIA SDK/include', ++ '"$(VSInstallDir)/DIA SDK/include"', ], 'msvs_settings': { 'VCLinkerTool': { diff --git a/mingw-w64-breakpad-svn/0017-Use-__USE_MINGW_ANSI_STDIO-for-MinGW-build.patch b/mingw-w64-breakpad-svn/0017-Use-__USE_MINGW_ANSI_STDIO-for-MinGW-build.patch index 32832cf8be..4a300bc224 100644 --- a/mingw-w64-breakpad-svn/0017-Use-__USE_MINGW_ANSI_STDIO-for-MinGW-build.patch +++ b/mingw-w64-breakpad-svn/0017-Use-__USE_MINGW_ANSI_STDIO-for-MinGW-build.patch @@ -4,7 +4,8 @@ Date: Wed, 9 Apr 2014 21:14:07 +0100 Subject: [PATCH 17/24] Use __USE_MINGW_ANSI_STDIO for MinGW build Use __USE_MINGW_ANSI_STDIO for ANSI C99 compatible implementation of printf() -and friends on MinGW +and friends on MinGW. +Use _POSIX_C_SOURCE for localtime_r implementation. Signed-off-by: Jon TURNEY --- @@ -15,11 +16,12 @@ diff --git a/Makefile.am b/Makefile.am index 7632ba1..f1f29f3 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -69,6 +69,7 @@ endif +@@ -69,6 +69,8 @@ endif if MINGW_HOST SOCKET_LIBS = -lws2_32 AM_CPPFLAGS += -D_POSIX +AM_CPPFLAGS += -D__USE_MINGW_ANSI_STDIO ++AM_CPPFLAGS += -D_POSIX_C_SOURCE endif # Specify include paths for ac macros diff --git a/mingw-w64-breakpad-svn/0027-google-breakpad-0.1.svn.1413-libtool.patch b/mingw-w64-breakpad-svn/0027-google-breakpad-0.1.svn.1413-libtool.patch index 9bc5745dce..11375cd2a2 100644 --- a/mingw-w64-breakpad-svn/0027-google-breakpad-0.1.svn.1413-libtool.patch +++ b/mingw-w64-breakpad-svn/0027-google-breakpad-0.1.svn.1413-libtool.patch @@ -13,7 +13,7 @@ diff -rupN google-breakpad-0.1.svn.969/configure.ac google-breakpad-0.1.svn.969_ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_mod/Makefile.am --- google-breakpad-0.1.svn.969/Makefile.am 2012-06-12 01:52:23.000000000 +0200 +++ google-breakpad-0.1.svn.969_mod/Makefile.am 2012-06-12 13:14:22.051174459 +0200 -@@ -110,22 +110,22 @@ dist_doc_DATA = \ +@@ -122,22 +122,22 @@ pkgconfig_DATA = ## Libraries @@ -42,7 +42,7 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m src/client/linux/crash_generation/crash_generation_client.cc \ src/client/linux/crash_generation/crash_generation_server.cc \ src/client/linux/dump_writer_common/seccomp_unwinder.cc \ -@@ -160,13 +160,13 @@ src_client_linux_libbreakpad_client_a_SO +@@ -161,13 +161,13 @@ src/common/linux/memory_mapped_file.cc \ src/common/linux/safe_readlink.cc if ANDROID_HOST @@ -58,7 +58,7 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m src/google_breakpad/common/breakpad_types.h \ src/google_breakpad/common/minidump_format.h \ src/google_breakpad/common/minidump_size.h \ -@@ -272,9 +272,9 @@ src_libbreakpad_a_SOURCES = \ +@@ -283,9 +283,9 @@ src/processor/tokenize.cc \ src/processor/tokenize.h @@ -70,7 +70,7 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m src/third_party/libdisasm/ia32_implicit.c \ src/third_party/libdisasm/ia32_implicit.h \ src/third_party/libdisasm/ia32_insn.c \ -@@ -448,7 +448,8 @@ src_client_linux_linux_client_unittest_C +@@ -489,7 +489,8 @@ -I$(top_srcdir)/src/testing/include \ -I$(top_srcdir)/src/testing/gtest/include \ -I$(top_srcdir)/src/testing/gtest \ @@ -80,18 +80,18 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m src_client_linux_linux_client_unittest_shlib_LDFLAGS = \ -shared \ -Wl,-h,linux_client_unittest_shlib -@@ -500,8 +500,8 @@ src_client_linux_linux_client_unittest_L +@@ -525,8 +526,8 @@ - src_client_linux_linux_client_unittest_DEPENDENCIES = \ + src_client_linux_linux_client_unittest_shlib_DEPENDENCIES = \ src/client/linux/linux_dumper_unittest_helper \ - src/client/linux/libbreakpad_client.a \ - src/libbreakpad.a + src/client/linux/libbreakpad_client.la \ + src/libbreakpad.la - if !DISABLE_TOOLS - src_tools_linux_core2md_core2md_SOURCES = \ -@@ -508,8 +508,11 @@ src_tools_linux_core2md_core2md_SOURCES + src_client_linux_linux_client_unittest_SOURCES = + src_client_linux_linux_client_unittest_LDFLAGS = \ +@@ -549,8 +550,11 @@ src/common/linux/elf_core_dump.cc src_tools_linux_core2md_core2md_LDADD = \ @@ -104,7 +104,7 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m src_tools_linux_dump_syms_dump_syms_SOURCES = \ src/common/dwarf_cfi_to_module.cc \ src/common/dwarf_cu_to_module.cc \ -@@ -531,6 +531,8 @@ src_tools_linux_dump_syms_dump_syms_SOUR +@@ -572,6 +576,8 @@ src/common/linux/safe_readlink.cc \ src/tools/linux/dump_syms/dump_syms.cc @@ -113,7 +113,7 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m src_tools_linux_md2core_minidump_2_core_SOURCES = \ src/common/linux/memory_mapped_file.cc \ src/tools/linux/md2core/minidump-2-core.cc -@@ -427,7 +433,8 @@ src_common_dumper_unittest_CPPFLAGS = \ +@@ -629,7 +635,8 @@ -I$(top_srcdir)/src/testing/gtest/include \ -I$(top_srcdir)/src/testing/gtest \ -I$(top_srcdir)/src/testing \ @@ -123,16 +123,16 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m src_common_dumper_unittest_LDADD = $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) endif -@@ -723,7 +723,7 @@ src_processor_exploitability_unittest_LD - src/processor/stackwalker_sparc.o \ +@@ -775,7 +782,7 @@ src/processor/stackwalker_x86.o \ + src/processor/symbolic_constants_win.o \ src/processor/tokenize.o \ - src/third_party/libdisasm/libdisasm.a \ + src/third_party/libdisasm/libdisasm.la \ $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) src_processor_disassembler_x86_unittest_SOURCES = \ -@@ -739,7 +739,7 @@ src_processor_disassembler_x86_unittest_ +@@ -791,7 +798,7 @@ -I$(top_srcdir)/src/testing src_processor_disassembler_x86_unittest_LDADD = \ src/processor/disassembler_x86.o \ @@ -141,16 +141,16 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) src_processor_fast_source_line_resolver_unittest_SOURCES = \ -@@ -857,7 +857,7 @@ src_processor_minidump_processor_unittes - src/processor/stackwalker_sparc.o \ +@@ -910,7 +917,7 @@ src/processor/stackwalker_x86.o \ + src/processor/symbolic_constants_win.o \ src/processor/tokenize.o \ - src/third_party/libdisasm/libdisasm.a \ + src/third_party/libdisasm/libdisasm.la \ $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) src_processor_minidump_unittest_SOURCES = \ -@@ -998,7 +998,7 @@ src_processor_stackwalker_amd64_unittest +@@ -1051,7 +1058,7 @@ src/testing/gtest/src/gtest_main.cc \ src/testing/src/gmock-all.cc src_processor_stackwalker_amd64_unittest_LDADD = \ @@ -159,7 +159,7 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) src_processor_stackwalker_amd64_unittest_CPPFLAGS = \ -I$(top_srcdir)/src \ -@@ -1014,7 +1014,7 @@ src_processor_stackwalker_arm_unittest_S +@@ -1067,7 +1074,7 @@ src/testing/gtest/src/gtest_main.cc \ src/testing/src/gmock-all.cc src_processor_stackwalker_arm_unittest_LDADD = \ @@ -168,7 +168,7 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) src_processor_stackwalker_arm_unittest_CPPFLAGS = \ -I$(top_srcdir)/src \ -@@ -1085,7 +1085,7 @@ +@@ -1083,7 +1090,7 @@ src/testing/gtest/src/gtest_main.cc \ src/testing/src/gmock-all.cc src_processor_stackwalker_arm64_unittest_LDADD = \ @@ -177,7 +177,7 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) src_processor_stackwalker_arm64_unittest_CPPFLAGS = \ -I$(top_srcdir)/src \ -@@ -1101,7 +1101,7 @@ +@@ -1099,7 +1106,7 @@ src/testing/gtest/src/gtest_main.cc \ src/testing/src/gmock-all.cc src_processor_stackwalker_address_list_unittest_LDADD = \ @@ -186,7 +186,7 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) src_processor_stackwalker_address_list_unittest_CPPFLAGS = \ -I$(top_srcdir)/src \ -@@ -1117,7 +1117,7 @@ +@@ -1115,7 +1122,7 @@ src/testing/gtest/src/gtest_main.cc \ src/testing/src/gmock-all.cc src_processor_stackwalker_mips_unittest_LDADD = \ @@ -195,7 +195,7 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) src_processor_stackwalker_mips_unittest_CPPFLAGS = \ -I$(top_srcdir)/src \ -@@ -1133,7 +1133,7 @@ src_processor_stackwalker_x86_unittest_S +@@ -1131,7 +1138,7 @@ src/testing/gtest/src/gtest_main.cc \ src/testing/src/gmock-all.cc src_processor_stackwalker_x86_unittest_LDADD = \ @@ -204,7 +204,7 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) src_processor_stackwalker_x86_unittest_CPPFLAGS = \ -I$(top_srcdir)/src \ -@@ -1166,7 +1166,7 @@ src_processor_minidump_stackwalk_LDADD = +@@ -1219,7 +1226,7 @@ src/processor/stackwalker_sparc.o \ src/processor/stackwalker_x86.o \ src/processor/tokenize.o \ @@ -213,9 +213,9 @@ diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_m $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SOCKET_LIBS) src_processor_minidump_stackwalk_SOURCES = \ -@@ -1202,7 +1202,7 @@ - src/processor/stackwalker_sparc.o \ +@@ -1258,7 +1265,7 @@ src/processor/stackwalker_x86.o \ + src/processor/symbolic_constants_win.o \ src/processor/tokenize.o \ - src/third_party/libdisasm/libdisasm.a \ + src/third_party/libdisasm/libdisasm.la \ diff --git a/mingw-w64-breakpad-svn/0028-pecoff-fix-assign-const.patch b/mingw-w64-breakpad-svn/0028-pecoff-fix-assign-const.patch new file mode 100644 index 0000000000..8f1ff10286 --- /dev/null +++ b/mingw-w64-breakpad-svn/0028-pecoff-fix-assign-const.patch @@ -0,0 +1,13 @@ +--- breakpad.build.x86_64/src/common/pecoff/pecoffutils.cc.orig 2015-07-18 20:50:02.583426500 +0300 ++++ breakpad.build.x86_64/src/common/pecoff/pecoffutils.cc 2015-07-18 20:50:19.279381500 +0300 +@@ -267,9 +267,8 @@ + (export_rva < (data_directory_export_entry->mVirtualAddress + data_directory_export_entry->mSize))) + continue; + +- Module::Extern* ext = new Module::Extern; ++ Module::Extern* ext = new Module::Extern(export_rva + GetLoadingAddress(obj_base)); + ext->name = export_name; +- ext->address = export_rva + GetLoadingAddress(obj_base); + module->AddExtern(ext); + } + diff --git a/mingw-w64-breakpad-svn/PKGBUILD b/mingw-w64-breakpad-svn/PKGBUILD index 318d797642..da5fdab4af 100644 --- a/mingw-w64-breakpad-svn/PKGBUILD +++ b/mingw-w64-breakpad-svn/PKGBUILD @@ -2,20 +2,18 @@ # Contributor: Renato Silva # Contributor: Alexey Pavlov -_name=breakpad +_realname=breakpad +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-svn) +provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) +conflicts=(${MINGW_PACKAGE_PREFIX}-${_realname}) +pkgver=r1471 +pkgrel=1 url='https://code.google.com/p/google-breakpad' pkgdesc='An open-source multi-platform crash reporting system (mingw-w64)' license=('BSD') -arch=(any) -pkgver=r1413 -pkgrel=1 - -makedepends=(${MINGW_PACKAGE_PREFIX}-curl subversion git gyp) -pkgname=(${MINGW_PACKAGE_PREFIX}-${_name}-svn) -provides=(${MINGW_PACKAGE_PREFIX}-${_name}) -conflicts=(${MINGW_PACKAGE_PREFIX}-${_name}) -source=(${_name}.svn::"svn+http://google-breakpad.googlecode.com/svn/trunk" - 0002-Avoid-O_BINARY-redefinition-warning-on-Cygwin.patch +arch=('any') +makedepends=(${MINGW_PACKAGE_PREFIX}-curl rsync subversion git gyp) +source=(${_realname}.svn::"svn+http://google-breakpad.googlecode.com/svn/trunk#revision=1471" 0003-Build-minidump_upload-sym_upload-for-all-targets.patch 0004-Remove-local-copy-of-curl-headers.patch 0005-Add-support-for-DWARF-in-PECOFF-as-used-by-Cygwin-an.patch @@ -40,24 +38,26 @@ source=(${_name}.svn::"svn+http://google-breakpad.googlecode.com/svn/trunk" 0024-Disable-timeout-waiting-for-crash-reporting-server.patch 0026-Fixes-for-sign-compare-warnings-due-to-signedness-of.patch 0027-google-breakpad-0.1.svn.1413-libtool.patch + 0028-pecoff-fix-assign-const.patch gyp-regenerate-no-circular-check.patch Makefile README.sample) pkgver() { - cd "${srcdir}/${_name}.svn" + cd "${srcdir}/${_realname}.svn" printf "r%s" "$(svnversion | tr -d 'A-z')" } prepare() { msg2 "Creating patched-source directory" - [[ -d "${srcdir}/${_name}.patched" ]] && rm -rf "${srcdir}/${_name}.patched" - mkdir -p "${srcdir}/${_name}.patched" - cp -r "${srcdir}/${_name}.svn"/* "${srcdir}/${_name}.patched" + [[ -d "${srcdir}/${_realname}.patched" ]] && rm -rf "${srcdir}/${_realname}.patched" + mkdir -p "${srcdir}/${_realname}.patched" + cp -r "${srcdir}/${_realname}.svn"/* "${srcdir}/${_realname}.patched" # Apply patches - cd "${srcdir}/${_name}.patched" + cd "${srcdir}/${_realname}.patched" for patch in "${srcdir}"/0*.patch; do + msg2 "Applying ${patch} ..." patch -p1 -i "${patch}" done patch -p2 -i "${srcdir}/gyp-regenerate-no-circular-check.patch" @@ -68,9 +68,9 @@ prepare() { build() { msg2 "Synchronizing build directory" - rsync --recursive --times --links "${srcdir}/${_name}.patched"/* "${srcdir}/${_name}.build.${CARCH}" + rsync --recursive --times --links "${srcdir}/${_realname}.patched"/* "${srcdir}/${_realname}.build.${CARCH}" - cd "${srcdir}/${_name}.build.${CARCH}" + cd "${srcdir}/${_realname}.build.${CARCH}" ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -80,7 +80,7 @@ build() { } package() { - cd "${srcdir}/${_name}.build.${CARCH}" + cd "${srcdir}/${_realname}.build.${CARCH}" make CXXFLAGS="-Wno-error=reorder -DUNICODE -D_UNICODE -g" AR=${MINGW_PREFIX}/bin/ar RC=${MINGW_PREFIX}/bin/windres DESTDIR="${pkgdir}" install # Install headers @@ -88,26 +88,26 @@ package() { cd "${pkgdir}${MINGW_PREFIX}/include/breakpad" mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/common/" - cp -v ${srcdir}/${_name}.build.${CARCH}/src/google_breakpad/common/* common/ - cp -v ${srcdir}/${_name}.build.${CARCH}/src/common/scoped_ptr.h common/ + cp -v ${srcdir}/${_realname}.build.${CARCH}/src/google_breakpad/common/* common/ + cp -v ${srcdir}/${_realname}.build.${CARCH}/src/common/scoped_ptr.h common/ mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/common/windows" - cp -v ${srcdir}/${_name}.build.${CARCH}/src/common/windows/string_utils-inl.h common/windows/ + cp -v ${srcdir}/${_realname}.build.${CARCH}/src/common/windows/string_utils-inl.h common/windows/ mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/client/windows/crash_generation" - cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/crash_generation/client_info.h client/windows/crash_generation/ - cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/crash_generation/crash_generation_client.h client/windows/crash_generation/ - cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/crash_generation/crash_generation_server.h client/windows/crash_generation/ - cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/crash_generation/minidump_generator.h client/windows/crash_generation/ + cp -v ${srcdir}/${_realname}.build.${CARCH}/src/client/windows/crash_generation/client_info.h client/windows/crash_generation/ + cp -v ${srcdir}/${_realname}.build.${CARCH}/src/client/windows/crash_generation/crash_generation_client.h client/windows/crash_generation/ + cp -v ${srcdir}/${_realname}.build.${CARCH}/src/client/windows/crash_generation/crash_generation_server.h client/windows/crash_generation/ + cp -v ${srcdir}/${_realname}.build.${CARCH}/src/client/windows/crash_generation/minidump_generator.h client/windows/crash_generation/ mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/client/windows/common" - cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/common/ipc_protocol.h client/windows/common/ + cp -v ${srcdir}/${_realname}.build.${CARCH}/src/client/windows/common/ipc_protocol.h client/windows/common/ mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/client/windows/handler" - cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/handler/exception_handler.h client/windows/handler/ + cp -v ${srcdir}/${_realname}.build.${CARCH}/src/client/windows/handler/exception_handler.h client/windows/handler/ mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/client/windows/sender" - cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/sender/crash_report_sender.h client/windows/sender/ + cp -v ${srcdir}/${_realname}.build.${CARCH}/src/client/windows/sender/crash_report_sender.h client/windows/sender/ # Headers aren't really designed to be installed, so we need to do some # rewriting to make them usefully included using "include " @@ -121,47 +121,46 @@ package() { local _windir=$(cygpath -wm ${srcdir}) ${MINGW_PREFIX}/bin/ar -M < _realname=creduce -pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=creduce.2.2.0.18.g3f1d123 +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") +pkgver=2.3.0 pkgrel=1 pkgdesc="A C program reducer (mingw-w64)" depends=('delta' @@ -18,45 +18,41 @@ depends=('delta' arch=('any') url='https://github.com/csmith-project/creduce' license=('custom:University of Illinois/NCSA Open Source License') -makedepends=('git' 'flex' "${MINGW_PACKAGE_PREFIX}-clang") -source=('git://github.com/csmith-project/creduce.git' +makedepends=('flex' "${MINGW_PACKAGE_PREFIX}-clang") +source=(https://github.com/csmith-project/creduce/archive/${_realname}-${pkgver}.tar.gz "llvm-config-cygpath") -sha256sums=('SKIP' +sha256sums=('47a42751aab8b51bc10d8df62f359bdc1b4a644f16feb85b9f7325f0c5bce4a3' '03a7239d1e26d8a5dd5f405e10826679725cae6c01a9c37e80c6f1c184dad0a9') prepare() { - cd "$srcdir" - [ -d tools ] && rm -rf tools + cd "${srcdir}" + [[ -d tools ]] && rm -rf tools mkdir tools - cp -f "$srcdir"/llvm-config-cygpath tools/llvm-config -} - -pkgver() { - cd "$srcdir/$_realname" - git describe --always | sed 's|-|.|g' + cp -f "${srcdir}"/llvm-config-cygpath tools/llvm-config } build() { - cd "$srcdir" + cd "${srcdir}" [ -d ${CARCH} ] && rm -rf ${CARCH} mkdir ${CARCH} cd ${CARCH} - PATH="$srcdir/tools:$PATH" \ - ../$_realname/configure \ + PATH="${srcdir}/tools:$PATH" \ + ../${_realname}-${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} + make } package() { - cd "$srcdir/${CARCH}" - make DESTDIR="$pkgdir" install - install -Dm644 "../$_realname/COPYING" "$pkgdir${MINGW_PREFIX}/share/licenses/$_realname/COPYING" + cd "${srcdir}/${CARCH}" + make DESTDIR="${pkgdir}" install + install -Dm644 "../${_realname}-${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" # Point creduce perl script: # lib $FindBin::Bin, '${MINGW_PREFIX}/share/creduce/perl'; # .. to msys2 perl. sed "s|${MINGW_PREFIX}|/usr|g" \ - -i $pkgdir${MINGW_PREFIX}/bin/creduce + -i ${pkgdir}${MINGW_PREFIX}/bin/creduce } diff --git a/mingw-w64-creduce-git/llvm-config-cygpath b/mingw-w64-creduce/llvm-config-cygpath similarity index 100% rename from mingw-w64-creduce-git/llvm-config-cygpath rename to mingw-w64-creduce/llvm-config-cygpath diff --git a/mingw-w64-csfml/PKGBUILD b/mingw-w64-csfml/PKGBUILD index c7c384d568..b9748c0cfc 100644 --- a/mingw-w64-csfml/PKGBUILD +++ b/mingw-w64-csfml/PKGBUILD @@ -3,13 +3,15 @@ _realname=csfml pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.3 -pkgrel=1 +pkgrel=2 pkgdesc="A simple, fast, cross-platform, and object-oriented multimedia API for C (mingw-w64)" arch=('any') url="https://github.com/SFML/CSFML" license=("zlib") depends=("${MINGW_PACKAGE_PREFIX}-sfml") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "doxygen" "unzip") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-doxygen") source=("${_realname}-${pkgver}.tar.gz"::https://github.com/SFML/CSFML/archive/${pkgver}.tar.gz mingw-w64-msys2.patch) md5sums=('eb99a783e367e018333e622945d232d2' @@ -23,9 +25,11 @@ prepare() { build() { [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCSFML_LINK_SFML_STATICALLY=OFF \ -DBUILD_SHARED_LIBS=ON \ -DCSFML_BUILD_DOC=ON \ @@ -37,7 +41,7 @@ build() { package() { cd build-${MINGW_CHOST} - make install + make DESTDIR=${pkgdir} install install -Dm644 ${srcdir}/CSFML-${pkgver}/license.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-ctags/PKGBUILD b/mingw-w64-ctags/PKGBUILD index 5dd7d143ad..2193d4c513 100755 --- a/mingw-w64-ctags/PKGBUILD +++ b/mingw-w64-ctags/PKGBUILD @@ -3,7 +3,7 @@ _realname=ctags pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.8 -pkgrel=1 +pkgrel=2 pkgdesc="A multilanguage implementation of Ctags (mingw-w64)" arch=('any') url="http://ctags.sourceforge.net/" @@ -11,10 +11,10 @@ license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') -source=("http://prdownloads.sourceforge.net/ctags/ctags-${pkgver}.tar.gz" - '001-fix-unused-attribute.patch') +source=("http://prdownloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" + '001-fix-unused-attribute.patch') md5sums=('c00f82ecdcc357434731913e5b48630d' - 'a85a1bd06a4f26546d2687d44195ff3e') + 'a85a1bd06a4f26546d2687d44195ff3e') prepare() { cd ${_realname}-${pkgver} @@ -23,7 +23,7 @@ prepare() { build() { mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} - ../ctags-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-ctpl-git/PKGBUILD b/mingw-w64-ctpl-git/PKGBUILD index bbd08c5951..af801178a6 100644 --- a/mingw-w64-ctpl-git/PKGBUILD +++ b/mingw-w64-ctpl-git/PKGBUILD @@ -3,13 +3,13 @@ _realname=ctpl _base_ver=0.3.3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=0.3.3.382.8aea180 +pkgver=0.3.3.385.5423b19 pkgrel=1 arch=('any') pkgdesc="C Template (Parser) Library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gtk-doc" + "gtk-doc" "git") options=('strip' 'staticlibs') license=("LGPL 2.1") @@ -18,12 +18,12 @@ source=("${_realname}"::"git+https://github.com/b4n/ctpl.git") sha256sums=('SKIP') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "%s.%s.%s" "${_base_ver}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd $srcdir/${_realname} + cd ${srcdir}/${_realname} ./autogen.sh } @@ -38,10 +38,11 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-d-feet/PKGBUILD b/mingw-w64-d-feet/PKGBUILD index 38207ce9b3..ac20b509f7 100644 --- a/mingw-w64-d-feet/PKGBUILD +++ b/mingw-w64-d-feet/PKGBUILD @@ -3,7 +3,7 @@ _realname=d-feet pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.3.9 +pkgver=0.3.10 pkgrel=1 pkgdesc="D-Bus debugger for GNOME (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools" "intltool" "itstool") install=d-feet-${CARCH}.install source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz localedir-fix.patch) -sha256sums=('6df917fc1c2ef43217fbeea94dc12ecfc2d136cac4c84dac2c89f03dfbca7953' +sha256sums=('88f0df5fcb862387ff3d1793873c5eb368c3e4db0bbd82ea65f748cbf70a6359' 'fc75a1e0fafac35a0c94a6c0fff6d0a28c7d5d6ac80ad4ca89399945feafb6c7') prepare() { @@ -26,7 +26,7 @@ prepare() { } build() { - [ -d "${srcdir}/build-${CARCH}" ] && rm -rf ${srcdir}/build-${CARCH} + [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} cd ${srcdir}/build-${CARCH} @@ -47,5 +47,5 @@ check() { package() { cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-dcadec-git/PKGBUILD b/mingw-w64-dcadec-git/PKGBUILD index 4a0b1c337f..68a9cdd744 100644 --- a/mingw-w64-dcadec-git/PKGBUILD +++ b/mingw-w64-dcadec-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=dcadec pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgdesc='dcadec is a free DTS Coherent Acoustics decoder with support for HD extensions (mingw-w64)' pkgver=0.0.0.207.2a9186e -pkgrel=1 +pkgrel=2 arch=('any') url='https://github.com/foo86/dcadec.git' license=('LGPL') @@ -24,7 +24,7 @@ sha512sums=('SKIP' '9ae1446ac65d635858afa05f90734990d08096758bf03a24b9a74d98255643d90badd905e2718eeb97c4a79375c6714585d43c69f47e573d0d7497cc55dcd018') pkgver() { - cd "${srcdir}"/$_realname + cd "${srcdir}"/${_realname} local _major=$(grep -e '\#define DCADEC_VERSION_MAJOR' libdcadec/dca_context.h | awk '{ printf $3 }') local _minor=$(grep -e '\#define DCADEC_VERSION_MINOR' libdcadec/dca_context.h | awk '{ printf $3 }') local _patch=$(grep -e '\#define DCADEC_VERSION_PATCH' libdcadec/dca_context.h | awk '{ printf $3 }') @@ -32,7 +32,7 @@ pkgver() { } prepare() { - cd "${srcdir}"/$_realname + cd "${srcdir}"/${_realname} patch -p1 -i "${srcdir}"/0001-Makefile-Don-t-set-static-libgcc-on-mingw-systems.patch patch -p1 -i "${srcdir}"/0002-Makefile-Install-windows-DLL-to-BINDIR.patch @@ -89,6 +89,6 @@ package() { make install-lib -f ../${_realname}/Makefile # Install LICENSE file. - cd "${srcdir}"/$_realname + cd "${srcdir}"/${_realname} install -Dm644 COPYING.LGPLv2.1 "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-dlfcn/PKGBUILD b/mingw-w64-dlfcn/PKGBUILD index 0ef42a50a7..edd48d4df6 100644 --- a/mingw-w64-dlfcn/PKGBUILD +++ b/mingw-w64-dlfcn/PKGBUILD @@ -3,7 +3,7 @@ _realname=dlfcn pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.0 -pkgrel=1 +pkgrel=2 pkgdesc="A wrapper for dlfcn to the Win32 API (mingw-w64)" arch=('any') url="https://github.com/dlfcn-win32/dlfcn-win32" @@ -17,8 +17,8 @@ md5sums=('fc9882d8e33d06626ddb22b44c6fd4dd' '2d724d5ab315e633b46fc8993f0663a4') prepare() { - cd "$srcdir/dlfcn-win32-$pkgver" - patch -p1 -i "$srcdir"/unify-makefile.patch + cd "${srcdir}/dlfcn-win32-${pkgver}" + patch -p1 -i "${srcdir}"/unify-makefile.patch } build() { @@ -38,5 +38,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-dmake/PKGBUILD b/mingw-w64-dmake/PKGBUILD index de9eeaf78b..61868cea9a 100644 --- a/mingw-w64-dmake/PKGBUILD +++ b/mingw-w64-dmake/PKGBUILD @@ -4,7 +4,7 @@ _realname=dmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.12.2 -pkgrel=5 +pkgrel=6 pkgdesc="Dmake is a make utility similar to GNU make or the Workshop dmake (mingw-w64)" arch=('any') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") diff --git a/mingw-w64-dnscrypt-proxy/PKGBUILD b/mingw-w64-dnscrypt-proxy/PKGBUILD index 4aa95540f4..6f43e963f9 100644 --- a/mingw-w64-dnscrypt-proxy/PKGBUILD +++ b/mingw-w64-dnscrypt-proxy/PKGBUILD @@ -2,16 +2,16 @@ _realname=dnscrypt-proxy pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.2 +pkgver=1.6.0 pkgrel=1 pkgdesc="A tool for securing communications between a client and a DNS resolver (mingw-w64)" arch=("any") url="http://dnscrypt.org" license=('custom:ISC') depends=("${MINGW_PACKAGE_PREFIX}-libsodium") -source=("http://download.dnscrypt.org/${_realname}/${_realname}-$pkgver.tar.bz2" +source=("http://download.dnscrypt.org/${_realname}/${_realname}-${pkgver}.tar.bz2" 001-outside-source-build.patch) -md5sums=('9f077f9b5929e00f107474270314f7cc' +md5sums=('fa1dad8e487ab587be06e1cbccb9cfcc' 'b7be1792d360db85014bd382f92dab03') prepare() { diff --git a/mingw-w64-docbook-xml/PKGBUILD b/mingw-w64-docbook-xml/PKGBUILD index 890c3c87ef..29610e97ff 100644 --- a/mingw-w64-docbook-xml/PKGBUILD +++ b/mingw-w64-docbook-xml/PKGBUILD @@ -3,7 +3,7 @@ _realname=docbook-xml pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=4.5 -pkgrel=4 +pkgrel=5 pkgdesc="A widely used XML scheme for writing documentation and help" arch=('any') url="http://www.oasis-open.org/docbook/" @@ -35,7 +35,7 @@ package() { for ver in 4.2 4.3 4.4 4.5; do mkdir docbook-xml-${ver} pushd docbook-xml-${ver} - bsdtar xf "${startdir}/docbook-xml-${ver}.zip" + /usr/bin/bsdtar xf "${srcdir}/docbook-xml-${ver}.zip" case $ver in 4.2) patch -p1 -i ${srcdir}/4.2-Add-system.all.patch @@ -57,11 +57,11 @@ package() { #extract v4.1.2 mkdir docbook-xml-4.1.2 pushd docbook-xml-4.1.2 - bsdtar xf "${startdir}/docbkx412.zip" - patch -p1 -i ${srcdir}/4.1.2-add-catalog.all.patch - mkdir -p "${pkgdir}${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.1.2" - cp -dRf docbook.cat *.dtd ent/ *.mod \ - "${pkgdir}${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.1.2/" + /usr/bin/bsdtar xf "${srcdir}/docbkx412.zip" + patch -p1 -i ${srcdir}/4.1.2-add-catalog.all.patch + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.1.2" + cp -dRf docbook.cat *.dtd ent/ *.mod \ + "${pkgdir}${MINGW_PREFIX}/share/xml/docbook/xml-dtd-4.1.2/" popd mkdir -p "${pkgdir}${MINGW_PREFIX}/etc/xml" @@ -338,5 +338,4 @@ package() { # license install -D -m644 "${srcdir}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" - } diff --git a/mingw-w64-docbook-xsl/PKGBUILD b/mingw-w64-docbook-xsl/PKGBUILD index e3ee49630b..07bcbce806 100644 --- a/mingw-w64-docbook-xsl/PKGBUILD +++ b/mingw-w64-docbook-xsl/PKGBUILD @@ -3,7 +3,7 @@ _realname=docbook-xsl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.78.1 -pkgrel=5 +pkgrel=6 pkgdesc='XML stylesheets for Docbook-xml transformations (mingw-w64)' arch=('any') license=('custom') @@ -32,5 +32,4 @@ package() { install -Dm644 catalog.xml ${_pkgroot}/catalog.xml install -dm755 ${pkgdir}${MINGW_PREFIX}/etc/xml install -Dm644 COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE - } diff --git a/mingw-w64-dumb/PKGBUILD b/mingw-w64-dumb/PKGBUILD index e194cc9877..d526dcddf5 100644 --- a/mingw-w64-dumb/PKGBUILD +++ b/mingw-w64-dumb/PKGBUILD @@ -3,14 +3,14 @@ _realname=dumb pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.3 -pkgrel=3 +pkgrel=4 pkgdesc="IT, XM, S3M and MOD player library (mingw-w64)" arch=('any') url="http://dumb.sourceforge.net" license=("custom:dumb, GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' 'staticlibs') -source=("http://downloads.sourceforge.net/sourceforge/dumb/dumb-$pkgver.tar.gz" +source=("http://downloads.sourceforge.net/sourceforge/dumb/dumb-${pkgver}.tar.gz" "CVE-2006-3668.patch" "config.txt") sha256sums=('8d44fbc9e57f3bac9f761c3b12ce102d47d717f0dd846657fb988e0bb5d1ea33' @@ -18,7 +18,7 @@ sha256sums=('8d44fbc9e57f3bac9f761c3b12ce102d47d717f0dd846657fb988e0bb5d1ea33' '5319fd08ad12bce4fc3ec41cbeeb71a40041867c56a713d564920f32e0ff4aa2') prepare() { - cd "$srcdir/dumb-$pkgver" + cd "${srcdir}/dumb-${pkgver}" patch -p1 -i ${srcdir}/CVE-2006-3668.patch cp ${srcdir}/config.txt make/ } diff --git a/mingw-w64-editrights/PKGBUILD b/mingw-w64-editrights/PKGBUILD index 7808b08b29..994db5e6f6 100644 --- a/mingw-w64-editrights/PKGBUILD +++ b/mingw-w64-editrights/PKGBUILD @@ -3,31 +3,31 @@ _realname=editrights pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.03 -pkgrel=2 +pkgrel=3 pkgdesc="Edit special privileges of Windows accounts (mingw-w64)" arch=('any') url="http://cygwin.org/" license=('custom') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -source=("http://cygwin.cybermirror.org/release/$_realname/$_realname-$pkgver-1-src.tar.xz" +source=("http://cygwin.cybermirror.org/release/${_realname}/${_realname}-${pkgver}-1-src.tar.xz" 'uncygwinize.patch') md5sums=('f24c3c33c30516f13fc84b765020e1e7' 'ad733a23daeb1d46e98c80d334929846') prepare(){ - tar -xjf $_realname-$pkgver-1.src/$_realname-$pkgver.tar.bz2 + tar -xjf ${_realname}-${pkgver}-1.src/${_realname}-${pkgver}.tar.bz2 patch -p1 -i "${srcdir}/uncygwinize.patch" } build() { - cd $_realname + cd ${_realname} make clean make CC=${MINGW_CHOST}-gcc } package() { - cd $_realname - make DESTDIR="$pkgdir" PREFIX=${MINGW_PREFIX} install + cd ${_realname} + make DESTDIR="${pkgdir}" PREFIX=${MINGW_PREFIX} install install -Dm0644 LICENCE ${pkgdir}${MINGW_PREFIX}/share/licenses/editrights/LICENCE mv ${pkgdir}${MINGW_PREFIX}/share/doc/{Cygwin,editrights} } diff --git a/mingw-w64-emacs/PKGBUILD b/mingw-w64-emacs/PKGBUILD index 3d53f60338..30d97bada9 100644 --- a/mingw-w64-emacs/PKGBUILD +++ b/mingw-w64-emacs/PKGBUILD @@ -1,9 +1,9 @@ # Maintainer: Haroogan -_realname='emacs' +_realname=emacs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=24.5 -pkgrel=2 +pkgrel=3 pkgdesc="The extensible, customizable, self-documenting, real-time display editor (mingw-w64)" url="http://www.gnu.org/software/${_realname}/" license=('GPL3') @@ -11,7 +11,7 @@ arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-ctags" "${MINGW_PACKAGE_PREFIX}-dbus" "${MINGW_PACKAGE_PREFIX}-imagemagick" - "${MINGW_PACKAGE_PREFIX}-winpthreads") + "${MINGW_PACKAGE_PREFIX}-libwinpthread") optdepends=("${MINGW_PACKAGE_PREFIX}-giflib" "${MINGW_PACKAGE_PREFIX}-gnutls" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" @@ -22,7 +22,8 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-giflib" "${MINGW_PACKAGE_PREFIX}-xpm-nox" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-xpm-nox") options=('strip') source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz"{,.sig} 'image.c.diff' @@ -56,7 +57,7 @@ build() { CPPFLAGS="-DNDEBUG -isystem ${MINGW_PREFIX}/include" CFLAGS="-pipe -O3 -fomit-frame-pointer -funroll-loops" LDFLAGS="-s -Wl,-s" - "${srcdir}/${_realname}-${pkgver}/configure" \ + ../${_realname}-${pkgver}/configure \ --prefix="${MINGW_PREFIX}" \ --build="${MINGW_CHOST}" \ --with-wide-int="${with_wide_int}" \ diff --git a/mingw-w64-farstream/PKGBUILD b/mingw-w64-farstream/PKGBUILD index 0bccb9f8ab..96cce52291 100644 --- a/mingw-w64-farstream/PKGBUILD +++ b/mingw-w64-farstream/PKGBUILD @@ -3,7 +3,7 @@ _realname=farstream pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.2.7 -pkgrel=1 +pkgrel=2 pkgdesc="Farstream (formerly Farsight) - Audio/Video Communications Framework (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/Farstream" diff --git a/mingw-w64-fltk/PKGBUILD b/mingw-w64-fltk/PKGBUILD index 3606ba26fc..f3e699c280 100644 --- a/mingw-w64-fltk/PKGBUILD +++ b/mingw-w64-fltk/PKGBUILD @@ -3,18 +3,18 @@ _realname=fltk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.3 -pkgrel=1 +pkgrel=2 pkgdesc="C++ user interface toolkit (mingw-w64)" arch=('any') url="http://www.fltk.org" license=('LGPLv2+ with exceptions') -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libiconv" +depends=("${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo") + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' 'staticlibs' 'buildflags') source=("http://fltk.org/pub/fltk/${pkgver}/${_realname}-${pkgver}-source.tar.gz") @@ -31,7 +31,8 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --enable-shared - make VERBOSE=1 + + make VERBOSE=1 } package() { diff --git a/mingw-w64-ftgl/PKGBUILD b/mingw-w64-ftgl/PKGBUILD index ee319a53b0..29c976133b 100644 --- a/mingw-w64-ftgl/PKGBUILD +++ b/mingw-w64-ftgl/PKGBUILD @@ -1,25 +1,28 @@ # Maintainer: Alexey Pavlov _realname=ftgl - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pkgver=2.1.3-rc5 pkgver=${_pkgver/-/} -pkgrel=1 +pkgrel=2 pkgdesc="OpenGL library to use arbitrary fonts (mingw-w64)" arch=('any') url="http://ftgl.wiki.sourceforge.net/" license=("MIT") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-freetype") +makedepends=("${MINGW_PACKAGE_PREFIX}-cppunit" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-freetype") options=('staticlibs' 'strip') -source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$_pkgver.tar.bz2" - m4.gl.m4.patch) +source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${_pkgver}.tar.bz2" + m4.gl.m4.patch) md5sums=('c7879018cde844059495b3029b0b6503' '8590beb2dea7e28e7b7214ed562b2472') prepare () { - cd "${srcdir}/${_realname}-${_pkgver/-/~}" + cd "${srcdir}/${_realname}-${_pkgver/-/\~}" sed -i "s|SUBDIRS = src test demo docs|SUBDIRS = src|g" Makefile.am patch -p0 -i "${srcdir}"/m4.gl.m4.patch autoreconf -vfi @@ -29,7 +32,7 @@ build() { rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ../"${_realname}-${_pkgver/-/~}"/configure \ + ../"${_realname}-${_pkgver/-/\~}"/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -41,10 +44,10 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make ECHO=echo DESTDIR="$pkgdir" install + make ECHO=echo DESTDIR="${pkgdir}" install # FS#23283: install missing headers for OpenCascade - install -m644 $srcdir/"${_realname}-${_pkgver/-/~}"/src/FT{Face,Library,Size}.h "${pkgdir}${MINGW_PREFIX}/include/FTGL/" + install -m644 $srcdir/"${_realname}-${_pkgver/-/\~}"/src/FT{Face,Library,Size}.h "${pkgdir}${MINGW_PREFIX}/include/FTGL/" - install -Dm644 $srcdir/"${_realname}-${_pkgver/-/~}"/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 $srcdir/"${_realname}-${_pkgver/-/\~}"/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-gdb/PKGBUILD b/mingw-w64-gdb/PKGBUILD index 9a12023873..13608add18 100644 --- a/mingw-w64-gdb/PKGBUILD +++ b/mingw-w64-gdb/PKGBUILD @@ -2,12 +2,12 @@ # Contributor: Ray Donnelly _realname=gdb -_gcc_ver=5.1.0 +_gcc_ver=5.2.0 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") # Until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62279 is # fixed, we will stick with 7.6.2 which hasn't got this bug.. pkgver=7.9.1 -pkgrel=2 +pkgrel=3 pkgdesc="GNU Debugger (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gdb/" diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index 256b6d18de..9981a9f124 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -3,14 +3,14 @@ _realname=gettext pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.19.4 -pkgrel=4 +pkgver=0.19.5.1 +pkgrel=1 arch=('any') pkgdesc="GNU internationalization library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv" #"${MINGW_PACKAGE_PREFIX}-termcap" - ) + ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-ncurses") options=('strip' 'staticlibs') @@ -26,7 +26,7 @@ source=("http://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-${pkgver}.tar.gz"{ 06-dont-include-ctype-after-gnulibs-wctype.mingw.patch 07-fix-asprintf-conflict.mingw.patch 08-vs-compatible.patch) -md5sums=('d3511af1e604a3478900d2c2b4a4a48e' +md5sums=('2b2ab90f6405a414bbe30cf6655f3e28' 'SKIP' '397d7d6d4abd15a70edb3c9f2bab4cd2' '6fc5459e5afa3f9df7602fcd1d09355b' @@ -37,7 +37,7 @@ md5sums=('d3511af1e604a3478900d2c2b4a4a48e' 'f5b611172ae58f1e4589a8d0c1d53414') prepare() { - cd "${srcdir}/${_realname}-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" rm -rf gettext-runtime/intl/canonicalize.c \ gettext-runtime/intl/relocatex.c \ gettext-runtime/intl/relocatex.h \ diff --git a/mingw-w64-gexiv2/PKGBUILD b/mingw-w64-gexiv2/PKGBUILD index e4f3b6f6b7..5be13c34d9 100644 --- a/mingw-w64-gexiv2/PKGBUILD +++ b/mingw-w64-gexiv2/PKGBUILD @@ -3,7 +3,7 @@ _realname=gexiv2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.10.3 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="GObject-based wrapper around the Exiv2 library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" @@ -11,12 +11,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-python2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-python2-gobject" + "${MINGW_PACKAGE_PREFIX}-python3-gobject" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "gtk-doc") options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) sha256sums=('390cfb966197fa9f3f32200bc578d7c7f3560358c235e6419657206a362d3988' '1ba351119f9112ba649dd4397b712ee04d8327d5d056d3587f77c824f7846438') @@ -29,6 +31,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -44,6 +47,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-ghex/PKGBUILD b/mingw-w64-ghex/PKGBUILD index d723b35d6d..877e491431 100644 --- a/mingw-w64-ghex/PKGBUILD +++ b/mingw-w64-ghex/PKGBUILD @@ -3,18 +3,18 @@ _realname=ghex pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.10.1 -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="GNOME Hex editor for files (mingw-w64)" options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme") + "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") license=("GPL 2") url="http://www.gnome.org" install=ghex-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-nohelp.patch 002-fread.patch 004-localedir-fix.patch) @@ -34,6 +34,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -43,10 +44,11 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-ghex/ghex-i686.install b/mingw-w64-ghex/ghex-i686.install index 39341fa875..1056eadbc3 100644 --- a/mingw-w64-ghex/ghex-i686.install +++ b/mingw-w64-ghex/ghex-i686.install @@ -1,13 +1,13 @@ post_install() { - mingw32/bin/gtk-update-icon-cache -f -t /mingw32/share/icons/hicolor - mingw32/bin/gtk-update-icon-cache -f -t /mingw32/share/icons/HighContrast - mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas + mingw32/bin/gtk-update-icon-cache-3.0 -f -t /mingw32/share/icons/hicolor + mingw32/bin/gtk-update-icon-cache-3.0 -f -t /mingw32/share/icons/HighContrast + mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas } post_upgrade() { - post_install $1 + post_install $1 } post_remove() { - post_install $1 + post_install $1 } diff --git a/mingw-w64-ghex/ghex-x86_64.install b/mingw-w64-ghex/ghex-x86_64.install index ee12212924..05e2963202 100644 --- a/mingw-w64-ghex/ghex-x86_64.install +++ b/mingw-w64-ghex/ghex-x86_64.install @@ -1,13 +1,13 @@ post_install() { - mingw64/bin/gtk-update-icon-cache -f -t /mingw64/share/icons/hicolor - mingw64/bin/gtk-update-icon-cache -f -t /mingw64/share/icons/HighContrast - mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas + mingw64/bin/gtk-update-icon-cache-3.0 -f -t /mingw64/share/icons/hicolor + mingw64/bin/gtk-update-icon-cache-3.0 -f -t /mingw64/share/icons/HighContrast + mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas } post_upgrade() { - post_install $1 + post_install $1 } post_remove() { - post_install $1 + post_install $1 } diff --git a/mingw-w64-gl2ps/PKGBUILD b/mingw-w64-gl2ps/PKGBUILD index 0975ce767a..2c12e79a88 100644 --- a/mingw-w64-gl2ps/PKGBUILD +++ b/mingw-w64-gl2ps/PKGBUILD @@ -6,14 +6,13 @@ _realname=gl2ps pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.8 -pkgrel=3 +pkgrel=4 pkgdesc="an OpenGL to PostScript printing library (mingw-w64)" arch=('any') url='http://geuz.org/gl2ps/' license=('BSD') -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") -optdepends=() -conflicts=() +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc") source=("http://geuz.org/gl2ps/src/gl2ps-${pkgver}.tgz" "0001-MSYS2-FHS-layout.patch") sha1sums=('792e11db0fe7a30a4dc4491af5098b047ec378b1' @@ -25,22 +24,21 @@ prepare() { } build() { - cd "${srcdir}" - [ -d build-${CARCH} ] && rm -rf build-${CARCH} - mkdir build-${CARCH} - cd build-${CARCH} + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir build-${MINGW_CHOST} + cd build-${MINGW_CHOST} - cmake \ + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -G'MSYS Makefiles' \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ ../${_realname}-${pkgver}-source make - } package() { - cd "${srcdir}/build-${CARCH}" - make install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-glfw/PKGBUILD b/mingw-w64-glfw/PKGBUILD index f88665a654..b23b8e2c52 100644 --- a/mingw-w64-glfw/PKGBUILD +++ b/mingw-w64-glfw/PKGBUILD @@ -2,9 +2,9 @@ _realname=glfw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.1 +pkgver=3.1.1 pkgrel=1 -pkgdesc="A free, open source, portable framework for OpenGL application development. (mingw-w64)" +pkgdesc="A free, open source, portable framework for OpenGL application development (mingw-w64)" arch=('any') url="http://www.glfw.org/" license=('custom:ZLIB') @@ -13,9 +13,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") optdepends=() conflicts=() options=('staticlibs' 'strip') -source=(http://downloads.sourceforge.net/project/glfw/glfw/$pkgver/${_realname}-$pkgver.tar.gz +source=(http://downloads.sourceforge.net/project/glfw/glfw/${pkgver}/${_realname}-${pkgver}.tar.gz 001-cmake-config-location.patch) -sha1sums=('32f2dcc188694fb5823e24cc65c8f69f32f58bb1' +sha1sums=('67ab94ccd4f8bd08ea43f02a97c35ff843a368a9' '3c3f953929d9fcb4d7fbac931cad736889156ca1') prepare() { @@ -28,35 +28,39 @@ build() { [[ -d ${srcdir}/static-${MINGW_CHOST} ]] && rm -rf ${srcdir}/static-${MINGW_CHOST} mkdir -p ${srcdir}/static-${MINGW_CHOST} cd ${srcdir}/static-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -DCMAKE_C_COMPILER=${CARCH}-w64-mingw32-gcc \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_C_COMPILER=${MINGW_CHOST}-gcc \ -DBUILD_SHARED_LIBS=ON \ -DGLFW_BUILD_DOCS=OFF \ - "../${_realname}-${pkgver}" + ../${_realname}-${pkgver} make # Build shared libs [[ -d ${srcdir}/shared-${MINGW_CHOST} ]] && rm -rf ${srcdir}/shared-${MINGW_CHOST} mkdir -p ${srcdir}/shared-${MINGW_CHOST} cd ${srcdir}/shared-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -DCMAKE_C_COMPILER=${CARCH}-w64-mingw32-gcc \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_C_COMPILER=${MINGW_CHOST}-gcc \ -DBUILD_SHARED_LIBS=OFF \ -DGLFW_BUILD_DOCS=OFF \ - "../${_realname}-${pkgver}" + ../${_realname}-${pkgver} make } package() { - cd "$srcdir/static-${MINGW_CHOST}" - make install + cd "${srcdir}/static-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install cd "${srcdir}/shared-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install mv ${pkgdir}${MINGW_PREFIX}/lib/glfw3dll.a ${pkgdir}${MINGW_PREFIX}/lib/libglfw3.dll.a mkdir -p ${pkgdir}${MINGW_PREFIX}/bin @@ -65,10 +69,4 @@ package() { #copy license file mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" cp "${srcdir}/${_realname}-${pkgver}/COPYING.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/glfw3.pc } diff --git a/mingw-w64-glm/PKGBUILD b/mingw-w64-glm/PKGBUILD index cbbdab2bf0..8db7364548 100644 --- a/mingw-w64-glm/PKGBUILD +++ b/mingw-w64-glm/PKGBUILD @@ -3,13 +3,13 @@ _realname=glm pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.6.3 -pkgrel=1 +pkgrel=2 pkgdesc="C++ mathematics library for 3D software based on the OpenGL Shading Language (GLSL) specification (mingw-w64)" arch=('any') url='http://glm.g-truc.net' license=('MIT') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -source=("http://sourceforge.net/projects/ogl-math/files/glm-$pkgver/glm-$pkgver.zip" +source=("http://sourceforge.net/projects/ogl-math/files/glm-${pkgver}/glm-${pkgver}.zip" 001-remove-missing-define.patch) md5sums=('acd0b517c37ed25c3f11ee155ee8257e' 'f28ad01cff9055123e82d46b70435b97') @@ -20,11 +20,14 @@ prepare() { } build() { - mkdir $srcdir/build-${MINGW_CHOST} - cd "$srcdir/build-${MINGW_CHOST}" + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd "${srcdir}/build-${MINGW_CHOST}" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DGLM_TEST_ENABLE=ON \ ../${_realname} @@ -32,15 +35,16 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/doc cp -r $srcdir/${_realname}/doc ${pkgdir}${MINGW_PREFIX}/share/doc/glm rm -f ${pkgdir}${MINGW_PREFIX}/include/glm/CMakeLists.txt find ${pkgdir}${MINGW_PREFIX} -type f -exec chmod 644 {} \; find ${pkgdir}${MINGW_PREFIX} -type d -exec chmod 755 {} \; - #install -Dm644 $srcdir/${_realname}/util/FindGLM.cmake ${pkgdir}${MINGW_PREFIX}/share/cmake-3.1/Modules/FindGLM.cmake - install -Dm644 $srcdir/${_realname}/copying.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + #install -Dm644 ${srcdir}/${_realname}/util/FindGLM.cmake ${pkgdir}${MINGW_PREFIX}/share/cmake-3.2/Modules/FindGLM.cmake + install -Dm644 ${srcdir}/${_realname}/copying.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-glpk/PKGBUILD b/mingw-w64-glpk/PKGBUILD index 838d093cbf..3da65e828b 100644 --- a/mingw-w64-glpk/PKGBUILD +++ b/mingw-w64-glpk/PKGBUILD @@ -3,7 +3,7 @@ _realname=glpk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.55 -pkgrel=2 +pkgrel=3 pkgdesc="GNU Linear Programming Kit: solve LP, MIP and other problems (mingw-w64)" arch=('any') url="http://www.gnu.org/software/glpk/glpk.html" @@ -13,18 +13,17 @@ options=('staticlibs' !strip debug) source=("http://ftp.gnu.org/gnu/glpk/glpk-${pkgver}.tar.gz" 'timeval-64bit.patch') sha1sums=('893058aada022a8dfc63c675ebcd7e7e86a3a363' - '18a4315cf751c0e1121d25dbb115aa6187324128') + 'b496de484eb3df16dd91c253cd8230b4e42fb902') prepare () { cd "${srcdir}/glpk-${pkgver}" + patch -p1 -i "${srcdir}/timeval-64bit.patch" sed -i "s|-version-info|-no-undefined -version-info|g" src/Makefile.am autoreconf -vfi - patch -p1 -i "${srcdir}/timeval-64bit.patch" } build() { - cd "${srcdir}" - [ -d build-${CARCH} ] && rm -rf build-${CARCH} + [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} mkdir -p build-${CARCH} && cd build-${CARCH} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ diff --git a/mingw-w64-gmime/PKGBUILD b/mingw-w64-gmime/PKGBUILD index de024bd5a5..8cc066f790 100644 --- a/mingw-w64-gmime/PKGBUILD +++ b/mingw-w64-gmime/PKGBUILD @@ -3,19 +3,20 @@ _realname=gmime pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.6.20 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Glorious MIME Utility Library (mingw-w64)" options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libiconv") -makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-vala" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-vala" "gtk-doc") license=("LGPL 2.1") url="http://www.gnome.org" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) sha256sums=('e0a170fb264c2ae4cecd852f4e7aaddb8d58e8f3f0b569ce2d2a4704f55bdf65' 'f1fd6b8ad76f083be818623c1083c777880bb56356f87735fb407f5da0ec66a8') @@ -29,6 +30,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -48,7 +50,7 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-gnome-calculator/001-win.patch b/mingw-w64-gnome-calculator/001-win.patch index c3ac891e5a..58b76ae1c4 100644 --- a/mingw-w64-gnome-calculator/001-win.patch +++ b/mingw-w64-gnome-calculator/001-win.patch @@ -1,37 +1,3 @@ ---- ./m4/intltool.m4.orig 2015-03-22 19:20:14.000000000 +0100 -+++ ./m4/intltool.m4 2015-04-15 21:58:52.592827100 +0200 -@@ -155,31 +155,6 @@ - # Substitute ALL_LINGUAS so we can use it in po/Makefile - AC_SUBST(ALL_LINGUAS) - --# Set DATADIRNAME correctly if it is not set yet --# (copied from glib-gettext.m4) --if test -z "$DATADIRNAME"; then -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[]], -- [[extern int _nl_msg_cat_cntr; -- return _nl_msg_cat_cntr]])], -- [DATADIRNAME=share], -- [case $host in -- *-*-solaris*) -- dnl On Solaris, if bind_textdomain_codeset is in libc, -- dnl GNU format message catalog is always supported, -- dnl since both are added to the libc all together. -- dnl Hence, we'd like to go with DATADIRNAME=share -- dnl in this case. -- AC_CHECK_FUNC(bind_textdomain_codeset, -- [DATADIRNAME=share], [DATADIRNAME=lib]) -- ;; -- *) -- [DATADIRNAME=lib] -- ;; -- esac]) --fi --AC_SUBST(DATADIRNAME) -- - IT_PO_SUBDIR([po]) - - ]) --- ./Makefile.am.orig 2015-01-29 16:28:18.000000000 +0100 +++ ./Makefile.am 2015-04-15 21:58:52.598827600 +0200 @@ -1,4 +1,4 @@ @@ -40,38 +6,6 @@ # Temporary fix for JHBuild, see https://bugzilla.gnome.org/show_bug.cgi?id=641652 ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 ---- ./po/Makefile.in.in.orig 2015-03-22 19:20:14.000000000 +0100 -+++ ./po/Makefile.in.in 2015-04-15 21:58:52.605827300 +0200 -@@ -33,8 +33,7 @@ - datadir = @datadir@ - datarootdir = @datarootdir@ - libdir = @libdir@ --DATADIRNAME = @DATADIRNAME@ --itlocaledir = $(prefix)/$(DATADIRNAME)/locale -+localedir = @localedir@ - subdir = po - install_sh = @install_sh@ - # Automake >= 1.8 provides @mkdir_p@. -@@ -108,7 +107,7 @@ - install-data-yes: all - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ -+ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ -@@ -142,8 +141,8 @@ - uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - - check: all $(GETTEXT_PACKAGE).pot --- ./search-provider/Makefile.am.orig 2015-01-29 16:28:18.000000000 +0100 +++ ./search-provider/Makefile.am 2015-04-15 21:58:52.610827700 +0200 @@ -1,6 +1,12 @@ diff --git a/mingw-w64-gnome-calculator/PKGBUILD b/mingw-w64-gnome-calculator/PKGBUILD index 6ebb7bb400..a4bc24f594 100644 --- a/mingw-w64-gnome-calculator/PKGBUILD +++ b/mingw-w64-gnome-calculator/PKGBUILD @@ -2,8 +2,8 @@ _realname=gnome-calculator pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 -pkgrel=2 +pkgver=3.16.2 +pkgrel=1 arch=('any') pkgdesc="GNOME desktop calculator (mingw-w64)" options=(strip staticlibs) @@ -12,17 +12,17 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-gtksourceview3" "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-mpfr") + "${MINGW_PACKAGE_PREFIX}-mpfr") makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") license=("GPL 2") url="http://www.gnome.org" install=${_realname}-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) -sha256sums=('bbc2fbc4692e30a2b12755bf79a4dce6288b5d419f81331d738a47da27b71519' - '28cb31e68274fc2c30d0495ee3d5f240f3803e1140633cb08dafa1a7c4a5b08e') +sha256sums=('f4c6ca7e0eda0dbb7d5cfb85ee9fe3351b1d8bd1bf05ce890939374b95e230a0' + '7555c43e7b4aa3c6041f0c1641e96186adc02092cb0b5b83fb45f6276e271248') prepare() { cd "${srcdir}"/${_realname}-${pkgver} @@ -35,6 +35,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -49,8 +50,8 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-gnonlin-git/PKGBUILD b/mingw-w64-gnonlin/PKGBUILD similarity index 57% rename from mingw-w64-gnonlin-git/PKGBUILD rename to mingw-w64-gnonlin/PKGBUILD index d83b67adc0..99d91ba75c 100644 --- a/mingw-w64-gnonlin-git/PKGBUILD +++ b/mingw-w64-gnonlin/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Lubosz Sarnecki _realname=gnonlin -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.3.0.1.733.c91c4e4 +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") +pkgver=1.4.0 pkgrel=1 pkgdesc="GStreamer Non-Linear plugins (mingw-w64)" arch=('any') @@ -12,33 +11,19 @@ url="http://gstreamer.freedesktop.org/" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-python2" - "git") + "${MINGW_PACKAGE_PREFIX}-python2") depends=("${MINGW_PACKAGE_PREFIX}-gst-plugins-base" "${MINGW_PACKAGE_PREFIX}-gstreamer") options=(!libtool strip staticlibs) -source=("git://anongit.freedesktop.org/gstreamer/$_realname") -md5sums=('SKIP') - -pkgver() { - cd $_realname - version=$(grep AC_INIT configure.ac | sed 's/AC_INIT(GNonLin, //' | sed 's/,//') - hash=$(git log --pretty=format:'%h' -n 1) - revision=$(git rev-list --count HEAD) - echo $version.$revision.$hash -} - -prepare() { - cd $_realname - NOCONFIGURE=1 ./autogen.sh -} +source=("http://gstreamer.freedesktop.org/src/${_realname}/${_realname}-${pkgver}.tar.xz") +md5sums=('106899d1ee36e18f92bb838244d585eb') build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - cp -r "${srcdir}/${_realname}" "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + #cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ./configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -46,12 +31,13 @@ build() { --enable-shared \ --enable-silent-rules \ --disable-gtk-doc + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a } diff --git a/mingw-w64-gsasl/PKGBUILD b/mingw-w64-gsasl/PKGBUILD index a15bfaab93..5228f855cd 100644 --- a/mingw-w64-gsasl/PKGBUILD +++ b/mingw-w64-gsasl/PKGBUILD @@ -3,7 +3,7 @@ _realname=gsasl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.8.0 -pkgrel=2 +pkgrel=3 pkgdesc="Simple Authentication and Security Layer framework and a few common SASL mechanisms (mingw-w64)" arch=('any') url="http://josefsson.org/gsasl/" @@ -40,6 +40,7 @@ build() { --enable-shared \ --enable-static \ --disable-kerberos_v5 + make -j1 } diff --git a/mingw-w64-gss-git/001-autoconf.patch b/mingw-w64-gss/001-autoconf.patch similarity index 59% rename from mingw-w64-gss-git/001-autoconf.patch rename to mingw-w64-gss/001-autoconf.patch index 8165de29a2..4f8ee7ea19 100644 --- a/mingw-w64-gss-git/001-autoconf.patch +++ b/mingw-w64-gss/001-autoconf.patch @@ -9,12 +9,3 @@ gl_EARLY libgl_EARLY srcgl_EARLY -@@ -53,7 +53,7 @@ - - # Internationalization. - AM_GNU_GETTEXT([external]) --AM_GNU_GETTEXT_VERSION([0.18.1]) -+AM_GNU_GETTEXT_VERSION([0.18.3]) - - # For gnulib stuff. - gl_INIT diff --git a/mingw-w64-gss-git/002-gnulib.patch b/mingw-w64-gss/002-gnulib.patch similarity index 83% rename from mingw-w64-gss-git/002-gnulib.patch rename to mingw-w64-gss/002-gnulib.patch index c9b2b8b5f2..e0d3c4c998 100644 --- a/mingw-w64-gss-git/002-gnulib.patch +++ b/mingw-w64-gss/002-gnulib.patch @@ -1,33 +1,3 @@ -diff --git a/src/gl/msvc-inval.c b/src/gl/msvc-inval.c ---- a/src/gl/msvc-inval.c -+++ b/src/gl/msvc-inval.c -@@ -28,7 +28,7 @@ - - # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING - --static void cdecl -+static void __cdecl - gl_msvc_invalid_parameter_handler (const wchar_t *expression, - const wchar_t *function, - const wchar_t *file, -@@ -45,7 +45,7 @@ gl_msvc_invalid_parameter_handler (const wchar_t *expression, - - # if defined _MSC_VER - --static void cdecl -+static void __cdecl - gl_msvc_invalid_parameter_handler (const wchar_t *expression, - const wchar_t *function, - const wchar_t *file, -@@ -94,7 +94,7 @@ gl_msvc_inval_current (void) - } - } - --static void cdecl -+static void __cdecl - gl_msvc_invalid_parameter_handler (const wchar_t *expression, - const wchar_t *function, - const wchar_t *file, --- /dev/null 2014-07-18 12:33:18.000000000 +0400 +++ b/src/gl/getline.c 2014-07-18 12:30:11.369400000 +0400 @@ -0,0 +1,27 @@ diff --git a/mingw-w64-gss-git/PKGBUILD b/mingw-w64-gss/PKGBUILD similarity index 57% rename from mingw-w64-gss-git/PKGBUILD rename to mingw-w64-gss/PKGBUILD index 773a5ab811..af3975f18e 100644 --- a/mingw-w64-gss-git/PKGBUILD +++ b/mingw-w64-gss/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=gss -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r1479.6fdb450 +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") +pkgver=1.0.3 pkgrel=1 pkgdesc="GNU Generic Security Service (mingw-w64)" arch=('any') @@ -13,42 +12,36 @@ license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git" "wget" "texinfo") options=('strip' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-shishi") -source=("${_realname}"::"git+git://git.sv.gnu.org/gss.git" +source=(ftp://ftp.gnu.org/gnu/gss/${_realname}-${pkgver}.tar.gz{,.sig} 001-autoconf.patch 002-gnulib.patch) -md5sums=('SKIP' - 'c1992b9d05bf29af92d44b84b5b80189' - '4984e4ef1bc87635b9d71cd96b8a3737') - -pkgver() { - cd "$srcdir/$_realname" - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" -} +md5sums=('441859b30bed73010d426c087c71aac5' + 'SKIP' + '1d8b5c6304addb6457f62a7a30b3bdce' + '65794ac1b601166816f5266f44126ab6') prepare() { - cd ${_realname} + cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-autoconf.patch patch -p1 -i ${srcdir}/002-gnulib.patch touch doc/Makefile.gdoc - rm -f aclocal.m4 - cp -rf build-aux/snippet ${srcdir}/ - WANT_AUTOMAKE=latest autoreconf -fi - cp -rf ${srcdir}/snippet build-aux/ - cd .. - cp -rf ${_realname} build-${MINGW_CHOST} + WANT_AUTOMAKE=latest autoreconf -fi + } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} - ./configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-shared \ --enable-static - make update-po + make -j1 } diff --git a/mingw-w64-gtk-engine-unico/PKGBUILD b/mingw-w64-gtk-engine-unico/PKGBUILD index 4ce7db5317..f4eba498a3 100644 --- a/mingw-w64-gtk-engine-unico/PKGBUILD +++ b/mingw-w64-gtk-engine-unico/PKGBUILD @@ -7,7 +7,7 @@ _realname=gtk-engine-unico pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.2 -pkgrel=1 +pkgrel=2 pkgdesc='Unico GTK3 theme engine' arch=('any') url='https://launchpad.net/unico' @@ -15,23 +15,21 @@ license=('GPL') depends=("${MINGW_PACKAGE_PREFIX}-gtk3") makedepends=("${MINGW_PACKAGE_PREFIX}-gnome-common") source=("gtk-engine-unico-139.tar.gz::http://bazaar.launchpad.net/~unico-team/unico/trunk/tarball/139") -sha256sums=('SKIP') +sha256sums=('9ef0ef5dfbbb5f352a864a3d91f13872d05361343e5d4cc3be48d1f061189251') build() { - cd ~unico-team/unico/trunk + cd \~unico-team/unico/trunk autoreconf -fi mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ${srcdir}/~unico-team/unico/trunk/configure --prefix=${MINGW_PREFIX} --disable-static + ${srcdir}/\~unico-team/unico/trunk/configure --prefix=${MINGW_PREFIX} --disable-static make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="${pkgdir}" install } # vim: ts=2 sw=2 et: - diff --git a/mingw-w64-gtk-vnc/PKGBUILD b/mingw-w64-gtk-vnc/PKGBUILD index 1fbbec122a..769ac66b37 100644 --- a/mingw-w64-gtk-vnc/PKGBUILD +++ b/mingw-w64-gtk-vnc/PKGBUILD @@ -3,10 +3,10 @@ _realname=gtk-vnc pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.5.4 -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="VNC viewer widget for GTK+ (mingw-w64)" -options=(strip staticlibs) +options=('strip' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-cyrus-sasl" "${MINGW_PACKAGE_PREFIX}-gnutls" "${MINGW_PACKAGE_PREFIX}-gtk3" @@ -21,7 +21,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs') license=("GPL 2.1") url="http://www.gnome.org" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) sha256sums=('488aa97a76ce6868160699cd45d4a0ee0fe6f0ad4631737c6ddd84450f6c9ce7' '503b12e64f6d843fd018e00e3b3221511656d03905516a80a410d44a2deccd40') @@ -52,8 +52,8 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" } diff --git a/mingw-w64-gtkglext/PKGBUILD b/mingw-w64-gtkglext/PKGBUILD index 87d8616ac0..c94bdf1405 100644 --- a/mingw-w64-gtkglext/PKGBUILD +++ b/mingw-w64-gtkglext/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=gtkglext - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2.0 -pkgrel=1 +pkgrel=2 pkgdesc="opengl extensions for gtk2 (mingw-w64)" arch=('any') url="http://gtkglext.sourceforge.net" @@ -13,9 +12,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gtk2" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2") options=('staticlibs' 'strip') source=("http://downloads.sourceforge.net/sourceforge/gtkglext/gtkglext-${pkgver}.tar.bz2" - "gtk2.20.patch" - "gtkglext-1.0.6-pangox.patch" - ) + "gtk2.20.patch" + "gtkglext-1.0.6-pangox.patch") md5sums=('ed7ba24ce06a8630c07f2d0ee5f04ab4' 'e5a87ec3f2d0e616c6f32f90c3f7237f' '7e35925b3c722717f969558cc627f39f') @@ -40,12 +38,12 @@ build() { --disable-glibtest \ --disable-gtktest \ --disable-debug + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm - #rm -r "${pkgdir}${MINGW_PREFIX}/share" -} \ No newline at end of file +} diff --git a/mingw-w64-gxml/PKGBUILD b/mingw-w64-gxml/PKGBUILD index 047baa2624..dabe3b5d1b 100644 --- a/mingw-w64-gxml/PKGBUILD +++ b/mingw-w64-gxml/PKGBUILD @@ -2,25 +2,27 @@ _realname=gxml pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.4.1 -pkgrel=2 +pkgver=0.6.0 +pkgrel=1 arch=('any') pkgdesc="LibXML2 GObject wrapper version 0.4 (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-xz" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-glib2>=2.34.0" - "${MINGW_PACKAGE_PREFIX}-libgee" - "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-libtool") + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-glib2>=2.34.0" + "${MINGW_PACKAGE_PREFIX}-libgee" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-libtool" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") options=('strip' 'staticlibs') license=('LGPL') url="http://live.gnome.org/GXml" source=("http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver:0:3}/${_realname}-${pkgver}.tar.xz") -sha256sums=('f821c5b076208aa311151c263b951aaab27991663edd1918c05522aa0463663d') +sha256sums=('50f5e1b691fcc2994264565bcbfa4cfcd386bd01ea98c9fbec3ae4ec66ce7fc8') prepare() { cd "${srcdir}"/${_realname}-${pkgver} diff --git a/mingw-w64-hidapi/PKGBUILD b/mingw-w64-hidapi/PKGBUILD index 55317bdac5..558bee415f 100644 --- a/mingw-w64-hidapi/PKGBUILD +++ b/mingw-w64-hidapi/PKGBUILD @@ -4,7 +4,7 @@ _realname=hidapi pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pre=rc1 pkgver=0.8.0${_pre} -pkgrel=2 +pkgrel=3 pkgdesc="Library for communicating with USB and Bluetooth HID devices (mingw-w64)" arch=('any') url="http://www.signal11.us/oss/hidapi/" @@ -35,5 +35,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-icoutils/PKGBUILD b/mingw-w64-icoutils/PKGBUILD index 82b7d277ed..4ce30a8cd1 100644 --- a/mingw-w64-icoutils/PKGBUILD +++ b/mingw-w64-icoutils/PKGBUILD @@ -3,7 +3,7 @@ _realname=icoutils pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.31.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Create and extract MS Windows icons and cursors (mingw-w64)" options=(strip staticlibs) @@ -37,6 +37,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-id3lib/PKGBUILD b/mingw-w64-id3lib/PKGBUILD index 5887fb5519..e24bf565d0 100644 --- a/mingw-w64-id3lib/PKGBUILD +++ b/mingw-w64-id3lib/PKGBUILD @@ -3,13 +3,14 @@ _realname=id3lib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.8.3 -pkgrel=1 +pkgrel=2 pkgdesc='Library for reading, writing, and manipulating ID3v1 and ID3v2 tags (mingw-w64)' arch=('any') license=('LGPL') url="http://id3lib.sourceforge.net/" options=('staticlibs') -depends=("${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-gcc-libs") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-zlib" ) source=(http://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-${pkgver}.tar.gz 00-add-libz-to-compilation.patch 05-create-m4-directory.patch @@ -90,7 +91,7 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -d "${pkgdir}${MINGW_PREFIX}"/share/man/man1 cp ${srcdir}/${_realname}-${pkgver}/doc/man/* "${pkgdir}${MINGW_PREFIX}"/share/man/man1 diff --git a/mingw-w64-indent/PKGBUILD b/mingw-w64-indent/PKGBUILD index 9a5082073b..2d7a912d9d 100644 --- a/mingw-w64-indent/PKGBUILD +++ b/mingw-w64-indent/PKGBUILD @@ -4,7 +4,7 @@ _realname=indent pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.2.11 -pkgrel=3 +pkgrel=4 pkgdesc="C language source code formatting program (mingw-w64)" arch=('any') url="https://www.gnu.org/software/indent/" @@ -47,11 +47,12 @@ prepare() { } build() { - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ - --{host,build}=${MINGW_CHOST} + --{host,build}=${MINGW_CHOST} + make -j1 } diff --git a/mingw-w64-irrlicht/PKGBUILD b/mingw-w64-irrlicht/PKGBUILD index ad577c59fc..64a417fb92 100644 --- a/mingw-w64-irrlicht/PKGBUILD +++ b/mingw-w64-irrlicht/PKGBUILD @@ -1,22 +1,21 @@ # Maintainer: Alexey Pavlov _realname=irrlicht - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.8.1 -pkgrel=2 -pkgdesc="An open source high performance realtime 3D graphics engine. (mingw-w64)" +pkgrel=3 +pkgdesc="An open source high performance realtime 3D graphics engine (mingw-w64)" arch=('any') url="http://irrlicht.sourceforge.net" license=("ZLIB") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "dos2unix") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' 'staticlibs') -source=("http://downloads.sourceforge.net/irrlicht/irrlicht-$pkgver.zip") +source=("http://downloads.sourceforge.net/irrlicht/irrlicht-${pkgver}.zip") md5sums=('f4f7fa33bd1060eb0dd51dcd66b0f6e3') prepare() { - cd "$srcdir" + cd "${srcdir}" find . -type f -exec dos2unix {} \; } diff --git a/mingw-w64-jansson/PKGBUILD b/mingw-w64-jansson/PKGBUILD index dd6a3fdf89..198778e747 100644 --- a/mingw-w64-jansson/PKGBUILD +++ b/mingw-w64-jansson/PKGBUILD @@ -4,8 +4,8 @@ _realname=jansson pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7 -pkgrel=1 -pkgdesc="A C library for encoding, decoding and manipulating JSON data" +pkgrel=2 +pkgdesc="A C library for encoding, decoding and manipulating JSON data (mingw-w64)" arch=('any') url="http://www.digip.org/jansson/" license=('MIT') @@ -17,9 +17,10 @@ prepare() { } build() { - mkdir -p "${srcdir}/build-${CARCH}" - cd "${srcdir}/build-${CARCH}" - "${srcdir}/${_realname}-$pkgver"/configure \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -28,6 +29,6 @@ build() { } package() { - cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-jemalloc/PKGBUILD b/mingw-w64-jemalloc/PKGBUILD index dc2945f102..611747e2cf 100644 --- a/mingw-w64-jemalloc/PKGBUILD +++ b/mingw-w64-jemalloc/PKGBUILD @@ -3,26 +3,26 @@ _realname=jemalloc pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=3.6.0 -pkgrel=1 +pkgrel=2 pkgdesc="General-purpose scalable concurrent malloc implementation (mingw64)" arch=('any') url="http://www.canonware.com/jemalloc/" license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -source=(http://www.canonware.com/download/jemalloc/${_realname}-$pkgver.tar.bz2 +source=(http://www.canonware.com/download/jemalloc/${_realname}-${pkgver}.tar.bz2 001-fix-library-extension.patch) sha256sums=('e16c2159dd3c81ca2dc3b5c9ef0d43e1f2f45b04548f42db12e7c12d7bdf84fe' '074700fcdb9d0548668d5e1f8a61b3571e35c839f45036146bb2e112ad5a5d9d') prepare() { - cd $srcdir/${_realname}-$pkgver + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-fix-library-extension.patch # ./autogen.sh } build() { - cd $srcdir/${_realname}-$pkgver + cd ${srcdir}/${_realname}-${pkgver} [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} @@ -38,7 +38,7 @@ build() { package() { cd "${srcdir}"/build-${CARCH} - make DESTDIR=$pkgdir install + make DESTDIR=${pkgdir} install mv "${pkgdir}${MINGW_PREFIX}"/bin/{,jemalloc-}pprof mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ diff --git a/mingw-w64-jq/PKGBUILD b/mingw-w64-jq/PKGBUILD index a9432feebc..57226c3c61 100644 --- a/mingw-w64-jq/PKGBUILD +++ b/mingw-w64-jq/PKGBUILD @@ -3,7 +3,7 @@ _realname=jq pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.4 -pkgrel=1 +pkgrel=2 pkgdesc="Command-line JSON processor (mingw-w64)" arch=('any') url='http://stedolan.github.io/jq/' diff --git a/mingw-w64-kiss_fft/PKGBUILD b/mingw-w64-kiss_fft/PKGBUILD index 53501baf86..14f6aa6fa1 100644 --- a/mingw-w64-kiss_fft/PKGBUILD +++ b/mingw-w64-kiss_fft/PKGBUILD @@ -5,7 +5,7 @@ _realname=kiss_fft pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _uglyver=1_3_0 pkgver=${_uglyver//_/.} -pkgrel=1 +pkgrel=2 pkgdesc="A Fast Fourier Transform based up on the principle: Keep It Simple, Stupid (mingw-w64)" url="http://kissfft.sourceforge.net/" arch=('any') diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD index 8288de6e79..1367993c5c 100644 --- a/mingw-w64-latexila/PKGBUILD +++ b/mingw-w64-latexila/PKGBUILD @@ -2,24 +2,24 @@ _realname=latexila pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 +pkgver=3.16.1 pkgrel=1 arch=('any') pkgdesc="LaTeX editor designed for the GNOME desktop (mingw-w64)" options=(strip staticlibs) -depends=("${MINGW_PACKAGE_PREFIX}-gtk3" +depends=("${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" + "${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-gtksourceview3" "${MINGW_PACKAGE_PREFIX}-gtkspell3" - "${MINGW_PACKAGE_PREFIX}-libgee" - "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas") + "${MINGW_PACKAGE_PREFIX}-libgee") makedepends=("${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") license=("GPL 2") url="http://www.gnome.org" install=latexila-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) -sha256sums=('5737864dfd35a32c02e18f37ec8cb80824f599090faefba3b8b92f8e0a5453b3' +sha256sums=('ab2d769546e10c86670e86271024c023c0a87f1b72856955c1883416a9f333f0' '94159afb2c0f0688c375ddcce3bf7750e7179c40d394847c665bc492632e3942') prepare() { @@ -51,9 +51,9 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libelf/PKGBUILD b/mingw-w64-libelf/PKGBUILD index aba82da352..0bc4d8a8e4 100644 --- a/mingw-w64-libelf/PKGBUILD +++ b/mingw-w64-libelf/PKGBUILD @@ -3,7 +3,7 @@ _realname=libelf pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.8.13 -pkgrel=1 +pkgrel=2 pkgdesc="ELF object file access library (mingw-w64)" arch=('any') license=('LGPL') diff --git a/mingw-w64-libgee/PKGBUILD b/mingw-w64-libgee/PKGBUILD index 6d1802eb52..b6c4350f05 100644 --- a/mingw-w64-libgee/PKGBUILD +++ b/mingw-w64-libgee/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgee pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.18.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A collection library providing GObject-based interfaces and classes for commonly used data structures (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2") @@ -14,7 +14,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs') license=("LGPL2+") url="https://wiki.gnome.org/Projects/Libgee" -source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz") +source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") sha256sums=('4ad99ef937d071b4883c061df40bfe233f7649d50c354cf81235f180b4244399') prepare() { @@ -39,6 +39,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libnice/0002-no-undefined.patch b/mingw-w64-libnice/0002-no-undefined.patch deleted file mode 100644 index c31fba5ce5..0000000000 --- a/mingw-w64-libnice/0002-no-undefined.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libnice-0.1.7/gst/Makefile.am.orig 2014-01-07 03:05:13.000000000 +0400 -+++ libnice-0.1.7/gst/Makefile.am 2014-07-17 19:12:50.397600000 +0400 -@@ -33,7 +33,7 @@ - - libgstnice_la_LIBADD = $(COMMON_LIBADD) $(GST_LIBS) - --libgstnice_la_LDFLAGS = -module -avoid-version -+libgstnice_la_LDFLAGS = -module -avoid-version -no-undefined - endif - - diff --git a/mingw-w64-libnice/PKGBUILD b/mingw-w64-libnice/PKGBUILD index 6fd1fe278e..0b3fd98397 100644 --- a/mingw-w64-libnice/PKGBUILD +++ b/mingw-w64-libnice/PKGBUILD @@ -2,7 +2,7 @@ _realname=libnice pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.1.10 +pkgver=0.1.13 pkgrel=1 pkgdesc="An implementation of the IETF's draft ICE (for p2p UDP data streams) (mingw-w64)" arch=('any') @@ -15,21 +15,18 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" depends=("${MINGW_PACKAGE_PREFIX}-glib2") optdepends=("${MINGW_PACKAGE_PREFIX}-gstreamer") options=('staticlibs' 'strip') -source=("http://nice.freedesktop.org/releases/${_realname}-$pkgver.tar.gz" +source=("http://nice.freedesktop.org/releases/${_realname}-${pkgver}.tar.gz" 0001-fix-redefinition-mingw-w64.patch - 0002-no-undefined.patch 0003-give-cc-to-gir-scanner.all.patch 0004-mingw-w64-types.patch) -md5sums=('27b62d0093ce29a39df1c6fcf0bb4396' +md5sums=('3226faeaf48a9150ada00da2e2865959' 'b817c8a7c4cbb405341de75b9824204f' - '5c937f7c3a5857038f27a009d33b0757' 'aa92989cd75e24fd2ead5a4e6f334cc7' '2663a220cc777082096610353d7051f2') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-fix-redefinition-mingw-w64.patch - patch -p1 -i ${srcdir}/0002-no-undefined.patch patch -p1 -i ${srcdir}/0003-give-cc-to-gir-scanner.all.patch patch -p1 -i ${srcdir}/0004-mingw-w64-types.patch @@ -52,6 +49,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a } diff --git a/mingw-w64-libntlm/PKGBUILD b/mingw-w64-libntlm/PKGBUILD index a3449c1737..4e4b87a706 100644 --- a/mingw-w64-libntlm/PKGBUILD +++ b/mingw-w64-libntlm/PKGBUILD @@ -3,7 +3,7 @@ _realname=libntlm pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4 -pkgrel=1 +pkgrel=2 pkgdesc="Library that implement Microsoft's NTLM authentication (mingw-w64)" arch=('any') url="http://www.nongnu.org/libntlm/" @@ -11,15 +11,12 @@ license=("LGPL2.1") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -source=("http://www.nongnu.org/libntlm/releases/libntlm-1.4.tar.gz"{,.sig}) +source=("http://www.nongnu.org/libntlm/releases/${_realname}-${pkgver}.tar.gz"{,.sig}) md5sums=('54793488450e9085c57e0d859ff3bc8c' 'SKIP') -prepare() { - cd ${_realname}-${pkgver} -} - build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} ../${_realname}-${pkgver}/configure \ diff --git a/mingw-w64-libsodium/PKGBUILD b/mingw-w64-libsodium/PKGBUILD index ed26263392..11a0689179 100644 --- a/mingw-w64-libsodium/PKGBUILD +++ b/mingw-w64-libsodium/PKGBUILD @@ -3,7 +3,7 @@ _realname=libsodium pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.3 -pkgrel=1 +pkgrel=2 pkgdesc="P(ortable|ackageable) NaCl-based crypto library (mingw-w64)" arch=("any") url="https://github.com/jedisct1/libsodium" diff --git a/mingw-w64-libuv/PKGBUILD b/mingw-w64-libuv/PKGBUILD index ed554b0819..5815e3693a 100644 --- a/mingw-w64-libuv/PKGBUILD +++ b/mingw-w64-libuv/PKGBUILD @@ -4,7 +4,7 @@ _realname=libuv pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.1 -pkgrel=2 +pkgrel=3 pkgdesc="Cross-platform asychronous I/O (mingw-w64)" arch=('any') url="https://github.com/libuv/libuv" @@ -18,7 +18,7 @@ sha256sums=('f558ede285878d6a69f6a6d43b5df0241f3c35d62ac989477bdbd418badd83d7' '432203e598cefbad2193a3fbb98c2b4be59f256f26f6fe1ee98e80422e142aee') prepare() { - cd "$srcdir/${_realname}-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-Revert-fs-pipe-no-trailing-terminator-in-exact-sized.patch ./autogen.sh } @@ -31,6 +31,7 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} + make } diff --git a/mingw-w64-libview/PKGBUILD b/mingw-w64-libview/PKGBUILD index 3ea5b13e6d..b995875926 100644 --- a/mingw-w64-libview/PKGBUILD +++ b/mingw-w64-libview/PKGBUILD @@ -3,7 +3,7 @@ _realname=libview pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.6.6 -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="VMware's Incredibly Exciting Widgets (mingw-w64)" options=(strip staticlibs) @@ -12,7 +12,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk2" options=('strip' 'staticlibs') license=("GPL 2") url="http://view.sourceforge.net" -source=(http://downloads.sourceforge.net/view/${_realname}-$pkgver.tar.bz2 +source=(http://downloads.sourceforge.net/view/${_realname}-${pkgver}.tar.bz2 001-win.patch 002-missing-execprefix.patch) sha256sums=('2b991bf150c5488b43f807e89bdbd64b2eb3bd433abbdfb68c3eec52cbaa59ab' @@ -43,6 +43,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libwebsockets/PKGBUILD b/mingw-w64-libwebsockets/PKGBUILD index f037ed30b8..51526fc6ee 100644 --- a/mingw-w64-libwebsockets/PKGBUILD +++ b/mingw-w64-libwebsockets/PKGBUILD @@ -1,20 +1,21 @@ # Maintainer: Martell Malone _realname=libwebsockets -_srcbase=chrome37-firefox30 +_srcbase=chrome43-firefox-36 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3 +pkgver=1.4 pkgrel=1 arch=('any') pkgdesc="A lightweight pure C library for websockets (mingw-w64)" -url=('http://libwebsockets.org/') +url='http://libwebsockets.org/' license=('LGPL 2.1 - custom') depends=("${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-openssl") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") source=("https://github.com/warmcat/${_realname}/archive/v${pkgver}-${_srcbase}.tar.gz" + #http://git.libwebsockets.org/cgi-bin/cgit/${_realname}/snapshot/${_realname}-${pkgver}-${_srcbase}.tar.gz fix-cmake-files-location.patch) options=(!strip !buildflags staticlibs) -md5sums=('63117f35174a5fe4ec062f6baa411638' +md5sums=('0452c278a5cd4349135df2a693f35c28' '1223de5b20e776c823f27b62ab352249') prepare() { @@ -23,23 +24,26 @@ prepare() { } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - ${MINGW_PREFIX}/bin/cmake.exe \ + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DLWS_USE_EXTERNAL_ZLIB=ON \ -DCMAKE_C_COMPILER=${MINGW_PREFIX}/bin/gcc.exe \ -DCMAKE_CXX_COMPILER=${MINGW_PREFIX}/bin/g++.exe \ -DLWS_WITHOUT_DAEMONIZE=ON \ -DLWS_WITHOUT_TESTAPPS=ON \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=RELEASE \ ../${_realname}-${pkgver}-${_srcbase} - make + + make } package() { cd ${srcdir}/build-${MINGW_CHOST} - make -j1 install - mkdir -p ${pkgdir}${MINGW_PREFIX}/bin + make DESTDIR=${pkgdir} -j1 install install -Dm644 "${srcdir}/${_realname}-${pkgver}-${_srcbase}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-sfml/PKGBUILD b/mingw-w64-sfml/PKGBUILD index 2343d2f0b0..12c11ce817 100644 --- a/mingw-w64-sfml/PKGBUILD +++ b/mingw-w64-sfml/PKGBUILD @@ -2,8 +2,8 @@ _realname=sfml pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.3 -pkgrel=2 +pkgver=2.3.1 +pkgrel=1 pkgdesc="A simple, fast, cross-platform, and object-oriented multimedia API (mingw-w64)" arch=('any') url="http://www.sfml-dev.org/" @@ -20,7 +20,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "unzip") source=(http://www.sfml-dev.org/files/SFML-${pkgver}-sources.zip mingw-w64-msys2.patch) -md5sums=('abc06b4cdef6531143ac0221cd1b184a' +md5sums=('124f2d369159ac0e50b08e474abb5105' 'a8fbc9c9acfc813381df9e0020b211d9') noextract=(SFML-${pkgver}-sources.zip) diff --git a/mingw-w64-shishi-git/004-fix-download-po.patch b/mingw-w64-shishi-git/004-fix-download-po.patch new file mode 100644 index 0000000000..ec3aa00aba --- /dev/null +++ b/mingw-w64-shishi-git/004-fix-download-po.patch @@ -0,0 +1,11 @@ +--- shishi/cfg.mk.orig 2015-04-10 12:35:41.979200000 +0300 ++++ shishi/cfg.mk 2015-04-10 12:35:45.130400000 +0300 +@@ -64,7 +64,7 @@ + for f in `ls po/*.po | grep -v quot.po`; do \ + cp $$f $$f.in; \ + done +- git add po/*.po.in ++ git add -f po/LINGUAS po/*.po.in + git commit -m "Sync with TP." po/LINGUAS po/*.po.in + + bootstrap: autoreconf diff --git a/mingw-w64-shishi-git/PKGBUILD b/mingw-w64-shishi-git/PKGBUILD index ffd21b7b42..d2fee37539 100644 --- a/mingw-w64-shishi-git/PKGBUILD +++ b/mingw-w64-shishi-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=r3583.485d3bd -pkgrel=1 +pkgrel=2 pkgdesc="a GNU implementation of the Kerberos 5 network security system (mingw-w64)" arch=('any') url="https://www.gnu.org/software/shishi/" @@ -29,7 +29,7 @@ md5sums=('SKIP' '2a3d4a60719b801adf5835898c049420') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } diff --git a/mingw-w64-swig/PKGBUILD b/mingw-w64-swig/PKGBUILD index b62c6047ac..22d4a7497a 100644 --- a/mingw-w64-swig/PKGBUILD +++ b/mingw-w64-swig/PKGBUILD @@ -2,7 +2,7 @@ _realname=swig pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.0.5 +pkgver=3.0.6 pkgrel=1 pkgdesc="Generate scripting interfaces to C/C++ code" arch=('any') @@ -17,7 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-ruby") source=(http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz 001-relocate.patch) -sha1sums=('271813b317e4836853d2249fc8ce2df34c2a062a' +sha1sums=('901dd1888581289b5fdc6c0f4452109652bcf244' '2df8f0deca96ffa2a3625070e31483ba10817ec5') prepare() { diff --git a/mingw-w64-xxhash-svn/PKGBUILD b/mingw-w64-xxhash-svn/PKGBUILD deleted file mode 100644 index 0bf6572e42..0000000000 --- a/mingw-w64-xxhash-svn/PKGBUILD +++ /dev/null @@ -1,45 +0,0 @@ -# Maintainer: Martell Malone - -_realname=xxhash -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=r37 -pkgrel=1 -pkgdesc="Extremely fast non-cryptographic hash algorithm (mingw-w64)" -arch=('any') -url="http://code.google.com/p/xxhash" -license=("LGPL") -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "subversion") - -source=("${_realname}"::"svn+http://xxhash.googlecode.com/svn/trunk/" - "Makefile") - -md5sums=('SKIP' - 'SKIP') - -pkgver() { - cd "${_realname}" - local ver="$(svnversion)" - printf "r%s" "${ver//[[:alpha:]]}" -} - -prepare() { - cd "${srcdir}/${_realname}" - rm -f Makefile - cp ${srcdir}/Makefile ${srcdir}/${_realname} -} - -build() { - cd "$srcdir/${_realname}" - make xxhash -} - -package() { - cd "${srcdir}/${_realname}" - mkdir -p ${pkgdir}${MINGW_PREFIX}/include - mkdir -p ${pkgdir}${MINGW_PREFIX}/lib - mv libxxhash.a ${pkgdir}${MINGW_PREFIX}/lib - cp xxhash.h ${pkgdir}${MINGW_PREFIX}/include -} diff --git a/mingw-w64-xxhash-svn/Makefile b/mingw-w64-xxhash/Makefile similarity index 100% rename from mingw-w64-xxhash-svn/Makefile rename to mingw-w64-xxhash/Makefile diff --git a/mingw-w64-xxhash/PKGBUILD b/mingw-w64-xxhash/PKGBUILD new file mode 100644 index 0000000000..242e588c86 --- /dev/null +++ b/mingw-w64-xxhash/PKGBUILD @@ -0,0 +1,35 @@ +# Maintainer: Martell Malone + +_realname=xxhash +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=r40 +pkgrel=1 +pkgdesc="Extremely fast non-cryptographic hash algorithm (mingw-w64)" +arch=('any') +url="https://github.com/Cyan4973/xxHash" +license=("LGPL") +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +source=(${_realname}-${pkgver}.tar.gz::https://github.com/Cyan4973/xxHash/archive/${pkgver}.tar.gz + "Makefile") +md5sums=('7d8261c48b9d1a0182adaa45c8d1e1ac' + 'a5073262f2edde9102ffb3ef4ffd8fc3') + +prepare() { + cd "${srcdir}/xxHash-${pkgver}" + rm -f Makefile + cp ${srcdir}/Makefile ${srcdir}/xxHash-${pkgver}/ +} + +build() { + cd "${srcdir}/xxHash-${pkgver}" + make xxhash +} + +package() { + cd "${srcdir}/xxHash-${pkgver}" + mkdir -p ${pkgdir}${MINGW_PREFIX}/include + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib + mv libxxhash.a ${pkgdir}${MINGW_PREFIX}/lib + cp xxhash.h ${pkgdir}${MINGW_PREFIX}/include +} From 9ba8f2e458cbfa28a9be852cf5cb3e58298a7cee Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 20 Jul 2015 00:52:01 +0300 Subject: [PATCH 1302/2060] WIP update for GCC-5.x --- mingw-w64-cocos2dx-git/PKGBUILD | 67 ++++++++++--------- mingw-w64-coq/PKGBUILD | 27 ++++---- mingw-w64-crypto++/PKGBUILD | 2 +- mingw-w64-dnssec-anchors/PKGBUILD | 1 - mingw-w64-freerdp-git/PKGBUILD | 28 ++++---- .../mingw-w64-redefinitions.patch | 54 +++++++++++++++ ...001-cmake-Link-OpenGL-with-glsl_test.patch | 43 +++--------- .../0002-Fix-glslopt-compile-failure.patch | 25 ------- ...rect-Windows-64-hash_table_find-cast.patch | 26 ++++++- mingw-w64-glsl-optimizer/PKGBUILD | 44 +++++------- mingw-w64-gnu-cobol-svn/PKGBUILD | 14 ++-- mingw-w64-gtkada/PKGBUILD | 6 +- mingw-w64-hlsl2glsl/PKGBUILD | 23 +++---- mingw-w64-innoextract/PKGBUILD | 50 +++++++------- mingw-w64-itk/PKGBUILD | 23 +++---- mingw-w64-kicad-git/PKGBUILD | 36 +++++----- mingw-w64-ldns/PKGBUILD | 22 +++--- 17 files changed, 257 insertions(+), 234 deletions(-) create mode 100644 mingw-w64-freerdp-git/mingw-w64-redefinitions.patch delete mode 100644 mingw-w64-glsl-optimizer/0002-Fix-glslopt-compile-failure.patch diff --git a/mingw-w64-cocos2dx-git/PKGBUILD b/mingw-w64-cocos2dx-git/PKGBUILD index 381ccc53cf..aa1e904c13 100644 --- a/mingw-w64-cocos2dx-git/PKGBUILD +++ b/mingw-w64-cocos2dx-git/PKGBUILD @@ -2,7 +2,8 @@ _realname=cocos2d-x pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r25639.c9d0b0f +pkgver=r31154.b6aa396 +_deps_ver=69 pkgrel=1 pkgdesc="Open source game framework written in C++ (mingw-w64)." arch=('any') @@ -11,59 +12,58 @@ license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "make" "${MINGW_PACKAGE_PREFIX}-cmake" "git") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -depends=("${MINGW_PACKAGE_PREFIX}-glfw" - "${MINGW_PACKAGE_PREFIX}-glew" - "${MINGW_PACKAGE_PREFIX}-box2d" +depends=("${MINGW_PACKAGE_PREFIX}-box2d" + "${MINGW_PACKAGE_PREFIX}-bullet" "${MINGW_PACKAGE_PREFIX}-chipmunk" - "${MINGW_PACKAGE_PREFIX}-libwebp" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-libiconv" - "${MINGW_PACKAGE_PREFIX}-tinyxml2" "${MINGW_PACKAGE_PREFIX}-curl" - "${MINGW_PACKAGE_PREFIX}-protobuf" - "${MINGW_PACKAGE_PREFIX}-mpg123" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-glfw" + "${MINGW_PACKAGE_PREFIX}-glew" + "${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-libwebsockets" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-mpg123" + "${MINGW_PACKAGE_PREFIX}-tinyxml2" + "${MINGW_PACKAGE_PREFIX}-protobuf" "${MINGW_PACKAGE_PREFIX}-xxhash" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') - source=("${_realname}"::"git+git://github.com/cocos2d/cocos2d-x.git#branch=v3" - "http://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/archive/v3-deps-20.tar.gz") - + "http://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/archive/v3-deps-${_deps_ver}.tar.gz") md5sums=('SKIP' 'SKIP') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" - #git am "$srcdir/0001-mingw64-mirgrate-to-upstream-minizip.patch" - cp -r $srcdir/cocos2d-x-3rd-party-libs-bin-3-deps-20/. $srcdir/$_realname/external + #git am "${srcdir}/0001-mingw64-mirgrate-to-upstream-minizip.patch" + cp -r ${srcdir}/cocos2d-x-3rd-party-libs-bin-3-deps-${_deps_ver}/. ${srcdir}/${_realname}/external #we need to change glfw to mingw-glfw3 - #sed -i "s/glfw3.h/GLFW\/glfw3.h/g" $srcdir/$_realname/cocos/platform/desktop/CCGLViewImpl-desktop.h + #sed -i "s/glfw3.h/GLFW\/glfw3.h/g" ${srcdir}/$_realname/cocos/platform/desktop/CCGLViewImpl-desktop.h #sed -i "s/glfw3native.h/GLFW\/glfw3native.h/g" $srcdir/$_realname/cocos/platform/desktop/CCGLViewImpl-desktop.h #sed -i "s/ft2build.h/freetype2\/ft2build.h/g" $srcdir/$_realname/cocos/2d/CCFontFreeType.h - #sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/cocos/platform/CCFileUtils.cpp - #sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/cocos/base/ZipUtils.cpp - #sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/extensions/assets-manager/AssetsManager.cpp - #sed -i "s/unzip.h/minizip\/unzip.h/g" $srcdir/$_realname/extensions/assets-manager/AssetsManagerEx.cpp + #sed -i "s/unzip.h/minizip\/unzip.h/g" ${srcdir}/${_realname}/cocos/platform/CCFileUtils.cpp + #sed -i "s/unzip.h/minizip\/unzip.h/g" ${srcdir}/${_realname}/cocos/base/ZipUtils.cpp + #sed -i "s/unzip.h/minizip\/unzip.h/g" ${srcdir}/${_realname}/extensions/assets-manager/AssetsManager.cpp + #sed -i "s/unzip.h/minizip\/unzip.h/g" ${srcdir}/${_realname}/extensions/assets-manager/AssetsManagerEx.cpp - #sed -i "s/tinyxml2\/tinyxml2.h/tinyxml2.h/g" $srcdir/$_realname/cocos/editor-support/cocostudio/CCSGUIReader.cpp - #sed -i "s/decode.h/webp\/decode.h/g" $srcdir/$_realname/cocos/platform/CCImage.cpp + #sed -i "s/tinyxml2\/tinyxml2.h/tinyxml2.h/g" ${srcdir}/${_realname}/cocos/editor-support/cocostudio/CCSGUIReader.cpp + #sed -i "s/decode.h/webp\/decode.h/g" ${srcdir}/${_realname}/cocos/platform/CCImage.cpp #force depend on mingw-tinyxml2 - rm -rf $srcdir/$_realname/external/tinyxml2 - rm -rf $srcdir/$_realname/external/unzip + rm -rf ${srcdir}/${_realname}/external/tinyxml2 + rm -rf ${srcdir}/${_realname}/external/unzip } build() { @@ -72,7 +72,9 @@ build() { unset LDFLAGS CFLAGS CXXFLAGS - cmake -G"MSYS Makefiles" \ + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ -DDEBUG_MODE=OFF \ -DBUILD_LUA_LIBS=OFF \ -DBUILD_LUA_TESTS=OFF \ @@ -80,15 +82,16 @@ build() { -DBUILD_EDITOR_COCOSTUDIO=OFF \ -DBUILD_EDITOR_COCOSBUILDER=OFF \ -DBUILD_EDITOR_SPINE=OFF \ - ../$_realname + ../${_realname} # -DBUILD_EXTERN_LIBS=OFF \ - make -j4 + + make } package() { mkdir -p "${pkgdir}${MINGW_PREFIX}/include/cocos" mkdir -p "${pkgdir}${MINGW_PREFIX}/lib" - cd "$srcdir/$_realname/cocos" + cd "${srcdir}/${_realname}/cocos" cp -r ${srcdir}/build-${CARCH}/lib/. ${pkgdir}${MINGW_PREFIX}/lib #little helper because we don't want to pollute include with all the sub dirs ;) @@ -107,7 +110,7 @@ package() { # add extensions mkdir -p "${pkgdir}${MINGW_PREFIX}/include/extensions" - cd "$srcdir/$_realname/extensions" + cd "${srcdir}/${_realname}/extensions" find -type f \( -name "*.h*" -o -name "*.inl" \) -exec install -D {} ${pkgdir}${MINGW_PREFIX}/include/extensions/{} \; # install templates for cocos2d-console diff --git a/mingw-w64-coq/PKGBUILD b/mingw-w64-coq/PKGBUILD index 0c9ed8c254..35be821c1f 100644 --- a/mingw-w64-coq/PKGBUILD +++ b/mingw-w64-coq/PKGBUILD @@ -2,15 +2,15 @@ _realname=coq pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=8.4pl5 -pkgrel=2 +pkgver=8.4pl6 +pkgrel=1 pkgdesc="A formal proof management system (mingw-w64)" arch=('any') url='https://coq.inria.fr/' license=('LGPL 2.1') depends=("${MINGW_PACKAGE_PREFIX}-ocaml" "${MINGW_PACKAGE_PREFIX}-ocaml-camlp4") -source=("https://coq.inria.fr/distrib/V8.4pl5/files/coq-8.4pl5.tar.gz" +source=("https://coq.inria.fr/distrib/V${pkgver}/files/${_realname}-${pkgver}.tar.gz" "0001-Guess-the-libraries-are-located-at-lib-coq-instead-o.patch") sha1sums=('107717cbaef3a469e8ff775ae54dbbc457935816' '5683480358e92b4eb38adc2402dd0febf37ebb2e') @@ -25,16 +25,17 @@ build() { cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - ./configure -prefix ${MINGW_PREFIX} \ - -bindir ${MINGW_PREFIX}/bin \ - -libdir ${MINGW_PREFIX}/lib/coq \ - -mandir ${MINGW_PREFIX}/share/man \ - -configdir ${MINGW_PREFIX}/etc/xdg/coq \ - -datadir ${MINGW_PREFIX}/share/coq \ - -docdir ${MINGW_PREFIX}/share/doc/coq \ - -emacslib ${MINGW_PREFIX}/share/emacs/site-lisp/coq \ - -coqdocdir ${MINGW_PREFIX}/share/texmf/tex \ - -usecamlp4 -arch win32 -coqide no + ./configure \ + -prefix ${MINGW_PREFIX} \ + -bindir ${MINGW_PREFIX}/bin \ + -libdir ${MINGW_PREFIX}/lib/coq \ + -mandir ${MINGW_PREFIX}/share/man \ + -configdir ${MINGW_PREFIX}/etc/xdg/coq \ + -datadir ${MINGW_PREFIX}/share/coq \ + -docdir ${MINGW_PREFIX}/share/doc/coq \ + -emacslib ${MINGW_PREFIX}/share/emacs/site-lisp/coq \ + -coqdocdir ${MINGW_PREFIX}/share/texmf/tex \ + -usecamlp4 -arch win32 -coqide no make revision make coq diff --git a/mingw-w64-crypto++/PKGBUILD b/mingw-w64-crypto++/PKGBUILD index 40f9486987..a4eb99d34a 100644 --- a/mingw-w64-crypto++/PKGBUILD +++ b/mingw-w64-crypto++/PKGBUILD @@ -3,7 +3,7 @@ _realname=crypto++ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.6.2 -pkgrel=2 +pkgrel=3 pkgdesc="Crypto++ Library is a free C++ class library of cryptographic schemes." arch=('any') url="http://www.cryptopp.com/" diff --git a/mingw-w64-dnssec-anchors/PKGBUILD b/mingw-w64-dnssec-anchors/PKGBUILD index 804ddf6d46..0b1dfa2fdb 100644 --- a/mingw-w64-dnssec-anchors/PKGBUILD +++ b/mingw-w64-dnssec-anchors/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=dnssec-anchors - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=20130320 pkgrel=1 diff --git a/mingw-w64-freerdp-git/PKGBUILD b/mingw-w64-freerdp-git/PKGBUILD index f926f60c39..6cf0c6f7bf 100644 --- a/mingw-w64-freerdp-git/PKGBUILD +++ b/mingw-w64-freerdp-git/PKGBUILD @@ -5,7 +5,7 @@ _realname=freerdp-git pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgdesc="Free RDP client (mingw-w64)" -pkgver=r8559.9fe7ad2 +pkgver=r8949.43a5680 pkgrel=1 depends=("${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-ffmpeg") @@ -20,7 +20,7 @@ source=("${_realname}::git://github.com/FreeRDP/FreeRDP.git") sha256sums=('SKIP') pkgver() { - cd "$srcdir"/${_realname} + cd "${srcdir}"/${_realname} printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } @@ -29,22 +29,24 @@ prepare() { } build() { - [ -d ${CARCH}-build ] && rm -rf ${CARCH}-build + [[ -d ${CARCH}-build ]] && rm -rf ${CARCH}-build mkdir ${CARCH}-build cd ${CARCH}-build MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX \ - cmake -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DCMAKE_WINDOWS_VERSION="WINXP" \ - -DWITH_PULSE=OFF \ - -DWITH_SERVER=ON \ - -DMSVC_RUNTIME="dynamic" \ - -G'MSYS Makefiles' \ - ../${_realname} - make VERBOSE=1 + ${MINGW_PREFIX}/bin/cmake \ + -G'MSYS Makefiles' \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_WINDOWS_VERSION="WINXP" \ + -DWITH_PULSE=OFF \ + -DWITH_SERVER=ON \ + -DMSVC_RUNTIME="dynamic" \ + ../${_realname} + + make VERBOSE=1 } package() { cd ${CARCH}-build - make DESTDIR="${pkgdir}/" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-freerdp-git/mingw-w64-redefinitions.patch b/mingw-w64-freerdp-git/mingw-w64-redefinitions.patch new file mode 100644 index 0000000000..515d61694a --- /dev/null +++ b/mingw-w64-freerdp-git/mingw-w64-redefinitions.patch @@ -0,0 +1,54 @@ +--- freerdp-git/winpr/include/winpr/nt.h.orig 2015-07-19 10:16:50.940895800 +0300 ++++ freerdp-git/winpr/include/winpr/nt.h 2015-07-19 10:25:19.643991900 +0300 +@@ -1286,12 +1286,15 @@ + + #include + ++#ifndef __MINGW64_VERSION_MAJOR + #undef FILE_INFORMATION_CLASS + #undef _FILE_INFORMATION_CLASS + #undef FileDirectoryInformation ++#endif + + #endif + ++#ifndef __MINGW64_VERSION_MAJOR + typedef enum _FILE_INFORMATION_CLASS + { + FileDirectoryInformation = 1, +@@ -1335,6 +1338,7 @@ + FileValidDataLengthInformation, + FileShortNameInformation + } FILE_INFORMATION_CLASS; ++#endif + + #ifndef _WIN32 + +--- freerdp-git/winpr/include/winpr/synch.h.orig 2015-07-19 10:21:55.124294100 +0300 ++++ freerdp-git/winpr/include/winpr/synch.h 2015-07-19 10:29:13.460365500 +0300 +@@ -285,7 +285,7 @@ + #if (!defined(_WIN32)) || (defined(_WIN32) && (_WIN32_WINNT < 0x0600)) + + /* One-Time Initialization */ +- ++#ifndef _RTL_RUN_ONCE_DEF + typedef struct _RTL_RUN_ONCE + { + PVOID Ptr; +@@ -293,6 +293,7 @@ + + #define RTL_RUN_ONCE_INIT { 0 } + #define INIT_ONCE_STATIC_INIT RTL_RUN_ONCE_INIT ++#endif + + typedef RTL_RUN_ONCE INIT_ONCE; + typedef PRTL_RUN_ONCE PINIT_ONCE; +@@ -308,7 +309,7 @@ + + /* Synchronization Barrier */ + +-#if (!defined(_WIN32)) || (defined(_WIN32) && (_WIN32_WINNT < 0x0602)) ++#if (!defined(_WIN32)) || (defined(_WIN32) && (_WIN32_WINNT < 0x0602) && !defined(__MINGW64_VERSION_MAJOR)) + + typedef struct _RTL_BARRIER + { diff --git a/mingw-w64-glsl-optimizer/0001-cmake-Link-OpenGL-with-glsl_test.patch b/mingw-w64-glsl-optimizer/0001-cmake-Link-OpenGL-with-glsl_test.patch index 4910298d1e..57ebac196c 100644 --- a/mingw-w64-glsl-optimizer/0001-cmake-Link-OpenGL-with-glsl_test.patch +++ b/mingw-w64-glsl-optimizer/0001-cmake-Link-OpenGL-with-glsl_test.patch @@ -1,35 +1,14 @@ -From 7aa3b231cd1a6359eb3e2cff15047f189f0bafa6 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Wed, 11 Dec 2013 21:58:11 +0000 -Subject: [PATCH 1/2] cmake: Link OpenGL with glsl_test - ---- - CMakeLists.txt | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1215af7..fcd364c 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -16,6 +16,9 @@ else() - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -s") - endif() - -+find_package(OpenGL REQUIRED) -+link_directories(${OpenGL_LIBRARY_DIRS}) -+ - file(GLOB glcpp-library_sources src/glsl/glcpp/*.c) - #file(GLOB glcpp-library_sources_remove src/glsl/glcpp/glcpp.c) - #list(REMOVE_ITEM glcpp-library_sources ${glcpp-library_sources_remove}) -@@ -35,7 +38,7 @@ target_link_libraries(glsl_compiler glsl_optimizer) - - file(GLOB glsl_test_sources tests/*.cpp) - add_executable(glsl_test ${glsl_test_sources}) --target_link_libraries(glsl_test glsl_optimizer) -+target_link_libraries(glsl_test ${OPENGL_LIBRARIES} glsl_optimizer) +--- glsl-optimizer/CMakeLists.txt.orig 2015-07-19 12:59:40.145662300 +0300 ++++ glsl-optimizer/CMakeLists.txt 2015-07-19 13:01:15.179097900 +0300 +@@ -41,7 +41,10 @@ + # OSX-specific build requirements + find_library(OpenGL_LIBRARY OpenGL ) + target_link_libraries(glsl_test ${OpenGL_LIBRARY}) +-endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") ++elseif(MINGW) ++ find_package(OpenGL) ++ target_link_libraries(glsl_test ${OPENGL_gl_LIBRARY}) ++endif() file(GLOB glslopt_sources contrib/glslopt/*.cpp) add_executable(glslopt ${glslopt_sources}) --- -1.8.5.1 - diff --git a/mingw-w64-glsl-optimizer/0002-Fix-glslopt-compile-failure.patch b/mingw-w64-glsl-optimizer/0002-Fix-glslopt-compile-failure.patch deleted file mode 100644 index 70b6baabfc..0000000000 --- a/mingw-w64-glsl-optimizer/0002-Fix-glslopt-compile-failure.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7c1500ad4ce2e2d279b60adc25db72956b08c85b Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Wed, 11 Dec 2013 21:58:28 +0000 -Subject: [PATCH 2/2] Fix glslopt compile failure - ---- - contrib/glslopt/Main.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/contrib/glslopt/Main.cpp b/contrib/glslopt/Main.cpp -index c9e2546..bf2bbf4 100644 ---- a/contrib/glslopt/Main.cpp -+++ b/contrib/glslopt/Main.cpp -@@ -17,7 +17,7 @@ static int printhelp(const char* msg) - - static bool init() - { -- gContext = glslopt_initialize(false); -+ gContext = glslopt_initialize(kGlslTargetOpenGL); - if( !gContext ) - return false; - return true; --- -1.8.5.1 - diff --git a/mingw-w64-glsl-optimizer/0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch b/mingw-w64-glsl-optimizer/0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch index e6749c3868..e8d08bf4b2 100644 --- a/mingw-w64-glsl-optimizer/0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch +++ b/mingw-w64-glsl-optimizer/0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch @@ -1,15 +1,15 @@ --- glsl-optimizer/src/glsl/ir_print_glsl_visitor.cpp.orig 2014-01-18 16:35:24.773200000 +0400 +++ glsl-optimizer/src/glsl/ir_print_glsl_visitor.cpp 2014-01-18 17:11:06.406600000 +0400 -@@ -302,7 +302,7 @@ +@@ -337,7 +337,7 @@ void ir_print_glsl_visitor::print_var_name (ir_variable* v) { - long id = (long)hash_table_find (globals->var_hash, v); + intptr_t id = (intptr_t)hash_table_find (globals->var_hash, v); - if (!id && v->mode == ir_var_temporary) + if (!id && v->data.mode == ir_var_temporary) { id = ++globals->var_counter; -@@ -406,7 +406,7 @@ +@@ -465,7 +465,7 @@ // give an id to any variable defined in a function that is not an uniform if ((this->mode == kPrintGlslNone && ir->mode != ir_var_uniform)) { @@ -18,3 +18,23 @@ if (id == 0) { id = ++globals->var_counter; +--- glsl-optimizer/src/glsl/ir_print_metal_visitor.cpp.orig 2014-01-18 16:35:24.773200000 +0400 ++++ glsl-optimizer/src/glsl/ir_print_metal_visitor.cpp 2014-01-18 17:11:06.406600000 +0400 +@@ -377,7 +377,7 @@ + + void ir_print_metal_visitor::print_var_name (ir_variable* v) + { +- long id = (long)hash_table_find (globals->var_hash, v); ++ intptr_t id = (intptr_t)hash_table_find (globals->var_hash, v); + if (!id && v->data.mode == ir_var_temporary) + { + id = ++globals->var_counter; +@@ -546,7 +546,7 @@ + // give an id to any variable defined in a function that is not an uniform + if ((this->mode == kPrintGlslNone && ir->data.mode != ir_var_uniform)) + { +- long id = (long)hash_table_find (globals->var_hash, ir); ++ intptr_t id = (intptr_t)hash_table_find (globals->var_hash, ir); + if (id == 0) + { + id = ++globals->var_counter; diff --git a/mingw-w64-glsl-optimizer/PKGBUILD b/mingw-w64-glsl-optimizer/PKGBUILD index de77d79a7f..75a785a4d8 100644 --- a/mingw-w64-glsl-optimizer/PKGBUILD +++ b/mingw-w64-glsl-optimizer/PKGBUILD @@ -1,68 +1,58 @@ # Maintainer: Alexey Pavlov _realname=glsl-optimizer - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r60842.9b2a2d2 +pkgver=r66854.14946bd pkgrel=1 pkgdesc="C++ library that takes GLSL shaders, does some GPU-independent optimizations on them and outputs GLSL back (mingw-w64)" arch=('any') -url='https://github.com/aras-p/glsl-optimizer' +url="https://github.com/aras-p/glsl-optimizer" license=('MIT') -depends=("") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") -optdepends=() provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -replaces=() -backup=() options=('!strip' 'staticlibs' '!emptydirs') source=("${_realname}"::"git+https://github.com/aras-p/glsl-optimizer.git" - 0001-cmake-Link-OpenGL-with-glsl_test.patch - 0002-Fix-glslopt-compile-failure.patch - 0003-fix-tests-compile.patch - 0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch - ) + 0001-cmake-Link-OpenGL-with-glsl_test.patch + 0002-Fix-glslopt-compile-failure.patch + 0003-fix-tests-compile.patch + 0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch) md5sums=('SKIP' - 'a69f07671525c48ac0a9a0321fda2b42' + 'cad18a6556d133048c4bc9559205b2fb' '42190f0e6a8f434885e8347831f5d407' '2b647ac196a91e08bd7e5aa35c851cdd' - '4223ad35f51d21a77b0b89c1cb8a26c0') + '94a782944d4916fb1909af97093b4df8') pkgver() { - cd "$srcdir/${_realname}" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd "$srcdir/${_realname}" + cd "${srcdir}/${_realname}" patch -p1 -i ${srcdir}/0001-cmake-Link-OpenGL-with-glsl_test.patch - patch -p1 -i ${srcdir}/0002-Fix-glslopt-compile-failure.patch + #patch -p1 -i ${srcdir}/0002-Fix-glslopt-compile-failure.patch patch -p1 -i ${srcdir}/0003-fix-tests-compile.patch patch -p1 -i ${srcdir}/0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ ../${_realname} - make + make } package() { - cd ${srcdir}/build-${MINGW_CHOST} - mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,include,lib} + cd ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,include,lib} cp *.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp $srcdir/${_realname}/src/glsl/glsl_optimizer.h ${pkgdir}${MINGW_PREFIX}/include/ cp libglsl_optimizer.a ${pkgdir}${MINGW_PREFIX}/lib/ } - diff --git a/mingw-w64-gnu-cobol-svn/PKGBUILD b/mingw-w64-gnu-cobol-svn/PKGBUILD index 1175383975..fd51459e85 100644 --- a/mingw-w64-gnu-cobol-svn/PKGBUILD +++ b/mingw-w64-gnu-cobol-svn/PKGBUILD @@ -14,16 +14,16 @@ url="http://sourceforge.net/projects/open-cobol/" options=('strip') license=('GPL' 'LGPL') makedepends=("subversion" - "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-libiconv") + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-libiconv") depends=("${MINGW_PACKAGE_PREFIX}-db" - "${MINGW_PACKAGE_PREFIX}-gmp" - "${MINGW_PACKAGE_PREFIX}-ncurses") + "${MINGW_PACKAGE_PREFIX}-gmp" + "${MINGW_PACKAGE_PREFIX}-ncurses") source=("$_realname::svn+http://svn.code.sf.net/p/open-cobol/code/branches/gnu-cobol-2.0") md5sums=('SKIP') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" local ver="$(svnversion)" printf "%s.r%s" "${_base_ver}" "${ver//[[:alpha:]]}" } @@ -37,7 +37,7 @@ build() { export lt_cv_deplibs_check_method='pass_all' # libncurses [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} - ../$_realname/configure \ + ../${_realname}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -52,7 +52,7 @@ build() { package() { cd ${srcdir}/build-${CARCH} - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -pf ${srcdir}/${_realname}/COPYING* \ diff --git a/mingw-w64-gtkada/PKGBUILD b/mingw-w64-gtkada/PKGBUILD index f64db99049..1d9954403b 100644 --- a/mingw-w64-gtkada/PKGBUILD +++ b/mingw-w64-gtkada/PKGBUILD @@ -2,8 +2,8 @@ _realname=gtkada pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} -pkgrel=1 pkgver=3.8.2 +pkgrel=2 pkgdesc="GtkAda is a Gtk3+ binding for Ada using the OOP and other features of this programming language" arch=('any') conflicts=("${MINGW_PACKAGE_PREFIX}-GtkAda-svn") @@ -20,13 +20,13 @@ sha1sums=('84285ea8c016d18bac8860573ff5223ecea8ecf4' 'ca7dcd32bfbfecdcbd923bb2e12dc5b8b0f91305') prepare() { - cd ${srcdir}/${_realnam}e-${pkgver}-src + cd ${srcdir}/${_realname}-${pkgver}-src patch -p0 < contrib/gtkada-3-win32.diff patch -p1 < ${srcdir}/gtkada-mingw.diff } build() { - cd ${srcdir}/$_{realname}-${pkgver}-src + cd ${srcdir}/${_realname}-${pkgver}-src if [ -f Makefile ]; then make distclean fi diff --git a/mingw-w64-hlsl2glsl/PKGBUILD b/mingw-w64-hlsl2glsl/PKGBUILD index 9e63c86e97..ff3dee2f81 100644 --- a/mingw-w64-hlsl2glsl/PKGBUILD +++ b/mingw-w64-hlsl2glsl/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=hlsl2glsl - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=r749.9af03c9 pkgrel=1 @@ -9,46 +8,44 @@ pkgdesc="HLSL to GLSL shader language translator" arch=('any') url='https://github.com/mingwandroid/hlsl2glslfork' license=('MIT') -depends=("") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") -optdepends=() provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' 'staticlibs' '!emptydirs') source=("${_realname}"::"git+https://github.com/mingwandroid/hlsl2glslfork.git#branch=say-hello-to-qbs" - 0001-Fix-CMakeLists.txt.patch - 0002-Generalize-CMakeLists.txt-a-bit.patch - 0003-MinGW-w64-build-fixes-for-hlsl2glsltest.cpp.patch - ) + 0001-Fix-CMakeLists.txt.patch + 0002-Generalize-CMakeLists.txt-a-bit.patch + 0003-MinGW-w64-build-fixes-for-hlsl2glsltest.cpp.patch + ) md5sums=('SKIP' '30240eff0c158e302b34c880dc961bef' '76d65ee71bc4f32ece29822221c4dd6e' '493f2b1579556df1211d9df7d0c06d79') pkgver() { - cd "$srcdir/${_realname}" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd "$srcdir/${_realname}" + cd "${srcdir}/${_realname}" patch -p1 -i ${srcdir}/0001-Fix-CMakeLists.txt.patch patch -p1 -i ${srcdir}/0002-Generalize-CMakeLists.txt-a-bit.patch patch -p1 -i ${srcdir}/0003-MinGW-w64-build-fixes-for-hlsl2glsltest.cpp.patch } build() { - cd ${srcdir}/${_realname} + cd ${srcdir}/${_realname} ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" - BISON_SIMPLE=${srcdir}/${_realname}/tools/bison.simple make + BISON_SIMPLE=${srcdir}/${_realname}/tools/bison.simple make } package() { - cd ${srcdir}/${_realname} - mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,include} + cd ${srcdir}/${_realname} + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,include} cp *.exe ${pkgdir}${MINGW_PREFIX}/bin/ cp include/hlsl2glsl.h ${pkgdir}${MINGW_PREFIX}/include/ cp libhlsl2glsl.a ${pkgdir}${MINGW_PREFIX}/lib/ diff --git a/mingw-w64-innoextract/PKGBUILD b/mingw-w64-innoextract/PKGBUILD index 3a723933c4..50c4bad501 100644 --- a/mingw-w64-innoextract/PKGBUILD +++ b/mingw-w64-innoextract/PKGBUILD @@ -1,30 +1,29 @@ # Maintainer: Alexey Pavlov _realname=innoextract - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4 -pkgrel=1 +pkgrel=2 pkgdesc="A tool to extract installers created by Inno Setup (mingw-w64)." arch=('any') url="http://constexpr.org/innoextract/" license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake") + "${MINGW_PACKAGE_PREFIX}-cmake") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-xz" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-libiconv") + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-zlib" + "${MINGW_PACKAGE_PREFIX}-bzip2" + "${MINGW_PACKAGE_PREFIX}-libiconv") options=('staticlibs' '!strip') source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" - fix-typo-in-comment.patch - fix-crash-on-startup.patch - dont-set-background.patch - fix-flickering-progress-bar.patch - fix-restoring-original-console-color.patch - fix-an-infinite-loop-with-truncated-LZMA-streams.patch) + fix-typo-in-comment.patch + fix-crash-on-startup.patch + dont-set-background.patch + fix-flickering-progress-bar.patch + fix-restoring-original-console-color.patch + fix-an-infinite-loop-with-truncated-LZMA-streams.patch) sha1sums=('3fd3ac98c802c72a1f4ae5f6e6a5dca35747ff98' '554408d4be410563828d2599db698f0f76cef51e' 'd35974339a83db0cd04c343d865075d99fc426ba' @@ -44,29 +43,28 @@ prepare() { } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - cd "${srcdir}/${_realname}-${pkgver}" + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + #MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ - -DUSE_STATIC_LIBS=OFF + -DUSE_STATIC_LIBS=OFF \ + ../${_realname}-${pkgver} + make } package() { - cd "${srcdir}/${_realname}-${pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make install - install -Dm644 README.md \ + install -Dm644 ${srcdir}/${_realname}-${pkgver}/README.md \ "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/README.md" - install -Dm644 CHANGELOG \ + install -Dm644 ${srcdir}/${_realname}-${pkgver}/CHANGELOG \ "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/CHANGELOG" - install -Dm644 LICENSE \ + install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE \ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-itk/PKGBUILD b/mingw-w64-itk/PKGBUILD index a96b823d7f..20e27cc6b6 100644 --- a/mingw-w64-itk/PKGBUILD +++ b/mingw-w64-itk/PKGBUILD @@ -2,7 +2,7 @@ _realname=itk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.7.2 +pkgver=4.8.0 pkgrel=1 pkgdesc='An open-source C++ toolkit for medical image processing (mingw-w64)' arch=('any') @@ -23,8 +23,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" optdepends=("${MINGW_PACKAGE_PREFIX}-opencv: ITK-OpenCV bridge" "${MINGW_PACKAGE_PREFIX}-vtk: ITK-VTK bridge") source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/InsightSoftwareConsortium/ITK/archive/v${pkgver}.tar.gz") -sha1sums=('1926161605b015f53bb21e3ee3cf132a8b07991b') -_src="${_realname}-${pkgver}" +sha1sums=('b20c1b1641c436e86dae081937bb36385fe72a65') build() { CFLAGS+=" ${CPPFLAGS}" @@ -43,9 +42,10 @@ build() { [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ "${MINGW_PREFIX}/bin/cmake.exe" \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX="${pkgdir}${MINGW_PREFIX}" \ + -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ -DBUILD_DOCUMENTATION=OFF \ -DBUILD_EXAMPLES=OFF \ -DBUILD_TESTING=OFF \ @@ -68,24 +68,23 @@ build() { -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ "${_extra_config[@]}" \ - "../${_src}" + "../${_realname}-${pkgver}" make } package() { cd "${srcdir}/build-${CARCH}" - make -j1 install + make DESTDIR=${pkgdir} -j1 install pushd "${pkgdir}${MINGW_PREFIX}" > /dev/null - local _MINGW_PREFIX_WIN="$(cygpath -m ${MINGW_PREFIX})" - sed -s "s|${_MINGW_PREFIX_WIN}|\${_IMPORT_PREFIX}|g" \ + sed -s "s|${MINGW_PREFIX}|\${_IMPORT_PREFIX}|g" \ -i "lib/cmake/${_realname}-${pkgver%.*}/ITKTargets-release.cmake" find "lib/cmake/${_realname}-${pkgver%.*}" -name '*.cmake' -exec \ - sed -s "s|${_MINGW_PREFIX_WIN}|\${ITK_INSTALL_PREFIX}|g" -i {} \; - install -Dm644 "${srcdir}/${_src}/LICENSE" "share/licenses/${_realname}/LICENSE" - install -Dm644 "${srcdir}/${_src}/NOTICE" "share/licenses/${_realname}/NOTICE" - install -Dm644 "${srcdir}/${_src}/Modules/ThirdParty/KWSys/src/KWSys/Copyright.txt" \ + sed -s "s|${MINGW_PREFIX}|\${ITK_INSTALL_PREFIX}|g" -i {} \; + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "share/licenses/${_realname}/LICENSE" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/NOTICE" "share/licenses/${_realname}/NOTICE" + install -Dm644 "${srcdir}/${_realname}-${pkgver}/Modules/ThirdParty/KWSys/src/KWSys/Copyright.txt" \ "share/licenses/${_realname}/KWSys/Copyright.txt" popd > /dev/null } diff --git a/mingw-w64-kicad-git/PKGBUILD b/mingw-w64-kicad-git/PKGBUILD index d0b263a037..7804c3b0c7 100644 --- a/mingw-w64-kicad-git/PKGBUILD +++ b/mingw-w64-kicad-git/PKGBUILD @@ -2,28 +2,28 @@ _realname=kicad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r7248.0d77a86 +pkgver=r7676.ba5d45c pkgrel=1 -pkgdesc="Software for the creation of electronic schematic diagrams and printed circuit board artwork" +pkgdesc="Software for the creation of electronic schematic diagrams and printed circuit board artwork (mingw-w64)" arch=('any') url="http://www.kicad-pcb.org" license=("GPL2+") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-cairo" - "${MINGW_PACKAGE_PREFIX}-glew" - "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-wxPython" - "${MINGW_PACKAGE_PREFIX}-wxWidgets") + "${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-glew" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-wxPython" + "${MINGW_PACKAGE_PREFIX}-wxWidgets") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-doxygen" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-swig" "bzr" - "git" - "doxygen") + "git") source=("${_realname}"::"git+https://github.com/KiCad/kicad-source-mirror.git" "${_realname}-docs"::"bzr+https://code.launchpad.net/~kicad-developers/kicad/doc" "${_realname}-libs"::"git+https://github.com/KiCad/kicad-library.git" @@ -34,7 +34,7 @@ md5sums=('SKIP' ) pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } @@ -42,10 +42,12 @@ build() { # Configure and build KiCad. [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_PREFIX_PATH=${MINGW_PREFIX} \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DDEFAULT_INSTALL_PATH=${MINGW_PREFIX} \ -DOPENSSL_ROOT_DIR=${MINGW_PREFIX} \ -DKICAD_SKIP_BOOST=ON \ @@ -63,9 +65,10 @@ build() { # Configure the documentation installation build. [[ -d build-docs ]] && rm -r build-docs mkdir build-docs && cd build-docs + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G "MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ ../${_realname}-docs cd ../ @@ -73,9 +76,10 @@ build() { # Configure the library installation build. [[ -d build-libs ]] && rm -r build-libs mkdir build-libs && cd build-libs + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G "MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ ../${_realname}-libs } @@ -83,17 +87,17 @@ build() { package() { # Install KiCad. cd build-${MINGW_CHOST} - make install + make DESTDIR=${pkgdir} install cd ../ # Install KiCad documentation. cd build-docs - make install + make DESTDIR=${pkgdir} install cd ../ # Install KiCad libraries. cd build-libs - make install + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-ldns/PKGBUILD b/mingw-w64-ldns/PKGBUILD index 664d2e793c..7c129705d8 100644 --- a/mingw-w64-ldns/PKGBUILD +++ b/mingw-w64-ldns/PKGBUILD @@ -3,14 +3,14 @@ _realname=ldns pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.17 -pkgrel=2 +pkgrel=3 pkgdesc="Fast DNS library supporting recent RFCs (mingw-w64)" arch=('any') url='http://www.nlnetlabs.nl/projects/ldns/' license=('custom:BSD') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -depends=("${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-dnssec-anchors") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2") +depends=("${MINGW_PACKAGE_PREFIX}-openssl") +optdepends=("${MINGW_PACKAGE_PREFIX}-dnssec-anchors") options=(strip staticlibs) source=("http://www.nlnetlabs.nl/downloads/${_realname}/${_realname}-${pkgver}.tar.gz" ldns-1.6.17-relocate.patch) @@ -26,10 +26,12 @@ prepare() { build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - export PYTHON=${MINGW_PREFIX}/bin/python2 + cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} + #mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ../${_realname}-${pkgver}/configure \ + + PYTHON=${MINGW_PREFIX}/bin/python2 \ + ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -40,14 +42,14 @@ build() { --with-trust-anchor=${MINGW_PREFIX}/etc/trusted-key.key \ --with-drill \ --with-examples \ - --without-pyldns \ - --without-pyldnsx + --with-pyldns \ + --with-pyldnsx make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From f795a0bcff7b37c007838c08c059daf69ac86df2 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 20 Jul 2015 00:40:36 +0100 Subject: [PATCH 1303/2060] firefox: WIP --- .../0005-Allow-mingw-w64-python.patch | 24 +++++++++++++++++++ .../0006-Fix-pointer-casting.patch | 2 +- ...Fix-duplicate-explicit-instantiation.patch | 21 ++++++++++++++++ ...0008-Fix-stray-back-slash-in-program.patch | 12 ++++++++++ ...-__except-in-PlatformThread__SetName.patch | 15 ++++++++++++ .../0010-Dont-use-I64-numeric-suffix.patch | 11 +++++++++ mingw-w64-firefox/PKGBUILD | 14 ++++++++++- mingw-w64-firefox/debugging.patch | 22 ++++------------- 8 files changed, 102 insertions(+), 19 deletions(-) create mode 100644 mingw-w64-firefox/0007-Fix-duplicate-explicit-instantiation.patch create mode 100644 mingw-w64-firefox/0008-Fix-stray-back-slash-in-program.patch create mode 100644 mingw-w64-firefox/0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch create mode 100644 mingw-w64-firefox/0010-Dont-use-I64-numeric-suffix.patch diff --git a/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch b/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch index 4cf457b2ef..0c842a9705 100644 --- a/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch +++ b/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch @@ -388,3 +388,27 @@ diff -urN firefox-39.0.orig/python/mozbuild/mozbuild/virtualenv.py firefox-39.0/ return os.path.join(self.virtualenv_root, 'Scripts') return os.path.join(self.virtualenv_root, 'bin') +diff -urN firefox-39.0.orig/build/autoconf/python-virtualenv.m4 firefox-39.0/build/autoconf/python-virtualenv.m4 +--- firefox-39.0.orig/build/autoconf/python-virtualenv.m4 2015-06-30 23:57:57.000000000 +0100 ++++ firefox-39.0/build/autoconf/python-virtualenv.m4 2015-07-17 15:30:15.659590600 +0100 +@@ -58,7 +58,7 @@ + + case "$host_os" in + mingw*) +- PYTHON=`cd $MOZ_BUILD_ROOT && pwd -W`/_virtualenv/Scripts/python.exe ++ PYTHON=$(cygpath -am $(find $MOZ_BUILD_ROOT -name python.exe)) + ;; + *) + PYTHON=$MOZ_BUILD_ROOT/_virtualenv/bin/python +diff -urN firefox-39.0.orig/configure firefox-39.0/configure +--- firefox-39.0.orig/configure 2015-07-15 15:31:44.566317100 +0100 ++++ firefox-39.0/configure 2015-07-15 19:22:03.026946400 +0100 +@@ -1476,7 +1476,7 @@ + + case "$host_os" in + mingw*) +- PYTHON=`cd $MOZ_BUILD_ROOT && pwd -W`/_virtualenv/Scripts/python.exe ++ PYTHON=$(cygpath -am $(find $MOZ_BUILD_ROOT -name python.exe)) + ;; + *) + PYTHON=$MOZ_BUILD_ROOT/_virtualenv/bin/python diff --git a/mingw-w64-firefox/0006-Fix-pointer-casting.patch b/mingw-w64-firefox/0006-Fix-pointer-casting.patch index 040820e2ee..44226b106d 100644 --- a/mingw-w64-firefox/0006-Fix-pointer-casting.patch +++ b/mingw-w64-firefox/0006-Fix-pointer-casting.patch @@ -5,7 +5,7 @@ inline WORD PEImage::ToOrdinal(LPCSTR name) { - return reinterpret_cast(name); -+ return static_cast(reinterpret_cast(name)); ++ return static_cast(reinterpret_cast(name)); } inline HMODULE PEImage::module() const { diff --git a/mingw-w64-firefox/0007-Fix-duplicate-explicit-instantiation.patch b/mingw-w64-firefox/0007-Fix-duplicate-explicit-instantiation.patch new file mode 100644 index 0000000000..c52e7c67ad --- /dev/null +++ b/mingw-w64-firefox/0007-Fix-duplicate-explicit-instantiation.patch @@ -0,0 +1,21 @@ +--- firefox-39.0/security/sandbox/chromium/base/strings/utf_string_conversion_utils.cc.orig 2015-06-30 23:57:54.000000000 +0100 ++++ firefox-39.0/security/sandbox/chromium/base/strings/utf_string_conversion_utils.cc 2015-07-19 20:25:24.348811900 +0100 +@@ -122,7 +122,9 @@ + + // Instantiate versions we know callers will need. + template void PrepareForUTF8Output(const wchar_t*, size_t, std::string*); ++#if !defined(WCHAR_T_IS_UTF16) + template void PrepareForUTF8Output(const char16*, size_t, std::string*); ++#endif + + template + void PrepareForUTF16Or32Output(const char* src, +@@ -143,6 +145,8 @@ + + // Instantiate versions we know callers will need. + template void PrepareForUTF16Or32Output(const char*, size_t, std::wstring*); ++#if !defined(WCHAR_T_IS_UTF16) + template void PrepareForUTF16Or32Output(const char*, size_t, string16*); ++#endif + + } // namespace base diff --git a/mingw-w64-firefox/0008-Fix-stray-back-slash-in-program.patch b/mingw-w64-firefox/0008-Fix-stray-back-slash-in-program.patch new file mode 100644 index 0000000000..37e7671215 --- /dev/null +++ b/mingw-w64-firefox/0008-Fix-stray-back-slash-in-program.patch @@ -0,0 +1,12 @@ +--- firefox-39.0/security/sandbox/chromium/base/win/scoped_handle.h.orig 2015-07-19 20:52:07.176488400 +0100 ++++ firefox-39.0/security/sandbox/chromium/base/win/scoped_handle.h 2015-07-19 20:57:44.812800100 +0100 +@@ -18,8 +18,7 @@ + #include + #define BASE_WIN_GET_CALLER _ReturnAddress() + #elif defined(COMPILER_GCC) +-#define BASE_WIN_GET_CALLER __builtin_extract_return_addr(\\ +- __builtin_return_address(0)) ++#define BASE_WIN_GET_CALLER __builtin_extract_return_addr(__builtin_return_address(0)) + #endif + + namespace base { diff --git a/mingw-w64-firefox/0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch b/mingw-w64-firefox/0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch new file mode 100644 index 0000000000..754b6626f0 --- /dev/null +++ b/mingw-w64-firefox/0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch @@ -0,0 +1,15 @@ +--- firefox-39.0/security/sandbox/chromium/base/threading/platform_thread_win.cc.orig 2015-06-30 23:57:54.000000000 +0100 ++++ firefox-39.0/security/sandbox/chromium/base/threading/platform_thread_win.cc 2015-07-19 21:41:06.812626000 +0100 +@@ -13,6 +13,12 @@ + #include "base/win/scoped_handle.h" + #include "base/win/windows_version.h" + ++// LibSEH may be useful here: ++// http://www.programmingunlimited.net/siteexec/content.cgi?page=libseh ++#if defined(__GNUC__) ++#define __except(_x) ++#endif ++ + namespace base { + + namespace { diff --git a/mingw-w64-firefox/0010-Dont-use-I64-numeric-suffix.patch b/mingw-w64-firefox/0010-Dont-use-I64-numeric-suffix.patch new file mode 100644 index 0000000000..e4d8b3d944 --- /dev/null +++ b/mingw-w64-firefox/0010-Dont-use-I64-numeric-suffix.patch @@ -0,0 +1,11 @@ +--- firefox-39.0/security/sandbox/chromium/base/time/time_win.cc.orig 2015-06-30 23:57:54.000000000 +0100 ++++ firefox-39.0/security/sandbox/chromium/base/time/time_win.cc 2015-07-19 23:01:28.117321100 +0100 +@@ -334,7 +334,7 @@ + // we keep last_seen_now stay correctly in sync. + DWORD now = tick_function(); + if (now < last_seen_now) +- rollover_ms += 0x100000000I64; // ~49.7 days. ++ rollover_ms += 0x100000000ll; // ~49.7 days. + last_seen_now = now; + return TimeDelta::FromMilliseconds(now + rollover_ms); + } diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index 53b87a3c97..7a2d56e60c 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -95,6 +95,10 @@ source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/ "0004-Allow-MSYS2-python.patch" "0005-Allow-mingw-w64-python.patch" "0006-Fix-pointer-casting.patch" + "0007-Fix-duplicate-explicit-instantiation.patch" + "0008-Fix-stray-back-slash-in-program.patch" + "0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch" + "0010-Dont-use-I64-numeric-suffix.patch" "debugging.patch" "mozconfig.x86_64" "mozconfig.i686" @@ -109,7 +113,11 @@ sha1sums=('32785daee7ddb9da8d7509ef095258fc58fe838e' '2fd8904f036d2515e314b3d7510d8358add298d2' 'c06e3e351cb3d29148e0d477ad50b70973baf8be' '4883d29fefd5c25d4892091bf6a45572f3d7aca4' - '61de9dea3b9136303c7371b8980e5b293c4b46c8' + '82205584bd1b4ac4b5ac4352af3ccc15c5448a1c' + '3156a4001b6a5a62ac3a8c318f4115e8ff09e69d' + 'c17480500944d0863f51af46919133b2bd777e0c' + '17bc2719882a5bc0775f48522a45c9132aebdd04' + '12385ab4cb659f712f3a3a93248741d299048b9c' 'c2a0ed20a82d212bb4aa84cb2f294be3ba0bb859' 'f437cc5a819788b63d8d9202290f516a85e9f6a2' 'f6da0857f310788c4a23d158bf03a93ab11230b7' @@ -147,6 +155,10 @@ prepare() { fi patch -p1 -i "${srcdir}"/0005-Allow-mingw-w64-python.patch patch -p1 -i "${srcdir}"/0006-Fix-pointer-casting.patch + patch -p1 -i "${srcdir}"/0007-Fix-duplicate-explicit-instantiation.patch + patch -p1 -i "${srcdir}"/0008-Fix-stray-back-slash-in-program.patch + patch -p1 -i "${srcdir}"/0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch + patch -p1 -i "${srcdir}"/0010-Dont-use-I64-numeric-suffix.patch patch -p1 -i "${srcdir}"/debugging.patch find . -name config.sub -exec cp "${srcdir}"/config.sub {} \; diff --git a/mingw-w64-firefox/debugging.patch b/mingw-w64-firefox/debugging.patch index 9ce7bd961f..03782a252e 100644 --- a/mingw-w64-firefox/debugging.patch +++ b/mingw-w64-firefox/debugging.patch @@ -1,6 +1,6 @@ -diff -urN a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbuild/frontend/emitter.py ---- a/python/mozbuild/mozbuild/frontend/emitter.py 2015-06-30 23:58:07.000000000 +0100 -+++ b/python/mozbuild/mozbuild/frontend/emitter.py 2015-07-13 21:43:47.955204200 +0100 +diff -urN firefox-38.0.5.orig/python/mozbuild/mozbuild/frontend/emitter.py firefox-38.0.5/python/mozbuild/mozbuild/frontend/emitter.py +--- firefox-38.0.5.orig/python/mozbuild/mozbuild/frontend/emitter.py 2015-05-25 22:28:56.000000000 +0100 ++++ firefox-38.0.5/python/mozbuild/mozbuild/frontend/emitter.py 2015-07-08 23:05:35.409977000 +0100 @@ -3,6 +3,7 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -9,8 +9,8 @@ diff -urN a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbu import itertools import json -@@ -672,6 +673,8 @@ - def _process_sources(self, context, passthru): +@@ -392,6 +393,8 @@ + for symbol in ('SOURCES', 'HOST_SOURCES', 'UNIFIED_SOURCES'): for src in (context[symbol] or []): + print('sys.argv is %s' % sys.argv, file=sys.stderr) @@ -18,15 +18,3 @@ diff -urN a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbu if not os.path.exists(mozpath.join(context.srcdir, src)): raise SandboxValidationError('File listed in %s does not ' 'exist: \'%s\'' % (symbol, src), context) -diff -urN a/python/mozbuild/mozbuild/config_status.py b/python/mozbuild/mozbuild/config_status.py ---- a/python/mozbuild/mozbuild/config_status.py 2015-06-30 23:58:07.000000000 +0100 -+++ b/python/mozbuild/mozbuild/config_status.py 2015-07-14 20:21:48.954130100 +0100 -@@ -145,7 +145,7 @@ - log_manager.add_terminal_logging(level=log_level) - log_manager.enable_unstructured() - -- print('Reticulating splines...', file=sys.stderr) -+ print('Reticulating splines... sys.argv = %s' % sys.argv, file=sys.stderr) - summary = the_backend.consume(definitions) - - for line in summary.summaries(): From 946d1324fe1acf3085cf0eb2439fcd507f971108 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 20 Jul 2015 15:54:17 +0300 Subject: [PATCH 1304/2060] === Rebuild with GCC-5.x. Part XV === --- mingw-w64-db/PKGBUILD | 6 +- mingw-w64-geocode-glib/PKGBUILD | 8 +-- mingw-w64-geoip2-database/PKGBUILD | 12 ++-- mingw-w64-libart_lgpl/PKGBUILD | 22 ++++--- .../libart_lgpl-2.3.19-upstream_fix-1.patch | 28 --------- mingw-w64-libcdio-paranoia/PKGBUILD | 13 ++-- mingw-w64-libconfig/PKGBUILD | 11 ++-- mingw-w64-libevent/PKGBUILD | 21 +++---- mingw-w64-libfbclient/PKGBUILD | 39 ------------ mingw-w64-libgadu/PKGBUILD | 21 +++---- mingw-w64-libgda/PKGBUILD | 40 +++++++------ mingw-w64-libgnomecanvas/PKGBUILD | 16 ++--- mingw-w64-libgsf/PKGBUILD | 14 +++-- mingw-w64-libgweather/PKGBUILD | 14 +++-- mingw-w64-libical-glib/PKGBUILD | 10 ++-- mingw-w64-libical/PKGBUILD | 22 +++---- mingw-w64-libidn/PKGBUILD | 6 +- mingw-w64-liblastfm/PKGBUILD | 15 +++-- mingw-w64-libmaxminddb/PKGBUILD | 11 ++-- mingw-w64-libmicrohttpd/PKGBUILD | 4 +- mingw-w64-libmodbus-git/PKGBUILD | 42 ++++++------- mingw-w64-libmongoose-git/Makefile | 59 +++++++++++++++++++ mingw-w64-libmongoose-git/PKGBUILD | 50 +++++++++------- mingw-w64-libmongoose-git/mongoose.pc | 11 ++++ mingw-w64-libnotify/PKGBUILD | 6 +- mingw-w64-libosmpbf-git/PKGBUILD | 12 ++-- mingw-w64-libotr/001-kopete.patch | 12 ---- .../002-libotr-no-undefined.patch | 4 +- mingw-w64-libotr/PKGBUILD | 20 +++---- mingw-w64-libplist/PKGBUILD | 4 +- mingw-w64-librest/PKGBUILD | 10 ++-- mingw-w64-libtorrent-rasterbar/PKGBUILD | 37 +++++------- .../cmake_pkg_config.patch | 18 +----- mingw-w64-libunistring/PKGBUILD | 11 ++-- mingw-w64-libusbmuxd/PKGBUILD | 5 +- mingw-w64-libvmime-git/PKGBUILD | 38 +++++------- mingw-w64-openldap/PKGBUILD | 28 +++++---- 37 files changed, 344 insertions(+), 356 deletions(-) delete mode 100644 mingw-w64-libart_lgpl/libart_lgpl-2.3.19-upstream_fix-1.patch delete mode 100644 mingw-w64-libfbclient/PKGBUILD create mode 100644 mingw-w64-libmongoose-git/Makefile create mode 100644 mingw-w64-libmongoose-git/mongoose.pc delete mode 100644 mingw-w64-libotr/001-kopete.patch diff --git a/mingw-w64-db/PKGBUILD b/mingw-w64-db/PKGBUILD index 9b527dd949..7c034334a3 100644 --- a/mingw-w64-db/PKGBUILD +++ b/mingw-w64-db/PKGBUILD @@ -4,7 +4,7 @@ _realname=db pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=6.0.19 -pkgrel=2 +pkgrel=3 pkgdesc="The Berkeley DB embedded database system (mingw-w64)" arch=('any') url="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" @@ -60,7 +60,5 @@ check() { package() { cd ${srcdir}/build-${CARCH} make DESTDIR="${pkgdir}" install - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname - cp -pf ${srcdir}/${_realname}-${pkgver}/LICENSE \ - ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-geocode-glib/PKGBUILD b/mingw-w64-geocode-glib/PKGBUILD index 18344b6c39..d55d581e90 100644 --- a/mingw-w64-geocode-glib/PKGBUILD +++ b/mingw-w64-geocode-glib/PKGBUILD @@ -3,7 +3,7 @@ _realname=geocode-glib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.2 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="geocoding and reverse geocoding GLib library using Yahoo! Place Finder (mingw-w64)" license=("LGPL 2") @@ -23,7 +23,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "gettext" "patch") options=('strip' '!debug' 'staticlibs') -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz 001-locale.patch 002-symbols.patch 003-give-cc-to-gir-scanner.all.patch) @@ -61,8 +61,8 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" } diff --git a/mingw-w64-geoip2-database/PKGBUILD b/mingw-w64-geoip2-database/PKGBUILD index 9ed6e2c2d8..d545e74b51 100644 --- a/mingw-w64-geoip2-database/PKGBUILD +++ b/mingw-w64-geoip2-database/PKGBUILD @@ -2,24 +2,24 @@ _realname=geoip2-database pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=20150102 +pkgver=20150720 pkgrel=1 pkgdesc="GeoLite country geolocation database compiled by MaxMind (mingw-w64)" arch=('any') url="http://www.maxmind.com/app/ip-location" license=('custom:Creative Commons Attribution-ShareAlike 3.0 Unported') -source=(GeoLite2-Country-$pkgver.mmdb.gz::http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz - #GeoLite2-City-$pkgver.mmdb.gz::http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz +source=(GeoLite2-Country-${pkgver}.mmdb.gz::http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz + #GeoLite2-City-${pkgver}.mmdb.gz::http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz ) -sha256sums=('ebc058008bc18fd29ecd720236a22d81d6cdce81d07fd75b5acf2859cc530e48') +sha256sums=('4819459376f61423f5fb96eff141bf486d8e6133c47acd832d2ba87a39f2a922') prepare() { - cd "$srcdir" + cd "${srcdir}" mv GeoLite2-Country-${pkgver}.mmdb GeoLite2-Country.mmdb } package() { - cd "$srcdir" + cd "${srcdir}" install -d "${pkgdir}${MINGW_PREFIX}/share/GeoIP2" install -m644 -t "${pkgdir}${MINGW_PREFIX}/share/GeoIP2" GeoLite2-Country.mmdb diff --git a/mingw-w64-libart_lgpl/PKGBUILD b/mingw-w64-libart_lgpl/PKGBUILD index 9e2a190410..14280d2c11 100644 --- a/mingw-w64-libart_lgpl/PKGBUILD +++ b/mingw-w64-libart_lgpl/PKGBUILD @@ -2,7 +2,7 @@ _realname=libart_lgpl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.3.19 +pkgver=2.3.21 pkgrel=1 pkgdesc="Library for high-performance 2D graphics (mingw-w64)" depends=() @@ -10,21 +10,18 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") arch=('any') url='http://www.levien.com/libart' license=('custom') -source=("http://ftp.gnome.org/pub/gnome/sources/libart_lgpl/2.3/libart_lgpl-2.3.19.tar.bz2" - "http://www.linuxfromscratch.org/patches/blfs/6.3/libart_lgpl-2.3.19-upstream_fix-1.patch" +source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.bz2" "0001-Fix-an-installation-path-bug.patch") -sha1sums=('7f1ff36c91cdc8f14b62acb50836f52a0c735b9e' - 'b901b64b6ef370ef1eeeb5aa374b91c7fed5534f' +sha1sums=('dbac185c65696381ef188de1f98b348b530e22f9' '1079fcc8b813ce55b445278493fb831a91e347e6') prepare() { - cd $srcdir/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/libart_lgpl-2.3.19-upstream_fix-1.patch + cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-Fix-an-installation-path-bug.patch } build() { - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ @@ -34,6 +31,7 @@ build() { --target=${MINGW_CHOST} \ --enable-static \ --enable-shared + cp ../${_realname}-${pkgver}/libart.def libart.def make } @@ -47,8 +45,8 @@ package() { cd "${srcdir}"/build-${CARCH} make install DESTDIR="${pkgdir}" - cd "$srcdir"/${_realname}-${pkgver} - [ -f COPYING ] && install -Dm644 COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING - [ -f AUTHORS ] && install -Dm644 AUTHORS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/AUTHORS - [ -f NEWS ] && install -Dm644 NEWS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/NEWS + cd "${srcdir}"/${_realname}-${pkgver} + [[ -f COPYING ]] && install -Dm644 COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING + [[ -f AUTHORS ]] && install -Dm644 AUTHORS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/AUTHORS + [[ -f NEWS ]] && install -Dm644 NEWS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/NEWS } diff --git a/mingw-w64-libart_lgpl/libart_lgpl-2.3.19-upstream_fix-1.patch b/mingw-w64-libart_lgpl/libart_lgpl-2.3.19-upstream_fix-1.patch deleted file mode 100644 index 68d60ed49f..0000000000 --- a/mingw-w64-libart_lgpl/libart_lgpl-2.3.19-upstream_fix-1.patch +++ /dev/null @@ -1,28 +0,0 @@ -Submitted By: Randy McMurchy -Date: 2007-04-09 -Initial Package Version: 2.3.19 -Upstream Status: In upstream CVS -Origin: Upstream -Description: Fixes an error during the installation of KDE-Libs - - -diff -Naur libart_lgpl-2.3.19.orig/art_misc.h libart_lgpl-2.3.19/art_misc.h ---- libart_lgpl-2.3.19.orig/art_misc.h 2007-01-01 18:59:22.000000000 -0500 -+++ libart_lgpl-2.3.19/art_misc.h 2007-03-20 23:04:52.000000000 -0400 -@@ -34,9 +34,15 @@ - #include - #endif - -+#ifdef __cplusplus -+extern "C" { -+#endif - void *art_alloc(size_t size); - void art_free(void *ptr); - void *art_realloc(void *ptr, size_t size); -+#ifdef __cplusplus -+} -+#endif /* __cplusplus */ - - /* These aren't, strictly speaking, configuration macros, but they're - damn handy to have around, and may be worth playing with for - diff --git a/mingw-w64-libcdio-paranoia/PKGBUILD b/mingw-w64-libcdio-paranoia/PKGBUILD index 0ddedc0e42..b15276bc78 100644 --- a/mingw-w64-libcdio-paranoia/PKGBUILD +++ b/mingw-w64-libcdio-paranoia/PKGBUILD @@ -5,19 +5,18 @@ _realname=libcdio-paranoia pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=10.2+0.93+1 -pkgrel=1 +pkgrel=2 pkgdesc="CD paranoia libraries from libcdio (mingw-w64)" arch=('any') license=('GPL' 'LGPL') url="http://www.gnu.org/software/libcdio/" -depends=("${MINGW_PACKAGE_PREFIX}-libcdio" -"${MINGW_PACKAGE_PREFIX}-gcc") +depends=("${MINGW_PACKAGE_PREFIX}-libcdio") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=(http://ftp.gnu.org/gnu/libcdio/${_realname}-${pkgver}.tar.bz2) sha256sums=('ec1d9b1d5a28cc042f2cb33a7cc0a2b5ce5525f102bc4c15db1fac322559a493') build() { - cd "${_realname}-${pkgver}" - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ @@ -25,8 +24,10 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-cpp-progs \ - --disable-static \ + --enable-shared \ + --enable-static \ --disable-example-progs + make } diff --git a/mingw-w64-libconfig/PKGBUILD b/mingw-w64-libconfig/PKGBUILD index e8fcfa0dc9..70f875a47c 100644 --- a/mingw-w64-libconfig/PKGBUILD +++ b/mingw-w64-libconfig/PKGBUILD @@ -2,7 +2,7 @@ _realname=libconfig pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.9 +pkgver=1.5 pkgrel=1 pkgdesc="C/C++ Configuration File Library (mingw-w64)" arch=('any') @@ -11,13 +11,14 @@ license=('LGPL') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('!libtool' '!emptydirs') -source=("http://www.hyperrealm.com/libconfig/$_realname-$pkgver.tar.gz") -md5sums=('b6ee0ce2b3ef844bad7cac2803a90634') +source=("http://www.hyperrealm.com/libconfig/${_realname}-${pkgver}.tar.gz") +md5sums=('a939c4990d74e6fc1ee62be05716f633') build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -29,5 +30,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}/lib" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libevent/PKGBUILD b/mingw-w64-libevent/PKGBUILD index beaf0c5c67..e14514f623 100644 --- a/mingw-w64-libevent/PKGBUILD +++ b/mingw-w64-libevent/PKGBUILD @@ -4,24 +4,27 @@ _realname=libevent pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.22 -pkgrel=1 +pkgrel=2 pkgdesc="An event notification library" arch=('any') url="http://www.monkey.org/~provos/libevent/" license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-openssl") + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-python2") +optdepends=("${MINGW_PACKAGE_PREFIX}-python2") source=(https://sourceforge.net/projects/levent/files/${_realname}/${_realname}-2.0/${_realname}-${pkgver}-stable.tar.gz) md5sums=('c4c56f986aa985677ca1db89630a2e11') prepare() { - cd "${srcdir}/${_realname}-$pkgver-stable" + cd "${srcdir}/${_realname}-${pkgver}-stable" } build() { - mkdir -p "${srcdir}/build-${CARCH}" - cd "${srcdir}/build-${CARCH}" - "${srcdir}/${_realname}-$pkgver-stable"/configure \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}-stable/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -32,8 +35,6 @@ build() { } package() { - optdepends=("${MINGW_PACKAGE_PREFIX}-python2") - - cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libfbclient/PKGBUILD b/mingw-w64-libfbclient/PKGBUILD deleted file mode 100644 index 989b557a33..0000000000 --- a/mingw-w64-libfbclient/PKGBUILD +++ /dev/null @@ -1,39 +0,0 @@ -# Maintainer: Alexey Pavlov - -_realname=libfbclient - -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.5.2.26540 -pkgrel=1 -pkgdesc="Firebird client libraries (mingw-w64)" -arch=('any') -url="http://firebirdsql.org" -license=('GPL') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -depends=("${MINGW_PACKAGE_PREFIX}-crt") -options=('!strip' 'staticlibs') -source=("http://sourceforge.net/projects/firebird/files/firebird-win32/2.5.2-Release/Firebird-2.5.2.26540-0_Win32.zip" - "http://sourceforge.net/projects/firebird/files/firebird-win64/2.5.2-Release/Firebird-2.5.2.26540-0_x64.zip") -sha256sums=('4cb43b9b1906418980622a18c313a35196b896821fbaeb61742971f79f32b951' - 'b7074980e4dcd4880ac0385ed272bb40d1eb33b4f047c1cb10bb42fefdb864f0') -noextract=("Firebird-2.5.2.26540-0_Win32.zip" "Firebird-2.5.2.26540-0_x64.zip") - -prepare() { - mkdir ${srcdir}/${MINGW_CHOST} - case ${MINGW_CHOST} in - i686*) - [ -d $srcdir/$pkgname-$_ver ] || /bin/bsdtar -xf ${startdir}/Firebird-2.5.2.26540-0_Win32.zip -C ${srcdir}/${MINGW_CHOST} - ;; - x86_64*) - [ -d $srcdir/$pkgname-$_ver ] || /bin/bsdtar -xf ${startdir}/Firebird-2.5.2.26540-0_x64.zip -C ${srcdir}/${MINGW_CHOST} - ;; - esac -} - -package() { - cd "${srcdir}/${MINGW_CHOST}" - mkdir -p "${pkgdir}${MINGW_PREFIX}/"{bin,include,lib} - cp -R include "${pkgdir}${MINGW_PREFIX}" - install -Dm644 lib/fbclient_ms.lib "${pkgdir}${MINGW_PREFIX}/lib/fbclient_ms.lib" - install -Dm644 bin/fbclient.dll "${pkgdir}${MINGW_PREFIX}/bin/fbclient.dll" -} diff --git a/mingw-w64-libgadu/PKGBUILD b/mingw-w64-libgadu/PKGBUILD index a322e62aa4..eb9495554a 100644 --- a/mingw-w64-libgadu/PKGBUILD +++ b/mingw-w64-libgadu/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgadu pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.12.0 +pkgver=1.12.1 pkgrel=1 pkgdesc="This library implements the client side of the Gadu-Gadu protocol (mingw-w64)" arch=('any') @@ -11,20 +11,17 @@ license=("LGPL2.1") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gnutls" "${MINGW_PACKAGE_PREFIX}-protobuf-c") options=('staticlibs' 'strip') -source=("http://github.com/wojtekka/libgadu/releases/download/${pkgver}/${_realname}-${pkgver}.tar.gz" - protobuf-c.patch) -md5sums=('e4569a0ed26136c4634fa8c4013910e3' - '893ce50093458407ad688f12f999b106') +source=("http://github.com/wojtekka/libgadu/releases/download/${pkgver}/${_realname}-${pkgver}.tar.gz") +md5sums=('6de8b26f3b9155a67f549ced6da93c56') prepare() { - cd "$srcdir/${_realname}-${pkgver}" - patch -p1 -i ${srcdir}/protobuf-c.patch - - ./protobufgen.sh + cd "${srcdir}/${_realname}-${pkgver}" } build() { - mkdir -p $srcdir/build-${CARCH} && cd $srcdir/build-${CARCH} + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -37,11 +34,11 @@ build() { } check() { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make check } package() { - cd "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libgda/PKGBUILD b/mingw-w64-libgda/PKGBUILD index 7efbe6eba0..24e550460a 100644 --- a/mingw-w64-libgda/PKGBUILD +++ b/mingw-w64-libgda/PKGBUILD @@ -2,45 +2,46 @@ _realname=libgda pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.2.2 +pkgver=5.2.4 pkgrel=1 arch=('any') pkgdesc="Data abstraction library based on GLib (mingw-w64)" license=("LGPL 2") url="http://www.gnome.org" depends=("${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-gtksourceview3" "${MINGW_PACKAGE_PREFIX}-goocanvas" - "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-iso-codes" "${MINGW_PACKAGE_PREFIX}-json-glib" "${MINGW_PACKAGE_PREFIX}-libsoup" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" "${MINGW_PACKAGE_PREFIX}-glade") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-gtk-doc" - "${MINGW_PACKAGE_PREFIX}-gnome-doc-utils" "${MINGW_PACKAGE_PREFIX}-iso-codes" - "${MINGW_PACKAGE_PREFIX}-db" - "${MINGW_PACKAGE_PREFIX}-libfbclient" + #"${MINGW_PACKAGE_PREFIX}-db" + "${MINGW_PACKAGE_PREFIX}-firebird2" "${MINGW_PACKAGE_PREFIX}-postgresql" "${MINGW_PACKAGE_PREFIX}-libmariadbclient" "${MINGW_PACKAGE_PREFIX}-openldap" - "flex" - "make" - "libtool" "automake-wrapper" "autoconf" + "flex" "gettext" + "gnome-doc-utils" + "gtk-doc" "libintl" + "libtool" + "make" "patch") options=('strip' '!debug' 'staticlibs') -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:3}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:3}/${_realname}-${pkgver}.tar.xz 001-lemon.patch 002-mysql-m4.patch 003-give-cc-to-gir-scanner.all.patch 004-add-missing-symbols.patch 005-hack-convert-path-back-to-unix.patch) -sha256sums=('c9b8b1c32f1011e47b73c5dcf36649aaef2f1edaa5f5d75be20d9caadc2bc3e4' +sha256sums=('2cee38dd583ccbaa5bdf6c01ca5f88cc08758b9b144938a51a478eb2684b765e' 'e61c10e41ea2b343c6a50d0cbf1f2912b9d9273882249a998f60cda2f4a94d4c' '5a9959715e63a82e5bf62bb3e6ffbe4d4b587094d13b671e2a676720c765e048' 'a0a2e3ca548feedc6502f29ff0ef5f047bf2a7dabd7722011147872a5aea733b' @@ -60,8 +61,9 @@ prepare() { } build() { - mkdir -p build-${MINGW_CHOST} - cd build-${MINGW_CHOST} + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ @@ -77,11 +79,15 @@ build() { --enable-gi-system-install=no \ --with-ldap=${MINGW_PREFIX} \ --with-mysql=${MINGW_PREFIX} \ - --with-mysql-libdir-name=lib + --with-mysql-libdir-name=lib \ + --with-postgres=${MINGW_PREFIX} \ + --with-firebird=${MINGW_PREFIX} \ + --with-bdb=${MINGW_PREFIX} + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libgnomecanvas/PKGBUILD b/mingw-w64-libgnomecanvas/PKGBUILD index 36922e47e9..f36860e9a5 100644 --- a/mingw-w64-libgnomecanvas/PKGBUILD +++ b/mingw-w64-libgnomecanvas/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgnomecanvas pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.30.3 -pkgrel=1 +pkgrel=2 pkgdesc="The GNOME canvas library (mingw-w64)" arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-gtk2" @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "intltool") url='https://developer.gnome.org/libgnomecanvas/stable/GnomeCanvas.html' license=('LGPL2') -source=("http://ftp.acc.umu.se/pub/gnome/sources/libgnomecanvas/${pkgver%.*}/${_realname}-${pkgver}.tar.gz") +source=("http://ftp.gnome.org/pub/gnome/sources/libgnomecanvas/${pkgver%.*}/${_realname}-${pkgver}.tar.gz") sha1sums=('e73e0739d28c0772728621ae151c9a7d9b6d3dfd') prepare() { @@ -23,7 +23,7 @@ prepare() { } build() { - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ @@ -45,10 +45,10 @@ check() { package() { cd "${srcdir}"/build-${CARCH} - make install DESTDIR="${pkgdir}" + make DESTDIR="${pkgdir}" install - cd "$srcdir"/${_realname}-${pkgver} - [ -f COPYING.LIB ] && install -Dm644 COPYING.LIB ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB - [ -f AUTHORS ] && install -Dm644 AUTHORS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/AUTHORS - [ -f NEWS ] && install -Dm644 NEWS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/NEWS + cd "${srcdir}"/${_realname}-${pkgver} + [[ -f COPYING.LIB ]] && install -Dm644 COPYING.LIB ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB + [[ -f AUTHORS ]] && install -Dm644 AUTHORS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/AUTHORS + [[ -f NEWS ]] && install -Dm644 NEWS ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/NEWS } diff --git a/mingw-w64-libgsf/PKGBUILD b/mingw-w64-libgsf/PKGBUILD index 4b1c95a84b..c1710e52b8 100644 --- a/mingw-w64-libgsf/PKGBUILD +++ b/mingw-w64-libgsf/PKGBUILD @@ -3,13 +3,13 @@ _realname=libgsf pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.14.33 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="An extensible I/O abstraction library for dealing with structured file formats (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2") + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "gtk-doc" @@ -17,7 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-vala" options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch 002-get-unix-path-for-git.patch) sha256sums=('82dd38e0c1f497704bf3b43682fca2768886058f004b14e9b5d103596f8c6e6b' @@ -34,6 +34,7 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -47,12 +48,13 @@ build() { --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ --enable-introspection + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" diff --git a/mingw-w64-libgweather/PKGBUILD b/mingw-w64-libgweather/PKGBUILD index a68737d0cc..27a3977c62 100644 --- a/mingw-w64-libgweather/PKGBUILD +++ b/mingw-w64-libgweather/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgweather pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.1 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="GWeather shared library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gtk3" @@ -21,12 +21,12 @@ options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" install=${_realname}-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch - 002-relocation.patch) + 002-relocation.patch) sha256sums=('db0955261427bb0f1a3f2747507863c591bf2f09dc477cfbf1cea0382cd34dfd' '54aafa1ec47f818855cb8d17bb4f7f4458505a54b08c9fc51bfd4bbc1d6c37a2' - '5d44c1dfed0deff2a4acdb676ff99d8d6ba1983abf27eb423ae3351334ce10cb') + '5d44c1dfed0deff2a4acdb676ff99d8d6ba1983abf27eb423ae3351334ce10cb') prepare() { cd ${_realname}-${pkgver} @@ -38,6 +38,7 @@ prepare() { } build() { + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -51,12 +52,13 @@ build() { --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ --enable-introspection + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libical-glib/PKGBUILD b/mingw-w64-libical-glib/PKGBUILD index 94ecc956f4..a5fe763de6 100644 --- a/mingw-w64-libical-glib/PKGBUILD +++ b/mingw-w64-libical-glib/PKGBUILD @@ -3,19 +3,19 @@ _realname=libical-glib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.3 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="An iCalendar library based on libical and introspectable by GObject Introspection (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-libical" "${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-libxml2") + "${MINGW_PACKAGE_PREFIX}-libxml2") makedepends=("gtk-doc" "${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) sha256sums=('75373fb778352656c6368ffa7b371afa2fd2e2579874b0ec653a443da7a72d36' '4e34ccb69bd5356071b4d0ee96cf5b7148f6ae7dd3815861dee4fbb8e99156fd') @@ -47,8 +47,8 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libical/PKGBUILD b/mingw-w64-libical/PKGBUILD index 7aa6d2c85b..d76ba53191 100644 --- a/mingw-w64-libical/PKGBUILD +++ b/mingw-w64-libical/PKGBUILD @@ -3,7 +3,7 @@ _realname=libical pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.1 -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="An Open Source implementation of the iCalendar protocols and protocol data units (mingw-w64)" license=("LGPL 2.1") @@ -11,7 +11,7 @@ url="https://github.com/libical/libical" depends=() makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") options=('strip' '!debug' 'staticlibs') -source=("${_realname}-${pkgver}.tar.gz"::https://github.com/${_realname}/${_realname}/archive/v$pkgver.tar.gz +source=("${_realname}-${pkgver}.tar.gz"::https://github.com/${_realname}/${_realname}/archive/v${pkgver}.tar.gz 001-win.patch 002-introspection.patch) noextract=(${_realname}-${pkgver}.tar.gz) @@ -32,26 +32,22 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -G "MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DCMAKE_C_FLAGS="${CFLAGS}" \ - -DGOBJECT_INTROSPECTION=true \ - -G "MSYS Makefiles" \ + -DGOBJECT_INTROSPECTION=OFF \ ../${_realname}-${pkgver} + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - local PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libical.pc + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-libidn/PKGBUILD b/mingw-w64-libidn/PKGBUILD index f44286dcb9..ccfc9f664c 100644 --- a/mingw-w64-libidn/PKGBUILD +++ b/mingw-w64-libidn/PKGBUILD @@ -2,8 +2,8 @@ _realname=libidn pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.30 -pkgrel=2 +pkgver=1.31 +pkgrel=1 pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libidn" @@ -14,7 +14,7 @@ options=('staticlibs' 'strip') source=("ftp://ftp.gnu.org/gnu/libidn/${_realname}-${pkgver}.tar.gz" 0001-fix-gtkdoc.all.patch 0002-fix-gdoc.all.patch) -sha1sums=('557e1e37f0978e975b21bcdc243c198cb708bb75' +sha1sums=('0bb34003a0fe05a91e60d346803401f16c82a1fb' '42baea83d76aeaa99e50f551d98dade8a5394fe3' '730dfdfdf3c2878113224c104f9c6c213010d7f0') diff --git a/mingw-w64-liblastfm/PKGBUILD b/mingw-w64-liblastfm/PKGBUILD index 3977d331ee..e4059b5a76 100644 --- a/mingw-w64-liblastfm/PKGBUILD +++ b/mingw-w64-liblastfm/PKGBUILD @@ -4,20 +4,17 @@ _realname=liblastfm pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.9 -pkgrel=1 +pkgrel=2 pkgdesc="A Qt C++ library for the Last.fm webservices http://www.last.fm" arch=('any') license=('Boost') -url="http://www.rasterbar.com/products/libtorrent" +url="http://www.lastfm.ru/download" depends=("${MINGW_PACKAGE_PREFIX}-qt5" "${MINGW_PACKAGE_PREFIX}-fftw" "${MINGW_PACKAGE_PREFIX}-libsamplerate") - makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake") - + "${MINGW_PACKAGE_PREFIX}-cmake") options=(!strip staticlibs !buildflags) - source=(${_realname}-${pkgver}.tar.gz::"https://github.com/lastfm/liblastfm/archive/${pkgver}.tar.gz" versioned-dlls-mingw.patch) md5sums=('8748f423f66f2fbc38c39f9153d01a71' @@ -29,12 +26,14 @@ prepare() { } build() { + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DBUILD_TESTS=False \ ${srcdir}/${_realname}-${pkgver}/ @@ -44,5 +43,5 @@ build() { package() { cd ${srcdir}/build-${MINGW_CHOST} - make -j1 install + make DESTDIR=${pkgdir} -j1 install } diff --git a/mingw-w64-libmaxminddb/PKGBUILD b/mingw-w64-libmaxminddb/PKGBUILD index 5d9785d617..722097b4ab 100644 --- a/mingw-w64-libmaxminddb/PKGBUILD +++ b/mingw-w64-libmaxminddb/PKGBUILD @@ -2,7 +2,7 @@ _realname=libmaxminddb pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.3 +pkgver=1.0.4 pkgrel=1 pkgdesc="C library for reading MaxMind DB files, including the GeoIP2 databases from MaxMind (mingw-w64)" arch=('any') @@ -15,11 +15,11 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "git" "patch") options=('!emptydirs') -source=(https://github.com/maxmind/${_realname}/archive/${pkgver}.tar.gz +source=(${_realname}-${pkgver}.tar.gz::https://github.com/maxmind/${_realname}/archive/${pkgver}.tar.gz "MaxMind-DB"::git+https://github.com/maxmind/MaxMind-DB.git libtap::git+https://github.com/zorgnax/libtap.git mingw-no-undefined.patch) -sha256sums=('00fcc61463cabd8293a41c44db3ce3a7d9c078db8693a89b7c1e32df4866654e' +sha256sums=('39ccc2c296bcc989c86513967a8cc9cb7e4efe0153ef61f07a3d7d1e931e3d02' 'SKIP' 'SKIP' 'f3246d235bd6dfcb6fd8e89fa63de95b0384283fce12a0ebef56e1b2fe9bd248') @@ -33,9 +33,10 @@ prepare() { } build() { + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ../${_realname}-$pkgver/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -46,5 +47,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libmicrohttpd/PKGBUILD b/mingw-w64-libmicrohttpd/PKGBUILD index 5541971f76..2eb02868f0 100644 --- a/mingw-w64-libmicrohttpd/PKGBUILD +++ b/mingw-w64-libmicrohttpd/PKGBUILD @@ -4,10 +4,10 @@ _realname=libmicrohttpd pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.42 -pkgrel=1 +pkgrel=2 pkgdesc="GNU libmicrohttpd is a small C library that is supposed to make it easy to run an HTTP server as part of another application (mingw-w64)" arch=('any') -url=http://www.gnu.org/software/libmicrohttpd/ +url="http://www.gnu.org/software/libmicrohttpd" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool" diff --git a/mingw-w64-libmodbus-git/PKGBUILD b/mingw-w64-libmodbus-git/PKGBUILD index 6f4c480f03..b3bd64077f 100644 --- a/mingw-w64-libmodbus-git/PKGBUILD +++ b/mingw-w64-libmodbus-git/PKGBUILD @@ -2,43 +2,45 @@ # Contributor: Stas Elensky _realname=libmodbus - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=652.98c4aca +pkgver=658.0e2f470 pkgrel=1 pkgdesc="A Modbus library for Linux, Mac OS X, FreeBSD, QNX and Win32 (mingw-w64)" - +url="http://libmodbus.org/" arch=('any') license=('LGPL') -provides=(libmodbus) - -source=("git://github.com/stephane/libmodbus") -url="http://libmodbus.org/" -md5sums=('SKIP') - -makedepends=(git +makedepends=("git" "asciidoc" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=() options=('strip' 'staticlibs' '!buildflags' '!emptydirs' '!debug') +source=("${_realname}::git+https://github.com/stephane/libmodbus") +md5sums=('SKIP') pkgver() { - cd $_realname + cd ${_realname} echo $(git rev-list --count HEAD).$(git rev-parse --short HEAD) #git describe --tags |sed 's+-+.+g' } -build() { - unset CFLAGS - unset LDFLAGS - - cd $_realname +prepare() { + cd ${_realname} ./autogen.sh - ./configure --prefix=${MINGW_PREFIX} +} + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + make } package() { - cd $_realname - make DESTDIR="$pkgdir/" install + cd build-${MINGW_CHOST} + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libmongoose-git/Makefile b/mingw-w64-libmongoose-git/Makefile new file mode 100644 index 0000000000..c49a75910e --- /dev/null +++ b/mingw-w64-libmongoose-git/Makefile @@ -0,0 +1,59 @@ +SONAME_MAJOR=5 +SONAME_MINOR=6 +LIBNAME=libmongoose + +SHARED_LIB=$(LIBNAME)-$(SONAME_MAJOR).dll +STATIC_LIB=$(LIBNAME).a +IMPORT_LIB=$(LIBNAME).dll.a + +ifndef PREFIX + PREFIX=/usr/local +endif + +ifndef BINDIR + BINDIR=$(PREFIX)/bin +endif + +ifndef LIBDIR + LIBDIR=$(PREFIX)/lib +endif + +ifndef DOCDIR + DOCDIR=$(PREFIX)/share/$(LIBNAME)/doc +endif + +CPPFLAGS+=-DNS_ENABLE_SSL #-DNS_ENABLE_IPV6 +CFLAGS+=-c -Wall +LDFLAGS+=-shared -Wl,--out-implib,$(IMPORT_LIB) -lws2_32 -lssl + +SRCS=mongoose.c +OBJS=mongoose.o +INCLUDE=. + +all: $(SHARED_LIB) $(STATIC_LIB) + +$(SHARED_LIB): $(OBJS) + $(CC) $(OBJS) $(LDFLAGS) -o $(SHARED_LIB) + +$(STATIC_LIB): + $(AR) rcs $(STATIC_LIB) $(OBJS) + +$(OBJS): $(SRCS) + $(CC) $(CPPFLAGS) $(CFLAGS) -I$(INCLUDE) $(SRCS) -o $(OBJS) + +install: $(SHARED_LIB) + install -Dm655 $(SHARED_LIB) $(DESTDIR)$(BINDIR)/$(SHARED_LIB) + install -Dm644 $(STATIC_LIB) $(DESTDIR)$(LIBDIR)/$(STATIC_LIB) + install -Dm644 $(IMPORT_LIB) $(DESTDIR)$(LIBDIR)/$(IMPORT_LIB) + install -Dm644 mongoose.h $(DESTDIR)$(PREFIX)/include/mongoose.h + install -dm755 $(DESTDIR)$(DOCDIR) + cp -a examples $(DESTDIR)$(DOCDIR) + cp -a docs/* $(DESTDIR)$(DOCDIR)/ + +test: + $(MAKE) -C test/ +clean: + rm -f $(OBJS) $(SHARED_LIB) $(STATIC_LIB) + $(MAKE) -C test/ clean + +.PHONY: clean test all diff --git a/mingw-w64-libmongoose-git/PKGBUILD b/mingw-w64-libmongoose-git/PKGBUILD index 72626ff06b..8d425959f2 100644 --- a/mingw-w64-libmongoose-git/PKGBUILD +++ b/mingw-w64-libmongoose-git/PKGBUILD @@ -1,38 +1,46 @@ # Maintainer: Renato Silva _realname='libmongoose' +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) +provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) +conflicts=(${MINGW_PACKAGE_PREFIX}-${_realname}) +pkgver=r1793.41b405d +pkgrel=1 url='https://github.com/cesanta/mongoose' pkgdesc='Embedded web server for C/C++ (mingw-w64)' license=('GPL2') arch=('any') -pkgver=r1771.b8dfb69 -pkgrel=1 - -pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) -provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) -conflicts=(${MINGW_PACKAGE_PREFIX}-${_realname}) +depends=(${MINGW_PACKAGE_PREFIX}-openssl) makedepends=(${MINGW_PACKAGE_PREFIX}-gcc) -source=(${_realname}::'git+https://github.com/cesanta/mongoose') -sha1sums=('SKIP') +source=(${_realname}::'git+https://github.com/cesanta/mongoose' + mongoose.pc + Makefile) +sha1sums=('SKIP' + '92c82813e7c1b277a0078c0e67addc7e159aec81' + '93195c1e22f9a2ce663e5ade1b1f0261a4d08dbc') pkgver() { - cd "${srcdir}/${_realname}" - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + cd "${srcdir}/${_realname}" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cp Makefile ${_realname}/ + cp mongoose.pc ${_realname}/ } build() { - cd "${srcdir}/${_realname}" - # See https://github.com/cesanta/mongoose/issues/326 - gcc -c mongoose.c -o mongoose.o - ar rcs libmongoose.a mongoose.o - gcc -shared -o libmongoose.dll mongoose.o -Wl,--out-implib,libmongoose.dll.a -lws2_32 + cd "${srcdir}/${_realname}" + make PREFIX=${MINGW_PREFIX} CC=gcc -j1 } package() { - cd "${srcdir}/${_realname}" - install -D -m644 mongoose.h "${pkgdir}${MINGW_PREFIX}/include/mongoose.h" - install -D -m644 libmongoose.a "${pkgdir}${MINGW_PREFIX}/lib/libmongoose.a" - install -D -m644 libmongoose.dll.a "${pkgdir}${MINGW_PREFIX}/lib/libmongoose.dll.a" - install -D -m755 libmongoose.dll "${pkgdir}${MINGW_PREFIX}/bin/libmongoose.dll" - install -D -m644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + cd "${srcdir}/${_realname}" + make PREFIX=${MINGW_PREFIX} DESTDIR=${pkgdir} install + install -D -m644 mongoose.pc "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/mongoose.pc" + install -D -m644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + + sed -e "s|@@PREFIX@@|${MINGW_PREFIX}|g" \ + -e "s|@@VERSION@@|5.6|g" \ + -i "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/mongoose.pc" } diff --git a/mingw-w64-libmongoose-git/mongoose.pc b/mingw-w64-libmongoose-git/mongoose.pc new file mode 100644 index 0000000000..8e76057c2d --- /dev/null +++ b/mingw-w64-libmongoose-git/mongoose.pc @@ -0,0 +1,11 @@ +prefix=@@PREFIX@@ +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: mongoose +Description: embedded library, to start a web server in few lines of code +Version: @@VERSION@@ +Requires: libssl +Libs: -L${libdir} -lmongoose +Cflags: -I${includedir} -pthread diff --git a/mingw-w64-libnotify/PKGBUILD b/mingw-w64-libnotify/PKGBUILD index 878119fc7c..ba03c443cd 100644 --- a/mingw-w64-libnotify/PKGBUILD +++ b/mingw-w64-libnotify/PKGBUILD @@ -5,7 +5,7 @@ _realname=libnotify pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.7.6 -pkgrel=1 +pkgrel=2 pkgdesc="Desktop notification library (mingw-w64)" arch=('any') url="http://library.gnome.org/devel/notification-spec/" @@ -29,8 +29,8 @@ prepare() { } build() { - cd "$srcdir"/${_realname}-${pkgver} - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + cd "${srcdir}"/${_realname}-${pkgver} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ diff --git a/mingw-w64-libosmpbf-git/PKGBUILD b/mingw-w64-libosmpbf-git/PKGBUILD index 76380d9d6e..7ee032b98a 100644 --- a/mingw-w64-libosmpbf-git/PKGBUILD +++ b/mingw-w64-libosmpbf-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=libosmpbf pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=1.3.3.10.g3730430 +pkgver=1.3.3.13.g4edb4f0 pkgrel=1 pkgdesc="A library to support OpenStreetMap's protocolbuffer binary .pbf format (mingw-w64)" arch=('any') @@ -15,22 +15,26 @@ source=("${_realname}::git+https://github.com/scrosby/OSM-binary.git") md5sums=('SKIP') pkgver() { - cd "$_realname" + cd "${_realname}" git describe --tags | sed -e 's|-|.|g' -e 's|v||g' } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ ../${_realname} + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libotr/001-kopete.patch b/mingw-w64-libotr/001-kopete.patch deleted file mode 100644 index 110e4eec2e..0000000000 --- a/mingw-w64-libotr/001-kopete.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur old/src/message.c new/src/message.c ---- old/src/message.c 2012-08-31 02:15:35.000000000 -1000 -+++ new/src/message.c 2014-01-06 01:22:43.316831758 -1000 -@@ -441,7 +441,7 @@ - /* Fragment and send according to policy */ - if (!err && messagep && *messagep) { - if (context) { -- err = fragment_and_send(ops, NULL, context, *messagep, -+ err = fragment_and_send(ops, opdata, context, *messagep, - fragPolicy, messagep); - } - } diff --git a/mingw-w64-libotr/002-libotr-no-undefined.patch b/mingw-w64-libotr/002-libotr-no-undefined.patch index 6c0dd559b8..29b928b029 100644 --- a/mingw-w64-libotr/002-libotr-no-undefined.patch +++ b/mingw-w64-libotr/002-libotr-no-undefined.patch @@ -14,8 +14,8 @@ diff -Naur libotr-4.0.0-orig/toolkit/Makefile.am libotr-4.0.0/toolkit/Makefile.a --- libotr-4.0.0-orig/toolkit/Makefile.am 2012-05-03 17:52:22.000000000 +0400 +++ libotr-4.0.0/toolkit/Makefile.am 2014-07-09 22:42:43.687000000 +0400 @@ -1,4 +1,4 @@ --INCLUDES = -I$(includedir) -I../src @LIBGCRYPT_CFLAGS@ -+INCLUDES = -I$(includedir) -I$(top_srcdir)/src @LIBGCRYPT_CFLAGS@ +-AM_CPPFLAGS = -I$(includedir) -I../src @LIBGCRYPT_CFLAGS@ ++AM_CPPFLAGS = -I$(includedir) -I$(top_srcdir)/src @LIBGCRYPT_CFLAGS@ noinst_HEADERS = aes.h ctrmode.h parse.h sesskeys.h readotr.h sha1hmac.h diff --git a/mingw-w64-libotr/PKGBUILD b/mingw-w64-libotr/PKGBUILD index f7c5dda135..a9dfddd91b 100644 --- a/mingw-w64-libotr/PKGBUILD +++ b/mingw-w64-libotr/PKGBUILD @@ -2,8 +2,8 @@ _realname=libotr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.0.0 -pkgrel=2 +pkgver=4.1.0 +pkgrel=1 pkgdesc="Off-the-Record Messaging Library and Toolkit (mingw-w64)" arch=('any') url="http://www.cypherpunks.ca/otr/" @@ -11,18 +11,16 @@ license=('GPL') depends=("${MINGW_PACKAGE_PREFIX}-libgcrypt") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=("http://www.cypherpunks.ca/otr/${_realname}-${pkgver}.tar.gz" - '001-kopete.patch' +source=(https://otr.cypherpunks.ca/${_realname}-${pkgver}.tar.gz{,.asc} '002-libotr-no-undefined.patch' '003-fix-symlinks.patch') -md5sums=('00979dca82d70383fcd1b01f3974363c' - '6ef0928ce2946bd039c89d59fa28707a' - '83a5e2e8cd03aab67143826025469a1d' +md5sums=('6589f81e7ccbe244f265e8db372814a2' + 'SKIP' + 'f8bdedeb824a6394d0c5061c0aaf7f08' '4bedcda46f566ccece54cd68585b04f8') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/001-kopete.patch patch -p1 -i ${srcdir}/002-libotr-no-undefined.patch patch -p1 -i ${srcdir}/003-fix-symlinks.patch @@ -30,9 +28,10 @@ prepare() { } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -40,10 +39,11 @@ build() { --enable-shared \ --enable-static \ --mandir=${MINGW_PREFIX}/share/man + make } package() { cd ${srcdir}/build-${MINGW_CHOST} - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-libplist/PKGBUILD b/mingw-w64-libplist/PKGBUILD index 6705142189..68a899ecdf 100644 --- a/mingw-w64-libplist/PKGBUILD +++ b/mingw-w64-libplist/PKGBUILD @@ -3,7 +3,7 @@ _realname=libplist pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.12 -pkgrel=2 +pkgrel=3 pkgdesc='A library to handle Apple Property List format in binary or XML (mingw-w64)' arch=('any') url='http://www.libimobiledevice.org/' @@ -25,7 +25,7 @@ prepare() { } build() { - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} PYTHON=${MINGW_PREFIX}/bin/python3 \ diff --git a/mingw-w64-librest/PKGBUILD b/mingw-w64-librest/PKGBUILD index 03f65d6feb..6fd5033887 100644 --- a/mingw-w64-librest/PKGBUILD +++ b/mingw-w64-librest/PKGBUILD @@ -3,7 +3,7 @@ _realname=rest pkgname="${MINGW_PACKAGE_PREFIX}-lib${_realname}" pkgver=0.7.93 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Helper library for RESTful services (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-vala" options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) sha256sums=('c710644455340a44ddc005c645c466f05c0d779993138ea21a62c6082108b216' 'c7b1ebbc45071b08493758b6953e19cec4d7eac1b8e95fdb67011797b4a26a93') @@ -30,6 +30,7 @@ prepare() { } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -44,12 +45,13 @@ build() { --libexecdir=${MINGW_PREFIX}/lib \ --enable-introspection \ --without-ca-certificates + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/lib${_realname}/COPYING" } diff --git a/mingw-w64-libtorrent-rasterbar/PKGBUILD b/mingw-w64-libtorrent-rasterbar/PKGBUILD index 2ece2025ac..b510a272eb 100644 --- a/mingw-w64-libtorrent-rasterbar/PKGBUILD +++ b/mingw-w64-libtorrent-rasterbar/PKGBUILD @@ -3,53 +3,46 @@ _realname=libtorrent-rasterbar pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.16.17 +pkgver=1.0.5 pkgrel=1 -pkgdesc="libtorrent is a feature complete C++ bittorrent implementation focusing on efficiency and scalability." +pkgdesc="libtorrent is a feature complete C++ bittorrent implementation focusing on efficiency and scalability (mingw-w64)" arch=('any') license=('BSD') url="http://www.rasterbar.com/products/libtorrent" depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-openssl") - makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-pkg-config") options=(staticlibs strip) - source=("http://downloads.sourceforge.net/sourceforge/libtorrent/${_realname}-${pkgver}.tar.gz" cmake_pkg_config.patch) -md5sums=('34f01b9f755d1822cb761f8d8eb07bb8' - '49a025de76b8f525de6a2d2c58d53b43') +md5sums=('d09521d34092ba430f430572c9e2b3d3' + '6e57f2a497401c7ec77fcefeb27fec5b') prepare() { - cd "$srcdir/$_realname-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -p0 -i ${srcdir}/cmake_pkg_config.patch } build() { - mkdir $srcdir/build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -Dbuild_tests=False \ -Dbuild_examples=False \ - ${srcdir}/${_realname}-${pkgver} + ../${_realname}-${pkgver} make } package() { - cd $srcdir/build-${MINGW_CHOST} - make install - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libtorrent-rasterbar.pc + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libtorrent-rasterbar/cmake_pkg_config.patch b/mingw-w64-libtorrent-rasterbar/cmake_pkg_config.patch index 0909779c35..0ea2af09a8 100644 --- a/mingw-w64-libtorrent-rasterbar/cmake_pkg_config.patch +++ b/mingw-w64-libtorrent-rasterbar/cmake_pkg_config.patch @@ -1,22 +1,10 @@ --- CMakeLists.txt.orig 2014-07-10 23:30:19.099760500 +0300 +++ CMakeLists.txt 2014-07-11 16:38:53.144106400 +0300 -@@ -255,9 +255,9 @@ - set (COMPILETIME_OPTIONS "${COMPILETIME_OPTIONS} -D${s}") - endforeach (s) - --if (MSVC) -+if (MSVC OR MINGW) - configure_file(libtorrent-rasterbar-cmake.pc.in libtorrent-rasterbar.pc) --endif (MSVC) -+endif (MSVC OR MINGW) - - string (COMPARE EQUAL "${CMAKE_SIZEOF_VOID_P}" "8" IS64BITS) - -@@ -267,7 +267,7 @@ +@@ -327,7 +327,7 @@ set (LIBDIR "lib") - endif (IS64BITS AND RESPECTLIB64) + endif() --install(TARGETS torrent-rasterbar DESTINATION ${LIBDIR} CONFIGURATIONS release) +-install(TARGETS torrent-rasterbar DESTINATION ${LIBDIR}) +install(TARGETS torrent-rasterbar RUNTIME DESTINATION bin LIBRARY DESTINATION ${LIBDIR} ARCHIVE DESTINATION ${LIBDIR} CONFIGURATIONS release) install(DIRECTORY include/libtorrent DESTINATION include diff --git a/mingw-w64-libunistring/PKGBUILD b/mingw-w64-libunistring/PKGBUILD index da178b4f59..92f1ff2564 100644 --- a/mingw-w64-libunistring/PKGBUILD +++ b/mingw-w64-libunistring/PKGBUILD @@ -2,7 +2,7 @@ _realname=libunistring pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.5 +pkgver=0.9.6 pkgrel=1 pkgdesc="Library for manipulating Unicode strings and C strings. (mingw-w64)" arch=('any') @@ -11,14 +11,15 @@ license=("GPL3") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-libiconv") options=('staticlibs' 'strip') -source=("ftp://ftp.gnu.org/gnu/libunistring/libunistring-${pkgver}.tar.gz") -md5sums=('1a705bcdcb83799d544137617b377cfd') +source=("ftp://ftp.gnu.org/gnu/libunistring/${_realname}-${pkgver}.tar.gz") +md5sums=('dfae4ff5583649ed24d8f368f1d0543b') build() { #export lt_cv_deplibs_check_method='pass_all' + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/libunistring-${pkgver}/configure \ + ../libunistring-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -29,7 +30,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-libusbmuxd/PKGBUILD b/mingw-w64-libusbmuxd/PKGBUILD index 401354be5e..4087eaca05 100644 --- a/mingw-w64-libusbmuxd/PKGBUILD +++ b/mingw-w64-libusbmuxd/PKGBUILD @@ -3,7 +3,7 @@ _realname=libusbmuxd pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.0.10 -pkgrel=2 +pkgrel=3 pkgdesc='A client library to multiplex connections from and to iOS devices (mingw-w64)' arch=('any') url='http://www.libimobiledevice.org/' @@ -19,7 +19,7 @@ prepare() { build() { cd "${srcdir}"/${_realname}-${pkgver} - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} ../${_realname}-${pkgver}/configure \ @@ -29,6 +29,7 @@ build() { --target=${MINGW_CHOST} \ --enable-static \ --enable-shared + make } diff --git a/mingw-w64-libvmime-git/PKGBUILD b/mingw-w64-libvmime-git/PKGBUILD index a5723f9efd..fb65cbd930 100644 --- a/mingw-w64-libvmime-git/PKGBUILD +++ b/mingw-w64-libvmime-git/PKGBUILD @@ -4,8 +4,8 @@ _realname=libvmime pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r1024.3848556 -pkgrel=2 +pkgver=r1031.3dd5975 +pkgrel=1 pkgdesc="An open source solution for working with MIME messages and Internet messaging services like IMAP, POP or SMTP (mingw-w64)" url="http://www.vmime.org/" arch=('any') @@ -17,10 +17,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-gcc" "git") depends=("${MINGW_PACKAGE_PREFIX}-icu" - "${MINGW_PACKAGE_PREFIX}-gnutls" - "${MINGW_PACKAGE_PREFIX}-gsasl" - "${MINGW_PACKAGE_PREFIX}-libiconv" - #"${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-gsasl" + "${MINGW_PACKAGE_PREFIX}-libiconv" + #"${MINGW_PACKAGE_PREFIX}-openssl" ) source=("${_realname}"::"git+https://github.com/kisli/vmime.git" cmake_mlang.patch @@ -30,7 +30,7 @@ md5sums=('SKIP' '510196ab043824bb0780ccf5e02cf323') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } @@ -41,14 +41,17 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ - -DVMIME_HAVE_MESSAGING_PROTO_SENDMAIL:BOOL=OFF \ - -DVMIME_BUILD_SAMPLES:BOOL=OFF \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DVMIME_HAVE_MESSAGING_PROTO_SENDMAIL=OFF \ + -DVMIME_BUILD_SAMPLES=OFF \ -DVMIME_TLS_SUPPORT_LIB=gnutls \ ../${_realname} @@ -57,18 +60,5 @@ build() { package() { cd build-${MINGW_CHOST} - make install - - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - - pushd ${MINGW_PREFIX} > /dev/null - export PREFIX_DEP=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/vmime.pc - sed -s "s|${PREFIX_DEP}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/vmime.pc + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-openldap/PKGBUILD b/mingw-w64-openldap/PKGBUILD index a3d289e90e..e55685fbdd 100644 --- a/mingw-w64-openldap/PKGBUILD +++ b/mingw-w64-openldap/PKGBUILD @@ -2,27 +2,29 @@ _realname=openldap pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.4.40 +pkgver=2.4.41 pkgrel=1 arch=('any') pkgdesc="OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol (only client) (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-cyrus-sasl" "${MINGW_PACKAGE_PREFIX}-icu" + "${MINGW_PACKAGE_PREFIX}-libtool" "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-db<6.0.20") -makedepends=("groff" - "${MINGW_PACKAGE_PREFIX}-gcc" - "libintl" - "libtool" - "make") + #"${MINGW_PACKAGE_PREFIX}-db<6.0.20" + ) +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "groff" + "libintl" + "libtool" + "make") options=('strip' 'staticlibs' '!makeflags') license=("The OpenLDAP Public License") url="http://www.openldap.org/" -source=(http://www.openldap.org/software/download/OpenLDAP/openldap-release/${_realname}-$pkgver.tgz +source=(http://www.openldap.org/software/download/OpenLDAP/openldap-release/${_realname}-${pkgver}.tgz 001-backmdb.patch 002-link-with-icu.patch 003-symdummy-error.patch) -sha256sums=('d12611a5c25b6499293c2bb7b435dc2b174db73e83f5a8cb7e34f2ce5fa6dadb' +sha256sums=('27856bb4a8b44feca2b326c309000e16a9dadd52362c8ab6eec6c67a43737f6e' 'b462bfab9362cf5cab61d67cd24902a1800fb498a152b681ee182c713b79146c' '450cc9e42fb6ed2af4a16b217c77f95d1a18b353b887cab3107f9b350d8b42c5' 'd697fe51361a5129a5af3ca317031ff6f4ca5ddd247ff53043880660154a4708') @@ -39,6 +41,7 @@ prepare() { } build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -54,13 +57,16 @@ build() { --with-tls=openssl \ --with-cyrus-sasl \ --enable-modules=yes \ + --enable-hdb=no \ + --enable-bdb=no \ CC=${MINGW_PREFIX}/bin/gcc + sed -i "s/#define socklen_t int/\/*#define socklen_t int*\//" include/portable.h make depend make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } From 527cd817e8aacdb25f445b8b4b3f7e9c2690eb41 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 20 Jul 2015 15:55:09 +0300 Subject: [PATCH 1305/2060] Currently failed packages. --- mingw-w64-collada-dom-svn/PKGBUILD | 23 ++++++--------- mingw-w64-gprbuild-gpl/PKGBUILD | 25 ++++++++-------- mingw-w64-ldns/PKGBUILD | 1 + mingw-w64-libimobiledevice/PKGBUILD | 3 +- mingw-w64-libodfgen/PKGBUILD | 10 +++---- mingw-w64-librescl/PKGBUILD | 22 ++++++++------- mingw-w64-librocket-git/003-fix-typo.patch | 11 ++++++++ mingw-w64-librocket-git/PKGBUILD | 33 ++++++++++++---------- mingw-w64-libsecret/PKGBUILD | 13 +++++---- mingw-w64-openscenegraph/PKGBUILD | 2 +- mingw-w64-quassel/PKGBUILD | 13 +++++---- mingw-w64-xmlada-gpl/PKGBUILD | 16 +++++------ 12 files changed, 92 insertions(+), 80 deletions(-) create mode 100644 mingw-w64-librocket-git/003-fix-typo.patch diff --git a/mingw-w64-collada-dom-svn/PKGBUILD b/mingw-w64-collada-dom-svn/PKGBUILD index 2fb311d2ae..b0323241b2 100644 --- a/mingw-w64-collada-dom-svn/PKGBUILD +++ b/mingw-w64-collada-dom-svn/PKGBUILD @@ -4,7 +4,7 @@ _realname=collada-dom pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _base_ver=2.4.1 pkgver=2.4.1.r889 -pkgrel=3 +pkgrel=4 pkgdesc="API that provides a C++ object representation of a COLLADA XML instance document (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/collada-dom/" @@ -26,7 +26,7 @@ md5sums=('SKIP' '538a75efbdcf1344103176e4a8c41fc6') pkgver() { - cd "$srcdir/${_realname}" + cd "${srcdir}/${_realname}" local ver="$(svnversion)" printf "%s.r%s" "${_base_ver}" "${ver//[[:alpha:]]}" } @@ -45,11 +45,13 @@ build() { CPPFLAGS+=" -I ${MINGW_PREFIX}/include/minizip" cd "${srcdir}/build-${MINGW_CHOST}" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ - -DOPT_COLLADA14:BOOL=ON \ - -DOPT_COLLADA15:BOOL=ON \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DOPT_COLLADA14=ON \ + -DOPT_COLLADA15L=ON \ -DCMAKE_BUILD_TYPE=RELEASE \ -DBOOST_ROOT=${MINGW_PREFIX} \ ../${_realname} @@ -58,7 +60,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 install + make DESTDIR=${pkgdir} -j1 install #cp dom/src/1.4/*.a ${pkgdir}${MINGW_PREFIX}/lib/ #mv ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom-config.cmake ${pkgdir}${MINGW_PREFIX}/lib/cmake/collada_dom-2.4/collada_dom14-config.cmake @@ -70,13 +72,4 @@ package() { mkdir -p ${pkgdir}${MINGW_PREFIX}/bin mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ #rm ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/collada-dom.pc - - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/collada-dom.pc \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/collada-dom-141.pc \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/collada-dom-150.pc } diff --git a/mingw-w64-gprbuild-gpl/PKGBUILD b/mingw-w64-gprbuild-gpl/PKGBUILD index 2099650e5d..3c77225c0c 100644 --- a/mingw-w64-gprbuild-gpl/PKGBUILD +++ b/mingw-w64-gprbuild-gpl/PKGBUILD @@ -1,31 +1,30 @@ # Maintainer: Jürgen Pfeifer -# -# The 2014 version doesn't comile, need to investigate -# -_basename=gprbuild + _realname=gprbuild-gpl pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgrel=1 -pkgver=2013 +pkgver=2015 pkgdesc="Software tool designed to help automate the construction of multi-language systems" arch=('any') -provides=("${MINGW_PACKAGE_PREFIX}-${_basename}") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname%-*}") license=('GPL3') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-ada" - "${MINGW_PACKAGE_PREFIX}-xmlada") + #"${MINGW_PACKAGE_PREFIX}-xmlada" + ) depends=("${MINGW_PACKAGE_PREFIX}-gcc-ada" - "${MINGW_PACKAGE_PREFIX}-xmlada") + # "${MINGW_PACKAGE_PREFIX}-xmlada" + ) url="http://www.adacore.com/gnatpro/toolsuite/gprbuild/" -source=("http://downloads.dragonlace.net/src/${_realname}-${pkgver}-src.tgz") -sha1sums=('71c6278fd19f80ba4574de2696bfb3cbb9be4b70') +source=("http://downloads.dragonlace.net/src/${_realname}-${pkgver}-src.tar.gz") +sha1sums=('bf7f9e6a0efb7f00a0d020d7d2eff5cc1c9b5076') prepare() { - cd ${srcdir}/${_basename}-${pkgver}-src + cd ${srcdir}/${_realname}-${pkgver}-src } build() { - cd ${srcdir}/${_basename}-${pkgver}-src + cd ${srcdir}/${_realname}-${pkgver}-src if [ -f Makefile ]; then make distclean fi @@ -38,7 +37,7 @@ build() { } package() { - cd ${srcdir}/${_basename}-${pkgver}-src + cd ${srcdir}/${_realname}-${pkgver}-src make prefix="${pkgdir}${MINGW_PREFIX}" INSTALL=cp install # Copy License Files diff --git a/mingw-w64-ldns/PKGBUILD b/mingw-w64-ldns/PKGBUILD index 7c129705d8..92c204a6a3 100644 --- a/mingw-w64-ldns/PKGBUILD +++ b/mingw-w64-ldns/PKGBUILD @@ -42,6 +42,7 @@ build() { --with-trust-anchor=${MINGW_PREFIX}/etc/trusted-key.key \ --with-drill \ --with-examples \ + --with-ssl=${MINGW_PREFIX} \ --with-pyldns \ --with-pyldnsx diff --git a/mingw-w64-libimobiledevice/PKGBUILD b/mingw-w64-libimobiledevice/PKGBUILD index c65b01e13e..9fc1429af1 100644 --- a/mingw-w64-libimobiledevice/PKGBUILD +++ b/mingw-w64-libimobiledevice/PKGBUILD @@ -25,8 +25,7 @@ prepare() { } build() { - cd "${srcdir}"/${_realname}-${pkgver} - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} PYTHON=${MINGW_PREFIX}/bin/python3 \ diff --git a/mingw-w64-libodfgen/PKGBUILD b/mingw-w64-libodfgen/PKGBUILD index 4b6c942a9a..9ee1502d5d 100644 --- a/mingw-w64-libodfgen/PKGBUILD +++ b/mingw-w64-libodfgen/PKGBUILD @@ -2,7 +2,7 @@ _realname=libodfgen pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.1.3 +pkgver=0.1.4 pkgrel=1 pkgdesc="Library to generate ODF documents (mingw-w64)" arch=('any') @@ -10,18 +10,18 @@ url="http://sf.net/p/libwpd/libodfgen/" license=("LGPL 2.1") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" - "doxygen") + "${MINGW_PACKAGE_PREFIX}-doxygen") depends=("${MINGW_PACKAGE_PREFIX}-librevenge") options=(staticlibs strip) source=("http://sourceforge.net/projects/libwpd/files/libodfgen/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz") -sha256sums=('d3a09d987e9c0955846cad1e8a885a9c7a76bfaff75d4c1b5626844c62808eba') +sha256sums=('249b5ed8e1acc0fee32b4381b31b4ad9453b674d4f13886bda5e9dd2b4a5f1e1') prepare() { cd ${srcdir}/${_realname}-${pkgver} } build() { - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ./configure \ @@ -37,7 +37,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LGPL" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LGPL" diff --git a/mingw-w64-librescl/PKGBUILD b/mingw-w64-librescl/PKGBUILD index aab707bfe9..ea3c80dc3e 100644 --- a/mingw-w64-librescl/PKGBUILD +++ b/mingw-w64-librescl/PKGBUILD @@ -3,19 +3,19 @@ _realname=librescl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.2.1 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Reader/Writer SCL IEC 61850-6 files version 0.2.1 (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-xz" - "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-glib2>=2.34.0" - "${MINGW_PACKAGE_PREFIX}-libgee" - "${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-gxml") + "${MINGW_PACKAGE_PREFIX}-gxml" + "${MINGW_PACKAGE_PREFIX}-libgee" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-libtool") options=('strip' 'staticlibs') license=('LGPL') @@ -25,12 +25,14 @@ sha256sums=('6c97b9f3285b8d406711ead5295991a8b6586898b93f9a5e95b759bc4d57490f') prepare() { cd "${srcdir}"/librescl-LIBRESCL_${pkgver//./_} - ./autogen.sh - make distclean - autoreconf -fiv + + NOCONFIGURE=1 ./autogen.sh + #make distclean + #autoreconf -fiv } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} diff --git a/mingw-w64-librocket-git/003-fix-typo.patch b/mingw-w64-librocket-git/003-fix-typo.patch new file mode 100644 index 0000000000..346e26cd9e --- /dev/null +++ b/mingw-w64-librocket-git/003-fix-typo.patch @@ -0,0 +1,11 @@ +--- librocket/Samples/shell/src/win32/ShellRenderInterfaceExtensionsOpenGL_Win32.cpp.orig 2015-07-20 14:59:44.514453800 +0300 ++++ librocket/Samples/shell/src/win32/ShellRenderInterfaceExtensionsOpenGL_Win32.cpp 2015-07-20 14:59:48.544010500 +0300 +@@ -119,7 +119,7 @@ + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + RECT crect; +- GetClientRect(this->window_handle, &crect) ++ GetClientRect(this->window_handle, &crect); + glOrtho(0, (crect.right - crect.left), (crect.bottom - crect.top), 0, -1, 1); + + glMatrixMode(GL_MODELVIEW); diff --git a/mingw-w64-librocket-git/PKGBUILD b/mingw-w64-librocket-git/PKGBUILD index 12b0c47992..f3a09fba9f 100644 --- a/mingw-w64-librocket-git/PKGBUILD +++ b/mingw-w64-librocket-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=librocket pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r494.761d05a +pkgver=r559.e6a9715 pkgrel=1 pkgdesc="The HTML/CSS User Interface Library (mingw-w64)" arch=('any') @@ -10,52 +10,55 @@ url="http://http://librocket.com/" license=("MIT") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -depends=("${MINGW_PACKAGE_PREFIX}-freetype" +depends=("${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-boost") + "${MINGW_PACKAGE_PREFIX}-sfml") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "make" "git") - options=('staticlibs' 'strip') - source=("${_realname}"::"git+https://github.com/libRocket/libRocket.git" "001-dll-exports.patch" - "002-fix-cast-errors.patch") - + "002-fix-cast-errors.patch" + "003-fix-typo.patch") md5sums=('SKIP' 'e36e68efc51581353795088d33c7d6e3' - 'c1f3a4decff61fc117197a5287f7f870') + 'c1f3a4decff61fc117197a5287f7f870' + '84fd27cb70375190c4c4ad3d98478a76') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd "$srcdir/$_realname" - patch -p1 -i ${srcdir}/001-dll-exports.patch + cd "${srcdir}/${_realname}" + #patch -p1 -i ${srcdir}/001-dll-exports.patch patch -p1 -i "$srcdir"/002-fix-cast-errors.patch + patch -p1 -i "$srcdir"/003-fix-typo.patch } build() { - [ -d build-${CARCH} ] && rm -rf build-${CARCH} + [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBUILD_PYTHON_BINDINGS=ON \ -DBUILD_SHARED_LIBS=ON \ -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \ -DBUILD_SAMPLES=ON \ -DCMAKE_GNUtoMS=0 \ - ../$_realname/Build + ../${_realname}/Build + make } package() { cd "${srcdir}/build-${CARCH}" - make install + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-libsecret/PKGBUILD b/mingw-w64-libsecret/PKGBUILD index d7fbfd24b7..b02e6173ac 100644 --- a/mingw-w64-libsecret/PKGBUILD +++ b/mingw-w64-libsecret/PKGBUILD @@ -3,7 +3,7 @@ _realname=libsecret pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.18 -pkgrel=1 +pkgrel=2 pkgdesc="Library for storing and retrieving passwords and other secrets (mingw-w64)" arch=('any') url="https://wiki.gnome.org/Projects/Libsecret" @@ -14,16 +14,16 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-vala" "intltool") depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs - ${MINGW_PACKAGE_PREFIX}-glib2 - ${MINGW_PACKAGE_PREFIX}-libgcrypt) + ${MINGW_PACKAGE_PREFIX}-glib2 + ${MINGW_PACKAGE_PREFIX}-libgcrypt) options=('!libtool' 'strip') -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/$pkgver/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.xz 0001-port-to.mingw.patch) md5sums=('279d723cd005e80d1d304f74a3488acc' '32d12d84dc3ae5b108e67f12a512bd3c') prepare() { - cd "$srcdir/${_realname}-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-port-to.mingw.patch @@ -43,7 +43,8 @@ build() { --enable-shared \ --enable-static \ --enable-introspection \ - --enable-vala + --enable-vala \ + --disable-manpages make } diff --git a/mingw-w64-openscenegraph/PKGBUILD b/mingw-w64-openscenegraph/PKGBUILD index 4809c0e7f4..f8f0cd32f4 100644 --- a/mingw-w64-openscenegraph/PKGBUILD +++ b/mingw-w64-openscenegraph/PKGBUILD @@ -2,7 +2,7 @@ _realname=OpenSceneGraph pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -_pkgver=3.3.7 +_pkgver=3.3.9 pkgver=${_pkgver//-/} pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" diff --git a/mingw-w64-quassel/PKGBUILD b/mingw-w64-quassel/PKGBUILD index 053468da13..62e81a85d7 100644 --- a/mingw-w64-quassel/PKGBUILD +++ b/mingw-w64-quassel/PKGBUILD @@ -6,13 +6,15 @@ _realname=quassel pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.12.2 -pkgrel=1 +pkgrel=2 pkgdesc="Next-generation distributed IRC client (mingw-w64)" arch=('any') url="http://quassel-irc.org/" license=('GPL') -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-qt5" + "${MINGW_PACKAGE_PREFIX}-qca-qt5-git" #"${MINGW_PACKAGE_PREFIX}-extra-cmake-modules" #TODO: only needed with WITH_KDE=ON "${MINGW_PACKAGE_PREFIX}-Snorenotify") source=(http://quassel-irc.org/pub/${_realname}-${pkgver}.tar.bz2 @@ -33,9 +35,10 @@ build() { # -DWIN32_LEAN_AND_MEAN=1 because "interface" is used in: # /mingw64/include/QtDBus/qdbusconnection.h + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_CXX_FLAGS="${CFLAGS} -DWIN32_LEAN_AND_MEAN=1" \ -DUSE_QT5=ON \ -DWITH_KDE=OFF \ @@ -44,12 +47,12 @@ build() { -DWANT_QTCLIENT=ON \ -DWANT_MONO=ON \ -Wno-dev \ - ${srcdir}/${_realname}-${pkgver} + ../${_realname}-${pkgver} make } package() { cd "${srcdir}"/build-${CARCH} - make install + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-xmlada-gpl/PKGBUILD b/mingw-w64-xmlada-gpl/PKGBUILD index 0f2439eaf2..e392eef2ed 100644 --- a/mingw-w64-xmlada-gpl/PKGBUILD +++ b/mingw-w64-xmlada-gpl/PKGBUILD @@ -3,23 +3,23 @@ # Pathnames in this project can get quite long, so at least on Windows # I recommend to use a short BUILDDIR setting to avoid problems # -_basename=xmlada -_realname=${_basename}-gpl + +_realname=xmlada-gpl pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgrel=1 -pkgver=2014 +pkgver=2015 pkgdesc="A full XML suite for Ada" arch=('any') -provides=("${MINGW_PACKAGE_PREFIX}-${_basename}") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname%-*}") url="http://libre.adacore.com/libre/tools/xmlada/" license=('GPL3') depends=("${MINGW_PACKAGE_PREFIX}-gcc-ada") source=(http://downloads.dragonlace.net/src/${_realname}-${pkgver}-src.tar.gz) -md5sums=('1aaa49885ec280a3242823f659460dff') +md5sums=('98c96b8c6a877617ec4da3ef6a03288a') options=('strip') build() { - cd ${srcdir}/${_basename}-${pkgver}-src + cd ${srcdir}/${_realname}-${pkgver}-src ./configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -34,7 +34,7 @@ package() { mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/xmlada/relocatable mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gnat/xmlada - cd ${srcdir}/${_basename}-${pkgver}-src + cd ${srcdir}/${_realname}-${pkgver}-src make prefix=${pkgdir}${MINGW_PREFIX} INSTALL=cp install rm -rf ${pkgdir}${MINGW_PREFIX}/share/examples @@ -42,6 +42,6 @@ package() { # Copy License Files mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname - cp -pf ${srcdir}/${_basename}-${pkgver}-src/COPYING* \ + cp -pf ${srcdir}/${_realname}-${pkgver}-src/COPYING* \ ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} } From 4a85789f4aca7dfa898a72b25653276481633fd7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 21 Jul 2015 01:13:57 +0300 Subject: [PATCH 1306/2060] === Rebuild with GCC-5.x. Part XVI === --- mingw-w64-Pillow/PKGBUILD | 28 ++++----- mingw-w64-Pillow/freeze-support.patch | 4 +- mingw-w64-flexdll/PKGBUILD | 3 +- mingw-w64-mcpp/PKGBUILD | 8 ++- mingw-w64-meanwhile/PKGBUILD | 17 +++--- mingw-w64-mlpack/PKGBUILD | 14 +++-- mingw-w64-nanovg-git/PKGBUILD | 22 +++---- ...-dir-option-to-configure-node_gyp-py.patch | 2 +- mingw-w64-nodejs/PKGBUILD | 18 +++--- mingw-w64-ntldd-git/PKGBUILD | 2 +- mingw-w64-ocaml-camlp4/PKGBUILD | 4 +- mingw-w64-ocaml-findlib/PKGBUILD | 4 +- ...ndard-paths-as-default-in-ocamlbuild.patch | 10 ++-- mingw-w64-ocaml/PKGBUILD | 10 ++-- ...o-Windows-Terminal-Services-wtsapi32.patch | 12 ++-- ...SYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch | 4 +- mingw-w64-octopi-git/PKGBUILD | 54 ++++++++---------- mingw-w64-ois-git/PKGBUILD | 14 +++-- mingw-w64-ois/PKGBUILD | 10 ++-- mingw-w64-oniguruma/PKGBUILD | 16 ++++-- mingw-w64-opencl-headers/PKGBUILD | 7 ++- .../opencl-headers-2.0.0.src.tar.xz | Bin 18644 -> 19188 bytes mingw-w64-opencsg/PKGBUILD | 12 ++-- mingw-w64-openscad/PKGBUILD | 2 +- mingw-w64-optipng/PKGBUILD | 4 +- mingw-w64-osmgpsmap-git/PKGBUILD | 19 +++--- mingw-w64-phodav/PKGBUILD | 6 +- mingw-w64-pngcrush/PKGBUILD | 2 +- mingw-w64-pngnq/PKGBUILD | 8 +-- mingw-w64-poco/PKGBUILD | 16 +++--- mingw-w64-port-scanner/PKGBUILD | 2 +- mingw-w64-portablexdr/PKGBUILD | 2 +- mingw-w64-portmidi/PKGBUILD | 8 ++- mingw-w64-premake/PKGBUILD | 8 +-- mingw-w64-qhull-git/PKGBUILD | 12 ++-- mingw-w64-qscintilla/PKGBUILD | 8 +-- .../configure.py-objdir-support.diff | 11 ++-- mingw-w64-qscintilla/run-command-via-sh.patch | 2 +- 38 files changed, 199 insertions(+), 186 deletions(-) diff --git a/mingw-w64-Pillow/PKGBUILD b/mingw-w64-Pillow/PKGBUILD index f44b0b3c1f..ac3af720b3 100644 --- a/mingw-w64-Pillow/PKGBUILD +++ b/mingw-w64-Pillow/PKGBUILD @@ -2,11 +2,10 @@ _realname=Pillow pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=2.6.0 +pkgver=2.9.0 _py2basever=2.7 _py3basever=3.4m pkgrel=1 -pkgdesc="Python Imaging Library (PIL) fork. Python3 version (mingw-w64)" arch=('any') license=('custom') url="https://github.com/python-pillow/Pillow/" @@ -18,13 +17,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-openjpeg2" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" - "${MINGW_PACKAGE_PREFIX}-python3-setuptools" - "${MINGW_PACKAGE_PREFIX}-tk") + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-tk") options=('staticlibs') source=("http://pypi.python.org/packages/source/P/${_realname}/${_realname}-${pkgver}.tar.gz" freeze-support.patch) -md5sums=('dd57c00352dcec1953b7790e1efabf23' - '91fac3184fff48841738ce838abc6fdf') +md5sums=('46f1729ece27981d54ec543ad5b37d14' + 'ad29e8ff8f4c629dac44e10e3548b621') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -35,6 +34,7 @@ prepare() { } package_python3-Pillow() { + pkgdesc="Python Imaging Library (PIL) fork Python3 version (mingw-w64)" depends+=("${MINGW_PACKAGE_PREFIX}-python3") optdepends=("${MINGW_PACKAGE_PREFIX}-tk: for the ImageTK module") @@ -42,7 +42,7 @@ package_python3-Pillow() { MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0 - install -Dm644 docs/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" install -dm755 "${pkgdir}${MINGW_PREFIX}/include/python${_py3basever}/" install -m644 -t "${pkgdir}${MINGW_PREFIX}/include/python${_py3basever}/" libImaging/*.h @@ -54,24 +54,24 @@ package_python3-Pillow() { } package_python2-Pillow() { - pkgdesc="Python Imaging Library (PIL) fork. Python2 version." + pkgdesc="Python Imaging Library (PIL) fork. Python2 version (mingw-w64)" depends+=("${MINGW_PACKAGE_PREFIX}-python2") optdepends=("${MINGW_PACKAGE_PREFIX}-tk: for the ImageTK module") - cd "$srcdir/python2-build-${CARCH}" + cd "${srcdir}/python2-build-${CARCH}" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0 sed -i 's|/usr/local/bin/python$|/usr/bin/env python2|' \ - "$pkgdir${MINGW_PREFIX}/lib/python$_py2basever/site-packages/PIL/OleFileIO.py" + "${pkgdir}${MINGW_PREFIX}/lib/python${_py2basever}/site-packages/PIL/OleFileIO.py" - install -Dm644 docs/LICENSE "$pkgdir${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" - install -dm755 "$pkgdir${MINGW_PREFIX}/include/python${_py2basever}/" - install -m644 -t "$pkgdir${MINGW_PREFIX}/include/python${_py2basever}/" libImaging/*.h + install -dm755 "${pkgdir}${MINGW_PREFIX}/include/python${_py2basever}/" + install -m644 -t "${pkgdir}${MINGW_PREFIX}/include/python${_py2basever}/" libImaging/*.h # clean up bins - cd "$pkgdir${MINGW_PREFIX}/bin" + cd "${pkgdir}${MINGW_PREFIX}/bin" for f in *.py; do mv "$f" "${f%.py}2" done diff --git a/mingw-w64-Pillow/freeze-support.patch b/mingw-w64-Pillow/freeze-support.patch index db17f0aeda..7f10474287 100644 --- a/mingw-w64-Pillow/freeze-support.patch +++ b/mingw-w64-Pillow/freeze-support.patch @@ -1,14 +1,14 @@ --- Pillow-2.5.1/mp_compile.py.orig 2014-07-10 17:52:44.000000000 +0400 +++ Pillow-2.5.1/mp_compile.py 2014-07-12 01:13:13.373200000 +0400 @@ -1,7 +1,7 @@ - # A monkey patch of the base distutils.ccompiler to use parallel builds # Tested on 2.7, looks to be identical to 3.3. + from __future__ import print_function -from multiprocessing import Pool, cpu_count +from multiprocessing import Pool, cpu_count, freeze_support from distutils.ccompiler import CCompiler import os - + import sys @@ -54,8 +54,10 @@ try: # bug, only enable if we can make a Pool. see issue #790 and diff --git a/mingw-w64-flexdll/PKGBUILD b/mingw-w64-flexdll/PKGBUILD index 38258515dd..0e5b11046c 100644 --- a/mingw-w64-flexdll/PKGBUILD +++ b/mingw-w64-flexdll/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Junjie Mao + _realname=flexdll pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.34 -pkgrel=1 +pkgrel=2 pkgdesc="An implementation of a dlopen-like API for Windows (mingw-w64)" arch=('any') url='http://alain.frisch.fr/flexdll.html' diff --git a/mingw-w64-mcpp/PKGBUILD b/mingw-w64-mcpp/PKGBUILD index 92e6daaf30..dbc333f333 100644 --- a/mingw-w64-mcpp/PKGBUILD +++ b/mingw-w64-mcpp/PKGBUILD @@ -3,7 +3,7 @@ _realname=mcpp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7.2 -pkgrel=1 +pkgrel=2 pkgdesc="Matsui's CPP implementation precisely conformed to standards (mingw-w64)" arch=('any') license=('custom') @@ -15,17 +15,19 @@ source=("http://downloads.sourceforge.net/mcpp/${_realname}-${pkgver}.tar.gz") md5sums=('512de48c87ab023a69250edc7a0c7b05') build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-mcpplib + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-meanwhile/PKGBUILD b/mingw-w64-meanwhile/PKGBUILD index d5ec7abd3e..aa702d52c9 100644 --- a/mingw-w64-meanwhile/PKGBUILD +++ b/mingw-w64-meanwhile/PKGBUILD @@ -7,14 +7,14 @@ _realname=meanwhile pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.0.2 -pkgrel=2 +pkgrel=3 pkgdesc="Meanwhile libraries (mingw64)" arch=('any') url="http://sourceforge.net/projects/meanwhile" license=(LGPL2) depends=("${MINGW_PACKAGE_PREFIX}-glib2") conflicts=('meanwhile-svn') -source=(http://downloads.sourceforge.net/sourceforge/meanwhile/${_realname}-$pkgver.tar.gz +source=(http://downloads.sourceforge.net/sourceforge/meanwhile/${_realname}-${pkgver}.tar.gz broken-status.patch fix_glib_includes.patch fix_groupchat.patch) @@ -24,18 +24,18 @@ sha256sums=('38a8059eaa549cbcb45ca0a5b453e9608ceadab360db2ae14581fb22ddabdf23' '90467c648c18086a3f7989b7bab8f21eb44631c19a7d531121e927a0a1e74e9c') prepare() { - cd $srcdir/${_realname}-$pkgver/src + cd ${srcdir}/${_realname}-${pkgver}/src patch -Np0 -i "${srcdir}/broken-status.patch" patch -Np2 -i "${srcdir}/fix_glib_includes.patch" patch -Np2 -i "${srcdir}/fix_groupchat.patch" } build() { - cd $srcdir/${_realname}-$pkgver - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + cd ${srcdir}/${_realname}-${pkgver} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} - CFLAGS+=" -fno-stack-protector --param=ssp-buffer-size=4" - CXXFLAGS+=" -fno-stack-protector --param=ssp-buffer-size=4" + #CFLAGS+=" -fno-stack-protector --param=ssp-buffer-size=4" + #CXXFLAGS+=" -fno-stack-protector --param=ssp-buffer-size=4" export lt_cv_deplibs_check_method='pass_all' ../${_realname}-${pkgver}/configure \ @@ -46,11 +46,12 @@ build() { --disable-mailme \ --enable-static \ --enable-shared + make } package() { cd "${srcdir}"/build-${CARCH} - make DESTDIR=$pkgdir install + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-mlpack/PKGBUILD b/mingw-w64-mlpack/PKGBUILD index 0960c034e7..5aa33eeaf6 100644 --- a/mingw-w64-mlpack/PKGBUILD +++ b/mingw-w64-mlpack/PKGBUILD @@ -3,7 +3,7 @@ _realname=mlpack pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.12 -pkgrel=1 +pkgrel=2 pkgdesc='An intuitive, fast, scalable C++ machine learning library (mingw-w64)' arch=('any') url='http://mlpack.org/' @@ -13,7 +13,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-libxml2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake") + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-doxygen") source=("https://github.com/mlpack/mlpack/archive/${_realname}-${pkgver}.tar.gz" "0001-mingw-w64-cmake.patch") sha1sums=('2c2c34e74ce8ea994e055b4aa8d627bc4661ea40' @@ -32,19 +33,20 @@ build() { [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}" - "${MINGW_PREFIX}/bin/cmake.exe" -Wno-dev \ + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake.exe -Wno-dev \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX="${pkgdir}${MINGW_PREFIX}" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ - "../${_src}" + ../${_src} make } package() { cd "${srcdir}/build-${CARCH}" - make -j1 install + make DESTDIR=${pkgdir} -j1 install pushd "${pkgdir}${MINGW_PREFIX}" > /dev/null install -Dm644 "${srcdir}/${_src}/COPYRIGHT.txt" "share/licenses/${_realname}/COPYRIGHT.txt" diff --git a/mingw-w64-nanovg-git/PKGBUILD b/mingw-w64-nanovg-git/PKGBUILD index 72027cbf51..18f139fdae 100644 --- a/mingw-w64-nanovg-git/PKGBUILD +++ b/mingw-w64-nanovg-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=nanovg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r252.90862ce +pkgver=r259.6ae0873 pkgrel=1 pkgdesc="Small antialiased vector graphics rendering library for OpenGL" arch=('any') @@ -12,31 +12,31 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-premake") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -source=("$_realname"::'git://github.com/memononen/nanovg.git') +source=("${_realname}"::'git://github.com/memononen/nanovg.git') md5sums=('SKIP') options=('staticlibs') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - mv $_realname $MINGW_CHOST + mv ${_realname} ${MINGW_CHOST} } build() { - cd "$srcdir/$MINGW_CHOST" + cd "${srcdir}/${MINGW_CHOST}" premake4 gmake cd build CC=gcc CXX=g++ make nanovg } package() { - install -v -Dm644 "$srcdir/$MINGW_CHOST/build/libnanovg.a" "${pkgdir}${MINGW_PREFIX}/lib/libnanovg.a" || exit 1 - install -v -Dm644 "$srcdir/$MINGW_CHOST/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/LICENSE.txt" || exit 1 - install -v -Dm644 "$srcdir/$MINGW_CHOST/src/nanovg.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg.h" || exit 1 - install -v -Dm644 "$srcdir/$MINGW_CHOST/src/nanovg_gl.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl.h" || exit 1 - install -v -Dm644 "$srcdir/$MINGW_CHOST/src/nanovg_gl_utils.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl_utils.h" || exit 1 - install -v -Dm644 "$srcdir/$MINGW_CHOST/src/fontstash.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/fontstash.h" || exit 1 + install -v -Dm644 "${srcdir}/$MINGW_CHOST/build/libnanovg.a" "${pkgdir}${MINGW_PREFIX}/lib/libnanovg.a" || exit 1 + install -v -Dm644 "${srcdir}/$MINGW_CHOST/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/LICENSE.txt" || exit 1 + install -v -Dm644 "${srcdir}/$MINGW_CHOST/src/nanovg.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg.h" || exit 1 + install -v -Dm644 "${srcdir}/$MINGW_CHOST/src/nanovg_gl.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl.h" || exit 1 + install -v -Dm644 "${srcdir}/$MINGW_CHOST/src/nanovg_gl_utils.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/nanovg_gl_utils.h" || exit 1 + install -v -Dm644 "${srcdir}/$MINGW_CHOST/src/fontstash.h" "${pkgdir}${MINGW_PREFIX}/include/nanovg/fontstash.h" || exit 1 } \ No newline at end of file diff --git a/mingw-w64-nodejs/0008-Add-output-dir-option-to-configure-node_gyp-py.patch b/mingw-w64-nodejs/0008-Add-output-dir-option-to-configure-node_gyp-py.patch index 1c4cac4d37..cec0d80945 100644 --- a/mingw-w64-nodejs/0008-Add-output-dir-option-to-configure-node_gyp-py.patch +++ b/mingw-w64-nodejs/0008-Add-output-dir-option-to-configure-node_gyp-py.patch @@ -209,7 +209,7 @@ diff -urN node-v0.10.29.orig/Makefile node-v0.10.29/Makefile BINARYTAR=$(BINARYNAME).tar.gz -PKG=out/$(TARNAME).pkg +PKG=$(OUTDIR)/$(TARNAME).pkg - packagemaker=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker + PACKAGEMAKER ?= /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker PKGSRC=nodejs-$(DESTCPU)-$(RAWVER).tgz @@ -235,7 +236,7 @@ diff --git a/mingw-w64-nodejs/PKGBUILD b/mingw-w64-nodejs/PKGBUILD index a8d4f53200..fecf12387e 100644 --- a/mingw-w64-nodejs/PKGBUILD +++ b/mingw-w64-nodejs/PKGBUILD @@ -4,8 +4,8 @@ _realname=nodejs pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.10.35 -pkgrel=5 +pkgver=0.10.40 +pkgrel=1 pkgdesc="Evented I/O for V8 javascript (mingw-w64)" arch=('any') url="http://nodejs.org/" @@ -50,7 +50,7 @@ source=("http://nodejs.org/dist/v${pkgver}/node-v${pkgver}.tar.gz" 'node-gyp' 'node-gyp.cmd') -md5sums=('2c00d8cf243753996eecdc4f6e2a2d11' +md5sums=('f6ef20f327ecd6cb1586c41c7184290c' '0f5ef2b9965f6e921f5f41a21055d170' '10092533b62eb3e8cd48dcf816f222de' 'f7013391c658d50d4568bfce7a6f4cd8' @@ -58,7 +58,7 @@ md5sums=('2c00d8cf243753996eecdc4f6e2a2d11' '73fecf70ba4f34f6924f2fa89b8c6412' '70947a3999da983c0ede82fb4cee3550' '331e39ee6dd81b718026b268fee9a840' - '7293de8eccb4e0897de77fec4afe4518' + '0ac2e4aa48ab105e01248dfd89134539' 'd06f47617aa37a625f68ef72c1cdcad8' 'cd5870bc8911fe4113d83407257ced4c' 'afb4b2fb4d658f8689de33ee9c1157bf' @@ -75,7 +75,6 @@ md5sums=('2c00d8cf243753996eecdc4f6e2a2d11' '38f2c7558ef3d3160d97964ac2553bc3') prepare() { - cd ${srcdir}/node-v${pkgver} git init @@ -119,7 +118,7 @@ build() { cd ${srcdir} - [ -d ${CARCH} ] && rm -rf ${CARCH} + [[ -d ${CARCH} ]] && rm -rf ${CARCH} mv node-v${pkgver} ${CARCH} pushd ${CARCH} @@ -172,16 +171,15 @@ build() { } package() { - cd "${srcdir}/${CARCH}" make DESTDIR="${pkgdir}" install - install -d "$pkgdir"/${MINGW_PREFIX}/share/doc/nodejs + install -d "${pkgdir}"/${MINGW_PREFIX}/share/doc/nodejs cp -r doc/api/{*.html,assets} \ - "$pkgdir"/${MINGW_PREFIX}/share/doc/nodejs + "${pkgdir}"/${MINGW_PREFIX}/share/doc/nodejs install -D -m644 LICENSE \ - "$pkgdir"/${MINGW_PREFIX}/share/licenses/nodejs/LICENSE + "${pkgdir}"/${MINGW_PREFIX}/share/licenses/nodejs/LICENSE install -m755 "${srcdir}/node-gyp" "${pkgdir}"${MINGW_PREFIX}/bin/node-gyp install -m755 "${srcdir}/node-gyp.cmd" "${pkgdir}"${MINGW_PREFIX}/bin/node-gyp.cmd diff --git a/mingw-w64-ntldd-git/PKGBUILD b/mingw-w64-ntldd-git/PKGBUILD index 8718c8b543..216b0ed604 100644 --- a/mingw-w64-ntldd-git/PKGBUILD +++ b/mingw-w64-ntldd-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=ntldd pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=r15.e7622f6 -pkgrel=1 +pkgrel=2 pkgdesc="Tracks dependencides in Windows PE binaries (mingw-w64)" arch=('any') url="https://github.com/LRN/ntldd" diff --git a/mingw-w64-ocaml-camlp4/PKGBUILD b/mingw-w64-ocaml-camlp4/PKGBUILD index 21f98f4191..e486a07465 100644 --- a/mingw-w64-ocaml-camlp4/PKGBUILD +++ b/mingw-w64-ocaml-camlp4/PKGBUILD @@ -3,14 +3,14 @@ _realname=ocaml-camlp4 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=4.02.1 -pkgrel=2 +pkgrel=5 pkgdesc="Pre-Processor-Pretty-Printer for OCaml (mingw-w64)" arch=('any') url='https://github.com/ocaml/camlp4' license=('LGPL2') depends=("${MINGW_PACKAGE_PREFIX}-ocaml") makedepends=("${MINGW_PACKAGE_PREFIX}-flexdll") -source=("${_realname}-${pkgver}.tar.gz::https://github.com/ocaml/camlp4/archive/4.02.1.tar.gz" +source=("${_realname}-${pkgver}.tar.gz::https://github.com/ocaml/camlp4/archive/${pkgver}.tar.gz" "0001-Properly-quote-preprocessor-command-to-ocamldep.patch" "0002-Add-DESTDIR-in-configure.patch" "0003-Guess-the-library-path-on-msys2.patch") diff --git a/mingw-w64-ocaml-findlib/PKGBUILD b/mingw-w64-ocaml-findlib/PKGBUILD index d8a848f2b1..23f2e7e7e5 100644 --- a/mingw-w64-ocaml-findlib/PKGBUILD +++ b/mingw-w64-ocaml-findlib/PKGBUILD @@ -3,13 +3,13 @@ _realname=ocaml-findlib pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.5.5 -pkgrel=1 +pkgrel=2 pkgdesc="OCaml library manager (mingw-w64)" arch=('any') url='http://projects.camlcity.org/projects/findlib.html' license=('custom') depends=("${MINGW_PACKAGE_PREFIX}-ocaml") -source=("http://download.camlcity.org/download/findlib-1.5.5.tar.gz") +source=("http://download.camlcity.org/download/findlib-${pkgver}.tar.gz") sha1sums=('3221121c4b5adacc050aa361475eee59b2698afa') prepare() { diff --git a/mingw-w64-ocaml/0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch b/mingw-w64-ocaml/0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch index cef5c65a59..bb171ac578 100644 --- a/mingw-w64-ocaml/0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch +++ b/mingw-w64-ocaml/0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch @@ -17,12 +17,12 @@ index b40d0ea..1d65ada 100644 ocamlbuild_config.ml: ../config/Makefile - (echo 'let bindir = "$(BINDIR)"'; \ -- echo 'let libdir = "$(LIBDIR)"'; \ +- echo 'let libdir = "$(LIBDIR)"'; \ + (echo 'let bindir = Filename.dirname Sys.executable_name'; \ -+ echo 'let libdir = List.fold_left (fun base dir -> Filename.concat base dir) bindir ["..";"lib";"ocaml"]'; \ - echo 'let supports_shared_libraries = $(SUPPORTS_SHARED_LIBRARIES)';\ - echo 'let a = "$(A)"'; \ - echo 'let o = "$(O)"'; \ ++ echo 'let libdir = List.fold_left (fun base dir -> Filename.concat base dir) bindir ["..";"lib";"ocaml"]'; \ + echo 'let supports_shared_libraries = $(SUPPORTS_SHARED_LIBRARIES)';\ + echo 'let a = "$(A)"'; \ + echo 'let o = "$(O)"'; \ -- 2.3.4 diff --git a/mingw-w64-ocaml/PKGBUILD b/mingw-w64-ocaml/PKGBUILD index 8cba9f0b33..52748dfe84 100644 --- a/mingw-w64-ocaml/PKGBUILD +++ b/mingw-w64-ocaml/PKGBUILD @@ -2,8 +2,8 @@ _realname=ocaml pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=4.02.1 -pkgrel=4 +pkgver=4.02.2 +pkgrel=1 pkgdesc="An industrial strength programming language supporting functional, imperative and object-oriented styles (mingw-w64)" arch=('any') url='http://ocaml.org/' @@ -11,7 +11,7 @@ license=('Q Public Licence 1.0' 'GPL2') depends=("${MINGW_PACKAGE_PREFIX}-flexdll") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "diffutils") -source=("http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz" +source=("http://caml.inria.fr/pub/distrib/ocaml-${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "0002-Adapt-to-msys2-directory-layout.patch" "0003-Install-manuals-in-msys2.patch" "0004-camlheader-has-the-extension-.exe-in-msys2.patch" @@ -19,14 +19,14 @@ source=("http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz" "0006-Configure-the-relative-paths-for-ocaml-libraries-on-.patch" "0007-Convert-to-windows-path-before-checking-stats.patch" "0008-Use-the-standard-paths-as-default-in-ocamlbuild.patch") -sha1sums=('6af8c67f2badece81d8e1d1ce70568a16e42313e' +sha1sums=('7fb6571972635b00dfda204ca38a4b9dce79a354' '75b14de1f4ea982ddbb86f49576aa0be10f9286a' 'a780a6c94aaedcd0d19a7fbc26e09776b581a8af' 'e1f6b201c25b61d39404406c82684f6c8d70d23a' '17010515bd9715ed36300165643d8f3ad01288cf' '78b69527ce8a78fbb31f7b9f3e0e04bf3ffcc165' 'cff96df7caef78097ac73a382e4ef50418a7583b' - '2924e4b417a6268513f4c5a9fc374a3c7ec11b07') + '27424a66536b8b1965291a91bc66bcc2234d2838') install=ocaml-${CARCH}.install prepare() { diff --git a/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch b/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch index f1c4dcacac..fbcbb1661e 100644 --- a/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch +++ b/mingw-w64-octopi-git/0003-Win32-Link-to-Windows-Terminal-Services-wtsapi32.patch @@ -11,15 +11,15 @@ diff --git a/octopi.pro b/octopi.pro index ccf88bf..535fa96 100644 --- a/octopi.pro +++ b/octopi.pro -@@ -119,6 +119,8 @@ TRANSLATIONS += resources/translations/octopi_pt_BR.ts \ - resources/translations/octopi_ja.ts \ - resources/translations/octopi_eu.ts +@@ -14,6 +14,8 @@ TRANSLATIONS += resources/translations/octopi_pt_BR.ts \ + MOC_DIR += build + UI_DIR += build +win32: LIBS += -lwtsapi32 + - greaterThan(QT_MAJOR_VERSION, 4){ - TRANSLATIONS += resources/translations/octopi_ast.ts - } + HEADERS += src/QtSolutions/qtsingleapplication.h \ + src/QtSolutions/qtlocalpeer.h \ + repoeditor/repoentry.h \ -- 2.4.2 diff --git a/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch b/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch index 8db834caec..6b70b7c2f2 100644 --- a/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch +++ b/mingw-w64-octopi-git/0008-MSYS2-Add-ectn_MSYS2-as-a-LinuxDistro.patch @@ -38,8 +38,8 @@ index b3dd169..cc45e0b 100644 ectn_RUN_IN_TERMINAL }; enum LinuxDistro { ectn_ANTERGOS, ectn_ARCHBANGLINUX, ectn_ARCHBSD, ectn_ARCHLINUX, ectn_CHAKRA, -- ectn_KAOS, ectn_MANJAROLINUX, ectn_MOOOSLINUX, ectn_NETRUNNER, ectn_UNKNOWN }; -+ ectn_KAOS, ectn_MANJAROLINUX, ectn_MOOOSLINUX, ectn_NETRUNNER, ectn_MSYS2, ectn_UNKNOWN }; +- ectn_KAOS, ectn_MANJAROLINUX, ectn_MOOOSLINUX, ectn_NETRUNNER, ectn_PARABOLA, ectn_UNKNOWN }; ++ ectn_KAOS, ectn_MANJAROLINUX, ectn_MOOOSLINUX, ectn_NETRUNNER, ectn_PARABOLA, ectn_MSYS2, ectn_UNKNOWN }; enum Language { ectn_LANG_ENGLISH, ectn_LANG_USER_DEFINED }; diff --git a/mingw-w64-octopi-git/PKGBUILD b/mingw-w64-octopi-git/PKGBUILD index 2299a95d7c..fc6b6a6fa8 100644 --- a/mingw-w64-octopi-git/PKGBUILD +++ b/mingw-w64-octopi-git/PKGBUILD @@ -1,20 +1,19 @@ # Maintainer: Ray Donnelly _realname=octopi - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" #_qmake=${MINGW_PREFIX}/bin/qmake _qmake=${MINGW_PREFIX}/qt5-static/bin/qmake -pkgver=r921.bffb34a +pkgver=r941.6df0f8a pkgrel=1 pkgdesc="a powerful Pacman frontend using Qt libs" arch=('any') url="https://github.com/aarnt/octopi" license=('GPL2') -makedepends=('git' "${MINGW_PACKAGE_PREFIX}-qt5-static" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-make") +makedepends=('git' "${MINGW_PACKAGE_PREFIX}-qt5-static" "${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-git") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") _gitroot="git://github.com/aarnt/octopi.git" _gitname="octopi" #options=('debug' '!strip') @@ -36,12 +35,12 @@ source=("${_gitname}"::"${_gitroot}" md5sums=('SKIP' '1cb74f8e0fddd37c7bd94ac79e365ca4' 'fffcff427d949030c2bdfcf9cc6a383e' - 'c656502daa6939fadadb960d305aa5f2' + '549978deb104c3ecdc3c07253def0b00' '49ce3162b59bcd18e28114c836f624fe' '3cc3fbfa53a2b7ac630e47ab8bdc3cea' '1dda8e7fe382c4a1ad6b103a773700a2' '7dde701345087616e0dcb628ab4c4995' - 'd9cf17a08eba6544d4efc8b6637df4b7' + '0c52f5a446e9e0ac8075b8fd54911e45' '2ee70444f597172699539233b6c1047e' 'e5fda93d08711ffa949ba8d38886a3ba' '6f721589e2a09e18f5b74f814dfb2086' @@ -50,12 +49,12 @@ md5sums=('SKIP' 'c4a96a9fced38262754d226168ae344b') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd "$srcdir/$_gitname" + cd "${srcdir}/${_gitname}" git am "${srcdir}"/0001-Use-Q_PID-instead-of-int-reducing-QProcess-repititio.patch git am "${srcdir}"/0002-Use-a-shared-QProcessEnvironment.patch @@ -87,41 +86,38 @@ build() { cd build-${MINGW_CHOST} msg "Building Octopi..." - ${_qmake} ../$_gitname/$_gitname.pro CONFIG+="c++11 ${_config}" - mingw32-make ${_config} + ${_qmake} ../${_gitname}/${_gitname}.pro CONFIG+="c++11 ${_config}" + make ${_config} mkdir -p notifier/pacmanhelper pushd notifier/pacmanhelper msg "Building pacmanhelper..." - ${_qmake} ../../../$_gitname/notifier/pacmanhelper/pacmanhelper.pro CONFIG+="${_config}" - mingw32-make ${_config} + ${_qmake} ../../../${_gitname}/notifier/pacmanhelper/pacmanhelper.pro CONFIG+="${_config}" + make ${_config} popd - mkdir -p notifier/$_gitname-notifier - pushd notifier/$_gitname-notifier - msg "Building $_gitname-notifier..." - ${_qmake} ../../../$_gitname/notifier/$_gitname-notifier/$_gitname-notifier.pro CONFIG+="release" - mingw32-make ${_config} + mkdir -p notifier/${_gitname}-notifier + pushd notifier/${_gitname}-notifier + msg "Building ${_gitname}-notifier..." + ${_qmake} ../../../${_gitname}/notifier/${_gitname}-notifier/${_gitname}-notifier.pro CONFIG+="release" + make ${_config} popd } package() { mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - PREFIX_WIN=$(pwd -W) - popd > /dev/null - cd "$srcdir/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" - install -D -m755 bin/$_gitname ${pkgdir}${MINGW_PREFIX}/bin/$_gitname - install -D -m755 notifier/bin/$_gitname-notifier ${pkgdir}${MINGW_PREFIX}/bin/$_gitname-notifier - install -D -m644 $srcdir/$_gitname/resources/images/${_gitname}_red.png ${pkgdir}${MINGW_PREFIX}/share/icons/$_gitname.png + install -D -m755 bin/${_gitname} ${pkgdir}${MINGW_PREFIX}/bin/${_gitname} + install -D -m755 notifier/bin/${_gitname}-notifier ${pkgdir}${MINGW_PREFIX}/bin/${_gitname}-notifier + install -D -m644 ${srcdir}/${_gitname}/resources/images/${_gitname}_red.png ${pkgdir}${MINGW_PREFIX}/share/icons/$}_gitname}.png #services - install -D -m755 notifier/bin/pacmanhelper ${pkgdir}${MINGW_PREFIX}/lib/octopi/pacmanhelper + install -D -m755 notifier/bin/pacmanhelper ${pkgdir}${MINGW_PREFIX}/lib/octopi/pacmanhelper - install -D -m644 $srcdir/$_gitname/notifier/pacmanhelper/polkit/org.octopi.pacman.policy ${pkgdir}${MINGW_PREFIX}/share/polkit-1/actions/org.octopi.pacman.policy - install -D -m644 $srcdir/$_gitname/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.conf ${pkgdir}${MINGW_PREFIX}/etc/dbus-1/system.d/org.octopi.pacmanhelper.conf - install -D -m644 $srcdir/$_gitname/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.xml ${pkgdir}${MINGW_PREFIX}/share/dbus-1/interfaces/org.octopi.pacmanhelper.xml - install -D -m644 $srcdir/$_gitname/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.service ${pkgdir}${MINGW_PREFIX}/share/dbus-1/system-services/org.octopi.pacmanhelper.service + install -D -m644 ${srcdir}/${_gitname}/notifier/pacmanhelper/polkit/org.octopi.pacman.policy ${pkgdir}${MINGW_PREFIX}/share/polkit-1/actions/org.octopi.pacman.policy + install -D -m644 ${srcdir}/${_gitname}/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.conf ${pkgdir}${MINGW_PREFIX}/etc/dbus-1/system.d/org.octopi.pacmanhelper.conf + install -D -m644 ${srcdir}/${_gitname}/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.xml ${pkgdir}${MINGW_PREFIX}/share/dbus-1/interfaces/org.octopi.pacmanhelper.xml + install -D -m644 ${srcdir}/${_gitname}/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.service ${pkgdir}${MINGW_PREFIX}/share/dbus-1/system-services/org.octopi.pacmanhelper.service } diff --git a/mingw-w64-ois-git/PKGBUILD b/mingw-w64-ois-git/PKGBUILD index e4c8ffbef9..3caa4c5796 100644 --- a/mingw-w64-ois-git/PKGBUILD +++ b/mingw-w64-ois-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=ois pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" _base_ver=1.4.0 -pkgver=1.4.0.65.b3e596c +pkgver=1.4.0.68.af406d9 pkgrel=1 provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -19,7 +19,7 @@ source=("${_realname}"::"git+https://github.com/Alexpux/Object-oriented-Input-Sy md5sums=('SKIP') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "%s.%s.%s" "${_base_ver}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } @@ -27,25 +27,27 @@ prepare() { cd ${srcdir}/${_realname} libtoolize --copy --force - aclocal $ACLOCAL_FLAGS + aclocal ${ACLOCAL_FLAGS} autoheader automake --include-deps --add-missing --foreign --copy autoconf } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/${_realname}/configure \ + ../${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared=yes \ --enable-static=yes + make } package() { - cd ${srcdir}/build-${MINGW_CHOST} - make DESTDIR=${pkgdir} install + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-ois/PKGBUILD b/mingw-w64-ois/PKGBUILD index 7e98b95276..7db6b5ffdb 100644 --- a/mingw-w64-ois/PKGBUILD +++ b/mingw-w64-ois/PKGBUILD @@ -1,7 +1,6 @@ # Maintainer: Alexey Pavlov _realname=ois - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3 _oisver=${pkgver/./-} @@ -45,16 +44,17 @@ prepare() { patch -Nbp1 < ${srcdir}/win32prereqs.patch libtoolize --copy --force - aclocal $ACLOCAL_FLAGS + aclocal ${ACLOCAL_FLAGS} autoheader automake --include-deps --add-missing --foreign --copy autoconf } build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - ${srcdir}/ois-v${_oisver}/configure \ + ../ois-v${_oisver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -64,6 +64,6 @@ build() { } package() { - cd ${srcdir}/build-${MINGW_CHOST} - make DESTDIR=${pkgdir} install + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-oniguruma/PKGBUILD b/mingw-w64-oniguruma/PKGBUILD index bdb57619da..3065122942 100644 --- a/mingw-w64-oniguruma/PKGBUILD +++ b/mingw-w64-oniguruma/PKGBUILD @@ -3,8 +3,8 @@ _realname=onig _fullname=oniguruma pkgname=("${MINGW_PACKAGE_PREFIX}-${_fullname}") -pkgver=5.9.5 -pkgrel=2 +pkgver=5.9.6 +pkgrel=1 pkgdesc="A regular expressions library (mingw-w64)" arch=('any') license=('BSD') @@ -13,7 +13,7 @@ options=('staticlibs') source=("http://www.geocities.jp/kosako3/${_fullname}/archive/${_realname}-${pkgver}.tar.gz" 001-no-undefined.patch 002-autoconf.patch) -md5sums=('970f98a4cd10021b545d84e34c34aae4' +md5sums=('d08f10ea5c94919780e6b7bed1ef9830' 'f3e53db45e17dacc3c380751be2f2030' 'de6f42a1b58d18850dde64747925bf00') @@ -28,8 +28,12 @@ prepare() { } build() { - cd ${srcdir}/${_realname}-${pkgver} - ./configure --prefix=${MINGW_PREFIX} \ + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -40,6 +44,6 @@ build() { } package() { - cd ${srcdir}/${_realname}-${pkgver} + cd ${srcdir}/build-${MINGW_CHOST} make install DESTDIR="${pkgdir}" } diff --git a/mingw-w64-opencl-headers/PKGBUILD b/mingw-w64-opencl-headers/PKGBUILD index 11a2b75ce7..8e635831a6 100644 --- a/mingw-w64-opencl-headers/PKGBUILD +++ b/mingw-w64-opencl-headers/PKGBUILD @@ -5,7 +5,7 @@ _mingw_suff=mingw-w64-${CARCH} pkgname="${_mingw_suff}-${_realname}" _clbasever=2.0 pkgver=${_clbasever}.0 -pkgrel=1 +pkgrel=2 pkgdesc="OpenCL (Open Computing Language) header files (mingw-w64)" arch=('any') url="http://www.khronos.org/registry/cl/" @@ -21,8 +21,9 @@ _headers=("http://www.khronos.org/registry/cl/api/${_clbasever}/opencl.h" "http://www.khronos.org/registry/cl/api/${_clbasever}/cl_dx9_media_sharing.h" "http://www.khronos.org/registry/cl/api/${_clbasever}/cl_d3d10.h" "http://www.khronos.org/registry/cl/api/${_clbasever}/cl_d3d11.h" - "http://www.khronos.org/registry/cl/api/${_clbasever}/cl_gl.h") -md5sums=('87f2794a10f1489c17457201992e07ba' + "http://www.khronos.org/registry/cl/api/${_clbasever}/cl_gl.h" + "http://www.khronos.org/registry/cl/api/${_clbasever}/cl_gl_ext.h") +md5sums=('a50062f2ca7b977ffa526b0598f5b7aa' '8e59f0e0f64326e826007b49700fba76') # source PKGBUILD && mksource diff --git a/mingw-w64-opencl-headers/opencl-headers-2.0.0.src.tar.xz b/mingw-w64-opencl-headers/opencl-headers-2.0.0.src.tar.xz index 1eb170c7233f9d9046f8a5963a7bcf9101339da1..3488286156539130a9b746807b160900f4037426 100644 GIT binary patch literal 19188 zcmV(nK=Qx+H+ooF000E$*0e?f03iVu0001VFXf}+r~gW`T>v+n2+oi=(eXN7Nr@LD z1hn+!ED~Vk&uC~M8cu}82oKa`lcBVj6fT+@(>V-p)V1??VT4?daTG{UfvWp8NmpeB z5!|I4z3*txScC)mat`MFdojH36yNpi9wCS)Q z4Fstk4!Irq?62vX3JvB!3={D7vv7o}%ZTEJ$VWJuUER`RW%qI~F@sm=5?JtLK)0gR zp*ad!a^yz1o}RiN-k~3)CXQL(QTQQNY^7qxdk*>xA4w8#Ab zZ2^`^x-l7|Z9Tz1xkqzg)tzFS2F$D##P+B93BlU!RNFDoWMoC{Q|TQX;x@{erW;6b z#)|Y?DQX}7<0B--;8k!ryPT}`870@x*RUzDpu8K%K#xL9FCCeYM)Ur`y8=#vVOx<~ zfj3@5&*3M&d!@JqI8$Anww^ZY%w;pB>d~vjJ(F48)os%9vzo%K(V5>hh3!iDd+@W< z(Z42_H7ph`66NR2ap8~-5WVs)%*!wuru?_bY6Z;cO86f`JQUkxFO zC^|7L`8xSebP3!UxI;%9hXO(8cAfZ^O7-&9!7A|wymfDOhBJII5hsCO%ZV#hEMR~E zpk=yLUl9s|e`N_MpaacJcp$?T~#R+MdAM_V^>omdH*}UDhRQgBb+EpR1ZbmMHpuC`X0C6LQ887=^{M8nZpQ+l_LvbS)y(20j zf#PKr!q)@x{kn%VypmP-M%Ixyc}MJ=qkCh(9^5!38lT=gD!_;TcJno^xP6nqB|(u4 zkY5(HKeTR!?e{?*R0#v}$anRpL#LRJ`Bg@RmIL_Kg-_4Hs~dmw$i<-=NjXvxPC5RKQzuJV-!nO5A-1_Qxt-0BLi4`T=2)FwmX08CefwC;hXB2!G~wjItKr4Q2@xlIY+XVg+14k!jyHaZSF@^|Xo2(YAQhxgQt!A%4b_-2FbbKp z%>X?2lu$iT1{Mw7mkJTf2_KSK5ncDDV2?XptTTVXL~`h_s}g>5|4{DidlJ?VqReZW654bKxH zbvdI5Le!zLQ5PRJEcNUDrXM%w7Fj-p?(E#jusp|?A(A+RdYj8$(fpE%@$P9}WwJK4 zhiF?~&n6kPZom2Y3g`jqs2@!(OTjG!7336A1_K;R{K5t3ym?phCd8XUY%epbCr#Dm zqo%a&*FZ~$`%>j;>B!T#-x^XNP4- zRz1_$G?1d%!a!INR?8;7T+wFSiqccZI3TFkk@r=fAgeMt=B2~R@{T7zMOx`3K?CMv zg~ba9;6*M^Q*S^Eg?vnBELgWLJNzK2X?HgDVSVMd$W4fd{ONy^2zu$je1GMpJw2KP zf81U9H_fjT-P#a|wI-iz?=EZ`1bjuv(!{TEv-!n|)sDBjxl+d5_P<7QQQWUMnT?;V zZ>#;>GEsNhiZ)`Lq(8th3Lrf$uNEi+BFJWn#NCiHq=Q*EzRu@ffwIZ_8End`ya}zA zE~@Go?4ECh3C1V14{XYIz(*Zp>?VKzn_)3wB{(x@B6!M*xKUQqUK*4fkGXQko1($Y z-jCR`WKMD8mdjdiFcx_kC21g@IN2ra!hXgQPZtS@oOhxEjytCeB_fL?`RYwR8zA%y z$XA$g_G^fbHL$rczDxw-=NvB?Toj-3HIQ6JGOwyW500@evR3=VKV{-s%|4k26h;L) zVE-*#cplRz+o{6p*=Fb!;dcGCg|8Rq&?iF|HL9gCk{|t1 zjvnR%Ln=BP$lqSMUJ!e7T+Y>J4S19_m}Jn%O$9lSSmg@d+j16>XNnn1nOqSLN7s2a zlHssyWH%x@w5_0Z@eI@)zasw+iwyVAUrBG)Vv`+zeBxg!z^?e+a((g6a3dj@9M0sf#EjUw0FpK??mKbG9qyBa6R9{yw+R4K zU^__t8@rRp4MJ;d3jCMvqVwB(iXqelXD&f<&s50Ie}Gm*J0CjH)A!kfZM#>Wb*G$X zj<(L=t71;6GltG{Ms<-!EIrFugktcng=+bHs_tAkiY4aj5g~j8-ANwuWhx>%?-43( z1l1IiPO$IXoj=%xX;tfVbLJf6h!R5%^1KO%hGKisrop zgR|9HnQLy&YmNPQ@3MXVB_)*koMdCY7XN6U8!Z}&sl+Gt(pVZvdkEGQj~;pg6Z~vr zY!TnH086AI`7VZRZ=r%V^=WF|=wbj4{y$vWY)8!#_+`!eteul2Um1B%Hok!dA=+0U zzVySa@`VIwtsRx5K>?WB!txHRYX*=B1gLZm9ns4(s8bQl7+AKsmO5h*tE4|H3O(ia zS*Cr+y%ZPpFm^G0O>@YNDzIU!@ona|*gSQ<&=+m@IiQlJy}M!L}4>KUA#8 zhU@QSrGq$V8#m2{n`P%(bs2Hw4hYA=fS}(m|>0*J;H1tNSOhwYb@8 z=68=s*ermohkT|WB<8Lj;Op%vx0aB8T>rg9*@mROqfZ}|!&-ut(3U$CR?yEb zO@ql0b#T>*Q|;$$s5*Bmt@pyskc5nLeE*uKG9jO(MDWCPFLdR*3QC?}RPw^+(X4kO z{^Zsonw_64nFJhGt^&L$YThm4LYXpRO>j|t&kb!wn3BDi<5Hv?zj$Xj3OD0e&4T<+ zNfF2l{ZE_#h&#Cbe%gN$_foLx9_i-t~FPzaR>P=ddGVM?eHlG=(B9s&=7Dgg=5RMmj*Tsvs=ChN-E5; zhyB=91GW-nVIXk*^BB%%GOU=Wq4+~aE7L84{HwG?)G5+lp+uD*Z1vMV7+sw0T~%CG z;z9a&o3&881a;RX_)!#N908!7&9Xc3ZrR%Y+;6=4z-ZRBLbBBDn+`2F;hbKF-fcO^ zapcTNn{$Tf`NQB-eTLn&!wOFA;}dI7Ek&%ae!XZ(&5M|~pW%JDQvx)Uf~N;4TvR?9 zEhnH{Uy3rGJc~NEf(p?Z5g%dL;3^Q{O4qc^=78*CTA8fBUF9IJi9B+N-TK8DX{)`b ztvYQTvvK-l?Fy*eo0EpI(00ij{2p6exeJDcZkgsT41r^GS+e@J8YU@p3fW)aPvkM`yF06!?2TEvQy+-%1A`YF|1kUdwz~{4o7LO)9b6|*B zBSm;I=3fKXDpXr8H@50@7bc#cx}q{6YQ~Tz?HX_C{_0!Xmq0iF8{I!KtA! z2>(pS3ErU!@UK%-g~2ncaVDHM6QDy`pQ}Q_3u1RC0((}Ye+*I-=@tF4Lv*vS!j$#T z#?d=|CTk9Zjp6(le0z?n$RP_zVSpL561#yDK7(MfS%#pJ8f2LMzwJW=t-6FH0Rf1S zQ`>!s+4FBP-GzkN3;)_f?5n3{X+R&fl9Y{Zy)aM`vp7Pp;gt*v>&{)8KdpI}z5|{O z1qVeIsg<~7Q`XJ`62(?mn39s=b-7i24OZ1ZG){$nc`*(%*G|NVJGkeErIf{n{}+2f z?)LY3M?D-uq)~lCy~^LA9xk7ff^nCnSv%5SvB~!oj*HNx_9f$yD-YZw--0p zr!cuiA~Usm`#)Rh``U#d_9RS{GJ>ApAjY2SAFDlxFkG@F%OP65@#QbqyEA9fr|A8Z zy3Oe>6D?G&JPmj+5b?!3zMWD8@xs#}kye4Zvw~r)U@Z}(Fl1aDtSeVrg<#IH2s9X6pR2Cwm*wb>iBJK@^l3SsW>29SdcWVL?Y{?{)(+KiFWV3A1DtjlZ=>ZwejgWT{- z3M4e6fsvA{WuGMfK|Dqb+&2f^<)1FL>6Yh=mTid)g6w^7RJ2)}q7QqjAf9~0Kb)fT zJcZJOaHGi5*{0sn<$XgRQry`$&u5w0>YEpMV3I&9DsmjffrAohUl*PT)6^1IIF8@h zR~=kKTMy$}1{sm!vWK}00D1hOmT^9-zCi8t)%;M7udfXGDnx$5``euSd`cN~y9(F3Q5tW`|Kz_Y&?Qo5`7YnOtT**B_u?{~n z=xArTU5|#zU?oF>>2E>b0c_LYqA@1e{Q^x<-gS%XHv*yceyatg27;EBZAUl+BA-Ju zNdS}bDIYQE2XaPKGfb*+Ol6HX5W#x))~fqn%v^3>iN_@EYN%DvQC z_U%~2kj)m)J~8sbp{)U&zw8D|tzA~Shtnu-38tP?N@@n6vyx;dfz-arwA;Mn=;#to%kWZ{dHi5uUf9X_Y7LHq&c_9 zW$>DHGB@cV;~0`KK@h!C;uGO%6JRYE8LnrU@2UB z47CKHTR9=?T*5u>I74k|$mj_ENB9wa&QjYSig>A5)|eAA32O<_3RfY3m)bR`*@>m~ z1uzp(o*;;UEa_amEo>&s;;t^EQx|F42r^7snS`qt*FXKN^UG z1OLSmdczFhg@qbVzIvpnxs@)=&3}8Okbtf9Lw%IyQY^!@&^kmYeU5wj!$z_~&hN2a z>FBfkpQ5JtQZl{k952B(}F$aAI*LV4$N`4UE5)GdB$MByuQJTJr8UX=lv# zG7^XH-yMn+xXl;KQH!g53YhE8GwSpqt}M0IC=!m1OpkyYr)zmD9v1mih#^U}HLh*4+Y3Xbc)T7^}ZtzuHCCH5_ zG~08oqz#Id@zpoLSB)SXv5Pkz7qHeXr1m0*xgZ)CvEREZoR%Ohm>IuZYxI=(4y4Kz9_a@hZKsKFHZ7AB9Z?{nc@`iZASVFh$o$5|u&}=liBUVIbHP8P{@8f@Z(x9w~vl^?k64Vc2^;JUM z1~tv?THH?gpwl{K{L)#Pk^;!PrbT}*h6F6i0$-wssK=LherCgD;%MdZsMTm7Cln7l zb9H1!20Tj!jpqS^oc2L8TnH>*g`I)1XW7FlqEtUpj`aLuFKWqG*+SyMzJS##73vis z{P8^)^XeX$z#dF9x`4+BJCs#Pg)+z|z+ppf1vOC)&?Z=eKuRq1pd*r|$;U7^EhPAV zPo@%m<&Nk3dy_y0rU33)I~x_f!I+w4hEsb$NArE8ds{hK?0}Y381fI&dDo``$gnZe z#-Ptz{;>nHvP=zG7Igo!^0Pte!0wog#_h&mr1~bVXNi3^>hndiL=6qD&Gev9SCdA! zKv7lI6NremDXErC5(D(qlXu08b zR5CeA&62HzQkY^<8l_hgwriwyhRx?qFHMY6$6Ckgb5yarH@K7qMv;vESyOZ}FR=KsY$XvF zR;it%hqItM7v2h{>i9~~z;dh$^YeI6uBKOspnSI5<3B`S?fOumfNuZ5RXG1zUR$#) z3LJzE3gFqiGgo!&JR;!;^{CVkmC#4Q4oX9Ua&eeSdgz4HSh^G7Uv~yeq-#$9XI|)K zaqiJqk&<)&wwA)kvbmJ8`&Y!CbAs&>S4)Xn926vfHcWcG}_E{mRz^rG{2BsKf z$b=^xZj4kNLlZyV{`yL_}N;0oht4?3TUxEzAM}J8c0{OB?6sQFkM&_NVwI_L2cVxu@ENUGIPQ+XcJa z;nSZ{2OiL$T_ZA-O0t*3jN8CB6Y*fr&pk2m|6=k}*sLX>;0$13nDS?U&I+?}MQ#N- z=QIn!nZS6~$_Bzg;Tlt^3c&(|t{tJXe}>dIl*mjwY6P%3E&2{s{Eh_gerM1j@@32= zz3(%zl87&^rE%Qs*4nj`t>Hh1Ijpu#9UhhZ2H(d0>LVYIiY!#ggEh!LSp zes1o|IgKT&|G-iq?HzaVI%lr3-5pv0@%FAcbfQ3&$_DeSK!lvw>={(ETAZvARqVY` zi9;4*;4E&W)JCRp^47V@&PbG`+|R)G(Auu9z1HTF^84n2__^OdM0LxKsOp3Aew&b6gZe9z z&o(Rmj|?Xg|CXu(l)lw(2}O-G7{M$H^I2ymLRnk&cdcCP2G80rZcg6i&dZ~hOGLw=u?@Mf+UPX>a76fknrhU~m39E@}|CD{honmYd-m<~t$BQ{K!#^in!M7HNfd3C`Al*GDvR(qEqs~R)vBPBPzPt<2W1R%8`!u$jo-V-gC z46EpF_S5LY^v1!;3z;<6ooVr$9E>Yfu%*+uF4{r?W{-%$yI>kiHECm zO($xjP_QJ(yz*Jt!v+jXU{IPb4^iKqo=6gxz0^8oUK3}bnf1~Le4X{F_`(?2m0mf~ zG@GTO+-B$a-M2v`He$hs`43>vPB;ChxDm*dfTmX!^fKk^gpQ2s*$rnsAToU8(Um2I zJB8whKx1y0o%e2wK;h5T!tSSNaz=4)SOdqLuv2|s?c&8<|c>6DlrP`vod z2NTNk!^qYn?>WUTb;l+S-~>(a)t& zuaIN{y}OAH{~JbQ+AwsbMHp2DTC_iqSyj)jy&Z>1Fc7#S&^qDW@0qlMQZJ@tf$E|}fX_nq~I3{S*1nZ7PER&3LQAU@#S<3f>H4Emkx91NevhEqKLf^ZQ9uHEX zN?jQ8{lnv(zlh|xj~3*Rjknbn#}eb+BBi}_y2KOM{oXcbKLnKG-=KME157qHMLf^= z&ZpuLfSvu%2Y_`A(QFE~t%Ev~TVxK43~X7UA;D&-&@DqU|8wu>I@i(F;?3p#ZHd&M zcf+{>Kj%l)3qg!rGxeHt!SE;gaO%Y^sNDRKm;4X7JoL^YSVNEkr1BGnMJv30s z6nzWk{h^}*vRQkKd0x~m+8?`PcrBF%LfC;iOSZma9Tx(vdcb{XktMaP7o2Lmn1Oib zc<~T4!{h5Fl(*nY1h}nY-;HJ239%B&0xjwS^anf6bgLKfSZ05fOV*CE9?0LlwIAa1 zRwLMxLZZ8V(H?otW~pr~Npdu-Fhxd=>NOw#RT)knfrBwmhRd_|gAV=9dTVMGnmR~9 zJz>a@LCXoti5g36#p_mdfj-_jhdEn=uNwH+6w2=4i;k3U>wHOY^wfwPHN!S`341xG zER&nxZ0xY>+xfu_hK+Sr(FSjOBW@&=?KH-V7R|>#S03HopV^%ol;Ky|e^A|* zP09~dNkk-W0rrR=LH+c^w2#)lu6gTei@f`AS_By7G?&tel8;0;scNYxtlGGLv)C3t zglNn9Z_vP)orL9~g=5gYGOEK`7mQui+@-5IAP%NQ5F!1}cY?pxrsLV2%7}j(U5AgC z+DHkXQV^hBjC{$q87t}scorphn;ayzG4~CnAy{?7|2EXqfT{H@ z15s&7Pu&*TOIB2$fABDc@}a%r93kiQdHIWrNvv?&q=YeYBa=VhW)B%8uER6FrfV6^$gc{b)u2>mZix)ivN{0KFH3mC1U|pSD)mkl;F` zQ}i=!1mQ8&R_NuW6$QpPF%9z2md4D)Jx9c&d@*1bmYSl2M;95gk z%=qcr1(1^C!f3CL`|&V6rPz0gq!_{hsFxog13q7F3eQAh(AANnx=&<5XZk#+5Y|Um zj`T^#fe$#QG<<2L{6f<3w4$b+Qt2~Yejq$ci%=@OvDv{Q@T6Ob+>XDrmKGfXGjfUO z`pBE_L8GTf{SHW|ZJ7M%c&W%IUD-(QedsU;I*TrChpP06aW_6o59kXqbIh-quu?<) zXr8`ZS=Q)P2k$E;h;qzikZK76Vy!FH!r)e^Th$wRKxHRhHw}I;tEzDAEHYq#MH<~gL zqz8J~?}9I|C=$Dm+V{Uokek5LQu;gVZe{?b!f~q4;*z6W-Bme;oS}Y~<)e6uOR7Tv z_mANbvl%4PZ}{m-zVZ!OYH_}Z0o9v5KHnuV-4xJ>+&|EZ$wf7R62Ahj0 zn;kA7H$}@LBi{AxIv2L1Tk(WMaFp?~k4k2`mtn93v2?v#uZ?rq1)Bcj&7gdep}?ls z&V{G@rGfC?lRj`3E6>mxsbM6TTkocm92$BM?@IFUQSRQBc!l((a|ly9nIa@D&LI z`n~`pdo>3<<_awZ!F7=+V;E3Yd@xJLHSxzVtXa_G9$+%@_4WCyq%b!WIXDkrd265T zd<sf8=K5iTx-))G~v=WvhNAzfQL&edq0*}z~PDCR!H* z-HpyZ|1|dblq(|IIQKe@(ro%*yqwv6php2Zk7!E)6%N%C^CdhL+@2k-IO0RY=3E}1W>PxpMh>?HQ5cy>gOoQK& zX3hB2_M(tkLx_+LM6#X41iK=*WTr=kY39V{1eB zG=10&pa!Ts7=q)|#ETG;$iKc_TjSbH*dOVA4SUNLeY(gZjXj%yi&id~kGBQs6O?hm zCoy*s)afPN5gg1AC*5GV_40r1fx(61ny+pzgJP6?f_ikF3facT#DvWz;`y*>n+PiK zLM-nr;=$6qwQ%^Jk+Ce+dRL{yEIUW@HMNbSrI_pj9+bfopNVa(wHcl5Abg4ff**Qs zOg_={oJUHp?`ejb(-z5qlWvNM^?K)pN9lAEAlXny3gRC{ijgIC`0O^+Z&}oc#yi3f z29#i}rCxOtH5{Pw3Wz?>J#!BOkk_Z6=QbQGB19bt=psqvKAzI!H!Dj#6MGjz1;f zjJ`eQU}}94YMJe=Ju++x74CX1P^9f=fu!W0XyZXdMN88}{$Y+ncwMq*ptx29hvWGK>EjSZv4? zf%AP{lb%q}fLus*H>5+DuM{xH+gK_KiM3HY95mc1r!jziu&aaCeIf8lOH@37;edXK zQ{duOMX#6_5C?t-_K=Wz54=mt5a&@aG~ODF=KST^BTtmt+qB8#z<;*7i{wICriY|ER!Ur=Of5>+5_<~4ieI($77K?vf}WgY|{ zGKM{wIu;8(lnW9P0~tBY^uAZ2NFTP zz(Gd~k5%m$l1Oq8`!d-ROsWIF6QF_8Xans3PRhu4InsFOU^KO5So$ULCqTe5L_>t& zH9cdJy*W5Y>gK!oSHBEN?GON3yg<$je?U_gbxW}^a59sy6B>Klt$3P_d((UlEJo=3 zq;vw%=;`;~0!=Ol6SPKvJkW-r0+ZO?49t;9zv-S-BZUWGMDG)CqOPlV0VpT-mDgtJ zDgS5=fZ;Obv_EP6Cj2{mVLnI`_OCnW)?Pl^haS+-pWZ9--Q7eg^YsTspn%~wYga4c zD4%#x+#GC&u5)IPic=Ph`V;cHTu|-CiOLH>q1#_t%n%Q0Li7Ew!vzIE)d~wa(uRa4 z(u#N9;5=hS4VCDaURsCCi#w$rLd_|f!_Esh6Ba*pPh6e`CtR+7Tc?dFja=+tAXY+^ zdvIaqMCckTcI*AgI%JkN$Z`5=AiZ6-jg59V5Tr{gd{i~sp7G|pC9zRp9^#pa4t)@b zW;OlKq#H$li!aQomQJ{B)1`zKQcv3LB%UdDQ34g)pZZ36H5uR0XN|jLaujW#v?1n$ zA)`EsEfQ?)-Cs|%8*c~LBx=TFF5j`CoRT*fN!h~*$|>I6e`6bDG%<=lGZ=J{(3&hL zS#?Frb12w>iOzX=R=XS{?O2zbjy6j&obJX+@kS;@pV=;E9l`^FFo@O41Ai+bZyIJM zwpBN*3d@{nOesCtddc%cjhuivfHGf87+B?N(}#WNW;)o$d8vl@h%1XuG&WlYecw7; z?h){j?W|Oo`rTvV@8oZlAF#wNdcHQj9j#sc0XZ9XGcc;42MuZ=#J*jCm&kCn7lgMY z`^Z5X8WE%o2AWeSo}eeb{UUHOXq0i@{%7k&W9Gr^i+`x9Yrow*vSL|T-7ff|bPFRXOlDILfPxtosZk4c#b z@6l_{%63!_QZ_sA9Sf9@GXysBo~bsaNK|}{D&L8*S&Z;llf0yyT=nGs}sy+8KC{@ZgMKNx}u-^n(bcO?|+p)f@6XSZxuGs`D9-lj^yVw@S( zm&ta{hD@G^@#Ei8y9SN8b1kHXKU2rcpfu}OdZ%Mf1aSIrsrHYk zl~>X|^kKySp<>L|%M!Q4bk=5RFdg)IdA7)SZ+TgTqFc0@1QwZjG5m~(kL*6)Tti(a!+2aK%~h`<8CUS z*M;9H#xv|z&)y?)e1s)EmwbcAQbFrQbjed&K)#M40QVDKE@?I%{0L0acW|UKS_=6< zR6g^F-bn^s5EhA13+kw=hzun@UFIvU#F3H>L?h6VE6|MOA_}VUdp}_^%GgYV%`l{e^_copx9;;qE`X_y%m#|%ov1leT!V^ygYnl4EU_*oXLelFUPGJ=_2QY_!YaEC3cZO9+yb`PNx7z2EeD zFcfOdt1cGes};`T)QWpg(!7Lk$(iUE=D)1WR+@(&o}7mFi0K#tWIN;N_*7OJxQqNZ zlgeEqI&p&UJjrt?XfrH#^XqG;08Cc*Pj4XFhkZ4`0TTfG{tfQYY6Eu6H?n!Jt4eG@ zH%#UM>}@<4z6#oQla-v-HP{8**hBGsc4rU14o1Toz*2bkaCgX!RkiG%CStEhC1>Xb z%K?%ong|rnlF~@kI zvc`}#V-Vu9CykGM_KqKV>8Ijbk-9H3$={3HleVfbqycFu*)jR)CE|a~BBfr%rW?DY zUXd6V_$xCxdco<-3-yWr4IcO<>cQn5iOiL3fDJhU=jpa6KTPDP~xu-oA z)-`bJe3WOJXBZ`xfptRh1W(l^7;dtJ3oqQOGO}~@_RJGxf4_X5e`f%hC;sGsSlQWW zzYs7NrQm8;N~jA42st*Y_M=*-%hIw^RYuGbHNA$kT<&gh4(x2P`kR*=+2spuaMHByhWq_H~-F;=cB!? znSVe9n4X>JHMl|cKIY+t1~=-I~95Z?~%r&$^A}A7J^1|G3!`IWT-|BYeEz>q>vp&_@NnS#*Mo)+E8G z4TyIg5KKSP+T=!*9Qz=oh>k$+3{GQJ-HdpUOxREd%YDC`{7_RpI4vQYSAotHa~Y*W z@x@YB;JU5|nN`-U485l%sU+Fnmg33jS9};BfTB-h zS^_$m>vR27sV{fiZY)KM=pm;n+i~?z?vr|-xbNG$1DxZOg-BLl^AFQXM%Mk3dEeO0 zU?GFmkeQTTUy$p;mO=K=eK=}s)oKU4y1YK+rq&z*AS2*Ru%0t0Dz<7+e}Sq36r!S5 zinIH3;vdu?euhE`(j~&5F%=rE6VkR>hkb;5vFgZr=!V4@qb=r*f|7VQ_MICOg71%gSo4-hAfzxJ&1E4LgtqqMhdhr{aM8Ib&HYbo-w z^KAy+q=7zi$F#Zm9|KfOwo5@r$sI%JNtQxXGk+;%wZR;h3>V}JfMgO!`t4o!ToP$T zN%%)=_V4RyDgiaFycRhALg#tWZ6-k^t4hA2i}UH)&{l#?UU22k2dp>Xa8xTn9F_8R znE$2*j?yVKL{M{!sJ>Siz-gRz@yG5?EoQJxM7q7EESgGAUH1#&l!5^=*FPG=dUd;{d@Id-MuHYf484pRvwVMX!LI z@MT!j)L&So6LALU!v)WuCmbIVb)3xec>i+z7Q&|V!%%o7ru>@wJp_PQf&MW*XgfS` zkaqPtMCP26vR~(n@)X`|H!+^ffmX6qUjebW)TvpUB&_d!217gy4yei?=I#r(qWsv{ z#@*^krYsWAmlk;x-Aq#?gq_y(b^x^@B82_H0>0=YLY~Rh3NTDoG^O!p@4>wRbcNTK z=xoq7@ARY{aC>mKHMzzGVP83oN<&kBx|r?n8JB%Iyr6T`0&4gQmJ z)jUT?nWz8l?xzX(Ijho_K|@zG+^oC_Hx_AYGAMHBcnf02E6{6!_v7sK7YJnKsBor- z1Il}^^Ovkw*F5m8Pp(uFtoRpmyhmM*Zmw2*{2U`5wnU;*r4nnLD<$s~Y?sdBiCCgG z&U0=4&*!r(%sW}SL4|=JAx$vj2rbQHRhFn1F%YkT5gWo>;Lyrxl;DMZ_@QOp8({!@ zCUV3qu!3pfbD^&^crTQ~|ICd;U5JZRrD5<^*eLt^U~*r#wMU--W6(1r#cn2qnjExly+v-L0o@NlWEi?@K_Sx{N4|X4Gpe$L|x{ zUy?UmHT*o!sB%cEj^c;Cfcm)x?8ySaWx9LXl$@_7W8D^(6pDXln<|UszP1yjjrxC{?H4!r$#UhGhb4%}kWaoxs&TPgoy zeYv;7^bdLdi7=9)MPEXX*nc^i-qSSxn4a-uS{z0llSO%T2Q+X5^kSAGHEBD_gf8Vv zk51^NC|>4W%Mrk@UCL{>v@Qj8LESqMLT}*jj%WaXY1$>%aC|pNjGh;?etfyy2?J?B zU*?o9R<^|O`ynC$vX(vz^v$ncOB7Zj1YA_e;r1XTycpv~H!#zmn;49R5wT++M!h0w z{}hgm_$~_$Wa$Sf+C|Lm{M>ZgX)D1P&K*Hb2-T&3?6+h2(Y`UH8qGxWI!s*3e{8*m z>9a{D8}=9*CYU+f0%VbRnxdWNY{>Q*O)qPDoz_VM!3ahy9pD0Km0Q4}1x`&13O>%_ zoh^3@nC+r^w{(@%oBKE2H!)m;SD|V0k1d>f1yVsIdj_rZNnTE1!;V%=vVsg8m-4Td z*GV{NhjHI89*w$8SKZ^Eu7;;_(Rv)njo5X6A;Ji4l)k z?J+ft{K_rDxFC@!kU11K>dR^1T$c7yTBB{BK{$@?1|{R0!*n}(T6RGBYEo=w6;Jh; z@X*v4@Gd|AlE+z;tLKJ~svNKNxPxGCDpO@$OJb+B$F>lS&w7KCfb-2Z4IXAx-PfiN z=`Eg8H1{CH#r}!Oa6`bOAac(>V4B-CEBkBeH2I0c)rp1u-ewU@L02YXhVrO!cEglw z_AvZeD)QdJw1-AGQg7g-ewqWmO2rby0p|)B^`RO9$AP44th5-*pGMgmSeyvDz5Sl| z5M(^0&BedS+|CXN9*^;n{-8PgyNmrsZ~h~xf6E=eqs9CrXYr{WGv`8`%$j<_ zAA0N>hQRRPV3cyFgiKm{5+J6vYryZ_qvWCsz!sNxNvfOG}J9w3gPxz8rrh8KRB;m zW4UX4{$B>8w!?yMl!GJj6nqxSYA3;IOnwQJb8)*MJ0y^kuo|Uil}V9nHX(sOAjtYue32)JE*$VX0b zostP;zMnD@+X8tk*8sDdB|f0c52`o0cbY{EM?1Y4))#UUGj{N8?r7}^I%6`TwMrYc1i9$di zXPLOi&tCiTR$@xOkGiOqf4)->t&>Yw`zcPsh{tGQrS{9F-1=&Zq!Rt9SfGUk(!;yB z>pzN`d)nW_i>}%_CkANPO@oROl7nN*Q~^C7Z*XKb)%MJ@!e}=LPP_ zgy%sank=WBVxuvdT1;pWQ-3=_R!waYK+Zqk{DOWoPF@a5wYMoGI(T2GH?YV z%g)qS=BDkRae)-^>lg36Hy7!<>!#{1O&>E(Ix%p?EjfrNukHkb z6$GIJWr3gaPdp?sOuutTHEW&~uRD;e@$}pH(rARvE>4%M{`F=+9+S2{BCKg-YOZ&y z4;I1soFSJ0GYc^1IdsnPD1~~;)_jtej<(ZCEkoIfmCS%O;lI-?@N!#S?J3vB=)*&A zQ>5ti!~w{(LqnoDco^}gMOkYFxXq;EpL8>z5r>Oh3@eb~-uTa7p^T`7#ijt~!e}94 z@d@f^Ok~5@6czi+5>;qf$Yqg2xl#CUe6hG)=b_{CzaDmS%{fGnI<6?XgTMCOObNb9 zvwjt?WCwF0MistIIj=0M9Udz`L-Vk{L{R}7-HlqCw~t-$qVmJKShm48nmWuOOL`^| z8^xO6E}=t2c4V*0Eu}iX`zXE6Wk6tmb{uM+vdRd`*Nl5O^u`(F?-m4LnX?7?(|l_) zsYla_J*FoSzuZI#H{a+P-g?kc9F_XzzkLTGV@ATg#SH1M5sey4rQzS8uSJ}lm^E)a z%V=G_Q!&_gU~;{q8G9U?y5rvcpufSN9pl#;V5pSM73x7?r@Bj2acxn%66`zx%@xdbrjG6gg;wFt(sQ>nDl_DiK~ zvr_-p$UC#y+2NDxvJ}&}UXMV$z6c4B`VpWFJBnV)ll38uJM1|Lf*R*0d}*u;)j>p} zKT6q>6tpooP6X>OIKO{UkiKK~#tVespYVQ&cG6{!4p(){y=Ub5FHDv>+|jKwtvy^^ zn!RDm`C|-eMA(!yH6UCgeDFw6&)I3So^Oq2-f`A1J)ko*rd!|##f+_HF`4dq4WVg< z)b;yI9kHlUx90iPl`hj@N@>HaDPQH&8fqpjF|5wnOuTokKGZiLBLh~Cj^`&iZ2EfB zrZ90Q2I^kEr_6G(AfyH6^+!~z=nb>?|l~!2TA)Vzxi#K=On%hZv z!3ewJK6LSv2YD#j=ps7TJWmTIqQ!z7-_@wV>5d}9Yw|c{V4h3lmd16pT@vXDw9`G| zfSyDY#H%O2FN0Gnfi>ibh^H-lBBTgO9oE=jknCR0{Aw~E3gou)5l)1L7_9=#gBUN+ zJ&I6hS?%mTmlnIPYh2U^gcO9EJwmX$rLfbA_Toiv4oLw(jVM%KA?`)XPXL`3&#VB! zhFttO8JLh#t9aUv&j0X&3dZr}UjIq#1IBOo065*~kacevhv)m4P71f1&Q z?1-2~O7Dhr(lQb~Z=$Ef&B%6wc<8rq0YZ)S;;a?qcf(Fc0wC1~k`fBoyM+)V%flB> zC}-rT;7*%V%BHvzfy?5!dhB(La~*@;nrBUF^)|d2W;cur>eeV?8sl|fNO2>vG> zA9QpG9_h&kVTpgO`QYw4Q{|w@i+Od&X7n7F-nRT2)?r5j5I7L;=_D8QUL|#QOlT6@ zi|~RojoA62|8U@_i1-|4kD+AUpxUg9>j$4&s6<_S0N)r^v1-IWm3YCzO|NoCW{jy1jrA&5beh34V(7{l)E2SH{*x$ zN-nUTuos*Ah^8BAP&+ee;|_5fb6oLd9G>=rcr{BnAmywc!7oc={|6AZu2j7s=@yL0 z^e^}}v=bJ|yXpwnB``iKn1v;O*5V@F=LG^2o-YFJ#TZcs?(YlTeZ;O)4X&FfT+~u| z{PQqCuoX5xRN#iLzd`Y=(w&Jd6mfJkca5NT5>A}xyA}|TbI=*BL;iA`Y6*>A+n;x5voCoBFfX2mN|2=$*zIi6R+=J`-^;iHSM@V6EjwND%#C8!l`XwF1 zj+e$rVmW)CInJR@q6iHzR*RYF7t4xr@Jwq#F3-1jxDTO}+PHn$qJKUF4q15(ZDoA!;Xc70upjF z+_aS`}r87cYH z?J!_2eh`#|-F>MVy8>{8kV`6$j-B6p{U%CMeK}aaxwQ|9(_|0aeT~^gxxaxF92T*% z1GQLctf1=s0oZP-ODn=SVc0=@z1vX>$Yr75Z2$lOFh1g2!RKjZ00GaH0f5j7IDlya PvBYQl0ssI200dcD;dU(J literal 18644 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 _realname=pngnq - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1 -pkgrel=1 -pkgdesc="Pngnq is a tool for quantizing PNG images in RGBA format" +pkgrel=2 +pkgdesc="Pngnq is a tool for quantizing PNG images in RGBA format (mingw-w64)" url="http://pngnq.sourceforge.net/" license=("BSD") arch=("any") @@ -35,7 +34,8 @@ build() { # The LIBS line fixes some build script weirdness where it only passes the zlib # link command to gcc in the right order, but not the libpng one. - LIBS="`libpng-config --ldflags` -lz" ./configure \ + LIBS="`libpng-config --ldflags` -lz" \ + ./configure \ --prefix=${MINGW_PREFIX} \ --mandir="${pkgdir}${MINGW_PREFIX}/share/man" make diff --git a/mingw-w64-poco/PKGBUILD b/mingw-w64-poco/PKGBUILD index 98fb53676e..007df6691e 100644 --- a/mingw-w64-poco/PKGBUILD +++ b/mingw-w64-poco/PKGBUILD @@ -3,7 +3,7 @@ _realname=poco pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.0 -pkgrel=1 +pkgrel=2 pkgdesc="POrtable COmponents C++ Libraries (mingw-w64)" arch=('any') url="http://pocoproject.org" @@ -17,7 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-sqlite3" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') -source=(https://codeload.github.com/pocoproject/poco/tar.gz/${_realname}-${pkgver}-release +source=(http://pocoproject.org/releases/${_realname}-${pkgver}/${_realname}-${pkgver}-all.tar.gz 001-WIN32-defines-instead-hardcoded-values.patch 002-enable-C++11-if-compiler-supports-it.patch 003-check-for-WIN64-and-enable-LLP64-schema.patch @@ -32,7 +32,7 @@ source=(https://codeload.github.com/pocoproject/poco/tar.gz/${_realname}-${pkgve 012-find-mysql.patch 013-POCO_WIN32_UTF8-redefinition.patch 100-fix-mingw-config.patch) -md5sums=('44af65dbbd26126c4203a2d9c42c96d1' +md5sums=('4fed893d4ca57db98b0e10d82545232a' 'dc6b7d75f579fa97b28ab6c07e62517e' 'd57c5432708b13f5d1ccbd5c67a49996' '3b5dd43a3d6be5f6d2612d4f850d3b63' @@ -49,7 +49,7 @@ md5sums=('44af65dbbd26126c4203a2d9c42c96d1' 'cee49c612b14edb3ae57d0e0b9329f3c') prepare() { - cd "${srcdir}"/${_realname}-${_realname}-${pkgver}-release + cd "${srcdir}"/${_realname}-${pkgver}-all patch -p1 -i ${srcdir}/001-WIN32-defines-instead-hardcoded-values.patch patch -p1 -i ${srcdir}/002-enable-C++11-if-compiler-supports-it.patch patch -p1 -i ${srcdir}/003-check-for-WIN64-and-enable-LLP64-schema.patch @@ -81,18 +81,20 @@ build() { CXXFLAGS+=" -std=c++11" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DPOCO_UNBUNDLED=ON \ -DENABLE_MONGODB=OFF \ - ../${_realname}-${_realname}-${pkgver}-release + ../${_realname}-${pkgver}-all make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install + make destdir=${pkgdir} install } diff --git a/mingw-w64-port-scanner/PKGBUILD b/mingw-w64-port-scanner/PKGBUILD index 6b14d1bf7f..4c91b5bee1 100644 --- a/mingw-w64-port-scanner/PKGBUILD +++ b/mingw-w64-port-scanner/PKGBUILD @@ -3,7 +3,7 @@ _realname=port-scanner pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.3 -pkgrel=1 +pkgrel=2 pkgdesc="A multi threaded TCP port scanner from SecPoint.com (mingw-w64)" arch=('any') url="https://www.secpoint.com/multi-threaded-tcp-port-scanner.html" diff --git a/mingw-w64-portablexdr/PKGBUILD b/mingw-w64-portablexdr/PKGBUILD index 2f4a0c1ff8..8b3a9888a7 100644 --- a/mingw-w64-portablexdr/PKGBUILD +++ b/mingw-w64-portablexdr/PKGBUILD @@ -3,7 +3,7 @@ _realname=portablexdr pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _base_ver=4.9.2 -pkgver=4.9.2.r26.0cea127 +pkgver=4.9.2.r27.94fb83c pkgrel=1 pkgdesc="PortableXDR / RPC Library (mingw-w64)" arch=(any) diff --git a/mingw-w64-portmidi/PKGBUILD b/mingw-w64-portmidi/PKGBUILD index 2daf3a0958..8e569856c2 100644 --- a/mingw-w64-portmidi/PKGBUILD +++ b/mingw-w64-portmidi/PKGBUILD @@ -3,7 +3,7 @@ _realname=portmidi pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=217 -pkgrel=1 +pkgrel=2 pkgdesc="Platform independent library for real-time MIDI input/output (mingw-w64)" arch=('any') url="http://portmedia.sourceforge.net/" @@ -28,10 +28,12 @@ build() { [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "build-${MINGW_CHOST}" cd "build-${MINGW_CHOST}" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -Wno-dev \ -G "MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX="${pkgdir}${MINGW_PREFIX}" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DJAVA_INCLUDE_PATH= \ -DJAVA_INCLUDE_PATH2= \ @@ -44,7 +46,7 @@ build() { package() { cd "build-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install # install executables for exe in latency.exe midiclock.exe midithread.exe midithru.exe mm.exe qtest.exe sysex.exe test.exe; do diff --git a/mingw-w64-premake/PKGBUILD b/mingw-w64-premake/PKGBUILD index 994965d45b..73245ebbd7 100644 --- a/mingw-w64-premake/PKGBUILD +++ b/mingw-w64-premake/PKGBUILD @@ -3,18 +3,18 @@ _realname=premake pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=4.3 -pkgrel=1 +pkgrel=2 pkgdesc="A build configuration tool. Describe your build using Lua and generate \ -the project files for your specific toolset." +the project files for your specific toolset (mingw-w64)" arch=('any') url="http://premake.sourceforge.net" license=('GPL') - +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=("http://downloads.sourceforge.net/sourceforge/premake/premake-${pkgver}-src.zip") md5sums=('8cfafee76f9665c93b2e9ad15b015eb7') build() { - cd "$srcdir/${_realname}-${pkgver}/build/gmake.windows" + cd "${srcdir}/${_realname}-${pkgver}/build/gmake.windows" CC=${MINGW_PREFIX}/bin/gcc make } diff --git a/mingw-w64-qhull-git/PKGBUILD b/mingw-w64-qhull-git/PKGBUILD index 97464ad966..e2906066c2 100644 --- a/mingw-w64-qhull-git/PKGBUILD +++ b/mingw-w64-qhull-git/PKGBUILD @@ -4,20 +4,21 @@ _realname=qhull pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgrel=2 pkgver=r113.60d5581 +pkgrel=3 provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgdesc="A general dimension code for computing convex hulls and related structures (mingw-w64)" arch=('any') -url="http://www.${_realname}.org/" +url="http://www.qhull.org/" license=('custom') options=('strip' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") -source=("$_realname"::"git://gitorious.org/qhull/qhull.git" +source=(#"${_realname}"::"git://gitorious.org/qhull/qhull.git" + "${_realname}"::"git+https://github.com/manctl/qhull.git" "0001-MSYS2-Adopt-FHS-layout-in-cmake.patch" "0002-MinGW-w64-64-bit-ptr_intT-fix.patch") sha1sums=('SKIP' @@ -38,9 +39,10 @@ prepare() { build() { mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBUILD_SHARED_LIBS=ON \ ../${_realname} @@ -49,7 +51,7 @@ build() { package() { cd "${srcdir}"/build-${CARCH} - make install # DESTDIR="${pkgdir}" + make DESTDIR="${pkgdir}" install pushd ${pkgdir}${MINGW_PREFIX}/lib >/dev/null if [ -f lib${_realname}static.a ]; then mv -f lib${_realname}static.a lib${_realname}.a diff --git a/mingw-w64-qscintilla/PKGBUILD b/mingw-w64-qscintilla/PKGBUILD index 75b116a8dd..a969a27fc9 100644 --- a/mingw-w64-qscintilla/PKGBUILD +++ b/mingw-w64-qscintilla/PKGBUILD @@ -5,7 +5,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}" "${MINGW_PACKAGE_PREFIX}-python-${_realname}-common") -pkgver=2.8.4 +pkgver=2.9 pkgrel=1 pkgdesc="A port to Qt5 of Neil Hodgson's Scintilla C++ editor class" arch=('any') @@ -20,9 +20,9 @@ source=("http://downloads.sourceforge.net/pyqt/QScintilla-gpl-${pkgver}.tar.gz" 'configure.py-objdir-support.diff' 'run-command-via-sh.patch' 'qmake-install-paths.patch') -md5sums=('28aec903ff48ae541295a4fb9c96f8ea' - 'e304f8cd5e3e7ded61eda15bf56613a8' - 'aede32ecf3b87525289799ba2da020bd' +md5sums=('24659879edf9786f41a9b9268ce3c817' + '7bc3d12ed0cb63970f2fcb18286da2d5' + '2349092e279c02963fc4e5a3cf4b1c63' '3bcc03bba331e21294f541078c0d9f3e') prepare() { diff --git a/mingw-w64-qscintilla/configure.py-objdir-support.diff b/mingw-w64-qscintilla/configure.py-objdir-support.diff index 6d2e708057..e0d4923f8f 100644 --- a/mingw-w64-qscintilla/configure.py-objdir-support.diff +++ b/mingw-w64-qscintilla/configure.py-objdir-support.diff @@ -7,15 +7,14 @@ Index: qscintilla2-2.8.3+dfsg/Python/configure.py =================================================================== --- qscintilla2-2.8.3+dfsg.orig/Python/configure.py 2014-07-05 10:02:02.318834374 -0400 +++ qscintilla2-2.8.3+dfsg/Python/configure.py 2014-07-05 10:02:02.306834375 -0400 -@@ -31,6 +31,8 @@ - import glob +@@ -32,6 +32,7 @@ import optparse + import sys +src_dir = os.path.dirname(os.path.abspath(__file__)) -+ - try: - import sysconfig - except ImportError: + + ############################################################################### + # You shouldn't need to modify anything above this line. @@ -210,6 +212,8 @@ "The QScintilla version number could not be determined by " "reading %s." % sciglobal) diff --git a/mingw-w64-qscintilla/run-command-via-sh.patch b/mingw-w64-qscintilla/run-command-via-sh.patch index a1a841ce5d..6e27f20aea 100644 --- a/mingw-w64-qscintilla/run-command-via-sh.patch +++ b/mingw-w64-qscintilla/run-command-via-sh.patch @@ -2,8 +2,8 @@ +++ QScintilla-gpl-2.8.4/Python/configure.py 2014-12-16 13:01:42.418000000 +0300 @@ -30,6 +30,7 @@ import os - import glob import optparse + import sys +from sysconfig import _POSIX_BUILD src_dir = os.path.dirname(os.path.abspath(__file__)) From 5ac0499457861cc7f42f26b5811386cc12f516c5 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 21 Jul 2015 01:14:21 +0300 Subject: [PATCH 1307/2060] Rebuild failures. --- ...-Use-unixy-filenames-even-on-Windows.patch | 18 +++--- mingw-w64-nim/PKGBUILD | 5 +- mingw-w64-nimble/PKGBUILD | 3 +- mingw-w64-ocaml-lablgtk/PKGBUILD | 13 +++-- mingw-w64-octave-hg/PKGBUILD | 22 +++---- mingw-w64-openocd-git/PKGBUILD | 27 +++++---- .../001-fhs-directory-structure.patch | 6 +- .../002-relocate-html-documentation.patch | 2 +- ...replace-batch-scripts-with-bare-perl.patch | 18 ++---- .../005-disable-custom-mkstemp.patch | 58 ------------------- mingw-w64-perl/PKGBUILD | 26 ++++----- mingw-w64-plplot/PKGBUILD | 24 ++++---- mingw-w64-qrupdate-svn/PKGBUILD | 8 +-- 13 files changed, 80 insertions(+), 150 deletions(-) delete mode 100644 mingw-w64-perl/005-disable-custom-mkstemp.patch diff --git a/mingw-w64-nim/0001-Use-unixy-filenames-even-on-Windows.patch b/mingw-w64-nim/0001-Use-unixy-filenames-even-on-Windows.patch index d327d828dd..fe6f43e59a 100644 --- a/mingw-w64-nim/0001-Use-unixy-filenames-even-on-Windows.patch +++ b/mingw-w64-nim/0001-Use-unixy-filenames-even-on-Windows.patch @@ -12,18 +12,18 @@ index c6cb3d2..b0e0862 100644 --- a/compiler/platform.nim +++ b/compiler/platform.nim @@ -43,9 +43,9 @@ const - parDir: "..", dllFrmt: "$1.dll", altDirSep: "/", objExt: ".obj", - newLine: "\x0D\x0A", pathSep: ";", dirSep: "\\", scriptExt: ".bat", - curDir: ".", exeExt: ".exe", extSep: ".", props: {ospCaseInsensitive}), -- (name: "Windows", parDir: "..", dllFrmt: "$1.dll", altDirSep: "/", -- objExt: ".obj", newLine: "\x0D\x0A", pathSep: ";", dirSep: "\\", -- scriptExt: ".bat", curDir: ".", exeExt: ".exe", extSep: ".", + parDir: "..", dllFrmt: "$1.dll", altDirSep: "/", objExt: ".obj", + newLine: "\x0D\x0A", pathSep: ";", dirSep: "\\", scriptExt: ".bat", + curDir: ".", exeExt: ".exe", extSep: ".", props: {ospCaseInsensitive}), +- (name: "Windows", parDir: "..", dllFrmt: "$1.dll", altDirSep: "/", +- objExt: ".obj", newLine: "\x0D\x0A", pathSep: ";", dirSep: "\\", +- scriptExt: ".bat", curDir: ".", exeExt: ".exe", extSep: ".", + (name: "Windows", parDir: "..", dllFrmt: "lib$1.dll", altDirSep: "/", + objExt: ".a", newLine: "\x0D\x0A", pathSep: ";", dirSep: "\\", + scriptExt: ".cmd", curDir: ".", exeExt: ".exe", extSep: ".", - props: {ospCaseInsensitive}), - (name: "OS2", parDir: "..", - dllFrmt: "$1.dll", altDirSep: "/", + props: {ospCaseInsensitive}), + (name: "OS2", parDir: "..", + dllFrmt: "$1.dll", altDirSep: "/", -- 1.9.4.msysgit.2 diff --git a/mingw-w64-nim/PKGBUILD b/mingw-w64-nim/PKGBUILD index da596500f7..3cc27c0162 100644 --- a/mingw-w64-nim/PKGBUILD +++ b/mingw-w64-nim/PKGBUILD @@ -3,9 +3,8 @@ # TODO: include more stuff from tools/? _realname=nim - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.10.2 +pkgver=0.11.2 pkgrel=1 pkgdesc='Imperative, multi-paradigm, compiled programming language (mingw-w64)' arch=('any') @@ -19,7 +18,7 @@ source=("${_realname}::git://github.com/Araq/Nim.git#tag=v${pkgver}" "0002-Recognize-mingw-in-build.sh.patch") md5sums=('SKIP' 'SKIP' - '4c1568c5ee3306ead0705432c22f8c78' + 'becec4d7ad692f113ab2a5fbbbadf27f' '0c13cf30e123b57d55d687cf18d5bf56') prepare() { diff --git a/mingw-w64-nimble/PKGBUILD b/mingw-w64-nimble/PKGBUILD index 67373f816f..22a80c226e 100644 --- a/mingw-w64-nimble/PKGBUILD +++ b/mingw-w64-nimble/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: David Macek _realname=nimble - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.6 +pkgver=0.6.2 pkgrel=1 pkgdesc='Package manager for the Nim programming language (mingw-w64)' arch=('any') diff --git a/mingw-w64-ocaml-lablgtk/PKGBUILD b/mingw-w64-ocaml-lablgtk/PKGBUILD index fc5bc6442d..ae3f024f18 100644 --- a/mingw-w64-ocaml-lablgtk/PKGBUILD +++ b/mingw-w64-ocaml-lablgtk/PKGBUILD @@ -3,23 +3,24 @@ _realname=ocaml-lablgtk pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.18.3 -pkgrel=1 +pkgrel=2 pkgdesc="An Ocaml interface to the GIMP Tool Kit (mingw-w64)" arch=('any') url='http://lablgtk.forge.ocamlcore.org/' license=('LGPL') -depends=("${MINGW_PACKAGE_PREFIX}-ocaml" - "${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-libglade" - "${MINGW_PACKAGE_PREFIX}-librsvg" +depends=("${MINGW_PACKAGE_PREFIX}-gtk2" "${MINGW_PACKAGE_PREFIX}-gtksourceview2" "${MINGW_PACKAGE_PREFIX}-gtkspell" + "${MINGW_PACKAGE_PREFIX}-libglade" + "${MINGW_PACKAGE_PREFIX}-libgnomecanvas" + "${MINGW_PACKAGE_PREFIX}-libglade" + "${MINGW_PACKAGE_PREFIX}-ocaml" "${MINGW_PACKAGE_PREFIX}-ocaml-findlib" ) makedepends=("${MINGW_PACKAGE_PREFIX}-flexdll" "${MINGW_PACKAGE_PREFIX}-ocaml-camlp4" "${MINGW_PACKAGE_PREFIX}-pkg-config") -source=("https://forge.ocamlcore.org/frs/download.php/1479/lablgtk-2.18.3.tar.gz" +source=("https://forge.ocamlcore.org/frs/download.php/1479/lablgtk-${pkgver}.tar.gz" "0001-Fix-a-path-issue-during-installation.patch") sha1sums=('b8ecc3b160fcbce73062f3bad23a2a3b1c2735d3' '8aae142b4c50038f9284c3427b22d75df6f3018e') diff --git a/mingw-w64-octave-hg/PKGBUILD b/mingw-w64-octave-hg/PKGBUILD index 82b7b18e1e..472175dfae 100644 --- a/mingw-w64-octave-hg/PKGBUILD +++ b/mingw-w64-octave-hg/PKGBUILD @@ -6,22 +6,22 @@ _realname=octave-hg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=r19590.6d75f1683ce8 pkgrel=1 -pkgdesc="A high-level language, primarily intended for numerical computations. (mingw-w64)" +pkgdesc="A high-level language, primarily intended for numerical computations (mingw-w64)" url="http://www.octave.org" arch=('any') license=('GPL') # Some of these may be optional, e.g. arpack, lapack, qhull, but if they # are installed, octave will be linked against them. -depends=("${MINGW_PACKAGE_PREFIX}-fftw>=3.2.2" +depends=("${MINGW_PACKAGE_PREFIX}-arpack" "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-fftw>=3.2.2" "${MINGW_PACKAGE_PREFIX}-fltk" - "${MINGW_PACKAGE_PREFIX}-hdf5" "${MINGW_PACKAGE_PREFIX}-glpk" - "${MINGW_PACKAGE_PREFIX}-arpack" "${MINGW_PACKAGE_PREFIX}-gl2ps" + "${MINGW_PACKAGE_PREFIX}-hdf5" + "${MINGW_PACKAGE_PREFIX}-qhull" "${MINGW_PACKAGE_PREFIX}-qrupdate" "${MINGW_PACKAGE_PREFIX}-qscintilla" - "${MINGW_PACKAGE_PREFIX}-qhull" "${MINGW_PACKAGE_PREFIX}-graphicsmagick") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran" 'pcre' @@ -55,10 +55,10 @@ md5sums=('SKIP' '1e0ee378516c514517f2e4649f171f98') _hgrepo=octave _appver=4.1.0+ -provides=("octave=$_appver") +provides=("${MINGW_PACKAGE_PREFIX}-octave=${_appver}") # pkgver() { -# cd $srcdir/${_hgrepo} +# cd ${srcdir}/${_hgrepo} # hg update > /dev/null # printf "r%s.%s" "$(hg identify -n)" "$(hg identify -i)" # } @@ -69,7 +69,7 @@ provides=("octave=$_appver") # } prepare() { - [ -d $srcdir/octave ] && rm -rf "${srcdir}"/octave + [[ -d ${srcdir}/octave ]] && rm -rf "${srcdir}"/octave mv "${srcdir}"/octave-* "${srcdir}"/octave cd "${srcdir}"/gnulib patch -p1 -i "${srcdir}"/0001-tempname.h-Rename-try-to-try_.patch @@ -81,13 +81,13 @@ prepare() { build() { cd "${srcdir}" - [ -d build-${CARCH} ] && rm -rf build-${CARCH} + [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} mkdir build-${CARCH} cd build-${CARCH} [[ $CARCH == "x86_64" ]] && _arch=amd64 [[ $CARCH == "i686" ]] && _arch=i386 CPPFLAGS+=" -D_POSIX -D_POSIX_C_SOURCE " \ - "${srcdir}"/${_hgrepo}/configure \ + "${srcdir}"/${_hgrepo}/configure \ --prefix=${MINGW_PREFIX} \ --enable-shared --enable-jit \ --enable-qhull --with-umfpack \ @@ -96,6 +96,6 @@ build() { } package() { - cd $srcdir/${_hgrepo}/build-${CARCH} + cd ${srcdir}/${_hgrepo}/build-${CARCH} make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-openocd-git/PKGBUILD b/mingw-w64-openocd-git/PKGBUILD index fe70fa18ec..bd6fa65ef5 100644 --- a/mingw-w64-openocd-git/PKGBUILD +++ b/mingw-w64-openocd-git/PKGBUILD @@ -32,24 +32,23 @@ prepare() { } build() { - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} cd "${srcdir}"/build-${CARCH} - local -a myconf - myconf+=(--prefix=${MINGW_PREFIX} - --{build,host}=${MINGW_CHOST} - --disable-dependency-tracking - --disable-werror - --enable-dummy - --enable-jtag_vpi - --enable-remote-bitbang - --enable-amtjtagaccel - --enable-gw16012 - --enable-parport - --enable-parport-giveio) + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --{build,host}=${MINGW_CHOST} \ + --disable-dependency-tracking \ + --disable-werror \ + --enable-dummy \ + --enable-jtag_vpi \ + --enable-remote-bitbang \ + --enable-amtjtagaccel \ + --enable-gw16012 \ + --enable-parport \ + --enable-parport-giveio - ../${_realname}/configure ${myconf[@]} make } diff --git a/mingw-w64-perl/001-fhs-directory-structure.patch b/mingw-w64-perl/001-fhs-directory-structure.patch index 0da294f648..aefc20d78c 100644 --- a/mingw-w64-perl/001-fhs-directory-structure.patch +++ b/mingw-w64-perl/001-fhs-directory-structure.patch @@ -181,8 +181,8 @@ diff -aur old/win32/makefile.mk 001/win32/makefile.mk @@ -44,6 +44,7 @@ # path that includes an arbitrary version string. # - #INST_VER *= \5.20.2 -+#INST_VER_PERL *= \perl-5.20.2 + #INST_VER *= \5.22.0 ++#INST_VER_PERL *= \perl-5.22.0 # # Comment this out if you DON'T want your perl installation to have @@ -211,7 +211,7 @@ diff -aur old/win32/makefile.mk 001/win32/makefile.mk @@ -1392,12 +1393,12 @@ copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5202delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5220delta.pod - $(PERLEXE) $(PL2BAT) $(UTILS) + $(PERLEXE) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. diff --git a/mingw-w64-perl/002-relocate-html-documentation.patch b/mingw-w64-perl/002-relocate-html-documentation.patch index 1d754d5a1c..c6ffc57264 100644 --- a/mingw-w64-perl/002-relocate-html-documentation.patch +++ b/mingw-w64-perl/002-relocate-html-documentation.patch @@ -4,7 +4,7 @@ diff -aur 001/win32/makefile.mk 002/win32/makefile.mk @@ -1349,7 +1349,7 @@ doc: $(PERLEXE) ..\pod\perltoc.pod - $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=$(HTMLDIR) \ + $(PERLEXE) ..\installhtml --podroot=.. --htmldir=$(HTMLDIR) \ - --podpath=pod:lib:utils --htmlroot="file://$(INST_HTML:s,:,|,)"\ + --podpath=pod:lib:utils --htmlroot="@PERL_RELOCATE_HTML@/share/doc/perl5" \ --recurse diff --git a/mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch b/mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch index 3d519beea1..c08f17d3d0 100644 --- a/mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch +++ b/mingw-w64-perl/003-replace-batch-scripts-with-bare-perl.patch @@ -32,7 +32,7 @@ diff -aur 002/win32/bin/search.pl 003/win32/bin/search.pl diff -aur 002/win32/makefile.mk 003/win32/makefile.mk --- 002/win32/makefile.mk 2015-01-05 20:37:54.890625000 -0200 +++ 003/win32/makefile.mk 2015-01-05 21:28:09.955078100 -0200 -@@ -723,43 +723,6 @@ +@@ -723,40 +723,6 @@ PERLDEP = perldll.def @@ -50,8 +50,8 @@ diff -aur 002/win32/makefile.mk 003/win32/makefile.mk - ..\utils\perlivp \ - ..\utils\libnetcfg \ - ..\utils\enc2xs \ +- ..\utils\encguess \ - ..\utils\piconv \ -- ..\utils\config_data \ - ..\utils\corelist \ - ..\utils\cpan \ - ..\utils\xsubpp \ @@ -64,9 +64,6 @@ diff -aur 002/win32/makefile.mk 003/win32/makefile.mk - ..\utils\shasum \ - ..\utils\instmodsh \ - ..\utils\json_pp \ -- ..\x2p\find2perl \ -- ..\x2p\psed \ -- ..\x2p\s2p \ - bin\exetype.pl \ - bin\runperl.pl \ - bin\pl2bat.pl \ @@ -79,15 +76,15 @@ diff -aur 002/win32/makefile.mk 003/win32/makefile.mk @@ -1393,7 +1356,6 @@ copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5202delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5220delta.pod - $(PERLEXE) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. -@@ -1530,7 +1492,44 @@ +@@ -1530,7 +1492,41 @@ + if exist $(PERLEXESTATIC) $(XCOPY) $(PERLEXESTATIC) $(INST_BIN)\*.* $(XCOPY) $(GLOBEXE) $(INST_BIN)\*.* if exist ..\perl*.pdb $(XCOPY) ..\perl*.pdb $(INST_BIN)\*.* - if exist ..\x2p\a2p.pdb $(XCOPY) ..\x2p\a2p.pdb $(INST_BIN)\*.* - $(XCOPY) bin\*.bat $(INST_SCRIPT)\*.* + $(XCOPY) ..\utils\h2ph $(INST_SCRIPT) + $(XCOPY) ..\utils\splain $(INST_SCRIPT) @@ -100,8 +97,8 @@ diff -aur 002/win32/makefile.mk 003/win32/makefile.mk + $(XCOPY) ..\utils\perlivp $(INST_SCRIPT) + $(XCOPY) ..\utils\libnetcfg $(INST_SCRIPT) + $(XCOPY) ..\utils\enc2xs $(INST_SCRIPT) ++ $(XCOPY) ..\utils\encguess $(INST_SCRIPT) + $(XCOPY) ..\utils\piconv $(INST_SCRIPT) -+ $(XCOPY) ..\utils\config_data $(INST_SCRIPT) + $(XCOPY) ..\utils\corelist $(INST_SCRIPT) + $(XCOPY) ..\utils\cpan $(INST_SCRIPT) + $(XCOPY) ..\utils\xsubpp $(INST_SCRIPT) @@ -114,9 +111,6 @@ diff -aur 002/win32/makefile.mk 003/win32/makefile.mk + $(XCOPY) ..\utils\shasum $(INST_SCRIPT) + $(XCOPY) ..\utils\instmodsh $(INST_SCRIPT) + $(XCOPY) ..\utils\json_pp $(INST_SCRIPT) -+ $(XCOPY) ..\x2p\find2perl $(INST_SCRIPT) -+ $(XCOPY) ..\x2p\psed $(INST_SCRIPT) -+ $(XCOPY) ..\x2p\s2p $(INST_SCRIPT) + $(XCOPY) bin\exetype.pl $(INST_SCRIPT) + $(XCOPY) bin\runperl.pl $(INST_SCRIPT) + $(XCOPY) bin\pl2bat.pl $(INST_SCRIPT) diff --git a/mingw-w64-perl/005-disable-custom-mkstemp.patch b/mingw-w64-perl/005-disable-custom-mkstemp.patch deleted file mode 100644 index 99bdc329bc..0000000000 --- a/mingw-w64-perl/005-disable-custom-mkstemp.patch +++ /dev/null @@ -1,58 +0,0 @@ -Author: Alexey Pavlov -diff -aur 004/win32/config.gc 005/win32/config.gc ---- 004/win32/config.gc -+++ 005/win32/config.gc -@@ -310,7 +310,7 @@ - d_mkdir='define' - d_mkdtemp='undef' - d_mkfifo='undef' --d_mkstemp='undef' -+d_mkstemp='define' - d_mkstemps='undef' - d_mktime64='undef' - d_mktime='define' -diff -aur 004/win32/config_H.gc 005/win32/config_H.gc ---- 004/win32/config_H.gc -+++ 005/win32/config_H.gc -@@ -1973,7 +1973,7 @@ - * available to exclusively create and open a uniquely named - * temporary file. - */ --/*#define HAS_MKSTEMP / **/ -+#define HAS_MKSTEMP /**/ - - /* HAS_MMAP: - * This symbol, if defined, indicates that the mmap system call is -diff -aur 004/win32/win32.c 005/win32/win32.c ---- 004/win32/win32.c -+++ 005/win32/win32.c -@@ -1142,6 +1142,7 @@ - * XXX this needs strengthening (for PerlIO) - * -- BKS, 11-11-200 - */ -+#if !defined(HAS_MKSTEMP) - int mkstemp(const char *path) - { - dTHX; -@@ -1162,6 +1163,7 @@ - goto retry; - return fd; - } -+#endif - - static long - find_pid(pTHX_ int pid) -diff -aur 004/win32/win32.h 005/win32/win32.h ---- 004/win32/win32.h -+++ 005/win32/win32.h -@@ -331,8 +331,10 @@ - #endif - extern char * getlogin(void); - extern int chown(const char *p, uid_t o, gid_t g); -+#if !defined(HAS_MKSTEMP) - extern int mkstemp(const char *path); - #endif -+#endif - - #undef Stat - #define Stat win32_stat diff --git a/mingw-w64-perl/PKGBUILD b/mingw-w64-perl/PKGBUILD index c4d691e3ec..955b4da8d2 100644 --- a/mingw-w64-perl/PKGBUILD +++ b/mingw-w64-perl/PKGBUILD @@ -6,9 +6,8 @@ url='http://www.perl.org' pkgdesc='A highly capable, feature-rich programming language (mingw-w64)' license=(GPL1+ Artistic1) arch=(any) -pkgver=5.20.2 +pkgver=5.22.0 pkgrel=1 - install="perl-${CARCH}.install" options=(staticlibs strip '!purge') pkgname="${MINGW_PACKAGE_PREFIX}-${_name}" @@ -21,24 +20,21 @@ source=("http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2" 001-fhs-directory-structure.patch 002-relocate-html-documentation.patch 003-replace-batch-scripts-with-bare-perl.patch - 004-fix-cpan-external-programs.patch - 005-disable-custom-mkstemp.patch) + 004-fix-cpan-external-programs.patch) -md5sums=('21062666f1c627aeb6dbff3c6952738b' - '366500bf825c66b58ee1289d85eb602a' - 'e5fcd10ee424f2f19188d0e63cf2305c' - '6957e0de21a2ee3318ef12bfce9ebe70' - 'cd49b29a251adcc21fe87c66110cdc3a' - '5c0ebe22ef7928a16c1597c2a62781ec') +md5sums=('f67b152160431b3180fb766bdc2d02e2' + '03f65d7a7751d8c850ca62d9c88b939c' + 'c13e4275aa8e819a319afddf73352318' + '51811b5b185394f9512b5470c2b623ca' + 'cd49b29a251adcc21fe87c66110cdc3a') prepare() { cd "${srcdir}/${_name}-${pkgver}" attrib.exe -r //s - patch -p1 < "${startdir}"/001-fhs-directory-structure.patch - patch -p1 < "${startdir}"/002-relocate-html-documentation.patch - patch -p1 < "${startdir}"/003-replace-batch-scripts-with-bare-perl.patch - patch -p1 < "${startdir}"/004-fix-cpan-external-programs.patch - patch -p1 < "${startdir}"/005-disable-custom-mkstemp.patch + patch -p1 -i "${srcdir}"/001-fhs-directory-structure.patch + patch -p1 -i "${srcdir}"/002-relocate-html-documentation.patch + patch -p1 -i "${srcdir}"/003-replace-batch-scripts-with-bare-perl.patch + patch -p1 -i "${srcdir}"/004-fix-cpan-external-programs.patch } _build() { diff --git a/mingw-w64-plplot/PKGBUILD b/mingw-w64-plplot/PKGBUILD index 7308134c88..8ca177d5b9 100644 --- a/mingw-w64-plplot/PKGBUILD +++ b/mingw-w64-plplot/PKGBUILD @@ -4,7 +4,7 @@ _realname=plplot pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.11.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Scientific plotting software (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" @@ -14,6 +14,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python2-numpy" "${MINGW_PACKAGE_PREFIX}-qhull" + "${MINGW_PACKAGE_PREFIX}-swig" "${MINGW_PACKAGE_PREFIX}-tk" "${MINGW_PACKAGE_PREFIX}-wxWidgets" ) @@ -36,21 +37,20 @@ prepare() { build() { # cmake's FindSWIG doesn't work properly on MSYS, # so we provide SWIG here - SWIG_EXECUTABLE_U=`type -p swig` - SWIG_EXECUTABLE=`cygpath -m ${SWIG_EXECUTABLE_U}`.exe - SWIG_DIR_U=`${SWIG_EXECUTABLE_U} -swiglib` - SWIG_DIR=`cygpath -m $SWIG_DIR_U` + SWIG_DIR_U=`${MINGW_PREFIX}/bin/swig -swiglib` + SWIG_DIR=`cygpath -m ${SWIG_DIR_U}` # cmake may be confused if there is a Windows installation # of the official Python MSI. Please do the Python-enabled # build only, if no official Python is installed. - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ - -DCMAKE_Fortran_COMPILER:PATH=${MINGW_PREFIX}/bin/gfortran.exe \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_Fortran_COMPILER=${MINGW_PREFIX}/bin/gfortran.exe \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_TESTING=OFF \ @@ -66,11 +66,11 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make install # DESTDIR="$pkgdir" + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname cp -pf ${srcdir}/${_realname}-${pkgver}/Copyright \ - ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} cp -pf ${srcdir}/${_realname}-${pkgver}/COPYING* \ - ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} } diff --git a/mingw-w64-qrupdate-svn/PKGBUILD b/mingw-w64-qrupdate-svn/PKGBUILD index b7deb9ac76..ebba9c6cc3 100644 --- a/mingw-w64-qrupdate-svn/PKGBUILD +++ b/mingw-w64-qrupdate-svn/PKGBUILD @@ -4,7 +4,7 @@ _realname=qrupdate pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}-svn pkgver=r28 -pkgrel=2 +pkgrel=3 pkgdesc="qrupdate is a Fortran library for fast updates of QR and Cholesky decompositions (mingw-w64)" arch=('any') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -18,7 +18,7 @@ source=("${_realname}::svn+http://svn.code.sf.net/p/qrupdate/code") md5sums=('SKIP') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" local ver="$(svnversion)" printf "r%s" "${ver//[[:alpha:]]}" } @@ -36,7 +36,7 @@ package() { mkdir -p ${pkgdir}${MINGW_PREFIX}/lib cp -pf lib${_realname}.dll ${pkgdir}${MINGW_PREFIX}/bin cp -pf lib${_realname}*.a ${pkgdir}${MINGW_PREFIX}/lib - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} cp -pf ${srcdir}/${_realname}/COPYING* \ - ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} } From 4608bb61293c4393e29731b7378831d6aac8c1af Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Tue, 21 Jul 2015 04:48:21 +0100 Subject: [PATCH 1308/2060] libunwind: new package for llvm (WIP) --- ...-libunwind-add-support-for-mingw-w64.patch | 95 +++++++++++++++++++ mingw-w64-libunwind-svn/PKGBUILD | 58 +++++++++++ 2 files changed, 153 insertions(+) create mode 100644 mingw-w64-libunwind-svn/0001-libunwind-add-support-for-mingw-w64.patch create mode 100644 mingw-w64-libunwind-svn/PKGBUILD diff --git a/mingw-w64-libunwind-svn/0001-libunwind-add-support-for-mingw-w64.patch b/mingw-w64-libunwind-svn/0001-libunwind-add-support-for-mingw-w64.patch new file mode 100644 index 0000000000..b166652940 --- /dev/null +++ b/mingw-w64-libunwind-svn/0001-libunwind-add-support-for-mingw-w64.patch @@ -0,0 +1,95 @@ +From 743ea40504006f0123d6b2913862ec1d3df13bf2 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Tue, 21 Jul 2015 04:35:55 +0100 +Subject: [PATCH] libunwind add support for mingw-w64 + + +diff --git a/src/AddressSpace.hpp b/src/AddressSpace.hpp +index 567cbda..de68ca4 100644 +--- a/src/AddressSpace.hpp ++++ b/src/AddressSpace.hpp +@@ -18,7 +18,7 @@ + #include + #include + +-#ifndef _LIBUNWIND_IS_BAREMETAL ++#if !defined(_LIBUNWIND_IS_BAREMETAL) && !defined(_WIN32) + #include + #endif + +@@ -434,6 +434,7 @@ inline bool LocalAddressSpace::findUnwindSections(pint_t targetAddr, + }, + &cb_data); + return static_cast(found); ++#elif defined(_WIN32) + #else + #error "_LIBUNWIND_SUPPORT_DWARF_UNWIND requires _LIBUNWIND_SUPPORT_DWARF_INDEX on this platform." + #endif +@@ -457,7 +458,9 @@ inline bool LocalAddressSpace::findOtherFDE(pint_t targetAddr, pint_t &fde) { + inline bool LocalAddressSpace::findFunctionName(pint_t addr, char *buf, + size_t bufLen, + unw_word_t *offset) { +-#ifndef _LIBUNWIND_IS_BAREMETAL ++#ifdef _WIN32 ++// FIXME: support DLLs on Windows. ++#elif !defined(_LIBUNWIND_IS_BAREMETAL) + Dl_info dyldInfo; + if (dladdr((void *)addr, &dyldInfo)) { + if (dyldInfo.dli_sname != NULL) { +diff --git a/src/UnwindLevel1-gcc-ext.c b/src/UnwindLevel1-gcc-ext.c +index 28ba092..0decf77 100644 +--- a/src/UnwindLevel1-gcc-ext.c ++++ b/src/UnwindLevel1-gcc-ext.c +@@ -29,7 +29,7 @@ + _LIBUNWIND_EXPORT _Unwind_Reason_Code + _Unwind_Resume_or_Rethrow(_Unwind_Exception *exception_object) { + #if _LIBUNWIND_ARM_EHABI +- _LIBUNWIND_TRACE_API("_Unwind_Resume_or_Rethrow(ex_obj=%p), private_1=%ld\n", ++ _LIBUNWIND_TRACE_API("_Unwind_Resume_or_Rethrow(ex_obj=%p), private_1=%" PRIdPTR "\n", + (void *)exception_object, + (long)exception_object->unwinder_cache.reserved1); + #else +diff --git a/src/assembly.h b/src/assembly.h +index f46a24d..4d6c3e1 100644 +--- a/src/assembly.h ++++ b/src/assembly.h +@@ -26,6 +26,8 @@ + + #if defined(__APPLE__) + #define HIDDEN_DIRECTIVE .private_extern ++#elif defined(_WIN32) ++#define HIDDEN_DIRECTIVE .globl + #else + #define HIDDEN_DIRECTIVE .hidden + #endif +diff --git a/src/config.h b/src/config.h +index c9ec087..6f14e92 100644 +--- a/src/config.h ++++ b/src/config.h +@@ -60,6 +60,23 @@ + #define _LIBUNWIND_SUPPORT_DWARF_INDEX 0 + #endif + ++#elif defined(_WIN32) ++ // Note! the assembler files must be .S and not .s. ++ #define _LIBUNWIND_BUILD_ZERO_COST_APIS 1 ++ ++ // #define _LIBUNWIND_BUILD_SJLJ_APIS ++ // #define _LIBUNWIND_SUPPORT_FRAME_APIS ++ #define _LIBUNWIND_EXPORT ++ #define _LIBUNWIND_HIDDEN ++ #define _LIBUNWIND_LOG(msg, ...) fprintf(stderr, "libuwind: " msg, __VA_ARGS__) ++ #define _LIBUNWIND_ABORT(msg) do { fprintf(stderr, msg); abort(); } while(0) ++ #define _LIBUNWIND_SUPPORT_COMPACT_UNWIND 1 ++ #define _LIBUNWIND_SUPPORT_DWARF_UNWIND 1 ++ // #define _LIBUNWIND_SUPPORT_DWARF_INDEX ++ #define bzero(s,n) memset(s,0,n) ++ // libcxx may have defined __USE_MINGW_ANSI_STDIO. ++ // Here we would like to get the regular versions, not the _mingw ones. ++ #undef __USE_MINGW_ANSI_STDIO + #else + #include + +-- +2.4.5 + diff --git a/mingw-w64-libunwind-svn/PKGBUILD b/mingw-w64-libunwind-svn/PKGBUILD new file mode 100644 index 0000000000..1f8c050588 --- /dev/null +++ b/mingw-w64-libunwind-svn/PKGBUILD @@ -0,0 +1,58 @@ +# Maintainer: Martell Malone + +_realname=libunwind +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" +pkgver=17.6127858 +pkgrel=1 +pkgdesc='A new implementation of a stack unwinder for C++ exceptions' +url='http://llvm.org' +license=('custom:University of Illinois/NCSA Open Source License') +arch=('any') + +source=("libunwind"::"git+http://llvm.org/git/libunwind.git" + 0001-libunwind-add-support-for-mingw-w64.patch) + +md5sums=('SKIP' + '5ec4328ed8c8d5755ebc92650ce582fa') + +pkgver_internal() { + if [ ! -d "$1" ]; then + plain "No such directory $1" + exit 1 + fi + pushd "$1" > /dev/null 2>&1 + printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + popd > /dev/null 2>&1 +} + +pkgver() { + pkgver_internal "${srcdir}"/libunwind +} + +prepare() { + cd ${srcdir}/libunwind +# git am "${srcdir}/"0001-libunwind-add-support-for-mingw-w64.patch +} + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DLLVM_CONFIG="${MINGW_PREFIX}/bin/llvm-config.exe" \ + -DCMAKE_C_COMPILER="${MINGW_PREFIX}/bin/gcc.exe" \ + -DCMAKE_CXX_COMPILER="${MINGW_PREFIX}/bin/g++.exe" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DLIBUNWIND_ENABLE_SHARED=OFF \ + ../libunwind + make + +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make -j1 DESTDIR="$pkgdir" install +} From 4858179222ef0590e33edeff5af8839984ec3080 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Tue, 21 Jul 2015 05:10:01 +0100 Subject: [PATCH 1309/2060] libunwind: add support for building under x64 --- ...-libunwind-add-support-for-mingw-w64.patch | 35 +++++++++++++++++-- mingw-w64-libunwind-svn/PKGBUILD | 6 ++-- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/mingw-w64-libunwind-svn/0001-libunwind-add-support-for-mingw-w64.patch b/mingw-w64-libunwind-svn/0001-libunwind-add-support-for-mingw-w64.patch index b166652940..9a9a73e7eb 100644 --- a/mingw-w64-libunwind-svn/0001-libunwind-add-support-for-mingw-w64.patch +++ b/mingw-w64-libunwind-svn/0001-libunwind-add-support-for-mingw-w64.patch @@ -1,11 +1,24 @@ -From 743ea40504006f0123d6b2913862ec1d3df13bf2 Mon Sep 17 00:00:00 2001 +From 81b5dabfed88d2976faf587598361c054630ef95 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Tue, 21 Jul 2015 04:35:55 +0100 Subject: [PATCH] libunwind add support for mingw-w64 +diff --git a/include/unwind.h b/include/unwind.h +index 31fb871..e8c63d7 100644 +--- a/include/unwind.h ++++ b/include/unwind.h +@@ -121,7 +121,7 @@ struct _Unwind_Exception { + _Unwind_Exception *exc); + uintptr_t private_1; // non-zero means forced unwind + uintptr_t private_2; // holds sp that phase1 found for phase2 to use +-#ifndef __LP64__ ++#if !defined(__LP64__) && !defined(_WIN64) + // The gcc implementation of _Unwind_Exception used attribute mode on the + // above fields which had the side effect of causing this whole struct to + // round up to 32 bytes in size. To be more explicit, we add pad fields diff --git a/src/AddressSpace.hpp b/src/AddressSpace.hpp -index 567cbda..de68ca4 100644 +index 567cbda..fd0b233 100644 --- a/src/AddressSpace.hpp +++ b/src/AddressSpace.hpp @@ -18,7 +18,7 @@ @@ -17,6 +30,24 @@ index 567cbda..de68ca4 100644 #include #endif +@@ -104,7 +104,7 @@ struct UnwindInfoSections { + /// making local unwinds fast. + class __attribute__((visibility("hidden"))) LocalAddressSpace { + public: +-#ifdef __LP64__ ++#if defined(__LP64__) || defined(_WIN64) + typedef uint64_t pint_t; + typedef int64_t sint_t; + #else +@@ -156,7 +156,7 @@ public: + }; + + inline uintptr_t LocalAddressSpace::getP(pint_t addr) { +-#ifdef __LP64__ ++#if defined(__LP64__) || defined(_WIN64) + return get64(addr); + #else + return get32(addr); @@ -434,6 +434,7 @@ inline bool LocalAddressSpace::findUnwindSections(pint_t targetAddr, }, &cb_data); diff --git a/mingw-w64-libunwind-svn/PKGBUILD b/mingw-w64-libunwind-svn/PKGBUILD index 1f8c050588..bdef2839db 100644 --- a/mingw-w64-libunwind-svn/PKGBUILD +++ b/mingw-w64-libunwind-svn/PKGBUILD @@ -8,12 +8,12 @@ pkgdesc='A new implementation of a stack unwinder for C++ exceptions' url='http://llvm.org' license=('custom:University of Illinois/NCSA Open Source License') arch=('any') - +makedepends=("${MINGW_PACKAGE_PREFIX}-llvm") source=("libunwind"::"git+http://llvm.org/git/libunwind.git" 0001-libunwind-add-support-for-mingw-w64.patch) md5sums=('SKIP' - '5ec4328ed8c8d5755ebc92650ce582fa') + 'bf4b1d784310e6a38886a47e0a065e61') pkgver_internal() { if [ ! -d "$1" ]; then @@ -31,7 +31,7 @@ pkgver() { prepare() { cd ${srcdir}/libunwind -# git am "${srcdir}/"0001-libunwind-add-support-for-mingw-w64.patch + git am "${srcdir}/"0001-libunwind-add-support-for-mingw-w64.patch } build() { From 98214961bb7e36679fc5c82358e501e005862e50 Mon Sep 17 00:00:00 2001 From: Mark Laws Date: Sun, 19 Jul 2015 08:07:47 +0900 Subject: [PATCH 1310/2060] libtool: fix tests --- mingw-w64-libtool/0008-tests.patch | 132 +++++++++++++++++++++++++++++ mingw-w64-libtool/PKGBUILD | 12 ++- 2 files changed, 142 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-libtool/0008-tests.patch diff --git a/mingw-w64-libtool/0008-tests.patch b/mingw-w64-libtool/0008-tests.patch new file mode 100644 index 0000000000..a07b682fdb --- /dev/null +++ b/mingw-w64-libtool/0008-tests.patch @@ -0,0 +1,132 @@ +diff -Naur libtool-2.4.6-old/tests/demo.at libtool-2.4.6/tests/demo.at +--- libtool-2.4.6-old/tests/demo.at 2015-01-17 03:52:04.000000000 +0900 ++++ libtool-2.4.6/tests/demo.at 2015-07-14 13:39:52.802179800 +0900 +@@ -271,6 +271,13 @@ + + #define lt_preloaded_symbols lt__PROGRAM__LTX_preloaded_symbols + ++#if defined(__MINGW64__) && defined(__x86_64__) && \ ++ !defined(LT_MINGW_STATIC_TESTSUITE_HACK) ++#define NOTHING "__nm_nothing" ++#else ++#define NOTHING "nothing" ++#endif ++ + typedef struct + { + const char *name; +@@ -301,7 +308,7 @@ + phello = (int(*)())s->address; + else if (STREQ ("foo", name)) + pfoo = (int(*)())s->address; +- else if (STREQ ("nothing", name)) ++ else if (STREQ (NOTHING, name)) + #ifndef _WIN32 + /* In an ideal world we could do this... */ + pnothing = (int*)s->address; +diff -Naur libtool-2.4.6-old/m4/ltoptions.m4 libtool-2.4.6/m4/ltoptions.m4 +--- libtool-2.4.6-old/m4/ltoptions.m4 2015-01-17 03:52:04.000000000 +0900 ++++ libtool-2.4.6/m4/ltoptions.m4 2015-07-14 12:57:21.299381300 +0900 +@@ -170,7 +170,11 @@ + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; +- no) enable_shared=no ;; ++ no) ++ enable_shared=no ++ AC_DEFINE([LT_MINGW_STATIC_TESTSUITE_HACK], [1], ++ [Define if running the test suite so that test #27 works on MinGW.]) ++ ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. +diff -Naur libtool-2.4.6-old/tests/testsuite.at libtool-2.4.6/tests/testsuite.at +--- libtool-2.4.6-old/tests/testsuite.at 2015-01-21 00:24:15.000000000 +0900 ++++ libtool-2.4.6/tests/testsuite.at 2015-07-14 16:35:02.495236200 +0900 +@@ -320,6 +320,8 @@ + # to unify different possible exit status values. + m4_define([LT_AT_EXEC_CHECK], + [lt_exe=$1; if test -f "$1$EXEEXT"; then lt_exe=$lt_exe$EXEEXT; fi ++m4_ifval([$3], [m4_if([$3], [ignore], [], [LT_AT_UNIFY_NL([$3])])]) ++m4_ifval([$4], [m4_if([$4], [ignore], [], [LT_AT_UNIFY_NL([$4])])]) + AT_CHECK([if "$lt_exe" $5; then :; else lt_status=$?; ]dnl + [ m4_ifval([$2], [test "$lt_status" != $2 && ])]dnl + [ test "X$host" != "X$build" && test -x "$lt_exe" && exit 77; ]dnl +@@ -339,6 +341,8 @@ + # to unify different possible exit status values. + m4_define([LT_AT_NOINST_EXEC_CHECK], + [lt_exe=$1; if test -f "$1$EXEEXT"; then lt_exe=$lt_exe$EXEEXT; fi ++m4_ifval([$4], [m4_if([$4], [ignore], [], [LT_AT_UNIFY_NL([$4])])]) ++m4_ifval([$5], [m4_if([$5], [ignore], [], [LT_AT_UNIFY_NL([$5])])]) + AT_CHECK([if $LIBTOOL --mode=execute $2 "$lt_exe" $6; then :; else lt_status=$?; ]dnl + [ m4_ifval([$3], [test "$lt_status" != $3 && ])]dnl + [ test "X$host" != "X$build" && test -x "$lt_exe" && exit 77; ]dnl +diff -Naur libtool-2.4.6-old/build-aux/ltmain.in libtool-2.4.6/build-aux/ltmain.in +--- libtool-2.4.6-old/build-aux/ltmain.in 2015-02-06 21:57:56.000000000 +0900 ++++ libtool-2.4.6/build-aux/ltmain.in 2015-07-18 05:47:02.820124000 +0900 +@@ -3054,7 +3054,7 @@ + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in +- *MS\ Windows\ PE\ Intel*) ++ *PE32*Intel\ 80386,\ for\ MS\ Windows*) + win32_libid_type="x86 DLL" + ;; + esac +diff -Naur libtool-2.4.6-old/tests/mdemo.at libtool-2.4.6/tests/mdemo.at +--- libtool-2.4.6-old/tests/mdemo.at 2015-01-17 03:52:04.000000000 +0900 ++++ libtool-2.4.6/tests/mdemo.at 2015-07-19 05:21:53.373111100 +0900 +@@ -342,6 +342,10 @@ + [[#include + #include + #include ++/* XXX needed for i386 crash-at-exit workaround on mingw-w64 */ ++#ifdef __MINGW32__ ++#include ++#endif + + #include "foo.h" + #include "ltdl.h" +@@ -573,6 +577,12 @@ + } + + lt_dlexit(); ++ /* XXX this test crashes at exit, but only on i386; should figure out why */ ++#ifdef __MINGW32__ ++ fflush(stdout); ++ fflush(stderr); ++ _exit(ret); ++#endif + return ret; + } + ]]) +diff -Naur libtool-2.4.6-old/tests/darwin.at libtool-2.4.6/tests/darwin.at +--- libtool-2.4.6-old/tests/darwin.at 2015-07-19 06:01:21.670510000 +0900 ++++ libtool-2.4.6/tests/darwin.at 2015-07-19 06:10:41.764128900 +0900 +@@ -101,7 +101,10 @@ + + + AT_SETUP([darwin concurrent library extraction]) +- ++AT_CHECK([case $host_os in ++darwin*) ;; ++*) exit 77 ;; ++esac]) + AT_DATA([foo.c], [[ + int foo (void) { return 0; } + ]]) +diff -Naur libtool-2.4.6-old/tests/cmdline_wrap.at libtool-2.4.6/tests/cmdline_wrap.at +--- libtool-2.4.6-old/tests/cmdline_wrap.at 2015-01-17 03:52:04.000000000 +0900 ++++ libtool-2.4.6/tests/cmdline_wrap.at 2015-07-19 08:01:45.110423400 +0900 +@@ -27,6 +27,11 @@ + + AT_SETUP([Run tests with low max_cmd_len]) + AT_KEYWORDS([recursive expensive]) ++dnl XXX some of the tests run by this test fail on mingw-w64; how to fix? ++AT_CHECK([case $host_os in ++mingw*) exit 77 ;; ++*) ;; ++esac]) + dnl If we already have failures, then reruns will fail too! + fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do test -f "$f" && echo "$f"; done` + echo "DEBUG: fail_list='$fail_list'" diff --git a/mingw-w64-libtool/PKGBUILD b/mingw-w64-libtool/PKGBUILD index 78b07a54a9..2f07728485 100644 --- a/mingw-w64-libtool/PKGBUILD +++ b/mingw-w64-libtool/PKGBUILD @@ -17,14 +17,16 @@ source=("http://ftp.gnu.org/pub/gnu/libtool/${_realname}-${pkgver}.tar.xz"{,.sig 0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch 0005-Fix-seems-to-be-moved.patch 0006-Fix-strict-ansi-vs-posix.patch - 0007-fix-cr-for-awk-in-configure.all.patch) + 0007-fix-cr-for-awk-in-configure.all.patch + 0008-tests.patch) md5sums=('1bfb9b923f2c1339b4d2ce1807064aa5' 'SKIP' '091163f2cc8c2dd8c8d5574181eb53e1' '2396f4f169edb316d8d076897ff03347' 'bb4e559afa91865c0f9e489e19507922' 'cfc5378b9d8ac56800489841b8b90101' - '2200a7e2cfa8f5f3f9811f03ed41c46a') + '2200a7e2cfa8f5f3f9811f03ed41c46a' + '06762c5fdd0f3b57eec2cc02dafdbb68') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -33,6 +35,7 @@ prepare() { patch -p1 -i ${srcdir}/0005-Fix-seems-to-be-moved.patch patch -p1 -i ${srcdir}/0006-Fix-strict-ansi-vs-posix.patch patch -p1 -i ${srcdir}/0007-fix-cr-for-awk-in-configure.all.patch + patch -p1 -i ${srcdir}/0008-tests.patch } build() { @@ -46,6 +49,11 @@ build() { make } +#check() { +# cd ${srcdir}/build-${MINGW_CHOST} +# make check +#} + package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install From e73b09fe510cf27f14e861467658149121d6baa1 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 21 Jul 2015 15:10:13 +0300 Subject: [PATCH 1311/2060] WIP update to gcc-5.x --- mingw-w64-gplugin/PKGBUILD | 24 +++---- mingw-w64-gst-python-git/PKGBUILD | 56 ----------------- ...ython3-config-returns-1-so-use-which.patch | 0 .../0002-msys2-fix-linking-errors.patch | 4 +- mingw-w64-gst-python/0004-add-overrides.patch | 48 ++++++++++++++ .../0005-unix-override-dir.patch | 14 +++++ .../0006-plugin-libtool.patch | 10 +++ mingw-w64-gst-python/PKGBUILD | 62 +++++++++++++++++++ 8 files changed, 149 insertions(+), 69 deletions(-) delete mode 100644 mingw-w64-gst-python-git/PKGBUILD rename {mingw-w64-gst-python-git => mingw-w64-gst-python}/0001-msys2-python3-config-returns-1-so-use-which.patch (100%) rename {mingw-w64-gst-python-git => mingw-w64-gst-python}/0002-msys2-fix-linking-errors.patch (91%) create mode 100644 mingw-w64-gst-python/0004-add-overrides.patch create mode 100644 mingw-w64-gst-python/0005-unix-override-dir.patch create mode 100644 mingw-w64-gst-python/0006-plugin-libtool.patch create mode 100644 mingw-w64-gst-python/PKGBUILD diff --git a/mingw-w64-gplugin/PKGBUILD b/mingw-w64-gplugin/PKGBUILD index 908b2aa105..ce9c892d0a 100644 --- a/mingw-w64-gplugin/PKGBUILD +++ b/mingw-w64-gplugin/PKGBUILD @@ -3,7 +3,7 @@ _realname=gplugin pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.0.21 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A GObject based library that implements a reusable plugin system (mingw-w64)" license=("LGPL 2") @@ -34,27 +34,29 @@ build() { MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ + -G "MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DCMAKE_C_FLAGS="${CFLAGS}" \ - -DBUILD_GJS="Off" \ - -DBUILD_LUA="Off" \ - -DBUILD_PYTHON="Off" \ - -DBUILD_SEED="Off" \ - -DTESTING_ENABLED="Off" \ - -G "MSYS Makefiles" \ + -DBUILD_GJS=OFF \ + -DBUILD_LUA=OFF \ + -DBUILD_PYTHON=OFF \ + -DBUILD_SEED=OFF \ + -DTESTING_ENABLED=OFF \ + -DBUILD_GIR=OFF \ ../rw_grim-gplugin-* - make -j1 + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR=${pkgdir} install - install -Dm644 "${srcdir}/rw_grim-gplugin-*/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} + cp ${srcdir}/rw_grim-gplugin-*/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING - mv "${pkgdir}${MINGW_PREFIX}/lib/libgplugin.dll" "${pkgdir}${MINGW_PREFIX}/bin" - mv "${pkgdir}${MINGW_PREFIX}/lib/libgplugin-gtk.dll" "${pkgdir}${MINGW_PREFIX}/bin" + mv "${pkgdir}${MINGW_PREFIX}"/lib/libgplugin.dll "${pkgdir}${MINGW_PREFIX}"/bin/ + mv "${pkgdir}${MINGW_PREFIX}"/lib/libgplugin-gtk.dll "${pkgdir}${MINGW_PREFIX}"/bin/ } diff --git a/mingw-w64-gst-python-git/PKGBUILD b/mingw-w64-gst-python-git/PKGBUILD deleted file mode 100644 index 60e07d2248..0000000000 --- a/mingw-w64-gst-python-git/PKGBUILD +++ /dev/null @@ -1,56 +0,0 @@ -# Maintainer: Lubosz Sarnecki - -_realname=gst-python -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.3.0.1.1283.3483187 -pkgrel=1 -pkgdesc='GStreamer GObject Introspection overrides for Python 3' -arch=('any') -license=('LGPL') -depends=("${MINGW_PACKAGE_PREFIX}-gstreamer" - "${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection") -makedepends=('git') -url='http://gstreamer.freedesktop.org/modules/gst-python.html' -options=(!libtool strip staticlibs) - -source=("git://anongit.freedesktop.org/gstreamer/${_realname}" - '0001-msys2-python3-config-returns-1-so-use-which.patch' - '0002-msys2-fix-linking-errors.patch') -md5sums=('SKIP' - 'eb52a3ef8270c2d263c79799bcaf377a' - 'a1d96c7bf521664a76d424c1b9250ea8') - -pkgver() { - cd $_realname - version=$(grep AC_INIT configure.ac | sed 's/AC_INIT(GStreamer GObject Introspection overrides for Python , //' | sed 's/,//') - hash=$(git log --pretty=format:'%h' -n 1) - revision=$(git rev-list --count HEAD) - echo $version.$revision.$hash -} - -prepare() { - cd $_realname - git am ../0001-msys2-python3-config-returns-1-so-use-which.patch - git am ../0002-msys2-fix-linking-errors.patch - NOCONFIGURE=1 ./autogen.sh -} - -build() { - cd $_realname - PYTHON=${MINGW_PREFIX}/bin/python3 \ - ./autogen.sh --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ - --disable-silent-rules - make -} - -package() { - cd $_realname - make DESTDIR="$pkgdir" install -} - diff --git a/mingw-w64-gst-python-git/0001-msys2-python3-config-returns-1-so-use-which.patch b/mingw-w64-gst-python/0001-msys2-python3-config-returns-1-so-use-which.patch similarity index 100% rename from mingw-w64-gst-python-git/0001-msys2-python3-config-returns-1-so-use-which.patch rename to mingw-w64-gst-python/0001-msys2-python3-config-returns-1-so-use-which.patch diff --git a/mingw-w64-gst-python-git/0002-msys2-fix-linking-errors.patch b/mingw-w64-gst-python/0002-msys2-fix-linking-errors.patch similarity index 91% rename from mingw-w64-gst-python-git/0002-msys2-fix-linking-errors.patch rename to mingw-w64-gst-python/0002-msys2-fix-linking-errors.patch index ccfa434bb5..3eedeb909d 100644 --- a/mingw-w64-gst-python-git/0002-msys2-fix-linking-errors.patch +++ b/mingw-w64-gst-python/0002-msys2-fix-linking-errors.patch @@ -20,7 +20,7 @@ index ee94f7c..4f04707 100644 common_cflags = $(PYGOBJECT_CFLAGS) $(GST_CFLAGS) -fno-strict-aliasing -common_libadd = $(GST_LIBS) $(PYGOBJECT_LIBS) -common_ldflags = -module -avoid-version -shrext $(PYTHON_SO) -+common_libadd = $(GST_LIBS) $(PYGOBJECT_LIBS) -lpython3.4m ++common_libadd = $(PYTHON_LIBS) $(GST_LIBS) $(PYGOBJECT_LIBS) +common_ldflags = -module -avoid-version -no-undefined -shrext $(PYTHON_SO) # We install everything in the gi/overrides folder @@ -36,7 +36,7 @@ index 042c2bc..4a9b60d 100644 -libgstpythonplugin_la_LDFLAGS = -avoid-version -libgstpythonplugin_la_LIBADD = $(PYTHON_LIBS) $(PYGOBJECT_LIBS) $(GST_LIBS) +libgstpythonplugin_la_LDFLAGS = -avoid-version -no-undefined -+libgstpythonplugin_la_LIBADD = $(PYTHON_LIBS) $(PYGOBJECT_LIBS) $(GST_LIBS) -lgmodule-2.0 ++libgstpythonplugin_la_LIBADD = $(PYTHON_LIBS) $(GST_LIBS) $(PYGOBJECT_LIBS) libgstpythonplugin_la_CFLAGS = $(GST_CFLAGS) $(PYGOBJECT_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(PYTHON_INCLUDES) -- 2.0.4 diff --git a/mingw-w64-gst-python/0004-add-overrides.patch b/mingw-w64-gst-python/0004-add-overrides.patch new file mode 100644 index 0000000000..0cf41006bc --- /dev/null +++ b/mingw-w64-gst-python/0004-add-overrides.patch @@ -0,0 +1,48 @@ +diff --git a/gi/__init__.py b/gi/__init__.py +new file mode 100644 +index 0000000..09d180b +--- /dev/null ++++ b/gi/__init__.py +@@ -0,0 +1,29 @@ ++#!/usr/bin/env python ++# ++# __init__.py ++# ++# Copyright (C) 2012 Thibault Saunier ++# ++# This program is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with this program; if not, write to the ++# Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++# Boston, MA 02111-1307, USA. ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3, or (at your option) ++# any later version. ++ ++ ++from pkgutil import extend_path ++ ++__path__ = extend_path(__path__, __name__) +diff --git a/gi/overrides/__init__.py b/gi/overrides/__init__.py +new file mode 100644 +index 0000000..802630a +--- /dev/null ++++ b/gi/overrides/__init__.py +@@ -0,0 +1,4 @@ ++from pkgutil import extend_path ++ ++__path__ = extend_path(__path__, __name__) ++print __path__, __name__ +-- +cgit v0.10.2 + diff --git a/mingw-w64-gst-python/0005-unix-override-dir.patch b/mingw-w64-gst-python/0005-unix-override-dir.patch new file mode 100644 index 0000000000..2ae86f8b86 --- /dev/null +++ b/mingw-w64-gst-python/0005-unix-override-dir.patch @@ -0,0 +1,14 @@ +--- gst-python-1.4.0/configure.ac.orig 2015-07-21 14:34:06.163625200 +0300 ++++ gst-python-1.4.0/configure.ac 2015-07-21 14:34:25.981643200 +0300 +@@ -101,11 +101,7 @@ + + AC_MSG_CHECKING(for pygobject overrides directory) + if test "x$with_pygi_overrides_dir" = "x" ; then +- overrides_dir="`$PYTHON -c 'import gi; print(gi._overridesdir)' 2>/dev/null`" +- # fallback if the previous failed +- if test "x$overrides_dir" = "x" ; then + overrides_dir="${pyexecdir}/gi/overrides" +- fi + else + overrides_dir="$with_pygi_overrides_dir" + fi diff --git a/mingw-w64-gst-python/0006-plugin-libtool.patch b/mingw-w64-gst-python/0006-plugin-libtool.patch new file mode 100644 index 0000000000..18fc51f939 --- /dev/null +++ b/mingw-w64-gst-python/0006-plugin-libtool.patch @@ -0,0 +1,10 @@ +--- gst-python-1.4.0/plugin/Makefile.am.orig 2015-07-21 14:56:42.175010500 +0300 ++++ gst-python-1.4.0/plugin/Makefile.am 2015-07-21 14:57:19.383289300 +0300 +@@ -1,4 +1,6 @@ +-plugin_LTLIBRARIES = libgstpythonplugin.la ++plugindir = $(PLUGINDIR) ++pluginexecdir = $(PLUGINDIR) ++pluginexec_LTLIBRARIES = libgstpythonplugin.la + + INCLUDES = $(PYGOBJECT_CFLAGS) $(GST_CFLAGS)\ + -DPYTHON_VERSION=\"$(PYTHON_VERSION)\" \ diff --git a/mingw-w64-gst-python/PKGBUILD b/mingw-w64-gst-python/PKGBUILD new file mode 100644 index 0000000000..98621e8783 --- /dev/null +++ b/mingw-w64-gst-python/PKGBUILD @@ -0,0 +1,62 @@ +# Maintainer: Lubosz Sarnecki + +_realname=gst-python +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") +pkgver=1.4.0 +pkgrel=1 +pkgdesc="GStreamer GObject Introspection overrides for Python 3 (mingw-w64)" +arch=('any') +license=('LGPL') +depends=("${MINGW_PACKAGE_PREFIX}-gstreamer" + "${MINGW_PACKAGE_PREFIX}-python3-gobject" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +makedepends=('git') +url='http://gstreamer.freedesktop.org/modules/gst-python.html' +options=(!libtool strip staticlibs) + +source=(http://gstreamer.freedesktop.org/src/gst-python/${_realname}-${pkgver}.tar.xz + '0001-msys2-python3-config-returns-1-so-use-which.patch' + '0002-msys2-fix-linking-errors.patch' + '0004-add-overrides.patch' + '0005-unix-override-dir.patch' + '0006-plugin-libtool.patch') +md5sums=('72e3ba811db671366162bbf75a01ed37' + 'eb52a3ef8270c2d263c79799bcaf377a' + '14ee538deb2796a53ff4177fd7caeadd' + '9241cc5807a4ef87548b6d5405141bf1' + 'cf4576d2775e01c2147801d5614fa1b2' + 'f1dc65f40ae023dd499a5dbe3b754418') + +prepare() { + cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/0001-msys2-python3-config-returns-1-so-use-which.patch + patch -p1 -i ${srcdir}/0002-msys2-fix-linking-errors.patch + patch -p1 -i ${srcdir}/0004-add-overrides.patch + patch -p1 -i ${srcdir}/0005-unix-override-dir.patch + patch -p1 -i ${srcdir}/0006-plugin-libtool.patch + + WANT_AUTOMAKE=latest autoreconf -fiv +} + +build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p build-${MINGW_CHOST} + cd "${srcdir}/build-${MINGW_CHOST}" + + PYTHON=${MINGW_PREFIX}/bin/python3 \ + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --bindir=${MINGW_PREFIX}/bin \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --disable-silent-rules + + make +} + +package() { + cd build-${MINGW_CHOST} + make DESTDIR="${pkgdir}" install +} From ff17e87e8fb6cf200d455d39084c4d6badded9d3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 00:44:50 +0300 Subject: [PATCH 1312/2060] === Rebuild with GCC-5.x. Part XVII === --- mingw-w64-libtool/PKGBUILD | 2 +- mingw-w64-putty-ssh/PKGBUILD | 2 +- mingw-w64-putty/PKGBUILD | 14 +-- mingw-w64-python-bsddb3/PKGBUILD | 8 +- mingw-w64-python-cx_Freeze/PKGBUILD | 40 +++------ mingw-w64-python-httplib2/PKGBUILD | 9 +- mingw-w64-python-lhafile/PKGBUILD | 14 +-- mingw-w64-python-nuitka/PKGBUILD | 33 +++---- mingw-w64-python-numexpr/PKGBUILD | 32 ++++--- mingw-w64-python-pandas/PKGBUILD | 86 ++++++++----------- mingw-w64-python-patsy/PKGBUILD | 32 ++++--- mingw-w64-python-pip/PKGBUILD | 27 +++--- mingw-w64-python-reportlab/PKGBUILD | 8 +- mingw-w64-python-statsmodels/PKGBUILD | 60 ++++++------- mingw-w64-python2-beautifulsoup3/PKGBUILD | 3 +- mingw-w64-python2-cjson/PKGBUILD | 12 ++- mingw-w64-ragel/PKGBUILD | 10 +-- mingw-w64-readosm/PKGBUILD | 7 +- mingw-w64-rxspencer/PKGBUILD | 19 ++-- mingw-w64-scite/PKGBUILD | 12 +-- mingw-w64-shapelib/PKGBUILD | 13 +-- mingw-w64-silc-toolkit/PKGBUILD | 38 ++++---- mingw-w64-snappy/002-am_prog-ar.patch | 10 +++ mingw-w64-snappy/PKGBUILD | 34 ++++---- mingw-w64-sparsehash/PKGBUILD | 8 +- mingw-w64-spatialite-tools/PKGBUILD | 15 +++- mingw-w64-spice-gtk/001-win.patch | 6 +- mingw-w64-spice-gtk/002-lz4-support.patch | 14 --- mingw-w64-spice-gtk/003-python-linking.patch | 6 +- mingw-w64-spice-gtk/PKGBUILD | 18 ++-- mingw-w64-spice-protocol/PKGBUILD | 11 +-- mingw-w64-sqlite-analyzer/PKGBUILD | 2 +- mingw-w64-stxxl-git/PKGBUILD | 22 +++-- .../0001-Win32-Do-not-link-librt.patch | 12 --- .../0003-MSYS2-Use-OpenBLAS.patch | 31 ------- mingw-w64-suitesparse/PKGBUILD | 10 +-- mingw-w64-tcllib/PKGBUILD | 4 +- mingw-w64-tklib/PKGBUILD | 26 +++--- mingw-w64-tolua/PKGBUILD | 5 +- mingw-w64-totem-pl-parser/PKGBUILD | 13 +-- mingw-w64-usbredir/PKGBUILD | 9 +- mingw-w64-win7appid/PKGBUILD | 9 +- mingw-w64-winico/PKGBUILD | 6 +- mingw-w64-wintab-sdk/PKGBUILD | 3 +- mingw-w64-wslay/PKGBUILD | 4 +- mingw-w64-zeromq/PKGBUILD | 17 ++-- 46 files changed, 346 insertions(+), 430 deletions(-) create mode 100644 mingw-w64-snappy/002-am_prog-ar.patch delete mode 100644 mingw-w64-spice-gtk/002-lz4-support.patch diff --git a/mingw-w64-libtool/PKGBUILD b/mingw-w64-libtool/PKGBUILD index 2f07728485..274caae421 100644 --- a/mingw-w64-libtool/PKGBUILD +++ b/mingw-w64-libtool/PKGBUILD @@ -4,7 +4,7 @@ _realname=libtool pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.4.6 -pkgrel=2 +pkgrel=3 pkgdesc="A system independent dlopen wrapper for GNU libtool (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libtool" diff --git a/mingw-w64-putty-ssh/PKGBUILD b/mingw-w64-putty-ssh/PKGBUILD index 2f2b3aadf0..2668522edb 100644 --- a/mingw-w64-putty-ssh/PKGBUILD +++ b/mingw-w64-putty-ssh/PKGBUILD @@ -5,7 +5,7 @@ _realname=putty-ssh pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.0 -pkgrel=1 +pkgrel=2 pkgdesc="A wrapper around plink with some nice features (mingw-w64)" arch=('any') url="http://www.wischik.com/lu/programmer/unison-ssh.html" diff --git a/mingw-w64-putty/PKGBUILD b/mingw-w64-putty/PKGBUILD index bb1cdc4d14..a6da803ba8 100644 --- a/mingw-w64-putty/PKGBUILD +++ b/mingw-w64-putty/PKGBUILD @@ -8,7 +8,7 @@ _realname=putty pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _base_ver=0.63 pkgver=0.63.r10297 -pkgrel=3 +pkgrel=4 pkgdesc="A free telnet/SSH client (mingw-w64)" arch=('any') url="http://www.chiark.greenend.org.uk/~sgtatham/putty/" @@ -19,14 +19,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") optdepends=("${MINGW_PACKAGE_PREFIX}-putty-ssh: ssh wrapper for plink") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -source=("$_realname::svn+svn://svn.tartarus.org/sgt/putty" +source=("${_realname}"::"svn+svn://svn.tartarus.org/sgt/putty" '0001-fixes.patch' - '0002-casts.patch' - '0003-linedraw.patch') + '0002-casts.patch' + '0003-linedraw.patch') md5sums=('SKIP' '5b5065e5bd2b8421196c068d428bfb57' - '1e4f574c0a0c6dfc8ec676f93fa109e7' - '2f7c232dd89a30cbe6e8b7dec329cda4') + '1e4f574c0a0c6dfc8ec676f93fa109e7' + '2f7c232dd89a30cbe6e8b7dec329cda4') pkgver() { cd "${srcdir}"/${_realname} @@ -57,6 +57,6 @@ package() { install -D -m644 ../LICENCE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE for f in putty.exe puttygen.exe pageant.exe plink.exe pscp.exe psftp.exe puttytel.exe do - install -D -m755 $f "${pkgdir}"/${MINGW_PREFIX}/bin/$f + install -D -m755 ${f} "${pkgdir}"/${MINGW_PREFIX}/bin/${f} done } diff --git a/mingw-w64-python-bsddb3/PKGBUILD b/mingw-w64-python-bsddb3/PKGBUILD index ace97e6c20..85ccb4f1ce 100644 --- a/mingw-w64-python-bsddb3/PKGBUILD +++ b/mingw-w64-python-bsddb3/PKGBUILD @@ -3,8 +3,8 @@ _realname=bsddb3 pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=6.1.0 -pkgrel=1 -pkgdesc="Python bindings for Oracle Berkeley DB" +pkgrel=2 +pkgdesc="Python bindings for Oracle Berkeley DB (mingw-w64)" arch=('any') license=('BSD') url="http://www.jcea.es/programacion/pybsddb.htm" @@ -35,10 +35,12 @@ build() { # Build python 2 module cd "${srcdir}/build-${CARCH}" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=;--install-purelib=;--install-data=" \ ${MINGW_PREFIX}/bin/python2 setup.py build # Build python 3 module cd "${srcdir}/build-${CARCH}" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=;--install-purelib=;--install-data=" \ ${MINGW_PREFIX}/bin/python3 setup.py build } @@ -47,6 +49,7 @@ package_python3-bsddb3() { "${MINGW_PACKAGE_PREFIX}-db") cd "${srcdir}/build-${CARCH}" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=;--install-purelib=;--install-data=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 --skip-build } @@ -55,6 +58,7 @@ package_python2-bsddb3() { "${MINGW_PACKAGE_PREFIX}-db") cd "${srcdir}/build-${CARCH}" + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=;--install-purelib=;--install-data=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 --skip-build } diff --git a/mingw-w64-python-cx_Freeze/PKGBUILD b/mingw-w64-python-cx_Freeze/PKGBUILD index cc6ba95495..c8643cf333 100644 --- a/mingw-w64-python-cx_Freeze/PKGBUILD +++ b/mingw-w64-python-cx_Freeze/PKGBUILD @@ -4,7 +4,7 @@ _realname=cx_Freeze pkgname=("${MINGW_PACKAGE_PREFIX}-python2-cx_Freeze" "${MINGW_PACKAGE_PREFIX}-python3-cx_Freeze") pkgver=4.3.3 -pkgrel=2 +pkgrel=3 pkgdesc="Python package for freezing scripts into executables (mingw-w64)" arch=('any') license=('PSF') @@ -12,24 +12,24 @@ url="http://cx-freeze.sourceforge.net/" makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3") options=('staticlibs' 'strip' '!debug') -source=("https://pypi.python.org/packages/source/c/cx_Freeze/cx_Freeze-$pkgver.tar.gz") +source=("https://pypi.python.org/packages/source/c/cx_Freeze/cx_Freeze-${pkgver}.tar.gz") md5sums=('3cae24b98694540eb083ac500c0d4aa1') prepare() { - rm -Rf python2-cx_Freeze-$pkgver-${CARCH} - cp -a cx_Freeze-$pkgver python2-cx_Freeze-$pkgver-${CARCH} - rm -Rf python3-cx_Freeze-$pkgver-${CARCH} - cp -a cx_Freeze-$pkgver python3-cx_Freeze-$pkgver-${CARCH} + rm -Rf python2-cx_Freeze-${pkgver}-${CARCH} + cp -a cx_Freeze-${pkgver} python2-cx_Freeze-${pkgver}-${CARCH} + rm -Rf python3-cx_Freeze-${pkgver}-${CARCH} + cp -a cx_Freeze-${pkgver} python3-cx_Freeze-${pkgver}-${CARCH} } build() { echo "Building for Python 2" - cd python2-cx_Freeze-$pkgver-${CARCH} + cd python2-cx_Freeze-${pkgver}-${CARCH} ${MINGW_PREFIX}/bin/python2 setup.py build cd .. echo "Building for Python 3" - cd python3-cx_Freeze-$pkgver-${CARCH} + cd python3-cx_Freeze-${pkgver}-${CARCH} ${MINGW_PREFIX}/bin/python3 setup.py build cd .. } @@ -38,38 +38,24 @@ package_python2-cx_Freeze() { depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python2-six") - cd python2-cx_Freeze-$pkgver-${CARCH} + cd python2-cx_Freeze-${pkgver}-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ --root="${pkgdir}" --optimize=1 - # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze \ - # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-2.7 - # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall \ - # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall-2.7 - # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart \ - # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart-2.7 + mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze{,2} + mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall{,2} + mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart{,2} } package_python3-cx_Freeze() { depends=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-six") - cd python3-cx_Freeze-$pkgver-${CARCH} + cd python3-cx_Freeze-${pkgver}-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ --root="${pkgdir}" --optimize=1 - - # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze \ - # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-3.4 - # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall \ - # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall-3.4 - # mv ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart \ - # ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart-3.4 - - rm ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze - rm ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-postinstall - rm ${pkgdir}${MINGW_PREFIX}/bin/cxfreeze-quickstart } package_mingw-w64-i686-python2-cx_Freeze() { diff --git a/mingw-w64-python-httplib2/PKGBUILD b/mingw-w64-python-httplib2/PKGBUILD index 0bab7cfcf4..0b959b91da 100644 --- a/mingw-w64-python-httplib2/PKGBUILD +++ b/mingw-w64-python-httplib2/PKGBUILD @@ -3,8 +3,8 @@ _realname=httplib2 pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=0.9 -pkgrel=2 +pkgver=0.9.1 +pkgrel=1 pkgdesc="Comprehensive HTTP client library, supporting many features (mingw-w64)" arch=('any') license=('MIT') @@ -18,11 +18,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3-setuptools" #"git" ) -source=(#"git://github.com/jcgregorio/httplib2.git#commit=7d1b88a3cf" - https://github.com/jcgregorio/httplib2/archive/v${pkgver}.tar.gz +source=(${_realname}-${pkgver}.tar.gz::https://github.com/jcgregorio/httplib2/archive/v${pkgver}.tar.gz ssl_hostname.patch cert.patch) -md5sums=('5fd16fb863d33dca000b2590f75e5ed7' +md5sums=('10f0ec63738292b362ed438abc186a43' '6de5596aedd196a4db96f83f529e3509' '98fab3f5a578c0db600237f025aac991') diff --git a/mingw-w64-python-lhafile/PKGBUILD b/mingw-w64-python-lhafile/PKGBUILD index 3493a17bc6..cea0993304 100644 --- a/mingw-w64-python-lhafile/PKGBUILD +++ b/mingw-w64-python-lhafile/PKGBUILD @@ -4,7 +4,7 @@ _realname=python-lhafile pkgname=("${MINGW_PACKAGE_PREFIX}-python2-lhafile" "${MINGW_PACKAGE_PREFIX}-python3-lhafile") pkgver=0.1.0fs4 -pkgrel=2 +pkgrel=3 pkgdesc="LHA module for Python (mingw-w64)" arch=('any') license=('BSD') @@ -16,18 +16,18 @@ source=(http://fengestad.no/python-lhafile/python-lhafile-${pkgver}.tar.gz) md5sums=('cedac40d5363bf49b51528522bf05c60') prepare() { - cp -a python-lhafile-$pkgver python2-lhafile-$pkgver-${CARCH} - cp -a python-lhafile-$pkgver python3-lhafile-$pkgver-${CARCH} + cp -a python-lhafile-${pkgver} python2-lhafile-${pkgver}-${CARCH} + cp -a python-lhafile-${pkgver} python3-lhafile-${pkgver}-${CARCH} } build() { echo "Building for Python 2" - cd python2-lhafile-$pkgver-${CARCH} + cd python2-lhafile-${pkgver}-${CARCH} ${MINGW_PREFIX}/bin/python2 setup.py build cd .. echo "Building for Python 3" - cd python3-lhafile-$pkgver-${CARCH} + cd python3-lhafile-${pkgver}-${CARCH} ${MINGW_PREFIX}/bin/python3 setup.py build } @@ -35,7 +35,7 @@ package_python2-lhafile() { depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python2-six") - cd python2-lhafile-$pkgver-${CARCH} + cd python2-lhafile-${pkgver}-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ --root="${pkgdir}" --optimize=1 @@ -48,7 +48,7 @@ package_python3-lhafile() { depends=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-six") - cd python3-lhafile-$pkgver-${CARCH} + cd python3-lhafile-${pkgver}-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ --root="${pkgdir}" --optimize=1 diff --git a/mingw-w64-python-nuitka/PKGBUILD b/mingw-w64-python-nuitka/PKGBUILD index b999814999..363eee28e6 100644 --- a/mingw-w64-python-nuitka/PKGBUILD +++ b/mingw-w64-python-nuitka/PKGBUILD @@ -2,29 +2,28 @@ _realname=nuitka pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=0.5.8 +pkgver=0.5.13 pkgrel=1 pkgdesc="Python to native compiler (mingw-w64)" arch=('any') license=('APACHE') url="http://www.nuitka.net/" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") -source=("http://nuitka.net/releases/Nuitka-$pkgver.tar.gz") +source=("http://nuitka.net/releases/Nuitka-${pkgver}.tar.gz") noextract=(Nuitka-$pkgver.tar.gz) -md5sums=('48fa615a6266ed6a267a82c1e0523f2c') +md5sums=('e231f92edc2766c72c5a357f7d917223') prepare() { - [ -d $srcdir/${_realname}-$pkgver ] && rm -rf $srcdir/${_realname}-$pkgver - tar -xzvf ${startdir}/${_realname}-${pkgver}.tar.gz -C $srcdir || \ - tar -xzvf ${startdir}/${_realname}-${pkgver}.tar.gz -C $srcdir + [[ -d $srcdir/${_realname}-${pkgver} ]] && rm -rf ${srcdir}/${_realname}-${pkgver} + tar -xzvf ${srcdir}/${_realname}-${pkgver}.tar.gz -C ${srcdir} || \ + tar -xzvf ${srcdir}/${_realname}-${pkgver}.tar.gz -C ${srcdir} } build() { - cd "$srcdir" rm -rf python{2,3}-build for builddir in python{2,3}-build; do - cp -r Nuitka-$pkgver $builddir - pushd $builddir + cp -r Nuitka-${pkgver} ${builddir} + pushd ${builddir} ${MINGW_PREFIX}/bin/${builddir%-build} setup.py build popd done @@ -33,13 +32,9 @@ build() { package_python3-nuitka() { depends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null - - cd "$srcdir/python3-build" + cd "${srcdir}/python3-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 pushd "${pkgdir}${MINGW_PREFIX}"/bin > /dev/null for filename in nuitka nuitka-run; do @@ -53,13 +48,9 @@ package_python3-nuitka() { package_python2-nuitka() { depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null - - cd "$srcdir/python2-build" + cd "${srcdir}/python2-build" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="$pkgdir" -O1 + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1 pushd "${pkgdir}${MINGW_PREFIX}"/bin > /dev/null for filename in nuitka nuitka-run; do diff --git a/mingw-w64-python-numexpr/PKGBUILD b/mingw-w64-python-numexpr/PKGBUILD index 312ac0b218..65005c98e4 100644 --- a/mingw-w64-python-numexpr/PKGBUILD +++ b/mingw-w64-python-numexpr/PKGBUILD @@ -2,27 +2,25 @@ _realname=numexpr pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=2.4 +pkgver=2.4.3 pkgrel=1 pkgdesc="Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas. (mingw-w64)" arch=('any') url="https://github.com/pydata/numexpr" license=('MIT') -makedepends=( - "${MINGW_PACKAGE_PREFIX}-python2-numpy" - "${MINGW_PACKAGE_PREFIX}-python3-numpy" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" - "${MINGW_PACKAGE_PREFIX}-python3-setuptools" - "${MINGW_PACKAGE_PREFIX}-gcc" -) -source=("$_realname-${pkgver}.tar.gz"::https://github.com/pydata/numexpr/archive/v$pkgver.tar.gz) -md5sums=('c9357862a304b9ad614afaf9e9c8dc78') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-numpy" + "${MINGW_PACKAGE_PREFIX}-python3-numpy" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-gcc") +source=("$_realname-${pkgver}.tar.gz"::https://github.com/pydata/numexpr/archive/v${pkgver}.tar.gz) +md5sums=('4b701ee609a1faa463510c483405d24f') prepare() { - cp -a $_realname-$pkgver $_realname-py2-$pkgver - cp -a $_realname-$pkgver $_realname-py3-$pkgver + cp -a ${_realname}-${pkgver} $_realname-py2-${pkgver} + cp -a ${_realname}-${pkgver} $_realname-py3-${pkgver} - cd $_realname-py2-$pkgver + cd ${_realname}-py2-${pkgver} sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ -e "s|#![ ]*/bin/env python$|#!/usr/bin/env python2|" \ @@ -31,12 +29,12 @@ prepare() { build() { # build for python2 - cd ${srcdir}/$_realname-py2-$pkgver + cd ${srcdir}/${_realname}-py2-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build # build for python3 - cd ${srcdir}/$_realname-py3-$pkgver + cd ${srcdir}/${_realname}-py3-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build } @@ -44,7 +42,7 @@ build() { package_python2-numexpr() { depends=("${MINGW_PACKAGE_PREFIX}-python2-numpy") - cd $_realname-py2-$pkgver + cd ${_realname}-py2-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --skip-build \ --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 @@ -56,7 +54,7 @@ package_python2-numexpr() { package_python3-numexpr() { depends=("${MINGW_PACKAGE_PREFIX}-python3-numpy") - cd $_realname-py3-$pkgver + cd ${_realname}-py3-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --skip-build \ --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 diff --git a/mingw-w64-python-pandas/PKGBUILD b/mingw-w64-python-pandas/PKGBUILD index 87278f2b35..8109054325 100644 --- a/mingw-w64-python-pandas/PKGBUILD +++ b/mingw-w64-python-pandas/PKGBUILD @@ -1,33 +1,31 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=pandas -pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=0.14.1 -pkgrel=4 -pkgdesc="Cross-section and time series data analysis toolkit. (mingw-w64)" +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=0.16.2 +pkgrel=1 +pkgdesc="Cross-section and time series data analysis toolkit (mingw-w64)" arch=('any') url="http://pandas.pydata.org/" license=('BSD') -makedepends=( - "${MINGW_PACKAGE_PREFIX}-python2-numpy" - "${MINGW_PACKAGE_PREFIX}-python3-numpy" - "${MINGW_PACKAGE_PREFIX}-python2-pytz" - "${MINGW_PACKAGE_PREFIX}-python3-pytz" - "${MINGW_PACKAGE_PREFIX}-python2-dateutil" - "${MINGW_PACKAGE_PREFIX}-python3-dateutil" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" - "${MINGW_PACKAGE_PREFIX}-python3-setuptools" - "${MINGW_PACKAGE_PREFIX}-gcc" -) -source=("https://pypi.python.org/packages/source/p/pandas/pandas-${pkgver}.tar.gz") -md5sums=('393dd8f35411e4022177aa64b2da46f4') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-numpy" + "${MINGW_PACKAGE_PREFIX}-python3-numpy" + "${MINGW_PACKAGE_PREFIX}-python2-pytz" + "${MINGW_PACKAGE_PREFIX}-python3-pytz" + "${MINGW_PACKAGE_PREFIX}-python2-dateutil" + "${MINGW_PACKAGE_PREFIX}-python3-dateutil" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-gcc") +source=("https://pypi.python.org/packages/source/p/pandas/${_realname}-${pkgver}.tar.gz") +md5sums=('a92787bcdf0fc0c6d5f4fe4877335ab5') prepare() { - cp -a $_realname-$pkgver $_realname-py2-$pkgver - cp -a $_realname-$pkgver $_realname-py3-$pkgver + cp -a ${_realname}-${pkgver} ${_realname}-py2-${pkgver} + cp -a ${_realname}-${pkgver} ${_realname}-py3-${pkgver} - cd $_realname-py2-$pkgver + cd ${_realname}-py2-${pkgver} sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ -e "s|#![ ]*/bin/env python$|#!/usr/bin/env python2|" \ @@ -36,7 +34,7 @@ prepare() { build() { # build for python2 - cd ${srcdir}/$_realname-py2-$pkgver + cd ${srcdir}/${_realname}-py2-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build_ext --inplace @@ -44,7 +42,7 @@ build() { ${MINGW_PREFIX}/bin/python2 setup.py build # build for python3 - cd ${srcdir}/$_realname-py3-$pkgver + cd ${srcdir}/${_realname}-py3-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build_ext --inplace @@ -53,44 +51,36 @@ build() { } package_python2-pandas() { - depends=( - "${MINGW_PACKAGE_PREFIX}-python2-numpy" - "${MINGW_PACKAGE_PREFIX}-python2-pytz" - "${MINGW_PACKAGE_PREFIX}-python2-dateutil" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" - ) - optdepends=( - "${MINGW_PACKAGE_PREFIX}-python2-scipy: needed for miscellaneous statistical functions" - "${MINGW_PACKAGE_PREFIX}-python2-matplotlib: needed for plotting" - "${MINGW_PACKAGE_PREFIX}-python2-numexpr: needed for accelerating certain numerical operations (recommended)" - ) + depends=("${MINGW_PACKAGE_PREFIX}-python2-numpy" + "${MINGW_PACKAGE_PREFIX}-python2-pytz" + "${MINGW_PACKAGE_PREFIX}-python2-dateutil" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools") + optdepends=("${MINGW_PACKAGE_PREFIX}-python2-scipy: needed for miscellaneous statistical functions" + "${MINGW_PACKAGE_PREFIX}-python2-matplotlib: needed for plotting" + "${MINGW_PACKAGE_PREFIX}-python2-numexpr: needed for accelerating certain numerical operations (recommended)") - cd $_realname-py2-$pkgver + cd ${_realname}-py2-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --skip-build \ - --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 + --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 install -Dm644 LICENSE \ "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" } package_python3-pandas() { - depends=( - "${MINGW_PACKAGE_PREFIX}-python3-numpy" - "${MINGW_PACKAGE_PREFIX}-python3-pytz" - "${MINGW_PACKAGE_PREFIX}-python3-dateutil" - "${MINGW_PACKAGE_PREFIX}-python3-setuptools" - ) - optdepends=( - "${MINGW_PACKAGE_PREFIX}-python3-scipy: needed for miscellaneous statistical functions" - "${MINGW_PACKAGE_PREFIX}-python3-matplotlib: needed for plotting" - "${MINGW_PACKAGE_PREFIX}-python3-numexpr: needed for accelerating certain numerical operations (recommended)" - ) + depends=("${MINGW_PACKAGE_PREFIX}-python3-numpy" + "${MINGW_PACKAGE_PREFIX}-python3-pytz" + "${MINGW_PACKAGE_PREFIX}-python3-dateutil" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") + optdepends=("${MINGW_PACKAGE_PREFIX}-python3-scipy: needed for miscellaneous statistical functions" + "${MINGW_PACKAGE_PREFIX}-python3-matplotlib: needed for plotting" + "${MINGW_PACKAGE_PREFIX}-python3-numexpr: needed for accelerating certain numerical operations (recommended)") - cd $_realname-py3-$pkgver + cd ${_realname}-py3-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --skip-build \ - --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 + --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 install -Dm644 LICENSE \ "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" diff --git a/mingw-w64-python-patsy/PKGBUILD b/mingw-w64-python-patsy/PKGBUILD index b6e3df2b08..b190013af6 100644 --- a/mingw-w64-python-patsy/PKGBUILD +++ b/mingw-w64-python-patsy/PKGBUILD @@ -1,26 +1,24 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=patsy -pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.3.0 -pkgrel=1 +pkgrel=2 pkgdesc="A Python package for describing statistical models and for building design matrices (mingw-w64)" arch=('any') url="https://github.com/pydata/patsy" license=('BSD') -makedepends=( - "${MINGW_PACKAGE_PREFIX}-python2-numpy" - "${MINGW_PACKAGE_PREFIX}-python3-numpy" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" - "${MINGW_PACKAGE_PREFIX}-python3-setuptools" -) +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-numpy" + "${MINGW_PACKAGE_PREFIX}-python3-numpy" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=("https://pypi.python.org/packages/source/p/patsy/patsy-${pkgver}.zip") md5sums=('7545518b413136ba8343dcebea07e5e2') prepare() { cd "${srcdir}" - cp -r $_realname-$pkgver python2-$_realname-$pkgver - cp -r $_realname-$pkgver python3-$_realname-$pkgver + cp -r ${_realname}-${pkgver} python2-${_realname}-${pkgver} + cp -r ${_realname}-${pkgver} python3-${_realname}-${pkgver} } package_python3-patsy() { @@ -28,12 +26,12 @@ package_python3-patsy() { optdepends=("${MINGW_PACKAGE_PREFIX}-python3-nose: needed for integrated test suite" "${MINGW_PACKAGE_PREFIX}-python3-scipy: needed for spline-related functions") - cd $srcdir/python3-$_realname-$pkgver + cd ${srcdir}/python3-${_realname}-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ - --root "${pkgdir}" --optimize=1 + --root "${pkgdir}" --optimize=1 - install -Dm644 "$srcdir/python3-$_realname-$pkgver/LICENSE.txt" \ + install -Dm644 "${srcdir}/python3-${_realname}-${pkgver}/LICENSE.txt" \ "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } @@ -42,13 +40,13 @@ package_python2-patsy() { optdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose: needed for integrated test suite" "${MINGW_PACKAGE_PREFIX}-python2-scipy: needed for spline-related functions") - cd $srcdir/python2-$_realname-$pkgver + cd ${srcdir}/python2-${_realname}-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ - --root "${pkgdir}" --optimize=1 + --root "${pkgdir}" --optimize=1 - install -Dm644 "$srcdir/python3-$_realname-$pkgver/LICENSE.txt" \ - "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" + install -Dm644 "${srcdir}/python3-${_realname}-${pkgver}/LICENSE.txt" \ + "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" } package_mingw-w64-i686-python2-patsy() { diff --git a/mingw-w64-python-pip/PKGBUILD b/mingw-w64-python-pip/PKGBUILD index 9c31dfe4c4..7ba10038ed 100644 --- a/mingw-w64-python-pip/PKGBUILD +++ b/mingw-w64-python-pip/PKGBUILD @@ -2,37 +2,32 @@ _realname=pip pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=7.0.3 +pkgver=7.1.0 pkgrel=1 pkgdesc="An easy_install replacement for installing pypi python packages (mingw-w64)" arch=('any') license=('MIT') url="http://www.pip-installer.org/" depends=("${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" - "${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-python3-setuptools") + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(http://pypi.python.org/packages/source/p/pip/${_realname}-${pkgver}.tar.gz) -md5sums=('54cbf5ae000fb3af3367345f5d299d1c') +md5sums=('d935ee9146074b1d3f26c5f0acfd120e') prepare() { - #cd "${srcdir}/${_realname}-${pkgver}" - #patch -p1 -i ${srcdir}/mingw-python-fix.patch - - #cd "${srcdir}" - cp -r ${_realname}-${pkgver} ${_realname}-python2 cp -r ${_realname}-${pkgver} ${_realname}-python3 } build() { - # Build python 3 module - cd "${srcdir}"/${_realname}-python3 - ${MINGW_PREFIX}/bin/python3 setup.py build + # Build python 3 module + cd "${srcdir}"/${_realname}-python3 + ${MINGW_PREFIX}/bin/python3 setup.py build - # Build python 2 module - cd "${srcdir}"/${_realname}-python2 - ${MINGW_PREFIX}/bin/python2 setup.py build + # Build python 2 module + cd "${srcdir}"/${_realname}-python2 + ${MINGW_PREFIX}/bin/python2 setup.py build } package_python2-pip() { diff --git a/mingw-w64-python-reportlab/PKGBUILD b/mingw-w64-python-reportlab/PKGBUILD index c662e5904f..99ea76b230 100644 --- a/mingw-w64-python-reportlab/PKGBUILD +++ b/mingw-w64-python-reportlab/PKGBUILD @@ -2,25 +2,21 @@ # Contributor: Ray Donnelly _realname=reportlab - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=3.0 -pkgrel=2 +pkgrel=3 pkgdesc="A proven industry-strength PDF generating solution (mingw-w64)" arch=('any') license=('custom') url="http://www.reportlab.org/rl_toolkit.html" depends=("${MINGW_PACKAGE_PREFIX}-freetype") makedepends=("${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python3") + "${MINGW_PACKAGE_PREFIX}-python3") source=(http://www.reportlab.com/ftp/${_realname}-${pkgver}.tar.gz) md5sums=('a4fd40abcfb604aa3bd907181133c071') prepare() { - cd "${srcdir}/${_realname}-${pkgver}" - - cd "${srcdir}" cp -r ${_realname}-${pkgver} build-python2 cp -r ${_realname}-${pkgver} build-python3 } diff --git a/mingw-w64-python-statsmodels/PKGBUILD b/mingw-w64-python-statsmodels/PKGBUILD index 201d0a6206..5e08b01061 100644 --- a/mingw-w64-python-statsmodels/PKGBUILD +++ b/mingw-w64-python-statsmodels/PKGBUILD @@ -3,7 +3,7 @@ _realname=statsmodels pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=0.5.0 +pkgver=0.6.1 pkgrel=1 pkgdesc="Statistical computations and models for use with SciPy. (mingw-w64)" arch=('any') @@ -16,6 +16,8 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-python3-pandas" "${MINGW_PACKAGE_PREFIX}-python2-patsy" "${MINGW_PACKAGE_PREFIX}-python3-patsy" + "${MINGW_PACKAGE_PREFIX}-cython" + "${MINGW_PACKAGE_PREFIX}-cython2" "${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools" "${MINGW_PACKAGE_PREFIX}-cython" @@ -23,13 +25,13 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-gcc" ) source=("https://pypi.python.org/packages/source/s/statsmodels/statsmodels-${pkgver}.tar.gz") -md5sums=('c65454d97f869ac0e5bb3a2757ec6bd5') +md5sums=('f7580ebf7d2a2c9b87abfad190dcb9a3') prepare() { - cp -a $_realname-$pkgver $_realname-py2-$pkgver - cp -a $_realname-$pkgver $_realname-py3-$pkgver + cp -a ${_realname}-${pkgver} ${_realname}-py2-${pkgver} + cp -a ${_realname}-${pkgver} ${_realname}-py3-${pkgver} - cd $_realname-py2-$pkgver + cd ${_realname}-py2-${pkgver} sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ -e "s|#![ ]*/bin/env python$|#!/usr/bin/env python2|" \ @@ -38,61 +40,53 @@ prepare() { build() { # build for python2 - cd ${srcdir}/$_realname-py2-$pkgver + cd ${srcdir}/${_realname}-py2-${pkgver} # regenerate Cython files - MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py clean + #MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + #${MINGW_PREFIX}/bin/python2 setup.py clean MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build # build for python3 - cd ${srcdir}/$_realname-py3-$pkgver + cd ${srcdir}/${_realname}-py3-${pkgver} # regenerate Cython files - MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py clean + #MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + #${MINGW_PREFIX}/bin/python3 setup.py clean MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build } package_python2-statsmodels() { - depends=( - "${MINGW_PACKAGE_PREFIX}-python2-scipy" - "${MINGW_PACKAGE_PREFIX}-python2-pandas" - "${MINGW_PACKAGE_PREFIX}-python2-patsy" - ) - optdepends=( - "${MINGW_PACKAGE_PREFIX}-python2-nose: needed for integrated test suite" - "${MINGW_PACKAGE_PREFIX}-python2-matplotlib: needed for plotting functions" - ) + depends=("${MINGW_PACKAGE_PREFIX}-python2-scipy" + "${MINGW_PACKAGE_PREFIX}-python2-pandas" + "${MINGW_PACKAGE_PREFIX}-python2-patsy") + optdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose: needed for integrated test suite" + "${MINGW_PACKAGE_PREFIX}-python2-matplotlib: needed for plotting functions") - cd $_realname-py2-$pkgver + cd ${_realname}-py2-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --skip-build \ - --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 + --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 install -Dm644 LICENSE.txt \ "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE.txt" } package_python3-statsmodels() { - depends=( - "${MINGW_PACKAGE_PREFIX}-python3-scipy" - "${MINGW_PACKAGE_PREFIX}-python3-pandas" - "${MINGW_PACKAGE_PREFIX}-python3-patsy" - ) - optdepends=( - "${MINGW_PACKAGE_PREFIX}-python3-nose: needed for integrated test suite" - "${MINGW_PACKAGE_PREFIX}-python3-matplotlib: needed for plotting functions" - ) + depends=("${MINGW_PACKAGE_PREFIX}-python3-scipy" + "${MINGW_PACKAGE_PREFIX}-python3-pandas" + "${MINGW_PACKAGE_PREFIX}-python3-patsy") + optdepends=("${MINGW_PACKAGE_PREFIX}-python3-nose: needed for integrated test suite" + "${MINGW_PACKAGE_PREFIX}-python3-matplotlib: needed for plotting functions") - cd $_realname-py3-$pkgver + cd ${_realname}-py3-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --skip-build \ - --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 + --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 install -Dm644 LICENSE.txt \ "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE.txt" diff --git a/mingw-w64-python2-beautifulsoup3/PKGBUILD b/mingw-w64-python2-beautifulsoup3/PKGBUILD index cfe992f1aa..ced98117bc 100644 --- a/mingw-w64-python2-beautifulsoup3/PKGBUILD +++ b/mingw-w64-python2-beautifulsoup3/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=beautifulsoup3 - pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}") pkgver=3.2.1 -pkgrel=1 +pkgrel=2 pkgdesc="A Python HTML/XML parser designed for quick turnaround projects like screen-scraping (mingw-w64)" arch=('any') license=('PSF') diff --git a/mingw-w64-python2-cjson/PKGBUILD b/mingw-w64-python2-cjson/PKGBUILD index 5abc92acd1..2052f25403 100644 --- a/mingw-w64-python2-cjson/PKGBUILD +++ b/mingw-w64-python2-cjson/PKGBUILD @@ -1,32 +1,30 @@ # Maintainer: Alexey Pavlov _realname=python2-cjson - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.1.0 -pkgrel=1 +pkgrel=2 pkgdesc="Fast JSON encoder/decoder for Python (mingw-w64)" arch=('any') license=('LGPL') url="http://pypi.python.org/pypi/python-cjson/" depends=("${MINGW_PACKAGE_PREFIX}-python2") -source=("http://pypi.python.org/packages/source/p/python-cjson/python-cjson-$pkgver.tar.gz") +source=("http://pypi.python.org/packages/source/p/python-cjson/python-cjson-${pkgver}.tar.gz") md5sums=('adb28f42c72ef573dfbd4cdf09676ace') prepare() { - cd "${srcdir}"/python-cjson-$pkgver + cd "${srcdir}"/python-cjson-${pkgver} } build() { - cd "${srcdir}"/python-cjson-$pkgver + cd "${srcdir}"/python-cjson-${pkgver} # Fix python2 shebang sed -i 's|#!/usr/bin/python|#!/usr/bin/env python2|' jsontest.py ${MINGW_PREFIX}/bin/python2 setup.py build } package() { - - cd "${srcdir}"/python-cjson-$pkgver + cd "${srcdir}"/python-cjson-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=;--install-purelib=;--install-data=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" --optimize=1 install -D -m644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" diff --git a/mingw-w64-ragel/PKGBUILD b/mingw-w64-ragel/PKGBUILD index df3dbdde4a..8e99d2c6d7 100644 --- a/mingw-w64-ragel/PKGBUILD +++ b/mingw-w64-ragel/PKGBUILD @@ -3,14 +3,14 @@ _realname=ragel pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=6.9 -pkgrel=1 -pkgdesc="Compiles finite state machines from regular languages into executable C, C++, Objective-C, or D code. (mingw-w64)" +pkgrel=2 +pkgdesc="Compiles finite state machines from regular languages into executable C, C++, Objective-C, or D code (mingw-w64)" arch=('any') url="http://www.colm.net/open-source/ragel/" license=('GPL') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -source=("http://www.colm.net/files/${_realname}/${_realname}-$pkgver.tar.gz") +source=("http://www.colm.net/files/${_realname}/${_realname}-${pkgver}.tar.gz") md5sums=('0c3110d7f17f7af4d9cb774443898dc1') build() { @@ -27,8 +27,8 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install - install -m0644 -D ${srcdir}/${_realname}-${pkgver}/ragel.vim "$pkgdir"${MINGW_PREFIX}/share/vim/vimfiles/syntax/ragel.vim + install -m0644 -D ${srcdir}/${_realname}-${pkgver}/ragel.vim "${pkgdir}${MINGW_PREFIX}"/share/vim/vimfiles/syntax/ragel.vim } diff --git a/mingw-w64-readosm/PKGBUILD b/mingw-w64-readosm/PKGBUILD index ed2b3c8d4b..407ab6ab65 100644 --- a/mingw-w64-readosm/PKGBUILD +++ b/mingw-w64-readosm/PKGBUILD @@ -3,7 +3,7 @@ _realname=readosm pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.0b +pkgver=1.0.0e pkgrel=1 pkgdesc="Library to extract valid data from within an Open Street Map input file (mingw-w64)" arch=('any') @@ -12,10 +12,11 @@ license=('MPL') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-zlib") options=('strip' '!libtool') -source=("http://www.gaia-gis.it/gaia-sins/${_realname}-sources/${_realname}-$pkgver.tar.gz") -sha256sums=('ed7e0d17fbfc7574b097e2358a143788eba23e0477e7108237f4b0aac3d85710') +source=("http://www.gaia-gis.it/gaia-sins/${_realname}-sources/${_realname}-${pkgver}.tar.gz") +sha256sums=('1fd839e05b411db6ba1ca6199bf3334ab9425550a58e129c07ad3c6d39299acf') build() { + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" diff --git a/mingw-w64-rxspencer/PKGBUILD b/mingw-w64-rxspencer/PKGBUILD index a67916a1d0..7619f6f3d0 100644 --- a/mingw-w64-rxspencer/PKGBUILD +++ b/mingw-w64-rxspencer/PKGBUILD @@ -3,25 +3,25 @@ _realname=rxspencer pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=alpha3.8.g6 -pkgrel=1 +pkgrel=2 pkgdesc="Henry Spencer's BSD regular expression library modified to allow building as a shared library (mingw-w64)" arch=('any') url="https://garyhouston.github.io/regex/" options=('strip' 'staticlibs') license=('custom') -source=(https://github.com/garyhouston/${_realname}/archive/${pkgver}.tar.gz) -noextract=(${pkgver}.tar.gz) +source=(${_realname}-${pkgver}.tar.gz::https://github.com/garyhouston/${_realname}/archive/${pkgver}.tar.gz) +noextract=(${_realname}-${pkgver}.tar.gz) sha256sums=('2176def84f876b3abd845543e3b2f6bca8c5a2c7e8bd4e9034f179e67d754a4d') prepare() { - tar --exclude=ltmain.sh -zxf ${pkgver}.tar.gz + tar --exclude=ltmain.sh -zxf ${_realname}-${pkgver}.tar.gz cd "${srcdir}"/${_realname}-${pkgver} - autoreconf -f -i } build() { + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -31,15 +31,16 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install - mkdir $pkgdir/${MINGW_PREFIX}/bin - mv $pkgdir/${MINGW_PREFIX}/lib/librxspencer-0.dll $pkgdir/${MINGW_PREFIX}/bin + mkdir ${pkgdir}/${MINGW_PREFIX}/bin + mv ${pkgdir}${MINGW_PREFIX}/lib/librxspencer-0.dll ${pkgdir}/${MINGW_PREFIX}/bin install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYRIGHT" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYRIGHT" } diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index 5d3368e7da..856cd2a52b 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -4,7 +4,7 @@ _realname=scite pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") pkgver=3.5.7 -pkgrel=1 +pkgrel=2 arch=('any') url='http://www.scintilla.org/SciTE.html' license=('custom:scite') @@ -25,11 +25,13 @@ prepare() { patch -p1 -i "${srcdir}"/0001-Use-POSIX-tools-in-makefiles.patch patch -p1 -i "${srcdir}"/0002-Prefix-library-names.patch patch -p1 -i "${srcdir}"/0003-Use-FHS.patch - mkdir -p "${srcdir}"/build-${MINGW_CHOST} - cp -r "${srcdir}"/{scite,scintilla} "${srcdir}"/build-${MINGW_CHOST} + } build() { + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} + mkdir -p "${srcdir}"/build-${MINGW_CHOST} + cp -r "${srcdir}"/{scite,scintilla} "${srcdir}"/build-${MINGW_CHOST} cd "${srcdir}"/build-${MINGW_CHOST} GTK3=1 make -C scintilla/gtk @@ -40,7 +42,7 @@ build() { } package_mingw-w64-scite() { - pkgdesc='Editor with facilities for building and running programs (mingw-w64)' + pkgdesc="Editor with facilities for building and running programs (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-gtk3") optdepends=("${MINGW_PACKAGE_PREFIX}-${_realname}-defaults: Default language files") @@ -73,7 +75,7 @@ package_mingw-w64-scite() { } package_mingw-w64-scite-defaults() { - pkgdesc='Default language files for the SciTE editor (mingw-w64)' + pkgdesc="Default language files for the SciTE editor (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") cd "${srcdir}"/build-${MINGW_CHOST} diff --git a/mingw-w64-shapelib/PKGBUILD b/mingw-w64-shapelib/PKGBUILD index be5016a8c5..e297ab22ce 100644 --- a/mingw-w64-shapelib/PKGBUILD +++ b/mingw-w64-shapelib/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=shapelib - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.0 -pkgrel=1 +pkgrel=2 pkgdesc="simple C API for reading and writing ESRI Shapefiles (mingw-w64)" arch=('any') url="http://shapelib.maptools.org/" @@ -13,8 +12,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-proj") options=(strip staticlibs) source=("http://download.osgeo.org/shapelib/${_realname}-${pkgver}.tar.gz" - shapelib_autotools.patch - shapelib_backports.patch) + shapelib_autotools.patch + shapelib_backports.patch) sha1sums=('599fde6f69424fa55da281506b297f3976585b85' 'a0eb9196591e5f5841b2de09e29bf04a40cd475d' '4ae20269dd1c62679fd132baf7c1cc194af89f7f') @@ -29,19 +28,21 @@ prepare() { build() { #export lt_cv_deplibs_check_method='pass_all' + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ --enable-static + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } diff --git a/mingw-w64-silc-toolkit/PKGBUILD b/mingw-w64-silc-toolkit/PKGBUILD index eb8fc1bd4d..f4c5ac7c51 100644 --- a/mingw-w64-silc-toolkit/PKGBUILD +++ b/mingw-w64-silc-toolkit/PKGBUILD @@ -5,14 +5,15 @@ _realname=silc-toolkit pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) pkgver=1.1.12 pkgrel=2 -url="http://http://silcnet.org" +url="http://silcnet.org/" pkgdesc="Secure Internet Live Conferencing (mingw-w64)" license=('GPL2' 'BSD') arch=('any') depends=(${MINGW_PACKAGE_PREFIX}-libsystre) makedepends=(${MINGW_PACKAGE_PREFIX}-gcc) options=('staticlibs' '!emptydirs') -source=("https://downloads.sourceforge.net/project/silc/silc/toolkit/sources/silc-toolkit-${pkgver}.tar.gz" +source=(#https://github.com/silc/silc/archive/${_realname//-/.}.${pkgver}.tar.gz + "https://downloads.sourceforge.net/project/silc/silc/toolkit/sources/silc-toolkit-${pkgver}.tar.gz" 001-remove-outdated-mno-cygwin-gcc-option.patch 002-fixes-for-64-bit.patch 003-fix-references-to-slash-usr.patch @@ -28,33 +29,36 @@ md5sums=('321536224d4dee2423a3fd05af651eff' '914cb7a97cd8dcbff35e84090a840536') prepare() { - cd "$srcdir/${_realname}-${pkgver}" - patch -p1 < "${startdir}"/001-remove-outdated-mno-cygwin-gcc-option.patch - patch -p1 < "${startdir}"/002-fixes-for-64-bit.patch - patch -p1 < "${startdir}"/003-fix-references-to-slash-usr.patch - patch -p1 < "${startdir}"/004-link-with-regex-and-silc.patch - patch -p1 < "${startdir}"/005-fix-some-compiler-check.patch - patch -p1 < "${startdir}"/006-disable-dllimport-for-silcske.patch + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i "${srcdir}"/001-remove-outdated-mno-cygwin-gcc-option.patch + patch -p1 -i "${srcdir}"/002-fixes-for-64-bit.patch + patch -p1 -i "${srcdir}"/003-fix-references-to-slash-usr.patch + patch -p1 -i "${srcdir}"/004-link-with-regex-and-silc.patch + patch -p1 -i "${srcdir}"/005-fix-some-compiler-check.patch + patch -p1 -i "${srcdir}"/006-disable-dllimport-for-silcske.patch autoreconf -sif } build() { - cd "$srcdir/${_realname}-${pkgver}" + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} + cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} + #mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + #cd "${srcdir}/${_realname}-${pkgver}" ./configure \ --prefix=${MINGW_PREFIX} \ --with-simdir=${MINGW_PREFIX}/lib/silc/modules \ --with-win32 + make } package() { - cd "$srcdir/${_realname}-${pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install - # License - cd "${pkgdir}${MINGW_PREFIX}/share" - mkdir -p licenses/${_realname} - mv -v doc/${_realname}/COPYING licenses/${_realname}/COPYING - mv -v doc/${_realname}/GPL licenses/${_realname}/GPL - mv -v doc/${_realname}/BSD licenses/${_realname}/BSD + # Licenses + install -Dm644 COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING + install -Dm644 GPL ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/GPL + install -Dm644 BSD ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/BSD } diff --git a/mingw-w64-snappy/002-am_prog-ar.patch b/mingw-w64-snappy/002-am_prog-ar.patch new file mode 100644 index 0000000000..4e4f054217 --- /dev/null +++ b/mingw-w64-snappy/002-am_prog-ar.patch @@ -0,0 +1,10 @@ +--- snappy-1.1.3/configure.ac.orig 2015-07-21 22:22:01.325936400 +0300 ++++ snappy-1.1.3/configure.ac 2015-07-21 22:22:14.231674600 +0300 +@@ -12,6 +12,7 @@ + + # These are flags passed to automake (though they look like gcc flags!) + AM_INIT_AUTOMAKE([-Wall]) ++AM_PROG_AR + + LT_INIT + AC_SUBST([LIBTOOL_DEPS]) diff --git a/mingw-w64-snappy/PKGBUILD b/mingw-w64-snappy/PKGBUILD index 0f7d2f474a..32c5a32dc1 100644 --- a/mingw-w64-snappy/PKGBUILD +++ b/mingw-w64-snappy/PKGBUILD @@ -2,40 +2,42 @@ _realname=snappy pkgname="$MINGW_PACKAGE_PREFIX-${_realname}" -pkgver=1.1.1 +pkgver=1.1.3 pkgrel=1 pkgdesc="A fast C++ compressor/decompressor library (mingw-w64)" arch=('any') license=('New BSD License') -url="http://snappy.googlecode.com" +url="hhttps://github.com/google/snappy" depends=("$MINGW_PACKAGE_PREFIX-gcc-libs") makedepends=("$MINGW_PACKAGE_PREFIX-gcc" "make") -checkdepends=("$MINGW_PACKAGE_PREFIX-zlib" - "$MINGW_PACKAGE_PREFIX-lzo2") -source=("http://snappy.googlecode.com/files/${_realname}-$pkgver.tar.gz" - 001-no-undefined.patch) -md5sums=('8887e3b7253b22a31f5486bca3cbc1c2' - '8df88ce30eafb903bb9e51a57b947da7') +checkdepends=("$MINGW_PACKAGE_PREFIX-lzo2" + "$MINGW_PACKAGE_PREFIX-zlib") +source=(https://github.com/google/snappy/releases/download/${pkgver}/${_realname}-${pkgver}.tar.gz + 001-no-undefined.patch + 002-am_prog-ar.patch) +md5sums=('7358c82f133dc77798e4c2062a749b73' + '8df88ce30eafb903bb9e51a57b947da7' + '4c366576689cd1ad73f9daeb4cba40e7') prepare() { - pushd ${_realname}-$pkgver > /dev/null + cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-no-undefined.patch + patch -p1 -i ${srcdir}/002-am_prog-ar.patch autoreconf -fi - popd > /dev/null +} +build() { + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - ../${_realname}-$pkgver/configure \ + ../${_realname}-${pkgver}/configure \ --prefix="$MINGW_PREFIX" \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} -} - -build() { - cd "build-${MINGW_CHOST}" + make } @@ -46,5 +48,5 @@ check() { package() { cd "build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-sparsehash/PKGBUILD b/mingw-w64-sparsehash/PKGBUILD index dc4df8a1f2..c41270b777 100644 --- a/mingw-w64-sparsehash/PKGBUILD +++ b/mingw-w64-sparsehash/PKGBUILD @@ -4,17 +4,18 @@ _realname=sparsehash pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.2 -pkgrel=2 +pkgrel=3 pkgdesc="Library that contains several hash-map implementations, including implementations that optimize for space or speed (mingw-w64)" arch=("any") url="http://code.google.com/p/sparsehash" license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('strip' '!libtool') -source=("http://sparsehash.googlecode.com/files/${_realname}-$pkgver.tar.gz") +source=("http://sparsehash.googlecode.com/files/${_realname}-${pkgver}.tar.gz") md5sums=('1db92ed7f257d9b5f14a309d75e8a1d4') build() { + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" @@ -23,12 +24,13 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir/" install + make DESTDIR="${pkgdir}" install install -D -m644 ../${_realname}-${pkgver}/COPYING ${MINGW_PREFIX}/share/licenses/${_realname}/COPYING } diff --git a/mingw-w64-spatialite-tools/PKGBUILD b/mingw-w64-spatialite-tools/PKGBUILD index d1d25243b6..6476118686 100644 --- a/mingw-w64-spatialite-tools/PKGBUILD +++ b/mingw-w64-spatialite-tools/PKGBUILD @@ -4,8 +4,8 @@ _realname=spatialite-tools pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.2.0 -pkgrel=3 +pkgver=4.3.0 +pkgrel=1 pkgdesc='Set of CLI tools for spatialite (mingw-w64)' arch=('any') url='https://www.gaia-gis.it/fossil/spatialite-tools/index' @@ -13,10 +13,16 @@ license=('MPL') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-libspatialite" "${MINGW_PACKAGE_PREFIX}-readosm" "${MINGW_PACKAGE_PREFIX}-libiconv") options=('!libtool') -source=("https://www.gaia-gis.it/gaia-sins/${_realname}-sources/${_realname}-$pkgver.tar.gz") -sha256sums=('890c4cdab5b6b450df4f98341110dd79df20b3cc3af4fecd6e4a06cfc718cdbc') +source=("https://www.gaia-gis.it/gaia-sins/${_realname}-sources/${_realname}-${pkgver}.tar.gz") +sha256sums=('f739859bc04f38735591be2f75009b98a2359033675ae310dffc3114a17ccf89') + +prepare() { + cd ${_realname}-${pkgver} + autoreconf -fiv +} build() { + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" LDFLAGS+=" -liconv" cd "${srcdir}/build-${MINGW_CHOST}" @@ -25,6 +31,7 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} + make } diff --git a/mingw-w64-spice-gtk/001-win.patch b/mingw-w64-spice-gtk/001-win.patch index eb37366af7..4cd2752eba 100644 --- a/mingw-w64-spice-gtk/001-win.patch +++ b/mingw-w64-spice-gtk/001-win.patch @@ -1,6 +1,6 @@ ---- ./gtk/Makefile.am.orig 2014-12-06 11:07:51.611626700 +0100 -+++ ./gtk/Makefile.am 2014-12-06 11:19:08.186671400 +0100 -@@ -599,6 +599,7 @@ +--- ./src/Makefile.am.orig 2014-12-06 11:07:51.611626700 +0100 ++++ ./src/Makefile.am 2014-12-06 11:19:08.186671400 +0100 +@@ -608,6 +608,7 @@ INTROSPECTION_GIRS = INTROSPECTION_SCANNER_ARGS = --warn-all --accept-unprefixed --add-include-path=$(builddir) $(PREFIX_ARGS) INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir) diff --git a/mingw-w64-spice-gtk/002-lz4-support.patch b/mingw-w64-spice-gtk/002-lz4-support.patch deleted file mode 100644 index 9d18a7807a..0000000000 --- a/mingw-w64-spice-gtk/002-lz4-support.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- spice-gtk-0.27/spice-common/common/canvas_base.c.orig 2015-01-15 21:53:20.110200000 +0300 -+++ spice-gtk-0.27/spice-common/common/canvas_base.c 2015-01-15 21:54:07.503000000 +0300 -@@ -27,7 +27,11 @@ - #include - - #ifdef USE_LZ4 -+#ifdef _WIN32 -+#include -+#else - #include -+#endif - #include - #endif - #include diff --git a/mingw-w64-spice-gtk/003-python-linking.patch b/mingw-w64-spice-gtk/003-python-linking.patch index dd456cc66a..49764811b7 100644 --- a/mingw-w64-spice-gtk/003-python-linking.patch +++ b/mingw-w64-spice-gtk/003-python-linking.patch @@ -14,8 +14,8 @@ dnl check if the headers exist: save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" ---- spice-gtk-0.27/gtk/Makefile.am.orig 2014-12-11 16:33:28.000000000 +0300 -+++ spice-gtk-0.27/gtk/Makefile.am 2015-01-15 22:26:03.273400000 +0300 +--- spice-gtk-0.27/src/Makefile.am.orig 2014-12-11 16:33:28.000000000 +0300 ++++ spice-gtk-0.27/src/Makefile.am 2015-01-15 22:26:03.273400000 +0300 @@ -562,9 +562,9 @@ install_pyexecLTLIBRARIES = install-pyexecLTLIBRARIES $(install_pyexecLTLIBRARIES): install-libLTLIBRARIES @@ -24,7 +24,7 @@ +SpiceClientGtk_la_LIBADD = libspice-client-gtk-2.0.la libspice-client-glib-2.0.la $(PYGTK_LIBS) $(PYTHON_LIBS) SpiceClientGtk_la_CFLAGS = $(GTK_CFLAGS) $(PYTHON_INCLUDES) $(PYGTK_CFLAGS) $(WARN_PYFLAGS) -SpiceClientGtk_la_LDFLAGS = -module -avoid-version -fPIC -+SpiceClientGtk_la_LDFLAGS = -module -avoid-version -no-undefined -fPIC ++SpiceClientGtk_la_LDFLAGS = -module -avoid-version -no-undefined SpiceClientGtk_la_SOURCES = spice-client-gtk-module.c nodist_SpiceClientGtk_la_SOURCES = spice-client-gtk-module.defs.c diff --git a/mingw-w64-spice-gtk/PKGBUILD b/mingw-w64-spice-gtk/PKGBUILD index ccea57c13d..8f0ed30342 100644 --- a/mingw-w64-spice-gtk/PKGBUILD +++ b/mingw-w64-spice-gtk/PKGBUILD @@ -2,7 +2,7 @@ _realname=spice-gtk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.27 +pkgver=0.29 pkgrel=1 arch=('any') pkgdesc="GTK3 widget for SPICE clients (mingw-w64)" @@ -24,26 +24,24 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs') license=("GPL 2") url="http://www.spice-space.org" -source=(http://www.spice-space.org/download/gtk/${_realname}-$pkgver.tar.bz2 +source=(http://www.spice-space.org/download/gtk/${_realname}-${pkgver}.tar.bz2 001-win.patch - 002-lz4-support.patch 003-python-linking.patch) -sha256sums=('5075e07010db434146649110ade31f5a6cdcdb4efbb4bedd40f1a977f090430c' - 'b607df1fb112bb21d174833eb549f7295df9898104755c27da717106ed52eaab' - '8d1d3290345bfa61a31780d8dbaf0e0b3663c1eea0dd10af32929b6a0612deb0' - '4ce293c1e6821f5316a52e87cbc5a03ef8595c7feef472cad0d16f1145bdbaa6') +sha256sums=('44c7e22713246a2054c3c3b6e0280fd4c1fdbd2c8d33e5eb95bcda4748d5e973' + 'f2a623c7268ef7c5a0a2084a4698b0d7c7c0e6fd067f2419c21d95c5b3fdf2d6' + 'bd4f60a9ff6c00f588d36721b22f1abeb3edf91c9f81916c80aaa71bafc755a0') prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-win.patch - patch -p1 -i ${srcdir}/002-lz4-support.patch patch -p1 -i ${srcdir}/003-python-linking.patch autoreconf -isf } build() { + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -64,6 +62,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-spice-protocol/PKGBUILD b/mingw-w64-spice-protocol/PKGBUILD index cb97e92a7f..3205bb8b81 100644 --- a/mingw-w64-spice-protocol/PKGBUILD +++ b/mingw-w64-spice-protocol/PKGBUILD @@ -2,21 +2,22 @@ _realname=spice-protocol pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.12.7 +pkgver=0.12.8 pkgrel=1 arch=('any') pkgdesc="SPICE protocol headers (mingw-w64)" options=('strip' 'staticlibs') license=("GPL 2") url="http://www.spice-space.org" -source=(http://www.spice-space.org/download/releases/${_realname}-$pkgver.tar.bz2) -sha256sums=('96c6cb73361816ed19bfd8536f65d4547da35709aa00af1380e650c1174916c2') +source=(http://www.spice-space.org/download/releases/${_realname}-${pkgver}.tar.bz2) +sha256sums=('116d57a1893c08f8f7801579dffb4c1568a4fb4566aa75c84a2685f150aae67c') prepare() { cd "${srcdir}"/${_realname}-${pkgver} } build() { + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -31,6 +32,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-sqlite-analyzer/PKGBUILD b/mingw-w64-sqlite-analyzer/PKGBUILD index b61d63cf42..8add25a246 100644 --- a/mingw-w64-sqlite-analyzer/PKGBUILD +++ b/mingw-w64-sqlite-analyzer/PKGBUILD @@ -2,7 +2,7 @@ _realname=sqlite-analyzer pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.8.9 +pkgver=3.8.10 pkgrel=1 pkgdesc="An analysis program SQLite database files (mingw-w64)" url="http://www.sqlite.org/" diff --git a/mingw-w64-stxxl-git/PKGBUILD b/mingw-w64-stxxl-git/PKGBUILD index 9ca65da3a8..c47173f447 100644 --- a/mingw-w64-stxxl-git/PKGBUILD +++ b/mingw-w64-stxxl-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=stxxl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=1.4.1.2.g6a79caf +pkgver=1.4.1.343.gf7389c7 pkgrel=1 pkgdesc="Standard Template Library for Extra Large Data Sets (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ md5sums=('SKIP' '401d99e0a4852603054606a815e9a949') pkgver() { - cd "$_realname" + cd "${_realname}" git describe --tags | sed 's|-|.|g' } @@ -31,28 +31,26 @@ prepare() { build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ - -DUSE_GNU_PARALLEL=ON \ - -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON \ + -DUSE_GNU_PARALLEL=OFF \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_STATIC_LIBS=ON \ ../${_realname} + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" install -Dm644 ../${_realname}/LICENSE_1_0.txt \ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE_1_0.txt" - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - local PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/stxxl.pc } diff --git a/mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch b/mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch index 4110381e0c..9ede18ef0a 100644 --- a/mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch +++ b/mingw-w64-suitesparse/0001-Win32-Do-not-link-librt.patch @@ -142,18 +142,6 @@ diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config_Mac.mk SuiteSpa # For "make install" INSTALL_LIB = /usr/local/lib -diff -urN SuiteSparse.orig/CHOLMOD/Tcov/Makefile SuiteSparse/CHOLMOD/Tcov/Makefile ---- SuiteSparse.orig/CHOLMOD/Tcov/Makefile 2015-02-02 10:50:26.788053900 +0000 -+++ SuiteSparse/CHOLMOD/Tcov/Makefile 2015-02-02 11:03:05.250142500 +0000 -@@ -31,7 +31,7 @@ - # LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin - # LIB = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin - # Linux: -- LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin -lpthread -lrt -+ LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin -lpthread - # Mac: - # LIB = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin -lpthread - diff -urN SuiteSparse.orig/UMFPACK/Tcov/Make.1 SuiteSparse/UMFPACK/Tcov/Make.1 --- SuiteSparse.orig/UMFPACK/Tcov/Make.1 2015-02-02 11:16:00.669134800 +0000 +++ SuiteSparse/UMFPACK/Tcov/Make.1 2015-02-02 11:16:54.447426900 +0000 diff --git a/mingw-w64-suitesparse/0003-MSYS2-Use-OpenBLAS.patch b/mingw-w64-suitesparse/0003-MSYS2-Use-OpenBLAS.patch index 3c07d18ae4..87df609d37 100644 --- a/mingw-w64-suitesparse/0003-MSYS2-Use-OpenBLAS.patch +++ b/mingw-w64-suitesparse/0003-MSYS2-Use-OpenBLAS.patch @@ -1,34 +1,3 @@ -diff -urN SuiteSparse.orig/CHOLMOD/Tcov/Makefile SuiteSparse/CHOLMOD/Tcov/Makefile ---- SuiteSparse.orig/CHOLMOD/Tcov/Makefile 2015-02-02 11:05:02.708744500 +0000 -+++ SuiteSparse/CHOLMOD/Tcov/Makefile 2015-02-02 11:08:19.569870900 +0000 -@@ -31,9 +31,11 @@ - # LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin - # LIB = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin - # Linux: -- LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin -lpthread -+# LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin -lpthread - # Mac: - # LIB = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin -lpthread -+# MSYS2 (OpenBlas): -+ LIB = $(METIS) -lm -lopenblas -lgfortran -lgfortranbegin -lpthread - - # Solaris - # LIB = $(METIS) -xlic_lib=sunperf -diff -urN SuiteSparse.orig/SPQR/Tcov/Makefile SuiteSparse/SPQR/Tcov/Makefile ---- SuiteSparse.orig/SPQR/Tcov/Makefile 2015-02-02 11:05:03.837901300 +0000 -+++ SuiteSparse/SPQR/Tcov/Makefile 2015-02-02 11:10:39.284290900 +0000 -@@ -24,8 +24,10 @@ - # Use the standard reference BLAS, and LAPACK, both compiled with -g, - # for best diagnostics. Also, some BLAS (such as the Goto BLAS) cause - # problems for Valgrind (using instructions that Valgrind doesn't understand). -- FLIB = -llapack_plain -lblas_plain -lgfortran -+# FLIB = -llapack_plain -lblas_plain -lgfortran - # FLIB = -llapack_plain -lblas_plain -lgfortran -lg2c -+# MSYS2 (OpenBlas): -+ FLIB = -lopenblas -lgfortran - - # This can be used, but severe valgrind failures may occur in the BLAS, - # because of how the BLAS is optimized: diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk --- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config.mk 2015-02-02 11:05:04.040693500 +0000 +++ SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk 2015-02-02 11:09:14.108472900 +0000 diff --git a/mingw-w64-suitesparse/PKGBUILD b/mingw-w64-suitesparse/PKGBUILD index 4e68077903..339e9ce755 100644 --- a/mingw-w64-suitesparse/PKGBUILD +++ b/mingw-w64-suitesparse/PKGBUILD @@ -2,7 +2,7 @@ _realname=SuiteSparse pkgname=("${MINGW_PACKAGE_PREFIX}-suitesparse") -pkgver=4.4.3 +pkgver=4.4.4 pkgrel=1 pkgdesc='A suite of sparse matrix algorithms (mingw-w64)' license=('GPL') @@ -15,10 +15,10 @@ source=("http://faculty.cse.tamu.edu/davis/${_realname}/${_realname}-${pkgver}.t depends=("${MINGW_PACKAGE_PREFIX}-openblas") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran") options=('staticlibs') -md5sums=('b2e6f2373d480aa6f0ea5ca3d5d531c3' - '347ab64c5fd737c44268a6e586ecd156' +md5sums=('e0af74476935c9ff6d971df8bb6b82fc' + '3f8ff96bbe6d21ea40d13768d7838cae' '1773305ad707db5b88d253ea914b975b' - 'ed48448a0da066540c0d3c9179865995' + '4aea7bb0e0784b604d3be30acc657876' '8fe69f053f4e49768568efc57961523b') prepare() { @@ -30,7 +30,7 @@ prepare() { } build() { - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} cp -rf "${srcdir}"/${_realname} build-${CARCH} cd "${srcdir}"/build-${CARCH} diff --git a/mingw-w64-tcllib/PKGBUILD b/mingw-w64-tcllib/PKGBUILD index c5cf9236d2..7999da1c0a 100644 --- a/mingw-w64-tcllib/PKGBUILD +++ b/mingw-w64-tcllib/PKGBUILD @@ -5,14 +5,14 @@ _realname=tcllib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.17 -pkgrel=1 +pkgrel=2 pkgdesc="Set of pure-Tcl extensions." arch=('any') url="http://core.tcl.tk/tcllib/" license=('bsd') depends=("${MINGW_PACKAGE_PREFIX}-tcl") source=(https://github.com/tcltk/tcllib/archive/tcllib_${pkgver/./_}.tar.gz) -md5sums=('081ec241c1a9c60730b8c6e80b7ff066') +md5sums=('fdeb9efd3a9da6361ef2451f2e5dc6b1') package(){ cd ${srcdir}/tcllib-tcllib_${pkgver/./_} diff --git a/mingw-w64-tklib/PKGBUILD b/mingw-w64-tklib/PKGBUILD index bb90fe4c48..887e92ffdd 100644 --- a/mingw-w64-tklib/PKGBUILD +++ b/mingw-w64-tklib/PKGBUILD @@ -3,31 +3,31 @@ _realname=tklib pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=0.6 -pkgrel=2 -pkgdesc='A companion to Tcllib, for Tk related packages.' +pkgrel=3 +pkgdesc="A companion to Tcllib, for Tk related packages (mingw-w64)" arch=('any') url='http://core.tcl.tk/tklib/home' license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-tk" "${MINGW_PACKAGE_PREFIX}-tcllib") source=("https://github.com/tcltk/tklib/archive/tklib_${pkgver/./_}.tar.gz" - '001-no-dateentry-test-code.patch') -md5sums=('233c195515505d43a72680269cbcbaed' + '001-no-dateentry-test-code.patch') +md5sums=('7e4b9915ed2ef8ad4516f818c4f11a90' 'dd548d2d73f784ee2eac5d3f1baadb6d') prepare() { - cd ${srcdir}/tklib-tklib_${pkgver/./_} - patch -Np1 -i "${srcdir}/001-no-dateentry-test-code.patch" + cd ${srcdir}/tklib-tklib_${pkgver/./_} + patch -Np1 -i "${srcdir}/001-no-dateentry-test-code.patch" } build() { - cd ${srcdir}/tklib-tklib_${pkgver/./_} - ./configure --prefix="${MINGW_PREFIX}" - make all + cd ${srcdir}/tklib-tklib_${pkgver/./_} + ./configure --prefix="${MINGW_PREFIX}" + make all } package() { - cd ${srcdir}/tklib-tklib_${pkgver/./_} - make DESTDIR="${pkgdir}" install - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/ - cp license.terms ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING + cd ${srcdir}/tklib-tklib_${pkgver/./_} + make DESTDIR="${pkgdir}" install + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/ + cp license.terms ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING } diff --git a/mingw-w64-tolua/PKGBUILD b/mingw-w64-tolua/PKGBUILD index 80ac979bd2..fe7386adba 100644 --- a/mingw-w64-tolua/PKGBUILD +++ b/mingw-w64-tolua/PKGBUILD @@ -1,11 +1,10 @@ # Maintainer: Alexey Pavlov _realname=tolua - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.2.0 -pkgrel=2 -pkgdesc="A tool that greatly simplifies the integration of C/C++ code with Lua. (mingw-w64)" +pkgrel=3 +pkgdesc="A tool that greatly simplifies the integration of C/C++ code with Lua (mingw-w64)" arch=('any') url="http://www.tecgraf.puc-rio.br/~celes/tolua/" license=('MIT') diff --git a/mingw-w64-totem-pl-parser/PKGBUILD b/mingw-w64-totem-pl-parser/PKGBUILD index 7a605dce89..219d38bb5c 100644 --- a/mingw-w64-totem-pl-parser/PKGBUILD +++ b/mingw-w64-totem-pl-parser/PKGBUILD @@ -3,22 +3,22 @@ _realname=totem-pl-parser pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.10.5 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Simple GObject-based library to parse and save a host of playlist formats (mingw-w64)" options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gmime" "${MINGW_PACKAGE_PREFIX}-libsoup" "${MINGW_PACKAGE_PREFIX}-libarchive" - "${MINGW_PACKAGE_PREFIX}-libgcrypt" - "${MINGW_PACKAGE_PREFIX}-gmime") + "${MINGW_PACKAGE_PREFIX}-libgcrypt") makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "gtk-doc") license=("LGPL 2") url="http://www.gnome.org" -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) sha256sums=('a746580f61b678029dadaa824a6923445afd944d12c40c5fccb27159799c8137' 'f7aa9fec9fdeb8671bcd145b5900e1beb9b8615cb42354b91efe54fef01a247e') @@ -32,6 +32,7 @@ prepare() { } build() { + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -49,8 +50,8 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB" } diff --git a/mingw-w64-usbredir/PKGBUILD b/mingw-w64-usbredir/PKGBUILD index b18f3621f0..80421ae9e8 100644 --- a/mingw-w64-usbredir/PKGBUILD +++ b/mingw-w64-usbredir/PKGBUILD @@ -3,14 +3,14 @@ _realname=usbredir pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.7 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Parser for the usbredir protocol (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-libusb") options=('strip' 'staticlibs') license=("GPL 2") url="http://www.spice-space.org" -source=(http://www.spice-space.org/download/usbredir/${_realname}-$pkgver.tar.bz2) +source=(http://www.spice-space.org/download/usbredir/${_realname}-${pkgver}.tar.bz2) sha256sums=('0a63a0712b5dc62be9cca44f97270fea5d1ec1fe7dde0c11dc74a01c8e2006aa') prepare() { @@ -18,6 +18,7 @@ prepare() { } build() { + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} @@ -32,6 +33,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-win7appid/PKGBUILD b/mingw-w64-win7appid/PKGBUILD index 2c2784a062..c804b1c2a6 100644 --- a/mingw-w64-win7appid/PKGBUILD +++ b/mingw-w64-win7appid/PKGBUILD @@ -3,16 +3,13 @@ _realname=win7appid pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1 -pkgrel=2 +pkgrel=3 pkgdesc='Windows 7 (and up) shortcut application id tool' arch=('any') url='https://code.google.com/p/win7appid' license=('custom') -makedepends=( - "gzip" - "${MINGW_PACKAGE_PREFIX}-gcc" -) -depends=() +makedepends=("gzip" + "${MINGW_PACKAGE_PREFIX}-gcc") options=('strip') source=( "https://win7appid.googlecode.com/svn/trunk/Win7AppId.cpp" diff --git a/mingw-w64-winico/PKGBUILD b/mingw-w64-winico/PKGBUILD index 6b4dc24d81..7a1f6b2242 100644 --- a/mingw-w64-winico/PKGBUILD +++ b/mingw-w64-winico/PKGBUILD @@ -3,13 +3,13 @@ _realname=winico pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.6 -pkgrel=1 -pkgdesc='Tk extension for Windows for enhanced icon handling and manipulation of an icon in the Windows taskbar and system tray.' +pkgrel=2 +pkgdesc="Tk extension for Windows for enhanced icon handling and manipulation of an icon in the Windows taskbar and system tray (mingw-w64)" arch=('any') url="http://tktable.sourceforge.net/" license=('custom') depends=("${MINGW_PACKAGE_PREFIX}-tk") -source=("http://sourceforge.net/projects/tktable/files/${_realname}/$pkgver/${_realname}${pkgver/./}src.zip" +source=("http://sourceforge.net/projects/tktable/files/${_realname}/${pkgver}/${_realname}${pkgver/./}src.zip" 001-Fix-GCL_ICON.patch 002-Fix-pointer-cast.patch) md5sums=('e8351b14564e9a893757388a10fd2305' diff --git a/mingw-w64-wintab-sdk/PKGBUILD b/mingw-w64-wintab-sdk/PKGBUILD index 8a2c776e90..13b8141c0d 100644 --- a/mingw-w64-wintab-sdk/PKGBUILD +++ b/mingw-w64-wintab-sdk/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=wintab-sdk - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4 -pkgrel=1 +pkgrel=2 pkgdesc="Wintab Interface Specification (mingw-w64)" arch=('any') url="http://www.wacomeng.com/windows/docs/Wintab_v140.htm" diff --git a/mingw-w64-wslay/PKGBUILD b/mingw-w64-wslay/PKGBUILD index bdcd6c2a5c..525aea0d7d 100644 --- a/mingw-w64-wslay/PKGBUILD +++ b/mingw-w64-wslay/PKGBUILD @@ -3,7 +3,7 @@ _realname=wslay pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.0 -pkgrel=1 +pkgrel=2 pkgdesc="The WebSocket library in C (mingw-w64)" arch=('any') url="https://github.com/tatsuhiro-t/wslay" @@ -23,7 +23,7 @@ build() { [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-release-${pkgver}/configure \ + ../${_realname}-release-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} diff --git a/mingw-w64-zeromq/PKGBUILD b/mingw-w64-zeromq/PKGBUILD index 878462c0bd..75fe4d3298 100644 --- a/mingw-w64-zeromq/PKGBUILD +++ b/mingw-w64-zeromq/PKGBUILD @@ -2,8 +2,8 @@ _realname=zeromq pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.0.5 -pkgrel=2 +pkgver=4.1.2 +pkgrel=1 pkgdesc="Fast messaging system built on sockets, C and C++ bindings. aka 0MQ, ZMQ. (mingw-w64)" arch=('any') url="http://www.zeromq.org" @@ -11,13 +11,14 @@ license=("LGPL") depends=("${MINGW_PACKAGE_PREFIX}-libsodium") makedepends=('') options=('staticlibs' '!strip' '!buildflags') -source=("http://download.zeromq.org/zeromq-$pkgver.tar.gz") -md5sums=('73c39f5eb01b9d7eaf74a5d899f1d03d') +source=("http://download.zeromq.org/${_realname}-${pkgver}.tar.gz") +md5sums=('159c0c56a895472f02668e692d122685') build() { - mkdir -p $srcdir/build-${CARCH} - cd $srcdir/build-${CARCH} - ../zeromq-${pkgver}/configure \ + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p ${srcdir}/build-${CARCH} + cd ${srcdir}/build-${CARCH} + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -30,5 +31,5 @@ package() { mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } From 19d5d579a90df79924fc0b243cdaa15e571bcb24 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 00:45:13 +0300 Subject: [PATCH 1313/2060] WIP update for GCC-5.x --- mingw-w64-python-binwalk/PKGBUILD | 28 +++++--- mingw-w64-python-h5py/001-mingw-python.patch | 26 +++++++ mingw-w64-python-h5py/PKGBUILD | 67 +++++++++---------- mingw-w64-python-h5py/setup.py.patch | 19 ------ mingw-w64-tclvfs/PKGBUILD | 18 ++--- mingw-w64-tclx/PKGBUILD | 16 ++--- mingw-w64-tkimg/PKGBUILD | 8 +-- mingw-w64-tktable/PKGBUILD | 10 +-- .../001-compile-fixes.patch | 24 ------- mingw-w64-winsparkle-git/PKGBUILD | 32 ++++----- mingw-w64-xmlstarlet/PKGBUILD | 14 ++-- 11 files changed, 125 insertions(+), 137 deletions(-) create mode 100644 mingw-w64-python-h5py/001-mingw-python.patch delete mode 100644 mingw-w64-python-h5py/setup.py.patch diff --git a/mingw-w64-python-binwalk/PKGBUILD b/mingw-w64-python-binwalk/PKGBUILD index fb7ad0c1e9..068b8bb0ef 100644 --- a/mingw-w64-python-binwalk/PKGBUILD +++ b/mingw-w64-python-binwalk/PKGBUILD @@ -1,33 +1,41 @@ # Maintainer: Martell Malone _realname=binwalk -pkgname=("${MINGW_PACKAGE_PREFIX}-python-${_realname}") # "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgname=("${MINGW_PACKAGE_PREFIX}-python3-${_realname}") #"${MINGW_PACKAGE_PREFIX}-python2-${_realname}" pkgver=2.0.1 -pkgrel=1 -pkgdesc="A tool for searching a given binary image for embedded files" +pkgrel=2 +pkgdesc="A tool for searching a given binary image for embedded files (mingw-w64)" arch=('any') url="http://binwalk.org" license=('MIT') -depends=('git' 'zlib' 'xz' 'gzip' 'bzip2' 'tar') -source=(https://github.com/devttys0/${_realname}/archive/v${pkgver}.tar.gz) +depends=("${MINGW_PACKAGE_PREFIX}-zlib" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-systre" + "${MINGW_PACKAGE_PREFIX}-bzip2" + #'tar' + #'git' + ) +source=(${_realname}-${pkgver}.tar.gz::https://github.com/devttys0/${_realname}/archive/v${pkgver}.tar.gz) md5sums=('ffeea02b765e44ac7a2455398011fc73') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - echo $PYTHON - sed -i "s|\$(PYTHON) ./setup.py install \$(PREFIX)|\$(PYTHON) ./setup.py install \"--prefix=${pkgdir}/usr\"|" Makefile.in + local pyt=${MINGW_PREFIX}/bin/python3 + sed -i "s|\$(PYTHON) ./setup.py install \$(PREFIX)|\$(PYTHON) ./setup.py install \"--prefix=${MINGW_PREFIX} --root=${pkgdir}\"|" Makefile.in autoconf } build() { cd "${srcdir}/${_realname}-${pkgver}" - ./configure --build=${CHOST} \ - --prefix=/usr + ./configure \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} + make } package() { cd "${srcdir}/${_realname}-${pkgver}" make DESTDIR="${pkgdir}" install - install -m 644 -D "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}/usr/share/licenses/${_realname}/LICENSE" + install -m 644 -D "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-python-h5py/001-mingw-python.patch b/mingw-w64-python-h5py/001-mingw-python.patch new file mode 100644 index 0000000000..c12a8eb7ab --- /dev/null +++ b/mingw-w64-python-h5py/001-mingw-python.patch @@ -0,0 +1,26 @@ +--- h5py-2.5.0/setup_build.py.orig 2015-07-21 19:33:54.858023400 +0300 ++++ h5py-2.5.0/setup_build.py 2015-07-21 19:37:16.980584200 +0300 +@@ -17,6 +17,7 @@ + from functools import reduce + import api_gen + ++from sysconfig import _POSIX_BUILD + + def localpath(*args): + return op.abspath(reduce(op.join, (op.dirname(__file__),)+args)) +@@ -36,7 +37,14 @@ + localpath("lzf/lzf/lzf_d.c")]} + + +-if sys.platform.startswith('win'): ++if _POSIX_BUILD: ++ COMPILER_SETTINGS = { ++ 'libraries' : ['hdf5', 'hdf5_hl'], ++ 'include_dirs' : [localpath('lzf'), '/opt/local/include', '/usr/local/include'], ++ 'library_dirs' : ['/opt/local/lib', '/usr/local/lib'], ++ 'define_macros' : [('H5_USE_16_API', None), ('_HDF5USEDLL_', None)] } ++ ++elif sys.platform.startswith('win'): + COMPILER_SETTINGS = { + 'libraries' : ['h5py_hdf5', 'h5py_hdf5_hl'], + 'include_dirs' : [localpath('lzf'), localpath('windows')], diff --git a/mingw-w64-python-h5py/PKGBUILD b/mingw-w64-python-h5py/PKGBUILD index 6ab453bfa7..a6c2cefb37 100644 --- a/mingw-w64-python-h5py/PKGBUILD +++ b/mingw-w64-python-h5py/PKGBUILD @@ -3,78 +3,75 @@ _realname=h5py pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=2.3.1 +pkgver=2.5.0 pkgrel=1 -pkgdesc="General-purpose Python bindings for the HDF5 library. (mingw-w64)" +pkgdesc="General-purpose Python bindings for the HDF5 library (mingw-w64)" arch=('any') url="http://www.h5py.org" license=('BSD') -makedepends=( - "${MINGW_PACKAGE_PREFIX}-python2-numpy" - "${MINGW_PACKAGE_PREFIX}-python3-numpy" - "${MINGW_PACKAGE_PREFIX}-cython" - "${MINGW_PACKAGE_PREFIX}-cython2" - "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-hdf5" -) -source=( - https://pypi.python.org/packages/source/h/h5py/h5py-$pkgver.tar.gz - setup.py.patch - lzf_c.c.patch -) -md5sums=('8f32f96d653e904d20f9f910c6d9dd91' - '07604b410e29df82c06a9add19b755a5' +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-numpy" + "${MINGW_PACKAGE_PREFIX}-python3-numpy" + "${MINGW_PACKAGE_PREFIX}-python2-six" + "${MINGW_PACKAGE_PREFIX}-python3-six" + "${MINGW_PACKAGE_PREFIX}-cython" + "${MINGW_PACKAGE_PREFIX}-cython2" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-hdf5" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +source=(https://pypi.python.org/packages/source/h/h5py/h5py-${pkgver}.tar.gz + 001-mingw-python.patch + lzf_c.c.patch) +md5sums=('6e4301b5ad5da0d51b0a1e5ac19e3b74' + 'cd36077bf04fb855b54c8bda5832dbd6' '8c28048812d378a8a9330dbd21def864') prepare() { - cd $_realname-$pkgver - patch -p1 -i ${srcdir}/setup.py.patch + cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/001-mingw-python.patch patch -p1 -i ${srcdir}/lzf_c.c.patch cd .. - cp -a $_realname-$pkgver $_realname-py2-$pkgver - cp -a $_realname-$pkgver $_realname-py3-$pkgver + cp -a ${_realname}-${pkgver} ${_realname}-py2-${pkgver} + cp -a ${_realname}-${pkgver} ${_realname}-py3-${pkgver} } build() { # build for python2 - cd ${srcdir}/$_realname-py2-$pkgver + cd ${srcdir}/${_realname}-py2-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build # build for python3 - cd ${srcdir}/$_realname-py3-$pkgver + cd ${srcdir}/${_realname}-py3-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build } package_python2-h5py() { - depends=( - "${MINGW_PACKAGE_PREFIX}-python2-numpy" - "${MINGW_PACKAGE_PREFIX}-hdf5" - ) + depends=("${MINGW_PACKAGE_PREFIX}-python2-numpy" + "${MINGW_PACKAGE_PREFIX}-python2-six" + "${MINGW_PACKAGE_PREFIX}-hdf5") - cd $_realname-py2-$pkgver + cd ${_realname}-py2-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --skip-build \ - --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 + --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 install -Dm644 licenses/license.txt \ "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE.txt" } package_python3-h5py() { - depends=( - "${MINGW_PACKAGE_PREFIX}-python3-numpy" - "${MINGW_PACKAGE_PREFIX}-hdf5" - ) + depends=("${MINGW_PACKAGE_PREFIX}-python3-numpy" + "${MINGW_PACKAGE_PREFIX}-python3-six" + "${MINGW_PACKAGE_PREFIX}-hdf5") - cd $_realname-py3-$pkgver + cd ${_realname}-py3-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install --skip-build \ - --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 + --prefix=${MINGW_PREFIX} --root=${pkgdir} --optimize=1 install -Dm644 licenses/license.txt \ "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE.txt" diff --git a/mingw-w64-python-h5py/setup.py.patch b/mingw-w64-python-h5py/setup.py.patch deleted file mode 100644 index c8a008e6ad..0000000000 --- a/mingw-w64-python-h5py/setup.py.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- h5py-py3-2.3.1/setup.py 2014-06-23 01:13:59.000000000 +0200 -+++ h5py-py2-2.3.1/setup.py 2014-09-25 21:35:00.415345000 +0200 -@@ -19,6 +19,7 @@ - - VERSION = '2.3.1' - -+MSYS = "MSYSTEM" in os.environ - - # --- Encapsulate NumPy imports in a specialized Extension type --------------- - -@@ -131,7 +132,7 @@ - - # --- Configure Cython and create extensions ---------------------------------- - --if sys.platform.startswith('win'): -+if sys.platform.startswith('win') and not MSYS: - COMPILER_SETTINGS = { - 'libraries' : ['h5py_hdf5','h5py_hdf5_hl'], - 'include_dirs' : [localpath('lzf'), diff --git a/mingw-w64-tclvfs/PKGBUILD b/mingw-w64-tclvfs/PKGBUILD index a5498c8a1d..c1984d06b8 100644 --- a/mingw-w64-tclvfs/PKGBUILD +++ b/mingw-w64-tclvfs/PKGBUILD @@ -3,7 +3,7 @@ _realname=tclvfs pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}-cvs pkgver=20130425 -pkgrel=1 +pkgrel=2 pkgdesc="Virtual Filesystem support for Tcl" arch=('any') url="http://sourceforge.net/projects/tclvfs/" @@ -17,16 +17,16 @@ md5sums=() #generate with 'makepkg -g' _cvsroot=":pserver:anonymous:@tclvfs.cvs.sourceforge.net:/cvsroot/tclvfs" _cvsmod="${_realname}" -_build="$srcdir/$_cvsmod-build${CARCH}" +_build="${srcdir}/$_cvsmod-build${CARCH}" prepare() { - cd "$srcdir" + cd "${srcdir}" msg "Connecting to $_cvsmod.sourceforge.net CVS server...." if [ -d $_cvsmod/CVS ]; then cd $_cvsmod cvs -z3 update -d else - cvs -z3 -d $_cvsroot co -D $pkgver -f $_cvsmod + cvs -z3 -d $_cvsroot co -D ${pkgver} -f $_cvsmod fi msg "CVS checkout done or server timeout" @@ -35,10 +35,10 @@ prepare() { build() { msg "Starting build..." - rm -rf "$_build" - cp -r "$srcdir/$_cvsmod" "$_build" + rm -rf "${_build}" + cp -r "${srcdir}/${_cvsmod}" "$_build" - cd "$_build" + cd "${_build}" ./configure \ --prefix=${MINGW_PREFIX} \ --mandir=${MINGW_PREFIX}/share/man @@ -46,6 +46,6 @@ build() { } package() { - cd "$_build" - make DESTDIR="$pkgdir" install + cd "${_build}" + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-tclx/PKGBUILD b/mingw-w64-tclx/PKGBUILD index 4b813f1819..a9525f2751 100644 --- a/mingw-w64-tclx/PKGBUILD +++ b/mingw-w64-tclx/PKGBUILD @@ -4,14 +4,14 @@ _realname=tclx pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _majorminor=8.4 pkgver=${_majorminor}.1 -pkgrel=1 +pkgrel=2 pkgdesc="Extends Tcl by providing new operating system interface commands, extended file control and many other." arch=('any') url="http://tclx.sourceforge.net/" license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-tcl") -source=("http://sourceforge.net/projects/tclx/files/TclX/$pkgver/${_realname}${pkgver}.tar.bz2" - 'random.c') +source=("http://sourceforge.net/projects/tclx/files/TclX/${pkgver}/${_realname}${pkgver}.tar.bz2" + 'random.c') md5sums=('ac983708f23cf645c07058148f48440c' '59ad67a4a330de9062b594c37ea4d198') @@ -25,18 +25,18 @@ build() { mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - [ "${MINGW_CHOST}" = 'x86_64-w64-mingw32' ] && enable64bit='--enable-64bit' + [[ "${MINGW_CHOST}" = 'x86_64-w64-mingw32' ]] && enable64bit='--enable-64bit' CFLAGS="-DUSE_INTERP_ERRORLINE $CFLAGS" \ - "${srcdir}"/${_realname}${_majorminor}/configure \ - --prefix=${MINGW_PREFIX} \ - $enable64bit + ../${_realname}${_majorminor}/configure \ + --prefix=${MINGW_PREFIX} \ + $enable64bit make } package() { cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir/" install + make DESTDIR="${pkgdir}" install local licdir=${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} mkdir -p ${licdir} diff --git a/mingw-w64-tkimg/PKGBUILD b/mingw-w64-tkimg/PKGBUILD index b66a53c55b..7873755d81 100644 --- a/mingw-w64-tkimg/PKGBUILD +++ b/mingw-w64-tkimg/PKGBUILD @@ -4,8 +4,8 @@ _pkgname=tkimg pkgname=${MINGW_PACKAGE_PREFIX}-$_pkgname _pkgver=1.4 pkgver=${_pkgver}.2 -pkgrel=1 -pkgdesc="Adds support to Tk for many other Image formats: BMP, XBM, XPM, GIF, PNG, JPEG, TIFF and postscript." +pkgrel=2 +pkgdesc="Adds support to Tk for many other Image formats: BMP, XBM, XPM, GIF, PNG, JPEG, TIFF and postscript (mingw-64)" url="http://tkimg.sourceforge.net" arch=('any') license=('BSD') @@ -16,7 +16,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-tk") # Uses dtplite for generating the man pages: makedepends=("${MINGW_PACKAGE_PREFIX}-tcllib") -source=("http://downloads.sourceforge.net/tkimg/$_pkgname$pkgver.tar.gz" +source=("http://downloads.sourceforge.net/tkimg/${_pkgname}${pkgver}.tar.gz" 001-compile-tif_jbig.patch 002-dtplite_tcl.patch) md5sums=('c42b46692a55c402c97e8f2a896bc2d4' @@ -46,6 +46,6 @@ build() { package() { cd "${srcdir}/build-${CARCH}" - make INSTALL_ROOT="$pkgdir" install + make INSTALL_ROOT="${pkgdir}" install rm -f ${pkgdir}/${MINGW_PREFIX}/lib/*.sh } diff --git a/mingw-w64-tktable/PKGBUILD b/mingw-w64-tktable/PKGBUILD index fae889fa6f..cdb719990a 100644 --- a/mingw-w64-tktable/PKGBUILD +++ b/mingw-w64-tktable/PKGBUILD @@ -6,22 +6,22 @@ _realname=tktable pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pkgnameactual=Tktable pkgver=2.10 -pkgrel=2 +pkgrel=3 pkgdesc="A full-featured 2D table widget for Tk." arch=('any') url="http://tktable.sourceforge.net/" license=('custom') depends=("${MINGW_PACKAGE_PREFIX}-tk") -source=("http://sourceforge.net/projects/tktable/files/${_realname}/$pkgver/${_pkgnameactual}${pkgver}.tar.gz") +source=("http://sourceforge.net/projects/tktable/files/${_realname}/${pkgver}/${_pkgnameactual}${pkgver}.tar.gz") md5sums=('ecdd96b39ad49b820bf084eb1c786f66') build() { mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - [ "${MINGW_CHOST}" = 'x86_64-w64-mingw32' ] && enable64bit='--enable-64bit' + [[ "${MINGW_CHOST}" = 'x86_64-w64-mingw32' ]] && enable64bit='--enable-64bit' - "${srcdir}"/${_pkgnameactual}${pkgver}/configure \ + ../${_pkgnameactual}${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ $enable64bit make @@ -29,5 +29,5 @@ build() { package() { cd "${srcdir}/build-${CARCH}" - make DESTDIR="$pkgdir/" install + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-winsparkle-git/001-compile-fixes.patch b/mingw-w64-winsparkle-git/001-compile-fixes.patch index 0d48130b06..3aa895407e 100644 --- a/mingw-w64-winsparkle-git/001-compile-fixes.patch +++ b/mingw-w64-winsparkle-git/001-compile-fixes.patch @@ -1,15 +1,3 @@ -diff -aur 000/src/download.cpp 001/src/download.cpp ---- 000/src/download.cpp 2015-04-12 07:10:48.357386800 -0300 -+++ 001/src/download.cpp 2015-04-12 07:11:26.623061500 -0300 -@@ -152,7 +152,7 @@ - NULL, // lpszHeaders - -1, // dwHeadersLength - dwFlags, -- NULL // dwContext -+ 0 // dwContext - ); - if ( !conn ) - throw Win32Exception(); diff -aur 000/src/ui.cpp 001/src/ui.cpp --- 000/src/ui.cpp 2015-04-12 07:10:48.388636400 -0300 +++ 001/src/ui.cpp 2015-04-12 07:12:39.286851600 -0300 @@ -21,15 +9,3 @@ diff -aur 000/src/ui.cpp 001/src/ui.cpp wxEntry(ms_hInstance); } -diff -aur 000/src/utils.h 001/src/utils.h ---- 000/src/utils.h 2015-04-12 07:10:48.404261800 -0300 -+++ 001/src/utils.h 2015-04-12 07:11:26.638687500 -0300 -@@ -55,7 +55,7 @@ - std::basic_string out; - out.reserve(s.length()); - -- for ( std::basic_string::const_iterator i = s.begin(); i != s.end(); ++i ) -+ for ( typename std::basic_string::const_iterator i = s.begin(); i != s.end(); ++i ) - { - out += static_cast(*i); - } diff --git a/mingw-w64-winsparkle-git/PKGBUILD b/mingw-w64-winsparkle-git/PKGBUILD index 9745a360e9..bd205a5666 100644 --- a/mingw-w64-winsparkle-git/PKGBUILD +++ b/mingw-w64-winsparkle-git/PKGBUILD @@ -4,7 +4,7 @@ _realname='winsparkle' pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) conflicts=(${MINGW_PACKAGE_PREFIX}-${_realname}) -pkgver=r261.adc56a8 +pkgver=r286.61ae84e pkgrel=1 url='http://winsparkle.org' pkgdesc='App update framework for Windows, inspired by Sparkle for OS X (mingw-w64)' @@ -16,31 +16,31 @@ source=(${_realname}::'git+https://github.com/vslavik/winsparkle' 001-compile-fixes.patch Makefile) sha1sums=('SKIP' - 'e15bf4afc17cbf3a03d101fdf2b245ccb8cdeef1' + '7f60dc43089dc633eb2c0d0881b99b0cbd6249de' '8680f3d8f0e2aa9b8a57364c15e98d2f9d2c64c6') prepare() { - cd "${srcdir}/${_realname}" - patch -p1 < "${srcdir}"/001-compile-fixes.patch + cd "${srcdir}/${_realname}" + patch -p1 < "${srcdir}"/001-compile-fixes.patch } pkgver() { - cd "${srcdir}/${_realname}" - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + cd "${srcdir}/${_realname}" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } build() { - cd "${srcdir}/${_realname}/src" - cp ../../Makefile . - make + cd "${srcdir}/${_realname}/src" + cp ../../Makefile . + make } package() { - cd "${srcdir}/${_realname}" - install -D -m644 include/winsparkle.h "${pkgdir}${MINGW_PREFIX}/include/winsparkle.h" - install -D -m644 include/winsparkle-version.h "${pkgdir}${MINGW_PREFIX}/include/winsparkle-version.h" - install -D -m644 src/libwinsparkle.a "${pkgdir}${MINGW_PREFIX}/lib/libwinsparkle.a" - install -D -m644 src/libwinsparkle.dll.a "${pkgdir}${MINGW_PREFIX}/lib/libwinsparkle.dll.a" - install -D -m755 src/libwinsparkle.dll "${pkgdir}${MINGW_PREFIX}/bin/libwinsparkle.dll" - install -D -m644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + cd "${srcdir}/${_realname}" + install -D -m644 include/winsparkle.h "${pkgdir}${MINGW_PREFIX}/include/winsparkle.h" + install -D -m644 include/winsparkle-version.h "${pkgdir}${MINGW_PREFIX}/include/winsparkle-version.h" + install -D -m644 src/libwinsparkle.a "${pkgdir}${MINGW_PREFIX}/lib/libwinsparkle.a" + install -D -m644 src/libwinsparkle.dll.a "${pkgdir}${MINGW_PREFIX}/lib/libwinsparkle.dll.a" + install -D -m755 src/libwinsparkle.dll "${pkgdir}${MINGW_PREFIX}/bin/libwinsparkle.dll" + install -D -m644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-xmlstarlet/PKGBUILD b/mingw-w64-xmlstarlet/PKGBUILD index fa404962b1..ea375c5ad0 100644 --- a/mingw-w64-xmlstarlet/PKGBUILD +++ b/mingw-w64-xmlstarlet/PKGBUILD @@ -13,21 +13,21 @@ conflicts=(${MINGW_PACKAGE_PREFIX}-${_name}) md5sums=('SKIP') source=(${_name}::"git://xmlstar.git.sourceforge.net/gitroot/xmlstar/xmlstar") depends=(${MINGW_PACKAGE_PREFIX}-libxml2 - ${MINGW_PACKAGE_PREFIX}-libxslt) + ${MINGW_PACKAGE_PREFIX}-libxslt) makedepends=(${MINGW_PACKAGE_PREFIX}-gcc ${MINGW_PACKAGE_PREFIX}-libiconv git) prepare() { - cd "$srcdir/${_name}" + cd "${srcdir}/${_name}" autoreconf -sif } pkgver() { - cd "$srcdir/${_name}" + cd "${srcdir}/${_name}" printf "r%s.%s" $(git rev-list --count HEAD) $(git rev-parse --short HEAD) } build() { - cd "$srcdir/${_name}" + cd "${srcdir}/${_name}" ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -42,10 +42,10 @@ build() { } package() { - cd "$srcdir/${_name}" - make DESTDIR="$pkgdir/" install + cd "${srcdir}/${_name}" + make DESTDIR="${pkgdir}" install local license_dir="${pkgdir}${MINGW_PREFIX}/share/licenses/${_name}" mkdir -p "$license_dir" - cp -v Copyright "$license_dir/Copyright" + cp -v Copyright "${license_dir}/Copyright" mv -v "${pkgdir}${MINGW_PREFIX}/bin/xml.exe" "${pkgdir}${MINGW_PREFIX}/bin/xmlstarlet.exe" } From 82bbd5a2a3ed9f9da354b077b833f99770bc0476 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 22 Jul 2015 01:03:40 +0300 Subject: [PATCH 1314/2060] Add list of packages that need to be builded for gcc5 --- FAIL_LIST.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 FAIL_LIST.md diff --git a/FAIL_LIST.md b/FAIL_LIST.md new file mode 100644 index 0000000000..63678983b8 --- /dev/null +++ b/FAIL_LIST.md @@ -0,0 +1,44 @@ +List of packages that currently fail to build +============================================= + +collada-dom-svn +cocos2dx-git +coq +crypto++ +freerdp-git +glsl-optimizer +gnu-cobol-svn +gplugin (with introspection) +gprbuild-gpl +gst-python +gtkada +hlsl2glsl +innoextract +itk +kicad-git +ldns +libimobiledevice +libodfgen +librescl +librocket-git +libsecret +nim +nimble +ocaml-lablgtk +octave-hg +openscenegraph +openocd-git +openshadinglanguage +perl +plplot +qrupdate +python-binwalk +python-h5py +quassel +tclvfs +tclx +tkimg +tktable +winsparkle-git +xmlada-gpl +xmlstrartlet \ No newline at end of file From de10c8b922521c567aa5c92569d09dc4d94149b8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 22 Jul 2015 01:07:56 +0300 Subject: [PATCH 1315/2060] Format list --- FAIL_LIST.md | 122 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 81 insertions(+), 41 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 63678983b8..bbd6c9aad3 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -1,44 +1,84 @@ List of packages that currently fail to build ============================================= -collada-dom-svn -cocos2dx-git -coq -crypto++ -freerdp-git -glsl-optimizer -gnu-cobol-svn -gplugin (with introspection) -gprbuild-gpl -gst-python -gtkada -hlsl2glsl -innoextract -itk -kicad-git -ldns -libimobiledevice -libodfgen -librescl -librocket-git -libsecret -nim -nimble -ocaml-lablgtk -octave-hg -openscenegraph -openocd-git -openshadinglanguage -perl -plplot -qrupdate -python-binwalk -python-h5py -quassel -tclvfs -tclx -tkimg -tktable -winsparkle-git -xmlada-gpl -xmlstrartlet \ No newline at end of file +*collada-dom-svn + +*cocos2dx-git + +*coq + +*crypto++ + +*freerdp-git + +*glsl-optimizer + +*gnu-cobol-svn + +*gplugin (with introspection) + +*gprbuild-gpl + +*gst-python + +*gtkada + +*hlsl2glsl + +*innoextract + +*itk + +*kicad-git + +*ldns + +*libimobiledevice + +*libodfgen + +*librescl + +*librocket-git + +*libsecret + +*nim + +*nimble + +*ocaml-lablgtk + +*octave-hg + +*openscenegraph + +*openocd-git + +*openshadinglanguage + +*perl + +*plplot + +*qrupdate + +*python-binwalk + +*python-h5py + +*quassel + +*tclvfs + +*tclx + +*tkimg + +*tktable + +*winsparkle-git + +*xmlada-gpl + +*xmlstrartlet From ff995e9d21bb808f609183ba6a968b16d519402d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 09:35:46 +0300 Subject: [PATCH 1316/2060] libsigc++: Update to 2.5.1 --- mingw-w64-libsigc++/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libsigc++/PKGBUILD b/mingw-w64-libsigc++/PKGBUILD index b0ee84782b..e9c6606c8c 100644 --- a/mingw-w64-libsigc++/PKGBUILD +++ b/mingw-w64-libsigc++/PKGBUILD @@ -2,8 +2,8 @@ _realname=libsigc++ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.4.1 -pkgrel=2 +pkgver=2.5.1 +pkgrel=1 pkgdesc="Libsigc++ implements a full callback system for use in widget libraries - V2 (mingw-w64)" arch=('any') url="http://libsigc.sourceforge.net" @@ -12,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/GNOME/sources/libsigc++/${pkgver%.*}/libsigc++-${pkgver}.tar.xz") -sha256sums=('540443492a68e77e30db8d425f3c0b1299c825bf974d9bfc31ae7efafedc19ec') +sha256sums=('969c37be81714e49c8cd35dbfb48f40f849961ca5468f883169db95bb5b7a36e') build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" From fcb8115241eef408822bd2772e2ba8cdf47c4e50 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 09:45:17 +0300 Subject: [PATCH 1317/2060] ffmpeg: Update to 2.7.2 --- mingw-w64-ffmpeg/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 57f47d7ece..cde0e209ae 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,8 +2,8 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.7.1 -pkgrel=2 +pkgver=2.7.2 +pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" @@ -40,7 +40,7 @@ depends=( ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-yasm") source=(http://ffmpeg.org/releases/${_realname}-${pkgver}.tar.bz2) -md5sums=('f159c6d7eed8546b23e1a17325cbf1f8') +md5sums=('7eb2140bab9f0a8669b65b50c8e4cfb5') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -113,6 +113,6 @@ package() { mv "${pkgdir}${MINGW_PREFIX}"/bin/*.lib "${pkgdir}${MINGW_PREFIX}"/lib/ #find ${pkgdir}${MINGW_PREFIX}/bin -type f -name "*.exe" -exec objcopy --subsystem console {} \; - # rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.def - # rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.lib + rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.def + rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.lib } From 628d1c515742b6d7f4ea894a65181a9cdafafc11 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 22 Jul 2015 08:56:36 +0100 Subject: [PATCH 1318/2060] clang-svn: removed all upstreamed patches :) --- ...GetHostTriple-for-mingw-w64-in-msys.patch} | 0 ...asminfo-for-mingw-arm-and-cygwin-arm.patch | 24 -- .../0011-Add-Clang-MinGW-w64-driver.patch | 301 ------------------ ...for-rtlib-and-stdlib-to-mingw-driver.patch | 217 +++++++++++++ .../0012-Fixup-all-windows-ARM-targets.patch | 107 ------- ...x86-arch-name-to-i686-for-mingw-w64.patch} | 0 ...dd-support-for-mingw-w64-in-builtins.patch | 83 ----- ...mplement-_chkstk-routine-for-windows.patch | 124 -------- mingw-w64-clang-svn/PKGBUILD | 30 +- 9 files changed, 226 insertions(+), 660 deletions(-) rename mingw-w64-clang-svn/{0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch => 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch} (100%) delete mode 100644 mingw-w64-clang-svn/0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch delete mode 100644 mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch create mode 100644 mingw-w64-clang-svn/0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch delete mode 100644 mingw-w64-clang-svn/0012-Fixup-all-windows-ARM-targets.patch rename mingw-w64-clang-svn/{0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch => 0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch} (100%) delete mode 100644 mingw-w64-clang-svn/0021-add-support-for-mingw-w64-in-builtins.patch delete mode 100644 mingw-w64-clang-svn/0022-builtins-implement-_chkstk-routine-for-windows.patch diff --git a/mingw-w64-clang-svn/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch b/mingw-w64-clang-svn/0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch similarity index 100% rename from mingw-w64-clang-svn/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch rename to mingw-w64-clang-svn/0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch diff --git a/mingw-w64-clang-svn/0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch b/mingw-w64-clang-svn/0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch deleted file mode 100644 index fc1ba6f53a..0000000000 --- a/mingw-w64-clang-svn/0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 48c6c12896cce015e112aabb1e22ce7779139d44 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Thu, 4 Jun 2015 22:23:29 +0100 -Subject: [PATCH] Fix asminfo for mingw arm and cygwin arm - - -diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp -index 92c4d6a..e518d2e 100644 ---- a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp -+++ b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp -@@ -282,7 +282,9 @@ static MCAsmInfo *createARMMCAsmInfo(const MCRegisterInfo &MRI, - MCAsmInfo *MAI; - if (TheTriple.isOSDarwin() || TheTriple.isOSBinFormatMachO()) - MAI = new ARMMCAsmInfoDarwin(TheTriple); -- else if (TheTriple.isWindowsItaniumEnvironment()) -+ else if (TheTriple.isWindowsItaniumEnvironment() || -+ TheTriple.isWindowsGNUEnvironment() || -+ TheTriple.isWindowsCygwinEnvironment()) - MAI = new ARMCOFFMCAsmInfoGNU(); - else if (TheTriple.isWindowsMSVCEnvironment()) - MAI = new ARMCOFFMCAsmInfoMicrosoft(); --- -2.4.2 - diff --git a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch b/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch deleted file mode 100644 index 6daa7c7f2d..0000000000 --- a/mingw-w64-clang-svn/0011-Add-Clang-MinGW-w64-driver.patch +++ /dev/null @@ -1,301 +0,0 @@ -From 864b59b45d091d8fd31142bf016e640f10fd2fb7 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Thu, 2 Jul 2015 09:24:03 +0100 -Subject: [PATCH] Add Clang MinGW-w64 driver - - -diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td -index 9855c7d..cc13db1 100644 ---- a/include/clang/Driver/Options.td -+++ b/include/clang/Driver/Options.td -@@ -1527,6 +1527,7 @@ def private__bundle : Flag<["-"], "private_bundle">; - def pthreads : Flag<["-"], "pthreads">; - def pthread : Flag<["-"], "pthread">, Flags<[CC1Option]>, - HelpText<"Support POSIX threads in generated code">; -+def no_pthread : Flag<["-"], "no-pthread">, Flags<[CC1Option]>; - def p : Flag<["-"], "p">; - def pie : Flag<["-"], "pie">; - def read__only__relocs : Separate<["-"], "read_only_relocs">; -diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp -index 86b3681..6ff1172 100644 ---- a/lib/Driver/MinGWToolChain.cpp -+++ b/lib/Driver/MinGWToolChain.cpp -@@ -9,6 +9,7 @@ - - #include "ToolChains.h" - #include "clang/Driver/Driver.h" -+#include "clang/Driver/DriverDiagnostic.h" - #include "clang/Driver/Options.h" - #include "llvm/Option/ArgList.h" - #include "llvm/Support/FileSystem.h" -@@ -113,13 +114,16 @@ void MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, - if (DriverArgs.hasArg(options::OPT_nostdlibinc)) - return; - -- llvm::SmallString<1024> IncludeDir(GccLibDir); -- llvm::sys::path::append(IncludeDir, "include"); -- addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); -- IncludeDir += "-fixed"; -- addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); - addSystemInclude(DriverArgs, CC1Args, Base + Arch + "include"); - addSystemInclude(DriverArgs, CC1Args, Base + "include"); -+ -+ if (GetRuntimeLibType(DriverArgs) == ToolChain::RLT_Libgcc) { -+ llvm::SmallString<1024> IncludeDir(GccLibDir); -+ llvm::sys::path::append(IncludeDir, "include"); -+ addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); -+ IncludeDir += "-fixed"; -+ addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); -+ } - } - - void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, -@@ -128,21 +132,71 @@ void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, - DriverArgs.hasArg(options::OPT_nostdincxx)) - return; - -- // C++ includes may be found in several locations depending on distribution. -- // mingw-w64 mingw-builds: $sysroot/i686-w64-mingw32/include/c++. -- // mingw-w64 msys2: $sysroot/include/c++/4.9.2 -- // mingw.org: GccLibDir/include/c++ -- llvm::SmallVector, 3> CppIncludeBases; -- CppIncludeBases.emplace_back(Base); -- llvm::sys::path::append(CppIncludeBases[0], Arch, "include", "c++"); -- CppIncludeBases.emplace_back(Base); -- llvm::sys::path::append(CppIncludeBases[1], "include", "c++", Ver); -- CppIncludeBases.emplace_back(GccLibDir); -- llvm::sys::path::append(CppIncludeBases[2], "include", "c++"); -- for (auto &CppIncludeBase : CppIncludeBases) { -- CppIncludeBase += llvm::sys::path::get_separator(); -- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase); -- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + Arch); -- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); -+ switch (GetCXXStdlibType(DriverArgs)) { -+ case ToolChain::CST_Libcxx: -+ addSystemInclude(DriverArgs, CC1Args, Base + "include" + -+ llvm::sys::path::get_separator() + "c++" + -+ llvm::sys::path::get_separator() + "v1"); -+ break; -+ -+ case ToolChain::CST_Libstdcxx: -+ // C++ includes may be found in several locations depending on distribution. -+ // mingw-w64 mingw-builds: $sysroot/i686-w64-mingw32/include/c++. -+ // mingw-w64 msys2: $sysroot/include/c++/4.9.2 -+ // mingw.org: GccLibDir/include/c++ -+ llvm::SmallVector, 3> CppIncludeBases; -+ CppIncludeBases.emplace_back(Base); -+ llvm::sys::path::append(CppIncludeBases[0], Arch, "include", "c++"); -+ CppIncludeBases.emplace_back(Base); -+ llvm::sys::path::append(CppIncludeBases[1], "include", "c++", Ver); -+ CppIncludeBases.emplace_back(GccLibDir); -+ llvm::sys::path::append(CppIncludeBases[2], "include", "c++"); -+ for (auto &CppIncludeBase : CppIncludeBases) { -+ CppIncludeBase += llvm::sys::path::get_separator(); -+ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase); -+ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + Arch); -+ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); -+ } -+ break; -+ } -+} -+ -+void MinGW::AddCXXStdlibLibArgs(const llvm::opt::ArgList &DriverArgs, -+ llvm::opt::ArgStringList &CmdArgs) const { -+ switch (GetCXXStdlibType(DriverArgs)) { -+ case ToolChain::CST_Libcxx: -+ CmdArgs.push_back("-lc++"); -+ CmdArgs.push_back("-lc++abi"); -+ break; -+ -+ case ToolChain::CST_Libstdcxx: -+ CmdArgs.push_back("-lstdc++"); -+ break; -+ } -+} -+ -+ToolChain::RuntimeLibType MinGW::GetRuntimeLibType(const ArgList &Args) const{ -+ if (Arg *A = Args.getLastArg(options::OPT_rtlib_EQ)) { -+ StringRef Value = A->getValue(); -+ if (Value == "compiler-rt") -+ return ToolChain::RLT_CompilerRT; -+ if (Value == "libgcc") -+ return ToolChain::RLT_Libgcc; -+ getDriver().Diag(diag::err_drv_invalid_rtlib_name) -+ << A->getAsString(Args); -+ } -+ return ToolChain::RLT_CompilerRT; -+} -+ -+ToolChain::CXXStdlibType MinGW::GetCXXStdlibType(const ArgList &Args) const{ -+ if (Arg *A = Args.getLastArg(options::OPT_stdlib_EQ)) { -+ StringRef Value = A->getValue(); -+ if (Value == "libc++") -+ return ToolChain::CST_Libcxx; -+ if (Value == "libstdc++") -+ return ToolChain::CST_Libstdcxx; -+ getDriver().Diag(diag::err_drv_invalid_stdlib_name) -+ << A->getAsString(Args); - } -+ return ToolChain::CST_Libcxx; - } -diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h -index 05066ee..1c570ca 100644 ---- a/lib/Driver/ToolChains.h -+++ b/lib/Driver/ToolChains.h -@@ -543,6 +543,13 @@ public: - void AddClangCXXStdlibIncludeArgs( - const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args) const override; -+ void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, -+ llvm::opt::ArgStringList &CmdArgs) const override; -+ -+ CXXStdlibType GetCXXStdlibType( -+ const llvm::opt::ArgList &Args) const override; -+ RuntimeLibType GetRuntimeLibType( -+ const llvm::opt::ArgList &Args) const override; - - protected: - Tool *getTool(Action::ActionClass AC) const override; -diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 058fdf5..74f5103 100644 ---- a/lib/Driver/Tools.cpp -+++ b/lib/Driver/Tools.cpp -@@ -2239,8 +2239,7 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, - - // Until ARM libraries are build separately, we have them all in one library - static StringRef getArchNameForCompilerRTLib(const ToolChain &TC) { -- if (TC.getTriple().isOSWindows() && -- !TC.getTriple().isWindowsItaniumEnvironment() && -+ if (TC.getTriple().isWindowsMSVCEnvironment() && - TC.getArch() == llvm::Triple::x86) - return "i386"; - if (TC.getArch() == llvm::Triple::arm || TC.getArch() == llvm::Triple::armeb) -@@ -2266,10 +2265,12 @@ SmallString<128> tools::getCompilerRT(const ToolChain &TC, StringRef Component, - : ""; - - bool IsOSWindows = TC.getTriple().isOSWindows(); -+ bool IsITANMSVCWindows = TC.getTriple().isWindowsMSVCEnvironment() || -+ TC.getTriple().isWindowsItaniumEnvironment(); - StringRef Arch = getArchNameForCompilerRTLib(TC); -- const char *Prefix = IsOSWindows ? "" : "lib"; -+ const char *Prefix = IsITANMSVCWindows ? "" : "lib"; - const char *Suffix = -- Shared ? (IsOSWindows ? ".dll" : ".so") : (IsOSWindows ? ".lib" : ".a"); -+ Shared ? (IsOSWindows ? ".dll" : ".so") : (IsITANMSVCWindows ? ".lib" : ".a"); - - SmallString<128> Path = getCompilerRTLibDir(TC); - llvm::sys::path::append(Path, Prefix + Twine("clang_rt.") + Component + "-" + -@@ -8826,20 +8827,30 @@ void MinGW::Assembler::ConstructJob(Compilation &C, const JobAction &JA, - SplitDebugName(Args, Inputs[0])); - } - --void MinGW::Linker::AddLibGCC(const ArgList &Args, -- ArgStringList &CmdArgs) const { -+void MinGW::Linker::AddRuntime(const ToolChain &TC, const ArgList &Args, -+ ArgStringList &CmdArgs) const { - if (Args.hasArg(options::OPT_mthreads)) - CmdArgs.push_back("-lmingwthrd"); - CmdArgs.push_back("-lmingw32"); -- if (Args.hasArg(options::OPT_shared) || -- Args.hasArg(options::OPT_shared_libgcc) || -- !Args.hasArg(options::OPT_static_libgcc)) { -- CmdArgs.push_back("-lgcc_s"); -- CmdArgs.push_back("-lgcc"); -- } else { -- CmdArgs.push_back("-lgcc"); -- CmdArgs.push_back("-lgcc_eh"); -+ -+ switch (TC.GetRuntimeLibType(Args)) { -+ case ToolChain::RLT_CompilerRT: -+ CmdArgs.push_back(Args.MakeArgString(getCompilerRT(TC, "builtins"))); -+ break; -+ -+ case ToolChain::RLT_Libgcc: -+ if (Args.hasArg(options::OPT_shared) || -+ Args.hasArg(options::OPT_shared_libgcc) || -+ !Args.hasArg(options::OPT_static_libgcc)) { -+ CmdArgs.push_back("-lgcc_s"); -+ CmdArgs.push_back("-lgcc"); -+ } else { -+ CmdArgs.push_back("-lgcc"); -+ CmdArgs.push_back("-lgcc_eh"); -+ } -+ break; - } -+ - CmdArgs.push_back("-lmoldname"); - CmdArgs.push_back("-lmingwex"); - CmdArgs.push_back("-lmsvcrt"); -@@ -8864,6 +8875,12 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, - // handled somewhere else. - Args.ClaimAllArgs(options::OPT_w); - -+ StringRef Linker = Args.getLastArgValue(options::OPT_fuse_ld_EQ, "ld"); -+ if (Linker.equals_lower("lld")) { -+ CmdArgs.push_back("-flavor"); -+ CmdArgs.push_back("gnu"); -+ } -+ - if (!D.SysRoot.empty()) - CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); - -@@ -8875,6 +8892,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, - CmdArgs.push_back("i386pe"); - if (TC.getArch() == llvm::Triple::x86_64) - CmdArgs.push_back("i386pep"); -+ if (TC.getArch() == llvm::Triple::arm) -+ CmdArgs.push_back("thumb2pe"); - - if (Args.hasArg(options::OPT_mwindows)) { - CmdArgs.push_back("--subsystem"); -@@ -8964,12 +8983,13 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, - if (Args.hasArg(options::OPT_fopenmp)) - CmdArgs.push_back("-lgomp"); - -- AddLibGCC(Args, CmdArgs); -+ AddRuntime(TC, Args, CmdArgs); - - if (Args.hasArg(options::OPT_pg)) - CmdArgs.push_back("-lgmon"); - -- if (Args.hasArg(options::OPT_pthread)) -+ if (Args.hasArg(options::OPT_pthread) && -+ !Args.hasArg(options::OPT_no_pthread)) - CmdArgs.push_back("-lpthread"); - - // add system libraries -@@ -8985,7 +9005,8 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, - if (Args.hasArg(options::OPT_static)) - CmdArgs.push_back("--end-group"); - else -- AddLibGCC(Args, CmdArgs); -+ if (!Linker.equals_lower("lld")) -+ AddRuntime(TC, Args, CmdArgs); - } - - if (!Args.hasArg(options::OPT_nostartfiles)) { -@@ -8995,7 +9016,7 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, - CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend.o"))); - } - } -- const char *Exec = Args.MakeArgString(TC.GetProgramPath("ld")); -+ const char *Exec = Args.MakeArgString(TC.GetProgramPath(Linker.data())); - C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); - } - -diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h -index 52ab731..d2e146b 100644 ---- a/lib/Driver/Tools.h -+++ b/lib/Driver/Tools.h -@@ -702,7 +702,7 @@ public: - const char *LinkingOutput) const override; - - private: -- void AddLibGCC(const llvm::opt::ArgList &Args, ArgStringList &CmdArgs) const; -+ void AddRuntime(const ToolChain &TC, const llvm::opt::ArgList &Args, ArgStringList &CmdArgs) const; - }; - } // end namespace MinGW - --- -2.4.5 - diff --git a/mingw-w64-clang-svn/0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch b/mingw-w64-clang-svn/0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch new file mode 100644 index 0000000000..a8ffc1ecac --- /dev/null +++ b/mingw-w64-clang-svn/0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch @@ -0,0 +1,217 @@ +From 95ec8854ad32ea8214a71012ebb6270d4e65150f Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Wed, 22 Jul 2015 04:57:45 +0100 +Subject: [PATCH] Add support for -rtlib and -stdlib to mingw driver + + +diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp +index f4862ca..22051bf 100644 +--- a/lib/Driver/MinGWToolChain.cpp ++++ b/lib/Driver/MinGWToolChain.cpp +@@ -192,18 +192,20 @@ void MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, + if (DriverArgs.hasArg(options::OPT_nostdlibinc)) + return; + +- llvm::SmallString<1024> IncludeDir(GccLibDir); +- llvm::sys::path::append(IncludeDir, "include"); +- addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); +- IncludeDir += "-fixed"; ++if (GetRuntimeLibType(DriverArgs) == ToolChain::RLT_Libgcc) { ++ llvm::SmallString<1024> IncludeDir(GccLibDir); ++ llvm::sys::path::append(IncludeDir, "include"); ++ addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); ++ IncludeDir += "-fixed"; + #ifdef LLVM_ON_UNIX +- // openSUSE +- addSystemInclude(DriverArgs, CC1Args, +- "/usr/x86_64-w64-mingw32/sys-root/mingw/include"); ++ // openSUSE ++ addSystemInclude(DriverArgs, CC1Args, ++ "/usr/x86_64-w64-mingw32/sys-root/mingw/include"); + #endif +- addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); +- addSystemInclude(DriverArgs, CC1Args, Base + Arch + "include"); +- addSystemInclude(DriverArgs, CC1Args, Base + "include"); ++ addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); ++ } ++ addSystemInclude(DriverArgs, CC1Args, Base + Arch + "include"); ++ addSystemInclude(DriverArgs, CC1Args, Base + "include"); + } + + void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, +@@ -212,19 +214,29 @@ void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, + DriverArgs.hasArg(options::OPT_nostdincxx)) + return; + +- llvm::SmallVector, 4> CppIncludeBases; +- CppIncludeBases.emplace_back(Base); +- llvm::sys::path::append(CppIncludeBases[0], Arch, "include", "c++"); +- CppIncludeBases.emplace_back(Base); +- llvm::sys::path::append(CppIncludeBases[1], Arch, "include", "c++", Ver); +- CppIncludeBases.emplace_back(Base); +- llvm::sys::path::append(CppIncludeBases[2], "include", "c++", Ver); +- CppIncludeBases.emplace_back(GccLibDir); +- llvm::sys::path::append(CppIncludeBases[3], "include", "c++"); +- for (auto &CppIncludeBase : CppIncludeBases) { +- CppIncludeBase += llvm::sys::path::get_separator(); +- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase); +- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + Arch); +- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); ++ switch (GetCXXStdlibType(DriverArgs)) { ++ case ToolChain::CST_Libcxx: ++ addSystemInclude(DriverArgs, CC1Args, Base + "include" + ++ llvm::sys::path::get_separator() + "c++" + ++ llvm::sys::path::get_separator() + "v1"); ++ break; ++ ++ case ToolChain::CST_Libstdcxx: ++ llvm::SmallVector, 4> CppIncludeBases; ++ CppIncludeBases.emplace_back(Base); ++ llvm::sys::path::append(CppIncludeBases[0], Arch, "include", "c++"); ++ CppIncludeBases.emplace_back(Base); ++ llvm::sys::path::append(CppIncludeBases[1], Arch, "include", "c++", Ver); ++ CppIncludeBases.emplace_back(Base); ++ llvm::sys::path::append(CppIncludeBases[2], "include", "c++", Ver); ++ CppIncludeBases.emplace_back(GccLibDir); ++ llvm::sys::path::append(CppIncludeBases[3], "include", "c++"); ++ for (auto &CppIncludeBase : CppIncludeBases) { ++ CppIncludeBase += llvm::sys::path::get_separator(); ++ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase); ++ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + Arch); ++ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); ++ } ++ break; + } + } +diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp +index 8e5e980..2ede056 100644 +--- a/lib/Driver/Tools.cpp ++++ b/lib/Driver/Tools.cpp +@@ -2247,8 +2247,7 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, + + // Until ARM libraries are build separately, we have them all in one library + static StringRef getArchNameForCompilerRTLib(const ToolChain &TC) { +- if (TC.getTriple().isOSWindows() && +- !TC.getTriple().isWindowsItaniumEnvironment() && ++ if (TC.getTriple().isWindowsMSVCEnvironment() && + TC.getArch() == llvm::Triple::x86) + return "i386"; + if (TC.getArch() == llvm::Triple::arm || TC.getArch() == llvm::Triple::armeb) +@@ -2274,10 +2273,12 @@ SmallString<128> tools::getCompilerRT(const ToolChain &TC, StringRef Component, + : ""; + + bool IsOSWindows = TC.getTriple().isOSWindows(); ++ bool IsITANMSVCWindows = TC.getTriple().isWindowsMSVCEnvironment() || ++ TC.getTriple().isWindowsItaniumEnvironment(); + StringRef Arch = getArchNameForCompilerRTLib(TC); +- const char *Prefix = IsOSWindows ? "" : "lib"; ++ const char *Prefix = IsITANMSVCWindows ? "" : "lib"; + const char *Suffix = +- Shared ? (IsOSWindows ? ".dll" : ".so") : (IsOSWindows ? ".lib" : ".a"); ++ Shared ? (IsOSWindows ? ".dll" : ".so") : (IsITANMSVCWindows ? ".lib" : ".a"); + + SmallString<128> Path = getCompilerRTLibDir(TC); + llvm::sys::path::append(Path, Prefix + Twine("clang_rt.") + Component + "-" + +@@ -7836,6 +7842,7 @@ void gnutools::Assembler::ConstructJob(Compilation &C, const JobAction &JA, + static void AddLibgcc(const llvm::Triple &Triple, const Driver &D, + ArgStringList &CmdArgs, const ArgList &Args) { + bool isAndroid = Triple.getEnvironment() == llvm::Triple::Android; ++ bool isWindows = Triple.getOS() == llvm::Triple::Win32; + bool StaticLibgcc = Args.hasArg(options::OPT_static_libgcc) || + Args.hasArg(options::OPT_static); + if (!D.CCCIsCXX()) +@@ -7845,10 +7852,10 @@ static void AddLibgcc(const llvm::Triple &Triple, const Driver &D, + if (D.CCCIsCXX()) + CmdArgs.push_back("-lgcc"); + } else { +- if (!D.CCCIsCXX()) ++ if (!D.CCCIsCXX() && !isWindows) + CmdArgs.push_back("--as-needed"); + CmdArgs.push_back("-lgcc_s"); +- if (!D.CCCIsCXX()) ++ if (!D.CCCIsCXX() && !isWindows) + CmdArgs.push_back("--no-as-needed"); + } + +@@ -8925,25 +8932,6 @@ void MinGW::Assembler::ConstructJob(Compilation &C, const JobAction &JA, + SplitDebugName(Args, Inputs[0])); + } + +-void MinGW::Linker::AddLibGCC(const ArgList &Args, +- ArgStringList &CmdArgs) const { +- if (Args.hasArg(options::OPT_mthreads)) +- CmdArgs.push_back("-lmingwthrd"); +- CmdArgs.push_back("-lmingw32"); +- if (Args.hasArg(options::OPT_shared) || +- Args.hasArg(options::OPT_shared_libgcc) || +- !Args.hasArg(options::OPT_static_libgcc)) { +- CmdArgs.push_back("-lgcc_s"); +- CmdArgs.push_back("-lgcc"); +- } else { +- CmdArgs.push_back("-lgcc"); +- CmdArgs.push_back("-lgcc_eh"); +- } +- CmdArgs.push_back("-lmoldname"); +- CmdArgs.push_back("-lmingwex"); +- CmdArgs.push_back("-lmsvcrt"); +-} +- + void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, + const InputInfo &Output, + const InputInfoList &Inputs, +@@ -9071,7 +9059,15 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, + if (Args.hasArg(options::OPT_fopenmp)) + CmdArgs.push_back("-lgomp"); + +- AddLibGCC(Args, CmdArgs); ++ if (Args.hasArg(options::OPT_mthreads)) ++ CmdArgs.push_back("-lmingwthrd"); ++ CmdArgs.push_back("-lmingw32"); ++ ++ AddRunTimeLibs(TC, D, CmdArgs, Args); ++ ++ CmdArgs.push_back("-lmoldname"); ++ CmdArgs.push_back("-lmingwex"); ++ CmdArgs.push_back("-lmsvcrt"); + + if (Args.hasArg(options::OPT_pg)) + CmdArgs.push_back("-lgmon"); +@@ -9091,8 +9087,19 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, + + if (Args.hasArg(options::OPT_static)) + CmdArgs.push_back("--end-group"); +- else if (!LinkerName.equals_lower("lld")) +- AddLibGCC(Args, CmdArgs); ++ else if (!LinkerName.equals_lower("lld")) { ++ ++ if (Args.hasArg(options::OPT_mthreads)) ++ CmdArgs.push_back("-lmingwthrd"); ++ CmdArgs.push_back("-lmingw32"); ++ ++ AddRunTimeLibs(TC, D, CmdArgs, Args); ++ ++ CmdArgs.push_back("-lmoldname"); ++ CmdArgs.push_back("-lmingwex"); ++ CmdArgs.push_back("-lmsvcrt"); ++ ++ } + } + + if (!Args.hasArg(options::OPT_nostartfiles)) { +diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h +index 4f816a0..a3b27ab 100644 +--- a/lib/Driver/Tools.h ++++ b/lib/Driver/Tools.h +@@ -702,9 +702,6 @@ public: + const InputInfo &Output, const InputInfoList &Inputs, + const llvm::opt::ArgList &TCArgs, + const char *LinkingOutput) const override; +- +-private: +- void AddLibGCC(const llvm::opt::ArgList &Args, ArgStringList &CmdArgs) const; + }; + } // end namespace MinGW + +-- +2.4.5 + diff --git a/mingw-w64-clang-svn/0012-Fixup-all-windows-ARM-targets.patch b/mingw-w64-clang-svn/0012-Fixup-all-windows-ARM-targets.patch deleted file mode 100644 index 319008c5f5..0000000000 --- a/mingw-w64-clang-svn/0012-Fixup-all-windows-ARM-targets.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 3c3008a9dea38318ff85e6cf39ef45fdb305c55b Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Fri, 20 Mar 2015 22:43:51 +0000 -Subject: [PATCH 2/2] Fixup all windows ARM targets - ---- - lib/Basic/Targets.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 69 insertions(+), 4 deletions(-) - -diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp -index fb25886..80cc4b9 100644 ---- a/lib/Basic/Targets.cpp -+++ b/lib/Basic/Targets.cpp -@@ -4623,10 +4623,71 @@ public: - } - }; - -+// Windows ARM, MS (C++) ABI -+class MicrosoftARMTargetInfo : public WindowsARMTargetInfo { -+public: -+ MicrosoftARMTargetInfo(const llvm::Triple &Triple) -+ : WindowsARMTargetInfo(Triple) { -+ TheCXXABI.set(TargetCXXABI::Microsoft); -+ } -+ -+ void getTargetDefines(const LangOptions &Opts, -+ MacroBuilder &Builder) const override { -+ WindowsARMTargetInfo::getTargetDefines(Opts, Builder); -+ WindowsARMTargetInfo::getVisualStudioDefines(Opts, Builder); -+ } -+}; -+} // end anonymous namespace. -+ -+namespace { -+// ARM MinGW target -+class MinGWARMTargetInfo : public WindowsARMTargetInfo { -+public: -+ MinGWARMTargetInfo(const llvm::Triple &Triple) -+ : WindowsARMTargetInfo(Triple) { -+ TheCXXABI.set(TargetCXXABI::GenericARM); -+ } -+ -+ void getTargetDefines(const LangOptions &Opts, -+ MacroBuilder &Builder) const override { -+ WindowsARMTargetInfo::getTargetDefines(Opts, Builder); -+ DefineStd(Builder, "WIN32", Opts); -+ DefineStd(Builder, "WINNT", Opts); -+ Builder.defineMacro("_ARM_"); -+ addMinGWDefines(Opts, Builder); -+ } -+}; -+} // end anonymous namespace -+ -+namespace { -+// ARM Cygwin target -+class CygwinARMTargetInfo : public ARMleTargetInfo { -+public: -+ CygwinARMTargetInfo(const llvm::Triple &Triple) -+ : ARMleTargetInfo(Triple) { -+ TLSSupported = false; -+ WCharType = UnsignedShort; -+ DoubleAlign = LongLongAlign = 64; -+ DescriptionString = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"; -+ } -+ void getTargetDefines(const LangOptions &Opts, -+ MacroBuilder &Builder) const override { -+ ARMleTargetInfo::getTargetDefines(Opts, Builder); -+ Builder.defineMacro("_ARM_"); -+ Builder.defineMacro("__CYGWIN__"); -+ Builder.defineMacro("__CYGWIN32__"); -+ DefineStd(Builder, "unix", Opts); -+ if (Opts.CPlusPlus) -+ Builder.defineMacro("_GNU_SOURCE"); -+ } -+}; -+} // end anonymous namespace -+ -+namespace { - // Windows ARM + Itanium C++ ABI Target --class ItaniumWindowsARMleTargetInfo : public WindowsARMTargetInfo { -+class ItaniumWindowsARMTargetInfo : public WindowsARMTargetInfo { - public: -- ItaniumWindowsARMleTargetInfo(const llvm::Triple &Triple) -+ ItaniumWindowsARMTargetInfo(const llvm::Triple &Triple) - : WindowsARMTargetInfo(Triple) { - TheCXXABI.set(TargetCXXABI::GenericARM); - } -@@ -6669,10 +6730,14 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { - switch (Triple.getEnvironment()) { - default: - return new ARMleTargetInfo(Triple); -+ case llvm::Triple::Cygnus: -+ return new CygwinARMTargetInfo(Triple); -+ case llvm::Triple::GNU: -+ return new MinGWARMTargetInfo(Triple); - case llvm::Triple::Itanium: -- return new ItaniumWindowsARMleTargetInfo(Triple); -+ return new ItaniumWindowsARMTargetInfo(Triple); - case llvm::Triple::MSVC: -- return new MicrosoftARMleTargetInfo(Triple); -+ return new MicrosoftARMTargetInfo(Triple); - } - default: - return new ARMleTargetInfo(Triple); --- -2.3.5 - diff --git a/mingw-w64-clang-svn/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch b/mingw-w64-clang-svn/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch similarity index 100% rename from mingw-w64-clang-svn/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch rename to mingw-w64-clang-svn/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch diff --git a/mingw-w64-clang-svn/0021-add-support-for-mingw-w64-in-builtins.patch b/mingw-w64-clang-svn/0021-add-support-for-mingw-w64-in-builtins.patch deleted file mode 100644 index 1d6b11ea5c..0000000000 --- a/mingw-w64-clang-svn/0021-add-support-for-mingw-w64-in-builtins.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 0efb0ea1f9de0c9c231e8498da175c419f7d1f0d Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Thu, 2 Jul 2015 03:38:19 +0100 -Subject: [PATCH] add support for mingw-w64 in builtins - - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index edad9f9..d13cafb 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -164,7 +164,7 @@ set(COMPILER_RT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) - # We support running instrumented tests when we're not cross compiling - # and target a UNIX-like system or Windows. - # We can run tests on Android even when we are cross-compiling. --if(("${CMAKE_HOST_SYSTEM}" STREQUAL "${CMAKE_SYSTEM}" AND (UNIX OR MSVC)) OR ANDROID -+if(("${CMAKE_HOST_SYSTEM}" STREQUAL "${CMAKE_SYSTEM}" AND (UNIX OR WIN32)) OR ANDROID - OR COMPILER_RT_EMULATOR) - option(COMPILER_RT_CAN_EXECUTE_TESTS "Can we execute instrumented tests" ON) - else() -diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt -index d79feae..58e3fd3 100644 ---- a/lib/builtins/CMakeLists.txt -+++ b/lib/builtins/CMakeLists.txt -@@ -260,7 +260,7 @@ set(arm_SOURCES - - add_custom_target(builtins) - --if (NOT WIN32) -+if (NOT MSVC) - foreach (arch x86_64 i386 i686 arm) - if (CAN_TARGET_${arch}) - # Filter out generic versions of routines that are re-implemented in -diff --git a/lib/builtins/enable_execute_stack.c b/lib/builtins/enable_execute_stack.c -index 63d836b..3ee48c5 100644 ---- a/lib/builtins/enable_execute_stack.c -+++ b/lib/builtins/enable_execute_stack.c -@@ -10,7 +10,9 @@ - - #include "int_lib.h" - -+#ifndef _WIN32 - #include -+#endif - - /* #include "config.h" - * FIXME: CMake - include when cmake system is ready. -@@ -18,9 +20,14 @@ - */ - #define HAVE_SYSCONF 1 - -+#ifdef _WIN32 -+#include -+#include -+#else - #ifndef __APPLE__ - #include - #endif /* __APPLE__ */ -+#endif /* _WIN32 */ - - #if __LP64__ - #define TRAMPOLINE_SIZE 48 -@@ -40,6 +47,12 @@ COMPILER_RT_ABI void - __enable_execute_stack(void* addr) - { - -+#if _WIN32 -+ MEMORY_BASIC_INFORMATION mbi; -+ if (!VirtualQuery (addr, &mbi, sizeof(mbi))) -+ return; /* We should probably assert here because there is no return value */ -+ VirtualProtect (mbi.BaseAddress, mbi.RegionSize, PAGE_EXECUTE_READWRITE, &mbi.Protect); -+#else - #if __APPLE__ - /* On Darwin, pagesize is always 4096 bytes */ - const uintptr_t pageSize = 4096; -@@ -55,4 +68,5 @@ __enable_execute_stack(void* addr) - unsigned char* endPage = (unsigned char*)((p+TRAMPOLINE_SIZE+pageSize) & pageAlignMask); - size_t length = endPage - startPage; - (void) mprotect((void *)startPage, length, PROT_READ | PROT_WRITE | PROT_EXEC); -+#endif - } --- -2.4.5 - diff --git a/mingw-w64-clang-svn/0022-builtins-implement-_chkstk-routine-for-windows.patch b/mingw-w64-clang-svn/0022-builtins-implement-_chkstk-routine-for-windows.patch deleted file mode 100644 index 04b91d4377..0000000000 --- a/mingw-w64-clang-svn/0022-builtins-implement-_chkstk-routine-for-windows.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 72e860f184e4ae699a4afedd87294cc7664e6918 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Thu, 2 Jul 2015 19:49:51 +0100 -Subject: [PATCH] builtins: implement _chkstk routine for windows - - -diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt -index 58e3fd3..007cf73 100644 ---- a/lib/builtins/CMakeLists.txt -+++ b/lib/builtins/CMakeLists.txt -@@ -154,6 +154,12 @@ set(x86_64_SOURCES - x86_64/floatundixf.S - ${GENERIC_SOURCES}) - -+if(WIN32) -+ set(x86_64_SOURCES -+ ${x86_64_SOURCES} -+ x86_64/chkstk.S) -+endif() -+ - set(i386_SOURCES - i386/ashldi3.S - i386/ashrdi3.S -@@ -171,6 +177,12 @@ set(i386_SOURCES - i386/umoddi3.S - ${GENERIC_SOURCES}) - -+if(WIN32) -+ set(i386_SOURCES -+ ${i386_SOURCES} -+ i386/chkstk.S) -+endif() -+ - set(i686_SOURCES - ${i386_SOURCES}) - -diff --git a/lib/builtins/i386/chkstk.S b/lib/builtins/i386/chkstk.S -new file mode 100644 -index 0000000..5fed614 ---- /dev/null -+++ b/lib/builtins/i386/chkstk.S -@@ -0,0 +1,34 @@ -+// This file is dual licensed under the MIT and the University of Illinois Open -+// Source Licenses. See LICENSE.TXT for details. -+ -+#include "../assembly.h" -+ -+// _chkstk routine -+// This routine is windows specific -+// http://msdn.microsoft.com/en-us/library/ms648426.aspx -+ -+#ifdef __i386__ -+ -+.text -+.balign 4 -+DEFINE_COMPILERRT_FUNCTION(__chkstk_ms) -+ push %ecx -+ push %eax -+ cmp $0x1000,%eax -+ lea 12(%esp),%ecx -+ jb 1f -+2: -+ sub $0x1000,%ecx -+ orl $0,(%ecx) -+ sub $0x1000,%eax -+ cmp $0x1000,%eax -+ ja 2b -+1: -+ sub %eax,%ecx -+ orl $0,(%ecx) -+ pop %eax -+ pop %ecx -+ ret -+END_COMPILERRT_FUNCTION(__chkstk_ms) -+ -+#endif // __i386__ -diff --git a/lib/builtins/x86_64/chkstk.S b/lib/builtins/x86_64/chkstk.S -new file mode 100644 -index 0000000..89b4579 ---- /dev/null -+++ b/lib/builtins/x86_64/chkstk.S -@@ -0,0 +1,39 @@ -+// This file is dual licensed under the MIT and the University of Illinois Open -+// Source Licenses. See LICENSE.TXT for details. -+ -+#include "../assembly.h" -+ -+// _chkstk routine -+// This routine is windows specific -+// http://msdn.microsoft.com/en-us/library/ms648426.aspx -+ -+// Notes from r227519 -+// MSVC x64s __chkstk and cygmings ___chkstk_ms do not adjust %rsp -+// themselves. It also does not clobber %rax so we can reuse it when -+// adjusting %rsp. -+ -+#ifdef __x86_64__ -+ -+.text -+.balign 4 -+DEFINE_COMPILERRT_FUNCTION(___chkstk_ms) -+ push %rcx -+ push %rax -+ cmp $0x1000,%rax -+ lea 24(%rsp),%rcx -+ jb 1f -+2: -+ sub $0x1000,%rcx -+ orl $0,(%ecx) -+ sub $0x1000,%rax -+ cmp $0x1000,%rax -+ ja 2b -+1: -+ sub %rax,%rcx -+ orl $0,(%rcx) -+ pop %rax -+ pop %rcx -+ ret -+END_COMPILERRT_FUNCTION(___chkstk_ms) -+ -+#endif // __x86_64__ --- -2.4.5 - diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 803020651d..3332d200c1 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -20,7 +20,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-lld-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn" ) -pkgver=57869.4a4b27a +pkgver=58129.eda30f1 pkgrel=1 pkgdesc="C language family frontend for LLVM (mingw-w64)" arch=('any') @@ -40,13 +40,9 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" "testsuite"::"git+http://llvm.org/git/test-suite.git" "libcxxabi"::"git+http://llvm.org/git/libcxxabi.git" "libcxx"::"git+http://llvm.org/git/libcxx.git" - 0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch - 0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch - 0011-Add-Clang-MinGW-w64-driver.patch - 0012-Fixup-all-windows-ARM-targets.patch - 0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch - 0021-add-support-for-mingw-w64-in-builtins.patch - 0022-builtins-implement-_chkstk-routine-for-windows.patch + 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch + 0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch + 0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch 0031-COFF-add-the-mingw-alias-for-ImageBase.patch 0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch 0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch @@ -68,13 +64,9 @@ md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - '9b93c8e61c7480c551564d06c08291aa' 'a384d4607d9dcdfdcac6912ac413ec58' - 'b6b1fdf2ee41ce16ddaf59892bdfd333' - '6c31dc05b01f038d10ceb5e88c5fe9f5' + 'b3e791da57ef5882c5b029e3a9a65a29' 'e6ce086a33256043af99a5690b251be8' - '259b2ca36651bff1cb3e095608129ddf' - 'e9fb6994de197f8f05da1396be520085' 'a1e06d17915f1cedb1d784ecfdfa60be' '76b01f572c404c7245d227d758cdf7fc' '559b5b75d4efd50079d76dda592fb1b7' @@ -97,8 +89,7 @@ pkgver() { prepare() { cd "${srcdir}"/llvm - git am "${srcdir}"/0001-Fix-asminfo-for-mingw-arm-and-cygwin-arm.patch - git am "${srcdir}"/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch + git am "${srcdir}"/0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch # Fix docs installation directory sed -i 's:$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \ @@ -109,13 +100,10 @@ prepare() { cmake/modules/Makefile cd "${srcdir}"/clang - git am "${srcdir}"/0011-Add-Clang-MinGW-w64-driver.patch - git am "${srcdir}"/0012-Fixup-all-windows-ARM-targets.patch - git am "${srcdir}"/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch + git am "${srcdir}"/0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch + git am "${srcdir}"/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch - cd "${srcdir}"/compiler-rt - git am "${srcdir}"/0021-add-support-for-mingw-w64-in-builtins.patch - git am "${srcdir}"/0022-builtins-implement-_chkstk-routine-for-windows.patch + #cd "${srcdir}"/compiler-rt cd "${srcdir}"/lld #git am "${srcdir}"/0031-COFF-add-the-mingw-alias-for-ImageBase.patch From 2ac0c7847e08ad07b8a4f5f5983bcf50539a6d39 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 11:00:08 +0300 Subject: [PATCH 1319/2060] glib2: Fix patches. --- .../0027-no_sys_if_nametoindex.patch | 26 ++++++++++----- mingw-w64-glib2/0029-grand.all.patch | 12 +++++++ mingw-w64-glib2/PKGBUILD | 33 ++++++++++--------- 3 files changed, 47 insertions(+), 24 deletions(-) create mode 100644 mingw-w64-glib2/0029-grand.all.patch diff --git a/mingw-w64-glib2/0027-no_sys_if_nametoindex.patch b/mingw-w64-glib2/0027-no_sys_if_nametoindex.patch index e2d279db0c..4ab05ad294 100644 --- a/mingw-w64-glib2/0027-no_sys_if_nametoindex.patch +++ b/mingw-w64-glib2/0027-no_sys_if_nametoindex.patch @@ -1,11 +1,19 @@ ---- glib-2.42.1/gio/gsocket.c.orig.zak 2015-02-17 09:43:45.018111600 +0100 -+++ glib-2.42.1/gio/gsocket.c 2015-02-17 09:43:56.560283500 +0100 -@@ -1929,7 +1929,7 @@ - return TRUE; +--- glib-2.43.2/gio/gsocket.c.orig 2014-12-12 15:03:50.000000000 +0000 ++++ glib-2.43.2/gio/gsocket.c 2015-01-14 12:44:04.619136700 +0000 +@@ -1931,7 +1931,7 @@ + + #if !defined(HAVE_IF_NAMETOINDEX) && defined(G_OS_WIN32) + static guint +-if_nametoindex (const gchar *iface) ++w32_if_nametoindex (const gchar *iface) + { + PIP_ADAPTER_ADDRESSES addresses = NULL, p; + gulong addresses_len = 0; +@@ -1981,6 +1981,7 @@ } --#if !defined(HAVE_IF_NAMETOINDEX) && defined(G_OS_WIN32) -+#if defined(G_OS_WIN32) - static guint - if_nametoindex (const gchar *iface) - { + #define HAVE_IF_NAMETOINDEX 1 ++#define if_nametoindex w32_if_nametoindex + #endif + + static gboolean diff --git a/mingw-w64-glib2/0029-grand.all.patch b/mingw-w64-glib2/0029-grand.all.patch new file mode 100644 index 0000000000..13bc3a96b1 --- /dev/null +++ b/mingw-w64-glib2/0029-grand.all.patch @@ -0,0 +1,12 @@ +--- glib-2.43.2/glib/grand.c.orig 2014-09-15 19:51:01.000000000 +0000 ++++ glib-2.43.2/glib/grand.c 2015-01-14 13:53:08.130295800 +0000 +@@ -263,7 +263,8 @@ + } + #else /* G_OS_WIN32 */ + /* rand_s() is only available since Visual Studio 2005 */ +-#if defined(_MSC_VER) && _MSC_VER >= 1400 ++ /* MinGW-w64 has a wrapper that will emulate rand_s() if it's not in msvcrt */ ++#if (defined(_MSC_VER) && _MSC_VER >= 1400) || defined(__MINGW64_VERSION_MAJOR) + gint i; + + for (i = 0; i < G_N_ELEMENTS (seed); i++) diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 287a170f9d..fbe26b225a 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -4,7 +4,7 @@ _realname=glib2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.44.1 -pkgrel=2 +pkgrel=4 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" @@ -27,7 +27,8 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-${pkgver} 0023-print-in-binary-more-for-testing.all.patch 0024-return-actually-written-data-in-printf.all.patch 0027-no_sys_if_nametoindex.patch - 0028-inode_directory.patch) + 0028-inode_directory.patch + 0029-grand.all.patch) md5sums=('83efba4722a9674b97437d1d99af79db' '98c7778b5e8a30dbcdb86bcd15f9c11d' '6eb9d56028ea3bbec3d053254a00a04b' @@ -38,23 +39,25 @@ md5sums=('83efba4722a9674b97437d1d99af79db' '952989e534235721d30b9ee3d89cc225' '217a997ede1b93ac06f96ed869b74378' '500f39baea98d98e4a2f877ad56f55a5' - 'd06748f2891e1f4e6db5684d5935aefc' - '6c06cdfcbf877fb560e0be393a043d56') + '8bc2941b1a5f082c3532e6f0abfeeb84' + '6c06cdfcbf877fb560e0be393a043d56' + '2d4a7a53cfe9011b12f91c79e0ecc63e') prepare() { cd "${srcdir}/glib-${pkgver}" - patch -Np1 -i "$srcdir/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch" - patch -Np1 -i "$srcdir/0003-g_abort.all.patch" - patch -Np1 -i "$srcdir/0004-glib-prefer-constructors-over-DllMain.patch" - patch -Np0 -i "$srcdir/0005-glib-send-log-messages-to-correct-stdout-and-stderr.patch" - patch -Np1 -i "$srcdir/0015-fix-stat.all.patch" - patch -Np1 -i "$srcdir/0017-glib-use-gnu-print-scanf.patch" - patch -Np1 -i "$srcdir/0021-use-64bit-stat-for-localfile-size-calc.all.patch" - patch -Np1 -i "$srcdir/0023-print-in-binary-more-for-testing.all.patch" - patch -Np1 -i "$srcdir/0024-return-actually-written-data-in-printf.all.patch" - patch -Np1 -i "$srcdir/0027-no_sys_if_nametoindex.patch" - patch -Np1 -i "$srcdir/0028-inode_directory.patch" + patch -Np1 -i "${srcdir}/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch" + patch -Np1 -i "${srcdir}/0003-g_abort.all.patch" + patch -Np1 -i "${srcdir}/0004-glib-prefer-constructors-over-DllMain.patch" + patch -Np0 -i "${srcdir}/0005-glib-send-log-messages-to-correct-stdout-and-stderr.patch" + patch -Np1 -i "${srcdir}/0015-fix-stat.all.patch" + patch -Np1 -i "${srcdir}/0017-glib-use-gnu-print-scanf.patch" + patch -Np1 -i "${srcdir}/0021-use-64bit-stat-for-localfile-size-calc.all.patch" + patch -Np1 -i "${srcdir}/0023-print-in-binary-more-for-testing.all.patch" + patch -Np1 -i "${srcdir}/0024-return-actually-written-data-in-printf.all.patch" + patch -Np1 -i "${srcdir}/0027-no_sys_if_nametoindex.patch" + patch -Np1 -i "${srcdir}/0028-inode_directory.patch" + patch -Np1 -i "${srcdir}/0029-grand.all.patch" NOCONFIGURE=1 ./autogen.sh } From 494f1c9cfe8df5f43d7575f788635509742c1568 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20=C3=98stergaard?= Date: Wed, 22 Jul 2015 10:04:38 +0200 Subject: [PATCH 1320/2060] Update the kicad with using only git sources and make the rev count align with the BZR rev --- mingw-w64-kicad-git/PKGBUILD | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/mingw-w64-kicad-git/PKGBUILD b/mingw-w64-kicad-git/PKGBUILD index 7804c3b0c7..3fa2e79f77 100644 --- a/mingw-w64-kicad-git/PKGBUILD +++ b/mingw-w64-kicad-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=kicad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r7676.ba5d45c +pkgver=r5971.ba32ccb pkgrel=1 pkgdesc="Software for the creation of electronic schematic diagrams and printed circuit board artwork (mingw-w64)" arch=('any') @@ -22,10 +22,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-swig" - "bzr" "git") source=("${_realname}"::"git+https://github.com/KiCad/kicad-source-mirror.git" - "${_realname}-docs"::"bzr+https://code.launchpad.net/~kicad-developers/kicad/doc" + "${_realname}-docs"::"git+https://github.com/blairbonnett-mirrors/kicad-doc.git" "${_realname}-libs"::"git+https://github.com/KiCad/kicad-library.git" ) md5sums=('SKIP' @@ -35,10 +34,12 @@ md5sums=('SKIP' pkgver() { cd "${srcdir}/${_realname}" - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + printf "r%s.%s" "$(git rev-list --count --first-parent HEAD)" "$(git rev-parse --short HEAD)" } build() { + cd "${srcdir}" + # Configure and build KiCad. [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} @@ -60,7 +61,7 @@ build() { make - cd ../ + cd "${srcdir}" # Configure the documentation installation build. [[ -d build-docs ]] && rm -r build-docs @@ -71,7 +72,7 @@ build() { -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ ../${_realname}-docs - cd ../ + cd "${srcdir}" # Configure the library installation build. [[ -d build-libs ]] && rm -r build-libs @@ -86,18 +87,14 @@ build() { package() { # Install KiCad. - cd build-${MINGW_CHOST} + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR=${pkgdir} install - cd ../ - # Install KiCad documentation. - cd build-docs + cd "${srcdir}/build-docs" make DESTDIR=${pkgdir} install - cd ../ - # Install KiCad libraries. - cd build-libs + cd "${srcdir}/build-libs" make DESTDIR=${pkgdir} install } From 918edcd0d8c20f13def4e12915c63e8b495a7f21 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 11:08:51 +0300 Subject: [PATCH 1321/2060] gobject-introspection: Pass CC and FLAGS to scanner --- ...ng-arguments-to-g-ir-scanner-through-a-.all.patch | 10 ++++++---- .../0065-fix-compare-uname-output.patch | 12 ------------ mingw-w64-gobject-introspection/PKGBUILD | 6 +++--- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch b/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch index ee072467c0..f318747fc3 100644 --- a/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch +++ b/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch @@ -193,7 +193,7 @@ - $(call introspection-compiler,$<,$@) --- a/Makefile.introspection.in +++ a/Makefile.introspection.in -@@ -0,0 +1,187 @@ +@@ -0,0 +1,189 @@ +# -*- Mode: make -*- +# Copyright 2009-2010 Johan Dahlin +# @@ -264,7 +264,7 @@ +# a command-line argument --libtool="/bin/sh ../../libtool" into +# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path +# because we already "know" where the libtool configure produced is. -+_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) ++_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) + +# Macros for AM_SILENT_RULES prettiness +_gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) @@ -280,6 +280,8 @@ +_gir_silent_compiler_ = $(_gir_silent_compiler_$(_gir_verbosity)) +_gir_silent_compiler_0 = @echo " GICOMP $(1)"; + ++_gir_default_scanner_env = CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" ++ +# +# Creates a GIR by scanning C headers/sources +# $(1) - Name of the gir file (output) @@ -327,7 +329,7 @@ +# needs to be added manually. +@COMMENT_ON_W32@$(1): $$($(_gir_name)_FILES) +@COMMENT_ON_W32@ @ $(MKDIR_P) $(dir $(1)) -+@COMMENT_ON_W32@ $(_gir_silent_scanner_prefix) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \ ++@COMMENT_ON_W32@ $(_gir_silent_scanner_prefix) $(_gir_default_scanner_env) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \ +@COMMENT_ON_W32@ $(INTROSPECTION_SCANNER_ARGS) \ +@COMMENT_ON_W32@ --namespace=$(_gir_namespace) \ +@COMMENT_ON_W32@ --nsversion=$(_gir_version) \ @@ -348,7 +350,7 @@ +@COMMENT_ON_NONW32@$(1): $$($(_gir_name)_FILES) +@COMMENT_ON_NONW32@ @ $(MKDIR_P) $(dir $(1)) +@COMMENT_ON_NONW32@ @ echo $$^ > $(1).files -+@COMMENT_ON_NONW32@ $(_gir_silent_scanner_prefix) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \ ++@COMMENT_ON_NONW32@ $(_gir_silent_scanner_prefix) $(_gir_default_scanner_env) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \ +@COMMENT_ON_NONW32@ $(INTROSPECTION_SCANNER_ARGS) \ +@COMMENT_ON_NONW32@ --namespace=$(_gir_namespace) \ +@COMMENT_ON_NONW32@ --nsversion=$(_gir_version) \ diff --git a/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch b/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch index fd50b9218f..149634a3ad 100644 --- a/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch +++ b/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch @@ -6,18 +6,6 @@ diff -Naur gobject-introspection-1.44.0-orig/Makefile.in gobject-introspection-1 # --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path # because we already "know" where the libtool configure produced is. -_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) -+_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) - - # Macros for AM_SILENT_RULES prettiness - _gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) -diff -Naur gobject-introspection-1.44.0-orig/Makefile.introspection.in gobject-introspection-1.44.0/Makefile.introspection.in ---- gobject-introspection-1.44.0-orig/Makefile.introspection.in 2015-03-25 13:42:43.704200000 +0300 -+++ gobject-introspection-1.44.0/Makefile.introspection.in 2015-03-25 16:06:53.067000000 +0300 -@@ -68,7 +68,7 @@ - # a command-line argument --libtool="/bin/sh ../../libtool" into - # --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path - # because we already "know" where the libtool configure produced is. --_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) +_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) # Macros for AM_SILENT_RULES prettiness diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index c8e551ffc4..ac8225fb6b 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -3,7 +3,7 @@ _realname=gobject-introspection pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-runtime") pkgver=1.44.0 -pkgrel=4 +pkgrel=5 arch=('any') url="https://live.gnome.org/GObjectIntrospection" license=("LGPL") @@ -28,10 +28,10 @@ md5sums=('7ef8a1db7f74f4193a2397b1587eb913' 'f0ecde986ebf1f0e28b752f9c36fb6c1' '69ef34e2f57abc8afe1b9f6fa3786e97' '8d3589fb959a0a68ce7ce9051fa441fe' - 'a5c7e19ce0031f3388f4912bf0d83f7a' + 'a10888857e647b657e8ccbcd21016176' 'e3598d539258678eef8dde2216419faf' '6d809bf266e42a20b31a7acbaf0384d1' - 'e348d9ac65e380dd05e68818ab139dba') + 'e95fa9ecd29bc00c57789d10a244fd4e') prepare() { cd ${srcdir}/${_realname}-${pkgver} From 60e2bb3f2a5c6e338cadd658a388f571ef7e05ba Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 11:11:59 +0300 Subject: [PATCH 1322/2060] gplugin: Build with introspection --- mingw-w64-gplugin/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gplugin/PKGBUILD b/mingw-w64-gplugin/PKGBUILD index ce9c892d0a..fd5413909c 100644 --- a/mingw-w64-gplugin/PKGBUILD +++ b/mingw-w64-gplugin/PKGBUILD @@ -3,7 +3,7 @@ _realname=gplugin pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.0.21 -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="A GObject based library that implements a reusable plugin system (mingw-w64)" license=("LGPL 2") @@ -41,10 +41,10 @@ build() { -DCMAKE_C_FLAGS="${CFLAGS}" \ -DBUILD_GJS=OFF \ -DBUILD_LUA=OFF \ - -DBUILD_PYTHON=OFF \ + -DBUILD_PYTHON=ON \ -DBUILD_SEED=OFF \ -DTESTING_ENABLED=OFF \ - -DBUILD_GIR=OFF \ + -DBUILD_GIR=ON \ ../rw_grim-gplugin-* make From be0b5b9c4839e365ae007349298494e89f872b1a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 11:34:32 +0300 Subject: [PATCH 1323/2060] ansicon-git: Rebuild. --- mingw-w64-ansicon-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-ansicon-git/PKGBUILD b/mingw-w64-ansicon-git/PKGBUILD index 1adaafb2a9..4280a0b160 100644 --- a/mingw-w64-ansicon-git/PKGBUILD +++ b/mingw-w64-ansicon-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=ansicon pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=1.70.r65.3acc7a9 -pkgrel=1 +pkgrel=2 pkgdesc="Process ANSI escape sequences for Windows console programs (mingw-w64)" arch=('any') url="http://adoxa.altervista.org/ansicon/" From 55bdfa6924f588426d2ca5b9b8a10d7ad6502bc0 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 11:44:16 +0300 Subject: [PATCH 1324/2060] creduce-git: Package come back. --- mingw-w64-creduce-git/PKGBUILD | 64 +++++++++++++++++++++++ mingw-w64-creduce-git/llvm-config-cygpath | 9 ++++ 2 files changed, 73 insertions(+) create mode 100644 mingw-w64-creduce-git/PKGBUILD create mode 100644 mingw-w64-creduce-git/llvm-config-cygpath diff --git a/mingw-w64-creduce-git/PKGBUILD b/mingw-w64-creduce-git/PKGBUILD new file mode 100644 index 0000000000..779b235048 --- /dev/null +++ b/mingw-w64-creduce-git/PKGBUILD @@ -0,0 +1,64 @@ +# Maintainer: Ray Donnelly + +_realname=creduce +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=creduce.2.3.0.14.g49782e7 +pkgrel=1 +pkgdesc="A C program reducer (mingw-w64)" +depends=('delta' + 'perl-Benchmark-Timer' + 'perl-Exporter-Lite' + 'perl-File-Which' + 'perl-Getopt-Tabular' + 'perl-Regexp-Common' + 'perl-Sys-CPU' + "${MINGW_PACKAGE_PREFIX}-astyle" + "${MINGW_PACKAGE_PREFIX}-indent") +arch=('any') +url='https://github.com/csmith-project/creduce' +license=('custom:University of Illinois/NCSA Open Source License') +makedepends=("git" "flex" "${MINGW_PACKAGE_PREFIX}-clang") +source=(${_realname}::git+https://github.com/csmith-project/creduce.git + "llvm-config-cygpath") +sha256sums=('SKIP' + '03a7239d1e26d8a5dd5f405e10826679725cae6c01a9c37e80c6f1c184dad0a9') + +pkgver() { + cd "${srcdir}/${_realname}" + git describe --always | sed 's|-|.|g' +} + +prepare() { + cd "${srcdir}" + [[ -d tools ]] && rm -rf tools + mkdir tools + cp -f "${srcdir}"/llvm-config-cygpath tools/llvm-config +} + +build() { + cd "${srcdir}" + [ -d ${CARCH} ] && rm -rf ${CARCH} + mkdir ${CARCH} + cd ${CARCH} + PATH="${srcdir}/tools:$PATH" \ + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} + + make +} + +package() { + cd "${srcdir}/${CARCH}" + make DESTDIR="${pkgdir}" install + install -Dm644 "../${_realname}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + + # Point creduce perl script: + # lib $FindBin::Bin, '${MINGW_PREFIX}/share/creduce/perl'; + # .. to msys2 perl. + sed "s|${MINGW_PREFIX}|/usr|g" \ + -i ${pkgdir}${MINGW_PREFIX}/bin/creduce +} diff --git a/mingw-w64-creduce-git/llvm-config-cygpath b/mingw-w64-creduce-git/llvm-config-cygpath new file mode 100644 index 0000000000..427bcc178e --- /dev/null +++ b/mingw-w64-creduce-git/llvm-config-cygpath @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +# Translates output from MSYS2/MinGW-w64 llvm-config.exe to MSYS2 form. +# It may make sense to include this as part of the llvm packages? + +MINGW_PREFIX_M=$(cygpath -m $(dirname $(dirname $(which llvm-config)))) +# echo "input $*" >> /tmp/llvm-config.log +# echo "output " $(llvm-config.exe $*) | tr '\\' '/' | sed "s|${MINGW_PREFIX_M}|$(cygpath -u ${MINGW_PREFIX_M})|g" >> /tmp/llvm-config.log +echo $(llvm-config.exe $*) | tr '\\' '/' | sed "s|${MINGW_PREFIX_M}|$(cygpath -u ${MINGW_PREFIX_M})|g" From 7115b51457df22fcb2049e34c6d7ddcc1c4e9e02 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 11:51:57 +0300 Subject: [PATCH 1325/2060] FAIL_LIST: update --- FAIL_LIST.md | 90 ++++++++++++++++++++++++++++------------------------ 1 file changed, 49 insertions(+), 41 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index bbd6c9aad3..d133cb0a24 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -1,84 +1,92 @@ List of packages that currently fail to build ============================================= -*collada-dom-svn +- blender -*cocos2dx-git +- cegui (waiting for 0.8.5 release) -*coq +- collada-dom-svn -*crypto++ +- cocos2dx-git -*freerdp-git +- coq -*glsl-optimizer +- crypto++ -*gnu-cobol-svn +- freerdp-git -*gplugin (with introspection) +- glsl-optimizer -*gprbuild-gpl +- gnu-cobol-svn -*gst-python +- gprbuild-gpl -*gtkada +- gst-python -*hlsl2glsl +- gtkada -*innoextract +- hlsl2glsl -*itk +- innoextract -*kicad-git +- itk -*ldns +- kicad-git -*libimobiledevice +- ldns -*libodfgen +- libimobiledevice -*librescl +- libodfgen -*librocket-git +- librescl -*libsecret +- librocket-git -*nim +- libsecret -*nimble +-nim -*ocaml-lablgtk +- nimble -*octave-hg +- ocaml-lablgtk -*openscenegraph +- octave-hg -*openocd-git +- ogre3d -*openshadinglanguage +- openscenegraph -*perl +- openocd-git -*plplot +- openshadinglanguage -*qrupdate +- perl -*python-binwalk +- plplot -*python-h5py +- qrupdate -*quassel +- pidgin-hg -*tclvfs +- pitivi-git -*tclx +- python-binwalk -*tkimg +- python-h5py -*tktable +- quassel -*winsparkle-git +- tclvfs -*xmlada-gpl +- tclx -*xmlstrartlet +- tkimg + +- tktable + +- winsparkle-git + +- xmlada-gpl + +- xmlstrartlet From bc50014932d07f14e7e6fa7b9aecfb1971ffaf5d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 22 Jul 2015 10:35:18 +0100 Subject: [PATCH 1326/2060] firefox: Getting closer still WIP --- ...eight-Dont-use-old-MinGW-w64-headers.patch | 85 +++++++++++++++++++ mingw-w64-firefox/PKGBUILD | 10 ++- mingw-w64-firefox/manifest | 11 +++ mingw-w64-firefox/mozconfig.i686 | 19 +++++ mingw-w64-firefox/mozconfig.x86_64 | 19 +++++ 5 files changed, 141 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-firefox/0011-stagefreight-Dont-use-old-MinGW-w64-headers.patch create mode 100644 mingw-w64-firefox/manifest create mode 100644 mingw-w64-firefox/mozconfig.i686 create mode 100644 mingw-w64-firefox/mozconfig.x86_64 diff --git a/mingw-w64-firefox/0011-stagefreight-Dont-use-old-MinGW-w64-headers.patch b/mingw-w64-firefox/0011-stagefreight-Dont-use-old-MinGW-w64-headers.patch new file mode 100644 index 0000000000..b7fd3b59a5 --- /dev/null +++ b/mingw-w64-firefox/0011-stagefreight-Dont-use-old-MinGW-w64-headers.patch @@ -0,0 +1,85 @@ +diff -urN firefox-39.0.orig/media/libstagefright/moz.build firefox-39.0/media/libstagefright/moz.build +--- firefox-39.0.orig/media/libstagefright/moz.build 2015-06-30 23:57:58.000000000 +0100 ++++ firefox-39.0/media/libstagefright/moz.build 2015-07-20 18:53:20.523932000 +0100 +@@ -16,9 +16,10 @@ + DEFINES['off64_t'] = 'int64_t' + DEFINES['strcasecmp'] = 'stricmp' + DEFINES['strncasecmp'] = 'strnicmp' ++ LOCAL_INCLUDES += [ 'ports/win32/include' ] + DEFINES['HAVE_MS_C_RUNTIME'] = True + DEFINES['__PRETTY_FUNCTION__'] = '__FUNCTION__' +- LOCAL_INCLUDES += [ 'ports/win32/include' ] ++ LOCAL_INCLUDES += [ 'ports/mingw-w64/include' ] + elif CONFIG['OS_TARGET'] == 'Darwin': + DEFINES['HAVE_SYS_UIO_H'] = True + DEFINES['off64_t'] = 'off_t' +diff -urN firefox-39.0.orig/media/libstagefright/ports/mingw-w64/include/arpa/inet.h firefox-39.0/media/libstagefright/ports/mingw-w64/include/arpa/inet.h +--- firefox-39.0.orig/media/libstagefright/ports/mingw-w64/include/arpa/inet.h 1970-01-01 01:00:00.000000000 +0100 ++++ firefox-39.0/media/libstagefright/ports/mingw-w64/include/arpa/inet.h 2015-07-20 19:55:44.843115100 +0100 +@@ -0,0 +1,9 @@ ++/* Any copyright is dedicated to the Public Domain. ++ * http://creativecommons.org/publicdomain/zero/1.0/ */ ++ ++#ifndef INET_H_ ++#define INET_H_ ++ ++#include ++ ++#endif +diff -urN firefox-39.0.orig/media/libstagefright/ports/mingw-w64/include/byteswap.h firefox-39.0/media/libstagefright/ports/mingw-w64/include/byteswap.h +--- firefox-39.0.orig/media/libstagefright/ports/mingw-w64.orig/include/byteswap.h 1970-01-01 01:00:00.000000000 +0100 ++++ firefox-39.0/media/libstagefright/ports/mingw-w64/include/byteswap.h 2015-07-20 20:22:01.796787900 +0100 +@@ -0,0 +1,10 @@ ++/* Any copyright is dedicated to the Public Domain. ++ * http://creativecommons.org/publicdomain/zero/1.0/ */ ++ ++#ifndef BYTESWAP_H_ ++#define BYTESWAP_H_ ++ ++#include ++#define bswap_16 _byteswap_ushort ++ ++#endif +diff -urN firefox-39.0.orig/media/libstagefright/ports/mingw-w64/include/netinet/in.h firefox-39.0/media/libstagefright/ports/mingw-w64/include/netinet/in.h +--- firefox-39.0.orig/media/libstagefright/ports/mingw-w64/include/netinet/in.h 1970-01-01 01:00:00.000000000 +0100 ++++ firefox-39.0/media/libstagefright/ports/mingw-w64/include/netinet/in.h 2015-07-20 19:55:44.858714700 +0100 +@@ -0,0 +1,39 @@ ++/* Any copyright is dedicated to the Public Domain. ++ * http://creativecommons.org/publicdomain/zero/1.0/ */ ++ ++#ifndef IN_H_ ++#define IN_H_ ++ ++#include ++ ++#if defined(_M_IX86) || defined(_M_AMD64) ++ ++static uint32_t ++ntohl(uint32_t x) ++{ ++ return x << 24 | (x << 8 & 0xff0000) | (x >> 8 & 0xff00) | x >> 24; ++} ++ ++static uint16_t ++ntohs(uint16_t x) ++{ ++ return x << 8 | x >> 8; ++} ++ ++static uint32_t ++htonl(uint32_t x) ++{ ++ return x << 24 | (x << 8 & 0xff0000) | (x >> 8 & 0xff00) | x >> 24; ++} ++ ++static uint16_t ++htons(uint16_t x) ++{ ++ return x << 8 | x >> 8; ++} ++ ++#else ++#error Unsupported architecture ++#endif ++ ++#endif diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index 7a2d56e60c..4b3088c052 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -85,7 +85,8 @@ url='https://www.mozilla.org/firefox/' license=('MPL2') makedepends=('unzip' 'zip' - "${MINGW_PACKAGE_PREFIX}-yasm") + "${MINGW_PACKAGE_PREFIX}-yasm" + "${MINGW_PACKAGE_PREFIX}-python2") source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/source/${_realname}-${pkgver}.source.tar.bz2" "http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/moztools-static.zip" manifest @@ -99,6 +100,7 @@ source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/ "0008-Fix-stray-back-slash-in-program.patch" "0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch" "0010-Dont-use-I64-numeric-suffix.patch" + "0011-stagefreight-Dont-use-old-MinGW-w64-headers.patch" "debugging.patch" "mozconfig.x86_64" "mozconfig.i686" @@ -118,9 +120,10 @@ sha1sums=('32785daee7ddb9da8d7509ef095258fc58fe838e' 'c17480500944d0863f51af46919133b2bd777e0c' '17bc2719882a5bc0775f48522a45c9132aebdd04' '12385ab4cb659f712f3a3a93248741d299048b9c' + '4553ac6631d56bc251ffd6cbc503002c6835c9de' 'c2a0ed20a82d212bb4aa84cb2f294be3ba0bb859' - 'f437cc5a819788b63d8d9202290f516a85e9f6a2' - 'f6da0857f310788c4a23d158bf03a93ab11230b7' + 'fb6b4567f07fb5e51dfb2b898c1b0ffdf550eba6' + 'ccc52e6b4031ce48d006a4a28e6db289faeec3b4' '17c4f8628ea435c999be66ee4c2967fdaf3b2955' 'ffb6644dbad00413c668c833e3f3680d1d73aa53') @@ -159,6 +162,7 @@ prepare() { patch -p1 -i "${srcdir}"/0008-Fix-stray-back-slash-in-program.patch patch -p1 -i "${srcdir}"/0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch patch -p1 -i "${srcdir}"/0010-Dont-use-I64-numeric-suffix.patch + patch -p1 -i "${srcdir}"/0011-stagefreight-Dont-use-old-MinGW-w64-headers.patch patch -p1 -i "${srcdir}"/debugging.patch find . -name config.sub -exec cp "${srcdir}"/config.sub {} \; diff --git a/mingw-w64-firefox/manifest b/mingw-w64-firefox/manifest new file mode 100644 index 0000000000..43c4646d22 --- /dev/null +++ b/mingw-w64-firefox/manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/mingw-w64-firefox/mozconfig.i686 b/mingw-w64-firefox/mozconfig.i686 new file mode 100644 index 0000000000..8a6a05acd1 --- /dev/null +++ b/mingw-w64-firefox/mozconfig.i686 @@ -0,0 +1,19 @@ +#Specify the cross compile +export CROSS_COMPILE=1 +mk_add_options CROSS_COMPILE=1 +ac_add_options --enable-application=browser +ac_add_options --target=i686-w64-mingw32 +ac_add_options --enable-default-toolkit=cairo-windows + +ac_add_options --enable-debug +ac_add_options --disable-optimize + +ac_add_options --disable-updater +ac_add_options --disable-crashreporter +ac_add_options --disable-maintenance-service +ac_add_options --disable-webrtc +ac_add_options --without-intl-api +ac_add_options --disable-sandbox + +# Use parallel build. Adjust number of processes for your setup. +mk_add_options MOZ_MAKE_FLAGS=-j8 diff --git a/mingw-w64-firefox/mozconfig.x86_64 b/mingw-w64-firefox/mozconfig.x86_64 new file mode 100644 index 0000000000..55cb2807bf --- /dev/null +++ b/mingw-w64-firefox/mozconfig.x86_64 @@ -0,0 +1,19 @@ +#Specify the cross compile +export CROSS_COMPILE=1 +mk_add_options CROSS_COMPILE=1 +ac_add_options --enable-application=browser +ac_add_options --target=x86_64-w64-mingw32 +ac_add_options --enable-default-toolkit=cairo-windows + +ac_add_options --enable-debug +ac_add_options --disable-optimize + +ac_add_options --disable-updater +ac_add_options --disable-crashreporter +ac_add_options --disable-maintenance-service +ac_add_options --disable-webrtc +ac_add_options --without-intl-api +ac_add_optoins --disable-sandbox + +# Use parallel build. Adjust number of processes for your setup. +mk_add_options MOZ_MAKE_FLAGS=-j8 From 3008485b5a72772c1b4e66784b8e98acb6e8dbee Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 22 Jul 2015 10:31:15 +0100 Subject: [PATCH 1327/2060] glsl-optimizer: Build fixes, added installation --- FAIL_LIST.md | 2 - .../0001-GYP-Add-missing-files.patch | 37 +++++++++++ ...001-cmake-Link-OpenGL-with-glsl_test.patch | 14 ---- .../0002-tests-MinGW-w64-Fix-build.patch | 36 ++++++++++ ...long-is-32-bit-use-intptr_t-instead.patch} | 65 ++++++++++++------- .../0003-fix-tests-compile.patch | 20 ------ ...Use-find_package-OpenGL-in-CMakeList.patch | 28 ++++++++ ...duplicate-_mesa_error_no_memory-func.patch | 52 +++++++++++++++ .../0006-CMake-Handle-installation.patch | 52 +++++++++++++++ mingw-w64-glsl-optimizer/PKGBUILD | 46 +++++++------ 10 files changed, 271 insertions(+), 81 deletions(-) create mode 100644 mingw-w64-glsl-optimizer/0001-GYP-Add-missing-files.patch delete mode 100644 mingw-w64-glsl-optimizer/0001-cmake-Link-OpenGL-with-glsl_test.patch create mode 100644 mingw-w64-glsl-optimizer/0002-tests-MinGW-w64-Fix-build.patch rename mingw-w64-glsl-optimizer/{0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch => 0003-Win64-long-is-32-bit-use-intptr_t-instead.patch} (50%) delete mode 100644 mingw-w64-glsl-optimizer/0003-fix-tests-compile.patch create mode 100644 mingw-w64-glsl-optimizer/0004-tests-MinGW-w64-Use-find_package-OpenGL-in-CMakeList.patch create mode 100644 mingw-w64-glsl-optimizer/0005-main.cpp-Remove-duplicate-_mesa_error_no_memory-func.patch create mode 100644 mingw-w64-glsl-optimizer/0006-CMake-Handle-installation.patch diff --git a/FAIL_LIST.md b/FAIL_LIST.md index d133cb0a24..c72e92b42a 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -15,8 +15,6 @@ List of packages that currently fail to build - freerdp-git -- glsl-optimizer - - gnu-cobol-svn - gprbuild-gpl diff --git a/mingw-w64-glsl-optimizer/0001-GYP-Add-missing-files.patch b/mingw-w64-glsl-optimizer/0001-GYP-Add-missing-files.patch new file mode 100644 index 0000000000..d14aa2b202 --- /dev/null +++ b/mingw-w64-glsl-optimizer/0001-GYP-Add-missing-files.patch @@ -0,0 +1,37 @@ +From 1c56d65b20a354fa4c83e06524aee8e53d503c62 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 14 Jul 2015 16:29:12 +0100 +Subject: [PATCH 1/6] GYP: Add missing files + +--- + src/glsl_optimizer_lib.gyp | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/glsl_optimizer_lib.gyp b/src/glsl_optimizer_lib.gyp +index 37ae920..980683a 100644 +--- a/src/glsl_optimizer_lib.gyp ++++ b/src/glsl_optimizer_lib.gyp +@@ -114,7 +114,7 @@ + 'glsl/lower_vec_index_to_swizzle.cpp', + 'glsl/lower_vector.cpp', + 'glsl/lower_vector_insert.cpp', +- 'glsl/lower_named_interface_blocks.cpp', ++ 'glsl/lower_vertex_id.cpp', + 'glsl/opt_algebraic.cpp', + 'glsl/opt_array_splitting.cpp', + 'glsl/opt_constant_folding.cpp', +@@ -136,8 +136,9 @@ + 'glsl/opt_tree_grafting.cpp', + 'glsl/opt_vectorize.cpp', + 'glsl/opt_vector_splitting.cpp', +- 'glsl/opt_flip_matrices.cpp', +- 'glsl/opt_dead_builtin_varyings.cpp', ++ 'glsl/opt_minmax.cpp', ++ 'glsl/opt_rebalance_tree.cpp', ++ 'glsl/opt_dead_builtin_variables.cpp', + 'glsl/program.h', + 'glsl/s_expression.cpp', + 'glsl/s_expression.h', +-- +2.4.5 + diff --git a/mingw-w64-glsl-optimizer/0001-cmake-Link-OpenGL-with-glsl_test.patch b/mingw-w64-glsl-optimizer/0001-cmake-Link-OpenGL-with-glsl_test.patch deleted file mode 100644 index 57ebac196c..0000000000 --- a/mingw-w64-glsl-optimizer/0001-cmake-Link-OpenGL-with-glsl_test.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- glsl-optimizer/CMakeLists.txt.orig 2015-07-19 12:59:40.145662300 +0300 -+++ glsl-optimizer/CMakeLists.txt 2015-07-19 13:01:15.179097900 +0300 -@@ -41,7 +41,10 @@ - # OSX-specific build requirements - find_library(OpenGL_LIBRARY OpenGL ) - target_link_libraries(glsl_test ${OpenGL_LIBRARY}) --endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") -+elseif(MINGW) -+ find_package(OpenGL) -+ target_link_libraries(glsl_test ${OPENGL_gl_LIBRARY}) -+endif() - - file(GLOB glslopt_sources contrib/glslopt/*.cpp) - add_executable(glslopt ${glslopt_sources}) diff --git a/mingw-w64-glsl-optimizer/0002-tests-MinGW-w64-Fix-build.patch b/mingw-w64-glsl-optimizer/0002-tests-MinGW-w64-Fix-build.patch new file mode 100644 index 0000000000..1d8dad6827 --- /dev/null +++ b/mingw-w64-glsl-optimizer/0002-tests-MinGW-w64-Fix-build.patch @@ -0,0 +1,36 @@ +From 24bb20df088cae8e3b8e29fa17a083c31d6ab6ac Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 9 Dec 2013 19:10:48 +0000 +Subject: [PATCH 2/6] tests (MinGW-w64): Fix build + +Generalize two checks for _MSC_VER by replacing them +with checks for _WIN32. +--- + tests/glsl_optimizer_tests.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/glsl_optimizer_tests.cpp b/tests/glsl_optimizer_tests.cpp +index 7dab3d1..da8991f 100644 +--- a/tests/glsl_optimizer_tests.cpp ++++ b/tests/glsl_optimizer_tests.cpp +@@ -14,7 +14,7 @@ + #if GOT_GFX + + // ---- Windows GL bits +-#ifdef _MSC_VER ++#ifdef _WIN32 + #define GOT_MORE_THAN_GLSL_120 1 + #include + #include +@@ -370,7 +370,7 @@ static StringVector GetFiles (const std::string& folder, const std::string& ends + { + StringVector res; + +- #ifdef _MSC_VER ++ #ifdef _WIN32 + WIN32_FIND_DATAA FindFileData; + HANDLE hFind = FindFirstFileA ((folder+"/*"+endsWith).c_str(), &FindFileData); + if (hFind == INVALID_HANDLE_VALUE) +-- +2.4.5 + diff --git a/mingw-w64-glsl-optimizer/0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch b/mingw-w64-glsl-optimizer/0003-Win64-long-is-32-bit-use-intptr_t-instead.patch similarity index 50% rename from mingw-w64-glsl-optimizer/0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch rename to mingw-w64-glsl-optimizer/0003-Win64-long-is-32-bit-use-intptr_t-instead.patch index e8d08bf4b2..6d6307e113 100644 --- a/mingw-w64-glsl-optimizer/0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch +++ b/mingw-w64-glsl-optimizer/0003-Win64-long-is-32-bit-use-intptr_t-instead.patch @@ -1,6 +1,18 @@ ---- glsl-optimizer/src/glsl/ir_print_glsl_visitor.cpp.orig 2014-01-18 16:35:24.773200000 +0400 -+++ glsl-optimizer/src/glsl/ir_print_glsl_visitor.cpp 2014-01-18 17:11:06.406600000 +0400 -@@ -337,7 +337,7 @@ +From f921c25741eb5e97c9c327e3873394f536361e50 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Tue, 14 Jul 2015 16:28:25 +0100 +Subject: [PATCH 3/6] Win64: long is 32-bit, use intptr_t instead + +--- + src/glsl/ir_print_glsl_visitor.cpp | 4 ++-- + src/glsl/ir_print_metal_visitor.cpp | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/glsl/ir_print_glsl_visitor.cpp b/src/glsl/ir_print_glsl_visitor.cpp +index 81a2c60..73afa8d 100644 +--- a/src/glsl/ir_print_glsl_visitor.cpp ++++ b/src/glsl/ir_print_glsl_visitor.cpp +@@ -337,7 +337,7 @@ void ir_print_glsl_visitor::newline_deindent() void ir_print_glsl_visitor::print_var_name (ir_variable* v) { @@ -9,27 +21,7 @@ if (!id && v->data.mode == ir_var_temporary) { id = ++globals->var_counter; -@@ -465,7 +465,7 @@ - // give an id to any variable defined in a function that is not an uniform - if ((this->mode == kPrintGlslNone && ir->mode != ir_var_uniform)) - { -- long id = (long)hash_table_find (globals->var_hash, ir); -+ intptr_t id = (intptr_t)hash_table_find (globals->var_hash, ir); - if (id == 0) - { - id = ++globals->var_counter; ---- glsl-optimizer/src/glsl/ir_print_metal_visitor.cpp.orig 2014-01-18 16:35:24.773200000 +0400 -+++ glsl-optimizer/src/glsl/ir_print_metal_visitor.cpp 2014-01-18 17:11:06.406600000 +0400 -@@ -377,7 +377,7 @@ - - void ir_print_metal_visitor::print_var_name (ir_variable* v) - { -- long id = (long)hash_table_find (globals->var_hash, v); -+ intptr_t id = (intptr_t)hash_table_find (globals->var_hash, v); - if (!id && v->data.mode == ir_var_temporary) - { - id = ++globals->var_counter; -@@ -546,7 +546,7 @@ +@@ -462,7 +462,7 @@ void ir_print_glsl_visitor::visit(ir_variable *ir) // give an id to any variable defined in a function that is not an uniform if ((this->mode == kPrintGlslNone && ir->data.mode != ir_var_uniform)) { @@ -38,3 +30,28 @@ if (id == 0) { id = ++globals->var_counter; +diff --git a/src/glsl/ir_print_metal_visitor.cpp b/src/glsl/ir_print_metal_visitor.cpp +index 0442208..c523d89 100644 +--- a/src/glsl/ir_print_metal_visitor.cpp ++++ b/src/glsl/ir_print_metal_visitor.cpp +@@ -377,7 +377,7 @@ void ir_print_metal_visitor::newline_deindent() + + void ir_print_metal_visitor::print_var_name (ir_variable* v) + { +- long id = (long)hash_table_find (globals->var_hash, v); ++ intptr_t id = (intptr_t)hash_table_find (globals->var_hash, v); + if (!id && v->data.mode == ir_var_temporary) + { + id = ++globals->var_counter; +@@ -546,7 +546,7 @@ void ir_print_metal_visitor::visit(ir_variable *ir) + // give an id to any variable defined in a function that is not an uniform + if ((this->mode == kPrintGlslNone && ir->data.mode != ir_var_uniform)) + { +- long id = (long)hash_table_find (globals->var_hash, ir); ++ intptr_t id = (intptr_t)hash_table_find (globals->var_hash, ir); + if (id == 0) + { + id = ++globals->var_counter; +-- +2.4.5 + diff --git a/mingw-w64-glsl-optimizer/0003-fix-tests-compile.patch b/mingw-w64-glsl-optimizer/0003-fix-tests-compile.patch deleted file mode 100644 index 472f865b2d..0000000000 --- a/mingw-w64-glsl-optimizer/0003-fix-tests-compile.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- glsl-optimizer/tests/glsl_optimizer_tests.cpp.orig 2014-01-18 16:35:25.459600000 +0400 -+++ glsl-optimizer/tests/glsl_optimizer_tests.cpp 2014-01-18 17:05:21.662000000 +0400 -@@ -14,7 +14,7 @@ - #if GOT_GFX - - // ---- Windows GL bits --#ifdef _MSC_VER -+#ifdef _WIN32 - #define GOT_MORE_THAN_GLSL_120 1 - #include - #include -@@ -311,7 +311,7 @@ - { - StringVector res; - -- #ifdef _MSC_VER -+ #ifdef _WIN32 - WIN32_FIND_DATAA FindFileData; - HANDLE hFind = FindFirstFileA ((folder+"/*"+endsWith).c_str(), &FindFileData); - if (hFind == INVALID_HANDLE_VALUE) diff --git a/mingw-w64-glsl-optimizer/0004-tests-MinGW-w64-Use-find_package-OpenGL-in-CMakeList.patch b/mingw-w64-glsl-optimizer/0004-tests-MinGW-w64-Use-find_package-OpenGL-in-CMakeList.patch new file mode 100644 index 0000000000..f99f17aa12 --- /dev/null +++ b/mingw-w64-glsl-optimizer/0004-tests-MinGW-w64-Use-find_package-OpenGL-in-CMakeList.patch @@ -0,0 +1,28 @@ +From 1320541ceaa321b2c0e105ba1c4161cfb9ee12f1 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 22 Jul 2015 08:44:33 +0100 +Subject: [PATCH 4/6] tests (MinGW-w64): Use find_package(OpenGL) in + CMakeLists.txt + +--- + CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c058bef..d6ab5d8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -42,6 +42,10 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + find_library(OpenGL_LIBRARY OpenGL ) + target_link_libraries(glsl_test ${OpenGL_LIBRARY}) + endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") ++if(MINGW) ++ find_package(OpenGL) ++ target_link_libraries(glsl_test ${OPENGL_gl_LIBRARY}) ++endif(MINGW) + + file(GLOB glslopt_sources contrib/glslopt/*.cpp) + add_executable(glslopt ${glslopt_sources}) +-- +2.4.5 + diff --git a/mingw-w64-glsl-optimizer/0005-main.cpp-Remove-duplicate-_mesa_error_no_memory-func.patch b/mingw-w64-glsl-optimizer/0005-main.cpp-Remove-duplicate-_mesa_error_no_memory-func.patch new file mode 100644 index 0000000000..924735211a --- /dev/null +++ b/mingw-w64-glsl-optimizer/0005-main.cpp-Remove-duplicate-_mesa_error_no_memory-func.patch @@ -0,0 +1,52 @@ +From dd9859f0976b3e447509ed664cb5261d77d063b9 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 22 Jul 2015 08:56:14 +0100 +Subject: [PATCH 5/6] main.cpp: Remove duplicate _mesa_error_no_memory function + +The stub implementation in src/glsl/standalone_scaffolding.cpp +was replaced by the implementation in src/glsl/main.cpp. +--- + src/glsl/main.cpp | 6 ------ + src/glsl/standalone_scaffolding.cpp | 2 ++ + 2 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp +index feed100..97fcee1 100644 +--- a/src/glsl/main.cpp ++++ b/src/glsl/main.cpp +@@ -40,12 +40,6 @@ + + static int glsl_version = 330; + +-extern "C" void +-_mesa_error_no_memory(const char *caller) +-{ +- fprintf(stderr, "Mesa error: out of memory in %s", caller); +-} +- + static void + initialize_context(struct gl_context *ctx, gl_api api) + { +diff --git a/src/glsl/standalone_scaffolding.cpp b/src/glsl/standalone_scaffolding.cpp +index b338e92..16d4b47 100644 +--- a/src/glsl/standalone_scaffolding.cpp ++++ b/src/glsl/standalone_scaffolding.cpp +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include "util/ralloc.h" + + +@@ -52,6 +53,7 @@ _mesa_shader_debug(struct gl_context *, GLenum, GLuint *id, + extern "C" void + _mesa_error_no_memory(const char *caller) + { ++ fprintf(stderr, "Mesa error: out of memory in %s", caller); + } + + +-- +2.4.5 + diff --git a/mingw-w64-glsl-optimizer/0006-CMake-Handle-installation.patch b/mingw-w64-glsl-optimizer/0006-CMake-Handle-installation.patch new file mode 100644 index 0000000000..4c912641dc --- /dev/null +++ b/mingw-w64-glsl-optimizer/0006-CMake-Handle-installation.patch @@ -0,0 +1,52 @@ +From a72a3fef22a2fbf240597f6fe9f58883b17fe27a Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 22 Jul 2015 09:58:02 +0100 +Subject: [PATCH 6/6] CMake: Handle installation + +--- + CMakeLists.txt | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d6ab5d8..0bf8574 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -29,6 +29,8 @@ file(GLOB glsl_sources src/glsl/*.cpp src/glsl/*.c) + file(GLOB glsl_sources_remove src/glsl/main.cpp src/glsl/builtin_stubs.cpp) + list(REMOVE_ITEM glsl_sources ${glsl_sources_remove}) + add_library(glsl_optimizer ${glsl_sources}) ++set_property(TARGET glsl_optimizer PROPERTY PUBLIC_HEADER src/glsl/glsl_optimizer.h) ++ + target_link_libraries(glsl_optimizer glcpp-library mesa) + + add_executable(glsl_compiler src/glsl/main.cpp) +@@ -53,3 +55,26 @@ target_link_libraries(glslopt glsl_optimizer) + + #add_executable(glcpp src/glsl/glcpp/glcpp.c) + #target_link_libraries(glcpp glsl_optimizer) ++ ++# ++# http://www.cmake.org/pipermail/cmake/2010-February/035466.html ++# compute default library install dir ++set (_DEFAULT_LIBRARY_INSTALL_DIR lib) ++if (EXISTS "${CMAKE_INSTALL_PREFIX}/lib32/" AND CMAKE_SIZEOF_VOID_P EQUAL 4) ++ set (_DEFAULT_LIBRARY_INSTALL_DIR lib32) ++elif (EXISTS "${CMAKE_INSTALL_PREFIX}/lib64/" AND CMAKE_SIZEOF_VOID_P EQUAL 8) ++ set (_DEFAULT_LIBRARY_INSTALL_DIR lib64) ++endif () ++# the library install dir ++set(LIBRARY_INSTALL_DIR "${_DEFAULT_LIBRARY_INSTALL_DIR}" CACHE PATH "Installation directory for libraries") ++# make the library install dir an absolute path (can be important e.g. when using CONFIGURE_FILE to embed ++# the library installation directory into a file) ++if(NOT IS_ABSOLUTE "${LIBRARY_INSTALL_DIR}") ++ set(LIBRARY_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIBRARY_INSTALL_DIR}") ++endif() ++# ++ ++install(TARGETS glsl_optimizer glsl_compiler glsl_test glslopt PUBLIC_HEADER ++ ARCHIVE DESTINATION "${LIBRARY_INSTALL_DIR}" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" ++ PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_PREFIX}/include") +-- +2.4.5 + diff --git a/mingw-w64-glsl-optimizer/PKGBUILD b/mingw-w64-glsl-optimizer/PKGBUILD index 75a785a4d8..8cbcb0700a 100644 --- a/mingw-w64-glsl-optimizer/PKGBUILD +++ b/mingw-w64-glsl-optimizer/PKGBUILD @@ -1,4 +1,5 @@ # Maintainer: Alexey Pavlov +# Maintainer: Ray Donnelly _realname=glsl-optimizer pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" @@ -13,32 +14,38 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' 'staticlibs' '!emptydirs') source=("${_realname}"::"git+https://github.com/aras-p/glsl-optimizer.git" - 0001-cmake-Link-OpenGL-with-glsl_test.patch - 0002-Fix-glslopt-compile-failure.patch - 0003-fix-tests-compile.patch - 0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch) + 0001-GYP-Add-missing-files.patch + 0002-tests-MinGW-w64-Fix-build.patch + 0003-Win64-long-is-32-bit-use-intptr_t-instead.patch + 0004-tests-MinGW-w64-Use-find_package-OpenGL-in-CMakeList.patch + 0005-main.cpp-Remove-duplicate-_mesa_error_no_memory-func.patch + 0006-CMake-Handle-installation.patch) md5sums=('SKIP' - 'cad18a6556d133048c4bc9559205b2fb' - '42190f0e6a8f434885e8347831f5d407' - '2b647ac196a91e08bd7e5aa35c851cdd' - '94a782944d4916fb1909af97093b4df8') + '50edec8ce23514d1347eff59ad461964' + '0024bc916c22aeccd1d1f14cfeb9e93d' + '24e10e6c050b3b608c15aab49d7b26b1' + 'a637926c8b3a7b73ce8059233b2d21af' + 'b12670f6a22d0e58803ed09df398be8c' + 'efb55c4ae8eee935e2ec41c8daee3930') pkgver() { - cd "${srcdir}/${_realname}" + cd "${srcdir}"/${_realname} printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd "${srcdir}/${_realname}" - patch -p1 -i ${srcdir}/0001-cmake-Link-OpenGL-with-glsl_test.patch - #patch -p1 -i ${srcdir}/0002-Fix-glslopt-compile-failure.patch - patch -p1 -i ${srcdir}/0003-fix-tests-compile.patch - patch -p1 -i ${srcdir}/0004-Fix-incorrect-Windows-64-hash_table_find-cast.patch + cd "${srcdir}"/${_realname} + git am "${srcdir}"/0001-GYP-Add-missing-files.patch + git am "${srcdir}"/0002-tests-MinGW-w64-Fix-build.patch + git am "${srcdir}"/0003-Win64-long-is-32-bit-use-intptr_t-instead.patch + git am "${srcdir}"/0004-tests-MinGW-w64-Use-find_package-OpenGL-in-CMakeList.patch + git am "${srcdir}"/0005-main.cpp-Remove-duplicate-_mesa_error_no_memory-func.patch + git am "${srcdir}"/0006-CMake-Handle-installation.patch } build() { - [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} - mkdir ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} + mkdir "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ @@ -50,9 +57,6 @@ build() { } package() { - cd ${srcdir}/build-${MINGW_CHOST} - mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,include,lib} - cp *.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp $srcdir/${_realname}/src/glsl/glsl_optimizer.h ${pkgdir}${MINGW_PREFIX}/include/ - cp libglsl_optimizer.a ${pkgdir}${MINGW_PREFIX}/lib/ + cd "${srcdir}"/build-${CARCH} + make install DESTDIR=${pkgdir} } From ed9015b7bd499b102c28720b339a5415dec2fc8b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 12:52:48 +0300 Subject: [PATCH 1328/2060] binutils: Update to 2.25.1 --- .../0110-binutils-mingw-gnu-print.patch | 34 +++++++++---------- mingw-w64-binutils/PKGBUILD | 8 ++--- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/mingw-w64-binutils/0110-binutils-mingw-gnu-print.patch b/mingw-w64-binutils/0110-binutils-mingw-gnu-print.patch index 88931e9fce..1a2534ed90 100644 --- a/mingw-w64-binutils/0110-binutils-mingw-gnu-print.patch +++ b/mingw-w64-binutils/0110-binutils-mingw-gnu-print.patch @@ -28,12 +28,12 @@ diff -Naur binutils-2.24/binutils/dwarf.c binutils-2.24-mingw/binutils/dwarf.c @@ -140,7 +140,7 @@ } - #if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2) --#ifndef __MINGW32__ + #if defined HAVE_LONG_LONG && SIZEOF_LONG_LONG > SIZEOF_LONG +-# ifndef __MINGW32__ +#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) - #define DWARF_VMA_FMT "ll" - #define DWARF_VMA_FMT_LONG "%16.16llx" - #else + # define DWARF_VMA_FMT "ll" + # define DWARF_VMA_FMT_LONG "%16.16llx" + # else diff -Naur binutils-2.24/binutils/nm.c binutils-2.24-mingw/binutils/nm.c --- binutils-2.24/binutils/nm.c 2013-11-08 14:13:48.000000000 +0400 +++ binutils-2.24-mingw/binutils/nm.c 2014-03-13 22:18:43.452800000 +0400 @@ -91,32 +91,32 @@ diff -Naur binutils-2.24/binutils/readelf.c binutils-2.24-mingw/binutils/readelf diff -Naur binutils-2.24/binutils/strings.c binutils-2.24-mingw/binutils/strings.c --- binutils-2.24/binutils/strings.c 2013-11-04 19:33:37.000000000 +0400 +++ binutils-2.24-mingw/binutils/strings.c 2014-03-13 22:21:29.140400000 +0400 -@@ -557,7 +557,7 @@ - #if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2) +@@ -582,7 +582,7 @@ + #ifdef HAVE_LONG_LONG if (sizeof (start) > sizeof (long)) { --#ifndef __MSVCRT__ +-# ifndef __MSVCRT__ +#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) printf ("%7llo ", (unsigned long long) start); - #else + # else printf ("%7I64o ", (unsigned long long) start); -@@ -576,7 +576,7 @@ - #if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2) +@@ -601,7 +601,7 @@ + #ifdef HAVE_LONG_LONG if (sizeof (start) > sizeof (long)) { --#ifndef __MSVCRT__ +-# ifndef __MSVCRT__ +#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) printf ("%7lld ", (unsigned long long) start); - #else + # else printf ("%7I64d ", (unsigned long long) start); -@@ -595,7 +595,7 @@ - #if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2) +@@ -620,7 +620,7 @@ + #ifdef HAVE_LONG_LONG if (sizeof (start) > sizeof (long)) { --#ifndef __MSVCRT__ +-# ifndef __MSVCRT__ +#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) printf ("%7llx ", (unsigned long long) start); - #else + # else printf ("%7I64x ", (unsigned long long) start); diff -Naur binutils-2.24/gas/read.c binutils-2.24-mingw/gas/read.c --- binutils-2.24/gas/read.c 2013-11-08 14:13:48.000000000 +0400 diff --git a/mingw-w64-binutils/PKGBUILD b/mingw-w64-binutils/PKGBUILD index 71ea8994e3..de835d7fbc 100644 --- a/mingw-w64-binutils/PKGBUILD +++ b/mingw-w64-binutils/PKGBUILD @@ -3,8 +3,8 @@ _realname=binutils pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.25 -pkgrel=5 +pkgver=2.25.1 +pkgrel=1 pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('any') url="http://www.gnu.org/software/binutils/" @@ -32,7 +32,7 @@ source=(ftp://ftp.gnu.org/gnu/binutils/${_realname}-${pkgver}.tar.bz2{,.sig} 27aaeda.diff a93d5cb.diff 9ac47a4.diff) -md5sums=('d9f3303f802a5b6b0bb73a335ab89d66' +md5sums=('ac493a78de4fee895961d025b7905be4' 'SKIP' 'f3be04ed70b9d352a2c0e2a80b0706b2' '2cc89a3c09cafa30c91ac890d3c68932' @@ -46,7 +46,7 @@ md5sums=('d9f3303f802a5b6b0bb73a335ab89d66' '6d3610000f041f66ada0a956101faeec' '33b5eda35272e88b1c308e66484db958' '66eeb2af697f5f1d0f372185aa2fb737' - '1c34f5ee0ee5d5008a617e1638362d43' + 'a882407a47e7c77dc1d8ed7d9ba44904' '83e26439fa877c6407fe3b84cdb01e76' 'c0eaa32bbc4239ebb9bdd95c129ca56a' 'ac0c62e2653558f7aab8c32ffa23dd4a') From e70823a4c898497c01a682f26f417cff78599787 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 13:31:25 +0300 Subject: [PATCH 1329/2060] gtk3: Update to 3.16.6 --- mingw-w64-gtk3/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 5b73021bdd..39c0587000 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -2,8 +2,8 @@ _realname=gtk3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.4 -pkgrel=2 +pkgver=3.16.6 +pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -35,7 +35,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0054-no-transparency-for-children.all.patch 0055-skip-testsuite.all.patch 0056-missing-file-toarray-pl.patch) -md5sums=('c7497aaf6730524a127597b768a73bd7' +md5sums=('fc59e5c8b5a4585b60623dd708df400b' '9e0296da2986be7697cf343563b85d1f' '21789d52c1debcab59f8b6a99232de68' '3aa19ea25cc1d7693ae57f8e80f88440' @@ -80,7 +80,7 @@ build() { package() { #export MSYS2_ARG_CONV_EXCL="-//OASIS" cd "${srcdir}/${CHOST}" - make -j1 DESTDIR="$pkgdir" install + make -j1 DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' -o -name '*.manifest' | xargs -rtl1 rm mv ${pkgdir}${MINGW_PREFIX}/bin/gtk-update-icon-cache{,-3.0}.exe From 331cc90d8b38cde839ba3d26b02ccf789e496d4c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 13:31:42 +0300 Subject: [PATCH 1330/2060] libepoxy: Update to 1.3.1 --- mingw-w64-libepoxy/PKGBUILD | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/mingw-w64-libepoxy/PKGBUILD b/mingw-w64-libepoxy/PKGBUILD index 44f0571e64..8fcd77e50c 100644 --- a/mingw-w64-libepoxy/PKGBUILD +++ b/mingw-w64-libepoxy/PKGBUILD @@ -2,8 +2,8 @@ _realname=libepoxy pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.2 -pkgrel=2 +pkgver=1.3.1 +pkgrel=1 pkgdesc="A library for handling OpenGL function pointer management for you. (mingw-w64)" arch=('any') url="https://github.com/anholt/libepoxy" @@ -14,19 +14,12 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python3" "util-macros") options=('strip' 'staticlibs') -source=(${_realname}-${pkgver}.tar.gz::https://github.com/anholt/${_realname}/archive/v${pkgver}.tar.gz - 0001-135f7bf1043ca2a48d88d920fd46f3fe0097f359.all.patch - 0002-e9ce388f746f6c0557b863a38648ae1646658951.all.patch) -sha256sums=('42c328440f60a5795835c5ec4bdfc1329e75bba16b6e22b3a87ed17e9679e8f6' - 'd1569d83c2b669f167b94e091e978fd277f5ac7eebcccd75e8ca2e0f5728cee6' - 'cb5685dedbb63aa298c4017f4a764774566f6c0b076b12e355b2d5e346867761') +source=(${_realname}-${pkgver}.tar.gz::https://github.com/anholt/${_realname}/archive/v${pkgver}.tar.gz) +sha256sums=('6700ddedffb827b42c72cce1e0be6fba67b678b19bf256e1b5efd3ea38cc2bb4') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -Np1 -i "$srcdir/0001-135f7bf1043ca2a48d88d920fd46f3fe0097f359.all.patch" - patch -Np1 -i "$srcdir/0002-e9ce388f746f6c0557b863a38648ae1646658951.all.patch" - autoreconf -fi } From 1c748dc61aae0a642806614b2d3fa4bca14a8cc6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 13:33:06 +0300 Subject: [PATCH 1331/2060] FAIL_LIST: Update --- FAIL_LIST.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index c72e92b42a..f10b321a2c 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -43,7 +43,7 @@ List of packages that currently fail to build - libsecret --nim +- nim - nimble @@ -75,6 +75,8 @@ List of packages that currently fail to build - quassel +- stxxl-git (OpenMP issue) + - tclvfs - tclx From 5bd2f218dacd285812c7496be7f072fb6601cdb8 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 22 Jul 2015 12:29:43 +0100 Subject: [PATCH 1332/2060] chipmunk: downgrade to 6.2.2 for cocos2d-x --- .../001-fix-install-locations.patch | 11 ++++++++++ mingw-w64-chipmunk/PKGBUILD | 22 +++++++++++-------- 2 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 mingw-w64-chipmunk/001-fix-install-locations.patch diff --git a/mingw-w64-chipmunk/001-fix-install-locations.patch b/mingw-w64-chipmunk/001-fix-install-locations.patch new file mode 100644 index 0000000000..517ebf7832 --- /dev/null +++ b/mingw-w64-chipmunk/001-fix-install-locations.patch @@ -0,0 +1,11 @@ +--- Chipmunk-6.2.1/src/CMakeLists.txt.orig 2014-06-30 13:03:21.036600000 +0400 ++++ Chipmunk-6.2.1/src/CMakeLists.txt 2014-06-30 13:03:27.276600000 +0400 +@@ -22,7 +22,7 @@ + # need to explicitly link to the math library because the CMake/Android toolchains may not do it automatically + target_link_libraries(chipmunk m) + endif(ANDROID) +- install(TARGETS chipmunk RUNTIME DESTINATION lib LIBRARY DESTINATION lib) ++ install(TARGETS chipmunk RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) + endif(BUILD_SHARED) + + if(BUILD_STATIC) diff --git a/mingw-w64-chipmunk/PKGBUILD b/mingw-w64-chipmunk/PKGBUILD index 0ce926c976..ec788e924e 100644 --- a/mingw-w64-chipmunk/PKGBUILD +++ b/mingw-w64-chipmunk/PKGBUILD @@ -1,23 +1,27 @@ -# Maintainer: Martell Malone +# Maintainer: Martell Malone _realname=chipmunk pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=7.0.1 +# Please don't update chipmunk until cocos2d-x support 7.x :) +pkgver=6.2.2 pkgrel=1 pkgdesc="A high-performance 2D rigid body physics library (mingw-w64)" arch=('any') url="http://chipmunk-physics.net/" license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") -source=(http://files.slembcke.net/chipmunk/release/Chipmunk-7.x/Chipmunk-${pkgver}.tgz - 001-build-fix.patch) -md5sums=('3c7651a4231b5c31c8679473f297ae03' - '457ee3f8fb9a4779d8f7eaaab7eb2697') +source=("http://github.com/slembcke/Chipmunk2D/archive/Chipmunk-${pkgver}.tar.gz" + 001-build-fix.patch + 001-fix-install-locations.patch) +md5sums=('e989b9ef00750e56493f91f118705970' + '457ee3f8fb9a4779d8f7eaaab7eb2697' + 'ae50c9ed773b2858435ca7c6dbb8d524') options=(staticlibs !buildflags !strip) prepare() { - cd ${srcdir}/Chipmunk-${pkgver} - patch -p1 -i ${srcdir}/001-build-fix.patch + cd ${srcdir}/Chipmunk2D-Chipmunk-${pkgver} + #patch -p1 -i ${srcdir}/001-build-fix.patch + patch -p1 -i ${srcdir}/001-fix-install-locations.patch } build() { @@ -33,7 +37,7 @@ build() { -DBUILD_DEMOS=OFF \ -DBUILD_SHARED=ON \ -DINSTALL_STATIC=ON \ - ../Chipmunk-${pkgver} + ../Chipmunk2D-Chipmunk-${pkgver} make } From f01de36a58eca6a5654dcc665b94be2283661b89 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 14:50:23 +0300 Subject: [PATCH 1333/2060] kicad-git: Fix typo. Now build. --- FAIL_LIST.md | 2 -- mingw-w64-kicad-git/PKGBUILD | 5 ++--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index f10b321a2c..2e6432d5fb 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -29,8 +29,6 @@ List of packages that currently fail to build - itk -- kicad-git - - ldns - libimobiledevice diff --git a/mingw-w64-kicad-git/PKGBUILD b/mingw-w64-kicad-git/PKGBUILD index 3fa2e79f77..d36156c0ba 100644 --- a/mingw-w64-kicad-git/PKGBUILD +++ b/mingw-w64-kicad-git/PKGBUILD @@ -44,7 +44,7 @@ build() { [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;" \ + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_PREFIX_PATH=${MINGW_PREFIX} \ @@ -56,8 +56,7 @@ build() { -DKICAD_SCRIPTING_MODULES=ON \ -DKICAD_SCRIPTING_WXPYTHON=ON \ -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \ - ../$_realname - #-DVERBOSE=1 + ../${_realname} make From ffbf152ddff5a75cf762b16061abc95082234a0b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 15:29:32 +0300 Subject: [PATCH 1334/2060] perl: Fix building. --- FAIL_LIST.md | 2 -- mingw-w64-perl/002-relocate-html-documentation.patch | 3 ++- mingw-w64-perl/PKGBUILD | 6 +++--- mingw-w64-perl/perl-i686.install | 4 ++-- mingw-w64-perl/perl-x86_64.install | 4 ++-- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 2e6432d5fb..61cae36e55 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -57,8 +57,6 @@ List of packages that currently fail to build - openshadinglanguage -- perl - - plplot - qrupdate diff --git a/mingw-w64-perl/002-relocate-html-documentation.patch b/mingw-w64-perl/002-relocate-html-documentation.patch index c6ffc57264..384cffd4b0 100644 --- a/mingw-w64-perl/002-relocate-html-documentation.patch +++ b/mingw-w64-perl/002-relocate-html-documentation.patch @@ -4,8 +4,9 @@ diff -aur 001/win32/makefile.mk 002/win32/makefile.mk @@ -1349,7 +1349,7 @@ doc: $(PERLEXE) ..\pod\perltoc.pod - $(PERLEXE) ..\installhtml --podroot=.. --htmldir=$(HTMLDIR) \ +- $(PERLEXE) ..\installhtml --podroot=.. --htmldir=$(HTMLDIR) \ - --podpath=pod:lib:utils --htmlroot="file://$(INST_HTML:s,:,|,)"\ ++ $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=$(HTMLDIR) \ + --podpath=pod:lib:utils --htmlroot="@PERL_RELOCATE_HTML@/share/doc/perl5" \ --recurse diff --git a/mingw-w64-perl/PKGBUILD b/mingw-w64-perl/PKGBUILD index 955b4da8d2..11a4e4a282 100644 --- a/mingw-w64-perl/PKGBUILD +++ b/mingw-w64-perl/PKGBUILD @@ -24,7 +24,7 @@ source=("http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2" md5sums=('f67b152160431b3180fb766bdc2d02e2' '03f65d7a7751d8c850ca62d9c88b939c' - 'c13e4275aa8e819a319afddf73352318' + 'b09f961437155056ca65cbf75035fae7' '51811b5b185394f9512b5470c2b623ca' 'cd49b29a251adcc21fe87c66110cdc3a') @@ -96,9 +96,9 @@ package() { sed -i "s/${pkgdir_pattern}/@PERL_RELOCATE@/g" lib/perl5/core_perl/Config_heavy.pl for script in \ - c2ph config_data corelist cpan enc2xs exetype find2perl h2ph h2xs instmodsh json_pp libnetcfg perlbug \ + c2ph corelist cpan enc2xs encguess exetype h2ph h2xs instmodsh json_pp libnetcfg perlbug \ perldoc perlglob perlivp perlthanks piconv pl2bat pl2pm pod2html pod2man pod2text pod2usage podchecker \ - podselect prove psed pstruct ptar ptardiff ptargrep runperl s2p search shasum splain xsubpp zipdetails ; do + podselect prove pstruct ptar ptardiff ptargrep runperl search shasum splain xsubpp zipdetails ; do sed -i "s/${pkgdir_pattern}/@PERL_RELOCATE@/g" bin/${script} done } diff --git a/mingw-w64-perl/perl-i686.install b/mingw-w64-perl/perl-i686.install index a56faec631..840de2642d 100644 --- a/mingw-w64-perl/perl-i686.install +++ b/mingw-w64-perl/perl-i686.install @@ -17,9 +17,9 @@ post_install() { sed -i "s/@PERL_RELOCATE_DOUBLE@/${basedir_double}/g" /mingw32/lib/perl5/core_perl/CORE/config.h _relocating scripts - for script in c2ph config_data corelist cpan enc2xs exetype find2perl h2ph h2xs instmodsh json_pp libnetcfg perlbug \ + for script in c2ph corelist cpan enc2xs encguess exetype h2ph h2xs instmodsh json_pp libnetcfg perlbug \ perldoc perlglob perlivp perlthanks piconv pl2bat pl2pm pod2html pod2man pod2text pod2usage podchecker podselect \ - prove psed pstruct ptar ptardiff ptargrep runperl s2p search shasum splain xsubpp zipdetails ; do + prove pstruct ptar ptardiff ptargrep runperl search shasum splain xsubpp zipdetails ; do sed -i "s/@PERL_RELOCATE@/${basedir}/g" /mingw32/bin/${script} done diff --git a/mingw-w64-perl/perl-x86_64.install b/mingw-w64-perl/perl-x86_64.install index f2eb3576d8..54f7aea249 100644 --- a/mingw-w64-perl/perl-x86_64.install +++ b/mingw-w64-perl/perl-x86_64.install @@ -17,9 +17,9 @@ post_install() { sed -i "s/@PERL_RELOCATE_DOUBLE@/${basedir_double}/g" /mingw64/lib/perl5/core_perl/CORE/config.h _relocating scripts - for script in c2ph config_data corelist cpan enc2xs exetype find2perl h2ph h2xs instmodsh json_pp libnetcfg perlbug \ + for script in c2ph corelist cpan enc2xs encguess exetype h2ph h2xs instmodsh json_pp libnetcfg perlbug \ perldoc perlglob perlivp perlthanks piconv pl2bat pl2pm pod2html pod2man pod2text pod2usage podchecker podselect \ - prove psed pstruct ptar ptardiff ptargrep runperl s2p search shasum splain xsubpp zipdetails ; do + prove pstruct ptar ptardiff ptargrep runperl search shasum splain xsubpp zipdetails ; do sed -i "s/@PERL_RELOCATE@/${basedir}/g" /mingw64/bin/${script} done From 3ebef9927539d14136f429bcb5ba304d535020a1 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 15:37:38 +0300 Subject: [PATCH 1335/2060] perl: Not building for 32-bit --- FAIL_LIST.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 61cae36e55..7a081709fa 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -57,6 +57,8 @@ List of packages that currently fail to build - openshadinglanguage +- perl (still not building for 32-bit) : ..\perl.h:3551:38: error: static assertion failed: "sizeof(PADOP) <= sizeof(SVOP)" + - plplot - qrupdate From 70c7a7dae38f1f892e02aeda5249c51bcd0c290f Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 22 Jul 2015 13:42:11 +0100 Subject: [PATCH 1336/2060] flatbuffers: new package (for cocos2d-x) --- ...latbuffers-for-other-projects-to-use.patch | 62 +++++++++++++++++++ mingw-w64-flatbuffers/PKGBUILD | 39 ++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 mingw-w64-flatbuffers/0001-Add-a-libflatbuffers-for-other-projects-to-use.patch create mode 100644 mingw-w64-flatbuffers/PKGBUILD diff --git a/mingw-w64-flatbuffers/0001-Add-a-libflatbuffers-for-other-projects-to-use.patch b/mingw-w64-flatbuffers/0001-Add-a-libflatbuffers-for-other-projects-to-use.patch new file mode 100644 index 0000000000..eb86c949c6 --- /dev/null +++ b/mingw-w64-flatbuffers/0001-Add-a-libflatbuffers-for-other-projects-to-use.patch @@ -0,0 +1,62 @@ +From ab710b6f89339e9ddaffa8416910e4fd8684d0fb Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Wed, 22 Jul 2015 13:34:44 +0100 +Subject: [PATCH] Add a libflatbuffers for other projects to use + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a746a64..3beee77 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -6,6 +6,7 @@ project(FlatBuffers) + option(FLATBUFFERS_CODE_COVERAGE "Enable the code coverage build option." OFF) + option(FLATBUFFERS_BUILD_TESTS "Enable the build of tests and samples." ON) + option(FLATBUFFERS_INSTALL "Enable the installation of targets." ON) ++option(FLATBUFFERS_BUILD_FLATLIB "Enable the build of the flatbuffers library" ON) + option(FLATBUFFERS_BUILD_FLATC "Enable the build of the flatbuffers compiler" ON) + option(FLATBUFFERS_BUILD_FLATHASH "Enable the build of flathash" ON) + +@@ -15,7 +16,7 @@ if(NOT FLATBUFFERS_BUILD_FLATC AND FLATBUFFERS_BUILD_TESTS) + set(FLATBUFFERS_BUILD_TESTS OFF) + endif() + +-set(FlatBuffers_Compiler_SRCS ++set(FlatBuffers_Library_SRCS + include/flatbuffers/flatbuffers.h + include/flatbuffers/hash.h + include/flatbuffers/idl.h +@@ -26,6 +27,10 @@ set(FlatBuffers_Compiler_SRCS + src/idl_gen_go.cpp + src/idl_gen_text.cpp + src/idl_gen_fbs.cpp ++) ++ ++set(FlatBuffers_Compiler_SRCS ++ ${FlatBuffers_Library_SRCS} + src/flatc.cpp + ) + +@@ -91,6 +96,10 @@ endif(BIICODE) + + include_directories(include) + ++if(FLATBUFFERS_BUILD_FLATLIB) ++add_library(flatbuffers STATIC ${FlatBuffers_Library_SRCS}) ++endif() ++ + if(FLATBUFFERS_BUILD_FLATC) + add_executable(flatc ${FlatBuffers_Compiler_SRCS}) + endif() +@@ -121,6 +130,9 @@ endif() + + if(FLATBUFFERS_INSTALL) + install(DIRECTORY include/flatbuffers DESTINATION include) ++ if(FLATBUFFERS_BUILD_FLATLIB) ++ install(TARGETS flatbuffers DESTINATION lib) ++ endif() + if(FLATBUFFERS_BUILD_FLATC) + install(TARGETS flatc DESTINATION bin) + endif() +-- +2.4.5 + diff --git a/mingw-w64-flatbuffers/PKGBUILD b/mingw-w64-flatbuffers/PKGBUILD new file mode 100644 index 0000000000..dfaee0caee --- /dev/null +++ b/mingw-w64-flatbuffers/PKGBUILD @@ -0,0 +1,39 @@ +# Maintainer: Martell Malone + +_realname=flatbuffers +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1.1.0 +pkgrel=1 +pkgdesc='Memory Efficient Serialization Library (mingw-w64)' +arch=('any') +url='http://google.github.io/flatbuffers/' +license=('BSD') +depends=("${MINGW_PACKAGE_PREFIX}-libsystre") +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/google/${_realname}/archive/v${pkgver}.tar.gz" + "0001-Add-a-libflatbuffers-for-other-projects-to-use.patch") +md5sums=('a469b3058e53a12d49556e8e1bb5edea' + '41c9da7937dccb1328e65ea0c0f85905') +options=('strip' '!libtool' 'staticlibs') + +prepare() { + cd $srcdir/${_realname}-${pkgver} + patch -p1 < $srcdir/0001-Add-a-libflatbuffers-for-other-projects-to-use.patch +} + +build() { + mkdir -p "${srcdir}/build-${CARCH}" + cd "${srcdir}/build-${CARCH}" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ + ../${_realname}-${pkgver} + + make +} + +package() { + cd "${srcdir}/build-${CARCH}" + make install DESTDIR="${pkgdir}" +} From d5cffee7715ed1a1f312a461d03a8e4016b0a98d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 22 Jul 2015 16:01:47 +0300 Subject: [PATCH 1337/2060] pidgin-hg: Builds ok after rebuilding gplugin with introspection. --- FAIL_LIST.md | 2 -- mingw-w64-pidgin-hg/PKGBUILD | 8 ++++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 7a081709fa..cd53553672 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -63,8 +63,6 @@ List of packages that currently fail to build - qrupdate -- pidgin-hg - - pitivi-git - python-binwalk diff --git a/mingw-w64-pidgin-hg/PKGBUILD b/mingw-w64-pidgin-hg/PKGBUILD index 42b85f3052..710e103bb4 100644 --- a/mingw-w64-pidgin-hg/PKGBUILD +++ b/mingw-w64-pidgin-hg/PKGBUILD @@ -4,15 +4,15 @@ _realname=pidgin pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-hg" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r37181.06b74c255e95 +pkgver=r37207.e666f49a3e86 pkgrel=1 pkgdesc="Multi-protocol instant messaging client (mingw-w64)" arch=('any') url="http://pidgin.im/" license=("GPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" +makedepends=("${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" - "doxygen" "gtk-doc" "mercurial") depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" @@ -41,7 +41,7 @@ md5sums=('SKIP' '5c2e4ea9f3c58476f96b1d855c8ea710') pkgver() { - cd "$_realname" + cd "${_realname}" printf "r%s.%s" "$(hg identify -n)" "$(hg identify -i)" } From 6da12d00660bdd3e51ada1597edc2c0a37e9e48c Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 22 Jul 2015 14:59:53 +0100 Subject: [PATCH 1338/2060] cocos2d-x-git: fix HEAD (need cocos2d-x repo to merge a PR first) --- mingw-w64-cocos2dx-git/PKGBUILD | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cocos2dx-git/PKGBUILD b/mingw-w64-cocos2dx-git/PKGBUILD index aa1e904c13..c87cf49570 100644 --- a/mingw-w64-cocos2dx-git/PKGBUILD +++ b/mingw-w64-cocos2dx-git/PKGBUILD @@ -14,8 +14,9 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-box2d" "${MINGW_PACKAGE_PREFIX}-bullet" - "${MINGW_PACKAGE_PREFIX}-chipmunk" + "${MINGW_PACKAGE_PREFIX}-chipmunk<7.0.0" "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-flatbuffers" "${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-glfw" "${MINGW_PACKAGE_PREFIX}-glew" @@ -78,12 +79,15 @@ build() { -DDEBUG_MODE=OFF \ -DBUILD_LUA_LIBS=OFF \ -DBUILD_LUA_TESTS=OFF \ + -DBUILD_JS_LIBS=OFF \ + -DBUILD_JS_TESTS=OFF \ -DBUILD_CPP_TESTS=OFF \ -DBUILD_EDITOR_COCOSTUDIO=OFF \ -DBUILD_EDITOR_COCOSBUILDER=OFF \ -DBUILD_EDITOR_SPINE=OFF \ + -DUSE_RECAST=OFF \ + -DUSE_PREBUILT_LIBS=OFF \ ../${_realname} - # -DBUILD_EXTERN_LIBS=OFF \ make } From d96dfae53d962c26594af164bbdd317a384f641f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 22 Jul 2015 17:37:37 +0100 Subject: [PATCH 1339/2060] hlsl2glsl: Fixed for GCC 5.1, rebased to aras-p --- FAIL_LIST.md | 2 - ...MakeLists.txt-Fixes-and-improvements.patch | 224 ++++++++++++++++++ .../0001-Fix-CMakeLists.txt.patch | 35 --- ...02-Fix-pool_allocator-compile-guards.patch | 40 ++++ ...0002-Generalize-CMakeLists.txt-a-bit.patch | 70 ------ ...64-build-fixes-for-hlsl2glsltest.cpp.patch | 39 --- ...l2glsltest-Change-_MSC_VER-to-_WIN32.patch | 72 ++++++ .../0004-CMake-Handle-installation.patch | 51 ++++ mingw-w64-hlsl2glsl/PKGBUILD | 53 +++-- 9 files changed, 415 insertions(+), 171 deletions(-) create mode 100644 mingw-w64-hlsl2glsl/0001-CMakeLists.txt-Fixes-and-improvements.patch delete mode 100644 mingw-w64-hlsl2glsl/0001-Fix-CMakeLists.txt.patch create mode 100644 mingw-w64-hlsl2glsl/0002-Fix-pool_allocator-compile-guards.patch delete mode 100644 mingw-w64-hlsl2glsl/0002-Generalize-CMakeLists.txt-a-bit.patch delete mode 100644 mingw-w64-hlsl2glsl/0003-MinGW-w64-build-fixes-for-hlsl2glsltest.cpp.patch create mode 100644 mingw-w64-hlsl2glsl/0003-hlsl2glsltest-Change-_MSC_VER-to-_WIN32.patch create mode 100644 mingw-w64-hlsl2glsl/0004-CMake-Handle-installation.patch diff --git a/FAIL_LIST.md b/FAIL_LIST.md index cd53553672..bf7d1e36cf 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -23,8 +23,6 @@ List of packages that currently fail to build - gtkada -- hlsl2glsl - - innoextract - itk diff --git a/mingw-w64-hlsl2glsl/0001-CMakeLists.txt-Fixes-and-improvements.patch b/mingw-w64-hlsl2glsl/0001-CMakeLists.txt-Fixes-and-improvements.patch new file mode 100644 index 0000000000..de98484449 --- /dev/null +++ b/mingw-w64-hlsl2glsl/0001-CMakeLists.txt-Fixes-and-improvements.patch @@ -0,0 +1,224 @@ +From 5d1bb902fdae63e0b54fa605b7efb7b7f141ec35 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Thu, 12 Dec 2013 16:52:29 +0000 +Subject: [PATCH 1/4] CMakeLists.txt: Fixes and improvements + +1. main.cpp doesn't exist anymore. +2. hlslang_tab.cpp is now Gen_hlslang_tab.cpp. +3. Remove redundancy in bison and flex execution. +4. Use find_package() to locate them if !windows. +--- + CMakeLists.txt | 138 +++++++++++++++++----------------- + tests/hlsl2glsltest/hlsl2glsltest.cpp | 3 +- + 2 files changed, 71 insertions(+), 70 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b2fae7a..c397bb3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -67,6 +67,7 @@ set(MACHINE_INDEPENDENT_FILES + hlslang/MachineIndependent/RemoveTree.h + hlslang/MachineIndependent/SymbolTable.cpp + hlslang/MachineIndependent/SymbolTable.h ++ #hlslang/MachineIndependent/unistd.h + hlslang/MachineIndependent/ConstantFolding.cpp + ) + +@@ -90,9 +91,9 @@ EXEC_PROGRAM(${CMAKE_COMMAND} ARGS "-E write_regv \"${hkey}\" \"${dir}\"") + + + set(MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES +- ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/Gen_hlslang.cpp +- ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/hlslang_tab.cpp +- ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/hlslang_tab.h ++ hlslang/MachineIndependent/Gen_hlslang.cpp ++ hlslang/MachineIndependent/Gen_hlslang_tab.cpp ++ hlslang/MachineIndependent/hlslang_tab.h + ) + + SET_SOURCE_FILES_PROPERTIES(${MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES} PROPERTIES +@@ -100,97 +101,98 @@ SET_SOURCE_FILES_PROPERTIES(${MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES} PROPER + ) + + source_group("Machine Independent\\Generated Source" FILES ${MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES}) +- + + # Add system specific settings + if (WIN32) + set(OSDEPENDENT_FILES +- hlslang/OSDependent/Windows/main.cpp + hlslang/OSDependent/Windows/osinclude.h + hlslang/OSDependent/Windows/ossource.cpp + ) ++ + source_group("OSDependent\\Windows" FILES ${OSDEPENDENT_FILES}) +- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/hlslang/OSDependent/Windows) +- +- add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang_tab.cpp hlslang/MachineIndependent/hlslang_tab.h +- COMMAND set ARGS "BISON_SIMPLE=../../tools/bison.simple" +- COMMAND set ARGS "BISON_HAIRY=../../tools/bison.simple" +- COMMAND ../../tools/bison.exe ARGS -d -t -v hlslang.y +- COMMAND copy ARGS /y hlslang_tab.c Gen_hlslang_tab.cpp +- COMMAND del ARGS hlslang_tab.c +- COMMAND del ARGS hlslang.output +- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.y +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent +- COMMENT "Executing Bison on hlslang.y" +- ) +- +- add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang.cpp +- COMMAND ../../tools/flex.exe ARGS hlslang.l +- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.l +- DEPENDS hlslang/MachineIndependent/hlslang_tab.h +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent +- COMMENT "Executing flex on hlslang.l" +- ) +- +- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D\"_HAS_ITERATOR_DEBUGGING=0\" /D\"_SECURE_SCL=0\" /D\"_CRT_SECURE_NO_WARNINGS\"") +- SET(TEST_LIBS opengl32.lib) ++ include_directories(hlslang/OSDependent/Windows) ++ ++ IF ( MSVC ) ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D\"_HAS_ITERATOR_DEBUGGING=0\" /D\"_SECURE_SCL=0\" /D\"_CRT_SECURE_NO_WARNINGS\"") ++ ENDIF ( MSVC ) ++ SET(TEST_LIBS opengl32 gdi32 user32) + elseif (APPLE) + set(OSDEPENDENT_FILES + hlslang/OSDependent/Mac/osinclude.h + hlslang/OSDependent/Mac/ossource.cpp + ) + source_group("OSDependent\\Mac" FILES ${OSDEPENDENT_FILES}) +- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/hlslang/OSDependent/Mac) +- +- add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang_tab.cpp hlslang/MachineIndependent/hlslang_tab.h +- COMMAND set ARGS "BISON_SIMPLE=../../tools/bison.simple" +- COMMAND set ARGS "BISON_HAIRY=../../tools/bison.simple" +- COMMAND bison ARGS -o Gen_hlslang_tab.cpp -d -t -v hlslang.y +- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.y +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent +- COMMENT "Executing Bison on hlslang.y" +- ) +- +- add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang.cpp +- COMMAND flex ARGS hlslang.l +- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.l +- DEPENDS hlslang/MachineIndependent/hlslang_tab.h +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent +- COMMENT "Executing flex on hlslang.l" +- ) ++ include_directories(hlslang/OSDependent/Mac) ++ + elseif (UNIX) + set(OSDEPENDENT_FILES + hlslang/OSDependent/Linux/osinclude.h + hlslang/OSDependent/Linux/ossource.cpp + ) + source_group("OSDependent\\Linux" FILES ${OSDEPENDENT_FILES}) +- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/hlslang/OSDependent/Linux) +- +- add_custom_command(OUTPUT hlslang/MachineIndependent/hlslang_tab.cpp hlslang/MachineIndependent/hlslang_tab.h +- COMMAND set ARGS "BISON_SIMPLE=../../tools/bison.simple" +- COMMAND set ARGS "BISON_HAIRY=../../tools/bison.simple" +- COMMAND bison ARGS -o hlslang_tab.cpp -d -t -v hlslang.y +- COMMAND mv hlslang_tab.hpp hlslang_tab.h +- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.y +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent +- COMMENT "Executing Bison on hlslang.y" +- ) +- +- add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang.cpp +- COMMAND flex ARGS hlslang.l +- MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.l +- DEPENDS hlslang/MachineIndependent/hlslang_tab.h +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent +- COMMENT "Executing flex on hlslang.l" +- ) ++ include_directories(hlslang/OSDependent/Linux) ++ + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb") + SET(TEST_LIBS GL glut GLEW pthread) + endif () + ++# Bison reads two environment variables at build-time (BISON_SIMPLE and BISON_HAIRY): ++# ++# http://www.cmake.org/Wiki/CMake_FAQ#How_can_I_get_or_set_environment_variables.3F ++# "Also, environment variables SET in the CMakeLists.txt only take effect for cmake ++# itself (configure-time), so you cannot use this method to set an environment variable ++# that a custom command might need (build-time). Barring environment variable support ++# by various CMake commands (e.g. add_custom_command(), currently not supported yet), ++# an acceptable workaround may be to invoke shell scripts instead which wrap the ++# commands to be executed." ++# ++# So making that work for both batch files and shell: ++# ++# To be precise, here we want to check for batch file ++# execution rather than that we're using the MSVC IDE ++# or are generating "MinGW Makefiles". ++# ++if ((MSVC_IDE) OR (${CMAKE_GENERATOR} STREQUAL "MinGW Makefiles")) ++ SET(SETENV "set") ++ SET(CONTINUATION &) ++else () ++ SET(SETENV) ++ SET(CONTINUATION) ++endif () ++ ++set(ENV{BISON_SIMPLE} ${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.simple) ++set(ENV{BISON_HAIRY} ${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.simple) ++ ++if (WIN32) ++ set(BISON_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.exe) ++ set(FLEX_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/tools/flex.exe) ++else () ++ find_package(BISON REQUIRED) ++ find_package(FLEX REQUIRED) ++endif () ++ ++add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/Gen_hlslang_tab.cpp ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/hlslang_tab.h ++ COMMAND ${SETENV} BISON_SIMPLE=${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.simple ${CONTINUATION} ++ ${SETENV} BISON_HAIRY=${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.simple ${CONTINUATION} ++ ${BISON_EXECUTABLE} ARGS -o hlslang_tab.c -d -t -v hlslang.y ++ COMMAND ${CMAKE_COMMAND} -E copy_if_different hlslang_tab.c Gen_hlslang_tab.cpp ++ COMMAND ${CMAKE_COMMAND} -E remove -f hlslang_tab.c hlslang.output ++ MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.y ++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent ++ COMMENT "Executing Bison on hlslang.y" ++ ) ++ ++add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/Gen_hlslang.cpp ++ COMMAND ${FLEX_EXECUTABLE} ARGS hlslang.l ++ MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.l ++ DEPENDS hlslang/MachineIndependent/hlslang_tab.h ++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent ++ COMMENT "Executing flex on hlslang.l" ++ ) + + include_directories( +- ${CMAKE_CURRENT_SOURCE_DIR}/hlslang +- ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent ++ hlslang ++ hlslang/MachineIndependent + ) + + add_library(hlsl2glsl +diff --git a/tests/hlsl2glsltest/hlsl2glsltest.cpp b/tests/hlsl2glsltest/hlsl2glsltest.cpp +index d1be04d..5e9c101 100644 +--- a/tests/hlsl2glsltest/hlsl2glsltest.cpp ++++ b/tests/hlsl2glsltest/hlsl2glsltest.cpp +@@ -1,4 +1,3 @@ +-#define _CRT_SECURE_NO_WARNINGS + #include + #include + #include +@@ -274,7 +273,7 @@ static bool InitializeOpenGL () + #endif + + +-#ifdef _MSC_VER ++#ifdef _WIN32 + if (hasGLSL) + { + glDeleteShader = (PFNGLDELETESHADERPROC)wglGetProcAddress("glDeleteShader"); +-- +2.4.5 + diff --git a/mingw-w64-hlsl2glsl/0001-Fix-CMakeLists.txt.patch b/mingw-w64-hlsl2glsl/0001-Fix-CMakeLists.txt.patch deleted file mode 100644 index 5f0b3303df..0000000000 --- a/mingw-w64-hlsl2glsl/0001-Fix-CMakeLists.txt.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b0f01ad96a22924aca7ae8b2fc7deccfb041f922 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Thu, 12 Dec 2013 16:49:27 +0000 -Subject: [PATCH 1/3] Fix CMakeLists.txt - -main.cpp is gone and -hlslang_tab.cpp is Gen_hlslang_tab.cpp ---- - CMakeLists.txt | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 5769d19..4f10b15 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -103,7 +103,7 @@ EXEC_PROGRAM(${CMAKE_COMMAND} ARGS "-E write_regv \"${hkey}\" \"${dir}\"") - - set(MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/Gen_hlslang.cpp -- ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/hlslang_tab.cpp -+ ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/Gen_hlslang_tab.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent/hlslang_tab.h - ) - -@@ -117,7 +117,6 @@ source_group("Machine Independent\\Generated Source" FILES ${MACHINE_INDEPENDENT - # Add system specific settings - if (WIN32) - set(OSDEPENDENT_FILES -- hlslang/OSDependent/Windows/main.cpp - hlslang/OSDependent/Windows/osinclude.h - hlslang/OSDependent/Windows/ossource.cpp - ) --- -1.8.4.4 - diff --git a/mingw-w64-hlsl2glsl/0002-Fix-pool_allocator-compile-guards.patch b/mingw-w64-hlsl2glsl/0002-Fix-pool_allocator-compile-guards.patch new file mode 100644 index 0000000000..b5c6713609 --- /dev/null +++ b/mingw-w64-hlsl2glsl/0002-Fix-pool_allocator-compile-guards.patch @@ -0,0 +1,40 @@ +From bb84270e903fb45c438a56f0768c37bdf69eb6ac Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 22 Jul 2015 15:20:09 +0100 +Subject: [PATCH 2/4] Fix pool_allocator compile-guards + +With MinGW-w64 the template variant was not +defined. +--- + hlslang/Include/PoolAlloc.h | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +diff --git a/hlslang/Include/PoolAlloc.h b/hlslang/Include/PoolAlloc.h +index 3418c88..3312221 100644 +--- a/hlslang/Include/PoolAlloc.h ++++ b/hlslang/Include/PoolAlloc.h +@@ -140,18 +140,15 @@ public: + } + #endif + +-#if defined(_MSC_VER) && _MSC_VER >= 1300 + template ++#if defined(_MSC_VER) && _MSC_VER >= 1300 + #ifdef USING_SGI_STL + pool_allocator(const pool_allocator& p) /*: allocator(p.getAllocator())*/ { } + #else + pool_allocator(const pool_allocator& p) : allocator(&p.getAllocator()) { } + #endif +-#endif +- +-#ifndef _WIN32 +- template +- pool_allocator(const pool_allocator& p) : allocator(&p.getAllocator()) { } ++#else ++ pool_allocator(const pool_allocator& p) : allocator(&p.getAllocator()) { } + #endif + + #ifdef USING_SGI_STL +-- +2.4.5 + diff --git a/mingw-w64-hlsl2glsl/0002-Generalize-CMakeLists.txt-a-bit.patch b/mingw-w64-hlsl2glsl/0002-Generalize-CMakeLists.txt-a-bit.patch deleted file mode 100644 index 79b7b50011..0000000000 --- a/mingw-w64-hlsl2glsl/0002-Generalize-CMakeLists.txt-a-bit.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 5b677644f756c685d9c465aa57efc4f51e456b8a Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Thu, 12 Dec 2013 16:51:55 +0000 -Subject: [PATCH 2/3] Generalize CMakeLists.txt a bit .. - -.. so that it works with 'MSYS Makefiles' and -'MinGW Makefiles' generators. - -A warning was added about working around bison -needing BISON_SIMPLE env. var set at build time ---- - CMakeLists.txt | 28 ++++++++++++++++++++++------ - 1 file changed, 22 insertions(+), 6 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 4f10b15..dfffaa8 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -120,6 +120,21 @@ if (WIN32) - hlslang/OSDependent/Windows/osinclude.h - hlslang/OSDependent/Windows/ossource.cpp - ) -+ -+ # The 'COMMAND set ..' doesn't work on MSYS or MinGW Makefiles because each -+ # command is executed in it's own shell. -+ IF ( MSYS ) -+ message( WARNING "You will probably need to use: -+'BISON_SIMPLE=${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.simple ${CMAKE_MAKE_PROGRAM}' -+.. to build this on MSYS") -+ ENDIF ( MSYS ) -+ -+ IF ( MINGW ) -+ message( WARNING "You will probably need to use: -+'set \"BISON_SIMPLE=%CD%\\tools\\bison.simple\" & ${CMAKE_MAKE_PROGRAM}' -+.. to build this on MinGW") -+ ENDIF ( MINGW ) -+ - source_group("OSDependent\\Windows" FILES ${OSDEPENDENT_FILES}) - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/hlslang/OSDependent/Windows) - -@@ -127,9 +142,8 @@ if (WIN32) - COMMAND set ARGS "BISON_SIMPLE=../../tools/bison.simple" - COMMAND set ARGS "BISON_HAIRY=../../tools/bison.simple" - COMMAND ../../tools/bison.exe ARGS -d -t -v hlslang.y -- COMMAND copy ARGS /y hlslang_tab.c Gen_hlslang_tab.cpp -- COMMAND del ARGS hlslang_tab.c -- COMMAND del ARGS hlslang.output -+ COMMAND ${CMAKE_COMMAND} -E copy_if_different hlslang_tab.c Gen_hlslang_tab.cpp -+ COMMAND ${CMAKE_COMMAND} -E remove -f hlslang_tab.c hlslang.output - MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.y - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent - COMMENT "Executing Bison on hlslang.y" -@@ -142,9 +156,11 @@ if (WIN32) - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent - COMMENT "Executing flex on hlslang.l" - ) -- -- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D\"_HAS_ITERATOR_DEBUGGING=0\" /D\"_SECURE_SCL=0\" /D\"_CRT_SECURE_NO_WARNINGS\"") -- SET(TEST_LIBS opengl32.lib) -+ -+ IF ( MSVC ) -+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D\"_HAS_ITERATOR_DEBUGGING=0\" /D\"_SECURE_SCL=0\" /D\"_CRT_SECURE_NO_WARNINGS\"") -+ ENDIF ( MSVC ) -+ SET(TEST_LIBS opengl32 gdi32 user32) - elseif (APPLE) - set(OSDEPENDENT_FILES - hlslang/OSDependent/Mac/osinclude.h --- -1.8.4.4 - diff --git a/mingw-w64-hlsl2glsl/0003-MinGW-w64-build-fixes-for-hlsl2glsltest.cpp.patch b/mingw-w64-hlsl2glsl/0003-MinGW-w64-build-fixes-for-hlsl2glsltest.cpp.patch deleted file mode 100644 index 51f15f2fde..0000000000 --- a/mingw-w64-hlsl2glsl/0003-MinGW-w64-build-fixes-for-hlsl2glsltest.cpp.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 91fd9827119029fb018da907b83009c8c93f8fb7 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Thu, 12 Dec 2013 16:52:29 +0000 -Subject: [PATCH 3/3] MinGW-w64 build fixes for hlsl2glsltest.cpp - ---- - tests/hlsl2glsltest/hlsl2glsltest.cpp | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/tests/hlsl2glsltest/hlsl2glsltest.cpp b/tests/hlsl2glsltest/hlsl2glsltest.cpp -index ba29446..b0efb43 100644 ---- a/tests/hlsl2glsltest/hlsl2glsltest.cpp -+++ b/tests/hlsl2glsltest/hlsl2glsltest.cpp -@@ -1,4 +1,3 @@ --#define _CRT_SECURE_NO_WARNINGS - #include - #include - #include -@@ -96,7 +95,7 @@ static StringVector GetFiles (const std::string& folder, const std::string& ends - { - StringVector res; - -- #ifdef _MSC_VER -+ #ifdef _WIN32 - WIN32_FIND_DATAA FindFileData; - HANDLE hFind = FindFirstFileA ((folder+"/*"+endsWith).c_str(), &FindFileData); - if (hFind == INVALID_HANDLE_VALUE) -@@ -179,7 +178,7 @@ static bool InitializeOpenGL () - - bool hasGLSL = false; - --#ifdef _MSC_VER -+#ifdef _WIN32 - // setup minimal required GL - HWND wnd = CreateWindowA( - "STATIC", --- -1.8.4.4 - diff --git a/mingw-w64-hlsl2glsl/0003-hlsl2glsltest-Change-_MSC_VER-to-_WIN32.patch b/mingw-w64-hlsl2glsl/0003-hlsl2glsltest-Change-_MSC_VER-to-_WIN32.patch new file mode 100644 index 0000000000..bfb4b42ed6 --- /dev/null +++ b/mingw-w64-hlsl2glsl/0003-hlsl2glsltest-Change-_MSC_VER-to-_WIN32.patch @@ -0,0 +1,72 @@ +From 8679385da3e239f30aac9409323912fc1a106321 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 22 Jul 2015 15:26:23 +0100 +Subject: [PATCH 3/4] hlsl2glsltest: Change _MSC_VER to _WIN32 + +So that it can be build with MinGW-w64 +--- + tests/hlsl2glsltest/hlsl2glsltest.cpp | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/tests/hlsl2glsltest/hlsl2glsltest.cpp b/tests/hlsl2glsltest/hlsl2glsltest.cpp +index 5e9c101..9ff6b0a 100644 +--- a/tests/hlsl2glsltest/hlsl2glsltest.cpp ++++ b/tests/hlsl2glsltest/hlsl2glsltest.cpp +@@ -9,7 +9,7 @@ + static const bool kDumpShaderAST = false; + + +-#ifdef _MSC_VER ++#ifdef _WIN32 + #include + #include + #include +@@ -94,7 +94,7 @@ static StringVector GetFiles (const std::string& folder, const std::string& ends + { + StringVector res; + +- #ifdef _MSC_VER ++ #ifdef _WIN32 + WIN32_FIND_DATAA FindFileData; + HANDLE hFind = FindFirstFileA ((folder+"/*"+endsWith).c_str(), &FindFileData); + if (hFind == INVALID_HANDLE_VALUE) +@@ -132,7 +132,7 @@ static StringVector GetFiles (const std::string& folder, const std::string& ends + + static void DeleteFile (const std::string& path) + { +- #ifdef _MSC_VER ++ #ifdef _WIN32 + DeleteFileA (path.c_str()); + #else + unlink (path.c_str()); +@@ -141,15 +141,15 @@ static void DeleteFile (const std::string& path) + + static bool ReadStringFromFile (const char* pathName, std::string& output) + { +-# ifdef _MSC_VER ++# ifdef _WIN32 + wchar_t widePath[MAX_PATH]; + int res = ::MultiByteToWideChar (CP_UTF8, 0, pathName, -1, widePath, MAX_PATH); + if (res == 0) + widePath[0] = 0; + FILE* file = _wfopen(widePath, L"rb"); +-# else // ifdef _MSC_VER ++# else // ifdef _WIN32 + FILE* file = fopen(pathName, "rb"); +-# endif // !ifdef _MSC_VER ++# endif // !ifdef _WIN32 + + if (file == NULL) + return false; +@@ -195,7 +195,7 @@ static bool InitializeOpenGL () + + bool hasGLSL = false; + +-#ifdef _MSC_VER ++#ifdef _WIN32 + // setup minimal required GL + HWND wnd = CreateWindowA( + "STATIC", +-- +2.4.5 + diff --git a/mingw-w64-hlsl2glsl/0004-CMake-Handle-installation.patch b/mingw-w64-hlsl2glsl/0004-CMake-Handle-installation.patch new file mode 100644 index 0000000000..8c9557d505 --- /dev/null +++ b/mingw-w64-hlsl2glsl/0004-CMake-Handle-installation.patch @@ -0,0 +1,51 @@ +From 515fd704aa324e86938c3a330f4f21788a4b80b2 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 22 Jul 2015 15:39:03 +0100 +Subject: [PATCH 4/4] CMake: Handle installation + +--- + CMakeLists.txt | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c397bb3..25420a5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -205,6 +205,7 @@ add_library(hlsl2glsl + ${MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES} + ) + ++set_property(TARGET hlsl2glsl PROPERTY PUBLIC_HEADER include/hlsl2glsl.h) + + include_directories( + ${INCLUDE_FILES} +@@ -212,3 +213,26 @@ include_directories( + add_executable(hlsl2glsltest tests/hlsl2glsltest/hlsl2glsltest.cpp) + + target_link_libraries(hlsl2glsltest hlsl2glsl ${TEST_LIBS}) ++ ++# ++# http://www.cmake.org/pipermail/cmake/2010-February/035466.html ++# compute default library install dir ++set (_DEFAULT_LIBRARY_INSTALL_DIR lib) ++if (EXISTS "${CMAKE_INSTALL_PREFIX}/lib32/" AND CMAKE_SIZEOF_VOID_P EQUAL 4) ++ set (_DEFAULT_LIBRARY_INSTALL_DIR lib32) ++elif (EXISTS "${CMAKE_INSTALL_PREFIX}/lib64/" AND CMAKE_SIZEOF_VOID_P EQUAL 8) ++ set (_DEFAULT_LIBRARY_INSTALL_DIR lib64) ++endif () ++# the library install dir ++set(LIBRARY_INSTALL_DIR "${_DEFAULT_LIBRARY_INSTALL_DIR}" CACHE PATH "Installation directory for libraries") ++# make the library install dir an absolute path (can be important e.g. when using CONFIGURE_FILE to embed ++# the library installation directory into a file) ++if(NOT IS_ABSOLUTE "${LIBRARY_INSTALL_DIR}") ++ set(LIBRARY_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIBRARY_INSTALL_DIR}") ++endif() ++# ++ ++install(TARGETS hlsl2glsl PUBLIC_HEADER ++ ARCHIVE DESTINATION "${LIBRARY_INSTALL_DIR}" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" ++ PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_PREFIX}/include") +-- +2.4.5 + diff --git a/mingw-w64-hlsl2glsl/PKGBUILD b/mingw-w64-hlsl2glsl/PKGBUILD index ff3dee2f81..572a606e73 100644 --- a/mingw-w64-hlsl2glsl/PKGBUILD +++ b/mingw-w64-hlsl2glsl/PKGBUILD @@ -1,53 +1,56 @@ # Maintainer: Alexey Pavlov +# Maintainer: Ray Donnelly _realname=hlsl2glsl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r749.9af03c9 +pkgver=r802.4df4096 pkgrel=1 pkgdesc="HLSL to GLSL shader language translator" arch=('any') -url='https://github.com/mingwandroid/hlsl2glslfork' +url='https://github.com/aras-p/hlsl2glslfork' license=('MIT') makedepends=("git" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' 'staticlibs' '!emptydirs') -source=("${_realname}"::"git+https://github.com/mingwandroid/hlsl2glslfork.git#branch=say-hello-to-qbs" - 0001-Fix-CMakeLists.txt.patch - 0002-Generalize-CMakeLists.txt-a-bit.patch - 0003-MinGW-w64-build-fixes-for-hlsl2glsltest.cpp.patch - ) +source=("${_realname}"::"git+https://github.com/aras-p/hlsl2glslfork.git" + 0001-CMakeLists.txt-Fixes-and-improvements.patch + 0002-Fix-pool_allocator-compile-guards.patch + 0003-hlsl2glsltest-Change-_MSC_VER-to-_WIN32.patch + 0004-CMake-Handle-installation.patch) md5sums=('SKIP' - '30240eff0c158e302b34c880dc961bef' - '76d65ee71bc4f32ece29822221c4dd6e' - '493f2b1579556df1211d9df7d0c06d79') + '8e937dcf31b9eef4c7619e4457b9d13d' + 'da95b53b42b266919b0a6bbe33928f8e' + '3d14f44ea9f9216b2c22d557f546ef0c' + '6b41bad2c77e7c13e43550cad485e430') pkgver() { - cd "${srcdir}/${_realname}" + cd "${srcdir}"/${_realname} printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd "${srcdir}/${_realname}" - patch -p1 -i ${srcdir}/0001-Fix-CMakeLists.txt.patch - patch -p1 -i ${srcdir}/0002-Generalize-CMakeLists.txt-a-bit.patch - patch -p1 -i ${srcdir}/0003-MinGW-w64-build-fixes-for-hlsl2glsltest.cpp.patch + cd "${srcdir}"/${_realname} + git am "${srcdir}"/0001-CMakeLists.txt-Fixes-and-improvements.patch + git am "${srcdir}"/0002-Fix-pool_allocator-compile-guards.patch + git am "${srcdir}"/0003-hlsl2glsltest-Change-_MSC_VER-to-_WIN32.patch + git am "${srcdir}"/0004-CMake-Handle-installation.patch } build() { - cd ${srcdir}/${_realname} + [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} + mkdir build-${CARCH} && cd build-${CARCH} - ${MINGW_PREFIX}/bin/cmake \ - -G"MSYS Makefiles" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX" \ + ${MINGW_PREFIX}/bin/cmake \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -G"MSYS Makefiles" \ + "${srcdir}"/${_realname} - BISON_SIMPLE=${srcdir}/${_realname}/tools/bison.simple make + make } package() { - cd ${srcdir}/${_realname} - mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,include} - cp *.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp include/hlsl2glsl.h ${pkgdir}${MINGW_PREFIX}/include/ - cp libhlsl2glsl.a ${pkgdir}${MINGW_PREFIX}/lib/ + cd build-${CARCH} + make install DESTDIR=${pkgdir} } - From ee60f2fc104c7c08bb0c9a24563be2889a465069 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 23 Jul 2015 00:20:20 +0100 Subject: [PATCH 1340/2060] libimobiledevice: PyString_AsString -> PyBytes_AsString --- ...String_AsString-now-PyBytes_AsString.patch | 19 +++++++++++++++++++ mingw-w64-libimobiledevice/PKGBUILD | 7 +++++-- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-libimobiledevice/0002-PyString_AsString-now-PyBytes_AsString.patch diff --git a/mingw-w64-libimobiledevice/0002-PyString_AsString-now-PyBytes_AsString.patch b/mingw-w64-libimobiledevice/0002-PyString_AsString-now-PyBytes_AsString.patch new file mode 100644 index 0000000000..a307296c61 --- /dev/null +++ b/mingw-w64-libimobiledevice/0002-PyString_AsString-now-PyBytes_AsString.patch @@ -0,0 +1,19 @@ +diff -urN libimobiledevice-1.2.0.orig/cython/debugserver.pxi libimobiledevice-1.2.0/cython/debugserver.pxi +--- libimobiledevice-1.2.0.orig/cython/debugserver.pxi 2015-07-22 22:43:52.357279900 +0100 ++++ libimobiledevice-1.2.0/cython/debugserver.pxi 2015-07-22 22:44:40.303768000 +0100 +@@ -44,13 +44,13 @@ + + + # from http://stackoverflow.com/a/17511714 +-from cpython.string cimport PyString_AsString ++from cpython.bytes cimport PyBytes_AsString + cdef char ** to_cstring_array(list_str): + if not list_str: + return NULL + cdef char **ret = malloc(len(list_str) * sizeof(char *)) + for i in xrange(len(list_str)): +- ret[i] = PyString_AsString(list_str[i]) ++ ret[i] = PyBytes_AsString(list_str[i]) + return ret + + diff --git a/mingw-w64-libimobiledevice/PKGBUILD b/mingw-w64-libimobiledevice/PKGBUILD index 9fc1429af1..73c0043782 100644 --- a/mingw-w64-libimobiledevice/PKGBUILD +++ b/mingw-w64-libimobiledevice/PKGBUILD @@ -10,16 +10,19 @@ url='http://www.libimobiledevice.org/' license=('GPL2+') options=('staticlibs') source=("http://www.libimobiledevice.org/downloads/${_realname}-${pkgver}.tar.bz2" - 001-cython-includes.patch) + 001-cython-includes.patch + 0002-PyString_AsString-now-PyBytes_AsString.patch) depends=("${MINGW_PACKAGE_PREFIX}-libusbmuxd" "${MINGW_PACKAGE_PREFIX}-libplist" "${MINGW_PACKAGE_PREFIX}-openssl") sha1sums=('a8e3f21180b1d6df754d04a4080a29cf6891e701' - '9d091cf73ce1477db7b78fc8e47572e2e3031e79') + '9d091cf73ce1477db7b78fc8e47572e2e3031e79' + 'e54edd0b3b061ac8531c03b13a6b9336b5927a20') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-cython-includes.patch + patch -p1 -i ${srcdir}/0002-PyString_AsString-now-PyBytes_AsString.patch autoreconf -fiv } From d3c5525215233a495cbadf02db583b0acee2534b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 23 Jul 2015 00:21:31 +0100 Subject: [PATCH 1341/2060] cython: Update to 0.23.beta1 Since 0.22.1 uses PyString_AsString and that doesn't exist in Python 3.4 --- mingw-w64-cython/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cython/PKGBUILD b/mingw-w64-cython/PKGBUILD index 4a8dab27de..aa1fa9da40 100644 --- a/mingw-w64-cython/PKGBUILD +++ b/mingw-w64-cython/PKGBUILD @@ -3,7 +3,7 @@ _realname=cython pkgname=("${MINGW_PACKAGE_PREFIX}-cython" "${MINGW_PACKAGE_PREFIX}-cython2") -pkgver=0.22.1 +pkgver=0.23.beta1 pkgrel=1 pkgdesc="C-Extensions for Python (mingw-w64)" arch=('any') @@ -15,7 +15,7 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-gcc" ) source=("http://cython.org/release/Cython-${pkgver}.tar.gz") -md5sums=('b920f3c81ae767477a342807bf5e68e8') +md5sums=('da4d499c596b9192dab755e4c508a2c9') prepare() { cp -a ${_realname}-${pkgver} ${_realname}-py2-${pkgver}-${CARCH} From 67fb639df05934d6504b968ff67effe16f72d317 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 23 Jul 2015 00:21:49 +0100 Subject: [PATCH 1342/2060] cython-git: Added --- mingw-w64-cython-git/PKGBUILD | 91 +++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 mingw-w64-cython-git/PKGBUILD diff --git a/mingw-w64-cython-git/PKGBUILD b/mingw-w64-cython-git/PKGBUILD new file mode 100644 index 0000000000..ab7673ee1f --- /dev/null +++ b/mingw-w64-cython-git/PKGBUILD @@ -0,0 +1,91 @@ +# Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > +# Contributor: Ray Donnelly + +_realname=cython +pkgname=("${MINGW_PACKAGE_PREFIX}-cython-git" "${MINGW_PACKAGE_PREFIX}-cython2-git") +pkgver=0.23.beta1.7.g702f1f4 +pkgrel=1 +pkgdesc="C-Extensions for Python (mingw-w64)" +arch=('any') +url="http://www.cython.org" +license=('APACHE') +makedepends=( + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-gcc" + ) +source=("git+https://github.com/cython/cython.git") +md5sums=('SKIP') + +pkgver() { + cd "${srcdir}"/${_realname} + git describe --tags | sed 's|-|.|g' +} + +prepare() { + cp -a ${_realname} ${_realname}-py2-${pkgver}-${CARCH} + mv ${_realname} ${_realname}-${pkgver}-${CARCH} +} + +package_cython() { + depends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools") + cd ${_realname}-${pkgver}-${CARCH} + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + DISTUTILS_DEBUG=1 \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + # Our setuptools {gui,cli}{,-32,-64}.exe have special-case handling for /usr/bin/env such that + # they look in PATH. + sed -i 's|#!.*|#!/usr/bin/env python3|' ${pkgdir}/${MINGW_PREFIX}/bin/cy{gdb,thon}-script.py +} + +package_cython2() { + depends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools") + cd ${_realname}-py2-${pkgver}-${CARCH} + DISTUTILS_DEBUG=1 \ + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + # Our setuptools {gui,cli}{,-32,-64}.exe have special-case handling for /usr/bin/env such that + # they look in PATH. + sed -i 's|#!.*|#!/usr/bin/env python2|' ${pkgdir}/${MINGW_PREFIX}/bin/cy{gdb,thon}-script.py + + mv ${pkgdir}${MINGW_PREFIX}/bin/cygdb{,2}.exe + mv ${pkgdir}${MINGW_PREFIX}/bin/cython{,2}.exe + mv ${pkgdir}${MINGW_PREFIX}/bin/cythonize{,2}.exe + if [ -f ${pkgdir}${MINGW_PREFIX}/bin/cygdb.exe.manifest ]; then + mv ${pkgdir}${MINGW_PREFIX}/bin/cygdb{,2}.exe.manifest + mv ${pkgdir}${MINGW_PREFIX}/bin/cython{,2}.exe.manifest + mv ${pkgdir}${MINGW_PREFIX}/bin/cythonize{,2}.exe.manifest + fi + + mv ${pkgdir}${MINGW_PREFIX}/bin/cygdb{,2}-script.py + mv ${pkgdir}${MINGW_PREFIX}/bin/cython{,2}-script.py + mv ${pkgdir}${MINGW_PREFIX}/bin/cythonize{,2}-script.py +} + +package_mingw-w64-i686-cython-git() { + conflicts=("mingw-w64-i686-cython") + provides=("mingw-w64-i686-cython") + package_cython +} + +package_mingw-w64-i686-cython2-git() { + conflicts=("mingw-w64-i686-cython2") + provides=("mingw-w64-i686-cython2") + package_cython2 +} + +package_mingw-w64-x86_64-cython-git() { + conflicts=("mingw-w64-x86_64-cython") + provides=("mingw-w64-x86_64-cython") + package_cython +} + +package_mingw-w64-x86_64-cython2-git() { + conflicts=("mingw-w64-x86_64-cython2") + provides=("mingw-w64-x86_64-cython2") + package_cython2 +} From f4be14a36ce63eb1142402992a6c8c85e01b7c59 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 23 Jul 2015 00:22:36 +0100 Subject: [PATCH 1343/2060] clang: Made Martell the first maintainer --- mingw-w64-clang/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 035c4442ab..4c70015739 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -1,6 +1,6 @@ +# Maintainer: Martell Malone # Maintainer: Alexey Pavlov # Contributor: Ray Donnelly -# Contributor: Martell Malone _realname=clang pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" From 7e7a3158fa5dadb0e8b77e8d1b0fc8e531da3bae Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 23 Jul 2015 00:35:27 +0100 Subject: [PATCH 1344/2060] FAIL_LIST: Update --- FAIL_LIST.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index bf7d1e36cf..89fe9bc5c7 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -5,7 +5,7 @@ List of packages that currently fail to build - cegui (waiting for 0.8.5 release) -- collada-dom-svn +- collada-dom-svn (can't investigate SourceForge svn is down) - cocos2dx-git @@ -29,8 +29,6 @@ List of packages that currently fail to build - ldns -- libimobiledevice - - libodfgen - librescl @@ -53,7 +51,7 @@ List of packages that currently fail to build - openocd-git -- openshadinglanguage +- openshadinglanguage (Needs a legacy LLVM < 3.6 package due to JIT changes) - perl (still not building for 32-bit) : ..\perl.h:3551:38: error: static assertion failed: "sizeof(PADOP) <= sizeof(SVOP)" From 64166a548db548b37198b53c96b828347b2811d7 Mon Sep 17 00:00:00 2001 From: Andrew Chadwick Date: Thu, 23 Jul 2015 01:13:00 +0100 Subject: [PATCH 1345/2060] mypaint: added Tracks the latest release tarball distributed on github. --- mingw-w64-mypaint/PKGBUILD | 59 ++++++++++++++++++++++++ mingw-w64-mypaint/mypaint-i686.install | 23 +++++++++ mingw-w64-mypaint/mypaint-x86_64.install | 23 +++++++++ 3 files changed, 105 insertions(+) create mode 100644 mingw-w64-mypaint/PKGBUILD create mode 100644 mingw-w64-mypaint/mypaint-i686.install create mode 100644 mingw-w64-mypaint/mypaint-x86_64.install diff --git a/mingw-w64-mypaint/PKGBUILD b/mingw-w64-mypaint/PKGBUILD new file mode 100644 index 0000000000..5d7374d0a9 --- /dev/null +++ b/mingw-w64-mypaint/PKGBUILD @@ -0,0 +1,59 @@ +# Maintainer: Andrew Chadwick + +_realname=mypaint +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.2.0_beta.0 +pkgrel=1 +arch=('any') +pkgdesc="Simple drawing & painting program that works well with Wacom-style graphics tablets" +depends=( + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-python2-numpy" + "${MINGW_PACKAGE_PREFIX}-json-c" + "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-python2-cairo" + "${MINGW_PACKAGE_PREFIX}-python2-gobject" + "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" + "${MINGW_PACKAGE_PREFIX}-librsvg" + "${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" + "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" +) +makedepends=( + "${MINGW_PACKAGE_PREFIX}-swig" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-pygobject-devel" + "scons" + "swig" +) +options=('strip' '!debug' 'staticlibs') +license=("GPL2" "ISC") +url="http://mypaint.org" +install=mypaint-${CARCH}.install +source=(https://github.com/mypaint/mypaint/releases/download/v${pkgver/_/-}/mypaint-${pkgver/_/-}.tar.xz) +sha256sums=('7a76e2f309da1ec7b41e7ef9a443a376cbb79e0edbfbebc5954b63148c30c6b1') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver/_/-} +} + +build() { + cd "${srcdir}"/${_realname}-${pkgver/_/-} + echo "prefix: ${MINGW_PREFIX}" + scons prefix="${MINGW_PREFIX}" +} + +package() { + cd "${srcdir}"/${_realname}-${pkgver/_/-} + echo "prefix: ${MINGW_PREFIX}" + echo "sandbox: ${pkgdir}" + echo "target: ${pkgdir}${MINGW_PREFIX}" + scons prefix="${MINGW_PREFIX}" --install-sandbox="${pkgdir}" \ + "${pkgdir}${MINGW_PREFIX}" + install -Dm644 COPYING \ + "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.mypaint" + install -Dm644 brushlib/COPYING \ + "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.libmypaint" + install -Dm644 LICENSE \ + "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} diff --git a/mingw-w64-mypaint/mypaint-i686.install b/mingw-w64-mypaint/mypaint-i686.install new file mode 100644 index 0000000000..7a3e929906 --- /dev/null +++ b/mingw-w64-mypaint/mypaint-i686.install @@ -0,0 +1,23 @@ +post_install() { + # gedit's does it, so I guess we must too + mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas + # From hicolor-icon-theme: + [[ -f mingw32/bin/gtk-update-icon-cache.exe ]] && { + mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/hicolor + } + [[ -f mingw32/bin/gtk-update-icon-cache-3.0.exe ]] && { + mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/hicolor + } + [[ -f mingw32/bin/gdk-pixbuf-query-loaders.exe ]] && { + mingw32/bin/gdk-pixbuf-query-loaders.exe --update-cache + } + return 0 +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/mingw-w64-mypaint/mypaint-x86_64.install b/mingw-w64-mypaint/mypaint-x86_64.install new file mode 100644 index 0000000000..8d480b30a7 --- /dev/null +++ b/mingw-w64-mypaint/mypaint-x86_64.install @@ -0,0 +1,23 @@ +post_install() { + # gedit's does it, so I guess we must too + mingw64/bin/glib-compile-schemas mingw64/share/glib-2.0/schemas + # From hicolor-icon-theme: + [[ -f mingw64/bin/gtk-update-icon-cache.exe ]] && { + mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/hicolor + } + [[ -f mingw64/bin/gtk-update-icon-cache-3.0.exe ]] && { + mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/hicolor + } + [[ -f mingw64/bin/gdk-pixbuf-query-loaders.exe ]] && { + mingw64/bin/gdk-pixbuf-query-loaders.exe --update-cache + } + return 0 +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} From 2b76f4d44edfcac94490579eaaa45339807a0a45 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Thu, 23 Jul 2015 07:59:37 +0100 Subject: [PATCH 1346/2060] clang-svn: Remove upstreamed rtlib stdlib patch --- ...for-rtlib-and-stdlib-to-mingw-driver.patch | 217 ------------------ mingw-w64-clang-svn/PKGBUILD | 3 - 2 files changed, 220 deletions(-) delete mode 100644 mingw-w64-clang-svn/0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch diff --git a/mingw-w64-clang-svn/0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch b/mingw-w64-clang-svn/0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch deleted file mode 100644 index a8ffc1ecac..0000000000 --- a/mingw-w64-clang-svn/0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch +++ /dev/null @@ -1,217 +0,0 @@ -From 95ec8854ad32ea8214a71012ebb6270d4e65150f Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Wed, 22 Jul 2015 04:57:45 +0100 -Subject: [PATCH] Add support for -rtlib and -stdlib to mingw driver - - -diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp -index f4862ca..22051bf 100644 ---- a/lib/Driver/MinGWToolChain.cpp -+++ b/lib/Driver/MinGWToolChain.cpp -@@ -192,18 +192,20 @@ void MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, - if (DriverArgs.hasArg(options::OPT_nostdlibinc)) - return; - -- llvm::SmallString<1024> IncludeDir(GccLibDir); -- llvm::sys::path::append(IncludeDir, "include"); -- addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); -- IncludeDir += "-fixed"; -+if (GetRuntimeLibType(DriverArgs) == ToolChain::RLT_Libgcc) { -+ llvm::SmallString<1024> IncludeDir(GccLibDir); -+ llvm::sys::path::append(IncludeDir, "include"); -+ addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); -+ IncludeDir += "-fixed"; - #ifdef LLVM_ON_UNIX -- // openSUSE -- addSystemInclude(DriverArgs, CC1Args, -- "/usr/x86_64-w64-mingw32/sys-root/mingw/include"); -+ // openSUSE -+ addSystemInclude(DriverArgs, CC1Args, -+ "/usr/x86_64-w64-mingw32/sys-root/mingw/include"); - #endif -- addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); -- addSystemInclude(DriverArgs, CC1Args, Base + Arch + "include"); -- addSystemInclude(DriverArgs, CC1Args, Base + "include"); -+ addSystemInclude(DriverArgs, CC1Args, IncludeDir.c_str()); -+ } -+ addSystemInclude(DriverArgs, CC1Args, Base + Arch + "include"); -+ addSystemInclude(DriverArgs, CC1Args, Base + "include"); - } - - void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, -@@ -212,19 +214,29 @@ void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, - DriverArgs.hasArg(options::OPT_nostdincxx)) - return; - -- llvm::SmallVector, 4> CppIncludeBases; -- CppIncludeBases.emplace_back(Base); -- llvm::sys::path::append(CppIncludeBases[0], Arch, "include", "c++"); -- CppIncludeBases.emplace_back(Base); -- llvm::sys::path::append(CppIncludeBases[1], Arch, "include", "c++", Ver); -- CppIncludeBases.emplace_back(Base); -- llvm::sys::path::append(CppIncludeBases[2], "include", "c++", Ver); -- CppIncludeBases.emplace_back(GccLibDir); -- llvm::sys::path::append(CppIncludeBases[3], "include", "c++"); -- for (auto &CppIncludeBase : CppIncludeBases) { -- CppIncludeBase += llvm::sys::path::get_separator(); -- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase); -- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + Arch); -- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); -+ switch (GetCXXStdlibType(DriverArgs)) { -+ case ToolChain::CST_Libcxx: -+ addSystemInclude(DriverArgs, CC1Args, Base + "include" + -+ llvm::sys::path::get_separator() + "c++" + -+ llvm::sys::path::get_separator() + "v1"); -+ break; -+ -+ case ToolChain::CST_Libstdcxx: -+ llvm::SmallVector, 4> CppIncludeBases; -+ CppIncludeBases.emplace_back(Base); -+ llvm::sys::path::append(CppIncludeBases[0], Arch, "include", "c++"); -+ CppIncludeBases.emplace_back(Base); -+ llvm::sys::path::append(CppIncludeBases[1], Arch, "include", "c++", Ver); -+ CppIncludeBases.emplace_back(Base); -+ llvm::sys::path::append(CppIncludeBases[2], "include", "c++", Ver); -+ CppIncludeBases.emplace_back(GccLibDir); -+ llvm::sys::path::append(CppIncludeBases[3], "include", "c++"); -+ for (auto &CppIncludeBase : CppIncludeBases) { -+ CppIncludeBase += llvm::sys::path::get_separator(); -+ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase); -+ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + Arch); -+ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); -+ } -+ break; - } - } -diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 8e5e980..2ede056 100644 ---- a/lib/Driver/Tools.cpp -+++ b/lib/Driver/Tools.cpp -@@ -2247,8 +2247,7 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, - - // Until ARM libraries are build separately, we have them all in one library - static StringRef getArchNameForCompilerRTLib(const ToolChain &TC) { -- if (TC.getTriple().isOSWindows() && -- !TC.getTriple().isWindowsItaniumEnvironment() && -+ if (TC.getTriple().isWindowsMSVCEnvironment() && - TC.getArch() == llvm::Triple::x86) - return "i386"; - if (TC.getArch() == llvm::Triple::arm || TC.getArch() == llvm::Triple::armeb) -@@ -2274,10 +2273,12 @@ SmallString<128> tools::getCompilerRT(const ToolChain &TC, StringRef Component, - : ""; - - bool IsOSWindows = TC.getTriple().isOSWindows(); -+ bool IsITANMSVCWindows = TC.getTriple().isWindowsMSVCEnvironment() || -+ TC.getTriple().isWindowsItaniumEnvironment(); - StringRef Arch = getArchNameForCompilerRTLib(TC); -- const char *Prefix = IsOSWindows ? "" : "lib"; -+ const char *Prefix = IsITANMSVCWindows ? "" : "lib"; - const char *Suffix = -- Shared ? (IsOSWindows ? ".dll" : ".so") : (IsOSWindows ? ".lib" : ".a"); -+ Shared ? (IsOSWindows ? ".dll" : ".so") : (IsITANMSVCWindows ? ".lib" : ".a"); - - SmallString<128> Path = getCompilerRTLibDir(TC); - llvm::sys::path::append(Path, Prefix + Twine("clang_rt.") + Component + "-" + -@@ -7836,6 +7842,7 @@ void gnutools::Assembler::ConstructJob(Compilation &C, const JobAction &JA, - static void AddLibgcc(const llvm::Triple &Triple, const Driver &D, - ArgStringList &CmdArgs, const ArgList &Args) { - bool isAndroid = Triple.getEnvironment() == llvm::Triple::Android; -+ bool isWindows = Triple.getOS() == llvm::Triple::Win32; - bool StaticLibgcc = Args.hasArg(options::OPT_static_libgcc) || - Args.hasArg(options::OPT_static); - if (!D.CCCIsCXX()) -@@ -7845,10 +7852,10 @@ static void AddLibgcc(const llvm::Triple &Triple, const Driver &D, - if (D.CCCIsCXX()) - CmdArgs.push_back("-lgcc"); - } else { -- if (!D.CCCIsCXX()) -+ if (!D.CCCIsCXX() && !isWindows) - CmdArgs.push_back("--as-needed"); - CmdArgs.push_back("-lgcc_s"); -- if (!D.CCCIsCXX()) -+ if (!D.CCCIsCXX() && !isWindows) - CmdArgs.push_back("--no-as-needed"); - } - -@@ -8925,25 +8932,6 @@ void MinGW::Assembler::ConstructJob(Compilation &C, const JobAction &JA, - SplitDebugName(Args, Inputs[0])); - } - --void MinGW::Linker::AddLibGCC(const ArgList &Args, -- ArgStringList &CmdArgs) const { -- if (Args.hasArg(options::OPT_mthreads)) -- CmdArgs.push_back("-lmingwthrd"); -- CmdArgs.push_back("-lmingw32"); -- if (Args.hasArg(options::OPT_shared) || -- Args.hasArg(options::OPT_shared_libgcc) || -- !Args.hasArg(options::OPT_static_libgcc)) { -- CmdArgs.push_back("-lgcc_s"); -- CmdArgs.push_back("-lgcc"); -- } else { -- CmdArgs.push_back("-lgcc"); -- CmdArgs.push_back("-lgcc_eh"); -- } -- CmdArgs.push_back("-lmoldname"); -- CmdArgs.push_back("-lmingwex"); -- CmdArgs.push_back("-lmsvcrt"); --} -- - void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, - const InputInfo &Output, - const InputInfoList &Inputs, -@@ -9071,7 +9059,15 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, - if (Args.hasArg(options::OPT_fopenmp)) - CmdArgs.push_back("-lgomp"); - -- AddLibGCC(Args, CmdArgs); -+ if (Args.hasArg(options::OPT_mthreads)) -+ CmdArgs.push_back("-lmingwthrd"); -+ CmdArgs.push_back("-lmingw32"); -+ -+ AddRunTimeLibs(TC, D, CmdArgs, Args); -+ -+ CmdArgs.push_back("-lmoldname"); -+ CmdArgs.push_back("-lmingwex"); -+ CmdArgs.push_back("-lmsvcrt"); - - if (Args.hasArg(options::OPT_pg)) - CmdArgs.push_back("-lgmon"); -@@ -9091,8 +9087,19 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA, - - if (Args.hasArg(options::OPT_static)) - CmdArgs.push_back("--end-group"); -- else if (!LinkerName.equals_lower("lld")) -- AddLibGCC(Args, CmdArgs); -+ else if (!LinkerName.equals_lower("lld")) { -+ -+ if (Args.hasArg(options::OPT_mthreads)) -+ CmdArgs.push_back("-lmingwthrd"); -+ CmdArgs.push_back("-lmingw32"); -+ -+ AddRunTimeLibs(TC, D, CmdArgs, Args); -+ -+ CmdArgs.push_back("-lmoldname"); -+ CmdArgs.push_back("-lmingwex"); -+ CmdArgs.push_back("-lmsvcrt"); -+ -+ } - } - - if (!Args.hasArg(options::OPT_nostartfiles)) { -diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h -index 4f816a0..a3b27ab 100644 ---- a/lib/Driver/Tools.h -+++ b/lib/Driver/Tools.h -@@ -702,9 +702,6 @@ public: - const InputInfo &Output, const InputInfoList &Inputs, - const llvm::opt::ArgList &TCArgs, - const char *LinkingOutput) const override; -- --private: -- void AddLibGCC(const llvm::opt::ArgList &Args, ArgStringList &CmdArgs) const; - }; - } // end namespace MinGW - --- -2.4.5 - diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 3332d200c1..4b75021937 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -41,7 +41,6 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" "libcxxabi"::"git+http://llvm.org/git/libcxxabi.git" "libcxx"::"git+http://llvm.org/git/libcxx.git" 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch - 0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch 0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch 0031-COFF-add-the-mingw-alias-for-ImageBase.patch 0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch @@ -65,7 +64,6 @@ md5sums=('SKIP' 'SKIP' 'SKIP' 'a384d4607d9dcdfdcac6912ac413ec58' - 'b3e791da57ef5882c5b029e3a9a65a29' 'e6ce086a33256043af99a5690b251be8' 'a1e06d17915f1cedb1d784ecfdfa60be' '76b01f572c404c7245d227d758cdf7fc' @@ -100,7 +98,6 @@ prepare() { cmake/modules/Makefile cd "${srcdir}"/clang - git am "${srcdir}"/0011-Add-support-for-rtlib-and-stdlib-to-mingw-driver.patch git am "${srcdir}"/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch #cd "${srcdir}"/compiler-rt From 8613f405c941b68ba086c111842e1c90b8710a33 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 23 Jul 2015 12:57:27 +0300 Subject: [PATCH 1347/2060] libproxy: Fix installing python binding --- mingw-w64-libproxy/006-python-site-package-dir.patch | 11 +++++++++++ mingw-w64-libproxy/PKGBUILD | 9 ++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-libproxy/006-python-site-package-dir.patch diff --git a/mingw-w64-libproxy/006-python-site-package-dir.patch b/mingw-w64-libproxy/006-python-site-package-dir.patch new file mode 100644 index 0000000000..2d928d456f --- /dev/null +++ b/mingw-w64-libproxy/006-python-site-package-dir.patch @@ -0,0 +1,11 @@ +--- libproxy-0.4.11/bindings/python/CMakeLists.txt.orig 2015-07-23 12:46:27.038511800 +0300 ++++ libproxy-0.4.11/bindings/python/CMakeLists.txt 2015-07-23 12:47:10.174197800 +0300 +@@ -14,7 +14,7 @@ + + execute_process(COMMAND + ${PYTHON_EXECUTABLE} +- -c "import distutils.sysconfig ; print distutils.sysconfig.get_python_lib(plat_specific=0)" ++ -c "import distutils.sysconfig ; print distutils.sysconfig.get_python_lib(prefix='')" + OUTPUT_VARIABLE PYTHON_SITEPKG_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE) + endif() diff --git a/mingw-w64-libproxy/PKGBUILD b/mingw-w64-libproxy/PKGBUILD index de6ffc7d41..a9b2997ca4 100644 --- a/mingw-w64-libproxy/PKGBUILD +++ b/mingw-w64-libproxy/PKGBUILD @@ -3,7 +3,7 @@ _realname=libproxy pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.4.11 -pkgrel=2 +pkgrel=3 pkgdesc="A library that provides automatic proxy configuration management (mingw-w64)" arch=('any') url="http://libproxy.googlecode.com" @@ -19,14 +19,16 @@ source=("http://libproxy.googlecode.com/files/${_realname}-${pkgver}.tar.gz" 002-fix-win32-close-scoket.patch 003-fix-leaks.patch 004-allow-bindings.patch - 005-modules.patch) + 005-modules.patch + 006-python-site-package-dir.patch) md5sums=('3cd1ae2a4abecf44b3f24d6639d2cd84' '6c8423fb0b2595d5254c8aac3797a36a' '3fe1d50d8a4bccdc14a58166ec7f9b59' '275ae951b6fcb2608498549c493810d7' '35bcd97f6f79d83b0689907f97476e4b' - '74adbf77b1ba5b99ea11600d9e43c8f9') + '74adbf77b1ba5b99ea11600d9e43c8f9' + '504bbca53bd2213e70214f12c81192ab') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -35,6 +37,7 @@ prepare() { patch -p1 -i ${srcdir}/003-fix-leaks.patch patch -p1 -i ${srcdir}/004-allow-bindings.patch patch -p1 -i ${srcdir}/005-modules.patch + patch -p1 -i ${srcdir}/006-python-site-package-dir.patch } build() { From 3311ac83b05c2a2f973027385953b74bf327683e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 23 Jul 2015 12:57:47 +0300 Subject: [PATCH 1348/2060] fontconfig: Fix cache folder location --- mingw-w64-fontconfig/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-fontconfig/PKGBUILD b/mingw-w64-fontconfig/PKGBUILD index c26f5b2487..5847b8137d 100644 --- a/mingw-w64-fontconfig/PKGBUILD +++ b/mingw-w64-fontconfig/PKGBUILD @@ -4,7 +4,7 @@ _realname=fontconfig pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.11.94 -pkgrel=1 +pkgrel=2 pkgdesc="A library for configuring and customizing font access (mingw-w64)" arch=('any') url="http://www.fontconfig.org/release" @@ -52,7 +52,7 @@ build() { --enable-iconv \ --disable-docs \ --with-arch=${CARCH} \ - --with-cache-dir=${MINGW_PREFIX}/var/cache/${_realname} \ + --with-cache-dir=/var/cache/${_realname} \ as_ln_s="cp -pR" sed -i 's,all-am: Makefile $(PROGRAMS),all-am:,' test/Makefile From 3eba3a6042c896cf1be3711a1c790135571d463e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 23 Jul 2015 13:08:05 +0300 Subject: [PATCH 1349/2060] fontconfig: Fix previous commit --- mingw-w64-fontconfig/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-fontconfig/PKGBUILD b/mingw-w64-fontconfig/PKGBUILD index 5847b8137d..d1867d31a8 100644 --- a/mingw-w64-fontconfig/PKGBUILD +++ b/mingw-w64-fontconfig/PKGBUILD @@ -63,6 +63,7 @@ package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" + mv ${pkgdir}{,${MINGW_PREFIX}}/var find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } From 3bac0ece72651b31d7ec7e417d94a0935f7dd4f0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 23 Jul 2015 13:05:21 +0100 Subject: [PATCH 1350/2060] creduce{,-git}: Some fixes 1. Drop dependency on delta, internal clang_delta now used. 2. Add dependency of clang since clang-format is used at runtime. 3. Only sed #!${MINGW_PREFIX} -> #!/usr, not the other one(s). --- mingw-w64-creduce-git/PKGBUILD | 12 ++++++------ mingw-w64-creduce/PKGBUILD | 14 +++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/mingw-w64-creduce-git/PKGBUILD b/mingw-w64-creduce-git/PKGBUILD index 779b235048..eb6259b684 100644 --- a/mingw-w64-creduce-git/PKGBUILD +++ b/mingw-w64-creduce-git/PKGBUILD @@ -4,18 +4,18 @@ _realname=creduce pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=creduce.2.3.0.14.g49782e7 +pkgver=creduce.2.3.0.18.g7b3ce38 pkgrel=1 pkgdesc="A C program reducer (mingw-w64)" -depends=('delta' - 'perl-Benchmark-Timer' +depends=('perl-Benchmark-Timer' 'perl-Exporter-Lite' 'perl-File-Which' 'perl-Getopt-Tabular' 'perl-Regexp-Common' 'perl-Sys-CPU' "${MINGW_PACKAGE_PREFIX}-astyle" - "${MINGW_PACKAGE_PREFIX}-indent") + "${MINGW_PACKAGE_PREFIX}-indent" + "${MINGW_PACKAGE_PREFIX}-clang") arch=('any') url='https://github.com/csmith-project/creduce' license=('custom:University of Illinois/NCSA Open Source License') @@ -57,8 +57,8 @@ package() { install -Dm644 "../${_realname}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" # Point creduce perl script: - # lib $FindBin::Bin, '${MINGW_PREFIX}/share/creduce/perl'; + # #!/${MINGW_PREFIX} -> #!/usr # .. to msys2 perl. - sed "s|${MINGW_PREFIX}|/usr|g" \ + sed "s|#!${MINGW_PREFIX}|#!/usr|g" \ -i ${pkgdir}${MINGW_PREFIX}/bin/creduce } diff --git a/mingw-w64-creduce/PKGBUILD b/mingw-w64-creduce/PKGBUILD index a0626a14c3..bca83f7422 100644 --- a/mingw-w64-creduce/PKGBUILD +++ b/mingw-w64-creduce/PKGBUILD @@ -4,21 +4,21 @@ _realname=creduce pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") pkgver=2.3.0 -pkgrel=1 +pkgrel=2 pkgdesc="A C program reducer (mingw-w64)" -depends=('delta' - 'perl-Benchmark-Timer' +depends=('perl-Benchmark-Timer' 'perl-Exporter-Lite' 'perl-File-Which' 'perl-Getopt-Tabular' 'perl-Regexp-Common' 'perl-Sys-CPU' "${MINGW_PACKAGE_PREFIX}-astyle" - "${MINGW_PACKAGE_PREFIX}-indent") + "${MINGW_PACKAGE_PREFIX}-indent" + "${MINGW_PACKAGE_PREFIX}-clang") arch=('any') url='https://github.com/csmith-project/creduce' license=('custom:University of Illinois/NCSA Open Source License') -makedepends=('flex' "${MINGW_PACKAGE_PREFIX}-clang") +makedepends=("flex" "${MINGW_PACKAGE_PREFIX}-clang") source=(https://github.com/csmith-project/creduce/archive/${_realname}-${pkgver}.tar.gz "llvm-config-cygpath") sha256sums=('47a42751aab8b51bc10d8df62f359bdc1b4a644f16feb85b9f7325f0c5bce4a3' @@ -51,8 +51,8 @@ package() { install -Dm644 "../${_realname}-${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" # Point creduce perl script: - # lib $FindBin::Bin, '${MINGW_PREFIX}/share/creduce/perl'; + # #!/${MINGW_PREFIX} -> #!/usr # .. to msys2 perl. - sed "s|${MINGW_PREFIX}|/usr|g" \ + sed "s|#!${MINGW_PREFIX}|#!/usr|g" \ -i ${pkgdir}${MINGW_PREFIX}/bin/creduce } From 7b3bb17b4bd7d46e612363dd7e43c6ed8e2c6505 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 23 Jul 2015 15:43:42 +0300 Subject: [PATCH 1351/2060] gcc: Fix installing libgomp spec --- mingw-w64-gcc/PKGBUILD | 140 ++++++++++++++++++++--------------------- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 629e4e6d5e..e9e6c67f45 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -11,7 +11,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc") pkgver=5.2.0 -pkgrel=1 +pkgrel=2 pkgdesc="GCC for the MinGW-w64" arch=('any') url="http://gcc.gnu.org" @@ -272,41 +272,41 @@ package_mingw-w64-gcc() { mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,include,lib,share} cd ${srcdir}${MINGW_PREFIX} - cp bin/cpp.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/gcc.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/gcc-ar.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/gcc-nm.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/gcov.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/gcov-tool.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/c++.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/g++.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/${MINGW_CHOST}-c++.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/${MINGW_CHOST}-g++.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/${MINGW_CHOST}-gcc-${pkgver}.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/${MINGW_CHOST}-gcc.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/${MINGW_CHOST}-gcc-ar.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/${MINGW_CHOST}-gcc-nm.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/${MINGW_CHOST}-gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/cpp.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcc.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcc-ar.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcc-nm.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcov.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcov-tool.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/c++.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/g++.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-c++.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-g++.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-gcc-${pkgver}.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-gcc.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-gcc-ar.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-gcc-nm.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/ #cp bin/{libgcc*,libgomp*,libquadmath*,libssp*,libstdc*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include - cp lib/gcc/${MINGW_CHOST}/${pkgver}/include/*.h ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/ssp ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include-fixed ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/install-tools ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/collect2.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/crt*.o ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/liblto* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libatomic* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcc* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcov.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgomp*.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libquadmath.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libssp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libvtv* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/lto*.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/include/*.h ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/ssp ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include-fixed ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/install-tools ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/collect2.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/crt*.o ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/liblto* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libatomic* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcc* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcov* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgomp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libquadmath* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libssp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libvtv* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/lto*.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ #mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib cp ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/libgcc_s.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ @@ -314,31 +314,31 @@ package_mingw-w64-gcc() { #cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/c++ ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ cp -r include/c++ ${pkgdir}${MINGW_PREFIX}/include/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1plus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libstdc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libsupc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1plus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libstdc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libsupc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/{doc,info,locale,man} #cp -r share/doc/gcc-${pkgver} ${pkgdir}${MINGW_PREFIX}/share/doc/ - cp share/info/cpp.info* ${pkgdir}${MINGW_PREFIX}/share/info/ - cp share/info/cppinternals.info* ${pkgdir}${MINGW_PREFIX}/share/info/ - cp share/info/gcc.info* ${pkgdir}${MINGW_PREFIX}/share/info/ - cp share/info/gccinstall.info* ${pkgdir}${MINGW_PREFIX}/share/info/ - cp share/info/gccint.info* ${pkgdir}${MINGW_PREFIX}/share/info/ - cp share/info/libgomp.info* ${pkgdir}${MINGW_PREFIX}/share/info/ - cp share/info/libquadmath.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/cpp.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/cppinternals.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gcc.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gccinstall.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gccint.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/libgomp.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/libquadmath.info* ${pkgdir}${MINGW_PREFIX}/share/info/ #cp share/locale/* ${pkgdir}${MINGW_PREFIX}/share/locale/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver}/python - cp -r share/gcc-${pkgver}/python/libstdcxx ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver}/python/ + cp -r share/gcc-${pkgver}/python/libstdcxx ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver}/python/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/man/man1 - cp share/man/man1/cpp.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ - cp share/man/man1/gcc.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ - cp share/man/man1/gcov.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ - cp share/man/man7/fsf-funding.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ - cp share/man/man7/gfdl.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ - cp share/man/man7/gpl.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ - cp share/man/man1/g++.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man1/cpp.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man1/gcc.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man1/gcov.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man7/fsf-funding.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man7/gfdl.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man7/gpl.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man1/g++.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ } package_mingw-w64-gcc-libgfortran() { @@ -347,7 +347,7 @@ package_mingw-w64-gcc-libgfortran() { mkdir -p ${pkgdir}${MINGW_PREFIX}/bin cd ${srcdir}${MINGW_PREFIX} - cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/ } package_mingw-w64-gcc-fortran() { @@ -364,14 +364,14 @@ package_mingw-w64-gcc-fortran() { #cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/ mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver} - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/finclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/f951.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libcaf_single.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgfortran* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/finclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/f951.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libcaf_single.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgfortran* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/man/man1 - cp share/man/man1/gfortran.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man1/gfortran.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/info - cp share/info/gfortran.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gfortran.info* ${pkgdir}${MINGW_PREFIX}/share/info/ } package_mingw-w64-gcc-ada() { @@ -383,17 +383,17 @@ package_mingw-w64-gcc-ada() { cd ${srcdir}${MINGW_PREFIX} cp bin/gnat*.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp bin/{libgnarl*,libgnat*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ - mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/adalib + cp bin/{libgnarl*,libgnat*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adainclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adalib ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/gnat1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver} + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adainclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adalib ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/gnat1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/info - cp share/info/gnat-style.info* ${pkgdir}${MINGW_PREFIX}/share/info/ - cp share/info/gnat_rm.info* ${pkgdir}${MINGW_PREFIX}/share/info/ - cp share/info/gnat_ugn.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gnat-style.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gnat_rm.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gnat_ugn.info* ${pkgdir}${MINGW_PREFIX}/share/info/ } package_mingw-w64-gcc-objc() { @@ -406,10 +406,10 @@ package_mingw-w64-gcc-objc() { cp bin/libobjc*.dll ${pkgdir}${MINGW_PREFIX}/bin/ mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/objc ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1obj.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libobjc.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1objplus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/objc ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1obj.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libobjc.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1objplus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ } # Wrappers for package functions From 2255372ff49b32716e68eb91312deb7655853766 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 23 Jul 2015 16:39:52 +0300 Subject: [PATCH 1352/2060] stxxl-git: rebuild with OpenMP --- FAIL_LIST.md | 2 -- mingw-w64-stxxl-git/PKGBUILD | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 89fe9bc5c7..86a6c0f601 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -67,8 +67,6 @@ List of packages that currently fail to build - quassel -- stxxl-git (OpenMP issue) - - tclvfs - tclx diff --git a/mingw-w64-stxxl-git/PKGBUILD b/mingw-w64-stxxl-git/PKGBUILD index c47173f447..a2597e99b2 100644 --- a/mingw-w64-stxxl-git/PKGBUILD +++ b/mingw-w64-stxxl-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=stxxl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=1.4.1.343.gf7389c7 -pkgrel=1 +pkgrel=2 pkgdesc="Standard Template Library for Extra Large Data Sets (mingw-w64)" arch=('any') url="http://stxxl.sourceforge.net/" @@ -37,7 +37,7 @@ build() { -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ - -DUSE_GNU_PARALLEL=OFF \ + -DUSE_GNU_PARALLEL=ON \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_STATIC_LIBS=ON \ ../${_realname} From 515feee6731564686634b55aac515dcfd44a2f19 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 23 Jul 2015 22:28:20 +0300 Subject: [PATCH 1353/2060] Rebuild SVN packages from old sources --- FAIL_LIST.md | 6 ------ mingw-w64-collada-dom-svn/PKGBUILD | 2 +- mingw-w64-gnu-cobol-svn/PKGBUILD | 11 ++++++----- mingw-w64-qrupdate-svn/PKGBUILD | 2 +- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 86a6c0f601..9c2157401b 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -5,8 +5,6 @@ List of packages that currently fail to build - cegui (waiting for 0.8.5 release) -- collada-dom-svn (can't investigate SourceForge svn is down) - - cocos2dx-git - coq @@ -15,8 +13,6 @@ List of packages that currently fail to build - freerdp-git -- gnu-cobol-svn - - gprbuild-gpl - gst-python @@ -57,8 +53,6 @@ List of packages that currently fail to build - plplot -- qrupdate - - pitivi-git - python-binwalk diff --git a/mingw-w64-collada-dom-svn/PKGBUILD b/mingw-w64-collada-dom-svn/PKGBUILD index b0323241b2..328aad3565 100644 --- a/mingw-w64-collada-dom-svn/PKGBUILD +++ b/mingw-w64-collada-dom-svn/PKGBUILD @@ -4,7 +4,7 @@ _realname=collada-dom pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" _base_ver=2.4.1 pkgver=2.4.1.r889 -pkgrel=4 +pkgrel=5 pkgdesc="API that provides a C++ object representation of a COLLADA XML instance document (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/collada-dom/" diff --git a/mingw-w64-gnu-cobol-svn/PKGBUILD b/mingw-w64-gnu-cobol-svn/PKGBUILD index fd51459e85..bb78ab193e 100644 --- a/mingw-w64-gnu-cobol-svn/PKGBUILD +++ b/mingw-w64-gnu-cobol-svn/PKGBUILD @@ -4,9 +4,9 @@ _realname=gnu-cobol pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}-svn _base_ver=2.0 -pkgrel=1 pkgver=2.0.r599 -pkgdesc="GNU Cobol is a free, modern COBOL compiler" +pkgrel=2 +pkgdesc="GNU Cobol is a free, modern COBOL compiler (mingw-w64)" arch=('any') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -19,7 +19,7 @@ makedepends=("subversion" depends=("${MINGW_PACKAGE_PREFIX}-db" "${MINGW_PACKAGE_PREFIX}-gmp" "${MINGW_PACKAGE_PREFIX}-ncurses") -source=("$_realname::svn+http://svn.code.sf.net/p/open-cobol/code/branches/gnu-cobol-2.0") +source=("${_realname}::svn+http://svn.code.sf.net/p/open-cobol/code/branches/gnu-cobol-2.0") md5sums=('SKIP') pkgver() { @@ -47,6 +47,7 @@ build() { --enable-shared \ --enable-static \ --disable-rpath + make -j1 } @@ -54,7 +55,7 @@ package() { cd ${srcdir}/build-${CARCH} make DESTDIR="${pkgdir}" install - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} cp -pf ${srcdir}/${_realname}/COPYING* \ - ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} } diff --git a/mingw-w64-qrupdate-svn/PKGBUILD b/mingw-w64-qrupdate-svn/PKGBUILD index ebba9c6cc3..3adb607efb 100644 --- a/mingw-w64-qrupdate-svn/PKGBUILD +++ b/mingw-w64-qrupdate-svn/PKGBUILD @@ -4,7 +4,7 @@ _realname=qrupdate pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}-svn pkgver=r28 -pkgrel=3 +pkgrel=4 pkgdesc="qrupdate is a Fortran library for fast updates of QR and Cholesky decompositions (mingw-w64)" arch=('any') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") From 720281509b2294d41c0f0ae76864d9870fe19028 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 23 Jul 2015 23:54:42 +0300 Subject: [PATCH 1354/2060] gst-python: Ugly workarounds for building --- .../0002-msys2-fix-linking-errors.patch | 2 +- mingw-w64-gst-python/0006-plugin-libtool.patch | 10 ---------- mingw-w64-gst-python/PKGBUILD | 12 ++++++------ 3 files changed, 7 insertions(+), 17 deletions(-) delete mode 100644 mingw-w64-gst-python/0006-plugin-libtool.patch diff --git a/mingw-w64-gst-python/0002-msys2-fix-linking-errors.patch b/mingw-w64-gst-python/0002-msys2-fix-linking-errors.patch index 3eedeb909d..3b85916533 100644 --- a/mingw-w64-gst-python/0002-msys2-fix-linking-errors.patch +++ b/mingw-w64-gst-python/0002-msys2-fix-linking-errors.patch @@ -36,7 +36,7 @@ index 042c2bc..4a9b60d 100644 -libgstpythonplugin_la_LDFLAGS = -avoid-version -libgstpythonplugin_la_LIBADD = $(PYTHON_LIBS) $(PYGOBJECT_LIBS) $(GST_LIBS) +libgstpythonplugin_la_LDFLAGS = -avoid-version -no-undefined -+libgstpythonplugin_la_LIBADD = $(PYTHON_LIBS) $(GST_LIBS) $(PYGOBJECT_LIBS) ++libgstpythonplugin_la_LIBADD = $(PYTHON_LIBS) $(PYGOBJECT_LIBS) $(GST_LIBS) -lgmodule-2.0 libgstpythonplugin_la_CFLAGS = $(GST_CFLAGS) $(PYGOBJECT_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(PYTHON_INCLUDES) -- 2.0.4 diff --git a/mingw-w64-gst-python/0006-plugin-libtool.patch b/mingw-w64-gst-python/0006-plugin-libtool.patch deleted file mode 100644 index 18fc51f939..0000000000 --- a/mingw-w64-gst-python/0006-plugin-libtool.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- gst-python-1.4.0/plugin/Makefile.am.orig 2015-07-21 14:56:42.175010500 +0300 -+++ gst-python-1.4.0/plugin/Makefile.am 2015-07-21 14:57:19.383289300 +0300 -@@ -1,4 +1,6 @@ --plugin_LTLIBRARIES = libgstpythonplugin.la -+plugindir = $(PLUGINDIR) -+pluginexecdir = $(PLUGINDIR) -+pluginexec_LTLIBRARIES = libgstpythonplugin.la - - INCLUDES = $(PYGOBJECT_CFLAGS) $(GST_CFLAGS)\ - -DPYTHON_VERSION=\"$(PYTHON_VERSION)\" \ diff --git a/mingw-w64-gst-python/PKGBUILD b/mingw-w64-gst-python/PKGBUILD index 98621e8783..c3c3bae386 100644 --- a/mingw-w64-gst-python/PKGBUILD +++ b/mingw-w64-gst-python/PKGBUILD @@ -19,14 +19,12 @@ source=(http://gstreamer.freedesktop.org/src/gst-python/${_realname}-${pkgver}.t '0001-msys2-python3-config-returns-1-so-use-which.patch' '0002-msys2-fix-linking-errors.patch' '0004-add-overrides.patch' - '0005-unix-override-dir.patch' - '0006-plugin-libtool.patch') + '0005-unix-override-dir.patch') md5sums=('72e3ba811db671366162bbf75a01ed37' 'eb52a3ef8270c2d263c79799bcaf377a' - '14ee538deb2796a53ff4177fd7caeadd' + 'bebc4a64a2e4533c8cb7ec0eef5fc564' '9241cc5807a4ef87548b6d5405141bf1' - 'cf4576d2775e01c2147801d5614fa1b2' - 'f1dc65f40ae023dd499a5dbe3b754418') + 'cf4576d2775e01c2147801d5614fa1b2') prepare() { cd ${_realname}-${pkgver} @@ -34,7 +32,6 @@ prepare() { patch -p1 -i ${srcdir}/0002-msys2-fix-linking-errors.patch patch -p1 -i ${srcdir}/0004-add-overrides.patch patch -p1 -i ${srcdir}/0005-unix-override-dir.patch - patch -p1 -i ${srcdir}/0006-plugin-libtool.patch WANT_AUTOMAKE=latest autoreconf -fiv } @@ -59,4 +56,7 @@ build() { package() { cd build-${MINGW_CHOST} make DESTDIR="${pkgdir}" install + + mv ${pkgdir}${MINGW_PREFIX}/lib/bin/*.dll ${pkgdir}${MINGW_PREFIX}/lib/gstreamer-1.0/ + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/bin } From 519d0c8a3d6d3f9f7722f87b4be5320f81dc1ca4 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 24 Jul 2015 14:47:37 +0300 Subject: [PATCH 1355/2060] crypto++: Fix building. Add cmake build system, add GIT package. Update FAIL_LIST --- FAIL_LIST.md | 4 - mingw-w64-crypto++-git/PKGBUILD | 60 ++ mingw-w64-crypto++-git/cryptopp-cmake.patch | 534 ++++++++++++++++++ .../cryptopp-cmake.patch.orig | 526 +++++++++++++++++ mingw-w64-crypto++-git/fix-test-linking.patch | 18 + mingw-w64-crypto++-git/libcrypto++.pc | 11 + mingw-w64-crypto++-git/missing-sources.patch | 28 + .../resolve-namespace-conflict.patch | 11 + mingw-w64-crypto++/PKGBUILD | 59 +- mingw-w64-crypto++/cryptopp-cmake.patch | 534 ++++++++++++++++++ mingw-w64-crypto++/cryptopp-cmake.patch.orig | 526 +++++++++++++++++ mingw-w64-crypto++/fix-test-linking.patch | 18 + mingw-w64-crypto++/libcrypto++.pc | 2 +- .../resolve-namespace-conflict.patch | 11 + 14 files changed, 2313 insertions(+), 29 deletions(-) create mode 100644 mingw-w64-crypto++-git/PKGBUILD create mode 100644 mingw-w64-crypto++-git/cryptopp-cmake.patch create mode 100644 mingw-w64-crypto++-git/cryptopp-cmake.patch.orig create mode 100644 mingw-w64-crypto++-git/fix-test-linking.patch create mode 100644 mingw-w64-crypto++-git/libcrypto++.pc create mode 100644 mingw-w64-crypto++-git/missing-sources.patch create mode 100644 mingw-w64-crypto++-git/resolve-namespace-conflict.patch create mode 100644 mingw-w64-crypto++/cryptopp-cmake.patch create mode 100644 mingw-w64-crypto++/cryptopp-cmake.patch.orig create mode 100644 mingw-w64-crypto++/fix-test-linking.patch create mode 100644 mingw-w64-crypto++/resolve-namespace-conflict.patch diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 9c2157401b..a06588461f 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -9,14 +9,10 @@ List of packages that currently fail to build - coq -- crypto++ - - freerdp-git - gprbuild-gpl -- gst-python - - gtkada - innoextract diff --git a/mingw-w64-crypto++-git/PKGBUILD b/mingw-w64-crypto++-git/PKGBUILD new file mode 100644 index 0000000000..dc2af68e51 --- /dev/null +++ b/mingw-w64-crypto++-git/PKGBUILD @@ -0,0 +1,60 @@ +# Maintainer: Alexey Pavlov + +_realname=crypto++ +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=r711.1160f41 +pkgrel=1 +pkgdesc="Crypto++ Library is a free C++ class library of cryptographic schemes." +arch=('any') +url="http://www.cryptopp.com/" +license=('Boost Software License 1.0') +options=('staticlibs' 'strip') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "git") +source=(${_realname}::"git+https://github.com/weidai11/cryptopp.git" + libcrypto++.pc + missing-sources.patch + cryptopp-cmake.patch + resolve-namespace-conflict.patch + fix-test-linking.patch) +md5sums=('SKIP' + 'fdf6ec125726e944269b13a6883abc1c' + 'b27bcb0cc2938f5af6a07d724ce42b62' + '88fc344f33a404dccfa9f74ca9f532eb' + '947648b79dc1194217eb0ef0423dd413' + '038003a889c79e024754bc6f08cdafff') + +pkgver() { + cd ${_realname} + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd ${_realname} + sed -i -e 's/^CXXFLAGS/#CXXFLAGS/' GNUmakefile + patch -p1 -i ${srcdir}/missing-sources.patch + patch -p1 -i ${srcdir}/cryptopp-cmake.patch + patch -p1 -i ${srcdir}/resolve-namespace-conflict.patch + patch -p1 -i ${srcdir}/fix-test-linking.patch +} + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + ../${_realname} + + make +} + +package() { + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install + + install -D -m644 ${srcdir}/${_realname}/License.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} diff --git a/mingw-w64-crypto++-git/cryptopp-cmake.patch b/mingw-w64-crypto++-git/cryptopp-cmake.patch new file mode 100644 index 0000000000..371c1b5b8f --- /dev/null +++ b/mingw-w64-crypto++-git/cryptopp-cmake.patch @@ -0,0 +1,534 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +new file mode 100644 +index 0000000..a0c6371 +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,510 @@ ++CMAKE_MINIMUM_REQUIRED(VERSION 2.6) ++ ++PROJECT(cryptopp) ++ ++set(CRYPTOPP_VERSION_MAJOR 5) ++set(CRYPTOPP_VERSION_MINOR 6) ++set(CRYPTOPP_VERSION_BUILD 2) ++set(CRYPTOPP_VERSION "${CRYPTOPP_VERSION_MAJOR}.${CRYPTOPP_VERSION_MINOR}.${CRYPTOPP_VERSION_BUILD}") ++ ++################################### ++# Global platform-specific settings ++################################### ++IF(MSVC) ++ ADD_DEFINITIONS(-DWIN32 -D_WINDOWS -D_CRT_SECURE_NO_WARNINGS -MP -D_SCL_SECURE_NO_WARNINGS -EHsc) ++ SET(CMAKE_CXX_FLAGS "-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS") ++ELSE() ++ ADD_DEFINITIONS(-Wall -Wno-unused-function -Wno-unused-variable -fvisibility=hidden -Wnon-virtual-dtor -Wreorder -Wstrict-null-sentinel -Wsign-promo) ++ IF(MINGW) ++ ADD_DEFINITIONS(-DWIN32 -D_WINDOWS) ++ ELSE() ++ ADD_DEFINITIONS(-fPIC) ++ ENDIF() ++ENDIF() ++ ++SET(CRYPTOPP_LDFLAGS "") ++ ++######################### ++# User Settings ++######################### ++IF(CRYPTOPP_ADDED_DEFINITIONS) ++ ADD_DEFINITIONS(${CRYPTOPP_ADDED_DEFINITIONS}) ++ENDIF() ++ ++IF(CRYPTOPP_ADDED_LDFLAGS) ++ SET(CRYPTOPP_LDFLAGS ${CRYPTOPP_LDFLAGS} ${CRYPTOPP_ADDED_LDFLAGS}) ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_LIBRARY_TYPE) ++ SET(CRYPTOPP_LIBRARY_TYPE "BOTH" CACHE STRING "Type of library to build, STATIC, SHARED or BOTH.") ++ELSE() ++ SET(CRYPTOPP_LIBRARY_TYPE ${CRYPTOPP_LIBRARY_TYPE} CACHE STRING "Type of library to build, STATIC or SHARED.") ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_RUNTIME_TYPE) ++ SET(CRYPTOPP_RUNTIME_TYPE "STATIC" CACHE STRING "Type of runtime to use, STATIC or SHARED.") ++ELSE() ++ SET(CRYPTOPP_RUNTIME_TYPE ${CRYPTOPP_RUNTIME_TYPE} CACHE STRING "Type of runtime to use, STATIC or SHARED.") ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_BUILD_TESTS) ++ SET(CRYPTOPP_BUILD_TESTS TRUE CACHE BOOL "If enabled, builds tests.") ++ELSE() ++ SET(CRYPTOPP_BUILD_TESTS ${CRYPTOPP_BUILD_TESTS} CACHE BOOL "If enabled, builds tests.") ++ENDIF() ++ ++######################### ++# Project-wide Settings ++######################### ++SET(CRYPTOPP_COMPILE_DEFS_OPT COMPILE_DEFINITIONS_DEBUG CRYPTOPP_DEBUG_BUILD) ++SET(EXEC_PERMS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) ++ ++STRING(TOUPPER ${CRYPTOPP_LIBRARY_TYPE} CRYPTOPP_LIBRARY_TYPE_UPPER) ++STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "STATIC" CRYPTOPP_STATIC) ++IF(NOT CRYPTOPP_STATIC) ++ STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "BOTH" CRYPTOPP_STATIC) ++ENDIF() ++STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "SHARED" CRYPTOPP_SHARED) ++IF(NOT CRYPTOPP_SHARED) ++ STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "BOTH" CRYPTOPP_SHARED) ++ENDIF() ++ ++STRING(TOUPPER ${CRYPTOPP_RUNTIME_TYPE} CRYPTOPP_RUNTIME_TYPE_UPPER) ++STRING(COMPARE EQUAL ${CRYPTOPP_RUNTIME_TYPE_UPPER} "STATIC" CRYPTOPP_STATIC_RUNTIME) ++ ++IF(CRYPTOPP_STATIC_RUNTIME) ++ IF(WIN32) ++ SET(CompilerFlags ++ CMAKE_CXX_FLAGS ++ CMAKE_CXX_FLAGS_DEBUG ++ CMAKE_CXX_FLAGS_RELEASE ++ CMAKE_C_FLAGS ++ CMAKE_C_FLAGS_DEBUG ++ CMAKE_C_FLAGS_RELEASE ++ ) ++ FOREACH(CompilerFlag ${CompilerFlags}) ++ STRING(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}") ++ ENDFOREACH() ++ ENDIF() ++ENDIF() ++ ++# -------------------------------------------------------------------------- ++# Install directories ++ ++string(TOLOWER ${PROJECT_NAME} projectname) ++set(CRYPTOPP_INSTALL_SUBDIR "${projectname}-${CRYPTOPP_VERSION_MAJOR}.${CRYPTOPP_VERSION_MINOR}") ++ ++if(NOT CRYPTOPP_INSTALL_BIN_DIR) ++ set(CRYPTOPP_INSTALL_BIN_DIR "bin") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_INCLUDE_DIR) ++ set(CRYPTOPP_INSTALL_INCLUDE_DIR "include/${projectname}") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_LIB_DIR) ++ set(CRYPTOPP_INSTALL_LIB_DIR "lib") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_SHARE_DIR) ++ set(CRYPTOPP_INSTALL_SHARE_DIR "share") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_DATA_DIR) ++ set(CRYPTOPP_INSTALL_DATA_DIR "${CRYPTOPP_INSTALL_SHARE_DIR}/${CRYPTOPP_INSTALL_SUBDIR}") ++endif() ++ ++######################### ++# Crypto++ Library ++######################### ++ ++CONFIGURE_FILE(adhoc.cpp.proto ${CMAKE_CURRENT_SOURCE_DIR}/adhoc.cpp) ++ ++SET(CRYPTOPP_SRCS_FIPS ++ algebra.cpp ++ algparam.cpp ++ asn.cpp ++ authenc.cpp ++ basecode.cpp ++ cbcmac.cpp ++ ccm.cpp ++ channels.cpp ++ cmac.cpp ++ cpu.cpp ++ cryptlib.cpp ++ des.cpp ++ dessp.cpp ++ dh.cpp ++ dll.cpp ++ dsa.cpp ++ ec2n.cpp ++ eccrypto.cpp ++ ecp.cpp ++ emsa2.cpp ++ eprecomp.cpp ++ files.cpp ++ filters.cpp ++ fips140.cpp ++ gcm.cpp ++ gf2n.cpp ++ gfpcrypt.cpp ++ hex.cpp ++ hmac.cpp ++ hrtimer.cpp ++ integer.cpp ++ iterhash.cpp ++ misc.cpp ++ modes.cpp ++ modexppc.cpp ++ mqueue.cpp ++ nbtheory.cpp ++ oaep.cpp ++ osrng.cpp ++ pch.cpp ++ pkcspad.cpp ++ pssr.cpp ++ pubkey.cpp ++ queue.cpp ++ randpool.cpp ++ rdtables.cpp ++ rijndael.cpp ++ rng.cpp ++ rsa.cpp ++ rw.cpp ++ sha.cpp ++ simple.cpp ++ skipjack.cpp ++ strciphr.cpp ++ trdlocal.cpp ++) ++ ++SET(CRYPTOPP_SRCS ++ 3way.cpp ++ adhoc.cpp.proto ++ adler32.cpp ++ arc4.cpp ++ base32.cpp ++ base64.cpp ++ bfinit.cpp ++ blowfish.cpp ++ blumshub.cpp ++ camellia.cpp ++ cast.cpp ++ casts.cpp ++ crc.cpp ++ default.cpp ++ dh2.cpp ++ eax.cpp ++ elgamal.cpp ++ esign.cpp ++ gf256.cpp ++ gf2_32.cpp ++ gost.cpp ++ gzip.cpp ++ ida.cpp ++ idea.cpp ++ luc.cpp ++ mars.cpp ++ marss.cpp ++ md2.cpp ++ md4.cpp ++ md5.cpp ++ mqv.cpp ++ network.cpp ++ panama.cpp ++ polynomi.cpp ++ rabin.cpp ++ rc2.cpp ++ rc5.cpp ++ rc6.cpp ++ ripemd.cpp ++ safer.cpp ++ salsa.cpp ++ seal.cpp ++ seed.cpp ++ serpent.cpp ++ sha3.cpp ++ shacal2.cpp ++ shark.cpp ++ sharkbox.cpp ++ socketft.cpp ++ sosemanuk.cpp ++ square.cpp ++ squaretb.cpp ++ tea.cpp ++ tftables.cpp ++ tiger.cpp ++ tigertab.cpp ++ ttmac.cpp ++ twofish.cpp ++ vmac.cpp ++ wait.cpp ++ wake.cpp ++ whrlpool.cpp ++ winpipes.cpp ++ xtr.cpp ++ xtrcrypt.cpp ++ zdeflate.cpp ++ zinflate.cpp ++ zlib.cpp ++) ++SET(CRYPTOPP_HDRS ++ 3way.h ++ adler32.h ++ aes.h ++ algebra.h ++ algparam.h ++ arc4.h ++ argnames.h ++ asn.h ++ authenc.h ++ base32.h ++ base64.h ++ basecode.h ++ blowfish.h ++ blumshub.h ++ camellia.h ++ cast.h ++ cbcmac.h ++ ccm.h ++ channels.h ++ cmac.h ++ config.h ++ cpu.h ++ crc.h ++ cryptlib.h ++ default.h ++ des.h ++ dh.h ++ dh2.h ++ dmac.h ++ dsa.h ++ eax.h ++ ec2n.h ++ eccrypto.h ++ ecp.h ++ elgamal.h ++ emsa2.h ++ eprecomp.h ++ esign.h ++ files.h ++ filters.h ++ fips140.h ++ fltrimpl.h ++ gcm.h ++ gf256.h ++ gf2_32.h ++ gf2n.h ++ gfpcrypt.h ++ gost.h ++ gzip.h ++ hex.h ++ hmac.h ++ hrtimer.h ++ ida.h ++ idea.h ++ integer.h ++ iterhash.h ++ lubyrack.h ++ luc.h ++ mars.h ++ md2.h ++ md4.h ++ md5.h ++ mdc.h ++ misc.h ++ modarith.h ++ modes.h ++ modexppc.h ++ mqueue.h ++ mqv.h ++ nbtheory.h ++ network.h ++ nr.h ++ oaep.h ++ oids.h ++ osrng.h ++ panama.h ++ pch.h ++ pkcspad.h ++ polynomi.h ++ pssr.h ++ pubkey.h ++ pwdbased.h ++ queue.h ++ rabin.h ++ randpool.h ++ rc2.h ++ rc5.h ++ rc6.h ++ rijndael.h ++ ripemd.h ++ rng.h ++ rsa.h ++ rw.h ++ safer.h ++ salsa.h ++ seal.h ++ secblock.h ++ seckey.h ++ seed.h ++ serpent.h ++ sha.h ++ sha3.h ++ shacal2.h ++ shark.h ++ simple.h ++ skipjack.h ++ smartptr.h ++ socketft.h ++ sosemanuk.h ++ square.h ++ stdcpp.h ++ strciphr.h ++ tea.h ++ tiger.h ++ trdlocal.h ++ trunhash.h ++ ttmac.h ++ twofish.h ++ vmac.h ++ wait.h ++ wake.h ++ whrlpool.h ++ winpipes.h ++ words.h ++ xtr.h ++ xtrcrypt.h ++ zdeflate.h ++ zinflate.h ++ zlib.h ++) ++ ++SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ${CRYPTOPP_SRCS_FIPS}) ++ ++IF(MSVC) ++ SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ${CRYPTOPP_HDRS} cryptopp.rc) ++ IF(CMAKE_CL_64) ++ ENABLE_LANGUAGE(ASM_MASM) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj ++ MAIN_DEPENDENCY x64dll.asm ++ COMMAND ${CMAKE_ASM_MASM_COMPILER} /Fo ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj /c ${CMAKE_CURRENT_SOURCE_DIR}/x64dll.asm ++ ) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj ++ MAIN_DEPENDENCY x64masm.asm ++ COMMAND ${CMAKE_ASM_MASM_COMPILER} /Fo ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj /c ${CMAKE_CURRENT_SOURCE_DIR}/x64masm.asm ++ ) ++ ENDIF() ++ENDIF() ++ ++######################### ++# Crypto++ Static library ++######################### ++IF(CRYPTOPP_STATIC) ++ #add_definitions(-DCRYPTOPP_IMPORTS) ++ IF(CMAKE_CL_64) ++ SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ++ ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj ++ ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj ++ ) ++ ENDIF() ++ ADD_LIBRARY(cryptlib STATIC ++ ${CRYPTOPP_SRCS} ++ ) ++ SET_TARGET_PROPERTIES(cryptlib PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT} COMPILE_DEFINITIONS CRYPTOPP_LIBRARY_BUILD) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptlib PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ SET_TARGET_PROPERTIES(cryptlib PROPERTIES OUTPUT_NAME "cryptopp") ++ TARGET_LINK_LIBRARIES(cryptlib) ++ ++ INSTALL( ++ TARGETS cryptlib ++ DESTINATION ${CRYPTOPP_INSTALL_LIB_DIR} ++ ) ++ENDIF() ++ ++######################### ++# Crypto++ Shared library ++######################### ++IF(CRYPTOPP_SHARED) ++ add_definitions(-DCRYPTOPP_EXPORTS) ++ ADD_LIBRARY(cryptopp SHARED ++ ${CRYPTOPP_SRCS_FIPS} ++ ) ++ SET_TARGET_PROPERTIES(cryptopp PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT} COMPILE_DEFINITIONS CRYPTOPP_LIBRARY_BUILD) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptopp PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ TARGET_LINK_LIBRARIES(cryptopp) ++ ++ INSTALL( ++ TARGETS cryptopp ++ PERMISSIONS ${EXEC_PERMS} ++ RUNTIME DESTINATION ${CRYPTOPP_INSTALL_BIN_DIR} ++ LIBRARY DESTINATION ${CRYPTOPP_INSTALL_LIB_DIR} ++ ARCHIVE DESTINATION ${CRYPTOPP_INSTALL_LIB_DIR} ++ ) ++ INSTALL(FILES ${CRYPTOPP_HDRS} ++ DESTINATION ${CRYPTOPP_INSTALL_INCLUDE_DIR} ++ ) ++ENDIF() ++ ++######################### ++# Crypto++ Test ++######################### ++IF(CRYPTOPP_BUILD_TESTS AND CRYPTOPP_STATIC) ++ SET(TEST_SRCS ++ adhoc.cpp ++ bench.cpp ++ bench2.cpp ++ datatest.cpp ++ dlltest.cpp ++ fipsalgt.cpp ++ regtest.cpp ++ test.cpp ++ validat1.cpp ++ validat2.cpp ++ validat3.cpp ++ fipstest.cpp ++ ) ++ IF(WIN32) ++ SET(TEST_SRCS ${TEST_SRCS} ++ bench.h ++ factory.h ++ validate.h ++ ) ++ ENDIF() ++ ADD_EXECUTABLE(cryptest ${TEST_SRCS}) ++ IF(WIN32) ++ IF(MSVC) ++ TARGET_LINK_LIBRARIES(cryptest ws2_32.lib cryptlib) ++ ELSE() ++ TARGET_LINK_LIBRARIES(cryptest cryptlib ws2_32) ++ ENDIF() ++ ENDIF() ++ FILE(COPY TestData DESTINATION . FILES_MATCHING PATTERN TestData/*) ++ SET_TARGET_PROPERTIES(cryptest PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT}) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptest PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ENDIF() ++ ++#----------------------------------------------------------------------------- ++# pkgconfig support ++# enabled by default on Unix, disabled by default on other platforms ++if(UNIX OR MINGW) ++ option(BUILD_PKGCONFIG_FILES "Build and install pkg-config files" ON) ++else() ++ option(BUILD_PKGCONFIG_FILES "Build and install pkg-config files" OFF) ++endif() ++if(BUILD_PKGCONFIG_FILES) ++ # install in lib and not share (see multi-arch note above) ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libcrypto++.pc.cmake.in ++ ${CMAKE_CURRENT_BINARY_DIR}/libcrypto++.pc @ONLY) ++ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libcrypto++.pc DESTINATION ++ ${CRYPTOPP_INSTALL_LIB_DIR}/pkgconfig ) ++endif() ++ +diff --git a/libcrypto++.pc.cmake.in b/libcrypto++.pc.cmake.in +new file mode 100644 +index 0000000..a0c6371 +--- /dev/null ++++ b/libcrypto++.pc.cmake.in +@@ -0,0 +1,12 @@ ++prefix=@CMAKE_INSTALL_PREFIX@ ++bindir=${prefix}/@CRYPTOPP_INSTALL_BIN_DIR@ ++libdir=${prefix}/@CRYPTOPP_INSTALL_LIB_DIR@ ++includedir=${prefix}/@CRYPTOPP_INSTALL_INCLUDE_DIR@ ++ ++Name: libcrypto++ ++Description: Class library of cryptographic schemes ++URL: http://www.cryptopp.com/ ++Version: @CRYPTOPP_VERSION@ ++Libs: -L${libdir} -lcryptopp ++Cflags: -I${includedir} ++ diff --git a/mingw-w64-crypto++-git/cryptopp-cmake.patch.orig b/mingw-w64-crypto++-git/cryptopp-cmake.patch.orig new file mode 100644 index 0000000000..bf1093681b --- /dev/null +++ b/mingw-w64-crypto++-git/cryptopp-cmake.patch.orig @@ -0,0 +1,526 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +new file mode 100644 +index 0000000..a0c6371 +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,502 @@ ++CMAKE_MINIMUM_REQUIRED(VERSION 2.6) ++ ++PROJECT(cryptopp) ++ ++set(CRYPTOPP_VERSION_MAJOR 5) ++set(CRYPTOPP_VERSION_MINOR 6) ++set(CRYPTOPP_VERSION_BUILD 2) ++set(CRYPTOPP_VERSION "${CRYPTOPP_VERSION_MAJOR}.${CRYPTOPP_VERSION_MINOR}.${CRYPTOPP_VERSION_BUILD}") ++ ++################################### ++# Global platform-specific settings ++################################### ++IF(MSVC) ++ ADD_DEFINITIONS(-DWIN32 -D_WINDOWS -D_CRT_SECURE_NO_WARNINGS -MP -D_SCL_SECURE_NO_WARNINGS -EHsc) ++ SET(CMAKE_CXX_FLAGS "-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS") ++ELSE() ++ ADD_DEFINITIONS(-Wall -Wno-unused-function -Wno-unused-variable -fvisibility=hidden -Wnon-virtual-dtor -Wreorder -Wstrict-null-sentinel -Wsign-promo) ++ IF(MINGW) ++ ADD_DEFINITIONS(-DWIN32 -D_WINDOWS) ++ ELSE() ++ ADD_DEFINITIONS(-fPIC) ++ ENDIF() ++ENDIF() ++ ++SET(CRYPTOPP_LDFLAGS "") ++ ++######################### ++# User Settings ++######################### ++IF(CRYPTOPP_ADDED_DEFINITIONS) ++ ADD_DEFINITIONS(${CRYPTOPP_ADDED_DEFINITIONS}) ++ENDIF() ++ ++IF(CRYPTOPP_ADDED_LDFLAGS) ++ SET(CRYPTOPP_LDFLAGS ${CRYPTOPP_LDFLAGS} ${CRYPTOPP_ADDED_LDFLAGS}) ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_LIBRARY_TYPE) ++ SET(CRYPTOPP_LIBRARY_TYPE "BOTH" CACHE STRING "Type of library to build, STATIC, SHARED or BOTH.") ++ELSE() ++ SET(CRYPTOPP_LIBRARY_TYPE ${CRYPTOPP_LIBRARY_TYPE} CACHE STRING "Type of library to build, STATIC or SHARED.") ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_RUNTIME_TYPE) ++ SET(CRYPTOPP_RUNTIME_TYPE "STATIC" CACHE STRING "Type of runtime to use, STATIC or SHARED.") ++ELSE() ++ SET(CRYPTOPP_RUNTIME_TYPE ${CRYPTOPP_RUNTIME_TYPE} CACHE STRING "Type of runtime to use, STATIC or SHARED.") ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_BUILD_TESTS) ++ SET(CRYPTOPP_BUILD_TESTS TRUE CACHE BOOL "If enabled, builds tests.") ++ELSE() ++ SET(CRYPTOPP_BUILD_TESTS ${CRYPTOPP_BUILD_TESTS} CACHE BOOL "If enabled, builds tests.") ++ENDIF() ++ ++######################### ++# Project-wide Settings ++######################### ++SET(CRYPTOPP_COMPILE_DEFS_OPT COMPILE_DEFINITIONS_DEBUG CRYPTOPP_DEBUG_BUILD) ++SET(EXEC_PERMS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) ++ ++STRING(TOUPPER ${CRYPTOPP_LIBRARY_TYPE} CRYPTOPP_LIBRARY_TYPE_UPPER) ++STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "STATIC" CRYPTOPP_STATIC) ++IF(NOT CRYPTOPP_STATIC) ++ STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "BOTH" CRYPTOPP_STATIC) ++ENDIF() ++STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "SHARED" CRYPTOPP_SHARED) ++IF(NOT CRYPTOPP_SHARED) ++ STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "BOTH" CRYPTOPP_SHARED) ++ENDIF() ++ ++STRING(TOUPPER ${CRYPTOPP_RUNTIME_TYPE} CRYPTOPP_RUNTIME_TYPE_UPPER) ++STRING(COMPARE EQUAL ${CRYPTOPP_RUNTIME_TYPE_UPPER} "STATIC" CRYPTOPP_STATIC_RUNTIME) ++ ++IF(CRYPTOPP_STATIC_RUNTIME) ++ IF(WIN32) ++ SET(CompilerFlags ++ CMAKE_CXX_FLAGS ++ CMAKE_CXX_FLAGS_DEBUG ++ CMAKE_CXX_FLAGS_RELEASE ++ CMAKE_C_FLAGS ++ CMAKE_C_FLAGS_DEBUG ++ CMAKE_C_FLAGS_RELEASE ++ ) ++ FOREACH(CompilerFlag ${CompilerFlags}) ++ STRING(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}") ++ ENDFOREACH() ++ ENDIF() ++ENDIF() ++ ++# -------------------------------------------------------------------------- ++# Install directories ++ ++string(TOLOWER ${PROJECT_NAME} projectname) ++set(CRYPTOPP_INSTALL_SUBDIR "${projectname}-${CRYPTOPP_VERSION_MAJOR}.${CRYPTOPP_VERSION_MINOR}") ++ ++if(NOT CRYPTOPP_INSTALL_BIN_DIR) ++ set(CRYPTOPP_INSTALL_BIN_DIR "bin") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_INCLUDE_DIR) ++ set(CRYPTOPP_INSTALL_INCLUDE_DIR "include/${projectname}") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_LIB_DIR) ++ set(CRYPTOPP_INSTALL_LIB_DIR "lib") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_SHARE_DIR) ++ set(CRYPTOPP_INSTALL_SHARE_DIR "share") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_DATA_DIR) ++ set(CRYPTOPP_INSTALL_DATA_DIR "${CRYPTOPP_INSTALL_SHARE_DIR}/${CRYPTOPP_INSTALL_SUBDIR}") ++endif() ++ ++######################### ++# Crypto++ Library ++######################### ++ ++CONFIGURE_FILE(adhoc.cpp.proto ${CMAKE_CURRENT_SOURCE_DIR}/adhoc.cpp) ++ ++SET(CRYPTOPP_SRCS_FIPS ++ algebra.cpp ++ algparam.cpp ++ asn.cpp ++ authenc.cpp ++ basecode.cpp ++ cbcmac.cpp ++ ccm.cpp ++ channels.cpp ++ cmac.cpp ++ cpu.cpp ++ cryptlib.cpp ++ des.cpp ++ dessp.cpp ++ dh.cpp ++ dll.cpp ++ dsa.cpp ++ ec2n.cpp ++ eccrypto.cpp ++ ecp.cpp ++ emsa2.cpp ++ eprecomp.cpp ++ files.cpp ++ filters.cpp ++ fips140.cpp ++ gcm.cpp ++ gf2n.cpp ++ gfpcrypt.cpp ++ hex.cpp ++ hmac.cpp ++ hrtimer.cpp ++ integer.cpp ++ iterhash.cpp ++ misc.cpp ++ modes.cpp ++ modexppc.cpp ++ mqueue.cpp ++ nbtheory.cpp ++ oaep.cpp ++ osrng.cpp ++ pch.cpp ++ pkcspad.cpp ++ pssr.cpp ++ pubkey.cpp ++ queue.cpp ++ randpool.cpp ++ rdtables.cpp ++ rijndael.cpp ++ rng.cpp ++ rsa.cpp ++ rw.cpp ++ sha.cpp ++ simple.cpp ++ skipjack.cpp ++ strciphr.cpp ++ trdlocal.cpp ++) ++ ++SET(CRYPTOPP_SRCS ++ 3way.cpp ++ adhoc.cpp.proto ++ adler32.cpp ++ arc4.cpp ++ base32.cpp ++ base64.cpp ++ bfinit.cpp ++ blowfish.cpp ++ blumshub.cpp ++ camellia.cpp ++ cast.cpp ++ casts.cpp ++ crc.cpp ++ default.cpp ++ dh2.cpp ++ eax.cpp ++ elgamal.cpp ++ esign.cpp ++ gf256.cpp ++ gf2_32.cpp ++ gost.cpp ++ gzip.cpp ++ ida.cpp ++ idea.cpp ++ luc.cpp ++ mars.cpp ++ marss.cpp ++ md2.cpp ++ md4.cpp ++ md5.cpp ++ mqv.cpp ++ network.cpp ++ panama.cpp ++ polynomi.cpp ++ rabin.cpp ++ rc2.cpp ++ rc5.cpp ++ rc6.cpp ++ ripemd.cpp ++ safer.cpp ++ salsa.cpp ++ seal.cpp ++ seed.cpp ++ serpent.cpp ++ sha3.cpp ++ shacal2.cpp ++ shark.cpp ++ sharkbox.cpp ++ socketft.cpp ++ sosemanuk.cpp ++ square.cpp ++ squaretb.cpp ++ tea.cpp ++ tftables.cpp ++ tiger.cpp ++ tigertab.cpp ++ ttmac.cpp ++ twofish.cpp ++ vmac.cpp ++ wait.cpp ++ wake.cpp ++ whrlpool.cpp ++ winpipes.cpp ++ xtr.cpp ++ xtrcrypt.cpp ++ zdeflate.cpp ++ zinflate.cpp ++ zlib.cpp ++) ++SET(CRYPTOPP_HDRS ++ 3way.h ++ adler32.h ++ aes.h ++ algebra.h ++ algparam.h ++ arc4.h ++ argnames.h ++ asn.h ++ authenc.h ++ base32.h ++ base64.h ++ basecode.h ++ blowfish.h ++ blumshub.h ++ camellia.h ++ cast.h ++ cbcmac.h ++ ccm.h ++ channels.h ++ cmac.h ++ config.h ++ cpu.h ++ crc.h ++ cryptlib.h ++ default.h ++ des.h ++ dh.h ++ dh2.h ++ dmac.h ++ dsa.h ++ eax.h ++ ec2n.h ++ eccrypto.h ++ ecp.h ++ elgamal.h ++ emsa2.h ++ eprecomp.h ++ esign.h ++ files.h ++ filters.h ++ fips140.h ++ fltrimpl.h ++ gcm.h ++ gf256.h ++ gf2_32.h ++ gf2n.h ++ gfpcrypt.h ++ gost.h ++ gzip.h ++ hex.h ++ hmac.h ++ hrtimer.h ++ ida.h ++ idea.h ++ integer.h ++ iterhash.h ++ lubyrack.h ++ luc.h ++ mars.h ++ md2.h ++ md4.h ++ md5.h ++ mdc.h ++ misc.h ++ modarith.h ++ modes.h ++ modexppc.h ++ mqueue.h ++ mqv.h ++ nbtheory.h ++ network.h ++ nr.h ++ oaep.h ++ oids.h ++ osrng.h ++ panama.h ++ pch.h ++ pkcspad.h ++ polynomi.h ++ pssr.h ++ pubkey.h ++ pwdbased.h ++ queue.h ++ rabin.h ++ randpool.h ++ rc2.h ++ rc5.h ++ rc6.h ++ rijndael.h ++ ripemd.h ++ rng.h ++ rsa.h ++ rw.h ++ safer.h ++ salsa.h ++ seal.h ++ secblock.h ++ seckey.h ++ seed.h ++ serpent.h ++ sha.h ++ sha3.h ++ shacal2.h ++ shark.h ++ simple.h ++ skipjack.h ++ smartptr.h ++ socketft.h ++ sosemanuk.h ++ square.h ++ stdcpp.h ++ strciphr.h ++ tea.h ++ tiger.h ++ trdlocal.h ++ trunhash.h ++ ttmac.h ++ twofish.h ++ vmac.h ++ wait.h ++ wake.h ++ whrlpool.h ++ winpipes.h ++ words.h ++ xtr.h ++ xtrcrypt.h ++ zdeflate.h ++ zinflate.h ++ zlib.h ++) ++ ++SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ${CRYPTOPP_SRCS_FIPS}) ++ ++IF(MSVC) ++ SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ${CRYPTOPP_HDRS} cryptopp.rc) ++ IF(CMAKE_CL_64) ++ ENABLE_LANGUAGE(ASM_MASM) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj ++ MAIN_DEPENDENCY x64dll.asm ++ COMMAND ${CMAKE_ASM_MASM_COMPILER} /Fo ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj /c ${CMAKE_CURRENT_SOURCE_DIR}/x64dll.asm ++ ) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj ++ MAIN_DEPENDENCY x64masm.asm ++ COMMAND ${CMAKE_ASM_MASM_COMPILER} /Fo ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj /c ${CMAKE_CURRENT_SOURCE_DIR}/x64masm.asm ++ ) ++ ENDIF() ++ENDIF() ++ ++######################### ++# Crypto++ Static library ++######################### ++IF(CRYPTOPP_STATIC) ++ IF(CMAKE_CL_64) ++ SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ++ ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj ++ ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj ++ ) ++ ENDIF() ++ ADD_LIBRARY(cryptlib STATIC ++ ${CRYPTOPP_SRCS} ++ ) ++ SET_TARGET_PROPERTIES(cryptlib PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT} COMPILE_DEFINITIONS CRYPTOPP_LIBRARY_BUILD) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptlib PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ TARGET_LINK_LIBRARIES(cryptlib) ++ENDIF() ++ ++######################### ++# Crypto++ Shared library ++######################### ++IF(CRYPTOPP_SHARED) ++ ADD_LIBRARY(cryptopp SHARED ++ ${CRYPTOPP_SRCS_FIPS} ++ ) ++ SET_TARGET_PROPERTIES(cryptopp PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT} COMPILE_DEFINITIONS CRYPTOPP_LIBRARY_BUILD) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptopp PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ TARGET_LINK_LIBRARIES(cryptopp) ++ ++ INSTALL( ++ TARGETS cryptopp ++ PERMISSIONS ${EXEC_PERMS} ++ RUNTIME DESTINATION ${CRYPTOPP_INSTALL_BIN_DIR} ++ LIBRARY DESTINATION ${CRYPTOPP_INSTALL_LIB_DIR} ++ ARCHIVE DESTINATION ${CRYPTOPP_INSTALL_LIB_DIR} ++ ) ++ INSTALL(FILES ${CRYPTOPP_HDRS} ++ DESTINATION ${CRYPTOPP_INSTALL_INCLUDE_DIR} ++ ) ++ENDIF() ++ ++######################### ++# Crypto++ Test ++######################### ++IF(CRYPTOPP_BUILD_TESTS AND CRYPTOPP_STATIC) ++ SET(TEST_SRCS ++ adhoc.cpp ++ bench.cpp ++ bench2.cpp ++ datatest.cpp ++ dlltest.cpp ++ fipsalgt.cpp ++ regtest.cpp ++ test.cpp ++ validat1.cpp ++ validat2.cpp ++ validat3.cpp ++ fipstest.cpp ++ ) ++ IF(WIN32) ++ SET(TEST_SRCS ${TEST_SRCS} ++ bench.h ++ factory.h ++ validate.h ++ ) ++ ENDIF() ++ ADD_EXECUTABLE(cryptest ${TEST_SRCS}) ++ IF(WIN32) ++ IF(MSVC) ++ TARGET_LINK_LIBRARIES(cryptest ws2_32.lib cryptlib) ++ ELSE() ++ TARGET_LINK_LIBRARIES(cryptest cryptlib ws2_32) ++ ENDIF() ++ ENDIF() ++ FILE(COPY TestData DESTINATION . FILES_MATCHING PATTERN TestData/*) ++ SET_TARGET_PROPERTIES(cryptest PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT}) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptest PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ENDIF() ++ ++#----------------------------------------------------------------------------- ++# pkgconfig support ++# enabled by default on Unix, disabled by default on other platforms ++if(UNIX OR MINGW) ++ option(BUILD_PKGCONFIG_FILES "Build and install pkg-config files" ON) ++else() ++ option(BUILD_PKGCONFIG_FILES "Build and install pkg-config files" OFF) ++endif() ++if(BUILD_PKGCONFIG_FILES) ++ # install in lib and not share (see multi-arch note above) ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libcrypto++.pc.cmake.in ++ ${CMAKE_CURRENT_BINARY_DIR}/libcrypto++.pc @ONLY) ++ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libcrypto++.pc DESTINATION ++ ${CRYPTOPP_INSTALL_LIB_DIR}/pkgconfig ) ++endif() ++ +diff --git a/libcrypto++.pc.cmake.in b/libcrypto++.pc.cmake.in +new file mode 100644 +index 0000000..a0c6371 +--- /dev/null ++++ b/libcrypto++.pc.cmake.in +@@ -0,0 +1,12 @@ ++prefix=@CMAKE_INSTALL_PREFIX@ ++bindir=${prefix}/@CRYPTOPP_INSTALL_BIN_DIR@ ++libdir=${prefix}/@CRYPTOPP_INSTALL_LIB_DIR@ ++includedir=${prefix}/@CRYPTOPP_INSTALL_INCLUDE_DIR@ ++ ++Name: libcrypto++ ++Description: Class library of cryptographic schemes ++URL: http://www.cryptopp.com/ ++Version: @CRYPTOPP_VERSION@ ++Libs: -L${libdir} -lcryptopp ++Cflags: -I${includedir} ++ diff --git a/mingw-w64-crypto++-git/fix-test-linking.patch b/mingw-w64-crypto++-git/fix-test-linking.patch new file mode 100644 index 0000000000..d854978efc --- /dev/null +++ b/mingw-w64-crypto++-git/fix-test-linking.patch @@ -0,0 +1,18 @@ +--- a/winpipes.h 2015-07-24 12:17:47.681944900 +0300 ++++ b/winpipes.h 2015-07-24 12:17:58.280460900 +0300 +@@ -116,7 +116,6 @@ + NetworkSource::GetWaitObjects; + + private: +- HANDLE GetHandle() const {return WindowsHandle::GetHandle();} + NetworkReceiver & AccessReceiver() {return *this;} + }; + +@@ -131,7 +130,6 @@ + NetworkSink::GetWaitObjects; + + private: +- HANDLE GetHandle() const {return WindowsHandle::GetHandle();} + NetworkSender & AccessSender() {return *this;} + }; + diff --git a/mingw-w64-crypto++-git/libcrypto++.pc b/mingw-w64-crypto++-git/libcrypto++.pc new file mode 100644 index 0000000000..8ed4b6d775 --- /dev/null +++ b/mingw-w64-crypto++-git/libcrypto++.pc @@ -0,0 +1,11 @@ +# Written by Alexander Rødseth + +prefix=/usr +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: libcrypto++ +Description: Class library of cryptographic schemes +Version: 5.6.2 +Libs: -L${libdir} -lcryptopp +Cflags: -I${includedir} \ No newline at end of file diff --git a/mingw-w64-crypto++-git/missing-sources.patch b/mingw-w64-crypto++-git/missing-sources.patch new file mode 100644 index 0000000000..88d6f4f22b --- /dev/null +++ b/mingw-w64-crypto++-git/missing-sources.patch @@ -0,0 +1,28 @@ +--- src/GNUmakefile.orig 2014-07-23 23:40:41.007000000 +0400 ++++ src/GNUmakefile 2014-07-23 23:41:05.280600000 +0400 +@@ -131,7 +131,7 @@ + TESTOBJS = bench.o bench2.o test.o validat1.o validat2.o validat3.o adhoc.o datatest.o regtest.o fipsalgt.o dlltest.o + LIBOBJS = $(filter-out $(TESTOBJS),$(OBJS)) + +-DLLSRCS = algebra.cpp algparam.cpp asn.cpp basecode.cpp cbcmac.cpp channels.cpp cryptlib.cpp des.cpp dessp.cpp dh.cpp dll.cpp dsa.cpp ec2n.cpp eccrypto.cpp ecp.cpp eprecomp.cpp files.cpp filters.cpp fips140.cpp fipstest.cpp gf2n.cpp gfpcrypt.cpp hex.cpp hmac.cpp integer.cpp iterhash.cpp misc.cpp modes.cpp modexppc.cpp mqueue.cpp nbtheory.cpp oaep.cpp osrng.cpp pch.cpp pkcspad.cpp pubkey.cpp queue.cpp randpool.cpp rdtables.cpp rijndael.cpp rng.cpp rsa.cpp sha.cpp simple.cpp skipjack.cpp strciphr.cpp trdlocal.cpp ++DLLSRCS = algebra.cpp algparam.cpp asn.cpp basecode.cpp cbcmac.cpp channels.cpp cpu.cpp cryptlib.cpp des.cpp dessp.cpp dh.cpp dll.cpp dsa.cpp ec2n.cpp eccrypto.cpp ecp.cpp emsa2.cpp eprecomp.cpp files.cpp filters.cpp fips140.cpp fipstest.cpp gf2n.cpp gfpcrypt.cpp hex.cpp hmac.cpp hrtimer.cpp integer.cpp iterhash.cpp misc.cpp modes.cpp modexppc.cpp mqueue.cpp nbtheory.cpp oaep.cpp osrng.cpp pch.cpp pkcspad.cpp pssr.cpp pubkey.cpp queue.cpp randpool.cpp rdtables.cpp rijndael.cpp rng.cpp rsa.cpp sha.cpp simple.cpp skipjack.cpp strciphr.cpp trdlocal.cpp + DLLOBJS = $(DLLSRCS:.cpp=.export.o) + LIBIMPORTOBJS = $(LIBOBJS:.o=.import.o) + TESTIMPORTOBJS = $(TESTOBJS:.o=.import.o) +--- /dev/null 2014-07-23 23:52:53.000000000 +0400 ++++ src/modexppc.cpp 2014-07-23 20:41:34.132400000 +0400 +@@ -0,0 +1,14 @@ ++// modexppc.cpp - written and placed in the public domain by Wei Dai ++ ++#include "pch.h" ++ ++#ifndef CRYPTOPP_IMPORTS ++ ++#include "modexppc.h" ++#include "asn.h" ++NAMESPACE_BEGIN(CryptoPP) ++ ++ ++NAMESPACE_END ++ ++#endif diff --git a/mingw-w64-crypto++-git/resolve-namespace-conflict.patch b/mingw-w64-crypto++-git/resolve-namespace-conflict.patch new file mode 100644 index 0000000000..b1d741ed07 --- /dev/null +++ b/mingw-w64-crypto++-git/resolve-namespace-conflict.patch @@ -0,0 +1,11 @@ +--- a/validat1.cpp 2015-07-24 11:37:41.137857300 +0300 ++++ b/validat1.cpp 2015-07-24 11:38:06.164853700 +0300 +@@ -132,7 +132,7 @@ + cout << "\nTesting Settings...\n\n"; + + word32 w; +- memcpy_s(&w, sizeof(w), "\x01\x02\x03\x04", 4); ++ CryptoPP::memcpy_s(&w, sizeof(w), "\x01\x02\x03\x04", 4); + + if (w == 0x04030201L) + { diff --git a/mingw-w64-crypto++/PKGBUILD b/mingw-w64-crypto++/PKGBUILD index a4eb99d34a..c9dea4d115 100644 --- a/mingw-w64-crypto++/PKGBUILD +++ b/mingw-w64-crypto++/PKGBUILD @@ -3,46 +3,57 @@ _realname=crypto++ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.6.2 -pkgrel=3 -pkgdesc="Crypto++ Library is a free C++ class library of cryptographic schemes." +pkgrel=4 +pkgdesc="Crypto++ Library is a free C++ class library of cryptographic schemes (mingw-w64)" arch=('any') url="http://www.cryptopp.com/" license=('Boost Software License 1.0') options=('staticlibs' 'strip') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "unzip") source=("http://www.cryptopp.com/cryptopp${pkgver//./}.zip" libcrypto++.pc - missing-sources.patch) + missing-sources.patch + cryptopp-cmake.patch + resolve-namespace-conflict.patch + fix-test-linking.patch) md5sums=('7ed022585698df48e65ce9218f6c6a67' - '9aa03e5f77303f1c3685c796b17aa204' - 'b27bcb0cc2938f5af6a07d724ce42b62') + 'fdf6ec125726e944269b13a6883abc1c' + 'b27bcb0cc2938f5af6a07d724ce42b62' + '88fc344f33a404dccfa9f74ca9f532eb' + '947648b79dc1194217eb0ef0423dd413' + '038003a889c79e024754bc6f08cdafff') +noextract=(cryptopp${pkgver//./}.zip) prepare() { cd ${srcdir} + unzip cryptopp${pkgver//./}.zip -d ${_realname} + + cd ${_realname} + sed -i -e 's/^CXXFLAGS/#CXXFLAGS/' GNUmakefile + patch -p1 -i ${srcdir}/missing-sources.patch + patch -p1 -i ${srcdir}/cryptopp-cmake.patch + patch -p1 -i ${srcdir}/resolve-namespace-conflict.patch + patch -p1 -i ${srcdir}/fix-test-linking.patch } build() { - sed -i -e 's/^CXXFLAGS/#CXXFLAGS/' GNUmakefile - patch -p1 -i ${srcdir}/missing-sources.patch - make -f GNUMakefile - make cryptopp.dll + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + ../${_realname} + + make } package() { - cd ${srcdir} + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR=${pkgdir} -j1 install - mkdir -p ${pkgdir}${MINGW_PREFIX}/include/cryptopp - cp *.h ${pkgdir}${MINGW_PREFIX}/include/cryptopp - - mkdir -p ${pkgdir}${MINGW_PREFIX}/lib - - install -d ${pkgdir}${MINGW_PREFIX}/{bin,lib/pkgconfig,include/cryptopp} - install -m644 *.h ${pkgdir}${MINGW_PREFIX}/include/cryptopp/ - install -m644 cryptopp.dll "${pkgdir}${MINGW_PREFIX}/bin/cryptopp.dll" - install -m644 *.a "${pkgdir}${MINGW_PREFIX}/lib/" - install -m644 ${srcdir}/libcrypto++.pc "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libcrypto++.pc" - install -D -m644 License.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" - - sed -e "s|/usr|${MINGW_PREFIX}|g" -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/libcrypto++.pc + install -D -m644 ${srcdir}/${_realname}/License.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-crypto++/cryptopp-cmake.patch b/mingw-w64-crypto++/cryptopp-cmake.patch new file mode 100644 index 0000000000..371c1b5b8f --- /dev/null +++ b/mingw-w64-crypto++/cryptopp-cmake.patch @@ -0,0 +1,534 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +new file mode 100644 +index 0000000..a0c6371 +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,510 @@ ++CMAKE_MINIMUM_REQUIRED(VERSION 2.6) ++ ++PROJECT(cryptopp) ++ ++set(CRYPTOPP_VERSION_MAJOR 5) ++set(CRYPTOPP_VERSION_MINOR 6) ++set(CRYPTOPP_VERSION_BUILD 2) ++set(CRYPTOPP_VERSION "${CRYPTOPP_VERSION_MAJOR}.${CRYPTOPP_VERSION_MINOR}.${CRYPTOPP_VERSION_BUILD}") ++ ++################################### ++# Global platform-specific settings ++################################### ++IF(MSVC) ++ ADD_DEFINITIONS(-DWIN32 -D_WINDOWS -D_CRT_SECURE_NO_WARNINGS -MP -D_SCL_SECURE_NO_WARNINGS -EHsc) ++ SET(CMAKE_CXX_FLAGS "-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS") ++ELSE() ++ ADD_DEFINITIONS(-Wall -Wno-unused-function -Wno-unused-variable -fvisibility=hidden -Wnon-virtual-dtor -Wreorder -Wstrict-null-sentinel -Wsign-promo) ++ IF(MINGW) ++ ADD_DEFINITIONS(-DWIN32 -D_WINDOWS) ++ ELSE() ++ ADD_DEFINITIONS(-fPIC) ++ ENDIF() ++ENDIF() ++ ++SET(CRYPTOPP_LDFLAGS "") ++ ++######################### ++# User Settings ++######################### ++IF(CRYPTOPP_ADDED_DEFINITIONS) ++ ADD_DEFINITIONS(${CRYPTOPP_ADDED_DEFINITIONS}) ++ENDIF() ++ ++IF(CRYPTOPP_ADDED_LDFLAGS) ++ SET(CRYPTOPP_LDFLAGS ${CRYPTOPP_LDFLAGS} ${CRYPTOPP_ADDED_LDFLAGS}) ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_LIBRARY_TYPE) ++ SET(CRYPTOPP_LIBRARY_TYPE "BOTH" CACHE STRING "Type of library to build, STATIC, SHARED or BOTH.") ++ELSE() ++ SET(CRYPTOPP_LIBRARY_TYPE ${CRYPTOPP_LIBRARY_TYPE} CACHE STRING "Type of library to build, STATIC or SHARED.") ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_RUNTIME_TYPE) ++ SET(CRYPTOPP_RUNTIME_TYPE "STATIC" CACHE STRING "Type of runtime to use, STATIC or SHARED.") ++ELSE() ++ SET(CRYPTOPP_RUNTIME_TYPE ${CRYPTOPP_RUNTIME_TYPE} CACHE STRING "Type of runtime to use, STATIC or SHARED.") ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_BUILD_TESTS) ++ SET(CRYPTOPP_BUILD_TESTS TRUE CACHE BOOL "If enabled, builds tests.") ++ELSE() ++ SET(CRYPTOPP_BUILD_TESTS ${CRYPTOPP_BUILD_TESTS} CACHE BOOL "If enabled, builds tests.") ++ENDIF() ++ ++######################### ++# Project-wide Settings ++######################### ++SET(CRYPTOPP_COMPILE_DEFS_OPT COMPILE_DEFINITIONS_DEBUG CRYPTOPP_DEBUG_BUILD) ++SET(EXEC_PERMS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) ++ ++STRING(TOUPPER ${CRYPTOPP_LIBRARY_TYPE} CRYPTOPP_LIBRARY_TYPE_UPPER) ++STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "STATIC" CRYPTOPP_STATIC) ++IF(NOT CRYPTOPP_STATIC) ++ STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "BOTH" CRYPTOPP_STATIC) ++ENDIF() ++STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "SHARED" CRYPTOPP_SHARED) ++IF(NOT CRYPTOPP_SHARED) ++ STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "BOTH" CRYPTOPP_SHARED) ++ENDIF() ++ ++STRING(TOUPPER ${CRYPTOPP_RUNTIME_TYPE} CRYPTOPP_RUNTIME_TYPE_UPPER) ++STRING(COMPARE EQUAL ${CRYPTOPP_RUNTIME_TYPE_UPPER} "STATIC" CRYPTOPP_STATIC_RUNTIME) ++ ++IF(CRYPTOPP_STATIC_RUNTIME) ++ IF(WIN32) ++ SET(CompilerFlags ++ CMAKE_CXX_FLAGS ++ CMAKE_CXX_FLAGS_DEBUG ++ CMAKE_CXX_FLAGS_RELEASE ++ CMAKE_C_FLAGS ++ CMAKE_C_FLAGS_DEBUG ++ CMAKE_C_FLAGS_RELEASE ++ ) ++ FOREACH(CompilerFlag ${CompilerFlags}) ++ STRING(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}") ++ ENDFOREACH() ++ ENDIF() ++ENDIF() ++ ++# -------------------------------------------------------------------------- ++# Install directories ++ ++string(TOLOWER ${PROJECT_NAME} projectname) ++set(CRYPTOPP_INSTALL_SUBDIR "${projectname}-${CRYPTOPP_VERSION_MAJOR}.${CRYPTOPP_VERSION_MINOR}") ++ ++if(NOT CRYPTOPP_INSTALL_BIN_DIR) ++ set(CRYPTOPP_INSTALL_BIN_DIR "bin") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_INCLUDE_DIR) ++ set(CRYPTOPP_INSTALL_INCLUDE_DIR "include/${projectname}") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_LIB_DIR) ++ set(CRYPTOPP_INSTALL_LIB_DIR "lib") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_SHARE_DIR) ++ set(CRYPTOPP_INSTALL_SHARE_DIR "share") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_DATA_DIR) ++ set(CRYPTOPP_INSTALL_DATA_DIR "${CRYPTOPP_INSTALL_SHARE_DIR}/${CRYPTOPP_INSTALL_SUBDIR}") ++endif() ++ ++######################### ++# Crypto++ Library ++######################### ++ ++CONFIGURE_FILE(adhoc.cpp.proto ${CMAKE_CURRENT_SOURCE_DIR}/adhoc.cpp) ++ ++SET(CRYPTOPP_SRCS_FIPS ++ algebra.cpp ++ algparam.cpp ++ asn.cpp ++ authenc.cpp ++ basecode.cpp ++ cbcmac.cpp ++ ccm.cpp ++ channels.cpp ++ cmac.cpp ++ cpu.cpp ++ cryptlib.cpp ++ des.cpp ++ dessp.cpp ++ dh.cpp ++ dll.cpp ++ dsa.cpp ++ ec2n.cpp ++ eccrypto.cpp ++ ecp.cpp ++ emsa2.cpp ++ eprecomp.cpp ++ files.cpp ++ filters.cpp ++ fips140.cpp ++ gcm.cpp ++ gf2n.cpp ++ gfpcrypt.cpp ++ hex.cpp ++ hmac.cpp ++ hrtimer.cpp ++ integer.cpp ++ iterhash.cpp ++ misc.cpp ++ modes.cpp ++ modexppc.cpp ++ mqueue.cpp ++ nbtheory.cpp ++ oaep.cpp ++ osrng.cpp ++ pch.cpp ++ pkcspad.cpp ++ pssr.cpp ++ pubkey.cpp ++ queue.cpp ++ randpool.cpp ++ rdtables.cpp ++ rijndael.cpp ++ rng.cpp ++ rsa.cpp ++ rw.cpp ++ sha.cpp ++ simple.cpp ++ skipjack.cpp ++ strciphr.cpp ++ trdlocal.cpp ++) ++ ++SET(CRYPTOPP_SRCS ++ 3way.cpp ++ adhoc.cpp.proto ++ adler32.cpp ++ arc4.cpp ++ base32.cpp ++ base64.cpp ++ bfinit.cpp ++ blowfish.cpp ++ blumshub.cpp ++ camellia.cpp ++ cast.cpp ++ casts.cpp ++ crc.cpp ++ default.cpp ++ dh2.cpp ++ eax.cpp ++ elgamal.cpp ++ esign.cpp ++ gf256.cpp ++ gf2_32.cpp ++ gost.cpp ++ gzip.cpp ++ ida.cpp ++ idea.cpp ++ luc.cpp ++ mars.cpp ++ marss.cpp ++ md2.cpp ++ md4.cpp ++ md5.cpp ++ mqv.cpp ++ network.cpp ++ panama.cpp ++ polynomi.cpp ++ rabin.cpp ++ rc2.cpp ++ rc5.cpp ++ rc6.cpp ++ ripemd.cpp ++ safer.cpp ++ salsa.cpp ++ seal.cpp ++ seed.cpp ++ serpent.cpp ++ sha3.cpp ++ shacal2.cpp ++ shark.cpp ++ sharkbox.cpp ++ socketft.cpp ++ sosemanuk.cpp ++ square.cpp ++ squaretb.cpp ++ tea.cpp ++ tftables.cpp ++ tiger.cpp ++ tigertab.cpp ++ ttmac.cpp ++ twofish.cpp ++ vmac.cpp ++ wait.cpp ++ wake.cpp ++ whrlpool.cpp ++ winpipes.cpp ++ xtr.cpp ++ xtrcrypt.cpp ++ zdeflate.cpp ++ zinflate.cpp ++ zlib.cpp ++) ++SET(CRYPTOPP_HDRS ++ 3way.h ++ adler32.h ++ aes.h ++ algebra.h ++ algparam.h ++ arc4.h ++ argnames.h ++ asn.h ++ authenc.h ++ base32.h ++ base64.h ++ basecode.h ++ blowfish.h ++ blumshub.h ++ camellia.h ++ cast.h ++ cbcmac.h ++ ccm.h ++ channels.h ++ cmac.h ++ config.h ++ cpu.h ++ crc.h ++ cryptlib.h ++ default.h ++ des.h ++ dh.h ++ dh2.h ++ dmac.h ++ dsa.h ++ eax.h ++ ec2n.h ++ eccrypto.h ++ ecp.h ++ elgamal.h ++ emsa2.h ++ eprecomp.h ++ esign.h ++ files.h ++ filters.h ++ fips140.h ++ fltrimpl.h ++ gcm.h ++ gf256.h ++ gf2_32.h ++ gf2n.h ++ gfpcrypt.h ++ gost.h ++ gzip.h ++ hex.h ++ hmac.h ++ hrtimer.h ++ ida.h ++ idea.h ++ integer.h ++ iterhash.h ++ lubyrack.h ++ luc.h ++ mars.h ++ md2.h ++ md4.h ++ md5.h ++ mdc.h ++ misc.h ++ modarith.h ++ modes.h ++ modexppc.h ++ mqueue.h ++ mqv.h ++ nbtheory.h ++ network.h ++ nr.h ++ oaep.h ++ oids.h ++ osrng.h ++ panama.h ++ pch.h ++ pkcspad.h ++ polynomi.h ++ pssr.h ++ pubkey.h ++ pwdbased.h ++ queue.h ++ rabin.h ++ randpool.h ++ rc2.h ++ rc5.h ++ rc6.h ++ rijndael.h ++ ripemd.h ++ rng.h ++ rsa.h ++ rw.h ++ safer.h ++ salsa.h ++ seal.h ++ secblock.h ++ seckey.h ++ seed.h ++ serpent.h ++ sha.h ++ sha3.h ++ shacal2.h ++ shark.h ++ simple.h ++ skipjack.h ++ smartptr.h ++ socketft.h ++ sosemanuk.h ++ square.h ++ stdcpp.h ++ strciphr.h ++ tea.h ++ tiger.h ++ trdlocal.h ++ trunhash.h ++ ttmac.h ++ twofish.h ++ vmac.h ++ wait.h ++ wake.h ++ whrlpool.h ++ winpipes.h ++ words.h ++ xtr.h ++ xtrcrypt.h ++ zdeflate.h ++ zinflate.h ++ zlib.h ++) ++ ++SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ${CRYPTOPP_SRCS_FIPS}) ++ ++IF(MSVC) ++ SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ${CRYPTOPP_HDRS} cryptopp.rc) ++ IF(CMAKE_CL_64) ++ ENABLE_LANGUAGE(ASM_MASM) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj ++ MAIN_DEPENDENCY x64dll.asm ++ COMMAND ${CMAKE_ASM_MASM_COMPILER} /Fo ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj /c ${CMAKE_CURRENT_SOURCE_DIR}/x64dll.asm ++ ) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj ++ MAIN_DEPENDENCY x64masm.asm ++ COMMAND ${CMAKE_ASM_MASM_COMPILER} /Fo ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj /c ${CMAKE_CURRENT_SOURCE_DIR}/x64masm.asm ++ ) ++ ENDIF() ++ENDIF() ++ ++######################### ++# Crypto++ Static library ++######################### ++IF(CRYPTOPP_STATIC) ++ #add_definitions(-DCRYPTOPP_IMPORTS) ++ IF(CMAKE_CL_64) ++ SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ++ ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj ++ ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj ++ ) ++ ENDIF() ++ ADD_LIBRARY(cryptlib STATIC ++ ${CRYPTOPP_SRCS} ++ ) ++ SET_TARGET_PROPERTIES(cryptlib PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT} COMPILE_DEFINITIONS CRYPTOPP_LIBRARY_BUILD) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptlib PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ SET_TARGET_PROPERTIES(cryptlib PROPERTIES OUTPUT_NAME "cryptopp") ++ TARGET_LINK_LIBRARIES(cryptlib) ++ ++ INSTALL( ++ TARGETS cryptlib ++ DESTINATION ${CRYPTOPP_INSTALL_LIB_DIR} ++ ) ++ENDIF() ++ ++######################### ++# Crypto++ Shared library ++######################### ++IF(CRYPTOPP_SHARED) ++ add_definitions(-DCRYPTOPP_EXPORTS) ++ ADD_LIBRARY(cryptopp SHARED ++ ${CRYPTOPP_SRCS_FIPS} ++ ) ++ SET_TARGET_PROPERTIES(cryptopp PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT} COMPILE_DEFINITIONS CRYPTOPP_LIBRARY_BUILD) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptopp PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ TARGET_LINK_LIBRARIES(cryptopp) ++ ++ INSTALL( ++ TARGETS cryptopp ++ PERMISSIONS ${EXEC_PERMS} ++ RUNTIME DESTINATION ${CRYPTOPP_INSTALL_BIN_DIR} ++ LIBRARY DESTINATION ${CRYPTOPP_INSTALL_LIB_DIR} ++ ARCHIVE DESTINATION ${CRYPTOPP_INSTALL_LIB_DIR} ++ ) ++ INSTALL(FILES ${CRYPTOPP_HDRS} ++ DESTINATION ${CRYPTOPP_INSTALL_INCLUDE_DIR} ++ ) ++ENDIF() ++ ++######################### ++# Crypto++ Test ++######################### ++IF(CRYPTOPP_BUILD_TESTS AND CRYPTOPP_STATIC) ++ SET(TEST_SRCS ++ adhoc.cpp ++ bench.cpp ++ bench2.cpp ++ datatest.cpp ++ dlltest.cpp ++ fipsalgt.cpp ++ regtest.cpp ++ test.cpp ++ validat1.cpp ++ validat2.cpp ++ validat3.cpp ++ fipstest.cpp ++ ) ++ IF(WIN32) ++ SET(TEST_SRCS ${TEST_SRCS} ++ bench.h ++ factory.h ++ validate.h ++ ) ++ ENDIF() ++ ADD_EXECUTABLE(cryptest ${TEST_SRCS}) ++ IF(WIN32) ++ IF(MSVC) ++ TARGET_LINK_LIBRARIES(cryptest ws2_32.lib cryptlib) ++ ELSE() ++ TARGET_LINK_LIBRARIES(cryptest cryptlib ws2_32) ++ ENDIF() ++ ENDIF() ++ FILE(COPY TestData DESTINATION . FILES_MATCHING PATTERN TestData/*) ++ SET_TARGET_PROPERTIES(cryptest PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT}) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptest PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ENDIF() ++ ++#----------------------------------------------------------------------------- ++# pkgconfig support ++# enabled by default on Unix, disabled by default on other platforms ++if(UNIX OR MINGW) ++ option(BUILD_PKGCONFIG_FILES "Build and install pkg-config files" ON) ++else() ++ option(BUILD_PKGCONFIG_FILES "Build and install pkg-config files" OFF) ++endif() ++if(BUILD_PKGCONFIG_FILES) ++ # install in lib and not share (see multi-arch note above) ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libcrypto++.pc.cmake.in ++ ${CMAKE_CURRENT_BINARY_DIR}/libcrypto++.pc @ONLY) ++ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libcrypto++.pc DESTINATION ++ ${CRYPTOPP_INSTALL_LIB_DIR}/pkgconfig ) ++endif() ++ +diff --git a/libcrypto++.pc.cmake.in b/libcrypto++.pc.cmake.in +new file mode 100644 +index 0000000..a0c6371 +--- /dev/null ++++ b/libcrypto++.pc.cmake.in +@@ -0,0 +1,12 @@ ++prefix=@CMAKE_INSTALL_PREFIX@ ++bindir=${prefix}/@CRYPTOPP_INSTALL_BIN_DIR@ ++libdir=${prefix}/@CRYPTOPP_INSTALL_LIB_DIR@ ++includedir=${prefix}/@CRYPTOPP_INSTALL_INCLUDE_DIR@ ++ ++Name: libcrypto++ ++Description: Class library of cryptographic schemes ++URL: http://www.cryptopp.com/ ++Version: @CRYPTOPP_VERSION@ ++Libs: -L${libdir} -lcryptopp ++Cflags: -I${includedir} ++ diff --git a/mingw-w64-crypto++/cryptopp-cmake.patch.orig b/mingw-w64-crypto++/cryptopp-cmake.patch.orig new file mode 100644 index 0000000000..bf1093681b --- /dev/null +++ b/mingw-w64-crypto++/cryptopp-cmake.patch.orig @@ -0,0 +1,526 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +new file mode 100644 +index 0000000..a0c6371 +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,502 @@ ++CMAKE_MINIMUM_REQUIRED(VERSION 2.6) ++ ++PROJECT(cryptopp) ++ ++set(CRYPTOPP_VERSION_MAJOR 5) ++set(CRYPTOPP_VERSION_MINOR 6) ++set(CRYPTOPP_VERSION_BUILD 2) ++set(CRYPTOPP_VERSION "${CRYPTOPP_VERSION_MAJOR}.${CRYPTOPP_VERSION_MINOR}.${CRYPTOPP_VERSION_BUILD}") ++ ++################################### ++# Global platform-specific settings ++################################### ++IF(MSVC) ++ ADD_DEFINITIONS(-DWIN32 -D_WINDOWS -D_CRT_SECURE_NO_WARNINGS -MP -D_SCL_SECURE_NO_WARNINGS -EHsc) ++ SET(CMAKE_CXX_FLAGS "-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS") ++ELSE() ++ ADD_DEFINITIONS(-Wall -Wno-unused-function -Wno-unused-variable -fvisibility=hidden -Wnon-virtual-dtor -Wreorder -Wstrict-null-sentinel -Wsign-promo) ++ IF(MINGW) ++ ADD_DEFINITIONS(-DWIN32 -D_WINDOWS) ++ ELSE() ++ ADD_DEFINITIONS(-fPIC) ++ ENDIF() ++ENDIF() ++ ++SET(CRYPTOPP_LDFLAGS "") ++ ++######################### ++# User Settings ++######################### ++IF(CRYPTOPP_ADDED_DEFINITIONS) ++ ADD_DEFINITIONS(${CRYPTOPP_ADDED_DEFINITIONS}) ++ENDIF() ++ ++IF(CRYPTOPP_ADDED_LDFLAGS) ++ SET(CRYPTOPP_LDFLAGS ${CRYPTOPP_LDFLAGS} ${CRYPTOPP_ADDED_LDFLAGS}) ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_LIBRARY_TYPE) ++ SET(CRYPTOPP_LIBRARY_TYPE "BOTH" CACHE STRING "Type of library to build, STATIC, SHARED or BOTH.") ++ELSE() ++ SET(CRYPTOPP_LIBRARY_TYPE ${CRYPTOPP_LIBRARY_TYPE} CACHE STRING "Type of library to build, STATIC or SHARED.") ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_RUNTIME_TYPE) ++ SET(CRYPTOPP_RUNTIME_TYPE "STATIC" CACHE STRING "Type of runtime to use, STATIC or SHARED.") ++ELSE() ++ SET(CRYPTOPP_RUNTIME_TYPE ${CRYPTOPP_RUNTIME_TYPE} CACHE STRING "Type of runtime to use, STATIC or SHARED.") ++ENDIF() ++ ++IF(NOT DEFINED CRYPTOPP_BUILD_TESTS) ++ SET(CRYPTOPP_BUILD_TESTS TRUE CACHE BOOL "If enabled, builds tests.") ++ELSE() ++ SET(CRYPTOPP_BUILD_TESTS ${CRYPTOPP_BUILD_TESTS} CACHE BOOL "If enabled, builds tests.") ++ENDIF() ++ ++######################### ++# Project-wide Settings ++######################### ++SET(CRYPTOPP_COMPILE_DEFS_OPT COMPILE_DEFINITIONS_DEBUG CRYPTOPP_DEBUG_BUILD) ++SET(EXEC_PERMS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) ++ ++STRING(TOUPPER ${CRYPTOPP_LIBRARY_TYPE} CRYPTOPP_LIBRARY_TYPE_UPPER) ++STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "STATIC" CRYPTOPP_STATIC) ++IF(NOT CRYPTOPP_STATIC) ++ STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "BOTH" CRYPTOPP_STATIC) ++ENDIF() ++STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "SHARED" CRYPTOPP_SHARED) ++IF(NOT CRYPTOPP_SHARED) ++ STRING(COMPARE EQUAL "${CRYPTOPP_LIBRARY_TYPE_UPPER}" "BOTH" CRYPTOPP_SHARED) ++ENDIF() ++ ++STRING(TOUPPER ${CRYPTOPP_RUNTIME_TYPE} CRYPTOPP_RUNTIME_TYPE_UPPER) ++STRING(COMPARE EQUAL ${CRYPTOPP_RUNTIME_TYPE_UPPER} "STATIC" CRYPTOPP_STATIC_RUNTIME) ++ ++IF(CRYPTOPP_STATIC_RUNTIME) ++ IF(WIN32) ++ SET(CompilerFlags ++ CMAKE_CXX_FLAGS ++ CMAKE_CXX_FLAGS_DEBUG ++ CMAKE_CXX_FLAGS_RELEASE ++ CMAKE_C_FLAGS ++ CMAKE_C_FLAGS_DEBUG ++ CMAKE_C_FLAGS_RELEASE ++ ) ++ FOREACH(CompilerFlag ${CompilerFlags}) ++ STRING(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}") ++ ENDFOREACH() ++ ENDIF() ++ENDIF() ++ ++# -------------------------------------------------------------------------- ++# Install directories ++ ++string(TOLOWER ${PROJECT_NAME} projectname) ++set(CRYPTOPP_INSTALL_SUBDIR "${projectname}-${CRYPTOPP_VERSION_MAJOR}.${CRYPTOPP_VERSION_MINOR}") ++ ++if(NOT CRYPTOPP_INSTALL_BIN_DIR) ++ set(CRYPTOPP_INSTALL_BIN_DIR "bin") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_INCLUDE_DIR) ++ set(CRYPTOPP_INSTALL_INCLUDE_DIR "include/${projectname}") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_LIB_DIR) ++ set(CRYPTOPP_INSTALL_LIB_DIR "lib") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_SHARE_DIR) ++ set(CRYPTOPP_INSTALL_SHARE_DIR "share") ++endif() ++ ++if(NOT CRYPTOPP_INSTALL_DATA_DIR) ++ set(CRYPTOPP_INSTALL_DATA_DIR "${CRYPTOPP_INSTALL_SHARE_DIR}/${CRYPTOPP_INSTALL_SUBDIR}") ++endif() ++ ++######################### ++# Crypto++ Library ++######################### ++ ++CONFIGURE_FILE(adhoc.cpp.proto ${CMAKE_CURRENT_SOURCE_DIR}/adhoc.cpp) ++ ++SET(CRYPTOPP_SRCS_FIPS ++ algebra.cpp ++ algparam.cpp ++ asn.cpp ++ authenc.cpp ++ basecode.cpp ++ cbcmac.cpp ++ ccm.cpp ++ channels.cpp ++ cmac.cpp ++ cpu.cpp ++ cryptlib.cpp ++ des.cpp ++ dessp.cpp ++ dh.cpp ++ dll.cpp ++ dsa.cpp ++ ec2n.cpp ++ eccrypto.cpp ++ ecp.cpp ++ emsa2.cpp ++ eprecomp.cpp ++ files.cpp ++ filters.cpp ++ fips140.cpp ++ gcm.cpp ++ gf2n.cpp ++ gfpcrypt.cpp ++ hex.cpp ++ hmac.cpp ++ hrtimer.cpp ++ integer.cpp ++ iterhash.cpp ++ misc.cpp ++ modes.cpp ++ modexppc.cpp ++ mqueue.cpp ++ nbtheory.cpp ++ oaep.cpp ++ osrng.cpp ++ pch.cpp ++ pkcspad.cpp ++ pssr.cpp ++ pubkey.cpp ++ queue.cpp ++ randpool.cpp ++ rdtables.cpp ++ rijndael.cpp ++ rng.cpp ++ rsa.cpp ++ rw.cpp ++ sha.cpp ++ simple.cpp ++ skipjack.cpp ++ strciphr.cpp ++ trdlocal.cpp ++) ++ ++SET(CRYPTOPP_SRCS ++ 3way.cpp ++ adhoc.cpp.proto ++ adler32.cpp ++ arc4.cpp ++ base32.cpp ++ base64.cpp ++ bfinit.cpp ++ blowfish.cpp ++ blumshub.cpp ++ camellia.cpp ++ cast.cpp ++ casts.cpp ++ crc.cpp ++ default.cpp ++ dh2.cpp ++ eax.cpp ++ elgamal.cpp ++ esign.cpp ++ gf256.cpp ++ gf2_32.cpp ++ gost.cpp ++ gzip.cpp ++ ida.cpp ++ idea.cpp ++ luc.cpp ++ mars.cpp ++ marss.cpp ++ md2.cpp ++ md4.cpp ++ md5.cpp ++ mqv.cpp ++ network.cpp ++ panama.cpp ++ polynomi.cpp ++ rabin.cpp ++ rc2.cpp ++ rc5.cpp ++ rc6.cpp ++ ripemd.cpp ++ safer.cpp ++ salsa.cpp ++ seal.cpp ++ seed.cpp ++ serpent.cpp ++ sha3.cpp ++ shacal2.cpp ++ shark.cpp ++ sharkbox.cpp ++ socketft.cpp ++ sosemanuk.cpp ++ square.cpp ++ squaretb.cpp ++ tea.cpp ++ tftables.cpp ++ tiger.cpp ++ tigertab.cpp ++ ttmac.cpp ++ twofish.cpp ++ vmac.cpp ++ wait.cpp ++ wake.cpp ++ whrlpool.cpp ++ winpipes.cpp ++ xtr.cpp ++ xtrcrypt.cpp ++ zdeflate.cpp ++ zinflate.cpp ++ zlib.cpp ++) ++SET(CRYPTOPP_HDRS ++ 3way.h ++ adler32.h ++ aes.h ++ algebra.h ++ algparam.h ++ arc4.h ++ argnames.h ++ asn.h ++ authenc.h ++ base32.h ++ base64.h ++ basecode.h ++ blowfish.h ++ blumshub.h ++ camellia.h ++ cast.h ++ cbcmac.h ++ ccm.h ++ channels.h ++ cmac.h ++ config.h ++ cpu.h ++ crc.h ++ cryptlib.h ++ default.h ++ des.h ++ dh.h ++ dh2.h ++ dmac.h ++ dsa.h ++ eax.h ++ ec2n.h ++ eccrypto.h ++ ecp.h ++ elgamal.h ++ emsa2.h ++ eprecomp.h ++ esign.h ++ files.h ++ filters.h ++ fips140.h ++ fltrimpl.h ++ gcm.h ++ gf256.h ++ gf2_32.h ++ gf2n.h ++ gfpcrypt.h ++ gost.h ++ gzip.h ++ hex.h ++ hmac.h ++ hrtimer.h ++ ida.h ++ idea.h ++ integer.h ++ iterhash.h ++ lubyrack.h ++ luc.h ++ mars.h ++ md2.h ++ md4.h ++ md5.h ++ mdc.h ++ misc.h ++ modarith.h ++ modes.h ++ modexppc.h ++ mqueue.h ++ mqv.h ++ nbtheory.h ++ network.h ++ nr.h ++ oaep.h ++ oids.h ++ osrng.h ++ panama.h ++ pch.h ++ pkcspad.h ++ polynomi.h ++ pssr.h ++ pubkey.h ++ pwdbased.h ++ queue.h ++ rabin.h ++ randpool.h ++ rc2.h ++ rc5.h ++ rc6.h ++ rijndael.h ++ ripemd.h ++ rng.h ++ rsa.h ++ rw.h ++ safer.h ++ salsa.h ++ seal.h ++ secblock.h ++ seckey.h ++ seed.h ++ serpent.h ++ sha.h ++ sha3.h ++ shacal2.h ++ shark.h ++ simple.h ++ skipjack.h ++ smartptr.h ++ socketft.h ++ sosemanuk.h ++ square.h ++ stdcpp.h ++ strciphr.h ++ tea.h ++ tiger.h ++ trdlocal.h ++ trunhash.h ++ ttmac.h ++ twofish.h ++ vmac.h ++ wait.h ++ wake.h ++ whrlpool.h ++ winpipes.h ++ words.h ++ xtr.h ++ xtrcrypt.h ++ zdeflate.h ++ zinflate.h ++ zlib.h ++) ++ ++SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ${CRYPTOPP_SRCS_FIPS}) ++ ++IF(MSVC) ++ SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ${CRYPTOPP_HDRS} cryptopp.rc) ++ IF(CMAKE_CL_64) ++ ENABLE_LANGUAGE(ASM_MASM) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj ++ MAIN_DEPENDENCY x64dll.asm ++ COMMAND ${CMAKE_ASM_MASM_COMPILER} /Fo ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj /c ${CMAKE_CURRENT_SOURCE_DIR}/x64dll.asm ++ ) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj ++ MAIN_DEPENDENCY x64masm.asm ++ COMMAND ${CMAKE_ASM_MASM_COMPILER} /Fo ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj /c ${CMAKE_CURRENT_SOURCE_DIR}/x64masm.asm ++ ) ++ ENDIF() ++ENDIF() ++ ++######################### ++# Crypto++ Static library ++######################### ++IF(CRYPTOPP_STATIC) ++ IF(CMAKE_CL_64) ++ SET(CRYPTOPP_SRCS ${CRYPTOPP_SRCS} ++ ${CMAKE_CURRENT_BINARY_DIR}/x64dll.obj ++ ${CMAKE_CURRENT_BINARY_DIR}/x64masm.obj ++ ) ++ ENDIF() ++ ADD_LIBRARY(cryptlib STATIC ++ ${CRYPTOPP_SRCS} ++ ) ++ SET_TARGET_PROPERTIES(cryptlib PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT} COMPILE_DEFINITIONS CRYPTOPP_LIBRARY_BUILD) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptlib PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ TARGET_LINK_LIBRARIES(cryptlib) ++ENDIF() ++ ++######################### ++# Crypto++ Shared library ++######################### ++IF(CRYPTOPP_SHARED) ++ ADD_LIBRARY(cryptopp SHARED ++ ${CRYPTOPP_SRCS_FIPS} ++ ) ++ SET_TARGET_PROPERTIES(cryptopp PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT} COMPILE_DEFINITIONS CRYPTOPP_LIBRARY_BUILD) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptopp PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ TARGET_LINK_LIBRARIES(cryptopp) ++ ++ INSTALL( ++ TARGETS cryptopp ++ PERMISSIONS ${EXEC_PERMS} ++ RUNTIME DESTINATION ${CRYPTOPP_INSTALL_BIN_DIR} ++ LIBRARY DESTINATION ${CRYPTOPP_INSTALL_LIB_DIR} ++ ARCHIVE DESTINATION ${CRYPTOPP_INSTALL_LIB_DIR} ++ ) ++ INSTALL(FILES ${CRYPTOPP_HDRS} ++ DESTINATION ${CRYPTOPP_INSTALL_INCLUDE_DIR} ++ ) ++ENDIF() ++ ++######################### ++# Crypto++ Test ++######################### ++IF(CRYPTOPP_BUILD_TESTS AND CRYPTOPP_STATIC) ++ SET(TEST_SRCS ++ adhoc.cpp ++ bench.cpp ++ bench2.cpp ++ datatest.cpp ++ dlltest.cpp ++ fipsalgt.cpp ++ regtest.cpp ++ test.cpp ++ validat1.cpp ++ validat2.cpp ++ validat3.cpp ++ fipstest.cpp ++ ) ++ IF(WIN32) ++ SET(TEST_SRCS ${TEST_SRCS} ++ bench.h ++ factory.h ++ validate.h ++ ) ++ ENDIF() ++ ADD_EXECUTABLE(cryptest ${TEST_SRCS}) ++ IF(WIN32) ++ IF(MSVC) ++ TARGET_LINK_LIBRARIES(cryptest ws2_32.lib cryptlib) ++ ELSE() ++ TARGET_LINK_LIBRARIES(cryptest cryptlib ws2_32) ++ ENDIF() ++ ENDIF() ++ FILE(COPY TestData DESTINATION . FILES_MATCHING PATTERN TestData/*) ++ SET_TARGET_PROPERTIES(cryptest PROPERTIES ${CRYPTOPP_COMPILE_DEFS_OPT}) ++ IF(CRYPTOPP_LDFLAGS) ++ SET_TARGET_PROPERTIES(cryptest PROPERTIES LINK_FLAGS ${CRYPTOPP_LDFLAGS}) ++ ENDIF() ++ENDIF() ++ ++#----------------------------------------------------------------------------- ++# pkgconfig support ++# enabled by default on Unix, disabled by default on other platforms ++if(UNIX OR MINGW) ++ option(BUILD_PKGCONFIG_FILES "Build and install pkg-config files" ON) ++else() ++ option(BUILD_PKGCONFIG_FILES "Build and install pkg-config files" OFF) ++endif() ++if(BUILD_PKGCONFIG_FILES) ++ # install in lib and not share (see multi-arch note above) ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libcrypto++.pc.cmake.in ++ ${CMAKE_CURRENT_BINARY_DIR}/libcrypto++.pc @ONLY) ++ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libcrypto++.pc DESTINATION ++ ${CRYPTOPP_INSTALL_LIB_DIR}/pkgconfig ) ++endif() ++ +diff --git a/libcrypto++.pc.cmake.in b/libcrypto++.pc.cmake.in +new file mode 100644 +index 0000000..a0c6371 +--- /dev/null ++++ b/libcrypto++.pc.cmake.in +@@ -0,0 +1,12 @@ ++prefix=@CMAKE_INSTALL_PREFIX@ ++bindir=${prefix}/@CRYPTOPP_INSTALL_BIN_DIR@ ++libdir=${prefix}/@CRYPTOPP_INSTALL_LIB_DIR@ ++includedir=${prefix}/@CRYPTOPP_INSTALL_INCLUDE_DIR@ ++ ++Name: libcrypto++ ++Description: Class library of cryptographic schemes ++URL: http://www.cryptopp.com/ ++Version: @CRYPTOPP_VERSION@ ++Libs: -L${libdir} -lcryptopp ++Cflags: -I${includedir} ++ diff --git a/mingw-w64-crypto++/fix-test-linking.patch b/mingw-w64-crypto++/fix-test-linking.patch new file mode 100644 index 0000000000..d854978efc --- /dev/null +++ b/mingw-w64-crypto++/fix-test-linking.patch @@ -0,0 +1,18 @@ +--- a/winpipes.h 2015-07-24 12:17:47.681944900 +0300 ++++ b/winpipes.h 2015-07-24 12:17:58.280460900 +0300 +@@ -116,7 +116,6 @@ + NetworkSource::GetWaitObjects; + + private: +- HANDLE GetHandle() const {return WindowsHandle::GetHandle();} + NetworkReceiver & AccessReceiver() {return *this;} + }; + +@@ -131,7 +130,6 @@ + NetworkSink::GetWaitObjects; + + private: +- HANDLE GetHandle() const {return WindowsHandle::GetHandle();} + NetworkSender & AccessSender() {return *this;} + }; + diff --git a/mingw-w64-crypto++/libcrypto++.pc b/mingw-w64-crypto++/libcrypto++.pc index 11988b5a5c..8ed4b6d775 100644 --- a/mingw-w64-crypto++/libcrypto++.pc +++ b/mingw-w64-crypto++/libcrypto++.pc @@ -4,7 +4,7 @@ prefix=/usr libdir=${prefix}/lib includedir=${prefix}/include -Name: libcrypto++-5.6.2 +Name: libcrypto++ Description: Class library of cryptographic schemes Version: 5.6.2 Libs: -L${libdir} -lcryptopp diff --git a/mingw-w64-crypto++/resolve-namespace-conflict.patch b/mingw-w64-crypto++/resolve-namespace-conflict.patch new file mode 100644 index 0000000000..b1d741ed07 --- /dev/null +++ b/mingw-w64-crypto++/resolve-namespace-conflict.patch @@ -0,0 +1,11 @@ +--- a/validat1.cpp 2015-07-24 11:37:41.137857300 +0300 ++++ b/validat1.cpp 2015-07-24 11:38:06.164853700 +0300 +@@ -132,7 +132,7 @@ + cout << "\nTesting Settings...\n\n"; + + word32 w; +- memcpy_s(&w, sizeof(w), "\x01\x02\x03\x04", 4); ++ CryptoPP::memcpy_s(&w, sizeof(w), "\x01\x02\x03\x04", 4); + + if (w == 0x04030201L) + { From 44b99ce0783dee2c2d415ac3461f83e8f8974260 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 24 Jul 2015 15:07:08 +0300 Subject: [PATCH 1356/2060] libsecret: Rebuild with gcc-5.x --- FAIL_LIST.md | 4 +--- mingw-w64-libsecret/PKGBUILD | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index a06588461f..dcda1a7186 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -7,7 +7,7 @@ List of packages that currently fail to build - cocos2dx-git -- coq +- coq (OCAML issue) - freerdp-git @@ -27,8 +27,6 @@ List of packages that currently fail to build - librocket-git -- libsecret - - nim - nimble diff --git a/mingw-w64-libsecret/PKGBUILD b/mingw-w64-libsecret/PKGBUILD index b02e6173ac..91259c6658 100644 --- a/mingw-w64-libsecret/PKGBUILD +++ b/mingw-w64-libsecret/PKGBUILD @@ -3,7 +3,7 @@ _realname=libsecret pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.18 -pkgrel=2 +pkgrel=3 pkgdesc="Library for storing and retrieving passwords and other secrets (mingw-w64)" arch=('any') url="https://wiki.gnome.org/Projects/Libsecret" From 328e3dca55fe4e2ff2ebc91ba5171edfd93ceb93 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 24 Jul 2015 15:48:02 +0300 Subject: [PATCH 1357/2060] zziplib: Rebuild with GCC-5.x --- mingw-w64-zziplib/PKGBUILD | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mingw-w64-zziplib/PKGBUILD b/mingw-w64-zziplib/PKGBUILD index 3d752665a3..a828926e01 100644 --- a/mingw-w64-zziplib/PKGBUILD +++ b/mingw-w64-zziplib/PKGBUILD @@ -1,19 +1,21 @@ # Maintainer: Alexey Pavlov _realname=zziplib - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.13.62 -pkgrel=3 +pkgrel=4 pkgdesc="A lightweight library that offers the ability to easily extract data from files archived in a single zip file (mingw-w64)" arch=('any') url="http://zziplib.sourceforge.net" license=("LGPL, MPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "python2" "${MINGW_PACKAGE_PREFIX}-SDL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-SDL" + "python2") depends=( "${MINGW_PACKAGE_PREFIX}-zlib") optdepends=("${MINGW_PACKAGE_PREFIX}-SDL: SDL_rwops for ZZipLib") options=('staticlibs' 'strip') -source=("http://downloads.sourceforge.net/zziplib/zziplib-${pkgver}.tar.bz2" +source=("http://downloads.sourceforge.net/zziplib/${_realname}-${pkgver}.tar.bz2" "configure.patch" "mingw-mmap-workaround.patch") md5sums=('5fe874946390f939ee8f4abe9624b96c' @@ -21,7 +23,7 @@ md5sums=('5fe874946390f939ee8f4abe9624b96c' '9307404f1699849cb0f2eaf5e0217d92') prepare() { - cd "$srcdir/zziplib-$pkgver" + cd "${srcdir}/${_realname}-${pkgver}" patch -Np1 -i $srcdir/configure.patch patch -Np1 -i $srcdir/mingw-mmap-workaround.patch } @@ -31,12 +33,13 @@ build() { export PERL=/usr/bin/perl mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --with-zlib=${MINGW_PREFIX} \ --enable-sdl + make } @@ -47,5 +50,5 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } From 0636eff24413d5546178fc8af09693454f5d7342 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 24 Jul 2015 16:58:54 +0300 Subject: [PATCH 1358/2060] Update mingw-w64 runtime --- mingw-w64-crt-git/PKGBUILD | 2 +- mingw-w64-headers-git/PKGBUILD | 2 +- mingw-w64-tools-git/PKGBUILD | 2 +- mingw-w64-winpthreads-git/PKGBUILD | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 1d5937a88f..74e878f7d4 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=crt pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4522.e2d9393 +pkgver=5.0.0.4531.49c7046 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index ab9fd67f90..4693ab6463 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4522.e2d9393 +pkgver=5.0.0.4531.49c7046 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index 3f8f67e4a6..54d3fac08e 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.0.0.4520.f3f8cd3 +pkgver=5.0.0.4531.49c7046 pkgrel=1 pkgdesc="MinGW-w64 tools" arch=('any') diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index 1b5f6f74b6..92e7bea068 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=winpthreads pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") -pkgver=5.0.0.4509.2e5a9a2 +pkgver=5.0.0.4531.49c7046 pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" url="http://mingw-w64.sourceforge.net" From 91484220a181463785015932cad726e8cb1fdcf7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 24 Jul 2015 17:32:12 +0100 Subject: [PATCH 1359/2060] creduce: Still needs delta dependency .. for topformflat --- mingw-w64-creduce-git/PKGBUILD | 3 ++- mingw-w64-creduce/PKGBUILD | 3 ++- .../0002-Include-QDataStream-in-peer.h.patch | 10 ++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-quassel/0002-Include-QDataStream-in-peer.h.patch diff --git a/mingw-w64-creduce-git/PKGBUILD b/mingw-w64-creduce-git/PKGBUILD index eb6259b684..c5414ffe4a 100644 --- a/mingw-w64-creduce-git/PKGBUILD +++ b/mingw-w64-creduce-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=creduce.2.3.0.18.g7b3ce38 -pkgrel=1 +pkgrel=2 pkgdesc="A C program reducer (mingw-w64)" depends=('perl-Benchmark-Timer' 'perl-Exporter-Lite' @@ -13,6 +13,7 @@ depends=('perl-Benchmark-Timer' 'perl-Getopt-Tabular' 'perl-Regexp-Common' 'perl-Sys-CPU' + 'delta' "${MINGW_PACKAGE_PREFIX}-astyle" "${MINGW_PACKAGE_PREFIX}-indent" "${MINGW_PACKAGE_PREFIX}-clang") diff --git a/mingw-w64-creduce/PKGBUILD b/mingw-w64-creduce/PKGBUILD index bca83f7422..9744e4077d 100644 --- a/mingw-w64-creduce/PKGBUILD +++ b/mingw-w64-creduce/PKGBUILD @@ -4,7 +4,7 @@ _realname=creduce pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") pkgver=2.3.0 -pkgrel=2 +pkgrel=3 pkgdesc="A C program reducer (mingw-w64)" depends=('perl-Benchmark-Timer' 'perl-Exporter-Lite' @@ -12,6 +12,7 @@ depends=('perl-Benchmark-Timer' 'perl-Getopt-Tabular' 'perl-Regexp-Common' 'perl-Sys-CPU' + 'delta' "${MINGW_PACKAGE_PREFIX}-astyle" "${MINGW_PACKAGE_PREFIX}-indent" "${MINGW_PACKAGE_PREFIX}-clang") diff --git a/mingw-w64-quassel/0002-Include-QDataStream-in-peer.h.patch b/mingw-w64-quassel/0002-Include-QDataStream-in-peer.h.patch new file mode 100644 index 0000000000..83187f0733 --- /dev/null +++ b/mingw-w64-quassel/0002-Include-QDataStream-in-peer.h.patch @@ -0,0 +1,10 @@ +--- quassel-0.12.2/src/common/peer.h.orig 2015-07-24 16:19:22.370062500 +0100 ++++ quassel-0.12.2/src/common/peer.h 2015-07-24 16:19:22.365062500 +0100 +@@ -23,6 +23,7 @@ + + #include + #include ++#include + + #include "authhandler.h" + #include "protocol.h" From a6ee0d6cad56f5142d6a854ac748ea2d80951f51 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 24 Jul 2015 17:34:03 +0100 Subject: [PATCH 1360/2060] quassel: Build fixes --- FAIL_LIST.md | 2 -- .../0003-Fix-Q_ASSERT-scopes.patch | 24 +++++++++++++++++++ mingw-w64-quassel/PKGBUILD | 14 +++++++---- 3 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-quassel/0003-Fix-Q_ASSERT-scopes.patch diff --git a/FAIL_LIST.md b/FAIL_LIST.md index dcda1a7186..6cda6f1cda 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -53,8 +53,6 @@ List of packages that currently fail to build - python-h5py -- quassel - - tclvfs - tclx diff --git a/mingw-w64-quassel/0003-Fix-Q_ASSERT-scopes.patch b/mingw-w64-quassel/0003-Fix-Q_ASSERT-scopes.patch new file mode 100644 index 0000000000..186766790c --- /dev/null +++ b/mingw-w64-quassel/0003-Fix-Q_ASSERT-scopes.patch @@ -0,0 +1,24 @@ +--- quassel-0.12.2/src/client/treemodel.cpp.orig 2015-04-23 21:47:17.000000000 +0100 ++++ quassel-0.12.2/src/client/treemodel.cpp 2015-07-24 16:25:11.185062500 +0100 +@@ -556,9 +556,9 @@ + ChildStatus cs = _childStatus; + #ifndef QT_NO_DEBUG + QModelIndex parent = indexByItem(parentItem); +-#endif + Q_ASSERT(cs.parent == parent); + Q_ASSERT(rowCount(parent) == cs.childCount + cs.end - cs.start + 1); ++#endif + + _aboutToRemoveOrInsert = false; + for (int i = cs.start; i <= cs.end; i++) { +@@ -605,9 +605,9 @@ + #ifndef QT_NO_DEBUG + ChildStatus cs = _childStatus; + QModelIndex parent = indexByItem(parentItem); +-#endif + Q_ASSERT(cs.parent == parent); + Q_ASSERT(rowCount(parent) == cs.childCount - cs.end + cs.start - 1); ++#endif + _aboutToRemoveOrInsert = false; + + endRemoveRows(); diff --git a/mingw-w64-quassel/PKGBUILD b/mingw-w64-quassel/PKGBUILD index 62e81a85d7..ce6bbb0be6 100644 --- a/mingw-w64-quassel/PKGBUILD +++ b/mingw-w64-quassel/PKGBUILD @@ -6,7 +6,7 @@ _realname=quassel pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.12.2 -pkgrel=2 +pkgrel=3 pkgdesc="Next-generation distributed IRC client (mingw-w64)" arch=('any') url="http://quassel-irc.org/" @@ -18,13 +18,19 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt5" #"${MINGW_PACKAGE_PREFIX}-extra-cmake-modules" #TODO: only needed with WITH_KDE=ON "${MINGW_PACKAGE_PREFIX}-Snorenotify") source=(http://quassel-irc.org/pub/${_realname}-${pkgver}.tar.bz2 - "0001-MinGW-w64-Adopt-FHS-Layout.patch") + "0001-MinGW-w64-Adopt-FHS-Layout.patch" + "0002-Include-QDataStream-in-peer.h.patch" + "0003-Fix-Q_ASSERT-scopes.patch") sha256sums=('6bd6f79ecb88fb857bea7e89c767a3bd0f413ff01bae9298dd2e563478947897' - '12b82e72c2d3a42872104906bad73f48c9b944506d086c0bcd710af904c9fcd8') + '12b82e72c2d3a42872104906bad73f48c9b944506d086c0bcd710af904c9fcd8' + '2cd9ba35f7857f7bc1bd3f9870d5a2b0e091ce8e99839a8c3f2727ef4990689c' + '6becd9f82ca9b2a22ecf39fd85c93ffa354c63421d6222800b8fb809e50a104a') prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i "${srcdir}"/0001-MinGW-w64-Adopt-FHS-Layout.patch + patch -p1 -i "${srcdir}"/0002-Include-QDataStream-in-peer.h.patch + patch -p1 -i "${srcdir}"/0003-Fix-Q_ASSERT-scopes.patch } build() { @@ -49,7 +55,7 @@ build() { -Wno-dev \ ../${_realname}-${pkgver} - make + make VERBOSE=1 } package() { From 489bf803557e0ba1ed9a9531d38118caf313474d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 24 Jul 2015 18:26:24 +0100 Subject: [PATCH 1361/2060] quassel: Don't be verbose --- mingw-w64-quassel/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-quassel/PKGBUILD b/mingw-w64-quassel/PKGBUILD index ce6bbb0be6..9a20b25b96 100644 --- a/mingw-w64-quassel/PKGBUILD +++ b/mingw-w64-quassel/PKGBUILD @@ -55,7 +55,7 @@ build() { -Wno-dev \ ../${_realname}-${pkgver} - make VERBOSE=1 + make } package() { From 57d953d21d5d1e7e81fa934254c265b39e70af83 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 24 Jul 2015 23:34:23 +0300 Subject: [PATCH 1362/2060] gcc: Apply proposed patches for using large PCH headers --- mingw-w64-gcc/410-fix-using-large-pch.patch | 131 ++++++++++++++++++++ mingw-w64-gcc/PKGBUILD | 5 +- 2 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-gcc/410-fix-using-large-pch.patch diff --git a/mingw-w64-gcc/410-fix-using-large-pch.patch b/mingw-w64-gcc/410-fix-using-large-pch.patch new file mode 100644 index 0000000000..5e1dff51f4 --- /dev/null +++ b/mingw-w64-gcc/410-fix-using-large-pch.patch @@ -0,0 +1,131 @@ +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14940 +https://sourceforge.net/p/mingw-w64/bugs/382/ + +diff --git a/gcc/config/i386/host-mingw32.c b/gcc/config/i386/host-mingw32.c +index aa17378..631d9c4 100644 +--- a/gcc/config/i386/host-mingw32.c ++++ b/gcc/config/i386/host-mingw32.c +@@ -42,9 +42,6 @@ static size_t mingw32_gt_pch_alloc_granularity (void); + + static inline void w32_error(const char*, const char*, int, const char*); + +-/* FIXME: Is this big enough? */ +-static const size_t pch_VA_max_size = 128 * 1024 * 1024; +- + /* Granularity for reserving address space. */ + static size_t va_granularity = 0x10000; + +@@ -86,9 +83,6 @@ static void * + mingw32_gt_pch_get_address (size_t size, int) + { + void* res; +- size = (size + va_granularity - 1) & ~(va_granularity - 1); +- if (size > pch_VA_max_size) +- return NULL; + + /* FIXME: We let system determine base by setting first arg to NULL. + Allocating at top of available address space avoids unnecessary +@@ -98,7 +92,7 @@ mingw32_gt_pch_get_address (size_t size, int) + If we allocate at bottom we need to reserve the address as early + as possible and at the same point in each invocation. */ + +- res = VirtualAlloc (NULL, pch_VA_max_size, ++ res = VirtualAlloc (NULL, size, + MEM_RESERVE | MEM_TOP_DOWN, + PAGE_NOACCESS); + if (!res) +@@ -148,7 +142,7 @@ mingw32_gt_pch_use_address (void *addr, size_t size, int fd, + + /* Offset must be also be a multiple of allocation granularity for + this to work. We can't change the offset. */ +- if ((offset & (va_granularity - 1)) != 0 || size > pch_VA_max_size) ++ if ((offset & (va_granularity - 1)) != 0) + return -1; + + +diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c +index 5096837..f741f2c 100644 +--- a/gcc/ggc-common.c ++++ b/gcc/ggc-common.c +@@ -599,7 +599,9 @@ gt_pch_restore (FILE *f) + size_t i; + struct mmap_info mmi; + int result; +- ++ long pch_tabs_off; ++ long pch_data_off; ++ + /* Delete any deletable objects. This makes ggc_pch_read much + faster, as it can be sure that no GCable objects remain other + than the ones just read in. */ +@@ -607,20 +609,24 @@ gt_pch_restore (FILE *f) + for (rti = *rt; rti->base != NULL; rti++) + memset (rti->base, 0, rti->stride); + +- /* Read in all the scalar variables. */ ++ /* We need to read tables after mapping, or fatal_error will ++ segfault when gt_pch_use_address returns -1. Skip them for now. */ ++ pch_tabs_off = ftell(f); ++ ++ /* Skip all the scalar variables. */ + for (rt = gt_pch_scalar_rtab; *rt; rt++) + for (rti = *rt; rti->base != NULL; rti++) +- if (fread (rti->base, rti->stride, 1, f) != 1) +- fatal_error (input_location, "can%'t read PCH file: %m"); ++ if (fseek (f, rti->stride, SEEK_CUR) != 0) ++ fatal_error (input_location, "can%'t read PCH file: %m"); + +- /* Read in all the global pointers, in 6 easy loops. */ ++ /* Skip all the global pointers. */ + for (rt = gt_ggc_rtab; *rt; rt++) + for (rti = *rt; rti->base != NULL; rti++) + for (i = 0; i < rti->nelt; i++) +- if (fread ((char *)rti->base + rti->stride * i, +- sizeof (void *), 1, f) != 1) +- fatal_error (input_location, "can%'t read PCH file: %m"); +- ++ if (fseek (f, sizeof (void *), SEEK_CUR) != 0) ++ fatal_error (input_location, "can%'t read PCH file: %m"); ++ ++ /* mmi still has to be read now. */ + if (fread (&mmi, sizeof (mmi), 1, f) != 1) + fatal_error (input_location, "can%'t read PCH file: %m"); + +@@ -631,12 +637,35 @@ gt_pch_restore (FILE *f) + if (result == 0) + { + if (fseek (f, mmi.offset, SEEK_SET) != 0 +- || fread (mmi.preferred_base, mmi.size, 1, f) != 1) +- fatal_error (input_location, "can%'t read PCH file: %m"); ++ || fread (mmi.preferred_base, mmi.size, 1, f) != 1) ++ fatal_error (input_location, "can%'t read PCH file: %m"); + } + else if (fseek (f, mmi.offset + mmi.size, SEEK_SET) != 0) + fatal_error (input_location, "can%'t read PCH file: %m"); ++ ++ /* File mapping done, read tables now. */ ++ pch_data_off = ftell(f); ++ ++ if (fseek (f, pch_tabs_off, SEEK_SET) != 0) ++ fatal_error (input_location, "can%'t read PCH file: %m"); + ++ /* Read in all the scalar variables. */ ++ for (rt = gt_pch_scalar_rtab; *rt; rt++) ++ for (rti = *rt; rti->base != NULL; rti++) ++ if (fread (rti->base, rti->stride, 1, f) != 1) ++ fatal_error (input_location, "can%'t read PCH file: %m"); ++ ++ /* Read in all the global pointers, in 6 easy loops. */ ++ for (rt = gt_ggc_rtab; *rt; rt++) ++ for (rti = *rt; rti->base != NULL; rti++) ++ for (i = 0; i < rti->nelt; i++) ++ if (fread ((char *)rti->base + rti->stride * i, ++ sizeof (void *), 1, f) != 1) ++ fatal_error (input_location, "can%'t read PCH file: %m"); ++ ++ if (fseek (f, pch_data_off, SEEK_SET) != 0) ++ fatal_error (input_location, "can%'t read PCH file: %m"); ++ + ggc_pch_read (f, mmi.preferred_base); + + gt_pch_restore_stringpool (); diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index e9e6c67f45..78e1d25ea7 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -11,7 +11,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc") pkgver=5.2.0 -pkgrel=2 +pkgrel=3 pkgdesc="GCC for the MinGW-w64" arch=('any') url="http://gcc.gnu.org" @@ -47,6 +47,7 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- '300-libgomp-no-static.patch' '310-gcc-make-xmmintrin-header-cplusplus-compatible.patch' '405-dwarf-regression.patch' + '410-fix-using-large-pch.patch' 'enable-libitm.mingw.patch' 'enable-libsanitizer.mingw.patch' 'enable-shared-gnat.mingw.patch' @@ -69,6 +70,7 @@ md5sums=('a51bcfeb3da7dd4c623e27207ed43467' '0a78aaac959e212acb24bb38271804cb' '4a6e2e0f6424abf37e830d7f37fd3351' 'b558ee5f7529b1765e4266289ad1a83c' + 'a9badc7f193d4fc44e7e51c17117bbe3' '27d5611996e209ba6f6a55ab417386e4' '5201bee23601ddfacde436461559f561' 'a56fb2cf67ae619f22e0d21f378ff704' @@ -132,6 +134,7 @@ prepare() { if [ "${CARCH}" = "i686" ]; then patch -p1 -i ${srcdir}/405-dwarf-regression.patch fi + patch -p1 -i ${srcdir}/410-fix-using-large-pch.patch patch -p1 -i ${srcdir}/enable-shared-gnat-implib.mingw.patch From 0414da7f23fb25ade8f1481904b6986c2731219f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 24 Jul 2015 23:48:16 +0300 Subject: [PATCH 1363/2060] quassel: Allow to use pkg-config for mingw builds to find Qca packages. --- .../0004-use-pkg-config-mingw.patch | 22 +++++++++++++++++++ mingw-w64-quassel/PKGBUILD | 7 ++++-- 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-quassel/0004-use-pkg-config-mingw.patch diff --git a/mingw-w64-quassel/0004-use-pkg-config-mingw.patch b/mingw-w64-quassel/0004-use-pkg-config-mingw.patch new file mode 100644 index 0000000000..9dba185f10 --- /dev/null +++ b/mingw-w64-quassel/0004-use-pkg-config-mingw.patch @@ -0,0 +1,22 @@ +--- quassel-0.12.2/cmake/FindQCA2.cmake.orig 2015-07-24 23:39:01.451283000 +0300 ++++ quassel-0.12.2/cmake/FindQCA2.cmake 2015-07-24 23:39:06.568092000 +0300 +@@ -24,7 +24,7 @@ + else (QCA2_INCLUDE_DIR AND QCA2_LIBRARIES) + + +- if (NOT WIN32) ++ if (NOT MSVC) + find_package(PkgConfig) + pkg_check_modules(PC_QCA2 QUIET qca2) + set(QCA2_DEFINITIONS ${PC_QCA2_CFLAGS_OTHER}) +--- quassel-0.12.2/cmake/FindQCA2-QT5.cmake.orig 2015-07-24 23:38:36.241638800 +0300 ++++ quassel-0.12.2/cmake/FindQCA2-QT5.cmake 2015-07-24 23:38:44.634453500 +0300 +@@ -37,7 +37,7 @@ + else (QCA2-QT5_INCLUDE_DIR AND QCA2-QT5_LIBRARIES) + + +- if (NOT WIN32) ++ if (NOT MSVC) + find_package(PkgConfig) + pkg_check_modules(PC_QCA2-QT5 QUIET qca2-qt5) + set(QCA2-QT5_DEFINITIONS ${PC_QCA2-QT5_CFLAGS_OTHER}) diff --git a/mingw-w64-quassel/PKGBUILD b/mingw-w64-quassel/PKGBUILD index 9a20b25b96..aed6a363cd 100644 --- a/mingw-w64-quassel/PKGBUILD +++ b/mingw-w64-quassel/PKGBUILD @@ -20,17 +20,20 @@ depends=("${MINGW_PACKAGE_PREFIX}-qt5" source=(http://quassel-irc.org/pub/${_realname}-${pkgver}.tar.bz2 "0001-MinGW-w64-Adopt-FHS-Layout.patch" "0002-Include-QDataStream-in-peer.h.patch" - "0003-Fix-Q_ASSERT-scopes.patch") + "0003-Fix-Q_ASSERT-scopes.patch" + "0004-use-pkg-config-mingw.patch") sha256sums=('6bd6f79ecb88fb857bea7e89c767a3bd0f413ff01bae9298dd2e563478947897' '12b82e72c2d3a42872104906bad73f48c9b944506d086c0bcd710af904c9fcd8' '2cd9ba35f7857f7bc1bd3f9870d5a2b0e091ce8e99839a8c3f2727ef4990689c' - '6becd9f82ca9b2a22ecf39fd85c93ffa354c63421d6222800b8fb809e50a104a') + '6becd9f82ca9b2a22ecf39fd85c93ffa354c63421d6222800b8fb809e50a104a' + '0e5d8f78d4f3009b88f536040b659436d67a94975718c1cf973530b79993ab70') prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i "${srcdir}"/0001-MinGW-w64-Adopt-FHS-Layout.patch patch -p1 -i "${srcdir}"/0002-Include-QDataStream-in-peer.h.patch patch -p1 -i "${srcdir}"/0003-Fix-Q_ASSERT-scopes.patch + patch -p1 -i "${srcdir}"/0004-use-pkg-config-mingw.patch } build() { From bc7a911630d07c52b11764dd20f10c1fc6d2ee9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98ystein=20Krog?= Date: Sat, 25 Jul 2015 19:12:16 +0200 Subject: [PATCH 1364/2060] hub: Add package, version 2.2.1 --- mingw-w64-hub/PKGBUILD | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 mingw-w64-hub/PKGBUILD diff --git a/mingw-w64-hub/PKGBUILD b/mingw-w64-hub/PKGBUILD new file mode 100644 index 0000000000..e715485ba2 --- /dev/null +++ b/mingw-w64-hub/PKGBUILD @@ -0,0 +1,35 @@ +# Maintainer: Øystein Krog + +_realname=hub +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=2.2.1 +pkgrel=1 +pkgdesc="hub introduces git to GitHub (mingw-w64)" +arch=('any') +url="http://hub.github.com" +license=('MIT') +options=('!strip') +#TODO: change this when git-for-windows is upstreamed +#depends=('${MINGW_PACKAGE_PREFIX}-git') +depends=('git') +makedepends=("git ${MINGW_PACKAGE_PREFIX}-go") +source=(v${pkgver}.tar.gz::https://github.com/github/${_realname}/archive/v${pkgver}.tar.gz) +md5sums=('889a31ee9d10ae9cb333480d8dbe881f') + +build() { + cd "$srcdir/${_realname}-${pkgver}" + GOROOT=/$MSYSTEM ./script/build + gzip --best -c man/${_realname}.1> ${_realname}.1.gz +} + +package() { + cd "$srcdir/${_realname}-${pkgver}" + + install -Dm755 "${_realname}" "${pkgdir}${MINGW_PREFIX}/bin/${_realname}" + + install -Dm644 "LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 "man/${_realname}.1" "${pkgdir}${MINGWPREFIX}/share/man/man1/${_realname}.1" + + install -Dm644 "etc/hub.bash_completion.sh" "${pkgdir}/usr/share/bash-completion/completions/hub" + install -Dm644 "etc/hub.zsh_completion" "${pkgdir}/usr/share/zsh/site-functions/_hub" +} From ed4b1079d111f00dfdae8c709e2f68caf87274f7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 26 Jul 2015 11:26:45 +0300 Subject: [PATCH 1365/2060] libmongoose: Don't link with openssl --- mingw-w64-libmongoose-git/Makefile | 4 ++-- mingw-w64-libmongoose-git/PKGBUILD | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-libmongoose-git/Makefile b/mingw-w64-libmongoose-git/Makefile index c49a75910e..8ba469a490 100644 --- a/mingw-w64-libmongoose-git/Makefile +++ b/mingw-w64-libmongoose-git/Makefile @@ -22,9 +22,9 @@ ifndef DOCDIR DOCDIR=$(PREFIX)/share/$(LIBNAME)/doc endif -CPPFLAGS+=-DNS_ENABLE_SSL #-DNS_ENABLE_IPV6 +CPPFLAGS+= #-DNS_ENABLE_SSL -DNS_ENABLE_IPV6 CFLAGS+=-c -Wall -LDFLAGS+=-shared -Wl,--out-implib,$(IMPORT_LIB) -lws2_32 -lssl +LDFLAGS+=-shared -Wl,--out-implib,$(IMPORT_LIB) -lws2_32 #-lssl SRCS=mongoose.c OBJS=mongoose.o diff --git a/mingw-w64-libmongoose-git/PKGBUILD b/mingw-w64-libmongoose-git/PKGBUILD index 8d425959f2..8ed756e061 100644 --- a/mingw-w64-libmongoose-git/PKGBUILD +++ b/mingw-w64-libmongoose-git/PKGBUILD @@ -5,19 +5,19 @@ pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) conflicts=(${MINGW_PACKAGE_PREFIX}-${_realname}) pkgver=r1793.41b405d -pkgrel=1 +pkgrel=2 url='https://github.com/cesanta/mongoose' pkgdesc='Embedded web server for C/C++ (mingw-w64)' license=('GPL2') arch=('any') -depends=(${MINGW_PACKAGE_PREFIX}-openssl) +depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs) #${MINGW_PACKAGE_PREFIX}-openssl makedepends=(${MINGW_PACKAGE_PREFIX}-gcc) source=(${_realname}::'git+https://github.com/cesanta/mongoose' mongoose.pc Makefile) sha1sums=('SKIP' '92c82813e7c1b277a0078c0e67addc7e159aec81' - '93195c1e22f9a2ce663e5ade1b1f0261a4d08dbc') + 'c4a55e3cc984dba00258d81e2ab09e8e91ff4419') pkgver() { cd "${srcdir}/${_realname}" From 64626791a21e5cf308c69f2db4f77f626ac666f9 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 26 Jul 2015 18:33:16 +0300 Subject: [PATCH 1366/2060] libgit2-glib: Update to 0.23.0 --- mingw-w64-libgit2-glib/PKGBUILD | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/mingw-w64-libgit2-glib/PKGBUILD b/mingw-w64-libgit2-glib/PKGBUILD index 491ab24461..3e03c87698 100644 --- a/mingw-w64-libgit2-glib/PKGBUILD +++ b/mingw-w64-libgit2-glib/PKGBUILD @@ -2,23 +2,23 @@ _realname=libgit2-glib pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.22.6 +pkgver=0.23.0 pkgrel=1 arch=('any') pkgdesc="A glib wrapper library around the libgit2 git access library (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-libgit2" +depends=("${MINGW_PACKAGE_PREFIX}-libgit2>=0.23" "${MINGW_PACKAGE_PREFIX}-glib2") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "gtk-doc") options=('strip' 'staticlibs') license=("LGPL") url="https://wiki.gnome.org/Projects/Libgit2-glib" -source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz") -sha256sums=('e299f159acc7a83c33771660514fa78a6cc7deea064e10d9e9030ad68d673a80') +source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") +sha256sums=('de12ce1d317fc1d8d32191fc121f5de86d557387f3782edd79fe7b8daa2c6345') prepare() { cd "${srcdir}"/${_realname}-${pkgver} @@ -41,12 +41,13 @@ build() { --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ --enable-python + make } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From ffc25477b7e5313d4115983bb320b06f1a5efdc5 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 26 Jul 2015 18:45:18 +0300 Subject: [PATCH 1367/2060] gedit-plugins: Rebuild with gcc-5.x --- mingw-w64-gedit-plugins/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gedit-plugins/PKGBUILD b/mingw-w64-gedit-plugins/PKGBUILD index 93d651476b..484f98b316 100644 --- a/mingw-w64-gedit-plugins/PKGBUILD +++ b/mingw-w64-gedit-plugins/PKGBUILD @@ -3,7 +3,7 @@ _realname=gedit-plugins pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Collection of plugins for the gedit Text Editor (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gedit" @@ -19,7 +19,7 @@ options=('strip' 'staticlibs') license=("GPL") url="https://wiki.gnome.org/Apps/Gedit/ShippedPlugins" install=gedit-plugins-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz) +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) sha256sums=('b685b84ada8ca04f6aa201e402a0208591be4a37b874595a0a85d0a14b52f191') prepare() { @@ -45,6 +45,6 @@ build() { } package() { - cd "$srcdir/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install } From 389f75b73a2e9b07983a69ffece864f72260da75 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 26 Jul 2015 19:01:12 +0300 Subject: [PATCH 1368/2060] go: Update to 1.4.2. Rebuild with gcc-5.x --- mingw-w64-go/PKGBUILD | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/mingw-w64-go/PKGBUILD b/mingw-w64-go/PKGBUILD index 32db243750..15122635da 100644 --- a/mingw-w64-go/PKGBUILD +++ b/mingw-w64-go/PKGBUILD @@ -2,7 +2,7 @@ _realname=go pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.4 +pkgver=1.4.2 pkgrel=1 pkgdesc="Go Lang (miongw-w64)" arch=('any') @@ -14,27 +14,27 @@ options=('!strip') source=("http://golang.org/dl/go${pkgver}.src.tar.gz" "msys2-unix-files.patch" "relocation-support.patch") -sha1sums=('6a7d9bd90550ae1e164d7803b3e945dc8309252b' +sha1sums=('460caac03379f746c473814a65223397e9c9a2f6' '86ed6c4f5ab069e4470e3efc0cb9ae912ff7a31b' '995907f84dd53e6d04d21d350766e47a866e6b6e') prepare() { pushd "${srcdir}"/${_realname} - [ -f src/cmd/dist/pathtools.c ] && rm -f src/cmd/dist/pathtools.c - [ -f src/cmd/dist/pathtools.h ] && rm -f src/cmd/dist/pathtools.h + [[ -f src/cmd/dist/pathtools.c ]] && rm -f src/cmd/dist/pathtools.c + [[ -f src/cmd/dist/pathtools.h ]] && rm -f src/cmd/dist/pathtools.h #patch -p1 -i ${srcdir}/msys2-unix-files.patch patch -p1 -i ${srcdir}/relocation-support.patch popd - [ -d "${srcdir}"/$_realname-$pkgver ] && rm -rf "${srcdir}"/$_realname-$pkgver - mv "${srcdir}"/${_realname} "${srcdir}"/$_realname-$pkgver + [[ -d "${srcdir}"/$_realname-$pkgver ]] && rm -rf "${srcdir}"/${_realname}-${pkgver} + mv "${srcdir}"/${_realname} "${srcdir}"/${_realname}-${pkgver} } build() { - cd "${srcdir}"/$_realname-$pkgver/src + cd "${srcdir}"/${_realname}-${pkgver}/src - export GOROOT="$srcdir/$_realname-$pkgver" - export GOBIN="$GOROOT/bin" - export GOPATH="$srcdir/" + export GOROOT="${srcdir}/${_realname}-${pkgver}" + export GOBIN="${GOROOT}/bin" + export GOPATH="${srcdir}/" export GOROOT_FINAL=${MINGW_PREFIX}/lib/go export GO_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1" export CFLAGS="-D__USE_MINGW_ANSI_STDIO=1" @@ -53,15 +53,15 @@ package() { } package() { - cd "$_realname-$pkgver" + cd "${_realname}-${pkgver}" - export GOROOT="$srcdir/$_realname-$pkgver" - export GOBIN="$GOROOT/bin" + export GOROOT="${srcdir}/${_realname}-${pkgver}" + export GOBIN="${GOROOT}/bin" -# install -Dm755 "$srcdir/godoc" "${pkgdir}${MINGW_PREFIX}/bin/godoc" +# install -Dm755 "${srcdir}/godoc" "${pkgdir}${MINGW_PREFIX}/bin/godoc" mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/go" - install -Dm644 "${srcdir}"/$_realname-$pkgver/LICENSE \ + install -Dm644 "${srcdir}"/${_realname}-${pkgver}/LICENSE \ "${pkgdir}${MINGW_PREFIX}/share/licenses/go/LICENSE" mkdir -p \ @@ -83,7 +83,7 @@ package() { find "${pkgdir}${MINGW_PREFIX}/lib/go/src/" -type f -name '*.[ao]' -delete # Fix for FS#32813 - find "$pkgdir" -type f -name sql.go -exec chmod -x {} \; + find "${pkgdir}" -type f -name sql.go -exec chmod -x {} \; # Remove all executable source files find "${pkgdir}${MINGW_PREFIX}/lib/go/src" -type f -executable -delete From ed5ad20e6d64bac85a702aa6fd97cda385d152f8 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 26 Jul 2015 19:13:22 +0300 Subject: [PATCH 1369/2060] libmongoose: Makefile fixes --- mingw-w64-libmongoose-git/Makefile | 12 ++++++++++-- mingw-w64-libmongoose-git/PKGBUILD | 12 ++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/mingw-w64-libmongoose-git/Makefile b/mingw-w64-libmongoose-git/Makefile index 8ba469a490..b12985a761 100644 --- a/mingw-w64-libmongoose-git/Makefile +++ b/mingw-w64-libmongoose-git/Makefile @@ -6,6 +6,14 @@ SHARED_LIB=$(LIBNAME)-$(SONAME_MAJOR).dll STATIC_LIB=$(LIBNAME).a IMPORT_LIB=$(LIBNAME).dll.a +ifndef CC + CC=gcc +endif + +ifndef AR + AR=ar +endif + ifndef PREFIX PREFIX=/usr/local endif @@ -30,12 +38,12 @@ SRCS=mongoose.c OBJS=mongoose.o INCLUDE=. -all: $(SHARED_LIB) $(STATIC_LIB) +all: $(STATIC_LIB) $(SHARED_LIB) $(SHARED_LIB): $(OBJS) $(CC) $(OBJS) $(LDFLAGS) -o $(SHARED_LIB) -$(STATIC_LIB): +$(STATIC_LIB): $(OBJS) $(AR) rcs $(STATIC_LIB) $(OBJS) $(OBJS): $(SRCS) diff --git a/mingw-w64-libmongoose-git/PKGBUILD b/mingw-w64-libmongoose-git/PKGBUILD index 8ed756e061..6ad17f5155 100644 --- a/mingw-w64-libmongoose-git/PKGBUILD +++ b/mingw-w64-libmongoose-git/PKGBUILD @@ -1,23 +1,23 @@ # Maintainer: Renato Silva -_realname='libmongoose' +_realname=libmongoose pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) conflicts=(${MINGW_PACKAGE_PREFIX}-${_realname}) pkgver=r1793.41b405d -pkgrel=2 -url='https://github.com/cesanta/mongoose' +pkgrel=3 +url="https://github.com/cesanta/mongoose" pkgdesc='Embedded web server for C/C++ (mingw-w64)' license=('GPL2') arch=('any') depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs) #${MINGW_PACKAGE_PREFIX}-openssl makedepends=(${MINGW_PACKAGE_PREFIX}-gcc) -source=(${_realname}::'git+https://github.com/cesanta/mongoose' +source=(${_realname}::"git+https://github.com/cesanta/mongoose" mongoose.pc Makefile) sha1sums=('SKIP' '92c82813e7c1b277a0078c0e67addc7e159aec81' - 'c4a55e3cc984dba00258d81e2ab09e8e91ff4419') + '94385286bcb7e3639d03ba283dc43111062c4a23') pkgver() { cd "${srcdir}/${_realname}" @@ -31,7 +31,7 @@ prepare() { build() { cd "${srcdir}/${_realname}" - make PREFIX=${MINGW_PREFIX} CC=gcc -j1 + make PREFIX=${MINGW_PREFIX} CC=gcc AR=ar -j1 } package() { From 7e52eb2fb880d03f25f8d0aa05d88f9774cacb57 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 26 Jul 2015 19:17:57 +0300 Subject: [PATCH 1370/2060] hub: Format PKGBUILD. --- mingw-w64-hub/PKGBUILD | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/mingw-w64-hub/PKGBUILD b/mingw-w64-hub/PKGBUILD index e715485ba2..ded743c878 100644 --- a/mingw-w64-hub/PKGBUILD +++ b/mingw-w64-hub/PKGBUILD @@ -13,23 +13,23 @@ options=('!strip') #depends=('${MINGW_PACKAGE_PREFIX}-git') depends=('git') makedepends=("git ${MINGW_PACKAGE_PREFIX}-go") -source=(v${pkgver}.tar.gz::https://github.com/github/${_realname}/archive/v${pkgver}.tar.gz) +source=(${_realname}-${pkgver}.tar.gz::https://github.com/github/${_realname}/archive/v${pkgver}.tar.gz) md5sums=('889a31ee9d10ae9cb333480d8dbe881f') build() { - cd "$srcdir/${_realname}-${pkgver}" - GOROOT=/$MSYSTEM ./script/build - gzip --best -c man/${_realname}.1> ${_realname}.1.gz + cd "${srcdir}/${_realname}-${pkgver}" + GOROOT=${MINGW_PREFIX} ./script/build + gzip --best -c man/${_realname}.1> ${_realname}.1.gz } package() { - cd "$srcdir/${_realname}-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" - install -Dm755 "${_realname}" "${pkgdir}${MINGW_PREFIX}/bin/${_realname}" + install -Dm755 "${_realname}" "${pkgdir}${MINGW_PREFIX}/bin/${_realname}" - install -Dm644 "LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" - install -Dm644 "man/${_realname}.1" "${pkgdir}${MINGWPREFIX}/share/man/man1/${_realname}.1" + install -Dm644 "LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + install -Dm644 "man/${_realname}.1" "${pkgdir}${MINGWPREFIX}/share/man/man1/${_realname}.1" - install -Dm644 "etc/hub.bash_completion.sh" "${pkgdir}/usr/share/bash-completion/completions/hub" - install -Dm644 "etc/hub.zsh_completion" "${pkgdir}/usr/share/zsh/site-functions/_hub" + install -Dm644 "etc/hub.bash_completion.sh" "${pkgdir}/usr/share/bash-completion/completions/hub" + install -Dm644 "etc/hub.zsh_completion" "${pkgdir}/usr/share/zsh/site-functions/_hub" } From be652e43c8d2dc75bce7129483adb2910381b450 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 26 Jul 2015 20:08:17 +0300 Subject: [PATCH 1371/2060] go: Remove duplicated function --- mingw-w64-go/PKGBUILD | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/mingw-w64-go/PKGBUILD b/mingw-w64-go/PKGBUILD index 15122635da..4e9520b29e 100644 --- a/mingw-w64-go/PKGBUILD +++ b/mingw-w64-go/PKGBUILD @@ -41,17 +41,6 @@ build() { ./make.bat } -package() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - mkdir -p ${pkgdir}${MINGW_PREFIX}/src - - mv "${srcdir}/go/bin" "${pkgdir}${MINGW_PREFIX}/" - mv "${srcdir}/go/pkg" "${pkgdir}${MINGW_PREFIX}/" - - mv "${srcdir}/go/src/pkg" "${pkgdir}${MINGW_PREFIX}/src/" - mv "${srcdir}/go/src/cmd" "${pkgdir}${MINGW_PREFIX}/src/" -} - package() { cd "${_realname}-${pkgver}" @@ -68,7 +57,6 @@ package() { "${pkgdir}${MINGW_PREFIX}/"{share/go,lib/go,lib/go/src,lib/go/site/src} cp -r doc misc -t "${pkgdir}${MINGW_PREFIX}/share/go" -# ln -s ${MINGW_PREFIX}/share/go/doc "${pkgdir}${MINGW_PREFIX}/lib/go/doc" cp -a bin "${pkgdir}${MINGW_PREFIX}" cp -a pkg "${pkgdir}${MINGW_PREFIX}/lib/go" cp -a "$GOROOT/src" "${pkgdir}${MINGW_PREFIX}/lib/go/" From ecb81fb75b36a760336f46e7927de153588332cb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 26 Jul 2015 21:19:45 +0300 Subject: [PATCH 1372/2060] Update FAIL_LIST. --- FAIL_LIST.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 6cda6f1cda..4922792848 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -5,6 +5,8 @@ List of packages that currently fail to build - cegui (waiting for 0.8.5 release) +- cling - need maintainer to it + - cocos2dx-git - coq (OCAML issue) From dc4546f1534e9dcb541b29b9d104e91a995f1c22 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 27 Jul 2015 11:36:01 +0300 Subject: [PATCH 1373/2060] qemu: Update to 2.3.0 --- mingw-w64-qemu/001-time-functions.patch | 8 +++--- mingw-w64-qemu/PKGBUILD | 33 +++++++++++++------------ 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/mingw-w64-qemu/001-time-functions.patch b/mingw-w64-qemu/001-time-functions.patch index 64fc322250..aad399ff43 100644 --- a/mingw-w64-qemu/001-time-functions.patch +++ b/mingw-w64-qemu/001-time-functions.patch @@ -1,6 +1,6 @@ --- qemu-2.1.2/include/sysemu/os-win32.h.orig 2014-10-28 10:55:39.691000000 +0300 +++ qemu-2.1.2/include/sysemu/os-win32.h 2014-10-28 10:56:00.439000000 +0300 -@@ -75,6 +75,7 @@ +@@ -75,11 +75,13 @@ /* Declaration of ffs() is missing in MinGW's strings.h. */ int ffs(int i); @@ -8,11 +8,9 @@ /* Missing POSIX functions. Don't use MinGW-w64 macros. */ #undef gmtime_r struct tm *gmtime_r(const time_t *timep, struct tm *result); -@@ -82,6 +83,7 @@ + #undef localtime_r struct tm *localtime_r(const time_t *timep, struct tm *result); - - char *strtok_r(char *str, const char *delim, char **saveptr); +#endif + static inline void os_setup_signal_handling(void) {} - static inline void os_daemonize(void) {} diff --git a/mingw-w64-qemu/PKGBUILD b/mingw-w64-qemu/PKGBUILD index fd25c8ef95..d22acc026d 100644 --- a/mingw-w64-qemu/PKGBUILD +++ b/mingw-w64-qemu/PKGBUILD @@ -1,44 +1,45 @@ # Maintainer: Martell Malone _realname=qemu - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" - -pkgver=2.1.2 +pkgver=2.3.0 pkgrel=1 pkgdesc="A generic and open source processor emulator (mingw-w64)" arch=('any') license=('GPL2' 'LGPL2') url="http://qemu.org" -makedepends=('perl' 'python2' 'bison') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-python2" + 'perl' 'bison') depends=("${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-libjpeg" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-libssh2" #"${MINGW_PACKAGE_PREFIX}-libusb" "${MINGW_PACKAGE_PREFIX}-lzo2" - "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-pixman" "${MINGW_PACKAGE_PREFIX}-snappy" "${MINGW_PACKAGE_PREFIX}-SDL2") source=(http://wiki.qemu.org/download/${_realname}-${pkgver}.tar.bz2 001-time-functions.patch) -md5sums=('0ff197c4ed4b695620bc4734e77c888f' - '455e088562ac76945feb9252baa1a9fd') +md5sums=('2fab3ea4460de9b57192e5b8b311f221' + 'f663b8a1e192f5169604b565fad938de') options=('!strip' 'debug') - _pkgfqn="${_realname}-${pkgver}" noextract=(${_pkgfqn}.tar.bz2) + prepare() { - cd $startdir/ - [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} - tar -xjf ${startdir}/${_pkgfqn}.tar.bz2 -C $srcdir || true + [[ -d ${srcdir}/${_pkgfqn} ]] && rm -rf ${srcdir}/${_pkgfqn} + tar -xjf ${srcdir}/${_pkgfqn}.tar.bz2 -C ${srcdir} || true cd ${srcdir}/${_pkgfqn} patch -p1 -i ${srcdir}/001-time-functions.patch } build() { - export CC=${MINGW_PREFIX}/bin/gcc export CXX=${MINGW_PREFIX}/bin/g++ @@ -50,9 +51,9 @@ build() { extra_config+=("--disable-strip") fi - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ - --host-cc=$CC \ + --host-cc=${CC} \ --python=${MINGW_PREFIX}/bin/python2 \ --datadir=${MINGW_PREFIX}/etc/qemu \ --mandir=${MINGW_PREFIX}/share/qemu \ @@ -63,7 +64,8 @@ build() { --enable-lzo \ --enable-snappy \ --disable-docs \ - --disable-gtk \ + --enable-gtk \ + --with-gtkabi=3.0 \ --disable-xen \ --disable-smartcard-nss \ --disable-vnc-sasl \ @@ -71,7 +73,6 @@ build() { --disable-libusb \ --disable-bluez \ --disable-spice \ - --target-list=x86_64-softmmu,arm-softmmu,i386-softmmu \ "${extra_config[@]}" make From b395e62abbcf2ab83851948b1557c5a098ffce2e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 27 Jul 2015 19:21:43 +0300 Subject: [PATCH 1374/2060] fontconfig: Fix installing config files. --- .../0001-fix-config-linking.all.patch | 23 ++++++++----------- mingw-w64-fontconfig/PKGBUILD | 4 ++-- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/mingw-w64-fontconfig/0001-fix-config-linking.all.patch b/mingw-w64-fontconfig/0001-fix-config-linking.all.patch index 6e39c5411a..2a8551f7e1 100644 --- a/mingw-w64-fontconfig/0001-fix-config-linking.all.patch +++ b/mingw-w64-fontconfig/0001-fix-config-linking.all.patch @@ -1,17 +1,14 @@ --- fontconfig-2.10.92/conf.d/Makefile.am.orig 2013-04-13 06:32:27 +0400 +++ fontconfig-2.10.92/conf.d/Makefile.am 2013-04-13 06:37:08 +0400 -@@ -81,12 +81,8 @@ - install-data-hook: - mkdir -p $(DESTDIR)$(configdir) - @(echo cd $(DESTDIR)$(configdir); \ -- cd $(DESTDIR)$(configdir); \ -- for i in $(CONF_LINKS); do \ -- echo $(RM) $$i";" ln -s $(templatedir)/$$i .; \ -- $(RM) $$i; \ -- ln -s $(templatedir)/$$i .; \ -- done) -+ mkdir -p $(DESTDIR)$(templatedir); \ -+ ) - uninstall-local: +@@ -83,9 +83,9 @@ @(echo cd $(DESTDIR)$(configdir); \ cd $(DESTDIR)$(configdir); \ + for i in $(CONF_LINKS); do \ +- echo $(RM) $$i";" ln -s $(templatedir)/$$i .; \ ++ echo $(RM) $$i";" ln -s $(DESTDIR)$(templatedir)/$$i .; \ + $(RM) $$i; \ +- ln -s $(templatedir)/$$i .; \ ++ ln -s $(DESTDIR)$(templatedir)/$$i .; \ + done) + uninstall-local: + @(echo cd $(DESTDIR)$(configdir); \ diff --git a/mingw-w64-fontconfig/PKGBUILD b/mingw-w64-fontconfig/PKGBUILD index d1867d31a8..d9a1077ce7 100644 --- a/mingw-w64-fontconfig/PKGBUILD +++ b/mingw-w64-fontconfig/PKGBUILD @@ -4,7 +4,7 @@ _realname=fontconfig pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.11.94 -pkgrel=2 +pkgrel=3 pkgdesc="A library for configuring and customizing font access (mingw-w64)" arch=('any') url="http://www.fontconfig.org/release" @@ -24,7 +24,7 @@ source=("http://www.fontconfig.org/release/fontconfig-${pkgver}.tar.bz2" 0005-fix-setenv.mingw.patch 0007-pkgconfig.mingw.patch) sha256sums=('d763c024df434146f3352448bc1f4554f390c8a48340cef7aa9cc44716a159df' - 'a262d07c3d298af4a80caf027dab9ffa2fd2e5a8f11f1a04c82b14513791c041' + '1266d4bbd8270f013fee2401c890f0251babf50a175a69d681d3a6af5003c899' '0d950eb8a19858bff1f0b26e4a560f589e79e7eb7f22f723267748dfe55e0b63' '57ff8420dbf62873b6fcb38b52fb7b37e0e278425a9125e15dccba54668c8ab9' '552b54010f9fe4097f332cf2397bbd3e78489542d3bbf07792ed1cfe9381796e' From d66080f51238a800e8c41c14a5b66f643b40d048 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 28 Jul 2015 09:58:53 +0300 Subject: [PATCH 1375/2060] aspell-en: New package --- mingw-w64-aspell-en/001-unixy-dirs.patch | 15 ++++++++++ mingw-w64-aspell-en/PKGBUILD | 36 ++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 mingw-w64-aspell-en/001-unixy-dirs.patch create mode 100644 mingw-w64-aspell-en/PKGBUILD diff --git a/mingw-w64-aspell-en/001-unixy-dirs.patch b/mingw-w64-aspell-en/001-unixy-dirs.patch new file mode 100644 index 0000000000..7aca3e04db --- /dev/null +++ b/mingw-w64-aspell-en/001-unixy-dirs.patch @@ -0,0 +1,15 @@ +--- aspell6-en-7.1-0/configure.orig 2015-07-27 12:03:47.683663100 +0300 ++++ aspell6-en-7.1-0/configure 2015-07-27 12:05:05.653865300 +0300 +@@ -73,10 +73,12 @@ + + echo $ECHO_N "Finding Dictionary file location ... $ECHO_C" + dictdir=`$ASPELL dump config dict-dir` ++dictdir=`cygpath -u $dictdir` + echo $dictdir + + echo $ECHO_N "Finding Data file location ... $ECHO_C" + datadir=`$ASPELL dump config data-dir` ++datadir=`cygpath -u $datadir` + echo $datadir + + echo "ASPELL = `which $ASPELL`" > Makefile diff --git a/mingw-w64-aspell-en/PKGBUILD b/mingw-w64-aspell-en/PKGBUILD new file mode 100644 index 0000000000..2f6428c562 --- /dev/null +++ b/mingw-w64-aspell-en/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: Alexey Pavlov + +_realname=aspell-en +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=7.1 +pkgrel=1 +pkgdesc="English dictionary for aspell (mingw-w64)" +arch=('any') +url="http://aspell.net/" +license=('custom') +depends=("${MINGW_PACKAGE_PREFIX}-aspell") +source=(ftp://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-${pkgver}-0.tar.bz2 + 001-unixy-dirs.patch) +md5sums=('beba5e8f3afd3ed1644653bb685b2dfb' + '59759a5f0047312a49f5817a83a8a2f9') +sha1sums=('d45ccda0c03e2a679c2936487ec851a1896b8150' + 'a624663ef98117b62f45cab4ade44cce3105ef4d') + +prepare() { + cd "${srcdir}/aspell6-en-${pkgver}-0" + patch -p1 -i ${srcdir}/001-unixy-dirs.patch +} + +build() { + cd "${srcdir}/aspell6-en-${pkgver}-0" + ./configure + sed -i 's/C\:\\msys64\\/\//' Makefile + make +} + +package() { + cd "${srcdir}/aspell6-en-${pkgver}-0" + make DESTDIR="${pkgdir}" install + + install -D -m644 Copyright "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From 1f0042d683a2197162361886a704ffbcff1567d7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 28 Jul 2015 10:03:25 +0300 Subject: [PATCH 1376/2060] meld3: Update to 3.14.0 --- mingw-w64-meld3/PKGBUILD | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/mingw-w64-meld3/PKGBUILD b/mingw-w64-meld3/PKGBUILD index 26088287f0..fa7b97269d 100644 --- a/mingw-w64-meld3/PKGBUILD +++ b/mingw-w64-meld3/PKGBUILD @@ -2,31 +2,29 @@ _realname=meld pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.13.2 +pkgver=3.14.0 pkgrel=1 pkgdesc="Visual diff and merge tool (mingw-w64)" arch=('any') url="http://meldmerge.org/" license=("GPL" "LGPL") options=('strip' 'staticlibs') -depends=( - "${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-gtksourceview3" - "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" - "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-python2-gobject" - ) +depends=("${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gtksourceview3" + "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" + "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-python2-gobject") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - #"${MINGW_PACKAGE_PREFIX}-python2-cx_freeze" - 'intltool' - 'itstool') + "${MINGW_PACKAGE_PREFIX}-pkg-config" + #"${MINGW_PACKAGE_PREFIX}-python2-cx_freeze" + 'intltool' + 'itstool') install=meld-${CARCH}.install source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz '0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch' "0002-build-exe.patch") -md5sums=('f741528032f2b52d975d3dde60bebffd' +md5sums=('7d09e818726ee09e84d305feef79695c' '6ddb432315e37fed974491a27fd15736' 'c4770167f70e061c1f94d8c3fa3e7150') From 42eae7f946f12e1d30aa300c66b42cf1253ab1ec Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 28 Jul 2015 10:20:18 +0300 Subject: [PATCH 1377/2060] mesa: Update to 10.6.3 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 4caac9de8c..70ecf232e1 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -2,7 +2,7 @@ _realname=mesa pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.6.2 +pkgver=10.6.3 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('3402949cae357ddf61a24c2518e87c22' +md5sums=('553e525d2f20ed48fca8f1ec3176fd83' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From b260b46ae77b562c48e0887d6c9116d684f4de7b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 28 Jul 2015 11:13:16 +0300 Subject: [PATCH 1378/2060] glib-networking: Fix certificates location. --- mingw-w64-glib-networking/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-glib-networking/PKGBUILD b/mingw-w64-glib-networking/PKGBUILD index 5f767ed9e5..8459b8f808 100644 --- a/mingw-w64-glib-networking/PKGBUILD +++ b/mingw-w64-glib-networking/PKGBUILD @@ -3,7 +3,7 @@ _realname=glib-networking pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.44.0 -pkgrel=2 +pkgrel=3 pkgdesc="Network-related GIO modules for glib (mingw-w64)" arch=(any) url="http://ftp.gnome.org/pub/GNOME/sources/libsoup" @@ -48,7 +48,7 @@ build() { --host=${MINGW_CHOST} \ --without-libproxy \ --without-gnome-proxy \ - --with-ca-certificates=../ssl/certs/ca-bundle.crt \ + --with-ca-certificates=ssl/certs/ca-bundle.crt \ --with-pkcs11 make From d76daade9de7084d3854d45c94c1ae5a8f6a0449 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 28 Jul 2015 11:45:52 +0300 Subject: [PATCH 1379/2060] winpthreads: Temporarly revert broken commits. --- mingw-w64-winpthreads-git/PKGBUILD | 13 +- .../libwinpthread-revert.patch | 1076 +++++++++++++++++ 2 files changed, 1084 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-winpthreads-git/libwinpthread-revert.patch diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index 92e7bea068..9f77723a3a 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=winpthreads pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") -pkgver=5.0.0.4531.49c7046 +pkgver=5.0.0.4538.78dca70 pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" url="http://mingw-w64.sourceforge.net" @@ -21,9 +21,11 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-headers-git") options=('strip' '!buildflags' 'staticlibs' '!emptydirs' '!debug') source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" - "0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch") + "0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch" + "libwinpthread-revert.patch") md5sums=('SKIP' - '74a4dab06a8fa113407a6e11fdb3c962') + '74a4dab06a8fa113407a6e11fdb3c962' + '9dcb95ccf4d4a32fbbd7b4e28acd5152') pkgver() { cd "${srcdir}/mingw-w64" @@ -36,12 +38,13 @@ pkgver() { prepare() { cd "${srcdir}/mingw-w64" git am "${srcdir}"/0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch + git apply --reverse "${srcdir}"/libwinpthread-revert.patch cd "${srcdir}"/mingw-w64/mingw-w64-libraries/winpthreads autoreconf -vfi } build() { - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}"/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} declare -a extra_config @@ -51,7 +54,7 @@ build() { extra_config+=("CXXFLAGS=") fi - "${srcdir}"/mingw-w64/mingw-w64-libraries/winpthreads/configure \ + ../mingw-w64/mingw-w64-libraries/winpthreads/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-winpthreads-git/libwinpthread-revert.patch b/mingw-w64-winpthreads-git/libwinpthread-revert.patch new file mode 100644 index 0000000000..31e5bc7be3 --- /dev/null +++ b/mingw-w64-winpthreads-git/libwinpthread-revert.patch @@ -0,0 +1,1076 @@ +From 1968e60cd5d59727bb325d5b69c8f0d7a2f1fe1b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= +Date: Thu, 14 May 2015 16:08:31 +0200 +Subject: [PATCH] Rewrite the mutex implementation for better performance. + + This mutex reimplementation attempts to optimise for the common case: + default mutex type and no contention. Allocation of expensive + resources (heap memory and Windows kernel objects) is delayed until + needed, which may be never if the lock isn't subsequently used or + contended. + + The global spinlock of the old implementation is gone; performance is + orders of magnitude better and scales nicely with multiple + threads. This has been confirmed both in micro-benchmarks and actual + applications. + + The reimplementation is fully binary compatible. It does not do nearly + as much error-checking as the old one, but should be strictly within + the limits of what Posix allows. + + Code in thread.c relied on undefined behaviour (pthread_mutex_destroy + called twice on the same mutex) so an explicit reinitialisation had to + be added. +--- + mingw-w64-libraries/winpthreads/src/cond.c | 1 - + mingw-w64-libraries/winpthreads/src/mutex.c | 609 +++++++++------------------ + mingw-w64-libraries/winpthreads/src/mutex.h | 60 --- + mingw-w64-libraries/winpthreads/src/ref.c | 1 - + mingw-w64-libraries/winpthreads/src/sem.c | 1 - + mingw-w64-libraries/winpthreads/src/sem.h | 3 +- + mingw-w64-libraries/winpthreads/src/thread.c | 3 + + 7 files changed, 208 insertions(+), 470 deletions(-) + delete mode 100644 mingw-w64-libraries/winpthreads/src/mutex.h + +diff --git a/mingw-w64-libraries/winpthreads/src/cond.c b/mingw-w64-libraries/winpthreads/src/cond.c +index d38513b..7910bb2 100644 +--- a/mingw-w64-libraries/winpthreads/src/cond.c ++++ b/mingw-w64-libraries/winpthreads/src/cond.c +@@ -32,7 +32,6 @@ + #include "pthread_time.h" + #include "ref.h" + #include "cond.h" +-#include "mutex.h" + #include "thread.h" + #include "misc.h" + #include "winpthread_internal.h" +diff --git a/mingw-w64-libraries/winpthreads/src/mutex.c b/mingw-w64-libraries/winpthreads/src/mutex.c +index aa3e1ea..fec341a 100644 +--- a/mingw-w64-libraries/winpthreads/src/mutex.c ++++ b/mingw-w64-libraries/winpthreads/src/mutex.c +@@ -1,5 +1,6 @@ + /* + Copyright (c) 2011, 2014 mingw-w64 project ++ Copyright (c) 2015 Intel Corporation + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), +@@ -21,469 +22,267 @@ + */ + + #include +-#include + #include + #include ++#include + #include "pthread.h" +-#include "ref.h" +-#include "mutex.h" + #include "misc.h" + +-extern int do_sema_b_wait_intern (HANDLE sema, int nointerrupt, DWORD timeout); +-static WINPTHREADS_ATTRIBUTE((noinline)) int mutex_static_init(pthread_mutex_t *m); +-static WINPTHREADS_ATTRIBUTE((noinline)) int _mutex_trylock(pthread_mutex_t *m); +- +-static pthread_spinlock_t mutex_global = PTHREAD_SPINLOCK_INITIALIZER; +-static pthread_spinlock_t mutex_global_static = PTHREAD_SPINLOCK_INITIALIZER; +- +-static WINPTHREADS_ATTRIBUTE((noinline)) int +-mutex_unref (pthread_mutex_t *m, int r) +-{ +- mutex_t *m_ = (mutex_t *)*m; +- pthread_spin_lock (&mutex_global); +-#ifdef WINPTHREAD_DBG +- assert((m_->valid == LIFE_MUTEX) && (m_->busy > 0)); +-#endif +- if (m_->valid == LIFE_MUTEX && m_->busy > 0) +- m_->busy -= 1; +- pthread_spin_unlock (&mutex_global); +- return r; ++typedef enum { ++ Unlocked, /* Not locked. */ ++ Locked, /* Locked but without waiters. */ ++ Waiting, /* Locked, may have waiters. */ ++} mutex_state_t; ++ ++typedef enum { ++ Normal, ++ Errorcheck, ++ Recursive, ++} mutex_type_t; ++ ++/* The heap-allocated part of a mutex. */ ++typedef struct { ++ mutex_state_t state; ++ mutex_type_t type; ++ HANDLE event; /* Auto-reset event, or NULL if not yet allocated. */ ++ unsigned rec_lock; /* For recursive mutexes, the number of times the ++ mutex has been locked in excess by the same thread. */ ++ volatile DWORD owner; /* For recursive and error-checking mutexes, the ++ ID of the owning thread if the mutex is locked. */ ++} mutex_impl_t; ++ ++/* Whether a mutex is still a static initializer (not a pointer to ++ a mutex_impl_t). */ ++static bool ++is_static_initializer(pthread_mutex_t m) ++{ ++ return (uintptr_t)m >= (uintptr_t)-3; + } + +-/* Set the mutex to busy in a thread-safe way */ +-/* A busy mutex can't be destroyed */ +-static WINPTHREADS_ATTRIBUTE((noinline)) int +-mutex_ref (pthread_mutex_t *m) ++/* Create and return the implementation part of a mutex from a static ++ initialiser. Return NULL on out-of-memory error. */ ++static WINPTHREADS_ATTRIBUTE((noinline)) mutex_impl_t * ++mutex_impl_init(pthread_mutex_t *m, mutex_impl_t *mi) + { +- int r = 0; +- +- pthread_spin_lock (&mutex_global); +- +- if (!m || !*m) +- { +- pthread_spin_unlock (&mutex_global); +- return EINVAL; +- } +- +- if (STATIC_INITIALIZER(*m)) +- { +- pthread_spin_unlock (&mutex_global); +- r = mutex_static_init (m); +- pthread_spin_lock (&mutex_global); +- +- if (r != 0 && r != EBUSY) +- { +- pthread_spin_unlock (&mutex_global); +- return r; +- } ++ mutex_impl_t *new_mi = malloc(sizeof(mutex_impl_t)); ++ if (new_mi == NULL) ++ return NULL; ++ new_mi->state = Unlocked; ++ new_mi->type = (mi == PTHREAD_RECURSIVE_MUTEX_INITIALIZER ? Recursive ++ : mi == PTHREAD_ERRORCHECK_MUTEX_INITIALIZER ? Errorcheck ++ : Normal); ++ new_mi->event = NULL; ++ new_mi->rec_lock = 0; ++ new_mi->owner = (DWORD)-1; ++ if (__sync_bool_compare_and_swap(m, mi, new_mi)) { ++ return new_mi; ++ } else { ++ /* Someone created the struct before us. */ ++ free(new_mi); ++ return *m; + } +- +- r = 0; +- +- if (!m || !*m || ((mutex_t *)*m)->valid != LIFE_MUTEX) +- r = EINVAL; +- else +- ((mutex_t *)*m)->busy += 1; +- +- pthread_spin_unlock (&mutex_global); +- +- return r; + } + +-/* An unlock can simply fail with EPERM instead of auto-init (can't be owned) */ +-static WINPTHREADS_ATTRIBUTE((noinline)) int +-mutex_ref_unlock (pthread_mutex_t *m) +-{ +- int r = 0; +- mutex_t *m_ = (mutex_t *)*m; +- +- pthread_spin_lock (&mutex_global); +- +- if (!m || !*m || ((mutex_t *)*m)->valid != LIFE_MUTEX) +- r = EINVAL; +- else if (STATIC_INITIALIZER(*m) || !COND_LOCKED(m_)) +- r = EPERM; +- else +- ((mutex_t *)*m)->busy ++; +- +- pthread_spin_unlock (&mutex_global); +- +- return r; +-} ++#define likely(cond) __builtin_expect((cond) != 0, 1) ++#define unlikely(cond) __builtin_expect((cond) != 0, 0) + +-/* doesn't lock the mutex but set it to invalid in a thread-safe way */ +-/* A busy mutex can't be destroyed -> EBUSY */ +-static WINPTHREADS_ATTRIBUTE((noinline)) int +-mutex_ref_destroy (pthread_mutex_t *m, pthread_mutex_t *mDestroy) ++/* Return the implementation part of a mutex, creating it if necessary. ++ Return NULL on out-of-memory error. */ ++static inline mutex_impl_t * ++mutex_impl(pthread_mutex_t *m) + { +- pthread_mutex_t mx; +- mutex_t *m_; +- int r = 0; +- +- if (!m || !*m) +- return EINVAL; +- +- *mDestroy = NULL; +- /* also considered as busy, any concurrent access prevents destruction: */ +- mx = *m; +- r = pthread_mutex_trylock (&mx); +- if (r) +- return r; +- +- pthread_spin_lock (&mutex_global); +- +- if (!*m) +- r = EINVAL; +- else +- { +- m_ = (mutex_t *)*m; +- if (STATIC_INITIALIZER(*m)) +- *m = NULL; +- else if (m_->valid != LIFE_MUTEX) +- r = EINVAL; +- else if (m_->busy) +- r = 0xbeef; +- else +- { +- *mDestroy = *m; +- *m = NULL; +- } +- } +- +- if (r) +- { +- pthread_spin_unlock (&mutex_global); +- pthread_mutex_unlock (&mx); +- } +- return r; +-} +- +-static WINPTHREADS_ATTRIBUTE((noinline)) int +-mutex_ref_init (pthread_mutex_t *m) +-{ +- int r = 0; +- +- pthread_spin_lock (&mutex_global); +- +- if (!m) r = EINVAL; +- +- if (r) +- pthread_spin_unlock (&mutex_global); +- return r; +-} +- +-#ifdef WINPTHREAD_DBG +-static int print_state = 1; +- +-void mutex_print_set (int state) +-{ +- print_state = state; +-} +- +-void mutex_print (volatile pthread_mutex_t *m, char *txt) +-{ +- if (!print_state) +- return; +- mutex_t *m_ = (mutex_t *)*m; +- if (m_ == NULL) { +- printf("M%p %d %s\n",*m,(int)GetCurrentThreadId(),txt); ++ mutex_impl_t *mi = *m; ++ if (is_static_initializer(mi)) { ++ return mutex_impl_init(m, mi); + } else { +- printf("M%p %d V=%0X B=%d t=%d o=%d C=%d R=%d H=%p %s\n", +- *m, +- (int)GetCurrentThreadId(), +- (int)m_->valid, +- (int)m_->busy, +- m_->type, +- (int)GET_OWNER(m_),(int)(m_->count),(int)GET_RCNT(m_),GET_HANDLE(m_),txt); ++ /* mi cannot be null here; avoid a test in the fast path. */ ++ if (mi == NULL) ++ __builtin_unreachable(); ++ return mi; + } + } +-#endif + +-static WINPTHREADS_ATTRIBUTE((noinline)) int +-mutex_static_init (pthread_mutex_t *m) +-{ +- static pthread_mutexattr_t mxattr_recursive = PTHREAD_MUTEX_RECURSIVE; +- static pthread_mutexattr_t mxattr_errorcheck = PTHREAD_MUTEX_ERRORCHECK; +- +- int r; +- +- pthread_spin_lock (&mutex_global_static); +- if (!STATIC_INITIALIZER(*m)) +- /* Assume someone crept in between: */ +- r = 0; +- else +- { +- if (*m == PTHREAD_MUTEX_INITIALIZER) +- r = pthread_mutex_init (m, NULL); +- else if (*m == PTHREAD_RECURSIVE_MUTEX_INITIALIZER) +- r = pthread_mutex_init (m, &mxattr_recursive); +- else if (*m == PTHREAD_ERRORCHECK_MUTEX_INITIALIZER) +- r = pthread_mutex_init (m, &mxattr_errorcheck); +- else if (*m == NULL) +- r = EINVAL; +- else +- r = pthread_mutex_init (m, NULL); +- } +- +- pthread_spin_unlock (&mutex_global_static); +- return r; +-} +- +-static int pthread_mutex_lock_intern(pthread_mutex_t *m, DWORD timeout); +- +-int +-pthread_mutex_lock (pthread_mutex_t *m) +-{ +- return pthread_mutex_lock_intern (m, INFINITE); +-} +- +-static int ++/* Lock a mutex. Give up after 'timeout' ms (with ETIMEDOUT), ++ or never if timeout=INFINITE. */ ++static inline int + pthread_mutex_lock_intern (pthread_mutex_t *m, DWORD timeout) + { +- mutex_t *_m; +- int r; +- HANDLE h; ++ mutex_impl_t *mi = mutex_impl(m); ++ if (mi == NULL) ++ return ENOMEM; ++ ++ mutex_state_t old_state = __sync_lock_test_and_set(&mi->state, Locked); ++ if (unlikely(old_state != Unlocked)) { ++ /* The mutex is already locked. */ ++ ++ if (mi->type != Normal) { ++ /* Recursive or Errorcheck */ ++ if (mi->owner == GetCurrentThreadId()) { ++ /* FIXME: A recursive mutex should not need two atomic ops when locking ++ recursively. We could rewrite by doing compare-and-swap instead of ++ test-and-set the first time, but it would lead to more code ++ duplication and add a conditional branch to the critical path. */ ++ __sync_bool_compare_and_swap(&mi->state, Locked, old_state); ++ if (mi->type == Recursive) { ++ mi->rec_lock++; ++ return 0; ++ } else { ++ /* type == Errorcheck */ ++ return EDEADLK; ++ } ++ } ++ } + +- r = mutex_ref (m); +- if (r) +- return r; ++ /* Make sure there is an event object on which to wait. */ ++ if (mi->event == NULL) { ++ /* Make an auto-reset event object. */ ++ HANDLE ev = CreateEvent(NULL, false, false, NULL); ++ if (ev == NULL) { ++ switch (GetLastError()) { ++ case ERROR_ACCESS_DENIED: ++ return EPERM; ++ default: ++ return ENOMEM; /* Probably accurate enough. */ ++ } ++ } ++ if (!__sync_bool_compare_and_swap(&mi->event, NULL, ev)) { ++ /* Someone created the event before us. */ ++ CloseHandle(ev); ++ } ++ } + +- _m = (mutex_t *) *m; +- if (_m->type != PTHREAD_MUTEX_NORMAL) +- { +- if (COND_LOCKED(_m)) +- { +- if (COND_OWNER(_m)) +- { +- if (_m->type == PTHREAD_MUTEX_RECURSIVE) +- { +- InterlockedIncrement(&_m->count); +- return mutex_unref(m,0); +- } +- +- return mutex_unref(m, EDEADLK); ++ /* At this point, mi->event is non-NULL. */ ++ ++ while (__sync_lock_test_and_set(&mi->state, Waiting) != Unlocked) { ++ /* For timed locking attempts, it is possible (although unlikely) ++ that we are woken up but someone else grabs the lock before us, ++ and we have to go back to sleep again. In that case, the total ++ wait may be longer than expected. */ ++ ++ unsigned r = WaitForSingleObject(mi->event, timeout); ++ switch (r) { ++ case WAIT_TIMEOUT: ++ return ETIMEDOUT; ++ case WAIT_OBJECT_0: ++ break; ++ default: ++ return EINVAL; + } + } + } +- +- h = _m->h; +- mutex_unref (m, 0); +- +- r = do_sema_b_wait_intern (h, 1, timeout); + +- if (r != 0) +- return r; +- +- r = mutex_ref (m); +- if (r) +- return r; ++ if (mi->type != Normal) ++ mi->owner = GetCurrentThreadId(); + +- _m->count = 1; +- SET_OWNER(_m); ++ return 0; ++} + +- return mutex_unref (m, r); ++int ++pthread_mutex_lock (pthread_mutex_t *m) ++{ ++ return pthread_mutex_lock_intern (m, INFINITE); + } + + int pthread_mutex_timedlock(pthread_mutex_t *m, const struct timespec *ts) + { +- unsigned long long t, ct; +- int r; +- mutex_t *_m; +- +- if (!ts) +- return pthread_mutex_lock(m); +- +- r = mutex_ref(m); +- if (r) +- return r; +- +- /* Try to lock it without waiting */ +- r = _mutex_trylock (m); +- if (r != EBUSY) +- return mutex_unref(m,r); +- +- _m = (mutex_t *)*m; +- if (_m->type != PTHREAD_MUTEX_NORMAL && COND_LOCKED(_m) && COND_OWNER(_m)) +- return mutex_unref(m,EDEADLK); +- +- ct = _pthread_time_in_ms(); +- t = _pthread_time_in_ms_from_timespec(ts); +- mutex_unref(m,r); +- r = pthread_mutex_lock_intern(m, (ct > t ? 0 : (t - ct))); +- return r; ++ unsigned long long patience; ++ if (ts != NULL) { ++ unsigned long long end = _pthread_time_in_ms_from_timespec(ts); ++ unsigned long long now = _pthread_time_in_ms(); ++ patience = end > now ? end - now : 0; ++ if (patience > 0xffffffff) ++ patience = INFINITE; ++ } else { ++ patience = INFINITE; ++ } ++ return pthread_mutex_lock_intern(m, patience); + } + + int pthread_mutex_unlock(pthread_mutex_t *m) + { +- mutex_t *_m; +- int r = mutex_ref_unlock(m); +- +- if(r) { +- return r; +- } +- +- _m = (mutex_t *)*m; +- +- if (_m->type == PTHREAD_MUTEX_NORMAL) +- { +- if (!COND_LOCKED(_m)) +- { +- return mutex_unref(m, EPERM); +- } +- } +- else if (!COND_LOCKED(_m) || !COND_OWNER(_m)) { +- return mutex_unref(m,EPERM); +- } +- +- if (_m->type == PTHREAD_MUTEX_RECURSIVE) +- { +- if(InterlockedDecrement(&_m->count)) { +- return mutex_unref(m,0); +- } ++ /* Here m might an initialiser of an error-checking or recursive mutex, in ++ which case the behaviour is well-defined, so we can't skip this check. */ ++ mutex_impl_t *mi = mutex_impl(m); ++ if (mi == NULL) ++ return ENOMEM; ++ ++ if (unlikely(mi->type != Normal)) { ++ if (mi->state == Unlocked) ++ return EINVAL; ++ if (mi->owner != GetCurrentThreadId()) ++ return EPERM; ++ if (mi->rec_lock > 0) { ++ mi->rec_lock--; ++ return 0; ++ } ++ mi->owner = (DWORD)-1; + } +- UNSET_OWNER(_m); +- +- if (_m->h != NULL && !ReleaseSemaphore(_m->h, 1, NULL)) { +- SET_OWNER(_m); +- /* restore our own bookkeeping */ +- return mutex_unref(m,EPERM); ++ if (unlikely(__sync_lock_test_and_set(&mi->state, Unlocked) == Waiting)) { ++ if (!SetEvent(mi->event)) ++ return EPERM; + } +- +- return mutex_unref(m,0); ++ return 0; + } + +-static WINPTHREADS_ATTRIBUTE((noinline)) int +-_mutex_trylock(pthread_mutex_t *m) ++int pthread_mutex_trylock(pthread_mutex_t *m) + { +- int r = 0; +- mutex_t *_m = (mutex_t *)*m; +- +- if (_m->type != PTHREAD_MUTEX_NORMAL) +- { +- if (COND_LOCKED(_m)) +- { +- if (_m->type == PTHREAD_MUTEX_RECURSIVE && COND_OWNER(_m)) +- { +- InterlockedIncrement(&_m->count); +- return 0; +- } +- +- return EBUSY; ++ mutex_impl_t *mi = mutex_impl(m); ++ if (mi == NULL) ++ return ENOMEM; ++ ++ if (__sync_bool_compare_and_swap(&mi->state, Unlocked, Locked)) { ++ if (mi->type != Normal) ++ mi->owner = GetCurrentThreadId(); ++ return 0; ++ } else { ++ if (mi->type == Recursive && mi->owner == GetCurrentThreadId()) { ++ mi->rec_lock++; ++ return 0; + } +- } else if (COND_LOCKED(_m)) + return EBUSY; +- +- r = do_sema_b_wait_intern (_m->h, 1, 0); +- +- if (r == ETIMEDOUT) +- r = EBUSY; +- else if (!r) +- { +- _m->count = 1; +- SET_OWNER(_m); + } +- +- return r; +-} +- +-int pthread_mutex_trylock(pthread_mutex_t *m) +-{ +- int r = mutex_ref(m); +- if(r) +- return r; +- +- return mutex_unref(m,_mutex_trylock(m)); + } + + int + pthread_mutex_init (pthread_mutex_t *m, const pthread_mutexattr_t *a) + { +- mutex_t *_m; +- +- int r = mutex_ref_init (m); +- if (r) +- return r; +- +- if (!(_m = (pthread_mutex_t)calloc(1,sizeof(*_m)))) +- { +- pthread_spin_unlock (&mutex_global); +- return ENOMEM; +- } +- +- _m->type = PTHREAD_MUTEX_DEFAULT; +- _m->count = 0; +- _m->busy = 0; +- +- if (a) +- { +- int share = PTHREAD_PROCESS_PRIVATE; +- r = pthread_mutexattr_gettype (a, &_m->type); +- if (!r) +- r = pthread_mutexattr_getpshared(a, &share); +- +- if (!r && share == PTHREAD_PROCESS_SHARED) +- r = ENOSYS; +- } +- +- if (!r) +- { +- if ((_m->h = CreateSemaphore(NULL, 1, 0x7fffffff, NULL)) == NULL) +- { +- switch (GetLastError()) { +- case ERROR_ACCESS_DENIED: +- r = EPERM; +- break; +- default: /* We assume this, to keep it simple: */ +- r = ENOMEM; ++ pthread_mutex_t init = PTHREAD_MUTEX_INITIALIZER; ++ if (a != NULL) { ++ int pshared; ++ if (pthread_mutexattr_getpshared(a, &pshared) == 0 ++ && pshared == PTHREAD_PROCESS_SHARED) ++ return ENOSYS; ++ ++ int type; ++ if (pthread_mutexattr_gettype(a, &type) == 0) { ++ switch (type) { ++ case PTHREAD_MUTEX_ERRORCHECK: ++ init = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER; ++ break; ++ case PTHREAD_MUTEX_RECURSIVE: ++ init = PTHREAD_RECURSIVE_MUTEX_INITIALIZER; ++ break; ++ default: ++ init = PTHREAD_MUTEX_INITIALIZER; ++ break; + } + } +- } +- +- if (r) +- { +- _m->valid = DEAD_MUTEX; +- free(_m); +- *m = NULL; +- pthread_spin_unlock (&mutex_global); +- return r; + } +- +- _m->valid = LIFE_MUTEX; +- *m = _m; +- pthread_spin_unlock (&mutex_global); +- ++ *m = init; + return 0; + } + + int pthread_mutex_destroy (pthread_mutex_t *m) + { +- mutex_t *_m; +- pthread_mutex_t mDestroy; +- int r; +- +- while ((r = mutex_ref_destroy (m, &mDestroy)) == 0xbeef) +- Sleep (0); +- if (r) +- return r; +- +- if (!mDestroy) +- { +- pthread_spin_unlock (&mutex_global); +- return 0; /* destroyed a (still) static initialized mutex */ ++ mutex_impl_t *mi = *m; ++ if (!is_static_initializer(mi)) { ++ if (mi->event != NULL) ++ CloseHandle(mi->event); ++ free(mi); ++ /* Sabotage attempts to re-use the mutex before initialising it again. */ ++ *m = NULL; + } + +- /* now the mutex is invalid, and no one can touch it */ +- _m = (mutex_t *)mDestroy; +- +- CloseHandle (_m->h); +- _m->valid = DEAD_MUTEX; +- _m->type = 0; +- _m->count = 0; +- _m->busy = 0; +- free (mDestroy); +- *m = NULL; +- pthread_spin_unlock (&mutex_global); +- + return 0; + } + +diff --git a/mingw-w64-libraries/winpthreads/src/mutex.h b/mingw-w64-libraries/winpthreads/src/mutex.h +deleted file mode 100644 +index c8e3cac..0000000 +--- a/mingw-w64-libraries/winpthreads/src/mutex.h ++++ /dev/null +@@ -1,60 +0,0 @@ +-/* +- Copyright (c) 2011 mingw-w64 project +- +- Permission is hereby granted, free of charge, to any person obtaining a +- copy of this software and associated documentation files (the "Software"), +- to deal in the Software without restriction, including without limitation +- the rights to use, copy, modify, merge, publish, distribute, sublicense, +- and/or sell copies of the Software, and to permit persons to whom the +- Software is furnished to do so, subject to the following conditions: +- +- The above copyright notice and this permission notice shall be included in +- all copies or substantial portions of the Software. +- +- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +- DEALINGS IN THE SOFTWARE. +-*/ +- +-#ifndef WIN_PTHREADS_MUTEX_H +-#define WIN_PTHREADS_MUTEX_H +- +-#define COND_LOCKED(m) (m->owner != 0) +-#define COND_OWNER(m) (m->owner == GetCurrentThreadId()) +-#define COND_DEADLK(m) COND_OWNER(m) +-#define GET_OWNER(m) (m->owner) +-#define GET_HANDLE(m) (m->h) +-#define GET_LOCKCNT(m) (m->count) +-#define GET_RCNT(m) (m->count) /* not accurate! */ +-#define SET_OWNER(m) (m->owner = GetCurrentThreadId()) +-#define UNSET_OWNER(m) { m->owner = 0; } +-#define LOCK_UNDO(m) +-#define COND_DEADLK_NR(m) ((m->type != PTHREAD_MUTEX_RECURSIVE) && COND_DEADLK(m)) +-#define CHECK_DEADLK(m) { if (COND_DEADLK_NR(m)) return EDEADLK; } +- +-#define STATIC_INITIALIZER(x) ((intptr_t)(x) >= -3 && (intptr_t)(x) <= -1) +-#define MUTEX_INITIALIZER2TYPE(x) ((LONGBAG)PTHREAD_NORMAL_MUTEX_INITIALIZER - (LONGBAG)(x)) +- +-#define LIFE_MUTEX 0xBAB1F00D +-#define DEAD_MUTEX 0xDEADBEEF +- +-typedef struct mutex_t mutex_t; +-struct mutex_t +-{ +- LONG valid; +- volatile LONG busy; +- int type; +- volatile LONG count; +- LONG lockOwner; +- DWORD owner; +- HANDLE h; +-}; +- +-void mutex_print(volatile pthread_mutex_t *m, char *txt); +-void mutex_print_set(int state); +- +-#endif +diff --git a/mingw-w64-libraries/winpthreads/src/ref.c b/mingw-w64-libraries/winpthreads/src/ref.c +index 65d7655..521a033 100644 +--- a/mingw-w64-libraries/winpthreads/src/ref.c ++++ b/mingw-w64-libraries/winpthreads/src/ref.c +@@ -25,7 +25,6 @@ + #include + #include "pthread.h" + #include "semaphore.h" +-#include "mutex.h" + #include "rwlock.h" + #include "cond.h" + #include "barrier.h" +diff --git a/mingw-w64-libraries/winpthreads/src/sem.c b/mingw-w64-libraries/winpthreads/src/sem.c +index d4a9a68..0b8af77 100644 +--- a/mingw-w64-libraries/winpthreads/src/sem.c ++++ b/mingw-w64-libraries/winpthreads/src/sem.c +@@ -28,7 +28,6 @@ + #include "misc.h" + #include "semaphore.h" + #include "sem.h" +-#include "mutex.h" + #include "ref.h" + + int do_sema_b_wait_intern (HANDLE sema, int nointerrupt, DWORD timeout); +diff --git a/mingw-w64-libraries/winpthreads/src/sem.h b/mingw-w64-libraries/winpthreads/src/sem.h +index b97516e..58eabf9 100644 +--- a/mingw-w64-libraries/winpthreads/src/sem.h ++++ b/mingw-w64-libraries/winpthreads/src/sem.h +@@ -24,7 +24,6 @@ + #define WIN_SEM + + #include +-#include "mutex.h" + + #define LIFE_SEM 0xBAB1F00D + #define DEAD_SEM 0xDEADBEEF +@@ -38,4 +37,4 @@ struct _sem_t + pthread_mutex_t vlock; + }; + +-#endif /* WIN_SEM */ +\ No newline at end of file ++#endif /* WIN_SEM */ +diff --git a/mingw-w64-libraries/winpthreads/src/thread.c b/mingw-w64-libraries/winpthreads/src/thread.c +index 1f7968f..ceea98e 100644 +--- a/mingw-w64-libraries/winpthreads/src/thread.c ++++ b/mingw-w64-libraries/winpthreads/src/thread.c +@@ -1514,6 +1514,9 @@ pthread_create_wrapper (void *args) + { + pthread_mutex_unlock (&tv->p_clock); + pthread_mutex_destroy (&tv->p_clock); ++ /* Reinitialise p_clock, since there may be attempts at ++ destroying it again in __dyn_tls_thread later on. */ ++ tv->p_clock = PTHREAD_MUTEX_INITIALIZER; + tv->ended = 1; + } + while (pthread_mutex_unlock (&mtx_pthr_locked) == 0) +-- +2.4.5 + +From 249898d9ae310959116efa333e4e3e690cf97452 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= +Date: Thu, 14 May 2015 16:19:34 +0200 +Subject: [PATCH] Rewrite the pthread spinlock implementation. + + This implementation lets the pthread spinlocks just be spinlocks, as + they should be. It makes them much faster in every respect. + + Since these spinlocks are used in many other places in the library, + those routines have now become measureably faster as well. For + example, pthread_getspecific has gained substantial speed as a result. +--- + mingw-w64-libraries/winpthreads/src/spinlock.c | 154 +++---------------------- + 1 file changed, 19 insertions(+), 135 deletions(-) + +diff --git a/mingw-w64-libraries/winpthreads/src/spinlock.c b/mingw-w64-libraries/winpthreads/src/spinlock.c +index b319863..e55e929 100644 +--- a/mingw-w64-libraries/winpthreads/src/spinlock.c ++++ b/mingw-w64-libraries/winpthreads/src/spinlock.c +@@ -1,5 +1,6 @@ + /* + Copyright (c) 2013 mingw-w64 project ++ Copyright (c) 2015 Intel Corporation + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), +@@ -20,78 +21,22 @@ + DEALINGS IN THE SOFTWARE. + */ + +-#include +-#include +-#include + #include "pthread.h" +-#include "misc.h" + +-/* In theory, owner and locks are in CRITICAL_SECTION as well. +-In practise, however, the implementation of CRITICAL_SECTION +-should be regarded as opaque. That's why we replicate these +-members. */ +-typedef struct spin_t { +- DWORD owner; +- DWORD locks; +- CRITICAL_SECTION section; +-} spin_t; ++#define likely(cond) __builtin_expect((cond) != 0, 1) ++#define unlikely(cond) __builtin_expect((cond) != 0, 0) + +-/* Per the MSDN documentation, Windows components such as the heap manager +-use a spin count of 4000. */ +-static const DWORD kSpinCount = 4000; +- +-static volatile LONG global_lock = 0; +- +-static void +-enter_global_cs (void) +-{ +- while (global_lock || InterlockedExchange (&global_lock, 1)) +- asm volatile ("pause"); +-} +- +-static void +-leave_global_cs (void) +-{ +- InterlockedExchange (&global_lock, 0); +-} +- +-static int +-static_spin_init (pthread_spinlock_t* lock) +-{ +- if (PTHREAD_SPINLOCK_INITIALIZER == *lock) +- { +- enter_global_cs (); +- if (PTHREAD_SPINLOCK_INITIALIZER == *lock) +- { +- int initrv = pthread_spin_init (lock, PTHREAD_PROCESS_PRIVATE); +- if (initrv < 0) +- { +- leave_global_cs (); +- return initrv; +- } +- } +- leave_global_cs (); +- } +- return 0; +-} ++/* We use the pthread_spinlock_t itself as a lock: ++ -1 is free, 0 is locked. ++ (This is dictated by PTHREAD_SPINLOCK_INITIALIZER, which we can't change ++ without breaking binary compatibility.) */ ++typedef intptr_t spinlock_word_t; + + int + pthread_spin_init (pthread_spinlock_t *lock, int pshared) + { +- spin_t *spin; +- +- if (!lock) +- return EINVAL; +- +- if (pshared != PTHREAD_PROCESS_PRIVATE) +- return ENOTSUP; +- +- if (!(spin = (spin_t*) calloc (1, sizeof(*spin)))) +- return ENOMEM; +- +- InitializeCriticalSection (&spin->section); +- SetCriticalSectionSpinCount (&spin->section, kSpinCount); +- *lock = spin; ++ spinlock_word_t *lk = (spinlock_word_t *)lock; ++ *lk = -1; + return 0; + } + +@@ -99,93 +44,32 @@ pthread_spin_init (pthread_spinlock_t *lock, int pshared) + int + pthread_spin_destroy (pthread_spinlock_t *lock) + { +- spin_t *spin; +- +- if (!lock || !*lock) +- return EINVAL; +- +- enter_global_cs (); +- if (*lock == PTHREAD_SPINLOCK_INITIALIZER) +- { +- *lock = NULL; +- leave_global_cs (); +- return 0; +- } +- +- spin = (spin_t*)*lock; +- if (spin->owner && spin->owner != GetCurrentThreadId ()) +- { +- leave_global_cs (); +- return EPERM; +- } +- +- DeleteCriticalSection (&spin->section); +- free (spin); +- *lock = NULL; +- leave_global_cs (); + return 0; + } + + int + pthread_spin_lock (pthread_spinlock_t *lock) + { +- spin_t *spin; +- int rv = 0; +- +- if (!lock || !*lock) +- return EINVAL; +- +- rv = static_spin_init (lock); +- if (rv < 0) +- return rv; +- +- spin = (spin_t*)*lock; +- EnterCriticalSection (&spin->section); +- spin->owner = GetCurrentThreadId (); +- spin->locks++; ++ volatile spinlock_word_t *lk = (volatile spinlock_word_t *)lock; ++ while (unlikely(__sync_lock_test_and_set(lk, 0) == 0)) ++ do { ++ asm("pause" ::: "memory"); ++ } while (*lk == 0); + return 0; + } + + int + pthread_spin_trylock (pthread_spinlock_t *lock) + { +- spin_t *spin; +- int rv = 0; +- +- if (!lock || !*lock) +- return EINVAL; +- +- rv = static_spin_init (lock); +- if (rv < 0) +- return rv; +- +- spin = (spin_t*)*lock; +- if (!TryEnterCriticalSection (&spin->section)) +- return EBUSY; +- +- spin->owner = GetCurrentThreadId (); +- spin->locks++; +- return 0; ++ spinlock_word_t *lk = (spinlock_word_t *)lock; ++ return __sync_lock_test_and_set(lk, 0) == 0 ? EBUSY : 0; + } + + + int + pthread_spin_unlock (pthread_spinlock_t *lock) + { +- spin_t *spin; +- +- if (!lock || !*lock) +- return EINVAL; +- +- if (*lock == PTHREAD_SPINLOCK_INITIALIZER) +- return EPERM; +- +- spin = (spin_t*)*lock; +- if (spin->owner != GetCurrentThreadId ()) +- return EPERM; +- +- if (!--spin->locks) +- spin->owner = 0; +- LeaveCriticalSection (&spin->section); ++ volatile spinlock_word_t *lk = (volatile spinlock_word_t *)lock; ++ *lk = -1; + return 0; + } +-- +2.4.5 + From 0c38d8a7af22396d75a0e3804cea6033d420e605 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 29 Jul 2015 08:43:10 +0300 Subject: [PATCH 1380/2060] xmlstarlet: Fix download URL. Rebuild with gcc-5.x --- FAIL_LIST.md | 2 -- mingw-w64-xmlstarlet/PKGBUILD | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 4922792848..85b982e2cd 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -66,5 +66,3 @@ List of packages that currently fail to build - winsparkle-git - xmlada-gpl - -- xmlstrartlet diff --git a/mingw-w64-xmlstarlet/PKGBUILD b/mingw-w64-xmlstarlet/PKGBUILD index ea375c5ad0..16ca7c41a7 100644 --- a/mingw-w64-xmlstarlet/PKGBUILD +++ b/mingw-w64-xmlstarlet/PKGBUILD @@ -3,7 +3,7 @@ _name=xmlstarlet pkgdesc="Command-line XML toolkit" pkgver=r678.9a470e3 -pkgrel=1 +pkgrel=2 arch=('any') license=('MIT') url="http://xmlstar.sourceforge.net" @@ -11,7 +11,7 @@ pkgname=(${MINGW_PACKAGE_PREFIX}-${_name}-git) provides=(${MINGW_PACKAGE_PREFIX}-${_name}) conflicts=(${MINGW_PACKAGE_PREFIX}-${_name}) md5sums=('SKIP') -source=(${_name}::"git://xmlstar.git.sourceforge.net/gitroot/xmlstar/xmlstar") +source=(${_name}::"git://git.code.sourceforge.net/p/xmlstar/code") depends=(${MINGW_PACKAGE_PREFIX}-libxml2 ${MINGW_PACKAGE_PREFIX}-libxslt) makedepends=(${MINGW_PACKAGE_PREFIX}-gcc ${MINGW_PACKAGE_PREFIX}-libiconv git) @@ -45,7 +45,7 @@ package() { cd "${srcdir}/${_name}" make DESTDIR="${pkgdir}" install local license_dir="${pkgdir}${MINGW_PREFIX}/share/licenses/${_name}" - mkdir -p "$license_dir" + mkdir -p "${license_dir}" cp -v Copyright "${license_dir}/Copyright" mv -v "${pkgdir}${MINGW_PREFIX}/bin/xml.exe" "${pkgdir}${MINGW_PREFIX}/bin/xmlstarlet.exe" } From 87c154dda06a1936f2297aee9eea40580c18916e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 29 Jul 2015 09:16:57 +0300 Subject: [PATCH 1381/2060] tktable: Fix detect MINGW build. Rebuild with GCC-5.x --- FAIL_LIST.md | 2 -- mingw-w64-tktable/001-fix-detect-mingw.patch | 11 +++++++++++ mingw-w64-tktable/PKGBUILD | 18 ++++++++++++++---- 3 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-tktable/001-fix-detect-mingw.patch diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 85b982e2cd..d6a83abc15 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -61,8 +61,6 @@ List of packages that currently fail to build - tkimg -- tktable - - winsparkle-git - xmlada-gpl diff --git a/mingw-w64-tktable/001-fix-detect-mingw.patch b/mingw-w64-tktable/001-fix-detect-mingw.patch new file mode 100644 index 0000000000..7be6466a5e --- /dev/null +++ b/mingw-w64-tktable/001-fix-detect-mingw.patch @@ -0,0 +1,11 @@ +--- Tktable2.10/tclconfig/tcl.m4.orig 2015-07-29 09:08:46.206702700 +0300 ++++ Tktable2.10/tclconfig/tcl.m4 2015-07-29 09:08:53.774459400 +0300 +@@ -2952,7 +2952,7 @@ + AC_MSG_RESULT([ok (TEA ${TEA_VERSION})]) + fi + case "`uname -s`" in +- *win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW32_*) ++ *win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW*) + AC_CHECK_PROG(CYGPATH, cygpath, cygpath -w, echo) + EXEEXT=".exe" + TEA_PLATFORM="windows" diff --git a/mingw-w64-tktable/PKGBUILD b/mingw-w64-tktable/PKGBUILD index cdb719990a..dee625c7a8 100644 --- a/mingw-w64-tktable/PKGBUILD +++ b/mingw-w64-tktable/PKGBUILD @@ -6,16 +6,26 @@ _realname=tktable pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pkgnameactual=Tktable pkgver=2.10 -pkgrel=3 -pkgdesc="A full-featured 2D table widget for Tk." +pkgrel=4 +pkgdesc="A full-featured 2D table widget for Tk (mingw-w64)" arch=('any') url="http://tktable.sourceforge.net/" license=('custom') depends=("${MINGW_PACKAGE_PREFIX}-tk") -source=("http://sourceforge.net/projects/tktable/files/${_realname}/${pkgver}/${_pkgnameactual}${pkgver}.tar.gz") -md5sums=('ecdd96b39ad49b820bf084eb1c786f66') +source=("http://sourceforge.net/projects/tktable/files/${_realname}/${pkgver}/${_pkgnameactual}${pkgver}.tar.gz" + 001-fix-detect-mingw.patch) +md5sums=('ecdd96b39ad49b820bf084eb1c786f66' + 'c1759a7b591ad70516166137dcbe3864') + +prepare() { + cd ${_pkgnameactual}${pkgver} + patch -p1 -i ${srcdir}/001-fix-detect-mingw.patch + + autoreconf -fiv +} build() { + [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" From db680bdd810f52ca2674f4fc1a17295d2aabefb6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 29 Jul 2015 10:20:30 +0300 Subject: [PATCH 1382/2060] tkimg: Rebuild with gcc-5.x --- FAIL_LIST.md | 2 -- mingw-w64-tkimg/PKGBUILD | 11 +++++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index d6a83abc15..1986a6f4cc 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -59,8 +59,6 @@ List of packages that currently fail to build - tclx -- tkimg - - winsparkle-git - xmlada-gpl diff --git a/mingw-w64-tkimg/PKGBUILD b/mingw-w64-tkimg/PKGBUILD index 7873755d81..3d1c0ee832 100644 --- a/mingw-w64-tkimg/PKGBUILD +++ b/mingw-w64-tkimg/PKGBUILD @@ -1,19 +1,21 @@ # Based on the Arch package +# Don't building with installed jbigkit package as we build tiff without jbigkit support _pkgname=tkimg pkgname=${MINGW_PACKAGE_PREFIX}-$_pkgname _pkgver=1.4 pkgver=${_pkgver}.2 -pkgrel=2 +pkgrel=3 pkgdesc="Adds support to Tk for many other Image formats: BMP, XBM, XPM, GIF, PNG, JPEG, TIFF and postscript (mingw-64)" url="http://tkimg.sourceforge.net" arch=('any') license=('BSD') -depends=("${MINGW_PACKAGE_PREFIX}-zlib" +depends=(#"${MINGW_PACKAGE_PREFIX}-jbigkit" "${MINGW_PACKAGE_PREFIX}-libjpeg" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-tk") + "${MINGW_PACKAGE_PREFIX}-tk" + "${MINGW_PACKAGE_PREFIX}-zlib") # Uses dtplite for generating the man pages: makedepends=("${MINGW_PACKAGE_PREFIX}-tcllib") source=("http://downloads.sourceforge.net/tkimg/${_pkgname}${pkgver}.tar.gz" @@ -25,7 +27,7 @@ md5sums=('c42b46692a55c402c97e8f2a896bc2d4' prepare() { cd "${srcdir}/${_pkgname}${_pkgver}" - patch -Np1 -i "${srcdir}/001-compile-tif_jbig.patch" + #patch -Np1 -i "${srcdir}/001-compile-tif_jbig.patch" patch -Np1 -i "${srcdir}/002-dtplite_tcl.patch" } @@ -40,6 +42,7 @@ build() { ../${_pkgname}${_pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --mandir=${MINGW_PREFIX}/share/man \ + --disable-jbig \ "${extra_config[@]}" make } From 6a4972a220df31e09e53d30f755a0ac6e0391ae1 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 29 Jul 2015 11:41:29 +0300 Subject: [PATCH 1383/2060] openscenegraph: Update to 3.4.0-rc7. Rebuild with gcc-5.x --- FAIL_LIST.md | 2 - mingw-w64-openscenegraph/PKGBUILD | 79 +++++++++---------- .../fix-whar_t-redeclare.patch | 11 +++ 3 files changed, 49 insertions(+), 43 deletions(-) create mode 100644 mingw-w64-openscenegraph/fix-whar_t-redeclare.patch diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 1986a6f4cc..e0ea797018 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -39,8 +39,6 @@ List of packages that currently fail to build - ogre3d -- openscenegraph - - openocd-git - openshadinglanguage (Needs a legacy LLVM < 3.6 package due to JIT changes) diff --git a/mingw-w64-openscenegraph/PKGBUILD b/mingw-w64-openscenegraph/PKGBUILD index f8f0cd32f4..69a8838b3e 100644 --- a/mingw-w64-openscenegraph/PKGBUILD +++ b/mingw-w64-openscenegraph/PKGBUILD @@ -2,7 +2,7 @@ _realname=OpenSceneGraph pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -_pkgver=3.3.9 +_pkgver=3.4.0-rc7 pkgver=${_pkgver//-/} pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" @@ -13,39 +13,43 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-cmake") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-collada-dom-svn" - "${MINGW_PACKAGE_PREFIX}-curl" - "${MINGW_PACKAGE_PREFIX}-ffmpeg" - "${MINGW_PACKAGE_PREFIX}-fltk" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-gdal" - "${MINGW_PACKAGE_PREFIX}-giflib" - "${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-gtkglext" - "${MINGW_PACKAGE_PREFIX}-jasper" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-lua" - "${MINGW_PACKAGE_PREFIX}-SDL" - "${MINGW_PACKAGE_PREFIX}-poppler" - "${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-qt5" - "${MINGW_PACKAGE_PREFIX}-wxWidgets" - "${MINGW_PACKAGE_PREFIX}-zlib") + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-collada-dom-svn" + "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-ffmpeg" + "${MINGW_PACKAGE_PREFIX}-fltk" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-gdal" + "${MINGW_PACKAGE_PREFIX}-giflib" + "${MINGW_PACKAGE_PREFIX}-gstreamer" + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-gtkglext" + "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-lua" + "${MINGW_PACKAGE_PREFIX}-SDL" + "${MINGW_PACKAGE_PREFIX}-SDL2" + "${MINGW_PACKAGE_PREFIX}-poppler" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-qt5" + "${MINGW_PACKAGE_PREFIX}-wxWidgets" + "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') source=(http://www.openscenegraph.org/downloads/developer_releases/${_realname}-${_pkgver}.zip find-collada.patch find-freetype.patch additional-gl-header.patch - fix-cast-error.patch) -md5sums=('615142df4c0f4c5ed255126dd6f46398' + fix-cast-error.patch + fix-whar_t-redeclare.patch) +md5sums=('834a73fd62fcc26b39554093490b06d7' '18ce956c1889babc6515828b8200e864' '9ab69e1cd26826196fac5b3f01e6cb95' 'e889e10100a1f3e07212c01603712594' - '5599204490bf9f03cdd5871b938e3338') + '5599204490bf9f03cdd5871b938e3338' + 'c5800776305d26e9729ad1e1424371d5') prepare() { cd "${srcdir}/${_realname}-${_pkgver}" @@ -53,15 +57,16 @@ prepare() { patch -p1 -i ${srcdir}/find-freetype.patch patch -p1 -i ${srcdir}/additional-gl-header.patch patch -p1 -i ${srcdir}/fix-cast-error.patch + patch -p1 -i ${srcdir}/fix-whar_t-redeclare.patch } build() { export FREETYPE_DIR=${MINGW_PREFIX} for builddir in {Release,Debug}-${MINGW_CHOST}; do - [[ -d $builddir ]] && rm -rf $builddir - mkdir -p $builddir - pushd $builddir + [[ -d ${builddir} ]] && rm -rf ${builddir} + mkdir -p ${builddir} + pushd ${builddir} [[ "${builddir%-${MINGW_CHOST}}" == "Release" ]] && { local _opts="-DBUILD_OSG_EXAMPLES:BOOL=ON" local _postfix= @@ -72,10 +77,11 @@ build() { msg "Building ${builddir%-${MINGW_CHOST}} version..." + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ COLLADA_DIR=${MINGW_PREFIX} \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${_postfix}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${_postfix}${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=${builddir%-${MINGW_CHOST}} \ ${_opts} \ ../${_realname}-${_pkgver} @@ -86,18 +92,9 @@ build() { } package_release() { - - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - cd Release-${MINGW_CHOST} - make -j1 install + make DESTDIR=${pkgdir} -j1 install - for ff in ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/*.pc; do - sed -i "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" $ff - done } package_debug() { @@ -106,7 +103,7 @@ package_debug() { pkgdesc="Open source high performance 3D graphics toolkit (debug) (mingw-w64)" cd Debug-${MINGW_CHOST} - make -j1 install + make DESTDIR=${pkgdir} -j1 install rm -rf ${pkgdir}${MINGW_PREFIX}/include rm -rf ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig diff --git a/mingw-w64-openscenegraph/fix-whar_t-redeclare.patch b/mingw-w64-openscenegraph/fix-whar_t-redeclare.patch new file mode 100644 index 0000000000..307e19a81e --- /dev/null +++ b/mingw-w64-openscenegraph/fix-whar_t-redeclare.patch @@ -0,0 +1,11 @@ +--- OpenSceneGraph-3.4.0-rc7/src/osg/GL.in.orig 2015-07-29 10:38:24.890785100 +0300 ++++ OpenSceneGraph-3.4.0-rc7/src/osg/GL.in 2015-07-29 10:38:31.384135700 +0300 +@@ -96,7 +96,7 @@ + #endif + + // XXX This is from Win32's +- #if !defined(_WCHAR_T_DEFINED) && !(defined(__GNUC__)&&((__GNUC__ == 3)||(__GNUC__ == 4))) ++ #if !defined(_WCHAR_T_DEFINED) && !(defined(__GNUC__)&&(__GNUC__ > 2)) + typedef unsigned short wchar_t; + #define _WCHAR_T_DEFINED + #endif From 6f760432b4bbc3b8f528ee1b5f74cc9d3985725b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 29 Jul 2015 15:27:57 +0300 Subject: [PATCH 1384/2060] icu: Fix locating libraries by icu-config. --- .../0017-icu-config-versioning.patch | 69 +++++++++++++++++++ mingw-w64-icu/PKGBUILD | 9 ++- 2 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-icu/0017-icu-config-versioning.patch diff --git a/mingw-w64-icu/0017-icu-config-versioning.patch b/mingw-w64-icu/0017-icu-config-versioning.patch new file mode 100644 index 0000000000..67cb89b968 --- /dev/null +++ b/mingw-w64-icu/0017-icu-config-versioning.patch @@ -0,0 +1,69 @@ +--- icu/source/config/mh-mingw.orig 2015-07-29 14:31:54.664667600 +0300 ++++ icu/source/config/mh-mingw 2015-07-29 14:34:19.771155500 +0300 +@@ -75,13 +75,16 @@ + I18N_STUBNAME = in + LIBICU = $(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX) + ++# The following is for Makefile.inc's use. ++ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR) ++ + #SH### copied from Makefile.inc + #SH## for icu-config to test with + #SH#ICULIBS_COMMON_LIB_NAME="${LIBICU}${COMMON_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}" + #SH#ICULIBS_COMMON_LIB_NAME_A="${LIBICU}${COMMON_STUBNAME}${ICULIBSUFFIX}.${A}" + +-#SH#ICULIBS_DATA="-l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)" +-#SH#ICULIBS_I18N="-l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)" ++#SH#ICULIBS_DATA="-l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)" ++#SH#ICULIBS_I18N="-l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)" + #SH# + #SH## ICULIBS is the set of libraries your application should link + #SH## with usually. Many applications will want to add ${ICULIBS_I18N} as well. +--- icu/source/config/mh-mingw64.orig 2015-07-29 14:32:09.885145400 +0300 ++++ icu/source/config/mh-mingw64 2015-07-29 14:34:34.344698000 +0300 +@@ -75,13 +75,16 @@ + I18N_STUBNAME = in + LIBICU = $(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX) + ++# The following is for Makefile.inc's use. ++ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR) ++ + #SH### copied from Makefile.inc + #SH## for icu-config to test with + #SH#ICULIBS_COMMON_LIB_NAME="${LIBICU}${COMMON_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}" + #SH#ICULIBS_COMMON_LIB_NAME_A="${LIBICU}${COMMON_STUBNAME}${ICULIBSUFFIX}.${A}" + +-#SH#ICULIBS_DATA="-l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)" +-#SH#ICULIBS_I18N="-l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)" ++#SH#ICULIBS_DATA="-l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)" ++#SH#ICULIBS_I18N="-l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)" + #SH# + #SH## ICULIBS is the set of libraries your application should link + #SH## with usually. Many applications will want to add ${ICULIBS_I18N} as well. +--- icu/source/config/Makefile.inc.in.orig 2015-07-29 14:34:44.358696500 +0300 ++++ icu/source/config/Makefile.inc.in 2015-07-29 14:35:15.641567900 +0300 +@@ -106,15 +106,15 @@ + # - $(ICULIBS_LAYOUT) - ICU layout library. + # - $(ICULIBS_ICUIO) - ICU stdio equivalent library + +-ICULIBS_COMMON = -l$(ICUPREFIX)uc$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION) +-ICULIBS_DATA = -l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION) +-ICULIBS_I18N = -l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION) +-ICULIBS_TOOLUTIL = -l$(ICUPREFIX)tu$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION) +-ICULIBS_CTESTFW = -l$(ICUPREFIX)ctestfw$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION) +-ICULIBS_ICUIO = -l$(ICUPREFIX)io$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION) +-ICULIBS_OBSOLETE = -l$(ICUPREFIX)obsolete$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION) +-ICULIBS_LAYOUT = -l$(ICUPREFIX)le$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION) +-ICULIBS_LAYOUTEX = -l$(ICUPREFIX)lx$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION) ++ICULIBS_COMMON = -l$(ICUPREFIX)uc$(ICULIBSUFFIX) ++ICULIBS_DATA = -l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX) ++ICULIBS_I18N = -l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX) ++ICULIBS_TOOLUTIL = -l$(ICUPREFIX)tu$(ICULIBSUFFIX) ++ICULIBS_CTESTFW = -l$(ICUPREFIX)ctestfw$(ICULIBSUFFIX) ++ICULIBS_ICUIO = -l$(ICUPREFIX)io$(ICULIBSUFFIX) ++ICULIBS_OBSOLETE = -l$(ICUPREFIX)obsolete$(ICULIBSUFFIX) ++ICULIBS_LAYOUT = -l$(ICUPREFIX)le$(ICULIBSUFFIX) ++ICULIBS_LAYOUTEX = -l$(ICUPREFIX)lx$(ICULIBSUFFIX) + ICULIBS_BASE = -L$(libdir) + + # for icu-config to test with diff --git a/mingw-w64-icu/PKGBUILD b/mingw-w64-icu/PKGBUILD index 350d62f105..5843094a67 100644 --- a/mingw-w64-icu/PKGBUILD +++ b/mingw-w64-icu/PKGBUILD @@ -4,7 +4,7 @@ _realname=icu pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-libs") pkgver=55.1 -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="International Components for Unicode library (mingw-w64)" arch=('any') @@ -25,7 +25,8 @@ source=("http://download.icu-project.org/files/icu4c/${pkgver}/icu4c-${pkgver//. 0012-libprefix.mingw.patch 0014-mingwize-pkgdata.mingw.patch 0015-debug.mingw.patch - 0016-icu-pkgconfig.patch) + 0016-icu-pkgconfig.patch + 0017-icu-config-versioning.patch) md5sums=('e2d523df79d6cb7855c2fbe284f4db29' '4c8143786ed499184e64fc5a1a1d0fdf' 'eb56b72df2ca0dc77261c4f2adc5c8ad' @@ -36,7 +37,8 @@ md5sums=('e2d523df79d6cb7855c2fbe284f4db29' 'f43d08a14a3e723977178fed136e58b1' '74415f3f3876b5f2f7cea0c5d367c5c6' 'd1accfbefbcd399a4a28a4a4e0737915' - '3f13cf5733c4a9363c5823a24d3fba85') + '3f13cf5733c4a9363c5823a24d3fba85' + 'da12188a00025605be0c4ee22d1895bb') prepare() { cd "${srcdir}/icu" @@ -50,6 +52,7 @@ prepare() { patch -p1 -i "$srcdir"/0014-mingwize-pkgdata.mingw.patch patch -p1 -i "$srcdir"/0015-debug.mingw.patch patch -p1 -i "$srcdir"/0016-icu-pkgconfig.patch + patch -p1 -i "$srcdir"/0017-icu-config-versioning.patch cd source autoreconf -vfi From c2bc4c56d98996f7cd980cb483c28fde824eb77d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 29 Jul 2015 16:07:44 +0300 Subject: [PATCH 1385/2060] readline: Update to 6.3.008 --- mingw-w64-readline/PKGBUILD | 31 +++-- mingw-w64-readline/readline-6.3-mingw.patch | 129 ++++++++++++++++++++ mingw-w64-readline/readline62-001 | 46 ------- mingw-w64-readline/readline62-001.sig | Bin 65 -> 0 bytes mingw-w64-readline/readline62-002 | 57 --------- mingw-w64-readline/readline62-002.sig | Bin 72 -> 0 bytes mingw-w64-readline/readline62-003 | 76 ------------ mingw-w64-readline/readline62-003.sig | Bin 72 -> 0 bytes mingw-w64-readline/readline62-004 | 108 ---------------- mingw-w64-readline/readline62-004.sig | Bin 72 -> 0 bytes mingw-w64-readline/readline62-005 | 72 ----------- mingw-w64-readline/readline62-005.sig | Bin 72 -> 0 bytes mingw-w64-readline/readline63-001 | 43 +++++++ mingw-w64-readline/readline63-001.sig | Bin 0 -> 72 bytes mingw-w64-readline/readline63-002 | 44 +++++++ mingw-w64-readline/readline63-002.sig | Bin 0 -> 72 bytes mingw-w64-readline/readline63-003 | 47 +++++++ mingw-w64-readline/readline63-003.sig | Bin 0 -> 72 bytes mingw-w64-readline/readline63-004 | 45 +++++++ mingw-w64-readline/readline63-004.sig | Bin 0 -> 72 bytes mingw-w64-readline/readline63-005 | 58 +++++++++ mingw-w64-readline/readline63-005.sig | Bin 0 -> 72 bytes mingw-w64-readline/readline63-006 | 63 ++++++++++ mingw-w64-readline/readline63-006.sig | Bin 0 -> 72 bytes mingw-w64-readline/readline63-007 | 47 +++++++ mingw-w64-readline/readline63-007.sig | Bin 0 -> 72 bytes mingw-w64-readline/readline63-008 | 47 +++++++ mingw-w64-readline/readline63-008.sig | Bin 0 -> 72 bytes 28 files changed, 543 insertions(+), 370 deletions(-) create mode 100644 mingw-w64-readline/readline-6.3-mingw.patch delete mode 100644 mingw-w64-readline/readline62-001 delete mode 100644 mingw-w64-readline/readline62-001.sig delete mode 100644 mingw-w64-readline/readline62-002 delete mode 100644 mingw-w64-readline/readline62-002.sig delete mode 100644 mingw-w64-readline/readline62-003 delete mode 100644 mingw-w64-readline/readline62-003.sig delete mode 100644 mingw-w64-readline/readline62-004 delete mode 100644 mingw-w64-readline/readline62-004.sig delete mode 100644 mingw-w64-readline/readline62-005 delete mode 100644 mingw-w64-readline/readline62-005.sig create mode 100644 mingw-w64-readline/readline63-001 create mode 100644 mingw-w64-readline/readline63-001.sig create mode 100644 mingw-w64-readline/readline63-002 create mode 100644 mingw-w64-readline/readline63-002.sig create mode 100644 mingw-w64-readline/readline63-003 create mode 100644 mingw-w64-readline/readline63-003.sig create mode 100644 mingw-w64-readline/readline63-004 create mode 100644 mingw-w64-readline/readline63-004.sig create mode 100644 mingw-w64-readline/readline63-005 create mode 100644 mingw-w64-readline/readline63-005.sig create mode 100644 mingw-w64-readline/readline63-006 create mode 100644 mingw-w64-readline/readline63-006.sig create mode 100644 mingw-w64-readline/readline63-007 create mode 100644 mingw-w64-readline/readline63-007.sig create mode 100644 mingw-w64-readline/readline63-008 create mode 100644 mingw-w64-readline/readline63-008.sig diff --git a/mingw-w64-readline/PKGBUILD b/mingw-w64-readline/PKGBUILD index 8052010510..6e2ef46dd3 100644 --- a/mingw-w64-readline/PKGBUILD +++ b/mingw-w64-readline/PKGBUILD @@ -2,10 +2,10 @@ _realname=readline pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_basever=6.2 -_patchlevel=005 +_basever=6.3 +_patchlevel=008 pkgver=${_basever}.${_patchlevel} -pkgrel=4 +pkgrel=1 pkgdesc="MinGW port of readline for editing typed command lines (mingw-w64)" arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" @@ -16,24 +16,32 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') license=('GPL') url="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html" -source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${_basever}.tar.gz"{,.sig}) +source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${_basever}.tar.gz"{,.sig} + readline-6.3-mingw.patch) if [ $_patchlevel -gt 00 ]; then for (( p=1; p<=$((10#${_patchlevel})); p++ )); do source=(${source[@]} http://ftp.gnu.org/gnu/${_realname}/${_realname}-$_basever-patches/readline${_basever//./}-$(printf "%03d" $p){,.sig}) done fi -md5sums=('67948acb2ca081f23359d0256e9a271c' +md5sums=('33c8fb279e981274f485fd91da77e94a' 'SKIP' - '83287d52a482f790dfb30ec0a8746669' + '5a2ccb64ee7d2e7d27651b383bc65e58' + '4343f5ea9b0f42447f102fb61576b398' 'SKIP' - '0665020ea118e8434bd145fb71f452cc' + '700295212f7e2978577feaee584afddb' 'SKIP' - 'c9d5d79718856e711667dede87cb7622' + 'af4963862f5156fbf9111c2c6fa86ed7' 'SKIP' - 'c08e787f50579ce301075c523fa660a4' + '11f9def89803a5052db3ba72394ce14f' 'SKIP' - 'd20eb0134cc3ff8956c218f0df8e1be1' + '93721c31cd225393f80cb3aadb165544' + 'SKIP' + '71dc6ecce66d1489b96595f55d142a52' + 'SKIP' + '062a08ed60679d3c4878710b3d595b65' + 'SKIP' + 'ee1c04072154826870848d8b218d7b04' 'SKIP') prepare() { @@ -41,9 +49,10 @@ prepare() { for (( p=1; p<=$((10#${_patchlevel})); p++ )); do msg "applying patch readline${_basever//./}-$(printf "%03d" $p)" - patch -Np0 -i $srcdir/readline${_basever//./}-$(printf "%03d" $p) + patch -Np0 -i ${srcdir}/readline${_basever//./}-$(printf "%03d" $p) done + patch -Np1 -i ${srcdir}/readline-6.3-mingw.patch # Remove RPATH from shared objects (FS#14366) sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf } diff --git a/mingw-w64-readline/readline-6.3-mingw.patch b/mingw-w64-readline/readline-6.3-mingw.patch new file mode 100644 index 0000000000..e1a2483c5f --- /dev/null +++ b/mingw-w64-readline/readline-6.3-mingw.patch @@ -0,0 +1,129 @@ +--- readline-6.3-orig/colors.c 2013-03-20 11:19:08.000000000 -0400 ++++ readline-6.3/colors.c 2015-07-20 12:44:31.821014500 -0400 +@@ -37,6 +37,10 @@ + #include "posixstat.h" // stat related macros (S_ISREG, ...) + #include // S_ISUID + ++#ifndef S_ISDIR ++#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) ++#endif ++ + // strlen() + #if defined (HAVE_STRING_H) + # include +@@ -151,12 +155,17 @@ + if (S_ISREG (mode)) + { + colored_filetype = C_FILE; +- ++#ifdef S_ISUID + if ((mode & S_ISUID) != 0 && is_colored (C_SETUID)) + colored_filetype = C_SETUID; +- else if ((mode & S_ISGID) != 0 && is_colored (C_SETGID)) ++ else ++#endif ++#ifdef S_ISGID ++ if ((mode & S_ISGID) != 0 && is_colored (C_SETGID)) + colored_filetype = C_SETGID; +- else if (is_colored (C_CAP) && 0) //f->has_capability) ++ else ++#endif ++ if (is_colored (C_CAP) && 0) //f->has_capability) + colored_filetype = C_CAP; + else if ((mode & S_IXUGO) != 0 && is_colored (C_EXEC)) + colored_filetype = C_EXEC; +@@ -180,15 +189,19 @@ + colored_filetype = C_STICKY; + #endif + } ++ #ifdef S_ISLNK + else if (S_ISLNK (mode)) + colored_filetype = ((linkok == 0 + && (!strncmp (_rl_color_indicator[C_LINK].string, "target", 6) + || _rl_color_indicator[C_ORPHAN].string)) + ? C_ORPHAN : C_LINK); ++ #endif + else if (S_ISFIFO (mode)) + colored_filetype = C_FIFO; ++ #ifdef S_ISSOCK + else if (S_ISSOCK (mode)) + colored_filetype = C_SOCK; ++#endif + else if (S_ISBLK (mode)) + colored_filetype = C_BLK; + else if (S_ISCHR (mode)) +--- readline-6.3-orig/signals.c 2014-01-10 15:06:48.000000000 -0500 ++++ readline-6.3/signals.c 2015-07-20 12:33:07.437472100 -0400 +@@ -216,7 +216,9 @@ + /* FALLTHROUGH */ + + case SIGTERM: ++#if defined (SIGHUP) + case SIGHUP: ++#endif + #if defined (SIGTSTP) + case SIGTSTP: + case SIGTTOU: +@@ -397,7 +399,9 @@ + + sigaddset (&bset, SIGINT); + sigaddset (&bset, SIGTERM); ++#ifdef SIGHUP + sigaddset (&bset, SIGHUP); ++#endif + #if defined (SIGQUIT) + sigaddset (&bset, SIGQUIT); + #endif +@@ -426,7 +430,9 @@ + + rl_maybe_set_sighandler (SIGINT, rl_signal_handler, &old_int); + rl_maybe_set_sighandler (SIGTERM, rl_signal_handler, &old_term); ++#ifdef SIGHUP + rl_maybe_set_sighandler (SIGHUP, rl_signal_handler, &old_hup); ++#endif + #if defined (SIGQUIT) + rl_maybe_set_sighandler (SIGQUIT, rl_signal_handler, &old_quit); + #endif +@@ -491,7 +497,9 @@ + overhead */ + rl_maybe_restore_sighandler (SIGINT, &old_int); + rl_maybe_restore_sighandler (SIGTERM, &old_term); ++#ifdef SIGHUP + rl_maybe_restore_sighandler (SIGHUP, &old_hup); ++#endif + #if defined (SIGQUIT) + rl_maybe_restore_sighandler (SIGQUIT, &old_quit); + #endif +--- readline-6.3-orig/input.c 2014-01-10 15:07:08.000000000 -0500 ++++ readline-6.3/input.c 2015-07-20 12:37:16.112005600 -0400 +@@ -532,18 +532,28 @@ + Otherwise (not EINTR), some error occurred, also signifying EOF. */ + if (errno != EINTR) + return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF); +- else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM) ++ else if ( ++ #ifdef SIGHUP ++ _rl_caught_signal == SIGHUP || ++ #endif ++ _rl_caught_signal == SIGTERM) + return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF); + /* keyboard-generated signals of interest */ +- else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT) ++ else if (_rl_caught_signal == SIGINT ++ #ifdef SIGQUIT ++ || _rl_caught_signal == SIGQUIT ++ #endif ++ ) + RL_CHECK_SIGNALS (); ++#ifdef SIGALRM + /* non-keyboard-generated signals of interest */ + else if (_rl_caught_signal == SIGALRM + #if defined (SIGVTALRM) + || _rl_caught_signal == SIGVTALRM + #endif + ) + RL_CHECK_SIGNALS (); ++#endif + + if (rl_signal_event_hook) + (*rl_signal_event_hook) (); diff --git a/mingw-w64-readline/readline62-001 b/mingw-w64-readline/readline62-001 deleted file mode 100644 index d4563c3b11..0000000000 --- a/mingw-w64-readline/readline62-001 +++ /dev/null @@ -1,46 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.2 -Patch-ID: readline62-001 - -Bug-Reported-by: Clark J. Wang -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html - -Bug-Description: - -The readline vi-mode `cc', `dd', and `yy' commands failed to modify the -entire line. - -[This patch intentionally does not modify patchlevel] - -Patch (apply with `patch -p0'): - -*** ../readline-6.2-patched/vi_mode.c 2010-11-20 19:51:39.000000000 -0500 ---- vi_mode.c 2011-02-17 20:24:25.000000000 -0500 -*************** -*** 1115,1119 **** - _rl_vi_last_motion = c; - RL_UNSETSTATE (RL_STATE_VIMOTION); -! return (0); - } - #if defined (READLINE_CALLBACKS) ---- 1115,1119 ---- - _rl_vi_last_motion = c; - RL_UNSETSTATE (RL_STATE_VIMOTION); -! return (vidomove_dispatch (m)); - } - #if defined (READLINE_CALLBACKS) -*** ../readline-6.2-patched/callback.c 2010-06-06 12:18:58.000000000 -0400 ---- callback.c 2011-02-17 20:43:28.000000000 -0500 -*************** -*** 149,152 **** ---- 149,155 ---- - /* Should handle everything, including cleanup, numeric arguments, - and turning off RL_STATE_VIMOTION */ -+ if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) -+ _rl_internal_char_cleanup (); -+ - return; - } diff --git a/mingw-w64-readline/readline62-001.sig b/mingw-w64-readline/readline62-001.sig deleted file mode 100644 index d614baf3d0b1847a71c3969764be5a53bb102381..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65 zcmV-H0KWf-KLZ5-O={3kyI5)PWa@OQ5dzt}0G>VvVozq~SSB^U^6k)Htg`KiQ{w=j XpIEXOO*mWawY;q;S -Bug-Reference-ID: -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2011-08/msg00000.html - -Bug-Description: - -The readline shared library helper script needs to be updated for Mac OS X -10.7 (Lion, darwin11). - -Patch (apply with `patch -p0'): - -*** ../readline-6.2-patched/support/shobj-conf 2009-10-28 09:20:21.000000000 -0400 ---- support/shobj-conf 2011-08-27 13:25:23.000000000 -0400 -*************** -*** 158,162 **** - - # Darwin/MacOS X -! darwin[89]*|darwin10*) - SHOBJ_STATUS=supported - SHLIB_STATUS=supported ---- 172,176 ---- - - # Darwin/MacOS X -! darwin[89]*|darwin1[012]*) - SHOBJ_STATUS=supported - SHLIB_STATUS=supported -*************** -*** 187,191 **** - - case "${host_os}" in -! darwin[789]*|darwin10*) SHOBJ_LDFLAGS='' - SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' - ;; ---- 201,205 ---- - - case "${host_os}" in -! darwin[789]*|darwin1[012]*) SHOBJ_LDFLAGS='' - SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' - ;; - -*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 ---- patchlevel 2011-11-17 11:09:35.000000000 -0500 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 1 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 2 diff --git a/mingw-w64-readline/readline62-002.sig b/mingw-w64-readline/readline62-002.sig deleted file mode 100644 index f93e32473bc4840331b679470628b94f0d0f208f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72 zcmV-O0Jr~$Mg#y60ssaD0#3|Eo&X975W84u@MP+AtKfzJppj{$3YaJ&z26{xd? -Bug-Reference-ID: <20CC5C60-07C3-4E41-9817-741E48D407C5@quendi.de> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2012-06/msg00005.html - -Bug-Description: - -A change between readline-6.1 and readline-6.2 to prevent the readline input -hook from being called too frequently had the side effect of causing delays -when reading pasted input on systems such as Mac OS X. This patch fixes -those delays while retaining the readline-6.2 behavior. - -Patch (apply with `patch -p0'): - -*** ../readline-6.2-patched/input.c 2010-05-30 18:33:01.000000000 -0400 ---- input.c 2012-06-25 21:08:42.000000000 -0400 -*************** -*** 410,414 **** - rl_read_key () - { -! int c; - - rl_key_sequence_length++; ---- 412,416 ---- - rl_read_key () - { -! int c, r; - - rl_key_sequence_length++; -*************** -*** 430,441 **** - while (rl_event_hook) - { -! if (rl_gather_tyi () < 0) /* XXX - EIO */ - { - rl_done = 1; - return ('\n'); - } - RL_CHECK_SIGNALS (); -- if (rl_get_char (&c) != 0) -- break; - if (rl_done) /* XXX - experimental */ - return ('\n'); ---- 432,447 ---- - while (rl_event_hook) - { -! if (rl_get_char (&c) != 0) -! break; -! -! if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */ - { - rl_done = 1; - return ('\n'); - } -+ else if (r == 1) /* read something */ -+ continue; -+ - RL_CHECK_SIGNALS (); - if (rl_done) /* XXX - experimental */ - return ('\n'); -*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 ---- patchlevel 2011-11-17 11:09:35.000000000 -0500 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 2 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 3 diff --git a/mingw-w64-readline/readline62-003.sig b/mingw-w64-readline/readline62-003.sig deleted file mode 100644 index 5d4d3efc42274ff2a0b3c07b02018b5c510d7ed1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72 zcmV-O0Jr~$Mg#y60ssaD0#EutYXAxf5W84u@MP+At5SFXpF(NI@Vs%X9~1{|jd{a| esZ_0y>j0iUU0+mzwR79uF07cQkEwO{^w2N3nIE12 diff --git a/mingw-w64-readline/readline62-004 b/mingw-w64-readline/readline62-004 deleted file mode 100644 index 5f3ba9bb32..0000000000 --- a/mingw-w64-readline/readline62-004 +++ /dev/null @@ -1,108 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.2 -Patch-ID: readline62-004 - -Bug-Reported-by: Jakub Filak -Bug-Reference-ID: -Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=813289 - -Bug-Description: - -Attempting to redo (using `.') the vi editing mode `cc', `dd', or `yy' -commands leads to an infinite loop. - -Patch (apply with `patch -p0'): - -*** ../readline-6.2-patched/vi_mode.c 2011-02-25 11:17:02.000000000 -0500 ---- vi_mode.c 2012-06-02 12:24:47.000000000 -0400 -*************** -*** 1235,1243 **** - r = rl_domove_motion_callback (_rl_vimvcxt); - } -! else if (vi_redoing) - { - _rl_vimvcxt->motion = _rl_vi_last_motion; - r = rl_domove_motion_callback (_rl_vimvcxt); - } - #if defined (READLINE_CALLBACKS) - else if (RL_ISSTATE (RL_STATE_CALLBACK)) ---- 1297,1313 ---- - r = rl_domove_motion_callback (_rl_vimvcxt); - } -! else if (vi_redoing && _rl_vi_last_motion != 'd') /* `dd' is special */ - { - _rl_vimvcxt->motion = _rl_vi_last_motion; - r = rl_domove_motion_callback (_rl_vimvcxt); - } -+ else if (vi_redoing) /* handle redoing `dd' here */ -+ { -+ _rl_vimvcxt->motion = _rl_vi_last_motion; -+ rl_mark = rl_end; -+ rl_beg_of_line (1, key); -+ RL_UNSETSTATE (RL_STATE_VIMOTION); -+ r = vidomove_dispatch (_rl_vimvcxt); -+ } - #if defined (READLINE_CALLBACKS) - else if (RL_ISSTATE (RL_STATE_CALLBACK)) -*************** -*** 1317,1325 **** - r = rl_domove_motion_callback (_rl_vimvcxt); - } -! else if (vi_redoing) - { - _rl_vimvcxt->motion = _rl_vi_last_motion; - r = rl_domove_motion_callback (_rl_vimvcxt); - } - #if defined (READLINE_CALLBACKS) - else if (RL_ISSTATE (RL_STATE_CALLBACK)) ---- 1387,1403 ---- - r = rl_domove_motion_callback (_rl_vimvcxt); - } -! else if (vi_redoing && _rl_vi_last_motion != 'c') /* `cc' is special */ - { - _rl_vimvcxt->motion = _rl_vi_last_motion; - r = rl_domove_motion_callback (_rl_vimvcxt); - } -+ else if (vi_redoing) /* handle redoing `cc' here */ -+ { -+ _rl_vimvcxt->motion = _rl_vi_last_motion; -+ rl_mark = rl_end; -+ rl_beg_of_line (1, key); -+ RL_UNSETSTATE (RL_STATE_VIMOTION); -+ r = vidomove_dispatch (_rl_vimvcxt); -+ } - #if defined (READLINE_CALLBACKS) - else if (RL_ISSTATE (RL_STATE_CALLBACK)) -*************** -*** 1378,1381 **** ---- 1456,1472 ---- - r = rl_domove_motion_callback (_rl_vimvcxt); - } -+ else if (vi_redoing && _rl_vi_last_motion != 'y') /* `yy' is special */ -+ { -+ _rl_vimvcxt->motion = _rl_vi_last_motion; -+ r = rl_domove_motion_callback (_rl_vimvcxt); -+ } -+ else if (vi_redoing) /* handle redoing `yy' here */ -+ { -+ _rl_vimvcxt->motion = _rl_vi_last_motion; -+ rl_mark = rl_end; -+ rl_beg_of_line (1, key); -+ RL_UNSETSTATE (RL_STATE_VIMOTION); -+ r = vidomove_dispatch (_rl_vimvcxt); -+ } - #if defined (READLINE_CALLBACKS) - else if (RL_ISSTATE (RL_STATE_CALLBACK)) -*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 ---- patchlevel 2011-11-17 11:09:35.000000000 -0500 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 3 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 4 diff --git a/mingw-w64-readline/readline62-004.sig b/mingw-w64-readline/readline62-004.sig deleted file mode 100644 index f5d5d9eaefe9b7403352f41f8648227bb99febbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72 zcmV-O0Jr~$Mg#y60ssaD0#E_ZmjDV05W84u@MP+At9YRRoDLYXt1SRDGB#iRDe3Z& e2-wfR0sx;|1xPq^* -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2013-11/msg00000.html - -Bug-Description: - -The readline shared library helper script needs to be updated for Mac OS X -10.9 (Mavericks, darwin13). - -Patch (apply with `patch -p0'): - -*** ../readline-6.2-patched/support/shobj-conf 2011-11-23 19:26:47.000000000 -0500 ---- support/shobj-conf 2013-11-15 08:09:51.000000000 -0500 -*************** -*** 158,162 **** - - # Darwin/MacOS X -! darwin[89]*|darwin1[012]*) - SHOBJ_STATUS=supported - SHLIB_STATUS=supported ---- 172,176 ---- - - # Darwin/MacOS X -! darwin[89]*|darwin1[0123]*) - SHOBJ_STATUS=supported - SHLIB_STATUS=supported -*************** -*** 164,168 **** - SHOBJ_CFLAGS='-fno-common' - -! SHOBJ_LD='MACOSX_DEPLOYMENT_TARGET=10.3 ${CC}' - - SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)' ---- 178,184 ---- - SHOBJ_CFLAGS='-fno-common' - -! # SHOBJ_LD='MACOSX_DEPLOYMENT_TARGET=10.3 ${CC}' -! # we can finally kill Mac OS X 10.3 -! SHOBJ_LD='${CC}' - - SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)' -*************** -*** 187,191 **** - - case "${host_os}" in -! darwin[789]*|darwin1[012]*) SHOBJ_LDFLAGS='' - SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' - ;; ---- 203,207 ---- - - case "${host_os}" in -! darwin[789]*|darwin1[0123]*) SHOBJ_LDFLAGS='' - SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' - ;; - -*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 ---- patchlevel 2011-11-17 11:09:35.000000000 -0500 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 4 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 5 diff --git a/mingw-w64-readline/readline62-005.sig b/mingw-w64-readline/readline62-005.sig deleted file mode 100644 index 925f9a16477d1e46d2f68d94ba58d3efc38b5a40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72 zcmV-O0Jr~$Mg#y60ssaD0#b{20ssmL5W84u@MP+AtK@|MpFn?n$3rjvlI^Pks8shR e9YLlcxd594-uTcS6G__LOGI0s-P8UFK +Bug-Reference-ID: <20140307072523.GA14250@flash.uchicago.edu> +Bug-Reference-URL: + +Bug-Description: + +The `.' command in vi mode cannot undo multi-key commands beginning with +`c', `d', and `y' (command plus motion specifier). + +Patch (apply with `patch -p0'): + +*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400 +--- readline.c 2014-03-07 15:20:33.000000000 -0500 +*************** +*** 965,969 **** + if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && + key != ANYOTHERKEY && +! rl_key_sequence_length == 1 && /* XXX */ + _rl_vi_textmod_command (key)) + _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); +--- 965,969 ---- + if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && + key != ANYOTHERKEY && +! _rl_dispatching_keymap == vi_movement_keymap && + _rl_vi_textmod_command (key)) + _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); +*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 5 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 1 diff --git a/mingw-w64-readline/readline63-001.sig b/mingw-w64-readline/readline63-001.sig new file mode 100644 index 0000000000000000000000000000000000000000..2c93daab609664500111ea826cc598a46142394e GIT binary patch literal 72 zcmV-O0Jr~$Mg#y60ssaD0#h}!;{XZ?5W84u@MP+At5-Y#o;vU~aty7vgJx`QzqkCy e68pD#fB>BqU*E>OZssa2k literal 0 HcmV?d00001 diff --git a/mingw-w64-readline/readline63-002 b/mingw-w64-readline/readline63-002 new file mode 100644 index 0000000000..0e79f13f6c --- /dev/null +++ b/mingw-w64-readline/readline63-002 @@ -0,0 +1,44 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.3 +Patch-ID: readline63-002 + +Bug-Reported-by: Anatol Pomozov +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html + +Bug-Description: + +When in callback mode, some readline commands can cause readline to seg +fault by passing invalid contexts to callback functions. + +Patch (apply with `patch -p0'): + +*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400 +--- readline.c 2014-03-10 14:15:02.000000000 -0400 +*************** +*** 745,749 **** + + RL_CHECK_SIGNALS (); +! if (r == 0) /* success! */ + { + _rl_keyseq_chain_dispose (); +--- 745,750 ---- + + RL_CHECK_SIGNALS (); +! /* We only treat values < 0 specially to simulate recursion. */ +! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */ + { + _rl_keyseq_chain_dispose (); +*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 1 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 2 diff --git a/mingw-w64-readline/readline63-002.sig b/mingw-w64-readline/readline63-002.sig new file mode 100644 index 0000000000000000000000000000000000000000..9337cf8bcba167ec1f54ef14a9cc6bc831c8eb5d GIT binary patch literal 72 zcmV-O0Jr~$Mg#y60ssaD0#h}!=l}`{5W84u@MP+At691LppIf|<#_($b!%KEu@{ue e_{}8TP5_=g@U%Nd+S~Ft>;g7yN98Q>R{Qt&dm#7# literal 0 HcmV?d00001 diff --git a/mingw-w64-readline/readline63-003 b/mingw-w64-readline/readline63-003 new file mode 100644 index 0000000000..d2cad94f97 --- /dev/null +++ b/mingw-w64-readline/readline63-003 @@ -0,0 +1,47 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.3 +Patch-ID: readline63-003 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +There are debugging functions in the readline release that are theoretically +exploitable as security problems. They are not public functions, but have +global linkage. + +Patch (apply with `patch -p0'): + +*** ../readline-6.3/util.c 2013-09-02 13:36:12.000000000 -0400 +--- util.c 2014-03-20 10:25:53.000000000 -0400 +*************** +*** 477,480 **** +--- 479,483 ---- + } + ++ #if defined (DEBUG) + #if defined (USE_VARARGS) + static FILE *_rl_tracefp; +*************** +*** 539,542 **** +--- 542,546 ---- + } + #endif ++ #endif /* DEBUG */ + + +*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 2 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 3 diff --git a/mingw-w64-readline/readline63-003.sig b/mingw-w64-readline/readline63-003.sig new file mode 100644 index 0000000000000000000000000000000000000000..68b836ca99bf783b1345f20bb880d7381084f6b9 GIT binary patch literal 72 zcmV-O0Jr~$Mg#y60ssaD0#h}!?Enf15W84u@MP+At2vthpqn-2oK2sD?^ilG&kp1H eB$bBc?Es*Y2Ux0NO0`AH7`Yi +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html + +Bug-Description: + +The signal handling changes to bash and readline (to avoid running any code +in a signal handler context) cause the cursor to be placed on the wrong +line of a multi-line command after a ^C interrupts editing. + +Patch (apply with `patch -p0'): + +*** ../readline-6.3-patched/display.c 2013-12-27 13:10:56.000000000 -0500 +--- display.c 2014-03-27 11:52:45.000000000 -0400 +*************** +*** 2678,2682 **** + if (_rl_echoing_p) + { +! _rl_move_vert (_rl_vis_botlin); + _rl_vis_botlin = 0; + fflush (rl_outstream); +--- 2678,2683 ---- + if (_rl_echoing_p) + { +! if (_rl_vis_botlin > 0) /* minor optimization plus bug fix */ +! _rl_move_vert (_rl_vis_botlin); + _rl_vis_botlin = 0; + fflush (rl_outstream); +*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 3 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 4 diff --git a/mingw-w64-readline/readline63-004.sig b/mingw-w64-readline/readline63-004.sig new file mode 100644 index 0000000000000000000000000000000000000000..a12de10292f0b1c13f19dd4a5050565142283ab1 GIT binary patch literal 72 zcmV-O0Jr~$Mg#y60ssaD0#i&q1ON&N5W84u@MP+AtJ|UgpM37U`W8$QZqH=JPvQo_ e-xG{snE;dkR1X5 literal 0 HcmV?d00001 diff --git a/mingw-w64-readline/readline63-005 b/mingw-w64-readline/readline63-005 new file mode 100644 index 0000000000..8a63738490 --- /dev/null +++ b/mingw-w64-readline/readline63-005 @@ -0,0 +1,58 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.3 +Patch-ID: readline63-005 + +Bug-Reported-by: Juergen Daubert +Bug-Reference-ID: <20140303180430.GA7346@jue.netz> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00002.html + +Bug-Description: + +There are still applications using the deprecated Function/VFunction/etc. +typedefs in rltypedefs.h. This patch restores the typedefs, but attempts +to mark them as deprecated using gcc/clang attributes. Thanks to Max Horn +for the suggestion. + +Patch (apply with `patch -p0'): + +*** ../readline-6.3-patched/rltypedefs.h 2011-03-26 14:53:31.000000000 -0400 +--- rltypedefs.h 2014-04-10 11:30:45.000000000 -0400 +*************** +*** 27,30 **** +--- 27,49 ---- + #endif + ++ /* Old-style, attempt to mark as deprecated in some way people will notice. */ ++ ++ #if !defined (_FUNCTION_DEF) ++ # define _FUNCTION_DEF ++ ++ #if defined(__GNUC__) || defined(__clang__) ++ typedef int Function () __attribute__ ((deprecated)); ++ typedef void VFunction () __attribute__ ((deprecated)); ++ typedef char *CPFunction () __attribute__ ((deprecated)); ++ typedef char **CPPFunction () __attribute__ ((deprecated)); ++ #else ++ typedef int Function (); ++ typedef void VFunction (); ++ typedef char *CPFunction (); ++ typedef char **CPPFunction (); ++ #endif ++ ++ #endif /* _FUNCTION_DEF */ ++ + /* New style. */ + +*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 4 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 5 diff --git a/mingw-w64-readline/readline63-005.sig b/mingw-w64-readline/readline63-005.sig new file mode 100644 index 0000000000000000000000000000000000000000..92cf26a966631ad2f0f46948ab84c1bec350a88e GIT binary patch literal 72 zcmV-O0Jr~$Mg#y60ssaD0#i&q3IGZT5W84u@MP+At3zD?pH)rDNe*8fCP6Nan>0^W eQ!P(M6#$+*vB!BUq&qKz4EmR-;0)uxttdL?Z5Vw3 literal 0 HcmV?d00001 diff --git a/mingw-w64-readline/readline63-006 b/mingw-w64-readline/readline63-006 new file mode 100644 index 0000000000..a3f09304ab --- /dev/null +++ b/mingw-w64-readline/readline63-006 @@ -0,0 +1,63 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.3 +Patch-ID: readline63-006 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html + +Bug-Description: + +Using reverse-i-search when horizontal scrolling is enabled does not redisplay +the entire line containing the successful search results. + +Patch (apply with `patch -p0'): + +*** ../readline-6.3-patched/display.c 2014-04-08 18:19:36.000000000 -0400 +--- display.c 2014-04-20 18:32:52.000000000 -0400 +*************** +*** 1638,1642 **** + the spot of first difference is before the end of the invisible chars, + lendiff needs to be adjusted. */ +! if (current_line == 0 && !_rl_horizontal_scroll_mode && + current_invis_chars != visible_wrap_offset) + { +--- 1638,1642 ---- + the spot of first difference is before the end of the invisible chars, + lendiff needs to be adjusted. */ +! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */ + current_invis_chars != visible_wrap_offset) + { +*************** +*** 1826,1831 **** + _rl_last_c_pos += bytes_to_insert; + + if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) +! goto clear_rest_of_line; + } + } +--- 1826,1836 ---- + _rl_last_c_pos += bytes_to_insert; + ++ /* XXX - we only want to do this if we are at the end of the line ++ so we move there with _rl_move_cursor_relative */ + if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) +! { +! _rl_move_cursor_relative (ne-new, new); +! goto clear_rest_of_line; +! } + } + } +*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 5 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 6 diff --git a/mingw-w64-readline/readline63-006.sig b/mingw-w64-readline/readline63-006.sig new file mode 100644 index 0000000000000000000000000000000000000000..36685e6ea66a1c99e0f40dbe5c74106d89db4c76 GIT binary patch literal 72 zcmV-O0Jr~$Mg#y60ssaD0#kNZ+W-m)5W84u@MP+At4r_zpqH`)q$uahDIf4I e%)x_i>Hwd9wpJY~3E5h&gpH%v?_oXQt)AVijvnU# literal 0 HcmV?d00001 diff --git a/mingw-w64-readline/readline63-007 b/mingw-w64-readline/readline63-007 new file mode 100644 index 0000000000..1b657924d9 --- /dev/null +++ b/mingw-w64-readline/readline63-007 @@ -0,0 +1,47 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.3 +Patch-ID: readline63-007 + +Bug-Reported-by: John Lenton +Bug-Reference-ID: +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476 + +Bug-Description: + +Readline should allow SIGALRM and SIGVTALRM (if available) to `interrupt' +rl_getc and cause the handler to run when not in a signal handling context. + +Patch (apply with `patch -p0'): + +*** ../readline-6.3-patched/input.c 2014-01-10 15:07:08.000000000 -0500 +--- input.c 2014-05-30 16:20:56.000000000 -0400 +*************** +*** 535,540 **** +--- 538,551 ---- + else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM) + return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF); ++ /* keyboard-generated signals of interest */ + else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT) + RL_CHECK_SIGNALS (); ++ /* non-keyboard-generated signals of interest */ ++ else if (_rl_caught_signal == SIGALRM ++ #if defined (SIGVTALRM) ++ || _rl_caught_signal == SIGVTALRM ++ #endif ++ ) ++ RL_CHECK_SIGNALS (); + + if (rl_signal_event_hook) +*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 6 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 7 diff --git a/mingw-w64-readline/readline63-007.sig b/mingw-w64-readline/readline63-007.sig new file mode 100644 index 0000000000000000000000000000000000000000..81f8472b1c0d8a7f73ad303e5968d98b1612427a GIT binary patch literal 72 zcmV-O0Jr~$Mg#y60ssaD0#oSHm;ee15W84u@MP+As{peAofX9Mu0@H`unZ3RqOynO eL|9{0833O~&5VaGou}|0hFQsz!l4pXgnVV;J|3R{ literal 0 HcmV?d00001 diff --git a/mingw-w64-readline/readline63-008 b/mingw-w64-readline/readline63-008 new file mode 100644 index 0000000000..691016f755 --- /dev/null +++ b/mingw-w64-readline/readline63-008 @@ -0,0 +1,47 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.3 +Patch-ID: readline63-008 + +Bug-Reported-by: Jared Yanovich +Bug-Reference-ID: <20140625225019.GJ17044@nightderanger.psc.edu> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00070.html + +Bug-Description: + +When the readline `revert-all-at-newline' option is set, pressing newline +when the current line is one retrieved from history results in a double free +and a segmentation fault. + +Patch (apply with `patch -p0'): + +*** ../readline-6.3-patched/misc.c 2012-09-01 18:03:11.000000000 -0400 +--- misc.c 2014-06-30 13:41:19.000000000 -0400 +*************** +*** 462,465 **** +--- 462,466 ---- + /* Set up rl_line_buffer and other variables from history entry */ + rl_replace_from_history (entry, 0); /* entry->line is now current */ ++ entry->data = 0; /* entry->data is now current undo list */ + /* Undo all changes to this history entry */ + while (rl_undo_list) +*************** +*** 469,473 **** + FREE (entry->line); + entry->line = savestring (rl_line_buffer); +- entry->data = 0; + } + entry = previous_history (); +--- 470,473 ---- +*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 7 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 8 diff --git a/mingw-w64-readline/readline63-008.sig b/mingw-w64-readline/readline63-008.sig new file mode 100644 index 0000000000000000000000000000000000000000..8f788e00e08a50d76ba1e0f7ada9d48206666204 GIT binary patch literal 72 zcmV-O0Jr~$Mg#y60ssaD0#oSHp8yI85W84u@MP+AtBU3Tpog{^0dP2nS<9(%H_YFd e+4-2kdH|r4Agbq9>umqcPRMzi_8erYfM+lmULj5Z literal 0 HcmV?d00001 From ea7a4af9f630774fcfde06045e3d34a5730e88da Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 29 Jul 2015 22:43:35 +0300 Subject: [PATCH 1386/2060] wxwidgets: Rebuild for consistency with libctdc++ abi. --- mingw-w64-wxwidgets/PKGBUILD | 9 +++-- ...ts-3.0.2-relax-abi-compatibility-gcc.patch | 35 +++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-wxwidgets/wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch diff --git a/mingw-w64-wxwidgets/PKGBUILD b/mingw-w64-wxwidgets/PKGBUILD index 5700c6d093..c80f4116aa 100644 --- a/mingw-w64-wxwidgets/PKGBUILD +++ b/mingw-w64-wxwidgets/PKGBUILD @@ -5,7 +5,7 @@ _realname=wxWidgets pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2 -pkgrel=10 +pkgrel=11 pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)" arch=('any') license=("custom:wxWindows") @@ -23,15 +23,18 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2") options=('strip' 'staticlibs' 'buildflags') source=(http://downloads.sourceforge.net/wxwindows/wxWidgets-${pkgver}.tar.bz2 "wxWidgets-3.0.0-gcc-codelight.patch" - "wxWidgets-3.0.2-msw-dc-orientation-fix.patch") + "wxWidgets-3.0.2-msw-dc-orientation-fix.patch" + "wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch") sha1sums=('6461eab4428c0a8b9e41781b8787510484dea800' '05a3471dcf735d86defe0df00dcb8e9ff0698290' - '99999865476ce03bb75e8244806f3585fe9e71e2') + '99999865476ce03bb75e8244806f3585fe9e71e2' + '62dcd59adde91925e5c51422e192c035978cdedd') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/wxWidgets-3.0.0-gcc-codelight.patch patch -p1 -i ${srcdir}/wxWidgets-3.0.2-msw-dc-orientation-fix.patch + patch -p1 -i ${srcdir}/wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch } build() { diff --git a/mingw-w64-wxwidgets/wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch b/mingw-w64-wxwidgets/wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch new file mode 100644 index 0000000000..d73a23e319 --- /dev/null +++ b/mingw-w64-wxwidgets/wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch @@ -0,0 +1,35 @@ +From ad21cc332ac906b9ae8f238ab135cbe410e78eba Mon Sep 17 00:00:00 2001 +From: Nathan Ridge +Date: Fri, 19 Jun 2015 01:44:55 -0400 +Subject: [PATCH] Relax the ABI compatibility requirements for GCC. + +Allow a library and an application to differ in __GXX_ABI_VERSION +within the range 1002-1008. The ABI changes made in this range +do not affect wxWidgets. +--- + include/wx/build.h | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/include/wx/build.h b/include/wx/build.h +index 473e0c9..75b4f80 100644 +--- a/include/wx/build.h ++++ b/include/wx/build.h +@@ -52,8 +52,17 @@ + // GCC and Intel C++ share same C++ ABI (and possibly others in the future), + // check if compiler versions are compatible: + #if defined(__GXX_ABI_VERSION) ++ // The changes between ABI versions 1002 through 1008 (documented at ++ // https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html ++ // under -fabi-version) don't affect wxWidgets, so we allow a library ++ // and an application to differ within that range. ++ #if ((__GXX_ABI_VERSION >= 1002) && (__GXX_ABI_VERSION <= 1008)) ++ #define wxGXX_EFFECTIVE_ABI_VERSION 1002 ++ #else ++ #define wxGXX_EFFECTIVE_ABI_VERSION __GXX_ABI_VERSION ++ #endif + #define __WX_BO_COMPILER \ +- ",compiler with C++ ABI " __WX_BO_STRINGIZE(__GXX_ABI_VERSION) ++ ",compiler with C++ ABI " __WX_BO_STRINGIZE(wxGXX_EFFECTIVE_ABI_VERSION) + #elif defined(__GNUG__) + #define __WX_BO_COMPILER ",GCC " \ + __WX_BO_STRINGIZE(__GNUC__) "." __WX_BO_STRINGIZE(__GNUC_MINOR__) From 6d085e0abb4f7a727e7ecec781ee94ad6670c4ab Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 30 Jul 2015 00:03:46 +0300 Subject: [PATCH 1387/2060] codelite: Rebuild with GCC-5.2 to fix consistense with wxWidgets --- mingw-w64-codelite-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index 7c3898ceb2..141f6f6550 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=codelite pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=8.0.1.254.g466ff70 +pkgver=8.0.1.311.g4c776f1 pkgrel=1 pkgdesc="Open-source, cross platform IDE for the C/C++ programming languages (mingw-w64)" arch=('any') From c555a9b7880fbaea52ea12f6100e1334e70d8700 Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Wed, 29 Jul 2015 18:36:11 -0300 Subject: [PATCH 1388/2060] winsparkle-git: Fix build. --- mingw-w64-winsparkle-git/Makefile | 22 +++++++++++----------- mingw-w64-winsparkle-git/PKGBUILD | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mingw-w64-winsparkle-git/Makefile b/mingw-w64-winsparkle-git/Makefile index a0f873d31f..ed88e0cad7 100644 --- a/mingw-w64-winsparkle-git/Makefile +++ b/mingw-w64-winsparkle-git/Makefile @@ -5,17 +5,17 @@ all: static dll objects: - gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE appcast.cpp -I../include - gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE appcontroller.cpp -I../include - gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE dll_api.cpp -I../include - gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE dllmain.cpp -I../include - gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE download.cpp -I../include - gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE error.cpp -I../include - gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE settings.cpp -I../include - gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE threads.cpp -I../include - gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE updatechecker.cpp -I../include - gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE ui.cpp -I../include $(shell wx-config --cflags) - gcc -c -mthreads -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE updatedownloader.cpp -I../include $(shell wx-config --cflags) + gcc -std=c++11 -c -mthreads -D_WIN32_WINNT=0x600 -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE appcast.cpp -I../include + gcc -std=c++11 -c -mthreads -D_WIN32_WINNT=0x600 -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE appcontroller.cpp -I../include + gcc -std=c++11 -c -mthreads -D_WIN32_WINNT=0x600 -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE dll_api.cpp -I../include + gcc -std=c++11 -c -mthreads -D_WIN32_WINNT=0x600 -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE dllmain.cpp -I../include + gcc -std=c++11 -c -mthreads -D_WIN32_WINNT=0x600 -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE download.cpp -I../include + gcc -std=c++11 -c -mthreads -D_WIN32_WINNT=0x600 -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE error.cpp -I../include + gcc -std=c++11 -c -mthreads -D_WIN32_WINNT=0x600 -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE settings.cpp -I../include + gcc -std=c++11 -c -mthreads -D_WIN32_WINNT=0x600 -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE threads.cpp -I../include + gcc -std=c++11 -c -mthreads -D_WIN32_WINNT=0x600 -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE updatechecker.cpp -I../include + gcc -std=c++11 -c -mthreads -D_WIN32_WINNT=0x600 -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE ui.cpp -I../include $(shell wx-config --cflags) + gcc -std=c++11 -c -mthreads -D_WIN32_WINNT=0x600 -DUNICODE -D_UNICODE -DBUILDING_WIN_SPARKLE updatedownloader.cpp -I../include $(shell wx-config --cflags) static: objects ar rcs libwinsparkle.a *.o diff --git a/mingw-w64-winsparkle-git/PKGBUILD b/mingw-w64-winsparkle-git/PKGBUILD index bd205a5666..c7c4cf4689 100644 --- a/mingw-w64-winsparkle-git/PKGBUILD +++ b/mingw-w64-winsparkle-git/PKGBUILD @@ -17,7 +17,7 @@ source=(${_realname}::'git+https://github.com/vslavik/winsparkle' Makefile) sha1sums=('SKIP' '7f60dc43089dc633eb2c0d0881b99b0cbd6249de' - '8680f3d8f0e2aa9b8a57364c15e98d2f9d2c64c6') + '37480a022b0874b3bf20149ae643fa6d2d0cedfb') prepare() { cd "${srcdir}/${_realname}" From 30a74b0f6d8ad1d3b92acd2c380c67066f40a9b4 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 30 Jul 2015 21:07:23 +0300 Subject: [PATCH 1389/2060] winsparkle-git: Rebuild with gcc-5.x --- mingw-w64-winsparkle-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-winsparkle-git/PKGBUILD b/mingw-w64-winsparkle-git/PKGBUILD index c7c4cf4689..0cc45eb738 100644 --- a/mingw-w64-winsparkle-git/PKGBUILD +++ b/mingw-w64-winsparkle-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) conflicts=(${MINGW_PACKAGE_PREFIX}-${_realname}) pkgver=r286.61ae84e -pkgrel=1 +pkgrel=2 url='http://winsparkle.org' pkgdesc='App update framework for Windows, inspired by Sparkle for OS X (mingw-w64)' license=('MIT') From 4e136beffeecf5a142cc145c818fde601bb00031 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 30 Jul 2015 21:42:49 +0300 Subject: [PATCH 1390/2060] wxPython: Rebuild with gcc-5.2 --- mingw-w64-wxPython/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-wxPython/PKGBUILD b/mingw-w64-wxPython/PKGBUILD index 98dfda9a49..bee310197e 100644 --- a/mingw-w64-wxPython/PKGBUILD +++ b/mingw-w64-wxPython/PKGBUILD @@ -4,7 +4,7 @@ _realname=wxPython pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.2.0 _editraver=0.7.20 -pkgrel=3 +pkgrel=4 pkgdesc="A wxWidgets GUI toolkit for Python (mingw-w64)" arch=('any') license=("custom:wxWindows") From 2d49134b395f493f35f1ff460efb3e923d7bda02 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 30 Jul 2015 21:43:04 +0300 Subject: [PATCH 1391/2060] FAIL_LIST: Update --- FAIL_LIST.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index e0ea797018..e01792afd9 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -57,6 +57,4 @@ List of packages that currently fail to build - tclx -- winsparkle-git - - xmlada-gpl From 7a6aba6f7eb6f5897f4a643f6fe4f33c2e00c1c6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 30 Jul 2015 23:51:12 +0300 Subject: [PATCH 1392/2060] cgal: Fix cmake config file. --- mingw-w64-cgal/PKGBUILD | 9 ++++++--- mingw-w64-cgal/fix-library-location-config.patch | 11 +++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-cgal/fix-library-location-config.patch diff --git a/mingw-w64-cgal/PKGBUILD b/mingw-w64-cgal/PKGBUILD index 356ee025d0..2b50a80c64 100644 --- a/mingw-w64-cgal/PKGBUILD +++ b/mingw-w64-cgal/PKGBUILD @@ -3,7 +3,7 @@ _realname=cgal pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.6.1 -pkgrel=1 +pkgrel=2 _pkgid=34898 pkgdesc="Computational Geometry Algorithms Library (mingw-w64)" arch=('any') @@ -22,13 +22,16 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-eigen3: for some packages, see the CGAL man ) options=('strip' 'staticlibs') source=(http://gforge.inria.fr/frs/download.php/${_pkgid}/CGAL-${pkgver}.tar.xz - msys2-relocate-cmake-config.patch) + msys2-relocate-cmake-config.patch + fix-library-location-config.patch) sha1sums=('a187920223ba3b2a275982e43bec33fadcea01db' - '3742f2bb189f6c53e66e6ba5562c28685f9d1a86') + '3742f2bb189f6c53e66e6ba5562c28685f9d1a86' + '36631de181f3c4a1f5a06c93633fedbe3503bafc') prepare() { cd "${srcdir}"/CGAL-${pkgver} patch -p1 -i "${srcdir}"/msys2-relocate-cmake-config.patch + patch -p1 -i "${srcdir}"/fix-library-location-config.patch } build() { diff --git a/mingw-w64-cgal/fix-library-location-config.patch b/mingw-w64-cgal/fix-library-location-config.patch new file mode 100644 index 0000000000..b01d147cc6 --- /dev/null +++ b/mingw-w64-cgal/fix-library-location-config.patch @@ -0,0 +1,11 @@ +--- CGAL-4.6.1/CMakeLists.txt.orig 2015-07-30 23:35:01.281605000 +0300 ++++ CGAL-4.6.1/CMakeLists.txt 2015-07-30 23:35:24.532518300 +0300 +@@ -826,7 +826,7 @@ + foreach(lib ${CGAL_CONFIGURED_LIBRARIES} CGAL) # note the added fake 'CGAL' + if(${lib}_LIBRARY) + get_filename_component(lib_name "${${lib}_LIBRARY}" NAME) +- set(${lib}_LIBRARY_INSTALLED "${CMAKE_INSTALL_PREFIX}/${CGAL_INSTALL_LIB_DIR}/${lib_name}") ++ set(${lib}_LIBRARY_INSTALLED "${CMAKE_INSTALL_PREFIX}/${CGAL_INSTALL_BIN_DIR}/${lib_name}") + else() + set(${lib}_LIBRARY_INSTALLED "") + endif() From 4afcacbb717458c6c2959252d7778bc3ae4c6e73 Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Thu, 30 Jul 2015 18:03:58 +0200 Subject: [PATCH 1393/2060] aspell-es: New package --- mingw-w64-aspell-es/001-unixy-dirs.patch | 15 ++++++++++ mingw-w64-aspell-es/PKGBUILD | 37 ++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 mingw-w64-aspell-es/001-unixy-dirs.patch create mode 100644 mingw-w64-aspell-es/PKGBUILD diff --git a/mingw-w64-aspell-es/001-unixy-dirs.patch b/mingw-w64-aspell-es/001-unixy-dirs.patch new file mode 100644 index 0000000000..7aca3e04db --- /dev/null +++ b/mingw-w64-aspell-es/001-unixy-dirs.patch @@ -0,0 +1,15 @@ +--- aspell6-en-7.1-0/configure.orig 2015-07-27 12:03:47.683663100 +0300 ++++ aspell6-en-7.1-0/configure 2015-07-27 12:05:05.653865300 +0300 +@@ -73,10 +73,12 @@ + + echo $ECHO_N "Finding Dictionary file location ... $ECHO_C" + dictdir=`$ASPELL dump config dict-dir` ++dictdir=`cygpath -u $dictdir` + echo $dictdir + + echo $ECHO_N "Finding Data file location ... $ECHO_C" + datadir=`$ASPELL dump config data-dir` ++datadir=`cygpath -u $datadir` + echo $datadir + + echo "ASPELL = `which $ASPELL`" > Makefile diff --git a/mingw-w64-aspell-es/PKGBUILD b/mingw-w64-aspell-es/PKGBUILD new file mode 100644 index 0000000000..58ca6fb0f9 --- /dev/null +++ b/mingw-w64-aspell-es/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Oscar Fuentes + +_realname=aspell-es +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +_pkgver=1.11-2 +pkgver=${_pkgver//-/.} +pkgrel=1 +pkgdesc="Spanish dictionary for aspell (mingw-w64)" +arch=('any') +url="http://aspell.net/" +license=('custom') +depends=("${MINGW_PACKAGE_PREFIX}-aspell") +source=(ftp://ftp.gnu.org/gnu/aspell/dict/es/aspell6-es-${_pkgver}.tar.bz2 + 001-unixy-dirs.patch) +md5sums=('8406336a89c64e47e96f4153d0af70c4' + '59759a5f0047312a49f5817a83a8a2f9') +sha1sums=('18acfa4bc08433e920bb015b158e43643e5125cf' + 'a624663ef98117b62f45cab4ade44cce3105ef4d') + +prepare() { + cd "${srcdir}/aspell6-es-${_pkgver}" + patch -p1 -i ${srcdir}/001-unixy-dirs.patch +} + +build() { + cd "${srcdir}/aspell6-es-${_pkgver}" + ./configure + sed -i 's/C\:\\msys64\\/\//' Makefile + make +} + +package() { + cd "${srcdir}/aspell6-es-${_pkgver}" + make DESTDIR="${pkgdir}" install + + install -D -m644 Copyright "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From 3404dba7aa079c6f601a42676220aec3a6f663d4 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 31 Jul 2015 08:48:16 +0300 Subject: [PATCH 1394/2060] aspell-ru: New package --- mingw-w64-aspell-ru/001-unixy-dirs.patch | 15 ++++++++++ mingw-w64-aspell-ru/PKGBUILD | 37 ++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 mingw-w64-aspell-ru/001-unixy-dirs.patch create mode 100644 mingw-w64-aspell-ru/PKGBUILD diff --git a/mingw-w64-aspell-ru/001-unixy-dirs.patch b/mingw-w64-aspell-ru/001-unixy-dirs.patch new file mode 100644 index 0000000000..7aca3e04db --- /dev/null +++ b/mingw-w64-aspell-ru/001-unixy-dirs.patch @@ -0,0 +1,15 @@ +--- aspell6-en-7.1-0/configure.orig 2015-07-27 12:03:47.683663100 +0300 ++++ aspell6-en-7.1-0/configure 2015-07-27 12:05:05.653865300 +0300 +@@ -73,10 +73,12 @@ + + echo $ECHO_N "Finding Dictionary file location ... $ECHO_C" + dictdir=`$ASPELL dump config dict-dir` ++dictdir=`cygpath -u $dictdir` + echo $dictdir + + echo $ECHO_N "Finding Data file location ... $ECHO_C" + datadir=`$ASPELL dump config data-dir` ++datadir=`cygpath -u $datadir` + echo $datadir + + echo "ASPELL = `which $ASPELL`" > Makefile diff --git a/mingw-w64-aspell-ru/PKGBUILD b/mingw-w64-aspell-ru/PKGBUILD new file mode 100644 index 0000000000..f4fdbd5f3d --- /dev/null +++ b/mingw-w64-aspell-ru/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Alexey Pavlov + +_realname=aspell-ru +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +_pkgver=0.99f7-1 +pkgver=${_pkgver//-/.} +pkgrel=1 +pkgdesc="Russian dictionary for aspell (mingw-w64)" +arch=('any') +url="http://aspell.net/" +license=('custom') +depends=("${MINGW_PACKAGE_PREFIX}-aspell") +source=(ftp://ftp.gnu.org/gnu/aspell/dict/ru/aspell6-ru-${_pkgver}.tar.bz2 + 001-unixy-dirs.patch) +md5sums=('c4c98eaa5e77ad3adccbc5c96cb57cb3' + '59759a5f0047312a49f5817a83a8a2f9') +sha1sums=('e012fa03645f4ff1f5ba9df6b215ea4ffc6fd9cf' + 'a624663ef98117b62f45cab4ade44cce3105ef4d') + +prepare() { + cd "${srcdir}/aspell6-ru-${_pkgver}" + patch -p1 -i ${srcdir}/001-unixy-dirs.patch +} + +build() { + cd "${srcdir}/aspell6-ru-${_pkgver}" + ./configure + sed -i 's/C\:\\msys64\\/\//' Makefile + make +} + +package() { + cd "${srcdir}/aspell6-ru-${_pkgver}" + make DESTDIR="${pkgdir}" install + + install -D -m644 Copyright "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From c90c7448a8de265586aef9b84d213d4b9e521c64 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 31 Jul 2015 08:54:43 +0300 Subject: [PATCH 1395/2060] python-icu: Update to 1.9.2. Rebuild with gcc-5.x --- mingw-w64-python-icu/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-python-icu/PKGBUILD b/mingw-w64-python-icu/PKGBUILD index 4945655da1..161d30edc1 100644 --- a/mingw-w64-python-icu/PKGBUILD +++ b/mingw-w64-python-icu/PKGBUILD @@ -2,8 +2,8 @@ _realname=PyICU pkgname=("${MINGW_PACKAGE_PREFIX}-python2-icu" "${MINGW_PACKAGE_PREFIX}-python3-icu") -pkgver=1.8 -pkgrel=3 +pkgver=1.9.2 +pkgrel=1 pkgdesc="Python extension wrapping the ICU C++ API" arch=('any') license=('BSD') @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-icu") options=('staticlibs' 'strip' '!debug') source=("https://pypi.python.org/packages/source/P/${_realname}/${_realname}-${pkgver}.tar.gz") -md5sums=('00c8d40e5400f52c8474aa9480e8dbc1') +md5sums=('a104ea78918a8b1f4ecbbb1063edb46b') prepare() { cd "${srcdir}" @@ -40,7 +40,7 @@ build() { package_python3-icu() { depends=("${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-icu") + "${MINGW_PACKAGE_PREFIX}-icu") cd "${srcdir}/build-${CARCH}" ${MINGW_PREFIX}/bin/python3 setup.py install \ @@ -54,7 +54,7 @@ package_python3-icu() { package_python2-icu() { depends=("${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-icu") + "${MINGW_PACKAGE_PREFIX}-icu") cd "${srcdir}/build-${CARCH}" ${MINGW_PREFIX}/bin/python2 setup.py install \ From bae4f77e075e983fb9536419f3e95f91d64475c0 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 31 Jul 2015 09:05:38 +0300 Subject: [PATCH 1396/2060] libtommath: Rebuild with gcc-5.x --- ....patch => 002-libtommath-0.42.0-makefile.patch} | 0 mingw-w64-libtommath/PKGBUILD | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) rename mingw-w64-libtommath/{libtommath-0.42.0-makefile.patch => 002-libtommath-0.42.0-makefile.patch} (100%) diff --git a/mingw-w64-libtommath/libtommath-0.42.0-makefile.patch b/mingw-w64-libtommath/002-libtommath-0.42.0-makefile.patch similarity index 100% rename from mingw-w64-libtommath/libtommath-0.42.0-makefile.patch rename to mingw-w64-libtommath/002-libtommath-0.42.0-makefile.patch diff --git a/mingw-w64-libtommath/PKGBUILD b/mingw-w64-libtommath/PKGBUILD index 4745859ca8..cd962684d7 100644 --- a/mingw-w64-libtommath/PKGBUILD +++ b/mingw-w64-libtommath/PKGBUILD @@ -3,26 +3,26 @@ _realname=libtommath pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.42.0 -pkgrel=1 +pkgrel=2 pkgdesc="Highly optimized and portable routines for integer based number theoretic applications (mingw-w64)" url="http://www.libtom.org/" arch=('any') license=("custom") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') -source=("http://libtom.org/files/ltm-${pkgver}.tar.bz2" - 'libtommath-0.42.0-makefile.patch') -md5sums=('7380da904b020301be7045cb3a89039b' +source=(${_realname}-${pkgver}.tar.gz::https://github.com/libtom/libtommath/archive/v${pkgver}.tar.gz + 002-libtommath-0.42.0-makefile.patch) +md5sums=('6e2a82a6073388e4d14d30e8eb0d4fe3' '0bf4d7eaf45e67dfc38c25e39510111a') prepare() { - cd $srcdir/${_realname}-${pkgver} - patch -Np1 -i ${srcdir}/libtommath-0.42.0-makefile.patch + cd ${srcdir}/${_realname}-${pkgver} + patch -Np1 -i ${srcdir}/002-libtommath-0.42.0-makefile.patch } build() { cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} CFLAGS+=" -I${srcdir}/build-${MINGW_CHOST}" CC="${MINGW_PREFIX}/bin/gcc" \ From 3d3d7f1d38e8e222ccc754f388d75c4678dddc80 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 31 Jul 2015 09:17:47 +0300 Subject: [PATCH 1397/2060] assimp: Rebuild with gcc-5.x --- mingw-w64-assimp-git/PKGBUILD | 16 +++++++++++----- mingw-w64-assimp/PKGBUILD | 23 +++++++++++------------ 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/mingw-w64-assimp-git/PKGBUILD b/mingw-w64-assimp-git/PKGBUILD index 3fe360d393..391a6121e4 100644 --- a/mingw-w64-assimp-git/PKGBUILD +++ b/mingw-w64-assimp-git/PKGBUILD @@ -7,8 +7,13 @@ pkgrel=1 pkgdesc="Portable Open Source library to import various well-known 3D model formats in an uniform manner (mingw-w64)" arch=('any') license=('BSD') -depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" 'unzip' 'git') +depends=("${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-zziplib" + "${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "git") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") url=('http://assimp.sourceforge.net/index.html') @@ -19,7 +24,7 @@ md5sums=('SKIP' 'eb7991c3764c438801238e3dbb125d54') pkgver() { - cd "$srcdir/$_realname" + cd "${srcdir}/${_realname}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } @@ -32,9 +37,10 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DASSIMP_BUILD_ASSIMP_TOOLS=YES \ -DASSIMP_ENABLE_BOOST_WORKAROUND=OFF \ -DASSIMP_BUILD_STATIC_LIB=OFF \ @@ -47,7 +53,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make -j1 install + make DESTDIR=${pkgdir} -j1 install install -Dm644 "${srcdir}/${_realname}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-assimp/PKGBUILD b/mingw-w64-assimp/PKGBUILD index 80b4772dee..1c6987b1bd 100644 --- a/mingw-w64-assimp/PKGBUILD +++ b/mingw-w64-assimp/PKGBUILD @@ -3,14 +3,18 @@ _realname=assimp pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.1.1 -pkgrel=1 +pkgrel=2 pkgdesc="Portable Open Source library to import various well-known 3D model formats in an uniform manner (mingw-w64)" arch=('any') license=('BSD') -depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-zlib") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") +depends=("${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-zziplib" + "${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") url=('http://assimp.sourceforge.net/index.html') -source=(https://github.com/assimp/assimp/archive/v${pkgver}.tar.gz +source=(${_realname}-${pkgver}.tar.gz::https://github.com/assimp/assimp/archive/v${pkgver}.tar.gz build-fixes.patch) options=('!strip' 'staticlibs') sha1sums=('e8c54a31d16aae77901d4f51c0d09e7148dcba0d' @@ -25,9 +29,10 @@ build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=RELEASE \ -DASSIMP_BUILD_ASSIMP_TOOLS=YES \ -DASSIMP_ENABLE_BOOST_WORKAROUND=OFF \ @@ -40,12 +45,6 @@ build() { package() { cd "${srcdir}//build-${MINGW_CHOST}" - make -j1 install + make DESTDIR=${pkgdir} -j1 install install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" - - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/assimp.pc } From 18807039fc21200c0a3a8485566b8e8a8d7f8723 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 31 Jul 2015 11:29:30 +0300 Subject: [PATCH 1398/2060] gpgme: Don't lookup registry --- mingw-w64-gpgme/PKGBUILD | 16 +++-- mingw-w64-gpgme/gpgme-find-gnupg.patch | 83 ++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-gpgme/gpgme-find-gnupg.patch diff --git a/mingw-w64-gpgme/PKGBUILD b/mingw-w64-gpgme/PKGBUILD index e27cbd210b..a1f7e7b8c9 100644 --- a/mingw-w64-gpgme/PKGBUILD +++ b/mingw-w64-gpgme/PKGBUILD @@ -3,7 +3,7 @@ _realname=gpgme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.5.5 -pkgrel=2 +pkgrel=3 pkgdesc="A C wrapper library for GnuPG (mingw-w64)" arch=('any') url="http://www.gnupg.org/related_software/gpgme/" @@ -16,22 +16,26 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" ) options=('!emptydirs') source=(ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2{,.sig} - gpgme-1.5.4-mingw-mkstemp.patch) + gpgme-1.5.4-mingw-mkstemp.patch + gpgme-find-gnupg.patch) sha1sums=('88476d72cb099e179de4040760502886f7a54926' 'SKIP' - '8c7d7648772c29620b7fd23e867f60386ba92790') + '8c7d7648772c29620b7fd23e867f60386ba92790' + '6dbd6f52c918facbe8fee5c5521ebad724ec9653') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/gpgme-1.5.4-mingw-mkstemp.patch - #autoreconf -ivf + patch -p1 -i ${srcdir}/gpgme-find-gnupg.patch + + autoreconf -ivf } build() { - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ diff --git a/mingw-w64-gpgme/gpgme-find-gnupg.patch b/mingw-w64-gpgme/gpgme-find-gnupg.patch new file mode 100644 index 0000000000..8f05a2c0da --- /dev/null +++ b/mingw-w64-gpgme/gpgme-find-gnupg.patch @@ -0,0 +1,83 @@ +--- gpgme-1.5.5/configure.ac.orig 2015-07-31 09:24:13.396403000 +0300 ++++ gpgme-1.5.5/configure.ac 2015-07-31 09:24:48.701872100 +0300 +@@ -161,10 +161,10 @@ + *-mingw32ce*|*-mingw32*) + have_dosish_system=yes + have_w32_system=yes +- GPG_DEFAULT='c:\\gnupg\\gpg.exe' +- GPGSM_DEFAULT='c:\\gnupg\\gpgsm.exe' +- GPGCONF_DEFAULT='c:\\gnupg\\gpgconf.exe' +- G13_DEFAULT='c:\\gnupg\\g13.exe' ++ GPG_DEFAULT='gpg.exe' ++ GPGSM_DEFAULT='gpgsm.exe' ++ GPGCONF_DEFAULT='gpgconf.exe' ++ G13_DEFAULT='g13.exe' + #component_system='COM+' + + AM_PATH_GLIB_2_0 +--- gpgme-1.5.5/src/w32-util.c.orig 2015-07-31 09:27:08.507890100 +0300 ++++ gpgme-1.5.5/src/w32-util.c 2015-07-31 09:51:04.830243500 +0300 +@@ -418,6 +418,7 @@ + return result; + } + ++#ifndef __MINGW32__ + dir = read_w32_registry_string ("HKEY_LOCAL_MACHINE", + "Software\\GNU\\GnuPG", + "Install Directory"); +@@ -427,6 +428,7 @@ + free (dir); + return result; + } ++#endif + return NULL; + } + +@@ -503,13 +505,15 @@ + inst_dir = _gpgme_get_inst_dir (); + gpg = find_program_in_inst_dir + (inst_dir, +- default_gpg_name? get_basename (default_gpg_name) : "gpg.exe"); ++ default_gpg_name ? get_basename (default_gpg_name) : "gpg.exe"); + if (!gpg) + { +- name = (default_gpg_name? default_gpg_name ++#ifndef __MINGW32__ ++ name = (default_gpg_name ? default_gpg_name + /* */ : "GNU\\GnuPG\\gpg.exe"); + gpg = find_program_at_standard_place (name); + if (!gpg) ++#endif + _gpgme_debug (DEBUG_ENGINE, "_gpgme_get_gpg_path: '%s' not found", + name); + } +@@ -529,13 +533,15 @@ + inst_dir = _gpgme_get_inst_dir (); + gpgconf = find_program_in_inst_dir + (inst_dir, +- default_gpgconf_name? get_basename (default_gpgconf_name) : "gpgconf.exe"); ++ default_gpgconf_name ? get_basename (default_gpgconf_name) : "gpgconf.exe"); + if (!gpgconf) + { +- name = (default_gpgconf_name? default_gpgconf_name ++#ifndef __MINGW32__ ++ name = (default_gpgconf_name ? default_gpgconf_name + /* */ : "GNU\\GnuPG\\gpgconf.exe"); + gpgconf = find_program_at_standard_place (name); + if (!gpgconf) ++#endif + _gpgme_debug (DEBUG_ENGINE, "_gpgme_get_gpgconf_path: '%s' not found", + name); + } +@@ -553,9 +559,11 @@ + LOCK (get_path_lock); + if (!w32spawn_program) + w32spawn_program = find_program_in_inst_dir (inst_dir,"gpgme-w32spawn.exe"); ++#ifndef __MINGW32__ + if (!w32spawn_program) + w32spawn_program + = find_program_at_standard_place ("GNU\\GnuPG\\gpgme-w32spawn.exe"); ++#endif + UNLOCK (get_path_lock); + return w32spawn_program; + } From 9fd801c7e1d5e129112d940dc2830ed199ee902d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 31 Jul 2015 14:21:51 +0300 Subject: [PATCH 1399/2060] gnupg: Mingw always generate portable apps. Fix building with openldap installed. --- .../02-mingw-sysconfigdir-under-prefix.patch | 29 + .../03-ldap-libraries-check-order.patch | 11 + mingw-w64-gnupg/04-dos-extra-defs.patch | 67 ++ mingw-w64-gnupg/05-mingw-relocation.patch | 794 ++++++++++++++++++ mingw-w64-gnupg/PKGBUILD | 28 +- 5 files changed, 922 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-gnupg/02-mingw-sysconfigdir-under-prefix.patch create mode 100644 mingw-w64-gnupg/03-ldap-libraries-check-order.patch create mode 100644 mingw-w64-gnupg/04-dos-extra-defs.patch create mode 100644 mingw-w64-gnupg/05-mingw-relocation.patch diff --git a/mingw-w64-gnupg/02-mingw-sysconfigdir-under-prefix.patch b/mingw-w64-gnupg/02-mingw-sysconfigdir-under-prefix.patch new file mode 100644 index 0000000000..871a7e0651 --- /dev/null +++ b/mingw-w64-gnupg/02-mingw-sysconfigdir-under-prefix.patch @@ -0,0 +1,29 @@ +--- gnupg-2.1.6/common/homedir.c.orig 2015-07-31 11:43:08.996759600 +0300 ++++ gnupg-2.1.6/common/homedir.c 2015-07-31 11:57:22.125438200 +0300 +@@ -260,6 +260,9 @@ + log_error ("required binary '%s' is not installed\n", fname); + else + { ++#ifdef __MINGW32__ ++ w32_portable_app = 1; ++#else + strcpy (fname + strlen (fname) - 3, "ctl"); + if (!access (fname, F_OK)) + { +@@ -273,6 +276,7 @@ + /* FIXME: We should read the file to detect special flags + and print a warning if we don't understand them */ + } ++#endif + } + xfree (fname); + } +@@ -384,7 +388,7 @@ + if (!name) + { + const char *s1, *s2; +- s1 = w32_commondir (); ++ s1 = w32_rootdir (); + s2 = DIRSEP_S "etc" DIRSEP_S "gnupg"; + name = xmalloc (strlen (s1) + strlen (s2) + 1); + strcpy (stpcpy (name, s1), s2); diff --git a/mingw-w64-gnupg/03-ldap-libraries-check-order.patch b/mingw-w64-gnupg/03-ldap-libraries-check-order.patch new file mode 100644 index 0000000000..062a6a0649 --- /dev/null +++ b/mingw-w64-gnupg/03-ldap-libraries-check-order.patch @@ -0,0 +1,11 @@ +--- gnupg-2.1.6/m4/ldap.m4.orig 2015-07-31 12:17:00.169622000 +0300 ++++ gnupg-2.1.6/m4/ldap.m4 2015-07-31 12:17:29.495689100 +0300 +@@ -34,7 +34,7 @@ + _ldap_save_ldflags=$LDFLAGS + LDFLAGS="${LDAP_LDFLAGS} ${LDFLAGS}" + +- for MY_LDAPLIBS in ${LDAPLIBS+"$LDAPLIBS"} "-lldap" "-lldap -llber" "-lldap -llber -lresolv" "-lwldap32"; do ++ for MY_LDAPLIBS in ${LDAPLIBS+"$LDAPLIBS"} "-lwldap32" "-lldap" "-lldap -llber" "-lldap -llber -lresolv"; do + _ldap_save_libs=$LIBS + LIBS="$MY_LDAPLIBS $1 $LIBS" + diff --git a/mingw-w64-gnupg/04-dos-extra-defs.patch b/mingw-w64-gnupg/04-dos-extra-defs.patch new file mode 100644 index 0000000000..4fd4a25638 --- /dev/null +++ b/mingw-w64-gnupg/04-dos-extra-defs.patch @@ -0,0 +1,67 @@ +--- gnupg-2.1.6/configure.ac.orig 2015-07-31 13:32:15.206073200 +0300 ++++ gnupg-2.1.6/configure.ac 2015-07-31 13:32:25.944999200 +0300 +@@ -468,27 +468,6 @@ + #define GNUPG_PRIVATE_KEYS_DIR "private-keys-v1.d" + #define GNUPG_OPENPGP_REVOC_DIR "openpgp-revocs.d" + +-/* For some systems (DOS currently), we hardcode the path here. For +- POSIX systems the values are constructed by the Makefiles, so that +- the values may be overridden by the make invocations; this is to +- comply with the GNU coding standards. Note that these values are +- only defaults. */ +-#ifdef HAVE_DOSISH_SYSTEM +-# ifdef HAVE_DRIVE_LETTERS +-# define GNUPG_BINDIR "c:\\gnupg" +-# define GNUPG_LIBEXECDIR "c:\\gnupg" +-# define GNUPG_LIBDIR "c:\\gnupg" +-# define GNUPG_DATADIR "c:\\gnupg" +-# define GNUPG_SYSCONFDIR "c:\\gnupg" +-# else +-# define GNUPG_BINDIR "\\gnupg" +-# define GNUPG_LIBEXECDIR "\\gnupg" +-# define GNUPG_LIBDIR "\\gnupg" +-# define GNUPG_DATADIR "\\gnupg" +-# define GNUPG_SYSCONFDIR "\\gnupg" +-# endif +-#endif +- + /* Derive some other constants. */ + #if !(defined(HAVE_FORK) && defined(HAVE_PIPE) && defined(HAVE_WAITPID)) + #define EXEC_TEMPFILE_ONLY +--- gnupg-2.1.6/am/cmacros.am.orig 2015-07-31 13:41:32.741314100 +0300 ++++ gnupg-2.1.6/am/cmacros.am 2015-07-31 13:41:49.626625400 +0300 +@@ -22,14 +22,12 @@ + # platform to create source files. + AM_CPPFLAGS += -DLOCALEDIR=\"$(localedir)\" + +-if ! HAVE_DOSISH_SYSTEM + AM_CPPFLAGS += -DGNUPG_BINDIR="\"$(bindir)\"" \ + -DGNUPG_LIBEXECDIR="\"$(libexecdir)\"" \ + -DGNUPG_LIBDIR="\"$(libdir)/@PACKAGE@\"" \ + -DGNUPG_DATADIR="\"$(datadir)/@PACKAGE@\"" \ + -DGNUPG_SYSCONFDIR="\"$(sysconfdir)/@PACKAGE@\"" \ + -DGNUPG_LOCALSTATEDIR="\"$(localstatedir)\"" +-endif + + + # If a specific protect tool program has been defined, pass its name +--- gnupg-2.1.6/doc/mkdefsinc.c.orig 2015-07-31 13:44:21.170469500 +0300 ++++ gnupg-2.1.6/doc/mkdefsinc.c 2015-07-31 13:44:29.263660100 +0300 +@@ -31,17 +31,6 @@ + values are not valid for the build platform but we need some values + nevertheless. */ + #include "config.h" +-/* When building for Windows some -D macros are not available. We +- provide replacements here. */ +-#ifdef HAVE_W32_SYSTEM +-# define GNUPG_BINDIR "INSTDIR/bin" +-# define GNUPG_LIBEXECDIR "INSTDIR/bin" +-# define GNUPG_LIBDIR "INSTDIR/lib/" PACKAGE_NAME +-# define GNUPG_DATADIR "INSTDIR/share/" PACKAGE_NAME +-# define GNUPG_SYSCONFDIR "APPDATA/GNU/etc/" PACKAGE_NAME +-# define GNUPG_LOCALSTATEDIR "APPDATA/GNU" +-#endif /*HAVE_W32_SYSTEM*/ +- + + static int verbose; + diff --git a/mingw-w64-gnupg/05-mingw-relocation.patch b/mingw-w64-gnupg/05-mingw-relocation.patch new file mode 100644 index 0000000000..1d99107e3e --- /dev/null +++ b/mingw-w64-gnupg/05-mingw-relocation.patch @@ -0,0 +1,794 @@ +--- gnupg-2.1.6/common/pathtools.h.orig 1970-01-01 03:00:00.000000000 +0300 ++++ gnupg-2.1.6/common/pathtools.h 2015-03-25 12:39:25.647037500 +0300 +@@ -0,0 +1,53 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#ifndef PATHTOOLS_H ++#define PATHTOOLS_H ++ ++#include ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++ ++char * malloc_copy_string(char const * original); ++ ++/* In-place replaces any '\' with '/' and any '//' with '/' */ ++void sanitise_path(char * path); ++ ++/* Uses a host OS specific function to determine the path of the executable, ++ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ ++int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ ++/* Where possible, in-place removes occourances of '.' and 'path/..' */ ++void simplify_path(char * path); ++ ++/* Allocates (via malloc) and returns the path to get from from to to. */ ++char * get_relative_path(char const * from, char const * to); ++ ++size_t split_path_list(char const * path_list, char split_char, char *** arr); ++ ++/* Advances path along by the amount that removes n prefix folders. */ ++char const * ++strip_n_prefix_folders(char const * path, size_t n); ++ ++/* NULL terminates path to remove n suffix folders. */ ++void ++strip_n_suffix_folders(char * path, size_t n); ++ ++char const * get_relocated_path (char const * from, char const * to, char const * actual_from); ++char * get_relocated_path_list(char const * from, char const * to_path_list); ++ ++char * single_path_relocation(const char *from, const char *to); ++char * pathlist_relocation(const char *from_path, const char *to_path_list); ++ ++#endif /* PATHTOOLS_H */ +--- gnupg-2.1.6/common/pathtools.c.orig 1970-01-01 03:00:00.000000000 +0300 ++++ gnupg-2.1.6/common/pathtools.c 2015-03-25 12:39:25.646037600 +0300 +@@ -0,0 +1,538 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++#include ++#endif ++#include ++ ++/* If you don't define this, then get_executable_path() ++ can only use argv[0] which will often not work well */ ++#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH ++ ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++/* Nothing needed, unistd.h is enough. */ ++#elif defined(__APPLE__) ++#include ++#elif defined(_WIN32) ++#define WIN32_MEAN_AND_LEAN ++#include ++#include ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ ++#include "pathtools.h" ++ ++char * ++malloc_copy_string(char const * original) ++{ ++ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); ++ if (result != NULL) ++ { ++ strcpy (result, original); ++ } ++ return result; ++} ++ ++void ++sanitise_path(char * path) ++{ ++ size_t path_size = strlen (path); ++ ++ /* Replace any '\' with '/' */ ++ char * path_p = path; ++ while ((path_p = strchr (path_p, '\\')) != NULL) ++ { ++ *path_p = '/'; ++ } ++ /* Replace any '//' with '/' */ ++ path_p = path; ++ while ((path_p = strstr (path_p, "//")) != NULL) ++ { ++ memmove (path_p, path_p + 1, path_size--); ++ } ++ return; ++} ++ ++char * ++get_relative_path(char const * from_in, char const * to_in) ++{ ++ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); ++ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); ++ size_t max_size = (from_size + to_size) * 2 + 4; ++ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); ++ char * from; ++ char * to; ++ char * common_part; ++ char * result; ++ size_t count; ++ ++ /* No to, return "./" */ ++ if (to_in == NULL) ++ { ++ return malloc_copy_string ("./"); ++ } ++ ++ /* If alloca failed or no from was given return a copy of to */ ++ if ( from_in == NULL ++ || scratch_space == NULL ) ++ { ++ return malloc_copy_string (to_in); ++ } ++ ++ from = scratch_space; ++ strcpy (from, from_in); ++ to = from + from_size + 1; ++ strcpy (to, to_in); ++ common_part = to + to_size + 1; ++ result = common_part + max_size; ++ simplify_path (from); ++ simplify_path (to); ++ ++ result[0] = '\0'; ++ ++ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ ++ size_t match_size = 0; /* The running (and final) match size. */ ++ size_t largest_size = (from_size > to_size) ? from_size : to_size; ++ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; ++ char from_c; ++ char to_c; ++ for (match_size = 0; match_size < largest_size; ++match_size) ++ { ++ /* To simplify the logic, always pretend the strings end with '/' */ ++ from_c = (match_size < from_size) ? from[match_size] : '/'; ++ to_c = (match_size < to_size) ? to[match_size] : '/'; ++ ++ if (from_c != to_c) ++ { ++ if (from_c != '\0' || to_c != '\0') ++ { ++ match_size = match_size_dirsep; ++ } ++ break; ++ } ++ else if (from_c == '/') ++ { ++ match_size_dirsep = match_size; ++ } ++ } ++ strncpy (common_part, from, match_size); ++ common_part[match_size] = '\0'; ++ from += match_size; ++ to += match_size; ++ size_t ndotdots = 0; ++ char const* from_last = from + strlen(from) - 1; ++ while ((from = strchr (from, '/')) && from != from_last) ++ { ++ ++ndotdots; ++ ++from; ++ } ++ for (count = 0; count < ndotdots; ++count) ++ { ++ strcat(result, "../"); ++ } ++ if (strlen(to) > 0) ++ { ++ strcat(result, to+1); ++ } ++ /* Make sure that if to ends with '/' result does the same, and ++ vice-versa. */ ++ size_t size_result = strlen(result); ++ if ((to_final_is_slash == 1) ++ && (!size_result || result[size_result-1] != '/')) ++ { ++ strcat (result, "/"); ++ } ++ else if (!to_final_is_slash ++ && size_result && result[size_result-1] == '/') ++ { ++ result[size_result-1] = '\0'; ++ } ++ ++ return malloc_copy_string (result); ++} ++ ++void ++simplify_path(char * path) ++{ ++ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ ++ ssize_t i, j; ++ size_t tok_size; ++ size_t in_size = strlen (path); ++ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; ++ char * result = path; ++ sanitise_path(result); ++ char * result_p = result; ++ ++ do ++ { ++ ++n_toks; ++ ++result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ result_p = result; ++ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); ++ n_toks = 0; ++ do ++ { ++ if (result_p > result) ++ { ++ *result_p++ = '\0'; ++ } ++ else if (*result_p == '/') ++ { ++ /* A leading / creates an empty initial token. */ ++ toks[n_toks++] = result_p; ++ *result_p++ = '\0'; ++ } ++ toks[n_toks++] = result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ /* Remove all non-leading '.' and any '..' we can match ++ with an earlier forward path (i.e. neither '.' nor '..') */ ++ for (i = 1; i < n_toks; ++i) ++ { ++ int removals[2] = { -1, -1 }; ++ if ( strcmp (toks[i], "." ) == 0) ++ { ++ removals[0] = i; ++ } ++ else if ( strcmp (toks[i], ".." ) == 0) ++ { ++ /* Search backwards for a forward path to collapse. ++ If none are found then the .. also stays. */ ++ for (j = i - 1; j > -1; --j) ++ { ++ if ( strcmp (toks[j], "." ) ++ && strcmp (toks[j], ".." ) ) ++ { ++ removals[0] = j; ++ removals[1] = i; ++ break; ++ } ++ } ++ } ++ for (j = 0; j < 2; ++j) ++ { ++ if (removals[j] >= 0) /* Can become -2 */ ++ { ++ --n_toks; ++ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); ++ --i; ++ if (!j) ++ { ++ --removals[1]; ++ } ++ } ++ } ++ } ++ result_p = result; ++ for (i = 0; i < n_toks; ++i) ++ { ++ tok_size = strlen(toks[i]); ++ memcpy (result_p, toks[i], tok_size); ++ result_p += tok_size; ++ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) ++ { ++ *result_p = '/'; ++ ++result_p; ++ } ++ } ++ *result_p = '\0'; ++} ++ ++/* Returns actual_to by calculating the relative path from -> to and ++ applying that to actual_from. An assumption that actual_from is a ++ dir is made, and it may or may not end with a '/' */ ++char const * ++get_relocated_path (char const * from, char const * to, char const * actual_from) ++{ ++ char const * relative_from_to = get_relative_path (from, to); ++ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); ++ return actual_to; ++} ++ ++int ++get_executable_path(char const * argv0, char * result, ssize_t max_size) ++{ ++ char * system_result = (char *) alloca (max_size); ++ ssize_t system_result_size = -1; ++ ssize_t result_size = -1; ++ ++ if (system_result != NULL) ++ { ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++ system_result_size = readlink("/proc/self/exe", system_result, max_size); ++#elif defined(__APPLE__) ++ uint32_t bufsize = (uint32_t)max_size; ++ if (_NSGetExecutablePath(system_result, &bufsize) == 0) ++ { ++ system_result_size = (ssize_t)bufsize; ++ } ++#elif defined(_WIN32) ++ unsigned long bufsize = (unsigned long)max_size; ++ system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); ++ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) ++ { ++ /* Error, possibly not enough space. */ ++ system_result_size = -1; ++ } ++ else ++ { ++ /* Early conversion to unix slashes instead of more changes ++ everywhere else .. */ ++ char * winslash; ++ system_result[system_result_size] = '\0'; ++ while ((winslash = strchr (system_result, '\\')) != NULL) ++ { ++ *winslash = '/'; ++ } ++ } ++#else ++#warning "Don't know how to get executable path on this system" ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ } ++ /* Use argv0 as a default in-case of failure */ ++ if (system_result_size != -1) ++ { ++ strncpy (result, system_result, system_result_size); ++ result[system_result_size] = '\0'; ++ } ++ else ++ { ++ if (argv0 != NULL) ++ { ++ strncpy (result, argv0, max_size); ++ result[max_size-1] = '\0'; ++ } ++ else ++ { ++ result[0] = '\0'; ++ } ++ } ++ result_size = strlen (result); ++ return result_size; ++} ++ ++char const * ++strip_n_prefix_folders(char const * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return NULL; ++ } ++ ++ if (path[0] != '/') ++ { ++ return path; ++ } ++ ++ char const * last = path; ++ while (n-- && path != NULL) ++ { ++ last = path; ++ path = strchr (path + 1, '/'); ++ } ++ return (path == NULL) ? last : path; ++} ++ ++void ++strip_n_suffix_folders(char * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return; ++ } ++ while (n--) ++ { ++ if (strrchr (path + 1, '/')) ++ { ++ *strrchr (path + 1, '/') = '\0'; ++ } ++ else ++ { ++ return; ++ } ++ } ++ return; ++} ++ ++size_t ++split_path_list(char const * path_list, char split_char, char *** arr) ++{ ++ size_t path_count; ++ size_t path_list_size; ++ char const * path_list_p; ++ ++ path_list_p = path_list; ++ if (path_list == NULL || path_list[0] == '\0') ++ { ++ return 0; ++ } ++ path_list_size = strlen (path_list); ++ ++ path_count = 0; ++ do ++ { ++ ++path_count; ++ ++path_list_p; ++ } ++ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); ++ ++ /* allocate everything in one go. */ ++ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); ++ if (all_memory == NULL) ++ return 0; ++ *arr = (char **)all_memory; ++ all_memory += sizeof (char *) * path_count; ++ ++ path_count = 0; ++ path_list_p = path_list; ++ char const * next_path_list_p = 0; ++ do ++ { ++ next_path_list_p = strchr (path_list_p, split_char); ++ if (next_path_list_p != NULL) ++ { ++ ++next_path_list_p; ++ } ++ size_t this_size = (next_path_list_p != NULL) ++ ? next_path_list_p - path_list_p - 1 ++ : &path_list[path_list_size] - path_list_p; ++ memcpy (all_memory, path_list_p, this_size); ++ all_memory[this_size] = '\0'; ++ (*arr)[path_count++] = all_memory; ++ all_memory += this_size + 1; ++ } while ((path_list_p = next_path_list_p) != NULL); ++ ++ return path_count; ++} ++ ++char * ++get_relocated_path_list(char const * from, char const * to_path_list) ++{ ++ char exe_path[MAX_PATH]; ++ char * temp; ++ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ if ((temp = strrchr (exe_path, '/')) != NULL) ++ { ++ temp[1] = '\0'; ++ } ++ ++ char **arr = NULL; ++ /* Ask Alexey why he added this. Are we not 100% sure ++ that we're dealing with unix paths here? */ ++ char split_char = ':'; ++ if (strchr (to_path_list, ';')) ++ { ++ split_char = ';'; ++ } ++ size_t count = split_path_list (to_path_list, split_char, &arr); ++ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ ++ size_t exe_path_size = strlen (exe_path); ++ size_t i; ++ /* Space required is: ++ count * (exe_path_size + strlen (rel_to_datadir)) ++ rel_to_datadir upper bound is: ++ (count * strlen (from)) + (3 * num_slashes (from)) ++ + strlen(arr[i]) + 1. ++ .. pathalogically num_slashes (from) is strlen (from) ++ (from = ////////) */ ++ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; ++ for (i = 0; i < count; ++i) ++ { ++ space_required += strlen (arr[i]); ++ } ++ char * scratch = (char *) alloca (space_required); ++ if (scratch == NULL) ++ return NULL; ++ for (i = 0; i < count; ++i) ++ { ++ char * rel_to_datadir = get_relative_path (from, arr[i]); ++ scratch[0] = '\0'; ++ arr[i] = scratch; ++ strcat (scratch, exe_path); ++ strcat (scratch, rel_to_datadir); ++ simplify_path (arr[i]); ++ size_t arr_i_size = strlen (arr[i]); ++ result_size += arr_i_size; ++ scratch = arr[i] + arr_i_size + 1; ++ } ++ char * result = (char *) malloc (result_size); ++ if (result == NULL) ++ { ++ return NULL; ++ } ++ result[0] = '\0'; ++ for (i = 0; i < count; ++i) ++ { ++ strcat (result, arr[i]); ++ if (i != count-1) ++ { ++#if defined(_WIN32) ++ strcat (result, ";"); ++#else ++ strcat (result, ":"); ++#endif ++ } ++ } ++ free ((void*)arr); ++ return result; ++} ++ ++char * ++single_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} +--- gnupg-2.1.6/common/homedir.c.orig 2015-07-31 13:49:13.367246900 +0300 ++++ gnupg-2.1.6/common/homedir.c 2015-07-31 14:02:14.553120500 +0300 +@@ -57,6 +57,7 @@ + + #include "util.h" + #include "sysutils.h" ++#include "pathtools.h" + + #ifdef HAVE_W32_SYSTEM + /* A flag used to indicate that a control file for gpgconf has been +@@ -151,7 +152,7 @@ + const char * + standard_homedir (void) + { +-#ifdef HAVE_W32_SYSTEM ++#if defined(HAVE_W32_SYSTEM) && !defined(__MINGW32__) + static const char *dir; + + if (!dir) +@@ -192,7 +193,7 @@ + } + return dir; + #else/*!HAVE_W32_SYSTEM*/ +- return GNUPG_DEFAULT_HOMEDIR; ++ return single_path_relocation(GNUPG_BINDIR, GNUPG_DEFAULT_HOMEDIR); + #endif /*!HAVE_W32_SYSTEM*/ + } + +@@ -211,7 +212,7 @@ + #endif /*HAVE_W32_SYSTEM*/ + + dir = getenv ("GNUPGHOME"); +-#ifdef HAVE_W32_SYSTEM ++#if defined(HAVE_W32_SYSTEM) && !defined(__MINGW32__) + if (!dir || !*dir) + { + static const char *saved_dir; +@@ -241,7 +242,7 @@ + } + #endif /*HAVE_W32_SYSTEM*/ + if (!dir || !*dir) +- dir = GNUPG_DEFAULT_HOMEDIR; ++ dir = single_path_relocation(GNUPG_BINDIR, GNUPG_DEFAULT_HOMEDIR); + + return dir; + } +@@ -331,7 +332,7 @@ + if (*dir) + return dir; + /* Fallback to the hardwired value. */ +- return GNUPG_LIBEXECDIR; ++ return single_path_relocation(GNUPG_BINDIR, GNUPG_LIBEXECDIR); + } + + static const char * +@@ -382,7 +383,7 @@ + const char * + gnupg_sysconfdir (void) + { +-#ifdef HAVE_W32_SYSTEM ++#if defined(HAVE_W32_SYSTEM) && !defined(__MINGW32__) + static char *name; + + if (!name) +@@ -395,7 +396,7 @@ + } + return name; + #else /*!HAVE_W32_SYSTEM*/ +- return GNUPG_SYSCONFDIR; ++ return single_path_relocation(GNUPG_BINDIR, GNUPG_SYSCONFDIR); + #endif /*!HAVE_W32_SYSTEM*/ + } + +@@ -409,7 +410,7 @@ + if (!name) + name = xstrconcat (w32_rootdir (), DIRSEP_S "bin", NULL); + return name; +-#elif defined(HAVE_W32_SYSTEM) ++#elif defined(HAVE_W32_SYSTEM) && !defined(__MINGW32__) + const char *rdir; + + rdir = w32_rootdir (); +@@ -424,7 +425,7 @@ + else + return rdir; + #else /*!HAVE_W32_SYSTEM*/ +- return GNUPG_BINDIR; ++ return single_path_relocation(GNUPG_BINDIR, GNUPG_BINDIR); + #endif /*!HAVE_W32_SYSTEM*/ + } + +@@ -434,7 +435,7 @@ + const char * + gnupg_libexecdir (void) + { +-#ifdef HAVE_W32_SYSTEM ++#if defined(HAVE_W32_SYSTEM) && !defined(__MINGW32__) + return gnupg_bindir (); + #else /*!HAVE_W32_SYSTEM*/ + return GNUPG_LIBEXECDIR; +@@ -444,28 +445,28 @@ + const char * + gnupg_libdir (void) + { +-#ifdef HAVE_W32_SYSTEM ++#if defined(HAVE_W32_SYSTEM) && !defined(__MINGW32__) + static char *name; + + if (!name) + name = xstrconcat (w32_rootdir (), DIRSEP_S "lib" DIRSEP_S "gnupg", NULL); + return name; + #else /*!HAVE_W32_SYSTEM*/ +- return GNUPG_LIBDIR; ++ return single_path_relocation(GNUPG_BINDIR, GNUPG_LIBDIR); + #endif /*!HAVE_W32_SYSTEM*/ + } + + const char * + gnupg_datadir (void) + { +-#ifdef HAVE_W32_SYSTEM ++#if defined(HAVE_W32_SYSTEM) && !defined(__MINGW32__) + static char *name; + + if (!name) + name = xstrconcat (w32_rootdir (), DIRSEP_S "share" DIRSEP_S "gnupg", NULL); + return name; + #else /*!HAVE_W32_SYSTEM*/ +- return GNUPG_DATADIR; ++ return single_path_relocation(GNUPG_BINDIR, GNUPG_DATADIR); + #endif /*!HAVE_W32_SYSTEM*/ + } + +@@ -473,7 +474,7 @@ + const char * + gnupg_localedir (void) + { +-#ifdef HAVE_W32_SYSTEM ++#if defined(HAVE_W32_SYSTEM) && !defined(__MINGW32__) + static char *name; + + if (!name) +@@ -481,7 +482,7 @@ + NULL); + return name; + #else /*!HAVE_W32_SYSTEM*/ +- return LOCALEDIR; ++ return single_path_relocation(GNUPG_BINDIR, LOCALEDIR); + #endif /*!HAVE_W32_SYSTEM*/ + } + +@@ -492,7 +493,7 @@ + const char * + gnupg_cachedir (void) + { +-#ifdef HAVE_W32_SYSTEM ++#if defined(HAVE_W32_SYSTEM) && !defined(__MINGW32__) + static const char *dir; + + if (!dir) +@@ -549,7 +550,7 @@ + } + return dir; + #else /*!HAVE_W32_SYSTEM*/ +- return GNUPG_LOCALSTATEDIR "/cache/" PACKAGE_NAME; ++ return single_path_relocation(GNUPG_BINDIR, GNUPG_LOCALSTATEDIR "/cache/" PACKAGE_NAME); + #endif /*!HAVE_W32_SYSTEM*/ + } + +@@ -558,7 +559,7 @@ + const char * + dirmngr_sys_socket_name (void) + { +-#ifdef HAVE_W32_SYSTEM ++#if defined(HAVE_W32_SYSTEM) && !defined(__MINGW32__) + static char *name; + + if (!name) +@@ -594,7 +595,7 @@ + } + return name; + #else /*!HAVE_W32_SYSTEM*/ +- return GNUPG_LOCALSTATEDIR "/run/" PACKAGE_NAME "/"DIRMNGR_SOCK_NAME; ++ return single_path_relocation(GNUPG_BINDIR, "/run/" PACKAGE_NAME "/"DIRMNGR_SOCK_NAME); + #endif /*!HAVE_W32_SYSTEM*/ + } + +--- gnupg-2.1.6/common/Makefile.am.orig 2015-07-31 14:04:15.060068600 +0300 ++++ gnupg-2.1.6/common/Makefile.am 2015-07-31 14:04:49.048669400 +0300 +@@ -62,6 +62,7 @@ + init.c init.h \ + sexputil.c \ + sysutils.c sysutils.h \ ++ pathtools.c pathtools.h \ + homedir.c \ + gettime.c gettime.h \ + yesno.c \ diff --git a/mingw-w64-gnupg/PKGBUILD b/mingw-w64-gnupg/PKGBUILD index c8d4bed7db..a6323f6146 100644 --- a/mingw-w64-gnupg/PKGBUILD +++ b/mingw-w64-gnupg/PKGBUILD @@ -3,7 +3,7 @@ _realname=gnupg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.6 -pkgrel=1 +pkgrel=2 pkgdesc="GNU Privacy Guard - a PGP replacement tool (mingw-w64)" arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-bzip2" @@ -19,24 +19,34 @@ depends=("${MINGW_PACKAGE_PREFIX}-bzip2" makedepends=("texinfo" "${MINGW_PACKAGE_PREFIX}-gcc") # REMOVE openldap package before build license=('GPL') +options=(emptydirs) url="http://www.gnupg.org/" source=(ftp://ftp.gnupg.org/gcrypt/gnupg/${_realname}-${pkgver}.tar.bz2{,.sig} - 01-mingw32-fix-potomo.mingw.patch) + 01-mingw32-fix-potomo.mingw.patch + 02-mingw-sysconfigdir-under-prefix.patch + 03-ldap-libraries-check-order.patch + 04-dos-extra-defs.patch) sha1sums=('9e8157b3386da04760657ce3117fc4dc570c57c5' 'SKIP' - 'adca40b456c054db3aae5f112e18f56235322a45') + 'adca40b456c054db3aae5f112e18f56235322a45' + 'e55b64ef1b1d9e0a224c2b8716d7a490aed6070d' + '18634884e51f93b62a6c8b75233d175ec455f033' + 'a37883cc54d197574ba3b1d16a517302d304f887') prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/01-mingw32-fix-potomo.mingw.patch + patch -p1 -i ${srcdir}/02-mingw-sysconfigdir-under-prefix.patch + patch -p1 -i ${srcdir}/03-ldap-libraries-check-order.patch + patch -p1 -i ${srcdir}/04-dos-extra-defs.patch - #autoreconf -fiv + autoreconf -fiv } build() { - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" - + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -44,11 +54,12 @@ build() { --target=${MINGW_CHOST} \ --libexecdir=${MINGW_PREFIX}/bin \ --sbindir=${MINGW_PREFIX}/bin \ + --sysconfdir=${MINGW_PREFIX}/etc/gnupg \ --enable-maintainer-mode \ --disable-symcryptrun \ --enable-gpgtar \ --disable-g13 - + MSYS2_ARG_CONF_EXCL="-DGNUPG_BINDIR=;-DGNUPG_LIBEXECDIR=;-DGNUPG_LIBDIR=;-DGNUPG_DATADIR=;-DGNUPG_SYSCONFDIR=;-DGNUPG_LOCALSTATEDIR=;-DLOCALEDIR=" \ make } @@ -59,5 +70,8 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" + MSYS2_ARG_CONF_EXCL="-DGNUPG_BINDIR=;-DGNUPG_LIBEXECDIR=;-DGNUPG_LIBDIR=;-DGNUPG_DATADIR=;-DGNUPG_SYSCONFDIR=;-DGNUPG_LOCALSTATEDIR=;-DLOCALEDIR=" \ make -j1 DESTDIR=${pkgdir} install + + mkdir -p ${pkgdir}${MINGW_PREFIX}/{etc/gnupg,var/cache/gnupg,home} } From 637583e1c0f23be7bfce1abd9b26772c72eea391 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 31 Jul 2015 14:24:25 +0300 Subject: [PATCH 1400/2060] gpgme: Enable building static library --- mingw-w64-gpgme/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-gpgme/PKGBUILD b/mingw-w64-gpgme/PKGBUILD index a1f7e7b8c9..030d510ac0 100644 --- a/mingw-w64-gpgme/PKGBUILD +++ b/mingw-w64-gpgme/PKGBUILD @@ -42,7 +42,8 @@ build() { --target=${MINGW_CHOST} \ --libexecdir=${MINGW_PREFIX}/bin \ --disable-fd-passing \ - --disable-static \ + --enable-shared \ + --enable-static \ --disable-gpgsm-test make From 53284f9adf15468452b983964fc6c0b0e206ffae Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 31 Jul 2015 15:02:29 +0300 Subject: [PATCH 1401/2060] openocd-git: Rebuild with gcc-5.x --- FAIL_LIST.md | 2 -- mingw-w64-openocd-git/PKGBUILD | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index e01792afd9..bdfe09639a 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -39,8 +39,6 @@ List of packages that currently fail to build - ogre3d -- openocd-git - - openshadinglanguage (Needs a legacy LLVM < 3.6 package due to JIT changes) - perl (still not building for 32-bit) : ..\perl.h:3551:38: error: static assertion failed: "sizeof(PADOP) <= sizeof(SVOP)" diff --git a/mingw-w64-openocd-git/PKGBUILD b/mingw-w64-openocd-git/PKGBUILD index bd6fa65ef5..c6a8c2ceaa 100644 --- a/mingw-w64-openocd-git/PKGBUILD +++ b/mingw-w64-openocd-git/PKGBUILD @@ -5,7 +5,7 @@ _realname=openocd pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides="${MINGW_PACKAGE_PREFIX}-${_realname}" conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.0.rc1.r1.gabd7ad0 +pkgver=0.9.0.r2.g79fdeb3 pkgrel=1 pkgdesc="OpenOCD - Open On-Chip Debugger (mingw-w64)" arch=('any') From 901bfbd015b84349c162c0f36efd07b6a013a353 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 31 Jul 2015 15:21:14 +0300 Subject: [PATCH 1402/2060] libodfgen: Fix building with gcc-5.x --- FAIL_LIST.md | 2 -- mingw-w64-libodfgen/PKGBUILD | 10 ++++++---- mingw-w64-libodfgen/enum-without-api-attributes.patch | 11 +++++++++++ 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-libodfgen/enum-without-api-attributes.patch diff --git a/FAIL_LIST.md b/FAIL_LIST.md index bdfe09639a..898ec822c3 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -23,8 +23,6 @@ List of packages that currently fail to build - ldns -- libodfgen - - librescl - librocket-git diff --git a/mingw-w64-libodfgen/PKGBUILD b/mingw-w64-libodfgen/PKGBUILD index 9ee1502d5d..4e8f7bec07 100644 --- a/mingw-w64-libodfgen/PKGBUILD +++ b/mingw-w64-libodfgen/PKGBUILD @@ -3,7 +3,7 @@ _realname=libodfgen pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.1.4 -pkgrel=1 +pkgrel=2 pkgdesc="Library to generate ODF documents (mingw-w64)" arch=('any') url="http://sf.net/p/libwpd/libodfgen/" @@ -13,11 +13,14 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-doxygen") depends=("${MINGW_PACKAGE_PREFIX}-librevenge") options=(staticlibs strip) -source=("http://sourceforge.net/projects/libwpd/files/libodfgen/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz") -sha256sums=('249b5ed8e1acc0fee32b4381b31b4ad9453b674d4f13886bda5e9dd2b4a5f1e1') +source=("http://sourceforge.net/projects/libwpd/files/libodfgen/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz" + enum-without-api-attributes.patch) +sha256sums=('249b5ed8e1acc0fee32b4381b31b4ad9453b674d4f13886bda5e9dd2b4a5f1e1' + '3148d825f0d0778cf1b65445919b5fb89ea0c738d6c560893830f08dd5dfebfc') prepare() { cd ${srcdir}/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/enum-without-api-attributes.patch } build() { @@ -38,7 +41,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.LGPL" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LGPL" install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.MPL" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.MPL" diff --git a/mingw-w64-libodfgen/enum-without-api-attributes.patch b/mingw-w64-libodfgen/enum-without-api-attributes.patch new file mode 100644 index 0000000000..54378b5cc1 --- /dev/null +++ b/mingw-w64-libodfgen/enum-without-api-attributes.patch @@ -0,0 +1,11 @@ +--- libodfgen-0.1.4/inc/libodfgen/OdfDocumentHandler.hxx.orig 2015-07-31 15:11:11.557378700 +0300 ++++ libodfgen-0.1.4/inc/libodfgen/OdfDocumentHandler.hxx 2015-07-31 15:11:15.657968600 +0300 +@@ -32,7 +32,7 @@ + * + * @sa OdgGenerator, OdpGenerator, OdtGenerator + */ +-enum ODFGENAPI OdfStreamType { ODF_FLAT_XML, ODF_CONTENT_XML, ODF_STYLES_XML, ODF_SETTINGS_XML, ODF_META_XML, ODF_MANIFEST_XML }; ++enum OdfStreamType { ODF_FLAT_XML, ODF_CONTENT_XML, ODF_STYLES_XML, ODF_SETTINGS_XML, ODF_META_XML, ODF_MANIFEST_XML }; + + class OdfDocumentHandler; + From bdd40b21b8340aa3cfc46de54be8c36dfe20884a Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Fri, 31 Jul 2015 17:38:19 +0200 Subject: [PATCH 1403/2060] tclx: Fixed MinGW detection --- FAIL_LIST.md | 2 -- mingw-w64-tclx/001-fix-detect-mingw.patch | 11 +++++++++++ mingw-w64-tclx/PKGBUILD | 5 +++++ 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-tclx/001-fix-detect-mingw.patch diff --git a/FAIL_LIST.md b/FAIL_LIST.md index e01792afd9..a9cbb1af9c 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -55,6 +55,4 @@ List of packages that currently fail to build - tclvfs -- tclx - - xmlada-gpl diff --git a/mingw-w64-tclx/001-fix-detect-mingw.patch b/mingw-w64-tclx/001-fix-detect-mingw.patch new file mode 100644 index 0000000000..c73afccb61 --- /dev/null +++ b/mingw-w64-tclx/001-fix-detect-mingw.patch @@ -0,0 +1,11 @@ +--- tclx8.4/configure.orig 2015-07-31 17:24:18.840987200 +0200 ++++ tclx8.4/configure 2015-07-31 17:24:41.606710900 +0200 +@@ -1345,7 +1345,7 @@ + echo "${ECHO_T}ok (TEA ${TEA_VERSION})" >&6 + fi + case "`uname -s`" in +- *win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW32_*) ++ *win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW*) + # Extract the first word of "cygpath", so it can be a program name with args. + set dummy cygpath; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 diff --git a/mingw-w64-tclx/PKGBUILD b/mingw-w64-tclx/PKGBUILD index a9525f2751..7203035d44 100644 --- a/mingw-w64-tclx/PKGBUILD +++ b/mingw-w64-tclx/PKGBUILD @@ -11,14 +11,19 @@ url="http://tclx.sourceforge.net/" license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-tcl") source=("http://sourceforge.net/projects/tclx/files/TclX/${pkgver}/${_realname}${pkgver}.tar.bz2" + '001-fix-detect-mingw.patch' 'random.c') md5sums=('ac983708f23cf645c07058148f48440c' + 'e9774e0d34ff0662042d1b1bb0106bee' '59ad67a4a330de9062b594c37ea4d198') prepare() { local dst=${srcdir}/${_realname}${_majorminor}/compat mkdir -p ${dst} cp random.c ${dst} + + cd ${srcdir}/${_realname}${_majorminor} + patch -p1 -i ${srcdir}/001-fix-detect-mingw.patch } build() { From c56ec8696e259c97f44d587f9ab6022b906d41bf Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Fri, 31 Jul 2015 17:38:19 +0200 Subject: [PATCH 1404/2060] tclx: Bump pkgrel --- mingw-w64-tclx/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-tclx/PKGBUILD b/mingw-w64-tclx/PKGBUILD index 7203035d44..a52f8832a5 100644 --- a/mingw-w64-tclx/PKGBUILD +++ b/mingw-w64-tclx/PKGBUILD @@ -4,7 +4,7 @@ _realname=tclx pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _majorminor=8.4 pkgver=${_majorminor}.1 -pkgrel=2 +pkgrel=3 pkgdesc="Extends Tcl by providing new operating system interface commands, extended file control and many other." arch=('any') url="http://tclx.sourceforge.net/" From f539907408e3cc2d58793087d4b224d52b521979 Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Sat, 1 Aug 2015 03:40:13 +0200 Subject: [PATCH 1405/2060] tclvfs: Fixed MinGW detection --- FAIL_LIST.md | 2 -- mingw-w64-tclvfs/001-fix-detect-mingw.patch | 11 +++++++++++ mingw-w64-tclvfs/PKGBUILD | 13 +++++++++++-- 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-tclvfs/001-fix-detect-mingw.patch diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 5237ca2ee8..46874b25d7 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -49,6 +49,4 @@ List of packages that currently fail to build - python-h5py -- tclvfs - - xmlada-gpl diff --git a/mingw-w64-tclvfs/001-fix-detect-mingw.patch b/mingw-w64-tclvfs/001-fix-detect-mingw.patch new file mode 100644 index 0000000000..696375872d --- /dev/null +++ b/mingw-w64-tclvfs/001-fix-detect-mingw.patch @@ -0,0 +1,11 @@ +--- tclvfs/configure.orig 2015-08-01 02:38:12.000000000 +0200 ++++ tclvfs/configure 2015-08-01 02:40:06.818379500 +0200 +@@ -1351,7 +1351,7 @@ + echo "${ECHO_T}ok (TEA ${TEA_VERSION})" >&6 + fi + case "`uname -s`" in +- *win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW32_*) ++ *win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW*) + # Extract the first word of "cygpath", so it can be a program name with args. + set dummy cygpath; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 diff --git a/mingw-w64-tclvfs/PKGBUILD b/mingw-w64-tclvfs/PKGBUILD index c1984d06b8..7c7ea9dd95 100644 --- a/mingw-w64-tclvfs/PKGBUILD +++ b/mingw-w64-tclvfs/PKGBUILD @@ -3,7 +3,7 @@ _realname=tclvfs pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}-cvs pkgver=20130425 -pkgrel=2 +pkgrel=3 pkgdesc="Virtual Filesystem support for Tcl" arch=('any') url="http://sourceforge.net/projects/tclvfs/" @@ -12,7 +12,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-tcl") makedepends=('cvs') provides=("${MINGW_PACKAGE_PREFIX}-tclvfs") conflicts=("${MINGW_PACKAGE_PREFIX}-tclvfs") -md5sums=() #generate with 'makepkg -g' +source=('001-fix-detect-mingw.patch') +md5sums=('b5fc3a7f8960989987bcd367abf5cf0f') #generate with 'makepkg -g' _cvsroot=":pserver:anonymous:@tclvfs.cvs.sourceforge.net:/cvsroot/tclvfs" _cvsmod="${_realname}" @@ -30,6 +31,14 @@ prepare() { fi msg "CVS checkout done or server timeout" + + cd "${srcdir}/tclvfs" + + # If "configure" has been patched by a previous build, revert it or + # `patch' will fail: + cvs update -C configure + + patch -p1 -i ${srcdir}/001-fix-detect-mingw.patch } build() { From 22eaa7634a04b6a83cdeca1704cc22e20f1a999b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sat, 1 Aug 2015 11:28:58 +0300 Subject: [PATCH 1406/2060] gdb: Fix gdb init file --- mingw-w64-gdb/PKGBUILD | 4 ++-- mingw-w64-gdb/gdbinit | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gdb/PKGBUILD b/mingw-w64-gdb/PKGBUILD index 13608add18..a71af7958c 100644 --- a/mingw-w64-gdb/PKGBUILD +++ b/mingw-w64-gdb/PKGBUILD @@ -7,7 +7,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") # Until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62279 is # fixed, we will stick with 7.6.2 which hasn't got this bug.. pkgver=7.9.1 -pkgrel=3 +pkgrel=4 pkgdesc="GNU Debugger (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gdb/" @@ -32,7 +32,7 @@ source=(http://ftp.gnu.org/gnu/gdb/${_realname}-${pkgver}.tar.xz{,.sig} 'gdb-fix-using-gnu-print.patch') md5sums=('35374c77a70884eb430c97061053a36e' 'SKIP' - 'dec2439447cb1accf037457b459093f7' + 'be1c16674d98189a6f18dc0f5922c739' 'e48292d553379a9765c82e80e618ffd2' '8cc7f920caf4dddfc0d5d3fcd347ebb4' '7cc5df72d958ef3e4b1ffa9f7b069e6f' diff --git a/mingw-w64-gdb/gdbinit b/mingw-w64-gdb/gdbinit index 57b4abb4d3..cf2f8b7847 100644 --- a/mingw-w64-gdb/gdbinit +++ b/mingw-w64-gdb/gdbinit @@ -2,5 +2,4 @@ python import sys sys.path.insert(0, sys.path[0] + '/../../%GCC_NAME%/python') from libstdcxx.v6.printers import register_libstdcxx_printers -register_libstdcxx_printers (None) -end \ No newline at end of file +end From 9951eab85bb7b9a310b9a77b014aa03ed637cff8 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sat, 1 Aug 2015 14:14:57 +0300 Subject: [PATCH 1407/2060] libpng: Update to 1.6.18 --- mingw-w64-libpng/PKGBUILD | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mingw-w64-libpng/PKGBUILD b/mingw-w64-libpng/PKGBUILD index d771c1857d..83c6088a1b 100644 --- a/mingw-w64-libpng/PKGBUILD +++ b/mingw-w64-libpng/PKGBUILD @@ -2,11 +2,12 @@ _realname=libpng pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.17 -pkgrel=2 +pkgver=1.6.18 +pkgrel=1 arch=('any') pkgdesc="A collection of routines used to create PNG format graphics (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") license=('custom') url="http://www.libpng.org/pub/png/libpng.html" @@ -14,8 +15,8 @@ options=('strip' '!libtool' 'staticlibs') source=("http://downloads.sourceforge.net/sourceforge/libpng/${_realname}-${pkgver}.tar.xz" "http://downloads.sourceforge.net/project/libpng-apng/libpng16/${pkgver}/${_realname}-${pkgver}-apng.patch.gz") -md5sums=('430a9b76b78533235cd4b9b26ce75c7e' - 'f68d34f10bcc7f43b8c3dce5708e1933') +md5sums=('6a57c8e0f5469b9c9949a4b43d57b3a1' + 'a9c85fe3cf0347ea94356f1e70d07973') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From ba087bdaf304bc10cea803332f6a8e4572ff6e3a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 1 Aug 2015 19:19:41 +0100 Subject: [PATCH 1408/2060] qt-creator: Fix checksums --- mingw-w64-qtcreator/PKGBUILD | 1 - 1 file changed, 1 deletion(-) diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index c0dff7b718..6f130c7508 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -40,7 +40,6 @@ source=(http://download.qt-project.org/development_releases/qtcreator/${_base_ve qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch) noextract=(${_pkgfqn}.tar.gz) sha256sums=('e1a1c7daf7fb47bf3df1183c342d263ad4333120394d857b52c6ba58116d1148' - '22253cf29a2c8effebb1cc8313a0f350cf993d7fc404763063e6bd8444fa61f1' '3197763396b90e640e7897c648d48d6ca906df5b3a4bc343a7e1bfdf05f07cef' '96c14f54577bf6cadf5c12018745666a9e99cd8d6a876c29a28b13599a8cb368' '68133c95b70c1b54e55ab4c8b31023afe4ab9a33667e4510bda64c828b95e91e' From c826d368445d7bf439fe17328a1c0e3b7dc477b7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 2 Aug 2015 01:12:49 +0100 Subject: [PATCH 1409/2060] qt-creator: Add a patch to define __GNUC_PREREQ --- mingw-w64-qtcreator/PKGBUILD | 11 ++- ....0-Hacky-fix-for-__GNUC_PREREQ-usage.patch | 80 +++++++++++++++++++ 2 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-qtcreator/qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 6f130c7508..4aa189fc8c 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -6,7 +6,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" __pre=-beta1 _base_ver=3.5.0 pkgver=${_base_ver}${_pre} -pkgrel=1 +pkgrel=2 pkgdesc='Cross-patform IDE (mingw-w64)' url='http://qt-project.org' install=qt-creator-${CARCH}.install @@ -37,7 +37,8 @@ source=(http://download.qt-project.org/development_releases/qtcreator/${_base_ve qt-creator-3.2.0-i[3456]86-and-x86-have-32bit-wordWidth.patch qt-creator-3.3.0-abi-msys-is-Windows.patch qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch - qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch) + qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch + qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch) noextract=(${_pkgfqn}.tar.gz) sha256sums=('e1a1c7daf7fb47bf3df1183c342d263ad4333120394d857b52c6ba58116d1148' '3197763396b90e640e7897c648d48d6ca906df5b3a4bc343a7e1bfdf05f07cef' @@ -49,7 +50,8 @@ sha256sums=('e1a1c7daf7fb47bf3df1183c342d263ad4333120394d857b52c6ba58116d1148' '79fc4d2ef02ff8f458b1b330c683c2a86397f056369c90176a9ddbeba3b719fd' 'c4cae708825102d538e1ecb9a88ecb216d366feb779553a2e91f97c4b78f8427' 'b4cf07e2772b2ec6710ee7df6463feddb4195d65fa59e6c6095fbc0cb240417e' - '802376acf3bc4546db60efdc026b348c4d09485b532a8db31d51d9e3fb74cecc') + '802376acf3bc4546db60efdc026b348c4d09485b532a8db31d51d9e3fb74cecc' + '06ff443b53c6f49ff5f2f62d39485ea5a78e5a332bf11082a0e2e4d25dd29f38') prepare() { [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} @@ -69,6 +71,9 @@ prepare() { patch -p1 -i "${srcdir}"/qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch patch -p1 -i "${srcdir}"/qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch + # Arguably mingw-w64 headers should define __GNUC_PREREQ (_mingw.h defines __MINGW_GNUC_PREREQ) + # .. otherwise perhaps GCC should define this always (on GNU/Linux, glibc's features.h defines it) + patch -p1 -i "${srcdir}"/qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch # Use system installed qbs rm -rf src/shared/qbs diff --git a/mingw-w64-qtcreator/qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch b/mingw-w64-qtcreator/qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch new file mode 100644 index 0000000000..9828cc4c79 --- /dev/null +++ b/mingw-w64-qtcreator/qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch @@ -0,0 +1,80 @@ +diff -urN qt-creator-opensource-src-3.5.0-beta1.orig/src/tools/clangbackend/ipcsource/projectpartsdonotexistexception.h qt-creator-opensource-src-3.5.0-beta1/src/tools/clangbackend/ipcsource/projectpartsdonotexistexception.h +--- qt-creator-opensource-src-3.5.0-beta1.orig/src/tools/clangbackend/ipcsource/projectpartsdonotexistexception.h 2015-08-02 00:11:35.019827900 +0100 ++++ qt-creator-opensource-src-3.5.0-beta1/src/tools/clangbackend/ipcsource/projectpartsdonotexistexception.h 2015-08-02 00:13:59.523677600 +0100 +@@ -35,6 +35,12 @@ + + #include + ++#if defined(__GNUC__) && !defined(__clang__) && !defined(_GNUC_PREREQ) ++# if defined(__MINGW64_VERSION_MAJOR) ++# define __GNUC_PREREQ __MINGW_GNUC_PREREQ ++# endif ++#endif ++ + namespace ClangBackEnd { + + class ProjectPartDoNotExistException : public std::exception +diff -urN qt-creator-opensource-src-3.5.0-beta1.orig/src/tools/clangbackend/ipcsource/translationunitdoesnotexistexception.h qt-creator-opensource-src-3.5.0-beta1/src/tools/clangbackend/ipcsource/translationunitdoesnotexistexception.h +--- qt-creator-opensource-src-3.5.0-beta1.orig/src/tools/clangbackend/ipcsource/translationunitdoesnotexistexception.h 2015-08-02 00:11:35.019827900 +0100 ++++ qt-creator-opensource-src-3.5.0-beta1/src/tools/clangbackend/ipcsource/translationunitdoesnotexistexception.h 2015-08-02 00:13:55.365649500 +0100 +@@ -33,6 +33,12 @@ + + #include + ++#if defined(__GNUC__) && !defined(__clang__) && !defined(_GNUC_PREREQ) ++# if defined(__MINGW64_VERSION_MAJOR) ++# define __GNUC_PREREQ __MINGW_GNUC_PREREQ ++# endif ++#endif ++ + namespace ClangBackEnd { + + class TranslationUnitDoesNotExistException : public std::exception +diff -urN qt-creator-opensource-src-3.5.0-beta1.orig/src/tools/clangbackend/ipcsource/translationunitfilenotexitexception.h qt-creator-opensource-src-3.5.0-beta1/src/tools/clangbackend/ipcsource/translationunitfilenotexitexception.h +--- qt-creator-opensource-src-3.5.0-beta1.orig/src/tools/clangbackend/ipcsource/translationunitfilenotexitexception.h 2015-08-02 00:11:35.020328000 +0100 ++++ qt-creator-opensource-src-3.5.0-beta1/src/tools/clangbackend/ipcsource/translationunitfilenotexitexception.h 2015-08-02 00:13:51.642676800 +0100 +@@ -35,6 +35,12 @@ + + #include + ++#if defined(__GNUC__) && !defined(__clang__) && !defined(_GNUC_PREREQ) ++# if defined(__MINGW64_VERSION_MAJOR) ++# define __GNUC_PREREQ __MINGW_GNUC_PREREQ ++# endif ++#endif ++ + namespace ClangBackEnd { + + class TranslationUnitFileNotExitsException : public std::exception +diff -urN qt-creator-opensource-src-3.5.0-beta1.orig/src/tools/clangbackend/ipcsource/translationunitisnullexception.h qt-creator-opensource-src-3.5.0-beta1/src/tools/clangbackend/ipcsource/translationunitisnullexception.h +--- qt-creator-opensource-src-3.5.0-beta1.orig/src/tools/clangbackend/ipcsource/translationunitisnullexception.h 2015-08-02 00:11:35.021328100 +0100 ++++ qt-creator-opensource-src-3.5.0-beta1/src/tools/clangbackend/ipcsource/translationunitisnullexception.h 2015-08-02 00:13:48.855322800 +0100 +@@ -35,6 +35,12 @@ + + #include + ++#if defined(__GNUC__) && !defined(__clang__) && !defined(_GNUC_PREREQ) ++# if defined(__MINGW64_VERSION_MAJOR) ++# define __GNUC_PREREQ __MINGW_GNUC_PREREQ ++# endif ++#endif ++ + namespace ClangBackEnd { + + class TranslationUnitIsNullException : public std::exception +diff -urN qt-creator-opensource-src-3.5.0-beta1.orig/src/tools/clangbackend/ipcsource/translationunitparseerrorexception.h qt-creator-opensource-src-3.5.0-beta1/src/tools/clangbackend/ipcsource/translationunitparseerrorexception.h +--- qt-creator-opensource-src-3.5.0-beta1.orig/src/tools/clangbackend/ipcsource/translationunitparseerrorexception.h 2015-08-02 00:11:35.020828000 +0100 ++++ qt-creator-opensource-src-3.5.0-beta1/src/tools/clangbackend/ipcsource/translationunitparseerrorexception.h 2015-08-02 00:13:45.302371700 +0100 +@@ -35,6 +35,12 @@ + + #include + ++#if defined(__GNUC__) && !defined(__clang__) && !defined(_GNUC_PREREQ) ++# if defined(__MINGW64_VERSION_MAJOR) ++# define __GNUC_PREREQ __MINGW_GNUC_PREREQ ++# endif ++#endif ++ + namespace ClangBackEnd { + + class TranslationUnitParseErrorException : public std::exception From 7c4942e1e98cf2304cc745cbfcb3a2f69af1ba48 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 2 Aug 2015 11:11:14 +0300 Subject: [PATCH 1410/2060] openscenegraph: Update to 3.4.0rc8 --- mingw-w64-openscenegraph/PKGBUILD | 11 ++++------- mingw-w64-openscenegraph/fix-whar_t-redeclare.patch | 11 ----------- 2 files changed, 4 insertions(+), 18 deletions(-) delete mode 100644 mingw-w64-openscenegraph/fix-whar_t-redeclare.patch diff --git a/mingw-w64-openscenegraph/PKGBUILD b/mingw-w64-openscenegraph/PKGBUILD index 69a8838b3e..3d9c76f9c1 100644 --- a/mingw-w64-openscenegraph/PKGBUILD +++ b/mingw-w64-openscenegraph/PKGBUILD @@ -2,7 +2,7 @@ _realname=OpenSceneGraph pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -_pkgver=3.4.0-rc7 +_pkgver=3.4.0-rc8 pkgver=${_pkgver//-/} pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" @@ -42,14 +42,12 @@ source=(http://www.openscenegraph.org/downloads/developer_releases/${_realname}- find-collada.patch find-freetype.patch additional-gl-header.patch - fix-cast-error.patch - fix-whar_t-redeclare.patch) -md5sums=('834a73fd62fcc26b39554093490b06d7' + fix-cast-error.patch) +md5sums=('a9eb404b52bf62c3baf2b7c3c6282d6e' '18ce956c1889babc6515828b8200e864' '9ab69e1cd26826196fac5b3f01e6cb95' 'e889e10100a1f3e07212c01603712594' - '5599204490bf9f03cdd5871b938e3338' - 'c5800776305d26e9729ad1e1424371d5') + '5599204490bf9f03cdd5871b938e3338') prepare() { cd "${srcdir}/${_realname}-${_pkgver}" @@ -57,7 +55,6 @@ prepare() { patch -p1 -i ${srcdir}/find-freetype.patch patch -p1 -i ${srcdir}/additional-gl-header.patch patch -p1 -i ${srcdir}/fix-cast-error.patch - patch -p1 -i ${srcdir}/fix-whar_t-redeclare.patch } build() { diff --git a/mingw-w64-openscenegraph/fix-whar_t-redeclare.patch b/mingw-w64-openscenegraph/fix-whar_t-redeclare.patch deleted file mode 100644 index 307e19a81e..0000000000 --- a/mingw-w64-openscenegraph/fix-whar_t-redeclare.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- OpenSceneGraph-3.4.0-rc7/src/osg/GL.in.orig 2015-07-29 10:38:24.890785100 +0300 -+++ OpenSceneGraph-3.4.0-rc7/src/osg/GL.in 2015-07-29 10:38:31.384135700 +0300 -@@ -96,7 +96,7 @@ - #endif - - // XXX This is from Win32's -- #if !defined(_WCHAR_T_DEFINED) && !(defined(__GNUC__)&&((__GNUC__ == 3)||(__GNUC__ == 4))) -+ #if !defined(_WCHAR_T_DEFINED) && !(defined(__GNUC__)&&(__GNUC__ > 2)) - typedef unsigned short wchar_t; - #define _WCHAR_T_DEFINED - #endif From 21e70d8e266caad84e5a60f1c6bcba6247cd1240 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 2 Aug 2015 17:20:05 +0300 Subject: [PATCH 1411/2060] sqlite3: Update to 3.8.11.1 --- mingw-w64-sqlite3/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index 68fd76e69e..eea4ed9982 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -3,9 +3,9 @@ _realname=sqlite3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3081002 -pkgver=3.8.10.2 -pkgrel=2 +_amalgamationver=3081101 +pkgver=3.8.11.1 +pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') license=(PublicDomain) @@ -16,7 +16,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=("http://www.sqlite.org/2015/sqlite-autoconf-${_amalgamationver}.tar.gz" LICENSE) -sha1sums=('c2f2c17d3dc4c4e179d35cc04e4420636d48a152' +sha1sums=('d0e22d7e361b6f50830a3cdeafe35311443f8f9a' 'e2aa07adae13aed713860b74165d3325a18c6792') options=('!strip' 'staticlibs' '!buildflags') From e135145921c02637fa1b17ca8a9235aa64ee50c5 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 2 Aug 2015 17:20:28 +0300 Subject: [PATCH 1412/2060] sqlite-analyzer: Rebuild with sqlite 3.8.11 --- mingw-w64-sqlite-analyzer/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-sqlite-analyzer/PKGBUILD b/mingw-w64-sqlite-analyzer/PKGBUILD index 8add25a246..c6e6fe95d1 100644 --- a/mingw-w64-sqlite-analyzer/PKGBUILD +++ b/mingw-w64-sqlite-analyzer/PKGBUILD @@ -2,7 +2,7 @@ _realname=sqlite-analyzer pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.8.10 +pkgver=3.8.11 pkgrel=1 pkgdesc="An analysis program SQLite database files (mingw-w64)" url="http://www.sqlite.org/" From 911af715353f14cdc90e6209fcb77845c89e5635 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 2 Aug 2015 17:24:33 +0300 Subject: [PATCH 1413/2060] libidn: Update to 1.32 --- mingw-w64-libidn/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libidn/PKGBUILD b/mingw-w64-libidn/PKGBUILD index ccfc9f664c..1f10f29434 100644 --- a/mingw-w64-libidn/PKGBUILD +++ b/mingw-w64-libidn/PKGBUILD @@ -2,7 +2,7 @@ _realname=libidn pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.31 +pkgver=1.32 pkgrel=1 pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications (mingw-w64)" arch=('any') @@ -14,7 +14,7 @@ options=('staticlibs' 'strip') source=("ftp://ftp.gnu.org/gnu/libidn/${_realname}-${pkgver}.tar.gz" 0001-fix-gtkdoc.all.patch 0002-fix-gdoc.all.patch) -sha1sums=('0bb34003a0fe05a91e60d346803401f16c82a1fb' +sha1sums=('ddd018611b98af7c67d434aa42d15d39f45129f5' '42baea83d76aeaa99e50f551d98dade8a5394fe3' '730dfdfdf3c2878113224c104f9c6c213010d7f0') From b27e5d8724336ca538bc60315d10b3bf7929752b Mon Sep 17 00:00:00 2001 From: Qian Hong Date: Fri, 31 Jul 2015 17:02:04 +0800 Subject: [PATCH 1414/2060] Add xz-git package. --- mingw-w64-xz-git/PKGBUILD | 65 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 mingw-w64-xz-git/PKGBUILD diff --git a/mingw-w64-xz-git/PKGBUILD b/mingw-w64-xz-git/PKGBUILD new file mode 100644 index 0000000000..0b205afe60 --- /dev/null +++ b/mingw-w64-xz-git/PKGBUILD @@ -0,0 +1,65 @@ +# Maintainer: Alexey Pavlov +# Contributor: Renato Silva + +_realname=xz +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +_ver_base=5.2.1 +pkgver=5.2.1 +pkgrel=1 +pkgdesc="Library and command line tools for XZ and LZMA compressed files (mingw-w64)" +arch=('any') +url="http://tukaani.org/xz" + +# TODO: check situation with getopt_long mentioned in COPYING for possible +# removal of LGPL from this field +license=(partial:'PublicDomain' partial:'LGPL2.1+' partial:'GPL2+') + +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext") +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +options=('staticlibs' 'strip') +source=("git+http://tukaani.org/xz.git") +sha256sums=('SKIP') + +pkgver() { + cd ${srcdir}/${_realname} + printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd ${srcdir}/${_realname} + + ./autogen.sh +} + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --disable-rpath \ + --disable-lzma-links + + make + +} + +check() { + cd ${srcdir}/build-${CARCH} + make check +} + + +package() { + cd "${srcdir}/build-${CARCH}" + make DESTDIR="${pkgdir}" install + + install -Dm644 ${srcdir}/${_realname}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING + install -Dm644 ${srcdir}/${_realname}/COPYING.GPLv2 ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.GPLv2 + install -Dm644 ${srcdir}/${_realname}/COPYING.GPLv3 ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.GPLv3 + install -Dm644 ${srcdir}/${_realname}/COPYING.LGPLv2.1 ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LGPLv2.1 +} From 11225103c44c99f575ebe20946b779c2a484e531 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sun, 2 Aug 2015 10:04:32 +0200 Subject: [PATCH 1415/2060] pngcrush: Update to v1.7.86 --- mingw-w64-pngcrush/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-pngcrush/PKGBUILD b/mingw-w64-pngcrush/PKGBUILD index d38e3aba19..f86321e10c 100644 --- a/mingw-w64-pngcrush/PKGBUILD +++ b/mingw-w64-pngcrush/PKGBUILD @@ -2,8 +2,8 @@ _realname=pngcrush pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.7.85 -pkgrel=2 +pkgver=1.7.86 +pkgrel=1 pkgdesc="A tool for optimizing the compression of PNG files (mingw-w64)" arch=('any') url="http://pmt.sourceforge.net/pngcrush" @@ -12,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-zlib") source=("http://downloads.sourceforge.net/pmt/${_realname}-${pkgver}-nolib.tar.gz" LICENSE) -md5sums=('3c18235755e509f129b9ff86d5076da4' +md5sums=('a394e7e2eec537aa05e6a68f9dc6f4e2' 'e6446a786d939c98fcada57f9ae6de1f') prepare() { From 0b26aac07ebc9666428cc1699e0a10353b78bd87 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sun, 2 Aug 2015 21:28:36 +0200 Subject: [PATCH 1416/2060] putty: Switched to the git repository, updated patches, fixed dependency in putty-ssh --- mingw-w64-putty-ssh/PKGBUILD | 6 +- mingw-w64-putty/0001-fixes.patch | 704 +++++++++++++++++++++++++------ mingw-w64-putty/0002-casts.patch | 339 --------------- mingw-w64-putty/PKGBUILD | 36 +- 4 files changed, 585 insertions(+), 500 deletions(-) delete mode 100644 mingw-w64-putty/0002-casts.patch diff --git a/mingw-w64-putty-ssh/PKGBUILD b/mingw-w64-putty-ssh/PKGBUILD index 2668522edb..ee092c32db 100644 --- a/mingw-w64-putty-ssh/PKGBUILD +++ b/mingw-w64-putty-ssh/PKGBUILD @@ -5,7 +5,7 @@ _realname=putty-ssh pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.0 -pkgrel=2 +pkgrel=3 pkgdesc="A wrapper around plink with some nice features (mingw-w64)" arch=('any') url="http://www.wischik.com/lu/programmer/unison-ssh.html" @@ -13,7 +13,7 @@ license=('unknown') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "unzip") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-putty-svn") + "${MINGW_PACKAGE_PREFIX}-putty") source=("http://www.wischik.com/lu/programmer/unison-ssh.zip") md5sums=('7ca1ddb5e056e9d4b94cf70020b870ff') @@ -29,5 +29,5 @@ build() { package() { cd "${srcdir}" - install -D -m755 plink-ssh.exe "${pkgdir}"/${MINGW_PREFIX}/bin/plink-ssh.exe + install -D -m755 plink-ssh.exe "${pkgdir}"${MINGW_PREFIX}/bin/plink-ssh.exe } diff --git a/mingw-w64-putty/0001-fixes.patch b/mingw-w64-putty/0001-fixes.patch index a0629d73cc..b59f271ac8 100644 --- a/mingw-w64-putty/0001-fixes.patch +++ b/mingw-w64-putty/0001-fixes.patch @@ -1,8 +1,18 @@ -Index: misc.c -=================================================================== ---- misc.c (revision 10285) -+++ misc.c (working copy) -@@ -834,7 +834,7 @@ +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/import.c putty/import.c +--- putty-master/import.c 2015-08-02 17:28:36.749565700 +0200 ++++ putty/import.c 2015-08-02 17:57:55.831937400 +0200 +@@ -886,6 +886,7 @@ + + } else { + assert(0 && "Bad key type from load_openssh_pem_key"); ++ return NULL; + } + + /* +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/misc.c putty/misc.c +--- putty-master/misc.c 2015-08-02 17:59:19.328191000 +0200 ++++ putty/misc.c 2015-08-02 17:46:44.676074600 +0200 +@@ -853,7 +853,7 @@ if (L) { int delta; debug_printf("\t%d (0x%x) bytes:\n", len, len); @@ -11,10 +21,9 @@ Index: misc.c p -= delta; len += delta; } -Index: mkfiles.pl -=================================================================== ---- mkfiles.pl (revision 10285) -+++ mkfiles.pl (working copy) +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/mkfiles.pl putty/mkfiles.pl +--- putty-master/mkfiles.pl 2015-08-02 17:59:19.333189500 +0200 ++++ putty/mkfiles.pl 2015-08-02 17:46:44.682078000 +0200 @@ -453,11 +453,11 @@ "# You may also need to tell windres where to find include files:\n". "# RCINC = --include-dir c:\\cygwin\\include\\\n". @@ -29,23 +38,58 @@ Index: mkfiles.pl &splitline("RCFLAGS = \$(RCINC) --define WIN32=1 --define _WIN32=1 ". "--define WINVER=0x0400 ".(join " ", map {"-I$dirpfx$_"} @srcdirs))."\n". "\n". -Index: windows/wincons.c -=================================================================== ---- windows/wincons.c (revision 10285) -+++ windows/wincons.c (working copy) -@@ -306,7 +306,7 @@ +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/ssh.c putty/ssh.c +--- putty-master/ssh.c 2015-08-02 17:28:36.805573600 +0200 ++++ putty/ssh.c 2015-08-02 17:54:52.614977600 +0200 +@@ -6190,13 +6190,14 @@ + *list, const char *name) + { + int i; +- ++ + for (i = 0; i < MAXKEXLIST; i++) + if (list[i].name == NULL || list[i].name == name) { + list[i].name = name; + return &list[i]; + } + assert(!"No space in KEXINIT list"); ++ return NULL; + } - int console_get_userpass_input(prompts_t *p, unsigned char *in, int inlen) + /* +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/sshbn.h putty/sshbn.h +--- putty-master/sshbn.h 2015-08-02 17:26:41.384304900 +0200 ++++ putty/sshbn.h 2015-08-02 17:50:46.359750500 +0200 +@@ -1,3 +1,5 @@ ++#include ++ + /* + * sshbn.h: the assorted conditional definitions of BignumInt and + * multiply/divide macros used throughout the bignum code to treat +@@ -26,7 +28,7 @@ + * using the same 'two machine registers' kind of code generation that + * 32-bit targets use for 64-bit ints. If we have one of these, we can + * use a 64-bit BignumInt and a 128-bit BignumDblInt. */ +-typedef __uint64_t BignumInt; ++typedef uint64_t BignumInt; + typedef __uint128_t BignumDblInt; + #define BIGNUM_INT_MASK 0xFFFFFFFFFFFFFFFFULL + #define BIGNUM_TOP_BIT 0x8000000000000000ULL +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/wincons.c putty/windows/wincons.c +--- putty-master/windows/wincons.c 2015-08-02 17:59:19.347186300 +0200 ++++ putty/windows/wincons.c 2015-08-02 17:46:44.688076200 +0200 +@@ -307,7 +307,7 @@ + int console_get_userpass_input(prompts_t *p, + const unsigned char *in, int inlen) { - HANDLE hin, hout; + HANDLE hin = NULL, hout = NULL; size_t curr_prompt; /* -Index: windows/winctrls.c -=================================================================== ---- windows/winctrls.c (revision 10285) -+++ windows/winctrls.c (working copy) +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winctrls.c putty/windows/winctrls.c +--- putty-master/windows/winctrls.c 2015-08-02 17:59:19.351185400 +0200 ++++ putty/windows/winctrls.c 2015-08-02 17:46:44.694075200 +0200 @@ -76,7 +76,7 @@ if (cp->hwnd) { ctl = CreateWindowEx(exstyle, wclass, wtext, wstyle, @@ -100,11 +144,37 @@ Index: windows/winctrls.c int width, nlines, j; INT *pwidths, nfit; SIZE size; -Index: windows/windlg.c -=================================================================== ---- windows/windlg.c (revision 10285) -+++ windows/windlg.c (working copy) -@@ -654,7 +654,7 @@ +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/windlg.c putty/windows/windlg.c +--- putty-master/windows/windlg.c 2015-08-02 17:59:19.354191000 +0200 ++++ putty/windows/windlg.c 2015-08-02 17:46:44.702076500 +0200 +@@ -209,7 +209,7 @@ + case IDA_LICENCE: + EnableWindow(hwnd, 0); + DialogBox(hinst, MAKEINTRESOURCE(IDD_LICENCEBOX), +- hwnd, LicenceProc); ++ hwnd, (DLGPROC)LicenceProc); + EnableWindow(hwnd, 1); + SetActiveWindow(hwnd); + return 0; +@@ -640,7 +640,7 @@ + void modal_about_box(HWND hwnd) + { + EnableWindow(hwnd, 0); +- DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, AboutProc); ++ DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, (DLGPROC)AboutProc); + EnableWindow(hwnd, 1); + SetActiveWindow(hwnd); + } +@@ -660,7 +660,7 @@ + { + HWND hwnd; + hwnd = CreateDialog(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), +- NULL, NullDlgProc); ++ NULL, (DLGPROC)NullDlgProc); + ShowWindow(hwnd, SW_HIDE); + SetActiveWindow(hwnd); + DestroyWindow(hwnd); +@@ -687,7 +687,7 @@ ret = SaneDialogBox(hinst, MAKEINTRESOURCE(IDD_MAINBOX), NULL, @@ -113,7 +183,7 @@ Index: windows/windlg.c ctrl_free_box(ctrlbox); winctrl_cleanup(&ctrls_panel); -@@ -687,7 +687,7 @@ +@@ -720,7 +720,7 @@ dp.shortcuts['g'] = TRUE; /* the treeview: `Cate&gory' */ ret = SaneDialogBox(hinst, MAKEINTRESOURCE(IDD_MAINBOX), NULL, @@ -122,29 +192,46 @@ Index: windows/windlg.c ctrl_free_box(ctrlbox); winctrl_cleanup(&ctrls_base); -Index: windows/window.c -=================================================================== ---- windows/window.c (revision 10285) -+++ windows/window.c (working copy) -@@ -803,7 +803,7 @@ +@@ -767,7 +767,7 @@ + { + if (!logbox) { + logbox = CreateDialog(hinst, MAKEINTRESOURCE(IDD_LOGBOX), +- hwnd, LogProc); ++ hwnd, (DLGPROC)LogProc); + ShowWindow(logbox, SW_SHOWNORMAL); + } + SetActiveWindow(logbox); +@@ -775,7 +775,7 @@ + + void showabout(HWND hwnd) + { +- DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, AboutProc); ++ DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, (DLGPROC)AboutProc); + } + + int verify_ssh_host_key(void *frontend, char *host, int port, +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/window.c putty/windows/window.c +--- putty-master/windows/window.c 2015-08-02 17:59:19.359192900 +0200 ++++ putty/windows/window.c 2015-08-02 17:46:44.709075700 +0200 +@@ -811,7 +811,7 @@ AppendMenu(m, MF_SEPARATOR, 0, 0); AppendMenu(m, MF_ENABLED, IDM_NEWSESS, "Ne&w Session..."); AppendMenu(m, MF_ENABLED, IDM_DUPSESS, "&Duplicate Session"); - AppendMenu(m, MF_POPUP | MF_ENABLED, (UINT) savedsess_menu, -+ AppendMenu(m, MF_POPUP | MF_ENABLED, savedsess_menu, ++ AppendMenu(m, MF_POPUP | MF_ENABLED, (UINT_PTR)savedsess_menu, "Sa&ved Sessions"); AppendMenu(m, MF_ENABLED, IDM_RECONF, "Chan&ge Settings..."); AppendMenu(m, MF_SEPARATOR, 0, 0); -@@ -1008,7 +1008,7 @@ +@@ -1038,7 +1038,7 @@ saved_menu = new_menu; /* XXX lame stacking */ new_menu = CreatePopupMenu(); AppendMenu(saved_menu, MF_POPUP | MF_ENABLED, - (UINT) new_menu, specials[i].name); -+ new_menu, specials[i].name); ++ (UINT_PTR)new_menu, specials[i].name); break; case TS_EXITMENU: nesting--; -@@ -1033,13 +1033,13 @@ +@@ -1063,13 +1063,13 @@ for (j = 0; j < lenof(popup_menus); j++) { if (specials_menu) { /* XXX does this free up all submenus? */ @@ -156,11 +243,11 @@ Index: windows/window.c InsertMenu(popup_menus[j].menu, IDM_SHOWLOG, MF_BYCOMMAND | MF_POPUP | MF_ENABLED, - (UINT) new_menu, "S&pecial Command"); -+ new_menu, "S&pecial Command"); ++ (UINT_PTR)new_menu, "S&pecial Command"); InsertMenu(popup_menus[j].menu, IDM_SHOWLOG, MF_BYCOMMAND | MF_SEPARATOR, IDM_SPECIALSEP, 0); } -@@ -1069,6 +1069,7 @@ +@@ -1099,6 +1099,7 @@ break; default: assert(0); @@ -168,7 +255,7 @@ Index: windows/window.c } { HCURSOR cursor = LoadCursor(NULL, curstype); -@@ -1486,7 +1487,7 @@ +@@ -1516,7 +1517,7 @@ if (cset == OEM_CHARSET) ucsdata.font_codepage = GetOEMCP(); else @@ -177,7 +264,7 @@ Index: windows/window.c ucsdata.font_codepage = info.ciACP; else ucsdata.font_codepage = -1; -@@ -3086,7 +3087,7 @@ +@@ -3117,7 +3118,7 @@ */ term_seen_key_event(term); if (ldisc) @@ -186,7 +273,7 @@ Index: windows/window.c show_mouseptr(0); } } -@@ -3160,7 +3161,7 @@ +@@ -3191,7 +3192,7 @@ buf[0] = wParam >> 8; term_seen_key_event(term); if (ldisc) @@ -195,7 +282,7 @@ Index: windows/window.c } else { char c = (unsigned char) wParam; term_seen_key_event(term); -@@ -4548,7 +4549,7 @@ +@@ -4590,7 +4591,7 @@ break; } if (xkey) { @@ -204,11 +291,22 @@ Index: windows/window.c return p - output; } } -Index: windows/winhandl.c -=================================================================== ---- windows/winhandl.c (revision 10285) -+++ windows/winhandl.c (working copy) -@@ -379,9 +379,9 @@ +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/wingss.c putty/windows/wingss.c +--- putty-master/windows/wingss.c 2015-08-02 17:59:19.361188200 +0200 ++++ putty/windows/wingss.c 2015-08-02 17:46:44.717077800 +0200 +@@ -91,7 +91,7 @@ + if (ret == ERROR_SUCCESS && type == REG_SZ) { + buffer = snewn(size + 20, char); + ret = RegQueryValueEx(regkey, "InstallDir", NULL, +- &type, buffer, &size); ++ &type, (LPBYTE)buffer, &size); + if (ret == ERROR_SUCCESS && type == REG_SZ) { + strcat(buffer, "\\bin\\gssapi32.dll"); + module = LoadLibrary(buffer); +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winhandl.c putty/windows/winhandl.c +--- putty-master/windows/winhandl.c 2015-08-02 17:59:19.363189300 +0200 ++++ putty/windows/winhandl.c 2015-08-02 17:46:44.724079700 +0200 +@@ -411,9 +411,9 @@ struct handle *a = (struct handle *)av; struct handle *b = (struct handle *)bv; @@ -220,7 +318,7 @@ Index: windows/winhandl.c return +1; else return 0; -@@ -392,9 +392,9 @@ +@@ -424,9 +424,9 @@ HANDLE *a = (HANDLE *)av; struct handle *b = (struct handle *)bv; @@ -232,23 +330,21 @@ Index: windows/winhandl.c return +1; else return 0; -Index: windows/winhelp.c -=================================================================== ---- windows/winhelp.c (revision 10285) -+++ windows/winhelp.c (working copy) +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winhelp.c putty/windows/winhelp.c +--- putty-master/windows/winhelp.c 2015-08-02 17:59:19.366189800 +0200 ++++ putty/windows/winhelp.c 2015-08-02 17:46:44.730080700 +0200 @@ -105,7 +105,7 @@ #endif /* NO_HTMLHELP */ if (help_path) { char *cmd = dupprintf("JI(`',`%.*s')", colonpos, topic); - WinHelp(hwnd, help_path, HELP_COMMAND, (DWORD)cmd); -+ WinHelp(hwnd, help_path, HELP_COMMAND, cmd); ++ WinHelp(hwnd, help_path, HELP_COMMAND, (LPARAM)cmd); sfree(cmd); } } else { -Index: windows/winjump.c -=================================================================== ---- windows/winjump.c (revision 10285) -+++ windows/winjump.c (working copy) +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winjump.c putty/windows/winjump.c +--- putty-master/windows/winjump.c 2015-08-02 17:59:19.368190100 +0200 ++++ putty/windows/winjump.c 2015-08-02 17:46:44.737079900 +0200 @@ -441,7 +441,7 @@ sessionname, "'", NULL); } else { @@ -267,26 +363,40 @@ Index: windows/winjump.c } pPS->lpVtbl->SetValue(pPS, &PKEY_Title, &pv); sfree(pv.pszVal); -Index: windows/winmisc.c -=================================================================== ---- windows/winmisc.c (revision 10285) -+++ windows/winmisc.c (working copy) -@@ -218,9 +218,10 @@ - FORMAT_MESSAGE_IGNORE_INSERTS), NULL, error, +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winmisc.c putty/windows/winmisc.c +--- putty-master/windows/winmisc.c 2015-08-02 17:59:19.376191400 +0200 ++++ putty/windows/winmisc.c 2015-08-02 17:51:17.283749800 +0200 +@@ -220,7 +220,7 @@ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), msgtext, lenof(msgtext)-1, NULL)) { -+ GetLastError(); sprintf(msgtext, - "(unable to format: FormatMessage returned %d)", -- error, GetLastError()); -+ error); +- "(unable to format: FormatMessage returned %d)", ++ "(unable to format: FormatMessage returned %lu)", + GetLastError()); } else { int len = strlen(msgtext); - if (len > 0 && msgtext[len-1] == '\n') -Index: windows/winnet.c -=================================================================== ---- windows/winnet.c (revision 10285) -+++ windows/winnet.c (working copy) +@@ -270,15 +270,15 @@ + + /* + * Design: +- * ++ * + * We start by reserving as much virtual address space as Windows + * will sensibly (or not sensibly) let us have. We flag it all as + * invalid memory. +- * ++ * + * Any allocation attempt is satisfied by committing one or more + * pages, with an uncommitted page on either side. The returned + * memory region is jammed up against the _end_ of the pages. +- * ++ * + * Freeing anything causes instantaneous decommitment of the pages + * involved, so stale pointers are caught as soon as possible. + */ +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winnet.c putty/windows/winnet.c +--- putty-master/windows/winnet.c 2015-08-02 17:59:19.381189500 +0200 ++++ putty/windows/winnet.c 2015-08-02 17:55:27.839358100 +0200 @@ -138,7 +138,7 @@ static int cmpforsearch(void *av, void *bv) { @@ -296,7 +406,7 @@ Index: windows/winnet.c if (as < bs) return -1; if (as > bs) -@@ -472,7 +472,7 @@ +@@ -478,7 +478,7 @@ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), es->text + bufused, bufsize - bufused, NULL)) { sprintf(es->text + bufused, @@ -305,70 +415,263 @@ Index: windows/winnet.c error, GetLastError()); } else { int len = strlen(es->text); -Index: windows/winpgen.c -=================================================================== ---- windows/winpgen.c (revision 10285) -+++ windows/winpgen.c (working copy) -@@ -846,7 +846,7 @@ +@@ -1658,7 +1658,7 @@ + ret = p_recv(s->s, buf, sizeof(buf), MSG_OOB); + noise_ultralight(ret); + if (ret <= 0) { +- char *str = (ret == 0 ? "Internal networking trouble" : ++ const char *str = (ret == 0 ? "Internal networking trouble" : + winsock_error_string(p_WSAGetLastError())); + /* We're inside the Windows frontend here, so we know + * that the frontend handle is unnecessary. */ +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winpgen.c putty/windows/winpgen.c +--- putty-master/windows/winpgen.c 2015-08-02 17:59:19.389193100 +0200 ++++ putty/windows/winpgen.c 2015-08-02 17:46:44.758079800 +0200 +@@ -302,7 +302,7 @@ + return 0; + case 101: + EnableWindow(hwnd, 0); +- DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, LicenceProc); ++ DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, (DLGPROC)LicenceProc); + EnableWindow(hwnd, 1); + SetActiveWindow(hwnd); + return 0; +@@ -624,7 +624,7 @@ + pps.comment = comment; + dlgret = DialogBoxParam(hinst, + MAKEINTRESOURCE(210), +- NULL, PassphraseProc, ++ NULL, (DLGPROC)PassphraseProc, + (LPARAM) &pps); + if (!dlgret) { + ret = -2; +@@ -790,7 +790,7 @@ AppendMenu(menu1, MF_ENABLED, IDC_SAVE, "&Save private key"); AppendMenu(menu1, MF_SEPARATOR, 0, 0); AppendMenu(menu1, MF_ENABLED, IDC_QUIT, "E&xit"); - AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT) menu1, "&File"); -+ AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, "&File"); ++ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR)menu1, "&File"); state->filemenu = menu1; menu1 = CreateMenu(); -@@ -855,7 +855,7 @@ - AppendMenu(menu1, MF_ENABLED, IDC_KEYSSH1, "SSH-&1 key (RSA)"); - AppendMenu(menu1, MF_ENABLED, IDC_KEYSSH2RSA, "SSH-2 &RSA key"); +@@ -801,7 +801,7 @@ AppendMenu(menu1, MF_ENABLED, IDC_KEYSSH2DSA, "SSH-2 &DSA key"); + AppendMenu(menu1, MF_ENABLED, IDC_KEYSSH2ECDSA, "SSH-2 &ECDSA key"); + AppendMenu(menu1, MF_ENABLED, IDC_KEYSSH2ED25519, "SSH-2 ED&25519 key"); - AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT) menu1, "&Key"); -+ AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, "&Key"); ++ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR) menu1, "&Key"); state->keymenu = menu1; menu1 = CreateMenu(); -@@ -865,7 +865,7 @@ - "Export &OpenSSH key"); +@@ -813,7 +813,7 @@ + "Export &OpenSSH key (force new file format)"); AppendMenu(menu1, MF_ENABLED, IDC_EXPORT_SSHCOM, "Export &ssh.com key"); - AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT) menu1, -+ AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, ++ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR)menu1, "Con&versions"); state->cvtmenu = menu1; -@@ -873,7 +873,7 @@ +@@ -821,7 +821,7 @@ AppendMenu(menu1, MF_ENABLED, IDC_ABOUT, "&About"); if (has_help()) AppendMenu(menu1, MF_ENABLED, IDC_GIVEHELP, "&Help"); - AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT) menu1, "&Help"); -+ AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, "&Help"); ++ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR)menu1, "&Help"); SetMenu(hwnd, menu); } -Index: windows/winpgnt.c -=================================================================== ---- windows/winpgnt.c (revision 10285) -+++ windows/winpgnt.c (working copy) -@@ -1022,7 +1022,7 @@ - key = find234(ssh2keys, &b, cmpkeys_ssh2_asymm); - if (!key) - goto failure; -- signature = key->alg->sign(key->data, data, datalen, &siglen); -+ signature = key->alg->sign(key->data, (char *)data, datalen, &siglen); - len = 5 + 4 + siglen; - PUT_32BIT(ret, len - 4); - ret[4] = SSH2_AGENT_SIGN_RESPONSE; -@@ -1121,7 +1121,8 @@ - */ - { - struct ssh2_userkey *key; -- char *comment, *alg; -+ char *comment; -+ unsigned char *alg; - int alglen, commlen; - int bloblen; +@@ -1002,7 +1002,7 @@ + break; + case IDC_ABOUT: + EnableWindow(hwnd, 0); +- DialogBox(hinst, MAKEINTRESOURCE(213), hwnd, AboutProc); ++ DialogBox(hinst, MAKEINTRESOURCE(213), hwnd, (DLGPROC)AboutProc); + EnableWindow(hwnd, 1); + SetActiveWindow(hwnd); + return 0; +@@ -1468,7 +1468,7 @@ + } -@@ -1756,7 +1757,6 @@ + random_ref(); +- ret = DialogBox(hinst, MAKEINTRESOURCE(201), NULL, MainDlgProc) != IDOK; ++ ret = DialogBox(hinst, MAKEINTRESOURCE(201), NULL, (DLGPROC)MainDlgProc) != IDOK; + + cleanup_exit(ret); + return ret; /* just in case optimiser complains */ +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winpgnt.c putty/windows/winpgnt.c +--- putty-master/windows/winpgnt.c 2015-08-02 17:59:19.394192000 +0200 ++++ putty/windows/winpgnt.c 2015-08-02 17:51:52.048702400 +0200 +@@ -117,7 +117,7 @@ + char *comment; + }; + +-/* ++/* + * Dialog-box function for the Licence box. + */ + static int CALLBACK LicenceProc(HWND hwnd, UINT msg, +@@ -160,7 +160,7 @@ + return 0; + case 101: + EnableWindow(hwnd, 0); +- DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, LicenceProc); ++ DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, (DLGPROC)LicenceProc); + EnableWindow(hwnd, 1); + SetActiveWindow(hwnd); + return 0; +@@ -291,7 +291,7 @@ + } + for (i = 0; NULL != (skey = pageant_nth_ssh2_key(i)); i++) { + char *listentry, *p; +- int pos, fp_len; ++ int pos; + /* + * Replace spaces with tabs in the fingerprint prefix, for + * nice alignment in the list box, until we encounter a : +@@ -299,7 +299,6 @@ + */ + p = ssh2_fingerprint(skey->alg, skey->data); + listentry = dupprintf("%s\t%s", p, skey->comment); +- fp_len = strlen(listentry); + sfree(p); + + pos = 0; +@@ -324,7 +323,7 @@ + unsigned msglen; + void *reply; + int replylen; +- ++ + msglen = GET_32BIT(msg); + if (msglen > AGENT_MAX_MSGLEN) { + reply = pageant_failure_msg(&replylen); +@@ -334,7 +333,7 @@ + smemclr(reply, replylen); + sfree(reply); + reply = pageant_failure_msg(&replylen); +- } ++ } + } + + /* +@@ -344,10 +343,10 @@ + memcpy(msg, reply, replylen); + smemclr(reply, replylen); + sfree(reply); +-} ++ } + + static void win_add_keyfile(Filename *filename) +-{ ++ { + char *err; + int ret; + char *passphrase = NULL; +@@ -362,35 +361,35 @@ + goto done; + } else if (ret == PAGEANT_ACTION_FAILURE) { + goto error; +- } ++ } + + /* + * OK, a passphrase is needed, and we've been given the key + * comment to use in the passphrase prompt. + */ + while (1) { +- int dlgret; +- struct PassphraseProcStruct pps; ++ int dlgret; ++ struct PassphraseProcStruct pps; + +- pps.passphrase = &passphrase; ++ pps.passphrase = &passphrase; + pps.comment = err; +- dlgret = DialogBoxParam(hinst, MAKEINTRESOURCE(210), +- NULL, PassphraseProc, (LPARAM) &pps); +- passphrase_box = NULL; ++ dlgret = DialogBoxParam(hinst, MAKEINTRESOURCE(210), ++ NULL, (DLGPROC)PassphraseProc, (LPARAM) &pps); ++ passphrase_box = NULL; + + sfree(err); + + if (!dlgret) + goto done; /* operation cancelled */ + +- assert(passphrase != NULL); ++ assert(passphrase != NULL); + + ret = pageant_add_keyfile(filename, passphrase, &err); + if (ret == PAGEANT_ACTION_OK) { + goto done; + } else if (ret == PAGEANT_ACTION_FAILURE) { + goto error; +- } ++ } + + smemclr(passphrase, strlen(passphrase)); + sfree(passphrase); +@@ -399,15 +398,15 @@ + + error: + message_box(err, APPNAME, MB_OK | MB_ICONERROR, +- HELPCTXID(errors_cantloadkey)); ++ HELPCTXID(errors_cantloadkey)); + done: + if (passphrase) { + smemclr(passphrase, strlen(passphrase)); + sfree(passphrase); + } + sfree(err); +- return; +-} ++ return; ++ } + + /* + * Prompt for a key file to add, and add it. +@@ -556,27 +555,27 @@ + * we go *backwards*, to avoid complications from deleting + * things hence altering the offset of subsequent items + */ +- for (i = sCount - 1; (itemNum >= 0) && (i >= 0); i--) { ++ for (i = sCount - 1; (itemNum >= 0) && (i >= 0); i--) { + skey = pageant_nth_ssh2_key(i); + +- if (selectedArray[itemNum] == rCount + i) { ++ if (selectedArray[itemNum] == rCount + i) { + pageant_delete_ssh2_key(skey); +- skey->alg->freekey(skey->data); +- sfree(skey); +- itemNum--; +- } ++ skey->alg->freekey(skey->data); ++ sfree(skey); ++ itemNum--; ++ } + } + + /* do the same for the rsa keys */ + for (i = rCount - 1; (itemNum >= 0) && (i >= 0); i--) { + rkey = pageant_nth_ssh1_key(i); + +- if(selectedArray[itemNum] == i) { ++ if(selectedArray[itemNum] == i) { + pageant_delete_ssh1_key(rkey); +- freersakey(rkey); +- sfree(rkey); +- itemNum--; +- } ++ freersakey(rkey); ++ sfree(rkey); ++ itemNum--; ++ } + } + + sfree(selectedArray); +@@ -745,7 +744,6 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { @@ -376,7 +679,7 @@ Index: windows/winpgnt.c static int menuinprogress; static UINT msgTaskbarCreated = 0; -@@ -1791,7 +1791,7 @@ +@@ -780,7 +778,7 @@ menuinprogress = 1; update_sessions(); SetForegroundWindow(hwnd); @@ -385,7 +688,7 @@ Index: windows/winpgnt.c TPM_RIGHTALIGN | TPM_BOTTOMALIGN | TPM_RIGHTBUTTON, wParam, lParam, 0, hwnd, NULL); -@@ -1802,7 +1802,7 @@ +@@ -791,7 +789,7 @@ case WM_SYSCOMMAND: switch (wParam & ~0xF) { /* low 4 bits reserved to Windows */ case IDM_PUTTY: @@ -394,7 +697,25 @@ Index: windows/winpgnt.c SW_SHOW) <= 32) { MessageBox(NULL, "Unable to execute PuTTY!", "Error", MB_OK | MB_ICONERROR); -@@ -1869,7 +1869,7 @@ +@@ -805,7 +803,7 @@ + case IDM_VIEWKEYS: + if (!keylist) { + keylist = CreateDialog(hinst, MAKEINTRESOURCE(211), +- NULL, KeyListProc); ++ NULL, (DLGPROC)KeyListProc); + ShowWindow(keylist, SW_SHOWNORMAL); + } + /* +@@ -830,7 +828,7 @@ + case IDM_ABOUT: + if (!aboutbox) { + aboutbox = CreateDialog(hinst, MAKEINTRESOURCE(213), +- NULL, AboutProc); ++ NULL, (DLGPROC)AboutProc); + ShowWindow(aboutbox, SW_SHOWNORMAL); + /* + * Sometimes the window comes up minimised / hidden +@@ -858,7 +856,7 @@ GetMenuItemInfo(session_menu, wParam, FALSE, &mii); strcpy(param, "@"); strcat(param, mii.dwTypeData); @@ -403,7 +724,7 @@ Index: windows/winpgnt.c _T(""), SW_SHOW) <= 32) { MessageBox(NULL, "Unable to execute PuTTY!", "Error", MB_OK | MB_ICONERROR); -@@ -2210,7 +2210,7 @@ +@@ -1193,7 +1191,7 @@ session_menu = CreateMenu(); AppendMenu(systray_menu, MF_ENABLED, IDM_PUTTY, "&New Session"); AppendMenu(systray_menu, MF_POPUP | MF_ENABLED, @@ -412,10 +733,39 @@ Index: windows/winpgnt.c AppendMenu(systray_menu, MF_SEPARATOR, 0, 0); } AppendMenu(systray_menu, MF_ENABLED, IDM_VIEWKEYS, -Index: windows/winsecur.c -=================================================================== ---- windows/winsecur.c (revision 10285) -+++ windows/winsecur.c (working copy) +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winprint.c putty/windows/winprint.c +--- putty-master/windows/winprint.c 2015-08-02 17:59:19.401192000 +0200 ++++ putty/windows/winprint.c 2015-08-02 17:46:44.771081500 +0200 +@@ -30,7 +30,7 @@ + * we'll need for the output. Discard the return value since it + * will almost certainly be a failure due to lack of space. + */ +- EnumPrinters(param, NULL, level, (*buffer)+offset, 512, ++ EnumPrinters(param, NULL, level, (LPBYTE)((*buffer)+offset), 512, + &needed, &nprinters); + + if (needed < 512) +@@ -38,7 +38,7 @@ + + *buffer = sresize(*buffer, offset+needed, char); + +- if (EnumPrinters(param, NULL, level, (*buffer)+offset, ++ if (EnumPrinters(param, NULL, level, (LPBYTE)((*buffer)+offset), + needed, &needed, &nprinters) == 0) + return FALSE; + +@@ -139,7 +139,7 @@ + docinfo.pOutputFile = NULL; + docinfo.pDatatype = "RAW"; + +- if (!StartDocPrinter(ret->hprinter, 1, (LPSTR)&docinfo)) ++ if (!StartDocPrinter(ret->hprinter, 1, (LPBYTE)&docinfo)) + goto error; + jobstarted = 1; + +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winsecur.c putty/windows/winsecur.c +--- putty-master/windows/winsecur.c 2015-08-02 17:59:19.414197200 +0200 ++++ putty/windows/winsecur.c 2015-08-02 17:46:44.779083600 +0200 @@ -104,8 +104,8 @@ PACL *acl, char **error) @@ -427,10 +777,9 @@ Index: windows/winsecur.c EXPLICIT_ACCESS ea[3]; int acl_err; int ret = FALSE; -Index: windows/winser.c -=================================================================== ---- windows/winser.c (revision 10285) -+++ windows/winser.c (working copy) +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winser.c putty/windows/winser.c +--- putty-master/windows/winser.c 2015-08-02 17:59:19.417193400 +0200 ++++ putty/windows/winser.c 2015-08-02 17:46:44.788083900 +0200 @@ -122,7 +122,7 @@ * Configurable parameters. */ @@ -448,10 +797,9 @@ Index: windows/winser.c } /* -Index: windows/winsftp.c -=================================================================== ---- windows/winsftp.c (revision 10285) -+++ windows/winsftp.c (working copy) +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winsftp.c putty/windows/winsftp.c +--- putty-master/windows/winsftp.c 2015-08-02 17:59:19.419190600 +0200 ++++ putty/windows/winsftp.c 2015-08-02 17:46:44.802085400 +0200 @@ -221,7 +221,7 @@ return -1; } @@ -470,20 +818,96 @@ Index: windows/winsftp.c return ret; } -Index: windows/winucs.c -=================================================================== ---- windows/winucs.c (revision 10285) -+++ windows/winucs.c (working copy) -@@ -441,12 +441,8 @@ +diff -aur -x.git '-x*.o' '-x*.exe' '-x*.mft' -xterminal.c putty-master/windows/winstore.c putty/windows/winstore.c +--- putty-master/windows/winstore.c 2015-08-02 17:59:19.422196200 +0200 ++++ putty/windows/winstore.c 2015-08-02 17:46:44.814084200 +0200 +@@ -110,7 +110,7 @@ + void write_setting_s(void *handle, const char *key, const char *value) { - int i, j; - int used_dtf = 0; -- char tbuf[256]; - int vtmode; + if (handle) +- RegSetValueEx((HKEY) handle, key, 0, REG_SZ, value, ++ RegSetValueEx((HKEY) handle, key, 0, REG_SZ, (LPBYTE)value, + 1 + strlen(value)); + } -- for (i = 0; i < 256; i++) -- tbuf[i] = i; -- - /* Decide on the Line and Font codepages */ - ucsdata->line_codepage = decode_codepage(conf_get_str(conf, - CONF_line_codepage)); +@@ -168,7 +168,7 @@ + allocsize = size+1; /* allow for an extra NUL if needed */ + ret = snewn(allocsize, char); + if (RegQueryValueEx((HKEY) handle, key, 0, +- &type, ret, &size) != ERROR_SUCCESS || ++ &type, (LPBYTE)ret, &size) != ERROR_SUCCESS || + type != REG_SZ) { + sfree(ret); + return NULL; +@@ -372,7 +372,7 @@ + + readlen = len; + otherstr = snewn(len, char); +- ret = RegQueryValueEx(rkey, regname, NULL, &type, otherstr, &readlen); ++ ret = RegQueryValueEx(rkey, regname, NULL, &type, (LPBYTE)otherstr, &readlen); + + if (ret != ERROR_SUCCESS && ret != ERROR_MORE_DATA && + !strcmp(keytype, "rsa")) { +@@ -385,7 +385,7 @@ + char *oldstyle = snewn(len + 10, char); /* safety margin */ + readlen = len; + ret = RegQueryValueEx(rkey, justhost, NULL, &type, +- oldstyle, &readlen); ++ (LPBYTE)oldstyle, &readlen); + + if (ret == ERROR_SUCCESS && type == REG_SZ) { + /* +@@ -431,7 +431,7 @@ + * wrong, and hyper-cautiously do nothing. + */ + if (!strcmp(otherstr, key)) +- RegSetValueEx(rkey, regname, 0, REG_SZ, otherstr, ++ RegSetValueEx(rkey, regname, 0, REG_SZ, (LPBYTE)otherstr, + strlen(otherstr) + 1); + } + +@@ -476,7 +476,7 @@ + + if (RegCreateKey(HKEY_CURRENT_USER, PUTTY_REG_POS "\\SshHostKeys", + &rkey) == ERROR_SUCCESS) { +- RegSetValueEx(rkey, regname, 0, REG_SZ, key, strlen(key) + 1); ++ RegSetValueEx(rkey, regname, 0, REG_SZ, (LPBYTE)key, strlen(key) + 1); + RegCloseKey(rkey); + } /* else key does not exist in registry */ + +@@ -536,7 +536,7 @@ + if (RegOpenKey(HKEY_CURRENT_USER, PUTTY_REG_POS, &rkey) == + ERROR_SUCCESS) { + int ret = RegQueryValueEx(rkey, "RandSeedFile", +- 0, &type, seedpath, &size); ++ 0, &type, (LPBYTE)seedpath, (LPDWORD)&size); + if (ret != ERROR_SUCCESS || type != REG_SZ) + seedpath[0] = '\0'; + RegCloseKey(rkey); +@@ -672,7 +672,7 @@ + value_length = 200; + old_value = snewn(value_length, char); + ret = RegQueryValueEx(pjumplist_key, reg_jumplist_value, NULL, &type, +- old_value, &value_length); ++ (LPBYTE)old_value, (LPDWORD)&value_length); + /* When the passed buffer is too small, ERROR_MORE_DATA is + * returned and the required size is returned in the length + * argument. */ +@@ -680,7 +680,7 @@ + sfree(old_value); + old_value = snewn(value_length, char); + ret = RegQueryValueEx(pjumplist_key, reg_jumplist_value, NULL, &type, +- old_value, &value_length); ++ (LPBYTE)old_value, (LPDWORD)&value_length); + } + + if (ret == ERROR_FILE_NOT_FOUND) { +@@ -754,7 +754,7 @@ + + /* Save the new list to the registry. */ + ret = RegSetValueEx(pjumplist_key, reg_jumplist_value, 0, REG_MULTI_SZ, +- new_value, piterator_new - new_value); ++ (LPBYTE)new_value, piterator_new - new_value); + + sfree(old_value); + old_value = new_value; diff --git a/mingw-w64-putty/0002-casts.patch b/mingw-w64-putty/0002-casts.patch deleted file mode 100644 index a827721ed6..0000000000 --- a/mingw-w64-putty/0002-casts.patch +++ /dev/null @@ -1,339 +0,0 @@ -diff -ruN putty/windows/windlg.c putty.new/windows/windlg.c ---- putty/windows/windlg.c 2014-11-19 13:05:38.160482800 +0100 -+++ putty.new/windows/windlg.c 2014-11-19 12:55:03.122840200 +0100 -@@ -209,7 +209,7 @@ - case IDA_LICENCE: - EnableWindow(hwnd, 0); - DialogBox(hinst, MAKEINTRESOURCE(IDD_LICENCEBOX), -- hwnd, LicenceProc); -+ hwnd, (DLGPROC)LicenceProc); - EnableWindow(hwnd, 1); - SetActiveWindow(hwnd); - return 0; -@@ -607,7 +607,7 @@ - void modal_about_box(HWND hwnd) - { - EnableWindow(hwnd, 0); -- DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, AboutProc); -+ DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, (DLGPROC)AboutProc); - EnableWindow(hwnd, 1); - SetActiveWindow(hwnd); - } -@@ -627,7 +627,7 @@ - { - HWND hwnd; - hwnd = CreateDialog(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), -- NULL, NullDlgProc); -+ NULL, (DLGPROC)NullDlgProc); - ShowWindow(hwnd, SW_HIDE); - SetActiveWindow(hwnd); - DestroyWindow(hwnd); -@@ -734,7 +734,7 @@ - { - if (!logbox) { - logbox = CreateDialog(hinst, MAKEINTRESOURCE(IDD_LOGBOX), -- hwnd, LogProc); -+ hwnd, (DLGPROC)LogProc); - ShowWindow(logbox, SW_SHOWNORMAL); - } - SetActiveWindow(logbox); -@@ -742,7 +742,7 @@ - - void showabout(HWND hwnd) - { -- DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, AboutProc); -+ DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, (DLGPROC)AboutProc); - } - - int verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, -diff -ruN putty/windows/window.c putty.new/windows/window.c ---- putty/windows/window.c 2014-11-19 13:05:38.160482800 +0100 -+++ putty.new/windows/window.c 2014-11-19 12:57:54.829526500 +0100 -@@ -803,7 +803,7 @@ - AppendMenu(m, MF_SEPARATOR, 0, 0); - AppendMenu(m, MF_ENABLED, IDM_NEWSESS, "Ne&w Session..."); - AppendMenu(m, MF_ENABLED, IDM_DUPSESS, "&Duplicate Session"); -- AppendMenu(m, MF_POPUP | MF_ENABLED, savedsess_menu, -+ AppendMenu(m, MF_POPUP | MF_ENABLED, (UINT_PTR)savedsess_menu, - "Sa&ved Sessions"); - AppendMenu(m, MF_ENABLED, IDM_RECONF, "Chan&ge Settings..."); - AppendMenu(m, MF_SEPARATOR, 0, 0); -@@ -1008,7 +1008,7 @@ - saved_menu = new_menu; /* XXX lame stacking */ - new_menu = CreatePopupMenu(); - AppendMenu(saved_menu, MF_POPUP | MF_ENABLED, -- new_menu, specials[i].name); -+ (UINT_PTR)new_menu, specials[i].name); - break; - case TS_EXITMENU: - nesting--; -@@ -1039,7 +1039,7 @@ - if (new_menu) { - InsertMenu(popup_menus[j].menu, IDM_SHOWLOG, - MF_BYCOMMAND | MF_POPUP | MF_ENABLED, -- new_menu, "S&pecial Command"); -+ (UINT_PTR)new_menu, "S&pecial Command"); - InsertMenu(popup_menus[j].menu, IDM_SHOWLOG, - MF_BYCOMMAND | MF_SEPARATOR, IDM_SPECIALSEP, 0); - } -diff -ruN putty/windows/wingss.c putty.new/windows/wingss.c ---- putty/windows/wingss.c 2014-11-19 12:27:33.408335000 +0100 -+++ putty.new/windows/wingss.c 2014-11-19 12:42:57.128972300 +0100 -@@ -90,7 +90,7 @@ - if (ret == ERROR_SUCCESS && type == REG_SZ) { - buffer = snewn(size + 20, char); - ret = RegQueryValueEx(regkey, "InstallDir", NULL, -- &type, buffer, &size); -+ &type, (LPBYTE)buffer, &size); - if (ret == ERROR_SUCCESS && type == REG_SZ) { - strcat(buffer, "\\bin\\gssapi32.dll"); - module = LoadLibrary(buffer); -diff -ruN putty/windows/winhelp.c putty.new/windows/winhelp.c ---- putty/windows/winhelp.c 2014-11-19 13:05:38.160482800 +0100 -+++ putty.new/windows/winhelp.c 2014-11-19 12:36:01.276512800 +0100 -@@ -105,7 +105,7 @@ - #endif /* NO_HTMLHELP */ - if (help_path) { - char *cmd = dupprintf("JI(`',`%.*s')", colonpos, topic); -- WinHelp(hwnd, help_path, HELP_COMMAND, cmd); -+ WinHelp(hwnd, help_path, HELP_COMMAND, (LPARAM)cmd); - sfree(cmd); - } - } else { -diff -ruN putty/windows/winpgen.c putty.new/windows/winpgen.c ---- putty/windows/winpgen.c 2014-11-19 13:05:38.191677400 +0100 -+++ putty.new/windows/winpgen.c 2014-11-19 13:03:39.991112100 +0100 -@@ -302,7 +302,7 @@ - return 0; - case 101: - EnableWindow(hwnd, 0); -- DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, LicenceProc); -+ DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, (DLGPROC)LicenceProc); - EnableWindow(hwnd, 1); - SetActiveWindow(hwnd); - return 0; -@@ -678,7 +678,7 @@ - pps.comment = comment; - dlgret = DialogBoxParam(hinst, - MAKEINTRESOURCE(210), -- NULL, PassphraseProc, -+ NULL, (DLGPROC)PassphraseProc, - (LPARAM) &pps); - if (!dlgret) { - ret = -2; -@@ -846,7 +846,7 @@ - AppendMenu(menu1, MF_ENABLED, IDC_SAVE, "&Save private key"); - AppendMenu(menu1, MF_SEPARATOR, 0, 0); - AppendMenu(menu1, MF_ENABLED, IDC_QUIT, "E&xit"); -- AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, "&File"); -+ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR)menu1, "&File"); - state->filemenu = menu1; - - menu1 = CreateMenu(); -@@ -855,7 +855,7 @@ - AppendMenu(menu1, MF_ENABLED, IDC_KEYSSH1, "SSH-&1 key (RSA)"); - AppendMenu(menu1, MF_ENABLED, IDC_KEYSSH2RSA, "SSH-2 &RSA key"); - AppendMenu(menu1, MF_ENABLED, IDC_KEYSSH2DSA, "SSH-2 &DSA key"); -- AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, "&Key"); -+ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR)menu1, "&Key"); - state->keymenu = menu1; - - menu1 = CreateMenu(); -@@ -865,7 +865,7 @@ - "Export &OpenSSH key"); - AppendMenu(menu1, MF_ENABLED, IDC_EXPORT_SSHCOM, - "Export &ssh.com key"); -- AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, -+ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR)menu1, - "Con&versions"); - state->cvtmenu = menu1; - -@@ -873,7 +873,7 @@ - AppendMenu(menu1, MF_ENABLED, IDC_ABOUT, "&About"); - if (has_help()) - AppendMenu(menu1, MF_ENABLED, IDC_GIVEHELP, "&Help"); -- AppendMenu(menu, MF_POPUP | MF_ENABLED, menu1, "&Help"); -+ AppendMenu(menu, MF_POPUP | MF_ENABLED, (UINT_PTR)menu1, "&Help"); - - SetMenu(hwnd, menu); - } -@@ -1047,7 +1047,7 @@ - break; - case IDC_ABOUT: - EnableWindow(hwnd, 0); -- DialogBox(hinst, MAKEINTRESOURCE(213), hwnd, AboutProc); -+ DialogBox(hinst, MAKEINTRESOURCE(213), hwnd, (DLGPROC)AboutProc); - EnableWindow(hwnd, 1); - SetActiveWindow(hwnd); - return 0; -@@ -1452,7 +1452,7 @@ - } - - random_ref(); -- ret = DialogBox(hinst, MAKEINTRESOURCE(201), NULL, MainDlgProc) != IDOK; -+ ret = DialogBox(hinst, MAKEINTRESOURCE(201), NULL, (DLGPROC)MainDlgProc) != IDOK; - - cleanup_exit(ret); - return ret; /* just in case optimiser complains */ -diff -ruN putty/windows/winpgnt.c putty.new/windows/winpgnt.c ---- putty/windows/winpgnt.c 2014-11-19 13:05:38.191677400 +0100 -+++ putty.new/windows/winpgnt.c 2014-11-19 12:40:38.226534000 +0100 -@@ -218,7 +218,7 @@ - return 0; - case 101: - EnableWindow(hwnd, 0); -- DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, LicenceProc); -+ DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, (DLGPROC)LicenceProc); - EnableWindow(hwnd, 1); - SetActiveWindow(hwnd); - return 0; -@@ -539,7 +539,7 @@ - - original_pass = 1; - dlgret = DialogBoxParam(hinst, MAKEINTRESOURCE(210), -- NULL, PassphraseProc, (LPARAM) &pps); -+ NULL, (DLGPROC)PassphraseProc, (LPARAM) &pps); - passphrase_box = NULL; - if (!dlgret) { - if (comment) -@@ -1816,7 +1816,7 @@ - case IDM_VIEWKEYS: - if (!keylist) { - keylist = CreateDialog(hinst, MAKEINTRESOURCE(211), -- NULL, KeyListProc); -+ NULL, (DLGPROC)KeyListProc); - ShowWindow(keylist, SW_SHOWNORMAL); - } - /* -@@ -1841,7 +1841,7 @@ - case IDM_ABOUT: - if (!aboutbox) { - aboutbox = CreateDialog(hinst, MAKEINTRESOURCE(213), -- NULL, AboutProc); -+ NULL, (DLGPROC)AboutProc); - ShowWindow(aboutbox, SW_SHOWNORMAL); - /* - * Sometimes the window comes up minimised / hidden -diff -ruN putty/windows/winprint.c putty.new/windows/winprint.c ---- putty/windows/winprint.c 2014-11-19 12:27:33.423960900 +0100 -+++ putty.new/windows/winprint.c 2014-11-19 13:00:03.195945500 +0100 -@@ -30,7 +30,7 @@ - * we'll need for the output. Discard the return value since it - * will almost certainly be a failure due to lack of space. - */ -- EnumPrinters(param, NULL, level, (*buffer)+offset, 512, -+ EnumPrinters(param, NULL, level, (LPBYTE)((*buffer)+offset), 512, - &needed, &nprinters); - - if (needed < 512) -@@ -38,7 +38,7 @@ - - *buffer = sresize(*buffer, offset+needed, char); - -- if (EnumPrinters(param, NULL, level, (*buffer)+offset, -+ if (EnumPrinters(param, NULL, level, (LPBYTE)((*buffer)+offset), - needed, &needed, &nprinters) == 0) - return FALSE; - -@@ -139,7 +139,7 @@ - docinfo.pOutputFile = NULL; - docinfo.pDatatype = "RAW"; - -- if (!StartDocPrinter(ret->hprinter, 1, (LPSTR)&docinfo)) -+ if (!StartDocPrinter(ret->hprinter, 1, (LPBYTE)&docinfo)) - goto error; - jobstarted = 1; - -diff -ruN putty/windows/winstore.c putty.new/windows/winstore.c ---- putty/windows/winstore.c 2014-11-19 12:27:33.439585700 +0100 -+++ putty.new/windows/winstore.c 2014-11-19 12:52:08.474598400 +0100 -@@ -110,7 +110,7 @@ - void write_setting_s(void *handle, const char *key, const char *value) - { - if (handle) -- RegSetValueEx((HKEY) handle, key, 0, REG_SZ, value, -+ RegSetValueEx((HKEY) handle, key, 0, REG_SZ, (LPBYTE)value, - 1 + strlen(value)); - } - -@@ -168,7 +168,7 @@ - allocsize = size+1; /* allow for an extra NUL if needed */ - ret = snewn(allocsize, char); - if (RegQueryValueEx((HKEY) handle, key, 0, -- &type, ret, &size) != ERROR_SUCCESS || -+ &type, (LPBYTE)ret, &size) != ERROR_SUCCESS || - type != REG_SZ) { - sfree(ret); - return NULL; -@@ -372,7 +372,7 @@ - - readlen = len; - otherstr = snewn(len, char); -- ret = RegQueryValueEx(rkey, regname, NULL, &type, otherstr, &readlen); -+ ret = RegQueryValueEx(rkey, regname, NULL, &type, (LPBYTE)otherstr, &readlen); - - if (ret != ERROR_SUCCESS && ret != ERROR_MORE_DATA && - !strcmp(keytype, "rsa")) { -@@ -385,7 +385,7 @@ - char *oldstyle = snewn(len + 10, char); /* safety margin */ - readlen = len; - ret = RegQueryValueEx(rkey, justhost, NULL, &type, -- oldstyle, &readlen); -+ (LPBYTE)oldstyle, &readlen); - - if (ret == ERROR_SUCCESS && type == REG_SZ) { - /* -@@ -431,7 +431,7 @@ - * wrong, and hyper-cautiously do nothing. - */ - if (!strcmp(otherstr, key)) -- RegSetValueEx(rkey, regname, 0, REG_SZ, otherstr, -+ RegSetValueEx(rkey, regname, 0, REG_SZ, (LPBYTE)otherstr, - strlen(otherstr) + 1); - } - -@@ -466,7 +466,7 @@ - - if (RegCreateKey(HKEY_CURRENT_USER, PUTTY_REG_POS "\\SshHostKeys", - &rkey) == ERROR_SUCCESS) { -- RegSetValueEx(rkey, regname, 0, REG_SZ, key, strlen(key) + 1); -+ RegSetValueEx(rkey, regname, 0, REG_SZ, (LPBYTE)key, strlen(key) + 1); - RegCloseKey(rkey); - } /* else key does not exist in registry */ - -@@ -526,7 +526,7 @@ - if (RegOpenKey(HKEY_CURRENT_USER, PUTTY_REG_POS, &rkey) == - ERROR_SUCCESS) { - int ret = RegQueryValueEx(rkey, "RandSeedFile", -- 0, &type, seedpath, &size); -+ 0, &type, (LPBYTE)seedpath, (LPDWORD)&size); - if (ret != ERROR_SUCCESS || type != REG_SZ) - seedpath[0] = '\0'; - RegCloseKey(rkey); -@@ -662,7 +662,7 @@ - value_length = 200; - old_value = snewn(value_length, char); - ret = RegQueryValueEx(pjumplist_key, reg_jumplist_value, NULL, &type, -- old_value, &value_length); -+ (LPBYTE)old_value, (LPDWORD)&value_length); - /* When the passed buffer is too small, ERROR_MORE_DATA is - * returned and the required size is returned in the length - * argument. */ -@@ -670,7 +670,7 @@ - sfree(old_value); - old_value = snewn(value_length, char); - ret = RegQueryValueEx(pjumplist_key, reg_jumplist_value, NULL, &type, -- old_value, &value_length); -+ (LPBYTE)old_value, (LPDWORD)&value_length); - } - - if (ret == ERROR_FILE_NOT_FOUND) { -@@ -744,7 +744,7 @@ - - /* Save the new list to the registry. */ - ret = RegSetValueEx(pjumplist_key, reg_jumplist_value, 0, REG_MULTI_SZ, -- new_value, piterator_new - new_value); -+ (LPBYTE)new_value, piterator_new - new_value); - - sfree(old_value); - old_value = new_value; diff --git a/mingw-w64-putty/PKGBUILD b/mingw-w64-putty/PKGBUILD index a6da803ba8..c61d1d5c9d 100644 --- a/mingw-w64-putty/PKGBUILD +++ b/mingw-w64-putty/PKGBUILD @@ -5,44 +5,44 @@ # todo install docs _realname=putty -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -_base_ver=0.63 -pkgver=0.63.r10297 -pkgrel=4 +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=0.65.r4047.9a08d9a +pkgrel=1 pkgdesc="A free telnet/SSH client (mingw-w64)" arch=('any') url="http://www.chiark.greenend.org.uk/~sgtatham/putty/" license=('MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "subversion") + "git") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") optdepends=("${MINGW_PACKAGE_PREFIX}-putty-ssh: ssh wrapper for plink") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") -conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -source=("${_realname}"::"svn+svn://svn.tartarus.org/sgt/putty" +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}" + "${MINGW_PACKAGE_PREFIX}-${_realname}-svn") +source=("${_realname}"::"git://git.tartarus.org/simon/putty.git" '0001-fixes.patch' - '0002-casts.patch' '0003-linedraw.patch') md5sums=('SKIP' - '5b5065e5bd2b8421196c068d428bfb57' - '1e4f574c0a0c6dfc8ec676f93fa109e7' + 'ec85b09d672db924d3b9b910da8e6616' '2f7c232dd89a30cbe6e8b7dec329cda4') pkgver() { cd "${srcdir}"/${_realname} - local ver="$(svnversion)" - printf "%s.r%s" "${_base_ver}" "${ver//[[:alpha:]]}" + printf "%s.r%s.%s" "$(cat LATEST.VER)" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + # git describe --tags --abbrev=0 gives wrong results } prepare() { cd "${srcdir}"/${_realname} - patch -p0 -i "${srcdir}"/0001-fixes.patch - patch -p1 -i "${srcdir}"/0002-casts.patch + patch -p1 -i "${srcdir}"/0001-fixes.patch patch -p1 -i "${srcdir}"/0003-linedraw.patch + mkdir -p "${srcdir}"/${_realname}-build-${CARCH} + cp -r "${srcdir}"/${_realname}/* "${srcdir}"/${_realname}-build-${CARCH} } build() { - cd "${srcdir}"/${_realname} + cd "${srcdir}"/${_realname}-build-${CARCH} ./mkfiles.pl cd windows @@ -53,10 +53,10 @@ build() { } package() { - cd "${srcdir}"/${_realname}/windows + cd "${srcdir}"/${_realname}-build-${CARCH}/windows install -D -m644 ../LICENCE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE - for f in putty.exe puttygen.exe pageant.exe plink.exe pscp.exe psftp.exe puttytel.exe + for f in putty puttygen pageant plink pscp psftp puttytel do - install -D -m755 ${f} "${pkgdir}"/${MINGW_PREFIX}/bin/${f} + install -D -m755 ${f}.exe "${pkgdir}"/${MINGW_PREFIX}/bin/${f}.exe done } From bc958e5c4867262c07a92f06edc9534178a72fa0 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sun, 2 Aug 2015 21:44:10 +0200 Subject: [PATCH 1417/2060] sqlite3, sqlite-analyzer: Update to v3.8.11.1 --- mingw-w64-sqlite-analyzer/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-sqlite-analyzer/PKGBUILD b/mingw-w64-sqlite-analyzer/PKGBUILD index c6e6fe95d1..2b0c182642 100644 --- a/mingw-w64-sqlite-analyzer/PKGBUILD +++ b/mingw-w64-sqlite-analyzer/PKGBUILD @@ -2,7 +2,7 @@ _realname=sqlite-analyzer pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.8.11 +pkgver=3.8.11.1 pkgrel=1 pkgdesc="An analysis program SQLite database files (mingw-w64)" url="http://www.sqlite.org/" From 8cea2dbe2784f60179dc4c34b9db7570f7d0119d Mon Sep 17 00:00:00 2001 From: Qian Hong Date: Tue, 4 Aug 2015 02:31:38 +0800 Subject: [PATCH 1418/2060] xz-git: Fix git repository URL. --- mingw-w64-xz-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-xz-git/PKGBUILD b/mingw-w64-xz-git/PKGBUILD index 0b205afe60..0d31c249f8 100644 --- a/mingw-w64-xz-git/PKGBUILD +++ b/mingw-w64-xz-git/PKGBUILD @@ -19,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('staticlibs' 'strip') -source=("git+http://tukaani.org/xz.git") +source=("git+http://git.tukaani.org/xz.git") sha256sums=('SKIP') pkgver() { From 73d7bdd96ce2580fb2970fd8086573839464c483 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 3 Aug 2015 22:03:52 +0100 Subject: [PATCH 1419/2060] cmake-git: Refresh patches and begin qt5-static support Apply all patches with "git -am" Rewrite dont-install-bundle.patch as 0001-configure-Add-no-install-deps-option.patch Add line numbers to callstacks to aid debugging --- ...configure-Add-no-install-deps-option.patch | 42 ++++++++++++ ...e-response-files-for-MSYS-Generator.patch} | 20 +++++- ...Implement-Qt5-static-plugin-support.patch} | 66 +++++++++++++----- ...04-Output-line-numbers-in-callstacks.patch | 25 +++++++ mingw-w64-cmake-git/PKGBUILD | 68 ++++++++++++------- mingw-w64-cmake-git/dont-install-bundle.patch | 11 --- 6 files changed, 176 insertions(+), 56 deletions(-) create mode 100644 mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch rename mingw-w64-cmake-git/{disable-response-files-for-msys.patch => 0002-Disable-response-files-for-MSYS-Generator.patch} (58%) rename mingw-w64-cmake-git/{qt5-static-plugin-support.patch => 0003-Implement-Qt5-static-plugin-support.patch} (68%) create mode 100644 mingw-w64-cmake-git/0004-Output-line-numbers-in-callstacks.patch delete mode 100644 mingw-w64-cmake-git/dont-install-bundle.patch diff --git a/mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch b/mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch new file mode 100644 index 0000000000..4e1bf1f6ef --- /dev/null +++ b/mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch @@ -0,0 +1,42 @@ +From 582ca5c5f4c0983103c131fe485312b8dd10da08 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 3 Aug 2015 22:00:15 +0100 +Subject: [PATCH 1/4] configure: Add --no-install-deps option + +--- + bootstrap | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/bootstrap b/bootstrap +index d778bbe..549f26c 100755 +--- a/bootstrap ++++ b/bootstrap +@@ -642,6 +642,7 @@ cmake_verbose= + cmake_parallel_make= + cmake_ccache_enabled= + cmake_prefix_dir="${cmake_default_prefix}" ++cmake_no_install_deps= + while test $# != 0; do + case "$1" in + --prefix=*) dir=`cmake_arg "$1"` +@@ -653,6 +654,7 @@ while test $# != 0; do + --init=*) cmake_init_file=`cmake_arg "$1"` ;; + --system-libs) cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARIES=1" ;; + --no-system-libs) cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARIES=0" ;; ++ --no-install-deps) cmake_no_install_deps="1" ;; + --system-bzip2|--system-curl|--system-expat|--system-jsoncpp|--system-libarchive|--system-zlib) + lib=`cmake_arg "$1" "--system-"` + cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARY_`cmake_toupper $lib`=1" ;; +@@ -1738,6 +1740,9 @@ cmake_options="-DCMAKE_BOOTSTRAP=1" + if [ -n "${cmake_verbose}" ]; then + cmake_options="${cmake_options} -DCMAKE_VERBOSE_MAKEFILE=1" + fi ++if [ -n "${cmake_no_install_deps}" ]; then ++ cmake_options="${cmake_options} -DCMake_INSTALL_DEPENDENCIES=OFF -Wdev --debug-output --trace" ++fi + "${cmake_bootstrap_dir}/cmake" "${cmake_source_dir}" "-C${cmake_bootstrap_dir}/InitialCacheFlags.cmake" "-G${cmake_bootstrap_generator}" ${cmake_options} ${cmake_bootstrap_system_libs} "$@" + RES=$? + if [ "${RES}" -ne "0" ]; then +-- +2.5.0 + diff --git a/mingw-w64-cmake-git/disable-response-files-for-msys.patch b/mingw-w64-cmake-git/0002-Disable-response-files-for-MSYS-Generator.patch similarity index 58% rename from mingw-w64-cmake-git/disable-response-files-for-msys.patch rename to mingw-w64-cmake-git/0002-Disable-response-files-for-MSYS-Generator.patch index 1be3458a62..f5d110d156 100644 --- a/mingw-w64-cmake-git/disable-response-files-for-msys.patch +++ b/mingw-w64-cmake-git/0002-Disable-response-files-for-MSYS-Generator.patch @@ -1,6 +1,17 @@ ---- cmake-git/Modules/Platform/Windows-GNU.cmake.orig 2014-01-30 23:55:26.783200000 +0400 -+++ cmake-git/Modules/Platform/Windows-GNU.cmake 2014-01-31 00:03:27.411200000 +0400 -@@ -86,9 +86,11 @@ +From ca96e7af8a53d7bce9f254591076d3911d140dad Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Mon, 3 Aug 2015 22:00:16 +0100 +Subject: [PATCH 2/4] Disable response files for MSYS Generator + +--- + Modules/Platform/Windows-GNU.cmake | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/Modules/Platform/Windows-GNU.cmake b/Modules/Platform/Windows-GNU.cmake +index b97409c..154062b 100644 +--- a/Modules/Platform/Windows-GNU.cmake ++++ b/Modules/Platform/Windows-GNU.cmake +@@ -84,9 +84,11 @@ macro(__windows_compiler_gnu lang) set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "") set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "") @@ -15,3 +26,6 @@ # We prefer "@" for response files but it is not supported by gcc 3. execute_process(COMMAND ${CMAKE_${lang}_COMPILER} --version OUTPUT_VARIABLE _ver ERROR_VARIABLE _ver) +-- +2.5.0 + diff --git a/mingw-w64-cmake-git/qt5-static-plugin-support.patch b/mingw-w64-cmake-git/0003-Implement-Qt5-static-plugin-support.patch similarity index 68% rename from mingw-w64-cmake-git/qt5-static-plugin-support.patch rename to mingw-w64-cmake-git/0003-Implement-Qt5-static-plugin-support.patch index bb4c458773..1d78043dfb 100644 --- a/mingw-w64-cmake-git/qt5-static-plugin-support.patch +++ b/mingw-w64-cmake-git/0003-Implement-Qt5-static-plugin-support.patch @@ -1,7 +1,32 @@ -diff -urN cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx cmake-3.1.0/Source/cmGlobalGenerator.cxx ---- cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx 2015-01-03 16:49:13.831653600 +0000 -+++ cmake-3.1.0/Source/cmGlobalGenerator.cxx 2015-01-03 15:44:34.928951000 +0000 -@@ -1392,7 +1392,8 @@ +From f17a08807b8a359db84b4a42e281b409b823c1cf Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 3 Aug 2015 22:00:16 +0100 +Subject: [PATCH 3/4] Implement Qt5 static plugin support + +Enabled via a new target property "AUTOSTATICPLUGINS". + +At CMake execution time, a C++ file is created to link the +static plugins. For this to work, patches for Qt5-static +from [1] are necessary [2], [3] and [4] + +[1] https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-qt5-static +[2] 0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch +[3] 0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch +[4] 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch + +.. and also some more minor ones that aren't strictly related to Qt5 static +CMake but are necessary for this to work on MinGW-w64 (0040- for example). +--- + Source/cmGlobalGenerator.cxx | 3 +- + Source/cmQtAutoGenerators.cxx | 67 +++++++++++++++++++++++++++++++++++++++++-- + Source/cmTarget.cxx | 2 ++ + 3 files changed, 68 insertions(+), 4 deletions(-) + +diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx +index b437942..66a32ef 100644 +--- a/Source/cmGlobalGenerator.cxx ++++ b/Source/cmGlobalGenerator.cxx +@@ -1460,7 +1460,8 @@ void cmGlobalGenerator::CreateQtAutoGeneratorsTargets(AutogensType &autogens) { if((target.GetPropertyAsBool("AUTOMOC") || target.GetPropertyAsBool("AUTOUIC") @@ -11,10 +36,11 @@ diff -urN cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx cmake-3.1.0/Source/cmGlo && !target.IsImported()) { cmQtAutoGenerators autogen; -diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQtAutoGenerators.cxx ---- cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx 2015-01-03 16:49:13.862853600 +0000 -+++ cmake-3.1.0/Source/cmQtAutoGenerators.cxx 2015-01-03 17:03:44.895400500 +0000 -@@ -31,6 +31,7 @@ +diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx +index 1322dea..b399cc0 100644 +--- a/Source/cmQtAutoGenerators.cxx ++++ b/Source/cmQtAutoGenerators.cxx +@@ -35,6 +35,7 @@ #include #endif @@ -22,7 +48,7 @@ diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQt #include "cmQtAutoGenerators.h" -@@ -151,7 +152,7 @@ +@@ -155,7 +156,7 @@ cmQtAutoGenerators::cmQtAutoGenerators() static std::string getAutogenTargetName(cmTarget const* target) { std::string autogenTargetName = target->GetName(); @@ -31,7 +57,7 @@ diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQt return autogenTargetName; } -@@ -193,6 +194,7 @@ +@@ -315,6 +316,7 @@ bool cmQtAutoGenerators::InitializeAutogenTarget(cmLocalGenerator* lg, target->AddSource(mocCppFile); } @@ -39,7 +65,7 @@ diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQt // create a custom target for running generators at buildtime: std::string autogenTargetName = getAutogenTargetName(target); -@@ -230,7 +232,13 @@ +@@ -352,7 +354,13 @@ bool cmQtAutoGenerators::InitializeAutogenTarget(cmLocalGenerator* lg, { toolNames.push_back("rcc"); } @@ -54,7 +80,7 @@ diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQt std::string tools = toolNames[0]; toolNames.erase(toolNames.begin()); while (toolNames.size() > 1) -@@ -393,7 +401,9 @@ +@@ -563,7 +571,9 @@ void cmQtAutoGenerators::SetupAutoGenerateTarget(cmTarget const* target) if (target->GetPropertyAsBool("AUTOMOC") || target->GetPropertyAsBool("AUTOUIC") @@ -65,7 +91,7 @@ diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQt { this->SetupSourceFiles(target); } -@@ -554,6 +564,57 @@ +@@ -738,6 +748,57 @@ void cmQtAutoGenerators::SetupSourceFiles(cmTarget const* target) { const_cast(target)->AddSource(*fileIt); } @@ -123,10 +149,11 @@ diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQt } void cmQtAutoGenerators::SetupAutoMocTarget(cmTarget const* target, -diff -urN cmake-3.1.0.orig/Source/cmTarget.cxx cmake-3.1.0/Source/cmTarget.cxx ---- cmake-3.1.0.orig/Source/cmTarget.cxx 2015-01-03 16:49:13.862853600 +0000 -+++ cmake-3.1.0/Source/cmTarget.cxx 2015-01-03 15:44:35.006951100 +0000 -@@ -342,6 +342,7 @@ +diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx +index cf33791..04c3907 100644 +--- a/Source/cmTarget.cxx ++++ b/Source/cmTarget.cxx +@@ -328,6 +328,7 @@ void cmTarget::SetMakefile(cmMakefile* mf) this->SetPropertyDefault("AUTOMOC", 0); this->SetPropertyDefault("AUTOUIC", 0); this->SetPropertyDefault("AUTORCC", 0); @@ -134,7 +161,7 @@ diff -urN cmake-3.1.0.orig/Source/cmTarget.cxx cmake-3.1.0/Source/cmTarget.cxx this->SetPropertyDefault("AUTOMOC_MOC_OPTIONS", 0); this->SetPropertyDefault("AUTOUIC_OPTIONS", 0); this->SetPropertyDefault("AUTORCC_OPTIONS", 0); -@@ -1727,6 +1728,7 @@ +@@ -1681,6 +1682,7 @@ static bool whiteListedInterfaceProperty(const std::string& prop) builtIns.insert("IMPORTED"); builtIns.insert("NAME"); builtIns.insert("TYPE"); @@ -142,3 +169,6 @@ diff -urN cmake-3.1.0.orig/Source/cmTarget.cxx cmake-3.1.0/Source/cmTarget.cxx } if (builtIns.count(prop)) +-- +2.5.0 + diff --git a/mingw-w64-cmake-git/0004-Output-line-numbers-in-callstacks.patch b/mingw-w64-cmake-git/0004-Output-line-numbers-in-callstacks.patch new file mode 100644 index 0000000000..cba8549d73 --- /dev/null +++ b/mingw-w64-cmake-git/0004-Output-line-numbers-in-callstacks.patch @@ -0,0 +1,25 @@ +From ff1770d5bbe9e25aa174b99e8a3b95d8a5893977 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 3 Aug 2015 22:00:17 +0100 +Subject: [PATCH 4/4] Output line numbers in callstacks + +--- + Source/cmMakefile.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx +index 4bdc9d5..91ac920 100644 +--- a/Source/cmMakefile.cxx ++++ b/Source/cmMakefile.cxx +@@ -4393,7 +4393,7 @@ std::string cmMakefile::FormatListFileStack() const + cmState::Snapshot snp = this->StateSnapshot; + while (snp.IsValid()) + { +- listFiles.push_back(snp.GetExecutionListFile()); ++ listFiles.push_back(snp.GetExecutionListFile() + ":" + static_cast( &(std::ostringstream() << snp.GetEntryPointLine()) )->str()); + snp = snp.GetCallStackParent(); + } + std::reverse(listFiles.begin(), listFiles.end()); +-- +2.5.0 + diff --git a/mingw-w64-cmake-git/PKGBUILD b/mingw-w64-cmake-git/PKGBUILD index b8e7691bfc..304857be93 100644 --- a/mingw-w64-cmake-git/PKGBUILD +++ b/mingw-w64-cmake-git/PKGBUILD @@ -1,16 +1,17 @@ # Maintainer: Martell Malone +# Maintainer: Ray Donnelly _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r28590.6b5e94b +pkgver=r29042.7ac2b12 pkgrel=1 -pkgdesc="A cross-platform open-source make system (mingw-w64)." +pkgdesc="A cross-platform open-source make system (mingw-w64)" arch=('any') url="http://www.cmake.org/" license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-qt5" + "${MINGW_PACKAGE_PREFIX}-qt5-static" "git") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -21,16 +22,17 @@ depends=("${MINGW_PACKAGE_PREFIX}-winpthreads" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-zlib") -optdepends=("${MINGW_PACKAGE_PREFIX}-qt5: CMake Qt GUI") -options=('staticlibs' 'strip') +options=('staticlibs' '!strip' 'debug') source=("${_realname}"::"git+http://cmake.org/cmake.git" - 'disable-response-files-for-msys.patch' - 'dont-install-bundle.patch' - 'qt5-static-plugin-support.patch') + '0001-configure-Add-no-install-deps-option.patch' + '0002-Disable-response-files-for-MSYS-Generator.patch' + '0003-Implement-Qt5-static-plugin-support.patch' + '0004-Output-line-numbers-in-callstacks.patch') md5sums=('SKIP' - 'ca6d81118ca62af63ee7a30dd169a879' - 'fb33ace70ba863159b2c7964a9661e1e' - '6461b89ff7d1ca0c4022801dff8475a7') + '6e291ea96695f41dd7c31cfabd07c7fd' + 'f7cc0ec22619e9137c18e1d3c6ed684b' + '9b285fcf243bc6c50b341c5f09f1adc9' + '8c3b4e9986c3b4bc0a1a2251b13b1114') pkgver() { cd "$srcdir/$_realname" @@ -39,30 +41,48 @@ pkgver() { prepare() { cd ${_realname} - patch -Np1 -i ${srcdir}/disable-response-files-for-msys.patch - patch -Np1 -i ${srcdir}/dont-install-bundle.patch - patch -Np1 -i ${srcdir}/qt5-static-plugin-support.patch + git am "${srcdir}"/0001-configure-Add-no-install-deps-option.patch + git am "${srcdir}"/0002-Disable-response-files-for-MSYS-Generator.patch + git am "${srcdir}"/0003-Implement-Qt5-static-plugin-support.patch + git am "${srcdir}"/0004-Output-line-numbers-in-callstacks.patch } build() { mkdir -p "${srcdir}/build-${CARCH}" cd "${srcdir}/build-${CARCH}" - MSYSTEM=MINGW "${srcdir}"/${_realname}/configure \ - --prefix=${MINGW_PREFIX} \ - --system-libs \ - --no-system-expat \ - --qt-gui \ - --parallel=3 \ - --mandir=share \ - --docdir=share/doc/cmake +# Not working yet .. +# PATH=${MINGW_PREFIX}/qt5-static/bin:$PATH \ + + MSYSTEM=MINGW "${srcdir}"/${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --system-libs \ + --no-system-expat \ + --no-install-deps \ + --qt-gui \ + --qt-qmake=$(cygpath -m ${MINGW_PREFIX})/qt5-static/bin/qmake.exe \ + --no-qt-gui \ + --parallel=${NUMBER_OF_PROCESSORS} \ + --mandir=share \ + --docdir=share/doc/cmake plain "Start building..." - make + make VERBOSE=1 } package() { cd "${srcdir}/build-${CARCH}" ./bin/cmake.exe -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} -P cmake_install.cmake - rm "${pkgdir}${MINGW_PREFIX}/cmake.org.html" } + +# .. qt5-static stuff .. +# E:/m2/repo/mingw-w64-cmake-git/src/cmake/Source/QtDialog/CMakeLists.txt(159): target_link_libraries(cmake-gui CMakeLib ${QT_QTMAIN_LIBRARY} ${CMake_QT_LIBRARIES} ) +# /E/m2/repo/mingw-w64-cmake-git/src/build-x86_64/Bootstrap.cmk/cmake.exe -E cmake_depends "MSYS Makefiles" /E/m2/repo/mingw-w64-cmake-git/src/cmake /E/m2/repo/mingw-w64-cmake-git/src/cmake/Source/QtDialog /E/m2/repo/mingw-w64-cmake-git/src/build-x86_64 /E/m2/repo/mingw-w64-cmake-git/src/build-x86_64/Source/QtDialog /E/m2/repo/mingw-w64-cmake-git/src/build-x86_64/Source/QtDialog/CMakeFiles/cmake-gui.dir/DependInfo.cmake --color= +# make -f Source/QtDialog/CMakeFiles/cmake-gui.dir/build.make Source/QtDialog/CMakeFiles/cmake-gui.dir/build +# cd /E/m2/repo/mingw-w64-cmake-git/src/build-x86_64/Source/QtDialog && /E/msys64t/mingw64/bin/g++.exe -march=x86-64 -mtune=generic -O2 -pipe -Wnon-virtual-dtor -Wcast-align -Wchar-subscripts -Wall -W -Wshadow -Wpointer-arith -Wformat-security -Wundef -fPIC -pipe -mwindows -Wl,--whole-archive CMakeFiles/cmake-gui.dir/objects.a -Wl,--no-whole-archive -o ../../bin/cmake-gui.exe -Wl,--out-implib,../../bin/libcmake-gui.dll.a -Wl,--major-image-version,0,--minor-image-version,0 ../libCMakeLib.a /E/msys64t/mingw64/qt5-static/lib/libqtmain.a /E/msys64t/mingw64/qt5-static/lib/libQt5Widgets.a ../kwsys/libcmsys.a -lPsapi ../../Utilities/cmexpat/libcmexpat.a /E/msys64t/mingw64/lib/libz.dll.a /E/msys64t/mingw64/lib/libarchive.dll.a ../../Utilities/cmcompress/libcmcompress.a /E/msys64t/mingw64/lib/libcurl.dll.a /E/msys64t/mingw64/lib/libjsoncpp.a -lrpcrt4 /E/msys64t/mingw64/qt5-static/lib/libQt5Gui.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqdds.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqicns.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqico.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqjp2.a -ljasper /E/msys64t/mingw64/qt5-static/share/qt5/plugins/platforms/libqminimal.a -lQt5PlatformSupport -lQt5DBus -lnetapi32 -lqtfreetype /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqmng.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/platforms/libqoffscreen.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtga.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtiff.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/generic/libqtuiotouchplugin.a -lQt5Network -ldnsapi -lssl -lcrypto -lcrypt32 /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwbmp.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwebp.a -lwebp /E/msys64t/mingw64/qt5-static/share/qt5/plugins/platforms/libqwindows.a -lwinspool -lshlwapi -lQt5PlatformSupport -lQt5DBus -lnetapi32 -lqtfreetype /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqmng.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/platforms/libqoffscreen.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtga.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtiff.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/generic/libqtuiotouchplugin.a -lQt5Network -ldnsapi -lssl -lcrypto -lcrypt32 /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwbmp.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwebp.a -lwebp /E/msys64t/mingw64/qt5-static/share/qt5/plugins/platforms/libqwindows.a -lwinspool -lshlwapi /E/msys64t/mingw64/qt5-static/lib/libQt5Core.a -lws2_32 -static -L$[QT_INSTALL_LIBS] -lQt5Gui -lcomdlg32 -loleaut32 -limm32 -lwinmm -lglu32 -lopengl32 -lgdi32 -lqtharfbuzzng -lQt5Core -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lmpr -lqtpcre -lshell32 -luser32 -lkernel32 -lmpr -lqtpcre -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 +# [ 63%] Linking CXX executable ../../bin/cmake-gui.exe +# cd /E/m2/repo/mingw-w64-cmake-git/src/build-x86_64/Source/QtDialog && /E/m2/repo/mingw-w64-cmake-git/src/build-x86_64/Bootstrap.cmk/cmake.exe -E remove -f CMakeFiles/cmake-gui.dir/objects.a +# cd /E/m2/repo/mingw-w64-cmake-git/src/build-x86_64/Source/QtDialog && /E/msys64t/mingw64/bin/ar.exe cr CMakeFiles/cmake-gui.dir/objects.a "CMakeFiles/cmake-gui.dir/AddCacheEntry.cxx.obj" "CMakeFiles/cmake-gui.dir/CMakeSetup.cxx.obj" "CMakeFiles/cmake-gui.dir/CMakeSetupDialog.cxx.obj" "CMakeFiles/cmake-gui.dir/FirstConfigure.cxx.obj" "CMakeFiles/cmake-gui.dir/QCMake.cxx.obj" "CMakeFiles/cmake-gui.dir/QCMakeCacheView.cxx.obj" "CMakeFiles/cmake-gui.dir/QCMakeWidgets.cxx.obj" "CMakeFiles/cmake-gui.dir/moc_AddCacheEntry.cpp.obj" "CMakeFiles/cmake-gui.dir/moc_Compilers.cpp.obj" "CMakeFiles/cmake-gui.dir/moc_CMakeSetupDialog.cpp.obj" "CMakeFiles/cmake-gui.dir/moc_FirstConfigure.cpp.obj" "CMakeFiles/cmake-gui.dir/moc_QCMake.cpp.obj" "CMakeFiles/cmake-gui.dir/moc_QCMakeCacheView.cpp.obj" "CMakeFiles/cmake-gui.dir/moc_QCMakeWidgets.cpp.obj" "CMakeFiles/cmake-gui.dir/qrc_CMakeSetup.cpp.obj" "CMakeFiles/cmake-gui.dir/CMakeSetup.rc.obj" +# cd /E/m2/repo/mingw-w64-cmake-git/src/build-x86_64/Source/QtDialog && /E/msys64t/mingw64/bin/g++.exe -march=x86-64 -mtune=generic -O2 -pipe -Wnon-virtual-dtor -Wcast-align -Wchar-subscripts -Wall -W -Wshadow -Wpointer-arith -Wformat-security -Wundef -fPIC -pipe -mwindows -Wl,--whole-archive CMakeFiles/cmake-gui.dir/objects.a -Wl,--no-whole-archive -o ../../bin/cmake-gui.exe -Wl,--out-implib,../../bin/libcmake-gui.dll.a -Wl,--major-image-version,0,--minor-image-version,0 ../libCMakeLib.a /E/msys64t/mingw64/qt5-static/lib/libqtmain.a /E/msys64t/mingw64/qt5-static/lib/libQt5Widgets.a ../kwsys/libcmsys.a -lPsapi ../../Utilities/cmexpat/libcmexpat.a /E/msys64t/mingw64/lib/libz.dll.a /E/msys64t/mingw64/lib/libarchive.dll.a ../../Utilities/cmcompress/libcmcompress.a /E/msys64t/mingw64/lib/libcurl.dll.a /E/msys64t/mingw64/lib/libjsoncpp.a -lrpcrt4 /E/msys64t/mingw64/qt5-static/lib/libQt5Gui.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqdds.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqicns.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqico.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqjp2.a -ljasper /E/msys64t/mingw64/qt5-static/share/qt5/plugins/platforms/libqminimal.a -lQt5PlatformSupport -lQt5DBus -lnetapi32 -lqtfreetype /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqmng.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/platforms/libqoffscreen.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtga.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtiff.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/generic/libqtuiotouchplugin.a -lQt5Network -ldnsapi -lssl -lcrypto -lcrypt32 /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwbmp.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwebp.a -lwebp /E/msys64t/mingw64/qt5-static/share/qt5/plugins/platforms/libqwindows.a -lwinspool -lshlwapi -lQt5PlatformSupport -lQt5DBus -lnetapi32 -lqtfreetype /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqmng.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/platforms/libqoffscreen.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtga.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtiff.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/generic/libqtuiotouchplugin.a -lQt5Network -ldnsapi -lssl -lcrypto -lcrypt32 /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwbmp.a /E/msys64t/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwebp.a -lwebp /E/msys64t/mingw64/qt5-static/share/qt5/plugins/platforms/libqwindows.a -lwinspool -lshlwapi /E/msys64t/mingw64/qt5-static/lib/libQt5Core.a -lws2_32 -static -L$[QT_INSTALL_LIBS] -lQt5Gui -lcomdlg32 -loleaut32 -limm32 -lwinmm -lglu32 -lopengl32 -lgdi32 -lqtharfbuzzng -lQt5Core -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lmpr -lqtpcre -lshell32 -luser32 -lkernel32 -lmpr -lqtpcre -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 +# +# -L$[QT_INSTALL_LIBS] seems to be missing something. diff --git a/mingw-w64-cmake-git/dont-install-bundle.patch b/mingw-w64-cmake-git/dont-install-bundle.patch deleted file mode 100644 index 541e74c617..0000000000 --- a/mingw-w64-cmake-git/dont-install-bundle.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- cmake-2.8.12.2/Source/QtDialog/CMakeLists.txt.orig 2014-04-24 10:45:16.178600000 +0400 -+++ cmake-2.8.12.2/Source/QtDialog/CMakeLists.txt 2014-04-24 10:45:23.198600000 +0400 -@@ -140,7 +140,7 @@ - WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin)") - endif() - --if(APPLE OR WIN32) -+if(APPLE OR WIN32 AND NOT MINGW) - # install rules for including 3rd party libs such as Qt - # if a system Qt is used (e.g. installed in /usr/lib/), it will not be included in the installation - set(fixup_exe "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin/cmake-gui${CMAKE_EXECUTABLE_SUFFIX}") From 3ac44501e552702009b0dc8eb29048bc79226341 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 4 Aug 2015 00:32:11 +0100 Subject: [PATCH 1420/2060] gpgme: Add a patch to prevent removing tmpfiles --- mingw-w64-gpgme/PKGBUILD | 27 ++++++++++------- .../debugging-dont-DeleteFileA-tmpfiles.patch | 29 +++++++++++++++++++ 2 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 mingw-w64-gpgme/debugging-dont-DeleteFileA-tmpfiles.patch diff --git a/mingw-w64-gpgme/PKGBUILD b/mingw-w64-gpgme/PKGBUILD index 030d510ac0..d5c0fd1285 100644 --- a/mingw-w64-gpgme/PKGBUILD +++ b/mingw-w64-gpgme/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly _realname=gpgme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.5.5 -pkgrel=3 +pkgrel=4 pkgdesc="A C wrapper library for GnuPG (mingw-w64)" arch=('any') url="http://www.gnupg.org/related_software/gpgme/" @@ -14,28 +15,32 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libgpg-error" "${MINGW_PACKAGE_PREFIX}-npth" ) -options=('!emptydirs') +options=('!emptydirs') # '!strip' 'debug') source=(ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2{,.sig} gpgme-1.5.4-mingw-mkstemp.patch - gpgme-find-gnupg.patch) + gpgme-find-gnupg.patch + debugging-dont-DeleteFileA-tmpfiles.patch) sha1sums=('88476d72cb099e179de4040760502886f7a54926' 'SKIP' '8c7d7648772c29620b7fd23e867f60386ba92790' '6dbd6f52c918facbe8fee5c5521ebad724ec9653') prepare() { - cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/gpgme-1.5.4-mingw-mkstemp.patch - patch -p1 -i ${srcdir}/gpgme-find-gnupg.patch + cd "${srcdir}"/${_realname}-${pkgver} + patch -p1 -i "${srcdir}"/gpgme-1.5.4-mingw-mkstemp.patch + patch -p1 -i "${srcdir}"/gpgme-find-gnupg.patch + if check_option "debug" "y"; then + patch -p1 -i "${srcdir}"/debugging-dont-DeleteFileA-tmpfiles.patch + fi autoreconf -ivf } build() { - [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + [[ -d "${srcdir}"/build-${MINGW_CHOST} ]] && rm -rf "${srcdir}"/build-${MINGW_CHOST} + mkdir -p "${srcdir}"/build-${MINGW_CHOST} && cd "${srcdir}"/build-${MINGW_CHOST} - ../${_realname}-${pkgver}/configure \ + "${srcdir}"/${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -50,11 +55,11 @@ build() { } check() { - cd "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}"/build-${MINGW_CHOST} #make check } package() { - cd "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}"/build-${MINGW_CHOST} make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-gpgme/debugging-dont-DeleteFileA-tmpfiles.patch b/mingw-w64-gpgme/debugging-dont-DeleteFileA-tmpfiles.patch new file mode 100644 index 0000000000..6fa00a4991 --- /dev/null +++ b/mingw-w64-gpgme/debugging-dont-DeleteFileA-tmpfiles.patch @@ -0,0 +1,29 @@ +--- gpgme-1.5.5/src/w32-io.c.orig 2014-07-30 10:40:16.000000000 +0100 ++++ gpgme-1.5.5/src/w32-io.c 2015-08-04 00:27:52.274897800 +0100 +@@ -1587,7 +1587,7 @@ + if (!arg_string) + { + close (tmp_fd); +- DeleteFileA (tmp_name); ++/* DeleteFileA (tmp_name); */ + return TRACE_SYSRES (-1); + } + +@@ -1617,7 +1617,7 @@ + TRACE_LOG1 ("CreateProcess failed: ec=%d", (int) GetLastError ()); + free (arg_string); + close (tmp_fd); +- DeleteFileA (tmp_name); ++/* DeleteFileA (tmp_name); */ + + /* FIXME: Should translate the error code. */ + gpg_err_set_errno (EIO); +@@ -1652,7 +1652,7 @@ + CloseHandle (pi.hProcess); + + close (tmp_fd); +- DeleteFileA (tmp_name); ++/* DeleteFileA (tmp_name); */ + + /* FIXME: Should translate the error code. */ + gpg_err_set_errno (EIO); From 21f0fcca5179f16edfdd3d5b192143d744b20aa6 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 4 Aug 2015 00:36:31 +0100 Subject: [PATCH 1421/2060] gpgme: updpkgsums --- mingw-w64-gpgme/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-gpgme/PKGBUILD b/mingw-w64-gpgme/PKGBUILD index d5c0fd1285..555b9328e0 100644 --- a/mingw-w64-gpgme/PKGBUILD +++ b/mingw-w64-gpgme/PKGBUILD @@ -23,7 +23,8 @@ source=(ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2{, sha1sums=('88476d72cb099e179de4040760502886f7a54926' 'SKIP' '8c7d7648772c29620b7fd23e867f60386ba92790' - '6dbd6f52c918facbe8fee5c5521ebad724ec9653') + '6dbd6f52c918facbe8fee5c5521ebad724ec9653' + '305408eb39c03d72aab15029f85bd8d629b87a2c') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From b0b6a300644183fc7b8ceaf7465551ae8f285d04 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 4 Aug 2015 00:37:40 +0100 Subject: [PATCH 1422/2060] KF5: Update versions to 5.12 --- mingw-w64-attica-qt5/PKGBUILD | 26 ++++++++++---------------- mingw-w64-karchive-qt5/PKGBUILD | 6 +++--- mingw-w64-kcodecs-qt5/PKGBUILD | 4 ++-- mingw-w64-kconfig-qt5/PKGBUILD | 8 ++++---- mingw-w64-kcoreaddons-qt5/PKGBUILD | 4 ++-- mingw-w64-kdbusaddons-qt5/PKGBUILD | 4 ++-- mingw-w64-kglobalaccel-qt5/PKGBUILD | 4 ++-- mingw-w64-kguiaddons-qt5/PKGBUILD | 4 ++-- mingw-w64-ki18n-qt5/PKGBUILD | 4 ++-- mingw-w64-kidletime-qt5/PKGBUILD | 4 ++-- mingw-w64-kimageformats-qt5/PKGBUILD | 4 ++-- mingw-w64-kitemmodels-qt5/PKGBUILD | 4 ++-- mingw-w64-kitemviews-qt5/PKGBUILD | 4 ++-- mingw-w64-kjs-qt5/PKGBUILD | 4 ++-- mingw-w64-kplotting-qt5/PKGBUILD | 4 ++-- mingw-w64-kwidgetsaddons-qt5/PKGBUILD | 4 ++-- mingw-w64-kwindowsystem-qt5/PKGBUILD | 4 ++-- mingw-w64-solid-qt5/PKGBUILD | 4 ++-- 18 files changed, 47 insertions(+), 53 deletions(-) diff --git a/mingw-w64-attica-qt5/PKGBUILD b/mingw-w64-attica-qt5/PKGBUILD index 9572f925e4..a54b9498d0 100644 --- a/mingw-w64-attica-qt5/PKGBUILD +++ b/mingw-w64-attica-qt5/PKGBUILD @@ -4,26 +4,20 @@ _variant=-static #_variant=-shared - -if [ "${_variant}" = "-static" ]; then - _namesuff="-static" -else - _namesuff= -fi - -_realname=attica-qt5${_namesuff} -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.3.0 +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "attica" +pkgver=5.12.0 pkgrel=1 arch=('any') -url='https://projects.kde.org/projects/kdesupport/attica' +url='https://projects.kde.org/projects/kdesupport/${_basename}' pkgdesc="A Qt5 library that implements the Open Collaboration Services API (mingw-w64-qt5${_namesuff})" license=('LGPL') -depends=("${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}") makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver}/attica-${pkgver}.tar.xz") -md5sums=('194b9a2141a2a4e23f2bc6dde92178f5') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('f12d5f866690b0954dfaa963e971eb27') prepare() { mkdir -p build-${CARCH}${_variant} @@ -33,14 +27,14 @@ build() { local -a extra_config cd build-${CARCH}${_variant} if [ "${_variant}" = "-static" ]; then - extra_config+=("-DATTICA_STATIC_BUILD=NO") + extra_config+=( -DATTICA_STATIC_BUILD=YES ) QT5_PREFIX=${MINGW_PREFIX}/qt5-static export PATH=${QT5_PREFIX}/bin:"$PATH" else QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../attica-${pkgver} \ + cmake ../${_basename}-${pkgver} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ -DLIB_INSTALL_DIR=lib \ diff --git a/mingw-w64-karchive-qt5/PKGBUILD b/mingw-w64-karchive-qt5/PKGBUILD index 437f2245b8..aa99305cee 100644 --- a/mingw-w64-karchive-qt5/PKGBUILD +++ b/mingw-w64-karchive-qt5/PKGBUILD @@ -6,7 +6,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "karchive" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -17,7 +17,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('ff95f95a2fa8722c8e2f7f5035625348') +md5sums=('024f3f34236bd64823a5350ef8670557') prepare() { mkdir -p build-${CARCH}${_variant} @@ -42,7 +42,7 @@ build() { -DBUILD_TESTING=OFF \ -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ - -G'MSYS Makefiles' --debug-output + -G'MSYS Makefiles' --debug-output --trace make } diff --git a/mingw-w64-kcodecs-qt5/PKGBUILD b/mingw-w64-kcodecs-qt5/PKGBUILD index 0bf9b62d7d..5b8d268f32 100644 --- a/mingw-w64-kcodecs-qt5/PKGBUILD +++ b/mingw-w64-kcodecs-qt5/PKGBUILD @@ -6,7 +6,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kcodecs" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -17,7 +17,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('052cf9d58968162a50b36c0f67e5470b') +md5sums=('7130e5d439afcfd0f558957a2ff33ee3') prepare() { mkdir -p build-${CARCH}${_variant} diff --git a/mingw-w64-kconfig-qt5/PKGBUILD b/mingw-w64-kconfig-qt5/PKGBUILD index f4e9b58863..e33b135508 100644 --- a/mingw-w64-kconfig-qt5/PKGBUILD +++ b/mingw-w64-kconfig-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kconfig" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('ef541258af67ea5b0612fa7ec345c639') +md5sums=('826d84426eb7cf9f2bccd49aca694f96') prepare() { mkdir -p build-${CARCH}${_variant} @@ -41,8 +41,8 @@ build() { -DBUILD_TESTING=OFF \ -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ - -G'MSYS Makefiles' - make + -G'MSYS Makefiles' --trace --debug-output + make VERBOSE=1 } package() { diff --git a/mingw-w64-kcoreaddons-qt5/PKGBUILD b/mingw-w64-kcoreaddons-qt5/PKGBUILD index f10b07e27a..d20c89b089 100644 --- a/mingw-w64-kcoreaddons-qt5/PKGBUILD +++ b/mingw-w64-kcoreaddons-qt5/PKGBUILD @@ -6,7 +6,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kcoreaddons" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -17,7 +17,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('b1933db1246ccf28654c4eea2d399381') +md5sums=('65975642ab8272601df81b738da01e7d') prepare() { mkdir -p build-${CARCH}${_variant} diff --git a/mingw-w64-kdbusaddons-qt5/PKGBUILD b/mingw-w64-kdbusaddons-qt5/PKGBUILD index 6fccd5c8ee..3174f3578a 100644 --- a/mingw-w64-kdbusaddons-qt5/PKGBUILD +++ b/mingw-w64-kdbusaddons-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kdbusaddons" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('5f66eb9602c28631765551bd09e298d0') +md5sums=('d7eb58d52123a90f90533bf6691a3f40') prepare() { mkdir -p build-${CARCH}${_variant} diff --git a/mingw-w64-kglobalaccel-qt5/PKGBUILD b/mingw-w64-kglobalaccel-qt5/PKGBUILD index 15f60ba9db..5b9ba6c8c0 100644 --- a/mingw-w64-kglobalaccel-qt5/PKGBUILD +++ b/mingw-w64-kglobalaccel-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kglobalaccel" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -16,7 +16,7 @@ depends=() groups=('kf5') # install=${pkgname}.install source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('6324dff31269befafe0617eb62ca2ea8') +md5sums=('93b2302fa2587bec638c3e619fac1bd5') prepare() { mkdir -p build-${CARCH}${_variant} diff --git a/mingw-w64-kguiaddons-qt5/PKGBUILD b/mingw-w64-kguiaddons-qt5/PKGBUILD index 3c3c089828..72b8ed90dc 100644 --- a/mingw-w64-kguiaddons-qt5/PKGBUILD +++ b/mingw-w64-kguiaddons-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kguiaddons" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('f17d5d5cf549dff122185cfcef100d6a') +md5sums=('154b8c8a475a18ef1936e53f91ca5dff') prepare() { mkdir -p build-${CARCH}${_variant} diff --git a/mingw-w64-ki18n-qt5/PKGBUILD b/mingw-w64-ki18n-qt5/PKGBUILD index 2bf97e9bdc..5b0fffa146 100644 --- a/mingw-w64-ki18n-qt5/PKGBUILD +++ b/mingw-w64-ki18n-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "ki18n" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -16,7 +16,7 @@ _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${M groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz" "build-ktranscript-plugin-statically-if-not-shared.patch") -md5sums=('646a1dc1c41831de3cadbc8975df71fe' +md5sums=('146da9ecae1e489d462309092011edd2' 'ee7e57cc7ff1be80a28d5316f9665555') prepare() { diff --git a/mingw-w64-kidletime-qt5/PKGBUILD b/mingw-w64-kidletime-qt5/PKGBUILD index bbaab6e431..5b1c8db490 100644 --- a/mingw-w64-kidletime-qt5/PKGBUILD +++ b/mingw-w64-kidletime-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kidletime" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('f163c6d5c58743faa16217ded48b99aa') +md5sums=('f87b44e5acd0c3a0ec891450a11f6c2b') prepare() { cd "${srcdir}"/${_basename}-${pkgver} diff --git a/mingw-w64-kimageformats-qt5/PKGBUILD b/mingw-w64-kimageformats-qt5/PKGBUILD index 48308becb2..7034ef831f 100644 --- a/mingw-w64-kimageformats-qt5/PKGBUILD +++ b/mingw-w64-kimageformats-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kimageformats" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('141a157144456a338962d4e61e9b0ca5') +md5sums=('36e1a6fc39c73670b744429a1b3ef288') prepare() { cd "${srcdir}"/${_basename}-${pkgver} diff --git a/mingw-w64-kitemmodels-qt5/PKGBUILD b/mingw-w64-kitemmodels-qt5/PKGBUILD index c0c573c354..c8102cfa96 100644 --- a/mingw-w64-kitemmodels-qt5/PKGBUILD +++ b/mingw-w64-kitemmodels-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kitemmodels" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('55b919eeed06caffe26aea681940659f') +md5sums=('ce9f3e3adefc17848c51f06e96572947') prepare() { cd "${srcdir}"/${_basename}-${pkgver} diff --git a/mingw-w64-kitemviews-qt5/PKGBUILD b/mingw-w64-kitemviews-qt5/PKGBUILD index ef95a0aa41..66d3fad7f1 100644 --- a/mingw-w64-kitemviews-qt5/PKGBUILD +++ b/mingw-w64-kitemviews-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kitemviews" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('dd948e8fc2b8540f29eacd78f3f8cd37') +md5sums=('172fcd531af0df4329eaf35b91c7123d') prepare() { cd "${srcdir}"/${_basename}-${pkgver} diff --git a/mingw-w64-kjs-qt5/PKGBUILD b/mingw-w64-kjs-qt5/PKGBUILD index 2ac154c420..b34298f588 100644 --- a/mingw-w64-kjs-qt5/PKGBUILD +++ b/mingw-w64-kjs-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kjs" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/portingAids/${_basename}-${pkgver}.tar.xz") -md5sums=('73a68d2d8a875998ed86874afbc7111c') +md5sums=('988bff4927d2230d8a98f2b9597cfd05') prepare() { cd "${srcdir}"/${_basename}-${pkgver} diff --git a/mingw-w64-kplotting-qt5/PKGBUILD b/mingw-w64-kplotting-qt5/PKGBUILD index c4a5c5bbd0..15fd6feb59 100644 --- a/mingw-w64-kplotting-qt5/PKGBUILD +++ b/mingw-w64-kplotting-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kplotting" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('acdbdd2d2c0cc02bd391943f8ed084b2') +md5sums=('9b2a7286c3576155037e2c1d7dc2dd0c') prepare() { cd "${srcdir}"/${_basename}-${pkgver} diff --git a/mingw-w64-kwidgetsaddons-qt5/PKGBUILD b/mingw-w64-kwidgetsaddons-qt5/PKGBUILD index 0ccec396a4..00e9edf471 100644 --- a/mingw-w64-kwidgetsaddons-qt5/PKGBUILD +++ b/mingw-w64-kwidgetsaddons-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kwidgetsaddons" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('d645a26d8601d6e539c1cc7186bd649d') +md5sums=('c65b4f7bac1fcd3fc599d203ab7f15a0') prepare() { cd "${srcdir}"/${_basename}-${pkgver} diff --git a/mingw-w64-kwindowsystem-qt5/PKGBUILD b/mingw-w64-kwindowsystem-qt5/PKGBUILD index d4392c9ffc..4ddbff7e9f 100644 --- a/mingw-w64-kwindowsystem-qt5/PKGBUILD +++ b/mingw-w64-kwindowsystem-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kwindowsystem" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('5945d3ad27cc11b71bd7b97283844f45') +md5sums=('001095e87ba8a52932f780bb043429d5') prepare() { cd "${srcdir}"/${_basename}-${pkgver} diff --git a/mingw-w64-solid-qt5/PKGBUILD b/mingw-w64-solid-qt5/PKGBUILD index 455a9af6ed..444f99ae92 100644 --- a/mingw-w64-solid-qt5/PKGBUILD +++ b/mingw-w64-solid-qt5/PKGBUILD @@ -4,7 +4,7 @@ _variant=-static #_variant=-shared source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "solid" -pkgver=5.5.0 +pkgver=5.12.0 pkgrel=1 arch=('any') url=('https://projects.kde.org/projects/frameworks/${_basename}') @@ -15,7 +15,7 @@ depends=() _kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" groups=('kf5') source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") -md5sums=('eded819be81335dfb31218d7eb3ec24a') +md5sums=('534592c079fb90cfe8734f91d90c8fbd') prepare() { cd "${srcdir}"/${_basename}-${pkgver} From 60fcbf2259a0199df19f5797c31f9ecc6d2627bc Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Tue, 4 Aug 2015 15:22:38 +0200 Subject: [PATCH 1423/2060] Add a package for the "repo" multiple Git repository tool --- mingw-w64-git-repo/PKGBUILD | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 mingw-w64-git-repo/PKGBUILD diff --git a/mingw-w64-git-repo/PKGBUILD b/mingw-w64-git-repo/PKGBUILD new file mode 100644 index 0000000000..0d40e57bd7 --- /dev/null +++ b/mingw-w64-git-repo/PKGBUILD @@ -0,0 +1,42 @@ +_realname=git-repo +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.3.17 +pkgrel=1 +pkgdesc="The multiple Git repository tool (mingw-w64)" +arch=("any") +url="https://github.com/esrlabs/git-repo" +license=("Apache-2.0") +groups=("${MINGW_PACKAGE_PREFIX}") +depends=("${MINGW_PACKAGE_PREFIX}-python3") +source=("https://github.com/esrlabs/${_realname}/archive/v${pkgver}.tar.gz") +md5sums=("87b9bf38003ebed8b0692bf36b8f4c3e") + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + cat < Date: Wed, 5 Aug 2015 00:11:23 +0300 Subject: [PATCH 1424/2060] mpg123: Update to 1.22.3 --- mingw-w64-mpg123/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-mpg123/PKGBUILD b/mingw-w64-mpg123/PKGBUILD index 81537e9515..4050863899 100644 --- a/mingw-w64-mpg123/PKGBUILD +++ b/mingw-w64-mpg123/PKGBUILD @@ -2,8 +2,8 @@ _realname=mpg123 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.22.2 -pkgrel=2 +pkgver=1.22.3 +pkgrel=1 pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3 (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/mpg123" @@ -21,7 +21,7 @@ options=('strip' 'staticlibs' 'libtool') source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2"{,.sig} 0001-update-ac-and-silent-rules.mingw.patch 0002-openal-library.patch) -md5sums=('6f6d2178c354f39207bf97e062936110' +md5sums=('fca857bc5ad0d2070cd38bd5f0f85f1c' 'SKIP' '5d01842fa623f7bb53bf22be64aa042d' '9ac9a255f3ab3043915ceec455ccdbec') From 13de1d6aa5fb52aa331ef513fff41c8ac64e59fa Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 5 Aug 2015 00:11:46 +0300 Subject: [PATCH 1425/2060] scite: Update to 3.6.0 --- mingw-w64-scite/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index 856cd2a52b..e3a260b45f 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -3,8 +3,8 @@ _realname=scite pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") -pkgver=3.5.7 -pkgrel=2 +pkgver=3.6.0 +pkgrel=1 arch=('any') url='http://www.scintilla.org/SciTE.html' license=('custom:scite') @@ -15,7 +15,7 @@ source=("http://downloads.sourceforge.net/scintilla/${_realname}${pkgver//./}.tg "0001-Use-POSIX-tools-in-makefiles.patch" "0002-Prefix-library-names.patch" "0003-Use-FHS.patch") -md5sums=('88ab7fd6a123ef38d53e0cfc6db9c691' +md5sums=('7b4687a6c8f502dde39107fd85770602' 'd4bd88fa3e173d26d9cacaef12b1d6f9' '2a9ec192f43f82d4b26b4a6667de350a' '17011da4ced7269d787433b599a1ae92') From ff3570bdbbfe2d3e03364dc83577001ec3e1c686 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 5 Aug 2015 00:12:05 +0300 Subject: [PATCH 1426/2060] scipy: Update to 0.16.0 --- mingw-w64-python-scipy/PKGBUILD | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mingw-w64-python-scipy/PKGBUILD b/mingw-w64-python-scipy/PKGBUILD index 6901b65645..65cda35891 100644 --- a/mingw-w64-python-scipy/PKGBUILD +++ b/mingw-w64-python-scipy/PKGBUILD @@ -2,8 +2,8 @@ _realname=scipy pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=0.15.1 -pkgrel=2 +pkgver=0.16.0 +pkgrel=1 pkgdesc="SciPy is open-source software for mathematics, science, and engineering. (mingw-w64)" arch=('any') url="http://www.scipy.org/" @@ -16,11 +16,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=("https://pypi.python.org/packages/source/s/scipy/scipy-${pkgver}.tar.gz"{,.asc} fix-qhull.patch) -md5sums=('be56cd8e60591d6332aac792a5880110' +md5sums=('eb95dda0f36cc3096673993a350cde77' 'SKIP' '62e14262492e7fbdc3fb65d106619ce3') - prepare() { cd ${_realname}-${pkgver} patch -Np1 -i ${srcdir}/fix-qhull.patch From 39f559a7ec2fbdc2bf3829a2a067bd41990e2ad2 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 4 Aug 2015 20:58:59 +0100 Subject: [PATCH 1427/2060] gpgme: Fix mkstemp bug Fixes https://github.com/Alexpux/MINGW-packages/issues/724 kind of .. issue 724 is down to the fact that GetModuleFileName is used as a landmark to locate other executables needed by gpgme. However if the static library is linked to then the executable will often not be in /mingw64/bin and the landmark location is irrelevant. I need to come up with something else instead, but the only idea I've got at present is to use a registry key for where MSYS2 was installed. .. breaking multiple installations ... and using the registry, two things that we've worked hard to avoid so far. Perhaps an env. var. is the best we can do here. Anyway, the landmark problem can be mitigated by putting the exe in the /mingw64/bin folder or perhaps moving the gnupg programs to the same folder as the exe. Both options are horrible. Whith that issue avoided, the next bug is the temporary files used by gpgme to communicate with gnupg are opened with _O_TEMPORARY meaning they get deleted when they're closed before the spawnee has had a chance to read them. To avoid this the file is reopened with the _O_TEMPORARY flag removed. --- .../0001-fix-incorrect-fd-pointer-check.patch | 12 +++++++ ...n-mkstemp-files-without-_O_TEMPORARY.patch | 31 +++++++++++++++++++ ...mkstemp.patch => 0003-mingw-mkstemp.patch} | 9 +++--- ...nupg.patch => 0004-gpgme-find-gnupg.patch} | 20 ++++++------ mingw-w64-gpgme/PKGBUILD | 28 ++++++++--------- .../debugging-dont-DeleteFileA-tmpfiles.patch | 29 ----------------- 6 files changed, 73 insertions(+), 56 deletions(-) create mode 100644 mingw-w64-gpgme/0001-fix-incorrect-fd-pointer-check.patch create mode 100644 mingw-w64-gpgme/0002-reopen-mkstemp-files-without-_O_TEMPORARY.patch rename mingw-w64-gpgme/{gpgme-1.5.4-mingw-mkstemp.patch => 0003-mingw-mkstemp.patch} (69%) rename mingw-w64-gpgme/{gpgme-find-gnupg.patch => 0004-gpgme-find-gnupg.patch} (85%) delete mode 100644 mingw-w64-gpgme/debugging-dont-DeleteFileA-tmpfiles.patch diff --git a/mingw-w64-gpgme/0001-fix-incorrect-fd-pointer-check.patch b/mingw-w64-gpgme/0001-fix-incorrect-fd-pointer-check.patch new file mode 100644 index 0000000000..5b19fb4145 --- /dev/null +++ b/mingw-w64-gpgme/0001-fix-incorrect-fd-pointer-check.patch @@ -0,0 +1,12 @@ +diff -urN a/src/w32-util.c b/src/w32-util.c +--- a/src/w32-util.c 2014-07-30 10:40:16.000000000 +0100 ++++ b/src/w32-util.c 2015-08-04 22:35:22.308898700 +0100 +@@ -709,7 +709,7 @@ + return -1; + strcpy (stpcpy (tmpname, tmp), "\\gpgme-XXXXXX"); + *fd = mkstemp (tmpname); +- if (fd < 0) ++ if (*fd < 0) + { + free (tmpname); + return -1; diff --git a/mingw-w64-gpgme/0002-reopen-mkstemp-files-without-_O_TEMPORARY.patch b/mingw-w64-gpgme/0002-reopen-mkstemp-files-without-_O_TEMPORARY.patch new file mode 100644 index 0000000000..baac622506 --- /dev/null +++ b/mingw-w64-gpgme/0002-reopen-mkstemp-files-without-_O_TEMPORARY.patch @@ -0,0 +1,31 @@ +diff -urN a/src/w32-util.c b/src/w32-util.c +--- a/src/w32-util.c 2015-08-04 22:35:22.574099100 +0100 ++++ b/src/w32-util.c 2015-08-04 22:35:22.948499800 +0100 +@@ -42,6 +42,7 @@ + #endif + #include + #include ++#include + + #if __MINGW64_VERSION_MAJOR >= 2 + # define _WIN32_IE 0x0501 /* Required by mingw64 toolkit. */ +@@ -715,6 +716,19 @@ + return -1; + } + ++ /* mingw-w64's mkstemp implementation opens files with _O_TEMPORARY ++ meaning they get deleted when the last handle to them is closed. ++ While ReOpenFile () could be used to work around this, it is not ++ available until Vista. Instead, close and recreate. */ ++ close (*fd); ++ *fd = _sopen(tmpname, ++ _O_RDWR | _O_CREAT | _O_EXCL | _O_BINARY, ++ _SH_DENYRW, _S_IREAD | _S_IWRITE); ++ if (*fd < 0) ++ { ++ free (tmpname); ++ return -1; ++ } + *name = tmpname; + return 0; + } diff --git a/mingw-w64-gpgme/gpgme-1.5.4-mingw-mkstemp.patch b/mingw-w64-gpgme/0003-mingw-mkstemp.patch similarity index 69% rename from mingw-w64-gpgme/gpgme-1.5.4-mingw-mkstemp.patch rename to mingw-w64-gpgme/0003-mingw-mkstemp.patch index 32a3c29a30..84d9b95ca1 100644 --- a/mingw-w64-gpgme/gpgme-1.5.4-mingw-mkstemp.patch +++ b/mingw-w64-gpgme/0003-mingw-mkstemp.patch @@ -1,6 +1,7 @@ ---- gpgme-1.5.4/src/w32-util.c.orig 2015-04-30 09:13:53.846200000 +0300 -+++ gpgme-1.5.4/src/w32-util.c 2015-04-30 09:14:42.224800000 +0300 -@@ -595,6 +595,7 @@ +diff -urN a/src/w32-util.c b/src/w32-util.c +--- a/src/w32-util.c 2015-08-04 22:35:23.135700100 +0100 ++++ b/src/w32-util.c 2015-08-04 22:35:23.354100500 +0100 +@@ -596,6 +596,7 @@ static const char letters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; @@ -8,7 +9,7 @@ /* Generate a temporary file name based on TMPL. TMPL must match the rules for mk[s]temp (i.e. end in "XXXXXX"). The name constructed does not exist at the time of the call to mkstemp. TMPL is -@@ -677,7 +678,7 @@ +@@ -678,7 +679,7 @@ gpg_err_set_errno (EEXIST); return -1; } diff --git a/mingw-w64-gpgme/gpgme-find-gnupg.patch b/mingw-w64-gpgme/0004-gpgme-find-gnupg.patch similarity index 85% rename from mingw-w64-gpgme/gpgme-find-gnupg.patch rename to mingw-w64-gpgme/0004-gpgme-find-gnupg.patch index 8f05a2c0da..3a14604978 100644 --- a/mingw-w64-gpgme/gpgme-find-gnupg.patch +++ b/mingw-w64-gpgme/0004-gpgme-find-gnupg.patch @@ -1,5 +1,6 @@ ---- gpgme-1.5.5/configure.ac.orig 2015-07-31 09:24:13.396403000 +0300 -+++ gpgme-1.5.5/configure.ac 2015-07-31 09:24:48.701872100 +0300 +diff -urN a/configure.ac b/configure.ac +--- a/configure.ac 2015-08-04 22:35:23.556900900 +0100 ++++ b/configure.ac 2015-08-04 22:35:24.087301800 +0100 @@ -161,10 +161,10 @@ *-mingw32ce*|*-mingw32*) have_dosish_system=yes @@ -15,9 +16,10 @@ #component_system='COM+' AM_PATH_GLIB_2_0 ---- gpgme-1.5.5/src/w32-util.c.orig 2015-07-31 09:27:08.507890100 +0300 -+++ gpgme-1.5.5/src/w32-util.c 2015-07-31 09:51:04.830243500 +0300 -@@ -418,6 +418,7 @@ +diff -urN a/src/w32-util.c b/src/w32-util.c +--- a/src/w32-util.c 2015-08-04 22:35:23.525700800 +0100 ++++ b/src/w32-util.c 2015-08-04 22:35:24.087301800 +0100 +@@ -419,6 +419,7 @@ return result; } @@ -25,7 +27,7 @@ dir = read_w32_registry_string ("HKEY_LOCAL_MACHINE", "Software\\GNU\\GnuPG", "Install Directory"); -@@ -427,6 +428,7 @@ +@@ -428,6 +429,7 @@ free (dir); return result; } @@ -33,7 +35,7 @@ return NULL; } -@@ -503,13 +505,15 @@ +@@ -504,13 +506,15 @@ inst_dir = _gpgme_get_inst_dir (); gpg = find_program_in_inst_dir (inst_dir, @@ -51,7 +53,7 @@ _gpgme_debug (DEBUG_ENGINE, "_gpgme_get_gpg_path: '%s' not found", name); } -@@ -529,13 +533,15 @@ +@@ -530,13 +534,15 @@ inst_dir = _gpgme_get_inst_dir (); gpgconf = find_program_in_inst_dir (inst_dir, @@ -69,7 +71,7 @@ _gpgme_debug (DEBUG_ENGINE, "_gpgme_get_gpgconf_path: '%s' not found", name); } -@@ -553,9 +559,11 @@ +@@ -554,9 +560,11 @@ LOCK (get_path_lock); if (!w32spawn_program) w32spawn_program = find_program_in_inst_dir (inst_dir,"gpgme-w32spawn.exe"); diff --git a/mingw-w64-gpgme/PKGBUILD b/mingw-w64-gpgme/PKGBUILD index 555b9328e0..fa8f3766ed 100644 --- a/mingw-w64-gpgme/PKGBUILD +++ b/mingw-w64-gpgme/PKGBUILD @@ -4,7 +4,7 @@ _realname=gpgme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.5.5 -pkgrel=4 +pkgrel=5 pkgdesc="A C wrapper library for GnuPG (mingw-w64)" arch=('any') url="http://www.gnupg.org/related_software/gpgme/" @@ -16,23 +16,23 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-npth" ) options=('!emptydirs') # '!strip' 'debug') -source=(ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2{,.sig} - gpgme-1.5.4-mingw-mkstemp.patch - gpgme-find-gnupg.patch - debugging-dont-DeleteFileA-tmpfiles.patch) +source=(https://www.gnupg.org/ftp/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2 + 0001-fix-incorrect-fd-pointer-check.patch + 0002-reopen-mkstemp-files-without-_O_TEMPORARY.patch + 0003-mingw-mkstemp.patch + 0004-gpgme-find-gnupg.patch) sha1sums=('88476d72cb099e179de4040760502886f7a54926' - 'SKIP' - '8c7d7648772c29620b7fd23e867f60386ba92790' - '6dbd6f52c918facbe8fee5c5521ebad724ec9653' - '305408eb39c03d72aab15029f85bd8d629b87a2c') + '1828be3a0fcab854325295bc4a1d026b8d711d82' + '6f70ede9db1c86f7e4d04ade0dc0aee720221ee9' + '471223b20b8181dc6c09278901bb546434d46568' + 'e7d6fb6b1c99dd265eef363bce4ab2443662d383') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -p1 -i "${srcdir}"/gpgme-1.5.4-mingw-mkstemp.patch - patch -p1 -i "${srcdir}"/gpgme-find-gnupg.patch - if check_option "debug" "y"; then - patch -p1 -i "${srcdir}"/debugging-dont-DeleteFileA-tmpfiles.patch - fi + patch -p1 -i "${srcdir}"/0001-fix-incorrect-fd-pointer-check.patch + patch -p1 -i "${srcdir}"/0002-reopen-mkstemp-files-without-_O_TEMPORARY.patch + patch -p1 -i "${srcdir}"/0003-mingw-mkstemp.patch + patch -p1 -i "${srcdir}"/0004-gpgme-find-gnupg.patch autoreconf -ivf } diff --git a/mingw-w64-gpgme/debugging-dont-DeleteFileA-tmpfiles.patch b/mingw-w64-gpgme/debugging-dont-DeleteFileA-tmpfiles.patch deleted file mode 100644 index 6fa00a4991..0000000000 --- a/mingw-w64-gpgme/debugging-dont-DeleteFileA-tmpfiles.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- gpgme-1.5.5/src/w32-io.c.orig 2014-07-30 10:40:16.000000000 +0100 -+++ gpgme-1.5.5/src/w32-io.c 2015-08-04 00:27:52.274897800 +0100 -@@ -1587,7 +1587,7 @@ - if (!arg_string) - { - close (tmp_fd); -- DeleteFileA (tmp_name); -+/* DeleteFileA (tmp_name); */ - return TRACE_SYSRES (-1); - } - -@@ -1617,7 +1617,7 @@ - TRACE_LOG1 ("CreateProcess failed: ec=%d", (int) GetLastError ()); - free (arg_string); - close (tmp_fd); -- DeleteFileA (tmp_name); -+/* DeleteFileA (tmp_name); */ - - /* FIXME: Should translate the error code. */ - gpg_err_set_errno (EIO); -@@ -1652,7 +1652,7 @@ - CloseHandle (pi.hProcess); - - close (tmp_fd); -- DeleteFileA (tmp_name); -+/* DeleteFileA (tmp_name); */ - - /* FIXME: Should translate the error code. */ - gpg_err_set_errno (EIO); From ddd485088b24e0bb368270c6c8355ffbf2b2c724 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 08:18:42 +0100 Subject: [PATCH 1428/2060] cmake-git: Remove some debugging stuff --- .../0001-configure-Add-no-install-deps-option.patch | 6 +++--- ...002-Disable-response-files-for-MSYS-Generator.patch | 2 +- .../0003-Implement-Qt5-static-plugin-support.patch | 2 +- .../0004-Output-line-numbers-in-callstacks.patch | 2 +- mingw-w64-cmake-git/PKGBUILD | 10 +++++----- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch b/mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch index 4e1bf1f6ef..422917b12a 100644 --- a/mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch +++ b/mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch @@ -1,4 +1,4 @@ -From 582ca5c5f4c0983103c131fe485312b8dd10da08 Mon Sep 17 00:00:00 2001 +From 2856d7d6972efeb8e5d41fda9bea6c180c1557d9 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 3 Aug 2015 22:00:15 +0100 Subject: [PATCH 1/4] configure: Add --no-install-deps option @@ -8,7 +8,7 @@ Subject: [PATCH 1/4] configure: Add --no-install-deps option 1 file changed, 5 insertions(+) diff --git a/bootstrap b/bootstrap -index d778bbe..549f26c 100755 +index d778bbe..f102b09 100755 --- a/bootstrap +++ b/bootstrap @@ -642,6 +642,7 @@ cmake_verbose= @@ -32,7 +32,7 @@ index d778bbe..549f26c 100755 cmake_options="${cmake_options} -DCMAKE_VERBOSE_MAKEFILE=1" fi +if [ -n "${cmake_no_install_deps}" ]; then -+ cmake_options="${cmake_options} -DCMake_INSTALL_DEPENDENCIES=OFF -Wdev --debug-output --trace" ++ cmake_options="${cmake_options} -DCMake_INSTALL_DEPENDENCIES=OFF" +fi "${cmake_bootstrap_dir}/cmake" "${cmake_source_dir}" "-C${cmake_bootstrap_dir}/InitialCacheFlags.cmake" "-G${cmake_bootstrap_generator}" ${cmake_options} ${cmake_bootstrap_system_libs} "$@" RES=$? diff --git a/mingw-w64-cmake-git/0002-Disable-response-files-for-MSYS-Generator.patch b/mingw-w64-cmake-git/0002-Disable-response-files-for-MSYS-Generator.patch index f5d110d156..1306a4d756 100644 --- a/mingw-w64-cmake-git/0002-Disable-response-files-for-MSYS-Generator.patch +++ b/mingw-w64-cmake-git/0002-Disable-response-files-for-MSYS-Generator.patch @@ -1,4 +1,4 @@ -From ca96e7af8a53d7bce9f254591076d3911d140dad Mon Sep 17 00:00:00 2001 +From dc7c78f027fb2441f8e068ad10d23655d9404a73 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 3 Aug 2015 22:00:16 +0100 Subject: [PATCH 2/4] Disable response files for MSYS Generator diff --git a/mingw-w64-cmake-git/0003-Implement-Qt5-static-plugin-support.patch b/mingw-w64-cmake-git/0003-Implement-Qt5-static-plugin-support.patch index 1d78043dfb..b9a561d3c4 100644 --- a/mingw-w64-cmake-git/0003-Implement-Qt5-static-plugin-support.patch +++ b/mingw-w64-cmake-git/0003-Implement-Qt5-static-plugin-support.patch @@ -1,4 +1,4 @@ -From f17a08807b8a359db84b4a42e281b409b823c1cf Mon Sep 17 00:00:00 2001 +From 533dad5ccce1773ef3a1b8eed17990cedbbc20c0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 3 Aug 2015 22:00:16 +0100 Subject: [PATCH 3/4] Implement Qt5 static plugin support diff --git a/mingw-w64-cmake-git/0004-Output-line-numbers-in-callstacks.patch b/mingw-w64-cmake-git/0004-Output-line-numbers-in-callstacks.patch index cba8549d73..9c8906710a 100644 --- a/mingw-w64-cmake-git/0004-Output-line-numbers-in-callstacks.patch +++ b/mingw-w64-cmake-git/0004-Output-line-numbers-in-callstacks.patch @@ -1,4 +1,4 @@ -From ff1770d5bbe9e25aa174b99e8a3b95d8a5893977 Mon Sep 17 00:00:00 2001 +From 14346ccf0b7b554b16e5b07002772e85318e3a18 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 3 Aug 2015 22:00:17 +0100 Subject: [PATCH 4/4] Output line numbers in callstacks diff --git a/mingw-w64-cmake-git/PKGBUILD b/mingw-w64-cmake-git/PKGBUILD index 304857be93..4f0e75f835 100644 --- a/mingw-w64-cmake-git/PKGBUILD +++ b/mingw-w64-cmake-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r29042.7ac2b12 +pkgver=r29051.a15b69c pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)" arch=('any') @@ -29,10 +29,10 @@ source=("${_realname}"::"git+http://cmake.org/cmake.git" '0003-Implement-Qt5-static-plugin-support.patch' '0004-Output-line-numbers-in-callstacks.patch') md5sums=('SKIP' - '6e291ea96695f41dd7c31cfabd07c7fd' - 'f7cc0ec22619e9137c18e1d3c6ed684b' - '9b285fcf243bc6c50b341c5f09f1adc9' - '8c3b4e9986c3b4bc0a1a2251b13b1114') + 'cd6ed1ed30bb21d3b7652ad2d259b055' + '3e63cdfa659d9f0219f11c92da71740a' + '18e7b3d3874acdf68e79b0f57335040c' + 'cf42a9283a74c6d1e38d87d157cb4eb9') pkgver() { cd "$srcdir/$_realname" From bb12be629ad8a6c754a05a47b545aeaf87fc44f2 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 22:07:10 +0100 Subject: [PATCH 1429/2060] cmake-git: Remove add -no-install-deps option See http://public.kitware.com/pipermail/cmake-developers/2015-August/025927.html --- ...e-response-files-for-MSYS-Generator.patch} | 4 +- ...configure-Add-no-install-deps-option.patch | 42 ------------------- ...Implement-Qt5-static-plugin-support.patch} | 4 +- ...3-Output-line-numbers-in-callstacks.patch} | 4 +- mingw-w64-cmake-git/PKGBUILD | 25 +++++------ 5 files changed, 16 insertions(+), 63 deletions(-) rename mingw-w64-cmake-git/{0002-Disable-response-files-for-MSYS-Generator.patch => 0001-Disable-response-files-for-MSYS-Generator.patch} (90%) delete mode 100644 mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch rename mingw-w64-cmake-git/{0003-Implement-Qt5-static-plugin-support.patch => 0002-Implement-Qt5-static-plugin-support.patch} (98%) rename mingw-w64-cmake-git/{0004-Output-line-numbers-in-callstacks.patch => 0003-Output-line-numbers-in-callstacks.patch} (86%) diff --git a/mingw-w64-cmake-git/0002-Disable-response-files-for-MSYS-Generator.patch b/mingw-w64-cmake-git/0001-Disable-response-files-for-MSYS-Generator.patch similarity index 90% rename from mingw-w64-cmake-git/0002-Disable-response-files-for-MSYS-Generator.patch rename to mingw-w64-cmake-git/0001-Disable-response-files-for-MSYS-Generator.patch index 1306a4d756..75897284f7 100644 --- a/mingw-w64-cmake-git/0002-Disable-response-files-for-MSYS-Generator.patch +++ b/mingw-w64-cmake-git/0001-Disable-response-files-for-MSYS-Generator.patch @@ -1,7 +1,7 @@ -From dc7c78f027fb2441f8e068ad10d23655d9404a73 Mon Sep 17 00:00:00 2001 +From 05b0880a056f58069eb9bdc017d460556e4f68f9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 3 Aug 2015 22:00:16 +0100 -Subject: [PATCH 2/4] Disable response files for MSYS Generator +Subject: [PATCH 1/3] Disable response files for MSYS Generator --- Modules/Platform/Windows-GNU.cmake | 8 +++++--- diff --git a/mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch b/mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch deleted file mode 100644 index 422917b12a..0000000000 --- a/mingw-w64-cmake-git/0001-configure-Add-no-install-deps-option.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 2856d7d6972efeb8e5d41fda9bea6c180c1557d9 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Mon, 3 Aug 2015 22:00:15 +0100 -Subject: [PATCH 1/4] configure: Add --no-install-deps option - ---- - bootstrap | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/bootstrap b/bootstrap -index d778bbe..f102b09 100755 ---- a/bootstrap -+++ b/bootstrap -@@ -642,6 +642,7 @@ cmake_verbose= - cmake_parallel_make= - cmake_ccache_enabled= - cmake_prefix_dir="${cmake_default_prefix}" -+cmake_no_install_deps= - while test $# != 0; do - case "$1" in - --prefix=*) dir=`cmake_arg "$1"` -@@ -653,6 +654,7 @@ while test $# != 0; do - --init=*) cmake_init_file=`cmake_arg "$1"` ;; - --system-libs) cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARIES=1" ;; - --no-system-libs) cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARIES=0" ;; -+ --no-install-deps) cmake_no_install_deps="1" ;; - --system-bzip2|--system-curl|--system-expat|--system-jsoncpp|--system-libarchive|--system-zlib) - lib=`cmake_arg "$1" "--system-"` - cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARY_`cmake_toupper $lib`=1" ;; -@@ -1738,6 +1740,9 @@ cmake_options="-DCMAKE_BOOTSTRAP=1" - if [ -n "${cmake_verbose}" ]; then - cmake_options="${cmake_options} -DCMAKE_VERBOSE_MAKEFILE=1" - fi -+if [ -n "${cmake_no_install_deps}" ]; then -+ cmake_options="${cmake_options} -DCMake_INSTALL_DEPENDENCIES=OFF" -+fi - "${cmake_bootstrap_dir}/cmake" "${cmake_source_dir}" "-C${cmake_bootstrap_dir}/InitialCacheFlags.cmake" "-G${cmake_bootstrap_generator}" ${cmake_options} ${cmake_bootstrap_system_libs} "$@" - RES=$? - if [ "${RES}" -ne "0" ]; then --- -2.5.0 - diff --git a/mingw-w64-cmake-git/0003-Implement-Qt5-static-plugin-support.patch b/mingw-w64-cmake-git/0002-Implement-Qt5-static-plugin-support.patch similarity index 98% rename from mingw-w64-cmake-git/0003-Implement-Qt5-static-plugin-support.patch rename to mingw-w64-cmake-git/0002-Implement-Qt5-static-plugin-support.patch index b9a561d3c4..910cf13075 100644 --- a/mingw-w64-cmake-git/0003-Implement-Qt5-static-plugin-support.patch +++ b/mingw-w64-cmake-git/0002-Implement-Qt5-static-plugin-support.patch @@ -1,7 +1,7 @@ -From 533dad5ccce1773ef3a1b8eed17990cedbbc20c0 Mon Sep 17 00:00:00 2001 +From 5bf3465977c82514375d3be4ad33d68acfd18e2c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 3 Aug 2015 22:00:16 +0100 -Subject: [PATCH 3/4] Implement Qt5 static plugin support +Subject: [PATCH 2/3] Implement Qt5 static plugin support Enabled via a new target property "AUTOSTATICPLUGINS". diff --git a/mingw-w64-cmake-git/0004-Output-line-numbers-in-callstacks.patch b/mingw-w64-cmake-git/0003-Output-line-numbers-in-callstacks.patch similarity index 86% rename from mingw-w64-cmake-git/0004-Output-line-numbers-in-callstacks.patch rename to mingw-w64-cmake-git/0003-Output-line-numbers-in-callstacks.patch index 9c8906710a..c099fe0cc6 100644 --- a/mingw-w64-cmake-git/0004-Output-line-numbers-in-callstacks.patch +++ b/mingw-w64-cmake-git/0003-Output-line-numbers-in-callstacks.patch @@ -1,7 +1,7 @@ -From 14346ccf0b7b554b16e5b07002772e85318e3a18 Mon Sep 17 00:00:00 2001 +From 33ca9451c44bfc7d0aa7214ed30365f502293c03 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 3 Aug 2015 22:00:17 +0100 -Subject: [PATCH 4/4] Output line numbers in callstacks +Subject: [PATCH 3/3] Output line numbers in callstacks --- Source/cmMakefile.cxx | 2 +- diff --git a/mingw-w64-cmake-git/PKGBUILD b/mingw-w64-cmake-git/PKGBUILD index 4f0e75f835..7a853a050a 100644 --- a/mingw-w64-cmake-git/PKGBUILD +++ b/mingw-w64-cmake-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r29051.a15b69c +pkgver=r29057.863b0a8 pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)" arch=('any') @@ -24,15 +24,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-winpthreads" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' '!strip' 'debug') source=("${_realname}"::"git+http://cmake.org/cmake.git" - '0001-configure-Add-no-install-deps-option.patch' - '0002-Disable-response-files-for-MSYS-Generator.patch' - '0003-Implement-Qt5-static-plugin-support.patch' - '0004-Output-line-numbers-in-callstacks.patch') + '0001-Disable-response-files-for-MSYS-Generator.patch' + '0002-Implement-Qt5-static-plugin-support.patch' + '0003-Output-line-numbers-in-callstacks.patch') md5sums=('SKIP' - 'cd6ed1ed30bb21d3b7652ad2d259b055' - '3e63cdfa659d9f0219f11c92da71740a' - '18e7b3d3874acdf68e79b0f57335040c' - 'cf42a9283a74c6d1e38d87d157cb4eb9') + 'c880b071cda707214c100ecf5ad7f0bd' + 'b3501cf1e0d93a4185ca5962d5dcc102' + 'f8fb995735aab8307f8c1cffedcf9514') pkgver() { cd "$srcdir/$_realname" @@ -41,10 +39,9 @@ pkgver() { prepare() { cd ${_realname} - git am "${srcdir}"/0001-configure-Add-no-install-deps-option.patch - git am "${srcdir}"/0002-Disable-response-files-for-MSYS-Generator.patch - git am "${srcdir}"/0003-Implement-Qt5-static-plugin-support.patch - git am "${srcdir}"/0004-Output-line-numbers-in-callstacks.patch + git am "${srcdir}"/0001-Disable-response-files-for-MSYS-Generator.patch + git am "${srcdir}"/0002-Implement-Qt5-static-plugin-support.patch + git am "${srcdir}"/0003-Output-line-numbers-in-callstacks.patch } build() { @@ -58,8 +55,6 @@ build() { --prefix=${MINGW_PREFIX} \ --system-libs \ --no-system-expat \ - --no-install-deps \ - --qt-gui \ --qt-qmake=$(cygpath -m ${MINGW_PREFIX})/qt5-static/bin/qmake.exe \ --no-qt-gui \ --parallel=${NUMBER_OF_PROCESSORS} \ From 6424dbf6e774841cc069c538e016974b9c69e7f4 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 22:07:47 +0100 Subject: [PATCH 1430/2060] gcc-git: New package Converted the old patches that are still applicable to git-format patches, adding attribution, commentary and marking with [deprecated] those that most probably are not needed anymore. --- mingw-w64-gcc-git/0001-Relocate-libintl.patch | 814 ++++++++++++++++++ ...e-_ZTC-in-libstdc-exports-deprecated.patch | 54 ++ ..._weakref__-on-__MINGW32__-deprecated.patch | 32 + ...osix-dir-exists-semantics-more-close.patch | 130 +++ ...not-in-progpath-and-leave-case-as-is.patch | 60 ++ ...on-t-ignore-native-system-header-dir.patch | 28 + ...-feature-to-allow-overriding-lmsvcrt.patch | 43 + ..._malloc_cleared-instead-of-gomp_mall.patch | 75 ++ .../0009-Build-EXTRA_GNATTOOLS-for-Ada.patch | 43 + .../0010-Prettify-linking-no-undefined.patch | 41 + ...in-header-cplusplus-compatible-depre.patch | 41 + ...too-late-resolved-__EH_FRAME_BEGIN__.patch | 61 ++ .../0013-Fix-using-large-PCH.patch | 154 ++++ .../0014-Enable-shared-gnat-implib.patch | 39 + .../0015-MinGW-w64-Enable-libitm.patch | 112 +++ .../0016-MinGW-w64-Enable-libsanitizer.patch | 25 + .../0017-MinGW-w64-Enable-shared-gnat.patch | 39 + .../0018-MinGW-w64-No-fpic-in-sanitizer.patch | 179 ++++ .../0019-MinGW-w64-Port-sanitizer.patch | 141 +++ ...ing-to-libgcc_s_dw2-1.dll-deprecated.patch | 84 ++ mingw-w64-gcc-git/PKGBUILD | 432 ++++++++++ 21 files changed, 2627 insertions(+) create mode 100644 mingw-w64-gcc-git/0001-Relocate-libintl.patch create mode 100644 mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch create mode 100644 mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch create mode 100644 mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch create mode 100644 mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch create mode 100644 mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch create mode 100644 mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch create mode 100644 mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch create mode 100644 mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch create mode 100644 mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch create mode 100644 mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch create mode 100644 mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch create mode 100644 mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch create mode 100644 mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch create mode 100644 mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch create mode 100644 mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch create mode 100644 mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch create mode 100644 mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch create mode 100644 mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch create mode 100644 mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch create mode 100644 mingw-w64-gcc-git/PKGBUILD diff --git a/mingw-w64-gcc-git/0001-Relocate-libintl.patch b/mingw-w64-gcc-git/0001-Relocate-libintl.patch new file mode 100644 index 0000000000..4c48b7ad3b --- /dev/null +++ b/mingw-w64-gcc-git/0001-Relocate-libintl.patch @@ -0,0 +1,814 @@ +From ccd41b45c8f72d55cdb51bf7bb25a49bf6afeb26 Mon Sep 17 00:00:00 2001 +From: Erwin Waterlander +Date: Wed, 5 Aug 2015 17:06:35 +0100 +Subject: [PATCH 01/20] Relocate libintl + +The relocatex-libintl patch adds builtin relocation for executables to the +libintl dll. With this patch the programs are automatically relocatable. There +is no need anymore to add relocation code to your program when you use this +libintl DLL. + +The patch was ported from the GnuWin32 port of libintl, which has also builtin +relacation support. + +At the moment the relocation support is only active if you compile with MinGW +for Windows. If you compile for Unix/Linux/Cygwin the functionality is +unchanged. + +See also: +http://waterlan.home.xs4all.nl/libintl.html +http://sourceforge.net/tracker/?func=detail&atid=302435&aid=3003879&group_id=2435 +GnuWin32: http://gnuwin32.sourceforge.net/ + +Great thanks to GnuWin32 maintainer Kees Zeelenberg. + +Erwin Waterlander +waterlan@xs4all.nl +http://waterlan.home.xs4all.nl/ + +Additional "bogus paths for *nix-style paths" fix by Alexey Pavlov +--- + intl/Makefile.in | 7 +- + intl/bindtextdom.c | 22 ++++ + intl/canonicalize.c | 329 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + intl/relocatex.c | 295 ++++++++++++++++++++++++++++++++++++++++++++++ + intl/relocatex.h | 41 +++++++ + 5 files changed, 693 insertions(+), 1 deletion(-) + create mode 100644 intl/canonicalize.c + create mode 100644 intl/relocatex.c + create mode 100644 intl/relocatex.h + +diff --git a/intl/Makefile.in b/intl/Makefile.in +index 3dd0b7f..25f3f01 100644 +--- a/intl/Makefile.in ++++ b/intl/Makefile.in +@@ -61,6 +61,7 @@ HEADERS = \ + eval-plural.h \ + localcharset.h \ + relocatable.h \ ++ relocatex.h \ + libgnuintl.h + SOURCES = \ + bindtextdom.c \ +@@ -81,6 +82,8 @@ SOURCES = \ + plural-exp.c \ + localcharset.c \ + relocatable.c \ ++ relocatex.c \ ++ canonicalize.c \ + localename.c \ + log.c \ + osdep.c \ +@@ -104,6 +107,8 @@ OBJECTS = \ + plural-exp.o \ + localcharset.o \ + relocatable.o \ ++ relocatex.o \ ++ canonicalize.o \ + localename.o \ + log.o \ + osdep.o \ +@@ -158,7 +163,7 @@ install-info install-dvi install-ps install-pdf install-html: + $(OBJECTS): config.h libintl.h + bindtextdom.o dcgettext.o dcigettext.o dcngettext.o dgettext.o \ + dngettext.o finddomain.o gettext.o intl-compat.o loadmsgcat.o \ +-localealias.o ngettext.o textdomain.o: gettextP.h gmo.h loadinfo.h ++localealias.o ngettext.o textdomain.o: gettextP.h gmo.h loadinfo.h relocatex.h + dcigettext.o loadmsgcat.o: hash-string.h + explodename.o l10nflist.o: loadinfo.h + dcigettext.o loadmsgcat.o plural.o plural-exp.o: plural-exp.h +diff --git a/intl/bindtextdom.c b/intl/bindtextdom.c +index 6faac57..b7a62d5 100644 +--- a/intl/bindtextdom.c ++++ b/intl/bindtextdom.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + #ifdef _LIBC + # include +@@ -91,6 +92,12 @@ static void set_binding_values PARAMS ((const char *domainname, + const char **dirnamep, + const char **codesetp)); + ++#if ENABLE_RELOCATABLE ++# include "relocatex.h" ++#else ++# define relocate(pathname) (pathname) ++#endif ++ + /* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP + to be used for the DOMAINNAME message catalog. + If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not +@@ -352,8 +359,23 @@ BINDTEXTDOMAIN (domainname, dirname) + const char *domainname; + const char *dirname; + { ++/* + set_binding_values (domainname, &dirname, NULL); + return (char *) dirname; ++*/ ++ if (!access (dirname, R_OK)) { ++ set_binding_values (domainname, &dirname, NULL); ++ return (char *) dirname; ++ } else { ++ char *locale_dirname, *installdir = strdup (dirname), *s; ++ if ((s = strrchr (installdir, '/'))) *s = '\0'; ++ if ((s = strrchr (installdir, '/'))) *s = '\0'; ++ locale_dirname = relocatex (installdir, dirname); ++ set_binding_values (domainname, (const char **) &locale_dirname, NULL); ++ if (installdir) ++ free (installdir); ++ return (char *) locale_dirname; ++ } + } + + /* Specify the character encoding in which the messages from the +diff --git a/intl/canonicalize.c b/intl/canonicalize.c +new file mode 100644 +index 0000000..8bc1f84 +--- /dev/null ++++ b/intl/canonicalize.c +@@ -0,0 +1,329 @@ ++/* Return the canonical absolute name of a given file. ++ Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef __WIN32__ ++# include ++# include ++//# include ++#endif /* __WIN32__ */ ++ ++#ifndef MAXSYMLINKS ++# define MAXSYMLINKS 20 ++#endif ++ ++#ifndef __set_errno ++# define __set_errno(Val) errno = (Val) ++#endif ++ ++# ifdef VMS ++ /* We want the directory in Unix syntax, not in VMS syntax. */ ++# define __getcwd(buf, max) getcwd (buf, max, 0) ++# else ++# define __getcwd getcwd ++# endif ++ ++#define weak_alias(local, symbol) ++ ++#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ ++ /* Win32, Cygwin, OS/2, DOS */ ++# define ISDIRSEP(C) ((C) == '/' || (C) == '\\') ++#else ++ /* Unix */ ++# define ISDIRSEP(C) ((C) == '/') ++#endif ++ ++/* Return the canonical absolute name of file NAME. A canonical name ++ does not contain any `.', `..' components nor any repeated path ++ separators ('/') or symlinks. All path components must exist. If ++ RESOLVED is null, the result is malloc'd; otherwise, if the ++ canonical name is PATH_MAX chars or more, returns null with `errno' ++ set to ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars, ++ returns the name in RESOLVED. If the name cannot be resolved and ++ RESOLVED is non-NULL, it contains the path of the first component ++ that cannot be resolved. If the path can be resolved, RESOLVED ++ holds the same value as the value returned. ++ RESOLVED must be at least PATH_MAX long */ ++ ++static char * ++canonicalize (const char *name, char *resolved) ++{ ++ char *rpath, *dest, *extra_buf = NULL; ++ const char *start, *end, *rpath_limit; ++ long int path_max; ++ int num_links = 0, old_errno; ++ ++ if (name == NULL) ++ { ++ /* As per Single Unix Specification V2 we must return an error if ++ either parameter is a null pointer. We extend this to allow ++ the RESOLVED parameter to be NULL in case the we are expected to ++ allocate the room for the return value. */ ++ __set_errno (EINVAL); ++ return NULL; ++ } ++ ++ if (name[0] == '\0') ++ { ++ /* As per Single Unix Specification V2 we must return an error if ++ the name argument points to an empty string. */ ++ __set_errno (ENOENT); ++ return NULL; ++ } ++#ifdef __WIN32__ ++ { ++ char *lpFilePart; ++ int len; ++// fprintf(stderr, "name: %s\n", name); ++ rpath = resolved ? __builtin_alloca (MAX_PATH) : malloc (MAX_PATH); ++// unix2winpath (name); ++// fprintf(stderr, "name: %s\n", name); ++len = GetFullPathName(name, MAX_PATH, rpath, &lpFilePart); ++/* GetFullPathName returns bogus paths for *nix-style paths, like ++ * /foo/bar - it just prepends current drive to them. Keep them ++ * intact (they need to be for relocation to work!). ++ */ ++if (name[0] == '/') { ++ strncpy (rpath, name, MAX_PATH - 1); ++ rpath[MAX_PATH - 1] = '\0'; ++ len = strlen (rpath); ++} ++// fprintf(stderr, "rpath: %s\n", rpath); ++ if (len == 0) { ++ //set_werrno; ++ return NULL; ++ } ++ if (len > MAX_PATH) { ++ if (resolved) ++ __set_errno(ENAMETOOLONG); ++ else { ++ rpath = realloc(rpath, len + 2); ++ GetFullPathName(name, len, rpath, &lpFilePart); ++// fprintf(stderr, "rpath: %s\n", rpath); ++ } ++ } ++// if ( ISDIRSEP(name[strlen(name)]) && !ISDIRSEP(rpath[len]) ) { ++// rpath[len] = '\\'; ++// rpath[len + 1] = 0; ++// } ++ old_errno = errno; ++ //if (!access (rpath, D_OK) && !ISDIRSEP(rpath[len - 1]) ){ ++ if (!access (rpath, R_OK) && !ISDIRSEP(rpath[len - 1]) ){ ++ rpath[len] = '\\'; ++ rpath[len + 1] = 0; ++ } ++ errno = old_errno; ++ win2unixpath (rpath); ++// fprintf(stderr, "rpath: %s\n", rpath); ++ return resolved ? strcpy(resolved, rpath) : rpath ; ++ } ++#else /* __WIN32__ */ ++ ++#ifdef PATH_MAX ++ path_max = PATH_MAX; ++#else ++ path_max = pathconf (name, _PC_PATH_MAX); ++ if (path_max <= 0) ++ path_max = 1024; ++#endif ++ ++ rpath = resolved ? __builtin_alloca (path_max) : malloc (path_max); ++ rpath_limit = rpath + path_max; ++ ++ if (name[0] != '/') ++ { ++ if (!__getcwd (rpath, path_max)) ++ { ++ rpath[0] = '\0'; ++ goto error; ++ } ++ dest = strchr (rpath, '\0'); ++ } ++ else ++ { ++ rpath[0] = '/'; ++ dest = rpath + 1; ++ } ++ ++ for (start = end = name; *start; start = end) ++ { ++#ifdef _LIBC ++ struct stat64 st; ++#else ++ struct stat st; ++#endif ++ int n; ++ ++ /* Skip sequence of multiple path-separators. */ ++ while (*start == '/') ++ ++start; ++ ++ /* Find end of path component. */ ++ for (end = start; *end && *end != '/'; ++end) ++ /* Nothing. */; ++ ++ if (end - start == 0) ++ break; ++ else if (end - start == 1 && start[0] == '.') ++ /* nothing */; ++ else if (end - start == 2 && start[0] == '.' && start[1] == '.') ++ { ++ /* Back up to previous component, ignore if at root already. */ ++ if (dest > rpath + 1) ++ while ((--dest)[-1] != '/'); ++ } ++ else ++ { ++ size_t new_size; ++ ++ if (dest[-1] != '/') ++ *dest++ = '/'; ++ ++ if (dest + (end - start) >= rpath_limit) ++ { ++ ptrdiff_t dest_offset = dest - rpath; ++ ++ if (resolved) ++ { ++ __set_errno (ENAMETOOLONG); ++ if (dest > rpath + 1) ++ dest--; ++ *dest = '\0'; ++ goto error; ++ } ++ new_size = rpath_limit - rpath; ++ if (end - start + 1 > path_max) ++ new_size += end - start + 1; ++ else ++ new_size += path_max; ++ rpath = realloc (rpath, new_size); ++ rpath_limit = rpath + new_size; ++ if (rpath == NULL) ++ return NULL; ++ ++ dest = rpath + dest_offset; ++ } ++ ++#ifdef _LIBC ++ dest = __mempcpy (dest, start, end - start); ++#else ++ memcpy (dest, start, end - start); ++ dest += end - start; ++#endif ++ *dest = '\0'; ++ ++#ifdef _LIBC ++ if (__lxstat64 (_STAT_VER, rpath, &st) < 0) ++#else ++ if (lstat (rpath, &st) < 0) ++#endif ++ goto error; ++ ++#if HAVE_READLINK ++ if (S_ISLNK (st.st_mode)) ++ { ++ char *buf = __builtin_alloca (path_max); ++ size_t len; ++ ++ if (++num_links > MAXSYMLINKS) ++ { ++ __set_errno (ELOOP); ++ goto error; ++ } ++ ++ n = __readlink (rpath, buf, path_max); ++ if (n < 0) ++ goto error; ++ buf[n] = '\0'; ++ ++ if (!extra_buf) ++ extra_buf = __builtin_alloca (path_max); ++ ++ len = strlen (end); ++ if ((long int) (n + len) >= path_max) ++ { ++ __set_errno (ENAMETOOLONG); ++ goto error; ++ } ++ ++ /* Careful here, end may be a pointer into extra_buf... */ ++ memmove (&extra_buf[n], end, len + 1); ++ name = end = memcpy (extra_buf, buf, n); ++ ++ if (buf[0] == '/') ++ dest = rpath + 1; /* It's an absolute symlink */ ++ else ++ /* Back up to previous component, ignore if at root already: */ ++ if (dest > rpath + 1) ++ while ((--dest)[-1] != '/'); ++ } ++#endif ++ } ++ } ++ if (dest > rpath + 1 && dest[-1] == '/') ++ --dest; ++ *dest = '\0'; ++ ++ return resolved ? memcpy (resolved, rpath, dest - rpath + 1) : rpath; ++ ++error: ++ if (resolved) ++ strcpy (resolved, rpath); ++ else ++ free (rpath); ++ return NULL; ++ ++#endif /* __WIN32__ */ ++} ++ ++ ++char * ++__realpath (const char *name, char *resolved) ++{ ++ if (resolved == NULL) ++ { ++ __set_errno (EINVAL); ++ return NULL; ++ } ++ ++ return canonicalize (name, resolved); ++} ++weak_alias (__realpath, realpath) ++ ++ ++char * ++__canonicalize_file_name (const char *name) ++{ ++ return canonicalize (name, NULL); ++} ++weak_alias (__canonicalize_file_name, canonicalize_file_name) ++ ++char * ++canonicalize_file_name (const char *name) ++{ ++ return canonicalize (name, NULL); ++} +diff --git a/intl/relocatex.c b/intl/relocatex.c +new file mode 100644 +index 0000000..8e91a88 +--- /dev/null ++++ b/intl/relocatex.c +@@ -0,0 +1,295 @@ ++/* Provide relocatable packages. ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ Written by Bruno Haible , 2003. ++ ++ This program is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Library General Public License as published ++ by the Free Software Foundation; either version 2, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with this program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++ USA. */ ++ ++ ++/* Specification. */ ++#include ++#define _GNU_SOURCE ++#include ++#include ++#include ++#include ++/* #include */ ++#include "relocatex.h" ++//#include "canonicalize.h" ++/* #include */ ++ ++ ++#if defined _WIN32 || defined __WIN32__ ++# define WIN32_LEAN_AND_MEAN ++# include ++//# define __GW32__ ++//# include ++#endif ++#define set_werrno ++ ++#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ ++ /* Win32, Cygwin, OS/2, DOS */ ++# define ISDIRSEP(C) ((C) == '/' || (C) == '\\') ++#else ++ /* Unix */ ++# define ISDIRSEP(C) ((C) == '/') ++#endif ++ ++/* Original installation prefix. */ ++static char *orig_prefix = NULL; ++static size_t orig_prefix_len = 0; ++/* Current installation prefix. */ ++static char *curr_prefix = NULL; ++static size_t curr_prefix_len = 0; ++/* These prefixes do not end in a slash. Anything that will be concatenated ++ to them must start with a slash. */ ++ ++ ++char *win2unixpath (char *FileName) ++{ ++ char *s = FileName; ++ while (*s) { ++ if (*s == '\\') ++ *s = '/'; ++ *s++; ++ } ++ return FileName; ++} ++ ++int win2posixpath (const char *winpath, char *posixpath) ++{ ++ strcpy (posixpath, winpath); ++ win2unixpath (posixpath); ++ return 0; ++} ++ ++ ++/* Sets the original and the current installation prefix of this module. ++ Relocation simply replaces a pathname starting with the original prefix ++ by the corresponding pathname with the current prefix instead. Both ++ prefixes should be directory names without trailing slash (i.e. use "" ++ instead of "/"). */ ++static char * ++set_orig_prefix (const char *orig_prefix_arg) ++{ ++ char *memory; ++// printf ("orig_prefix_arg: %s\n", orig_prefix_arg); ++ if (!orig_prefix_arg) { ++ orig_prefix = NULL; ++ orig_prefix_len = 0; ++ return NULL; ++ } ++ if (orig_prefix) ++ free (orig_prefix); ++ ++ memory = canonicalize_file_name (orig_prefix_arg); ++// printf ("memory: %s\n", memory); ++// memory = (char *) malloc (orig_prefix_len + 1); ++ if (!memory) { ++ set_werrno; ++ orig_prefix = NULL; ++ orig_prefix_len = 0; ++ return NULL; ++ } ++ win2unixpath (memory); ++// win2posixpath (orig_prefix_arg, memory); ++ orig_prefix = memory; ++ orig_prefix_len = strlen (orig_prefix); ++// printf ("orig_prefix: %s\n", orig_prefix); ++ if (ISDIRSEP (orig_prefix[orig_prefix_len-1])) { ++ orig_prefix[orig_prefix_len-1] = '\0'; ++ orig_prefix_len--; ++ } ++// printf ("orig_prefix: %s\n", orig_prefix); ++// printf ("orig_prefix_len: %d\n", orig_prefix_len); ++ return orig_prefix; ++} ++ ++#if defined __WIN32__ ++static char * ++set_current_prefix (const char *ModuleName) ++{ ++ LPTSTR curr_prefix_arg, q, lpFilePart; ++ DWORD len; ++ int nDIRSEP = 0; ++ ++ if (curr_prefix) ++ free (curr_prefix); ++ curr_prefix_arg = malloc (MAX_PATH * sizeof (TCHAR)); ++ if (!curr_prefix_arg) { ++ set_werrno; ++ curr_prefix = NULL; ++ curr_prefix_len = 0; ++ return NULL; ++ } ++ if (ModuleName) { ++// printf ("ModuleName: %s\n", ModuleName); ++ len = SearchPath (NULL, ModuleName, ".DLL", MAX_PATH, curr_prefix_arg, &lpFilePart); ++ if (len) { ++// printf ("ModulePath: %s\n", curr_prefix_arg); ++// printf ("FilePart: %s\n", lpFilePart); ++ } ++ } ++ if (!ModuleName || !len) { ++ len = GetModuleFileName (NULL, curr_prefix_arg, MAX_PATH); ++ if (!len) { ++ set_werrno; ++ curr_prefix = NULL; ++ curr_prefix_len = 0; ++ return NULL; ++ } ++ } ++// strncpy (curr_prefix_arg, ModuleName, MAX_PATH); ++// printf ("curr_prefix_arg: %s\n", curr_prefix_arg); ++ win2posixpath (curr_prefix_arg, curr_prefix_arg); ++ curr_prefix = curr_prefix_arg; ++ q = curr_prefix_arg + len - 1; ++ /* strip name of executable and its directory */ ++ while (!ISDIRSEP (*q) && (q > curr_prefix_arg) && nDIRSEP < 2) { ++ q--; ++ if (ISDIRSEP (*q)) { ++ *q = '\0'; ++ nDIRSEP++; ++ } ++ } ++ curr_prefix_len = q - curr_prefix_arg; ++// printf ("curr_prefix: %s\n", curr_prefix); ++// printf ("curr_prefix_len: %d\n", curr_prefix_len); ++ return curr_prefix; ++} ++ ++char *getshortpath (const char *longpath) ++{ ++ char *shortpath = NULL; ++ DWORD len, res; ++ ++// printf ("longpath: %s\n", longpath); ++ len = GetShortPathName(longpath, shortpath, 0); ++// printf ("len: %ld\n", len); ++ if (!len) { ++// WinErr ("getshortpath: len = 0"); ++ set_werrno; ++ return (char *) longpath; ++ } ++ shortpath = (char *) malloc (len + 1); ++ if (!shortpath) { ++// WinErr ("getshortpath: malloc"); ++ set_werrno; ++ return (char *) longpath; ++ } ++ res = GetShortPathName(longpath, shortpath, len); ++// printf ("res: %ld\n", res); ++ if (!res) { ++// WinErr ("getshortpath: res = 0"); ++ free (shortpath); ++ set_werrno; ++ return (char *) longpath; ++ } ++// printf ("shortpath: %s\n", shortpath); ++ return shortpath; ++} ++ ++char *relocaten (const char *ModuleName, const char *path) ++{ ++ char *relative_path, *relocated_path, *relocated_short_path; ++ int relative_path_len; ++ ++ if (!curr_prefix) ++ set_current_prefix (ModuleName); ++// printf ("path: %s\n", path); ++// printf ("orig_prefix: %s\n", orig_prefix); ++// printf ("curr_prefix: %s\n", curr_prefix); ++// if (strncmp (orig_prefix, path, orig_prefix_len)) ++// if (strcmp (orig_prefix, path)) ++// return (char *) path; ++ relative_path = (char *) path + orig_prefix_len; ++// printf ("relative_path: %s\n", relative_path); ++ relative_path_len = strlen (relative_path); ++ relocated_path = malloc (curr_prefix_len + relative_path_len + 1); ++ strcpy (relocated_path, curr_prefix); ++ strcat (relocated_path, relative_path); ++// printf ("relocated_path: %s\n", relocated_path); ++ relocated_short_path = getshortpath (relocated_path); ++// printf ("relocated_short_path: %s\n", relocated_short_path); ++ if (relocated_short_path) { ++ if (relocated_short_path != relocated_path) ++ free (relocated_path); ++ return relocated_short_path; ++ } else ++ return relocated_path; ++} ++ ++#else // __WIN32__ ++char *relocaten (const char *ModuleName, const char *path) ++{ ++ // dummy function for Unix/Linux ++ return (char *)path; ++} ++#endif ++ ++char *relocaten2 (const char *ModuleName, const char *installdir, const char *path) ++{ ++ set_orig_prefix (installdir); ++ return relocaten (ModuleName, path); ++} ++ ++char *relocatenx (const char *ModuleName, const char *installdir, const char *path) ++{ ++ char *p; ++ ++ set_orig_prefix (installdir); ++ if (access (path, R_OK)) ++ p = relocaten (ModuleName, path); ++ else ++ p = (char *) path; ++// printf ("relocatenx: %s\n", p); ++ return p; ++} ++ ++char *relocate2 (const char *installdir, const char *path) ++{ ++ return relocaten2 (NULL, installdir, path); ++} ++ ++char *relocatex (const char *installdir, const char *path) ++{ ++ return relocatenx (NULL, installdir, path); ++} ++ ++char *relocatepx (const char *cprefix, const char *installdir, const char *path) ++{ ++ if (curr_prefix) ++ free (curr_prefix); ++ curr_prefix = strdup (cprefix); ++ return relocatex (installdir, path); ++} ++ ++static char *get_orig_prefix (void) ++{ ++ return orig_prefix; ++} ++ ++static char *get_curr_prefix (void) ++{ ++ return curr_prefix; ++} ++ ++static char *set_curr_prefix (const char *ModuleName) ++{ ++ if (curr_prefix) ++ free (curr_prefix); ++ set_current_prefix (ModuleName); ++ return curr_prefix; ++} +diff --git a/intl/relocatex.h b/intl/relocatex.h +new file mode 100644 +index 0000000..5cc7c51 +--- /dev/null ++++ b/intl/relocatex.h +@@ -0,0 +1,41 @@ ++/* ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GnuWin C Library. ++ ++ The GnuWin C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GnuWin C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GnuWin32 C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef __RELOCATE_H__ ++#define __RELOCATE_H__ 1 ++ ++/* #include */ ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++char *relocaten (const char *ModuleName, const char *path); ++char *relocaten2 (const char *ModuleName, const char *installdir, const char *path); ++char *relocatenx (const char *ModuleName, const char *installdir, const char *path); ++char *relocate2 (const char *installdir, const char *path); ++char *relocatex (const char *installdir, const char *path); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++//#endif /* __GW32__ */ ++ ++#endif /* __RELOCATE_H__ */ +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch b/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch new file mode 100644 index 0000000000..1b3dab3552 --- /dev/null +++ b/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch @@ -0,0 +1,54 @@ +From 72514b8268b8caf2c91fafee1328faaf9930029e Mon Sep 17 00:00:00 2001 +From: gee +Date: Wed, 5 Aug 2015 17:08:18 +0100 +Subject: [PATCH 02/20] PR54314: Include _ZTC* in libstdc++ exports + [deprecated] + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54314 +https://gcc.gnu.org/bugzilla/attachment.cgi?id=28065 + +Discussion: + +1. gee 2012-08-21 13:38:57 UTC +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54314#c5 + +I think symbol _ZTCSt* need to be included +in libstdc++/config/abi/pre/gnu.ver so that +shared-library can export these symbols +unless user did append --disable-symvers. +nothing need to be done such as reverting +the commit or so. + +2. Jason Merrill 2013-01-25 20:37:07 UTC +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54314#c19 + +This change turns out to be wrong; we don't want to +export the construction vtables, as they should only +be referenced by the VTTs which are emitted along +with them. If other code is referring to those +symbols, that's the bug that should be fixed. + +3. Kai Tietz 2013-09-10 16:19:48 UTC +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54314#c41 + +Add thunk _ZTv0_n12_NS* like in gnu.ver +--- + libstdc++-v3/config/abi/pre/gnu.ver | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver +index d42cd37..7502fee 100644 +--- a/libstdc++-v3/config/abi/pre/gnu.ver ++++ b/libstdc++-v3/config/abi/pre/gnu.ver +@@ -2064,7 +2064,7 @@ CXXABI_1.3.6 { + __cxa_allocate_dependent_exception; + __cxa_free_dependent_exception; + __cxa_deleted_virtual; +- ++ _ZTC*; + } CXXABI_1.3.5; + + CXXABI_1.3.7 { +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch b/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch new file mode 100644 index 0000000000..3b6ca8bebd --- /dev/null +++ b/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch @@ -0,0 +1,32 @@ +From 34716237430d66b94275fc2a7a55735da684e2d9 Mon Sep 17 00:00:00 2001 +From: niXman +Date: Wed, 5 Aug 2015 17:09:38 +0100 +Subject: [PATCH 03/20] PR52300: Avoid __weakref__ on __MINGW32__ [deprecated] + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52300 +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52300#c0 + +Deprecated by: + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52300#c3 +http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184406 +--- + libgcc/gthr-posix.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgcc/gthr-posix.h b/libgcc/gthr-posix.h +index fb59816..733bece 100644 +--- a/libgcc/gthr-posix.h ++++ b/libgcc/gthr-posix.h +@@ -82,7 +82,7 @@ typedef struct timespec __gthread_time_t; + # define __GTHREAD_COND_INIT_FUNCTION __gthread_cond_init_function + #endif + +-#if SUPPORTS_WEAK && GTHREAD_USE_WEAK ++#if SUPPORTS_WEAK && GTHREAD_USE_WEAK && !defined(__MINGW32__) + # ifndef __gthrw_pragma + # define __gthrw_pragma(pragma) + # endif +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch b/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch new file mode 100644 index 0000000000..9ff8b0c09c --- /dev/null +++ b/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch @@ -0,0 +1,130 @@ +From 20778a468ff3a9628c0ca16526d2ee885fac5d1c Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 5 Aug 2015 17:13:08 +0100 +Subject: [PATCH 04/20] Windows: Follow Posix dir-exists semantics more closely + +Make Windows behave the same as Posix in the consideration +of whether folder "/doesnt-exist/.." is a valid +path. In Posix, it isn't. + +A concrete instance of when this matters is when cross +compiling GNU/Linux glibc on Windows. +--- + libcpp/files.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 87 insertions(+) + +diff --git a/libcpp/files.c b/libcpp/files.c +index 8c388d8..e45665c 100644 +--- a/libcpp/files.c ++++ b/libcpp/files.c +@@ -30,6 +30,13 @@ along with this program; see the file COPYING3. If not see + #include "md5.h" + #include + ++/* Needed for stat_st_mode_symlink below */ ++#if defined(_WIN32) ++# include ++# define S_IFLNK 0xF000 ++# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) ++#endif ++ + /* Variable length record files on VMS will have a stat size that includes + record control characters that won't be included in the read size. */ + #ifdef VMS +@@ -198,6 +205,49 @@ static int pchf_save_compare (const void *e1, const void *e2); + static int pchf_compare (const void *d_p, const void *e_p); + static bool check_file_against_entries (cpp_reader *, _cpp_file *, bool); + ++#if defined(_WIN32) ++ ++static int stat_st_mode_symlink (char const* path, struct stat* buf) ++{ ++ WIN32_FILE_ATTRIBUTE_DATA attr; ++ memset(buf,0,sizeof(*buf)); ++ int err = GetFileAttributesExA (path, GetFileExInfoStandard, &attr) ? 0 : 1; ++ if (!err) ++ { ++ WIN32_FIND_DATAA finddata; ++ HANDLE h = FindFirstFileA (path, &finddata); ++ if (h != INVALID_HANDLE_VALUE) ++ { ++ FindClose (h); ++ if ((finddata.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) && ++ (finddata.dwReserved0 == IO_REPARSE_TAG_SYMLINK)) ++ buf->st_mode = S_IFLNK; ++ else if (finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ++ buf->st_mode = S_IFDIR; ++ else if (finddata.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) ++ buf->st_mode = S_IFDIR; ++ else ++ buf->st_mode = S_IFREG; ++ buf->st_mode |= S_IREAD; ++ if (!(finddata.dwFileAttributes & FILE_ATTRIBUTE_READONLY)) ++ buf->st_mode |= S_IWRITE; ++ } ++ else ++ { ++ buf->st_mode = S_IFDIR; ++ } ++ return 0; ++ } ++ return -1; ++} ++ ++#else ++ ++#define stat_st_mode_symlink (_name, _buf) stat ((_name), (_buf)) ++ ++#endif ++ ++ + /* Given a filename in FILE->PATH, with the empty string interpreted + as , open it. + +@@ -227,6 +277,43 @@ open_file (_cpp_file *file) + } + else + file->fd = open (file->path, O_RDONLY | O_NOCTTY | O_BINARY, 0666); ++#if defined(_WIN32) || defined(__CYGWIN__) ++ /* Windows and Posix differ in the face of paths of the form: ++ nonexistantdir/.. in that Posix will return ENOENT whereas ++ Windows won't care that we stepped into a non-existant dir ++ Only do these slow checks if ".." appears in file->path. ++ Cygwin also suffers from the same problem (but doesn't need ++ a new stat function): ++ http://cygwin.com/ml/cygwin/2013-05/msg00222.html ++ */ ++ if (file->fd > 0) ++ { ++ char filepath[MAX_PATH]; ++ strncpy (filepath, file->path, sizeof(filepath) - 1); ++ char* dirsep = &filepath[0]; ++ while ( (dirsep = strchr (dirsep, '\\')) != NULL) ++ *dirsep = '/'; ++ if (strstr(file->path, "/../")) ++ { ++ dirsep = &filepath[0]; ++ char dirsepc; ++ /* Check each directory in the chain. */ ++ while ( (dirsep = strpbrk (dirsep, "\\/")) != NULL) ++ { ++ dirsepc = *(++dirsep); ++ *dirsep = '\0'; ++ if (stat_st_mode_symlink (filepath, &file->st) == -1) ++ { ++ *dirsep = dirsepc; ++ close (file->fd); ++ file->fd = -1; ++ return false; ++ } ++ *dirsep++ = dirsepc; ++ } ++ } ++ } ++#endif + + if (file->fd != -1) + { +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch b/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch new file mode 100644 index 0000000000..a5f6fa97de --- /dev/null +++ b/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch @@ -0,0 +1,60 @@ +From 3e31f83eaa190eb54cfcf8b4a88a75de829993e4 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 5 Aug 2015 17:15:45 +0100 +Subject: [PATCH 05/20] Windows: Use '/' not '\' in progpath and leave case + as-is + +Windows can handle both '/' and '\' dirseps. GCC will +have been built using Cygwin, MSYS* or cross-compiled +from a system where dirsep is '/' so it is cleaner to +force the dirseps to be '/' and keep the case as-is. + +This way, the value will be consistent with the build +system and string operations, be they internal to GCC +or external to it (e.g. processing map files with sed) +have a better chance of working as expected. + +A concrete instance of when this matters is when cross +compiling GNU/Linux glibc on Windows. +--- + libiberty/lrealpath.c | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +diff --git a/libiberty/lrealpath.c b/libiberty/lrealpath.c +index b27c8de..8165984 100644 +--- a/libiberty/lrealpath.c ++++ b/libiberty/lrealpath.c +@@ -138,15 +138,26 @@ lrealpath (const char *filename) + { + char buf[MAX_PATH]; + char* basename; ++ char* slash; + DWORD len = GetFullPathName (filename, MAX_PATH, buf, &basename); + if (len == 0 || len > MAX_PATH - 1) + return strdup (filename); + else + { +- /* The file system is case-preserving but case-insensitive, +- Canonicalize to lowercase, using the codepage associated +- with the process locale. */ +- CharLowerBuff (buf, len); ++ /* Turn all back slashes back into forward slashes ++ and don't make it lowercase. ++ Rationale: ++ Windows is as happy with / as it is with \. This will ++ have been built using Cygwin, MSYS* or cross-compiled ++ from a system where dirsep is / so it is cleaner just ++ to keep the dirseps as / (and the case un-modified). ++ This way, the value will be consistent with the build ++ system and string operations (be they internal to this ++ software or external to it, e.g. processing map files ++ with sed) work as expected. */ ++ slash = buf; ++ while ((slash = strchr(slash,'\\')) != NULL) ++ *slash = '/'; + return strdup (buf); + } + } +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch b/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch new file mode 100644 index 0000000000..7121900e98 --- /dev/null +++ b/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch @@ -0,0 +1,28 @@ +From dd46f32bf53cffcc7d0be4319202127d81010ebd Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 5 Aug 2015 18:29:21 +0100 +Subject: [PATCH 06/20] Windows: Don't ignore native system header dir + +--- + gcc/config.gcc | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index 24f6d35..8c79739 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -1722,7 +1722,10 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) + tmake_file="${tmake_file} i386/t-mingw-w32" + ;; + esac +- native_system_header_dir=/mingw/include ++ # Don't ignore values passed in to configure via --native-system-header-dir ++ if test x$native_system_header_dir = x ; then ++ native_system_header_dir=/mingw/include ++ fi + target_gtfiles="\$(srcdir)/config/i386/winnt.c" + extra_options="${extra_options} i386/cygming.opt i386/mingw.opt" + case ${target} in +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch b/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch new file mode 100644 index 0000000000..eba5699981 --- /dev/null +++ b/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch @@ -0,0 +1,43 @@ +From 4445afbe7982dfbad9ce4102e6db3e6a4ca2d975 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 5 Aug 2015 18:49:17 +0100 +Subject: [PATCH 07/20] Windows: New feature to allow overriding -lmsvcrt + +Added in support of the MinGW-w64 WIP feature "agile mscvrt dll" where +a process' loaded msvc runtime is used by a newly loaded DLL rather than +always using msvcrt.dll +--- + gcc/config/i386/cygming.opt | 3 +++ + gcc/config/i386/mingw32.h | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gcc/config/i386/cygming.opt b/gcc/config/i386/cygming.opt +index c7e398f..dfddaf8 100644 +--- a/gcc/config/i386/cygming.opt ++++ b/gcc/config/i386/cygming.opt +@@ -22,6 +22,9 @@ mconsole + Target RejectNegative + Create console application + ++mcrtdll= ++Target RejectNegative Joined ++ + mdll + Target RejectNegative + Generate code for a DLL +diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h +index eef90fb..47e12e7 100644 +--- a/gcc/config/i386/mingw32.h ++++ b/gcc/config/i386/mingw32.h +@@ -140,7 +140,7 @@ along with GCC; see the file COPYING3. If not see + #define REAL_LIBGCC_SPEC \ + "%{mthreads:-lmingwthrd} -lmingw32 \ + " SHARED_LIBGCC_SPEC " \ +- -lmoldname -lmingwex -lmsvcrt" ++ -lmoldname -lmingwex %{!mcrtdll=*:-lmsvcrt} %{mcrtdll=*:-l%*}" + + #undef STARTFILE_SPEC + #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch b/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch new file mode 100644 index 0000000000..b5ed9981ed --- /dev/null +++ b/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch @@ -0,0 +1,75 @@ +From b64e941c94a777083713996932c91b8bad93df4a Mon Sep 17 00:00:00 2001 +From: Kai Tietz +Date: Wed, 5 Aug 2015 18:49:42 +0100 +Subject: [PATCH 08/20] libgomp: Use gomp_malloc_cleared instead of gomp_malloc + [deprecated] + +This was added when trying to track down a problem in Blender, +but the actual problem turned out not to be related, so this +is probably not needed. +--- + libgomp/team.c | 4 ++-- + libgomp/testsuite/config/default.exp | 5 +++++ + libgomp/work.c | 4 ++-- + 3 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/libgomp/team.c b/libgomp/team.c +index 7671b05..f9024c0 100644 +--- a/libgomp/team.c ++++ b/libgomp/team.c +@@ -224,7 +224,7 @@ free_team (struct gomp_team *team) + static struct gomp_thread_pool *gomp_new_thread_pool (void) + { + struct gomp_thread_pool *pool +- = gomp_malloc (sizeof(struct gomp_thread_pool)); ++ = gomp_malloc_cleared (sizeof(struct gomp_thread_pool)); + pool->threads = NULL; + pool->threads_size = 0; + pool->threads_used = 0; +@@ -964,7 +964,7 @@ struct gomp_task_icv * + gomp_new_icv (void) + { + struct gomp_thread *thr = gomp_thread (); +- struct gomp_task *task = gomp_malloc (sizeof (struct gomp_task)); ++ struct gomp_task *task = gomp_malloc_cleared (sizeof (struct gomp_task)); + gomp_init_task (task, NULL, &gomp_global_icv); + thr->task = task; + pthread_setspecific (gomp_thread_destructor, thr); +diff --git a/libgomp/testsuite/config/default.exp b/libgomp/testsuite/config/default.exp +index 7f82b4d..7febdea 100644 +--- a/libgomp/testsuite/config/default.exp ++++ b/libgomp/testsuite/config/default.exp +@@ -15,3 +15,8 @@ + # . + + load_lib "standard.exp" ++ ++# Support for old dejagnu. Must be loaded here, not in libstdc++.exp, to ++# make sure all existing procs are loaded when their presence is tested. ++load_file $srcdir/../../gcc/testsuite/lib/dejapatches.exp ++ +diff --git a/libgomp/work.c b/libgomp/work.c +index 0570b90..741599a 100644 +--- a/libgomp/work.c ++++ b/libgomp/work.c +@@ -76,7 +76,7 @@ alloc_work_share (struct gomp_team *team) + #endif + + team->work_share_chunk *= 2; +- ws = gomp_malloc (team->work_share_chunk * sizeof (struct gomp_work_share)); ++ ws = gomp_malloc_cleared (team->work_share_chunk * sizeof (struct gomp_work_share)); + ws->next_alloc = team->work_shares[0].next_alloc; + team->work_shares[0].next_alloc = ws; + team->work_share_list_alloc = &ws[1]; +@@ -175,7 +175,7 @@ gomp_work_share_start (bool ordered) + /* Work sharing constructs can be orphaned. */ + if (team == NULL) + { +- ws = gomp_malloc (sizeof (*ws)); ++ ws = gomp_malloc_cleared (sizeof (*ws)); + gomp_init_work_share (ws, ordered, 1); + thr->ts.work_share = ws; + return ws; +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch b/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch new file mode 100644 index 0000000000..3dd89cb68d --- /dev/null +++ b/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch @@ -0,0 +1,43 @@ +From 163dfc75425a89489106411925ffc19a11ff7a0f Mon Sep 17 00:00:00 2001 +From: Alexey Pavlov +Date: Wed, 5 Aug 2015 18:54:33 +0100 +Subject: [PATCH 09/20] Build EXTRA_GNATTOOLS for Ada + +--- + gnattools/Makefile.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/gnattools/Makefile.in b/gnattools/Makefile.in +index 423cc6e..aaee42f 100644 +--- a/gnattools/Makefile.in ++++ b/gnattools/Makefile.in +@@ -193,7 +193,7 @@ gnattools-native: $(GCC_DIR)/stamp-tools $(GCC_DIR)/stamp-gnatlib-rts + ../../gnatmake$(exeext) ../../gnatlink$(exeext) + # gnattools2 + $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ +- $(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools ++ $(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools $(EXTRA_GNATTOOLS) + + # gnatmake/link can be built with recent gnatmake/link if they are available. + # This is especially convenient for building cross tools or for rebuilding +@@ -205,7 +205,7 @@ regnattools: $(GCC_DIR)/stamp-gnatlib-rts + gnatmake-re gnatlink-re + # gnattools2 + $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ +- $(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools ++ $(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools $(EXTRA_GNATTOOLS) + + gnattools-cross: $(GCC_DIR)/stamp-tools + # gnattools1-re +@@ -214,7 +214,7 @@ gnattools-cross: $(GCC_DIR)/stamp-tools + gnatmake-re gnatlink-re + # gnattools2 + $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ +- $(TOOLS_FLAGS_TO_PASS_CROSS) common-tools ++ $(TOOLS_FLAGS_TO_PASS_CROSS) common-tools $(EXTRA_GNATTOOLS) + # Rename cross tools to where the GCC makefile wants them when + # installing. FIXME: installation should be done elsewhere. + if [ -f $(GCC_DIR)/gnatbind$(exeext) ] ; then \ +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch b/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch new file mode 100644 index 0000000000..08e9055903 --- /dev/null +++ b/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch @@ -0,0 +1,41 @@ +From 47b01e1f412008d53de730e0d40b37ed5cf198c0 Mon Sep 17 00:00:00 2001 +From: Alexey Pavlov +Date: Wed, 5 Aug 2015 18:59:47 +0100 +Subject: [PATCH 10/20] Prettify linking -no-undefined + +It might be better to put this change in a +conditional block for Windows only? +--- + libgfortran/Makefile.am | 2 +- + libgfortran/Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am +index 0e816ac..0477605 100644 +--- a/libgfortran/Makefile.am ++++ b/libgfortran/Makefile.am +@@ -44,7 +44,7 @@ libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP) + cafexeclib_LTLIBRARIES = libcaf_single.la + cafexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR) + libcaf_single_la_SOURCES = caf/single.c +-libcaf_single_la_LDFLAGS = -static ++libcaf_single_la_LDFLAGS = -static -no-undefined + libcaf_single_la_DEPENDENCIES = caf/libcaf.h + libcaf_single_la_LINK = $(LINK) $(libcaf_single_la_LDFLAGS) + +diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in +index ab71b38..77374d4 100644 +--- a/libgfortran/Makefile.in ++++ b/libgfortran/Makefile.in +@@ -605,7 +605,7 @@ libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP) + cafexeclib_LTLIBRARIES = libcaf_single.la + cafexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR) + libcaf_single_la_SOURCES = caf/single.c +-libcaf_single_la_LDFLAGS = -static ++libcaf_single_la_LDFLAGS = -static -no-undefined + libcaf_single_la_DEPENDENCIES = caf/libcaf.h + libcaf_single_la_LINK = $(LINK) $(libcaf_single_la_LDFLAGS) + @IEEE_SUPPORT_TRUE@fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch b/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch new file mode 100644 index 0000000000..b88a615224 --- /dev/null +++ b/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch @@ -0,0 +1,41 @@ +From 26b3abf506f34571d92bdf24a8ac7b5090484b48 Mon Sep 17 00:00:00 2001 +From: Erik van Pienbroek +Date: Wed, 5 Aug 2015 19:00:05 +0100 +Subject: [PATCH 11/20] gcc: make xmmintrin header cplusplus compatible + [deprecated] + +Deprecated as-per: +http://marc.info/?l=fedora-extras-commits&m=138946782004553&w=2 +--- + gcc/config/i386/xmmintrin.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/gcc/config/i386/xmmintrin.h b/gcc/config/i386/xmmintrin.h +index 9cd3fa7..9334f27 100644 +--- a/gcc/config/i386/xmmintrin.h ++++ b/gcc/config/i386/xmmintrin.h +@@ -64,6 +64,10 @@ _mm_prefetch (const void *__P, enum _mm_hint __I) + #define __DISABLE_SSE__ + #endif /* __SSE__ */ + ++#ifdef __cplusplus ++extern "C" { ++#endif ++ + /* The Intel API is flexible enough that we must allow aliasing with other + vector types, and their scalar components. */ + typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); +@@ -1245,6 +1249,10 @@ do { \ + (row3) = __builtin_ia32_movhlps (__t3, __t2); \ + } while (0) + ++#ifdef __cplusplus ++} ++#endif ++ + /* For backward source compatibility. */ + # include + +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch b/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch new file mode 100644 index 0000000000..9ad61fd849 --- /dev/null +++ b/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch @@ -0,0 +1,61 @@ +From a0cf060fdc05eeef347671590bef49199fecdd59 Mon Sep 17 00:00:00 2001 +From: Matt Breedlove +Date: Wed, 5 Aug 2015 19:00:33 +0100 +Subject: [PATCH 12/20] Work around {un-,too-late-}resolved __EH_FRAME_BEGIN__ + +Here's the dwarf2 patch I'm using. With the change to checking +__LIBGCC_EH_FRAME_SECTION_NAME__, an undefined reference to +__EH_FRAME_BEGIN__ gets emitted within __main.o. The actual symbol +for it is defined within cygming-crtbegin.c (crtbegin.o) which is +listed before __main.o when linking libgcc leaving the undefined +reference unresolved. This restores behavior to the 4.9 branch only +for this specific instance (confirmed by comparing pre-processed +output). Will update with bugtraq info. + +Relevant references: + +https://gcc.gnu.org/ml/gcc-patches/2014-09/msg00409.html +http://gcc.gcc.gnu.narkive.com/RMY4RcbE/asm-output-section-name-cleanup-patch-problem + +Posted to mingw-w64 ML: + +https://sourceforge.net/p/mingw-w64/mailman/message/34101954/ +https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01212.html +--- + libgcc/libgcc2.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libgcc/libgcc2.c b/libgcc/libgcc2.c +index c737620..e5ab209 100644 +--- a/libgcc/libgcc2.c ++++ b/libgcc/libgcc2.c +@@ -2211,7 +2211,7 @@ TRANSFER_FROM_TRAMPOLINE + /* Some ELF crosses use crtstuff.c to provide __CTOR_LIST__, but use this + code to run constructors. In that case, we need to handle EH here, too. */ + +-#ifdef __LIBGCC_EH_FRAME_SECTION_NAME__ ++#ifdef EH_FRAME_SECTION_NAME + #include "unwind-dw2-fde.h" + extern unsigned char __EH_FRAME_BEGIN__[]; + #endif +@@ -2231,7 +2231,7 @@ __do_global_dtors (void) + (*(p-1)) (); + } + #endif +-#if defined (__LIBGCC_EH_FRAME_SECTION_NAME__) && !defined (HAS_INIT_SECTION) ++#if defined (EH_FRAME_SECTION_NAME) && !defined (HAS_INIT_SECTION) + { + static int completed = 0; + if (! completed) +@@ -2250,7 +2250,7 @@ __do_global_dtors (void) + void + __do_global_ctors (void) + { +-#ifdef __LIBGCC_EH_FRAME_SECTION_NAME__ ++#ifdef EH_FRAME_SECTION_NAME + { + static struct object object; + __register_frame_info (__EH_FRAME_BEGIN__, &object); +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch b/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch new file mode 100644 index 0000000000..c0628a1300 --- /dev/null +++ b/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch @@ -0,0 +1,154 @@ +From 94a17f994201d9f7305944bbd40ab548be01d16a Mon Sep 17 00:00:00 2001 +From: Martin Richter +Date: Wed, 5 Aug 2015 19:02:59 +0100 +Subject: [PATCH 13/20] Fix using large PCH + +The following patch fixes segfault when gt_pch_use_address +fails (returns -1). fatal_error now correctly shows an error +message and terminates the program. +I have basicly only reordered reads, and placed them after +the file mapping itself. Global pointers are changed only +after gt_pch_use_address succeeds, so in case of failure +they still contain valid addresses. + +This patch is meant for the master branch. However, it +should not be hard to modify it for others. + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14940 +https://sourceforge.net/p/mingw-w64/bugs/382/ +--- + gcc/config/i386/host-mingw32.c | 10 ++------- + gcc/ggc-common.c | 51 +++++++++++++++++++++++++++++++++--------- + 2 files changed, 42 insertions(+), 19 deletions(-) + +diff --git a/gcc/config/i386/host-mingw32.c b/gcc/config/i386/host-mingw32.c +index aa17378..631d9c4 100644 +--- a/gcc/config/i386/host-mingw32.c ++++ b/gcc/config/i386/host-mingw32.c +@@ -42,9 +42,6 @@ static size_t mingw32_gt_pch_alloc_granularity (void); + + static inline void w32_error(const char*, const char*, int, const char*); + +-/* FIXME: Is this big enough? */ +-static const size_t pch_VA_max_size = 128 * 1024 * 1024; +- + /* Granularity for reserving address space. */ + static size_t va_granularity = 0x10000; + +@@ -86,9 +83,6 @@ static void * + mingw32_gt_pch_get_address (size_t size, int) + { + void* res; +- size = (size + va_granularity - 1) & ~(va_granularity - 1); +- if (size > pch_VA_max_size) +- return NULL; + + /* FIXME: We let system determine base by setting first arg to NULL. + Allocating at top of available address space avoids unnecessary +@@ -98,7 +92,7 @@ mingw32_gt_pch_get_address (size_t size, int) + If we allocate at bottom we need to reserve the address as early + as possible and at the same point in each invocation. */ + +- res = VirtualAlloc (NULL, pch_VA_max_size, ++ res = VirtualAlloc (NULL, size, + MEM_RESERVE | MEM_TOP_DOWN, + PAGE_NOACCESS); + if (!res) +@@ -148,7 +142,7 @@ mingw32_gt_pch_use_address (void *addr, size_t size, int fd, + + /* Offset must be also be a multiple of allocation granularity for + this to work. We can't change the offset. */ +- if ((offset & (va_granularity - 1)) != 0 || size > pch_VA_max_size) ++ if ((offset & (va_granularity - 1)) != 0) + return -1; + + +diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c +index 5096837..f741f2c 100644 +--- a/gcc/ggc-common.c ++++ b/gcc/ggc-common.c +@@ -599,7 +599,9 @@ gt_pch_restore (FILE *f) + size_t i; + struct mmap_info mmi; + int result; +- ++ long pch_tabs_off; ++ long pch_data_off; ++ + /* Delete any deletable objects. This makes ggc_pch_read much + faster, as it can be sure that no GCable objects remain other + than the ones just read in. */ +@@ -607,20 +609,24 @@ gt_pch_restore (FILE *f) + for (rti = *rt; rti->base != NULL; rti++) + memset (rti->base, 0, rti->stride); + +- /* Read in all the scalar variables. */ ++ /* We need to read tables after mapping, or fatal_error will ++ segfault when gt_pch_use_address returns -1. Skip them for now. */ ++ pch_tabs_off = ftell(f); ++ ++ /* Skip all the scalar variables. */ + for (rt = gt_pch_scalar_rtab; *rt; rt++) + for (rti = *rt; rti->base != NULL; rti++) +- if (fread (rti->base, rti->stride, 1, f) != 1) +- fatal_error (input_location, "can%'t read PCH file: %m"); ++ if (fseek (f, rti->stride, SEEK_CUR) != 0) ++ fatal_error (input_location, "can%'t read PCH file: %m"); + +- /* Read in all the global pointers, in 6 easy loops. */ ++ /* Skip all the global pointers. */ + for (rt = gt_ggc_rtab; *rt; rt++) + for (rti = *rt; rti->base != NULL; rti++) + for (i = 0; i < rti->nelt; i++) +- if (fread ((char *)rti->base + rti->stride * i, +- sizeof (void *), 1, f) != 1) +- fatal_error (input_location, "can%'t read PCH file: %m"); +- ++ if (fseek (f, sizeof (void *), SEEK_CUR) != 0) ++ fatal_error (input_location, "can%'t read PCH file: %m"); ++ ++ /* mmi still has to be read now. */ + if (fread (&mmi, sizeof (mmi), 1, f) != 1) + fatal_error (input_location, "can%'t read PCH file: %m"); + +@@ -631,12 +637,35 @@ gt_pch_restore (FILE *f) + if (result == 0) + { + if (fseek (f, mmi.offset, SEEK_SET) != 0 +- || fread (mmi.preferred_base, mmi.size, 1, f) != 1) +- fatal_error (input_location, "can%'t read PCH file: %m"); ++ || fread (mmi.preferred_base, mmi.size, 1, f) != 1) ++ fatal_error (input_location, "can%'t read PCH file: %m"); + } + else if (fseek (f, mmi.offset + mmi.size, SEEK_SET) != 0) + fatal_error (input_location, "can%'t read PCH file: %m"); ++ ++ /* File mapping done, read tables now. */ ++ pch_data_off = ftell(f); ++ ++ if (fseek (f, pch_tabs_off, SEEK_SET) != 0) ++ fatal_error (input_location, "can%'t read PCH file: %m"); + ++ /* Read in all the scalar variables. */ ++ for (rt = gt_pch_scalar_rtab; *rt; rt++) ++ for (rti = *rt; rti->base != NULL; rti++) ++ if (fread (rti->base, rti->stride, 1, f) != 1) ++ fatal_error (input_location, "can%'t read PCH file: %m"); ++ ++ /* Read in all the global pointers, in 6 easy loops. */ ++ for (rt = gt_ggc_rtab; *rt; rt++) ++ for (rti = *rt; rti->base != NULL; rti++) ++ for (i = 0; i < rti->nelt; i++) ++ if (fread ((char *)rti->base + rti->stride * i, ++ sizeof (void *), 1, f) != 1) ++ fatal_error (input_location, "can%'t read PCH file: %m"); ++ ++ if (fseek (f, pch_data_off, SEEK_SET) != 0) ++ fatal_error (input_location, "can%'t read PCH file: %m"); ++ + ggc_pch_read (f, mmi.preferred_base); + + gt_pch_restore_stringpool (); +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch b/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch new file mode 100644 index 0000000000..b31f4e56af --- /dev/null +++ b/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch @@ -0,0 +1,39 @@ +From 2b18b4371519dd8ea3daba6f16bbd083b10a655c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=BCrgen=20Pfeifer?= +Date: Wed, 5 Aug 2015 19:03:20 +0100 +Subject: [PATCH 14/20] Enable shared gnat implib + +Provide GNAT runtime import libraries to +allow to link against shared runtime + +Original commit: +https://github.com/Alexpux/MINGW-packages/commit/51b4eb3b702fdb38df0460180c2f8209a686aaec +--- + gcc/ada/gcc-interface/Makefile.in | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in +index 1d03f86..dd4453c 100644 +--- a/gcc/ada/gcc-interface/Makefile.in ++++ b/gcc/ada/gcc-interface/Makefile.in +@@ -2886,13 +2886,16 @@ gnatlib-shared-win32: + $(PICFLAG_FOR_TARGET) \ + -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ +- $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB) ++ $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ -Wl,-out-implib,libgnat$(hyphen)$(LIBRARY_VERSION).dll.a \ ++ $(MISCLIB) + cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ + | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \ + $(PICFLAG_FOR_TARGET) \ + -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(GNATRTL_TASKING_OBJS) \ + $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ -Wl,-out-implib,libgnarl$(hyphen)$(LIBRARY_VERSION).dll.a \ + $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) + + gnatlib-shared-darwin: +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch b/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch new file mode 100644 index 0000000000..04596157b3 --- /dev/null +++ b/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch @@ -0,0 +1,112 @@ +From e631686500141440351ea3a3b7bd56bc08863329 Mon Sep 17 00:00:00 2001 +From: LRN +Date: Wed, 5 Aug 2015 19:03:35 +0100 +Subject: [PATCH 15/20] MinGW-w64: Enable libitm + +--- + libitm/Makefile.am | 2 +- + libitm/Makefile.in | 3 ++- + libitm/configure | 17 +++++++++++++++++ + libitm/configure.ac | 1 + + libitm/configure.tgt | 4 ++++ + 5 files changed, 25 insertions(+), 2 deletions(-) + +diff --git a/libitm/Makefile.am b/libitm/Makefile.am +index 1dce82d..0ea39f2 100644 +--- a/libitm/Makefile.am ++++ b/libitm/Makefile.am +@@ -54,7 +54,7 @@ libitm_version_info = -version-info $(libtool_VERSION) + # want or need libstdc++. + libitm_la_DEPENDENCIES = $(libitm_version_dep) + libitm_la_LINK = $(LINK) $(libitm_la_LDFLAGS) +-libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script) ++libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script) $(lt_host_flags) + + libitm_la_SOURCES = \ + aatree.cc alloc.cc alloc_c.cc alloc_cpp.cc barrier.cc beginend.cc \ +diff --git a/libitm/Makefile.in b/libitm/Makefile.in +index 138eeb1..a25c6d2 100644 +--- a/libitm/Makefile.in ++++ b/libitm/Makefile.in +@@ -307,6 +307,7 @@ libtool_VERSION = @libtool_VERSION@ + link_itm = @link_itm@ + localedir = @localedir@ + localstatedir = @localstatedir@ ++lt_host_flags = @lt_host_flags@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + multi_basedir = @multi_basedir@ +@@ -357,7 +358,7 @@ libitm_version_info = -version-info $(libtool_VERSION) + # want or need libstdc++. + libitm_la_DEPENDENCIES = $(libitm_version_dep) + libitm_la_LINK = $(LINK) $(libitm_la_LDFLAGS) +-libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script) ++libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script) $(lt_host_flags) + libitm_la_SOURCES = aatree.cc alloc.cc alloc_c.cc alloc_cpp.cc \ + barrier.cc beginend.cc clone.cc eh_cpp.cc local.cc query.cc \ + retry.cc rwlock.cc useraction.cc util.cc sjlj.S tls.cc \ +diff --git a/libitm/configure b/libitm/configure +index 55332bb..8f19e0a 100644 +--- a/libitm/configure ++++ b/libitm/configure +@@ -630,6 +630,7 @@ MAINTAINER_MODE_FALSE + MAINTAINER_MODE_TRUE + enable_static + enable_shared ++lt_host_flags + CXXCPP + CPP + OTOOL64 +@@ -15149,6 +15150,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + # Only expand once: + + ++case $host in ++ *-cygwin* | *-mingw*) ++ # 'host' will be top-level target in the case of a target lib, ++ # we must compare to with_cross_host to decide if this is a native ++ # or cross-compiler and select where to install dlls appropriately. ++ if test -n "$with_cross_host" && ++ test x"$with_cross_host" != x"no"; then ++ lt_host_flags='-no-undefined -bindir "$(toolexeclibdir)"'; ++ else ++ lt_host_flags='-no-undefined -bindir "$(bindir)"'; ++ fi ++ ;; ++ *) ++ lt_host_flags= ++ ;; ++esac + + + +diff --git a/libitm/configure.ac b/libitm/configure.ac +index 2d99b11..6b8ad09 100644 +--- a/libitm/configure.ac ++++ b/libitm/configure.ac +@@ -147,6 +147,7 @@ AM_CONDITIONAL(BUILD_INFO, test $gcc_cv_prog_makeinfo_modern = "yes") + + # Configure libtool + AM_PROG_LIBTOOL ++ACX_LT_HOST_FLAGS + AC_SUBST(enable_shared) + AC_SUBST(enable_static) + +diff --git a/libitm/configure.tgt b/libitm/configure.tgt +index 99da73a..e50b90f 100644 +--- a/libitm/configure.tgt ++++ b/libitm/configure.tgt +@@ -145,6 +145,10 @@ case "${target}" in + # POSIX system. The OS is supported. + ;; + ++ *-*-mingw*) ++ # POSIX system. The OS is supported. ++ ;; ++ + *) # Non-POSIX, or embedded system + UNSUPPORTED=1 + ;; +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch b/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch new file mode 100644 index 0000000000..5a9a35477d --- /dev/null +++ b/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch @@ -0,0 +1,25 @@ +From e9dc59d772161149de30f79fce55d14a901055e9 Mon Sep 17 00:00:00 2001 +From: LRN +Date: Wed, 5 Aug 2015 19:03:42 +0100 +Subject: [PATCH 16/20] MinGW-w64: Enable libsanitizer + +--- + libsanitizer/configure.tgt | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/libsanitizer/configure.tgt b/libsanitizer/configure.tgt +index ac0eb7a..a7f7356 100644 +--- a/libsanitizer/configure.tgt ++++ b/libsanitizer/configure.tgt +@@ -36,6 +36,8 @@ case "${target}" in + ;; + aarch64*-*-linux*) + ;; ++ *-*-mingw*) ++ ;; + x86_64-*-darwin[1]* | i?86-*-darwin[1]*) + TSAN_SUPPORTED=no + ;; +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch b/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch new file mode 100644 index 0000000000..aab8a576d2 --- /dev/null +++ b/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch @@ -0,0 +1,39 @@ +From 80a59baa620f287c4921ada1725f1a7724a1c4ae Mon Sep 17 00:00:00 2001 +From: LRN +Date: Wed, 5 Aug 2015 19:03:48 +0100 +Subject: [PATCH 17/20] MinGW-w64: Enable shared gnat + +--- + libada/configure | 2 +- + libada/configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libada/configure b/libada/configure +index 2296096..ba488e7 100755 +--- a/libada/configure ++++ b/libada/configure +@@ -2956,7 +2956,7 @@ fi + + + # Determine what to build for 'gnatlib' +-if test $build = $target \ ++if test $host = $target \ + && test ${enable_shared} = yes ; then + # Note that build=target is almost certainly the wrong test; FIXME + default_gnatlib_target="gnatlib-shared" +diff --git a/libada/configure.ac b/libada/configure.ac +index d11bfad..d37a771 100644 +--- a/libada/configure.ac ++++ b/libada/configure.ac +@@ -127,7 +127,7 @@ AC_PROG_AWK + AC_PROG_LN_S + + # Determine what to build for 'gnatlib' +-if test $build = $target \ ++if test $host = $target \ + && test ${enable_shared} = yes ; then + # Note that build=target is almost certainly the wrong test; FIXME + default_gnatlib_target="gnatlib-shared" +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch b/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch new file mode 100644 index 0000000000..388f500653 --- /dev/null +++ b/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch @@ -0,0 +1,179 @@ +From e9643afa6d31ef54f5d5c7e393cdedf1bd1cf56e Mon Sep 17 00:00:00 2001 +From: LRN +Date: Wed, 5 Aug 2015 19:03:54 +0100 +Subject: [PATCH 18/20] MinGW-w64: No -fpic in sanitizer + +--- + libsanitizer/asan/Makefile.am | 2 +- + libsanitizer/asan/Makefile.in | 2 +- + libsanitizer/interception/Makefile.am | 2 +- + libsanitizer/interception/Makefile.in | 2 +- + libsanitizer/lsan/Makefile.am | 2 +- + libsanitizer/lsan/Makefile.in | 2 +- + libsanitizer/sanitizer_common/Makefile.am | 2 +- + libsanitizer/sanitizer_common/Makefile.in | 2 +- + libsanitizer/tsan/Makefile.am | 2 +- + libsanitizer/tsan/Makefile.in | 2 +- + libsanitizer/ubsan/Makefile.am | 2 +- + libsanitizer/ubsan/Makefile.in | 2 +- + 12 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/libsanitizer/asan/Makefile.am b/libsanitizer/asan/Makefile.am +index 54c74ce..1dc515e 100644 +--- a/libsanitizer/asan/Makefile.am ++++ b/libsanitizer/asan/Makefile.am +@@ -7,7 +7,7 @@ DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D + if USING_MAC_INTERPOSE + DEFS += -DMAC_INTERPOSE_FUNCTIONS -DMISSING_BLOCKS_SUPPORT + endif +-AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -fno-ipa-icf ++AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -fno-ipa-icf + AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) + AM_CXXFLAGS += -std=gnu++11 + ACLOCAL_AMFLAGS = -I $(top_srcdir) -I $(top_srcdir)/config +diff --git a/libsanitizer/asan/Makefile.in b/libsanitizer/asan/Makefile.in +index edbed4d..690d41a 100644 +--- a/libsanitizer/asan/Makefile.in ++++ b/libsanitizer/asan/Makefile.in +@@ -297,7 +297,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) + # May be used by toolexeclibdir. + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ +- -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti \ ++ -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti \ + -fomit-frame-pointer -funwind-tables -fvisibility=hidden \ + -Wno-variadic-macros -fno-ipa-icf \ + $(LIBSTDCXX_RAW_CXX_CXXFLAGS) -std=gnu++11 +diff --git a/libsanitizer/interception/Makefile.am b/libsanitizer/interception/Makefile.am +index 4fb69a9..6df9645 100644 +--- a/libsanitizer/interception/Makefile.am ++++ b/libsanitizer/interception/Makefile.am +@@ -4,7 +4,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + + DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS +-AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros ++AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros + AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) + AM_CXXFLAGS += -std=gnu++11 + ACLOCAL_AMFLAGS = -I m4 +diff --git a/libsanitizer/interception/Makefile.in b/libsanitizer/interception/Makefile.in +index 3dfa774..422593f 100644 +--- a/libsanitizer/interception/Makefile.in ++++ b/libsanitizer/interception/Makefile.in +@@ -247,7 +247,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) + # May be used by toolexeclibdir. + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ +- -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti \ ++ -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti \ + -fomit-frame-pointer -funwind-tables -fvisibility=hidden \ + -Wno-variadic-macros $(LIBSTDCXX_RAW_CXX_CXXFLAGS) \ + -std=gnu++11 +diff --git a/libsanitizer/lsan/Makefile.am b/libsanitizer/lsan/Makefile.am +index 03ec4fe..55a1d33 100644 +--- a/libsanitizer/lsan/Makefile.am ++++ b/libsanitizer/lsan/Makefile.am +@@ -4,7 +4,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + + DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS +-AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros ++AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros + AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) + AM_CXXFLAGS += -std=gnu++11 + ACLOCAL_AMFLAGS = -I m4 +diff --git a/libsanitizer/lsan/Makefile.in b/libsanitizer/lsan/Makefile.in +index b02c373..bb0475f 100644 +--- a/libsanitizer/lsan/Makefile.in ++++ b/libsanitizer/lsan/Makefile.in +@@ -288,7 +288,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) + # May be used by toolexeclibdir. + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ +- -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti \ ++ -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti \ + -fomit-frame-pointer -funwind-tables -fvisibility=hidden \ + -Wno-variadic-macros $(LIBSTDCXX_RAW_CXX_CXXFLAGS) \ + -std=gnu++11 +diff --git a/libsanitizer/sanitizer_common/Makefile.am b/libsanitizer/sanitizer_common/Makefile.am +index d541717..7b302b3 100644 +--- a/libsanitizer/sanitizer_common/Makefile.am ++++ b/libsanitizer/sanitizer_common/Makefile.am +@@ -4,7 +4,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -isystem $(top_srcdir)/include/system + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + + DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS @RPC_DEFS@ +-AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros ++AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros + AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) + AM_CXXFLAGS += -std=gnu++11 + if LIBBACKTRACE_SUPPORTED +diff --git a/libsanitizer/sanitizer_common/Makefile.in b/libsanitizer/sanitizer_common/Makefile.in +index 6614524..d2fd290 100644 +--- a/libsanitizer/sanitizer_common/Makefile.in ++++ b/libsanitizer/sanitizer_common/Makefile.in +@@ -275,7 +275,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -isystem $(top_srcdir)/include/system + # May be used by toolexeclibdir. + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ +- -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti \ ++ -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti \ + -fomit-frame-pointer -funwind-tables -fvisibility=hidden \ + -Wno-variadic-macros $(LIBSTDCXX_RAW_CXX_CXXFLAGS) \ + -std=gnu++11 $(am__append_1) +diff --git a/libsanitizer/tsan/Makefile.am b/libsanitizer/tsan/Makefile.am +index abfafb7..5e8a6ba 100644 +--- a/libsanitizer/tsan/Makefile.am ++++ b/libsanitizer/tsan/Makefile.am +@@ -4,7 +4,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + + DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS +-AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros ++AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros + AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) + AM_CXXFLAGS += -std=gnu++11 + ACLOCAL_AMFLAGS = -I m4 +diff --git a/libsanitizer/tsan/Makefile.in b/libsanitizer/tsan/Makefile.in +index 8b20d28..ec5243d 100644 +--- a/libsanitizer/tsan/Makefile.in ++++ b/libsanitizer/tsan/Makefile.in +@@ -301,7 +301,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include + # May be used by toolexeclibdir. + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ +- -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti \ ++ -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti \ + -fomit-frame-pointer -funwind-tables -fvisibility=hidden \ + -Wno-variadic-macros $(LIBSTDCXX_RAW_CXX_CXXFLAGS) \ + -std=gnu++11 +diff --git a/libsanitizer/ubsan/Makefile.am b/libsanitizer/ubsan/Makefile.am +index 12d1ffa..83b6b5c 100644 +--- a/libsanitizer/ubsan/Makefile.am ++++ b/libsanitizer/ubsan/Makefile.am +@@ -4,7 +4,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + + DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DPIC +-AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros ++AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros + AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) + AM_CXXFLAGS += -std=gnu++11 + ACLOCAL_AMFLAGS = -I m4 +diff --git a/libsanitizer/ubsan/Makefile.in b/libsanitizer/ubsan/Makefile.in +index 64aad19..f5748b9 100644 +--- a/libsanitizer/ubsan/Makefile.in ++++ b/libsanitizer/ubsan/Makefile.in +@@ -284,7 +284,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include + # May be used by toolexeclibdir. + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ +- -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti \ ++ -Wno-long-long -fno-builtin -fno-exceptions -fno-rtti \ + -fomit-frame-pointer -funwind-tables -fvisibility=hidden \ + -Wno-variadic-macros $(LIBSTDCXX_RAW_CXX_CXXFLAGS) \ + -std=gnu++11 +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch b/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch new file mode 100644 index 0000000000..53ecfdb4ad --- /dev/null +++ b/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch @@ -0,0 +1,141 @@ +From 7b251040713e1d684865ebefc752515817fd2a0a Mon Sep 17 00:00:00 2001 +From: LRN +Date: Wed, 5 Aug 2015 19:12:24 +0100 +Subject: [PATCH 19/20] MinGW-w64: Port sanitizer + +--- + libsanitizer/asan/asan_win.cc | 3 --- + libsanitizer/configure | 30 +++++++++++++++++++++++-- + libsanitizer/configure.ac | 5 +++-- + libsanitizer/sanitizer_common/sanitizer_libc.cc | 4 ++++ + libsanitizer/ubsan/ubsan_value.h | 2 +- + 5 files changed, 36 insertions(+), 8 deletions(-) + +diff --git a/libsanitizer/asan/asan_win.cc b/libsanitizer/asan/asan_win.cc +index b002876..7b93331 100644 +--- a/libsanitizer/asan/asan_win.cc ++++ b/libsanitizer/asan/asan_win.cc +@@ -63,9 +63,6 @@ void MaybeReexec() { + } + + void *AsanDoesNotSupportStaticLinkage() { +-#if defined(_DEBUG) +-#error Please build the runtime with a non-debug CRT: /MD or /MT +-#endif + return 0; + } + +diff --git a/libsanitizer/configure b/libsanitizer/configure +index 809f0d7..75fbc0e 100755 +--- a/libsanitizer/configure ++++ b/libsanitizer/configure +@@ -628,6 +628,7 @@ TSAN_SUPPORTED_FALSE + TSAN_SUPPORTED_TRUE + enable_static + enable_shared ++lt_host_flags + CXXCPP + OTOOL64 + OTOOL +@@ -15387,6 +15388,31 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + ++ ++ ++case $host in ++ *-cygwin* | *-mingw*) ++ # 'host' will be top-level target in the case of a target lib, ++ # we must compare to with_cross_host to decide if this is a native ++ # or cross-compiler and select where to install dlls appropriately. ++ if test -n "$with_cross_host" && ++ test x"$with_cross_host" != x"no"; then ++ lt_host_flags='-no-undefined -bindir "$(toolexeclibdir)"'; ++ else ++ lt_host_flags='-no-undefined -bindir "$(bindir)"'; ++ fi ++ ;; ++ *) ++ lt_host_flags= ++ ;; ++esac ++ ++ ++ ++ ++ ++ ++ + for ac_prog in gawk mawk nawk awk + do + # Extract the first word of "$ac_prog", so it can be a program name with args. +@@ -15514,10 +15540,10 @@ done + + + # Common libraries that we need to link against for all sanitizer libs. +-link_sanitizer_common='-lpthread -ldl -lm' ++link_sanitizer_common="-lpthread -lm $lt_host_flags" + + # Set up the set of additional libraries that we need to link against for libasan. +-link_libasan=$link_sanitizer_common ++link_libasan="$link_sanitizer_common -ldbghelp" + + + # Set up the set of additional libraries that we need to link against for libtsan. +diff --git a/libsanitizer/configure.ac b/libsanitizer/configure.ac +index 11e2d99..18967fe 100644 +--- a/libsanitizer/configure.ac ++++ b/libsanitizer/configure.ac +@@ -74,6 +74,7 @@ case "$AWK" in + "") AC_MSG_ERROR([can't build without awk]) ;; + esac + ++ACX_LT_HOST_FLAGS + AC_SUBST(enable_shared) + AC_SUBST(enable_static) + +@@ -96,10 +97,10 @@ AM_CONDITIONAL(LSAN_SUPPORTED, [test "x$LSAN_SUPPORTED" = "xyes"]) + AC_CHECK_FUNCS(clock_getres clock_gettime clock_settime) + + # Common libraries that we need to link against for all sanitizer libs. +-link_sanitizer_common='-lpthread -ldl -lm' ++link_sanitizer_common="-lpthread -lm $lt_host_flags" + + # Set up the set of additional libraries that we need to link against for libasan. +-link_libasan=$link_sanitizer_common ++link_libasan="$link_sanitizer_common -ldbghelp" + AC_SUBST(link_libasan) + + # Set up the set of additional libraries that we need to link against for libtsan. +diff --git a/libsanitizer/sanitizer_common/sanitizer_libc.cc b/libsanitizer/sanitizer_common/sanitizer_libc.cc +index c13a66d..3ad62d9 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_libc.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_libc.cc +@@ -18,7 +18,11 @@ namespace __sanitizer { + static inline void break_optimization(void *arg) { + #if _MSC_VER + // FIXME: make sure this is actually enough. ++# ifdef __GNUC__ ++ __asm__ __volatile__("" : : "r" (arg) : "memory"); ++# else + __asm; ++# endif + #else + __asm__ __volatile__("" : : "r" (arg) : "memory"); + #endif +diff --git a/libsanitizer/ubsan/ubsan_value.h b/libsanitizer/ubsan/ubsan_value.h +index abfd31f..e1fa725 100644 +--- a/libsanitizer/ubsan/ubsan_value.h ++++ b/libsanitizer/ubsan/ubsan_value.h +@@ -14,7 +14,7 @@ + + // For now, only support Linux, FreeBSD and Darwin. Other platforms should + // be easy to add, and probably work as-is. +-#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__APPLE__) ++#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__APPLE__) && !defined(_WIN32) + #error "UBSan not supported for this platform!" + #endif + +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch b/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch new file mode 100644 index 0000000000..1ce6255ee9 --- /dev/null +++ b/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch @@ -0,0 +1,84 @@ +From 9e898ceb8687d93504f008c3fcb9960d65f49a32 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 5 Aug 2015 19:14:05 +0100 +Subject: [PATCH 20/20] Force linking to libgcc_s_dw2-1.dll [deprecated] + +.. by adding to specs: +*libgcc +--undefined=___deregister_frame_info +--undefined=___register_frame_info + +These flags get added twice to the ld command line +because of %G appearing twice in: +*link_gcc_c_sequence +%G %L %G +so this should be tidied up really. + +20150805 update: + +Looking at this again, it seems that the +SHARED_LIBGCC_UNDEFS_SPEC stuff added in commit 7d804f +does the same thing, so my hack may not be needed. It +would appear that for some time, DWARF2_UNWIND_INFO +was not defined, but it's OK now. Latest specs have: +*shared_libgcc_undefs: +%{shared-libgcc: -u ___register_frame_info -u ___deregister_frame_info} +--- + gcc/config/i386/cygwin.h | 6 +++++- + gcc/config/i386/mingw32.h | 8 ++++++-- + 2 files changed, 11 insertions(+), 3 deletions(-) + +diff --git a/gcc/config/i386/cygwin.h b/gcc/config/i386/cygwin.h +index 2186937..7f71ccc 100644 +--- a/gcc/config/i386/cygwin.h ++++ b/gcc/config/i386/cygwin.h +@@ -55,6 +55,10 @@ along with GCC; see the file COPYING3. If not see + fvtable-verify=std:vtv_end.o%s} \ + crtend.o%s" + ++/* There is a bug when building i686 dw-2 exceptions ++ where gcc_s gets stripped which this works around */ ++#define PREVENT_STRIP_REG_FRAME_INFO "--undefined=___deregister_frame_info --undefined=___register_frame_info" ++ + /* Normally, -lgcc is not needed since everything in it is in the DLL, but we + want to allow things to be added to it when installing new versions of + GCC without making a new CYGWIN.DLL, so we leave it. Profiling is handled +@@ -65,7 +69,7 @@ along with GCC; see the file COPYING3. If not see + %{static|static-libgcc:-lgcc -lgcc_eh} \ + %{!static: \ + %{!static-libgcc: \ +- -lgcc_s -lgcc \ ++ -lgcc_s " PREVENT_STRIP_REG_FRAME_INFO " -lgcc \ + } \ + } " + #else +diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h +index 47e12e7..9afe794 100644 +--- a/gcc/config/i386/mingw32.h ++++ b/gcc/config/i386/mingw32.h +@@ -120,6 +120,10 @@ along with GCC; see the file COPYING3. If not see + %{shared|mdll: " SUB_LINK_ENTRY " --enable-auto-image-base} \ + %(shared_libgcc_undefs)" + ++/* There is a bug when building i686 dw-2 exceptions ++ where gcc_s gets stripped which this works around */ ++#define PREVENT_STRIP_REG_FRAME_INFO "--undefined=___deregister_frame_info --undefined=___register_frame_info" ++ + /* Include in the mingw32 libraries with libgcc */ + #ifdef ENABLE_SHARED_LIBGCC + #define SHARED_LIBGCC_SPEC " \ +@@ -128,9 +132,9 @@ along with GCC; see the file COPYING3. If not see + %{!static-libgcc: \ + %{!shared: \ + %{!shared-libgcc:-lgcc -lgcc_eh} \ +- %{shared-libgcc:-lgcc_s -lgcc} \ ++ %{shared-libgcc:-lgcc_s " PREVENT_STRIP_REG_FRAME_INFO " -lgcc} \ + } \ +- %{shared:-lgcc_s -lgcc} \ ++ %{shared:-lgcc_s " PREVENT_STRIP_REG_FRAME_INFO " -lgcc} \ + } \ + } " + #else +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD new file mode 100644 index 0000000000..9eb86f4db1 --- /dev/null +++ b/mingw-w64-gcc-git/PKGBUILD @@ -0,0 +1,432 @@ +# Maintainer: Alexey Pavlov +# Contributor: Alexey Borzenkov +# Contributor: Ray Donnelly +# Contributor: Renato Silva + +_realname=gcc +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" + "${MINGW_PACKAGE_PREFIX}-${_realname}-libs-git" + "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran-git" + "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran-git" + "${MINGW_PACKAGE_PREFIX}-${_realname}-ada-git" + "${MINGW_PACKAGE_PREFIX}-${_realname}-objc-git") +pkgver=r140392.d1588d6 +_realpkgver=5.2.0 +pkgrel=1 +pkgdesc="GCC for the MinGW-w64" +arch=('any') +url="http://gcc.gnu.org" +license=('GPL' 'LGPL' 'FDL' 'custom') +groups=("${MINGW_PACKAGE_PREFIX}-toolchain") +makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" + "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" + "${MINGW_PACKAGE_PREFIX}-binutils" + "${MINGW_PACKAGE_PREFIX}-crt" + "${MINGW_PACKAGE_PREFIX}-headers" + "${MINGW_PACKAGE_PREFIX}-gmp" + "${MINGW_PACKAGE_PREFIX}-isl" + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-mpc" + "${MINGW_PACKAGE_PREFIX}-mpfr" + "${MINGW_PACKAGE_PREFIX}-windows-default-manifest" + "${MINGW_PACKAGE_PREFIX}-winpthreads" + "${MINGW_PACKAGE_PREFIX}-zlib") +#checkdepends=('dejagnu') +optdepends=() +options=('staticlibs' '!emptydirs' '!strip' 'debug') +source=("git://gcc.gnu.org/git/gcc.git" + "0001-Relocate-libintl.patch" + "0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch" + "0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch" + "0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch" + "0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch" + "0006-Windows-Don-t-ignore-native-system-header-dir.patch" + "0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch" + "0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch" + "0009-Build-EXTRA_GNATTOOLS-for-Ada.patch" + "0010-Prettify-linking-no-undefined.patch" + "0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch" + "0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch" + "0013-Fix-using-large-PCH.patch" + "0014-Enable-shared-gnat-implib.patch" + "0015-MinGW-w64-Enable-libitm.patch" + "0016-MinGW-w64-Enable-libsanitizer.patch" + "0017-MinGW-w64-Enable-shared-gnat.patch" + "0018-MinGW-w64-No-fpic-in-sanitizer.patch" + "0019-MinGW-w64-Port-sanitizer.patch" + "0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch") +md5sums=('SKIP' + 'f08943b257ba20cad43ba572aec76330' + '98f6cd1c3a870f3c51304531d2e00a6d' + '5abc4ed7f691e62264880aad92bc5af1' + '8b010132e4a9d579eee079fdc2f60b6d' + 'df457a0aa7b454ee157c44b3ab2c50f1' + '8eb14e7179bfe9a60dc3af7896a31e46' + 'e8f51fc73d09c5336218431619235c05' + 'b5a5b08db4263542f801bd04fb2a2a2b' + 'd5c8231bc477b0cf5fe774513e523413' + '7b49b28767b3b96b1fad058793ae093e' + '0a48718e22267a2f00e2b6167ca62795' + '854dc8bcc0bc3b6bc58fa985e3074e85' + 'a622e68616cfa884255ec76856d9f999' + '76175d094d04b7fd9a55b542a2160e6c' + 'f7f5e99386996f409efa69bc4e966e75' + 'a597ba1ff82f080dbe07188a4b01a7cc' + 'a1c9552f62108c4fa5dac3efceeb9005' + 'b532d6cd6d2d31d6d191e3620bfc5f2c' + '63747ba9e1db8cd00ea8e19e26327ea8' + '35c6ac82deafbf28614b5676a608adb6') + +_threads="posix" + +pkgver() { + cd "$_realname" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd ${srcdir}/${_realname} + + git am "${srcdir}"/0001-Relocate-libintl.patch + git am "${srcdir}"/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch + git am "${srcdir}"/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch + git am "${srcdir}"/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch + git am "${srcdir}"/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch + git am "${srcdir}"/0006-Windows-Don-t-ignore-native-system-header-dir.patch + git am "${srcdir}"/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch + git am "${srcdir}"/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch + git am "${srcdir}"/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch + git am "${srcdir}"/0010-Prettify-linking-no-undefined.patch + git am "${srcdir}"/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch + git am "${srcdir}"/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch + git am "${srcdir}"/0013-Fix-using-large-PCH.patch + git am "${srcdir}"/0014-Enable-shared-gnat-implib.patch + git am "${srcdir}"/0015-MinGW-w64-Enable-libitm.patch + git am "${srcdir}"/0016-MinGW-w64-Enable-libsanitizer.patch + git am "${srcdir}"/0017-MinGW-w64-Enable-shared-gnat.patch + git am "${srcdir}"/0018-MinGW-w64-No-fpic-in-sanitizer.patch + git am "${srcdir}"/0019-MinGW-w64-Port-sanitizer.patch + git am "${srcdir}"/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch +} + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + case "${CARCH}" in + i686) + local _conf="--disable-sjlj-exceptions --with-dwarf2" + LDFLAGS+=" -Wl,--large-address-aware" + local _arch=i686 + ;; + + x86_64) + local _arch=x86-64 + local _conf="" + ;; + esac + + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --with-local-prefix=${MINGW_PREFIX}/local \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --with-native-system-header-dir=${MINGW_PREFIX}/${MINGW_CHOST}/include \ + --libexecdir=${MINGW_PREFIX}/lib \ + --with-gxx-include-dir=${MINGW_PREFIX}/include/c++/${pkgver} \ + --enable-bootstrap \ + --with-arch=${_arch} \ + --with-tune=generic \ + --enable-languages=c,lto,c++,objc,obj-c++,fortran,ada \ + --enable-shared --enable-static \ + --enable-libatomic \ + --enable-threads=${_threads} \ + --enable-graphite \ + --enable-fully-dynamic-string \ + --enable-libstdcxx-time=yes \ + --disable-libstdcxx-pch \ + --disable-libstdcxx-debug \ + --enable-version-specific-runtime-libs \ + --disable-isl-version-check \ + --enable-lto \ + --enable-libgomp \ + --disable-multilib \ + --enable-checking=release \ + --disable-rpath \ + --disable-win32-registry \ + --disable-nls \ + --disable-werror \ + --disable-symvers \ + --with-libiconv \ + --with-system-zlib \ + --with-{gmp,mpfr,mpc,isl}=${MINGW_PREFIX} \ + --with-pkgversion="Rev${pkgrel}, Built by MSYS2 project" \ + --with-bugurl="http://sourceforge.net/projects/msys2" \ + --with-gnu-as --with-gnu-ld \ + ${_conf} + #--enable-libitm + #--enable-objc-gc + + # While we're debugging -fopenmp problems at least. + # .. we may as well not strip anything. + if check_option "strip" "n"; then + sed -i 's,^STRIP = .*$,STRIP = true,g' Makefile + sed -i 's,^STRIP_FOR_TARGET=.*$,STRIP_FOR_TARGET=true,g' Makefile + fi + + make all + + make -j1 DESTDIR=${srcdir} install + mv ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/adalib/*.dll ${srcdir}${MINGW_PREFIX}/bin/ +} + +package_mingw-w64-gcc-git-libs() { + pkgdesc="GNU Compiler Collection (libraries) for MinGW-w64" + depends=("${MINGW_PACKAGE_PREFIX}-gmp" "${MINGW_PACKAGE_PREFIX}-libwinpthread") + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-libs") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-libs") + + # Licensing information + + # Part of the package is GCCRLE, part is LGPL2+, see README generation below. + # Since the packaged GCCRLE libraries are also GPL3+, and LGPL2+ is compatible + # with GPL3+, the whole package can be redistributed under GPL3+. + license=(GPL3+ partial:'GCCRLE' partial:'LGPL2+') + + # We explain the licensing in this generated README file + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs" + cat << ENDFILE > "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/README" +The libgcc, libssp, libstdc++, libgomp and libatomic libraries are covered by +GPL3+ with the GCC Runtime Library Exception. The libquadmath library is covered +by LGPL2+. The package as a whole can be redistributed under GPL3+. +ENDFILE + + # License files + install -Dm644 "${srcdir}/${_realname}/COPYING3" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/COPYING3" + install -Dm644 "${srcdir}/${_realname}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/COPYING.LIB" + install -Dm644 "${srcdir}/${_realname}/COPYING.RUNTIME" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/COPYING.RUNTIME" + + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin + + cd ${srcdir}${MINGW_PREFIX} + cp bin/{libatomic*,libgcc*,libgomp*,libquadmath*,libssp*,libstdc*,libvtv*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ +} + +package_mingw-w64-gcc() { + pkgdesc="GNU Compiler Collection (C,C++,OpenMP) for MinGW-w64" + depends=("${MINGW_PACKAGE_PREFIX}-binutils" + "${MINGW_PACKAGE_PREFIX}-crt" + "${MINGW_PACKAGE_PREFIX}-headers" + "${MINGW_PACKAGE_PREFIX}-isl" + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-mpc" + "${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}-${pkgrel}" + "${MINGW_PACKAGE_PREFIX}-windows-default-manifest" + "${MINGW_PACKAGE_PREFIX}-winpthreads" + "${MINGW_PACKAGE_PREFIX}-zlib") + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-gcc") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-gcc") + + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,include,lib,share} + + cd ${srcdir}${MINGW_PREFIX} + cp bin/cpp.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcc.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcc-ar.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcc-nm.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcov.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/gcov-tool.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/c++.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/g++.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-c++.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-g++.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-gcc-${_realpkgver}.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-gcc.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-gcc-ar.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-gcc-nm.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/ + + #cp bin/{libgcc*,libgomp*,libquadmath*,libssp*,libstdc*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include + cp lib/gcc/${MINGW_CHOST}/${pkgver}/include/*.h ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/ssp ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include-fixed ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/install-tools ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/collect2.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/crt*.o ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/liblto* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libatomic* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcc* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcov* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgomp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libquadmath* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libssp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libvtv* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/lto*.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + + #mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib + cp ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/libgcc_s.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + #cp lib/gcc/${MINGW_CHOST}/lib/libgcc_s.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/ + + #cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/c++ ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ + cp -r include/c++ ${pkgdir}${MINGW_PREFIX}/include/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1plus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libstdc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libsupc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/{doc,info,locale,man} + #cp -r share/doc/gcc-${pkgver} ${pkgdir}${MINGW_PREFIX}/share/doc/ + cp share/info/cpp.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/cppinternals.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gcc.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gccinstall.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gccint.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/libgomp.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/libquadmath.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + + #cp share/locale/* ${pkgdir}${MINGW_PREFIX}/share/locale/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver}/python + cp -r share/gcc-${pkgver}/python/libstdcxx ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver}/python/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/man/man1 + cp share/man/man1/cpp.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man1/gcc.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man1/gcov.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man7/fsf-funding.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man7/gfdl.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man7/gpl.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + cp share/man/man1/g++.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ +} + +package_mingw-w64-gcc-libgfortran() { + pkgdesc="GNU Compiler Collection (libgfortran) for MinGW-w64" + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-libs-git=${pkgver}-${pkgrel}") + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran") + + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin + cd ${srcdir}${MINGW_PREFIX} + cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/ +} + +package_mingw-w64-gcc-fortran() { + pkgdesc="GNU Compiler Collection (Fortran) for MinGW-w64" + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-git=${pkgver}-${pkgrel}" + "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran=${pkgver}-${pkgrel}") + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-fortran") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-fortran") + + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share} + + cd ${srcdir}${MINGW_PREFIX} + cp bin/gfortran.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp bin/${MINGW_CHOST}-gfortran.exe ${pkgdir}${MINGW_PREFIX}/bin/ + + #cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/ + + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver} + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/finclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/f951.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libcaf_single.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgfortran* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/man/man1 + cp share/man/man1/gfortran.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/info + cp share/info/gfortran.info* ${pkgdir}${MINGW_PREFIX}/share/info/ +} + +package_mingw-w64-gcc-ada() { + pkgdesc="GNU Compiler Collection (Ada) for MinGW-w64" + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-git=${pkgver}-${pkgrel}") + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-ada") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-ada") + + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share} + + cd ${srcdir}${MINGW_PREFIX} + cp bin/gnat*.exe ${pkgdir}${MINGW_PREFIX}/bin/ + + cp bin/{libgnarl*,libgnat*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ + + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver} + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adainclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adalib ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/gnat1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/info + cp share/info/gnat-style.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gnat_rm.info* ${pkgdir}${MINGW_PREFIX}/share/info/ + cp share/info/gnat_ugn.info* ${pkgdir}${MINGW_PREFIX}/share/info/ +} + +package_mingw-w64-gcc-objc-git() { + pkgdesc="GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64" + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-git=${pkgver}-${pkgrel}") + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-objc") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-objc") + + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib} + + cd ${srcdir}${MINGW_PREFIX} + cp bin/libobjc*.dll ${pkgdir}${MINGW_PREFIX}/bin/ + + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include + cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/objc ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1obj.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/libobjc.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1objplus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ +} + +# Wrappers for package functions + +# 32-bit wrappers +package_mingw-w64-i686-gcc-libs-git() { + package_mingw-w64-gcc-libs-git +} + +package_mingw-w64-i686-gcc-git() { + package_mingw-w64-gcc-git +} + +package_mingw-w64-i686-gcc-libgfortran-git() { + package_mingw-w64-gcc-libgfortran-git +} + +package_mingw-w64-i686-gcc-fortran-git() { + package_mingw-w64-gcc-fortran-git +} + +package_mingw-w64-i686-gcc-ada-git() { + package_mingw-w64-gcc-ada-git +} + +package_mingw-w64-i686-gcc-objc-git() { + package_mingw-w64-gcc-objc-git +} + +# 64-bit wrappers +package_mingw-w64-x86_64-gcc-libs-git() { + package_mingw-w64-gcc-libs-git +} + +package_mingw-w64-x86_64-gcc-git() { + package_mingw-w64-gcc-git +} + +package_mingw-w64-x86_64-gcc-libgfortran-git() { + package_mingw-w64-gcc-libgfortran-git +} + +package_mingw-w64-x86_64-gcc-fortran-git() { + package_mingw-w64-gcc-fortran-git +} + +package_mingw-w64-x86_64-gcc-ada-git() { + package_mingw-w64-gcc-ada-git +} + +package_mingw-w64-x86_64-gcc-objc-git() { + package_mingw-w64-gcc-objc-git +} From 9ec394e000e87156b441d49eda9be8dd39caa924 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 6 Aug 2015 08:44:56 +0100 Subject: [PATCH 1431/2060] luatex-svn, pdftex-svn: New packages (WIP) --- ...kpathsea-win32-mktex.h-and-mkpaths.c.patch | 157 ++++++++++++++++++ mingw-w64-luatex-svn/PKGBUILD | 36 ++++ mingw-w64-pdftex-svn/PKGBUILD | 30 ++++ 3 files changed, 223 insertions(+) create mode 100644 mingw-w64-luatex-svn/0001-Add-missing-kpathsea-win32-mktex.h-and-mkpaths.c.patch create mode 100644 mingw-w64-luatex-svn/PKGBUILD create mode 100644 mingw-w64-pdftex-svn/PKGBUILD diff --git a/mingw-w64-luatex-svn/0001-Add-missing-kpathsea-win32-mktex.h-and-mkpaths.c.patch b/mingw-w64-luatex-svn/0001-Add-missing-kpathsea-win32-mktex.h-and-mkpaths.c.patch new file mode 100644 index 0000000000..83425ee7bf --- /dev/null +++ b/mingw-w64-luatex-svn/0001-Add-missing-kpathsea-win32-mktex.h-and-mkpaths.c.patch @@ -0,0 +1,157 @@ +diff -urN build-x86_64.orig/source/texk/kpathsea/win32/mkpaths.c build-x86_64/source/texk/kpathsea/win32/mkpaths.c +--- build-x86_64.orig/source/texk/kpathsea/win32/mkpaths.c 1970-01-01 01:00:00.000000000 +0100 ++++ build-x86_64/source/texk/kpathsea/win32/mkpaths.c 2015-08-05 22:32:42.035330000 +0100 +@@ -0,0 +1,95 @@ ++/* mkpaths.c ++ ++ Copyright 2015 Akira Kakuto. ++ ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ This library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this library; if not, see . ++*/ ++ ++#include ++#include "mktex.h" ++ ++char ** ++mkpaths (int *numptr) ++{ ++ char **pathbuff; ++ char *texmfdbs; ++ char *p, *pa, *pc; ++ int i; ++ ++ if (!(p = kpse_var_value ("TEXMFDBS"))) { ++ fprintf (stderr, "No definition of TEXMFDBS.\n"); ++ return NULL; ++ } ++ ++ texmfdbs = kpse_brace_expand (p); ++ free (p); ++ if (!texmfdbs) { ++ fprintf (stderr, "I cannot expand braces in TEXMFDBS.\n"); ++ return NULL; ++ } ++ ++ p = texmfdbs; ++ i = 0; ++ ++ while(*p) { ++ if(*p == '!' && *(p+1) == '!') ++ p += 2; ++ if(*p == ';') ++ while(*p == ';') ++ p++; ++ if(*p && *p != '!') { ++ while(*p != ';' && *p) ++ p++; ++ i++; ++ while(*p == ';') ++ p++; ++ } ++ } ++ ++ if (!i) { ++ free (texmfdbs); ++ fprintf (stderr, "No database paths in TEXMFDBS.\n"); ++ return NULL; ++ } ++ ++ *numptr = i; ++ pathbuff = xmalloc(i * sizeof(char *)); ++ ++ p = texmfdbs; ++ i = 0; ++ ++ while (*p) { ++ if (*p == '!' && *(p + 1) == '!') ++ p += 2; ++ if (*p == ';') { ++ while (*p == ';') ++ p++; ++ } ++ if(*p && *p != '!') { ++ pa = p; ++ while(*p != ';' && *p) ++ p++; ++ pc = p; ++ pathbuff[i] = xmalloc(pc - pa + 1); ++ strncpy(pathbuff[i], pa, pc - pa); ++ pathbuff[i][pc - pa] = 0; ++ i++; ++ while(*p == ';') ++ p++; ++ } ++ } ++ ++ free(texmfdbs); ++ return pathbuff; ++} +diff -urN build-x86_64.orig/source/texk/kpathsea/win32/mktex.h build-x86_64/source/texk/kpathsea/win32/mktex.h +--- build-x86_64.orig/source/texk/kpathsea/win32/mktex.h 1970-01-01 01:00:00.000000000 +0100 ++++ build-x86_64/source/texk/kpathsea/win32/mktex.h 2015-08-05 22:32:42.050930000 +0100 +@@ -0,0 +1,54 @@ ++/* mktex.h ++ ++ Copyright 2000, 2015 Akira Kakuto. ++ ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ This library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this library; if not, see . ++*/ ++ ++#ifndef MKTEX_H ++#define MKTEX_H ++ ++static inline void ++normalize (char *p) { ++ for (; *p; p++) { ++ if (IS_KANJI(p)) ++ p++; ++ else if (*p == '\\') ++ *p = '/'; ++ } ++} ++ ++/* dirutil.c */ ++extern int is_dir (char *buff); ++extern int make_dir (char *buff); ++extern int make_dir_p (char *buff); ++ ++/* getdestdir.c ++ ++ from mktexmf: ++ argv[0] = "Dummy", argv[1] = "source", argv[2] = path ++ from mktexpk: ++ argv[0] = "Dummy", argv[1] = "pk", argv[2] = path, argv[3] = mode ++ from mktextfm: ++ argv[0] = "Dummy", argv[1] = "tfm", argv[2] = path ++*/ ++extern char *getdestdir (int ac, char **av); ++ ++/* mkpaths.c */ ++extern char **mkpaths (int *numptr); ++ ++/* mktexupd.c*/ ++extern void mktexupd (char *s); ++ ++#endif diff --git a/mingw-w64-luatex-svn/PKGBUILD b/mingw-w64-luatex-svn/PKGBUILD new file mode 100644 index 0000000000..0dc3b91069 --- /dev/null +++ b/mingw-w64-luatex-svn/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: Ray Donnelly + +_realname=luatex +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.0 +pkgrel=1 +url="https://foundry.supelec.fr/projects/luatex" +arch=('any') +makedepends=('svn') +# source=(xetex-code::git://git.code.sf.net/p/xetex/code) +source=('0001-Add-missing-kpathsea-win32-mktex.h-and-mkpaths.c.patch') +sha1sums=('552d40b8045fa34f06d83395dde7be18bac21ceb') +_svntrunk=https://foundry.supelec.fr/svn/luatex/trunk + +prepare() { + msg "Connecting to $_svntrunk SVN server...." + if [[ -d ${_realname}/.svn ]]; then + (cd ${_realname} && svn up --username anonsvn --password anonsvn) + else + svn co --username anonsvn --password anonsvn $_svntrunk --config-dir ./ ${_realname} + fi + # [[ -d ${_realname}/source/src/texk/texlive ]] && rm -rf ${_realname}/source/src/texk/texlive + # cp -rf xetex-code/source/texk/texlive ${_realname}/source/src/texk/ + patch -p1 -i "${srcdir}"/0001-Add-missing-kpathsea-win32-mktex.h-and-mkpaths.c.patch +} + +build() { + [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} + mv "${srcdir}"/${_realname} build-${CARCH} + cd build-${CARCH} + ./build.sh +} + +package() { + msg "lol" +} diff --git a/mingw-w64-pdftex-svn/PKGBUILD b/mingw-w64-pdftex-svn/PKGBUILD new file mode 100644 index 0000000000..9ae5cf7b49 --- /dev/null +++ b/mingw-w64-pdftex-svn/PKGBUILD @@ -0,0 +1,30 @@ +# Maintainer: Ray Donnelly + +_realname=pdftex +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.0 +pkgrel=1 +url="https://foundry.supelec.fr/projects/pdftex" +arch=('any') +makedepends=('svn') +source=(xetex-code::git://git.code.sf.net/p/xetex/code) +sha1sums=('SKIP') +_svntrunk=https://foundry.supelec.fr/svn/pdftex/branches/stable + +build() { + cd "${srcdir}" + msg "Connecting to $_svntrunk SVN server...." + if [[ -d ${_realname}/.svn ]]; then + (cd ${_realname} && svn up --username anonsvn --password anonsvn) + else + svn co --username anonsvn --password anonsvn $_svntrunk --config-dir ./ ${_realname} + fi + [[ -d ${_realname}/source/src/texk/texlive ]] && rm -rf ${_realname}/source/src/texk/texlive + cp -rf xetex-code/source/texk/texlive ${_realname}/source/src/texk/ + cd ${_realname}/source + ./build-pdftex.sh +} + +package() { + msg "lol" +} From 2dbd49e8ee0772a488986a5e51c995fb556406e1 Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Fri, 7 Aug 2015 00:42:03 +1000 Subject: [PATCH 1432/2060] ffmpeg: Use libdcadec --- mingw-w64-ffmpeg/PKGBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index cde0e209ae..b3c15b34f6 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -3,7 +3,7 @@ _realname=ffmpeg pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.7.2 -pkgrel=1 +pkgrel=2 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" @@ -12,6 +12,7 @@ options=('staticlibs' 'strip') depends=( "${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-celt" + "${MINGW_PACKAGE_PREFIX}-dcadec-git" "${MINGW_PACKAGE_PREFIX}-fontconfig" "${MINGW_PACKAGE_PREFIX}-gnutls" "${MINGW_PACKAGE_PREFIX}-gsm" @@ -69,6 +70,7 @@ build() { --enable-libbluray \ --enable-libcaca \ --enable-libcelt \ + --enable-libdcadec \ --enable-libfreetype \ --enable-libgsm \ --enable-libmodplug \ From 9ad9440ef39312ca2bce1a54d77325984d4e7f84 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 6 Aug 2015 19:13:44 +0100 Subject: [PATCH 1433/2060] gcc-git: Refresh patches --- mingw-w64-gcc-git/0001-Relocate-libintl.patch | 4 +- ...e-_ZTC-in-libstdc-exports-deprecated.patch | 4 +- ..._weakref__-on-__MINGW32__-deprecated.patch | 4 +- ...osix-dir-exists-semantics-more-close.patch | 4 +- ...not-in-progpath-and-leave-case-as-is.patch | 4 +- ...on-t-ignore-native-system-header-dir.patch | 4 +- ...-feature-to-allow-overriding-lmsvcrt.patch | 4 +- ..._malloc_cleared-instead-of-gomp_mall.patch | 4 +- .../0009-Build-EXTRA_GNATTOOLS-for-Ada.patch | 4 +- .../0010-Prettify-linking-no-undefined.patch | 4 +- ...in-header-cplusplus-compatible-depre.patch | 4 +- ...too-late-resolved-__EH_FRAME_BEGIN__.patch | 4 +- .../0013-Fix-using-large-PCH.patch | 4 +- .../0014-Enable-shared-gnat-implib.patch | 4 +- .../0015-MinGW-w64-Enable-libitm.patch | 4 +- .../0016-MinGW-w64-Enable-libsanitizer.patch | 4 +- .../0017-MinGW-w64-Enable-shared-gnat.patch | 4 +- .../0018-MinGW-w64-No-fpic-in-sanitizer.patch | 4 +- .../0019-MinGW-w64-Port-sanitizer.patch | 4 +- ...ing-to-libgcc_s_dw2-1.dll-deprecated.patch | 4 +- mingw-w64-gcc-git/PKGBUILD | 42 +++++++++---------- 21 files changed, 61 insertions(+), 61 deletions(-) diff --git a/mingw-w64-gcc-git/0001-Relocate-libintl.patch b/mingw-w64-gcc-git/0001-Relocate-libintl.patch index 4c48b7ad3b..259fa7824a 100644 --- a/mingw-w64-gcc-git/0001-Relocate-libintl.patch +++ b/mingw-w64-gcc-git/0001-Relocate-libintl.patch @@ -1,6 +1,6 @@ -From ccd41b45c8f72d55cdb51bf7bb25a49bf6afeb26 Mon Sep 17 00:00:00 2001 +From b6b426d1dff238d33d20d154dadd86cd132d80b6 Mon Sep 17 00:00:00 2001 From: Erwin Waterlander -Date: Wed, 5 Aug 2015 17:06:35 +0100 +Date: Wed, 5 Aug 2015 23:36:03 +0100 Subject: [PATCH 01/20] Relocate libintl The relocatex-libintl patch adds builtin relocation for executables to the diff --git a/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch b/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch index 1b3dab3552..991365ba0c 100644 --- a/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch +++ b/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch @@ -1,6 +1,6 @@ -From 72514b8268b8caf2c91fafee1328faaf9930029e Mon Sep 17 00:00:00 2001 +From 2b44424aaa56ecd90639f251f687dce613908066 Mon Sep 17 00:00:00 2001 From: gee -Date: Wed, 5 Aug 2015 17:08:18 +0100 +Date: Wed, 5 Aug 2015 23:36:04 +0100 Subject: [PATCH 02/20] PR54314: Include _ZTC* in libstdc++ exports [deprecated] diff --git a/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch b/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch index 3b6ca8bebd..dfe16360bb 100644 --- a/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch +++ b/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch @@ -1,6 +1,6 @@ -From 34716237430d66b94275fc2a7a55735da684e2d9 Mon Sep 17 00:00:00 2001 +From 260b7904701b0aa02c4e1ab43c2542e5606a0e79 Mon Sep 17 00:00:00 2001 From: niXman -Date: Wed, 5 Aug 2015 17:09:38 +0100 +Date: Wed, 5 Aug 2015 23:36:06 +0100 Subject: [PATCH 03/20] PR52300: Avoid __weakref__ on __MINGW32__ [deprecated] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52300 diff --git a/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch b/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch index 9ff8b0c09c..5408f3c838 100644 --- a/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch +++ b/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch @@ -1,6 +1,6 @@ -From 20778a468ff3a9628c0ca16526d2ee885fac5d1c Mon Sep 17 00:00:00 2001 +From bd65a78dd2f1292a8b955beb1211d6a7a1fb80c9 Mon Sep 17 00:00:00 2001 From: Ray Donnelly -Date: Wed, 5 Aug 2015 17:13:08 +0100 +Date: Wed, 5 Aug 2015 23:36:07 +0100 Subject: [PATCH 04/20] Windows: Follow Posix dir-exists semantics more closely Make Windows behave the same as Posix in the consideration diff --git a/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch b/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch index a5f6fa97de..769f5c133d 100644 --- a/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch +++ b/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch @@ -1,6 +1,6 @@ -From 3e31f83eaa190eb54cfcf8b4a88a75de829993e4 Mon Sep 17 00:00:00 2001 +From ea5fee260bab088a1592850841ffacf31a4d372c Mon Sep 17 00:00:00 2001 From: Ray Donnelly -Date: Wed, 5 Aug 2015 17:15:45 +0100 +Date: Wed, 5 Aug 2015 23:36:09 +0100 Subject: [PATCH 05/20] Windows: Use '/' not '\' in progpath and leave case as-is diff --git a/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch b/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch index 7121900e98..2414e05e44 100644 --- a/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch +++ b/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch @@ -1,6 +1,6 @@ -From dd46f32bf53cffcc7d0be4319202127d81010ebd Mon Sep 17 00:00:00 2001 +From 24d814492323f52213bfcc11faddd7595438feb7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly -Date: Wed, 5 Aug 2015 18:29:21 +0100 +Date: Wed, 5 Aug 2015 23:36:11 +0100 Subject: [PATCH 06/20] Windows: Don't ignore native system header dir --- diff --git a/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch b/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch index eba5699981..8f0e20ae8d 100644 --- a/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch +++ b/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch @@ -1,6 +1,6 @@ -From 4445afbe7982dfbad9ce4102e6db3e6a4ca2d975 Mon Sep 17 00:00:00 2001 +From f8ac675147aad6e4e9b0f8191850219275f5e84b Mon Sep 17 00:00:00 2001 From: Ray Donnelly -Date: Wed, 5 Aug 2015 18:49:17 +0100 +Date: Wed, 5 Aug 2015 23:36:13 +0100 Subject: [PATCH 07/20] Windows: New feature to allow overriding -lmsvcrt Added in support of the MinGW-w64 WIP feature "agile mscvrt dll" where diff --git a/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch b/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch index b5ed9981ed..c1d7bdfe64 100644 --- a/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch +++ b/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch @@ -1,6 +1,6 @@ -From b64e941c94a777083713996932c91b8bad93df4a Mon Sep 17 00:00:00 2001 +From fd726b253eacd3eff277ba657356a05118ad6293 Mon Sep 17 00:00:00 2001 From: Kai Tietz -Date: Wed, 5 Aug 2015 18:49:42 +0100 +Date: Wed, 5 Aug 2015 23:36:16 +0100 Subject: [PATCH 08/20] libgomp: Use gomp_malloc_cleared instead of gomp_malloc [deprecated] diff --git a/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch b/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch index 3dd89cb68d..aaa6bffe54 100644 --- a/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch +++ b/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch @@ -1,6 +1,6 @@ -From 163dfc75425a89489106411925ffc19a11ff7a0f Mon Sep 17 00:00:00 2001 +From 9c42e39d4a2bc38c6075d365b1002c2adb61fc59 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov -Date: Wed, 5 Aug 2015 18:54:33 +0100 +Date: Wed, 5 Aug 2015 23:36:17 +0100 Subject: [PATCH 09/20] Build EXTRA_GNATTOOLS for Ada --- diff --git a/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch b/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch index 08e9055903..dfcdfa2f79 100644 --- a/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch +++ b/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch @@ -1,6 +1,6 @@ -From 47b01e1f412008d53de730e0d40b37ed5cf198c0 Mon Sep 17 00:00:00 2001 +From 2fa200353a8b283c4a40e34f5d54ff423c55d55a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov -Date: Wed, 5 Aug 2015 18:59:47 +0100 +Date: Wed, 5 Aug 2015 23:36:19 +0100 Subject: [PATCH 10/20] Prettify linking -no-undefined It might be better to put this change in a diff --git a/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch b/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch index b88a615224..004a9633e8 100644 --- a/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch +++ b/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch @@ -1,6 +1,6 @@ -From 26b3abf506f34571d92bdf24a8ac7b5090484b48 Mon Sep 17 00:00:00 2001 +From dd682ffedda9ea45d2008cc5d3e5d9df84112094 Mon Sep 17 00:00:00 2001 From: Erik van Pienbroek -Date: Wed, 5 Aug 2015 19:00:05 +0100 +Date: Wed, 5 Aug 2015 23:36:21 +0100 Subject: [PATCH 11/20] gcc: make xmmintrin header cplusplus compatible [deprecated] diff --git a/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch b/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch index 9ad61fd849..f78db3f263 100644 --- a/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch +++ b/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch @@ -1,6 +1,6 @@ -From a0cf060fdc05eeef347671590bef49199fecdd59 Mon Sep 17 00:00:00 2001 +From 859f1a908eda9dd3d2ebb7c3230f0ff154fd8eb8 Mon Sep 17 00:00:00 2001 From: Matt Breedlove -Date: Wed, 5 Aug 2015 19:00:33 +0100 +Date: Wed, 5 Aug 2015 23:36:22 +0100 Subject: [PATCH 12/20] Work around {un-,too-late-}resolved __EH_FRAME_BEGIN__ Here's the dwarf2 patch I'm using. With the change to checking diff --git a/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch b/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch index c0628a1300..27d0bff5ac 100644 --- a/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch +++ b/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch @@ -1,6 +1,6 @@ -From 94a17f994201d9f7305944bbd40ab548be01d16a Mon Sep 17 00:00:00 2001 +From 6f20aa489fc64a1087e73c948c0f607260a95d84 Mon Sep 17 00:00:00 2001 From: Martin Richter -Date: Wed, 5 Aug 2015 19:02:59 +0100 +Date: Wed, 5 Aug 2015 23:36:25 +0100 Subject: [PATCH 13/20] Fix using large PCH The following patch fixes segfault when gt_pch_use_address diff --git a/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch b/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch index b31f4e56af..504c0310a4 100644 --- a/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch +++ b/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch @@ -1,6 +1,6 @@ -From 2b18b4371519dd8ea3daba6f16bbd083b10a655c Mon Sep 17 00:00:00 2001 +From fe617455ae9c85165aad65094e351ec9d5fdeb39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Pfeifer?= -Date: Wed, 5 Aug 2015 19:03:20 +0100 +Date: Wed, 5 Aug 2015 23:36:27 +0100 Subject: [PATCH 14/20] Enable shared gnat implib Provide GNAT runtime import libraries to diff --git a/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch b/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch index 04596157b3..cf27f7df7f 100644 --- a/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch +++ b/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch @@ -1,6 +1,6 @@ -From e631686500141440351ea3a3b7bd56bc08863329 Mon Sep 17 00:00:00 2001 +From 3dc72ea0a2664ea703fe42bd63be5caa4849589d Mon Sep 17 00:00:00 2001 From: LRN -Date: Wed, 5 Aug 2015 19:03:35 +0100 +Date: Wed, 5 Aug 2015 23:36:29 +0100 Subject: [PATCH 15/20] MinGW-w64: Enable libitm --- diff --git a/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch b/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch index 5a9a35477d..7bd54b7854 100644 --- a/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch +++ b/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch @@ -1,6 +1,6 @@ -From e9dc59d772161149de30f79fce55d14a901055e9 Mon Sep 17 00:00:00 2001 +From b829a3d7b647c59b8bb86a599d125e6c049342f6 Mon Sep 17 00:00:00 2001 From: LRN -Date: Wed, 5 Aug 2015 19:03:42 +0100 +Date: Wed, 5 Aug 2015 23:36:31 +0100 Subject: [PATCH 16/20] MinGW-w64: Enable libsanitizer --- diff --git a/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch b/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch index aab8a576d2..fc519d2a70 100644 --- a/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch +++ b/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch @@ -1,6 +1,6 @@ -From 80a59baa620f287c4921ada1725f1a7724a1c4ae Mon Sep 17 00:00:00 2001 +From 7a5f7b5a63c67cbe9ed3f58f6f917fffab396eab Mon Sep 17 00:00:00 2001 From: LRN -Date: Wed, 5 Aug 2015 19:03:48 +0100 +Date: Wed, 5 Aug 2015 23:36:33 +0100 Subject: [PATCH 17/20] MinGW-w64: Enable shared gnat --- diff --git a/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch b/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch index 388f500653..5103bc9895 100644 --- a/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch +++ b/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch @@ -1,6 +1,6 @@ -From e9643afa6d31ef54f5d5c7e393cdedf1bd1cf56e Mon Sep 17 00:00:00 2001 +From 7658d287f15ccc9c1c38e5d7a70cd14f7eafca2f Mon Sep 17 00:00:00 2001 From: LRN -Date: Wed, 5 Aug 2015 19:03:54 +0100 +Date: Wed, 5 Aug 2015 23:36:35 +0100 Subject: [PATCH 18/20] MinGW-w64: No -fpic in sanitizer --- diff --git a/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch b/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch index 53ecfdb4ad..b1b8843bee 100644 --- a/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch +++ b/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch @@ -1,6 +1,6 @@ -From 7b251040713e1d684865ebefc752515817fd2a0a Mon Sep 17 00:00:00 2001 +From 5a233414dafa9df519ed3482d9d3bea9cee57d0c Mon Sep 17 00:00:00 2001 From: LRN -Date: Wed, 5 Aug 2015 19:12:24 +0100 +Date: Wed, 5 Aug 2015 23:36:37 +0100 Subject: [PATCH 19/20] MinGW-w64: Port sanitizer --- diff --git a/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch b/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch index 1ce6255ee9..66b01ed3fe 100644 --- a/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch +++ b/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch @@ -1,6 +1,6 @@ -From 9e898ceb8687d93504f008c3fcb9960d65f49a32 Mon Sep 17 00:00:00 2001 +From cfaf509bf9361774b06207d35d996cec42ff52da Mon Sep 17 00:00:00 2001 From: Ray Donnelly -Date: Wed, 5 Aug 2015 19:14:05 +0100 +Date: Wed, 5 Aug 2015 23:36:39 +0100 Subject: [PATCH 20/20] Force linking to libgcc_s_dw2-1.dll [deprecated] .. by adding to specs: diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD index 9eb86f4db1..57fc3ddf99 100644 --- a/mingw-w64-gcc-git/PKGBUILD +++ b/mingw-w64-gcc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc-git") -pkgver=r140392.d1588d6 +pkgver=r140393.28c4d97 _realpkgver=5.2.0 pkgrel=1 pkgdesc="GCC for the MinGW-w64" @@ -56,26 +56,26 @@ source=("git://gcc.gnu.org/git/gcc.git" "0019-MinGW-w64-Port-sanitizer.patch" "0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch") md5sums=('SKIP' - 'f08943b257ba20cad43ba572aec76330' - '98f6cd1c3a870f3c51304531d2e00a6d' - '5abc4ed7f691e62264880aad92bc5af1' - '8b010132e4a9d579eee079fdc2f60b6d' - 'df457a0aa7b454ee157c44b3ab2c50f1' - '8eb14e7179bfe9a60dc3af7896a31e46' - 'e8f51fc73d09c5336218431619235c05' - 'b5a5b08db4263542f801bd04fb2a2a2b' - 'd5c8231bc477b0cf5fe774513e523413' - '7b49b28767b3b96b1fad058793ae093e' - '0a48718e22267a2f00e2b6167ca62795' - '854dc8bcc0bc3b6bc58fa985e3074e85' - 'a622e68616cfa884255ec76856d9f999' - '76175d094d04b7fd9a55b542a2160e6c' - 'f7f5e99386996f409efa69bc4e966e75' - 'a597ba1ff82f080dbe07188a4b01a7cc' - 'a1c9552f62108c4fa5dac3efceeb9005' - 'b532d6cd6d2d31d6d191e3620bfc5f2c' - '63747ba9e1db8cd00ea8e19e26327ea8' - '35c6ac82deafbf28614b5676a608adb6') + '65a9fc75d46e8c8a051fd246709b2652' + 'fc900d3c2b23921fc7bfe973d7c889ad' + '4d7e9bf23ee71b77a8d742589c77a56b' + 'c609e63914e83176477759f1aa27925d' + 'eb4d9cf6da0acd9f22277f60618b6bbb' + '04f1d877bf817047b90b5d3f4ca03d2d' + '5d774e23da45388220d677a7d06b5c71' + '0eeb7046d938fcdc6123adb5e9eeda07' + '5525a022098fb671dc54db298b8b56b0' + '2f314182cea4027a00a908957b37709f' + '5c77a36ac59f6b1a69b290728b02a41f' + '207f21a4bccfe6e9acbaa5af5f5fb389' + '6fbcd16a25c725c60e8b09480d7a30fb' + 'a71c072f7ba76cf11582332cdd0f2061' + 'cd71518ec43aab8a2a78a309a56b3b42' + '107a5222e034c4c58ae9b9a9fbd81f61' + 'c35021a8e0ffca8d6a78a49869cde573' + '3cb246fc3d5f605e02f2e242f1ac91a7' + '7e5fb2f55e36eee93a7a4b8f35211f79' + '4dad9a8c6300c24a1bb64f1dde20cdca') _threads="posix" From fad0e8c51ae49db4a47f081a519d21ce88a24eb0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 6 Aug 2015 10:23:15 +0100 Subject: [PATCH 1434/2060] hlsl2glsl: Refresh patches Upstream swapped out the old bison for a Cygwin bison so the patches needed tweaking. --- ...MakeLists.txt-Fixes-and-improvements.patch | 75 +++++++------------ ...02-Fix-pool_allocator-compile-guards.patch | 4 +- ...l2glsltest-Change-_MSC_VER-to-_WIN32.patch | 16 ++-- .../0004-CMake-Handle-installation.patch | 10 +-- 4 files changed, 42 insertions(+), 63 deletions(-) diff --git a/mingw-w64-hlsl2glsl/0001-CMakeLists.txt-Fixes-and-improvements.patch b/mingw-w64-hlsl2glsl/0001-CMakeLists.txt-Fixes-and-improvements.patch index de98484449..1f2ae7fe00 100644 --- a/mingw-w64-hlsl2glsl/0001-CMakeLists.txt-Fixes-and-improvements.patch +++ b/mingw-w64-hlsl2glsl/0001-CMakeLists.txt-Fixes-and-improvements.patch @@ -1,4 +1,4 @@ -From 5d1bb902fdae63e0b54fa605b7efb7b7f141ec35 Mon Sep 17 00:00:00 2001 +From 5ad09d0e13c80d3987eb5f27040384c39390a7d0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 12 Dec 2013 16:52:29 +0000 Subject: [PATCH 1/4] CMakeLists.txt: Fixes and improvements @@ -8,23 +8,22 @@ Subject: [PATCH 1/4] CMakeLists.txt: Fixes and improvements 3. Remove redundancy in bison and flex execution. 4. Use find_package() to locate them if !windows. --- - CMakeLists.txt | 138 +++++++++++++++++----------------- - tests/hlsl2glsltest/hlsl2glsltest.cpp | 3 +- - 2 files changed, 71 insertions(+), 70 deletions(-) + CMakeLists.txt | 137 ++++++++++++++++++++++++++++----------------------------- + 1 file changed, 68 insertions(+), 69 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index b2fae7a..c397bb3 100644 +index f159a1d..dc30cd5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -67,6 +67,7 @@ set(MACHINE_INDEPENDENT_FILES - hlslang/MachineIndependent/RemoveTree.h - hlslang/MachineIndependent/SymbolTable.cpp - hlslang/MachineIndependent/SymbolTable.h -+ #hlslang/MachineIndependent/unistd.h - hlslang/MachineIndependent/ConstantFolding.cpp - ) - -@@ -90,9 +91,9 @@ EXEC_PROGRAM(${CMAKE_COMMAND} ARGS "-E write_regv \"${hkey}\" \"${dir}\"") +@@ -59,7 +59,6 @@ set(MACHINE_INDEPENDENT_FILES + hlslang/MachineIndependent/intermOut.cpp + hlslang/MachineIndependent/IntermTraverse.cpp + hlslang/MachineIndependent/localintermediate.h +- #hlslang/MachineIndependent/parseConst.cpp + hlslang/MachineIndependent/ParseHelper.cpp + hlslang/MachineIndependent/ParseHelper.h + hlslang/MachineIndependent/PoolAlloc.cpp +@@ -92,9 +91,9 @@ endif () set(MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES @@ -37,12 +36,7 @@ index b2fae7a..c397bb3 100644 ) SET_SOURCE_FILES_PROPERTIES(${MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES} PROPERTIES -@@ -100,97 +101,98 @@ SET_SOURCE_FILES_PROPERTIES(${MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES} PROPER - ) - - source_group("Machine Independent\\Generated Source" FILES ${MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES}) -- - +@@ -107,62 +106,26 @@ source_group("Machine Independent\\Generated Source" FILES ${MACHINE_INDEPENDENT # Add system specific settings if (WIN32) set(OSDEPENDENT_FILES @@ -50,10 +44,10 @@ index b2fae7a..c397bb3 100644 hlslang/OSDependent/Windows/osinclude.h hlslang/OSDependent/Windows/ossource.cpp ) -+ source_group("OSDependent\\Windows" FILES ${OSDEPENDENT_FILES}) - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/hlslang/OSDependent/Windows) -- ++ include_directories(hlslang/OSDependent/Windows) + - add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang_tab.cpp hlslang/MachineIndependent/hlslang_tab.h - COMMAND set ARGS "BISON_SIMPLE=../../tools/bison.simple" - COMMAND set ARGS "BISON_HAIRY=../../tools/bison.simple" @@ -76,11 +70,9 @@ index b2fae7a..c397bb3 100644 - - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D\"_HAS_ITERATOR_DEBUGGING=0\" /D\"_SECURE_SCL=0\" /D\"_CRT_SECURE_NO_WARNINGS\"") - SET(TEST_LIBS opengl32.lib) -+ include_directories(hlslang/OSDependent/Windows) -+ -+ IF ( MSVC ) ++ IF (MSVC) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D\"_HAS_ITERATOR_DEBUGGING=0\" /D\"_SECURE_SCL=0\" /D\"_CRT_SECURE_NO_WARNINGS\"") -+ ENDIF ( MSVC ) ++ ENDIF (MSVC) + SET(TEST_LIBS opengl32 gdi32 user32) elseif (APPLE) set(OSDEPENDENT_FILES @@ -93,7 +85,8 @@ index b2fae7a..c397bb3 100644 - add_custom_command(OUTPUT hlslang/MachineIndependent/Gen_hlslang_tab.cpp hlslang/MachineIndependent/hlslang_tab.h - COMMAND set ARGS "BISON_SIMPLE=../../tools/bison.simple" - COMMAND set ARGS "BISON_HAIRY=../../tools/bison.simple" -- COMMAND bison ARGS -o Gen_hlslang_tab.cpp -d -t -v hlslang.y +- COMMAND bison ARGS -o hlslang_tab.cpp -d -t -v hlslang.y +- COMMAND mv hlslang_tab.hpp hlslang_tab.h - MAIN_DEPENDENCY hlslang/MachineIndependent/hlslang.y - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hlslang/MachineIndependent - COMMENT "Executing Bison on hlslang.y" @@ -108,9 +101,13 @@ index b2fae7a..c397bb3 100644 - ) + include_directories(hlslang/OSDependent/Mac) + + FIND_LIBRARY(OPENGL_LIBRARY OpenGL) +- FIND_LIBRARY(COCOA_LIBRARY Cocoa) ++ FIND_LIBRARY(COCOA_LIBRARY Cocoa) + SET(TEST_LIBS ${OPENGL_LIBRARY} ${COCOA_LIBRARY}) elseif (UNIX) set(OSDEPENDENT_FILES - hlslang/OSDependent/Linux/osinclude.h +@@ -170,33 +133,69 @@ elseif (UNIX) hlslang/OSDependent/Linux/ossource.cpp ) source_group("OSDependent\\Linux" FILES ${OSDEPENDENT_FILES}) @@ -167,7 +164,7 @@ index b2fae7a..c397bb3 100644 +set(ENV{BISON_HAIRY} ${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.simple) + +if (WIN32) -+ set(BISON_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/tools/bison.exe) ++ set(BISON_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/tools/bin/bison.exe) + set(FLEX_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/tools/flex.exe) +else () + find_package(BISON REQUIRED) @@ -201,24 +198,6 @@ index b2fae7a..c397bb3 100644 ) add_library(hlsl2glsl -diff --git a/tests/hlsl2glsltest/hlsl2glsltest.cpp b/tests/hlsl2glsltest/hlsl2glsltest.cpp -index d1be04d..5e9c101 100644 ---- a/tests/hlsl2glsltest/hlsl2glsltest.cpp -+++ b/tests/hlsl2glsltest/hlsl2glsltest.cpp -@@ -1,4 +1,3 @@ --#define _CRT_SECURE_NO_WARNINGS - #include - #include - #include -@@ -274,7 +273,7 @@ static bool InitializeOpenGL () - #endif - - --#ifdef _MSC_VER -+#ifdef _WIN32 - if (hasGLSL) - { - glDeleteShader = (PFNGLDELETESHADERPROC)wglGetProcAddress("glDeleteShader"); -- -2.4.5 +2.5.0 diff --git a/mingw-w64-hlsl2glsl/0002-Fix-pool_allocator-compile-guards.patch b/mingw-w64-hlsl2glsl/0002-Fix-pool_allocator-compile-guards.patch index b5c6713609..1384363f76 100644 --- a/mingw-w64-hlsl2glsl/0002-Fix-pool_allocator-compile-guards.patch +++ b/mingw-w64-hlsl2glsl/0002-Fix-pool_allocator-compile-guards.patch @@ -1,4 +1,4 @@ -From bb84270e903fb45c438a56f0768c37bdf69eb6ac Mon Sep 17 00:00:00 2001 +From fae0caf73ff5e582e39ed8173b407d8a6a5cde3d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 22 Jul 2015 15:20:09 +0100 Subject: [PATCH 2/4] Fix pool_allocator compile-guards @@ -36,5 +36,5 @@ index 3418c88..3312221 100644 #ifdef USING_SGI_STL -- -2.4.5 +2.5.0 diff --git a/mingw-w64-hlsl2glsl/0003-hlsl2glsltest-Change-_MSC_VER-to-_WIN32.patch b/mingw-w64-hlsl2glsl/0003-hlsl2glsltest-Change-_MSC_VER-to-_WIN32.patch index bfb4b42ed6..fe68a386bf 100644 --- a/mingw-w64-hlsl2glsl/0003-hlsl2glsltest-Change-_MSC_VER-to-_WIN32.patch +++ b/mingw-w64-hlsl2glsl/0003-hlsl2glsltest-Change-_MSC_VER-to-_WIN32.patch @@ -1,4 +1,4 @@ -From 8679385da3e239f30aac9409323912fc1a106321 Mon Sep 17 00:00:00 2001 +From d456b8d857ab761523a04834b68d067f600b9f34 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 22 Jul 2015 15:26:23 +0100 Subject: [PATCH 3/4] hlsl2glsltest: Change _MSC_VER to _WIN32 @@ -9,10 +9,10 @@ So that it can be build with MinGW-w64 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/hlsl2glsltest/hlsl2glsltest.cpp b/tests/hlsl2glsltest/hlsl2glsltest.cpp -index 5e9c101..9ff6b0a 100644 +index a9df844..6de5308 100644 --- a/tests/hlsl2glsltest/hlsl2glsltest.cpp +++ b/tests/hlsl2glsltest/hlsl2glsltest.cpp -@@ -9,7 +9,7 @@ +@@ -10,7 +10,7 @@ static const bool kDumpShaderAST = false; @@ -21,7 +21,7 @@ index 5e9c101..9ff6b0a 100644 #include #include #include -@@ -94,7 +94,7 @@ static StringVector GetFiles (const std::string& folder, const std::string& ends +@@ -95,7 +95,7 @@ static StringVector GetFiles (const std::string& folder, const std::string& ends { StringVector res; @@ -30,7 +30,7 @@ index 5e9c101..9ff6b0a 100644 WIN32_FIND_DATAA FindFileData; HANDLE hFind = FindFirstFileA ((folder+"/*"+endsWith).c_str(), &FindFileData); if (hFind == INVALID_HANDLE_VALUE) -@@ -132,7 +132,7 @@ static StringVector GetFiles (const std::string& folder, const std::string& ends +@@ -133,7 +133,7 @@ static StringVector GetFiles (const std::string& folder, const std::string& ends static void DeleteFile (const std::string& path) { @@ -39,7 +39,7 @@ index 5e9c101..9ff6b0a 100644 DeleteFileA (path.c_str()); #else unlink (path.c_str()); -@@ -141,15 +141,15 @@ static void DeleteFile (const std::string& path) +@@ -142,15 +142,15 @@ static void DeleteFile (const std::string& path) static bool ReadStringFromFile (const char* pathName, std::string& output) { @@ -58,7 +58,7 @@ index 5e9c101..9ff6b0a 100644 if (file == NULL) return false; -@@ -195,7 +195,7 @@ static bool InitializeOpenGL () +@@ -196,7 +196,7 @@ static bool InitializeOpenGL () bool hasGLSL = false; @@ -68,5 +68,5 @@ index 5e9c101..9ff6b0a 100644 HWND wnd = CreateWindowA( "STATIC", -- -2.4.5 +2.5.0 diff --git a/mingw-w64-hlsl2glsl/0004-CMake-Handle-installation.patch b/mingw-w64-hlsl2glsl/0004-CMake-Handle-installation.patch index 8c9557d505..cc28dd6b96 100644 --- a/mingw-w64-hlsl2glsl/0004-CMake-Handle-installation.patch +++ b/mingw-w64-hlsl2glsl/0004-CMake-Handle-installation.patch @@ -1,4 +1,4 @@ -From 515fd704aa324e86938c3a330f4f21788a4b80b2 Mon Sep 17 00:00:00 2001 +From 3554bdeaed2b0fe4e8fdff83fd509ab1143b1cdd Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 22 Jul 2015 15:39:03 +0100 Subject: [PATCH 4/4] CMake: Handle installation @@ -8,10 +8,10 @@ Subject: [PATCH 4/4] CMake: Handle installation 1 file changed, 24 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index c397bb3..25420a5 100644 +index dc30cd5..fcc78e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -205,6 +205,7 @@ add_library(hlsl2glsl +@@ -208,6 +208,7 @@ add_library(hlsl2glsl ${MACHINE_INDEPENDENT_GENERATED_SOURCE_FILES} ) @@ -19,7 +19,7 @@ index c397bb3..25420a5 100644 include_directories( ${INCLUDE_FILES} -@@ -212,3 +213,26 @@ include_directories( +@@ -215,3 +216,26 @@ include_directories( add_executable(hlsl2glsltest tests/hlsl2glsltest/hlsl2glsltest.cpp) target_link_libraries(hlsl2glsltest hlsl2glsl ${TEST_LIBS}) @@ -47,5 +47,5 @@ index c397bb3..25420a5 100644 + RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_PREFIX}/include") -- -2.4.5 +2.5.0 From 1721641b55710a29f1ea541a6e6b90d920682f1e Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 26 Jun 2015 23:11:03 +0200 Subject: [PATCH 1435/2060] adwaita-icon-theme: updated to 3.16.2.1. --- mingw-w64-adwaita-icon-theme/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-adwaita-icon-theme/PKGBUILD b/mingw-w64-adwaita-icon-theme/PKGBUILD index e28f14f196..ed09bb3f2b 100644 --- a/mingw-w64-adwaita-icon-theme/PKGBUILD +++ b/mingw-w64-adwaita-icon-theme/PKGBUILD @@ -2,7 +2,7 @@ _realname=adwaita-icon-theme pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.2 +pkgver=3.16.2.1 pkgrel=1 pkgdesc="GNOME icon theme (mingw-w64)" arch=('any') @@ -13,8 +13,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" "${MINGW_PACKAGE_PREFIX}-librsvg") options=(!libtool strip staticlibs) install=theme-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) -sha256sums=('9c6662ad739cdb32d0ffe638f54e5033c5ea6f53e7f8c2b412ec64b8e7e1b4c2') +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz) +sha256sums=('b4556dfbf555d4fac12d4d5c12f7519de0d43ec42a1b649611439a50bf7acb96') prepare() { cd ${srcdir}/${_realname}-${pkgver} From 2a7e133ed9063a9ec429f180cd98ae19f92afa35 Mon Sep 17 00:00:00 2001 From: Matt Breedlove Date: Sat, 8 Aug 2015 05:41:15 -0400 Subject: [PATCH 1436/2060] Update 0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch Correct spacing around SHARED_LIBGCC_SPEC which prevents 0007-Windows-New-feature-to-allow-overriding-lsmvcrt.patch from applying. --- .../0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch b/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch index 8f0e20ae8d..0e7a9ff419 100644 --- a/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch +++ b/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch @@ -32,7 +32,7 @@ index eef90fb..47e12e7 100644 @@ -140,7 +140,7 @@ along with GCC; see the file COPYING3. If not see #define REAL_LIBGCC_SPEC \ "%{mthreads:-lmingwthrd} -lmingw32 \ - " SHARED_LIBGCC_SPEC " \ + "SHARED_LIBGCC_SPEC" \ - -lmoldname -lmingwex -lmsvcrt" + -lmoldname -lmingwex %{!mcrtdll=*:-lmsvcrt} %{mcrtdll=*:-l%*}" From 1044d14ff56a9c1eb9edaa581c61a2b70a470f27 Mon Sep 17 00:00:00 2001 From: Matt Breedlove Date: Sat, 8 Aug 2015 05:47:45 -0400 Subject: [PATCH 1437/2060] Update PKGBUILD to use 5.0 master (5.2.1 release) Current PKGBUILD pulls directly from the master which BASE-VER is 6.0.0. Recommend either making this change to specify the 5.0 branch which has the current BASE-VER of 5.2.1 or changing _realpkgver to reflect 6.0.0. --- mingw-w64-gcc-git/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD index 57fc3ddf99..53bd39007f 100644 --- a/mingw-w64-gcc-git/PKGBUILD +++ b/mingw-w64-gcc-git/PKGBUILD @@ -11,7 +11,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc-git") pkgver=r140393.28c4d97 -_realpkgver=5.2.0 +_realpkgver=5.2.1 pkgrel=1 pkgdesc="GCC for the MinGW-w64" arch=('any') @@ -34,7 +34,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" #checkdepends=('dejagnu') optdepends=() options=('staticlibs' '!emptydirs' '!strip' 'debug') -source=("git://gcc.gnu.org/git/gcc.git" +source=("git://gcc.gnu.org/git/gcc.git#branch=gcc-5-branch" "0001-Relocate-libintl.patch" "0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch" "0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch" From 32d0d7a694ff87cb3b0708fd8bf6eed775560da6 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 6 Aug 2015 18:15:44 +0100 Subject: [PATCH 1438/2060] gcc, gcc-git: WIP --- .../0001-gcc-fortran-ChangeLog.patch | 151 ++++++++++++++++++ mingw-w64-gcc/PKGBUILD | 3 - 2 files changed, 151 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch diff --git a/mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch b/mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch new file mode 100644 index 0000000000..5ddcac1500 --- /dev/null +++ b/mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch @@ -0,0 +1,151 @@ +From 635e1b2f08c3c5fced849e45c59453be7b131e88 Mon Sep 17 00:00:00 2001 +From: vehre +Date: Fri, 17 Jul 2015 10:16:21 +0000 +Subject: [PATCH] gcc/fortran/ChangeLog: + +2015-07-17 Andre Vehreschild + + PR fortran/66035 + * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment): + Compute the size to allocate for class and derived type objects + correclty. + (gfc_trans_subcomponent_assign): Only allocate memory for a + component when the object to assign is not an allocatable class + object (the memory is already present for allocatable class objects). + Furthermore use copy_class_to_class for assigning the rhs to the + component (may happen for dummy class objects on the rhs). + + +gcc/testsuite/ChangeLog: + +2015-07-17 Andre Vehreschild + + PR fortran/66035 + * gfortran.dg/structure_constructor_13.f03: New test. + + + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225928 138bc75d-0d04-0410-961f-82ee72b054a4 +--- + gcc/fortran/ChangeLog | 12 ++++++++++ + gcc/fortran/trans-expr.c | 26 +++++++++++++++++++- + gcc/testsuite/ChangeLog | 5 ++++ + .../gfortran.dg/structure_constructor_13.f03 | 28 ++++++++++++++++++++++ + 4 files changed, 70 insertions(+), 1 deletion(-) + create mode 100644 gcc/testsuite/gfortran.dg/structure_constructor_13.f03 + +diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog +index af81bd5..33b8cbb 100644 +--- a/gcc/fortran/ChangeLog ++++ b/gcc/fortran/ChangeLog +@@ -1,3 +1,15 @@ ++2015-07-17 Andre Vehreschild ++ ++ PR fortran/66035 ++ * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment): ++ Compute the size to allocate for class and derived type objects ++ correclty. ++ (gfc_trans_subcomponent_assign): Only allocate memory for a ++ component when the object to assign is not an allocatable class ++ object (the memory is already present for allocatable class objects). ++ Furthermore use copy_class_to_class for assigning the rhs to the ++ component (may happen for dummy class objects on the rhs). ++ + 2015-07-17 Mikael Morin + Dominique d'Humieres + +diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c +index caafe76..89b4dfd 100644 +--- a/gcc/fortran/trans-expr.c ++++ b/gcc/fortran/trans-expr.c +@@ -6969,6 +6969,29 @@ alloc_scalar_allocatable_for_subcomponent_assignment (stmtblock_t *block, + TREE_TYPE (tmp), tmp, + fold_convert (TREE_TYPE (tmp), size)); + } ++ else if (cm->ts.type == BT_CLASS) ++ { ++ gcc_assert (expr2->ts.type == BT_CLASS || expr2->ts.type == BT_DERIVED); ++ if (expr2->ts.type == BT_DERIVED) ++ { ++ tmp = gfc_get_symbol_decl (expr2->ts.u.derived); ++ size = TYPE_SIZE_UNIT (tmp); ++ } ++ else ++ { ++ gfc_expr *e2vtab; ++ gfc_se se; ++ e2vtab = gfc_find_and_cut_at_last_class_ref (expr2); ++ gfc_add_vptr_component (e2vtab); ++ gfc_add_size_component (e2vtab); ++ gfc_init_se (&se, NULL); ++ gfc_conv_expr (&se, e2vtab); ++ gfc_add_block_to_block (block, &se.pre); ++ size = fold_convert (size_type_node, se.expr); ++ gfc_free_expr (e2vtab); ++ } ++ size_in_bytes = size; ++ } + else + { + /* Otherwise use the length in bytes of the rhs. */ +@@ -7096,7 +7119,8 @@ gfc_trans_subcomponent_assign (tree dest, gfc_component * cm, gfc_expr * expr, + gfc_add_expr_to_block (&block, tmp); + } + else if (init && (cm->attr.allocatable +- || (cm->ts.type == BT_CLASS && CLASS_DATA (cm)->attr.allocatable))) ++ || (cm->ts.type == BT_CLASS && CLASS_DATA (cm)->attr.allocatable ++ && expr->ts.type != BT_CLASS))) + { + /* Take care about non-array allocatable components here. The alloc_* + routine below is motivated by the alloc_scalar_allocatable_for_ +diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog +index ccba51f..1311bf2 100644 +--- a/gcc/testsuite/ChangeLog ++++ b/gcc/testsuite/ChangeLog +@@ -1,3 +1,8 @@ ++2015-07-17 Andre Vehreschild ++ ++ PR fortran/66035 ++ * gfortran.dg/structure_constructor_13.f03: New test. ++ + 2015-07-17 Mikael Morin + + PR fortran/61831 +diff --git a/gcc/testsuite/gfortran.dg/structure_constructor_13.f03 b/gcc/testsuite/gfortran.dg/structure_constructor_13.f03 +new file mode 100644 +index 0000000..c74e325 +--- /dev/null ++++ b/gcc/testsuite/gfortran.dg/structure_constructor_13.f03 +@@ -0,0 +1,28 @@ ++! { dg-do run } ++! ++! Contributed by Melven Roehrig-Zoellner ++! PR fortran/66035 ++ ++program test_pr66035 ++ type t ++ end type t ++ type w ++ class(t), allocatable :: c ++ end type w ++ ++ type(t) :: o ++ ++ call test(o) ++contains ++ subroutine test(o) ++ class(t), intent(inout) :: o ++ type(w), dimension(:), allocatable :: list ++ ++ select type (o) ++ class is (t) ++ list = [w(o)] ! This caused an ICE ++ class default ++ call abort() ++ end select ++ end subroutine ++end program +-- +2.5.0 + diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 78e1d25ea7..01429813ff 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -88,9 +88,6 @@ prepare() { #remove files the patches will create (so they aren't in the way the 2nd time round) rm -f intl/canonicalize.c intl/relocatex.c intl/relocatex.h > /dev/null 2>&1 || true - #do not install libiberty - sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in - # hack! - some configure tests for header files using "$CPP $CPPFLAGS" sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure From 9d26399311018b98c3e4e2ffd9726f207d80f23c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 8 Aug 2015 15:50:19 +0100 Subject: [PATCH 1439/2060] gcc-git: Refresh patches, do the seds that are still needed --- mingw-w64-gcc-git/0001-Relocate-libintl.patch | 2 +- ...e-_ZTC-in-libstdc-exports-deprecated.patch | 6 +-- ..._weakref__-on-__MINGW32__-deprecated.patch | 2 +- ...osix-dir-exists-semantics-more-close.patch | 4 +- ...not-in-progpath-and-leave-case-as-is.patch | 2 +- ...on-t-ignore-native-system-header-dir.patch | 6 +-- ...-feature-to-allow-overriding-lmsvcrt.patch | 4 +- ..._malloc_cleared-instead-of-gomp_mall.patch | 8 +-- .../0009-Build-EXTRA_GNATTOOLS-for-Ada.patch | 2 +- .../0010-Prettify-linking-no-undefined.patch | 10 ++-- ...in-header-cplusplus-compatible-depre.patch | 2 +- ...too-late-resolved-__EH_FRAME_BEGIN__.patch | 2 +- .../0013-Fix-using-large-PCH.patch | 10 ++-- .../0014-Enable-shared-gnat-implib.patch | 6 +-- .../0015-MinGW-w64-Enable-libitm.patch | 12 ++--- .../0016-MinGW-w64-Enable-libsanitizer.patch | 2 +- .../0017-MinGW-w64-Enable-shared-gnat.patch | 2 +- .../0018-MinGW-w64-No-fpic-in-sanitizer.patch | 26 +++++----- .../0019-MinGW-w64-Port-sanitizer.patch | 8 +-- ...ing-to-libgcc_s_dw2-1.dll-deprecated.patch | 4 +- mingw-w64-gcc-git/PKGBUILD | 50 +++++++++++-------- 21 files changed, 89 insertions(+), 81 deletions(-) diff --git a/mingw-w64-gcc-git/0001-Relocate-libintl.patch b/mingw-w64-gcc-git/0001-Relocate-libintl.patch index 259fa7824a..0d7d005406 100644 --- a/mingw-w64-gcc-git/0001-Relocate-libintl.patch +++ b/mingw-w64-gcc-git/0001-Relocate-libintl.patch @@ -1,4 +1,4 @@ -From b6b426d1dff238d33d20d154dadd86cd132d80b6 Mon Sep 17 00:00:00 2001 +From 555202a31b9136ae0db5eebf79430aaf2a885d45 Mon Sep 17 00:00:00 2001 From: Erwin Waterlander Date: Wed, 5 Aug 2015 23:36:03 +0100 Subject: [PATCH 01/20] Relocate libintl diff --git a/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch b/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch index 991365ba0c..383a587276 100644 --- a/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch +++ b/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch @@ -1,4 +1,4 @@ -From 2b44424aaa56ecd90639f251f687dce613908066 Mon Sep 17 00:00:00 2001 +From 7cbef7a503bc1b5c6c0bf7302c854272110d1ce8 Mon Sep 17 00:00:00 2001 From: gee Date: Wed, 5 Aug 2015 23:36:04 +0100 Subject: [PATCH 02/20] PR54314: Include _ZTC* in libstdc++ exports @@ -37,10 +37,10 @@ Add thunk _ZTv0_n12_NS* like in gnu.ver 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver -index d42cd37..7502fee 100644 +index 120b133..f029a05 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver -@@ -2064,7 +2064,7 @@ CXXABI_1.3.6 { +@@ -2056,7 +2056,7 @@ CXXABI_1.3.6 { __cxa_allocate_dependent_exception; __cxa_free_dependent_exception; __cxa_deleted_virtual; diff --git a/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch b/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch index dfe16360bb..652a6eda15 100644 --- a/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch +++ b/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch @@ -1,4 +1,4 @@ -From 260b7904701b0aa02c4e1ab43c2542e5606a0e79 Mon Sep 17 00:00:00 2001 +From fb18215bf3a49d395e51a91bb264f0de9bd43489 Mon Sep 17 00:00:00 2001 From: niXman Date: Wed, 5 Aug 2015 23:36:06 +0100 Subject: [PATCH 03/20] PR52300: Avoid __weakref__ on __MINGW32__ [deprecated] diff --git a/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch b/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch index 5408f3c838..8a7cfc1a6b 100644 --- a/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch +++ b/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch @@ -1,4 +1,4 @@ -From bd65a78dd2f1292a8b955beb1211d6a7a1fb80c9 Mon Sep 17 00:00:00 2001 +From aa08dd84fd1eb14d401e6367423bd617aa56aa72 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:07 +0100 Subject: [PATCH 04/20] Windows: Follow Posix dir-exists semantics more closely @@ -14,7 +14,7 @@ compiling GNU/Linux glibc on Windows. 1 file changed, 87 insertions(+) diff --git a/libcpp/files.c b/libcpp/files.c -index 8c388d8..e45665c 100644 +index 2f49122..644701d 100644 --- a/libcpp/files.c +++ b/libcpp/files.c @@ -30,6 +30,13 @@ along with this program; see the file COPYING3. If not see diff --git a/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch b/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch index 769f5c133d..ad70a59b1d 100644 --- a/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch +++ b/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch @@ -1,4 +1,4 @@ -From ea5fee260bab088a1592850841ffacf31a4d372c Mon Sep 17 00:00:00 2001 +From f15e87721b070ec4ccf59195504a59da5c92ce8c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:09 +0100 Subject: [PATCH 05/20] Windows: Use '/' not '\' in progpath and leave case diff --git a/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch b/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch index 2414e05e44..1219e58abf 100644 --- a/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch +++ b/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch @@ -1,4 +1,4 @@ -From 24d814492323f52213bfcc11faddd7595438feb7 Mon Sep 17 00:00:00 2001 +From 9aaca7dac257a7ddf7406e9bae515dd27eee996d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:11 +0100 Subject: [PATCH 06/20] Windows: Don't ignore native system header dir @@ -8,10 +8,10 @@ Subject: [PATCH 06/20] Windows: Don't ignore native system header dir 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/config.gcc b/gcc/config.gcc -index 24f6d35..8c79739 100644 +index 3ede69b..f25325f 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc -@@ -1722,7 +1722,10 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) +@@ -1693,7 +1693,10 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) tmake_file="${tmake_file} i386/t-mingw-w32" ;; esac diff --git a/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch b/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch index 0e7a9ff419..e8741e328d 100644 --- a/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch +++ b/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch @@ -1,4 +1,4 @@ -From f8ac675147aad6e4e9b0f8191850219275f5e84b Mon Sep 17 00:00:00 2001 +From 57391e17c94357f69c683db2c77cc42d7a8f0258 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:13 +0100 Subject: [PATCH 07/20] Windows: New feature to allow overriding -lmsvcrt @@ -26,7 +26,7 @@ index c7e398f..dfddaf8 100644 Target RejectNegative Generate code for a DLL diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h -index eef90fb..47e12e7 100644 +index f139761..0950304 100644 --- a/gcc/config/i386/mingw32.h +++ b/gcc/config/i386/mingw32.h @@ -140,7 +140,7 @@ along with GCC; see the file COPYING3. If not see diff --git a/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch b/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch index c1d7bdfe64..052a5d3dd4 100644 --- a/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch +++ b/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch @@ -1,4 +1,4 @@ -From fd726b253eacd3eff277ba657356a05118ad6293 Mon Sep 17 00:00:00 2001 +From 2d03a8b28a5be995fd2af3f750cd6a21048da1d8 Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Wed, 5 Aug 2015 23:36:16 +0100 Subject: [PATCH 08/20] libgomp: Use gomp_malloc_cleared instead of gomp_malloc @@ -14,10 +14,10 @@ is probably not needed. 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/libgomp/team.c b/libgomp/team.c -index 7671b05..f9024c0 100644 +index b98b233..c1f6deb 100644 --- a/libgomp/team.c +++ b/libgomp/team.c -@@ -224,7 +224,7 @@ free_team (struct gomp_team *team) +@@ -197,7 +197,7 @@ free_team (struct gomp_team *team) static struct gomp_thread_pool *gomp_new_thread_pool (void) { struct gomp_thread_pool *pool @@ -26,7 +26,7 @@ index 7671b05..f9024c0 100644 pool->threads = NULL; pool->threads_size = 0; pool->threads_used = 0; -@@ -964,7 +964,7 @@ struct gomp_task_icv * +@@ -940,7 +940,7 @@ struct gomp_task_icv * gomp_new_icv (void) { struct gomp_thread *thr = gomp_thread (); diff --git a/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch b/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch index aaa6bffe54..d9373e7c97 100644 --- a/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch +++ b/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch @@ -1,4 +1,4 @@ -From 9c42e39d4a2bc38c6075d365b1002c2adb61fc59 Mon Sep 17 00:00:00 2001 +From 2840cdcc4a2c68a6cbe4b72515cf6d2143bf1ff3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 5 Aug 2015 23:36:17 +0100 Subject: [PATCH 09/20] Build EXTRA_GNATTOOLS for Ada diff --git a/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch b/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch index dfcdfa2f79..50529bba5f 100644 --- a/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch +++ b/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch @@ -1,4 +1,4 @@ -From 2fa200353a8b283c4a40e34f5d54ff423c55d55a Mon Sep 17 00:00:00 2001 +From 3e6638629ae7b84ff78a79f3716ae5bc93825ad6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 5 Aug 2015 23:36:19 +0100 Subject: [PATCH 10/20] Prettify linking -no-undefined @@ -11,10 +11,10 @@ conditional block for Windows only? 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am -index 0e816ac..0477605 100644 +index 31eb986..f8ef020 100644 --- a/libgfortran/Makefile.am +++ b/libgfortran/Makefile.am -@@ -44,7 +44,7 @@ libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP) +@@ -50,7 +50,7 @@ libgfortranbegin_la_LINK = $(LINK) $(libgfortranbegin_la_LDFLAGS) cafexeclib_LTLIBRARIES = libcaf_single.la cafexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR) libcaf_single_la_SOURCES = caf/single.c @@ -24,10 +24,10 @@ index 0e816ac..0477605 100644 libcaf_single_la_LINK = $(LINK) $(libcaf_single_la_LDFLAGS) diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in -index ab71b38..77374d4 100644 +index 0f60e6e..8473026 100644 --- a/libgfortran/Makefile.in +++ b/libgfortran/Makefile.in -@@ -605,7 +605,7 @@ libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP) +@@ -615,7 +615,7 @@ libgfortranbegin_la_LINK = $(LINK) $(libgfortranbegin_la_LDFLAGS) cafexeclib_LTLIBRARIES = libcaf_single.la cafexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR) libcaf_single_la_SOURCES = caf/single.c diff --git a/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch b/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch index 004a9633e8..d31f30bf8f 100644 --- a/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch +++ b/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch @@ -1,4 +1,4 @@ -From dd682ffedda9ea45d2008cc5d3e5d9df84112094 Mon Sep 17 00:00:00 2001 +From 0605cd773a8ebac39b3e91eee0dc1633d8c76165 Mon Sep 17 00:00:00 2001 From: Erik van Pienbroek Date: Wed, 5 Aug 2015 23:36:21 +0100 Subject: [PATCH 11/20] gcc: make xmmintrin header cplusplus compatible diff --git a/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch b/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch index f78db3f263..9a50cd9cb4 100644 --- a/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch +++ b/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch @@ -1,4 +1,4 @@ -From 859f1a908eda9dd3d2ebb7c3230f0ff154fd8eb8 Mon Sep 17 00:00:00 2001 +From 71bfd7c63c1c431138efa1951ce1cecf7222fdff Mon Sep 17 00:00:00 2001 From: Matt Breedlove Date: Wed, 5 Aug 2015 23:36:22 +0100 Subject: [PATCH 12/20] Work around {un-,too-late-}resolved __EH_FRAME_BEGIN__ diff --git a/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch b/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch index 27d0bff5ac..b6516f01b3 100644 --- a/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch +++ b/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch @@ -1,4 +1,4 @@ -From 6f20aa489fc64a1087e73c948c0f607260a95d84 Mon Sep 17 00:00:00 2001 +From 9e87ad0651d41d9259c1bead74fc0efe54583e29 Mon Sep 17 00:00:00 2001 From: Martin Richter Date: Wed, 5 Aug 2015 23:36:25 +0100 Subject: [PATCH 13/20] Fix using large PCH @@ -64,10 +64,10 @@ index aa17378..631d9c4 100644 diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c -index 5096837..f741f2c 100644 +index 03fbe7d..3a5df8a 100644 --- a/gcc/ggc-common.c +++ b/gcc/ggc-common.c -@@ -599,7 +599,9 @@ gt_pch_restore (FILE *f) +@@ -603,7 +603,9 @@ gt_pch_restore (FILE *f) size_t i; struct mmap_info mmi; int result; @@ -78,7 +78,7 @@ index 5096837..f741f2c 100644 /* Delete any deletable objects. This makes ggc_pch_read much faster, as it can be sure that no GCable objects remain other than the ones just read in. */ -@@ -607,20 +609,24 @@ gt_pch_restore (FILE *f) +@@ -611,20 +613,24 @@ gt_pch_restore (FILE *f) for (rti = *rt; rti->base != NULL; rti++) memset (rti->base, 0, rti->stride); @@ -111,7 +111,7 @@ index 5096837..f741f2c 100644 if (fread (&mmi, sizeof (mmi), 1, f) != 1) fatal_error (input_location, "can%'t read PCH file: %m"); -@@ -631,12 +637,35 @@ gt_pch_restore (FILE *f) +@@ -635,12 +641,35 @@ gt_pch_restore (FILE *f) if (result == 0) { if (fseek (f, mmi.offset, SEEK_SET) != 0 diff --git a/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch b/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch index 504c0310a4..b88cfaac3c 100644 --- a/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch +++ b/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch @@ -1,4 +1,4 @@ -From fe617455ae9c85165aad65094e351ec9d5fdeb39 Mon Sep 17 00:00:00 2001 +From a7daaf8cf35bdb88e867a79bd917e4698acc6281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Pfeifer?= Date: Wed, 5 Aug 2015 23:36:27 +0100 Subject: [PATCH 14/20] Enable shared gnat implib @@ -13,10 +13,10 @@ https://github.com/Alexpux/MINGW-packages/commit/51b4eb3b702fdb38df0460180c2f820 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in -index 1d03f86..dd4453c 100644 +index 5559269..c0a1d1c 100644 --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in -@@ -2886,13 +2886,16 @@ gnatlib-shared-win32: +@@ -2851,13 +2851,16 @@ gnatlib-shared-win32: $(PICFLAG_FOR_TARGET) \ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ diff --git a/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch b/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch index cf27f7df7f..3a2903799c 100644 --- a/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch +++ b/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch @@ -1,4 +1,4 @@ -From 3dc72ea0a2664ea703fe42bd63be5caa4849589d Mon Sep 17 00:00:00 2001 +From 18ef2a6e58914ffcfdfdd9e7c393679c4ac23be3 Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:29 +0100 Subject: [PATCH 15/20] MinGW-w64: Enable libitm @@ -25,10 +25,10 @@ index 1dce82d..0ea39f2 100644 libitm_la_SOURCES = \ aatree.cc alloc.cc alloc_c.cc alloc_cpp.cc barrier.cc beginend.cc \ diff --git a/libitm/Makefile.in b/libitm/Makefile.in -index 138eeb1..a25c6d2 100644 +index 6c4d253..5898bd8 100644 --- a/libitm/Makefile.in +++ b/libitm/Makefile.in -@@ -307,6 +307,7 @@ libtool_VERSION = @libtool_VERSION@ +@@ -279,6 +279,7 @@ libtool_VERSION = @libtool_VERSION@ link_itm = @link_itm@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -36,7 +36,7 @@ index 138eeb1..a25c6d2 100644 mandir = @mandir@ mkdir_p = @mkdir_p@ multi_basedir = @multi_basedir@ -@@ -357,7 +358,7 @@ libitm_version_info = -version-info $(libtool_VERSION) +@@ -329,7 +330,7 @@ libitm_version_info = -version-info $(libtool_VERSION) # want or need libstdc++. libitm_la_DEPENDENCIES = $(libitm_version_dep) libitm_la_LINK = $(LINK) $(libitm_la_LDFLAGS) @@ -46,7 +46,7 @@ index 138eeb1..a25c6d2 100644 barrier.cc beginend.cc clone.cc eh_cpp.cc local.cc query.cc \ retry.cc rwlock.cc useraction.cc util.cc sjlj.S tls.cc \ diff --git a/libitm/configure b/libitm/configure -index 55332bb..8f19e0a 100644 +index e924228..a23c011 100644 --- a/libitm/configure +++ b/libitm/configure @@ -630,6 +630,7 @@ MAINTAINER_MODE_FALSE @@ -57,7 +57,7 @@ index 55332bb..8f19e0a 100644 CXXCPP CPP OTOOL64 -@@ -15149,6 +15150,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +@@ -15144,6 +15145,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # Only expand once: diff --git a/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch b/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch index 7bd54b7854..42101a88c6 100644 --- a/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch +++ b/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch @@ -1,4 +1,4 @@ -From b829a3d7b647c59b8bb86a599d125e6c049342f6 Mon Sep 17 00:00:00 2001 +From 86dd58be9ae146f818bef7dca26ac3edd91f38cc Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:31 +0100 Subject: [PATCH 16/20] MinGW-w64: Enable libsanitizer diff --git a/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch b/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch index fc519d2a70..68147e0290 100644 --- a/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch +++ b/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch @@ -1,4 +1,4 @@ -From 7a5f7b5a63c67cbe9ed3f58f6f917fffab396eab Mon Sep 17 00:00:00 2001 +From 5da31325c6650fa1ee4a7cf4171cf53abb1259e9 Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:33 +0100 Subject: [PATCH 17/20] MinGW-w64: Enable shared gnat diff --git a/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch b/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch index 5103bc9895..0341c6581d 100644 --- a/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch +++ b/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch @@ -1,4 +1,4 @@ -From 7658d287f15ccc9c1c38e5d7a70cd14f7eafca2f Mon Sep 17 00:00:00 2001 +From 554461ed4b65bca3bff9484cd273302d7e878a4a Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:35 +0100 Subject: [PATCH 18/20] MinGW-w64: No -fpic in sanitizer @@ -32,10 +32,10 @@ index 54c74ce..1dc515e 100644 AM_CXXFLAGS += -std=gnu++11 ACLOCAL_AMFLAGS = -I $(top_srcdir) -I $(top_srcdir)/config diff --git a/libsanitizer/asan/Makefile.in b/libsanitizer/asan/Makefile.in -index edbed4d..690d41a 100644 +index a56c6b1..2ed29ec 100644 --- a/libsanitizer/asan/Makefile.in +++ b/libsanitizer/asan/Makefile.in -@@ -297,7 +297,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) +@@ -269,7 +269,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ @@ -58,10 +58,10 @@ index 4fb69a9..6df9645 100644 AM_CXXFLAGS += -std=gnu++11 ACLOCAL_AMFLAGS = -I m4 diff --git a/libsanitizer/interception/Makefile.in b/libsanitizer/interception/Makefile.in -index 3dfa774..422593f 100644 +index 5a49650..8ff18f4 100644 --- a/libsanitizer/interception/Makefile.in +++ b/libsanitizer/interception/Makefile.in -@@ -247,7 +247,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) +@@ -225,7 +225,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ @@ -84,10 +84,10 @@ index 03ec4fe..55a1d33 100644 AM_CXXFLAGS += -std=gnu++11 ACLOCAL_AMFLAGS = -I m4 diff --git a/libsanitizer/lsan/Makefile.in b/libsanitizer/lsan/Makefile.in -index b02c373..bb0475f 100644 +index 49fa874..360787b 100644 --- a/libsanitizer/lsan/Makefile.in +++ b/libsanitizer/lsan/Makefile.in -@@ -288,7 +288,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) +@@ -260,7 +260,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ @@ -110,10 +110,10 @@ index d541717..7b302b3 100644 AM_CXXFLAGS += -std=gnu++11 if LIBBACKTRACE_SUPPORTED diff --git a/libsanitizer/sanitizer_common/Makefile.in b/libsanitizer/sanitizer_common/Makefile.in -index 6614524..d2fd290 100644 +index 77ad416..fe46773 100644 --- a/libsanitizer/sanitizer_common/Makefile.in +++ b/libsanitizer/sanitizer_common/Makefile.in -@@ -275,7 +275,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -isystem $(top_srcdir)/include/system +@@ -253,7 +253,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -isystem $(top_srcdir)/include/system # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ @@ -136,10 +136,10 @@ index abfafb7..5e8a6ba 100644 AM_CXXFLAGS += -std=gnu++11 ACLOCAL_AMFLAGS = -I m4 diff --git a/libsanitizer/tsan/Makefile.in b/libsanitizer/tsan/Makefile.in -index 8b20d28..ec5243d 100644 +index ed594a6..8365961 100644 --- a/libsanitizer/tsan/Makefile.in +++ b/libsanitizer/tsan/Makefile.in -@@ -301,7 +301,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include +@@ -273,7 +273,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ @@ -162,10 +162,10 @@ index 12d1ffa..83b6b5c 100644 AM_CXXFLAGS += -std=gnu++11 ACLOCAL_AMFLAGS = -I m4 diff --git a/libsanitizer/ubsan/Makefile.in b/libsanitizer/ubsan/Makefile.in -index 64aad19..f5748b9 100644 +index 0973a7a..8f30452 100644 --- a/libsanitizer/ubsan/Makefile.in +++ b/libsanitizer/ubsan/Makefile.in -@@ -284,7 +284,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include +@@ -256,7 +256,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ diff --git a/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch b/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch index b1b8843bee..47314225ed 100644 --- a/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch +++ b/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch @@ -1,4 +1,4 @@ -From 5a233414dafa9df519ed3482d9d3bea9cee57d0c Mon Sep 17 00:00:00 2001 +From a2efd837133281c5c07038720a748a613abe4c9e Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:37 +0100 Subject: [PATCH 19/20] MinGW-w64: Port sanitizer @@ -26,7 +26,7 @@ index b002876..7b93331 100644 } diff --git a/libsanitizer/configure b/libsanitizer/configure -index 809f0d7..75fbc0e 100755 +index 1efbd53..2c58716 100755 --- a/libsanitizer/configure +++ b/libsanitizer/configure @@ -628,6 +628,7 @@ TSAN_SUPPORTED_FALSE @@ -37,7 +37,7 @@ index 809f0d7..75fbc0e 100755 CXXCPP OTOOL64 OTOOL -@@ -15387,6 +15388,31 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +@@ -15382,6 +15383,31 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu @@ -69,7 +69,7 @@ index 809f0d7..75fbc0e 100755 for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. -@@ -15514,10 +15540,10 @@ done +@@ -15509,10 +15535,10 @@ done # Common libraries that we need to link against for all sanitizer libs. diff --git a/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch b/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch index 66b01ed3fe..833e4fbcf5 100644 --- a/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch +++ b/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch @@ -1,4 +1,4 @@ -From cfaf509bf9361774b06207d35d996cec42ff52da Mon Sep 17 00:00:00 2001 +From 8b3a397c31331655a3d0c45531cf6d03bf60a855 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:39 +0100 Subject: [PATCH 20/20] Force linking to libgcc_s_dw2-1.dll [deprecated] @@ -53,7 +53,7 @@ index 2186937..7f71ccc 100644 } " #else diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h -index 47e12e7..9afe794 100644 +index 0950304..ca73137 100644 --- a/gcc/config/i386/mingw32.h +++ b/gcc/config/i386/mingw32.h @@ -120,6 +120,10 @@ along with GCC; see the file COPYING3. If not see diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD index 53bd39007f..e1243981ef 100644 --- a/mingw-w64-gcc-git/PKGBUILD +++ b/mingw-w64-gcc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc-git") -pkgver=r140393.28c4d97 +pkgver=r138262.b510e09 _realpkgver=5.2.1 pkgrel=1 pkgdesc="GCC for the MinGW-w64" @@ -56,26 +56,26 @@ source=("git://gcc.gnu.org/git/gcc.git#branch=gcc-5-branch" "0019-MinGW-w64-Port-sanitizer.patch" "0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch") md5sums=('SKIP' - '65a9fc75d46e8c8a051fd246709b2652' - 'fc900d3c2b23921fc7bfe973d7c889ad' - '4d7e9bf23ee71b77a8d742589c77a56b' - 'c609e63914e83176477759f1aa27925d' - 'eb4d9cf6da0acd9f22277f60618b6bbb' - '04f1d877bf817047b90b5d3f4ca03d2d' - '5d774e23da45388220d677a7d06b5c71' - '0eeb7046d938fcdc6123adb5e9eeda07' - '5525a022098fb671dc54db298b8b56b0' - '2f314182cea4027a00a908957b37709f' - '5c77a36ac59f6b1a69b290728b02a41f' - '207f21a4bccfe6e9acbaa5af5f5fb389' - '6fbcd16a25c725c60e8b09480d7a30fb' - 'a71c072f7ba76cf11582332cdd0f2061' - 'cd71518ec43aab8a2a78a309a56b3b42' - '107a5222e034c4c58ae9b9a9fbd81f61' - 'c35021a8e0ffca8d6a78a49869cde573' - '3cb246fc3d5f605e02f2e242f1ac91a7' - '7e5fb2f55e36eee93a7a4b8f35211f79' - '4dad9a8c6300c24a1bb64f1dde20cdca') + 'd7d87c91e5cb749041dc6a76e3851c99' + 'aa208c2fd0e22fd3d705f0c566e1b7bd' + 'e56ac082dc2271c1f2e26c4c495ab1ef' + '7aa7577aa1f4b84bf545a36590b6a9b8' + 'c68ec5d0b4c598e1d821c7a2a5c09cc8' + '9db2310ba56d26e4591f8ed1465cb27b' + '948b52fafbd76243ad428f6676f983e1' + '8402da5e347d1af994330770bbfa482f' + '35c9c03bab8fbf35496c00505e155de5' + '598be0b3c075f34ee9412e544444a37d' + '297dcacc3dddffb4bb7f84c027d05de6' + 'f5d5df3c8cdf415887efdd03919a45d8' + 'c44cd8adfd8925669ff0dcad75a0a738' + 'edfb64089ffd93d59ce25dd657acc033' + '11bb407bb7189d99ee484dc7271e079d' + 'c6bb9ae076b9bf912a4fdee61dc4e85d' + '1c9eec9d73f8cddad416ebc6eec74d6f' + '4039f5f797aafc0ea6a8c19bbf3884c6' + '66099fb679608bcaa011ffb802eec59f' + '5e8e5881e4e64afc50e6848859c50fbe') _threads="posix" @@ -107,6 +107,14 @@ prepare() { git am "${srcdir}"/0018-MinGW-w64-No-fpic-in-sanitizer.patch git am "${srcdir}"/0019-MinGW-w64-Port-sanitizer.patch git am "${srcdir}"/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch + + # do not expect $prefix/mingw symlink - this should be superceded by + # 0006-Windows-Don-t-ignore-native-system-header-dir.patch .. but isn't! + sed -i 's/${prefix}\/mingw\//${prefix}\//g' configure + + # change hardcoded /mingw prefix to the real prefix + local MINGW_NATIVE_PREFIX=$(cygpath -am ${MINGW_PREFIX}/${MINGW_CHOST}) + sed -i "s/\\/mingw\\//${MINGW_NATIVE_PREFIX//\//\\/}\\//g" gcc/config/i386/mingw32.h } build() { From bf665ecaf846d583d6a80c7663ddbcf143a43287 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 8 Aug 2015 16:53:50 +0100 Subject: [PATCH 1440/2060] gcc-git: Disable libsanitizer again There are link failures at present. If anyone cares to look into this that'd be great but I am looking into another GCC bug so I need the build to succeed. Done as a subsequent patch rather than removing the patch that enabled libsanitizer, so that it's easier to remove once someone fixes this. --- .../0021-MinGW-w64-Disable-libsanitizer.patch | 30 +++++++++++++ mingw-w64-gcc-git/PKGBUILD | 45 ++++++++++--------- 2 files changed, 54 insertions(+), 21 deletions(-) create mode 100644 mingw-w64-gcc-git/0021-MinGW-w64-Disable-libsanitizer.patch diff --git a/mingw-w64-gcc-git/0021-MinGW-w64-Disable-libsanitizer.patch b/mingw-w64-gcc-git/0021-MinGW-w64-Disable-libsanitizer.patch new file mode 100644 index 0000000000..f08aee369d --- /dev/null +++ b/mingw-w64-gcc-git/0021-MinGW-w64-Disable-libsanitizer.patch @@ -0,0 +1,30 @@ +From 51e6afe704bdf28680db2a00cb7fa31507988b55 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 8 Aug 2015 16:46:03 +0100 +Subject: [PATCH 21/21] MinGW-w64: Disable libsanitizer + +[20150808] Causes a build failure on gcc-5-branch +--- + libsanitizer/configure.tgt | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/libsanitizer/configure.tgt b/libsanitizer/configure.tgt +index a7f7356..a400893 100644 +--- a/libsanitizer/configure.tgt ++++ b/libsanitizer/configure.tgt +@@ -36,8 +36,10 @@ case "${target}" in + ;; + aarch64*-*-linux*) + ;; +- *-*-mingw*) +- ;; ++# [20150808] :: Causes a build failure on gcc-5-branch: ++# mingw-w64-gcc-git\src\build-i686-w64-mingw32\i686-w64-mingw32\libsanitizer\asan/../../../../gcc/libsanitizer/asan/asan_interceptors.cc:722: undefined reference to `_except_handler4_common' ++# *-*-mingw*) ++# ;; + x86_64-*-darwin[1]* | i?86-*-darwin[1]*) + TSAN_SUPPORTED=no + ;; +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD index e1243981ef..b5c14ec602 100644 --- a/mingw-w64-gcc-git/PKGBUILD +++ b/mingw-w64-gcc-git/PKGBUILD @@ -54,28 +54,30 @@ source=("git://gcc.gnu.org/git/gcc.git#branch=gcc-5-branch" "0017-MinGW-w64-Enable-shared-gnat.patch" "0018-MinGW-w64-No-fpic-in-sanitizer.patch" "0019-MinGW-w64-Port-sanitizer.patch" - "0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch") + "0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch" + "0021-MinGW-w64-Disable-libsanitizer.patch") md5sums=('SKIP' - 'd7d87c91e5cb749041dc6a76e3851c99' - 'aa208c2fd0e22fd3d705f0c566e1b7bd' - 'e56ac082dc2271c1f2e26c4c495ab1ef' - '7aa7577aa1f4b84bf545a36590b6a9b8' - 'c68ec5d0b4c598e1d821c7a2a5c09cc8' - '9db2310ba56d26e4591f8ed1465cb27b' - '948b52fafbd76243ad428f6676f983e1' - '8402da5e347d1af994330770bbfa482f' - '35c9c03bab8fbf35496c00505e155de5' - '598be0b3c075f34ee9412e544444a37d' - '297dcacc3dddffb4bb7f84c027d05de6' - 'f5d5df3c8cdf415887efdd03919a45d8' - 'c44cd8adfd8925669ff0dcad75a0a738' - 'edfb64089ffd93d59ce25dd657acc033' - '11bb407bb7189d99ee484dc7271e079d' - 'c6bb9ae076b9bf912a4fdee61dc4e85d' - '1c9eec9d73f8cddad416ebc6eec74d6f' - '4039f5f797aafc0ea6a8c19bbf3884c6' - '66099fb679608bcaa011ffb802eec59f' - '5e8e5881e4e64afc50e6848859c50fbe') + '14a1136978f1284475fd8d5b5d21e54a' + '972529152d8f1e9a04b7384485b39582' + '00a27512e1e35f7a25ef70878eeacf4b' + 'bf189ec9bceb018ab7d4934723a4f8f6' + '7efc5a9f51f997b8cff40fdfa0b7dc23' + '6b7628d9583c1781b69f406e9c2c8bb9' + 'e01f7479666af3eead06d95a954ee857' + '31940882ee9a9d41636f917aa431f268' + 'b4ad313ad24f2c566a3df6502b35dc20' + '16013736d1a50f4ac5975f92db4aef49' + '4ba9a6ca3aefdcc7a022ce53e9f7e71e' + '24f34964371c9a07dddaa50af736de48' + 'bc17dfc1ecd579e68758708c4e326ce8' + '262a6b962ac7f39f040e0a577bb53f8b' + '64738ba9d548a09f80b1585f3f2c3fc5' + 'd76ff2ab357de8e2fd7df2dc6a75e85f' + 'b5c33e5b839ba7288ccce28f007e5026' + '0ae5152020eda9d2640059bd80fd0c5d' + '1fe59799bcc88908ad6c25564d6ca470' + '846c2ac9e477b1e79e2cc97118263a5b' + '568d6bf407ac82d99bfc91fbeb4af860') _threads="posix" @@ -107,6 +109,7 @@ prepare() { git am "${srcdir}"/0018-MinGW-w64-No-fpic-in-sanitizer.patch git am "${srcdir}"/0019-MinGW-w64-Port-sanitizer.patch git am "${srcdir}"/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch + git am "${srcdir}"/0021-MinGW-w64-Disable-libsanitizer.patch # do not expect $prefix/mingw symlink - this should be superceded by # 0006-Windows-Don-t-ignore-native-system-header-dir.patch .. but isn't! From b717420dce4a01eaf934eddf941268f93f4b2e5a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 8 Aug 2015 23:55:41 +0100 Subject: [PATCH 1441/2060] gcc-git: Fix packaging, disable sanitizer --- mingw-w64-gcc-git/0001-Relocate-libintl.patch | 4 +- ...e-_ZTC-in-libstdc-exports-deprecated.patch | 4 +- ..._weakref__-on-__MINGW32__-deprecated.patch | 4 +- ...osix-dir-exists-semantics-more-close.patch | 4 +- ...not-in-progpath-and-leave-case-as-is.patch | 4 +- ...on-t-ignore-native-system-header-dir.patch | 4 +- ...-feature-to-allow-overriding-lmsvcrt.patch | 4 +- ..._malloc_cleared-instead-of-gomp_mall.patch | 4 +- .../0009-Build-EXTRA_GNATTOOLS-for-Ada.patch | 4 +- .../0010-Prettify-linking-no-undefined.patch | 4 +- ...in-header-cplusplus-compatible-depre.patch | 4 +- ...too-late-resolved-__EH_FRAME_BEGIN__.patch | 4 +- .../0013-Fix-using-large-PCH.patch | 4 +- .../0014-Enable-shared-gnat-implib.patch | 4 +- .../0015-MinGW-w64-Enable-libitm.patch | 4 +- .../0016-MinGW-w64-Enable-libsanitizer.patch | 4 +- .../0017-MinGW-w64-Enable-shared-gnat.patch | 4 +- .../0018-MinGW-w64-No-fpic-in-sanitizer.patch | 4 +- .../0019-MinGW-w64-Port-sanitizer.patch | 4 +- ...ing-to-libgcc_s_dw2-1.dll-deprecated.patch | 4 +- mingw-w64-gcc-git/PKGBUILD | 94 +++++++++---------- 21 files changed, 87 insertions(+), 87 deletions(-) diff --git a/mingw-w64-gcc-git/0001-Relocate-libintl.patch b/mingw-w64-gcc-git/0001-Relocate-libintl.patch index 0d7d005406..484a061674 100644 --- a/mingw-w64-gcc-git/0001-Relocate-libintl.patch +++ b/mingw-w64-gcc-git/0001-Relocate-libintl.patch @@ -1,7 +1,7 @@ -From 555202a31b9136ae0db5eebf79430aaf2a885d45 Mon Sep 17 00:00:00 2001 +From 8d421ffee9b324f35390a077c1278a1e31585db9 Mon Sep 17 00:00:00 2001 From: Erwin Waterlander Date: Wed, 5 Aug 2015 23:36:03 +0100 -Subject: [PATCH 01/20] Relocate libintl +Subject: [PATCH 01/21] Relocate libintl The relocatex-libintl patch adds builtin relocation for executables to the libintl dll. With this patch the programs are automatically relocatable. There diff --git a/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch b/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch index 383a587276..2dd4f68004 100644 --- a/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch +++ b/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch @@ -1,7 +1,7 @@ -From 7cbef7a503bc1b5c6c0bf7302c854272110d1ce8 Mon Sep 17 00:00:00 2001 +From daaed8dcdc5499a4d7eb6d73d9829a578ad32d51 Mon Sep 17 00:00:00 2001 From: gee Date: Wed, 5 Aug 2015 23:36:04 +0100 -Subject: [PATCH 02/20] PR54314: Include _ZTC* in libstdc++ exports +Subject: [PATCH 02/21] PR54314: Include _ZTC* in libstdc++ exports [deprecated] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54314 diff --git a/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch b/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch index 652a6eda15..95fc9999fa 100644 --- a/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch +++ b/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch @@ -1,7 +1,7 @@ -From fb18215bf3a49d395e51a91bb264f0de9bd43489 Mon Sep 17 00:00:00 2001 +From ee889411a031eded929e5b03e08851a5c748c9ad Mon Sep 17 00:00:00 2001 From: niXman Date: Wed, 5 Aug 2015 23:36:06 +0100 -Subject: [PATCH 03/20] PR52300: Avoid __weakref__ on __MINGW32__ [deprecated] +Subject: [PATCH 03/21] PR52300: Avoid __weakref__ on __MINGW32__ [deprecated] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52300 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52300#c0 diff --git a/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch b/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch index 8a7cfc1a6b..b7f0474c70 100644 --- a/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch +++ b/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch @@ -1,7 +1,7 @@ -From aa08dd84fd1eb14d401e6367423bd617aa56aa72 Mon Sep 17 00:00:00 2001 +From 0358994260d801cfbdd6125c5bf335188097d6ac Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:07 +0100 -Subject: [PATCH 04/20] Windows: Follow Posix dir-exists semantics more closely +Subject: [PATCH 04/21] Windows: Follow Posix dir-exists semantics more closely Make Windows behave the same as Posix in the consideration of whether folder "/doesnt-exist/.." is a valid diff --git a/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch b/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch index ad70a59b1d..385761c7ae 100644 --- a/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch +++ b/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch @@ -1,7 +1,7 @@ -From f15e87721b070ec4ccf59195504a59da5c92ce8c Mon Sep 17 00:00:00 2001 +From 8345a1a9ac6fa6587cfc6ec27667aa7a8ed77151 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:09 +0100 -Subject: [PATCH 05/20] Windows: Use '/' not '\' in progpath and leave case +Subject: [PATCH 05/21] Windows: Use '/' not '\' in progpath and leave case as-is Windows can handle both '/' and '\' dirseps. GCC will diff --git a/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch b/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch index 1219e58abf..c8a83601a0 100644 --- a/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch +++ b/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch @@ -1,7 +1,7 @@ -From 9aaca7dac257a7ddf7406e9bae515dd27eee996d Mon Sep 17 00:00:00 2001 +From b61f5e29306511be2f6d243b1e887a903c10b077 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:11 +0100 -Subject: [PATCH 06/20] Windows: Don't ignore native system header dir +Subject: [PATCH 06/21] Windows: Don't ignore native system header dir --- gcc/config.gcc | 5 ++++- diff --git a/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch b/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch index e8741e328d..0f0640ef56 100644 --- a/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch +++ b/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch @@ -1,7 +1,7 @@ -From 57391e17c94357f69c683db2c77cc42d7a8f0258 Mon Sep 17 00:00:00 2001 +From 9a5802335d195c8b1bf577bbc00e7905c2ed8226 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:13 +0100 -Subject: [PATCH 07/20] Windows: New feature to allow overriding -lmsvcrt +Subject: [PATCH 07/21] Windows: New feature to allow overriding -lmsvcrt Added in support of the MinGW-w64 WIP feature "agile mscvrt dll" where a process' loaded msvc runtime is used by a newly loaded DLL rather than diff --git a/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch b/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch index 052a5d3dd4..17ae4127b2 100644 --- a/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch +++ b/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch @@ -1,7 +1,7 @@ -From 2d03a8b28a5be995fd2af3f750cd6a21048da1d8 Mon Sep 17 00:00:00 2001 +From 98337c715bbc77e19e7514c92f4f0c9f0242f83d Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Wed, 5 Aug 2015 23:36:16 +0100 -Subject: [PATCH 08/20] libgomp: Use gomp_malloc_cleared instead of gomp_malloc +Subject: [PATCH 08/21] libgomp: Use gomp_malloc_cleared instead of gomp_malloc [deprecated] This was added when trying to track down a problem in Blender, diff --git a/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch b/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch index d9373e7c97..e790613c27 100644 --- a/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch +++ b/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch @@ -1,7 +1,7 @@ -From 2840cdcc4a2c68a6cbe4b72515cf6d2143bf1ff3 Mon Sep 17 00:00:00 2001 +From 4f0883f86431cf2b32fad338a6c797fee3e4a468 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 5 Aug 2015 23:36:17 +0100 -Subject: [PATCH 09/20] Build EXTRA_GNATTOOLS for Ada +Subject: [PATCH 09/21] Build EXTRA_GNATTOOLS for Ada --- gnattools/Makefile.in | 6 +++--- diff --git a/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch b/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch index 50529bba5f..e94dbbfcfa 100644 --- a/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch +++ b/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch @@ -1,7 +1,7 @@ -From 3e6638629ae7b84ff78a79f3716ae5bc93825ad6 Mon Sep 17 00:00:00 2001 +From 777747a9eb169ae69fb7216b8d582e76e197decb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 5 Aug 2015 23:36:19 +0100 -Subject: [PATCH 10/20] Prettify linking -no-undefined +Subject: [PATCH 10/21] Prettify linking -no-undefined It might be better to put this change in a conditional block for Windows only? diff --git a/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch b/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch index d31f30bf8f..456eb74b6c 100644 --- a/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch +++ b/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch @@ -1,7 +1,7 @@ -From 0605cd773a8ebac39b3e91eee0dc1633d8c76165 Mon Sep 17 00:00:00 2001 +From 52b810bd7ee566d3f1950c32ad32efe8090652c3 Mon Sep 17 00:00:00 2001 From: Erik van Pienbroek Date: Wed, 5 Aug 2015 23:36:21 +0100 -Subject: [PATCH 11/20] gcc: make xmmintrin header cplusplus compatible +Subject: [PATCH 11/21] gcc: make xmmintrin header cplusplus compatible [deprecated] Deprecated as-per: diff --git a/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch b/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch index 9a50cd9cb4..9af33b3c5c 100644 --- a/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch +++ b/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch @@ -1,7 +1,7 @@ -From 71bfd7c63c1c431138efa1951ce1cecf7222fdff Mon Sep 17 00:00:00 2001 +From 2e77b95a04243b410131c31498fe98f4ef49dbf6 Mon Sep 17 00:00:00 2001 From: Matt Breedlove Date: Wed, 5 Aug 2015 23:36:22 +0100 -Subject: [PATCH 12/20] Work around {un-,too-late-}resolved __EH_FRAME_BEGIN__ +Subject: [PATCH 12/21] Work around {un-,too-late-}resolved __EH_FRAME_BEGIN__ Here's the dwarf2 patch I'm using. With the change to checking __LIBGCC_EH_FRAME_SECTION_NAME__, an undefined reference to diff --git a/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch b/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch index b6516f01b3..f2e8ce7c7a 100644 --- a/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch +++ b/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch @@ -1,7 +1,7 @@ -From 9e87ad0651d41d9259c1bead74fc0efe54583e29 Mon Sep 17 00:00:00 2001 +From d33c5504ef629af9b13cee500773d8101a697d15 Mon Sep 17 00:00:00 2001 From: Martin Richter Date: Wed, 5 Aug 2015 23:36:25 +0100 -Subject: [PATCH 13/20] Fix using large PCH +Subject: [PATCH 13/21] Fix using large PCH The following patch fixes segfault when gt_pch_use_address fails (returns -1). fatal_error now correctly shows an error diff --git a/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch b/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch index b88cfaac3c..66ecf8e493 100644 --- a/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch +++ b/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch @@ -1,7 +1,7 @@ -From a7daaf8cf35bdb88e867a79bd917e4698acc6281 Mon Sep 17 00:00:00 2001 +From 27578e70bac3247cd8f798614383e31311312b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Pfeifer?= Date: Wed, 5 Aug 2015 23:36:27 +0100 -Subject: [PATCH 14/20] Enable shared gnat implib +Subject: [PATCH 14/21] Enable shared gnat implib Provide GNAT runtime import libraries to allow to link against shared runtime diff --git a/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch b/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch index 3a2903799c..bb03affae3 100644 --- a/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch +++ b/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch @@ -1,7 +1,7 @@ -From 18ef2a6e58914ffcfdfdd9e7c393679c4ac23be3 Mon Sep 17 00:00:00 2001 +From f1cb7b014b0d6f6bf8348fc25474fe201848399d Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:29 +0100 -Subject: [PATCH 15/20] MinGW-w64: Enable libitm +Subject: [PATCH 15/21] MinGW-w64: Enable libitm --- libitm/Makefile.am | 2 +- diff --git a/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch b/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch index 42101a88c6..792f352efc 100644 --- a/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch +++ b/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch @@ -1,7 +1,7 @@ -From 86dd58be9ae146f818bef7dca26ac3edd91f38cc Mon Sep 17 00:00:00 2001 +From 36ebc51b5ce673c68e2144ed310562a2f3278702 Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:31 +0100 -Subject: [PATCH 16/20] MinGW-w64: Enable libsanitizer +Subject: [PATCH 16/21] MinGW-w64: Enable libsanitizer --- libsanitizer/configure.tgt | 2 ++ diff --git a/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch b/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch index 68147e0290..d48e621b64 100644 --- a/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch +++ b/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch @@ -1,7 +1,7 @@ -From 5da31325c6650fa1ee4a7cf4171cf53abb1259e9 Mon Sep 17 00:00:00 2001 +From 2bb8c06f10a92bc95efa2734f49462f1cbee3de5 Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:33 +0100 -Subject: [PATCH 17/20] MinGW-w64: Enable shared gnat +Subject: [PATCH 17/21] MinGW-w64: Enable shared gnat --- libada/configure | 2 +- diff --git a/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch b/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch index 0341c6581d..5b8e9d2cc3 100644 --- a/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch +++ b/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch @@ -1,7 +1,7 @@ -From 554461ed4b65bca3bff9484cd273302d7e878a4a Mon Sep 17 00:00:00 2001 +From 4e4bf988c080e08188431d41c368e7d114f90c37 Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:35 +0100 -Subject: [PATCH 18/20] MinGW-w64: No -fpic in sanitizer +Subject: [PATCH 18/21] MinGW-w64: No -fpic in sanitizer --- libsanitizer/asan/Makefile.am | 2 +- diff --git a/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch b/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch index 47314225ed..846c57e3eb 100644 --- a/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch +++ b/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch @@ -1,7 +1,7 @@ -From a2efd837133281c5c07038720a748a613abe4c9e Mon Sep 17 00:00:00 2001 +From acd73154de83946edf76aa8e045cde54abfa60dd Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:37 +0100 -Subject: [PATCH 19/20] MinGW-w64: Port sanitizer +Subject: [PATCH 19/21] MinGW-w64: Port sanitizer --- libsanitizer/asan/asan_win.cc | 3 --- diff --git a/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch b/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch index 833e4fbcf5..28b6022c21 100644 --- a/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch +++ b/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch @@ -1,7 +1,7 @@ -From 8b3a397c31331655a3d0c45531cf6d03bf60a855 Mon Sep 17 00:00:00 2001 +From be8fb1f85351f198c063a2b7863c0b428f502962 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:39 +0100 -Subject: [PATCH 20/20] Force linking to libgcc_s_dw2-1.dll [deprecated] +Subject: [PATCH 20/21] Force linking to libgcc_s_dw2-1.dll [deprecated] .. by adding to specs: *libgcc diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD index b5c14ec602..74f962a8cd 100644 --- a/mingw-w64-gcc-git/PKGBUILD +++ b/mingw-w64-gcc-git/PKGBUILD @@ -145,7 +145,7 @@ build() { --target=${MINGW_CHOST} \ --with-native-system-header-dir=${MINGW_PREFIX}/${MINGW_CHOST}/include \ --libexecdir=${MINGW_PREFIX}/lib \ - --with-gxx-include-dir=${MINGW_PREFIX}/include/c++/${pkgver} \ + --with-gxx-include-dir=${MINGW_PREFIX}/include/c++/${_realpkgver} \ --enable-bootstrap \ --with-arch=${_arch} \ --with-tune=generic \ @@ -189,10 +189,10 @@ build() { make all make -j1 DESTDIR=${srcdir} install - mv ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/adalib/*.dll ${srcdir}${MINGW_PREFIX}/bin/ + mv ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/adalib/*.dll ${srcdir}${MINGW_PREFIX}/bin/ } -package_mingw-w64-gcc-git-libs() { +package_mingw-w64-gcc-libs-git() { pkgdesc="GNU Compiler Collection (libraries) for MinGW-w64" depends=("${MINGW_PACKAGE_PREFIX}-gmp" "${MINGW_PACKAGE_PREFIX}-libwinpthread") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-libs") @@ -224,7 +224,7 @@ ENDFILE cp bin/{libatomic*,libgcc*,libgomp*,libquadmath*,libssp*,libstdc*,libvtv*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ } -package_mingw-w64-gcc() { +package_mingw-w64-gcc-git() { pkgdesc="GNU Compiler Collection (C,C++,OpenMP) for MinGW-w64" depends=("${MINGW_PACKAGE_PREFIX}-binutils" "${MINGW_PACKAGE_PREFIX}-crt" @@ -260,36 +260,36 @@ package_mingw-w64-gcc() { cp bin/${MINGW_CHOST}-gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/ #cp bin/{libgcc*,libgomp*,libquadmath*,libssp*,libstdc*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ - mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include - cp lib/gcc/${MINGW_CHOST}/${pkgver}/include/*.h ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/ssp ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include-fixed ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/install-tools ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/collect2.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/crt*.o ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/liblto* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libatomic* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcc* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcov* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgomp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libquadmath* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libssp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libvtv* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/lto*.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/include + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/include/*.h ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/include/ + cp -r lib/gcc/${MINGW_CHOST}/${_realpkgver}/include/ssp ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/include/ + cp -r lib/gcc/${MINGW_CHOST}/${_realpkgver}/include-fixed ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp -r lib/gcc/${MINGW_CHOST}/${_realpkgver}/install-tools ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/cc1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/collect2.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/crt*.o ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/liblto* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libatomic* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libgcc* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libgcov* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libgomp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libquadmath* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libssp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libvtv* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/lto*.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ #mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib - cp ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/libgcc_s.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/libgcc_s.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ #cp lib/gcc/${MINGW_CHOST}/lib/libgcc_s.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/ - #cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/c++ ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ + #cp -r lib/gcc/${MINGW_CHOST}/${_realpkgver}/include/c++ ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/include/ cp -r include/c++ ${pkgdir}${MINGW_PREFIX}/include/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1plus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libstdc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libsupc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/cc1plus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libstdc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libsupc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/{doc,info,locale,man} - #cp -r share/doc/gcc-${pkgver} ${pkgdir}${MINGW_PREFIX}/share/doc/ + #cp -r share/doc/gcc-${_realpkgver} ${pkgdir}${MINGW_PREFIX}/share/doc/ cp share/info/cpp.info* ${pkgdir}${MINGW_PREFIX}/share/info/ cp share/info/cppinternals.info* ${pkgdir}${MINGW_PREFIX}/share/info/ cp share/info/gcc.info* ${pkgdir}${MINGW_PREFIX}/share/info/ @@ -299,8 +299,8 @@ package_mingw-w64-gcc() { cp share/info/libquadmath.info* ${pkgdir}${MINGW_PREFIX}/share/info/ #cp share/locale/* ${pkgdir}${MINGW_PREFIX}/share/locale/ - mkdir -p ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver}/python - cp -r share/gcc-${pkgver}/python/libstdcxx ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver}/python/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/gcc-${_realpkgver}/python + cp -r share/gcc-${_realpkgver}/python/libstdcxx ${pkgdir}${MINGW_PREFIX}/share/gcc-${_realpkgver}/python/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/man/man1 cp share/man/man1/cpp.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ cp share/man/man1/gcc.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ @@ -311,7 +311,7 @@ package_mingw-w64-gcc() { cp share/man/man1/g++.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ } -package_mingw-w64-gcc-libgfortran() { +package_mingw-w64-gcc-libgfortran-git() { pkgdesc="GNU Compiler Collection (libgfortran) for MinGW-w64" depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-libs-git=${pkgver}-${pkgrel}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran") @@ -322,7 +322,7 @@ package_mingw-w64-gcc-libgfortran() { cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/ } -package_mingw-w64-gcc-fortran() { +package_mingw-w64-gcc-fortran-git() { pkgdesc="GNU Compiler Collection (Fortran) for MinGW-w64" depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-git=${pkgver}-${pkgrel}" "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran=${pkgver}-${pkgrel}") @@ -337,20 +337,20 @@ package_mingw-w64-gcc-fortran() { #cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/ - mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver} - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/finclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/f951.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libcaf_single.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgfortran* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver} + cp -r lib/gcc/${MINGW_CHOST}/${_realpkgver}/finclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/f951.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libcaf_single.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libgfortran* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/man/man1 cp share/man/man1/gfortran.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/info cp share/info/gfortran.info* ${pkgdir}${MINGW_PREFIX}/share/info/ } -package_mingw-w64-gcc-ada() { +package_mingw-w64-gcc-ada-git() { pkgdesc="GNU Compiler Collection (Ada) for MinGW-w64" - depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-git=${pkgver}-${pkgrel}") + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-git=${_realpkgver}-${pkgrel}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-ada") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-ada") @@ -361,10 +361,10 @@ package_mingw-w64-gcc-ada() { cp bin/{libgnarl*,libgnat*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ - mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver} - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adainclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adalib ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/gnat1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver} + cp -r lib/gcc/${MINGW_CHOST}/${_realpkgver}/adainclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp -r lib/gcc/${MINGW_CHOST}/${_realpkgver}/adalib ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/gnat1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/info cp share/info/gnat-style.info* ${pkgdir}${MINGW_PREFIX}/share/info/ @@ -383,11 +383,11 @@ package_mingw-w64-gcc-objc-git() { cd ${srcdir}${MINGW_PREFIX} cp bin/libobjc*.dll ${pkgdir}${MINGW_PREFIX}/bin/ - mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include - cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/objc ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1obj.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/libobjc.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ - cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1objplus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/include + cp -r lib/gcc/${MINGW_CHOST}/${_realpkgver}/include/objc ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/include/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/cc1obj.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/libobjc.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ + cp lib/gcc/${MINGW_CHOST}/${_realpkgver}/cc1objplus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_realpkgver}/ } # Wrappers for package functions From f64dbbf6950cf033dc9ca34b703787b3bde2cbdc Mon Sep 17 00:00:00 2001 From: Evgenii Pashkin Date: Sat, 8 Aug 2015 22:39:21 +0300 Subject: [PATCH 1442/2060] Upgrade rust to 1.2.0 --- mingw-w64-rust/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-rust/PKGBUILD b/mingw-w64-rust/PKGBUILD index c5994695ba..a6cb0d2669 100644 --- a/mingw-w64-rust/PKGBUILD +++ b/mingw-w64-rust/PKGBUILD @@ -2,8 +2,8 @@ _realname=rust pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.1.0 -pkgrel=3 +pkgver=1.2.0 +pkgrel=1 pkgdesc="A safe, concurrent, practical language from Mozilla (mingw-w64)" arch=('any') url="http://www.rust-lang.org/" @@ -20,7 +20,7 @@ makedepends=("git" options=('!makeflags' 'staticlibs') #install=rust.install source=(https://static.rust-lang.org/dist/${_realname}c-${pkgver}-src.tar.gz) -md5sums=('5f2f923f8d1c77a55721d1f0813a158a') +sha256sums=('ea6eb983daf2a073df57186a58f0d4ce0e85c711bec13c627a8c85d51b6a6d78') prepare() { cd ${srcdir}/${_realname}c-$pkgver @@ -37,7 +37,8 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ - --llvm-root=${MINGW_PREFIX} + --llvm-root=${MINGW_PREFIX} \ + --release-channel=stable #--enable-local-rust use an installed rustc rather than downloading a snapshot #--local-rust-root=[/usr/local] set prefix for local rust binary From c4ed35441b3ad324ad600b4d36b4c1ccf8fd1e10 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 9 Aug 2015 12:21:13 +0100 Subject: [PATCH 1443/2060] gcc-git: Fix provides and depends --- mingw-w64-gcc-git/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD index 74f962a8cd..f83984eb7a 100644 --- a/mingw-w64-gcc-git/PKGBUILD +++ b/mingw-w64-gcc-git/PKGBUILD @@ -232,12 +232,12 @@ package_mingw-w64-gcc-git() { "${MINGW_PACKAGE_PREFIX}-isl" "${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-mpc" - "${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}-${pkgrel}" + "${MINGW_PACKAGE_PREFIX}-${_realname}-libs-git=${pkgver}-${pkgrel}" "${MINGW_PACKAGE_PREFIX}-windows-default-manifest" "${MINGW_PACKAGE_PREFIX}-winpthreads" "${MINGW_PACKAGE_PREFIX}-zlib") - provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-gcc") - conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-gcc") + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,include,lib,share} @@ -325,7 +325,7 @@ package_mingw-w64-gcc-libgfortran-git() { package_mingw-w64-gcc-fortran-git() { pkgdesc="GNU Compiler Collection (Fortran) for MinGW-w64" depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-git=${pkgver}-${pkgrel}" - "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran=${pkgver}-${pkgrel}") + "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran-git=${pkgver}-${pkgrel}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-fortran") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-fortran") @@ -350,7 +350,7 @@ package_mingw-w64-gcc-fortran-git() { package_mingw-w64-gcc-ada-git() { pkgdesc="GNU Compiler Collection (Ada) for MinGW-w64" - depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-git=${_realpkgver}-${pkgrel}") + depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-git=${pkgver}-${pkgrel}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-ada") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-ada") From 5d85b3eee104879a96880ea0786dfda7d04ce5db Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 9 Aug 2015 14:36:11 +0100 Subject: [PATCH 1444/2060] gcc-git: Added _branch variable for easy switching .. required two different versions of 0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch --- ...feature-to-allow-overriding-lmsvcrt.patch} | 2 +- ...-feature-to-allow-overriding-lmsvcrt.patch | 43 +++++++++++++++++++ mingw-w64-gcc-git/PKGBUILD | 20 ++++++--- 3 files changed, 58 insertions(+), 7 deletions(-) rename mingw-w64-gcc-git/{0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch => 0007-gcc-5-branch-Windows-New-feature-to-allow-overriding-lmsvcrt.patch} (93%) create mode 100644 mingw-w64-gcc-git/0007-master-Windows-New-feature-to-allow-overriding-lmsvcrt.patch diff --git a/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch b/mingw-w64-gcc-git/0007-gcc-5-branch-Windows-New-feature-to-allow-overriding-lmsvcrt.patch similarity index 93% rename from mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch rename to mingw-w64-gcc-git/0007-gcc-5-branch-Windows-New-feature-to-allow-overriding-lmsvcrt.patch index 0f0640ef56..31ac4732d8 100644 --- a/mingw-w64-gcc-git/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch +++ b/mingw-w64-gcc-git/0007-gcc-5-branch-Windows-New-feature-to-allow-overriding-lmsvcrt.patch @@ -1,7 +1,7 @@ From 9a5802335d195c8b1bf577bbc00e7905c2ed8226 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:13 +0100 -Subject: [PATCH 07/21] Windows: New feature to allow overriding -lmsvcrt +Subject: [PATCH 07/21] gcc-5-branch Windows: New feature to allow overriding -lmsvcrt Added in support of the MinGW-w64 WIP feature "agile mscvrt dll" where a process' loaded msvc runtime is used by a newly loaded DLL rather than diff --git a/mingw-w64-gcc-git/0007-master-Windows-New-feature-to-allow-overriding-lmsvcrt.patch b/mingw-w64-gcc-git/0007-master-Windows-New-feature-to-allow-overriding-lmsvcrt.patch new file mode 100644 index 0000000000..02a7ea8dad --- /dev/null +++ b/mingw-w64-gcc-git/0007-master-Windows-New-feature-to-allow-overriding-lmsvcrt.patch @@ -0,0 +1,43 @@ +From aa1cf6450bfaaaeee75c6aaa16631dc6f606f16b Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 5 Aug 2015 23:36:13 +0100 +Subject: [PATCH 07/20] master Windows: New feature to allow overriding -lmsvcrt + +Added in support of the MinGW-w64 WIP feature "agile mscvrt dll" where +a process' loaded msvc runtime is used by a newly loaded DLL rather than +always using msvcrt.dll +--- + gcc/config/i386/cygming.opt | 3 +++ + gcc/config/i386/mingw32.h | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gcc/config/i386/cygming.opt b/gcc/config/i386/cygming.opt +index c7e398f..dfddaf8 100644 +--- a/gcc/config/i386/cygming.opt ++++ b/gcc/config/i386/cygming.opt +@@ -22,6 +22,9 @@ mconsole + Target RejectNegative + Create console application + ++mcrtdll= ++Target RejectNegative Joined ++ + mdll + Target RejectNegative + Generate code for a DLL +diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h +index eef90fb..47e12e7 100644 +--- a/gcc/config/i386/mingw32.h ++++ b/gcc/config/i386/mingw32.h +@@ -140,7 +140,7 @@ along with GCC; see the file COPYING3. If not see + #define REAL_LIBGCC_SPEC \ + "%{mthreads:-lmingwthrd} -lmingw32 \ + " SHARED_LIBGCC_SPEC " \ +- -lmoldname -lmingwex -lmsvcrt" ++ -lmoldname -lmingwex %{!mcrtdll=*:-lmsvcrt} %{mcrtdll=*:-l%*}" + + #undef STARTFILE_SPEC + #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD index f83984eb7a..98467247a6 100644 --- a/mingw-w64-gcc-git/PKGBUILD +++ b/mingw-w64-gcc-git/PKGBUILD @@ -10,8 +10,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc-git") -pkgver=r138262.b510e09 -_realpkgver=5.2.1 +pkgver=r140440.03cb8c1 pkgrel=1 pkgdesc="GCC for the MinGW-w64" arch=('any') @@ -34,14 +33,22 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" #checkdepends=('dejagnu') optdepends=() options=('staticlibs' '!emptydirs' '!strip' 'debug') -source=("git://gcc.gnu.org/git/gcc.git#branch=gcc-5-branch" +_branch=gcc-5-branch +#_branch=master +if [ "${_branch} = "master" ]; then + _realpkgver=6.0.0 +else + _realpkgver=5.2.1 +fiS +source=("git://gcc.gnu.org/git/gcc.git#branch=${_branch}" "0001-Relocate-libintl.patch" "0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch" "0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch" "0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch" "0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch" "0006-Windows-Don-t-ignore-native-system-header-dir.patch" - "0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch" + "0007-master-Windows-New-feature-to-allow-overriding-lmsvcrt.patch" + "0007-gcc-5-branch-Windows-New-feature-to-allow-overriding-lmsvcrt.patch" "0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch" "0009-Build-EXTRA_GNATTOOLS-for-Ada.patch" "0010-Prettify-linking-no-undefined.patch" @@ -63,7 +70,8 @@ md5sums=('SKIP' 'bf189ec9bceb018ab7d4934723a4f8f6' '7efc5a9f51f997b8cff40fdfa0b7dc23' '6b7628d9583c1781b69f406e9c2c8bb9' - 'e01f7479666af3eead06d95a954ee857' + 'a886e4914107b5019ff5dbcc8456eef2' + 'ebb2dac7bae6e8f8076a61a0afed0c9d' '31940882ee9a9d41636f917aa431f268' 'b4ad313ad24f2c566a3df6502b35dc20' '16013736d1a50f4ac5975f92db4aef49' @@ -95,7 +103,7 @@ prepare() { git am "${srcdir}"/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch git am "${srcdir}"/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch git am "${srcdir}"/0006-Windows-Don-t-ignore-native-system-header-dir.patch - git am "${srcdir}"/0007-Windows-New-feature-to-allow-overriding-lmsvcrt.patch + git am "${srcdir}"/0007-${_branch}-Windows-New-feature-to-allow-overriding-lmsvcrt.patch git am "${srcdir}"/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch git am "${srcdir}"/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch git am "${srcdir}"/0010-Prettify-linking-no-undefined.patch From 2b2bc06fd5a3c21eb2e5e057daba6eae22b3d18b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 9 Aug 2015 14:37:32 +0100 Subject: [PATCH 1445/2060] gcc-git: Fix missing " --- mingw-w64-gcc-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD index 98467247a6..3660fb21a3 100644 --- a/mingw-w64-gcc-git/PKGBUILD +++ b/mingw-w64-gcc-git/PKGBUILD @@ -35,7 +35,7 @@ optdepends=() options=('staticlibs' '!emptydirs' '!strip' 'debug') _branch=gcc-5-branch #_branch=master -if [ "${_branch} = "master" ]; then +if [ "${_branch}" = "master" ]; then _realpkgver=6.0.0 else _realpkgver=5.2.1 From e750689349580fa6dee745f53266c020aa718f54 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 9 Aug 2015 14:52:58 +0100 Subject: [PATCH 1446/2060] gcc-git: There's nothing like testing .. and my last commits were not tested --- mingw-w64-gcc-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD index 3660fb21a3..5ff4fe4848 100644 --- a/mingw-w64-gcc-git/PKGBUILD +++ b/mingw-w64-gcc-git/PKGBUILD @@ -39,7 +39,7 @@ if [ "${_branch}" = "master" ]; then _realpkgver=6.0.0 else _realpkgver=5.2.1 -fiS +fi source=("git://gcc.gnu.org/git/gcc.git#branch=${_branch}" "0001-Relocate-libintl.patch" "0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch" From 59e219a379f5139a1fc965459b39cd0a1af9eddd Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Mon, 10 Aug 2015 16:20:22 +0200 Subject: [PATCH 1447/2060] ctags: fix regex support --- mingw-w64-ctags/PKGBUILD | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/mingw-w64-ctags/PKGBUILD b/mingw-w64-ctags/PKGBUILD index 2193d4c513..5c238f249b 100755 --- a/mingw-w64-ctags/PKGBUILD +++ b/mingw-w64-ctags/PKGBUILD @@ -3,7 +3,7 @@ _realname=ctags pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.8 -pkgrel=2 +pkgrel=3 pkgdesc="A multilanguage implementation of Ctags (mingw-w64)" arch=('any') url="http://ctags.sourceforge.net/" @@ -16,24 +16,28 @@ source=("http://prdownloads.sourceforge.net/${_realname}/${_realname}-${pkgver}. md5sums=('c00f82ecdcc357434731913e5b48630d' 'a85a1bd06a4f26546d2687d44195ff3e') +_ctags_srcdir=${_realname}-${pkgver} + prepare() { - cd ${_realname}-${pkgver} + cd ${_ctags_srcdir} patch -p1 -i ${srcdir}/001-fix-unused-attribute.patch } build() { - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} - ../${_realname}-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ - --disable-etags \ - --disable-external-sort - make + cd ${_ctags_srcdir} + # The configure-based build has issues with features that depend + # on regular expressions (such as --langdef, --regex-lang, etc.) + # It is a bit tricky to enable proper regex support on the posix + # build (LIBS=pcreposix configure --with-posix-regex), and then + # the executable segfaults when regexs are involved. + make -f mk_mingw.mak } package() { - cd "${srcdir}/build-${CARCH}" - make prefix="${pkgdir}/${MINGW_PREFIX}" install + _root_dest="${pkgdir}/${MINGW_PREFIX}" + mkdir -p "${_root_dest}/bin" + cp "${_ctags_srcdir}/ctags.exe" "${_root_dest}/bin" + _man_dest="${_root_dest}/share/man/man1" + mkdir -p "${_man_dest}" + cp "${_ctags_srcdir}/ctags.1" "${_man_dest}" } From 63d3081f847ba130d210fb0f1efd8b7e6a73e5c9 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 11 Aug 2015 13:47:38 +0300 Subject: [PATCH 1448/2060] scite: Use proper gcc executables. --- mingw-w64-scite/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index e3a260b45f..1c576163b9 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: David Macek _realname=scite +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") pkgver=3.6.0 -pkgrel=1 +pkgrel=2 arch=('any') url='http://www.scintilla.org/SciTE.html' license=('custom:scite') @@ -34,10 +35,10 @@ build() { cp -r "${srcdir}"/{scite,scintilla} "${srcdir}"/build-${MINGW_CHOST} cd "${srcdir}"/build-${MINGW_CHOST} - GTK3=1 make -C scintilla/gtk - make -C scintilla/win32 + GTK3=1 CC="${MINGW_PREFIX}/bin/gcc" CXX="${MINGW_PREFIX}/bin/g++" make -C scintilla/gtk + CC="${MINGW_PREFIX}/bin/gcc" CXX="${MINGW_PREFIX}/bin/g++" make -C scintilla/win32 # GTK3=1 make -C scite/gtk - make -C scite/win32 + CC="${MINGW_PREFIX}/bin/gcc" CXX="${MINGW_PREFIX}/bin/g++" make -C scite/win32 } From 3b1a73f30b3a3522b8833f3b30ed706a8c9146c0 Mon Sep 17 00:00:00 2001 From: Norbert Pfeiler Date: Wed, 12 Aug 2015 00:18:31 +0200 Subject: [PATCH 1449/2060] cmake: update to 3.3.0 --- mingw-w64-cmake/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 6f71427899..dc0ff730c1 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -2,8 +2,8 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.2.3 -pkgrel=5 +pkgver=3.3.0 +pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') url="http://www.cmake.org/" @@ -24,7 +24,7 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "dont-install-bundle.patch" "qt5-static-plugin-support.patch" "pkg-config-without-prefix.patch") -md5sums=('d51c92bf66b1e9d4fe2b7aaedd51377c' +md5sums=('b1d4823e3f74c961486d9f253da9825d' '567da5e1794863b4df8affdc7e876a7e' 'fb33ace70ba863159b2c7964a9661e1e' '6461b89ff7d1ca0c4022801dff8475a7' From fc9c594a79b63f016f08486c60242f79ed6bb76e Mon Sep 17 00:00:00 2001 From: Matt Breedlove Date: Wed, 12 Aug 2015 13:27:51 -0400 Subject: [PATCH 1450/2060] Fontconfig doesn't pass in a library directory when checking for libiconv. Using --with-libiconv to correct this. --- mingw-w64-fontconfig/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-fontconfig/PKGBUILD b/mingw-w64-fontconfig/PKGBUILD index d9a1077ce7..b0b444897b 100644 --- a/mingw-w64-fontconfig/PKGBUILD +++ b/mingw-w64-fontconfig/PKGBUILD @@ -50,6 +50,7 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-iconv \ + --with-libiconv=${MINGW_PREFIX} \ --disable-docs \ --with-arch=${CARCH} \ --with-cache-dir=/var/cache/${_realname} \ From 4a428189d1d41eb510cd71f28bb7eff65c57fe19 Mon Sep 17 00:00:00 2001 From: Matt Breedlove Date: Wed, 12 Aug 2015 13:36:05 -0400 Subject: [PATCH 1451/2060] Disable rpath to keep -R flags out of pkg-config. --- mingw-w64-libidn/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-libidn/PKGBUILD b/mingw-w64-libidn/PKGBUILD index 1f10f29434..6fe8bbe324 100644 --- a/mingw-w64-libidn/PKGBUILD +++ b/mingw-w64-libidn/PKGBUILD @@ -38,6 +38,7 @@ build() { --target=${MINGW_CHOST} \ --disable-csharp \ --disable-java \ + --disable-rpath \ --enable-threads=win32 make From 29c01417db0c0608de45845995461765c335830b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 12 Aug 2015 22:13:26 +0100 Subject: [PATCH 1452/2060] graphviz: New package (WIP) --- mingw-w64-graphviz/PKGBUILD | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 mingw-w64-graphviz/PKGBUILD diff --git a/mingw-w64-graphviz/PKGBUILD b/mingw-w64-graphviz/PKGBUILD new file mode 100644 index 0000000000..0e1d584d3f --- /dev/null +++ b/mingw-w64-graphviz/PKGBUILD @@ -0,0 +1,41 @@ +# Maintainer: Ray Donnelly + +_realname=graphviz +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=2.38.0 +pkgrel=1 +pkgdesc="Graph Visualization Software (mingw-w64)" +arch=('any') +url='http://www.graphviz.org/' +license=('EPL') +source=("http://www.graphviz.org/pub/${_realname}/stable/SOURCES/${_realname}-${pkgver}.tar.gz") +sha1sums=('053c771278909160916ca5464a0a98ebf034c6ef') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} +} + +build() { + cd "$srcdir"/${_realname}-${pkgver} + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared + + make +} + +check() { + cd "${srcdir}"/build-${CARCH} + make check +} + +package() { + cd "${srcdir}"/build-${CARCH} + make install DESTDIR="${pkgdir}" +} From 3d291d4efd14ca18b9307570cb93b9c92566c6dd Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 12 Aug 2015 22:17:18 +0100 Subject: [PATCH 1453/2060] fontconfig, libidn: Bump pkgrel --- mingw-w64-fontconfig/PKGBUILD | 2 +- mingw-w64-libidn/PKGBUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-fontconfig/PKGBUILD b/mingw-w64-fontconfig/PKGBUILD index b0b444897b..d864c63e0f 100644 --- a/mingw-w64-fontconfig/PKGBUILD +++ b/mingw-w64-fontconfig/PKGBUILD @@ -4,7 +4,7 @@ _realname=fontconfig pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.11.94 -pkgrel=3 +pkgrel=4 pkgdesc="A library for configuring and customizing font access (mingw-w64)" arch=('any') url="http://www.fontconfig.org/release" diff --git a/mingw-w64-libidn/PKGBUILD b/mingw-w64-libidn/PKGBUILD index 6fe8bbe324..995b2a3639 100644 --- a/mingw-w64-libidn/PKGBUILD +++ b/mingw-w64-libidn/PKGBUILD @@ -3,7 +3,7 @@ _realname=libidn pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.32 -pkgrel=1 +pkgrel=2 pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libidn" From 885c1f1a709f4fc1714e9bebd36620eac721bb59 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 14 Aug 2015 09:26:43 +0200 Subject: [PATCH 1454/2060] libgsf: updated to 1.14.34. --- mingw-w64-libgsf/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libgsf/PKGBUILD b/mingw-w64-libgsf/PKGBUILD index c1710e52b8..cdea9036dc 100644 --- a/mingw-w64-libgsf/PKGBUILD +++ b/mingw-w64-libgsf/PKGBUILD @@ -2,8 +2,8 @@ _realname=libgsf pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.14.33 -pkgrel=2 +pkgver=1.14.34 +pkgrel=1 arch=('any') pkgdesc="An extensible I/O abstraction library for dealing with structured file formats (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" @@ -20,7 +20,7 @@ url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch 002-get-unix-path-for-git.patch) -sha256sums=('82dd38e0c1f497704bf3b43682fca2768886058f004b14e9b5d103596f8c6e6b' +sha256sums=('f0fea447e0374a73df45b498fd1701393f8e6acb39746119f8a292fb4a0cb528' 'a6408ee4cca51afb8c910d467d0036c7aa5520e0486366aad47a5a39b5ecdc1b' 'f08db8333d2b4a369737a77969b5896d408a4d9992fab6f1c9c44ddeae25c516') From 80dc273b5f5cd533ac4af785b7d9d2d5ceaca931 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 14 Aug 2015 10:06:00 +0200 Subject: [PATCH 1455/2060] libgxps: updated to 0.2.3. --- .../0003-missing-cflags-libs.patch | 35 +++++++++++++++++++ mingw-w64-libgxps/PKGBUILD | 21 +++++++---- 2 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-libgxps/0003-missing-cflags-libs.patch diff --git a/mingw-w64-libgxps/0003-missing-cflags-libs.patch b/mingw-w64-libgxps/0003-missing-cflags-libs.patch new file mode 100644 index 0000000000..8b5a2e16cb --- /dev/null +++ b/mingw-w64-libgxps/0003-missing-cflags-libs.patch @@ -0,0 +1,35 @@ +--- libgxps-0.2.3/libgxps/Makefile.am.~1~ 2015-08-14 09:38:52.684940200 +0200 ++++ libgxps-0.2.3/libgxps/Makefile.am 2015-08-14 09:42:24.528041000 +0200 +@@ -62,7 +62,11 @@ + $(GXPS_DEBUG_CFLAGS) \ + $(LCMS2_CFLAGS) \ + $(WARN_CFLAGS) \ +- $(AM_CFLAGS) ++ $(AM_CFLAGS) \ ++ $(LIBPNG_CFLAGS) \ ++ $(CAIRO_PDF_CFLAGS) \ ++ $(CAIRO_PS_CFLAGS) \ ++ $(CAIRO_SVG_CFLAGS) + + libgxps_la_LDFLAGS = \ + -version-info $(GXPS_LT_VERSION_INFO) \ +@@ -74,7 +78,11 @@ + $(GXPS_LIBS) \ + $(LCMS2_LIBS) \ + $(LIBJPEG) \ +- $(LIBTIFF) ++ $(LIBTIFF) \ ++ $(LIBPNG_LIBS) \ ++ $(CAIRO_PDF_LIBS) \ ++ $(CAIRO_PS_LIBS) \ ++ $(CAIRO_SVG_LIBS) + + EXTRA_DIST = \ + gxps-version.h.in +@@ -108,4 +116,4 @@ + typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) + + CLEANFILES += $(gir_DATA) $(typelib_DATA) +-endif +\ Manca newline alla fine del file ++endif diff --git a/mingw-w64-libgxps/PKGBUILD b/mingw-w64-libgxps/PKGBUILD index e2e0c1e39a..f8ac920f4d 100644 --- a/mingw-w64-libgxps/PKGBUILD +++ b/mingw-w64-libgxps/PKGBUILD @@ -2,8 +2,8 @@ _realname=libgxps pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.2.2 -pkgrel=2 +pkgver=0.2.3 +pkgrel=1 arch=('any') pkgdesc="A library to handling and rendering XPS documents (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-glib2" @@ -12,7 +12,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-lcms2" "${MINGW_PACKAGE_PREFIX}-libarchive" "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libxslt") + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-libpng") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "make" @@ -23,15 +24,18 @@ license=("LGPL 2.1") url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:3}/${_realname}-${pkgver}.tar.xz 0001-give-cc-to-gir-scanner.all.patch - 0002-missing-include.patch) -sha256sums=('39d104739bf0db43905c315de1d8002460f1a098576f4418f69294013a5820be' + 0002-missing-include.patch + 0003-missing-cflags-libs.patch) +sha256sums=('e257f7d5b3c2893f78039bec5a7b0796bc2e6d18d6af5fb929d783e6043e6927' '93043f118701f0b668ca567875c3f6d4f3f1036680e76bc6f160b6263dd2d6c5' - '85e7ce99a0286510f44dad9468faf991b4852f0e6e19c70842a4b38fc6f71919') + '85e7ce99a0286510f44dad9468faf991b4852f0e6e19c70842a4b38fc6f71919' + 'ce92eb203e18053eb33c5572a89d194ea078e1092ed460602665b1e56615ef60') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.all.patch patch -p1 -i ${srcdir}/0002-missing-include.patch + patch -p1 -i ${srcdir}/0003-missing-cflags-libs.patch autoreconf -fi } @@ -41,6 +45,9 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ @@ -54,4 +61,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR=${pkgdir} install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 0f709f4ebd9180257d2b8e7342b9f1862777c2e1 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 13 Aug 2015 18:53:02 +0100 Subject: [PATCH 1456/2060] zlib: Fix 64bit file IO --- mingw-w64-zlib/013-fix-largefile-support.patch | 2 +- mingw-w64-zlib/PKGBUILD | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-zlib/013-fix-largefile-support.patch b/mingw-w64-zlib/013-fix-largefile-support.patch index 5040698248..492af539d0 100644 --- a/mingw-w64-zlib/013-fix-largefile-support.patch +++ b/mingw-w64-zlib/013-fix-largefile-support.patch @@ -6,7 +6,7 @@ diff -Naur zlib-1.2.8-pure/zconf.h.in zlib-1.2.8/zconf.h.in #endif -#if !defined(_WIN32) && defined(Z_LARGE64) -+#if defined(Z_LARGE64) ++#if (defined(_WIN32) && defined(__GNUC__) && defined(_LARGEFILE64_SOURCE)) || defined(Z_LARGE64) # define z_off64_t off64_t #else # if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) diff --git a/mingw-w64-zlib/PKGBUILD b/mingw-w64-zlib/PKGBUILD index ec9c705dae..3e4f5bdfba 100644 --- a/mingw-w64-zlib/PKGBUILD +++ b/mingw-w64-zlib/PKGBUILD @@ -1,11 +1,12 @@ # Maintainer: Alexey Pavlov # Contributor: Martell Malone # Contributor: Renato Silva +# Contributor: Ray Donnelly _realname=zlib pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.2.8 -pkgrel=8 +pkgrel=9 pkgdesc="Compression library implementing the deflate compression method found in gzip and PKZIP (mingw-w64)" arch=('any') license=(ZLIB) @@ -34,7 +35,7 @@ md5sums=('44d667c142d7cda120332623eab69f40' '97b34cd7acb242436d567d1ba109686d' '68587b18a860e32753554a89450698b9' '10dcd6aeb87d3e4da236f217de953d52' - 'bc039de4876256ff2e9e4162d6b42b09') + '717b2c8b8e4e7bc4d9356e25b66161d6') prepare() { # Replace minizip with external From 76790601815190cdb81c431ba6033bc575094da9 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 14 Aug 2015 10:17:30 +0200 Subject: [PATCH 1457/2060] librsvg: updated to 2.40.10. --- mingw-w64-librsvg/PKGBUILD | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mingw-w64-librsvg/PKGBUILD b/mingw-w64-librsvg/PKGBUILD index 54a03ef8f0..b448d7569a 100644 --- a/mingw-w64-librsvg/PKGBUILD +++ b/mingw-w64-librsvg/PKGBUILD @@ -2,8 +2,8 @@ _realname=librsvg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.40.9 -pkgrel=2 +pkgver=2.40.10 +pkgrel=1 pkgdesc="A SVG viewing library (mingw-w64)" arch=('any') url="https://live.gnome.org/LibRsvg" @@ -22,7 +22,7 @@ options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/librsvg/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" "0001-give-cc-to-gir-scanner.mingw.patch" "0005-hack-unixy-paths.patch") -sha256sums=('13964c5d35357552b47d365c34215eee0a63bf0e6059b689f048648c6bf5f43a' +sha256sums=('965c807438ce90b204e930ff80c92eba1606a2f6fd5ccfd09335c99896dd3479' '854f36c9bc1ad0f3a85ca2ec4e8b5c7d75ba035c45ad4915601210acf0321776' 'b23b094c0cb65fcbbbb952350448de6f3430b30f273e05acdbf7a56d634212dc') @@ -40,6 +40,10 @@ build() { cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" #mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + mkdir -p doc/html + cp -rf ../${_realname}-${pkgver}/doc/html/* doc/html + CXXFLAGS+=" -D_POSIX_SOURCE" CFLAGS+=" -D_POSIX_SOURCE" ./configure \ From 7d12f1522b7842797060af73fd87679e83395e34 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 14 Aug 2015 18:27:34 +0300 Subject: [PATCH 1458/2060] pkg-config: Place into toolchain group --- mingw-w64-pkg-config/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-pkg-config/PKGBUILD b/mingw-w64-pkg-config/PKGBUILD index b87a32c0c6..e6d8938208 100644 --- a/mingw-w64-pkg-config/PKGBUILD +++ b/mingw-w64-pkg-config/PKGBUILD @@ -3,7 +3,7 @@ _realname=pkg-config pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.28 -pkgrel=4 +pkgrel=5 pkgdesc="A system for managing library compile/link flags (mingw-w64)" arch=('any') url="http://pkgconfig.freedesktop.org/wiki/" @@ -11,6 +11,7 @@ license=('GPL') depends=("${MINGW_PACKAGE_PREFIX}-libwinpthread") conflicts=("${MINGW_PACKAGE_PREFIX}-pkgconf") replaces=("${MINGW_PACKAGE_PREFIX}-pkgconf") +groups=("${MINGW_PACKAGE_PREFIX}-toolchain") source=(http://pkgconfig.freedesktop.org/releases/${_realname}-${pkgver}.tar.gz 0002-check-for-host.mingw.patch 0003-flush.mingw.patch From 5dd30314117d277f0f4d9ff439e6143b29a848db Mon Sep 17 00:00:00 2001 From: Norbert Pfeiler Date: Fri, 14 Aug 2015 17:34:20 +0200 Subject: [PATCH 1459/2060] cmake: update to 3.3.1 --- mingw-w64-cmake/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index dc0ff730c1..aea55cc838 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -2,7 +2,7 @@ _realname=cmake pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.3.0 +pkgver=3.3.1 pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)." arch=('any') @@ -24,7 +24,7 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "dont-install-bundle.patch" "qt5-static-plugin-support.patch" "pkg-config-without-prefix.patch") -md5sums=('b1d4823e3f74c961486d9f253da9825d' +md5sums=('52638576f4e1e621fed6c3410d3a1b12' '567da5e1794863b4df8affdc7e876a7e' 'fb33ace70ba863159b2c7964a9661e1e' '6461b89ff7d1ca0c4022801dff8475a7' From 174bb16f4a767ce697d5526772327cd03af14491 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 14 Aug 2015 22:22:21 +0300 Subject: [PATCH 1460/2060] pkg-config: Add "pkgbase" fieild to generate one source archive for both arches --- mingw-w64-pkg-config/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-pkg-config/PKGBUILD b/mingw-w64-pkg-config/PKGBUILD index e6d8938208..d583dd3033 100644 --- a/mingw-w64-pkg-config/PKGBUILD +++ b/mingw-w64-pkg-config/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=pkg-config +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.28 pkgrel=5 From c815ca5bc219d96468f067aabcb9b9df1adb0caa Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 16 Aug 2015 01:45:38 +0100 Subject: [PATCH 1461/2060] python2 + python3: Install gdb printers .. to ${MINGW_PREFIX}/share/gdb/python{2,3}/python-gdb.py Usage: python sys.path.append('C:/msys64/mingw64/share/gdb/python3') import python-gdb reload(python-gdb) end --- mingw-w64-python2/PKGBUILD | 11 ++++++++++- mingw-w64-python3/PKGBUILD | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index 4e8e8c43cc..c107c12371 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -5,7 +5,7 @@ _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7.10 -pkgrel=4 +pkgrel=5 _pybasever=${pkgver%.*} pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') @@ -292,6 +292,15 @@ package() { mv "${pkgdir}${MINGW_PREFIX}"/bin/smtpd.py "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/ + # gdb pretty printers for debugging Python itself; to use: + # python + # sys.path.append('C:/msys64/mingw64/share/gdb/python2') + # import python-gdb + # reload(python-gdb) + # end + [[ -d "${pkgdir}${MINGW_PREFIX}"/share/gdb/python2/ ]] || mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/gdb/python2/ + cp -f python.exe-gdb.py "${pkgdir}${MINGW_PREFIX}"/share/gdb/python2/python-gdb.py + # Copy python import library to $prefix/lib because some programs can't find it in other locations cp -f "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config/libpython${_pybasever}.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/libpython${_pybasever}.dll.a diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index b231f83b05..e296d373f4 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -17,7 +17,7 @@ _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.4 pkgver=${_pybasever}.3 -pkgrel=6 +pkgrel=7 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -311,6 +311,15 @@ package() { VERABI=${_pybasever}dm fi + # gdb pretty printers for debugging Python itself; to use: + # python + # sys.path.append('C:/msys64/mingw64/share/gdb/python3') + # import python-gdb + # reload(python-gdb) + # end + [[ -d "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/ ]] || mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/ + cp -f python.exe-gdb.py "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/python-gdb.py + rm "${pkgdir}${MINGW_PREFIX}"/bin/2to3 cp -f "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config-${VERABI}/libpython${VERABI}.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/libpython${VERABI}.dll.a From ee56e418bd865979c4f8f79d777bc7f72c13afaa Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 17 Aug 2015 12:01:27 +0300 Subject: [PATCH 1462/2060] breakpad-svn: Fix dependencies. --- mingw-w64-breakpad-svn/PKGBUILD | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mingw-w64-breakpad-svn/PKGBUILD b/mingw-w64-breakpad-svn/PKGBUILD index da5fdab4af..1ae5ff717b 100644 --- a/mingw-w64-breakpad-svn/PKGBUILD +++ b/mingw-w64-breakpad-svn/PKGBUILD @@ -3,6 +3,7 @@ # Contributor: Alexey Pavlov _realname=breakpad +pkgbase=mingw-w64-${_realname}-svn pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-svn) provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) conflicts=(${MINGW_PACKAGE_PREFIX}-${_realname}) @@ -12,6 +13,7 @@ url='https://code.google.com/p/google-breakpad' pkgdesc='An open-source multi-platform crash reporting system (mingw-w64)' license=('BSD') arch=('any') +depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs) makedepends=(${MINGW_PACKAGE_PREFIX}-curl rsync subversion git gyp) source=(${_realname}.svn::"svn+http://google-breakpad.googlecode.com/svn/trunk#revision=1471" 0003-Build-minidump_upload-sym_upload-for-all-targets.patch From 5942f8878a0aca3d2b94604ecb101a6d9f59b84f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 17 Aug 2015 12:02:11 +0300 Subject: [PATCH 1463/2060] Update PKGBUILD's --- mingw-w64-cmake/PKGBUILD | 1 + mingw-w64-fontconfig/PKGBUILD | 1 + mingw-w64-libgsf/PKGBUILD | 1 + mingw-w64-libgxps/PKGBUILD | 1 + mingw-w64-libidn/PKGBUILD | 1 + mingw-w64-librsvg/PKGBUILD | 1 + mingw-w64-rust/PKGBUILD | 1 + mingw-w64-zlib/PKGBUILD | 1 + 8 files changed, 8 insertions(+) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index aea55cc838..adc90e01bc 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=cmake +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.3.1 pkgrel=1 diff --git a/mingw-w64-fontconfig/PKGBUILD b/mingw-w64-fontconfig/PKGBUILD index d864c63e0f..c64d75e0bb 100644 --- a/mingw-w64-fontconfig/PKGBUILD +++ b/mingw-w64-fontconfig/PKGBUILD @@ -2,6 +2,7 @@ # Contributor: Renato Silva _realname=fontconfig +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.11.94 pkgrel=4 diff --git a/mingw-w64-libgsf/PKGBUILD b/mingw-w64-libgsf/PKGBUILD index cdea9036dc..b1f83f2a60 100644 --- a/mingw-w64-libgsf/PKGBUILD +++ b/mingw-w64-libgsf/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Andrea Zagli _realname=libgsf +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.14.34 pkgrel=1 diff --git a/mingw-w64-libgxps/PKGBUILD b/mingw-w64-libgxps/PKGBUILD index f8ac920f4d..97b03fbbb1 100644 --- a/mingw-w64-libgxps/PKGBUILD +++ b/mingw-w64-libgxps/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Andrea Zagli _realname=libgxps +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.2.3 pkgrel=1 diff --git a/mingw-w64-libidn/PKGBUILD b/mingw-w64-libidn/PKGBUILD index 995b2a3639..0194ef28ea 100644 --- a/mingw-w64-libidn/PKGBUILD +++ b/mingw-w64-libidn/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=libidn +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.32 pkgrel=2 diff --git a/mingw-w64-librsvg/PKGBUILD b/mingw-w64-librsvg/PKGBUILD index b448d7569a..45ce762d1b 100644 --- a/mingw-w64-librsvg/PKGBUILD +++ b/mingw-w64-librsvg/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=librsvg +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.40.10 pkgrel=1 diff --git a/mingw-w64-rust/PKGBUILD b/mingw-w64-rust/PKGBUILD index a6cb0d2669..70f868ea5b 100644 --- a/mingw-w64-rust/PKGBUILD +++ b/mingw-w64-rust/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=rust +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2.0 pkgrel=1 diff --git a/mingw-w64-zlib/PKGBUILD b/mingw-w64-zlib/PKGBUILD index 3e4f5bdfba..5cf2ce3a85 100644 --- a/mingw-w64-zlib/PKGBUILD +++ b/mingw-w64-zlib/PKGBUILD @@ -4,6 +4,7 @@ # Contributor: Ray Donnelly _realname=zlib +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.2.8 pkgrel=9 From 9d901fa2389c48292cb59a509028f771a1646cfe Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 18 Aug 2015 09:56:14 +0300 Subject: [PATCH 1464/2060] gnutls: Update to 3.4.4 --- mingw-w64-gnutls/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index db7c4e112b..82d43fe46b 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=gnutls +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.4.3 +pkgver=3.4.4 pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') @@ -23,7 +24,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") # Need remove "autogen" package before building. source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*}/${_realname}-${pkgver}.tar.xz{,.sig} 0001-add-missing-define.patch) -md5sums=('8a119d7830b81a44faa721a6fde2a295' +md5sums=('1a0367a01dacaf0e91464e6fa54891fa' 'SKIP' '807a79513358a9f4123f62111f1eed59') validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F') From 758c1ceb887edd61ba0793cd511e9ab93c511cba Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 17 Aug 2015 23:12:18 +0100 Subject: [PATCH 1465/2060] mingw-w64-gcc-git: Fix clone_function_name stdcall suffix handling --- mingw-w64-gcc-git/0001-Relocate-libintl.patch | 4 +- ...e-_ZTC-in-libstdc-exports-deprecated.patch | 8 +- ..._weakref__-on-__MINGW32__-deprecated.patch | 4 +- ...osix-dir-exists-semantics-more-close.patch | 6 +- ...not-in-progpath-and-leave-case-as-is.patch | 4 +- ...on-t-ignore-native-system-header-dir.patch | 8 +- ...ew-feature-to-allow-overriding-lmsvc.patch | 44 +++++++ ..._malloc_cleared-instead-of-gomp_mall.patch | 10 +- .../0009-Build-EXTRA_GNATTOOLS-for-Ada.patch | 4 +- .../0010-Prettify-linking-no-undefined.patch | 12 +- ...in-header-cplusplus-compatible-depre.patch | 4 +- ...too-late-resolved-__EH_FRAME_BEGIN__.patch | 4 +- .../0013-Fix-using-large-PCH.patch | 12 +- .../0014-Enable-shared-gnat-implib.patch | 8 +- .../0015-MinGW-w64-Enable-libitm.patch | 14 +-- .../0016-MinGW-w64-Enable-libsanitizer.patch | 4 +- .../0017-MinGW-w64-Enable-shared-gnat.patch | 4 +- .../0018-MinGW-w64-No-fpic-in-sanitizer.patch | 28 ++--- .../0019-MinGW-w64-Port-sanitizer.patch | 10 +- ...ing-to-libgcc_s_dw2-1.dll-deprecated.patch | 6 +- .../0021-MinGW-w64-Disable-libsanitizer.patch | 4 +- ...ion_name_1-Retain-any-stdcall-suffix.patch | 112 ++++++++++++++++++ 22 files changed, 235 insertions(+), 79 deletions(-) create mode 100644 mingw-w64-gcc-git/0007-master-Windows-New-feature-to-allow-overriding-lmsvc.patch create mode 100644 mingw-w64-gcc-git/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch diff --git a/mingw-w64-gcc-git/0001-Relocate-libintl.patch b/mingw-w64-gcc-git/0001-Relocate-libintl.patch index 484a061674..5031b955fd 100644 --- a/mingw-w64-gcc-git/0001-Relocate-libintl.patch +++ b/mingw-w64-gcc-git/0001-Relocate-libintl.patch @@ -1,7 +1,7 @@ -From 8d421ffee9b324f35390a077c1278a1e31585db9 Mon Sep 17 00:00:00 2001 +From ff4ae68b006fbbbf78360dee0f115a2715bf70d9 Mon Sep 17 00:00:00 2001 From: Erwin Waterlander Date: Wed, 5 Aug 2015 23:36:03 +0100 -Subject: [PATCH 01/21] Relocate libintl +Subject: [PATCH 01/22] Relocate libintl The relocatex-libintl patch adds builtin relocation for executables to the libintl dll. With this patch the programs are automatically relocatable. There diff --git a/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch b/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch index 2dd4f68004..fbd3a752bf 100644 --- a/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch +++ b/mingw-w64-gcc-git/0002-PR54314-Include-_ZTC-in-libstdc-exports-deprecated.patch @@ -1,7 +1,7 @@ -From daaed8dcdc5499a4d7eb6d73d9829a578ad32d51 Mon Sep 17 00:00:00 2001 +From 9fe0b8519f2845d47377d393cadbde0ccfa17bb0 Mon Sep 17 00:00:00 2001 From: gee Date: Wed, 5 Aug 2015 23:36:04 +0100 -Subject: [PATCH 02/21] PR54314: Include _ZTC* in libstdc++ exports +Subject: [PATCH 02/22] PR54314: Include _ZTC* in libstdc++ exports [deprecated] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54314 @@ -37,10 +37,10 @@ Add thunk _ZTv0_n12_NS* like in gnu.ver 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver -index 120b133..f029a05 100644 +index d42cd37..7502fee 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver -@@ -2056,7 +2056,7 @@ CXXABI_1.3.6 { +@@ -2064,7 +2064,7 @@ CXXABI_1.3.6 { __cxa_allocate_dependent_exception; __cxa_free_dependent_exception; __cxa_deleted_virtual; diff --git a/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch b/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch index 95fc9999fa..59a6244c5d 100644 --- a/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch +++ b/mingw-w64-gcc-git/0003-PR52300-Avoid-__weakref__-on-__MINGW32__-deprecated.patch @@ -1,7 +1,7 @@ -From ee889411a031eded929e5b03e08851a5c748c9ad Mon Sep 17 00:00:00 2001 +From 103329511f61dc7675a69ae0e4c84dd1b32b94f1 Mon Sep 17 00:00:00 2001 From: niXman Date: Wed, 5 Aug 2015 23:36:06 +0100 -Subject: [PATCH 03/21] PR52300: Avoid __weakref__ on __MINGW32__ [deprecated] +Subject: [PATCH 03/22] PR52300: Avoid __weakref__ on __MINGW32__ [deprecated] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52300 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52300#c0 diff --git a/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch b/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch index b7f0474c70..6492f308cf 100644 --- a/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch +++ b/mingw-w64-gcc-git/0004-Windows-Follow-Posix-dir-exists-semantics-more-close.patch @@ -1,7 +1,7 @@ -From 0358994260d801cfbdd6125c5bf335188097d6ac Mon Sep 17 00:00:00 2001 +From e79a89ddcccd411c0d61adc3c21710f63b79730d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:07 +0100 -Subject: [PATCH 04/21] Windows: Follow Posix dir-exists semantics more closely +Subject: [PATCH 04/22] Windows: Follow Posix dir-exists semantics more closely Make Windows behave the same as Posix in the consideration of whether folder "/doesnt-exist/.." is a valid @@ -14,7 +14,7 @@ compiling GNU/Linux glibc on Windows. 1 file changed, 87 insertions(+) diff --git a/libcpp/files.c b/libcpp/files.c -index 2f49122..644701d 100644 +index 8c388d8..e45665c 100644 --- a/libcpp/files.c +++ b/libcpp/files.c @@ -30,6 +30,13 @@ along with this program; see the file COPYING3. If not see diff --git a/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch b/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch index 385761c7ae..146aec9d21 100644 --- a/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch +++ b/mingw-w64-gcc-git/0005-Windows-Use-not-in-progpath-and-leave-case-as-is.patch @@ -1,7 +1,7 @@ -From 8345a1a9ac6fa6587cfc6ec27667aa7a8ed77151 Mon Sep 17 00:00:00 2001 +From 1140ae4d65b16735ce32ebd99ab29ad96997165b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:09 +0100 -Subject: [PATCH 05/21] Windows: Use '/' not '\' in progpath and leave case +Subject: [PATCH 05/22] Windows: Use '/' not '\' in progpath and leave case as-is Windows can handle both '/' and '\' dirseps. GCC will diff --git a/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch b/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch index c8a83601a0..254436a87d 100644 --- a/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch +++ b/mingw-w64-gcc-git/0006-Windows-Don-t-ignore-native-system-header-dir.patch @@ -1,17 +1,17 @@ -From b61f5e29306511be2f6d243b1e887a903c10b077 Mon Sep 17 00:00:00 2001 +From b35b11fad88c2f0de40663813e2c19154faccae2 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:11 +0100 -Subject: [PATCH 06/21] Windows: Don't ignore native system header dir +Subject: [PATCH 06/22] Windows: Don't ignore native system header dir --- gcc/config.gcc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/config.gcc b/gcc/config.gcc -index 3ede69b..f25325f 100644 +index 24f6d35..8c79739 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc -@@ -1693,7 +1693,10 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) +@@ -1722,7 +1722,10 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) tmake_file="${tmake_file} i386/t-mingw-w32" ;; esac diff --git a/mingw-w64-gcc-git/0007-master-Windows-New-feature-to-allow-overriding-lmsvc.patch b/mingw-w64-gcc-git/0007-master-Windows-New-feature-to-allow-overriding-lmsvc.patch new file mode 100644 index 0000000000..ee54722cf1 --- /dev/null +++ b/mingw-w64-gcc-git/0007-master-Windows-New-feature-to-allow-overriding-lmsvc.patch @@ -0,0 +1,44 @@ +From cba090e187e04894e13c4ad178498f710e814d88 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 5 Aug 2015 23:36:13 +0100 +Subject: [PATCH 07/22] master Windows: New feature to allow overriding + -lmsvcrt + +Added in support of the MinGW-w64 WIP feature "agile mscvrt dll" where +a process' loaded msvc runtime is used by a newly loaded DLL rather than +always using msvcrt.dll +--- + gcc/config/i386/cygming.opt | 3 +++ + gcc/config/i386/mingw32.h | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gcc/config/i386/cygming.opt b/gcc/config/i386/cygming.opt +index c7e398f..dfddaf8 100644 +--- a/gcc/config/i386/cygming.opt ++++ b/gcc/config/i386/cygming.opt +@@ -22,6 +22,9 @@ mconsole + Target RejectNegative + Create console application + ++mcrtdll= ++Target RejectNegative Joined ++ + mdll + Target RejectNegative + Generate code for a DLL +diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h +index eef90fb..47e12e7 100644 +--- a/gcc/config/i386/mingw32.h ++++ b/gcc/config/i386/mingw32.h +@@ -140,7 +140,7 @@ along with GCC; see the file COPYING3. If not see + #define REAL_LIBGCC_SPEC \ + "%{mthreads:-lmingwthrd} -lmingw32 \ + " SHARED_LIBGCC_SPEC " \ +- -lmoldname -lmingwex -lmsvcrt" ++ -lmoldname -lmingwex %{!mcrtdll=*:-lmsvcrt} %{mcrtdll=*:-l%*}" + + #undef STARTFILE_SPEC + #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ +-- +2.5.0 + diff --git a/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch b/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch index 17ae4127b2..f93e74b53a 100644 --- a/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch +++ b/mingw-w64-gcc-git/0008-libgomp-Use-gomp_malloc_cleared-instead-of-gomp_mall.patch @@ -1,7 +1,7 @@ -From 98337c715bbc77e19e7514c92f4f0c9f0242f83d Mon Sep 17 00:00:00 2001 +From 17b20f9905260f575071bce6d192ac0319e1b294 Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Wed, 5 Aug 2015 23:36:16 +0100 -Subject: [PATCH 08/21] libgomp: Use gomp_malloc_cleared instead of gomp_malloc +Subject: [PATCH 08/22] libgomp: Use gomp_malloc_cleared instead of gomp_malloc [deprecated] This was added when trying to track down a problem in Blender, @@ -14,10 +14,10 @@ is probably not needed. 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/libgomp/team.c b/libgomp/team.c -index b98b233..c1f6deb 100644 +index 7671b05..f9024c0 100644 --- a/libgomp/team.c +++ b/libgomp/team.c -@@ -197,7 +197,7 @@ free_team (struct gomp_team *team) +@@ -224,7 +224,7 @@ free_team (struct gomp_team *team) static struct gomp_thread_pool *gomp_new_thread_pool (void) { struct gomp_thread_pool *pool @@ -26,7 +26,7 @@ index b98b233..c1f6deb 100644 pool->threads = NULL; pool->threads_size = 0; pool->threads_used = 0; -@@ -940,7 +940,7 @@ struct gomp_task_icv * +@@ -964,7 +964,7 @@ struct gomp_task_icv * gomp_new_icv (void) { struct gomp_thread *thr = gomp_thread (); diff --git a/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch b/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch index e790613c27..b13fd88cb2 100644 --- a/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch +++ b/mingw-w64-gcc-git/0009-Build-EXTRA_GNATTOOLS-for-Ada.patch @@ -1,7 +1,7 @@ -From 4f0883f86431cf2b32fad338a6c797fee3e4a468 Mon Sep 17 00:00:00 2001 +From 266f288900a364912d011fe5f4d29c5cf04c8a85 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 5 Aug 2015 23:36:17 +0100 -Subject: [PATCH 09/21] Build EXTRA_GNATTOOLS for Ada +Subject: [PATCH 09/22] Build EXTRA_GNATTOOLS for Ada --- gnattools/Makefile.in | 6 +++--- diff --git a/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch b/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch index e94dbbfcfa..e44a820536 100644 --- a/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch +++ b/mingw-w64-gcc-git/0010-Prettify-linking-no-undefined.patch @@ -1,7 +1,7 @@ -From 777747a9eb169ae69fb7216b8d582e76e197decb Mon Sep 17 00:00:00 2001 +From 4b42253739b297be7568a69674867d04a16668e7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 5 Aug 2015 23:36:19 +0100 -Subject: [PATCH 10/21] Prettify linking -no-undefined +Subject: [PATCH 10/22] Prettify linking -no-undefined It might be better to put this change in a conditional block for Windows only? @@ -11,10 +11,10 @@ conditional block for Windows only? 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am -index 31eb986..f8ef020 100644 +index 0e816ac..0477605 100644 --- a/libgfortran/Makefile.am +++ b/libgfortran/Makefile.am -@@ -50,7 +50,7 @@ libgfortranbegin_la_LINK = $(LINK) $(libgfortranbegin_la_LDFLAGS) +@@ -44,7 +44,7 @@ libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP) cafexeclib_LTLIBRARIES = libcaf_single.la cafexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR) libcaf_single_la_SOURCES = caf/single.c @@ -24,10 +24,10 @@ index 31eb986..f8ef020 100644 libcaf_single_la_LINK = $(LINK) $(libcaf_single_la_LDFLAGS) diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in -index 0f60e6e..8473026 100644 +index ab71b38..77374d4 100644 --- a/libgfortran/Makefile.in +++ b/libgfortran/Makefile.in -@@ -615,7 +615,7 @@ libgfortranbegin_la_LINK = $(LINK) $(libgfortranbegin_la_LDFLAGS) +@@ -605,7 +605,7 @@ libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP) cafexeclib_LTLIBRARIES = libcaf_single.la cafexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR) libcaf_single_la_SOURCES = caf/single.c diff --git a/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch b/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch index 456eb74b6c..06d8b1cffa 100644 --- a/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch +++ b/mingw-w64-gcc-git/0011-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch @@ -1,7 +1,7 @@ -From 52b810bd7ee566d3f1950c32ad32efe8090652c3 Mon Sep 17 00:00:00 2001 +From 3bae5991f5eee5a4c8f2ebf466dbffe95ce466b7 Mon Sep 17 00:00:00 2001 From: Erik van Pienbroek Date: Wed, 5 Aug 2015 23:36:21 +0100 -Subject: [PATCH 11/21] gcc: make xmmintrin header cplusplus compatible +Subject: [PATCH 11/22] gcc: make xmmintrin header cplusplus compatible [deprecated] Deprecated as-per: diff --git a/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch b/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch index 9af33b3c5c..99d0c23db1 100644 --- a/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch +++ b/mingw-w64-gcc-git/0012-Work-around-un-too-late-resolved-__EH_FRAME_BEGIN__.patch @@ -1,7 +1,7 @@ -From 2e77b95a04243b410131c31498fe98f4ef49dbf6 Mon Sep 17 00:00:00 2001 +From b70fc022cae3efec16efb2b46a0440d3e6dd3bdc Mon Sep 17 00:00:00 2001 From: Matt Breedlove Date: Wed, 5 Aug 2015 23:36:22 +0100 -Subject: [PATCH 12/21] Work around {un-,too-late-}resolved __EH_FRAME_BEGIN__ +Subject: [PATCH 12/22] Work around {un-,too-late-}resolved __EH_FRAME_BEGIN__ Here's the dwarf2 patch I'm using. With the change to checking __LIBGCC_EH_FRAME_SECTION_NAME__, an undefined reference to diff --git a/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch b/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch index f2e8ce7c7a..e07fc780d7 100644 --- a/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch +++ b/mingw-w64-gcc-git/0013-Fix-using-large-PCH.patch @@ -1,7 +1,7 @@ -From d33c5504ef629af9b13cee500773d8101a697d15 Mon Sep 17 00:00:00 2001 +From f62203be0f878559bf0ce423d38ed174f23779fa Mon Sep 17 00:00:00 2001 From: Martin Richter Date: Wed, 5 Aug 2015 23:36:25 +0100 -Subject: [PATCH 13/21] Fix using large PCH +Subject: [PATCH 13/22] Fix using large PCH The following patch fixes segfault when gt_pch_use_address fails (returns -1). fatal_error now correctly shows an error @@ -64,10 +64,10 @@ index aa17378..631d9c4 100644 diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c -index 03fbe7d..3a5df8a 100644 +index 5096837..f741f2c 100644 --- a/gcc/ggc-common.c +++ b/gcc/ggc-common.c -@@ -603,7 +603,9 @@ gt_pch_restore (FILE *f) +@@ -599,7 +599,9 @@ gt_pch_restore (FILE *f) size_t i; struct mmap_info mmi; int result; @@ -78,7 +78,7 @@ index 03fbe7d..3a5df8a 100644 /* Delete any deletable objects. This makes ggc_pch_read much faster, as it can be sure that no GCable objects remain other than the ones just read in. */ -@@ -611,20 +613,24 @@ gt_pch_restore (FILE *f) +@@ -607,20 +609,24 @@ gt_pch_restore (FILE *f) for (rti = *rt; rti->base != NULL; rti++) memset (rti->base, 0, rti->stride); @@ -111,7 +111,7 @@ index 03fbe7d..3a5df8a 100644 if (fread (&mmi, sizeof (mmi), 1, f) != 1) fatal_error (input_location, "can%'t read PCH file: %m"); -@@ -635,12 +641,35 @@ gt_pch_restore (FILE *f) +@@ -631,12 +637,35 @@ gt_pch_restore (FILE *f) if (result == 0) { if (fseek (f, mmi.offset, SEEK_SET) != 0 diff --git a/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch b/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch index 66ecf8e493..3f8a163e19 100644 --- a/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch +++ b/mingw-w64-gcc-git/0014-Enable-shared-gnat-implib.patch @@ -1,7 +1,7 @@ -From 27578e70bac3247cd8f798614383e31311312b0c Mon Sep 17 00:00:00 2001 +From 53c92e4aa8cca14ecf849c6a69cf12fdabd716c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Pfeifer?= Date: Wed, 5 Aug 2015 23:36:27 +0100 -Subject: [PATCH 14/21] Enable shared gnat implib +Subject: [PATCH 14/22] Enable shared gnat implib Provide GNAT runtime import libraries to allow to link against shared runtime @@ -13,10 +13,10 @@ https://github.com/Alexpux/MINGW-packages/commit/51b4eb3b702fdb38df0460180c2f820 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in -index 5559269..c0a1d1c 100644 +index 1d03f86..dd4453c 100644 --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in -@@ -2851,13 +2851,16 @@ gnatlib-shared-win32: +@@ -2886,13 +2886,16 @@ gnatlib-shared-win32: $(PICFLAG_FOR_TARGET) \ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ diff --git a/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch b/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch index bb03affae3..3a18d641b3 100644 --- a/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch +++ b/mingw-w64-gcc-git/0015-MinGW-w64-Enable-libitm.patch @@ -1,7 +1,7 @@ -From f1cb7b014b0d6f6bf8348fc25474fe201848399d Mon Sep 17 00:00:00 2001 +From 5e266f42509c70dc8a04a3bde4200af97013a1d0 Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:29 +0100 -Subject: [PATCH 15/21] MinGW-w64: Enable libitm +Subject: [PATCH 15/22] MinGW-w64: Enable libitm --- libitm/Makefile.am | 2 +- @@ -25,10 +25,10 @@ index 1dce82d..0ea39f2 100644 libitm_la_SOURCES = \ aatree.cc alloc.cc alloc_c.cc alloc_cpp.cc barrier.cc beginend.cc \ diff --git a/libitm/Makefile.in b/libitm/Makefile.in -index 6c4d253..5898bd8 100644 +index 138eeb1..a25c6d2 100644 --- a/libitm/Makefile.in +++ b/libitm/Makefile.in -@@ -279,6 +279,7 @@ libtool_VERSION = @libtool_VERSION@ +@@ -307,6 +307,7 @@ libtool_VERSION = @libtool_VERSION@ link_itm = @link_itm@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -36,7 +36,7 @@ index 6c4d253..5898bd8 100644 mandir = @mandir@ mkdir_p = @mkdir_p@ multi_basedir = @multi_basedir@ -@@ -329,7 +330,7 @@ libitm_version_info = -version-info $(libtool_VERSION) +@@ -357,7 +358,7 @@ libitm_version_info = -version-info $(libtool_VERSION) # want or need libstdc++. libitm_la_DEPENDENCIES = $(libitm_version_dep) libitm_la_LINK = $(LINK) $(libitm_la_LDFLAGS) @@ -46,7 +46,7 @@ index 6c4d253..5898bd8 100644 barrier.cc beginend.cc clone.cc eh_cpp.cc local.cc query.cc \ retry.cc rwlock.cc useraction.cc util.cc sjlj.S tls.cc \ diff --git a/libitm/configure b/libitm/configure -index e924228..a23c011 100644 +index 55332bb..8f19e0a 100644 --- a/libitm/configure +++ b/libitm/configure @@ -630,6 +630,7 @@ MAINTAINER_MODE_FALSE @@ -57,7 +57,7 @@ index e924228..a23c011 100644 CXXCPP CPP OTOOL64 -@@ -15144,6 +15145,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +@@ -15149,6 +15150,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # Only expand once: diff --git a/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch b/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch index 792f352efc..33b7713b2d 100644 --- a/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch +++ b/mingw-w64-gcc-git/0016-MinGW-w64-Enable-libsanitizer.patch @@ -1,7 +1,7 @@ -From 36ebc51b5ce673c68e2144ed310562a2f3278702 Mon Sep 17 00:00:00 2001 +From 52acb6abae02ed86e8181e62bd8648087b4a18a5 Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:31 +0100 -Subject: [PATCH 16/21] MinGW-w64: Enable libsanitizer +Subject: [PATCH 16/22] MinGW-w64: Enable libsanitizer --- libsanitizer/configure.tgt | 2 ++ diff --git a/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch b/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch index d48e621b64..e55cf7949b 100644 --- a/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch +++ b/mingw-w64-gcc-git/0017-MinGW-w64-Enable-shared-gnat.patch @@ -1,7 +1,7 @@ -From 2bb8c06f10a92bc95efa2734f49462f1cbee3de5 Mon Sep 17 00:00:00 2001 +From 083731577ddd8e4544fb0cc091b472ac73607a02 Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:33 +0100 -Subject: [PATCH 17/21] MinGW-w64: Enable shared gnat +Subject: [PATCH 17/22] MinGW-w64: Enable shared gnat --- libada/configure | 2 +- diff --git a/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch b/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch index 5b8e9d2cc3..fde6e98f81 100644 --- a/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch +++ b/mingw-w64-gcc-git/0018-MinGW-w64-No-fpic-in-sanitizer.patch @@ -1,7 +1,7 @@ -From 4e4bf988c080e08188431d41c368e7d114f90c37 Mon Sep 17 00:00:00 2001 +From 6e0d53d3f927ae3c30da2d14a45a49a12abfaa51 Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:35 +0100 -Subject: [PATCH 18/21] MinGW-w64: No -fpic in sanitizer +Subject: [PATCH 18/22] MinGW-w64: No -fpic in sanitizer --- libsanitizer/asan/Makefile.am | 2 +- @@ -32,10 +32,10 @@ index 54c74ce..1dc515e 100644 AM_CXXFLAGS += -std=gnu++11 ACLOCAL_AMFLAGS = -I $(top_srcdir) -I $(top_srcdir)/config diff --git a/libsanitizer/asan/Makefile.in b/libsanitizer/asan/Makefile.in -index a56c6b1..2ed29ec 100644 +index edbed4d..690d41a 100644 --- a/libsanitizer/asan/Makefile.in +++ b/libsanitizer/asan/Makefile.in -@@ -269,7 +269,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) +@@ -297,7 +297,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ @@ -58,10 +58,10 @@ index 4fb69a9..6df9645 100644 AM_CXXFLAGS += -std=gnu++11 ACLOCAL_AMFLAGS = -I m4 diff --git a/libsanitizer/interception/Makefile.in b/libsanitizer/interception/Makefile.in -index 5a49650..8ff18f4 100644 +index 3dfa774..422593f 100644 --- a/libsanitizer/interception/Makefile.in +++ b/libsanitizer/interception/Makefile.in -@@ -225,7 +225,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) +@@ -247,7 +247,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ @@ -84,10 +84,10 @@ index 03ec4fe..55a1d33 100644 AM_CXXFLAGS += -std=gnu++11 ACLOCAL_AMFLAGS = -I m4 diff --git a/libsanitizer/lsan/Makefile.in b/libsanitizer/lsan/Makefile.in -index 49fa874..360787b 100644 +index b02c373..bb0475f 100644 --- a/libsanitizer/lsan/Makefile.in +++ b/libsanitizer/lsan/Makefile.in -@@ -260,7 +260,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) +@@ -288,7 +288,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ @@ -110,10 +110,10 @@ index d541717..7b302b3 100644 AM_CXXFLAGS += -std=gnu++11 if LIBBACKTRACE_SUPPORTED diff --git a/libsanitizer/sanitizer_common/Makefile.in b/libsanitizer/sanitizer_common/Makefile.in -index 77ad416..fe46773 100644 +index 6614524..d2fd290 100644 --- a/libsanitizer/sanitizer_common/Makefile.in +++ b/libsanitizer/sanitizer_common/Makefile.in -@@ -253,7 +253,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -isystem $(top_srcdir)/include/system +@@ -275,7 +275,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -isystem $(top_srcdir)/include/system # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ @@ -136,10 +136,10 @@ index abfafb7..5e8a6ba 100644 AM_CXXFLAGS += -std=gnu++11 ACLOCAL_AMFLAGS = -I m4 diff --git a/libsanitizer/tsan/Makefile.in b/libsanitizer/tsan/Makefile.in -index ed594a6..8365961 100644 +index 8b20d28..ec5243d 100644 --- a/libsanitizer/tsan/Makefile.in +++ b/libsanitizer/tsan/Makefile.in -@@ -273,7 +273,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include +@@ -301,7 +301,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ @@ -162,10 +162,10 @@ index 12d1ffa..83b6b5c 100644 AM_CXXFLAGS += -std=gnu++11 ACLOCAL_AMFLAGS = -I m4 diff --git a/libsanitizer/ubsan/Makefile.in b/libsanitizer/ubsan/Makefile.in -index 0973a7a..8f30452 100644 +index 64aad19..f5748b9 100644 --- a/libsanitizer/ubsan/Makefile.in +++ b/libsanitizer/ubsan/Makefile.in -@@ -256,7 +256,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include +@@ -284,7 +284,7 @@ AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/include # May be used by toolexeclibdir. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \ diff --git a/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch b/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch index 846c57e3eb..2e715ac9f3 100644 --- a/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch +++ b/mingw-w64-gcc-git/0019-MinGW-w64-Port-sanitizer.patch @@ -1,7 +1,7 @@ -From acd73154de83946edf76aa8e045cde54abfa60dd Mon Sep 17 00:00:00 2001 +From 433fc9e4c5d5ce2bd6e9c3ec3a9c815b3657b499 Mon Sep 17 00:00:00 2001 From: LRN Date: Wed, 5 Aug 2015 23:36:37 +0100 -Subject: [PATCH 19/21] MinGW-w64: Port sanitizer +Subject: [PATCH 19/22] MinGW-w64: Port sanitizer --- libsanitizer/asan/asan_win.cc | 3 --- @@ -26,7 +26,7 @@ index b002876..7b93331 100644 } diff --git a/libsanitizer/configure b/libsanitizer/configure -index 1efbd53..2c58716 100755 +index 809f0d7..75fbc0e 100755 --- a/libsanitizer/configure +++ b/libsanitizer/configure @@ -628,6 +628,7 @@ TSAN_SUPPORTED_FALSE @@ -37,7 +37,7 @@ index 1efbd53..2c58716 100755 CXXCPP OTOOL64 OTOOL -@@ -15382,6 +15383,31 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +@@ -15387,6 +15388,31 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu @@ -69,7 +69,7 @@ index 1efbd53..2c58716 100755 for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. -@@ -15509,10 +15535,10 @@ done +@@ -15514,10 +15540,10 @@ done # Common libraries that we need to link against for all sanitizer libs. diff --git a/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch b/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch index 28b6022c21..4d02b95138 100644 --- a/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch +++ b/mingw-w64-gcc-git/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch @@ -1,7 +1,7 @@ -From be8fb1f85351f198c063a2b7863c0b428f502962 Mon Sep 17 00:00:00 2001 +From a1bb29d7af308c59b1715406465fee95c0d52012 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 5 Aug 2015 23:36:39 +0100 -Subject: [PATCH 20/21] Force linking to libgcc_s_dw2-1.dll [deprecated] +Subject: [PATCH 20/22] Force linking to libgcc_s_dw2-1.dll [deprecated] .. by adding to specs: *libgcc @@ -53,7 +53,7 @@ index 2186937..7f71ccc 100644 } " #else diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h -index 0950304..ca73137 100644 +index 47e12e7..9afe794 100644 --- a/gcc/config/i386/mingw32.h +++ b/gcc/config/i386/mingw32.h @@ -120,6 +120,10 @@ along with GCC; see the file COPYING3. If not see diff --git a/mingw-w64-gcc-git/0021-MinGW-w64-Disable-libsanitizer.patch b/mingw-w64-gcc-git/0021-MinGW-w64-Disable-libsanitizer.patch index f08aee369d..a5e947ffdb 100644 --- a/mingw-w64-gcc-git/0021-MinGW-w64-Disable-libsanitizer.patch +++ b/mingw-w64-gcc-git/0021-MinGW-w64-Disable-libsanitizer.patch @@ -1,7 +1,7 @@ -From 51e6afe704bdf28680db2a00cb7fa31507988b55 Mon Sep 17 00:00:00 2001 +From d8338b5d84c7de1643d76301c1d73ee52b476ba8 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 8 Aug 2015 16:46:03 +0100 -Subject: [PATCH 21/21] MinGW-w64: Disable libsanitizer +Subject: [PATCH 21/22] MinGW-w64: Disable libsanitizer [20150808] Causes a build failure on gcc-5-branch --- diff --git a/mingw-w64-gcc-git/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch b/mingw-w64-gcc-git/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch new file mode 100644 index 0000000000..efb3fc0340 --- /dev/null +++ b/mingw-w64-gcc-git/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch @@ -0,0 +1,112 @@ +From 38274147bb2a3fa481d0a1853c185c2337550260 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 17 Aug 2015 22:57:46 +0100 +Subject: [PATCH 22/22] clone_function_name_1: Retain any stdcall suffix + +Previously, clone_function_name_1 would add a suffix after +any existing stdcall suffix, for example ipa-split.c would +clone test@4 as test@4.part.0. + +Later, i386_pe_strip_name_encoding_full would come along +and strip off everything from the last @ onwards which had +the effect of generating incorrect section names which +would then fall over with errors such as: + +error: void test() causes a section type conflict with \ + void test@4.part.0() + +The following testcase, reduced from Firefox can be used +to reproduce this. + +test.ii: +class ClassA { +public: + virtual int __attribute__((__stdcall__)) Dispatch() = 0; +}; +class ClassB { +public: + ClassA* __attribute__((__stdcall__)) operator->(); +}; +class ClassC : ClassA { + int *some_int_ptr_variable; + int __attribute__((__stdcall__)) Dispatch() { + return some_int_ptr_variable + ? 42 + : m_ClassInstanceB->Dispatch(); + } + ClassB m_ClassInstanceB; +}; +ClassC ClassInstanceC; + +Compile for i686-w64-mingw32 with: +cc1plus -O -fpartial-inlining -fdevirtualize \ + -fdevirtualize-speculatively test.ii + +Outputs: +test.ii: In member function 'virtual int ClassC::Dispatch()': +test.ii:11:36: error: virtual int ClassC::Dispatch() causes \ + a section type conflict with int ClassC::_ZN6ClassC8DispatchEv@4.part.0() + int __attribute__((CALLTYPE)) Dispatch() { + ^ +test.ii:11:36: note: \ + 'int ClassC::_ZN6ClassC8DispatchEv@4.part.0()' was declared here +--- + gcc/cgraphclones.c | 13 ++++++++++++- + gcc/defaults.h | 2 +- + 2 files changed, 13 insertions(+), 2 deletions(-) + +diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c +index 9e9f1a0..69b8a91 100644 +--- a/gcc/cgraphclones.c ++++ b/gcc/cgraphclones.c +@@ -519,15 +519,24 @@ cgraph_node::create_clone (tree new_decl, gcov_type gcov_count, int freq, + static GTY(()) unsigned int clone_fn_id_num; + + /* Return a new assembler name for a clone with SUFFIX of a decl named +- NAME. */ ++ NAME. Final stdcall @N suffixes are maintained. */ + + tree + clone_function_name_1 (const char *name, const char *suffix) + { + size_t len = strlen (name); + char *tmp_name, *prefix; ++ char *at_suffix = NULL; + + prefix = XALLOCAVEC (char, len + strlen (suffix) + 2); ++ /* name + 1 to skip fastcall which begins with '@' */ ++ at_suffix = strchr (name + 1, '@'); ++ size_t at_suffix_len = 0; ++ if (at_suffix) ++ { ++ at_suffix_len = strlen (at_suffix); ++ len -= at_suffix_len; ++ } + memcpy (prefix, name, len); + strcpy (prefix + len + 1, suffix); + #ifndef NO_DOT_IN_LABEL +@@ -538,6 +547,8 @@ clone_function_name_1 (const char *name, const char *suffix) + prefix[len] = '_'; + #endif + ASM_FORMAT_PRIVATE_NAME (tmp_name, prefix, clone_fn_id_num++); ++ if (at_suffix) ++ strcat (tmp_name, at_suffix); + return get_identifier (tmp_name); + } + +diff --git a/gcc/defaults.h b/gcc/defaults.h +index 9d38ba1..c34478a 100644 +--- a/gcc/defaults.h ++++ b/gcc/defaults.h +@@ -51,7 +51,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + # define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \ + do { const char *const name_ = (NAME); \ + char *const output_ = (OUTPUT) = \ +- (char *) alloca (strlen (name_) + 32); \ ++ (char *) alloca (strlen (name_) + 35); \ + sprintf (output_, ASM_PN_FORMAT, name_, (unsigned long)(LABELNO)); \ + } while (0) + #endif +-- +2.5.0 + From ffc72562441752f3d0a70d8a8ddb72f849db289f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 18 Aug 2015 08:39:03 +0100 Subject: [PATCH 1466/2060] gcc + gcc-git: Backport patch 0022- to gcc --- mingw-w64-gcc-git/PKGBUILD | 47 ++++---- ...ion_name_1-Retain-any-stdcall-suffix.patch | 112 ++++++++++++++++++ mingw-w64-gcc/PKGBUILD | 10 +- 3 files changed, 144 insertions(+), 25 deletions(-) create mode 100644 mingw-w64-gcc/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD index 5ff4fe4848..ebdf52cdf7 100644 --- a/mingw-w64-gcc-git/PKGBUILD +++ b/mingw-w64-gcc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc-git") -pkgver=r140440.03cb8c1 +pkgver=r138285.dd61457 pkgrel=1 pkgdesc="GCC for the MinGW-w64" arch=('any') @@ -62,30 +62,32 @@ source=("git://gcc.gnu.org/git/gcc.git#branch=${_branch}" "0018-MinGW-w64-No-fpic-in-sanitizer.patch" "0019-MinGW-w64-Port-sanitizer.patch" "0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch" - "0021-MinGW-w64-Disable-libsanitizer.patch") + "0021-MinGW-w64-Disable-libsanitizer.patch" + "0022-clone_function_name_1-Retain-any-stdcall-suffix.patch") md5sums=('SKIP' - '14a1136978f1284475fd8d5b5d21e54a' - '972529152d8f1e9a04b7384485b39582' - '00a27512e1e35f7a25ef70878eeacf4b' - 'bf189ec9bceb018ab7d4934723a4f8f6' - '7efc5a9f51f997b8cff40fdfa0b7dc23' - '6b7628d9583c1781b69f406e9c2c8bb9' + 'dd26ec3ea15d31c6f498c1176e3b5f3f' + '96d12a0805156b6a561c7b59d2531236' + 'f99dc355b4163c7a09ab15c3b7f02598' + '2b21960c7d9ea765d64043069a9a3fea' + '3a6ce6d6f427ce18cc55d5812dd51046' + 'f675f6022e60e8e982591439c7de76cb' 'a886e4914107b5019ff5dbcc8456eef2' 'ebb2dac7bae6e8f8076a61a0afed0c9d' - '31940882ee9a9d41636f917aa431f268' - 'b4ad313ad24f2c566a3df6502b35dc20' - '16013736d1a50f4ac5975f92db4aef49' - '4ba9a6ca3aefdcc7a022ce53e9f7e71e' - '24f34964371c9a07dddaa50af736de48' - 'bc17dfc1ecd579e68758708c4e326ce8' - '262a6b962ac7f39f040e0a577bb53f8b' - '64738ba9d548a09f80b1585f3f2c3fc5' - 'd76ff2ab357de8e2fd7df2dc6a75e85f' - 'b5c33e5b839ba7288ccce28f007e5026' - '0ae5152020eda9d2640059bd80fd0c5d' - '1fe59799bcc88908ad6c25564d6ca470' - '846c2ac9e477b1e79e2cc97118263a5b' - '568d6bf407ac82d99bfc91fbeb4af860') + 'ba7fa43f4eacdf6c1ddd8afe927c3b4a' + '69823dfb44323debddb7e92ca4ba308e' + 'd543491fff1e6c8f39fb6976372c92f2' + '42f8997aef728de8a1525142658fe7da' + 'e10957bfa81d031170c46aa77285ed91' + 'f4d1e62c12002efda8c4eeba63c847e2' + '1e135b48b058d03800b7edb8abb15df1' + '24010af0744aa8788ca465272ccb0cfb' + 'e27b09a68d3f4a705595f4aeea4cf291' + '8e6e6984b85fd1926892638ba415edfd' + '4fba7f1a5c4c6e4a8ded450a277146b3' + '9d09fcca9ae013c8bbb8695a8b7704eb' + '4df51b31b322aa9609897a9aa870f54f' + 'd8301e8e667210c3d7ac09a0791c52d7' + '6d0a782eef0077ddbffd130f806529fa') _threads="posix" @@ -118,6 +120,7 @@ prepare() { git am "${srcdir}"/0019-MinGW-w64-Port-sanitizer.patch git am "${srcdir}"/0020-Force-linking-to-libgcc_s_dw2-1.dll-deprecated.patch git am "${srcdir}"/0021-MinGW-w64-Disable-libsanitizer.patch + git am "${srcdir}"/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch # do not expect $prefix/mingw symlink - this should be superceded by # 0006-Windows-Don-t-ignore-native-system-header-dir.patch .. but isn't! diff --git a/mingw-w64-gcc/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch b/mingw-w64-gcc/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch new file mode 100644 index 0000000000..efb3fc0340 --- /dev/null +++ b/mingw-w64-gcc/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch @@ -0,0 +1,112 @@ +From 38274147bb2a3fa481d0a1853c185c2337550260 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 17 Aug 2015 22:57:46 +0100 +Subject: [PATCH 22/22] clone_function_name_1: Retain any stdcall suffix + +Previously, clone_function_name_1 would add a suffix after +any existing stdcall suffix, for example ipa-split.c would +clone test@4 as test@4.part.0. + +Later, i386_pe_strip_name_encoding_full would come along +and strip off everything from the last @ onwards which had +the effect of generating incorrect section names which +would then fall over with errors such as: + +error: void test() causes a section type conflict with \ + void test@4.part.0() + +The following testcase, reduced from Firefox can be used +to reproduce this. + +test.ii: +class ClassA { +public: + virtual int __attribute__((__stdcall__)) Dispatch() = 0; +}; +class ClassB { +public: + ClassA* __attribute__((__stdcall__)) operator->(); +}; +class ClassC : ClassA { + int *some_int_ptr_variable; + int __attribute__((__stdcall__)) Dispatch() { + return some_int_ptr_variable + ? 42 + : m_ClassInstanceB->Dispatch(); + } + ClassB m_ClassInstanceB; +}; +ClassC ClassInstanceC; + +Compile for i686-w64-mingw32 with: +cc1plus -O -fpartial-inlining -fdevirtualize \ + -fdevirtualize-speculatively test.ii + +Outputs: +test.ii: In member function 'virtual int ClassC::Dispatch()': +test.ii:11:36: error: virtual int ClassC::Dispatch() causes \ + a section type conflict with int ClassC::_ZN6ClassC8DispatchEv@4.part.0() + int __attribute__((CALLTYPE)) Dispatch() { + ^ +test.ii:11:36: note: \ + 'int ClassC::_ZN6ClassC8DispatchEv@4.part.0()' was declared here +--- + gcc/cgraphclones.c | 13 ++++++++++++- + gcc/defaults.h | 2 +- + 2 files changed, 13 insertions(+), 2 deletions(-) + +diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c +index 9e9f1a0..69b8a91 100644 +--- a/gcc/cgraphclones.c ++++ b/gcc/cgraphclones.c +@@ -519,15 +519,24 @@ cgraph_node::create_clone (tree new_decl, gcov_type gcov_count, int freq, + static GTY(()) unsigned int clone_fn_id_num; + + /* Return a new assembler name for a clone with SUFFIX of a decl named +- NAME. */ ++ NAME. Final stdcall @N suffixes are maintained. */ + + tree + clone_function_name_1 (const char *name, const char *suffix) + { + size_t len = strlen (name); + char *tmp_name, *prefix; ++ char *at_suffix = NULL; + + prefix = XALLOCAVEC (char, len + strlen (suffix) + 2); ++ /* name + 1 to skip fastcall which begins with '@' */ ++ at_suffix = strchr (name + 1, '@'); ++ size_t at_suffix_len = 0; ++ if (at_suffix) ++ { ++ at_suffix_len = strlen (at_suffix); ++ len -= at_suffix_len; ++ } + memcpy (prefix, name, len); + strcpy (prefix + len + 1, suffix); + #ifndef NO_DOT_IN_LABEL +@@ -538,6 +547,8 @@ clone_function_name_1 (const char *name, const char *suffix) + prefix[len] = '_'; + #endif + ASM_FORMAT_PRIVATE_NAME (tmp_name, prefix, clone_fn_id_num++); ++ if (at_suffix) ++ strcat (tmp_name, at_suffix); + return get_identifier (tmp_name); + } + +diff --git a/gcc/defaults.h b/gcc/defaults.h +index 9d38ba1..c34478a 100644 +--- a/gcc/defaults.h ++++ b/gcc/defaults.h +@@ -51,7 +51,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + # define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \ + do { const char *const name_ = (NAME); \ + char *const output_ = (OUTPUT) = \ +- (char *) alloca (strlen (name_) + 32); \ ++ (char *) alloca (strlen (name_) + 35); \ + sprintf (output_, ASM_PN_FORMAT, name_, (unsigned long)(LABELNO)); \ + } while (0) + #endif +-- +2.5.0 + diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 01429813ff..367c1bc123 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -11,7 +11,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc") pkgver=5.2.0 -pkgrel=3 +pkgrel=4 pkgdesc="GCC for the MinGW-w64" arch=('any') url="http://gcc.gnu.org" @@ -55,7 +55,8 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- 'port-sanitizer-to-mingw.all.patch' 'enable-shared-gnat-implib.mingw.patch' '955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch' - pr66035.patch) + 'pr66035.patch' + '0022-clone_function_name_1-Retain-any-stdcall-suffix.patch') md5sums=('a51bcfeb3da7dd4c623e27207ed43467' '41635a40493dc79416db6627b2826b21' 'f6b5fb08ff06a7d60ee3280e14240bb2' @@ -78,7 +79,8 @@ md5sums=('a51bcfeb3da7dd4c623e27207ed43467' '52592c1d7c6031ff601ecfdf3942b940' '62cc23251ae746b5f39c2c7aef121e8f' '393ce6bf124d5b1ca0e38cbe0fc6eb51' - '5b980076cd5fcbc3aff6014f306282dd') + '5b980076cd5fcbc3aff6014f306282dd' + '6d0a782eef0077ddbffd130f806529fa') _threads="posix" @@ -146,6 +148,8 @@ prepare() { # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66035 patch -p1 -i ${srcdir}/pr66035.patch + patch -p1 -i ${srcdir}/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch + #if check_option "debug" "y"; then # Expose some libgomp internals for debugging. #patch -p1 -i ${srcdir}/300-libgomp-no-static.patch From d6cd1e5867264f5bec5dfd1e6118ac369976a730 Mon Sep 17 00:00:00 2001 From: pandaman64 Date: Tue, 18 Aug 2015 23:15:02 +0900 Subject: [PATCH 1467/2060] Missing dependency on NSS. --- mingw-w64-liboauth/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-liboauth/PKGBUILD b/mingw-w64-liboauth/PKGBUILD index 8b0067f786..15ea1b98b3 100644 --- a/mingw-w64-liboauth/PKGBUILD +++ b/mingw-w64-liboauth/PKGBUILD @@ -9,7 +9,7 @@ pkgdesc="liboauth is a collection of POSIX-c functions implementing the OAuth Co license=("GPL 2") url="http://liboauth.sourceforge.net/" depends=("${MINGW_PACKAGE_PREFIX}-curl" - #"${MINGW_PACKAGE_PREFIX}-nss" + "${MINGW_PACKAGE_PREFIX}-nss" ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-doxygen" From 508f8d463413ec2634cb22abef96963b117e3721 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 19 Aug 2015 15:36:57 +0300 Subject: [PATCH 1468/2060] curl: Update to 7.44.0 --- mingw-w64-curl/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index fe4eeecdbb..b21bb00236 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -4,9 +4,10 @@ _variant=-openssl #_variant=-gnutls _realname=curl +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=7.43.0 -pkgrel=2 +pkgver=7.44.0 +pkgrel=1 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" @@ -29,7 +30,7 @@ options=('staticlibs') source=("$url/download/${_realname}-${pkgver}.tar.bz2"{,.asc} "0001-curl-relocation.patch" "0002-curl-mingw-enable-static.patch") -md5sums=('11bddbb452a8b766b932f859aaeeed39' +md5sums=('6b952ca00e5473b16a11f05f06aa8dae' 'SKIP' '58520051c4ed77781d233c3fa40a5435' 'eac9e212e619490966ae47004bec547b') From 6a911b856bb93c1b891853a1b2db73e0e996c045 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 20 Aug 2015 08:46:10 +0200 Subject: [PATCH 1469/2060] eog: updated to 3.16.3. --- mingw-w64-eog/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-eog/PKGBUILD b/mingw-w64-eog/PKGBUILD index 3d0665fbb9..48df855622 100644 --- a/mingw-w64-eog/PKGBUILD +++ b/mingw-w64-eog/PKGBUILD @@ -2,8 +2,8 @@ _realname=eog pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.2 -pkgrel=2 +pkgver=3.16.3 +pkgrel=1 arch=('any') pkgdesc="Eye of GNOME graphics viewer program (mingw-w64)" options=(strip staticlibs) @@ -32,7 +32,7 @@ source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_real 002-relocation-support.patch 003-fix-install-dirs.patch 004-give-cc-to-gir-scanner.mingw.patch) -sha256sums=('802f68572d86bbb1e5969a385a76462aa42ea53aba6c65bf7337f528cb0a3c3b' +sha256sums=('ee6d101f8e73aacc8d48256f06a780c6d0d5f3975990f375f58cd0e70816b766' '31db56ea4d64059e60c478a7ba1475d9beaf65f2c42967909adbb41843c2d129' 'a7e897da94d7033fd2ad4d81129f7a60cd0f68bd8d887c079c79cef802d02a4d' 'abc9df56f5fc2213ba6efdcdad269534496d6eda900194b4000910dacf4042d9' From 1b8183f8bd77c006bacd1e7e0a79060a5a72f337 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 20 Aug 2015 09:10:13 +0200 Subject: [PATCH 1470/2060] eog-plugins: updated to 3.16.1. --- mingw-w64-eog-plugins/PKGBUILD | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mingw-w64-eog-plugins/PKGBUILD b/mingw-w64-eog-plugins/PKGBUILD index 303cae7ba4..7836eae52a 100644 --- a/mingw-w64-eog-plugins/PKGBUILD +++ b/mingw-w64-eog-plugins/PKGBUILD @@ -2,8 +2,8 @@ _realname=eog-plugins pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 -pkgrel=2 +pkgver=3.16.1 +pkgrel=1 arch=('any') pkgdesc="Eye of GNOME graphics viewer program - plugins (mingw-w64)" options=(strip staticlibs) @@ -17,10 +17,11 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas") options=('strip' 'staticlibs') license=("GPL 2") url="http://www.gnome.org" +install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch 002-champlain.patch) -sha256sums=('6fab1c1e0705fc2b0e4a63caf3ba1c5b64b4eaa1301e4cbc04bb934428b68450' +sha256sums=('c586b6708064dcd03612f9373a6160214b2fa4797bf8c07db530b18eda4074d9' '7b5a599b0fb719156747627944cae4b1107ffb8f11bcaddf0c8100d89c93548d' '3b7fab068ff3739fed247f72abbc18accb409b9008593e806f5c4e3df1d9b32d') @@ -51,4 +52,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR=${pkgdir} install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From b9b260be1d3d919671a99f53b3f94b5a46258d1b Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 20 Aug 2015 10:02:35 +0200 Subject: [PATCH 1471/2060] openldap: updated to 2.4.42. --- mingw-w64-openldap/PKGBUILD | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-openldap/PKGBUILD b/mingw-w64-openldap/PKGBUILD index e55685fbdd..d21c196f84 100644 --- a/mingw-w64-openldap/PKGBUILD +++ b/mingw-w64-openldap/PKGBUILD @@ -2,7 +2,7 @@ _realname=openldap pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.4.41 +pkgver=2.4.42 pkgrel=1 arch=('any') pkgdesc="OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol (only client) (mingw-w64)" @@ -24,7 +24,7 @@ source=(http://www.openldap.org/software/download/OpenLDAP/openldap-release/${_r 001-backmdb.patch 002-link-with-icu.patch 003-symdummy-error.patch) -sha256sums=('27856bb4a8b44feca2b326c309000e16a9dadd52362c8ab6eec6c67a43737f6e' +sha256sums=('eeb7b0e2c5852bfd2650e83909bb6152835c0b862fab10b63954dc1bcbba8e63' 'b462bfab9362cf5cab61d67cd24902a1800fb498a152b681ee182c713b79146c' '450cc9e42fb6ed2af4a16b217c77f95d1a18b353b887cab3107f9b350d8b42c5' 'd697fe51361a5129a5af3ca317031ff6f4ca5ddd247ff53043880660154a4708') @@ -69,4 +69,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR=${pkgdir} install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From b07765ec7470568e342f2c804e4d207d51e7d900 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 20 Aug 2015 10:44:46 +0200 Subject: [PATCH 1472/2060] gdk-pixbuf: updated to 2.31.6. --- mingw-w64-gdk-pixbuf2/PKGBUILD | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gdk-pixbuf2/PKGBUILD b/mingw-w64-gdk-pixbuf2/PKGBUILD index 659dc7c323..29048b9746 100644 --- a/mingw-w64-gdk-pixbuf2/PKGBUILD +++ b/mingw-w64-gdk-pixbuf2/PKGBUILD @@ -3,8 +3,8 @@ _realname=gdk-pixbuf2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.31.4 -pkgrel=2 +pkgver=2.31.6 +pkgrel=1 pkgdesc="An image loading library (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -23,7 +23,7 @@ install=${_realname}-${CARCH}.install source=("http://download.gnome.org/sources/gdk-pixbuf/${pkgver%.*}/gdk-pixbuf-${pkgver}.tar.xz" 0001-Use-a-regex-to-properly-export-the-symbols.patch 0002-gdk-pixbuf-introspection.patch) -sha256sums=('e5d9977493f8188baa6f432c5015c9937f0f67d29e0b6bccd3fae23126a47a15' +sha256sums=('111203d6f295d69d36e7190204248331cd37285130ac483becdedcd3f0135d18' 'e8d278e30c44e973e14e3c61e8ab195621d6a9a402e0da557db4616955ca4543' 'c22ce6c4de87c9f6e8b18452a728e4677fac18d2b51d6e536db27160c368f0c6') @@ -39,7 +39,11 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ../gdk-pixbuf-${pkgver}/configure \ + + mkdir -p docs/reference/gdk-pixbuf/html + cp -rf ../gdk-pixbuf-${pkgver}/docs/reference/gdk-pixbuf/html/* docs/reference/gdk-pixbuf/html + + ../gdk-pixbuf-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ From ad73d167397fbe6c4fdbc5609e5aa6435160aac5 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 20 Aug 2015 11:03:40 +0200 Subject: [PATCH 1473/2060] gedit: updated to 3.16.3. --- mingw-w64-gedit/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gedit/PKGBUILD b/mingw-w64-gedit/PKGBUILD index ee795d9927..62a695b8f8 100644 --- a/mingw-w64-gedit/PKGBUILD +++ b/mingw-w64-gedit/PKGBUILD @@ -2,8 +2,8 @@ _realname=gedit pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.2 -pkgrel=2 +pkgver=3.16.3 +pkgrel=1 arch=('any') pkgdesc="A text editor for GNOME (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" @@ -24,9 +24,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs') license=("GPL") url="http://www.gnome.org" -install=gedit-${CARCH}.install +install=${_realname}-${CARCH}.install source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) -sha256sums=('db60a9408711b00f3780f5f5b657e9f44722c88c683ba6e9f2b4885631f429aa') +sha256sums=('c28df44a29ee5707441f89e94b513079d709111afec4bd4b079a1dff0242cdb2') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From d5d529b580b91ca149d0d87756999aeebb251689 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 20 Aug 2015 11:04:12 +0200 Subject: [PATCH 1474/2060] latexila: updated to 3.16.2. --- mingw-w64-latexila/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD index 1367993c5c..c915d3ada5 100644 --- a/mingw-w64-latexila/PKGBUILD +++ b/mingw-w64-latexila/PKGBUILD @@ -2,7 +2,7 @@ _realname=latexila pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.1 +pkgver=3.16.2 pkgrel=1 arch=('any') pkgdesc="LaTeX editor designed for the GNOME desktop (mingw-w64)" @@ -16,10 +16,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") license=("GPL 2") url="http://www.gnome.org" -install=latexila-${CARCH}.install +install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) -sha256sums=('ab2d769546e10c86670e86271024c023c0a87f1b72856955c1883416a9f333f0' +sha256sums=('5ad20a2acdb8c93dea5aa175a219e62efe5f4a7ffb67bc52ff6faf0c6f42bad3' '94159afb2c0f0688c375ddcce3bf7750e7179c40d394847c665bc492632e3942') prepare() { From 708d6d1eee73a38ae50ababd7b2e5f6abf49a345 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 20 Aug 2015 11:04:55 +0200 Subject: [PATCH 1475/2060] eog-plugins: missing install files. --- mingw-w64-eog-plugins/eog-plugins-i686.install | 12 ++++++++++++ mingw-w64-eog-plugins/eog-plugins-x86_64.install | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 mingw-w64-eog-plugins/eog-plugins-i686.install create mode 100644 mingw-w64-eog-plugins/eog-plugins-x86_64.install diff --git a/mingw-w64-eog-plugins/eog-plugins-i686.install b/mingw-w64-eog-plugins/eog-plugins-i686.install new file mode 100644 index 0000000000..b5742c7285 --- /dev/null +++ b/mingw-w64-eog-plugins/eog-plugins-i686.install @@ -0,0 +1,12 @@ +post_install() { + mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas + mingw32/bin/gtk-update-icon-cache-3.0 -f -t /mingw32/share/icons/hicolor +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/mingw-w64-eog-plugins/eog-plugins-x86_64.install b/mingw-w64-eog-plugins/eog-plugins-x86_64.install new file mode 100644 index 0000000000..3684301013 --- /dev/null +++ b/mingw-w64-eog-plugins/eog-plugins-x86_64.install @@ -0,0 +1,12 @@ +post_install() { + mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas + mingw64/bin/gtk-update-icon-cache-3.0 -f -t /mingw64/share/icons/hicolor +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} From 1dd8d26287d1c26ade614f9e0319f4a91f1d7964 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 10:08:34 +0300 Subject: [PATCH 1476/2060] Improve PKGBUILD's --- mingw-w64-eog-plugins/PKGBUILD | 1 + mingw-w64-eog/PKGBUILD | 1 + mingw-w64-gdk-pixbuf2/PKGBUILD | 1 + mingw-w64-gedit/PKGBUILD | 1 + mingw-w64-latexila/PKGBUILD | 1 + mingw-w64-openldap/PKGBUILD | 1 + mingw-w64-vala/PKGBUILD | 1 + 7 files changed, 7 insertions(+) diff --git a/mingw-w64-eog-plugins/PKGBUILD b/mingw-w64-eog-plugins/PKGBUILD index 7836eae52a..10e32cb5d4 100644 --- a/mingw-w64-eog-plugins/PKGBUILD +++ b/mingw-w64-eog-plugins/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Andrea Zagli _realname=eog-plugins +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.1 pkgrel=1 diff --git a/mingw-w64-eog/PKGBUILD b/mingw-w64-eog/PKGBUILD index 48df855622..d9d6ee67c1 100644 --- a/mingw-w64-eog/PKGBUILD +++ b/mingw-w64-eog/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Andrea Zagli _realname=eog +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.3 pkgrel=1 diff --git a/mingw-w64-gdk-pixbuf2/PKGBUILD b/mingw-w64-gdk-pixbuf2/PKGBUILD index 29048b9746..e8229594bd 100644 --- a/mingw-w64-gdk-pixbuf2/PKGBUILD +++ b/mingw-w64-gdk-pixbuf2/PKGBUILD @@ -2,6 +2,7 @@ # Contributor: Renato Silva _realname=gdk-pixbuf2 +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.31.6 pkgrel=1 diff --git a/mingw-w64-gedit/PKGBUILD b/mingw-w64-gedit/PKGBUILD index 62a695b8f8..61bf05bf6c 100644 --- a/mingw-w64-gedit/PKGBUILD +++ b/mingw-w64-gedit/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=gedit +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.3 pkgrel=1 diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD index c915d3ada5..9d36199740 100644 --- a/mingw-w64-latexila/PKGBUILD +++ b/mingw-w64-latexila/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Andrea Zagli _realname=latexila +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.2 pkgrel=1 diff --git a/mingw-w64-openldap/PKGBUILD b/mingw-w64-openldap/PKGBUILD index d21c196f84..8043cf496c 100644 --- a/mingw-w64-openldap/PKGBUILD +++ b/mingw-w64-openldap/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Andrea Zagli _realname=openldap +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.4.42 pkgrel=1 diff --git a/mingw-w64-vala/PKGBUILD b/mingw-w64-vala/PKGBUILD index 1dbe69f4f0..00d7da9cf9 100644 --- a/mingw-w64-vala/PKGBUILD +++ b/mingw-w64-vala/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=vala +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.29.2 pkgrel=1 From 99c2d17d09740244ec9554910fcb09934d77344f Mon Sep 17 00:00:00 2001 From: Matt Breedlove Date: Fri, 21 Aug 2015 03:31:01 -0400 Subject: [PATCH 1477/2060] Update libvorbis to 1.3.5 --- mingw-w64-libvorbis/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libvorbis/PKGBUILD b/mingw-w64-libvorbis/PKGBUILD index 2cfe66172e..c5f77df50f 100644 --- a/mingw-w64-libvorbis/PKGBUILD +++ b/mingw-w64-libvorbis/PKGBUILD @@ -2,7 +2,7 @@ _realname=libvorbis pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.4 +pkgver=1.3.5 pkgrel=2 pkgdesc="Vorbis codec library (mingw-w64)" arch=('any') @@ -12,7 +12,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-libogg" "${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('strip' 'staticlibs') source=(http://downloads.xiph.org/releases/vorbis/${_realname}-${pkgver}.tar.gz) -md5sums=('8851c593a52d1ef9c526d95174873852') +md5sums=('7220e089f3be3412a2317d6fde9e3944') build() { [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" From 9e8ff572215bbb9b8fb91e7490f1310fc8251d2e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 10:50:01 +0300 Subject: [PATCH 1478/2060] armadillo: Update to 5.300.5 --- mingw-w64-armadillo/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index e5159af216..3beeff29c8 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Hurcan Solter _realname=armadillo +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.200.2 -pkgrel=2 +pkgver=5.300.5 +pkgrel=1 pkgdesc="C++ linear algebra library (mingw-w64)" arch=('any') url="http://arma.sourceforge.net/" @@ -15,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" install=${_realname}-${CARCH}.install source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz 0001-mingw-config-fix.patch) -md5sums=('ef57ba4c473a3b67c672441a7face09e' +md5sums=('0ef1d316dd98e3a42c9c99fa35c4e080' '5ce663ba53e15ee85fcd7a0b01006672') prepare() { From 257ab5d57e49d5896b1ea960509e40cbb2fed0b8 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 10:50:23 +0300 Subject: [PATCH 1479/2060] l-smash: Update to 2.9.1 --- mingw-w64-l-smash/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-l-smash/PKGBUILD b/mingw-w64-l-smash/PKGBUILD index 42e1c9ba2c..17563211e1 100644 --- a/mingw-w64-l-smash/PKGBUILD +++ b/mingw-w64-l-smash/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Yuta Nakai _realname=l-smash +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgdesc="Loyal to Spec of Mpeg4 and Ad-hoc Simple Hackwork. Yet another opensource mp4 handler (mingw-w64)" -pkgver=2.3.0 -pkgrel=2 +pkgver=2.9.1 +pkgrel=1 arch=('any') url="http://l-smash.github.io/l-smash/" license=('ISC') @@ -13,7 +14,7 @@ options=('strip' 'staticlibs') source=(${_realname}-${pkgver}.tar.gz::"https://github.com/l-smash/l-smash/archive/v${pkgver}.tar.gz" '0001-configure-Check-whether-SRCDIR-is-git-repo-or-not.patch' '0002-configure-Add-api-version-to-mingw-shared-library-na.patch') -md5sums=('72e68a32e6a671afebbfbbab3b5dd47c' +md5sums=('ccc7f6f0dcfdb01398e0f922f150a0d9' 'c7e017f6451aea9a44636de9328dae49' '8dc7295da0e138ab7e9656c2248144f7') From 49e1b562c520aaf8282cc175bc14fc94815b1e39 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 10:54:09 +0300 Subject: [PATCH 1480/2060] python-setuptools: Update to 18.2 --- mingw-w64-python-setuptools/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index cf783c2399..162b563708 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -2,11 +2,12 @@ # Contributor: Ray Donnelly _realname=setuptools +pkgbase=mingw-w64-python-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.4 _py2_base=2.7 -pkgver=18.0.1 +pkgver=18.2 pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" arch=('any') @@ -18,7 +19,7 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('ebc4fe81b7f6d61d923d9519f589903824044f52' +sha1sums=('55033c6e68189bc10b848beda27044e07e384b41' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' From 4a2a2d671790426279bd3397d52a72dfc6af0a13 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 11:28:46 +0300 Subject: [PATCH 1481/2060] nspr: Update to 4.10.9 --- mingw-w64-nspr/PKGBUILD | 17 +++++++++-------- mingw-w64-nspr/nspr-4.10.2_autotools.patch | 14 +++++++++++--- mingw-w64-nspr/nspr-4.10.6-mswsock.patch | 14 -------------- 3 files changed, 20 insertions(+), 25 deletions(-) diff --git a/mingw-w64-nspr/PKGBUILD b/mingw-w64-nspr/PKGBUILD index d49c2c387b..75d77b8421 100644 --- a/mingw-w64-nspr/PKGBUILD +++ b/mingw-w64-nspr/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Renato Silva _realname=nspr +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.10.8 -pkgrel=2 +pkgver=4.10.9 +pkgrel=1 pkgdesc="Netscape Portable Runtime (mingw-w64)" arch=('any') url="http://www.mozilla.org/projects/nspr/" @@ -20,10 +21,10 @@ source=(ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${pkgver}/src/${_re nspr-4.10.2_staticbuild.patch nspr-4.10.2_x64.patch manifest) -md5sums=('8d7c5bd0a5b0a7d0e705be66479030a0' +md5sums=('86769a7fc3b4c30f7fdcb45ab284c452' 'd9c6516eb4dca209e4b7ae46a4758ffa' - '5d99dd3b898f615b58d111f7b55a4217' - 'ed16729657eb70fbacda4f086c7a04ed' + '43c68c49f28be6ebc3ff7e4f5552a8c0' + '09a990b21309ff8a1297e628afc782ff' '93d379011339c994fd242c9628df0bdf' 'e8b657f34a43d60db96761a924c46a9c' 'c337834e9092cffa3cd448c0702efd82' @@ -37,8 +38,8 @@ prepare() { patch -p0 -i ${srcdir}/nspr-4.10.2_staticbuild.patch patch -p0 -i ${srcdir}/nspr-4.10.2_x64.patch - cp ${srcdir}/moztools/bin/nsinstall.exe ../ - cp ${srcdir}/manifest ../nsinstall.exe.manifest + cp ${srcdir}/moztools/bin/nsinstall.exe ${srcdir}/${_realname}-${pkgver}/ + cp ${srcdir}/manifest ${srcdir}/${_realname}-${pkgver}/nsinstall.exe.manifest } build() { @@ -65,7 +66,7 @@ build() { package() { cd "${srcdir}"/build-${CARCH} - PATH="$PATH:${srcdir}/moztools/bin:$PWD" make DESTDIR="$pkgdir" install + PATH="$PATH:${srcdir}/${_realname}-${pkgver}" make DESTDIR="${pkgdir}" install mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/ diff --git a/mingw-w64-nspr/nspr-4.10.2_autotools.patch b/mingw-w64-nspr/nspr-4.10.2_autotools.patch index 64902b5118..26099c740e 100644 --- a/mingw-w64-nspr/nspr-4.10.2_autotools.patch +++ b/mingw-w64-nspr/nspr-4.10.2_autotools.patch @@ -20,13 +20,21 @@ +Cflags: -I${includedir} --- config/rules.mk Tue Nov 12 04:52:34 2013 +++ config/rules.mk Tue Nov 26 11:22:37 2013 -@@ -91,9 +91,9 @@ - endif - +@@ -85,16 +85,16 @@ + SHARED_LIB_PDB = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).pdb ifdef MSC_VER + LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX) -IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(LIB_SUFFIX) +IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(IMPORT_LIB_SUFFIX) else + LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX) +-IMPORT_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(LIB_SUFFIX) ++IMPORT_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(IMPORT_LIB_SUFFIX) + endif + else + SHARED_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX) + SHARED_LIB_PDB = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).pdb + LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX) -IMPORT_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(LIB_SUFFIX) +IMPORT_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(IMPORT_LIB_SUFFIX) endif diff --git a/mingw-w64-nspr/nspr-4.10.6-mswsock.patch b/mingw-w64-nspr/nspr-4.10.6-mswsock.patch index f3b298167c..ff83be389c 100644 --- a/mingw-w64-nspr/nspr-4.10.6-mswsock.patch +++ b/mingw-w64-nspr/nspr-4.10.6-mswsock.patch @@ -1,17 +1,3 @@ ---- nspr/pr/src/Makefile.in.orig 2014-06-06 01:42:08.000000000 +0400 -+++ nspr/pr/src/Makefile.in 2014-07-10 12:17:22.755000000 +0400 -@@ -165,9 +165,9 @@ - - ifeq ($(OS_ARCH),WINNT) - ifdef NS_USE_GCC --OS_LIBS = -ladvapi32 -lws2_32 -lwinmm -+OS_LIBS = -ladvapi32 -lws2_32 -lmswsock -lwinmm - else --OS_LIBS = advapi32.lib ws2_32.lib winmm.lib -+OS_LIBS = advapi32.lib ws2_32.lib mswsock.lib winmm.lib - endif - endif - --- nspr/tools/Makefile.in.orig 2014-06-06 01:42:08.000000000 +0400 +++ nspr/tools/Makefile.in 2014-07-10 12:19:41.479000000 +0400 @@ -167,7 +167,7 @@ From ca17ec1d1e9441db52805a2ffed2d72b86b0d51c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 11:29:03 +0300 Subject: [PATCH 1482/2060] nss: Update to 3.20 --- mingw-w64-nss/PKGBUILD | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mingw-w64-nss/PKGBUILD b/mingw-w64-nss/PKGBUILD index bd1084198e..52673d5464 100644 --- a/mingw-w64-nss/PKGBUILD +++ b/mingw-w64-nss/PKGBUILD @@ -2,10 +2,11 @@ # Contributor: Renato Silva _realname=nss +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.19.2 -_nsprver=4.10.8 -pkgrel=2 +pkgver=3.20 +_nsprver=4.10.9 +pkgrel=1 pkgdesc="Mozilla Network Security Services (mingw-w64)" arch=('any') url="http://www.mozilla.org/projects/security/pki/nss/" @@ -25,7 +26,7 @@ source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/s blank-cert8.db blank-key3.db blank-secmod.db) -md5sums=('b02ffd1e8e8ef5f8512fa02d8ca9db3d' +md5sums=('db83988499d1eb3b623d77ecf495b0f5' 'd9c6516eb4dca209e4b7ae46a4758ffa' 'c547b030c57fe1ed8b77c73bf52b3ded' '46bee81908f1e5b26d6a7a2e14c64d9f' @@ -47,8 +48,8 @@ prepare() { sed -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/' \ -i nss/coreconf/rules.mk - cp ${srcdir}/moztools/bin/nsinstall.exe . - cp ${srcdir}/manifest nsinstall.exe.manifest + cp ${srcdir}/moztools/bin/nsinstall.exe ${srcdir}/${_realname}-${pkgver}/ + cp ${srcdir}/manifest ${srcdir}/${_realname}-${pkgver}/nsinstall.exe.manifest } build() { From 71734cf91e09801c7844909d82ef47879418e539 Mon Sep 17 00:00:00 2001 From: Matt Breedlove Date: Fri, 21 Aug 2015 06:11:54 -0400 Subject: [PATCH 1483/2060] Reset pkgrel back to 1 --- mingw-w64-libvorbis/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-libvorbis/PKGBUILD b/mingw-w64-libvorbis/PKGBUILD index c5f77df50f..8d262afe24 100644 --- a/mingw-w64-libvorbis/PKGBUILD +++ b/mingw-w64-libvorbis/PKGBUILD @@ -3,7 +3,7 @@ _realname=libvorbis pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.5 -pkgrel=2 +pkgrel=1 pkgdesc="Vorbis codec library (mingw-w64)" arch=('any') url="http://xiph.org" From 017d79e18be8534a555547dfb8e95e7929af5c72 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 13:55:33 +0300 Subject: [PATCH 1484/2060] ruby: Update to 2.2.3 --- mingw-w64-ruby/PKGBUILD | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ruby/PKGBUILD b/mingw-w64-ruby/PKGBUILD index 14d3598a1d..d3ca00a75a 100644 --- a/mingw-w64-ruby/PKGBUILD +++ b/mingw-w64-ruby/PKGBUILD @@ -1,9 +1,13 @@ # Maintainer: Alexey Pavlov +# Before building package need CD into directory with drive letter, like +# cd /c/build/mingw-w64-ruby + _realname=ruby +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.2.2 -pkgrel=2 +pkgver=2.2.3 +pkgrel=1 pkgdesc="An object-oriented language for quick and easy programming (mingw-w64)" arch=('any') url="http://www.ruby-lang.org/en" @@ -21,7 +25,7 @@ source=("http://cache.ruby-lang.org/pub/ruby/${pkgver%.*}/${_realname}-${pkgver} 0001-mingw-w64-time-functions.patch 0002-use-gnu-printf.patch 0003-fix-check-types.patch) -md5sums=('af6eb4fa7247f1f7b2e19c8e6f3e3145' +md5sums=('f49a734729a71774d4a94a9a603114b2' '4256c35613e6dc15c164015ae8977d4a' '6d54f98b9e3a0d0077e9348dc7f69482' 'f9170e918fa7b7118d241d238d7a0e3b') From 2931c70d270eaceba983c431563174b7e495b5b4 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 15:00:51 +0300 Subject: [PATCH 1485/2060] gnutls: Update to 3.4.4.1 --- mingw-w64-gnutls/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index 82d43fe46b..1fdced3f38 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -3,7 +3,7 @@ _realname=gnutls pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.4.4 +pkgver=3.4.4.1 pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') @@ -22,9 +22,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") # Need remove "autogen" package before building. -source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*}/${_realname}-${pkgver}.tar.xz{,.sig} +source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*.*}/${_realname}-${pkgver}.tar.xz{,.sig} 0001-add-missing-define.patch) -md5sums=('1a0367a01dacaf0e91464e6fa54891fa' +md5sums=('474efaba6fd6c6c6c0ebac2a3f431946' 'SKIP' '807a79513358a9f4123f62111f1eed59') validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F') From ad85322707eb67c038c265efe74f7d3e4362a2b3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 15:34:38 +0300 Subject: [PATCH 1486/2060] qemu: Update to 2.4.0 --- mingw-w64-qemu/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-qemu/PKGBUILD b/mingw-w64-qemu/PKGBUILD index d22acc026d..834f4808ae 100644 --- a/mingw-w64-qemu/PKGBUILD +++ b/mingw-w64-qemu/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Martell Malone _realname=qemu +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.3.0 +pkgver=2.4.0 pkgrel=1 pkgdesc="A generic and open source processor emulator (mingw-w64)" arch=('any') @@ -25,7 +26,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-SDL2") source=(http://wiki.qemu.org/download/${_realname}-${pkgver}.tar.bz2 001-time-functions.patch) -md5sums=('2fab3ea4460de9b57192e5b8b311f221' +md5sums=('186ee8194140a484a455f8e3c74589f4' 'f663b8a1e192f5169604b565fad938de') options=('!strip' 'debug') _pkgfqn="${_realname}-${pkgver}" From b7d8db389d03b001ca16c15dab8807c57d486a45 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 21 Aug 2015 08:20:56 +0000 Subject: [PATCH 1487/2060] Add the mingw-w64-connect package The connect.exe helper is a very useful helper when trying to connect to SSH through a SOCKS or HTTP proxy. It comes in particularly handy when users are stuck behind restrictive firewalls. If even one HTTP proxy is accessible that allows to connect to port 22 of the desired outside machine, `connect.exe` can be used in conjunction with the `ProxyCommand` directive in `$HOME/.ssh/config` to allow regular ssh and scp connections. Example: -- snippet of $HOME/.ssh/config -- Host github.com User git ProxyCommand connect -H proxy.local.net:8080 %h %p -- end snippet If a SOCKS proxy is available, the same directive works when `-H` is replaced with the `-S` option. Signed-off-by: Johannes Schindelin --- mingw-w64-connect/PKGBUILD | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mingw-w64-connect/PKGBUILD diff --git a/mingw-w64-connect/PKGBUILD b/mingw-w64-connect/PKGBUILD new file mode 100644 index 0000000000..3e7683bed0 --- /dev/null +++ b/mingw-w64-connect/PKGBUILD @@ -0,0 +1,34 @@ +# Maintainer: Johannes Schindelin + +_realname=connect +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1.104 +tag='fd6f352325d4' +pkgrel=1 +pkgdesc="Make socket connection using SOCKS4/5 and HTTP tunnel (mingw-w64)" +arch=('any') +license=('GPL2+') +url="https://bitbucket.org/gotoh/connect/overview" +options=('strip') +source=("https://bitbucket.org/gotoh/${_realname}/get/${pkgver}.tar.bz2") +sha1sums=('bc65ff2833142ae6bd49d469224bc2111f30e078') + +build() { + cd "${srcdir}/gotoh-${_realname}-${tag}" + + test -x ver || printf '#!/bin/sh\n\necho Windows\n' > ver + + PATH=.:$PATH make -j1 rebuild +} + +package() { + cd "${srcdir}/gotoh-${_realname}-${tag}" + + install -d "${pkgdir}${MINGW_PREFIX}/bin/" + install connect.exe "${pkgdir}${MINGW_PREFIX}/bin/" + + install -d "${pkgdir}${MINGW_PREFIX}/share/doc/connect/" + install doc/manual.html "${pkgdir}${MINGW_PREFIX}/share/doc/connect/" + install doc/manual.txt "${pkgdir}${MINGW_PREFIX}/share/doc/connect/" +} From 3818dd7b80657499459dbdef2d51a7fa7202e71b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 16:36:46 +0300 Subject: [PATCH 1488/2060] Improve PKGBUILD's --- mingw-w64-connect/PKGBUILD | 2 +- mingw-w64-liboauth/PKGBUILD | 1 + mingw-w64-libvorbis/PKGBUILD | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-connect/PKGBUILD b/mingw-w64-connect/PKGBUILD index 3e7683bed0..50c5575b61 100644 --- a/mingw-w64-connect/PKGBUILD +++ b/mingw-w64-connect/PKGBUILD @@ -11,7 +11,7 @@ arch=('any') license=('GPL2+') url="https://bitbucket.org/gotoh/connect/overview" options=('strip') -source=("https://bitbucket.org/gotoh/${_realname}/get/${pkgver}.tar.bz2") +source=(${_realname}-${pkgver}.tar.bz2::"https://bitbucket.org/gotoh/${_realname}/get/${pkgver}.tar.bz2") sha1sums=('bc65ff2833142ae6bd49d469224bc2111f30e078') build() { diff --git a/mingw-w64-liboauth/PKGBUILD b/mingw-w64-liboauth/PKGBUILD index 15ea1b98b3..622de6aec1 100644 --- a/mingw-w64-liboauth/PKGBUILD +++ b/mingw-w64-liboauth/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Andrea Zagli _realname=liboauth +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.3 pkgrel=4 diff --git a/mingw-w64-libvorbis/PKGBUILD b/mingw-w64-libvorbis/PKGBUILD index 8d262afe24..7098ffeea3 100644 --- a/mingw-w64-libvorbis/PKGBUILD +++ b/mingw-w64-libvorbis/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=libvorbis +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.5 pkgrel=1 From 46239136416a17900aa6b1106736595fe119d64b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 18:20:09 +0300 Subject: [PATCH 1489/2060] qt-creator: Update to 3.5.0 --- mingw-w64-qtcreator/PKGBUILD | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 4aa189fc8c..477b5019b2 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -2,11 +2,12 @@ # Maintainer: Ray Donnelly _realname=qt-creator +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -__pre=-beta1 +__pre= _base_ver=3.5.0 pkgver=${_base_ver}${_pre} -pkgrel=2 +pkgrel=1 pkgdesc='Cross-patform IDE (mingw-w64)' url='http://qt-project.org' install=qt-creator-${CARCH}.install @@ -26,8 +27,8 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-gdb: for the debugger" #'bzr: for bazaar support' ) _pkgfqn="${_realname}-opensource-src-${_base_ver}${__pre}" -source=(http://download.qt-project.org/development_releases/qtcreator/${_base_ver%.*}/${_base_ver}${__pre}/${_pkgfqn}.tar.gz - #http://download.qt-project.org/official_releases/qtcreator/${pkgver%.*}/${pkgver}/${_pkgfqn}.tar.gz +source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_ver%.*}/${_base_ver}${__pre}/${_pkgfqn}.tar.gz + http://download.qt-project.org/official_releases/qtcreator/${pkgver%.*}/${pkgver}/${_pkgfqn}.tar.gz qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch qt-creator-3.2.0-Allow-iOS-plugin-on-any-platform.patch qt-creator-3.2.0-Define-QBS_INSTALL_DIR-as-relative-path.patch @@ -40,7 +41,7 @@ source=(http://download.qt-project.org/development_releases/qtcreator/${_base_ve qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch) noextract=(${_pkgfqn}.tar.gz) -sha256sums=('e1a1c7daf7fb47bf3df1183c342d263ad4333120394d857b52c6ba58116d1148' +sha256sums=('5dc35f81b50d65243a6ae046125061051d03c3d50937a37e29e0669384bb0eb6' '3197763396b90e640e7897c648d48d6ca906df5b3a4bc343a7e1bfdf05f07cef' '96c14f54577bf6cadf5c12018745666a9e99cd8d6a876c29a28b13599a8cb368' '68133c95b70c1b54e55ab4c8b31023afe4ab9a33667e4510bda64c828b95e91e' From c1dee508abe374692cb9a4eb85366a96f04e48c4 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 21 Aug 2015 18:31:50 +0300 Subject: [PATCH 1490/2060] git-repo: Improve --- mingw-w64-git-repo/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-git-repo/PKGBUILD b/mingw-w64-git-repo/PKGBUILD index 0d40e57bd7..d1969dc1f3 100644 --- a/mingw-w64-git-repo/PKGBUILD +++ b/mingw-w64-git-repo/PKGBUILD @@ -1,4 +1,5 @@ _realname=git-repo +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.3.17 pkgrel=1 @@ -8,8 +9,8 @@ url="https://github.com/esrlabs/git-repo" license=("Apache-2.0") groups=("${MINGW_PACKAGE_PREFIX}") depends=("${MINGW_PACKAGE_PREFIX}-python3") -source=("https://github.com/esrlabs/${_realname}/archive/v${pkgver}.tar.gz") -md5sums=("87b9bf38003ebed8b0692bf36b8f4c3e") +source=(${_realname}-${pkgver}.tar.gz::"https://github.com/esrlabs/${_realname}/archive/v${pkgver}.tar.gz") +md5sums=('87b9bf38003ebed8b0692bf36b8f4c3e') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From bf1db22b2807c3805bc0ed4573e45703dd0decd8 Mon Sep 17 00:00:00 2001 From: Evgenii Pashkin Date: Sat, 22 Aug 2015 00:29:38 +0300 Subject: [PATCH 1491/2060] Add groff dependency in clang --- mingw-w64-clang/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 4c70015739..8c744ea602 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -18,7 +18,7 @@ license=("custom:University of Illinois/NCSA Open Source License") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python3-sphinx" - "python2" "tar") + "python2" "tar" "groff") depends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} From 8ef4b5b8e455168f2cc6fbd874bfff3c2b6481d3 Mon Sep 17 00:00:00 2001 From: Evgenii Pashkin Date: Fri, 21 Aug 2015 20:56:17 +0300 Subject: [PATCH 1492/2060] Update validpgpkeys --- mingw-w64-clang/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 8c744ea602..e4c696c4d7 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -56,7 +56,7 @@ sha256sums=('f60dc158bfda6822de167e87275848969f0558b3134892ff54fced87e4667b94' '0804146b32138d55c611336cc81e1783c29a8fab0fe62f248ba1ad7acc711c4d' '13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de') -validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') +validpgpkeys=('11E521D646982372EB577A1F8F0871F202119294') noextract=(cfe-${pkgver}.src.tar.xz libcxx-${pkgver}.src.tar.xz lldb-${pkgver}.src.tar.xz From 00e0670d7a22dbf5c21e7c8f394a872fa4654b1a Mon Sep 17 00:00:00 2001 From: qme5400 Date: Sun, 23 Aug 2015 17:03:55 +0200 Subject: [PATCH 1493/2060] mpg123 version 1.22.4 --- mingw-w64-mpg123/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mpg123/PKGBUILD b/mingw-w64-mpg123/PKGBUILD index 4050863899..acd1436f56 100644 --- a/mingw-w64-mpg123/PKGBUILD +++ b/mingw-w64-mpg123/PKGBUILD @@ -2,7 +2,7 @@ _realname=mpg123 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.22.3 +pkgver=1.22.4 pkgrel=1 pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3 (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ options=('strip' 'staticlibs' 'libtool') source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2"{,.sig} 0001-update-ac-and-silent-rules.mingw.patch 0002-openal-library.patch) -md5sums=('fca857bc5ad0d2070cd38bd5f0f85f1c' +md5sums=('2dfafae3bbc532b4c8b04a77c6a6de89' 'SKIP' '5d01842fa623f7bb53bf22be64aa042d' '9ac9a255f3ab3043915ceec455ccdbec') From 0ee7fdc874da81bb70634d1991c4c09f51fa5445 Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Wed, 12 Aug 2015 02:32:38 +0200 Subject: [PATCH 1494/2060] universal-ctags-git: New package --- mingw-w64-universal-ctags-git/PKGBUILD | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 mingw-w64-universal-ctags-git/PKGBUILD diff --git a/mingw-w64-universal-ctags-git/PKGBUILD b/mingw-w64-universal-ctags-git/PKGBUILD new file mode 100644 index 0000000000..76b61b29a7 --- /dev/null +++ b/mingw-w64-universal-ctags-git/PKGBUILD @@ -0,0 +1,42 @@ +# Maintainer: Oscar Fuentes + +_realname=ctags +pkgname="${MINGW_PACKAGE_PREFIX}-universal-${_realname}-git" +pkgver=r2611.44688c7 +pkgrel=1 +pkgdesc="A maintained Ctags implementation (mingw-w64)" +arch=('any') +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +url="https://github.com/universal-ctags/ctags" +license=("GPL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv") +options=('staticlibs' 'strip') +source=("git+https://github.com/universal-ctags/ctags.git") +md5sums=('SKIP') + +pkgver() { + cd "${_realname}" + printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +build() { + cd ${srcdir}/${_realname} + autoreconf -fiv + mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --disable-etags \ + --disable-external-sort \ + --enable-iconv + make +} + +package() { + cd "${srcdir}/build-${CARCH}" + make prefix="${pkgdir}/${MINGW_PREFIX}" install +} From 9e2586ea055eacd7d333a2355e9362755cf9d9ff Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Sun, 23 Aug 2015 23:39:28 +0300 Subject: [PATCH 1495/2060] Add glbinding package --- mingw-w64-glbinding/PKGBUILD | 63 +++++++++++++++++++++ mingw-w64-glbinding/werror-conversion.patch | 19 +++++++ 2 files changed, 82 insertions(+) create mode 100644 mingw-w64-glbinding/PKGBUILD create mode 100644 mingw-w64-glbinding/werror-conversion.patch diff --git a/mingw-w64-glbinding/PKGBUILD b/mingw-w64-glbinding/PKGBUILD new file mode 100644 index 0000000000..969a2138ad --- /dev/null +++ b/mingw-w64-glbinding/PKGBUILD @@ -0,0 +1,63 @@ +# Contributor: Nazar Mishturak + +_realname=glbinding +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.1.0 +pkgrel=1 +arch=('any') +url="https://github.com/cginternals/glbinding" +pkgdesc="A C++ binding for the OpenGL API, generated using the gl.xml specification. (mingw-w64)" +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") +license=('MIT') +options=('strip' 'staticlibs') +source=('https://github.com/cginternals/glbinding/archive/v1.1.0.tar.gz' +'werror-conversion.patch') +md5sums=('fe6517dc1aa5f81d56ee060073da0f44' + 'c6477823eb997c97fc77d1a74c8b6607') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i "${srcdir}/werror-conversion.patch" +} + +build() { + cd "${srcdir}/${_realname}-${pkgver}" + + # Build static libs + [[ -d ${srcdir}/static-${MINGW_CHOST} ]] && rm -rf ${srcdir}/static-${MINGW_CHOST} + mkdir -p ${srcdir}/static-${MINGW_CHOST} + cd ${srcdir}/static-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_C_COMPILER=${MINGW_CHOST}-gcc \ + -DBUILD_SHARED_LIBS=ON \ + ../${_realname}-${pkgver} + make + + # Build shared libs + [[ -d ${srcdir}/shared-${MINGW_CHOST} ]] && rm -rf ${srcdir}/shared-${MINGW_CHOST} + mkdir -p ${srcdir}/shared-${MINGW_CHOST} + cd ${srcdir}/shared-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_C_COMPILER=${MINGW_CHOST}-gcc \ + -DBUILD_SHARED_LIBS=OFF \ + ../${_realname}-${pkgver} + make + +} + +package () { + cd "${srcdir}/static-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install + + cd "${srcdir}/shared-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install +} diff --git a/mingw-w64-glbinding/werror-conversion.patch b/mingw-w64-glbinding/werror-conversion.patch new file mode 100644 index 0000000000..adc123b705 --- /dev/null +++ b/mingw-w64-glbinding/werror-conversion.patch @@ -0,0 +1,19 @@ +diff -aur glbinding-1.1.0/source/glbinding/source/callbacks.cpp glbinding-1.1.0.new/source/glbinding/source/callbacks.cpp +--- glbinding-1.1.0/source/glbinding/source/callbacks.cpp 2015-04-08 18:20:30.000000000 +0300 ++++ glbinding-1.1.0.new/source/glbinding/source/callbacks.cpp 2015-08-23 23:27:53.424091000 +0300 +@@ -77,13 +77,13 @@ + { + using microseconds = std::chrono::microseconds; + microseconds now_micros = std::chrono::duration_cast(timestamp.time_since_epoch()); +- std::size_t micros = now_micros.count() % 1000; ++ auto micros = now_micros.count() % 1000; + std::ostringstream micros_os; + micros_os << std::setfill('0') << std::setw(3) << micros; + + using milliseconds = std::chrono::milliseconds; + milliseconds now_millis = std::chrono::duration_cast(now_micros); +- std::size_t millis = now_millis.count() % 1000; ++ auto millis = now_millis.count() % 1000; + std::ostringstream millis_os; + millis_os << std::setfill('0') << std::setw(3) << millis; + From 1d57b8c1e823466a94a5d47d0c046f64f4ddffa4 Mon Sep 17 00:00:00 2001 From: "U-BFH\\mht1" Date: Mon, 24 Aug 2015 15:51:10 +0200 Subject: [PATCH 1496/2060] Add German aspell dictionary package. The package is derived from the mingw-w64-aspell-en package. Package name/version, description, source URL and checksums have been adjusted in PKGBUILD. The patch for the configure script has been recreated for the German dictionary configure script to set correctly the dictdir and datadir variables. --- mingw-w64-aspell-de/001-unixy-dirs.patch | 15 ++++++++++ mingw-w64-aspell-de/PKGBUILD | 36 ++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 mingw-w64-aspell-de/001-unixy-dirs.patch create mode 100644 mingw-w64-aspell-de/PKGBUILD diff --git a/mingw-w64-aspell-de/001-unixy-dirs.patch b/mingw-w64-aspell-de/001-unixy-dirs.patch new file mode 100644 index 0000000000..c37d462182 --- /dev/null +++ b/mingw-w64-aspell-de/001-unixy-dirs.patch @@ -0,0 +1,15 @@ +--- aspell6-de-20030222-1/configure.orig 2015-08-21 17:45:17.008196500 +0200 ++++ aspell6-de-20030222-1/configure 2015-08-21 17:46:06.620617000 +0200 +@@ -73,10 +73,12 @@ if test x = "x$PREZIP" + + echo $ECHO_N "Finding Dictionary file location ... $ECHO_C" + dictdir=`$ASPELL dump config dict-dir` ++dictdir=`cygpath -u $dictdir` + echo $dictdir + + echo $ECHO_N "Finding Data file location ... $ECHO_C" + datadir=`$ASPELL dump config data-dir` ++datadir=`cygpath -u $datadir` + echo $datadir + + echo "ASPELL = `which $ASPELL`" > Makefile diff --git a/mingw-w64-aspell-de/PKGBUILD b/mingw-w64-aspell-de/PKGBUILD new file mode 100644 index 0000000000..f57435b192 --- /dev/null +++ b/mingw-w64-aspell-de/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: Alexey Pavlov + +_realname=aspell-de +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=20030222 +pkgrel=1 +pkgdesc="German dictionary for aspell (mingw-w64)" +arch=('any') +url="http://aspell.net/" +license=('custom') +depends=("${MINGW_PACKAGE_PREFIX}-aspell") +source=(ftp://ftp.gnu.org/gnu/aspell/dict/de/aspell6-de-${pkgver}-1.tar.bz2 + 001-unixy-dirs.patch) +md5sums=('5950c5c8a36fc93d4d7616591bace6a6' + '71e32e4d2c2eeb14f3f358bb13dab1e1') +sha1sums=('a06b1153404f6d1f9bd8aa03d596c14093e561c7' + 'ffdb6ab423aa5772a411ec7c997d2472f72e8448') + +prepare() { + cd "${srcdir}/aspell6-de-${pkgver}-1" + patch -p1 -i ${srcdir}/001-unixy-dirs.patch +} + +build() { + cd "${srcdir}/aspell6-de-${pkgver}-1" + ./configure + sed -i 's/C\:\\msys64\\/\//' Makefile + make +} + +package() { + cd "${srcdir}/aspell6-de-${pkgver}-1" + make DESTDIR="${pkgdir}" install + + install -D -m644 Copyright "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From 8225965d2595b41d11d76f3d39ca3b4b7717ed8c Mon Sep 17 00:00:00 2001 From: "U-BFH\\mht1" Date: Mon, 24 Aug 2015 15:51:57 +0200 Subject: [PATCH 1497/2060] Add French aspell dictionary package. The package is derived from the mingw-w64-aspell-en package. Package name/version, description, source URL and checksums have been adjusted in PKGBUILD. The patch for the configure script has been recreated for the French dictionary configure script to set correctly the dictdir and datadir variables. --- mingw-w64-aspell-fr/001-unixy-dirs.patch | 15 ++++++++++ mingw-w64-aspell-fr/PKGBUILD | 36 ++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 mingw-w64-aspell-fr/001-unixy-dirs.patch create mode 100644 mingw-w64-aspell-fr/PKGBUILD diff --git a/mingw-w64-aspell-fr/001-unixy-dirs.patch b/mingw-w64-aspell-fr/001-unixy-dirs.patch new file mode 100644 index 0000000000..27817e4aab --- /dev/null +++ b/mingw-w64-aspell-fr/001-unixy-dirs.patch @@ -0,0 +1,15 @@ +--- aspell-fr-0.50-3/configure.orig 2015-08-24 15:25:37.040164200 +0200 ++++ aspell-fr-0.50-3/configure 2015-08-24 15:26:51.598072800 +0200 +@@ -69,10 +69,12 @@ if test x = "x$WORD_LIST_COMPRESS" + + echo $ECHO_N "Finding Dictionary file location ... $ECHO_C" + dictdir=`$ASPELL dump config dict-dir` ++dictdir=`cygpath -u $dictdir` + echo $dictdir + + echo $ECHO_N "Finding Data file location ... $ECHO_C" + datadir=`$ASPELL dump config data-dir` ++datadir=`cygpath -u $datadir` + echo $datadir + + echo "ASPELL = $ASPELL" > Makefile diff --git a/mingw-w64-aspell-fr/PKGBUILD b/mingw-w64-aspell-fr/PKGBUILD new file mode 100644 index 0000000000..ea7df8e6fb --- /dev/null +++ b/mingw-w64-aspell-fr/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: Alexey Pavlov + +_realname=aspell-fr +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.50 +pkgrel=1 +pkgdesc="French dictionary for aspell (mingw-w64)" +arch=('any') +url="http://aspell.net/" +license=('custom') +depends=("${MINGW_PACKAGE_PREFIX}-aspell") +source=(ftp://ftp.gnu.org/gnu/aspell/dict/fr/aspell-fr-${pkgver}-3.tar.bz2 + 001-unixy-dirs.patch) +md5sums=('53a2d05c4e8f7fabd3cefe24db977be7' + '2bdec16a2dc204a49378609f90fb436f') +sha1sums=('4712f81069eb20763aaf855f73b2819f4805f132' + 'f386c73e7bb57563850e980d723f2711608fd7ea') + +prepare() { + cd "${srcdir}/aspell-fr-${pkgver}-3" + patch -p1 -i ${srcdir}/001-unixy-dirs.patch +} + +build() { + cd "${srcdir}/aspell-fr-${pkgver}-3" + ./configure + sed -i 's/C\:\\msys64\\/\//' Makefile + make +} + +package() { + cd "${srcdir}/aspell-fr-${pkgver}-3" + make DESTDIR="${pkgdir}" install + + install -D -m644 Copyright "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From 9c77075aa35b2bba4683669b98ed9029023fe943 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 21 Aug 2015 13:59:59 +0000 Subject: [PATCH 1498/2060] Add the msmtp package This package provides a minimal SMTP client. Signed-off-by: Johannes Schindelin --- mingw-w64-msmtp/0001-include-winsock2.patch | 13 +++++ .../0002-dont-redefine-winver-constant.patch | 30 ++++++++++++ mingw-w64-msmtp/PKGBUILD | 48 +++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 mingw-w64-msmtp/0001-include-winsock2.patch create mode 100644 mingw-w64-msmtp/0002-dont-redefine-winver-constant.patch create mode 100644 mingw-w64-msmtp/PKGBUILD diff --git a/mingw-w64-msmtp/0001-include-winsock2.patch b/mingw-w64-msmtp/0001-include-winsock2.patch new file mode 100644 index 0000000000..974e98484e --- /dev/null +++ b/mingw-w64-msmtp/0001-include-winsock2.patch @@ -0,0 +1,13 @@ +diff --git a/src/msmtp.c b/src/msmtp.c +index 3c21d2e..fc1d408 100644 +--- a/src/msmtp.c ++++ b/src/msmtp.c +@@ -78,6 +78,8 @@ extern int optind; + + /* Default file names. */ + #ifdef W32_NATIVE ++#include ++ + #define SYSCONFFILE "msmtprc.txt" + #define USERCONFFILE "msmtprc.txt" + #define SYSNETRCFILE "netrc.txt" diff --git a/mingw-w64-msmtp/0002-dont-redefine-winver-constant.patch b/mingw-w64-msmtp/0002-dont-redefine-winver-constant.patch new file mode 100644 index 0000000000..3e672411e7 --- /dev/null +++ b/mingw-w64-msmtp/0002-dont-redefine-winver-constant.patch @@ -0,0 +1,30 @@ +diff --git a/src/net.c b/src/net.c +index 8793180..706bb51 100644 +--- a/src/net.c ++++ b/src/net.c +@@ -44,7 +44,9 @@ + #endif + #ifdef W32_NATIVE + # define WIN32_LEAN_AND_MEAN /* do not include more than necessary */ +-# define _WIN32_WINNT 0x0502 /* Windows XP SP2 or later */ ++# ifndef _WIN32_WINNT ++# define _WIN32_WINNT 0x0502 /* Windows XP SP2 or later */ ++# endif + # include + # include + #endif +diff --git a/src/tools.c b/src/tools.c +index 8c9efe1..6a8be58 100644 +--- a/src/tools.c ++++ b/src/tools.c +@@ -35,7 +35,9 @@ + #include + #ifdef W32_NATIVE + # define WIN32_LEAN_AND_MEAN /* do not include more than necessary */ +-# define _WIN32_WINNT 0x0502 /* Windows XP SP2 or later */ ++# ifndef _WIN32_WINNT ++# define _WIN32_WINNT 0x0502 /* Windows XP SP2 or later */ ++# endif + # include + # include + # include diff --git a/mingw-w64-msmtp/PKGBUILD b/mingw-w64-msmtp/PKGBUILD new file mode 100644 index 0000000000..055c16fa01 --- /dev/null +++ b/mingw-w64-msmtp/PKGBUILD @@ -0,0 +1,48 @@ +# Maintainer: Johannes Schindelin + +_realname=msmtp +pkgbase="mingw-w64-${_realname}" +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1.6.2 +tag=msmtp-${pkgver} +pkgrel=1 +pkgdesc="An SMTP client (mingw-w64)" +arch=('any') +license=('GPL2+') +url="http://msmtp.sourceforge.net/" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") +options=('strip') +source=("git://git.code.sf.net/p/msmtp/code#tag=${tag}" + '0001-include-winsock2.patch' + '0002-dont-redefine-winver-constant.patch') +sha1sums=('SKIP' + 'dbca2cf777e5c591f021168c83cb128f703153fe' + '295758aa2ad31540a4c0adde725d568210c2b356') + +prepare () { + cd ${srcdir}/code + + patch -p1 -i "${srcdir}/0001-include-winsock2.patch" + patch -p1 -i "${srcdir}/0002-dont-redefine-winver-constant.patch" + autoreconf -i + ./configure --prefix=${MINGW_PREFIX} + sed -i 's/-R\/mingw..\/lib//' src/Makefile + touch src/*.c +} + +build() { + cd ${srcdir}/code + + make +} + +package() { + cd ${srcdir}/code + + make DESTDIR="${pkgdir}" install +} From af74ffbaa54630e8d81d8838821f7b6f48a1bd73 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 25 Aug 2015 15:07:40 +0300 Subject: [PATCH 1499/2060] Improve PKGBUILD's --- mingw-w64-aspell-de/PKGBUILD | 1 + mingw-w64-aspell-en/PKGBUILD | 1 + mingw-w64-aspell-es/PKGBUILD | 1 + mingw-w64-aspell-fr/PKGBUILD | 1 + mingw-w64-aspell-ru/PKGBUILD | 1 + mingw-w64-aspell/PKGBUILD | 1 + mingw-w64-harfbuzz/PKGBUILD | 3 ++- mingw-w64-mpg123/PKGBUILD | 1 + 8 files changed, 9 insertions(+), 1 deletion(-) diff --git a/mingw-w64-aspell-de/PKGBUILD b/mingw-w64-aspell-de/PKGBUILD index f57435b192..cf52d3f9c9 100644 --- a/mingw-w64-aspell-de/PKGBUILD +++ b/mingw-w64-aspell-de/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=aspell-de +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=20030222 pkgrel=1 diff --git a/mingw-w64-aspell-en/PKGBUILD b/mingw-w64-aspell-en/PKGBUILD index 2f6428c562..5700043fea 100644 --- a/mingw-w64-aspell-en/PKGBUILD +++ b/mingw-w64-aspell-en/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=aspell-en +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=7.1 pkgrel=1 diff --git a/mingw-w64-aspell-es/PKGBUILD b/mingw-w64-aspell-es/PKGBUILD index 58ca6fb0f9..833c45db74 100644 --- a/mingw-w64-aspell-es/PKGBUILD +++ b/mingw-w64-aspell-es/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Oscar Fuentes _realname=aspell-es +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pkgver=1.11-2 pkgver=${_pkgver//-/.} diff --git a/mingw-w64-aspell-fr/PKGBUILD b/mingw-w64-aspell-fr/PKGBUILD index ea7df8e6fb..275a2d1647 100644 --- a/mingw-w64-aspell-fr/PKGBUILD +++ b/mingw-w64-aspell-fr/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=aspell-fr +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.50 pkgrel=1 diff --git a/mingw-w64-aspell-ru/PKGBUILD b/mingw-w64-aspell-ru/PKGBUILD index f4fdbd5f3d..bec2a004ed 100644 --- a/mingw-w64-aspell-ru/PKGBUILD +++ b/mingw-w64-aspell-ru/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=aspell-ru +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pkgver=0.99f7-1 pkgver=${_pkgver//-/.} diff --git a/mingw-w64-aspell/PKGBUILD b/mingw-w64-aspell/PKGBUILD index a536a61e70..e3ece81093 100644 --- a/mingw-w64-aspell/PKGBUILD +++ b/mingw-w64-aspell/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=aspell +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _date_ver=20131207 _ver_base=0.60.7 diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index f2cef71a28..c9cab81c00 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -2,6 +2,7 @@ # Contributor: Renato Silva _realname=harfbuzz +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.41 pkgrel=2 @@ -18,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cairo" "${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-glib2") options=('strip' 'staticlibs') -optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu") +optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu support") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") sha256sums=('d81aa53d0c02b437beeaac159d7fc16394d676bbce0860fb6f6a10b587dc057c') diff --git a/mingw-w64-mpg123/PKGBUILD b/mingw-w64-mpg123/PKGBUILD index acd1436f56..64528c4606 100644 --- a/mingw-w64-mpg123/PKGBUILD +++ b/mingw-w64-mpg123/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=mpg123 +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.22.4 pkgrel=1 From e676c1cf9b6483f29a4649aee19c65ebdbe45044 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 25 Aug 2015 15:08:04 +0300 Subject: [PATCH 1500/2060] taglib: Update to 1.10beta --- mingw-w64-taglib/PKGBUILD | 21 ++++++++----------- .../fix-redefinition-NOMINMAX.patch | 10 --------- mingw-w64-taglib/mingw-pkg-config.patch | 11 ---------- 3 files changed, 9 insertions(+), 33 deletions(-) delete mode 100644 mingw-w64-taglib/fix-redefinition-NOMINMAX.patch delete mode 100644 mingw-w64-taglib/mingw-pkg-config.patch diff --git a/mingw-w64-taglib/PKGBUILD b/mingw-w64-taglib/PKGBUILD index 85f7701bc2..930fac911b 100644 --- a/mingw-w64-taglib/PKGBUILD +++ b/mingw-w64-taglib/PKGBUILD @@ -1,30 +1,27 @@ # Maintainer: Alexey Pavlov _realname=taglib +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.9.1 -pkgrel=3 +pkgver=1.10beta +pkgrel=1 pkgdesc="A Library for reading and editing the meta-data of several popular audio formats (mingw-w64)" arch=('any') url="http://taglib.github.com" license=("GPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-cppunit") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-cppunit") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") options=('strip' 'staticlibs') source=(http://taglib.github.io/releases/${_realname}-${pkgver}.tar.gz - fix-finding-cppunit.patch - fix-redefinition-NOMINMAX.patch - mingw-pkg-config.patch) -md5sums=('0d35df96822bbd564c5504cb3c2e4d86' - '35acd6a8db64597d01eff718a4279e41' - '55421ca09d4f9d8bc426362d529b95aa' - 'e4c69d1ca60ec85b20776339f9094d3a') + fix-finding-cppunit.patch) +md5sums=('201cc2f937abe42794855496beda55e3' + '35acd6a8db64597d01eff718a4279e41') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/fix-finding-cppunit.patch - patch -p1 -i ${srcdir}/fix-redefinition-NOMINMAX.patch - patch -p1 -i ${srcdir}/mingw-pkg-config.patch } build() { diff --git a/mingw-w64-taglib/fix-redefinition-NOMINMAX.patch b/mingw-w64-taglib/fix-redefinition-NOMINMAX.patch deleted file mode 100644 index 4ec61d8c67..0000000000 --- a/mingw-w64-taglib/fix-redefinition-NOMINMAX.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- taglib-1.9.1/taglib/toolkit/trefcounter.h.orig 2014-04-20 20:30:13.837600000 +0400 -+++ taglib-1.9.1/taglib/toolkit/trefcounter.h 2014-04-20 20:31:11.167600000 +0400 -@@ -33,7 +33,6 @@ - # include - # define TAGLIB_ATOMIC_MAC - #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) --# define NOMINMAX - # include - # define TAGLIB_ATOMIC_WIN - #elif defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 401) \ diff --git a/mingw-w64-taglib/mingw-pkg-config.patch b/mingw-w64-taglib/mingw-pkg-config.patch deleted file mode 100644 index 14486bb2ab..0000000000 --- a/mingw-w64-taglib/mingw-pkg-config.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CMakeLists.txt.orig 2014-07-21 12:17:03.751000000 +0400 -+++ b/CMakeLists.txt 2014-07-21 12:17:10.973800000 +0400 -@@ -76,7 +76,7 @@ - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/taglib-config.cmd DESTINATION ${BIN_INSTALL_DIR}) - endif() - --if(NOT WIN32 AND NOT BUILD_FRAMEWORK) -+if(NOT WIN32 AND NOT BUILD_FRAMEWORK OR MINGW) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/taglib.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/taglib.pc ) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/taglib.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) - endif() From 4491dbc286ec04a2710ef4bcd5f9383334dd6102 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 25 Aug 2015 15:39:07 +0300 Subject: [PATCH 1501/2060] msmtp: Fix dependencies. Fix PKGBUILD logic. --- mingw-w64-msmtp/PKGBUILD | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/mingw-w64-msmtp/PKGBUILD b/mingw-w64-msmtp/PKGBUILD index 055c16fa01..5e94fcaa0e 100644 --- a/mingw-w64-msmtp/PKGBUILD +++ b/mingw-w64-msmtp/PKGBUILD @@ -11,38 +11,40 @@ arch=('any') license=('GPL2+') url="http://msmtp.sourceforge.net/" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-gnutls" - "${MINGW_PACKAGE_PREFIX}-libffi" - "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-gsasl" + "${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-libidn" + "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") options=('strip') -source=("git://git.code.sf.net/p/msmtp/code#tag=${tag}" - '0001-include-winsock2.patch' - '0002-dont-redefine-winver-constant.patch') +source=(${_realname}::"git://git.code.sf.net/p/msmtp/code#tag=${tag}" + '0001-include-winsock2.patch' + '0002-dont-redefine-winver-constant.patch') sha1sums=('SKIP' - 'dbca2cf777e5c591f021168c83cb128f703153fe' - '295758aa2ad31540a4c0adde725d568210c2b356') + 'dbca2cf777e5c591f021168c83cb128f703153fe' + '295758aa2ad31540a4c0adde725d568210c2b356') prepare () { - cd ${srcdir}/code + cd ${srcdir}/${_realname} patch -p1 -i "${srcdir}/0001-include-winsock2.patch" patch -p1 -i "${srcdir}/0002-dont-redefine-winver-constant.patch" autoreconf -i - ./configure --prefix=${MINGW_PREFIX} - sed -i 's/-R\/mingw..\/lib//' src/Makefile - touch src/*.c } build() { - cd ${srcdir}/code - + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + ../${_realname}/configure --prefix=${MINGW_PREFIX} + sed -i 's/-R\/mingw..\/lib//' src/Makefile + touch ${srcdir}/${_realname}/src/*.c make } package() { - cd ${srcdir}/code - - make DESTDIR="${pkgdir}" install + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR="${pkgdir}" install } From 28b67f30d02378cce6b299078635e6263239bfa7 Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Tue, 25 Aug 2015 19:52:51 +0300 Subject: [PATCH 1502/2060] Fixes to misplaced files --- mingw-w64-glbinding/PKGBUILD | 44 +++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/mingw-w64-glbinding/PKGBUILD b/mingw-w64-glbinding/PKGBUILD index 969a2138ad..69678265d0 100644 --- a/mingw-w64-glbinding/PKGBUILD +++ b/mingw-w64-glbinding/PKGBUILD @@ -1,17 +1,17 @@ -# Contributor: Nazar Mishturak +# Maintainer: Nazar Mishturak _realname=glbinding pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.0 pkgrel=1 arch=('any') -url="https://github.com/cginternals/glbinding" -pkgdesc="A C++ binding for the OpenGL API, generated using the gl.xml specification. (mingw-w64)" +url='https://github.com/cginternals/glbinding' +pkgdesc='A C++ binding for the OpenGL API, generated using the gl.xml specification. (mingw-w64)' depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") license=('MIT') -options=('strip' 'staticlibs') -source=('https://github.com/cginternals/glbinding/archive/v1.1.0.tar.gz' +options=('strip' 'staticlibs' 'docs') +source=(${_realname}-${pkgver}.tar.gz::'https://github.com/cginternals/glbinding/archive/v1.1.0.tar.gz' 'werror-conversion.patch') md5sums=('fe6517dc1aa5f81d56ee060073da0f44' 'c6477823eb997c97fc77d1a74c8b6607') @@ -24,6 +24,11 @@ prepare() { build() { cd "${srcdir}/${_realname}-${pkgver}" + local BUILD_TYPE="Release" + if check_option "debug" "y"; then + BUILD_TYPE="Debug" + fi + # Build static libs [[ -d ${srcdir}/static-${MINGW_CHOST} ]] && rm -rf ${srcdir}/static-${MINGW_CHOST} mkdir -p ${srcdir}/static-${MINGW_CHOST} @@ -32,9 +37,14 @@ build() { MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_C_COMPILER=${MINGW_CHOST}-gcc \ - -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_CXX_COMPILER=${MINGW_CHOST}-g++ \ + -DOPTION_BUILD_EXAMPLES=OFF \ + -DOPTION_BUILD_TESTS=OFF \ + -DOPTION_BUILD_TOOLS=OFF \ + -DOPTION_BUILD_STATIC=ON \ ../${_realname}-${pkgver} make @@ -46,9 +56,14 @@ build() { MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_C_COMPILER=${MINGW_CHOST}-gcc \ - -DBUILD_SHARED_LIBS=OFF \ + -DCMAKE_CXX_COMPILER=${MINGW_CHOST}-g++ \ + -DOPTION_BUILD_EXAMPLES=OFF \ + -DOPTION_BUILD_TESTS=OFF \ + -DOPTION_BUILD_TOOLS=OFF \ + -DOPTION_BUILD_STATIC=OFF \ ../${_realname}-${pkgver} make @@ -57,7 +72,20 @@ build() { package () { cd "${srcdir}/static-${MINGW_CHOST}" make DESTDIR=${pkgdir} install - + cd "${srcdir}/shared-${MINGW_CHOST}" make DESTDIR=${pkgdir} install + + # Some things need to be moved + cd "${pkgdir}${MINGW_PREFIX}" + + mkdir -p "lib/cmake/${_realname}" + mv -f "${_realname}-config.cmake" "lib/cmake/${_realname}/" + + mkdir -p "share/doc/${_realname}" + mv -f "AUTHORS" "share/doc/${_realname}/" + mv -f "gl.revision" "share/doc/${_realname}/" + mv -f "revision" "share/doc/${_realname}/" + mkdir -p "share/licenses/${_realname}" + mv -f "LICENSE" "share/licenses/${_realname}/" } From 80b1a88a83a88dc8b611b3a8f682e4a960baf441 Mon Sep 17 00:00:00 2001 From: nazar554 Date: Tue, 25 Aug 2015 21:10:25 +0300 Subject: [PATCH 1503/2060] Added pkgbase and fixed indentation --- mingw-w64-glbinding/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-glbinding/PKGBUILD b/mingw-w64-glbinding/PKGBUILD index 69678265d0..f597eb18ad 100644 --- a/mingw-w64-glbinding/PKGBUILD +++ b/mingw-w64-glbinding/PKGBUILD @@ -1,5 +1,6 @@ # Maintainer: Nazar Mishturak +pkgbase="mingw-w64-${_realname}" _realname=glbinding pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.0 @@ -12,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") license=('MIT') options=('strip' 'staticlibs' 'docs') source=(${_realname}-${pkgver}.tar.gz::'https://github.com/cginternals/glbinding/archive/v1.1.0.tar.gz' -'werror-conversion.patch') + 'werror-conversion.patch') md5sums=('fe6517dc1aa5f81d56ee060073da0f44' 'c6477823eb997c97fc77d1a74c8b6607') From b29d27386e8f82183deba20cb652a6fa61963c77 Mon Sep 17 00:00:00 2001 From: nazar554 Date: Tue, 25 Aug 2015 21:11:11 +0300 Subject: [PATCH 1504/2060] Moved pkgbase below realname --- mingw-w64-glbinding/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-glbinding/PKGBUILD b/mingw-w64-glbinding/PKGBUILD index f597eb18ad..7597b92625 100644 --- a/mingw-w64-glbinding/PKGBUILD +++ b/mingw-w64-glbinding/PKGBUILD @@ -1,7 +1,8 @@ # Maintainer: Nazar Mishturak -pkgbase="mingw-w64-${_realname}" + _realname=glbinding +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.0 pkgrel=1 From d527ec56ed85bd24333b13e47fdd50eb9f0e31b2 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 26 Aug 2015 08:47:05 +0300 Subject: [PATCH 1505/2060] glbindings: Use unix files layout for mingw. --- mingw-w64-glbinding/PKGBUILD | 32 +++++++++------------ mingw-w64-glbinding/mingw-unix-layout.patch | 31 ++++++++++++++++++++ 2 files changed, 44 insertions(+), 19 deletions(-) create mode 100644 mingw-w64-glbinding/mingw-unix-layout.patch diff --git a/mingw-w64-glbinding/PKGBUILD b/mingw-w64-glbinding/PKGBUILD index 7597b92625..5afdea436a 100644 --- a/mingw-w64-glbinding/PKGBUILD +++ b/mingw-w64-glbinding/PKGBUILD @@ -8,19 +8,26 @@ pkgver=1.1.0 pkgrel=1 arch=('any') url='https://github.com/cginternals/glbinding' -pkgdesc='A C++ binding for the OpenGL API, generated using the gl.xml specification. (mingw-w64)' +pkgdesc='A C++ binding for the OpenGL API, generated using the gl.xml specification (mingw-w64)' depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-glfw" + "${MINGW_PACKAGE_PREFIX}-python2") license=('MIT') options=('strip' 'staticlibs' 'docs') -source=(${_realname}-${pkgver}.tar.gz::'https://github.com/cginternals/glbinding/archive/v1.1.0.tar.gz' - 'werror-conversion.patch') +source=(${_realname}-${pkgver}.tar.gz::'https://github.com/cginternals/glbinding/archive/v${pkgver}.tar.gz' + 'werror-conversion.patch' + 'mingw-unix-layout.patch') md5sums=('fe6517dc1aa5f81d56ee060073da0f44' - 'c6477823eb997c97fc77d1a74c8b6607') + 'c6477823eb997c97fc77d1a74c8b6607' + 'b6bcd5f61d1bcfc7e2fa3005340e8b31') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i "${srcdir}/werror-conversion.patch" + patch -p1 -i "${srcdir}/mingw-unix-layout.patch" } build() { @@ -64,7 +71,7 @@ build() { -DCMAKE_CXX_COMPILER=${MINGW_CHOST}-g++ \ -DOPTION_BUILD_EXAMPLES=OFF \ -DOPTION_BUILD_TESTS=OFF \ - -DOPTION_BUILD_TOOLS=OFF \ + -DOPTION_BUILD_TOOLS=ON \ -DOPTION_BUILD_STATIC=OFF \ ../${_realname}-${pkgver} make @@ -77,17 +84,4 @@ package () { cd "${srcdir}/shared-${MINGW_CHOST}" make DESTDIR=${pkgdir} install - - # Some things need to be moved - cd "${pkgdir}${MINGW_PREFIX}" - - mkdir -p "lib/cmake/${_realname}" - mv -f "${_realname}-config.cmake" "lib/cmake/${_realname}/" - - mkdir -p "share/doc/${_realname}" - mv -f "AUTHORS" "share/doc/${_realname}/" - mv -f "gl.revision" "share/doc/${_realname}/" - mv -f "revision" "share/doc/${_realname}/" - mkdir -p "share/licenses/${_realname}" - mv -f "LICENSE" "share/licenses/${_realname}/" } diff --git a/mingw-w64-glbinding/mingw-unix-layout.patch b/mingw-w64-glbinding/mingw-unix-layout.patch new file mode 100644 index 0000000000..1fc1d50736 --- /dev/null +++ b/mingw-w64-glbinding/mingw-unix-layout.patch @@ -0,0 +1,31 @@ +--- glbinding-1.1.0/CMakeLists.txt.orig 2015-08-26 08:11:47.410400000 +0300 ++++ glbinding-1.1.0/CMakeLists.txt 2015-08-26 08:11:51.669200000 +0300 +@@ -97,7 +97,7 @@ + + # Installation paths + set(project ${META_PROJECT_NAME}) +-if(WIN32) ++if(MSVC) + + # "%PROGRAMFILES%//" + +@@ -185,7 +185,7 @@ + install(FILES AUTHORS DESTINATION ${INSTALL_ROOT} COMPONENT dev) + install(FILES LICENSE DESTINATION ${INSTALL_ROOT} COMPONENT dev) + install(FILES codegeneration/gl.revision DESTINATION ${INSTALL_ROOT} COMPONENT dev) +-install(FILES glbinding-config.cmake DESTINATION ${INSTALL_ROOT} COMPONENT dev) ++install(FILES glbinding-config.cmake DESTINATION ${INSTALL_LIB}/cmake/${project} COMPONENT dev) + + # Data files + if(OPTION_BUILD_EXAMPLES) +--- glbinding-1.1.0/glbinding-config.cmake.orig 2015-08-26 08:29:55.746400000 +0300 ++++ glbinding-1.1.0/glbinding-config.cmake 2015-08-26 08:30:51.953200000 +0300 +@@ -98,7 +98,7 @@ + + find(glbinding glbinding/glbinding_api.h ${LIB_PATHS}) + +-if (GLBINDING_LIBRARY AND WIN32) ++if (GLBINDING_LIBRARY AND MSVC) + set(GLBINDING_BINARIES "") + + find_file(GLBINDING_BINARY_RELEASE From c2d11f8d8dfeaf5c7fb950c530e36784a3da5811 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 26 Aug 2015 09:02:33 +0300 Subject: [PATCH 1506/2060] harfbuzz: Update to 1.0.2 --- mingw-w64-harfbuzz/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index c9cab81c00..62379882ba 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -4,8 +4,8 @@ _realname=harfbuzz pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.41 -pkgrel=2 +pkgver=1.0.2 +pkgrel=1 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/HarfBuzz" @@ -21,7 +21,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cairo" options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu support") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") -sha256sums=('d81aa53d0c02b437beeaac159d7fc16394d676bbce0860fb6f6a10b587dc057c') +sha256sums=('beb3caf8654010fcdca61c810a3a7532237fc567ee4271deb674b5efbbe3b466') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From b10a4c66ddf001d7467d43403fa6ecbefb002825 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 27 Aug 2015 01:13:46 +0100 Subject: [PATCH 1507/2060] qt5-static: Various fixes for CMake and more 1. CMake: Move the INTERFACE-only check before the STATIC check 2. CMake: REGEX replace -L$$[QT_INSTALL_LIBS] 3. More: Don't define QT_NO_SYSTEMSEMAPHORE or QT_NO_SHAREDMEMORY Fixes https://github.com/Alexpux/MINGW-packages/issues/762 --- ...earrange-STATIC-vs-INTERFACE-targets.patch | 35 ++++ ...to-use-static-builds-of-Qt-with-CMa.patch} | 10 +- ...ed-libraries-in-prl-files-for-CMake.patch} | 18 +-- ...te_cmake-prl-file-has-no-lib-prefix.patch} | 2 +- ...e-also-link-plugins-and-plugin-deps.patch} | 24 +-- ...ALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch | 10 ++ ...0-win32-g++-enable-qtwebengine-build.patch | 12 ++ ...orm-plugin-for-qcollectiongenerator.patch} | 0 ...Revert-Revert-fix-NTFS-mount-points.patch} | 0 ...T_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch | 152 ++++++++++++++++++ ...ace-segfaults-with-minimal-platform.patch} | 49 +++--- ...O_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch | 11 ++ mingw-w64-qt5-static/PKGBUILD | 108 +++++++++---- .../qt-5.3.0-static-qmake-conf.patch | 22 --- 14 files changed, 347 insertions(+), 106 deletions(-) create mode 100644 mingw-w64-qt5-static/0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch rename mingw-w64-qt5-static/{0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch => 0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch} (87%) rename mingw-w64-qt5-static/{0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch => 0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch} (57%) rename mingw-w64-qt5-static/{0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch => 0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch} (97%) rename mingw-w64-qt5-static/{0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch => 0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch} (92%) create mode 100644 mingw-w64-qt5-static/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch create mode 100644 mingw-w64-qt5-static/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch rename mingw-w64-qt5-static/{0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch => 0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch} (100%) rename mingw-w64-qt5-static/{0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch => 0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch} (100%) create mode 100644 mingw-w64-qt5-static/0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch rename mingw-w64-qt5-static/{0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch => 0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch} (72%) create mode 100644 mingw-w64-qt5-static/0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch delete mode 100644 mingw-w64-qt5-static/qt-5.3.0-static-qmake-conf.patch diff --git a/mingw-w64-qt5-static/0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch b/mingw-w64-qt5-static/0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch new file mode 100644 index 0000000000..055ac6d30e --- /dev/null +++ b/mingw-w64-qt5-static/0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch @@ -0,0 +1,35 @@ +From 1f36ecb8823d607883aabfee07d9a0c03982257b Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 26 Aug 2015 12:45:43 +0100 +Subject: [PATCH 38/38] cmake: Rearrange STATIC vs INTERFACE targets + +Otherwise we attempt to add_library(Qt5::UiPlugin STATIC IMPORTED) +for header-only modules when building Qt5 statically. +--- + mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +index d2358ca..6b1dc95 100644 +--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in ++++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +@@ -222,13 +222,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) + endif() + !!ENDIF + ++!!IF equals(TEMPLATE, aux) ++ add_library(Qt5::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED) ++!!ELSE + !!IF !isEmpty(CMAKE_STATIC_TYPE) + add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") + !!ELSE +-!!IF equals(TEMPLATE, aux) +- add_library(Qt5::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED) +-!!ELSE + add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) + !!ENDIF + !!ENDIF +-- +2.5.0 + diff --git a/mingw-w64-qt5-static/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch b/mingw-w64-qt5-static/0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch similarity index 87% rename from mingw-w64-qt5-static/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch rename to mingw-w64-qt5-static/0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch index b45c4b454c..bdd42d50e1 100644 --- a/mingw-w64-qt5-static/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch +++ b/mingw-w64-qt5-static/0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch @@ -1,7 +1,7 @@ -diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in ---- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 10:34:57.668743500 +0000 -+++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 14:40:54.557845500 +0000 -@@ -57,13 +57,13 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:00:26.576032700 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:00:42.742765400 +0100 +@@ -65,13 +65,13 @@ !!ENDIF _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES @@ -17,7 +17,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c ) !!IF !isEmpty(CMAKE_WINDOWS_BUILD) -@@ -197,6 +197,40 @@ +@@ -228,6 +228,40 @@ !!IF !isEmpty(CMAKE_STATIC_TYPE) add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") diff --git a/mingw-w64-qt5-static/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch b/mingw-w64-qt5-static/0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch similarity index 57% rename from mingw-w64-qt5-static/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch rename to mingw-w64-qt5-static/0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch index b84c06071b..48461ff5b4 100644 --- a/mingw-w64-qt5-static/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch +++ b/mingw-w64-qt5-static/0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch @@ -1,7 +1,7 @@ -diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in ---- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 15:16:58.576095000 +0000 -+++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-14 10:10:27.960078400 +0000 -@@ -209,9 +209,8 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:06:08.512109600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:06:33.366637700 +0100 +@@ -240,9 +240,8 @@ # all the right information. macro(macro_process_prl_file prl_file_location Configuration) if (EXISTS \"${prl_file_location}\") @@ -13,12 +13,12 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) set(_list_sep \";\") endif() -diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/qmake/generators/makefile.cpp qt-everywhere-opensource-src-5.4.0/qtbase/qmake/generators/makefile.cpp ---- qt-everywhere-opensource-src-5.4.0.orig/qtbase/qmake/generators/makefile.cpp 2014-12-13 15:16:49.416878800 +0000 -+++ qt-everywhere-opensource-src-5.4.0/qtbase/qmake/generators/makefile.cpp 2014-12-14 10:11:38.093945800 +0000 -@@ -1009,6 +1009,13 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/qmake/generators/makefile.cpp qt-everywhere-opensource-src-5.5.0/qtbase/qmake/generators/makefile.cpp +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/qmake/generators/makefile.cpp 2015-08-26 14:29:10.131124600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/qmake/generators/makefile.cpp 2015-08-26 15:06:33.375635900 +0100 +@@ -1006,6 +1006,13 @@ for (ProStringList::Iterator it = libs.begin(); it != libs.end(); ++it) - t << project->values((*it).toKey()).join(' ').replace('\\', "\\\\") << " "; + t << qv(project->values((*it).toKey())); t << endl; + t << "QMAKE_PRL_LIBS_FOR_CMAKE = "; + QString sep; diff --git a/mingw-w64-qt5-static/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch b/mingw-w64-qt5-static/0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch similarity index 97% rename from mingw-w64-qt5-static/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch rename to mingw-w64-qt5-static/0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch index a7bd7384c1..dc83b1a1d2 100644 --- a/mingw-w64-qt5-static/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch +++ b/mingw-w64-qt5-static/0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch @@ -1,6 +1,6 @@ --- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/create_cmake.prf.orig 2014-12-14 20:11:38.710428500 +0000 +++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/create_cmake.prf 2014-12-14 22:16:48.451709600 +0000 -@@ -214,8 +214,8 @@ +@@ -233,8 +233,8 @@ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.a CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a diff --git a/mingw-w64-qt5-static/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch b/mingw-w64-qt5-static/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch similarity index 92% rename from mingw-w64-qt5-static/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch rename to mingw-w64-qt5-static/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch index f4f3f29554..949c6e4ac9 100644 --- a/mingw-w64-qt5-static/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch +++ b/mingw-w64-qt5-static/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch @@ -1,7 +1,7 @@ -diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in ---- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-01-03 22:54:41.110170600 +0000 -+++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-01-03 22:58:39.875293700 +0000 -@@ -56,14 +56,17 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:31:26.194016900 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:21:30.905016900 +0100 +@@ -64,14 +64,17 @@ set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\") !!ENDIF _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) @@ -21,7 +21,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c ) !!IF !isEmpty(CMAKE_WINDOWS_BUILD) -@@ -207,17 +210,31 @@ +@@ -238,17 +241,31 @@ # Parse the prl files generated by qmake to get the link dependencies. They # contain all the information we need, and they are the only location with # all the right information. @@ -55,7 +55,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) macro_process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG) !!ELSE -@@ -230,6 +247,7 @@ +@@ -261,6 +278,7 @@ !!ENDIF # Excerpt from: end @@ -63,7 +63,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!ELSE add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) !!ENDIF -@@ -242,6 +260,46 @@ +@@ -276,6 +294,46 @@ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) @@ -110,9 +110,9 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_RELEASE_TYPE) !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) -@@ -316,38 +363,6 @@ - - !!ENDIF // CMAKE_DEBUG_TYPE +@@ -356,37 +414,6 @@ + ) + !!ENDIF // TEMPLATE != aux - file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") - unset(pluginTargets) @@ -145,7 +145,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c - endforeach() - endif() - -- + !!IF !isEmpty(CMAKE_MODULE_EXTRAS) include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") - !!ENDIF + diff --git a/mingw-w64-qt5-static/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch b/mingw-w64-qt5-static/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch new file mode 100644 index 0000000000..ccafe53227 --- /dev/null +++ b/mingw-w64-qt5-static/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch @@ -0,0 +1,10 @@ +--- qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2015-08-26 22:43:13.887276700 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 22:53:40.759131700 +0100 +@@ -248,6 +248,7 @@ + macro(macro_process_prl_file prl_file_location Configuration) + if (EXISTS \"${prl_file_location}\") + file(STRINGS \"${prl_file_location}\" prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE\") ++ string(REGEX REPLACE "\\$\\$\\[QT_INSTALL_LIBS\\]" "$${CMAKE_MODULE_NAME}_install_prefix}/lib" static_depends ${static_depends}) + string(REGEX REPLACE \"QMAKE_PRL_LIBS_FOR_CMAKE *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings} ) + if (_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES) + set(_list_sep \";\") diff --git a/mingw-w64-qt5-static/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch b/mingw-w64-qt5-static/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch new file mode 100644 index 0000000000..0ee3e6be77 --- /dev/null +++ b/mingw-w64-qt5-static/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch @@ -0,0 +1,12 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtwebengine/tools/qmake/mkspecs/features/functions.prf qt-everywhere-opensource-src-5.5.0/qtwebengine/tools/qmake/mkspecs/features/functions.prf +--- qt-everywhere-opensource-src-5.5.0.orig/qtwebengine/tools/qmake/mkspecs/features/functions.prf 2015-08-26 14:34:22.019269600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtwebengine/tools/qmake/mkspecs/features/functions.prf 2015-08-26 15:34:44.547516900 +0100 +@@ -14,7 +14,7 @@ + + linux-g++*:!isGCCVersionSupported(): return(false) + !isPythonVersionSupported(): return(false) +- linux-g++*|win32-msvc2013|macx-clang: return(true) ++ linux-g++*|win32-*|macx-clang: return(true) + boot2qt: return(true) + + skipBuild("Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.") diff --git a/mingw-w64-qt5-static/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch b/mingw-w64-qt5-static/0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch similarity index 100% rename from mingw-w64-qt5-static/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch rename to mingw-w64-qt5-static/0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch diff --git a/mingw-w64-qt5-static/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch b/mingw-w64-qt5-static/0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch similarity index 100% rename from mingw-w64-qt5-static/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch rename to mingw-w64-qt5-static/0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch diff --git a/mingw-w64-qt5-static/0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch b/mingw-w64-qt5-static/0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch new file mode 100644 index 0000000000..a822acb72e --- /dev/null +++ b/mingw-w64-qt5-static/0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch @@ -0,0 +1,152 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/configureapp.cpp qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/configureapp.cpp +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/configureapp.cpp 2015-08-26 14:29:09.999124600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/configureapp.cpp 2015-08-26 15:41:02.749516900 +0100 +@@ -3448,6 +3448,9 @@ + // FIXME: add detection + configStream << " QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib" << endl; + configStream << " QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include" << endl; ++ } else { ++ configStream << " QMAKE_DEFAULT_LIBDIRS = " << Environment::detectCompilerDefaultLibDirs() << endl; ++ configStream << " QMAKE_DEFAULT_INCDIRS = " << Environment::detectCompilerDefaultIncDirs() << endl; + } + configStream << "}" << endl; + configStream << "QT_CONFIG += " << qtConfig.join(' ') << endl; +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/environment.cpp qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/environment.cpp +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/environment.cpp 2015-08-26 14:29:10.004624600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/environment.cpp 2015-08-26 15:41:02.742516900 +0100 +@@ -40,6 +40,8 @@ + #include + #include + #include ++#include ++#include + + #include + #include +@@ -249,6 +251,112 @@ + #endif + }; + ++/* Returns the exit-code. */ ++int Environment::compileSomething(const QString &flags, const QString &code, QString &stdOut, QString &stdErr) ++{ ++ CompilerInfo *info = compilerInfo(detectCompiler()); ++ int returnCode = 1; ++ if (info) { ++ QTemporaryFile tmpIn("conftestXXXXXX.cpp"); ++ QString tmpOutFileName; ++ { ++ QTemporaryFile tmpOut("conftestXXXXXX.o"); ++ tmpOut.open(); ++ tmpOut.close(); ++ tmpOutFileName = tmpOut.fileName(); ++ } ++ QString tmpStdErrFileName; ++ { ++ QTemporaryFile tmpStdErr("conftestXXXXXX.stderr"); ++ tmpStdErr.open(); ++ tmpStdErr.close(); ++ tmpStdErrFileName = tmpStdErr.fileName(); ++ } ++ if (tmpIn.open()) { ++ tmpIn.write(code.toUtf8()); ++ tmpIn.close(); ++ QString cmd = info->executable + QString(" ") + flags ++ + QString(" -o ") + tmpOutFileName ++ + QString(" ") + tmpIn.fileName() + " 2>" + tmpStdErrFileName; ++ stdOut = Environment::execute(cmd, &returnCode); ++ QFile tmpStdErr(tmpStdErrFileName); ++ if (tmpStdErr.open(QIODevice::ReadOnly | QIODevice::Text)) { ++ stdErr = tmpStdErr.readAll(); ++ tmpStdErr.close(); ++ tmpStdErr.remove(); ++ } ++ QFile::remove(tmpOutFileName); ++ } ++ } ++ return returnCode; ++} ++ ++QString Environment::detectCompilerDefaultIncDirs() ++{ ++ QString stdOut; ++ QString stdErr; ++ int returnCode = Environment::compileSomething("-v ", "", stdOut, stdErr); ++ QStringList result; ++ int index = stdErr.indexOf("<...>"); ++ if (index != -1) { ++ index = stdErr.indexOf("\n", index); ++ int lastIndex = index; ++ while (lastIndex != -1) { ++ if (stdErr[lastIndex + 1] != ' ') ++ break; ++ lastIndex += 2; ++ index = stdErr.indexOf("\n", lastIndex + 1); ++ if (index != -1) { ++ const QString newPath(QDir::cleanPath(stdErr.mid(lastIndex, index - lastIndex))); ++ if (result.indexOf(newPath) == -1) ++ result.append(newPath); ++ } ++ lastIndex = index; ++ } ++ } ++ Q_UNUSED(returnCode); ++ QString resultString; ++ for (int i = 0; i < result.count(); ++i) { ++ resultString.append(result[i]); ++ if ( i != result.count() - 1) ++ resultString.append(" "); ++ } ++ return resultString; ++} ++ ++QString Environment::detectCompilerDefaultLibDirs() ++{ ++ QString stdOut; ++ QString stdErr; ++ int returnCode = Environment::compileSomething("-v ", "", stdOut, stdErr); ++ QStringList result; ++ int index = stdErr.indexOf("LIBRARY_PATH"); ++ if (index != -1) { ++ index += strlen("LIBRARY_PATH"); ++ int lastIndex = index; ++ while (lastIndex != -1) { ++ if (stdErr[lastIndex + 1] == '\n') ++ break; ++ index = stdErr.indexOf(";", lastIndex + 1); ++ if (index != -1) { ++ const QString newPath(QDir::cleanPath(stdErr.mid(lastIndex + 1, index - lastIndex - 1))); ++ if (result.indexOf(newPath) == -1) ++ result.append(newPath); ++ } ++ lastIndex = index; ++ } ++ } ++ Q_UNUSED(returnCode); ++ QString resultString; ++ for (int i = 0; i < result.count(); ++i) { ++ resultString.append(result[i]); ++ if ( i != result.count() - 1) ++ resultString.append(" "); ++ } ++ return resultString; ++} ++ ++ + /*! + Creates a commandling from \a program and it \a arguments, + escaping characters that needs it. +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/environment.h qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/environment.h +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/environment.h 2015-08-26 14:29:10.018624600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/environment.h 2015-08-26 15:41:02.735516900 +0100 +@@ -58,6 +58,10 @@ + static Compiler compilerFromQMakeSpec(const QString &qmakeSpec); + static QString gccVersion(); + ++ static int compileSomething(const QString &flags, const QString &code, QString &stdOut, QString &stdErr); ++ static QString detectCompilerDefaultIncDirs(); ++ static QString detectCompilerDefaultLibDirs(); ++ + static int execute(QStringList arguments, const QStringList &additionalEnv, const QStringList &removeEnv); + static QString execute(const QString &command, int *returnCode = 0); + static bool cpdir(const QString &srcDir, const QString &destDir); diff --git a/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch b/mingw-w64-qt5-static/0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch similarity index 72% rename from mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch rename to mingw-w64-qt5-static/0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch index 0e113e5e97..7c6e68ebe4 100644 --- a/mingw-w64-qt5-static/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch +++ b/mingw-w64-qt5-static/0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch @@ -1,5 +1,24 @@ ---- x86_64/qtbase/src/widgets/dialogs/qwizard_win.cpp.orig 2015-06-26 13:39:31.574885900 +0100 -+++ x86_64/qtbase/src/widgets/dialogs/qwizard_win.cpp 2015-06-26 13:43:07.366287900 +0100 +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/dialogs/qmessagebox.cpp qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/dialogs/qmessagebox.cpp +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/dialogs/qmessagebox.cpp 2015-08-26 14:28:59.145124600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/dialogs/qmessagebox.cpp 2015-08-26 15:46:50.092516900 +0100 +@@ -68,9 +68,11 @@ + #if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) + HMENU qt_getWindowsSystemMenu(const QWidget *w) + { +- if (QWindow *window = QApplicationPrivate::windowForWidget(w)) +- if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) +- return GetSystemMenu(reinterpret_cast(handle), false); ++ if (QGuiApplication::platformNativeInterface()) { ++ if (QWindow *window = QApplicationPrivate::windowForWidget(w)) ++ if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) ++ return GetSystemMenu(reinterpret_cast(handle), false); ++ } + return 0; + } + #endif +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/dialogs/qwizard_win.cpp qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/dialogs/qwizard_win.cpp +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/dialogs/qwizard_win.cpp 2015-08-26 14:28:59.139624600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/dialogs/qwizard_win.cpp 2015-08-26 15:46:50.084516900 +0100 @@ -288,10 +288,11 @@ // The dynamic property takes effect when creating the platform window. window->setProperty("_q_windowsCustomMargins", customMarginsV); @@ -16,7 +35,7 @@ } } } -@@ -666,6 +667,8 @@ +@@ -685,6 +686,8 @@ // wizard is a child window. HDC QVistaHelper::backingStoreDC(const QWidget *wizard, QPoint *offset) { @@ -25,7 +44,7 @@ HDC hdc = static_cast(QGuiApplication::platformNativeInterface()->nativeResourceForBackingStore(QByteArrayLiteral("getDC"), wizard->backingStore())); *offset = QPoint(0, 0); if (!wizard->windowHandle()) -@@ -680,7 +683,7 @@ +@@ -699,7 +702,7 @@ // Do not use winId() as this enforces native children of the parent // widget when called before show() as happens when calling setWizardStyle(). if (QWindow *window = wizard->windowHandle()) @@ -34,25 +53,9 @@ if (void *vHwnd = QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("handle"), window)) return static_cast(vHwnd); qWarning().nospace() << "Failed to obtain HWND for wizard."; ---- x86_64/qtbase/src/widgets/dialogs/qmessagebox.cpp.orig 2015-06-26 13:39:36.597523700 +0100 -+++ x86_64/qtbase/src/widgets/dialogs/qmessagebox.cpp 2015-06-26 13:44:12.018997800 +0100 -@@ -68,9 +68,11 @@ - #if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) - HMENU qt_getWindowsSystemMenu(const QWidget *w) - { -- if (QWindow *window = QApplicationPrivate::windowForWidget(w)) -- if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) -- return GetSystemMenu(reinterpret_cast(handle), false); -+ if (QGuiApplication::platformNativeInterface()) { -+ if (QWindow *window = QApplicationPrivate::windowForWidget(w)) -+ if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) -+ return GetSystemMenu(reinterpret_cast(handle), false); -+ } - return 0; - } - #endif ---- x86_64/qtbase/src/widgets/kernel/qapplication_p.h.orig 2015-05-29 21:30:31.000000000 +0100 -+++ x86_64/qtbase/src/widgets/kernel/qapplication_p.h 2015-06-26 17:35:52.232016600 +0100 +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/kernel/qapplication_p.h qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/kernel/qapplication_p.h +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/kernel/qapplication_p.h 2015-08-26 14:28:59.349124600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/kernel/qapplication_p.h 2015-08-26 15:46:50.098516900 +0100 @@ -254,10 +254,12 @@ #ifdef Q_OS_WIN static HWND getHWNDForWidget(const QWidget *widget) diff --git a/mingw-w64-qt5-static/0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch b/mingw-w64-qt5-static/0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch new file mode 100644 index 0000000000..b0f7be5757 --- /dev/null +++ b/mingw-w64-qt5-static/0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch @@ -0,0 +1,11 @@ +--- qtbase/configure.orig 2015-08-25 12:42:05.631715900 +0100 ++++ qtbase/configure 2015-08-26 13:57:02.447124600 +0100 +@@ -4462,7 +4462,7 @@ + if compileTest unix/ipc_posix "ipc_posix" ; then + QCONFIG_FLAGS="$QCONFIG_FLAGS QT_POSIX_IPC" + else +- if [ "$XPLATFORM_ANDROID" = "no" ] ; then ++ if [ "$XPLATFORM_ANDROID" = "no" -a "$XPLATFORM_MINGW" = "no" ] ; then + QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SYSTEMSEMAPHORE QT_NO_SHAREDMEMORY" + fi + fi diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 4d25920b0e..7a1304003b 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -6,6 +6,11 @@ _variant=-static #_variant=-shared +# If you want a quick turnaround during testing then +# use this. *Not* the same as _fastbuild; that's set +# always for static and never for non-static. +#_minimal="yes" + # Getting crashes that only happen in release builds? # Define this and you may have a hope of figuring out # why .. @@ -44,14 +49,6 @@ fi _realname=qt5${_namesuff} -# qt5-static must be kept in its own prefix hierarchy -# as otherwise it will conflict with qt5 itself -if [ "${_variant}" = "-static" ]; then - _qt5_prefix="${MINGW_PREFIX}/${_realname}" -else - _qt5_prefix="${MINGW_PREFIX}" -fi - # So that both configure shell script and configure.exe # are tested on MSYS2, we use both depending on variant if [ "${_variant}" = "-static" ]; then @@ -60,6 +57,20 @@ else _configure=./configure.bat fi +declare -a _minimal_config +if [ "{_configure}" = "./configure" ]; then + if [ "{$_minimal}" = "yes" ]; then + _minimal_config+=("-skip" "qtwebkit" + "-skip" "qtwebkit-examples") + fi +else + if [ "{$_minimal}" = "yes" ]; then + _minimal_config+=("-no-webkit" + "-no-script" + "-no-scripttools") + fi +fi + # When using the configure bash script, MSYS2 make is # probably a better choice as otherwise the Makefiles # can have MSYS2 paths in them. We try to handle this @@ -77,8 +88,17 @@ _opengl=desktop _opengl_for_configure="${_opengl}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.5.0 + +# qt5-static must be kept in its own prefix hierarchy +# as otherwise it will conflict with qt5 itself +if [ "${_variant}" = "-static" ]; then + _qt5_prefix="${MINGW_PREFIX}/${_realname}-${_ver_base}" +else + _qt5_prefix="${MINGW_PREFIX}" +fi + pkgver=${_ver_base//-/} -pkgrel=3 +pkgrel=4 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -176,13 +196,18 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch 0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch 0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch - 0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch - 0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch - 0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch - 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch - 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch - 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch - 0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch) + 0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch + 0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch + 0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch + 0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch + 0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch + 0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch + 0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch + 0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch + 0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch + 0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch + 0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch + 0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch) md5sums=('65d5282f3dee0336da9ed1f77148952f' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' @@ -222,13 +247,18 @@ md5sums=('65d5282f3dee0336da9ed1f77148952f' 'df6964dca18a315fab60adc0d7a7aedb' 'fbf568c6ed68ab4a372e03f9b84dafe8' 'f323f5016ab38ceb3f10673ef9ae4337' - 'd66b2afce490ab8a82feae08c747e367' - '92fb1954fe3ab91d99a09c7f8a878218' - 'ab2cac300aa7a908ea8840649f0b51fc' - 'f1d010fc441350b8ff20213714ecae74' + '3323d4694a011b1048512fa27cf9768c' + '6e4a9c4850a1505a442f78d415ffadb9' + 'e49923654e2dff35e86cda6e1b566118' + 'b2269fae567d93fed03fe2affeca116c' + '1b72bcd4c6fb0be388a41d5baf55b430' + 'fd7034667db1ef2468abeba08514a50a' + '27e0f474f66f05f3911c71621b24636d' '51016015352313cdd749ae1ff3e14614' '9bc9c1177134d0f2fd782db3f394a318' - 'c9931b34f176490a48439de35556e535') + '857309396cfdf6bfff91fe86afb947c2' + '54fe3fa20f28a546a60e8c0568ffb6d2' + 'cf3cb7b2c5a0088fbd34c94c4eccc6c9') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -339,15 +369,26 @@ prepare() { # Patches so that qt5-static can be used with cmake. patch -p1 -i ${srcdir}/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch patch -p1 -i ${srcdir}/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch - patch -p1 -i ${srcdir}/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch - patch -p1 -i ${srcdir}/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch - patch -p1 -i ${srcdir}/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch - patch -p1 -i ${srcdir}/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch - patch -p1 -i ${srcdir}/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch - patch -p1 -i ${srcdir}/0046-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch pushd qtbase > /dev/null - patch -p1 -i ${srcdir}/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch + patch -p1 -i ${srcdir}/0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch + popd + patch -p1 -i ${srcdir}/0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch + patch -p1 -i ${srcdir}/0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch + patch -p1 -i ${srcdir}/0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch + patch -p1 -i ${srcdir}/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch + patch -p1 -i ${srcdir}/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch + + # More odds and sods. + patch -p1 -i ${srcdir}/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch + patch -p1 -i ${srcdir}/0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch + pushd qtbase > /dev/null + patch -p1 -i ${srcdir}/0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch + popd > /dev/null + patch -p1 -i ${srcdir}/0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch + patch -p1 -i ${srcdir}/0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch + pushd qtbase > /dev/null + patch -p1 -i ${srcdir}/0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch popd > /dev/null # See: https://bugreports.qt-project.org/browse/QTBUG-37902 @@ -485,13 +526,11 @@ build() { local -a _fastbuild_config if [ "${_fastbuild}" = "yes" ]; then - _fastbuild_config+=("-nomake") - _fastbuild_config+=("examples") + _fastbuild_config+=("-nomake" "examples") fi - # We probably want to build these always + # We probably want to build tests always # but not package them? - _fastbuild_config+=("-nomake") - _fastbuild_config+=("tests") + _fastbuild_config+=("-nomake" "tests") # Qt manages the compiler flags for release / debug configs separately, so having our own values (-O2) is harmful here .. unset CFLAGS @@ -519,7 +558,8 @@ build() { "${_extra_config[@]}" \ "${_sql_config[@]}" \ "${_variant_config[@]}" \ - "${_fastbuild_config[@]}" + "${_fastbuild_config[@]}" \ + "${_minimal_config[@]}" # I'm Keeping this around while qt5-static cmake problems persist. # qtbase/mkspecs/modules-inst/qt_lib_core.pri diff --git a/mingw-w64-qt5-static/qt-5.3.0-static-qmake-conf.patch b/mingw-w64-qt5-static/qt-5.3.0-static-qmake-conf.patch deleted file mode 100644 index 0279579878..0000000000 --- a/mingw-w64-qt5-static/qt-5.3.0-static-qmake-conf.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -urN qt-everywhere-opensource-src-5.2.1/qtbase/mkspecs/features/default_post.prf.orig qt-everywhere-opensource-src-5.2.1/qtbase/mkspecs/features/default_post.prf ---- qt-everywhere-opensource-src-5.2.1/qtbase/mkspecs/features/default_post.prf.orig 2014-02-01 20:37:37.000000000 +0000 -+++ qt-everywhere-opensource-src-5.2.1/qtbase/mkspecs/features/default_post.prf 2014-03-07 22:56:43.997614000 +0000 -@@ -53,6 +53,7 @@ - } - - dll:win32: QMAKE_LFLAGS += $$QMAKE_LFLAGS_DLL -+static:win32: QMAKE_LFLAGS += $$QMAKE_LFLAGS_STATIC_LIB - static:mac: QMAKE_LFLAGS += $$QMAKE_LFLAGS_STATIC_LIB - staticlib:unix { - QMAKE_CFLAGS += $$QMAKE_CFLAGS_STATIC_LIB -diff -urN qt-everywhere-opensource-src-5.2.1/qtbase/mkspecs/win32-g++/qmake.conf.orig qt-everywhere-opensource-src-5.2.1/qtbase/mkspecs/win32-g++/qmake.conf ---- qt-everywhere-opensource-src-5.2.1/qtbase/mkspecs/win32-g++/qmake.conf.orig 2014-02-01 20:37:37.000000000 +0000 -+++ qt-everywhere-opensource-src-5.2.1/qtbase/mkspecs/win32-g++/qmake.conf 2014-03-07 22:55:45.900291100 +0000 -@@ -74,6 +74,7 @@ - QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console - QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows - QMAKE_LFLAGS_DLL = -shared -+QMAKE_LFLAGS_STATIC_LIB += -static - QMAKE_LFLAGS_CXX11 = - QMAKE_LINK_OBJECT_MAX = 10 - QMAKE_LINK_OBJECT_SCRIPT = object_script From 983ea7944e735459e5b48c4b0ecd09cdc9fe2d9e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 27 Aug 2015 08:15:36 +0100 Subject: [PATCH 1508/2060] qt5-static: Remove version prefix from -prefix I added this to aid with debugging and forgot to remove it. --- mingw-w64-qt5-static/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 7a1304003b..11db548867 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -92,13 +92,13 @@ _ver_base=5.5.0 # qt5-static must be kept in its own prefix hierarchy # as otherwise it will conflict with qt5 itself if [ "${_variant}" = "-static" ]; then - _qt5_prefix="${MINGW_PREFIX}/${_realname}-${_ver_base}" + _qt5_prefix="${MINGW_PREFIX}/${_realname}" else _qt5_prefix="${MINGW_PREFIX}" fi pkgver=${_ver_base//-/} -pkgrel=4 +pkgrel=5 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' From d61120f5c0dbf32a8b5398eb20a0f02d4caef3ee Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 27 Aug 2015 22:03:33 +0100 Subject: [PATCH 1509/2060] qt5-static: Another fix for CMake --- ...ALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch | 11 ++++--- mingw-w64-qt5-static/PKGBUILD | 33 +++++++++++-------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/mingw-w64-qt5-static/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch b/mingw-w64-qt5-static/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch index ccafe53227..ddb7315751 100644 --- a/mingw-w64-qt5-static/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch +++ b/mingw-w64-qt5-static/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch @@ -1,10 +1,11 @@ ---- qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2015-08-26 22:43:13.887276700 +0100 -+++ qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 22:53:40.759131700 +0100 -@@ -248,6 +248,7 @@ - macro(macro_process_prl_file prl_file_location Configuration) +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-27 12:15:50.549764900 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-27 12:32:35.136763200 +0100 +@@ -249,6 +249,7 @@ if (EXISTS \"${prl_file_location}\") file(STRINGS \"${prl_file_location}\" prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE\") -+ string(REGEX REPLACE "\\$\\$\\[QT_INSTALL_LIBS\\]" "$${CMAKE_MODULE_NAME}_install_prefix}/lib" static_depends ${static_depends}) string(REGEX REPLACE \"QMAKE_PRL_LIBS_FOR_CMAKE *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings} ) ++ string(REGEX REPLACE \"\\\\$\\\\$\\\\[QT_INSTALL_LIBS\\\\]\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib\" static_depends \"${static_depends}\") if (_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES) set(_list_sep \";\") + endif() diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 11db548867..0c42b2b6e7 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -98,7 +98,7 @@ else fi pkgver=${_ver_base//-/} -pkgrel=5 +pkgrel=6 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -252,7 +252,7 @@ md5sums=('65d5282f3dee0336da9ed1f77148952f' 'e49923654e2dff35e86cda6e1b566118' 'b2269fae567d93fed03fe2affeca116c' '1b72bcd4c6fb0be388a41d5baf55b430' - 'fd7034667db1ef2468abeba08514a50a' + 'f63b3d50851ede0124dedccdcd7a6aed' '27e0f474f66f05f3911c71621b24636d' '51016015352313cdd749ae1ff3e14614' '9bc9c1177134d0f2fd782db3f394a318' @@ -300,13 +300,9 @@ prepare() { patch -p1 -i ${srcdir}/0005-qt-5.3.0-syncqt-fix.patch patch -p1 -i ${srcdir}/0006-qt-5.3.0-win_flex-replace.patch - # My qt-5.3.0 win32-g++ static patches are against qtbase's dev branch. + # Some patches are against qtbase's repository. pushd qtbase > /dev/null patch -p1 -i ${srcdir}/0007-qt-5.3.0-win32-g-Enable-static-builds.patch - # Despite qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch the following .a (i.e. non-import) - # static libraries end up being made: - # ActiveQt (which is always built statically), libQt5OpenGLExtensions{d}.a, libQt5PlatformSupport{d}.a - # libQt5QmlDevTools.a, libQt5UiTools{d}.a libqtmain{d}.a patch -p1 -i ${srcdir}/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch ###patch -p1 -i ${srcdir}/0009-qt-5.3.0-qmlimportscanner-Ensure-the-correct-variant-is-run.patch patch -p1 -i ${srcdir}/0010-qt-5.3.0-qdoc-increase-stack-size-for-win32-g-too.patch @@ -563,12 +559,23 @@ build() { # I'm Keeping this around while qt5-static cmake problems persist. # qtbase/mkspecs/modules-inst/qt_lib_core.pri - # ROOT=$(pwd -W) - # cd qtbase/ && ${ROOT}/qtbase/bin/qmake.exe ${ROOT}/qtbase/qtbase.pro -o Makefile - # cd .. - # cp -rf qtbase/src/corelib qtbase/src/corelib.pre-write-cmake - # cd qtbase/src/corelib && ${ROOT}/qtbase/bin/qmake.exe ${ROOT}/qtbase/src/corelib/corelib.pro -d -d -d -d -o Makefile - # exit 1 + # pushd src/x86_64 + # ROOT=$(pwd -W) + # pushd qtbase/ + # ${ROOT}/qtbase/bin/qmake.exe ${ROOT}/qtbase/qtbase.pro -o Makefile + # popd + # cp -rf qtbase/src/corelib qtbase/src/corelib.pre-write-cmake + # pushd qtbase/src/corelib + # ${ROOT}/qtbase/bin/qmake.exe ${ROOT}/qtbase/src/corelib/corelib.pro -d -d -d -d -o Makefile > log.txt + # popd + # popd + # . + # .. or .. (this alternative could be used when _minimal=yes) + # . + # pushd src/x86_64 + # ${_make} module-qtbase && ${_make} module-qtbase-install_subtargets + # popd + # .. do your testing. # There is a race condition / dependency problem with libqtiff and dumpdoc.exe which # can happen at -j9 so make twice (dumpdoc.exe depends on libqtiff but can get built From e069a57efe9db1b9ebee8d612b4fc7773172a445 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 30 Aug 2015 10:39:02 +0300 Subject: [PATCH 1510/2060] gdb: Update to 7.10 --- mingw-w64-gdb/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gdb/PKGBUILD b/mingw-w64-gdb/PKGBUILD index a71af7958c..d408db07e1 100644 --- a/mingw-w64-gdb/PKGBUILD +++ b/mingw-w64-gdb/PKGBUILD @@ -3,11 +3,12 @@ _realname=gdb _gcc_ver=5.2.0 -pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" # Until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62279 is # fixed, we will stick with 7.6.2 which hasn't got this bug.. -pkgver=7.9.1 -pkgrel=4 +pkgver=7.10 +pkgrel=1 pkgdesc="GNU Debugger (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gdb/" @@ -30,7 +31,7 @@ source=(http://ftp.gnu.org/gnu/gdb/${_realname}-${pkgver}.tar.xz{,.sig} 'gdb-7.6.2-mingw-gcc-4.7.patch' 'gdb-perfomance.patch' 'gdb-fix-using-gnu-print.patch') -md5sums=('35374c77a70884eb430c97061053a36e' +md5sums=('2a35bac41fa8e10bf04f3a0dd7f7f363' 'SKIP' 'be1c16674d98189a6f18dc0f5922c739' 'e48292d553379a9765c82e80e618ffd2' From cd5b1148d8f22de7392c33b18696657c7f740f57 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 30 Aug 2015 12:05:01 +0300 Subject: [PATCH 1511/2060] qt5: Improve PKGBUILD --- mingw-w64-qt5-static/PKGBUILD | 16 ++++++++------- mingw-w64-qt5/PKGBUILD | 37 ++++++++++++++++++----------------- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 0c42b2b6e7..8b23884194 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -86,6 +86,7 @@ fi _opengl=desktop #_opengl=dynamic _opengl_for_configure="${_opengl}" +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.5.0 @@ -285,7 +286,7 @@ pkg_config_qt5() { } prepare() { - [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} + [[ -d ${srcdir}/${_pkgfqn} ]] && rm -rf ${srcdir}/${_pkgfqn} tar -xJf ${srcdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true # cp -rf qt3d ${_pkgfqn}/ @@ -435,7 +436,7 @@ prepare() { # To keep the build folder name quite small (PATH_MAX limit) # the source folder (long) is renamed to $CARCH (i686 or x86_64) cd ${srcdir} - [ -d ${CARCH} ] && rm -rf ${CARCH} + [[ -d ${CARCH} ]] && rm -rf ${CARCH} mv ${_pkgfqn} ${CARCH} } @@ -443,8 +444,9 @@ build() { cd ${CARCH} touch qtbase/.gitignore - mkdir -p ${pkgdir}${_qt5_prefix} - local QTDIR_WIN=$(cygpath -am ${pkgdir}${_qt5_prefix}) + local _buildpkgdir=${pkgdirbase}/${pkgname}/${_qt5_prefix} + mkdir -p ${_buildpkgdir} + local QTDIR_WIN=$(cygpath -am ${_buildpkgdir}) local _freetype2_pkgconf="" if [ "${_freetype2}" = "-system-freetype" ]; then @@ -599,7 +601,7 @@ package() { cd ${CARCH} - export PATH=${pkgdir}${_qt5_prefix}/bin:${pkgdir}${MINGW_PREFIX}/bin:${srcdir}/${CARCH}/qtbase/bin:${srcdir}/${CARCH}/qtbase/lib:${PATH} + export PATH=${pkgdir}${_qt5_prefix}/bin:${srcdir}/${CARCH}/qtbase/bin:${srcdir}/${CARCH}/qtbase/lib:${PATH} ${_make} install ${_make} docs @@ -609,7 +611,7 @@ package() { "${pkgdir}${_qt5_prefix}"/share/licenses/qt5/LGPL_EXCEPTION.txt # Remove dlls from lib/ - rm -f "${pkgdir}${MINGW_PREFIX}/lib"/*.dll + rm -f "${pkgdir}${_qt5_prefix}/lib"/*.dll # Workaround for installing empty .pc files plain "---> Fix pkgconfig files..." @@ -617,7 +619,7 @@ package() { cp -f ${_pc_files[@]} ${pkgdir}${_qt5_prefix}/lib/pkgconfig/ # Fix wrong path in prl files - # find "${pkgdir}${MINGW_PREFIX}/lib" -type f -name '*.prl' \ + # find "${pkgdir}${_qt5_prefix}/lib" -type f -name '*.prl' \ # -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \; # Fix wrong qmake path in pri file diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 11def91b8a..f3ebbe2430 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -44,14 +44,6 @@ fi _realname=qt5${_namesuff} -# qt5-static must be kept in its own prefix hierarchy -# as otherwise it will conflict with qt5 itself -if [ "${_variant}" = "-static" ]; then - _qt5_prefix="${MINGW_PREFIX}/${_realname}" -else - _qt5_prefix="${MINGW_PREFIX}" -fi - # So that both configure shell script and configure.exe # are tested on MSYS2, we use both depending on variant if [ "${_variant}" = "-static" ]; then @@ -75,8 +67,18 @@ fi _opengl=desktop #_opengl=dynamic _opengl_for_configure="${_opengl}" +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.5.0 + +# qt5-static must be kept in its own prefix hierarchy +# as otherwise it will conflict with qt5 itself +if [ "${_variant}" = "-static" ]; then + _qt5_prefix="${MINGW_PREFIX}/${_realname}" +else + _qt5_prefix="${MINGW_PREFIX}" +fi + pkgver=${_ver_base//-/} pkgrel=1 arch=('any') @@ -408,7 +410,7 @@ prepare() { # To keep the build folder name quite small (PATH_MAX limit) # the source folder (long) is renamed to $CARCH (i686 or x86_64) cd ${srcdir} - [ -d ${CARCH} ] && rm -rf ${CARCH} + [[ -d ${CARCH} ]] && rm -rf ${CARCH} mv ${_pkgfqn} ${CARCH} } @@ -416,8 +418,9 @@ build() { cd ${CARCH} touch qtbase/.gitignore - mkdir -p ${pkgdir}${_qt5_prefix} - local QTDIR_WIN=$(cygpath -am ${pkgdir}${_qt5_prefix}) + local _buildpkgdir=${pkgdirbase}/${pkgname}/${_qt5_prefix} + mkdir -p ${_buildpkgdir} + local QTDIR_WIN=$(cygpath -am ${_buildpkgdir}) local _freetype2_pkgconf="" if [ "${_freetype2}" = "-system-freetype" ]; then @@ -495,13 +498,11 @@ build() { local -a _fastbuild_config if [ "${_fastbuild}" = "yes" ]; then - _fastbuild_config+=("-nomake") - _fastbuild_config+=("examples") + _fastbuild_config+=("-nomake" "examples") fi # We probably want to build these always # but not package them? - _fastbuild_config+=("-nomake") - _fastbuild_config+=("tests") + _fastbuild_config+=("-nomake" "tests") # Qt manages the compiler flags for release / debug configs separately, so having our own values (-O2) is harmful here .. unset CFLAGS @@ -558,7 +559,7 @@ package() { cd ${CARCH} - export PATH=${pkgdir}${_qt5_prefix}/bin:${pkgdir}${MINGW_PREFIX}/bin:${srcdir}/${CARCH}/qtbase/bin:${srcdir}/${CARCH}/qtbase/lib:${PATH} + export PATH=${pkgdir}${_qt5_prefix}/bin:${srcdir}/${CARCH}/qtbase/bin:${srcdir}/${CARCH}/qtbase/lib:${PATH} ${_make} install ${_make} docs @@ -568,7 +569,7 @@ package() { "${pkgdir}${_qt5_prefix}"/share/licenses/qt5/LGPL_EXCEPTION.txt # Remove dlls from lib/ - rm -f "${pkgdir}${MINGW_PREFIX}/lib"/*.dll + rm -f "${pkgdir}${_qt5_prefix}/lib"/*.dll # Workaround for installing empty .pc files plain "---> Fix pkgconfig files..." @@ -576,7 +577,7 @@ package() { cp -f ${_pc_files[@]} ${pkgdir}${_qt5_prefix}/lib/pkgconfig/ # Fix wrong path in prl files - # find "${pkgdir}${MINGW_PREFIX}/lib" -type f -name '*.prl' \ + # find "${pkgdir}${_qt5_prefix}/lib" -type f -name '*.prl' \ # -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \; # Fix wrong qmake path in pri file From 8d6c3a4c71d2ac303163c5e88385e6e8824116f8 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 30 Aug 2015 22:32:18 +0300 Subject: [PATCH 1512/2060] libsigc++: Update to 2.5.3 --- mingw-w64-libsigc++/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libsigc++/PKGBUILD b/mingw-w64-libsigc++/PKGBUILD index e9c6606c8c..4133464f42 100644 --- a/mingw-w64-libsigc++/PKGBUILD +++ b/mingw-w64-libsigc++/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libsigc++ +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.5.1 +pkgver=2.5.3 pkgrel=1 pkgdesc="Libsigc++ implements a full callback system for use in widget libraries - V2 (mingw-w64)" arch=('any') @@ -12,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/GNOME/sources/libsigc++/${pkgver%.*}/libsigc++-${pkgver}.tar.xz") -sha256sums=('969c37be81714e49c8cd35dbfb48f40f849961ca5468f883169db95bb5b7a36e') +sha256sums=('e1eb23a408b7e394b152e20800146ab614e8027f02db2da7418ccc33bd337525') build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" From 179953e37d82d61f60a2f0ec21b6c4ed00c1c650 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 31 Aug 2015 14:18:00 +0300 Subject: [PATCH 1513/2060] tiff: Update to 4.0.5 --- mingw-w64-libtiff/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libtiff/PKGBUILD b/mingw-w64-libtiff/PKGBUILD index 9959b29908..3fda877044 100644 --- a/mingw-w64-libtiff/PKGBUILD +++ b/mingw-w64-libtiff/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Renato Silva _realname=libtiff +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.0.4 -pkgrel=2 +pkgver=4.0.5 +pkgrel=1 pkgdesc="Library for manipulation of TIFF images (mingw-w64)" arch=('any') url="http://www.remotesensing.org/libtiff" @@ -17,7 +18,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') source=("ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz") -md5sums=('9aee7107408a128c0c7b24286c0db900') +md5sums=('523a76b4a3b24a0287dcfae82580ed2c') prepare() { cd tiff-${pkgver} From 0cac0da6c004b1a4f4bb8f19eb0a9d5e8b5bad83 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 31 Aug 2015 15:46:42 +0300 Subject: [PATCH 1514/2060] poppler: Update to 0.35.0 --- mingw-w64-poppler/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index d8c5921e97..8a60089420 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=poppler +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.34.0 +pkgver=0.35.0 pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') @@ -28,7 +29,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" options=('strip' 'staticlibs') source=("http://poppler.freedesktop.org/${_realname}-${pkgver}.tar.xz" "give-cc-to-gir-scanner.mingw.patch") -md5sums=('7d788f85bca1c03d71773af0b902e203' +md5sums=('561ef4454bfabe59ef1b8b9cd4aa4c4b' '727c1b414987f6ee2ba841d9db57a967') prepare() { From 372272492e3ac53b1b8ce9c03ca363d404157b48 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 31 Aug 2015 15:47:00 +0300 Subject: [PATCH 1515/2060] gdal: Rebuild with poppler 0.35.0 --- mingw-w64-gdal/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-gdal/PKGBUILD b/mingw-w64-gdal/PKGBUILD index 53a47c43d0..680593db86 100644 --- a/mingw-w64-gdal/PKGBUILD +++ b/mingw-w64-gdal/PKGBUILD @@ -4,9 +4,10 @@ # Contributor: William Rea _realname=gdal +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.0 -pkgrel=3 +pkgrel=4 pkgdesc="A translator library for raster geospatial data formats (mingw-w64)" arch=('any') url="http://www.gdal.org/" From 8dd4942141ca8d9b2590ae3f5f1e5e6be6d9305c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 31 Aug 2015 15:54:53 +0300 Subject: [PATCH 1516/2060] gimp: Rebuild with poppler-0.35.0 --- mingw-w64-gimp/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-gimp/PKGBUILD b/mingw-w64-gimp/PKGBUILD index b6bdd0f08e..936cc0c7ce 100644 --- a/mingw-w64-gimp/PKGBUILD +++ b/mingw-w64-gimp/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=gimp +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.8.14 -pkgrel=5 +pkgrel=6 pkgdesc="GNU Image Manipulation Program (mingw-w64)" arch=('any') url="http://www.gimp.org/" From 2d0374a5fadd5e6bdf39d1096e00f6cf89c2b649 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 1 Sep 2015 01:06:23 +0100 Subject: [PATCH 1517/2060] firefox: It builds but doesn't install or work (WIP) --- ...error-definition-is-marked-dllimport.patch | 13 +++ ...3-MinGW-w64-Disable-TabletMode-stuff.patch | 49 ++++++++ ...W-w64-cast-fixes-LPCWSTR-to-char16_t.patch | 13 +++ ...ete-__attribute__-if-non-gcc-or-gcc1.patch | 11 ++ ...-compile-guard-around-widePath-usage.patch | 11 ++ ...2-Dont-use--static-or--static-libgcc.patch | 30 +++++ .../0018-MSYS2-Allow-make-install.patch | 15 +++ ...ASSERT-when-stdout-is-same-as-stderr.patch | 15 +++ mingw-w64-firefox/PKGBUILD | 105 +++++++++++++----- .../{manifest => nsinstall.exe.manifest} | 0 10 files changed, 232 insertions(+), 30 deletions(-) create mode 100644 mingw-w64-firefox/0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch create mode 100644 mingw-w64-firefox/0013-MinGW-w64-Disable-TabletMode-stuff.patch create mode 100644 mingw-w64-firefox/0014-MinGW-w64-cast-fixes-LPCWSTR-to-char16_t.patch create mode 100644 mingw-w64-firefox/0015-nss-lib-dbm-Fix-incorrect-delete-__attribute__-if-non-gcc-or-gcc1.patch create mode 100644 mingw-w64-firefox/0016-MinGW-w64-GMPLoader-Add-MOZ_SANDBOX-compile-guard-around-widePath-usage.patch create mode 100644 mingw-w64-firefox/0017-MSYS2-Dont-use--static-or--static-libgcc.patch create mode 100644 mingw-w64-firefox/0018-MSYS2-Allow-make-install.patch create mode 100644 mingw-w64-firefox/0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch rename mingw-w64-firefox/{manifest => nsinstall.exe.manifest} (100%) diff --git a/mingw-w64-firefox/0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch b/mingw-w64-firefox/0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch new file mode 100644 index 0000000000..404d6ea15a --- /dev/null +++ b/mingw-w64-firefox/0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch @@ -0,0 +1,13 @@ +--- firefox-41.0b5.orig/mozglue/misc/TimeStamp.h 2015-08-30 11:46:11.745214500 +0100 ++++ firefox-41.0b5/mozglue/misc/TimeStamp.h 2015-08-30 11:46:41.480915300 +0100 +@@ -426,8 +426,8 @@ + * lower precision, usually 15.6 ms, but with very good performance benefit. + * Use it for measurements of longer times, like >200ms timeouts. + */ +- static MFBT_API TimeStamp Now() { return Now(true); } +- static MFBT_API TimeStamp NowLoRes() { return Now(false); } ++ static TimeStamp Now() { return Now(true); } ++ static TimeStamp NowLoRes() { return Now(false); } + + /** + * Return a timestamp representing the time when the current process was diff --git a/mingw-w64-firefox/0013-MinGW-w64-Disable-TabletMode-stuff.patch b/mingw-w64-firefox/0013-MinGW-w64-Disable-TabletMode-stuff.patch new file mode 100644 index 0000000000..89d03154d4 --- /dev/null +++ b/mingw-w64-firefox/0013-MinGW-w64-Disable-TabletMode-stuff.patch @@ -0,0 +1,49 @@ +--- firefox-41.0b5/widget/windows/WindowsUIUtils.cpp.orig 2015-08-30 16:03:42.591416200 +0100 ++++ firefox-41.0b5/widget/windows/WindowsUIUtils.cpp 2015-08-30 16:03:45.043620700 +0100 +@@ -20,6 +20,41 @@ + #include "nsString.h" + #include "nsIWidget.h" + ++#if defined(__MINGW32_MAJOR_VERSION) ++/* MinGW-w64 doesn't have support for this WRL stuff yet: ++ https://msdn.microsoft.com/en-us/library/hh438466(v=vs.110).aspx */ ++ ++WindowsUIUtils::WindowsUIUtils() : ++ mInTabletMode(eTabletModeUnknown) ++{ ++} ++ ++WindowsUIUtils::~WindowsUIUtils() ++{ ++} ++ ++/* ++ * Implement the nsISupports methods... ++ */ ++NS_IMPL_ISUPPORTS(WindowsUIUtils, ++ nsIWindowsUIUtils) ++ ++NS_IMETHODIMP ++WindowsUIUtils::GetInTabletMode(bool* aResult) ++{ ++ *aResult = false; ++ return NS_OK; ++} ++ ++NS_IMETHODIMP ++WindowsUIUtils::UpdateTabletModeState() ++{ ++ return NS_OK; ++} ++ ++ ++ ++#else + #include + + #pragma comment(lib, "runtimeobject.lib") +@@ -172,3 +207,4 @@ + return NS_OK; + } + ++#endif /* defined(__MINGW32_MAJOR_VERSION) */ diff --git a/mingw-w64-firefox/0014-MinGW-w64-cast-fixes-LPCWSTR-to-char16_t.patch b/mingw-w64-firefox/0014-MinGW-w64-cast-fixes-LPCWSTR-to-char16_t.patch new file mode 100644 index 0000000000..b43d96c937 --- /dev/null +++ b/mingw-w64-firefox/0014-MinGW-w64-cast-fixes-LPCWSTR-to-char16_t.patch @@ -0,0 +1,13 @@ +--- firefox-41.0b5/browser/components/shell/nsWindowsShellService.cpp.orig 2015-08-27 22:29:59.000000000 +0100 ++++ firefox-41.0b5/browser/components/shell/nsWindowsShellService.cpp 2015-08-30 17:10:20.382614000 +0100 +@@ -389,8 +389,8 @@ + GetHashPrefName(LPCWSTR aClassName, nsACString& aPrefName) + { + aPrefName.AssignLiteral("browser.shell.associationHash."); +- aPrefName.Append(NS_ConvertUTF16toUTF8(*aClassName == L'.' ? aClassName + 1 +- : aClassName)); ++ aPrefName.Append(NS_ConvertUTF16toUTF8(*aClassName == L'.' ? (const char16_t*)(aClassName + 1) ++ : (const char16_t*)aClassName)); + } + + static bool diff --git a/mingw-w64-firefox/0015-nss-lib-dbm-Fix-incorrect-delete-__attribute__-if-non-gcc-or-gcc1.patch b/mingw-w64-firefox/0015-nss-lib-dbm-Fix-incorrect-delete-__attribute__-if-non-gcc-or-gcc1.patch new file mode 100644 index 0000000000..2e168b754e --- /dev/null +++ b/mingw-w64-firefox/0015-nss-lib-dbm-Fix-incorrect-delete-__attribute__-if-non-gcc-or-gcc1.patch @@ -0,0 +1,11 @@ +--- firefox-41.0b5.orig/security/nss/lib/dbm/include/cdefs.h 2015-08-31 12:22:25.118591200 +0100 ++++ firefox-41.0b5/security/nss/lib/dbm/include/cdefs.h 2015-08-31 12:23:50.591480000 +0100 +@@ -109,7 +109,7 @@ + * these work for GNU C++ (modulo a slight glitch in the C++ grammar + * in the distribution version of 2.5.5). + */ +-#if !defined(__GNUC__) || __GNUC__ < 2 || __GNUC_MINOR__ < 5 ++#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) + #define __attribute__(x) /* delete __attribute__ if non-gcc or gcc1 */ + #if defined(__GNUC__) && !defined(__STRICT_ANSI__) + #define __dead __volatile diff --git a/mingw-w64-firefox/0016-MinGW-w64-GMPLoader-Add-MOZ_SANDBOX-compile-guard-around-widePath-usage.patch b/mingw-w64-firefox/0016-MinGW-w64-GMPLoader-Add-MOZ_SANDBOX-compile-guard-around-widePath-usage.patch new file mode 100644 index 0000000000..cc5da3283c --- /dev/null +++ b/mingw-w64-firefox/0016-MinGW-w64-GMPLoader-Add-MOZ_SANDBOX-compile-guard-around-widePath-usage.patch @@ -0,0 +1,11 @@ +--- firefox-41.0b5.orig/dom/media/gmp/GMPLoader.cpp 2015-08-27 22:30:07.000000000 +0100 ++++ firefox-41.0b5/dom/media/gmp/GMPLoader.cpp 2015-08-31 13:40:19.208933900 +0100 +@@ -227,7 +227,7 @@ + + // Load the GMP. + PRLibSpec libSpec; +-#ifdef XP_WIN ++#if defined(XP_WIN) && defined(MOZ_SANDBOX) + libSpec.value.pathname_u = widePath; + libSpec.type = PR_LibSpec_PathnameU; + #else diff --git a/mingw-w64-firefox/0017-MSYS2-Dont-use--static-or--static-libgcc.patch b/mingw-w64-firefox/0017-MSYS2-Dont-use--static-or--static-libgcc.patch new file mode 100644 index 0000000000..e505a70fac --- /dev/null +++ b/mingw-w64-firefox/0017-MSYS2-Dont-use--static-or--static-libgcc.patch @@ -0,0 +1,30 @@ +--- firefox-41.0b5.orig/configure.in 2015-08-27 22:30:03.000000000 +0100 ++++ firefox-41.0b5/configure.in 2015-08-31 16:33:22.338814900 +0100 +@@ -2223,9 +2223,9 @@ + MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@' + MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@' + RC='$(WINDRES)' +- # Use static libgcc and libstdc++ +- LDFLAGS="$LDFLAGS -static" +- NSPR_LDFLAGS="$NSPR_LDFLAGS -static-libgcc" ++ # Don't use static libgcc and libstdc++ for MSYS2 ++ # LDFLAGS="$LDFLAGS -static" ++ # NSPR_LDFLAGS="$NSPR_LDFLAGS -static-libgcc" + # Use temp file for windres (bug 213281) + RCFLAGS='-O coff --use-temp-file' + # mingw doesn't require kernel32, user32, and advapi32 explicitly +--- firefox-41.0b5/configure.orig 2015-08-31 15:21:34.109398300 +0100 ++++ firefox-41.0b5/configure 2015-08-31 16:33:30.509282300 +0100 +@@ -9473,9 +9473,9 @@ + MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@' + MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@' + RC='$(WINDRES)' +- # Use static libgcc and libstdc++ +- LDFLAGS="$LDFLAGS -static" +- NSPR_LDFLAGS="$NSPR_LDFLAGS -static-libgcc" ++ # Don't use static libgcc and libstdc++ for MSYS2 ++ # LDFLAGS="$LDFLAGS -static" ++ # NSPR_LDFLAGS="$NSPR_LDFLAGS -static-libgcc" + # Use temp file for windres (bug 213281) + RCFLAGS='-O coff --use-temp-file' + # mingw doesn't require kernel32, user32, and advapi32 explicitly diff --git a/mingw-w64-firefox/0018-MSYS2-Allow-make-install.patch b/mingw-w64-firefox/0018-MSYS2-Allow-make-install.patch new file mode 100644 index 0000000000..dd3a6475d8 --- /dev/null +++ b/mingw-w64-firefox/0018-MSYS2-Allow-make-install.patch @@ -0,0 +1,15 @@ +--- firefox-41.0b5/toolkit/mozapps/installer/packager.mk.orig 2015-08-27 22:30:13.000000000 +0100 ++++ firefox-41.0b5/toolkit/mozapps/installer/packager.mk 2015-08-31 23:47:20.134091700 +0100 +@@ -116,9 +116,9 @@ + # dist/sdk/lib -> prefix/lib/appname-devel-version/lib + # prefix/lib/appname-devel-version/* symlinks to the above directories + install:: prepare-package +-ifeq ($(OS_ARCH),WINNT) +- $(error "make install" is not supported on this platform. Use "make package" instead.) +-endif ++# ifeq ($(OS_ARCH),WINNT) ++# $(error "make install" is not supported on this platform. Use "make package" instead.) ++# endif + ifeq (bundle,$(MOZ_FS_LAYOUT)) + $(error "make install" is not supported on this platform. Use "make package" instead.) + endif diff --git a/mingw-w64-firefox/0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch b/mingw-w64-firefox/0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch new file mode 100644 index 0000000000..2c77cf47bb --- /dev/null +++ b/mingw-w64-firefox/0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch @@ -0,0 +1,15 @@ +--- firefox-41.0b5/xpcom/build/PoisonIOInterposerWin.cpp 2015-09-01 00:07:54.085669600 +0100 ++++ firefox-41.0b5/xpcom/build/PoisonIOInterposerWin.cpp.orig 2015-09-01 00:06:43.475631000 +0100 +@@ -445,11 +445,7 @@ + + // Stdout and Stderr are OK. + MozillaRegisterDebugFD(1); +- // Avoid a MOZ_ASSERT() when launching from MSYS2's mintty: +- // https://bugzilla.mozilla.org/show_bug.cgi?id=1163452 +- if (_get_osfhandle(1) != _get_osfhandle(2)) { +- MozillaRegisterDebugFD(2); +- } ++ MozillaRegisterDebugFD(2); + + #ifdef MOZ_REPLACE_MALLOC + // The contract with InitDebugFd is that the given registry can be used diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index 4b3088c052..619a0f889a 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -76,7 +76,7 @@ path_conv_for_make() { _realname=firefox pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=39.0 +pkgver=41.0b5 pkgrel=1 pkgdesc='Mozilla Firefox (mingw-w64)' groups=("${MINGW_PACKAGE_PREFIX}") @@ -87,9 +87,9 @@ makedepends=('unzip' 'zip' "${MINGW_PACKAGE_PREFIX}-yasm" "${MINGW_PACKAGE_PREFIX}-python2") -source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/source/${_realname}-${pkgver}.source.tar.bz2" +source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/source/${_realname}-${pkgver}.source.tar.xz" "http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/moztools-static.zip" - manifest + "nsinstall.exe.manifest" "0001-Allow-MSYS2-shell.patch" "0002-Allow-MSYS2-make.patch" "0003-Use-PYTHON-env-var.patch" @@ -101,13 +101,21 @@ source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/ "0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch" "0010-Dont-use-I64-numeric-suffix.patch" "0011-stagefreight-Dont-use-old-MinGW-w64-headers.patch" + "0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch" + "0013-MinGW-w64-Disable-TabletMode-stuff.patch" + "0014-MinGW-w64-cast-fixes-LPCWSTR-to-char16_t.patch" + "0015-nss-lib-dbm-Fix-incorrect-delete-__attribute__-if-non-gcc-or-gcc1.patch" + "0016-MinGW-w64-GMPLoader-Add-MOZ_SANDBOX-compile-guard-around-widePath-usage.patch" + "0017-MSYS2-Dont-use--static-or--static-libgcc.patch" + "0018-MSYS2-Allow-make-install.patch" + "0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch" "debugging.patch" "mozconfig.x86_64" "mozconfig.i686" "config.sub" "config.guess") -noextract=("${_realname}-${pkgver}.source.tar.bz2") -sha1sums=('32785daee7ddb9da8d7509ef095258fc58fe838e' +noextract=("${_realname}-${pkgver}.source.tar.xz") +sha1sums=('f53aad21adfd6a2c9c013168b5195099b9e59536' '6c018e4ac903180f5f65492241502842dc1c035a' 'c4e841bf724a1ff907592c8a11ba9683568acfd5' '1c0810fbfd6f336eec81e236c89c6c9ca0e79290' @@ -121,15 +129,23 @@ sha1sums=('32785daee7ddb9da8d7509ef095258fc58fe838e' '17bc2719882a5bc0775f48522a45c9132aebdd04' '12385ab4cb659f712f3a3a93248741d299048b9c' '4553ac6631d56bc251ffd6cbc503002c6835c9de' + 'de9fb13afd011710349c868f2bd60f3508986905' + '543812a70510a08cf16af2e86d2e0fb79af26c14' + '7e36fe8fcca2730cf55a2703b50d998b93af3b7e' + '7dcb0ea5e54ffb08cc9afa495b13e42d058ecbbd' + 'bacec1492cb54096f7483b192918050e7cb1de1d' + '9eead9e427a8158df42a2ec81bf7c9f38ad1c915' + 'e939e9722fd0cb70a7bd5e705b37bd47045e9647' + '018097900afc127e1142bd50d96c8d4df73ab13b' 'c2a0ed20a82d212bb4aa84cb2f294be3ba0bb859' - 'fb6b4567f07fb5e51dfb2b898c1b0ffdf550eba6' - 'ccc52e6b4031ce48d006a4a28e6db289faeec3b4' + '02befff9986a31bbc4ad74a8c0125e84f29fcb40' + '9f4a4161fd23ba603c3e8140b322e732a46efffc' '17c4f8628ea435c999be66ee4c2967fdaf3b2955' 'ffb6644dbad00413c668c833e3f3680d1d73aa53') prepare() { [ -d "${srcdir}"/${_realname}-${pkgver} ] && rm -rf ${_realname}-${pkgver} - tar -xf "${srcdir}"/${_realname}-${pkgver}.source.tar.bz2 || true + tar -xf "${srcdir}"/${_realname}-${pkgver}.source.tar.xz || true if [ -d "${srcdir}"/mozilla-beta ]; then _archivedir="mozilla-beta" elif [ -d "${srcdir}"/mozilla-release ]; then @@ -138,9 +154,10 @@ prepare() { echo "Can't find sources!" exit 1 fi - # Getting a lot of "mv: cannot move .. Permission denied", try a bit of sleeping. Yuck. - sleep 1 - mv "${srcdir}"/"${_archivedir}" "${srcdir}"/${_realname}-${pkgver} || (sleep 1 && mv "${srcdir}"/"${_archivedir}" "${srcdir}"/${_realname}-${pkgver}) + + # Getting a lot of "mv: cannot move .. Permission denied"; try a bit of sleeping. Yuck. + (sleep 1 && mv "${srcdir}"/"${_archivedir}" "${srcdir}"/${_realname}-${pkgver}) || \ + (sleep 1 && mv "${srcdir}"/"${_archivedir}" "${srcdir}"/${_realname}-${pkgver}) cd "${srcdir}"/${_realname}-${pkgver} # Mostly this patch is about msys2-python and mingw-w64-python not @@ -163,14 +180,38 @@ prepare() { patch -p1 -i "${srcdir}"/0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch patch -p1 -i "${srcdir}"/0010-Dont-use-I64-numeric-suffix.patch patch -p1 -i "${srcdir}"/0011-stagefreight-Dont-use-old-MinGW-w64-headers.patch - patch -p1 -i "${srcdir}"/debugging.patch + patch -p1 -i "${srcdir}"/0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch + patch -p1 -i "${srcdir}"/0013-MinGW-w64-Disable-TabletMode-stuff.patch + patch -p1 -i "${srcdir}"/0014-MinGW-w64-cast-fixes-LPCWSTR-to-char16_t.patch + patch -p1 -i "${srcdir}"/0015-nss-lib-dbm-Fix-incorrect-delete-__attribute__-if-non-gcc-or-gcc1.patch + patch -p1 -i "${srcdir}"/0016-MinGW-w64-GMPLoader-Add-MOZ_SANDBOX-compile-guard-around-widePath-usage.patch + patch -p1 -i "${srcdir}"/0017-MSYS2-Dont-use--static-or--static-libgcc.patch + patch -p1 -i "${srcdir}"/0018-MSYS2-Allow-make-install.patch + patch -p1 -i "${srcdir}"/0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch + # patch -p1 -i "${srcdir}"/debugging.patch find . -name config.sub -exec cp "${srcdir}"/config.sub {} \; find . -name config.guess -exec cp "${srcdir}"/config.guess {} \; - autoconf-2.13 && cd js/src && autoconf-2.13 + (autoconf-2.13 && cd js/src && autoconf-2.13) - cp ${srcdir}/moztools/bin/nsinstall.exe . - cp ${srcdir}/manifest nsinstall.exe.manifest + # Despite commit http://hg.mozilla.org/mozilla-central/rev/e149b8c85eb8 (hg log -p -r 98136 | less): + # changeset: 98136:e149b8c85eb8 + # summary: Bug 757252 - Kill nsinstall_win.c, use nsinstall.py on Windows instead. r=ted + # .. we still requires an nsinstall executable for some of the build process (NSPR, more?): + # firefox-41.0b5/nsprpub/configure.in:1177 + # case "$host" in + # *-mingw*|*-msys*) + # NSINSTALL=nsinstall + # ;; + # However, if we try to use it for everything via: + # "${_make}" -f $PWD/client.mk build NSINSTALL=${srcdir}/moztools/bin/nsinstall.exe + # .. we run into race conditions, some of which were fixed here: + # http://hg.mozilla.org/mozilla-central/rev/e857761718d5 + # .. but the nsinstall.exe in moztools.zip (from 2006) doesn't include those fixes. Anyway, + # since nsinstall_win.c has been removed to ease maintainence, we can get away with using + # the buggy one, as nsinstall.py is used for the majority of the build process. + cp "${srcdir}"/moztools/bin/nsinstall.exe . + cp "${srcdir}"/nsinstall.exe.manifest . } build() { @@ -190,7 +231,9 @@ build() { echo "mk_add_options MOZ_OBJDIR=$(path_conv_for_make ${PWD}/${_builddir})" >> ${_builddir}/.mozconfig export MIDL="${MINGW_PREFIX}/bin/widl.exe -I ${MINGW_PREFIX}/${CARCH}-w64-mingw32/include" export MOZ_TOOLS=${MINGW_PREFIX} - export MAKEFLAGS=-j1 + export MAKEFLAGS=-j9 + # For nsinstall.exe + export PATH=${PWD}:"${PATH}" # .. make a shell script so we can easily recreate the build environment while # developing this PKGBUILD. @@ -203,24 +246,26 @@ build() { ' |sed -r -e '/^BASH_(ARGC|ARGV|LINENO|SOURCE|VERSINFO)=/d; /^(UID|EUID)=/d; /^(FUNCNAME|GROUPS|PPID|SHELLOPTS|BASHOPTS)=/d;' > ./env-${CARCH}.sh - echo "export PYTHON MOZCONFIG MIDL MOZ_TOOLS CPPFLAGS CFLAGS CXXFLAGS MAKEFLAGS" >> ./env-${CARCH}.sh + echo "export PATH PYTHON MOZCONFIG MIDL MOZ_TOOLS CPPFLAGS CFLAGS CXXFLAGS LDFLAGS MAKEFLAGS" >> ./env-${CARCH}.sh "${_make}" -f $PWD/client.mk configure - # We need nsinstall.exe -# pushd "${_builddir}"/config -# # cd src/firefox-39.0/ ; source env-x86_64.sh ; cd obj-x86_64-w64-mingw32/config/; "${_make}" -f $PWD/../../client.mk build -# "${_make}" -f $PWD/../../client.mk build NSINSTALL=${srcdir}/moztools/bin/nsinstall.exe -# "${_make}" -f $PWD/../../client.mk install NSINSTALL=${srcdir}/moztools/bin/nsinstall.exe -# popd - "${_make}" -f $PWD/client.mk build NSINSTALL=${srcdir}/moztools/bin/nsinstall.exe + "${_make}" -f $PWD/client.mk build } -check() { - cd "${srcdir}"/build-${CARCH} - make check -} +# check() { +# cd "${srcdir}"/${_realname}-${pkgver} +# "${_make}" -f $PWD/client.mk check +# } package() { - cd "${srcdir}"/build-${CARCH} - make -C mozilla-mingw.${CARCH} package INNER_MAKE_PACKAGE=true + cd "${srcdir}"/${_realname}-${pkgver} + if [ "${CARCH}" = "i686" ]; then + _builddir=obj-i686-w64-mingw32 + else + _builddir=obj-x86_64-w64-mingw32 + fi + # TBB uses: + "${_make}" -k -C ${PWD}/${_builddir} package INNER_MAKE_PACKAGE=true + # ArchLinux uses (but this fails on MSYS2): + # "${_make}" -k -C ${PWD}/${_builddir} DESTDIR="${pkgdir}" INSTALL_SDK= install -k } diff --git a/mingw-w64-firefox/manifest b/mingw-w64-firefox/nsinstall.exe.manifest similarity index 100% rename from mingw-w64-firefox/manifest rename to mingw-w64-firefox/nsinstall.exe.manifest From e5d08866e7e3335095f0b195de1b500f5e6a913c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 1 Sep 2015 10:54:38 +0300 Subject: [PATCH 1518/2060] sfml: Fix checksums --- mingw-w64-sfml/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-sfml/PKGBUILD b/mingw-w64-sfml/PKGBUILD index 12c11ce817..b3fd765cbc 100644 --- a/mingw-w64-sfml/PKGBUILD +++ b/mingw-w64-sfml/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=sfml +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.3.1 -pkgrel=1 +pkgrel=2 pkgdesc="A simple, fast, cross-platform, and object-oriented multimedia API (mingw-w64)" arch=('any') url="http://www.sfml-dev.org/" @@ -20,7 +21,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "unzip") source=(http://www.sfml-dev.org/files/SFML-${pkgver}-sources.zip mingw-w64-msys2.patch) -md5sums=('124f2d369159ac0e50b08e474abb5105' +md5sums=('19caabdac1274824e9e9c667e22c4e94' 'a8fbc9c9acfc813381df9e0020b211d9') noextract=(SFML-${pkgver}-sources.zip) From 8714bce4374e1b1ae233e13b2a7d8f113051318d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 1 Sep 2015 11:41:58 +0300 Subject: [PATCH 1519/2060] imagemagick: Update to 6.9.2.0 --- mingw-w64-imagemagick/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index fe45503ce2..d41c590e27 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -2,7 +2,7 @@ _realname=imagemagick pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.9.1.8 +pkgver=6.9.2.0 pkgrel=1 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') @@ -51,7 +51,7 @@ source=(http://www.imagemagick.org/download/ImageMagick-${pkgver%.*}-${pkgver##* 001-relocate.patch 002-build-fixes.patch winpath.patch) -md5sums=('deca570ef08bfff8a1630a7c7a6b4841' +md5sums=('99471c8c3f38c9264faf5c4ca7a31287' 'SKIP' 'c95a23e8562dbab4e6b0e5407da25209' '7821087a00c459c0d3482508fdc1e25e' From b85a53223f24c217dce13b98c73ce53213c83e1c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 1 Sep 2015 12:22:41 +0300 Subject: [PATCH 1520/2060] inkscape: Rebuild with new imagemagick --- mingw-w64-inkscape/PKGBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index 1b8038c76f..f59d1f7af1 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -9,9 +9,10 @@ if [ "${_use_gtk3}" = "yes" ]; then fi _realname=inkscape +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.91 -pkgrel=8 +pkgrel=9 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') url="http://inkscape.sourceforge.net/" @@ -104,6 +105,7 @@ build() { extra_config+=(--enable-gtk3-experimental) fi + CXXFLAGS+=" -std=gnu++11" ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ From 727a6107293537460cb624e7ebddd4b6fb96b711 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 1 Sep 2015 16:34:39 +0300 Subject: [PATCH 1521/2060] liboauth: Rebuild --- mingw-w64-liboauth/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-liboauth/PKGBUILD b/mingw-w64-liboauth/PKGBUILD index 622de6aec1..847a901d7e 100644 --- a/mingw-w64-liboauth/PKGBUILD +++ b/mingw-w64-liboauth/PKGBUILD @@ -4,7 +4,7 @@ _realname=liboauth pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.3 -pkgrel=4 +pkgrel=5 arch=('any') pkgdesc="liboauth is a collection of POSIX-c functions implementing the OAuth Core RFC 5849 standard (mingw-w64)" license=("GPL 2") From f54a6585cd90f1cff91f7748a65084591b4d88eb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 1 Sep 2015 16:34:56 +0300 Subject: [PATCH 1522/2060] libsodium: Fix download URL --- mingw-w64-libsodium/PKGBUILD | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libsodium/PKGBUILD b/mingw-w64-libsodium/PKGBUILD index 11a0689179..f5ebebf01c 100644 --- a/mingw-w64-libsodium/PKGBUILD +++ b/mingw-w64-libsodium/PKGBUILD @@ -1,16 +1,18 @@ # Maintainer: Alexey Pavlov _realname=libsodium +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.3 -pkgrel=2 +pkgrel=3 pkgdesc="P(ortable|ackageable) NaCl-based crypto library (mingw-w64)" arch=("any") url="https://github.com/jedisct1/libsodium" license=('custom:ISC') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -source=("http://download.dnscrypt.org/${_realname}/releases/${_realname}-${pkgver}.tar.gz") -md5sums=('b3bcc98e34d3250f55ae196822307fab') +source=("https://download.libsodium.org/libsodium/releases/${_realname}-${pkgver}.tar.gz"{,.sig}) +md5sums=('b3bcc98e34d3250f55ae196822307fab' + 'SKIP') build() { rm -rf "${srcdir}/build-${MINGW_CHOST}" From f4fa02da3e2a282156292668c3b53d1fee0b539a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 1 Sep 2015 16:35:07 +0300 Subject: [PATCH 1523/2060] python2-pygtk: Rebuild --- mingw-w64-python2-pygtk/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python2-pygtk/PKGBUILD b/mingw-w64-python2-pygtk/PKGBUILD index e65b7cea10..c090c03713 100644 --- a/mingw-w64-python2-pygtk/PKGBUILD +++ b/mingw-w64-python2-pygtk/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=pygtk -pkgname="${MINGW_PACKAGE_PREFIX}-python2-pygtk" +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-python2-${_realname}" pkgver=2.24.0 -pkgrel=4 +pkgrel=5 pkgdesc="Python bindings for the GTK widget set (mingw-w64)" arch=('any') url="http://www.pygtk.org" From 32786c444c859903552ad6263d8a0b008e594b98 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 1 Sep 2015 16:35:26 +0300 Subject: [PATCH 1524/2060] ldns: Fix building documentation. --- mingw-w64-ldns/PKGBUILD | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/mingw-w64-ldns/PKGBUILD b/mingw-w64-ldns/PKGBUILD index 92c204a6a3..73298088d9 100644 --- a/mingw-w64-ldns/PKGBUILD +++ b/mingw-w64-ldns/PKGBUILD @@ -1,25 +1,31 @@ # Maintainer: Alexey Pavlov _realname=ldns +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.17 -pkgrel=3 +pkgrel=4 pkgdesc="Fast DNS library supporting recent RFCs (mingw-w64)" arch=('any') url='http://www.nlnetlabs.nl/projects/ldns/' license=('custom:BSD') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2") +makedepends=("${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-python2") depends=("${MINGW_PACKAGE_PREFIX}-openssl") optdepends=("${MINGW_PACKAGE_PREFIX}-dnssec-anchors") options=(strip staticlibs) source=("http://www.nlnetlabs.nl/downloads/${_realname}/${_realname}-${pkgver}.tar.gz" - ldns-1.6.17-relocate.patch) + ldns-1.6.17-relocate.patch + doxyparse-deprecations.patch) sha1sums=('4218897b3c002aadfc7280b3f40cda829e05c9a4' - 'c2ec4d4f4c909a41a16ef868dba4e3d7a5c146ed') + 'c2ec4d4f4c909a41a16ef868dba4e3d7a5c146ed' + '450af08b785e5f733b6ba666febdec2745f7a245') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/ldns-1.6.17-relocate.patch + patch -p1 -i ${srcdir}/doxyparse-deprecations.patch WANT_AUTOMAKE=latest autoreconf -fiv } @@ -43,10 +49,10 @@ build() { --with-drill \ --with-examples \ --with-ssl=${MINGW_PREFIX} \ - --with-pyldns \ - --with-pyldnsx + --without-pyldns \ + --without-pyldnsx - make + make -j1 } package() { From 1e161af4a4b6dc7f3af48303b86b0f527fb9f3f8 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 1 Sep 2015 16:35:43 +0300 Subject: [PATCH 1525/2060] zeromq: Update to 4.1.3 --- mingw-w64-zeromq/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-zeromq/PKGBUILD b/mingw-w64-zeromq/PKGBUILD index 75fe4d3298..07d0f66504 100644 --- a/mingw-w64-zeromq/PKGBUILD +++ b/mingw-w64-zeromq/PKGBUILD @@ -1,10 +1,11 @@ # From Greblus: http://blog.greblus.net/2014/11/18/msys2mingw-w64-cython-i-ipython-notebook/ _realname=zeromq +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.1.2 +pkgver=4.1.3 pkgrel=1 -pkgdesc="Fast messaging system built on sockets, C and C++ bindings. aka 0MQ, ZMQ. (mingw-w64)" +pkgdesc="Fast messaging system built on sockets, C and C++ bindings. aka 0MQ, ZMQ (mingw-w64)" arch=('any') url="http://www.zeromq.org" license=("LGPL") @@ -12,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-libsodium") makedepends=('') options=('staticlibs' '!strip' '!buildflags') source=("http://download.zeromq.org/${_realname}-${pkgver}.tar.gz") -md5sums=('159c0c56a895472f02668e692d122685') +md5sums=('d0824317348cfb44b8692e19cc73dc3a') build() { [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} From 59a08d4a7a44de3ea9e1f67e67c998277622fded Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 1 Sep 2015 16:36:07 +0300 Subject: [PATCH 1526/2060] dnscrypt-proxy: Rebuild with ldns support --- mingw-w64-dnscrypt-proxy/PKGBUILD | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mingw-w64-dnscrypt-proxy/PKGBUILD b/mingw-w64-dnscrypt-proxy/PKGBUILD index 6f43e963f9..82a9fce678 100644 --- a/mingw-w64-dnscrypt-proxy/PKGBUILD +++ b/mingw-w64-dnscrypt-proxy/PKGBUILD @@ -1,14 +1,18 @@ # Maintainer: Alexey Pavlov _realname=dnscrypt-proxy +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.0 -pkgrel=1 +pkgrel=2 pkgdesc="A tool for securing communications between a client and a DNS resolver (mingw-w64)" arch=("any") url="http://dnscrypt.org" license=('custom:ISC') -depends=("${MINGW_PACKAGE_PREFIX}-libsodium") +depends=("${MINGW_PACKAGE_PREFIX}-libsodium" + "${MINGW_PACKAGE_PREFIX}-ldns") +makedepends=("${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-gcc") source=("http://download.dnscrypt.org/${_realname}/${_realname}-${pkgver}.tar.bz2" 001-outside-source-build.patch) md5sums=('fa1dad8e487ab587be06e1cbccb9cfcc' From 73b13fb3588fda84882fa17af92eb2b7fd597787 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 1 Sep 2015 16:36:18 +0300 Subject: [PATCH 1527/2060] armadillo: Update to 5.400.3 --- mingw-w64-armadillo/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index 3beeff29c8..6485077b76 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -3,7 +3,7 @@ _realname=armadillo pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.300.5 +pkgver=5.400.3 pkgrel=1 pkgdesc="C++ linear algebra library (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" install=${_realname}-${CARCH}.install source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz 0001-mingw-config-fix.patch) -md5sums=('0ef1d316dd98e3a42c9c99fa35c4e080' +md5sums=('397733eb2f305b50f28ead3350d975bd' '5ce663ba53e15ee85fcd7a0b01006672') prepare() { From 887f38e2fad8e0619348949672f80ab5998801f1 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 2 Sep 2015 08:48:35 +0300 Subject: [PATCH 1528/2060] universal-ctags: Update to r2635 --- mingw-w64-universal-ctags-git/PKGBUILD | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mingw-w64-universal-ctags-git/PKGBUILD b/mingw-w64-universal-ctags-git/PKGBUILD index 76b61b29a7..9f84def18d 100644 --- a/mingw-w64-universal-ctags-git/PKGBUILD +++ b/mingw-w64-universal-ctags-git/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Oscar Fuentes _realname=ctags +pkgbase=mingw-w64-universal-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-universal-${_realname}-git" -pkgver=r2611.44688c7 +pkgver=r2635.80256f4 pkgrel=1 pkgdesc="A maintained Ctags implementation (mingw-w64)" arch=('any') @@ -21,9 +22,13 @@ pkgver() { printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } -build() { +prepare() { cd ${srcdir}/${_realname} autoreconf -fiv +} + +build() { + rm -rf ${srcdir}/build-${CARCH} mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} ../${_realname}/configure \ --prefix=${MINGW_PREFIX} \ @@ -38,5 +43,5 @@ build() { package() { cd "${srcdir}/build-${CARCH}" - make prefix="${pkgdir}/${MINGW_PREFIX}" install + make prefix="${pkgdir}${MINGW_PREFIX}" install } From d4e9dca1d9aef89713785a2b20ba09b18691ee25 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 2 Sep 2015 08:52:05 +0300 Subject: [PATCH 1529/2060] harfbuzz: Update to 1.0.3 --- mingw-w64-harfbuzz/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 62379882ba..1a1d19dc84 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -4,7 +4,7 @@ _realname=harfbuzz pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.2 +pkgver=1.0.3 pkgrel=1 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cairo" options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu support") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") -sha256sums=('beb3caf8654010fcdca61c810a3a7532237fc567ee4271deb674b5efbbe3b466') +sha256sums=('ebdc875ea06d010722dec13d92bc40002ab6a77071d62e71aad564ff76a63df7') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 1b2518712b0e603819be6cedb45b2be22ff3437a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 2 Sep 2015 09:04:17 +0300 Subject: [PATCH 1530/2060] ctags: Rebuild. Fix identations. --- mingw-w64-ctags/PKGBUILD | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/mingw-w64-ctags/PKGBUILD b/mingw-w64-ctags/PKGBUILD index 5c238f249b..40adc09328 100755 --- a/mingw-w64-ctags/PKGBUILD +++ b/mingw-w64-ctags/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Oscar Fuentes _realname=ctags +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.8 -pkgrel=3 +pkgrel=4 pkgdesc="A multilanguage implementation of Ctags (mingw-w64)" arch=('any') url="http://ctags.sourceforge.net/" @@ -24,20 +25,20 @@ prepare() { } build() { - cd ${_ctags_srcdir} - # The configure-based build has issues with features that depend - # on regular expressions (such as --langdef, --regex-lang, etc.) - # It is a bit tricky to enable proper regex support on the posix - # build (LIBS=pcreposix configure --with-posix-regex), and then - # the executable segfaults when regexs are involved. - make -f mk_mingw.mak + cd ${_ctags_srcdir} + # The configure-based build has issues with features that depend + # on regular expressions (such as --langdef, --regex-lang, etc.) + # It is a bit tricky to enable proper regex support on the posix + # build (LIBS=pcreposix configure --with-posix-regex), and then + # the executable segfaults when regexs are involved. + make -f mk_mingw.mak } package() { - _root_dest="${pkgdir}/${MINGW_PREFIX}" - mkdir -p "${_root_dest}/bin" - cp "${_ctags_srcdir}/ctags.exe" "${_root_dest}/bin" - _man_dest="${_root_dest}/share/man/man1" - mkdir -p "${_man_dest}" - cp "${_ctags_srcdir}/ctags.1" "${_man_dest}" + _root_dest="${pkgdir}/${MINGW_PREFIX}" + mkdir -p "${_root_dest}/bin" + cp "${_ctags_srcdir}/ctags.exe" "${_root_dest}/bin" + _man_dest="${_root_dest}/share/man/man1" + mkdir -p "${_man_dest}" + cp "${_ctags_srcdir}/ctags.1" "${_man_dest}" } From 9011a8b945b6b00dd15183eefe35998c1a9934f8 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 2 Sep 2015 09:41:10 +0300 Subject: [PATCH 1531/2060] emacs: Rebuild with new imagemagick --- mingw-w64-emacs/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-emacs/PKGBUILD b/mingw-w64-emacs/PKGBUILD index 30d97bada9..d4e7d46999 100644 --- a/mingw-w64-emacs/PKGBUILD +++ b/mingw-w64-emacs/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Haroogan _realname=emacs +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=24.5 -pkgrel=3 +pkgrel=4 pkgdesc="The extensible, customizable, self-documenting, real-time display editor (mingw-w64)" url="http://www.gnu.org/software/${_realname}/" license=('GPL3') From bbbbbe9fba8451413e50a77413cb87cce053d528 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 2 Sep 2015 09:41:32 +0300 Subject: [PATCH 1532/2060] ldns: Add missing patch --- mingw-w64-ldns/doxyparse-deprecations.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 mingw-w64-ldns/doxyparse-deprecations.patch diff --git a/mingw-w64-ldns/doxyparse-deprecations.patch b/mingw-w64-ldns/doxyparse-deprecations.patch new file mode 100644 index 0000000000..e66a364aec --- /dev/null +++ b/mingw-w64-ldns/doxyparse-deprecations.patch @@ -0,0 +1,11 @@ +--- ldns-1.6.17/doc/doxyparse.pl 2015-09-01 16:09:55.429400600 +0300 ++++ ldns-1.6.17/doc/doxyparse.pl.orig 2015-09-01 16:09:40.101933500 +0300 +@@ -273,7 +273,7 @@ + + print MAN $MAN_MIDDLE; + +- if (defined(@$also)) { ++ if (@$also) { + print MAN "\n.SH SEE ALSO\n\\fI"; + print MAN join "\\fR, \\fI", @$also; + print MAN "\\fR.\nAnd "; From 5a7359bb7e1b4e6da1cee2621f1f542da1545eaa Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 2 Sep 2015 09:41:55 +0300 Subject: [PATCH 1533/2060] libgpg-error: Update to 1.20 --- mingw-w64-libgpg-error/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libgpg-error/PKGBUILD b/mingw-w64-libgpg-error/PKGBUILD index 5978b0161f..43f442ca7d 100644 --- a/mingw-w64-libgpg-error/PKGBUILD +++ b/mingw-w64-libgpg-error/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libgpg-error +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.19 -pkgrel=2 +pkgver=1.20 +pkgrel=1 pkgdesc="Support library for libgcrypt (mingw-w64)" arch=('any') url="http://www.gnupg.org" @@ -18,7 +19,7 @@ source=("ftp://ftp.gnupg.org/gcrypt/libgpg-error/${_realname}-${pkgver}.tar.bz2" 05-w32-gen.all.patch 07-windows-build.patch 09-fix-generating-union.patch) -md5sums=('c04c16245b92829281f43b5bef7d16da' +md5sums=('9997d9203b672402a04760176811589d' '4865ce481ec9aa5efc0a4979f197a686' 'a69b0fd4c8e4ebda9ddeb68e565bf1b1' 'f7650decafae57ef791318b6a7e8f7e7' From b40134c099afaeb8077b0bfca042728c5f5d1242 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 2 Sep 2015 09:42:07 +0300 Subject: [PATCH 1534/2060] libassuan: Update to 2.3.0 --- mingw-w64-libassuan/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libassuan/PKGBUILD b/mingw-w64-libassuan/PKGBUILD index e262c49a6c..d9b01e2235 100644 --- a/mingw-w64-libassuan/PKGBUILD +++ b/mingw-w64-libassuan/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libassuan +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.2.1 -pkgrel=2 +pkgver=2.3.0 +pkgrel=1 pkgdesc="A IPC library used by some GnuPG related software (mingw-w64)" arch=('any') license=('GPL') @@ -17,7 +18,7 @@ source=(ftp://ftp.gnupg.org/gcrypt/${_realname}/${_realname}-${pkgver}.tar.bz2{, 0004-enable-gnu.mingw.patch 0005-better-check-for-stpcpy.mingw.patch) -sha1sums=('c21b86482f6a3624c2b46b91e20f8415f244233a' +sha1sums=('23f7ea010983b869f765c36d169dec51c8296cff' 'SKIP' '9e1e65633f643a853283caf21adb9b8f9001c38b' 'a380ea3781f95a3fd30e8d6b469d870f85f0ea29' From 68e8dbd6f394ab34311a229279962768f94f2b67 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 2 Sep 2015 09:42:21 +0300 Subject: [PATCH 1535/2060] gnupg: Update to 2.1.7 --- mingw-w64-gnupg/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gnupg/PKGBUILD b/mingw-w64-gnupg/PKGBUILD index a6323f6146..e8a0052505 100644 --- a/mingw-w64-gnupg/PKGBUILD +++ b/mingw-w64-gnupg/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=gnupg +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.6 -pkgrel=2 +pkgver=2.1.7 +pkgrel=1 pkgdesc="GNU Privacy Guard - a PGP replacement tool (mingw-w64)" arch=('any') depends=("${MINGW_PACKAGE_PREFIX}-bzip2" @@ -26,7 +27,7 @@ source=(ftp://ftp.gnupg.org/gcrypt/gnupg/${_realname}-${pkgver}.tar.bz2{,.sig} 02-mingw-sysconfigdir-under-prefix.patch 03-ldap-libraries-check-order.patch 04-dos-extra-defs.patch) -sha1sums=('9e8157b3386da04760657ce3117fc4dc570c57c5' +sha1sums=('1a345804f34a2acd05c1555e40ddfa297f38438b' 'SKIP' 'adca40b456c054db3aae5f112e18f56235322a45' 'e55b64ef1b1d9e0a224c2b8716d7a490aed6070d' From b3122a02787951610ef99c375f9495e6542d2f5e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 2 Sep 2015 09:42:31 +0300 Subject: [PATCH 1536/2060] gpgme: Update to 1.6.0 --- mingw-w64-gpgme/0004-gpgme-find-gnupg.patch | 74 ++++++--------------- mingw-w64-gpgme/PKGBUILD | 9 +-- 2 files changed, 26 insertions(+), 57 deletions(-) diff --git a/mingw-w64-gpgme/0004-gpgme-find-gnupg.patch b/mingw-w64-gpgme/0004-gpgme-find-gnupg.patch index 3a14604978..7974bd6649 100644 --- a/mingw-w64-gpgme/0004-gpgme-find-gnupg.patch +++ b/mingw-w64-gpgme/0004-gpgme-find-gnupg.patch @@ -19,67 +19,35 @@ diff -urN a/configure.ac b/configure.ac diff -urN a/src/w32-util.c b/src/w32-util.c --- a/src/w32-util.c 2015-08-04 22:35:23.525700800 +0100 +++ b/src/w32-util.c 2015-08-04 22:35:24.087301800 +0100 -@@ -419,6 +419,7 @@ - return result; +@@ -476,6 +476,7 @@ + gpg = find_program_in_dir (inst_dir, name); } +#ifndef __MINGW32__ - dir = read_w32_registry_string ("HKEY_LOCAL_MACHINE", - "Software\\GNU\\GnuPG", - "Install Directory"); -@@ -428,6 +429,7 @@ - free (dir); - return result; - } -+#endif - return NULL; - } - -@@ -504,13 +506,15 @@ - inst_dir = _gpgme_get_inst_dir (); - gpg = find_program_in_inst_dir - (inst_dir, -- default_gpg_name? get_basename (default_gpg_name) : "gpg.exe"); -+ default_gpg_name ? get_basename (default_gpg_name) : "gpg.exe"); + /* 2. Try to find gpg.exe using that ancient registry key. */ if (!gpg) { -- name = (default_gpg_name? default_gpg_name -+#ifndef __MINGW32__ -+ name = (default_gpg_name ? default_gpg_name - /* */ : "GNU\\GnuPG\\gpg.exe"); +@@ -497,6 +497,7 @@ + name = default_gpg_name? default_gpg_name : "GNU\\GnuPG\\gpg.exe"; gpg = find_program_at_standard_place (name); - if (!gpg) -+#endif - _gpgme_debug (DEBUG_ENGINE, "_gpgme_get_gpg_path: '%s' not found", - name); } -@@ -530,13 +534,15 @@ - inst_dir = _gpgme_get_inst_dir (); - gpgconf = find_program_in_inst_dir - (inst_dir, -- default_gpgconf_name? get_basename (default_gpgconf_name) : "gpgconf.exe"); -+ default_gpgconf_name ? get_basename (default_gpgconf_name) : "gpgconf.exe"); ++#endif + + /* 4. Print a debug message if not found. */ + if (!gpg) +@@ -523,6 +523,7 @@ + gpgconf = find_program_in_dir (inst_dir, name); + } + ++#ifndef __MINGW32__ + /* 2. Try to find gpgconf.exe from GnuPG >= 2.1 below CSIDL_PROGRAM_FILES. */ if (!gpgconf) { -- name = (default_gpgconf_name? default_gpgconf_name -+#ifndef __MINGW32__ -+ name = (default_gpgconf_name ? default_gpgconf_name - /* */ : "GNU\\GnuPG\\gpgconf.exe"); - gpgconf = find_program_at_standard_place (name); - if (!gpgconf) -+#endif - _gpgme_debug (DEBUG_ENGINE, "_gpgme_get_gpgconf_path: '%s' not found", - name); +@@ -552,6 +552,7 @@ + { + gpgconf = find_program_at_standard_place ("GNU\\GnuPG\\gpgconf.exe"); } -@@ -554,9 +560,11 @@ - LOCK (get_path_lock); - if (!w32spawn_program) - w32spawn_program = find_program_in_inst_dir (inst_dir,"gpgme-w32spawn.exe"); -+#ifndef __MINGW32__ - if (!w32spawn_program) - w32spawn_program - = find_program_at_standard_place ("GNU\\GnuPG\\gpgme-w32spawn.exe"); +#endif - UNLOCK (get_path_lock); - return w32spawn_program; - } + + /* 5. Print a debug message if not found. */ + if (!gpgconf) diff --git a/mingw-w64-gpgme/PKGBUILD b/mingw-w64-gpgme/PKGBUILD index fa8f3766ed..f8427207f4 100644 --- a/mingw-w64-gpgme/PKGBUILD +++ b/mingw-w64-gpgme/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Ray Donnelly _realname=gpgme +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.5 -pkgrel=5 +pkgver=1.6.0 +pkgrel=1 pkgdesc="A C wrapper library for GnuPG (mingw-w64)" arch=('any') url="http://www.gnupg.org/related_software/gpgme/" @@ -21,11 +22,11 @@ source=(https://www.gnupg.org/ftp/gcrypt/${_realname}/${_realname}-${pkgver}.tar 0002-reopen-mkstemp-files-without-_O_TEMPORARY.patch 0003-mingw-mkstemp.patch 0004-gpgme-find-gnupg.patch) -sha1sums=('88476d72cb099e179de4040760502886f7a54926' +sha1sums=('21510323495f6220f8f67610c3c27a23d761d43d' '1828be3a0fcab854325295bc4a1d026b8d711d82' '6f70ede9db1c86f7e4d04ade0dc0aee720221ee9' '471223b20b8181dc6c09278901bb546434d46568' - 'e7d6fb6b1c99dd265eef363bce4ab2443662d383') + '18d1e0c0f215f465e7cbd45824f31941623174f9') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 46409f6437e2b4089b6dcf87bacb948bfaa4f76f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 2 Sep 2015 13:19:42 +0300 Subject: [PATCH 1537/2060] clang/llvm: Update to 3.7.0 --- ...GetHostTriple-for-mingw-w64-in-msys.patch} | 0 ...x86-arch-name-to-i686-for-mingw-w64.patch} | 0 .../0013-mingw-w64-dont-have-dl-library.patch | 15 + ...FF-add-the-mingw-alias-for-ImageBase.patch | 24 + ...FF-add-the-mingw-alias-for-ImageBase.patch | 67 ++ ...hLibrary-function-with-sysroot-suppo.patch | 102 +++ ...4-GNU-add-support-for-linking-PECOFF.patch | 502 +++++++++++++ ...041-libcxx-add-support-for-mingw-w64.patch | 35 + mingw-w64-clang/PKGBUILD | 437 +++++++----- ...asminfo-for-mingw-arm-and-cygwin-arm.patch | 24 - mingw-w64-clang/clang-mingw-driver.patch | 669 ------------------ .../llvm-3.5.0-fix-cmake-llvm-exports.patch | 39 - .../mingw-arm-and-cygwin-arm-target.patch | 107 --- 13 files changed, 1011 insertions(+), 1010 deletions(-) rename mingw-w64-clang/{0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch => 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch} (100%) rename mingw-w64-clang/{0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch => 0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch} (100%) create mode 100644 mingw-w64-clang/0013-mingw-w64-dont-have-dl-library.patch create mode 100644 mingw-w64-clang/0031-COFF-add-the-mingw-alias-for-ImageBase.patch create mode 100644 mingw-w64-clang/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch create mode 100644 mingw-w64-clang/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch create mode 100644 mingw-w64-clang/0034-GNU-add-support-for-linking-PECOFF.patch create mode 100644 mingw-w64-clang/0041-libcxx-add-support-for-mingw-w64.patch delete mode 100644 mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch delete mode 100644 mingw-w64-clang/clang-mingw-driver.patch delete mode 100644 mingw-w64-clang/llvm-3.5.0-fix-cmake-llvm-exports.patch delete mode 100644 mingw-w64-clang/mingw-arm-and-cygwin-arm-target.patch diff --git a/mingw-w64-clang/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch b/mingw-w64-clang/0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch similarity index 100% rename from mingw-w64-clang/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch rename to mingw-w64-clang/0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch diff --git a/mingw-w64-clang/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch b/mingw-w64-clang/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch similarity index 100% rename from mingw-w64-clang/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch rename to mingw-w64-clang/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch diff --git a/mingw-w64-clang/0013-mingw-w64-dont-have-dl-library.patch b/mingw-w64-clang/0013-mingw-w64-dont-have-dl-library.patch new file mode 100644 index 0000000000..5048cb613b --- /dev/null +++ b/mingw-w64-clang/0013-mingw-w64-dont-have-dl-library.patch @@ -0,0 +1,15 @@ +--- cfe-3.7.0.src/tools/libclang/CMakeLists.txt 2015-09-02 12:21:21.242154800 +0300 ++++ cfe-3.7.0.src/tools/libclang/CMakeLists.txt.orig 2015-09-02 12:20:53.198959400 +0300 +@@ -51,10 +51,12 @@ + list(APPEND LIBS clangARCMigrate) + endif () + ++if (NOT MINGW) + find_library(DL_LIBRARY_PATH dl) + if (DL_LIBRARY_PATH) + list(APPEND LIBS dl) + endif() ++endif() + + option(LIBCLANG_BUILD_STATIC + "Build libclang as a static library (in addition to a shared one)" OFF) diff --git a/mingw-w64-clang/0031-COFF-add-the-mingw-alias-for-ImageBase.patch b/mingw-w64-clang/0031-COFF-add-the-mingw-alias-for-ImageBase.patch new file mode 100644 index 0000000000..b609b3b97a --- /dev/null +++ b/mingw-w64-clang/0031-COFF-add-the-mingw-alias-for-ImageBase.patch @@ -0,0 +1,24 @@ +From 0d44d5c00062f57a17eec0ca61e6590ab09d816d Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 8 Jun 2015 02:14:25 +0100 +Subject: [PATCH 1/4] COFF: add the mingw alias for ImageBase + +--- + COFF/SymbolTable.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/COFF/SymbolTable.cpp b/COFF/SymbolTable.cpp +index a90e208..e301b6a 100644 +--- a/COFF/SymbolTable.cpp ++++ b/COFF/SymbolTable.cpp +@@ -23,6 +23,7 @@ namespace coff { + + SymbolTable::SymbolTable() { + resolve(new (Alloc) DefinedAbsolute("__ImageBase", Config->ImageBase)); ++ resolve(new (Alloc) DefinedAbsolute("__image_base__", Config->ImageBase)); + if (!Config->EntryName.empty()) + resolve(new (Alloc) Undefined(Config->EntryName)); + } +-- +2.3.3 + diff --git a/mingw-w64-clang/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch b/mingw-w64-clang/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch new file mode 100644 index 0000000000..2a96e24bd1 --- /dev/null +++ b/mingw-w64-clang/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch @@ -0,0 +1,67 @@ +From dd9f24a90e6f4cbe251280c40d61a99f7ffaee38 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 8 Jun 2015 02:17:26 +0100 +Subject: [PATCH 2/4] PECOFF: add the mingw alias for ImageBase + +--- + lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h | 10 +++++++--- + lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp | 2 +- + lib/ReaderWriter/PECOFF/WriterPECOFF.cpp | 4 +++- + 3 files changed, 11 insertions(+), 5 deletions(-) + +diff --git a/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h b/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h +index cfa66bf..21186f3 100644 +--- a/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h ++++ b/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h +@@ -97,13 +97,17 @@ class LinkerGeneratedSymbolFile : public SimpleFile { + public: + LinkerGeneratedSymbolFile(const PECOFFLinkingContext &ctx) + : SimpleFile(""), +- _imageBaseAtom(*this, ctx.decorateSymbol("__ImageBase"), ++ _imageBaseAtomMSVC(*this, ctx.decorateSymbol("__ImageBase"), ++ Atom::scopeGlobal, ctx.getBaseAddress()), ++ _imageBaseAtomGNU(*this, ctx.decorateSymbol("__image_base__"), + Atom::scopeGlobal, ctx.getBaseAddress()) { +- addAtom(_imageBaseAtom); ++ addAtom(_imageBaseAtomMSVC); ++ addAtom(_imageBaseAtomGNU); + }; + + private: +- SimpleAbsoluteAtom _imageBaseAtom; ++ SimpleAbsoluteAtom _imageBaseAtomMSVC; ++ SimpleAbsoluteAtom _imageBaseAtomGNU; + }; + + // A LocallyImporteSymbolFile is an archive file containing __imp_ +diff --git a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp +index ebd42f8..2bd0e9c 100644 +--- a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp ++++ b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp +@@ -146,7 +146,7 @@ void PECOFFLinkingContext::createImplicitFiles( + llvm::make_unique(*this))); + members.insert(members.begin() + getGroupStartPos(members), std::move(entry)); + +- // Create a file for __ImageBase. ++ // Create a file for __ImageBase and __image_base__. + std::unique_ptr fileNode(new FileNode( + llvm::make_unique(*this))); + members.push_back(std::move(fileNode)); +diff --git a/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp b/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp +index 8c3aac0..63d0dad 100644 +--- a/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp ++++ b/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp +@@ -791,7 +791,9 @@ void AtomChunk::addBaseRelocations(std::vector &relocSites) const { + // because that's relative to run-time image base address. + if (auto *abs = dyn_cast(ref->target())) + if (!abs->name().equals("__ImageBase") && +- !abs->name().equals("___ImageBase")) ++ !abs->name().equals("___ImageBase") && ++ !abs->name().equals("__image_base__") && ++ !abs->name().equals("___image_base__")) + continue; + + uint64_t address = layout->_virtualAddr + ref->offsetInAtom(); +-- +2.3.3 + diff --git a/mingw-w64-clang/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch b/mingw-w64-clang/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch new file mode 100644 index 0000000000..6f23faa3ad --- /dev/null +++ b/mingw-w64-clang/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch @@ -0,0 +1,102 @@ +From ef70aa910f276615977c7b3e61f5c61418208960 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Mon, 8 Jun 2015 02:21:51 +0100 +Subject: [PATCH 3/4] PECOFF: add searchLibrary function with sysroot support + +--- + include/lld/ReaderWriter/PECOFFLinkingContext.h | 5 ++++ + lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp | 36 ++++++++++++++++++++++++ + 2 files changed, 41 insertions(+) + +diff --git a/include/lld/ReaderWriter/PECOFFLinkingContext.h b/include/lld/ReaderWriter/PECOFFLinkingContext.h +index 2e19dd8..4f48882 100644 +--- a/include/lld/ReaderWriter/PECOFFLinkingContext.h ++++ b/include/lld/ReaderWriter/PECOFFLinkingContext.h +@@ -105,6 +105,7 @@ public: + _tempFiles.push_back(std::move(fileRemover)); + } + ++ ErrorOr searchLibrary(StringRef libName) const; + StringRef searchLibraryFile(StringRef path) const; + + StringRef decorateSymbol(StringRef name) const; +@@ -321,6 +322,9 @@ public: + return _parseDirectives; + } + ++ StringRef getSysroot() const { return _sysrootPath; } ++ void setSysroot(StringRef path) { _sysrootPath = path; } ++ + protected: + /// Method to create a internal file for the entry symbol + std::unique_ptr createEntrySymbolFile() const override; +@@ -402,6 +406,7 @@ private: + std::set _noDefaultLibs; + + std::vector _inputSearchPaths; ++ StringRef _sysrootPath = ""; + std::unique_ptr _writer; + + // A map for weak aliases. +diff --git a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp +index 2bd0e9c..043fe6f 100644 +--- a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp ++++ b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp +@@ -23,11 +23,16 @@ + #include "llvm/ADT/STLExtras.h" + #include "llvm/ADT/SmallString.h" + #include "llvm/Support/Allocator.h" ++#include "llvm/Support/Errc.h" ++#include "llvm/Support/FileSystem.h" + #include "llvm/Support/Path.h" + #include + #include + #include + ++using llvm::sys::fs::exists; ++using llvm::sys::path::is_absolute; ++ + namespace lld { + + bool PECOFFLinkingContext::validateImpl(raw_ostream &diagnostics) { +@@ -214,6 +219,37 @@ bool PECOFFLinkingContext::addSectionRenaming(raw_ostream &diagnostics, + return true; + } + ++static void buildSearchPath(SmallString<128> &path, StringRef dir, ++ StringRef sysRoot) { ++ if (dir.startswith("=/")) { ++ // If a search directory begins with "=", "=" is replaced ++ // with the sysroot path. ++ path.assign(sysRoot); ++ path.append(dir.substr(1)); ++ } else { ++ path.assign(dir); ++ } ++} ++ ++ErrorOr PECOFFLinkingContext::searchLibrary(StringRef libName) const { ++ bool hasColonPrefix = libName[0] == ':'; ++ SmallString<128> path; ++ for (StringRef dir : _inputSearchPaths) { ++ // Search for static libraries too ++ buildSearchPath(path, dir, _sysrootPath); ++ llvm::sys::path::append(path, hasColonPrefix ++ ? libName.drop_front() ++ : Twine("lib", libName) + ".a"); ++ ++ if (exists(path.str())) ++ return path.str().copy(_allocator); ++ } ++ if (hasColonPrefix && exists(libName.drop_front())) ++ return libName.drop_front(); ++ ++ return make_error_code(llvm::errc::no_such_file_or_directory); ++} ++ + /// Try to find the input library file from the search paths and append it to + /// the input file list. Returns true if the library file is found. + StringRef PECOFFLinkingContext::searchLibraryFile(StringRef filename) const { +-- +2.3.3 + diff --git a/mingw-w64-clang/0034-GNU-add-support-for-linking-PECOFF.patch b/mingw-w64-clang/0034-GNU-add-support-for-linking-PECOFF.patch new file mode 100644 index 0000000000..478533fa28 --- /dev/null +++ b/mingw-w64-clang/0034-GNU-add-support-for-linking-PECOFF.patch @@ -0,0 +1,502 @@ +From 4ae708fdabd2cfc8882cf03d07ab0d5bf22e4964 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 2 Jul 2015 05:35:51 +0100 +Subject: [PATCH] GNU: add support for linking PECOFF + + +diff --git a/include/lld/Driver/Driver.h b/include/lld/Driver/Driver.h +index 160826c..8a276e4 100644 +--- a/include/lld/Driver/Driver.h ++++ b/include/lld/Driver/Driver.h +@@ -67,14 +67,43 @@ class GnuLdDriver : public Driver { + public: + /// Parses command line arguments same as gnu/binutils ld and performs link. + /// Returns true iff an error occurred. +- static bool linkELF(llvm::ArrayRef args, ++ static bool linkGNU(llvm::ArrayRef args, + raw_ostream &diag = llvm::errs()); + + /// Uses gnu/binutils style ld command line options to fill in options struct. ++ /// Parses command line arguments same as gnu/binutils ld and performs link on ELF. ++ /// Returns true iff an error occurred. ++ static bool linkELF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ llvm::Triple &baseTriple, ++ raw_ostream &diag = llvm::errs()); ++ ++ /// Parses command line arguments same as gnu/binutils ld and performs link on PECOFF. ++ /// Returns true iff an error occurred. ++ static bool linkPECOFF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ raw_ostream &diag = llvm::errs()); ++ ++ /// Uses gnu/binutils style ld command line options to fill in options struct for ELF. + /// Returns true iff there was an error. +- static bool parse(llvm::ArrayRef args, +- std::unique_ptr &context, +- raw_ostream &diag = llvm::errs()); ++ static bool parseELF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ llvm::Triple &baseTriple, ++ std::unique_ptr &context, ++ raw_ostream &diag = llvm::errs()); ++ ++ /// Uses gnu/binutils style ld command line options to fill in options struct for PECOFF. ++ /// Returns true iff there was an error. ++ static bool parsePECOFF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ PECOFFLinkingContext &ctx, ++ raw_ostream &diag = llvm::errs(), ++ bool isDirective = false); ++ ++ // Same as parse(), but restricted to the context of directives. ++ static bool parseDirectives(int argc, const char *argv[], ++ PECOFFLinkingContext &info, ++ raw_ostream &diag = llvm::errs()); + + /// Parses a given memory buffer as a linker script and evaluate that. + /// Public function for testing. +diff --git a/lib/Driver/GnuLdDriver.cpp b/lib/Driver/GnuLdDriver.cpp +index fbdc12d..21abb62 100644 +--- a/lib/Driver/GnuLdDriver.cpp ++++ b/lib/Driver/GnuLdDriver.cpp +@@ -15,6 +15,7 @@ + + #include "lld/Driver/Driver.h" + #include "lld/ReaderWriter/ELFLinkingContext.h" ++#include "lld/ReaderWriter/PECOFFLinkingContext.h" + #include "lld/ReaderWriter/LinkerScript.h" + #include "llvm/ADT/ArrayRef.h" + #include "llvm/ADT/Optional.h" +@@ -134,12 +135,61 @@ static bool parseMaxPageSize(StringRef opt, uint64_t &val) { + return true; + } + +-bool GnuLdDriver::linkELF(llvm::ArrayRef args, ++bool GnuLdDriver::linkGNU(llvm::ArrayRef args, + raw_ostream &diag) { + BumpPtrAllocator alloc; + args = maybeExpandResponseFiles(args, alloc); ++ ++ // Parse command line options using GnuLdOptions.td ++ GnuLdOptTable table; ++ unsigned missingIndex; ++ unsigned missingCount; ++ ++ llvm::opt::InputArgList parsedArgs = ++ table.ParseArgs(args.slice(1), missingIndex, missingCount); ++ if (missingCount) { ++ diag << "error: missing arg value for '" ++ << parsedArgs.getArgString(missingIndex) << "' expected " ++ << missingCount << " argument(s).\n"; ++ return false; ++ } ++ ++ // Handle --help ++ if (parsedArgs.hasArg(OPT_help)) { ++ table.PrintHelp(llvm::outs(), args[0], "LLVM Linker", false); ++ return true; ++ } ++ ++ // Use -target or use default target triple to instantiate LinkingContext ++ llvm::Triple baseTriple; ++ if (auto *arg = parsedArgs.getLastArg(OPT_target)) { ++ baseTriple = llvm::Triple(arg->getValue()); ++ } else { ++ baseTriple = getDefaultTarget(args[0]); ++ } ++ llvm::Triple triple(baseTriple); ++ ++ if (!applyEmulation(triple, parsedArgs, diag)) ++ return false; ++ ++ if (triple.getOS() == llvm::Triple::Win32) { ++ if(!linkPECOFF(parsedArgs, triple, diag)) ++ return false; ++ } else { ++ if(!linkELF(parsedArgs, triple, baseTriple, diag)) ++ return false; ++ } ++ ++ return true; ++} ++ ++bool GnuLdDriver::linkELF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ llvm::Triple &baseTriple, ++ raw_ostream &diag) { ++ + std::unique_ptr options; +- if (!parse(args, options, diag)) ++ if (!parseELF(args, triple, baseTriple, options, diag)) + return false; + if (!options) + return true; +@@ -154,8 +204,65 @@ bool GnuLdDriver::linkELF(llvm::ArrayRef args, + return linked; + } + ++bool GnuLdDriver::linkPECOFF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ raw_ostream &diag) { ++ ++ PECOFFLinkingContext ctx; ++ ctx.setParseDirectives(parseDirectives); ++ ctx.registry().addSupportCOFFObjects(ctx); ++ ctx.registry().addSupportCOFFImportLibraries(ctx); ++ ctx.registry().addSupportArchives(ctx.logInputFiles()); ++ ctx.registry().addSupportYamlFiles(); ++ ++ if (!parsePECOFF(args, triple, ctx, diag)) ++ return false; ++ ++ bool linked = link(ctx, diag); ++ return linked; ++} ++ ++bool GnuLdDriver::parseDirectives(int argc, const char *argv[], ++ PECOFFLinkingContext &info, ++ raw_ostream &diag) { ++ ++ llvm::ArrayRef args(argv, argc); ++ GnuLdOptTable table; ++ unsigned missingIndex; ++ unsigned missingCount; ++ ++ llvm::opt::InputArgList parsedArgs = ++ table.ParseArgs(args.slice(1), missingIndex, missingCount); ++ if (missingCount) { ++ diag << "error: missing arg value for '" ++ << parsedArgs.getArgString(missingIndex) << "' expected " ++ << missingCount << " argument(s).\n"; ++ return false; ++ } ++ ++ // Use -target or use default target triple to instantiate LinkingContext ++ llvm::Triple baseTriple; ++ if (auto *arg = parsedArgs.getLastArg(OPT_target)) { ++ baseTriple = llvm::Triple(arg->getValue()); ++ } else { ++ baseTriple = getDefaultTarget(argv[0]); ++ } ++ llvm::Triple triple(baseTriple); ++ ++ return parsePECOFF(parsedArgs, triple, info, diag, true); ++} ++ + static llvm::Optional + getArchType(const llvm::Triple &triple, StringRef value) { ++ ++ //the base arch can be wrong for windows so just check the PE target ++ if (value == "i386pe") ++ return llvm::Triple::x86; ++ if (value == "i386pep") ++ return llvm::Triple::x86_64; ++ if (value == "thumb2pe") ++ return llvm::Triple::arm; ++ + switch (triple.getArch()) { + case llvm::Triple::x86: + case llvm::Triple::x86_64: +@@ -184,6 +291,29 @@ getArchType(const llvm::Triple &triple, StringRef value) { + } + } + ++static llvm::COFF::MachineTypes ++getCOFFType(const llvm::Triple &triple) { ++ switch (triple.getArch()) { ++ case llvm::Triple::x86: ++ return llvm::COFF::IMAGE_FILE_MACHINE_I386; ++ case llvm::Triple::x86_64: ++ return llvm::COFF::IMAGE_FILE_MACHINE_AMD64; ++ case llvm::Triple::arm: ++ case llvm::Triple::thumb: ++ return llvm::COFF::IMAGE_FILE_MACHINE_ARMNT; ++ default: ++ return llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN; ++ } ++} ++ ++static llvm::COFF::WindowsSubsystem ++getSubsystem(StringRef value) { ++ return llvm::StringSwitch(value.lower()) ++ .Case("windows", llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_GUI) ++ .Case("console", llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI) ++ .Default(llvm::COFF::IMAGE_SUBSYSTEM_UNKNOWN); ++} ++ + static bool isLinkerScript(StringRef path, raw_ostream &diag) { + llvm::sys::fs::file_magic magic = llvm::sys::fs::file_magic::unknown; + if (std::error_code ec = llvm::sys::fs::identify_magic(path, magic)) { +@@ -195,7 +325,24 @@ static bool isLinkerScript(StringRef path, raw_ostream &diag) { + } + + static ErrorOr +-findFile(ELFLinkingContext &ctx, StringRef path, bool dashL) { ++findFileELF(ELFLinkingContext &ctx, StringRef path, bool dashL) { ++ // If the path was referred to by using a -l argument, let's search ++ // for the file in the search path. ++ if (dashL) { ++ ErrorOr pathOrErr = ctx.searchLibrary(path); ++ if (std::error_code ec = pathOrErr.getError()) ++ return make_dynamic_error_code( ++ Twine("Unable to find library -l") + path + ": " + ec.message()); ++ path = pathOrErr.get(); ++ } ++ if (!llvm::sys::fs::exists(path)) ++ return make_dynamic_error_code( ++ Twine("lld: cannot find file ") + path); ++ return path; ++} ++ ++static ErrorOr ++findFilePECOFF(PECOFFLinkingContext &ctx, StringRef path, bool dashL = true) { + // If the path was referred to by using a -l argument, let's search + // for the file in the search path. + if (dashL) { +@@ -219,6 +366,17 @@ static bool isPathUnderSysroot(StringRef sysroot, StringRef path) { + return !path.empty(); + } + ++// Returns true if the given file node has already been added to the input ++// graph. ++static bool hasLibrary(PECOFFLinkingContext &ctx, File *file) { ++ StringRef path = file->path(); ++ for (std::unique_ptr &p : ctx.getNodes()) ++ if (auto *f = dyn_cast(p.get())) ++ if (f->getFile()->path() == path) ++ return true; ++ return false; ++} ++ + static std::error_code + addFilesFromLinkerScript(ELFLinkingContext &ctx, StringRef scriptPath, + const std::vector &inputPaths, +@@ -339,40 +497,11 @@ getBool(const llvm::opt::InputArgList &parsedArgs, + return llvm::None; + } + +-bool GnuLdDriver::parse(llvm::ArrayRef args, +- std::unique_ptr &context, +- raw_ostream &diag) { +- // Parse command line options using GnuLdOptions.td +- GnuLdOptTable table; +- unsigned missingIndex; +- unsigned missingCount; +- +- llvm::opt::InputArgList parsedArgs = +- table.ParseArgs(args.slice(1), missingIndex, missingCount); +- if (missingCount) { +- diag << "error: missing arg value for '" +- << parsedArgs.getArgString(missingIndex) << "' expected " +- << missingCount << " argument(s).\n"; +- return false; +- } +- +- // Handle --help +- if (parsedArgs.hasArg(OPT_help)) { +- table.PrintHelp(llvm::outs(), args[0], "LLVM Linker", false); +- return true; +- } +- +- // Use -target or use default target triple to instantiate LinkingContext +- llvm::Triple baseTriple; +- if (auto *arg = parsedArgs.getLastArg(OPT_target)) { +- baseTriple = llvm::Triple(arg->getValue()); +- } else { +- baseTriple = getDefaultTarget(args[0]); +- } +- llvm::Triple triple(baseTriple); +- +- if (!applyEmulation(triple, parsedArgs, diag)) +- return false; ++bool GnuLdDriver::parseELF(llvm::opt::InputArgList &parsedArgs, ++ llvm::Triple &triple, ++ llvm::Triple &baseTriple, ++ std::unique_ptr &context, ++ raw_ostream &diag) { + + std::unique_ptr ctx(createELFLinkingContext(triple)); + +@@ -673,7 +802,7 @@ bool GnuLdDriver::parse(llvm::ArrayRef args, + bool dashL = (arg->getOption().getID() == OPT_l); + StringRef path = arg->getValue(); + +- ErrorOr pathOrErr = findFile(*ctx, path, dashL); ++ ErrorOr pathOrErr = findFileELF(*ctx, path, dashL); + if (std::error_code ec = pathOrErr.getError()) { + auto file = llvm::make_unique(path, ec); + auto node = llvm::make_unique(std::move(file)); +@@ -747,6 +876,133 @@ bool GnuLdDriver::parse(llvm::ArrayRef args, + return true; + } + ++bool GnuLdDriver::parsePECOFF(llvm::opt::InputArgList &args, ++ llvm::Triple &triple, ++ PECOFFLinkingContext &ctx, ++ raw_ostream &diag, ++ bool isReadingDirectiveSection) { ++ ++ // Parse may be called from multiple threads simultaneously to parse .drectve ++ // sections. This function is not thread-safe because it mutates the context ++ // object. So acquire the lock. ++ std::lock_guard lock(ctx.getMutex()); ++ ++ // The list of input files. ++ std::vector> files; ++ std::vector> libraries; ++ ++ llvm::COFF::MachineTypes type = getCOFFType(triple); ++ if (type == llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN) { ++ diag << "error: unknown machine type\n"; ++ return false; ++ } ++ ++ ctx.setMachineType(type); ++ ++ if (args.hasArg(OPT_t)) ++ ctx.setLogInputFiles(true); ++ ++ //mingw-w64 never uses wide versions of mainCRTStartup ++ if(type == llvm::COFF::IMAGE_FILE_MACHINE_I386) ++ ctx.setEntrySymbolName(ctx.allocate("_mainCRTStartup")); ++ else ++ ctx.setEntrySymbolName(ctx.allocate("mainCRTStartup")); ++ ++ if (auto *arg = args.getLastArg(OPT_output)) ++ ctx.setOutputPath(arg->getValue()); ++ ++ if (auto *arg = args.getLastArg(OPT_subsystem)) ++ ctx.setSubsystem(getSubsystem(arg->getValue())); ++ ++ if (args.hasArg(OPT_dll)) { ++ ctx.setIsDll(true); ++ // Default base address of a DLL is 0x10000000. ++ //if (!args.hasArg(OPT_base)) ++ //ctx.setBaseAddress(0x10000000); ++ } ++ ++ for (auto *arg : args.filtered(OPT_L)) ++ ctx.appendInputSearchPath(ctx.allocate(arg->getValue())); ++ ++ // Process files ++ for (auto arg : args) { ++ switch (arg->getOption().getID()) { ++ case OPT_INPUT: ++ case OPT_l: ++ case OPT_T: { ++ bool dashL = (arg->getOption().getID() == OPT_l); ++ StringRef path = arg->getValue(); ++ ErrorOr pathOrErr = findFilePECOFF(ctx, path, dashL); ++ StringRef realpath = pathOrErr.get(); ++ std::vector> curr; ++ ++ if(!pathOrErr){ ++ diag << "Cannot find " << path << "\n"; ++ return false; ++ } ++ ++ if(dashL) { ++ curr = loadFile(ctx, realpath, false); ++ for (std::unique_ptr &lib : curr) { ++ if (ctx.logInputFiles()) ++ diag << "lib: " << lib->path() << "\n"; ++ libraries.push_back(std::move(lib)); ++ } ++ } else { ++ curr = loadFile(ctx, realpath, false); ++ for (std::unique_ptr &file : curr) { ++ if (ctx.logInputFiles()) ++ diag << "input: " << file->path() << "\n"; ++ files.push_back(std::move(file)); ++ } ++ } ++ break; ++ } ++ } ++ } ++ ++ for (std::unique_ptr &file : files) { ++ if (isReadingDirectiveSection) { ++ File *f = file.get(); ++ ctx.getTaskGroup().spawn([f] { f->parse(); }); ++ } ++ ctx.getNodes().push_back(llvm::make_unique(std::move(file))); ++ } ++ ++ // Add the library group to the linking context. ++ if (!isReadingDirectiveSection) { ++ // Add a group-end marker. ++ ctx.getNodes().push_back(llvm::make_unique(0)); ++ } ++ ++ // Add the library files to the library group. ++ for (std::unique_ptr &file : libraries) { ++ if (!hasLibrary(ctx, file.get())) { ++ if (isReadingDirectiveSection) { ++ File *f = file.get(); ++ ctx.getTaskGroup().spawn([f] { f->parse(); }); ++ } ++ ctx.addLibraryFile(llvm::make_unique(std::move(file))); ++ } ++ } ++ ++ if (ctx.getNodes().empty()) { ++ diag << "No input files\n"; ++ return false; ++ } ++ ++ // Set default output file name if the output file was not specified. ++ if (ctx.outputPath().empty()) ++ ctx.setOutputPath("a.exe"); ++ ++ if (!ctx.validate(diag)) { ++ diag << "error: invalid linking context\n"; ++ return false; ++ } ++ ++ return true; ++} ++ + /// Get the default target triple based on either the program name + /// (e.g. "x86-ibm-linux-lld") or the primary target llvm was configured for. + llvm::Triple GnuLdDriver::getDefaultTarget(const char *progName) { +diff --git a/lib/Driver/GnuLdOptions.td b/lib/Driver/GnuLdOptions.td +index b3c3d90..7aa8547 100644 +--- a/lib/Driver/GnuLdOptions.td ++++ b/lib/Driver/GnuLdOptions.td +@@ -354,6 +354,18 @@ def pcrel_eh_reloc : Flag<["-", "--"], "pcrel-eh-reloc">, + HelpText<"Interpret R_MIPS_EH as R_MIPS_PC32">; + + //===----------------------------------------------------------------------===// ++/// Windows Target Specific Options ++//===----------------------------------------------------------------------===// ++def grp_windows_targetopts : OptionGroup<"WINDOWS SPECIFIC OPTIONS">, ++ Group; ++def subsystem : Separate<["--"], "subsystem">, MetaVarName<"">, ++ HelpText<"Select target subsystem">, ++ Group; ++def dll : Separate<["-", "--"], "dll">, ++ HelpText<"Create dynamic link library">, ++ Group; ++ ++//===----------------------------------------------------------------------===// + /// Ignored options + //===----------------------------------------------------------------------===// + def grp_ignored: OptionGroup<"ignored">, +diff --git a/lib/Driver/UniversalDriver.cpp b/lib/Driver/UniversalDriver.cpp +index c09addf..8ce45ea 100644 +--- a/lib/Driver/UniversalDriver.cpp ++++ b/lib/Driver/UniversalDriver.cpp +@@ -201,7 +201,7 @@ bool UniversalDriver::link(llvm::MutableArrayRef args, + // Switch to appropriate driver. + switch (flavor) { + case Flavor::gnu_ld: +- return GnuLdDriver::linkELF(args, diagnostics); ++ return GnuLdDriver::linkGNU(args, diagnostics); + case Flavor::darwin_ld: + return DarwinLdDriver::linkMachO(args, diagnostics); + case Flavor::win_link: +-- +2.4.5 + diff --git a/mingw-w64-clang/0041-libcxx-add-support-for-mingw-w64.patch b/mingw-w64-clang/0041-libcxx-add-support-for-mingw-w64.patch new file mode 100644 index 0000000000..4b4437b84d --- /dev/null +++ b/mingw-w64-clang/0041-libcxx-add-support-for-mingw-w64.patch @@ -0,0 +1,35 @@ +From 53625b291503734db14e4a6146ceb06f288fd987 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sun, 5 Jul 2015 00:54:34 +0100 +Subject: [PATCH] libcxx: add support for mingw-w64 + + +diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt +index d3d5f38..4820f2c 100644 +--- a/lib/CMakeLists.txt ++++ b/lib/CMakeLists.txt +@@ -2,7 +2,7 @@ set(LIBCXX_LIB_CMAKEFILES_DIR "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTOR + + # Get sources + file(GLOB LIBCXX_SOURCES ../src/*.cpp) +-if(WIN32) ++if(MSVC) + file(GLOB LIBCXX_WIN32_SOURCES ../src/support/win32/*.cpp) + list(APPEND LIBCXX_SOURCES ${LIBCXX_WIN32_SOURCES}) + elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS") +diff --git a/src/random.cpp b/src/random.cpp +index 4ab424e..d3062f5 100644 +--- a/src/random.cpp ++++ b/src/random.cpp +@@ -7,7 +7,7 @@ + // + //===----------------------------------------------------------------------===// + +-#if defined(_LIBCPP_USING_WIN32_RANDOM) ++#if defined(_LIBCPP_USING_WIN32_RANDOM) || defined(__MINGW32__) + // Must be defined before including stdlib.h to enable rand_s(). + #define _CRT_RAND_S + #endif // defined(_LIBCPP_USING_WIN32_RANDOM) +-- +2.4.5 + diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index e4c696c4d7..925aee580e 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -3,19 +3,25 @@ # Contributor: Ray Donnelly _realname=clang +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-clang-analyzer" "${MINGW_PACKAGE_PREFIX}-clang-tools-extra" + "${MINGW_PACKAGE_PREFIX}-compiler-rt" + "${MINGW_PACKAGE_PREFIX}-libc++abi" + "${MINGW_PACKAGE_PREFIX}-libc++" + "${MINGW_PACKAGE_PREFIX}-lld" "${MINGW_PACKAGE_PREFIX}-llvm" - #"${MINGW_PACKAGE_PREFIX}-compiler-rt" ) -pkgver=3.6.2 +pkgver=3.7.0 pkgrel=1 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" license=("custom:University of Illinois/NCSA Open Source License") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-libffi" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python3-sphinx" "python2" "tar" "groff") @@ -26,41 +32,57 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/compiler-rt-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/test-suite-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/libcxx-${pkgver}.src.tar.xz{,.sig} + http://llvm.org/releases/${pkgver}/libcxxabi-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/clang-tools-extra-${pkgver}.src.tar.xz{,.sig} - http://llvm.org/releases/${pkgver}/lldb-${pkgver}.src.tar.xz{,.sig} - asminfo-for-mingw-arm-and-cygwin-arm.patch - clang-mingw-driver.patch - mingw-arm-and-cygwin-arm-target.patch - llvm-3.5.0-fix-cmake-llvm-exports.patch - 0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch - 0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch + http://llvm.org/releases/${pkgver}/lld-${pkgver}.src.tar.xz{,.sig} + 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch + 0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch + 0013-mingw-w64-dont-have-dl-library.patch + 0031-COFF-add-the-mingw-alias-for-ImageBase.patch + 0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch + 0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch + 0034-GNU-add-support-for-linking-PECOFF.patch + 0041-libcxx-add-support-for-mingw-w64.patch ) -sha256sums=('f60dc158bfda6822de167e87275848969f0558b3134892ff54fced87e4667b94' + +# Some patch notes :) +#0001-0009 -> llvm +#0011-0019 -> clang +#0021-0029 -> rt +#0031-0039 -> lld +#0041-0049 -> c++ + +sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' 'SKIP' - 'ae9180466a23acb426d12444d866b266ff2289b266064d362462e44f8d4699f3' + '4ed740c5a91df1c90a4118c5154851d6a475f39a91346bdf268c1c29c13aa1cc' 'SKIP' - '0f2ff37d80a64575fecd8cf0d5c50f7ac1f837ddf700d1855412bb7547431d87' + '227fa998520bc94974a428dc8e7654d9bdf277e5bc70d4064ebc05691bd62b0b' 'SKIP' - '66f2e07eea910563d294ef09fc71f8e79d4b6001dc0944b1da265c2e50a5c08a' + '186d15c2233546e9e4c6b5a6ef572068a9a4fca900c74afb3a86954611a59653' 'SKIP' - '52f3d452f48209c9df1792158fdbd7f3e98ed9bca8ebb51fcd524f67437c8b81' + 'c18f3c8333cd7e678c1424a57fe5e25efe740ca7caf62ac67152b4723f3ad08e' 'SKIP' - '6a0ec627d398f501ddf347060f7a2ccea4802b2494f1d4fd7bda3e0442d04feb' + '48b074fd334958b2d8bab893c897a0c8258328782cdec2d229c7bce432b49beb' 'SKIP' - '940dc96b64919b7dbf32c37e0e1d1fc88cc18e1d4b3acf1e7dfe5a46eb6523a9' + '8ae8a0a3a96b7a700412d67df0af172cb2fc1326beec575fcc0f71d2e72709cd' + 'SKIP' + 'ddb658b789c501efbe4f54ff8ced2c07cd9ff686c92445d8a1ab2cd5dbd837ed' 'SKIP' - 'b37ad0edb84ef13e0750c7f8d41441363859928cb9133d05f248afa41f44fc93' - '7c9366df58b27378c104d37466caa761873440e5fbee707d3d22693add5d2cdb' - '5727fb67902b9cb3ef4e1c57bf16128076911b8bf58357f65e5c5201a6b59629' - '841a153d0e9d2d196ea5318388ff295e69c41547eb73b24edf92a1b2cc3cccdd' '0804146b32138d55c611336cc81e1783c29a8fab0fe62f248ba1ad7acc711c4d' - '13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de') + '13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de' + '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' + '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' + '96a6fcd81b8d5134b4273a2e413cd268430022533f1bfb44ed73503ee0ae7e87' + '08260b1ee54fad7e0015d66b117937701d2ce4ca1814b012250de03a0dae9317' + '3fa2c76eea1a55f5b03e7677e73a5f76a6d0fb326a23c606e88c683238f84d90' + '5b8edbbb638c906216e20229529e8348abc50d5886d20e07af08543e1e574e94') validpgpkeys=('11E521D646982372EB577A1F8F0871F202119294') noextract=(cfe-${pkgver}.src.tar.xz - libcxx-${pkgver}.src.tar.xz - lldb-${pkgver}.src.tar.xz - test-suite-${pkgver}.src.tar.xz) + #libcxx-${pkgver}.src.tar.xz + #lldb-${pkgver}.src.tar.xz + test-suite-${pkgver}.src.tar.xz + ) prepare() { plain "Extracting clang-${pkgver}.src.tar.xz due to symlink(s) without pre-existing target(s)" @@ -68,16 +90,31 @@ prepare() { [[ -d ${srcdir}/cfe-${pkgver} ]] || tar -xJvf ${srcdir}/cfe-${pkgver}.src.tar.xz -C ${srcdir} || true cd "${srcdir}/llvm-${pkgver}.src" - patch -p1 -i ${srcdir}/asminfo-for-mingw-arm-and-cygwin-arm.patch - patch -p1 -i ${srcdir}/0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch + patch -p1 -i ${srcdir}/0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch cd "${srcdir}/cfe-${pkgver}.src" - patch -p1 -i ${srcdir}/clang-mingw-driver.patch - patch -p1 -i ${srcdir}/mingw-arm-and-cygwin-arm-target.patch - patch -p1 -i ${srcdir}/0013-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch + patch -p1 -i ${srcdir}/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch + patch -p1 -i ${srcdir}/0013-mingw-w64-dont-have-dl-library.patch - mv "${srcdir}/llvm-${pkgver}.src" "$srcdir/llvm-${pkgver}" - cd "${srcdir}/llvm-${pkgver}" + cd "${srcdir}/lld-${pkgver}.src" + # patch -p1 -i "${srcdir}"/0031-COFF-add-the-mingw-alias-for-ImageBase.patch + patch -p1 -i "${srcdir}"/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch + patch -p1 -i "${srcdir}"/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch + patch -p1 -i "${srcdir}"/0034-GNU-add-support-for-linking-PECOFF.patch + + cd "${srcdir}/libcxx-${pkgver}.src" + patch -p1 -i "${srcdir}"/0041-libcxx-add-support-for-mingw-w64.patch + + cd "${srcdir}" + mv lld-${pkgver}.src llvm-${pkgver}.src/tools/lld + mv cfe-${pkgver}.src llvm-${pkgver}.src/tools/clang + mv clang-tools-extra-${pkgver}.src llvm-${pkgver}.src/tools/clang/tools/extra + mv compiler-rt-${pkgver}.src llvm-${pkgver}.src/projects/compiler-rt + mv libcxxabi-${pkgver}.src llvm-${pkgver}.src/projects/libcxxabi + mv libcxx-${pkgver}.src llvm-${pkgver}.src/projects/libcxx + # mv testsuite-${pkgver}.src llvm-${pkgver}.src/projects/test-suite + + cd "${srcdir}/llvm-${pkgver}.src" # Fix docs installation directory sed -i 's:$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \ @@ -87,19 +124,21 @@ prepare() { sed -i '/@LLVM_CONFIG_CMAKE_DIR@/s:$(PROJ_cmake):$(PROJ_prefix)/share/llvm/cmake:' \ cmake/modules/Makefile + #mv "${srcdir}/llvm-${pkgver}.src" "$srcdir/llvm-${pkgver}" + # At the present, clang must reside inside the LLVM source code tree to build # See http://llvm.org/bugs/show_bug.cgi?id=4840 - [[ -d tools/clang ]] && rm -rf tools/clang - mv "${srcdir}/cfe-${pkgver}.src" tools/clang + #[[ -d tools/clang ]] && rm -rf tools/clang + #mv "${srcdir}/cfe-${pkgver}.src" tools/clang - [[ -d projects/compiler-rt ]] && rm -rf projects/compiler-rt - mv "${srcdir}/compiler-rt-${pkgver}.src" projects/compiler-rt + #[[ -d projects/compiler-rt ]] && rm -rf projects/compiler-rt + #mv "${srcdir}/compiler-rt-${pkgver}.src" projects/compiler-rt # [ -d projects/test-suite ] && rm -rf projects/test-suite # mv "${srcdir}/test-suite-${pkgver}.src" projects/test-suite - [[ -d tools/clang/tools/extra ]] && rm -rf tools/clang/tools/extra - mv "${srcdir}/clang-tools-extra-${pkgver}.src" tools/clang/tools/extra + #[[ -d tools/clang/tools/extra ]] && rm -rf tools/clang/tools/extra + #mv "${srcdir}/clang-tools-extra-${pkgver}.src" tools/clang/tools/extra #[ -d tools/lldb ] && rm -rf tools/lldb #mv "${srcdir}/lldb-${pkgver}.src" tools/lldb @@ -114,34 +153,43 @@ prepare() { } build() { - cd "$srcdir" - mkdir -p build-${MINGW_CHOST} - cd build-${MINGW_CHOST} - echo 'ac_cv_have_decl_strerror_s=${ac_cv_have_decl_strerror_s=no}' > config.cache + mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} # Include location of libffi headers in CPPFLAGS - CPPFLAGS+=" $(pkg-config --cflags libffi)" + #CPPFLAGS+="$(pkg-config --cflags libffi)" + FFI_INCLUDE_DIR="$(pkg-config --cflags libffi)" + FFI_INCLUDE_DIR=$(echo $FFI_INCLUDE_DIR | sed 's|-I||g') - ../llvm-${pkgver}/configure \ - -C \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --with-sysroot=${MINGW_PREFIX} \ - --enable-targets=all \ - --enable-optimized \ - --disable-assertions \ - --disable-pthreads \ - --disable-bindings \ - --with-python=/usr/bin/python2 \ - --enable-libffi \ - --enable-docs + # "Ninja" cant install each component seperately + # https://github.com/martine/ninja/issues/932 + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_MAKE_PROGRAM="/usr/bin/make.exe" \ + -DCMAKE_C_COMPILER="${MINGW_PREFIX}/bin/gcc.exe" \ + -DCMAKE_CXX_COMPILER="${MINGW_PREFIX}/bin/g++.exe" \ + -DFFI_INCLUDE_DIR="${FFI_INCLUDE_DIR}" \ + -DCMAKE_C_FLAGS="${CFLAGS}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS} ${CPPFLAGS}" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_TARGETS_TO_BUILD="ARM;CppBackend;X86" \ + -DLLVM_ENABLE_ASSERTIONS=OFF \ + -DLLVM_ENABLE_THREADS=0 \ + -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \ + -DLLVM_ENABLE_FFI=ON \ + -DLLVM_ENABLE_SPHINX=ON \ + -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE -D_LIBCPP_HAS_NO_CONSTEXPR" \ + -DLIBCXX_ENABLE_SHARED=OFF \ + -DLIBCXXABI_ENABLE_SHARED=OFF \ + ../llvm-${pkgver}.src make - make -C ../llvm-${pkgver}/docs -f Makefile.sphinx man - make -C ../llvm-${pkgver}/docs -f Makefile.sphinx html - make -C ../llvm-${pkgver}/tools/clang/docs -f Makefile.sphinx html - setup + #make -C ../llvm-${pkgver}/docs -f Makefile.sphinx man + #make -C ../llvm-${pkgver}/docs -f Makefile.sphinx html + #make -C ../llvm-${pkgver}/tools/clang/docs -f Makefile.sphinx html + #setup } check() { @@ -150,115 +198,22 @@ check() { #make check } -setup() { - local destdir=${srcdir}/dest - [[ -d ${destdir} ]] && rm -rf ${destdir} - mkdir -p ${destdir} - - # CLANG-TOOLS-EXTRA - cd "$srcdir/build-${MINGW_CHOST}/tools/clang/tools/extra" - make DESTDIR="$destdir/clang-tools-extra" install - # Fix permissions of static libs - chmod -x ${destdir}/clang-tools-extra${MINGW_PREFIX}/lib/*.a - install -Dm644 ${srcdir}/llvm-${pkgver}/tools/clang/tools/extra/LICENSE.TXT "$destdir/clang-tools-extra${MINGW_PREFIX}/share/licenses/clang-tools-extra/LICENSE" - cd ${srcdir} - mv ${srcdir}/build-${MINGW_CHOST}/tools/clang/tools/extra ${srcdir}/clang-tools-extra-${MINGW_CHOST} - mv ${srcdir}/llvm-${pkgver}/tools/clang/tools/extra ${srcdir}/clang-tools-extra-${pkgver} - - # CLANG - cd "$srcdir/build-${MINGW_CHOST}/tools/clang" - make -j1 DESTDIR="$destdir/clang" install - # Fix mis-named clang doc folder (is llvm, should be clang) - mv ${destdir}/clang${MINGW_PREFIX}/share/doc/llvm ${destdir}/clang${MINGW_PREFIX}/share/doc/clang - - # Install html docs - install -d "${destdir}"/clang${MINGW_PREFIX}/share/doc/clang/html - cp -rf ${srcdir}/llvm-${pkgver}/tools/clang/docs/_build/html/* "${destdir}"/clang${MINGW_PREFIX}/share/doc/clang/html/ - rm -r "${destdir}"/clang${MINGW_PREFIX}/share/doc/clang/html/_sources - - # CLANG-ANAYLYSER - install -d ${destdir}/clang-analyzer${MINGW_PREFIX}/{bin,lib/clang-analyzer} - for _tool in scan-{build,view}; do - cp -r ${srcdir}/llvm-${pkgver}/tools/clang/tools/${_tool} ${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer/ - ln -s ${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer/${_tool}/${_tool} ${destdir}/clang-analyzer${MINGW_PREFIX}/bin/ - done - - # scan-build looks for clang within the same directory - install -d ${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ - ln -s ${destdir}/clang${MINGW_PREFIX}/bin/clang.exe ${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ - - # Relocate man page - install -d ${destdir}/clang-analyzer${MINGW_PREFIX}/share/man/man1 - mv ${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer/scan-build/scan-build.1 \ - ${destdir}/clang-analyzer${MINGW_PREFIX}/share/man/man1/ - - # Compile Python scripts - python2 -m compileall "${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer" - python2 -O -m compileall "${destdir}/clang-analyzer${MINGW_PREFIX}/lib/clang-analyzer" - install -Dm644 ${srcdir}/llvm-${pkgver}/tools/clang/LICENSE.TXT "${destdir}/clang-analyzer${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE" - - # LLVM - cd ${srcdir} - # Move clang out of the way *before* installing llvm, both src and build. We'll put build back afterwards to allow re-packaging. - # but the src move is undoing what prepare() did. - mv "$srcdir/build-${MINGW_CHOST}/tools/clang" "${srcdir}/clang-${MINGW_CHOST}" - mv "$srcdir/llvm-${pkgver}/tools/clang" "${srcdir}/clang-${pkgver}" # Put src back where it was (clang) - cd "$srcdir/build-${MINGW_CHOST}" - make -j1 DESTDIR="${destdir}/llvm" install - - # Install man pages - install -d "${destdir}"/llvm${MINGW_PREFIX}/share/man/man1 - cp ${srcdir}/llvm-${pkgver}/docs/_build/man/*.1 "${destdir}"/llvm${MINGW_PREFIX}/share/man/man1/ - - # Install html docs - install -d "${destdir}"/llvm${MINGW_PREFIX}/share/doc/llvm/html - cp -rf ${srcdir}/llvm-${pkgver}/docs/_build/html/* "${destdir}"/llvm${MINGW_PREFIX}/share/doc/llvm/html/ - rm -r "${destdir}"/llvm${MINGW_PREFIX}/share/doc/llvm/html/_sources - - # Install CMake stuff - install -d "${destdir}"/llvm${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} - install -Dm644 ${srcdir}/llvm-${pkgver}/cmake/modules/*.cmake "${destdir}"/llvm${MINGW_PREFIX}/share/llvm/cmake/modules/ - install -Dm644 ${srcdir}/llvm-${pkgver}/cmake/platforms/*.cmake "${destdir}"/llvm${MINGW_PREFIX}/share/llvm/cmake/platforms/ - - # Move all back - mv "${srcdir}/clang-${MINGW_CHOST}" "${srcdir}/build-${MINGW_CHOST}/tools/clang" - mv "${srcdir}/clang-${pkgver}" "${srcdir}/llvm-${pkgver}/tools/clang" - mv "${srcdir}/clang-tools-extra-${MINGW_CHOST}" "${srcdir}/build-${MINGW_CHOST}/tools/clang/tools/extra" - mv "${srcdir}/clang-tools-extra-${pkgver}" "${srcdir}/llvm-${pkgver}/tools/clang/tools/extra" - - # Undo more prepare() moves. - #mv "${srcdir}/llvm-${pkgver}/projects/compiler-rt" "${srcdir}/compiler-rt-${pkgver}.src" # Put src back where it was (the rest) - #mv "${srcdir}/llvm-${pkgver}/projects/test-suite" "${srcdir}/test-suite-${pkgver}.src" - #mv "${srcdir}/llvm-${pkgver}/projects/libcxx" "${srcdir}/libcxx-${pkgver}.src" - #mv "${srcdir}/llvm-${pkgver}/tools/clang/tools/extra" "${srcdir}/clang-tools-extra-${pkgver}.src" - #mv "${srcdir}/llvm-${pkgver}/tools/clang" "${srcdir}/clang-${pkgver}.src" -} - package_clang(){ pkgdesc="C language family frontend for LLVM" depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") - mv ${srcdir}/dest/clang/* ${pkgdir} -} + # Move .. + cd "${srcdir}" + mv llvm-${pkgver}.src/tools/clang/tools/extra clang-tools-extra-${pkgver} + mv build-${CARCH}/tools/clang/tools/extra clang-tools-extra-${CARCH} -# package_compiler-rt(){ -# cd ${srcdir}/compiler-rt -# } + cd build-${CARCH}/tools/clang + make -j1 DESTDIR="$pkgdir" rebuild_cache install -package_llvm(){ - pkgdesc="Low Level Virtual Machine" - depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "${MINGW_PACKAGE_PREFIX}-compiler-rt" - install=llvm-${CARCH}.install - - mv ${srcdir}/dest/llvm/* ${pkgdir} -} - -package_clang-analyzer() { - pkgdesc="A source code analysis framework" - url="http://clang-analyzer.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}" "${MINGW_PACKAGE_PREFIX}-python2") - - mv ${srcdir}/dest/clang-analyzer/* ${pkgdir} + # .. Unmove + cd "${srcdir}" + mv clang-tools-extra-${pkgver} llvm-${pkgver}.src/tools/clang/tools/extra + mv clang-tools-extra-${CARCH} build-${CARCH}/tools/clang/tools/extra } package_clang-tools-extra() { @@ -266,7 +221,123 @@ package_clang-tools-extra() { url="http://clang.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}") - mv ${srcdir}/dest/clang-tools-extra/* ${pkgdir} + cd "${srcdir}"/build-${CARCH}/tools/clang/tools/extra + make -j1 DESTDIR="${pkgdir}" rebuild_cache install +} + +package_compiler-rt(){ + pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)" + url="http://compiler-rt.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") + + cd "${srcdir}"/build-${CARCH}/projects/compiler-rt + make -j1 DESTDIR="${pkgdir}" rebuild_cache install +} + +package_libcxxabi(){ + pkgdesc="C++ Standard Library Support (mingw-w64)" + + cd "${srcdir}"/build-${CARCH}/projects/libcxxabi + make -j1 DESTDIR="${pkgdir}" rebuild_cache install +} + +package_libcxx(){ + pkgdesc="C++ Standard Library (mingw-w64)" + + cd "${srcdir}"/build-${CARCH}/projects/libcxx + make -j1 DESTDIR="${pkgdir}" rebuild_cache install +} + +package_lld(){ + pkgdesc="Linker tools for LLVM (mingw-w64)" + depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") + + cd "${srcdir}"/build-${CARCH}/tools/lld + make -j1 DESTDIR="${pkgdir}" rebuild_cache install +} + +package_llvm(){ + pkgdesc="Low Level Virtual Machine (mingw-w64)" + #depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "${MINGW_PACKAGE_PREFIX}-compiler-rt" + install=llvm-${CARCH}.install + + # Move .. + cd "${srcdir}" + mv llvm-${pkgver}.src/tools/clang clang-${pkgver}.src + mv build-${CARCH}/tools/clang clang-${CARCH} + + mv llvm-${pkgver}.src/tools/lld lld-${pkgver}.src + mv build-${CARCH}/tools/lld lld-${CARCH} + + mv llvm-${pkgver}.src/projects/compiler-rt compiler-rt-${pkgver}.src + mv build-${CARCH}/projects/compiler-rt compiler-rt-${CARCH} + + mv llvm-${pkgver}.src/projects/libcxxabi libcxxabi-${pkgver}.src + mv build-${CARCH}/projects/libcxxabi libcxxabi-${CARCH} + + mv llvm-${pkgver}.src/projects/libcxx libcxx-${pkgver}.src + mv build-${CARCH}/projects/libcxx libcxx-${CARCH} + + cd build-${CARCH} + make -j1 DESTDIR="${pkgdir}" install + + # .. Unmove + cd "${srcdir}" + mv clang-${pkgver}.src llvm-${pkgver}.src/tools/clang + mv clang-${CARCH} build-${CARCH}/tools/clang + + mv lld-${pkgver}.src llvm-${pkgver}.src/tools/lld + mv lld-${CARCH} build-${CARCH}/tools/lld + + mv compiler-rt-${pkgver}.src llvm-${pkgver}.src/projects/compiler-rt + mv compiler-rt-${CARCH} build-${CARCH}/projects/compiler-rt + + mv libcxxabi-${pkgver}.src llvm-${pkgver}.src/projects/libcxxabi + mv libcxxabi-${CARCH} build-${CARCH}/projects/libcxxabi + + mv libcxx-${pkgver}.src llvm-${pkgver}.src/projects/libcxx + mv libcxx-${CARCH} build-${CARCH}/projects/libcxx + + # Install CMake stuff + install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} + install -Dm644 "${srcdir}"/llvm-${pkgver}.src/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/modules/" + install -Dm644 "${srcdir}"/llvm-${pkgver}.src/cmake/platforms/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/platforms/" + install -Dm644 "${srcdir}/build-${CARCH}"/share/llvm/cmake/LLVMConfig.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/LLVMConfig.cmake" +} + +package_clang-analyzer() { + pkgdesc="A source code analysis framework (mingw-w64)" + url="http://clang-analyzer.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}" "${MINGW_PACKAGE_PREFIX}-python2") + + cd "${srcdir}/llvm-${pkgver}.src/tools/clang" + + install -d "${pkgdir}"${MINGW_PREFIX}/{bin,lib/clang-analyzer} + for _tool in scan-{build,view}; do + cp -r tools/${_tool} "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/ + ln -s "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/${_tool}/${_tool} "${pkgdir}"${MINGW_PREFIX}/bin/ + done + + # scan-build looks for clang within the same directory + install -d "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ + ln -s "${srcdir}"/build-${CARCH}/bin/clang.exe "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ + + # Relocate man page + install -d "${pkgdir}"${MINGW_PREFIX}/share/man/man1 + mv "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/scan-build.1 \ + "${pkgdir}"${MINGW_PREFIX}/share/man/man1/ + + # Use Python 2 + #sed -i \ + # -e 's|env python$|&2|' \ + # -e 's|/usr/bin/python$|&2|' \ + # "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-view/scan-view \ + # "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/set-xcode-analyzer + + # Compile Python scripts + python2 -m compileall "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer + python2 -O -m compileall "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer + install -Dm644 LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE } package_mingw-w64-i686-clang(){ @@ -281,9 +352,21 @@ package_mingw-w64-i686-clang-tools-extra(){ package_clang-tools-extra } -# package_mingw-w64-i686-compiler-rt(){ -# package_compiler-rt -# } +package_mingw-w64-i686-compiler-rt(){ + package_compiler-rt +} + +package_mingw-w64-i686-libc++abi(){ + package_libcxxabi +} + +package_mingw-w64-i686-libc++(){ + package_libcxx +} + +package_mingw-w64-i686-lld(){ + package_lld +} package_mingw-w64-i686-llvm(){ package_llvm @@ -301,9 +384,21 @@ package_mingw-w64-x86_64-clang-tools-extra(){ package_clang-tools-extra } -# package_mingw-w64-x86_64-compiler-rt(){ -# package_compiler-rt -# } +package_mingw-w64-x86_64-compiler-rt(){ + package_compiler-rt +} + +package_mingw-w64-x86_64-libc++abi(){ + package_libcxxabi +} + +package_mingw-w64-x86_64-libc++(){ + package_libcxx +} + +package_mingw-w64-x86_64-lld(){ + package_lld +} package_mingw-w64-x86_64-llvm(){ package_llvm diff --git a/mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch b/mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch deleted file mode 100644 index 25239bd098..0000000000 --- a/mingw-w64-clang/asminfo-for-mingw-arm-and-cygwin-arm.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 48c6c12896cce015e112aabb1e22ce7779139d44 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Thu, 4 Jun 2015 22:23:29 +0100 -Subject: asminfo for mingw arm and cygwin arm - - -diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp -index 92c4d6a..e518d2e 100644 ---- a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp -+++ b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp -@@ -282,7 +282,9 @@ static MCAsmInfo *createARMMCAsmInfo(const MCRegisterInfo &MRI, - MCAsmInfo *MAI; - if (TheTriple.isOSDarwin() || TheTriple.isOSBinFormatMachO()) - MAI = new ARMMCAsmInfoDarwin(TT); -- else if (TheTriple.isWindowsItaniumEnvironment()) -+ else if (TheTriple.isWindowsItaniumEnvironment() || -+ TheTriple.isWindowsGNUEnvironment() || -+ TheTriple.isWindowsCygwinEnvironment()) - MAI = new ARMCOFFMCAsmInfoGNU(); - else if (TheTriple.isWindowsMSVCEnvironment()) - MAI = new ARMCOFFMCAsmInfoMicrosoft(); --- -2.4.2 - diff --git a/mingw-w64-clang/clang-mingw-driver.patch b/mingw-w64-clang/clang-mingw-driver.patch deleted file mode 100644 index e0cf267521..0000000000 --- a/mingw-w64-clang/clang-mingw-driver.patch +++ /dev/null @@ -1,669 +0,0 @@ -Author: Martell Malone - -This adds the mingw64 driver to clang even with the new triplets compnerd has created in clang. -Based off of ruben driver patch back from Jan - - -diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td -index bb1fe2d..9877216 100644 ---- a/include/clang/Driver/Options.td -+++ b/include/clang/Driver/Options.td -@@ -1041,6 +1041,11 @@ - def masm_EQ : Joined<["-"], "masm=">, Group, Flags<[DriverOption]>; - def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group; - def mconstant_cfstrings : Flag<["-"], "mconstant-cfstrings">, Group; -+def mconsole : Joined<["-"], "mconsole">, Group, Flags<[DriverOption]>; -+def mwindows : Joined<["-"], "mwindows">, Group, Flags<[DriverOption]>; -+def mdll : Joined<["-"], "mdll">, Group, Flags<[DriverOption]>; -+def municode : Joined<["-"], "municode">, Group, Flags<[DriverOption]>; -+def mthreads : Joined<["-"], "mthreads">, Group, Flags<[DriverOption]>; - def mcpu_EQ : Joined<["-"], "mcpu=">, Group; - def mdynamic_no_pic : Joined<["-"], "mdynamic-no-pic">, Group; - def mfix_and_continue : Flag<["-"], "mfix-and-continue">, Group; -diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt -index e874ab8..71b7ec6 100644 ---- a/lib/Driver/CMakeLists.txt -+++ b/lib/Driver/CMakeLists.txt -@@ -10,6 +10,7 @@ - Driver.cpp - DriverOptions.cpp - Job.cpp -+ MinGWToolChain.cpp - Multilib.cpp - MSVCToolChain.cpp - Phases.cpp -diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index ca3e50f..c49d9fd 100644 ---- a/lib/Driver/Driver.cpp -+++ b/lib/Driver/Driver.cpp -@@ -1993,12 +1993,7 @@ - TC = new toolchains::Generic_GCC(*this, Target, Args); - break; - case llvm::Triple::GNU: -- // FIXME: We need a MinGW toolchain. Use the default Generic_GCC -- // toolchain for now as the default case would below otherwise. -- if (Target.isOSBinFormatELF()) -- TC = new toolchains::Generic_ELF(*this, Target, Args); -- else -- TC = new toolchains::Generic_GCC(*this, Target, Args); -+ TC = new toolchains::MinGW(*this, Target, Args); - break; - case llvm::Triple::MSVC: - case llvm::Triple::UnknownEnvironment: -diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp -new file mode 100644 -index 0000000..87c0aa2 ---- /dev/null -+++ b/lib/Driver/MinGWToolChain.cpp -@@ -0,0 +1,191 @@ -+//===--- MinGWToolChain.cpp - MinGWToolChain Implementation -----------------------===// -+// -+// The LLVM Compiler Infrastructure -+// -+// This file is distributed under the University of Illinois Open Source -+// License. See LICENSE.TXT for details. -+// -+//===----------------------------------------------------------------------===// -+ -+#include "ToolChains.h" -+#include "clang/Basic/CharInfo.h" -+#include "clang/Basic/DiagnosticIDs.h" -+#include "clang/Basic/Version.h" -+#include "clang/Driver/Compilation.h" -+#include "clang/Driver/Driver.h" -+#include "clang/Driver/DriverDiagnostic.h" -+#include "clang/Driver/Options.h" -+#include "llvm/Option/Arg.h" -+#include "llvm/Option/ArgList.h" -+#include "llvm/Support/ErrorHandling.h" -+#include "llvm/Support/FileSystem.h" -+#include "llvm/Support/Path.h" -+ -+using namespace clang::diag; -+using namespace clang::driver; -+using namespace clang::driver::toolchains; -+using namespace clang; -+using namespace llvm::opt; -+ -+MinGW::MinGW(const Driver &D, const llvm::Triple& Triple, -+ const ArgList &Args) -+ : ToolChain(D, Triple, Args) { -+ //TODO: libc++ directory -+ -+ // Get GCC version string for library and header directories -+ const std::string GCClibdir = -+#ifdef LLVM_ON_WIN32 -+ getDriver().Dir + "/../lib/gcc/" + getTriple().getArchName().str() + "-w64-mingw32"; -+#else -+ getDriver().SysRoot + "/usr/lib/gcc/" + getTriple().getArchName().str() + "-w64-mingw32"; -+#endif -+ if (llvm::sys::fs::exists(GCClibdir)) { -+ // Find subdirectory, should be the version of MinGW-w64 GCC -+ std::error_code EC; -+ llvm::sys::fs::directory_iterator entry(StringRef(GCClibdir), EC); -+ if (!EC) -+ GCCVersion = llvm::sys::path::filename(entry->path()); -+ // TODO report error: "no MinGW-w64 GCC installation found" -+ } -+ -+#ifdef LLVM_ON_WIN32 -+ // assume sysrooted compiler -+ getFilePaths().push_back(getDriver().Dir + "/../lib"); -+ getFilePaths().push_back(getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/lib"); -+ getFilePaths().push_back(getDriver().Dir + "/../lib/gcc/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/" + GCCVersion); -+ -+#else -+ // assume install prefix /usr -+ getFilePaths().push_back(getDriver().SysRoot + "/usr/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/lib"); -+ getFilePaths().push_back(getDriver().SysRoot + "/usr/lib/gcc/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/" + GCCVersion); -+#endif -+} -+ -+Tool *MinGW::buildLinker() const { -+ return new tools::MinGW::Link(*this); -+} -+ -+bool MinGW::IsIntegratedAssemblerDefault() const { -+ return true; -+} -+ -+Tool *MinGW::getTool(Action::ActionClass AC) const { -+ switch (AC) { -+ case Action::PreprocessJobClass: -+ if (!Preprocess) -+ Preprocess.reset(new tools::gcc::Preprocess(*this)); -+ return Preprocess.get(); -+ case Action::CompileJobClass: -+ if (!Compile) -+ Compile.reset(new tools::gcc::Compile(*this)); -+ return Compile.get(); -+ default: -+ return ToolChain::getTool(AC); -+ } -+} -+ -+Tool *MinGW::buildAssembler() const { -+ return new tools::MinGW::Assemble(*this); -+} -+ -+bool MinGW::IsUnwindTablesDefault() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+bool MinGW::isPICDefault() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+bool MinGW::isPIEDefault() const { -+ return false; -+} -+ -+ -+bool MinGW::isPICDefaultForced() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+void MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, -+ ArgStringList &CC1Args) const { -+ if (DriverArgs.hasArg(options::OPT_nostdinc)) -+ return; -+ -+ if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { -+ SmallString<128> P(getDriver().ResourceDir); -+ llvm::sys::path::append(P, "include"); -+ addSystemInclude(DriverArgs, CC1Args, P.str()); -+ } -+ -+ if (DriverArgs.hasArg(options::OPT_nostdlibinc)) -+ return; -+ -+#ifdef LLVM_ON_WIN32 -+ // Clang runs on Windows, assume sysroot toolchain -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include"); -+ // Add users standard include directory -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include"); -+#else -+ // Clang runs somewhere else, e.g. Linux, assume install prefix /usr -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include"); -+#endif -+} -+ -+void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, -+ ArgStringList &CC1Args) const { -+ if (DriverArgs.hasArg(options::OPT_nostdlibinc) || -+ DriverArgs.hasArg(options::OPT_nostdincxx)) -+ return; -+ -+ // Check if libc++ has been enabled and provide its include paths if so. -+ if (GetCXXStdlibType(DriverArgs) == ToolChain::CST_Libcxx) { -+ // libc++ is always installed at a fixed path on Linux currently. -+#ifdef LLVM_ON_WIN32 -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/v1"); -+#else -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/include/c++/v1"); -+#endif -+ return; -+ } -+#ifdef LLVM_ON_WIN32 -+ // Assume sysroot toolchain -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion -+ + "/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion -+ + "/backward"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/backward"); -+#else -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion -+ + "/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion + "/backward"); -+#endif -+} -diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h -index d5d0581..556afed 100644 ---- a/lib/Driver/ToolChains.h -+++ b/lib/Driver/ToolChains.h -@@ -751,6 +751,35 @@ - Tool *buildAssembler() const override; - }; - -+class LLVM_LIBRARY_VISIBILITY MinGW : public ToolChain { -+public: -+ MinGW(const Driver &D, const llvm::Triple &Triple, -+ const llvm::opt::ArgList &Args); -+ -+ bool IsIntegratedAssemblerDefault() const override; -+ bool IsUnwindTablesDefault() const override; -+ bool isPICDefault() const override; -+ bool isPIEDefault() const override; -+ bool isPICDefaultForced() const override; -+ -+ void -+ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, -+ llvm::opt::ArgStringList &CC1Args) const override; -+ void -+ AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, -+ llvm::opt::ArgStringList &CC1Args) const override; -+ -+protected: -+ Tool *buildLinker() const override; -+ Tool *buildAssembler() const override; -+ Tool *getTool(Action::ActionClass AC) const override; -+ -+private: -+ std::string GCCVersion; -+ mutable std::unique_ptr Preprocess; -+ mutable std::unique_ptr Compile; -+}; -+ - - class LLVM_LIBRARY_VISIBILITY XCore : public ToolChain { - public: -diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 892810e..a670502 100644 ---- a/lib/Driver/Tools.cpp -+++ b/lib/Driver/Tools.cpp -@@ -7949,6 +7949,210 @@ - return new Command(JA, *this, Args.MakeArgString(Exec), CmdArgs); - } - -+/// MinGW Tools -+void MinGW::Assemble::ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const ArgList &Args, -+ const char *LinkingOutput) const { -+ ArgStringList CmdArgs; -+ -+ if (getToolChain().getArch() == llvm::Triple::x86) { -+ CmdArgs.push_back("--32"); -+ } else if (getToolChain().getArch() == llvm::Triple::x86_64) { -+ CmdArgs.push_back("--64"); -+ } -+ -+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, -+ options::OPT_Xassembler); -+ -+ CmdArgs.push_back("-o"); -+ CmdArgs.push_back(Output.getFilename()); -+ -+ for (const auto &II : Inputs) -+ CmdArgs.push_back(II.getFilename()); -+ -+ const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as")); -+ C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); -+ -+ if (Args.hasArg(options::OPT_gsplit_dwarf)) -+ SplitDebugInfo(getToolChain(), C, *this, JA, Args, Output, -+ SplitDebugName(Args, Inputs)); -+} -+ -+void MinGW::Link::AddLibGCC(const ArgList &Args, ArgStringList &CmdArgs) const { -+ if (Args.hasArg(options::OPT_mthreads)) -+ CmdArgs.push_back("-lmingwthrd"); -+ CmdArgs.push_back("-lmingw32"); -+ if (Args.hasArg(options::OPT_shared) || -+ Args.hasArg(options::OPT_shared_libgcc)) { -+ CmdArgs.push_back("-lgcc_s"); -+ CmdArgs.push_back("-lgcc"); -+ } else { -+ CmdArgs.push_back("-lgcc"); -+ CmdArgs.push_back("-lgcc_eh"); -+ } -+ CmdArgs.push_back("-lmoldname"); -+ CmdArgs.push_back("-lmingwex"); -+ CmdArgs.push_back("-lmsvcrt"); -+} -+ -+void MinGW::Link::ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const ArgList &Args, -+ const char *LinkingOutput) const { -+ const ToolChain &TC = getToolChain(); -+ const Driver &D = TC.getDriver(); -+ //const SanitizerArgs &Sanitize = TC.getSanitizerArgs(); -+ -+ ArgStringList CmdArgs; -+ -+ // Silence warning for "clang -g foo.o -o foo" -+ Args.ClaimAllArgs(options::OPT_g_Group); -+ // and "clang -emit-llvm foo.o -o foo" -+ Args.ClaimAllArgs(options::OPT_emit_llvm); -+ // and for "clang -w foo.o -o foo". Other warning options are already -+ // handled somewhere else. -+ Args.ClaimAllArgs(options::OPT_w); -+ -+ if (!D.SysRoot.empty()) -+ CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); -+ -+ if (Args.hasArg(options::OPT_s)) -+ CmdArgs.push_back("-s"); -+ -+ CmdArgs.push_back("-m"); -+ if (TC.getArch() == llvm::Triple::x86) -+ CmdArgs.push_back("i386pe"); -+ if (TC.getArch() == llvm::Triple::x86_64) -+ CmdArgs.push_back("i386pep"); -+ -+ if (Args.hasArg(options::OPT_mwindows)) { -+ CmdArgs.push_back("--subsystem"); -+ CmdArgs.push_back("windows"); -+ } else if (Args.hasArg(options::OPT_mconsole)) { -+ CmdArgs.push_back("--subsystem"); -+ CmdArgs.push_back("console"); -+ } -+ -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("-Bstatic"); -+ else { -+ if (Args.hasArg(options::OPT_mdll)) -+ CmdArgs.push_back("--dll"); -+ else if (Args.hasArg(options::OPT_shared)) -+ CmdArgs.push_back("--shared"); -+ CmdArgs.push_back("-Bdynamic"); -+ if (Args.hasArg(options::OPT_mdll) || Args.hasArg(options::OPT_shared)) { -+ CmdArgs.push_back("-e"); -+ if (TC.getArch() == llvm::Triple::x86) -+ CmdArgs.push_back("_DllMainCRTStartup@12"); -+ else -+ CmdArgs.push_back("DllMainCRTStartup"); -+ CmdArgs.push_back("--enable-auto-image-base"); -+ } -+ } -+ -+ CmdArgs.push_back("-o"); -+ CmdArgs.push_back(Output.getFilename()); -+ -+ Args.AddAllArgs(CmdArgs, options::OPT_e); -+ // FIXME: add -N, -n flags -+ Args.AddLastArg(CmdArgs, options::OPT_r); -+ Args.AddLastArg(CmdArgs, options::OPT_s); -+ Args.AddLastArg(CmdArgs, options::OPT_t); -+ Args.AddAllArgs(CmdArgs, options::OPT_u_Group); -+ Args.AddLastArg(CmdArgs, options::OPT_Z_Flag); -+ -+ if (!Args.hasArg(options::OPT_nostdlib) && -+ !Args.hasArg(options::OPT_nostartfiles)) { -+ if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_mdll)) { -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("dllcrt2.o"))); -+ } else { -+ if (Args.hasArg(options::OPT_municode)) -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crt2u.o"))); -+ else -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crt2.o"))); -+ } -+ if (Args.hasArg(options::OPT_pg)) -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("gcrt2.o"))); -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtbegin.o"))); -+ } -+ -+ Args.AddAllArgs(CmdArgs, options::OPT_L); -+ const ToolChain::path_list Paths = TC.getFilePaths(); -+ for (const auto &Path : Paths) -+ CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + Path)); -+ -+ AddLinkerInputs(TC, Inputs, Args, CmdArgs); -+ -+ // TODO: Add ASan stuff here -+ -+ // TODO: Add profile stuff here -+ -+ if (D.CCCIsCXX() && -+ !Args.hasArg(options::OPT_nostdlib) && -+ !Args.hasArg(options::OPT_nodefaultlibs)) { -+ bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) && -+ !Args.hasArg(options::OPT_static); -+ if (OnlyLibstdcxxStatic) -+ CmdArgs.push_back("-Bstatic"); -+ TC.AddCXXStdlibLibArgs(Args, CmdArgs); -+ if (OnlyLibstdcxxStatic) -+ CmdArgs.push_back("-Bdynamic"); -+ } -+ -+ if (!Args.hasArg(options::OPT_nostdlib)) { -+ if (!Args.hasArg(options::OPT_nodefaultlibs)) { -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("--start-group"); -+ -+ if (Args.hasArg(options::OPT_fstack_protector) || -+ Args.hasArg(options::OPT_fstack_protector_strong) || -+ Args.hasArg(options::OPT_fstack_protector_all)) { -+ CmdArgs.push_back("-lssp_nonshared"); -+ CmdArgs.push_back("-lssp"); -+ } -+ if (Args.hasArg(options::OPT_fopenmp)) -+ CmdArgs.push_back("-lgomp"); -+ -+ AddLibGCC(Args, CmdArgs); -+ -+ if (Args.hasArg(options::OPT_pg)) -+ CmdArgs.push_back("-lgmon"); -+ -+ // TODO: remove unconditionally linking pthreads library -+ // Currently required for OpenMP and posix-threading libgcc -+ CmdArgs.push_back("-lpthread"); -+ -+ // add system libraries -+ if (Args.hasArg(options::OPT_mwindows)) { -+ CmdArgs.push_back("-lgdi32"); -+ CmdArgs.push_back("-lcomdlg32"); -+ } -+ CmdArgs.push_back("-ladvapi32"); -+ CmdArgs.push_back("-lshell32"); -+ CmdArgs.push_back("-luser32"); -+ CmdArgs.push_back("-lkernel32"); -+ -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("--end-group"); -+ else -+ AddLibGCC(Args, CmdArgs); -+ } -+ -+ if (!Args.hasArg(options::OPT_nostartfiles)) { -+ // Add crtfastmath.o if available and fast math is enabled. -+ TC.AddFastMathRuntimeIfAvailable(Args, CmdArgs); -+ -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend.o"))); -+ } -+ } -+ const char *Exec = -+ Args.MakeArgString(TC.GetProgramPath("ld")); -+ C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); -+} - - /// XCore Tools - // We pass assemble and link construction to the xcc tool. -diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h -index 873969b..3265ce1 100644 ---- a/lib/Driver/Tools.h -+++ b/lib/Driver/Tools.h -@@ -613,6 +613,39 @@ - }; - } // end namespace visualstudio - -+ /// MinGW -- Directly call GNU Binutils assembler and linker -+namespace MinGW { -+ class LLVM_LIBRARY_VISIBILITY Assemble : public Tool { -+ public: -+ Assemble(const ToolChain &TC) : Tool("MinGW::Assemble", "assembler", -+ TC) {} -+ -+ bool hasIntegratedCPP() const override { return false; } -+ -+ void ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const llvm::opt::ArgList &TCArgs, -+ const char *LinkingOutput) const override; -+ }; -+ -+ class LLVM_LIBRARY_VISIBILITY Link : public Tool { -+ public: -+ Link(const ToolChain &TC) : Tool("MinGW::Link", "linker", TC) {} -+ -+ bool hasIntegratedCPP() const override { return false; } -+ bool isLinkJob() const override { return true; } -+ -+ void ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const llvm::opt::ArgList &TCArgs, -+ const char *LinkingOutput) const override; -+ private: -+ void AddLibGCC(const llvm::opt::ArgList &Args, ArgStringList &CmdArgs) const; -+ }; -+} // end namespace MinGW -+ - namespace arm { - StringRef getARMFloatABI(const Driver &D, const llvm::opt::ArgList &Args, - const llvm::Triple &Triple); -diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp -index bb1fe2d..9877216 100644 ---- a/lib/Frontend/InitHeaderSearch.cpp -+++ b/lib/Frontend/InitHeaderSearch.cpp -@@ -82,11 +82,6 @@ - StringRef Arch, - StringRef Version); - -- /// AddMinGW64CXXPaths - Add the necessary paths to support -- /// libstdc++ of x86_64-w64-mingw32 aka mingw-w64. -- void AddMinGW64CXXPaths(StringRef Base, -- StringRef Version); -- - // AddDefaultCIncludePaths - Add paths that should always be searched. - void AddDefaultCIncludePaths(const llvm::Triple &triple, - const HeaderSearchOptions &HSOpts); -@@ -208,18 +203,6 @@ - CXXSystem, false); - } - --void InitHeaderSearch::AddMinGW64CXXPaths(StringRef Base, -- StringRef Version) { -- // Assumes Base is HeaderSearchOpts' ResourceDir -- AddPath(Base + "/../../../include/c++/" + Version, -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/x86_64-w64-mingw32", -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/i686-w64-mingw32", -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/backward", -- CXXSystem, false); --} - - void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - const HeaderSearchOptions &HSOpts) { -@@ -232,6 +232,7 @@ - case llvm::Triple::NetBSD: - case llvm::Triple::OpenBSD: - case llvm::Triple::Bitrig: -+ case llvm::Triple::Win32: - break; - default: - // FIXME: temporary hack: hard-coded paths. -@@ -269,7 +252,7 @@ - switch (os) { - case llvm::Triple::Linux: - llvm_unreachable("Include management is handled in the driver."); -- -+ break; - case llvm::Triple::Haiku: - AddPath("/boot/common/include", System, false); - AddPath("/boot/develop/headers/os", System, false); -@@ -309,30 +292,11 @@ - case llvm::Triple::Win32: - switch (triple.getEnvironment()) { - default: llvm_unreachable("Include management is handled in the driver."); -+ break; - case llvm::Triple::Cygnus: - AddPath("/usr/include/w32api", System, false); - break; - case llvm::Triple::GNU: -- // mingw-w64 crt include paths -- // /i686-w64-mingw32/include -- SmallString<128> P = StringRef(HSOpts.ResourceDir); -- llvm::sys::path::append(P, "../../../i686-w64-mingw32/include"); -- AddPath(P.str(), System, false); -- -- // /x86_64-w64-mingw32/include -- P.resize(HSOpts.ResourceDir.size()); -- llvm::sys::path::append(P, "../../../x86_64-w64-mingw32/include"); -- AddPath(P.str(), System, false); -- -- // mingw.org crt include paths -- // /include -- P.resize(HSOpts.ResourceDir.size()); -- llvm::sys::path::append(P, "../../../include"); -- AddPath(P.str(), System, false); -- AddPath("/mingw/include", System, false); --#if defined(LLVM_ON_WIN32) -- AddPath("c:/mingw/include", System, false); --#endif - break; - } - break; -@@ -340,7 +304,7 @@ - break; - } - -- if ( os != llvm::Triple::RTEMS ) -+ if ( os != llvm::Triple::RTEMS && !triple.isWindowsGNUEnvironment() ) - AddPath("/usr/include", ExternCSystem, false); - } - -@@ -404,26 +368,9 @@ - AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.2"); - break; - case llvm::Triple::GNU: -- // mingw-w64 C++ include paths (i686-w64-mingw32 and x86_64-w64-mingw32) -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.0"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.1"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.2"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.3"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.0"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.1"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.2"); -- // mingw.org C++ include paths --#if defined(LLVM_ON_WIN32) -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.0"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.1"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.2"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.3"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.0"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.1"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.2"); --#endif - break; - } -+ break; - case llvm::Triple::DragonFly: - if (llvm::sys::fs::exists("/usr/lib/gcc47")) - AddPath("/usr/include/c++/4.7", CXXSystem, false); diff --git a/mingw-w64-clang/llvm-3.5.0-fix-cmake-llvm-exports.patch b/mingw-w64-clang/llvm-3.5.0-fix-cmake-llvm-exports.patch deleted file mode 100644 index 7a7d42a3d4..0000000000 --- a/mingw-w64-clang/llvm-3.5.0-fix-cmake-llvm-exports.patch +++ /dev/null @@ -1,39 +0,0 @@ -Index: cmake/modules/Makefile -=================================================================== ---- cmake/modules/Makefile (revision 217483) -+++ cmake/modules/Makefile (revision 217484) -@@ -33,6 +33,16 @@ - LLVM_ENABLE_RTTI := 0 - endif - -+LLVM_LIBS_TO_EXPORT := $(subst -l,,$(shell $(LLVM_CONFIG) --libs $(LINK_COMPONENTS) || echo Error)) -+ -+ifeq ($(LLVM_LIBS_TO_EXPORT),Error) -+$(error llvm-config --libs failed) -+endif -+ -+ifndef LLVM_LIBS_TO_EXPORT -+$(error LLVM_LIBS_TO_EXPORT cannot be empty) -+endif -+ - OBJMODS := LLVMConfig.cmake LLVMConfigVersion.cmake LLVMExports.cmake - - $(PROJ_OBJ_DIR)/LLVMConfig.cmake: LLVMConfig.cmake.in $(LLVMBuildCMakeFrag) -@@ -45,7 +55,7 @@ - -e 's/@LLVM_VERSION_PATCH@/'"$(LLVM_VERSION_PATCH)"'/' \ - -e 's/@PACKAGE_VERSION@/'"$(LLVMVersion)"'/' \ - -e 's/@LLVM_COMMON_DEPENDS@//' \ -- -e 's/@LLVM_AVAILABLE_LIBS@/'"$(subst -l,,$(LLVMConfigLibs))"'/' \ -+ -e 's/@LLVM_AVAILABLE_LIBS@/'"$(LLVM_LIBS_TO_EXPORT)"'/' \ - -e 's/@LLVM_ALL_TARGETS@/'"$(ALL_TARGETS)"'/' \ - -e 's/@LLVM_TARGETS_TO_BUILD@/'"$(TARGETS_TO_BUILD)"'/' \ - -e 's/@LLVM_TARGETS_WITH_JIT@/'"$(TARGETS_WITH_JIT)"'/' \ -@@ -83,7 +93,7 @@ - $(Echo) 'Generating LLVM CMake target exports file' - $(Verb) ( \ - echo '# LLVM CMake target exports. Do not include directly.' && \ -- for lib in $(subst -l,,$(LLVMConfigLibs)); do \ -+ for lib in $(LLVM_LIBS_TO_EXPORT); do \ - echo 'add_library('"$$lib"' STATIC IMPORTED)' && \ - echo 'set_property(TARGET '"$$lib"' PROPERTY IMPORTED_LOCATION "'"$(PROJ_libdir)/lib$$lib.a"'")' ; \ - done && \ diff --git a/mingw-w64-clang/mingw-arm-and-cygwin-arm-target.patch b/mingw-w64-clang/mingw-arm-and-cygwin-arm-target.patch deleted file mode 100644 index 9d52ad789e..0000000000 --- a/mingw-w64-clang/mingw-arm-and-cygwin-arm-target.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 3c3008a9dea38318ff85e6cf39ef45fdb305c55b Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Fri, 20 Mar 2015 22:43:51 +0000 -Subject: mingw-arm and cygwin-arm target - ---- - lib/Basic/Targets.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 69 insertions(+), 4 deletions(-) - -diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp -index fb25886..80cc4b9 100644 ---- a/lib/Basic/Targets.cpp -+++ b/lib/Basic/Targets.cpp -@@ -4623,10 +4623,71 @@ public: - } - }; - -+// Windows ARM, MS (C++) ABI -+class MicrosoftARMTargetInfo : public WindowsARMTargetInfo { -+public: -+ MicrosoftARMTargetInfo(const llvm::Triple &Triple) -+ : WindowsARMTargetInfo(Triple) { -+ TheCXXABI.set(TargetCXXABI::Microsoft); -+ } -+ -+ void getTargetDefines(const LangOptions &Opts, -+ MacroBuilder &Builder) const override { -+ WindowsARMTargetInfo::getTargetDefines(Opts, Builder); -+ WindowsARMTargetInfo::getVisualStudioDefines(Opts, Builder); -+ } -+}; -+} // end anonymous namespace. -+ -+namespace { -+// ARM MinGW target -+class MinGWARMTargetInfo : public WindowsARMTargetInfo { -+public: -+ MinGWARMTargetInfo(const llvm::Triple &Triple) -+ : WindowsARMTargetInfo(Triple) { -+ TheCXXABI.set(TargetCXXABI::GenericARM); -+ } -+ -+ void getTargetDefines(const LangOptions &Opts, -+ MacroBuilder &Builder) const override { -+ WindowsARMTargetInfo::getTargetDefines(Opts, Builder); -+ DefineStd(Builder, "WIN32", Opts); -+ DefineStd(Builder, "WINNT", Opts); -+ Builder.defineMacro("_ARM_"); -+ addMinGWDefines(Opts, Builder); -+ } -+}; -+} // end anonymous namespace -+ -+namespace { -+// ARM Cygwin target -+class CygwinARMTargetInfo : public ARMleTargetInfo { -+public: -+ CygwinARMTargetInfo(const llvm::Triple &Triple) -+ : ARMleTargetInfo(Triple) { -+ TLSSupported = false; -+ WCharType = UnsignedShort; -+ DoubleAlign = LongLongAlign = 64; -+ DescriptionString = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"; -+ } -+ void getTargetDefines(const LangOptions &Opts, -+ MacroBuilder &Builder) const override { -+ ARMleTargetInfo::getTargetDefines(Opts, Builder); -+ Builder.defineMacro("_ARM_"); -+ Builder.defineMacro("__CYGWIN__"); -+ Builder.defineMacro("__CYGWIN32__"); -+ DefineStd(Builder, "unix", Opts); -+ if (Opts.CPlusPlus) -+ Builder.defineMacro("_GNU_SOURCE"); -+ } -+}; -+} // end anonymous namespace -+ -+namespace { - // Windows ARM + Itanium C++ ABI Target --class ItaniumWindowsARMleTargetInfo : public WindowsARMTargetInfo { -+class ItaniumWindowsARMTargetInfo : public WindowsARMTargetInfo { - public: -- ItaniumWindowsARMleTargetInfo(const llvm::Triple &Triple) -+ ItaniumWindowsARMTargetInfo(const llvm::Triple &Triple) - : WindowsARMTargetInfo(Triple) { - TheCXXABI.set(TargetCXXABI::GenericARM); - } -@@ -6669,10 +6730,14 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { - switch (Triple.getEnvironment()) { - default: - return new ARMleTargetInfo(Triple); -+ case llvm::Triple::Cygnus: -+ return new CygwinARMTargetInfo(Triple); -+ case llvm::Triple::GNU: -+ return new MinGWARMTargetInfo(Triple); - case llvm::Triple::Itanium: -- return new ItaniumWindowsARMleTargetInfo(Triple); -+ return new ItaniumWindowsARMTargetInfo(Triple); - case llvm::Triple::MSVC: -- return new MicrosoftARMleTargetInfo(Triple); -+ return new MicrosoftARMTargetInfo(Triple); - } - default: - return new ARMleTargetInfo(Triple); --- -2.3.5 - From 0a103f32d09c31db5f01215a4204f2c2006d9341 Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Wed, 2 Sep 2015 22:31:21 +1000 Subject: [PATCH 1538/2060] fribidi: Update to 0.19.7 --- ...cialcase-export-symbols-for-OS_WIN32.patch | 27 +++++++++---------- mingw-w64-fribidi/PKGBUILD | 8 +++--- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/mingw-w64-fribidi/0001-No-need-to-specialcase-export-symbols-for-OS_WIN32.patch b/mingw-w64-fribidi/0001-No-need-to-specialcase-export-symbols-for-OS_WIN32.patch index c759d2d530..71225e541b 100644 --- a/mingw-w64-fribidi/0001-No-need-to-specialcase-export-symbols-for-OS_WIN32.patch +++ b/mingw-w64-fribidi/0001-No-need-to-specialcase-export-symbols-for-OS_WIN32.patch @@ -1,11 +1,10 @@ -diff -urN fribidi-0.19.6.orig/lib/Makefile.am fribidi-0.19.6/lib/Makefile.am ---- fribidi-0.19.6.orig/lib/Makefile.am 2012-12-30 00:11:33.000000000 +0000 -+++ fribidi-0.19.6/lib/Makefile.am 2014-07-26 16:01:01.785635600 +0100 -@@ -7,12 +7,7 @@ - libfribidi_la_LDFLAGS = -no-undefined -version-info $(LT_VERSION_INFO) +diff -urN fribidi-0.19.7.orig/lib/Makefile.am fribidi-0.19.7/lib/Makefile.am +--- fribidi-0.19.7.orig/lib/Makefile.am 2013-01-02 07:35:46.000000000 +1100 ++++ fribidi-0.19.7/lib/Makefile.am 2015-08-06 16:38:22.122583500 +1000 +@@ -8,11 +8,7 @@ libfribidi_la_LIBADD = $(MISC_LIBS) libfribidi_la_DEPENDENCIES = -- + -if OS_WIN32 -libfribidi_la_LDFLAGS += -export-symbols $(srcdir)/fribidi.def -else @@ -14,10 +13,10 @@ diff -urN fribidi-0.19.6.orig/lib/Makefile.am fribidi-0.19.6/lib/Makefile.am if FRIBIDI_CHARSETS -diff -urN fribidi-0.19.6.orig/lib/Makefile.in fribidi-0.19.6/lib/Makefile.in ---- fribidi-0.19.6.orig/lib/Makefile.in 2013-12-06 20:56:59.000000000 +0000 -+++ fribidi-0.19.6/lib/Makefile.in 2014-07-26 16:03:34.860073600 +0100 -@@ -79,11 +79,9 @@ +diff -urN fribidi-0.19.7.orig/lib/Makefile.in fribidi-0.19.7/lib/Makefile.in +--- fribidi-0.19.7.orig/lib/Makefile.in 2015-08-05 00:15:26.000000000 +1000 ++++ fribidi-0.19.7/lib/Makefile.in 2015-08-06 16:40:34.707583500 +1000 +@@ -89,11 +89,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @@ -29,10 +28,10 @@ diff -urN fribidi-0.19.6.orig/lib/Makefile.in fribidi-0.19.6/lib/Makefile.in +@FRIBIDI_CHARSETS_TRUE@am__append_1 = -I$(top_srcdir)/charset +@FRIBIDI_CHARSETS_TRUE@am__append_2 = $(top_builddir)/charset/libfribidi-char-sets.la +@FRIBIDI_CHARSETS_TRUE@am__append_3 = $(top_builddir)/charset/libfribidi-char-sets.la - DIST_COMMON = $(srcdir)/Headers.mk $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(srcdir)/fribidi-config.h.in \ - $(top_srcdir)/depcomp $(pkginclude_HEADERS) -@@ -338,11 +336,11 @@ + subdir = lib + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ +@@ -353,11 +351,11 @@ top_srcdir = @top_srcdir@ EXTRA_DIST = fribidi.def lib_LTLIBRARIES = libfribidi.la diff --git a/mingw-w64-fribidi/PKGBUILD b/mingw-w64-fribidi/PKGBUILD index d6b8dfbbde..5e2af7aa83 100644 --- a/mingw-w64-fribidi/PKGBUILD +++ b/mingw-w64-fribidi/PKGBUILD @@ -2,8 +2,8 @@ _realname=fribidi pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.19.6 -pkgrel=4 +pkgver=0.19.7 +pkgrel=1 pkgdesc="A Free Implementation of the Unicode Bidirectional Algorithm (mingw-w64)" arch=('any') license=('LGPL') @@ -14,8 +14,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=("http://fribidi.org/download/${_realname}-${pkgver}.tar.bz2" "0001-No-need-to-specialcase-export-symbols-for-OS_WIN32.patch" "0003-fix-eols-in-tests-on.mingw.patch") -md5sums=('ce93d862344991173dabb609bf93ca1d' - 'c86fe94d1aa9ee801124b9f393b6d346' +md5sums=('6c7e7cfdd39c908f7ac619351c1c5c23' + '0a3c16397d43cf9f83798050c262b7d1' '98a7907bee0060f3e72e2afa26b71cd9') prepare() { From bdc22a4339cf623fb427c30fee227f38e5327d02 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 2 Sep 2015 15:37:26 +0300 Subject: [PATCH 1539/2060] fribidi: Improve PKGBUILD --- mingw-w64-fribidi/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-fribidi/PKGBUILD b/mingw-w64-fribidi/PKGBUILD index 5e2af7aa83..e119706b81 100644 --- a/mingw-w64-fribidi/PKGBUILD +++ b/mingw-w64-fribidi/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=fribidi +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.19.7 pkgrel=1 From 423c4cebd5cf6f7b08446dee3a7e1d55e08c9312 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 2 Sep 2015 20:59:03 +0100 Subject: [PATCH 1540/2060] firefox: Some missing parts (WIP) --- ...-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch | 14 +++++++------- mingw-w64-firefox/mozconfig.i686 | 1 + mingw-w64-firefox/mozconfig.x86_64 | 3 ++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/mingw-w64-firefox/0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch b/mingw-w64-firefox/0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch index 2c77cf47bb..c952cfc586 100644 --- a/mingw-w64-firefox/0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch +++ b/mingw-w64-firefox/0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch @@ -1,15 +1,15 @@ --- firefox-41.0b5/xpcom/build/PoisonIOInterposerWin.cpp 2015-09-01 00:07:54.085669600 +0100 +++ firefox-41.0b5/xpcom/build/PoisonIOInterposerWin.cpp.orig 2015-09-01 00:06:43.475631000 +0100 -@@ -445,11 +445,7 @@ +@@ -445,7 +445,11 @@ // Stdout and Stderr are OK. MozillaRegisterDebugFD(1); -- // Avoid a MOZ_ASSERT() when launching from MSYS2's mintty: -- // https://bugzilla.mozilla.org/show_bug.cgi?id=1163452 -- if (_get_osfhandle(1) != _get_osfhandle(2)) { -- MozillaRegisterDebugFD(2); -- } -+ MozillaRegisterDebugFD(2); +- MozillaRegisterDebugFD(2); ++ // Avoid a MOZ_ASSERT() when launching from MSYS2's mintty: ++ // https://bugzilla.mozilla.org/show_bug.cgi?id=1163452 ++ if (_get_osfhandle(1) != _get_osfhandle(2)) { ++ MozillaRegisterDebugFD(2); ++ } #ifdef MOZ_REPLACE_MALLOC // The contract with InitDebugFd is that the given registry can be used diff --git a/mingw-w64-firefox/mozconfig.i686 b/mingw-w64-firefox/mozconfig.i686 index 8a6a05acd1..5e0a58979b 100644 --- a/mingw-w64-firefox/mozconfig.i686 +++ b/mingw-w64-firefox/mozconfig.i686 @@ -14,6 +14,7 @@ ac_add_options --disable-maintenance-service ac_add_options --disable-webrtc ac_add_options --without-intl-api ac_add_options --disable-sandbox +ac_add_options --prefix=/mingw32 # Use parallel build. Adjust number of processes for your setup. mk_add_options MOZ_MAKE_FLAGS=-j8 diff --git a/mingw-w64-firefox/mozconfig.x86_64 b/mingw-w64-firefox/mozconfig.x86_64 index 55cb2807bf..465e58197a 100644 --- a/mingw-w64-firefox/mozconfig.x86_64 +++ b/mingw-w64-firefox/mozconfig.x86_64 @@ -13,7 +13,8 @@ ac_add_options --disable-crashreporter ac_add_options --disable-maintenance-service ac_add_options --disable-webrtc ac_add_options --without-intl-api -ac_add_optoins --disable-sandbox +ac_add_options --disable-sandbox +ac_add_options --prefix=/mingw64 # Use parallel build. Adjust number of processes for your setup. mk_add_options MOZ_MAKE_FLAGS=-j8 From 230b0b57fd32d4d7a18af656c1c8dc20ae39a019 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 2 Sep 2015 21:00:04 +0100 Subject: [PATCH 1541/2060] qt-installer-framework: Refresh a patch --- .../0003-add-recursive-option-to-rmdir-operation.patch | 8 ++++---- mingw-w64-qt-installer-framework/PKGBUILD | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch b/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch index d4b23572d7..188c84497f 100644 --- a/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch +++ b/mingw-w64-qt-installer-framework/0003-add-recursive-option-to-rmdir-operation.patch @@ -4,13 +4,13 @@ Date: Wed, 7 May 2014 17:09:33 +0100 Subject: [PATCH 3/9] add recursive option to rmdir operation --- - src/libs/kdtools/kdupdaterupdateoperations.cpp | 8 ++++++-- + src/libs/kdtools/updateoperations.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) -diff --git a/src/libs/kdtools/kdupdaterupdateoperations.cpp b/src/libs/kdtools/kdupdaterupdateoperations.cpp +diff --git a/src/libs/kdtools/updateoperations.cpp b/src/libs/kdtools/updateoperations.cpp index 9446790..39c8b4d 100644 ---- a/src/libs/kdtools/kdupdaterupdateoperations.cpp -+++ b/src/libs/kdtools/kdupdaterupdateoperations.cpp +--- a/src/libs/kdtools/updateoperations.cpp ++++ b/src/libs/kdtools/updateoperations.cpp @@ -539,7 +539,8 @@ void RmdirOperation::backup() bool RmdirOperation::performOperation() { diff --git a/mingw-w64-qt-installer-framework/PKGBUILD b/mingw-w64-qt-installer-framework/PKGBUILD index 9cdf5535c3..2653c4bd2f 100644 --- a/mingw-w64-qt-installer-framework/PKGBUILD +++ b/mingw-w64-qt-installer-framework/PKGBUILD @@ -3,7 +3,7 @@ _realname=installer-framework pkgname="${MINGW_PACKAGE_PREFIX}-qt-${_realname}-git" pkgdesc="The Qt Installer Framework used for the Qt SDK installer" -pkgver=r2752.f3c92c9 +pkgver=r2776.823efa4 pkgrel=1 arch=('any') url='http://qt-project.org/' @@ -24,7 +24,7 @@ source=("${_realname}"::"git+https://github.com/qtproject/${_realname}.git" "0009-Add-explicit-platform-commandline-option.patch") md5sums=('SKIP' '2a6ebf7460b60488728dc976409bbc1f' - '960ff56654d6020e1ac126d0135671d0' + 'e7ec9f85b265e12edd88dbac670cacc0' '7964a8f4946739059c9e916f128ef278' '7681a82af85139c89af9575d0ea78709' 'aa1b10d38971efef4efcecef20ddd196' From cf8d7587f20f4127ef14d645d7c4fbb8ddf64fbb Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 2 Sep 2015 23:12:24 +0100 Subject: [PATCH 1542/2060] midori: New package (WIP) --- .../0001-Use-file-GLOB-var-RELATIVE.patch | 13 ++++++ mingw-w64-midori/PKGBUILD | 44 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 mingw-w64-midori/0001-Use-file-GLOB-var-RELATIVE.patch create mode 100644 mingw-w64-midori/PKGBUILD diff --git a/mingw-w64-midori/0001-Use-file-GLOB-var-RELATIVE.patch b/mingw-w64-midori/0001-Use-file-GLOB-var-RELATIVE.patch new file mode 100644 index 0000000000..b176099830 --- /dev/null +++ b/mingw-w64-midori/0001-Use-file-GLOB-var-RELATIVE.patch @@ -0,0 +1,13 @@ +--- midori-0.5.11/midori/CMakeLists.txt.orig 2015-08-30 12:56:26.000000000 +0100 ++++ midori-0.5.11/midori/CMakeLists.txt 2015-09-02 22:58:18.805593000 +0100 +@@ -3,8 +3,8 @@ + set(LIBMIDORI_VERSION 0.5.5) + set(LIBMIDORI_SOVERSION 0) + +-file(GLOB MIDORI_VALA_SOURCE ../katze/*.vala *.vala ../panels/*.vala) +-file(GLOB LIBMIDORI_SOURCE ../katze/*.c ../panels/*.c ../toolbars/*.c midori-*.vala midori-*.c sokoke.c) ++file(GLOB MIDORI_VALA_SOURCE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ../katze/*.vala *.vala ../panels/*.vala) ++file(GLOB LIBMIDORI_SOURCE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ../katze/*.c ../panels/*.c ../toolbars/*.c midori-*.vala midori-*.c sokoke.c) + include(GLibHelpers) + add_glib_marshal(LIBMIDORI_SOURCE marshal ${CMAKE_PROJECT_NAME}_cclosure_marshal "midori.h") + set(MIDORI_SOURCE diff --git a/mingw-w64-midori/PKGBUILD b/mingw-w64-midori/PKGBUILD new file mode 100644 index 0000000000..0ffb3dd8b4 --- /dev/null +++ b/mingw-w64-midori/PKGBUILD @@ -0,0 +1,44 @@ +# Maintainer: Zach Bacon <11doctorwhocanada@gmail.com> +# Contributor: Ray Donnelly + +_realname=midori +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=0.5.11 +pkgrel=1 +pkgdesc="midori web browser (mingw-w64)" +arch=('any') +url='http://www.midori-browser.org/' +license=('LGPL2.1') +source=("http://www.midori-browser.org/downloads/${_realname}_${pkgver}_all_.tar.bz2" + "0001-Use-file-GLOB-var-RELATIVE.patch") +sha1sums=('64c86935028feb5f89d799c2acacaad67764da6f' + '8620d10f32d07dfdde1c3c01dec355792cdca854') + +prepare() { + cd $srcdir/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/0001-Use-file-GLOB-var-RELATIVE.patch +} + +build() { + cd "$srcdir"/${_realname}-${pkgver} + [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DUSE_GTK3=1 \ + ../${_realname}-${pkgver} --trace-expand --debug-output + make VERBOSE=1 +} + +check() { + cd "${srcdir}"/build-${CARCH} + make check +} + +package() { + cd "${srcdir}"/build-${CARCH} + make install DESTDIR="${pkgdir}" +} From 5a860186516a92a074b4a8bef1fa98ac1baa7754 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 3 Sep 2015 12:11:49 +0300 Subject: [PATCH 1543/2060] clang: Fix installing clang++ --- .../0014-use-DESTDIR-on-windows.patch | 22 +++++++++++ ...empt-to-fix-long-double-on-mingw-w64.patch | 37 +++++++++++++++++++ mingw-w64-clang/PKGBUILD | 10 ++++- 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-clang/0014-use-DESTDIR-on-windows.patch create mode 100644 mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch diff --git a/mingw-w64-clang/0014-use-DESTDIR-on-windows.patch b/mingw-w64-clang/0014-use-DESTDIR-on-windows.patch new file mode 100644 index 0000000000..238f72b69c --- /dev/null +++ b/mingw-w64-clang/0014-use-DESTDIR-on-windows.patch @@ -0,0 +1,22 @@ +--- cfe-3.7.0.src/tools/driver/clang_symlink.cmake.orig 2015-09-03 09:34:54.313158900 +0300 ++++ cfe-3.7.0.src/tools/driver/clang_symlink.cmake 2015-09-03 09:35:07.237866300 +0300 +@@ -2,9 +2,9 @@ + # DESTDIR environment variable may be unset at configuration time. + # See PR8397. + ++set(CLANGXX_DESTDIR $ENV{DESTDIR}) + if(UNIX) + set(CLANGXX_LINK_OR_COPY create_symlink) +- set(CLANGXX_DESTDIR $ENV{DESTDIR}) + else() + set(CLANGXX_LINK_OR_COPY copy) + endif() +@@ -34,7 +34,7 @@ + COMMAND "${CMAKE_COMMAND}" -E ${CLANGXX_LINK_OR_COPY} "${clang}" "${clang_cl}" + WORKING_DIRECTORY "${bindir}") + +-if (WIN32) ++if (MSVC) + message("Creating cl executable based on ${clang}") + + execute_process( diff --git a/mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch b/mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch new file mode 100644 index 0000000000..343cc8cf65 --- /dev/null +++ b/mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch @@ -0,0 +1,37 @@ +From 34cee12da7ec4bbf919e8d392e75a52b2f9e1cc4 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Thu, 3 Sep 2015 00:13:11 -0700 +Subject: [PATCH] Attempt to fix long double on mingw-w64 + + +diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp +index 7c02731..f1539cc 100644 +--- a/lib/Basic/Targets.cpp ++++ b/lib/Basic/Targets.cpp +@@ -3805,7 +3805,11 @@ namespace { + class MinGWX86_32TargetInfo : public WindowsX86_32TargetInfo { + public: + MinGWX86_32TargetInfo(const llvm::Triple &Triple) +- : WindowsX86_32TargetInfo(Triple) {} ++ : WindowsX86_32TargetInfo(Triple) { ++ LongDoubleWidth = 96; ++ LongDoubleAlign = 128; ++ LongDoubleFormat = &llvm::APFloat::x87DoubleExtended; ++ } + void getTargetDefines(const LangOptions &Opts, + MacroBuilder &Builder) const override { + WindowsX86_32TargetInfo::getTargetDefines(Opts, Builder); +@@ -4035,7 +4039,10 @@ public: + class MinGWX86_64TargetInfo : public WindowsX86_64TargetInfo { + public: + MinGWX86_64TargetInfo(const llvm::Triple &Triple) +- : WindowsX86_64TargetInfo(Triple) {} ++ : WindowsX86_64TargetInfo(Triple) { ++ LongDoubleWidth = LongDoubleAlign = 128; ++ LongDoubleFormat = &llvm::APFloat::x87DoubleExtended; ++ } + void getTargetDefines(const LangOptions &Opts, + MacroBuilder &Builder) const override { + WindowsX86_64TargetInfo::getTargetDefines(Opts, Builder); +-- +2.5.0 diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 925aee580e..8a6d829631 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -14,7 +14,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" ) pkgver=3.7.0 -pkgrel=1 +pkgrel=2 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -38,6 +38,8 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch 0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch 0013-mingw-w64-dont-have-dl-library.patch + 0014-use-DESTDIR-on-windows.patch + 0015-attempt-to-fix-long-double-on-mingw-w64.patch 0031-COFF-add-the-mingw-alias-for-ImageBase.patch 0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch 0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch @@ -71,6 +73,8 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' '0804146b32138d55c611336cc81e1783c29a8fab0fe62f248ba1ad7acc711c4d' '13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' + '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' + '005308cc6cb9d4734c429c453d9d69dd347e386677f84502b2137a5f7438ae89' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' '96a6fcd81b8d5134b4273a2e413cd268430022533f1bfb44ed73503ee0ae7e87' '08260b1ee54fad7e0015d66b117937701d2ce4ca1814b012250de03a0dae9317' @@ -95,6 +99,8 @@ prepare() { cd "${srcdir}/cfe-${pkgver}.src" patch -p1 -i ${srcdir}/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch patch -p1 -i ${srcdir}/0013-mingw-w64-dont-have-dl-library.patch + patch -p1 -i ${srcdir}/0014-use-DESTDIR-on-windows.patch + patch -p1 -i ${srcdir}/0015-attempt-to-fix-long-double-on-mingw-w64.patch cd "${srcdir}/lld-${pkgver}.src" # patch -p1 -i "${srcdir}"/0031-COFF-add-the-mingw-alias-for-ImageBase.patch @@ -186,6 +192,8 @@ build() { ../llvm-${pkgver}.src make + make docs-clang-html + make docs-clang-man #make -C ../llvm-${pkgver}/docs -f Makefile.sphinx man #make -C ../llvm-${pkgver}/docs -f Makefile.sphinx html #make -C ../llvm-${pkgver}/tools/clang/docs -f Makefile.sphinx html From 4bfc281897f1f320d3c7655428e57b625554da72 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 3 Sep 2015 15:44:22 +0300 Subject: [PATCH 1544/2060] clang: Fix generating llvm-ranlib. --- mingw-w64-clang/0002-use-DESTDIR-on-windows.patch | 13 +++++++++++++ ...15-attempt-to-fix-long-double-on-mingw-w64.patch | 5 +++-- mingw-w64-clang/PKGBUILD | 13 +++++-------- 3 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 mingw-w64-clang/0002-use-DESTDIR-on-windows.patch diff --git a/mingw-w64-clang/0002-use-DESTDIR-on-windows.patch b/mingw-w64-clang/0002-use-DESTDIR-on-windows.patch new file mode 100644 index 0000000000..a9478ef0f2 --- /dev/null +++ b/mingw-w64-clang/0002-use-DESTDIR-on-windows.patch @@ -0,0 +1,13 @@ +--- llvm-3.7.0.src/tools/llvm-ar/install_symlink.cmake.orig 2015-09-03 13:40:19.927031000 +0300 ++++ llvm-3.7.0.src/tools/llvm-ar/install_symlink.cmake 2015-09-03 13:40:32.604756200 +0300 +@@ -2,9 +2,9 @@ + # DESTDIR environment variable may be unset at configuration time. + # See PR8397. + ++set(DESTDIR $ENV{DESTDIR}) + if(UNIX) + set(LINK_OR_COPY create_symlink) +- set(DESTDIR $ENV{DESTDIR}) + else() + set(LINK_OR_COPY copy) + endif() diff --git a/mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch b/mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch index 343cc8cf65..5954c9f2b8 100644 --- a/mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch +++ b/mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch @@ -21,13 +21,14 @@ index 7c02731..f1539cc 100644 void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override { WindowsX86_32TargetInfo::getTargetDefines(Opts, Builder); -@@ -4035,7 +4039,10 @@ public: +@@ -4035,7 +4039,11 @@ public: class MinGWX86_64TargetInfo : public WindowsX86_64TargetInfo { public: MinGWX86_64TargetInfo(const llvm::Triple &Triple) - : WindowsX86_64TargetInfo(Triple) {} + : WindowsX86_64TargetInfo(Triple) { -+ LongDoubleWidth = LongDoubleAlign = 128; ++ LongDoubleWidth = 96; ++ LongDoubleAlign = 128; + LongDoubleFormat = &llvm::APFloat::x87DoubleExtended; + } void getTargetDefines(const LangOptions &Opts, diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 8a6d829631..ab715b2780 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -14,7 +14,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" ) pkgver=3.7.0 -pkgrel=2 +pkgrel=3 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -36,6 +36,7 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/clang-tools-extra-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/lld-${pkgver}.src.tar.xz{,.sig} 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch + 0002-use-DESTDIR-on-windows.patch 0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch 0013-mingw-w64-dont-have-dl-library.patch 0014-use-DESTDIR-on-windows.patch @@ -71,10 +72,11 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' 'ddb658b789c501efbe4f54ff8ced2c07cd9ff686c92445d8a1ab2cd5dbd837ed' 'SKIP' '0804146b32138d55c611336cc81e1783c29a8fab0fe62f248ba1ad7acc711c4d' + 'bf22d86c0546b80cd7212b7e7c3e1b628f00ab3aa3b9cf73ad338bf628f42597' '13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' - '005308cc6cb9d4734c429c453d9d69dd347e386677f84502b2137a5f7438ae89' + 'cd3a1d925d301795f50a3d65579aea71101ffab7e011809ba8323ea6d6b9848d' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' '96a6fcd81b8d5134b4273a2e413cd268430022533f1bfb44ed73503ee0ae7e87' '08260b1ee54fad7e0015d66b117937701d2ce4ca1814b012250de03a0dae9317' @@ -95,6 +97,7 @@ prepare() { cd "${srcdir}/llvm-${pkgver}.src" patch -p1 -i ${srcdir}/0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch + patch -p1 -i ${srcdir}/0002-use-DESTDIR-on-windows.patch cd "${srcdir}/cfe-${pkgver}.src" patch -p1 -i ${srcdir}/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch @@ -192,12 +195,6 @@ build() { ../llvm-${pkgver}.src make - make docs-clang-html - make docs-clang-man - #make -C ../llvm-${pkgver}/docs -f Makefile.sphinx man - #make -C ../llvm-${pkgver}/docs -f Makefile.sphinx html - #make -C ../llvm-${pkgver}/tools/clang/docs -f Makefile.sphinx html - #setup } check() { From 1c8db4d47dd19ba00a145d8d7967cf9f6557e2b8 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 3 Sep 2015 17:56:05 +0100 Subject: [PATCH 1545/2060] firefox: Update to 41.0b6, gmp-clearkey #include header (WIP) --- .../0020-gmp-clearkey-include-atomic-header.patch | 11 +++++++++++ mingw-w64-firefox/PKGBUILD | 9 ++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-firefox/0020-gmp-clearkey-include-atomic-header.patch diff --git a/mingw-w64-firefox/0020-gmp-clearkey-include-atomic-header.patch b/mingw-w64-firefox/0020-gmp-clearkey-include-atomic-header.patch new file mode 100644 index 0000000000..7bf9466502 --- /dev/null +++ b/mingw-w64-firefox/0020-gmp-clearkey-include-atomic-header.patch @@ -0,0 +1,11 @@ +--- firefox-41.0b6/media/gmp-clearkey/0.1/VideoDecoder.h.orig 2015-09-01 01:26:48.000000000 +0100 ++++ firefox-41.0b6/media/gmp-clearkey/0.1/VideoDecoder.h 2015-09-03 17:49:05.009038800 +0100 +@@ -24,6 +24,8 @@ + + #include "mfobjects.h" + ++#include ++ + class VideoDecoder : public GMPVideoDecoder + , public RefCounted + { diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index 619a0f889a..596f5a97b0 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -76,7 +76,7 @@ path_conv_for_make() { _realname=firefox pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=41.0b5 +pkgver=41.0b6 pkgrel=1 pkgdesc='Mozilla Firefox (mingw-w64)' groups=("${MINGW_PACKAGE_PREFIX}") @@ -109,13 +109,14 @@ source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/ "0017-MSYS2-Dont-use--static-or--static-libgcc.patch" "0018-MSYS2-Allow-make-install.patch" "0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch" + "0020-gmp-clearkey-include-atomic-header.patch" "debugging.patch" "mozconfig.x86_64" "mozconfig.i686" "config.sub" "config.guess") noextract=("${_realname}-${pkgver}.source.tar.xz") -sha1sums=('f53aad21adfd6a2c9c013168b5195099b9e59536' +sha1sums=('6b4c0d3a9a228b43d9682d57f74a1132f92dd329' '6c018e4ac903180f5f65492241502842dc1c035a' 'c4e841bf724a1ff907592c8a11ba9683568acfd5' '1c0810fbfd6f336eec81e236c89c6c9ca0e79290' @@ -136,7 +137,8 @@ sha1sums=('f53aad21adfd6a2c9c013168b5195099b9e59536' 'bacec1492cb54096f7483b192918050e7cb1de1d' '9eead9e427a8158df42a2ec81bf7c9f38ad1c915' 'e939e9722fd0cb70a7bd5e705b37bd47045e9647' - '018097900afc127e1142bd50d96c8d4df73ab13b' + '20a6613a688c2e7cb95a6faae49974e452dba8de' + '7f23896aeca52cd7bd3a038c5b5fd4eb68c90923' 'c2a0ed20a82d212bb4aa84cb2f294be3ba0bb859' '02befff9986a31bbc4ad74a8c0125e84f29fcb40' '9f4a4161fd23ba603c3e8140b322e732a46efffc' @@ -188,6 +190,7 @@ prepare() { patch -p1 -i "${srcdir}"/0017-MSYS2-Dont-use--static-or--static-libgcc.patch patch -p1 -i "${srcdir}"/0018-MSYS2-Allow-make-install.patch patch -p1 -i "${srcdir}"/0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch + patch -p1 -i "${srcdir}"/0020-gmp-clearkey-include-atomic-header.patch # patch -p1 -i "${srcdir}"/debugging.patch find . -name config.sub -exec cp "${srcdir}"/config.sub {} \; From 94fe9984ecb6707406785f559f5c8bcfbe6dc48c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 4 Sep 2015 09:57:39 +0100 Subject: [PATCH 1546/2060] firefox: Implement debug options, enable them (WIP) --- mingw-w64-firefox/PKGBUILD | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index 596f5a97b0..e3f700c632 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -75,12 +75,14 @@ path_conv_for_make() { } _realname=firefox +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=41.0b6 pkgrel=1 pkgdesc='Mozilla Firefox (mingw-w64)' groups=("${MINGW_PACKAGE_PREFIX}") arch=('any') +options=('debug' '!strip') url='https://www.mozilla.org/firefox/' license=('MPL2') makedepends=('unzip' @@ -227,6 +229,10 @@ build() { [ -d ${_builddir} ] && rm -rf "${_builddir}" mkdir ${_builddir} cp "${srcdir}"/mozconfig.${CARCH} ${_builddir}/.mozconfig + if check_option "debug" "y"; then + echo "ac_add_options --enable-debug-symbols" >> ${_builddir}/.mozconfig + echo "ac_add_options --disable-optimize" >> ${_builddir}/.mozconfig + fi export PYTHON=$(path_conv_for_make "${_python}") echo $PYTHON export MOZCONFIG=${PWD}/${_builddir}/.mozconfig From 504adbc8f156fea741e94c8c14d1e3d1bee9c3a0 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 4 Sep 2015 13:07:54 +0300 Subject: [PATCH 1547/2060] openscenegraph: Update to 3.4.0 --- mingw-w64-openscenegraph/PKGBUILD | 10 +++++++--- mingw-w64-openscenegraph/find-ffmpeg.patch | 11 +++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-openscenegraph/find-ffmpeg.patch diff --git a/mingw-w64-openscenegraph/PKGBUILD b/mingw-w64-openscenegraph/PKGBUILD index 3d9c76f9c1..ac54ad5f1f 100644 --- a/mingw-w64-openscenegraph/PKGBUILD +++ b/mingw-w64-openscenegraph/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=OpenSceneGraph +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -_pkgver=3.4.0-rc8 +_pkgver=3.4.0 pkgver=${_pkgver//-/} pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" @@ -38,13 +39,15 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-wxWidgets" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') -source=(http://www.openscenegraph.org/downloads/developer_releases/${_realname}-${_pkgver}.zip +source=(http://trac.openscenegraph.org/downloads/developer_releases/${_realname}-${_pkgver}.zip find-collada.patch + find-ffmpeg.patch find-freetype.patch additional-gl-header.patch fix-cast-error.patch) -md5sums=('a9eb404b52bf62c3baf2b7c3c6282d6e' +md5sums=('a5e762c64373a46932e444f6f7332496' '18ce956c1889babc6515828b8200e864' + 'a3b612082a47d6a7b4b41f8c576fda7e' '9ab69e1cd26826196fac5b3f01e6cb95' 'e889e10100a1f3e07212c01603712594' '5599204490bf9f03cdd5871b938e3338') @@ -52,6 +55,7 @@ md5sums=('a9eb404b52bf62c3baf2b7c3c6282d6e' prepare() { cd "${srcdir}/${_realname}-${_pkgver}" patch -p1 -i ${srcdir}/find-collada.patch + patch -p1 -i ${srcdir}/find-ffmpeg.patch patch -p1 -i ${srcdir}/find-freetype.patch patch -p1 -i ${srcdir}/additional-gl-header.patch patch -p1 -i ${srcdir}/fix-cast-error.patch diff --git a/mingw-w64-openscenegraph/find-ffmpeg.patch b/mingw-w64-openscenegraph/find-ffmpeg.patch new file mode 100644 index 0000000000..4aea7b48b2 --- /dev/null +++ b/mingw-w64-openscenegraph/find-ffmpeg.patch @@ -0,0 +1,11 @@ +--- OpenSceneGraph-3.4.0/CMakeModules/FindFFmpeg.cmake.orig 2015-09-04 12:00:20.413110800 +0300 ++++ OpenSceneGraph-3.4.0/CMakeModules/FindFFmpeg.cmake 2015-09-04 12:00:25.354393500 +0300 +@@ -96,7 +96,7 @@ + SET(FFMPEG_ROOT "$ENV{FFMPEG_DIR}" CACHE PATH "Location of FFMPEG") + + # find stdint.h +-IF(WIN32) ++IF(MSVC) + + FIND_PATH(FFMPEG_STDINT_INCLUDE_DIR stdint.h + PATHS From 99ba9e4b05dda675d7f858f6920367a1ef7ca324 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 4 Sep 2015 13:51:34 +0300 Subject: [PATCH 1548/2060] armadillo: Update to 5.500.2 --- mingw-w64-armadillo/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index 6485077b76..878655c625 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -3,7 +3,7 @@ _realname=armadillo pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.400.3 +pkgver=5.500.2 pkgrel=1 pkgdesc="C++ linear algebra library (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" install=${_realname}-${CARCH}.install source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz 0001-mingw-config-fix.patch) -md5sums=('397733eb2f305b50f28ead3350d975bd' +md5sums=('c773bea0f335e12f36ea745d63e0e33f' '5ce663ba53e15ee85fcd7a0b01006672') prepare() { From bbb1701389895e8d7f3615bf82a9a95dd1e87ffd Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 4 Sep 2015 13:51:53 +0300 Subject: [PATCH 1549/2060] fontconfig: Build also static library --- mingw-w64-fontconfig/PKGBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-fontconfig/PKGBUILD b/mingw-w64-fontconfig/PKGBUILD index c64d75e0bb..60a7f6eaeb 100644 --- a/mingw-w64-fontconfig/PKGBUILD +++ b/mingw-w64-fontconfig/PKGBUILD @@ -5,7 +5,7 @@ _realname=fontconfig pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.11.94 -pkgrel=4 +pkgrel=5 pkgdesc="A library for configuring and customizing font access (mingw-w64)" arch=('any') url="http://www.fontconfig.org/release" @@ -50,6 +50,8 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static \ --enable-iconv \ --with-libiconv=${MINGW_PREFIX} \ --disable-docs \ From 4e195bd969dd5e97db72ee8263d53b25c4ef75cf Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 4 Sep 2015 13:52:38 +0300 Subject: [PATCH 1550/2060] libsig++: Update to 2.5.4 --- mingw-w64-libsigc++/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libsigc++/PKGBUILD b/mingw-w64-libsigc++/PKGBUILD index 4133464f42..a03b05cdf2 100644 --- a/mingw-w64-libsigc++/PKGBUILD +++ b/mingw-w64-libsigc++/PKGBUILD @@ -3,7 +3,7 @@ _realname=libsigc++ pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.5.3 +pkgver=2.5.4 pkgrel=1 pkgdesc="Libsigc++ implements a full callback system for use in widget libraries - V2 (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/GNOME/sources/libsigc++/${pkgver%.*}/libsigc++-${pkgver}.tar.xz") -sha256sums=('e1eb23a408b7e394b152e20800146ab614e8027f02db2da7418ccc33bd337525') +sha256sums=('ecf55f53d6058ba6e41985b862f2e95fb5c2b31c008caa16984e790547337ea7') build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" From 015e2ae4b62be4b4e14b6b0d78729e85a69d46df Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 4 Sep 2015 13:53:15 +0300 Subject: [PATCH 1551/2060] pango: Update to 1.37.4 --- mingw-w64-pango/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-pango/PKGBUILD b/mingw-w64-pango/PKGBUILD index 0afffdc176..d56c0dcf2a 100644 --- a/mingw-w64-pango/PKGBUILD +++ b/mingw-w64-pango/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Renato Silva _realname=pango +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.37.1 -pkgrel=2 +pkgver=1.37.4 +pkgrel=1 pkgdesc="A library for layout and rendering of text (mingw-w64)" arch=('any') url="http://www.pango.org" @@ -30,7 +31,7 @@ options=('staticlibs' 'strip' 'emptydirs') source=("http://ftp.gnome.org/pub/gnome/sources/pango/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz" 0001-no-unconditional-xft-please.all.patch 0002-msvc-is-impotent-but-not.mingw.patch) -sha256sums=('6faad8b5c347cccd454dc9ac9365f921c430e5f79787cfb2f51d5709f4394e3c' +sha256sums=('ae2446f1c23c81d78e935054a37530336818c214f54bed2351bdd4ad0acebcbe' 'a673ce807b29abe4b0fedf5b17e154986d675cec3e001c4235067b01515c2e4d' '240d21474157c0deabc2660593ac0414565ddf30c304b08b74a09072c910b34d') From 5500be4adb621ccabaf042ab5da1754bc692239d Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Sat, 5 Sep 2015 01:34:53 +1000 Subject: [PATCH 1552/2060] uchardet-git: New package --- mingw-w64-uchardet-git/PKGBUILD | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 mingw-w64-uchardet-git/PKGBUILD diff --git a/mingw-w64-uchardet-git/PKGBUILD b/mingw-w64-uchardet-git/PKGBUILD new file mode 100644 index 0000000000..37d2315654 --- /dev/null +++ b/mingw-w64-uchardet-git/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: James Ross-Gowan + +_realname=uchardet +pkgbase="mingw-w64-${_realname}-git" +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +pkgver=0.0.1.28.84e292d +pkgrel=1 +pkgdesc="An encoding detector library ported from Mozilla (mingw-w64)" +arch=('any') +url='https://github.com/BYVoid/uchardet' +license=('MPL') +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("git" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") +source=("${_realname}"::"git+https://github.com/BYVoid/uchardet.git") +md5sums=('SKIP') + +pkgver() { + cd "${srcdir}/${_realname}" + local major=$(sed -n 's/^ *set *( *UCHARDET_VERSION_MAJOR *\([0-9][0-9]*\) *).*/\1/p' CMakeLists.txt) + local minor=$(sed -n 's/^ *set *( *UCHARDET_VERSION_MINOR *\([0-9][0-9]*\) *).*/\1/p' CMakeLists.txt) + local rev=$(sed -n 's/^ *set *( *UCHARDET_VERSION_REVISION *\([0-9][0-9]*\) *).*/\1/p' CMakeLists.txt) + printf '%s.%s.%s.%s.%s' $major $minor $rev "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -r "${srcdir}/build-${MINGW_CHOST}" + mkdir "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + ../${_realname} + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install +} From 7cb6a4632387a5a4985d4aac271c7d3eec28e879 Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Sat, 5 Sep 2015 01:35:15 +1000 Subject: [PATCH 1553/2060] mpv: Update to 0.10.0 Packaging changes: - Added uchardet for (hopefully better) subtitle codepage detection - Added libarchive for decoding videos from zip files and other archive formats --- ...1-Revert-win32-fix-desktop-directory.patch | 29 ------------------- mingw-w64-mpv/PKGBUILD | 19 +++++++----- 2 files changed, 11 insertions(+), 37 deletions(-) delete mode 100644 mingw-w64-mpv/0001-Revert-win32-fix-desktop-directory.patch diff --git a/mingw-w64-mpv/0001-Revert-win32-fix-desktop-directory.patch b/mingw-w64-mpv/0001-Revert-win32-fix-desktop-directory.patch deleted file mode 100644 index 1ecf58409f..0000000000 --- a/mingw-w64-mpv/0001-Revert-win32-fix-desktop-directory.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 2739ea80b7137daf3f9a39fd3a2ddfd787a6b964 Mon Sep 17 00:00:00 2001 -From: James Ross-Gowan -Date: Wed, 24 Jun 2015 20:49:59 +1000 -Subject: [PATCH] Revert "win32: fix desktop directory" - -This reverts commit f56a7af9f696aab7f4095f282f22dcbe7c758c9e. - -This was incorrectly merged. There's no folder parameter in the version -of the function on the release branch. ---- - osdep/path-win.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/osdep/path-win.c b/osdep/path-win.c -index f22b8a3..26f7ffa 100644 ---- a/osdep/path-win.c -+++ b/osdep/path-win.c -@@ -51,7 +51,7 @@ static char *mp_get_win_app_dir(void *talloc_ctx) - { - wchar_t w_appdir[MAX_PATH + 1] = {0}; - -- if (SHGetFolderPathW(NULL, folder|CSIDL_FLAG_CREATE, NULL, -+ if (SHGetFolderPathW(NULL, CSIDL_APPDATA|CSIDL_FLAG_CREATE, NULL, - SHGFP_TYPE_CURRENT, w_appdir) != S_OK) - return NULL; - --- -2.4.4 - diff --git a/mingw-w64-mpv/PKGBUILD b/mingw-w64-mpv/PKGBUILD index b984f2eee2..a6a6824818 100644 --- a/mingw-w64-mpv/PKGBUILD +++ b/mingw-w64-mpv/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: James Ross-Gowan _realname=mpv +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.9.2 -pkgrel=3 +pkgver=0.10.0 +pkgrel=1 pkgdesc="Video player based on MPlayer/mplayer2 (mingw-w64)" url="http://mpv.io" arch=('any') @@ -12,6 +13,7 @@ license=('GPL') depends=("${MINGW_PACKAGE_PREFIX}-enca" "${MINGW_PACKAGE_PREFIX}-ffmpeg" "${MINGW_PACKAGE_PREFIX}-lcms2" + "${MINGW_PACKAGE_PREFIX}-libarchive" "${MINGW_PACKAGE_PREFIX}-libcaca" #"${MINGW_PACKAGE_PREFIX}-libcdio-paranoia" "${MINGW_PACKAGE_PREFIX}-libdvdnav" @@ -20,25 +22,23 @@ depends=("${MINGW_PACKAGE_PREFIX}-enca" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-lua51" "${MINGW_PACKAGE_PREFIX}-rubberband" + "${MINGW_PACKAGE_PREFIX}-uchardet-git" "winpty-git") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python3-docutils" "perl" "pkg-config" "python") -source=(${_realname}-${pkgver}.tar.gz::https://github.com/mpv-player/${_realname}/archive/v${pkgver}.tar.gz - 0001-Revert-win32-fix-desktop-directory.patch) -md5sums=('ed1384e703f7032e531731842e4da4f7' - '384699c849f1028b4abd57361f10d743') +source=(${_realname}-${pkgver}.tar.gz::https://github.com/mpv-player/${_realname}/archive/v${pkgver}.tar.gz) +md5sums=('e81a975e4fa17f500dc2e7ea3d3ecf25') # strip doesn't work well with the mpv.com wrapper, so strip manually instead options=(!strip !emptydirs) prepare() { cd ${_realname}-${pkgver} - [ -x ./waf ] || /usr/bin/python3 ./bootstrap.py + [[ -x ./waf ]] || /usr/bin/python3 ./bootstrap.py sed -i 's:bin/env python$:bin/env python3:' waf - patch -p1 -i "${srcdir}"/0001-Revert-win32-fix-desktop-directory.patch } build() { @@ -63,10 +63,13 @@ build() { --enable-enca \ --enable-jpeg \ --enable-lcms2 \ + --enable-libarchive \ --enable-libass \ --enable-libbluray \ --enable-libguess \ --enable-lua \ + --enable-rubberband \ + --enable-uchardet \ --out="${srcdir}/build-${MINGW_CHOST}" /usr/bin/python3 ./waf build From 1207eccfb405144154cf371af95df23b43af0727 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Sat, 5 Sep 2015 13:06:56 +0000 Subject: [PATCH 1554/2060] Add the Xpdf package This package only contains the utilities (pdfimages, pdftotext, etc) but not the viewer because Xpdf's viewer works only with X11. Signed-off-by: Johannes Schindelin --- mingw-w64-xpdf/PKGBUILD | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 mingw-w64-xpdf/PKGBUILD diff --git a/mingw-w64-xpdf/PKGBUILD b/mingw-w64-xpdf/PKGBUILD new file mode 100644 index 0000000000..1d0338d9e2 --- /dev/null +++ b/mingw-w64-xpdf/PKGBUILD @@ -0,0 +1,29 @@ +# Maintainer: Johannes Schindelin + +_realname=xpdf +pkgbase="mingw-w64-${_realname}" +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=3.04 +pkgrel=1 +pkgdesc="Utilities for PDF files (mingw-w64)" +arch=('any') +license=('GPL2+') +url="http://foolabs.com/xpdf/" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +depends=("${MINGW_PACKAGE_PREFIX}-libpng") +options=('strip') +source=(${_realname}::"ftp://ftp.foolabs.com/pub/xpdf/xpdf-${pkgver}.tar.gz") +sha1sums=('b9b1dbb0335742a09d0442c60fd02f4f934618bd') + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + ../${_realname}-${pkgver}/configure --prefix=${MINGW_PREFIX} + make +} + +package() { + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR="${pkgdir}" install +} From aff853aa5e1d2e823c25fabe886b3c24bd3d3a11 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 6 Sep 2015 23:09:09 +0100 Subject: [PATCH 1555/2060] midori: It builds .. and then segfaults (WIP) midori --plain runs ok (but that's not a big deal) midori -p segfaults To test you probably want to: cp /mingw64/ssl/certs/ca-bundle.crt pkg/mingw-w64-x86_64-midori/mingw64/share/midori/res/ Currently built un-optimised and with debug symbols. --- .../0001-Use-file-GLOB-var-RELATIVE.patch | 13 -------- ...ecompile-abs-path-regex-win-friendly.patch | 22 ++++++++++++++ mingw-w64-midori/PKGBUILD | 30 +++++++++++++------ 3 files changed, 43 insertions(+), 22 deletions(-) delete mode 100644 mingw-w64-midori/0001-Use-file-GLOB-var-RELATIVE.patch create mode 100644 mingw-w64-midori/0001-ValaPrecompile-abs-path-regex-win-friendly.patch diff --git a/mingw-w64-midori/0001-Use-file-GLOB-var-RELATIVE.patch b/mingw-w64-midori/0001-Use-file-GLOB-var-RELATIVE.patch deleted file mode 100644 index b176099830..0000000000 --- a/mingw-w64-midori/0001-Use-file-GLOB-var-RELATIVE.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- midori-0.5.11/midori/CMakeLists.txt.orig 2015-08-30 12:56:26.000000000 +0100 -+++ midori-0.5.11/midori/CMakeLists.txt 2015-09-02 22:58:18.805593000 +0100 -@@ -3,8 +3,8 @@ - set(LIBMIDORI_VERSION 0.5.5) - set(LIBMIDORI_SOVERSION 0) - --file(GLOB MIDORI_VALA_SOURCE ../katze/*.vala *.vala ../panels/*.vala) --file(GLOB LIBMIDORI_SOURCE ../katze/*.c ../panels/*.c ../toolbars/*.c midori-*.vala midori-*.c sokoke.c) -+file(GLOB MIDORI_VALA_SOURCE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ../katze/*.vala *.vala ../panels/*.vala) -+file(GLOB LIBMIDORI_SOURCE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ../katze/*.c ../panels/*.c ../toolbars/*.c midori-*.vala midori-*.c sokoke.c) - include(GLibHelpers) - add_glib_marshal(LIBMIDORI_SOURCE marshal ${CMAKE_PROJECT_NAME}_cclosure_marshal "midori.h") - set(MIDORI_SOURCE diff --git a/mingw-w64-midori/0001-ValaPrecompile-abs-path-regex-win-friendly.patch b/mingw-w64-midori/0001-ValaPrecompile-abs-path-regex-win-friendly.patch new file mode 100644 index 0000000000..3a6477b8be --- /dev/null +++ b/mingw-w64-midori/0001-ValaPrecompile-abs-path-regex-win-friendly.patch @@ -0,0 +1,22 @@ +--- midori-0.5.11/cmake/ValaPrecompile.cmake.orig 2015-09-06 22:37:09.710116600 +0100 ++++ midori-0.5.11/cmake/ValaPrecompile.cmake 2015-09-06 22:37:58.036880700 +0100 +@@ -133,8 +133,8 @@ + set(${output} "") + + foreach(src ${ARGS_DEFAULT_ARGS}) +- string(REGEX MATCH "^/" IS_MATCHED ${src}) +- if(${IS_MATCHED} MATCHES "/") ++ string(REGEX MATCH "^(/|[a-zA-Z]:)" IS_MATCHED ${src}) ++ if(NOT IS_MATCHED STREQUAL "") + set(src_file_path ${src}) + else() + set(src_file_path ${CMAKE_CURRENT_SOURCE_DIR}/${src}) +@@ -142,7 +142,7 @@ + list(APPEND in_files ${src_file_path}) + string(REPLACE ".vala" ".c" src ${src}) + string(REPLACE ".gs" ".c" src ${src}) +- if(${IS_MATCHED} MATCHES "/") ++ if(NOT IS_MATCHED STREQUAL "") + get_filename_component(VALA_FILE_NAME ${src} NAME) + set(out_file "${CMAKE_CURRENT_BINARY_DIR}/${VALA_FILE_NAME}") + list(APPEND out_files "${CMAKE_CURRENT_BINARY_DIR}/${VALA_FILE_NAME}") diff --git a/mingw-w64-midori/PKGBUILD b/mingw-w64-midori/PKGBUILD index 0ffb3dd8b4..edf0d44122 100644 --- a/mingw-w64-midori/PKGBUILD +++ b/mingw-w64-midori/PKGBUILD @@ -10,33 +10,45 @@ pkgdesc="midori web browser (mingw-w64)" arch=('any') url='http://www.midori-browser.org/' license=('LGPL2.1') +options=('debug' '!strip') source=("http://www.midori-browser.org/downloads/${_realname}_${pkgver}_all_.tar.bz2" - "0001-Use-file-GLOB-var-RELATIVE.patch") + "0001-ValaPrecompile-abs-path-regex-win-friendly.patch") sha1sums=('64c86935028feb5f89d799c2acacaad67764da6f' - '8620d10f32d07dfdde1c3c01dec355792cdca854') + '2d7d764a4ca633a30279cac3e85b1c772701b711') prepare() { cd $srcdir/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0001-Use-file-GLOB-var-RELATIVE.patch + patch -p1 -i ${srcdir}/0001-ValaPrecompile-abs-path-regex-win-friendly.patch } build() { cd "$srcdir"/${_realname}-${pkgver} [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + + local -a extra_config + + if check_option "debug" "y"; then + extra_config+=( -DCMAKE_BUILD_TYPE=Debug ) + else + extra_config+=( -DCMAKE_BUILD_TYPE=Release ) + fi + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DUSE_GTK3=1 \ - ../${_realname}-${pkgver} --trace-expand --debug-output - make VERBOSE=1 + -DUSE_ZEITGEIST=0 \ + "${extra_config[@]}" \ + ../${_realname}-${pkgver} + make } -check() { - cd "${srcdir}"/build-${CARCH} - make check -} +# check() { +# cd "${srcdir}"/build-${CARCH} +# make check +# } package() { cd "${srcdir}"/build-${CARCH} From b7a656a152c51a9746848d9b96b216195abfe9a9 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 7 Sep 2015 14:18:51 +0300 Subject: [PATCH 1556/2060] xpdf: Fix dependencies and conflict. --- mingw-w64-xpdf/PKGBUILD | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mingw-w64-xpdf/PKGBUILD b/mingw-w64-xpdf/PKGBUILD index 1d0338d9e2..a18fffc806 100644 --- a/mingw-w64-xpdf/PKGBUILD +++ b/mingw-w64-xpdf/PKGBUILD @@ -3,6 +3,7 @@ _realname=xpdf pkgbase="mingw-w64-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-poppler") pkgver=3.04 pkgrel=1 pkgdesc="Utilities for PDF files (mingw-w64)" @@ -10,16 +11,22 @@ arch=('any') license=('GPL2+') url="http://foolabs.com/xpdf/" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -depends=("${MINGW_PACKAGE_PREFIX}-libpng") +depends=("${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-libpng") options=('strip') -source=(${_realname}::"ftp://ftp.foolabs.com/pub/xpdf/xpdf-${pkgver}.tar.gz") +source=("ftp://ftp.foolabs.com/pub/xpdf/xpdf-${pkgver}.tar.gz") sha1sums=('b9b1dbb0335742a09d0442c60fd02f4f934618bd') build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - ../${_realname}-${pkgver}/configure --prefix=${MINGW_PREFIX} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --with-freetype2-includes=$(pkg-config --dont-define-prefix --variable=includedir freetype2) + make } From 56bf09bf6628bb022c82abfc0d22c3c207a68713 Mon Sep 17 00:00:00 2001 From: qme5400 Date: Tue, 8 Sep 2015 19:58:50 +0200 Subject: [PATCH 1557/2060] Update PKGBUILD to SoundTouch version 1.9.1 --- mingw-w64-soundtouch/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-soundtouch/PKGBUILD b/mingw-w64-soundtouch/PKGBUILD index 0bdecb3aad..a79f9bbad5 100644 --- a/mingw-w64-soundtouch/PKGBUILD +++ b/mingw-w64-soundtouch/PKGBUILD @@ -2,8 +2,8 @@ _realname=soundtouch pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.9.0 -pkgrel=2 +pkgver=1.9.1 +pkgrel=1 pkgdesc="An audio processing library (mingw-w64)" arch=('any') url="http://www.surina.net/soundtouch/" @@ -14,7 +14,7 @@ options=('strip' 'staticlibs') source=(http://www.surina.net/soundtouch/${_realname}-${pkgver}.tar.gz 0001-no-undefined-on.mingw.patch 0003-fix-docdir.mingw.patch) -md5sums=('0b0672c09c1c97df2e61c4d5aa9a7b86' +md5sums=('e4ff4564bf75e0f44d59ccefcb2cfbbb' 'f472d0b637cc0a3491435ff3409ed3cc' 'fedef380bc99b2adbecfba32f1b83672') From 6652f90f6a0744f59c4508515d66917ff038c487 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 9 Sep 2015 13:23:31 +0300 Subject: [PATCH 1558/2060] soundtouch: Improve PKGBUILD --- mingw-w64-soundtouch/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-soundtouch/PKGBUILD b/mingw-w64-soundtouch/PKGBUILD index a79f9bbad5..aa44403cbd 100644 --- a/mingw-w64-soundtouch/PKGBUILD +++ b/mingw-w64-soundtouch/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=soundtouch +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.9.1 pkgrel=1 @@ -14,7 +15,7 @@ options=('strip' 'staticlibs') source=(http://www.surina.net/soundtouch/${_realname}-${pkgver}.tar.gz 0001-no-undefined-on.mingw.patch 0003-fix-docdir.mingw.patch) -md5sums=('e4ff4564bf75e0f44d59ccefcb2cfbbb' +md5sums=('d829a4a6e2c93eecf6398615c3fce46f' 'f472d0b637cc0a3491435ff3409ed3cc' 'fedef380bc99b2adbecfba32f1b83672') From ee0cfb3366218cd8df53c09623150da55453cb3f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 9 Sep 2015 15:37:59 +0300 Subject: [PATCH 1559/2060] ffmpeg: Update to 2.8 --- mingw-w64-ffmpeg/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index b3c15b34f6..6b994c92db 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=ffmpeg +pkgbase="mingw-w64-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.7.2 -pkgrel=2 +pkgver=2.8 +pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" @@ -41,7 +42,7 @@ depends=( ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-yasm") source=(http://ffmpeg.org/releases/${_realname}-${pkgver}.tar.bz2) -md5sums=('7eb2140bab9f0a8669b65b50c8e4cfb5') +md5sums=('5eb3839e23c9ca396fabd0ebbe293ea2') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 3dac8b411b1d28cefe33ae21a16333918d117cc8 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 10 Sep 2015 14:46:54 +0300 Subject: [PATCH 1560/2060] libgcrypt: Update to 1.6.4 --- mingw-w64-libgcrypt/PKGBUILD | 14 ++++++-------- ...correct-datatype-for-GetProcessWorkingSet.patch | 11 ----------- 2 files changed, 6 insertions(+), 19 deletions(-) delete mode 100644 mingw-w64-libgcrypt/libgcrypt-mingw64-use-correct-datatype-for-GetProcessWorkingSet.patch diff --git a/mingw-w64-libgcrypt/PKGBUILD b/mingw-w64-libgcrypt/PKGBUILD index 067ea1d96e..2806ba2e89 100644 --- a/mingw-w64-libgcrypt/PKGBUILD +++ b/mingw-w64-libgcrypt/PKGBUILD @@ -1,30 +1,28 @@ # Maintainer: Alexey Pavlov _realname=libgcrypt +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.3 -pkgrel=2 +pkgver=1.6.4 +pkgrel=1 pkgdesc="General purpose cryptographic library based on the code from GnuPG (mingw-w64)" arch=('any') url="http://www.gnupg.org" license=('LGPL') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libgpg-error") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libgpg-error") # "transfig""${MINGW_PACKAGE_PREFIX}-ghostscript" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libgpg-error") # "transfig" "${MINGW_PACKAGE_PREFIX}-ghostscript" options=('staticlibs' 'strip') source=("ftp://ftp.gnupg.org/gcrypt/libgcrypt/${_realname}-${pkgver}.tar.bz2" - 'libgcrypt-mingw64-use-correct-datatype-for-GetProcessWorkingSet.patch' 'libgcrypt-use-correct-def-file.patch' 'libgcrypt-use-correct-asm-code-for-win64.patch' 'Smarter-fig2dev-detection.all.patch') -md5sums=('4262c3aadf837500756c2051a5c4ae5e' - '7bb247584a66a83677c618aec812ca9b' +md5sums=('4c13c5fa43147866f993d73ee62af176' '531e089caca74b5daf130b7173c2a5c5' '5c7326890ac7b6304d31edfdc97063f6' 'c29a3e3e1664229eca2198c2328af5f4') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p0 -i "$srcdir"/libgcrypt-mingw64-use-correct-datatype-for-GetProcessWorkingSet.patch patch -p0 -i "$srcdir"/libgcrypt-use-correct-def-file.patch #patch -p0 -i "$srcdir"/libgcrypt-use-correct-asm-code-for-win64.patch patch -p1 -i "$srcdir"/Smarter-fig2dev-detection.all.patch @@ -42,7 +40,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --enable-shared \ - --disable-static \ + --enable-static \ $BUILD_ASM \ --with-gpg-error-prefix=${MINGW_PREFIX} make diff --git a/mingw-w64-libgcrypt/libgcrypt-mingw64-use-correct-datatype-for-GetProcessWorkingSet.patch b/mingw-w64-libgcrypt/libgcrypt-mingw64-use-correct-datatype-for-GetProcessWorkingSet.patch deleted file mode 100644 index 86924eb483..0000000000 --- a/mingw-w64-libgcrypt/libgcrypt-mingw64-use-correct-datatype-for-GetProcessWorkingSet.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- random/rndw32.c.orig 2011-07-04 19:11:18.137525831 +0200 -+++ random/rndw32.c 2011-07-04 19:11:40.785404249 +0200 -@@ -887,7 +887,7 @@ - { - HANDLE handle; - FILETIME creationTime, exitTime, kernelTime, userTime; -- DWORD minimumWorkingSetSize, maximumWorkingSetSize; -+ SIZE_T minimumWorkingSetSize, maximumWorkingSetSize; - - handle = GetCurrentThread (); - GetThreadTimes (handle, &creationTime, &exitTime, From 31ed60917912ba81171418b11bfe35b16e5dd890 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 10 Sep 2015 14:47:07 +0300 Subject: [PATCH 1561/2060] poppler: Update to 0.36.0 --- mingw-w64-poppler/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index 8a60089420..fc2daa92f8 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -3,7 +3,7 @@ _realname=poppler pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.35.0 +pkgver=0.36.0 pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') @@ -29,7 +29,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" options=('strip' 'staticlibs') source=("http://poppler.freedesktop.org/${_realname}-${pkgver}.tar.xz" "give-cc-to-gir-scanner.mingw.patch") -md5sums=('561ef4454bfabe59ef1b8b9cd4aa4c4b' +md5sums=('9f72a76e6ca899dd81b03537c4ce3680' '727c1b414987f6ee2ba841d9db57a967') prepare() { From 2cc5235c8cbd7fa6e81d99fb475552792bf9f011 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Thu, 10 Sep 2015 13:11:57 +0200 Subject: [PATCH 1562/2060] Do not hard-code DOS paths in libintl-8.dll The `libintl-8.dll` file from mingw-w64-x86_64-gettext 0.19.5.1-1 has the path `D:/develop/msys64/mingw64/share/locale` hard-coded. As a consequence, programs that link to libintl-8.dll may try to open said directory. In many setups, `D:\` actually refers to a CD/DVD drive which means that the user may see this nasty error message: There is no disk in the drive. Please insert a disk into drive D: Let's not do that, but instead hard-code the *POSIX* path into that `.dll` file, i.e. `/mingw64/share/locale`. This fixes https://github.com/git-for-windows/git/issues/329 Signed-off-by: Johannes Schindelin --- mingw-w64-gettext/121-keep-posix-path.patch | 37 +++++++++++++++++++++ mingw-w64-gettext/PKGBUILD | 7 ++-- 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-gettext/121-keep-posix-path.patch diff --git a/mingw-w64-gettext/121-keep-posix-path.patch b/mingw-w64-gettext/121-keep-posix-path.patch new file mode 100644 index 0000000000..bd13c5e1b6 --- /dev/null +++ b/mingw-w64-gettext/121-keep-posix-path.patch @@ -0,0 +1,37 @@ +From c9b8cf86ba8a24f1e0a45de53a295166672cf219 Mon Sep 17 00:00:00 2001 +From: Johannes Schindelin +Date: Thu, 10 Sep 2015 13:09:15 +0200 +Subject: [PATCH] Prevent absolute DOS path from being hard-coded + +When passing absolute POSIX-style paths to the MinGW compiler, they are +mangled into Windows-style paths, including the DOS drive, making the +paths highly specific to the developer who happened to build the package. + +This is obviously not what we want, so prefix the absolute POSIX path with +a space to convince the MSys2 runtime *not* to mangle the aliaspath. + +Signed-off-by: Johannes Schindelin +--- + gettext-runtime/intl/Makefile.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/gettext-runtime/intl/Makefile.in b/gettext-runtime/intl/Makefile.in +index 49751a2..b801220 100644 +--- a/gettext-runtime/intl/Makefile.in ++++ b/gettext-runtime/intl/Makefile.in +@@ -98,9 +98,9 @@ am__v_lt_0 = --silent + + # -DBUILDING_LIBINTL: Change expansion of LIBINTL_DLL_EXPORTED macro. + # -DBUILDING_DLL: Change expansion of RELOCATABLE_DLL_EXPORTED macro. +-DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \ +--DLIBDIR=\"$(libdir)\" -DBUILDING_LIBINTL -DBUILDING_DLL -DIN_LIBINTL \ +--DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \ ++DEFS = -DLOCALEDIR=\ \"$(localedir)\" -DLOCALE_ALIAS_PATH=\ \"$(aliaspath)\" \ ++-DLIBDIR=\ \"$(libdir)\" -DBUILDING_LIBINTL -DBUILDING_DLL -DIN_LIBINTL \ ++-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\ \"$(libdir)\" -DNO_XMALLOC \ + -Dset_relocation_prefix=libintl_set_relocation_prefix \ + -Drelocate=libintl_relocate \ + -DDEPENDS_ON_LIBICONV=1 @DEFS@ +-- +2.5.1+unc.5.gc15a74e.dirty + diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index 9981a9f124..2f57eebcc5 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -25,7 +25,8 @@ source=("http://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-${pkgver}.tar.gz"{ 05-always-use-libintl-vsnprintf.mingw.patch 06-dont-include-ctype-after-gnulibs-wctype.mingw.patch 07-fix-asprintf-conflict.mingw.patch - 08-vs-compatible.patch) + 08-vs-compatible.patch + 121-keep-posix-path.patch) md5sums=('2b2ab90f6405a414bbe30cf6655f3e28' 'SKIP' '397d7d6d4abd15a70edb3c9f2bab4cd2' @@ -34,7 +35,8 @@ md5sums=('2b2ab90f6405a414bbe30cf6655f3e28' '27852a388b8cf38188dc392c244230ff' 'f69747f43f279b8a81286cfe5916b82f' '3ebccf730ec3377b068027eb2283afb2' - 'f5b611172ae58f1e4589a8d0c1d53414') + 'f5b611172ae58f1e4589a8d0c1d53414' + 'cc773909f10b1cbb626caafa822c73cf') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -50,6 +52,7 @@ prepare() { patch -p0 -i ${srcdir}/07-fix-asprintf-conflict.mingw.patch patch -p0 -i ${srcdir}/08-vs-compatible.patch #patch -p1 -i ${srcdir}/120-Fix-Woe32-link-errors-when-compiling-with-O0.patch + patch -p1 -i ${srcdir}/121-keep-posix-path.patch # libtoolize --automake --copy --force #WANT_AUTOMAKE=latest ./autogen.sh --skip-gnulib From 1aab167f986b553622fffdb012f62db2b4d54394 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Thu, 10 Sep 2015 17:59:00 +0200 Subject: [PATCH 1563/2060] Bump pkgrel of mingw-w64-gettext to allow a new release Signed-off-by: Johannes Schindelin --- mingw-w64-gettext/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index 2f57eebcc5..964007f31f 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -4,7 +4,7 @@ _realname=gettext pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.19.5.1 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="GNU internationalization library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" From e5d6fac38a48efb196e5c48aecf3c4ea09870ca4 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 11 Sep 2015 08:47:33 +0300 Subject: [PATCH 1564/2060] vtk: Update to 6.3.0 --- mingw-w64-vtk/PKGBUILD | 17 ++++++++--------- mingw-w64-vtk/win64-ptr-cast.patch | 12 ------------ 2 files changed, 8 insertions(+), 21 deletions(-) delete mode 100644 mingw-w64-vtk/win64-ptr-cast.patch diff --git a/mingw-w64-vtk/PKGBUILD b/mingw-w64-vtk/PKGBUILD index b9db145636..152881cd49 100644 --- a/mingw-w64-vtk/PKGBUILD +++ b/mingw-w64-vtk/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Sergey Popov _realname=vtk +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.2.0 -pkgrel=2 +pkgver=6.3.0 +pkgrel=1 pkgdesc="A software system for 3D computer graphics, image processing and visualization (mingw-w64)" arch=('any') url="http://www.vtk.org/" @@ -37,18 +38,16 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-boost: InfovisBoost and InfovisBoostGraphAl "${MINGW_PACKAGE_PREFIX}-python2: Python bindings" "${MINGW_PACKAGE_PREFIX}-python2-matplotlib: Matplotlib renderer" "${MINGW_PACKAGE_PREFIX}-tk: TCL bindings, Python Tk widgets") -source=(${_realname}-${pkgver}.tar.gz::"https://github.com/Kitware/VTK/archive/v${pkgver}.tar.gz" - "vtk-mingw-w64.patch" - "win64-ptr-cast.patch") -md5sums=('742a2b3fbe5520c75d2a3925e8774040' - '1534dad8934905a0a54870ab4273dad0' - '5205a6a4c29ece320e5a6646150d8593') +source=(#${_realname}-${pkgver}.tar.gz::"https://github.com/Kitware/VTK/archive/v${pkgver}.tar.gz" + http://www.vtk.org/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz + "vtk-mingw-w64.patch") +md5sums=('0231ca4840408e9dd60af48b314c5b6d' + '1534dad8934905a0a54870ab4273dad0') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -Np1 -i "$srcdir/vtk-mingw-w64.patch" - patch -Np1 -i "$srcdir/win64-ptr-cast.patch" } build() { diff --git a/mingw-w64-vtk/win64-ptr-cast.patch b/mingw-w64-vtk/win64-ptr-cast.patch deleted file mode 100644 index 1009dcf610..0000000000 --- a/mingw-w64-vtk/win64-ptr-cast.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur a/IO/Video/vtkWin32VideoSource.cxx b/IO/Video/vtkWin32VideoSource.cxx ---- a/IO/Video/vtkWin32VideoSource.cxx 2015-03-03 06:56:42.000000000 +0600 -+++ b/IO/Video/vtkWin32VideoSource.cxx 2015-03-04 18:47:05.859427800 +0600 -@@ -349,7 +349,7 @@ - } - - // set user data for callbacks -- if (!capSetUserData(this->Internal->CapWnd,(long)this)) -+ if (!capSetUserData(this->Internal->CapWnd,(vtkLONG)this)) - { - vtkErrorMacro(<< "Initialize: couldn't set user data for callback"\ - << " (" << GetLastError() << ")"); From dd8f47a7f852c719f38fd772421c9f289e56d516 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 11 Sep 2015 11:52:16 +0300 Subject: [PATCH 1565/2060] Rebuild with poppler-0.36 --- mingw-w64-evince/PKGBUILD | 31 ++++++++++++++++--------------- mingw-w64-gdal/PKGBUILD | 2 +- mingw-w64-gimp/PKGBUILD | 2 +- mingw-w64-inkscape/PKGBUILD | 2 +- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index 7d08f2cb56..5287e7cfc4 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -1,12 +1,15 @@ # Maintainer: Andrea Zagli _realname=evince +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.16.1 -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="Document (PostScript, PDF) viewer (mingw-w64)" -options=(strip staticlibs) +license=("GPL 2") +url="http://www.gnome.org" +options=('strip' 'staticlibs') depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-cairo" "${MINGW_PACKAGE_PREFIX}-djvulibre" @@ -17,19 +20,17 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-poppler") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "make" - "libtool" - "automake-wrapper" - "autoconf" - "gtk-doc" - "intltool" - "itstool" - "gettext-devel" - "yelp-tools") -license=("GPL 2") -url="http://www.gnome.org" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "make" + "libtool" + "automake-wrapper" + "autoconf" + "gtk-doc" + "intltool" + "itstool" + "gettext-devel" + "yelp-tools") install=evince-${CARCH}.install source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-give-cc-to-gir-scanner.mingw.patch) diff --git a/mingw-w64-gdal/PKGBUILD b/mingw-w64-gdal/PKGBUILD index 680593db86..ffac0540ba 100644 --- a/mingw-w64-gdal/PKGBUILD +++ b/mingw-w64-gdal/PKGBUILD @@ -7,7 +7,7 @@ _realname=gdal pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.0 -pkgrel=4 +pkgrel=5 pkgdesc="A translator library for raster geospatial data formats (mingw-w64)" arch=('any') url="http://www.gdal.org/" diff --git a/mingw-w64-gimp/PKGBUILD b/mingw-w64-gimp/PKGBUILD index 936cc0c7ce..983bb5d9e9 100644 --- a/mingw-w64-gimp/PKGBUILD +++ b/mingw-w64-gimp/PKGBUILD @@ -4,7 +4,7 @@ _realname=gimp pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.8.14 -pkgrel=6 +pkgrel=7 pkgdesc="GNU Image Manipulation Program (mingw-w64)" arch=('any') url="http://www.gimp.org/" diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index f59d1f7af1..d231642267 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -12,7 +12,7 @@ _realname=inkscape pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.91 -pkgrel=9 +pkgrel=10 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') url="http://inkscape.sourceforge.net/" From a2e01ed11cdf51373ab42bac96b60d4b581b865c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 11 Sep 2015 11:52:43 +0300 Subject: [PATCH 1566/2060] libtasn1: Update to 4.6 --- mingw-w64-libtasn1/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libtasn1/PKGBUILD b/mingw-w64-libtasn1/PKGBUILD index 5a59e16d2f..6e884e5a04 100644 --- a/mingw-w64-libtasn1/PKGBUILD +++ b/mingw-w64-libtasn1/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libtasn1 +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.5 -pkgrel=2 +pkgver=4.6 +pkgrel=1 pkgdesc="A library for Abstract Syntax Notation One (ASN.1) and Distinguish Encoding Rules (DER) manipulation (mingw-w64)" arch=('any') url="http://www.gnu.org/software/libtasn1/" @@ -12,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://ftp.gnu.org/gnu/libtasn1/${_realname}-${pkgver}.tar.gz"{,.sig}) -md5sums=('81d272697545e82d39f6bd14854b68f0' +md5sums=('454a7f80362f38bd2335b6e9d95f57a6' 'SKIP') prepare() { From 2eae12d3669585fdccb76e314cf6f81d1637b78a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 11 Sep 2015 11:53:14 +0300 Subject: [PATCH 1567/2060] dcadec-git: Add conflicts. --- mingw-w64-dcadec-git/PKGBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-dcadec-git/PKGBUILD b/mingw-w64-dcadec-git/PKGBUILD index 68a9cdd744..c58d03261e 100644 --- a/mingw-w64-dcadec-git/PKGBUILD +++ b/mingw-w64-dcadec-git/PKGBUILD @@ -1,10 +1,12 @@ # Maintainer: Yuta Nakai _realname=dcadec +pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +conflicts=("${MINGW_PACKAGE_PREFIX}-libdca") pkgdesc='dcadec is a free DTS Coherent Acoustics decoder with support for HD extensions (mingw-w64)' pkgver=0.0.0.207.2a9186e -pkgrel=2 +pkgrel=3 arch=('any') url='https://github.com/foo86/dcadec.git' license=('LGPL') From e629b3add67e2765026380e28a1535eb5af5266f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 11 Sep 2015 11:53:38 +0300 Subject: [PATCH 1568/2060] Improve PKGBUILD's --- mingw-w64-libblueray/PKGBUILD | 1 + mingw-w64-libdca-svn/PKGBUILD | 1 + mingw-w64-libdvdcss/PKGBUILD | 1 + mingw-w64-libdvdnav/PKGBUILD | 1 + mingw-w64-libdvdread/PKGBUILD | 3 ++- mingw-w64-libgdata/PKGBUILD | 1 + mingw-w64-uhttpmock/PKGBUILD | 1 + 7 files changed, 8 insertions(+), 1 deletion(-) diff --git a/mingw-w64-libblueray/PKGBUILD b/mingw-w64-libblueray/PKGBUILD index 8b8f8aa50b..29934267d8 100644 --- a/mingw-w64-libblueray/PKGBUILD +++ b/mingw-w64-libblueray/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=libbluray +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.8.1 pkgrel=1 diff --git a/mingw-w64-libdca-svn/PKGBUILD b/mingw-w64-libdca-svn/PKGBUILD index 697397fd90..d1fb764b77 100644 --- a/mingw-w64-libdca-svn/PKGBUILD +++ b/mingw-w64-libdca-svn/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=libdca +pkgbase=mingw-w64-${_realname}-svn pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgver=r91 pkgrel=2 diff --git a/mingw-w64-libdvdcss/PKGBUILD b/mingw-w64-libdvdcss/PKGBUILD index 6db8edb561..91289cd2b5 100644 --- a/mingw-w64-libdvdcss/PKGBUILD +++ b/mingw-w64-libdvdcss/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=libdvdcss +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.99 pkgrel=1 diff --git a/mingw-w64-libdvdnav/PKGBUILD b/mingw-w64-libdvdnav/PKGBUILD index 063dbe9e0f..430df7ff59 100644 --- a/mingw-w64-libdvdnav/PKGBUILD +++ b/mingw-w64-libdvdnav/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=libdvdnav +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.0.3 pkgrel=1 diff --git a/mingw-w64-libdvdread/PKGBUILD b/mingw-w64-libdvdread/PKGBUILD index 6325a77d20..766b07c126 100644 --- a/mingw-w64-libdvdread/PKGBUILD +++ b/mingw-w64-libdvdread/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libdvdread +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.0.3 +pkgver=5.0.4 pkgrel=1 pkgdesc="Provides a simple foundation for reading DVD video disks (mingw-w64)" arch=('any') diff --git a/mingw-w64-libgdata/PKGBUILD b/mingw-w64-libgdata/PKGBUILD index cf0cd040e4..7e84b459fa 100644 --- a/mingw-w64-libgdata/PKGBUILD +++ b/mingw-w64-libgdata/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Andrea Zagli _realname=libgdata +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.17.2 pkgrel=1 diff --git a/mingw-w64-uhttpmock/PKGBUILD b/mingw-w64-uhttpmock/PKGBUILD index 1ca633676c..dc67efa50e 100644 --- a/mingw-w64-uhttpmock/PKGBUILD +++ b/mingw-w64-uhttpmock/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Andrea Zagli _realname=uhttpmock +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.5.0 pkgrel=1 From 99b58b4130108de4df1eab601d5621d6563dfa0e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 11 Sep 2015 12:45:40 +0300 Subject: [PATCH 1569/2060] Update mingw-w64 runtime to 5.0.0.4573.628fdbf --- ...ototype-for-CreateDeviceAndSwapChain.patch | 47 - .../0005-Add-missing-DirectX-11-enum.patch | 59 - .../0006-Add-d3d11-video-decoder.patch | 1192 ----------------- mingw-w64-crt-git/PKGBUILD | 20 +- ...ototype-for-CreateDeviceAndSwapChain.patch | 47 - .../0005-Add-missing-DirectX-11-enum.patch | 59 - .../0006-Add-d3d11-video-decoder.patch | 1192 ----------------- mingw-w64-headers-git/PKGBUILD | 22 +- mingw-w64-tools-git/PKGBUILD | 7 +- mingw-w64-winpthreads-git/PKGBUILD | 10 +- .../libwinpthread-revert.patch | 1076 --------------- 11 files changed, 21 insertions(+), 3710 deletions(-) delete mode 100644 mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch delete mode 100644 mingw-w64-crt-git/0005-Add-missing-DirectX-11-enum.patch delete mode 100644 mingw-w64-crt-git/0006-Add-d3d11-video-decoder.patch delete mode 100644 mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch delete mode 100644 mingw-w64-headers-git/0005-Add-missing-DirectX-11-enum.patch delete mode 100644 mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch delete mode 100644 mingw-w64-winpthreads-git/libwinpthread-revert.patch diff --git a/mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch b/mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch deleted file mode 100644 index b98d3c008f..0000000000 --- a/mingw-w64-crt-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 9edc68dfaf560cb9d9979b0883bdd9378841d6d1 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Mon, 16 Feb 2015 19:02:56 +0000 -Subject: [PATCH 1/6] d3d11: Add prototype for CreateDeviceAndSwapChain - ---- - mingw-w64-headers/direct-x/include/d3d11.h | 3 +++ - mingw-w64-headers/direct-x/include/d3d11.idl | 5 +++++ - 2 files changed, 8 insertions(+) - -diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h -index cc64c3f..e49fd99 100644 ---- a/mingw-w64-headers/direct-x/include/d3d11.h -+++ b/mingw-w64-headers/direct-x/include/d3d11.h -@@ -8878,6 +8878,9 @@ HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,cons - typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT, - const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**, - D3D_FEATURE_LEVEL*,ID3D11DeviceContext**); -+HRESULT WINAPI D3D11CreateDeviceAndSwapChain(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT, -+ const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**, -+ D3D_FEATURE_LEVEL*,ID3D11DeviceContext**); - /* Begin additional prototypes for all interfaces */ - - -diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl -index c187463..59beafb 100644 ---- a/mingw-w64-headers/direct-x/include/d3d11.idl -+++ b/mingw-w64-headers/direct-x/include/d3d11.idl -@@ -1,6 +1,7 @@ - /* - * Copyright 2010 Rico Schüller - * Copyright 2013 Austin English -+ * Copyright 2015 Martell Malone - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -2157,3 +2158,7 @@ cpp_quote(" UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext** - cpp_quote("typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") - cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") - cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") -+ -+cpp_quote("HRESULT WINAPI D3D11CreateDeviceAndSwapChain(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") -+cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") -+cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") --- -2.4.5 - diff --git a/mingw-w64-crt-git/0005-Add-missing-DirectX-11-enum.patch b/mingw-w64-crt-git/0005-Add-missing-DirectX-11-enum.patch deleted file mode 100644 index 15939a8bf0..0000000000 --- a/mingw-w64-crt-git/0005-Add-missing-DirectX-11-enum.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 6430ecb9f4241e8b516f35bd3a671c575c095efb Mon Sep 17 00:00:00 2001 -From: Alexey Pavlov -Date: Tue, 17 Feb 2015 19:13:53 +0300 -Subject: [PATCH 5/6] Add missing DirectX 11 enum - ---- - mingw-w64-headers/direct-x/include/d3dcommon.h | 11 +++++++++++ - mingw-w64-headers/direct-x/include/d3dcommon.idl | 13 +++++++++++++ - 2 files changed, 24 insertions(+) - -diff --git a/mingw-w64-headers/direct-x/include/d3dcommon.h b/mingw-w64-headers/direct-x/include/d3dcommon.h -index 5c1e674..04ffd29 100644 ---- a/mingw-w64-headers/direct-x/include/d3dcommon.h -+++ b/mingw-w64-headers/direct-x/include/d3dcommon.h -@@ -290,6 +290,17 @@ typedef enum _D3D_SHADER_VARIABLE_CLASS { - D3D11_SVC_INTERFACE_POINTER = 7, - D3D_SVC_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_VARIABLE_CLASS; -+typedef enum _D3D_SHADER_VARIABLE_FLAGS { -+ D3D_SVF_USERPACKED = 1, -+ D3D_SVF_USED = 2, -+ D3D_SVF_INTERFACE_POINTER = 4, -+ D3D_SVF_INTERFACE_PARAMETER = 8, -+ D3D10_SVF_USERPACKED = 1, -+ D3D10_SVF_USED = 2, -+ D3D11_SVF_INTERFACE_POINTER = 4, -+ D3D11_SVF_INTERFACE_PARAMETER = 8, -+ D3D_SVF_FORCE_DWORD = 0x7fffffff -+} D3D_SHADER_VARIABLE_FLAGS; - typedef enum _D3D_SHADER_VARIABLE_TYPE { - D3D_SVT_VOID = 0, - D3D_SVT_BOOL = 1, -diff --git a/mingw-w64-headers/direct-x/include/d3dcommon.idl b/mingw-w64-headers/direct-x/include/d3dcommon.idl -index f8fe203..3f75afb 100644 ---- a/mingw-w64-headers/direct-x/include/d3dcommon.idl -+++ b/mingw-w64-headers/direct-x/include/d3dcommon.idl -@@ -126,6 +126,19 @@ typedef enum _D3D_SHADER_VARIABLE_CLASS - D3D_SVC_FORCE_DWORD = 0x7fffffff, - } D3D_SHADER_VARIABLE_CLASS; - -+typedef enum _D3D_SHADER_VARIABLE_FLAGS -+{ -+ D3D_SVF_USERPACKED = 1, -+ D3D_SVF_USED = 2, -+ D3D_SVF_INTERFACE_POINTER = 4, -+ D3D_SVF_INTERFACE_PARAMETER = 8, -+ D3D10_SVF_USERPACKED = 1, -+ D3D10_SVF_USED = 2, -+ D3D11_SVF_INTERFACE_POINTER = 4, -+ D3D11_SVF_INTERFACE_PARAMETER = 8, -+ D3D_SVF_FORCE_DWORD = 0x7fffffff -+} D3D_SHADER_VARIABLE_FLAGS; -+ - typedef enum _D3D_SHADER_VARIABLE_TYPE - { - D3D_SVT_VOID, --- -2.4.5 - diff --git a/mingw-w64-crt-git/0006-Add-d3d11-video-decoder.patch b/mingw-w64-crt-git/0006-Add-d3d11-video-decoder.patch deleted file mode 100644 index 2e78e28dc0..0000000000 --- a/mingw-w64-crt-git/0006-Add-d3d11-video-decoder.patch +++ /dev/null @@ -1,1192 +0,0 @@ -From b952e857814e5cfe766626573e2f056ed91ceb09 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Sun, 14 Jun 2015 21:07:03 +0100 -Subject: [PATCH 6/6] Add d3d11 video decoder - ---- - mingw-w64-headers/direct-x/include/d3d11.h | 949 +++++++++++++++++++++++++++ - mingw-w64-headers/direct-x/include/d3d11.idl | 208 ++++++ - 2 files changed, 1157 insertions(+) - -diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h -index e49fd99..834a536 100644 ---- a/mingw-w64-headers/direct-x/include/d3d11.h -+++ b/mingw-w64-headers/direct-x/include/d3d11.h -@@ -8850,6 +8850,955 @@ void __RPC_STUB ID3D11Device_GetExceptionMode_Stub( - - #endif /* __ID3D11Device_INTERFACE_DEFINED__ */ - -+typedef enum D3D11_VDOV_DIMENSION { -+ D3D11_VDOV_DIMENSION_UNKNOWN = 0, -+ D3D11_VDOV_DIMENSION_TEXTURE2D = 1 -+} D3D11_VDOV_DIMENSION; -+typedef struct D3D11_TEX2D_VDOV { -+ UINT ArraySlice; -+} D3D11_TEX2D_VDOV; -+typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC { -+ GUID DecodeProfile; -+ D3D11_VDOV_DIMENSION ViewDimension; -+ __C89_NAMELESS union { -+ D3D11_TEX2D_VDOV Texture2D; -+ } __C89_NAMELESSUNIONNAME; -+} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; -+/***************************************************************************** -+ * ID3D11VideoDecoderOutputView interface -+ */ -+#ifndef __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ -+#define __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("c2931aea-2a85-4f20-860f-fba1fd256e18") -+ID3D11VideoDecoderOutputView : public ID3D11View -+{ -+ virtual void STDMETHODCALLTYPE GetDesc( -+ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18) -+#endif -+#else -+typedef struct ID3D11VideoDecoderOutputViewVtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11VideoDecoderOutputView* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11VideoDecoderOutputView* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11VideoDecoderOutputView* This); -+ -+ /*** ID3D11DeviceChild methods ***/ -+ void (STDMETHODCALLTYPE *GetDevice)( -+ ID3D11VideoDecoderOutputView* This, -+ ID3D11Device **ppDevice); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11VideoDecoderOutputView* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11VideoDecoderOutputView* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11VideoDecoderOutputView* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ /*** ID3D11View methods ***/ -+ void (STDMETHODCALLTYPE *GetResource)( -+ ID3D11VideoDecoderOutputView* This, -+ ID3D11Resource **ppResource); -+ -+ /*** ID3D11VideoDecoderOutputView methods ***/ -+ void (STDMETHODCALLTYPE *GetDesc)( -+ ID3D11VideoDecoderOutputView* This, -+ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); -+ -+ END_INTERFACE -+} ID3D11VideoDecoderOutputViewVtbl; -+interface ID3D11VideoDecoderOutputView { -+ CONST_VTBL ID3D11VideoDecoderOutputViewVtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11VideoDecoderOutputView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11VideoDecoderOutputView_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11VideoDecoderOutputView_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11DeviceChild methods ***/ -+#define ID3D11VideoDecoderOutputView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) -+#define ID3D11VideoDecoderOutputView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11VideoDecoderOutputView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11VideoDecoderOutputView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+/*** ID3D11View methods ***/ -+#define ID3D11VideoDecoderOutputView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource) -+/*** ID3D11VideoDecoderOutputView methods ***/ -+#define ID3D11VideoDecoderOutputView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_QueryInterface(ID3D11VideoDecoderOutputView* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11VideoDecoderOutputView_AddRef(ID3D11VideoDecoderOutputView* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11VideoDecoderOutputView_Release(ID3D11VideoDecoderOutputView* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11DeviceChild methods ***/ -+static FORCEINLINE void ID3D11VideoDecoderOutputView_GetDevice(ID3D11VideoDecoderOutputView* This,ID3D11Device **ppDevice) { -+ This->lpVtbl->GetDevice(This,ppDevice); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_GetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_SetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_SetPrivateDataInterface(ID3D11VideoDecoderOutputView* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+/*** ID3D11View methods ***/ -+static FORCEINLINE void ID3D11VideoDecoderOutputView_GetResource(ID3D11VideoDecoderOutputView* This,ID3D11Resource **ppResource) { -+ This->lpVtbl->GetResource(This,ppResource); -+} -+/*** ID3D11VideoDecoderOutputView methods ***/ -+static FORCEINLINE void ID3D11VideoDecoderOutputView_GetDesc(ID3D11VideoDecoderOutputView* This,D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) { -+ This->lpVtbl->GetDesc(This,pDesc); -+} -+#endif -+#endif -+ -+#endif -+ -+void STDMETHODCALLTYPE ID3D11VideoDecoderOutputView_GetDesc_Proxy( -+ ID3D11VideoDecoderOutputView* This, -+ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); -+void __RPC_STUB ID3D11VideoDecoderOutputView_GetDesc_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ */ -+ -+/***************************************************************************** -+ * ID3D11VideoDecoder interface -+ */ -+#ifndef __ID3D11VideoDecoder_INTERFACE_DEFINED__ -+#define __ID3D11VideoDecoder_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("3c9c5b51-995d-48d1-9b8d-fa5caeded65c") -+ID3D11VideoDecoder : public ID3D11DeviceChild -+{ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c) -+#endif -+#else -+typedef struct ID3D11VideoDecoderVtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11VideoDecoder* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11VideoDecoder* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11VideoDecoder* This); -+ -+ /*** ID3D11DeviceChild methods ***/ -+ void (STDMETHODCALLTYPE *GetDevice)( -+ ID3D11VideoDecoder* This, -+ ID3D11Device **ppDevice); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11VideoDecoder* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11VideoDecoder* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11VideoDecoder* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ END_INTERFACE -+} ID3D11VideoDecoderVtbl; -+interface ID3D11VideoDecoder { -+ CONST_VTBL ID3D11VideoDecoderVtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11VideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11VideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11VideoDecoder_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11DeviceChild methods ***/ -+#define ID3D11VideoDecoder_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) -+#define ID3D11VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11VideoDecoder_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11VideoDecoder_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoDecoder_QueryInterface(ID3D11VideoDecoder* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11VideoDecoder_AddRef(ID3D11VideoDecoder* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11VideoDecoder_Release(ID3D11VideoDecoder* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11DeviceChild methods ***/ -+static FORCEINLINE void ID3D11VideoDecoder_GetDevice(ID3D11VideoDecoder* This,ID3D11Device **ppDevice) { -+ This->lpVtbl->GetDevice(This,ppDevice); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoder_GetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoder_SetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoder_SetPrivateDataInterface(ID3D11VideoDecoder* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+#endif -+#endif -+ -+#endif -+ -+ -+#endif /* __ID3D11VideoDecoder_INTERFACE_DEFINED__ */ -+ -+typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE { -+ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, -+ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, -+ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, -+ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, -+ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, -+ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, -+ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, -+ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, -+ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8 -+} D3D11_VIDEO_DECODER_BUFFER_TYPE; -+typedef struct D3D11_ENCRYPTED_BLOCK_INFO { -+ UINT NumEncryptedBytesAtBeginning; -+ UINT NumBytesInSkipPattern; -+ UINT NumBytesInEncryptPattern; -+} D3D11_ENCRYPTED_BLOCK_INFO; -+typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC { -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; -+ UINT BufferIndex; -+ UINT DataOffset; -+ UINT DataSize; -+ UINT FirstMBaddress; -+ UINT NumMBsInBuffer; -+ UINT Width; -+ UINT Height; -+ UINT Stride; -+ UINT ReservedBits; -+ void *pIV; -+ UINT IVSize; -+ WINBOOL PartialEncryption; -+ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; -+} D3D11_VIDEO_DECODER_BUFFER_DESC; -+/***************************************************************************** -+ * ID3D11VideoContext interface -+ */ -+#ifndef __ID3D11VideoContext_INTERFACE_DEFINED__ -+#define __ID3D11VideoContext_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("61f21c45-3c0e-4a74-9cea-67100d9ad5e4") -+ID3D11VideoContext : public ID3D11DeviceChild -+{ -+ virtual HRESULT STDMETHODCALLTYPE GetDecoderBuffer( -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, -+ UINT *pBufferSize, -+ void **ppBuffer) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE ReleaseDecoderBuffer( -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame( -+ ID3D11VideoDecoder *pDecoder, -+ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, -+ UINT ContentKeySize, -+ const void *pContentKey) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE DecoderEndFrame( -+ ID3D11VideoDecoder *pDecoder) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers( -+ ID3D11VideoDecoder *pDecoder, -+ UINT NumBuffers, -+ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4) -+#endif -+#else -+typedef struct ID3D11VideoContextVtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11VideoContext* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11VideoContext* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11VideoContext* This); -+ -+ /*** ID3D11DeviceChild methods ***/ -+ void (STDMETHODCALLTYPE *GetDevice)( -+ ID3D11VideoContext* This, -+ ID3D11Device **ppDevice); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11VideoContext* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11VideoContext* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11VideoContext* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ /*** ID3D11VideoContext methods ***/ -+ HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, -+ UINT *pBufferSize, -+ void **ppBuffer); -+ -+ HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); -+ -+ HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, -+ UINT ContentKeySize, -+ const void *pContentKey); -+ -+ HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder); -+ -+ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ UINT NumBuffers, -+ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); -+ -+ END_INTERFACE -+} ID3D11VideoContextVtbl; -+interface ID3D11VideoContext { -+ CONST_VTBL ID3D11VideoContextVtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11VideoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11VideoContext_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11VideoContext_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11DeviceChild methods ***/ -+#define ID3D11VideoContext_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) -+#define ID3D11VideoContext_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11VideoContext_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11VideoContext_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+/*** ID3D11VideoContext methods ***/ -+#define ID3D11VideoContext_GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) (This)->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) -+#define ID3D11VideoContext_ReleaseDecoderBuffer(This,pDecoder,BufferType) (This)->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType) -+#define ID3D11VideoContext_DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) (This)->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) -+#define ID3D11VideoContext_DecoderEndFrame(This,pDecoder) (This)->lpVtbl->DecoderEndFrame(This,pDecoder) -+#define ID3D11VideoContext_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) (This)->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoContext_QueryInterface(ID3D11VideoContext* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11VideoContext_AddRef(ID3D11VideoContext* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11VideoContext_Release(ID3D11VideoContext* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11DeviceChild methods ***/ -+static FORCEINLINE void ID3D11VideoContext_GetDevice(ID3D11VideoContext* This,ID3D11Device **ppDevice) { -+ This->lpVtbl->GetDevice(This,ppDevice); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_GetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateDataInterface(ID3D11VideoContext* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+/*** ID3D11VideoContext methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoContext_GetDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType,UINT *pBufferSize,void **ppBuffer) { -+ return This->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_ReleaseDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) { -+ return This->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_DecoderBeginFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,ID3D11VideoDecoderOutputView *pVideoDecoderOutputView,UINT ContentKeySize,const void *pContentKey) { -+ return This->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_DecoderEndFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder) { -+ return This->lpVtbl->DecoderEndFrame(This,pDecoder); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_SubmitDecoderBuffers(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,UINT NumBuffers,const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) { -+ return This->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc); -+} -+#endif -+#endif -+ -+#endif -+ -+HRESULT STDMETHODCALLTYPE ID3D11VideoContext_GetDecoderBuffer_Proxy( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, -+ UINT *pBufferSize, -+ void **ppBuffer); -+void __RPC_STUB ID3D11VideoContext_GetDecoderBuffer_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoContext_ReleaseDecoderBuffer_Proxy( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); -+void __RPC_STUB ID3D11VideoContext_ReleaseDecoderBuffer_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderBeginFrame_Proxy( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, -+ UINT ContentKeySize, -+ const void *pContentKey); -+void __RPC_STUB ID3D11VideoContext_DecoderBeginFrame_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderEndFrame_Proxy( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder); -+void __RPC_STUB ID3D11VideoContext_DecoderEndFrame_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoContext_SubmitDecoderBuffers_Proxy( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ UINT NumBuffers, -+ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); -+void __RPC_STUB ID3D11VideoContext_SubmitDecoderBuffers_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11VideoContext_INTERFACE_DEFINED__ */ -+ -+typedef struct D3D11_VIDEO_DECODER_DESC { -+ GUID Guid; -+ UINT SampleWidth; -+ UINT SampleHeight; -+ DXGI_FORMAT OutputFormat; -+} D3D11_VIDEO_DECODER_DESC; -+typedef struct D3D11_VIDEO_DECODER_CONFIG { -+ GUID guidConfigBitstreamEncryption; -+ GUID guidConfigMBcontrolEncryption; -+ GUID guidConfigResidDiffEncryption; -+ UINT ConfigBitstreamRaw; -+ UINT ConfigMBcontrolRasterOrder; -+ UINT ConfigResidDiffHost; -+ UINT ConfigSpatialResid8; -+ UINT ConfigResid8Subtraction; -+ UINT ConfigSpatialHost8or9Clipping; -+ UINT ConfigSpatialResidInterleaved; -+ UINT ConfigIntraResidUnsigned; -+ UINT ConfigResidDiffAccelerator; -+ UINT ConfigHostInverseScan; -+ UINT ConfigSpecificIDCT; -+ UINT Config4GroupedCoefs; -+ USHORT ConfigMinRenderTargetBuffCount; -+ USHORT ConfigDecoderSpecific; -+} D3D11_VIDEO_DECODER_CONFIG; -+typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE { -+ D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, -+ D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2, -+ D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3 -+} D3D11_AUTHENTICATED_CHANNEL_TYPE; -+#ifndef __ID3D11VideoProcessorEnumerator_FWD_DEFINED__ -+#define __ID3D11VideoProcessorEnumerator_FWD_DEFINED__ -+typedef interface ID3D11VideoProcessorEnumerator ID3D11VideoProcessorEnumerator; -+#endif -+ -+#ifndef __ID3D11VideoProcessor_FWD_DEFINED__ -+#define __ID3D11VideoProcessor_FWD_DEFINED__ -+typedef interface ID3D11VideoProcessor ID3D11VideoProcessor; -+#endif -+ -+#ifndef __ID3D11VideoProcessorInputView_FWD_DEFINED__ -+#define __ID3D11VideoProcessorInputView_FWD_DEFINED__ -+typedef interface ID3D11VideoProcessorInputView ID3D11VideoProcessorInputView; -+#endif -+ -+#ifndef __ID3D11VideoProcessorOutputView_FWD_DEFINED__ -+#define __ID3D11VideoProcessorOutputView_FWD_DEFINED__ -+typedef interface ID3D11VideoProcessorOutputView ID3D11VideoProcessorOutputView; -+#endif -+ -+#ifndef __ID3D11AuthenticatedChannel_FWD_DEFINED__ -+#define __ID3D11AuthenticatedChannel_FWD_DEFINED__ -+typedef interface ID3D11AuthenticatedChannel ID3D11AuthenticatedChannel; -+#endif -+ -+#ifndef __ID3D11CryptoSession_FWD_DEFINED__ -+#define __ID3D11CryptoSession_FWD_DEFINED__ -+typedef interface ID3D11CryptoSession ID3D11CryptoSession; -+#endif -+ -+/***************************************************************************** -+ * ID3D11VideoDevice interface -+ */ -+#ifndef __ID3D11VideoDevice_INTERFACE_DEFINED__ -+#define __ID3D11VideoDevice_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("10ec4d5b-975a-4689-b9e4-d0aac30fe333") -+ID3D11VideoDevice : public IUnknown -+{ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder( -+ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, -+ const D3D11_VIDEO_DECODER_CONFIG *pConfig, -+ ID3D11VideoDecoder **ppVideoDecoder) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor( -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ UINT RateConversionIndex, -+ ID3D11VideoProcessor **ppVideoProcessor) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateAuthenticatedChannel( -+ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, -+ ID3D11AuthenticatedChannel **ppAuthenticatedChannel) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateCryptoSession( -+ const GUID *pCryptoType, -+ const GUID *pDecoderProfile, -+ const GUID *pKeyExchangeType, -+ ID3D11CryptoSession **ppCryptoSession) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderOutputView( -+ ID3D11Resource *pResource, -+ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, -+ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorInputView( -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ const void *pInputDesc, -+ ID3D11VideoProcessorInputView **ppVideoProcInputView) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorOutputView( -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *pEnumerator, -+ const void *pOutputDesc, -+ ID3D11VideoProcessorOutputView **ppVideoProcOutputView) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorEnumerator( -+ const void *pContentDesc, -+ ID3D11VideoProcessorEnumerator **ppProcEnumerator) = 0; -+ -+ virtual UINT STDMETHODCALLTYPE GetVideoDecoderProfileCount( -+ ) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderProfile( -+ UINT DecoderIndex, -+ GUID *pDecoderProfile) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CheckVideoDecoderFormat( -+ const GUID *pDecoderProfile, -+ DXGI_FORMAT Format, -+ WINBOOL *pSupported) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfigCount( -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT *pCount) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfig( -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT DecoderIndex, -+ D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33) -+#endif -+#else -+typedef struct ID3D11VideoDeviceVtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11VideoDevice* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11VideoDevice* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11VideoDevice* This); -+ -+ /*** ID3D11VideoDevice methods ***/ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoder)( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, -+ const D3D11_VIDEO_DECODER_CONFIG *pConfig, -+ ID3D11VideoDecoder **ppVideoDecoder); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)( -+ ID3D11VideoDevice* This, -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ UINT RateConversionIndex, -+ ID3D11VideoProcessor **ppVideoProcessor); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateAuthenticatedChannel)( -+ ID3D11VideoDevice* This, -+ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, -+ ID3D11AuthenticatedChannel **ppAuthenticatedChannel); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateCryptoSession)( -+ ID3D11VideoDevice* This, -+ const GUID *pCryptoType, -+ const GUID *pDecoderProfile, -+ const GUID *pKeyExchangeType, -+ ID3D11CryptoSession **ppCryptoSession); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoderOutputView)( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, -+ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorInputView)( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ const void *pInputDesc, -+ ID3D11VideoProcessorInputView **ppVideoProcInputView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorOutputView)( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *pEnumerator, -+ const void *pOutputDesc, -+ ID3D11VideoProcessorOutputView **ppVideoProcOutputView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorEnumerator)( -+ ID3D11VideoDevice* This, -+ const void *pContentDesc, -+ ID3D11VideoProcessorEnumerator **ppProcEnumerator); -+ -+ UINT (STDMETHODCALLTYPE *GetVideoDecoderProfileCount)( -+ ID3D11VideoDevice* This); -+ -+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderProfile)( -+ ID3D11VideoDevice* This, -+ UINT DecoderIndex, -+ GUID *pDecoderProfile); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckVideoDecoderFormat)( -+ ID3D11VideoDevice* This, -+ const GUID *pDecoderProfile, -+ DXGI_FORMAT Format, -+ WINBOOL *pSupported); -+ -+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfigCount)( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT *pCount); -+ -+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfig)( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT DecoderIndex, -+ D3D11_VIDEO_DECODER_CONFIG *pConfig); -+ -+ END_INTERFACE -+} ID3D11VideoDeviceVtbl; -+interface ID3D11VideoDevice { -+ CONST_VTBL ID3D11VideoDeviceVtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11VideoDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11VideoDevice_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11VideoDevice_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11VideoDevice methods ***/ -+#define ID3D11VideoDevice_CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder) (This)->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder) -+#define ID3D11VideoDevice_CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor) (This)->lpVtbl->CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor) -+#define ID3D11VideoDevice_CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) (This)->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) -+#define ID3D11VideoDevice_CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) (This)->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) -+#define ID3D11VideoDevice_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView) (This)->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView) -+#define ID3D11VideoDevice_CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView) (This)->lpVtbl->CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView) -+#define ID3D11VideoDevice_CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView) (This)->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView) -+#define ID3D11VideoDevice_CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator) (This)->lpVtbl->CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator) -+#define ID3D11VideoDevice_GetVideoDecoderProfileCount(This) (This)->lpVtbl->GetVideoDecoderProfileCount(This) -+#define ID3D11VideoDevice_GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile) (This)->lpVtbl->GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile) -+#define ID3D11VideoDevice_CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) (This)->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) -+#define ID3D11VideoDevice_GetVideoDecoderConfigCount(This,pDesc,pCount) (This)->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount) -+#define ID3D11VideoDevice_GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig) (This)->lpVtbl->GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoDevice_QueryInterface(ID3D11VideoDevice* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11VideoDevice_AddRef(ID3D11VideoDevice* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11VideoDevice_Release(ID3D11VideoDevice* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11VideoDevice methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoDecoder(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pVideoDesc,const D3D11_VIDEO_DECODER_CONFIG *pConfig,ID3D11VideoDecoder **ppVideoDecoder) { -+ return This->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessor(ID3D11VideoDevice* This,ID3D11VideoProcessorEnumerator *ppProcEnumerator,UINT RateConversionIndex,ID3D11VideoProcessor **ppVideoProcessor) { -+ return This->lpVtbl->CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateAuthenticatedChannel(ID3D11VideoDevice* This,D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,ID3D11AuthenticatedChannel **ppAuthenticatedChannel) { -+ return This->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateCryptoSession(ID3D11VideoDevice* This,const GUID *pCryptoType,const GUID *pDecoderProfile,const GUID *pKeyExchangeType,ID3D11CryptoSession **ppCryptoSession) { -+ return This->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoDecoderOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView) { -+ return This->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorInputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *ppProcEnumerator,const void *pInputDesc,ID3D11VideoProcessorInputView **ppVideoProcInputView) { -+ return This->lpVtbl->CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *pEnumerator,const void *pOutputDesc,ID3D11VideoProcessorOutputView **ppVideoProcOutputView) { -+ return This->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorEnumerator(ID3D11VideoDevice* This,const void *pContentDesc,ID3D11VideoProcessorEnumerator **ppProcEnumerator) { -+ return This->lpVtbl->CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator); -+} -+static FORCEINLINE UINT ID3D11VideoDevice_GetVideoDecoderProfileCount(ID3D11VideoDevice* This) { -+ return This->lpVtbl->GetVideoDecoderProfileCount(This); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderProfile(ID3D11VideoDevice* This,UINT DecoderIndex,GUID *pDecoderProfile) { -+ return This->lpVtbl->GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CheckVideoDecoderFormat(ID3D11VideoDevice* This,const GUID *pDecoderProfile,DXGI_FORMAT Format,WINBOOL *pSupported) { -+ return This->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderConfigCount(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT *pCount) { -+ return This->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderConfig(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT DecoderIndex,D3D11_VIDEO_DECODER_CONFIG *pConfig) { -+ return This->lpVtbl->GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig); -+} -+#endif -+#endif -+ -+#endif -+ -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoDecoder_Proxy( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, -+ const D3D11_VIDEO_DECODER_CONFIG *pConfig, -+ ID3D11VideoDecoder **ppVideoDecoder); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoDecoder_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessor_Proxy( -+ ID3D11VideoDevice* This, -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ UINT RateConversionIndex, -+ ID3D11VideoProcessor **ppVideoProcessor); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessor_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateAuthenticatedChannel_Proxy( -+ ID3D11VideoDevice* This, -+ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, -+ ID3D11AuthenticatedChannel **ppAuthenticatedChannel); -+void __RPC_STUB ID3D11VideoDevice_CreateAuthenticatedChannel_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateCryptoSession_Proxy( -+ ID3D11VideoDevice* This, -+ const GUID *pCryptoType, -+ const GUID *pDecoderProfile, -+ const GUID *pKeyExchangeType, -+ ID3D11CryptoSession **ppCryptoSession); -+void __RPC_STUB ID3D11VideoDevice_CreateCryptoSession_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoDecoderOutputView_Proxy( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, -+ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoDecoderOutputView_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorInputView_Proxy( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ const void *pInputDesc, -+ ID3D11VideoProcessorInputView **ppVideoProcInputView); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorInputView_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorOutputView_Proxy( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *pEnumerator, -+ const void *pOutputDesc, -+ ID3D11VideoProcessorOutputView **ppVideoProcOutputView); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorOutputView_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorEnumerator_Proxy( -+ ID3D11VideoDevice* This, -+ const void *pContentDesc, -+ ID3D11VideoProcessorEnumerator **ppProcEnumerator); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorEnumerator_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+UINT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderProfileCount_Proxy( -+ ID3D11VideoDevice* This); -+void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderProfileCount_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderProfile_Proxy( -+ ID3D11VideoDevice* This, -+ UINT DecoderIndex, -+ GUID *pDecoderProfile); -+void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderProfile_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CheckVideoDecoderFormat_Proxy( -+ ID3D11VideoDevice* This, -+ const GUID *pDecoderProfile, -+ DXGI_FORMAT Format, -+ WINBOOL *pSupported); -+void __RPC_STUB ID3D11VideoDevice_CheckVideoDecoderFormat_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderConfigCount_Proxy( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT *pCount); -+void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderConfigCount_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderConfig_Proxy( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT DecoderIndex, -+ D3D11_VIDEO_DECODER_CONFIG *pConfig); -+void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderConfig_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11VideoDevice_INTERFACE_DEFINED__ */ -+ - typedef enum D3D11_CREATE_DEVICE_FLAG { - D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1, - D3D11_CREATE_DEVICE_DEBUG = 0x2, -diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl -index 59beafb..cfae7c8 100644 ---- a/mingw-w64-headers/direct-x/include/d3d11.idl -+++ b/mingw-w64-headers/direct-x/include/d3d11.idl -@@ -2126,6 +2126,214 @@ interface ID3D11Device : IUnknown - UINT GetExceptionMode(); - } - -+typedef enum D3D11_VDOV_DIMENSION -+{ -+ D3D11_VDOV_DIMENSION_UNKNOWN = 0, -+ D3D11_VDOV_DIMENSION_TEXTURE2D -+} D3D11_VDOV_DIMENSION; -+ -+typedef struct D3D11_TEX2D_VDOV -+{ -+ UINT ArraySlice; -+} D3D11_TEX2D_VDOV; -+ -+typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC -+{ -+ GUID DecodeProfile; -+ D3D11_VDOV_DIMENSION ViewDimension; -+ -+ union -+ { -+ D3D11_TEX2D_VDOV Texture2D; -+ }; -+} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; -+ -+[ -+ object, -+ local, -+ uuid(c2931aea-2a85-4f20-860f-fba1fd256e18) -+] -+interface ID3D11VideoDecoderOutputView : ID3D11View -+{ -+ void GetDesc( -+ [out] D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc ); -+} -+ -+[ -+ object, -+ local, -+ uuid(3c9c5b51-995d-48d1-9b8d-fa5caeded65c) -+] -+interface ID3D11VideoDecoder : ID3D11DeviceChild -+{ -+} -+ -+typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE -+{ -+ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, -+ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL, -+ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE, -+ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL, -+ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX, -+ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL, -+ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM, -+ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR, -+ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN -+} D3D11_VIDEO_DECODER_BUFFER_TYPE; -+ -+typedef struct D3D11_ENCRYPTED_BLOCK_INFO -+{ -+ UINT NumEncryptedBytesAtBeginning; -+ UINT NumBytesInSkipPattern; -+ UINT NumBytesInEncryptPattern; -+} D3D11_ENCRYPTED_BLOCK_INFO; -+ -+typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC -+{ -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; -+ UINT BufferIndex; -+ UINT DataOffset; -+ UINT DataSize; -+ UINT FirstMBaddress; -+ UINT NumMBsInBuffer; -+ UINT Width; -+ UINT Height; -+ UINT Stride; -+ UINT ReservedBits; -+ void *pIV; -+ UINT IVSize; -+ BOOL PartialEncryption; -+ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; -+} D3D11_VIDEO_DECODER_BUFFER_DESC; -+ -+[ -+ object, -+ local, -+ uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4) -+] -+interface ID3D11VideoContext : ID3D11DeviceChild -+{ -+ HRESULT GetDecoderBuffer( -+ [in] ID3D11VideoDecoder *pDecoder, -+ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, -+ [out] UINT *pBufferSize, -+ [out] void **ppBuffer); -+ HRESULT ReleaseDecoderBuffer( -+ [in] ID3D11VideoDecoder *pDecoder, -+ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); -+ HRESULT DecoderBeginFrame( -+ [in] ID3D11VideoDecoder *pDecoder, -+ [in] ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, -+ [in] UINT ContentKeySize, -+ [in] const void *pContentKey); -+ HRESULT DecoderEndFrame( -+ [in] ID3D11VideoDecoder *pDecoder); -+ HRESULT SubmitDecoderBuffers( -+ [in] ID3D11VideoDecoder *pDecoder, -+ [in] UINT NumBuffers, -+ [in] const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); -+} -+ -+typedef struct D3D11_VIDEO_DECODER_DESC -+{ -+ GUID Guid; -+ UINT SampleWidth; -+ UINT SampleHeight; -+ DXGI_FORMAT OutputFormat; -+} D3D11_VIDEO_DECODER_DESC; -+ -+typedef struct D3D11_VIDEO_DECODER_CONFIG -+{ -+ GUID guidConfigBitstreamEncryption; -+ GUID guidConfigMBcontrolEncryption; -+ GUID guidConfigResidDiffEncryption; -+ UINT ConfigBitstreamRaw; -+ UINT ConfigMBcontrolRasterOrder; -+ UINT ConfigResidDiffHost; -+ UINT ConfigSpatialResid8; -+ UINT ConfigResid8Subtraction; -+ UINT ConfigSpatialHost8or9Clipping; -+ UINT ConfigSpatialResidInterleaved; -+ UINT ConfigIntraResidUnsigned; -+ UINT ConfigResidDiffAccelerator; -+ UINT ConfigHostInverseScan; -+ UINT ConfigSpecificIDCT; -+ UINT Config4GroupedCoefs; -+ USHORT ConfigMinRenderTargetBuffCount; -+ USHORT ConfigDecoderSpecific; -+} D3D11_VIDEO_DECODER_CONFIG; -+ -+typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE -+{ -+ D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, -+ D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE, -+ D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE -+} D3D11_AUTHENTICATED_CHANNEL_TYPE; -+ -+interface ID3D11VideoProcessorEnumerator; -+interface ID3D11VideoProcessor; -+interface ID3D11VideoProcessorInputView; -+interface ID3D11VideoProcessorOutputView; -+interface ID3D11AuthenticatedChannel; -+interface ID3D11CryptoSession; -+ -+[ -+ object, -+ local, -+ uuid(10ec4d5b-975a-4689-b9e4-d0aac30fe333) -+] -+interface ID3D11VideoDevice : IUnknown -+{ -+ HRESULT CreateVideoDecoder( -+ [in] const D3D11_VIDEO_DECODER_DESC *pVideoDesc, -+ [in] const D3D11_VIDEO_DECODER_CONFIG *pConfig, -+ [out] ID3D11VideoDecoder **ppVideoDecoder); -+ HRESULT CreateVideoProcessor( -+ [in] ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ [in] UINT RateConversionIndex, -+ [out] ID3D11VideoProcessor **ppVideoProcessor); -+ HRESULT CreateAuthenticatedChannel( -+ [in] D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, -+ [out] ID3D11AuthenticatedChannel **ppAuthenticatedChannel); -+ HRESULT CreateCryptoSession( -+ [in] const GUID *pCryptoType, -+ [in] const GUID *pDecoderProfile, -+ [in] const GUID *pKeyExchangeType, -+ [out] ID3D11CryptoSession **ppCryptoSession); -+ HRESULT CreateVideoDecoderOutputView( -+ [in] ID3D11Resource *pResource, -+ [in] const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, -+ [out] ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); -+ HRESULT CreateVideoProcessorInputView( -+ [in] ID3D11Resource *pResource, -+ [in] ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ [in] const void *pInputDesc, /*D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC */ -+ [out] ID3D11VideoProcessorInputView **ppVideoProcInputView); -+ HRESULT CreateVideoProcessorOutputView( -+ [in] ID3D11Resource *pResource, -+ [in] ID3D11VideoProcessorEnumerator *pEnumerator, -+ [in] const void *pOutputDesc, /*D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC */ -+ [out] ID3D11VideoProcessorOutputView **ppVideoProcOutputView); -+ HRESULT CreateVideoProcessorEnumerator( -+ [in] const void *pContentDesc, /*D3D11_VIDEO_PROCESSOR_CONTENT_DESC */ -+ [out] ID3D11VideoProcessorEnumerator **ppProcEnumerator); -+ UINT GetVideoDecoderProfileCount(void); -+ HRESULT GetVideoDecoderProfile( -+ [in] UINT DecoderIndex, -+ [out] GUID *pDecoderProfile); -+ HRESULT CheckVideoDecoderFormat( -+ [in] const GUID *pDecoderProfile, -+ [in] DXGI_FORMAT Format, -+ [out] BOOL *pSupported); -+ HRESULT GetVideoDecoderConfigCount( -+ [in] const D3D11_VIDEO_DECODER_DESC *pDesc, -+ [out] UINT *pCount); -+ HRESULT GetVideoDecoderConfig( -+ [in] const D3D11_VIDEO_DECODER_DESC *pDesc, -+ [in] UINT DecoderIndex, -+ [out] D3D11_VIDEO_DECODER_CONFIG *pConfig); -+} -+ - typedef enum D3D11_CREATE_DEVICE_FLAG { - D3D11_CREATE_DEVICE_SINGLETHREADED = 0x0001, - D3D11_CREATE_DEVICE_DEBUG = 0x0002, --- -2.4.5 - diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 74e878f7d4..c4fcc71e1f 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=crt +pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4531.49c7046 +pkgver=5.0.0.4573.628fdbf pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -18,22 +19,16 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' 'staticlibs' '!buildflags' '!emptydirs') source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" - "0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" - "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" - "0005-Add-missing-DirectX-11-enum.patch" - "0006-Add-d3d11-video-decoder.patch") + "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch") md5sums=('SKIP' - 'ceab0a56e8195e0975cdc067918e48d7' 'ada92acb4a3939bcede26298adc0a5d0' 'b664667ec276614e62e4ea289c79c4b1' - '79bb56620aaef710ef1d73415dc5bc13' - '0595cbc641de91de1ca46e60011028e9' - 'a7b8ffba019fc9d1c6d33a9a9d1d10aa') + '79bb56620aaef710ef1d73415dc5bc13') pkgver() { - cd "$srcdir/mingw-w64" + cd "${srcdir}/mingw-w64" local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _rev=0 @@ -42,12 +37,9 @@ pkgver() { prepare() { cd ${srcdir}/mingw-w64 - git am "${srcdir}"/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch git am "${srcdir}"/0002-dxgi-Add-interface-for-IDXGISurface1.patch git am "${srcdir}"/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch git am "${srcdir}"/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch - git am "${srcdir}"/0005-Add-missing-DirectX-11-enum.patch - git am "${srcdir}"/0006-Add-d3d11-video-decoder.patch } build() { @@ -61,7 +53,7 @@ build() { ;; esac - [ -d ${srcdir}/crt-${MINGW_CHOST} ] && rm -rf ${srcdir}/crt-${MINGW_CHOST} + [[ -d ${srcdir}/crt-${MINGW_CHOST} ]] && rm -rf ${srcdir}/crt-${MINGW_CHOST} mkdir -p ${srcdir}/crt-${MINGW_CHOST} && cd ${srcdir}/crt-${MINGW_CHOST} ${srcdir}/mingw-w64/mingw-w64-crt/configure \ --prefix=${MINGW_PREFIX}/${MINGW_CHOST} \ diff --git a/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch b/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch deleted file mode 100644 index b98d3c008f..0000000000 --- a/mingw-w64-headers-git/0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 9edc68dfaf560cb9d9979b0883bdd9378841d6d1 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Mon, 16 Feb 2015 19:02:56 +0000 -Subject: [PATCH 1/6] d3d11: Add prototype for CreateDeviceAndSwapChain - ---- - mingw-w64-headers/direct-x/include/d3d11.h | 3 +++ - mingw-w64-headers/direct-x/include/d3d11.idl | 5 +++++ - 2 files changed, 8 insertions(+) - -diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h -index cc64c3f..e49fd99 100644 ---- a/mingw-w64-headers/direct-x/include/d3d11.h -+++ b/mingw-w64-headers/direct-x/include/d3d11.h -@@ -8878,6 +8878,9 @@ HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,cons - typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT, - const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**, - D3D_FEATURE_LEVEL*,ID3D11DeviceContext**); -+HRESULT WINAPI D3D11CreateDeviceAndSwapChain(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT, -+ const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**, -+ D3D_FEATURE_LEVEL*,ID3D11DeviceContext**); - /* Begin additional prototypes for all interfaces */ - - -diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl -index c187463..59beafb 100644 ---- a/mingw-w64-headers/direct-x/include/d3d11.idl -+++ b/mingw-w64-headers/direct-x/include/d3d11.idl -@@ -1,6 +1,7 @@ - /* - * Copyright 2010 Rico Schüller - * Copyright 2013 Austin English -+ * Copyright 2015 Martell Malone - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -2157,3 +2158,7 @@ cpp_quote(" UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext** - cpp_quote("typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") - cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") - cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") -+ -+cpp_quote("HRESULT WINAPI D3D11CreateDeviceAndSwapChain(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") -+cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") -+cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") --- -2.4.5 - diff --git a/mingw-w64-headers-git/0005-Add-missing-DirectX-11-enum.patch b/mingw-w64-headers-git/0005-Add-missing-DirectX-11-enum.patch deleted file mode 100644 index 15939a8bf0..0000000000 --- a/mingw-w64-headers-git/0005-Add-missing-DirectX-11-enum.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 6430ecb9f4241e8b516f35bd3a671c575c095efb Mon Sep 17 00:00:00 2001 -From: Alexey Pavlov -Date: Tue, 17 Feb 2015 19:13:53 +0300 -Subject: [PATCH 5/6] Add missing DirectX 11 enum - ---- - mingw-w64-headers/direct-x/include/d3dcommon.h | 11 +++++++++++ - mingw-w64-headers/direct-x/include/d3dcommon.idl | 13 +++++++++++++ - 2 files changed, 24 insertions(+) - -diff --git a/mingw-w64-headers/direct-x/include/d3dcommon.h b/mingw-w64-headers/direct-x/include/d3dcommon.h -index 5c1e674..04ffd29 100644 ---- a/mingw-w64-headers/direct-x/include/d3dcommon.h -+++ b/mingw-w64-headers/direct-x/include/d3dcommon.h -@@ -290,6 +290,17 @@ typedef enum _D3D_SHADER_VARIABLE_CLASS { - D3D11_SVC_INTERFACE_POINTER = 7, - D3D_SVC_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_VARIABLE_CLASS; -+typedef enum _D3D_SHADER_VARIABLE_FLAGS { -+ D3D_SVF_USERPACKED = 1, -+ D3D_SVF_USED = 2, -+ D3D_SVF_INTERFACE_POINTER = 4, -+ D3D_SVF_INTERFACE_PARAMETER = 8, -+ D3D10_SVF_USERPACKED = 1, -+ D3D10_SVF_USED = 2, -+ D3D11_SVF_INTERFACE_POINTER = 4, -+ D3D11_SVF_INTERFACE_PARAMETER = 8, -+ D3D_SVF_FORCE_DWORD = 0x7fffffff -+} D3D_SHADER_VARIABLE_FLAGS; - typedef enum _D3D_SHADER_VARIABLE_TYPE { - D3D_SVT_VOID = 0, - D3D_SVT_BOOL = 1, -diff --git a/mingw-w64-headers/direct-x/include/d3dcommon.idl b/mingw-w64-headers/direct-x/include/d3dcommon.idl -index f8fe203..3f75afb 100644 ---- a/mingw-w64-headers/direct-x/include/d3dcommon.idl -+++ b/mingw-w64-headers/direct-x/include/d3dcommon.idl -@@ -126,6 +126,19 @@ typedef enum _D3D_SHADER_VARIABLE_CLASS - D3D_SVC_FORCE_DWORD = 0x7fffffff, - } D3D_SHADER_VARIABLE_CLASS; - -+typedef enum _D3D_SHADER_VARIABLE_FLAGS -+{ -+ D3D_SVF_USERPACKED = 1, -+ D3D_SVF_USED = 2, -+ D3D_SVF_INTERFACE_POINTER = 4, -+ D3D_SVF_INTERFACE_PARAMETER = 8, -+ D3D10_SVF_USERPACKED = 1, -+ D3D10_SVF_USED = 2, -+ D3D11_SVF_INTERFACE_POINTER = 4, -+ D3D11_SVF_INTERFACE_PARAMETER = 8, -+ D3D_SVF_FORCE_DWORD = 0x7fffffff -+} D3D_SHADER_VARIABLE_FLAGS; -+ - typedef enum _D3D_SHADER_VARIABLE_TYPE - { - D3D_SVT_VOID, --- -2.4.5 - diff --git a/mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch b/mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch deleted file mode 100644 index 2e78e28dc0..0000000000 --- a/mingw-w64-headers-git/0006-Add-d3d11-video-decoder.patch +++ /dev/null @@ -1,1192 +0,0 @@ -From b952e857814e5cfe766626573e2f056ed91ceb09 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Sun, 14 Jun 2015 21:07:03 +0100 -Subject: [PATCH 6/6] Add d3d11 video decoder - ---- - mingw-w64-headers/direct-x/include/d3d11.h | 949 +++++++++++++++++++++++++++ - mingw-w64-headers/direct-x/include/d3d11.idl | 208 ++++++ - 2 files changed, 1157 insertions(+) - -diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h -index e49fd99..834a536 100644 ---- a/mingw-w64-headers/direct-x/include/d3d11.h -+++ b/mingw-w64-headers/direct-x/include/d3d11.h -@@ -8850,6 +8850,955 @@ void __RPC_STUB ID3D11Device_GetExceptionMode_Stub( - - #endif /* __ID3D11Device_INTERFACE_DEFINED__ */ - -+typedef enum D3D11_VDOV_DIMENSION { -+ D3D11_VDOV_DIMENSION_UNKNOWN = 0, -+ D3D11_VDOV_DIMENSION_TEXTURE2D = 1 -+} D3D11_VDOV_DIMENSION; -+typedef struct D3D11_TEX2D_VDOV { -+ UINT ArraySlice; -+} D3D11_TEX2D_VDOV; -+typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC { -+ GUID DecodeProfile; -+ D3D11_VDOV_DIMENSION ViewDimension; -+ __C89_NAMELESS union { -+ D3D11_TEX2D_VDOV Texture2D; -+ } __C89_NAMELESSUNIONNAME; -+} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; -+/***************************************************************************** -+ * ID3D11VideoDecoderOutputView interface -+ */ -+#ifndef __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ -+#define __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("c2931aea-2a85-4f20-860f-fba1fd256e18") -+ID3D11VideoDecoderOutputView : public ID3D11View -+{ -+ virtual void STDMETHODCALLTYPE GetDesc( -+ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18) -+#endif -+#else -+typedef struct ID3D11VideoDecoderOutputViewVtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11VideoDecoderOutputView* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11VideoDecoderOutputView* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11VideoDecoderOutputView* This); -+ -+ /*** ID3D11DeviceChild methods ***/ -+ void (STDMETHODCALLTYPE *GetDevice)( -+ ID3D11VideoDecoderOutputView* This, -+ ID3D11Device **ppDevice); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11VideoDecoderOutputView* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11VideoDecoderOutputView* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11VideoDecoderOutputView* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ /*** ID3D11View methods ***/ -+ void (STDMETHODCALLTYPE *GetResource)( -+ ID3D11VideoDecoderOutputView* This, -+ ID3D11Resource **ppResource); -+ -+ /*** ID3D11VideoDecoderOutputView methods ***/ -+ void (STDMETHODCALLTYPE *GetDesc)( -+ ID3D11VideoDecoderOutputView* This, -+ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); -+ -+ END_INTERFACE -+} ID3D11VideoDecoderOutputViewVtbl; -+interface ID3D11VideoDecoderOutputView { -+ CONST_VTBL ID3D11VideoDecoderOutputViewVtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11VideoDecoderOutputView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11VideoDecoderOutputView_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11VideoDecoderOutputView_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11DeviceChild methods ***/ -+#define ID3D11VideoDecoderOutputView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) -+#define ID3D11VideoDecoderOutputView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11VideoDecoderOutputView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11VideoDecoderOutputView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+/*** ID3D11View methods ***/ -+#define ID3D11VideoDecoderOutputView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource) -+/*** ID3D11VideoDecoderOutputView methods ***/ -+#define ID3D11VideoDecoderOutputView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_QueryInterface(ID3D11VideoDecoderOutputView* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11VideoDecoderOutputView_AddRef(ID3D11VideoDecoderOutputView* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11VideoDecoderOutputView_Release(ID3D11VideoDecoderOutputView* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11DeviceChild methods ***/ -+static FORCEINLINE void ID3D11VideoDecoderOutputView_GetDevice(ID3D11VideoDecoderOutputView* This,ID3D11Device **ppDevice) { -+ This->lpVtbl->GetDevice(This,ppDevice); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_GetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_SetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_SetPrivateDataInterface(ID3D11VideoDecoderOutputView* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+/*** ID3D11View methods ***/ -+static FORCEINLINE void ID3D11VideoDecoderOutputView_GetResource(ID3D11VideoDecoderOutputView* This,ID3D11Resource **ppResource) { -+ This->lpVtbl->GetResource(This,ppResource); -+} -+/*** ID3D11VideoDecoderOutputView methods ***/ -+static FORCEINLINE void ID3D11VideoDecoderOutputView_GetDesc(ID3D11VideoDecoderOutputView* This,D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) { -+ This->lpVtbl->GetDesc(This,pDesc); -+} -+#endif -+#endif -+ -+#endif -+ -+void STDMETHODCALLTYPE ID3D11VideoDecoderOutputView_GetDesc_Proxy( -+ ID3D11VideoDecoderOutputView* This, -+ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); -+void __RPC_STUB ID3D11VideoDecoderOutputView_GetDesc_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ */ -+ -+/***************************************************************************** -+ * ID3D11VideoDecoder interface -+ */ -+#ifndef __ID3D11VideoDecoder_INTERFACE_DEFINED__ -+#define __ID3D11VideoDecoder_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("3c9c5b51-995d-48d1-9b8d-fa5caeded65c") -+ID3D11VideoDecoder : public ID3D11DeviceChild -+{ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c) -+#endif -+#else -+typedef struct ID3D11VideoDecoderVtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11VideoDecoder* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11VideoDecoder* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11VideoDecoder* This); -+ -+ /*** ID3D11DeviceChild methods ***/ -+ void (STDMETHODCALLTYPE *GetDevice)( -+ ID3D11VideoDecoder* This, -+ ID3D11Device **ppDevice); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11VideoDecoder* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11VideoDecoder* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11VideoDecoder* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ END_INTERFACE -+} ID3D11VideoDecoderVtbl; -+interface ID3D11VideoDecoder { -+ CONST_VTBL ID3D11VideoDecoderVtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11VideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11VideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11VideoDecoder_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11DeviceChild methods ***/ -+#define ID3D11VideoDecoder_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) -+#define ID3D11VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11VideoDecoder_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11VideoDecoder_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoDecoder_QueryInterface(ID3D11VideoDecoder* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11VideoDecoder_AddRef(ID3D11VideoDecoder* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11VideoDecoder_Release(ID3D11VideoDecoder* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11DeviceChild methods ***/ -+static FORCEINLINE void ID3D11VideoDecoder_GetDevice(ID3D11VideoDecoder* This,ID3D11Device **ppDevice) { -+ This->lpVtbl->GetDevice(This,ppDevice); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoder_GetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoder_SetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoDecoder_SetPrivateDataInterface(ID3D11VideoDecoder* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+#endif -+#endif -+ -+#endif -+ -+ -+#endif /* __ID3D11VideoDecoder_INTERFACE_DEFINED__ */ -+ -+typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE { -+ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, -+ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, -+ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, -+ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, -+ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, -+ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, -+ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, -+ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, -+ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8 -+} D3D11_VIDEO_DECODER_BUFFER_TYPE; -+typedef struct D3D11_ENCRYPTED_BLOCK_INFO { -+ UINT NumEncryptedBytesAtBeginning; -+ UINT NumBytesInSkipPattern; -+ UINT NumBytesInEncryptPattern; -+} D3D11_ENCRYPTED_BLOCK_INFO; -+typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC { -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; -+ UINT BufferIndex; -+ UINT DataOffset; -+ UINT DataSize; -+ UINT FirstMBaddress; -+ UINT NumMBsInBuffer; -+ UINT Width; -+ UINT Height; -+ UINT Stride; -+ UINT ReservedBits; -+ void *pIV; -+ UINT IVSize; -+ WINBOOL PartialEncryption; -+ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; -+} D3D11_VIDEO_DECODER_BUFFER_DESC; -+/***************************************************************************** -+ * ID3D11VideoContext interface -+ */ -+#ifndef __ID3D11VideoContext_INTERFACE_DEFINED__ -+#define __ID3D11VideoContext_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("61f21c45-3c0e-4a74-9cea-67100d9ad5e4") -+ID3D11VideoContext : public ID3D11DeviceChild -+{ -+ virtual HRESULT STDMETHODCALLTYPE GetDecoderBuffer( -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, -+ UINT *pBufferSize, -+ void **ppBuffer) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE ReleaseDecoderBuffer( -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame( -+ ID3D11VideoDecoder *pDecoder, -+ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, -+ UINT ContentKeySize, -+ const void *pContentKey) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE DecoderEndFrame( -+ ID3D11VideoDecoder *pDecoder) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers( -+ ID3D11VideoDecoder *pDecoder, -+ UINT NumBuffers, -+ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4) -+#endif -+#else -+typedef struct ID3D11VideoContextVtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11VideoContext* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11VideoContext* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11VideoContext* This); -+ -+ /*** ID3D11DeviceChild methods ***/ -+ void (STDMETHODCALLTYPE *GetDevice)( -+ ID3D11VideoContext* This, -+ ID3D11Device **ppDevice); -+ -+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( -+ ID3D11VideoContext* This, -+ REFGUID guid, -+ UINT *pDataSize, -+ void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( -+ ID3D11VideoContext* This, -+ REFGUID guid, -+ UINT DataSize, -+ const void *pData); -+ -+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( -+ ID3D11VideoContext* This, -+ REFGUID guid, -+ const IUnknown *pData); -+ -+ /*** ID3D11VideoContext methods ***/ -+ HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, -+ UINT *pBufferSize, -+ void **ppBuffer); -+ -+ HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); -+ -+ HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, -+ UINT ContentKeySize, -+ const void *pContentKey); -+ -+ HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder); -+ -+ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ UINT NumBuffers, -+ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); -+ -+ END_INTERFACE -+} ID3D11VideoContextVtbl; -+interface ID3D11VideoContext { -+ CONST_VTBL ID3D11VideoContextVtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11VideoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11VideoContext_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11VideoContext_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11DeviceChild methods ***/ -+#define ID3D11VideoContext_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) -+#define ID3D11VideoContext_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) -+#define ID3D11VideoContext_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) -+#define ID3D11VideoContext_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) -+/*** ID3D11VideoContext methods ***/ -+#define ID3D11VideoContext_GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) (This)->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) -+#define ID3D11VideoContext_ReleaseDecoderBuffer(This,pDecoder,BufferType) (This)->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType) -+#define ID3D11VideoContext_DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) (This)->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) -+#define ID3D11VideoContext_DecoderEndFrame(This,pDecoder) (This)->lpVtbl->DecoderEndFrame(This,pDecoder) -+#define ID3D11VideoContext_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) (This)->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoContext_QueryInterface(ID3D11VideoContext* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11VideoContext_AddRef(ID3D11VideoContext* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11VideoContext_Release(ID3D11VideoContext* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11DeviceChild methods ***/ -+static FORCEINLINE void ID3D11VideoContext_GetDevice(ID3D11VideoContext* This,ID3D11Device **ppDevice) { -+ This->lpVtbl->GetDevice(This,ppDevice); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_GetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT *pDataSize,void *pData) { -+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT DataSize,const void *pData) { -+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateDataInterface(ID3D11VideoContext* This,REFGUID guid,const IUnknown *pData) { -+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); -+} -+/*** ID3D11VideoContext methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoContext_GetDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType,UINT *pBufferSize,void **ppBuffer) { -+ return This->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_ReleaseDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) { -+ return This->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_DecoderBeginFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,ID3D11VideoDecoderOutputView *pVideoDecoderOutputView,UINT ContentKeySize,const void *pContentKey) { -+ return This->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_DecoderEndFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder) { -+ return This->lpVtbl->DecoderEndFrame(This,pDecoder); -+} -+static FORCEINLINE HRESULT ID3D11VideoContext_SubmitDecoderBuffers(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,UINT NumBuffers,const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) { -+ return This->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc); -+} -+#endif -+#endif -+ -+#endif -+ -+HRESULT STDMETHODCALLTYPE ID3D11VideoContext_GetDecoderBuffer_Proxy( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, -+ UINT *pBufferSize, -+ void **ppBuffer); -+void __RPC_STUB ID3D11VideoContext_GetDecoderBuffer_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoContext_ReleaseDecoderBuffer_Proxy( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); -+void __RPC_STUB ID3D11VideoContext_ReleaseDecoderBuffer_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderBeginFrame_Proxy( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, -+ UINT ContentKeySize, -+ const void *pContentKey); -+void __RPC_STUB ID3D11VideoContext_DecoderBeginFrame_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderEndFrame_Proxy( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder); -+void __RPC_STUB ID3D11VideoContext_DecoderEndFrame_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoContext_SubmitDecoderBuffers_Proxy( -+ ID3D11VideoContext* This, -+ ID3D11VideoDecoder *pDecoder, -+ UINT NumBuffers, -+ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); -+void __RPC_STUB ID3D11VideoContext_SubmitDecoderBuffers_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11VideoContext_INTERFACE_DEFINED__ */ -+ -+typedef struct D3D11_VIDEO_DECODER_DESC { -+ GUID Guid; -+ UINT SampleWidth; -+ UINT SampleHeight; -+ DXGI_FORMAT OutputFormat; -+} D3D11_VIDEO_DECODER_DESC; -+typedef struct D3D11_VIDEO_DECODER_CONFIG { -+ GUID guidConfigBitstreamEncryption; -+ GUID guidConfigMBcontrolEncryption; -+ GUID guidConfigResidDiffEncryption; -+ UINT ConfigBitstreamRaw; -+ UINT ConfigMBcontrolRasterOrder; -+ UINT ConfigResidDiffHost; -+ UINT ConfigSpatialResid8; -+ UINT ConfigResid8Subtraction; -+ UINT ConfigSpatialHost8or9Clipping; -+ UINT ConfigSpatialResidInterleaved; -+ UINT ConfigIntraResidUnsigned; -+ UINT ConfigResidDiffAccelerator; -+ UINT ConfigHostInverseScan; -+ UINT ConfigSpecificIDCT; -+ UINT Config4GroupedCoefs; -+ USHORT ConfigMinRenderTargetBuffCount; -+ USHORT ConfigDecoderSpecific; -+} D3D11_VIDEO_DECODER_CONFIG; -+typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE { -+ D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, -+ D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2, -+ D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3 -+} D3D11_AUTHENTICATED_CHANNEL_TYPE; -+#ifndef __ID3D11VideoProcessorEnumerator_FWD_DEFINED__ -+#define __ID3D11VideoProcessorEnumerator_FWD_DEFINED__ -+typedef interface ID3D11VideoProcessorEnumerator ID3D11VideoProcessorEnumerator; -+#endif -+ -+#ifndef __ID3D11VideoProcessor_FWD_DEFINED__ -+#define __ID3D11VideoProcessor_FWD_DEFINED__ -+typedef interface ID3D11VideoProcessor ID3D11VideoProcessor; -+#endif -+ -+#ifndef __ID3D11VideoProcessorInputView_FWD_DEFINED__ -+#define __ID3D11VideoProcessorInputView_FWD_DEFINED__ -+typedef interface ID3D11VideoProcessorInputView ID3D11VideoProcessorInputView; -+#endif -+ -+#ifndef __ID3D11VideoProcessorOutputView_FWD_DEFINED__ -+#define __ID3D11VideoProcessorOutputView_FWD_DEFINED__ -+typedef interface ID3D11VideoProcessorOutputView ID3D11VideoProcessorOutputView; -+#endif -+ -+#ifndef __ID3D11AuthenticatedChannel_FWD_DEFINED__ -+#define __ID3D11AuthenticatedChannel_FWD_DEFINED__ -+typedef interface ID3D11AuthenticatedChannel ID3D11AuthenticatedChannel; -+#endif -+ -+#ifndef __ID3D11CryptoSession_FWD_DEFINED__ -+#define __ID3D11CryptoSession_FWD_DEFINED__ -+typedef interface ID3D11CryptoSession ID3D11CryptoSession; -+#endif -+ -+/***************************************************************************** -+ * ID3D11VideoDevice interface -+ */ -+#ifndef __ID3D11VideoDevice_INTERFACE_DEFINED__ -+#define __ID3D11VideoDevice_INTERFACE_DEFINED__ -+ -+DEFINE_GUID(IID_ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33); -+#if defined(__cplusplus) && !defined(CINTERFACE) -+MIDL_INTERFACE("10ec4d5b-975a-4689-b9e4-d0aac30fe333") -+ID3D11VideoDevice : public IUnknown -+{ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder( -+ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, -+ const D3D11_VIDEO_DECODER_CONFIG *pConfig, -+ ID3D11VideoDecoder **ppVideoDecoder) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor( -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ UINT RateConversionIndex, -+ ID3D11VideoProcessor **ppVideoProcessor) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateAuthenticatedChannel( -+ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, -+ ID3D11AuthenticatedChannel **ppAuthenticatedChannel) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateCryptoSession( -+ const GUID *pCryptoType, -+ const GUID *pDecoderProfile, -+ const GUID *pKeyExchangeType, -+ ID3D11CryptoSession **ppCryptoSession) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderOutputView( -+ ID3D11Resource *pResource, -+ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, -+ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorInputView( -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ const void *pInputDesc, -+ ID3D11VideoProcessorInputView **ppVideoProcInputView) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorOutputView( -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *pEnumerator, -+ const void *pOutputDesc, -+ ID3D11VideoProcessorOutputView **ppVideoProcOutputView) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorEnumerator( -+ const void *pContentDesc, -+ ID3D11VideoProcessorEnumerator **ppProcEnumerator) = 0; -+ -+ virtual UINT STDMETHODCALLTYPE GetVideoDecoderProfileCount( -+ ) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderProfile( -+ UINT DecoderIndex, -+ GUID *pDecoderProfile) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE CheckVideoDecoderFormat( -+ const GUID *pDecoderProfile, -+ DXGI_FORMAT Format, -+ WINBOOL *pSupported) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfigCount( -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT *pCount) = 0; -+ -+ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfig( -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT DecoderIndex, -+ D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0; -+ -+}; -+#ifdef __CRT_UUID_DECL -+__CRT_UUID_DECL(ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33) -+#endif -+#else -+typedef struct ID3D11VideoDeviceVtbl { -+ BEGIN_INTERFACE -+ -+ /*** IUnknown methods ***/ -+ HRESULT (STDMETHODCALLTYPE *QueryInterface)( -+ ID3D11VideoDevice* This, -+ REFIID riid, -+ void **ppvObject); -+ -+ ULONG (STDMETHODCALLTYPE *AddRef)( -+ ID3D11VideoDevice* This); -+ -+ ULONG (STDMETHODCALLTYPE *Release)( -+ ID3D11VideoDevice* This); -+ -+ /*** ID3D11VideoDevice methods ***/ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoder)( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, -+ const D3D11_VIDEO_DECODER_CONFIG *pConfig, -+ ID3D11VideoDecoder **ppVideoDecoder); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)( -+ ID3D11VideoDevice* This, -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ UINT RateConversionIndex, -+ ID3D11VideoProcessor **ppVideoProcessor); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateAuthenticatedChannel)( -+ ID3D11VideoDevice* This, -+ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, -+ ID3D11AuthenticatedChannel **ppAuthenticatedChannel); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateCryptoSession)( -+ ID3D11VideoDevice* This, -+ const GUID *pCryptoType, -+ const GUID *pDecoderProfile, -+ const GUID *pKeyExchangeType, -+ ID3D11CryptoSession **ppCryptoSession); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoderOutputView)( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, -+ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorInputView)( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ const void *pInputDesc, -+ ID3D11VideoProcessorInputView **ppVideoProcInputView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorOutputView)( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *pEnumerator, -+ const void *pOutputDesc, -+ ID3D11VideoProcessorOutputView **ppVideoProcOutputView); -+ -+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorEnumerator)( -+ ID3D11VideoDevice* This, -+ const void *pContentDesc, -+ ID3D11VideoProcessorEnumerator **ppProcEnumerator); -+ -+ UINT (STDMETHODCALLTYPE *GetVideoDecoderProfileCount)( -+ ID3D11VideoDevice* This); -+ -+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderProfile)( -+ ID3D11VideoDevice* This, -+ UINT DecoderIndex, -+ GUID *pDecoderProfile); -+ -+ HRESULT (STDMETHODCALLTYPE *CheckVideoDecoderFormat)( -+ ID3D11VideoDevice* This, -+ const GUID *pDecoderProfile, -+ DXGI_FORMAT Format, -+ WINBOOL *pSupported); -+ -+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfigCount)( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT *pCount); -+ -+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfig)( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT DecoderIndex, -+ D3D11_VIDEO_DECODER_CONFIG *pConfig); -+ -+ END_INTERFACE -+} ID3D11VideoDeviceVtbl; -+interface ID3D11VideoDevice { -+ CONST_VTBL ID3D11VideoDeviceVtbl* lpVtbl; -+}; -+ -+#ifdef COBJMACROS -+#ifndef WIDL_C_INLINE_WRAPPERS -+/*** IUnknown methods ***/ -+#define ID3D11VideoDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -+#define ID3D11VideoDevice_AddRef(This) (This)->lpVtbl->AddRef(This) -+#define ID3D11VideoDevice_Release(This) (This)->lpVtbl->Release(This) -+/*** ID3D11VideoDevice methods ***/ -+#define ID3D11VideoDevice_CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder) (This)->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder) -+#define ID3D11VideoDevice_CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor) (This)->lpVtbl->CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor) -+#define ID3D11VideoDevice_CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) (This)->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) -+#define ID3D11VideoDevice_CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) (This)->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) -+#define ID3D11VideoDevice_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView) (This)->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView) -+#define ID3D11VideoDevice_CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView) (This)->lpVtbl->CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView) -+#define ID3D11VideoDevice_CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView) (This)->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView) -+#define ID3D11VideoDevice_CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator) (This)->lpVtbl->CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator) -+#define ID3D11VideoDevice_GetVideoDecoderProfileCount(This) (This)->lpVtbl->GetVideoDecoderProfileCount(This) -+#define ID3D11VideoDevice_GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile) (This)->lpVtbl->GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile) -+#define ID3D11VideoDevice_CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) (This)->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) -+#define ID3D11VideoDevice_GetVideoDecoderConfigCount(This,pDesc,pCount) (This)->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount) -+#define ID3D11VideoDevice_GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig) (This)->lpVtbl->GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig) -+#else -+/*** IUnknown methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoDevice_QueryInterface(ID3D11VideoDevice* This,REFIID riid,void **ppvObject) { -+ return This->lpVtbl->QueryInterface(This,riid,ppvObject); -+} -+static FORCEINLINE ULONG ID3D11VideoDevice_AddRef(ID3D11VideoDevice* This) { -+ return This->lpVtbl->AddRef(This); -+} -+static FORCEINLINE ULONG ID3D11VideoDevice_Release(ID3D11VideoDevice* This) { -+ return This->lpVtbl->Release(This); -+} -+/*** ID3D11VideoDevice methods ***/ -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoDecoder(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pVideoDesc,const D3D11_VIDEO_DECODER_CONFIG *pConfig,ID3D11VideoDecoder **ppVideoDecoder) { -+ return This->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessor(ID3D11VideoDevice* This,ID3D11VideoProcessorEnumerator *ppProcEnumerator,UINT RateConversionIndex,ID3D11VideoProcessor **ppVideoProcessor) { -+ return This->lpVtbl->CreateVideoProcessor(This,ppProcEnumerator,RateConversionIndex,ppVideoProcessor); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateAuthenticatedChannel(ID3D11VideoDevice* This,D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,ID3D11AuthenticatedChannel **ppAuthenticatedChannel) { -+ return This->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateCryptoSession(ID3D11VideoDevice* This,const GUID *pCryptoType,const GUID *pDecoderProfile,const GUID *pKeyExchangeType,ID3D11CryptoSession **ppCryptoSession) { -+ return This->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoDecoderOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView) { -+ return This->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorInputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *ppProcEnumerator,const void *pInputDesc,ID3D11VideoProcessorInputView **ppVideoProcInputView) { -+ return This->lpVtbl->CreateVideoProcessorInputView(This,pResource,ppProcEnumerator,pInputDesc,ppVideoProcInputView); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *pEnumerator,const void *pOutputDesc,ID3D11VideoProcessorOutputView **ppVideoProcOutputView) { -+ return This->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnumerator,pOutputDesc,ppVideoProcOutputView); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorEnumerator(ID3D11VideoDevice* This,const void *pContentDesc,ID3D11VideoProcessorEnumerator **ppProcEnumerator) { -+ return This->lpVtbl->CreateVideoProcessorEnumerator(This,pContentDesc,ppProcEnumerator); -+} -+static FORCEINLINE UINT ID3D11VideoDevice_GetVideoDecoderProfileCount(ID3D11VideoDevice* This) { -+ return This->lpVtbl->GetVideoDecoderProfileCount(This); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderProfile(ID3D11VideoDevice* This,UINT DecoderIndex,GUID *pDecoderProfile) { -+ return This->lpVtbl->GetVideoDecoderProfile(This,DecoderIndex,pDecoderProfile); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_CheckVideoDecoderFormat(ID3D11VideoDevice* This,const GUID *pDecoderProfile,DXGI_FORMAT Format,WINBOOL *pSupported) { -+ return This->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderConfigCount(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT *pCount) { -+ return This->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount); -+} -+static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderConfig(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT DecoderIndex,D3D11_VIDEO_DECODER_CONFIG *pConfig) { -+ return This->lpVtbl->GetVideoDecoderConfig(This,pDesc,DecoderIndex,pConfig); -+} -+#endif -+#endif -+ -+#endif -+ -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoDecoder_Proxy( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, -+ const D3D11_VIDEO_DECODER_CONFIG *pConfig, -+ ID3D11VideoDecoder **ppVideoDecoder); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoDecoder_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessor_Proxy( -+ ID3D11VideoDevice* This, -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ UINT RateConversionIndex, -+ ID3D11VideoProcessor **ppVideoProcessor); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessor_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateAuthenticatedChannel_Proxy( -+ ID3D11VideoDevice* This, -+ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, -+ ID3D11AuthenticatedChannel **ppAuthenticatedChannel); -+void __RPC_STUB ID3D11VideoDevice_CreateAuthenticatedChannel_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateCryptoSession_Proxy( -+ ID3D11VideoDevice* This, -+ const GUID *pCryptoType, -+ const GUID *pDecoderProfile, -+ const GUID *pKeyExchangeType, -+ ID3D11CryptoSession **ppCryptoSession); -+void __RPC_STUB ID3D11VideoDevice_CreateCryptoSession_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoDecoderOutputView_Proxy( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, -+ ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoDecoderOutputView_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorInputView_Proxy( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ const void *pInputDesc, -+ ID3D11VideoProcessorInputView **ppVideoProcInputView); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorInputView_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorOutputView_Proxy( -+ ID3D11VideoDevice* This, -+ ID3D11Resource *pResource, -+ ID3D11VideoProcessorEnumerator *pEnumerator, -+ const void *pOutputDesc, -+ ID3D11VideoProcessorOutputView **ppVideoProcOutputView); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorOutputView_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessorEnumerator_Proxy( -+ ID3D11VideoDevice* This, -+ const void *pContentDesc, -+ ID3D11VideoProcessorEnumerator **ppProcEnumerator); -+void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorEnumerator_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+UINT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderProfileCount_Proxy( -+ ID3D11VideoDevice* This); -+void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderProfileCount_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderProfile_Proxy( -+ ID3D11VideoDevice* This, -+ UINT DecoderIndex, -+ GUID *pDecoderProfile); -+void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderProfile_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CheckVideoDecoderFormat_Proxy( -+ ID3D11VideoDevice* This, -+ const GUID *pDecoderProfile, -+ DXGI_FORMAT Format, -+ WINBOOL *pSupported); -+void __RPC_STUB ID3D11VideoDevice_CheckVideoDecoderFormat_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderConfigCount_Proxy( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT *pCount); -+void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderConfigCount_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderConfig_Proxy( -+ ID3D11VideoDevice* This, -+ const D3D11_VIDEO_DECODER_DESC *pDesc, -+ UINT DecoderIndex, -+ D3D11_VIDEO_DECODER_CONFIG *pConfig); -+void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderConfig_Stub( -+ IRpcStubBuffer* This, -+ IRpcChannelBuffer* pRpcChannelBuffer, -+ PRPC_MESSAGE pRpcMessage, -+ DWORD* pdwStubPhase); -+ -+#endif /* __ID3D11VideoDevice_INTERFACE_DEFINED__ */ -+ - typedef enum D3D11_CREATE_DEVICE_FLAG { - D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1, - D3D11_CREATE_DEVICE_DEBUG = 0x2, -diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl -index 59beafb..cfae7c8 100644 ---- a/mingw-w64-headers/direct-x/include/d3d11.idl -+++ b/mingw-w64-headers/direct-x/include/d3d11.idl -@@ -2126,6 +2126,214 @@ interface ID3D11Device : IUnknown - UINT GetExceptionMode(); - } - -+typedef enum D3D11_VDOV_DIMENSION -+{ -+ D3D11_VDOV_DIMENSION_UNKNOWN = 0, -+ D3D11_VDOV_DIMENSION_TEXTURE2D -+} D3D11_VDOV_DIMENSION; -+ -+typedef struct D3D11_TEX2D_VDOV -+{ -+ UINT ArraySlice; -+} D3D11_TEX2D_VDOV; -+ -+typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC -+{ -+ GUID DecodeProfile; -+ D3D11_VDOV_DIMENSION ViewDimension; -+ -+ union -+ { -+ D3D11_TEX2D_VDOV Texture2D; -+ }; -+} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; -+ -+[ -+ object, -+ local, -+ uuid(c2931aea-2a85-4f20-860f-fba1fd256e18) -+] -+interface ID3D11VideoDecoderOutputView : ID3D11View -+{ -+ void GetDesc( -+ [out] D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc ); -+} -+ -+[ -+ object, -+ local, -+ uuid(3c9c5b51-995d-48d1-9b8d-fa5caeded65c) -+] -+interface ID3D11VideoDecoder : ID3D11DeviceChild -+{ -+} -+ -+typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE -+{ -+ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, -+ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL, -+ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE, -+ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL, -+ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX, -+ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL, -+ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM, -+ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR, -+ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN -+} D3D11_VIDEO_DECODER_BUFFER_TYPE; -+ -+typedef struct D3D11_ENCRYPTED_BLOCK_INFO -+{ -+ UINT NumEncryptedBytesAtBeginning; -+ UINT NumBytesInSkipPattern; -+ UINT NumBytesInEncryptPattern; -+} D3D11_ENCRYPTED_BLOCK_INFO; -+ -+typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC -+{ -+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; -+ UINT BufferIndex; -+ UINT DataOffset; -+ UINT DataSize; -+ UINT FirstMBaddress; -+ UINT NumMBsInBuffer; -+ UINT Width; -+ UINT Height; -+ UINT Stride; -+ UINT ReservedBits; -+ void *pIV; -+ UINT IVSize; -+ BOOL PartialEncryption; -+ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; -+} D3D11_VIDEO_DECODER_BUFFER_DESC; -+ -+[ -+ object, -+ local, -+ uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4) -+] -+interface ID3D11VideoContext : ID3D11DeviceChild -+{ -+ HRESULT GetDecoderBuffer( -+ [in] ID3D11VideoDecoder *pDecoder, -+ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, -+ [out] UINT *pBufferSize, -+ [out] void **ppBuffer); -+ HRESULT ReleaseDecoderBuffer( -+ [in] ID3D11VideoDecoder *pDecoder, -+ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); -+ HRESULT DecoderBeginFrame( -+ [in] ID3D11VideoDecoder *pDecoder, -+ [in] ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, -+ [in] UINT ContentKeySize, -+ [in] const void *pContentKey); -+ HRESULT DecoderEndFrame( -+ [in] ID3D11VideoDecoder *pDecoder); -+ HRESULT SubmitDecoderBuffers( -+ [in] ID3D11VideoDecoder *pDecoder, -+ [in] UINT NumBuffers, -+ [in] const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); -+} -+ -+typedef struct D3D11_VIDEO_DECODER_DESC -+{ -+ GUID Guid; -+ UINT SampleWidth; -+ UINT SampleHeight; -+ DXGI_FORMAT OutputFormat; -+} D3D11_VIDEO_DECODER_DESC; -+ -+typedef struct D3D11_VIDEO_DECODER_CONFIG -+{ -+ GUID guidConfigBitstreamEncryption; -+ GUID guidConfigMBcontrolEncryption; -+ GUID guidConfigResidDiffEncryption; -+ UINT ConfigBitstreamRaw; -+ UINT ConfigMBcontrolRasterOrder; -+ UINT ConfigResidDiffHost; -+ UINT ConfigSpatialResid8; -+ UINT ConfigResid8Subtraction; -+ UINT ConfigSpatialHost8or9Clipping; -+ UINT ConfigSpatialResidInterleaved; -+ UINT ConfigIntraResidUnsigned; -+ UINT ConfigResidDiffAccelerator; -+ UINT ConfigHostInverseScan; -+ UINT ConfigSpecificIDCT; -+ UINT Config4GroupedCoefs; -+ USHORT ConfigMinRenderTargetBuffCount; -+ USHORT ConfigDecoderSpecific; -+} D3D11_VIDEO_DECODER_CONFIG; -+ -+typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE -+{ -+ D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, -+ D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE, -+ D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE -+} D3D11_AUTHENTICATED_CHANNEL_TYPE; -+ -+interface ID3D11VideoProcessorEnumerator; -+interface ID3D11VideoProcessor; -+interface ID3D11VideoProcessorInputView; -+interface ID3D11VideoProcessorOutputView; -+interface ID3D11AuthenticatedChannel; -+interface ID3D11CryptoSession; -+ -+[ -+ object, -+ local, -+ uuid(10ec4d5b-975a-4689-b9e4-d0aac30fe333) -+] -+interface ID3D11VideoDevice : IUnknown -+{ -+ HRESULT CreateVideoDecoder( -+ [in] const D3D11_VIDEO_DECODER_DESC *pVideoDesc, -+ [in] const D3D11_VIDEO_DECODER_CONFIG *pConfig, -+ [out] ID3D11VideoDecoder **ppVideoDecoder); -+ HRESULT CreateVideoProcessor( -+ [in] ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ [in] UINT RateConversionIndex, -+ [out] ID3D11VideoProcessor **ppVideoProcessor); -+ HRESULT CreateAuthenticatedChannel( -+ [in] D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, -+ [out] ID3D11AuthenticatedChannel **ppAuthenticatedChannel); -+ HRESULT CreateCryptoSession( -+ [in] const GUID *pCryptoType, -+ [in] const GUID *pDecoderProfile, -+ [in] const GUID *pKeyExchangeType, -+ [out] ID3D11CryptoSession **ppCryptoSession); -+ HRESULT CreateVideoDecoderOutputView( -+ [in] ID3D11Resource *pResource, -+ [in] const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, -+ [out] ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); -+ HRESULT CreateVideoProcessorInputView( -+ [in] ID3D11Resource *pResource, -+ [in] ID3D11VideoProcessorEnumerator *ppProcEnumerator, -+ [in] const void *pInputDesc, /*D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC */ -+ [out] ID3D11VideoProcessorInputView **ppVideoProcInputView); -+ HRESULT CreateVideoProcessorOutputView( -+ [in] ID3D11Resource *pResource, -+ [in] ID3D11VideoProcessorEnumerator *pEnumerator, -+ [in] const void *pOutputDesc, /*D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC */ -+ [out] ID3D11VideoProcessorOutputView **ppVideoProcOutputView); -+ HRESULT CreateVideoProcessorEnumerator( -+ [in] const void *pContentDesc, /*D3D11_VIDEO_PROCESSOR_CONTENT_DESC */ -+ [out] ID3D11VideoProcessorEnumerator **ppProcEnumerator); -+ UINT GetVideoDecoderProfileCount(void); -+ HRESULT GetVideoDecoderProfile( -+ [in] UINT DecoderIndex, -+ [out] GUID *pDecoderProfile); -+ HRESULT CheckVideoDecoderFormat( -+ [in] const GUID *pDecoderProfile, -+ [in] DXGI_FORMAT Format, -+ [out] BOOL *pSupported); -+ HRESULT GetVideoDecoderConfigCount( -+ [in] const D3D11_VIDEO_DECODER_DESC *pDesc, -+ [out] UINT *pCount); -+ HRESULT GetVideoDecoderConfig( -+ [in] const D3D11_VIDEO_DECODER_DESC *pDesc, -+ [in] UINT DecoderIndex, -+ [out] D3D11_VIDEO_DECODER_CONFIG *pConfig); -+} -+ - typedef enum D3D11_CREATE_DEVICE_FLAG { - D3D11_CREATE_DEVICE_SINGLETHREADED = 0x0001, - D3D11_CREATE_DEVICE_DEBUG = 0x0002, --- -2.4.5 - diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 4693ab6463..530faf345d 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov _realname=headers +pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4531.49c7046 +pkgver=5.0.0.4573.628fdbf pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" @@ -15,22 +16,16 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' '!libtool' '!emptydirs') source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" - "0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" - "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" - "0005-Add-missing-DirectX-11-enum.patch" - "0006-Add-d3d11-video-decoder.patch") + "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch") md5sums=('SKIP' - 'ceab0a56e8195e0975cdc067918e48d7' 'ada92acb4a3939bcede26298adc0a5d0' 'b664667ec276614e62e4ea289c79c4b1' - '79bb56620aaef710ef1d73415dc5bc13' - '0595cbc641de91de1ca46e60011028e9' - 'a7b8ffba019fc9d1c6d33a9a9d1d10aa') + '79bb56620aaef710ef1d73415dc5bc13') pkgver() { - cd "$srcdir/mingw-w64" + cd "${srcdir}/mingw-w64" local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _rev=0 @@ -40,12 +35,9 @@ pkgver() { prepare() { cd ${srcdir}/mingw-w64 - git am "${srcdir}/"0001-d3d11-Add-prototype-for-CreateDeviceAndSwapChain.patch git am "${srcdir}/"0002-dxgi-Add-interface-for-IDXGISurface1.patch git am "${srcdir}/"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch - git am "${srcdir}/"0005-Add-missing-DirectX-11-enum.patch - git am "${srcdir}/"0006-Add-d3d11-video-decoder.patch cd ${srcdir}/mingw-w64/mingw-w64-headers touch include/windows.*.h include/wincrypt.h include/prsht.h @@ -53,7 +45,7 @@ prepare() { build() { msg "Configuring ${MINGW_CHOST} headers" - [ -d ${srcdir}/headers-${MINGW_CHOST} ] && rm -rf ${srcdir}/headers-${MINGW_CHOST} + [[ -d ${srcdir}/headers-${MINGW_CHOST} ]] && rm -rf ${srcdir}/headers-${MINGW_CHOST} mkdir -p ${srcdir}/headers-${MINGW_CHOST} && cd ${srcdir}/headers-${MINGW_CHOST} ${srcdir}/mingw-w64/mingw-w64-headers/configure \ --build=${MINGW_CHOST} \ @@ -62,7 +54,7 @@ build() { --prefix=${MINGW_PREFIX}/${MINGW_CHOST} \ --enable-sdk=all \ --enable-secure-api \ - --enable-idl --with-widl + --enable-idl --without-widl } package() { diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index 54d3fac08e..9e6c5080bd 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -1,11 +1,12 @@ # Maintainer: Alexey Pavlov _realname=tools +pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.0.0.4531.49c7046 +pkgver=5.0.0.4573.628fdbf pkgrel=1 pkgdesc="MinGW-w64 tools" arch=('any') @@ -30,7 +31,7 @@ pkgver() { } prepare() { - cd "$srcdir/mingw-w64" + cd "${srcdir}/mingw-w64" git am "$srcdir/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch" } @@ -38,7 +39,7 @@ build() { local cur= for cur in ${_tools}; do plain "Building ${cur} ..." - [ -d ${srcdir}/${MINGW_CHOST}-${cur} ] && rm -rf ${srcdir}/${MINGW_CHOST}-${cur} + [[ -d ${srcdir}/${MINGW_CHOST}-${cur} ]] && rm -rf ${srcdir}/${MINGW_CHOST}-${cur} mkdir -p ${srcdir}/${MINGW_CHOST}-${cur} cd ${srcdir}/${MINGW_CHOST}-${cur} ${srcdir}/mingw-w64/mingw-w64-tools/${cur}/configure \ diff --git a/mingw-w64-winpthreads-git/PKGBUILD b/mingw-w64-winpthreads-git/PKGBUILD index 9f77723a3a..06e64dd327 100644 --- a/mingw-w64-winpthreads-git/PKGBUILD +++ b/mingw-w64-winpthreads-git/PKGBUILD @@ -3,8 +3,9 @@ # Contributor: Renato Silva _realname=winpthreads +pkgbase=mingw-w64-${_realname}-git pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git") -pkgver=5.0.0.4538.78dca70 +pkgver=5.0.0.4573.628fdbf pkgrel=1 pkgdesc="MinGW-w64 winpthreads library" url="http://mingw-w64.sourceforge.net" @@ -21,11 +22,9 @@ makedepends=("git" "${MINGW_PACKAGE_PREFIX}-headers-git") options=('strip' '!buildflags' 'staticlibs' '!emptydirs' '!debug') source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" - "0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch" - "libwinpthread-revert.patch") + "0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch") md5sums=('SKIP' - '74a4dab06a8fa113407a6e11fdb3c962' - '9dcb95ccf4d4a32fbbd7b4e28acd5152') + '74a4dab06a8fa113407a6e11fdb3c962') pkgver() { cd "${srcdir}/mingw-w64" @@ -38,7 +37,6 @@ pkgver() { prepare() { cd "${srcdir}/mingw-w64" git am "${srcdir}"/0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch - git apply --reverse "${srcdir}"/libwinpthread-revert.patch cd "${srcdir}"/mingw-w64/mingw-w64-libraries/winpthreads autoreconf -vfi } diff --git a/mingw-w64-winpthreads-git/libwinpthread-revert.patch b/mingw-w64-winpthreads-git/libwinpthread-revert.patch deleted file mode 100644 index 31e5bc7be3..0000000000 --- a/mingw-w64-winpthreads-git/libwinpthread-revert.patch +++ /dev/null @@ -1,1076 +0,0 @@ -From 1968e60cd5d59727bb325d5b69c8f0d7a2f1fe1b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= -Date: Thu, 14 May 2015 16:08:31 +0200 -Subject: [PATCH] Rewrite the mutex implementation for better performance. - - This mutex reimplementation attempts to optimise for the common case: - default mutex type and no contention. Allocation of expensive - resources (heap memory and Windows kernel objects) is delayed until - needed, which may be never if the lock isn't subsequently used or - contended. - - The global spinlock of the old implementation is gone; performance is - orders of magnitude better and scales nicely with multiple - threads. This has been confirmed both in micro-benchmarks and actual - applications. - - The reimplementation is fully binary compatible. It does not do nearly - as much error-checking as the old one, but should be strictly within - the limits of what Posix allows. - - Code in thread.c relied on undefined behaviour (pthread_mutex_destroy - called twice on the same mutex) so an explicit reinitialisation had to - be added. ---- - mingw-w64-libraries/winpthreads/src/cond.c | 1 - - mingw-w64-libraries/winpthreads/src/mutex.c | 609 +++++++++------------------ - mingw-w64-libraries/winpthreads/src/mutex.h | 60 --- - mingw-w64-libraries/winpthreads/src/ref.c | 1 - - mingw-w64-libraries/winpthreads/src/sem.c | 1 - - mingw-w64-libraries/winpthreads/src/sem.h | 3 +- - mingw-w64-libraries/winpthreads/src/thread.c | 3 + - 7 files changed, 208 insertions(+), 470 deletions(-) - delete mode 100644 mingw-w64-libraries/winpthreads/src/mutex.h - -diff --git a/mingw-w64-libraries/winpthreads/src/cond.c b/mingw-w64-libraries/winpthreads/src/cond.c -index d38513b..7910bb2 100644 ---- a/mingw-w64-libraries/winpthreads/src/cond.c -+++ b/mingw-w64-libraries/winpthreads/src/cond.c -@@ -32,7 +32,6 @@ - #include "pthread_time.h" - #include "ref.h" - #include "cond.h" --#include "mutex.h" - #include "thread.h" - #include "misc.h" - #include "winpthread_internal.h" -diff --git a/mingw-w64-libraries/winpthreads/src/mutex.c b/mingw-w64-libraries/winpthreads/src/mutex.c -index aa3e1ea..fec341a 100644 ---- a/mingw-w64-libraries/winpthreads/src/mutex.c -+++ b/mingw-w64-libraries/winpthreads/src/mutex.c -@@ -1,5 +1,6 @@ - /* - Copyright (c) 2011, 2014 mingw-w64 project -+ Copyright (c) 2015 Intel Corporation - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), -@@ -21,469 +22,267 @@ - */ - - #include --#include - #include - #include -+#include - #include "pthread.h" --#include "ref.h" --#include "mutex.h" - #include "misc.h" - --extern int do_sema_b_wait_intern (HANDLE sema, int nointerrupt, DWORD timeout); --static WINPTHREADS_ATTRIBUTE((noinline)) int mutex_static_init(pthread_mutex_t *m); --static WINPTHREADS_ATTRIBUTE((noinline)) int _mutex_trylock(pthread_mutex_t *m); -- --static pthread_spinlock_t mutex_global = PTHREAD_SPINLOCK_INITIALIZER; --static pthread_spinlock_t mutex_global_static = PTHREAD_SPINLOCK_INITIALIZER; -- --static WINPTHREADS_ATTRIBUTE((noinline)) int --mutex_unref (pthread_mutex_t *m, int r) --{ -- mutex_t *m_ = (mutex_t *)*m; -- pthread_spin_lock (&mutex_global); --#ifdef WINPTHREAD_DBG -- assert((m_->valid == LIFE_MUTEX) && (m_->busy > 0)); --#endif -- if (m_->valid == LIFE_MUTEX && m_->busy > 0) -- m_->busy -= 1; -- pthread_spin_unlock (&mutex_global); -- return r; -+typedef enum { -+ Unlocked, /* Not locked. */ -+ Locked, /* Locked but without waiters. */ -+ Waiting, /* Locked, may have waiters. */ -+} mutex_state_t; -+ -+typedef enum { -+ Normal, -+ Errorcheck, -+ Recursive, -+} mutex_type_t; -+ -+/* The heap-allocated part of a mutex. */ -+typedef struct { -+ mutex_state_t state; -+ mutex_type_t type; -+ HANDLE event; /* Auto-reset event, or NULL if not yet allocated. */ -+ unsigned rec_lock; /* For recursive mutexes, the number of times the -+ mutex has been locked in excess by the same thread. */ -+ volatile DWORD owner; /* For recursive and error-checking mutexes, the -+ ID of the owning thread if the mutex is locked. */ -+} mutex_impl_t; -+ -+/* Whether a mutex is still a static initializer (not a pointer to -+ a mutex_impl_t). */ -+static bool -+is_static_initializer(pthread_mutex_t m) -+{ -+ return (uintptr_t)m >= (uintptr_t)-3; - } - --/* Set the mutex to busy in a thread-safe way */ --/* A busy mutex can't be destroyed */ --static WINPTHREADS_ATTRIBUTE((noinline)) int --mutex_ref (pthread_mutex_t *m) -+/* Create and return the implementation part of a mutex from a static -+ initialiser. Return NULL on out-of-memory error. */ -+static WINPTHREADS_ATTRIBUTE((noinline)) mutex_impl_t * -+mutex_impl_init(pthread_mutex_t *m, mutex_impl_t *mi) - { -- int r = 0; -- -- pthread_spin_lock (&mutex_global); -- -- if (!m || !*m) -- { -- pthread_spin_unlock (&mutex_global); -- return EINVAL; -- } -- -- if (STATIC_INITIALIZER(*m)) -- { -- pthread_spin_unlock (&mutex_global); -- r = mutex_static_init (m); -- pthread_spin_lock (&mutex_global); -- -- if (r != 0 && r != EBUSY) -- { -- pthread_spin_unlock (&mutex_global); -- return r; -- } -+ mutex_impl_t *new_mi = malloc(sizeof(mutex_impl_t)); -+ if (new_mi == NULL) -+ return NULL; -+ new_mi->state = Unlocked; -+ new_mi->type = (mi == PTHREAD_RECURSIVE_MUTEX_INITIALIZER ? Recursive -+ : mi == PTHREAD_ERRORCHECK_MUTEX_INITIALIZER ? Errorcheck -+ : Normal); -+ new_mi->event = NULL; -+ new_mi->rec_lock = 0; -+ new_mi->owner = (DWORD)-1; -+ if (__sync_bool_compare_and_swap(m, mi, new_mi)) { -+ return new_mi; -+ } else { -+ /* Someone created the struct before us. */ -+ free(new_mi); -+ return *m; - } -- -- r = 0; -- -- if (!m || !*m || ((mutex_t *)*m)->valid != LIFE_MUTEX) -- r = EINVAL; -- else -- ((mutex_t *)*m)->busy += 1; -- -- pthread_spin_unlock (&mutex_global); -- -- return r; - } - --/* An unlock can simply fail with EPERM instead of auto-init (can't be owned) */ --static WINPTHREADS_ATTRIBUTE((noinline)) int --mutex_ref_unlock (pthread_mutex_t *m) --{ -- int r = 0; -- mutex_t *m_ = (mutex_t *)*m; -- -- pthread_spin_lock (&mutex_global); -- -- if (!m || !*m || ((mutex_t *)*m)->valid != LIFE_MUTEX) -- r = EINVAL; -- else if (STATIC_INITIALIZER(*m) || !COND_LOCKED(m_)) -- r = EPERM; -- else -- ((mutex_t *)*m)->busy ++; -- -- pthread_spin_unlock (&mutex_global); -- -- return r; --} -+#define likely(cond) __builtin_expect((cond) != 0, 1) -+#define unlikely(cond) __builtin_expect((cond) != 0, 0) - --/* doesn't lock the mutex but set it to invalid in a thread-safe way */ --/* A busy mutex can't be destroyed -> EBUSY */ --static WINPTHREADS_ATTRIBUTE((noinline)) int --mutex_ref_destroy (pthread_mutex_t *m, pthread_mutex_t *mDestroy) -+/* Return the implementation part of a mutex, creating it if necessary. -+ Return NULL on out-of-memory error. */ -+static inline mutex_impl_t * -+mutex_impl(pthread_mutex_t *m) - { -- pthread_mutex_t mx; -- mutex_t *m_; -- int r = 0; -- -- if (!m || !*m) -- return EINVAL; -- -- *mDestroy = NULL; -- /* also considered as busy, any concurrent access prevents destruction: */ -- mx = *m; -- r = pthread_mutex_trylock (&mx); -- if (r) -- return r; -- -- pthread_spin_lock (&mutex_global); -- -- if (!*m) -- r = EINVAL; -- else -- { -- m_ = (mutex_t *)*m; -- if (STATIC_INITIALIZER(*m)) -- *m = NULL; -- else if (m_->valid != LIFE_MUTEX) -- r = EINVAL; -- else if (m_->busy) -- r = 0xbeef; -- else -- { -- *mDestroy = *m; -- *m = NULL; -- } -- } -- -- if (r) -- { -- pthread_spin_unlock (&mutex_global); -- pthread_mutex_unlock (&mx); -- } -- return r; --} -- --static WINPTHREADS_ATTRIBUTE((noinline)) int --mutex_ref_init (pthread_mutex_t *m) --{ -- int r = 0; -- -- pthread_spin_lock (&mutex_global); -- -- if (!m) r = EINVAL; -- -- if (r) -- pthread_spin_unlock (&mutex_global); -- return r; --} -- --#ifdef WINPTHREAD_DBG --static int print_state = 1; -- --void mutex_print_set (int state) --{ -- print_state = state; --} -- --void mutex_print (volatile pthread_mutex_t *m, char *txt) --{ -- if (!print_state) -- return; -- mutex_t *m_ = (mutex_t *)*m; -- if (m_ == NULL) { -- printf("M%p %d %s\n",*m,(int)GetCurrentThreadId(),txt); -+ mutex_impl_t *mi = *m; -+ if (is_static_initializer(mi)) { -+ return mutex_impl_init(m, mi); - } else { -- printf("M%p %d V=%0X B=%d t=%d o=%d C=%d R=%d H=%p %s\n", -- *m, -- (int)GetCurrentThreadId(), -- (int)m_->valid, -- (int)m_->busy, -- m_->type, -- (int)GET_OWNER(m_),(int)(m_->count),(int)GET_RCNT(m_),GET_HANDLE(m_),txt); -+ /* mi cannot be null here; avoid a test in the fast path. */ -+ if (mi == NULL) -+ __builtin_unreachable(); -+ return mi; - } - } --#endif - --static WINPTHREADS_ATTRIBUTE((noinline)) int --mutex_static_init (pthread_mutex_t *m) --{ -- static pthread_mutexattr_t mxattr_recursive = PTHREAD_MUTEX_RECURSIVE; -- static pthread_mutexattr_t mxattr_errorcheck = PTHREAD_MUTEX_ERRORCHECK; -- -- int r; -- -- pthread_spin_lock (&mutex_global_static); -- if (!STATIC_INITIALIZER(*m)) -- /* Assume someone crept in between: */ -- r = 0; -- else -- { -- if (*m == PTHREAD_MUTEX_INITIALIZER) -- r = pthread_mutex_init (m, NULL); -- else if (*m == PTHREAD_RECURSIVE_MUTEX_INITIALIZER) -- r = pthread_mutex_init (m, &mxattr_recursive); -- else if (*m == PTHREAD_ERRORCHECK_MUTEX_INITIALIZER) -- r = pthread_mutex_init (m, &mxattr_errorcheck); -- else if (*m == NULL) -- r = EINVAL; -- else -- r = pthread_mutex_init (m, NULL); -- } -- -- pthread_spin_unlock (&mutex_global_static); -- return r; --} -- --static int pthread_mutex_lock_intern(pthread_mutex_t *m, DWORD timeout); -- --int --pthread_mutex_lock (pthread_mutex_t *m) --{ -- return pthread_mutex_lock_intern (m, INFINITE); --} -- --static int -+/* Lock a mutex. Give up after 'timeout' ms (with ETIMEDOUT), -+ or never if timeout=INFINITE. */ -+static inline int - pthread_mutex_lock_intern (pthread_mutex_t *m, DWORD timeout) - { -- mutex_t *_m; -- int r; -- HANDLE h; -+ mutex_impl_t *mi = mutex_impl(m); -+ if (mi == NULL) -+ return ENOMEM; -+ -+ mutex_state_t old_state = __sync_lock_test_and_set(&mi->state, Locked); -+ if (unlikely(old_state != Unlocked)) { -+ /* The mutex is already locked. */ -+ -+ if (mi->type != Normal) { -+ /* Recursive or Errorcheck */ -+ if (mi->owner == GetCurrentThreadId()) { -+ /* FIXME: A recursive mutex should not need two atomic ops when locking -+ recursively. We could rewrite by doing compare-and-swap instead of -+ test-and-set the first time, but it would lead to more code -+ duplication and add a conditional branch to the critical path. */ -+ __sync_bool_compare_and_swap(&mi->state, Locked, old_state); -+ if (mi->type == Recursive) { -+ mi->rec_lock++; -+ return 0; -+ } else { -+ /* type == Errorcheck */ -+ return EDEADLK; -+ } -+ } -+ } - -- r = mutex_ref (m); -- if (r) -- return r; -+ /* Make sure there is an event object on which to wait. */ -+ if (mi->event == NULL) { -+ /* Make an auto-reset event object. */ -+ HANDLE ev = CreateEvent(NULL, false, false, NULL); -+ if (ev == NULL) { -+ switch (GetLastError()) { -+ case ERROR_ACCESS_DENIED: -+ return EPERM; -+ default: -+ return ENOMEM; /* Probably accurate enough. */ -+ } -+ } -+ if (!__sync_bool_compare_and_swap(&mi->event, NULL, ev)) { -+ /* Someone created the event before us. */ -+ CloseHandle(ev); -+ } -+ } - -- _m = (mutex_t *) *m; -- if (_m->type != PTHREAD_MUTEX_NORMAL) -- { -- if (COND_LOCKED(_m)) -- { -- if (COND_OWNER(_m)) -- { -- if (_m->type == PTHREAD_MUTEX_RECURSIVE) -- { -- InterlockedIncrement(&_m->count); -- return mutex_unref(m,0); -- } -- -- return mutex_unref(m, EDEADLK); -+ /* At this point, mi->event is non-NULL. */ -+ -+ while (__sync_lock_test_and_set(&mi->state, Waiting) != Unlocked) { -+ /* For timed locking attempts, it is possible (although unlikely) -+ that we are woken up but someone else grabs the lock before us, -+ and we have to go back to sleep again. In that case, the total -+ wait may be longer than expected. */ -+ -+ unsigned r = WaitForSingleObject(mi->event, timeout); -+ switch (r) { -+ case WAIT_TIMEOUT: -+ return ETIMEDOUT; -+ case WAIT_OBJECT_0: -+ break; -+ default: -+ return EINVAL; - } - } - } -- -- h = _m->h; -- mutex_unref (m, 0); -- -- r = do_sema_b_wait_intern (h, 1, timeout); - -- if (r != 0) -- return r; -- -- r = mutex_ref (m); -- if (r) -- return r; -+ if (mi->type != Normal) -+ mi->owner = GetCurrentThreadId(); - -- _m->count = 1; -- SET_OWNER(_m); -+ return 0; -+} - -- return mutex_unref (m, r); -+int -+pthread_mutex_lock (pthread_mutex_t *m) -+{ -+ return pthread_mutex_lock_intern (m, INFINITE); - } - - int pthread_mutex_timedlock(pthread_mutex_t *m, const struct timespec *ts) - { -- unsigned long long t, ct; -- int r; -- mutex_t *_m; -- -- if (!ts) -- return pthread_mutex_lock(m); -- -- r = mutex_ref(m); -- if (r) -- return r; -- -- /* Try to lock it without waiting */ -- r = _mutex_trylock (m); -- if (r != EBUSY) -- return mutex_unref(m,r); -- -- _m = (mutex_t *)*m; -- if (_m->type != PTHREAD_MUTEX_NORMAL && COND_LOCKED(_m) && COND_OWNER(_m)) -- return mutex_unref(m,EDEADLK); -- -- ct = _pthread_time_in_ms(); -- t = _pthread_time_in_ms_from_timespec(ts); -- mutex_unref(m,r); -- r = pthread_mutex_lock_intern(m, (ct > t ? 0 : (t - ct))); -- return r; -+ unsigned long long patience; -+ if (ts != NULL) { -+ unsigned long long end = _pthread_time_in_ms_from_timespec(ts); -+ unsigned long long now = _pthread_time_in_ms(); -+ patience = end > now ? end - now : 0; -+ if (patience > 0xffffffff) -+ patience = INFINITE; -+ } else { -+ patience = INFINITE; -+ } -+ return pthread_mutex_lock_intern(m, patience); - } - - int pthread_mutex_unlock(pthread_mutex_t *m) - { -- mutex_t *_m; -- int r = mutex_ref_unlock(m); -- -- if(r) { -- return r; -- } -- -- _m = (mutex_t *)*m; -- -- if (_m->type == PTHREAD_MUTEX_NORMAL) -- { -- if (!COND_LOCKED(_m)) -- { -- return mutex_unref(m, EPERM); -- } -- } -- else if (!COND_LOCKED(_m) || !COND_OWNER(_m)) { -- return mutex_unref(m,EPERM); -- } -- -- if (_m->type == PTHREAD_MUTEX_RECURSIVE) -- { -- if(InterlockedDecrement(&_m->count)) { -- return mutex_unref(m,0); -- } -+ /* Here m might an initialiser of an error-checking or recursive mutex, in -+ which case the behaviour is well-defined, so we can't skip this check. */ -+ mutex_impl_t *mi = mutex_impl(m); -+ if (mi == NULL) -+ return ENOMEM; -+ -+ if (unlikely(mi->type != Normal)) { -+ if (mi->state == Unlocked) -+ return EINVAL; -+ if (mi->owner != GetCurrentThreadId()) -+ return EPERM; -+ if (mi->rec_lock > 0) { -+ mi->rec_lock--; -+ return 0; -+ } -+ mi->owner = (DWORD)-1; - } -- UNSET_OWNER(_m); -- -- if (_m->h != NULL && !ReleaseSemaphore(_m->h, 1, NULL)) { -- SET_OWNER(_m); -- /* restore our own bookkeeping */ -- return mutex_unref(m,EPERM); -+ if (unlikely(__sync_lock_test_and_set(&mi->state, Unlocked) == Waiting)) { -+ if (!SetEvent(mi->event)) -+ return EPERM; - } -- -- return mutex_unref(m,0); -+ return 0; - } - --static WINPTHREADS_ATTRIBUTE((noinline)) int --_mutex_trylock(pthread_mutex_t *m) -+int pthread_mutex_trylock(pthread_mutex_t *m) - { -- int r = 0; -- mutex_t *_m = (mutex_t *)*m; -- -- if (_m->type != PTHREAD_MUTEX_NORMAL) -- { -- if (COND_LOCKED(_m)) -- { -- if (_m->type == PTHREAD_MUTEX_RECURSIVE && COND_OWNER(_m)) -- { -- InterlockedIncrement(&_m->count); -- return 0; -- } -- -- return EBUSY; -+ mutex_impl_t *mi = mutex_impl(m); -+ if (mi == NULL) -+ return ENOMEM; -+ -+ if (__sync_bool_compare_and_swap(&mi->state, Unlocked, Locked)) { -+ if (mi->type != Normal) -+ mi->owner = GetCurrentThreadId(); -+ return 0; -+ } else { -+ if (mi->type == Recursive && mi->owner == GetCurrentThreadId()) { -+ mi->rec_lock++; -+ return 0; - } -- } else if (COND_LOCKED(_m)) - return EBUSY; -- -- r = do_sema_b_wait_intern (_m->h, 1, 0); -- -- if (r == ETIMEDOUT) -- r = EBUSY; -- else if (!r) -- { -- _m->count = 1; -- SET_OWNER(_m); - } -- -- return r; --} -- --int pthread_mutex_trylock(pthread_mutex_t *m) --{ -- int r = mutex_ref(m); -- if(r) -- return r; -- -- return mutex_unref(m,_mutex_trylock(m)); - } - - int - pthread_mutex_init (pthread_mutex_t *m, const pthread_mutexattr_t *a) - { -- mutex_t *_m; -- -- int r = mutex_ref_init (m); -- if (r) -- return r; -- -- if (!(_m = (pthread_mutex_t)calloc(1,sizeof(*_m)))) -- { -- pthread_spin_unlock (&mutex_global); -- return ENOMEM; -- } -- -- _m->type = PTHREAD_MUTEX_DEFAULT; -- _m->count = 0; -- _m->busy = 0; -- -- if (a) -- { -- int share = PTHREAD_PROCESS_PRIVATE; -- r = pthread_mutexattr_gettype (a, &_m->type); -- if (!r) -- r = pthread_mutexattr_getpshared(a, &share); -- -- if (!r && share == PTHREAD_PROCESS_SHARED) -- r = ENOSYS; -- } -- -- if (!r) -- { -- if ((_m->h = CreateSemaphore(NULL, 1, 0x7fffffff, NULL)) == NULL) -- { -- switch (GetLastError()) { -- case ERROR_ACCESS_DENIED: -- r = EPERM; -- break; -- default: /* We assume this, to keep it simple: */ -- r = ENOMEM; -+ pthread_mutex_t init = PTHREAD_MUTEX_INITIALIZER; -+ if (a != NULL) { -+ int pshared; -+ if (pthread_mutexattr_getpshared(a, &pshared) == 0 -+ && pshared == PTHREAD_PROCESS_SHARED) -+ return ENOSYS; -+ -+ int type; -+ if (pthread_mutexattr_gettype(a, &type) == 0) { -+ switch (type) { -+ case PTHREAD_MUTEX_ERRORCHECK: -+ init = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER; -+ break; -+ case PTHREAD_MUTEX_RECURSIVE: -+ init = PTHREAD_RECURSIVE_MUTEX_INITIALIZER; -+ break; -+ default: -+ init = PTHREAD_MUTEX_INITIALIZER; -+ break; - } - } -- } -- -- if (r) -- { -- _m->valid = DEAD_MUTEX; -- free(_m); -- *m = NULL; -- pthread_spin_unlock (&mutex_global); -- return r; - } -- -- _m->valid = LIFE_MUTEX; -- *m = _m; -- pthread_spin_unlock (&mutex_global); -- -+ *m = init; - return 0; - } - - int pthread_mutex_destroy (pthread_mutex_t *m) - { -- mutex_t *_m; -- pthread_mutex_t mDestroy; -- int r; -- -- while ((r = mutex_ref_destroy (m, &mDestroy)) == 0xbeef) -- Sleep (0); -- if (r) -- return r; -- -- if (!mDestroy) -- { -- pthread_spin_unlock (&mutex_global); -- return 0; /* destroyed a (still) static initialized mutex */ -+ mutex_impl_t *mi = *m; -+ if (!is_static_initializer(mi)) { -+ if (mi->event != NULL) -+ CloseHandle(mi->event); -+ free(mi); -+ /* Sabotage attempts to re-use the mutex before initialising it again. */ -+ *m = NULL; - } - -- /* now the mutex is invalid, and no one can touch it */ -- _m = (mutex_t *)mDestroy; -- -- CloseHandle (_m->h); -- _m->valid = DEAD_MUTEX; -- _m->type = 0; -- _m->count = 0; -- _m->busy = 0; -- free (mDestroy); -- *m = NULL; -- pthread_spin_unlock (&mutex_global); -- - return 0; - } - -diff --git a/mingw-w64-libraries/winpthreads/src/mutex.h b/mingw-w64-libraries/winpthreads/src/mutex.h -deleted file mode 100644 -index c8e3cac..0000000 ---- a/mingw-w64-libraries/winpthreads/src/mutex.h -+++ /dev/null -@@ -1,60 +0,0 @@ --/* -- Copyright (c) 2011 mingw-w64 project -- -- Permission is hereby granted, free of charge, to any person obtaining a -- copy of this software and associated documentation files (the "Software"), -- to deal in the Software without restriction, including without limitation -- the rights to use, copy, modify, merge, publish, distribute, sublicense, -- and/or sell copies of the Software, and to permit persons to whom the -- Software is furnished to do so, subject to the following conditions: -- -- The above copyright notice and this permission notice shall be included in -- all copies or substantial portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -- DEALINGS IN THE SOFTWARE. --*/ -- --#ifndef WIN_PTHREADS_MUTEX_H --#define WIN_PTHREADS_MUTEX_H -- --#define COND_LOCKED(m) (m->owner != 0) --#define COND_OWNER(m) (m->owner == GetCurrentThreadId()) --#define COND_DEADLK(m) COND_OWNER(m) --#define GET_OWNER(m) (m->owner) --#define GET_HANDLE(m) (m->h) --#define GET_LOCKCNT(m) (m->count) --#define GET_RCNT(m) (m->count) /* not accurate! */ --#define SET_OWNER(m) (m->owner = GetCurrentThreadId()) --#define UNSET_OWNER(m) { m->owner = 0; } --#define LOCK_UNDO(m) --#define COND_DEADLK_NR(m) ((m->type != PTHREAD_MUTEX_RECURSIVE) && COND_DEADLK(m)) --#define CHECK_DEADLK(m) { if (COND_DEADLK_NR(m)) return EDEADLK; } -- --#define STATIC_INITIALIZER(x) ((intptr_t)(x) >= -3 && (intptr_t)(x) <= -1) --#define MUTEX_INITIALIZER2TYPE(x) ((LONGBAG)PTHREAD_NORMAL_MUTEX_INITIALIZER - (LONGBAG)(x)) -- --#define LIFE_MUTEX 0xBAB1F00D --#define DEAD_MUTEX 0xDEADBEEF -- --typedef struct mutex_t mutex_t; --struct mutex_t --{ -- LONG valid; -- volatile LONG busy; -- int type; -- volatile LONG count; -- LONG lockOwner; -- DWORD owner; -- HANDLE h; --}; -- --void mutex_print(volatile pthread_mutex_t *m, char *txt); --void mutex_print_set(int state); -- --#endif -diff --git a/mingw-w64-libraries/winpthreads/src/ref.c b/mingw-w64-libraries/winpthreads/src/ref.c -index 65d7655..521a033 100644 ---- a/mingw-w64-libraries/winpthreads/src/ref.c -+++ b/mingw-w64-libraries/winpthreads/src/ref.c -@@ -25,7 +25,6 @@ - #include - #include "pthread.h" - #include "semaphore.h" --#include "mutex.h" - #include "rwlock.h" - #include "cond.h" - #include "barrier.h" -diff --git a/mingw-w64-libraries/winpthreads/src/sem.c b/mingw-w64-libraries/winpthreads/src/sem.c -index d4a9a68..0b8af77 100644 ---- a/mingw-w64-libraries/winpthreads/src/sem.c -+++ b/mingw-w64-libraries/winpthreads/src/sem.c -@@ -28,7 +28,6 @@ - #include "misc.h" - #include "semaphore.h" - #include "sem.h" --#include "mutex.h" - #include "ref.h" - - int do_sema_b_wait_intern (HANDLE sema, int nointerrupt, DWORD timeout); -diff --git a/mingw-w64-libraries/winpthreads/src/sem.h b/mingw-w64-libraries/winpthreads/src/sem.h -index b97516e..58eabf9 100644 ---- a/mingw-w64-libraries/winpthreads/src/sem.h -+++ b/mingw-w64-libraries/winpthreads/src/sem.h -@@ -24,7 +24,6 @@ - #define WIN_SEM - - #include --#include "mutex.h" - - #define LIFE_SEM 0xBAB1F00D - #define DEAD_SEM 0xDEADBEEF -@@ -38,4 +37,4 @@ struct _sem_t - pthread_mutex_t vlock; - }; - --#endif /* WIN_SEM */ -\ No newline at end of file -+#endif /* WIN_SEM */ -diff --git a/mingw-w64-libraries/winpthreads/src/thread.c b/mingw-w64-libraries/winpthreads/src/thread.c -index 1f7968f..ceea98e 100644 ---- a/mingw-w64-libraries/winpthreads/src/thread.c -+++ b/mingw-w64-libraries/winpthreads/src/thread.c -@@ -1514,6 +1514,9 @@ pthread_create_wrapper (void *args) - { - pthread_mutex_unlock (&tv->p_clock); - pthread_mutex_destroy (&tv->p_clock); -+ /* Reinitialise p_clock, since there may be attempts at -+ destroying it again in __dyn_tls_thread later on. */ -+ tv->p_clock = PTHREAD_MUTEX_INITIALIZER; - tv->ended = 1; - } - while (pthread_mutex_unlock (&mtx_pthr_locked) == 0) --- -2.4.5 - -From 249898d9ae310959116efa333e4e3e690cf97452 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= -Date: Thu, 14 May 2015 16:19:34 +0200 -Subject: [PATCH] Rewrite the pthread spinlock implementation. - - This implementation lets the pthread spinlocks just be spinlocks, as - they should be. It makes them much faster in every respect. - - Since these spinlocks are used in many other places in the library, - those routines have now become measureably faster as well. For - example, pthread_getspecific has gained substantial speed as a result. ---- - mingw-w64-libraries/winpthreads/src/spinlock.c | 154 +++---------------------- - 1 file changed, 19 insertions(+), 135 deletions(-) - -diff --git a/mingw-w64-libraries/winpthreads/src/spinlock.c b/mingw-w64-libraries/winpthreads/src/spinlock.c -index b319863..e55e929 100644 ---- a/mingw-w64-libraries/winpthreads/src/spinlock.c -+++ b/mingw-w64-libraries/winpthreads/src/spinlock.c -@@ -1,5 +1,6 @@ - /* - Copyright (c) 2013 mingw-w64 project -+ Copyright (c) 2015 Intel Corporation - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), -@@ -20,78 +21,22 @@ - DEALINGS IN THE SOFTWARE. - */ - --#include --#include --#include - #include "pthread.h" --#include "misc.h" - --/* In theory, owner and locks are in CRITICAL_SECTION as well. --In practise, however, the implementation of CRITICAL_SECTION --should be regarded as opaque. That's why we replicate these --members. */ --typedef struct spin_t { -- DWORD owner; -- DWORD locks; -- CRITICAL_SECTION section; --} spin_t; -+#define likely(cond) __builtin_expect((cond) != 0, 1) -+#define unlikely(cond) __builtin_expect((cond) != 0, 0) - --/* Per the MSDN documentation, Windows components such as the heap manager --use a spin count of 4000. */ --static const DWORD kSpinCount = 4000; -- --static volatile LONG global_lock = 0; -- --static void --enter_global_cs (void) --{ -- while (global_lock || InterlockedExchange (&global_lock, 1)) -- asm volatile ("pause"); --} -- --static void --leave_global_cs (void) --{ -- InterlockedExchange (&global_lock, 0); --} -- --static int --static_spin_init (pthread_spinlock_t* lock) --{ -- if (PTHREAD_SPINLOCK_INITIALIZER == *lock) -- { -- enter_global_cs (); -- if (PTHREAD_SPINLOCK_INITIALIZER == *lock) -- { -- int initrv = pthread_spin_init (lock, PTHREAD_PROCESS_PRIVATE); -- if (initrv < 0) -- { -- leave_global_cs (); -- return initrv; -- } -- } -- leave_global_cs (); -- } -- return 0; --} -+/* We use the pthread_spinlock_t itself as a lock: -+ -1 is free, 0 is locked. -+ (This is dictated by PTHREAD_SPINLOCK_INITIALIZER, which we can't change -+ without breaking binary compatibility.) */ -+typedef intptr_t spinlock_word_t; - - int - pthread_spin_init (pthread_spinlock_t *lock, int pshared) - { -- spin_t *spin; -- -- if (!lock) -- return EINVAL; -- -- if (pshared != PTHREAD_PROCESS_PRIVATE) -- return ENOTSUP; -- -- if (!(spin = (spin_t*) calloc (1, sizeof(*spin)))) -- return ENOMEM; -- -- InitializeCriticalSection (&spin->section); -- SetCriticalSectionSpinCount (&spin->section, kSpinCount); -- *lock = spin; -+ spinlock_word_t *lk = (spinlock_word_t *)lock; -+ *lk = -1; - return 0; - } - -@@ -99,93 +44,32 @@ pthread_spin_init (pthread_spinlock_t *lock, int pshared) - int - pthread_spin_destroy (pthread_spinlock_t *lock) - { -- spin_t *spin; -- -- if (!lock || !*lock) -- return EINVAL; -- -- enter_global_cs (); -- if (*lock == PTHREAD_SPINLOCK_INITIALIZER) -- { -- *lock = NULL; -- leave_global_cs (); -- return 0; -- } -- -- spin = (spin_t*)*lock; -- if (spin->owner && spin->owner != GetCurrentThreadId ()) -- { -- leave_global_cs (); -- return EPERM; -- } -- -- DeleteCriticalSection (&spin->section); -- free (spin); -- *lock = NULL; -- leave_global_cs (); - return 0; - } - - int - pthread_spin_lock (pthread_spinlock_t *lock) - { -- spin_t *spin; -- int rv = 0; -- -- if (!lock || !*lock) -- return EINVAL; -- -- rv = static_spin_init (lock); -- if (rv < 0) -- return rv; -- -- spin = (spin_t*)*lock; -- EnterCriticalSection (&spin->section); -- spin->owner = GetCurrentThreadId (); -- spin->locks++; -+ volatile spinlock_word_t *lk = (volatile spinlock_word_t *)lock; -+ while (unlikely(__sync_lock_test_and_set(lk, 0) == 0)) -+ do { -+ asm("pause" ::: "memory"); -+ } while (*lk == 0); - return 0; - } - - int - pthread_spin_trylock (pthread_spinlock_t *lock) - { -- spin_t *spin; -- int rv = 0; -- -- if (!lock || !*lock) -- return EINVAL; -- -- rv = static_spin_init (lock); -- if (rv < 0) -- return rv; -- -- spin = (spin_t*)*lock; -- if (!TryEnterCriticalSection (&spin->section)) -- return EBUSY; -- -- spin->owner = GetCurrentThreadId (); -- spin->locks++; -- return 0; -+ spinlock_word_t *lk = (spinlock_word_t *)lock; -+ return __sync_lock_test_and_set(lk, 0) == 0 ? EBUSY : 0; - } - - - int - pthread_spin_unlock (pthread_spinlock_t *lock) - { -- spin_t *spin; -- -- if (!lock || !*lock) -- return EINVAL; -- -- if (*lock == PTHREAD_SPINLOCK_INITIALIZER) -- return EPERM; -- -- spin = (spin_t*)*lock; -- if (spin->owner != GetCurrentThreadId ()) -- return EPERM; -- -- if (!--spin->locks) -- spin->owner = 0; -- LeaveCriticalSection (&spin->section); -+ volatile spinlock_word_t *lk = (volatile spinlock_word_t *)lock; -+ *lk = -1; - return 0; - } --- -2.4.5 - From e1219a56d7882b640ba005eebea7c2f970e6e715 Mon Sep 17 00:00:00 2001 From: rupor-github Date: Sat, 12 Sep 2015 22:40:30 -0400 Subject: [PATCH 1570/2060] Changes for go 1.5.1 --- mingw-w64-go/0001-run-proper-go.path | 11 + mingw-w64-go/0002-run-proper-go.path | 28 ++ mingw-w64-go/PKGBUILD | 34 +- mingw-w64-go/msys2-unix-files.patch | 12 - mingw-w64-go/relocation-support.patch | 611 -------------------------- 5 files changed, 51 insertions(+), 645 deletions(-) create mode 100644 mingw-w64-go/0001-run-proper-go.path create mode 100644 mingw-w64-go/0002-run-proper-go.path delete mode 100644 mingw-w64-go/msys2-unix-files.patch delete mode 100644 mingw-w64-go/relocation-support.patch diff --git a/mingw-w64-go/0001-run-proper-go.path b/mingw-w64-go/0001-run-proper-go.path new file mode 100644 index 0000000000..63e4662b10 --- /dev/null +++ b/mingw-w64-go/0001-run-proper-go.path @@ -0,0 +1,11 @@ +--- go.orig/src/cmd/dist/buildtool.go 2015-09-08 21:24:01.000000000 -0400 ++++ go/src/cmd/dist/buildtool.go 2015-09-12 11:34:53.808544100 -0400 +@@ -108,7 +108,7 @@ + os.Setenv("GOHOSTARCH", "") + + // Run Go 1.4 to build binaries. +- run(workspace, ShowOutput|CheckExit, pathf("%s/bin/go", goroot_bootstrap), "install", "-v", "bootstrap/...") ++ run(workspace, ShowOutput|CheckExit, "go", "install", "-v", "bootstrap/...") + + // Copy binaries into tool binary directory. + for _, name := range bootstrapDirs { diff --git a/mingw-w64-go/0002-run-proper-go.path b/mingw-w64-go/0002-run-proper-go.path new file mode 100644 index 0000000000..a475d7b8e4 --- /dev/null +++ b/mingw-w64-go/0002-run-proper-go.path @@ -0,0 +1,28 @@ +--- go.org/src/make.bat 2015-09-08 21:24:02.000000000 -0400 ++++ go/src/make.bat 2015-09-12 14:22:08.562197600 -0400 +@@ -59,13 +59,13 @@ + echo ##### Building Go bootstrap tool. + echo cmd/dist + if not exist ..\bin\tool mkdir ..\bin\tool +-if "x%GOROOT_BOOTSTRAP%"=="x" set GOROOT_BOOTSTRAP=%HOMEDRIVE%%HOMEPATH%\Go1.4 +-if not exist "%GOROOT_BOOTSTRAP%\bin\go.exe" goto bootstrapfail ++ ++if not exist "%GOROOT_BOOTSTRAP%\..\..\bin\go.exe" goto bootstrapfail + setlocal + set GOROOT=%GOROOT_BOOTSTRAP% + set GOOS= + set GOARCH= +-"%GOROOT_BOOTSTRAP%\bin\go" build -o cmd\dist\dist.exe .\cmd\dist ++go build -o cmd\dist\dist.exe .\cmd\dist + endlocal + if errorlevel 1 goto fail + .\cmd\dist\dist env -w -p >env.bat +@@ -123,7 +123,7 @@ + goto end + + :bootstrapfail +-echo ERROR: Cannot find %GOROOT_BOOTSTRAP%\bin\go.exe ++echo ERROR: Cannot find go.exe + echo "Set GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4." + + :fail diff --git a/mingw-w64-go/PKGBUILD b/mingw-w64-go/PKGBUILD index 4e9520b29e..f20d6bffdf 100644 --- a/mingw-w64-go/PKGBUILD +++ b/mingw-w64-go/PKGBUILD @@ -2,9 +2,9 @@ _realname=go pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.4.2 +pkgver=1.5.1 pkgrel=1 -pkgdesc="Go Lang (miongw-w64)" +pkgdesc="Go Lang (mingw-w64)" arch=('any') license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") @@ -12,26 +12,24 @@ url="http://www.golang.org/" depends=() options=('!strip') source=("http://golang.org/dl/go${pkgver}.src.tar.gz" - "msys2-unix-files.patch" - "relocation-support.patch") -sha1sums=('460caac03379f746c473814a65223397e9c9a2f6' - '86ed6c4f5ab069e4470e3efc0cb9ae912ff7a31b' - '995907f84dd53e6d04d21d350766e47a866e6b6e') + 0001-run-proper-go.path + 0002-run-proper-go.path) +sha1sums=('0df564746d105f4180c2b576a1553ebca9d9a124' + '385000e119ccf65244b95c869bfe156e9ac703fa' + '59bcd02985f3ede3f527ac74c966abac40f443cd') prepare() { - pushd "${srcdir}"/${_realname} - [[ -f src/cmd/dist/pathtools.c ]] && rm -f src/cmd/dist/pathtools.c - [[ -f src/cmd/dist/pathtools.h ]] && rm -f src/cmd/dist/pathtools.h - #patch -p1 -i ${srcdir}/msys2-unix-files.patch - patch -p1 -i ${srcdir}/relocation-support.patch - popd [[ -d "${srcdir}"/$_realname-$pkgver ]] && rm -rf "${srcdir}"/${_realname}-${pkgver} mv "${srcdir}"/${_realname} "${srcdir}"/${_realname}-${pkgver} + + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i ${srcdir}/0001-run-proper-go.path + patch -p1 -i ${srcdir}/0002-run-proper-go.path } build() { cd "${srcdir}"/${_realname}-${pkgver}/src - + export GOROOT_BOOTSTRAP=/`echo ${MSYSTEM} | tr '[:upper:]' '[:lower:]'`/lib/go export GOROOT="${srcdir}/${_realname}-${pkgver}" export GOBIN="${GOROOT}/bin" export GOPATH="${srcdir}/" @@ -61,9 +59,7 @@ package() { cp -a pkg "${pkgdir}${MINGW_PREFIX}/lib/go" cp -a "$GOROOT/src" "${pkgdir}${MINGW_PREFIX}/lib/go/" cp -a "$GOROOT/src/cmd" "${pkgdir}${MINGW_PREFIX}/lib/go/src/cmd" - cp -a "$GOROOT/src/lib9" "${pkgdir}${MINGW_PREFIX}/lib/go/src/" cp -a "$GOROOT/lib" "${pkgdir}${MINGW_PREFIX}/lib/go/" - cp -a "$GOROOT/include" "${pkgdir}${MINGW_PREFIX}/lib/go/" install -Dm644 src/Make.* "${pkgdir}${MINGW_PREFIX}/lib/go/src" @@ -76,12 +72,6 @@ package() { # Remove all executable source files find "${pkgdir}${MINGW_PREFIX}/lib/go/src" -type f -executable -delete - # Headers for C modules - install -Dm644 src/runtime/runtime.h \ - "${pkgdir}${MINGW_PREFIX}/lib/go/src/runtime/runtime.h" - install -Dm644 src/runtime/cgocall.h \ - "${pkgdir}${MINGW_PREFIX}/lib/go/src/runtime/cgocall.h" - # This is to make go get code.google.com/p/go-tour/gotour and # then running the gotour executable work out of the box. # ln -sf ${MINGW_PREFIX}/bin "${pkgdir}${MINGW_PREFIX}/lib/go/bin" diff --git a/mingw-w64-go/msys2-unix-files.patch b/mingw-w64-go/msys2-unix-files.patch deleted file mode 100644 index 2f35e76f59..0000000000 --- a/mingw-w64-go/msys2-unix-files.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/usr/mingw32/src/pkg/os/exec/lp_windows.go b/usr/mingw32/src/pkg/os/exec/lp_windows.go -index c3efd67..139cf33 100644 ---- a/src/pkg/os/exec/lp_windows.go -+++ b/src/pkg/os/exec/lp_windows.go -@@ -70,6 +70,7 @@ func LookPath(file string) (f string, err error) { - } - exts = append(exts, e) - } -+ exts = append(exts, "") - if strings.IndexAny(file, `:\/`) != -1 { - if f, err = findExecutable(file, exts); err == nil { - return diff --git a/mingw-w64-go/relocation-support.patch b/mingw-w64-go/relocation-support.patch deleted file mode 100644 index 256e6bff5b..0000000000 --- a/mingw-w64-go/relocation-support.patch +++ /dev/null @@ -1,611 +0,0 @@ -diff -urN go.orig/src/cmd/dist/pathtools.c go/src/cmd/dist/pathtools.c ---- go.orig/src/cmd/dist/pathtools.c 1970-01-01 01:00:00.000000000 +0100 -+++ go/src/cmd/dist/pathtools.c 2015-01-14 21:52:47.223036600 +0000 -@@ -0,0 +1,538 @@ -+/* -+ .Some useful path tools. -+ .ASCII only for now. -+ .Written by Ray Donnelly in 2014. -+ .Licensed under CC0 (and anything. -+ .else you need to license it under). -+ .No warranties whatsoever. -+ .email: . -+ */ -+ -+#if defined(__APPLE__) -+#include -+#else -+#include -+#endif -+#include -+#include -+#include -+#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) -+#include -+#endif -+#include -+ -+/* If you don't define this, then get_executable_path() -+ can only use argv[0] which will often not work well */ -+#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH -+ -+#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) -+#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) -+/* Nothing needed, unistd.h is enough. */ -+#elif defined(__APPLE__) -+#include -+#elif defined(_WIN32) -+#define WIN32_MEAN_AND_LEAN -+#include -+#include -+#endif -+#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ -+ -+#include "pathtools.h" -+ -+char * -+malloc_copy_string(char const * original) -+{ -+ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); -+ if (result != NULL) -+ { -+ strcpy (result, original); -+ } -+ return result; -+} -+ -+void -+sanitise_path(char * path) -+{ -+ size_t path_size = strlen (path); -+ -+ /* Replace any '\' with '/' */ -+ char * path_p = path; -+ while ((path_p = strchr (path_p, '\\')) != NULL) -+ { -+ *path_p = '/'; -+ } -+ /* Replace any '//' with '/' */ -+ path_p = path; -+ while ((path_p = strstr (path_p, "//")) != NULL) -+ { -+ memmove (path_p, path_p + 1, path_size--); -+ } -+ return; -+} -+ -+char * -+get_relative_path(char const * from_in, char const * to_in) -+{ -+ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); -+ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); -+ size_t max_size = (from_size + to_size) * 2 + 4; -+ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); -+ char * from; -+ char * to; -+ char * common_part; -+ char * result; -+ size_t count; -+ -+ /* No to, return "./" */ -+ if (to_in == NULL) -+ { -+ return malloc_copy_string ("./"); -+ } -+ -+ /* If alloca failed or no from was given return a copy of to */ -+ if ( from_in == NULL -+ || scratch_space == NULL ) -+ { -+ return malloc_copy_string (to_in); -+ } -+ -+ from = scratch_space; -+ strcpy (from, from_in); -+ to = from + from_size + 1; -+ strcpy (to, to_in); -+ common_part = to + to_size + 1; -+ result = common_part + max_size; -+ simplify_path (from); -+ simplify_path (to); -+ -+ result[0] = '\0'; -+ -+ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ -+ size_t match_size = 0; /* The running (and final) match size. */ -+ size_t largest_size = (from_size > to_size) ? from_size : to_size; -+ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; -+ char from_c; -+ char to_c; -+ for (match_size = 0; match_size < largest_size; ++match_size) -+ { -+ /* To simplify the logic, always pretend the strings end with '/' */ -+ from_c = (match_size < from_size) ? from[match_size] : '/'; -+ to_c = (match_size < to_size) ? to[match_size] : '/'; -+ -+ if (from_c != to_c) -+ { -+ if (from_c != '\0' || to_c != '\0') -+ { -+ match_size = match_size_dirsep; -+ } -+ break; -+ } -+ else if (from_c == '/') -+ { -+ match_size_dirsep = match_size; -+ } -+ } -+ strncpy (common_part, from, match_size); -+ common_part[match_size] = '\0'; -+ from += match_size; -+ to += match_size; -+ size_t ndotdots = 0; -+ char const* from_last = from + strlen(from) - 1; -+ while ((from = strchr (from, '/')) && from != from_last) -+ { -+ ++ndotdots; -+ ++from; -+ } -+ for (count = 0; count < ndotdots; ++count) -+ { -+ strcat(result, "../"); -+ } -+ if (strlen(to) > 0) -+ { -+ strcat(result, to+1); -+ } -+ /* Make sure that if to ends with '/' result does the same, and -+ vice-versa. */ -+ size_t size_result = strlen(result); -+ if ((to_final_is_slash == 1) -+ && (!size_result || result[size_result-1] != '/')) -+ { -+ strcat (result, "/"); -+ } -+ else if (!to_final_is_slash -+ && size_result && result[size_result-1] == '/') -+ { -+ result[size_result-1] = '\0'; -+ } -+ -+ return malloc_copy_string (result); -+} -+ -+void -+simplify_path(char * path) -+{ -+ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ -+ ssize_t i, j; -+ size_t tok_size; -+ size_t in_size = strlen (path); -+ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; -+ char * result = path; -+ sanitise_path(result); -+ char * result_p = result; -+ -+ do -+ { -+ ++n_toks; -+ ++result_p; -+ } while ((result_p = strchr (result_p, '/')) != NULL); -+ -+ result_p = result; -+ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); -+ n_toks = 0; -+ do -+ { -+ if (result_p > result) -+ { -+ *result_p++ = '\0'; -+ } -+ else if (*result_p == '/') -+ { -+ /* A leading / creates an empty initial token. */ -+ toks[n_toks++] = result_p; -+ *result_p++ = '\0'; -+ } -+ toks[n_toks++] = result_p; -+ } while ((result_p = strchr (result_p, '/')) != NULL); -+ -+ /* Remove all non-leading '.' and any '..' we can match -+ with an earlier forward path (i.e. neither '.' nor '..') */ -+ for (i = 1; i < n_toks; ++i) -+ { -+ int removals[2] = { -1, -1 }; -+ if ( strcmp (toks[i], "." ) == 0) -+ { -+ removals[0] = i; -+ } -+ else if ( strcmp (toks[i], ".." ) == 0) -+ { -+ /* Search backwards for a forward path to collapse. -+ If none are found then the .. also stays. */ -+ for (j = i - 1; j > -1; --j) -+ { -+ if ( strcmp (toks[j], "." ) -+ && strcmp (toks[j], ".." ) ) -+ { -+ removals[0] = j; -+ removals[1] = i; -+ break; -+ } -+ } -+ } -+ for (j = 0; j < 2; ++j) -+ { -+ if (removals[j] >= 0) /* Can become -2 */ -+ { -+ --n_toks; -+ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); -+ --i; -+ if (!j) -+ { -+ --removals[1]; -+ } -+ } -+ } -+ } -+ result_p = result; -+ for (i = 0; i < n_toks; ++i) -+ { -+ tok_size = strlen(toks[i]); -+ memcpy (result_p, toks[i], tok_size); -+ result_p += tok_size; -+ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) -+ { -+ *result_p = '/'; -+ ++result_p; -+ } -+ } -+ *result_p = '\0'; -+} -+ -+/* Returns actual_to by calculating the relative path from -> to and -+ applying that to actual_from. An assumption that actual_from is a -+ dir is made, and it may or may not end with a '/' */ -+char const * -+get_relocated_path (char const * from, char const * to, char const * actual_from) -+{ -+ char const * relative_from_to = get_relative_path (from, to); -+ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); -+ return actual_to; -+} -+ -+int -+get_executable_path(char const * argv0, char * result, ssize_t max_size) -+{ -+ char * system_result = (char *) alloca (max_size); -+ ssize_t system_result_size = -1; -+ ssize_t result_size = -1; -+ -+ if (system_result != NULL) -+ { -+#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) -+#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) -+ system_result_size = readlink("/proc/self/exe", system_result, max_size); -+#elif defined(__APPLE__) -+ uint32_t bufsize = (uint32_t)max_size; -+ if (_NSGetExecutablePath(system_result, &bufsize) == 0) -+ { -+ system_result_size = (ssize_t)bufsize; -+ } -+#elif defined(_WIN32) -+ unsigned long bufsize = (unsigned long)max_size; -+ system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); -+ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) -+ { -+ /* Error, possibly not enough space. */ -+ system_result_size = -1; -+ } -+ else -+ { -+ /* Early conversion to unix slashes instead of more changes -+ everywhere else .. */ -+ char * winslash; -+ system_result[system_result_size] = '\0'; -+ while ((winslash = strchr (system_result, '\\')) != NULL) -+ { -+ *winslash = '/'; -+ } -+ } -+#else -+#warning "Don't know how to get executable path on this system" -+#endif -+#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ -+ } -+ /* Use argv0 as a default in-case of failure */ -+ if (system_result_size != -1) -+ { -+ strncpy (result, system_result, system_result_size); -+ result[system_result_size] = '\0'; -+ } -+ else -+ { -+ if (argv0 != NULL) -+ { -+ strncpy (result, argv0, max_size); -+ result[max_size-1] = '\0'; -+ } -+ else -+ { -+ result[0] = '\0'; -+ } -+ } -+ result_size = strlen (result); -+ return result_size; -+} -+ -+char const * -+strip_n_prefix_folders(char const * path, size_t n) -+{ -+ if (path == NULL) -+ { -+ return NULL; -+ } -+ -+ if (path[0] != '/') -+ { -+ return path; -+ } -+ -+ char const * last = path; -+ while (n-- && path != NULL) -+ { -+ last = path; -+ path = strchr (path + 1, '/'); -+ } -+ return (path == NULL) ? last : path; -+} -+ -+void -+strip_n_suffix_folders(char * path, size_t n) -+{ -+ if (path == NULL) -+ { -+ return; -+ } -+ while (n--) -+ { -+ if (strrchr (path + 1, '/')) -+ { -+ *strrchr (path + 1, '/') = '\0'; -+ } -+ else -+ { -+ return; -+ } -+ } -+ return; -+} -+ -+size_t -+split_path_list(char const * path_list, char split_char, char *** arr) -+{ -+ size_t path_count; -+ size_t path_list_size; -+ char const * path_list_p; -+ -+ path_list_p = path_list; -+ if (path_list == NULL || path_list[0] == '\0') -+ { -+ return 0; -+ } -+ path_list_size = strlen (path_list); -+ -+ path_count = 0; -+ do -+ { -+ ++path_count; -+ ++path_list_p; -+ } -+ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); -+ -+ /* allocate everything in one go. */ -+ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); -+ if (all_memory == NULL) -+ return 0; -+ *arr = (char **)all_memory; -+ all_memory += sizeof (char *) * path_count; -+ -+ path_count = 0; -+ path_list_p = path_list; -+ char const * next_path_list_p = 0; -+ do -+ { -+ next_path_list_p = strchr (path_list_p, split_char); -+ if (next_path_list_p != NULL) -+ { -+ ++next_path_list_p; -+ } -+ size_t this_size = (next_path_list_p != NULL) -+ ? next_path_list_p - path_list_p - 1 -+ : &path_list[path_list_size] - path_list_p; -+ memcpy (all_memory, path_list_p, this_size); -+ all_memory[this_size] = '\0'; -+ (*arr)[path_count++] = all_memory; -+ all_memory += this_size + 1; -+ } while ((path_list_p = next_path_list_p) != NULL); -+ -+ return path_count; -+} -+ -+char * -+get_relocated_path_list(char const * from, char const * to_path_list) -+{ -+ char exe_path[MAX_PATH]; -+ char * temp; -+ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); -+ if ((temp = strrchr (exe_path, '/')) != NULL) -+ { -+ temp[1] = '\0'; -+ } -+ -+ char **arr = NULL; -+ /* Ask Alexey why he added this. Are we not 100% sure -+ that we're dealing with unix paths here? */ -+ char split_char = ':'; -+ if (strchr (to_path_list, ';')) -+ { -+ split_char = ';'; -+ } -+ size_t count = split_path_list (to_path_list, split_char, &arr); -+ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ -+ size_t exe_path_size = strlen (exe_path); -+ size_t i; -+ /* Space required is: -+ count * (exe_path_size + strlen (rel_to_datadir)) -+ rel_to_datadir upper bound is: -+ (count * strlen (from)) + (3 * num_slashes (from)) -+ + strlen(arr[i]) + 1. -+ .. pathalogically num_slashes (from) is strlen (from) -+ (from = ////////) */ -+ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; -+ for (i = 0; i < count; ++i) -+ { -+ space_required += strlen (arr[i]); -+ } -+ char * scratch = (char *) alloca (space_required); -+ if (scratch == NULL) -+ return NULL; -+ for (i = 0; i < count; ++i) -+ { -+ char * rel_to_datadir = get_relative_path (from, arr[i]); -+ scratch[0] = '\0'; -+ arr[i] = scratch; -+ strcat (scratch, exe_path); -+ strcat (scratch, rel_to_datadir); -+ simplify_path (arr[i]); -+ size_t arr_i_size = strlen (arr[i]); -+ result_size += arr_i_size; -+ scratch = arr[i] + arr_i_size + 1; -+ } -+ char * result = (char *) malloc (result_size); -+ if (result == NULL) -+ { -+ return NULL; -+ } -+ result[0] = '\0'; -+ for (i = 0; i < count; ++i) -+ { -+ strcat (result, arr[i]); -+ if (i != count-1) -+ { -+#if defined(_WIN32) -+ strcat (result, ";"); -+#else -+ strcat (result, ":"); -+#endif -+ } -+ } -+ free ((void*)arr); -+ return result; -+} -+ -+char * -+single_path_relocation(const char *from, const char *to) -+{ -+#if defined(__MINGW32__) -+ char exe_path[PATH_MAX]; -+ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); -+ if (strrchr (exe_path, '/') != NULL) -+ { -+ strrchr (exe_path, '/')[1] = '\0'; -+ } -+ char * rel_to_datadir = get_relative_path (from, to); -+ strcat (exe_path, rel_to_datadir); -+ simplify_path (&exe_path[0]); -+ return malloc_copy_string(exe_path); -+#else -+ return malloc_copy_string(to); -+#endif -+} -+ -+char * -+pathlist_relocation(const char *from_path, const char *to_path_list) -+{ -+#if defined(__MINGW32__) -+ static char stored_path[PATH_MAX]; -+ static int stored = 0; -+ if (stored == 0) -+ { -+ char const * relocated = get_relocated_path_list(from_path, to_path_list); -+ strncpy (stored_path, relocated, PATH_MAX); -+ stored_path[PATH_MAX-1] = '\0'; -+ free ((void *)relocated); -+ stored = 1; -+ } -+ return stored_path; -+#else -+ return (to_path_list); -+#endif -+} -diff -urN go.orig/src/cmd/dist/pathtools.h go/src/cmd/dist/pathtools.h ---- go.orig/src/cmd/dist/pathtools.h 1970-01-01 01:00:00.000000000 +0100 -+++ go/src/cmd/dist/pathtools.h 2015-01-14 21:54:12.092030900 +0000 -@@ -0,0 +1,53 @@ -+/* -+ .Some useful path tools. -+ .ASCII only for now. -+ .Written by Ray Donnelly in 2014. -+ .Licensed under CC0 (and anything. -+ .else you need to license it under). -+ .No warranties whatsoever. -+ .email: . -+ */ -+ -+#ifndef PATHTOOLS_H -+#define PATHTOOLS_H -+ -+#include -+#if defined(__APPLE__) -+#include -+#else -+#include -+#endif -+#include -+ -+char * malloc_copy_string(char const * original); -+ -+/* In-place replaces any '\' with '/' and any '//' with '/' */ -+void sanitise_path(char * path); -+ -+/* Uses a host OS specific function to determine the path of the executable, -+ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ -+int get_executable_path(char const * argv0, char * result, ssize_t max_size); -+ -+/* Where possible, in-place removes occourances of '.' and 'path/..' */ -+void simplify_path(char * path); -+ -+/* Allocates (via malloc) and returns the path to get from from to to. */ -+char * get_relative_path(char const * from, char const * to); -+ -+size_t split_path_list(char const * path_list, char split_char, char *** arr); -+ -+/* Advances path along by the amount that removes n prefix folders. */ -+char const * -+strip_n_prefix_folders(char const * path, size_t n); -+ -+/* NULL terminates path to remove n suffix folders. */ -+void -+strip_n_suffix_folders(char * path, size_t n); -+ -+char const * get_relocated_path (char const * from, char const * to, char const * actual_from); -+char * get_relocated_path_list(char const * from, char const * to_path_list); -+ -+char * single_path_relocation(const char *from, const char *to); -+char * pathlist_relocation(const char *from_path, const char *to_path_list); -+ -+#endif /* PATHTOOLS_H */ -diff -urN go.orig/src/make.bat go/src/make.bat ---- go.orig/src/make.bat 2015-01-14 21:47:40.689086100 +0000 -+++ go/src/make.bat 2015-01-14 21:54:03.409794400 +0000 -@@ -60,7 +60,7 @@ - echo cmd/dist - if not exist ..\bin\tool mkdir ..\bin\tool - :: Windows has no glob expansion, so spell out cmd/dist/*.c. --gcc -O2 -Wall -Werror -o cmd/dist/dist.exe -Icmd/dist %DEFGOROOT% cmd/dist/buf.c cmd/dist/build.c cmd/dist/buildgc.c cmd/dist/buildgo.c cmd/dist/buildruntime.c cmd/dist/main.c cmd/dist/windows.c cmd/dist/arm.c -+gcc -O2 -Wall -Werror -o cmd/dist/dist.exe -Icmd/dist %DEFGOROOT% cmd/dist/buf.c cmd/dist/build.c cmd/dist/buildgc.c cmd/dist/buildgo.c cmd/dist/buildruntime.c cmd/dist/main.c cmd/dist/windows.c cmd/dist/arm.c cmd/dist/pathtools.c - if errorlevel 1 goto fail - .\cmd\dist\dist env -wp >env.bat - if errorlevel 1 goto fail From 02823800fb343c2dab3efdb7abb986614e63bfa3 Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Sun, 13 Sep 2015 19:22:03 +0300 Subject: [PATCH 1571/2060] Fixed the quotes in source URL, used doxygen --- mingw-w64-glbinding/PKGBUILD | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mingw-w64-glbinding/PKGBUILD b/mingw-w64-glbinding/PKGBUILD index 5afdea436a..986b951dfc 100644 --- a/mingw-w64-glbinding/PKGBUILD +++ b/mingw-w64-glbinding/PKGBUILD @@ -5,7 +5,7 @@ _realname=glbinding pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.0 -pkgrel=1 +pkgrel=2 arch=('any') url='https://github.com/cginternals/glbinding' pkgdesc='A C++ binding for the OpenGL API, generated using the gl.xml specification (mingw-w64)' @@ -17,7 +17,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python2") license=('MIT') options=('strip' 'staticlibs' 'docs') -source=(${_realname}-${pkgver}.tar.gz::'https://github.com/cginternals/glbinding/archive/v${pkgver}.tar.gz' + +source=(${_realname}-${pkgver}.tar.gz::"https://github.com/cginternals/glbinding/archive/v${pkgver}.tar.gz" 'werror-conversion.patch' 'mingw-unix-layout.patch') md5sums=('fe6517dc1aa5f81d56ee060073da0f44' @@ -71,11 +72,13 @@ build() { -DCMAKE_CXX_COMPILER=${MINGW_CHOST}-g++ \ -DOPTION_BUILD_EXAMPLES=OFF \ -DOPTION_BUILD_TESTS=OFF \ - -DOPTION_BUILD_TOOLS=ON \ + -DOPTION_BUILD_TOOLS=OFF \ -DOPTION_BUILD_STATIC=OFF \ ../${_realname}-${pkgver} make + # Build the docs once + make docs } package () { @@ -84,4 +87,5 @@ package () { cd "${srcdir}/shared-${MINGW_CHOST}" make DESTDIR=${pkgdir} install + make DESTDIR=${pkgdir} docs-doxygen } From ba1a77085e08154953c41449fd3a6a2f01d5f94a Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Sun, 13 Sep 2015 19:48:16 +0300 Subject: [PATCH 1572/2060] Install the html documentation --- mingw-w64-glbinding/PKGBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-glbinding/PKGBUILD b/mingw-w64-glbinding/PKGBUILD index 986b951dfc..d36a1afda4 100644 --- a/mingw-w64-glbinding/PKGBUILD +++ b/mingw-w64-glbinding/PKGBUILD @@ -87,5 +87,7 @@ package () { cd "${srcdir}/shared-${MINGW_CHOST}" make DESTDIR=${pkgdir} install - make DESTDIR=${pkgdir} docs-doxygen + + mkdir -p ${pkgdir}/usr/share/doc/${_realname}/ + cp -R docs/doxygen/html ${pkgdir}/usr/share/doc/${_realname}/ } From 88ca689ca8917f83f450783e334755b84807bb8b Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Sun, 13 Sep 2015 19:50:12 +0300 Subject: [PATCH 1573/2060] Require less depenencies, we are not building tools or examples --- mingw-w64-glbinding/PKGBUILD | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mingw-w64-glbinding/PKGBUILD b/mingw-w64-glbinding/PKGBUILD index d36a1afda4..37f1b522c0 100644 --- a/mingw-w64-glbinding/PKGBUILD +++ b/mingw-w64-glbinding/PKGBUILD @@ -12,9 +12,7 @@ pkgdesc='A C++ binding for the OpenGL API, generated using the gl.xml specificat depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-doxygen" - "${MINGW_PACKAGE_PREFIX}-glfw" - "${MINGW_PACKAGE_PREFIX}-python2") + "${MINGW_PACKAGE_PREFIX}-doxygen") license=('MIT') options=('strip' 'staticlibs' 'docs') From e03d329b9770582eae9c995d363135b400eca983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20A=C3=9Fhauer?= Date: Sun, 13 Sep 2015 20:38:04 +0200 Subject: [PATCH 1574/2060] Add the Antiword Package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Antiword is a free MS Word reader for Linux and RISC OS. There are ports to FreeBSD, BeOS, OS/2, Mac OS X, Amiga, VMS, NetWare, Plan9, EPOC, Zaurus PDA, MorphOS, Tru64/OSF, Minix, Solaris and DOS. Antiword converts the binary files from Word 2, 6, 7, 97, 2000, 2002 and 2003 to plain text and to PostScript. It simplifies comparison between two Word documents Signed-off-by: Matthias Aßhauer --- mingw-w64-antiword/PKGBUILD | 61 +++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 mingw-w64-antiword/PKGBUILD diff --git a/mingw-w64-antiword/PKGBUILD b/mingw-w64-antiword/PKGBUILD new file mode 100644 index 0000000000..e76e2bbf70 --- /dev/null +++ b/mingw-w64-antiword/PKGBUILD @@ -0,0 +1,61 @@ +# Maintainer: Matthias Aßhauer + +_realname=antiword +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=0.37 +pkgrel=1 +pkgdesc="Convert MS Word 2.0-2003 documents to plain text or PostScript. (mingw-w64)" +arch=('any') +license=('GPL3+') +url="http://www.winfield.demon.nl/" +options=('strip') +source=("http://www.winfield.demon.nl/linux/${_realname}-${pkgver}.tar.gz") +md5sums=('F868E2A269EDCBC06BF77E89A55898D1') +provides=("${_realname}") +noextract=("${_realname}-${pkgver}.tar.gz") + +prepare(){ + tar xzf "${_realname}-${pkgver}.tar.gz" || tar xzf "${_realname}-${pkgver}.tar.gz" +} + +build() { + cd "${srcdir}/${_realname}-${pkgver}" + make -f Makefile.Linux ${_realname} +} + +package() { + cd "${srcdir}/${_realname}-${pkgver}" + install -D -m755 ${_realname}.exe ${pkgdir}${MINGW_PREFIX}/bin/${_realname}.exe + install -D -m755 Resources/8859-1.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-1.txt + install -D -m755 Resources/8859-2.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-2.txt + install -D -m755 Resources/8859-3.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-3.txt + install -D -m755 Resources/8859-4.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-4.txt + install -D -m755 Resources/8859-5.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-5.txt + install -D -m755 Resources/8859-6.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-6.txt + install -D -m755 Resources/8859-7.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-7.txt + install -D -m755 Resources/8859-8.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-8.txt + install -D -m755 Resources/8859-9.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-9.txt + install -D -m755 Resources/8859-10.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-10.txt + install -D -m755 Resources/8859-11.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-11.txt + install -D -m755 Resources/8859-13.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-13.txt + install -D -m755 Resources/8859-14.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-14.txt + install -D -m755 Resources/8859-15.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-15.txt + install -D -m755 Resources/8859-16.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-16.txt + install -D -m755 Resources/cp437.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp437.txt + install -D -m755 Resources/cp850.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp850.txt + install -D -m755 Resources/cp852.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp852.txt + install -D -m755 Resources/cp862.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp862.txt + install -D -m755 Resources/cp864.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp864.txt + install -D -m755 Resources/cp866.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp866.txt + install -D -m755 Resources/cp1250.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp1250.txt + install -D -m755 Resources/cp1251.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp1251.txt + install -D -m755 Resources/cp1252.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp1252.txt + install -D -m755 Resources/koi8-r.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/koi8-r.txt + install -D -m755 Resources/koi8-u.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/koi8-u.txt + install -D -m755 Resources/MacCyrillic.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/MacCyrillic.txt + install -D -m755 Resources/MacRoman.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/MacRoman.txt + install -D -m755 Resources/roman.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/roman.txt + install -D -m755 Resources/UTF-8.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/UTF-8.txt + install -D -m755 Resources/fontnames ${pkgdir}${MINGW_PREFIX}/share/${_realname}/fontnames +} From df0274855f1eaff107bcc06ac0dd6df2866bf855 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 14 Sep 2015 08:53:36 +0300 Subject: [PATCH 1575/2060] antiword: Fix PKGBUILD. --- mingw-w64-antiword/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-antiword/PKGBUILD b/mingw-w64-antiword/PKGBUILD index e76e2bbf70..3219971d27 100644 --- a/mingw-w64-antiword/PKGBUILD +++ b/mingw-w64-antiword/PKGBUILD @@ -5,18 +5,18 @@ pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.37 pkgrel=1 -pkgdesc="Convert MS Word 2.0-2003 documents to plain text or PostScript. (mingw-w64)" +pkgdesc="Convert MS Word 2.0-2003 documents to plain text or PostScript (mingw-w64)" arch=('any') license=('GPL3+') url="http://www.winfield.demon.nl/" options=('strip') source=("http://www.winfield.demon.nl/linux/${_realname}-${pkgver}.tar.gz") -md5sums=('F868E2A269EDCBC06BF77E89A55898D1') +md5sums=('f868e2a269edcbc06bf77e89a55898d1') provides=("${_realname}") noextract=("${_realname}-${pkgver}.tar.gz") prepare(){ - tar xzf "${_realname}-${pkgver}.tar.gz" || tar xzf "${_realname}-${pkgver}.tar.gz" + tar xzf "${_realname}-${pkgver}.tar.gz" || tar xzf "${_realname}-${pkgver}.tar.gz" } build() { From 9c92d9e9b6130dc1dc4033ad25c16d947729afca Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 14 Sep 2015 09:00:09 +0300 Subject: [PATCH 1576/2060] glbinding: Fix docs install location --- mingw-w64-glbinding/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-glbinding/PKGBUILD b/mingw-w64-glbinding/PKGBUILD index 37f1b522c0..01fd66b110 100644 --- a/mingw-w64-glbinding/PKGBUILD +++ b/mingw-w64-glbinding/PKGBUILD @@ -8,11 +8,11 @@ pkgver=1.1.0 pkgrel=2 arch=('any') url='https://github.com/cginternals/glbinding' -pkgdesc='A C++ binding for the OpenGL API, generated using the gl.xml specification (mingw-w64)' +pkgdesc="A C++ binding for the OpenGL API, generated using the gl.xml specification (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-doxygen") + "${MINGW_PACKAGE_PREFIX}-doxygen") license=('MIT') options=('strip' 'staticlibs' 'docs') @@ -86,6 +86,6 @@ package () { cd "${srcdir}/shared-${MINGW_CHOST}" make DESTDIR=${pkgdir} install - mkdir -p ${pkgdir}/usr/share/doc/${_realname}/ - cp -R docs/doxygen/html ${pkgdir}/usr/share/doc/${_realname}/ + mkdir -p ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/ + cp -R docs/doxygen/html ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/ } From 09927184ba9f731336bf473433681798395df6f6 Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Sun, 13 Sep 2015 21:38:33 +0300 Subject: [PATCH 1577/2060] Add the mbedtls package. mbed TLS is an open source and commercial SSL library licensed by ARM Limited. --- mingw-w64-mbedtls/PKGBUILD | 72 ++++++++++++++++++++++++++++ mingw-w64-mbedtls/symlink-test.patch | 11 +++++ 2 files changed, 83 insertions(+) create mode 100644 mingw-w64-mbedtls/PKGBUILD create mode 100644 mingw-w64-mbedtls/symlink-test.patch diff --git a/mingw-w64-mbedtls/PKGBUILD b/mingw-w64-mbedtls/PKGBUILD new file mode 100644 index 0000000000..e18a1cc659 --- /dev/null +++ b/mingw-w64-mbedtls/PKGBUILD @@ -0,0 +1,72 @@ +# Maintainer: Nazar Mishturak + +_realname=mbedtls +pkgbase="mingw-w64-${_realname}" +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.1.0 +pkgrel=1 +arch=('any') +url='https://tls.mbed.org/' +pkgdesc='mbed TLS is an open source and commercial SSL library licensed by ARM Limited. (mingw-w64)' +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-zlib") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-doxygen") +checkdepends=("${MINGW_PACKAGE_PREFIX}-perl") +license=('Apache License 2.0') +options=('strip' 'staticlibs' 'docs') +source=(${_realname}-${pkgver}.tar.gz::"https://tls.mbed.org/download/mbedtls-${pkgver}-apache.tgz" + 'symlink-test.patch') +sha1sums=('13fcb4858145e972f8abaedf029ceb5c8461408e' + '72e420d5676007a168a82210dba960bea4e29190') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i "${srcdir}/symlink-test.patch" +} + +build() { + cd "${srcdir}/${_realname}-${pkgver}" + + local BUILD_TYPE="Release" + if check_option "debug" "y"; then + BUILD_TYPE="Debug" + fi + + # Build static libs + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_C_COMPILER=${MINGW_CHOST}-gcc \ + -DENABLE_TESTING=ON \ + -DENABLE_PROGRAMS=OFF \ + -DENABLE_ZLIB_SUPPORT=ON \ + -DUSE_SHARED_MBEDTLS_LIBRARY=ON \ + -DUSE_STATIC_MBEDTLS_LIBRARY=ON \ + ../${_realname}-${pkgver} + make + # Generate the documentation + make apidoc +} + +check() { + cd "${srcdir}/build-${MINGW_CHOST}" + cp -p library/*.dll tests/ # Tests are dynamically linked + make test +} + +package () { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install + # Install the documentation + cd "${srcdir}/${_realname}-${pkgver}" + mkdir -p "${pkgdir}/usr/share/doc/${_realname}" + cp -Rp apidoc "${pkgdir}/usr/share/doc/${_realname}/html" +} diff --git a/mingw-w64-mbedtls/symlink-test.patch b/mingw-w64-mbedtls/symlink-test.patch new file mode 100644 index 0000000000..9c85a5d978 --- /dev/null +++ b/mingw-w64-mbedtls/symlink-test.patch @@ -0,0 +1,11 @@ +--- mbedtls-2.1.0/tests/CMakeLists.txt.orig 2015-09-04 15:38:26.000000000 +0300 ++++ mbedtls-2.1.0/tests/CMakeLists.txt 2015-09-13 21:45:47.677244800 +0300 +@@ -101,7 +101,7 @@ + file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/data_files" target) + + if (NOT EXISTS ${link}) +- if (CMAKE_HOST_UNIX) ++ if (CMAKE_HOST_UNIX OR MSYS) + set(command ln -s ${target} ${link}) + else() + set(command cmd.exe /c mklink /d ${link} ${target}) From aad2072b63a8b9152c6a4470c139dbfcb7479484 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 14 Sep 2015 10:12:59 +0300 Subject: [PATCH 1578/2060] gnutls: Update to 3.4.5 --- mingw-w64-gnutls/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index 1fdced3f38..23de2c76e7 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -3,7 +3,7 @@ _realname=gnutls pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.4.4.1 +pkgver=3.4.5 pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') @@ -22,9 +22,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") # Need remove "autogen" package before building. -source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*.*}/${_realname}-${pkgver}.tar.xz{,.sig} +source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*}/${_realname}-${pkgver}.tar.xz{,.sig} 0001-add-missing-define.patch) -md5sums=('474efaba6fd6c6c6c0ebac2a3f431946' +md5sums=('f5dae0e0ecda28aab12386e6c0705d4c' 'SKIP' '807a79513358a9f4123f62111f1eed59') validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F') From 2bf9e4cec9bfa370b632e6476c23371a31bc6aae Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 14 Sep 2015 10:13:14 +0300 Subject: [PATCH 1579/2060] libtiff: Update to 4.0.6 --- mingw-w64-libtiff/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libtiff/PKGBUILD b/mingw-w64-libtiff/PKGBUILD index 3fda877044..20f70a06dd 100644 --- a/mingw-w64-libtiff/PKGBUILD +++ b/mingw-w64-libtiff/PKGBUILD @@ -4,7 +4,7 @@ _realname=libtiff pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.0.5 +pkgver=4.0.6 pkgrel=1 pkgdesc="Library for manipulation of TIFF images (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') source=("ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz") -md5sums=('523a76b4a3b24a0287dcfae82580ed2c') +md5sums=('d1d2e940dea0b5ad435f21f03d96dd72') prepare() { cd tiff-${pkgver} From b5588b59567587371eee5caf34310c78691f6a9a Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Mon, 14 Sep 2015 10:49:25 +0300 Subject: [PATCH 1580/2060] mbedtls: Fix location of libraries and docs .dll files were incorrectly installed into lib, now they live under /mingw{32,64}/bin Documentation was under /usr/share/doc/${_realname}, now its under /mingw{32,64}/share/doc/${_realname} --- mingw-w64-mbedtls/PKGBUILD | 12 ++++++++---- mingw-w64-mbedtls/dll-location.patch | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-mbedtls/dll-location.patch diff --git a/mingw-w64-mbedtls/PKGBUILD b/mingw-w64-mbedtls/PKGBUILD index e18a1cc659..bdf2fb8d67 100644 --- a/mingw-w64-mbedtls/PKGBUILD +++ b/mingw-w64-mbedtls/PKGBUILD @@ -17,13 +17,16 @@ checkdepends=("${MINGW_PACKAGE_PREFIX}-perl") license=('Apache License 2.0') options=('strip' 'staticlibs' 'docs') source=(${_realname}-${pkgver}.tar.gz::"https://tls.mbed.org/download/mbedtls-${pkgver}-apache.tgz" - 'symlink-test.patch') + 'symlink-test.patch' + 'dll-location.patch') sha1sums=('13fcb4858145e972f8abaedf029ceb5c8461408e' - '72e420d5676007a168a82210dba960bea4e29190') + '72e420d5676007a168a82210dba960bea4e29190' + 'e905d99cacf3b3d91872e8736ff03ef950b32a34') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i "${srcdir}/symlink-test.patch" + patch -p1 -i "${srcdir}/dll-location.patch" } build() { @@ -65,8 +68,9 @@ check() { package () { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR=${pkgdir} install + # Install the documentation cd "${srcdir}/${_realname}-${pkgver}" - mkdir -p "${pkgdir}/usr/share/doc/${_realname}" - cp -Rp apidoc "${pkgdir}/usr/share/doc/${_realname}/html" + mkdir -p "${pkgdir}/${MINGW_PREFIX}/share/doc/${_realname}" + cp -Rp apidoc "${pkgdir}/${MINGW_PREFIX}/share/doc/${_realname}/html" } diff --git a/mingw-w64-mbedtls/dll-location.patch b/mingw-w64-mbedtls/dll-location.patch new file mode 100644 index 0000000000..33765c6fae --- /dev/null +++ b/mingw-w64-mbedtls/dll-location.patch @@ -0,0 +1,24 @@ +--- mbedtls-2.1.0/library/CMakeLists.txt.orig 2015-09-04 15:38:26.000000000 +0300 ++++ mbedtls-2.1.0/library/CMakeLists.txt 2015-09-14 17:32:04.783122700 +0300 +@@ -132,7 +132,9 @@ + target_link_libraries(${mbedtls_static_target} ${libs} ${mbedx509_static_target}) + + install(TARGETS ${mbedtls_static_target} ${mbedx509_static_target} ${mbedcrypto_static_target} +- DESTINATION ${LIB_INSTALL_DIR} ++ RUNTIME DESTINATION "bin" ++ LIBRARY DESTINATION "lib" ++ ARCHIVE DESTINATION "lib" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif(USE_STATIC_MBEDTLS_LIBRARY) + +@@ -150,7 +152,9 @@ + target_link_libraries(mbedtls ${libs} mbedx509) + + install(TARGETS mbedtls mbedx509 mbedcrypto +- DESTINATION ${LIB_INSTALL_DIR} ++ RUNTIME DESTINATION "bin" ++ LIBRARY DESTINATION "lib" ++ ARCHIVE DESTINATION "lib" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif(USE_SHARED_MBEDTLS_LIBRARY) + From b8d5ebf6bcefb3e823b560e053a0380449a61c49 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 15 Sep 2015 13:52:28 +0300 Subject: [PATCH 1581/2060] gettext: Update to 0.19.6 --- mingw-w64-gettext/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index 964007f31f..29e6e30c11 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Renato Silva _realname=gettext +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.19.5.1 -pkgrel=2 +pkgver=0.19.6 +pkgrel=1 arch=('any') pkgdesc="GNU internationalization library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" @@ -27,7 +28,7 @@ source=("http://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-${pkgver}.tar.gz"{ 07-fix-asprintf-conflict.mingw.patch 08-vs-compatible.patch 121-keep-posix-path.patch) -md5sums=('2b2ab90f6405a414bbe30cf6655f3e28' +md5sums=('6d1447f8c5c45c329371ef4bfe7d79a5' 'SKIP' '397d7d6d4abd15a70edb3c9f2bab4cd2' '6fc5459e5afa3f9df7602fcd1d09355b' From 53d2706c6b45d167885fc6ddc946c6fa93150bcf Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 15 Sep 2015 13:52:44 +0300 Subject: [PATCH 1582/2060] libtasn1: Update to 4.7 --- mingw-w64-libtasn1/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libtasn1/PKGBUILD b/mingw-w64-libtasn1/PKGBUILD index 6e884e5a04..e2984fc065 100644 --- a/mingw-w64-libtasn1/PKGBUILD +++ b/mingw-w64-libtasn1/PKGBUILD @@ -3,7 +3,7 @@ _realname=libtasn1 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.6 +pkgver=4.7 pkgrel=1 pkgdesc="A library for Abstract Syntax Notation One (ASN.1) and Distinguish Encoding Rules (DER) manipulation (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://ftp.gnu.org/gnu/libtasn1/${_realname}-${pkgver}.tar.gz"{,.sig}) -md5sums=('454a7f80362f38bd2335b6e9d95f57a6' +md5sums=('12d10ca4ae0a3b95f7aa06a076da39ec' 'SKIP') prepare() { From 19cc29d8ab3c0e6ad5d7d419d78bfbd07e48e0e5 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 15 Sep 2015 13:53:01 +0300 Subject: [PATCH 1583/2060] pango: Update to 1.37.5 --- mingw-w64-pango/0001-no-unconditional-xft-please.all.patch | 2 +- mingw-w64-pango/PKGBUILD | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-pango/0001-no-unconditional-xft-please.all.patch b/mingw-w64-pango/0001-no-unconditional-xft-please.all.patch index 0805faa939..9c6b81da83 100644 --- a/mingw-w64-pango/0001-no-unconditional-xft-please.all.patch +++ b/mingw-w64-pango/0001-no-unconditional-xft-please.all.patch @@ -107,9 +107,9 @@ # # Checks for Win32 GDI @@ -935,6 +944,7 @@ - build/win32/vs10/Makefile build/win32/vs11/Makefile build/win32/vs12/Makefile + build/win32/vs14/Makefile +docs/pango.types pango.pc pangowin32.pc diff --git a/mingw-w64-pango/PKGBUILD b/mingw-w64-pango/PKGBUILD index d56c0dcf2a..b581a671e5 100644 --- a/mingw-w64-pango/PKGBUILD +++ b/mingw-w64-pango/PKGBUILD @@ -4,7 +4,7 @@ _realname=pango pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.37.4 +pkgver=1.37.5 pkgrel=1 pkgdesc="A library for layout and rendering of text (mingw-w64)" arch=('any') @@ -31,8 +31,8 @@ options=('staticlibs' 'strip' 'emptydirs') source=("http://ftp.gnome.org/pub/gnome/sources/pango/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz" 0001-no-unconditional-xft-please.all.patch 0002-msvc-is-impotent-but-not.mingw.patch) -sha256sums=('ae2446f1c23c81d78e935054a37530336818c214f54bed2351bdd4ad0acebcbe' - 'a673ce807b29abe4b0fedf5b17e154986d675cec3e001c4235067b01515c2e4d' +sha256sums=('ebd7cf2b93cf9a8161c7ab883889917b1650c70f989e3188b8eab00eedd83ac4' + 'eccc044bbd156b252f5a13f7894c3a6cd1efc6ea80eaee57a5865895b192616d' '240d21474157c0deabc2660593ac0414565ddf30c304b08b74a09072c910b34d') prepare() { From 48da7eda5b89f1f42fa858610d63502d525c4672 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 15 Sep 2015 13:53:12 +0300 Subject: [PATCH 1584/2060] scite: Update to 3.6.1 --- mingw-w64-scite/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index 1c576163b9..6606e86626 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -4,8 +4,8 @@ _realname=scite pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") -pkgver=3.6.0 -pkgrel=2 +pkgver=3.6.1 +pkgrel=1 arch=('any') url='http://www.scintilla.org/SciTE.html' license=('custom:scite') @@ -16,7 +16,7 @@ source=("http://downloads.sourceforge.net/scintilla/${_realname}${pkgver//./}.tg "0001-Use-POSIX-tools-in-makefiles.patch" "0002-Prefix-library-names.patch" "0003-Use-FHS.patch") -md5sums=('7b4687a6c8f502dde39107fd85770602' +md5sums=('a85e50f03312bd61ed4c450deb1f03bc' 'd4bd88fa3e173d26d9cacaef12b1d6f9' '2a9ec192f43f82d4b26b4a6667de350a' '17011da4ced7269d787433b599a1ae92') From d16a69652667ff344d928315939544ab5475e429 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 15 Sep 2015 13:53:28 +0300 Subject: [PATCH 1585/2060] dcadec-git: Fix conflicts --- mingw-w64-dcadec-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-dcadec-git/PKGBUILD b/mingw-w64-dcadec-git/PKGBUILD index c58d03261e..2323a691dc 100644 --- a/mingw-w64-dcadec-git/PKGBUILD +++ b/mingw-w64-dcadec-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=dcadec pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -conflicts=("${MINGW_PACKAGE_PREFIX}-libdca") +conflicts=("${MINGW_PACKAGE_PREFIX}-libdca" "${MINGW_PACKAGE_PREFIX}-libdca-svn") pkgdesc='dcadec is a free DTS Coherent Acoustics decoder with support for HD extensions (mingw-w64)' pkgver=0.0.0.207.2a9186e pkgrel=3 From 262196808193c6e9abe406ad4a72a800a44ef638 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 15 Sep 2015 14:56:34 +0300 Subject: [PATCH 1586/2060] mingw-w64-headers: Update to 5.0.0.4574.ce1ad45. Add missing part of D3D11 patch removed in previous version. --- .../0006-Add-d3d11-video-context.patch | 373 ++++++++++++++++++ mingw-w64-headers-git/PKGBUILD | 9 +- 2 files changed, 379 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-headers-git/0006-Add-d3d11-video-context.patch diff --git a/mingw-w64-headers-git/0006-Add-d3d11-video-context.patch b/mingw-w64-headers-git/0006-Add-d3d11-video-context.patch new file mode 100644 index 0000000000..0220cac589 --- /dev/null +++ b/mingw-w64-headers-git/0006-Add-d3d11-video-context.patch @@ -0,0 +1,373 @@ +From b952e857814e5cfe766626573e2f056ed91ceb09 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sun, 14 Jun 2015 21:07:03 +0100 +Subject: [PATCH 6/6] Add d3d11 video context + +--- + mingw-w64-headers/direct-x/include/d3d11.h | 259 +++++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/d3d11.idl | 66 ++++++ + 2 files changed, 325 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h +index e49fd99..834a536 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.h ++++ b/mingw-w64-headers/direct-x/include/d3d11.h +@@ -1366,6 +1366,38 @@ + USHORT ConfigMinRenderTargetBuffCount; + USHORT ConfigDecoderSpecific; + } D3D11_VIDEO_DECODER_CONFIG; ++typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE { ++ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, ++ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, ++ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, ++ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, ++ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, ++ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, ++ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, ++ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, ++ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8 ++} D3D11_VIDEO_DECODER_BUFFER_TYPE; ++typedef struct D3D11_ENCRYPTED_BLOCK_INFO { ++ UINT NumEncryptedBytesAtBeginning; ++ UINT NumBytesInSkipPattern; ++ UINT NumBytesInEncryptPattern; ++} D3D11_ENCRYPTED_BLOCK_INFO; ++typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC { ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; ++ UINT BufferIndex; ++ UINT DataOffset; ++ UINT DataSize; ++ UINT FirstMBaddress; ++ UINT NumMBsInBuffer; ++ UINT Width; ++ UINT Height; ++ UINT Stride; ++ UINT ReservedBits; ++ void *pIV; ++ UINT IVSize; ++ WINBOOL PartialEncryption; ++ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; ++} D3D11_VIDEO_DECODER_BUFFER_DESC; + typedef enum D3D11_VIDEO_FRAME_FORMAT { + D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE = 0, + D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1, +@@ -8514,6 +8514,233 @@ + DWORD* pdwStubPhase); + + #endif /* __ID3D11VideoDecoder_INTERFACE_DEFINED__ */ ++ ++/***************************************************************************** ++ * ID3D11VideoContext interface ++ */ ++#ifndef __ID3D11VideoContext_INTERFACE_DEFINED__ ++#define __ID3D11VideoContext_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("61f21c45-3c0e-4a74-9cea-67100d9ad5e4") ++ID3D11VideoContext : public ID3D11DeviceChild ++{ ++ virtual HRESULT STDMETHODCALLTYPE GetDecoderBuffer( ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE ReleaseDecoderBuffer( ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame( ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE DecoderEndFrame( ++ ID3D11VideoDecoder *pDecoder) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers( ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4) ++#endif ++#else ++typedef struct ID3D11VideoContextVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11VideoContext* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11VideoContext* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11VideoContext* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11VideoContext* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ /*** ID3D11VideoContext methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer); ++ ++ HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++ ++ HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey); ++ ++ HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder); ++ ++ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++ ++ END_INTERFACE ++} ID3D11VideoContextVtbl; ++interface ID3D11VideoContext { ++ CONST_VTBL ID3D11VideoContextVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11VideoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11VideoContext_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11VideoContext_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11VideoContext_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11VideoContext_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11VideoContext_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11VideoContext_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++/*** ID3D11VideoContext methods ***/ ++#define ID3D11VideoContext_GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) (This)->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) ++#define ID3D11VideoContext_ReleaseDecoderBuffer(This,pDecoder,BufferType) (This)->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType) ++#define ID3D11VideoContext_DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) (This)->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) ++#define ID3D11VideoContext_DecoderEndFrame(This,pDecoder) (This)->lpVtbl->DecoderEndFrame(This,pDecoder) ++#define ID3D11VideoContext_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) (This)->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoContext_QueryInterface(ID3D11VideoContext* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11VideoContext_AddRef(ID3D11VideoContext* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11VideoContext_Release(ID3D11VideoContext* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11VideoContext_GetDevice(ID3D11VideoContext* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_GetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateDataInterface(ID3D11VideoContext* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++/*** ID3D11VideoContext methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoContext_GetDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType,UINT *pBufferSize,void **ppBuffer) { ++ return This->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_ReleaseDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) { ++ return This->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_DecoderBeginFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,ID3D11VideoDecoderOutputView *pVideoDecoderOutputView,UINT ContentKeySize,const void *pContentKey) { ++ return This->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_DecoderEndFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder) { ++ return This->lpVtbl->DecoderEndFrame(This,pDecoder); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SubmitDecoderBuffers(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,UINT NumBuffers,const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) { ++ return This->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_GetDecoderBuffer_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer); ++void __RPC_STUB ID3D11VideoContext_GetDecoderBuffer_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_ReleaseDecoderBuffer_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++void __RPC_STUB ID3D11VideoContext_ReleaseDecoderBuffer_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderBeginFrame_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey); ++void __RPC_STUB ID3D11VideoContext_DecoderBeginFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderEndFrame_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder); ++void __RPC_STUB ID3D11VideoContext_DecoderEndFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_SubmitDecoderBuffers_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++void __RPC_STUB ID3D11VideoContext_SubmitDecoderBuffers_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11VideoContext_INTERFACE_DEFINED__ */ + + /***************************************************************************** + * ID3D11VideoProcessorEnumerator interface +diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl +index 59beafb..cfae7c8 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.idl ++++ b/mingw-w64-headers/direct-x/include/d3d11.idl +@@ -1246,6 +1246,44 @@ + USHORT ConfigMinRenderTargetBuffCount; + USHORT ConfigDecoderSpecific; + } D3D11_VIDEO_DECODER_CONFIG; ++ ++typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE ++{ ++ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, ++ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE, ++ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX, ++ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM, ++ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR, ++ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN ++} D3D11_VIDEO_DECODER_BUFFER_TYPE; ++ ++typedef struct D3D11_ENCRYPTED_BLOCK_INFO ++{ ++ UINT NumEncryptedBytesAtBeginning; ++ UINT NumBytesInSkipPattern; ++ UINT NumBytesInEncryptPattern; ++} D3D11_ENCRYPTED_BLOCK_INFO; ++ ++typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC ++{ ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; ++ UINT BufferIndex; ++ UINT DataOffset; ++ UINT DataSize; ++ UINT FirstMBaddress; ++ UINT NumMBsInBuffer; ++ UINT Width; ++ UINT Height; ++ UINT Stride; ++ UINT ReservedBits; ++ void *pIV; ++ UINT IVSize; ++ BOOL PartialEncryption; ++ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; ++} D3D11_VIDEO_DECODER_BUFFER_DESC; + + typedef enum D3D11_VIDEO_FRAME_FORMAT + { +@@ -2286,6 +2286,34 @@ + D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc); + } + ++[ ++ object, ++ local, ++ uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4) ++] ++interface ID3D11VideoContext : ID3D11DeviceChild ++{ ++ HRESULT GetDecoderBuffer( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ [out] UINT *pBufferSize, ++ [out] void **ppBuffer); ++ HRESULT ReleaseDecoderBuffer( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++ HRESULT DecoderBeginFrame( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ [in] UINT ContentKeySize, ++ [in] const void *pContentKey); ++ HRESULT DecoderEndFrame( ++ [in] ID3D11VideoDecoder *pDecoder); ++ HRESULT SubmitDecoderBuffers( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] UINT NumBuffers, ++ [in] const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++} ++ + [ + object, + uuid(10ec4d5b-975a-4689-b9e4-d0aac30fe333), +-- +2.4.5 diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 530faf345d..9b2283d517 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4573.628fdbf +pkgver=5.0.0.4574.ce1ad45 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" @@ -18,11 +18,13 @@ options=('!strip' '!libtool' '!emptydirs') source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" - "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch") + "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" + "0006-Add-d3d11-video-context.patch") md5sums=('SKIP' 'ada92acb4a3939bcede26298adc0a5d0' 'b664667ec276614e62e4ea289c79c4b1' - '79bb56620aaef710ef1d73415dc5bc13') + '79bb56620aaef710ef1d73415dc5bc13' + 'd15f5386134af655d049d07f5e74a7b3') pkgver() { cd "${srcdir}/mingw-w64" @@ -38,6 +40,7 @@ prepare() { git am "${srcdir}/"0002-dxgi-Add-interface-for-IDXGISurface1.patch git am "${srcdir}/"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch git am "${srcdir}/"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch + git am "${srcdir}/"0006-Add-d3d11-video-context.patch cd ${srcdir}/mingw-w64/mingw-w64-headers touch include/windows.*.h include/wincrypt.h include/prsht.h From ab6e7f4b0d12b6b7307a17b0a8eee3b38f8d56e9 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 15 Sep 2015 14:56:47 +0300 Subject: [PATCH 1587/2060] ffmpeg: Rebuild. --- mingw-w64-ffmpeg/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 6b994c92db..233344b326 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -4,7 +4,7 @@ _realname=ffmpeg pkgbase="mingw-w64-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.8 -pkgrel=1 +pkgrel=2 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" From aa2ab623db8a94f32166b59e2e08c845583f6791 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 15 Sep 2015 15:04:13 +0300 Subject: [PATCH 1588/2060] armadillo: Update to 5.600.2 --- mingw-w64-armadillo/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index 878655c625..1851ad055e 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -3,7 +3,7 @@ _realname=armadillo pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.500.2 +pkgver=5.600.2 pkgrel=1 pkgdesc="C++ linear algebra library (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" install=${_realname}-${CARCH}.install source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz 0001-mingw-config-fix.patch) -md5sums=('c773bea0f335e12f36ea745d63e0e33f' +md5sums=('87699237ecb8e4a279f74a2c4a9ab090' '5ce663ba53e15ee85fcd7a0b01006672') prepare() { From 190d802c6d64afbce4d34ba54442314a906eba56 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 16 Sep 2015 09:06:16 +0300 Subject: [PATCH 1589/2060] dcadec-git: Fix conflict with libdca --- mingw-w64-dcadec-git/PKGBUILD | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-dcadec-git/PKGBUILD b/mingw-w64-dcadec-git/PKGBUILD index 2323a691dc..8fe5815d63 100644 --- a/mingw-w64-dcadec-git/PKGBUILD +++ b/mingw-w64-dcadec-git/PKGBUILD @@ -3,10 +3,9 @@ _realname=dcadec pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -conflicts=("${MINGW_PACKAGE_PREFIX}-libdca" "${MINGW_PACKAGE_PREFIX}-libdca-svn") pkgdesc='dcadec is a free DTS Coherent Acoustics decoder with support for HD extensions (mingw-w64)' pkgver=0.0.0.207.2a9186e -pkgrel=3 +pkgrel=4 arch=('any') url='https://github.com/foo86/dcadec.git' license=('LGPL') @@ -93,4 +92,7 @@ package() { # Install LICENSE file. cd "${srcdir}"/${_realname} install -Dm644 COPYING.LGPLv2.1 "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + + # Rename dcadec executable to not conflict with libdca + mv ${pkgdir}${MINGW_PREFIX}/bin/dcadec{,0}.exe } From 08f4e8f0daecfa57988ab58ac0aa72e9a5fff83c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 16 Sep 2015 09:17:46 +0300 Subject: [PATCH 1590/2060] go: Fix build dependencies. --- mingw-w64-go/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-go/PKGBUILD b/mingw-w64-go/PKGBUILD index f20d6bffdf..9824290c39 100644 --- a/mingw-w64-go/PKGBUILD +++ b/mingw-w64-go/PKGBUILD @@ -10,6 +10,7 @@ license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") url="http://www.golang.org/" depends=() +makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip') source=("http://golang.org/dl/go${pkgver}.src.tar.gz" 0001-run-proper-go.path @@ -19,7 +20,7 @@ sha1sums=('0df564746d105f4180c2b576a1553ebca9d9a124' '59bcd02985f3ede3f527ac74c966abac40f443cd') prepare() { - [[ -d "${srcdir}"/$_realname-$pkgver ]] && rm -rf "${srcdir}"/${_realname}-${pkgver} + [[ -d "${srcdir}"/${_realname}-${pkgver} ]] && rm -rf "${srcdir}"/${_realname}-${pkgver} mv "${srcdir}"/${_realname} "${srcdir}"/${_realname}-${pkgver} cd "${srcdir}/${_realname}-${pkgver}" From cbb95600313dca07556085c713e1a9b889953a64 Mon Sep 17 00:00:00 2001 From: qme5400 Date: Wed, 16 Sep 2015 20:35:30 +0200 Subject: [PATCH 1591/2060] sfml 2.3.2 pkgbuild update --- mingw-w64-sfml/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-sfml/PKGBUILD b/mingw-w64-sfml/PKGBUILD index b3fd765cbc..4d91bb23f5 100644 --- a/mingw-w64-sfml/PKGBUILD +++ b/mingw-w64-sfml/PKGBUILD @@ -3,8 +3,8 @@ _realname=sfml pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.3.1 -pkgrel=2 +pkgver=2.3.2 +pkgrel=1 pkgdesc="A simple, fast, cross-platform, and object-oriented multimedia API (mingw-w64)" arch=('any') url="http://www.sfml-dev.org/" @@ -21,7 +21,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "unzip") source=(http://www.sfml-dev.org/files/SFML-${pkgver}-sources.zip mingw-w64-msys2.patch) -md5sums=('19caabdac1274824e9e9c667e22c4e94' +md5sums=('7f152bab6afc8ccbddaf51d6da318201' 'a8fbc9c9acfc813381df9e0020b211d9') noextract=(SFML-${pkgver}-sources.zip) From 9253d0bf58a1486e91f7efb5316e7fdb48fa4007 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Thu, 17 Sep 2015 22:38:40 +0200 Subject: [PATCH 1592/2060] curl: enable IPv6 support The support is already there, of course, it was just not auto-detected correctly. This fixes https://github.com/git-for-windows/git/issues/370 Signed-off-by: Johannes Schindelin --- .../0003-curl-detect-ipv6-on-windows.patch | 71 +++++++++++++++++++ mingw-w64-curl/PKGBUILD | 9 ++- 2 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-curl/0003-curl-detect-ipv6-on-windows.patch diff --git a/mingw-w64-curl/0003-curl-detect-ipv6-on-windows.patch b/mingw-w64-curl/0003-curl-detect-ipv6-on-windows.patch new file mode 100644 index 0000000000..79c0e840fa --- /dev/null +++ b/mingw-w64-curl/0003-curl-detect-ipv6-on-windows.patch @@ -0,0 +1,71 @@ +From: Johannes Schindelin +Date: Thu, 17 Sep 2015 20:03:34 +0200 +Subject: [PATCH] Auto-detect IPv6 support even on Windows + +Signed-off-by: Johannes Schindelin +--- + configure.ac | 11 ++++++++++- + m4/curl-functions.m4 | 10 ++++++++++ + 2 files changed, 20 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index be2634a..9ff200d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1081,7 +1081,11 @@ AC_HELP_STRING([--disable-ipv6],[Disable IPv6 support]), + + AC_TRY_RUN([ /* is AF_INET6 available? */ + #include ++#ifdef HAVE_WINSOCK2_H ++#include ++#else + #include ++#endif + #include /* for exit() */ + main() + { +@@ -1108,7 +1112,12 @@ if test "$ipv6" = yes; then + AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member]) + AC_TRY_COMPILE([ + #include +-#include ] , ++#ifdef HAVE_WINSOCK2_H ++#include ++#include ++#else ++#include ++#endif] , + struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes) + if test "$have_sin6_scope_id" = yes; then + AC_MSG_RESULT([yes]) +diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4 +index 0d65421..9f04661 100644 +--- a/m4/curl-functions.m4 ++++ b/m4/curl-functions.m4 +@@ -44,6 +44,10 @@ curl_includes_arpa_inet="\ + #ifdef HAVE_ARPA_INET_H + # include + #endif ++#ifdef HAVE_WINSOCK2_H ++#include ++#include ++#endif + /* includes end */" + AC_CHECK_HEADERS( + sys/types.h sys/socket.h netinet/in.h arpa/inet.h, +@@ -2098,6 +2102,12 @@ AC_DEFUN([CURL_CHECK_FUNC_GETADDRINFO], [ + struct addrinfo *ai = 0; + int error; + ++ #ifdef HAVE_WINSOCK2_H ++ WSADATA wsa; ++ if (WSAStartup(MAKEWORD(2,2), &wsa)) ++ exit(2); ++ #endif ++ + memset(&hints, 0, sizeof(hints)); + hints.ai_flags = AI_NUMERICHOST; + hints.ai_family = AF_UNSPEC; +-- +2.5.2.windows.2 + diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index b21bb00236..88b9d384ec 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -7,7 +7,7 @@ _realname=curl pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=7.44.0 -pkgrel=1 +pkgrel=2 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" @@ -29,11 +29,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('staticlibs') source=("$url/download/${_realname}-${pkgver}.tar.bz2"{,.asc} "0001-curl-relocation.patch" - "0002-curl-mingw-enable-static.patch") + "0002-curl-mingw-enable-static.patch" + "0003-curl-detect-ipv6-on-windows.patch") md5sums=('6b952ca00e5473b16a11f05f06aa8dae' 'SKIP' '58520051c4ed77781d233c3fa40a5435' - 'eac9e212e619490966ae47004bec547b') + 'eac9e212e619490966ae47004bec547b' + 'f1c5b8648af0dfab7bde4d68a6b65f25') validpgpkeys=('914C533DF9B2ADA2204F586D78E11C6B279D5C91') # Daniel Stenberg prepare() { @@ -41,6 +43,7 @@ prepare() { rm -f lib/pathtools.h lib/pathtools.c > /dev/null 2>&1 || true patch -p1 -i "${srcdir}/0001-curl-relocation.patch" patch -p1 -i "${srcdir}/0002-curl-mingw-enable-static.patch" + patch -p1 -i "${srcdir}/0003-curl-detect-ipv6-on-windows.patch" autoreconf -vfi } From 75a68d5da288d3b12f052dc9a43a8677ffefdaca Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 18 Sep 2015 09:54:23 +0300 Subject: [PATCH 1593/2060] cmake: Update to 3.3.2 --- mingw-w64-cmake/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index adc90e01bc..22e872342a 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -3,9 +3,9 @@ _realname=cmake pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.3.1 +pkgver=3.3.2 pkgrel=1 -pkgdesc="A cross-platform open-source make system (mingw-w64)." +pkgdesc="A cross-platform open-source make system (mingw-w64)" arch=('any') url="http://www.cmake.org/" license=("MIT") @@ -25,7 +25,7 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "dont-install-bundle.patch" "qt5-static-plugin-support.patch" "pkg-config-without-prefix.patch") -md5sums=('52638576f4e1e621fed6c3410d3a1b12' +md5sums=('5febbd11bcaac854a27eebaf4a124be2' '567da5e1794863b4df8affdc7e876a7e' 'fb33ace70ba863159b2c7964a9661e1e' '6461b89ff7d1ca0c4022801dff8475a7' From 5bc80aa226a183f279d9114bd7ce256cc2333580 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 18 Sep 2015 09:59:39 +0300 Subject: [PATCH 1594/2060] pyqt4: Update to 4.11.4 --- mingw-w64-pyqt4/PKGBUILD | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mingw-w64-pyqt4/PKGBUILD b/mingw-w64-pyqt4/PKGBUILD index c202a892cd..5411d5c714 100644 --- a/mingw-w64-pyqt4/PKGBUILD +++ b/mingw-w64-pyqt4/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Saul Ibarra Corretge _realname=pyqt4 +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-common" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=4.11.2 +pkgver=4.11.4 pkgrel=1 pkgdesc="Qt4 bindings for Python (mingw-w64)" arch=('any') @@ -14,9 +15,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-sip" "${MINGW_PACKAGE_PREFIX}-python3-sip" "${MINGW_PACKAGE_PREFIX}-qt4") options=('strip' 'staticlibs') -source=("http://downloads.sourceforge.net/project/pyqt/PyQt4/PyQt-$pkgver/PyQt-win-gpl-$pkgver.zip" +source=("http://downloads.sourceforge.net/project/pyqt/PyQt4/PyQt-$pkgver/PyQt-win-gpl-${pkgver}.zip" 001-mingw-python.patch) -md5sums=('3e7dcd518d7ed31e38135c0b472ed0fb' +md5sums=('cc3f9a88900c95b599afa69d869d8095' '2eeedc9c1ac90ad97654de98658637a7') prepare() { @@ -28,9 +29,9 @@ prepare() { build() { for builddir in python{2,3}-${MINGW_CHOST}; do - [[ -d $builddir ]] && rm -rf $builddir - cp -r PyQt-win-gpl-${pkgver} $builddir - pushd $builddir + [[ -d ${builddir} ]] && rm -rf ${builddir} + cp -r PyQt-win-gpl-${pkgver} ${builddir} + pushd ${builddir} [[ "${builddir%-${MINGW_CHOST}}" == "python2" ]] && { local _sipdir=Py2-Qt4 } || { From 13b7f15d6e9b35db233116c13c852ab18b226d1f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 18 Sep 2015 10:00:06 +0300 Subject: [PATCH 1595/2060] poppler-qt4: Update to 0.36.0 --- mingw-w64-poppler-qt4/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-poppler-qt4/PKGBUILD b/mingw-w64-poppler-qt4/PKGBUILD index 06079db7dc..036988056e 100644 --- a/mingw-w64-poppler-qt4/PKGBUILD +++ b/mingw-w64-poppler-qt4/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=poppler +pkgbase=mingw-w64-${_realname}-qt4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" -pkgver=0.33.0 +pkgver=0.36.0 pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') @@ -29,11 +30,11 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" options=('strip' 'staticlibs') source=("http://poppler.freedesktop.org/${_realname}-${pkgver}.tar.xz" "give-cc-to-gir-scanner.mingw.patch") -md5sums=('69927d1614d6704021c0b0dd0ee6a852' +md5sums=('9f72a76e6ca899dd81b03537c4ce3680' '727c1b414987f6ee2ba841d9db57a967') prepare() { - cd "$srcdir/${_realname}-$pkgver" + cd "$}srcdir}/${_realname}-$}pkgver}" patch -p1 -i "$srcdir/give-cc-to-gir-scanner.mingw.patch" #sed -i -e '/AC_PATH_XTRA/d' configure.ac #sed -i "s:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:" configure.ac @@ -61,5 +62,5 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install } From 9f713d3f8ce3d0f1ceba806eea69029538e3d15c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 18 Sep 2015 10:01:13 +0300 Subject: [PATCH 1596/2060] qwt-qt4: Rebuild. --- mingw-w64-qwt-qt4/PKGBUILD | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mingw-w64-qwt-qt4/PKGBUILD b/mingw-w64-qwt-qt4/PKGBUILD index 1eb3cf28dc..036bf1a0da 100644 --- a/mingw-w64-qwt-qt4/PKGBUILD +++ b/mingw-w64-qwt-qt4/PKGBUILD @@ -2,25 +2,28 @@ # Contributor: AlexWMF _realname=qwt +pkgbase=mingw-w64-${_realname}-qt4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=6.1.2 -pkgrel=1 +pkgrel=2 pkgdesc="Qt Widgets for Technical Applications for Qt4 (mingw-w64)" arch=('any') -license=("custom:$pkgname") +license=("custom:${_realname}") url="http://qwt.sourceforge.net/" depends=("${MINGW_PACKAGE_PREFIX}-qt4") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-make") options=(!strip staticlibs !buildflags) install=${_realname}-qt4-${CARCH}.install -source=("http://downloads.sourceforge.net/${_realname}/${_realname}-$pkgver.tar.bz2" \ +source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2" "qwtconfig-msys2.pri") md5sums=('9c88db1774fa7e3045af063bbde44d7d' 'ea5a595a3153d7330921e309b7e42e3d') prepare() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) + local _buildpkgdir=${pkgdirbase}/${pkgname}${MINGW_PREFIX} + mkdir -p ${_buildpkgdir} + local PREFIX_WIN=$(cygpath -am ${_buildpkgdir}) cd ${srcdir}/${_realname}-${pkgver} # copy our config file to the right place @@ -33,12 +36,12 @@ build() { cd ${srcdir}/${_realname}-${pkgver} ${MINGW_PREFIX}/bin/qmake qwt.pro - ${MINGW_PREFIX}/bin/mingw32-make # VERBOSE=1 + make # VERBOSE=1 } package() { cd ${srcdir}/${_realname}-${pkgver} - ${MINGW_PREFIX}/bin/mingw32-make -j1 install + make -j1 install mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ From d5ceadaed28c248bd43018b204057a64f25f82a0 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 18 Sep 2015 10:12:43 +0300 Subject: [PATCH 1597/2060] liblastfm-qt4: Update to 1.0.9 --- mingw-w64-liblastfm-qt4/PKGBUILD | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/mingw-w64-liblastfm-qt4/PKGBUILD b/mingw-w64-liblastfm-qt4/PKGBUILD index f700245f47..4a95ca0198 100644 --- a/mingw-w64-liblastfm-qt4/PKGBUILD +++ b/mingw-w64-liblastfm-qt4/PKGBUILD @@ -2,50 +2,47 @@ # Contributor: AlexWMF _realname=liblastfm - +pkgbase=mingw-w64-${_realname}-qt4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" - -pkgver=1.0.8 -pkgrel=2 -pkgdesc="A Qt C++ library for the Last.fm webservices http://www.last.fm" +pkgver=1.0.9 +pkgrel=1 +pkgdesc="A Qt C++ library for the Last.fm webservices http://www.last.fm (mingw-w64)" arch=('any') license=('Boost') url="http://www.rasterbar.com/products/libtorrent" conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-qt4" - "${MINGW_PACKAGE_PREFIX}-fftw" - "${MINGW_PACKAGE_PREFIX}-libsamplerate") - + "${MINGW_PACKAGE_PREFIX}-fftw" + "${MINGW_PACKAGE_PREFIX}-libsamplerate") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake") - + "${MINGW_PACKAGE_PREFIX}-cmake") options=(!strip staticlibs !buildflags) - source=(${_realname}-${pkgver}.tar.gz::"https://github.com/lastfm/liblastfm/archive/${pkgver}.tar.gz" versioned-dlls-mingw.patch) -md5sums=('5f7c1d15c0be57d73ec480f74c1d4592' +md5sums=('8748f423f66f2fbc38c39f9153d01a71' 'dd9996ec2896883acef6b90d8cd22302') prepare() { - cd ${srcdir}/${_realname}-${pkgver} - patch -p0 -i ${srcdir}/versioned-dlls-mingw.patch + cd ${srcdir}/${_realname}-${pkgver} + patch -p0 -i ${srcdir}/versioned-dlls-mingw.patch } build() { mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DBUILD_TESTS=False \ - ${srcdir}/${_realname}-${pkgver}/ + ${srcdir}/${_realname}-${pkgver} make ${MAKEFLAGS} # VERBOSE=1 } package() { cd ${srcdir}/build-${MINGW_CHOST} - make -j1 install + make DESTDIR=${pkgdir} -j1 install } From e40344f524fbace7a8225026479e47592d2fa754 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 18 Sep 2015 10:13:09 +0300 Subject: [PATCH 1598/2060] qjson-qt4: Rebuild. --- mingw-w64-liblastfm/PKGBUILD | 2 +- mingw-w64-qjson-qt4/PKGBUILD | 20 ++++++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/mingw-w64-liblastfm/PKGBUILD b/mingw-w64-liblastfm/PKGBUILD index e4059b5a76..8e7c6e8721 100644 --- a/mingw-w64-liblastfm/PKGBUILD +++ b/mingw-w64-liblastfm/PKGBUILD @@ -36,7 +36,7 @@ build() { -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DBUILD_TESTS=False \ - ${srcdir}/${_realname}-${pkgver}/ + ${srcdir}/${_realname}-${pkgver} make ${MAKEFLAGS} # VERBOSE=1 } diff --git a/mingw-w64-qjson-qt4/PKGBUILD b/mingw-w64-qjson-qt4/PKGBUILD index 49f17e5c3a..2aa6477c2d 100644 --- a/mingw-w64-qjson-qt4/PKGBUILD +++ b/mingw-w64-qjson-qt4/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: AlexWMF _realname=qjson +pkgbase=mingw-w64-${_realname}-qt4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" pkgver=0.8.1 -pkgrel=2 +pkgrel=3 pkgdesc="QJson is a qt-based library that maps JSON data to QVariant objects (mingw-w64)" arch=('any') license=('GPL') @@ -17,12 +18,13 @@ source=(${_realname}-${pkgver}.tar.gz::"https://github.com/flavio/${_realname}/a md5sums=('4eef13da988edf8f91c260a3e1baeea9') build() { - mkdir $srcdir/build-${MINGW_CHOST} - cd $srcdir/build-${MINGW_CHOST} + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ ${srcdir}/${_realname}-${pkgver} @@ -30,12 +32,6 @@ build() { } package() { - cd $srcdir/build-${MINGW_CHOST} - make install - - local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) - - for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}/*.cmake; do - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} - done + cd ${srcdir}/build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install } From a35c930d795de29a39c1cb682a23e6839665065f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 18 Sep 2015 11:02:59 +0300 Subject: [PATCH 1599/2060] kqoauth-qt4: Rebuild. --- mingw-w64-kqoauth-qt4/PKGBUILD | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mingw-w64-kqoauth-qt4/PKGBUILD b/mingw-w64-kqoauth-qt4/PKGBUILD index f137b8f693..891b714ce2 100644 --- a/mingw-w64-kqoauth-qt4/PKGBUILD +++ b/mingw-w64-kqoauth-qt4/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: AlexWMF _realname=kqoauth +pkgbase=mingw-w64-${_realname}-qt4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" pkgver=0.98 -pkgrel=2 -pkgdesc="kQOAuth is a library written in C++ for Qt that implements the OAuth 1.0 authentication specification RFC 5849." +pkgrel=3 +pkgdesc="kQOAuth is a library written in C++ for Qt that implements the OAuth 1.0 authentication specification RFC 5849 (mingw-w64)" arch=('any') license=("custom:$pkgname") url="https://github.com/kypeli/kQOAuth" @@ -28,8 +29,9 @@ prepare() { build() { cd ${srcdir}/${_realname}-${pkgver} - mkdir -p ${pkgdir}${MINGW_PREFIX} - local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) + local _buildpkgdir=${pkgdirbase}/${pkgname}${MINGW_PREFIX} + mkdir -p ${_buildpkgdir} + local PREFIX_WIN=$(cygpath -am ${_buildpkgdir}) pushd src > /dev/null ./pcfile.sh ${MINGW_PREFIX} ${pkgver} From 8248329ce1c411cd0df2573f6d75a12db4b687cd Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 18 Sep 2015 11:03:24 +0300 Subject: [PATCH 1600/2060] qxmmp-qt4: Rebuild. --- mingw-w64-qxmpp-qt4/PKGBUILD | 22 ++++++++++++---------- mingw-w64-qxmpp/PKGBUILD | 13 +++++++------ 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/mingw-w64-qxmpp-qt4/PKGBUILD b/mingw-w64-qxmpp-qt4/PKGBUILD index c585150fe9..8960d0f9f5 100644 --- a/mingw-w64-qxmpp-qt4/PKGBUILD +++ b/mingw-w64-qxmpp-qt4/PKGBUILD @@ -2,19 +2,20 @@ # Contributor: AlexWMF _realname=qxmpp +pkgbase=mingw-w64-${_realname}-qt4 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4" conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.8.3 -pkgrel=1 -pkgdesc="Cross-platform C++ XMPP client and server library" +pkgrel=2 +pkgdesc="Cross-platform C++ XMPP client and server library (mingw-w64)" arch=('any') license=("LGPL") url="https://github.com/qxmpp-project/qxmpp" -depends=("${MINGW_PACKAGE_PREFIX}-qt4" - "${MINGW_PACKAGE_PREFIX}-speex" - "${MINGW_PACKAGE_PREFIX}-libtheora" - "${MINGW_PACKAGE_PREFIX}-libvpx") +depends=("${MINGW_PACKAGE_PREFIX}-libtheora" + "${MINGW_PACKAGE_PREFIX}-libvpx" + "${MINGW_PACKAGE_PREFIX}-qt4" + "${MINGW_PACKAGE_PREFIX}-speex") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-make") options=(!strip staticlibs) source=("${_realname}-$pkgver".tar.gz::"https://github.com/qxmpp-project/${_realname}/archive/v${pkgver}.tar.gz") @@ -23,8 +24,9 @@ md5sums=('e945edf90eafbc8fcaaa9dde1a7b357a') build() { cd ${srcdir}/${_realname}-${pkgver} - mkdir -p ${pkgdir}${MINGW_PREFIX} - local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) + local _buildpkgdir=${pkgdirbase}/${pkgname}${MINGW_PREFIX} + mkdir -p ${_buildpkgdir} + local PREFIX_WIN=$(cygpath -am ${_buildpkgdir}) ${MINGW_PREFIX}/bin/qmake \ PREFIX=${PREFIX_WIN} \ @@ -34,12 +36,12 @@ build() { "CONFIG+=release" \ qxmpp.pro - ${MINGW_PREFIX}/bin/mingw32-make # VERBOSE=1 + make # VERBOSE=1 } package() { cd ${srcdir}/${_realname}-${pkgver} - ${MINGW_PREFIX}/bin/mingw32-make install + make install mkdir -p ${pkgdir}${MINGW_PREFIX}/bin/ mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ diff --git a/mingw-w64-qxmpp/PKGBUILD b/mingw-w64-qxmpp/PKGBUILD index 98ca8ea2f8..a97ef2b9ac 100644 --- a/mingw-w64-qxmpp/PKGBUILD +++ b/mingw-w64-qxmpp/PKGBUILD @@ -9,10 +9,10 @@ pkgdesc="Cross-platform C++ XMPP client and server library" arch=('any') license=("LGPL") url="https://github.com/qxmpp-project/qxmpp" -depends=("${MINGW_PACKAGE_PREFIX}-qt5" - "${MINGW_PACKAGE_PREFIX}-speex" - "${MINGW_PACKAGE_PREFIX}-libtheora" - "${MINGW_PACKAGE_PREFIX}-libvpx") +depends=("${MINGW_PACKAGE_PREFIX}-libtheora" + "${MINGW_PACKAGE_PREFIX}-libvpx" + "${MINGW_PACKAGE_PREFIX}-qt5" + "${MINGW_PACKAGE_PREFIX}-speex") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=(!strip staticlibs) source=("${_realname}-${pkgver}".tar.gz::"https://github.com/qxmpp-project/${_realname}/archive/v${pkgver}.tar.gz") @@ -21,8 +21,9 @@ md5sums=('e945edf90eafbc8fcaaa9dde1a7b357a') build() { cd ${srcdir}/${_realname}-${pkgver} - mkdir -p ${pkgdir}${MINGW_PREFIX} - local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) + local _buildpkgdir=${pkgdirbase}/${pkgname}${MINGW_PREFIX} + mkdir -p ${_buildpkgdir} + local PREFIX_WIN=$(cygpath -am ${_buildpkgdir}) ${MINGW_PREFIX}/bin/qmake \ PREFIX=${PREFIX_WIN} \ From cd31afa580d6b216eb01a3b6b90dbabe454b1b53 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 18 Sep 2015 11:04:20 +0300 Subject: [PATCH 1601/2060] qca-qt4-git: Upgrade. --- mingw-w64-qca-qt4-git/PKGBUILD | 51 +++++++------ .../qca-mingw-custom-certificates.patch | 72 +++++++++++++++++++ .../qca-mingw-pkg-config.patch | 20 ++++++ mingw-w64-qca-qt4-git/qt4-custom-dirs.patch | 47 ++++++++++-- mingw-w64-qca-qt5-git/PKGBUILD | 1 + 5 files changed, 165 insertions(+), 26 deletions(-) create mode 100644 mingw-w64-qca-qt4-git/qca-mingw-custom-certificates.patch create mode 100644 mingw-w64-qca-qt4-git/qca-mingw-pkg-config.patch diff --git a/mingw-w64-qca-qt4-git/PKGBUILD b/mingw-w64-qca-qt4-git/PKGBUILD index 7d241675bf..d1025f84cc 100644 --- a/mingw-w64-qca-qt4-git/PKGBUILD +++ b/mingw-w64-qca-qt4-git/PKGBUILD @@ -1,31 +1,39 @@ # Maintainer: AlexWMF _realname=qca +pkgbase=mingw-w64-${_realname}-qt4-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt4-git" -pkgver=2219.4fd11c4 +pkgver=2220.66b9754 pkgrel=1 pkgdesc="Qt Cryptographic Architecture (mingw-w64)" arch=('any') url="http://delta.affinix.com/qca/" license=('LGPL') -makedepends=("${MINGW_PACKAGE_PREFIX}-cyrus-sasl" - "${MINGW_PACKAGE_PREFIX}-gnupg" - "${MINGW_PACKAGE_PREFIX}-libgcrypt" - "${MINGW_PACKAGE_PREFIX}-make" - "${MINGW_PACKAGE_PREFIX}-nss" - "${MINGW_PACKAGE_PREFIX}-openssl" +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "git") -depends=("${MINGW_PACKAGE_PREFIX}-qt4") +depends=("${MINGW_PACKAGE_PREFIX}-ca-certificates" + "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-gnupg" + "${MINGW_PACKAGE_PREFIX}-libgcrypt" + "${MINGW_PACKAGE_PREFIX}-nss" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-qt4") install=${_realname}-qt4-git-${CARCH}.install source=("${_realname}"::"git://anongit.kde.org/qca.git" "cyrus_sasl_linking.patch" "find_nss_cmake.patch" - "qt4-custom-dirs.patch") + "qt4-custom-dirs.patch" + "qca-mingw-pkg-config.patch" + "qca-mingw-custom-certificates.patch") md5sums=('SKIP' '89d537c0b449408685ff48f401239544' '2ce45122eba6d2518f773bc4c5934e32' - 'db34acf7ee14dd1c8bfe78beedeb5734') + '6c216a022e6791e108d3be06eb8ff2bf' + 'ab16edc15378a7221da06de0e989ed09' + 'c6c5d9b2c071e44dd909d9313d8625df') pkgver() { cd ${srcdir}/${_realname} @@ -37,6 +45,8 @@ prepare() { patch -p1 -i ${srcdir}/cyrus_sasl_linking.patch patch -p1 -i ${srcdir}/find_nss_cmake.patch patch -p1 -i ${srcdir}/qt4-custom-dirs.patch + patch -p1 -i ${srcdir}/qca-mingw-pkg-config.patch + patch -p1 -i ${srcdir}/qca-mingw-custom-certificates.patch } build() { @@ -46,25 +56,22 @@ build() { mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} - QC_CERTSTORE_PATH=${MINGW_PREFIX}/etc/ssl/certs/ca-certificates.crt ${MINGW_PREFIX}/bin/cmake \ + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;DQC_CERTSTORE_PATH=" \ + ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TESTS=False \ - ${srcdir}/${_realname} + -DQT4_BUILD=ON \ + -DQCA_SUFFIX=qt4 \ + -DQCA_SYSTEMSTORE_PATH=../ssl/certs/ca-bundle.crt \ + -DQCA_INSTALL_IN_QT_PREFIX=ON \ + ../${_realname} make ${MAKEFLAGS} } package() { cd ${srcdir}/build-${MINGW_CHOST} - make INSTALL_ROOT="${pkgdir}" install - - local PREFIX_WIN=$(cygpath -am ${pkgdir}${MINGW_PREFIX}) - - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ - -i ${pkgdir}${MINGW_PREFIX}/share/qt4/mkspecs/features/crypto.prf - for f in ${pkgdir}${MINGW_PREFIX}/lib/cmake/Qca/*.cmake; do - sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f} - done + make DESTDIR="${pkgdir}" install } diff --git a/mingw-w64-qca-qt4-git/qca-mingw-custom-certificates.patch b/mingw-w64-qca-qt4-git/qca-mingw-custom-certificates.patch new file mode 100644 index 0000000000..cb15b31e88 --- /dev/null +++ b/mingw-w64-qca-qt4-git/qca-mingw-custom-certificates.patch @@ -0,0 +1,72 @@ +--- qca/CMakeLists.txt.orig 2015-07-16 11:01:38.665447700 +0300 ++++ qca/CMakeLists.txt 2015-07-16 11:19:17.252578400 +0300 +@@ -277,10 +277,11 @@ + endif (APPLE) + + message(STATUS "Checking for certstore..") ++if(NOT QCA_SYSTEMSTORE_PATH) + # fixme add OR mac +-if( WIN32 ) ++if( MSVC ) + # USE BUILTIN +-else ( WIN32 ) ++else ( MSVC ) + if ( DEFINED ENV{QC_CERTSTORE_PATH} ) + if(EXISTS $ENV{QC_CERTSTORE_PATH}) + set( qca_CERTSTORE $ENV{QC_CERTSTORE_PATH}) +@@ -302,7 +303,9 @@ + endif(EXISTS ${_current_try}) + endforeach (_current_try) + endif( DEFINED ENV{QC_CERTSTORE_PATH} ) +-endif(WIN32) ++else() ++ set( qca_CERTSTORE ${QCA_SYSTEMSTORE_PATH}) ++endif(MSVC) + + if (qca_CERTSTORE) + message(STATUS "Found system certstore") +@@ -316,6 +317,10 @@ + endif (qca_CERTSTORE) + message(STATUS "certstore path: " ${qca_CERTSTORE}) + add_definitions( -DQCA_SYSTEMSTORE_PATH="${qca_CERTSTORE}" ) ++else() ++message(STATUS "certstore path: " ${QCA_SYSTEMSTORE_PATH}) ++add_definitions( -DQCA_SYSTEMSTORE_PATH="${qca_CERTSTORE}" ) ++endif() + + + set( private_HEADERS ${qca_INCLUDEDIR}/QtCrypto/qca_plugin.h ${qca_INCLUDEDIR}/QtCrypto/qca_systemstore.h ) +--- qca/src/CMakeLists.txt.orig 2015-07-16 11:09:16.212688400 +0300 ++++ qca/src/CMakeLists.txt 2015-07-16 11:16:34.878817400 +0300 +@@ -52,7 +52,7 @@ + support/syncthread.cpp + ) + +-IF (WIN32) ++IF (WIN32 AND NOT MINGW) + SET( nonmoc_SOURCES ${nonmoc_SOURCES} qca_systemstore_win.cpp ) + elseif(APPLE) + set( nonmoc_SOURCES ${nonmoc_SOURCES} qca_systemstore_mac.cpp) +--- qca/src/qca_systemstore_flatfile.cpp.orig 2015-07-16 11:16:51.678137300 +0300 ++++ qca/src/qca_systemstore_flatfile.cpp 2015-07-16 11:35:28.073486600 +0300 +@@ -21,6 +21,7 @@ + #include "qca_systemstore.h" + + #include ++#include + + namespace QCA { + +@@ -32,7 +32,12 @@ + + CertificateCollection qca_get_systemstore(const QString &provider) + { ++#ifdef Q_OS_WIN ++ QString certstore = QString("%1%2").arg(QCoreApplication::applicationDirPath()).arg(QCA_SYSTEMSTORE_PATH); ++ return CertificateCollection::fromFlatTextFile(certstore, 0, provider); ++#else + return CertificateCollection::fromFlatTextFile(QCA_SYSTEMSTORE_PATH, 0, provider); ++#endif + } + + } diff --git a/mingw-w64-qca-qt4-git/qca-mingw-pkg-config.patch b/mingw-w64-qca-qt4-git/qca-mingw-pkg-config.patch new file mode 100644 index 0000000000..a6634b22d8 --- /dev/null +++ b/mingw-w64-qca-qt4-git/qca-mingw-pkg-config.patch @@ -0,0 +1,20 @@ +--- qca/CMakeLists.txt.orig 2015-07-16 11:01:38.665447700 +0300 ++++ qca/CMakeLists.txt 2015-07-16 11:19:17.252578400 +0300 +@@ -222,7 +222,7 @@ + endif() + endforeach() + +-if(NOT WIN32) ++if(NOT MSVC) + if(OSX_FRAMEWORK) + set(PKGCONFIG_CFLAGS "-F\${libdir} -I\${libdir}/${QCA_LIB_NAME}.framework/Headers") + set(PKGCONFIG_LIBS "-F\${libdir} -framework ${QCA_LIB_NAME}") +@@ -236,7 +236,7 @@ + if(NOT DEVELOPER_MODE) + install(FILES "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pkgconfig/${QCA_PC_NAME}" DESTINATION ${PKGCONFIG_INSTALL_PREFIX}) + endif() +-endif(NOT WIN32) ++endif(NOT MSVC) + + # strip CMAKE_INSTALL_PREFIX in all paths + if(USE_RELATIVE_PATHS) diff --git a/mingw-w64-qca-qt4-git/qt4-custom-dirs.patch b/mingw-w64-qca-qt4-git/qt4-custom-dirs.patch index 28e802db49..76ccf2db40 100644 --- a/mingw-w64-qca-qt4-git/qt4-custom-dirs.patch +++ b/mingw-w64-qca-qt4-git/qt4-custom-dirs.patch @@ -1,5 +1,22 @@ --- qca/CMakeLists.txt.orig 2014-12-13 15:22:53.153623400 +0300 +++ qca/CMakeLists.txt 2014-12-13 15:24:46.642114600 +0300 +@@ -73,6 +73,16 @@ + # properly set up compile flags (QT_DEBUG/QT_NO_DEBUG, ...) + include(${QT_USE_FILE}) + setup_qt4_dirs() ++ if(MINGW) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_LIBRARY_DIR}" OUTPUT_VARIABLE QT_LIBRARY_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_PREFIX_DIR}" OUTPUT_VARIABLE QT_PREFIX_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_PLUGINS_DIR}" OUTPUT_VARIABLE QT_PLUGINS_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_BINARY_DIR}" OUTPUT_VARIABLE QT_BINARY_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_HEADERS_DIR}" OUTPUT_VARIABLE QT_HEADERS_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_DOC_DIR}" OUTPUT_VARIABLE QT_DOC_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_DATA_DIR}" OUTPUT_VARIABLE QT_DATA_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_ARCHDATA_DIR}" OUTPUT_VARIABLE QT_ARCHDATA_DIR ) ++ endif() + set(QCA_QT_PC_VERSION "QtCore") + endif() + @@ -183,7 +183,7 @@ set(QCA_PLUGINS_INSTALL_DIR "${LIB_INSTALL_DIR}/${QCA_LIB_NAME}" CACHE PATH "Directory where qca plugins will install") set(QCA_BINARY_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Directory where qca plugins will install") @@ -9,13 +26,35 @@ if(NOT QCA_SUFFIX) set(QCA_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Directory where qca public headers will install") set(QCA_PRIVATE_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Directory where qca headers will install") ---- qca/cmake/modules/QcaMacro.cmake.orig 2014-12-13 15:22:53.153623400 +0300 -+++ qca/cmake/modules/QcaMacro.cmake 2014-12-13 15:24:46.642114600 +0300 -@@ -28,6 +28,7 @@ +--- qca/cmake/modules/QcaMacro.cmake.orig 2015-07-16 12:12:02.018070200 +0300 ++++ qca/cmake/modules/QcaMacro.cmake 2015-07-16 12:12:16.385633300 +0300 +@@ -20,14 +20,29 @@ + EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_DOCS" OUTPUT_VARIABLE QT_DOC_DIR ) + EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_DATA" OUTPUT_VARIABLE QT_DATA_DIR ) + EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_ARCHDATA" OUTPUT_VARIABLE QT_ARCHDATA_DIR ) ++ ++ if(MINGW) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_LIBRARY_DIR}" OUTPUT_VARIABLE QT_LIBRARY_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_PREFIX_DIR}" OUTPUT_VARIABLE QT_PREFIX_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_PLUGINS_DIR}" OUTPUT_VARIABLE QT_PLUGINS_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_BINARY_DIR}" OUTPUT_VARIABLE QT_BINARY_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_HEADERS_DIR}" OUTPUT_VARIABLE QT_HEADERS_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_DOC_DIR}" OUTPUT_VARIABLE QT_DOC_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_DATA_DIR}" OUTPUT_VARIABLE QT_DATA_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_ARCHDATA_DIR}" OUTPUT_VARIABLE QT_ARCHDATA_DIR ) ++ endif() ++ + SET( QT_MKSPECS_DIR "${QT_ARCHDATA_DIR}/mkspecs" ) + ENDMACRO(SETUP_QT5_DIRS) + ELSE (Qt5Core_FOUND) + # Cmake FindQt4 module doesn't provide QT_INSTALL_PREFIX and QT_INSTALL_DATA vars + # It will be done here MACRO(SETUP_QT4_DIRS) _qt4_query_qmake(QT_INSTALL_PREFIX QT_PREFIX_DIR) _qt4_query_qmake(QT_INSTALL_DATA QT_DATA_DIR) -+ SET( QT_MKSPECS_DIR "${QT_INSTALL_PREFIX}/share/qt4/mkspecs" ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_PREFIX_DIR}" OUTPUT_VARIABLE QT_PREFIX_DIR ) ++ EXEC_PROGRAM( "cygpath" ARGS "-u ${QT_DATA_DIR}" OUTPUT_VARIABLE QT_DATA_DIR ) ++ SET( QT_MKSPECS_DIR "${QT_PREFIX_DIR}/share/qt4/mkspecs" ) ENDMACRO(SETUP_QT4_DIRS) ENDIF() diff --git a/mingw-w64-qca-qt5-git/PKGBUILD b/mingw-w64-qca-qt5-git/PKGBUILD index 78591f7f3f..a4fc9358d1 100644 --- a/mingw-w64-qca-qt5-git/PKGBUILD +++ b/mingw-w64-qca-qt5-git/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: AlexWMF _realname=qca +pkgbase=mingw-w64-${_realname}-qt5-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt5-git" pkgver=2219.4fd11c4 pkgrel=1 From f4cd9837201edd08b6e4b498c50d72ea91d8c0bc Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 18 Sep 2015 13:14:31 +0300 Subject: [PATCH 1602/2060] pyside-qt4: Rebuild with gcc-5.2.x --- mingw-w64-pyside-qt4/PKGBUILD | 37 ++++++++++++------------- mingw-w64-pyside-qt4/pyside.patch | 19 ------------- mingw-w64-pyside-tools-qt4/PKGBUILD | 27 ++++++++++--------- mingw-w64-shiboken-qt4/PKGBUILD | 39 ++++++++++++++------------- mingw-w64-shiboken-qt4/shiboken.patch | 24 ++++++++--------- 5 files changed, 65 insertions(+), 81 deletions(-) diff --git a/mingw-w64-pyside-qt4/PKGBUILD b/mingw-w64-pyside-qt4/PKGBUILD index 69ddfe2e66..d456f99b9f 100644 --- a/mingw-w64-pyside-qt4/PKGBUILD +++ b/mingw-w64-pyside-qt4/PKGBUILD @@ -2,7 +2,8 @@ # Contributor: Xin Sun _realname=pyside -pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-common ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}) +pkgbase=mingw-w64-${_realname}-qt4 +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-common-qt4 ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}-qt4) pkgver=1.2.2 pkgrel=1 arch=('any') @@ -12,11 +13,11 @@ install=${_realname}-${CARCH}.install source=(https://pypi.python.org/packages/source/P/PySide/PySide-${pkgver}.tar.gz pyside.patch) md5sums=('c45bc400c8a86d6b35f34c29e379e44d' - 'c56a8aa26cb6c940f2bd992e58567e80') + 'c24be77f77fde7a4235e04b7b8af917a') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-python2-shiboken" - "${MINGW_PACKAGE_PREFIX}-python3-shiboken" + "${MINGW_PACKAGE_PREFIX}-python2-shiboken-qt4" + "${MINGW_PACKAGE_PREFIX}-python3-shiboken-qt4" "${MINGW_PACKAGE_PREFIX}-qt4") options=('staticlibs' 'strip') @@ -80,10 +81,10 @@ package_pyside-common() { package_python2-pyside() { pkgdesc="Provides LGPL Qt bindings for Python and related tools for binding generation (Python2)(mingw-w64)" - makedepends=("${MINGW_PACKAGE_PREFIX}-pyside-common" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python2-shiboken" - "${MINGW_PACKAGE_PREFIX}-qt4") + depends=("${MINGW_PACKAGE_PREFIX}-pyside-common-qt4" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python2-shiboken-qt4" + "${MINGW_PACKAGE_PREFIX}-qt4") cd ${srcdir}/build-${MINGW_CHOST}-python2/sources/pyside make DESTDIR=${pkgdir} install @@ -100,10 +101,10 @@ package_python2-pyside() { package_python3-pyside() { pkgdesc="Provides LGPL Qt bindings for Python and related tools for binding generation (Python3)(mingw-w64)" - makedepends=("${MINGW_PACKAGE_PREFIX}-pyside-common" - "${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-python3-shiboken" - "${MINGW_PACKAGE_PREFIX}-qt4") + depends=("${MINGW_PACKAGE_PREFIX}-pyside-common-qt4" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python3-shiboken-qt4" + "${MINGW_PACKAGE_PREFIX}-qt4") cd ${srcdir}/build-${MINGW_CHOST}-python3/sources/pyside make DESTDIR=${pkgdir} install @@ -116,26 +117,26 @@ package_python3-pyside() { } # Wrappers -package_mingw-w64-i686-pyside-common() { +package_mingw-w64-i686-pyside-common-qt4() { package_pyside-common } -package_mingw-w64-i686-python2-pyside() { +package_mingw-w64-i686-python2-pyside-qt4() { package_python2-pyside } -package_mingw-w64-i686-python3-pyside() { +package_mingw-w64-i686-python3-pyside-qt4() { package_python3-pyside } -package_mingw-w64-x86_64-pyside-common() { +package_mingw-w64-x86_64-pyside-common-qt4() { package_pyside-common } -package_mingw-w64-x86_64-python2-pyside() { +package_mingw-w64-x86_64-python2-pyside-qt4() { package_python2-pyside } -package_mingw-w64-x86_64-python3-pyside() { +package_mingw-w64-x86_64-python3-pyside-qt4() { package_python3-pyside } diff --git a/mingw-w64-pyside-qt4/pyside.patch b/mingw-w64-pyside-qt4/pyside.patch index c1a21fcdb8..d9d314c6f8 100644 --- a/mingw-w64-pyside-qt4/pyside.patch +++ b/mingw-w64-pyside-qt4/pyside.patch @@ -23,25 +23,6 @@ --output-directory=${CMAKE_CURRENT_BINARY_DIR} --license-file=${CMAKE_CURRENT_SOURCE_DIR}/../licensecomment.txt ${typesystem_path} ---- PySide-1.2.2/sources/pyside/PySide/QtCore/CMakeLists.txt.orig 2015-06-26 18:45:26.695000000 +0300 -+++ PySide-1.2.2/sources/pyside/PySide/QtCore/CMakeLists.txt 2015-06-26 18:45:55.158800000 +0300 -@@ -42,7 +42,7 @@ - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/point_wrapper.cpp - ) - else() -- set(SPECIFIC_OS_FILES "") -+ set(SPECIFIC_OS_FILES ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsystemsemaphore_wrapper.cpp) - endif() - - set(QtCore_SRC -@@ -111,7 +111,6 @@ - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsocketnotifier_wrapper.cpp - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsysinfo_wrapper.cpp - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsystemlocale_wrapper.cpp --${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsystemsemaphore_wrapper.cpp - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qt_wrapper.cpp - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qtconcurrent_wrapper.cpp - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qtcore_module_wrapper.cpp --- PySide-1.2.2/sources/pyside/tests/pysidetest/CMakeLists.txt.orig 2015-06-26 12:32:49.376400000 +0300 +++ PySide-1.2.2/sources/pyside/tests/pysidetest/CMakeLists.txt 2015-06-26 12:33:01.903200000 +0300 @@ -36,8 +36,8 @@ diff --git a/mingw-w64-pyside-tools-qt4/PKGBUILD b/mingw-w64-pyside-tools-qt4/PKGBUILD index 531da63fb1..3ba17b9988 100644 --- a/mingw-w64-pyside-tools-qt4/PKGBUILD +++ b/mingw-w64-pyside-tools-qt4/PKGBUILD @@ -2,7 +2,8 @@ # Contributor: Xin Sun _realname=pyside-tools -pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-common ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}) +pkgbase=mingw-w64-${_realname}-qt4 +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-common-qt4 ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}-qt4) pkgver=1.2.2 pkgrel=1 pkgdesc="Python bindings for Qt4 (mingw-w64)" @@ -13,8 +14,8 @@ source=(https://pypi.python.org/packages/source/P/PySide/PySide-${pkgver}.tar.gz md5sums=('c45bc400c8a86d6b35f34c29e379e44d') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-python2-pyside" - "${MINGW_PACKAGE_PREFIX}-python3-pyside" + "${MINGW_PACKAGE_PREFIX}-python2-pyside-qt4" + "${MINGW_PACKAGE_PREFIX}-python3-pyside-qt4" "${MINGW_PACKAGE_PREFIX}-qt4") options=('staticlibs' 'strip') @@ -60,8 +61,8 @@ package_pyside-tools-common() { package_python2-pyside-tools() { pkgdesc="PySide lupdate, rcc, and uic development tools (for Python 2) (mingw-w64)" - makedepends=("${MINGW_PACKAGE_PREFIX}-pyside-tools-common" - "${MINGW_PACKAGE_PREFIX}-python2-pyside") + depends=("${MINGW_PACKAGE_PREFIX}-pyside-tools-common-qt4" + "${MINGW_PACKAGE_PREFIX}-python2-pyside-qt4") cd ${srcdir}/build-${MINGW_CHOST}-python2/sources/pyside-tools make DESTDIR=${pkgdir} install @@ -83,8 +84,8 @@ package_python2-pyside-tools() { package_python3-pyside-tools() { pkgdesc="PySide lupdate, rcc, and uic development tools (for Python 3) (mingw-w64)" - makedepends=("${MINGW_PACKAGE_PREFIX}-pyside-tools-common" - "${MINGW_PACKAGE_PREFIX}-python3-pyside") + depends=("${MINGW_PACKAGE_PREFIX}-pyside-tools-common-qt4" + "${MINGW_PACKAGE_PREFIX}-python3-pyside-qt4") cd ${srcdir}/build-${MINGW_CHOST}-python3/sources/pyside-tools make DESTDIR=${pkgdir} install @@ -98,26 +99,26 @@ package_python3-pyside-tools() { } # Wrappers -package_mingw-w64-i686-pyside-tools-common() { +package_mingw-w64-i686-pyside-tools-common-qt4() { package_pyside-tools-common } -package_mingw-w64-i686-python2-pyside-tools() { +package_mingw-w64-i686-python2-pyside-tools-qt4() { package_python2-pyside-tools } -package_mingw-w64-i686-python3-pyside-tools() { +package_mingw-w64-i686-python3-pyside-tools-qt4() { package_python3-pyside-tools } -package_mingw-w64-x86_64-pyside-tools-common() { +package_mingw-w64-x86_64-pyside-tools-common-qt4() { package_pyside-tools-common } -package_mingw-w64-x86_64-python2-pyside-tools() { +package_mingw-w64-x86_64-python2-pyside-tools-qt4() { package_python2-pyside-tools } -package_mingw-w64-x86_64-python3-pyside-tools() { +package_mingw-w64-x86_64-python3-pyside-tools-qt4() { package_python3-pyside-tools } diff --git a/mingw-w64-shiboken-qt4/PKGBUILD b/mingw-w64-shiboken-qt4/PKGBUILD index 4384455730..bb69ac9b05 100644 --- a/mingw-w64-shiboken-qt4/PKGBUILD +++ b/mingw-w64-shiboken-qt4/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Xin Sun _realname=shiboken -pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname} ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}) +pkgbase=mingw-w64-${_realname}-qt4 +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-qt4 ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}-qt4) pkgver=1.2.2 -pkgrel=1 +pkgrel=2 arch=('any') url="http://pyside.github.io/docs/pyside/" license=("LGPL") @@ -12,7 +13,7 @@ install=${_realname}-${CARCH}.install source=(https://pypi.python.org/packages/source/P/PySide/PySide-${pkgver}.tar.gz shiboken.patch) md5sums=('c45bc400c8a86d6b35f34c29e379e44d' - 'ae1f4fb9f824adb3246fbfda2e0e577e') + '79cbe9b06107a431693c401944e78c3b') makedepends=("${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-libxslt" "${MINGW_PACKAGE_PREFIX}-python2" @@ -90,11 +91,11 @@ package_shiboken() { package_python2-shiboken() { pkgdesc="Support library for Python2 bindings (mingw-w64)" - makedepends=("${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-libxslt" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-shiboken" - "${MINGW_PACKAGE_PREFIX}-qt4") + depends=("${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-shiboken-qt4" + "${MINGW_PACKAGE_PREFIX}-qt4") cd ${srcdir}/build-${MINGW_CHOST}-python2/sources/shiboken make DESTDIR=${pkgdir} install @@ -113,11 +114,11 @@ package_python2-shiboken() { package_python3-shiboken() { pkgdesc="Support library for Python3 bindings (mingw-w64)" - makedepends=("${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-libxslt" - "${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-shiboken" - "${MINGW_PACKAGE_PREFIX}-qt4") + depends=("${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-shiboken-qt4" + "${MINGW_PACKAGE_PREFIX}-qt4") cd ${srcdir}/build-${MINGW_CHOST}-python3/sources/shiboken make DESTDIR=${pkgdir} install @@ -131,26 +132,26 @@ package_python3-shiboken() { } # Wrappers -package_mingw-w64-i686-shiboken() { +package_mingw-w64-i686-shiboken-qt4() { package_shiboken } -package_mingw-w64-i686-python2-shiboken() { +package_mingw-w64-i686-python2-shiboken-qt4() { package_python2-shiboken } -package_mingw-w64-i686-python3-shiboken() { +package_mingw-w64-i686-python3-shiboken-qt4() { package_python3-shiboken } -package_mingw-w64-x86_64-shiboken() { +package_mingw-w64-x86_64-shiboken-qt4() { package_shiboken } -package_mingw-w64-x86_64-python2-shiboken() { +package_mingw-w64-x86_64-python2-shiboken-qt4() { package_python2-shiboken } -package_mingw-w64-x86_64-python3-shiboken() { +package_mingw-w64-x86_64-python3-shiboken-qt4() { package_python3-shiboken } diff --git a/mingw-w64-shiboken-qt4/shiboken.patch b/mingw-w64-shiboken-qt4/shiboken.patch index b60a4fa2c7..5ff9bca1dc 100644 --- a/mingw-w64-shiboken-qt4/shiboken.patch +++ b/mingw-w64-shiboken-qt4/shiboken.patch @@ -10,6 +10,17 @@ if(CMAKE_HOST_UNIX AND NOT CYGWIN) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fvisibility=hidden -Wno-strict-aliasing") endif() +--- PySide-1.2.2/sources/shiboken/libshiboken/basewrapper.cpp.orig 2015-06-26 11:25:44.610800000 +0300 ++++ PySide-1.2.2/sources/shiboken/libshiboken/basewrapper.cpp 2015-06-26 11:27:46.225600000 +0300 +@@ -770,7 +770,7 @@ + Py_hash_t hash(PyObject* pyObj) + { + assert(Shiboken::Object::checkType(pyObj)); +- return reinterpret_cast(pyObj); ++ return reinterpret_cast(pyObj); + } + + static void setSequenceOwnership(PyObject* pyObj, bool owner) --- PySide-1.2.2/sources/shiboken/shibokenmodule/CMakeLists.txt.orig 2015-06-26 07:00:25.341400000 +0300 +++ PySide-1.2.2/sources/shiboken/shibokenmodule/CMakeLists.txt 2015-06-26 07:00:39.974200000 +0300 @@ -9,7 +9,7 @@ @@ -28,7 +39,7 @@ void setObjectName(const Str& name); - inline unsigned long identifier() const { return reinterpret_cast(this); } -+ inline uintptr_t identifier() const { return reinterpret_cast(this); } ++ inline unsigned long identifier() const { return reinterpret_cast(this); } bool causeEvent(Event::EventType eventType); @@ -43,17 +54,6 @@ +#endif #else #include - #endif ---- PySide-1.2.2/sources/shiboken/libshiboken/sbkpython.h.orig 2015-06-26 08:56:26.421800000 +0300 -+++ PySide-1.2.2/sources/shiboken/libshiboken/sbkpython.h 2015-06-26 08:56:29.666600000 +0300 -@@ -51,7 +51,7 @@ - #define SBK_STR_NAME "str" - #define SBK_PyMethod_New(X, Y) PyMethod_New(X, Y, (PyObject*)Py_TYPE(Y)) - -- #define Py_hash_t long -+ #define Py_hash_t Py_ssize_t - #endif - #endif --- PySide-1.2.2/sources/shiboken/generator/shiboken/overloaddata.cpp.orig 2015-06-26 10:00:46.779800000 +0300 +++ PySide-1.2.2/sources/shiboken/generator/shiboken/overloaddata.cpp 2015-06-26 10:02:01.441400000 +0300 From a2e8cabedfcab30e0afdaa42e349ca38e4815a1f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 18 Sep 2015 13:15:02 +0300 Subject: [PATCH 1603/2060] sip: Update to 4.16.9 --- mingw-w64-pyqt4/PKGBUILD | 4 ++-- mingw-w64-sip/PKGBUILD | 21 +++++++++++---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/mingw-w64-pyqt4/PKGBUILD b/mingw-w64-pyqt4/PKGBUILD index 5411d5c714..66f85b5a39 100644 --- a/mingw-w64-pyqt4/PKGBUILD +++ b/mingw-w64-pyqt4/PKGBUILD @@ -12,8 +12,8 @@ arch=('any') license=('GPL') url="http://www.riverbankcomputing.co.uk/software/pyqt" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-sip" - "${MINGW_PACKAGE_PREFIX}-python3-sip" - "${MINGW_PACKAGE_PREFIX}-qt4") + "${MINGW_PACKAGE_PREFIX}-python3-sip" + "${MINGW_PACKAGE_PREFIX}-qt4") options=('strip' 'staticlibs') source=("http://downloads.sourceforge.net/project/pyqt/PyQt4/PyQt-$pkgver/PyQt-win-gpl-${pkgver}.zip" 001-mingw-python.patch) diff --git a/mingw-w64-sip/PKGBUILD b/mingw-w64-sip/PKGBUILD index 8533898d10..a8d5efaf09 100644 --- a/mingw-w64-sip/PKGBUILD +++ b/mingw-w64-sip/PKGBUILD @@ -2,10 +2,11 @@ # Contributor: Alexey Pavlov _realname=sip +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=4.16.8 -pkgrel=2 -pkgdesc="Tool to create Python bindings for C and C++ libraries" +pkgver=4.16.9 +pkgrel=1 +pkgdesc="Tool to create Python bindings for C and C++ libraries (mingw-w64)" arch=('any') license=('GPL') url="http://www.riverbankcomputing.co.uk/software/sip" @@ -14,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python3") source=("http://downloads.sourceforge.net/project/pyqt/${_realname}/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.gz" "0001-mingw-python.patch") -md5sums=('8e48cd78bcd31f9310a701a4111c2739' +md5sums=('7a1dfff4e6fade0e4adee2c4e3d3aa9a' '0f812155edb59dd9dcb7bd187c5646ae') prepare() { @@ -26,9 +27,9 @@ prepare() { build() { for builddir in python{2,3}-${MINGW_CHOST}; do - [[ -d $builddir ]] && rm -rf $builddir - cp -r ${_realname}-${pkgver} $builddir - pushd $builddir + [[ -d $builddir ]] && rm -rf ${builddir} + cp -r ${_realname}-${pkgver} ${builddir} + pushd ${builddir} ${MINGW_PREFIX}/bin/${builddir%-${MINGW_CHOST}} configure.py \ CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}" make @@ -37,7 +38,7 @@ build() { } package_sip() { - pkgdesc="A tool that makes it easy to create Python bindings for C and C++ libraries" + pkgdesc="A tool that makes it easy to create Python bindings for C and C++ libraries (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") cd python2-${MINGW_CHOST} @@ -47,7 +48,7 @@ package_sip() { } package_python3-sip() { - pkgdesc="Python 3.x SIP bindings for C and C++ libraries" + pkgdesc="Python 3.x SIP bindings for C and C++ libraries (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-sip" "${MINGW_PACKAGE_PREFIX}-python3") cd python3-${MINGW_CHOST} @@ -60,7 +61,7 @@ package_python3-sip() { } package_python2-sip() { - pkgdesc="Python 2.x SIP bindings for C and C++ libraries" + pkgdesc="Python 2.x SIP bindings for C and C++ libraries (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-sip" "${MINGW_PACKAGE_PREFIX}-python2") cd python2-${MINGW_CHOST} From d11b03d4675a6d2296a98ae777d28e108d031a97 Mon Sep 17 00:00:00 2001 From: Jeroen Ooms Date: Fri, 18 Sep 2015 22:57:23 +0200 Subject: [PATCH 1604/2060] add quantlib package --- mingw-w64-quantlib/PKGBUILD | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 mingw-w64-quantlib/PKGBUILD diff --git a/mingw-w64-quantlib/PKGBUILD b/mingw-w64-quantlib/PKGBUILD new file mode 100644 index 0000000000..1acceb71c0 --- /dev/null +++ b/mingw-w64-quantlib/PKGBUILD @@ -0,0 +1,44 @@ +# Maintainer: Alexey Pavlov + +_realname=QuantLib +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.6.2 +pkgrel=1 +pkgdesc="QuantLib - A free/open-source library for quantitative finance" +arch=('any') +url='http://quantlib.org' +license=('BSD') +makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "automake" "autoconf" "libtool") +options=('staticlibs' 'strip') +source=(https://downloads.sourceforge.net/project/quantlib/QuantLib/${pkgver}/QuantLib-${pkgver}.tar.gz) +md5sums=('e1831b8fc7fbf155659ec7aa8351b57a') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" +} + +build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} + cd "${srcdir}/build-${MINGW_CHOST}" + + ./configure \ + --disable-dependency-tracking \ + --enable-static \ + --enable-shared \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} + make +} + +check() { + cd "${srcdir}/build-${MINGW_CHOST}" + make check +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE +} From 2e149db7f29dfeb0e4c544a9181dc74a5a430677 Mon Sep 17 00:00:00 2001 From: Jeroen Ooms Date: Fri, 18 Sep 2015 23:05:19 +0200 Subject: [PATCH 1605/2060] typo --- mingw-w64-quantlib/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-quantlib/PKGBUILD b/mingw-w64-quantlib/PKGBUILD index 1acceb71c0..afb1adb90c 100644 --- a/mingw-w64-quantlib/PKGBUILD +++ b/mingw-w64-quantlib/PKGBUILD @@ -40,5 +40,5 @@ check() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install - install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE + install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE.TXT "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE } From eeed67e583c082c6358dd81361ff9382cf7cce00 Mon Sep 17 00:00:00 2001 From: Jeroen Ooms Date: Fri, 18 Sep 2015 23:37:54 +0200 Subject: [PATCH 1606/2060] incorporate feedback --- mingw-w64-quantlib/PKGBUILD | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/mingw-w64-quantlib/PKGBUILD b/mingw-w64-quantlib/PKGBUILD index afb1adb90c..61fcefaf20 100644 --- a/mingw-w64-quantlib/PKGBUILD +++ b/mingw-w64-quantlib/PKGBUILD @@ -13,30 +13,22 @@ options=('staticlibs' 'strip') source=(https://downloads.sourceforge.net/project/quantlib/QuantLib/${pkgver}/QuantLib-${pkgver}.tar.gz) md5sums=('e1831b8fc7fbf155659ec7aa8351b57a') -prepare() { - cd "${srcdir}/${_realname}-${pkgver}" -} - build() { - [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + rm -rf "${srcdir}/build-${MINGW_CHOST}" cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - ./configure \ - --disable-dependency-tracking \ - --enable-static \ - --enable-shared \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} + ../QuantLib-${pkgver}/configure \ + --disable-dependency-tracking \ + --enable-static \ + --enable-shared \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} make } -check() { - cd "${srcdir}/build-${MINGW_CHOST}" - make check -} - package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install From 10d852b44ea277b5f1af4148439451c0591c0045 Mon Sep 17 00:00:00 2001 From: Andrew Chadwick Date: Sat, 19 Sep 2015 01:13:44 +0100 Subject: [PATCH 1607/2060] nuitka: update to 0.5.14.3 New upstream release. --- mingw-w64-python-nuitka/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-nuitka/PKGBUILD b/mingw-w64-python-nuitka/PKGBUILD index 363eee28e6..6518fb7ad7 100644 --- a/mingw-w64-python-nuitka/PKGBUILD +++ b/mingw-w64-python-nuitka/PKGBUILD @@ -2,7 +2,7 @@ _realname=nuitka pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=0.5.13 +pkgver=0.5.14.3 pkgrel=1 pkgdesc="Python to native compiler (mingw-w64)" arch=('any') @@ -11,7 +11,7 @@ url="http://www.nuitka.net/" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=("http://nuitka.net/releases/Nuitka-${pkgver}.tar.gz") noextract=(Nuitka-$pkgver.tar.gz) -md5sums=('e231f92edc2766c72c5a357f7d917223') +md5sums=('17f448e0421c0112d54bdee5777d2e97') prepare() { [[ -d $srcdir/${_realname}-${pkgver} ]] && rm -rf ${srcdir}/${_realname}-${pkgver} From a6b5840567ab1da61b018f76eb6fad19e36c2b8d Mon Sep 17 00:00:00 2001 From: Andrew Chadwick Date: Sat, 19 Sep 2015 01:17:31 +0100 Subject: [PATCH 1608/2060] nuitka2: correct over-aggressive search-and-replace There is no "nuitka2" package installed by this build, and the search-and-replace was breaking logic and screwing up the #! line too. Ripping it out seems fine, and makes it consistent with the py3 package. Closes Alexpux/MINGW-packages#788. --- mingw-w64-python-nuitka/PKGBUILD | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mingw-w64-python-nuitka/PKGBUILD b/mingw-w64-python-nuitka/PKGBUILD index 6518fb7ad7..9360dcfe6b 100644 --- a/mingw-w64-python-nuitka/PKGBUILD +++ b/mingw-w64-python-nuitka/PKGBUILD @@ -57,10 +57,6 @@ package_python2-nuitka() { sed -e "s|...\python|python2|g" \ -e "s|${filename}|${filename}2|g" \ -i "${pkgdir}${MINGW_PREFIX}"/bin/${filename}.bat - - sed -e "s|...\python|python2|g" \ - -e "s|${filename}|${filename}2|g" \ - -i "${pkgdir}${MINGW_PREFIX}"/bin/${filename} mv "${pkgdir}${MINGW_PREFIX}"/bin/${filename} "${pkgdir}${MINGW_PREFIX}"/bin/${filename}2 mv "${pkgdir}${MINGW_PREFIX}"/bin/${filename}.bat "${pkgdir}${MINGW_PREFIX}"/bin/${filename}2.bat done From 1c5c39f1b8b73d0c676f6ef08cda3b4504c80003 Mon Sep 17 00:00:00 2001 From: qme5400 Date: Sun, 20 Sep 2015 17:35:44 +0200 Subject: [PATCH 1609/2060] soundtouch 1.9.2 --- mingw-w64-soundtouch/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-soundtouch/PKGBUILD b/mingw-w64-soundtouch/PKGBUILD index aa44403cbd..5a91ec7155 100644 --- a/mingw-w64-soundtouch/PKGBUILD +++ b/mingw-w64-soundtouch/PKGBUILD @@ -3,7 +3,7 @@ _realname=soundtouch pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.9.1 +pkgver=1.9.2 pkgrel=1 pkgdesc="An audio processing library (mingw-w64)" arch=('any') @@ -15,7 +15,7 @@ options=('strip' 'staticlibs') source=(http://www.surina.net/soundtouch/${_realname}-${pkgver}.tar.gz 0001-no-undefined-on.mingw.patch 0003-fix-docdir.mingw.patch) -md5sums=('d829a4a6e2c93eecf6398615c3fce46f' +md5sums=('83e5a860a924c165531f6687c51463b7' 'f472d0b637cc0a3491435ff3409ed3cc' 'fedef380bc99b2adbecfba32f1b83672') From bc3abedcb77ee66ad811a4b2ae78035001449e3a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 21 Sep 2015 08:41:48 +0300 Subject: [PATCH 1610/2060] soundtouch: Fix generating shared library --- .../0001-no-undefined-on.mingw.patch | 15 ++++++++------- mingw-w64-soundtouch/PKGBUILD | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/mingw-w64-soundtouch/0001-no-undefined-on.mingw.patch b/mingw-w64-soundtouch/0001-no-undefined-on.mingw.patch index f7a0a072b8..26e7abdefe 100644 --- a/mingw-w64-soundtouch/0001-no-undefined-on.mingw.patch +++ b/mingw-w64-soundtouch/0001-no-undefined-on.mingw.patch @@ -1,10 +1,11 @@ --- soundtouch/source/SoundTouch/Makefile.am.orig 2012-09-16 18:22:55 +0400 +++ soundtouch/source/SoundTouch/Makefile.am 2012-09-16 18:23:19 +0400 -@@ -39,6 +39,7 @@ - noinst_LTLIBRARIES=libSoundTouchMMX.la libSoundTouchSSE.la - libSoundTouchMMX_la_SOURCES=mmx_optimized.cpp - libSoundTouchSSE_la_SOURCES=sse_optimized.cpp -+libSoundTouch_la_LDFLAGS=-no-undefined +@@ -66,7 +66,7 @@ + endif - # We enable optimizations by default. - # If MMX is supported compile with -mmmx. + # Modify the default 0.0.0 to LIB_SONAME.0.0 +-libSoundTouch_la_LDFLAGS=-version-info @LIB_SONAME@ ++libSoundTouch_la_LDFLAGS=-no-undefined -version-info @LIB_SONAME@ + + # other linking flags to add + # noinst_LTLIBRARIES = libSoundTouchOpt.la diff --git a/mingw-w64-soundtouch/PKGBUILD b/mingw-w64-soundtouch/PKGBUILD index 5a91ec7155..508fcb5b9f 100644 --- a/mingw-w64-soundtouch/PKGBUILD +++ b/mingw-w64-soundtouch/PKGBUILD @@ -15,8 +15,8 @@ options=('strip' 'staticlibs') source=(http://www.surina.net/soundtouch/${_realname}-${pkgver}.tar.gz 0001-no-undefined-on.mingw.patch 0003-fix-docdir.mingw.patch) -md5sums=('83e5a860a924c165531f6687c51463b7' - 'f472d0b637cc0a3491435ff3409ed3cc' +md5sums=('2d1ab4abb54640e8e308e36e309c94a6' + '610545bf3ad3b143668240783a8b89fe' 'fedef380bc99b2adbecfba32f1b83672') prepare() { From d9318143d2db34db38635548c7103bccb903eaec Mon Sep 17 00:00:00 2001 From: Jeroen Ooms Date: Mon, 21 Sep 2015 10:33:41 +0200 Subject: [PATCH 1611/2060] fixes --- mingw-w64-quantlib/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-quantlib/PKGBUILD b/mingw-w64-quantlib/PKGBUILD index 61fcefaf20..69c9c2ddc2 100644 --- a/mingw-w64-quantlib/PKGBUILD +++ b/mingw-w64-quantlib/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov _realname=QuantLib +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.2 pkgrel=1 -pkgdesc="QuantLib - A free/open-source library for quantitative finance" +pkgdesc="QuantLib - A free/open-source library for quantitative finance (mingw-w64)" arch=('any') url='http://quantlib.org' license=('BSD') @@ -15,7 +16,6 @@ md5sums=('e1831b8fc7fbf155659ec7aa8351b57a') build() { rm -rf "${srcdir}/build-${MINGW_CHOST}" - cp -rf ${_realname}-${pkgver} build-${MINGW_CHOST} mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" From e79bd5d9b8de7653d0788379e04b367ff89fddb6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 21 Sep 2015 15:47:39 +0300 Subject: [PATCH 1612/2060] python3: WIP updating to 3.5.0 --- ...0-make-_sysconfigdata.py-relocatable.patch | 10 +- .../0100-MINGW-BASE-use-NT-thread-model.patch | 38 +-- ...gcc-internal-defines-to-python-platf.patch | 6 +- ...igure-MACHDEP-and-platform-for-build.patch | 14 +- ...0140-MINGW-preset-configure-defaults.patch | 28 +- ...largefile-support-for-windows-builds.patch | 10 +- ...GW-add-wincrypt.h-in-Python-random.c.patch | 12 +- ...0170-MINGW-add-srcdir-PC-to-CPPFLAGS.patch | 10 +- .../0180-MINGW-init-system-calls.patch | 48 +--- ...190-MINGW-detect-REPARSE_DATA_BUFFER.patch | 36 +-- ...INGW-build-in-windows-modules-winreg.patch | 53 ++-- ...etermine-if-pwdmodule-should-be-used.patch | 20 +- ...s.path-calculations-for-windows-plat.patch | 58 ++-- ...-AC_LIBOBJ-replacement-of-fileblocks.patch | 6 +- ...40-MINGW-use-main-to-start-execution.patch | 8 +- ...ler-customize-mingw-cygwin-compilers.patch | 10 +- ...0260-MINGW-compiler-enable-new-dtags.patch | 6 +- ...ssue13756-Python-make-fail-on-cygwin.patch | 14 +- ...-Mingw-recognition-to-pyport.h-to-al.patch | 18 +- ...300-MINGW-configure-for-shared-build.patch | 14 +- .../0310-MINGW-dynamic-loading-support.patch | 38 ++- .../0320-MINGW-implement-exec-prefix.patch | 28 +- ...nore-main-program-for-frozen-scripts.patch | 18 +- ...0-MINGW-setup-exclude-termios-module.patch | 8 +- ...-MINGW-setup-_multiprocessing-module.patch | 10 +- .../0360-MINGW-setup-select-module.patch | 14 +- ...up-_ctypes-module-with-system-libffi.patch | 16 +- ...ct-winsock2-and-setup-_socket-module.patch | 42 +-- ...0390-MINGW-exclude-unix-only-modules.patch | 12 +- ...NGW-setup-msvcrt-and-_winapi-modules.patch | 22 +- ...0410-MINGW-build-extensions-with-GCC.patch | 26 +- ...2CCompiler-as-default-compiler-for-m.patch | 12 +- .../0430-MINGW-find-import-library.patch | 6 +- .../0440-MINGW-setup-_ssl-module.patch | 8 +- ...ation-of-posix-build-in-sysconfig.py.patch | 16 +- ...W-support-stdcall-without-underscore.patch | 8 +- ...ead-rename-to-avoid-failure-on-windo.patch | 8 +- ...ular-dependency-from-time-module-dur.patch | 6 +- ...tion-of-posix-build-in-distutils-sys.patch | 20 +- .../0490-MINGW-customize-site.patch | 8 +- .../0500-add-python-config-sh.patch | 6 +- .../0510-cross-darwin-feature.patch | 16 +- ...520-py3k-mingw-ntthreads-vs-pthreads.patch | 24 +- .../0530-mingw-system-libffi.patch | 38 +-- .../0540-mingw-semicolon-DELIM.patch | 40 +-- .../0550-mingw-regen-use-stddef_h.patch | 14 +- ...sys-mingw-prefer-unix-sep-if-MSYSTEM.patch | 264 ++++++++++++------ .../0560-mingw-use-posix-getpath.patch | 76 ++--- ...mingw-add-ModuleFileName-dir-to-PATH.patch | 10 +- ...dd-BUILDIN_WIN32_MODULEs-time-msvcrt.patch | 9 +- ...mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch | 8 +- ...s-cygwin-semi-native-build-sysconfig.patch | 29 +- .../0620-mingw-sysconfig-like-posix.patch | 22 +- ...builtin_for_Popen_in_cygwinccompiler.patch | 28 +- ...x86_64-size_t-format-specifier-pid_t.patch | 6 +- ...d-multiarch-paths-if-cross-compiling.patch | 8 +- ...ngw-use-backslashes-in-compileall-py.patch | 8 +- ...-msys-convert_path-fix-and-root-hack.patch | 24 +- .../0690-allow-static-tcltk.patch | 14 +- ...OSS-avoid-ncursesw-include-path-hack.patch | 8 +- ...etect-WINDOW-_flags-for-different-nc.patch | 22 +- .../0720-mingw-pdcurses_ISPAD.patch | 6 +- .../0730-mingw-fix-ncurses-module.patch | 20 +- mingw-w64-python3/0740-grammar-fixes.patch | 14 +- mingw-w64-python3/0750-builddir-fixes.patch | 56 ++-- ...sys-monkeypatch-os-system-via-sh-exe.patch | 8 +- ...place-slashes-used-in-io-redirection.patch | 18 +- ...ingw-add-_exec_prefix-for-tcltk-dlls.patch | 12 +- .../0800-mingw-install-layout-as-posix.patch | 8 +- .../0810-remove_path_max.default.patch | 32 +-- .../0820-dont-link-with-gettext.patch | 14 +- .../0830-ctypes-python-dll.patch | 8 +- .../0840-gdbm-module-includes.patch | 6 +- .../0850-use-gnu_printf-in-format.patch | 26 +- .../0860-fix-_Py_CheckPython3-prototype.patch | 8 +- ...w-fix-ssl-dont-use-enum_certificates.patch | 16 +- .../0890-mingw-build-optimized-ext.patch | 6 +- ...mpiler-dont-strip-modules-if-pydebug.patch | 6 +- ...fix-using-dllhandle-and-winver-mingw.patch | 8 +- ...0920-mingw-add-LIBPL-to-library-dirs.patch | 10 +- ...30-mingw-w64-build-overlapped-module.patch | 7 +- .../1000-fix-building-posixmodule.patch | 8 +- mingw-w64-python3/1010-install-msilib.patch | 8 +- ...t-look-in-DLLs-folder-for-python-dll.patch | 11 +- mingw-w64-python3/PKGBUILD | 174 ++++++------ 85 files changed, 955 insertions(+), 954 deletions(-) diff --git a/mingw-w64-python3/0000-make-_sysconfigdata.py-relocatable.patch b/mingw-w64-python3/0000-make-_sysconfigdata.py-relocatable.patch index 9d38d5316d..a12b13f094 100644 --- a/mingw-w64-python3/0000-make-_sysconfigdata.py-relocatable.patch +++ b/mingw-w64-python3/0000-make-_sysconfigdata.py-relocatable.patch @@ -1,7 +1,7 @@ -diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py ---- a/Lib/sysconfig.py 2014-10-08 09:18:12.000000000 +0100 -+++ b/Lib/sysconfig.py 2014-10-11 14:18:33.073762000 +0100 -@@ -264,6 +264,7 @@ +diff -Naur Python-3.5.0-orig/Lib/sysconfig.py Python-3.5.0/Lib/sysconfig.py +--- Python-3.5.0-orig/Lib/sysconfig.py 2015-09-13 14:41:21.000000000 +0300 ++++ Python-3.5.0/Lib/sysconfig.py 2015-09-21 13:41:02.028646700 +0300 +@@ -257,6 +257,7 @@ # if the expansion uses the name without a prefix. renamed_variables = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS') @@ -9,7 +9,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py while len(variables) > 0: for name in tuple(variables): value = notdone[name] -@@ -400,6 +401,19 @@ +@@ -393,6 +394,19 @@ f.write('build_time_vars = ') pprint.pprint(vars, stream=f) diff --git a/mingw-w64-python3/0100-MINGW-BASE-use-NT-thread-model.patch b/mingw-w64-python3/0100-MINGW-BASE-use-NT-thread-model.patch index 20c01040d3..cccb099327 100644 --- a/mingw-w64-python3/0100-MINGW-BASE-use-NT-thread-model.patch +++ b/mingw-w64-python3/0100-MINGW-BASE-use-NT-thread-model.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:18:34.945869100 +0100 -+++ b/configure.ac 2014-10-11 14:18:36.988985900 +0100 -@@ -1388,6 +1388,37 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:04.204429100 +0300 +@@ -1576,6 +1576,37 @@ BASECFLAGS="$BASECFLAGS $ac_arch_flags" fi @@ -39,7 +39,7 @@ diff -urN a/configure.ac b/configure.ac # On some compilers, pthreads are available without further options # (e.g. MacOS X). On some of these systems, the compiler will not # complain if unaccepted options are passed (e.g. gcc on Mac OS X). -@@ -1415,6 +1446,7 @@ +@@ -1603,6 +1634,7 @@ ],[ac_cv_pthread_is_default=no],[ac_cv_pthread_is_default=no]) ]) AC_MSG_RESULT($ac_cv_pthread_is_default) @@ -47,7 +47,7 @@ diff -urN a/configure.ac b/configure.ac if test $ac_cv_pthread_is_default = yes -@@ -1506,6 +1538,9 @@ +@@ -1694,6 +1726,9 @@ AC_MSG_RESULT($ac_cv_pthread) fi @@ -57,7 +57,7 @@ diff -urN a/configure.ac b/configure.ac # If we have set a CC compiler flag for thread support then # check if it works for CXX, too. ac_cv_cxx_thread=no -@@ -1526,6 +1561,10 @@ +@@ -1714,6 +1749,10 @@ then CXX="$CXX -pthread" ac_cv_cxx_thread=yes @@ -68,7 +68,7 @@ diff -urN a/configure.ac b/configure.ac fi if test $ac_cv_cxx_thread = yes -@@ -1555,6 +1594,11 @@ +@@ -1743,6 +1782,11 @@ dnl AC_MSG_RESULT($cpp_type) # checks for header files @@ -80,7 +80,7 @@ diff -urN a/configure.ac b/configure.ac AC_HEADER_STDC AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \ fcntl.h grp.h \ -@@ -1824,9 +1868,14 @@ +@@ -2012,9 +2056,14 @@ AC_MSG_CHECKING(for pthread_t) have_pthread_t=no @@ -95,8 +95,8 @@ diff -urN a/configure.ac b/configure.ac AC_MSG_RESULT($have_pthread_t) if test "$have_pthread_t" = yes ; then AC_CHECK_SIZEOF(pthread_t, [], [ -@@ -2240,11 +2289,16 @@ - AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX +@@ -2431,11 +2480,16 @@ + [Define if the libcrypto has RAND_egd])) # only check for sem_init if thread support is requested +if test $ac_cv_ntthread = yes ; then @@ -112,7 +112,7 @@ diff -urN a/configure.ac b/configure.ac # check if we need libintl for locale functions AC_CHECK_LIB(intl, textdomain, -@@ -2513,6 +2567,13 @@ +@@ -2715,6 +2769,13 @@ AC_DEFINE(WITH_THREAD) posix_threads=yes THREADOBJ="Python/thread.o" @@ -126,7 +126,7 @@ diff -urN a/configure.ac b/configure.ac else if test ! -z "$with_threads" -a -d "$with_threads" then LDFLAGS="$LDFLAGS -L$with_threads" -@@ -2932,6 +2993,15 @@ +@@ -3144,6 +3205,15 @@ fi # checks for library functions @@ -142,7 +142,7 @@ diff -urN a/configure.ac b/configure.ac AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ clock confstr ctermid dup3 execv faccessat fchmod fchmodat fchown fchownat \ fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ -@@ -3920,6 +3990,10 @@ +@@ -4146,6 +4216,10 @@ # the kernel module that provides POSIX semaphores # isn't loaded by default, so an attempt to call # sem_open results in a 'Signal 12' error. @@ -153,7 +153,7 @@ diff -urN a/configure.ac b/configure.ac AC_MSG_CHECKING(whether POSIX semaphores are enabled) AC_CACHE_VAL(ac_cv_posix_semaphores_enabled, AC_RUN_IFELSE([AC_LANG_SOURCE([[ -@@ -3953,6 +4027,14 @@ +@@ -4179,6 +4253,14 @@ # Multiprocessing check for broken sem_getvalue AC_MSG_CHECKING(for broken sem_getvalue) @@ -168,10 +168,10 @@ diff -urN a/configure.ac b/configure.ac AC_CACHE_VAL(ac_cv_broken_sem_getvalue, AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include -diff -urN a/pyconfig.h.in b/pyconfig.h.in ---- a/pyconfig.h.in 2014-10-11 14:18:35.020873400 +0100 -+++ b/pyconfig.h.in 2014-10-11 14:18:36.991986100 +0100 -@@ -1166,6 +1166,9 @@ +diff -Naur Python-3.5.0-orig/pyconfig.h.in Python-3.5.0/pyconfig.h.in +--- Python-3.5.0-orig/pyconfig.h.in 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/pyconfig.h.in 2015-09-21 13:41:04.221427400 +0300 +@@ -1193,6 +1193,9 @@ /* Define if mvwdelch in curses.h is an expression. */ #undef MVWDELCH_IS_EXPRESSION diff --git a/mingw-w64-python3/0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch b/mingw-w64-python3/0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch index 4dd5cb9210..5bf0360b2b 100644 --- a/mingw-w64-python3/0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch +++ b/mingw-w64-python3/0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch @@ -1,6 +1,6 @@ -diff -urN a/Include/pyport.h b/Include/pyport.h ---- a/Include/pyport.h 2014-10-11 14:18:38.798089400 +0100 -+++ b/Include/pyport.h 2014-10-11 14:18:40.574191000 +0100 +diff -Naur Python-3.5.0-orig/Include/pyport.h Python-3.5.0/Include/pyport.h +--- Python-3.5.0-orig/Include/pyport.h 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Include/pyport.h 2015-09-21 13:41:05.553294200 +0300 @@ -13,6 +13,21 @@ #include #endif diff --git a/mingw-w64-python3/0130-MINGW-configure-MACHDEP-and-platform-for-build.patch b/mingw-w64-python3/0130-MINGW-configure-MACHDEP-and-platform-for-build.patch index fdfdcd64d6..5d77f79568 100644 --- a/mingw-w64-python3/0130-MINGW-configure-MACHDEP-and-platform-for-build.patch +++ b/mingw-w64-python3/0130-MINGW-configure-MACHDEP-and-platform-for-build.patch @@ -1,6 +1,6 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:18:41.747258100 +0100 -+++ b/configure.ac 2014-10-11 14:18:44.328405700 +0100 +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:05.423307200 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:06.783171200 +0300 @@ -359,6 +359,17 @@ # Set name for machine-dependent library files AC_ARG_VAR([MACHDEP], [name for machine-dependent library files]) @@ -41,11 +41,11 @@ diff -urN a/configure.ac b/configure.ac + ;; + esac fi - + # Some systems cannot stand _XOPEN_SOURCE being defined at all; they -diff -urN a/Python/getplatform.c b/Python/getplatform.c ---- a/Python/getplatform.c 2014-10-11 14:18:41.761258900 +0100 -+++ b/Python/getplatform.c 2014-10-11 14:18:44.330405800 +0100 +diff -Naur Python-3.5.0-orig/Python/getplatform.c Python-3.5.0/Python/getplatform.c +--- Python-3.5.0-orig/Python/getplatform.c 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/Python/getplatform.c 2015-09-21 13:41:06.789170600 +0300 @@ -1,6 +1,12 @@ #include "Python.h" diff --git a/mingw-w64-python3/0140-MINGW-preset-configure-defaults.patch b/mingw-w64-python3/0140-MINGW-preset-configure-defaults.patch index 62d09d9dcf..2207cb60d3 100644 --- a/mingw-w64-python3/0140-MINGW-preset-configure-defaults.patch +++ b/mingw-w64-python3/0140-MINGW-preset-configure-defaults.patch @@ -1,9 +1,9 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:18:45.441469400 +0100 -+++ b/configure.ac 2014-10-11 14:18:48.045618300 +0100 -@@ -813,6 +813,27 @@ - MULTIARCH=$($CC --print-multiarch 2>/dev/null) - AC_SUBST(MULTIARCH) +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:07.953054200 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:08.078041700 +0300 +@@ -880,6 +880,27 @@ + AC_SUBST(PLATDIR) + AC_SUBST(PLATFORM_TRIPLET) +# initialize default configuration +py_config= @@ -27,11 +27,11 @@ diff -urN a/configure.ac b/configure.ac + fi +fi - AC_SUBST(LIBRARY) - AC_MSG_CHECKING(LIBRARY) -diff -urN a/Misc/config_mingw b/Misc/config_mingw ---- a/Misc/config_mingw 1970-01-01 01:00:00.000000000 +0100 -+++ b/Misc/config_mingw 2014-10-11 14:18:48.047618400 +0100 + AC_MSG_CHECKING([for -Wl,--no-as-needed]) + save_LDFLAGS="$LDFLAGS" +diff -Naur Python-3.5.0-orig/Misc/config_mingw Python-3.5.0/Misc/config_mingw +--- Python-3.5.0-orig/Misc/config_mingw 1970-01-01 03:00:00.000000000 +0300 ++++ Python-3.5.0/Misc/config_mingw 2015-09-21 13:41:08.092040300 +0300 @@ -0,0 +1,12 @@ +# configure defaults for mingw* hosts + @@ -45,9 +45,9 @@ diff -urN a/Misc/config_mingw b/Misc/config_mingw +# files to ignore +ac_cv_file__dev_ptmx=ignore #NOTE: under MSYS environment device exist +ac_cv_file__dev_ptc=no -diff -urN a/Misc/cross_mingw32 b/Misc/cross_mingw32 ---- a/Misc/cross_mingw32 1970-01-01 01:00:00.000000000 +0100 -+++ b/Misc/cross_mingw32 2014-10-11 14:18:48.048618500 +0100 +diff -Naur Python-3.5.0-orig/Misc/cross_mingw32 Python-3.5.0/Misc/cross_mingw32 +--- Python-3.5.0-orig/Misc/cross_mingw32 1970-01-01 03:00:00.000000000 +0300 ++++ Python-3.5.0/Misc/cross_mingw32 2015-09-21 13:41:08.098039700 +0300 @@ -0,0 +1,11 @@ +# configure defaults for mingw32 host if cross-build + diff --git a/mingw-w64-python3/0150-MINGW-configure-largefile-support-for-windows-builds.patch b/mingw-w64-python3/0150-MINGW-configure-largefile-support-for-windows-builds.patch index 1444d8f8c4..c2b9d80b1b 100644 --- a/mingw-w64-python3/0150-MINGW-configure-largefile-support-for-windows-builds.patch +++ b/mingw-w64-python3/0150-MINGW-configure-largefile-support-for-windows-builds.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:18:49.139680900 +0100 -+++ b/configure.ac 2014-10-11 14:18:51.927840400 +0100 -@@ -1873,10 +1873,22 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:09.253924100 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:09.399909500 +0300 +@@ -2061,10 +2061,22 @@ ]) AC_MSG_CHECKING(whether to enable large file support) @@ -24,7 +24,7 @@ diff -urN a/configure.ac b/configure.ac AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1, [Defined to enable large file support when an off_t is bigger than a long and long long is available and at least as big as an off_t. You may need -@@ -1886,9 +1898,6 @@ +@@ -2074,9 +2086,6 @@ else AC_MSG_RESULT(no) fi diff --git a/mingw-w64-python3/0160-MINGW-add-wincrypt.h-in-Python-random.c.patch b/mingw-w64-python3/0160-MINGW-add-wincrypt.h-in-Python-random.c.patch index b6678a0081..8a803603c6 100644 --- a/mingw-w64-python3/0160-MINGW-add-wincrypt.h-in-Python-random.c.patch +++ b/mingw-w64-python3/0160-MINGW-add-wincrypt.h-in-Python-random.c.patch @@ -1,10 +1,10 @@ -diff -urN a/Python/random.c b/Python/random.c ---- a/Python/random.c 2014-10-11 14:18:53.000901800 +0100 -+++ b/Python/random.c 2014-10-11 14:18:55.599050400 +0100 +diff -Naur Python-3.5.0-orig/Python/random.c Python-3.5.0/Python/random.c +--- Python-3.5.0-orig/Python/random.c 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/Python/random.c 2015-09-21 13:41:10.674782000 +0300 @@ -1,6 +1,12 @@ #include "Python.h" #ifdef MS_WINDOWS - #include + # include +#ifdef __MINGW32__ +/* NOTE: All sample MSDN wincrypt programs include header below as it + * is required to ensure that application could be build properly in @@ -12,5 +12,5 @@ diff -urN a/Python/random.c b/Python/random.c +# include +#endif #else - #include - #ifdef HAVE_SYS_STAT_H + # include + # ifdef HAVE_SYS_STAT_H diff --git a/mingw-w64-python3/0170-MINGW-add-srcdir-PC-to-CPPFLAGS.patch b/mingw-w64-python3/0170-MINGW-add-srcdir-PC-to-CPPFLAGS.patch index 2ae8cc4f9d..fa7c4395f0 100644 --- a/mingw-w64-python3/0170-MINGW-add-srcdir-PC-to-CPPFLAGS.patch +++ b/mingw-w64-python3/0170-MINGW-add-srcdir-PC-to-CPPFLAGS.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:18:56.621108800 +0100 -+++ b/configure.ac 2014-10-11 14:18:59.296261800 +0100 -@@ -4838,6 +4838,16 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:10.567792700 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:11.868662600 +0300 +@@ -5068,6 +5068,16 @@ THREADHEADERS="$THREADHEADERS \$(srcdir)/$h" done @@ -16,5 +16,5 @@ diff -urN a/configure.ac b/configure.ac +esac + AC_SUBST(SRCDIRS) - SRCDIRS="Parser Grammar Objects Python Modules Mac" + SRCDIRS="Parser Grammar Objects Python Modules Mac Programs" AC_MSG_CHECKING(for build directories) diff --git a/mingw-w64-python3/0180-MINGW-init-system-calls.patch b/mingw-w64-python3/0180-MINGW-init-system-calls.patch index 2b26d60cfd..954080b2bc 100644 --- a/mingw-w64-python3/0180-MINGW-init-system-calls.patch +++ b/mingw-w64-python3/0180-MINGW-init-system-calls.patch @@ -1,6 +1,6 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:19:00.396324700 +0100 -+++ b/configure.ac 2014-10-11 14:19:03.057477000 +0100 +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:12.983551100 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:13.084541000 +0300 @@ -578,6 +578,14 @@ fi AC_MSG_RESULT($MACHDEP) @@ -16,10 +16,10 @@ diff -urN a/configure.ac b/configure.ac # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET, # it may influence the way we can build extensions, so distutils # needs to check it -diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c ---- a/Modules/posixmodule.c 2014-10-11 14:19:00.992358800 +0100 -+++ b/Modules/posixmodule.c 2014-10-11 14:19:03.062477200 +0100 -@@ -158,6 +158,25 @@ +diff -Naur Python-3.5.0-orig/Modules/posixmodule.c Python-3.5.0/Modules/posixmodule.c +--- Python-3.5.0-orig/Modules/posixmodule.c 2015-09-13 14:41:25.000000000 +0300 ++++ Python-3.5.0/Modules/posixmodule.c 2015-09-21 13:41:13.100539400 +0300 +@@ -154,6 +154,25 @@ #define HAVE_CWAIT 1 #define HAVE_FSYNC 1 #define fsync _commit @@ -45,7 +45,7 @@ diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c #else /* Unix functions that the configure script doesn't check for */ #define HAVE_EXECV 1 -@@ -282,7 +301,7 @@ +@@ -274,7 +293,7 @@ #endif #endif @@ -54,7 +54,7 @@ diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c #ifdef HAVE_DIRECT_H #include #endif -@@ -1177,7 +1196,7 @@ +@@ -1126,7 +1145,7 @@ */ #include static char **environ; @@ -63,27 +63,9 @@ diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c extern char **environ; #endif /* !_MSC_VER */ -@@ -3931,8 +3950,6 @@ - return PyBytes_FromString(outbuf); - } /* end of posix__getfullpathname */ - -- -- - /* A helper function for samepath on windows */ - static PyObject * - posix__getfinalpathname(PyObject *self, PyObject *args) -@@ -12052,7 +12069,7 @@ - } - - --#if (defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__)) && !defined(__QNX__) -+#if defined(MS_WINDOWS) && !defined(__QNX__) - #define INITFUNC PyInit_nt - #define MODNAME "nt" - -diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in ---- a/Modules/Setup.config.in 2014-10-11 14:19:00.985358400 +0100 -+++ b/Modules/Setup.config.in 2014-10-11 14:19:03.064477400 +0100 +diff -Naur Python-3.5.0-orig/Modules/Setup.config.in Python-3.5.0/Modules/Setup.config.in +--- Python-3.5.0-orig/Modules/Setup.config.in 2015-09-13 14:41:24.000000000 +0300 ++++ Python-3.5.0/Modules/Setup.config.in 2015-09-21 13:41:13.141535300 +0300 @@ -3,6 +3,9 @@ # The purpose of this file is to conditionally enable certain modules # based on configure-time options. @@ -94,9 +76,9 @@ diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in # Threading @USE_THREAD_MODULE@_thread _threadmodule.c -diff -urN a/Modules/Setup.dist b/Modules/Setup.dist ---- a/Modules/Setup.dist 2014-10-11 14:19:01.130366700 +0100 -+++ b/Modules/Setup.dist 2014-10-11 14:19:03.065477400 +0100 +diff -Naur Python-3.5.0-orig/Modules/Setup.dist Python-3.5.0/Modules/Setup.dist +--- Python-3.5.0-orig/Modules/Setup.dist 2015-09-13 14:41:24.000000000 +0300 ++++ Python-3.5.0/Modules/Setup.dist 2015-09-21 13:41:13.150534400 +0300 @@ -105,7 +105,6 @@ # This only contains the minimal set of modules required to run the # setup.py script in the root of the Python source tree. diff --git a/mingw-w64-python3/0190-MINGW-detect-REPARSE_DATA_BUFFER.patch b/mingw-w64-python3/0190-MINGW-detect-REPARSE_DATA_BUFFER.patch index 6cb5efc1b3..386958a5d4 100644 --- a/mingw-w64-python3/0190-MINGW-detect-REPARSE_DATA_BUFFER.patch +++ b/mingw-w64-python3/0190-MINGW-detect-REPARSE_DATA_BUFFER.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:19:04.201542400 +0100 -+++ b/configure.ac 2014-10-11 14:19:06.918697800 +0100 -@@ -3602,6 +3602,27 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:14.283421100 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:14.407408700 +0300 +@@ -3815,6 +3815,27 @@ AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)]) fi @@ -29,11 +29,11 @@ diff -urN a/configure.ac b/configure.ac # checks for compiler characteristics AC_C_CHAR_UNSIGNED -diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c ---- a/Modules/posixmodule.c 2014-10-11 14:19:04.768574800 +0100 -+++ b/Modules/posixmodule.c 2014-10-11 14:19:06.923698100 +0100 -@@ -1132,6 +1132,15 @@ - http://msdn.microsoft.com/en-us/library/ms791514.aspx as the required +diff -Naur Python-3.5.0-orig/Modules/winreparse.h Python-3.5.0/Modules/winreparse.h +--- Python-3.5.0-orig/Modules/winreparse.h 2015-09-13 14:41:25.000000000 +0300 ++++ Python-3.5.0/Modules/winreparse.h 2015-09-21 13:41:14.427406700 +0300 +@@ -12,6 +12,15 @@ + http://msdn.microsoft.com/en-us/library/ff552012.aspx as the required include doesn't seem to be present in the Windows SDK (at least as included with Visual Studio Express). */ +#ifndef HAVE_REPARSE_DATA_BUFFER @@ -48,7 +48,7 @@ diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c typedef struct _REPARSE_DATA_BUFFER { ULONG ReparseTag; USHORT ReparseDataLength; -@@ -1162,7 +1171,11 @@ +@@ -42,7 +51,11 @@ #define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER,\ GenericReparseBuffer) @@ -58,14 +58,14 @@ diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c + +#endif /*ndef HAVE_REPARSE_DATA_BUFFER*/ - static int - win32_get_reparse_tag(HANDLE reparse_point_handle, ULONG *reparse_tag) -diff -urN a/pyconfig.h.in b/pyconfig.h.in ---- a/pyconfig.h.in 2014-10-11 14:19:04.201542400 +0100 -+++ b/pyconfig.h.in 2014-10-11 14:19:06.925698200 +0100 -@@ -687,6 +687,9 @@ - /* Define to 1 if you have the `renameat' function. */ - #undef HAVE_RENAMEAT + #ifdef __cplusplus + } +diff -Naur Python-3.5.0-orig/pyconfig.h.in Python-3.5.0/pyconfig.h.in +--- Python-3.5.0-orig/pyconfig.h.in 2015-09-21 13:41:05.444305100 +0300 ++++ Python-3.5.0/pyconfig.h.in 2015-09-21 13:41:14.440405400 +0300 +@@ -711,6 +711,9 @@ + /* Define if readline supports append_history */ + #undef HAVE_RL_APPEND_HISTORY +/* Define to 1 if you have the 'REPARSE_DATA_BUFFER' structure. */ +#undef HAVE_REPARSE_DATA_BUFFER diff --git a/mingw-w64-python3/0200-MINGW-build-in-windows-modules-winreg.patch b/mingw-w64-python3/0200-MINGW-build-in-windows-modules-winreg.patch index 725f3a90e3..0aafc3f504 100644 --- a/mingw-w64-python3/0200-MINGW-build-in-windows-modules-winreg.patch +++ b/mingw-w64-python3/0200-MINGW-build-in-windows-modules-winreg.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:19:07.957757200 +0100 -+++ b/configure.ac 2014-10-11 14:19:10.613909200 +0100 -@@ -2540,6 +2540,14 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:15.569292500 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:15.713278100 +0300 +@@ -2742,6 +2742,14 @@ fi]) AC_MSG_RESULT($with_dbmliborder) @@ -16,21 +16,25 @@ diff -urN a/configure.ac b/configure.ac # Determine if signalmodule should be used. AC_SUBST(USE_SIGNAL_MODULE) AC_SUBST(SIGNAL_OBJS) -diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in ---- a/Modules/Setup.config.in 2014-10-11 14:19:08.700799700 +0100 -+++ b/Modules/Setup.config.in 2014-10-11 14:19:10.615909300 +0100 -@@ -12,5 +12,8 @@ +diff -Naur Python-3.5.0-orig/Modules/Setup.config.in Python-3.5.0/Modules/Setup.config.in +--- Python-3.5.0-orig/Modules/Setup.config.in 2015-09-21 13:41:14.300419400 +0300 ++++ Python-3.5.0/Modules/Setup.config.in 2015-09-21 13:41:15.757273700 +0300 +@@ -12,8 +12,11 @@ + # Threading + @USE_THREAD_MODULE@_thread _threadmodule.c + # The signal module - @USE_SIGNAL_MODULE@signal signalmodule.c +-@USE_SIGNAL_MODULE@_signal signalmodule.c ++@USE_SIGNAL_MODULE@_signal signalmodule.c -lws2_32 +# build-in modules for windows platform: +@USE_WIN32_MODULE@winreg ../PC/winreg.c + # The rest of the modules previously listed in this file are built # by the setup.py script in Python 2.1 and later. -diff -urN a/PC/winreg.c b/PC/winreg.c ---- a/PC/winreg.c 2014-10-11 14:19:08.760803200 +0100 -+++ b/PC/winreg.c 2014-10-11 14:19:10.616909300 +0100 +diff -Naur Python-3.5.0-orig/PC/winreg.c Python-3.5.0/PC/winreg.c +--- Python-3.5.0-orig/PC/winreg.c 2015-09-13 14:41:25.000000000 +0300 ++++ Python-3.5.0/PC/winreg.c 2015-09-21 13:41:15.767272700 +0300 @@ -16,6 +16,25 @@ #include "structmember.h" #include "windows.h" @@ -55,28 +59,5 @@ diff -urN a/PC/winreg.c b/PC/winreg.c +#endif + static BOOL PyHKEY_AsHKEY(PyObject *ob, HKEY *pRes, BOOL bNoneOK); + static BOOL clinic_HKEY_converter(PyObject *ob, void *p); static PyObject *PyHKEY_FromHKEY(HKEY h); - static BOOL PyHKEY_Close(PyObject *obHandle); -@@ -1083,6 +1102,10 @@ - static PyObject * - PyDeleteKeyEx(PyObject *self, PyObject *args, PyObject *kwargs) - { -+#ifdef KEY_WOW64_64KEY -+/* KEY_WOW64_64KEY is defined for _WIN32_WINNT >= 0x0502, -+ * i.e. Windows Server 2003 with SP1, Windows XP with SP2 -+ * and not supported on w2k. */ - HKEY hKey; - PyObject *key; - HMODULE hMod; -@@ -1119,6 +1142,11 @@ - return PyErr_SetFromWindowsErrWithFunction(rc, "RegDeleteKeyEx"); - Py_INCREF(Py_None); - return Py_None; -+#else /*def KEY_WOW64_64KEY*/ -+ PyErr_SetString(PyExc_NotImplementedError, -+ "not implemented on this platform"); -+ return NULL; -+#endif - } - - static PyObject * diff --git a/mingw-w64-python3/0210-MINGW-determine-if-pwdmodule-should-be-used.patch b/mingw-w64-python3/0210-MINGW-determine-if-pwdmodule-should-be-used.patch index 4a04e1ad5d..dfdda3d0e7 100644 --- a/mingw-w64-python3/0210-MINGW-determine-if-pwdmodule-should-be-used.patch +++ b/mingw-w64-python3/0210-MINGW-determine-if-pwdmodule-should-be-used.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:19:11.781976000 +0100 -+++ b/configure.ac 2014-10-11 14:19:14.475130000 +0100 -@@ -2548,6 +2548,13 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:16.957153700 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:17.094140000 +0300 +@@ -2750,6 +2750,13 @@ *-*-mingw*) USE_WIN32_MODULE=;; esac @@ -15,9 +15,9 @@ diff -urN a/configure.ac b/configure.ac # Determine if signalmodule should be used. AC_SUBST(USE_SIGNAL_MODULE) AC_SUBST(SIGNAL_OBJS) -diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in ---- a/Modules/Setup.config.in 2014-10-11 14:19:12.780033100 +0100 -+++ b/Modules/Setup.config.in 2014-10-11 14:19:14.477130100 +0100 +diff -Naur Python-3.5.0-orig/Modules/Setup.config.in Python-3.5.0/Modules/Setup.config.in +--- Python-3.5.0-orig/Modules/Setup.config.in 2015-09-21 13:41:16.975151900 +0300 ++++ Python-3.5.0/Modules/Setup.config.in 2015-09-21 13:41:17.109138500 +0300 @@ -6,6 +6,9 @@ # init system calls(posix/nt/...) for INITFUNC (used by makesetup) @INITSYS@ posixmodule.c @@ -28,9 +28,9 @@ diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in # Threading @USE_THREAD_MODULE@_thread _threadmodule.c -diff -urN a/Modules/Setup.dist b/Modules/Setup.dist ---- a/Modules/Setup.dist 2014-10-11 14:19:12.965043600 +0100 -+++ b/Modules/Setup.dist 2014-10-11 14:19:14.604137400 +0100 +diff -Naur Python-3.5.0-orig/Modules/Setup.dist Python-3.5.0/Modules/Setup.dist +--- Python-3.5.0-orig/Modules/Setup.dist 2015-09-21 13:41:14.307418700 +0300 ++++ Python-3.5.0/Modules/Setup.dist 2015-09-21 13:41:17.134136000 +0300 @@ -106,8 +106,6 @@ # setup.py script in the root of the Python source tree. diff --git a/mingw-w64-python3/0220-MINGW-default-sys.path-calculations-for-windows-plat.patch b/mingw-w64-python3/0220-MINGW-default-sys.path-calculations-for-windows-plat.patch index 7cdc693464..ed8132466e 100644 --- a/mingw-w64-python3/0220-MINGW-default-sys.path-calculations-for-windows-plat.patch +++ b/mingw-w64-python3/0220-MINGW-default-sys.path-calculations-for-windows-plat.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:19:15.629196000 +0100 -+++ b/configure.ac 2014-10-11 14:19:18.332350600 +0100 -@@ -4892,8 +4892,21 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:18.284021000 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:18.437005700 +0300 +@@ -5122,8 +5122,21 @@ ;; esac @@ -16,16 +16,16 @@ diff -urN a/configure.ac b/configure.ac +esac + AC_SUBST(SRCDIRS) - SRCDIRS="Parser Grammar Objects Python Modules Mac" + SRCDIRS="Parser Grammar Objects Python Modules Mac Programs" +case $host in + *-*-mingw*) SRCDIRS="$SRCDIRS PC";; +esac AC_MSG_CHECKING(for build directories) for dir in $SRCDIRS; do if test ! -d $dir; then -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 14:19:15.647197000 +0100 -+++ b/Makefile.pre.in 2014-10-11 14:19:18.335350800 +0100 +diff -Naur Python-3.5.0-orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in +--- Python-3.5.0-orig/Makefile.pre.in 2015-09-13 14:41:23.000000000 +0300 ++++ Python-3.5.0/Makefile.pre.in 2015-09-21 13:41:18.444005000 +0300 @@ -242,7 +242,7 @@ # Modules MODULE_OBJS= \ @@ -35,7 +35,7 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in Modules/main.o \ Modules/gcmodule.o -@@ -704,6 +704,7 @@ +@@ -721,6 +721,7 @@ -DHGBRANCH="\"`LC_ALL=C $(HGBRANCH)`\"" \ -o $@ $(srcdir)/Modules/getbuildinfo.c @@ -43,7 +43,7 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile $(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \ -DPREFIX='"$(prefix)"' \ -@@ -712,6 +713,13 @@ +@@ -729,6 +730,13 @@ -DVPATH='"$(VPATH)"' \ -o $@ $(srcdir)/Modules/getpath.c @@ -54,12 +54,12 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in + -DSRCDIR='"$(srcdir)"' \ + -o $@ $(srcdir)/PC/getpathp.c + - Modules/python.o: $(srcdir)/Modules/python.c - $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Modules/python.c + Programs/python.o: $(srcdir)/Programs/python.c + $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/python.c -diff -urN a/PC/getpathp.c b/PC/getpathp.c ---- a/PC/getpathp.c 2014-10-11 14:19:16.216229600 +0100 -+++ b/PC/getpathp.c 2014-10-11 14:19:18.337350900 +0100 +diff -Naur Python-3.5.0-orig/PC/getpathp.c Python-3.5.0/PC/getpathp.c +--- Python-3.5.0-orig/PC/getpathp.c 2015-09-13 14:41:25.000000000 +0300 ++++ Python-3.5.0/PC/getpathp.c 2015-09-21 13:41:18.457003700 +0300 @@ -87,10 +87,26 @@ * with a semicolon separated path prior to calling Py_Initialize. */ @@ -87,8 +87,8 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c static wchar_t prefix[MAXPATHLEN+1]; static wchar_t progpath[MAXPATHLEN+1]; static wchar_t dllpath[MAXPATHLEN+1]; -@@ -173,6 +189,69 @@ - buffer[n+k] = '\0'; +@@ -183,6 +199,69 @@ + Py_FatalError("buffer overflow in getpathp.c's join()"); } +#ifdef USE_POSIX_PREFIX @@ -121,7 +121,7 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c + if (exists(prefix)) { + wchar_t *vpath; + /* Check source directory if argv0_path is in the build directory. */ -+ vpath = _Py_char2wchar(SRCDIR, NULL); ++ vpath = Py_DecodeLocale(SRCDIR, NULL); + if (vpath != NULL) { + wcscpy(prefix, argv0_path); + join(prefix, vpath); @@ -157,7 +157,7 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c /* gotlandmark only called by search_for_prefix, which ensures 'prefix' is null terminated in bounds. join() ensures 'landmark' can not overflow prefix if too long. -@@ -477,6 +556,9 @@ +@@ -488,6 +567,9 @@ size_t bufsz; wchar_t *pythonhome = Py_GetPythonHome(); wchar_t *envpath = NULL; @@ -167,7 +167,7 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c #ifdef MS_WINDOWS int skiphome, skipdefault; -@@ -537,6 +619,16 @@ +@@ -560,6 +642,16 @@ } } @@ -184,10 +184,10 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c if (pythonhome == NULL || *pythonhome == '\0') { if (search_for_prefix(argv0_path, LANDMARK)) pythonhome = prefix; -@@ -545,11 +637,11 @@ +@@ -568,11 +660,11 @@ } else - wcsncpy(prefix, pythonhome, MAXPATHLEN); + wcscpy_s(prefix, MAXPATHLEN+1, pythonhome); +#endif if (envpath && *envpath == '\0') @@ -195,9 +195,9 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c - #ifdef MS_WINDOWS - /* Calculate zip archive path */ - if (dllpath[0]) /* use name of python DLL */ -@@ -603,6 +695,9 @@ + /* Calculate zip archive path from DLL or exe path */ + if (wcscpy_s(zip_path, MAXPATHLEN+1, dllpath[0] ? dllpath : progpath)) +@@ -624,6 +716,9 @@ } else bufsz = 0; @@ -207,7 +207,7 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c bufsz += wcslen(PYTHONPATH) + 1; bufsz += wcslen(argv0_path) + 1; #ifdef MS_WINDOWS -@@ -645,6 +740,11 @@ +@@ -668,6 +763,11 @@ buf = wcschr(buf, L'\0'); *buf++ = DELIM; } @@ -217,9 +217,9 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c + *buf++ = DELIM; +#endif if (userpath) { - wcscpy(buf, userpath); - buf = wcschr(buf, L'\0'); -@@ -707,6 +807,12 @@ + if (wcscpy_s(buf, bufsz - (buf - module_search_path), userpath)) + Py_FatalError("buffer overflow in getpathp.c's calculate_path()"); +@@ -736,6 +836,12 @@ on the path, and that our 'prefix' directory is the parent of that. */ diff --git a/mingw-w64-python3/0230-MINGW-AC_LIBOBJ-replacement-of-fileblocks.patch b/mingw-w64-python3/0230-MINGW-AC_LIBOBJ-replacement-of-fileblocks.patch index 82ca4d616f..1d904aff55 100644 --- a/mingw-w64-python3/0230-MINGW-AC_LIBOBJ-replacement-of-fileblocks.patch +++ b/mingw-w64-python3/0230-MINGW-AC_LIBOBJ-replacement-of-fileblocks.patch @@ -1,6 +1,6 @@ -diff -urN a/Python/fileblocks.c b/Python/fileblocks.c ---- a/Python/fileblocks.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/Python/fileblocks.c 2014-10-11 14:19:22.203572000 +0100 +diff -Naur Python-3.5.0-orig/Python/fileblocks.c Python-3.5.0/Python/fileblocks.c +--- Python-3.5.0-orig/Python/fileblocks.c 1970-01-01 03:00:00.000000000 +0300 ++++ Python-3.5.0/Python/fileblocks.c 2015-09-21 13:41:19.806868700 +0300 @@ -0,0 +1,17 @@ +/* +-- Macro: AC_STRUCT_ST_BLOCKS diff --git a/mingw-w64-python3/0240-MINGW-use-main-to-start-execution.patch b/mingw-w64-python3/0240-MINGW-use-main-to-start-execution.patch index 3c738b3e7f..86f7595a00 100644 --- a/mingw-w64-python3/0240-MINGW-use-main-to-start-execution.patch +++ b/mingw-w64-python3/0240-MINGW-use-main-to-start-execution.patch @@ -1,12 +1,12 @@ -diff -urN a/Modules/python.c b/Modules/python.c ---- a/Modules/python.c 2014-10-11 14:19:24.163684200 +0100 -+++ b/Modules/python.c 2014-10-11 14:19:25.838780000 +0100 +diff -Naur Python-3.5.0-orig/Programs/python.c Python-3.5.0/Programs/python.c +--- Python-3.5.0-orig/Programs/python.c 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/Programs/python.c 2015-09-21 13:41:21.061743200 +0300 @@ -7,7 +7,7 @@ #include #endif -#ifdef MS_WINDOWS -+#if defined(MS_WINDOWS) && !defined(__MINGW32__) ++#if defined(_MSC_VER) int wmain(int argc, wchar_t **argv) { diff --git a/mingw-w64-python3/0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch b/mingw-w64-python3/0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch index e886f23040..4d4c308581 100644 --- a/mingw-w64-python3/0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch +++ b/mingw-w64-python3/0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch @@ -1,7 +1,7 @@ -diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py ---- a/Lib/distutils/sysconfig.py 2014-10-11 14:19:27.487874300 +0100 -+++ b/Lib/distutils/sysconfig.py 2014-10-11 14:19:30.049020800 +0100 -@@ -165,7 +165,23 @@ +diff -Naur Python-3.5.0-orig/Lib/distutils/sysconfig.py Python-3.5.0/Lib/distutils/sysconfig.py +--- Python-3.5.0-orig/Lib/distutils/sysconfig.py 2015-09-13 14:41:21.000000000 +0300 ++++ Python-3.5.0/Lib/distutils/sysconfig.py 2015-09-21 13:41:22.329616400 +0300 +@@ -156,7 +156,23 @@ Mainly needed on Unix, so we can plug in the information that varies across Unices and is stored in Python's Makefile. """ @@ -26,7 +26,7 @@ diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py if sys.platform == "darwin": # Perform first-time customization of compiler-related # config vars on OS X now that we know we need a compiler. -@@ -175,7 +191,6 @@ +@@ -166,7 +182,6 @@ # that Python itself was built on. Also the user OS # version and build tools may not support the same set # of CPU architectures for universal builds. diff --git a/mingw-w64-python3/0260-MINGW-compiler-enable-new-dtags.patch b/mingw-w64-python3/0260-MINGW-compiler-enable-new-dtags.patch index e5827d192a..26f9cf1159 100644 --- a/mingw-w64-python3/0260-MINGW-compiler-enable-new-dtags.patch +++ b/mingw-w64-python3/0260-MINGW-compiler-enable-new-dtags.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py ---- a/Lib/distutils/unixccompiler.py 2014-10-11 14:19:31.330094100 +0100 -+++ b/Lib/distutils/unixccompiler.py 2014-10-11 14:19:33.906241400 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/unixccompiler.py Python-3.5.0/Lib/distutils/unixccompiler.py +--- Python-3.5.0-orig/Lib/distutils/unixccompiler.py 2015-09-13 14:41:21.000000000 +0300 ++++ Python-3.5.0/Lib/distutils/unixccompiler.py 2015-09-21 13:41:23.620487300 +0300 @@ -238,9 +238,13 @@ # -Wl whenever gcc was used in the past it is probably # safest to keep doing so. diff --git a/mingw-w64-python3/0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch b/mingw-w64-python3/0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch index 1751e881c2..659130a77d 100644 --- a/mingw-w64-python3/0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch +++ b/mingw-w64-python3/0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch @@ -1,7 +1,7 @@ -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 14:19:35.004304200 +0100 -+++ b/Makefile.pre.in 2014-10-11 14:19:37.772462500 +0100 -@@ -635,9 +635,9 @@ +diff -Naur Python-3.5.0-orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in +--- Python-3.5.0-orig/Makefile.pre.in 2015-09-21 13:41:19.691880200 +0300 ++++ Python-3.5.0/Makefile.pre.in 2015-09-21 13:41:24.859363400 +0300 +@@ -647,9 +647,9 @@ $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK) $(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources @@ -13,9 +13,9 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in if test -n "$(DLLLIBRARY)"; then \ $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \ $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \ -diff -urN a/Modules/makesetup b/Modules/makesetup ---- a/Modules/makesetup 2014-10-11 14:19:35.863353300 +0100 -+++ b/Modules/makesetup 2014-10-11 14:19:37.774462700 +0100 +diff -Naur Python-3.5.0-orig/Modules/makesetup Python-3.5.0/Modules/makesetup +--- Python-3.5.0-orig/Modules/makesetup 2015-09-13 14:41:25.000000000 +0300 ++++ Python-3.5.0/Modules/makesetup 2015-09-21 13:41:24.864362900 +0300 @@ -91,7 +91,7 @@ else ExtraLibDir='$(LIBPL)' diff --git a/mingw-w64-python3/0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch b/mingw-w64-python3/0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch index 210a21a2d7..a527c2ca75 100644 --- a/mingw-w64-python3/0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch +++ b/mingw-w64-python3/0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch @@ -1,7 +1,7 @@ -diff -urN a/Include/pyport.h b/Include/pyport.h ---- a/Include/pyport.h 2014-10-11 14:19:43.688800900 +0100 -+++ b/Include/pyport.h 2014-10-11 14:19:45.226888900 +0100 -@@ -739,37 +739,39 @@ +diff -Naur Python-3.5.0-orig/Include/pyport.h Python-3.5.0/Include/pyport.h +--- Python-3.5.0-orig/Include/pyport.h 2015-09-21 13:41:06.668182700 +0300 ++++ Python-3.5.0/Include/pyport.h 2015-09-21 13:41:26.146234700 +0300 +@@ -736,37 +736,39 @@ */ /* @@ -53,7 +53,7 @@ diff -urN a/Include/pyport.h b/Include/pyport.h # define PyAPI_DATA(RTYPE) extern __declspec(dllimport) RTYPE /* module init functions outside the core must be exported */ # if defined(__cplusplus) -@@ -777,7 +779,7 @@ +@@ -774,7 +776,7 @@ # else /* __cplusplus */ # define PyMODINIT_FUNC __declspec(dllexport) PyObject* # endif /* __cplusplus */ @@ -62,10 +62,10 @@ diff -urN a/Include/pyport.h b/Include/pyport.h # endif /* HAVE_DECLSPEC */ #endif /* Py_ENABLE_SHARED */ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:19:43.453787500 +0100 -+++ b/setup.py 2014-10-11 14:19:45.228889000 +0100 -@@ -176,6 +176,9 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:41:26.161233200 +0300 +@@ -184,6 +184,9 @@ def build_extensions(self): diff --git a/mingw-w64-python3/0300-MINGW-configure-for-shared-build.patch b/mingw-w64-python3/0300-MINGW-configure-for-shared-build.patch index 788a2d6f08..175cb26c69 100644 --- a/mingw-w64-python3/0300-MINGW-configure-for-shared-build.patch +++ b/mingw-w64-python3/0300-MINGW-configure-for-shared-build.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:19:46.432957900 +0100 -+++ b/configure.ac 2014-10-11 14:19:49.273120300 +0100 -@@ -1045,6 +1045,13 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:19.666882700 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:27.465102800 +0300 +@@ -1174,6 +1174,13 @@ ;; esac @@ -15,7 +15,7 @@ diff -urN a/configure.ac b/configure.ac else # shared is disabled PY_ENABLE_SHARED=0 case $ac_sys_system in -@@ -1053,6 +1060,10 @@ +@@ -1182,6 +1189,10 @@ LDLIBRARY='libpython$(LDVERSION).dll.a' ;; esac @@ -26,7 +26,7 @@ diff -urN a/configure.ac b/configure.ac fi if test "$cross_compiling" = yes; then -@@ -2213,6 +2224,12 @@ +@@ -2401,6 +2412,12 @@ LDCXXSHARED="g++ -shared -Wl,--enable-auto-image-base";; *) LDSHARED="ld";; esac @@ -39,7 +39,7 @@ diff -urN a/configure.ac b/configure.ac fi AC_MSG_RESULT($LDSHARED) LDCXXSHARED=${LDCXXSHARED-$LDSHARED} -@@ -4888,7 +4905,8 @@ +@@ -5118,7 +5135,8 @@ dnl "errmap.h" from $srcdir/PC. dnl Note we cannot use BASECPPFLAGS as autogenerated pyconfig.h dnl has to be before customized located in ../PC. diff --git a/mingw-w64-python3/0310-MINGW-dynamic-loading-support.patch b/mingw-w64-python3/0310-MINGW-dynamic-loading-support.patch index da021b5873..f688b99a97 100644 --- a/mingw-w64-python3/0310-MINGW-dynamic-loading-support.patch +++ b/mingw-w64-python3/0310-MINGW-dynamic-loading-support.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:19:50.412185500 +0100 -+++ b/configure.ac 2014-10-11 14:19:53.083338300 +0100 -@@ -2084,6 +2084,9 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:28.609988300 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:28.722977000 +0300 +@@ -2272,6 +2272,9 @@ CYGWIN*) SHLIB_SUFFIX=.dll;; *) SHLIB_SUFFIX=.so;; esac @@ -11,7 +11,7 @@ diff -urN a/configure.ac b/configure.ac fi AC_MSG_RESULT($SHLIB_SUFFIX) -@@ -3060,6 +3063,12 @@ +@@ -3272,6 +3275,12 @@ fi ;; esac @@ -24,7 +24,7 @@ diff -urN a/configure.ac b/configure.ac fi AC_MSG_RESULT($DYNLOADFILE) if test "$DYNLOADFILE" != "dynload_stub.o" -@@ -4293,6 +4302,12 @@ +@@ -4519,6 +4528,12 @@ *) EXT_SUFFIX=${SHLIB_SUFFIX};; esac @@ -37,10 +37,10 @@ diff -urN a/configure.ac b/configure.ac AC_MSG_CHECKING(LDVERSION) LDVERSION='$(VERSION)$(ABIFLAGS)' -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 14:19:50.412185500 +0100 -+++ b/Makefile.pre.in 2014-10-11 14:19:53.085338400 +0100 -@@ -746,6 +746,12 @@ +diff -Naur Python-3.5.0-orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in +--- Python-3.5.0-orig/Makefile.pre.in 2015-09-21 13:41:26.014247900 +0300 ++++ Python-3.5.0/Makefile.pre.in 2015-09-21 13:41:28.746974600 +0300 +@@ -763,6 +763,12 @@ -DSHLIB_EXT='"$(EXT_SUFFIX)"' \ -o $@ $(srcdir)/Python/dynload_hpux.c @@ -53,11 +53,11 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile $(CC) -c $(PY_CORE_CFLAGS) \ -DABIFLAGS='"$(ABIFLAGS)"' \ -diff -urN a/Python/dynload_win.c b/Python/dynload_win.c ---- a/Python/dynload_win.c 2014-10-11 14:19:50.418185800 +0100 -+++ b/Python/dynload_win.c 2014-10-11 14:19:53.087338500 +0100 -@@ -18,6 +18,12 @@ - #endif +diff -Naur Python-3.5.0-orig/Python/dynload_win.c Python-3.5.0/Python/dynload_win.c +--- Python-3.5.0-orig/Python/dynload_win.c 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/Python/dynload_win.c 2015-09-21 13:41:28.760973200 +0300 +@@ -35,11 +35,21 @@ + #define PYD_UNTAGGED_SUFFIX PYD_DEBUG_SUFFIX ".pyd" const char *_PyImport_DynLoadFiletab[] = { +#ifdef EXT_SUFFIX @@ -66,13 +66,11 @@ diff -urN a/Python/dynload_win.c b/Python/dynload_win.c +#ifdef SHLIB_SUFFIX + "-abi" PYTHON_ABI_STRING SHLIB_SUFFIX, +#endif - #ifdef _DEBUG - "_d.pyd", - #else -@@ -27,6 +33,10 @@ + PYD_TAGGED_SUFFIX, + PYD_UNTAGGED_SUFFIX, + NULL }; - +#if defined(__MINGW32__) +/* avoid compile error: conflicting types for 'strcasecmp' */ +# define strcasecmp fake_strcasecmp diff --git a/mingw-w64-python3/0320-MINGW-implement-exec-prefix.patch b/mingw-w64-python3/0320-MINGW-implement-exec-prefix.patch index 9db1f704e4..9fa4fa7452 100644 --- a/mingw-w64-python3/0320-MINGW-implement-exec-prefix.patch +++ b/mingw-w64-python3/0320-MINGW-implement-exec-prefix.patch @@ -1,6 +1,6 @@ -diff -urN a/PC/getpathp.c b/PC/getpathp.c ---- a/PC/getpathp.c 2014-10-11 14:19:54.742433200 +0100 -+++ b/PC/getpathp.c 2014-10-11 14:19:56.736547200 +0100 +diff -Naur Python-3.5.0-orig/PC/getpathp.c Python-3.5.0/PC/getpathp.c +--- Python-3.5.0-orig/PC/getpathp.c 2015-09-21 13:41:19.698879500 +0300 ++++ Python-3.5.0/PC/getpathp.c 2015-09-21 13:41:30.111838100 +0300 @@ -104,10 +104,17 @@ # define USE_POSIX_PREFIX @@ -19,7 +19,7 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c static wchar_t progpath[MAXPATHLEN+1]; static wchar_t dllpath[MAXPATHLEN+1]; static wchar_t *module_search_path = NULL; -@@ -290,6 +297,82 @@ +@@ -299,6 +306,82 @@ /* a string loaded from the DLL at startup.*/ extern const char *PyWin_DLLVersionString; @@ -102,7 +102,7 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c /* Load a PYTHONPATH value from the registry. Load from either HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER. -@@ -559,6 +642,9 @@ +@@ -570,6 +653,9 @@ #ifdef USE_POSIX_PREFIX int pfound; #endif @@ -112,7 +112,7 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c #ifdef MS_WINDOWS int skiphome, skipdefault; -@@ -642,6 +728,16 @@ +@@ -665,6 +751,16 @@ if (envpath && *envpath == '\0') envpath = NULL; @@ -127,9 +127,9 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c +#endif + #ifdef MS_WINDOWS - /* Calculate zip archive path */ - if (dllpath[0]) /* use name of python DLL */ -@@ -698,6 +794,9 @@ + /* Calculate zip archive path from DLL or exe path */ + if (wcscpy_s(zip_path, MAXPATHLEN+1, dllpath[0] ? dllpath : progpath)) +@@ -719,6 +815,9 @@ #ifdef USE_POSIX_PREFIX bufsz += wcslen(prefix) + 1; #endif @@ -139,7 +139,7 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c bufsz += wcslen(PYTHONPATH) + 1; bufsz += wcslen(argv0_path) + 1; #ifdef MS_WINDOWS -@@ -745,6 +844,11 @@ +@@ -768,6 +867,11 @@ buf = wcschr(buf, L'\0'); *buf++ = DELIM; #endif @@ -149,9 +149,9 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c + *buf++ = DELIM; +#endif if (userpath) { - wcscpy(buf, userpath); - buf = wcschr(buf, L'\0'); -@@ -812,6 +916,17 @@ + if (wcscpy_s(buf, bufsz - (buf - module_search_path), userpath)) + Py_FatalError("buffer overflow in getpathp.c's calculate_path()"); +@@ -841,6 +945,17 @@ reduce(prefix); reduce(prefix); } @@ -169,7 +169,7 @@ diff -urN a/PC/getpathp.c b/PC/getpathp.c #endif if (*prefix==L'\0') { wchar_t lookBuf[MAXPATHLEN+1]; -@@ -881,7 +996,13 @@ +@@ -910,7 +1025,13 @@ wchar_t * Py_GetExecPrefix(void) { diff --git a/mingw-w64-python3/0330-MINGW-ignore-main-program-for-frozen-scripts.patch b/mingw-w64-python3/0330-MINGW-ignore-main-program-for-frozen-scripts.patch index 7e9128f89d..65c8f32a94 100644 --- a/mingw-w64-python3/0330-MINGW-ignore-main-program-for-frozen-scripts.patch +++ b/mingw-w64-python3/0330-MINGW-ignore-main-program-for-frozen-scripts.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:19:57.869612000 +0100 -+++ b/configure.ac 2014-10-11 14:20:00.517763500 +0100 -@@ -4935,6 +4935,16 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:29.960853200 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:31.365712700 +0300 +@@ -5165,6 +5165,16 @@ ;; esac @@ -16,12 +16,12 @@ diff -urN a/configure.ac b/configure.ac +esac + AC_SUBST(SRCDIRS) - SRCDIRS="Parser Grammar Objects Python Modules Mac" + SRCDIRS="Parser Grammar Objects Python Modules Mac Programs" case $host in -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 14:19:57.869612000 +0100 -+++ b/Makefile.pre.in 2014-10-11 14:20:00.519763600 +0100 -@@ -362,7 +362,7 @@ +diff -Naur Python-3.5.0-orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in +--- Python-3.5.0-orig/Makefile.pre.in 2015-09-21 13:41:29.981851100 +0300 ++++ Python-3.5.0/Makefile.pre.in 2015-09-21 13:41:31.372712000 +0300 +@@ -370,7 +370,7 @@ Python/codecs.o \ Python/dynamic_annotations.o \ Python/errors.o \ diff --git a/mingw-w64-python3/0340-MINGW-setup-exclude-termios-module.patch b/mingw-w64-python3/0340-MINGW-setup-exclude-termios-module.patch index 64f4322902..ebe96a0f26 100644 --- a/mingw-w64-python3/0340-MINGW-setup-exclude-termios-module.patch +++ b/mingw-w64-python3/0340-MINGW-setup-exclude-termios-module.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:20:02.180858600 +0100 -+++ b/setup.py 2014-10-11 14:20:04.365983600 +0100 -@@ -1250,7 +1250,7 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:41:27.356113700 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:41:32.656583600 +0300 +@@ -1270,7 +1270,7 @@ missing.append('_gdbm') # Unix-only modules diff --git a/mingw-w64-python3/0350-MINGW-setup-_multiprocessing-module.patch b/mingw-w64-python3/0350-MINGW-setup-_multiprocessing-module.patch index d601420a93..007f6e2b58 100644 --- a/mingw-w64-python3/0350-MINGW-setup-_multiprocessing-module.patch +++ b/mingw-w64-python3/0350-MINGW-setup-_multiprocessing-module.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:20:05.461046200 +0100 -+++ b/setup.py 2014-10-11 14:20:08.299208600 +0100 -@@ -1512,7 +1512,7 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:41:33.783470900 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:41:33.895459700 +0300 +@@ -1532,7 +1532,7 @@ macros = dict() libraries = ['rt'] @@ -10,7 +10,7 @@ diff -urN a/setup.py b/setup.py multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c', '_multiprocessing/semaphore.c', ] -@@ -1525,8 +1525,12 @@ +@@ -1545,8 +1545,12 @@ multiprocessing_srcs.append('_multiprocessing/semaphore.c') if sysconfig.get_config_var('WITH_THREAD'): diff --git a/mingw-w64-python3/0360-MINGW-setup-select-module.patch b/mingw-w64-python3/0360-MINGW-setup-select-module.patch index 26932e306d..3eebe42742 100644 --- a/mingw-w64-python3/0360-MINGW-setup-select-module.patch +++ b/mingw-w64-python3/0360-MINGW-setup-select-module.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/selectmodule.c b/Modules/selectmodule.c ---- a/Modules/selectmodule.c 2014-10-11 14:20:10.158314900 +0100 -+++ b/Modules/selectmodule.c 2014-10-11 14:20:11.952417500 +0100 +diff -Naur Python-3.5.0-orig/Modules/selectmodule.c Python-3.5.0/Modules/selectmodule.c +--- Python-3.5.0-orig/Modules/selectmodule.c 2015-09-13 14:41:25.000000000 +0300 ++++ Python-3.5.0/Modules/selectmodule.c 2015-09-21 13:41:35.081341100 +0300 @@ -102,9 +102,9 @@ v = PyObject_AsFileDescriptor( o ); if (v == -1) goto finally; @@ -22,10 +22,10 @@ diff -urN a/Modules/selectmodule.c b/Modules/selectmodule.c FD_SET(v, set); /* add object and its file descriptor to the list */ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:20:09.330267500 +0100 -+++ b/setup.py 2014-10-11 14:20:11.953417600 +0100 -@@ -634,7 +634,11 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:41:34.983350900 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:41:35.087340500 +0300 +@@ -654,7 +654,11 @@ missing.append('spwd') # select(2); not on ancient System V diff --git a/mingw-w64-python3/0370-MINGW-setup-_ctypes-module-with-system-libffi.patch b/mingw-w64-python3/0370-MINGW-setup-_ctypes-module-with-system-libffi.patch index 1f3aba4af9..7da2e93657 100644 --- a/mingw-w64-python3/0370-MINGW-setup-_ctypes-module-with-system-libffi.patch +++ b/mingw-w64-python3/0370-MINGW-setup-_ctypes-module-with-system-libffi.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c ---- a/Modules/_ctypes/callproc.c 2014-10-11 14:20:14.135542400 +0100 -+++ b/Modules/_ctypes/callproc.c 2014-10-11 14:20:15.816638500 +0100 +diff -Naur Python-3.5.0-orig/Modules/_ctypes/callproc.c Python-3.5.0/Modules/_ctypes/callproc.c +--- Python-3.5.0-orig/Modules/_ctypes/callproc.c 2015-09-13 14:41:24.000000000 +0300 ++++ Python-3.5.0/Modules/_ctypes/callproc.c 2015-09-21 13:41:36.375211700 +0300 @@ -727,6 +727,21 @@ } @@ -59,10 +59,10 @@ diff -urN a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c #endif if ((flags & FUNCFLAG_PYTHONAPI) && PyErr_Occurred()) return -1; -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:20:14.291551300 +0100 -+++ b/setup.py 2014-10-11 14:20:15.818638700 +0100 -@@ -1940,6 +1940,8 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:41:36.271222100 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:41:36.381211100 +0300 +@@ -1960,6 +1960,8 @@ depends=depends) ext_test = Extension('_ctypes_test', sources=['_ctypes/_ctypes_test.c']) @@ -71,7 +71,7 @@ diff -urN a/setup.py b/setup.py self.extensions.extend([ext, ext_test]) if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"): -@@ -1973,6 +1975,8 @@ +@@ -1993,6 +1995,8 @@ if ffi_inc and ffi_lib: ext.include_dirs.extend(ffi_inc) ext.libraries.append(ffi_lib) diff --git a/mingw-w64-python3/0380-MINGW-defect-winsock2-and-setup-_socket-module.patch b/mingw-w64-python3/0380-MINGW-defect-winsock2-and-setup-_socket-module.patch index 474301edeb..dacd344dec 100644 --- a/mingw-w64-python3/0380-MINGW-defect-winsock2-and-setup-_socket-module.patch +++ b/mingw-w64-python3/0380-MINGW-defect-winsock2-and-setup-_socket-module.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:20:16.937702700 +0100 -+++ b/configure.ac 2014-10-11 14:20:19.747863400 +0100 -@@ -3621,21 +3621,36 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:32.537595500 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:37.654083800 +0300 +@@ -3834,21 +3834,36 @@ ],[]) AC_MSG_RESULT($was_it_defined) @@ -42,7 +42,7 @@ diff -urN a/configure.ac b/configure.ac [ac_cv_struct_sockaddr_storage=yes], [ac_cv_struct_sockaddr_storage=no])) AC_MSG_RESULT($ac_cv_struct_sockaddr_storage) -@@ -4821,7 +4836,10 @@ +@@ -5051,7 +5066,10 @@ AC_CHECK_TYPE(socklen_t,, AC_DEFINE(socklen_t,int, @@ -54,9 +54,9 @@ diff -urN a/configure.ac b/configure.ac #ifdef HAVE_SYS_TYPES_H #include #endif -diff -urN a/Misc/config_mingw b/Misc/config_mingw ---- a/Misc/config_mingw 2014-10-11 14:20:17.566738600 +0100 -+++ b/Misc/config_mingw 2014-10-11 14:20:19.748863500 +0100 +diff -Naur Python-3.5.0-orig/Misc/config_mingw Python-3.5.0/Misc/config_mingw +--- Python-3.5.0-orig/Misc/config_mingw 2015-09-21 13:41:09.276921800 +0300 ++++ Python-3.5.0/Misc/config_mingw 2015-09-21 13:41:37.660083200 +0300 @@ -10,3 +10,6 @@ # files to ignore ac_cv_file__dev_ptmx=ignore #NOTE: under MSYS environment device exist @@ -64,10 +64,10 @@ diff -urN a/Misc/config_mingw b/Misc/config_mingw + +# force detection of winsock2 functionality - require wxp or newer +ac_cv_func_getpeername=yes -diff -urN a/Modules/socketmodule.c b/Modules/socketmodule.c ---- a/Modules/socketmodule.c 2014-10-11 14:20:17.822753300 +0100 -+++ b/Modules/socketmodule.c 2014-10-11 14:20:19.751863600 +0100 -@@ -306,6 +306,12 @@ +diff -Naur Python-3.5.0-orig/Modules/socketmodule.c Python-3.5.0/Modules/socketmodule.c +--- Python-3.5.0-orig/Modules/socketmodule.c 2015-09-13 14:41:25.000000000 +0300 ++++ Python-3.5.0/Modules/socketmodule.c 2015-09-21 13:41:37.675081700 +0300 +@@ -307,6 +307,12 @@ /* Do not include addrinfo.h for MSVC7 or greater. 'addrinfo' and * EAI_* constants are defined in (the already included) ws2tcpip.h. */ @@ -80,9 +80,9 @@ diff -urN a/Modules/socketmodule.c b/Modules/socketmodule.c #else # include "addrinfo.h" #endif -diff -urN a/pyconfig.h.in b/pyconfig.h.in ---- a/pyconfig.h.in 2014-10-11 14:20:17.492734400 +0100 -+++ b/pyconfig.h.in 2014-10-11 14:20:19.752863700 +0100 +diff -Naur Python-3.5.0-orig/pyconfig.h.in Python-3.5.0/pyconfig.h.in +--- Python-3.5.0-orig/pyconfig.h.in 2015-09-21 13:41:15.600289400 +0300 ++++ Python-3.5.0/pyconfig.h.in 2015-09-21 13:41:37.697079500 +0300 @@ -43,7 +43,7 @@ /* Define to 1 if you have the `acosh' function. */ #undef HAVE_ACOSH @@ -92,7 +92,7 @@ diff -urN a/pyconfig.h.in b/pyconfig.h.in #undef HAVE_ADDRINFO /* Define to 1 if you have the `alarm' function. */ -@@ -1149,6 +1149,9 @@ +@@ -1176,6 +1176,9 @@ /* Define to 1 if you have the `writev' function. */ #undef HAVE_WRITEV @@ -102,7 +102,7 @@ diff -urN a/pyconfig.h.in b/pyconfig.h.in /* Define if the zlib library has inflateCopy */ #undef HAVE_ZLIB_COPY -@@ -1481,7 +1484,7 @@ +@@ -1508,7 +1511,7 @@ /* Define to `unsigned int' if does not define. */ #undef size_t @@ -111,10 +111,10 @@ diff -urN a/pyconfig.h.in b/pyconfig.h.in #undef socklen_t /* Define to `int' if doesn't define. */ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:20:18.052766400 +0100 -+++ b/setup.py 2014-10-11 14:20:19.754863800 +0100 -@@ -762,7 +762,11 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:41:37.554093800 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:41:37.705078700 +0300 +@@ -782,7 +782,11 @@ exts.append( Extension('_posixsubprocess', ['_posixsubprocess.c']) ) # socket(2) diff --git a/mingw-w64-python3/0390-MINGW-exclude-unix-only-modules.patch b/mingw-w64-python3/0390-MINGW-exclude-unix-only-modules.patch index 9efddc031c..6c6eb16076 100644 --- a/mingw-w64-python3/0390-MINGW-exclude-unix-only-modules.patch +++ b/mingw-w64-python3/0390-MINGW-exclude-unix-only-modules.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:20:21.973990700 +0100 -+++ b/setup.py 2014-10-11 14:20:23.497077800 +0100 -@@ -621,11 +621,20 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:41:38.945954600 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:41:39.052943900 +0300 +@@ -641,11 +641,20 @@ if (config_h_vars.get('FLOCK_NEEDS_LIBBSD', False)): # May be necessary on AIX for flock function libs = ['bsd'] @@ -25,7 +25,7 @@ diff -urN a/setup.py b/setup.py # spwd, shadow passwords if (config_h_vars.get('HAVE_GETSPNAM', False) or config_h_vars.get('HAVE_GETSPENT', False)): -@@ -648,7 +657,10 @@ +@@ -668,7 +677,10 @@ # Lance Ellinghaus's syslog module # syslog daemon interface @@ -37,7 +37,7 @@ diff -urN a/setup.py b/setup.py # # Here ends the simple stuff. From here on, modules need certain -@@ -749,17 +761,23 @@ +@@ -769,17 +781,23 @@ # crypt module. diff --git a/mingw-w64-python3/0400-MINGW-setup-msvcrt-and-_winapi-modules.patch b/mingw-w64-python3/0400-MINGW-setup-msvcrt-and-_winapi-modules.patch index 2681a2040b..fd9002412a 100644 --- a/mingw-w64-python3/0400-MINGW-setup-msvcrt-and-_winapi-modules.patch +++ b/mingw-w64-python3/0400-MINGW-setup-msvcrt-and-_winapi-modules.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/_winapi.c b/Modules/_winapi.c ---- a/Modules/_winapi.c 2014-10-11 14:20:25.474190900 +0100 -+++ b/Modules/_winapi.c 2014-10-11 14:20:27.224291000 +0100 +diff -Naur Python-3.5.0-orig/Modules/_winapi.c Python-3.5.0/Modules/_winapi.c +--- Python-3.5.0-orig/Modules/_winapi.c 2015-09-13 14:41:24.000000000 +0300 ++++ Python-3.5.0/Modules/_winapi.c 2015-09-21 13:41:40.316817500 +0300 @@ -39,7 +39,9 @@ #define WINDOWS_LEAN_AND_MEAN @@ -8,12 +8,12 @@ diff -urN a/Modules/_winapi.c b/Modules/_winapi.c +#if defined(Py_DEBUG) #include +#endif + #include "winreparse.h" #if defined(MS_WIN32) && !defined(MS_WIN64) - #define HANDLE_TO_PYNUM(handle) \ -diff -urN a/PC/msvcrtmodule.c b/PC/msvcrtmodule.c ---- a/PC/msvcrtmodule.c 2014-10-11 14:20:25.201175300 +0100 -+++ b/PC/msvcrtmodule.c 2014-10-11 14:20:27.225291100 +0100 +diff -Naur Python-3.5.0-orig/PC/msvcrtmodule.c Python-3.5.0/PC/msvcrtmodule.c +--- Python-3.5.0-orig/PC/msvcrtmodule.c 2015-09-13 14:41:25.000000000 +0300 ++++ Python-3.5.0/PC/msvcrtmodule.c 2015-09-21 13:41:40.329816200 +0300 @@ -21,7 +21,9 @@ #include #include @@ -24,10 +24,10 @@ diff -urN a/PC/msvcrtmodule.c b/PC/msvcrtmodule.c #include #ifdef _MSC_VER -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:20:24.603141100 +0100 -+++ b/setup.py 2014-10-11 14:20:27.226291100 +0100 -@@ -887,6 +887,24 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:41:40.205828600 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:41:40.342814900 +0300 +@@ -907,6 +907,24 @@ min_db_ver = (3, 3) db_setup_debug = False # verbose debug prints from this script? diff --git a/mingw-w64-python3/0410-MINGW-build-extensions-with-GCC.patch b/mingw-w64-python3/0410-MINGW-build-extensions-with-GCC.patch index 11edc9abed..e27ad5427c 100644 --- a/mingw-w64-python3/0410-MINGW-build-extensions-with-GCC.patch +++ b/mingw-w64-python3/0410-MINGW-build-extensions-with-GCC.patch @@ -1,7 +1,7 @@ -diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py ---- a/Lib/distutils/command/build_ext.py 2014-10-11 14:20:28.478362800 +0100 -+++ b/Lib/distutils/command/build_ext.py 2014-10-11 14:20:30.943503700 +0100 -@@ -181,7 +181,7 @@ +diff -Naur Python-3.5.0-orig/Lib/distutils/command/build_ext.py Python-3.5.0/Lib/distutils/command/build_ext.py +--- Python-3.5.0-orig/Lib/distutils/command/build_ext.py 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Lib/distutils/command/build_ext.py 2015-09-21 13:41:41.616687500 +0300 +@@ -184,7 +184,7 @@ # for extensions under windows use different directories # for Release and Debug builds. # also Python's library directory must be appended to library_dirs @@ -10,7 +10,7 @@ diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext # the 'libs' directory is for binary installs - we assume that # must be the *native* platform. But we don't really support # cross-compiling via a binary install anyway, so we let it go. -@@ -682,6 +682,20 @@ +@@ -701,6 +701,20 @@ # pyconfig.h that MSVC groks. The other Windows compilers all seem # to need it mentioned explicitly, though, so that's what we do. # Append '_d' to the python import library on debug builds. @@ -29,11 +29,11 @@ diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext + return ext.libraries + extra + if sys.platform == "win32": - from distutils.msvccompiler import MSVCCompiler + from distutils._msvccompiler import MSVCCompiler if not isinstance(self.compiler, MSVCCompiler): -diff -urN a/Lib/distutils/util.py b/Lib/distutils/util.py ---- a/Lib/distutils/util.py 2014-10-11 14:20:28.476362600 +0100 -+++ b/Lib/distutils/util.py 2014-10-11 14:20:30.945503900 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/util.py Python-3.5.0/Lib/distutils/util.py +--- Python-3.5.0-orig/Lib/distutils/util.py 2015-09-13 14:41:21.000000000 +0300 ++++ Python-3.5.0/Lib/distutils/util.py 2015-09-21 13:41:41.633685800 +0300 @@ -40,6 +40,8 @@ For other non-POSIX platforms, currently just returns 'sys.platform'. """ @@ -43,10 +43,10 @@ diff -urN a/Lib/distutils/util.py b/Lib/distutils/util.py # sniff sys.version for architecture. prefix = " bit (" i = sys.version.find(prefix) -diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py ---- a/Lib/sysconfig.py 2014-10-11 14:20:28.531365800 +0100 -+++ b/Lib/sysconfig.py 2014-10-11 14:20:30.946503900 +0100 -@@ -629,6 +629,8 @@ +diff -Naur Python-3.5.0-orig/Lib/sysconfig.py Python-3.5.0/Lib/sysconfig.py +--- Python-3.5.0-orig/Lib/sysconfig.py 2015-09-21 13:41:04.093440200 +0300 ++++ Python-3.5.0/Lib/sysconfig.py 2015-09-21 13:41:41.638685300 +0300 +@@ -622,6 +622,8 @@ For other non-POSIX platforms, currently just returns 'sys.platform'. """ if os.name == 'nt': diff --git a/mingw-w64-python3/0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch b/mingw-w64-python3/0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch index b6c5a7bc71..a472d41577 100644 --- a/mingw-w64-python3/0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch +++ b/mingw-w64-python3/0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py ---- a/Lib/distutils/ccompiler.py 2014-10-11 14:20:32.188575000 +0100 -+++ b/Lib/distutils/ccompiler.py 2014-10-11 14:20:34.825725800 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/ccompiler.py Python-3.5.0/Lib/distutils/ccompiler.py +--- Python-3.5.0-orig/Lib/distutils/ccompiler.py 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Lib/distutils/ccompiler.py 2015-09-21 13:41:42.896559500 +0300 @@ -9,7 +9,7 @@ from distutils.file_util import move_file from distutils.dir_util import mkpath @@ -19,9 +19,9 @@ diff -urN a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py for pattern, compiler in _default_compilers: if re.match(pattern, platform) is not None or \ re.match(pattern, osname) is not None: -diff -urN a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py ---- a/Lib/distutils/cygwinccompiler.py 2014-10-11 14:20:32.188575000 +0100 -+++ b/Lib/distutils/cygwinccompiler.py 2014-10-11 14:20:34.826725900 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py Python-3.5.0/Lib/distutils/cygwinccompiler.py +--- Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py 2015-09-13 14:41:21.000000000 +0300 ++++ Python-3.5.0/Lib/distutils/cygwinccompiler.py 2015-09-21 13:41:42.902558900 +0300 @@ -255,11 +255,16 @@ output_dir = '' obj_names = [] diff --git a/mingw-w64-python3/0430-MINGW-find-import-library.patch b/mingw-w64-python3/0430-MINGW-find-import-library.patch index bc450eaddb..905d61398a 100644 --- a/mingw-w64-python3/0430-MINGW-find-import-library.patch +++ b/mingw-w64-python3/0430-MINGW-find-import-library.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py ---- a/Lib/distutils/cygwinccompiler.py 2014-10-11 14:20:36.095798400 +0100 -+++ b/Lib/distutils/cygwinccompiler.py 2014-10-11 14:20:39.245978600 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py Python-3.5.0/Lib/distutils/cygwinccompiler.py +--- Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py 2015-09-21 13:41:44.031446000 +0300 ++++ Python-3.5.0/Lib/distutils/cygwinccompiler.py 2015-09-21 13:41:44.133435800 +0300 @@ -93,6 +93,7 @@ obj_extension = ".o" static_lib_extension = ".a" diff --git a/mingw-w64-python3/0440-MINGW-setup-_ssl-module.patch b/mingw-w64-python3/0440-MINGW-setup-_ssl-module.patch index b496d4cca9..95b2ce77de 100644 --- a/mingw-w64-python3/0440-MINGW-setup-_ssl-module.patch +++ b/mingw-w64-python3/0440-MINGW-setup-_ssl-module.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:20:41.346098700 +0100 -+++ b/setup.py 2014-10-11 14:20:43.085198200 +0100 -@@ -806,10 +806,13 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:41:41.508698300 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:41:45.377311400 +0300 +@@ -826,10 +826,13 @@ if (ssl_incs is not None and ssl_libs is not None): diff --git a/mingw-w64-python3/0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch b/mingw-w64-python3/0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch index fe992557f3..2d4a0b4389 100644 --- a/mingw-w64-python3/0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch +++ b/mingw-w64-python3/0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py ---- a/Lib/sysconfig.py 2014-10-11 14:20:48.129486700 +0100 -+++ b/Lib/sysconfig.py 2014-10-11 14:20:50.802639600 +0100 +diff -Naur Python-3.5.0-orig/Lib/sysconfig.py Python-3.5.0/Lib/sysconfig.py +--- Python-3.5.0-orig/Lib/sysconfig.py 2015-09-21 13:41:42.792569900 +0300 ++++ Python-3.5.0/Lib/sysconfig.py 2015-09-21 13:41:46.638185300 +0300 @@ -95,6 +95,9 @@ _CONFIG_VARS = None _USER_BASE = None @@ -11,7 +11,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py def _safe_realpath(path): try: -@@ -178,7 +181,7 @@ +@@ -171,7 +174,7 @@ def _get_default_scheme(): @@ -20,7 +20,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py # the default scheme for posix is posix_prefix return 'posix_prefix' return os.name -@@ -190,7 +193,7 @@ +@@ -183,7 +186,7 @@ def joinuser(*args): return os.path.expanduser(os.path.join(*args)) @@ -29,7 +29,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py base = os.environ.get("APPDATA") or "~" if env_base: return env_base -@@ -475,7 +478,7 @@ +@@ -468,7 +471,7 @@ def get_config_h_filename(): """Return the path of pyconfig.h.""" if _PYTHON_BUILD: @@ -38,7 +38,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py inc_dir = os.path.join(_sys_home or _PROJECT_BASE, "PC") else: inc_dir = _sys_home or _PROJECT_BASE -@@ -546,9 +549,9 @@ +@@ -539,9 +542,9 @@ # sys.abiflags may not be defined on all platforms. _CONFIG_VARS['abiflags'] = '' @@ -50,7 +50,7 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py _init_posix(_CONFIG_VARS) # For backward compatibility, see issue19555 SO = _CONFIG_VARS.get('EXT_SUFFIX') -@@ -561,7 +564,7 @@ +@@ -554,7 +557,7 @@ # Always convert srcdir to an absolute path srcdir = _CONFIG_VARS.get('srcdir', _PROJECT_BASE) diff --git a/mingw-w64-python3/0462-MINGW-support-stdcall-without-underscore.patch b/mingw-w64-python3/0462-MINGW-support-stdcall-without-underscore.patch index f3cc87be51..0ee4c453c4 100644 --- a/mingw-w64-python3/0462-MINGW-support-stdcall-without-underscore.patch +++ b/mingw-w64-python3/0462-MINGW-support-stdcall-without-underscore.patch @@ -1,7 +1,7 @@ -diff -urN a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c ---- a/Modules/_ctypes/_ctypes.c 2014-10-11 14:20:52.616743400 +0100 -+++ b/Modules/_ctypes/_ctypes.c 2014-10-11 14:20:54.635858900 +0100 -@@ -3079,11 +3079,28 @@ +diff -Naur Python-3.5.0-orig/Modules/_ctypes/_ctypes.c Python-3.5.0/Modules/_ctypes/_ctypes.c +--- Python-3.5.0-orig/Modules/_ctypes/_ctypes.c 2015-09-13 14:41:24.000000000 +0300 ++++ Python-3.5.0/Modules/_ctypes/_ctypes.c 2015-09-21 13:41:47.943054800 +0300 +@@ -3085,11 +3085,28 @@ mangled_name = alloca(strlen(name) + 1 + 1 + 1 + 3); /* \0 _ @ %d */ if (!mangled_name) return NULL; diff --git a/mingw-w64-python3/0464-use-replace-instead-rename-to-avoid-failure-on-windo.patch b/mingw-w64-python3/0464-use-replace-instead-rename-to-avoid-failure-on-windo.patch index c1d94208ec..19290133ae 100644 --- a/mingw-w64-python3/0464-use-replace-instead-rename-to-avoid-failure-on-windo.patch +++ b/mingw-w64-python3/0464-use-replace-instead-rename-to-avoid-failure-on-windo.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:20:55.673918200 +0100 -+++ b/setup.py 2014-10-11 14:20:58.333070300 +0100 -@@ -2211,7 +2211,7 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:41:46.528196300 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:41:49.175931500 +0300 +@@ -2239,7 +2239,7 @@ else: newfilename = filename + minoronly log.info('renaming {} to {}'.format(filename, newfilename)) diff --git a/mingw-w64-python3/0470-MINGW-avoid-circular-dependency-from-time-module-dur.patch b/mingw-w64-python3/0470-MINGW-avoid-circular-dependency-from-time-module-dur.patch index c5d3f56e8f..d77abc46ff 100644 --- a/mingw-w64-python3/0470-MINGW-avoid-circular-dependency-from-time-module-dur.patch +++ b/mingw-w64-python3/0470-MINGW-avoid-circular-dependency-from-time-module-dur.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py ---- a/Lib/distutils/cygwinccompiler.py 2014-10-11 14:20:59.701148600 +0100 -+++ b/Lib/distutils/cygwinccompiler.py 2014-10-11 14:21:02.113286600 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py Python-3.5.0/Lib/distutils/cygwinccompiler.py +--- Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py 2015-09-21 13:41:45.246324500 +0300 ++++ Python-3.5.0/Lib/distutils/cygwinccompiler.py 2015-09-21 13:41:50.481800900 +0300 @@ -48,7 +48,6 @@ import os import sys diff --git a/mingw-w64-python3/0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch b/mingw-w64-python3/0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch index c4128ae0f8..615286e78c 100644 --- a/mingw-w64-python3/0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch +++ b/mingw-w64-python3/0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch @@ -1,7 +1,7 @@ -diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py ---- a/Lib/distutils/sysconfig.py 2014-10-11 14:21:03.396359900 +0100 -+++ b/Lib/distutils/sysconfig.py 2014-10-11 14:21:05.979507700 +0100 -@@ -62,6 +62,17 @@ +diff -Naur Python-3.5.0-orig/Lib/distutils/sysconfig.py Python-3.5.0/Lib/distutils/sysconfig.py +--- Python-3.5.0-orig/Lib/distutils/sysconfig.py 2015-09-21 13:41:23.499499400 +0300 ++++ Python-3.5.0/Lib/distutils/sysconfig.py 2015-09-21 13:41:51.721676900 +0300 +@@ -53,6 +53,17 @@ return _is_python_source_dir(project_base) python_build = _python_build() @@ -19,7 +19,7 @@ diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py # Calculate the build qualifier flags if they are defined. Adding the flags # to the include and lib directories only makes sense for an installation, not # an in-source build. -@@ -95,7 +106,7 @@ +@@ -86,7 +97,7 @@ """ if prefix is None: prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX @@ -28,7 +28,7 @@ diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py if python_build: # Assume the executable is in the build directory. The # pyconfig.h file should be in the same directory. Since -@@ -140,7 +151,7 @@ +@@ -131,7 +142,7 @@ else: prefix = plat_specific and EXEC_PREFIX or PREFIX @@ -37,7 +37,7 @@ diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py libpython = os.path.join(prefix, "lib", "python" + get_python_version()) if standard_lib: -@@ -250,7 +261,7 @@ +@@ -241,7 +252,7 @@ def get_config_h_filename(): """Return full pathname of installed pyconfig.h file.""" if python_build: @@ -46,7 +46,7 @@ diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py inc_dir = os.path.join(_sys_home or project_base, "PC") else: inc_dir = _sys_home or project_base -@@ -474,6 +485,9 @@ +@@ -465,6 +476,9 @@ def _init_nt(): @@ -56,7 +56,7 @@ diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py """Initialize the module as appropriate for NT""" g = {} # set basic install directories -@@ -523,7 +537,7 @@ +@@ -514,7 +528,7 @@ # Always convert srcdir to an absolute path srcdir = _config_vars.get('srcdir', project_base) @@ -65,7 +65,7 @@ diff -urN a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py if python_build: # If srcdir is a relative path (typically '.' or '..') # then it should be interpreted relative to the directory -@@ -542,7 +556,7 @@ +@@ -533,7 +547,7 @@ # Normally it is relative to the build directory. However, during # testing, for example, we might be running a non-installed python # from a different directory. diff --git a/mingw-w64-python3/0490-MINGW-customize-site.patch b/mingw-w64-python3/0490-MINGW-customize-site.patch index b2b9e4fd84..26c033ae13 100644 --- a/mingw-w64-python3/0490-MINGW-customize-site.patch +++ b/mingw-w64-python3/0490-MINGW-customize-site.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/site.py b/Lib/site.py ---- a/Lib/site.py 2014-10-11 14:21:07.163575400 +0100 -+++ b/Lib/site.py 2014-10-11 14:21:10.032739500 +0100 +diff -Naur Python-3.5.0-orig/Lib/site.py Python-3.5.0/Lib/site.py +--- Python-3.5.0-orig/Lib/site.py 2015-09-13 14:41:21.000000000 +0300 ++++ Python-3.5.0/Lib/site.py 2015-09-21 13:41:52.913557700 +0300 @@ -267,6 +267,12 @@ USER_SITE = get_path('purelib', 'osx_framework_user') return USER_SITE @@ -14,7 +14,7 @@ diff -urN a/Lib/site.py b/Lib/site.py USER_SITE = get_path('purelib', '%s_user' % os.name) return USER_SITE -@@ -298,12 +304,13 @@ +@@ -297,12 +303,13 @@ if prefixes is None: prefixes = PREFIXES diff --git a/mingw-w64-python3/0500-add-python-config-sh.patch b/mingw-w64-python3/0500-add-python-config-sh.patch index d062410397..6aaa698a2f 100644 --- a/mingw-w64-python3/0500-add-python-config-sh.patch +++ b/mingw-w64-python3/0500-add-python-config-sh.patch @@ -1,6 +1,6 @@ -diff -urN a/Misc/python-config.sh.in b/Misc/python-config.sh.in ---- a/Misc/python-config.sh.in 2014-10-11 14:21:11.611829800 +0100 -+++ b/Misc/python-config.sh.in 2014-10-11 14:21:13.685948500 +0100 +diff -Naur Python-3.5.0-orig/Misc/python-config.sh.in Python-3.5.0/Misc/python-config.sh.in +--- Python-3.5.0-orig/Misc/python-config.sh.in 2015-09-13 14:41:24.000000000 +0300 ++++ Python-3.5.0/Misc/python-config.sh.in 2015-09-21 13:41:54.198429200 +0300 @@ -1,25 +1,37 @@ #!/bin/sh diff --git a/mingw-w64-python3/0510-cross-darwin-feature.patch b/mingw-w64-python3/0510-cross-darwin-feature.patch index 48644bc218..14344dedca 100644 --- a/mingw-w64-python3/0510-cross-darwin-feature.patch +++ b/mingw-w64-python3/0510-cross-darwin-feature.patch @@ -1,6 +1,6 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:21:14.772010600 +0100 -+++ b/configure.ac 2014-10-11 14:21:17.561170100 +0100 +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:38.885960600 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:55.469158400 +0300 @@ -374,6 +374,7 @@ then # avoid using uname for cross builds @@ -53,7 +53,7 @@ diff -urN a/configure.ac b/configure.ac *) # for now, limit cross builds to known configurations MACHDEP="unknown" -@@ -1205,6 +1229,26 @@ +@@ -1347,6 +1371,26 @@ AC_SUBST(BASECFLAGS) AC_SUBST(CFLAGS_NODIST) @@ -80,7 +80,7 @@ diff -urN a/configure.ac b/configure.ac # The -arch flags for universal builds on OSX UNIVERSAL_ARCH_FLAGS= AC_SUBST(UNIVERSAL_ARCH_FLAGS) -@@ -1404,7 +1448,7 @@ +@@ -1592,7 +1636,7 @@ ;; esac else @@ -89,7 +89,7 @@ diff -urN a/configure.ac b/configure.ac then # 10.4 was the first release to support Intel archs cur_target="10.4" -@@ -1975,7 +2019,7 @@ +@@ -2163,7 +2207,7 @@ if test "${enable_universalsdk}"; then : else @@ -98,7 +98,7 @@ diff -urN a/configure.ac b/configure.ac fi LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; -@@ -2000,7 +2044,7 @@ +@@ -2188,7 +2232,7 @@ ]])],[ac_osx_32bit=yes],[ac_osx_32bit=no],[ac_osx_32bit=yes]) if test "${ac_osx_32bit}" = "yes"; then @@ -107,7 +107,7 @@ diff -urN a/configure.ac b/configure.ac i386) MACOSX_DEFAULT_ARCH="i386" ;; -@@ -2012,7 +2056,7 @@ +@@ -2200,7 +2244,7 @@ ;; esac else diff --git a/mingw-w64-python3/0520-py3k-mingw-ntthreads-vs-pthreads.patch b/mingw-w64-python3/0520-py3k-mingw-ntthreads-vs-pthreads.patch index e144e3d6e2..d24f7b8fbf 100644 --- a/mingw-w64-python3/0520-py3k-mingw-ntthreads-vs-pthreads.patch +++ b/mingw-w64-python3/0520-py3k-mingw-ntthreads-vs-pthreads.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:21:18.680234100 +0100 -+++ b/configure.ac 2014-10-11 14:21:21.473393900 +0100 -@@ -1708,7 +1708,7 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:56.872256800 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:41:56.988523200 +0300 +@@ -1896,7 +1896,7 @@ AC_HEADER_STDC AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \ fcntl.h grp.h \ @@ -10,7 +10,7 @@ diff -urN a/configure.ac b/configure.ac sched.h shadow.h signal.h stdint.h stropts.h termios.h \ unistd.h utime.h \ poll.h sys/devpoll.h sys/epoll.h sys/poll.h \ -@@ -2418,9 +2418,11 @@ +@@ -2609,9 +2609,11 @@ : else if test "$with_threads" = "yes" -o -z "$with_threads"; then @@ -25,7 +25,7 @@ diff -urN a/configure.ac b/configure.ac fi fi -@@ -4672,6 +4674,14 @@ +@@ -4902,6 +4904,14 @@ AC_CHECK_HEADERS(curses.h ncurses.h) @@ -40,9 +40,9 @@ diff -urN a/configure.ac b/configure.ac # On Solaris, term.h requires curses.h AC_CHECK_HEADERS(term.h,,,[ #ifdef HAVE_CURSES_H -diff -urN a/Python/condvar.h b/Python/condvar.h ---- a/Python/condvar.h 2014-10-11 14:21:18.718236300 +0100 -+++ b/Python/condvar.h 2014-10-11 14:21:21.475394000 +0100 +diff -Naur Python-3.5.0-orig/Python/condvar.h Python-3.5.0/Python/condvar.h +--- Python-3.5.0-orig/Python/condvar.h 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/Python/condvar.h 2015-09-21 13:41:56.995296000 +0300 @@ -42,6 +42,12 @@ #include "Python.h" @@ -56,9 +56,9 @@ diff -urN a/Python/condvar.h b/Python/condvar.h #ifndef _POSIX_THREADS /* This means pthreads are not implemented in libc headers, hence the macro not present in unistd.h. But they still can be implemented as an external -diff -urN a/Python/thread.c b/Python/thread.c ---- a/Python/thread.c 2014-10-11 14:21:18.719236400 +0100 -+++ b/Python/thread.c 2014-10-11 14:21:21.476394100 +0100 +diff -Naur Python-3.5.0-orig/Python/thread.c Python-3.5.0/Python/thread.c +--- Python-3.5.0-orig/Python/thread.c 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/Python/thread.c 2015-09-21 13:41:57.011099200 +0300 @@ -7,6 +7,12 @@ #include "Python.h" diff --git a/mingw-w64-python3/0530-mingw-system-libffi.patch b/mingw-w64-python3/0530-mingw-system-libffi.patch index 4d5b8a628a..58730e87e1 100644 --- a/mingw-w64-python3/0530-mingw-system-libffi.patch +++ b/mingw-w64-python3/0530-mingw-system-libffi.patch @@ -1,21 +1,7 @@ -From 461aa7426a9f93bdfb3fb8f6e309ae2c379bbff4 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Fri, 20 Feb 2015 17:01:56 +0000 -Subject: [PATCH] mingw-w64: ctypes/ffi build fixes - -1. Prevent export of DllGetClassObject and DllCanUnloadNow in _ctypes import lib -2. Don't compile src/dlmalloc.c for Windows -3. Use forward slashes for ffi_{build,src}dir ---- - Modules/_ctypes/libffi/fficonfig.py.in | 4 ++++ - setup.py | 8 ++++++++ - 2 files changed, 12 insertions(+) - -diff --git a/Modules/_ctypes/libffi/fficonfig.py.in b/Modules/_ctypes/libffi/fficonfig.py.in -index d102498..0277c64 100644 ---- a/Modules/_ctypes/libffi/fficonfig.py.in -+++ b/Modules/_ctypes/libffi/fficonfig.py.in -@@ -23,6 +23,7 @@ ffi_platforms = { +diff -Naur Python-3.5.0-orig/Modules/_ctypes/libffi/fficonfig.py.in Python-3.5.0/Modules/_ctypes/libffi/fficonfig.py.in +--- Python-3.5.0-orig/Modules/_ctypes/libffi/fficonfig.py.in 2015-09-13 14:41:24.000000000 +0300 ++++ Python-3.5.0/Modules/_ctypes/libffi/fficonfig.py.in 2015-09-21 13:41:58.520304800 +0300 +@@ -23,6 +23,7 @@ 'FRV': ['src/frv/eabi.S', 'src/frv/ffi.c'], 'S390': ['src/s390/sysv.S', 'src/s390/ffi.c'], 'X86_64': ['src/x86/ffi64.c', 'src/x86/unix64.S', 'src/x86/ffi.c', 'src/x86/sysv.S'], @@ -23,7 +9,7 @@ index d102498..0277c64 100644 'SH': ['src/sh/sysv.S', 'src/sh/ffi.c'], 'SH64': ['src/sh64/sysv.S', 'src/sh64/ffi.c'], 'PA': ['src/pa/linux.S', 'src/pa/ffi.c'], -@@ -30,6 +31,9 @@ ffi_platforms = { +@@ -30,6 +31,9 @@ 'PA_HPUX': ['src/pa/hpux32.S', 'src/pa/ffi.c'], } @@ -33,11 +19,10 @@ index d102498..0277c64 100644 ffi_sources += ffi_platforms['@TARGET@'] ffi_cflags = '@CFLAGS@' -diff --git a/setup.py b/setup.py -index 4622d11..5491b8b 100644 ---- a/setup.py -+++ b/setup.py -@@ -1880,6 +1880,10 @@ class PyBuildExt(build_ext): +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:41:50.381810900 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:41:58.521433600 +0300 +@@ -1908,6 +1908,10 @@ return True def configure_ctypes(self, ext): @@ -48,7 +33,7 @@ index 4622d11..5491b8b 100644 if not self.use_system_libffi: if host_platform == 'darwin': return self.configure_ctypes_darwin(ext) -@@ -1904,6 +1908,10 @@ class PyBuildExt(build_ext): +@@ -1932,6 +1936,10 @@ if not self.verbose: config_args.append("-q") @@ -59,6 +44,3 @@ index 4622d11..5491b8b 100644 # Pass empty CFLAGS because we'll just append the resulting # CFLAGS to Python's; -g or -O2 is to be avoided. cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \ --- -2.3.0 - diff --git a/mingw-w64-python3/0540-mingw-semicolon-DELIM.patch b/mingw-w64-python3/0540-mingw-semicolon-DELIM.patch index 98678800a5..0c1073e2e5 100644 --- a/mingw-w64-python3/0540-mingw-semicolon-DELIM.patch +++ b/mingw-w64-python3/0540-mingw-semicolon-DELIM.patch @@ -1,6 +1,6 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:21:26.491680900 +0100 -+++ b/configure.ac 2014-10-11 14:21:29.254839000 +0100 +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:41:58.367916800 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:42:00.039669600 +0300 @@ -602,6 +602,16 @@ fi AC_MSG_RESULT($MACHDEP) @@ -18,18 +18,18 @@ diff -urN a/configure.ac b/configure.ac AC_MSG_CHECKING([for init system calls]) AC_SUBST(INITSYS) case $host in -diff -urN a/Include/osdefs.h b/Include/osdefs.h ---- a/Include/osdefs.h 2014-10-11 14:21:27.447735600 +0100 -+++ b/Include/osdefs.h 2014-10-11 14:21:29.255839000 +0100 -@@ -14,6 +14,7 @@ +diff -Naur Python-3.5.0-orig/Include/osdefs.h Python-3.5.0/Include/osdefs.h +--- Python-3.5.0-orig/Include/osdefs.h 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Include/osdefs.h 2015-09-21 13:42:00.047571200 +0300 +@@ -12,6 +12,7 @@ #define ALTSEP L'/' #define MAXPATHLEN 256 #define DELIM L';' +#define DELIMSTR ";" #endif - #endif -@@ -42,6 +43,7 @@ + /* Filename separator */ +@@ -39,6 +40,7 @@ /* Search path entry delimiter */ #ifndef DELIM #define DELIM L':' @@ -37,9 +37,9 @@ diff -urN a/Include/osdefs.h b/Include/osdefs.h #endif #ifdef __cplusplus -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 14:21:27.062713600 +0100 -+++ b/Makefile.pre.in 2014-10-11 14:21:29.256839100 +0100 +diff -Naur Python-3.5.0-orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in +--- Python-3.5.0-orig/Makefile.pre.in 2015-09-21 13:41:32.555593700 +0300 ++++ Python-3.5.0/Makefile.pre.in 2015-09-21 13:42:00.074662400 +0300 @@ -98,7 +98,8 @@ # C flags used for building the interpreter object files PY_CORE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE @@ -50,9 +50,9 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in # Machine-dependent subdirectories MACHDEP= @MACHDEP@ -diff -urN a/Modules/getpath.c b/Modules/getpath.c ---- a/Modules/getpath.c 2014-10-11 14:21:27.212722200 +0100 -+++ b/Modules/getpath.c 2014-10-11 14:21:29.258839200 +0100 +diff -Naur Python-3.5.0-orig/Modules/getpath.c Python-3.5.0/Modules/getpath.c +--- Python-3.5.0-orig/Modules/getpath.c 2015-09-13 14:41:24.000000000 +0300 ++++ Python-3.5.0/Modules/getpath.c 2015-09-21 13:42:00.084821600 +0300 @@ -118,7 +118,7 @@ #endif @@ -62,9 +62,9 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c EXEC_PREFIX "/lib/python" VERSION "/lib-dynload" #endif -diff -urN a/Modules/Setup.dist b/Modules/Setup.dist ---- a/Modules/Setup.dist 2014-10-11 14:21:27.422734200 +0100 -+++ b/Modules/Setup.dist 2014-10-11 14:21:29.259839300 +0100 +diff -Naur Python-3.5.0-orig/Modules/Setup.dist Python-3.5.0/Modules/Setup.dist +--- Python-3.5.0-orig/Modules/Setup.dist 2015-09-21 13:41:18.333016100 +0300 ++++ Python-3.5.0/Modules/Setup.dist 2015-09-21 13:42:00.091594400 +0300 @@ -84,14 +84,14 @@ # Empty since this is now just the runtime prefix. DESTPATH= @@ -77,8 +77,8 @@ diff -urN a/Modules/Setup.dist b/Modules/Setup.dist TESTPATH= # Path components for machine- or system-dependent modules and shared libraries --MACHDEPPATH=:plat-$(MACHDEP) -+MACHDEPPATH=$(DELIM)plat-$(MACHDEP) +-MACHDEPPATH=:$(PLATDIR) ++MACHDEPPATH=$(DELIM)$(PLATDIR) EXTRAMACHDEPPATH= COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH) diff --git a/mingw-w64-python3/0550-mingw-regen-use-stddef_h.patch b/mingw-w64-python3/0550-mingw-regen-use-stddef_h.patch index 5bfb75fa91..55b9627fa1 100644 --- a/mingw-w64-python3/0550-mingw-regen-use-stddef_h.patch +++ b/mingw-w64-python3/0550-mingw-regen-use-stddef_h.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/plat-generic/regen b/Lib/plat-generic/regen ---- a/Lib/plat-generic/regen 2014-10-11 14:21:30.502910400 +0100 -+++ b/Lib/plat-generic/regen 2014-10-11 14:21:33.107059300 +0100 +diff -Naur Python-3.5.0-orig/Lib/plat-generic/regen Python-3.5.0/Lib/plat-generic/regen +--- Python-3.5.0-orig/Lib/plat-generic/regen 2015-09-13 14:41:21.000000000 +0300 ++++ Python-3.5.0/Lib/plat-generic/regen 2015-09-21 13:42:01.557905600 +0300 @@ -1,3 +1,9 @@ #! /bin/sh set -v @@ -12,10 +12,10 @@ diff -urN a/Lib/plat-generic/regen b/Lib/plat-generic/regen + REGENHEADER=/usr/include/netinet/in.h +fi +eval $PYTHON_FOR_BUILD ../../Tools/scripts/h2py.py -i "'(u_long)'" $REGENHEADER -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 14:21:31.602973300 +0100 -+++ b/Makefile.pre.in 2014-10-11 14:21:33.108059400 +0100 -@@ -1289,7 +1289,7 @@ +diff -Naur Python-3.5.0-orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in +--- Python-3.5.0-orig/Makefile.pre.in 2015-09-21 13:42:01.413419200 +0300 ++++ Python-3.5.0/Makefile.pre.in 2015-09-21 13:42:01.563549600 +0300 +@@ -1322,7 +1322,7 @@ else \ PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)"; \ fi; \ diff --git a/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch b/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch index 1feab25cbe..9470fa0acd 100644 --- a/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch +++ b/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch @@ -1,8 +1,8 @@ -diff -urN Python-3.4.3.orig/Include/pythonrun.h Python-3.4.3/Include/pythonrun.h ---- Python-3.4.3.orig/Include/pythonrun.h 2015-03-17 14:11:48.550537200 +0000 -+++ Python-3.4.3/Include/pythonrun.h 2015-03-17 14:11:49.728537200 +0000 -@@ -22,6 +22,12 @@ - } PyCompilerFlags; +diff -Naur Python-3.5.0-orig/Include/pylifecycle.h Python-3.5.0/Include/pylifecycle.h +--- Python-3.5.0-orig/Include/pylifecycle.h 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Include/pylifecycle.h 2015-09-21 13:42:03.010671200 +0300 +@@ -7,6 +7,12 @@ + extern "C" { #endif +PyAPI_FUNC(wchar_t) Py_GetSepW(wchar_t *); @@ -14,9 +14,9 @@ diff -urN Python-3.4.3.orig/Include/pythonrun.h Python-3.4.3/Include/pythonrun.h PyAPI_FUNC(void) Py_SetProgramName(wchar_t *); PyAPI_FUNC(wchar_t *) Py_GetProgramName(void); -diff -urN Python-3.4.3.orig/Lib/ntpath.py Python-3.4.3/Lib/ntpath.py ---- Python-3.4.3.orig/Lib/ntpath.py 2015-03-17 14:11:42.000537200 +0000 -+++ Python-3.4.3/Lib/ntpath.py 2015-03-17 14:11:49.731537200 +0000 +diff -Naur Python-3.5.0-orig/Lib/ntpath.py Python-3.5.0/Lib/ntpath.py +--- Python-3.5.0-orig/Lib/ntpath.py 2015-09-13 14:41:21.000000000 +0300 ++++ Python-3.5.0/Lib/ntpath.py 2015-09-21 13:42:03.025345600 +0300 @@ -24,9 +24,13 @@ curdir = '.' pardir = '..' @@ -33,23 +33,7 @@ diff -urN Python-3.4.3.orig/Lib/ntpath.py Python-3.4.3/Lib/ntpath.py defpath = '.;C:\\bin' if 'ce' in sys.builtin_module_names: defpath = '\\Windows' -@@ -40,21 +44,21 @@ - - def _get_sep(path): - if isinstance(path, bytes): -- return b'\\' -+ return str.encode(sep) - else: -- return '\\' -+ return sep - - def _get_altsep(path): - if isinstance(path, bytes): -- return b'/' -+ return str.encode(altsep) - else: -- return '/' -+ return altsep +@@ -34,9 +38,27 @@ def _get_bothseps(path): if isinstance(path, bytes): @@ -58,13 +42,138 @@ diff -urN Python-3.4.3.orig/Lib/ntpath.py Python-3.4.3/Lib/ntpath.py else: - return '\\/' + return sep+altsep ++ ++def _get_sep(path): ++ if isinstance(path, bytes): ++ return b'\\' ++ else: ++ return '\\' ++ ++def _get_altsep(path): ++ if isinstance(path, bytes): ++ return b'/' ++ else: ++ return '/' ++ ++def _get_colon(path): ++ if isinstance(path, bytes): ++ return b':' ++ else: ++ return ':' - def _get_dot(path): + # Normalize the case of a pathname and map slashes to backslashes. + # Other normalizations (such as optimizing '../' away) are not done +@@ -48,9 +52,9 @@ + Makes all characters lowercase and all slashes into backslashes.""" + try: + if isinstance(s, bytes): +- return s.replace(b'/', b'\\').lower() ++ return s.replace(str.encode(altsep), str.encode(sep)).lower() + else: +- return s.replace('/', '\\').lower() ++ return s.replace(altsep, sep).lower() + except (TypeError, AttributeError): + if not isinstance(s, (bytes, str)): + raise TypeError("normcase() argument must be str or bytes, " +@@ -73,13 +77,8 @@ + + # Join two (or more) paths. + def join(path, *paths): +- if isinstance(path, bytes): +- sep = b'\\' +- seps = b'\\/' +- colon = b':' +- else: +- sep = '\\' +- seps = '\\/' +- colon = ':' ++ sep = _get_sep(path) ++ seps = _get_bothseps(path) ++ colon = _get_colon(path) + try: + if not paths: +@@ -138,14 +142,9 @@ + + """ + if len(p) >= 2: +- if isinstance(p, bytes): +- sep = b'\\' +- altsep = b'/' +- colon = b':' +- else: +- sep = '\\' +- altsep = '/' +- colon = ':' ++ sep = _get_sep(p) ++ altsep = _get_altsep(p) ++ colon = _get_colon(p) + normp = p.replace(altsep, sep) + if (normp[0:2] == sep*2) and (normp[2:3] != sep): + # is a UNC path: +@@ -219,9 +223,9 @@ + + def splitext(p): + if isinstance(p, bytes): +- return genericpath._splitext(p, b'\\', b'/', b'.') ++ return genericpath._splitext(p, str.encode(sep), str.encode(altsep), b'.') + else: +- return genericpath._splitext(p, '\\', '/', '.') ++ return genericpath._splitext(p, sep, altsep, '.') + splitext.__doc__ = genericpath._splitext.__doc__ + + +@@ -465,15 +469,13 @@ + + def normpath(path): + """Normalize path, eliminating double slashes, etc.""" ++ sep = _get_sep(path) ++ altsep = _get_altsep(path) if isinstance(path, bytes): -diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c ---- Python-3.4.3.orig/Modules/getpath.c 2015-03-17 14:11:48.335537200 +0000 -+++ Python-3.4.3/Modules/getpath.c 2015-03-17 15:08:01.585542500 +0000 -@@ -135,7 +135,7 @@ +- sep = b'\\' +- altsep = b'/' + curdir = b'.' + pardir = b'..' + special_prefixes = (b'\\\\.\\', b'\\\\?\\') + else: +- sep = '\\' +- altsep = '/' + curdir = '.' + pardir = '..' + special_prefixes = ('\\\\.\\', '\\\\?\\') +@@ -550,12 +554,11 @@ + + def relpath(path, start=None): + """Return a relative version of a path""" ++ sep = _get_sep(path) + if isinstance(path, bytes): +- sep = b'\\' + curdir = b'.' + pardir = b'..' + else: +- sep = '\\' + curdir = '.' + pardir = '..' + +@@ -608,13 +612,11 @@ + if not paths: + raise ValueError('commonpath() arg is an empty sequence') + ++ sep = _get_sep(path) ++ altsep = _get_altsep(path) + if isinstance(paths[0], bytes): +- sep = b'\\' +- altsep = b'/' + curdir = b'.' + else: +- sep = '\\' +- altsep = '/' + curdir = '.' + + try: +diff -Naur Python-3.5.0-orig/Modules/getpath.c Python-3.5.0/Modules/getpath.c +--- Python-3.5.0-orig/Modules/getpath.c 2015-09-21 13:42:01.429222400 +0300 ++++ Python-3.5.0/Modules/getpath.c 2015-09-21 13:42:03.044535200 +0300 +@@ -152,7 +152,7 @@ reduce(wchar_t *dir) { size_t i = wcslen(dir); @@ -73,7 +182,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c --i; dir[i] = '\0'; } -@@ -207,12 +207,12 @@ +@@ -224,12 +224,12 @@ joinpath(wchar_t *buffer, wchar_t *stuff) { size_t n, k; @@ -89,7 +198,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c } if (n > MAXPATHLEN) Py_FatalError("buffer overflow in getpath.c's joinpath()"); -@@ -228,7 +228,7 @@ +@@ -245,7 +245,7 @@ static void copy_absolute(wchar_t *path, wchar_t *p, size_t pathlen) { @@ -98,7 +207,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c wcscpy(path, p); else { if (!_Py_wgetcwd(path, pathlen)) { -@@ -236,7 +236,7 @@ +@@ -253,7 +253,7 @@ wcscpy(path, p); return; } @@ -107,7 +216,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c p += 2; joinpath(path, p); } -@@ -248,7 +248,7 @@ +@@ -265,7 +265,7 @@ { wchar_t buffer[MAXPATHLEN+1]; @@ -116,7 +225,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c return; copy_absolute(buffer, path, MAXPATHLEN+1); wcscpy(path, buffer); -@@ -461,7 +461,7 @@ +@@ -478,7 +478,7 @@ extern wchar_t *Py_GetProgramName(void); static wchar_t delimiter[2] = {DELIM, '\0'}; @@ -125,21 +234,21 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c char *_rtpypath = Py_GETENV("PYTHONPATH"); /* XXX use wide version on Windows */ wchar_t *rtpypath = NULL; wchar_t *home = Py_GetPythonHome(); -@@ -490,11 +490,12 @@ +@@ -507,11 +507,12 @@ #endif wchar_t *_pythonpath, *_prefix, *_exec_prefix; wchar_t *lib_python; + const char * lib_python_VERSION = (Py_GetSepA(NULL) == '/') ? "lib/python" VERSION : "lib\\python" VERSION; - _pythonpath = _Py_char2wchar(PYTHONPATH, NULL); - _prefix = _Py_char2wchar(PREFIX, NULL); - _exec_prefix = _Py_char2wchar(EXEC_PREFIX, NULL); -- lib_python = _Py_char2wchar("lib/python" VERSION, NULL); -+ lib_python = _Py_char2wchar(lib_python_VERSION, NULL); + _pythonpath = Py_DecodeLocale(PYTHONPATH, NULL); + _prefix = Py_DecodeLocale(PREFIX, NULL); + _exec_prefix = Py_DecodeLocale(EXEC_PREFIX, NULL); +- lib_python = Py_DecodeLocale("lib/python" VERSION, NULL); ++ lib_python = Py_DecodeLocale(lib_python_VERSION, NULL); if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) { Py_FatalError( -@@ -512,7 +513,7 @@ +@@ -529,7 +530,7 @@ * other way to find a directory to start the search from. If * $PATH isn't exported, you lose. */ @@ -148,7 +257,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c wcsncpy(progpath, prog, MAXPATHLEN); #ifdef __APPLE__ /* On Mac OS X, if a script uses an interpreter of the form -@@ -561,7 +562,7 @@ +@@ -578,7 +579,7 @@ else progpath[0] = '\0'; PyMem_RawFree(path_buffer); @@ -157,7 +266,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c absolutize(progpath); wcsncpy(argv0_path, progpath, MAXPATHLEN); argv0_path[MAXPATHLEN] = '\0'; -@@ -719,7 +720,7 @@ +@@ -736,7 +737,7 @@ while (1) { wchar_t *delim = wcschr(defpath, DELIM); @@ -166,7 +275,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c /* Paths are relative to prefix */ bufsz += prefixsz; -@@ -760,7 +761,7 @@ +@@ -777,7 +778,7 @@ while (1) { wchar_t *delim = wcschr(defpath, DELIM); @@ -175,10 +284,10 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c wcscat(buf, prefix); wcscat(buf, separator); } -diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodule.c ---- Python-3.4.3.orig/Modules/posixmodule.c 2015-03-17 14:11:48.299537200 +0000 -+++ Python-3.4.3/Modules/posixmodule.c 2015-03-17 14:11:49.742537200 +0000 -@@ -3474,6 +3474,7 @@ +diff -Naur Python-3.5.0-orig/Modules/posixmodule.c Python-3.5.0/Modules/posixmodule.c +--- Python-3.5.0-orig/Modules/posixmodule.c 2015-09-21 13:41:14.291420300 +0300 ++++ Python-3.5.0/Modules/posixmodule.c 2015-09-21 13:42:03.062596000 +0300 +@@ -3318,6 +3318,7 @@ PyMem_RawFree(wbuf2); return PyErr_SetFromWindowsErr(0); } @@ -186,8 +295,8 @@ diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodu resobj = PyUnicode_FromWideChar(wbuf2, len); if (wbuf2 != wbuf) PyMem_RawFree(wbuf2); -@@ -3955,7 +3956,10 @@ - result = GetFullPathNameW(wpath, result, woutbufp, &wtemp); +@@ -3796,7 +3797,10 @@ + result = GetFullPathNameW(path->wide, result, woutbufp, &wtemp); } if (result) + { @@ -195,41 +304,40 @@ diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodu v = PyUnicode_FromWideChar(woutbufp, wcslen(woutbufp)); + } else - v = win32_error_object("GetFullPathNameW", po); + v = win32_error_object("GetFullPathNameW", path->object); if (woutbufp != woutbuf) -@@ -3976,6 +3980,7 @@ - win32_error("GetFullPathName", path); - return NULL; +@@ -3812,6 +3816,7 @@ + win32_error_object("GetFullPathName", path->object); + return NULL; + } ++ Py_NormalizeSepsA(outbuf); + return PyBytes_FromString(outbuf); } -+ Py_NormalizeSepsA(outbuf); - if (PyUnicode_Check(PyTuple_GetItem(args, 0))) { - return PyUnicode_Decode(outbuf, strlen(outbuf), - Py_FileSystemDefaultEncoding, NULL); -@@ -4039,6 +4044,7 @@ + } +@@ -3873,6 +3878,7 @@ if(!CloseHandle(hFile)) - return win32_error_object("CloseHandle", po); + return win32_error_object("CloseHandle", path); + Py_NormalizeSepsW(target_path); target_path[result_length] = 0; result = PyUnicode_FromWideChar(target_path, result_length); PyMem_Free(target_path); -diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c ---- Python-3.4.3.orig/Python/pythonrun.c 2015-03-17 14:11:49.077537200 +0000 -+++ Python-3.4.3/Python/pythonrun.c 2015-03-17 14:11:49.746537200 +0000 -@@ -871,17 +871,124 @@ +diff -Naur Python-3.5.0-orig/Python/pylifecycle.c Python-3.5.0/Python/pylifecycle.c +--- Python-3.5.0-orig/Python/pylifecycle.c 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/Python/pylifecycle.c 2015-09-21 13:42:03.089687200 +0300 +@@ -831,17 +831,123 @@ PyInterpreterState_Delete(interp); } -#ifdef MS_WINDOWS -static wchar_t *progname = L"python"; -+ -+#if defined(MS_WINDOWS) && !defined(__MINGW32__) ++#if defined(_MSC_VER) +static wchar_t progname[PATH_MAX+1] = L"python"; #else -static wchar_t *progname = L"python3"; +static wchar_t progname[PATH_MAX+1] = L"python3"; -+#endif -+ + #endif + +wchar_t +Py_GetSepW(wchar_t *name) +{ @@ -285,7 +393,7 @@ diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c + return sep; +#if defined(__MINGW32__) + msystem = Py_GETENV("MSYSTEM"); - #endif ++#endif + if (msystem != NULL) + sep = '/'; + else @@ -333,7 +441,7 @@ diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c + seps = strchr(seps, altsep); + } +} - ++ void Py_SetProgramName(wchar_t *pn) { @@ -345,10 +453,10 @@ diff -urN Python-3.4.3.orig/Python/pythonrun.c Python-3.4.3/Python/pythonrun.c } wchar_t * -diff -urN Python-3.4.3.orig/Python/sysmodule.c Python-3.4.3/Python/sysmodule.c ---- Python-3.4.3.orig/Python/sysmodule.c 2015-03-17 14:11:49.071537200 +0000 -+++ Python-3.4.3/Python/sysmodule.c 2015-03-17 14:11:49.750537200 +0000 -@@ -1983,7 +1983,7 @@ +diff -Naur Python-3.5.0-orig/Python/sysmodule.c Python-3.5.0/Python/sysmodule.c +--- Python-3.5.0-orig/Python/sysmodule.c 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/Python/sysmodule.c 2015-09-21 13:42:03.098717600 +0300 +@@ -2048,7 +2048,7 @@ argv0 = fullpath; } #endif @@ -357,9 +465,9 @@ diff -urN Python-3.4.3.orig/Python/sysmodule.c Python-3.4.3/Python/sysmodule.c } if (p != NULL) { n = p + 1 - argv0; -diff -urN Python-3.4.3.orig/Python/traceback.c Python-3.4.3/Python/traceback.c ---- Python-3.4.3.orig/Python/traceback.c 2015-03-17 14:11:49.085537200 +0000 -+++ Python-3.4.3/Python/traceback.c 2015-03-17 14:11:49.753537200 +0000 +diff -Naur Python-3.5.0-orig/Python/traceback.c Python-3.5.0/Python/traceback.c +--- Python-3.5.0-orig/Python/traceback.c 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/Python/traceback.c 2015-09-21 13:42:03.115649600 +0300 @@ -199,7 +199,7 @@ filepath = PyBytes_AS_STRING(filebytes); diff --git a/mingw-w64-python3/0560-mingw-use-posix-getpath.patch b/mingw-w64-python3/0560-mingw-use-posix-getpath.patch index 298053d7ad..d9968af475 100644 --- a/mingw-w64-python3/0560-mingw-use-posix-getpath.patch +++ b/mingw-w64-python3/0560-mingw-use-posix-getpath.patch @@ -1,7 +1,7 @@ -diff -urN Python-3.4.3.orig/configure.ac Python-3.4.3/configure.ac ---- Python-3.4.3.orig/configure.ac 2015-03-10 19:54:16.269472000 +0000 -+++ Python-3.4.3/configure.ac 2015-03-10 19:54:18.129848200 +0000 -@@ -5016,7 +5016,7 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:42:01.382941600 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:42:04.711772800 +0300 +@@ -5243,7 +5243,7 @@ case $host in *-*-mingw*) dnl default sys.path calculations for windows platforms @@ -10,21 +10,9 @@ diff -urN Python-3.4.3.orig/configure.ac Python-3.4.3/configure.ac ;; esac -diff -urN Python-3.4.3.orig/Include/fileutils.h Python-3.4.3/Include/fileutils.h ---- Python-3.4.3.orig/Include/fileutils.h 2015-03-10 19:54:16.551268400 +0000 -+++ Python-3.4.3/Include/fileutils.h 2015-03-10 19:54:18.129848200 +0000 -@@ -15,7 +15,7 @@ - const wchar_t *text, - size_t *error_pos); - --#if defined(HAVE_STAT) && !defined(MS_WINDOWS) -+#if defined(HAVE_STAT) && (!defined(MS_WINDOWS) || defined(__MINGW32__)) - PyAPI_FUNC(int) _Py_wstat( - const wchar_t* path, - struct stat *buf); -diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c ---- Python-3.4.3.orig/Modules/getpath.c 2015-03-10 19:54:17.192860200 +0000 -+++ Python-3.4.3/Modules/getpath.c 2015-03-10 20:00:49.860494500 +0000 +diff -Naur Python-3.5.0-orig/Modules/getpath.c Python-3.5.0/Modules/getpath.c +--- Python-3.5.0-orig/Modules/getpath.c 2015-09-21 13:42:04.532293600 +0300 ++++ Python-3.5.0/Modules/getpath.c 2015-09-21 13:42:04.737735200 +0300 @@ -10,6 +10,10 @@ #include #endif @@ -53,17 +41,17 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c +#endif static wchar_t *module_search_path = NULL; - static void -@@ -137,7 +149,7 @@ + /* Get file status. Encode the path to the locale encoding. */ +@@ -154,7 +166,7 @@ size_t i = wcslen(dir); - while (i > 0 && dir[i] != SEP) + while (i > 0 && dir[i] != Py_GetSepW(dir)) --i; - dir[i] = '\0'; + dir[i] = 0; } static int -@@ -455,6 +479,26 @@ +@@ -472,6 +484,26 @@ return 0; } @@ -90,7 +78,7 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c static void calculate_path(void) { -@@ -533,6 +577,10 @@ +@@ -551,6 +583,10 @@ } } #endif /* __APPLE__ */ @@ -101,11 +89,10 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c else if (path) { while (1) { wchar_t *delim = wcschr(path, DELIM); -@@ -871,7 +923,45 @@ +@@ -889,6 +925,45 @@ } --#ifdef __cplusplus +#ifdef MS_WINDOWS +/* Load python3.dll before loading any extension module that might refer + to it. That way, we can be sure that always the python3.dll corresponding @@ -142,25 +129,16 @@ diff -urN Python-3.4.3.orig/Modules/getpath.c Python-3.4.3/Modules/getpath.c + wcscat(py3path, L"\\DLLs\\python3.dll"); + hPython3 = LoadLibraryExW(py3path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); + return hPython3 != NULL; - } - #endif - -+#ifdef __cplusplus +} +#endif -diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodule.c ---- Python-3.4.3.orig/Modules/posixmodule.c 2015-03-10 19:54:17.083661600 +0000 -+++ Python-3.4.3/Modules/posixmodule.c 2015-03-10 19:54:18.145448000 +0000 -@@ -1042,7 +1042,7 @@ ++ + #ifdef __cplusplus } - - /* A helper used by a number of POSIX-only functions */ --#ifndef MS_WINDOWS -+#if !defined(MS_WINDOWS) || defined(__MINGW32__) - static int - _parse_off_t(PyObject* arg, void* addr) - { -@@ -3710,7 +3710,7 @@ + #endif +diff -Naur Python-3.5.0-orig/Modules/posixmodule.c Python-3.5.0/Modules/posixmodule.c +--- Python-3.5.0-orig/Modules/posixmodule.c 2015-09-21 13:42:04.541324000 +0300 ++++ Python-3.5.0/Modules/posixmodule.c 2015-09-21 13:42:04.747894400 +0300 +@@ -3548,7 +3548,7 @@ Py_END_ALLOW_THREADS /* FindNextFile sets error to ERROR_NO_MORE_FILES if it got to the end of the directory. */ @@ -169,7 +147,7 @@ diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodu Py_DECREF(list); list = path_error(path); goto exit; -@@ -3765,7 +3765,7 @@ +@@ -3603,7 +3603,7 @@ Py_END_ALLOW_THREADS /* FindNextFile sets error to ERROR_NO_MORE_FILES if it got to the end of the directory. */ @@ -178,15 +156,3 @@ diff -urN Python-3.4.3.orig/Modules/posixmodule.c Python-3.4.3/Modules/posixmodu Py_DECREF(list); list = path_error(path); goto exit; -diff -urN a/Python/fileutils.c b/Python/fileutils.c ---- a/Python/fileutils.c 2014-10-11 14:21:34.292127100 +0100 -+++ b/Python/fileutils.c 2014-10-11 14:21:37.011282600 +0100 -@@ -511,7 +511,7 @@ - Not sure whether the MS_WINDOWS guards are necessary: - perhaps for cygwin/mingw builds? - */ --#if defined(HAVE_STAT) && !defined(MS_WINDOWS) -+#if defined(HAVE_STAT) && (!defined(MS_WINDOWS) || defined(__MINGW32__)) - - /* Get file status. Encode the path to the locale encoding. */ - diff --git a/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch b/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch index 508747a3b8..eb427ad35d 100644 --- a/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch +++ b/mingw-w64-python3/0565-mingw-add-ModuleFileName-dir-to-PATH.patch @@ -1,7 +1,7 @@ -diff -urN a/Modules/getpath.c b/Modules/getpath.c ---- a/Modules/getpath.c 2014-10-11 14:21:38.969394600 +0100 -+++ b/Modules/getpath.c 2014-10-11 14:21:40.899505000 +0100 -@@ -872,6 +872,32 @@ +diff -Naur Python-3.5.0-orig/Modules/getpath.c Python-3.5.0/Modules/getpath.c +--- Python-3.5.0-orig/Modules/getpath.c 2015-09-21 13:42:06.130674400 +0300 ++++ Python-3.5.0/Modules/getpath.c 2015-09-21 13:42:06.274032000 +0300 +@@ -865,6 +865,32 @@ else wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN); @@ -10,7 +10,7 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c + wchar_t *module_path, *new_path; + /* Add path of executable/dll to system path. This + * is so that the correct tcl??.dll and tk??.dll get used. */ -+ path_buffer = _Py_char2wchar(_path, NULL); ++ path_buffer = Py_DecodeLocale(_path, NULL); + module_path = dllpath[0] ? dllpath : progpath; + new_path = (wchar_t *)alloca(sizeof(wchar_t)*(wcslen(L"PATH=")+wcslen(module_path)+1+wcslen(path_buffer)+1)); + if (new_path) { diff --git a/mingw-w64-python3/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch b/mingw-w64-python3/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch index 883fee1c0d..1bee045dfe 100644 --- a/mingw-w64-python3/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch +++ b/mingw-w64-python3/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch @@ -1,11 +1,10 @@ -diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in ---- a/Modules/Setup.config.in 2014-10-11 14:21:42.640604600 +0100 -+++ b/Modules/Setup.config.in 2014-10-11 14:21:44.587716000 +0100 -@@ -17,6 +17,8 @@ +diff -Naur Python-3.5.0-orig/Modules/Setup.config.in Python-3.5.0/Modules/Setup.config.in +--- Python-3.5.0-orig/Modules/Setup.config.in 2015-09-21 13:41:18.307018700 +0300 ++++ Python-3.5.0/Modules/Setup.config.in 2015-09-21 13:42:07.709865600 +0300 +@@ -17,6 +17,7 @@ # build-in modules for windows platform: @USE_WIN32_MODULE@winreg ../PC/winreg.c -+@USE_WIN32_MODULE@time timemodule.c +@USE_WIN32_MODULE@msvcrt ../PC/msvcrtmodule.c # The rest of the modules previously listed in this file are built diff --git a/mingw-w64-python3/0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch b/mingw-w64-python3/0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch index c840d9c061..387a8df32e 100644 --- a/mingw-w64-python3/0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch +++ b/mingw-w64-python3/0590-mingw-INSTALL_SHARED-LDLIBRARY-LIBPL.patch @@ -1,7 +1,7 @@ -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 14:21:49.602002800 +0100 -+++ b/Makefile.pre.in 2014-10-11 14:21:52.301157100 +0100 -@@ -1071,6 +1071,7 @@ +diff -Naur Python-3.5.0-orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in +--- Python-3.5.0-orig/Makefile.pre.in 2015-09-21 13:42:02.883116800 +0300 ++++ Python-3.5.0/Makefile.pre.in 2015-09-21 13:42:09.127638400 +0300 +@@ -1091,6 +1091,7 @@ if test -f $(LDLIBRARY) && test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \ if test -n "$(DLLLIBRARY)" ; then \ $(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \ diff --git a/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch b/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch index bfaa884301..efbbe07e1c 100644 --- a/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch +++ b/mingw-w64-python3/0610-msys-cygwin-semi-native-build-sysconfig.patch @@ -1,6 +1,6 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:21:57.625461700 +0100 -+++ b/configure.ac 2014-10-11 14:22:00.282613700 +0100 +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:42:06.113742400 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:42:10.548797600 +0300 @@ -612,6 +612,65 @@ AC_MSG_RESULT([$DELIM]) AC_SUBST(DELIM) @@ -67,10 +67,10 @@ diff -urN a/configure.ac b/configure.ac AC_MSG_CHECKING([for init system calls]) AC_SUBST(INITSYS) case $host in -diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py ---- a/Lib/sysconfig.py 2014-10-11 14:21:57.705466200 +0100 -+++ b/Lib/sysconfig.py 2014-10-11 14:22:00.284613800 +0100 -@@ -330,6 +330,14 @@ +diff -Naur Python-3.5.0-orig/Lib/sysconfig.py Python-3.5.0/Lib/sysconfig.py +--- Python-3.5.0-orig/Lib/sysconfig.py 2015-09-21 13:41:47.820067100 +0300 ++++ Python-3.5.0/Lib/sysconfig.py 2015-09-21 13:42:10.564600800 +0300 +@@ -323,6 +323,14 @@ if isinstance(v, str): done[k] = v.strip() @@ -85,9 +85,9 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py # save the results in the global dictionary vars.update(done) return vars -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 14:21:57.625461700 +0100 -+++ b/Makefile.pre.in 2014-10-11 14:22:00.286613900 +0100 +diff -Naur Python-3.5.0-orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in +--- Python-3.5.0-orig/Makefile.pre.in 2015-09-21 13:42:10.415599200 +0300 ++++ Python-3.5.0/Makefile.pre.in 2015-09-21 13:42:10.572502400 +0300 @@ -115,6 +115,13 @@ # Install prefix for data files datarootdir= @datarootdir@ @@ -102,12 +102,3 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in # Expanded directories BINDIR= @bindir@ LIBDIR= @libdir@ -@@ -711,7 +718,7 @@ - -DPREFIX='"$(prefix)"' \ - -DEXEC_PREFIX='"$(exec_prefix)"' \ - -DVERSION='"$(VERSION)"' \ -- -DVPATH='"$(VPATH)"' \ -+ -DVPATH='"$(VPATH)"' \ - -o $@ $(srcdir)/Modules/getpath.c - - # default sys.path calculations for windows platforms diff --git a/mingw-w64-python3/0620-mingw-sysconfig-like-posix.patch b/mingw-w64-python3/0620-mingw-sysconfig-like-posix.patch index 9e88a9feec..6d906d0ccf 100644 --- a/mingw-w64-python3/0620-mingw-sysconfig-like-posix.patch +++ b/mingw-w64-python3/0620-mingw-sysconfig-like-posix.patch @@ -1,7 +1,7 @@ -diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py ---- a/Lib/distutils/command/build_ext.py 2014-10-11 14:22:01.460681000 +0100 -+++ b/Lib/distutils/command/build_ext.py 2014-10-11 14:22:04.124833400 +0100 -@@ -226,9 +226,10 @@ +diff -Naur Python-3.5.0-orig/Lib/distutils/command/build_ext.py Python-3.5.0/Lib/distutils/command/build_ext.py +--- Python-3.5.0-orig/Lib/distutils/command/build_ext.py 2015-09-21 13:41:42.771572000 +0300 ++++ Python-3.5.0/Lib/distutils/command/build_ext.py 2015-09-21 13:42:12.037684800 +0300 +@@ -219,9 +219,10 @@ if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos': if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): # building third party extensions @@ -13,9 +13,9 @@ diff -urN a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext else: # building python standard extensions self.library_dirs.append('.') -diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py ---- a/Lib/sysconfig.py 2014-10-11 14:22:01.449680400 +0100 -+++ b/Lib/sysconfig.py 2014-10-11 14:22:04.125833500 +0100 +diff -Naur Python-3.5.0-orig/Lib/sysconfig.py Python-3.5.0/Lib/sysconfig.py +--- Python-3.5.0-orig/Lib/sysconfig.py 2015-09-21 13:42:11.910130400 +0300 ++++ Python-3.5.0/Lib/sysconfig.py 2015-09-21 13:42:12.044457600 +0300 @@ -42,22 +42,22 @@ 'data': '{base}', }, @@ -42,17 +42,17 @@ diff -urN a/Lib/sysconfig.py b/Lib/sysconfig.py - 'purelib': '{userbase}/Python{py_version_nodot}/site-packages', - 'platlib': '{userbase}/Python{py_version_nodot}/site-packages', - 'include': '{userbase}/Python{py_version_nodot}/Include', -- 'scripts': '{userbase}/Scripts', +- 'scripts': '{userbase}/Python{py_version_nodot}/Scripts', + 'stdlib': '{userbase}/lib/python{py_version_short}', + 'platstdlib': '{userbase}/lib/python{py_version_short}', -+ 'purelib': '{userbase}/lib/python{py_version_short}', -+ 'platlib': '{userbase}/lib/python{py_version_short}', ++ 'purelib': '{userbase}/lib/python{py_version_short}/site-packages', ++ 'platlib': '{userbase}/lib/python{py_version_short}/site-packages', + 'include': '{userbase}/include/python{py_version_short}', + 'scripts': '{userbase}/bin', 'data': '{userbase}', }, 'posix_user': { -@@ -443,7 +443,7 @@ +@@ -436,7 +436,7 @@ vars['INCLUDEPY'] = get_path('include') vars['EXT_SUFFIX'] = '.pyd' vars['EXE'] = '.exe' diff --git a/mingw-w64-python3/0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch b/mingw-w64-python3/0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch index d3e2cf7d0c..f4cc1bfa06 100644 --- a/mingw-w64-python3/0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch +++ b/mingw-w64-python3/0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py ---- a/Lib/distutils/cygwinccompiler.py 2014-10-11 14:22:05.252897900 +0100 -+++ b/Lib/distutils/cygwinccompiler.py 2014-10-11 14:22:07.895049100 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py Python-3.5.0/Lib/distutils/cygwinccompiler.py +--- Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py 2015-09-21 13:41:51.606688400 +0300 ++++ Python-3.5.0/Lib/distutils/cygwinccompiler.py 2015-09-21 13:42:14.136124000 +0300 @@ -58,6 +58,7 @@ from distutils import log from distutils.version import LooseVersion @@ -36,21 +36,21 @@ diff -urN a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py return tuple([_find_exe_version(cmd) for cmd in commands]) def is_cygwingcc(): -diff -urN a/Modules/Setup.config.in b/Modules/Setup.config.in ---- a/Modules/Setup.config.in 2014-10-11 14:22:06.098946300 +0100 -+++ b/Modules/Setup.config.in 2014-10-11 14:22:07.896049100 +0100 -@@ -19,6 +19,7 @@ +diff -Naur Python-3.5.0-orig/Modules/Setup.config.in Python-3.5.0/Modules/Setup.config.in +--- Python-3.5.0-orig/Modules/Setup.config.in 2015-09-21 13:42:08.977508000 +0300 ++++ Python-3.5.0/Modules/Setup.config.in 2015-09-21 13:42:14.150798400 +0300 +@@ -18,6 +18,7 @@ + # build-in modules for windows platform: @USE_WIN32_MODULE@winreg ../PC/winreg.c - @USE_WIN32_MODULE@time timemodule.c @USE_WIN32_MODULE@msvcrt ../PC/msvcrtmodule.c +@USE_WIN32_MODULE@_winapi _winapi.c # The rest of the modules previously listed in this file are built # by the setup.py script in Python 2.1 and later. -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:22:05.773927700 +0100 -+++ b/setup.py 2014-10-11 14:22:07.897049200 +0100 -@@ -898,7 +898,9 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:41:59.908728800 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:42:14.157571200 +0300 +@@ -918,7 +918,9 @@ exts.append( Extension('msvcrt', [os.path.join(pc_srcdir, p) for p in ['msvcrtmodule.c']]) ) @@ -59,5 +59,5 @@ diff -urN a/setup.py b/setup.py + # use subprocess (which uses Popen) in cygwinccompiler.py + # exts.append( Extension('_winapi', ['_winapi.c']) ) - def allow_db_ver(db_ver): - """Returns a boolean if the given BerkeleyDB version is acceptable. + exts.append( Extension('_msi', [os.path.join(pc_srcdir, p) + for p in ['_msi.c']], diff --git a/mingw-w64-python3/0640-mingw-x86_64-size_t-format-specifier-pid_t.patch b/mingw-w64-python3/0640-mingw-x86_64-size_t-format-specifier-pid_t.patch index 425727110c..6bde7c9118 100644 --- a/mingw-w64-python3/0640-mingw-x86_64-size_t-format-specifier-pid_t.patch +++ b/mingw-w64-python3/0640-mingw-x86_64-size_t-format-specifier-pid_t.patch @@ -1,6 +1,6 @@ -diff -urN a/Include/pyport.h b/Include/pyport.h ---- a/Include/pyport.h 2014-10-11 14:22:09.813158800 +0100 -+++ b/Include/pyport.h 2014-10-11 14:22:11.598260900 +0100 +diff -Naur Python-3.5.0-orig/Include/pyport.h Python-3.5.0/Include/pyport.h +--- Python-3.5.0-orig/Include/pyport.h 2015-09-21 13:41:27.338115500 +0300 ++++ Python-3.5.0/Include/pyport.h 2015-09-21 13:42:15.719830400 +0300 @@ -257,6 +257,8 @@ # define PY_FORMAT_SIZE_T "l" # elif defined(MS_WINDOWS) diff --git a/mingw-w64-python3/0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch b/mingw-w64-python3/0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch index 4a1ee12660..d0cda0af13 100644 --- a/mingw-w64-python3/0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch +++ b/mingw-w64-python3/0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:22:12.606318500 +0100 -+++ b/setup.py 2014-10-11 14:22:15.132463000 +0100 -@@ -456,10 +456,10 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:42:15.605821600 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:42:17.110512000 +0300 +@@ -474,10 +474,10 @@ if not cross_compiling: add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') diff --git a/mingw-w64-python3/0660-mingw-use-backslashes-in-compileall-py.patch b/mingw-w64-python3/0660-mingw-use-backslashes-in-compileall-py.patch index 1ee8dffb19..e3c73a8ee8 100644 --- a/mingw-w64-python3/0660-mingw-use-backslashes-in-compileall-py.patch +++ b/mingw-w64-python3/0660-mingw-use-backslashes-in-compileall-py.patch @@ -1,7 +1,7 @@ -diff -urN a/Lib/compileall.py b/Lib/compileall.py ---- a/Lib/compileall.py 2014-10-11 14:22:16.521542500 +0100 -+++ b/Lib/compileall.py 2014-10-11 14:22:18.904678800 +0100 -@@ -46,6 +46,8 @@ +diff -Naur Python-3.5.0-orig/Lib/compileall.py Python-3.5.0/Lib/compileall.py +--- Python-3.5.0-orig/Lib/compileall.py 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Lib/compileall.py 2015-09-21 13:42:18.631005600 +0300 +@@ -38,6 +38,8 @@ if name == '__pycache__': continue fullname = os.path.join(dir, name) diff --git a/mingw-w64-python3/0670-msys-convert_path-fix-and-root-hack.patch b/mingw-w64-python3/0670-msys-convert_path-fix-and-root-hack.patch index 7eecfaafce..873f0469fd 100644 --- a/mingw-w64-python3/0670-msys-convert_path-fix-and-root-hack.patch +++ b/mingw-w64-python3/0670-msys-convert_path-fix-and-root-hack.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py ---- a/Lib/distutils/command/install.py 2014-10-11 14:22:19.987740700 +0100 -+++ b/Lib/distutils/command/install.py 2014-10-11 14:22:22.629891800 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/command/install.py Python-3.5.0/Lib/distutils/command/install.py +--- Python-3.5.0-orig/Lib/distutils/command/install.py 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Lib/distutils/command/install.py 2015-09-21 13:42:20.106347200 +0300 @@ -340,7 +340,8 @@ # Convert directories from Unix /-separated syntax to the local @@ -11,9 +11,9 @@ diff -urN a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py 'scripts', 'data', 'headers', 'userbase', 'usersite') -diff -urN a/Lib/distutils/util.py b/Lib/distutils/util.py ---- a/Lib/distutils/util.py 2014-10-11 14:22:20.001741500 +0100 -+++ b/Lib/distutils/util.py 2014-10-11 14:22:22.631892000 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/util.py Python-3.5.0/Lib/distutils/util.py +--- Python-3.5.0-orig/Lib/distutils/util.py 2015-09-21 13:41:42.786570500 +0300 ++++ Python-3.5.0/Lib/distutils/util.py 2015-09-21 13:42:20.121021600 +0300 @@ -133,6 +133,13 @@ paths.remove('.') if not paths: @@ -62,10 +62,10 @@ diff -urN a/Lib/distutils/util.py b/Lib/distutils/util.py else: raise DistutilsPlatformError("nothing known about platform '%s'" % os.name) -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 14:22:19.927737300 +0100 -+++ b/Makefile.pre.in 2014-10-11 14:22:22.632892000 +0100 -@@ -1387,6 +1387,12 @@ +diff -Naur Python-3.5.0-orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in +--- Python-3.5.0-orig/Makefile.pre.in 2015-09-21 13:42:11.916903200 +0300 ++++ Python-3.5.0/Makefile.pre.in 2015-09-21 13:42:20.127794400 +0300 +@@ -1420,6 +1420,12 @@ else true; \ fi @@ -78,7 +78,7 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: sharedmods -@@ -1394,9 +1400,9 @@ +@@ -1427,9 +1433,9 @@ --prefix=$(prefix) \ --install-scripts=$(BINDIR) \ --install-platlib=$(DESTSHARED) \ @@ -91,7 +91,7 @@ diff -urN a/Makefile.pre.in b/Makefile.pre.in # Here are a couple of targets for MacOSX again, to install a full # framework-based Python. frameworkinstall installs everything, the -@@ -1477,7 +1483,7 @@ +@@ -1510,7 +1516,7 @@ $(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/setup.py install \ --prefix=$(prefix) \ --install-scripts=$(BINDIR) \ diff --git a/mingw-w64-python3/0690-allow-static-tcltk.patch b/mingw-w64-python3/0690-allow-static-tcltk.patch index e86ce2190a..52be70400c 100644 --- a/mingw-w64-python3/0690-allow-static-tcltk.patch +++ b/mingw-w64-python3/0690-allow-static-tcltk.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:22:23.717954100 +0100 -+++ b/setup.py 2014-10-11 14:22:26.325103200 +0100 -@@ -535,7 +535,7 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:42:18.491034400 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:42:21.553468800 +0300 +@@ -553,7 +553,7 @@ if host_platform == 'hp-ux11': lib_dirs += ['/usr/lib/hpux64', '/usr/lib/hpux32'] @@ -10,7 +10,7 @@ diff -urN a/setup.py b/setup.py # This should work on any unixy platform ;-) # If the user has bothered specifying additional -I and -L flags # in OPT and LDFLAGS we might as well use them here. -@@ -545,6 +545,8 @@ +@@ -563,6 +563,8 @@ # directories with whitespace in the name to store libraries. cflags, ldflags = sysconfig.get_config_vars( 'CFLAGS', 'LDFLAGS') @@ -19,7 +19,7 @@ diff -urN a/setup.py b/setup.py for item in cflags.split(): if item.startswith('-I'): inc_dirs.append(item[2:]) -@@ -1755,14 +1757,19 @@ +@@ -1783,14 +1785,19 @@ # The versions with dots are used on Unix, and the versions without # dots on Windows, for detection by cygwin. tcllib = tklib = tcl_includes = tk_includes = None @@ -47,7 +47,7 @@ diff -urN a/setup.py b/setup.py break # Now check for the header files -@@ -1830,13 +1837,21 @@ +@@ -1858,13 +1865,21 @@ # Add the Tcl/Tk libraries libs.append('tk'+ version) libs.append('tcl'+ version) diff --git a/mingw-w64-python3/0700-CROSS-avoid-ncursesw-include-path-hack.patch b/mingw-w64-python3/0700-CROSS-avoid-ncursesw-include-path-hack.patch index fb391872a7..089d86d561 100644 --- a/mingw-w64-python3/0700-CROSS-avoid-ncursesw-include-path-hack.patch +++ b/mingw-w64-python3/0700-CROSS-avoid-ncursesw-include-path-hack.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:22:27.451167600 +0100 -+++ b/configure.ac 2014-10-11 14:22:30.021314600 +0100 -@@ -4779,7 +4779,9 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:42:11.881910400 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:42:23.013007200 +0300 +@@ -4969,7 +4969,9 @@ # first curses header check ac_save_cppflags="$CPPFLAGS" diff --git a/mingw-w64-python3/0710-CROSS-properly-detect-WINDOW-_flags-for-different-nc.patch b/mingw-w64-python3/0710-CROSS-properly-detect-WINDOW-_flags-for-different-nc.patch index 92346b5c28..c66ce4c693 100644 --- a/mingw-w64-python3/0710-CROSS-properly-detect-WINDOW-_flags-for-different-nc.patch +++ b/mingw-w64-python3/0710-CROSS-properly-detect-WINDOW-_flags-for-different-nc.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:22:31.108376800 +0100 -+++ b/configure.ac 2014-10-11 14:22:33.774529300 +0100 -@@ -4818,15 +4818,51 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:42:24.324672800 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:42:24.444325600 +0300 +@@ -5008,15 +5008,51 @@ fi AC_MSG_CHECKING(whether WINDOW has _flags) @@ -55,9 +55,9 @@ diff -urN a/configure.ac b/configure.ac if test "$ac_cv_window_has_flags" = yes then -diff -urN a/Include/py_curses.h b/Include/py_curses.h ---- a/Include/py_curses.h 2014-10-11 14:22:32.009428300 +0100 -+++ b/Include/py_curses.h 2014-10-11 14:22:33.776529400 +0100 +diff -Naur Python-3.5.0-orig/Include/py_curses.h Python-3.5.0/Include/py_curses.h +--- Python-3.5.0-orig/Include/py_curses.h 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Include/py_curses.h 2015-09-21 13:42:24.460128800 +0300 @@ -14,7 +14,9 @@ /* the following define is necessary for OS X 10.6; without it, the Apple-supplied ncurses.h sets NCURSES_OPAQUE to 1, and then Python @@ -81,10 +81,10 @@ diff -urN a/Include/py_curses.h b/Include/py_curses.h #ifndef MVWDELCH_IS_EXPRESSION #define MVWDELCH_IS_EXPRESSION 1 #endif -diff -urN a/pyconfig.h.in b/pyconfig.h.in ---- a/pyconfig.h.in 2014-10-11 14:22:31.109376800 +0100 -+++ b/pyconfig.h.in 2014-10-11 14:22:33.777529500 +0100 -@@ -1175,6 +1175,12 @@ +diff -Naur Python-3.5.0-orig/pyconfig.h.in Python-3.5.0/pyconfig.h.in +--- Python-3.5.0-orig/pyconfig.h.in 2015-09-21 13:41:38.930956100 +0300 ++++ Python-3.5.0/pyconfig.h.in 2015-09-21 13:42:24.475932000 +0300 +@@ -1202,6 +1202,12 @@ /* Define to 1 if you want to use native NT threads */ #undef NT_THREADS diff --git a/mingw-w64-python3/0720-mingw-pdcurses_ISPAD.patch b/mingw-w64-python3/0720-mingw-pdcurses_ISPAD.patch index 9c71f1013a..ca5f407ada 100644 --- a/mingw-w64-python3/0720-mingw-pdcurses_ISPAD.patch +++ b/mingw-w64-python3/0720-mingw-pdcurses_ISPAD.patch @@ -1,6 +1,6 @@ -diff -urN a/Include/py_curses.h b/Include/py_curses.h ---- a/Include/py_curses.h 2014-10-11 14:22:35.753642500 +0100 -+++ b/Include/py_curses.h 2014-10-11 14:22:37.611748800 +0100 +diff -Naur Python-3.5.0-orig/Include/py_curses.h Python-3.5.0/Include/py_curses.h +--- Python-3.5.0-orig/Include/py_curses.h 2015-09-21 13:42:25.872257600 +0300 ++++ Python-3.5.0/Include/py_curses.h 2015-09-21 13:42:26.009971200 +0300 @@ -56,6 +56,10 @@ #endif #endif diff --git a/mingw-w64-python3/0730-mingw-fix-ncurses-module.patch b/mingw-w64-python3/0730-mingw-fix-ncurses-module.patch index 7fad6cc74e..ad02b76618 100644 --- a/mingw-w64-python3/0730-mingw-fix-ncurses-module.patch +++ b/mingw-w64-python3/0730-mingw-fix-ncurses-module.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c ---- a/Modules/_cursesmodule.c 2014-10-11 14:22:39.496856600 +0100 -+++ b/Modules/_cursesmodule.c 2014-10-11 14:22:41.210954600 +0100 +diff -Naur Python-3.5.0-orig/Modules/_cursesmodule.c Python-3.5.0/Modules/_cursesmodule.c +--- Python-3.5.0-orig/Modules/_cursesmodule.c 2015-09-13 14:41:24.000000000 +0300 ++++ Python-3.5.0/Modules/_cursesmodule.c 2015-09-21 13:42:27.468380800 +0300 @@ -125,6 +125,10 @@ #include #endif @@ -12,7 +12,7 @@ diff -urN a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c #if !defined(HAVE_NCURSES_H) && (defined(sgi) || defined(__sun) || defined(SCO5)) #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */ typedef chtype attr_t; /* No attr_t type is available */ -@@ -1772,10 +1776,14 @@ +@@ -1709,10 +1713,14 @@ /* We have to simulate this by writing to a temporary FILE*, then reading back, then writing to the argument stream. */ char fn[100]; @@ -27,7 +27,7 @@ diff -urN a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c strcpy(fn, "/tmp/py.curses.putwin.XXXXXX"); fd = mkstemp(fn); if (fd < 0) -@@ -1783,6 +1791,14 @@ +@@ -1720,6 +1728,14 @@ if (_Py_set_inheritable(fd, 0, NULL) < 0) goto exit; fp = fdopen(fd, "wb+"); @@ -42,7 +42,7 @@ diff -urN a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c if (fp == NULL) { PyErr_SetFromErrnoWithFilename(PyExc_IOError, fn); goto exit; -@@ -1807,8 +1823,10 @@ +@@ -1744,8 +1760,10 @@ exit: if (fp != NULL) fclose(fp); @@ -53,7 +53,7 @@ diff -urN a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c remove(fn); return res; } -@@ -2331,7 +2349,9 @@ +@@ -2268,7 +2286,9 @@ PyCurses_GetWin(PyCursesWindowObject *self, PyObject *stream) { char fn[100]; @@ -63,7 +63,7 @@ diff -urN a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c FILE *fp = NULL; PyObject *data; size_t datalen; -@@ -2341,6 +2361,8 @@ +@@ -2278,6 +2298,8 @@ PyCursesInitialised; @@ -72,7 +72,7 @@ diff -urN a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c strcpy(fn, "/tmp/py.curses.getwin.XXXXXX"); fd = mkstemp(fn); if (fd < 0) -@@ -2348,6 +2370,13 @@ +@@ -2285,6 +2307,13 @@ if (_Py_set_inheritable(fd, 0, NULL) < 0) goto error; fp = fdopen(fd, "wb+"); @@ -86,7 +86,7 @@ diff -urN a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c if (fp == NULL) { PyErr_SetFromErrnoWithFilename(PyExc_IOError, fn); goto error; -@@ -2382,8 +2411,10 @@ +@@ -2319,8 +2348,10 @@ error: if (fp != NULL) fclose(fp); diff --git a/mingw-w64-python3/0740-grammar-fixes.patch b/mingw-w64-python3/0740-grammar-fixes.patch index 6842f3b972..fcefddca5d 100644 --- a/mingw-w64-python3/0740-grammar-fixes.patch +++ b/mingw-w64-python3/0740-grammar-fixes.patch @@ -1,7 +1,7 @@ -diff -urN a/Modules/parsermodule.c b/Modules/parsermodule.c ---- a/Modules/parsermodule.c 2014-10-11 14:22:43.329075800 +0100 -+++ b/Modules/parsermodule.c 2014-10-11 14:22:44.993171000 +0100 -@@ -37,7 +37,7 @@ +diff -Naur Python-3.5.0-orig/Modules/parsermodule.c Python-3.5.0/Modules/parsermodule.c +--- Python-3.5.0-orig/Modules/parsermodule.c 2015-09-13 14:41:25.000000000 +0300 ++++ Python-3.5.0/Modules/parsermodule.c 2015-09-21 13:42:28.943722400 +0300 +@@ -42,7 +42,7 @@ #undef Yield #include "ast.h" @@ -10,9 +10,9 @@ diff -urN a/Modules/parsermodule.c b/Modules/parsermodule.c #ifdef lint #include -diff -urN a/Parser/metagrammar.c b/Parser/metagrammar.c ---- a/Parser/metagrammar.c 2014-10-11 14:22:43.041059300 +0100 -+++ b/Parser/metagrammar.c 2014-10-11 14:22:44.994171000 +0100 +diff -Naur Python-3.5.0-orig/Parser/metagrammar.c Python-3.5.0/Parser/metagrammar.c +--- Python-3.5.0-orig/Parser/metagrammar.c 2015-09-13 14:41:26.000000000 +0300 ++++ Python-3.5.0/Parser/metagrammar.c 2015-09-21 13:42:28.955010400 +0300 @@ -139,7 +139,7 @@ {7, 0}, {8, 0}, diff --git a/mingw-w64-python3/0750-builddir-fixes.patch b/mingw-w64-python3/0750-builddir-fixes.patch index 6d0c44b534..54051e79a5 100644 --- a/mingw-w64-python3/0750-builddir-fixes.patch +++ b/mingw-w64-python3/0750-builddir-fixes.patch @@ -1,31 +1,45 @@ -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 14:22:46.008229000 +0100 -+++ b/Makefile.pre.in 2014-10-11 14:22:48.653380300 +0100 -@@ -687,13 +687,13 @@ - ############################################################################ - # Importlib +diff -Naur Python-3.5.0-orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in +--- Python-3.5.0-orig/Makefile.pre.in 2015-09-21 13:42:21.427043200 +0300 ++++ Python-3.5.0/Makefile.pre.in 2015-09-21 13:42:30.499208800 +0300 +@@ -701,15 +701,15 @@ --Modules/_freeze_importlib: Modules/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) -+_freeze_importlib$(EXE): Modules/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) - $(LINKCC) $(PY_LDFLAGS) -o $@ Modules/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) + Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile --Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Modules/_freeze_importlib.c -- $(MAKE) Modules/_freeze_importlib -- ./Modules/_freeze_importlib \ -- $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h -+$(srcdir)/Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py $(srcdir)/Modules/_freeze_importlib.c -+ $(MAKE) _freeze_importlib$(EXE) -+ ./_freeze_importlib$(EXE) \ -+ $(srcdir)/Lib/importlib/_bootstrap.py $(srcdir)/Python/importlib.h +-Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) ++Programs/_freeze_importlib$(EXE): Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) + $(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) + +-Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib +- ./Programs/_freeze_importlib \ ++Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib$(EXE) ++ ./Programs/_freeze_importlib$(EXE) \ + $(srcdir)/Lib/importlib/_bootstrap_external.py Python/importlib_external.h + +-Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Programs/_freeze_importlib +- ./Programs/_freeze_importlib \ ++Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Programs/_freeze_importlib$(EXE) ++ ./Programs/_freeze_importlib$(EXE) \ + $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h - ############################################################################ -@@ -1560,7 +1560,7 @@ +@@ -1596,7 +1596,7 @@ find build -name '*.py[co]' -exec rm -f {} ';' || true -rm -f pybuilddir.txt -rm -f Lib/lib2to3/*Grammar*.pickle -- -rm -f Modules/_testembed Modules/_freeze_importlib -+ -rm -f Modules/_testembed _freeze_importlib$(EXE) +- -rm -f Programs/_testembed Programs/_freeze_importlib ++ -rm -f Programs/_testembed Programs/_freeze_importlib$(EXE) profile-removal: find . -name '*.gc??' -exec rm -f {} ';' +diff -Naur Python-3.5.0-orig/Programs/_freeze_importlib.c Python-3.5.0/Programs/_freeze_importlib.c +--- Python-3.5.0-orig/Programs/_freeze_importlib.c 2015-09-21 13:42:21.427043200 +0300 ++++ Python-3.5.0/Programs/_freeze_importlib.c 2015-09-21 13:42:30.499208800 +0300 +@@ -20,7 +20,7 @@ + {0, 0, 0} /* sentinel */ + }; + +-#ifndef MS_WINDOWS ++#ifndef _MSC_VER + /* On Windows, this links with the regular pythonXY.dll, so this variable comes + from frozen.obj. In the Makefile, frozen.o is not linked into this executable, + so we define the variable here. */ diff --git a/mingw-w64-python3/0760-msys-monkeypatch-os-system-via-sh-exe.patch b/mingw-w64-python3/0760-msys-monkeypatch-os-system-via-sh-exe.patch index 673dc5d20f..521082c06b 100644 --- a/mingw-w64-python3/0760-msys-monkeypatch-os-system-via-sh-exe.patch +++ b/mingw-w64-python3/0760-msys-monkeypatch-os-system-via-sh-exe.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:22:49.750443100 +0100 -+++ b/setup.py 2014-10-11 14:22:52.319590000 +0100 -@@ -35,6 +35,17 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:42:22.874164800 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:42:32.027604000 +0300 +@@ -40,6 +40,17 @@ return sys.platform host_platform = get_platform() diff --git a/mingw-w64-python3/0770-msys-replace-slashes-used-in-io-redirection.patch b/mingw-w64-python3/0770-msys-replace-slashes-used-in-io-redirection.patch index 5d7d1c19aa..cc00d25b19 100644 --- a/mingw-w64-python3/0770-msys-replace-slashes-used-in-io-redirection.patch +++ b/mingw-w64-python3/0770-msys-replace-slashes-used-in-io-redirection.patch @@ -1,7 +1,7 @@ -diff -urN a/setup.py b/setup.py ---- a/setup.py 2014-10-11 14:22:53.522658800 +0100 -+++ b/setup.py 2014-10-11 14:22:56.174810500 +0100 -@@ -386,7 +386,7 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:42:33.399096000 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:42:33.531165600 +0300 +@@ -404,7 +404,7 @@ # Debian/Ubuntu multiarch support. # https://wiki.ubuntu.com/MultiarchSpec cc = sysconfig.get_config_var('CC') @@ -10,7 +10,7 @@ diff -urN a/setup.py b/setup.py if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) ret = os.system( -@@ -411,7 +411,7 @@ +@@ -429,7 +429,7 @@ opt = '' if cross_compiling: opt = '-t' + sysconfig.get_config_var('HOST_GNU_TYPE') @@ -19,7 +19,7 @@ diff -urN a/setup.py b/setup.py if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) ret = os.system( -@@ -430,7 +430,7 @@ +@@ -448,7 +448,7 @@ def add_gcc_paths(self): gcc = sysconfig.get_config_var('CC') @@ -28,7 +28,7 @@ diff -urN a/setup.py b/setup.py if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) ret = os.system('%s -E -v - %s 1>/dev/null' % (gcc, tmpfile)) -@@ -694,7 +694,7 @@ +@@ -714,7 +714,7 @@ readline_termcap_library = "" curses_library = "" # Cannot use os.popen here in py3k. @@ -37,7 +37,7 @@ diff -urN a/setup.py b/setup.py if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) # Determine if readline is already linked against curses or tinfo. -@@ -839,7 +839,7 @@ +@@ -859,7 +859,7 @@ opensslv_h = find_file('openssl/opensslv.h', [], inc_dirs + search_for_ssl_incs_in) if opensslv_h: @@ -46,7 +46,7 @@ diff -urN a/setup.py b/setup.py if host_platform == 'darwin' and is_macosx_sdk_path(name): name = os.path.join(macosx_sdk_root(), name[1:]) try: -@@ -1714,16 +1714,16 @@ +@@ -1742,16 +1742,16 @@ cflags = sysconfig.get_config_vars('CFLAGS')[0] archs = re.findall('-arch\s+(\w+)', cflags) diff --git a/mingw-w64-python3/0790-mingw-add-_exec_prefix-for-tcltk-dlls.patch b/mingw-w64-python3/0790-mingw-add-_exec_prefix-for-tcltk-dlls.patch index 7f42b1a1bc..783d39ace9 100644 --- a/mingw-w64-python3/0790-mingw-add-_exec_prefix-for-tcltk-dlls.patch +++ b/mingw-w64-python3/0790-mingw-add-_exec_prefix-for-tcltk-dlls.patch @@ -1,7 +1,7 @@ -diff -urN a/Modules/getpath.c b/Modules/getpath.c ---- a/Modules/getpath.c 2014-10-11 14:22:58.332933900 +0100 -+++ b/Modules/getpath.c 2014-10-11 14:22:59.928025200 +0100 -@@ -795,7 +795,10 @@ +diff -Naur Python-3.5.0-orig/Modules/getpath.c Python-3.5.0/Modules/getpath.c +--- Python-3.5.0-orig/Modules/getpath.c 2015-09-21 13:42:07.576667200 +0300 ++++ Python-3.5.0/Modules/getpath.c 2015-09-21 13:42:35.020052800 +0300 +@@ -788,7 +788,10 @@ bufsz += wcslen(zip_path) + 1; bufsz += wcslen(exec_prefix) + 1; @@ -10,10 +10,10 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c + if (_exec_prefix) + bufsz += wcslen(_exec_prefix) + 1; +#endif - buf = (wchar_t *)PyMem_Malloc(bufsz * sizeof(wchar_t)); + buf = PyMem_New(wchar_t, bufsz); if (buf == NULL) { Py_FatalError( -@@ -871,6 +874,13 @@ +@@ -864,6 +867,13 @@ } else wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN); diff --git a/mingw-w64-python3/0800-mingw-install-layout-as-posix.patch b/mingw-w64-python3/0800-mingw-install-layout-as-posix.patch index 3bc95cb37c..21150568ae 100644 --- a/mingw-w64-python3/0800-mingw-install-layout-as-posix.patch +++ b/mingw-w64-python3/0800-mingw-install-layout-as-posix.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py ---- a/Lib/distutils/command/install.py 2014-10-11 14:23:01.084091300 +0100 -+++ b/Lib/distutils/command/install.py 2014-10-11 14:23:03.761244400 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/command/install.py Python-3.5.0/Lib/distutils/command/install.py +--- Python-3.5.0-orig/Lib/distutils/command/install.py 2015-09-21 13:42:21.403338400 +0300 ++++ Python-3.5.0/Lib/distutils/command/install.py 2015-09-21 13:42:36.497652000 +0300 @@ -20,10 +20,10 @@ HAS_USER_SITE = True @@ -21,7 +21,7 @@ diff -urN a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py 'purelib': '$usersite', 'platlib': '$usersite', - 'headers': '$userbase/Python$py_version_nodot/Include/$dist_name', -- 'scripts': '$userbase/Scripts', +- 'scripts': '$userbase/Python$py_version_nodot/Scripts', + 'headers': '$userbase/include/python$py_version_short$abiflags/$dist_name', + 'scripts': '$userbase/bin', 'data' : '$userbase', diff --git a/mingw-w64-python3/0810-remove_path_max.default.patch b/mingw-w64-python3/0810-remove_path_max.default.patch index 27b47c73a1..321c5ccf7b 100644 --- a/mingw-w64-python3/0810-remove_path_max.default.patch +++ b/mingw-w64-python3/0810-remove_path_max.default.patch @@ -1,33 +1,11 @@ -diff -urN a/Include/osdefs.h b/Include/osdefs.h ---- a/Include/osdefs.h 2014-10-11 14:23:05.655352800 +0100 -+++ b/Include/osdefs.h 2014-10-11 14:23:07.572462400 +0100 -@@ -17,7 +17,6 @@ - #if defined(MS_WINDOWS) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__DJGPP__) +diff -Naur Python-3.5.0-orig/Include/osdefs.h Python-3.5.0/Include/osdefs.h +--- Python-3.5.0-orig/Include/osdefs.h 2015-09-21 13:42:01.397616000 +0300 ++++ Python-3.5.0/Include/osdefs.h 2015-09-21 13:42:37.914296000 +0300 +@@ -10,7 +10,6 @@ + #ifdef MS_WINDOWS #define SEP L'\\' #define ALTSEP L'/' -#define MAXPATHLEN 256 #define DELIM L';' #define DELIMSTR ";" #endif -diff -urN a/Modules/main.c b/Modules/main.c ---- a/Modules/main.c 2014-10-11 14:23:05.736357400 +0100 -+++ b/Modules/main.c 2014-10-11 14:23:07.573462500 +0100 -@@ -9,7 +9,6 @@ - #include - #ifdef HAVE_FCNTL_H - #include --#define PATH_MAX MAXPATHLEN - #endif - #endif - -diff -urN a/Python/pythonrun.c b/Python/pythonrun.c ---- a/Python/pythonrun.c 2014-10-11 14:23:04.818304900 +0100 -+++ b/Python/pythonrun.c 2014-10-11 14:23:07.574462500 +0100 -@@ -32,7 +32,6 @@ - #ifdef MS_WINDOWS - #undef BYTE - #include "windows.h" --#define PATH_MAX MAXPATHLEN - #endif - - #ifdef __gnu_hurd__ diff --git a/mingw-w64-python3/0820-dont-link-with-gettext.patch b/mingw-w64-python3/0820-dont-link-with-gettext.patch index d0315bbe2a..cbc4576ccc 100644 --- a/mingw-w64-python3/0820-dont-link-with-gettext.patch +++ b/mingw-w64-python3/0820-dont-link-with-gettext.patch @@ -1,7 +1,7 @@ -diff -urN a/configure.ac b/configure.ac ---- a/configure.ac 2014-10-11 14:23:08.591520700 +0100 -+++ b/configure.ac 2014-10-11 14:23:11.191669400 +0100 -@@ -2496,10 +2496,19 @@ +diff -Naur Python-3.5.0-orig/configure.ac Python-3.5.0/configure.ac +--- Python-3.5.0-orig/configure.ac 2015-09-21 13:42:25.866613600 +0300 ++++ Python-3.5.0/configure.ac 2015-09-21 13:42:39.390766400 +0300 +@@ -2687,10 +2687,19 @@ fi # check if we need libintl for locale functions @@ -21,9 +21,9 @@ diff -urN a/configure.ac b/configure.ac # checks for system dependent C++ extensions support case "$ac_sys_system" in -diff -urN a/Modules/_localemodule.c b/Modules/_localemodule.c ---- a/Modules/_localemodule.c 2014-10-11 14:23:09.473571200 +0100 -+++ b/Modules/_localemodule.c 2014-10-11 14:23:11.193669500 +0100 +diff -Naur Python-3.5.0-orig/Modules/_localemodule.c Python-3.5.0/Modules/_localemodule.c +--- Python-3.5.0-orig/Modules/_localemodule.c 2015-09-13 14:41:24.000000000 +0300 ++++ Python-3.5.0/Modules/_localemodule.c 2015-09-21 13:42:39.406569600 +0300 @@ -11,6 +11,13 @@ #define PY_SSIZE_T_CLEAN diff --git a/mingw-w64-python3/0830-ctypes-python-dll.patch b/mingw-w64-python3/0830-ctypes-python-dll.patch index 4e9cbfcd10..b63a7f6606 100644 --- a/mingw-w64-python3/0830-ctypes-python-dll.patch +++ b/mingw-w64-python3/0830-ctypes-python-dll.patch @@ -1,7 +1,7 @@ -diff -urN a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py ---- a/Lib/ctypes/__init__.py 2014-10-11 14:23:12.496744100 +0100 -+++ b/Lib/ctypes/__init__.py 2014-10-11 14:23:15.025888700 +0100 -@@ -431,7 +431,9 @@ +diff -Naur Python-3.5.0-orig/Lib/ctypes/__init__.py Python-3.5.0/Lib/ctypes/__init__.py +--- Python-3.5.0-orig/Lib/ctypes/__init__.py 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Lib/ctypes/__init__.py 2015-09-21 13:42:40.967700000 +0300 +@@ -427,7 +427,9 @@ cdll = LibraryLoader(CDLL) pydll = LibraryLoader(PyDLL) diff --git a/mingw-w64-python3/0840-gdbm-module-includes.patch b/mingw-w64-python3/0840-gdbm-module-includes.patch index f5c1a9c1ed..79f51b97d7 100644 --- a/mingw-w64-python3/0840-gdbm-module-includes.patch +++ b/mingw-w64-python3/0840-gdbm-module-includes.patch @@ -1,6 +1,6 @@ -diff -urN a/Modules/_gdbmmodule.c b/Modules/_gdbmmodule.c ---- a/Modules/_gdbmmodule.c 2014-10-11 14:23:17.097007200 +0100 -+++ b/Modules/_gdbmmodule.c 2014-10-11 14:23:18.944112800 +0100 +diff -Naur Python-3.5.0-orig/Modules/_gdbmmodule.c Python-3.5.0/Modules/_gdbmmodule.c +--- Python-3.5.0-orig/Modules/_gdbmmodule.c 2015-09-13 14:41:24.000000000 +0300 ++++ Python-3.5.0/Modules/_gdbmmodule.c 2015-09-21 13:42:42.500610400 +0300 @@ -11,7 +11,7 @@ #include #include "gdbm.h" diff --git a/mingw-w64-python3/0850-use-gnu_printf-in-format.patch b/mingw-w64-python3/0850-use-gnu_printf-in-format.patch index a73950738f..44c7ef96de 100644 --- a/mingw-w64-python3/0850-use-gnu_printf-in-format.patch +++ b/mingw-w64-python3/0850-use-gnu_printf-in-format.patch @@ -1,6 +1,6 @@ -diff -urN a/Include/bytesobject.h b/Include/bytesobject.h ---- a/Include/bytesobject.h 2014-10-11 14:23:20.866222800 +0100 -+++ b/Include/bytesobject.h 2014-10-11 14:23:22.622323200 +0100 +diff -Naur Python-3.5.0-orig/Include/bytesobject.h Python-3.5.0/Include/bytesobject.h +--- Python-3.5.0-orig/Include/bytesobject.h 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Include/bytesobject.h 2015-09-21 13:42:43.916125600 +0300 @@ -52,9 +52,9 @@ PyAPI_FUNC(PyObject *) PyBytes_FromString(const char *); PyAPI_FUNC(PyObject *) PyBytes_FromObject(PyObject *); @@ -13,9 +13,9 @@ diff -urN a/Include/bytesobject.h b/Include/bytesobject.h PyAPI_FUNC(Py_ssize_t) PyBytes_Size(PyObject *); PyAPI_FUNC(char *) PyBytes_AsString(PyObject *); PyAPI_FUNC(PyObject *) PyBytes_Repr(PyObject *, int); -diff -urN a/Include/pgenheaders.h b/Include/pgenheaders.h ---- a/Include/pgenheaders.h 2014-10-11 14:23:20.873223200 +0100 -+++ b/Include/pgenheaders.h 2014-10-11 14:23:22.624323300 +0100 +diff -Naur Python-3.5.0-orig/Include/pgenheaders.h Python-3.5.0/Include/pgenheaders.h +--- Python-3.5.0-orig/Include/pgenheaders.h 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Include/pgenheaders.h 2015-09-21 13:42:43.930800000 +0300 @@ -10,9 +10,9 @@ #include "Python.h" @@ -28,10 +28,10 @@ diff -urN a/Include/pgenheaders.h b/Include/pgenheaders.h #define addarc _Py_addarc #define addbit _Py_addbit -diff -urN a/Include/pyerrors.h b/Include/pyerrors.h ---- a/Include/pyerrors.h 2014-10-11 14:23:20.879223500 +0100 -+++ b/Include/pyerrors.h 2014-10-11 14:23:22.624323300 +0100 -@@ -454,9 +454,9 @@ +diff -Naur Python-3.5.0-orig/Include/pyerrors.h Python-3.5.0/Include/pyerrors.h +--- Python-3.5.0-orig/Include/pyerrors.h 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Include/pyerrors.h 2015-09-21 13:42:43.945474400 +0300 +@@ -465,9 +465,9 @@ #include PyAPI_FUNC(int) PyOS_snprintf(char *str, size_t size, const char *format, ...) @@ -43,9 +43,9 @@ diff -urN a/Include/pyerrors.h b/Include/pyerrors.h #ifdef __cplusplus } -diff -urN a/Include/sysmodule.h b/Include/sysmodule.h ---- a/Include/sysmodule.h 2014-10-11 14:23:20.861222500 +0100 -+++ b/Include/sysmodule.h 2014-10-11 14:23:22.625323400 +0100 +diff -Naur Python-3.5.0-orig/Include/sysmodule.h Python-3.5.0/Include/sysmodule.h +--- Python-3.5.0-orig/Include/sysmodule.h 2015-09-13 14:41:20.000000000 +0300 ++++ Python-3.5.0/Include/sysmodule.h 2015-09-21 13:42:43.963535200 +0300 @@ -19,9 +19,9 @@ PyAPI_FUNC(void) PySys_SetPath(const wchar_t *); diff --git a/mingw-w64-python3/0860-fix-_Py_CheckPython3-prototype.patch b/mingw-w64-python3/0860-fix-_Py_CheckPython3-prototype.patch index a86a32e9b2..4810f9fe52 100644 --- a/mingw-w64-python3/0860-fix-_Py_CheckPython3-prototype.patch +++ b/mingw-w64-python3/0860-fix-_Py_CheckPython3-prototype.patch @@ -1,7 +1,7 @@ -diff -urN a/Include/pythonrun.h b/Include/pythonrun.h ---- a/Include/pythonrun.h 2014-10-11 14:23:24.506431000 +0100 -+++ b/Include/pythonrun.h 2014-10-11 14:23:26.506545400 +0100 -@@ -214,7 +214,7 @@ +diff -Naur Python-3.5.0-orig/Include/pylifecycle.h Python-3.5.0/Include/pylifecycle.h +--- Python-3.5.0-orig/Include/pylifecycle.h 2015-09-21 13:42:04.489399200 +0300 ++++ Python-3.5.0/Include/pylifecycle.h 2015-09-21 13:42:45.489672800 +0300 +@@ -65,7 +65,7 @@ PyAPI_FUNC(wchar_t *) Py_GetPath(void); PyAPI_FUNC(void) Py_SetPath(const wchar_t *); #ifdef MS_WINDOWS diff --git a/mingw-w64-python3/0870-mingw-fix-ssl-dont-use-enum_certificates.patch b/mingw-w64-python3/0870-mingw-fix-ssl-dont-use-enum_certificates.patch index 10c8a7b968..47708fca2f 100644 --- a/mingw-w64-python3/0870-mingw-fix-ssl-dont-use-enum_certificates.patch +++ b/mingw-w64-python3/0870-mingw-fix-ssl-dont-use-enum_certificates.patch @@ -1,16 +1,16 @@ -diff -urN a/Lib/ssl.py b/Lib/ssl.py ---- a/Lib/ssl.py 2014-10-11 14:23:27.721614900 +0100 -+++ b/Lib/ssl.py 2014-10-11 14:23:30.169754900 +0100 -@@ -144,7 +144,7 @@ - _PROTOCOL_NAMES[PROTOCOL_TLSv1_1] = "TLSv1.1" - _PROTOCOL_NAMES[PROTOCOL_TLSv1_2] = "TLSv1.2" +diff -Naur Python-3.5.0-orig/Lib/ssl.py Python-3.5.0/Lib/ssl.py +--- Python-3.5.0-orig/Lib/ssl.py 2015-09-13 14:41:21.000000000 +0300 ++++ Python-3.5.0/Lib/ssl.py 2015-09-21 13:42:46.889384800 +0300 +@@ -138,7 +138,7 @@ + except NameError: + _SSLv2_IF_EXISTS = None -if sys.platform == "win32": +if sys.platform == "win32" and sys.version.find("GCC") == -1: from _ssl import enum_certificates, enum_crls from socket import socket, AF_INET, SOCK_STREAM, create_connection -@@ -387,7 +387,7 @@ +@@ -416,7 +416,7 @@ def load_default_certs(self, purpose=Purpose.SERVER_AUTH): if not isinstance(purpose, _ASN1Object): raise TypeError(purpose) @@ -18,4 +18,4 @@ diff -urN a/Lib/ssl.py b/Lib/ssl.py + if sys.platform == "win32" and sys.version.find("GCC") == -1: for storename in self._windows_cert_stores: self._load_windows_store_certs(storename, purpose) - else: + self.set_default_verify_paths() diff --git a/mingw-w64-python3/0890-mingw-build-optimized-ext.patch b/mingw-w64-python3/0890-mingw-build-optimized-ext.patch index 6761e6162f..a8dfdcf878 100644 --- a/mingw-w64-python3/0890-mingw-build-optimized-ext.patch +++ b/mingw-w64-python3/0890-mingw-build-optimized-ext.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py ---- a/Lib/distutils/cygwinccompiler.py 2014-10-11 14:23:31.343822100 +0100 -+++ b/Lib/distutils/cygwinccompiler.py 2014-10-11 14:23:33.915969200 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py Python-3.5.0/Lib/distutils/cygwinccompiler.py +--- Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py 2015-09-21 13:42:15.483911200 +0300 ++++ Python-3.5.0/Lib/distutils/cygwinccompiler.py 2015-09-21 13:42:48.326347200 +0300 @@ -305,9 +305,9 @@ raise CCompilerError( 'Cygwin gcc cannot be used with --compiler=mingw32') diff --git a/mingw-w64-python3/0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch b/mingw-w64-python3/0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch index a1aa400c38..b9f6599b10 100644 --- a/mingw-w64-python3/0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch +++ b/mingw-w64-python3/0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch @@ -1,6 +1,6 @@ -diff -urN a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py ---- a/Lib/distutils/cygwinccompiler.py 2014-10-11 14:23:35.007031600 +0100 -+++ b/Lib/distutils/cygwinccompiler.py 2014-10-11 14:23:37.562177700 +0100 +diff -Naur Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py Python-3.5.0/Lib/distutils/cygwinccompiler.py +--- Python-3.5.0-orig/Lib/distutils/cygwinccompiler.py 2015-09-21 13:42:49.604148800 +0300 ++++ Python-3.5.0/Lib/distutils/cygwinccompiler.py 2015-09-21 13:42:49.741862400 +0300 @@ -238,7 +238,7 @@ # (On my machine: 10KB < stripped_file < ??100KB # unstripped_file = stripped_file + XXX KB diff --git a/mingw-w64-python3/0910-fix-using-dllhandle-and-winver-mingw.patch b/mingw-w64-python3/0910-fix-using-dllhandle-and-winver-mingw.patch index 2d5a5317fe..bff4af4ed0 100644 --- a/mingw-w64-python3/0910-fix-using-dllhandle-and-winver-mingw.patch +++ b/mingw-w64-python3/0910-fix-using-dllhandle-and-winver-mingw.patch @@ -1,6 +1,6 @@ -diff -urN a/Python/sysmodule.c b/Python/sysmodule.c ---- a/Python/sysmodule.c 2014-10-11 14:23:38.797248400 +0100 -+++ b/Python/sysmodule.c 2014-10-11 14:23:41.349394300 +0100 +diff -Naur Python-3.5.0-orig/Python/sysmodule.c Python-3.5.0/Python/sysmodule.c +--- Python-3.5.0-orig/Python/sysmodule.c 2015-09-21 13:42:04.576316800 +0300 ++++ Python-3.5.0/Python/sysmodule.c 2015-09-21 13:42:51.105452800 +0300 @@ -26,7 +26,7 @@ #include #endif /* MS_WINDOWS */ @@ -10,7 +10,7 @@ diff -urN a/Python/sysmodule.c b/Python/sysmodule.c extern void *PyWin_DLLhModule; /* A string loaded from the DLL at startup: */ extern const char *PyWin_DLLVersionString; -@@ -1733,7 +1733,7 @@ +@@ -1803,7 +1803,7 @@ PyUnicode_FromString("little")); #endif diff --git a/mingw-w64-python3/0920-mingw-add-LIBPL-to-library-dirs.patch b/mingw-w64-python3/0920-mingw-add-LIBPL-to-library-dirs.patch index 75f2962d7e..c71d7a38be 100644 --- a/mingw-w64-python3/0920-mingw-add-LIBPL-to-library-dirs.patch +++ b/mingw-w64-python3/0920-mingw-add-LIBPL-to-library-dirs.patch @@ -1,7 +1,7 @@ -diff -Naur Python-3.4.2-orig/Lib/distutils/command/build_ext.py Python-3.4.2/Lib/distutils/command/build_ext.py ---- Python-3.4.2-orig/Lib/distutils/command/build_ext.py 2014-12-11 13:50:52.587800000 +0300 -+++ Python-3.4.2/Lib/distutils/command/build_ext.py 2014-12-11 13:58:32.038800000 +0300 -@@ -221,7 +221,7 @@ +diff -Naur Python-3.5.0-orig/Lib/distutils/command/build_ext.py Python-3.5.0/Lib/distutils/command/build_ext.py +--- Python-3.5.0-orig/Lib/distutils/command/build_ext.py 2015-09-21 13:42:13.376441600 +0300 ++++ Python-3.5.0/Lib/distutils/command/build_ext.py 2015-09-21 13:42:52.531127200 +0300 +@@ -216,7 +216,7 @@ # for extensions under Cygwin and AtheOS Python's library directory must be # appended to library_dirs @@ -9,4 +9,4 @@ diff -Naur Python-3.4.2-orig/Lib/distutils/command/build_ext.py Python-3.4.2/Lib + if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos' or self.plat_name.startswith(('mingw')): if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): # building third party extensions - self.library_dirs.append(os.path.join(sys.prefix, "lib", + config_dir_name = os.path.basename(sysconfig.get_config_var('LIBPL')) diff --git a/mingw-w64-python3/0930-mingw-w64-build-overlapped-module.patch b/mingw-w64-python3/0930-mingw-w64-build-overlapped-module.patch index 32ab1b8d57..17965aac58 100644 --- a/mingw-w64-python3/0930-mingw-w64-build-overlapped-module.patch +++ b/mingw-w64-python3/0930-mingw-w64-build-overlapped-module.patch @@ -1,6 +1,7 @@ ---- Python-3.4.3/setup.py.orig 2015-06-06 18:25:01.420100800 +0100 -+++ Python-3.4.3/setup.py 2015-06-07 09:09:55.336907600 +0100 -@@ -1612,6 +1612,10 @@ +diff -Naur Python-3.5.0-orig/setup.py Python-3.5.0/setup.py +--- Python-3.5.0-orig/setup.py 2015-09-21 13:42:34.882339200 +0300 ++++ Python-3.5.0/setup.py 2015-09-21 13:42:53.935354400 +0300 +@@ -1632,6 +1632,10 @@ '-framework', 'CoreFoundation', ])) diff --git a/mingw-w64-python3/1000-fix-building-posixmodule.patch b/mingw-w64-python3/1000-fix-building-posixmodule.patch index 69b69c08c2..29f9efeda8 100644 --- a/mingw-w64-python3/1000-fix-building-posixmodule.patch +++ b/mingw-w64-python3/1000-fix-building-posixmodule.patch @@ -1,7 +1,7 @@ -diff -urN a/Modules/posixmodule.c b/Modules/posixmodule.c ---- a/Modules/posixmodule.c 2014-10-11 14:23:43.199500200 +0100 -+++ b/Modules/posixmodule.c 2014-10-11 14:23:45.146611500 +0100 -@@ -1444,10 +1444,10 @@ +diff -Naur Python-3.5.0-orig/Modules/posixmodule.c Python-3.5.0/Modules/posixmodule.c +--- Python-3.5.0-orig/Modules/posixmodule.c 2015-09-21 13:42:06.149864000 +0300 ++++ Python-3.5.0/Modules/posixmodule.c 2015-09-21 13:42:55.398279200 +0300 +@@ -1370,10 +1370,10 @@ if(!SetCurrentDirectoryW(path)) return FALSE; diff --git a/mingw-w64-python3/1010-install-msilib.patch b/mingw-w64-python3/1010-install-msilib.patch index 0139865c6c..ce6cc91f9a 100644 --- a/mingw-w64-python3/1010-install-msilib.patch +++ b/mingw-w64-python3/1010-install-msilib.patch @@ -1,7 +1,7 @@ -diff -urN a/Makefile.pre.in b/Makefile.pre.in ---- a/Makefile.pre.in 2014-10-11 14:23:46.236673900 +0100 -+++ b/Makefile.pre.in 2014-10-11 14:23:48.938828400 +0100 -@@ -1195,6 +1195,7 @@ +diff -Naur Python-3.5.0-orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in +--- Python-3.5.0-orig/Makefile.pre.in 2015-09-21 13:42:31.879731200 +0300 ++++ Python-3.5.0/Makefile.pre.in 2015-09-21 13:42:56.820567200 +0300 +@@ -1219,6 +1219,7 @@ test/test_importlib/extension test/test_importlib/frozen \ test/test_importlib/import_ test/test_importlib/source \ turtledemo \ diff --git a/mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch b/mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch index 2f24e3d378..eef3d9a7f0 100644 --- a/mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch +++ b/mingw-w64-python3/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch @@ -1,7 +1,7 @@ -diff -urN a/Modules/getpath.c b/Modules/getpath.c ---- a/Modules/getpath.c 2014-12-16 09:26:33.796969000 +0100 -+++ b/Modules/getpath.c 2014-12-16 10:15:36.798797800 +0100 -@@ -980,6 +980,17 @@ +diff -Naur Python-3.5.0-orig/Modules/getpath.c Python-3.5.0/Modules/getpath.c +--- Python-3.5.0-orig/Modules/getpath.c 2015-09-21 13:42:36.358809600 +0300 ++++ Python-3.5.0/Modules/getpath.c 2015-09-21 13:42:58.274461600 +0300 +@@ -973,6 +973,17 @@ int _Py_CheckPython3() { @@ -19,10 +19,11 @@ diff -urN a/Modules/getpath.c b/Modules/getpath.c wchar_t py3path[MAXPATHLEN+1]; wchar_t *s; if (python3_checked) -@@ -1002,6 +1013,7 @@ +@@ -997,6 +1008,7 @@ wcscat(py3path, L"\\DLLs\\python3.dll"); hPython3 = LoadLibraryExW(py3path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); return hPython3 != NULL; +#endif } #endif + diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index e296d373f4..dacb993cac 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -15,9 +15,9 @@ _realname=python3 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_pybasever=3.4 -pkgver=${_pybasever}.3 -pkgrel=7 +_pybasever=3.5 +pkgver=${_pybasever}.0 +pkgrel=1 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -376,87 +376,87 @@ package() { mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe } -sha1sums=('7ca5cd664598bea96eec105aa6453223bb6b4456' - '9467bf6fd0e3cfdeedc1c5830b7eadb94369e26d' - '4f37060c4caf594e8c176cf79972e6322ca4b553' - 'a8d85175d1ae5d617b7314d7d7eb6322951afe69' - '76158d7878fb685b571fb290a7ffbb95b1bae16c' - '8cc3ae693400d9740f4aa795cec63ea1d93bfc70' - 'd950ca34d413224e78ee6420dd673d8593c648bb' - 'ab3b14880e09cf6cc1a876e38dece1116cce4d35' - '1c81e994bd77e0f9dadb127b08ae863f4a9e193f' - '267ca1d4f4a9dabcb6a76fd3bc8a4981df3e4582' - 'fc8a2a4de68ea5c50ca0742361517a4f5e0a6140' - 'a59d77f68299a52e4dcab4110b4476b2099a007a' - '69c2316fac07f0b2c883b2d7a659cc4657b4d0e6' - '60b6d32b8a4f70620f16019c48191f600e25d73b' - '3f463b4ec93765e634f5a0bc86bbc4ee8ac2effe' - 'fe47bc2e6b4a43a84996ade90fd6f762c3f7648a' - 'd3e68ba2091f6b61f2440e2ef491373c68bf1d0d' - 'de936d717feaa45a44c9b2c83c196af9eb6d83d4' - '2e5a03d97d30299bfe23328a01e6811f84da4614' - '269f053e3a6e8e063503fded4c7e41ec2f612ecf' - 'dd35eda65c8f24c8834ed305befb7fcab17556f1' - '1a2f211bd92c435b33169ab6e029663aaa06a87a' - 'be04e8183e78c8e5c3d3e09da067412e107e649e' - '34854ca7fa4b845a645cb782b1148dd6420755f0' - '6d16906fd4458bfe5bd261b8f98376c2db01f395' - '4d19b3d105261644d21c2155f278e5bb7ed31129' - '8138b09e7543c68be71456ae717cb4ee82dc2667' - '3a4a784e811c838e954c18d864f8df786819748f' - '856f3f1008a75dbe623f161511165b76f11ca0df' - '15bf5f45bc76da0e6e38b97d3a741ac3e1f1ff49' - '68a0e1d727d04b992419cdc9903c5fe024d3b2ab' - '6337ba0e5838f81bc949b42ecfd120f6a671152f' - '3c0f9cb5a05278dc94029bad6f55b91ce54cb31d' - 'f86f285e9aa88843e0ae9969ba04013024a07c5c' - 'ca990a81e1189537d05442bf8d1a6f4ef2d5096b' - '0836a567aa66e50b3a4e8772babf1e7fbc1246ed' - '4954cc04a907e9ff630a0d4b0ae60dc6e4aa57f7' - '2d505ed36cf50a1bdebffbb367f720a1a6cb0760' - 'f55a13ddd950125bb613bd243ef72ac8dd753daa' - '679a866c5c257abbc59410bccf6054e7f4f5d8ee' - '6fc6a61db76d0689263f3fc6ccfa3fba4829dca7' - '22f2248ab553417c1bc4b1a70c9ef10cbea97ee8' - '3cc4985c4b73f60c29a45dded5e2a36ecf18364b' - 'e514bb32094e62e811bf187ab451e719a522f2fe' - 'cdb77d00db2061c5e44a31876c5efb8db7c65a76' - '02652e5775dfa3966a09349169bc8c86d5e9a980' - '2b81ea5b3f8f06c0ab0df9306ec57dab8410778c' - 'f92f4b827502a91dc22873346fd9415f53ae3c97' - '0f096226937aae88bf38369bd5f8ff3134a82bb0' - 'b32e068d8626f7303a2f515207cf12bdd33c4cfc' - '2f72a9036599de2ca02e5de1316d7b1771cada08' - '6dd3c550e5550fc21cb3df1ef5a4231bceb819f0' - '3d48fcf13644952c0bb2a68b834339f5174a9b4c' - '70390a1be147a4a1b3d40a6935fdd4396e586c06' - '48ab620460a7de37871b74ba3bab59a7bc791802' - '93f2b29f42fd644f68cc88b987425605748ceb0d' - '22da496ef61fc8f5e0e0b7e8562cd843cb21d08a' - '166ef8e127b3d5ae697d4f2577e7e961a01a2bd6' - '8fcc2644b8bfdc584c38f12cde5a57a37bf9506e' - 'b8e60039ceae9f37ba7cef0e75a2f0402c7d27d9' - '4472a28463b46aa332a7ce2764c9124dadbe1f0b' - '3219370e4a3e2d79bc5e601433106f8a25100474' - 'df16f14afbe0d74aa8f7587d2a9d2635538bfbf5' - '1c455c5301a7018f3531dd2cdf55a48a8933e4bf' - '2d1b98a498bace9b05e7b13de1ee387368148c7a' - 'd18f88db082d3397b61c6fc72e6d1867a1acfb09' - '2df995b6f7e74c7fe9c3254a387956c5a3fd511e' - 'bdfb78cf48559cc4ce949b75a9a18510e54e6435' - 'c7687e0c9513778cacc4f02868b056321c1fad15' - '2f24fe286920c29c29b479ee33176416e74d20c1' - 'caf84500bd312dce117af4243729dde8b0377f9f' - '15a30a6841889fc4df268eb6000158486075814b' - '44d7e77532dcdd4bafadf23c728e115130be9bd5' - '048a9b1afa4b8e83a17c7a95c097c40b277759c8' - '017aba96fb0fe8cba033837be6239472faa41505' - '80ce4192f81f70762c9654f9c8dcb34dd9e4046f' - '2dce462131f16248faeafb908fc03b6d2fb82504' - '5c4101eed415f28b0277904e7686a352fc69d1d9' - '3e80013b0742254cf68743e2bb257cc59213e007' - '9a56a98c0efac9930f57966b035b89e94cf44d3b' - '06474589ede319cf53178c6f742ba533110bb438' - '25dfd3da896a1dafe8740e1036d41a10e179d080' - 'ac74429997b79278834772579f81d46892571e87' - 'ba914a51ccb83336e29a823e7ccc35764662f77e') +sha1sums=('871a06df9ab70984b7398ac53047fe125c757a70' + '87bbcdc0f0ca1e1d23dd9822566efe91d6bd8a85' + 'e6358136f1f340de833365ef3cc2cebee5ea300b' + 'db10f4f2b451217996fb0c461d893e6f8d8ce005' + '840e903fd99ccac2a66d177906f103a461ae841b' + '80702b0f748c5023099650075963fa5b49caec84' + '7c095e930ee187aad769e00644721c9d597cdbb3' + 'e425c6fc68193b5a35127db97759b4bded24fe2c' + '48d14c7ed72ae35e70471f60b8cf96cc69678241' + '9721a17a49af205d94e285aa0571dfa16a4069e1' + 'aeaf1085ffdf4d43ab02de8c6c82b980310499f7' + 'eb49982d4dfef2e2b75988a325ad749546aa16fb' + 'b092c28958cbd27cad1a547c13813a5022442d79' + '0daa67a75a6a37ef71d714902e06c40351fe372a' + 'ab88afa741affff37506a8a38a04c9032b0f1c5c' + '87c0b42b78b8c06e76d686ab6939a6d94a67089f' + 'fb98afaa40198c29321bd72da0e1940d302eba42' + 'e08d5b6f784fa65ca17ef35d018a5cfe5ac6e800' + '8fd56716f982882981df55f24dceb9c021ec4a5a' + '0452a3027b6ee2b5fce3cc0772443171ee66f054' + '06ddd243cd5cd20f5696e1b8fdd22675fc428f9e' + '560b2b8716505d36f5eb91101ee7a3a5f8f3f58b' + 'f8a346563631d7f1018fc36ef19a9e1d202979a6' + '4bd1edde47c5c39aa1fcddffef9d5d9ac2784a00' + '5bf0b1bd38f4ec204319f44d79badb3579629587' + 'fb4f30aa7573e912f581f6ea5e0ce33c4eb06e47' + '1f9d2c750a0730dbbb00d7e7e7a2e7649deb2623' + '7df193fe3f146b31ef806119810f05fd19359e07' + '63a86ff26cb3d3284f16cf66355fce6a5d109b83' + '1f1a19ca3e6dc471a9377c9a5f47db264ce7134d' + '4338c430a2c27d9324162825f92b08e537a973f2' + '45463f0c985c27b56ae09b42c1ff76a9aeb67ba0' + '9d434d98bab345460551e7fb9018a3a31c3efbf6' + '6d2e73d360beb96edd8a36f5bf9e0c60dd3d8863' + '38f6674a94a4897a48407c2eeefacfe9513ca238' + 'a79cb17268a0886a9cace1a57ce40a7b3d74ebe1' + '1bbc1b7255d05a8ed57afe5de3f691bbd7ff9dba' + 'b28c05b959d05892d2dccd7e50b0ca88d23017ec' + '24533ad159d29fbfc4d4f6097cdda4e30bd5b073' + '4f923318ba610ba905d6f82a27cbff50b483a7f1' + '3de27372dec4ac6951386f2d11124766a39c83dd' + 'b7ce5655b9d3ced4977aa995cfc376dc7425ab79' + '3065cd3bdf4ca133395d33c0d874e2854ac31cb7' + 'db5b78b615c8019c066943628fb6156fffe60cf7' + '7f9516ae8b862fa589129298be76cdd76d4667ae' + '55f4167c6c5627ce0f8ffbb97490432f2d1bf5f0' + '7cd0a741434b7f28923adae71023e512dc01efc5' + 'e42bd23ce7f259bb3083c30a2822937b7d421e39' + '2fade3fd50c3213a7e0f47bd0f6051e7c46ffa1f' + '8ee814ffcb3b896b170ddd0bfe35dc2a1722c2f9' + 'cb3923149a09fccfe3e39a746970fb43256f08e4' + 'ae7be985658d4dfb65c043ce0d4faa1e448b0f2f' + '276cafd5a781eaccf765ecd5929cadf50fd9e22e' + 'bff0af7eab856678bffb43e5403b61a27c17a789' + '621c2dddf28f8fb6c040a9d60dcfd80d64ed7bcd' + '899b79863ab07b3db95b935ce67d516af10e92e6' + '683ef4a0b0fab3e12e7b91b95a1945ff30799c4c' + '23c4e3a18631f8296fc6a2d03f4cbc68e6b3f4e0' + 'fb9350d96ef312428c80cca6140167ee028561b6' + '4e1be186591538c8c28bcb2a24d7cb74bf822f44' + 'ec8180cc0692265438379a02b8b9f7bd012a6a2e' + 'cefd88068f5962a40958d1060b6a71eebb1b3c93' + '28f294128f2466589317281e66e780b093230051' + '9ebbf001a88f8fd8166bd05e9016f5de64c7ca8b' + 'b4c30aaf102eb37f2f78c406d606d111b0bc1250' + 'bd3f13eb5ff9ad7591b36abd8fde573a870e3484' + 'a39ebfe3ba5cf61a1e4ec7f6e6eb34f5409b7b75' + 'f5f002068dcb8ed8f28ea3b3c1892ec1b8445315' + 'c3ee5c3846e5ffc0910f946eb82b5e4c76a70822' + 'f585406d547e8c84e617f81b23e20e83fb0df6fb' + 'b1ce6725f469543e1e33761d1615607864e6e4dc' + '35b07478075843d129828d03e9e0790cb7e582a5' + '127eb025e419ca7065aeb46d09e610e556b565b6' + '1d185c84f86cdcdc7f868ea471f5c0eabdb3bcdd' + 'abe6a60f60a604fcaf13745b232e1623b13cb011' + 'd1d92db68fae16bd8ebbb971221df1c4680eb415' + '4a185ad168e84fdf33399ebe10f74f153afcfb51' + '5bc1da6a24cc326b8094f1f0625d7f8df8956c77' + 'e1a155cca50fe1fe4f450ff631ecbdbcc845aa83' + 'ce026983639b7e5e503b32345bbcf81972447868' + '8ca0fdb71ee8198997b30466c367ac0c84f14237' + 'a97dbe5299385b9fde442779d00f9a161ef3f950' + 'd5c9e4e47db62db241f4488d9bc974b083b7b0e3' + 'c7eb543aee59f4c246018fa7943a1eaa12e6809c') From 60b0825e142f344cca1864e672520f5b35ecaf1b Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Mon, 21 Sep 2015 18:03:40 +0300 Subject: [PATCH 1613/2060] mbedtls: Update to version 2.1.1 --- mingw-w64-mbedtls/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mbedtls/PKGBUILD b/mingw-w64-mbedtls/PKGBUILD index bdf2fb8d67..6a5385467a 100644 --- a/mingw-w64-mbedtls/PKGBUILD +++ b/mingw-w64-mbedtls/PKGBUILD @@ -3,7 +3,7 @@ _realname=mbedtls pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.0 +pkgver=2.1.1 pkgrel=1 arch=('any') url='https://tls.mbed.org/' @@ -19,7 +19,7 @@ options=('strip' 'staticlibs' 'docs') source=(${_realname}-${pkgver}.tar.gz::"https://tls.mbed.org/download/mbedtls-${pkgver}-apache.tgz" 'symlink-test.patch' 'dll-location.patch') -sha1sums=('13fcb4858145e972f8abaedf029ceb5c8461408e' +sha1sums=('f4348b730a8731f5ed2bacb458ffa053798cc5ff' '72e420d5676007a168a82210dba960bea4e29190' 'e905d99cacf3b3d91872e8736ff03ef950b32a34') From 52d00c7148ddfda4380bfad11e09ba5778326898 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 20 Sep 2015 22:10:50 +0200 Subject: [PATCH 1614/2060] libchamplain: updated to 0.12.11. --- mingw-w64-libchamplain/PKGBUILD | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libchamplain/PKGBUILD b/mingw-w64-libchamplain/PKGBUILD index ec83335a97..79c76965fd 100644 --- a/mingw-w64-libchamplain/PKGBUILD +++ b/mingw-w64-libchamplain/PKGBUILD @@ -2,8 +2,8 @@ _realname=libchamplain pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.12.10 -pkgrel=2 +pkgver=0.12.11 +pkgrel=1 arch=('any') pkgdesc="C library providing ClutterActor to display maps (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-clutter" @@ -22,7 +22,7 @@ url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch 002-give-cc-to-gir-scanner.mingw.patch) -sha256sums=('bf53ceb2405d4e23a14596a53ecc2a821b003f8c69de4a7de3a39d6e99462b05' +sha256sums=('851e24888d967c10acb8fd878df1292a84b8180eb4c48fc5bfbf1a48896d4aa5' '6aba93f69b14ac384b65dbca00933728cbfe9c34cdd4d562037638b074a7a3e9' '721fb1d7c51ee1c54eebea06bce43fc1a1a8ae44eaae6111dd81a61dc8fcf4a1') @@ -39,6 +39,11 @@ build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + mkdir -p docs/reference-gtk/html + cp -rf ../${_realname}-${pkgver}/docs/reference-gtk/html/* docs/reference-gtk/html + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ From 587e876a35528e5d4e29cfb34a289b58b8f33ecc Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 09:47:39 +0300 Subject: [PATCH 1615/2060] glib2: Update to 2.46.0 --- ...n-Win32-to-make-sure-g_unlink-always.patch | 89 ++++----- mingw-w64-glib2/0003-g_abort.all.patch | 174 +++++++++--------- ...lib-prefer-constructors-over-DllMain.patch | 31 +--- ...essages-to-correct-stdout-and-stderr.patch | 7 +- mingw-w64-glib2/0014-fix-gtkdoc.all.patch | 11 -- mingw-w64-glib2/0015-fix-stat.all.patch | 11 -- .../0017-glib-use-gnu-print-scanf.patch | 71 +++---- ...bit-stat-for-localfile-size-calc.all.patch | 50 ----- ...print-in-binary-more-for-testing.all.patch | 7 +- ...-actually-written-data-in-printf.all.patch | 5 +- .../0027-no_sys_if_nametoindex.patch | 9 +- mingw-w64-glib2/0028-inode_directory.patch | 7 +- mingw-w64-glib2/0029-grand.all.patch | 5 +- .../0030-right-wstat-for-64bit.patch | 14 ++ mingw-w64-glib2/PKGBUILD | 40 ++-- 15 files changed, 210 insertions(+), 321 deletions(-) delete mode 100644 mingw-w64-glib2/0014-fix-gtkdoc.all.patch delete mode 100644 mingw-w64-glib2/0015-fix-stat.all.patch delete mode 100644 mingw-w64-glib2/0021-use-64bit-stat-for-localfile-size-calc.all.patch create mode 100644 mingw-w64-glib2/0030-right-wstat-for-64bit.patch diff --git a/mingw-w64-glib2/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch b/mingw-w64-glib2/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch index eec9b21dab..e53fd8d166 100644 --- a/mingw-w64-glib2/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch +++ b/mingw-w64-glib2/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch @@ -1,28 +1,7 @@ -From 7f4f4354540440c0a8a37beaccbec8bc7fc15ec7 Mon Sep 17 00:00:00 2001 -From: Erik van Pienbroek -Date: Mon, 27 Aug 2012 23:28:54 +0200 -Subject: [PATCH] Use CreateFile on Win32 to make sure g_unlink always works - -The functions g_open(), g_creat() and g_fopen() defer to _wopen(), -_wcreat() and _wfopen() respectively. This is very similar to -the corresponding arrangement for Linux. However, those Windows -functions do not support renaming a file whilst it's open. As a -result, g_rename() behaves differently on the Windows platform -compared to its Linux behaviour, where files can be renamed even -while there are file handles still open. Resolved this by using -the Win32 API function CreateFile() instead of _wopen(), _wcreat() -and _wfopen() - -Patch initially created by John Emmas ---- - glib/gstdio.c | 259 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ - 1 file changed, 233 insertions(+), 26 deletions(-) - -diff --git a/glib/gstdio.c b/glib/gstdio.c -index 6d763e1..c1d072f 100644 ---- a/glib/gstdio.c -+++ b/glib/gstdio.c -@@ -191,6 +191,11 @@ g_open (const gchar *filename, +diff -Naur glib-2.46.0-orig/glib/gstdio.c glib-2.46.0/glib/gstdio.c +--- glib-2.46.0-orig/glib/gstdio.c 2015-02-26 15:57:09.000000000 +0300 ++++ glib-2.46.0/glib/gstdio.c 2015-09-22 09:08:58.032066100 +0300 +@@ -192,6 +192,11 @@ int mode) { #ifdef G_OS_WIN32 @@ -34,7 +13,7 @@ index 6d763e1..c1d072f 100644 wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); int retval; int save_errno; -@@ -201,12 +206,114 @@ g_open (const gchar *filename, +@@ -202,12 +207,114 @@ return -1; } @@ -152,7 +131,7 @@ index 6d763e1..c1d072f 100644 return retval; #else int fd; -@@ -248,6 +355,8 @@ g_creat (const gchar *filename, +@@ -254,6 +361,8 @@ int mode) { #ifdef G_OS_WIN32 @@ -161,7 +140,7 @@ index 6d763e1..c1d072f 100644 wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); int retval; int save_errno; -@@ -258,12 +367,41 @@ g_creat (const gchar *filename, +@@ -264,12 +373,41 @@ return -1; } @@ -172,8 +151,7 @@ index 6d763e1..c1d072f 100644 + if (! (mode & _S_IWRITE)) + dwFlagsAndAttributes = FILE_ATTRIBUTE_READONLY; /* Sets file to 'read only' after the file gets closed */ + } - -- g_free (wfilename); ++ + hFile = CreateFileW(wfilename, (GENERIC_READ | GENERIC_WRITE), (FILE_SHARE_READ | FILE_SHARE_DELETE), + NULL, CREATE_ALWAYS, dwFlagsAndAttributes, NULL); + @@ -200,13 +178,14 @@ index 6d763e1..c1d072f 100644 + retval = _open_osfhandle((long)hFile, _O_RDWR); + save_errno = errno; -+ g_free (wfilename); + g_free (wfilename); +- errno = save_errno; + return retval; #else return creat (filename, mode); -@@ -699,33 +837,102 @@ g_fopen (const gchar *filename, +@@ -702,33 +840,102 @@ const gchar *mode) { #ifdef G_OS_WIN32 @@ -216,6 +195,25 @@ index 6d763e1..c1d072f 100644 - int save_errno; - - if (wfilename == NULL) +- { +- errno = EINVAL; +- return NULL; +- } +- +- wmode = g_utf8_to_utf16 (mode, -1, NULL, NULL, NULL); +- +- if (wmode == NULL) +- { +- g_free (wfilename); +- errno = EINVAL; +- return NULL; +- } +- +- retval = _wfopen (wfilename, wmode); +- save_errno = errno; +- +- g_free (wfilename); +- g_free (wmode); + int hFile; + int flags = 0; + gchar priv_mode[4]; @@ -241,9 +239,7 @@ index 6d763e1..c1d072f 100644 + if (('c' == priv_mode[2]) || ('n' == priv_mode[2])) + priv_mode[2] = '\0'; + else - { -- errno = EINVAL; -- return NULL; ++ { + if (0 == strcmp(priv_mode, "a+b")) + flags = _O_RDWR | _O_CREAT | _O_APPEND | _O_BINARY; + else if (0 == strcmp(priv_mode, "a+t")) @@ -261,21 +257,14 @@ index 6d763e1..c1d072f 100644 + errno = EINVAL; + goto out; + } - } -- -- wmode = g_utf8_to_utf16 (mode, -1, NULL, NULL, NULL); -- -- if (wmode == NULL) ++ } + } + if (2 == strlen(priv_mode)) + { + if (('c' == priv_mode[1]) || ('n' == priv_mode[1])) + priv_mode[1] = '\0'; + else - { -- g_free (wfilename); -- errno = EINVAL; -- return NULL; ++ { + if (0 == strcmp(priv_mode, "a+")) + flags = _O_RDWR | _O_CREAT | _O_APPEND; + else if (0 == strcmp(priv_mode, "ab")) @@ -295,7 +284,7 @@ index 6d763e1..c1d072f 100644 + errno = EINVAL; + goto out; + } - } ++ } + } + if (1 == strlen(priv_mode)) + { @@ -311,13 +300,9 @@ index 6d763e1..c1d072f 100644 + goto out; + } + } - -- retval = _wfopen (wfilename, wmode); -- save_errno = errno; ++ + hFile = g_open (filename, flags, (_S_IREAD | _S_IWRITE)); - -- g_free (wfilename); -- g_free (wmode); ++ + if (INVALID_HANDLE_VALUE == (HANDLE)hFile) + /* 'errno' will have already been set by 'g_open()' */ + retval = NULL; @@ -329,5 +314,3 @@ index 6d763e1..c1d072f 100644 return retval; #else return fopen (filename, mode); --- -1.7.11.4 diff --git a/mingw-w64-glib2/0003-g_abort.all.patch b/mingw-w64-glib2/0003-g_abort.all.patch index 8b8aaffe0d..7e286db306 100644 --- a/mingw-w64-glib2/0003-g_abort.all.patch +++ b/mingw-w64-glib2/0003-g_abort.all.patch @@ -1,7 +1,7 @@ -diff -ur glib-2.37.4.orig/glib/gbacktrace.c glib-2.37.4/glib/gbacktrace.c ---- glib-2.37.4.orig/glib/gbacktrace.c 2013-06-02 23:20:49.000000000 +0000 -+++ glib-2.37.4/glib/gbacktrace.c 2013-07-28 19:59:41.097131300 +0000 -@@ -259,7 +259,7 @@ +diff -Naur glib-2.46.0-orig/glib/gbacktrace.c glib-2.46.0/glib/gbacktrace.c +--- glib-2.46.0-orig/glib/gbacktrace.c 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/gbacktrace.c 2015-09-22 09:08:59.311126700 +0300 +@@ -254,7 +254,7 @@ if (IsDebuggerPresent ()) G_BREAKPOINT (); else @@ -10,10 +10,10 @@ diff -ur glib-2.37.4.orig/glib/gbacktrace.c glib-2.37.4/glib/gbacktrace.c #endif } -diff -ur glib-2.37.4.orig/glib/giowin32.c glib-2.37.4/glib/giowin32.c ---- glib-2.37.4.orig/glib/giowin32.c 2013-06-02 23:20:49.000000000 +0000 -+++ glib-2.37.4/glib/giowin32.c 2013-07-28 19:59:57.402201800 +0000 -@@ -800,7 +800,7 @@ +diff -Naur glib-2.46.0-orig/glib/giowin32.c glib-2.46.0/glib/giowin32.c +--- glib-2.46.0-orig/glib/giowin32.c 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/giowin32.c 2015-09-22 09:08:59.357921600 +0300 +@@ -798,7 +798,7 @@ default: g_assert_not_reached (); @@ -22,7 +22,7 @@ diff -ur glib-2.37.4.orig/glib/giowin32.c glib-2.37.4/glib/giowin32.c } if (channel->debug) g_print ("\n"); -@@ -947,7 +947,7 @@ +@@ -945,7 +945,7 @@ default: g_assert_not_reached (); @@ -31,7 +31,7 @@ diff -ur glib-2.37.4.orig/glib/giowin32.c glib-2.37.4/glib/giowin32.c } } -@@ -1012,7 +1012,7 @@ +@@ -1010,7 +1010,7 @@ default: g_assert_not_reached (); @@ -40,7 +40,7 @@ diff -ur glib-2.37.4.orig/glib/giowin32.c glib-2.37.4/glib/giowin32.c } if (channel->debug) g_print ("\n"); -@@ -1297,7 +1297,7 @@ +@@ -1295,7 +1295,7 @@ default: whence = -1; /* Keep the compiler quiet */ g_assert_not_reached (); @@ -49,7 +49,7 @@ diff -ur glib-2.37.4.orig/glib/giowin32.c glib-2.37.4/glib/giowin32.c } tmp_offset = offset; -@@ -1692,7 +1692,7 @@ +@@ -1690,7 +1690,7 @@ break; default: g_assert_not_reached (); @@ -58,7 +58,7 @@ diff -ur glib-2.37.4.orig/glib/giowin32.c glib-2.37.4/glib/giowin32.c } /* always open 'untranslated' */ -@@ -1738,7 +1738,7 @@ +@@ -1736,7 +1736,7 @@ break; default: g_assert_not_reached (); @@ -67,7 +67,7 @@ diff -ur glib-2.37.4.orig/glib/giowin32.c glib-2.37.4/glib/giowin32.c } return channel; -@@ -2227,7 +2227,7 @@ +@@ -2225,7 +2225,7 @@ default: g_assert_not_reached (); @@ -76,9 +76,10 @@ diff -ur glib-2.37.4.orig/glib/giowin32.c glib-2.37.4/glib/giowin32.c } fd->events = condition; ---- glib-2.39.3/glib/gmessages.c.orig 2014-01-06 19:02:48.000000000 +0000 -+++ glib-2.39.3/glib/gmessages.c 2014-01-22 22:44:37.532985700 +0000 -@@ -308,7 +308,7 @@ +diff -Naur glib-2.46.0-orig/glib/gmessages.c glib-2.46.0/glib/gmessages.c +--- glib-2.46.0-orig/glib/gmessages.c 2015-09-21 06:33:23.000000000 +0300 ++++ glib-2.46.0/glib/gmessages.c 2015-09-22 09:08:59.373519900 +0300 +@@ -323,7 +323,7 @@ if (breakpoint) G_BREAKPOINT (); else @@ -87,19 +88,19 @@ diff -ur glib-2.37.4.orig/glib/giowin32.c glib-2.37.4/glib/giowin32.c } #ifdef G_OS_WIN32 -@@ -1130,7 +1130,7 @@ - pretty_function, - expression); +@@ -1176,7 +1176,7 @@ + line, + pretty_function); _g_log_abort (FALSE); - abort (); + g_abort (); } /** -diff -ur glib-2.37.4.orig/glib/gslice.c glib-2.37.4/glib/gslice.c ---- glib-2.37.4.orig/glib/gslice.c 2013-06-11 02:14:02.000000000 +0000 -+++ glib-2.37.4/glib/gslice.c 2013-07-28 20:00:41.525304700 +0000 -@@ -1094,7 +1094,7 @@ +diff -Naur glib-2.46.0-orig/glib/gslice.c glib-2.46.0/glib/gslice.c +--- glib-2.46.0-orig/glib/gslice.c 2015-09-08 20:40:27.000000000 +0300 ++++ glib-2.46.0/glib/gslice.c 2015-09-22 09:08:59.404716500 +0300 +@@ -1082,7 +1082,7 @@ return; if (G_UNLIKELY (allocator->config.debug_blocks) && !smc_notify_free (mem_block, mem_size)) @@ -108,7 +109,7 @@ diff -ur glib-2.37.4.orig/glib/gslice.c glib-2.37.4/glib/gslice.c if (G_LIKELY (acat == 1)) /* allocate through magazine layer */ { ThreadMemory *tmem = thread_memory_from_self(); -@@ -1178,7 +1178,7 @@ +@@ -1165,7 +1165,7 @@ slice = *(gpointer*) (current + next_offset); if (G_UNLIKELY (allocator->config.debug_blocks) && !smc_notify_free (current, mem_size)) @@ -117,7 +118,7 @@ diff -ur glib-2.37.4.orig/glib/gslice.c glib-2.37.4/glib/gslice.c if (G_UNLIKELY (thread_memory_magazine2_is_full (tmem, ix))) { thread_memory_swap_magazines (tmem, ix); -@@ -1199,7 +1199,7 @@ +@@ -1186,7 +1186,7 @@ slice = *(gpointer*) (current + next_offset); if (G_UNLIKELY (allocator->config.debug_blocks) && !smc_notify_free (current, mem_size)) @@ -126,7 +127,7 @@ diff -ur glib-2.37.4.orig/glib/gslice.c glib-2.37.4/glib/gslice.c if (G_UNLIKELY (g_mem_gc_friendly)) memset (current, 0, chunk_size); slab_allocator_free_chunk (chunk_size, current); -@@ -1213,7 +1213,7 @@ +@@ -1200,7 +1200,7 @@ slice = *(gpointer*) (current + next_offset); if (G_UNLIKELY (allocator->config.debug_blocks) && !smc_notify_free (current, mem_size)) @@ -135,7 +136,7 @@ diff -ur glib-2.37.4.orig/glib/gslice.c glib-2.37.4/glib/gslice.c if (G_UNLIKELY (g_mem_gc_friendly)) memset (current, 0, mem_size); g_free (current); -@@ -1452,7 +1452,7 @@ +@@ -1436,7 +1436,7 @@ vfprintf (stderr, format, args); va_end (args); fputs ("\n", stderr); @@ -144,10 +145,10 @@ diff -ur glib-2.37.4.orig/glib/gslice.c glib-2.37.4/glib/gslice.c _exit (1); } -diff -ur glib-2.37.4.orig/glib/gtester.c glib-2.37.4/glib/gtester.c ---- glib-2.37.4.orig/glib/gtester.c 2013-06-02 23:20:49.000000000 +0000 -+++ glib-2.37.4/glib/gtester.c 2013-07-28 20:00:48.964249400 +0000 -@@ -96,7 +96,7 @@ +diff -Naur glib-2.46.0-orig/glib/gtester.c glib-2.46.0/glib/gtester.c +--- glib-2.46.0-orig/glib/gtester.c 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/gtester.c 2015-09-22 09:08:59.420314800 +0300 +@@ -94,7 +94,7 @@ terminate (void) { kill (getpid(), SIGTERM); @@ -156,10 +157,48 @@ diff -ur glib-2.37.4.orig/glib/gtester.c glib-2.37.4/glib/gtester.c } static void -diff -ur glib-2.37.4.orig/glib/gthread-posix.c glib-2.37.4/glib/gthread-posix.c ---- glib-2.37.4.orig/glib/gthread-posix.c 2013-07-09 16:45:56.000000000 +0000 -+++ glib-2.37.4/glib/gthread-posix.c 2013-07-28 20:01:09.374341100 +0000 -@@ -76,7 +76,7 @@ +diff -Naur glib-2.46.0-orig/glib/gtestutils.c glib-2.46.0/glib/gtestutils.c +--- glib-2.46.0-orig/glib/gtestutils.c 2015-09-01 06:34:13.000000000 +0300 ++++ glib-2.46.0/glib/gtestutils.c 2015-09-22 09:08:59.576297800 +0300 +@@ -846,7 +846,7 @@ + { + if (test_tap_log) + g_print ("Bail out!\n"); +- abort(); ++ g_abort(); + } + if (result == G_TEST_RUN_SKIPPED) + test_skipped_count++; +@@ -2426,7 +2426,7 @@ + _exit (1); + } + else +- abort (); ++ g_abort (); + } + + void +@@ -2451,7 +2451,7 @@ + if (test_in_subprocess) + _exit (1); + else +- abort (); ++ g_abort (); + } + + void +diff -Naur glib-2.46.0-orig/glib/gthread-posix.c glib-2.46.0/glib/gthread-posix.c +--- glib-2.46.0-orig/glib/gthread-posix.c 2015-08-19 06:35:30.000000000 +0300 ++++ glib-2.46.0/glib/gthread-posix.c 2015-09-22 09:08:59.560699500 +0300 +@@ -46,6 +46,7 @@ + #include "gmessages.h" + #include "gstrfuncs.h" + #include "gmain.h" ++#include "gutils.h" + + #include + #include +@@ -77,7 +78,7 @@ { fprintf (stderr, "GLib (gthread-posix.c): Unexpected error from C library during '%s': %s. Aborting.\n", function, strerror (status)); @@ -168,10 +207,10 @@ diff -ur glib-2.37.4.orig/glib/gthread-posix.c glib-2.37.4/glib/gthread-posix.c } /* {{{1 GMutex */ -diff -ur glib-2.37.4.orig/glib/gthread-win32.c glib-2.37.4/glib/gthread-win32.c ---- glib-2.37.4.orig/glib/gthread-win32.c 2013-06-02 23:20:49.000000000 +0000 -+++ glib-2.37.4/glib/gthread-win32.c 2013-07-28 20:01:13.008802600 +0000 -@@ -60,7 +60,7 @@ +diff -Naur glib-2.46.0-orig/glib/gthread-win32.c glib-2.46.0/glib/gthread-win32.c +--- glib-2.46.0-orig/glib/gthread-win32.c 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/gthread-win32.c 2015-09-22 09:08:59.467109700 +0300 +@@ -58,7 +58,7 @@ { fprintf (stderr, "GLib (gthread-win32.c): Unexpected error from C library during '%s': %s. Aborting.\n", strerror (status), function); @@ -180,10 +219,10 @@ diff -ur glib-2.37.4.orig/glib/gthread-win32.c glib-2.37.4/glib/gthread-win32.c } /* Starting with Vista and Windows 2008, we have access to the -diff -ur glib-2.37.4.orig/glib/gutils.c glib-2.37.4/glib/gutils.c ---- glib-2.37.4.orig/glib/gutils.c 2013-06-11 02:14:02.000000000 +0000 -+++ glib-2.37.4/glib/gutils.c 2013-07-28 19:57:12.280734000 +0000 -@@ -2433,3 +2433,15 @@ +diff -Naur glib-2.46.0-orig/glib/gutils.c glib-2.46.0/glib/gutils.c +--- glib-2.46.0-orig/glib/gutils.c 2015-08-28 21:15:54.000000000 +0300 ++++ glib-2.46.0/glib/gutils.c 2015-09-22 09:08:59.498306300 +0300 +@@ -2375,3 +2375,15 @@ return FALSE; #endif } @@ -199,10 +238,10 @@ diff -ur glib-2.37.4.orig/glib/gutils.c glib-2.37.4/glib/gutils.c + abort (); +#endif +} -diff -ur glib-2.37.4.orig/glib/gutils.h glib-2.37.4/glib/gutils.h ---- glib-2.37.4.orig/glib/gutils.h 2013-06-11 02:14:02.000000000 +0000 -+++ glib-2.37.4/glib/gutils.h 2013-07-28 19:58:22.568659500 +0000 -@@ -230,6 +230,9 @@ +diff -Naur glib-2.46.0-orig/glib/gutils.h glib-2.46.0/glib/gutils.h +--- glib-2.46.0-orig/glib/gutils.h 2015-08-21 03:20:48.000000000 +0300 ++++ glib-2.46.0/glib/gutils.h 2015-09-22 09:08:59.529502900 +0300 +@@ -228,6 +228,9 @@ GLIB_DEPRECATED_FOR(g_format_size) gchar *g_format_size_for_display (goffset size); @@ -212,42 +251,3 @@ diff -ur glib-2.37.4.orig/glib/gutils.h glib-2.37.4/glib/gutils.h #ifndef G_DISABLE_DEPRECATED /** * GVoidFunc: ---- glib-2.37.4/glib/gthread-posix.c.orig 2013-07-28 20:02:38.456653100 +0000 -+++ glib-2.37.4/glib/gthread-posix.c 2013-07-28 20:06:34.756159300 +0000 -@@ -47,6 +47,7 @@ - #include "gmessages.h" - #include "gstrfuncs.h" - #include "gmain.h" -+#include "gutils.h" - - #include - #include ---- glib-2.39.3/glib/gtestutils.c.orig 2014-01-09 03:58:06.000000000 +0000 -+++ glib-2.39.3/glib/gtestutils.c 2014-01-22 22:42:53.192017800 +0000 -@@ -764,7 +764,7 @@ - { - if (test_tap_log) - g_print ("Bail out!\n"); -- abort(); -+ g_abort(); - } - if (largs[0] == G_TEST_RUN_SKIPPED) - test_skipped_count++; -@@ -2349,7 +2349,7 @@ - _exit (1); - } - else -- abort (); -+ g_abort (); - } - - void -@@ -2374,7 +2374,7 @@ - if (test_in_subprocess) - _exit (1); - else -- abort (); -+ g_abort (); - } - - void diff --git a/mingw-w64-glib2/0004-glib-prefer-constructors-over-DllMain.patch b/mingw-w64-glib2/0004-glib-prefer-constructors-over-DllMain.patch index 01da75a56a..7cc925a886 100644 --- a/mingw-w64-glib2/0004-glib-prefer-constructors-over-DllMain.patch +++ b/mingw-w64-glib2/0004-glib-prefer-constructors-over-DllMain.patch @@ -1,22 +1,7 @@ -From bc90511c1eb333e26e0bc0eaee62375d0e788db6 Mon Sep 17 00:00:00 2001 -From: Erik van Pienbroek -Date: Tue, 16 Apr 2013 11:42:11 +0200 -Subject: [PATCH] win32: Prefer the use of constructors over DllMain - -This prevents having to depend on DllMain in static libraries - -Constructors are available in both the GCC build (GCC 2.7 and later) -and the MSVC build (MSVC 2008 and later using _Pragma, earlier -versions using #pragma) ---- - glib/glib-init.c | 22 ++++++++++++++-------- - 1 file changed, 14 insertions(+), 8 deletions(-) - -diff --git a/glib/glib-init.c b/glib/glib-init.c -index 0032ee8..dd6ccbf 100644 ---- a/glib/glib-init.c -+++ b/glib/glib-init.c -@@ -223,12 +223,14 @@ glib_init (void) +diff -Naur glib-2.46.0-orig/glib/glib-init.c glib-2.46.0/glib/glib-init.c +--- glib-2.46.0-orig/glib/glib-init.c 2015-09-12 18:13:45.000000000 +0300 ++++ glib-2.46.0/glib/glib-init.c 2015-09-22 09:09:00.512195800 +0300 +@@ -238,12 +238,14 @@ #if defined (G_OS_WIN32) @@ -33,7 +18,7 @@ index 0032ee8..dd6ccbf 100644 BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, -@@ -238,11 +240,6 @@ DllMain (HINSTANCE hinstDLL, +@@ -253,11 +255,6 @@ { case DLL_PROCESS_ATTACH: glib_dll = hinstDLL; @@ -45,7 +30,7 @@ index 0032ee8..dd6ccbf 100644 break; case DLL_THREAD_DETACH: -@@ -259,7 +256,10 @@ DllMain (HINSTANCE hinstDLL, +@@ -274,7 +271,10 @@ return TRUE; } @@ -57,7 +42,7 @@ index 0032ee8..dd6ccbf 100644 #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(glib_init_ctor) -@@ -269,6 +269,12 @@ G_DEFINE_CONSTRUCTOR(glib_init_ctor) +@@ -284,6 +284,12 @@ static void glib_init_ctor (void) { @@ -70,5 +55,3 @@ index 0032ee8..dd6ccbf 100644 glib_init (); } --- -1.8.2 diff --git a/mingw-w64-glib2/0005-glib-send-log-messages-to-correct-stdout-and-stderr.patch b/mingw-w64-glib2/0005-glib-send-log-messages-to-correct-stdout-and-stderr.patch index 3052d41a86..6731f9ff61 100644 --- a/mingw-w64-glib2/0005-glib-send-log-messages-to-correct-stdout-and-stderr.patch +++ b/mingw-w64-glib2/0005-glib-send-log-messages-to-correct-stdout-and-stderr.patch @@ -1,6 +1,7 @@ ---- glib/gmessages.c.orig 2013-01-02 01:35:51.326148960 +0100 -+++ glib/gmessages.c 2013-01-02 01:36:28.467415487 +0100 -@@ -823,7 +823,7 @@ +diff -Naur glib-2.46.0-orig/glib/gmessages.c glib-2.46.0/glib/gmessages.c +--- glib-2.46.0-orig/glib/gmessages.c 2015-09-22 09:09:00.356212800 +0300 ++++ glib-2.46.0/glib/gmessages.c 2015-09-22 09:09:01.292110800 +0300 +@@ -932,7 +932,7 @@ if ((log_level & G_LOG_FLAG_FATAL) != 0 && !g_test_initialized ()) win32_keep_fatal_message = TRUE; #endif diff --git a/mingw-w64-glib2/0014-fix-gtkdoc.all.patch b/mingw-w64-glib2/0014-fix-gtkdoc.all.patch deleted file mode 100644 index cb3dd279f4..0000000000 --- a/mingw-w64-glib2/0014-fix-gtkdoc.all.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- glib-2.36.0/gtk-doc.make.orig 2013-04-17 19:29:34 +0400 -+++ glib-2.36.0/gtk-doc.make 2013-04-17 19:44:07 +0400 -@@ -101,7 +101,7 @@ - GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) - GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; - --scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) -+scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) setup-build.stamp - $(GTK_DOC_V_SCAN)_source_dir='' ; \ - for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ diff --git a/mingw-w64-glib2/0015-fix-stat.all.patch b/mingw-w64-glib2/0015-fix-stat.all.patch deleted file mode 100644 index 06cb998582..0000000000 --- a/mingw-w64-glib2/0015-fix-stat.all.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- glib-2.39.3/glib/gstdio.h.orig 2013-12-09 01:30:33.000000000 +0000 -+++ glib-2.39.3/glib/gstdio.h 2014-01-23 16:01:09.254148700 +0000 -@@ -27,7 +27,7 @@ - - G_BEGIN_DECLS - --#if defined (_MSC_VER) && !defined(_WIN64) -+#if (defined (__MINGW32__) || defined (_MSC_VER)) && !defined(_WIN64) - - /* Make it clear that we mean the struct with 32-bit st_size and - * 32-bit st_*time fields as that is how the 32-bit GLib DLL normally diff --git a/mingw-w64-glib2/0017-glib-use-gnu-print-scanf.patch b/mingw-w64-glib2/0017-glib-use-gnu-print-scanf.patch index 5754b672c0..613cd1a832 100644 --- a/mingw-w64-glib2/0017-glib-use-gnu-print-scanf.patch +++ b/mingw-w64-glib2/0017-glib-use-gnu-print-scanf.patch @@ -1,24 +1,7 @@ -From ea281f66ce6d71a83d0b0d235a80b505c7d0d26d 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?= -Date: Sun, 2 Mar 2014 18:18:18 +0000 -Subject: [PATCH] Switch G_GNUC_(PRINT|SCAN)F to gnu_(print|scan)f format - explicitly - -https://bugzilla.gnome.org/show_bug.cgi?id=725470 ---- - configure.ac | 10 +++++----- - gio/gregistrysettingsbackend.c | 2 +- - gio/win32/gwinhttpfile.c | 2 +- - glib/gmacros.h | 4 ++-- - glib/gpoll.h | 2 +- - 5 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 6c2ad85..b38715f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -552,7 +552,7 @@ else +diff -Naur glib-2.46.0-orig/configure.ac glib-2.46.0/configure.ac +--- glib-2.46.0-orig/configure.ac 2015-09-21 15:38:33.000000000 +0300 ++++ glib-2.46.0/configure.ac 2015-09-22 09:09:02.118820700 +0300 +@@ -567,7 +567,7 @@ ]) fi @@ -27,7 +10,7 @@ index 6c2ad85..b38715f 100644 # long long is a 64 bit integer. AC_MSG_CHECKING(for format to printf and scanf a guint64) AC_CACHE_VAL(glib_cv_long_long_format,[ -@@ -574,8 +574,8 @@ +@@ -589,8 +589,8 @@ AS_IF([ test -n "$glib_cv_long_long_format"], [ AC_MSG_RESULT(%${glib_cv_long_long_format}u) AC_DEFINE(HAVE_LONG_LONG_FORMAT,1,[define if system printf can print long long]) @@ -38,7 +21,7 @@ index 6c2ad85..b38715f 100644 fi ], [AC_MSG_RESULT(none)]) ],[ test x$ac_cv_sizeof___int64 = x8], [ -@@ -3222,8 +3222,8 @@ +@@ -3177,8 +3177,8 @@ glib_msize_type='LONG' ;; "long long"|__int64) @@ -49,7 +32,7 @@ index 6c2ad85..b38715f 100644 glib_msize_type='INT64' ;; esac -@@ -3245,8 +3245,8 @@ +@@ -3200,8 +3200,8 @@ glib_mssize_type='LONG' ;; "long long"|__int64) @@ -60,7 +43,7 @@ index 6c2ad85..b38715f 100644 glib_mssize_type='INT64' ;; esac -@@ -3264,9 +3264,9 @@ +@@ -3230,9 +3230,9 @@ ;; $ac_cv_sizeof_long_long) glib_intptr_type_define='long long' @@ -73,11 +56,10 @@ index 6c2ad85..b38715f 100644 glib_gpi_cast='(gint64)' glib_gpui_cast='(guint64)' ;; -diff --git a/gio/gregistrysettingsbackend.c b/gio/gregistrysettingsbackend.c -index 396159c..c25a771 100644 ---- a/gio/gregistrysettingsbackend.c -+++ b/gio/gregistrysettingsbackend.c -@@ -328,7 +328,7 @@ registry_value_dump (RegistryValue value) +diff -Naur glib-2.46.0-orig/gio/gregistrysettingsbackend.c glib-2.46.0/gio/gregistrysettingsbackend.c +--- glib-2.46.0-orig/gio/gregistrysettingsbackend.c 2015-08-19 06:35:30.000000000 +0300 ++++ glib-2.46.0/gio/gregistrysettingsbackend.c 2015-09-22 09:09:02.118820700 +0300 +@@ -328,7 +328,7 @@ if (value.type == REG_DWORD) return g_strdup_printf ("%i", value.dword); else if (value.type == REG_QWORD) @@ -86,10 +68,9 @@ index 396159c..c25a771 100644 else if (value.type == REG_SZ) return g_strdup_printf ("%s", (char *)value.ptr); else if (value.type == REG_NONE) -diff --git a/gio/win32/gwinhttpfile.c b/gio/win32/gwinhttpfile.c -index 6403a99..a3c149d 100644 ---- a/gio/win32/gwinhttpfile.c -+++ b/gio/win32/gwinhttpfile.c +diff -Naur glib-2.46.0-orig/gio/win32/gwinhttpfile.c glib-2.46.0/gio/win32/gwinhttpfile.c +--- glib-2.46.0-orig/gio/win32/gwinhttpfile.c 2015-02-26 15:57:09.000000000 +0300 ++++ glib-2.46.0/gio/win32/gwinhttpfile.c 2015-09-22 09:09:02.118820700 +0300 @@ -549,7 +549,7 @@ gint64 cl; int n; @@ -99,11 +80,10 @@ index 6403a99..a3c149d 100644 n == wcslen (content_length)) g_file_info_set_size (info, cl); -diff --git a/glib/gmacros.h b/glib/gmacros.h -index 6403a99..a3c149d 100644 ---- a/glib/gmacros.h -+++ b/glib/gmacros.h -@@ -73,9 +73,9 @@ +diff -Naur glib-2.46.0-orig/glib/gmacros.h glib-2.46.0/glib/gmacros.h +--- glib-2.46.0-orig/glib/gmacros.h 2015-08-19 06:35:30.000000000 +0300 ++++ glib-2.46.0/glib/gmacros.h 2015-09-22 09:09:02.118820700 +0300 +@@ -79,9 +79,9 @@ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) #define G_GNUC_PRINTF( format_idx, arg_idx ) \ @@ -115,12 +95,11 @@ index 6403a99..a3c149d 100644 #define G_GNUC_FORMAT( arg_idx ) \ __attribute__((__format_arg__ (arg_idx))) #define G_GNUC_NORETURN \ -diff --git a/glib/gpoll.h b/glib/gpoll.h -index 6403a99..a3c149d 100644 ---- a/glib/gpoll.h -+++ b/glib/gpoll.h -@@ -100,7 +100,7 @@ - +diff -Naur glib-2.46.0-orig/glib/gpoll.h glib-2.46.0/glib/gpoll.h +--- glib-2.46.0-orig/glib/gpoll.h 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/gpoll.h 2015-09-22 09:09:02.118820700 +0300 +@@ -108,7 +108,7 @@ + */ #ifdef G_OS_WIN32 #if GLIB_SIZEOF_VOID_P == 8 -#define G_POLLFD_FORMAT "%#I64x" @@ -128,5 +107,3 @@ index 6403a99..a3c149d 100644 #else #define G_POLLFD_FORMAT "%#x" #endif --- -1.8.4 diff --git a/mingw-w64-glib2/0021-use-64bit-stat-for-localfile-size-calc.all.patch b/mingw-w64-glib2/0021-use-64bit-stat-for-localfile-size-calc.all.patch deleted file mode 100644 index 896f55c2d7..0000000000 --- a/mingw-w64-glib2/0021-use-64bit-stat-for-localfile-size-calc.all.patch +++ /dev/null @@ -1,50 +0,0 @@ ---- glib-2.39.90/gio/glocalfile.c.orig 2014-02-03 17:40:41.000000000 +0000 -+++ glib-2.39.90/gio/glocalfile.c 2014-03-02 14:30:32.519644000 +0000 -@@ -2648,10 +2648,45 @@ - - #if defined (AT_FDCWD) - if (fstatat (parent_fd, name->data, &buf, AT_SYMLINK_NOFOLLOW) != 0) --#else -+ return g_local_file_measure_size_error (state->flags, errno, name, error); -+#elif defined (HAVE_LSTAT) || !defined (G_OS_WIN32) - if (g_lstat (name->data, &buf) != 0) --#endif - return g_local_file_measure_size_error (state->flags, errno, name, error); -+#else -+ { -+ const char *filename = (const gchar *) name->data; -+ wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); -+ int retval; -+ int save_errno; -+ int len; -+ -+ if (wfilename == NULL) -+ { -+ errno = EINVAL; -+ return g_local_file_measure_size_error (state->flags, errno, name, error); -+ } -+ -+ len = wcslen (wfilename); -+ while (len > 0 && G_IS_DIR_SEPARATOR (wfilename[len-1])) -+ len--; -+ if (len > 0 && -+ (!g_path_is_absolute (filename) || len > g_path_skip_root (filename) - filename)) -+ wfilename[len] = '\0'; -+ -+#ifdef _WIN64 -+ retval = _wstati64 (wfilename, &buf); -+#else -+ retval = _wstat32i64 (wfilename, &buf); -+#endif -+ save_errno = errno; -+ -+ g_free (wfilename); -+ -+ errno = save_errno; -+ if (retval != 0) -+ return g_local_file_measure_size_error (state->flags, errno, name, error); -+ } -+#endif - - if (name->next) - { diff --git a/mingw-w64-glib2/0023-print-in-binary-more-for-testing.all.patch b/mingw-w64-glib2/0023-print-in-binary-more-for-testing.all.patch index ee43958dd6..d0d5d7e5d9 100644 --- a/mingw-w64-glib2/0023-print-in-binary-more-for-testing.all.patch +++ b/mingw-w64-glib2/0023-print-in-binary-more-for-testing.all.patch @@ -1,5 +1,6 @@ ---- glib-2.39.90/glib/tests/test-printf.c.orig 2014-03-02 17:25:28.535468800 +0000 -+++ glib-2.39.90/glib/tests/test-printf.c 2014-03-02 17:24:39.981803200 +0000 +diff -Naur glib-2.46.0-orig/glib/tests/test-printf.c glib-2.46.0/glib/tests/test-printf.c +--- glib-2.46.0-orig/glib/tests/test-printf.c 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/tests/test-printf.c 2015-09-22 09:09:03.039120400 +0300 @@ -24,6 +24,9 @@ #include #include "glib.h" @@ -10,7 +11,7 @@ static void test_retval_and_trunc (void) -@@ -896,6 +899,9 @@ +@@ -907,6 +910,9 @@ main (int argc, char *argv[]) { diff --git a/mingw-w64-glib2/0024-return-actually-written-data-in-printf.all.patch b/mingw-w64-glib2/0024-return-actually-written-data-in-printf.all.patch index a6cc49305b..478b2be211 100644 --- a/mingw-w64-glib2/0024-return-actually-written-data-in-printf.all.patch +++ b/mingw-w64-glib2/0024-return-actually-written-data-in-printf.all.patch @@ -1,5 +1,6 @@ ---- glib-2.40.0/glib/gnulib/printf.c.orig 2014-02-03 17:40:41.000000000 +0000 -+++ glib-2.40.0/glib/gnulib/printf.c 2014-05-20 00:11:04.036075100 +0000 +diff -Naur glib-2.46.0-orig/glib/gnulib/printf.c glib-2.46.0/glib/gnulib/printf.c +--- glib-2.46.0-orig/glib/gnulib/printf.c 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/gnulib/printf.c 2015-09-22 09:09:03.834633700 +0300 @@ -88,16 +88,16 @@ int _g_gnulib_vfprintf (FILE *file, char const *format, va_list args) { diff --git a/mingw-w64-glib2/0027-no_sys_if_nametoindex.patch b/mingw-w64-glib2/0027-no_sys_if_nametoindex.patch index 4ab05ad294..456949797c 100644 --- a/mingw-w64-glib2/0027-no_sys_if_nametoindex.patch +++ b/mingw-w64-glib2/0027-no_sys_if_nametoindex.patch @@ -1,6 +1,7 @@ ---- glib-2.43.2/gio/gsocket.c.orig 2014-12-12 15:03:50.000000000 +0000 -+++ glib-2.43.2/gio/gsocket.c 2015-01-14 12:44:04.619136700 +0000 -@@ -1931,7 +1931,7 @@ +diff -Naur glib-2.46.0-orig/gio/gsocket.c glib-2.46.0/gio/gsocket.c +--- glib-2.46.0-orig/gio/gsocket.c 2015-08-31 16:08:34.000000000 +0300 ++++ glib-2.46.0/gio/gsocket.c 2015-09-22 09:09:04.614548700 +0300 +@@ -1951,7 +1951,7 @@ #if !defined(HAVE_IF_NAMETOINDEX) && defined(G_OS_WIN32) static guint @@ -9,7 +10,7 @@ { PIP_ADAPTER_ADDRESSES addresses = NULL, p; gulong addresses_len = 0; -@@ -1981,6 +1981,7 @@ +@@ -2004,6 +2004,7 @@ } #define HAVE_IF_NAMETOINDEX 1 diff --git a/mingw-w64-glib2/0028-inode_directory.patch b/mingw-w64-glib2/0028-inode_directory.patch index fbfa12773d..fdb8048bf8 100644 --- a/mingw-w64-glib2/0028-inode_directory.patch +++ b/mingw-w64-glib2/0028-inode_directory.patch @@ -1,6 +1,7 @@ ---- a/gio/glocalfileinfo.c 2015-02-26 03:57:52.000000000 +0100 -+++ b/gio/glocalfileinfo.c 2015-03-14 14:04:17.044446300 +0100 -@@ -1220,7 +1220,7 @@ +diff -Naur glib-2.46.0-orig/gio/glocalfileinfo.c glib-2.46.0/gio/glocalfileinfo.c +--- glib-2.46.0-orig/gio/glocalfileinfo.c 2015-08-21 08:00:49.000000000 +0300 ++++ glib-2.46.0/gio/glocalfileinfo.c 2015-09-22 09:09:05.410062000 +0300 +@@ -1232,7 +1232,7 @@ (symlink_broken || (flags & G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS))) return g_content_type_from_mime_type ("inode/symlink"); else if (statbuf != NULL && S_ISDIR(statbuf->st_mode)) diff --git a/mingw-w64-glib2/0029-grand.all.patch b/mingw-w64-glib2/0029-grand.all.patch index 13bc3a96b1..1c7ea25c1a 100644 --- a/mingw-w64-glib2/0029-grand.all.patch +++ b/mingw-w64-glib2/0029-grand.all.patch @@ -1,5 +1,6 @@ ---- glib-2.43.2/glib/grand.c.orig 2014-09-15 19:51:01.000000000 +0000 -+++ glib-2.43.2/glib/grand.c 2015-01-14 13:53:08.130295800 +0000 +diff -Naur glib-2.46.0-orig/glib/grand.c glib-2.46.0/glib/grand.c +--- glib-2.46.0-orig/glib/grand.c 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/grand.c 2015-09-22 09:09:06.174378700 +0300 @@ -263,7 +263,8 @@ } #else /* G_OS_WIN32 */ diff --git a/mingw-w64-glib2/0030-right-wstat-for-64bit.patch b/mingw-w64-glib2/0030-right-wstat-for-64bit.patch new file mode 100644 index 0000000000..a92fe9ed09 --- /dev/null +++ b/mingw-w64-glib2/0030-right-wstat-for-64bit.patch @@ -0,0 +1,14 @@ +--- glib-2.46.0/gio/glocalfile.c.orig 2015-09-22 09:21:19.504654600 +0300 ++++ glib-2.46.0/gio/glocalfile.c 2015-09-22 09:22:36.185897400 +0300 +@@ -2682,7 +2682,11 @@ + (!g_path_is_absolute (filename) || len > g_path_skip_root (filename) - filename)) + wfilename[len] = '\0'; + ++#ifdef _WIN64 ++ retval = _wstati64 (wfilename, &buf); ++#else + retval = _wstat32i64 (wfilename, &buf); ++#endif + save_errno = errno; + + g_free (wfilename); diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index fbe26b225a..7d1965ece6 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Renato Silva _realname=glib2 +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.44.1 -pkgrel=4 +pkgver=2.46.0 +pkgrel=1 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" @@ -21,27 +22,25 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-${pkgver} 0003-g_abort.all.patch 0004-glib-prefer-constructors-over-DllMain.patch 0005-glib-send-log-messages-to-correct-stdout-and-stderr.patch - 0015-fix-stat.all.patch 0017-glib-use-gnu-print-scanf.patch - 0021-use-64bit-stat-for-localfile-size-calc.all.patch 0023-print-in-binary-more-for-testing.all.patch 0024-return-actually-written-data-in-printf.all.patch 0027-no_sys_if_nametoindex.patch 0028-inode_directory.patch - 0029-grand.all.patch) -md5sums=('83efba4722a9674b97437d1d99af79db' - '98c7778b5e8a30dbcdb86bcd15f9c11d' - '6eb9d56028ea3bbec3d053254a00a04b' - '46969e815f3ab19582ba33667a52048b' - '7b065f9bc154bf996523974a698b24de' - '963a72f6efcaa3405204b76b27b44645' - '29065eb21bc779787080f0529a6c5f96' - '952989e534235721d30b9ee3d89cc225' - '217a997ede1b93ac06f96ed869b74378' - '500f39baea98d98e4a2f877ad56f55a5' - '8bc2941b1a5f082c3532e6f0abfeeb84' - '6c06cdfcbf877fb560e0be393a043d56' - '2d4a7a53cfe9011b12f91c79e0ecc63e') + 0029-grand.all.patch + 0030-right-wstat-for-64bit.patch) +md5sums=('6d58f9d70893a63e75c2b7df79375ee7' + '10cf1e482b6a1367d79648466f2cf23c' + '27e8188e764eed3b3d565e5fc5746654' + 'b3cf766d5e717010a7534c61e53f3204' + '80fb538441701d2dd3ab8bcb13baf90c' + 'b66efec303c72876e6e7d25375b8d081' + 'f6659fa19dd0395a7a285c84bb75472b' + '3f896edd80eaa9c4e98abca0df6c83bd' + '4aa52b552a6a25b49a1b6f928b3cdafd' + '27ad96697441aabc4a01f881ad9999ea' + 'b64390c406d32578e979103eed89232b' + 'de0744aac6f847a5031b1dec316911d1') prepare() { cd "${srcdir}/glib-${pkgver}" @@ -49,15 +48,14 @@ prepare() { patch -Np1 -i "${srcdir}/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch" patch -Np1 -i "${srcdir}/0003-g_abort.all.patch" patch -Np1 -i "${srcdir}/0004-glib-prefer-constructors-over-DllMain.patch" - patch -Np0 -i "${srcdir}/0005-glib-send-log-messages-to-correct-stdout-and-stderr.patch" - patch -Np1 -i "${srcdir}/0015-fix-stat.all.patch" + patch -Np1 -i "${srcdir}/0005-glib-send-log-messages-to-correct-stdout-and-stderr.patch" patch -Np1 -i "${srcdir}/0017-glib-use-gnu-print-scanf.patch" - patch -Np1 -i "${srcdir}/0021-use-64bit-stat-for-localfile-size-calc.all.patch" patch -Np1 -i "${srcdir}/0023-print-in-binary-more-for-testing.all.patch" patch -Np1 -i "${srcdir}/0024-return-actually-written-data-in-printf.all.patch" patch -Np1 -i "${srcdir}/0027-no_sys_if_nametoindex.patch" patch -Np1 -i "${srcdir}/0028-inode_directory.patch" patch -Np1 -i "${srcdir}/0029-grand.all.patch" + patch -Np1 -i "${srcdir}/0030-right-wstat-for-64bit.patch" NOCONFIGURE=1 ./autogen.sh } From a5fcaed6e0d1d891baabb6fa69381e57493f5e4c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 09:58:46 +0300 Subject: [PATCH 1616/2060] atk: Update to 2.18.0 --- mingw-w64-atk/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-atk/PKGBUILD b/mingw-w64-atk/PKGBUILD index 1f610a5946..0dc08569be 100644 --- a/mingw-w64-atk/PKGBUILD +++ b/mingw-w64-atk/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Renato Silva _realname=atk +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.16.0 -pkgrel=2 +pkgver=2.18.0 +pkgrel=1 pkgdesc="A library providing a set of interfaces for accessibility (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -14,10 +15,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gnome-common" - "${MINGW_PACKAGE_PREFIX}-glib2>=2.41.0") + "${MINGW_PACKAGE_PREFIX}-glib2>=2.46.0") options=('strip' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/atk/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") -md5sums=('c7c5002bd6e58b4723a165f1bf312116') +md5sums=('fd3678f35004b4c92e3da39356996054') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From cbf46d1bf63548972ba65cdbb3a3578be528cd4e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 09:58:59 +0300 Subject: [PATCH 1617/2060] pango: Update to 1.38.0 --- mingw-w64-pango/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-pango/PKGBUILD b/mingw-w64-pango/PKGBUILD index b581a671e5..679c67026f 100644 --- a/mingw-w64-pango/PKGBUILD +++ b/mingw-w64-pango/PKGBUILD @@ -4,7 +4,7 @@ _realname=pango pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.37.5 +pkgver=1.38.0 pkgrel=1 pkgdesc="A library for layout and rendering of text (mingw-w64)" arch=('any') @@ -31,7 +31,7 @@ options=('staticlibs' 'strip' 'emptydirs') source=("http://ftp.gnome.org/pub/gnome/sources/pango/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz" 0001-no-unconditional-xft-please.all.patch 0002-msvc-is-impotent-but-not.mingw.patch) -sha256sums=('ebd7cf2b93cf9a8161c7ab883889917b1650c70f989e3188b8eab00eedd83ac4' +sha256sums=('1d4e75974bad853ee9ac5fc5caee5e7ab235abbd945d51d01f3806e04e7c226c' 'eccc044bbd156b252f5a13f7894c3a6cd1efc6ea80eaee57a5865895b192616d' '240d21474157c0deabc2660593ac0414565ddf30c304b08b74a09072c910b34d') From 1c76a17de6c1cd65c5d360351832fe3783e1d0bb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 09:59:12 +0300 Subject: [PATCH 1618/2060] libsigc++: Update to 2.6.0 --- mingw-w64-libsigc++/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libsigc++/PKGBUILD b/mingw-w64-libsigc++/PKGBUILD index a03b05cdf2..ae885291bc 100644 --- a/mingw-w64-libsigc++/PKGBUILD +++ b/mingw-w64-libsigc++/PKGBUILD @@ -3,7 +3,7 @@ _realname=libsigc++ pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.5.4 +pkgver=2.6.0 pkgrel=1 pkgdesc="Libsigc++ implements a full callback system for use in widget libraries - V2 (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/GNOME/sources/libsigc++/${pkgver%.*}/libsigc++-${pkgver}.tar.xz") -sha256sums=('ecf55f53d6058ba6e41985b862f2e95fb5c2b31c008caa16984e790547337ea7') +sha256sums=('67c07771bf6313022883055efb0fad7cc9875168a4c0d01879d1846747e4ce3d') build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" From cac02700018b38519a9342bc76dd2142affec97f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 10:27:50 +0300 Subject: [PATCH 1619/2060] cairo: Add patches from upstream for gtk3 3.18.x support --- ...0013-mozilla-transparent-windows.all.patch | 109 ------- .../0022-dont-fail-argb-similar.all.patch | 11 - ...o-API-to-setup-Win32-surface-for-HDC.patch | 138 ++++++++ .../0031-ad-Win32-boilerplate.patch | 304 ++++++++++++++++++ mingw-w64-cairo/PKGBUILD | 24 +- 5 files changed, 453 insertions(+), 133 deletions(-) delete mode 100644 mingw-w64-cairo/0013-mozilla-transparent-windows.all.patch delete mode 100644 mingw-w64-cairo/0022-dont-fail-argb-similar.all.patch create mode 100644 mingw-w64-cairo/0030-add-cairo-API-to-setup-Win32-surface-for-HDC.patch create mode 100644 mingw-w64-cairo/0031-ad-Win32-boilerplate.patch diff --git a/mingw-w64-cairo/0013-mozilla-transparent-windows.all.patch b/mingw-w64-cairo/0013-mozilla-transparent-windows.all.patch deleted file mode 100644 index e6712c01a9..0000000000 --- a/mingw-w64-cairo/0013-mozilla-transparent-windows.all.patch +++ /dev/null @@ -1,109 +0,0 @@ -diff --git a/gfx/cairo/cairo/src/cairo-win32.h b/gfx/cairo/cairo/src/cairo-win32.h ---- a/src/cairo-win32.h -+++ b/src/cairo-win32.h -@@ -44,16 +44,19 @@ - #include - - CAIRO_BEGIN_DECLS - - cairo_public cairo_surface_t * - cairo_win32_surface_create (HDC hdc); - - cairo_public cairo_surface_t * -+cairo_win32_surface_create_with_alpha (HDC hdc); -+ -+cairo_public cairo_surface_t * - cairo_win32_printing_surface_create (HDC hdc); - - cairo_public cairo_surface_t * - cairo_win32_surface_create_with_ddb (HDC hdc, - cairo_format_t format, - int width, - int height); - ---- cairo-1.12.16/src/win32/cairo-win32-display-surface.c.orig 2013-08-26 15:07:21.000000000 +0000 -+++ cairo-1.12.16/src/win32/cairo-win32-display-surface.c 2014-03-27 00:04:01.097336000 +0000 -@@ -916,33 +916,14 @@ - * multiplied by all the src components. - */ - --/** -- * cairo_win32_surface_create: -- * @hdc: the DC to create a surface for -- * -- * Creates a cairo surface that targets the given DC. The DC will be -- * queried for its initial clip extents, and this will be used as the -- * size of the cairo surface. The resulting surface will always be of -- * format %CAIRO_FORMAT_RGB24; should you need another surface format, -- * you will need to create one through -- * cairo_win32_surface_create_with_dib(). -- * -- * Return value: the newly created surface -- * -- * Since: 1.0 -- **/ --cairo_surface_t * --cairo_win32_surface_create (HDC hdc) -+static cairo_surface_t * -+cairo_win32_surface_create_internal (HDC hdc, cairo_format_t format) - { - cairo_win32_display_surface_t *surface; - -- cairo_format_t format; - cairo_status_t status; - cairo_device_t *device; - -- /* Assume that everything coming in as a HDC is RGB24 */ -- format = CAIRO_FORMAT_RGB24; -- - surface = malloc (sizeof (*surface)); - if (surface == NULL) - return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); -@@ -977,6 +958,47 @@ - } - - /** -+ * cairo_win32_surface_create: -+ * @hdc: the DC to create a surface for -+ * -+ * Creates a cairo surface that targets the given DC. The DC will be -+ * queried for its initial clip extents, and this will be used as the -+ * size of the cairo surface. The resulting surface will always be of -+ * format %CAIRO_FORMAT_RGB24; should you need another surface format, -+ * you will need to create one through -+ * cairo_win32_surface_create_with_dib(). -+ * -+ * Return value: the newly created surface -+ * -+ * Since: 1.0 -+ **/ -+cairo_surface_t * -+cairo_win32_surface_create (HDC hdc) -+{ -+ return cairo_win32_surface_create_internal(hdc, CAIRO_FORMAT_RGB24); -+} -+ -+/** -+ * cairo_win32_surface_create_with_alpha: -+ * @hdc: the DC to create a surface for -+ * -+ * Creates a cairo surface that targets the given DC. The DC will be -+ * queried for its initial clip extents, and this will be used as the -+ * size of the cairo surface. The resulting surface will always be of -+ * format %CAIRO_FORMAT_ARGB32; this format is used when drawing into -+ * transparent windows. -+ * -+ * Return value: the newly created surface -+ * -+ * Since: 1.12 -+ **/ -+cairo_surface_t * -+cairo_win32_surface_create_with_alpha (HDC hdc) -+{ -+ return cairo_win32_surface_create_internal(hdc, CAIRO_FORMAT_ARGB32); -+} -+ -+/** - * cairo_win32_surface_create_with_dib: - * @format: format of pixels in the surface to create - * @width: width of the surface, in pixels diff --git a/mingw-w64-cairo/0022-dont-fail-argb-similar.all.patch b/mingw-w64-cairo/0022-dont-fail-argb-similar.all.patch deleted file mode 100644 index 4306e54608..0000000000 --- a/mingw-w64-cairo/0022-dont-fail-argb-similar.all.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- cairo-bb17403622e9ea474017e0039af8ee48b2b285db/src/win32/cairo-win32-display-surface.c.orig 2014-04-05 19:23:25.770005100 +0000 -+++ cairo-bb17403622e9ea474017e0039af8ee48b2b285db/src/win32/cairo-win32-display-surface.c 2014-04-05 19:27:59.506765200 +0000 -@@ -1049,7 +1049,7 @@ - HDC screen_dc, ddb_dc; - HBITMAP saved_dc_bitmap; - -- if (format != CAIRO_FORMAT_RGB24) -+ if (format != CAIRO_FORMAT_RGB24 && format != CAIRO_FORMAT_ARGB32) - return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_FORMAT)); - /* XXX handle these eventually - format != CAIRO_FORMAT_A8 || diff --git a/mingw-w64-cairo/0030-add-cairo-API-to-setup-Win32-surface-for-HDC.patch b/mingw-w64-cairo/0030-add-cairo-API-to-setup-Win32-surface-for-HDC.patch new file mode 100644 index 0000000000..70d90ff98b --- /dev/null +++ b/mingw-w64-cairo/0030-add-cairo-API-to-setup-Win32-surface-for-HDC.patch @@ -0,0 +1,138 @@ +From 16898ba11b4d6e9e2e64bb2d02d0fb5adbe266e2 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?= +Date: Thu, 26 Mar 2015 19:33:43 +0000 +Subject: win32: Add cairo API to set up a Win32 surface for an HDC with an + alpha channel. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Руслан Ижбулатов +Reviewed-by: Bryce Harrington + +diff --git a/src/cairo-win32.h b/src/cairo-win32.h +index 3d2e1c6..db4cac6 100644 +--- a/src/cairo-win32.h ++++ b/src/cairo-win32.h +@@ -49,6 +49,10 @@ cairo_public cairo_surface_t * + cairo_win32_surface_create (HDC hdc); + + cairo_public cairo_surface_t * ++cairo_win32_surface_create_with_format (HDC hdc, ++ cairo_format_t format); ++ ++cairo_public cairo_surface_t * + cairo_win32_printing_surface_create (HDC hdc); + + cairo_public cairo_surface_t * +diff --git a/src/win32/cairo-win32-display-surface.c b/src/win32/cairo-win32-display-surface.c +index 965f2c4..1571480 100644 +--- a/src/win32/cairo-win32-display-surface.c ++++ b/src/win32/cairo-win32-display-surface.c +@@ -917,31 +917,41 @@ static const cairo_surface_backend_t cairo_win32_display_surface_backend = { + */ + + /** +- * cairo_win32_surface_create: ++ * cairo_win32_surface_create_with_format: + * @hdc: the DC to create a surface for ++ * @format: format of pixels in the surface to create + * + * Creates a cairo surface that targets the given DC. The DC will be + * queried for its initial clip extents, and this will be used as the +- * size of the cairo surface. The resulting surface will always be of +- * format %CAIRO_FORMAT_RGB24; should you need another surface format, +- * you will need to create one through +- * cairo_win32_surface_create_with_dib(). ++ * size of the cairo surface. + * +- * Return value: the newly created surface ++ * Supported formats are: ++ * %CAIRO_FORMAT_ARGB32 ++ * %CAIRO_FORMAT_RGB24 + * +- * Since: 1.0 ++ * Note: @format only tells cairo how to draw on the surface, not what ++ * the format of the surface is. Namely, cairo does not (and cannot) ++ * check that @hdc actually supports alpha-transparency. ++ * ++ * Return value: the newly created surface, NULL on failure ++ * ++ * Since: 1.14.3 + **/ + cairo_surface_t * +-cairo_win32_surface_create (HDC hdc) ++cairo_win32_surface_create_with_format (HDC hdc, cairo_format_t format) + { + cairo_win32_display_surface_t *surface; + +- cairo_format_t format; + cairo_status_t status; + cairo_device_t *device; + +- /* Assume that everything coming in as a HDC is RGB24 */ +- format = CAIRO_FORMAT_RGB24; ++ switch (format) { ++ default: ++ return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_FORMAT)); ++ case CAIRO_FORMAT_ARGB32: ++ case CAIRO_FORMAT_RGB24: ++ break; ++ } + + surface = malloc (sizeof (*surface)); + if (surface == NULL) +@@ -977,6 +987,28 @@ cairo_win32_surface_create (HDC hdc) + } + + /** ++ * cairo_win32_surface_create: ++ * @hdc: the DC to create a surface for ++ * ++ * Creates a cairo surface that targets the given DC. The DC will be ++ * queried for its initial clip extents, and this will be used as the ++ * size of the cairo surface. The resulting surface will always be of ++ * format %CAIRO_FORMAT_RGB24; should you need another surface format, ++ * you will need to create one through ++ * cairo_win32_surface_create_with_format() or ++ * cairo_win32_surface_create_with_dib(). ++ * ++ * Return value: the newly created surface, NULL on failure ++ * ++ * Since: 1.0 ++ **/ ++cairo_surface_t * ++cairo_win32_surface_create (HDC hdc) ++{ ++ return cairo_win32_surface_create_with_format (hdc, CAIRO_FORMAT_RGB24); ++} ++ ++/** + * cairo_win32_surface_create_with_dib: + * @format: format of pixels in the surface to create + * @width: width of the surface, in pixels +@@ -1027,12 +1059,16 @@ cairo_win32_surface_create_with_ddb (HDC hdc, + HDC screen_dc, ddb_dc; + HBITMAP saved_dc_bitmap; + +- if (format != CAIRO_FORMAT_RGB24) ++ switch (format) { ++ default: ++/* XXX handle these eventually */ ++ case CAIRO_FORMAT_A8: ++ case CAIRO_FORMAT_A1: + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_FORMAT)); +-/* XXX handle these eventually +- format != CAIRO_FORMAT_A8 || +- format != CAIRO_FORMAT_A1) +-*/ ++ case CAIRO_FORMAT_ARGB32: ++ case CAIRO_FORMAT_RGB24: ++ break; ++ } + + if (!hdc) { + screen_dc = GetDC (NULL); +-- +cgit v0.10.2 diff --git a/mingw-w64-cairo/0031-ad-Win32-boilerplate.patch b/mingw-w64-cairo/0031-ad-Win32-boilerplate.patch new file mode 100644 index 0000000000..90578fe55f --- /dev/null +++ b/mingw-w64-cairo/0031-ad-Win32-boilerplate.patch @@ -0,0 +1,304 @@ +From e38e942ac0ef6f5366cabdb22df9858fa4c05ea1 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?= +Date: Sat, 4 Apr 2015 15:58:53 +0000 +Subject: win32: Add a win32 boilerplate that uses a real window + +This way it uses the codepath for cairo_win32_surface_create_with_format(), +instead of the cairo_win32_surface_create_with_dib(). + +Without the recording tests (which terminate the testsuite) +the testsuite results for win32 are: + +284 Passed, 167 Failed [1 crashed, 9 expected], 23 Skipped +win32 (rgb24): 1 crashed! +win32 (rgb24): 17 error +win32 (rgb24): 155 failed +win32 (argb32): 1 crashed! +win32 (argb32): 17 error +win32 (argb32): 68 failed +win32-window-color (rgb24): 1 crashed! +win32-window-color (rgb24): 17 error +win32-window-color (rgb24): 148 failed +win32-window-coloralpha (argb32): 1 crashed! +win32-window-coloralpha (argb32): 17 error +win32-window-coloralpha (argb32): 66 failed + +Reviewed-by: Bryce Harrington + +diff --git a/boilerplate/cairo-boilerplate-win32.c b/boilerplate/cairo-boilerplate-win32.c +index 7469cc7..4fd0a10 100644 +--- a/boilerplate/cairo-boilerplate-win32.c ++++ b/boilerplate/cairo-boilerplate-win32.c +@@ -28,15 +28,191 @@ + + #include + ++static const cairo_user_data_key_t win32_closure_key; ++ ++typedef struct _win32_target_closure { ++ HWND wnd; ++ HDC dc; ++ ATOM bpl_atom; ++ cairo_surface_t *surface; ++} win32_target_closure_t; ++ ++static void ++_cairo_boilerplate_win32_cleanup_window_surface (void *closure) ++{ ++ win32_target_closure_t *win32tc = closure; ++ ++ if (win32tc != NULL) ++ { ++ if (win32tc->wnd != NULL && ++ ReleaseDC (win32tc->wnd, win32tc->dc) != 1) ++ fprintf (stderr, ++ "Failed to release DC of a test window when cleaning up.\n"); ++ if (win32tc->wnd != NULL && ++ DestroyWindow (win32tc->wnd) == 0) ++ fprintf (stderr, ++ "Failed to destroy a test window when cleaning up, GLE is %lu.\n", ++ GetLastError ()); ++ if (win32tc->bpl_atom != 0 && ++ UnregisterClassA ((LPCSTR) MAKELPARAM (win32tc->bpl_atom, 0), GetModuleHandle (NULL)) == 0 && ++ GetLastError () != ERROR_CLASS_DOES_NOT_EXIST) ++ fprintf (stderr, ++ "Failed to unregister boilerplate window class, GLE is %lu.\n", ++ GetLastError ()); ++ ++ free (win32tc); ++ } ++} ++ ++static win32_target_closure_t * ++_cairo_boilerplate_win32_create_window (int width, ++ int height) ++{ ++ WNDCLASSEXA wincl; ++ win32_target_closure_t *win32tc; ++ LPCSTR window_class_name; ++ ++ ZeroMemory (&wincl, sizeof (WNDCLASSEXA)); ++ wincl.cbSize = sizeof (WNDCLASSEXA); ++ wincl.hInstance = GetModuleHandle (0); ++ wincl.lpszClassName = "cairo_boilerplate_win32_dummy"; ++ wincl.lpfnWndProc = DefWindowProcA; ++ wincl.style = CS_OWNDC; ++ ++ win32tc = calloc (1, sizeof (win32_target_closure_t)); ++ ++ if (win32tc == NULL) ++ { ++ int error = errno; ++ fprintf (stderr, "Ran out of memory: %d.\n", error); ++ return NULL; ++ } ++ ++ ZeroMemory (win32tc, sizeof (win32_target_closure_t)); ++ ++ win32tc->bpl_atom = RegisterClassExA (&wincl); ++ ++ if (win32tc->bpl_atom == 0 && GetLastError () != ERROR_CLASS_ALREADY_EXISTS) ++ { ++ fprintf (stderr, ++ "Failed to register a boilerplate window class, GLE is %lu.\n", ++ GetLastError ()); ++ _cairo_boilerplate_win32_cleanup_window_surface (win32tc); ++ return NULL; ++ } ++ ++ if (win32tc->bpl_atom == 0) ++ window_class_name = wincl.lpszClassName; ++ else ++ window_class_name = (LPCSTR) MAKELPARAM (win32tc->bpl_atom, 0); ++ ++ win32tc->wnd = CreateWindowExA (WS_EX_TOOLWINDOW, ++ window_class_name, ++ 0, ++ WS_POPUP, ++ 0, ++ 0, ++ width, ++ height, ++ 0, ++ 0, ++ 0, ++ 0); ++ ++ if (win32tc->wnd == NULL) ++ { ++ fprintf (stderr, ++ "Failed to create a test window, GLE is %lu.\n", ++ GetLastError ()); ++ _cairo_boilerplate_win32_cleanup_window_surface (win32tc); ++ return NULL; ++ } ++ ++ win32tc->dc = GetDC (win32tc->wnd); ++ ++ if (win32tc->dc == NULL) ++ { ++ fprintf (stderr, "Failed to get test window DC.\n"); ++ _cairo_boilerplate_win32_cleanup_window_surface (win32tc); ++ return NULL; ++ } ++ ++ SetWindowPos (win32tc->wnd, ++ HWND_BOTTOM, ++ INT_MIN, ++ INT_MIN, ++ width, ++ height, ++ SWP_NOACTIVATE | SWP_SHOWWINDOW); ++ ++ return win32tc; ++} ++ + static cairo_surface_t * +-_cairo_boilerplate_win32_create_surface (const char *name, +- cairo_content_t content, +- double width, +- double height, +- double max_width, +- double max_height, +- cairo_boilerplate_mode_t mode, +- void **closure) ++_cairo_boilerplate_win32_create_window_surface (const char *name, ++ cairo_content_t content, ++ double width, ++ double height, ++ double max_width, ++ double max_height, ++ cairo_boilerplate_mode_t mode, ++ void **closure) ++{ ++ win32_target_closure_t *win32tc; ++ cairo_surface_t *surface; ++ cairo_format_t format; ++ cairo_status_t status; ++ ++ win32tc = _cairo_boilerplate_win32_create_window (width, height); ++ ++ if (win32tc == NULL) ++ return NULL; ++ ++ format = cairo_boilerplate_format_from_content (content); ++ ++ surface = cairo_win32_surface_create_with_format (win32tc->dc, format); ++ ++ win32tc->surface = surface; ++ ++ status = cairo_surface_status (surface); ++ ++ if (status != CAIRO_STATUS_SUCCESS) ++ { ++ fprintf (stderr, ++ "Failed to create the test surface: %s [%d].\n", ++ cairo_status_to_string (status), status); ++ _cairo_boilerplate_win32_cleanup_window_surface (win32tc); ++ return NULL; ++ } ++ ++ status = cairo_surface_set_user_data (surface, &win32_closure_key, win32tc, NULL); ++ ++ if (status != CAIRO_STATUS_SUCCESS) ++ { ++ fprintf (stderr, ++ "Failed to set surface userdata: %s [%d].\n", ++ cairo_status_to_string (status), status); ++ ++ cairo_surface_destroy (surface); ++ _cairo_boilerplate_win32_cleanup_window_surface (win32tc); ++ ++ return NULL; ++ } ++ ++ *closure = win32tc; ++ ++ return surface; ++} ++ ++static cairo_surface_t * ++_cairo_boilerplate_win32_create_dib_surface (const char *name, ++ cairo_content_t content, ++ double width, ++ double height, ++ double max_width, ++ double max_height, ++ cairo_boilerplate_mode_t mode, ++ void **closure) + { + cairo_format_t format; + +@@ -52,12 +228,16 @@ static const cairo_boilerplate_target_t targets[] = { + "win32", "win32", NULL, NULL, + CAIRO_SURFACE_TYPE_WIN32, CAIRO_CONTENT_COLOR, 0, + "cairo_win32_surface_create_with_dib", +- _cairo_boilerplate_win32_create_surface, ++ _cairo_boilerplate_win32_create_dib_surface, + cairo_surface_create_similar, +- NULL, NULL, ++ NULL, ++ NULL, + _cairo_boilerplate_get_image_surface, + cairo_surface_write_to_png, +- NULL, NULL, NULL, TRUE, FALSE, FALSE ++ NULL, ++ NULL, ++ NULL, ++ TRUE, FALSE, FALSE + }, + /* Testing the win32 surface isn't interesting, since for + * ARGB images it just chains to the image backend +@@ -66,12 +246,46 @@ static const cairo_boilerplate_target_t targets[] = { + "win32", "win32", NULL, NULL, + CAIRO_SURFACE_TYPE_WIN32, CAIRO_CONTENT_COLOR_ALPHA, 0, + "cairo_win32_surface_create_with_dib", +- _cairo_boilerplate_win32_create_surface, ++ _cairo_boilerplate_win32_create_dib_surface, ++ cairo_surface_create_similar, ++ NULL, ++ NULL, ++ _cairo_boilerplate_get_image_surface, ++ cairo_surface_write_to_png, ++ NULL, ++ NULL, ++ NULL, ++ FALSE, FALSE, FALSE ++ }, ++ { ++ "win32-window-color", "win32", NULL, NULL, ++ CAIRO_SURFACE_TYPE_WIN32, CAIRO_CONTENT_COLOR, 1, ++ "cairo_win32_surface_create", ++ _cairo_boilerplate_win32_create_window_surface, ++ cairo_surface_create_similar, ++ NULL, ++ NULL, ++ _cairo_boilerplate_get_image_surface, ++ cairo_surface_write_to_png, ++ _cairo_boilerplate_win32_cleanup_window_surface, ++ NULL, ++ NULL, ++ FALSE, FALSE, FALSE ++ }, ++ { ++ "win32-window-coloralpha", "win32", NULL, NULL, ++ CAIRO_SURFACE_TYPE_WIN32, CAIRO_CONTENT_COLOR_ALPHA, 1, ++ "cairo_win32_surface_create_with_format", ++ _cairo_boilerplate_win32_create_window_surface, + cairo_surface_create_similar, +- NULL, NULL, ++ NULL, ++ NULL, + _cairo_boilerplate_get_image_surface, + cairo_surface_write_to_png, +- NULL, NULL, NULL, FALSE, FALSE, FALSE ++ _cairo_boilerplate_win32_cleanup_window_surface, ++ NULL, ++ NULL, ++ FALSE, FALSE, FALSE + }, + }; + CAIRO_BOILERPLATE (win32, targets) +-- +cgit v0.10.2 diff --git a/mingw-w64-cairo/PKGBUILD b/mingw-w64-cairo/PKGBUILD index 70ba545994..280135f454 100644 --- a/mingw-w64-cairo/PKGBUILD +++ b/mingw-w64-cairo/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Renato Silva _realname=cairo +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.14.2 -pkgrel=2 +pkgrel=3 pkgdesc="Cairo vector graphics library (mingw-w64)" arch=('any') url="http://cairographics.org" @@ -29,24 +30,21 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libcairo-gobject") options=('strip' 'staticlibs') source=("http://cairographics.org/releases/cairo-${pkgver}.tar.xz" 0009-standalone-headers.mingw.patch - 0013-mozilla-transparent-windows.all.patch - 0022-dont-fail-argb-similar.all.patch - 0026-create-argb-fonts.all.patch) + 0026-create-argb-fonts.all.patch + 0030-add-cairo-API-to-setup-Win32-surface-for-HDC.patch + 0031-ad-Win32-boilerplate.patch) sha1sums=('c8da68aa66ca0855b5d0ff552766d3e8679e1d24' '58c548d2791ba20dd7f6e328ff596f746df3aa10' - 'b4b8c6f4931814e7e77ddeb98fecaf70cb807e04' - 'fa601d6d2b2c75b0b1608ab3fa9c2e5b6cc31c9e' - '9c0e533614782a41af2c3806a43ab7fe9d6a5431') + '9c0e533614782a41af2c3806a43ab7fe9d6a5431' + 'c0c9546f120133b8e5b116650ba233a15a1e20c4' + 'f0ce67743fe91668bbbd7bbbabdd2e74b9137026') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - #patch -p1 -i ${srcdir}/0002-fix-using-strings.patch patch -p1 -i ${srcdir}/0009-standalone-headers.mingw.patch - patch -p1 -i ${srcdir}/0013-mozilla-transparent-windows.all.patch - patch -p1 -i ${srcdir}/0022-dont-fail-argb-similar.all.patch patch -p1 -i ${srcdir}/0026-create-argb-fonts.all.patch - #patch -p1 -i ${srcdir}/0027-Bug-53121-hack-around.all.patch - #patch -p1 -i ${srcdir}/fix-crash-in-fill-xrgb32-lerp-opaque-spans.patch + patch -p1 -i ${srcdir}/0030-add-cairo-API-to-setup-Win32-surface-for-HDC.patch + patch -p1 -i ${srcdir}/0031-ad-Win32-boilerplate.patch autoreconf -fi } @@ -79,7 +77,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install + make DESTDIR="${pkgdir}" install # Licenses install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" From 5dd460f94d307195c17e76d8ba23913dad90cff7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 10:38:36 +0300 Subject: [PATCH 1620/2060] glibmm: Update to 2.46.0 --- mingw-w64-glibmm/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-glibmm/PKGBUILD b/mingw-w64-glibmm/PKGBUILD index c46a3ce449..b1b062bf18 100644 --- a/mingw-w64-glibmm/PKGBUILD +++ b/mingw-w64-glibmm/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=glibmm +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.44.0 -pkgrel=2 +pkgver=2.46.0 +pkgrel=1 pkgdesc="Glib-- (glibmm) is a C++ interface for glib (mingw-w64)" arch=('any') url="http://www.gtkmm.org" @@ -12,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-libsigc++" "${MINGW_PACKAGE_PREFIX}-glib2") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/GNOME/sources/glibmm/${pkgver%.*}/glibmm-${pkgver}.tar.xz") -sha256sums=('1b0ac0425d24895507c0e0e8088a464c7ae2d289c47afa1c11f63278fc672ea8') +sha256sums=('1772e3ec45a572ed820beabaf546a37e8f78f45ec718c52d773e4c8939ffb7d0') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From e3ad74d60065e61b757d323f93cebdb09ac21a8a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 12:03:04 +0300 Subject: [PATCH 1621/2060] cairomm: Update to 1.11.4 --- mingw-w64-cairomm/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-cairomm/PKGBUILD b/mingw-w64-cairomm/PKGBUILD index 313c2f02d5..8650ddff49 100644 --- a/mingw-w64-cairomm/PKGBUILD +++ b/mingw-w64-cairomm/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=cairomm +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.11.2 -pkgrel=2 +pkgver=1.11.4 +pkgrel=1 pkgdesc="C++ bindings to Cairo vector graphics library (mingw-w64)" arch=('any') url="http://www.cairographics.org" @@ -12,10 +13,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" depends=( "${MINGW_PACKAGE_PREFIX}-libsigc++" "${MINGW_PACKAGE_PREFIX}-cairo") options=(strip staticlibs) source=("http://www.cairographics.org/releases/cairomm-${pkgver}.tar.gz") -sha1sums=('35e190a03f760924bece5dc1204cc36b3583c806') +sha1sums=('111491d258aac9d19f25819899739a5ba11088e8') build() { - CPPFLAGS+=" -D_REENTRANT" + CPPFLAGS+=" -D_REENTRANT -D_POSIX_SOURCE" export lt_cv_deplibs_check_method='pass_all' mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" From 4adb2a5c3a1cc211d0aadf96815d7dd02781cf67 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 12:03:21 +0300 Subject: [PATCH 1622/2060] gtk3: Update to 3.18.0 --- .../0010-put-gtk-dll-into-path.mingw.patch | 12 -- .../0035-enable-rgba-w32-windows.all.patch | 120 ----------- ...oading-and-support-dwm-detection.all.patch | 198 ------------------ ...054-no-transparency-for-children.all.patch | 57 ----- mingw-w64-gtk3/0055-skip-testsuite.all.patch | 22 -- mingw-w64-gtk3/060-fix-tests.patch | 14 ++ mingw-w64-gtk3/PKGBUILD | 27 +-- 7 files changed, 22 insertions(+), 428 deletions(-) delete mode 100644 mingw-w64-gtk3/0010-put-gtk-dll-into-path.mingw.patch delete mode 100644 mingw-w64-gtk3/0035-enable-rgba-w32-windows.all.patch delete mode 100644 mingw-w64-gtk3/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch delete mode 100644 mingw-w64-gtk3/0054-no-transparency-for-children.all.patch delete mode 100644 mingw-w64-gtk3/0055-skip-testsuite.all.patch create mode 100644 mingw-w64-gtk3/060-fix-tests.patch diff --git a/mingw-w64-gtk3/0010-put-gtk-dll-into-path.mingw.patch b/mingw-w64-gtk3/0010-put-gtk-dll-into-path.mingw.patch deleted file mode 100644 index 6c995907b5..0000000000 --- a/mingw-w64-gtk3/0010-put-gtk-dll-into-path.mingw.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- gtk+-2.24.20/gtk/Makefile.am.orig 2013-07-28 22:06:06.408145200 +0000 -+++ gtk+-2.24.20/gtk/Makefile.am 2013-07-28 23:02:09.899754400 +0000 -@@ -3,7 +3,8 @@ - -include $(INTROSPECTION_MAKEFILE) - INTROSPECTION_GIRS = - INTROSPECTION_SCANNER_ENV = \ -- CC="$(CC)" -+ CC="$(CC)" \ -+ PATH="$(builddir):$(builddir)/.libs:$${PATH}:" - INTROSPECTION_SCANNER_ARGS = \ - --add-include-path=../gdk - INTROSPECTION_COMPILER_ARGS = \ diff --git a/mingw-w64-gtk3/0035-enable-rgba-w32-windows.all.patch b/mingw-w64-gtk3/0035-enable-rgba-w32-windows.all.patch deleted file mode 100644 index ad1148a657..0000000000 --- a/mingw-w64-gtk3/0035-enable-rgba-w32-windows.all.patch +++ /dev/null @@ -1,120 +0,0 @@ ---- gtk+-3.12.0/gdk/win32/gdkwindow-win32.c.orig 2014-03-24 17:28:56.000000000 +0000 -+++ gtk+-3.12.0/gdk/win32/gdkwindow-win32.c 2014-04-06 19:32:28.642347700 +0000 -@@ -38,6 +38,9 @@ - #include "gdkvisualprivate.h" - #include "gdkwin32window.h" - #include "gdkglcontext-win32.h" -+#ifdef HAVE_W32_DWM -+#include -+#endif - - #include - -@@ -684,6 +687,49 @@ - - if (attributes_mask & GDK_WA_CURSOR) - gdk_window_set_cursor (window, attributes->cursor); -+ -+/* HAVE_W32_DWM means that we have necessary declarations at compile-time, -+ * but we'd still like to be able to run on XP, so we'll load the only non-XP -+ * function we need here at runtime. -+ */ -+#ifdef HAVE_W32_DWM -+ /* Enable blurbehind, but give it an empty region, leaving us -+ with all the transparency with none of the blur */ -+ { -+ typedef HRESULT (WINAPI *PFN_DwmEnableBlurBehindWindow)(HWND, -+ const DWM_BLURBEHIND *); -+ HMODULE dwmdll; -+ PFN_DwmEnableBlurBehindWindow dwmEnableBlurBehindWindow = NULL; -+ -+ dwmdll = GetModuleHandle ("dwmapi.dll"); -+ dwmEnableBlurBehindWindow = (PFN_DwmEnableBlurBehindWindow) -+ GetProcAddress (dwmdll, "DwmEnableBlurBehindWindow"); -+ -+ if (dwmEnableBlurBehindWindow) -+ { -+ /* Enable blurbehind, but give it an empty region, leaving us -+ with all the transparency with none of the blur */ -+ DWM_BLURBEHIND bb; -+ HRGN hRgn; -+ hRgn = CreateRectRgn (0, 0, -1, -1); -+ if (hRgn != NULL) -+ { -+ HRESULT hr; -+ memset (&bb, 0, sizeof (bb)); -+ bb.dwFlags = DWM_BB_ENABLE | DWM_BB_BLURREGION; -+ bb.hRgnBlur = hRgn; -+ bb.fEnable = TRUE; -+ hr = dwmEnableBlurBehindWindow (GDK_WINDOW_HWND (window), &bb); -+ if (S_OK != hr) -+ { -+ g_warning ("%s: %s failed: %" G_GINT64_MODIFIER "x", -+ G_STRLOC, "DwmEnableBlurBehindWindow", (guint64) hr); -+ } -+ DeleteObject (hRgn); -+ } -+ } -+ } -+#endif - } - - GdkWindow * -@@ -3387,7 +3449,7 @@ - if (!hdc) - return NULL; - -- impl->cairo_surface = cairo_win32_surface_create (hdc); -+ impl->cairo_surface = cairo_win32_surface_create_with_alpha (hdc); - - cairo_surface_set_user_data (impl->cairo_surface, &gdk_win32_cairo_key, - impl, gdk_win32_cairo_surface_destroy); ---- gtk+-3.12.0/configure.ac.orig 2014-03-26 21:41:51.636232000 +0000 -+++ gtk+-3.12.0/configure.ac 2014-03-27 09:22:54.662058000 +0000 -@@ -363,6 +363,25 @@ - AC_SUBST(ENABLE_ON_X11) - - if test "$enable_win32_backend" = "yes"; then -+ AC_MSG_CHECKING([for DWM]) -+ AC_LINK_IFELSE([ -+ AC_LANG_PROGRAM([[ -+ #include -+ #include -+ ]], -+ [[ -+ DWM_BLURBEHIND bb; -+ memset (&bb, 0, sizeof (bb)); -+ bb.dwFlags = DWM_BB_ENABLE | DWM_BB_BLURREGION; -+ ]] -+ )], -+ [dwm_ok=yes], [dwm_ok=no] -+ ) -+ AC_MSG_RESULT($dwm_ok) -+ if test "$dwm_ok" = "yes"; then -+ AC_DEFINE([HAVE_W32_DWM], [1], [Define if W32 DWM API is available]) -+ fi -+ - cairo_backends="$cairo_backends cairo-win32" - GDK_BACKENDS="$GDK_BACKENDS win32" - backend_immodules="$backend_immodules,ime" ---- gtk+-3.11.9/gdk/win32/gdkscreen-win32.c.orig 2014-03-06 04:42:57.000000000 +0000 -+++ gtk+-3.11.9/gdk/win32/gdkscreen-win32.c 2014-03-22 06:47:32.162217700 +0000 -@@ -211,7 +211,7 @@ - screen_class->get_monitor_geometry = gdk_win32_screen_get_monitor_geometry; - screen_class->get_monitor_workarea = gdk_win32_screen_get_monitor_geometry; - screen_class->get_system_visual = _gdk_win32_screen_get_system_visual; -- screen_class->get_rgba_visual = gdk_win32_screen_get_rgba_visual; -+ screen_class->get_rgba_visual = _gdk_win32_screen_get_system_visual; - screen_class->is_composited = gdk_win32_screen_is_composited; - screen_class->make_display_name = gdk_win32_screen_make_display_name; - screen_class->get_active_window = gdk_win32_screen_get_active_window; ---- gtk+-3.12.0/gdk/win32/gdkvisual-win32.c.orig 2014-03-06 04:42:57.000000000 +0000 -+++ gtk+-3.12.0/gdk/win32/gdkvisual-win32.c 2014-03-29 20:26:40.388596200 +0000 -@@ -194,7 +194,6 @@ - } - else if (bitspixel == 24 || bitspixel == 32) - { -- bitspixel = 24; - system_visual->type = GDK_VISUAL_TRUE_COLOR; - system_visual->red_mask = 0x00FF0000; - system_visual->green_mask = 0x0000FF00; diff --git a/mingw-w64-gtk3/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch b/mingw-w64-gtk3/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch deleted file mode 100644 index 5f1ff81431..0000000000 --- a/mingw-w64-gtk3/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch +++ /dev/null @@ -1,198 +0,0 @@ -diff -ur gtk+-3.12.0/gdk/win32/gdkmain-win32.c gtk+-3.12.0.bak2/gdk/win32/gdkmain-win32.c ---- gtk+-3.12.0/gdk/win32/gdkmain-win32.c 2014-03-24 17:28:56.000000000 +0000 -+++ gtk+-3.12.0.bak2/gdk/win32/gdkmain-win32.c 2014-04-08 07:59:05.282205200 +0000 -@@ -48,6 +48,12 @@ - - static gboolean dummy; - -+#ifdef HAVE_W32_DWM -+static HMODULE dwmdll = NULL; -+PFN_DwmEnableBlurBehindWindow dwmEnableBlurBehindWindow = NULL; -+PFN_DwmIsCompositionEnabled dwmIsCompositionEnabled = NULL; -+#endif -+ - const GOptionEntry _gdk_windowing_args[] = { - { "sync", 0, 0, G_OPTION_ARG_NONE, &gdk_synchronize, - /* Description of --sync in --help output */ N_("Don't batch GDI requests"), NULL }, -@@ -132,6 +138,29 @@ - _cf_text_html = RegisterClipboardFormat ("text/html"); - - _gdk_win32_selection_init (); -+ -+/* HAVE_W32_DWM means that we have necessary declarations at compile-time, -+ * but we'd still like to be able to run on XP, so we'll load the functions -+ * we need at runtime. -+ */ -+#ifdef HAVE_W32_DWM -+ if (dwmdll == NULL) -+ { -+ dwmdll = LoadLibraryA ("dwmapi.dll"); -+ if (dwmdll == NULL) -+ { -+ /* This will make sure that we only try this once */ -+ dwmdll = INVALID_HANDLE_VALUE; -+ } -+ else -+ { -+ dwmEnableBlurBehindWindow = (PFN_DwmEnableBlurBehindWindow) -+ GetProcAddress (dwmdll, "DwmEnableBlurBehindWindow"); -+ dwmIsCompositionEnabled = (PFN_DwmIsCompositionEnabled) -+ GetProcAddress (dwmdll, "DwmIsCompositionEnabled"); -+ } -+ } -+#endif - } - - void -diff -ur gtk+-3.12.0/gdk/win32/gdkprivate-win32.h gtk+-3.12.0.bak2/gdk/win32/gdkprivate-win32.h ---- gtk+-3.12.0/gdk/win32/gdkprivate-win32.h 2014-03-06 04:42:57.000000000 +0000 -+++ gtk+-3.12.0.bak2/gdk/win32/gdkprivate-win32.h 2014-04-08 07:46:45.491763700 +0000 -@@ -41,6 +41,15 @@ - - #include "config.h" - -+#ifdef HAVE_W32_DWM -+#include -+typedef HRESULT (WINAPI *PFN_DwmEnableBlurBehindWindow)(HWND, -+ const DWM_BLURBEHIND *); -+typedef HRESULT (WINAPI *PFN_DwmIsCompositionEnabled)(BOOL *pfEnabled); -+extern PFN_DwmEnableBlurBehindWindow dwmEnableBlurBehindWindow; -+extern PFN_DwmIsCompositionEnabled dwmIsCompositionEnabled; -+#endif -+ - /* Make up for some minor w32api or MSVC6 header lossage */ - - #ifndef PS_JOIN_MASK -@@ -496,6 +505,7 @@ - GdkAtom atom); - void _gdk_win32_append_event (GdkEvent *event); - void _gdk_win32_emit_configure_event (GdkWindow *window); -+gboolean _gdk_win32_is_desktop_composition_enabled (); - - /* Initialization */ - void _gdk_win32_windowing_init (void); -diff -ur gtk+-3.12.0/gdk/win32/gdkscreen-win32.c gtk+-3.12.0.bak2/gdk/win32/gdkscreen-win32.c ---- gtk+-3.12.0/gdk/win32/gdkscreen-win32.c 2014-04-09 18:36:35.355754300 +0000 -+++ gtk+-3.12.0.bak2/gdk/win32/gdkscreen-win32.c 2014-04-09 05:55:46.973645900 +0000 -@@ -174,7 +174,7 @@ - { - g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE); - -- return FALSE; -+ return _gdk_win32_is_desktop_composition_enabled (); - } - - static void -@@ -177,6 +177,27 @@ - return _gdk_win32_is_desktop_composition_enabled (); - } - -+ -+gboolean -+_gdk_win32_is_desktop_composition_enabled () -+{ -+ BOOL b; -+ DWORD sysver, major, minor; -+ sysver = GetVersion (); -+ major = (DWORD)(LOBYTE (LOWORD (sysver))); -+ minor = (DWORD)(HIBYTE (LOWORD (sysver))); -+ /* Composition is always enabled in W8 */ -+ if (major >= 6 && minor >= 2) -+ { -+ return TRUE; -+ } -+ if (dwmIsCompositionEnabled && (S_OK == dwmIsCompositionEnabled (&b))) -+ { -+ return b; -+ } -+ return FALSE; -+} -+ - static void - gdk_win32_screen_finalize (GObject *object) - { ---- gtk+-3.12.0/gdk/win32/gdkwindow-win32.c.orig 2014-04-10 07:23:03.093955400 +0000 -+++ gtk+-3.12.0/gdk/win32/gdkwindow-win32.c 2014-04-10 07:25:38.093137800 +0000 -@@ -688,47 +688,32 @@ - if (attributes_mask & GDK_WA_CURSOR) - gdk_window_set_cursor (window, attributes->cursor); - --/* HAVE_W32_DWM means that we have necessary declarations at compile-time, -- * but we'd still like to be able to run on XP, so we'll load the only non-XP -- * function we need here at runtime. -- */ - #ifdef HAVE_W32_DWM - /* Enable blurbehind, but give it an empty region, leaving us - with all the transparency with none of the blur */ -- { -- typedef HRESULT (WINAPI *PFN_DwmEnableBlurBehindWindow)(HWND, -- const DWM_BLURBEHIND *); -- HMODULE dwmdll; -- PFN_DwmEnableBlurBehindWindow dwmEnableBlurBehindWindow = NULL; -- -- dwmdll = GetModuleHandle ("dwmapi.dll"); -- dwmEnableBlurBehindWindow = (PFN_DwmEnableBlurBehindWindow) -- GetProcAddress (dwmdll, "DwmEnableBlurBehindWindow"); -- -- if (dwmEnableBlurBehindWindow) -- { -- /* Enable blurbehind, but give it an empty region, leaving us -- with all the transparency with none of the blur */ -- DWM_BLURBEHIND bb; -- HRGN hRgn; -- hRgn = CreateRectRgn (0, 0, -1, -1); -- if (hRgn != NULL) -- { -- HRESULT hr; -- memset (&bb, 0, sizeof (bb)); -- bb.dwFlags = DWM_BB_ENABLE | DWM_BB_BLURREGION; -- bb.hRgnBlur = hRgn; -- bb.fEnable = TRUE; -- hr = dwmEnableBlurBehindWindow (GDK_WINDOW_HWND (window), &bb); -- if (S_OK != hr) -- { -- g_warning ("%s: %s failed: %" G_GINT64_MODIFIER "x", -- G_STRLOC, "DwmEnableBlurBehindWindow", (guint64) hr); -- } -- DeleteObject (hRgn); -- } -- } -- } -+ if (dwmEnableBlurBehindWindow && \ -+ _gdk_win32_is_desktop_composition_enabled () && \ -+ GDK_WINDOW_HWND (window) != NULL) -+ { -+ DWM_BLURBEHIND bb; -+ HRGN hRgn; -+ hRgn = CreateRectRgn (0, 0, -1, -1); -+ if (hRgn != NULL) -+ { -+ HRESULT hr; -+ memset (&bb, 0, sizeof (bb)); -+ bb.dwFlags = DWM_BB_ENABLE | DWM_BB_BLURREGION; -+ bb.hRgnBlur = hRgn; -+ bb.fEnable = TRUE; -+ hr = dwmEnableBlurBehindWindow (GDK_WINDOW_HWND (window), &bb); -+ if (S_OK != hr) -+ { -+ g_warning ("%s: %s failed: %" G_GINT32_MODIFIER "x", -+ G_STRLOC, "DwmEnableBlurBehindWindow", (guint32) hr); -+ } -+ DeleteObject (hRgn); -+ } -+ } - #endif - } - ---- gtk+-3.12.0/gtk/gtkwindow.c.orig 2014-03-25 00:17:20.000000000 +0000 -+++ gtk+-3.12.0/gtk/gtkwindow.c 2014-04-10 07:26:47.983012700 +0000 -@@ -3629,6 +3629,9 @@ - - screen = gtk_widget_get_screen (widget); - -+ if (!gdk_screen_is_composited (screen)) -+ return FALSE; -+ - /* We need a visual with alpha */ - visual = gdk_screen_get_rgba_visual (screen); - if (!visual) diff --git a/mingw-w64-gtk3/0054-no-transparency-for-children.all.patch b/mingw-w64-gtk3/0054-no-transparency-for-children.all.patch deleted file mode 100644 index d41f4fa61d..0000000000 --- a/mingw-w64-gtk3/0054-no-transparency-for-children.all.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- gtk+-9e11bb3/gdk/win32/gdkwindow-win32.c.orig 2014-07-25 11:05:40.393869900 +0000 -+++ gtk+-9e11bb3/gdk/win32/gdkwindow-win32.c 2014-07-25 11:49:49.131216800 +0000 -@@ -450,6 +450,7 @@ - gint x, y, real_x = 0, real_y = 0; - /* check consistency of redundant information */ - guint remaining_mask = attributes_mask; -+ gboolean suitable_for_alpha; - - GDK_NOTE (MISC, - g_print ("_gdk_window_impl_new: %s %s\n", -@@ -512,6 +513,7 @@ - GDK_NOTE (MISC, g_print ("... GDK_INPUT_ONLY\n")); - } - -+ suitable_for_alpha = TRUE; - switch (window->window_type) - { - case GDK_WINDOW_TOPLEVEL: -@@ -524,6 +526,7 @@ - if (GDK_WINDOW_TYPE (real_parent) == GDK_WINDOW_FOREIGN) - { - dwStyle = WS_CHILDWINDOW | WS_CLIPCHILDREN; -+ suitable_for_alpha = FALSE; - } - else - { -@@ -538,12 +541,21 @@ - break; - - case GDK_WINDOW_CHILD: -+ suitable_for_alpha = FALSE; - dwStyle = WS_CHILDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS; - break; - - case GDK_WINDOW_TEMP: - /* A temp window is not necessarily a top level window */ -- dwStyle = (_gdk_root == real_parent ? WS_POPUP : WS_CHILDWINDOW); -+ if (_gdk_root == real_parent) -+ { -+ dwStyle = WS_POPUP; -+ } -+ else -+ { -+ dwStyle = WS_CHILDWINDOW; -+ suitable_for_alpha = FALSE; -+ } - dwStyle |= WS_CLIPCHILDREN | WS_CLIPSIBLINGS; - dwExStyle |= WS_EX_TOOLWINDOW | WS_EX_TOPMOST; - offset_x = _gdk_offset_x; -@@ -692,6 +704,7 @@ - /* Enable blurbehind, but give it an empty region, leaving us - with all the transparency with none of the blur */ - if (dwmEnableBlurBehindWindow && \ -+ suitable_for_alpha && \ - _gdk_win32_is_desktop_composition_enabled () && \ - GDK_WINDOW_HWND (window) != NULL) - { diff --git a/mingw-w64-gtk3/0055-skip-testsuite.all.patch b/mingw-w64-gtk3/0055-skip-testsuite.all.patch deleted file mode 100644 index 8e32ee2ac2..0000000000 --- a/mingw-w64-gtk3/0055-skip-testsuite.all.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/Makefile.am.orig 2014-10-24 21:22:13.559889300 +0200 -+++ b/Makefile.am 2014-10-24 21:22:37.105175200 +0200 -@@ -1,7 +1,7 @@ - ## Makefile.am for GTK+ - include $(top_srcdir)/Makefile.decl - --SRC_SUBDIRS = gdk gtk libgail-util modules demos tests testsuite examples -+SRC_SUBDIRS = gdk gtk libgail-util modules - SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build - - ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} ---- a/Makefile.in.orig 2014-10-24 21:22:20.402924300 +0200 -+++ b/Makefile.in 2014-10-24 21:22:52.339700600 +0200 -@@ -540,7 +540,7 @@ XVFB_START = \ - || { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } \ - && DISPLAY=:$$XID && export DISPLAY - --SRC_SUBDIRS = gdk gtk libgail-util modules demos tests testsuite examples -+SRC_SUBDIRS = gdk gtk libgail-util modules - SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build - ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} - MAINTAINERCLEANFILES = \ diff --git a/mingw-w64-gtk3/060-fix-tests.patch b/mingw-w64-gtk3/060-fix-tests.patch new file mode 100644 index 0000000000..5ad8dd8035 --- /dev/null +++ b/mingw-w64-gtk3/060-fix-tests.patch @@ -0,0 +1,14 @@ +--- gtk+-3.18.0/testsuite/gtk/notify.c.orig 2015-09-22 11:18:22.102607400 +0300 ++++ gtk+-3.18.0/testsuite/gtk/notify.c 2015-09-22 11:18:32.959024200 +0300 +@@ -418,10 +418,10 @@ + #ifdef GDK_WINDOWING_X11 + if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) ; + else +-#endif + if (g_type_is_a (type, GTK_TYPE_PLUG) || + g_type_is_a (type, GTK_TYPE_SOCKET)) + return; ++#endif + + #ifdef GDK_WINDOWING_WAYLAND + if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ())) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 39c0587000..616f6dd2f7 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=gtk3 +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.6 +pkgver=3.18.0 pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') @@ -28,30 +29,18 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" - 0010-put-gtk-dll-into-path.mingw.patch 0013-fix-mingw-w64-fstat-call.mingw.patch - 0035-enable-rgba-w32-windows.all.patch - 0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch - 0054-no-transparency-for-children.all.patch - 0055-skip-testsuite.all.patch - 0056-missing-file-toarray-pl.patch) -md5sums=('fc59e5c8b5a4585b60623dd708df400b' - '9e0296da2986be7697cf343563b85d1f' + 0056-missing-file-toarray-pl.patch + 060-fix-tests.patch) +md5sums=('7bb716b637ab413bdefd773e520c474c' '21789d52c1debcab59f8b6a99232de68' - '3aa19ea25cc1d7693ae57f8e80f88440' - 'ad383a497a9134355e0a549f844c3a33' - '31d098e6856ddc8dde7259ae572f8bf1' - '939ecf0b7c985e947c6bf48dfd3b8df0' - 'f25cb2486d761b60e04036947552bf82') + 'f25cb2486d761b60e04036947552bf82' + '792f715a5b342e63da24e13d5c01db1e') prepare() { cd "${srcdir}/gtk+-${pkgver}" - #patch -Np1 -i "${srcdir}"/0010-put-gtk-dll-into-path.mingw.patch patch -Np1 -i "${srcdir}"/0013-fix-mingw-w64-fstat-call.mingw.patch - patch -Np1 -i "${srcdir}"/0035-enable-rgba-w32-windows.all.patch - patch -Np1 -i "${srcdir}"/0037-W32-better-dwm-loading-and-support-dwm-detection.all.patch - patch -Np1 -i "${srcdir}"/0054-no-transparency-for-children.all.patch - #patch -Np1 -i "${srcdir}"/0055-skip-testsuite.all.patch + patch -Np1 -i "${srcdir}"/060-fix-tests.patch echo "" > gdk/broadway/toarray.pl patch -p1 -i ${srcdir}/0056-missing-file-toarray-pl.patch From fdba0822c33d927a105891f46641c618c1ebfdba Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 12:04:59 +0300 Subject: [PATCH 1623/2060] vala: Update to 0.30.0 --- mingw-w64-vala/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-vala/PKGBUILD b/mingw-w64-vala/PKGBUILD index 00d7da9cf9..a8632a5582 100644 --- a/mingw-w64-vala/PKGBUILD +++ b/mingw-w64-vala/PKGBUILD @@ -3,7 +3,7 @@ _realname=vala pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.29.2 +pkgver=0.30.0 pkgrel=1 pkgdesc="Compiler for the GObject type system (mingw-w64)" arch=('any') @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" depends=("${MINGW_PACKAGE_PREFIX}-glib2") source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-change-pkg-config-invocations.mingw.patch) -sha256sums=('e4ef92b3b55a4dcaeb13a2cf673924234fb6330033b1b4906e125735fa41d1ba' +sha256sums=('61f0337b000f7ed6ef8c1fea87e0047d9bd7c0f91dd9c5b4eb70fd3fb883dedf' 'c588a3a69097aae30ada1d543001d5029865b1dd1f46132d9e60d12e1833b325') prepare() { From b939580ee6900e7f9ad55744acf462deb3eece5e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 12:07:33 +0300 Subject: [PATCH 1624/2060] glib-networking: Update to 2.46.0 --- mingw-w64-glib-networking/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-glib-networking/PKGBUILD b/mingw-w64-glib-networking/PKGBUILD index 8459b8f808..7275f4374e 100644 --- a/mingw-w64-glib-networking/PKGBUILD +++ b/mingw-w64-glib-networking/PKGBUILD @@ -1,16 +1,17 @@ # Maintainer: Alexey Pavlov _realname=glib-networking +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.44.0 -pkgrel=3 +pkgver=2.46.0 +pkgrel=1 pkgdesc="Network-related GIO modules for glib (mingw-w64)" arch=(any) url="http://ftp.gnome.org/pub/GNOME/sources/libsoup" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" + "${MINGW_PACKAGE_PREFIX}-pkg-config" "intltool") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" @@ -24,7 +25,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_rea 0001-dont-overwrite-prefix-remain-relative.mingw.patch 0001-hack-path.patch 0002-relative-system-ca-file.mingw.patch) -md5sums=('6989b20cf3b26dd5ae272e04a9acb0b3' +md5sums=('d418e2ba2acffacf90a2b0259c7993e1' '6c55845f6c66fc8401915d1561b6872d' '5b72f575aee2cd8d7b30f580ebca4971' 'b96895469c4dc36e172056763aa0d014') From db7b389814a30f08206b0f576648dd12d4c6b43a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 12:10:24 +0300 Subject: [PATCH 1625/2060] libxml++: Upadte to 2.40.0 --- mingw-w64-libxml++/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libxml++/PKGBUILD b/mingw-w64-libxml++/PKGBUILD index 5db9d86d53..a4d03b1ca0 100644 --- a/mingw-w64-libxml++/PKGBUILD +++ b/mingw-w64-libxml++/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libxml++ +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.38.1 +pkgver=2.40.0 pkgrel=1 arch=('any') pkgdesc="C++ wrapper for the libxml2 XML parser library (mingw-w64)" @@ -14,7 +15,7 @@ options=('strip' 'staticlibs') license=('LGPL') url="http://libxmlplusplus.sourceforge.net/" source=("http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") -md5sums=('6b16aac575725a9bc0e9d96489e9251f') +md5sums=('c4a0a131cf149300b8edbb7fe1c19202') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 0d988113d918219ad6a545836ad3b14ee7969822 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 12:14:56 +0300 Subject: [PATCH 1626/2060] libgit2-glib: Update to 0.23.6 --- mingw-w64-libgit2-glib/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgit2-glib/PKGBUILD b/mingw-w64-libgit2-glib/PKGBUILD index 3e03c87698..54c79a9595 100644 --- a/mingw-w64-libgit2-glib/PKGBUILD +++ b/mingw-w64-libgit2-glib/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Ignacio Casal Quinteiro _realname=libgit2-glib +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.23.0 +pkgver=0.23.6 pkgrel=1 arch=('any') pkgdesc="A glib wrapper library around the libgit2 git access library (mingw-w64)" @@ -18,7 +19,7 @@ options=('strip' 'staticlibs') license=("LGPL") url="https://wiki.gnome.org/Projects/Libgit2-glib" source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") -sha256sums=('de12ce1d317fc1d8d32191fc121f5de86d557387f3782edd79fe7b8daa2c6345') +sha256sums=('5c8d6b5cb81ab64b96cb0c52ef37463b6d8998a40ce77a08eda9db66fb781144') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 8107007042e0581f8f79902cebecb1bdf873fcc3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 12:49:17 +0300 Subject: [PATCH 1627/2060] gnome-common: Update to 3.18.0 --- mingw-w64-gnome-common/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gnome-common/PKGBUILD b/mingw-w64-gnome-common/PKGBUILD index 3b3704c836..f6ea8ce367 100644 --- a/mingw-w64-gnome-common/PKGBUILD +++ b/mingw-w64-gnome-common/PKGBUILD @@ -1,16 +1,17 @@ # Maintainer: Alexey Pavlov _realname=gnome-common +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.0 -pkgrel=2 +pkgver=3.18.0 +pkgrel=1 pkgdesc="Common development macros for GNOME (mingw-w64)" arch=('any') license=('GPL') url="http://www.gnome.org" source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz Werror-format-remove.patch) -sha256sums=('4c00242f781bb441289f49dd80ed1d895d84de0c94bfc2c6818a104c9e39262c' +sha256sums=('22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf' 'c88704be75556c08a62645588ec70050f58def421f849c0519213c8709e36906') prepare() { From 52553ceee12cdf2364d982b8d5356cf804c6de27 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 12:52:45 +0300 Subject: [PATCH 1628/2060] pygobject: Update to 3.18.0 --- mingw-w64-pygobject/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-pygobject/PKGBUILD b/mingw-w64-pygobject/PKGBUILD index 860ca250a6..7cb147b0fb 100644 --- a/mingw-w64-pygobject/PKGBUILD +++ b/mingw-w64-pygobject/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=pygobject +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-gobject" "${MINGW_PACKAGE_PREFIX}-python3-gobject" "${MINGW_PACKAGE_PREFIX}-pygobject-devel") -pkgver=3.16.2 +pkgver=3.18.0 pkgrel=1 pkgdesc="Allows you to load glade interface files in a program at runtime (mingw-w64)" arch=(any) @@ -14,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-gnome-common") options=('staticlibs' 'strip') source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) -md5sums=('8a3720efa69dd2d520e0b21b5d9e7c19') +md5sums=('2ac5d4398e7ecabf64b3deb65c799516') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From a8c090d4b66ee997495b6e1a6f1bc19cc0165fbc Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 14:46:11 +0300 Subject: [PATCH 1629/2060] quantlib: Fix building shared library. Use lower case for names --- mingw-w64-quantlib/PKGBUILD | 15 ++++++++++++--- mingw-w64-quantlib/no-undefined.patch | 11 +++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-quantlib/no-undefined.patch diff --git a/mingw-w64-quantlib/PKGBUILD b/mingw-w64-quantlib/PKGBUILD index 69c9c2ddc2..3d33cf513b 100644 --- a/mingw-w64-quantlib/PKGBUILD +++ b/mingw-w64-quantlib/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: Alexey Pavlov -_realname=QuantLib +_realname=quantlib pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.2 @@ -11,8 +11,17 @@ url='http://quantlib.org' license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "automake" "autoconf" "libtool") options=('staticlibs' 'strip') -source=(https://downloads.sourceforge.net/project/quantlib/QuantLib/${pkgver}/QuantLib-${pkgver}.tar.gz) -md5sums=('e1831b8fc7fbf155659ec7aa8351b57a') +source=(https://downloads.sourceforge.net/project/quantlib/QuantLib/${pkgver}/QuantLib-${pkgver}.tar.gz + no-undefined.patch) +md5sums=('e1831b8fc7fbf155659ec7aa8351b57a' + 'c928f002736dcdce347906e129950547') + +prepare() { + cd QuantLib-${pkgver} + patch -p1 -i ${srcdir}/no-undefined.patch + + ./autogen.sh +} build() { rm -rf "${srcdir}/build-${MINGW_CHOST}" diff --git a/mingw-w64-quantlib/no-undefined.patch b/mingw-w64-quantlib/no-undefined.patch new file mode 100644 index 0000000000..85867488bc --- /dev/null +++ b/mingw-w64-quantlib/no-undefined.patch @@ -0,0 +1,11 @@ +--- QuantLib-1.6.2/ql/Makefile.am.orig 2015-09-22 13:03:34.307586400 +0300 ++++ QuantLib-1.6.2/ql/Makefile.am 2015-09-22 13:03:46.796337400 +0300 +@@ -79,7 +79,7 @@ + timegrid.cpp + + lib_LTLIBRARIES = libQuantLib.la +-libQuantLib_la_LDFLAGS = -version-info 0:0:0 ++libQuantLib_la_LDFLAGS = -no-undefined -version-info 0:0:0 + + libQuantLib_la_LIBADD = \ + cashflows/libCashFlows.la \ From 4c647fb5e7e2d426da80ef329b2f817ba86e8dc7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Sep 2015 15:54:53 +0300 Subject: [PATCH 1630/2060] adwaita-icon-theme: Update to 3.18.0 --- mingw-w64-adwaita-icon-theme/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-adwaita-icon-theme/PKGBUILD b/mingw-w64-adwaita-icon-theme/PKGBUILD index ed09bb3f2b..5805d3c20d 100644 --- a/mingw-w64-adwaita-icon-theme/PKGBUILD +++ b/mingw-w64-adwaita-icon-theme/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=adwaita-icon-theme +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.2.1 +pkgver=3.18.0 pkgrel=1 pkgdesc="GNOME icon theme (mingw-w64)" arch=('any') @@ -14,14 +15,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" options=(!libtool strip staticlibs) install=theme-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz) -sha256sums=('b4556dfbf555d4fac12d4d5c12f7519de0d43ec42a1b649611439a50bf7acb96') +sha256sums=('5e9ce726001fdd8ee93c394fdc3cdb9e1603bbed5b7c62df453ccf521ec50e58') prepare() { cd ${srcdir}/${_realname}-${pkgver} } build() { - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} ../${_realname}-${pkgver}/configure \ From 13c321fde1a4f8e9a0b743bec0a90168413891c1 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Sep 2015 09:17:44 +0300 Subject: [PATCH 1631/2060] glibmm: Update to 2.46.1 --- mingw-w64-glibmm/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-glibmm/PKGBUILD b/mingw-w64-glibmm/PKGBUILD index b1b062bf18..ef7418c964 100644 --- a/mingw-w64-glibmm/PKGBUILD +++ b/mingw-w64-glibmm/PKGBUILD @@ -3,7 +3,7 @@ _realname=glibmm pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.46.0 +pkgver=2.46.1 pkgrel=1 pkgdesc="Glib-- (glibmm) is a C++ interface for glib (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-libsigc++" "${MINGW_PACKAGE_PREFIX}-glib2") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/GNOME/sources/glibmm/${pkgver%.*}/glibmm-${pkgver}.tar.xz") -sha256sums=('1772e3ec45a572ed820beabaf546a37e8f78f45ec718c52d773e4c8939ffb7d0') +sha256sums=('9647e596c1081d2ea202bd3da2824ec2ea359498fa86eb59a55b1b307dd8c4aa') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 4957951d6be33cf552dc562fdcc4b03376f74384 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Sep 2015 09:18:07 +0300 Subject: [PATCH 1632/2060] cairomm: Update to 1.12.0 --- mingw-w64-cairomm/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cairomm/PKGBUILD b/mingw-w64-cairomm/PKGBUILD index 8650ddff49..e7dfa2427e 100644 --- a/mingw-w64-cairomm/PKGBUILD +++ b/mingw-w64-cairomm/PKGBUILD @@ -3,7 +3,7 @@ _realname=cairomm pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.11.4 +pkgver=1.12.0 pkgrel=1 pkgdesc="C++ bindings to Cairo vector graphics library (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" depends=( "${MINGW_PACKAGE_PREFIX}-libsigc++" "${MINGW_PACKAGE_PREFIX}-cairo") options=(strip staticlibs) source=("http://www.cairographics.org/releases/cairomm-${pkgver}.tar.gz") -sha1sums=('111491d258aac9d19f25819899739a5ba11088e8') +sha1sums=('5a09a3f604cec2ddb4dfcace28dbe74a53585585') build() { CPPFLAGS+=" -D_REENTRANT -D_POSIX_SOURCE" From 1810ecb853dc2c3897dd3a0517782a6559a06008 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Sep 2015 09:18:25 +0300 Subject: [PATCH 1633/2060] pangomm: Update to 2.38.1 --- mingw-w64-pangomm/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-pangomm/PKGBUILD b/mingw-w64-pangomm/PKGBUILD index a31c43bcd4..9d9ac308c6 100644 --- a/mingw-w64-pangomm/PKGBUILD +++ b/mingw-w64-pangomm/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=pangomm +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.36.0 -pkgrel=2 +pkgver=2.38.1 +pkgrel=1 pkgdesc="C++ bindings for pango (mingw-w64)" arch=('any') url="http://gtkmm.sourceforge.net" @@ -12,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-cairomm" "${MINGW_PACKAGE_PREFIX}-glibmm" "${MINGW_PACKAGE_PREFIX}-pango") options=(staticlibs strip) source=("http://ftp.gnome.org/pub/GNOME/sources/pangomm/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") -sha256sums=('a8d96952c708d7726bed260d693cece554f8f00e48b97cccfbf4f5690b6821f0') +sha256sums=('effb18505b36d81fc32989a39ead8b7858940d0533107336a30bc3eef096bc8b') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 411b9725b362412f27cd19c98527592576a21643 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Sep 2015 09:19:39 +0300 Subject: [PATCH 1634/2060] gobject-introspection: Update to 2.46.0 --- ...ments-to-g-ir-scanner-through-a-.all.patch | 8 +++-- .../0065-fix-compare-uname-output.patch | 36 ------------------- mingw-w64-gobject-introspection/PKGBUILD | 16 ++++----- 3 files changed, 12 insertions(+), 48 deletions(-) delete mode 100644 mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch diff --git a/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch b/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch index f318747fc3..3eff88a61f 100644 --- a/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch +++ b/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch @@ -24,7 +24,7 @@ include Makefile-girepository.am --- a/Makefile.introspection +++ a/Makefile.introspection -@@ -1,166 +0,0 @@ +@ -1,168 +0,0 @@ -# -*- Mode: make -*- -# Copyright 2009-2010 Johan Dahlin -# @@ -95,7 +95,7 @@ -# a command-line argument --libtool="/bin/sh ../../libtool" into -# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path -# because we already "know" where the libtool configure produced is. --_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) +-_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) - -# Macros for AM_SILENT_RULES prettiness -_gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) @@ -111,6 +111,8 @@ -_gir_silent_compiler_ = $(_gir_silent_compiler_$(_gir_verbosity)) -_gir_silent_compiler_0 = @echo " GICOMP $(1)"; - +-_gir_default_scanner_env = CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" +- -# -# Creates a GIR by scanning C headers/sources -# $(1) - Name of the gir file (output) @@ -158,7 +160,7 @@ -# needs to be added manually. -$(1): $$($(_gir_name)_FILES) - @ $(MKDIR_P) $(dir $(1)) -- $(_gir_silent_scanner_prefix) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \ +- $(_gir_silent_scanner_prefix) $(_gir_default_scanner_env) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \ - $(INTROSPECTION_SCANNER_ARGS) \ - --namespace=$(_gir_namespace) \ - --nsversion=$(_gir_version) \ diff --git a/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch b/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch deleted file mode 100644 index 149634a3ad..0000000000 --- a/mingw-w64-gobject-introspection/0065-fix-compare-uname-output.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -Naur gobject-introspection-1.44.0-orig/Makefile.in gobject-introspection-1.44.0/Makefile.in ---- gobject-introspection-1.44.0-orig/Makefile.in 2015-03-25 13:43:11.690600000 +0300 -+++ gobject-introspection-1.44.0/Makefile.in 2015-03-25 16:06:41.757000000 +0300 -@@ -972,7 +972,7 @@ - # a command-line argument --libtool="/bin/sh ../../libtool" into - # --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path - # because we already "know" where the libtool configure produced is. --_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) -+_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) - - # Macros for AM_SILENT_RULES prettiness - _gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) -diff -Naur gobject-introspection-1.44.0-orig/tests/offsets/Makefile.in gobject-introspection-1.44.0/tests/offsets/Makefile.in ---- gobject-introspection-1.44.0-orig/tests/offsets/Makefile.in 2015-03-25 13:43:12.408200000 +0300 -+++ gobject-introspection-1.44.0/tests/offsets/Makefile.in 2015-03-25 16:07:19.431000000 +0300 -@@ -666,7 +666,7 @@ - # a command-line argument --libtool="/bin/sh ../../libtool" into - # --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path - # because we already "know" where the libtool configure produced is. --_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) -+_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) - - # Macros for AM_SILENT_RULES prettiness - _gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) -diff -Naur gobject-introspection-1.44.0-orig/tests/scanner/Makefile.in gobject-introspection-1.44.0/tests/scanner/Makefile.in ---- gobject-introspection-1.44.0-orig/tests/scanner/Makefile.in 2015-03-25 13:43:12.798200000 +0300 -+++ gobject-introspection-1.44.0/tests/scanner/Makefile.in 2015-03-25 16:07:33.268200000 +0300 -@@ -765,7 +765,7 @@ - # a command-line argument --libtool="/bin/sh ../../libtool" into - # --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path - # because we already "know" where the libtool configure produced is. --_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) -+_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) - - # Macros for AM_SILENT_RULES prettiness - _gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index ac8225fb6b..584cc209f9 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=gobject-introspection +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-runtime") -pkgver=1.44.0 -pkgrel=5 +pkgver=1.46.0 +pkgrel=1 arch=('any') url="https://live.gnome.org/GObjectIntrospection" license=("LGPL") @@ -21,17 +22,15 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${pkgver%.* 0022-change-pkg-config-invocations.mingw.patch 0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch 0050-dont-load-msvcrt.patch - 0055-fix-python-detection.patch - 0065-fix-compare-uname-output.patch) + 0055-fix-python-detection.patch) -md5sums=('7ef8a1db7f74f4193a2397b1587eb913' +md5sums=('adb40a31c7c80b65b0f4c8fd71b493dc' 'f0ecde986ebf1f0e28b752f9c36fb6c1' '69ef34e2f57abc8afe1b9f6fa3786e97' '8d3589fb959a0a68ce7ce9051fa441fe' - 'a10888857e647b657e8ccbcd21016176' + '412548a4de14aa26f27300fd6db95d41' 'e3598d539258678eef8dde2216419faf' - '6d809bf266e42a20b31a7acbaf0384d1' - 'e95fa9ecd29bc00c57789d10a244fd4e') + '6d809bf266e42a20b31a7acbaf0384d1') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -41,7 +40,6 @@ prepare() { patch -p1 -i ${srcdir}/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch patch -p1 -i ${srcdir}/0050-dont-load-msvcrt.patch patch -p1 -i ${srcdir}/0055-fix-python-detection.patch - patch -p1 -i ${srcdir}/0065-fix-compare-uname-output.patch autoreconf -fi } From c37f431bb55c0210409286fcbe8eba2bb180d7cb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Sep 2015 09:37:05 +0300 Subject: [PATCH 1635/2060] atkmm: Update to 2.24.1 --- mingw-w64-atkmm/PKGBUILD | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mingw-w64-atkmm/PKGBUILD b/mingw-w64-atkmm/PKGBUILD index 8e402fda49..ea16354c07 100644 --- a/mingw-w64-atkmm/PKGBUILD +++ b/mingw-w64-atkmm/PKGBUILD @@ -1,21 +1,22 @@ # Maintainer: Alexey Pavlov _realname=atkmm +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.22.7 -pkgrel=3 +pkgver=2.24.1 +pkgrel=1 pkgdesc="C++ bindings for atk (mingw-w64)" arch=('any') url="http://gtkmm.sourceforge.net" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libsigc++" +depends=("${MINGW_PACKAGE_PREFIX}-atk" + "${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-glibmm" - "${MINGW_PACKAGE_PREFIX}-atk") + "${MINGW_PACKAGE_PREFIX}-libsigc++") options=(strip staticlibs) source=("http://ftp.gnome.org/pub/GNOME/sources/atkmm/${pkgver%.*}/atkmm-${pkgver}.tar.xz") -md5sums=('fec7db3fc47ba2e0c95d130ec865a236') +md5sums=('279f32c23b74e5d25bce2b941294cdc8') build() { CPPFLAGS+=" -D_REENTRANT" From 634a7b7cf8a74c4af26857d079829ca207899cf3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Sep 2015 09:37:27 +0300 Subject: [PATCH 1636/2060] gtkmm3: Update to 3.18.0 --- mingw-w64-gtkmm3/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gtkmm3/PKGBUILD b/mingw-w64-gtkmm3/PKGBUILD index 41ad6bfea7..52ef1e0eb7 100644 --- a/mingw-w64-gtkmm3/PKGBUILD +++ b/mingw-w64-gtkmm3/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=gtkmm3 +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 -pkgrel=2 +pkgver=3.18.0 +pkgrel=1 pkgdesc="C++ bindings for gtk3 (mingw-w64)" arch=('any') url="http://gtkmm.org" @@ -12,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-atkmm" "${MINGW_PACKAGE_PREFIX}-pangomm" "${MINGW_PACKAGE_PREFIX}-gtk3") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/GNOME/sources/gtkmm/${pkgver%.*}/gtkmm-${pkgver}.tar.xz") -sha256sums=('9b8d4af5e1bb64e52b53bc8ef471ef43e1b9d11a829f16ef54c3a92985b0dd0c') +sha256sums=('829fa113daed74398c49c3f2b7672807f58ba85d0fa463f5bc726e1b0138b86b') build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" From 96f2d383f0e04298d444f33dba2f815bcb4577fe Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Sep 2015 12:55:48 +0300 Subject: [PATCH 1637/2060] mingw-w64-headers: Update to latest from git --- mingw-w64-headers-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 9b2283d517..71e37d7449 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4574.ce1ad45 +pkgver=5.0.0.4575.ada0f35 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From b9942bc1a4482220db5858aa9ddd3dc66fe3ec51 Mon Sep 17 00:00:00 2001 From: David Grayson Date: Wed, 23 Sep 2015 08:44:07 -0700 Subject: [PATCH 1638/2060] Added mingw-w64-usbview. --- .../01-strsafe-after-tchar.patch | 20 +++++ mingw-w64-usbview/02-sal.patch | 10 +++ mingw-w64-usbview/03-resource-fix.patch | 22 ++++++ mingw-w64-usbview/PKGBUILD | 79 +++++++++++++++++++ mingw-w64-usbview/my_xmlhelper.c | 48 +++++++++++ 5 files changed, 179 insertions(+) create mode 100644 mingw-w64-usbview/01-strsafe-after-tchar.patch create mode 100644 mingw-w64-usbview/02-sal.patch create mode 100644 mingw-w64-usbview/03-resource-fix.patch create mode 100644 mingw-w64-usbview/PKGBUILD create mode 100644 mingw-w64-usbview/my_xmlhelper.c diff --git a/mingw-w64-usbview/01-strsafe-after-tchar.patch b/mingw-w64-usbview/01-strsafe-after-tchar.patch new file mode 100644 index 0000000000..50bd7649e0 --- /dev/null +++ b/mingw-w64-usbview/01-strsafe-after-tchar.patch @@ -0,0 +1,20 @@ +diff --binary -u -r C++/uvcview.h C++fix/uvcview.h +--- C++/uvcview.h 2014-04-04 18:10:36.000000000 -0700 ++++ C++fix/uvcview.h 2015-04-22 20:42:54.355211400 -0700 +@@ -34,7 +34,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -50,6 +49,7 @@ + #include + #include + #include ++#include + + // This is mostly a private USB Audio descriptor header + #include "usbdesc.h" + diff --git a/mingw-w64-usbview/02-sal.patch b/mingw-w64-usbview/02-sal.patch new file mode 100644 index 0000000000..b4118fd7e0 --- /dev/null +++ b/mingw-w64-usbview/02-sal.patch @@ -0,0 +1,10 @@ +--- orig/uvcview.h 2015-08-28 11:07:16.380217500 -0400 ++++ new/uvcview.h 2015-08-28 11:07:28.123146100 -0400 +@@ -50,6 +50,7 @@ + #include + #include + #include ++#include + + // This is mostly a private USB Audio descriptor header + #include "usbdesc.h" diff --git a/mingw-w64-usbview/03-resource-fix.patch b/mingw-w64-usbview/03-resource-fix.patch new file mode 100644 index 0000000000..ad55d41a98 --- /dev/null +++ b/mingw-w64-usbview/03-resource-fix.patch @@ -0,0 +1,22 @@ +Only in C++fix: out.so +diff -u -r C++/uvcview.rc C++fix/uvcview.rc +--- C++/uvcview.rc 2015-04-23 08:52:46.193018500 -0700 ++++ C++fix/uvcview.rc 2015-04-23 08:53:32.858881400 -0700 +@@ -84,7 +84,7 @@ + BEGIN + MENUITEM "&Refresh\tF5", ID_REFRESH + MENUITEM SEPARATOR +- MENUITEM "Save Current &View ..." ID_SAVE ++ MENUITEM "Save Current &View ...", ID_SAVE + MENUITEM "Save As (&txt) ...", ID_SAVEALL + MENUITEM "Save As (&xml) ...\tF2", ID_SAVEXML + MENUITEM SEPARATOR +@@ -130,7 +130,7 @@ + BEGIN + IDS_STANDARD_FONT "Courier" + IDS_STANDARD_FONT_HEIGHT "\13" +- IDS_STANDARD_FONT_WIDTH "\8" ++ IDS_STANDARD_FONT_WIDTH "\08" + END + + STRINGTABLE DISCARDABLE diff --git a/mingw-w64-usbview/PKGBUILD b/mingw-w64-usbview/PKGBUILD new file mode 100644 index 0000000000..927b0ef5d2 --- /dev/null +++ b/mingw-w64-usbview/PKGBUILD @@ -0,0 +1,79 @@ +# Maintainer: David Grayson + +# Note: We currently build an older version of usbview from a ZIP file +# that was on a page that Microsoft has since unpublished. We are not +# yet able to build the version of usbview from github because +# mingw-w64 is missing some new structs/typedefs. +# +# https://github.com/Microsoft/Windows-driver-samples/tree/master/usb/usbview + +_realname=usbview +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.1.20140402 +pkgrel=1 +pkgdesc='GUI for browsing all USB controllers and connected USB devices on your computer (mingw-w64)' +arch=('any') +url='https://web.archive.org/web/20140824072648/http://code.msdn.microsoft.com/windowshardware/USBView-sample-application-e3241039' +license=('custom') +makedepends=( + "${MINGW_PACKAGE_PREFIX}-gcc" + 'patch' +) +depends=() +options=('strip') +source=( + "https://code.msdn.microsoft.com/windowshardware/USBView-sample-application-e3241039/file/51333/38/USBView%20sample%20application.zip" + 'my_xmlhelper.c' + '01-strsafe-after-tchar.patch' + '02-sal.patch' + '03-resource-fix.patch' +) + +sha256sums=('fd07e8b20f9cff7efd8c01bf2b9cc9ac39ba85c76e56287b80d8abf38ec92287' + 'b3d551683be0398bca58e67bf7c91b22d88283e10292c9cda5ab367921511ebf' + 'dd0dade894b612cc0d30b0cbe1c47647de3697c9feeff65b866c32b01430154e' + 'b6959253bde6fd85af82cdd74c0993d0e9c82871f95cb507811b1fd8528cd301' + '2be3167e95f8d5d8abf91e43a49fac4593b8264df5c20478f476bdbe1bae89a3') + +prepare() { + cd "${srcdir}/C++" + + # dos2unix -q *.c *.h *.rc + + # strsafe.h must be after tchar.h in mingw-w64 + patch -p1 -i "../01-strsafe-after-tchar.patch" + + # Include sal.h in some places it is needed. + patch -p1 -i "../02-sal.patch" + + # We exclude the XML stuff because it requires Visual C++ (.NET). + rm usbschema.hpp xmlhelper.cpp + cp "../my_xmlhelper.c" . + + # Fix some syntax errors that windres complains about + patch -p1 -i "../03-resource-fix.patch" +} + +build() { + cd "${srcdir}" + mkdir -p "build-${MINGW_CHOST}" + cd "build-${MINGW_CHOST}" + + windres ../C++/uvcview.rc rc.so + + gcc -mwindows --std=c99 ${CFLAGS} ${LDFLAGS} \ + -DNTDDI_VERSION=0x06020000 -D_WIN32_WINNT=0x0602 \ + -DSTRSAFE_NO_DEPRECATE \ + ../C++/*.c rc.so \ + -lcomctl32 -lcomdlg32 -lsetupapi -lshell32 -lshlwapi -lole32 -lgdi32 \ + -o usbview.exe +} + +package() { + cd "${srcdir}" + install -Dm644 license.rtf "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/license.rtf" + cd "build-${MINGW_CHOST}" + mkdir "${pkgdir}${MINGW_PREFIX}/bin" + install -Dm755 usbview.exe "${pkgdir}${MINGW_PREFIX}/bin" +} diff --git a/mingw-w64-usbview/my_xmlhelper.c b/mingw-w64-usbview/my_xmlhelper.c new file mode 100644 index 0000000000..191dc629b6 --- /dev/null +++ b/mingw-w64-usbview/my_xmlhelper.c @@ -0,0 +1,48 @@ +#include "xmlhelper.h" + +EXTERN_C HRESULT InitXmlHelper() +{ + return 0; +} + +EXTERN_C HRESULT ReleaseXmlWriter() +{ + return 0; +} + +EXTERN_C HRESULT SaveXml(LPTSTR szfileName, DWORD dwCreationDisposition) +{ + MessageBox(NULL, + "Sorry, XML saving is not supported in this build.", + "XML not supported", + MB_OK | MB_ICONEXCLAMATION); + return 0; +} + +EXTERN_C HRESULT XmlAddHostController( + PSTR hcName, + PUSBHOSTCONTROLLERINFO hcInfo + ) +{ + return 0; +} + +EXTERN_C HRESULT XmlAddRootHub(PSTR rhName, PUSBROOTHUBINFO rhInfo) +{ + return 0; +} + +EXTERN_C HRESULT XmlAddExternalHub(PSTR ehName, PUSBEXTERNALHUBINFO ehInfo) +{ + return 0; +} + +EXTERN_C HRESULT XmlAddUsbDevice(PSTR devName, PUSBDEVICEINFO deviceInfo) +{ + return 0; +} + +EXTERN_C VOID XmlNotifyEndOfNodeList(PVOID pContext) +{ + return 0; +} From ca33bbe10b3c0b8fb773285dcbbec5720104958e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Sep 2015 08:57:05 +0300 Subject: [PATCH 1639/2060] libsoup: Update to 2.52.0 --- .../0005-missing-declaration.patch | 29 +++++++++ ...-change-pkg-config-invocations.mingw.patch | 17 +++++ .../0007-dont-hardcode-paths.patch | 64 +++++++++++++++++++ mingw-w64-libsoup/PKGBUILD | 34 +++++++--- 4 files changed, 135 insertions(+), 9 deletions(-) create mode 100644 mingw-w64-libsoup/0005-missing-declaration.patch create mode 100644 mingw-w64-libsoup/0006-change-pkg-config-invocations.mingw.patch create mode 100644 mingw-w64-libsoup/0007-dont-hardcode-paths.patch diff --git a/mingw-w64-libsoup/0005-missing-declaration.patch b/mingw-w64-libsoup/0005-missing-declaration.patch new file mode 100644 index 0000000000..3873596e75 --- /dev/null +++ b/mingw-w64-libsoup/0005-missing-declaration.patch @@ -0,0 +1,29 @@ +From 7b5cb1228c914b38cbcd935be1bd419754636072 Mon Sep 17 00:00:00 2001 +From: Chun-wei Fan +Date: Tue, 22 Sep 2015 18:19:04 +0800 +Subject: [PATCH] soup-session.c: Fix Build on MinGW + +MinGW requires that a prototype be declared for DllMain() before we can use +it, so define it here to fix the build, as the previous patch to add this +did not check for this part. +--- + libsoup/soup-session.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c +index ca8d80c..1eda025 100644 +--- a/libsoup/soup-session.c ++++ b/libsoup/soup-session.c +@@ -81,6 +81,10 @@ + #define WIN32_LEAN_AND_MEAN + #include + ++BOOL WINAPI DllMain (HINSTANCE hinstDLL, ++ DWORD fdwReason, ++ LPVOID lpvReserved); ++ + HMODULE soup_dll; + + BOOL WINAPI +-- +2.3.5.windows.8 diff --git a/mingw-w64-libsoup/0006-change-pkg-config-invocations.mingw.patch b/mingw-w64-libsoup/0006-change-pkg-config-invocations.mingw.patch new file mode 100644 index 0000000000..807e6683cc --- /dev/null +++ b/mingw-w64-libsoup/0006-change-pkg-config-invocations.mingw.patch @@ -0,0 +1,17 @@ +--- libsoup-2.52.0/m4/vapigen.m4.orig 2015-01-14 14:51:42.117600000 +0300 ++++ libsoup-2.52.0/m4/vapigen.m4 2015-01-14 14:52:07.297000000 +0300 +@@ -85,11 +85,11 @@ + [yes], [ + VAPIGEN=`$PKG_CONFIG --variable=vapigen vapigen` + VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir vapigen`/vala/Makefile.vapigen +- VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen` ++ VAPIDIR=`$PKG_CONFIG --dont-define-prefix --variable=vapidir vapigen` + AS_IF([ test "x$2" = "x"], [ +- VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen` ++ VAPIGEN_VAPIDIR=`$PKG_CONFIG --dont-define-prefix --variable=vapidir $vapigen_pkg_name` + ], [ +- VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned vapigen` ++ VAPIGEN_VAPIDIR=`$PKG_CONFIG --dont-define-prefix --variable=vapidir_versioned $vapigen_pkg_name` + ]) + ], + [no], [ diff --git a/mingw-w64-libsoup/0007-dont-hardcode-paths.patch b/mingw-w64-libsoup/0007-dont-hardcode-paths.patch new file mode 100644 index 0000000000..a749315f21 --- /dev/null +++ b/mingw-w64-libsoup/0007-dont-hardcode-paths.patch @@ -0,0 +1,64 @@ +From f58c9879c1986d4b77c68bd81879f692a0c62d07 Mon Sep 17 00:00:00 2001 +From: Chun-wei Fan +Date: Thu, 6 Aug 2015 00:30:52 +0800 +Subject: libsoup/soup-session.c: Don't Hardcode Paths on Windows + +On Windows, use g_win32_get_package_installation_directory_of_module() +and g_build_filename() to acquire the localedir to find the translations +on Windows, instead of relying on the LOCALEDIR which is hardcoded at +compile time, so that the libsoup DLL can be relocated on Windows with its +translations. Therefore, we define a simple DllMain() which is used to +acquire the proper HMODULE for the purpose. + +https://bugzilla.gnome.org/show_bug.cgi?id=752952 + +diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c +index 6420183..ca8d80c 100644 +--- a/libsoup/soup-session.c ++++ b/libsoup/soup-session.c +@@ -77,10 +77,43 @@ + * subtypes) have a #SoupContentDecoder by default. + **/ + ++#if defined (G_OS_WIN32) ++#define WIN32_LEAN_AND_MEAN ++#include ++ ++HMODULE soup_dll; ++ ++BOOL WINAPI ++DllMain (HINSTANCE hinstDLL, ++ DWORD fdwReason, ++ LPVOID lpvReserved) ++{ ++ switch (fdwReason) { ++ case DLL_PROCESS_ATTACH: ++ soup_dll = hinstDLL; ++ break; ++ ++ case DLL_THREAD_DETACH: ++ ++ default: ++ /* do nothing */ ++ ; ++ } ++} ++#endif ++ + static void + soup_init (void) + { ++#ifdef G_OS_WIN32 ++ char *basedir = g_win32_get_package_installation_directory_of_module (soup_dll); ++ char *localedir = g_build_filename (basedir, "share", "locale", NULL); ++ bindtextdomain (GETTEXT_PACKAGE, localedir); ++ g_free (localedir); ++ g_free (basedir); ++#else + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); ++#endif + #ifdef HAVE_BIND_TEXTDOMAIN_CODESET + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + #endif +-- +cgit v0.10.2 diff --git a/mingw-w64-libsoup/PKGBUILD b/mingw-w64-libsoup/PKGBUILD index d6a6e1fcf8..be81460863 100644 --- a/mingw-w64-libsoup/PKGBUILD +++ b/mingw-w64-libsoup/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libsoup +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.51.3 +pkgver=2.52.0 pkgrel=1 pkgdesc="HTTP client/server library (mingw-w64)" arch=(any) @@ -11,40 +12,55 @@ license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-vala" "intltool") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-glib-networking" "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-sqlite3" - "${MINGW_PACKAGE_PREFIX}-glib-networking") + "${MINGW_PACKAGE_PREFIX}-sqlite3") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" 0001-give-cc-to-gir-scanner.mingw.patch - 0004-localedir-fix.patch) -md5sums=('0a08e41c112ef52d9e66ccdfa95887c5' + 0004-localedir-fix.patch + 0005-missing-declaration.patch + 0006-change-pkg-config-invocations.mingw.patch + 0007-dont-hardcode-paths.patch) +md5sums=('74ef72cd984dc6daf3ba601288974c26' 'a1ddc19ab3f73bbddda1d41a6a7de399' - 'ee2cc56c1448c32020288c817b81ff7f') + 'ee2cc56c1448c32020288c817b81ff7f' + '8d30c2d030281a6e363167f5c9dd8599' + '412394f65ad3153aa9587b888acf2f96' + '74ffcee27943dfded1d0da15c3975eff') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.mingw.patch patch -p1 -i ${srcdir}/0004-localedir-fix.patch + #patch -p1 -i ${srcdir}/0005-missing-declaration.patch + patch -p1 -i ${srcdir}/0006-change-pkg-config-invocations.mingw.patch + + patch -p1 -R -i ${srcdir}/0007-dont-hardcode-paths.patch + autoreconf -fi } build() { + #CPPFLAGS+=" --save-temps" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - "${srcdir}"/${_realname}-$pkgver/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --without-apache-httpd \ --without-apache-module-dir \ --with-gnome \ - --enable-introspection + --enable-vala \ + --enable-introspection \ + --disable-silent-rules - make + make #-j1 V=1 } package() { From 2895d809ee0ab00822d6bfefa39e996961781881 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Sep 2015 09:08:46 +0300 Subject: [PATCH 1640/2060] libpeas: Update to 1.16.0 --- .../0002-give-cc-to-gir-scanner.all.patch | 30 --------- mingw-w64-libpeas/0004-localedir-fix.patch | 66 +++++++++++++++++++ mingw-w64-libpeas/PKGBUILD | 11 ++-- 3 files changed, 72 insertions(+), 35 deletions(-) delete mode 100644 mingw-w64-libpeas/0002-give-cc-to-gir-scanner.all.patch create mode 100644 mingw-w64-libpeas/0004-localedir-fix.patch diff --git a/mingw-w64-libpeas/0002-give-cc-to-gir-scanner.all.patch b/mingw-w64-libpeas/0002-give-cc-to-gir-scanner.all.patch deleted file mode 100644 index c85f5bc99b..0000000000 --- a/mingw-w64-libpeas/0002-give-cc-to-gir-scanner.all.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- libpeas-1.10.0/libpeas/Makefile.am.orig 2014-02-09 23:55:50.000000000 +0400 -+++ libpeas-1.10.0/libpeas/Makefile.am 2014-05-18 21:09:07.722800000 +0400 -@@ -88,6 +88,7 @@ - if HAVE_INTROSPECTION - -include $(INTROSPECTION_MAKEFILE) - INTROSPECTION_GIRS = Peas-1.0.gir -+ INTROSPECTION_SCANNER_ENV = CC="$(CC)" - INTROSPECTION_SCANNER_ARGS = \ - -I$(top_srcdir) \ - --c-include=libpeas/peas.h \ ---- libpeas-1.10.0/libpeas-gtk/Makefile.am.orig 1970-01-01 03:00:00.000000000 +0300 -+++ libpeas-1.10.0/libpeas-gtk/Makefile.am 2014-05-18 21:09:34.204800000 +0400 -@@ -47,6 +47,7 @@ - if HAVE_INTROSPECTION - -include $(INTROSPECTION_MAKEFILE) - INTROSPECTION_GIRS = PeasGtk-1.0.gir -+ INTROSPECTION_SCANNER_ENV = CC="$(CC)" - INTROSPECTION_SCANNER_ARGS = \ - --add-include-path=$(top_builddir)/libpeas \ - --c-include=libpeas-gtk/peas-gtk.h \ ---- libpeas-1.10.0/tests/libpeas/introspection/Makefile.am.orig 1970-01-01 03:00:00.000000000 +0300 -+++ libpeas-1.10.0/tests/libpeas/introspection/Makefile.am 2014-05-18 21:09:34.204800000 +0400 -@@ -31,6 +31,7 @@ - -include $(INTROSPECTION_MAKEFILE) - INTROSPECTION_GIRS = Introspection-1.0.gir - INTROSPECTION_TYPELIBS = $(INTROSPECTION_GIRS:.gir=.typelib) -+ INTROSPECTION_SCANNER_ENV = CC="$(CC)" - INTROSPECTION_SCANNER_ARGS = \ - --add-include-path=$(top_builddir)/libpeas \ - --warn-all diff --git a/mingw-w64-libpeas/0004-localedir-fix.patch b/mingw-w64-libpeas/0004-localedir-fix.patch new file mode 100644 index 0000000000..516bacea95 --- /dev/null +++ b/mingw-w64-libpeas/0004-localedir-fix.patch @@ -0,0 +1,66 @@ +--- a/po/Makefile.in.in 2012-01-18 16:37:06 +0000 ++++ b/po/Makefile.in.in 2013-05-12 17:12:40 +0000 +@@ -33,8 +33,7 @@ + datadir = @datadir@ + datarootdir = @datarootdir@ + libdir = @libdir@ +-DATADIRNAME = @DATADIRNAME@ +-itlocaledir = $(prefix)/$(DATADIRNAME)/locale ++localedir = @localedir@ + subdir = po + install_sh = @install_sh@ + # Automake >= 1.8 provides @mkdir_p@. +@@ -108,7 +107,7 @@ + install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ ++ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ +@@ -142,8 +141,8 @@ + uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ +- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ ++ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + + check: all $(GETTEXT_PACKAGE).pot +--- a/m4/intltool.m4 2012-02-20 14:50:33 +0000 ++++ b/m4/intltool.m4 2013-05-12 17:12:40 +0000 +@@ -155,31 +155,6 @@ + # Substitute ALL_LINGUAS so we can use it in po/Makefile + AC_SUBST(ALL_LINGUAS) + +-# Set DATADIRNAME correctly if it is not set yet +-# (copied from glib-gettext.m4) +-if test -z "$DATADIRNAME"; then +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[]], +- [[extern int _nl_msg_cat_cntr; +- return _nl_msg_cat_cntr]])], +- [DATADIRNAME=share], +- [case $host in +- *-*-solaris*) +- dnl On Solaris, if bind_textdomain_codeset is in libc, +- dnl GNU format message catalog is always supported, +- dnl since both are added to the libc all together. +- dnl Hence, we'd like to go with DATADIRNAME=share +- dnl in this case. +- AC_CHECK_FUNC(bind_textdomain_codeset, +- [DATADIRNAME=share], [DATADIRNAME=lib]) +- ;; +- *) +- [DATADIRNAME=lib] +- ;; +- esac]) +-fi +-AC_SUBST(DATADIRNAME) +- + IT_PO_SUBDIR([po]) + + ]) diff --git a/mingw-w64-libpeas/PKGBUILD b/mingw-w64-libpeas/PKGBUILD index 21c29a4078..9b64bb9178 100644 --- a/mingw-w64-libpeas/PKGBUILD +++ b/mingw-w64-libpeas/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libpeas +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.15.0 +pkgver=1.16.0 pkgrel=1 pkgdesc="A GObject-based plugins engine (mingw-w64)" arch=('any') @@ -23,13 +24,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('strip' 'staticlibs') install=${_realname}-${CARCH}.install source=(http://download.gnome.org/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz - 0002-give-cc-to-gir-scanner.all.patch) -md5sums=('990dcbcdea482e4845176b4ee88e7c63' - 'b79cae8a6794dc2511f6fcceaa809111') + 0004-localedir-fix.patch) +md5sums=('48c5b3da391da1ae390e9d45d88a6aeb' + 'ee2cc56c1448c32020288c817b81ff7f') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0002-give-cc-to-gir-scanner.all.patch + patch -p1 -i ${srcdir}/0004-localedir-fix.patch autoreconf -fi } From 688cc268f0525770c3e888f8f0e43d647ae9c2b5 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Sep 2015 09:17:01 +0300 Subject: [PATCH 1641/2060] gtksourceview3: Update to 3.18.0 --- mingw-w64-gtksourceview3/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-gtksourceview3/PKGBUILD b/mingw-w64-gtksourceview3/PKGBUILD index d90666bfd6..c2c706b9c6 100644 --- a/mingw-w64-gtksourceview3/PKGBUILD +++ b/mingw-w64-gtksourceview3/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=gtksourceview +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.16.1 -pkgrel=2 +pkgver=3.18.0 +pkgrel=1 pkgdesc="A text widget adding syntax highlighting and more to GNOME (mingw-w64)" arch=('any') url="http://www.gnome.org" @@ -20,7 +21,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" options=(!libtool strip staticlibs) source=("http://ftp.gnome.org/pub/gnome/sources/gtksourceview/${pkgver%.*}/gtksourceview-${pkgver}.tar.xz" 0006-hack-convert-path-back-to-unix.patch) -md5sums=('e727db8202d23a54b54b69ebc66f5331' +md5sums=('8e99579d6a8b2fdae45b557f40df0176' '324c9e3bb2e4fa2a4977653ce6ed6ef9') prepare() { @@ -37,7 +38,6 @@ build() { mkdir -p docs/reference/html cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html - DATADIRNAME=share \ ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ From 73f73793af16e2bb715e439f83a132e982847c12 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Sep 2015 09:29:19 +0300 Subject: [PATCH 1642/2060] libchamplain: Remove unneded patch --- .../002-give-cc-to-gir-scanner.mingw.patch | 20 ------------------- mingw-w64-libchamplain/PKGBUILD | 8 +++----- 2 files changed, 3 insertions(+), 25 deletions(-) delete mode 100644 mingw-w64-libchamplain/002-give-cc-to-gir-scanner.mingw.patch diff --git a/mingw-w64-libchamplain/002-give-cc-to-gir-scanner.mingw.patch b/mingw-w64-libchamplain/002-give-cc-to-gir-scanner.mingw.patch deleted file mode 100644 index 393269eea0..0000000000 --- a/mingw-w64-libchamplain/002-give-cc-to-gir-scanner.mingw.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- libchamplain-0.12.9/champlain/Makefile.am.orig 2014-10-19 14:00:19.413400000 +0400 -+++ libchamplain-0.12.9/champlain/Makefile.am 2014-10-19 14:00:28.430200000 +0400 -@@ -159,6 +159,7 @@ - INTROSPECTION_GIRS = - INTROSPECTION_SCANNER_ARGS = --warn-all - INTROSPECTION_COMPILER_ARGS = -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - introspection_sources = \ - $(filter-out $(srcdir)/champlain-version.h,$(libchamplain_headers_public)) \ - $(libchamplain_sources) ---- libchamplain-0.12.9/champlain-gtk/Makefile.am.orig 2014-10-19 14:00:59.708000000 +0400 -+++ libchamplain-0.12.9/champlain-gtk/Makefile.am 2014-10-19 14:01:02.547200000 +0400 -@@ -70,6 +70,7 @@ - INTROSPECTION_GIRS = - INTROSPECTION_SCANNER_ARGS = --warn-all --add-include-path=$(top_builddir)/champlain - INTROSPECTION_COMPILER_ARGS = --includedir=$(top_builddir)/champlain -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - - introspection_sources = $(libchamplain_gtk_@CHAMPLAIN_API_VERSION@_la_SOURCES) - diff --git a/mingw-w64-libchamplain/PKGBUILD b/mingw-w64-libchamplain/PKGBUILD index 79c76965fd..9652ca5471 100644 --- a/mingw-w64-libchamplain/PKGBUILD +++ b/mingw-w64-libchamplain/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Andrea Zagli _realname=libchamplain +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.12.11 pkgrel=1 @@ -20,17 +21,14 @@ options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz - 001-win.patch - 002-give-cc-to-gir-scanner.mingw.patch) + 001-win.patch) sha256sums=('851e24888d967c10acb8fd878df1292a84b8180eb4c48fc5bfbf1a48896d4aa5' - '6aba93f69b14ac384b65dbca00933728cbfe9c34cdd4d562037638b074a7a3e9' - '721fb1d7c51ee1c54eebea06bce43fc1a1a8ae44eaae6111dd81a61dc8fcf4a1') + '6aba93f69b14ac384b65dbca00933728cbfe9c34cdd4d562037638b074a7a3e9') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-win.patch - patch -p1 -i ${srcdir}/002-give-cc-to-gir-scanner.mingw.patch autoreconf -fi } From 791234c2eb912ef2713dd722f359af5e4c52d44b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Sep 2015 09:29:36 +0300 Subject: [PATCH 1643/2060] gtksourceviewmm3: New package. --- mingw-w64-gtksourceviewmm3/PKGBUILD | 38 +++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 mingw-w64-gtksourceviewmm3/PKGBUILD diff --git a/mingw-w64-gtksourceviewmm3/PKGBUILD b/mingw-w64-gtksourceviewmm3/PKGBUILD new file mode 100644 index 0000000000..876ebed677 --- /dev/null +++ b/mingw-w64-gtksourceviewmm3/PKGBUILD @@ -0,0 +1,38 @@ +# Maintainer: Alexey Pavlov + +_realname=gtksourceviewmm +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" +pkgver=3.18.0 +pkgrel=1 +pkgdesc="C++ bindings to gtksourceview3 library (mingw-w64)" +arch=('any') +url="http://www.gnome.org" +license=("LGPL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +depends=("${MINGW_PACKAGE_PREFIX}-gtksourceview3") +options=(strip staticlibs) +source=("http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") +sha1sums=('5104c6fa2d3082686fffd1e6f5f5977138fb71bc') + +build() { + CPPFLAGS+=" -D_REENTRANT" + export lt_cv_deplibs_check_method='pass_all' + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static \ + --disable-documentation + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm +} From 825cac0cc49ab5b17deb300b758b9ec28072547a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Sep 2015 09:34:15 +0300 Subject: [PATCH 1644/2060] geocode-glib: Update to 3.18.0 --- mingw-w64-geocode-glib/002-symbols.patch | 10 ---------- .../003-give-cc-to-gir-scanner.all.patch | 10 ---------- mingw-w64-geocode-glib/PKGBUILD | 17 ++++++----------- 3 files changed, 6 insertions(+), 31 deletions(-) delete mode 100644 mingw-w64-geocode-glib/002-symbols.patch delete mode 100644 mingw-w64-geocode-glib/003-give-cc-to-gir-scanner.all.patch diff --git a/mingw-w64-geocode-glib/002-symbols.patch b/mingw-w64-geocode-glib/002-symbols.patch deleted file mode 100644 index c1ba45ca15..0000000000 --- a/mingw-w64-geocode-glib/002-symbols.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- geocode-glib-3.13.3-orig/geocode-glib/geocode-glib.symbols 2014-06-25 00:37:44.000000000 +0200 -+++ geocode-glib-3.13.3/geocode-glib/geocode-glib.symbols 2014-08-15 16:26:16.680759400 +0200 -@@ -34,7 +34,6 @@ - geocode_error_quark - geocode_error_get_type - _geocode_parse_search_json --_geocode_parse_resolve_json - _geocode_read_nominatim_attributes - _geocode_create_place_from_attributes - geocode_place_get_type diff --git a/mingw-w64-geocode-glib/003-give-cc-to-gir-scanner.all.patch b/mingw-w64-geocode-glib/003-give-cc-to-gir-scanner.all.patch deleted file mode 100644 index 4ed86dc098..0000000000 --- a/mingw-w64-geocode-glib/003-give-cc-to-gir-scanner.all.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- geocode-glib-3.13.3/geocode-glib/Makefile.am.orig 2014-06-25 02:37:44.000000000 +0400 -+++ geocode-glib-3.13.3/geocode-glib/Makefile.am 2014-08-20 19:13:06.699600000 +0400 -@@ -75,6 +75,7 @@ - INTROSPECTION_GIRS = - INTROSPECTION_SCANNER_ARGS = --warn-all --add-include-path=$(top_srcdir) - INTROSPECTION_COMPILER_ARGS = --includedir=$(top_srcdir) -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - CLEANFILES = - - if HAVE_INTROSPECTION diff --git a/mingw-w64-geocode-glib/PKGBUILD b/mingw-w64-geocode-glib/PKGBUILD index d55d581e90..09bfc7ea42 100644 --- a/mingw-w64-geocode-glib/PKGBUILD +++ b/mingw-w64-geocode-glib/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Andrea Zagli _realname=geocode-glib +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.2 -pkgrel=2 +pkgver=3.18.0 +pkgrel=1 arch=('any') pkgdesc="geocoding and reverse geocoding GLib library using Yahoo! Place Finder (mingw-w64)" license=("LGPL 2") @@ -24,20 +25,14 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "patch") options=('strip' '!debug' 'staticlibs') source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz - 001-locale.patch - 002-symbols.patch - 003-give-cc-to-gir-scanner.all.patch) -sha256sums=('a551ffdbd793d54a14e709c9d02e82dde3abc14eed8065abad92275a43fe2c97' - '7379362319bab800b464ae4cf1d33e05f51bf500d8b0f65be63c05036f040c34' - 'e7ddcaf273910b35b60991bf1db1d9dcff38bad09123dd43033cddcfbee224b2' - '946437e815fc17ddcb4f4c7b52dd80bd1460363e37d211d97ac7ba5e32f49e9a') + 001-locale.patch) +sha256sums=('8fb7f0d569e3e6696aaa1fdf275cb3094527ec5e9fa36fd88dd633dfec63495d' + '7379362319bab800b464ae4cf1d33e05f51bf500d8b0f65be63c05036f040c34') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-locale.patch - patch -p1 -i ${srcdir}/002-symbols.patch - patch -p1 -i ${srcdir}/003-give-cc-to-gir-scanner.all.patch autoreconf -fi } From 09761b8c560923e7cc9b00983fb1e1cad06b2abb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Sep 2015 09:58:45 +0300 Subject: [PATCH 1645/2060] libsoup: Fix patches. --- .../0005-missing-declaration.patch | 29 ------- .../0007-dont-hardcode-paths.patch | 84 +++++++------------ mingw-w64-libsoup/PKGBUILD | 7 +- 3 files changed, 34 insertions(+), 86 deletions(-) delete mode 100644 mingw-w64-libsoup/0005-missing-declaration.patch diff --git a/mingw-w64-libsoup/0005-missing-declaration.patch b/mingw-w64-libsoup/0005-missing-declaration.patch deleted file mode 100644 index 3873596e75..0000000000 --- a/mingw-w64-libsoup/0005-missing-declaration.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 7b5cb1228c914b38cbcd935be1bd419754636072 Mon Sep 17 00:00:00 2001 -From: Chun-wei Fan -Date: Tue, 22 Sep 2015 18:19:04 +0800 -Subject: [PATCH] soup-session.c: Fix Build on MinGW - -MinGW requires that a prototype be declared for DllMain() before we can use -it, so define it here to fix the build, as the previous patch to add this -did not check for this part. ---- - libsoup/soup-session.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c -index ca8d80c..1eda025 100644 ---- a/libsoup/soup-session.c -+++ b/libsoup/soup-session.c -@@ -81,6 +81,10 @@ - #define WIN32_LEAN_AND_MEAN - #include - -+BOOL WINAPI DllMain (HINSTANCE hinstDLL, -+ DWORD fdwReason, -+ LPVOID lpvReserved); -+ - HMODULE soup_dll; - - BOOL WINAPI --- -2.3.5.windows.8 diff --git a/mingw-w64-libsoup/0007-dont-hardcode-paths.patch b/mingw-w64-libsoup/0007-dont-hardcode-paths.patch index a749315f21..f34cb9f6cd 100644 --- a/mingw-w64-libsoup/0007-dont-hardcode-paths.patch +++ b/mingw-w64-libsoup/0007-dont-hardcode-paths.patch @@ -1,64 +1,44 @@ -From f58c9879c1986d4b77c68bd81879f692a0c62d07 Mon Sep 17 00:00:00 2001 -From: Chun-wei Fan -Date: Thu, 6 Aug 2015 00:30:52 +0800 -Subject: libsoup/soup-session.c: Don't Hardcode Paths on Windows - -On Windows, use g_win32_get_package_installation_directory_of_module() -and g_build_filename() to acquire the localedir to find the translations -on Windows, instead of relying on the LOCALEDIR which is hardcoded at -compile time, so that the libsoup DLL can be relocated on Windows with its -translations. Therefore, we define a simple DllMain() which is used to -acquire the proper HMODULE for the purpose. - -https://bugzilla.gnome.org/show_bug.cgi?id=752952 - diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c index 6420183..ca8d80c 100644 --- a/libsoup/soup-session.c +++ b/libsoup/soup-session.c -@@ -77,10 +77,43 @@ +@@ -77,36 +77,11 @@ * subtypes) have a #SoupContentDecoder by default. **/ -+#if defined (G_OS_WIN32) -+#define WIN32_LEAN_AND_MEAN -+#include -+ -+HMODULE soup_dll; -+ -+BOOL WINAPI -+DllMain (HINSTANCE hinstDLL, -+ DWORD fdwReason, -+ LPVOID lpvReserved) -+{ -+ switch (fdwReason) { -+ case DLL_PROCESS_ATTACH: -+ soup_dll = hinstDLL; -+ break; -+ -+ case DLL_THREAD_DETACH: -+ -+ default: -+ /* do nothing */ -+ ; -+ } -+} -+#endif -+ +-#if defined (G_OS_WIN32) +-#define WIN32_LEAN_AND_MEAN +-#include +- +-HMODULE soup_dll; +- +-BOOL WINAPI +-DllMain (HINSTANCE hinstDLL, +- DWORD fdwReason, +- LPVOID lpvReserved) +-{ +- switch (fdwReason) { +- case DLL_PROCESS_ATTACH: +- soup_dll = hinstDLL; +- break; +- +- case DLL_THREAD_DETACH: +- +- default: +- /* do nothing */ +- ; +- } +-} +-#endif +- static void soup_init (void) { -+#ifdef G_OS_WIN32 -+ char *basedir = g_win32_get_package_installation_directory_of_module (soup_dll); -+ char *localedir = g_build_filename (basedir, "share", "locale", NULL); -+ bindtextdomain (GETTEXT_PACKAGE, localedir); -+ g_free (localedir); -+ g_free (basedir); -+#else - bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); -+#endif - #ifdef HAVE_BIND_TEXTDOMAIN_CODESET - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - #endif + #ifdef G_OS_WIN32 +- char *basedir = g_win32_get_package_installation_directory_of_module (soup_dll); ++ char *basedir = g_win32_get_package_installation_directory_of_module (NULL); + char *localedir = g_build_filename (basedir, "share", "locale", NULL); + bindtextdomain (GETTEXT_PACKAGE, localedir); + g_free (localedir); -- cgit v0.10.2 diff --git a/mingw-w64-libsoup/PKGBUILD b/mingw-w64-libsoup/PKGBUILD index be81460863..ac9fc7c80b 100644 --- a/mingw-w64-libsoup/PKGBUILD +++ b/mingw-w64-libsoup/PKGBUILD @@ -23,24 +23,21 @@ options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" 0001-give-cc-to-gir-scanner.mingw.patch 0004-localedir-fix.patch - 0005-missing-declaration.patch 0006-change-pkg-config-invocations.mingw.patch 0007-dont-hardcode-paths.patch) md5sums=('74ef72cd984dc6daf3ba601288974c26' 'a1ddc19ab3f73bbddda1d41a6a7de399' 'ee2cc56c1448c32020288c817b81ff7f' - '8d30c2d030281a6e363167f5c9dd8599' '412394f65ad3153aa9587b888acf2f96' - '74ffcee27943dfded1d0da15c3975eff') + '5cbb4dcc8b2cb810c8469bad6d75ad6e') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.mingw.patch patch -p1 -i ${srcdir}/0004-localedir-fix.patch - #patch -p1 -i ${srcdir}/0005-missing-declaration.patch patch -p1 -i ${srcdir}/0006-change-pkg-config-invocations.mingw.patch - patch -p1 -R -i ${srcdir}/0007-dont-hardcode-paths.patch + patch -p1 -i ${srcdir}/0007-dont-hardcode-paths.patch autoreconf -fi } From c692bb1427a76e80b2727bdcceaa8be812516485 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Sep 2015 10:00:41 +0300 Subject: [PATCH 1646/2060] libgweather: Update to 3.18.0 --- mingw-w64-libgweather/001-win.patch | 21 ++++----------------- mingw-w64-libgweather/002-relocation.patch | 8 ++++---- mingw-w64-libgweather/PKGBUILD | 19 +++++++++++-------- 3 files changed, 19 insertions(+), 29 deletions(-) diff --git a/mingw-w64-libgweather/001-win.patch b/mingw-w64-libgweather/001-win.patch index 0548e495c0..6139b9fe46 100644 --- a/mingw-w64-libgweather/001-win.patch +++ b/mingw-w64-libgweather/001-win.patch @@ -112,19 +112,6 @@ tz = g_time_zone_new (tzid); dt = g_date_time_new (tz, ---- ./libgweather/weather-priv.h.orig 2014-09-07 17:09:34.535003100 +0200 -+++ ./libgweather/weather-priv.h 2014-09-07 17:09:36.914103100 +0200 -@@ -31,10 +31,6 @@ - #include "gweather-weather.h" - #include "gweather-location.h" - --#ifdef _WIN32 --#include "gweather-win32.h" --#endif -- - void _gweather_gettext_init (void); - - struct _GWeatherLocation { --- ./libgweather/weather-sun.c.orig 2014-09-07 17:53:39.134081200 +0200 +++ ./libgweather/weather-sun.c 2014-09-07 17:54:30.044591900 +0200 @@ -322,7 +322,14 @@ @@ -250,8 +237,8 @@ tz = g_time_zone_new (tzid); dt = g_date_time_new (tz, ---- ./libgweather/weather.c.orig 2014-09-07 17:18:05.621641500 +0200 -+++ ./libgweather/weather.c 2014-09-07 17:27:17.789137400 +0200 +--- ./libgweather/gweather-weather.c.orig 2014-09-07 17:18:05.621641500 +0200 ++++ ./libgweather/gweather-weather.c 2014-09-07 17:27:17.789137400 +0200 @@ -28,12 +28,15 @@ #include #include @@ -266,6 +253,6 @@ +#include +#endif + - #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE #include "gweather-weather.h" - #include "weather-priv.h" + #include "gweather-private.h" + #include "gweather-enum-types.h" diff --git a/mingw-w64-libgweather/002-relocation.patch b/mingw-w64-libgweather/002-relocation.patch index 337799fa41..a580e7382d 100644 --- a/mingw-w64-libgweather/002-relocation.patch +++ b/mingw-w64-libgweather/002-relocation.patch @@ -1,5 +1,5 @@ ---- ./libgweather/parser.c.orig 2015-04-20 17:42:37.500600900 +0200 -+++ ./libgweather/parser.c 2015-04-20 17:44:52.715146100 +0200 +--- ./libgweather/gweather-parser.c.orig 2015-04-20 17:42:37.500600900 +0200 ++++ ./libgweather/gweather-parser.c 2015-04-20 17:44:52.715146100 +0200 @@ -131,19 +131,34 @@ time_t now; struct tm tm; @@ -37,8 +37,8 @@ /* Open the xml file containing the different locations */ parser->xml = xmlNewTextReaderFilename (filename); g_free (filename); ---- ./libgweather/weather.c.orig 2015-04-20 17:41:19.049620900 +0200 -+++ ./libgweather/weather.c 2015-04-20 17:41:53.096893500 +0200 +--- ./libgweather/gweather-weather.c.orig 2015-04-20 17:41:19.049620900 +0200 ++++ ./libgweather/gweather-weather.c 2015-04-20 17:41:53.096893500 +0200 @@ -84,21 +84,36 @@ void _gweather_gettext_init (void) diff --git a/mingw-w64-libgweather/PKGBUILD b/mingw-w64-libgweather/PKGBUILD index 27a3977c62..e08392b557 100644 --- a/mingw-w64-libgweather/PKGBUILD +++ b/mingw-w64-libgweather/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Andrea Zagli _realname=libgweather +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.1 -pkgrel=2 +pkgver=3.18.0 +pkgrel=1 arch=('any') pkgdesc="GWeather shared library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gtk3" @@ -12,9 +13,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-geocode-glib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-glade" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-vala" "gtk-doc" "intltool") options=('strip' 'staticlibs') @@ -24,9 +25,9 @@ install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch 002-relocation.patch) -sha256sums=('db0955261427bb0f1a3f2747507863c591bf2f09dc477cfbf1cea0382cd34dfd' - '54aafa1ec47f818855cb8d17bb4f7f4458505a54b08c9fc51bfd4bbc1d6c37a2' - '5d44c1dfed0deff2a4acdb676ff99d8d6ba1983abf27eb423ae3351334ce10cb') +sha256sums=('8f4fda67f48c776f2bf955d384de4cc842aacb8d9b2ad87b42d83d0dc5a1cb1f' + '090eb5c8306737a20850f0a52ab57a70d3cd9afcf55649d3bd4a2c0dc2236484' + 'b84ead0a59db1d315e7de7bea76a162e69fa43242bc5480e6149271304991381') prepare() { cd ${_realname}-${pkgver} @@ -51,7 +52,9 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ - --enable-introspection + --enable-introspection \ + --enable-shared \ + --enable-static make } From c3ca8de7ad8cabf280574e602fb1c5a5110da356 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 23 Sep 2015 18:31:38 +0200 Subject: [PATCH 1647/2060] cogl: updated to 1.22.0. --- mingw-w64-cogl/PKGBUILD | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/mingw-w64-cogl/PKGBUILD b/mingw-w64-cogl/PKGBUILD index 67d9c790a4..c0322c8756 100644 --- a/mingw-w64-cogl/PKGBUILD +++ b/mingw-w64-cogl/PKGBUILD @@ -2,20 +2,24 @@ _realname=cogl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.20.0 +pkgver=1.22.0 pkgrel=2 pkgdesc="An object oriented GL/GLES Abstraction/Utility Layer (mingw-w64)" arch=('any') url="http://www.clutter-project.org/" license=('GPL2') -makedepends=('automake' 'libtool' 'intltool' 'itstool' 'gtk-doc' 'gnome-doc-utils' 'yelp-tools') +makedepends=('automake' 'libtool' 'intltool' 'itstool' 'gtk-doc' 'gnome-doc-utils' 'yelp-tools' + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") depends=("${MINGW_PACKAGE_PREFIX}-pango" - "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2") + "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" + "${MINGW_PACKAGE_PREFIX}-gstreamer" + "${MINGW_PACKAGE_PREFIX}-gst-plugins-base") options=(!libtool strip staticlibs) source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz "0001-msys2-fix-introspection-build.patch" "0002-windows-gl-headers.patch") -md5sums=('5b28897194d9ff76a574a9493d1f7ee0' +md5sums=('ab684ec96848d79d22757fb3064820c8' '66134daa1df08ebfa143b12c08f3290e' '8686270ab5eae668eae11e2606aa7ce0') @@ -31,6 +35,10 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + mkdir doc + cp -rf ../${_realname}-${pkgver}/doc/* doc/ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -38,7 +46,8 @@ build() { --disable-static \ --enable-shared \ --enable-silent-rules \ - --disable-gtk-doc + --enable-introspection \ + --enable-cogl-gst make } @@ -46,4 +55,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="${pkgdir}" install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From eecb423fe490c173d42802ca5f7805c20ff2b058 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 23 Sep 2015 22:06:25 +0200 Subject: [PATCH 1648/2060] clutter: updated to 1.24.0. --- mingw-w64-clutter/PKGBUILD | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mingw-w64-clutter/PKGBUILD b/mingw-w64-clutter/PKGBUILD index 341b496e5f..45e670078c 100644 --- a/mingw-w64-clutter/PKGBUILD +++ b/mingw-w64-clutter/PKGBUILD @@ -2,26 +2,26 @@ _realname=clutter pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.23.2 -pkgrel=2 +pkgver=1.24.0 +pkgrel=1 pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces (mingw-w64)" arch=('any') url="http://clutter-project.org/" license=("LGPL") makedepends=('automake' 'libtool' 'intltool' 'itstool' 'gtk-doc' 'gnome-doc-utils' 'yelp-tools' - "${MINGW_PACKAGE_PREFIX}-gobject-introspection") + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-atk" "${MINGW_PACKAGE_PREFIX}-cogl" "${MINGW_PACKAGE_PREFIX}-json-glib" "${MINGW_PACKAGE_PREFIX}-gobject-introspection-runtime" - "${MINGW_PACKAGE_PREFIX}-gtk3" - ) + "${MINGW_PACKAGE_PREFIX}-gtk3") options=(!libtool strip staticlibs) source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz #"git://git.gnome.org/$_realname#tag=${pkgver}" "0001-msys2-add-header-for-BOOL-defintion.patch" "0002-msys2-add-CC-flags-to-gir-scanner.patch") -md5sums=('48001c0b7f499cbf07f2b8af1999a2f9' +md5sums=('578546c09b5679aa2623660744dbad2f' '3a92db8341129b0db058d47f97062f65' '993eabbeb6fa31af855a593956727e6f') @@ -38,6 +38,9 @@ build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + mkdir doc + cp -rf ../${_realname}-${pkgver}/doc/* doc/ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -45,7 +48,7 @@ build() { --disable-static \ --enable-shared \ --enable-silent-rules \ - --disable-gtk-doc + --enable-introspection make } From 1f725c7d952956a3ffb5933b69d13b79603f1a90 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 24 Sep 2015 20:48:01 +0200 Subject: [PATCH 1649/2060] ghex: updated to 3.18.0. --- mingw-w64-ghex/004-localedir-fix.patch | 32 -------------------------- mingw-w64-ghex/PKGBUILD | 15 ++++++------ 2 files changed, 7 insertions(+), 40 deletions(-) delete mode 100644 mingw-w64-ghex/004-localedir-fix.patch diff --git a/mingw-w64-ghex/004-localedir-fix.patch b/mingw-w64-ghex/004-localedir-fix.patch deleted file mode 100644 index 390f03b6cb..0000000000 --- a/mingw-w64-ghex/004-localedir-fix.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- ./po/Makefile.in.in 2012-01-18 16:37:06 +0000 -+++ ./po/Makefile.in.in 2013-05-12 17:12:40 +0000 -@@ -33,8 +33,7 @@ - datadir = @datadir@ - datarootdir = @datarootdir@ - libdir = @libdir@ --DATADIRNAME = @DATADIRNAME@ --itlocaledir = $(prefix)/$(DATADIRNAME)/locale -+localedir = @localedir@ - subdir = po - install_sh = @install_sh@ - # Automake >= 1.8 provides @mkdir_p@. -@@ -108,7 +107,7 @@ - install-data-yes: all - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ -+ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ -@@ -142,8 +141,8 @@ - uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - - check: all $(GETTEXT_PACKAGE).pot diff --git a/mingw-w64-ghex/PKGBUILD b/mingw-w64-ghex/PKGBUILD index 877e491431..1db90cb408 100644 --- a/mingw-w64-ghex/PKGBUILD +++ b/mingw-w64-ghex/PKGBUILD @@ -2,8 +2,8 @@ _realname=ghex pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.10.1 -pkgrel=3 +pkgver=3.18.0 +pkgrel=1 arch=('any') pkgdesc="GNOME Hex editor for files (mingw-w64)" options=(strip staticlibs) @@ -16,19 +16,16 @@ url="http://www.gnome.org" install=ghex-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-nohelp.patch - 002-fread.patch - 004-localedir-fix.patch) -sha256sums=('34b66cb5c84410c420df72f229d25aee5979e58048a246ed719b046f0c241132' + 002-fread.patch) +sha256sums=('c5b1eb50a8dd1334880b37617871498b778ea137f79bb43894ec68e4f63dc925' 'cd87d0040cd37a942ff8a1e3013bc96083920dc959dac0a96b543b8b706585ff' - '8e403c1e7c3f83adc768bfe45bb1ea42ae90fc4dfb7fe9bf4544820541a3241d' - '658ed0355d655372b8a1b1fc30a45ce4f02abbad51478132ed08d5373f9514d2') + '8e403c1e7c3f83adc768bfe45bb1ea42ae90fc4dfb7fe9bf4544820541a3241d') prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p0 -i ${srcdir}/001-nohelp.patch patch -p0 -i ${srcdir}/002-fread.patch - patch -p0 -i ${srcdir}/004-localedir-fix.patch autoreconf -ifv } @@ -51,4 +48,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR=${pkgdir} install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From b2cbad7cbdca09d35dc22192c1c346fec93e4c68 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 24 Sep 2015 21:22:26 +0200 Subject: [PATCH 1650/2060] libgxps: updated to 0.2.3.2. --- .../0003-missing-cflags-libs.patch | 24 +++++++++---------- mingw-w64-libgxps/PKGBUILD | 6 ++--- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/mingw-w64-libgxps/0003-missing-cflags-libs.patch b/mingw-w64-libgxps/0003-missing-cflags-libs.patch index 8b5a2e16cb..5c9d5f051a 100644 --- a/mingw-w64-libgxps/0003-missing-cflags-libs.patch +++ b/mingw-w64-libgxps/0003-missing-cflags-libs.patch @@ -1,8 +1,8 @@ ---- libgxps-0.2.3/libgxps/Makefile.am.~1~ 2015-08-14 09:38:52.684940200 +0200 -+++ libgxps-0.2.3/libgxps/Makefile.am 2015-08-14 09:42:24.528041000 +0200 -@@ -62,7 +62,11 @@ - $(GXPS_DEBUG_CFLAGS) \ +--- libgxps-0.2.3.2/libgxps/Makefile.am.orig 2015-09-24 21:02:52.477919700 +0200 ++++ libgxps-0.2.3.2/libgxps/Makefile.am 2015-09-24 21:06:22.835977000 +0200 +@@ -63,7 +63,11 @@ $(LCMS2_CFLAGS) \ + $(LIBPNG_CFLAGS) \ $(WARN_CFLAGS) \ - $(AM_CFLAGS) + $(AM_CFLAGS) \ @@ -13,20 +13,20 @@ libgxps_la_LDFLAGS = \ -version-info $(GXPS_LT_VERSION_INFO) \ -@@ -74,7 +78,11 @@ - $(GXPS_LIBS) \ - $(LCMS2_LIBS) \ +@@ -77,7 +81,11 @@ + $(LIBPNG_LIBS) \ $(LIBJPEG) \ + $(LIBM) \ - $(LIBTIFF) + $(LIBTIFF) \ -+ $(LIBPNG_LIBS) \ -+ $(CAIRO_PDF_LIBS) \ -+ $(CAIRO_PS_LIBS) \ -+ $(CAIRO_SVG_LIBS) ++ $(LIBPNG_LIBS) \ ++ $(CAIRO_PDF_LIBS) \ ++ $(CAIRO_PS_LIBS) \ ++ $(CAIRO_SVG_LIBS) EXTRA_DIST = \ gxps-version.h.in -@@ -108,4 +116,4 @@ +@@ -111,4 +119,4 @@ typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) CLEANFILES += $(gir_DATA) $(typelib_DATA) diff --git a/mingw-w64-libgxps/PKGBUILD b/mingw-w64-libgxps/PKGBUILD index 97b03fbbb1..4119f57702 100644 --- a/mingw-w64-libgxps/PKGBUILD +++ b/mingw-w64-libgxps/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgxps pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.2.3 +pkgver=0.2.3.2 pkgrel=1 arch=('any') pkgdesc="A library to handling and rendering XPS documents (mingw-w64)" @@ -27,10 +27,10 @@ source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:3}/${_rea 0001-give-cc-to-gir-scanner.all.patch 0002-missing-include.patch 0003-missing-cflags-libs.patch) -sha256sums=('e257f7d5b3c2893f78039bec5a7b0796bc2e6d18d6af5fb929d783e6043e6927' +sha256sums=('6ea5f0ed85665a4e6702e31e38b5f1b2e5ae4f3d316a55d7f1fb1799224b4127' '93043f118701f0b668ca567875c3f6d4f3f1036680e76bc6f160b6263dd2d6c5' '85e7ce99a0286510f44dad9468faf991b4852f0e6e19c70842a4b38fc6f71919' - 'ce92eb203e18053eb33c5572a89d194ea078e1092ed460602665b1e56615ef60') + '880cd116af31be5108a45d524b371058553c27504e8c1b513d13d021d1259dfc') prepare() { cd ${_realname}-${pkgver} From 681023e9b1c7984b610a1fca7dce248a8d1bfd27 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 24 Sep 2015 22:11:07 +0200 Subject: [PATCH 1651/2060] libgdata: updated to 0.17.3. --- mingw-w64-libgdata/0002-symbols.patch | 9 --------- mingw-w64-libgdata/PKGBUILD | 6 +++--- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/mingw-w64-libgdata/0002-symbols.patch b/mingw-w64-libgdata/0002-symbols.patch index 0929bb37d4..ef0c9cb262 100644 --- a/mingw-w64-libgdata/0002-symbols.patch +++ b/mingw-w64-libgdata/0002-symbols.patch @@ -10,12 +10,3 @@ gdata_documents_document_get_thumbnail_uri gdata_tasks_task_get_type gdata_tasks_task_new -@@ -1087,8 +1084,6 @@ - gdata_freebase_topic_result_get_type - gdata_freebase_topic_result_new - gdata_freebase_topic_result_dup_object --gdata_freebase_result_error_get_type --gdata_freebase_result_error_quark - gdata_freebase_result_get_type - gdata_freebase_result_new - gdata_freebase_result_dup_variant diff --git a/mingw-w64-libgdata/PKGBUILD b/mingw-w64-libgdata/PKGBUILD index 7e84b459fa..a6d6a3963a 100644 --- a/mingw-w64-libgdata/PKGBUILD +++ b/mingw-w64-libgdata/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgdata pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.17.2 +pkgver=0.17.3 pkgrel=1 arch=('any') pkgdesc="Library for accessing GData webservices (mingw-w64)" @@ -31,9 +31,9 @@ source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_real 0001-give-cc-to-gir-scanner.all.patch 0002-symbols.patch 0003-wsock.patch) -sha256sums=('9b9b4f68bef86ee2926ea14f182baf7ddaa6717dd138b5ff670f07d126176fe0' +sha256sums=('ff280b031c50a99ed735c3fa18fbea9ae3e4cc5e3d7dd58ebae09994b01b513b' '2184839b01d19afebf10b8ca91c79682b834c9e812e0fdeb683c69b851689d1f' - '3f9d5f53a2d1be337686a83d3b33f111e294dcbc4f78ed1facbfb048f6c5973a' + 'be45b535d0d8cfb05d35ffb984b72de82130dea87e34a3a706ccc448397e102b' 'ed4c9c441ee3bf4a5279c5d212b2c1116ce443763151b71975611406310575df') prepare() { From 9acd84e36c6a770fa813867e6ff40c75eee7cf9e Mon Sep 17 00:00:00 2001 From: David Grayson Date: Thu, 24 Sep 2015 09:02:02 -0700 Subject: [PATCH 1652/2060] Adds mingw-w64-devcon-git. --- mingw-w64-devcon-git/.gitignore | 1 + mingw-w64-devcon-git/02-driverspecs.patch | 10 +++ .../03-stdcall-callback.patch | 11 +++ mingw-w64-devcon-git/PKGBUILD | 71 +++++++++++++++++++ 4 files changed, 93 insertions(+) create mode 100644 mingw-w64-devcon-git/.gitignore create mode 100644 mingw-w64-devcon-git/02-driverspecs.patch create mode 100644 mingw-w64-devcon-git/03-stdcall-callback.patch create mode 100644 mingw-w64-devcon-git/PKGBUILD diff --git a/mingw-w64-devcon-git/.gitignore b/mingw-w64-devcon-git/.gitignore new file mode 100644 index 0000000000..cdebe405b4 --- /dev/null +++ b/mingw-w64-devcon-git/.gitignore @@ -0,0 +1 @@ +/wds diff --git a/mingw-w64-devcon-git/02-driverspecs.patch b/mingw-w64-devcon-git/02-driverspecs.patch new file mode 100644 index 0000000000..324076279e --- /dev/null +++ b/mingw-w64-devcon-git/02-driverspecs.patch @@ -0,0 +1,10 @@ +--- orig/devcon.h 2015-08-28 13:09:16.053216200 -0400 ++++ new/devcon.h 2015-08-28 13:09:24.096011700 -0400 +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + + #include "msg.h" + #include "rc_ids.h" diff --git a/mingw-w64-devcon-git/03-stdcall-callback.patch b/mingw-w64-devcon-git/03-stdcall-callback.patch new file mode 100644 index 0000000000..f3f56e6ffa --- /dev/null +++ b/mingw-w64-devcon-git/03-stdcall-callback.patch @@ -0,0 +1,11 @@ +diff -u -r C++/dump.cpp C++fix/dump.cpp +--- C++/dump.cpp 2015-04-24 21:30:25.722776800 -0700 ++++ C++fix/dump.cpp 2015-04-24 21:30:23.851251500 -0700 +@@ -408,6 +408,7 @@ + } + + ++__attribute__((__stdcall__)) + UINT DumpDeviceDriversCallback(_In_ PVOID Context, _In_ UINT Notification, _In_ UINT_PTR Param1, _In_ UINT_PTR Param2) + /*++ + diff --git a/mingw-w64-devcon-git/PKGBUILD b/mingw-w64-devcon-git/PKGBUILD new file mode 100644 index 0000000000..bf3f97fb8c --- /dev/null +++ b/mingw-w64-devcon-git/PKGBUILD @@ -0,0 +1,71 @@ +# Maintainer: David Grayson +# +# You might need to run your shell as administrator for devcon to work. + +_realname=devcon +pkgbase=mingw-w64-${_realname}-git +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +provides="${MINGW_PACKAGE_PREFIX}-${_realname}" +conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=r35.818f6ee +pkgrel=1 +pkgdesc='Search for and manipulate devices (mingw-w64)' +arch=('any') +url='https://github.com/Microsoft/Windows-driver-samples/tree/master/setup/devcon' +license=('custom') +makedepends=( + "${MINGW_PACKAGE_PREFIX}-gcc" + 'patch' +) +depends=() +options=('strip') +source=( + "wds::git+https://github.com/Microsoft/Windows-driver-samples" + '02-driverspecs.patch' + '03-stdcall-callback.patch' +) + +sha256sums=('SKIP' + 'f0c0c941704e17d1c15c38458993bf8a4f92e04935a9fab3e6caba60694b2234' + '418eaa11f45d4756afe15da42bec4570f651cb62244f274d1fe00a6fc74614bd') + +pkgver() { + cd ${srcdir}/wds + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}/wds/setup/devcon" + + # dos2unix -q *.cpp *.h *.rc + + # Include driverspecs.h to get __drv_allocatesMem and similar. + patch -p1 -i "${srcdir}/02-driverspecs.patch" + + # SetupScanFileQueue expects its callback to be stdcall. + patch -p1 -i "${srcdir}/03-stdcall-callback.patch" + + windmc msg.mc +} + +build() { + cd "${srcdir}" + mkdir -p "build-${MINGW_CHOST}" + cd "build-${MINGW_CHOST}" + + windres ../wds/setup/devcon/devcon.rc rc.so + + g++ -municode -Wno-write-strings ${CFLAGS} ${LDFLAGS} \ + -DWIN32_LEAN_AND_MEAN=1 -DUNICODE -D_UNICODE \ + ../wds/setup/devcon/*.cpp rc.so \ + -lsetupapi -lole32 \ + -o devcon.exe +} + +package() { + cd "${srcdir}/wds" + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + cd "${srcdir}/build-${MINGW_CHOST}" + mkdir "${pkgdir}${MINGW_PREFIX}/bin" + install -Dm755 devcon.exe "${pkgdir}${MINGW_PREFIX}/bin" +} From dde0feab520d5e2f6453d65c6fc68ae9b7800ee7 Mon Sep 17 00:00:00 2001 From: David Grayson Date: Thu, 24 Sep 2015 23:18:24 -0700 Subject: [PATCH 1653/2060] usbview: Make sure mingw-w64's usb.h takes precedence over libusb-compat's. --- mingw-w64-usbview/PKGBUILD | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mingw-w64-usbview/PKGBUILD b/mingw-w64-usbview/PKGBUILD index 927b0ef5d2..d2dbb2a6b3 100644 --- a/mingw-w64-usbview/PKGBUILD +++ b/mingw-w64-usbview/PKGBUILD @@ -57,12 +57,16 @@ prepare() { build() { cd "${srcdir}" - mkdir -p "build-${MINGW_CHOST}" + mkdir -p "build-${MINGW_CHOST}/include" cd "build-${MINGW_CHOST}" + # Make sure mingw-w64's usb.h takes precedence over libusb-compat's. + cp ${MINGW_PREFIX}/${MINGW_CHOST}/include/usb.h include + windres ../C++/uvcview.rc rc.so gcc -mwindows --std=c99 ${CFLAGS} ${LDFLAGS} \ + -Iinclude \ -DNTDDI_VERSION=0x06020000 -D_WIN32_WINNT=0x0602 \ -DSTRSAFE_NO_DEPRECATE \ ../C++/*.c rc.so \ From 6c4d2de87e5b2418ba4edfd577b7d15a85daa211 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Sep 2015 12:18:30 +0300 Subject: [PATCH 1654/2060] Remove unneeded patches. Fix PKGBUILD's --- .../0001-msys2-fix-introspection-build.patch | 37 ------------------- mingw-w64-cogl/PKGBUILD | 4 +- mingw-w64-ghex/PKGBUILD | 1 + .../0001-give-cc-to-gir-scanner.all.patch | 10 ----- mingw-w64-libgdata/PKGBUILD | 3 -- .../0001-give-cc-to-gir-scanner.all.patch | 10 ----- mingw-w64-libgxps/PKGBUILD | 3 -- 7 files changed, 2 insertions(+), 66 deletions(-) delete mode 100644 mingw-w64-cogl/0001-msys2-fix-introspection-build.patch delete mode 100644 mingw-w64-libgdata/0001-give-cc-to-gir-scanner.all.patch delete mode 100644 mingw-w64-libgxps/0001-give-cc-to-gir-scanner.all.patch diff --git a/mingw-w64-cogl/0001-msys2-fix-introspection-build.patch b/mingw-w64-cogl/0001-msys2-fix-introspection-build.patch deleted file mode 100644 index 0d49544363..0000000000 --- a/mingw-w64-cogl/0001-msys2-fix-introspection-build.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 09200701eb59673b026c5d829d4bbeed8f5ef62a Mon Sep 17 00:00:00 2001 -From: Lubosz Sarnecki -Date: Sun, 3 Aug 2014 13:22:17 +0200 -Subject: [PATCH] msys2: fix introspection build - ---- - cogl-pango/Makefile.am | 1 + - cogl/Makefile.am | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/cogl-pango/Makefile.am b/cogl-pango/Makefile.am -index 64d9771..5358725 100644 ---- a/cogl-pango/Makefile.am -+++ b/cogl-pango/Makefile.am -@@ -96,6 +96,7 @@ DISTCLEANFILES += ../build/win32/vs9/cogl-pango.vcproj ../build/win32/vs10/cogl- - -include $(INTROSPECTION_MAKEFILE) - - INTROSPECTION_GIRS = -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - - if HAVE_INTROSPECTION - INTROSPECTION_COMPILER_ARGS=--includedir=$(top_builddir)/cogl -diff --git a/cogl/Makefile.am b/cogl/Makefile.am -index 62d3762..43ce89a 100644 ---- a/cogl/Makefile.am -+++ b/cogl/Makefile.am -@@ -667,6 +667,7 @@ DISTCLEANFILES += ../build/win32/vs9/cogl.vcproj ../build/win32/vs10/cogl.vcxpro - -include $(INTROSPECTION_MAKEFILE) - - INTROSPECTION_GIRS = -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - - if HAVE_INTROSPECTION - Cogl-1.0.gir: libcogl.la Makefile --- -2.0.4 - diff --git a/mingw-w64-cogl/PKGBUILD b/mingw-w64-cogl/PKGBUILD index c0322c8756..d0040d045b 100644 --- a/mingw-w64-cogl/PKGBUILD +++ b/mingw-w64-cogl/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Lubosz Sarnecki _realname=cogl +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.22.0 pkgrel=2 @@ -17,15 +18,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-pango" "${MINGW_PACKAGE_PREFIX}-gst-plugins-base") options=(!libtool strip staticlibs) source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz - "0001-msys2-fix-introspection-build.patch" "0002-windows-gl-headers.patch") md5sums=('ab684ec96848d79d22757fb3064820c8' - '66134daa1df08ebfa143b12c08f3290e' '8686270ab5eae668eae11e2606aa7ce0') prepare() { cd ${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0001-msys2-fix-introspection-build.patch patch -p1 -i ${srcdir}/0002-windows-gl-headers.patch autoreconf -fiv diff --git a/mingw-w64-ghex/PKGBUILD b/mingw-w64-ghex/PKGBUILD index 1db90cb408..f69310fa0f 100644 --- a/mingw-w64-ghex/PKGBUILD +++ b/mingw-w64-ghex/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Andrea Zagli _realname=ghex +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.18.0 pkgrel=1 diff --git a/mingw-w64-libgdata/0001-give-cc-to-gir-scanner.all.patch b/mingw-w64-libgdata/0001-give-cc-to-gir-scanner.all.patch deleted file mode 100644 index d05d903b54..0000000000 --- a/mingw-w64-libgdata/0001-give-cc-to-gir-scanner.all.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- libgdata-0.15.2/Makefile.am.orig 2014-06-22 14:53:43.996077200 +0400 -+++ libgdata-0.15.2/Makefile.am 2014-08-12 19:36:46.908800000 +0400 -@@ -545,6 +545,7 @@ - INTROSPECTION_GIRS = - INTROSPECTION_SCANNER_ARGS = --warn-all - INTROSPECTION_COMPILER_ARGS = -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - DISTCHECK_CONFIGURE_FLAGS += --enable-introspection - EXTRA_DIST += m4/introspection.m4 - diff --git a/mingw-w64-libgdata/PKGBUILD b/mingw-w64-libgdata/PKGBUILD index a6d6a3963a..fbe14fc15b 100644 --- a/mingw-w64-libgdata/PKGBUILD +++ b/mingw-w64-libgdata/PKGBUILD @@ -28,18 +28,15 @@ options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz - 0001-give-cc-to-gir-scanner.all.patch 0002-symbols.patch 0003-wsock.patch) sha256sums=('ff280b031c50a99ed735c3fa18fbea9ae3e4cc5e3d7dd58ebae09994b01b513b' - '2184839b01d19afebf10b8ca91c79682b834c9e812e0fdeb683c69b851689d1f' 'be45b535d0d8cfb05d35ffb984b72de82130dea87e34a3a706ccc448397e102b' 'ed4c9c441ee3bf4a5279c5d212b2c1116ce443763151b71975611406310575df') prepare() { cd ${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.all.patch patch -p1 -i ${srcdir}/0002-symbols.patch patch -p1 -i ${srcdir}/0003-wsock.patch diff --git a/mingw-w64-libgxps/0001-give-cc-to-gir-scanner.all.patch b/mingw-w64-libgxps/0001-give-cc-to-gir-scanner.all.patch deleted file mode 100644 index fb46a749a0..0000000000 --- a/mingw-w64-libgxps/0001-give-cc-to-gir-scanner.all.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- libgxps-0.2.2/libgxps/Makefile.am.orig 2011-11-19 16:44:03.000000000 +0400 -+++ libgxps-0.2.2/libgxps/Makefile.am 2014-08-07 23:06:42.482600000 +0400 -@@ -86,6 +86,7 @@ - INTROSPECTION_GIRS = - INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --warn-all --identifier-prefix=GXPS --symbol-prefix=gxps - INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - - if HAVE_INTROSPECTION - introspection_sources = $(filter-out $(NOINST_H_FILES) gxps-archive.c gxps-fonts.c gxps-images.c gxps-parse-utils.c gxps-version.h, $(libgxps_la_SOURCES)) diff --git a/mingw-w64-libgxps/PKGBUILD b/mingw-w64-libgxps/PKGBUILD index 4119f57702..139625af06 100644 --- a/mingw-w64-libgxps/PKGBUILD +++ b/mingw-w64-libgxps/PKGBUILD @@ -24,17 +24,14 @@ options=('strip' 'staticlibs') license=("LGPL 2.1") url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:3}/${_realname}-${pkgver}.tar.xz - 0001-give-cc-to-gir-scanner.all.patch 0002-missing-include.patch 0003-missing-cflags-libs.patch) sha256sums=('6ea5f0ed85665a4e6702e31e38b5f1b2e5ae4f3d316a55d7f1fb1799224b4127' - '93043f118701f0b668ca567875c3f6d4f3f1036680e76bc6f160b6263dd2d6c5' '85e7ce99a0286510f44dad9468faf991b4852f0e6e19c70842a4b38fc6f71919' '880cd116af31be5108a45d524b371058553c27504e8c1b513d13d021d1259dfc') prepare() { cd ${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.all.patch patch -p1 -i ${srcdir}/0002-missing-include.patch patch -p1 -i ${srcdir}/0003-missing-cflags-libs.patch From b70dff0b1398224dd75a8e12cccfc5f6a59c89cc Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Sep 2015 12:45:46 +0300 Subject: [PATCH 1655/2060] evince: Update to 3.18.0 --- mingw-w64-evince/0002-missing-include.patch | 10 ++++++++++ .../001-give-cc-to-gir-scanner.mingw.patch | 20 ------------------- mingw-w64-evince/PKGBUILD | 13 ++++++------ 3 files changed, 16 insertions(+), 27 deletions(-) create mode 100644 mingw-w64-evince/0002-missing-include.patch delete mode 100644 mingw-w64-evince/001-give-cc-to-gir-scanner.mingw.patch diff --git a/mingw-w64-evince/0002-missing-include.patch b/mingw-w64-evince/0002-missing-include.patch new file mode 100644 index 0000000000..f6247fb1ef --- /dev/null +++ b/mingw-w64-evince/0002-missing-include.patch @@ -0,0 +1,10 @@ +--- evince-3.18.0/backend/pdf/ev-poppler.cc.orig 2015-09-25 12:25:31.343557800 +0300 ++++ evince-3.18.0/backend/pdf/ev-poppler.cc 2015-09-25 12:25:48.411850800 +0300 +@@ -23,6 +23,7 @@ + + #include + #include ++#include + #include + #include + #include diff --git a/mingw-w64-evince/001-give-cc-to-gir-scanner.mingw.patch b/mingw-w64-evince/001-give-cc-to-gir-scanner.mingw.patch deleted file mode 100644 index 8e84a4824b..0000000000 --- a/mingw-w64-evince/001-give-cc-to-gir-scanner.mingw.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- evince-3.14.0/libdocument/Makefile.am.orig 2014-09-24 08:52:47.575000000 +0500 -+++ evince-3.14.0/libdocument/Makefile.am 2014-09-24 08:52:59.727400000 +0500 -@@ -167,6 +167,7 @@ - -I$(builddir) - EvinceDocument_@EV_API_VERSION_U@_gir_EXPORT_PACKAGES = evince-document-$(EV_API_VERSION) - INTROSPECTION_GIRS = EvinceDocument-$(EV_API_VERSION).gir -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - - girdir = $(datadir)/gir-1.0 - gir_DATA = EvinceDocument-$(EV_API_VERSION).gir ---- evince-3.14.0/libview/Makefile.am.orig 2014-09-24 08:53:51.044400000 +0500 -+++ evince-3.14.0/libview/Makefile.am 2014-09-24 08:54:11.090400000 +0500 -@@ -150,6 +150,7 @@ - --identifier-prefix=Ev \ - --symbol-prefix=ev - INTROSPECTION_GIRS = EvinceView-$(EV_API_VERSION).gir -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - - girdir = $(datadir)/gir-1.0 - gir_DATA = EvinceView-$(EV_API_VERSION).gir diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index 5287e7cfc4..ea10db87af 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -3,8 +3,8 @@ _realname=evince pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.1 -pkgrel=3 +pkgver=3.18.0 +pkgrel=1 arch=('any') pkgdesc="Document (PostScript, PDF) viewer (mingw-w64)" license=("GPL 2") @@ -33,14 +33,13 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "yelp-tools") install=evince-${CARCH}.install source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz - 001-give-cc-to-gir-scanner.mingw.patch) -sha256sums=('06ff75065b2a30cd588c402f6bd2ea88ee3166181805e0cc00bd54f71dbf6130' - '2b704ea359fd73fb6ee905868b4b61246bb143cf783d7f970425a5236daa0686') + 0002-missing-include.patch) +sha256sums=('96e8351f6a6fc5823bb8f51178cde1182bd66481af6fb09bf58a18b673cafa70' + 'd2850c4bdfa87fa56bae2674d2c798f9181bfb3f19319fbc9966672caae48237') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/001-give-cc-to-gir-scanner.mingw.patch - + patch -p1 -i ${srcdir}/0002-missing-include.patch AUTOPOINT='intltoolize --automake --copy' autoreconf -f -i } From 75d1c9d25fb901cf295f14a7054858202fee5e96 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Sep 2015 13:09:49 +0300 Subject: [PATCH 1656/2060] gedit: Update to 3.18.0 --- mingw-w64-gedit/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gedit/PKGBUILD b/mingw-w64-gedit/PKGBUILD index 61bf05bf6c..889577eb99 100644 --- a/mingw-w64-gedit/PKGBUILD +++ b/mingw-w64-gedit/PKGBUILD @@ -3,7 +3,7 @@ _realname=gedit pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.3 +pkgver=3.18.0 pkgrel=1 arch=('any') pkgdesc="A text editor for GNOME (mingw-w64)" @@ -27,7 +27,7 @@ license=("GPL") url="http://www.gnome.org" install=${_realname}-${CARCH}.install source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) -sha256sums=('c28df44a29ee5707441f89e94b513079d709111afec4bd4b079a1dff0242cdb2') +sha256sums=('9abd4f1478385f8b6c983298206f4ab1a25c682b9c87fb00d759b7db5b949533') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 109118fd475e9de7f09a0ec35c6ec054247f94ab Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Sep 2015 13:16:33 +0300 Subject: [PATCH 1657/2060] gdk-pixbuf2: Update to 2.32.0 --- mingw-w64-gdk-pixbuf2/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gdk-pixbuf2/PKGBUILD b/mingw-w64-gdk-pixbuf2/PKGBUILD index e8229594bd..9b77ca3152 100644 --- a/mingw-w64-gdk-pixbuf2/PKGBUILD +++ b/mingw-w64-gdk-pixbuf2/PKGBUILD @@ -4,7 +4,7 @@ _realname=gdk-pixbuf2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.31.6 +pkgver=2.32.0 pkgrel=1 pkgdesc="An image loading library (mingw-w64)" arch=('any') @@ -24,7 +24,7 @@ install=${_realname}-${CARCH}.install source=("http://download.gnome.org/sources/gdk-pixbuf/${pkgver%.*}/gdk-pixbuf-${pkgver}.tar.xz" 0001-Use-a-regex-to-properly-export-the-symbols.patch 0002-gdk-pixbuf-introspection.patch) -sha256sums=('111203d6f295d69d36e7190204248331cd37285130ac483becdedcd3f0135d18' +sha256sums=('537655ec3635740e949457bafe61ae44ce0e5642a2529a9ef7ee0bcd5e911b67' 'e8d278e30c44e973e14e3c61e8ab195621d6a9a402e0da557db4616955ca4543' 'c22ce6c4de87c9f6e8b18452a728e4677fac18d2b51d6e536db27160c368f0c6') From 02be6422115a7156d369ea4381a0fa50692a8c01 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Sep 2015 13:44:03 +0300 Subject: [PATCH 1658/2060] clutter: Remove unneeded patch. --- ...02-msys2-add-CC-flags-to-gir-scanner.patch | 24 ------------------- mingw-w64-clutter/PKGBUILD | 8 +++---- 2 files changed, 3 insertions(+), 29 deletions(-) delete mode 100644 mingw-w64-clutter/0002-msys2-add-CC-flags-to-gir-scanner.patch diff --git a/mingw-w64-clutter/0002-msys2-add-CC-flags-to-gir-scanner.patch b/mingw-w64-clutter/0002-msys2-add-CC-flags-to-gir-scanner.patch deleted file mode 100644 index 3efaa359da..0000000000 --- a/mingw-w64-clutter/0002-msys2-add-CC-flags-to-gir-scanner.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 47586605368ef89502c4cdee2d8a58e8d87becb7 Mon Sep 17 00:00:00 2001 -From: Lubosz Sarnecki -Date: Sun, 3 Aug 2014 14:47:26 +0200 -Subject: [PATCH 2/2] msys2: add CC flags to gir-scanner - ---- - clutter/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/clutter/Makefile.am b/clutter/Makefile.am -index a48010b..e23021c 100644 ---- a/clutter/Makefile.am -+++ b/clutter/Makefile.am -@@ -977,6 +977,7 @@ Clutter_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \ - --pkg-export=clutter-@CLUTTER_API_VERSION@ - - INTROSPECTION_GIRS += Clutter-@CLUTTER_API_VERSION@.gir -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - - Cally-@CLUTTER_API_VERSION@.gir: Makefile Clutter-@CLUTTER_API_VERSION@.gir - --- -2.0.4 - diff --git a/mingw-w64-clutter/PKGBUILD b/mingw-w64-clutter/PKGBUILD index 45e670078c..7ca2ad70db 100644 --- a/mingw-w64-clutter/PKGBUILD +++ b/mingw-w64-clutter/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Lubosz Sarnecki _realname=clutter +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.24.0 pkgrel=1 @@ -19,16 +20,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-atk" options=(!libtool strip staticlibs) source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz #"git://git.gnome.org/$_realname#tag=${pkgver}" - "0001-msys2-add-header-for-BOOL-defintion.patch" - "0002-msys2-add-CC-flags-to-gir-scanner.patch") + "0001-msys2-add-header-for-BOOL-defintion.patch") md5sums=('578546c09b5679aa2623660744dbad2f' - '3a92db8341129b0db058d47f97062f65' - '993eabbeb6fa31af855a593956727e6f') + '3a92db8341129b0db058d47f97062f65') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/0001-msys2-add-header-for-BOOL-defintion.patch - patch -p1 -i ${srcdir}/0002-msys2-add-CC-flags-to-gir-scanner.patch autoreconf -fvi #NOCONFIGURE=1 ./autogen.sh } From 275d2be0a969822ccef822d60c1c4ff53a0cbffa Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Sep 2015 13:44:20 +0300 Subject: [PATCH 1659/2060] clutter-gtk: Update to 1.6.4 --- .../0002-msys-fix-introspection-build.patch | 7 ------- mingw-w64-clutter-gtk/PKGBUILD | 7 ++++--- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/mingw-w64-clutter-gtk/0002-msys-fix-introspection-build.patch b/mingw-w64-clutter-gtk/0002-msys-fix-introspection-build.patch index 97b4bd0c94..48e10689d4 100644 --- a/mingw-w64-clutter-gtk/0002-msys-fix-introspection-build.patch +++ b/mingw-w64-clutter-gtk/0002-msys-fix-introspection-build.patch @@ -11,13 +11,6 @@ diff --git a/clutter-gtk/Makefile.am b/clutter-gtk/Makefile.am index e9e4616..da41d0d 100644 --- a/clutter-gtk/Makefile.am +++ b/clutter-gtk/Makefile.am -@@ -65,6 +65,7 @@ EXTRA_DIST += gtk-clutter-version.h.in - -include $(INTROSPECTION_MAKEFILE) - - INTROSPECTION_GIRS = -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - - if HAVE_INTROSPECTION GtkClutter-@CLUTTER_GTK_API_VERSION@.gir: libclutter-gtk-@CLUTTER_GTK_API_VERSION@.la Makefile @@ -73,7 +74,9 @@ GtkClutter_@CLUTTER_GTK_API_VERSION_AM@_gir_SCANNERFLAGS = \ --identifier-prefix=GtkClutter \ diff --git a/mingw-w64-clutter-gtk/PKGBUILD b/mingw-w64-clutter-gtk/PKGBUILD index 049eb6e09b..6fd9f73777 100644 --- a/mingw-w64-clutter-gtk/PKGBUILD +++ b/mingw-w64-clutter-gtk/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Lubosz Sarnecki _realname=clutter-gtk +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.2 +pkgver=1.6.4 pkgrel=1 pkgdesc="Clutter integration with GTK+ (mingw-w64)" arch=('any') @@ -15,8 +16,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" options=(!libtool strip staticlibs) source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz "0002-msys-fix-introspection-build.patch") -md5sums=('557d814c3e70cc3a2d1cf3816919b14f' - '4b892afaf561ac2503962d238770f967') +md5sums=('ac3e9ce568c824764742788e1c5c4cbb' + 'ab881e17cbef38b2aa05c4f0b88d4358') prepare() { cd ${_realname}-${pkgver} From 1ab2337717ec78fc318a9376c43acb29995f8603 Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Sat, 26 Sep 2015 19:10:16 +0300 Subject: [PATCH 1660/2060] mbedtls: Enable SSE2 and threading support via pthread. Also disable zlib support because it is not used, because TLS compression is unsafe (CRIME). Remove dummy error reporting function. --- mingw-w64-mbedtls/PKGBUILD | 13 +++---- mingw-w64-mbedtls/enable-features.patch | 47 +++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-mbedtls/enable-features.patch diff --git a/mingw-w64-mbedtls/PKGBUILD b/mingw-w64-mbedtls/PKGBUILD index 6a5385467a..6d61b2b7a0 100644 --- a/mingw-w64-mbedtls/PKGBUILD +++ b/mingw-w64-mbedtls/PKGBUILD @@ -4,12 +4,11 @@ _realname=mbedtls pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.1 -pkgrel=1 +pkgrel=2 arch=('any') url='https://tls.mbed.org/' pkgdesc='mbed TLS is an open source and commercial SSL library licensed by ARM Limited. (mingw-w64)' -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-zlib") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-doxygen") @@ -18,15 +17,18 @@ license=('Apache License 2.0') options=('strip' 'staticlibs' 'docs') source=(${_realname}-${pkgver}.tar.gz::"https://tls.mbed.org/download/mbedtls-${pkgver}-apache.tgz" 'symlink-test.patch' - 'dll-location.patch') + 'dll-location.patch' + 'enable-features.patch') sha1sums=('f4348b730a8731f5ed2bacb458ffa053798cc5ff' '72e420d5676007a168a82210dba960bea4e29190' - 'e905d99cacf3b3d91872e8736ff03ef950b32a34') + 'e905d99cacf3b3d91872e8736ff03ef950b32a34' + '9ce57bb1e9dd0298454b48faa0f1b5317d245cdb') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i "${srcdir}/symlink-test.patch" patch -p1 -i "${srcdir}/dll-location.patch" + patch -p1 -i "${srcdir}/enable-features.patch" } build() { @@ -50,7 +52,6 @@ build() { -DCMAKE_C_COMPILER=${MINGW_CHOST}-gcc \ -DENABLE_TESTING=ON \ -DENABLE_PROGRAMS=OFF \ - -DENABLE_ZLIB_SUPPORT=ON \ -DUSE_SHARED_MBEDTLS_LIBRARY=ON \ -DUSE_STATIC_MBEDTLS_LIBRARY=ON \ ../${_realname}-${pkgver} diff --git a/mingw-w64-mbedtls/enable-features.patch b/mingw-w64-mbedtls/enable-features.patch new file mode 100644 index 0000000000..7789c99b9e --- /dev/null +++ b/mingw-w64-mbedtls/enable-features.patch @@ -0,0 +1,47 @@ +--- mbedtls-2.1.1/include/mbedtls/config.h.orig 2015-09-26 18:53:50.950970200 +0300 ++++ mbedtls-2.1.1/include/mbedtls/config.h 2015-09-26 19:01:45.088633900 +0300 +@@ -63,7 +63,7 @@ + * + * Uncomment if the CPU supports SSE2 (IA-32 specific). + */ +-//#define MBEDTLS_HAVE_SSE2 ++#define MBEDTLS_HAVE_SSE2 + + /** + * \def MBEDTLS_HAVE_TIME +@@ -170,7 +170,7 @@ + * + * Uncomment to get warnings on using deprecated functions. + */ +-//#define MBEDTLS_DEPRECATED_WARNING ++#define MBEDTLS_DEPRECATED_WARNING + + /** + * \def MBEDTLS_DEPRECATED_REMOVED +@@ -721,7 +721,7 @@ + * Disable if you run into name conflicts and want to really remove the + * mbedtls_strerror() + */ +-#define MBEDTLS_ERROR_STRERROR_DUMMY ++//#define MBEDTLS_ERROR_STRERROR_DUMMY + + /** + * \def MBEDTLS_GENPRIME +@@ -1215,7 +1215,7 @@ + * + * Uncomment this to enable pthread mutexes. + */ +-//#define MBEDTLS_THREADING_PTHREAD ++#define MBEDTLS_THREADING_PTHREAD + + /** + * \def MBEDTLS_VERSION_FEATURES +@@ -2208,7 +2208,7 @@ + * + * Enable this layer to allow use of mutexes within mbed TLS + */ +-//#define MBEDTLS_THREADING_C ++#define MBEDTLS_THREADING_C + + /** + * \def MBEDTLS_TIMING_C From e45946b12b77d097da6ada4e9cded7b41f3c110a Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Tue, 29 Sep 2015 10:18:22 +0200 Subject: [PATCH 1661/2060] eog-plugins: updated to 3.16.2. --- mingw-w64-eog-plugins/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-eog-plugins/PKGBUILD b/mingw-w64-eog-plugins/PKGBUILD index 10e32cb5d4..613c790e93 100644 --- a/mingw-w64-eog-plugins/PKGBUILD +++ b/mingw-w64-eog-plugins/PKGBUILD @@ -3,7 +3,7 @@ _realname=eog-plugins pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.1 +pkgver=3.16.2 pkgrel=1 arch=('any') pkgdesc="Eye of GNOME graphics viewer program - plugins (mingw-w64)" @@ -22,14 +22,14 @@ install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch 002-champlain.patch) -sha256sums=('c586b6708064dcd03612f9373a6160214b2fa4797bf8c07db530b18eda4074d9' +sha256sums=('f33de3c78d6a7d8a89441daa9c3e49e043dcdc527b0b7d477f0bf2d3af08e534' '7b5a599b0fb719156747627944cae4b1107ffb8f11bcaddf0c8100d89c93548d' '3b7fab068ff3739fed247f72abbc18accb409b9008593e806f5c4e3df1d9b32d') prepare() { cd "${srcdir}"/${_realname}-${pkgver} - patch -b -V simple -p1 -i ${srcdir}/001-win.patch + patch -p1 -i ${srcdir}/001-win.patch patch -p1 -i ${srcdir}/002-champlain.patch autoreconf -isf From 696b84d68a0717b48131504262843d2e921158e2 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Tue, 29 Sep 2015 10:31:07 +0200 Subject: [PATCH 1662/2060] gdk-pixbuf: updated to 2.32.1. --- mingw-w64-gdk-pixbuf2/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gdk-pixbuf2/PKGBUILD b/mingw-w64-gdk-pixbuf2/PKGBUILD index 9b77ca3152..1b9d45683d 100644 --- a/mingw-w64-gdk-pixbuf2/PKGBUILD +++ b/mingw-w64-gdk-pixbuf2/PKGBUILD @@ -4,7 +4,7 @@ _realname=gdk-pixbuf2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.32.0 +pkgver=2.32.1 pkgrel=1 pkgdesc="An image loading library (mingw-w64)" arch=('any') @@ -24,7 +24,7 @@ install=${_realname}-${CARCH}.install source=("http://download.gnome.org/sources/gdk-pixbuf/${pkgver%.*}/gdk-pixbuf-${pkgver}.tar.xz" 0001-Use-a-regex-to-properly-export-the-symbols.patch 0002-gdk-pixbuf-introspection.patch) -sha256sums=('537655ec3635740e949457bafe61ae44ce0e5642a2529a9ef7ee0bcd5e911b67' +sha256sums=('4432b74f25538c7d6bcb3ca51adabdd666168955f25812a2568dc9637697f3bc' 'e8d278e30c44e973e14e3c61e8ab195621d6a9a402e0da557db4616955ca4543' 'c22ce6c4de87c9f6e8b18452a728e4677fac18d2b51d6e536db27160c368f0c6') From 3d8415f93bdf76bb486fc9e8bbc5b0ed92c7bce9 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Tue, 29 Sep 2015 09:44:50 +0000 Subject: [PATCH 1663/2060] curl: fix NTLM proxy when reusing connection Under certain circumstances, an NTLM proxy connection will be reused. If that is the case, the state of the authentication needs to be handled properly. There is a bug in cURL 7.44.0 that has been fixed in cURL's `master` already (https://github.com/bagder/curl/commit/f65e07ca5) and this patch backports it. This fixes https://github.com/git-for-windows/git/issues/373 Signed-off-by: Johannes Schindelin --- ...h-done-when-using-a-fresh-connection.patch | 33 +++++++++++++++++++ mingw-w64-curl/PKGBUILD | 9 +++-- 2 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-curl/0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch diff --git a/mingw-w64-curl/0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch b/mingw-w64-curl/0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch new file mode 100644 index 0000000000..87b7b5d2d7 --- /dev/null +++ b/mingw-w64-curl/0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch @@ -0,0 +1,33 @@ +From f65e07ca5930a27a54fe96e99e838f6c85c5356b Mon Sep 17 00:00:00 2001 +From: Isaac Boukris +Date: Wed, 16 Sep 2015 03:52:36 +0300 +Subject: [PATCH] NTLM: Reset auth-done when using a fresh connection + +With NTLM a new connection will always require authentication. +Fixes #435 +--- + lib/url.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/lib/url.c b/lib/url.c +index dccd710..f056b16 100644 +--- a/lib/url.c ++++ b/lib/url.c +@@ -5839,12 +5839,14 @@ static CURLcode create_conn(struct SessionHandle *data, + data->state.authhost.done) { + infof(data, "NTLM picked AND auth done set, clear picked!\n"); + data->state.authhost.picked = CURLAUTH_NONE; ++ data->state.authhost.done = FALSE; + } + + if((data->state.authproxy.picked & (CURLAUTH_NTLM | CURLAUTH_NTLM_WB)) && + data->state.authproxy.done) { + infof(data, "NTLM-proxy picked AND auth done set, clear picked!\n"); + data->state.authproxy.picked = CURLAUTH_NONE; ++ data->state.authproxy.done = FALSE; + } + #endif + } +-- +2.5.3.windows.1.2.gcb92cc1 + diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 88b9d384ec..4b4ea2dc72 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -7,7 +7,7 @@ _realname=curl pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=7.44.0 -pkgrel=2 +pkgrel=3 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" @@ -30,12 +30,14 @@ options=('staticlibs') source=("$url/download/${_realname}-${pkgver}.tar.bz2"{,.asc} "0001-curl-relocation.patch" "0002-curl-mingw-enable-static.patch" - "0003-curl-detect-ipv6-on-windows.patch") + "0003-curl-detect-ipv6-on-windows.patch" + "0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch") md5sums=('6b952ca00e5473b16a11f05f06aa8dae' 'SKIP' '58520051c4ed77781d233c3fa40a5435' 'eac9e212e619490966ae47004bec547b' - 'f1c5b8648af0dfab7bde4d68a6b65f25') + 'f1c5b8648af0dfab7bde4d68a6b65f25' + '1e42a032267f66041a117df4dcd1cf1f') validpgpkeys=('914C533DF9B2ADA2204F586D78E11C6B279D5C91') # Daniel Stenberg prepare() { @@ -44,6 +46,7 @@ prepare() { patch -p1 -i "${srcdir}/0001-curl-relocation.patch" patch -p1 -i "${srcdir}/0002-curl-mingw-enable-static.patch" patch -p1 -i "${srcdir}/0003-curl-detect-ipv6-on-windows.patch" + patch -p1 -i "${srcdir}/0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch" autoreconf -vfi } From e68b9efb73eb84fba180be9dbee5727115e90d45 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Thu, 1 Oct 2015 15:11:36 +0200 Subject: [PATCH 1664/2060] antiword: fix multi-arch build We need to `make clean` after x86_64 to be able to build i686. Signed-off-by: Johannes Schindelin --- mingw-w64-antiword/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-antiword/PKGBUILD b/mingw-w64-antiword/PKGBUILD index 3219971d27..b9c937f8e7 100644 --- a/mingw-w64-antiword/PKGBUILD +++ b/mingw-w64-antiword/PKGBUILD @@ -21,6 +21,7 @@ prepare(){ build() { cd "${srcdir}/${_realname}-${pkgver}" + make -f Makefile.Linux clean make -f Makefile.Linux ${_realname} } From 9919be39ad72aae2fb3ed9d12278079042c469ac Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Thu, 1 Oct 2015 15:03:07 +0200 Subject: [PATCH 1665/2060] antiword: make it relocatable Previously, antiword assumed that its resource files live in the directory `/usr/share/antiword/`. This is most likely not true with MSys2, so let's teach it to find the goods relative to the antiword.exe that was called. This fixes https://github.com/git-for-windows/git/issues/453 Signed-off-by: Johannes Schindelin --- ...-antiword.exe-relocatable-on-Windows.patch | 144 ++++++++++++++++++ mingw-w64-antiword/PKGBUILD | 10 +- 2 files changed, 151 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-antiword/0001-Make-antiword.exe-relocatable-on-Windows.patch diff --git a/mingw-w64-antiword/0001-Make-antiword.exe-relocatable-on-Windows.patch b/mingw-w64-antiword/0001-Make-antiword.exe-relocatable-on-Windows.patch new file mode 100644 index 0000000000..3a66e4b23c --- /dev/null +++ b/mingw-w64-antiword/0001-Make-antiword.exe-relocatable-on-Windows.patch @@ -0,0 +1,144 @@ +From 80bde3fbfa74a884b71e6900b9b0be79fbbce35b Mon Sep 17 00:00:00 2001 +From: Johannes Schindelin +Date: Thu, 1 Oct 2015 14:59:12 +0200 +Subject: [PATCH] Make antiword.exe relocatable on Windows + +This change allows antiword to find its resource files relative to the +executable file: it is expected to live in `/bin/antiword.exe` +and the resource files will be found in `/share/antiword/`. + +Signed-off-by: Johannes Schindelin +--- + antiword.h | 1 + + fonts_u.c | 2 +- + misc.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + options.c | 17 +++-------------- + 4 files changed, 68 insertions(+), 15 deletions(-) + +diff --git a/antiword.h b/antiword.h +index 3f4aad5..d24b640 100644 +--- a/antiword.h ++++ b/antiword.h +@@ -454,6 +454,7 @@ extern BOOL bAllZero(const UCHAR *, size_t); + extern BOOL bGetNormalizedCodeset(char *, size_t, BOOL *); + extern const char *szGetDefaultMappingFile(void); + extern time_t tConvertDTTM(ULONG); ++extern FILE *fOpenResource(const char *szFilename, const char *szSuffix); + /* notes.c */ + extern void vDestroyNotesInfoLists(void); + extern void vGetNotesInfo(FILE *, const pps_info_type *, +diff --git a/fonts_u.c b/fonts_u.c +index a99f7d2..280a7f2 100644 +--- a/fonts_u.c ++++ b/fonts_u.c +@@ -78,7 +78,7 @@ pOpenFontTableFile(void) + szGlobalFile = GLOBAL_ANTIWORD_DIR FILE_SEPARATOR FONTNAMES_FILE; + DBG_MSG(szGlobalFile); + +- pFile = fopen(szGlobalFile, "r"); ++ pFile = fOpenResource(FONTNAMES_FILE, "r"); + if (pFile != NULL) { + return pFile; + } +diff --git a/misc.c b/misc.c +index 609a2f0..a9610d0 100644 +--- a/misc.c ++++ b/misc.c +@@ -892,3 +892,66 @@ tConvertDTTM(ULONG ulDTTM) + NO_DBG_MSG(ctime(&tResult)); + return tResult; + } /* end of tConvertDTTM */ ++ ++#ifdef __MINGW64_VERSION_MAJOR ++#define WIN32_LEAN_AND_MEAN ++#include ++#endif ++ ++/* ++ * Opens an Antiword resource file ++ * ++ * returns the handle for the file, or NULL ++ */ ++FILE ++*fOpenResource(const char *szFilename, const char *szSuffix) ++{ ++#ifndef __MINGW64_VERSION_MAJOR ++ static char szPath[PATH_MAX+1]; ++ ++ snprintf(szPath, sizeof(szPath), ++ GLOBAL_ANTIWORD_DIR FILE_SEPARATOR "%s%s", ++ szFilename, szSuffix ? szSuffix : ""); ++#else ++ static char szPath[32768]; ++ static size_t tPrefixLen = (size_t)-1; ++ ++ if (tPrefixLen == (size_t)-1) { ++ tPrefixLen = (size_t) ++ GetModuleFileName(NULL, szPath, sizeof(szPath)); ++ if (tPrefixLen && tPrefixLen < sizeof(szPath)) { ++ const char *dir = GLOBAL_ANTIWORD_DIR; ++ ++ /* Strip suffix `antiword.exe` */ ++ while (tPrefixLen > 0 && szPath[tPrefixLen-1] != '\\') { ++ tPrefixLen--; ++ } ++ /* Strip `bin/` directory */ ++ if (tPrefixLen > 5 && !memcmp(szPath+(tPrefixLen-5), ++ "\\bin\\",5)) { ++ tPrefixLen -= 4; ++ } ++ /* Append GLOBAL_ANTIWORD_DIR, skipping /usr/ or / */ ++ if (*dir && *dir == '/') { ++ dir++; ++ if (!memcmp(dir, "usr/", 4)) ++ dir += 4; ++ } ++ while (*dir && tPrefixLen < sizeof(szPath)-1) { ++ char c = *(dir++); ++ szPath[tPrefixLen++] = c == '/' ? '\\' : c; ++ } ++ /* Make sure the prefix ends in a file separator */ ++ if (tPrefixLen && tPrefixLen < sizeof(szPath)-1 && ++ szPath[tPrefixLen-1] != '\\') { ++ szPath[tPrefixLen++] = '\\'; ++ } ++ szPath[tPrefixLen]='\0'; ++ } ++ } ++ ++ snprintf(szPath + tPrefixLen, sizeof(szPath) - tPrefixLen, ++ "%s%s", szFilename, szSuffix ? szSuffix : ""); ++#endif ++ return fopen(szPath, "r"); ++} /* end of fOpenResource */ +diff --git a/options.c b/options.c +index 8379fef..dd6ced9 100644 +--- a/options.c ++++ b/options.c +@@ -236,20 +236,9 @@ pOpenCharacterMappingFile(const char *szLeafname) + } + + /* Try the global version of the mapping file */ +- if (tFilenameLen < +- sizeof(szMappingFile) - +- sizeof(GLOBAL_ANTIWORD_DIR) - +- sizeof(FILE_SEPARATOR)) { +- sprintf(szMappingFile, +- GLOBAL_ANTIWORD_DIR FILE_SEPARATOR "%s%s", +- szLeafname, szSuffix); +- DBG_MSG(szMappingFile); +- pFile = fopen(szMappingFile, "r"); +- if (pFile != NULL) { +- return pFile; +- } +- } else { +- werr(0, "Global mappingfilename too long, ignored"); ++ pFile = fOpenResource(szLeafname, szSuffix); ++ if (pFile != NULL) { ++ return pFile; + } + werr(0, "I can't open your mapping file (%s%s)\n" + "It is not in '%s" FILE_SEPARATOR ANTIWORD_DIR "' nor in '" +-- +2.5.3.windows.1 + diff --git a/mingw-w64-antiword/PKGBUILD b/mingw-w64-antiword/PKGBUILD index b9c937f8e7..eb745d6848 100644 --- a/mingw-w64-antiword/PKGBUILD +++ b/mingw-w64-antiword/PKGBUILD @@ -4,19 +4,23 @@ _realname=antiword pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=0.37 -pkgrel=1 +pkgrel=2 pkgdesc="Convert MS Word 2.0-2003 documents to plain text or PostScript (mingw-w64)" arch=('any') license=('GPL3+') url="http://www.winfield.demon.nl/" options=('strip') -source=("http://www.winfield.demon.nl/linux/${_realname}-${pkgver}.tar.gz") -md5sums=('f868e2a269edcbc06bf77e89a55898d1') +source=("http://www.winfield.demon.nl/linux/${_realname}-${pkgver}.tar.gz" + "0001-Make-antiword.exe-relocatable-on-Windows.patch") +md5sums=('f868e2a269edcbc06bf77e89a55898d1' + 'db9a6ceb7df5b16bcfe00fe856205d86') provides=("${_realname}") noextract=("${_realname}-${pkgver}.tar.gz") prepare(){ tar xzf "${_realname}-${pkgver}.tar.gz" || tar xzf "${_realname}-${pkgver}.tar.gz" + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i "${srcdir}/0001-Make-antiword.exe-relocatable-on-Windows.patch" } build() { From 3cf02f8599abd3d428fa8c688bf020aae3973db8 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 2 Oct 2015 18:00:51 +0100 Subject: [PATCH 1666/2060] firefox: Don't redefine MFVideoFormat_VPn0 --- ...3-MinGW-w64-Disable-TabletMode-stuff.patch | 4 +-- ...w64-Dont-redefine-MFVideoFormat_VPn0.patch | 19 ++++++++++++++ mingw-w64-firefox/PKGBUILD | 25 ++++++++++++++++--- 3 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-firefox/0021-MinGW-w64-Dont-redefine-MFVideoFormat_VPn0.patch diff --git a/mingw-w64-firefox/0013-MinGW-w64-Disable-TabletMode-stuff.patch b/mingw-w64-firefox/0013-MinGW-w64-Disable-TabletMode-stuff.patch index 89d03154d4..c3a989c5b8 100644 --- a/mingw-w64-firefox/0013-MinGW-w64-Disable-TabletMode-stuff.patch +++ b/mingw-w64-firefox/0013-MinGW-w64-Disable-TabletMode-stuff.patch @@ -4,7 +4,7 @@ #include "nsString.h" #include "nsIWidget.h" -+#if defined(__MINGW32_MAJOR_VERSION) ++#if defined(__MINGW64_VERSION_MAJOR) +/* MinGW-w64 doesn't have support for this WRL stuff yet: + https://msdn.microsoft.com/en-us/library/hh438466(v=vs.110).aspx */ + @@ -46,4 +46,4 @@ return NS_OK; } -+#endif /* defined(__MINGW32_MAJOR_VERSION) */ ++#endif /* defined(__MINGW64_VERSION_MAJOR) */ diff --git a/mingw-w64-firefox/0021-MinGW-w64-Dont-redefine-MFVideoFormat_VPn0.patch b/mingw-w64-firefox/0021-MinGW-w64-Dont-redefine-MFVideoFormat_VPn0.patch new file mode 100644 index 0000000000..59c0a504ae --- /dev/null +++ b/mingw-w64-firefox/0021-MinGW-w64-Dont-redefine-MFVideoFormat_VPn0.patch @@ -0,0 +1,19 @@ +--- firefox-41.0.1/dom/media/platforms/wmf/WMFVideoMFTManager.cpp.orig 2015-09-29 22:45:02.000000000 +0100 ++++ firefox-41.0.1/dom/media/platforms/wmf/WMFVideoMFTManager.cpp 2015-10-02 11:17:05.962703900 +0100 +@@ -30,6 +30,8 @@ + using mozilla::layers::LayerManager; + using mozilla::layers::LayersBackend; + ++/* MinGW-w64's mfapi.h defines these already. */ ++#if !defined(__MINGW64_VERSION_MAJOR) + const GUID MFVideoFormat_VP80 = + { + 0x30385056, +@@ -45,6 +47,7 @@ + 0x0010, + {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} + }; ++#endif /* !defined(__MINGW64_VERSION_MAJOR) */ + + const CLSID CLSID_WebmMfVp8Dec = + { diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index e3f700c632..292fb231fb 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -77,7 +77,7 @@ path_conv_for_make() { _realname=firefox pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=41.0b6 +pkgver=41.0.1 pkgrel=1 pkgdesc='Mozilla Firefox (mingw-w64)' groups=("${MINGW_PACKAGE_PREFIX}") @@ -112,13 +112,14 @@ source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/ "0018-MSYS2-Allow-make-install.patch" "0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch" "0020-gmp-clearkey-include-atomic-header.patch" + "0021-MinGW-w64-Dont-redefine-MFVideoFormat_VPn0.patch" "debugging.patch" "mozconfig.x86_64" "mozconfig.i686" "config.sub" "config.guess") noextract=("${_realname}-${pkgver}.source.tar.xz") -sha1sums=('6b4c0d3a9a228b43d9682d57f74a1132f92dd329' +sha1sums=('4f6bf34b7b286e033f401d7d4112ec6310577aae' '6c018e4ac903180f5f65492241502842dc1c035a' 'c4e841bf724a1ff907592c8a11ba9683568acfd5' '1c0810fbfd6f336eec81e236c89c6c9ca0e79290' @@ -133,7 +134,7 @@ sha1sums=('6b4c0d3a9a228b43d9682d57f74a1132f92dd329' '12385ab4cb659f712f3a3a93248741d299048b9c' '4553ac6631d56bc251ffd6cbc503002c6835c9de' 'de9fb13afd011710349c868f2bd60f3508986905' - '543812a70510a08cf16af2e86d2e0fb79af26c14' + '1da4ea7929176f545f9f20e00109d93bc9c4fd12' '7e36fe8fcca2730cf55a2703b50d998b93af3b7e' '7dcb0ea5e54ffb08cc9afa495b13e42d058ecbbd' 'bacec1492cb54096f7483b192918050e7cb1de1d' @@ -141,6 +142,7 @@ sha1sums=('6b4c0d3a9a228b43d9682d57f74a1132f92dd329' 'e939e9722fd0cb70a7bd5e705b37bd47045e9647' '20a6613a688c2e7cb95a6faae49974e452dba8de' '7f23896aeca52cd7bd3a038c5b5fd4eb68c90923' + '6d8c68944d14f04948dc31a558cc7a2d25e9df12' 'c2a0ed20a82d212bb4aa84cb2f294be3ba0bb859' '02befff9986a31bbc4ad74a8c0125e84f29fcb40' '9f4a4161fd23ba603c3e8140b322e732a46efffc' @@ -193,6 +195,7 @@ prepare() { patch -p1 -i "${srcdir}"/0018-MSYS2-Allow-make-install.patch patch -p1 -i "${srcdir}"/0019-Bug-id-1163452-MSYS2-Dont-MOZ_ASSERT-when-stdout-is-same-as-stderr.patch patch -p1 -i "${srcdir}"/0020-gmp-clearkey-include-atomic-header.patch + patch -p1 -i "${srcdir}"/0021-MinGW-w64-Dont-redefine-MFVideoFormat_VPn0.patch # patch -p1 -i "${srcdir}"/debugging.patch find . -name config.sub -exec cp "${srcdir}"/config.sub {} \; @@ -278,3 +281,19 @@ package() { # ArchLinux uses (but this fails on MSYS2): # "${_make}" -k -C ${PWD}/${_builddir} DESTDIR="${pkgdir}" INSTALL_SDK= install -k } + +# Trying to figure out why I'm not getting debugging info in xul.dll: +# (do_main in firefox-41.0.1/browser/app/nsBrowserApp.cpp is the last thing with debug info) +# Crash happens in firefox-41.0.1/js/src/jit/BaselineJIT.cpp .. in .. firefox-41.0.1/obj-i686-w64-mingw32/js/src/Unified_cpp_js_src3.cpp .. in .. libjs_static.a +# c++ -mwindows -o nsBrowserApp.o -c -DFIREFOX_ICO='"../../dist/branding/firefox.ico"' -DDOCUMENT_ICO='"../../dist/branding/document.ico"' -DNEWWINDOW_ICO='"../../dist/branding/newwindow.ico"' -DNEWTAB_ICO='"../../dist/branding/newtab.ico"' -DPBMODE_ICO='"../../dist/branding/pbmode.ico"' -DXPCOM_GLUE -DAPP_VERSION='41.0.1' -DMOZ_PHOENIX -DAB_CD=en-US -DNO_NSPR_10_SUPPORT -IE:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/browser/app -I. -IE:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/obj-i686-w64-mingw32/build -IE:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/toolkit/xre -IE:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/xpcom/base -IE:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/xpcom/build -I../../dist/include -IE:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/obj-i686-w64-mingw32/dist/include/nspr -IE:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/obj-i686-w64-mingw32/dist/include/nss -D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -DMOZILLA_CLIENT -include ../../mozilla-config.h -MD -MP -MF .deps/nsBrowserApp.o.pp -D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -Wall -Wempty-body -Woverloaded-virtual -Wsign-compare -Wwrite-strings -Wno-invalid-offsetof -Wcast-align -Wno-format -march=i686 -mtune=generic -O2 -pipe -ggdb -Og -ggdb -Og -fno-exceptions -fno-strict-aliasing -mms-bitfields -mstackrealign -fno-keep-inline-dllexport -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -DDEBUG -DTRACING -g -fno-omit-frame-pointer E:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/browser/app/nsBrowserApp.cpp +# E:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/obj-i686-w64-mingw32/_virtualenv/bin/python.exe E:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/config/expandlibs_exec.py --uselist -- c++ -mwindows -o firefox.exe -D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -Wall -Wempty-body -Woverloaded-virtual -Wsign-compare -Wwrite-strings -Wno-invalid-offsetof -Wcast-align -Wno-format -march=i686 -mtune=generic -O2 -pipe -ggdb -Og -ggdb -Og -fno-exceptions -fno-strict-aliasing -mms-bitfields -mstackrealign -fno-keep-inline-dllexport -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -DDEBUG -DTRACING -g -fno-omit-frame-pointer nsBrowserApp.o ./module.res -mconsole -lpthread -pipe -Wl,--build-id -Wl,--enable-stdcall-fixup -Wl,--large-address-aware -DELAYLOAD:mozglue.dll ../../xpcom/glue/standalone/staticruntime/libxpcomglue_staticruntime.a ../../memory/fallible/libfallible.a ../../mozglue/build/libmozglue.a -luuid -lgdi32 -lwinmm -lwsock32 -luserenv -lsecur32 -lnetapi32 -ldelayimp +# +# /mingw32/bin/objdump -p ./js/src/Unified_cpp_js_src3.o | less +# ./js/src/Unified_cpp_js_src3.o: file format pe-i386 +# Characteristics 0x104 +# line numbers stripped +# 32 bit words +# +# c++ -mwindows -o Unified_cpp_js_src3.o -c -DFFI_BUILDING -D_CRT_RAND_S -DEXPORT_JS_API -DJS_HAS_CTYPES -DDLL_PREFIX='""' -DDLL_SUFFIX='".dll"' -DAB_CD= -DNO_NSPR_10_SUPPORT -IE:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/js/src -I. -Ictypes/libffi/include -IE:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/intl/icu/source/common -IE:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/intl/icu/source/i18n -I../../dist/include -IE:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/obj-i686-w64-mingw32/dist/include/nspr -D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -DMOZILLA_CLIENT -include ../../js/src/js-confdefs.h -MD -MP -MF .deps/Unified_cpp_js_src3.o.pp -D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -Wall -Wsign-compare -Wtype-limits -Wno-invalid-offsetof -Wcast-align -Wno-format -march=i686 -mtune=generic -O2 -pipe -ggdb -Og -ggdb -Og -mms-bitfields -mstackrealign -fno-keep-inline-dllexport -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -DDEBUG -DTRACING -g -fno-omit-frame-pointer E:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/obj-i686-w64-mingw32/js/src/Unified_cpp_js_src3.cpp +# E:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/obj-i686-w64-mingw32/_virtualenv/bin/python.exe E:/m2/repo/mingw-w64-firefox/src/firefox-41.0.1/config/expandlibs_exec.py --extract -- ar crs libjs_static.a RegExp.o CTypes.o Library.o Parser.o ExecutableAllocatorWin.o jsarray.o jsatom.o jsmath.o jsutil.o pm_stub.o TraceLogging.o TraceLoggingGraph.o TraceLoggingTypes.o Unified_cpp_js_src0.o Unified_cpp_js_src1.o Unified_cpp_js_src10.o Unified_cpp_js_src11.o Unified_cpp_js_src12.o Unified_cpp_js_src2.o Unified_cpp_js_src3.o Unified_cpp_js_src4.o Unified_cpp_js_src5.o Unified_cpp_js_src6.o Unified_cpp_js_src7.o Unified_cpp_js_src8.o Unified_cpp_js_src9.o ../../config/external/ffi/libffi.a ../../config/external/nspr/libnspr.a ../../config/external/zlib/libzlib.a + From ed3becca760efe1c3aeb57e025de5c0d2631b6a2 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 5 Oct 2015 01:27:52 +0100 Subject: [PATCH 1667/2060] clang: Backport two patches from Yaron Keren Serus on IRC asked for these to be included: https://llvm.org/bugs/show_bug.cgi?id=23472 https://llvm.org/bugs/show_bug.cgi?id=24395 --- ...chain-driver-to-properly-emit-static.patch | 81 +++++++++++++++++++ ...mitting-initialized-variable-and-its.patch | 44 ++++++++++ mingw-w64-clang/PKGBUILD | 8 +- 3 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-clang/0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch create mode 100644 mingw-w64-clang/0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch diff --git a/mingw-w64-clang/0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch b/mingw-w64-clang/0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch new file mode 100644 index 0000000000..4b9878c37a --- /dev/null +++ b/mingw-w64-clang/0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch @@ -0,0 +1,81 @@ +From 14d62ae679aa7b2fa5981741e217f0c31c2cd647 Mon Sep 17 00:00:00 2001 +From: Yaron Keren +Date: Sun, 9 Aug 2015 00:24:07 +0000 +Subject: [PATCH] Teach mingw toolchain driver to properly emit static or + dynamic linking of ligcc. Implemented in MinGW::Linker::AddLibGCC since + AddLibgcc is a logic puzzle even before adding one more boolean. A first step + towards simplification of AddLibgcc would be to factor out the Android + AddLibgcc code into its own routine. + +git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244407 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/Driver/Tools.cpp | 20 ++++++++++++++++++-- + test/Driver/mingw-libgcc.c | 25 +++++++++++++++++++++++++ + 2 files changed, 43 insertions(+), 2 deletions(-) + create mode 100644 test/Driver/mingw-libgcc.c + +diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp +index f23765b..b82b5f0 100644 +--- a/lib/Driver/Tools.cpp ++++ b/lib/Driver/Tools.cpp +@@ -9083,8 +9083,24 @@ void MinGW::Linker::AddLibGCC(const ArgList &Args, + CmdArgs.push_back("-lmingwthrd"); + CmdArgs.push_back("-lmingw32"); + +- // Add libgcc or compiler-rt. +- AddRunTimeLibs(getToolChain(), getToolChain().getDriver(), CmdArgs, Args); ++ // Make use of compiler-rt if --rtlib option is used ++ ToolChain::RuntimeLibType RLT = getToolChain().GetRuntimeLibType(Args); ++ if (RLT == ToolChain::RLT_Libgcc) { ++ bool Static = Args.hasArg(options::OPT_static_libgcc) || ++ Args.hasArg(options::OPT_static); ++ bool Shared = Args.hasArg(options::OPT_shared); ++ bool CXX = getToolChain().getDriver().CCCIsCXX(); ++ ++ if (Static || (!CXX && !Shared)) { ++ CmdArgs.push_back("-lgcc"); ++ CmdArgs.push_back("-lgcc_eh"); ++ } else { ++ CmdArgs.push_back("-lgcc_s"); ++ CmdArgs.push_back("-lgcc"); ++ } ++ } else { ++ AddRunTimeLibs(getToolChain(), getToolChain().getDriver(), CmdArgs, Args); ++ } + + CmdArgs.push_back("-lmoldname"); + CmdArgs.push_back("-lmingwex"); +diff --git a/test/Driver/mingw-libgcc.c b/test/Driver/mingw-libgcc.c +new file mode 100644 +index 0000000..c427eba +--- /dev/null ++++ b/test/Driver/mingw-libgcc.c +@@ -0,0 +1,25 @@ ++// Test if mingw toolchain driver emits static linking (-lgcc -lgcc_eh) or dynamic linking (-lgcc_s -lgcc). ++// Verified with gcc version 5.1.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project). ++ ++// gcc, static ++// RUN: %clang -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s ++// RUN: %clang -static -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s ++// RUN: %clang -static-libgcc -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s ++// RUN: %clang -static -shared -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s ++// RUN: %clang -static-libgcc -shared -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s ++ ++// gcc, dynamic ++// RUN: %clang -shared -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_DYNAMIC %s ++ ++// g++, static ++// RUN: %clang -static --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s ++// RUN: %clang -static-libgcc --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s ++// RUN: %clang -static -shared --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s ++// RUN: %clang -static-libgcc -shared --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s ++ ++// g++, dynamic ++// RUN: %clang --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_DYNAMIC %s ++// RUN: %clang -shared --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_DYNAMIC %s ++ ++// CHECK_STATIC: "-lgcc" "-lgcc_eh" ++// CHECK_DYNAMIC: "-lgcc_s" "-lgcc" +-- +2.5.2 + diff --git a/mingw-w64-clang/0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch b/mingw-w64-clang/0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch new file mode 100644 index 0000000000..5e3c94b064 --- /dev/null +++ b/mingw-w64-clang/0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch @@ -0,0 +1,44 @@ +From ece3f0021cd16518977b6b78af7bb3bfa19c089c Mon Sep 17 00:00:00 2001 +From: Yaron Keren +Date: Thu, 3 Sep 2015 20:33:29 +0000 +Subject: [PATCH] =?UTF-8?q?Fix=20PR23472=C3=BE=20by=20emitting=20initializ?= + =?UTF-8?q?ed=20variable=20and=20its=20guard=20in=20the=20same=20COMDAT=20?= + =?UTF-8?q?only=20for=20ELF=20objects.?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + + http://llvm.org/pr23472 + +Reviewed by Reid Kleckner. + + + +git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246803 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/CodeGen/ItaniumCXXABI.cpp | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/lib/CodeGen/ItaniumCXXABI.cpp b/lib/CodeGen/ItaniumCXXABI.cpp +index 751c472..9fa4f06 100644 +--- a/lib/CodeGen/ItaniumCXXABI.cpp ++++ b/lib/CodeGen/ItaniumCXXABI.cpp +@@ -1823,10 +1823,12 @@ void ItaniumCXXABI::EmitGuardedInit(CodeGenFunction &CGF, + // If the variable is thread-local, so is its guard variable. + guard->setThreadLocalMode(var->getThreadLocalMode()); + +- // The ABI says: It is suggested that it be emitted in the same COMDAT group +- // as the associated data object ++ // The ABI says: "It is suggested that it be emitted in the same COMDAT ++ // group as the associated data object." In practice, this doesn't work for ++ // non-ELF object formats, so only do it for ELF. + llvm::Comdat *C = var->getComdat(); +- if (!D.isLocalVarDecl() && C) { ++ if (!D.isLocalVarDecl() && C && ++ CGM.getTarget().getTriple().isOSBinFormatELF()) { + guard->setComdat(C); + CGF.CurFn->setComdat(C); + } else if (CGM.supportsCOMDAT() && guard->isWeakForLinker()) { +-- +2.5.2 + diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index ab715b2780..bebcd81cc4 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -14,7 +14,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" ) pkgver=3.7.0 -pkgrel=3 +pkgrel=4 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -41,6 +41,8 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} 0013-mingw-w64-dont-have-dl-library.patch 0014-use-DESTDIR-on-windows.patch 0015-attempt-to-fix-long-double-on-mingw-w64.patch + 0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch + 0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch 0031-COFF-add-the-mingw-alias-for-ImageBase.patch 0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch 0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch @@ -77,6 +79,8 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' 'cd3a1d925d301795f50a3d65579aea71101ffab7e011809ba8323ea6d6b9848d' + 'e0f4127df5857af667a9e40e2a7a13877352b89c99f3213b491215bf7bd03565' + '47fbe90718742d1a3c0aee919b159241e616738447de3505a48a9f5886e5db96' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' '96a6fcd81b8d5134b4273a2e413cd268430022533f1bfb44ed73503ee0ae7e87' '08260b1ee54fad7e0015d66b117937701d2ce4ca1814b012250de03a0dae9317' @@ -104,6 +108,8 @@ prepare() { patch -p1 -i ${srcdir}/0013-mingw-w64-dont-have-dl-library.patch patch -p1 -i ${srcdir}/0014-use-DESTDIR-on-windows.patch patch -p1 -i ${srcdir}/0015-attempt-to-fix-long-double-on-mingw-w64.patch + patch -p1 -i ${srcdir}/0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch + patch -p1 -i ${srcdir}/0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch cd "${srcdir}/lld-${pkgver}.src" # patch -p1 -i "${srcdir}"/0031-COFF-add-the-mingw-alias-for-ImageBase.patch From a6d15360f98a066dcd968695dae61e81dad88f5c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 5 Oct 2015 01:43:08 +0100 Subject: [PATCH 1668/2060] firefox: Attempt to get more debug info (WIP) --- mingw-w64-firefox/PKGBUILD | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index 292fb231fb..a1a6be360f 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -233,8 +233,13 @@ build() { mkdir ${_builddir} cp "${srcdir}"/mozconfig.${CARCH} ${_builddir}/.mozconfig if check_option "debug" "y"; then - echo "ac_add_options --enable-debug-symbols" >> ${_builddir}/.mozconfig - echo "ac_add_options --disable-optimize" >> ${_builddir}/.mozconfig + echo "ac_add_options --enable-debug-symbols" >> ${_builddir}/.mozconfig + echo "ac_add_options --disable-install-strip" >> ${_builddir}/.mozconfig + echo "ac_add_options --disable-optimize" >> ${_builddir}/.mozconfig + # The next two lines are for older versions of Firefox but + # I've not managed to build a debuggable xul.dll yet. + echo "ac_add_options --enable-debugger-info-modules=yes" >> ${_builddir}/.mozconfig + export export MOZ_DEBUG_SYMBOLS=1 fi export PYTHON=$(path_conv_for_make "${_python}") echo $PYTHON From e41f464110d8ff062f86dcf5766b60bbf63a6f97 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 5 Oct 2015 02:18:36 +0100 Subject: [PATCH 1669/2060] python3: Fix mmapmodule build failure --- ...N_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch | 11 +++++++++++ mingw-w64-python3/PKGBUILD | 4 ++++ 2 files changed, 15 insertions(+) create mode 100644 mingw-w64-python3/0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch diff --git a/mingw-w64-python3/0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch b/mingw-w64-python3/0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch new file mode 100644 index 0000000000..a94ccf8ea6 --- /dev/null +++ b/mingw-w64-python3/0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch @@ -0,0 +1,11 @@ +--- Python-3.5.0/Include/pyport.h.orig 2015-10-05 01:44:27.804874500 +0100 ++++ Python-3.5.0/Include/pyport.h 2015-10-05 02:07:01.998193900 +0100 +@@ -896,7 +896,7 @@ + #define PY_LITTLE_ENDIAN 1 + #endif + +-#ifdef Py_BUILD_CORE ++#if defined Py_BUILD_CORE || defined Py_BUILD_CORE_MODULE + /* + * Macros to protect CRT calls against instant termination when passed an + * invalid parameter (issue23524). diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index dacb993cac..d4e25ca80c 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -14,6 +14,7 @@ # -DGNOMELOCALEDIR=\"/mingw64/share/locale\" _realname=python3 +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.5 pkgver=${_pybasever}.0 @@ -118,6 +119,7 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0910-fix-using-dllhandle-and-winver-mingw.patch 0920-mingw-add-LIBPL-to-library-dirs.patch 0930-mingw-w64-build-overlapped-module.patch + 0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch 1000-fix-building-posixmodule.patch 1010-install-msilib.patch 1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch) @@ -219,6 +221,7 @@ prepare() { patch -Np1 -i "${srcdir}"/0910-fix-using-dllhandle-and-winver-mingw.patch patch -Np1 -i "${srcdir}"/0920-mingw-add-LIBPL-to-library-dirs.patch patch -Np1 -i "${srcdir}"/0930-mingw-w64-build-overlapped-module.patch + patch -Np1 -i "${srcdir}"/0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch patch -Np1 -i "${srcdir}"/1000-fix-building-posixmodule.patch patch -Np1 -i "${srcdir}"/1010-install-msilib.patch @@ -457,6 +460,7 @@ sha1sums=('871a06df9ab70984b7398ac53047fe125c757a70' 'e1a155cca50fe1fe4f450ff631ecbdbcc845aa83' 'ce026983639b7e5e503b32345bbcf81972447868' '8ca0fdb71ee8198997b30466c367ac0c84f14237' + '4564e95c83e30dca025d6a7ecf0b24a709ea5120' 'a97dbe5299385b9fde442779d00f9a161ef3f950' 'd5c9e4e47db62db241f4488d9bc974b083b7b0e3' 'c7eb543aee59f4c246018fa7943a1eaa12e6809c') From 92b11685c1579f3a0fe653b8f00a9d617ce3d262 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 5 Oct 2015 11:44:07 +0300 Subject: [PATCH 1670/2060] pkg-config: Update to 0.29.0 --- .../0002-check-for-host.mingw.patch | 17 - mingw-w64-pkg-config/0003-flush.mingw.patch | 24 -- .../0004-expected-path-for.mingw.patch | 75 ----- mingw-w64-pkg-config/0005-mangle.mingw.patch | 39 --- .../0006-path-for-tests.mingw.patch | 22 -- .../0007-sub-path-for-tests.mingw.patch | 31 -- .../0008-check-for-wine.mingw.patch | 25 -- .../0009-use-wine-if-present.mingw.patch | 30 -- .../0099-no-prefix-on.mingw.patch | 23 -- ...n-Win32-to-make-sure-g_unlink-always.patch | 316 ++++++++++++++++++ mingw-w64-pkg-config/1003-g_abort.all.patch | 238 +++++++++++++ ...essages-to-correct-stdout-and-stderr.patch | 12 + .../1017-glib-use-gnu-print-scanf.patch | 85 +++++ ...-actually-written-data-in-printf.all.patch | 23 ++ mingw-w64-pkg-config/1030-fix-stat.all.patch | 11 + mingw-w64-pkg-config/PKGBUILD | 57 ++-- 16 files changed, 712 insertions(+), 316 deletions(-) delete mode 100644 mingw-w64-pkg-config/0002-check-for-host.mingw.patch delete mode 100644 mingw-w64-pkg-config/0003-flush.mingw.patch delete mode 100644 mingw-w64-pkg-config/0004-expected-path-for.mingw.patch delete mode 100644 mingw-w64-pkg-config/0005-mangle.mingw.patch delete mode 100644 mingw-w64-pkg-config/0006-path-for-tests.mingw.patch delete mode 100644 mingw-w64-pkg-config/0007-sub-path-for-tests.mingw.patch delete mode 100644 mingw-w64-pkg-config/0008-check-for-wine.mingw.patch delete mode 100644 mingw-w64-pkg-config/0009-use-wine-if-present.mingw.patch delete mode 100644 mingw-w64-pkg-config/0099-no-prefix-on.mingw.patch create mode 100644 mingw-w64-pkg-config/1001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch create mode 100644 mingw-w64-pkg-config/1003-g_abort.all.patch create mode 100644 mingw-w64-pkg-config/1005-glib-send-log-messages-to-correct-stdout-and-stderr.patch create mode 100644 mingw-w64-pkg-config/1017-glib-use-gnu-print-scanf.patch create mode 100644 mingw-w64-pkg-config/1024-return-actually-written-data-in-printf.all.patch create mode 100644 mingw-w64-pkg-config/1030-fix-stat.all.patch diff --git a/mingw-w64-pkg-config/0002-check-for-host.mingw.patch b/mingw-w64-pkg-config/0002-check-for-host.mingw.patch deleted file mode 100644 index 9e3cbb2b72..0000000000 --- a/mingw-w64-pkg-config/0002-check-for-host.mingw.patch +++ /dev/null @@ -1,17 +0,0 @@ - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 2b33371..4ed7e4d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -138,7 +138,7 @@ fi - AC_SUBST(WARN_CFLAGS) - - AC_MSG_CHECKING([for Win32]) --case "$build" in -+case "$host" in - *-*-mingw*) - native_win32=yes - ;; --- 1.8.1.4 \ No newline at end of file diff --git a/mingw-w64-pkg-config/0003-flush.mingw.patch b/mingw-w64-pkg-config/0003-flush.mingw.patch deleted file mode 100644 index dde3bd0821..0000000000 --- a/mingw-w64-pkg-config/0003-flush.mingw.patch +++ /dev/null @@ -1,24 +0,0 @@ - main.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/main.c b/main.c -index b61ca34..c937efc 100644 ---- a/main.c -+++ b/main.c -@@ -190,6 +190,7 @@ output_opt_cb (const char *opt, const char *arg, gpointer data, - { - fprintf (stderr, "Ignoring incompatible output option \"%s\"\n", - opt); -+ fflush (stderr); - return TRUE; - } - } -@@ -322,6 +323,7 @@ process_package_args (const char *cmdline, GList **packages, FILE *log) - if (reqs == NULL) - { - fprintf (stderr, "Must specify package names on the command line\n"); -+ fflush (stderr); - return FALSE; - } - --- 1.8.1.4 \ No newline at end of file diff --git a/mingw-w64-pkg-config/0004-expected-path-for.mingw.patch b/mingw-w64-pkg-config/0004-expected-path-for.mingw.patch deleted file mode 100644 index 427edf34ca..0000000000 --- a/mingw-w64-pkg-config/0004-expected-path-for.mingw.patch +++ /dev/null @@ -1,75 +0,0 @@ - check/check-path | 29 +++++++++++++++++++++-------- - check/config.sh.in | 2 ++ - configure.ac | 1 + - 3 files changed, 24 insertions(+), 8 deletions(-) - -diff --git a/check/check-path b/check/check-path -index fecfc06..37244d9 100755 ---- a/check/check-path -+++ b/check/check-path -@@ -9,14 +9,27 @@ PKG_CONFIG_PATH="$srcdir/sub" run_test --exists sub1 - - # default pkg-config path, making sure to resolve the variables fully - eval pc_path="$pc_path" --case ${MACHTYPE} in --*-msys) -- # Make sure path doesn't get mangled on MSYS -- RESULT=$(echo $pc_path | sed 's,/,\\/,g') -- ;; --*) -+if [ "$native_win32" = yes ]; then -+ # This is pretty hacky. On native win32 (MSYS/MINGW), pkg-config -+ # builds the default path from the installation directory. It -+ # then adds lib/pkgconfig and share/pkgconfig to it. Normally, -+ # the autoconf build directory would be used, but that path is in -+ # Unix format. -+ if [ "$OSTYPE" = msys ]; then -+ # MSYS has "pwd -W" to get the current directory in Windows format -+ pcdir=$(cd $top_builddir/.libs && pwd -W) -+ else -+ # Assume we have cmd somewhere to get variable %cd%. Make sure -+ # to strip carriage returns. -+ pcdir=$(cd $top_builddir/.libs && -+ cmd /C echo %cd% | sed -r 's/\r//g') -+ fi -+ win_path="$pcdir/lib/pkgconfig;$pcdir/share/pkgconfig" -+ -+ # Convert from forward slashes to Windows backslashes -+ RESULT=$(echo $win_path | sed 's,/,\\,g') -+else - RESULT=$pc_path -- ;; --esac -+fi - unset PKG_CONFIG_LIBDIR - run_test --variable=pc_path pkg-config -diff --git a/check/config.sh.in b/check/config.sh.in -index 91f20a2..68fa097 100644 ---- a/check/config.sh.in -+++ b/check/config.sh.in -@@ -2,6 +2,7 @@ - # Settings from the configure script - # - -+top_builddir=@top_builddir@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ - includedir=@includedir@ -@@ -13,3 +14,4 @@ system_include_path="@system_include_path@" - system_library_path="@system_library_path@" - list_indirect_deps=@use_indirect_deps@ - PACKAGE_VERSION=@PACKAGE_VERSION@ -+native_win32=@native_win32@ -diff --git a/configure.ac b/configure.ac -index 4ed7e4d..4de9b16 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -147,6 +147,7 @@ case "$host" in - ;; - esac - AC_MSG_RESULT([$native_win32]) -+AC_SUBST([native_win32]) - AM_CONDITIONAL(NATIVE_WIN32, [test "x$native_win32" = xyes]) - - dnl --- 1.8.1.4 \ No newline at end of file diff --git a/mingw-w64-pkg-config/0005-mangle.mingw.patch b/mingw-w64-pkg-config/0005-mangle.mingw.patch deleted file mode 100644 index cbb228dd30..0000000000 --- a/mingw-w64-pkg-config/0005-mangle.mingw.patch +++ /dev/null @@ -1,39 +0,0 @@ -MSYS mangles UNIX paths on execution such that it prepends its root in -Windows format. This affects PKG_CONFIG_SYSROOT_DIR and thus the -check-sysroot test. Detect MSYS from the OSTYPE environment variable and -adjust the expected test results to match. This likely means that -sysroot support doesn't actually work on MSYS, but there probably aren't -any toolchains that support sysroot there, anyway. ---- - check/check-sysroot | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/check/check-sysroot b/check/check-sysroot -index 0820206..d03d1c7 100755 ---- a/check/check-sysroot -+++ b/check/check-sysroot -@@ -6,6 +6,12 @@ set -e - - export PKG_CONFIG_SYSROOT_DIR=/sysroot - -+# MSYS mangles / paths to its own root in windows format. This probably -+# means sysroot doesn't work there, but match what pkg-config passes -+# back anyway. -+[ "x$OSTYPE" = "xmsys" ] && root=$(cd / && pwd -W) || root= -+root=${root%/} -+ - RESULT="" - run_test --cflags simple - -@@ -20,8 +25,8 @@ if [ "$list_indirect_deps" = yes ]; then - fi - run_test --libs --static simple - --RESULT="-I/sysroot/public-dep/include" -+RESULT="-I$root/sysroot/public-dep/include" - run_test --cflags public-dep - --RESULT="-L/sysroot/public-dep/lib -lpublic-dep" -+RESULT="-L$root/sysroot/public-dep/lib -lpublic-dep" - run_test --libs public-dep --- 1.8.1.4 diff --git a/mingw-w64-pkg-config/0006-path-for-tests.mingw.patch b/mingw-w64-pkg-config/0006-path-for-tests.mingw.patch deleted file mode 100644 index 6521c2db19..0000000000 --- a/mingw-w64-pkg-config/0006-path-for-tests.mingw.patch +++ /dev/null @@ -1,22 +0,0 @@ -For native Windows, the PKG_CONFIG_PATH separator is ; rather than :. ---- - check/check-sort-order | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/check/check-sort-order b/check/check-sort-order -index 77c0806..6482f6f 100755 ---- a/check/check-sort-order -+++ b/check/check-sort-order -@@ -34,8 +34,9 @@ set -e - - . ${srcdir}/common - --order1="$srcdir/sort/sort:$srcdir/sort" --order2="$srcdir/sort:$srcdir/sort/sort" -+[ "x$native_win32" = "xyes" ] && sep=';' || sep=':' -+order1="${srcdir}/sort/sort${sep}${srcdir}/sort" -+order2="${srcdir}/sort${sep}${srcdir}/sort/sort" - - export PKG_CONFIG_PATH - PKG_CONFIG_PATH="$order1" --- 1.8.1.4 \ No newline at end of file diff --git a/mingw-w64-pkg-config/0007-sub-path-for-tests.mingw.patch b/mingw-w64-pkg-config/0007-sub-path-for-tests.mingw.patch deleted file mode 100644 index 5bfcae796d..0000000000 --- a/mingw-w64-pkg-config/0007-sub-path-for-tests.mingw.patch +++ /dev/null @@ -1,31 +0,0 @@ -This just paves the way to calculate more useful defaults in a shell. ---- - check/Makefile.am | 1 - - configure.ac | 4 ++++ - 2 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/check/Makefile.am b/check/Makefile.am -index 30a527c..5006b5f 100644 ---- a/check/Makefile.am -+++ b/check/Makefile.am -@@ -1,4 +1,3 @@ --TESTS_PKG_CONFIG = $(top_builddir)/pkg-config$(EXEEXT) - TESTS_ENVIRONMENT = PKG_CONFIG='$(TESTS_PKG_CONFIG)' $(TESTS_SHELL) - - TESTS = \ -diff --git a/configure.ac b/configure.ac -index 4de9b16..73f2cf4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -32,6 +32,10 @@ AC_ARG_VAR([TESTS_SHELL], [Path to a POSIX shell to be used for testing]) - conf_path="$PATH:`getconf PATH 2>/dev/null`" - AC_PATH_PROGS([TESTS_SHELL], [bash ksh sh], [$CONFIG_SHELL], [$conf_path]) - -+dnl The built pkg-config to use for testing. This allows it to be set -+dnl from the make command line if necessary. -+AC_SUBST([TESTS_PKG_CONFIG], ['${top_builddir}/pkg-config${EXEEXT}']) -+ - dnl - dnl Default pkg-config search path - dnl --- 1.8.1.4 \ No newline at end of file diff --git a/mingw-w64-pkg-config/0008-check-for-wine.mingw.patch b/mingw-w64-pkg-config/0008-check-for-wine.mingw.patch deleted file mode 100644 index 73de8de8d4..0000000000 --- a/mingw-w64-pkg-config/0008-check-for-wine.mingw.patch +++ /dev/null @@ -1,25 +0,0 @@ -If Wine is available when cross-compiling to Windows, it can be used to -run the test suite from the build machine. ---- - configure.ac | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 73f2cf4..94666a4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -154,6 +154,13 @@ AC_MSG_RESULT([$native_win32]) - AC_SUBST([native_win32]) - AM_CONDITIONAL(NATIVE_WIN32, [test "x$native_win32" = xyes]) - -+dnl When cross compiling to Windows, Wine might be available to help -+dnl for testing. -+if test "$cross_compiling" = yes && test "$native_win32" = yes; then -+ AC_CHECK_PROG([WINE], [wine], [wine]) -+ test "x$WINE" != x && TESTS_PKG_CONFIG='${WINE} '"$TESTS_PKG_CONFIG" -+fi -+ - dnl - dnl Find glib or use internal copy. Required version is 2.16 for - dnl g_win32_get_package_installation_directory_of_module(). --- 1.8.1.4 \ No newline at end of file diff --git a/mingw-w64-pkg-config/0009-use-wine-if-present.mingw.patch b/mingw-w64-pkg-config/0009-use-wine-if-present.mingw.patch deleted file mode 100644 index c42f87379c..0000000000 --- a/mingw-w64-pkg-config/0009-use-wine-if-present.mingw.patch +++ /dev/null @@ -1,30 +0,0 @@ -If we have Wine, it will provide cmd so we can build the pkg-config path -for the test. ---- - check/check-path | 2 +- - check/config.sh.in | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/check/check-path b/check/check-path -index 37244d9..2a6be75 100755 ---- a/check/check-path -+++ b/check/check-path -@@ -22,7 +22,7 @@ if [ "$native_win32" = yes ]; then - # Assume we have cmd somewhere to get variable %cd%. Make sure - # to strip carriage returns. - pcdir=$(cd $top_builddir/.libs && -- cmd /C echo %cd% | sed -r 's/\r//g') -+ $WINE cmd /C echo %cd% | sed -r 's/\r//g') - fi - win_path="$pcdir/lib/pkgconfig;$pcdir/share/pkgconfig" - -diff --git a/check/config.sh.in b/check/config.sh.in -index 68fa097..8b7ffb5 100644 ---- a/check/config.sh.in -+++ b/check/config.sh.in -@@ -15,3 +15,4 @@ system_library_path="@system_library_path@" - list_indirect_deps=@use_indirect_deps@ - PACKAGE_VERSION=@PACKAGE_VERSION@ - native_win32=@native_win32@ -+WINE=@WINE@ --- 1.8.1.4 \ No newline at end of file diff --git a/mingw-w64-pkg-config/0099-no-prefix-on.mingw.patch b/mingw-w64-pkg-config/0099-no-prefix-on.mingw.patch deleted file mode 100644 index 3c81c8d59a..0000000000 --- a/mingw-w64-pkg-config/0099-no-prefix-on.mingw.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- pkg-config-0.28/pkg.m4.orig 2013-04-01 15:45:41 +0400 -+++ pkg-config-0.28/pkg.m4 2013-04-03 02:13:38 +0400 -@@ -73,7 +73,7 @@ - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], -- [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` -+ [pkg_cv_[]$1=`$PKG_CONFIG --dont-define-prefix --[]$2 "$3" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], - [pkg_failed=yes]) - else -@@ -122,9 +122,9 @@ - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then -- $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` -+ $1[]_PKG_ERRORS=`$PKG_CONFIG --dont-define-prefix --short-errors --print-errors --cflags --libs "$2" 2>&1` - else -- $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` -+ $1[]_PKG_ERRORS=`$PKG_CONFIG --dont-define-prefix --print-errors --cflags --libs "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD diff --git a/mingw-w64-pkg-config/1001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch b/mingw-w64-pkg-config/1001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch new file mode 100644 index 0000000000..e53fd8d166 --- /dev/null +++ b/mingw-w64-pkg-config/1001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch @@ -0,0 +1,316 @@ +diff -Naur glib-2.46.0-orig/glib/gstdio.c glib-2.46.0/glib/gstdio.c +--- glib-2.46.0-orig/glib/gstdio.c 2015-02-26 15:57:09.000000000 +0300 ++++ glib-2.46.0/glib/gstdio.c 2015-09-22 09:08:58.032066100 +0300 +@@ -192,6 +192,11 @@ + int mode) + { + #ifdef G_OS_WIN32 ++ HANDLE hFile; ++ DWORD dwDesiredAccess = 0; ++ DWORD dwFlagsAndAttributes = 0; ++ DWORD dwDisposition = OPEN_EXISTING; ++ DWORD dwSharedAccess = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE; + wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); + int retval; + int save_errno; +@@ -202,12 +207,114 @@ + return -1; + } + +- retval = _wopen (wfilename, flags, mode); +- save_errno = errno; ++ /* Set up the access modes and other attributes */ ++ if ((flags & _O_CREAT) && (mode & _S_IREAD)) ++ { ++ if (! (mode & _S_IWRITE)) ++ dwFlagsAndAttributes = FILE_ATTRIBUTE_READONLY; /* Sets file to 'read only' after the file gets closed */ ++ } ++ if ( !(flags & _O_ACCMODE)) ++ { ++ /* Equates to _O_RDONLY */ ++ if (flags & _O_TRUNC) ++ { ++ errno = EINVAL; ++ g_free (wfilename); ++ return -1; ++ } + +- g_free (wfilename); ++ dwDesiredAccess |= GENERIC_READ; ++ dwSharedAccess |= FILE_SHARE_WRITE; ++ } ++ if (flags & _O_WRONLY) ++ { ++ if (flags & _O_RDWR) ++ { ++ errno = EINVAL; ++ g_free (wfilename); ++ return -1; ++ } + ++ dwDesiredAccess |= GENERIC_WRITE; ++ } ++ if (flags & _O_RDWR) ++ { ++ dwDesiredAccess |= GENERIC_READ; ++ dwDesiredAccess |= GENERIC_WRITE; ++ } ++ if (flags & _O_TRUNC) ++ { ++ if (flags & _O_CREAT) ++ dwDisposition = CREATE_ALWAYS; ++ else ++ dwDisposition = TRUNCATE_EXISTING; ++ } ++ if ((flags & _O_CREAT) && !(flags & _O_TRUNC)) ++ { ++ if (flags & _O_EXCL) ++ dwDisposition = CREATE_NEW; ++ else ++ dwDisposition = OPEN_ALWAYS; ++ } ++ if (flags & _O_CREAT) ++ { ++ /* Handle the other flags that can be attached to _O_CREAT */ ++ if ((flags & _O_TEMPORARY) || (flags & _O_SHORT_LIVED)) ++ dwFlagsAndAttributes |= FILE_ATTRIBUTE_TEMPORARY; ++ ++ if (flags & _O_TEMPORARY) ++ dwFlagsAndAttributes |= FILE_FLAG_DELETE_ON_CLOSE; ++ } ++ if ((flags & _O_SEQUENTIAL) || (flags & _O_APPEND)) ++ { ++ dwFlagsAndAttributes |= FILE_FLAG_SEQUENTIAL_SCAN; ++ } ++ else if (flags & _O_RANDOM) ++ { ++ dwFlagsAndAttributes |= FILE_FLAG_RANDOM_ACCESS; ++ } ++ ++ if (0 == dwFlagsAndAttributes) ++ dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL; ++ hFile = CreateFileW(wfilename, dwDesiredAccess, dwSharedAccess, NULL, dwDisposition, dwFlagsAndAttributes, NULL); ++ ++ if (INVALID_HANDLE_VALUE == hFile) ++ { ++ retval = (-1); ++ ++ switch (GetLastError ()) ++ { ++#define CASE(a,b) case ERROR_##a: errno = b; break ++ CASE (FILE_NOT_FOUND, ENOENT); ++ CASE (PATH_NOT_FOUND, ENOENT); ++ CASE (ACCESS_DENIED, EACCES); ++ CASE (NOT_SAME_DEVICE, EXDEV); ++ CASE (LOCK_VIOLATION, EACCES); ++ CASE (SHARING_VIOLATION, EACCES); ++ CASE (FILE_EXISTS, EEXIST); ++ CASE (ALREADY_EXISTS, EEXIST); ++#undef CASE ++ default: errno = EIO; ++ } ++ } ++ else ++ retval = _open_osfhandle((long)hFile, flags); ++ ++ if ((-1) != retval) ++ { ++ /* We have a valid file handle. Set its translation mode to text or binary, as appropriate */ ++ if ((!(flags & _O_TEXT)) && (_fmode == _O_BINARY)) ++ _setmode(retval, _O_BINARY); ++ else if ((flags & _O_TEXT) || (_fmode == _O_TEXT)) ++ _setmode(retval, _O_TEXT); ++ else ++ _setmode(retval, _O_BINARY); ++ } ++ ++ save_errno = errno; ++ g_free (wfilename); + errno = save_errno; ++ + return retval; + #else + int fd; +@@ -254,6 +361,8 @@ + int mode) + { + #ifdef G_OS_WIN32 ++ HANDLE hFile; ++ DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL; + wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); + int retval; + int save_errno; +@@ -264,12 +373,41 @@ + return -1; + } + +- retval = _wcreat (wfilename, mode); +- save_errno = errno; ++ if (mode & _S_IREAD) ++ { ++ if (! (mode & _S_IWRITE)) ++ dwFlagsAndAttributes = FILE_ATTRIBUTE_READONLY; /* Sets file to 'read only' after the file gets closed */ ++ } ++ ++ hFile = CreateFileW(wfilename, (GENERIC_READ | GENERIC_WRITE), (FILE_SHARE_READ | FILE_SHARE_DELETE), ++ NULL, CREATE_ALWAYS, dwFlagsAndAttributes, NULL); ++ ++ if (INVALID_HANDLE_VALUE == hFile) ++ { ++ retval = (-1); ++ ++ switch (GetLastError ()) ++ { ++#define CASE(a,b) case ERROR_##a: errno = b; break ++ CASE (FILE_NOT_FOUND, ENOENT); ++ CASE (PATH_NOT_FOUND, ENOENT); ++ CASE (ACCESS_DENIED, EACCES); ++ CASE (NOT_SAME_DEVICE, EXDEV); ++ CASE (LOCK_VIOLATION, EACCES); ++ CASE (SHARING_VIOLATION, EACCES); ++ CASE (FILE_EXISTS, EEXIST); ++ CASE (ALREADY_EXISTS, EEXIST); ++#undef CASE ++ default: errno = EIO; ++ } ++ } ++ else ++ retval = _open_osfhandle((long)hFile, _O_RDWR); + ++ save_errno = errno; + g_free (wfilename); +- + errno = save_errno; ++ + return retval; + #else + return creat (filename, mode); +@@ -702,33 +840,102 @@ + const gchar *mode) + { + #ifdef G_OS_WIN32 +- wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); +- wchar_t *wmode; +- FILE *retval; +- int save_errno; +- +- if (wfilename == NULL) +- { +- errno = EINVAL; +- return NULL; +- } +- +- wmode = g_utf8_to_utf16 (mode, -1, NULL, NULL, NULL); +- +- if (wmode == NULL) +- { +- g_free (wfilename); +- errno = EINVAL; +- return NULL; +- } +- +- retval = _wfopen (wfilename, wmode); +- save_errno = errno; +- +- g_free (wfilename); +- g_free (wmode); ++ int hFile; ++ int flags = 0; ++ gchar priv_mode[4]; ++ FILE *retval = NULL; ++ ++ if ((NULL == filename) || (NULL == mode)) ++ { ++ errno = EINVAL; ++ goto out; ++ } ++ if ((strlen(mode) < 1) || (strlen(mode) > 3)) ++ { ++ errno = EINVAL; ++ goto out; ++ } ++ ++ strncpy(priv_mode, mode, 3); ++ priv_mode[3] = '\0'; ++ ++ /* Set up any flags to pass to 'g_open()' */ ++ if (3 == strlen(priv_mode)) ++ { ++ if (('c' == priv_mode[2]) || ('n' == priv_mode[2])) ++ priv_mode[2] = '\0'; ++ else ++ { ++ if (0 == strcmp(priv_mode, "a+b")) ++ flags = _O_RDWR | _O_CREAT | _O_APPEND | _O_BINARY; ++ else if (0 == strcmp(priv_mode, "a+t")) ++ flags = _O_RDWR | _O_CREAT | _O_APPEND | _O_TEXT; ++ else if (0 == strcmp(priv_mode, "r+b")) ++ flags = _O_RDWR | _O_BINARY; ++ else if (0 == strcmp(priv_mode, "r+t")) ++ flags = _O_RDWR | _O_TEXT; ++ else if (0 == strcmp(priv_mode, "w+b")) ++ flags = _O_RDWR | _O_CREAT |_O_TRUNC | _O_BINARY; ++ else if (0 == strcmp(priv_mode, "w+t")) ++ flags = _O_RDWR | _O_CREAT |_O_TRUNC | _O_TEXT; ++ else ++ { ++ errno = EINVAL; ++ goto out; ++ } ++ } ++ } ++ if (2 == strlen(priv_mode)) ++ { ++ if (('c' == priv_mode[1]) || ('n' == priv_mode[1])) ++ priv_mode[1] = '\0'; ++ else ++ { ++ if (0 == strcmp(priv_mode, "a+")) ++ flags = _O_RDWR | _O_CREAT | _O_APPEND; ++ else if (0 == strcmp(priv_mode, "ab")) ++ flags = _O_WRONLY | _O_CREAT | _O_APPEND | _O_BINARY; ++ else if (0 == strcmp(priv_mode, "at")) ++ flags = _O_WRONLY | _O_CREAT | _O_APPEND | _O_TEXT; ++ else if (0 == strcmp(priv_mode, "rb")) ++ flags = _O_RDONLY | _O_BINARY; ++ else if (0 == strcmp(priv_mode, "rt")) ++ flags = _O_RDONLY | _O_TEXT; ++ else if (0 == strcmp(priv_mode, "wb")) ++ flags = _O_WRONLY | _O_CREAT | _O_TRUNC | _O_BINARY; ++ else if (0 == strcmp(priv_mode, "wt")) ++ flags = _O_WRONLY | _O_CREAT | _O_TRUNC | _O_TEXT; ++ else ++ { ++ errno = EINVAL; ++ goto out; ++ } ++ } ++ } ++ if (1 == strlen(priv_mode)) ++ { ++ if (0 == strcmp(priv_mode, "a")) ++ flags = _O_WRONLY | _O_CREAT | _O_APPEND; ++ else if (0 == strcmp(priv_mode, "r")) ++ flags = _O_RDONLY; ++ else if (0 == strcmp(priv_mode, "w")) ++ flags = _O_WRONLY | _O_CREAT | _O_TRUNC; ++ else if ( !((0 == strcmp(priv_mode, "c")) || (0 == strcmp(priv_mode, "n")))) ++ { ++ errno = EINVAL; ++ goto out; ++ } ++ } ++ ++ hFile = g_open (filename, flags, (_S_IREAD | _S_IWRITE)); ++ ++ if (INVALID_HANDLE_VALUE == (HANDLE)hFile) ++ /* 'errno' will have already been set by 'g_open()' */ ++ retval = NULL; ++ else ++ retval = _fdopen(hFile, mode); + +- errno = save_errno; ++out: + return retval; + #else + return fopen (filename, mode); diff --git a/mingw-w64-pkg-config/1003-g_abort.all.patch b/mingw-w64-pkg-config/1003-g_abort.all.patch new file mode 100644 index 0000000000..ae6712f7f6 --- /dev/null +++ b/mingw-w64-pkg-config/1003-g_abort.all.patch @@ -0,0 +1,238 @@ +diff -Naur glib-2.46.0-orig/glib/gbacktrace.c glib-2.46.0/glib/gbacktrace.c +--- glib-2.46.0-orig/glib/gbacktrace.c 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/gbacktrace.c 2015-09-22 09:08:59.311126700 +0300 +@@ -254,7 +254,7 @@ + if (IsDebuggerPresent ()) + G_BREAKPOINT (); + else +- abort (); ++ g_abort (); + #endif + } + +diff -Naur glib-2.46.0-orig/glib/giowin32.c glib-2.46.0/glib/giowin32.c +--- glib-2.46.0-orig/glib/giowin32.c 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/giowin32.c 2015-09-22 09:08:59.357921600 +0300 +@@ -798,7 +798,7 @@ + + default: + g_assert_not_reached (); +- abort (); ++ g_abort (); + } + if (channel->debug) + g_print ("\n"); +@@ -945,7 +945,7 @@ + + default: + g_assert_not_reached (); +- abort (); ++ g_abort (); + } + } + +@@ -1010,7 +1010,7 @@ + + default: + g_assert_not_reached (); +- abort (); ++ g_abort (); + } + if (channel->debug) + g_print ("\n"); +@@ -1295,7 +1295,7 @@ + default: + whence = -1; /* Keep the compiler quiet */ + g_assert_not_reached (); +- abort (); ++ g_abort (); + } + + tmp_offset = offset; +@@ -1690,7 +1690,7 @@ + break; + default: + g_assert_not_reached (); +- abort (); ++ g_abort (); + } + + /* always open 'untranslated' */ +@@ -1736,7 +1736,7 @@ + break; + default: + g_assert_not_reached (); +- abort (); ++ g_abort (); + } + + return channel; +@@ -2225,7 +2225,7 @@ + + default: + g_assert_not_reached (); +- abort (); ++ g_abort (); + } + + fd->events = condition; +diff -Naur glib-2.46.0-orig/glib/gmessages.c glib-2.46.0/glib/gmessages.c +--- glib/glib/gmessages.c 2015-09-21 06:33:23.000000000 +0300 ++++ glib/glib/gmessages.c 2015-09-22 09:08:59.373519900 +0300 +@@ -252,7 +252,7 @@ + if (exit_on_fatal) + _exit (1); + else +- abort (); ++ g_abort (); + } + + #ifdef G_OS_WIN32 +@@ -983,12 +983,12 @@ + if (IsDebuggerPresent () && !(test_level & G_LOG_FLAG_RECURSION)) + G_BREAKPOINT (); + else +- abort (); ++ g_abort (); + #else + if (!(test_level & G_LOG_FLAG_RECURSION)) + G_BREAKPOINT (); + else +- abort (); ++ g_abort (); + #endif /* !G_OS_WIN32 */ + } + +diff -Naur glib-2.46.0-orig/glib/gslice.c glib-2.46.0/glib/gslice.c +--- glib-2.46.0-orig/glib/gslice.c 2015-09-08 20:40:27.000000000 +0300 ++++ glib-2.46.0/glib/gslice.c 2015-09-22 09:08:59.404716500 +0300 +@@ -1082,7 +1082,7 @@ + return; + if (G_UNLIKELY (allocator->config.debug_blocks) && + !smc_notify_free (mem_block, mem_size)) +- abort(); ++ g_abort(); + if (G_LIKELY (acat == 1)) /* allocate through magazine layer */ + { + ThreadMemory *tmem = thread_memory_from_self(); +@@ -1165,7 +1165,7 @@ + slice = *(gpointer*) (current + next_offset); + if (G_UNLIKELY (allocator->config.debug_blocks) && + !smc_notify_free (current, mem_size)) +- abort(); ++ g_abort(); + if (G_UNLIKELY (thread_memory_magazine2_is_full (tmem, ix))) + { + thread_memory_swap_magazines (tmem, ix); +@@ -1186,7 +1186,7 @@ + slice = *(gpointer*) (current + next_offset); + if (G_UNLIKELY (allocator->config.debug_blocks) && + !smc_notify_free (current, mem_size)) +- abort(); ++ g_abort(); + if (G_UNLIKELY (g_mem_gc_friendly)) + memset (current, 0, chunk_size); + slab_allocator_free_chunk (chunk_size, current); +@@ -1200,7 +1200,7 @@ + slice = *(gpointer*) (current + next_offset); + if (G_UNLIKELY (allocator->config.debug_blocks) && + !smc_notify_free (current, mem_size)) +- abort(); ++ g_abort(); + if (G_UNLIKELY (g_mem_gc_friendly)) + memset (current, 0, mem_size); + g_free (current); +@@ -1436,7 +1436,7 @@ + vfprintf (stderr, format, args); + va_end (args); + fputs ("\n", stderr); +- abort(); ++ g_abort(); + _exit (1); + } + +diff -Naur glib-2.46.0-orig/glib/gtestutils.c glib-2.46.0/glib/gtestutils.c +--- glib-2.46.0-orig/glib/gtestutils.c 2015-09-01 06:34:13.000000000 +0300 ++++ glib-2.46.0/glib/gtestutils.c 2015-09-22 09:08:59.576297800 +0300 +@@ -751,7 +751,7 @@ + { + if (test_tap_log) + g_print ("Bail out!\n"); +- abort(); ++ g_abort(); + } + break; + case G_TEST_LOG_MIN_RESULT: +@@ -2292,7 +2292,7 @@ + s = g_strconcat ("assertion failed: (", expr, ")", NULL); + g_assertion_message (domain, file, line, func, s); + g_free (s); +- abort (); ++ g_abort(); + } + + void +diff -Naur glib-2.46.0-orig/glib/gthread-posix.c glib-2.46.0/glib/gthread-posix.c +--- glib-2.46.0-orig/glib/gthread-posix.c 2015-08-19 06:35:30.000000000 +0300 ++++ glib-2.46.0/glib/gthread-posix.c 2015-09-22 09:08:59.560699500 +0300 +@@ -46,6 +46,7 @@ + #include "gslice.h" + #include "gmessages.h" + #include "gstrfuncs.h" ++#include "gutils.h" + + #include + #include +@@ -77,7 +78,7 @@ + { + fprintf (stderr, "GLib (gthread-posix.c): Unexpected error from C library during '%s': %s. Aborting.\n", + function, strerror (status)); +- abort (); ++ g_abort (); + } + + /* {{{1 GMutex */ +diff -Naur glib-2.46.0-orig/glib/gthread-win32.c glib-2.46.0/glib/gthread-win32.c +--- glib-2.46.0-orig/glib/gthread-win32.c 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/gthread-win32.c 2015-09-22 09:08:59.467109700 +0300 +@@ -58,7 +58,7 @@ + { + fprintf (stderr, "GLib (gthread-win32.c): Unexpected error from C library during '%s': %s. Aborting.\n", + strerror (status), function); +- abort (); ++ g_abort (); + } + + /* Starting with Vista and Windows 2008, we have access to the +diff -Naur glib-2.46.0-orig/glib/gutils.c glib-2.46.0/glib/gutils.c +--- glib-2.46.0-orig/glib/gutils.c 2015-08-28 21:15:54.000000000 +0300 ++++ glib-2.46.0/glib/gutils.c 2015-09-22 09:08:59.498306300 +0300 +@@ -2375,3 +2375,15 @@ + return FALSE; + #endif + } ++ ++/* Crashes the program. */ ++void ++g_abort (void) ++{ ++#ifdef G_OS_WIN32 ++ DebugBreak (); ++ ExitProcess (127); ++#else ++ abort (); ++#endif ++} +diff -Naur glib-2.46.0-orig/glib/gutils.h glib-2.46.0/glib/gutils.h +--- glib-2.46.0-orig/glib/gutils.h 2015-08-21 03:20:48.000000000 +0300 ++++ glib-2.46.0/glib/gutils.h 2015-09-22 09:08:59.529502900 +0300 +@@ -228,6 +228,9 @@ + GLIB_DEPRECATED_FOR(g_format_size) + gchar *g_format_size_for_display (goffset size); + ++GLIB_AVAILABLE_IN_2_30 ++void g_abort (void); ++ + #ifndef G_DISABLE_DEPRECATED + /** + * GVoidFunc: diff --git a/mingw-w64-pkg-config/1005-glib-send-log-messages-to-correct-stdout-and-stderr.patch b/mingw-w64-pkg-config/1005-glib-send-log-messages-to-correct-stdout-and-stderr.patch new file mode 100644 index 0000000000..6731f9ff61 --- /dev/null +++ b/mingw-w64-pkg-config/1005-glib-send-log-messages-to-correct-stdout-and-stderr.patch @@ -0,0 +1,12 @@ +diff -Naur glib-2.46.0-orig/glib/gmessages.c glib-2.46.0/glib/gmessages.c +--- glib-2.46.0-orig/glib/gmessages.c 2015-09-22 09:09:00.356212800 +0300 ++++ glib-2.46.0/glib/gmessages.c 2015-09-22 09:09:01.292110800 +0300 +@@ -932,7 +932,7 @@ + if ((log_level & G_LOG_FLAG_FATAL) != 0 && !g_test_initialized ()) + win32_keep_fatal_message = TRUE; + #endif +- return to_stdout ? 1 : 2; ++ return to_stdout ? fileno(stdout) : fileno(stderr); + } + + typedef struct { diff --git a/mingw-w64-pkg-config/1017-glib-use-gnu-print-scanf.patch b/mingw-w64-pkg-config/1017-glib-use-gnu-print-scanf.patch new file mode 100644 index 0000000000..5e4a3a3c5a --- /dev/null +++ b/mingw-w64-pkg-config/1017-glib-use-gnu-print-scanf.patch @@ -0,0 +1,85 @@ +diff -Naur glib-2.46.0-orig/configure.ac glib-2.46.0/configure.ac +--- glib-2.46.0-orig/configure.ac 2015-09-21 15:38:33.000000000 +0300 ++++ glib-2.46.0/configure.ac 2015-09-22 09:09:02.118820700 +0300 +@@ -567,7 +567,7 @@ + ]) + fi + +-AS_IF([test x$glib_native_win32 != xyes && test x$ac_cv_sizeof_long_long = x8], [ ++AS_IF([test x$ac_cv_sizeof_long_long = x8], [ + # long long is a 64 bit integer. + AC_MSG_CHECKING(for format to printf and scanf a guint64) + AC_CACHE_VAL(glib_cv_long_long_format,[ +@@ -589,8 +589,8 @@ + AS_IF([ test -n "$glib_cv_long_long_format"], [ + AC_MSG_RESULT(%${glib_cv_long_long_format}u) + AC_DEFINE(HAVE_LONG_LONG_FORMAT,1,[define if system printf can print long long]) +- if test x"$glib_cv_long_long_format" = xI64; then +- AC_DEFINE(HAVE_INT64_AND_I64,1,[define to support printing 64-bit integers with format I64]) ++ if test x"$glib_cv_long_long_format" = xll; then ++ AC_DEFINE(HAVE_INT64_AND_I64,1,[define to support printing 64-bit integers with format ll]) + fi + ], [AC_MSG_RESULT(none)]) + ],[ test x$ac_cv_sizeof___int64 = x8], [ +@@ -3177,8 +3177,8 @@ + glib_msize_type='LONG' + ;; + "long long"|__int64) +- gsize_modifier='"I64"' +- gsize_format='"I64u"' ++ gsize_modifier='"z"' ++ gsize_format='"zu"' + glib_msize_type='INT64' + ;; + esac +@@ -3200,8 +3200,8 @@ + glib_mssize_type='LONG' + ;; + "long long"|__int64) +- gssize_modifier='"I64"' +- gssize_format='"I64i"' ++ gssize_modifier='"z"' ++ gssize_format='"zi"' + glib_mssize_type='INT64' + ;; + esac +@@ -3230,9 +3230,9 @@ + ;; + $ac_cv_sizeof_long_long) + glib_intptr_type_define='long long' +- gintptr_modifier='"I64"' +- gintptr_format='"I64i"' +- guintptr_format='"I64u"' ++ gintptr_modifier='"ll"' ++ gintptr_format='"lli"' ++ guintptr_format='"llu"' + glib_gpi_cast='(gint64)' + glib_gpui_cast='(guint64)' + ;; +diff -Naur glib-2.46.0-orig/glib/gmacros.h glib-2.46.0/glib/gmacros.h +--- glib-2.46.0-orig/glib/gmacros.h 2015-08-19 06:35:30.000000000 +0300 ++++ glib-2.46.0/glib/gmacros.h 2015-09-22 09:09:02.118820700 +0300 +@@ -79,9 +79,9 @@ + + #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) + #define G_GNUC_PRINTF( format_idx, arg_idx ) \ +- __attribute__((__format__ (__printf__, format_idx, arg_idx))) ++ __attribute__((__format__ (gnu_printf, format_idx, arg_idx))) + #define G_GNUC_SCANF( format_idx, arg_idx ) \ +- __attribute__((__format__ (__scanf__, format_idx, arg_idx))) ++ __attribute__((__format__ (gnu_scanf, format_idx, arg_idx))) + #define G_GNUC_FORMAT( arg_idx ) \ + __attribute__((__format_arg__ (arg_idx))) + #define G_GNUC_NORETURN \ +diff -Naur glib-2.46.0-orig/glib/gpoll.h glib-2.46.0/glib/gpoll.h +--- glib-2.46.0-orig/glib/gpoll.h 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/gpoll.h 2015-09-22 09:09:02.118820700 +0300 +@@ -108,7 +108,7 @@ + */ + #ifdef G_OS_WIN32 + #if GLIB_SIZEOF_VOID_P == 8 +-#define G_POLLFD_FORMAT "%#I64x" ++#define G_POLLFD_FORMAT "%#llx" + #else + #define G_POLLFD_FORMAT "%#x" + #endif diff --git a/mingw-w64-pkg-config/1024-return-actually-written-data-in-printf.all.patch b/mingw-w64-pkg-config/1024-return-actually-written-data-in-printf.all.patch new file mode 100644 index 0000000000..478b2be211 --- /dev/null +++ b/mingw-w64-pkg-config/1024-return-actually-written-data-in-printf.all.patch @@ -0,0 +1,23 @@ +diff -Naur glib-2.46.0-orig/glib/gnulib/printf.c glib-2.46.0/glib/gnulib/printf.c +--- glib-2.46.0-orig/glib/gnulib/printf.c 2014-12-20 00:49:48.000000000 +0300 ++++ glib-2.46.0/glib/gnulib/printf.c 2015-09-22 09:09:03.834633700 +0300 +@@ -88,16 +88,16 @@ + int _g_gnulib_vfprintf (FILE *file, char const *format, va_list args) + { + char *result; +- size_t length; ++ size_t length, rlength; + + result = vasnprintf (NULL, &length, format, args); + if (result == NULL) + return -1; + +- fwrite (result, 1, length, file); ++ rlength = fwrite (result, 1, length, file); + free (result); + +- return length; ++ return rlength; + } + + int _g_gnulib_vsprintf (char *string, char const *format, va_list args) diff --git a/mingw-w64-pkg-config/1030-fix-stat.all.patch b/mingw-w64-pkg-config/1030-fix-stat.all.patch new file mode 100644 index 0000000000..06cb998582 --- /dev/null +++ b/mingw-w64-pkg-config/1030-fix-stat.all.patch @@ -0,0 +1,11 @@ +--- glib-2.39.3/glib/gstdio.h.orig 2013-12-09 01:30:33.000000000 +0000 ++++ glib-2.39.3/glib/gstdio.h 2014-01-23 16:01:09.254148700 +0000 +@@ -27,7 +27,7 @@ + + G_BEGIN_DECLS + +-#if defined (_MSC_VER) && !defined(_WIN64) ++#if (defined (__MINGW32__) || defined (_MSC_VER)) && !defined(_WIN64) + + /* Make it clear that we mean the struct with 32-bit st_size and + * 32-bit st_*time fields as that is how the 32-bit GLib DLL normally diff --git a/mingw-w64-pkg-config/PKGBUILD b/mingw-w64-pkg-config/PKGBUILD index d583dd3033..4ef885b675 100644 --- a/mingw-w64-pkg-config/PKGBUILD +++ b/mingw-w64-pkg-config/PKGBUILD @@ -3,8 +3,8 @@ _realname=pkg-config pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.28 -pkgrel=5 +pkgver=0.29 +pkgrel=1 pkgdesc="A system for managing library compile/link flags (mingw-w64)" arch=('any') url="http://pkgconfig.freedesktop.org/wiki/" @@ -14,43 +14,40 @@ conflicts=("${MINGW_PACKAGE_PREFIX}-pkgconf") replaces=("${MINGW_PACKAGE_PREFIX}-pkgconf") groups=("${MINGW_PACKAGE_PREFIX}-toolchain") source=(http://pkgconfig.freedesktop.org/releases/${_realname}-${pkgver}.tar.gz - 0002-check-for-host.mingw.patch - 0003-flush.mingw.patch - 0004-expected-path-for.mingw.patch - 0005-mangle.mingw.patch - 0006-path-for-tests.mingw.patch - 0007-sub-path-for-tests.mingw.patch - 0008-check-for-wine.mingw.patch - 0009-use-wine-if-present.mingw.patch 0010-expand-paths.mingw.patch 0011-platform-dependent-separator-and-adjustable-prefix.mingw.patch - 0099-no-prefix-on.mingw.patch) -md5sums=('aa3c86e67551adc3ac865160e34a2a0d' - '073729fca79eb7415a88eec68504dc92' - 'a14107b8eb8640aac2e59798467128a3' - 'a605f371133ea78af740109a2b690a69' - '0824f3b39004b24168b98280160e4045' - '27602f99a978c28f963afe9313fd1604' - 'e1b804a1b0a15e9af895f6fd92907f23' - '2ba25b1a52a48afa0d2e1b0e06aaa07c' - '377256964716a68e8fe170e8df157641' + 1001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch + 1003-g_abort.all.patch + 1005-glib-send-log-messages-to-correct-stdout-and-stderr.patch + 1017-glib-use-gnu-print-scanf.patch + 1024-return-actually-written-data-in-printf.all.patch + 1030-fix-stat.all.patch) +md5sums=('77f27dce7ef88d0634d0d6f90e03a77f' 'cb65caa60584d471aa6f76b181790ee1' 'd6b6acdb90f93c35378f53e34e7cd6fa' - 'd61554e8456fa9f67fbf90c8219dd2bf') + '10cf1e482b6a1367d79648466f2cf23c' + '629431fe82711812531f6367205783e8' + '80fb538441701d2dd3ab8bcb13baf90c' + '22105e191551caf9d94d9f637f05ed77' + '3f896edd80eaa9c4e98abca0df6c83bd' + '963a72f6efcaa3405204b76b27b44645') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0002-check-for-host.mingw.patch - patch -p1 -i ${srcdir}/0003-flush.mingw.patch - patch -p1 -i ${srcdir}/0004-expected-path-for.mingw.patch - patch -p1 -i ${srcdir}/0005-mangle.mingw.patch - patch -p1 -i ${srcdir}/0006-path-for-tests.mingw.patch - patch -p1 -i ${srcdir}/0007-sub-path-for-tests.mingw.patch - patch -p1 -i ${srcdir}/0008-check-for-wine.mingw.patch - patch -p1 -i ${srcdir}/0009-use-wine-if-present.mingw.patch patch -p1 -i ${srcdir}/0010-expand-paths.mingw.patch patch -p1 -i ${srcdir}/0011-platform-dependent-separator-and-adjustable-prefix.mingw.patch - #patch -p1 -i ${srcdir}/0099-no-prefix-on.mingw.patch + + cd glib + + patch -Np1 -i "${srcdir}/1001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch" + patch -Np1 -i "${srcdir}/1003-g_abort.all.patch" + patch -Np1 -i "${srcdir}/1005-glib-send-log-messages-to-correct-stdout-and-stderr.patch" + patch -Np1 -i "${srcdir}/1017-glib-use-gnu-print-scanf.patch" + patch -Np1 -i "${srcdir}/1024-return-actually-written-data-in-printf.all.patch" + patch -Np1 -i "${srcdir}/1030-fix-stat.all.patch" + + cd .. + autoreconf -fi } From c4c8ac55102bd0d3c37230651845aeacf69a8553 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 5 Oct 2015 11:44:23 +0300 Subject: [PATCH 1671/2060] pixman: Update to 0.33.2 --- mingw-w64-pixman/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-pixman/PKGBUILD b/mingw-w64-pixman/PKGBUILD index fc9e563d13..f21e3f1e2e 100644 --- a/mingw-w64-pixman/PKGBUILD +++ b/mingw-w64-pixman/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Renato Silva _realname=pixman +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.32.6 -pkgrel=3 +pkgver=0.33.2 +pkgrel=1 pkgdesc="The pixel-manipulation library for X and cairo (mingw-w64)" arch=('any') url="http://xorg.freedesktop.org" @@ -13,7 +14,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://xorg.freedesktop.org/releases/individual/lib/pixman-${pkgver}.tar.bz2") -sha1sums=('5b730399e1e212e5acaa69a4f1a2c7be1af1cdc4') +sha1sums=('e1f6beca709fc163f72802d6aa32b13375ea7e55') build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" From 5b9b86417eb53649e674b89eec6a737532cbda5b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 5 Oct 2015 12:14:09 +0300 Subject: [PATCH 1672/2060] harfbuzz: Update to 1.0.4 --- mingw-w64-harfbuzz/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 1a1d19dc84..ec52898250 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -4,7 +4,7 @@ _realname=harfbuzz pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.3 +pkgver=1.0.4 pkgrel=1 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cairo" options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu support") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") -sha256sums=('ebdc875ea06d010722dec13d92bc40002ab6a77071d62e71aad564ff76a63df7') +sha256sums=('b030373457e7c00d3a7920f15e6fcd35defac3c4e44cd14ed85869030df74381') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 97cb820b6c423ae9bfb48884f146437cdc5a1005 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 5 Oct 2015 12:14:21 +0300 Subject: [PATCH 1673/2060] libblueray: Update to 0.9.0 --- mingw-w64-libblueray/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libblueray/PKGBUILD b/mingw-w64-libblueray/PKGBUILD index 29934267d8..238278e570 100644 --- a/mingw-w64-libblueray/PKGBUILD +++ b/mingw-w64-libblueray/PKGBUILD @@ -3,9 +3,9 @@ _realname=libbluray pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.8.1 +pkgver=0.9.0 pkgrel=1 -pkgdesc='Library to access Blu-Ray disks for video playback (mingw-w64)' +pkgdesc="Library to access Blu-Ray disks for video playback (mingw-w64)" arch=('any') url='http://www.videolan.org/developers/libbluray.html' license=('LGPL2.1') @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(ftp://ftp.videolan.org/pub/videolan/libbluray/${pkgver}/${_realname}-${pkgver}.tar.bz2 no-undefined.patch) -md5sums=('c7a89966ad091fa6075a58d31a698e70' +md5sums=('a4e8077b9fd82349c767cef2ba9bd750' 'abefd822b6db0a042640e9a6dda06254') prepare() { From 861c312c91d8e20316905ef54dcbceefd9a07d7b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 5 Oct 2015 19:32:05 +0100 Subject: [PATCH 1674/2060] python3: Bring XP support back to 3.5.0 --- ...compat-GetProcAddress-GetTickCount64.patch | 46 +++++++ ...rocAddress-GetFinalPathNameByHandleW.patch | 114 ++++++++++++++++++ mingw-w64-python3/PKGBUILD | 8 +- 3 files changed, 167 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-python3/0950-mingw-w64-XP3-compat-GetProcAddress-GetTickCount64.patch create mode 100644 mingw-w64-python3/0960-mingw-w64-XP3-compat-GetProcAddress-GetFinalPathNameByHandleW.patch diff --git a/mingw-w64-python3/0950-mingw-w64-XP3-compat-GetProcAddress-GetTickCount64.patch b/mingw-w64-python3/0950-mingw-w64-XP3-compat-GetProcAddress-GetTickCount64.patch new file mode 100644 index 0000000000..8de82ac14c --- /dev/null +++ b/mingw-w64-python3/0950-mingw-w64-XP3-compat-GetProcAddress-GetTickCount64.patch @@ -0,0 +1,46 @@ +--- Python-3.5.0/Python/pytime.c.orig 2015-10-05 21:30:23.839918600 +0100 ++++ Python-3.5.0/Python/pytime.c 2015-10-05 21:30:28.078842500 +0100 +@@ -435,7 +435,7 @@ + /* 11,644,473,600,000,000,000: number of nanoseconds between + the 1st january 1601 and the 1st january 1970 (369 years + 89 leap + days). */ +- *tp = large.QuadPart * 100 - 11644473600000000000; ++ *tp = large.QuadPart * 100 - 11644473600000000000ULL; + if (info) { + DWORD timeAdjustment, timeIncrement; + BOOL isTimeAdjustmentDisabled, ok; +@@ -529,6 +529,34 @@ + return pygettimeofday_new(t, info, 1); + } + ++#if defined(MS_WINDOWS) && _WIN32_WINNT < 0x0600 ++/* GetTickCount64() is not available on XP. */ ++ULONGLONG GetTickCount64 () ++{ ++ static ULONGLONG (CALLBACK *Py_GetTickCount64)() = (ULONGLONG (*)(void))-1; ++ static DWORD last_ticks = 0; ++ static DWORD n_overflow = 0; ++ DWORD ticks = 0; ++ HINSTANCE hKernel32; ++ ++ if (Py_GetTickCount64 == (void*)-1) ++ { ++ hKernel32 = GetModuleHandleW(L"KERNEL32"); ++ Py_GetTickCount64 = *(ULONGLONG (*)(void))(GetProcAddress(hKernel32, ++ "GetTickCount64")); ++ } ++ if (Py_GetTickCount64 != (void*)-1) ++ { ++ return Py_GetTickCount64(); ++ } ++ ++ ticks = GetTickCount(); ++ if (ticks < last_ticks) ++ n_overflow++; ++ last_ticks = ticks; ++ return ((ULONGLONG)n_overflow << 32LL) + (ULONGLONG)GetTickCount(); ++} ++#endif + + static int + pymonotonic_new(_PyTime_t *tp, _Py_clock_info_t *info, int raise) diff --git a/mingw-w64-python3/0960-mingw-w64-XP3-compat-GetProcAddress-GetFinalPathNameByHandleW.patch b/mingw-w64-python3/0960-mingw-w64-XP3-compat-GetProcAddress-GetFinalPathNameByHandleW.patch new file mode 100644 index 0000000000..f16e347efc --- /dev/null +++ b/mingw-w64-python3/0960-mingw-w64-XP3-compat-GetProcAddress-GetFinalPathNameByHandleW.patch @@ -0,0 +1,114 @@ +--- Python-3.5.0/Modules/posixmodule.c.orig 2015-10-05 21:34:15.284022500 +0100 ++++ Python-3.5.0/Modules/posixmodule.c 2015-10-05 21:34:18.082536800 +0100 +@@ -1462,6 +1462,31 @@ + return TRUE; + } + ++/* Grab GetFinalPathNameByHandle dynamically from kernel32 */ ++static int has_GetFinalPathNameByHandle = -1; ++static DWORD (CALLBACK *Py_GetFinalPathNameByHandleW)(HANDLE, LPWSTR, DWORD, ++ DWORD); ++static int ++check_GetFinalPathNameByHandle() ++{ ++ HINSTANCE hKernel32; ++ DWORD (CALLBACK *Py_GetFinalPathNameByHandleA)(HANDLE, LPSTR, DWORD, ++ DWORD); ++ ++ /* only recheck */ ++ if (-1 == has_GetFinalPathNameByHandle) ++ { ++ hKernel32 = GetModuleHandleW(L"KERNEL32"); ++ *(FARPROC*)&Py_GetFinalPathNameByHandleA = GetProcAddress(hKernel32, ++ "GetFinalPathNameByHandleA"); ++ *(FARPROC*)&Py_GetFinalPathNameByHandleW = GetProcAddress(hKernel32, ++ "GetFinalPathNameByHandleW"); ++ has_GetFinalPathNameByHandle = Py_GetFinalPathNameByHandleA && ++ Py_GetFinalPathNameByHandleW; ++ } ++ return has_GetFinalPathNameByHandle; ++} ++ + static BOOL + get_target_path(HANDLE hdl, wchar_t **target_path) + { +@@ -1470,8 +1495,8 @@ + + /* We have a good handle to the target, use it to determine + the target path name (then we'll call lstat on it). */ +- buf_size = GetFinalPathNameByHandleW(hdl, 0, 0, +- VOLUME_NAME_DOS); ++ buf_size = Py_GetFinalPathNameByHandleW(hdl, 0, 0, ++ VOLUME_NAME_DOS); + if(!buf_size) + return FALSE; + +@@ -1481,7 +1506,7 @@ + return FALSE; + } + +- result_length = GetFinalPathNameByHandleW(hdl, ++ result_length = Py_GetFinalPathNameByHandleW(hdl, + buf, buf_size, VOLUME_NAME_DOS); + + if(!result_length) { +@@ -1514,6 +1539,12 @@ + wchar_t *target_path; + const char *dot; + ++ if(!check_GetFinalPathNameByHandle()) { ++ /* If the OS doesn't have GetFinalPathNameByHandle, don't ++ traverse reparse point. */ ++ traverse = FALSE; ++ } ++ + hFile = CreateFileA( + path, + FILE_READ_ATTRIBUTES, /* desired access */ +@@ -1604,6 +1635,12 @@ + wchar_t *target_path; + const wchar_t *dot; + ++ if(!check_GetFinalPathNameByHandle()) { ++ /* If the OS doesn't have GetFinalPathNameByHandle, don't ++ traverse reparse point. */ ++ traverse = FALSE; ++ } ++ + hFile = CreateFileW( + path, + FILE_READ_ATTRIBUTES, /* desired access */ +@@ -3846,6 +3883,13 @@ + if (path_wchar == NULL) + return NULL; + ++ if(!check_GetFinalPathNameByHandle()) { ++ /* If the OS doesn't have GetFinalPathNameByHandle, return a ++ NotImplementedError. */ ++ return PyErr_Format(PyExc_NotImplementedError, ++ "GetFinalPathNameByHandle not available on this platform"); ++ } ++ + hFile = CreateFileW( + path_wchar, + 0, /* desired access */ +@@ -3861,7 +3905,7 @@ + + /* We have a good handle to the target, use it to determine the + target path name. */ +- buf_size = GetFinalPathNameByHandleW(hFile, 0, 0, VOLUME_NAME_NT); ++ buf_size = Py_GetFinalPathNameByHandleW(hFile, 0, 0, VOLUME_NAME_NT); + + if(!buf_size) + return win32_error_object("GetFinalPathNameByHandle", path); +@@ -3870,8 +3914,8 @@ + if(!target_path) + return PyErr_NoMemory(); + +- result_length = GetFinalPathNameByHandleW(hFile, target_path, +- buf_size, VOLUME_NAME_DOS); ++ result_length = Py_GetFinalPathNameByHandleW(hFile, target_path, ++ buf_size, VOLUME_NAME_DOS); + if(!result_length) + return win32_error_object("GetFinalPathNamyByHandle", path); + diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index d4e25ca80c..94c073c454 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -18,7 +18,7 @@ pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.5 pkgver=${_pybasever}.0 -pkgrel=1 +pkgrel=2 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -120,6 +120,8 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0920-mingw-add-LIBPL-to-library-dirs.patch 0930-mingw-w64-build-overlapped-module.patch 0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch + 0950-mingw-w64-XP3-compat-GetProcAddress-GetTickCount64.patch + 0960-mingw-w64-XP3-compat-GetProcAddress-GetFinalPathNameByHandleW.patch 1000-fix-building-posixmodule.patch 1010-install-msilib.patch 1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch) @@ -222,6 +224,8 @@ prepare() { patch -Np1 -i "${srcdir}"/0920-mingw-add-LIBPL-to-library-dirs.patch patch -Np1 -i "${srcdir}"/0930-mingw-w64-build-overlapped-module.patch patch -Np1 -i "${srcdir}"/0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch + patch -Np1 -i "${srcdir}"/0950-mingw-w64-XP3-compat-GetProcAddress-GetTickCount64.patch + patch -Np1 -i "${srcdir}"/0960-mingw-w64-XP3-compat-GetProcAddress-GetFinalPathNameByHandleW.patch patch -Np1 -i "${srcdir}"/1000-fix-building-posixmodule.patch patch -Np1 -i "${srcdir}"/1010-install-msilib.patch @@ -461,6 +465,8 @@ sha1sums=('871a06df9ab70984b7398ac53047fe125c757a70' 'ce026983639b7e5e503b32345bbcf81972447868' '8ca0fdb71ee8198997b30466c367ac0c84f14237' '4564e95c83e30dca025d6a7ecf0b24a709ea5120' + '79ff9a468dcfd2c55afa70758bd6a50b2a940ed4' + '2bf23da1017ab6ed5bc59c4f3fbf713093036a09' 'a97dbe5299385b9fde442779d00f9a161ef3f950' 'd5c9e4e47db62db241f4488d9bc974b083b7b0e3' 'c7eb543aee59f4c246018fa7943a1eaa12e6809c') From 6acb30eeef86aa4cf601607d40324520413a5272 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 5 Oct 2015 22:34:34 +0100 Subject: [PATCH 1675/2060] pip: Update for Python 3.5.0 --- mingw-w64-python-pip/PKGBUILD | 4 ++-- mingw-w64-python-pip/pip3-i686.install | 2 +- mingw-w64-python-pip/pip3-x86_64.install | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-python-pip/PKGBUILD b/mingw-w64-python-pip/PKGBUILD index 7ba10038ed..60ba8e2e24 100644 --- a/mingw-w64-python-pip/PKGBUILD +++ b/mingw-w64-python-pip/PKGBUILD @@ -2,7 +2,7 @@ _realname=pip pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=7.1.0 +pkgver=7.1.2 pkgrel=1 pkgdesc="An easy_install replacement for installing pypi python packages (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=(http://pypi.python.org/packages/source/p/pip/${_realname}-${pkgver}.tar.gz) -md5sums=('d935ee9146074b1d3f26c5f0acfd120e') +md5sums=('3823d2343d9f3aaab21cf9c917710196') prepare() { cp -r ${_realname}-${pkgver} ${_realname}-python2 diff --git a/mingw-w64-python-pip/pip3-i686.install b/mingw-w64-python-pip/pip3-i686.install index d44ef170b8..9d29857c51 100644 --- a/mingw-w64-python-pip/pip3-i686.install +++ b/mingw-w64-python-pip/pip3-i686.install @@ -3,7 +3,7 @@ post_install() { local _prefix=$(pwd -W) cd - local _it - for _it in pip3 pip3.4; do + for _it in pip3 pip3.5; do sed -e "s|/mingw32|${_prefix}|g" \ -i mingw32/bin/${_it}-script.py done diff --git a/mingw-w64-python-pip/pip3-x86_64.install b/mingw-w64-python-pip/pip3-x86_64.install index def14d2a07..e552e22180 100644 --- a/mingw-w64-python-pip/pip3-x86_64.install +++ b/mingw-w64-python-pip/pip3-x86_64.install @@ -3,7 +3,7 @@ post_install() { local _prefix=$(pwd -W) cd - local _it - for _it in pip3 pip3.4; do + for _it in pip3 pip3.5; do sed -e "s|/mingw64|${_prefix}|g" \ -i mingw64/bin/${_it}-script.py done From a0fd5ed0ecc2cd813e14b07f4c13b4da9b20ff54 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 5 Oct 2015 22:45:49 +0100 Subject: [PATCH 1676/2060] setuptools: Update to 18.3.2 and Python 3.5.0 --- mingw-w64-python-setuptools/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index 162b563708..5e91222f3b 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -5,9 +5,9 @@ _realname=setuptools pkgbase=mingw-w64-python-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") -_py3_base=3.4 +_py3_base=3.5 _py2_base=2.7 -pkgver=18.2 +pkgver=18.3.2 pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" arch=('any') @@ -19,7 +19,7 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('55033c6e68189bc10b848beda27044e07e384b41' +sha1sums=('7a0c0f378dcb6ffcb863ccd9503a647ff4ad3ae9' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' From 8138909f70c2a26decf20c80a3ace38290de00e1 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 6 Oct 2015 10:35:56 +0300 Subject: [PATCH 1677/2060] gcc: Fix PKGBUILD --- mingw-w64-gcc/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 367c1bc123..8c9cb2f236 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -4,6 +4,7 @@ # Contributor: Renato Silva _realname=gcc +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-libs" "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran" From 36c64d350d0113399ec977cef160ea38b5cf51ce Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Tue, 6 Oct 2015 19:51:17 +1100 Subject: [PATCH 1678/2060] mpv: Update to 0.11.0 --- mingw-w64-mpv/PKGBUILD | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mingw-w64-mpv/PKGBUILD b/mingw-w64-mpv/PKGBUILD index a6a6824818..eec17737e0 100644 --- a/mingw-w64-mpv/PKGBUILD +++ b/mingw-w64-mpv/PKGBUILD @@ -4,7 +4,7 @@ _realname=mpv pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.10.0 +pkgver=0.11.0 pkgrel=1 pkgdesc="Video player based on MPlayer/mplayer2 (mingw-w64)" url="http://mpv.io" @@ -30,7 +30,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "pkg-config" "python") source=(${_realname}-${pkgver}.tar.gz::https://github.com/mpv-player/${_realname}/archive/v${pkgver}.tar.gz) -md5sums=('e81a975e4fa17f500dc2e7ea3d3ecf25') +md5sums=('988bec97a4057beecc2f6a8a2c18e342') # strip doesn't work well with the mpv.com wrapper, so strip manually instead options=(!strip !emptydirs) @@ -56,7 +56,6 @@ build() { --check-c-compiler=gcc \ --enable-libmpv-shared \ --disable-cdda \ - --disable-ladspa \ --enable-caca \ --enable-dvdnav \ --enable-dvdread \ From ee8e42b2363953375b4eb0dd2a1b4730f3c52b1d Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Tue, 6 Oct 2015 19:51:38 +1100 Subject: [PATCH 1679/2060] libass: Update to 0.13.0 --- mingw-w64-libass/PKGBUILD | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/mingw-w64-libass/PKGBUILD b/mingw-w64-libass/PKGBUILD index 7f52183639..caac21cc5e 100644 --- a/mingw-w64-libass/PKGBUILD +++ b/mingw-w64-libass/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libass +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.12.3 +pkgver=0.13.0 pkgrel=1 pkgdesc="A portable library for SSA/ASS subtitles rendering (mingw-w64)" arch=('any') @@ -11,19 +12,13 @@ license=('ISC') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-yasm" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-enca" - "${MINGW_PACKAGE_PREFIX}-fribidi" +depends=("${MINGW_PACKAGE_PREFIX}-fribidi" "${MINGW_PACKAGE_PREFIX}-fontconfig" "${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-harfbuzz") options=('strip' 'staticlibs') -source=("${_realname}-${pkgver}.tar.gz"::https://github.com/libass/${_realname}/archive/${pkgver}.tar.gz) -md5sums=('1b53e739ab389335ce46fd626777ec61') - -prepare() { - cd "${srcdir}/${_realname}-${pkgver}" - ./autogen.sh -} +source=(https://github.com/libass/${_realname}/releases/download/${pkgver}/${_realname}-${pkgver}.tar.xz) +md5sums=('8e6a506b4e5a637764183083421dc827') build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" @@ -38,7 +33,6 @@ build() { --enable-static \ --enable-harfbuzz \ --enable-fontconfig \ - --enable-enca \ --enable-asm make } From 9123e30444446f427247b0a65c5fe5a7bd911fb8 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 6 Oct 2015 12:13:59 +0300 Subject: [PATCH 1680/2060] clang: Fix checksums --- mingw-w64-clang/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index bebcd81cc4..f79757515d 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -79,7 +79,7 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' 'cd3a1d925d301795f50a3d65579aea71101ffab7e011809ba8323ea6d6b9848d' - 'e0f4127df5857af667a9e40e2a7a13877352b89c99f3213b491215bf7bd03565' + '59e7afa5e74d186ad596c9a7625d6022fde0679faea9d1fd516fe0a622dbc01a' '47fbe90718742d1a3c0aee919b159241e616738447de3505a48a9f5886e5db96' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' '96a6fcd81b8d5134b4273a2e413cd268430022533f1bfb44ed73503ee0ae7e87' From d11951a5efe81e2c54e7fb1578962db4c104a827 Mon Sep 17 00:00:00 2001 From: Andrew Chadwick Date: Tue, 6 Oct 2015 10:42:06 +0100 Subject: [PATCH 1681/2060] gtk3: fix bad patch reapply that breaks toarray.pl Repeatedly re-running prepare() was causing /usr/bin/patch to brokenly append 0056-missing-file-toarray-pl.patch's "+" lines to toarray.pl every time, with a mangled "#!" line half-way through the resultant mess. Surprisingly, this line noise is invalid Perl syntax. The broken "#!" line problem was seemingly caused by a lack of the "-n" flag to echo, but for some reason the redirection itself was not blanking the file at all. There's some weird underlying bug here, but the workaround is to remove the previously created file on each prepare(). --- mingw-w64-gtk3/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 616f6dd2f7..801cddad12 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -42,7 +42,7 @@ prepare() { patch -Np1 -i "${srcdir}"/0013-fix-mingw-w64-fstat-call.mingw.patch patch -Np1 -i "${srcdir}"/060-fix-tests.patch - echo "" > gdk/broadway/toarray.pl + rm -f gdk/broadway/toarray.pl patch -p1 -i ${srcdir}/0056-missing-file-toarray-pl.patch autoreconf -i From 12673edd972deb4d0be760eb4da7d9220e79a5bc Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 7 Oct 2015 12:30:59 +0300 Subject: [PATCH 1682/2060] gtk3: Update to 3.18.1 --- mingw-w64-gtk3/060-fix-tests.patch | 14 -------------- mingw-w64-gtk3/PKGBUILD | 11 ++++------- 2 files changed, 4 insertions(+), 21 deletions(-) delete mode 100644 mingw-w64-gtk3/060-fix-tests.patch diff --git a/mingw-w64-gtk3/060-fix-tests.patch b/mingw-w64-gtk3/060-fix-tests.patch deleted file mode 100644 index 5ad8dd8035..0000000000 --- a/mingw-w64-gtk3/060-fix-tests.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- gtk+-3.18.0/testsuite/gtk/notify.c.orig 2015-09-22 11:18:22.102607400 +0300 -+++ gtk+-3.18.0/testsuite/gtk/notify.c 2015-09-22 11:18:32.959024200 +0300 -@@ -418,10 +418,10 @@ - #ifdef GDK_WINDOWING_X11 - if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) ; - else --#endif - if (g_type_is_a (type, GTK_TYPE_PLUG) || - g_type_is_a (type, GTK_TYPE_SOCKET)) - return; -+#endif - - #ifdef GDK_WINDOWING_WAYLAND - if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ())) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 801cddad12..96cdb4a76a 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtk3 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.18.0 +pkgver=3.18.1 pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') @@ -30,17 +30,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" 0013-fix-mingw-w64-fstat-call.mingw.patch - 0056-missing-file-toarray-pl.patch - 060-fix-tests.patch) -md5sums=('7bb716b637ab413bdefd773e520c474c' + 0056-missing-file-toarray-pl.patch) +md5sums=('b4d4d30d90f4831855b410fb6a1fae63' '21789d52c1debcab59f8b6a99232de68' - 'f25cb2486d761b60e04036947552bf82' - '792f715a5b342e63da24e13d5c01db1e') + 'f25cb2486d761b60e04036947552bf82') prepare() { cd "${srcdir}/gtk+-${pkgver}" patch -Np1 -i "${srcdir}"/0013-fix-mingw-w64-fstat-call.mingw.patch - patch -Np1 -i "${srcdir}"/060-fix-tests.patch rm -f gdk/broadway/toarray.pl patch -p1 -i ${srcdir}/0056-missing-file-toarray-pl.patch From 9976f360ab4ca757f6ab344ac4434ffd3d71d29a Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Wed, 7 Oct 2015 19:36:47 +0300 Subject: [PATCH 1683/2060] mbedtls: Update to 2.1.2 8 security patches, 1 bugfix Changelog: https://tls.mbed.org/tech-updates/releases/mbedtls-2.1.2-and-1.3.14-and-polarssl-1.2.17-released --- mingw-w64-mbedtls/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-mbedtls/PKGBUILD b/mingw-w64-mbedtls/PKGBUILD index 6d61b2b7a0..e38c032b1a 100644 --- a/mingw-w64-mbedtls/PKGBUILD +++ b/mingw-w64-mbedtls/PKGBUILD @@ -3,8 +3,8 @@ _realname=mbedtls pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.1 -pkgrel=2 +pkgver=2.1.2 +pkgrel=1 arch=('any') url='https://tls.mbed.org/' pkgdesc='mbed TLS is an open source and commercial SSL library licensed by ARM Limited. (mingw-w64)' @@ -19,7 +19,7 @@ source=(${_realname}-${pkgver}.tar.gz::"https://tls.mbed.org/download/mbedtls-${ 'symlink-test.patch' 'dll-location.patch' 'enable-features.patch') -sha1sums=('f4348b730a8731f5ed2bacb458ffa053798cc5ff' +sha1sums=('c99dfeaa27489f0e74e704e69a181f6ceb3db2a7' '72e420d5676007a168a82210dba960bea4e29190' 'e905d99cacf3b3d91872e8736ff03ef950b32a34' '9ce57bb1e9dd0298454b48faa0f1b5317d245cdb') From e9ddef86a1c56ab4679cc14df5c77d9eb07e1337 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 8 Oct 2015 13:19:09 +0300 Subject: [PATCH 1684/2060] python3: Fix path separators under cmd/shell --- ...msys-mingw-prefer-unix-sep-if-MSYSTEM.patch | 18 ++++++++++-------- mingw-w64-python3/PKGBUILD | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch b/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch index 9470fa0acd..aec94877d4 100644 --- a/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch +++ b/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch @@ -17,7 +17,7 @@ diff -Naur Python-3.5.0-orig/Include/pylifecycle.h Python-3.5.0/Include/pylifecy diff -Naur Python-3.5.0-orig/Lib/ntpath.py Python-3.5.0/Lib/ntpath.py --- Python-3.5.0-orig/Lib/ntpath.py 2015-09-13 14:41:21.000000000 +0300 +++ Python-3.5.0/Lib/ntpath.py 2015-09-21 13:42:03.025345600 +0300 -@@ -24,9 +24,13 @@ +@@ -24,9 +24,15 @@ curdir = '.' pardir = '..' extsep = '.' @@ -28,6 +28,8 @@ diff -Naur Python-3.5.0-orig/Lib/ntpath.py Python-3.5.0/Lib/ntpath.py +else: + sep = '\\' + altsep = '/' ++bsep = str.encode(sep) ++baltsep = str.encode(altsep) pathsep = ';' -altsep = '/' defpath = '.;C:\\bin' @@ -38,22 +40,22 @@ diff -Naur Python-3.5.0-orig/Lib/ntpath.py Python-3.5.0/Lib/ntpath.py def _get_bothseps(path): if isinstance(path, bytes): - return b'\\/' -+ return str.encode(sep+altsep) ++ return bsep+baltsep else: - return '\\/' + return sep+altsep + +def _get_sep(path): + if isinstance(path, bytes): -+ return b'\\' ++ return bsep + else: -+ return '\\' ++ return sep + +def _get_altsep(path): + if isinstance(path, bytes): -+ return b'/' ++ return baltsep + else: -+ return '/' ++ return altsep + +def _get_colon(path): + if isinstance(path, bytes): @@ -68,7 +70,7 @@ diff -Naur Python-3.5.0-orig/Lib/ntpath.py Python-3.5.0/Lib/ntpath.py try: if isinstance(s, bytes): - return s.replace(b'/', b'\\').lower() -+ return s.replace(str.encode(altsep), str.encode(sep)).lower() ++ return s.replace(baltsep, bsep).lower() else: - return s.replace('/', '\\').lower() + return s.replace(altsep, sep).lower() @@ -115,7 +117,7 @@ diff -Naur Python-3.5.0-orig/Lib/ntpath.py Python-3.5.0/Lib/ntpath.py def splitext(p): if isinstance(p, bytes): - return genericpath._splitext(p, b'\\', b'/', b'.') -+ return genericpath._splitext(p, str.encode(sep), str.encode(altsep), b'.') ++ return genericpath._splitext(p, bsep, baltsep, b'.') else: - return genericpath._splitext(p, '\\', '/', '.') + return genericpath._splitext(p, sep, altsep, '.') diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 94c073c454..30a53922ae 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -430,7 +430,7 @@ sha1sums=('871a06df9ab70984b7398ac53047fe125c757a70' '7f9516ae8b862fa589129298be76cdd76d4667ae' '55f4167c6c5627ce0f8ffbb97490432f2d1bf5f0' '7cd0a741434b7f28923adae71023e512dc01efc5' - 'e42bd23ce7f259bb3083c30a2822937b7d421e39' + '4e9b409e8ae1ca3d6dc4176d175d58a1bbdcfe85' '2fade3fd50c3213a7e0f47bd0f6051e7c46ffa1f' '8ee814ffcb3b896b170ddd0bfe35dc2a1722c2f9' 'cb3923149a09fccfe3e39a746970fb43256f08e4' From 4b60e4c1d98dfab57b1be6a0b260f0f89091aadb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 8 Oct 2015 15:32:52 +0300 Subject: [PATCH 1685/2060] numpy: Update to 1.10.0 --- mingw-w64-python-numpy/1.0.4-fenv.patch | 18 ----- mingw-w64-python-numpy/PKGBUILD | 41 +++++----- .../detect-mingw-environment.patch | 21 ++++++ .../disable-visualcompaq-for-mingw.patch | 29 +++++++ .../fix-finding-python2.patch | 75 ++++++++----------- .../gfortran-better-version-check.patch | 22 +++--- .../mincoming-stack-boundary-only-32bit.patch | 71 ++++++++++++++++++ 7 files changed, 186 insertions(+), 91 deletions(-) delete mode 100644 mingw-w64-python-numpy/1.0.4-fenv.patch create mode 100644 mingw-w64-python-numpy/detect-mingw-environment.patch create mode 100644 mingw-w64-python-numpy/disable-visualcompaq-for-mingw.patch create mode 100644 mingw-w64-python-numpy/mincoming-stack-boundary-only-32bit.patch diff --git a/mingw-w64-python-numpy/1.0.4-fenv.patch b/mingw-w64-python-numpy/1.0.4-fenv.patch deleted file mode 100644 index d72bce7b5e..0000000000 --- a/mingw-w64-python-numpy/1.0.4-fenv.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- numpy-1.0.4/numpy/core/include/numpy/fenv/fenv.c.orig 2007-11-07 16:05:15.000000000 -0600 -+++ numpy-1.0.4/numpy/core/include/numpy/fenv/fenv.c 2007-11-29 22:29:31.513750000 -0600 -@@ -26,6 +26,9 @@ - * $FreeBSD$ - */ - -+#ifndef NUMPY_FENV_C -+#define NUMPY_FENV_C -+ - #include - #include "fenv.h" - -@@ -36,3 +39,5 @@ - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff } - }; -+ -+#endif /* NUMPY_FENV_C */ diff --git a/mingw-w64-python-numpy/PKGBUILD b/mingw-w64-python-numpy/PKGBUILD index 95dba46042..59e4e83639 100644 --- a/mingw-w64-python-numpy/PKGBUILD +++ b/mingw-w64-python-numpy/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Ray Donnelly _realname=numpy +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.9.2 -pkgrel=3 +pkgver=1.10.0 +pkgrel=1 pkgdesc="Scientific tools for Python (mingw-w64)" arch=('any') license=('BSD') @@ -17,28 +18,34 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-openblas" "${MINGW_PACKAGE_PREFIX}-gcc-fortran") options=('staticlibs' 'strip' '!debug') source=(http://downloads.sourceforge.net/numpy/${_realname}-${pkgver}.tar.gz + detect-mingw-environment.patch fix-finding-python2.patch gfortran-better-version-check.patch fix-testsuite.patch - 1.0.4-fenv.patch) -md5sums=('a1ed53432dbcd256398898d35bc8e645' - '6f03968645956c24216763b6ccce609d' - '58aff1fb52401458bfd6a03c9b3b5e32' + mincoming-stack-boundary-only-32bit.patch + disable-visualcompaq-for-mingw.patch) +md5sums=('116c65ae392e9b50aad713f42158f32a' + 'e2c63f8472ea162d442beb9f05441f9d' + 'c9e172056f09052d17cf8162b9cf5b3a' + 'f4a729b29154f1fde5ffe911beef5984' '59c4e9b71cc7b297099b4430bcb7ea28' - 'c0a280441fff1a8c15a11d7e567f2544') + 'abc51ef8452d30fd83c69eb183425b16' + 'c4fd82349f2c2c9352ae666b91b7ceea') prepare() { cd ${_realname}-${pkgver} + patch -Np1 -i ${srcdir}/detect-mingw-environment.patch patch -Np1 -i ${srcdir}/fix-finding-python2.patch patch -Np1 -i ${srcdir}/gfortran-better-version-check.patch patch -Np1 -i ${srcdir}/fix-testsuite.patch - patch -Np1 -i ${srcdir}/1.0.4-fenv.patch + patch -Np1 -i ${srcdir}/mincoming-stack-boundary-only-32bit.patch + patch -Np1 -i ${srcdir}/disable-visualcompaq-for-mingw.patch cd .. - cp -a numpy-${pkgver} numpy-py2-${pkgver}-${CARCH} - cp -a numpy-${pkgver} numpy-py3-${pkgver}-${CARCH} + cp -a numpy-${pkgver} ${_realname}-py2-${CARCH} + cp -a numpy-${pkgver} ${_realname}-py3-${CARCH} - cd numpy-py2-${pkgver}-${CARCH} + cd ${_realname}-py2-${CARCH} sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ -e "s|#![ ]*/bin/env python$|#!/usr/bin/env python2|" \ @@ -50,12 +57,12 @@ build() { export LDFLAGS="$LDFLAGS -shared" echo "Building Python2" - cd numpy-py2-${pkgver}-${CARCH} + cd ${_realname}-py2-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py config_fc --fcompiler=gnu95 build echo "Building Python3" - cd ../numpy-py3-${pkgver}-${CARCH} + cd ../${_realname}-py3-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py config_fc --fcompiler=gnu95 build } @@ -69,7 +76,7 @@ package_python2-numpy() { export ATLAS=None export LDFLAGS="$LDFLAGS -shared" - cd numpy-py2-${pkgver}-${CARCH} + cd ${_realname}-py2-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py config_fc --fcompiler=gnu95 install --prefix=${MINGW_PREFIX} --root="${pkgdir}" --optimize=1 @@ -90,13 +97,13 @@ package_python3-numpy() { depends=("${MINGW_PACKAGE_PREFIX}-openblas" "${MINGW_PACKAGE_PREFIX}-python3") optdepends=("${MINGW_PACKAGE_PREFIX}-python3-nose: testsuite") - _pyver=3.4 - _pyinc=3.4m + _pyver=3.5 + _pyinc=${_pyver}m export ATLAS=None export LDFLAGS="$LDFLAGS -shared" - cd numpy-py3-${pkgver}-${CARCH} + cd ${_realname}-py3-${CARCH} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py config_fc --fcompiler=gnu95 install --prefix=${MINGW_PREFIX} --root="${pkgdir}" --optimize=1 diff --git a/mingw-w64-python-numpy/detect-mingw-environment.patch b/mingw-w64-python-numpy/detect-mingw-environment.patch new file mode 100644 index 0000000000..62bfc375a1 --- /dev/null +++ b/mingw-w64-python-numpy/detect-mingw-environment.patch @@ -0,0 +1,21 @@ +--- numpy-1.10.0/numpy/distutils/misc_util.py.orig 2015-10-08 15:20:14.760758300 +0300 ++++ numpy-1.10.0/numpy/distutils/misc_util.py 2015-10-08 15:21:22.951938500 +0300 +@@ -13,6 +13,7 @@ + + import distutils + from distutils.errors import DistutilsError ++from sysconfig import _POSIX_BUILD + try: + from threading import local as tlocal + except ImportError: +@@ -385,6 +386,10 @@ + return True + if os.environ.get('MSYSTEM', '')=='MINGW32': + return True ++ if os.environ.get('MSYSTEM', '')=='MINGW64': ++ return True ++ if _POSIX_BUILD: ++ return True + return False + + def msvc_runtime_library(): diff --git a/mingw-w64-python-numpy/disable-visualcompaq-for-mingw.patch b/mingw-w64-python-numpy/disable-visualcompaq-for-mingw.patch new file mode 100644 index 0000000000..0f61b4c558 --- /dev/null +++ b/mingw-w64-python-numpy/disable-visualcompaq-for-mingw.patch @@ -0,0 +1,29 @@ +--- numpy-1.10.0/numpy/distutils/fcompiler/compaq.py.orig 2015-10-08 14:58:05.495698100 +0300 ++++ numpy-1.10.0/numpy/distutils/fcompiler/compaq.py 2015-10-08 14:59:02.712975800 +0300 +@@ -4,13 +4,14 @@ + + import os + import sys ++from sysconfig import _POSIX_BUILD + + from numpy.distutils.fcompiler import FCompiler + from numpy.distutils.compat import get_exception + from distutils.errors import DistutilsPlatformError + + compilers = ['CompaqFCompiler'] +-if os.name != 'posix' or sys.platform[:6] == 'cygwin' : ++if (os.name != 'posix' or sys.platform[:6] == 'cygwin') and not _POSIX_BUILD : + # Otherwise we'd get a false positive on posix systems with + # case-insensitive filesystems (like darwin), because we'll pick + # up /bin/df +--- numpy-1.10.0/numpy/distutils/msvccompiler.py.orig 2015-10-08 15:14:33.374900300 +0300 ++++ numpy-1.10.0/numpy/distutils/msvccompiler.py 2015-10-08 15:14:40.886149100 +0300 +@@ -10,7 +10,7 @@ + def initialize(self, plat_name=None): + environ_lib = os.getenv('lib') + environ_include = os.getenv('include') +- distutils.msvccompiler.MSVCCompiler.initialize(self, plat_name) ++ distutils.msvccompiler.MSVCCompiler.initialize(self) + if environ_lib is not None: + os.environ['lib'] = environ_lib + os.environ['lib'] + if environ_include is not None: diff --git a/mingw-w64-python-numpy/fix-finding-python2.patch b/mingw-w64-python-numpy/fix-finding-python2.patch index d21541d247..d84aeb892d 100644 --- a/mingw-w64-python-numpy/fix-finding-python2.patch +++ b/mingw-w64-python-numpy/fix-finding-python2.patch @@ -1,30 +1,38 @@ ---- numpy-py2-1.8.0/numpy/distutils/mingw32ccompiler.py 2014-02-19 01:07:43.787600000 +0400 -+++ numpy-1.8.0/numpy/distutils/mingw32ccompiler.py 2014-02-19 01:26:21.634200000 +0400 -@@ -86,22 +86,6 @@ - self.linker = 'g++' - - # **changes: eric jones 4/11/01 -- # 1. Check for import library on Windows. Build if it doesn't exist. +--- numpy-py2-1.10.0/numpy/distutils/mingw32ccompiler.py 2014-02-19 01:07:43.787600000 +0400 ++++ numpy-1.10.0/numpy/distutils/mingw32ccompiler.py 2014-02-19 01:26:21.634200000 +0400 +@@ -91,30 +91,6 @@ + stdout=subprocess.PIPE) + out_string = p.stdout.read() + p.stdout.close() - -- build_import_library() +- # Before build with MinGW-W64 generate the python import library +- # with gendef and dlltool according to the MingW-W64 FAQ. +- # Use the MinGW-W64 provided msvc runtime import libraries. +- # Don't call build_import_library() and build_msvcr_library. - -- # Check for custom msvc runtime library on Windows. Build if it doesn't exist. -- msvcr_success = build_msvcr_library() -- msvcr_dbg_success = build_msvcr_library(debug=True) -- if msvcr_success or msvcr_dbg_success: -- # add preprocessor statement for using customized msvcr lib -- self.define_macro('NPY_MINGW_USE_CUSTOM_MSVCR') +- if 'MinGW-W64' not in str(out_string): +- +- # **changes: eric jones 4/11/01 +- # 1. Check for import library on Windows. Build if it doesn't +- # exist. +- build_import_library() +- +- # Check for custom msvc runtime library on Windows. Build if it +- # doesn't exist. +- msvcr_success = build_msvcr_library() +- msvcr_dbg_success = build_msvcr_library(debug=True) +- if msvcr_success or msvcr_dbg_success: +- # add preprocessor statement for using customized msvcr lib +- self.define_macro('NPY_MINGW_USE_CUSTOM_MSVCR') - - # Define the MSVC version as hint for MinGW - msvcr_version = '0x%03i0' % int(msvc_runtime_library().lstrip('msvcr')) - self.define_macro('__MSVCRT_VERSION__', msvcr_version) -- -- # **changes: eric jones 4/11/01 - # 2. increased optimization and turned off all warnings - # 3. also added --driver-name g++ - #self.set_executables(compiler='gcc -mno-cygwin -O2 -w', ---- numpy-py2-1.8.0/numpy/distutils/fcompiler/gnu.py 2014-02-19 01:27:32.252800000 +0400 -+++ numpy-1.8.0/numpy/distutils/fcompiler/gnu.py 2014-02-19 01:31:29.804200000 +0400 + + # MS_WIN64 should be defined when building for amd64 on windows, + # but python headers define it only for MS compilers, which has all +--- numpy-py2-1.10.0/numpy/distutils/fcompiler/gnu.py 2014-02-19 01:27:32.252800000 +0400 ++++ numpy-1.10.0/numpy/distutils/fcompiler/gnu.py 2014-02-19 01:31:29.804200000 +0400 @@ -6,6 +6,7 @@ import warnings import platform @@ -33,7 +41,7 @@ from subprocess import Popen, PIPE, STDOUT from numpy.distutils.cpuinfo import cpu -@@ -86,7 +87,7 @@ +@@ -103,7 +103,7 @@ pic_flags = ['-fPIC'] # use -mno-cygwin for g77 when Python is not Cygwin-Python @@ -42,26 +50,3 @@ for key in ['version_cmd', 'compiler_f77', 'linker_so', 'linker_exe']: executables[key].append('-mno-cygwin') -@@ -238,7 +239,7 @@ - pass - else: - # use -mno-cygwin flag for gfortran when Python is not Cygwin-Python -- if sys.platform == 'win32': -+ if sys.platform == 'win32' and not _POSIX_BUILD: - for key in ['version_cmd', 'compiler_f77', 'compiler_f90', - 'compiler_fix', 'linker_so', 'linker_exe']: - self.executables[key].append('-mno-cygwin') -@@ -328,13 +328,6 @@ - i = opt.index("gcc") - opt.insert(i+1, "mingwex") - opt.insert(i+1, "mingw32") -- # XXX: fix this mess, does not work for mingw -- if is_win64(): -- c_compiler = self.c_compiler -- if c_compiler and c_compiler.compiler_type == "msvc": -- return [] -- else: -- raise NotImplementedError("Only MS compiler supported with gfortran on win64") - return opt - - def get_target(self): diff --git a/mingw-w64-python-numpy/gfortran-better-version-check.patch b/mingw-w64-python-numpy/gfortran-better-version-check.patch index e8626c0a3f..ceb1c6d685 100644 --- a/mingw-w64-python-numpy/gfortran-better-version-check.patch +++ b/mingw-w64-python-numpy/gfortran-better-version-check.patch @@ -1,11 +1,11 @@ ---- numpy-1.8.2/numpy/distutils/fcompiler/gnu.py.orig 2014-08-28 15:49:10.742000000 +0400 -+++ numpy-1.8.2/numpy/distutils/fcompiler/gnu.py 2014-08-28 15:50:44.903600000 +0400 -@@ -42,7 +42,7 @@ - m = re.search(r'GNU Fortran\s+95.*?([0-9-.]+)', version_string) - if m: - return ('gfortran', m.group(1)) -- m = re.search(r'GNU Fortran.*?\-?([0-9-.]+)', version_string) -+ m = re.search(r'GNU Fortran.*?\-?(\d*(?:\.\d+)+)', version_string) - if m: - v = m.group(1) - if v.startswith('0') or v.startswith('2') or v.startswith('3'): +--- numpy-1.10.0/numpy/distutils/fcompiler/gnu.py.orig 2014-08-28 15:49:10.742000000 +0400 ++++ numpy-1.10.0/numpy/distutils/fcompiler/gnu.py 2014-08-28 15:50:44.903600000 +0400 +@@ -63,7 +63,7 @@ + m = re.search(r'GNU Fortran\s+95.*?([0-9-.]+)', version_string) + if m: + return ('gfortran', m.group(1)) +- m = re.search(r'GNU Fortran.*?\-?([0-9-.]+)', version_string) ++ m = re.search(r'GNU Fortran.*?\-?(\d*(?:\.\d+)+)', version_string) + if m: + v = m.group(1) + if v.startswith('0') or v.startswith('2') or v.startswith('3'): diff --git a/mingw-w64-python-numpy/mincoming-stack-boundary-only-32bit.patch b/mingw-w64-python-numpy/mincoming-stack-boundary-only-32bit.patch new file mode 100644 index 0000000000..444ddf82d4 --- /dev/null +++ b/mingw-w64-python-numpy/mincoming-stack-boundary-only-32bit.patch @@ -0,0 +1,71 @@ +--- numpy-1.10.0/numpy/distutils/mingw32ccompiler.py.orig 2015-10-08 14:37:03.956864600 +0300 ++++ numpy-1.10.0/numpy/distutils/mingw32ccompiler.py 2015-10-08 14:44:27.194536400 +0300 +@@ -13,6 +13,7 @@ + import sys + import subprocess + import re ++import platform + + # Overwrite certain distutils.ccompiler functions: + import numpy.distutils.ccompiler +@@ -41,6 +42,11 @@ + _START = re.compile(r'\[Ordinal/Name Pointer\] Table') + _TABLE = re.compile(r'^\s+\[([\s*[0-9]*)\] ([a-zA-Z0-9_]*)') + ++def is_win64(): ++ return sys.platform == "win32" and platform.architecture()[0] == "64bit" ++def is_win32(): ++ return sys.platform == "win32" and platform.architecture()[0] == "32bit" ++ + # the same as cygwin plus some additional parameters + class Mingw32CCompiler(distutils.cygwinccompiler.CygwinCCompiler): + """ A modified MingW32 compiler compatible with an MSVC built Python. +@@ -130,19 +136,35 @@ + linker_exe='g++ -mno-cygwin', + linker_so='g++ -mno-cygwin -shared') + else: +- # gcc-4 series releases do not support -mno-cygwin option i686 +- # build needs '-mincoming-stack-boundary=2' due to ABI +- # incompatibility to Win32 ABI +- self.set_executables( +- compiler='gcc -O2 -march=core2 -mtune=generic' +- ' -mfpmath=sse -msse2' +- ' -mincoming-stack-boundary=2 -Wall', +- compiler_so='gcc -O2 -march=core2 -mtune=generic' +- ' -mfpmath=sse -msse2' +- ' -mincoming-stack-boundary=2 -Wall' +- ' -Wstrict-prototypes', +- linker_exe='g++ ', +- linker_so='g++ -shared -Wl,-gc-sections -Wl,-s') ++ if is_win32(): ++ # gcc-4 series releases do not support -mno-cygwin option i686 ++ # build needs '-mincoming-stack-boundary=2' due to ABI ++ # incompatibility to Win32 ABI ++ self.set_executables( ++ compiler='gcc -O2 -march=core2 -mtune=generic' ++ ' -mfpmath=sse -msse2' ++ ' -mincoming-stack-boundary=2 -Wall', ++ compiler_so='gcc -O2 -march=core2 -mtune=generic' ++ ' -mfpmath=sse -msse2' ++ ' -mincoming-stack-boundary=2 -Wall' ++ ' -Wstrict-prototypes', ++ linker_exe='g++ ', ++ linker_so='g++ -shared -Wl,-gc-sections -Wl,-s') ++ else: ++ # gcc-4 series releases do not support -mno-cygwin option i686 ++ # build needs '-mincoming-stack-boundary=2' due to ABI ++ # incompatibility to Win32 ABI ++ self.set_executables( ++ compiler='gcc -O2 -march=x86-64 -DMS_WIN64 -mtune=generic' ++ ' -mfpmath=sse -msse2' ++ ' -Wall', ++ compiler_so='gcc -O2 -march=x86-64 -DMS_WIN64 -mtune=generic' ++ ' -mfpmath=sse -msse2' ++ ' -Wall' ++ ' -Wstrict-prototypes', ++ linker_exe='g++ ', ++ linker_so='g++ -shared -Wl,-gc-sections -Wl,-s') ++ + # added for python2.3 support we can't pass it through set_executables + # because pre 2.2 would fail + self.compiler_cxx = ['g++'] From d91becad5174dbf7b8787ab270e7405f497f8b22 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 9 Oct 2015 12:34:07 +0300 Subject: [PATCH 1686/2060] Rebuild/update packages for Python 3.5.0 support --- mingw-w64-cython/PKGBUILD | 5 +- mingw-w64-gedit/PKGBUILD | 2 +- mingw-w64-libgit2-glib/PKGBUILD | 2 +- mingw-w64-opencolorio-git/PKGBUILD | 5 +- mingw-w64-pygobject/PKGBUILD | 2 +- mingw-w64-pyqt4/PKGBUILD | 8 +- mingw-w64-pyqt5/PKGBUILD | 17 ++-- mingw-w64-python-babel/PKGBUILD | 14 +-- mingw-w64-python-babel/babel-fix.patch | 98 ------------------- mingw-w64-python-beaker/PKGBUILD | 3 +- mingw-w64-python-bsddb3/PKGBUILD | 3 +- mingw-w64-python-colorama/PKGBUILD | 3 +- mingw-w64-python-csssselect/PKGBUILD | 3 +- mingw-w64-python-cx_Freeze/PKGBUILD | 3 +- mingw-w64-python-dateutil/PKGBUILD | 7 +- mingw-w64-python-docutils/PKGBUILD | 6 +- mingw-w64-python-httplib2/PKGBUILD | 11 ++- mingw-w64-python-icu/PKGBUILD | 5 +- mingw-w64-python-ipython/PKGBUILD | 14 +-- mingw-w64-python-jinja/PKGBUILD | 6 +- mingw-w64-python-lhafile/PKGBUILD | 7 +- mingw-w64-python-lxml/PKGBUILD | 19 ++-- .../use-distutils-get_platform.patch | 12 +-- mingw-w64-python-mako/PKGBUILD | 7 +- mingw-w64-python-markupsafe/PKGBUILD | 3 +- mingw-w64-python-matplotlib/PKGBUILD | 9 +- mingw-w64-python-matplotlib/setupext.py.patch | 15 ++- mingw-w64-python-nose/PKGBUILD | 3 +- mingw-w64-python-nuitka/PKGBUILD | 3 +- mingw-w64-python-numexpr/PKGBUILD | 7 +- mingw-w64-python-pandas/PKGBUILD | 3 +- mingw-w64-python-patsy/PKGBUILD | 7 +- mingw-w64-python-pip/PKGBUILD | 11 +-- mingw-w64-python-pygments/PKGBUILD | 4 +- mingw-w64-python-pyparsing/PKGBUILD | 9 +- mingw-w64-python-pytz/PKGBUILD | 15 +-- mingw-w64-python-reportlab/PKGBUILD | 4 +- mingw-w64-python-scipy/PKGBUILD | 3 +- mingw-w64-python-six/PKGBUILD | 11 +-- mingw-w64-python-snowballstemmer/PKGBUILD | 3 +- .../PKGBUILD | 5 +- mingw-w64-python-sphinx/PKGBUILD | 3 +- mingw-w64-python-sphinx_rtd_theme/PKGBUILD | 5 +- mingw-w64-python-statsmodels/PKGBUILD | 33 +++---- mingw-w64-python3-cairo/PKGBUILD | 3 +- mingw-w64-sip/PKGBUILD | 6 +- 46 files changed, 176 insertions(+), 251 deletions(-) delete mode 100644 mingw-w64-python-babel/babel-fix.patch diff --git a/mingw-w64-cython/PKGBUILD b/mingw-w64-cython/PKGBUILD index aa1fa9da40..33d8037f5e 100644 --- a/mingw-w64-cython/PKGBUILD +++ b/mingw-w64-cython/PKGBUILD @@ -2,8 +2,9 @@ # Contributor: Ray Donnelly _realname=cython +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-cython" "${MINGW_PACKAGE_PREFIX}-cython2") -pkgver=0.23.beta1 +pkgver=0.23 pkgrel=1 pkgdesc="C-Extensions for Python (mingw-w64)" arch=('any') @@ -15,7 +16,7 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-gcc" ) source=("http://cython.org/release/Cython-${pkgver}.tar.gz") -md5sums=('da4d499c596b9192dab755e4c508a2c9') +md5sums=('63d472d0a9b3b39b9651f7bf568bb4a5') prepare() { cp -a ${_realname}-${pkgver} ${_realname}-py2-${pkgver}-${CARCH} diff --git a/mingw-w64-gedit/PKGBUILD b/mingw-w64-gedit/PKGBUILD index 889577eb99..41d4f9a17b 100644 --- a/mingw-w64-gedit/PKGBUILD +++ b/mingw-w64-gedit/PKGBUILD @@ -4,7 +4,7 @@ _realname=gedit pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.18.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A text editor for GNOME (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" diff --git a/mingw-w64-libgit2-glib/PKGBUILD b/mingw-w64-libgit2-glib/PKGBUILD index 54c79a9595..34d88740ad 100644 --- a/mingw-w64-libgit2-glib/PKGBUILD +++ b/mingw-w64-libgit2-glib/PKGBUILD @@ -4,7 +4,7 @@ _realname=libgit2-glib pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.23.6 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A glib wrapper library around the libgit2 git access library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-libgit2>=0.23" diff --git a/mingw-w64-opencolorio-git/PKGBUILD b/mingw-w64-opencolorio-git/PKGBUILD index 5efc612128..90cd0d6538 100644 --- a/mingw-w64-opencolorio-git/PKGBUILD +++ b/mingw-w64-opencolorio-git/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=opencolorio +pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=701.a557a85 -pkgrel=2 +pkgrel=3 pkgdesc="A color management framework for visual effects and animation (mingw-w64)" arch=('any') url="http://opencolorio.org" @@ -13,7 +14,7 @@ conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-glew" "${MINGW_PACKAGE_PREFIX}-lcms2" - "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-tinyxml") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-yaml-cpp" diff --git a/mingw-w64-pygobject/PKGBUILD b/mingw-w64-pygobject/PKGBUILD index 7cb147b0fb..af202d0619 100644 --- a/mingw-w64-pygobject/PKGBUILD +++ b/mingw-w64-pygobject/PKGBUILD @@ -4,7 +4,7 @@ _realname=pygobject pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-gobject" "${MINGW_PACKAGE_PREFIX}-python3-gobject" "${MINGW_PACKAGE_PREFIX}-pygobject-devel") pkgver=3.18.0 -pkgrel=1 +pkgrel=2 pkgdesc="Allows you to load glade interface files in a program at runtime (mingw-w64)" arch=(any) url="http://www.pygtk.org" diff --git a/mingw-w64-pyqt4/PKGBUILD b/mingw-w64-pyqt4/PKGBUILD index 66f85b5a39..10d7d3962f 100644 --- a/mingw-w64-pyqt4/PKGBUILD +++ b/mingw-w64-pyqt4/PKGBUILD @@ -6,7 +6,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-common" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=4.11.4 -pkgrel=1 +pkgrel=2 pkgdesc="Qt4 bindings for Python (mingw-w64)" arch=('any') license=('GPL') @@ -21,7 +21,7 @@ md5sums=('cc3f9a88900c95b599afa69d869d8095' '2eeedc9c1ac90ad97654de98658637a7') prepare() { - cd "${srcdir}"/PyQt-win-gpl-$pkgver + cd "${srcdir}"/PyQt-win-gpl-${pkgver} # Apply patches patch -p0 -i "${srcdir}"/001-mingw-python.patch @@ -71,9 +71,10 @@ package_python3-pyqt4(){ # Provided by pyqt-common rm "${pkgdir}${MINGW_PREFIX}"/bin/{pylupdate4,pyrcc4}.exe rm -rf "${pkgdir}${MINGW_PREFIX}"/qsci + rm -rf "${pkgdir}${MINGW_PREFIX}"/share/qt4/qsci # Remove Python 2 uic port - rm -rf "${pkgdir}${MINGW_PREFIX}"/lib/python3.4/site-packages/PyQt4/uic/port_v2 + rm -rf "${pkgdir}${MINGW_PREFIX}"/lib/python3.5/site-packages/PyQt4/uic/port_v2 } package_python2-pyqt4(){ @@ -88,6 +89,7 @@ package_python2-pyqt4(){ mv "${pkgdir}${MINGW_PREFIX}"/bin/{,python2-}pyuic4.bat rm "${pkgdir}${MINGW_PREFIX}"/bin/{pylupdate4,pyrcc4}.exe rm -rf "${pkgdir}${MINGW_PREFIX}"/qsci + rm -rf "${pkgdir}${MINGW_PREFIX}"/share/qt4/qsci # Remove Python 3 uic port rm -rf "${pkgdir}${MINGW_PREFIX}"/lib/python2.7/site-packages/PyQt4/uic/port_v3 diff --git a/mingw-w64-pyqt5/PKGBUILD b/mingw-w64-pyqt5/PKGBUILD index ec1559f0f1..f64c9a8f3f 100644 --- a/mingw-w64-pyqt5/PKGBUILD +++ b/mingw-w64-pyqt5/PKGBUILD @@ -1,21 +1,22 @@ # Maintainer: Saul Ibarra Corretge _realname=pyqt5 +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-common" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=5.4.2 +pkgver=5.5 pkgrel=1 pkgdesc="Qt5 bindings for Python (mingw-w64)" arch=('any') license=('GPL') url="http://www.riverbankcomputing.co.uk/software/pyqt" makedepends=("${MINGW_PACKAGE_PREFIX}-python2-sip" - "${MINGW_PACKAGE_PREFIX}-python3-sip" - "${MINGW_PACKAGE_PREFIX}-qt5") + "${MINGW_PACKAGE_PREFIX}-python3-sip" + "${MINGW_PACKAGE_PREFIX}-qt5") options=('strip' 'staticlibs') source=("http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-${pkgver}/PyQt-gpl-${pkgver}.tar.gz" #"http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-${pkgver%.*}/PyQt-gpl-${pkgver%.*}.tar.gz" 001-mingw-python.patch) -md5sums=('33936458544b69251a8f4a2308d469d3' +md5sums=('60c0137b26c9ecbc3db0addb9638dc01' '3b11ff26e229e256ee13f484422047d9') prepare() { @@ -27,9 +28,9 @@ prepare() { build() { for builddir in python{2,3}-${MINGW_CHOST}; do - [[ -d $builddir ]] && rm -rf $builddir - cp -r PyQt-gpl-${pkgver} $builddir - pushd $builddir + [[ -d $builddir ]] && rm -rf ${builddir} + cp -r PyQt-gpl-${pkgver} ${builddir} + pushd ${builddir} > /dev/null [[ "${builddir%-${MINGW_CHOST}}" == "python2" ]] && { local _sipdir=Py2-Qt5 } || { @@ -42,7 +43,7 @@ build() { -q ${MINGW_PREFIX}/bin/qmake.exe \ --verbose make V=1 - popd + popd > /dev/null done } diff --git a/mingw-w64-python-babel/PKGBUILD b/mingw-w64-python-babel/PKGBUILD index a9c3136129..0b2c8b839b 100644 --- a/mingw-w64-python-babel/PKGBUILD +++ b/mingw-w64-python-babel/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=babel -pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=1.3 +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=2.1.1 pkgrel=1 pkgdesc="A collection of tools for internationalizing Python applications" url="http://babel.pocoo.org/" @@ -12,15 +13,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools" "${MINGW_PACKAGE_PREFIX}-python2-pytz" "${MINGW_PACKAGE_PREFIX}-python3-pytz") -source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/mitsuhiko/babel/archive/${pkgver}.tar.gz" - babel-fix.patch) -md5sums=('752ecd661a4002d64ba07384404a2988' - '6fdce5263b6010a3d6d922df92360b74') +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/mitsuhiko/babel/archive/${pkgver}.tar.gz") +md5sums=('40cbe93a1ce8c1be06dca47fb8b20963') prepare() { - cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/babel-fix.patch - cd ${srcdir} cp -r ${_realname}-${pkgver} build-python2 cp -r ${_realname}-${pkgver} build-python3 diff --git a/mingw-w64-python-babel/babel-fix.patch b/mingw-w64-python-babel/babel-fix.patch deleted file mode 100644 index 1b1ec3ac91..0000000000 --- a/mingw-w64-python-babel/babel-fix.patch +++ /dev/null @@ -1,98 +0,0 @@ -diff -Naur babel-1.3-orig/babel/localtime/_win32.py babel-1.3/babel/localtime/_win32.py ---- babel-1.3-orig/babel/localtime/_win32.py 2013-07-29 15:33:20.000000000 +0400 -+++ babel-1.3/babel/localtime/_win32.py 2015-07-06 09:12:35.343528600 +0300 -@@ -10,8 +10,14 @@ - import pytz - - --tz_names = get_global('windows_zone_mapping') -- -+# When building the cldr data on windows this module gets imported. -+# Because at that point there is no global.dat yet this call will -+# fail. We want to catch it down in that case then and just assume -+# the mapping was empty. -+try: -+ tz_names = get_global('windows_zone_mapping') -+except RuntimeError: -+ tz_names = {} - - def valuestodict(key): - """Convert a registry key's values to a dictionary.""" -diff -Naur babel-1.3-orig/babel/messages/frontend.py babel-1.3/babel/messages/frontend.py ---- babel-1.3-orig/babel/messages/frontend.py 2013-07-29 15:33:20.000000000 +0400 -+++ babel-1.3/babel/messages/frontend.py 2015-07-06 09:19:44.621596500 +0300 -@@ -128,7 +128,7 @@ - - for idx, (locale, po_file) in enumerate(po_files): - mo_file = mo_files[idx] -- infile = open(po_file, 'r') -+ infile = open(po_file, 'rb') - try: - catalog = read_po(infile, locale) - finally: -@@ -439,7 +439,7 @@ - log.info('creating catalog %r based on %r', self.output_file, - self.input_file) - -- infile = open(self.input_file, 'r') -+ infile = open(self.input_file, 'rb') - try: - # Although reading from the catalog template, read_po must be fed - # the locale in order to correctly calculate plurals -@@ -554,7 +554,7 @@ - if not domain: - domain = os.path.splitext(os.path.basename(self.input_file))[0] - -- infile = open(self.input_file, 'U') -+ infile = open(self.input_file, 'rb') - try: - template = read_po(infile) - finally: -@@ -566,7 +566,7 @@ - for locale, filename in po_files: - log.info('updating catalog %r based on %r', filename, - self.input_file) -- infile = open(filename, 'U') -+ infile = open(filename, 'rb') - try: - catalog = read_po(infile, locale=locale, domain=domain) - finally: -@@ -577,7 +577,7 @@ - tmpname = os.path.join(os.path.dirname(filename), - tempfile.gettempprefix() + - os.path.basename(filename)) -- tmpfile = open(tmpname, 'w') -+ tmpfile = open(tmpname, 'wb') - try: - try: - write_po(tmpfile, catalog, -@@ -760,7 +760,7 @@ - - for idx, (locale, po_file) in enumerate(po_files): - mo_file = mo_files[idx] -- infile = open(po_file, 'r') -+ infile = open(po_file, 'rb') - try: - catalog = read_po(infile, locale) - finally: -@@ -1121,7 +1121,7 @@ - tmpname = os.path.join(os.path.dirname(filename), - tempfile.gettempprefix() + - os.path.basename(filename)) -- tmpfile = open(tmpname, 'w') -+ tmpfile = open(tmpname, 'wb') - try: - try: - write_po(tmpfile, catalog, -diff -Naur babel-1.3-orig/babel/numbers.py babel-1.3/babel/numbers.py ---- babel-1.3-orig/babel/numbers.py 2013-07-29 15:33:20.000000000 +0400 -+++ babel-1.3/babel/numbers.py 2015-07-06 09:16:30.100050600 +0300 -@@ -303,7 +303,7 @@ - - - PREFIX_END = r'[^0-9@#.,]' --NUMBER_TOKEN = r'[0-9@#.\-,E+]' -+NUMBER_TOKEN = r'[0-9@#.,E+]' - - PREFIX_PATTERN = r"(?P(?:'[^']*'|%s)*)" % PREFIX_END - NUMBER_PATTERN = r"(?P%s+)" % NUMBER_TOKEN diff --git a/mingw-w64-python-beaker/PKGBUILD b/mingw-w64-python-beaker/PKGBUILD index b1d9d2713c..1df2740ddf 100644 --- a/mingw-w64-python-beaker/PKGBUILD +++ b/mingw-w64-python-beaker/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Ray Donnelly _realname=beaker +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=1.7.0 -pkgrel=2 +pkgrel=3 pkgdesc="Caching and sessions WSGI middleware for use with web applications and stand-alone Python scripts and applications (mingw-w64)" arch=('any') license=('custom') diff --git a/mingw-w64-python-bsddb3/PKGBUILD b/mingw-w64-python-bsddb3/PKGBUILD index 85ccb4f1ce..8927c66a84 100644 --- a/mingw-w64-python-bsddb3/PKGBUILD +++ b/mingw-w64-python-bsddb3/PKGBUILD @@ -1,9 +1,10 @@ # Contributor: Josip _realname=bsddb3 +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=6.1.0 -pkgrel=2 +pkgrel=3 pkgdesc="Python bindings for Oracle Berkeley DB (mingw-w64)" arch=('any') license=('BSD') diff --git a/mingw-w64-python-colorama/PKGBUILD b/mingw-w64-python-colorama/PKGBUILD index 589e4e6fee..56685da30a 100644 --- a/mingw-w64-python-colorama/PKGBUILD +++ b/mingw-w64-python-colorama/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Ray Donnelly _realname=colorama +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.3.3 -pkgrel=1 +pkgrel=2 pkgdesc="Python API for cross-platform colored terminal text (mingw-w64)" arch=('any') license=('BSD') diff --git a/mingw-w64-python-csssselect/PKGBUILD b/mingw-w64-python-csssselect/PKGBUILD index ae776d7b33..9c426b57b6 100644 --- a/mingw-w64-python-csssselect/PKGBUILD +++ b/mingw-w64-python-csssselect/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=cssselect +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.9.1 -pkgrel=3 +pkgrel=4 pkgdesc="Caching and sessions WSGI middleware for use with web applications and stand-alone Python scripts and applications (mingw-w64)" arch=('any') license=('BSD') diff --git a/mingw-w64-python-cx_Freeze/PKGBUILD b/mingw-w64-python-cx_Freeze/PKGBUILD index c8643cf333..bef92b5b13 100644 --- a/mingw-w64-python-cx_Freeze/PKGBUILD +++ b/mingw-w64-python-cx_Freeze/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Frode Solheim _realname=cx_Freeze +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-cx_Freeze" "${MINGW_PACKAGE_PREFIX}-python3-cx_Freeze") pkgver=4.3.3 -pkgrel=3 +pkgrel=5 pkgdesc="Python package for freezing scripts into executables (mingw-w64)" arch=('any') license=('PSF') diff --git a/mingw-w64-python-dateutil/PKGBUILD b/mingw-w64-python-dateutil/PKGBUILD index 8410f5df39..d40299e64a 100644 --- a/mingw-w64-python-dateutil/PKGBUILD +++ b/mingw-w64-python-dateutil/PKGBUILD @@ -1,9 +1,10 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=dateutil +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") pkgver=2.4.2 -pkgrel=1 +pkgrel=2 pkgdesc="Provides powerful extensions to the standard datetime module (mingw-w64)" arch=('any') license=('custom:PYTHON') @@ -41,10 +42,10 @@ package_python3-dateutil() { --root=${pkgdir} --optimize=1 install -Dm644 LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE - chmod -R a+r $pkgdir/${MINGW_PREFIX}/lib/python3.4/ + chmod -R a+r $pkgdir/${MINGW_PREFIX}/lib/python3.5/ # Remove data files - #rm ${pkgdir}${MINGW_PREFIX}/lib/python3.4/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz + #rm ${pkgdir}${MINGW_PREFIX}/lib/python3.5/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz } package_python2-dateutil() { diff --git a/mingw-w64-python-docutils/PKGBUILD b/mingw-w64-python-docutils/PKGBUILD index 851710f36b..df0c8be041 100644 --- a/mingw-w64-python-docutils/PKGBUILD +++ b/mingw-w64-python-docutils/PKGBUILD @@ -2,15 +2,15 @@ # Contributor: Ray Donnelly _realname=docutils -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.12 -pkgrel=4 +pkgrel=5 pkgdesc="Set of tools for processing plaintext docs into formats such as HTML, XML, or LaTeX (mingw-w64)" arch=('any') license=('custom') url="http://docutils.sourceforge.net" -depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3") +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3") source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz") md5sums=('4622263b62c5c771c03502afa3157768') diff --git a/mingw-w64-python-httplib2/PKGBUILD b/mingw-w64-python-httplib2/PKGBUILD index 0b959b91da..5a5dc9d19f 100644 --- a/mingw-w64-python-httplib2/PKGBUILD +++ b/mingw-w64-python-httplib2/PKGBUILD @@ -2,8 +2,9 @@ # Contributor: Ray Donnelly _realname=httplib2 +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=0.9.1 +pkgver=0.9.2 pkgrel=1 pkgdesc="Comprehensive HTTP client library, supporting many features (mingw-w64)" arch=('any') @@ -18,10 +19,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3-setuptools" #"git" ) -source=(${_realname}-${pkgver}.tar.gz::https://github.com/jcgregorio/httplib2/archive/v${pkgver}.tar.gz +source=(${_realname}-${pkgver}.tar.gz::https://github.com/jcgregorio/httplib2/archive/${pkgver}.tar.gz ssl_hostname.patch cert.patch) -md5sums=('10f0ec63738292b362ed438abc186a43' +md5sums=('eb39d90dc64bd12a94184d76bddc65a3' '6de5596aedd196a4db96f83f529e3509' '98fab3f5a578c0db600237f025aac991') @@ -29,10 +30,10 @@ prepare() { pushd "${_realname}-${pkgver}" # Patch, ref FS#36839 - patch -p1 -i "$srcdir/ssl_hostname.patch" + patch -p1 -i "${srcdir}/ssl_hostname.patch" # Patch, ref FS#40179 - patch -p1 -i "$srcdir/cert.patch" + patch -p1 -i "${srcdir}/cert.patch" popd diff --git a/mingw-w64-python-icu/PKGBUILD b/mingw-w64-python-icu/PKGBUILD index 161d30edc1..c681645244 100644 --- a/mingw-w64-python-icu/PKGBUILD +++ b/mingw-w64-python-icu/PKGBUILD @@ -1,10 +1,11 @@ # Contributor: Josip _realname=PyICU +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-icu" "${MINGW_PACKAGE_PREFIX}-python3-icu") pkgver=1.9.2 -pkgrel=1 -pkgdesc="Python extension wrapping the ICU C++ API" +pkgrel=2 +pkgdesc="Python extension wrapping the ICU C++ API (mingw-w64)" arch=('any') license=('BSD') url="https://pypi.python.org/pypi/PyICU/" diff --git a/mingw-w64-python-ipython/PKGBUILD b/mingw-w64-python-ipython/PKGBUILD index 3894975b7c..a084d01907 100644 --- a/mingw-w64-python-ipython/PKGBUILD +++ b/mingw-w64-python-ipython/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Kyle Kauffman _realname=ipython -pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=3.2.0 +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=4.0.0 pkgrel=1 pkgdesc="An enhanced Interactive Python shell (mingw-w64)" arch=('any') @@ -14,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-sqlite3" source=("https://pypi.python.org/packages/source/i/ipython/${_realname}-${pkgver}.tar.gz" 0001-unimplemented-readline-calls.patch) -md5sums=('41aa9b34f39484861e77c46ffb29b699' +md5sums=('c2fecbcf1c0fbdc82625c77a50733dd6' '0b1702a800266e6bd841708270cf9e80') prepare() { @@ -62,10 +63,6 @@ package_python3-ipython() { # "${MINGW_PACKAGE_PREFIX}-python3-tornado: for ipython notebook" all_build ${interpreter} - - for file_script in ipcluster ipcontroller ipengine iptest ipython; do - rm ${pkgdir}${MINGW_PREFIX}/bin/${file_script}{,.cmd} - done install -Dm644 docs/source/about/license_and_copyright.rst "${pkgdir}${MINGW_PREFIX}/share/licenses/ipython/LICENSE" @@ -86,6 +83,9 @@ package_python2-ipython() { # "${MINGW_PACKAGE_PREFIX}-python2-tornado: for ipython notebook" all_build ${interpreter} + for file_script in iptest ipython; do + rm ${pkgdir}${MINGW_PREFIX}/bin/${file_script}{,.cmd} + done install -Dm644 docs/source/about/license_and_copyright.rst "${pkgdir}${MINGW_PREFIX}/share/licenses/ipython2/LICENSE" diff --git a/mingw-w64-python-jinja/PKGBUILD b/mingw-w64-python-jinja/PKGBUILD index c1d8206c92..7e00f848d6 100644 --- a/mingw-w64-python-jinja/PKGBUILD +++ b/mingw-w64-python-jinja/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=jinja +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=2.7.3 +pkgver=2.8 pkgrel=1 pkgdesc="A simple pythonic template language written in Python (mingw-w64)" arch=('any') @@ -13,7 +14,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools" "${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python2-markupsafe") source=(http://pypi.python.org/packages/source/J/Jinja2/Jinja2-${pkgver}.tar.gz) -sha256sums=('2e24ac5d004db5714976a04ac0e80c6df6e47e98c354cb2c0d82f8879d4f8fdb') +sha256sums=('bc1ff2ff88dbfacefde4ddde471d1417d3b304e8df103a7a9437d47269201bf4') build() { cd "${srcdir}" @@ -27,7 +28,6 @@ build() { } package_python3-jinja() { - pkgdesc='Python3 documentation generator' depends=("${MINGW_PACKAGE_PREFIX}-python3-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-markupsafe") cd "${srcdir}/python3-build" diff --git a/mingw-w64-python-lhafile/PKGBUILD b/mingw-w64-python-lhafile/PKGBUILD index cea0993304..b5d0aca634 100644 --- a/mingw-w64-python-lhafile/PKGBUILD +++ b/mingw-w64-python-lhafile/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Frode Solheim _realname=python-lhafile +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-lhafile" "${MINGW_PACKAGE_PREFIX}-python3-lhafile") -pkgver=0.1.0fs4 -pkgrel=3 +pkgver=0.2.1 +pkgrel=1 pkgdesc="LHA module for Python (mingw-w64)" arch=('any') license=('BSD') @@ -13,7 +14,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3") options=('staticlibs' 'strip' '!debug') source=(http://fengestad.no/python-lhafile/python-lhafile-${pkgver}.tar.gz) -md5sums=('cedac40d5363bf49b51528522bf05c60') +md5sums=('bc63d61a1b562bbbc52118c168f8cb5e') prepare() { cp -a python-lhafile-${pkgver} python2-lhafile-${pkgver}-${CARCH} diff --git a/mingw-w64-python-lxml/PKGBUILD b/mingw-w64-python-lxml/PKGBUILD index 94046c611d..cc05587fea 100644 --- a/mingw-w64-python-lxml/PKGBUILD +++ b/mingw-w64-python-lxml/PKGBUILD @@ -2,26 +2,25 @@ # Contributor: Ray Donnelly _realname=lxml -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}" "${MINGW_PACKAGE_PREFIX}-python-${_realname}-docs") -pkgver=3.4.4 -pkgrel=2 +pkgver=3.5.0b1 +pkgrel=1 arch=('any') license=('BSD' 'custom') url="http://lxml.de/" -depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3") makedepends=("${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-libxslt" - "${MINGW_PACKAGE_PREFIX}-python2-cssselect" - "${MINGW_PACKAGE_PREFIX}-python3-cssselect") + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-libxslt" + "${MINGW_PACKAGE_PREFIX}-python2-cssselect" + "${MINGW_PACKAGE_PREFIX}-python3-cssselect") source=(http://pypi.python.org/packages/source/l/lxml/${_realname}-${pkgver}.tar.gz{,.asc} mingw-python-fix.patch use-distutils-get_platform.patch) -md5sums=('a9a65972afc173ec7a39c585f4eea69c' +md5sums=('c6eb532ab172a91a590de7ad4d5fbcc9' 'SKIP' 'e07163fc1e02cab5fa6009af35d5f823' - '5268f79eb2a69b05da73d357ec8184b1') + '834321a91985c6d5e55de65c1ea1793b') prepare() { cd "${srcdir}/${_realname}-${pkgver}" diff --git a/mingw-w64-python-lxml/use-distutils-get_platform.patch b/mingw-w64-python-lxml/use-distutils-get_platform.patch index 6867ca674a..9813e77a12 100644 --- a/mingw-w64-python-lxml/use-distutils-get_platform.patch +++ b/mingw-w64-python-lxml/use-distutils-get_platform.patch @@ -1,11 +1,11 @@ ---- lxml-3.3.1/setupinfo.py.orig 2014-03-05 01:32:55.698960400 +0000 -+++ lxml-3.3.1/setupinfo.py 2014-03-05 01:47:39.983538500 +0000 -@@ -1,6 +1,7 @@ - import sys, os, os.path +--- lxml-3.5.0b1/setupinfo.py.orig 2014-03-05 01:32:55.698960400 +0000 ++++ lxml-3.5.0b1/setupinfo.py 2014-03-05 01:47:39.983538500 +0000 +@@ -2,6 +2,7 @@ from distutils.core import Extension - from distutils.errors import DistutilsOptionError + from distutils.errors import CompileError, DistutilsOptionError + from distutils.command.build_ext import build_ext as _build_ext +from distutils.util import get_platform - from versioninfo import get_base_dir, split_version + from versioninfo import get_base_dir try: @@ -180,7 +181,7 @@ diff --git a/mingw-w64-python-mako/PKGBUILD b/mingw-w64-python-mako/PKGBUILD index ff57f6899d..f9fe08731a 100644 --- a/mingw-w64-python-mako/PKGBUILD +++ b/mingw-w64-python-mako/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Ray Donnelly _realname=mako +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.0.1 -pkgrel=3 +pkgver=1.0.2 +pkgrel=1 pkgdesc="A super-fast templating language that borrows the best ideas from the existing templating languages (mingw-w64)" arch=('any') license=('custom') @@ -19,7 +20,7 @@ checkdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose" "${MINGW_PACKAGE_PREFIX}-python3-nose") options=('staticlibs') source=("https://pypi.python.org/packages/source/M/Mako/Mako-${pkgver}.tar.gz") -md5sums=('9f0aafd177b039ef67b90ea350497a54') +md5sums=('d0bb0b15d94d0d455fbaf047d312cc2d') prepare() { cd ${srcdir} diff --git a/mingw-w64-python-markupsafe/PKGBUILD b/mingw-w64-python-markupsafe/PKGBUILD index b6be9609d5..b8e240ceda 100644 --- a/mingw-w64-python-markupsafe/PKGBUILD +++ b/mingw-w64-python-markupsafe/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=markupsafe +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.23 -pkgrel=3 +pkgrel=4 pkgdesc="Implements a XML/HTML/XHTML Markup safe string for Python (mingw-w64)" arch=('any') license=('custom') diff --git a/mingw-w64-python-matplotlib/PKGBUILD b/mingw-w64-python-matplotlib/PKGBUILD index 6a5ccde64a..6b0f52b1f1 100644 --- a/mingw-w64-python-matplotlib/PKGBUILD +++ b/mingw-w64-python-matplotlib/PKGBUILD @@ -1,8 +1,9 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=matplotlib -pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=1.4.3 +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=1.5.0rc2 pkgrel=1 pkgdesc="A python plotting library, making publication quality plots (mingw-w64)" arch=('any') @@ -28,8 +29,8 @@ makedepends=( source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/matplotlib/matplotlib/archive/v${pkgver}.tar.gz" setupext.py.patch setup.py.patch) -md5sums=('f1bb5e2317cceed593119fad2071e236' - '24b0ed92631fd0adb2ae11ff1ef31490' +md5sums=('a2a75e5c12bb480ca927913df0995aa9' + 'cd1ef742fb22f91cfed3c36dd4a6f1e1' 'b5f64259a266ccc517586debb8c4e5c8') noextract=("${_realname}-${pkgver}.tar.gz") diff --git a/mingw-w64-python-matplotlib/setupext.py.patch b/mingw-w64-python-matplotlib/setupext.py.patch index ccb387a797..aa7f2d21af 100644 --- a/mingw-w64-python-matplotlib/setupext.py.patch +++ b/mingw-w64-python-matplotlib/setupext.py.patch @@ -56,7 +56,7 @@ return ext -@@ -247,11 +255,11 @@ +@@ -247,16 +255,16 @@ """ Determines whether pkg-config exists on this machine. """ @@ -64,9 +64,14 @@ + if sys.platform == 'win32' and not MSYS: self.has_pkgconfig = False else: + try: + self.pkg_config = os.environ['PKG_CONFIG'] + except KeyError: + self.pkg_config = 'pkg-config' + self.set_pkgconfig_path() -- status, output = getstatusoutput("pkg-config --help") -+ status, output = getstatusoutput('sh -c "pkg-config --help"') +- status, output = getstatusoutput(self.pkg_config + " --help") ++ status, output = getstatusoutput('sh -c "'+self.pkg_config+' --help"') self.has_pkgconfig = (status == 0) if not self.has_pkgconfig: print("IMPORTANT WARNING:") @@ -102,8 +107,8 @@ return None status, output = getstatusoutput( -- "pkg-config %s --modversion" % (package)) -+ 'sh -c "pkg-config %s --modversion"' % (package)) +- self.pkg_config + " %s --modversion" % (package)) ++ 'sh -c "'+self.pkg_config+' %s --modversion"' % (package)) if status == 0: return output return None diff --git a/mingw-w64-python-nose/PKGBUILD b/mingw-w64-python-nose/PKGBUILD index c83cd7bd0c..83d8995aac 100644 --- a/mingw-w64-python-nose/PKGBUILD +++ b/mingw-w64-python-nose/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Ray Donnelly _realname=nose +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=1.3.7 -pkgrel=2 +pkgrel=3 pkgdesc="A discovery-based unittest extension (mingw-w64)" arch=('any') license=('LGPL-2.1') diff --git a/mingw-w64-python-nuitka/PKGBUILD b/mingw-w64-python-nuitka/PKGBUILD index 9360dcfe6b..8f6177acfd 100644 --- a/mingw-w64-python-nuitka/PKGBUILD +++ b/mingw-w64-python-nuitka/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=nuitka +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.5.14.3 -pkgrel=1 +pkgrel=2 pkgdesc="Python to native compiler (mingw-w64)" arch=('any') license=('APACHE') diff --git a/mingw-w64-python-numexpr/PKGBUILD b/mingw-w64-python-numexpr/PKGBUILD index 65005c98e4..40aeb34ccc 100644 --- a/mingw-w64-python-numexpr/PKGBUILD +++ b/mingw-w64-python-numexpr/PKGBUILD @@ -1,8 +1,9 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=numexpr +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=2.4.3 +pkgver=2.4.4 pkgrel=1 pkgdesc="Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas. (mingw-w64)" arch=('any') @@ -13,8 +14,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-numpy" "${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools" "${MINGW_PACKAGE_PREFIX}-gcc") -source=("$_realname-${pkgver}.tar.gz"::https://github.com/pydata/numexpr/archive/v${pkgver}.tar.gz) -md5sums=('4b701ee609a1faa463510c483405d24f') +source=("${_realname}-${pkgver}.tar.gz"::https://github.com/pydata/numexpr/archive/v${pkgver}.tar.gz) +md5sums=('029849d8d9ca89d3bf3bd6695d4e0a4c') prepare() { cp -a ${_realname}-${pkgver} $_realname-py2-${pkgver} diff --git a/mingw-w64-python-pandas/PKGBUILD b/mingw-w64-python-pandas/PKGBUILD index 8109054325..c1c5eb1a85 100644 --- a/mingw-w64-python-pandas/PKGBUILD +++ b/mingw-w64-python-pandas/PKGBUILD @@ -1,9 +1,10 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=pandas +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.16.2 -pkgrel=1 +pkgrel=2 pkgdesc="Cross-section and time series data analysis toolkit (mingw-w64)" arch=('any') url="http://pandas.pydata.org/" diff --git a/mingw-w64-python-patsy/PKGBUILD b/mingw-w64-python-patsy/PKGBUILD index b190013af6..f1f1535ca4 100644 --- a/mingw-w64-python-patsy/PKGBUILD +++ b/mingw-w64-python-patsy/PKGBUILD @@ -1,9 +1,10 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=patsy +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=0.3.0 -pkgrel=2 +pkgver=0.4.0 +pkgrel=1 pkgdesc="A Python package for describing statistical models and for building design matrices (mingw-w64)" arch=('any') url="https://github.com/pydata/patsy" @@ -13,7 +14,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-numpy" "${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=("https://pypi.python.org/packages/source/p/patsy/patsy-${pkgver}.zip") -md5sums=('7545518b413136ba8343dcebea07e5e2') +md5sums=('9043a0d0695eaf5ec021676ccb0eb95d') prepare() { cd "${srcdir}" diff --git a/mingw-w64-python-pip/PKGBUILD b/mingw-w64-python-pip/PKGBUILD index 60ba8e2e24..7b0f1eeed9 100644 --- a/mingw-w64-python-pip/PKGBUILD +++ b/mingw-w64-python-pip/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=pip +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=7.1.2 pkgrel=1 @@ -33,9 +34,7 @@ build() { package_python2-pip() { depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python2-setuptools") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) cd "${srcdir}/${_realname}-python2" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ @@ -49,13 +48,11 @@ package_python2-pip() { package_python3-pip() { depends=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") - pushd ${MINGW_PREFIX} > /dev/null - local _mingw_prefix=`pwd -W` - popd > /dev/null + local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) cd "${srcdir}/${_realname}-python3" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 --skip-build + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" --optimize=1 --skip-build -v # Remove conflicted files rm -f ${pkgdir}${MINGW_PREFIX}/bin/pip{.exe,.exe.manifest,-script.py} diff --git a/mingw-w64-python-pygments/PKGBUILD b/mingw-w64-python-pygments/PKGBUILD index 8ae977c7ed..dbb0030909 100644 --- a/mingw-w64-python-pygments/PKGBUILD +++ b/mingw-w64-python-pygments/PKGBUILD @@ -2,10 +2,10 @@ # Contributor: Ray Donnelly _realname=pygments -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=2.0.2 -pkgrel=3 +pkgrel=4 pkgdesc="Python syntax highlighter (mingw-w64)" arch=('any') license=('BSD') diff --git a/mingw-w64-python-pyparsing/PKGBUILD b/mingw-w64-python-pyparsing/PKGBUILD index 293cd37638..69acf09821 100644 --- a/mingw-w64-python-pyparsing/PKGBUILD +++ b/mingw-w64-python-pyparsing/PKGBUILD @@ -1,17 +1,16 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=pyparsing +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=2.0.3 -pkgrel=1 +pkgrel=2 pkgdesc='General parsing module for Python (mingw-w64)' arch=('any') url='http://pyparsing.wikispaces.com' license=('MIT') -makedepends=( - "${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-python2" -) +makedepends=("${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2") source=("http://downloads.sourceforge.net/pyparsing/pyparsing-${pkgver}.tar.gz") sha256sums=('06e729e1cbf5274703b1f47b6135ed8335999d547f9d8cf048b210fb8ebf844f') diff --git a/mingw-w64-python-pytz/PKGBUILD b/mingw-w64-python-pytz/PKGBUILD index 8a8c833286..59fd5cb9ae 100644 --- a/mingw-w64-python-pytz/PKGBUILD +++ b/mingw-w64-python-pytz/PKGBUILD @@ -1,8 +1,9 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=pytz -pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=2015.4 +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=2015.6 pkgrel=1 pkgdesc="Cross platform time zone library for Python (mingw-w64)" arch=('any') @@ -11,7 +12,7 @@ license=("MIT") makedepends=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python2") source=(http://pypi.python.org/packages/source/p/pytz/pytz-${pkgver}.tar.bz2) -md5sums=('39f7375c4b1fa34cdcb4b4765d08f817') +md5sums=('895e42abf59847136bc12ce747775b38') prepare() { cd "${srcdir}" @@ -20,10 +21,10 @@ prepare() { } check(){ - cd ${srcdir}/build-python2/pytz/tests - ${MINGW_PREFIX}/bin/python2 test_tzinfo.py - cd ${srcdir}/build-python3/pytz/tests - ${MINGW_PREFIX}/bin/python3 test_tzinfo.py + cd ${srcdir}/build-python2/pytz/tests + ${MINGW_PREFIX}/bin/python2 test_tzinfo.py + cd ${srcdir}/build-python3/pytz/tests + ${MINGW_PREFIX}/bin/python3 test_tzinfo.py } package_python3-pytz() { diff --git a/mingw-w64-python-reportlab/PKGBUILD b/mingw-w64-python-reportlab/PKGBUILD index 99ea76b230..cb39ff581e 100644 --- a/mingw-w64-python-reportlab/PKGBUILD +++ b/mingw-w64-python-reportlab/PKGBUILD @@ -2,10 +2,10 @@ # Contributor: Ray Donnelly _realname=reportlab -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=3.0 -pkgrel=3 +pkgrel=4 pkgdesc="A proven industry-strength PDF generating solution (mingw-w64)" arch=('any') license=('custom') diff --git a/mingw-w64-python-scipy/PKGBUILD b/mingw-w64-python-scipy/PKGBUILD index 65cda35891..5318637075 100644 --- a/mingw-w64-python-scipy/PKGBUILD +++ b/mingw-w64-python-scipy/PKGBUILD @@ -1,9 +1,10 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=scipy +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=0.16.0 -pkgrel=1 +pkgrel=2 pkgdesc="SciPy is open-source software for mathematics, science, and engineering. (mingw-w64)" arch=('any') url="http://www.scipy.org/" diff --git a/mingw-w64-python-six/PKGBUILD b/mingw-w64-python-six/PKGBUILD index ea399573d5..34dd7e75e7 100644 --- a/mingw-w64-python-six/PKGBUILD +++ b/mingw-w64-python-six/PKGBUILD @@ -1,19 +1,18 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=six +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") -pkgver=1.9.0 +pkgver=1.10.0 pkgrel=1 pkgdesc="Python 2 and 3 compatibility utilities (mingw-w64)" arch=('any') url="http://pypi.python.org/pypi/six/" license=('MIT') -makedepends=( - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python3" -) +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3") source=(http://pypi.python.org/packages/source/s/six/six-${pkgver}.tar.gz) -md5sums=('476881ef4012262dfc8adc645ee786c4') +md5sums=('34eed507548117b2ab523ab14b2f8b55') prepare() { cd "${srcdir}" diff --git a/mingw-w64-python-snowballstemmer/PKGBUILD b/mingw-w64-python-snowballstemmer/PKGBUILD index 59a63d20ff..bea2152ff2 100644 --- a/mingw-w64-python-snowballstemmer/PKGBUILD +++ b/mingw-w64-python-snowballstemmer/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=snowballstemmer +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=1.2.0 -pkgrel=1 +pkgrel=2 pkgdesc="Snowball stemming library collection for Python (mingw-w64)" arch=('any') license=('BSD') diff --git a/mingw-w64-python-sphinx-alabaster-theme/PKGBUILD b/mingw-w64-python-sphinx-alabaster-theme/PKGBUILD index 65ceb8c553..f3534c12e6 100644 --- a/mingw-w64-python-sphinx-alabaster-theme/PKGBUILD +++ b/mingw-w64-python-sphinx-alabaster-theme/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=sphinx-alabaster-theme +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=0.7.4 +pkgver=0.7.6 pkgrel=1 pkgdesc="Modified Kr Sphinx doc theme (mingw-w64)" arch=('any') @@ -12,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") options=('staticlibs') source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/bitprophet/alabaster/archive/${pkgver}.tar.gz") -md5sums=('ed0f1f6cba60e930cba5ed45276b5323') +md5sums=('940d47184c4d67d9e1943ba2e5b15a65') prepare() { cd ${srcdir} diff --git a/mingw-w64-python-sphinx/PKGBUILD b/mingw-w64-python-sphinx/PKGBUILD index 7a5f46474f..d463fbd904 100644 --- a/mingw-w64-python-sphinx/PKGBUILD +++ b/mingw-w64-python-sphinx/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Ray Donnelly _realname=sphinx +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=1.3.1 -pkgrel=3 +pkgrel=4 pkgdesc="A discovery-based unittest extension (mingw-w64)" arch=('any') license=('LGPL-2.1') diff --git a/mingw-w64-python-sphinx_rtd_theme/PKGBUILD b/mingw-w64-python-sphinx_rtd_theme/PKGBUILD index f18fec1dd0..67b61d68f1 100644 --- a/mingw-w64-python-sphinx_rtd_theme/PKGBUILD +++ b/mingw-w64-python-sphinx_rtd_theme/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=sphinx_rtd_theme +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=0.1.8 +pkgver=0.1.9 pkgrel=1 pkgdesc="Python Sphinx Read The Docs Theme (mingw-w64)" arch=('any') @@ -12,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") options=('staticlibs') source=("https://pypi.python.org/packages/source/s/${_realname}/${_realname}-${pkgver}.tar.gz") -md5sums=('713ce7c53239449bdd799385577329ee') +md5sums=('86a25c8d47147c872e42dc84cc66f97b') prepare() { cd ${srcdir} diff --git a/mingw-w64-python-statsmodels/PKGBUILD b/mingw-w64-python-statsmodels/PKGBUILD index 5e08b01061..6deef53f1d 100644 --- a/mingw-w64-python-statsmodels/PKGBUILD +++ b/mingw-w64-python-statsmodels/PKGBUILD @@ -1,29 +1,28 @@ # Contributor: Runar Tenfjord < runar dot tenfjord at gmail dot com > _realname=statsmodels +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-$_realname" "${MINGW_PACKAGE_PREFIX}-python3-$_realname") pkgver=0.6.1 -pkgrel=1 -pkgdesc="Statistical computations and models for use with SciPy. (mingw-w64)" +pkgrel=2 +pkgdesc="Statistical computations and models for use with SciPy (mingw-w64)" arch=('any') url="http://statsmodels.sourceforge.net/" license=('BSD') -makedepends=( - "${MINGW_PACKAGE_PREFIX}-python2-scipy" - "${MINGW_PACKAGE_PREFIX}-python3-scipy" - "${MINGW_PACKAGE_PREFIX}-python2-pandas" - "${MINGW_PACKAGE_PREFIX}-python3-pandas" - "${MINGW_PACKAGE_PREFIX}-python2-patsy" - "${MINGW_PACKAGE_PREFIX}-python3-patsy" - "${MINGW_PACKAGE_PREFIX}-cython" - "${MINGW_PACKAGE_PREFIX}-cython2" - "${MINGW_PACKAGE_PREFIX}-python2-setuptools" - "${MINGW_PACKAGE_PREFIX}-python3-setuptools" - "${MINGW_PACKAGE_PREFIX}-cython" - "${MINGW_PACKAGE_PREFIX}-cython2" - "${MINGW_PACKAGE_PREFIX}-gcc" -) +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-scipy" + "${MINGW_PACKAGE_PREFIX}-python3-scipy" + "${MINGW_PACKAGE_PREFIX}-python2-pandas" + "${MINGW_PACKAGE_PREFIX}-python3-pandas" + "${MINGW_PACKAGE_PREFIX}-python2-patsy" + "${MINGW_PACKAGE_PREFIX}-python3-patsy" + "${MINGW_PACKAGE_PREFIX}-cython" + "${MINGW_PACKAGE_PREFIX}-cython2" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-cython" + "${MINGW_PACKAGE_PREFIX}-cython2" + "${MINGW_PACKAGE_PREFIX}-gcc") source=("https://pypi.python.org/packages/source/s/statsmodels/statsmodels-${pkgver}.tar.gz") md5sums=('f7580ebf7d2a2c9b87abfad190dcb9a3') diff --git a/mingw-w64-python3-cairo/PKGBUILD b/mingw-w64-python3-cairo/PKGBUILD index 33f974a343..bf095d2ced 100644 --- a/mingw-w64-python3-cairo/PKGBUILD +++ b/mingw-w64-python3-cairo/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=pycairo +pkgbase=mingw-w64-python3-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-python3-cairo" pkgver=1.10.0 -pkgrel=4 +pkgrel=5 pkgdesc="Python2 bindings for the cairo graphics library (mingw-w64)" url="http://www.cairographics.org/pycairo" arch=('any') diff --git a/mingw-w64-sip/PKGBUILD b/mingw-w64-sip/PKGBUILD index a8d5efaf09..9de5673bde 100644 --- a/mingw-w64-sip/PKGBUILD +++ b/mingw-w64-sip/PKGBUILD @@ -5,7 +5,7 @@ _realname=sip pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=4.16.9 -pkgrel=1 +pkgrel=2 pkgdesc="Tool to create Python bindings for C and C++ libraries (mingw-w64)" arch=('any') license=('GPL') @@ -54,8 +54,8 @@ package_python3-sip() { cd python3-${MINGW_CHOST} make DESTDIR="${pkgdir}" install -C siplib - install -Dm644 sipconfig.py "${pkgdir}${MINGW_PREFIX}"/lib/python3.4/site-packages/sipconfig.py - install -Dm644 sipdistutils.py "${pkgdir}${MINGW_PREFIX}"/lib/python3.4/site-packages/sipdistutils.py + install -Dm644 sipconfig.py "${pkgdir}${MINGW_PREFIX}"/lib/python3.5/site-packages/sipconfig.py + install -Dm644 sipdistutils.py "${pkgdir}${MINGW_PREFIX}"/lib/python3.5/site-packages/sipdistutils.py install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-sip/LICENSE" } From 6cdcd44ca30a85756493b7726bf91a23ae4f55de Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 9 Oct 2015 12:34:40 +0300 Subject: [PATCH 1687/2060] meld3: Update to 3.15.0 --- mingw-w64-meld3/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-meld3/PKGBUILD b/mingw-w64-meld3/PKGBUILD index fa7b97269d..e076fe1983 100644 --- a/mingw-w64-meld3/PKGBUILD +++ b/mingw-w64-meld3/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=meld +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.14.0 +pkgver=3.15.0 pkgrel=1 pkgdesc="Visual diff and merge tool (mingw-w64)" arch=('any') @@ -24,7 +25,7 @@ install=meld-${CARCH}.install source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz '0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch' "0002-build-exe.patch") -md5sums=('7d09e818726ee09e84d305feef79695c' +md5sums=('f243933e371b589b3cbd8224a8966317' '6ddb432315e37fed974491a27fd15736' 'c4770167f70e061c1f94d8c3fa3e7150') From f623b2e42a6814cc5f759d51743e8b92a9881070 Mon Sep 17 00:00:00 2001 From: Wang Zhi Date: Sat, 10 Oct 2015 13:15:27 +0800 Subject: [PATCH 1688/2060] Fix hard coded path prefix. Seems to fix issue #816. --- mingw-w64-freetype/PKGBUILD | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mingw-w64-freetype/PKGBUILD b/mingw-w64-freetype/PKGBUILD index dbc104da65..b8b4b7b303 100644 --- a/mingw-w64-freetype/PKGBUILD +++ b/mingw-w64-freetype/PKGBUILD @@ -62,6 +62,9 @@ build() { package () { cd "${srcdir}/build-${CARCH}" make DESTDIR="${pkgdir}" install + + # Replace the absolute path. + sed -i "s|$(cygpath -m /)|/|g" $(find $pkgdir -type f) # Licenses install -Dm644 "${srcdir}/${_realname}-${pkgver}/docs/LICENSE.TXT" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE.TXT" From 258d098f5776ef290122802568e8deb6233cbd12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BERTHO?= Date: Sat, 10 Oct 2015 19:39:53 +0200 Subject: [PATCH 1689/2060] Add podofo --- mingw-w64-podofo/PKGBUILD | 44 ++++++++++++++++++++++++++++++++++++++ mingw-w64-podofo/win.patch | 14 ++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 mingw-w64-podofo/PKGBUILD create mode 100644 mingw-w64-podofo/win.patch diff --git a/mingw-w64-podofo/PKGBUILD b/mingw-w64-podofo/PKGBUILD new file mode 100644 index 0000000000..dc78de7424 --- /dev/null +++ b/mingw-w64-podofo/PKGBUILD @@ -0,0 +1,44 @@ +# Maintainer: Rémi BERTHO + +_realname=podofo +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.9.3 +pkgrel=1 +pkgdesc="A C++ library to work with the PDF file format" +arch=('i686' 'x86_64') +url="http://podofo.sourceforge.net" +license=('GPL') +depends=("${MINGW_PACKAGE_PREFIX}-lua51" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-fontconfig" "${MINGW_PACKAGE_PREFIX}-libtiff" "libidn" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") +source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" "win.patch") +md5sums=('268ca111826757ca7e3f5c4be3547e7a' '4a0006884bd9fd3ad73f3ec3ed0cd886') + +prepare() { + cd ${_realname}-${pkgver} + patch -p1 -i "$srcdir/win.patch" +} + +build() { + cd ${_realname}-${pkgver} + + mkdir build + cd build + cmake -G"MSYS Makefiles" \ + -Wno-dev \ + -DCMAKE_SYSTEM_PREFIX_PATH:PATH=/mingw64/bin/ \ + -DCMAKE_C_COMPILER=gcc \ + -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_MAKE_PROGRAM=mingw32-make \ + -DCMAKE_INSTALL_PREFIX=/usr .. \ + -DFREETYPE_INCLUDE_DIR=/mingw64/include/freetype2 \ + -DPODOFO_BUILD_SHARED=1 \ + -DPODOFO_HAVE_JPEG_LIB=1 \ + -DPODOFO_HAVE_PNG_LIB=1 \ + -DPODOFO_HAVE_TIFF_LIB=1 + mingw32-make +} + +package() { + cd ${_realname}-${pkgver}/build + mingw32-make DESTDIR=$pkgdir install +} diff --git a/mingw-w64-podofo/win.patch b/mingw-w64-podofo/win.patch new file mode 100644 index 0000000000..3fbc097710 --- /dev/null +++ b/mingw-w64-podofo/win.patch @@ -0,0 +1,14 @@ +--- podofo-0.9.3/src/CMakeLists.txt.orig 2014-06-15 13:27:21.000000000 +0200 ++++ podofo-0.9.3/src/CMakeLists.txt 2015-10-10 19:24:45.115148986 +0200 +@@ -107,11 +107,6 @@ + doc/PdfXObject.cpp + ) + +-IF(WIN32) +- # If we build for windows systems, we also include the resource file +- SET(PODOFO_DOC_SOURCES ${PODOFO_DOC_SOURCES} doc/podofo-doc.rc) +-ENDIF(WIN32) +- + SET(PODOFO_HEADERS + podofo-base.h + podofo.h) From 9505b26e66fbda9b2679cfafc84f6fae306e629c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BERTHO?= Date: Sun, 11 Oct 2015 15:28:37 +0200 Subject: [PATCH 1690/2060] Add libharu --- mingw-w64-libharu/PKGBUILD | 42 +++++++++++++++++++ mingw-w64-libharu/win_lib.patch | 14 +++++++ .../win_various_install_files.patch | 18 ++++++++ 3 files changed, 74 insertions(+) create mode 100644 mingw-w64-libharu/PKGBUILD create mode 100644 mingw-w64-libharu/win_lib.patch create mode 100644 mingw-w64-libharu/win_various_install_files.patch diff --git a/mingw-w64-libharu/PKGBUILD b/mingw-w64-libharu/PKGBUILD new file mode 100644 index 0000000000..b4c4e3c344 --- /dev/null +++ b/mingw-w64-libharu/PKGBUILD @@ -0,0 +1,42 @@ +# Maintainer: Rémi BERTHO + +_realname=libharu +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.3.0 +pkgrel=1 +pkgdesc="C library for generating PDF documents" +url="https://github.com/libharu/libharu" +arch=('i686' 'x86_64') +license=('custom:ZLIB') +depends=("${MINGW_PACKAGE_PREFIX}-libpng") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") +source=("https://github.com/libharu/libharu/archive/RELEASE_${pkgver//./_}.tar.gz" "win_various_install_files.patch" "win_lib.patch") +md5sums=('4f916aa49c3069b3a10850013c507460' 'cde4ba6d18174097801aba1ac65d3efa' '20267023a191192ddb313d625bdf8037') + +prepare() { + cd "$srcdir/$_realname-RELEASE_${pkgver//./_}" + patch -p1 -i "$srcdir/win_various_install_files.patch" + patch -p1 -i "$srcdir/win_lib.patch" +} + +build() { + cd "$srcdir/$_realname-RELEASE_${pkgver//./_}" + mkdir build + cd build + cmake -G"MSYS Makefiles" \ + -Wno-dev \ + -DCMAKE_SYSTEM_PREFIX_PATH:PATH=/mingw64/bin/ \ + -DCMAKE_C_COMPILER=gcc \ + -DCMAKE_MAKE_PROGRAM=mingw32-make \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_STATIC_LIBS=ON \ + -DCMAKE_INSTALL_PREFIX=/usr .. + mingw32-make +} + +package() { + cd "$srcdir/$_realname-RELEASE_${pkgver//./_}/build" + mingw32-make DESTDIR=$pkgdir install +} + diff --git a/mingw-w64-libharu/win_lib.patch b/mingw-w64-libharu/win_lib.patch new file mode 100644 index 0000000000..4e8f01c8b5 --- /dev/null +++ b/mingw-w64-libharu/win_lib.patch @@ -0,0 +1,14 @@ +--- libharu-RELEASE_2_3_0/src/CMakeLists.txt.orig 2013-10-30 14:11:59.000000000 +0100 ++++ libharu-RELEASE_2_3_0/src/CMakeLists.txt 2015-10-10 21:13:27.080689969 +0200 +@@ -79,11 +79,6 @@ + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin + ) +- if(WIN32 AND NOT CYGWIN) +- foreach(addlib ${ADDITIONAL_LIBRARIES}) +- install(FILES ${addlib} DESTINATION lib) +- endforeach(addlib) +- endif(WIN32 AND NOT CYGWIN) + endif(LIBHPDF_STATIC) + if(LIBHPDF_SHARED) + add_library(${LIBHPDF_NAME} SHARED ${LIBHPDF_SRCS}) diff --git a/mingw-w64-libharu/win_various_install_files.patch b/mingw-w64-libharu/win_various_install_files.patch new file mode 100644 index 0000000000..86ec59d648 --- /dev/null +++ b/mingw-w64-libharu/win_various_install_files.patch @@ -0,0 +1,18 @@ +--- libharu-RELEASE_2_3_0/CMakeLists.txt.orig 2013-10-30 14:11:59.000000000 +0100 ++++ libharu-RELEASE_2_3_0/CMakeLists.txt 2015-10-11 15:24:05.099693992 +0200 +@@ -209,15 +209,6 @@ + # install header files + install(FILES ${haru_HDRS} DESTINATION include) + +-# install various files +-install(FILES README CHANGES INSTALL DESTINATION .) +-if(NOT DEVPAK) +- install(DIRECTORY if DESTINATION .) +-endif(NOT DEVPAK) +-if(DEVPAK) +- install(FILES ${CMAKE_BINARY_DIR}/libharu.DevPackage DESTINATION .) +-endif(DEVPAK) +- + # ======================================================================= + # print out some information + # ======================================================================= From 00ff5e40f7d17ca8cd7ca337e7dba2c21e882b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BERTHO?= Date: Sun, 11 Oct 2015 16:24:54 +0200 Subject: [PATCH 1691/2060] Fix libharu installation directory --- mingw-w64-libharu/PKGBUILD | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/mingw-w64-libharu/PKGBUILD b/mingw-w64-libharu/PKGBUILD index b4c4e3c344..b8fedc7ea9 100644 --- a/mingw-w64-libharu/PKGBUILD +++ b/mingw-w64-libharu/PKGBUILD @@ -21,17 +21,16 @@ prepare() { build() { cd "$srcdir/$_realname-RELEASE_${pkgver//./_}" - mkdir build + mkdir -p build cd build - cmake -G"MSYS Makefiles" \ - -Wno-dev \ - -DCMAKE_SYSTEM_PREFIX_PATH:PATH=/mingw64/bin/ \ - -DCMAKE_C_COMPILER=gcc \ - -DCMAKE_MAKE_PROGRAM=mingw32-make \ + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ + -DCMAKE_C_COMPILER=${MINGW_PREFIX}/bin/gcc.exe \ + -DCMAKE_MAKE_PROGRAM=${MINGW_PREFIX}/bin/mingw32-make.exe \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_STATIC_LIBS=ON \ - -DCMAKE_INSTALL_PREFIX=/usr .. + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. mingw32-make } From 56403bb96a6204304d2ca70cd052ec149fb29f19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BERTHO?= Date: Sun, 11 Oct 2015 16:37:37 +0200 Subject: [PATCH 1692/2060] Fix podofo install dir --- mingw-w64-podofo/PKGBUILD | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mingw-w64-podofo/PKGBUILD b/mingw-w64-podofo/PKGBUILD index dc78de7424..eda17cee4e 100644 --- a/mingw-w64-podofo/PKGBUILD +++ b/mingw-w64-podofo/PKGBUILD @@ -21,16 +21,17 @@ prepare() { build() { cd ${_realname}-${pkgver} - mkdir build + mkdir -p build cd build - cmake -G"MSYS Makefiles" \ + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ -Wno-dev \ - -DCMAKE_SYSTEM_PREFIX_PATH:PATH=/mingw64/bin/ \ - -DCMAKE_C_COMPILER=gcc \ - -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_C_COMPILER=${MINGW_PREFIX}/bin/gcc.exe \ + -DCMAKE_CXX_COMPILER=${MINGW_PREFIX}/bin/g++.exe \ -DCMAKE_MAKE_PROGRAM=mingw32-make \ - -DCMAKE_INSTALL_PREFIX=/usr .. \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. \ -DFREETYPE_INCLUDE_DIR=/mingw64/include/freetype2 \ + -DCMAKE_BUILD_TYPE=Release \ -DPODOFO_BUILD_SHARED=1 \ -DPODOFO_HAVE_JPEG_LIB=1 \ -DPODOFO_HAVE_PNG_LIB=1 \ From ae50faab4a95ddf93004bc6c99e15fc6067633ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BERTHO?= Date: Sun, 11 Oct 2015 17:04:29 +0200 Subject: [PATCH 1693/2060] Add muparser --- mingw-w64-muparser/PKGBUILD | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 mingw-w64-muparser/PKGBUILD diff --git a/mingw-w64-muparser/PKGBUILD b/mingw-w64-muparser/PKGBUILD new file mode 100644 index 0000000000..6c3fa2c6d7 --- /dev/null +++ b/mingw-w64-muparser/PKGBUILD @@ -0,0 +1,40 @@ +# Maintainer: Rémi BERTHO + +_realname=muparser +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.2.4 +pkgrel=1 +pkgdesc="A fast math parser library" +arch=('i686' 'x86_64') +url="http://muparser.sourceforge.net/" +license=('custom') +options=('!makeflags') +source=("${_realname}-${pkgver}.zip::https://drive.google.com/uc?export=download&id=0BzuB-ydOOoduejdwdTQwcF9JLTA") +sha1sums=('78db09680cafd5db4fd08a5d472afd2fa65f9274') + +build() { + cd $srcdir/${_realname}_v${pkgver//./_} + ./configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --enable-shared=yes \ + --enable-samples=no \ + --enable-debug=no + + mingw32-make +} + +package() { + cd $srcdir/${_realname}_v${pkgver//./_} + mingw32-make DESTDIR=${pkgdir} install + + mkdir ${pkgdir}${MINGW_PREFIX}/bin + mv ${pkgdir}${MINGW_PREFIX}/lib/muparser.dll ${pkgdir}${MINGW_PREFIX}/bin + + # license + install -D -m644 License.txt \ + $pkgdir${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE +} + From 3fe9bb864bd72fe4d55af87f4a778bc3693f675b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 11 Oct 2015 19:08:15 +0100 Subject: [PATCH 1694/2060] cython: Update to 0.23.4 --- mingw-w64-cython/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cython/PKGBUILD b/mingw-w64-cython/PKGBUILD index 33d8037f5e..812ecb2535 100644 --- a/mingw-w64-cython/PKGBUILD +++ b/mingw-w64-cython/PKGBUILD @@ -4,7 +4,7 @@ _realname=cython pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-cython" "${MINGW_PACKAGE_PREFIX}-cython2") -pkgver=0.23 +pkgver=0.23.4 pkgrel=1 pkgdesc="C-Extensions for Python (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-gcc" ) source=("http://cython.org/release/Cython-${pkgver}.tar.gz") -md5sums=('63d472d0a9b3b39b9651f7bf568bb4a5') +md5sums=('157df1f69bcec6b56fd97e0f2e057f6e') prepare() { cp -a ${_realname}-${pkgver} ${_realname}-py2-${pkgver}-${CARCH} From ee0ebc29fac363b3c88b4011d8b6d1a9f2f8662c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 11 Oct 2015 20:10:18 +0100 Subject: [PATCH 1695/2060] meld3: Fix baked build path --- mingw-w64-meld3/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-meld3/PKGBUILD b/mingw-w64-meld3/PKGBUILD index e076fe1983..0867250fe5 100644 --- a/mingw-w64-meld3/PKGBUILD +++ b/mingw-w64-meld3/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly _realname=meld pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" pkgver=3.15.0 -pkgrel=1 +pkgrel=2 pkgdesc="Visual diff and merge tool (mingw-w64)" arch=('any') url="http://meldmerge.org/" @@ -38,8 +39,7 @@ prepare() { build() { cd "${srcdir}/${_realname}-${pkgver}" - #export PYTHON=${MINGW_PREFIX}/bin/python2 - DISTUTILS_DEBUG=1 ${MINGW_PREFIX}/bin/python2 setup.py build + PYTHON=${MINGW_PREFIX}/bin/python2 DISTUTILS_DEBUG=1 ${MINGW_PREFIX}/bin/python2 setup.py build } package() { @@ -48,7 +48,7 @@ package() { MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py --no-update-icon-cache --no-compile-schemas \ install --prefix=${MINGW_PREFIX} --root="${pkgdir}" - PREFIX_WIN=$(pwd -W) + PREFIX_WIN=$(cygpath -m ${MINGW_PREFIX}) sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ -i ${pkgdir}${MINGW_PREFIX}/bin/meld } From 77501a6e436a1a023bb1a876432e12ef6ff31667 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 11 Oct 2015 20:14:34 +0100 Subject: [PATCH 1696/2060] Several updates for Python 3.5.0 --- mingw-w64-Pillow/PKGBUILD | 12 +++++----- mingw-w64-Pillow/freeze-support.patch | 32 ++++++++++++------------- mingw-w64-blender-git/PKGBUILD | 2 +- mingw-w64-blender/PKGBUILD | 4 ++-- mingw-w64-blender/mingw-w64-cmake.patch | 2 +- mingw-w64-boost/PKGBUILD | 2 +- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/mingw-w64-Pillow/PKGBUILD b/mingw-w64-Pillow/PKGBUILD index ac3af720b3..5ba55364ca 100644 --- a/mingw-w64-Pillow/PKGBUILD +++ b/mingw-w64-Pillow/PKGBUILD @@ -2,9 +2,9 @@ _realname=Pillow pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=2.9.0 +pkgver=3.0.0 _py2basever=2.7 -_py3basever=3.4m +_py3basever=3.5m pkgrel=1 arch=('any') license=('custom') @@ -22,8 +22,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" options=('staticlibs') source=("http://pypi.python.org/packages/source/P/${_realname}/${_realname}-${pkgver}.tar.gz" freeze-support.patch) -md5sums=('46f1729ece27981d54ec543ad5b37d14' - 'ad29e8ff8f4c629dac44e10e3548b621') +md5sums=('fc8ac44e93da09678eac7e30c9b7377d' + 'cff4ba2f6541c7ab2ab2e27a4d53df61') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -40,7 +40,7 @@ package_python3-Pillow() { cd "${srcdir}/python3-build-${CARCH}" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0 + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0 install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" install -dm755 "${pkgdir}${MINGW_PREFIX}/include/python${_py3basever}/" @@ -60,7 +60,7 @@ package_python2-Pillow() { cd "${srcdir}/python2-build-${CARCH}" MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0 + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0 sed -i 's|/usr/local/bin/python$|/usr/bin/env python2|' \ "${pkgdir}${MINGW_PREFIX}/lib/python${_py2basever}/site-packages/PIL/OleFileIO.py" diff --git a/mingw-w64-Pillow/freeze-support.patch b/mingw-w64-Pillow/freeze-support.patch index 7f10474287..530689445e 100644 --- a/mingw-w64-Pillow/freeze-support.patch +++ b/mingw-w64-Pillow/freeze-support.patch @@ -1,6 +1,6 @@ ---- Pillow-2.5.1/mp_compile.py.orig 2014-07-10 17:52:44.000000000 +0400 -+++ Pillow-2.5.1/mp_compile.py 2014-07-12 01:13:13.373200000 +0400 -@@ -1,7 +1,7 @@ +--- Pillow-3.0.0/mp_compile.py.orig 2015-10-01 16:27:09.000000000 +0100 ++++ Pillow-3.0.0/mp_compile.py 2015-10-05 23:34:17.226557000 +0100 +@@ -2,7 +2,7 @@ # Tested on 2.7, looks to be identical to 3.3. from __future__ import print_function @@ -9,16 +9,16 @@ from distutils.ccompiler import CCompiler import os import sys -@@ -54,8 +54,10 @@ - try: - # bug, only enable if we can make a Pool. see issue #790 and - # http://stackoverflow.com/questions/6033599/oserror-38-errno-38-with-multiprocessing -- pool = Pool(2) -- CCompiler.compile = _mp_compile -+ if __name__ == '__main__': -+ freeze_support() -+ pool = Pool(2) -+ CCompiler.compile = _mp_compile - except Exception as msg: - print("Exception installing mp_compile, proceeding without: %s" %msg) - else: +@@ -72,8 +72,10 @@ + try: + # bug, only enable if we can make a Pool. see issue #790 and + # http://stackoverflow.com/questions/6033599/oserror-38-errno-38-with-multiprocessing +- pool = Pool(2) +- CCompiler.compile = _mp_compile ++ if __name__ == '__main__': ++ freeze_support() ++ pool = Pool(2) ++ CCompiler.compile = _mp_compile + except Exception as msg: + print("Exception installing mp_compile, proceeding without:" + "%s" % msg) diff --git a/mingw-w64-blender-git/PKGBUILD b/mingw-w64-blender-git/PKGBUILD index 3287efb78e..777a595d3f 100644 --- a/mingw-w64-blender-git/PKGBUILD +++ b/mingw-w64-blender-git/PKGBUILD @@ -7,7 +7,7 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") blender_version=2.74 pkgver=r58316.c32ded3 -_pyver=3.4 +_pyver=3.5 pkgrel=1 pkgdesc="A fully integrated 3D graphics creation suite (mingw-w64)" arch=('any') diff --git a/mingw-w64-blender/PKGBUILD b/mingw-w64-blender/PKGBUILD index 1d1ba90fcd..8a54c3f848 100644 --- a/mingw-w64-blender/PKGBUILD +++ b/mingw-w64-blender/PKGBUILD @@ -6,7 +6,7 @@ # set "PKG_CONFIG_PATH=%MINGW_PREFIX%/lib/pkgconfig" # set "PATH=%MINGW_PREFIX%/bin;%PATH%" # 2. Specify the following as the CMake arguments: -# -DMINGW_LIBS=%MINGW_PREFIX% -DCMAKE_BUILD_TYPE=Debug -DWITH_SYSTEM_GLEW=ON -DWITH_SYSTEM_OPENJPEG=ON -DWITH_INSTALL_PORTABLE=OFF -DWITH_OPENCOLLADA=ON -DWITH_GAMEENGINE=ON -DWITH_RAYOPTIMIZATION=ON -DWITH_JACK=OFF -DWITH_PLAYER=ON -DWITH_CODEC_FFMPEG=ON -DWITH_CODEC_SNDFILE=ON -DWITH_CYCLES=ON -DWITH_CYCLES_CUDA_BINARIES=OFF -DWITH_CYCLES_OSL=ON -DWITH_FFTW3=ON -DWITH_MOD_OCEANSIM=ON -DPYTHON_VERSION=3.4 -DPYTHON_LIBPATH=%MINGW_PREFIX%/lib -DPYTHON_LIBRARY="python3.4m" -DPYTHON_INCLUDE_DIRS=/msys64/mingw64/include/python3.4m -DWITH_PYTHON_INSTALL=OFF -DWITH_PYTHON_INSTALL_NUMPY=OFF -DPYTHON_NUMPY_PATH=%MINGW_PREFIX%/lib/python3.4/site-packages -DCYCLES_OSL=%MINGW_PREFIX% -DWITH_IMAGE_REDCODE=ON -DWITH_OPENMP=ON -DWITH_LLVM=ON -DLLVM_STATIC=ON +# -DMINGW_LIBS=%MINGW_PREFIX% -DCMAKE_BUILD_TYPE=Debug -DWITH_SYSTEM_GLEW=ON -DWITH_SYSTEM_OPENJPEG=ON -DWITH_INSTALL_PORTABLE=OFF -DWITH_OPENCOLLADA=ON -DWITH_GAMEENGINE=ON -DWITH_RAYOPTIMIZATION=ON -DWITH_JACK=OFF -DWITH_PLAYER=ON -DWITH_CODEC_FFMPEG=ON -DWITH_CODEC_SNDFILE=ON -DWITH_CYCLES=ON -DWITH_CYCLES_CUDA_BINARIES=OFF -DWITH_CYCLES_OSL=ON -DWITH_FFTW3=ON -DWITH_MOD_OCEANSIM=ON -DPYTHON_VERSION=3.5 -DPYTHON_LIBPATH=%MINGW_PREFIX%/lib -DPYTHON_LIBRARY="python3.5m" -DPYTHON_INCLUDE_DIRS=/msys64/mingw64/include/python3.5m -DWITH_PYTHON_INSTALL=OFF -DWITH_PYTHON_INSTALL_NUMPY=OFF -DPYTHON_NUMPY_PATH=%MINGW_PREFIX%/lib/python3.5/site-packages -DCYCLES_OSL=%MINGW_PREFIX% -DWITH_IMAGE_REDCODE=ON -DWITH_OPENMP=ON -DWITH_LLVM=ON -DLLVM_STATIC=ON _realname=blender pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" @@ -17,7 +17,7 @@ _minorchar= } || { pkgver=${_basever}.${_minorchar} } -_pyver=3.4 +_pyver=3.5 pkgrel=2 pkgdesc="A fully integrated 3D graphics creation suite (mingw-w64)" arch=('any') diff --git a/mingw-w64-blender/mingw-w64-cmake.patch b/mingw-w64-blender/mingw-w64-cmake.patch index 762f67fc19..e73b45f576 100644 --- a/mingw-w64-blender/mingw-w64-cmake.patch +++ b/mingw-w64-blender/mingw-w64-cmake.patch @@ -31,7 +31,7 @@ # find_package(PythonLibs) + if(MINGW) + # normally cached but not since we include them with blender -+ set(PYTHON_VERSION 3.4) # CACHE STRING) ++ set(PYTHON_VERSION 3.5) # CACHE STRING) + set(PYTHON_INCLUDE_DIR "${LIBDIR}/include/python${PYTHON_VERSION}m") # CACHE PATH) + set(PYTHON_LIBRARY "${LIBDIR}/lib/libpython${PYTHON_VERSION}m.dll.a") # CACHE FILEPATH) + # uncached vars diff --git a/mingw-w64-boost/PKGBUILD b/mingw-w64-boost/PKGBUILD index 644d76d7cc..01687cecaf 100644 --- a/mingw-w64-boost/PKGBUILD +++ b/mingw-w64-boost/PKGBUILD @@ -138,7 +138,7 @@ build() { cd "${srcdir}/build-${MINGW_CHOST}" echo "using python : 2.7 : ${PREFIX_DEPS}/bin/python2.exe : ${PREFIX_DEPS}/include/python2.7 ;" >> ./tools/build/src/user-config.jam - echo "using python : 3.4 : ${PREFIX_DEPS}/bin/python3.exe : ${PREFIX_DEPS}/include/python3.4m : ${PREFIX_DEPS}/lib/python3.4/config-3.4m ;" >> ./tools/build/src/user-config.jam + echo "using python : 3.5 : ${PREFIX_DEPS}/bin/python3.exe : ${PREFIX_DEPS}/include/python3.5m : ${PREFIX_DEPS}/lib/python3.5/config-3.5m ;" >> ./tools/build/src/user-config.jam #echo "using gcc : : ${PREFIX_DEPS}/bin/g++.exe : ${PREFIX_DEPS}/bin/windres.exe ;" >> ./tools/build/src/user-config.jam ./bootstrap.sh --with-icu=${MINGW_PREFIX} --with-python=${MINGW_PREFIX} --with-toolset=gcc From 088fc256ba18a25312916cad27e4d0dd3d7421bd Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 11 Oct 2015 22:33:32 +0100 Subject: [PATCH 1697/2060] openshadinglanguage-git: Updates (WIP) Seems LLVM > 3.5 is still not supported so there's no point continuing with this until that's fixed. --- ...-Define-isatty-as-_isatty-for-_WIN32.patch | 28 +++++++ .../0002-Use-getcwd-for-older-OIIO.patch | 57 ++++++++++++++ .../0003-Fix-unsigned-signed-compares.patch | 74 +++++++++++++++++++ mingw-w64-openshadinglanguage-git/PKGBUILD | 14 +++- 4 files changed, 171 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-openshadinglanguage-git/0001-osolex-Define-isatty-as-_isatty-for-_WIN32.patch create mode 100644 mingw-w64-openshadinglanguage-git/0002-Use-getcwd-for-older-OIIO.patch create mode 100644 mingw-w64-openshadinglanguage-git/0003-Fix-unsigned-signed-compares.patch diff --git a/mingw-w64-openshadinglanguage-git/0001-osolex-Define-isatty-as-_isatty-for-_WIN32.patch b/mingw-w64-openshadinglanguage-git/0001-osolex-Define-isatty-as-_isatty-for-_WIN32.patch new file mode 100644 index 0000000000..8de2e4845b --- /dev/null +++ b/mingw-w64-openshadinglanguage-git/0001-osolex-Define-isatty-as-_isatty-for-_WIN32.patch @@ -0,0 +1,28 @@ +From 931587b3c4ef03a0c9a7c86b85a531a1c13e0dc3 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sun, 11 Oct 2015 21:35:24 +0100 +Subject: [PATCH 1/3] osolex: Define isatty as _isatty for _WIN32 + +--- + src/liboslexec/osolex.l | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/liboslexec/osolex.l b/src/liboslexec/osolex.l +index 2414e8b..6e50519 100644 +--- a/src/liboslexec/osolex.l ++++ b/src/liboslexec/osolex.l +@@ -106,6 +106,11 @@ using namespace OSL::pvt; + #define YY_NO_UNISTD_H + #endif + ++#ifdef _WIN32 ++#include ++#define isatty _isatty ++#endif ++ + %} + + /* Declare modes */ +-- +2.6.0 + diff --git a/mingw-w64-openshadinglanguage-git/0002-Use-getcwd-for-older-OIIO.patch b/mingw-w64-openshadinglanguage-git/0002-Use-getcwd-for-older-OIIO.patch new file mode 100644 index 0000000000..f92efe7568 --- /dev/null +++ b/mingw-w64-openshadinglanguage-git/0002-Use-getcwd-for-older-OIIO.patch @@ -0,0 +1,57 @@ +From 7d85462a08c0084a76f29d6c8183fd3ac94544cf Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sun, 11 Oct 2015 22:04:44 +0100 +Subject: [PATCH 2/3] Use getcwd() for older OIIO + +.. and _getcwd() for _WIN32 +--- + src/liboslcomp/oslcomp.cpp | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/src/liboslcomp/oslcomp.cpp b/src/liboslcomp/oslcomp.cpp +index 93ff580..1503a32 100644 +--- a/src/liboslcomp/oslcomp.cpp ++++ b/src/liboslcomp/oslcomp.cpp +@@ -50,6 +50,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #include + #include + ++#if defined(_WIN32) ++#include ++#define getcwd _getcwd ++#endif + + OSL_NAMESPACE_ENTER + +@@ -341,7 +345,13 @@ OSLCompilerImpl::compile (string_view filename, + + std::vector defines; + std::vector includepaths; ++#if OPENIMAGEIO_VERSION >= 10600 + m_cwd = OIIO::Filesystem::current_path(); ++#else ++ char tmpcwd[PATH_MAX]; ++ getcwd(tmpcwd, PATH_MAX - 1); ++ m_cwd = std::string(tmpcwd); ++#endif + m_main_filename = filename; + + // Determine where the installed shader include directory is, and +@@ -430,8 +440,13 @@ OSLCompilerImpl::compile_buffer (string_view sourcecode, + string_view stdoslpath) + { + string_view filename (""); +- ++#if OPENIMAGEIO_VERSION >= 10600 + m_cwd = OIIO::Filesystem::current_path(); ++#else ++ char tmpcwd[PATH_MAX]; ++ getcwd(tmpcwd, PATH_MAX - 1); ++ m_cwd = std::string(tmpcwd); ++#endif + m_main_filename = filename; + + // Determine where the installed shader include directory is, and +-- +2.6.0 + diff --git a/mingw-w64-openshadinglanguage-git/0003-Fix-unsigned-signed-compares.patch b/mingw-w64-openshadinglanguage-git/0003-Fix-unsigned-signed-compares.patch new file mode 100644 index 0000000000..4b287cf03e --- /dev/null +++ b/mingw-w64-openshadinglanguage-git/0003-Fix-unsigned-signed-compares.patch @@ -0,0 +1,74 @@ +From ffc29ce77e83fc312b97e424a64a1bd2a7f01d39 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sun, 11 Oct 2015 22:20:32 +0100 +Subject: [PATCH 3/3] Fix unsigned/signed compares + +--- + src/liboslexec/shadeimage.cpp | 2 +- + src/liboslexec/shadingsys.cpp | 10 +++++----- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/liboslexec/shadeimage.cpp b/src/liboslexec/shadeimage.cpp +index 3e9c244..10a85e3 100644 +--- a/src/liboslexec/shadeimage.cpp ++++ b/src/liboslexec/shadeimage.cpp +@@ -198,7 +198,7 @@ shade_image (ShadingSystem &shadingsys, ShaderGroup &group, + for (int c = 0; c < tvals; ++c) + p[chan++] = ((const float *)data)[c]; + } else if (t.basetype == TypeDesc::INT) { +- for (int c = 0; c < t.numelements()*t.aggregate; ++c) ++ for (size_t c = 0; c < t.numelements()*t.aggregate; ++c) + p[chan++] = ((const int *)data)[c]; + } + // N.B. Drop any outputs that aren't float- or int-based +diff --git a/src/liboslexec/shadingsys.cpp b/src/liboslexec/shadingsys.cpp +index d21f0a3..15046dd 100644 +--- a/src/liboslexec/shadingsys.cpp ++++ b/src/liboslexec/shadingsys.cpp +@@ -1298,14 +1298,14 @@ ShadingSystemImpl::getattribute (ShaderGroup *group, string_view name, + } + if (name == "num_entry_layers" && type.basetype == TypeDesc::INT) { + size_t n = 0; +- for (size_t i = 0; i < group->nlayers(); ++i) ++ for (size_t i = 0; i < (size_t)group->nlayers(); ++i) + n += group->layer(i)->entry_layer(); + *(int *)val = n; + return true; + } + if (name == "entry_layers" && type.basetype == TypeDesc::STRING) { + size_t n = 0; +- for (size_t i = 0; i < group->nlayers() && i < type.numelements(); ++i) ++ for (size_t i = 0; i < (size_t)group->nlayers() && i < type.numelements(); ++i) + if (group->layer(i)->entry_layer()) + ((ustring *)val)[n++] = (*group)[i]->layername(); + for (size_t i = n; i < type.numelements(); ++i) +@@ -2097,7 +2097,7 @@ ShadingSystemImpl::ShaderGroupBegin (string_view groupname, + } + // Zero-pad if we parsed fewer values than we needed + intvals.resize (type.numelements()*type.aggregate, 0); +- ASSERT (type.numelements()*type.aggregate == int(intvals.size())); ++ ASSERT (type.numelements()*type.aggregate == intvals.size()); + Parameter (paramname, type, &intvals[0], lockgeom); + } else if (type.basetype == TypeDesc::FLOAT) { + floatvals.clear (); +@@ -2117,7 +2117,7 @@ ShadingSystemImpl::ShaderGroupBegin (string_view groupname, + } + // Zero-pad if we parsed fewer values than we needed + floatvals.resize (type.numelements()*type.aggregate, 0); +- ASSERT (type.numelements()*type.aggregate == int(floatvals.size())); ++ ASSERT (type.numelements()*type.aggregate == floatvals.size()); + Parameter (paramname, type, &floatvals[0], lockgeom); + } else if (type.basetype == TypeDesc::STRING) { + stringvals.clear (); +@@ -2147,7 +2147,7 @@ ShadingSystemImpl::ShaderGroupBegin (string_view groupname, + } + // Zero-pad if we parsed fewer values than we needed + stringvals.resize (type.numelements()*type.aggregate, ustring()); +- ASSERT (type.numelements()*type.aggregate == int(stringvals.size())); ++ ASSERT (type.numelements()*type.aggregate == stringvals.size()); + Parameter (paramname, type, &stringvals[0], lockgeom); + } + +-- +2.6.0 + diff --git a/mingw-w64-openshadinglanguage-git/PKGBUILD b/mingw-w64-openshadinglanguage-git/PKGBUILD index 5f71107081..8a396131da 100644 --- a/mingw-w64-openshadinglanguage-git/PKGBUILD +++ b/mingw-w64-openshadinglanguage-git/PKGBUILD @@ -3,7 +3,7 @@ _realname=openshadinglanguage pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" _ver_base=1.6 -pkgver=1.6.1507.9eef4a8 +pkgver=1.6.1644.9b7a1cc pkgrel=1 pkgdesc="Advanced shading language for production GI renderers (mingw-w64)" arch=('any') @@ -27,15 +27,21 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-pkg-config" "git") source=("${_realname}"::"git+https://github.com/imageworks/OpenShadingLanguage.git" + 0001-osolex-Define-isatty-as-_isatty-for-_WIN32.patch + 0002-Use-getcwd-for-older-OIIO.patch + 0003-Fix-unsigned-signed-compares.patch 0002-dont-add-flex-include-dir.patch 0003-fix-OIIO-windows.patch 0005-Fix-cast-from-void-ptr.patch 0007-Fix-bad-casts-with-intptr_t.patch) md5sums=('SKIP' + 'b2e8450898924c5181760ec75dea2341' + '2609345e71e365781b5314927616a25d' + 'e1dc9dd8ee31abca83f1111d9c2f950c' '78526dd22cea1d42238609a9cdfef816' '9c73b150c2696024a44397ef94584463' '73851a8ec414f099fe1195ea18d756f9' - '85ed91acdd3bd974a18b8d1c9ae3e79b') + '8652b94a0aed2a8441df99e85e55e981') pkgver() { cd "$srcdir/$_realname" @@ -44,6 +50,9 @@ pkgver() { prepare() { cd ${srcdir}/$_realname + git am "${srcdir}"/0001-osolex-Define-isatty-as-_isatty-for-_WIN32.patch + git am "${srcdir}"/0002-Use-getcwd-for-older-OIIO.patch + git am "${srcdir}"/0003-Fix-unsigned-signed-compares.patch patch -p1 -i ${srcdir}/0002-dont-add-flex-include-dir.patch patch -p1 -i ${srcdir}/0003-fix-OIIO-windows.patch patch -p1 -i ${srcdir}/0005-Fix-cast-from-void-ptr.patch @@ -68,6 +77,7 @@ build() { -DILMBASE_CUSTOM_LIBRARIES="Half Iex Imath IlmThread" \ -DEXTRA_OSLEXEC_LIBRARIES="${_extra_libs}" \ -DLLVM_STATIC=1 \ + -DOSL_BUILD_CPP11=1 \ ../$_realname # $PWD/src/liboslcomp PATH addition needed for running oslc.exe during the build (for liboslcomp.dll) From d0d4e8c6525877fb7526886e1fe91f5160b4343e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 12 Oct 2015 09:48:23 +0300 Subject: [PATCH 1698/2060] pyside-qt4: Rebuild for Python 3.5 support --- mingw-w64-pyside-qt4/PKGBUILD | 2 +- mingw-w64-pyside-tools-qt4/PKGBUILD | 2 +- mingw-w64-shiboken-qt4/PKGBUILD | 9 ++++++--- .../shiboken-python-3.5-support.patch | 11 +++++++++++ 4 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-shiboken-qt4/shiboken-python-3.5-support.patch diff --git a/mingw-w64-pyside-qt4/PKGBUILD b/mingw-w64-pyside-qt4/PKGBUILD index d456f99b9f..44f38fa6a9 100644 --- a/mingw-w64-pyside-qt4/PKGBUILD +++ b/mingw-w64-pyside-qt4/PKGBUILD @@ -5,7 +5,7 @@ _realname=pyside pkgbase=mingw-w64-${_realname}-qt4 pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-common-qt4 ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}-qt4) pkgver=1.2.2 -pkgrel=1 +pkgrel=3 arch=('any') url="http://pyside.github.io/docs/pyside/" license=("LGPL") diff --git a/mingw-w64-pyside-tools-qt4/PKGBUILD b/mingw-w64-pyside-tools-qt4/PKGBUILD index 3ba17b9988..2eb66a1bbd 100644 --- a/mingw-w64-pyside-tools-qt4/PKGBUILD +++ b/mingw-w64-pyside-tools-qt4/PKGBUILD @@ -5,7 +5,7 @@ _realname=pyside-tools pkgbase=mingw-w64-${_realname}-qt4 pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-common-qt4 ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}-qt4) pkgver=1.2.2 -pkgrel=1 +pkgrel=3 pkgdesc="Python bindings for Qt4 (mingw-w64)" arch=('any') url="http://pyside.github.io/docs/pyside/" diff --git a/mingw-w64-shiboken-qt4/PKGBUILD b/mingw-w64-shiboken-qt4/PKGBUILD index bb69ac9b05..866f42b3a4 100644 --- a/mingw-w64-shiboken-qt4/PKGBUILD +++ b/mingw-w64-shiboken-qt4/PKGBUILD @@ -5,15 +5,17 @@ _realname=shiboken pkgbase=mingw-w64-${_realname}-qt4 pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-qt4 ${MINGW_PACKAGE_PREFIX}-python{2,3}-${_realname}-qt4) pkgver=1.2.2 -pkgrel=2 +pkgrel=3 arch=('any') url="http://pyside.github.io/docs/pyside/" license=("LGPL") install=${_realname}-${CARCH}.install source=(https://pypi.python.org/packages/source/P/PySide/PySide-${pkgver}.tar.gz - shiboken.patch) + shiboken.patch + shiboken-python-3.5-support.patch) md5sums=('c45bc400c8a86d6b35f34c29e379e44d' - '79cbe9b06107a431693c401944e78c3b') + '79cbe9b06107a431693c401944e78c3b' + 'ae4143a3c7fbed309ab2a39432c93208') makedepends=("${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-libxslt" "${MINGW_PACKAGE_PREFIX}-python2" @@ -26,6 +28,7 @@ options=('staticlibs' 'strip') prepare() { cd ${srcdir}/PySide-${pkgver} patch -p1 -i ${srcdir}/shiboken.patch + patch -p1 -i ${srcdir}/shiboken-python-3.5-support.patch } build() { diff --git a/mingw-w64-shiboken-qt4/shiboken-python-3.5-support.patch b/mingw-w64-shiboken-qt4/shiboken-python-3.5-support.patch new file mode 100644 index 0000000000..ccc165eeb3 --- /dev/null +++ b/mingw-w64-shiboken-qt4/shiboken-python-3.5-support.patch @@ -0,0 +1,11 @@ +--- PySide-1.2.2/sources/shiboken/cmake/Modules/FindPython3Libs.cmake.orig 2015-10-12 08:54:03.937879900 +0300 ++++ PySide-1.2.2/sources/shiboken/cmake/Modules/FindPython3Libs.cmake 2015-10-12 08:54:16.297442700 +0300 +@@ -27,7 +27,7 @@ + # Search for the python framework on Apple. + # CMAKE_FIND_FRAMEWORKS(Python) + +-FOREACH(_CURRENT_VERSION 3.4 3.3 3.2 3.1 3.0) ++FOREACH(_CURRENT_VERSION 3.5 3.4 3.3 3.2 3.1 3.0) + IF(_CURRENT_VERSION GREATER 3.1) + SET(_32FLAGS "m" "u" "mu" "dm" "du" "dmu" "") + ELSE() From 9559caa64d699931750d2ea6580c297617830fd4 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 12 Oct 2015 09:57:48 +0300 Subject: [PATCH 1699/2060] freetype: Fix paths only in freetype-config. Replacing strings in binary files and libraries break them --- mingw-w64-freetype/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-freetype/PKGBUILD b/mingw-w64-freetype/PKGBUILD index b8b4b7b303..d4e8ba5f68 100644 --- a/mingw-w64-freetype/PKGBUILD +++ b/mingw-w64-freetype/PKGBUILD @@ -4,7 +4,7 @@ _realname=freetype pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.6 -pkgrel=2 +pkgrel=3 pkgdesc="TrueType font rendering library (mingw-w64)" arch=('any') url="http://www.freetype.org/" @@ -64,7 +64,7 @@ package () { make DESTDIR="${pkgdir}" install # Replace the absolute path. - sed -i "s|$(cygpath -m /)|/|g" $(find $pkgdir -type f) + sed -i "s|$(cygpath -m /)|/|g" ${pkgdir}${MINGW_PREFIX}/bin/freetype-config # Licenses install -Dm644 "${srcdir}/${_realname}-${pkgver}/docs/LICENSE.TXT" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE.TXT" From d1888528a32eb8b335926a5f79824ca4664a1397 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 12 Oct 2015 11:32:48 +0300 Subject: [PATCH 1700/2060] opencv: Rebuild for Python-3.5 support --- mingw-w64-opencv/PKGBUILD | 12 ++++++++---- mingw-w64-opencv/opencv-support-python-3.5.patch | 11 +++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-opencv/opencv-support-python-3.5.patch diff --git a/mingw-w64-opencv/PKGBUILD b/mingw-w64-opencv/PKGBUILD index 7af574cad8..e1334b9b7d 100644 --- a/mingw-w64-opencv/PKGBUILD +++ b/mingw-w64-opencv/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=opencv +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.0.0 -pkgrel=2 +pkgrel=3 pkgdesc="Open Source Computer Vision Library (mingw-w64)" arch=('any') url="http://opencv.org/" @@ -37,13 +38,15 @@ source=("${_realname}-${pkgver}.tar.gz"::https://github.com/Itseez/opencv/archiv 'solve_deg3-underflow.patch' 'issue-4107.patch' 'remove-bindings-generation-DetectionBasedTracker.patch' - 'generate-proper-pkg-config-file.patch') + 'generate-proper-pkg-config-file.patch' + 'opencv-support-python-3.5.patch') md5sums=('e6c72f54f7127161b371ef798f34d5c9' '8ff3af2593c9c92f48c2e9f59adaaa3d' 'ae03a59cf1202d5eafa94c2aac419ae6' '49b6e0d5a376300238a769074cd5d32c' '232993e4a053e1014b513c39b789188a' - 'e3102a8339b25bffabd47e46c33807e4') + 'e3102a8339b25bffabd47e46c33807e4' + 'f1bac1d090f0812dd05e14a4adf56b94') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -53,6 +56,7 @@ prepare() { patch -Np1 -i "${srcdir}/issue-4107.patch" patch -Np1 -i "${srcdir}/remove-bindings-generation-DetectionBasedTracker.patch" patch -Np1 -i "${srcdir}/generate-proper-pkg-config-file.patch" + patch -Np1 -i "${srcdir}/opencv-support-python-3.5.patch" } build() { @@ -66,7 +70,7 @@ build() { } # all x64 CPUs support SSE2 but not SSE3 - [[ "$CARCH" = 'x86_64' ]] && { + [[ "${CARCH}" = "x86_64" ]] && { _cmakeopts+=('-DENABLE_SSE3=OFF') _ffmpeg_plugin='opencv_ffmpeg_64.dll' } diff --git a/mingw-w64-opencv/opencv-support-python-3.5.patch b/mingw-w64-opencv/opencv-support-python-3.5.patch new file mode 100644 index 0000000000..6bc9a53f3b --- /dev/null +++ b/mingw-w64-opencv/opencv-support-python-3.5.patch @@ -0,0 +1,11 @@ +--- opencv-3.0.0/cmake/OpenCVDetectPython.cmake.orig 2015-10-12 11:18:55.233433400 +0300 ++++ opencv-3.0.0/cmake/OpenCVDetectPython.cmake 2015-10-12 11:19:02.848433400 +0300 +@@ -224,7 +224,7 @@ + PYTHON2_INCLUDE_DIR PYTHON2_INCLUDE_DIR2 PYTHON2_PACKAGES_PATH + PYTHON2_NUMPY_INCLUDE_DIRS PYTHON2_NUMPY_VERSION) + +-find_python(3.4 "${MIN_VER_PYTHON3}" PYTHON3_LIBRARY PYTHON3_INCLUDE_DIR ++find_python(3.5 "${MIN_VER_PYTHON3}" PYTHON3_LIBRARY PYTHON3_INCLUDE_DIR + PYTHON3INTERP_FOUND PYTHON3_EXECUTABLE PYTHON3_VERSION_STRING + PYTHON3_VERSION_MAJOR PYTHON3_VERSION_MINOR PYTHON3LIBS_FOUND + PYTHON3LIBS_VERSION_STRING PYTHON3_LIBRARIES PYTHON3_LIBRARY From 626379b310de08a021ee8f4f8c3d95e41468fd47 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 12 Oct 2015 11:33:28 +0300 Subject: [PATCH 1701/2060] boost,freetype: Fix PKGBUIld --- mingw-w64-boost/PKGBUILD | 3 ++- mingw-w64-freetype/PKGBUILD | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-boost/PKGBUILD b/mingw-w64-boost/PKGBUILD index 01687cecaf..6b519f9500 100644 --- a/mingw-w64-boost/PKGBUILD +++ b/mingw-w64-boost/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov _realname=boost +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.57.0 _boostver=${pkgver//./_} -pkgrel=3 +pkgrel=4 pkgdesc="Free peer-reviewed portable C++ source libraries (mingw-w64)" arch=('any') url="http://www.boost.org/" diff --git a/mingw-w64-freetype/PKGBUILD b/mingw-w64-freetype/PKGBUILD index d4e8ba5f68..a3b0bfb6b2 100644 --- a/mingw-w64-freetype/PKGBUILD +++ b/mingw-w64-freetype/PKGBUILD @@ -2,6 +2,7 @@ # Contributor: Renato Silva _realname=freetype +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.6 pkgrel=3 From 19e015772465b4f40483e3db1f74b669a9c84871 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 12 Oct 2015 11:34:06 +0300 Subject: [PATCH 1702/2060] clang-svn: Fix spaces --- mingw-w64-clang-svn/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 4b75021937..d03ed71608 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -197,7 +197,7 @@ package_clang-tools-extra(){ make -j1 DESTDIR="$pkgdir" rebuild_cache install } - package_compiler-rt(){ +package_compiler-rt(){ pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)" url="http://compiler-rt.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") @@ -207,7 +207,7 @@ package_clang-tools-extra(){ cd "${srcdir}"/build-${CARCH}/projects/compiler-rt make -j1 DESTDIR="$pkgdir" rebuild_cache install - } +} package_libcxxabi(){ pkgdesc="C++ Standard Library Support (mingw-w64)" From d4e4ebceb5fe27f5283a1c5dafa12554f9cebe6e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 12 Oct 2015 11:40:17 +0300 Subject: [PATCH 1703/2060] Pillow: Fix PKGBUILD --- mingw-w64-Pillow/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-Pillow/PKGBUILD b/mingw-w64-Pillow/PKGBUILD index 5ba55364ca..59501eff24 100644 --- a/mingw-w64-Pillow/PKGBUILD +++ b/mingw-w64-Pillow/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=Pillow +pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=3.0.0 _py2basever=2.7 @@ -73,7 +74,7 @@ package_python2-Pillow() { # clean up bins cd "${pkgdir}${MINGW_PREFIX}/bin" for f in *.py; do - mv "$f" "${f%.py}2" + mv "${f}" "${f%.py}2" done } From d98c03038daff404264bda020d191ec92f7d364a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 12 Oct 2015 12:48:29 +0300 Subject: [PATCH 1704/2060] libjpeg-turbo: Update to 1.4.2 --- mingw-w64-libjpeg-turbo/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libjpeg-turbo/PKGBUILD b/mingw-w64-libjpeg-turbo/PKGBUILD index 40173a785f..ca06ab5dfb 100644 --- a/mingw-w64-libjpeg-turbo/PKGBUILD +++ b/mingw-w64-libjpeg-turbo/PKGBUILD @@ -2,8 +2,9 @@ # Contributor: Renato Silva _realname=libjpeg-turbo +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.1 +pkgver=1.4.2 pkgrel=1 pkgdesc="JPEG image codec with accelerated baseline compression and decompression (mingw-w64)" arch=('any') @@ -18,7 +19,7 @@ options=('staticlibs' 'strip') source=("http://downloads.sourceforge.net/libjpeg-turbo/${_realname}-${pkgver}.tar.gz" "0001-header-compat.mingw.patch" "libjpeg-turbo-1.3.1-libmng-compatibility.patch") -md5sums=('b1f6b84859a16b8ebdcda951fa07c3f2' +md5sums=('86b0d5f7507c2e6c21c00219162c3c44' '11e4818dd682ae73cd75f11013a97e72' 'b54c2ab69837e1b72605184364360af0') From d70162e731c0bd195c7fe0f8f79ae52ac6940d26 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 12 Oct 2015 13:04:45 +0300 Subject: [PATCH 1705/2060] gnupg: Update to 2.1.9 --- mingw-w64-gnupg/04-dos-extra-defs.patch | 14 +++++++++----- mingw-w64-gnupg/PKGBUILD | 6 +++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/mingw-w64-gnupg/04-dos-extra-defs.patch b/mingw-w64-gnupg/04-dos-extra-defs.patch index 4fd4a25638..b2ff631777 100644 --- a/mingw-w64-gnupg/04-dos-extra-defs.patch +++ b/mingw-w64-gnupg/04-dos-extra-defs.patch @@ -47,13 +47,17 @@ # If a specific protect tool program has been defined, pass its name --- gnupg-2.1.6/doc/mkdefsinc.c.orig 2015-07-31 13:44:21.170469500 +0300 +++ gnupg-2.1.6/doc/mkdefsinc.c 2015-07-31 13:44:29.263660100 +0300 -@@ -31,17 +31,6 @@ - values are not valid for the build platform but we need some values - nevertheless. */ +@@ -31,21 +31,6 @@ #include "config.h" --/* When building for Windows some -D macros are not available. We -- provide replacements here. */ + /* When building for Windows the -D macros do not have appropriate + values. We provide replacements here. */ -#ifdef HAVE_W32_SYSTEM +-# undef GNUPG_BINDIR +-# undef GNUPG_LIBEXECDIR +-# undef GNUPG_LIBDIR +-# undef GNUPG_DATADIR +-# undef GNUPG_SYSCONFDIR +-# undef GNUPG_LOCALSTATEDIR -# define GNUPG_BINDIR "INSTDIR/bin" -# define GNUPG_LIBEXECDIR "INSTDIR/bin" -# define GNUPG_LIBDIR "INSTDIR/lib/" PACKAGE_NAME diff --git a/mingw-w64-gnupg/PKGBUILD b/mingw-w64-gnupg/PKGBUILD index e8a0052505..28f167b1d0 100644 --- a/mingw-w64-gnupg/PKGBUILD +++ b/mingw-w64-gnupg/PKGBUILD @@ -3,7 +3,7 @@ _realname=gnupg pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.7 +pkgver=2.1.9 pkgrel=1 pkgdesc="GNU Privacy Guard - a PGP replacement tool (mingw-w64)" arch=('any') @@ -27,12 +27,12 @@ source=(ftp://ftp.gnupg.org/gcrypt/gnupg/${_realname}-${pkgver}.tar.bz2{,.sig} 02-mingw-sysconfigdir-under-prefix.patch 03-ldap-libraries-check-order.patch 04-dos-extra-defs.patch) -sha1sums=('1a345804f34a2acd05c1555e40ddfa297f38438b' +sha1sums=('119bab38d2ff3a849be62914be9bf7333da68883' 'SKIP' 'adca40b456c054db3aae5f112e18f56235322a45' 'e55b64ef1b1d9e0a224c2b8716d7a490aed6070d' '18634884e51f93b62a6c8b75233d175ec455f033' - 'a37883cc54d197574ba3b1d16a517302d304f887') + 'afe4c750932c122d7dc182e7a136147f63d1c211') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From c10ca63aba3c7f382311e8fc2b6fb12ff3eee6e6 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 12 Oct 2015 13:09:52 +0100 Subject: [PATCH 1706/2060] gdk-pixbuf2: enable relocations OS-specific auto-detections for this were dropped upstream, so a configure-time enable flag is needed now. Without this, the SVG module cannot be loaded correctly at runtime. Closes Alexpux/MINGW-packages#818. --- mingw-w64-gdk-pixbuf2/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-gdk-pixbuf2/PKGBUILD b/mingw-w64-gdk-pixbuf2/PKGBUILD index 1b9d45683d..9e17138619 100644 --- a/mingw-w64-gdk-pixbuf2/PKGBUILD +++ b/mingw-w64-gdk-pixbuf2/PKGBUILD @@ -5,7 +5,7 @@ _realname=gdk-pixbuf2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.32.1 -pkgrel=1 +pkgrel=2 pkgdesc="An image loading library (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -51,6 +51,7 @@ build() { --enable-static \ --enable-shared \ --enable-introspection \ + --enable-relocations \ --with-included-loaders make } From c35eae1a3e0da7a3b91fed4bb08a012f39cc2d4e Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Mon, 12 Oct 2015 09:43:30 +0300 Subject: [PATCH 1707/2060] Add libbotan package --- mingw-w64-libbotan/PKGBUILD | 76 +++++++++++++++++++++++ mingw-w64-libbotan/boost-link.patch | 11 ++++ mingw-w64-libbotan/disable-mkgmtime.patch | 34 ++++++++++ mingw-w64-libbotan/winsock-link.patch | 9 +++ 4 files changed, 130 insertions(+) create mode 100644 mingw-w64-libbotan/PKGBUILD create mode 100644 mingw-w64-libbotan/boost-link.patch create mode 100644 mingw-w64-libbotan/disable-mkgmtime.patch create mode 100644 mingw-w64-libbotan/winsock-link.patch diff --git a/mingw-w64-libbotan/PKGBUILD b/mingw-w64-libbotan/PKGBUILD new file mode 100644 index 0000000000..64e05e0ded --- /dev/null +++ b/mingw-w64-libbotan/PKGBUILD @@ -0,0 +1,76 @@ +# Maintainer: Nazar Mishturak + +_realname=libbotan +pkgbase="mingw-w64-${_realname}" +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.11.21 +pkgrel=1 +arch=('any') +url='http://botan.randombit.net/' +pkgdesc='Botan is a C++ cryptography library released under the permissive Simplified BSD license. (mingw-w64)' +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-bzip2" + "${MINGW_PACKAGE_PREFIX}-xz" + "${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-zlib" + "${MINGW_PACKAGE_PREFIX}-boost") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-doxygen") +license=('BSD') +options=('strip' 'staticlibs' 'docs') +source=(http://botan.randombit.net/releases/Botan-${pkgver}.tgz{,.asc} + 'boost-link.patch' + 'winsock-link.patch' + 'disable-mkgmtime.patch') +sha1sums=('513099c151898c629b334165b7d2cc2b4c06e2a1' + 'SKIP' + '407e623b46ef1b288b90195d9acadb34611b088b' + '867667533df37c6b88b267c0e95b979d8115dea7' + '57289f42ad28111d5a5a05eab58ac5887d7e1f84') +validpgpkeys=('621DAF6411E1851C4CF9A2E16211EBF1EFBADFBC') + +prepare() { + cd "${srcdir}/Botan-${pkgver}" + patch -p1 -i "${srcdir}/boost-link.patch" + patch -p1 -i "${srcdir}/winsock-link.patch" + patch -p1 -i "${srcdir}/disable-mkgmtime.patch" +} + +build() { + cd "${srcdir}/Botan-${pkgver}" + + local BUILD_TYPE_FLAGS='--build-mode=release' + if check_option 'debug' 'y'; then + BUILD_TYPE_FLAGS='--build-mode=debug --debug-mode' + fi + + # Set prefix to mingw{32,64} not full path. Remove starting slash + ${MINGW_PREFIX}/bin/python3 configure.py \ + --disable-shared \ + --os=mingw \ + --cc=gcc \ + --cpu=${CARCH} \ + --destdir='$(DESTDIR)' \ + ${BUILD_TYPE_FLAGS} \ + --makefile-style=gmake \ + --link-method=copy \ + --with-doxygen \ + --with-boost \ + --with-bzip2 \ + --with-lzma \ + --with-sqlite3 \ + --with-zlib + + make +} + +check() { + cd "${srcdir}/Botan-${pkgver}" + ./botan-test +} + +package() { + cd "${srcdir}/Botan-${pkgver}" + make DESTDIR="${pkgdir}${MINGW_PREFIX}" install +} diff --git a/mingw-w64-libbotan/boost-link.patch b/mingw-w64-libbotan/boost-link.patch new file mode 100644 index 0000000000..522e14d0d9 --- /dev/null +++ b/mingw-w64-libbotan/boost-link.patch @@ -0,0 +1,11 @@ +--- Botan-1.11.21/src/lib/utils/boost/info.txt.orig 2015-10-12 08:53:49.742291300 +0300 ++++ Botan-1.11.21/src/lib/utils/boost/info.txt 2015-10-12 08:53:54.340367300 +0300 +@@ -5,7 +5,7 @@ + load_on vendor + + +-all -> boost_system,boost_filesystem ++all -> boost_system-mt,boost_filesystem-mt + + + diff --git a/mingw-w64-libbotan/disable-mkgmtime.patch b/mingw-w64-libbotan/disable-mkgmtime.patch new file mode 100644 index 0000000000..c6e901993c --- /dev/null +++ b/mingw-w64-libbotan/disable-mkgmtime.patch @@ -0,0 +1,34 @@ +--- Botan-1.11.21/src/lib/utils/calendar.cpp.orig 2015-10-11 14:31:25.000000000 +0300 ++++ Botan-1.11.21/src/lib/utils/calendar.cpp 2015-10-12 19:59:06.522921000 +0300 +@@ -39,8 +39,6 @@ + return tm; + } + +-#if !defined(BOTAN_TARGET_OS_HAS_TIMEGM) && !defined(BOTAN_TARGET_OS_HAS_MKGMTIME) +- + #if defined(BOTAN_HAS_BOOST_DATETIME) + + std::time_t boost_timegm(std::tm *tm) +@@ -109,8 +107,6 @@ + } + #endif // BOTAN_HAS_BOOST_DATETIME + +-#endif +- + } + + std::chrono::system_clock::time_point calendar_point::to_std_timepoint() +@@ -136,12 +132,7 @@ + tm.tm_year = year - 1900; + + // Define a function alias `botan_timegm` +- #if defined(BOTAN_TARGET_OS_HAS_TIMEGM) +- std::time_t (&botan_timegm)(std::tm *tm) = timegm; +- #elif defined(BOTAN_TARGET_OS_HAS_MKGMTIME) +- // http://stackoverflow.com/questions/16647819/timegm-cross-platform +- std::time_t (&botan_timegm)(std::tm *tm) = _mkgmtime; +- #elif defined(BOTAN_HAS_BOOST_DATETIME) ++ #if defined(BOTAN_HAS_BOOST_DATETIME) + std::time_t (&botan_timegm)(std::tm *tm) = boost_timegm; + #else + std::time_t (&botan_timegm)(std::tm *tm) = fallback_timegm; diff --git a/mingw-w64-libbotan/winsock-link.patch b/mingw-w64-libbotan/winsock-link.patch new file mode 100644 index 0000000000..d7a18c9c23 --- /dev/null +++ b/mingw-w64-libbotan/winsock-link.patch @@ -0,0 +1,9 @@ +--- Botan-1.11.21/src/lib/entropy/cryptoapi_rng/info.txt.orig 2015-10-12 09:13:49.188061800 +0300 ++++ Botan-1.11.21/src/lib/entropy/cryptoapi_rng/info.txt 2015-10-12 09:14:09.519021200 +0300 +@@ -18,5 +18,5 @@ + + + windows -> advapi32.lib +-mingw -> advapi32 ++mingw -> advapi32,ws2_32,mswsock + From 17280a958adff519df32038a97a531dc8cfb84f2 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 09:36:52 +0300 Subject: [PATCH 1708/2060] mesa: Update to 11.0.3 --- mingw-w64-mesa/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 70ecf232e1..88ee200eb5 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=mesa +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.6.3 +pkgver=11.0.3 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -17,7 +18,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('553e525d2f20ed48fca8f1ec3176fd83' +md5sums=('bf9118bf0fbf360715cfe60baf7a1db5' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From a115b97cd93f0f25583cf40ab477a8304df50d11 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 09:37:05 +0300 Subject: [PATCH 1709/2060] libbotan: Fix PKGBUILD --- mingw-w64-libbotan/PKGBUILD | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/mingw-w64-libbotan/PKGBUILD b/mingw-w64-libbotan/PKGBUILD index 64e05e0ded..b426522fc5 100644 --- a/mingw-w64-libbotan/PKGBUILD +++ b/mingw-w64-libbotan/PKGBUILD @@ -9,13 +9,14 @@ arch=('any') url='http://botan.randombit.net/' pkgdesc='Botan is a C++ cryptography library released under the permissive Simplified BSD license. (mingw-w64)' depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-bzip2" - "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-sqlite3" "${MINGW_PACKAGE_PREFIX}-zlib" - "${MINGW_PACKAGE_PREFIX}-boost") + "${MINGW_PACKAGE_PREFIX}-xz") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python3-sphinx" "${MINGW_PACKAGE_PREFIX}-doxygen") license=('BSD') options=('strip' 'staticlibs' 'docs') @@ -38,7 +39,11 @@ prepare() { } build() { - cd "${srcdir}/Botan-${pkgver}" + rm -rf build-${MINGW_CHOST} + cp -rf Botan-${pkgver} build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + sed -i "s|/mingw|${MINGW_PREFIX}|g" src/build-data/os/mingw.txt local BUILD_TYPE_FLAGS='--build-mode=release' if check_option 'debug' 'y'; then @@ -66,11 +71,11 @@ build() { } check() { - cd "${srcdir}/Botan-${pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" ./botan-test } package() { - cd "${srcdir}/Botan-${pkgver}" + cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}${MINGW_PREFIX}" install } From eb0204dab51738259071afa00c71ec2bf1909e35 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 11:00:21 +0300 Subject: [PATCH 1710/2060] ghostscript: Update to 9.18 --- mingw-w64-ghostscript/PKGBUILD | 15 ++++-- mingw-w64-ghostscript/mingw-build.patch | 71 ++++++++++--------------- 2 files changed, 38 insertions(+), 48 deletions(-) diff --git a/mingw-w64-ghostscript/PKGBUILD b/mingw-w64-ghostscript/PKGBUILD index aa87d1f319..4a255c8ec8 100644 --- a/mingw-w64-ghostscript/PKGBUILD +++ b/mingw-w64-ghostscript/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=ghostscript +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=9.15 -pkgrel=4 +pkgver=9.18 +pkgrel=1 arch=('any') license=('AGPL' 'custom') pkgdesc="An interpreter for the PostScript language (mingw-w64)" @@ -26,12 +27,16 @@ source=(http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2 ghostscript-sys-zlib.patch libspectre.patch) options=('staticlibs' 'strip') -md5sums=('0ee21d975c67a4883ba66bcc332418f5' - '00bd92ade43e6e652ae48e1c020281df' +md5sums=('aa125af368d89b3dbd15fc379f13375f' + '5304d3113b469999d85013f7d3e12816' '24169cd027208610fd40070bae68ca73' '1fddb43d7ec2cd90a38291e6410d108d') +noextract=(ghostscript-${pkgver}.tar.bz2) prepare() { + [[ -d ${srcdir}/${_realname}-${pkgver} ]] && rm -rf ${srcdir}/${_realname}-${pkgver} + tar -xjf ${srcdir}/${_realname}-${pkgver}.tar.bz2 -C $srcdir || true + cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/mingw-build.patch patch -p1 -i ${srcdir}/ghostscript-sys-zlib.patch @@ -40,7 +45,7 @@ prepare() { sed -e "s|/usr|${MINGW_PREFIX}/${MINGW_CHOST}|g" -i base/all-arch.mak base/unix-aux.mak # force it to use system-libs - rm -rf freetype jpeg libpng lcms lcms2 tiff zlib openjpeg + rm -rf freetype jpeg libpng lcms lcms2 tiff zlib #openjpeg #cd base libtoolize --force --copy --install diff --git a/mingw-w64-ghostscript/mingw-build.patch b/mingw-w64-ghostscript/mingw-build.patch index d32da5e1a6..f40b8da07b 100644 --- a/mingw-w64-ghostscript/mingw-build.patch +++ b/mingw-w64-ghostscript/mingw-build.patch @@ -1,19 +1,15 @@ diff -Naur ghostscript-9.10-orig/base/gp_mswin.c ghostscript-9.10/base/gp_mswin.c --- ghostscript-9.10-orig/base/gp_mswin.c 2013-08-30 14:37:28.000000000 +0400 +++ ghostscript-9.10/base/gp_mswin.c 2014-01-22 20:16:23.009800000 +0400 -@@ -866,6 +866,7 @@ - return((bool)S_ISREG(s.st_mode)); - } +@@ -866,7 +866,7 @@ -+#ifndef __MINGW64_VERSION_MAJOR /* ------------------------- _snprintf -----------------------------*/ +-#if defined(_MSC_VER) && _MSC_VER>=1900 /* VS 2014 and later have (finally) snprintf */ ++#if (defined(_MSC_VER) && _MSC_VER>=1900) || defined(__MINGW64_VERSION_MAJOR) /* VS 2014 and later have (finally) snprintf */ + # define STDC99 + #else /* Microsoft Visual C++ 2005 doesn't properly define snprintf, -@@ -885,3 +886,4 @@ - } else - return 0; - } -+#endif diff -Naur ghostscript-9.10-orig/base/gp_mswin.h ghostscript-9.10/base/gp_mswin.h --- ghostscript-9.10-orig/base/gp_mswin.h 2013-08-30 14:37:28.000000000 +0400 +++ ghostscript-9.10/base/gp_mswin.h 2014-01-22 17:21:46.232600000 +0400 @@ -230,7 +226,7 @@ diff -Naur ghostscript-9.10-orig/base/unix-aux.mak ghostscript-9.10/base/unix-au + $(AUX)gp_stdia.$(OBJ) $(AUX)gsutil.$(OBJ) $(AUX)memento.$(OBJ) +endif - $(MKROMFS_XE)_0: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_0) + $(MKROMFS_XE)_0: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_0) $(MAKEDIRS) $(CCAUX_) $(GENOPT) $(CFLAGS) $(I_)$(GLSRCDIR)$(_I) $(I_)$(GLOBJ)$(_I) $(I_)$(ZSRCDIR)$(_I) $(GLSRC)mkromfs.c $(O_)$(MKROMFS_XE)_0 $(MKROMFS_OBJS_0) $(AUXEXTRALIBS) # .... and one using the zlib library linked via the command line @@ -250,7 +246,7 @@ diff -Naur ghostscript-9.10-orig/base/unix-aux.mak ghostscript-9.10/base/unix-au + $(AUX)gp_stdia.$(OBJ) $(AUX)gsutil.$(OBJ) +endif - $(MKROMFS_XE)_1: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_1) + $(MKROMFS_XE)_1: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_1) $(MAKEDIRS) $(CCAUX_) $(GENOPT) $(CFLAGS) $(I_)$(GLSRCDIR)$(_I) $(I_)$(GLOBJ)$(_I) $(I_)$(ZSRCDIR)$(_I) $(GLSRC)mkromfs.c $(O_)$(MKROMFS_XE)_1 $(MKROMFS_OBJS_1) $(AUXEXTRALIBS) diff -Naur ghostscript-9.10-orig/base/unix-dll.mak ghostscript-9.10/base/unix-dll.mak --- ghostscript-9.10-orig/base/unix-dll.mak 2013-08-30 14:37:28.000000000 +0400 @@ -298,7 +294,7 @@ diff -Naur ghostscript-9.10-orig/base/unix-dll.mak ghostscript-9.10/base/unix-dl # GNU/Linux GS_SOEXT=$(SO_LIB_EXT) -@@ -80,27 +101,27 @@ +@@ -101,30 +122,30 @@ # Create symbolic links to the Ghostscript interpreter library @@ -315,14 +311,17 @@ diff -Naur ghostscript-9.10-orig/base/unix-dll.mak ghostscript-9.10/base/unix-dl + $(RM_) $(GS_SO_MAJOR_MINOR) + ln -s $(GS_SONAME_MAJOR) $(GS_SO_MAJOR_MINOR) + so-links-subtarget: $(GS_SO) + $(NO_OP) + # Build the small Ghostscript loaders, with Gtk+ and without - $(GSSOC_XE): $(GS_SO) $(PSSRC)$(SOC_LOADER) + $(GSSOC_XE): so-links-subtarget $(PSSRC)$(SOC_LOADER) - $(GLCC) -g -o $(GSSOC_XE) $(PSSRC)dxmainc.c \ - -L$(BINDIR) -l$(GS_SO_BASE) + $(GLCC) -g -o $(GSSOC_XE) $(PSSRC)$(SOC_LOADER_PLAIN) \ + -L$(BINDIR) -l$(GS_SONAME_LINK) - $(GSSOX_XE): $(GS_SO) $(PSSRC)$(SOC_LOADER) + $(GSSOX_XE): so-links-subtarget $(PSSRC)$(SOC_LOADER) $(GLCC) -g $(SOC_CFLAGS) -o $(GSSOX_XE) $(PSSRC)$(SOC_LOADER) \ - -L$(BINDIR) -l$(GS_SO_BASE) $(SOC_LIBS) + -L$(BINDIR) -l$(GS_SONAME_LINK) $(SOC_LIBS) @@ -360,22 +359,15 @@ diff -Naur ghostscript-9.10-orig/base/unix-dll.mak ghostscript-9.10/base/unix-dl diff -Naur ghostscript-9.10-orig/base/unix-gcc.mak ghostscript-9.10/base/unix-gcc.mak --- ghostscript-9.10-orig/base/unix-gcc.mak 2013-08-30 14:37:28.000000000 +0400 +++ ghostscript-9.10/base/unix-gcc.mak 2014-01-22 22:02:03.959800000 +0400 -@@ -57,13 +57,13 @@ - INSTALL_PROGRAM = $(INSTALL) -m 755 +@@ -57,7 +57,7 @@ INSTALL_DATA = $(INSTALL) -m 644 + INSTALL_SHARED = -prefix = /usr/local +prefix = /usr - exec_prefix = $(prefix) - bindir = $(exec_prefix)/bin + exec_prefix = ${prefix} + bindir = ${exec_prefix}/bin scriptdir = $(bindir) - includedir = $(prefix)/include - libdir = $(exec_prefix)/lib --mandir = $(prefix)/man -+mandir = $(prefix)/share/man - man1ext = 1 - datadir = $(prefix)/share - gsdir = $(datadir)/ghostscript @@ -71,7 +71,7 @@ gssharedir = $(libdir)/ghostscript/$(GS_DOT_VERSION) gsincludedir = $(includedir)/ghostscript/ @@ -553,24 +545,6 @@ diff -Naur ghostscript-9.10-orig/Makefile.in ghostscript-9.10/Makefile.in # Do not edit the next group of lines. include $(GLSRCDIR)/version.mak -@@ -146,7 +154,16 @@ - - # Define the name of the executable file. - --GS=@GS@@EXEEXT@ -+ifeq ($(MINGW_BUILD), 1) -+ # On Windows, building a shared object and the accompanying thin loaders is the recommended method, -+ # so we need to eliminate the .exe from the dll's name. -+ # At the same time, should a user want to use the basic make, -+ # he/she may simply pass --with-gs='gs.exe' or --with-gs='gswin32.exe' to ./configure -+ GS=@GS@ -+else -+ # define GS in all other platforms -+ GS=@GS@@EXEEXT@ -+endif - GS_SO_BASE=@GS@ - XE=@EXEEXT@ - XEAUX=@EXEEXT@ @@ -387,8 +404,8 @@ # Solaris may need -lnsl -lsocket -lposix4. # (Libraries required by individual drivers are handled automatically.) @@ -628,3 +602,14 @@ diff -Naur ghostscript-9.10-orig/Makefile.in ghostscript-9.10/Makefile.in # Clean up after the autotools scripts distclean : clean config-clean soclean pgclean debugclean mementoclean -$(RM_) -r $(BINDIR) $(GLOBJDIR) $(PSOBJDIR) $(AUXDIR) +--- ghostscript-9.18/base/stat_.h.orig 2015-10-13 10:13:06.284676300 +0300 ++++ ghostscript-9.18/base/stat_.h 2015-10-13 10:13:24.677192400 +0300 +@@ -43,7 +43,7 @@ + * Microsoft C uses _stat instead of stat, + * for both the function name and the structure name. + */ +-#ifdef _MSC_VER ++#if defined(_MSC_VER) || defined(__MINGW32__) + # define stat _stat + #define struct_stat struct _stat + #else From 382e084ac14fbd944ad7e4589c31ef7540b2c8d8 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 11:00:40 +0300 Subject: [PATCH 1711/2060] openjpeg: Rebuild --- mingw-w64-openjpeg/PKGBUILD | 11 ++++++----- mingw-w64-openjpeg2/PKGBUILD | 23 ++++++++++++----------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/mingw-w64-openjpeg/PKGBUILD b/mingw-w64-openjpeg/PKGBUILD index f5fb8685a3..87247193df 100644 --- a/mingw-w64-openjpeg/PKGBUILD +++ b/mingw-w64-openjpeg/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=openjpeg +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.5.2 -pkgrel=3 +pkgrel=4 pkgdesc="An open source JPEG 2000 codec (mingw-w64)" arch=('any') url="http://www.openjpeg.org" @@ -34,10 +35,10 @@ prepare() { # Fix CRLF line endings dos2unix libopenjpeg/opj_malloc.h #rm -r thirdparty - patch -Np1 -i "$srcdir"/cdecl.patch - patch -Np1 -i "$srcdir"/openjpeg-1.5.1_tiff-pkgconfig.patch - patch -Np1 -i "$srcdir"/mingw-install-pkgconfig-files.patch - patch -Np1 -i "$srcdir"/versioned-dlls-mingw.patch + patch -Np1 -i "${srcdir}"/cdecl.patch + patch -Np1 -i "${srcdir}"/openjpeg-1.5.1_tiff-pkgconfig.patch + patch -Np1 -i "${srcdir}"/mingw-install-pkgconfig-files.patch + patch -Np1 -i "${srcdir}"/versioned-dlls-mingw.patch #autoreconf -i } diff --git a/mingw-w64-openjpeg2/PKGBUILD b/mingw-w64-openjpeg2/PKGBUILD index 80271cb0d4..d2b442b0ef 100644 --- a/mingw-w64-openjpeg2/PKGBUILD +++ b/mingw-w64-openjpeg2/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=openjpeg +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}2" pkgver=2.1.0 -pkgrel=3 +pkgrel=4 pkgdesc="An open source JPEG 2000 codec (mingw-w64)" arch=('any') url="http://www.openjpeg.org" @@ -49,12 +50,12 @@ build() { -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=OFF \ - -DBUILD_TESTING:BOOL=OFF \ + -DBUILD_TESTING=OFF \ -DCMAKE_SYSTEM_PREFIX_PATH=${MINGW_PREFIX} \ - -DBUILD_MJ2:bool=ON \ - -DBUILD_JPWL:bool=ON \ - -DBUILD_JPIP:bool=OFF \ - -DBUILD_JP3D:bool=ON \ + -DBUILD_MJ2=ON \ + -DBUILD_JPWL=ON \ + -DBUILD_JPIP=OFF \ + -DBUILD_JP3D=ON \ ../${_realname}-${pkgver} make @@ -71,11 +72,11 @@ build() { -DBUILD_SHARED_LIBS=ON \ -DBUILD_TESTING:BOOL=ON \ -DCMAKE_SYSTEM_PREFIX_PATH=${MINGW_PREFIX} \ - -DBUILD_MJ2:bool=ON \ - -DBUILD_JPWL:bool=ON \ - -DBUILD_JPIP:bool=ON \ - -DBUILD_JP3D:bool=ON \ - -DBUILD_DOC:bool=OFF \ + -DBUILD_MJ2=ON \ + -DBUILD_JPWL=ON \ + -DBUILD_JPIP=ON \ + -DBUILD_JP3D=ON \ + -DBUILD_DOC=OFF \ -DBUILD_PKGCONFIG_FILES=ON \ ../${_realname}-${pkgver} make From ced9f1fc2ded8abc1e0d4a55643131d7d20ab176 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 11:35:33 +0300 Subject: [PATCH 1712/2060] field3d: Rebuild. --- mingw-w64-field3d/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-field3d/PKGBUILD b/mingw-w64-field3d/PKGBUILD index 13be25bef0..51fea4aa22 100644 --- a/mingw-w64-field3d/PKGBUILD +++ b/mingw-w64-field3d/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=field3d +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.4.3 -pkgrel=1 +pkgrel=2 pkgdesc="Open source library for storing voxel data (mingw-w64)" arch=('any') url="https://sites.google.com/site/field3d/" @@ -38,6 +39,6 @@ build() { } package() { - cd "$srcdir"/build-${MINGW_CHOST} + cd "${srcdir}"/build-${MINGW_CHOST} make DESTDIR=${pkgdir} install } From 7eea9363686ffbd296b89730256e20d3267c4fff Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 11:35:46 +0300 Subject: [PATCH 1713/2060] openimageio: Update to 1.5.20 --- mingw-w64-openimageio/PKGBUILD | 39 +++++++++++++++++----------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/mingw-w64-openimageio/PKGBUILD b/mingw-w64-openimageio/PKGBUILD index 5a593a11ed..a23e72b223 100644 --- a/mingw-w64-openimageio/PKGBUILD +++ b/mingw-w64-openimageio/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=openimageio +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.16 +pkgver=1.5.20 #pkgver=1.6.3dev pkgrel=1 pkgdesc="A library for reading and writing images, including classes, utilities, and applications (mingw-w64)" @@ -10,23 +11,23 @@ arch=('any') url="http://www.openimageio.org/" license=("custom") depends=("${MINGW_PACKAGE_PREFIX}-boost" - "${MINGW_PACKAGE_PREFIX}-field3d" - "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-jasper" - "${MINGW_PACKAGE_PREFIX}-giflib" - "${MINGW_PACKAGE_PREFIX}-glew" - "${MINGW_PACKAGE_PREFIX}-hdf5" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-LibRaw" - "${MINGW_PACKAGE_PREFIX}-libwebp" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-opencolorio" - "${MINGW_PACKAGE_PREFIX}-opencv" - "${MINGW_PACKAGE_PREFIX}-openexr" - "${MINGW_PACKAGE_PREFIX}-openjpeg" - "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-zlib") + "${MINGW_PACKAGE_PREFIX}-field3d" + "${MINGW_PACKAGE_PREFIX}-freetype" + "${MINGW_PACKAGE_PREFIX}-jasper" + "${MINGW_PACKAGE_PREFIX}-giflib" + "${MINGW_PACKAGE_PREFIX}-glew" + "${MINGW_PACKAGE_PREFIX}-hdf5" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-LibRaw" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-opencolorio" + "${MINGW_PACKAGE_PREFIX}-opencv" + "${MINGW_PACKAGE_PREFIX}-openexr" + "${MINGW_PACKAGE_PREFIX}-openjpeg" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-qt5" "${MINGW_PACKAGE_PREFIX}-python2" @@ -39,7 +40,7 @@ source=(${_realname}-${pkgver}.tar.gz::https://github.com/OpenImageIO/oiio/archi workaround-ansidecl-h-PTR-define-conflict.patch 0001-MinGW-w64-include-winbase-h-early-for-TCHAR-types.patch 0002-Also-link-to-opencv_videoio-library.patch) -md5sums=('9e7f404dba4c6e6da99464830325418b' +md5sums=('5ccb9da38b7b56bcfaba12f7f267efa5' '58f3082fc728e7cc3ba6ec4d4368e4fe' '1bf4c840ee73d37ebdfc98d3ea527ed4' '35107a59495961ba8301b8beb158b2dd' From ad4066da24243446dc516a94b0517c50ac547e7d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 12:44:42 +0300 Subject: [PATCH 1714/2060] poppler: Update to 0.37.0 --- mingw-w64-poppler/PKGBUILD | 9 +++------ mingw-w64-poppler/give-cc-to-gir-scanner.mingw.patch | 11 ----------- 2 files changed, 3 insertions(+), 17 deletions(-) delete mode 100644 mingw-w64-poppler/give-cc-to-gir-scanner.mingw.patch diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index fc2daa92f8..34033fd41b 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -3,7 +3,7 @@ _realname=poppler pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.36.0 +pkgver=0.37.0 pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') @@ -27,14 +27,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-cairo" optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" "${MINGW_PACKAGE_PREFIX}-qt5: libpoppler-qt5") options=('strip' 'staticlibs') -source=("http://poppler.freedesktop.org/${_realname}-${pkgver}.tar.xz" - "give-cc-to-gir-scanner.mingw.patch") -md5sums=('9f72a76e6ca899dd81b03537c4ce3680' - '727c1b414987f6ee2ba841d9db57a967') +source=("http://poppler.freedesktop.org/${_realname}-${pkgver}.tar.xz") +md5sums=('c635e1742202cbbd9182cb0255d95652') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i "$srcdir/give-cc-to-gir-scanner.mingw.patch" #sed -i -e '/AC_PATH_XTRA/d' configure.ac #sed -i "s:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:" configure.ac autoreconf -fi diff --git a/mingw-w64-poppler/give-cc-to-gir-scanner.mingw.patch b/mingw-w64-poppler/give-cc-to-gir-scanner.mingw.patch deleted file mode 100644 index dc2ed35533..0000000000 --- a/mingw-w64-poppler/give-cc-to-gir-scanner.mingw.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- poppler-0.24.5/glib/Makefile.am.orig 2014-04-17 01:22:10.962400000 +0400 -+++ poppler-0.24.5/glib/Makefile.am 2014-04-17 01:23:09.634000000 +0400 -@@ -90,6 +90,8 @@ - if HAVE_INTROSPECTION - -include $(INTROSPECTION_MAKEFILE) - INTROSPECTION_GIRS = -+INTROSPECTION_SCANNER_ENV = \ -+ CC="$(CC)" - INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --warn-all - INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) - From 3d1bd3d52ff01f436ac905aa98e530d95db0300b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 13:02:01 +0300 Subject: [PATCH 1715/2060] evince: Rebuild with poppler 0.37.0 --- mingw-w64-evince/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index ea10db87af..480ef06fe6 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -4,7 +4,7 @@ _realname=evince pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.18.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Document (PostScript, PDF) viewer (mingw-w64)" license=("GPL 2") From 0c72795f6340270d6f9fedf35738fdaa382e98eb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 13:02:54 +0300 Subject: [PATCH 1716/2060] openshadinglanguage-git: Update PKGBUILD --- mingw-w64-openshadinglanguage-git/PKGBUILD | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mingw-w64-openshadinglanguage-git/PKGBUILD b/mingw-w64-openshadinglanguage-git/PKGBUILD index 8a396131da..69a73f3504 100644 --- a/mingw-w64-openshadinglanguage-git/PKGBUILD +++ b/mingw-w64-openshadinglanguage-git/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=openshadinglanguage +pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" _ver_base=1.6 pkgver=1.6.1644.9b7a1cc @@ -44,12 +45,12 @@ md5sums=('SKIP' '8652b94a0aed2a8441df99e85e55e981') pkgver() { - cd "$srcdir/$_realname" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + cd "${srcdir}/${_realname}" + printf "%s.%s.%s" "${_ver_base}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - cd ${srcdir}/$_realname + cd ${srcdir}/${_realname} git am "${srcdir}"/0001-osolex-Define-isatty-as-_isatty-for-_WIN32.patch git am "${srcdir}"/0002-Use-getcwd-for-older-OIIO.patch git am "${srcdir}"/0003-Fix-unsigned-signed-compares.patch @@ -68,9 +69,11 @@ build() { [[ -d build-${MINGW_CHOST} ]] && rm -r build-${MINGW_CHOST} mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DILMBASE_CUSTOM=True \ -DILMBASE_CUSTOM_INCLUDE_DIR=${MINGW_PREFIX}/include \ -DILMBASE_CUSTOM_LIB_DIR=${MINGW_PREFIX}/lib \ @@ -88,7 +91,7 @@ build() { package() { cd build-${MINGW_CHOST} - make install + make DESTDIR=${pkgdir} install mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/OSL/ mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname} From b6eb63ffde1174c1cc49fa97aca8379d03214924 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 13:38:51 +0300 Subject: [PATCH 1717/2060] gdal: Update to 2.0.1. Rebuild with poppler 0.37 --- mingw-w64-gdal/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gdal/PKGBUILD b/mingw-w64-gdal/PKGBUILD index ffac0540ba..7f8d27e5fb 100644 --- a/mingw-w64-gdal/PKGBUILD +++ b/mingw-w64-gdal/PKGBUILD @@ -6,8 +6,8 @@ _realname=gdal pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.0.0 -pkgrel=5 +pkgver=2.0.1 +pkgrel=1 pkgdesc="A translator library for raster geospatial data formats (mingw-w64)" arch=('any') url="http://www.gdal.org/" @@ -41,7 +41,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cfitsio" options=('strip' 'staticlibs') source=(http://download.osgeo.org/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.gz) -sha256sums=('53761563ff53c5bf27bff7c4d6cab8bb1634baccefda05348e0f3b7acaf4c9e6') +sha256sums=('b55f794768e104a2fd0304eaa61bb8bda3dc7c4e14f2c9d0913baca3e55b83ab') prepare() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} From 92778b417c79f1d69459a766f2a20dac1a5ae884 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 13:43:44 +0300 Subject: [PATCH 1718/2060] libsoup: Update to 2.52.1 --- .../0001-give-cc-to-gir-scanner.mingw.patch | 10 ----- .../0007-dont-hardcode-paths.patch | 44 ------------------- .../0007-missing-prototype.patch | 15 +++++++ mingw-w64-libsoup/PKGBUILD | 14 +++--- 4 files changed, 20 insertions(+), 63 deletions(-) delete mode 100644 mingw-w64-libsoup/0001-give-cc-to-gir-scanner.mingw.patch delete mode 100644 mingw-w64-libsoup/0007-dont-hardcode-paths.patch create mode 100644 mingw-w64-libsoup/0007-missing-prototype.patch diff --git a/mingw-w64-libsoup/0001-give-cc-to-gir-scanner.mingw.patch b/mingw-w64-libsoup/0001-give-cc-to-gir-scanner.mingw.patch deleted file mode 100644 index 34e40b6771..0000000000 --- a/mingw-w64-libsoup/0001-give-cc-to-gir-scanner.mingw.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- libsoup-2.45.90/libsoup/Makefile.am.orig 2013-07-28 21:56:07.983654900 +0000 -+++ libsoup-2.45.90/libsoup/Makefile.am 2013-07-28 22:00:08.786733000 +0000 -@@ -237,6 +237,7 @@ - # - include $(INTROSPECTION_MAKEFILE) - INTROSPECTION_GIRS = -+INTROSPECTION_SCANNER_ENV = CC="$(CC)" - INTROSPECTION_SCANNER_ARGS = --add-include-path=. - INTROSPECTION_COMPILER_ARGS = --includedir=. - diff --git a/mingw-w64-libsoup/0007-dont-hardcode-paths.patch b/mingw-w64-libsoup/0007-dont-hardcode-paths.patch deleted file mode 100644 index f34cb9f6cd..0000000000 --- a/mingw-w64-libsoup/0007-dont-hardcode-paths.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c -index 6420183..ca8d80c 100644 ---- a/libsoup/soup-session.c -+++ b/libsoup/soup-session.c -@@ -77,36 +77,11 @@ - * subtypes) have a #SoupContentDecoder by default. - **/ - --#if defined (G_OS_WIN32) --#define WIN32_LEAN_AND_MEAN --#include -- --HMODULE soup_dll; -- --BOOL WINAPI --DllMain (HINSTANCE hinstDLL, -- DWORD fdwReason, -- LPVOID lpvReserved) --{ -- switch (fdwReason) { -- case DLL_PROCESS_ATTACH: -- soup_dll = hinstDLL; -- break; -- -- case DLL_THREAD_DETACH: -- -- default: -- /* do nothing */ -- ; -- } --} --#endif -- - static void - soup_init (void) - { - #ifdef G_OS_WIN32 -- char *basedir = g_win32_get_package_installation_directory_of_module (soup_dll); -+ char *basedir = g_win32_get_package_installation_directory_of_module (NULL); - char *localedir = g_build_filename (basedir, "share", "locale", NULL); - bindtextdomain (GETTEXT_PACKAGE, localedir); - g_free (localedir); --- -cgit v0.10.2 diff --git a/mingw-w64-libsoup/0007-missing-prototype.patch b/mingw-w64-libsoup/0007-missing-prototype.patch new file mode 100644 index 0000000000..1f645a12fe --- /dev/null +++ b/mingw-w64-libsoup/0007-missing-prototype.patch @@ -0,0 +1,15 @@ +diff --git a/libsoup/soup-init.c b/libsoup/soup-init.c +index 92eb837..c4950ce 100644 +--- a/libsoup/soup-init.c ++++ b/libsoup/soup-init.c +@@ -38,6 +38,10 @@ soup_init (void) + + #if defined (G_OS_WIN32) + ++BOOL WINAPI DllMain (HINSTANCE hinstDLL, ++ DWORD fdwReason, ++ LPVOID lpvReserved); ++ + BOOL WINAPI + DllMain (HINSTANCE hinstDLL, + DWORD fdwReason, diff --git a/mingw-w64-libsoup/PKGBUILD b/mingw-w64-libsoup/PKGBUILD index ac9fc7c80b..fe7eea7a20 100644 --- a/mingw-w64-libsoup/PKGBUILD +++ b/mingw-w64-libsoup/PKGBUILD @@ -3,7 +3,7 @@ _realname=libsoup pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.52.0 +pkgver=2.52.1 pkgrel=1 pkgdesc="HTTP client/server library (mingw-w64)" arch=(any) @@ -21,23 +21,19 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-sqlite3") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" - 0001-give-cc-to-gir-scanner.mingw.patch 0004-localedir-fix.patch 0006-change-pkg-config-invocations.mingw.patch - 0007-dont-hardcode-paths.patch) -md5sums=('74ef72cd984dc6daf3ba601288974c26' - 'a1ddc19ab3f73bbddda1d41a6a7de399' + 0007-missing-prototype.patch) +md5sums=('b80f11674724ab38f96426875bc0e2e5' 'ee2cc56c1448c32020288c817b81ff7f' '412394f65ad3153aa9587b888acf2f96' - '5cbb4dcc8b2cb810c8469bad6d75ad6e') + '183cdc5619c1222a84eb774f4e7d8073') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.mingw.patch patch -p1 -i ${srcdir}/0004-localedir-fix.patch patch -p1 -i ${srcdir}/0006-change-pkg-config-invocations.mingw.patch - - patch -p1 -i ${srcdir}/0007-dont-hardcode-paths.patch + patch -p1 -i ${srcdir}/0007-missing-prototype.patch autoreconf -fi } From ca46fb0c9bde3ec413bb9cbc3e4abef2e194f205 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 14:08:33 +0300 Subject: [PATCH 1719/2060] librsvg: Update to 2.40.11 --- .../0001-give-cc-to-gir-scanner.mingw.patch | 20 ------------------- mingw-w64-librsvg/PKGBUILD | 7 ++----- 2 files changed, 2 insertions(+), 25 deletions(-) delete mode 100644 mingw-w64-librsvg/0001-give-cc-to-gir-scanner.mingw.patch diff --git a/mingw-w64-librsvg/0001-give-cc-to-gir-scanner.mingw.patch b/mingw-w64-librsvg/0001-give-cc-to-gir-scanner.mingw.patch deleted file mode 100644 index 6bab333edc..0000000000 --- a/mingw-w64-librsvg/0001-give-cc-to-gir-scanner.mingw.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- librsvg-2.40.2/Makefile.am.orig 2014-04-17 01:22:10.962400000 +0400 -+++ librsvg-2.40.2/Makefile.am 2014-04-17 01:23:09.634000000 +0400 -@@ -214,6 +214,8 @@ - -include $(INTROSPECTION_MAKEFILE) - - INTROSPECTION_GIRS = Rsvg-@RSVG_API_VERSION@.gir -+INTROSPECTION_SCANNER_ENV = \ -+ CC="$(CC)" - INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --symbol-prefix=rsvg --symbol-prefix=librsvg - INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) - -@@ -238,7 +238,7 @@ - pango \ - libxml-2.0 \ - $(NULL) --Rsvg_@RSVG_API_VERSION_U@_gir_CFLAGS = -I$(top_builddir) -DRSVG_COMPILATION -+Rsvg_@RSVG_API_VERSION_U@_gir_CFLAGS = -I$(top_builddir) $(LIBRSVG_CFLAGS) -DRSVG_COMPILATION - Rsvg_@RSVG_API_VERSION_U@_gir_LIBS = librsvg-@RSVG_API_MAJOR_VERSION@.la - Rsvg_@RSVG_API_VERSION_U@_gir_SCANNERFLAGS = --c-include="librsvg/rsvg.h" - diff --git a/mingw-w64-librsvg/PKGBUILD b/mingw-w64-librsvg/PKGBUILD index 45ce762d1b..66e1ba4a80 100644 --- a/mingw-w64-librsvg/PKGBUILD +++ b/mingw-w64-librsvg/PKGBUILD @@ -3,7 +3,7 @@ _realname=librsvg pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.40.10 +pkgver=2.40.11 pkgrel=1 pkgdesc="A SVG viewing library (mingw-w64)" arch=('any') @@ -21,16 +21,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" optdepends=("${MINGW_PACKAGE_PREFIX}-gtk3: for rsvg-view-3") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/librsvg/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" - "0001-give-cc-to-gir-scanner.mingw.patch" "0005-hack-unixy-paths.patch") -sha256sums=('965c807438ce90b204e930ff80c92eba1606a2f6fd5ccfd09335c99896dd3479' - '854f36c9bc1ad0f3a85ca2ec4e8b5c7d75ba035c45ad4915601210acf0321776' +sha256sums=('611ac0f544debd0c9bf1ef5509c990d218e83dd1d8c83297075c4b29796a2e02' 'b23b094c0cb65fcbbbb952350448de6f3430b30f273e05acdbf7a56d634212dc') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i "${srcdir}/0001-give-cc-to-gir-scanner.mingw.patch" patch -p1 -i "${srcdir}/0005-hack-unixy-paths.patch" autoreconf -fi From 39864dc50ea31344093a4e6ee5fe37ac11b1e762 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 13 Oct 2015 14:19:27 +0300 Subject: [PATCH 1720/2060] inkscape: Rebuild with poppler 0.37 --- mingw-w64-inkscape/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-inkscape/PKGBUILD b/mingw-w64-inkscape/PKGBUILD index d231642267..3edaea4dba 100644 --- a/mingw-w64-inkscape/PKGBUILD +++ b/mingw-w64-inkscape/PKGBUILD @@ -12,7 +12,7 @@ _realname=inkscape pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.91 -pkgrel=10 +pkgrel=11 pkgdesc="Vector graphics editor using the SVG file format (mingw-w64)" arch=('any') url="http://inkscape.sourceforge.net/" From 87b83ff8e87cf1bc6939570eacaca3ee4f542e4e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 14 Oct 2015 09:08:15 +0300 Subject: [PATCH 1721/2060] ghostscript: Install missing header --- mingw-w64-ghostscript/PKGBUILD | 6 +++--- mingw-w64-ghostscript/mingw-build.patch | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-ghostscript/PKGBUILD b/mingw-w64-ghostscript/PKGBUILD index 4a255c8ec8..d5e090b91e 100644 --- a/mingw-w64-ghostscript/PKGBUILD +++ b/mingw-w64-ghostscript/PKGBUILD @@ -4,7 +4,7 @@ _realname=ghostscript pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=9.18 -pkgrel=1 +pkgrel=2 arch=('any') license=('AGPL' 'custom') pkgdesc="An interpreter for the PostScript language (mingw-w64)" @@ -28,7 +28,7 @@ source=(http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2 libspectre.patch) options=('staticlibs' 'strip') md5sums=('aa125af368d89b3dbd15fc379f13375f' - '5304d3113b469999d85013f7d3e12816' + 'd41cb9780478929be3430fee1a1a55ba' '24169cd027208610fd40070bae68ca73' '1fddb43d7ec2cd90a38291e6410d108d') noextract=(ghostscript-${pkgver}.tar.bz2) @@ -78,7 +78,7 @@ package() { make DESTDIR="${pkgdir}" soinstall # install missing doc files # http://bugs.archlinux.org/task/18023 - install -m 644 "${srcdir}"/${_realname}-${pkgver}/doc/{Ps2ps2.htm,gs-vms.hlp,gsdoc.el,pscet_status.txt} "${pkgdir}${MINGW_PREFIX}"/share/${_realname}/$pkgver/doc/ + install -m 644 "${srcdir}"/${_realname}-${pkgver}/doc/{Ps2ps2.htm,gs-vms.hlp,gsdoc.el,pscet_status.txt} "${pkgdir}${MINGW_PREFIX}"/share/${_realname}/${pkgver}/doc/ install -D -m644 "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE diff --git a/mingw-w64-ghostscript/mingw-build.patch b/mingw-w64-ghostscript/mingw-build.patch index f40b8da07b..ecbe99c11e 100644 --- a/mingw-w64-ghostscript/mingw-build.patch +++ b/mingw-w64-ghostscript/mingw-build.patch @@ -334,7 +334,7 @@ diff -Naur ghostscript-9.10-orig/base/unix-dll.mak ghostscript-9.10/base/unix-dl DISPLAY_DEV=$(DD)display.dev\ STDIO_IMPLEMENTATION=c\ BUILDDIRPREFIX=$(BUILDDIRPREFIX) -@@ -158,11 +179,16 @@ +@@ -158,11 +179,17 @@ -mkdir -p $(DESTDIR)$(gsincludedir) $(INSTALL_PROGRAM) $(GSSOC) $(DESTDIR)$(bindir)/$(GSSOC_XENAME) $(INSTALL_PROGRAM) $(GSSOX) $(DESTDIR)$(bindir)/$(GSSOX_XENAME) @@ -353,6 +353,7 @@ diff -Naur ghostscript-9.10-orig/base/unix-dll.mak ghostscript-9.10/base/unix-dl + $(RM_) $(DESTDIR)$(libdir)/$(GS_SONAME_MAJOR) ; \ + ln -s $(GS_SONAME_MAJOR) $(DESTDIR)$(libdir)/$(GS_SONAME_MAJOR_MINOR) ; \ + fi ++ $(INSTALL_DATA) $(GLSRCDIR)/gserrors.h $(DESTDIR)$(gsincludedir)gserrors.h $(INSTALL_DATA) $(PSSRC)iapi.h $(DESTDIR)$(gsincludedir)iapi.h $(INSTALL_DATA) $(PSSRC)ierrors.h $(DESTDIR)$(gsincludedir)ierrors.h $(INSTALL_DATA) $(DEVSRC)gdevdsp.h $(DESTDIR)$(gsincludedir)gdevdsp.h From 6e2770305af191292f15cc318d20dd0fc3ab75f6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 14 Oct 2015 09:32:11 +0300 Subject: [PATCH 1722/2060] gimp: Rebuild with poppler 0.37. Use pygobject instead pygtk --- mingw-w64-gimp/PKGBUILD | 10 ++++++--- mingw-w64-gimp/replace-pygtk-codegen.patch | 26 ++++++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-gimp/replace-pygtk-codegen.patch diff --git a/mingw-w64-gimp/PKGBUILD b/mingw-w64-gimp/PKGBUILD index 983bb5d9e9..6ef6f73b48 100644 --- a/mingw-w64-gimp/PKGBUILD +++ b/mingw-w64-gimp/PKGBUILD @@ -4,7 +4,7 @@ _realname=gimp pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.8.14 -pkgrel=7 +pkgrel=8 pkgdesc="GNU Image Manipulation Program (mingw-w64)" arch=('any') url="http://www.gimp.org/" @@ -24,6 +24,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-babl" "${MINGW_PACKAGE_PREFIX}-openexr" "${MINGW_PACKAGE_PREFIX}-poppler" "${MINGW_PACKAGE_PREFIX}-python2-pygtk" + "${MINGW_PACKAGE_PREFIX}-python2-gobject" "${MINGW_PACKAGE_PREFIX}-webkitgtk2" "${MINGW_PACKAGE_PREFIX}-xpm-nox" ) @@ -36,12 +37,14 @@ source=(http://download.gimp.org/pub/gimp/v${pkgver%.*}/${_realname}-${pkgver}.t gegl-0.3-fix.patch find-directx-fix.patch python-m4.patch - mingw-add-ModuleFileName-dir-to-PATH.patch) + mingw-add-ModuleFileName-dir-to-PATH.patch + replace-pygtk-codegen.patch) md5sums=('233c948203383fa078434cc3f8f925cb' 'd1e19159164cac7b39578a6b0bb02cbb' '0df0c9c5f55012023894ed8b959c2fa9' '460f010cfb789608d2045a4a936f47b2' - '0d5c523e91fbfbab43c2f12447ccfebc') + '0d5c523e91fbfbab43c2f12447ccfebc' + '99c9edb5613db63033e043261e53d2c3') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -49,6 +52,7 @@ prepare() { patch -p1 -i ${srcdir}/find-directx-fix.patch patch -p1 -i ${srcdir}/python-m4.patch patch -p1 -i ${srcdir}/mingw-add-ModuleFileName-dir-to-PATH.patch + patch -p1 -i ${srcdir}/replace-pygtk-codegen.patch rm -fr autom4te.cache libtoolize -c diff --git a/mingw-w64-gimp/replace-pygtk-codegen.patch b/mingw-w64-gimp/replace-pygtk-codegen.patch new file mode 100644 index 0000000000..8fb9a6253a --- /dev/null +++ b/mingw-w64-gimp/replace-pygtk-codegen.patch @@ -0,0 +1,26 @@ +--- gimp-2.8.14/configure.ac.orig 2015-10-13 14:54:35.164396900 +0300 ++++ gimp-2.8.14/configure.ac 2015-10-13 15:01:58.768840100 +0300 +@@ -1892,9 +1892,9 @@ + PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= pygtk_required_version,, + [AC_MSG_ERROR([pycheck_error([PyGTK pygtk_required_version or newer], [it])])]) + +- AC_PATH_PROG(PYGTK_CODEGEN, pygtk-codegen-2.0, no) +- if test "x$PYGTK_CODEGEN" = xno; then +- AC_MSG_ERROR([pycheck_error([pygtk-codegen-2.0 script], [it])]) ++ AC_PATH_PROG(PYGOBJECT_CODEGEN, pygobject-codegen-2.0, no) ++ if test "x$PYGOBJECT_CODEGEN" = xno; then ++ AC_MSG_ERROR([pycheck_error([pygobject-codegen-2.0 script], [it])]) + fi + + AC_MSG_CHECKING(for pygtk defs) +--- gimp-2.8.14/plug-ins/pygimp/Makefile.am.orig 2015-10-13 15:00:41.547754900 +0300 ++++ gimp-2.8.14/plug-ins/pygimp/Makefile.am 2015-10-13 15:01:12.574025700 +0300 +@@ -166,7 +166,7 @@ + + .defs.c: + (cd $(srcdir) \ +- && $(PYGTK_CODEGEN) \ ++ && $(PYGOBJECT_CODEGEN) \ + --override $*.override \ + --register $(PYGTK_DEFSDIR)/gdk-types.defs \ + --register $(PYGTK_DEFSDIR)/gtk-types.defs \ From 3c7935ccd1e4ef91c01ec69f7a6a5430f8667e2d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 14 Oct 2015 10:29:40 +0300 Subject: [PATCH 1723/2060] gtk3: Update to 3.18.2 --- mingw-w64-gtk3/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 96cdb4a76a..3db04087b9 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtk3 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.18.1 +pkgver=3.18.2 pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') @@ -31,7 +31,7 @@ options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" 0013-fix-mingw-w64-fstat-call.mingw.patch 0056-missing-file-toarray-pl.patch) -md5sums=('b4d4d30d90f4831855b410fb6a1fae63' +md5sums=('230fd78e42419d35ff790784b457e5f2' '21789d52c1debcab59f8b6a99232de68' 'f25cb2486d761b60e04036947552bf82') From 0cefcb5e627b6f48c90c7e66289ddbdd9f7a7bdb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 14 Oct 2015 10:29:53 +0300 Subject: [PATCH 1724/2060] pango: Update to 1.38.1 --- mingw-w64-pango/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-pango/PKGBUILD b/mingw-w64-pango/PKGBUILD index 679c67026f..993a75ca30 100644 --- a/mingw-w64-pango/PKGBUILD +++ b/mingw-w64-pango/PKGBUILD @@ -4,7 +4,7 @@ _realname=pango pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.38.0 +pkgver=1.38.1 pkgrel=1 pkgdesc="A library for layout and rendering of text (mingw-w64)" arch=('any') @@ -31,7 +31,7 @@ options=('staticlibs' 'strip' 'emptydirs') source=("http://ftp.gnome.org/pub/gnome/sources/pango/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz" 0001-no-unconditional-xft-please.all.patch 0002-msvc-is-impotent-but-not.mingw.patch) -sha256sums=('1d4e75974bad853ee9ac5fc5caee5e7ab235abbd945d51d01f3806e04e7c226c' +sha256sums=('1320569f6c6d75d6b66172b2d28e59c56ee864ee9df202b76799c4506a214eb7' 'eccc044bbd156b252f5a13f7894c3a6cd1efc6ea80eaee57a5865895b192616d' '240d21474157c0deabc2660593ac0414565ddf30c304b08b74a09072c910b34d') From 8c5e3706319b250c9bb3d0566cab301ed3f05441 Mon Sep 17 00:00:00 2001 From: David Grayson Date: Wed, 14 Oct 2015 22:29:16 -0700 Subject: [PATCH 1725/2060] New package: confuse. --- mingw-w64-confuse/PKGBUILD | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 mingw-w64-confuse/PKGBUILD diff --git a/mingw-w64-confuse/PKGBUILD b/mingw-w64-confuse/PKGBUILD new file mode 100644 index 0000000000..901168a512 --- /dev/null +++ b/mingw-w64-confuse/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: David Grayson + +_realname=confuse +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.8 +pkgrel=1 +pkgdesc='Library for parsing configuration files (mingw-w64)' +arch=('any') +url="https://github.com/martinh/libconfuse" +license=('custom') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +depends=("${MINGW_PACKAGE_PREFIX}-gettext") +options=('staticlibs' 'strip') +source=( + "https://github.com/martinh/libconfuse/releases/download/v${pkgver}/confuse-${pkgver}.tar.xz" +) + +sha256sums=('2a8102bfa3ccc846c14d94a81b0abfb4f5e855809f89ff3722aca1a9f314ea0d') + +build() { + rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "../${_realname}-${pkgver}/configure" \ + --prefix="${MINGW_PREFIX}" \ + --build="${MINGW_CHOST}" \ + --host="${MINGW_CHOST}" \ + --enable-static \ + --enable-shared \ + --disable-examples + + make +} + +check() { + cd "${srcdir}/build-${MINGW_CHOST}" + make check +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + + # Note that the license also gets installed in share/doc/confuse along with + # other documentation. + cd "${srcdir}/${_realname}-${pkgver}" + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From c4a9ab8cff2d922191fed480ad57511c8e84ab5c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 15 Oct 2015 09:24:27 +0300 Subject: [PATCH 1726/2060] glib2: Update to 2.46.1 --- mingw-w64-glib2/0030-right-wstat-for-64bit.patch | 14 -------------- mingw-w64-glib2/PKGBUILD | 11 ++++------- 2 files changed, 4 insertions(+), 21 deletions(-) delete mode 100644 mingw-w64-glib2/0030-right-wstat-for-64bit.patch diff --git a/mingw-w64-glib2/0030-right-wstat-for-64bit.patch b/mingw-w64-glib2/0030-right-wstat-for-64bit.patch deleted file mode 100644 index a92fe9ed09..0000000000 --- a/mingw-w64-glib2/0030-right-wstat-for-64bit.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- glib-2.46.0/gio/glocalfile.c.orig 2015-09-22 09:21:19.504654600 +0300 -+++ glib-2.46.0/gio/glocalfile.c 2015-09-22 09:22:36.185897400 +0300 -@@ -2682,7 +2682,11 @@ - (!g_path_is_absolute (filename) || len > g_path_skip_root (filename) - filename)) - wfilename[len] = '\0'; - -+#ifdef _WIN64 -+ retval = _wstati64 (wfilename, &buf); -+#else - retval = _wstat32i64 (wfilename, &buf); -+#endif - save_errno = errno; - - g_free (wfilename); diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 7d1965ece6..744cb68278 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -4,7 +4,7 @@ _realname=glib2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.46.0 +pkgver=2.46.1 pkgrel=1 url="http://www.gtk.org/" arch=('any') @@ -27,9 +27,8 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-${pkgver} 0024-return-actually-written-data-in-printf.all.patch 0027-no_sys_if_nametoindex.patch 0028-inode_directory.patch - 0029-grand.all.patch - 0030-right-wstat-for-64bit.patch) -md5sums=('6d58f9d70893a63e75c2b7df79375ee7' + 0029-grand.all.patch) +md5sums=('c90e93ceb45100ffc1d40ec5d2ca3248' '10cf1e482b6a1367d79648466f2cf23c' '27e8188e764eed3b3d565e5fc5746654' 'b3cf766d5e717010a7534c61e53f3204' @@ -39,8 +38,7 @@ md5sums=('6d58f9d70893a63e75c2b7df79375ee7' '3f896edd80eaa9c4e98abca0df6c83bd' '4aa52b552a6a25b49a1b6f928b3cdafd' '27ad96697441aabc4a01f881ad9999ea' - 'b64390c406d32578e979103eed89232b' - 'de0744aac6f847a5031b1dec316911d1') + 'b64390c406d32578e979103eed89232b') prepare() { cd "${srcdir}/glib-${pkgver}" @@ -55,7 +53,6 @@ prepare() { patch -Np1 -i "${srcdir}/0027-no_sys_if_nametoindex.patch" patch -Np1 -i "${srcdir}/0028-inode_directory.patch" patch -Np1 -i "${srcdir}/0029-grand.all.patch" - patch -Np1 -i "${srcdir}/0030-right-wstat-for-64bit.patch" NOCONFIGURE=1 ./autogen.sh } From e97497e39a9bd8a36e0afa6214fbfc12d849c644 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 15 Oct 2015 09:27:34 +0300 Subject: [PATCH 1727/2060] sqlite3: Update to 3.9.0.0 --- mingw-w64-sqlite3/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index eea4ed9982..77083e2f77 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Renato Silva _realname=sqlite3 +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3081101 -pkgver=3.8.11.1 +_amalgamationver=3090000 +pkgver=3.9.0.0 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') @@ -16,7 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=("http://www.sqlite.org/2015/sqlite-autoconf-${_amalgamationver}.tar.gz" LICENSE) -sha1sums=('d0e22d7e361b6f50830a3cdeafe35311443f8f9a' +sha1sums=('6578aa8df05fd7777fbbc4fbf1912d981623f73b' 'e2aa07adae13aed713860b74165d3325a18c6792') options=('!strip' 'staticlibs' '!buildflags') From cc19bf83c8bc15f6ad55ffca0e8ce67eb2c15d67 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 15 Oct 2015 09:41:20 +0300 Subject: [PATCH 1728/2060] ffmpeg: Update to 2.8.1 --- mingw-w64-ffmpeg/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 233344b326..0b12906190 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -3,8 +3,8 @@ _realname=ffmpeg pkgbase="mingw-w64-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.8 -pkgrel=2 +pkgver=2.8.1 +pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" @@ -42,7 +42,7 @@ depends=( ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-yasm") source=(http://ffmpeg.org/releases/${_realname}-${pkgver}.tar.bz2) -md5sums=('5eb3839e23c9ca396fabd0ebbe293ea2') +md5sums=('63b2cfeea930e942ff7579fd0064c5be') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 9053f79825034eaa720cddb85af5a6d7283a61de Mon Sep 17 00:00:00 2001 From: David Grayson Date: Wed, 14 Oct 2015 23:51:30 -0700 Subject: [PATCH 1729/2060] New package: hclient --- mingw-w64-hclient/.gitignore | 1 + mingw-w64-hclient/01-includes.patch | 11 ++ mingw-w64-hclient/02-intsafe.patch | 11 ++ mingw-w64-hclient/03-read-thread-proc.patch | 45 +++++ mingw-w64-hclient/04-bad-comparison.patch | 11 ++ .../05-other-bad-comparison.patch | 11 ++ mingw-w64-hclient/06-size-t.patch | 11 ++ mingw-w64-hclient/07-dialog-proc.patch | 168 ++++++++++++++++++ mingw-w64-hclient/PKGBUILD | 88 +++++++++ 9 files changed, 357 insertions(+) create mode 100644 mingw-w64-hclient/.gitignore create mode 100644 mingw-w64-hclient/01-includes.patch create mode 100644 mingw-w64-hclient/02-intsafe.patch create mode 100644 mingw-w64-hclient/03-read-thread-proc.patch create mode 100644 mingw-w64-hclient/04-bad-comparison.patch create mode 100644 mingw-w64-hclient/05-other-bad-comparison.patch create mode 100644 mingw-w64-hclient/06-size-t.patch create mode 100644 mingw-w64-hclient/07-dialog-proc.patch create mode 100644 mingw-w64-hclient/PKGBUILD diff --git a/mingw-w64-hclient/.gitignore b/mingw-w64-hclient/.gitignore new file mode 100644 index 0000000000..5c6fb78c8c --- /dev/null +++ b/mingw-w64-hclient/.gitignore @@ -0,0 +1 @@ +wds diff --git a/mingw-w64-hclient/01-includes.patch b/mingw-w64-hclient/01-includes.patch new file mode 100644 index 0000000000..18ee7dda8a --- /dev/null +++ b/mingw-w64-hclient/01-includes.patch @@ -0,0 +1,11 @@ +--- a/buffers.h ++++ b/buffers.h +@@ -24,6 +24,8 @@ Revision History: + #ifndef _BUFFERS_H_ + #define _BUFFERS_H_ + ++#include ++ + typedef struct _REPORT_BUFFER + { + _Field_size_(iBufferSize) diff --git a/mingw-w64-hclient/02-intsafe.patch b/mingw-w64-hclient/02-intsafe.patch new file mode 100644 index 0000000000..8266340dd0 --- /dev/null +++ b/mingw-w64-hclient/02-intsafe.patch @@ -0,0 +1,11 @@ +--- a/buffers.c ++++ b/buffers.c +@@ -79,7 +79,7 @@ + return (FALSE); + } + +- if(S_OK != ULongMult(sizeof(REPORT_BUFFER), nBuffers, &reportBuffersSize)) ++ if(__builtin_mul_overflow(sizeof(REPORT_BUFFER), nBuffers, &reportBuffersSize)) + { + free(pNewDisplay); + return (FALSE); diff --git a/mingw-w64-hclient/03-read-thread-proc.patch b/mingw-w64-hclient/03-read-thread-proc.patch new file mode 100644 index 0000000000..4cf0c35ead --- /dev/null +++ b/mingw-w64-hclient/03-read-thread-proc.patch @@ -0,0 +1,45 @@ +--- a/hclient.c ++++ b/hclient.c +@@ -3692,10 +3692,10 @@ DestroyDeviceListCallback( + } + + DWORD WINAPI +-AsynchReadThreadProc( +- PREAD_THREAD_CONTEXT Context +-) ++AsynchReadThreadProc( ++ LPVOID c) + { ++ PREAD_THREAD_CONTEXT Context = c; + HANDLE completionEvent; + BOOL readStatus; + DWORD waitStatus; +@@ -3818,9 +3818,9 @@ AsyncRead_End: + + DWORD WINAPI + SynchReadThreadProc( +- PREAD_THREAD_CONTEXT Context +-) ++ LPVOID c) + { ++ PREAD_THREAD_CONTEXT Context = c; + ULONG numReadsDone = 0; + do + { +--- a/hclient.h ++++ b/hclient.h +@@ -140,12 +140,12 @@ vDisplayValueAttributes( + + DWORD WINAPI + AsynchReadThreadProc( +- PREAD_THREAD_CONTEXT Context ++ LPVOID + ); + + DWORD WINAPI + SynchReadThreadProc( +- PREAD_THREAD_CONTEXT Context ++ LPVOID + ); + + #endif diff --git a/mingw-w64-hclient/04-bad-comparison.patch b/mingw-w64-hclient/04-bad-comparison.patch new file mode 100644 index 0000000000..e62ddfe3cc --- /dev/null +++ b/mingw-w64-hclient/04-bad-comparison.patch @@ -0,0 +1,11 @@ +--- a/hclient.c ++++ b/hclient.c +@@ -3560,7 +3560,7 @@ Routine Description: + // + if(iByteIndex + (UINT)4 > uiBufferSize) + { +- if(sizeof(szString) <= uiStringSize) ++ + { + StringCbPrintf(szString, uiStringSize, "ERR"); + } diff --git a/mingw-w64-hclient/05-other-bad-comparison.patch b/mingw-w64-hclient/05-other-bad-comparison.patch new file mode 100644 index 0000000000..fc64b24e52 --- /dev/null +++ b/mingw-w64-hclient/05-other-bad-comparison.patch @@ -0,0 +1,11 @@ +--- a/strings.c ++++ b/strings.c +@@ -196,7 +196,7 @@ Routine Description: + goto Done; + } + +- if(ByteOffset + DataBuffer > CurrentBufferOffset+ByteOffset) ++ if(ByteOffset + DataBuffer > (PCHAR)CurrentBufferOffset+ByteOffset) + { + goto Done; + } diff --git a/mingw-w64-hclient/06-size-t.patch b/mingw-w64-hclient/06-size-t.patch new file mode 100644 index 0000000000..ce58bce400 --- /dev/null +++ b/mingw-w64-hclient/06-size-t.patch @@ -0,0 +1,11 @@ +--- a/ecdisp.c ++++ b/ecdisp.c +@@ -155,7 +155,7 @@ + #define OUTSTRING(win, str) SendMessage(win, LB_ADDSTRING, 0, (LPARAM) str) + #define OUTWSTRING(win, str) \ + { \ +- SIZE_T nBytes; \ ++ size_t nBytes; \ + \ + errno_t result = wcstombs_s(&nBytes, szTempBuffer, TEMP_BUFFER_SIZE, str, TEMP_BUFFER_SIZE-1); \ + if (0 != result) { \ diff --git a/mingw-w64-hclient/07-dialog-proc.patch b/mingw-w64-hclient/07-dialog-proc.patch new file mode 100644 index 0000000000..7a8fccae75 --- /dev/null +++ b/mingw-w64-hclient/07-dialog-proc.patch @@ -0,0 +1,168 @@ +--- a/ecdisp.c ++++ b/ecdisp.c +@@ -499,7 +499,7 @@ + OUT INT *nReportIDs + ); + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetUsagesDlgProc( + HWND hDlg, + UINT message, +@@ -507,7 +507,7 @@ + LPARAM lParam + ); + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetValueDlgProc( + HWND hDlg, + UINT message, +@@ -515,7 +515,7 @@ + LPARAM lParam + ); + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetInputBuffDlgProc( + HWND hDlg, + UINT message, +@@ -523,7 +523,7 @@ + LPARAM lParam + ); + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetDataDlgProc( + HWND hDlg, + UINT message, +@@ -531,7 +531,7 @@ + LPARAM lParam + ); + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetBufLenDlgProc( + HWND hDlg, + UINT message, +@@ -539,7 +539,7 @@ + LPARAM lParam + ); + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetInputBuffersDlgProc( + HWND hDlg, + UINT message, +@@ -547,7 +547,7 @@ + LPARAM lParam + ); + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bGetIndexedDlgProc( + HWND hDlg, + UINT message, +@@ -555,7 +555,7 @@ + LPARAM lParam + ); + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bGetUsageDiffDlgProc( + HWND hDlg, + UINT message, +@@ -629,7 +629,7 @@ + /* Global function definitions + /*****************************************************************************/ + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bExtCallDlgProc( + HWND hDlg, + UINT message, +@@ -3313,7 +3313,7 @@ + return; + } + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetUsagesDlgProc( + HWND hDlg, + UINT message, +@@ -3378,7 +3378,7 @@ + return (FALSE); + } + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetValueDlgProc( + HWND hDlg, + UINT message, +@@ -3449,7 +3449,7 @@ + return (FALSE); + } + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetInputBuffDlgProc( + HWND hDlg, + UINT message, +@@ -3510,7 +3510,7 @@ + return (FALSE); + } + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetDataDlgProc( + HWND hDlg, + UINT message, +@@ -3687,7 +3687,7 @@ + return (FALSE); + } + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetBufLenDlgProc( + HWND hDlg, + UINT message, +@@ -3749,7 +3749,7 @@ + return (FALSE); + } + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bSetInputBuffersDlgProc( + HWND hDlg, + UINT message, +@@ -3810,7 +3810,7 @@ + return (FALSE); + } + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bGetIndexedDlgProc( + HWND hDlg, + UINT message, +@@ -3883,7 +3883,7 @@ + return (FALSE); + } + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bGetUsageDiffDlgProc( + HWND hDlg, + UINT message, +diff --git a/hid/hclient/ecdisp.h b/hid/hclient/ecdisp.h +index ea0bd0f..6d13b83 100644 +--- a/ecdisp.h ++++ b/ecdisp.h +@@ -71,7 +71,7 @@ + /* Global Extended Call display function declarations + /*****************************************************************************/ + +-LRESULT CALLBACK ++INT_PTR CALLBACK + bExtCallDlgProc( + HWND hDlg, + UINT message, diff --git a/mingw-w64-hclient/PKGBUILD b/mingw-w64-hclient/PKGBUILD new file mode 100644 index 0000000000..bf310a3969 --- /dev/null +++ b/mingw-w64-hclient/PKGBUILD @@ -0,0 +1,88 @@ +# Maintainer: David Grayson + +_realname=hclient +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +provides="${MINGW_PACKAGE_PREFIX}-${_realname}" +conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=37.efd8c0a +pkgrel=1 +pkgdesc='Sample GUI for communicating with HIDs (mingw-w64)' +arch=('any') +url='https://github.com/Microsoft/Windows-driver-samples/tree/master/hid/hclient' +license=('custom') +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +depends=() +options=('strip') +source=( + "wds::git+https://github.com/Microsoft/Windows-driver-samples" + '01-includes.patch' + '02-intsafe.patch' + '03-read-thread-proc.patch' + '04-bad-comparison.patch' + '05-other-bad-comparison.patch' + '06-size-t.patch' + '07-dialog-proc.patch' +) + +sha256sums=('SKIP' + 'c5e16ddaa76e5d2dbcf3d8b5083f9a2dfca74f869419c2e5be9b7444b05a72db' + '6c73b234ff46a20cae7de86e6d96f53629624c9b3d005d72030500e95616b826' + '6f2f2ffe160cf71c43fb0224efabf045490ef0202921600f79c45b0bab527e45' + '8c879599a1cf95ed838be8030acb2d74d85989de10a61c7ac1e9243266d1c361' + 'e673215729689b21fd4b6b246e70ed4a8d75fea871dac6b0ec410bf4fc87d60c' + '94b4ebd39a372cf105d45daa1be9c5286dc307a82325273c9925253985c736c8' + 'c2caed5841c2212ec43b7799b0140fcdd5e217b0488f8cfe9318a19841e0eb32') + +pkgver() { + cd "${srcdir}/wds" + printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}/wds/hid/${_realname}" + + patch -p1 -i "${srcdir}/01-includes.patch" + + # GCC distinguishes between unsigned long and unsigned int. + patch -p1 -i "${srcdir}/02-intsafe.patch" + + # GCC distinguishes between void pointers and other pointers. + patch -p1 -i "${srcdir}/03-read-thread-proc.patch" + + # GCC warns about this because sizeof() for an array parameter + # just returns the size of a pointer. + patch -p1 -i "${srcdir}/04-bad-comparison.patch" + + # Fix a compile warning from comparing two different pointer types without a + # cast. + patch -p1 -i "${srcdir}/05-other-bad-comparison.patch" + + # size_t is different from SIZE_T + patch -p1 -i "${srcdir}/06-size-t.patch" + + # DlgProcs are supposed to return INT_PTR, which is different from LRESULT. + patch -p1 -i "${srcdir}/07-dialog-proc.patch" +} + +build() { + cd "${srcdir}" + rm -rf "build-${MINGW_CHOST}" + mkdir -p "build-${MINGW_CHOST}" + cd "build-${MINGW_CHOST}" + + windres ../wds/hid/hclient/hclient.rc rc.so + + gcc -mwindows --std=c99 ${CFLAGS} ${LDFLAGS} \ + ../wds/hid/hclient/*.c rc.so \ + -lsetupapi -lhid \ + -o hclient.exe +} + +package() { + cd "${srcdir}/wds" + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + cd "${srcdir}/build-${MINGW_CHOST}" + mkdir "${pkgdir}${MINGW_PREFIX}/bin" + install -Dm755 hclient.exe "${pkgdir}${MINGW_PREFIX}/bin" +} From 518f4722e6463fca0ef188a768fa3b5871eb0393 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 15 Oct 2015 10:50:41 +0300 Subject: [PATCH 1730/2060] mingw-w64-headers-git: Update to 5.0.0.4578.ace70f1 --- mingw-w64-headers-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 71e37d7449..39cf04a222 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4575.ada0f35 +pkgver=5.0.0.4578.ace70f1 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From 978bf31316b42f298f2cee231c1c2217692a2fdd Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 15 Oct 2015 15:39:57 +0300 Subject: [PATCH 1731/2060] gstreamer: WIP update to 1.6.0 --- .../0001-make-mingw-find-gir-scanner.patch | 24 --- mingw-w64-gst-editing-services/PKGBUILD | 10 +- mingw-w64-gst-libav/PKGBUILD | 7 +- .../0001-give-cc-to-gir-scanner.mingw.patch | 56 ----- .../0004-fix-X-detection.mingw.patch | 13 -- .../0005-fix-cast-errors.patch | 24 --- ...name-conflict-with-openssl-and-win32.patch | 27 +++ mingw-w64-gst-plugins-bad/PKGBUILD | 24 +-- .../0003-fix-riff-includes.mingw.patch | 12 -- .../0004-fix-X-detection.mingw.patch | 13 -- .../0009-fix-casting-error.patch | 11 - mingw-w64-gst-plugins-base/PKGBUILD | 24 +-- .../give-cc-to-gir-scanner.mingw.patch | 203 ------------------ .../0004-fix-X-detection.mingw.patch | 13 -- mingw-w64-gst-plugins-good/PKGBUILD | 14 +- mingw-w64-gst-plugins-ugly/PKGBUILD | 9 +- .../0002-msys2-fix-linking-errors.patch | 4 +- mingw-w64-gst-python/PKGBUILD | 7 +- .../0004-fix-X-detection.mingw.patch | 2 +- mingw-w64-gstreamer/PKGBUILD | 17 +- .../give-cc-to-gir-scanner.mingw.patch | 50 ----- 21 files changed, 77 insertions(+), 487 deletions(-) delete mode 100644 mingw-w64-gst-editing-services/0001-make-mingw-find-gir-scanner.patch delete mode 100644 mingw-w64-gst-plugins-bad/0001-give-cc-to-gir-scanner.mingw.patch delete mode 100644 mingw-w64-gst-plugins-bad/0004-fix-X-detection.mingw.patch delete mode 100644 mingw-w64-gst-plugins-bad/0005-fix-cast-errors.patch create mode 100644 mingw-w64-gst-plugins-bad/0006-fix-name-conflict-with-openssl-and-win32.patch delete mode 100644 mingw-w64-gst-plugins-base/0003-fix-riff-includes.mingw.patch delete mode 100644 mingw-w64-gst-plugins-base/0004-fix-X-detection.mingw.patch delete mode 100644 mingw-w64-gst-plugins-base/0009-fix-casting-error.patch delete mode 100644 mingw-w64-gst-plugins-base/give-cc-to-gir-scanner.mingw.patch delete mode 100644 mingw-w64-gst-plugins-good/0004-fix-X-detection.mingw.patch delete mode 100644 mingw-w64-gstreamer/give-cc-to-gir-scanner.mingw.patch diff --git a/mingw-w64-gst-editing-services/0001-make-mingw-find-gir-scanner.patch b/mingw-w64-gst-editing-services/0001-make-mingw-find-gir-scanner.patch deleted file mode 100644 index 004d57b884..0000000000 --- a/mingw-w64-gst-editing-services/0001-make-mingw-find-gir-scanner.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 81271719a4f1737f4a0a7af0ac302d6e4b6507b3 Mon Sep 17 00:00:00 2001 -From: Lubosz Sarnecki -Date: Wed, 30 Jul 2014 15:52:25 +0200 -Subject: [PATCH 1/2] make mingw find gir scanner - ---- - ges/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/ges/Makefile.am b/ges/Makefile.am -index 5b341ce..859a33f 100644 ---- a/ges/Makefile.am -+++ b/ges/Makefile.am -@@ -168,6 +168,7 @@ gir_cincludes+=$(patsubst %,--c-include='ges/%',$(nodist_libges_@GST_API_VERSION - - GES-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libges-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GES \ - --nsversion=@GST_API_VERSION@ \ - --identifier-prefix=GES \ --- -2.0.4 - diff --git a/mingw-w64-gst-editing-services/PKGBUILD b/mingw-w64-gst-editing-services/PKGBUILD index 052aa6ae9b..c21851b236 100644 --- a/mingw-w64-gst-editing-services/PKGBUILD +++ b/mingw-w64-gst-editing-services/PKGBUILD @@ -2,8 +2,9 @@ _srcname=gstreamer-editing-services _realname=gst-editing-services +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.0 +pkgver=1.6.0 pkgrel=1 pkgdesc="GStreamer Editing Services (mingw-w64)" arch=('any') @@ -17,16 +18,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-gst-plugins-base" "${MINGW_PACKAGE_PREFIX}-gstreamer") options=(!libtool strip staticlibs) source=(http://gstreamer.freedesktop.org/src/${_realname}/${_srcname}-${pkgver}.tar.xz - 0001-make-mingw-find-gir-scanner.patch 0002-add-cflags-for-gir.patch ) -md5sums=('063cc8aae62c9013d078da7f3825805f' - '38b10c073e9ccd3dfbeab28e151fdc9a' +md5sums=('fd4071d6f2fdd0c302f579b3180115c1' '650a069277d5b0e85f8be15948e2d03a') prepare() { cd ${_srcname}-${pkgver} - patch -p1 -i ${srcdir}/0001-make-mingw-find-gir-scanner.patch patch -p1 -i ${srcdir}/0002-add-cflags-for-gir.patch autoreconf -fiv @@ -34,10 +32,8 @@ prepare() { } build() { - mkdir -p "${srcdir}/build-${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" - #cp -rf ${_realname} "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_srcname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ diff --git a/mingw-w64-gst-libav/PKGBUILD b/mingw-w64-gst-libav/PKGBUILD index 716b301295..42e95a718e 100644 --- a/mingw-w64-gst-libav/PKGBUILD +++ b/mingw-w64-gst-libav/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: AlexWMF _realname=gst-libav +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.5 -pkgrel=2 +pkgver=1.6.0 +pkgrel=1 pkgdesc="GStreamer libav (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" @@ -18,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-gstreamer") options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz) -md5sums=('f4922a46adbcbe7bd01331ff5dc7979d') +md5sums=('eda67328be0878bb73449c29ca55baf8') prepare() { cd ${srcdir}/${_realname}-${pkgver} diff --git a/mingw-w64-gst-plugins-bad/0001-give-cc-to-gir-scanner.mingw.patch b/mingw-w64-gst-plugins-bad/0001-give-cc-to-gir-scanner.mingw.patch deleted file mode 100644 index 133b105750..0000000000 --- a/mingw-w64-gst-plugins-bad/0001-give-cc-to-gir-scanner.mingw.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -Naur gst-plugins-bad-1.3.3-orig/gst-libs/gst/insertbin/Makefile.am gst-plugins-bad-1.3.3/gst-libs/gst/insertbin/Makefile.am ---- gst-plugins-bad-1.3.3-orig/gst-libs/gst/insertbin/Makefile.am 2013-09-04 20:27:43.000000000 +0400 -+++ gst-plugins-bad-1.3.3/gst-libs/gst/insertbin/Makefile.am 2014-07-11 01:07:54.704800000 +0400 -@@ -31,13 +31,16 @@ - GstInsertBin-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstinsertbin-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstInsertBin \ - --nsversion=@GST_API_VERSION@ \ -- --strip-prefix=Gst \ -+ --identifier-prefix=Gst \ -+ --symbol-prefix=gst \ - --warn-all \ - --c-include "gst/insertbin/gstinsertbin.h" \ - -I$(top_srcdir)/gst-libs \ - -I$(top_builddir)/gst-libs \ -+ `$(PKG_CONFIG) --cflags-only-I gstreamer-@GST_API_VERSION@` \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ - --library=libgstinsertbin-@GST_API_VERSION@.la \ -@@ @@ -70,6 +70,7 @@ - $(INTROSPECTION_COMPILER) \ - --includedir=$(srcdir) \ - --includedir=$(builddir) \ -+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=includedir gstreamer-@GST_API_VERSION@` \ - --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ - $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) -diff -Naur gst-plugins-bad-1.3.3-orig/gst-libs/gst/mpegts/Makefile.am gst-plugins-bad-1.3.3/gst-libs/gst/mpegts/Makefile.am ---- gst-plugins-bad-1.3.3-orig/gst-libs/gst/mpegts/Makefile.am 2014-04-30 10:45:01.000000000 +0400 -+++ gst-plugins-bad-1.3.3/gst-libs/gst/mpegts/Makefile.am 2014-07-11 01:08:17.371600000 +0400 -@@ -65,6 +65,7 @@ - GstMpegts-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstmpegts-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstMpegts \ - --nsversion=@GST_API_VERSION@ \ - --identifier-prefix=GstMpegTs \ -@@ -75,6 +75,7 @@ - --c-include "gst/mpegts/mpegts.h" \ - -I$(top_srcdir)/gst-libs \ - -I$(top_builddir)/gst-libs \ -+ `$(PKG_CONFIG) --cflags-only-I gstreamer-@GST_API_VERSION@` \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_API_VERSION@` \ - --library=libgstmpegts-@GST_API_VERSION@.la \ -@@ -104,6 +104,7 @@ - $(INTROSPECTION_COMPILER) \ - --includedir=$(srcdir) \ - --includedir=$(builddir) \ -+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=includedir gstreamer-@GST_API_VERSION@` \ - --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ - $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) diff --git a/mingw-w64-gst-plugins-bad/0004-fix-X-detection.mingw.patch b/mingw-w64-gst-plugins-bad/0004-fix-X-detection.mingw.patch deleted file mode 100644 index 5f6282a4ed..0000000000 --- a/mingw-w64-gst-plugins-bad/0004-fix-X-detection.mingw.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/common/m4/gst-x11.m4.orig 2012-03-27 11:24:15.000000000 +0400 -+++ b/common/m4/gst-x11.m4 2014-07-10 20:46:24.623600000 +0400 -@@ -9,7 +9,9 @@ - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - - dnl now try to find the HEADER -- AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no") -+ HAVE_X="yes" -+ AC_CHECK_HEADER([X11/Xlib.h], [], [HAVE_X="no"], [AC_INCLUDES_DEFAULT]) -+ AC_CHECK_HEADER([X11/XKBlib.h], [], [HAVE_X="no"], [AC_INCLUDES_DEFAULT]) - - if test "x$HAVE_X" = "xno" - then diff --git a/mingw-w64-gst-plugins-bad/0005-fix-cast-errors.patch b/mingw-w64-gst-plugins-bad/0005-fix-cast-errors.patch deleted file mode 100644 index b9d90f29ad..0000000000 --- a/mingw-w64-gst-plugins-bad/0005-fix-cast-errors.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- gst-plugins-bad-1.3.3/sys/winks/gstksvideodevice.c.orig 2014-03-21 18:07:47.000000000 +0400 -+++ gst-plugins-bad-1.3.3/sys/winks/gstksvideodevice.c 2014-07-11 12:12:35.533200000 +0400 -@@ -628,7 +628,7 @@ - KSPROPERTY_STREAM_MASTERCLOCK, (gpointer *) & cur_clock_handle, - &cur_clock_handle_size, NULL)) { - GST_DEBUG ("current master clock handle: 0x%08x", -- (guint) * cur_clock_handle); -+ (guint) (guintptr) * cur_clock_handle); - CloseHandle (*cur_clock_handle); - g_free (cur_clock_handle); - } else { ---- gst-plugins-bad-1.3.3/sys/winks/ksvideohelpers.c.orig 2014-03-21 18:07:47.000000000 +0400 -+++ gst-plugins-bad-1.3.3/sys/winks/ksvideohelpers.c 2014-07-11 12:14:49.519200000 +0400 -@@ -183,8 +183,8 @@ - GST_DEBUG ("Unknown DirectShow Video GUID %08x-%04x-%04x-%04x-%08x%04x", - (guint) subtype_guid.Data1, (guint) subtype_guid.Data2, - (guint) subtype_guid.Data3, -- (guint) subtype_guid.Data4, (guint) & subtype_guid.Data4[2], -- (guint) & subtype_guid.Data4[6]); -+ (guint) (guintptr) subtype_guid.Data4, (guint) (guintptr) & subtype_guid.Data4[2], -+ (guint) (guintptr) & subtype_guid.Data4[6]); - } - - return structure; diff --git a/mingw-w64-gst-plugins-bad/0006-fix-name-conflict-with-openssl-and-win32.patch b/mingw-w64-gst-plugins-bad/0006-fix-name-conflict-with-openssl-and-win32.patch new file mode 100644 index 0000000000..670f216b59 --- /dev/null +++ b/mingw-w64-gst-plugins-bad/0006-fix-name-conflict-with-openssl-and-win32.patch @@ -0,0 +1,27 @@ +From 0d3ca6391ce3c85934df0494f1588d4747fa555f Mon Sep 17 00:00:00 2001 +From: Paul Arzelier +Date: Wed, 14 Oct 2015 22:51:29 +0200 +Subject: dtls: Fix name conflict with openssl on win32 + +https://bugzilla.gnome.org/show_bug.cgi?id=756592 + +diff --git a/ext/dtls/gstdtlscertificate.c b/ext/dtls/gstdtlscertificate.c +index e37494f..95fbb83 100644 +--- a/ext/dtls/gstdtlscertificate.c ++++ b/ext/dtls/gstdtlscertificate.c +@@ -38,6 +38,13 @@ + # define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER + #endif + ++#ifdef G_OS_WIN32 ++#include ++#ifdef X509_NAME ++#undef X509_NAME ++#endif ++#endif ++ + #include + + GST_DEBUG_CATEGORY_STATIC (gst_dtls_certificate_debug); +-- +cgit v0.10.2 diff --git a/mingw-w64-gst-plugins-bad/PKGBUILD b/mingw-w64-gst-plugins-bad/PKGBUILD index 3b13c98925..7c1a0eafe1 100644 --- a/mingw-w64-gst-plugins-bad/PKGBUILD +++ b/mingw-w64-gst-plugins-bad/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=gst-plugins-bad +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.5 -pkgrel=5 +pkgver=1.6.0 +pkgrel=1 pkgdesc="GStreamer Multimedia Framework Bad Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" @@ -50,25 +51,19 @@ depends=( ) options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz - 0001-give-cc-to-gir-scanner.mingw.patch 0002-better-openjpeg2-checking.all.patch - 0004-fix-X-detection.mingw.patch 0004-port-to-openjpeg-2.1.all.patch - 0005-fix-cast-errors.patch) -md5sums=('e0bb39412cf4a48fe0397bcf3a7cd451' - 'f95294f2282016457d38882aff845e39' + 0006-fix-name-conflict-with-openssl-and-win32.patch) +md5sums=('111632f8d1d1ba39bbf3665aaafcb28c' '4545ec337afbd4d211d4b088b01ed77e' - '027bdbe72b67e7e6d1652d0baf3dcfe1' 'c269630a0a08f750da9db84df1c82c49' - '4b5d2fd35cd443a1eabd609401386457') + '559d0ee895f5072b1b6cfc28d5ccd943') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0001-give-cc-to-gir-scanner.mingw.patch patch -p1 -i ${srcdir}/0002-better-openjpeg2-checking.all.patch - patch -p1 -i ${srcdir}/0004-fix-X-detection.mingw.patch patch -p1 -i ${srcdir}/0004-port-to-openjpeg-2.1.all.patch - patch -p1 -i ${srcdir}/0005-fix-cast-errors.patch + patch -p1 -i ${srcdir}/0006-fix-name-conflict-with-openssl-and-win32.patch NOCONFIGURE=1 ./autogen.sh } @@ -76,13 +71,16 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + CPPFLAGS+=" --save-temps" + CFLAGS+=" --save-temps" + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --disable-static \ --enable-shared \ - --enable-silent-rules \ + --disable-silent-rules \ --enable-experimental \ --disable-gtk-doc \ --with-gtk=3.0 diff --git a/mingw-w64-gst-plugins-base/0003-fix-riff-includes.mingw.patch b/mingw-w64-gst-plugins-base/0003-fix-riff-includes.mingw.patch deleted file mode 100644 index f9d5409724..0000000000 --- a/mingw-w64-gst-plugins-base/0003-fix-riff-includes.mingw.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- gst-plugins-base-1.1.3/gst-libs/gst/riff/Makefile.am.orig 2013-04-26 06:20:28.000000000 +0000 -+++ gst-plugins-base-1.1.3/gst-libs/gst/riff/Makefile.am 2013-08-01 07:04:48.387735200 +0000 -@@ -48,6 +48,9 @@ - --pkg gstreamer-audio-@GST_API_VERSION@ \ - --pkg-export gstreamer-riff-@GST_API_VERSION@ \ - --add-init-section="gst_init(NULL,NULL);" \ -+ --cflags-begin \ -+ -I $(srcdir)/../../ \ -+ --cflags-end \ - --output $@ \ - $(gir_headers) \ - $(gir_sources) diff --git a/mingw-w64-gst-plugins-base/0004-fix-X-detection.mingw.patch b/mingw-w64-gst-plugins-base/0004-fix-X-detection.mingw.patch deleted file mode 100644 index f42ab1bc61..0000000000 --- a/mingw-w64-gst-plugins-base/0004-fix-X-detection.mingw.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- common/m4/gst-x11.m4.orig 2012-03-27 11:24:15.000000000 +0400 -+++ common/m4/gst-x11.m4 2014-07-10 20:46:24.623600000 +0400 -@@ -9,7 +9,9 @@ - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - - dnl now try to find the HEADER -- AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no") -+ HAVE_X="yes" -+ AC_CHECK_HEADER([X11/Xlib.h], [], [HAVE_X="no"], [AC_INCLUDES_DEFAULT]) -+ AC_CHECK_HEADER([X11/XKBlib.h], [], [HAVE_X="no"], [AC_INCLUDES_DEFAULT]) - - if test "x$HAVE_X" = "xno" - then diff --git a/mingw-w64-gst-plugins-base/0009-fix-casting-error.patch b/mingw-w64-gst-plugins-base/0009-fix-casting-error.patch deleted file mode 100644 index 2fb2de56ab..0000000000 --- a/mingw-w64-gst-plugins-base/0009-fix-casting-error.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gst-plugins-base-1.3.1/gst/playback/gstplaybin2.c.orig 2014-05-18 16:13:43.062000000 +0400 -+++ gst-plugins-base-1.3.1/gst/playback/gstplaybin2.c 2014-05-18 16:14:14.683200000 +0400 -@@ -3213,7 +3213,7 @@ - gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, - _uridecodebin_event_probe, group, NULL); - g_object_set_data (G_OBJECT (pad), "playbin.event_probe_id", -- (gpointer) group_id_probe_handler); -+ (gpointer) (guintptr) group_id_probe_handler); - - if (changed) { - int signal; diff --git a/mingw-w64-gst-plugins-base/PKGBUILD b/mingw-w64-gst-plugins-base/PKGBUILD index 3d69ec6954..fdbc845528 100644 --- a/mingw-w64-gst-plugins-base/PKGBUILD +++ b/mingw-w64-gst-plugins-base/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=gst-plugins-base +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.5 -pkgrel=2 +pkgver=1.6.0 +pkgrel=1 pkgdesc="GStreamer Multimedia Framework Base Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" @@ -25,28 +26,15 @@ depends=("${MINGW_PACKAGE_PREFIX}-freetype" options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz 0002-fix-test-running.mingw.patch - 0003-fix-riff-includes.mingw.patch - 0004-fix-X-detection.mingw.patch - 0006-disable-sse-detection.mingw.patch - 0009-fix-casting-error.patch - give-cc-to-gir-scanner.mingw.patch) -md5sums=('357165af625c0ca353ab47c5d843920e' + 0006-disable-sse-detection.mingw.patch) +md5sums=('3c223f1d2716e1861ba84287ea02b164' '006091acfeedd194fa804ea36958ea3c' - '571194f25c8c765b5b5e5739df1271ae' - 'eb0a27e74755e4ee1c5259c8c4ab40e8' - 'ee35e5a95bdcb9e7f7f5a8848dd6dc4c' - '59679a91af5eea1f303c6ee59441b04a' - '4d45f704f60a5c63b6c4c7d448d2b152') + 'ee35e5a95bdcb9e7f7f5a8848dd6dc4c') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0002-fix-test-running.mingw.patch - patch -p1 -i ${srcdir}/0003-fix-riff-includes.mingw.patch - patch -p0 -i ${srcdir}/0004-fix-X-detection.mingw.patch patch -p1 -i ${srcdir}/0006-disable-sse-detection.mingw.patch - patch -p1 -i ${srcdir}/0009-fix-casting-error.patch - patch -p1 -i ${srcdir}/give-cc-to-gir-scanner.mingw.patch - NOCONFIGURE=1 ./autogen.sh } diff --git a/mingw-w64-gst-plugins-base/give-cc-to-gir-scanner.mingw.patch b/mingw-w64-gst-plugins-base/give-cc-to-gir-scanner.mingw.patch deleted file mode 100644 index dee06d219f..0000000000 --- a/mingw-w64-gst-plugins-base/give-cc-to-gir-scanner.mingw.patch +++ /dev/null @@ -1,203 +0,0 @@ -diff -Naur gst-plugins-base-1.2.4-orig/gst-libs/gst/allocators/Makefile.am gst-plugins-base-1.2.4/gst-libs/gst/allocators/Makefile.am ---- gst-plugins-base-1.2.4-orig/gst-libs/gst/allocators/Makefile.am 2013-09-24 17:04:27.000000000 +0400 -+++ gst-plugins-base-1.2.4/gst-libs/gst/allocators/Makefile.am 2014-04-22 09:19:15.574800000 +0400 -@@ -25,13 +25,15 @@ - GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstAllocators \ - --nsversion=@GST_API_VERSION@ \ - --strip-prefix=Gst \ - --warn-all \ - --c-include "gst/allocators/allocators.h" \ - -I$(top_srcdir)/gst-libs \ - -I$(top_builddir)/gst-libs \ -+ $(GST_BASE_CFLAGS) \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --library=libgstallocators-@GST_API_VERSION@.la \ - --include=Gst-@GST_API_VERSION@ \ -diff -Naur gst-plugins-base-1.2.4-orig/gst-libs/gst/app/Makefile.am gst-plugins-base-1.2.4/gst-libs/gst/app/Makefile.am ---- gst-plugins-base-1.2.4-orig/gst-libs/gst/app/Makefile.am 2013-09-24 17:04:27.000000000 +0400 -+++ gst-plugins-base-1.2.4/gst-libs/gst/app/Makefile.am 2014-04-22 09:19:34.792000000 +0400 -@@ -40,13 +40,15 @@ - GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstApp \ - --nsversion=@GST_API_VERSION@ \ - --strip-prefix=Gst \ - --warn-all \ - --c-include "gst/app/app.h" \ - -I$(top_srcdir)/gst-libs \ - -I$(top_builddir)/gst-libs \ -+ $(GST_BASE_CFLAGS) \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ - --library=libgstapp-@GST_API_VERSION@.la \ -diff -Naur gst-plugins-base-1.2.4-orig/gst-libs/gst/audio/Makefile.am gst-plugins-base-1.2.4/gst-libs/gst/audio/Makefile.am ---- gst-plugins-base-1.2.4-orig/gst-libs/gst/audio/Makefile.am 2013-09-24 17:04:27.000000000 +0400 -+++ gst-plugins-base-1.2.4/gst-libs/gst/audio/Makefile.am 2014-04-22 09:19:51.849000000 +0400 -@@ -86,12 +86,14 @@ - GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstAudio \ - --nsversion=@GST_API_VERSION@ \ - --warn-all \ - --strip-prefix=Gst \ - -I$(top_srcdir)/gst-libs \ - -I$(top_builddir)/gst-libs \ -+ $(GST_BASE_CFLAGS) \ - --c-include "gst/audio/audio.h" \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ -diff -Naur gst-plugins-base-1.2.4-orig/gst-libs/gst/fft/Makefile.am gst-plugins-base-1.2.4/gst-libs/gst/fft/Makefile.am ---- gst-plugins-base-1.2.4-orig/gst-libs/gst/fft/Makefile.am 2013-09-24 17:04:27.000000000 +0400 -+++ gst-plugins-base-1.2.4/gst-libs/gst/fft/Makefile.am 2014-04-22 09:20:55.135400000 +0400 -@@ -54,13 +54,15 @@ - GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstFft \ - --nsversion=@GST_API_VERSION@ \ - --strip-prefix=Gst \ - --warn-all \ - --c-include "gst/fft/fft.h" \ - -I$(top_srcdir)/gst-libs \ - -I$(top_builddir)/gst-libs \ -+ $(GST_BASE_CFLAGS) \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --library=libgstfft-@GST_API_VERSION@.la \ - --include=Gst-@GST_API_VERSION@ \ -diff -Naur gst-plugins-base-1.2.4-orig/gst-libs/gst/pbutils/Makefile.am gst-plugins-base-1.2.4/gst-libs/gst/pbutils/Makefile.am ---- gst-plugins-base-1.2.4-orig/gst-libs/gst/pbutils/Makefile.am 2013-09-24 17:04:27.000000000 +0400 -+++ gst-plugins-base-1.2.4/gst-libs/gst/pbutils/Makefile.am 2014-04-22 09:21:11.617000000 +0400 -@@ -72,13 +72,15 @@ - GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstPbutils \ - --nsversion=@GST_API_VERSION@ \ - --strip-prefix=Gst \ - --warn-all \ - --c-include "gst/pbutils/pbutils.h" \ - -I$(top_srcdir)/gst-libs \ - -I$(top_builddir)/gst-libs \ -+ $(GST_BASE_CFLAGS) \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ - --add-include-path="$(top_builddir)/gst-libs/gst/tag/" \ -diff -Naur gst-plugins-base-1.2.4-orig/gst-libs/gst/riff/Makefile.am gst-plugins-base-1.2.4/gst-libs/gst/riff/Makefile.am ---- gst-plugins-base-1.2.4-orig/gst-libs/gst/riff/Makefile.am 2014-04-22 09:12:08.460800000 +0400 -+++ gst-plugins-base-1.2.4/gst-libs/gst/riff/Makefile.am 2014-04-22 09:21:25.272200000 +0400 -@@ -29,10 +29,12 @@ - GstRiff-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstRiff \ - --nsversion=@GST_API_VERSION@ \ - --strip-prefix=Gst \ - --warn-all \ -+ $(GST_BASE_CFLAGS) \ - --c-include "gst/riff/riff.h" \ - --add-include-path=$(builddir)/../tag \ - --add-include-path=$(builddir)/../audio \ -diff -Naur gst-plugins-base-1.2.4-orig/gst-libs/gst/rtp/Makefile.am gst-plugins-base-1.2.4/gst-libs/gst/rtp/Makefile.am ---- gst-plugins-base-1.2.4-orig/gst-libs/gst/rtp/Makefile.am 2013-09-24 17:04:27.000000000 +0400 -+++ gst-plugins-base-1.2.4/gst-libs/gst/rtp/Makefile.am 2014-04-22 09:21:40.301600000 +0400 -@@ -33,12 +33,14 @@ - GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstRtp \ - --nsversion=@GST_API_VERSION@ \ - --strip-prefix=Gst \ - --warn-all \ - --c-include "gst/rtp/rtp.h" \ - -I$(top_srcdir)/gst-libs \ -+ $(GST_BASE_CFLAGS) \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ - --library=libgstrtp-@GST_API_VERSION@.la \ -diff -Naur gst-plugins-base-1.2.4-orig/gst-libs/gst/rtsp/Makefile.am gst-plugins-base-1.2.4/gst-libs/gst/rtsp/Makefile.am ---- gst-plugins-base-1.2.4-orig/gst-libs/gst/rtsp/Makefile.am 2013-09-24 17:04:27.000000000 +0400 -+++ gst-plugins-base-1.2.4/gst-libs/gst/rtsp/Makefile.am 2014-04-22 09:21:55.065200000 +0400 -@@ -59,13 +59,15 @@ - GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstRtsp \ - --nsversion=@GST_API_VERSION@ \ - --strip-prefix=Gst \ - --warn-all \ - --c-include "gst/rtsp/rtsp.h" \ - -I$(top_builddir)/gst-libs \ - -I$(top_srcdir)/gst-libs \ -+ $(GST_BASE_CFLAGS) \ - --add-include-path=$(builddir)/../sdp \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --library=libgstrtsp-@GST_API_VERSION@.la \ -diff -Naur gst-plugins-base-1.2.4-orig/gst-libs/gst/sdp/Makefile.am gst-plugins-base-1.2.4/gst-libs/gst/sdp/Makefile.am ---- gst-plugins-base-1.2.4-orig/gst-libs/gst/sdp/Makefile.am 2013-09-24 17:04:27.000000000 +0400 -+++ gst-plugins-base-1.2.4/gst-libs/gst/sdp/Makefile.am 2014-04-22 09:22:08.571800000 +0400 -@@ -21,12 +21,14 @@ - GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstSdp \ - --nsversion=@GST_API_VERSION@ \ - --strip-prefix=Gst \ - --warn-all \ - --c-include "gst/sdp/sdp.h" \ - -I$(top_srcdir)/gst-libs \ -+ $(GST_BASE_CFLAGS) \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --library=libgstsdp-@GST_API_VERSION@.la \ - --include=Gst-@GST_API_VERSION@ \ -diff -Naur gst-plugins-base-1.2.4-orig/gst-libs/gst/tag/Makefile.am gst-plugins-base-1.2.4/gst-libs/gst/tag/Makefile.am ---- gst-plugins-base-1.2.4-orig/gst-libs/gst/tag/Makefile.am 2013-09-24 17:04:27.000000000 +0400 -+++ gst-plugins-base-1.2.4/gst-libs/gst/tag/Makefile.am 2014-04-22 09:22:22.923400000 +0400 -@@ -32,13 +32,15 @@ - GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstTag \ - --nsversion=@GST_API_VERSION@ \ - --strip-prefix=Gst \ - --warn-all \ - --c-include "gst/tag/tag.h" \ - -I$(top_srcdir)/gst-libs \ - -I$(top_builddir)/gst-libs \ -+ $(GST_BASE_CFLAGS) \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ - --library=libgsttag-@GST_API_VERSION@.la \ -diff -Naur gst-plugins-base-1.2.4-orig/gst-libs/gst/video/Makefile.am gst-plugins-base-1.2.4/gst-libs/gst/video/Makefile.am ---- gst-plugins-base-1.2.4-orig/gst-libs/gst/video/Makefile.am 2013-09-24 17:04:27.000000000 +0400 -+++ gst-plugins-base-1.2.4/gst-libs/gst/video/Makefile.am 2014-04-22 09:22:40.899600000 +0400 -@@ -86,13 +86,15 @@ - GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstVideo \ - --nsversion=@GST_API_VERSION@ \ - --strip-prefix=Gst \ - --warn-all \ - --c-include "gst/video/video.h" \ - -I$(top_srcdir)/gst-libs \ - -I$(top_builddir)/gst-libs \ -+ $(GST_BASE_CFLAGS) \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ - --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ - --library=libgstvideo-@GST_API_VERSION@.la \ diff --git a/mingw-w64-gst-plugins-good/0004-fix-X-detection.mingw.patch b/mingw-w64-gst-plugins-good/0004-fix-X-detection.mingw.patch deleted file mode 100644 index f42ab1bc61..0000000000 --- a/mingw-w64-gst-plugins-good/0004-fix-X-detection.mingw.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- common/m4/gst-x11.m4.orig 2012-03-27 11:24:15.000000000 +0400 -+++ common/m4/gst-x11.m4 2014-07-10 20:46:24.623600000 +0400 -@@ -9,7 +9,9 @@ - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - - dnl now try to find the HEADER -- AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no") -+ HAVE_X="yes" -+ AC_CHECK_HEADER([X11/Xlib.h], [], [HAVE_X="no"], [AC_INCLUDES_DEFAULT]) -+ AC_CHECK_HEADER([X11/XKBlib.h], [], [HAVE_X="no"], [AC_INCLUDES_DEFAULT]) - - if test "x$HAVE_X" = "xno" - then diff --git a/mingw-w64-gst-plugins-good/PKGBUILD b/mingw-w64-gst-plugins-good/PKGBUILD index fce40d6a10..bfa5c7dbe6 100644 --- a/mingw-w64-gst-plugins-good/PKGBUILD +++ b/mingw-w64-gst-plugins-good/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=gst-plugins-good +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.5 -pkgrel=2 +pkgver=1.6.0 +pkgrel=1 pkgdesc="GStreamer Multimedia Framework Base Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" @@ -27,16 +28,13 @@ depends=("${MINGW_PACKAGE_PREFIX}-cairo" ) options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz - 0002-fix-test-running.mingw.patch - 0004-fix-X-detection.mingw.patch) -md5sums=('eaf1a6daf73749bc423feac301d60038' - 'b4ff5991217a2544fa84aae471057299' - 'eb0a27e74755e4ee1c5259c8c4ab40e8') + 0002-fix-test-running.mingw.patch) +md5sums=('a28d0d46c929f0064432d2fd94c12ef1' + 'b4ff5991217a2544fa84aae471057299') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0002-fix-test-running.mingw.patch - patch -p0 -i ${srcdir}/0004-fix-X-detection.mingw.patch NOCONFIGURE=1 ./autogen.sh } diff --git a/mingw-w64-gst-plugins-ugly/PKGBUILD b/mingw-w64-gst-plugins-ugly/PKGBUILD index 2b51bf9b7e..d6862a184c 100644 --- a/mingw-w64-gst-plugins-ugly/PKGBUILD +++ b/mingw-w64-gst-plugins-ugly/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: AlexWMF _realname=gst-plugins-ugly +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.5 -pkgrel=2 +pkgver=1.6.0 +pkgrel=1 pkgdesc="GStreamer Multimedia Framework Ugly Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" @@ -26,7 +27,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-a52dec" ) options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz) -md5sums=('6954beed7bb9a93e426dee543ff46393') +md5sums=('7df6ab044d7754c1087375ce5f770be8') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -35,6 +36,7 @@ prepare() { } build() { + rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ @@ -46,6 +48,7 @@ build() { --enable-silent-rules \ --enable-experimental \ --disable-gtk-doc + make } diff --git a/mingw-w64-gst-python/0002-msys2-fix-linking-errors.patch b/mingw-w64-gst-python/0002-msys2-fix-linking-errors.patch index 3b85916533..4e3105aacf 100644 --- a/mingw-w64-gst-python/0002-msys2-fix-linking-errors.patch +++ b/mingw-w64-gst-python/0002-msys2-fix-linking-errors.patch @@ -33,9 +33,9 @@ index 042c2bc..4a9b60d 100644 $(PYTHON_INCLUDES) libgstpythonplugin_la_SOURCES = gstpythonplugin.c --libgstpythonplugin_la_LDFLAGS = -avoid-version +-libgstpythonplugin_la_LDFLAGS = -avoid-version -shrext $(PYTHON_SO) -libgstpythonplugin_la_LIBADD = $(PYTHON_LIBS) $(PYGOBJECT_LIBS) $(GST_LIBS) -+libgstpythonplugin_la_LDFLAGS = -avoid-version -no-undefined ++libgstpythonplugin_la_LDFLAGS = -avoid-version -no-undefined -shrext $(PYTHON_SO) +libgstpythonplugin_la_LIBADD = $(PYTHON_LIBS) $(PYGOBJECT_LIBS) $(GST_LIBS) -lgmodule-2.0 libgstpythonplugin_la_CFLAGS = $(GST_CFLAGS) $(PYGOBJECT_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(PYTHON_INCLUDES) -- diff --git a/mingw-w64-gst-python/PKGBUILD b/mingw-w64-gst-python/PKGBUILD index c3c3bae386..9c1d051264 100644 --- a/mingw-w64-gst-python/PKGBUILD +++ b/mingw-w64-gst-python/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Lubosz Sarnecki _realname=gst-python +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") -pkgver=1.4.0 +pkgver=1.6.0 pkgrel=1 pkgdesc="GStreamer GObject Introspection overrides for Python 3 (mingw-w64)" arch=('any') @@ -20,9 +21,9 @@ source=(http://gstreamer.freedesktop.org/src/gst-python/${_realname}-${pkgver}.t '0002-msys2-fix-linking-errors.patch' '0004-add-overrides.patch' '0005-unix-override-dir.patch') -md5sums=('72e3ba811db671366162bbf75a01ed37' +md5sums=('498792e9e1b61a90de1e28cf04e88a9e' 'eb52a3ef8270c2d263c79799bcaf377a' - 'bebc4a64a2e4533c8cb7ec0eef5fc564' + '459fd4024782338dfb2348b22f92e9bf' '9241cc5807a4ef87548b6d5405141bf1' 'cf4576d2775e01c2147801d5614fa1b2') diff --git a/mingw-w64-gstreamer/0004-fix-X-detection.mingw.patch b/mingw-w64-gstreamer/0004-fix-X-detection.mingw.patch index f42ab1bc61..1cf566b8be 100644 --- a/mingw-w64-gstreamer/0004-fix-X-detection.mingw.patch +++ b/mingw-w64-gstreamer/0004-fix-X-detection.mingw.patch @@ -1,9 +1,9 @@ --- common/m4/gst-x11.m4.orig 2012-03-27 11:24:15.000000000 +0400 +++ common/m4/gst-x11.m4 2014-07-10 20:46:24.623600000 +0400 @@ -9,7 +9,9 @@ - CPPFLAGS="$CPPFLAGS $X_CFLAGS" dnl now try to find the HEADER + HAVE_X="no" - AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no") + HAVE_X="yes" + AC_CHECK_HEADER([X11/Xlib.h], [], [HAVE_X="no"], [AC_INCLUDES_DEFAULT]) diff --git a/mingw-w64-gstreamer/PKGBUILD b/mingw-w64-gstreamer/PKGBUILD index 58c5e6ad16..c9d7e3ab27 100644 --- a/mingw-w64-gstreamer/PKGBUILD +++ b/mingw-w64-gstreamer/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=gstreamer +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.5 -pkgrel=2 +pkgver=1.6.0 +pkgrel=1 pkgdesc="GStreamer Multimedia Framework (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" @@ -22,17 +23,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gmp" "${MINGW_PACKAGE_PREFIX}-gsl") options=(!libtool strip staticlibs) -source=("${url}/src/gstreamer/gstreamer-${pkgver}.tar.xz" - 'give-cc-to-gir-scanner.mingw.patch' - '0004-fix-X-detection.mingw.patch') -md5sums=('88a9289c64a4950ebb4f544980234289' - '59215d83b4c39aac03848cc9b4eb3f25' - 'eb0a27e74755e4ee1c5259c8c4ab40e8') +source=("${url}/src/gstreamer/gstreamer-${pkgver}.tar.xz") +md5sums=('201c15ac4b956833f7f6774485433969') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/give-cc-to-gir-scanner.mingw.patch - patch -p0 -i ${srcdir}/0004-fix-X-detection.mingw.patch autoreconf -fi } @@ -48,6 +43,8 @@ build() { #cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + CPPFLAGS+=" -D_POSIX_C_SOURCE" ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ diff --git a/mingw-w64-gstreamer/give-cc-to-gir-scanner.mingw.patch b/mingw-w64-gstreamer/give-cc-to-gir-scanner.mingw.patch deleted file mode 100644 index c88d2f4869..0000000000 --- a/mingw-w64-gstreamer/give-cc-to-gir-scanner.mingw.patch +++ /dev/null @@ -1,50 +0,0 @@ ---- gstreamer-1.2.4/gst/Makefile.am.orig 2014-04-22 07:57:37.157600000 +0400 -+++ gstreamer-1.2.4/gst/Makefile.am 2014-04-22 08:01:43.606400000 +0400 -@@ -279,6 +279,7 @@ - - Gst-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_API_VERSION@.la - $(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace Gst \ - --nsversion=@GST_API_VERSION@ \ - --warn-all \ ---- gstreamer-1.2.4/libs/gst/base/Makefile.am.orig 2014-04-22 08:33:48.034800000 +0400 -+++ gstreamer-1.2.4/libs/gst/base/Makefile.am 2014-04-22 08:35:48.248400000 +0400 -@@ -76,6 +76,7 @@ - GstBase-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstbase-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstBase \ - --nsversion=@GST_API_VERSION@ \ - --warn-all \ ---- gstreamer-1.2.4/libs/gst/check/Makefile.am.orig 2014-04-22 08:34:00.031200000 +0400 -+++ gstreamer-1.2.4/libs/gst/check/Makefile.am 2014-04-22 08:35:41.930400000 +0400 -@@ -133,6 +133,7 @@ - GstCheck-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcheck-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstCheck \ - --nsversion=@GST_API_VERSION@ \ - --strip-prefix=Gst \ ---- gstreamer-1.2.4/libs/gst/controller/Makefile.am.orig 2014-04-22 08:34:10.264800000 +0400 -+++ gstreamer-1.2.4/libs/gst/controller/Makefile.am 2014-04-22 08:35:35.908800000 +0400 -@@ -50,6 +50,7 @@ - GstController-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcontroller-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstController \ - --nsversion=@GST_API_VERSION@ \ - --warn-all \ ---- gstreamer-1.2.4/libs/gst/net/Makefile.am.orig 2014-04-22 08:34:41.496000000 +0400 -+++ gstreamer-1.2.4/libs/gst/net/Makefile.am 2014-04-22 08:35:18.655200000 +0400 -@@ -49,6 +49,7 @@ - GstNet-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstnet-@GST_API_VERSION@.la - $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ - GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ -+ CC="$(CC)" \ - $(INTROSPECTION_SCANNER) -v --namespace GstNet \ - --strip-prefix=Gst \ - --warn-all \ From f52856716f110c29349001921c174ba897c3ffd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BERTHO?= Date: Thu, 15 Oct 2015 19:45:37 +0200 Subject: [PATCH 1732/2060] Fix muparser build process --- mingw-w64-muparser/CMakeLists.txt | 36 +++++++++++++++++++++++++++++++ mingw-w64-muparser/PKGBUILD | 27 +++++++++++------------ 2 files changed, 49 insertions(+), 14 deletions(-) create mode 100644 mingw-w64-muparser/CMakeLists.txt diff --git a/mingw-w64-muparser/CMakeLists.txt b/mingw-w64-muparser/CMakeLists.txt new file mode 100644 index 0000000000..030731e93a --- /dev/null +++ b/mingw-w64-muparser/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required(VERSION 2.6) + +project(muparser CXX) + +include_directories( + include +) + +file( + GLOB + source_files + src/*.cpp +) + +add_library( + muparser + SHARED + ${source_files} +) + +file( + GLOB + header_files + include/* +) + +install( + TARGETS muparser + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) + +install( + FILES ${header_files} DESTINATION include +) \ No newline at end of file diff --git a/mingw-w64-muparser/PKGBUILD b/mingw-w64-muparser/PKGBUILD index 6c3fa2c6d7..862f7e3a2f 100644 --- a/mingw-w64-muparser/PKGBUILD +++ b/mingw-w64-muparser/PKGBUILD @@ -9,29 +9,28 @@ arch=('i686' 'x86_64') url="http://muparser.sourceforge.net/" license=('custom') options=('!makeflags') -source=("${_realname}-${pkgver}.zip::https://drive.google.com/uc?export=download&id=0BzuB-ydOOoduejdwdTQwcF9JLTA") -sha1sums=('78db09680cafd5db4fd08a5d472afd2fa65f9274') +source=("${_realname}-${pkgver}.zip::https://drive.google.com/uc?export=download&id=0BzuB-ydOOoduejdwdTQwcF9JLTA" "CMakeLists.txt") +sha1sums=('78db09680cafd5db4fd08a5d472afd2fa65f9274' '76f802239c1a5e0bff713db99ce60a9956a20257') + +prepare() { + cd $srcdir/${_realname}_v${pkgver//./_} + cp "$srcdir/CMakeLists.txt" . +} build() { cd $srcdir/${_realname}_v${pkgver//./_} - ./configure \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} \ - --build=${MINGW_CHOST} \ - --prefix=${MINGW_PREFIX} \ - --enable-shared=yes \ - --enable-samples=no \ - --enable-debug=no - + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ + -DCMAKE_CXX_COMPILER=${MINGW_PREFIX}/bin/g++.exe \ + -DCMAKE_MAKE_PROGRAM=${MINGW_PREFIX}/bin/mingw32-make.exe \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} . mingw32-make } package() { cd $srcdir/${_realname}_v${pkgver//./_} mingw32-make DESTDIR=${pkgdir} install - - mkdir ${pkgdir}${MINGW_PREFIX}/bin - mv ${pkgdir}${MINGW_PREFIX}/lib/muparser.dll ${pkgdir}${MINGW_PREFIX}/bin # license install -D -m644 License.txt \ From 3a1f9d4a3f3331777b195f947cb52f2a54815f7d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 16 Oct 2015 11:51:51 +0300 Subject: [PATCH 1733/2060] qt5: WIP update to 5.5.1 --- .../0006-qt-5.3.0-win_flex-replace.patch | 27 ++++++------------- mingw-w64-qt5/PKGBUILD | 6 ++--- 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch b/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch index 719583ae5d..3849e8b06a 100644 --- a/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch +++ b/mingw-w64-qt5/0006-qt-5.3.0-win_flex-replace.patch @@ -4,8 +4,8 @@ diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/preprocessor/prepro @@ -41,14 +41,14 @@ $$ANGLE_DIR/src/compiler/preprocessor/Token.cpp - # NOTE: 'win_flex' and 'bison' can be found in qt5/gnuwin32/bin --flex.commands = $$addGnuPath(win_flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} + # NOTE: 'flex' and 'bison' can be found in qt5/gnuwin32/bin +-flex.commands = $$addGnuPath(flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} +flex.commands = flex --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} flex.output = ${QMAKE_FILE_BASE}.cpp flex.input = FLEX_SOURCES @@ -13,7 +13,7 @@ diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/preprocessor/prepro flex.variable_out = GENERATED_SOURCES QMAKE_EXTRA_COMPILERS += flex --bison.commands = $$addGnuPath(win_bison) --no-lines --skeleton=yacc.c --output=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} +-bison.commands = $$addGnuPath(bison) --no-lines --skeleton=yacc.c --output=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} +bison.commands = bison --no-lines --skeleton=yacc.c --output=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} bison.output = ${QMAKE_FILE_BASE}.cpp bison.input = BISON_SOURCES @@ -21,11 +21,11 @@ diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/preprocessor/prepro diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/translator.pro b/qtbase/src/angle/src/compiler/translator.pro --- a/qtbase/src/angle/src/compiler/translator.pro 2014-05-02 23:06:13.969569900 +0100 +++ b/qtbase/src/angle/src/compiler/translator.pro 2014-05-02 23:06:33.467685100 +0100 -@@ -132,14 +132,14 @@ - } +@@ -163,14 +163,14 @@ - # NOTE: 'win_flex' and 'bison' can be found in qt5/gnuwin32/bin --flex.commands = $$addGnuPath(win_flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} + + # NOTE: 'flex' and 'bison' can be found in qt5/gnuwin32/bin +-flex.commands = $$addGnuPath(flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} +flex.commands = flex --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} flex.output = ${QMAKE_FILE_BASE}_lex.cpp flex.input = FLEX_SOURCES @@ -33,22 +33,11 @@ diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/translator.pro b/qt flex.variable_out = GENERATED_SOURCES QMAKE_EXTRA_COMPILERS += flex --bison.commands = $$addGnuPath(win_bison) --no-lines --skeleton=yacc.c --defines=${QMAKE_FILE_BASE}_tab.h \ +-bison.commands = $$addGnuPath(bison) --no-lines --skeleton=yacc.c --defines=${QMAKE_FILE_BASE}_tab.h \ +bison.commands = bison --no-lines --skeleton=yacc.c --defines=${QMAKE_FILE_BASE}_tab.h \ --output=${QMAKE_FILE_BASE}_tab.cpp ${QMAKE_FILE_NAME} bison.output = ${QMAKE_FILE_BASE}_tab.h bison.input = BISON_SOURCES -diff -urN --ignore-all-space a/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf b/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf ---- a/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf 2014-05-02 23:06:28.221385000 +0100 -+++ b/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf 2014-05-02 23:06:33.474685500 +0100 -@@ -106,7 +106,6 @@ - # A newer version of flex is required on Windows. At the moment the only - # one that appears to provide binaries and is not cygwin is winflex. - FLEX = flex --equals(QMAKE_HOST.os, Windows): FLEX = win_flex - - BIN_EXTENSION = - win32: BIN_EXTENSION = .exe diff -urN --ignore-all-space a/qtwebkit/Tools/Scripts/webkitdirs.pm b/qtwebkit/Tools/Scripts/webkitdirs.pm --- a/qtwebkit/Tools/Scripts/webkitdirs.pm 2014-05-02 23:06:28.275388100 +0100 +++ b/qtwebkit/Tools/Scripts/webkitdirs.pm 2014-05-02 23:06:33.480685800 +0100 diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index f3ebbe2430..301bb16c30 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -69,7 +69,7 @@ _opengl=desktop _opengl_for_configure="${_opengl}" pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.5.0 +_ver_base=5.5.1 # qt5-static must be kept in its own prefix hierarchy # as otherwise it will conflict with qt5 itself @@ -191,13 +191,13 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch 0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch) -md5sums=('65d5282f3dee0336da9ed1f77148952f' +md5sums=('c2a249e8795d45200d997d96860d0353' 'a2fa66089b171ebb76a6e0bda2ef4ca8' 'e3210b753ba04762de2ed4cb9c786bf1' '53edcf1df69ae8134a196292447ddaa3' 'b0b5cc641cf8ebc2660fa819bede0089' '457b97833220a81f542f529e7e0c549c' - 'e34eef5aeec14b5b2a55344392c14dc7' + 'f13cb61f49f572a2fafbad1a323be89f' '0f2e3a2f790b07442f0964f4f2f96596' 'a8f02cb5eb766e5bb8639cf8771537d2' 'ea5f1d5bf2ea4c1d69e6b5de0765adfb' From 24e7dc53bfffdc4f37ee44c158bb264af93ee201 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 16 Oct 2015 13:04:03 +0300 Subject: [PATCH 1734/2060] gimp: Rebuild. --- mingw-w64-gimp/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gimp/PKGBUILD b/mingw-w64-gimp/PKGBUILD index 6ef6f73b48..d69aaf930c 100644 --- a/mingw-w64-gimp/PKGBUILD +++ b/mingw-w64-gimp/PKGBUILD @@ -4,7 +4,7 @@ _realname=gimp pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.8.14 -pkgrel=8 +pkgrel=9 pkgdesc="GNU Image Manipulation Program (mingw-w64)" arch=('any') url="http://www.gimp.org/" From 68f96f2592e9c2dd39825b647af1f480da9507ef Mon Sep 17 00:00:00 2001 From: Andrew Chadwick Date: Sat, 17 Oct 2015 23:06:07 +0100 Subject: [PATCH 1735/2060] gtk3: backport fixes for notebook tab-drag crashes Fix some crashes seen when dragging tabs out of a notebook widget. On the win32 backend, the second or later attempt to drag a tab out of a GtkNotebook supporting reordering of tabs would segfault. https://bugzilla.gnome.org/show_bug.cgi?id=756160 This commit backports the upstream fixes below onto GTK 3.18.2. These will hopefully be incorporated into the release after 3.18.2, so this commit can be reverted when MINGW-packages builds GTK >= 3.18.3. 1. 00b39e4a82401f407a2df2e2e35a18ede88b41ea "W32: Add missing reference taking in gdk_device_virtual_grab()" 2. c8604923598aad745a65ec16eb79113c97649345 "Clean up handling of _gdk_win32_grab_cursor". 3. 25483304cdc967c374a435200416affb573583f8 "Minor cleanup. Replace a unref-and-unset combination with g_clear_object." --- ...080-backport-notebook-tab-drag-fixes.patch | 41 +++++++++++++++++++ mingw-w64-gtk3/PKGBUILD | 12 ++++-- 2 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-gtk3/0080-backport-notebook-tab-drag-fixes.patch diff --git a/mingw-w64-gtk3/0080-backport-notebook-tab-drag-fixes.patch b/mingw-w64-gtk3/0080-backport-notebook-tab-drag-fixes.patch new file mode 100644 index 0000000000..05d96fd6a3 --- /dev/null +++ b/mingw-w64-gtk3/0080-backport-notebook-tab-drag-fixes.patch @@ -0,0 +1,41 @@ +diff --git a/gdk/win32/gdkdevice-virtual.c b/gdk/win32/gdkdevice-virtual.c +index 2ed341f..b947800 100644 +--- a/gdk/win32/gdkdevice-virtual.c ++++ b/gdk/win32/gdkdevice-virtual.c +@@ -266,10 +266,9 @@ gdk_device_virtual_grab (GdkDevice *device, + { + if (GetCursor () == GDK_WIN32_CURSOR (_gdk_win32_grab_cursor)->hcursor) + SetCursor (NULL); +- g_clear_object (&_gdk_win32_grab_cursor); + } + +- _gdk_win32_grab_cursor = cursor; ++ g_set_object (&_gdk_win32_grab_cursor, cursor); + + if (_gdk_win32_grab_cursor != NULL) + SetCursor (GDK_WIN32_CURSOR (_gdk_win32_grab_cursor)->hcursor); +@@ -303,9 +302,8 @@ gdk_device_virtual_ungrab (GdkDevice *device, + { + if (GetCursor () == GDK_WIN32_CURSOR (_gdk_win32_grab_cursor)->hcursor) + SetCursor (NULL); +- g_clear_object (&_gdk_win32_grab_cursor); + } +- _gdk_win32_grab_cursor = NULL; ++ g_clear_object (&_gdk_win32_grab_cursor); + + ReleaseCapture (); + } +diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c +index d08cee0..2ae8105 100644 +--- a/gdk/x11/gdkwindow-x11.c ++++ b/gdk/x11/gdkwindow-x11.c +@@ -4933,8 +4933,7 @@ finish_drag (MoveResizeData *mv_resize) + { + gdk_window_destroy (mv_resize->moveresize_emulation_window); + mv_resize->moveresize_emulation_window = NULL; +- g_object_unref (mv_resize->moveresize_window); +- mv_resize->moveresize_window = NULL; ++ g_clear_object (&mv_resize->moveresize_window); + g_clear_pointer (&mv_resize->moveresize_pending_event, g_free); + } + diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 3db04087b9..a7cc17fe17 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -4,7 +4,7 @@ _realname=gtk3 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.18.2 -pkgrel=1 +pkgrel=2 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -30,10 +30,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" 0013-fix-mingw-w64-fstat-call.mingw.patch - 0056-missing-file-toarray-pl.patch) + 0056-missing-file-toarray-pl.patch + 0080-backport-notebook-tab-drag-fixes.patch +) md5sums=('230fd78e42419d35ff790784b457e5f2' '21789d52c1debcab59f8b6a99232de68' - 'f25cb2486d761b60e04036947552bf82') + 'f25cb2486d761b60e04036947552bf82' + '8d86218ed960cd86c8b04c987f7038e9' +) prepare() { cd "${srcdir}/gtk+-${pkgver}" @@ -42,6 +46,8 @@ prepare() { rm -f gdk/broadway/toarray.pl patch -p1 -i ${srcdir}/0056-missing-file-toarray-pl.patch + patch -Np1 -i ${srcdir}/0080-backport-notebook-tab-drag-fixes.patch + autoreconf -i } From ff21330a6b3fd36eba069761d8f7d4edd8c63c07 Mon Sep 17 00:00:00 2001 From: Josip Date: Sun, 18 Oct 2015 01:09:18 +0200 Subject: [PATCH 1736/2060] gdk-pixbuf2: introspection patch --- .../0002-gdk-pixbuf-introspection.patch | 135 +++--------------- mingw-w64-gdk-pixbuf2/PKGBUILD | 11 +- 2 files changed, 29 insertions(+), 117 deletions(-) diff --git a/mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch b/mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch index b3a4e9b2c7..ac5270ac64 100644 --- a/mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch +++ b/mingw-w64-gdk-pixbuf2/0002-gdk-pixbuf-introspection.patch @@ -1,119 +1,26 @@ -header files pached for introspection workaround - ---- gdk-pixbuf/gdk-pixbuf-animation.h Thu Mar 06 11:36:45 2014 -+++ gdk-pixbuf/gdk-pixbuf-animation.h Wed May 28 10:48:29 2014 -@@ -62,12 +62,6 @@ - - GType gdk_pixbuf_animation_get_type (void) G_GNUC_CONST; - --#ifndef __GTK_DOC_IGNORE__ --#ifdef G_OS_WIN32 --#define gdk_pixbuf_animation_new_from_file gdk_pixbuf_animation_new_from_file_utf8 --#endif --#endif -- - GdkPixbufAnimation *gdk_pixbuf_animation_new_from_file (const char *filename, - GError **error); - GdkPixbufAnimation *gdk_pixbuf_animation_new_from_stream (GInputStream *stream, -@@ -81,6 +75,16 @@ - GError **error); - GdkPixbufAnimation *gdk_pixbuf_animation_new_from_resource(const char *resource_path, - GError **error); -+ -+#ifndef __GTK_DOC_IGNORE__ -+#ifdef G_OS_WIN32 -+#define gdk_pixbuf_animation_new_from_file gdk_pixbuf_animation_new_from_file_utf8 -+ -+GdkPixbufAnimation *gdk_pixbuf_animation_new_from_file_utf8 (const char *filename, -+ GError **error); -+ -+#endif -+#endif - - #ifndef GDK_PIXBUF_DISABLE_DEPRECATED - G_DEPRECATED_FOR(g_object_ref) ---- gdk-pixbuf/gdk-pixbuf-core.h Sat Mar 15 04:09:46 2014 -+++ gdk-pixbuf/gdk-pixbuf-core.h Wed May 28 10:48:29 2014 -@@ -261,15 +261,6 @@ - - /* Simple loading */ - --#ifndef __GTK_DOC_IGNORE__ --#ifdef G_OS_WIN32 --/* DLL ABI stability hack. */ --#define gdk_pixbuf_new_from_file gdk_pixbuf_new_from_file_utf8 --#define gdk_pixbuf_new_from_file_at_size gdk_pixbuf_new_from_file_at_size_utf8 --#define gdk_pixbuf_new_from_file_at_scale gdk_pixbuf_new_from_file_at_scale_utf8 --#endif --#endif -- - GdkPixbuf *gdk_pixbuf_new_from_file (const char *filename, - GError **error); - GdkPixbuf *gdk_pixbuf_new_from_file_at_size (const char *filename, -@@ -303,28 +294,64 @@ - gboolean copy_pixels, - GError **error); - #endif -+ -+#ifndef __GTK_DOC_IGNORE__ -+#ifdef G_OS_WIN32 -+/* DLL ABI stability hack. */ -+#define gdk_pixbuf_new_from_file gdk_pixbuf_new_from_file_utf8 -+#define gdk_pixbuf_new_from_file_at_size gdk_pixbuf_new_from_file_at_size_utf8 -+#define gdk_pixbuf_new_from_file_at_scale gdk_pixbuf_new_from_file_at_scale_utf8 -+ -+GdkPixbuf *gdk_pixbuf_new_from_file_utf8 (const char *filename, -+ GError **error); -+GdkPixbuf *gdk_pixbuf_new_from_file_at_size_utf8 (const char *filename, -+ int width, -+ int height, -+ GError **error); -+GdkPixbuf *gdk_pixbuf_new_from_file_at_scale_utf8 (const char *filename, -+ int width, -+ int height, -+ gboolean preserve_aspect_ratio, -+ GError **error); -+ -+#endif -+#endif -+ - - /* Mutations */ - void gdk_pixbuf_fill (GdkPixbuf *pixbuf, - guint32 pixel); - - /* Saving */ - -+gboolean gdk_pixbuf_save (GdkPixbuf *pixbuf, -+ const char *filename, -+ const char *type, -+ GError **error, -+ ...) G_GNUC_NULL_TERMINATED; -+ -+gboolean gdk_pixbuf_savev (GdkPixbuf *pixbuf, -+ const char *filename, -+ const char *type, -+ char **option_keys, -+ char **option_values, -+ GError **error); -+ - #ifndef __GTK_DOC_IGNORE__ - #ifdef G_OS_WIN32 - /* DLL ABI stability hack. */ - #define gdk_pixbuf_save gdk_pixbuf_save_utf8 - #define gdk_pixbuf_savev gdk_pixbuf_savev_utf8 - #endif - #endif - --gboolean gdk_pixbuf_save (GdkPixbuf *pixbuf, -+gboolean gdk_pixbuf_save_utf8 (GdkPixbuf *pixbuf, - const char *filename, - const char *type, +Index: gdk-pixbuf-2.31.1/gdk-pixbuf/gdk-pixbuf-core.h +=================================================================== +--- gdk-pixbuf-2.31.1/gdk-pixbuf/gdk-pixbuf-core.h ++++ gdk-pixbuf-2.31.1/gdk-pixbuf/gdk-pixbuf-core.h +@@ -333,6 +333,21 @@ gboolean gdk_pixbuf_save (GdkP GError **error, ...) G_GNUC_NULL_TERMINATED; --gboolean gdk_pixbuf_savev (GdkPixbuf *pixbuf, -+gboolean gdk_pixbuf_savev_utf8 (GdkPixbuf *pixbuf, ++/** ++ * gdk_pixbuf_savev_utf8: ++ * @pixbuf: a #GdkPixbuf. ++ * @filename: name of file to save. ++ * @type: name of file format. ++ * @option_keys: (array zero-terminated=1): name of options to set, %NULL-terminated ++ * @option_values: (array zero-terminated=1): values for named options ++ * @error: (allow-none): return location for error, or %NULL ++ * ++ * Saves pixbuf to a file in @type, which is currently "jpeg", "png", "tiff", "ico" or "bmp". ++ * If @error is set, %FALSE will be returned. ++ * See gdk_pixbuf_save () for more details. ++ * ++ * Return value: whether an error was set ++ **/ + gboolean gdk_pixbuf_savev (GdkPixbuf *pixbuf, const char *filename, const char *type, - char **option_keys, diff --git a/mingw-w64-gdk-pixbuf2/PKGBUILD b/mingw-w64-gdk-pixbuf2/PKGBUILD index 9e17138619..5f1c09eab3 100644 --- a/mingw-w64-gdk-pixbuf2/PKGBUILD +++ b/mingw-w64-gdk-pixbuf2/PKGBUILD @@ -5,7 +5,7 @@ _realname=gdk-pixbuf2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.32.1 -pkgrel=2 +pkgrel=3 pkgdesc="An image loading library (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -26,12 +26,12 @@ source=("http://download.gnome.org/sources/gdk-pixbuf/${pkgver%.*}/gdk-pixbuf-${ 0002-gdk-pixbuf-introspection.patch) sha256sums=('4432b74f25538c7d6bcb3ca51adabdd666168955f25812a2568dc9637697f3bc' 'e8d278e30c44e973e14e3c61e8ab195621d6a9a402e0da557db4616955ca4543' - 'c22ce6c4de87c9f6e8b18452a728e4677fac18d2b51d6e536db27160c368f0c6') + 'dd496d66f0a6b369410fb4039e116ac7d6c2808c97998932a1f8f70b58f88ce2') prepare() { cd ${srcdir}/gdk-pixbuf-${pkgver} patch -p1 -i ${srcdir}/0001-Use-a-regex-to-properly-export-the-symbols.patch - patch -p0 -i ${srcdir}/0002-gdk-pixbuf-introspection.patch + patch -p1 -i ${srcdir}/0002-gdk-pixbuf-introspection.patch autoreconf -fi } @@ -58,6 +58,11 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" + + #get rid of "_utf8" sufix in function names + sed -i 's/\( gdk-pixbuf/GdkPixbuf-2.0.typelib + make DESTDIR="${pkgdir}" install mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gdk-pixbuf-2.0/2.10.0/loaders install -Dm644 "${srcdir}/gdk-pixbuf-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" From ec0c4e9181234fc92d5a07115bf916e9168bbd11 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 19 Oct 2015 11:19:17 +0300 Subject: [PATCH 1737/2060] harfbuzz: Update to 1.0.6 --- mingw-w64-harfbuzz/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index ec52898250..5c237d192a 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -4,7 +4,7 @@ _realname=harfbuzz pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.4 +pkgver=1.0.6 pkgrel=1 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cairo" options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu support") source=("http://www.freedesktop.org/software/harfbuzz/release/${_realname}-${pkgver}.tar.bz2") -sha256sums=('b030373457e7c00d3a7920f15e6fcd35defac3c4e44cd14ed85869030df74381') +sha256sums=('f616a7fbdc78a627043f9029000bf08c0c71df59cde4143fc92a014f6a993b26') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 8cc42045e245bca095bb1c880a81f00a2a3ffbf3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 19 Oct 2015 11:19:31 +0300 Subject: [PATCH 1738/2060] libusb: Update to 1.0.20 --- mingw-w64-libusb/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libusb/PKGBUILD b/mingw-w64-libusb/PKGBUILD index 106d8964e5..851038e59b 100644 --- a/mingw-w64-libusb/PKGBUILD +++ b/mingw-w64-libusb/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libusb +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.19 -pkgrel=3 +pkgver=1.0.20 +pkgrel=1 pkgdesc="Library that provides generic access to USB devices (mingw-w64)" arch=('any') url="http://libusb.info/" @@ -11,7 +12,7 @@ license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' 'strip') source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.bz2") -md5sums=('f9e2bb5879968467e5ca756cb4e1fa7e') +md5sums=('1d4eb194eaaa2bcfbba28102768c7dbf') build() { #export lt_cv_deplibs_check_method='pass_all' @@ -24,7 +25,7 @@ build() { --enable-shared \ --enable-static - make + make -j1 } check() { From 4b86d3c1716bb339023d816796c2b5610664e355 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 19 Oct 2015 10:19:49 +0200 Subject: [PATCH 1739/2060] gspell: new package. --- mingw-w64-gspell/PKGBUILD | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 mingw-w64-gspell/PKGBUILD diff --git a/mingw-w64-gspell/PKGBUILD b/mingw-w64-gspell/PKGBUILD new file mode 100644 index 0000000000..073704fa91 --- /dev/null +++ b/mingw-w64-gspell/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer: Andrea Zagli + +_realname=gspell +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.1.0 +pkgrel=1 +arch=('any') +pkgdesc="Spell-checking library for GTK+ (mingw-w64)" +options=(strip staticlibs) +depends=("${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gtksourceview3" + "${MINGW_PACKAGE_PREFIX}-iso-codes" + "${MINGW_PACKAGE_PREFIX}-enchant" + "${MINGW_PACKAGE_PREFIX}-libxml2") +makedepends=("${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +license=("GPL 2") +url="http://www.gnome.org" +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) +sha256sums=('8c10c5c447ca8c4a230516bd89bcfb00791fe3b4a7bbd4f34a53c72505db9628') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + autoreconf -sf +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + + ../${_realname}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-introspection + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + + make DESTDIR=${pkgdir} install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} From b0cbe82739d27eb4b9acbbfb09d9cf114a7517f0 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 19 Oct 2015 10:20:14 +0200 Subject: [PATCH 1740/2060] latexila: updated to 3.18.0. --- mingw-w64-latexila/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD index 9d36199740..26ece8c428 100644 --- a/mingw-w64-latexila/PKGBUILD +++ b/mingw-w64-latexila/PKGBUILD @@ -3,7 +3,7 @@ _realname=latexila pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.2 +pkgver=3.18.0 pkgrel=1 arch=('any') pkgdesc="LaTeX editor designed for the GNOME desktop (mingw-w64)" @@ -20,7 +20,7 @@ url="http://www.gnome.org" install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) -sha256sums=('5ad20a2acdb8c93dea5aa175a219e62efe5f4a7ffb67bc52ff6faf0c6f42bad3' +sha256sums=('595506ef26a56ed015b718f2127e47bda14281fd54df47f9cf8e91831e6d6cb4' '94159afb2c0f0688c375ddcce3bf7750e7179c40d394847c665bc492632e3942') prepare() { From 858a8cb914815f50c30324d488d47337a2753a60 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 19 Oct 2015 11:01:58 +0200 Subject: [PATCH 1741/2060] latexila: missing gspell dependency and gtk-update-icon-cache. --- mingw-w64-latexila/PKGBUILD | 4 ++-- mingw-w64-latexila/latexila-i686.install | 1 + mingw-w64-latexila/latexila-x86_64.install | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD index 26ece8c428..e7f13593da 100644 --- a/mingw-w64-latexila/PKGBUILD +++ b/mingw-w64-latexila/PKGBUILD @@ -4,14 +4,14 @@ _realname=latexila pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.18.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="LaTeX editor designed for the GNOME desktop (mingw-w64)" options=(strip staticlibs) depends=("${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" "${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-gtksourceview3" - "${MINGW_PACKAGE_PREFIX}-gtkspell3" + "${MINGW_PACKAGE_PREFIX}-gspell" "${MINGW_PACKAGE_PREFIX}-libgee") makedepends=("${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") diff --git a/mingw-w64-latexila/latexila-i686.install b/mingw-w64-latexila/latexila-i686.install index 375e708c36..b5742c7285 100644 --- a/mingw-w64-latexila/latexila-i686.install +++ b/mingw-w64-latexila/latexila-i686.install @@ -1,5 +1,6 @@ post_install() { mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas + mingw32/bin/gtk-update-icon-cache-3.0 -f -t /mingw32/share/icons/hicolor } post_upgrade() { diff --git a/mingw-w64-latexila/latexila-x86_64.install b/mingw-w64-latexila/latexila-x86_64.install index d43ee14ce7..6556035471 100644 --- a/mingw-w64-latexila/latexila-x86_64.install +++ b/mingw-w64-latexila/latexila-x86_64.install @@ -1,4 +1,5 @@ post_install() { + mingw64/bin/gtk-update-icon-cache-3.0 -f -t /mingw64/share/icons/hicolor mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas } From 6b7177b39775555e49d4b4fecf4cad49e574682b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 19 Oct 2015 12:08:18 +0300 Subject: [PATCH 1742/2060] curl: Update to 7.45.0 --- ...h-done-when-using-a-fresh-connection.patch | 33 ------------------- mingw-w64-curl/PKGBUILD | 13 +++----- 2 files changed, 5 insertions(+), 41 deletions(-) delete mode 100644 mingw-w64-curl/0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch diff --git a/mingw-w64-curl/0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch b/mingw-w64-curl/0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch deleted file mode 100644 index 87b7b5d2d7..0000000000 --- a/mingw-w64-curl/0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch +++ /dev/null @@ -1,33 +0,0 @@ -From f65e07ca5930a27a54fe96e99e838f6c85c5356b Mon Sep 17 00:00:00 2001 -From: Isaac Boukris -Date: Wed, 16 Sep 2015 03:52:36 +0300 -Subject: [PATCH] NTLM: Reset auth-done when using a fresh connection - -With NTLM a new connection will always require authentication. -Fixes #435 ---- - lib/url.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/lib/url.c b/lib/url.c -index dccd710..f056b16 100644 ---- a/lib/url.c -+++ b/lib/url.c -@@ -5839,12 +5839,14 @@ static CURLcode create_conn(struct SessionHandle *data, - data->state.authhost.done) { - infof(data, "NTLM picked AND auth done set, clear picked!\n"); - data->state.authhost.picked = CURLAUTH_NONE; -+ data->state.authhost.done = FALSE; - } - - if((data->state.authproxy.picked & (CURLAUTH_NTLM | CURLAUTH_NTLM_WB)) && - data->state.authproxy.done) { - infof(data, "NTLM-proxy picked AND auth done set, clear picked!\n"); - data->state.authproxy.picked = CURLAUTH_NONE; -+ data->state.authproxy.done = FALSE; - } - #endif - } --- -2.5.3.windows.1.2.gcb92cc1 - diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 4b4ea2dc72..81745dfcbf 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -6,8 +6,8 @@ _variant=-openssl _realname=curl pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=7.44.0 -pkgrel=3 +pkgver=7.45.0 +pkgrel=1 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') url="http://curl.haxx.se" @@ -30,14 +30,12 @@ options=('staticlibs') source=("$url/download/${_realname}-${pkgver}.tar.bz2"{,.asc} "0001-curl-relocation.patch" "0002-curl-mingw-enable-static.patch" - "0003-curl-detect-ipv6-on-windows.patch" - "0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch") -md5sums=('6b952ca00e5473b16a11f05f06aa8dae' + "0003-curl-detect-ipv6-on-windows.patch") +md5sums=('62c1a352b28558f25ba6209214beadc8' 'SKIP' '58520051c4ed77781d233c3fa40a5435' 'eac9e212e619490966ae47004bec547b' - 'f1c5b8648af0dfab7bde4d68a6b65f25' - '1e42a032267f66041a117df4dcd1cf1f') + 'f1c5b8648af0dfab7bde4d68a6b65f25') validpgpkeys=('914C533DF9B2ADA2204F586D78E11C6B279D5C91') # Daniel Stenberg prepare() { @@ -46,7 +44,6 @@ prepare() { patch -p1 -i "${srcdir}/0001-curl-relocation.patch" patch -p1 -i "${srcdir}/0002-curl-mingw-enable-static.patch" patch -p1 -i "${srcdir}/0003-curl-detect-ipv6-on-windows.patch" - patch -p1 -i "${srcdir}/0004-NTLM-Reset-auth-done-when-using-a-fresh-connection.patch" autoreconf -vfi } From 45f570f1b3ea4bc7446aba059887e2f8a177e947 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 19 Oct 2015 12:08:31 +0300 Subject: [PATCH 1743/2060] x265: Update to 1.8 --- mingw-w64-x265/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-x265/PKGBUILD b/mingw-w64-x265/PKGBUILD index f461f595ff..de97a64cf1 100644 --- a/mingw-w64-x265/PKGBUILD +++ b/mingw-w64-x265/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Yuta Nakai _realname=x265 +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.7 -pkgrel=3 +pkgver=1.8 +pkgrel=1 pkgdesc='Open Source H265/HEVC video encoder (mingw-w64)' arch=('any') license=('GPL') @@ -12,9 +13,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=('yasm' "${MINGW_PACKAGE_PREFIX}-cmake") options=('strip') url='https://bitbucket.org/multicoreware/x265' -source=("${_realname}-$pkgver.tar.bz2"::"$url/get/$pkgver.tar.bz2" +source=("${_realname}-${pkgver}.tar.bz2"::"${url}/get/${pkgver}.tar.bz2" install-shared-library.patch) -md5sums=('d6020c277b05ab44f8222342aaa9c99f' +md5sums=('e3a008a74b8f44612cac4ec2f537b0f8' 'c1dc65fc3191d6bafdd3576235ade5ae') prepare() { From 2cb999f322f8048a06bd3ffc19e96149cbe3d166 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 19 Oct 2015 12:16:57 +0300 Subject: [PATCH 1744/2060] graphicsmagick: Update to 1.3.22 --- mingw-w64-graphicsmagick/001-relocate.patch | 2 +- mingw-w64-graphicsmagick/PKGBUILD | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/mingw-w64-graphicsmagick/001-relocate.patch b/mingw-w64-graphicsmagick/001-relocate.patch index 38f0d23823..eb2f99ba4e 100644 --- a/mingw-w64-graphicsmagick/001-relocate.patch +++ b/mingw-w64-graphicsmagick/001-relocate.patch @@ -74,7 +74,7 @@ diff -Naur GraphicsMagick-1.3.20-orig/magick/delegate.c GraphicsMagick-1.3.20/ma + } + strcpy(BinPath,exe_path); +# else - strcpy(BinPath,MagickBinPath); + strlcpy(BinPath,MagickBinPath,sizeof(BinPath)); +# endif # else { diff --git a/mingw-w64-graphicsmagick/PKGBUILD b/mingw-w64-graphicsmagick/PKGBUILD index eeb0c82222..9a986150f8 100644 --- a/mingw-w64-graphicsmagick/PKGBUILD +++ b/mingw-w64-graphicsmagick/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=graphicsmagick +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.21 -pkgrel=2 +pkgver=1.3.22 +pkgrel=1 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') url="http://www.graphicsmagick.org/" @@ -35,8 +36,8 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-ghostscript: for Ghostscript support" options=('staticlibs' 'strip' 'libtool') source=(http://sourceforge.net/projects/graphicsmagick/files/${_realname}/${pkgver}/GraphicsMagick-${pkgver}.tar.xz 001-relocate.patch) -md5sums=('f86fe89ea413720a3b04c59c8d5271a2' - '44ebff623519daa9be86ee6a6aaea2b6') +md5sums=('32e6ae274aa9318d2879978dd1e417a0' + '7ff566f64baa2f2e198717aab2d937b5') prepare() { cd GraphicsMagick-${pkgver} From aec46fa3a272151cd01a8809e6b5c2e57329012f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 19 Oct 2015 15:43:48 +0300 Subject: [PATCH 1745/2060] boost: Update to 1.59.0 --- mingw-w64-boost/PKGBUILD | 66 +- .../boost-1.54.0-pool-max_chunks_shadow.patch | 14 - .../boost-1.54.0-python-unused_typedef.patch | 15 - .../boost-1.56-mingw-context.patch | 884 ------------------ .../boost-1.57.0-move-is_class.patch | 20 - .../boost-1.57.0-pool-test_linking.patch | 33 - .../boost-1.57.0-signals2-weak_ptr.patch | 24 - .../boost-1.57.0-uuid-comparison.patch | 22 - .../boost-1.58.0-address-model.patch | 13 + .../boost-1.58.0-pool-test_linking.patch | 31 + ...0.0-pool.patch => boost-1.58.0-pool.patch} | 24 +- mingw-w64-boost/boost-1.59.0-log.patch | 106 +++ .../boost-1.59.0-mingw-context.patch | 78 ++ .../boost-1.59.0-mingw-serialization.patch | 133 +++ .../boost-include-intrin-h-on-mingw-w64.patch | 4 +- 15 files changed, 401 insertions(+), 1066 deletions(-) delete mode 100644 mingw-w64-boost/boost-1.54.0-pool-max_chunks_shadow.patch delete mode 100644 mingw-w64-boost/boost-1.54.0-python-unused_typedef.patch delete mode 100644 mingw-w64-boost/boost-1.56-mingw-context.patch delete mode 100644 mingw-w64-boost/boost-1.57.0-move-is_class.patch delete mode 100644 mingw-w64-boost/boost-1.57.0-pool-test_linking.patch delete mode 100644 mingw-w64-boost/boost-1.57.0-signals2-weak_ptr.patch delete mode 100644 mingw-w64-boost/boost-1.57.0-uuid-comparison.patch create mode 100644 mingw-w64-boost/boost-1.58.0-address-model.patch create mode 100644 mingw-w64-boost/boost-1.58.0-pool-test_linking.patch rename mingw-w64-boost/{boost-1.50.0-pool.patch => boost-1.58.0-pool.patch} (87%) create mode 100644 mingw-w64-boost/boost-1.59.0-log.patch create mode 100644 mingw-w64-boost/boost-1.59.0-mingw-context.patch create mode 100644 mingw-w64-boost/boost-1.59.0-mingw-serialization.patch diff --git a/mingw-w64-boost/PKGBUILD b/mingw-w64-boost/PKGBUILD index 6b519f9500..4091e409e2 100644 --- a/mingw-w64-boost/PKGBUILD +++ b/mingw-w64-boost/PKGBUILD @@ -3,9 +3,9 @@ _realname=boost pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.57.0 +pkgver=1.59.0 _boostver=${pkgver//./_} -pkgrel=4 +pkgrel=1 pkgdesc="Free peer-reviewed portable C++ source libraries (mingw-w64)" arch=('any') url="http://www.boost.org/" @@ -21,45 +21,41 @@ options=('strip' 'buildflags' 'staticlibs') source=(http://downloads.sourceforge.net/sourceforge/boost/boost_${_boostver}.tar.bz2 boost-1.48.0-add-bjam-man-page.patch boost-1.50.0-fix-non-utf8-files.patch - boost-1.50.0-pool.patch + boost-1.58.0-pool.patch boost-1.54.0-bootstrap.patch boost-1.54.0-locale-unused_typedef.patch - boost-1.54.0-pool-max_chunks_shadow.patch - boost-1.54.0-python-unused_typedef.patch boost-1.55.0-python-test-PyImport_AppendInittab.patch - boost-1.56-mingw-context.patch boost-1.57.0-build-optflags.patch - boost-1.57.0-move-is_class.patch boost-1.57.0-mpl-print.patch - boost-1.57.0-pool-test_linking.patch + boost-1.58.0-pool-test_linking.patch boost-1.57.0-python-abi_letters.patch boost-1.57.0-python-libpython_dep.patch - boost-1.57.0-signals2-weak_ptr.patch boost-1.57.0-spirit-unused_typedef.patch - boost-1.57.0-uuid-comparison.patch + boost-1.58.0-address-model.patch + boost-1.59.0-log.patch + boost-1.59.0-mingw-serialization.patch + boost-1.59.0-mingw-context.patch boost-include-intrin-h-on-mingw-w64.patch using-mingw-w64-python.patch msys2-mingw-folders-bootstrap.patch) -md5sums=('1be49befbdd9a5ce9def2983ba3e7b76' +md5sums=('6aa9a5c6a4ca1016edd0ed1178e3cb87' 'dff8166486150121bf89d7050c7e5c49' 'ef427ef3a47f8fdeeb6b4ae3246aa84f' - '957b9ec07e4197b87a0f1073e565d955' + '014e142fca7f1b534c38eb83ffc1f138' '45dbfa0c971c8625c5cb985e6ed71b5d' '18963bb39f778b0f0ed7894a5b48845d' - 'aac88d8444c25db38e6fc9f6e549ea4b' - '4e652869f58b4ce601715b9fb2c2b9ee' 'a08837900284c677cf1cff21636ecbe7' - '2c65a8915b70b9de25ac37a73a74d84d' '2f7eaf049a7ab916008806beaf3eea0b' - '65a7e8edffbed332162253d31301fa29' 'e6631765436f87e90c16778a25d2129c' - 'c28bcd8eeafd494021ebcd80456a687a' + 'f9c08fb74e8c7376a0376f60452f24db' 'a128f4a4e371bdde469f055c7a045db7' 'ff8ee6c27cc2f4d912f1c028d4f2d91d' - '254c27857ee0574da377aa5ac107101c' 'd8fb4b4bb69e225ff076513dfd756db9' - '92f66bba767a61bb553a13a794270f28' - '1f0904cea88ca36e6b927432c85676a3' + 'b70fb38cdfa7f86397162e332c9d1ab3' + '1453e99bb24028e7b299df3ee70b5846' + 'db4ed93452debd15b2cd165c438f9911' + '349127a0f1bcddfc189c56219bf39853' + '7f2942e46b6aa6eec02bdde157b8b132' 'c2aac61b370b321552b5240b9ee7248e' '29ffd4b1636e31678fa8e1afa77305eb') @@ -78,7 +74,7 @@ prepare() { # https://bugzilla.redhat.com/show_bug.cgi?id=828856 # https://bugzilla.redhat.com/show_bug.cgi?id=828857 # https://svn.boost.org/trac/boost/ticket/6701 - patch -p1 -i ${srcdir}/boost-1.50.0-pool.patch + patch -p0 -i ${srcdir}/boost-1.58.0-pool.patch # https://svn.boost.org/trac/boost/ticket/5637 patch -p1 -i ${srcdir}/boost-1.57.0-mpl-print.patch @@ -89,40 +85,32 @@ prepare() { # https://svn.boost.org/trac/boost/ticket/8878 patch -p1 -i ${srcdir}/boost-1.54.0-locale-unused_typedef.patch - # https://svn.boost.org/trac/boost/ticket/8888 - patch -p1 -i ${srcdir}/boost-1.54.0-python-unused_typedef.patch - # https://svn.boost.org/trac/boost/ticket/9038 - patch -p1 -i ${srcdir}/boost-1.57.0-pool-test_linking.patch - - # This was already fixed upstream, so no tracking bug. - patch -p1 -i ${srcdir}/boost-1.54.0-pool-max_chunks_shadow.patch + patch -p1 -i ${srcdir}/boost-1.58.0-pool-test_linking.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1102667 patch -p1 -i ${srcdir}/boost-1.57.0-python-libpython_dep.patch patch -p1 -i ${srcdir}/boost-1.57.0-python-abi_letters.patch patch -p1 -i ${srcdir}/boost-1.55.0-python-test-PyImport_AppendInittab.patch - # https://svn.boost.org/trac/boost/ticket/10100 - # https://github.com/boostorg/signals2/pull/8 - patch -p1 -i ${srcdir}/boost-1.57.0-signals2-weak_ptr.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1190039 patch -p1 -i ${srcdir}/boost-1.57.0-build-optflags.patch - # https://svn.boost.org/trac/boost/ticket/10510 - patch -p1 -i ${srcdir}/boost-1.57.0-uuid-comparison.patch + # Prevent gcc.jam from setting -m32 or -m64. + patch -p1 -i ${srcdir}/boost-1.58.0-address-model.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1192002 - # https://svn.boost.org/trac/boost/ticket/11044 - patch -p1 -i ${srcdir}/boost-1.57.0-move-is_class.patch + # https://svn.boost.org/trac/boost/ticket/11549 + patch -p1 -i ${srcdir}/boost-1.59.0-log.patch # https://svn.boost.org/trac/boost/ticket/7262 - patch -p1 -i ${srcdir}/boost-1.56-mingw-context.patch + patch -p0 -i ${srcdir}/boost-1.59.0-mingw-context.patch # Fix FTBFS on recent mingw-w64 and also use intrinsics based # versions of the Interlocked symbols which are better optimized - patch -p1 -i ${srcdir}/boost-include-intrin-h-on-mingw-w64.patch + patch -p0 -i ${srcdir}/boost-include-intrin-h-on-mingw-w64.patch + + # https://github.com/boostorg/serialization/pull/19 + patch -p1 -i ${srcdir}/boost-1.59.0-mingw-serialization.patch # Use out own build Python patch -p1 -i ${srcdir}/using-mingw-w64-python.patch diff --git a/mingw-w64-boost/boost-1.54.0-pool-max_chunks_shadow.patch b/mingw-w64-boost/boost-1.54.0-pool-max_chunks_shadow.patch deleted file mode 100644 index 1a85fceb82..0000000000 --- a/mingw-w64-boost/boost-1.54.0-pool-max_chunks_shadow.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up ./boost/pool/pool.hpp~ ./boost/pool/pool.hpp ---- ./boost/pool/pool.hpp~ 2013-08-21 17:49:56.023296922 +0200 -+++ ./boost/pool/pool.hpp 2013-08-22 11:38:01.133912638 +0200 -@@ -361,9 +361,7 @@ class pool: protected simple_segregated_ - { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool. - size_type partition_size = alloc_size(); - size_type POD_size = math::static_lcm::value + sizeof(size_type); -- size_type max_chunks = (std::numeric_limits::max() - POD_size) / alloc_size(); -- -- return max_chunks; -+ return (std::numeric_limits::max() - POD_size) / alloc_size(); - } - - static void * & nextof(void * const ptr) diff --git a/mingw-w64-boost/boost-1.54.0-python-unused_typedef.patch b/mingw-w64-boost/boost-1.54.0-python-unused_typedef.patch deleted file mode 100644 index 8adf8ed208..0000000000 --- a/mingw-w64-boost/boost-1.54.0-python-unused_typedef.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -up boost_1_53_0/boost/python/to_python_value.hpp\~ boost_1_53_0/boost/python/to_python_value.hpp ---- boost_1_53_0/boost/python/to_python_value.hpp~ 2007-12-16 11:12:07.000000000 +0100 -+++ boost_1_53_0/boost/python/to_python_value.hpp 2013-07-23 16:19:02.518904596 +0200 -@@ -147,8 +147,8 @@ namespace detail - template - inline PyObject* registry_to_python_value::operator()(argument_type x) const - { -- typedef converter::registered r; - # if BOOST_WORKAROUND(__GNUC__, < 3) -+ typedef converter::registered r; - // suppresses an ICE, somehow - (void)r::converters; - # endif - -Diff finished. Tue Jul 23 16:19:05 2013 diff --git a/mingw-w64-boost/boost-1.56-mingw-context.patch b/mingw-w64-boost/boost-1.56-mingw-context.patch deleted file mode 100644 index 248f9dac32..0000000000 --- a/mingw-w64-boost/boost-1.56-mingw-context.patch +++ /dev/null @@ -1,884 +0,0 @@ -diff -rcN boost-1.56-vanilla/libs/context/build/Jamfile.v2 boost-1.56-patched/libs/context/build/Jamfile.v2 -*** boost-1.56-vanilla/libs/context/build/Jamfile.v2 2014-07-21 07:59:27.000000000 +0200 ---- boost-1.56-patched/libs/context/build/Jamfile.v2 2014-10-01 19:02:57.719800549 +0200 -*************** -*** 27,35 **** - local rule default_binary_format ( ) - { - local tmp = elf ; -! if [ os.name ] = "MACOSX" { tmp = mach-o ; } -! if [ os.name ] = "NT" { tmp = pe ; } -! if [ os.name ] = "AIX" { tmp = xcoff ; } - return $(tmp) ; - } - ---- 27,36 ---- - local rule default_binary_format ( ) - { - local tmp = elf ; -! # if [ os.name ] = "MACOSX" { tmp = mach-o ; } -! # if [ os.name ] = "NT" { tmp = pe ; } -! # if [ os.name ] = "AIX" { tmp = xcoff ; } -! tmp = pe ; - return $(tmp) ; - } - -*************** -*** 46,54 **** - local rule default_abi ( ) - { - local tmp = sysv ; -! if [ os.name ] = "NT" { tmp = ms ; } -! else if [ os.platform ] = "ARM" { tmp = aapcs ; } -! else if [ os.platform ] = "MIPS" { tmp = o32 ; } - return $(tmp) ; - } - ---- 47,56 ---- - local rule default_abi ( ) - { - local tmp = sysv ; -! # if [ os.name ] = "NT" { tmp = ms ; } -! # else if [ os.platform ] = "ARM" { tmp = aapcs ; } -! # else if [ os.platform ] = "MIPS" { tmp = o32 ; } -! tmp = ms ; - return $(tmp) ; - } - -*************** -*** 587,592 **** ---- 589,605 ---- - ; - - alias asm_context_sources -+ : asm/make_i386_ms_pe_gas.S -+ asm/jump_i386_ms_pe_gas.S -+ dummy.cpp -+ : ms -+ 32 -+ x86 -+ pe -+ gcc -+ ; -+ -+ alias asm_context_sources - : asm/make_i386_ms_pe_masm.asm - asm/jump_i386_ms_pe_masm.asm - dummy.cpp -*************** -*** 721,726 **** ---- 734,750 ---- - ; - - alias asm_context_sources -+ : asm/make_x86_64_ms_pe_gas.S -+ asm/jump_x86_64_ms_pe_gas.S -+ dummy.cpp -+ : ms -+ 64 -+ x86 -+ pe -+ gcc -+ ; -+ -+ alias asm_context_sources - : asm/make_x86_64_ms_pe_masm.asm - asm/jump_x86_64_ms_pe_masm.asm - dummy.cpp -diff -rcN boost-1.56-vanilla/libs/context/src/asm/jump_i386_ms_pe_gas.S boost-1.56-patched/libs/context/src/asm/jump_i386_ms_pe_gas.S -*** boost-1.56-vanilla/libs/context/src/asm/jump_i386_ms_pe_gas.S 1970-01-01 01:00:00.000000000 +0100 ---- boost-1.56-patched/libs/context/src/asm/jump_i386_ms_pe_gas.S 2014-10-06 12:57:06.000000000 +0200 -*************** -*** 0 **** ---- 1,141 ---- -+ /* -+ Copyright Oliver Kowalke 2009. -+ Copyright Thomas Sailer 2013. -+ Distributed under the Boost Software License, Version 1.0. -+ (See accompanying file LICENSE_1_0.txt or copy at -+ http://www.boost.org/LICENSE_1_0.txt) -+ */ -+ -+ /* -+ --------------------------------------------------------------------------------- -+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | -+ --------------------------------------------------------------------------------- -+ | 0h | 04h | 08h | 0ch | 010h | 014h | 018h | 01ch | -+ --------------------------------------------------------------------------------- -+ | fc_mxcsr|fc_x87_cw| fc_strg |fc_deallo| limit | base | fc_seh | EDI | -+ --------------------------------------------------------------------------------- -+ --------------------------------------------------------------------------------- -+ | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -+ --------------------------------------------------------------------------------- -+ | 020h | 024h | 028h | 02ch | 030h | 034h | 038h | 03ch | -+ --------------------------------------------------------------------------------- -+ | ESI | EBX | EBP | EIP | EXIT | | SEH NXT |SEH HNDLR| -+ --------------------------------------------------------------------------------- -+ */ -+ -+ .file "jump_i386_ms_pe_gas.S" -+ .text -+ .p2align 4,,15 -+ .globl _jump_fcontext -+ .def _jump_fcontext; .scl 2; .type 32; .endef -+ _jump_fcontext: -+ -+ /* fourth arg of jump_fcontext() == flag indicating preserving FPU */ -+ movl 0x10(%esp),%ecx -+ pushl %ebp -+ pushl %ebx -+ pushl %esi -+ pushl %edi -+ -+ /* load NT_TIB into ECX */ -+ movl %fs:0x18,%EDX -+ -+ /* load current SEH exception list */ -+ movl (%edx),%eax -+ pushl %eax -+ -+ /* load current stack base */ -+ movl 0x4(%edx),%eax -+ pushl %eax -+ -+ /* load current stack limit */ -+ movl 0x8(%edx),%eax -+ pushl %eax -+ -+ /* load current deallocation stack */ -+ movl 0xe0c(%edx),%eax -+ pushl %eax -+ -+ /* load fiber local storage */ -+ movl 0x10(%edx),%eax -+ pushl %eax -+ -+ /* prepare stack for FPU */ -+ leal -0x8(%esp),%esp -+ -+ /* test for flag preserve_fpu */ -+ testl %ecx,%ecx -+ je nxt1 -+ -+ /* save MMX control- and status-word */ -+ stmxcsr (%esp) -+ -+ /* save x87 control-word */ -+ fnstcw 0x4(%esp) -+ -+ nxt1: -+ /* first arg of jump_fcontext() == context jumping from */ -+ movl 0x30(%esp),%eax -+ -+ /* store ESP (pointing to context-data) in EAX */ -+ movl %esp,(%eax) -+ -+ /* second arg of jump_fcontext() == context jumping to */ -+ movl 0x34(%esp),%edx -+ -+ /* third arg of jump_fcontext() == value to be returned after jump */ -+ movl 0x38(%esp),%eax -+ -+ /* restore ESP (pointing to context-data) from EDX */ -+ movl %edx,%esp -+ -+ /* test for flag preserve_fpu */ -+ testl %ecx,%ecx -+ je nxt2 -+ -+ /* restore MMX control- and status-word */ -+ ldmxcsr (%esp) -+ -+ /* restore x87 control-word */ -+ fldcw 0x4(%esp) -+ -+ nxt2: -+ /* prepare stack for FPU */ -+ leal 0x8(%esp),%esp -+ -+ /* load NT_TIB into ECX */ -+ movl %fs:0x18,%edx -+ -+ /* restore fiber local storage */ -+ popl %ecx -+ movl %ecx,0x10(%edx) -+ -+ /* restore current deallocation stack */ -+ popl %ecx -+ movl %ecx,0xe0c(%edx) -+ -+ /* restore current stack limit */ -+ popl %ecx -+ movl %ecx,0x8(%edx) -+ -+ /* restore current stack base */ -+ popl %ecx -+ movl %ecx,0x4(%edx) -+ -+ /* restore current SEH exception list */ -+ popl %ecx -+ movl %ecx,(%edx) -+ popl %edi -+ popl %esi -+ popl %ebx -+ popl %ebp -+ -+ /* restore return-address */ -+ popl %edx -+ -+ /* use value in EAX as return-value after jump */ -+ /* use value in EAX as first arg in context function */ -+ movl %eax,0x4(%esp) -+ -+ /* indirect jump to context */ -+ jmpl *%edx -diff -rcN boost-1.56-vanilla/libs/context/src/asm/jump_x86_64_ms_pe_gas.S boost-1.56-patched/libs/context/src/asm/jump_x86_64_ms_pe_gas.S -*** boost-1.56-vanilla/libs/context/src/asm/jump_x86_64_ms_pe_gas.S 1970-01-01 01:00:00.000000000 +0100 ---- boost-1.56-patched/libs/context/src/asm/jump_x86_64_ms_pe_gas.S 2014-10-06 12:45:38.000000000 +0200 -*************** -*** 0 **** ---- 1,212 ---- -+ /* -+ Copyright Oliver Kowalke 2009. -+ Copyright Thomas Sailer 2013. -+ Distributed under the Boost Software License, Version 1.0. -+ (See accompanying file LICENSE_1_0.txt or copy at -+ http://www.boost.org/LICENSE_1_0.txt) -+ */ -+ -+ /* -+ ---------------------------------------------------------------------------------- -+ | 0 | 1 | | -+ ---------------------------------------------------------------------------------- -+ | 0x0 | 0x4 | | -+ ---------------------------------------------------------------------------------- -+ | | | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -+ ---------------------------------------------------------------------------------- -+ | 0x8 | 0xc | 0x10 | 0x14 | 0x18 | 0x1c | 0x20 | 0x24 | -+ ---------------------------------------------------------------------------------- -+ | SEE registers (XMM6-XMM15) | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -+ ---------------------------------------------------------------------------------- -+ | 0x28 | 0x2c | 0x30 | 0x34 | 0x38 | 0x3c | 0x40 | 0x44 | -+ ---------------------------------------------------------------------------------- -+ | SEE registers (XMM6-XMM15) | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -+ ---------------------------------------------------------------------------------- -+ | 0x48 | 0x4c | 0x50 | 0x54 | 0x58 | 0x5c | 0x60 | 0x64 | -+ ---------------------------------------------------------------------------------- -+ | SEE registers (XMM6-XMM15) | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -+ ---------------------------------------------------------------------------------- -+ | 0x68 | 0x6c | 0x70 | 0x74 | 0x78 | 0x7c | 0x80 | 0x84 | -+ ---------------------------------------------------------------------------------- -+ | SEE registers (XMM6-XMM15) | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -+ ---------------------------------------------------------------------------------- -+ | 0x88 | 0x8c | 0x90 | 0x94 | 0x98 | 0x9c | 0xa0 | 0xa4 | -+ ---------------------------------------------------------------------------------- -+ | SEE registers (XMM6-XMM15) | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -+ ---------------------------------------------------------------------------------- -+ | 0xa8 | 0xac | 0xb0 | 0xb4 | 0xb8 | 0xbc | 0xc0 | 0xc4 | -+ ---------------------------------------------------------------------------------- -+ | fc_mxcsr|fc_x87_cw| | fbr_strg | fc_dealloc | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | -+ ---------------------------------------------------------------------------------- -+ | 0xc8 | 0xcc | 0xd0 | 0xd4 | 0xd8 | 0xdc | 0xe0 | 0xe4 | -+ ---------------------------------------------------------------------------------- -+ | limit | base | R12 | R13 | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | -+ ---------------------------------------------------------------------------------- -+ | 0xe8 | 0xec | 0xf0 | 0xf4 | 0xf8 | 0xfc | 0x100 | 0x104 | -+ ---------------------------------------------------------------------------------- -+ | R14 | R15 | RDI | RSI | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -+ ---------------------------------------------------------------------------------- -+ | 0x108 | 0x10c | 0x110 | 0x114 | 0x118 | 0x11c | 0x120 | 0x124 | -+ ---------------------------------------------------------------------------------- -+ | RBX | RBP | RIP | EXIT | -+ ---------------------------------------------------------------------------------- -+ */ -+ -+ .file "jump_x86_64_ms_pe_gas.S" -+ .text -+ .p2align 4,,15 -+ .globl jump_fcontext -+ .def jump_fcontext; .scl 2; .type 32; .endef -+ .seh_proc jump_fcontext -+ jump_fcontext: -+ .seh_endprologue -+ push %rbp -+ push %rbx -+ push %rsi -+ push %rdi -+ push %r15 -+ push %r14 -+ push %r13 -+ push %r12 -+ /* load NT_TIB */ -+ mov %gs:0x30,%r10 -+ /* save current stack base */ -+ mov 0x8(%r10),%rax -+ push %rax -+ /* save current stack limit */ -+ mov 0x10(%r10),%rax -+ push %rax -+ /* save current deallocation stack */ -+ mov 0x1478(%r10),%rax -+ push %rax -+ /* save fiber local storage */ -+ mov 0x18(%r10),%rax -+ push %rax -+ /* prepare stack for FPU */ -+ lea -0xa8(%rsp),%rsp -+ /* test for flag preserve_fpu */ -+ test %r9,%r9 -+ je nxt1 -+ -+ /* save MMX control- and status-word */ -+ stmxcsr 0xa0(%rsp) -+ /* save x87 control-word */ -+ fnstcw 0xa4(%rsp) -+ -+ /* save XMM storage */ -+ movaps %xmm6,(%rsp) -+ movaps %xmm7,0x10(%rsp) -+ movaps %xmm8,0x20(%rsp) -+ movaps %xmm9,0x30(%rsp) -+ movaps %xmm10,0x40(%rsp) -+ movaps %xmm11,0x50(%rsp) -+ movaps %xmm12,0x60(%rsp) -+ movaps %xmm13,0x70(%rsp) -+ movaps %xmm14,0x80(%rsp) -+ movaps %xmm15,0x90(%rsp) -+ -+ nxt1: -+ /* set R10 to zero */ -+ xor %r10,%r10 -+ /* set indicator */ -+ push %r10 -+ /* store RSP (pointing to context-data) in RCX */ -+ mov %rsp,(%rcx) -+ /* restore RSP (pointing to context-data) from RDX */ -+ mov %rdx,%rsp -+ /* load indicator */ -+ pop %r10 -+ /* test for flag preserve_fpu */ -+ test %r9,%r9 -+ je nxt2 -+ -+ /* restore MMX control- and status-word */ -+ ldmxcsr 0xa0(%rsp) -+ /* save x87 control-word */ -+ fldcw 0xa4(%rsp) -+ -+ /* restore XMM storage */ -+ movaps (%rsp),%xmm6 -+ movaps 0x10(%rsp),%xmm7 -+ movaps 0x20(%rsp),%xmm8 -+ movaps 0x30(%rsp),%xmm9 -+ movaps 0x40(%rsp),%xmm10 -+ movaps 0x50(%rsp),%xmm11 -+ movaps 0x60(%rsp),%xmm12 -+ movaps 0x70(%rsp),%xmm13 -+ movaps 0x80(%rsp),%xmm14 -+ movaps 0x90(%rsp),%xmm15 -+ -+ nxt2: -+ /* set offset of stack */ -+ mov $0xa8,%rcx -+ /* test for indicator */ -+ test %r10,%r10 -+ je nxt3 -+ add $0x8,%rcx -+ -+ nxt3: -+ /* prepare stack for FPU */ -+ lea (%rsp,%rcx,1),%rsp -+ -+ /* load NT_TIB */ -+ mov %gs:0x30,%r10 -+ -+ /* restore fiber local storage */ -+ pop %rax -+ /* restore deallocation stack */ -+ mov %rax,0x18(%r10) -+ pop %rax -+ /* restore stack limit */ -+ mov %rax,0x1478(%r10) -+ pop %rax -+ /* restore stack base */ -+ mov %rax,0x10(%r10) -+ pop %rax -+ mov %rax,0x8(%r10) -+ pop %r12 -+ pop %r13 -+ pop %r14 -+ pop %r15 -+ pop %rdi -+ pop %rsi -+ pop %rbx -+ pop %rbp -+ -+ /* restore return-address */ -+ pop %r10 -+ /* use third arg as return-value after jump */ -+ mov %r8,%rax -+ /* use third arg as first arg in context function */ -+ mov %r8,%rcx -+ -+ /* indirect jump to context */ -+ jmpq *%r10 -+ .seh_endproc -diff -rcN boost-1.56-vanilla/libs/context/src/asm/make_i386_ms_pe_gas.S boost-1.56-patched/libs/context/src/asm/make_i386_ms_pe_gas.S -*** boost-1.56-vanilla/libs/context/src/asm/make_i386_ms_pe_gas.S 1970-01-01 01:00:00.000000000 +0100 ---- boost-1.56-patched/libs/context/src/asm/make_i386_ms_pe_gas.S 2014-10-01 18:54:55.000000000 +0200 -*************** -*** 0 **** ---- 1,126 ---- -+ /* -+ Copyright Oliver Kowalke 2009. -+ Copyright Thomas Sailer 2013. -+ Distributed under the Boost Software License, Version 1.0. -+ (See accompanying file LICENSE_1_0.txt or copy at -+ http://www.boost.org/LICENSE_1_0.txt) -+ */ -+ -+ /* -+ --------------------------------------------------------------------------------- -+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | -+ --------------------------------------------------------------------------------- -+ | 0h | 04h | 08h | 0ch | 010h | 014h | 018h | 01ch | -+ --------------------------------------------------------------------------------- -+ | fc_mxcsr|fc_x87_cw| fc_strg |fc_deallo| limit | base | fc_seh | EDI | -+ --------------------------------------------------------------------------------- -+ --------------------------------------------------------------------------------- -+ | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -+ --------------------------------------------------------------------------------- -+ | 020h | 024h | 028h | 02ch | 030h | 034h | 038h | 03ch | -+ --------------------------------------------------------------------------------- -+ | ESI | EBX | EBP | EIP | EXIT | | SEH NXT |SEH HNDLR| -+ --------------------------------------------------------------------------------- -+ */ -+ -+ .file "make_i386_ms_pe_gas.S" -+ .text -+ .p2align 4,,15 -+ .globl _make_fcontext -+ .def _make_fcontext; .scl 2; .type 32; .endef -+ _make_fcontext: -+ .def __exit; .scl 2; .type 32; .endef /* standard C library function */ -+ /* first arg of make_fcontext() == top of context-stack */ -+ movl 0x4(%esp),%eax -+ /* reserve space for first argument of context-function */ -+ /* eax might already point to a 16byte border */ -+ leal -0x8(%eax),%eax -+ /* shift address in EAX to lower 16 byte boundary */ -+ -+ andl $0xfffffff0,%eax -+ /* reserve space for context-data on context-stack */ -+ /* size for fc_mxcsr .. EIP + return-address for context-function */ -+ /* on context-function entry: (ESP -0x4) % 8 == 0 */ -+ /* additional space is required for SEH */ -+ leal -0x3c(%eax),%eax -+ -+ /* first arg of make_fcontext() == top of context-stack */ -+ movl 0x4(%esp),%ecx -+ -+ /* save top address of context stack as 'base' */ -+ movl %ecx,0x14(%eax) -+ -+ /* second arg of make_fcontext() == size of context-stack */ -+ movl 0x8(%esp),%edx -+ -+ /* negate stack size for LEA instruction (== substraction) */ -+ negl %edx -+ -+ /* compute bottom address of context stack (limit) */ -+ leal (%edx,%ecx,1),%ecx -+ -+ /* save bottom address of context-stack as 'limit' */ -+ movl %ecx,0x10(%eax) -+ -+ /* save bottom address of context-stack as 'dealloction stack' */ -+ movl %ecx,0xc(%eax) -+ -+ /* third arg of make_fcontext() == address of context-function */ -+ movl 0xc(%esp),%ecx -+ movl %ecx,0x2c(%eax) -+ -+ /* save MMX control- and status-word */ -+ stmxcsr (%eax) -+ -+ /* save x87 control-word */ -+ fnstcw 0x4(%eax) -+ -+ /* compute abs address of label finish */ -+ movl $finish,%ecx -+ -+ /* save address of finish as return-address for context-function */ -+ /* will be entered after context-function returns */ -+ movl %ecx,0x30(%eax) -+ -+ /* load NT_TIB into ECX */ -+ movl %fs:0x0,%ecx -+ -+ /* traverse current seh chain to get the last exception handler installed by Windows */ -+ /* note that on Windows Server 2008 and 2008 R2, SEHOP is activated by default */ -+ /* the exception handler chain is tested for the presence of ntdll.dll!FinalExceptionHandler */ -+ /* at its end by RaiseException all seh-handlers are disregarded if not present and the */ -+ /* program is aborted */ -+ walk: -+ /* load 'next' member of current SEH into EDX */ -+ movl (%ecx),%edx -+ /* test if 'next' of current SEH is last (== 0xffffffff) */ -+ incl %edx -+ je found -+ decl %edx -+ /* exchange content; ECX contains address of next SEH */ -+ xchgl %edx,%ecx -+ /* inspect next SEH */ -+ jmp walk -+ found: -+ /* load 'handler' member of SEH == address of last SEH handler installed by Windows */ -+ movl 0x4(%ecx),%ecx -+ /* save address in ECX as SEH handler for context */ -+ movl %ecx,0x3c(%eax) -+ /* set ECX to -1 */ -+ movl $0xffffffff,%ecx -+ /* save ECX as next SEH item */ -+ movl %ecx,0x38(%eax) -+ /* load address of next SEH item */ -+ leal 0x38(%eax),%ecx -+ /* save next SEH */ -+ movl %ecx,0x18(%eax) -+ /* return pointer to context-data */ -+ ret -+ -+ finish: -+ /* exit code is zero */ -+ xorl %eax,%eax -+ movl %eax,(%esp) -+ /* exit application */ -+ call _exit -+ hlt -diff -rcN boost-1.56-vanilla/libs/context/src/asm/make_x86_64_ms_pe_gas.S boost-1.56-patched/libs/context/src/asm/make_x86_64_ms_pe_gas.S -*** boost-1.56-vanilla/libs/context/src/asm/make_x86_64_ms_pe_gas.S 1970-01-01 01:00:00.000000000 +0100 ---- boost-1.56-patched/libs/context/src/asm/make_x86_64_ms_pe_gas.S 2014-10-06 12:46:39.000000000 +0200 -*************** -*** 0 **** ---- 1,159 ---- -+ /* -+ Copyright Oliver Kowalke 2009. -+ Copyright Thomas Sailer 2013. -+ Distributed under the Boost Software License, Version 1.0. -+ (See accompanying file LICENSE_1_0.txt or copy at -+ http://www.boost.org/LICENSE_1_0.txt) -+ */ -+ -+ /* -+ ---------------------------------------------------------------------------------- -+ | 0 | 1 | | -+ ---------------------------------------------------------------------------------- -+ | 0x0 | 0x4 | | -+ ---------------------------------------------------------------------------------- -+ | | | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -+ ---------------------------------------------------------------------------------- -+ | 0x8 | 0xc | 0x10 | 0x14 | 0x18 | 0x1c | 0x20 | 0x24 | -+ ---------------------------------------------------------------------------------- -+ | SEE registers (XMM6-XMM15) | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -+ ---------------------------------------------------------------------------------- -+ | 0x28 | 0x2c | 0x30 | 0x34 | 0x38 | 0x3c | 0x40 | 0x44 | -+ ---------------------------------------------------------------------------------- -+ | SEE registers (XMM6-XMM15) | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -+ ---------------------------------------------------------------------------------- -+ | 0x48 | 0x4c | 0x50 | 0x54 | 0x58 | 0x5c | 0x60 | 0x64 | -+ ---------------------------------------------------------------------------------- -+ | SEE registers (XMM6-XMM15) | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -+ ---------------------------------------------------------------------------------- -+ | 0x68 | 0x6c | 0x70 | 0x74 | 0x78 | 0x7c | 0x80 | 0x84 | -+ ---------------------------------------------------------------------------------- -+ | SEE registers (XMM6-XMM15) | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -+ ---------------------------------------------------------------------------------- -+ | 0x88 | 0x8c | 0x90 | 0x94 | 0x98 | 0x9c | 0xa0 | 0xa4 | -+ ---------------------------------------------------------------------------------- -+ | SEE registers (XMM6-XMM15) | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -+ ---------------------------------------------------------------------------------- -+ | 0xa8 | 0xac | 0xb0 | 0xb4 | 0xb8 | 0xbc | 0xc0 | 0xc4 | -+ ---------------------------------------------------------------------------------- -+ | fc_mxcsr|fc_x87_cw| | fbr_strg | fc_dealloc | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | -+ ---------------------------------------------------------------------------------- -+ | 0xc8 | 0xcc | 0xd0 | 0xd4 | 0xd8 | 0xdc | 0xe0 | 0xe4 | -+ ---------------------------------------------------------------------------------- -+ | limit | base | R12 | R13 | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | -+ ---------------------------------------------------------------------------------- -+ | 0xe8 | 0xec | 0xf0 | 0xf4 | 0xf8 | 0xfc | 0x100 | 0x104 | -+ ---------------------------------------------------------------------------------- -+ | R14 | R15 | RDI | RSI | -+ ---------------------------------------------------------------------------------- -+ ---------------------------------------------------------------------------------- -+ | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -+ ---------------------------------------------------------------------------------- -+ | 0x108 | 0x10c | 0x110 | 0x114 | 0x118 | 0x11c | 0x120 | 0x124 | -+ ---------------------------------------------------------------------------------- -+ | RBX | RBP | RIP | EXIT | -+ ---------------------------------------------------------------------------------- -+ */ -+ -+ -+ .file "make_x86_64_ms_pe_gas.S" -+ .text -+ .p2align 4,,15 -+ .globl make_fcontext -+ -+ .def make_fcontext; .scl 2; .type 32; .endef -+ /* generate function table entry in .pdata and unwind information in */ -+ /* .xdata for a function's structured exception handling unwind behavior */ -+ .seh_proc make_fcontext -+ make_fcontext: -+ .seh_endprologue -+ -+ /* first arg of make_fcontext() == top of context-stack */ -+ mov %rcx,%rax -+ -+ /* reserve 32byte shadow-space for context-function */ -+ sub $0x28,%rax -+ -+ /* shift address in RAX to lower 16 byte boundary */ -+ /* == pointer to fcontext_t and address of context stack */ -+ and $0xfffffffffffffff0,%rax -+ -+ /* reserve space for context-data on context-stack */ -+ /* size for fc_mxcsr .. RIP + return-address for context-function */ -+ /* on context-function entry: (RSP -0x8) % 16 == 0 */ -+ sub $0x128,%rax -+ -+ /* third arg of make_fcontext() == address of context-function */ -+ mov %r8,0x118(%rax) -+ -+ /* first arg of make_fcontext() == top of context-stack */ -+ /* save top address of context stack as 'base' */ -+ mov %rcx,0xd0(%rax) -+ -+ /* second arg of make_fcontext() == size of context-stack */ -+ /* negate stack size for LEA instruction (== substraction) */ -+ neg %rdx -+ -+ /* compute bottom address of context stack (limit) */ -+ lea (%rdx,%rcx,1),%rcx -+ -+ /* save bottom address of context stack as 'limit' */ -+ mov %rcx,0xc8(%rax) -+ /* save address of context stack limit as 'dealloction stack' */ -+ mov %rcx,0xc0(%rax) -+ -+ /* save MMX control- and status-word */ -+ stmxcsr 0xa8(%rax) -+ /* save x87 control-word */ -+ fnstcw 0xac(%rax) -+ -+ /* compute abs address of label finish */ -+ leaq finish(%rip), %rcx -+ -+ /* save address of finish as return-address for context-function */ -+ /* will be entered after context-function returns */ -+ mov %rcx,0x120(%rax) -+ -+ /* set indicator */ -+ mov $0x1,%rcx -+ mov %rcx,(%rax) -+ -+ /* return pointer to context-data */ -+ retq -+ finish: -+ -+ /* 32byte shadow-space for _exit() are */ -+ /* already reserved by make_fcontext() */ -+ /* exit code is zero */ -+ xor %rcx,%rcx -+ -+ /* exit application */ -+ callq _exit -+ hlt -+ .seh_endproc -+ -+ .def _exit; .scl 2; .type 32; .endef /* standard C library function */ -diff -rcN boost-1.56-vanilla/libs/thread/build/Jamfile.v2 boost-1.56-patched/libs/thread/build/Jamfile.v2 -*** boost-1.56-vanilla/libs/thread/build/Jamfile.v2 2014-08-03 20:58:54.000000000 +0200 ---- boost-1.56-patched/libs/thread/build/Jamfile.v2 2014-10-01 19:02:57.719800549 +0200 -*************** -*** 134,140 **** - local rule default_threadapi ( ) - { - local api = pthread ; -! if [ os.name ] = "NT" { api = win32 ; } - return $(api) ; - } - ---- 134,141 ---- - local rule default_threadapi ( ) - { - local api = pthread ; -! #if [ os.name ] = "NT" { api = win32 ; } -! api = win32 ; - return $(api) ; - } - -------------------------- * -+ * | 0xf0 | 0xf4 | 0xf8 | 0xfc | 0x100 | 0x104 | 0x108 | 0x10c | * -+ * ---------------------------------------------------------------------------------- * -+ * | SEE registers (XMM6-XMM15) | * -+ * ---------------------------------------------------------------------------------- * -+ * ---------------------------------------------------------------------------------- * -+ * | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | * -+ * ---------------------------------------------------------------------------------- * -+ * | 0x110 | 0x114 | 0x118 | 0x11c | 0x120 | 0x124 | 0x128 | 0x12c | * -+ * ---------------------------------------------------------------------------------- * -+ * | SEE registers (XMM6-XMM15) | * -+ * ---------------------------------------------------------------------------------- * -+ * * -+ * *************************************************************************************/ -+ -+.file "jump_x86_64_ms_pe_gas.S" -+.text -+.p2align 4,,15 -+.globl jump_fcontext -+.def jump_fcontext; .scl 2; .type 32; .endef -+.seh_proc jump_fcontext -+jump_fcontext: -+.seh_endprologue -+ movq %r12, (%rcx) /* save R12 */ -+ movq %r13, 0x08(%rcx) /* save R13 */ -+ movq %r14, 0x10(%rcx) /* save R14 */ -+ movq %r15, 0x18(%rcx) /* save R15 */ -+ movq %rdi, 0x20(%rcx) /* save RDI */ -+ movq %rsi, 0x28(%rcx) /* save RSI */ -+ movq %rbx, 0x30(%rcx) /* save RBX */ -+ movq %rbp, 0x38(%rcx) /* save RBP */ -+ -+ movq %gs:(0x30), %r10 /* load NT_TIB */ -+ movq 0x08(%r10), %rax /* load current stack base */ -+ movq %rax, 0x50(%rcx) /* save current stack base */ -+ movq 0x10(%r10), %rax /* load current stack limit */ -+ movq %rax, 0x60(%rcx) /* save current stack limit */ -+ movq 0x18(%r10), %rax /* load fiber local storage */ -+ movq %rax, 0x68(%rcx) /* save fiber local storage */ -+ -+ testq %r9, %r9 -+ je 1f -+ -+ stmxcsr 0x70(%rcx) /* save MMX control and status word */ -+ fnstcw 0x74(%rcx) /* save x87 control word */ -+ /* save XMM storage */ -+ /* save start address of SSE register block in R10 */ -+ leaq 0x90(%rcx), %r10 -+ /* shift address in R10 to lower 16 byte boundary */ -+ /* == pointer to SEE register block */ -+ andq $-16, %r10 -+ -+ movaps %xmm6, (%r10) -+ movaps %xmm7, 0x10(%r10) -+ movaps %xmm8, 0x20(%r10) -+ movaps %xmm9, 0x30(%r10) -+ movaps %xmm10, 0x40(%r10) -+ movaps %xmm11, 0x50(%r10) -+ movaps %xmm12, 0x60(%r10) -+ movaps %xmm13, 0x70(%r10) -+ movaps %xmm14, 0x80(%r10) -+ movaps %xmm15, 0x90(%r10) -+ -+ ldmxcsr 0x70(%rdx) /* restore MMX control and status word */ -+ fldcw 0x74(%rdx) /* restore x87 control word */ -+ /* restore XMM storage */ -+ /* save start address of SSE register block in R10 */ -+ leaq 0x90(%rdx), %r10 -+ /* shift address in R10 to lower 16 byte boundary */ -+ /* == pointer to SEE register block */ -+ andq $-16, %r10 -+ -+ movaps (%r10), %xmm6 -+ movaps 0x10(%r10), %xmm7 -+ movaps 0x20(%r10), %xmm8 -+ movaps 0x30(%r10), %xmm9 -+ movaps 0x40(%r10), %xmm10 -+ movaps 0x50(%r10), %xmm11 -+ movaps 0x60(%r10), %xmm12 -+ movaps 0x70(%r10), %xmm13 -+ movaps 0x80(%r10), %xmm14 -+ movaps 0x90(%r10), %xmm15 -+ -+1: -+ leaq 0x08(%rsp), %rax /* exclude the return address */ -+ movq %rax, 0x40(%rcx) /* save as stack pointer */ -+ movq (%rsp), %rax /* load return address */ -+ movq %rax, 0x48(%rcx) /* save return address */ -+ -+ movq (%rdx), %r12 /* restore R12 */ -+ movq 0x08(%rdx), %r13 /* restore R13 */ -+ movq 0x10(%rdx), %r14 /* restore R14 */ -+ movq 0x18(%rdx), %r15 /* restore R15 */ -+ movq 0x20(%rdx), %rdi /* restore RDI */ -+ movq 0x28(%rdx), %rsi /* restore RSI */ -+ movq 0x30(%rdx), %rbx /* restore RBX */ -+ movq 0x38(%rdx), %rbp /* restore RBP */ -+ -+ movq %gs:(0x30), %r10 /* load NT_TIB */ -+ movq 0x50(%rdx), %rax /* load stack base */ -+ movq %rax, 0x08(%r10) /* restore stack base */ -+ movq 0x60(%rdx), %rax /* load stack limit */ -+ movq %rax, 0x10(%r10) /* restore stack limit */ -+ movq 0x68(%rdx), %rax /* load fiber local storage */ -+ movq %rax, 0x18(%r10) /* restore fiber local storage */ -+ -+ movq 0x40(%rdx), %rsp /* restore RSP */ -+ movq 0x48(%rdx), %r10 /* fetch the address to returned to */ -+ -+ movq %r8, %rax /* use third arg as return value after jump */ -+ movq %r8, %rcx /* use third arg as first arg in context function */ -+ -+ jmp *%r10 /* indirect jump to caller */ -+.seh_endproc diff --git a/mingw-w64-boost/boost-1.57.0-move-is_class.patch b/mingw-w64-boost/boost-1.57.0-move-is_class.patch deleted file mode 100644 index e37af32794..0000000000 --- a/mingw-w64-boost/boost-1.57.0-move-is_class.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -up a/move/core.hpp b/move/core.hpp ---- a/boost/move/core.hpp~ 2015-02-09 17:33:35.000000000 +0100 -+++ b/boost/move/core.hpp 2015-02-13 13:54:52.012130813 +0100 -@@ -43,6 +43,7 @@ - #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED) - - #include -+ #include - - //Move emulation rv breaks standard aliasing rules so add workarounds for some compilers - #if defined(__GNUC__) && (__GNUC__ >= 4) && \ -@@ -65,7 +66,7 @@ - template - class rv - : public ::boost::move_detail::if_c -- < ::boost::move_detail::is_class_or_union::value -+ < ::boost::is_class::value - , T - , ::boost::move_detail::nat - >::type diff --git a/mingw-w64-boost/boost-1.57.0-pool-test_linking.patch b/mingw-w64-boost/boost-1.57.0-pool-test_linking.patch deleted file mode 100644 index 57e6206bba..0000000000 --- a/mingw-w64-boost/boost-1.57.0-pool-test_linking.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -up boost_1_57_0/libs/pool/test/Jamfile.v2\~ boost_1_57_0/libs/pool/test/Jamfile.v2 ---- boost_1_57_0/libs/pool/test/Jamfile.v2~ 2014-07-10 06:36:10.000000000 +0200 -+++ boost_1_57_0/libs/pool/test/Jamfile.v2 2015-01-20 13:59:10.818700586 +0100 -@@ -28,17 +28,17 @@ explicit valgrind_config_check ; - local use-valgrind = [ check-target-builds valgrind_config_check "valgrind" : "valgrind --error-exitcode=1" : no ] ; - - test-suite pool : -- [ run test_simple_seg_storage.cpp ] -- [ run test_pool_alloc.cpp ] -- [ run pool_msvc_compiler_bug_test.cpp ] -- [ run test_msvc_mem_leak_detect.cpp ] -- [ run test_bug_3349.cpp ] -- [ run test_bug_4960.cpp ] -- [ run test_bug_1252.cpp ] -- [ run test_bug_2696.cpp ] -- [ run test_bug_5526.cpp ] -+ [ run test_simple_seg_storage.cpp : : : /boost/system//boost_system ] -+ [ run test_pool_alloc.cpp : : : /boost/system//boost_system ] -+ [ run pool_msvc_compiler_bug_test.cpp : : : /boost/system//boost_system ] -+ [ run test_msvc_mem_leak_detect.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_3349.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_4960.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_1252.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_2696.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_5526.cpp : : : /boost/system//boost_system ] - [ run test_threading.cpp : : : multi /boost/thread//boost_thread gcc:-Wno-attributes gcc:-Wno-missing-field-initializers ] -- [ run ../example/time_pool_alloc.cpp ] -+ [ run ../example/time_pool_alloc.cpp : : : /boost/system//boost_system ] - [ compile test_poisoned_macros.cpp ] - - # - -Diff finished. Tue Jan 20 13:59:16 2015 diff --git a/mingw-w64-boost/boost-1.57.0-signals2-weak_ptr.patch b/mingw-w64-boost/boost-1.57.0-signals2-weak_ptr.patch deleted file mode 100644 index b0ce430a8f..0000000000 --- a/mingw-w64-boost/boost-1.57.0-signals2-weak_ptr.patch +++ /dev/null @@ -1,24 +0,0 @@ -From fd0d8042e2bb2fb5a4d88bcfc700c1cb9d7aa1bb Mon Sep 17 00:00:00 2001 -From: Frank Mori Hess -Date: Thu, 6 Nov 2014 23:32:20 -0500 -Subject: [PATCH] Fix for missing include from Evangelos Foutras. - ---- - boost/signals2/trackable.hpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/boost/signals2/trackable.hpp b/boost/signals2/trackable.hpp -index dba001d..64e8489 100644 ---- a/boost/signals2/trackable.hpp -+++ b/boost/signals2/trackable.hpp -@@ -18,6 +18,7 @@ - - #include - #include -+#include - - namespace boost { - namespace signals2 { --- -2.1.0 - diff --git a/mingw-w64-boost/boost-1.57.0-uuid-comparison.patch b/mingw-w64-boost/boost-1.57.0-uuid-comparison.patch deleted file mode 100644 index 739d795b36..0000000000 --- a/mingw-w64-boost/boost-1.57.0-uuid-comparison.patch +++ /dev/null @@ -1,22 +0,0 @@ -From fc32eea4ac9e514a7d210306cd9fa3a017dfe02c Mon Sep 17 00:00:00 2001 -From: VemundH -Date: Tue, 30 Sep 2014 21:53:45 +0200 -Subject: [PATCH] remove incorrect casts - ---- - boost/uuid/detail/uuid_x86.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/boost/uuid/detail/uuid_x86.hpp b/boost/uuid/detail/uuid_x86.hpp -index 1a329b0..5a2cdec 100644 ---- a/boost/uuid/detail/uuid_x86.hpp -+++ b/boost/uuid/detail/uuid_x86.hpp -@@ -100,7 +100,7 @@ inline bool operator< (uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT - cmp = (cmp - 1u) ^ cmp; - rcmp = (rcmp - 1u) ^ rcmp; - -- return static_cast< uint16_t >(cmp) < static_cast< uint16_t >(rcmp); -+ return cmp < rcmp; - } - - } // namespace uuids diff --git a/mingw-w64-boost/boost-1.58.0-address-model.patch b/mingw-w64-boost/boost-1.58.0-address-model.patch new file mode 100644 index 0000000000..3582737b91 --- /dev/null +++ b/mingw-w64-boost/boost-1.58.0-address-model.patch @@ -0,0 +1,13 @@ +--- boost_1_58_0/tools/build/src/tools/gcc.jam~ 2015-07-17 15:14:57.381636224 +0100 ++++ boost_1_58_0/tools/build/src/tools/gcc.jam 2015-07-27 17:35:29.122264048 +0100 +@@ -421,7 +421,9 @@ + + rule setup-address-model ( targets * : sources * : properties * ) + { +- local model = [ feature.get-values address-model : $(properties) ] ; ++ # For RPM builds the address model flag is passed in %{optflags}. ++ # local model = [ feature.get-values address-model : $(properties) ] ; ++ local model ; + if $(model) + { + local option ; diff --git a/mingw-w64-boost/boost-1.58.0-pool-test_linking.patch b/mingw-w64-boost/boost-1.58.0-pool-test_linking.patch new file mode 100644 index 0000000000..a3813707c2 --- /dev/null +++ b/mingw-w64-boost/boost-1.58.0-pool-test_linking.patch @@ -0,0 +1,31 @@ +diff -up boost_1_58_0/libs/pool/test/Jamfile.v2\~ boost_1_58_0/libs/pool/test/Jamfile.v2 +--- boost_1_57_0/libs/pool/test/Jamfile.v2~ 2015-07-17 11:36:16.362519826 +0100 ++++ boost_1_57_0/libs/pool/test/Jamfile.v2 2015-07-17 11:37:38.858847388 +0100 +@@ -28,17 +28,17 @@ + local Werr = gcc:on msvc:on ; + + test-suite pool : +- [ run test_simple_seg_storage.cpp : : : $(Werr) msvc:-wd4267 ] +- [ run test_pool_alloc.cpp : : : $(Werr) ] +- [ run pool_msvc_compiler_bug_test.cpp : : : $(Werr) msvc:-wd4512 ] +- [ run test_msvc_mem_leak_detect.cpp : : : $(Werr) ] +- [ run test_bug_3349.cpp : : : $(Werr) ] +- [ run test_bug_4960.cpp : : : $(Werr) ] +- [ run test_bug_1252.cpp : : : $(Werr) ] +- [ run test_bug_2696.cpp : : : $(Werr) ] +- [ run test_bug_5526.cpp : : : $(Werr) ] ++ [ run test_simple_seg_storage.cpp : : : $(Werr) msvc:-wd4267 /boost/system//boost_system ] ++ [ run test_pool_alloc.cpp : : : $(Werr) /boost/system//boost_system ] ++ [ run pool_msvc_compiler_bug_test.cpp : : : $(Werr) msvc:-wd4512 /boost/system//boost_system ] ++ [ run test_msvc_mem_leak_detect.cpp : : : $(Werr) /boost/system//boost_system ] ++ [ run test_bug_3349.cpp : : : $(Werr) /boost/system//boost_system ] ++ [ run test_bug_4960.cpp : : : $(Werr) /boost/system//boost_system ] ++ [ run test_bug_1252.cpp : : : $(Werr) /boost/system//boost_system ] ++ [ run test_bug_2696.cpp : : : $(Werr) /boost/system//boost_system ] ++ [ run test_bug_5526.cpp : : : $(Werr) /boost/system//boost_system ] + [ run test_threading.cpp : : : multi /boost/thread//boost_thread ] +- [ run ../example/time_pool_alloc.cpp : : : $(Werr) ] ++ [ run ../example/time_pool_alloc.cpp : : : $(Werr) /boost/system//boost_system ] + [ compile test_poisoned_macros.cpp : $(Werr) ] + + # diff --git a/mingw-w64-boost/boost-1.50.0-pool.patch b/mingw-w64-boost/boost-1.58.0-pool.patch similarity index 87% rename from mingw-w64-boost/boost-1.50.0-pool.patch rename to mingw-w64-boost/boost-1.58.0-pool.patch index a5a9caad97..ed8449ef0f 100644 --- a/mingw-w64-boost/boost-1.50.0-pool.patch +++ b/mingw-w64-boost/boost-1.58.0-pool.patch @@ -1,24 +1,22 @@ -Index: a/boost/pool/pool.hpp +Index: boost/pool/pool.hpp =================================================================== ---- a/boost/pool/pool.hpp (revision 78317) -+++ b/boost/pool/pool.hpp (revision 78326) +--- boost/pool/pool.hpp (revision 78317) ++++ boost/pool/pool.hpp (revision 78326) @@ -27,4 +27,6 @@ #include +// std::numeric_limits +#include - // boost::math::static_lcm - #include -@@ -358,4 +360,13 @@ + // boost::integer::static_lcm + #include +@@ -358,4 +360,11 @@ } + size_type max_chunks() const + { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool. + size_type partition_size = alloc_size(); -+ size_type POD_size = math::static_lcm::value + sizeof(size_type); -+ size_type max_chunks = (std::numeric_limits::max() - POD_size) / alloc_size(); -+ -+ return max_chunks; ++ size_type POD_size = integer::static_lcm::value + sizeof(size_type); ++ return (std::numeric_limits::max() - POD_size) / alloc_size(); + } + static void * & nextof(void * const ptr) @@ -88,10 +86,10 @@ Index: a/boost/pool/pool.hpp + set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); // insert it into the list, -Index: a/libs/pool/test/test_bug_6701.cpp +Index: libs/pool/test/test_bug_6701.cpp =================================================================== ---- a/libs/pool/test/test_bug_6701.cpp (revision 78326) -+++ b/libs/pool/test/test_bug_6701.cpp (revision 78326) +--- libs/pool/test/test_bug_6701.cpp (revision 78326) ++++ libs/pool/test/test_bug_6701.cpp (revision 78326) @@ -0,0 +1,27 @@ +/* Copyright (C) 2012 Étienne Dupuis +* diff --git a/mingw-w64-boost/boost-1.59.0-log.patch b/mingw-w64-boost/boost-1.59.0-log.patch new file mode 100644 index 0000000000..a4448cb877 --- /dev/null +++ b/mingw-w64-boost/boost-1.59.0-log.patch @@ -0,0 +1,106 @@ +From 7da193fde1a9c1bc925ee980339f4df2e1a66fa7 Mon Sep 17 00:00:00 2001 +From: Andrey Semashev +Date: Sun, 23 Aug 2015 17:27:20 +0300 +Subject: [PATCH] Fixed compilation of operator<< into a record ostream, when + the operator right hand argument is not directly supported by + formatting_ostream. Fixed #11549. + +--- + +diff --git a/boost/log/sources/record_ostream.hpp b/boost/log/sources/record_ostream.hpp +index b3c58e2..c1e8059 100644 +--- a/boost/log/sources/record_ostream.hpp ++++ b/boost/log/sources/record_ostream.hpp +@@ -39,6 +39,18 @@ namespace boost { + + BOOST_LOG_OPEN_NAMESPACE + ++template< typename CharT > ++class basic_record_ostream; ++ ++namespace aux { ++ ++template< typename StreamT, typename R > ++struct enable_if_record_ostream {}; ++template< typename CharT, typename R > ++struct enable_if_record_ostream< basic_record_ostream< CharT >, R > { typedef R type; }; ++ ++} // namespace aux ++ + /*! + * \brief Logging record adapter with a streaming capability + * +@@ -174,6 +186,55 @@ typedef basic_record_ostream< char > record_ostream; //!< Convenience typ + typedef basic_record_ostream< wchar_t > wrecord_ostream; //!< Convenience typedef for wide-character logging + #endif + ++// Implementation note: these operators below should be the least attractive for the compiler ++// so that user's overloads are chosen, when present. We use function template partial ordering for this purpose. ++// We also don't use perfect forwarding for the right hand argument because in ths case the generic overload ++// would be more preferred than the typical one written by users: ++// ++// record_ostream& operator<< (record_ostream& strm, my_type const& arg); ++// ++// This is because my_type rvalues require adding const to the type, which counts as a conversion that is not required ++// if there is a perfect forwarding overload. ++template< typename StreamT, typename T > ++inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type ++operator<< (StreamT& strm, T const& value) ++{ ++ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; ++ static_cast< formatting_ostream_type& >(strm) << value; ++ return strm; ++} ++ ++template< typename StreamT, typename T > ++inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type ++operator<< (StreamT& strm, T& value) ++{ ++ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; ++ static_cast< formatting_ostream_type& >(strm) << value; ++ return strm; ++} ++ ++#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) ++ ++template< typename StreamT, typename T > ++inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type ++operator<< (StreamT&& strm, T const& value) ++{ ++ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; ++ static_cast< formatting_ostream_type& >(strm) << value; ++ return strm; ++} ++ ++template< typename StreamT, typename T > ++inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type ++operator<< (StreamT&& strm, T& value) ++{ ++ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; ++ static_cast< formatting_ostream_type& >(strm) << value; ++ return strm; ++} ++ ++#endif // !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) ++ + namespace aux { + + //! Internal class that provides formatting streams for record pumps +diff --git a/boost/log/utility/formatting_ostream.hpp b/boost/log/utility/formatting_ostream.hpp +index 4345206..744acc0 100644 +--- a/boost/log/utility/formatting_ostream.hpp ++++ b/boost/log/utility/formatting_ostream.hpp +@@ -779,6 +779,13 @@ void basic_formatting_ostream< CharT, TraitsT, AllocatorT >::aligned_write(const + + // Implementation note: these operators below should be the least attractive for the compiler + // so that user's overloads are chosen, when present. We use function template partial ordering for this purpose. ++// We also don't use perfect forwarding for the right hand argument because in ths case the generic overload ++// would be more preferred than the typical one written by users: ++// ++// formatting_ostream& operator<< (formatting_ostream& strm, my_type const& arg); ++// ++// This is because my_type rvalues require adding const to the type, which counts as a conversion that is not required ++// if there is a perfect forwarding overload. + template< typename StreamT, typename T > + inline typename boost::log::aux::enable_if_formatting_ostream< StreamT, StreamT& >::type + operator<< (StreamT& strm, T const& value) diff --git a/mingw-w64-boost/boost-1.59.0-mingw-context.patch b/mingw-w64-boost/boost-1.59.0-mingw-context.patch new file mode 100644 index 0000000000..4b45819bcf --- /dev/null +++ b/mingw-w64-boost/boost-1.59.0-mingw-context.patch @@ -0,0 +1,78 @@ +--- libs/thread/build/Jamfile.v2.mingw 2012-12-04 15:05:00.027057650 +0100 ++++ libs/thread/build/Jamfile.v2 2012-12-04 15:05:22.488292220 +0100 +@@ -101,7 +101,8 @@ + local rule default_threadapi ( ) + { + local api = pthread ; +- if [ os.name ] = "NT" { api = win32 ; } ++ #if [ os.name ] = "NT" { api = win32 ; } ++ api = win32 ; + return $(api) ; + } + +--- libs/context/build/Jamfile.v2.orig 2013-03-03 13:39:59.684868916 +0100 ++++ libs/context/build/Jamfile.v2 2013-03-03 15:09:09.893232829 +0100 +@@ -27,9 +27,10 @@ + local rule default_binary_format ( ) + { + local tmp = elf ; +- if [ os.name ] = "MACOSX" { tmp = mach-o ; } +- if [ os.name ] = "NT" { tmp = pe ; } +- if [ os.name ] = "AIX" { tmp = xcoff ; } ++# if [ os.name ] = "MACOSX" { tmp = mach-o ; } ++# if [ os.name ] = "NT" { tmp = pe ; } ++# if [ os.name ] = "AIX" { tmp = xcoff ; } ++ tmp = pe ; + return $(tmp) ; + } + +@@ -46,9 +47,10 @@ + local rule default_abi ( ) + { + local tmp = sysv ; +- if [ os.name ] = "NT" { tmp = ms ; } +- else if [ os.platform ] = "ARM" { tmp = aapcs ; } +- else if [ os.platform ] = "MIPS" { tmp = o32 ; } ++# if [ os.name ] = "NT" { tmp = ms ; } ++# else if [ os.platform ] = "ARM" { tmp = aapcs ; } ++# else if [ os.platform ] = "MIPS" { tmp = o32 ; } ++ tmp = ms ; + return $(tmp) ; + } + +--- libs/context/src/asm/jump_i386_ms_pe_gas.asm.mingw 2015-09-02 16:03:06.406321632 +0200 ++++ libs/context/src/asm/jump_i386_ms_pe_gas.asm 2015-09-02 16:04:17.632915315 +0200 +@@ -138,3 +138,6 @@ + + /* indirect jump to context */ + jmp *%edx ++ ++.section .drectve ++.ascii " -export:\"jump_fcontext\"" +--- libs/context/src/asm/jump_x86_64_ms_pe_gas.asm.mingw 2015-09-02 16:03:13.495380721 +0200 ++++ libs/context/src/asm/jump_x86_64_ms_pe_gas.asm 2015-09-02 16:04:12.488872439 +0200 +@@ -223,3 +223,6 @@ + /* indirect jump to context */ + jmp *%r10 + .seh_endproc ++ ++.section .drectve ++.ascii " -export:\"jump_fcontext\"" +--- libs/context/src/asm/make_i386_ms_pe_gas.asm.mingw 2015-09-02 16:03:22.486455662 +0200 ++++ libs/context/src/asm/make_i386_ms_pe_gas.asm 2015-09-02 16:04:32.409038476 +0200 +@@ -122,3 +122,6 @@ + hlt + + .def __exit; .scl 2; .type 32; .endef /* standard C library function */ ++ ++.section .drectve ++.ascii " -export:\"make_fcontext\"" +--- libs/context/src/asm/make_x86_64_ms_pe_gas.asm.mingw 2015-09-02 16:03:30.631523552 +0200 ++++ libs/context/src/asm/make_x86_64_ms_pe_gas.asm 2015-09-02 16:04:27.433997008 +0200 +@@ -149,3 +149,6 @@ + .seh_endproc + + .def _exit; .scl 2; .type 32; .endef /* standard C library function */ ++ ++.section .drectve ++.ascii " -export:\"make_fcontext\"" diff --git a/mingw-w64-boost/boost-1.59.0-mingw-serialization.patch b/mingw-w64-boost/boost-1.59.0-mingw-serialization.patch new file mode 100644 index 0000000000..a564d06094 --- /dev/null +++ b/mingw-w64-boost/boost-1.59.0-mingw-serialization.patch @@ -0,0 +1,133 @@ +diff --git a/include/boost/archive/archive_exception.hpp b/include/boost/archive/archive_exception.hpp +index 1159d27..fabcdb5 100644 +--- a/boost/archive/archive_exception.hpp ++++ b/boost/archive/archive_exception.hpp +@@ -87,6 +87,7 @@ class BOOST_SYMBOL_VISIBLE archive_exception : + const char * e1 = NULL, + const char * e2 = NULL + ) BOOST_NOEXCEPT; ++ BOOST_ARCHIVE_DECL archive_exception(archive_exception const &) BOOST_NOEXCEPT ; + virtual BOOST_ARCHIVE_DECL ~archive_exception() BOOST_NOEXCEPT_OR_NOTHROW ; + virtual BOOST_ARCHIVE_DECL const char * what() const BOOST_NOEXCEPT_OR_NOTHROW ; + }; +diff --git a/boost/archive/detail/basic_oarchive.hpp b/boost/archive/detail/basic_oarchive.hpp +index 702c560..03ad17b 100644 +--- a/boost/archive/detail/basic_oarchive.hpp ++++ b/boost/archive/detail/basic_oarchive.hpp +@@ -61,9 +61,7 @@ class BOOST_SYMBOL_VISIBLE basic_oarchive : + protected: + BOOST_ARCHIVE_DECL basic_oarchive(unsigned int flags = 0); + BOOST_ARCHIVE_DECL boost::archive::detail::helper_collection & +- get_helper_collection(){ +- return *this; +- } ++ get_helper_collection(); + // account for bogus gcc warning + #if defined(__GNUC__) + virtual +diff --git a/boost/archive/polymorphic_iarchive.hpp b/boost/archive/polymorphic_iarchive.hpp +index 7f19410..b465bb1 100644 +--- a/boost/archive/polymorphic_iarchive.hpp ++++ b/boost/archive/polymorphic_iarchive.hpp +@@ -44,7 +44,7 @@ namespace serialization { + namespace archive { + namespace detail { + class BOOST_ARCHIVE_DECL basic_iarchive; +- class BOOST_ARCHIVE_DECL basic_iarchive; ++ class BOOST_ARCHIVE_DECL basic_iserializer; + } + + class polymorphic_iarchive; +diff --git a/boost/archive/xml_archive_exception.hpp b/boost/archive/xml_archive_exception.hpp +index b07f9a0..82c53ef 100644 +--- a/boost/archive/xml_archive_exception.hpp ++++ b/boost/archive/xml_archive_exception.hpp +@@ -45,6 +45,8 @@ class BOOST_SYMBOL_VISIBLE xml_archive_exception : + const char * e1 = NULL, + const char * e2 = NULL + ); ++ BOOST_ARCHIVE_DECL xml_archive_exception(xml_archive_exception const &) ; ++ virtual BOOST_ARCHIVE_DECL ~xml_archive_exception() BOOST_NOEXCEPT_OR_NOTHROW ; + }; + + }// namespace archive +diff --git a/libs/serialization/src/archive_exception.cpp b/libs/serialization/src/archive_exception.cpp +index b850f89..5ff4b5f 100644 +--- a/libs/serialization/src/archive_exception.cpp ++++ b/libs/serialization/src/archive_exception.cpp +@@ -14,6 +14,7 @@ + + #include + #include ++#include + + #define BOOST_ARCHIVE_SOURCE + #include +@@ -21,6 +22,7 @@ + namespace boost { + namespace archive { + ++BOOST_ARCHIVE_DECL + unsigned int + archive_exception::append(unsigned int l, const char * a){ + while(l < (sizeof(m_buffer) - 1)){ +@@ -109,13 +111,23 @@ archive_exception::archive_exception( + break; + } + } ++ ++BOOST_ARCHIVE_DECL ++archive_exception::archive_exception(archive_exception const & oth) BOOST_NOEXCEPT : ++ std::exception(oth), ++ code(oth.code) ++{ ++ std::memcpy(m_buffer,oth.m_buffer,sizeof m_buffer); ++} ++ + BOOST_ARCHIVE_DECL + archive_exception::~archive_exception() BOOST_NOEXCEPT_OR_NOTHROW {} + + BOOST_ARCHIVE_DECL const char * +-archive_exception::what( ) const BOOST_NOEXCEPT_OR_NOTHROW { ++archive_exception::what() const BOOST_NOEXCEPT_OR_NOTHROW { + return m_buffer; + } ++ + BOOST_ARCHIVE_DECL + archive_exception::archive_exception() BOOST_NOEXCEPT : + code(no_exception) +diff --git a/libs/serialization/src/basic_oarchive.cpp b/libs/serialization/src/basic_oarchive.cpp +index c99baeb..18522af 100644 +--- a/libs/serialization/src/basic_oarchive.cpp ++++ b/libs/serialization/src/basic_oarchive.cpp +@@ -454,6 +454,11 @@ BOOST_ARCHIVE_DECL void + basic_oarchive::end_preamble(){ + } + ++BOOST_ARCHIVE_DECL helper_collection & ++basic_oarchive::get_helper_collection(){ ++ return *this; ++} ++ + } // namespace detail + } // namespace archive + } // namespace boost +diff --git a/libs/serialization/src/xml_archive_exception.cpp b/libs/serialization/src/xml_archive_exception.cpp +index c1431e2..f4bf896 100644 +--- a/libs/serialization/src/xml_archive_exception.cpp ++++ b/libs/serialization/src/xml_archive_exception.cpp +@@ -51,6 +51,14 @@ xml_archive_exception::xml_archive_exception( + break; + } + } ++ ++BOOST_ARCHIVE_DECL ++xml_archive_exception::xml_archive_exception(xml_archive_exception const & oth) : ++ archive_exception(oth) ++ { ++ } ++ ++BOOST_ARCHIVE_DECL xml_archive_exception::~xml_archive_exception() BOOST_NOEXCEPT_OR_NOTHROW {} + + } // archive + } // boost diff --git a/mingw-w64-boost/boost-include-intrin-h-on-mingw-w64.patch b/mingw-w64-boost/boost-include-intrin-h-on-mingw-w64.patch index acc3bd49d1..5c7ef88615 100644 --- a/mingw-w64-boost/boost-include-intrin-h-on-mingw-w64.patch +++ b/mingw-w64-boost/boost-include-intrin-h-on-mingw-w64.patch @@ -1,5 +1,5 @@ ---- a/boost/detail/interlocked.hpp.interlocked 2012-12-11 15:42:26.000000000 +0100 -+++ b/boost/detail/interlocked.hpp 2013-07-21 15:22:56.082346444 +0200 +--- boost/detail/interlocked.hpp.interlocked 2012-12-11 15:42:26.000000000 +0100 ++++ boost/detail/interlocked.hpp 2013-07-21 15:22:56.082346444 +0200 @@ -92,9 +92,9 @@ # define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange))) From 66b3819e1b6ad1bf6fd474cbd81cb23a4b008b95 Mon Sep 17 00:00:00 2001 From: Konstantin Podsvirov Date: Tue, 20 Oct 2015 06:50:05 +0300 Subject: [PATCH 1746/2060] Add osgQtQuick packages --- mingw-w64-osgqtquick/PKGBUILD | 80 +++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 mingw-w64-osgqtquick/PKGBUILD diff --git a/mingw-w64-osgqtquick/PKGBUILD b/mingw-w64-osgqtquick/PKGBUILD new file mode 100644 index 0000000000..082cafd755 --- /dev/null +++ b/mingw-w64-osgqtquick/PKGBUILD @@ -0,0 +1,80 @@ +# Maintainer: Konstantin Podsvirov + +_realname=osgQtQuick +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") +_pkgver=v2.0.0-alpha-2 +pkgver=2.0.0.7 +pkgrel=1 +pkgdesc="OpenSceneGraph QML Modules (mingw-w64)" +arch=('any') +license=('LGPL') +url="https://github.com/podsvirov/osgqtquick" +depends=("${MINGW_PACKAGE_PREFIX}-OpenSceneGraph" + "${MINGW_PACKAGE_PREFIX}-qt5") +makedepends=("make" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug") +options=(!strip staticlibs !buildflags) +source=(https://github.com/podsvirov/osgqtquick/archive/v2.0.0-alpha-2.zip) +md5sums=('SKIP') + +build() { + plain "No build step" +} + +package_release() { + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") + + [[ -d ${srcdir}/build-release ]] && rm -rf ${srcdir}/build-release + mkdir -p ${srcdir}/build-release && cd ${srcdir}/build-release + + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DosgQtQuick_BUILD_DOCS:BOOL=ON \ + ../osgqtquick-2.0.0-alpha-2 + + make install +} + +package_debug() { + depends=("${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug") + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") + + [[ -d ${srcdir}/build-debug ]] && rm -rf ${srcdir}/build-debug + mkdir -p ${srcdir}/build-debug && cd ${srcdir}/build-debug + + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Debug \ + ../osgqtquick-2.0.0-alpha-2 + + make install + + rm -rf ${pkgdir}${MINGW_PREFIX}/include + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake/osgQtQuick/osgQtQuickConfig.cmake + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake/osgQtQuick/osgQtQuickConfigVersion.cmake + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake/osgQtQuick/osgQtQuickTargets.cmake + rm -rf ${pkgdir}${MINGW_PREFIX}/share/qt5/qml/*/qmldir +} + +package_mingw-w64-i686-osgQtQuick() { + package_release +} + +package_mingw-w64-i686-osgQtQuick-debug() { + package_debug +} + +package_mingw-w64-x86_64-osgQtQuick() { + package_release +} + +package_mingw-w64-x86_64-osgQtQuick-debug() { + package_debug +} From 20f86129fcb41253fdc0c6087e31a279b925aab6 Mon Sep 17 00:00:00 2001 From: David Grayson Date: Mon, 19 Oct 2015 21:58:28 -0700 Subject: [PATCH 1747/2060] python-setuptools: Update to 18.4. --- mingw-w64-python-setuptools/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index 5e91222f3b..984d7d5adf 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -7,7 +7,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.5 _py2_base=2.7 -pkgver=18.3.2 +pkgver=18.4 pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" arch=('any') @@ -19,7 +19,7 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('7a0c0f378dcb6ffcb863ccd9503a647ff4ad3ae9' +sha1sums=('ab7964759591adb3c894bd08a086233e15550df1' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' From a318496623697714af2c956f62c9446308dd6b3f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 20 Oct 2015 08:04:25 +0300 Subject: [PATCH 1748/2060] pngcrush: Update to 1.7.87 --- mingw-w64-pngcrush/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-pngcrush/PKGBUILD b/mingw-w64-pngcrush/PKGBUILD index f86321e10c..76defac2f6 100644 --- a/mingw-w64-pngcrush/PKGBUILD +++ b/mingw-w64-pngcrush/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Nicolas Frattaroli _realname=pngcrush +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.7.86 +pkgver=1.7.87 pkgrel=1 pkgdesc="A tool for optimizing the compression of PNG files (mingw-w64)" arch=('any') @@ -12,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-zlib") source=("http://downloads.sourceforge.net/pmt/${_realname}-${pkgver}-nolib.tar.gz" LICENSE) -md5sums=('a394e7e2eec537aa05e6a68f9dc6f4e2' +md5sums=('657032b1cbe057311fcf43ff39593802' 'e6446a786d939c98fcada57f9ae6de1f') prepare() { From a527e17cfb59a24f20d5de1c39f7670fa18f6b08 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 20 Oct 2015 08:04:50 +0300 Subject: [PATCH 1749/2060] sqlite3: Update to 3.9.1.0 --- mingw-w64-sqlite3/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index 77083e2f77..f108b14bed 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -4,8 +4,8 @@ _realname=sqlite3 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3090000 -pkgver=3.9.0.0 +_amalgamationver=3090100 +pkgver=3.9.1.0 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=("http://www.sqlite.org/2015/sqlite-autoconf-${_amalgamationver}.tar.gz" LICENSE) -sha1sums=('6578aa8df05fd7777fbbc4fbf1912d981623f73b' +sha1sums=('6b7d22c24c9695118a2706c8e026fb3c31780a30' 'e2aa07adae13aed713860b74165d3325a18c6792') options=('!strip' 'staticlibs' '!buildflags') From 86d718feda93e6d61dd50436f3eaba1058a8630a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 20 Oct 2015 08:22:21 +0300 Subject: [PATCH 1750/2060] aria2: Update to 1.19.2 --- mingw-w64-aria2/PKGBUILD | 17 +++----- mingw-w64-aria2/mingw-inline.patch | 62 --------------------------- mingw-w64-aria2/windows-libintl.patch | 14 ------ 3 files changed, 6 insertions(+), 87 deletions(-) delete mode 100644 mingw-w64-aria2/mingw-inline.patch delete mode 100644 mingw-w64-aria2/windows-libintl.patch diff --git a/mingw-w64-aria2/PKGBUILD b/mingw-w64-aria2/PKGBUILD index 3c5eb854db..6f08c1aae6 100644 --- a/mingw-w64-aria2/PKGBUILD +++ b/mingw-w64-aria2/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: David Macek _realname=aria2 +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.19.0 -pkgrel=2 +pkgver=1.19.2 +pkgrel=1 pkgdesc="A multi-protocol & multi-source, cross platform download utility (mingw-w64)" arch=('any') url="http://aria2.sourceforge.net/" @@ -23,18 +24,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib" ) optdepends=("${MINGW_PACKAGE_PREFIX}-ruby: aria2rpc and aria2mon") -source=(${_realname}-${pkgver}.tar.gz::https://github.com/tatsuhiro-t/aria2/archive/release-${pkgver}.tar.gz - 'mingw-inline.patch' - 'windows-libintl.patch') -md5sums=('efc081865ed268e13f6beeb735a12dad' - '87cb82e55fb023021980e1c6994e42ff' - '25d25975420c8ca3c3dbffe3d89fa657') +source=(${_realname}-${pkgver}.tar.gz::https://github.com/tatsuhiro-t/aria2/archive/release-${pkgver}.tar.gz) +md5sums=('38e18cb9856bc592c5fc8c2dd687bf38') prepare() { cd "${_realname}-release-${pkgver}" - patch -p1 -i "${srcdir}/mingw-inline.patch" - patch -p1 -i "${srcdir}/windows-libintl.patch" - autoreconf -fi + autoreconf -fiv } build() { diff --git a/mingw-w64-aria2/mingw-inline.patch b/mingw-w64-aria2/mingw-inline.patch deleted file mode 100644 index 3be9077059..0000000000 --- a/mingw-w64-aria2/mingw-inline.patch +++ /dev/null @@ -1,62 +0,0 @@ ---- aria2-1.18.10/configure.ac.orig 2015-02-23 15:34:01.000000000 +0100 -+++ aria2-1.18.10/configure.ac 2015-04-02 21:03:27.947473400 +0200 -@@ -29,9 +29,10 @@ - *mingw*) - win_build=yes - LIBS="$LIBS -lws2_32 -lwsock32 -lgdi32 -lwinmm -liphlpapi -lpsapi" -- # C++ headers defines __USE_MINGW_ANSI_STDIO to 1 unconditionally. -- # We have to use it as well nonetheless. -- CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $CPPFLAGS" -+ # Define _POSIX_C_SOURCE to 1. This makes {asc,local}time_r available -+ # from even without (un)helpful interference from , -+ # and also defines __USE_MINGW_ANSI_STDIO. -+ CPPFLAGS="-D_POSIX_C_SOURCE=1 $CPPFLAGS" - # Build with ASLR (dynamicbase) and NX compatiblity (nxcompat) - # Enable pie once upstream/binutils gets fixed to produce correct binaries with it. - LDFLAGS="$LDFLAGS -Wl,--dynamicbase -Wl,--nxcompat" -@@ -840,10 +840,32 @@ - [test "x$have_posix_fallocate" = "xyes" || test "x$have_fallocate" = "xyes" \ - || test "x$have_osx" = "xyes" || test "x$win_build" = "xyes"]) - -+AC_MSG_CHECKING([for asctime_r]) -+AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -+ #include -+ ]], [[ -+ struct tm r; char *c; -+ asctime_r(&r, c); -+ ]])], -+ [AM_CONDITIONAL([HAVE_ASCTIME_R], true) -+ AC_MSG_RESULT([yes]) -+ AC_DEFINE([HAVE_ASCTIME_R], [1], [Define to 1 if you have the `asctime_r' function or macro.])], -+ [AC_MSG_RESULT([no]) -+ AM_CONDITIONAL([HAVE_ASCTIME_R], false)]) -+ -+AC_MSG_CHECKING([for localtime_r]) -+AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -+ #include -+ ]], [[ -+ time_t t; struct tm r; -+ localtime_r(&t, &r); -+ ]])], -+ [AM_CONDITIONAL([HAVE_LOCALTIME_R], true) -+ AC_MSG_RESULT([yes]) -+ AC_DEFINE([HAVE_LOCALTIME_R], [1], [Define to 1 if you have the `localtime_r' function or macro.])], -+ [AC_MSG_RESULT([no]) -+ AM_CONDITIONAL([HAVE_LOCALTIME_R], false)]) - --AC_CHECK_FUNCS([asctime_r], -- [AM_CONDITIONAL([HAVE_ASCTIME_R], true)], -- [AM_CONDITIONAL([HAVE_ASCTIME_R], false)]) - AC_CHECK_FUNCS([basename], - [AM_CONDITIONAL([HAVE_BASENAME], true)], - [AM_CONDITIONAL([HAVE_BASENAME], false)]) -@@ -855,9 +873,6 @@ - AC_CHECK_FUNCS([gettimeofday], - [AM_CONDITIONAL([HAVE_GETTIMEOFDAY], true)], - [AM_CONDITIONAL([HAVE_GETTIMEOFDAY], false)]) --AC_CHECK_FUNCS([localtime_r], -- [AM_CONDITIONAL([HAVE_LOCALTIME_R], true)], -- [AM_CONDITIONAL([HAVE_LOCALTIME_R], false)]) - AC_CHECK_FUNCS([strptime], - [AM_CONDITIONAL([HAVE_STRPTIME], true)], - [AM_CONDITIONAL([HAVE_STRPTIME], false)]) diff --git a/mingw-w64-aria2/windows-libintl.patch b/mingw-w64-aria2/windows-libintl.patch deleted file mode 100644 index 8f5738cef4..0000000000 --- a/mingw-w64-aria2/windows-libintl.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- aria2-1.18.10/src/Makefile.am.orig 2015-04-02 22:02:29.635051500 +0200 -+++ aria2-1.18.10/src/Makefile.am 2015-04-02 22:02:39.234635300 +0200 -@@ -713,9 +713,9 @@ - - libaria2_la_SOURCES = $(SRCS) - --libaria2_la_LIBADD = @WSLAY_LIBS@ -+libaria2_la_LIBADD = @WSLAY_LIBS@ @LTLIBINTL@ - --LDADD = libaria2.la @LIBINTL@ @ALLOCA@ #-lprofiler -+LDADD = libaria2.la @ALLOCA@ #-lprofiler - #aria2c_LDFLAGS = -pg - AM_CPPFLAGS = -Wall\ - -I$(top_srcdir)/lib -I$(top_srcdir)/intl\ From 01bb6b222d3192f53fb52a6aa3fb1ad07f9ef99e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 20 Oct 2015 08:26:11 +0300 Subject: [PATCH 1751/2060] proj: Update to 4.9.2 --- mingw-w64-proj/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-proj/PKGBUILD b/mingw-w64-proj/PKGBUILD index dd86e43331..541506e651 100644 --- a/mingw-w64-proj/PKGBUILD +++ b/mingw-w64-proj/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=proj +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.9.1 +pkgver=4.9.2 pkgrel=1 pkgdesc="Cartographic projection software (PROJ.4) (mingw-w64)" arch=(any) @@ -12,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool") options=('staticlibs' 'strip') source=("http://download.osgeo.org/proj/${_realname}-${pkgver}.tar.gz") -md5sums=('3cbb2a964fd19a496f5f4265a717d31c') +md5sums=('9843131676e31bbd903d60ae7dc76cf9') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From bf123ad23b7770e449c1519d987cf9f424eb6993 Mon Sep 17 00:00:00 2001 From: Konstantin Podsvirov Date: Tue, 20 Oct 2015 10:19:51 +0300 Subject: [PATCH 1752/2060] Improved osgQtQuick packaging --- mingw-w64-osgqtquick/PKGBUILD | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mingw-w64-osgqtquick/PKGBUILD b/mingw-w64-osgqtquick/PKGBUILD index 082cafd755..a67ef2f8b7 100644 --- a/mingw-w64-osgqtquick/PKGBUILD +++ b/mingw-w64-osgqtquick/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Konstantin Podsvirov _realname=osgQtQuick +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") _pkgver=v2.0.0-alpha-2 pkgver=2.0.0.7 @@ -30,14 +31,15 @@ package_release() { [[ -d ${srcdir}/build-release ]] && rm -rf ${srcdir}/build-release mkdir -p ${srcdir}/build-release && cd ${srcdir}/build-release + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX:PATH=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DosgQtQuick_BUILD_DOCS:BOOL=ON \ ../osgqtquick-2.0.0-alpha-2 - make install + make DESTDIR=${pkgdir} -j1 install } package_debug() { @@ -48,13 +50,14 @@ package_debug() { [[ -d ${srcdir}/build-debug ]] && rm -rf ${srcdir}/build-debug mkdir -p ${srcdir}/build-debug && cd ${srcdir}/build-debug + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX:PATH=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Debug \ ../osgqtquick-2.0.0-alpha-2 - make install + make DESTDIR=${pkgdir} -j1 install rm -rf ${pkgdir}${MINGW_PREFIX}/include rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake/osgQtQuick/osgQtQuickConfig.cmake From cbdf0b6a652bea32c5e956aab69dbcd5c4c2d4d4 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 20 Oct 2015 10:54:42 +0300 Subject: [PATCH 1753/2060] innoextract: Update to 1.5 --- mingw-w64-innoextract/PKGBUILD | 34 +- .../dont-set-background.patch | 77 ----- ...ite-loop-with-truncated-LZMA-streams.patch | 49 --- .../fix-crash-on-startup.patch | 49 --- .../fix-flickering-progress-bar.patch | 292 ------------------ ...fix-restoring-original-console-color.patch | 75 ----- .../fix-typo-in-comment.patch | 25 -- 7 files changed, 9 insertions(+), 592 deletions(-) delete mode 100644 mingw-w64-innoextract/dont-set-background.patch delete mode 100644 mingw-w64-innoextract/fix-an-infinite-loop-with-truncated-LZMA-streams.patch delete mode 100644 mingw-w64-innoextract/fix-crash-on-startup.patch delete mode 100644 mingw-w64-innoextract/fix-flickering-progress-bar.patch delete mode 100644 mingw-w64-innoextract/fix-restoring-original-console-color.patch delete mode 100644 mingw-w64-innoextract/fix-typo-in-comment.patch diff --git a/mingw-w64-innoextract/PKGBUILD b/mingw-w64-innoextract/PKGBUILD index 50c4bad501..99a09253a0 100644 --- a/mingw-w64-innoextract/PKGBUILD +++ b/mingw-w64-innoextract/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=innoextract +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4 -pkgrel=2 +pkgver=1.5 +pkgrel=1 pkgdesc="A tool to extract installers created by Inno Setup (mingw-w64)." arch=('any') url="http://constexpr.org/innoextract/" @@ -17,39 +18,22 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-libiconv") options=('staticlibs' '!strip') -source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" - fix-typo-in-comment.patch - fix-crash-on-startup.patch - dont-set-background.patch - fix-flickering-progress-bar.patch - fix-restoring-original-console-color.patch - fix-an-infinite-loop-with-truncated-LZMA-streams.patch) -sha1sums=('3fd3ac98c802c72a1f4ae5f6e6a5dca35747ff98' - '554408d4be410563828d2599db698f0f76cef51e' - 'd35974339a83db0cd04c343d865075d99fc426ba' - 'abebb02453cd1d60afee5f4fb19ad0dc53d09125' - '43454e4e6ef70cd635135e38ead7e596308986c0' - '665c7cbb712d88e0d6506b3de157d7fbf819c239' - '69798ae9a93e0f944201889b6b7000130a7af4d4') +source=("http://constexpr.org/innoextract/files/${_realname}-${pkgver}.tar.gz") +sha1sums=('cd3e3f68213c2730e9db4665b2997f5052f12af7') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i ${srcdir}/fix-typo-in-comment.patch - patch -p1 -i ${srcdir}/fix-crash-on-startup.patch - patch -p1 -i ${srcdir}/dont-set-background.patch - patch -p1 -i ${srcdir}/fix-flickering-progress-bar.patch - patch -p1 -i ${srcdir}/fix-restoring-original-console-color.patch - patch -p1 -i ${srcdir}/fix-an-infinite-loop-with-truncated-LZMA-streams.patch } build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - #MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ + -Wno-dev \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${pkgdir}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DUSE_STATIC_LIBS=OFF \ ../${_realname}-${pkgver} @@ -59,7 +43,7 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" - make install + make DESTDIR=${pkgdir} install install -Dm644 ${srcdir}/${_realname}-${pkgver}/README.md \ "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/README.md" diff --git a/mingw-w64-innoextract/dont-set-background.patch b/mingw-w64-innoextract/dont-set-background.patch deleted file mode 100644 index f021768e95..0000000000 --- a/mingw-w64-innoextract/dont-set-background.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 9e40d651cb6b59582d4ee7c3dba10d8f66568dbd Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Mon, 13 May 2013 21:32:25 +0200 -Subject: [PATCH] Don't set the background color under Windows - -... unless the current background color is too bright. ---- - src/util/console.cpp | 38 ++++++++++++++++++++++++++++---------- - 1 file changed, 28 insertions(+), 10 deletions(-) - -diff --git a/src/util/console.cpp b/src/util/console.cpp -index 72a2830..0f052c0 100644 ---- a/src/util/console.cpp -+++ b/src/util/console.cpp -@@ -46,6 +46,7 @@ - - #include - #include -+#include - - #include "util/output.hpp" - -@@ -193,24 +194,41 @@ void init(is_enabled color, is_enabled progress) { - - // Initialize color output - -+ shell_command * const all_colors[] = { -+ &reset, ¤t, -+ &black, &red, &green, &yellow, &blue, &magenta, &cyan, &white, -+ &dim_black, &dim_red, &dim_green, &dim_yellow, -+ &dim_blue, &dim_magenta, &dim_cyan, &dim_white, -+ }; -+ - if(color == disable || (color == automatic && !is_tty)) { - -- #if defined(_WIN32) -- reset.command = boost::uint16_t(-1); -- #else -- reset.command = ""; -- #endif -- -- black = red = green = yellow = blue = magenta = cyan = white = reset; -- dim_black = dim_red = dim_green = dim_yellow = reset; -- dim_blue = dim_magenta = dim_cyan = dim_white = reset; -- current = reset; -+ BOOST_FOREACH(shell_command * color, all_colors) { -+ #if defined(_WIN32) -+ color->command = boost::uint16_t(-1); -+ #else -+ color->command = ""; -+ #endif -+ } - - } else { -+ - #if defined(_WIN32) -+ // Preserve the original background color if it isn't too bright. -+ if(!(original_color.command & (COMMON_LVB_REVERSE_VIDEO|BACKGROUND_INTENSITY))) { -+ boost::uint16_t bgmask = BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE; -+ if((color & bgmask) != bgmask) { -+ boost::uint16_t bg = original_color.command & bgmask; -+ BOOST_FOREACH(shell_command * color, all_colors) { -+ color->command |= bg; -+ } -+ } -+ } -+ // Force dim_white as the default color under Windows, restore original color on exit. - std::cout << reset; - std::atexit(restore_color); - #endif -+ - } - - } --- -1.9.1 - diff --git a/mingw-w64-innoextract/fix-an-infinite-loop-with-truncated-LZMA-streams.patch b/mingw-w64-innoextract/fix-an-infinite-loop-with-truncated-LZMA-streams.patch deleted file mode 100644 index f6ab967b15..0000000000 --- a/mingw-w64-innoextract/fix-an-infinite-loop-with-truncated-LZMA-streams.patch +++ /dev/null @@ -1,49 +0,0 @@ -From b87d69182a637e3cb55a3d792594d842be8ace0d Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Wed, 22 May 2013 15:22:34 +0200 -Subject: [PATCH] Fix an infinite loop with truncated LZMA streams - ---- - src/stream/file.cpp | 2 ++ - src/stream/lzma.cpp | 5 ++++- - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/src/stream/file.cpp b/src/stream/file.cpp -index 42d6614..64c266c 100644 ---- a/src/stream/file.cpp -+++ b/src/stream/file.cpp -@@ -69,6 +69,8 @@ file_reader::pointer file_reader::get(base_type & base, const file & file, - - result->push(restrict(base, file.size)); - -+ result->exceptions(std::ios_base::badbit); -+ - return pointer(result.release()); - } - -diff --git a/src/stream/lzma.cpp b/src/stream/lzma.cpp -index 695c799..a771070 100644 ---- a/src/stream/lzma.cpp -+++ b/src/stream/lzma.cpp -@@ -56,7 +56,6 @@ static lzma_stream * init_raw_lzma_stream(lzma_vli filter, lzma_options_lzma & o - - bool lzma_decompressor_impl_base::filter(const char * & begin_in, const char * end_in, - char * & begin_out, char * end_out, bool flush) { -- (void)flush; - - lzma_stream * strm = static_cast(stream); - -@@ -68,6 +67,10 @@ bool lzma_decompressor_impl_base::filter(const char * & begin_in, const char * e - - lzma_ret ret = lzma_code(strm, LZMA_RUN); - -+ if(flush && ret == LZMA_BUF_ERROR && strm->avail_out > 0) { -+ throw lzma_error("truncated lzma stream", ret); -+ } -+ - begin_in = reinterpret_cast(strm->next_in); - begin_out = reinterpret_cast(strm->next_out); - --- -1.9.1 - diff --git a/mingw-w64-innoextract/fix-crash-on-startup.patch b/mingw-w64-innoextract/fix-crash-on-startup.patch deleted file mode 100644 index 7c6c4f76be..0000000000 --- a/mingw-w64-innoextract/fix-crash-on-startup.patch +++ /dev/null @@ -1,49 +0,0 @@ -From b52c4a0699b3801b96cd25567843faa6ab57daf3 Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Mon, 13 May 2013 20:47:16 +0200 -Subject: [PATCH] Fix crash on startup under Windows - -Don't assume that the runtime initializes the __wargv global variable. ---- - src/util/windows.cpp | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/src/util/windows.cpp b/src/util/windows.cpp -index 7ee7caf..87cbaa9 100644 ---- a/src/util/windows.cpp -+++ b/src/util/windows.cpp -@@ -27,6 +27,7 @@ - #include - - #include -+#include - - #include - -@@ -52,9 +53,11 @@ int main() { - - std::setlocale(LC_ALL, ""); - -- // Get the UTF-16 command-line parameters and convert them to UTF-8 ourself. -- int argc = __argc; -- wchar_t ** wargv = __wargv; -+ // Emulate wmain() as it's nonstandard and not supported by MinGW. -+ int argc = 0; -+ wchar_t ** wargv = CommandLineToArgvW(GetCommandLineW(), &argc); -+ -+ // Convert the UTF-16 command-line parameters to UTF-8 ourself. - char ** argv = new char *[argc + 1]; - argv[argc] = NULL; - for(int i = 0; i < argc; i++) { -@@ -63,6 +66,8 @@ int main() { - WideCharToMultiByte(CP_UTF8, 0, wargv[i], -1, argv[i], n, NULL, NULL); - } - -+ LocalFree(wargv); -+ - // Tell boost::filesystem to interpret our path strings as UTF-8. - std::locale global_locale = std::locale(); - std::locale utf8_locale(global_locale, new utf8_codecvt); --- -1.9.1 - diff --git a/mingw-w64-innoextract/fix-flickering-progress-bar.patch b/mingw-w64-innoextract/fix-flickering-progress-bar.patch deleted file mode 100644 index 026eca1737..0000000000 --- a/mingw-w64-innoextract/fix-flickering-progress-bar.patch +++ /dev/null @@ -1,292 +0,0 @@ -From a144d3fff0e94e19acc098ee4b35503aaeb752ae Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Tue, 14 May 2013 20:10:56 +0200 -Subject: [PATCH] Fix flickering progress bar under Windows - ---- - src/cli/main.cpp | 68 +++++++++++++++++++++++++++------------------------- - src/util/console.cpp | 65 +++++++++++++++++++++++++++++-------------------- - src/util/console.hpp | 13 +++++++--- - 3 files changed, 84 insertions(+), 62 deletions(-) - -diff --git a/src/cli/main.cpp b/src/cli/main.cpp -index b4c72aa..3f90291 100644 ---- a/src/cli/main.cpp -+++ b/src/cli/main.cpp -@@ -326,49 +326,48 @@ static void process_file(const fs::path & file, const options & o) { - } - - // Print filename and size -- if(!o.silent) { -+ if(o.list) { - - extract_progress.clear(); - -- std::cout << " - "; -- bool named = false; -- BOOST_FOREACH(const file_t & path, output_names) { -- if(named) { -- std::cout << ", "; -+ if(!o.silent) { -+ -+ std::cout << " - "; -+ bool named = false; -+ BOOST_FOREACH(const file_t & path, output_names) { -+ if(named) { -+ std::cout << ", "; -+ } -+ std::cout << '"' << color::white << path.first << color::reset << '"'; -+ if(!info.files[path.second].languages.empty()) { -+ std::cout << " [" << color::green << info.files[path.second].languages -+ << color::reset << "]"; -+ } -+ named = true; - } -- std::cout << '"' << color::white << path.first << color::reset << '"'; -- if(!info.files[path.second].languages.empty()) { -- std::cout << " [" << color::green << info.files[path.second].languages -- << color::reset << "]"; -+ if(!named) { -+ std::cout << color::white << "unnamed file" << color::reset; - } -- named = true; -- } -- if(!named) { -- std::cout << color::white << "unnamed file" << color::reset; -- } -- if(!o.quiet) { -- if(logger::debug) { -- std::cout << " @ " << print_hex(file.offset); -+ if(!o.quiet) { -+ if(logger::debug) { -+ std::cout << " @ " << print_hex(file.offset); -+ } -+ std::cout << " (" << color::dim_cyan << print_bytes(file.size) -+ << color::reset << ")"; -+ } -+ std::cout << '\n'; -+ -+ } else { -+ BOOST_FOREACH(const file_t & path, output_names) { -+ std::cout << color::white << path.first << color::reset << '\n'; - } -- std::cout << " (" << color::dim_cyan << print_bytes(file.size) -- << color::reset << ")"; -- } -- std::cout << '\n'; -- if(o.extract || o.test) { -- std::cout.flush(); - } - -- extract_progress.update(0, true); -- -- } else if(o.list) { -- extract_progress.clear(); -- BOOST_FOREACH(const file_t & path, output_names) { -- std::cout << color::white << path.first << color::reset << '\n'; -- } -- if(o.extract || o.test) { -+ bool updated = extract_progress.update(0, true); -+ if(!updated && (o.extract || o.test)) { - std::cout.flush(); - } -- extract_progress.update(0, true); -+ - } - - if(!o.extract && !o.test) { -@@ -568,6 +567,9 @@ int main(int argc, char * argv[]) { - if(!o.extract && !o.test) { - progress::set_enabled(false); - } -+ if(!o.silent) { -+ o.list = true; -+ } - - // Additional actions. - o.filenames.set_expand(options.count("dump") == 0); -diff --git a/src/util/console.cpp b/src/util/console.cpp -index 0f052c0..9129056 100644 ---- a/src/util/console.cpp -+++ b/src/util/console.cpp -@@ -184,13 +184,6 @@ void init(is_enabled color, is_enabled progress) { - show_progress = true; - } - #endif -- #if defined(_WIN32) -- if(show_progress) { -- // Buffer output so that the progress bar won't flicker (we flush after each update) -- static char buffer[BUFSIZ]; -- std::setbuf(stdout, buffer); -- } -- #endif - - // Initialize color output - -@@ -214,7 +207,7 @@ void init(is_enabled color, is_enabled progress) { - } else { - - #if defined(_WIN32) -- // Preserve the original background color if it isn't too bright. -+ // Preserve the original background color if it isn't too bright - if(!(original_color.command & (COMMON_LVB_REVERSE_VIDEO|BACKGROUND_INTENSITY))) { - boost::uint16_t bgmask = BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE; - if((color & bgmask) != bgmask) { -@@ -224,7 +217,7 @@ void init(is_enabled color, is_enabled progress) { - } - } - } -- // Force dim_white as the default color under Windows, restore original color on exit. -+ // Force dim_white as the default color under Windows, restore original color on exit - std::cout << reset; - std::atexit(restore_color); - #endif -@@ -288,7 +281,7 @@ static int get_screen_width() { - - static bool progress_cleared = true; - --int progress::clear() { -+int progress::clear(bool reset_only) { - - int width = get_screen_width(); - -@@ -298,18 +291,37 @@ int progress::clear() { - - #if defined(_WIN32) - -- // Overwrite the current line with whitespace -- -- static std::string buffer; -- static int last_width = 0; -- if(width != last_width) { -- size_t cwidth = size_t(std::max(width, 1) - 1); -- buffer.resize(cwidth, ' '); -- last_width = width; -+ if(reset_only) { -+ -+ /* -+ * If we overwrite the whole line with spaces, windows console likes to draw -+ * the empty line, even if it will be overwritten in the same flush(), -+ * causing the progress bar to flicker when updated. -+ * To work around this, don't actually clear the line if we are just going to -+ * overwrite it anyway. -+ * The progress bar still flickers when there is other output printed, but -+ * it seems there is no way around that without using the console API to manually -+ * scroll the output. -+ */ -+ -+ std::cout << '\r'; -+ -+ } else { -+ -+ // Overwrite the current line with whitespace -+ -+ static std::string buffer; -+ static int last_width = 0; -+ if(width != last_width) { -+ size_t cwidth = size_t(std::max(width, 1) - 1); -+ buffer.resize(cwidth, ' '); -+ last_width = width; -+ } -+ -+ std::cout << '\r' << buffer << '\r'; -+ - } - -- std::cout << '\r' << buffer << '\r'; -- - #else - - // Use the ANSI/VT100 control sequence to clear the current line -@@ -329,7 +341,7 @@ void progress::show(float value, const std::string & label) { - return; - } - -- int width = clear(); -+ int width = clear(true); - - std::ios_base::fmtflags flags = std::cout.flags(); - -@@ -366,7 +378,7 @@ void progress::show_unbounded(float value, const std::string & label) { - return; - } - -- int width = clear(); -+ int width = clear(true); - - std::ios_base::fmtflags flags = std::cout.flags(); - -@@ -402,10 +414,10 @@ progress::progress(boost::uint64_t max, bool show_rate) - start_time(boost::posix_time::microsec_clock::universal_time()), - last_status(-1.f), last_time(0), last_rate(0.f) { } - --void progress::update(boost::uint64_t delta, bool force) { -+bool progress::update(boost::uint64_t delta, bool force) { - - if(!show_progress) { -- return; -+ return false; - } - - force = force || progress_cleared; -@@ -417,7 +429,7 @@ void progress::update(boost::uint64_t delta, bool force) { - status = float(std::min(value, max)) / float(max); - status = float(size_t(1000.f * status)) * (1.f / 1000.f); - if(!force && status == last_status) { -- return; -+ return false; - } - } - -@@ -430,7 +442,7 @@ void progress::update(boost::uint64_t delta, bool force) { - const boost::uint64_t update_interval = 50000; - #endif - if(!force && time - last_time < update_interval) { -- return; -+ return false; - } - - last_time = time; -@@ -461,6 +473,7 @@ void progress::update(boost::uint64_t delta, bool force) { - show_unbounded(status, label.str()); - } - -+ return true; - } - - void progress::set_enabled(bool enable) { -diff --git a/src/util/console.hpp b/src/util/console.hpp -index 1f8354c..4c6875d 100644 ---- a/src/util/console.hpp -+++ b/src/util/console.hpp -@@ -132,8 +132,10 @@ public: - * maximum set in the constructor, the bar will be full. - * \param force Force updating the progress bar. Normally, the progress bar. Otherwise, - * updates are rate-limited and small deltas are not displayed immediately. -+ * -+ * \return true if the progres bar was updated - */ -- void update(boost::uint64_t delta = 0, bool force = false); -+ bool update(boost::uint64_t delta = 0, bool force = false); - - /*! - * Draw a bounded progress bar (with a maximum). -@@ -151,8 +153,13 @@ public: - */ - static void show_unbounded(float value, const std::string & label = std::string()); - -- //! Clear any progress bar to make way for other output. -- static int clear(); -+ /*! -+ * Clear any progress bar to make way for other output. -+ * -+ * \param reset_only Only reset the cursor if cleaning the line is expensive. -+ * This should be used if the whole line will be written anyway. -+ */ -+ static int clear(bool reset_only = false); - - //! Enable or disable the progress bar. - static void set_enabled(bool enable); --- -1.9.1 - diff --git a/mingw-w64-innoextract/fix-restoring-original-console-color.patch b/mingw-w64-innoextract/fix-restoring-original-console-color.patch deleted file mode 100644 index a6acabbe7e..0000000000 --- a/mingw-w64-innoextract/fix-restoring-original-console-color.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 507f4c178f8bb085afe830e0772ce79b1b8e771a Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Tue, 14 May 2013 21:00:36 +0200 -Subject: [PATCH] Fix restoring original console color under Windows - ---- - src/util/console.cpp | 20 +++++++++++++++----- - 1 file changed, 15 insertions(+), 5 deletions(-) - -diff --git a/src/util/console.cpp b/src/util/console.cpp -index 9129056..f86a4f1 100644 ---- a/src/util/console.cpp -+++ b/src/util/console.cpp -@@ -118,10 +118,17 @@ shell_command dim_cyan = { FOREGROUND_BLUE | FOREGROUND_GREEN }; - shell_command dim_white = { FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE }; - - shell_command reset = dim_white; --shell_command original_color; - -+boost::uint16_t original_color = boost::uint16_t(-1); - static void restore_color() { -- std::cout << original_color; -+ if(original_color != boost::uint16_t(-1) && console_handle) { -+ SetConsoleTextAttribute(console_handle, original_color); -+ } -+} -+static BOOL WINAPI restore_color_handler(DWORD type) { -+ (void)type; -+ restore_color(); -+ return FALSE; - } - - #else -@@ -163,7 +170,7 @@ void init(is_enabled color, is_enabled progress) { - console_handle = GetStdHandle(STD_OUTPUT_HANDLE); - CONSOLE_SCREEN_BUFFER_INFO info; - if(console_handle && GetConsoleScreenBufferInfo(console_handle, &info)) { -- original_color.command = info.wAttributes; -+ original_color = info.wAttributes; - } else { - is_tty = false; - color = disable; -@@ -208,10 +215,10 @@ void init(is_enabled color, is_enabled progress) { - - #if defined(_WIN32) - // Preserve the original background color if it isn't too bright -- if(!(original_color.command & (COMMON_LVB_REVERSE_VIDEO|BACKGROUND_INTENSITY))) { -+ if(!(original_color & (COMMON_LVB_REVERSE_VIDEO|BACKGROUND_INTENSITY))) { - boost::uint16_t bgmask = BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE; - if((color & bgmask) != bgmask) { -- boost::uint16_t bg = original_color.command & bgmask; -+ boost::uint16_t bg = original_color & bgmask; - BOOST_FOREACH(shell_command * color, all_colors) { - color->command |= bg; - } -@@ -220,6 +227,7 @@ void init(is_enabled color, is_enabled progress) { - // Force dim_white as the default color under Windows, restore original color on exit - std::cout << reset; - std::atexit(restore_color); -+ SetConsoleCtrlHandler(restore_color_handler, TRUE); - #endif - - } -@@ -324,6 +332,8 @@ int progress::clear(bool reset_only) { - - #else - -+ (void)reset_only; -+ - // Use the ANSI/VT100 control sequence to clear the current line - - std::cout << "\33[2K\r"; --- -1.9.1 - diff --git a/mingw-w64-innoextract/fix-typo-in-comment.patch b/mingw-w64-innoextract/fix-typo-in-comment.patch deleted file mode 100644 index 7b9d83476d..0000000000 --- a/mingw-w64-innoextract/fix-typo-in-comment.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7358c530490f9595444fcef3e1352905a6b2a366 Mon Sep 17 00:00:00 2001 -From: Daniel Scharrer -Date: Thu, 11 Apr 2013 17:23:23 +0200 -Subject: [PATCH] Fix typo in comment - ---- - src/util/windows.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/util/windows.cpp b/src/util/windows.cpp -index e25d4bb..7ee7caf 100644 ---- a/src/util/windows.cpp -+++ b/src/util/windows.cpp -@@ -52,7 +52,7 @@ int main() { - - std::setlocale(LC_ALL, ""); - -- // Get the UTF-16 command-line parameters and convert it them to UTF-8 ourself. -+ // Get the UTF-16 command-line parameters and convert them to UTF-8 ourself. - int argc = __argc; - wchar_t ** wargv = __wargv; - char ** argv = new char *[argc + 1]; --- -1.9.1 - From d6b45640aafb93d6ee549af1c2e53f213905b953 Mon Sep 17 00:00:00 2001 From: Konstantin Podsvirov Date: Tue, 20 Oct 2015 11:14:24 +0300 Subject: [PATCH 1754/2060] Fix install prefix in osgQtQuick package --- mingw-w64-osgqtquick/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-osgqtquick/PKGBUILD b/mingw-w64-osgqtquick/PKGBUILD index a67ef2f8b7..0c9fcece8a 100644 --- a/mingw-w64-osgqtquick/PKGBUILD +++ b/mingw-w64-osgqtquick/PKGBUILD @@ -34,7 +34,7 @@ package_release() { MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ -DosgQtQuick_BUILD_DOCS:BOOL=ON \ ../osgqtquick-2.0.0-alpha-2 @@ -53,7 +53,7 @@ package_debug() { MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=Debug \ ../osgqtquick-2.0.0-alpha-2 From c8ff5690c821fb25540b4afce3403c106212fa87 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 20 Oct 2015 13:06:53 +0300 Subject: [PATCH 1755/2060] Update fail list --- FAIL_LIST.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 46874b25d7..1be3e7c804 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -17,8 +17,6 @@ List of packages that currently fail to build - gtkada -- innoextract - - itk - ldns From d341bfd7377163ad22d07f09649f3e7898c73157 Mon Sep 17 00:00:00 2001 From: Konstantin Podsvirov Date: Tue, 20 Oct 2015 13:24:22 +0300 Subject: [PATCH 1756/2060] Improved osgQtQuick packaging --- mingw-w64-osgqtquick/PKGBUILD | 62 ++++++++++++++++------------------- 1 file changed, 28 insertions(+), 34 deletions(-) diff --git a/mingw-w64-osgqtquick/PKGBUILD b/mingw-w64-osgqtquick/PKGBUILD index 0c9fcece8a..e3ed33cfda 100644 --- a/mingw-w64-osgqtquick/PKGBUILD +++ b/mingw-w64-osgqtquick/PKGBUILD @@ -24,60 +24,54 @@ build() { plain "No build step" } -package_release() { - provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") - conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +package_prog() { - [[ -d ${srcdir}/build-release ]] && rm -rf ${srcdir}/build-release - mkdir -p ${srcdir}/build-release && cd ${srcdir}/build-release + local _buildtype=${1} + local _builddir=${_buildtype}-${MINGW_CHOST} + + [[ "${_buildtype}" == "Release" ]] && { + local _postfix= + } || { + depends=("${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug") + local _postfix="-debug" + } + + provides=("${MINGW_PACKAGE_PREFIX}-${_realname}${_postfix}") + conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}${_postfix}") + + [[ -d ${srcdir}/${_builddir} ]] && rm -rf ${srcdir}/${_builddir} + mkdir -p ${srcdir}/${_builddir} && cd ${srcdir}/${_builddir} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE=Release \ - -DosgQtQuick_BUILD_DOCS:BOOL=ON \ - ../osgqtquick-2.0.0-alpha-2 - - make DESTDIR=${pkgdir} -j1 install -} - -package_debug() { - depends=("${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug") - provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") - conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-debug") - - [[ -d ${srcdir}/build-debug ]] && rm -rf ${srcdir}/build-debug - mkdir -p ${srcdir}/build-debug && cd ${srcdir}/build-debug - - MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ - ${MINGW_PREFIX}/bin/cmake.exe \ - -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_BUILD_TYPE=${_buildtype} \ ../osgqtquick-2.0.0-alpha-2 make DESTDIR=${pkgdir} -j1 install - rm -rf ${pkgdir}${MINGW_PREFIX}/include - rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake/osgQtQuick/osgQtQuickConfig.cmake - rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake/osgQtQuick/osgQtQuickConfigVersion.cmake - rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake/osgQtQuick/osgQtQuickTargets.cmake - rm -rf ${pkgdir}${MINGW_PREFIX}/share/qt5/qml/*/qmldir + if [[ "${_buildtype}" == "Debug" ]]; then + rm -rf ${pkgdir}${MINGW_PREFIX}/include + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake/osgQtQuick/osgQtQuickConfig.cmake + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake/osgQtQuick/osgQtQuickConfigVersion.cmake + rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake/osgQtQuick/osgQtQuickTargets.cmake + rm -rf ${pkgdir}${MINGW_PREFIX}/share/qt5/qml/*/qmldir + fi } package_mingw-w64-i686-osgQtQuick() { - package_release + package_prog Release } package_mingw-w64-i686-osgQtQuick-debug() { - package_debug + package_prog Debug } package_mingw-w64-x86_64-osgQtQuick() { - package_release + package_prog Release } package_mingw-w64-x86_64-osgQtQuick-debug() { - package_debug + package_prog Debug } From 223216d3c177c01b336157eebc9e168eafa57ce1 Mon Sep 17 00:00:00 2001 From: Konstantin Podsvirov Date: Tue, 20 Oct 2015 14:24:18 +0300 Subject: [PATCH 1757/2060] Improved osgQtQuick packaging --- mingw-w64-osgqtquick/PKGBUILD | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/mingw-w64-osgqtquick/PKGBUILD b/mingw-w64-osgqtquick/PKGBUILD index e3ed33cfda..a8a8fc84ce 100644 --- a/mingw-w64-osgqtquick/PKGBUILD +++ b/mingw-w64-osgqtquick/PKGBUILD @@ -3,7 +3,6 @@ _realname=osgQtQuick pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -_pkgver=v2.0.0-alpha-2 pkgver=2.0.0.7 pkgrel=1 pkgdesc="OpenSceneGraph QML Modules (mingw-w64)" @@ -17,7 +16,7 @@ makedepends=("make" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug") options=(!strip staticlibs !buildflags) -source=(https://github.com/podsvirov/osgqtquick/archive/v2.0.0-alpha-2.zip) +source=(https://github.com/podsvirov/osgqtquick/archive/v${pkgver}.zip) md5sums=('SKIP') build() { @@ -25,19 +24,12 @@ build() { } package_prog() { - local _buildtype=${1} local _builddir=${_buildtype}-${MINGW_CHOST} - [[ "${_buildtype}" == "Release" ]] && { - local _postfix= - } || { + if [[ "${_buildtype}" == "Debug" ]]; then depends=("${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug") - local _postfix="-debug" - } - - provides=("${MINGW_PACKAGE_PREFIX}-${_realname}${_postfix}") - conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}${_postfix}") + fi [[ -d ${srcdir}/${_builddir} ]] && rm -rf ${srcdir}/${_builddir} mkdir -p ${srcdir}/${_builddir} && cd ${srcdir}/${_builddir} @@ -47,7 +39,7 @@ package_prog() { -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=${_buildtype} \ - ../osgqtquick-2.0.0-alpha-2 + ../osgqtquick-${pkgver} make DESTDIR=${pkgdir} -j1 install From d1bc62e06e4ab7fc0c9b9973d3d036eff17224a2 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 20 Oct 2015 15:22:22 +0300 Subject: [PATCH 1758/2060] numpy: Update to 1.10.1 --- mingw-w64-python-numpy/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-numpy/PKGBUILD b/mingw-w64-python-numpy/PKGBUILD index 59e4e83639..6fd42536f1 100644 --- a/mingw-w64-python-numpy/PKGBUILD +++ b/mingw-w64-python-numpy/PKGBUILD @@ -4,7 +4,7 @@ _realname=numpy pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.10.0 +pkgver=1.10.1 pkgrel=1 pkgdesc="Scientific tools for Python (mingw-w64)" arch=('any') @@ -24,7 +24,7 @@ source=(http://downloads.sourceforge.net/numpy/${_realname}-${pkgver}.tar.gz fix-testsuite.patch mincoming-stack-boundary-only-32bit.patch disable-visualcompaq-for-mingw.patch) -md5sums=('116c65ae392e9b50aad713f42158f32a' +md5sums=('3fed2b50906bc19018cec5fa26168aa5' 'e2c63f8472ea162d442beb9f05441f9d' 'c9e172056f09052d17cf8162b9cf5b3a' 'f4a729b29154f1fde5ffe911beef5984' From af0f9d69c722f137cb9c2c58f5f760004b72a0bf Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 20 Oct 2015 15:22:54 +0300 Subject: [PATCH 1759/2060] osgqtquick: Save sources in archive with name. --- mingw-w64-osgqtquick/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-osgqtquick/PKGBUILD b/mingw-w64-osgqtquick/PKGBUILD index a8a8fc84ce..b88dfedda3 100644 --- a/mingw-w64-osgqtquick/PKGBUILD +++ b/mingw-w64-osgqtquick/PKGBUILD @@ -16,8 +16,8 @@ makedepends=("make" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-OpenSceneGraph-debug") options=(!strip staticlibs !buildflags) -source=(https://github.com/podsvirov/osgqtquick/archive/v${pkgver}.zip) -md5sums=('SKIP') +source=(${_realname}-${pkgver}.zip::https://github.com/podsvirov/osgqtquick/archive/v${pkgver}.zip) +md5sums=('000ab32e141448461279ceb6ca03ade6') build() { plain "No build step" From 9a80eeaaeb23ab9dc0f63e7b57ee69b9bd836580 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 21 Oct 2015 14:55:56 +0300 Subject: [PATCH 1760/2060] libebml: Update to 1.3.3 --- mingw-w64-libebml/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libebml/PKGBUILD b/mingw-w64-libebml/PKGBUILD index ac615797c4..ed22913272 100644 --- a/mingw-w64-libebml/PKGBUILD +++ b/mingw-w64-libebml/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libebml +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.3.1 -pkgrel=2 +pkgver=1.3.3 +pkgrel=1 pkgdesc="Extensible Binary Meta Language library (mingw-w64)" arch=('any') license=('LGPL') @@ -14,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "automake" "autoconf") options=('staticlibs') source=("http://dl.matroska.org/downloads/${_realname}/${_realname}-${pkgver}.tar.bz2") -md5sums=('2d5a0e502fabedfded2a890c6b5513a5') +md5sums=('a8b270482620970d9891958618b54d77') prepare() { cd ${srcdir}/${_realname}-${pkgver} From ca9205e7ca213c1bed11c52039c082a631ca0ac2 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 21 Oct 2015 14:57:28 +0300 Subject: [PATCH 1761/2060] libmatroska: Update to 1.4.4 --- mingw-w64-libmatroska/001-ebml-ldflags.patch | 11 ----------- mingw-w64-libmatroska/PKGBUILD | 18 +++++------------- 2 files changed, 5 insertions(+), 24 deletions(-) delete mode 100644 mingw-w64-libmatroska/001-ebml-ldflags.patch diff --git a/mingw-w64-libmatroska/001-ebml-ldflags.patch b/mingw-w64-libmatroska/001-ebml-ldflags.patch deleted file mode 100644 index 9722a41212..0000000000 --- a/mingw-w64-libmatroska/001-ebml-ldflags.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libmatroska-1.4.2/Makefile.am.orig 2015-01-06 23:24:53.694200000 +0300 -+++ libmatroska-1.4.2/Makefile.am 2015-01-06 23:25:34.880200000 +0300 -@@ -26,7 +26,7 @@ - src/KaxSemantic.cpp \ - src/KaxTracks.cpp \ - src/KaxVersion.cpp --libmatroska_la_LDFLAGS = -version-info 6:0:0 -no-undefined -+libmatroska_la_LDFLAGS = -version-info 6:0:0 -no-undefined $(EBML_LIBS) - - nobase_include_HEADERS = \ - matroska/c/libmatroska.h \ diff --git a/mingw-w64-libmatroska/PKGBUILD b/mingw-w64-libmatroska/PKGBUILD index 69e6915825..fa3276047d 100644 --- a/mingw-w64-libmatroska/PKGBUILD +++ b/mingw-w64-libmatroska/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libmatroska +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.4.2 -pkgrel=2 +pkgver=1.4.4 +pkgrel=1 pkgdesc="Matroska library (mingw-w64)" arch=('any') license=('LGPL') @@ -13,17 +14,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "automake" "autoconf") options=('staticlibs') -source=("http://dl.matroska.org/downloads/${_realname}/${_realname}-${pkgver}.tar.bz2" - 001-ebml-ldflags.patch) -md5sums=('f8fe42003e072a42a19ed40405f9efdb' - 'f02191d9d009d82d80985e4079eff266') - -prepare() { - cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/001-ebml-ldflags.patch - - autoreconf -fiv -} +source=("http://dl.matroska.org/downloads/${_realname}/${_realname}-${pkgver}.tar.bz2") +md5sums=('6a8e4528f713ec33faf4d793e61f883c') build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" From 8b6ac8b6ef6ba8e902dcfe8bb74504fcf0f5f0ce Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Wed, 21 Oct 2015 08:52:38 -0400 Subject: [PATCH 1762/2060] Boost 1.59: fix uuid header seed_rng.h MinGW build error. * Add winapi headers when building on windows not just MSVC. See https://github.com/boostorg/uuid/pull/6 for more information. --- mingw-w64-boost/PKGBUILD | 20 +++++++++++-------- ...st-1.59.0-mingw-uuid-seed-rng-header.patch | 18 +++++++++++++++++ 2 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch diff --git a/mingw-w64-boost/PKGBUILD b/mingw-w64-boost/PKGBUILD index 4091e409e2..a1fb84e792 100644 --- a/mingw-w64-boost/PKGBUILD +++ b/mingw-w64-boost/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.59.0 _boostver=${pkgver//./_} -pkgrel=1 +pkgrel=2 pkgdesc="Free peer-reviewed portable C++ source libraries (mingw-w64)" arch=('any') url="http://www.boost.org/" @@ -35,6 +35,7 @@ source=(http://downloads.sourceforge.net/sourceforge/boost/boost_${_boostver}.ta boost-1.59.0-log.patch boost-1.59.0-mingw-serialization.patch boost-1.59.0-mingw-context.patch + boost-1.59.0-mingw-uuid-seed-rng-header.patch boost-include-intrin-h-on-mingw-w64.patch using-mingw-w64-python.patch msys2-mingw-folders-bootstrap.patch) @@ -55,15 +56,16 @@ md5sums=('6aa9a5c6a4ca1016edd0ed1178e3cb87' '1453e99bb24028e7b299df3ee70b5846' 'db4ed93452debd15b2cd165c438f9911' '349127a0f1bcddfc189c56219bf39853' + '8eb226e08b529cdfc9b849d29b11cb14' '7f2942e46b6aa6eec02bdde157b8b132' 'c2aac61b370b321552b5240b9ee7248e' '29ffd4b1636e31678fa8e1afa77305eb') prepare() { cd "${srcdir}/boost_${_boostver}" - + patch -p1 -i ${srcdir}/boost-1.54.0-bootstrap.patch - + # https://svn.boost.org/trac/boost/ticket/6150 patch -p1 -i ${srcdir}/boost-1.50.0-fix-non-utf8-files.patch @@ -104,18 +106,20 @@ prepare() { # https://svn.boost.org/trac/boost/ticket/7262 patch -p0 -i ${srcdir}/boost-1.59.0-mingw-context.patch - + # Fix FTBFS on recent mingw-w64 and also use intrinsics based # versions of the Interlocked symbols which are better optimized patch -p0 -i ${srcdir}/boost-include-intrin-h-on-mingw-w64.patch - + # https://github.com/boostorg/serialization/pull/19 patch -p1 -i ${srcdir}/boost-1.59.0-mingw-serialization.patch # Use out own build Python patch -p1 -i ${srcdir}/using-mingw-w64-python.patch - + patch -p1 -i ${srcdir}/msys2-mingw-folders-bootstrap.patch + + patch -p1 -i ${srcdir}/boost-1.59.0-mingw-uuid-seed-rng-header.patch } build() { @@ -123,9 +127,9 @@ build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" lndir "${srcdir}/boost_${_boostver}" "${srcdir}/build-${MINGW_CHOST}" - + cd "${srcdir}/build-${MINGW_CHOST}" - + echo "using python : 2.7 : ${PREFIX_DEPS}/bin/python2.exe : ${PREFIX_DEPS}/include/python2.7 ;" >> ./tools/build/src/user-config.jam echo "using python : 3.5 : ${PREFIX_DEPS}/bin/python3.exe : ${PREFIX_DEPS}/include/python3.5m : ${PREFIX_DEPS}/lib/python3.5/config-3.5m ;" >> ./tools/build/src/user-config.jam #echo "using gcc : : ${PREFIX_DEPS}/bin/g++.exe : ${PREFIX_DEPS}/bin/windres.exe ;" >> ./tools/build/src/user-config.jam diff --git a/mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch b/mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch new file mode 100644 index 0000000000..0e1dd605f3 --- /dev/null +++ b/mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch @@ -0,0 +1,18 @@ +--- a/boost/uuid/seed_rng.hpp Fri May 15 12:55:19 2015 ++++ b/boost/uuid/seed_rng.hpp Tue Oct 20 09:03:44 2015 +@@ -40,11 +40,14 @@ + #if defined(_MSC_VER) + # pragma warning(push) // Save warning settings. + # pragma warning(disable : 4996) // Disable deprecated std::fopen ++# pragma comment(lib, "advapi32.lib") ++#endif ++ ++#if defined(BOOST_WINDOWS) + # include // for CryptAcquireContextA, CryptGenRandom, CryptReleaseContext + # include + # include + # include +-# pragma comment(lib, "advapi32.lib") + #else + # include // for gettimeofday + # include // for pid_t From 2627fe6cdcf43a39d66f7b869655d88e6ef934a9 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 22 Oct 2015 11:06:30 +0300 Subject: [PATCH 1763/2060] cmake: Do not generate import library for executables. --- mingw-w64-cmake/PKGBUILD | 11 +++++++---- mingw-w64-cmake/disable-response-files-for-msys.patch | 6 +++--- ...-not-generate-import-library-for-executables.patch | 11 +++++++++++ 3 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-cmake/do-not-generate-import-library-for-executables.patch diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 22e872342a..c0278139ff 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -4,7 +4,7 @@ _realname=cmake pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.3.2 -pkgrel=1 +pkgrel=2 pkgdesc="A cross-platform open-source make system (mingw-w64)" arch=('any') url="http://www.cmake.org/" @@ -24,12 +24,14 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" "qt5-static-plugin-support.patch" - "pkg-config-without-prefix.patch") + "pkg-config-without-prefix.patch" + "do-not-generate-import-library-for-executables.patch") md5sums=('5febbd11bcaac854a27eebaf4a124be2' - '567da5e1794863b4df8affdc7e876a7e' + '3b0eb07bb98ea9b8e8482e4936971013' 'fb33ace70ba863159b2c7964a9661e1e' '6461b89ff7d1ca0c4022801dff8475a7' - 'a55c5c6231fc953bad5600c3bb49667b') + 'a55c5c6231fc953bad5600c3bb49667b' + '3105d5c805111cd4db89a4c743ed18fe') prepare() { cd ${_realname}-${pkgver} @@ -37,6 +39,7 @@ prepare() { patch -Np1 -i ${srcdir}/dont-install-bundle.patch patch -Np1 -i ${srcdir}/qt5-static-plugin-support.patch patch -Np1 -i ${srcdir}/pkg-config-without-prefix.patch + patch -Np1 -i ${srcdir}/do-not-generate-import-library-for-executables.patch } build() { diff --git a/mingw-w64-cmake/disable-response-files-for-msys.patch b/mingw-w64-cmake/disable-response-files-for-msys.patch index 6a0739d176..f218f041e9 100644 --- a/mingw-w64-cmake/disable-response-files-for-msys.patch +++ b/mingw-w64-cmake/disable-response-files-for-msys.patch @@ -1,6 +1,6 @@ ---- cmake-3.1.0/Modules/Platform/Windows-GNU.cmake.orig 2014-01-30 23:55:26.783200000 +0400 -+++ cmake-3.1.0/Modules/Platform/Windows-GNU.cmake 2014-01-31 00:03:27.411200000 +0400 -@@ -86,9 +86,11 @@ +--- cmake-3.3.2/Modules/Platform/Windows-GNU.cmake.orig 2015-09-16 19:53:05.000000000 +0300 ++++ cmake-3.3.2/Modules/Platform/Windows-GNU.cmake 2015-10-22 10:50:03.463924000 +0300 +@@ -84,9 +84,11 @@ set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "") set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "") diff --git a/mingw-w64-cmake/do-not-generate-import-library-for-executables.patch b/mingw-w64-cmake/do-not-generate-import-library-for-executables.patch new file mode 100644 index 0000000000..7c0d117dd1 --- /dev/null +++ b/mingw-w64-cmake/do-not-generate-import-library-for-executables.patch @@ -0,0 +1,11 @@ +--- cmake-3.3.2/Modules/Platform/Windows-GNU.cmake.orig 2015-09-16 19:53:05.000000000 +0300 ++++ cmake-3.3.2/Modules/Platform/Windows-GNU.cmake 2015-10-22 10:50:03.463924000 +0300 +@@ -115,7 +117,7 @@ + set(CMAKE_${lang}_CREATE_SHARED_LIBRARY + " -o -Wl,--out-implib, ${CMAKE_GNULD_IMAGE_VERSION} ") + set(CMAKE_${lang}_LINK_EXECUTABLE +- " -o -Wl,--out-implib, ${CMAKE_GNULD_IMAGE_VERSION} ") ++ " -o ${CMAKE_GNULD_IMAGE_VERSION} ") + + list(APPEND CMAKE_${lang}_ABI_FILES "Platform/Windows-GNU-${lang}-ABI") + From a89b4a605d59e63a84a4814ca72d3a4b693d11af Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 22 Oct 2015 11:07:20 +0300 Subject: [PATCH 1764/2060] x265: Rebuild with fixed cmake to generate proper import libraries. --- mingw-w64-x265/PKGBUILD | 13 +++---------- mingw-w64-x265/install-shared-library.patch | 10 ---------- 2 files changed, 3 insertions(+), 20 deletions(-) delete mode 100644 mingw-w64-x265/install-shared-library.patch diff --git a/mingw-w64-x265/PKGBUILD b/mingw-w64-x265/PKGBUILD index de97a64cf1..9e59f2afe8 100644 --- a/mingw-w64-x265/PKGBUILD +++ b/mingw-w64-x265/PKGBUILD @@ -5,7 +5,7 @@ _realname=x265 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.8 -pkgrel=1 +pkgrel=2 pkgdesc='Open Source H265/HEVC video encoder (mingw-w64)' arch=('any') license=('GPL') @@ -13,15 +13,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=('yasm' "${MINGW_PACKAGE_PREFIX}-cmake") options=('strip') url='https://bitbucket.org/multicoreware/x265' -source=("${_realname}-${pkgver}.tar.bz2"::"${url}/get/${pkgver}.tar.bz2" - install-shared-library.patch) -md5sums=('e3a008a74b8f44612cac4ec2f537b0f8' - 'c1dc65fc3191d6bafdd3576235ade5ae') - -prepare() { - cd "${srcdir}"/multicoreware-x265-* - patch -p1 -i "${srcdir}"/install-shared-library.patch -} +source=("${_realname}-${pkgver}.tar.bz2"::"${url}/get/${pkgver}.tar.bz2") +md5sums=('e3a008a74b8f44612cac4ec2f537b0f8') build() { # Build 8 bit-depth lib and exe. diff --git a/mingw-w64-x265/install-shared-library.patch b/mingw-w64-x265/install-shared-library.patch deleted file mode 100644 index 6052301b5d..0000000000 --- a/mingw-w64-x265/install-shared-library.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- multicoreware-x265-cea97c4d7945/source/CMakeLists.txt.orig 2014-05-07 11:27:46.256400000 +0400 -+++ multicoreware-x265-cea97c4d7945/source/CMakeLists.txt 2014-05-07 11:42:00.618600000 +0400 -@@ -267,6 +267,7 @@ - # shared library is not installed if a tag is not found - set_target_properties(x265-shared PROPERTIES VERSION ${X265_LATEST_TAG} SOVERSION ${X265_BUILD}) - install(TARGETS x265-shared -+ RUNTIME DESTINATION ${BIN_INSTALL_DIR} - LIBRARY DESTINATION ${LIB_INSTALL_DIR} - ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) - endif() From 465a3b7c67c43575f05c2915c9aa0164da5669cb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 22 Oct 2015 11:20:53 +0300 Subject: [PATCH 1765/2060] ffmpeg: Rebuild with x265-1.8 --- mingw-w64-ffmpeg/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 0b12906190..a873a82690 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -2,9 +2,9 @@ _realname=ffmpeg pkgbase="mingw-w64-${_realname}" -pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.8.1 -pkgrel=1 +pkgrel=2 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" From 4df23264811cb9dfefaae29679cde8ab51a7498b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 22 Oct 2015 11:54:33 +0300 Subject: [PATCH 1766/2060] diffutils: Rebuild. --- mingw-w64-diffutils/PKGBUILD | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/mingw-w64-diffutils/PKGBUILD b/mingw-w64-diffutils/PKGBUILD index be64ba1108..252d771b08 100644 --- a/mingw-w64-diffutils/PKGBUILD +++ b/mingw-w64-diffutils/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Paul Moore _realname=diffutils +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=3.3 -pkgrel=1 +pkgrel=2 pkgdesc="GNU Diffutils is a package of several programs related to finding differences between files (mingw-w64)" arch=('any') url='http://www.gnu.org/software/diffutils/' @@ -12,9 +13,9 @@ license=('GPL3') depends=("${MINGW_PACKAGE_PREFIX}-libwinpthread") options=('strip' '!libtool' 'staticlibs') source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz" - "win_use_raise_rather_than_kill.patch" - "win64_dont_check_ptrdiff_size.patch" - "msvc_invalid_parameter_handler.patch") + "win_use_raise_rather_than_kill.patch" + "win64_dont_check_ptrdiff_size.patch" + "msvc_invalid_parameter_handler.patch") md5sums=('99180208ec2a82ce71f55b0d7389f1b3' '6e979e13696642bd184fb6b946ba996a' '957454716c06313df2251cd2baf5a89c' @@ -22,15 +23,18 @@ md5sums=('99180208ec2a82ce71f55b0d7389f1b3' prepare() { - cd $srcdir/${_realname}-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} patch -p0 -i ${srcdir}/win_use_raise_rather_than_kill.patch patch -p0 -i ${srcdir}/win64_dont_check_ptrdiff_size.patch patch -p0 -i ${srcdir}/msvc_invalid_parameter_handler.patch } build() { - cd $srcdir/${_realname}-${pkgver} - ./configure --prefix=${MINGW_PREFIX} \ + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ../${_realname}-${pkgver}/configure --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} @@ -39,7 +43,7 @@ build() { } package() { - cd ${srcdir}/${_realname}-${pkgver} + cd ${srcdir}/build-${MINGW_CHOST} make install DESTDIR="${pkgdir}" # Licenses From ed4260c5487bd5eb0dc373e246da254a5a8f5d1a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 22 Oct 2015 13:39:49 +0300 Subject: [PATCH 1767/2060] gxml: Rebuild --- mingw-w64-gxml/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gxml/PKGBUILD b/mingw-w64-gxml/PKGBUILD index dabe3b5d1b..106eaabe3d 100644 --- a/mingw-w64-gxml/PKGBUILD +++ b/mingw-w64-gxml/PKGBUILD @@ -1,14 +1,15 @@ # Maintainer: Daniel Espinosa _realname=gxml +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.6.0 -pkgrel=1 +pkgrel=2 arch=('any') -pkgdesc="LibXML2 GObject wrapper version 0.4 (mingw-w64)" +pkgdesc="LibXML2 GObject wrapper (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-glib2>=2.34.0" + "${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libgee" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-xz" From 11e71ffead048eab782cf7afaf66eb186f9014c0 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 22 Oct 2015 13:40:31 +0300 Subject: [PATCH 1768/2060] librescl: Update to 0.3.3 --- FAIL_LIST.md | 2 -- mingw-w64-librescl/PKGBUILD | 11 ++++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/FAIL_LIST.md b/FAIL_LIST.md index 1be3e7c804..484b2ce8c5 100644 --- a/FAIL_LIST.md +++ b/FAIL_LIST.md @@ -21,8 +21,6 @@ List of packages that currently fail to build - ldns -- librescl - - librocket-git - nim diff --git a/mingw-w64-librescl/PKGBUILD b/mingw-w64-librescl/PKGBUILD index ea3c80dc3e..440ad46501 100644 --- a/mingw-w64-librescl/PKGBUILD +++ b/mingw-w64-librescl/PKGBUILD @@ -1,11 +1,12 @@ # Maintainer: Daniel Espinosa _realname=librescl +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.2.1 -pkgrel=2 +pkgver=0.3.3 +pkgrel=1 arch=('any') -pkgdesc="Reader/Writer SCL IEC 61850-6 files version 0.2.1 (mingw-w64)" +pkgdesc="Reader/Writer SCL IEC 61850-6 files (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" "${MINGW_PACKAGE_PREFIX}-glib2>=2.34.0" @@ -21,7 +22,7 @@ options=('strip' 'staticlibs') license=('LGPL') url="https://github.com/pwmediaconsulting/librescl" source=("https://github.com/pwmediaconsulting/librescl/archive/LIBRESCL_${pkgver//./_}.tar.gz") -sha256sums=('6c97b9f3285b8d406711ead5295991a8b6586898b93f9a5e95b759bc4d57490f') +sha256sums=('9b1ffec7a11cd92e36bfb590b3a9b99d0bf39d2895a5e4c76c65998a19fb57c5') prepare() { cd "${srcdir}"/librescl-LIBRESCL_${pkgver//./_} @@ -43,7 +44,7 @@ build() { --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib - make -j1 + make } package() { From 8381a2f1822b2d2c9787ca5b6d1b8ebcc5a526db Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Wed, 21 Oct 2015 08:52:38 -0400 Subject: [PATCH 1769/2060] Boost 1.59: fix uuid header seed_rng.h MinGW build error. * Add winapi headers when building on windows not just MSVC. See https://github.com/boostorg/uuid/pull/6 for more information. * Fixes issue #836. --- mingw-w64-boost/PKGBUILD | 20 +++++++++++-------- ...st-1.59.0-mingw-uuid-seed-rng-header.patch | 18 +++++++++++++++++ 2 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch diff --git a/mingw-w64-boost/PKGBUILD b/mingw-w64-boost/PKGBUILD index 4091e409e2..dd61261ac8 100644 --- a/mingw-w64-boost/PKGBUILD +++ b/mingw-w64-boost/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.59.0 _boostver=${pkgver//./_} -pkgrel=1 +pkgrel=2 pkgdesc="Free peer-reviewed portable C++ source libraries (mingw-w64)" arch=('any') url="http://www.boost.org/" @@ -35,6 +35,7 @@ source=(http://downloads.sourceforge.net/sourceforge/boost/boost_${_boostver}.ta boost-1.59.0-log.patch boost-1.59.0-mingw-serialization.patch boost-1.59.0-mingw-context.patch + boost-1.59.0-mingw-uuid-seed-rng-header.patch boost-include-intrin-h-on-mingw-w64.patch using-mingw-w64-python.patch msys2-mingw-folders-bootstrap.patch) @@ -55,15 +56,16 @@ md5sums=('6aa9a5c6a4ca1016edd0ed1178e3cb87' '1453e99bb24028e7b299df3ee70b5846' 'db4ed93452debd15b2cd165c438f9911' '349127a0f1bcddfc189c56219bf39853' + '6f568bb9cf5a01b5d0dc253a9b557229' '7f2942e46b6aa6eec02bdde157b8b132' 'c2aac61b370b321552b5240b9ee7248e' '29ffd4b1636e31678fa8e1afa77305eb') prepare() { cd "${srcdir}/boost_${_boostver}" - + patch -p1 -i ${srcdir}/boost-1.54.0-bootstrap.patch - + # https://svn.boost.org/trac/boost/ticket/6150 patch -p1 -i ${srcdir}/boost-1.50.0-fix-non-utf8-files.patch @@ -104,18 +106,20 @@ prepare() { # https://svn.boost.org/trac/boost/ticket/7262 patch -p0 -i ${srcdir}/boost-1.59.0-mingw-context.patch - + # Fix FTBFS on recent mingw-w64 and also use intrinsics based # versions of the Interlocked symbols which are better optimized patch -p0 -i ${srcdir}/boost-include-intrin-h-on-mingw-w64.patch - + # https://github.com/boostorg/serialization/pull/19 patch -p1 -i ${srcdir}/boost-1.59.0-mingw-serialization.patch # Use out own build Python patch -p1 -i ${srcdir}/using-mingw-w64-python.patch - + patch -p1 -i ${srcdir}/msys2-mingw-folders-bootstrap.patch + + patch -p1 -i ${srcdir}/boost-1.59.0-mingw-uuid-seed-rng-header.patch } build() { @@ -123,9 +127,9 @@ build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" lndir "${srcdir}/boost_${_boostver}" "${srcdir}/build-${MINGW_CHOST}" - + cd "${srcdir}/build-${MINGW_CHOST}" - + echo "using python : 2.7 : ${PREFIX_DEPS}/bin/python2.exe : ${PREFIX_DEPS}/include/python2.7 ;" >> ./tools/build/src/user-config.jam echo "using python : 3.5 : ${PREFIX_DEPS}/bin/python3.exe : ${PREFIX_DEPS}/include/python3.5m : ${PREFIX_DEPS}/lib/python3.5/config-3.5m ;" >> ./tools/build/src/user-config.jam #echo "using gcc : : ${PREFIX_DEPS}/bin/g++.exe : ${PREFIX_DEPS}/bin/windres.exe ;" >> ./tools/build/src/user-config.jam diff --git a/mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch b/mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch new file mode 100644 index 0000000000..0e1dd605f3 --- /dev/null +++ b/mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch @@ -0,0 +1,18 @@ +--- a/boost/uuid/seed_rng.hpp Fri May 15 12:55:19 2015 ++++ b/boost/uuid/seed_rng.hpp Tue Oct 20 09:03:44 2015 +@@ -40,11 +40,14 @@ + #if defined(_MSC_VER) + # pragma warning(push) // Save warning settings. + # pragma warning(disable : 4996) // Disable deprecated std::fopen ++# pragma comment(lib, "advapi32.lib") ++#endif ++ ++#if defined(BOOST_WINDOWS) + # include // for CryptAcquireContextA, CryptGenRandom, CryptReleaseContext + # include + # include + # include +-# pragma comment(lib, "advapi32.lib") + #else + # include // for gettimeofday + # include // for pid_t From bee6623c8dae2fd92306ab959d849966c978fd24 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Thu, 22 Oct 2015 16:26:37 -0400 Subject: [PATCH 1770/2060] Fix broken md5sum list due to my ignorance of git merge. --- mingw-w64-boost/PKGBUILD | 1 - 1 file changed, 1 deletion(-) diff --git a/mingw-w64-boost/PKGBUILD b/mingw-w64-boost/PKGBUILD index 47aa37f286..dd61261ac8 100644 --- a/mingw-w64-boost/PKGBUILD +++ b/mingw-w64-boost/PKGBUILD @@ -56,7 +56,6 @@ md5sums=('6aa9a5c6a4ca1016edd0ed1178e3cb87' '1453e99bb24028e7b299df3ee70b5846' 'db4ed93452debd15b2cd165c438f9911' '349127a0f1bcddfc189c56219bf39853' - '8eb226e08b529cdfc9b849d29b11cb14' '6f568bb9cf5a01b5d0dc253a9b557229' '7f2942e46b6aa6eec02bdde157b8b132' 'c2aac61b370b321552b5240b9ee7248e' From 90af39ceeee52489668bf6690531bfd207e03507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BERTHO?= Date: Fri, 23 Oct 2015 19:18:20 +0200 Subject: [PATCH 1771/2060] Add cmake dependency --- mingw-w64-muparser/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-muparser/PKGBUILD b/mingw-w64-muparser/PKGBUILD index 862f7e3a2f..cfa17b8b05 100644 --- a/mingw-w64-muparser/PKGBUILD +++ b/mingw-w64-muparser/PKGBUILD @@ -8,6 +8,7 @@ pkgdesc="A fast math parser library" arch=('i686' 'x86_64') url="http://muparser.sourceforge.net/" license=('custom') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") options=('!makeflags') source=("${_realname}-${pkgver}.zip::https://drive.google.com/uc?export=download&id=0BzuB-ydOOoduejdwdTQwcF9JLTA" "CMakeLists.txt") sha1sums=('78db09680cafd5db4fd08a5d472afd2fa65f9274' '76f802239c1a5e0bff713db99ce60a9956a20257') From a862b840d2575ce958453476e2568eb5df7d30e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BERTHO?= Date: Fri, 23 Oct 2015 19:21:14 +0200 Subject: [PATCH 1772/2060] Change tab to space --- mingw-w64-libharu/PKGBUILD | 12 ++++++------ mingw-w64-muparser/PKGBUILD | 10 +++++----- mingw-w64-podofo/PKGBUILD | 12 ++++++------ 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/mingw-w64-libharu/PKGBUILD b/mingw-w64-libharu/PKGBUILD index b8fedc7ea9..72b8827216 100644 --- a/mingw-w64-libharu/PKGBUILD +++ b/mingw-w64-libharu/PKGBUILD @@ -25,12 +25,12 @@ build() { cd build MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ - -DCMAKE_C_COMPILER=${MINGW_PREFIX}/bin/gcc.exe \ - -DCMAKE_MAKE_PROGRAM=${MINGW_PREFIX}/bin/mingw32-make.exe \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS=ON \ - -DBUILD_STATIC_LIBS=ON \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. + -DCMAKE_C_COMPILER=${MINGW_PREFIX}/bin/gcc.exe \ + -DCMAKE_MAKE_PROGRAM=${MINGW_PREFIX}/bin/mingw32-make.exe \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_STATIC_LIBS=ON \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. mingw32-make } diff --git a/mingw-w64-muparser/PKGBUILD b/mingw-w64-muparser/PKGBUILD index cfa17b8b05..617227dc82 100644 --- a/mingw-w64-muparser/PKGBUILD +++ b/mingw-w64-muparser/PKGBUILD @@ -22,10 +22,10 @@ build() { cd $srcdir/${_realname}_v${pkgver//./_} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ - -DCMAKE_CXX_COMPILER=${MINGW_PREFIX}/bin/g++.exe \ - -DCMAKE_MAKE_PROGRAM=${MINGW_PREFIX}/bin/mingw32-make.exe \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} . + -DCMAKE_CXX_COMPILER=${MINGW_PREFIX}/bin/g++.exe \ + -DCMAKE_MAKE_PROGRAM=${MINGW_PREFIX}/bin/mingw32-make.exe \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} . mingw32-make } @@ -35,6 +35,6 @@ package() { # license install -D -m644 License.txt \ - $pkgdir${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + $pkgdir${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-podofo/PKGBUILD b/mingw-w64-podofo/PKGBUILD index eda17cee4e..e5267e193c 100644 --- a/mingw-w64-podofo/PKGBUILD +++ b/mingw-w64-podofo/PKGBUILD @@ -25,13 +25,13 @@ build() { cd build MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ - -Wno-dev \ - -DCMAKE_C_COMPILER=${MINGW_PREFIX}/bin/gcc.exe \ - -DCMAKE_CXX_COMPILER=${MINGW_PREFIX}/bin/g++.exe \ - -DCMAKE_MAKE_PROGRAM=mingw32-make \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. \ + -Wno-dev \ + -DCMAKE_C_COMPILER=${MINGW_PREFIX}/bin/gcc.exe \ + -DCMAKE_CXX_COMPILER=${MINGW_PREFIX}/bin/g++.exe \ + -DCMAKE_MAKE_PROGRAM=mingw32-make \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. \ -DFREETYPE_INCLUDE_DIR=/mingw64/include/freetype2 \ - -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_BUILD_TYPE=Release \ -DPODOFO_BUILD_SHARED=1 \ -DPODOFO_HAVE_JPEG_LIB=1 \ -DPODOFO_HAVE_PNG_LIB=1 \ From 6aceb394e03095bb28952a6d0f0a4d27ff494166 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BERTHO?= Date: Sat, 24 Oct 2015 15:39:44 +0200 Subject: [PATCH 1773/2060] Fixed PKGBUILD --- mingw-w64-libharu/PKGBUILD | 17 ++++++++--------- mingw-w64-muparser/PKGBUILD | 19 ++++++++++--------- mingw-w64-podofo/PKGBUILD | 28 +++++++++++++--------------- 3 files changed, 31 insertions(+), 33 deletions(-) diff --git a/mingw-w64-libharu/PKGBUILD b/mingw-w64-libharu/PKGBUILD index 72b8827216..a8b64bc921 100644 --- a/mingw-w64-libharu/PKGBUILD +++ b/mingw-w64-libharu/PKGBUILD @@ -1,12 +1,13 @@ # Maintainer: Rémi BERTHO _realname=libharu +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.3.0 pkgrel=1 -pkgdesc="C library for generating PDF documents" +pkgdesc="C library for generating PDF documents (mingw-w64)" url="https://github.com/libharu/libharu" -arch=('i686' 'x86_64') +arch=('any') license=('custom:ZLIB') depends=("${MINGW_PACKAGE_PREFIX}-libpng") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") @@ -21,21 +22,19 @@ prepare() { build() { cd "$srcdir/$_realname-RELEASE_${pkgver//./_}" - mkdir -p build - cd build + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ - -DCMAKE_C_COMPILER=${MINGW_PREFIX}/bin/gcc.exe \ - -DCMAKE_MAKE_PROGRAM=${MINGW_PREFIX}/bin/mingw32-make.exe \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_STATIC_LIBS=ON \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. - mingw32-make + make } package() { - cd "$srcdir/$_realname-RELEASE_${pkgver//./_}/build" - mingw32-make DESTDIR=$pkgdir install + cd "$srcdir/$_realname-RELEASE_${pkgver//./_}/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install } diff --git a/mingw-w64-muparser/PKGBUILD b/mingw-w64-muparser/PKGBUILD index 617227dc82..97f66c0084 100644 --- a/mingw-w64-muparser/PKGBUILD +++ b/mingw-w64-muparser/PKGBUILD @@ -1,11 +1,12 @@ # Maintainer: Rémi BERTHO _realname=muparser +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.2.4 pkgrel=1 -pkgdesc="A fast math parser library" -arch=('i686' 'x86_64') +pkgdesc="A fast math parser library (mingw-w64)" +arch=('any') url="http://muparser.sourceforge.net/" license=('custom') makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") @@ -20,21 +21,21 @@ prepare() { build() { cd $srcdir/${_realname}_v${pkgver//./_} + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ - -DCMAKE_CXX_COMPILER=${MINGW_PREFIX}/bin/g++.exe \ - -DCMAKE_MAKE_PROGRAM=${MINGW_PREFIX}/bin/mingw32-make.exe \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} . - mingw32-make + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. + make } package() { - cd $srcdir/${_realname}_v${pkgver//./_} - mingw32-make DESTDIR=${pkgdir} install + cd $srcdir/${_realname}_v${pkgver//./_}/build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install # license - install -D -m644 License.txt \ + install -D -m644 ../License.txt \ $pkgdir${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } diff --git a/mingw-w64-podofo/PKGBUILD b/mingw-w64-podofo/PKGBUILD index e5267e193c..ecc840a6c2 100644 --- a/mingw-w64-podofo/PKGBUILD +++ b/mingw-w64-podofo/PKGBUILD @@ -1,11 +1,12 @@ # Maintainer: Rémi BERTHO _realname=podofo +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.9.3 pkgrel=1 -pkgdesc="A C++ library to work with the PDF file format" -arch=('i686' 'x86_64') +pkgdesc="A C++ library to work with the PDF file format (mingw-w64)" +arch=('any') url="http://podofo.sourceforge.net" license=('GPL') depends=("${MINGW_PACKAGE_PREFIX}-lua51" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-fontconfig" "${MINGW_PACKAGE_PREFIX}-libtiff" "libidn" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo") @@ -21,25 +22,22 @@ prepare() { build() { cd ${_realname}-${pkgver} - mkdir -p build - cd build + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ -Wno-dev \ - -DCMAKE_C_COMPILER=${MINGW_PREFIX}/bin/gcc.exe \ - -DCMAKE_CXX_COMPILER=${MINGW_PREFIX}/bin/g++.exe \ - -DCMAKE_MAKE_PROGRAM=mingw32-make \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. \ - -DFREETYPE_INCLUDE_DIR=/mingw64/include/freetype2 \ + -DFREETYPE_INCLUDE_DIR=/mingw64/include/freetype2 \ -DCMAKE_BUILD_TYPE=Release \ - -DPODOFO_BUILD_SHARED=1 \ - -DPODOFO_HAVE_JPEG_LIB=1 \ - -DPODOFO_HAVE_PNG_LIB=1 \ - -DPODOFO_HAVE_TIFF_LIB=1 - mingw32-make + -DPODOFO_BUILD_SHARED=1 \ + -DPODOFO_HAVE_JPEG_LIB=1 \ + -DPODOFO_HAVE_PNG_LIB=1 \ + -DPODOFO_HAVE_TIFF_LIB=1 + make } package() { - cd ${_realname}-${pkgver}/build - mingw32-make DESTDIR=$pkgdir install + cd ${_realname}-${pkgver}/build-${MINGW_CHOST} + make DESTDIR=$pkgdir install } From dd34169b7ba09ae677cbac71cd7f58c363a14556 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 26 Oct 2015 08:59:18 +0300 Subject: [PATCH 1774/2060] scipy: Update to 0.16.1 --- mingw-w64-python-scipy/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-python-scipy/PKGBUILD b/mingw-w64-python-scipy/PKGBUILD index 5318637075..face27b3d6 100644 --- a/mingw-w64-python-scipy/PKGBUILD +++ b/mingw-w64-python-scipy/PKGBUILD @@ -3,8 +3,8 @@ _realname=scipy pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=0.16.0 -pkgrel=2 +pkgver=0.16.1 +pkgrel=1 pkgdesc="SciPy is open-source software for mathematics, science, and engineering. (mingw-w64)" arch=('any') url="http://www.scipy.org/" @@ -17,7 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") source=("https://pypi.python.org/packages/source/s/scipy/scipy-${pkgver}.tar.gz"{,.asc} fix-qhull.patch) -md5sums=('eb95dda0f36cc3096673993a350cde77' +md5sums=('967cdb8588a4249f820344d8264a2143' 'SKIP' '62e14262492e7fbdc3fb65d106619ce3') From e1cd8d268cb7f9b438c05c85853e3972155121e7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 26 Oct 2015 09:54:38 +0300 Subject: [PATCH 1775/2060] wavpack: Update to 4.75.2 --- mingw-w64-wavpack/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-wavpack/PKGBUILD b/mingw-w64-wavpack/PKGBUILD index 9a0ca9f1fe..de986139f4 100644 --- a/mingw-w64-wavpack/PKGBUILD +++ b/mingw-w64-wavpack/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=wavpack +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.75.0 +pkgver=4.75.2 pkgrel=1 pkgdesc="Audio compression format with lossless, lossy and hybrid compression modes (mingw-w64)" arch=('any') @@ -12,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=(!libtool strip staticlibs) source=(http://www.wavpack.com/${_realname}-${pkgver}.tar.bz2) -sha1sums=('ef99ec8d2e91bcb486ad640cfec0d970f43eb750') +sha1sums=('9025eab39f9db05f39f88db70891a2421d124435') prepare() { cd ${srcdir}/${_realname}-${pkgver} From 26128c34e9b99e73a539f101894284a53109ab2b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 26 Oct 2015 09:54:51 +0300 Subject: [PATCH 1776/2060] mesa: Upate to 11.0.4 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 88ee200eb5..d97b33ff25 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -3,7 +3,7 @@ _realname=mesa pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=11.0.3 +pkgver=11.0.4 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('bf9118bf0fbf360715cfe60baf7a1db5' +md5sums=('c92c37200009eceaab4898119f82e358' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From 335c383b51e545ebe72d204342603739f37eece3 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 26 Oct 2015 10:57:08 +0100 Subject: [PATCH 1777/2060] clutter: updated to 1.24.2. --- mingw-w64-clutter/0002-install-gtk-doc.patch | 11 +++++++++++ mingw-w64-clutter/PKGBUILD | 17 +++++++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-clutter/0002-install-gtk-doc.patch diff --git a/mingw-w64-clutter/0002-install-gtk-doc.patch b/mingw-w64-clutter/0002-install-gtk-doc.patch new file mode 100644 index 0000000000..a36ffee9a2 --- /dev/null +++ b/mingw-w64-clutter/0002-install-gtk-doc.patch @@ -0,0 +1,11 @@ +--- ./doc/Makefile.am.orig 2015-10-26 10:10:30.869694900 +0100 ++++ ./doc/Makefile.am 2015-10-26 10:10:36.000866600 +0100 +@@ -1,8 +1,6 @@ + SUBDIRS = + +-if BUILD_GTK_DOC + SUBDIRS += reference +-endif + + if ENABLE_DOCS + SUBDIRS += common cookbook diff --git a/mingw-w64-clutter/PKGBUILD b/mingw-w64-clutter/PKGBUILD index 7ca2ad70db..d571fd662c 100644 --- a/mingw-w64-clutter/PKGBUILD +++ b/mingw-w64-clutter/PKGBUILD @@ -3,7 +3,7 @@ _realname=clutter pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.24.0 +pkgver=1.24.2 pkgrel=1 pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces (mingw-w64)" arch=('any') @@ -20,13 +20,18 @@ depends=("${MINGW_PACKAGE_PREFIX}-atk" options=(!libtool strip staticlibs) source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz #"git://git.gnome.org/$_realname#tag=${pkgver}" - "0001-msys2-add-header-for-BOOL-defintion.patch") -md5sums=('578546c09b5679aa2623660744dbad2f' - '3a92db8341129b0db058d47f97062f65') + "0001-msys2-add-header-for-BOOL-defintion.patch" + "0002-install-gtk-doc.patch") +md5sums=('3b98e1b33719982a5736ae42cbf7183e' + '3a92db8341129b0db058d47f97062f65' + '701e0b142cc48f7871ea287899de5b92') prepare() { cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/0001-msys2-add-header-for-BOOL-defintion.patch + patch -p1 -i ${srcdir}/0002-install-gtk-doc.patch + autoreconf -fvi #NOCONFIGURE=1 ./autogen.sh } @@ -36,8 +41,8 @@ build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - mkdir doc - cp -rf ../${_realname}-${pkgver}/doc/* doc/ + mkdir -p doc/reference/html + cp -rf ../${_realname}-${pkgver}/doc/reference/html/* doc/reference/html ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ From 54676b2063b77bf4291b86f8bacc20925fc862bd Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 26 Oct 2015 11:42:56 +0100 Subject: [PATCH 1778/2060] clutter-gtk: updated to 1.6.6. --- mingw-w64-clutter-gtk/PKGBUILD | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mingw-w64-clutter-gtk/PKGBUILD b/mingw-w64-clutter-gtk/PKGBUILD index 6fd9f73777..2ffc1cce6c 100644 --- a/mingw-w64-clutter-gtk/PKGBUILD +++ b/mingw-w64-clutter-gtk/PKGBUILD @@ -3,7 +3,7 @@ _realname=clutter-gtk pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.4 +pkgver=1.6.6 pkgrel=1 pkgdesc="Clutter integration with GTK+ (mingw-w64)" arch=('any') @@ -16,12 +16,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" options=(!libtool strip staticlibs) source=(http://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz "0002-msys-fix-introspection-build.patch") -md5sums=('ac3e9ce568c824764742788e1c5c4cbb' +md5sums=('79dc3d7a8645f87d83a9ccca8a08aa8e' 'ab881e17cbef38b2aa05c4f0b88d4358') prepare() { cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/0002-msys-fix-introspection-build.patch + autoreconf -fvi #NOCONFIGURE=1 ./autogen.sh } @@ -30,6 +32,10 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + mkdir -p doc/reference/html + cp -rf ../${_realname}-${pkgver}/doc/reference/html/* doc/reference/html + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -45,4 +51,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="${pkgdir}" install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 4a90a5f2999fa8fba0e074695e5ee7f03e8f94aa Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 26 Oct 2015 14:31:39 +0300 Subject: [PATCH 1779/2060] qt5: Build with big-objects support --- mingw-w64-qt5/PKGBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 301bb16c30..ca304b1769 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -395,8 +395,10 @@ prepare() { QMAKE_LFLAGS_RELEASE="-Wl,-s" fi + BIGOBJ_FLAGS="-Wa,-mbig-obj" + # Append these ones .. - sed -i "s|^QMAKE_CFLAGS .*= \(.*\)$|QMAKE_CFLAGS = \1 ${_ARCH_TUNE} ${LTCG_CFLAGS}|g" qtbase/mkspecs/win32-g++/qmake.conf + sed -i "s|^QMAKE_CFLAGS .*= \(.*\)$|QMAKE_CFLAGS = \1 ${_ARCH_TUNE} ${BIGOBJ_FLAGS} ${LTCG_CFLAGS}|g" qtbase/mkspecs/win32-g++/qmake.conf if [ -n "$OPTIM_D" ]; then sed -i "s|^QMAKE_CFLAGS_DEBUG .*= \(.*\)$|QMAKE_CFLAGS_DEBUG = \1 ${OPTIM_D}|g" qtbase/mkspecs/win32-g++/qmake.conf fi From 37975c1a345529c58ffb67278c2f90491a9ab20c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 27 Oct 2015 07:51:31 +0300 Subject: [PATCH 1780/2060] qbs: Update to 1.4.3 --- ...-setup-toolchains-Pretend-msys-is-mingw.1.4.patch | 12 ++++++------ mingw-w64-qbs/PKGBUILD | 7 ++++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch b/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch index 11dae659aa..96f5c73772 100644 --- a/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch +++ b/mingw-w64-qbs/0005-setup-toolchains-Pretend-msys-is-mingw.1.4.patch @@ -22,15 +22,15 @@ index 0ae9f6c..3d5e03c 100644 } static QStringList completeToolchainList(const QString &toolchainName) -@@ -200,7 +201,7 @@ static Profile createGccProfile(const QString &compilerFilePath, Settings *setti - { +@@ -191,7 +192,7 @@ static Profile createGccProfile(const QString &compilerFilePath, Settings *setti const QString machineName = gccMachineName(compilerFilePath); const QStringList compilerTriplet = machineName.split(QLatin1Char('-')); -- const bool isMingw = toolchainTypes.contains(QLatin1String("mingw")); -+ const bool isMingw = toolchainTypes.contains(QLatin1String("mingw")) || toolchainTypes.contains(QLatin1String("msys")); - const bool isClang = toolchainTypes.contains(QLatin1String("clang")); - if (isMingw) { +- if (toolchainTypes.contains(QLatin1String("mingw"))) { ++ if (toolchainTypes.contains(QLatin1String("mingw")) || toolchainTypes.contains(QLatin1String("msys"))) { + if (!validMinGWMachines().contains(machineName)) { + throw ErrorInfo(Tr::tr("Detected gcc platform '%1' is not supported.") + .arg(machineName)); -- 2.3.5 diff --git a/mingw-w64-qbs/PKGBUILD b/mingw-w64-qbs/PKGBUILD index fff41bf8e7..b6e5a4fc31 100644 --- a/mingw-w64-qbs/PKGBUILD +++ b/mingw-w64-qbs/PKGBUILD @@ -20,8 +20,9 @@ # && (qbs.toolchain.contains("mingw") || qbs.toolchain.contains("gcc")) _realname=qbs +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.1 +pkgver=1.4.3 pkgrel=1 _pkgfqn="${_realname}-src-${pkgver}" pkgdesc='Qt Build Suite' @@ -40,11 +41,11 @@ source=("http://download.qt-project.org/official_releases/qbs/${pkgver}/${_pkgfq "0008-add-many-files-to-installed-headers.1.4.patch" "0090-WIP-Xcode-generator.1.4.patch" "0091-Disable-WIP-Xcode-generator.1.4.patch") -sha256sums=('eea8e0c1b2ef71f295fa5f1798a04a9f0509a701094fec11a691a4d7ae0155a9' +sha256sums=('0c47291ac578c1fc8f2bd6ab20fbeeb58630c4c6ddc085f6081ae570f825f787' '838098b25a8044176b3139b4003594570c62a8d64f5470fbbd769f3bf44e0855' '18f1bfe2434ccf97e1366a96b83bdc41bbd4399185bb701d061710b292a5ad59' '6daa43c65e4ac440470687a31c74ab6d4bdcfa0fb3c195678e62a9f800356b1a' - '5002df9cb3ad3451db92918a4b74bb05237648d8697faf8894d96b51cb7faa8a' + '1a9499215f4fc8fc9a530a984fe7248ad55720a383ceb0984ad7afb25abda7d6' '40d53fca4e80ab63baa8649bae43882daf2c91de22412c71dec712ac59f4a39e' 'f00efb4af427e4de5edb0c46196f0c6192294559c92a309eea6dfd81c0d302c3' '576d7a6875fc20f4360edea765f8134493ad64a5941afbd92732e841e055b854' From d040c104f0d1c68205e84d377a25a1259ebbeb79 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 27 Oct 2015 07:51:49 +0300 Subject: [PATCH 1781/2060] qtcreator: WIP 3.5.1 --- mingw-w64-qtcreator/PKGBUILD | 9 +++------ .../qt-creator-3.3.0-abi-msys-is-Windows.patch | 12 ------------ 2 files changed, 3 insertions(+), 18 deletions(-) delete mode 100644 mingw-w64-qtcreator/qt-creator-3.3.0-abi-msys-is-Windows.patch diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 477b5019b2..fff9f8865b 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -5,7 +5,7 @@ _realname=qt-creator pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" __pre= -_base_ver=3.5.0 +_base_ver=3.5.1 pkgver=${_base_ver}${_pre} pkgrel=1 pkgdesc='Cross-patform IDE (mingw-w64)' @@ -36,12 +36,11 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch qt-creator-3.2.0-autotools-allow-non-Automake-Makefile-in-projects.patch qt-creator-3.2.0-i[3456]86-and-x86-have-32bit-wordWidth.patch - qt-creator-3.3.0-abi-msys-is-Windows.patch qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch) noextract=(${_pkgfqn}.tar.gz) -sha256sums=('5dc35f81b50d65243a6ae046125061051d03c3d50937a37e29e0669384bb0eb6' +sha256sums=('5925ac818a08be919094e0f28fb4c5d8896765e0975d54d353e4c50f13d63e65' '3197763396b90e640e7897c648d48d6ca906df5b3a4bc343a7e1bfdf05f07cef' '96c14f54577bf6cadf5c12018745666a9e99cd8d6a876c29a28b13599a8cb368' '68133c95b70c1b54e55ab4c8b31023afe4ab9a33667e4510bda64c828b95e91e' @@ -49,13 +48,12 @@ sha256sums=('5dc35f81b50d65243a6ae046125061051d03c3d50937a37e29e0669384bb0eb6' '2915cd4bf08643057129c26c0ce28caee14586fdf6a164a96e36ce0b37966427' '0b0bba8bda0fd8247563e3827f58fe73baed17b09b9de6ea28375b7f1afa3ee1' '79fc4d2ef02ff8f458b1b330c683c2a86397f056369c90176a9ddbeba3b719fd' - 'c4cae708825102d538e1ecb9a88ecb216d366feb779553a2e91f97c4b78f8427' 'b4cf07e2772b2ec6710ee7df6463feddb4195d65fa59e6c6095fbc0cb240417e' '802376acf3bc4546db60efdc026b348c4d09485b532a8db31d51d9e3fb74cecc' '06ff443b53c6f49ff5f2f62d39485ea5a78e5a332bf11082a0e2e4d25dd29f38') prepare() { - [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} + [[ -d ${srcdir}/${_pkgfqn} ]] && rm -rf ${srcdir}/${_pkgfqn} tar -xzf ${srcdir}/${_pkgfqn}.tar.gz -C $srcdir || true cd ${srcdir}/${_pkgfqn} @@ -68,7 +66,6 @@ prepare() { patch -p1 -i "${srcdir}"/qt-creator-3.2.0-MSYS2-autotools-run-shell-scripts-via-sh.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-autotools-allow-non-Automake-Makefile-in-projects.patch patch -p1 -i "${srcdir}"/qt-creator-3.2.0-i[3456]86-and-x86-have-32bit-wordWidth.patch - patch -p1 -i "${srcdir}"/qt-creator-3.3.0-abi-msys-is-Windows.patch patch -p1 -i "${srcdir}"/qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch patch -p1 -i "${srcdir}"/qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch diff --git a/mingw-w64-qtcreator/qt-creator-3.3.0-abi-msys-is-Windows.patch b/mingw-w64-qtcreator/qt-creator-3.3.0-abi-msys-is-Windows.patch deleted file mode 100644 index e2c8a5fcb9..0000000000 --- a/mingw-w64-qtcreator/qt-creator-3.3.0-abi-msys-is-Windows.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- qt-creator-opensource-src-3.3.0-beta1/src/plugins/projectexplorer/abi.cpp.orig 2014-10-31 20:26:14.246865700 +0000 -+++ qt-creator-opensource-src-3.3.0-beta1/src/plugins/projectexplorer/abi.cpp 2014-10-31 22:51:06.558037400 +0000 -@@ -497,7 +497,8 @@ - if (flavor == Abi::UnknownFlavor) - flavor = Abi::FreeBsdFlavor; - format = Abi::ElfFormat; -- } else if (p == QLatin1String("mingw32") || p == QLatin1String("win32") || p == QLatin1String("mingw32msvc")) { -+ } else if (p == QLatin1String("mingw32") || p == QLatin1String("win32") -+ || p == QLatin1String("mingw32msvc") || p == QLatin1String("msys")) { - arch = Abi::X86Architecture; - os = Abi::WindowsOS; - flavor = Abi::WindowsMSysFlavor; From c00ef849bfc60d8a2185ca0aab26a03164f134e0 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 27 Oct 2015 12:26:19 +0300 Subject: [PATCH 1782/2060] qtcreator: Build with shared clang --- mingw-w64-qtcreator/PKGBUILD | 5 ++-- ...static-clang-via-LLVM_STATIC-env-var.patch | 24 ------------------- 2 files changed, 2 insertions(+), 27 deletions(-) diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index fff9f8865b..9c2608aff2 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -41,7 +41,7 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch) noextract=(${_pkgfqn}.tar.gz) sha256sums=('5925ac818a08be919094e0f28fb4c5d8896765e0975d54d353e4c50f13d63e65' - '3197763396b90e640e7897c648d48d6ca906df5b3a4bc343a7e1bfdf05f07cef' + 'b4eba129997fef75b811d0ba3ef573db23ba13e43f9dbdb0c27164ee551ba08d' '96c14f54577bf6cadf5c12018745666a9e99cd8d6a876c29a28b13599a8cb368' '68133c95b70c1b54e55ab4c8b31023afe4ab9a33667e4510bda64c828b95e91e' '1a1738379b0413484fd1ff3521b6bc85d034f5f964311d963dd044b4966b274b' @@ -78,12 +78,11 @@ prepare() { } build() { - [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST} + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} export LLVM_INSTALL_DIR=${MINGW_PREFIX} export QBS_INSTALL_DIR=${MINGW_PREFIX} - export LLVM_STATIC=1 if check_option "debug" "y"; then _config_variant=debug else diff --git a/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch b/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch index cb24fcc1eb..601a6d623a 100644 --- a/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch +++ b/mingw-w64-qtcreator/qt-creator-3.2.0-Allow-static-clang-via-LLVM_STATIC-env-var.patch @@ -18,27 +18,3 @@ llvm_config = $$LLVM_INSTALL_DIR/bin/llvm-config exists($$llvm_config) { #message("llvm-config found, querying it for paths and version") -@@ -74,5 +74,22 @@ - clang_lib = $$findClangLibInLibDir($$LLVM_LIBDIR) - isEmpty(clang_lib): error("Cannot find Clang shared library in $$LLVM_LIBDIR") - -- LLVM_LIBS = -L$${LLVM_LIBDIR} -l$${clang_lib} -+ LLVM_STATIC = $$(LLVM_STATIC) -+ isEqual($$(LLVM_STATIC), 0): { -+ LLVM_LIBS += -l$${clang_lib} -+ } else { -+ # Since there is no clang-config .. -+ LLVM_LIBS += -Wl,--start-group -+ CLANG_STATIC_LIBS = $$files($${LLVM_LIBDIR}/libclang*) -+ for (CLANG_STATIC_LIB, CLANG_STATIC_LIBS) { -+ CLANG_STATIC_LIB = $$basename(CLANG_STATIC_LIB) -+ CLANG_STATIC_LIB ~= s,^$$QMAKE_PREFIX_STATICLIB,, -+ CLANG_STATIC_LIB ~= s,\.$$QMAKE_EXTENSION_STATICLIB\$,, -+ LLVM_LIBS += -l$${CLANG_STATIC_LIB} -+ } -+ # We might want to try "$$llvm_config --libs analysis" instead. -+ LLVM_LIBS += $$system($$llvm_config --libs) -+ LLVM_LIBS += $$system($$llvm_config --system-libs) -+ LLVM_LIBS += -Wl,--end-group -+ } - } From de198d5cae1808020370531356f386d2332142b9 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 28 Oct 2015 09:40:15 +0100 Subject: [PATCH 1783/2060] clutter-gst: updated to 3.0.14. --- .../0002-install-gtk-doc.patch | 12 +++++++++++ mingw-w64-clutter-gst/PKGBUILD | 20 +++++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-clutter-gst/0002-install-gtk-doc.patch diff --git a/mingw-w64-clutter-gst/0002-install-gtk-doc.patch b/mingw-w64-clutter-gst/0002-install-gtk-doc.patch new file mode 100644 index 0000000000..6900c9e7e4 --- /dev/null +++ b/mingw-w64-clutter-gst/0002-install-gtk-doc.patch @@ -0,0 +1,12 @@ +--- ./Makefile.am.orig 2015-10-28 09:13:02.305357700 +0100 ++++ ./Makefile.am 2015-10-28 09:13:08.255174800 +0100 +@@ -2,9 +2,7 @@ + + SUBDIRS = build scripts clutter-gst tests examples + +-if BUILD_GTK_DOC + SUBDIRS += doc +-endif + + DIST_SUBDIRS = build scripts clutter-gst tests examples doc + diff --git a/mingw-w64-clutter-gst/PKGBUILD b/mingw-w64-clutter-gst/PKGBUILD index 5cf9d39a39..fa4bf248fd 100644 --- a/mingw-w64-clutter-gst/PKGBUILD +++ b/mingw-w64-clutter-gst/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Lubosz Sarnecki _realname=clutter-gst +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.0.6 +pkgver=3.0.14 pkgrel=1 pkgdesc="A GStreamer integration library for Clutter (mingw-w64)" arch=('any') @@ -15,13 +16,18 @@ depends=("${MINGW_PACKAGE_PREFIX}-gobject-introspection" "${MINGW_PACKAGE_PREFIX}-gst-plugins-base") options=(!libtool strip staticlibs) source=(http://download.gnome.org/sources/${_realname}/${pkgver:0:3}/${_realname}-${pkgver}.tar.xz - "0001-msys2-fix-gir-scanner.patch") -md5sums=('3100f52225d8be92f57efe246943e3a2' - '35fee4e70be0ba0b5c651119511b2f65') + "0001-msys2-fix-gir-scanner.patch" + "0002-install-gtk-doc.patch") +md5sums=('635df0aef328fdcb8b2b565525dec3be' + '35fee4e70be0ba0b5c651119511b2f65' + '7c661ce904783d900b1ec2915d80d5b5') prepare() { cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/0001-msys2-fix-gir-scanner.patch + patch -b -V simple -p1 -i ${srcdir}/0002-install-gtk-doc.patch + autoreconf -fvi } @@ -29,6 +35,10 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir ${srcdir}/build-${MINGW_CHOST} cd "${srcdir}/build-${MINGW_CHOST}" + + mkdir -p doc/reference/html + cp -rf ../${_realname}-${pkgver}/doc/reference/html/* doc/reference/html + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -46,4 +56,6 @@ package() { make -j1 DESTDIR="${pkgdir}" install rm -f ${pkgdir}${MINGW_PREFIX}/lib/gstreamer*/*.a + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 2c429a8f3ecd63efd6df407cd5a2e2d6254ca74a Mon Sep 17 00:00:00 2001 From: Andrew Chadwick Date: Wed, 28 Oct 2015 12:17:09 +0000 Subject: [PATCH 1784/2060] gtk3: backport an upsteam GI syntax fix Backport upstream's fix for a syntax error (missing colon) in the annotations. https://git.gnome.org/browse/gtk+/commit/?id=f703ea65995f4c8bd5c7e1c554a36d5ca835067d This doesn't address Alexpux/MINGW-packages#845, but it's probably worth having in our builds. --- ...90-backport-fix-introspection-syntax.patch | 24 +++++++++++++++++++ mingw-w64-gtk3/PKGBUILD | 6 ++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-gtk3/0090-backport-fix-introspection-syntax.patch diff --git a/mingw-w64-gtk3/0090-backport-fix-introspection-syntax.patch b/mingw-w64-gtk3/0090-backport-fix-introspection-syntax.patch new file mode 100644 index 0000000000..2156ab5ef8 --- /dev/null +++ b/mingw-w64-gtk3/0090-backport-fix-introspection-syntax.patch @@ -0,0 +1,24 @@ +From f703ea65995f4c8bd5c7e1c554a36d5ca835067d Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +Date: Thu, 22 Oct 2015 11:50:49 -0400 +Subject: win32: Fix introspection syntax + +--- + gdk/win32/gdkdisplay-win32.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c +index a98841a..0a47970 100644 +--- a/gdk/win32/gdkdisplay-win32.c ++++ b/gdk/win32/gdkdisplay-win32.c +@@ -29,7 +29,7 @@ + /** + * gdk_win32_display_set_cursor_theme: + * @display: (type GdkWin32Display): a #GdkDisplay +- * @name: (allow-none) the name of the cursor theme to use, or %NULL to unset ++ * @name: (allow-none): the name of the cursor theme to use, or %NULL to unset + * a previously set value + * @size: the cursor size to use, or 0 to keep the previous size + * +-- +cgit v0.11.2 diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index a7cc17fe17..f300f40fac 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -4,7 +4,7 @@ _realname=gtk3 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.18.2 -pkgrel=2 +pkgrel=3 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -32,11 +32,13 @@ source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver} 0013-fix-mingw-w64-fstat-call.mingw.patch 0056-missing-file-toarray-pl.patch 0080-backport-notebook-tab-drag-fixes.patch + 0090-backport-fix-introspection-syntax.patch ) md5sums=('230fd78e42419d35ff790784b457e5f2' '21789d52c1debcab59f8b6a99232de68' 'f25cb2486d761b60e04036947552bf82' '8d86218ed960cd86c8b04c987f7038e9' + '664ce09ba116bda6207ff2ef898392fa' ) prepare() { @@ -48,6 +50,8 @@ prepare() { patch -Np1 -i ${srcdir}/0080-backport-notebook-tab-drag-fixes.patch + patch -Np1 -i ${srcdir}/0090-backport-fix-introspection-syntax.patch + autoreconf -i } From 168d710116878526ef4609386520474ad91b7b2b Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 28 Oct 2015 23:50:56 +0000 Subject: [PATCH 1785/2060] clang: fix long double for mingw-w64 --- ...convention-of-Mingw64-long-double-va.patch | 175 ++++++++++++++++++ ...empt-to-fix-long-double-on-mingw-w64.patch | 38 ---- mingw-w64-clang/PKGBUILD | 6 +- 3 files changed, 178 insertions(+), 41 deletions(-) create mode 100644 mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch delete mode 100644 mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch diff --git a/mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch b/mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch new file mode 100644 index 0000000000..4efff37814 --- /dev/null +++ b/mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch @@ -0,0 +1,175 @@ +From f6a5ffd2cec68e89ddfb67b3c078c6c86a516a76 Mon Sep 17 00:00:00 2001 +From: Reid Kleckner +Date: Wed, 28 Oct 2015 22:29:52 +0000 +Subject: [PATCH] Fix the calling convention of Mingw64 long double values + +GCC uses the x87DoubleExtended model for long doubles, and passes them +indirectly by address through function calls. + +Also replace the existing mingw-long-double assembly emitting test with +an IR-level test. + +git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@251567 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/Basic/Targets.cpp | 8 ++++++- + lib/CodeGen/TargetInfo.cpp | 33 ++++++++++++++++++---------- + test/CodeGen/mingw-long-double.c | 47 ++++++++++++++++++++++++++++++++-------- + 3 files changed, 67 insertions(+), 21 deletions(-) + +diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp +index 0094ce8..a0c379a 100644 +--- a/lib/Basic/Targets.cpp ++++ b/lib/Basic/Targets.cpp +@@ -4009,7 +4009,13 @@ public: + class MinGWX86_64TargetInfo : public WindowsX86_64TargetInfo { + public: + MinGWX86_64TargetInfo(const llvm::Triple &Triple) +- : WindowsX86_64TargetInfo(Triple) {} ++ : WindowsX86_64TargetInfo(Triple) { ++ // Mingw64 rounds long double size and alignment up to 16 bytes, but sticks ++ // with x86 FP ops. Weird. ++ LongDoubleWidth = LongDoubleAlign = 128; ++ LongDoubleFormat = &llvm::APFloat::x87DoubleExtended; ++ } ++ + void getTargetDefines(const LangOptions &Opts, + MacroBuilder &Builder) const override { + WindowsX86_64TargetInfo::getTargetDefines(Opts, Builder); +diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp +index 149baaa..282c103 100644 +--- a/lib/CodeGen/TargetInfo.cpp ++++ b/lib/CodeGen/TargetInfo.cpp +@@ -1772,12 +1772,10 @@ public: + + /// WinX86_64ABIInfo - The Windows X86_64 ABI information. + class WinX86_64ABIInfo : public ABIInfo { +- +- ABIArgInfo classify(QualType Ty, unsigned &FreeSSERegs, +- bool IsReturnType) const; +- + public: +- WinX86_64ABIInfo(CodeGen::CodeGenTypes &CGT) : ABIInfo(CGT) {} ++ WinX86_64ABIInfo(CodeGen::CodeGenTypes &CGT) ++ : ABIInfo(CGT), ++ IsMingw64(getTarget().getTriple().isWindowsGNUEnvironment()) {} + + void computeInfo(CGFunctionInfo &FI) const override; + +@@ -1794,6 +1792,12 @@ public: + // FIXME: Assumes vectorcall is in use. + return isX86VectorCallAggregateSmallEnough(NumMembers); + } ++ ++private: ++ ABIArgInfo classify(QualType Ty, unsigned &FreeSSERegs, ++ bool IsReturnType) const; ++ ++ bool IsMingw64; + }; + + class X86_64TargetCodeGenInfo : public TargetCodeGenInfo { +@@ -3317,7 +3321,7 @@ ABIArgInfo WinX86_64ABIInfo::classify(QualType Ty, unsigned &FreeSSERegs, + + TypeInfo Info = getContext().getTypeInfo(Ty); + uint64_t Width = Info.Width; +- unsigned Align = getContext().toCharUnitsFromBits(Info.Align).getQuantity(); ++ CharUnits Align = getContext().toCharUnitsFromBits(Info.Align); + + const RecordType *RT = Ty->getAs(); + if (RT) { +@@ -3330,9 +3334,9 @@ ABIArgInfo WinX86_64ABIInfo::classify(QualType Ty, unsigned &FreeSSERegs, + return getNaturalAlignIndirect(Ty, /*ByVal=*/false); + + // FIXME: mingw-w64-gcc emits 128-bit struct as i128 +- if (Width == 128 && getTarget().getTriple().isWindowsGNUEnvironment()) +- return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(), +- Width)); ++ if (Width == 128 && IsMingw64) ++ return ABIArgInfo::getDirect( ++ llvm::IntegerType::get(getVMContext(), Width)); + } + + // vectorcall adds the concept of a homogenous vector aggregate, similar to +@@ -3346,8 +3350,7 @@ ABIArgInfo WinX86_64ABIInfo::classify(QualType Ty, unsigned &FreeSSERegs, + return ABIArgInfo::getDirect(); + return ABIArgInfo::getExpand(); + } +- return ABIArgInfo::getIndirect(CharUnits::fromQuantity(Align), +- /*ByVal=*/false); ++ return ABIArgInfo::getIndirect(Align, /*ByVal=*/false); + } + + +@@ -3375,6 +3378,14 @@ ABIArgInfo WinX86_64ABIInfo::classify(QualType Ty, unsigned &FreeSSERegs, + if (BT && BT->getKind() == BuiltinType::Bool) + return ABIArgInfo::getExtend(); + ++ // Mingw64 GCC uses the old 80 bit extended precision floating point unit. It ++ // passes them indirectly through memory. ++ if (IsMingw64 && BT && BT->getKind() == BuiltinType::LongDouble) { ++ const llvm::fltSemantics *LDF = &getTarget().getLongDoubleFormat(); ++ if (LDF == &llvm::APFloat::x87DoubleExtended) ++ return ABIArgInfo::getIndirect(Align, /*ByVal=*/false); ++ } ++ + return ABIArgInfo::getDirect(); + } + +diff --git a/test/CodeGen/mingw-long-double.c b/test/CodeGen/mingw-long-double.c +index a29662c..1c7c31f 100644 +--- a/test/CodeGen/mingw-long-double.c ++++ b/test/CodeGen/mingw-long-double.c +@@ -1,12 +1,41 @@ +-// REQUIRES: x86-registered-target +-// RUN: %clang_cc1 -triple i686-pc-windows-gnu -S %s -o - | FileCheck %s -check-prefix=CHECK_I686 +-// CHECK_I686: _lda,12 +-// CHECK_I686: _lds,16 +-// RUN: %clang_cc1 -triple x86_64-pc-windows-gnu -S %s -o - | FileCheck %s -check-prefix=CHECK_X86_64 +-// CHECK_X86_64: lda,16 +-// CHECK_X86_64: lds,32 +-long double lda; ++// RUN: %clang_cc1 -triple i686-windows-gnu -emit-llvm -o - %s \ ++// RUN: | FileCheck %s --check-prefix=GNU32 ++// RUN: %clang_cc1 -triple x86_64-windows-gnu -emit-llvm -o - %s \ ++// RUN: | FileCheck %s --check-prefix=GNU64 ++// RUN: %clang_cc1 -triple x86_64-windows-msvc -emit-llvm -o - %s \ ++// RUN: | FileCheck %s --check-prefix=MSC64 ++ + struct { + char c; + long double ldb; +-} lds; ++} agggregate_LD = {}; ++// GNU32: %struct.anon = type { i8, x86_fp80 } ++// GNU32: @agggregate_LD = global %struct.anon zeroinitializer, align 4 ++// GNU64: %struct.anon = type { i8, x86_fp80 } ++// GNU64: @agggregate_LD = global %struct.anon zeroinitializer, align 16 ++// MSC64: %struct.anon = type { i8, double } ++// MSC64: @agggregate_LD = global %struct.anon zeroinitializer, align 8 ++ ++long double dataLD = 1.0L; ++// GNU32: @dataLD = global x86_fp80 0xK3FFF8000000000000000, align 4 ++// GNU64: @dataLD = global x86_fp80 0xK3FFF8000000000000000, align 16 ++// MSC64: @dataLD = global double 1.000000e+00, align 8 ++ ++long double _Complex dataLDC = {1.0L, 1.0L}; ++// GNU32: @dataLDC = global { x86_fp80, x86_fp80 } { x86_fp80 0xK3FFF8000000000000000, x86_fp80 0xK3FFF8000000000000000 }, align 4 ++// GNU64: @dataLDC = global { x86_fp80, x86_fp80 } { x86_fp80 0xK3FFF8000000000000000, x86_fp80 0xK3FFF8000000000000000 }, align 16 ++// MSC64: @dataLDC = global { double, double } { double 1.000000e+00, double 1.000000e+00 }, align 8 ++ ++long double TestLD(long double x) { ++ return x * x; ++} ++// GNU32: define x86_fp80 @TestLD(x86_fp80 %x) ++// GNU64: define void @TestLD(x86_fp80* noalias sret %agg.result, x86_fp80*) ++// MSC64: define double @TestLD(double %x) ++ ++long double _Complex TestLDC(long double _Complex x) { ++ return x * x; ++} ++// GNU32: define void @TestLDC({ x86_fp80, x86_fp80 }* noalias sret %agg.result, { x86_fp80, x86_fp80 }* byval align 4 %x) ++// GNU64: define void @TestLDC({ x86_fp80, x86_fp80 }* noalias sret %agg.result, { x86_fp80, x86_fp80 }* %x) ++// MSC64: define void @TestLDC({ double, double }* noalias sret %agg.result, { double, double }* %x) +-- +2.5.0 + diff --git a/mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch b/mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch deleted file mode 100644 index 5954c9f2b8..0000000000 --- a/mingw-w64-clang/0015-attempt-to-fix-long-double-on-mingw-w64.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 34cee12da7ec4bbf919e8d392e75a52b2f9e1cc4 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Thu, 3 Sep 2015 00:13:11 -0700 -Subject: [PATCH] Attempt to fix long double on mingw-w64 - - -diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp -index 7c02731..f1539cc 100644 ---- a/lib/Basic/Targets.cpp -+++ b/lib/Basic/Targets.cpp -@@ -3805,7 +3805,11 @@ namespace { - class MinGWX86_32TargetInfo : public WindowsX86_32TargetInfo { - public: - MinGWX86_32TargetInfo(const llvm::Triple &Triple) -- : WindowsX86_32TargetInfo(Triple) {} -+ : WindowsX86_32TargetInfo(Triple) { -+ LongDoubleWidth = 96; -+ LongDoubleAlign = 128; -+ LongDoubleFormat = &llvm::APFloat::x87DoubleExtended; -+ } - void getTargetDefines(const LangOptions &Opts, - MacroBuilder &Builder) const override { - WindowsX86_32TargetInfo::getTargetDefines(Opts, Builder); -@@ -4035,7 +4039,11 @@ public: - class MinGWX86_64TargetInfo : public WindowsX86_64TargetInfo { - public: - MinGWX86_64TargetInfo(const llvm::Triple &Triple) -- : WindowsX86_64TargetInfo(Triple) {} -+ : WindowsX86_64TargetInfo(Triple) { -+ LongDoubleWidth = 96; -+ LongDoubleAlign = 128; -+ LongDoubleFormat = &llvm::APFloat::x87DoubleExtended; -+ } - void getTargetDefines(const LangOptions &Opts, - MacroBuilder &Builder) const override { - WindowsX86_64TargetInfo::getTargetDefines(Opts, Builder); --- -2.5.0 diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index f79757515d..429c7e3d59 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -40,7 +40,7 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} 0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch 0013-mingw-w64-dont-have-dl-library.patch 0014-use-DESTDIR-on-windows.patch - 0015-attempt-to-fix-long-double-on-mingw-w64.patch + 0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch 0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch 0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch 0031-COFF-add-the-mingw-alias-for-ImageBase.patch @@ -78,7 +78,7 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' '13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' - 'cd3a1d925d301795f50a3d65579aea71101ffab7e011809ba8323ea6d6b9848d' + 'e55c1d11115e34dbda1999335b3e364987b6bd95a7777526804a24ff8147a08f' '59e7afa5e74d186ad596c9a7625d6022fde0679faea9d1fd516fe0a622dbc01a' '47fbe90718742d1a3c0aee919b159241e616738447de3505a48a9f5886e5db96' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' @@ -107,7 +107,7 @@ prepare() { patch -p1 -i ${srcdir}/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch patch -p1 -i ${srcdir}/0013-mingw-w64-dont-have-dl-library.patch patch -p1 -i ${srcdir}/0014-use-DESTDIR-on-windows.patch - patch -p1 -i ${srcdir}/0015-attempt-to-fix-long-double-on-mingw-w64.patch + patch -p1 -i ${srcdir}/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch patch -p1 -i ${srcdir}/0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch patch -p1 -i ${srcdir}/0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch From a18cf2bf33b4987e2cbff5da84660852fe948d88 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 29 Oct 2015 08:55:24 +0300 Subject: [PATCH 1786/2060] libharu: Fix PKGBUILD --- mingw-w64-libharu/PKGBUILD | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/mingw-w64-libharu/PKGBUILD b/mingw-w64-libharu/PKGBUILD index a8b64bc921..2a0f5812ec 100644 --- a/mingw-w64-libharu/PKGBUILD +++ b/mingw-w64-libharu/PKGBUILD @@ -11,30 +11,36 @@ arch=('any') license=('custom:ZLIB') depends=("${MINGW_PACKAGE_PREFIX}-libpng") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") -source=("https://github.com/libharu/libharu/archive/RELEASE_${pkgver//./_}.tar.gz" "win_various_install_files.patch" "win_lib.patch") -md5sums=('4f916aa49c3069b3a10850013c507460' 'cde4ba6d18174097801aba1ac65d3efa' '20267023a191192ddb313d625bdf8037') +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/libharu/libharu/archive/RELEASE_${pkgver//./_}.tar.gz" + "win_various_install_files.patch" + "win_lib.patch") +md5sums=('4f916aa49c3069b3a10850013c507460' + 'cde4ba6d18174097801aba1ac65d3efa' + '20267023a191192ddb313d625bdf8037') prepare() { - cd "$srcdir/$_realname-RELEASE_${pkgver//./_}" - patch -p1 -i "$srcdir/win_various_install_files.patch" - patch -p1 -i "$srcdir/win_lib.patch" + cd "${srcdir}/${_realname}-RELEASE_${pkgver//./_}" + patch -p1 -i "${srcdir}/win_various_install_files.patch" + patch -p1 -i "${srcdir}/win_lib.patch" } build() { - cd "$srcdir/$_realname-RELEASE_${pkgver//./_}" + rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ - ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_STATIC_LIBS=ON \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + ../${_realname}-RELEASE_${pkgver//./_} + make } package() { - cd "$srcdir/$_realname-RELEASE_${pkgver//./_}/build-${MINGW_CHOST}" - make DESTDIR=$pkgdir install + cd build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install } - From 253384ec8f342a2e1f387cf87d2d94f3d7bf4bbe Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 29 Oct 2015 08:55:42 +0300 Subject: [PATCH 1787/2060] muparser: Update to 2.2.5. Fix PKGBUILD. --- mingw-w64-muparser/PKGBUILD | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/mingw-w64-muparser/PKGBUILD b/mingw-w64-muparser/PKGBUILD index 97f66c0084..4e112cfead 100644 --- a/mingw-w64-muparser/PKGBUILD +++ b/mingw-w64-muparser/PKGBUILD @@ -3,39 +3,44 @@ _realname=muparser pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.2.4 +pkgver=2.2.5 pkgrel=1 pkgdesc="A fast math parser library (mingw-w64)" arch=('any') -url="http://muparser.sourceforge.net/" +url="http://muparser.beltoforion.de/" license=('custom') makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") options=('!makeflags') -source=("${_realname}-${pkgver}.zip::https://drive.google.com/uc?export=download&id=0BzuB-ydOOoduejdwdTQwcF9JLTA" "CMakeLists.txt") -sha1sums=('78db09680cafd5db4fd08a5d472afd2fa65f9274' '76f802239c1a5e0bff713db99ce60a9956a20257') +source=("${_realname}-${pkgver}.tar.gz"::https://github.com/beltoforion/muparser/archive/v${pkgver}.tar.gz + "CMakeLists.txt") +sha1sums=('d86946f8bc5f5d74063313a00c16798a418e308b' + '76f802239c1a5e0bff713db99ce60a9956a20257') prepare() { - cd $srcdir/${_realname}_v${pkgver//./_} - cp "$srcdir/CMakeLists.txt" . + cd ${srcdir}/${_realname}-${pkgver} + cp "${srcdir}/CMakeLists.txt" . } build() { - cd $srcdir/${_realname}_v${pkgver//./_} + rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ - ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + ../${_realname}-${pkgver} + make } package() { - cd $srcdir/${_realname}_v${pkgver//./_}/build-${MINGW_CHOST} + cd build-${MINGW_CHOST} make DESTDIR=${pkgdir} install # license - install -D -m644 ../License.txt \ - $pkgdir${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + install -D -m644 ${srcdir}/${_realname}-${pkgver}/License.txt \ + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE } From 1801c3a97a859fa18df4268739bb1519476a86ac Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 29 Oct 2015 10:13:20 +0300 Subject: [PATCH 1788/2060] podofo: Fix puilding. --- mingw-w64-podofo/PKGBUILD | 39 ++++++++---- mingw-w64-podofo/test.patch | 23 +++++++ mingw-w64-podofo/win.patch | 124 ++++++++++++++++++++++++++++++++++++ 3 files changed, 173 insertions(+), 13 deletions(-) create mode 100644 mingw-w64-podofo/test.patch diff --git a/mingw-w64-podofo/PKGBUILD b/mingw-w64-podofo/PKGBUILD index ecc840a6c2..eb12ac293c 100644 --- a/mingw-w64-podofo/PKGBUILD +++ b/mingw-w64-podofo/PKGBUILD @@ -9,35 +9,48 @@ pkgdesc="A C++ library to work with the PDF file format (mingw-w64)" arch=('any') url="http://podofo.sourceforge.net" license=('GPL') -depends=("${MINGW_PACKAGE_PREFIX}-lua51" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-fontconfig" "${MINGW_PACKAGE_PREFIX}-libtiff" "libidn" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") -source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" "win.patch") -md5sums=('268ca111826757ca7e3f5c4be3547e7a' '4a0006884bd9fd3ad73f3ec3ed0cd886') +depends=("${MINGW_PACKAGE_PREFIX}-fontconfig" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-libidn" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-lua" + "${MINGW_PACKAGE_PREFIX}-openssl") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-cppunit") +source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz" + "win.patch" + "test.patch") +md5sums=('268ca111826757ca7e3f5c4be3547e7a' + 'b2bcdeff5734e21e8bd615d17f57744f' + 'd43b9867c6146f817e2a33adc9fba523') prepare() { cd ${_realname}-${pkgver} - patch -p1 -i "$srcdir/win.patch" + patch -p1 -i "${srcdir}/win.patch" + patch -p1 -i "${srcdir}/test.patch" } build() { - cd ${_realname}-${pkgver} - + rm -rf build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ - ${MINGW_PREFIX}/bin/cmake.exe -G"MSYS Makefiles" \ + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ -Wno-dev \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} .. \ - -DFREETYPE_INCLUDE_DIR=/mingw64/include/freetype2 \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DFREETYPE_INCLUDE_DIR=${MINGW_PREFIX}/include/freetype2 \ -DCMAKE_BUILD_TYPE=Release \ -DPODOFO_BUILD_SHARED=1 \ -DPODOFO_HAVE_JPEG_LIB=1 \ -DPODOFO_HAVE_PNG_LIB=1 \ - -DPODOFO_HAVE_TIFF_LIB=1 + -DPODOFO_HAVE_TIFF_LIB=1 \ + ../${_realname}-${pkgver} + make } package() { - cd ${_realname}-${pkgver}/build-${MINGW_CHOST} - make DESTDIR=$pkgdir install + cd build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-podofo/test.patch b/mingw-w64-podofo/test.patch new file mode 100644 index 0000000000..9ee40c44bc --- /dev/null +++ b/mingw-w64-podofo/test.patch @@ -0,0 +1,23 @@ +--- podofo-0.9.3/test/unit/EncryptTest.h.orig 2015-10-29 09:23:29.880214600 +0300 ++++ podofo-0.9.3/test/unit/EncryptTest.h 2015-10-29 10:06:57.095159600 +0300 +@@ -83,7 +83,7 @@ + + private: + char* m_pEncBuffer; +- long m_lLen; ++ intptr_t m_lLen; + int m_protection; + + }; +--- podofo-0.9.3/test/unit/EncryptTest.cpp.orig 2015-10-29 09:24:54.483214600 +0300 ++++ podofo-0.9.3/test/unit/EncryptTest.cpp 2015-10-29 10:08:09.945873800 +0300 +@@ -208,7 +208,8 @@ + + // Decrypt buffer + try { +- pEncrypt->Decrypt( pEncryptedBuffer, nOutputLen, pDecryptedBuffer, m_lLen ); ++ intptr_t mlen = m_lLen; ++ pEncrypt->Decrypt( pEncryptedBuffer, nOutputLen, pDecryptedBuffer, mlen ); + } catch (PdfError &e) { + CPPUNIT_FAIL(e.ErrorMessage(e.GetError())); + } diff --git a/mingw-w64-podofo/win.patch b/mingw-w64-podofo/win.patch index 3fbc097710..2c9a69fa75 100644 --- a/mingw-w64-podofo/win.patch +++ b/mingw-w64-podofo/win.patch @@ -12,3 +12,127 @@ SET(PODOFO_HEADERS podofo-base.h podofo.h) +--- podofo-0.9.3/cmake/modules/FindCppUnit.cmake.orig 2014-06-15 13:27:21.000000000 +0200 ++++ podofo-0.9.3/cmake/modules/FindCppUnit.cmake 2015-10-10 19:24:45.115148986 +0200 +@@ -24,9 +24,9 @@ + SET(CPPUNIT_LIBRARIES) + + IF(CPPUNIT_CONFIG_EXECUTABLE) +- EXEC_PROGRAM(${CPPUNIT_CONFIG_EXECUTABLE} ARGS --cflags RETURN_VALUE _return_VALUE OUTPUT_VARIABLE CPPUNIT_CFLAGS) +- EXEC_PROGRAM(${CPPUNIT_CONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE CPPUNIT_LIBRARIES) +- EXEC_PROGRAM(${CPPUNIT_CONFIG_EXECUTABLE} ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE CPPUNIT_INSTALLED_VERSION) ++ EXECUTE_PROCESS(COMMAND sh ${CPPUNIT_CONFIG_EXECUTABLE} --cflags OUTPUT_VARIABLE CPPUNIT_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) ++ EXECUTE_PROCESS(COMMAND sh ${CPPUNIT_CONFIG_EXECUTABLE} --libs OUTPUT_VARIABLE CPPUNIT_LIBRARIES OUTPUT_STRIP_TRAILING_WHITESPACE) ++ EXECUTE_PROCESS(COMMAND sh ${CPPUNIT_CONFIG_EXECUTABLE} --version OUTPUT_VARIABLE CPPUNIT_INSTALLED_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) + STRING(REGEX REPLACE "-I(.+)" "\\1" CPPUNIT_CFLAGS "${CPPUNIT_CFLAGS}") + ELSE(CPPUNIT_CONFIG_EXECUTABLE) + # in case win32 needs to find it the old way? +@@ -50,7 +50,7 @@ + endif(NOT CppUnit_FIND_QUIETLY) + + IF(CPPUNIT_CONFIG_EXECUTABLE) +- EXEC_PROGRAM(${CPPUNIT_CONFIG_EXECUTABLE} ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE CPPUNIT_INSTALLED_VERSION) ++ EXECUTE_PROCESS(COMMAND sh ${CPPUNIT_CONFIG_EXECUTABLE} --version OUTPUT_VARIABLE CPPUNIT_INSTALLED_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) + ENDIF(CPPUNIT_CONFIG_EXECUTABLE) + + macro_ensure_version( ${CPPUNIT_MIN_VERSION} ${CPPUNIT_INSTALLED_VERSION} CPPUNIT_INSTALLED_VERSION_OK ) +--- podofo-0.9.3/cmake/modules/FindLUA.cmake.orig 2015-10-29 09:07:29.384623400 +0300 ++++ podofo-0.9.3/cmake/modules/FindLUA.cmake 2015-10-29 09:08:37.431623400 +0300 +@@ -1,26 +1,73 @@ +-# LUA_FOUND - system has Fontconfig +-# LUA_LIBRARIES - Link these to use LUA +-# LUA_DEFINITIONS - Compiler switches required for using LUA ++# Locate Lua library ++# This module defines ++# LUA_LIBRARIES ++# LUA_FOUND, if false, do not try to link to Lua ++# LUA_INCLUDE_DIR, where to find lua.h + # +-# Based on FindFONTCONFIG.cmake Copyright (c) 2006,2007 Laurent Montel, +-# +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +-# +-# TODO: Update this code to handle debug/release builds on win32. +- +-if (LUA_LIBRARIES AND LUA_INCLUDE_DIR) +- +- # in cache already +- set(LUA_FOUND TRUE) +- +-else (LUA_LIBRARIES AND LUA_INCLUDE_DIR) +- +- FIND_PACKAGE(Lua51) +- +- include(PoDoFoFindPackageHandleStandardArgs) +- FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua DEFAULT_MSG LUA_LIBRARIES LUA_INCLUDE_DIR ) +- +- mark_as_advanced(LUA_LIBRARIES LUA_INCLUDE_DIR) ++# Note that the expected include convention is ++# #include "lua.h" ++# and not ++# #include ++# This is because, the lua location is not standardized and may exist ++# in locations other than lua/ ++ ++ ++FIND_PATH(LUA_INCLUDE_DIR lua.h ++ PATHS ++ $ENV{LUA_DIR} ++ NO_DEFAULT_PATH ++ PATH_SUFFIXES include/lua include ++) ++ ++FIND_PATH(LUA_INCLUDE_DIR lua.h ++ PATHS ++ ~/Library/Frameworks ++ /Library/Frameworks ++ /usr/local ++ /usr ++ /sw # Fink ++ /opt/local # DarwinPorts ++ /opt/csw # Blastwave ++ /opt ++ PATH_SUFFIXES include/lua include ++) ++ ++FIND_LIBRARY(LUA_LIBRARY ++ NAMES lua ++ PATHS ++ $ENV{LUA_DIR} ++ NO_DEFAULT_PATH ++ PATH_SUFFIXES lib64 lib ++) ++ ++FIND_LIBRARY(LUA_LIBRARY ++ NAMES lua ++ PATHS ++ ~/Library/Frameworks ++ /Library/Frameworks ++ /usr/local ++ /usr ++ /sw ++ /opt/local ++ /opt/csw ++ /opt ++ PATH_SUFFIXES lib64 lib ++) ++ ++IF(LUA_LIBRARY) ++ # include the math library for Unix ++ IF(UNIX AND NOT APPLE) ++ FIND_LIBRARY(LUA_MATH_LIBRARY m) ++ SET( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries") ++ # For Windows and Mac, don't need to explicitly include the math library ++ ELSE(UNIX AND NOT APPLE) ++ SET( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries") ++ ENDIF(UNIX AND NOT APPLE) ++ENDIF(LUA_LIBRARY) ++ ++INCLUDE(PoDoFoFindPackageHandleStandardArgs) ++# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if ++# all listed variables are TRUE ++FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua DEFAULT_MSG LUA_LIBRARIES LUA_INCLUDE_DIR) + +-endif (LUA_LIBRARIES AND LUA_INCLUDE_DIR) ++MARK_AS_ADVANCED(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_MATH_LIBRARY) From 349b636a353344d95f40f852151c223832e310f0 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 29 Oct 2015 12:31:16 +0300 Subject: [PATCH 1789/2060] clang: Fix last patch. Rebuild with new patch for doubles fixes. --- ...convention-of-Mingw64-long-double-va.patch | 36 +++---------------- mingw-w64-clang/PKGBUILD | 6 ++-- 2 files changed, 7 insertions(+), 35 deletions(-) diff --git a/mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch b/mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch index 4efff37814..4e7e6d97bd 100644 --- a/mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch +++ b/mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch @@ -68,15 +68,6 @@ index 149baaa..282c103 100644 }; class X86_64TargetCodeGenInfo : public TargetCodeGenInfo { -@@ -3317,7 +3321,7 @@ ABIArgInfo WinX86_64ABIInfo::classify(QualType Ty, unsigned &FreeSSERegs, - - TypeInfo Info = getContext().getTypeInfo(Ty); - uint64_t Width = Info.Width; -- unsigned Align = getContext().toCharUnitsFromBits(Info.Align).getQuantity(); -+ CharUnits Align = getContext().toCharUnitsFromBits(Info.Align); - - const RecordType *RT = Ty->getAs(); - if (RT) { @@ -3330,9 +3334,9 @@ ABIArgInfo WinX86_64ABIInfo::classify(QualType Ty, unsigned &FreeSSERegs, return getNaturalAlignIndirect(Ty, /*ByVal=*/false); @@ -90,16 +81,6 @@ index 149baaa..282c103 100644 } // vectorcall adds the concept of a homogenous vector aggregate, similar to -@@ -3346,8 +3350,7 @@ ABIArgInfo WinX86_64ABIInfo::classify(QualType Ty, unsigned &FreeSSERegs, - return ABIArgInfo::getDirect(); - return ABIArgInfo::getExpand(); - } -- return ABIArgInfo::getIndirect(CharUnits::fromQuantity(Align), -- /*ByVal=*/false); -+ return ABIArgInfo::getIndirect(Align, /*ByVal=*/false); - } - - @@ -3375,6 +3378,14 @@ ABIArgInfo WinX86_64ABIInfo::classify(QualType Ty, unsigned &FreeSSERegs, if (BT && BT->getKind() == BuiltinType::Bool) return ABIArgInfo::getExtend(); @@ -119,15 +100,7 @@ diff --git a/test/CodeGen/mingw-long-double.c b/test/CodeGen/mingw-long-double.c index a29662c..1c7c31f 100644 --- a/test/CodeGen/mingw-long-double.c +++ b/test/CodeGen/mingw-long-double.c -@@ -1,12 +1,41 @@ --// REQUIRES: x86-registered-target --// RUN: %clang_cc1 -triple i686-pc-windows-gnu -S %s -o - | FileCheck %s -check-prefix=CHECK_I686 --// CHECK_I686: _lda,12 --// CHECK_I686: _lds,16 --// RUN: %clang_cc1 -triple x86_64-pc-windows-gnu -S %s -o - | FileCheck %s -check-prefix=CHECK_X86_64 --// CHECK_X86_64: lda,16 --// CHECK_X86_64: lds,32 --long double lda; +@@ -0,0 +1,41 @@ +// RUN: %clang_cc1 -triple i686-windows-gnu -emit-llvm -o - %s \ +// RUN: | FileCheck %s --check-prefix=GNU32 +// RUN: %clang_cc1 -triple x86_64-windows-gnu -emit-llvm -o - %s \ @@ -135,10 +108,9 @@ index a29662c..1c7c31f 100644 +// RUN: %clang_cc1 -triple x86_64-windows-msvc -emit-llvm -o - %s \ +// RUN: | FileCheck %s --check-prefix=MSC64 + - struct { - char c; - long double ldb; --} lds; ++struct { ++ char c; ++ long double ldb; +} agggregate_LD = {}; +// GNU32: %struct.anon = type { i8, x86_fp80 } +// GNU32: @agggregate_LD = global %struct.anon zeroinitializer, align 4 diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 429c7e3d59..5c3e9585ca 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -14,7 +14,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" ) pkgver=3.7.0 -pkgrel=4 +pkgrel=5 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -78,7 +78,7 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' '13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' - 'e55c1d11115e34dbda1999335b3e364987b6bd95a7777526804a24ff8147a08f' + 'e902f1cfa725409ffdbf7e824f964bad30bfe7503a19da55aab535199a425064' '59e7afa5e74d186ad596c9a7625d6022fde0679faea9d1fd516fe0a622dbc01a' '47fbe90718742d1a3c0aee919b159241e616738447de3505a48a9f5886e5db96' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' @@ -205,7 +205,7 @@ build() { check() { plain "skipping make check..." - #cd "$srcdir/build-${MINGW_CHOST}" + #cd "${srcdir}/build-${MINGW_CHOST}" #make check } From 18a1c50e196bb8b64dbce11be2d70630d5c991c3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 29 Oct 2015 15:56:23 +0300 Subject: [PATCH 1790/2060] gtk3: Some fixes. --- mingw-w64-gtk3/PKGBUILD | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index f300f40fac..9504b50813 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -4,7 +4,7 @@ _realname=gtk3 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.18.2 -pkgrel=3 +pkgrel=4 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -19,27 +19,25 @@ makedepends+=("autoconf" "automake" "libtool") # autotools are required because several Makefile.am are modified depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" - "${MINGW_PACKAGE_PREFIX}-atk>=2.15.1" - "${MINGW_PACKAGE_PREFIX}-cairo>=1.14.0" - "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2>=2.30.0" - "${MINGW_PACKAGE_PREFIX}-glib2>=2.43.4" + "${MINGW_PACKAGE_PREFIX}-atk" + "${MINGW_PACKAGE_PREFIX}-cairo" + "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" + "${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-json-glib" "${MINGW_PACKAGE_PREFIX}-libepoxy" - "${MINGW_PACKAGE_PREFIX}-pango>=1.36.7" + "${MINGW_PACKAGE_PREFIX}-pango" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" 0013-fix-mingw-w64-fstat-call.mingw.patch 0056-missing-file-toarray-pl.patch 0080-backport-notebook-tab-drag-fixes.patch - 0090-backport-fix-introspection-syntax.patch -) + 0090-backport-fix-introspection-syntax.patch) md5sums=('230fd78e42419d35ff790784b457e5f2' '21789d52c1debcab59f8b6a99232de68' 'f25cb2486d761b60e04036947552bf82' '8d86218ed960cd86c8b04c987f7038e9' - '664ce09ba116bda6207ff2ef898392fa' -) + '664ce09ba116bda6207ff2ef898392fa') prepare() { cd "${srcdir}/gtk+-${pkgver}" @@ -47,19 +45,21 @@ prepare() { rm -f gdk/broadway/toarray.pl patch -p1 -i ${srcdir}/0056-missing-file-toarray-pl.patch - patch -Np1 -i ${srcdir}/0080-backport-notebook-tab-drag-fixes.patch - patch -Np1 -i ${srcdir}/0090-backport-fix-introspection-syntax.patch autoreconf -i } build() { + #export GI_SCANNER_DEBUG="save-temps" export MSYS2_ARG_CONV_EXCL="-//OASIS//DTD" - [[ -d "${srcdir}/${CHOST}" ]] && rm -rf "${srcdir}/${CHOST}" - cp -rf ${srcdir}/gtk+-${pkgver} "${srcdir}/${CHOST}" - cd "${srcdir}/${CHOST}" + rm -rf build-${MINGW_CHOST} + cp -rf gtk+-${pkgver} build-${MINGW_CHOST} + #mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/share/pkgconfig" \ ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -69,13 +69,15 @@ build() { --enable-introspection \ --enable-broadway-backend \ --disable-cups \ - --with-included-immodules - make + --with-included-immodules \ + --disable-silent-rules + + make V=1 } package() { #export MSYS2_ARG_CONV_EXCL="-//OASIS" - cd "${srcdir}/${CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="${pkgdir}" install find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' -o -name '*.manifest' | xargs -rtl1 rm From 0d7d08ced5873f1dbbf843cf45061bbbb7b91202 Mon Sep 17 00:00:00 2001 From: archdvx Date: Thu, 29 Oct 2015 15:35:39 +0100 Subject: [PATCH 1791/2060] fox-toolkit package --- mingw-w64-fox/PKGBUILD | 55 ++++++++++++++++++++++++++++ mingw-w64-fox/fox-1-rdynamic.patch | 13 +++++++ mingw-w64-fox/fox-2-FXTrayIcon.patch | 12 ++++++ mingw-w64-fox/fox-3-chart.patch | 11 ++++++ 4 files changed, 91 insertions(+) create mode 100644 mingw-w64-fox/PKGBUILD create mode 100644 mingw-w64-fox/fox-1-rdynamic.patch create mode 100644 mingw-w64-fox/fox-2-FXTrayIcon.patch create mode 100644 mingw-w64-fox/fox-3-chart.patch diff --git a/mingw-w64-fox/PKGBUILD b/mingw-w64-fox/PKGBUILD new file mode 100644 index 0000000000..2feab94716 --- /dev/null +++ b/mingw-w64-fox/PKGBUILD @@ -0,0 +1,55 @@ +# Maintainer: David Vachulka + +_realname=fox +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.6.50 +pkgrel=1 +pkgdesc="C++ user interface toolkit (mingw-w64)" +arch=('any') +url="http://www.fox-toolkit.org" +license=('LGPLv2+ with exceptions') +groups=("${MINGW_PACKAGE_PREFIX}") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-zlib" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +options=('strip') +source=("ftp://ftp.fox-toolkit.org/pub/${_realname}-${pkgver}.tar.gz" + fox-1-rdynamic.patch + fox-2-FXTrayIcon.patch + fox-3-chart.patch) +md5sums=('f68c2219318ecb0b838387ae85d3220d' + 'd9a955540ec3a29bc3cef70f925a751c' + 'f83fde69de68aac83416cee1cb723891' + '4a1e63a68911728a06abddcb21d4ff34') + +prepare() { +cd "${srcdir}"/${_realname}-${pkgver} +patch -p0 -i ${srcdir}/fox-1-rdynamic.patch +patch -p0 -i ${srcdir}/fox-2-FXTrayIcon.patch +patch -p0 -i ${srcdir}/fox-3-chart.patch +} + +build() { + [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} + cp -rf ${_realname}-${pkgver} build-${CARCH} + cd build-${CARCH} + autoreconf -fvi + ./configure \ + --prefix=${MINGW_PREFIX} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --enable-release \ + --disable-debug \ + --with-xft=no \ + --with-x=no + make VERBOSE=1 +} + +package() { + cd ${srcdir}/build-${CARCH} + make DESTDIR="${pkgdir}" install +} diff --git a/mingw-w64-fox/fox-1-rdynamic.patch b/mingw-w64-fox/fox-1-rdynamic.patch new file mode 100644 index 0000000000..033ebddc6d --- /dev/null +++ b/mingw-w64-fox/fox-1-rdynamic.patch @@ -0,0 +1,13 @@ + +--- configure.ac.orig ++++ configure.ac +@@ -110,7 +110,7 @@ + # Add copious amounts of debugging with gcc + if test "${GXX}" = "yes" ; then +- CXXFLAGS="${CXXFLAGS} -Wall -Wformat -Woverloaded-virtual -Wshadow" ++ CXXFLAGS="${CXXFLAGS} -Wall -Wformat -Woverloaded-virtual -Wshadow -DUNICODE" +- #LDFLAGS="-rdynamic ${LDFLAGS}" ++ LDFLAGS="-no-undefined ${LDFLAGS}" + fi + + # Debugging turned on diff --git a/mingw-w64-fox/fox-2-FXTrayIcon.patch b/mingw-w64-fox/fox-2-FXTrayIcon.patch new file mode 100644 index 0000000000..1400b6b0ed --- /dev/null +++ b/mingw-w64-fox/fox-2-FXTrayIcon.patch @@ -0,0 +1,12 @@ + +--- include/FXIcon.h.orig ++++ include/FXIcon.h +@@ -49,6 +49,7 @@ + friend class FXDCWindow; + friend class FXDrawable; + friend class FXTopWindow; ++ friend class FXTrayIcon; + protected: + FXID shape; // Shape pixmap + FXID etch; // Etch pixmap + diff --git a/mingw-w64-fox/fox-3-chart.patch b/mingw-w64-fox/fox-3-chart.patch new file mode 100644 index 0000000000..d04490e1c0 --- /dev/null +++ b/mingw-w64-fox/fox-3-chart.patch @@ -0,0 +1,11 @@ +--- chart/Makefile.am.orig ++++ chart/Makefile.am +@@ -8,7 +8,7 @@ + + lib_LTLIBRARIES = libCHART-1.6.la + +-libCHART_1_6_la_LIBADD = $(X_LIBS) $(X_BASE_LIBS) $(X_EXTRA_LIBS) ++libCHART_1_6_la_LIBADD = $(X_LIBS) $(X_BASE_LIBS) $(X_EXTRA_LIBS) $(top_builddir)/src/libFOX-1.6.la + + libCHART_1_6_la_LDFLAGS = \ + -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ From 5db30b16141b96161205c7ba492609ff790627b1 Mon Sep 17 00:00:00 2001 From: archdvx Date: Thu, 29 Oct 2015 18:53:34 +0100 Subject: [PATCH 1792/2060] pkgbase added etc. --- mingw-w64-fox/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-fox/PKGBUILD b/mingw-w64-fox/PKGBUILD index 2feab94716..f19d271fad 100644 --- a/mingw-w64-fox/PKGBUILD +++ b/mingw-w64-fox/PKGBUILD @@ -2,6 +2,7 @@ _realname=fox pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgbase=mingw-w64-${_realname} pkgver=1.6.50 pkgrel=1 pkgdesc="C++ user interface toolkit (mingw-w64)" @@ -26,10 +27,10 @@ md5sums=('f68c2219318ecb0b838387ae85d3220d' '4a1e63a68911728a06abddcb21d4ff34') prepare() { -cd "${srcdir}"/${_realname}-${pkgver} -patch -p0 -i ${srcdir}/fox-1-rdynamic.patch -patch -p0 -i ${srcdir}/fox-2-FXTrayIcon.patch -patch -p0 -i ${srcdir}/fox-3-chart.patch + cd "${srcdir}"/${_realname}-${pkgver} + patch -p0 -i ${srcdir}/fox-1-rdynamic.patch + patch -p0 -i ${srcdir}/fox-2-FXTrayIcon.patch + patch -p0 -i ${srcdir}/fox-3-chart.patch } build() { From d3d638abcd0ac4bff5de39b641eaf6acbe08ac30 Mon Sep 17 00:00:00 2001 From: archdvx Date: Thu, 29 Oct 2015 19:00:54 +0100 Subject: [PATCH 1793/2060] ... --- mingw-w64-fox/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-fox/PKGBUILD b/mingw-w64-fox/PKGBUILD index f19d271fad..4597933966 100644 --- a/mingw-w64-fox/PKGBUILD +++ b/mingw-w64-fox/PKGBUILD @@ -1,8 +1,8 @@ # Maintainer: David Vachulka _realname=fox -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.50 pkgrel=1 pkgdesc="C++ user interface toolkit (mingw-w64)" From 3c6ee75f2b3cc65bc8e0e10188cf92c30ec68f40 Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Thu, 29 Oct 2015 22:57:12 +0200 Subject: [PATCH 1794/2060] libbotan: updated to 1.11.23 --- mingw-w64-libbotan/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libbotan/PKGBUILD b/mingw-w64-libbotan/PKGBUILD index 64e05e0ded..97c8b48c2c 100644 --- a/mingw-w64-libbotan/PKGBUILD +++ b/mingw-w64-libbotan/PKGBUILD @@ -3,7 +3,7 @@ _realname=libbotan pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.11.21 +pkgver=1.11.23 pkgrel=1 arch=('any') url='http://botan.randombit.net/' @@ -23,7 +23,7 @@ source=(http://botan.randombit.net/releases/Botan-${pkgver}.tgz{,.asc} 'boost-link.patch' 'winsock-link.patch' 'disable-mkgmtime.patch') -sha1sums=('513099c151898c629b334165b7d2cc2b4c06e2a1' +sha1sums=('5f01d5d0aec37f9a59df37b54409748d4be779d1' 'SKIP' '407e623b46ef1b288b90195d9acadb34611b088b' '867667533df37c6b88b267c0e95b979d8115dea7' From 5940c8d77f6d36a7378ee4008de32316c8d6b4bf Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 30 Oct 2015 09:21:57 +0300 Subject: [PATCH 1795/2060] cgal: Update to 4.7 --- mingw-w64-cgal/PKGBUILD | 17 +++++++---------- .../fix-library-location-config.patch | 11 ----------- 2 files changed, 7 insertions(+), 21 deletions(-) delete mode 100644 mingw-w64-cgal/fix-library-location-config.patch diff --git a/mingw-w64-cgal/PKGBUILD b/mingw-w64-cgal/PKGBUILD index 2b50a80c64..6c44589de7 100644 --- a/mingw-w64-cgal/PKGBUILD +++ b/mingw-w64-cgal/PKGBUILD @@ -1,10 +1,10 @@ # Maintainer: Alexey Pavlov _realname=cgal +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.6.1 -pkgrel=2 -_pkgid=34898 +pkgver=4.7 +pkgrel=1 pkgdesc="Computational Geometry Algorithms Library (mingw-w64)" arch=('any') url="http://www.cgal.org" @@ -21,17 +21,14 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-eigen3: for some packages, see the CGAL man #"${MINGW_PACKAGE_PREFIX}-qt4: for CGAL_Qt4" ) options=('strip' 'staticlibs') -source=(http://gforge.inria.fr/frs/download.php/${_pkgid}/CGAL-${pkgver}.tar.xz - msys2-relocate-cmake-config.patch - fix-library-location-config.patch) -sha1sums=('a187920223ba3b2a275982e43bec33fadcea01db' - '3742f2bb189f6c53e66e6ba5562c28685f9d1a86' - '36631de181f3c4a1f5a06c93633fedbe3503bafc') +source=(https://github.com/CGAL/cgal/releases/download/releases/CGAL-${pkgver}/CGAL-${pkgver}.tar.xz + msys2-relocate-cmake-config.patch) +sha1sums=('fafcadbe7e0d76369c8e262eca6a9c78ef80cff1' + '3742f2bb189f6c53e66e6ba5562c28685f9d1a86') prepare() { cd "${srcdir}"/CGAL-${pkgver} patch -p1 -i "${srcdir}"/msys2-relocate-cmake-config.patch - patch -p1 -i "${srcdir}"/fix-library-location-config.patch } build() { diff --git a/mingw-w64-cgal/fix-library-location-config.patch b/mingw-w64-cgal/fix-library-location-config.patch deleted file mode 100644 index b01d147cc6..0000000000 --- a/mingw-w64-cgal/fix-library-location-config.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- CGAL-4.6.1/CMakeLists.txt.orig 2015-07-30 23:35:01.281605000 +0300 -+++ CGAL-4.6.1/CMakeLists.txt 2015-07-30 23:35:24.532518300 +0300 -@@ -826,7 +826,7 @@ - foreach(lib ${CGAL_CONFIGURED_LIBRARIES} CGAL) # note the added fake 'CGAL' - if(${lib}_LIBRARY) - get_filename_component(lib_name "${${lib}_LIBRARY}" NAME) -- set(${lib}_LIBRARY_INSTALLED "${CMAKE_INSTALL_PREFIX}/${CGAL_INSTALL_LIB_DIR}/${lib_name}") -+ set(${lib}_LIBRARY_INSTALLED "${CMAKE_INSTALL_PREFIX}/${CGAL_INSTALL_BIN_DIR}/${lib_name}") - else() - set(${lib}_LIBRARY_INSTALLED "") - endif() From 33b3a5e0648e8621ceb21127b9a95ab971d32e87 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 30 Oct 2015 12:10:07 +0300 Subject: [PATCH 1796/2060] cairo: Update to 1.14.4 --- .../0031-ad-Win32-boilerplate.patch | 304 ------------------ mingw-w64-cairo/PKGBUILD | 20 +- 2 files changed, 9 insertions(+), 315 deletions(-) delete mode 100644 mingw-w64-cairo/0031-ad-Win32-boilerplate.patch diff --git a/mingw-w64-cairo/0031-ad-Win32-boilerplate.patch b/mingw-w64-cairo/0031-ad-Win32-boilerplate.patch deleted file mode 100644 index 90578fe55f..0000000000 --- a/mingw-w64-cairo/0031-ad-Win32-boilerplate.patch +++ /dev/null @@ -1,304 +0,0 @@ -From e38e942ac0ef6f5366cabdb22df9858fa4c05ea1 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?= -Date: Sat, 4 Apr 2015 15:58:53 +0000 -Subject: win32: Add a win32 boilerplate that uses a real window - -This way it uses the codepath for cairo_win32_surface_create_with_format(), -instead of the cairo_win32_surface_create_with_dib(). - -Without the recording tests (which terminate the testsuite) -the testsuite results for win32 are: - -284 Passed, 167 Failed [1 crashed, 9 expected], 23 Skipped -win32 (rgb24): 1 crashed! -win32 (rgb24): 17 error -win32 (rgb24): 155 failed -win32 (argb32): 1 crashed! -win32 (argb32): 17 error -win32 (argb32): 68 failed -win32-window-color (rgb24): 1 crashed! -win32-window-color (rgb24): 17 error -win32-window-color (rgb24): 148 failed -win32-window-coloralpha (argb32): 1 crashed! -win32-window-coloralpha (argb32): 17 error -win32-window-coloralpha (argb32): 66 failed - -Reviewed-by: Bryce Harrington - -diff --git a/boilerplate/cairo-boilerplate-win32.c b/boilerplate/cairo-boilerplate-win32.c -index 7469cc7..4fd0a10 100644 ---- a/boilerplate/cairo-boilerplate-win32.c -+++ b/boilerplate/cairo-boilerplate-win32.c -@@ -28,15 +28,191 @@ - - #include - -+static const cairo_user_data_key_t win32_closure_key; -+ -+typedef struct _win32_target_closure { -+ HWND wnd; -+ HDC dc; -+ ATOM bpl_atom; -+ cairo_surface_t *surface; -+} win32_target_closure_t; -+ -+static void -+_cairo_boilerplate_win32_cleanup_window_surface (void *closure) -+{ -+ win32_target_closure_t *win32tc = closure; -+ -+ if (win32tc != NULL) -+ { -+ if (win32tc->wnd != NULL && -+ ReleaseDC (win32tc->wnd, win32tc->dc) != 1) -+ fprintf (stderr, -+ "Failed to release DC of a test window when cleaning up.\n"); -+ if (win32tc->wnd != NULL && -+ DestroyWindow (win32tc->wnd) == 0) -+ fprintf (stderr, -+ "Failed to destroy a test window when cleaning up, GLE is %lu.\n", -+ GetLastError ()); -+ if (win32tc->bpl_atom != 0 && -+ UnregisterClassA ((LPCSTR) MAKELPARAM (win32tc->bpl_atom, 0), GetModuleHandle (NULL)) == 0 && -+ GetLastError () != ERROR_CLASS_DOES_NOT_EXIST) -+ fprintf (stderr, -+ "Failed to unregister boilerplate window class, GLE is %lu.\n", -+ GetLastError ()); -+ -+ free (win32tc); -+ } -+} -+ -+static win32_target_closure_t * -+_cairo_boilerplate_win32_create_window (int width, -+ int height) -+{ -+ WNDCLASSEXA wincl; -+ win32_target_closure_t *win32tc; -+ LPCSTR window_class_name; -+ -+ ZeroMemory (&wincl, sizeof (WNDCLASSEXA)); -+ wincl.cbSize = sizeof (WNDCLASSEXA); -+ wincl.hInstance = GetModuleHandle (0); -+ wincl.lpszClassName = "cairo_boilerplate_win32_dummy"; -+ wincl.lpfnWndProc = DefWindowProcA; -+ wincl.style = CS_OWNDC; -+ -+ win32tc = calloc (1, sizeof (win32_target_closure_t)); -+ -+ if (win32tc == NULL) -+ { -+ int error = errno; -+ fprintf (stderr, "Ran out of memory: %d.\n", error); -+ return NULL; -+ } -+ -+ ZeroMemory (win32tc, sizeof (win32_target_closure_t)); -+ -+ win32tc->bpl_atom = RegisterClassExA (&wincl); -+ -+ if (win32tc->bpl_atom == 0 && GetLastError () != ERROR_CLASS_ALREADY_EXISTS) -+ { -+ fprintf (stderr, -+ "Failed to register a boilerplate window class, GLE is %lu.\n", -+ GetLastError ()); -+ _cairo_boilerplate_win32_cleanup_window_surface (win32tc); -+ return NULL; -+ } -+ -+ if (win32tc->bpl_atom == 0) -+ window_class_name = wincl.lpszClassName; -+ else -+ window_class_name = (LPCSTR) MAKELPARAM (win32tc->bpl_atom, 0); -+ -+ win32tc->wnd = CreateWindowExA (WS_EX_TOOLWINDOW, -+ window_class_name, -+ 0, -+ WS_POPUP, -+ 0, -+ 0, -+ width, -+ height, -+ 0, -+ 0, -+ 0, -+ 0); -+ -+ if (win32tc->wnd == NULL) -+ { -+ fprintf (stderr, -+ "Failed to create a test window, GLE is %lu.\n", -+ GetLastError ()); -+ _cairo_boilerplate_win32_cleanup_window_surface (win32tc); -+ return NULL; -+ } -+ -+ win32tc->dc = GetDC (win32tc->wnd); -+ -+ if (win32tc->dc == NULL) -+ { -+ fprintf (stderr, "Failed to get test window DC.\n"); -+ _cairo_boilerplate_win32_cleanup_window_surface (win32tc); -+ return NULL; -+ } -+ -+ SetWindowPos (win32tc->wnd, -+ HWND_BOTTOM, -+ INT_MIN, -+ INT_MIN, -+ width, -+ height, -+ SWP_NOACTIVATE | SWP_SHOWWINDOW); -+ -+ return win32tc; -+} -+ - static cairo_surface_t * --_cairo_boilerplate_win32_create_surface (const char *name, -- cairo_content_t content, -- double width, -- double height, -- double max_width, -- double max_height, -- cairo_boilerplate_mode_t mode, -- void **closure) -+_cairo_boilerplate_win32_create_window_surface (const char *name, -+ cairo_content_t content, -+ double width, -+ double height, -+ double max_width, -+ double max_height, -+ cairo_boilerplate_mode_t mode, -+ void **closure) -+{ -+ win32_target_closure_t *win32tc; -+ cairo_surface_t *surface; -+ cairo_format_t format; -+ cairo_status_t status; -+ -+ win32tc = _cairo_boilerplate_win32_create_window (width, height); -+ -+ if (win32tc == NULL) -+ return NULL; -+ -+ format = cairo_boilerplate_format_from_content (content); -+ -+ surface = cairo_win32_surface_create_with_format (win32tc->dc, format); -+ -+ win32tc->surface = surface; -+ -+ status = cairo_surface_status (surface); -+ -+ if (status != CAIRO_STATUS_SUCCESS) -+ { -+ fprintf (stderr, -+ "Failed to create the test surface: %s [%d].\n", -+ cairo_status_to_string (status), status); -+ _cairo_boilerplate_win32_cleanup_window_surface (win32tc); -+ return NULL; -+ } -+ -+ status = cairo_surface_set_user_data (surface, &win32_closure_key, win32tc, NULL); -+ -+ if (status != CAIRO_STATUS_SUCCESS) -+ { -+ fprintf (stderr, -+ "Failed to set surface userdata: %s [%d].\n", -+ cairo_status_to_string (status), status); -+ -+ cairo_surface_destroy (surface); -+ _cairo_boilerplate_win32_cleanup_window_surface (win32tc); -+ -+ return NULL; -+ } -+ -+ *closure = win32tc; -+ -+ return surface; -+} -+ -+static cairo_surface_t * -+_cairo_boilerplate_win32_create_dib_surface (const char *name, -+ cairo_content_t content, -+ double width, -+ double height, -+ double max_width, -+ double max_height, -+ cairo_boilerplate_mode_t mode, -+ void **closure) - { - cairo_format_t format; - -@@ -52,12 +228,16 @@ static const cairo_boilerplate_target_t targets[] = { - "win32", "win32", NULL, NULL, - CAIRO_SURFACE_TYPE_WIN32, CAIRO_CONTENT_COLOR, 0, - "cairo_win32_surface_create_with_dib", -- _cairo_boilerplate_win32_create_surface, -+ _cairo_boilerplate_win32_create_dib_surface, - cairo_surface_create_similar, -- NULL, NULL, -+ NULL, -+ NULL, - _cairo_boilerplate_get_image_surface, - cairo_surface_write_to_png, -- NULL, NULL, NULL, TRUE, FALSE, FALSE -+ NULL, -+ NULL, -+ NULL, -+ TRUE, FALSE, FALSE - }, - /* Testing the win32 surface isn't interesting, since for - * ARGB images it just chains to the image backend -@@ -66,12 +246,46 @@ static const cairo_boilerplate_target_t targets[] = { - "win32", "win32", NULL, NULL, - CAIRO_SURFACE_TYPE_WIN32, CAIRO_CONTENT_COLOR_ALPHA, 0, - "cairo_win32_surface_create_with_dib", -- _cairo_boilerplate_win32_create_surface, -+ _cairo_boilerplate_win32_create_dib_surface, -+ cairo_surface_create_similar, -+ NULL, -+ NULL, -+ _cairo_boilerplate_get_image_surface, -+ cairo_surface_write_to_png, -+ NULL, -+ NULL, -+ NULL, -+ FALSE, FALSE, FALSE -+ }, -+ { -+ "win32-window-color", "win32", NULL, NULL, -+ CAIRO_SURFACE_TYPE_WIN32, CAIRO_CONTENT_COLOR, 1, -+ "cairo_win32_surface_create", -+ _cairo_boilerplate_win32_create_window_surface, -+ cairo_surface_create_similar, -+ NULL, -+ NULL, -+ _cairo_boilerplate_get_image_surface, -+ cairo_surface_write_to_png, -+ _cairo_boilerplate_win32_cleanup_window_surface, -+ NULL, -+ NULL, -+ FALSE, FALSE, FALSE -+ }, -+ { -+ "win32-window-coloralpha", "win32", NULL, NULL, -+ CAIRO_SURFACE_TYPE_WIN32, CAIRO_CONTENT_COLOR_ALPHA, 1, -+ "cairo_win32_surface_create_with_format", -+ _cairo_boilerplate_win32_create_window_surface, - cairo_surface_create_similar, -- NULL, NULL, -+ NULL, -+ NULL, - _cairo_boilerplate_get_image_surface, - cairo_surface_write_to_png, -- NULL, NULL, NULL, FALSE, FALSE, FALSE -+ _cairo_boilerplate_win32_cleanup_window_surface, -+ NULL, -+ NULL, -+ FALSE, FALSE, FALSE - }, - }; - CAIRO_BOILERPLATE (win32, targets) --- -cgit v0.10.2 diff --git a/mingw-w64-cairo/PKGBUILD b/mingw-w64-cairo/PKGBUILD index 280135f454..063ce21ef6 100644 --- a/mingw-w64-cairo/PKGBUILD +++ b/mingw-w64-cairo/PKGBUILD @@ -4,8 +4,8 @@ _realname=cairo pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.14.2 -pkgrel=3 +pkgver=1.14.4 +pkgrel=1 pkgdesc="Cairo vector graphics library (mingw-w64)" arch=('any') url="http://cairographics.org" @@ -31,30 +31,28 @@ options=('strip' 'staticlibs') source=("http://cairographics.org/releases/cairo-${pkgver}.tar.xz" 0009-standalone-headers.mingw.patch 0026-create-argb-fonts.all.patch - 0030-add-cairo-API-to-setup-Win32-surface-for-HDC.patch - 0031-ad-Win32-boilerplate.patch) -sha1sums=('c8da68aa66ca0855b5d0ff552766d3e8679e1d24' + 0030-add-cairo-API-to-setup-Win32-surface-for-HDC.patch) +sha1sums=('5b44471e7c328f96de6830baf8ea65030de797f9' '58c548d2791ba20dd7f6e328ff596f746df3aa10' '9c0e533614782a41af2c3806a43ab7fe9d6a5431' - 'c0c9546f120133b8e5b116650ba233a15a1e20c4' - 'f0ce67743fe91668bbbd7bbbabdd2e74b9137026') + 'c0c9546f120133b8e5b116650ba233a15a1e20c4') prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0009-standalone-headers.mingw.patch patch -p1 -i ${srcdir}/0026-create-argb-fonts.all.patch patch -p1 -i ${srcdir}/0030-add-cairo-API-to-setup-Win32-surface-for-HDC.patch - patch -p1 -i ${srcdir}/0031-ad-Win32-boilerplate.patch autoreconf -fi } build() { # export lt_cv_deplibs_check_method='pass_all' - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" + rm -rf build-${MINGW_CHOST} + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} CFLAGS+=" -Wno-implicit-function-declaration" - "${srcdir}"/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ From 6067f8a7aefc1e6c4579440dd5f5b0d6d53f1de1 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 30 Oct 2015 12:10:34 +0300 Subject: [PATCH 1797/2060] clang: Proposed fix for libstdc++ crash --- ...the-calling-convention-of-Mingw64-long-double-va.patch | 8 +++----- mingw-w64-clang/PKGBUILD | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch b/mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch index 4e7e6d97bd..87a1b735ba 100644 --- a/mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch +++ b/mingw-w64-clang/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch @@ -68,16 +68,14 @@ index 149baaa..282c103 100644 }; class X86_64TargetCodeGenInfo : public TargetCodeGenInfo { -@@ -3330,9 +3334,9 @@ ABIArgInfo WinX86_64ABIInfo::classify(QualType Ty, unsigned &FreeSSERegs, +@@ -3330,10 +3334,6 @@ ABIArgInfo WinX86_64ABIInfo::classify(QualType Ty, unsigned &FreeSSERegs, + if (RT->getDecl()->hasFlexibleArrayMember()) return getNaturalAlignIndirect(Ty, /*ByVal=*/false); - // FIXME: mingw-w64-gcc emits 128-bit struct as i128 +- // FIXME: mingw-w64-gcc emits 128-bit struct as i128 - if (Width == 128 && getTarget().getTriple().isWindowsGNUEnvironment()) - return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(), - Width)); -+ if (Width == 128 && IsMingw64) -+ return ABIArgInfo::getDirect( -+ llvm::IntegerType::get(getVMContext(), Width)); } // vectorcall adds the concept of a homogenous vector aggregate, similar to diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 5c3e9585ca..0ee7288dd2 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -14,7 +14,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" ) pkgver=3.7.0 -pkgrel=5 +pkgrel=6 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -78,7 +78,7 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' '13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' - 'e902f1cfa725409ffdbf7e824f964bad30bfe7503a19da55aab535199a425064' + 'f7bc109b07b5256a068dbe55097c24b46307aea442bec884d8ba455dc3ad18fd' '59e7afa5e74d186ad596c9a7625d6022fde0679faea9d1fd516fe0a622dbc01a' '47fbe90718742d1a3c0aee919b159241e616738447de3505a48a9f5886e5db96' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' From 86ec17254fb7c03ddf88cfaccf0074ae97912b11 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 30 Oct 2015 13:07:26 +0300 Subject: [PATCH 1798/2060] libmariadbclient: Update to 2.2.0 --- mingw-w64-libmariadbclient/PKGBUILD | 27 ++++----- .../fix-libnames-mingw.patch | 58 ++++++++----------- .../fix-qt5-uint-error.patch | 11 ---- 3 files changed, 38 insertions(+), 58 deletions(-) delete mode 100644 mingw-w64-libmariadbclient/fix-qt5-uint-error.patch diff --git a/mingw-w64-libmariadbclient/PKGBUILD b/mingw-w64-libmariadbclient/PKGBUILD index 0280fdf842..fca66c878a 100644 --- a/mingw-w64-libmariadbclient/PKGBUILD +++ b/mingw-w64-libmariadbclient/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libmariadbclient +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.0 -pkgrel=2 +pkgver=2.2.0 +pkgrel=1 pkgdesc="MariaDB client libraries (mingw-w64)" arch=('any') url="http://mariadb.org" @@ -13,26 +14,26 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib") #"${MINGW_PACKAGE_PREFIX}-sqlite3" options=('!strip' 'staticlibs') -source=("https://downloads.mariadb.org/interstitial/connector-c-${pkgver}/source-tgz/mariadb-connector-c-${pkgver}-src.tar.gz" +source=(#"https://downloads.mariadb.org/interstitial/connector-c-${pkgver}/source-tgz/mariadb-connector-c-${pkgver}-src.tar.gz" + http://mirror.mephi.ru/mariadb/connector-c-${pkgver}/mariadb-connector-c-${pkgver}-src.tar.gz{,.asc} 'fix-libnames-mingw.patch' 'use_fopen_for_xp_compatibility.patch' - 'fix-size-t-defined.patch' - 'fix-qt5-uint-error.patch') -sha256sums=('568050b89463af7610d458669fd9eee06dcc9405689aca8a526ac8c013b59167' - '6aecfea37704406d035b77702a05715493a3b9a036ffe1c2dee9fd600710d60c' + 'fix-size-t-defined.patch') +sha256sums=('3825b068d38bc19d6ad1eaecdd74bcd49d6ddd9d00559fb150e4e851a55bbbd4' + 'SKIP' + '7d361086b805972cbe06e3d96aec9511d6f85031127ed49c86c4d5e80f5f4147' '81ea9f16845c14a35e9c587ae84dc23c383c8be6d4afcf0587b84972a8f81b4e' - 'f0cba818d125687dc8d04f501484be8d159a1989ff12b5130c2fd213add3e519' - 'f0fcf51886f51bee17ca518ee6b0f837f9320616333fe5c016afce2d00185b82') + 'f0cba818d125687dc8d04f501484be8d159a1989ff12b5130c2fd213add3e519') prepare() { cd ${srcdir}/mariadb-connector-c-${pkgver}-src - patch -p0 -i ../fix-libnames-mingw.patch - patch -p0 -i ../use_fopen_for_xp_compatibility.patch - patch -p0 -i ../fix-size-t-defined.patch - patch -p0 -i ../fix-qt5-uint-error.patch + patch -p1 -i ${srcdir}/fix-libnames-mingw.patch + patch -p0 -i ${srcdir}/use_fopen_for_xp_compatibility.patch + patch -p0 -i ${srcdir}/fix-size-t-defined.patch } build() { + rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} diff --git a/mingw-w64-libmariadbclient/fix-libnames-mingw.patch b/mingw-w64-libmariadbclient/fix-libnames-mingw.patch index b904d28dc4..0a2da6dc66 100644 --- a/mingw-w64-libmariadbclient/fix-libnames-mingw.patch +++ b/mingw-w64-libmariadbclient/fix-libnames-mingw.patch @@ -1,17 +1,23 @@ ---- libmariadb/CMakeLists.txt.orig 2015-02-05 09:57:29.549448173 -0700 -+++ libmariadb/CMakeLists.txt 2015-02-05 10:01:01.498040468 -0700 -@@ -372,8 +372,8 @@ - ADD_LIBRARY(mariadbclient STATIC $ ${EXPORT_LINK}) +--- mariadb-connector-c-2.2.0-src/libmariadb/CMakeLists.txt.orig 2015-09-29 22:21:13.000000000 +0300 ++++ mariadb-connector-c-2.2.0-src/libmariadb/CMakeLists.txt 2015-10-30 12:42:38.140347000 +0300 +@@ -378,24 +378,25 @@ + ADD_LIBRARY(mariadbclient STATIC $ ${EMPTY_FILE} ${EXPORT_LINK}) TARGET_LINK_LIBRARIES(mariadbclient ${SYSTEM_LIBS}) --ADD_LIBRARY(libmariadb SHARED $ ${EXPORT_LINK}) +-ADD_LIBRARY(libmariadb SHARED $ ${EMPTY_FILE} ${EXPORT_LINK}) -TARGET_LINK_LIBRARIES(libmariadb ${SYSTEM_LIBS}) -+ADD_LIBRARY(mariadb SHARED ${LIBMARIADB_SOURCES}) ++ADD_LIBRARY(mariadb SHARED $ ${EMPTY_FILE} ${EXPORT_LINK}) +TARGET_LINK_LIBRARIES(mariadb ${SYSTEM_LIBS}) IF(UNIX) SET_TARGET_PROPERTIES(libmariadb PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}") ENDIF() -@@ -385,11 +385,12 @@ + + IF(CMAKE_SYSTEM_NAME MATCHES "Linux") +- TARGET_LINK_LIBRARIES (libmariadb "-Wl,--no-undefined") +- TARGET_LINK_LIBRARIES (libmariadb "-Wl,--version-script=${EXPORT_FILE}") ++ TARGET_LINK_LIBRARIES (mariadb "-Wl,--no-undefined") ++ TARGET_LINK_LIBRARIES (mariadb "-Wl,--version-script=${EXPORT_FILE}") + TARGET_LINK_LIBRARIES (mariadbclient "-Wl,--no-undefined") TARGET_LINK_LIBRARIES (mariadbclient "-Wl,--version-script=${EXPORT_FILE}") ENDIF() @@ -27,25 +33,21 @@ # # Installation -@@ -398,7 +399,7 @@ +@@ -408,20 +409,20 @@ # There are still several projects which don't make use # of the config program. To make sure these programs can # use mariadb client library we provide libmysql symlinks -IF(NOT WIN32 AND WITH_MYSQLCOMPAT) +- SET(INSTALL_PATH ${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}) +- create_symlink(libmysqlclient${CMAKE_SHARED_LIBRARY_SUFFIX} libmariadb ${INSTALL_PATH}) +- create_symlink(libmysqlclient_r${CMAKE_SHARED_LIBRARY_SUFFIX} libmariadb ${INSTALL_PATH}) +IF(WITH_MYSQLCOMPAT) - ADD_CUSTOM_COMMAND(OUTPUT "libmysql${CMAKE_SHARED_LIBRARY_SUFFIX}" - "libmysqlclient${CMAKE_SHARED_LIBRARY_SUFFIX}" - "libmysqlclient_r${CMAKE_SHARED_LIBRARY_SUFFIX}" -@@ -412,7 +413,7 @@ - COMMAND ${CMAKE_COMMAND} ARGS -E remove -f libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX} - COMMAND ${CMAKE_COMMAND} ARGS -E create_symlink libmariadbclient${CMAKE_STATIC_LIBRARY_SUFFIX} libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/libmariadb -- DEPENDS libmariadb mariadbclient) -+ DEPENDS mariadb mariadbclient) - - ADD_CUSTOM_TARGET(LIBMYSQL_SYMLINKS - ALL -@@ -425,17 +426,18 @@ ++ SET(INSTALL_PATH ${BIN_INSTALL_DIR}) ++ create_symlink(libmysqlclient${CMAKE_SHARED_LIBRARY_SUFFIX} mariadb ${INSTALL_PATH}) ++ create_symlink(libmysqlclient_r${CMAKE_SHARED_LIBRARY_SUFFIX} mariadb ${INSTALL_PATH}) + create_symlink(libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_PATH}) + create_symlink(libmysqlclient_r${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_PATH}) + ENDIF() INSTALL(TARGETS @@ -53,22 +55,10 @@ - RUNTIME DESTINATION "${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}" - LIBRARY DESTINATION "${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}" - ARCHIVE DESTINATION "${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}") -- --IF(NOT WIN32 AND WITH_MYSQLCOMPAT) + mariadb mariadbclient + RUNTIME DESTINATION "${BIN_INSTALL_DIR}" + LIBRARY DESTINATION "${LIB_INSTALL_DIR}" + ARCHIVE DESTINATION "${LIB_INSTALL_DIR}") -+ -+IF(WITH_MYSQLCOMPAT) -+ INSTALL(FILES "${CMAKE_BINARY_DIR}/libmariadb/libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX}" -+ DESTINATION ${LIB_INSTALL_DIR}) - INSTALL(FILES "${CMAKE_BINARY_DIR}/libmariadb/libmysql${CMAKE_SHARED_LIBRARY_SUFFIX}" - "${CMAKE_BINARY_DIR}/libmariadb/libmysqlclient${CMAKE_SHARED_LIBRARY_SUFFIX}" - "${CMAKE_BINARY_DIR}/libmariadb/libmysqlclient_r${CMAKE_SHARED_LIBRARY_SUFFIX}" -- "${CMAKE_BINARY_DIR}/libmariadb/libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX}" -- DESTINATION ${LIB_INSTALL_DIR}/mariadb) -+ DESTINATION ${BIN_INSTALL_DIR}) - ENDIF() INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ + DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}) diff --git a/mingw-w64-libmariadbclient/fix-qt5-uint-error.patch b/mingw-w64-libmariadbclient/fix-qt5-uint-error.patch deleted file mode 100644 index fba9344d9d..0000000000 --- a/mingw-w64-libmariadbclient/fix-qt5-uint-error.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- include/mysql.h.orig 2015-02-03 12:34:33.527518619 -0700 -+++ include/mysql.h 2015-02-03 12:34:41.327637274 -0700 -@@ -80,7 +80,7 @@ - - extern unsigned int mysql_port; - extern char *mysql_unix_port; --extern uint mariadb_deinitialize_ssl; -+extern unsigned int mariadb_deinitialize_ssl; - - #define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG) - #define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG) From 4569c493792f54b552a9b887031eaec26e922272 Mon Sep 17 00:00:00 2001 From: Zach Bacon <11doctorwhocanada@gmail.com> Date: Sat, 31 Oct 2015 13:56:05 -0400 Subject: [PATCH 1799/2060] update libtorrent-rasterbar to 1.0.6 --- mingw-w64-libtorrent-rasterbar/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libtorrent-rasterbar/PKGBUILD b/mingw-w64-libtorrent-rasterbar/PKGBUILD index b510a272eb..e1c20bd96c 100644 --- a/mingw-w64-libtorrent-rasterbar/PKGBUILD +++ b/mingw-w64-libtorrent-rasterbar/PKGBUILD @@ -3,7 +3,7 @@ _realname=libtorrent-rasterbar pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.5 +pkgver=1.0.6 pkgrel=1 pkgdesc="libtorrent is a feature complete C++ bittorrent implementation focusing on efficiency and scalability (mingw-w64)" arch=('any') @@ -15,9 +15,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=(staticlibs strip) -source=("http://downloads.sourceforge.net/sourceforge/libtorrent/${_realname}-${pkgver}.tar.gz" +source=("https://github.com/arvidn/libtorrent/releases/download/libtorrent-1_0_6/${_realname}-${pkgver}.tar.gz" cmake_pkg_config.patch) -md5sums=('d09521d34092ba430f430572c9e2b3d3' +md5sums=('e88d7f56fe9384e835b8389cd59e540e' '6e57f2a497401c7ec77fcefeb27fec5b') prepare() { From 5f3e0a2f419737bac3f9375babc437ceb2b29d82 Mon Sep 17 00:00:00 2001 From: Zach Bacon <11doctorwhocanada@gmail.com> Date: Sat, 31 Oct 2015 14:24:19 -0400 Subject: [PATCH 1800/2060] added pkgbase=mingw-w64-${_realname} as per Alexey --- mingw-w64-libtorrent-rasterbar/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-libtorrent-rasterbar/PKGBUILD b/mingw-w64-libtorrent-rasterbar/PKGBUILD index e1c20bd96c..6fd481d102 100644 --- a/mingw-w64-libtorrent-rasterbar/PKGBUILD +++ b/mingw-w64-libtorrent-rasterbar/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov # Contributor: AlexWMF +pkgbase=mingw-w64-${_realname} _realname=libtorrent-rasterbar pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.6 From e59f73314e7d3eec75822eb4d342997217f2845a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 31 Oct 2015 21:40:54 +0000 Subject: [PATCH 1801/2060] binutils-git: Refresh patches (apply via git) --- ...nGW-w64-Two-fixes-for-unusual-files.patch} | 52 ++++-- .../0001-enable-gold-on.mingw32.patch | 25 --- ...02-MinGW-w64-Fix-libiberty-makefile.patch} | 28 ++- ...03-MinGW-w64-Fix-libibery-configure.patch} | 107 ++++++----- .../0003-enable-shared-bfd.all.patch | 11 -- ...-link-to-libibtl-and-libiberty.mingw.patch | 50 ----- ...ch => 0004-MinGW-w64-Use-gnu-printf.patch} | 171 +++++++++--------- .../0004-libiberty-la.mingw.patch | 44 ----- .../0005-shared-opcodes.mingw.patch | 58 ------ ...013-dont-link-gas-to-libiberty.mingw.patch | 32 ---- ...ont-link-binutils-to-libiberty.mingw.patch | 122 ------------- ...0015-dont-link-ld-to-libiberty.mingw.patch | 69 ------- .../0017-fix-iconv-linking.all.patch | 54 ------ mingw-w64-binutils-git/PKGBUILD | 55 ++---- ...-backslash-in-DESTDIR-on-mingw-worka.patch | 40 ++++ 15 files changed, 251 insertions(+), 667 deletions(-) rename mingw-w64-binutils-git/{0002-check-for-unusual-file-harder.patch => 0001-MinGW-w64-Two-fixes-for-unusual-files.patch} (65%) delete mode 100644 mingw-w64-binutils-git/0001-enable-gold-on.mingw32.patch rename mingw-w64-binutils-git/{0008-fix-libiberty-makefile.mingw.patch => 0002-MinGW-w64-Fix-libiberty-makefile.patch} (67%) rename mingw-w64-binutils-git/{0009-fix-libiberty-configure.mingw.patch => 0003-MinGW-w64-Fix-libibery-configure.patch} (64%) delete mode 100644 mingw-w64-binutils-git/0003-enable-shared-bfd.all.patch delete mode 100644 mingw-w64-binutils-git/0003-link-to-libibtl-and-libiberty.mingw.patch rename mingw-w64-binutils-git/{0110-binutils-mingw-gnu-print.patch => 0004-MinGW-w64-Use-gnu-printf.patch} (50%) delete mode 100644 mingw-w64-binutils-git/0004-libiberty-la.mingw.patch delete mode 100644 mingw-w64-binutils-git/0005-shared-opcodes.mingw.patch delete mode 100644 mingw-w64-binutils-git/0013-dont-link-gas-to-libiberty.mingw.patch delete mode 100644 mingw-w64-binutils-git/0014-dont-link-binutils-to-libiberty.mingw.patch delete mode 100644 mingw-w64-binutils-git/0015-dont-link-ld-to-libiberty.mingw.patch delete mode 100644 mingw-w64-binutils-git/0017-fix-iconv-linking.all.patch create mode 100644 mingw-w64-qt5/0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch diff --git a/mingw-w64-binutils-git/0002-check-for-unusual-file-harder.patch b/mingw-w64-binutils-git/0001-MinGW-w64-Two-fixes-for-unusual-files.patch similarity index 65% rename from mingw-w64-binutils-git/0002-check-for-unusual-file-harder.patch rename to mingw-w64-binutils-git/0001-MinGW-w64-Two-fixes-for-unusual-files.patch index 81524f3a41..5fd39cc702 100644 --- a/mingw-w64-binutils-git/0002-check-for-unusual-file-harder.patch +++ b/mingw-w64-binutils-git/0001-MinGW-w64-Two-fixes-for-unusual-files.patch @@ -1,14 +1,21 @@ -Configure scripts tend to do things like this: -nm -B /dev/null -which, on Windows, turn into: -nm -B nul -and nul here acts like a normal file with 0 size as far as stat() is concerned. -Check harder for the file in question being unusual (isatty() does see that). -And since configure script expects /dev/nul, do report it that way. +From 3c43381aaa0ff4d3c7827a95493c4ad6d648d64b Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 31 Oct 2015 21:39:35 +0000 +Subject: [PATCH 1/4] MinGW-w64: Two fixes for 'unusual' files. ---- binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/bucomm.c.orig 2014-04-27 18:05:31.328777900 +0400 -+++ binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/bucomm.c 2014-05-02 08:54:46.651964974 +0400 -@@ -570,7 +570,15 @@ +Handle isatty() files better. +Pretend 'nul' is '/dev/null' which is necessary for libtool. +--- + binutils/bucomm.c | 21 ++++++++++++++++++--- + binutils/elfedit.c | 15 ++++++++++++++- + binutils/readelf.c | 15 ++++++++++++++- + 3 files changed, 46 insertions(+), 5 deletions(-) + +diff --git a/binutils/bucomm.c b/binutils/bucomm.c +index b8deff5..864ab96 100644 +--- a/binutils/bucomm.c ++++ b/binutils/bucomm.c +@@ -570,7 +570,15 @@ off_t get_file_size (const char * file_name) { struct stat statbuf; @@ -25,7 +32,7 @@ And since configure script expects /dev/nul, do report it that way. if (stat (file_name, &statbuf) < 0) { if (errno == ENOENT) -@@ -579,8 +587,15 @@ +@@ -579,8 +587,15 @@ get_file_size (const char * file_name) non_fatal (_("Warning: could not locate '%s'. reason: %s"), file_name, strerror (errno)); } @@ -43,9 +50,11 @@ And since configure script expects /dev/nul, do report it that way. else if (statbuf.st_size < 0) non_fatal (_("Warning: '%s' has negative size, probably it is too large"), file_name); ---- binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/elfedit.c.orig 2014-04-27 18:05:31.340778000 +0400 -+++ binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/elfedit.c 2014-05-02 08:55:09.433461424 +0400 -@@ -441,6 +441,14 @@ +diff --git a/binutils/elfedit.c b/binutils/elfedit.c +index 5f21382..553d634 100644 +--- a/binutils/elfedit.c ++++ b/binutils/elfedit.c +@@ -441,6 +441,14 @@ static int check_file (const char *file_name, struct stat *statbuf_p) { struct stat statbuf; @@ -60,7 +69,7 @@ And since configure script expects /dev/nul, do report it that way. if (statbuf_p == NULL) statbuf_p = &statbuf; -@@ -455,8 +463,13 @@ +@@ -455,8 +463,13 @@ check_file (const char *file_name, struct stat *statbuf_p) return 1; } @@ -75,9 +84,11 @@ And since configure script expects /dev/nul, do report it that way. error (_("'%s' is not an ordinary file\n"), file_name); return 1; } ---- binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/readelf.c.orig 2014-04-27 18:05:31.384778200 +0400 -+++ binutils-git-39d1b2aef3c1dbbf31d82e555624afcbda9d58e7/binutils/readelf.c 2014-05-02 08:55:27.018918502 +0400 -@@ -14613,6 +14613,14 @@ +diff --git a/binutils/readelf.c b/binutils/readelf.c +index 59d3381..af92d5b 100644 +--- a/binutils/readelf.c ++++ b/binutils/readelf.c +@@ -15561,6 +15561,14 @@ process_file (char * file_name) struct stat statbuf; char armag[SARMAG]; int ret; @@ -92,7 +103,7 @@ And since configure script expects /dev/nul, do report it that way. if (stat (file_name, &statbuf) < 0) { -@@ -14624,8 +14632,13 @@ +@@ -15572,8 +15580,13 @@ process_file (char * file_name) return 1; } @@ -107,3 +118,6 @@ And since configure script expects /dev/nul, do report it that way. error (_("'%s' is not an ordinary file\n"), file_name); return 1; } +-- +2.6.2 + diff --git a/mingw-w64-binutils-git/0001-enable-gold-on.mingw32.patch b/mingw-w64-binutils-git/0001-enable-gold-on.mingw32.patch deleted file mode 100644 index a6fcd420a0..0000000000 --- a/mingw-w64-binutils-git/0001-enable-gold-on.mingw32.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- binutils-2.23.1/configure.orig 2013-03-24 23:12:45 +0400 -+++ binutils-2.23.1/configure 2013-03-24 23:30:06 +0400 -@@ -2865,6 +2865,7 @@ - yes|default) - # Check for ELF target. - is_elf=no -+ is_pe=no - case "${target}" in - *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \ - | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \ -@@ -2876,10 +2877,12 @@ - *) - is_elf=yes - ;; -- esac -+ esac;; -+ *-*-mingw*) -+ is_pe=yes;; - esac - -- if test "$is_elf" = "yes"; then -+ if test "$is_elf" = "yes" -o "$is_pe" = "yes"; then - # Check for target supported by gold. - case "${target}" in - i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*) diff --git a/mingw-w64-binutils-git/0008-fix-libiberty-makefile.mingw.patch b/mingw-w64-binutils-git/0002-MinGW-w64-Fix-libiberty-makefile.patch similarity index 67% rename from mingw-w64-binutils-git/0008-fix-libiberty-makefile.mingw.patch rename to mingw-w64-binutils-git/0002-MinGW-w64-Fix-libiberty-makefile.patch index 1e8847c5f6..1f62ae1139 100644 --- a/mingw-w64-binutils-git/0008-fix-libiberty-makefile.mingw.patch +++ b/mingw-w64-binutils-git/0002-MinGW-w64-Fix-libiberty-makefile.patch @@ -1,7 +1,18 @@ ---- gdb-7.6/libiberty/Makefile.in.orig 2013-06-12 04:27:21 +0400 -+++ gdb-7.6/libiberty/Makefile.in 2013-06-12 04:35:26 +0400 -@@ -129,7 +129,7 @@ - dwarfnames.c dyn-string.c \ +From ed9ad8527fb28ca26279bcf77f5d78cb25e5eb05 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 31 Oct 2015 21:39:48 +0000 +Subject: [PATCH 2/4] MinGW-w64: Fix libiberty makefile + +--- + libiberty/Makefile.in | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in +index 9b87720..eddde49 100644 +--- a/libiberty/Makefile.in ++++ b/libiberty/Makefile.in +@@ -130,7 +130,7 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \ + d-demangle.c dwarfnames.c dyn-string.c \ fdmatch.c ffs.c fibheap.c filename_cmp.c floatformat.c \ fnmatch.c fopen_unlocked.c \ - getcwd.c getopt.c getopt1.c getpagesize.c getpwd.c getruntime.c \ @@ -9,7 +20,7 @@ gettimeofday.c \ hashtab.c hex.c \ index.c insque.c \ -@@ -154,8 +154,8 @@ +@@ -155,8 +155,8 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \ strtoul.c strndup.c strnlen.c strverscmp.c \ timeval-utils.c tmpnam.c \ unlink-if-ordinary.c \ @@ -20,7 +31,7 @@ xatexit.c xexit.c xmalloc.c xmemdup.c xstrdup.c xstrerror.c \ xstrndup.c -@@ -171,7 +171,7 @@ +@@ -172,7 +172,7 @@ REQUIRED_OFILES = \ ./fdmatch.$(objext) ./fibheap.$(objext) \ ./filename_cmp.$(objext) ./floatformat.$(objext) \ ./fnmatch.$(objext) ./fopen_unlocked.$(objext) \ @@ -29,7 +40,7 @@ ./getruntime.$(objext) ./hashtab.$(objext) ./hex.$(objext) \ ./lbasename.$(objext) ./lrealpath.$(objext) \ ./make-relative-prefix.$(objext) ./make-temp-file.$(objext) \ -@@ -220,9 +220,9 @@ +@@ -221,9 +221,9 @@ CONFIGURED_OFILES = ./asprintf.$(objext) ./atexit.$(objext) \ ./strrchr.$(objext) ./strstr.$(objext) ./strtod.$(objext) \ ./strtol.$(objext) ./strtoul.$(objext) ./strverscmp.$(objext) \ ./tmpnam.$(objext) \ @@ -41,3 +52,6 @@ # These files are installed if the library has been configured to do so. INSTALLED_HEADERS = \ +-- +2.6.2 + diff --git a/mingw-w64-binutils-git/0009-fix-libiberty-configure.mingw.patch b/mingw-w64-binutils-git/0003-MinGW-w64-Fix-libibery-configure.patch similarity index 64% rename from mingw-w64-binutils-git/0009-fix-libiberty-configure.mingw.patch rename to mingw-w64-binutils-git/0003-MinGW-w64-Fix-libibery-configure.patch index 016ed5dad2..20dd3f1957 100644 --- a/mingw-w64-binutils-git/0009-fix-libiberty-configure.mingw.patch +++ b/mingw-w64-binutils-git/0003-MinGW-w64-Fix-libibery-configure.patch @@ -1,6 +1,18 @@ ---- gdb-7.6/libiberty/configure.ac.orig 2013-06-12 05:10:53 +0400 -+++ gdb-7.6/libiberty/configure.ac 2013-06-12 05:11:31 +0400 -@@ -335,7 +335,6 @@ +From 5d5185fdab3949a02ab60a585dbe9bee26e94068 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 31 Oct 2015 21:40:03 +0000 +Subject: [PATCH 3/4] MinGW-w64: Fix libibery configure + +--- + libiberty/configure | 16 +--------------- + libiberty/configure.ac | 6 +----- + 2 files changed, 2 insertions(+), 20 deletions(-) + +diff --git a/libiberty/configure b/libiberty/configure +index 96feaed..fc78353 100755 +--- a/libiberty/configure ++++ b/libiberty/configure +@@ -5394,7 +5394,6 @@ funcs="$funcs vfprintf" funcs="$funcs vprintf" funcs="$funcs vsnprintf" funcs="$funcs vsprintf" @@ -8,43 +20,7 @@ funcs="$funcs setproctitle" # Also in the old function.def file: alloca, vfork, getopt. -@@ -437,6 +437,7 @@ - AC_LIBOBJ([insque]) - AC_LIBOBJ([mempcpy]) - AC_LIBOBJ([mkstemps]) -+ AC_LIBOBJ([msdos]) - AC_LIBOBJ([random]) - AC_LIBOBJ([rindex]) - AC_LIBOBJ([sigsetmask]) -@@ -446,7 +447,6 @@ - AC_LIBOBJ([strnlen]) - AC_LIBOBJ([strverscmp]) - AC_LIBOBJ([vasprintf]) -- AC_LIBOBJ([waitpid]) - - for f in $funcs; do - case "$f" in -@@ -615,9 +615,6 @@ - AC_REPLACE_FUNCS($funcs) - libiberty_AC_FUNC_C_ALLOCA - AC_FUNC_FORK -- if test $ac_cv_func_vfork_works = no; then -- AC_LIBOBJ([vfork]) -- fi - # We only need _doprnt if we might use it to implement v*printf. - if test $ac_cv_func_vprintf != yes \ - || test $ac_cv_func_vfprintf != yes \ ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/libiberty/configure.orig 2014-07-23 16:21:59.722230585 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/libiberty/configure 2014-07-23 16:22:45.790544654 +0400 -@@ -5394,7 +5394,6 @@ - funcs="$funcs vprintf" - funcs="$funcs vsnprintf" - funcs="$funcs vsprintf" --funcs="$funcs waitpid" - funcs="$funcs setproctitle" - - # Also in the old function.def file: alloca, vfork, getopt. -@@ -5721,13 +5721,6 @@ +@@ -5721,13 +5720,6 @@ esac ;; esac @@ -58,20 +34,20 @@ for f in $funcs; do case "$f" in asprintf | basename | bcmp | bcopy | bzero | clock | ffs | getpagesize | index | insque | mempcpy | mkstemps | random | rindex | sigsetmask | stpcpy | stpncpy | strdup | strndup | strnlen | strverscmp | vasprintf | waitpid) -@@ -5867,12 +5860,6 @@ - ;; +@@ -5868,12 +5860,6 @@ esac esac -- case " $LIBOBJS " in + case " $LIBOBJS " in - *" vfork.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS vfork.$ac_objext" - ;; -esac - - case " $LIBOBJS " in +- case " $LIBOBJS " in *" waitpid.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS waitpid.$ac_objext" -@@ -6322,7 +6321,7 @@ + ;; +@@ -6335,7 +6321,7 @@ fi if test $ac_cv_func_vfork_works = no; then case " $LIBOBJS " in *" vfork.$ac_objext "* ) ;; @@ -80,3 +56,44 @@ ;; esac +diff --git a/libiberty/configure.ac b/libiberty/configure.ac +index 3380819..fc57948 100644 +--- a/libiberty/configure.ac ++++ b/libiberty/configure.ac +@@ -372,7 +372,6 @@ funcs="$funcs vfprintf" + funcs="$funcs vprintf" + funcs="$funcs vsnprintf" + funcs="$funcs vsprintf" +-funcs="$funcs waitpid" + funcs="$funcs setproctitle" + + # Also in the old function.def file: alloca, vfork, getopt. +@@ -473,6 +472,7 @@ if test -n "${with_target_subdir}"; then + AC_LIBOBJ([insque]) + AC_LIBOBJ([mempcpy]) + AC_LIBOBJ([mkstemps]) ++ AC_LIBOBJ([msdos]) + AC_LIBOBJ([random]) + AC_LIBOBJ([rindex]) + AC_LIBOBJ([sigsetmask]) +@@ -482,7 +482,6 @@ if test -n "${with_target_subdir}"; then + AC_LIBOBJ([strnlen]) + AC_LIBOBJ([strverscmp]) + AC_LIBOBJ([vasprintf]) +- AC_LIBOBJ([waitpid]) + + for f in $funcs; do + case "$f" in +@@ -630,9 +629,6 @@ if test -z "${setobjs}"; then + AC_REPLACE_FUNCS($funcs) + libiberty_AC_FUNC_C_ALLOCA + AC_FUNC_FORK +- if test $ac_cv_func_vfork_works = no; then +- AC_LIBOBJ([vfork]) +- fi + # We only need _doprnt if we might use it to implement v*printf. + if test $ac_cv_func_vprintf != yes \ + || test $ac_cv_func_vfprintf != yes \ +-- +2.6.2 + diff --git a/mingw-w64-binutils-git/0003-enable-shared-bfd.all.patch b/mingw-w64-binutils-git/0003-enable-shared-bfd.all.patch deleted file mode 100644 index 53963df6e9..0000000000 --- a/mingw-w64-binutils-git/0003-enable-shared-bfd.all.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/bfd/Makefile.am.orig 2014-07-18 11:36:49.741468877 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/bfd/Makefile.am 2014-07-18 11:37:08.041610089 +0400 -@@ -27,7 +27,7 @@ - - bfddocdir = doc - --libbfd_la_LDFLAGS = -+libbfd_la_LDFLAGS = -no-undefined - if INSTALL_LIBBFD - bfdlibdir = @bfdlibdir@ - bfdincludedir = @bfdincludedir@ diff --git a/mingw-w64-binutils-git/0003-link-to-libibtl-and-libiberty.mingw.patch b/mingw-w64-binutils-git/0003-link-to-libibtl-and-libiberty.mingw.patch deleted file mode 100644 index aa0f88f7bf..0000000000 --- a/mingw-w64-binutils-git/0003-link-to-libibtl-and-libiberty.mingw.patch +++ /dev/null @@ -1,50 +0,0 @@ ---- gdb-7.6/bfd/Makefile.am.orig 2013-06-12 01:07:47 +0400 -+++ gdb-7.6/bfd/Makefile.am 2013-06-12 01:06:59 +0400 -@@ -826,6 +826,8 @@ - - ofiles: stamp-ofiles ; @true - -+LIBIBERTY = ../libiberty/libiberty.a -+ - # Since BFD64_LIBS is optional and we can't have substitution in - # libbfd_la_SOURCES, we put BFD64_LIBS in OFILES instead. - # However, list all sources in EXTRA_libbfd_la_SOURCES so the -@@ -833,7 +835,7 @@ - libbfd_la_SOURCES = $(BFD32_LIBS_CFILES) - EXTRA_libbfd_la_SOURCES = $(CFILES) - libbfd_la_DEPENDENCIES = $(OFILES) ofiles --libbfd_la_LIBADD = `cat ofiles` @SHARED_LIBADD@ $(LIBDL) -+libbfd_la_LIBADD = `cat ofiles` @SHARED_LIBADD@ $(LIBDL) --libbfd_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@ -+libbfd_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@ -Wl,--whole-archive -Wl,$(LIBIBERTY) -Wl,$(LIBINTL) -Wl,--no-whole-archive - - # libtool will build .libs/libbfd.a. We create libbfd.a in the build ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/bfd/Makefile.in.orig 2014-07-23 15:07:57.487590651 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/bfd/Makefile.in 2014-07-23 15:09:45.500342237 +0400 -@@ -342,7 +342,7 @@ - SUBDIRS = doc po - bfddocdir = doc - libbfd_la_LDFLAGS = $(am__append_1) -release `cat libtool-soversion` \ -- @SHARED_LDFLAGS@ $(am__empty) -+ @SHARED_LDFLAGS@ $(am__empty) -no-undefined -Wl,--whole-archive -Wl,$(LIBIBERTY) -Wl,$(LIBINTL) -Wl,--no-whole-archive - @INSTALL_LIBBFD_TRUE@bfdlib_LTLIBRARIES = libbfd.la - @INSTALL_LIBBFD_FALSE@bfdinclude_HEADERS = $(am__append_2) - @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \ -@@ -1097,6 +1097,8 @@ - # bfd64_libs Routines for 64bit support - OFILES = $(BFD_BACKENDS) $(BFD_MACHINES) @COREFILE@ @bfd64_libs@ - -+LIBIBERTY = ../libiberty/libiberty.a -+ - # Since BFD64_LIBS is optional and we can't have substitution in - # libbfd_la_SOURCES, we put BFD64_LIBS in OFILES instead. - # However, list all sources in EXTRA_libbfd_la_SOURCES so the -@@ -1104,7 +1106,7 @@ - libbfd_la_SOURCES = $(BFD32_LIBS_CFILES) - EXTRA_libbfd_la_SOURCES = $(CFILES) - libbfd_la_DEPENDENCIES = $(OFILES) ofiles --libbfd_la_LIBADD = `cat ofiles` @SHARED_LIBADD@ $(LIBDL) -+libbfd_la_LIBADD = `cat ofiles` @SHARED_LIBADD@ $(LIBDL) - - # libtool will build .libs/libbfd.a. We create libbfd.a in the build - # directory so that we don't have to convert all the programs that use diff --git a/mingw-w64-binutils-git/0110-binutils-mingw-gnu-print.patch b/mingw-w64-binutils-git/0004-MinGW-w64-Use-gnu-printf.patch similarity index 50% rename from mingw-w64-binutils-git/0110-binutils-mingw-gnu-print.patch rename to mingw-w64-binutils-git/0004-MinGW-w64-Use-gnu-printf.patch index 88931e9fce..d169ad15da 100644 --- a/mingw-w64-binutils-git/0110-binutils-mingw-gnu-print.patch +++ b/mingw-w64-binutils-git/0004-MinGW-w64-Use-gnu-printf.patch @@ -1,7 +1,26 @@ -diff -Naur binutils-2.24/bfd/bfd-in.h binutils-2.24-mingw/bfd/bfd-in.h ---- binutils-2.24/bfd/bfd-in.h 2013-11-04 19:33:37.000000000 +0400 -+++ binutils-2.24-mingw/bfd/bfd-in.h 2014-03-13 22:24:26.512400000 +0400 -@@ -137,7 +137,7 @@ +From 55995ad09cb6cf04557d66be91c243bd92cffe0d Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 31 Oct 2015 21:40:15 +0000 +Subject: [PATCH 4/4] MinGW-w64: Use gnu-printf + +--- + bfd/bfd-in.h | 2 +- + bfd/bfd-in2.h | 2 +- + binutils/nm.c | 4 ++-- + binutils/prdbg.c | 2 +- + binutils/readelf.c | 4 ++-- + gas/as.h | 4 ++-- + gas/read.c | 2 +- + gold/configure | 2 +- + gold/configure.ac | 2 +- + include/ansidecl.h | 4 ++-- + 10 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h +index 1607872..b5a9432 100644 +--- a/bfd/bfd-in.h ++++ b/bfd/bfd-in.h +@@ -137,7 +137,7 @@ typedef BFD_HOST_U_64_BIT symvalue; #if BFD_HOST_64BIT_LONG #define BFD_VMA_FMT "l" @@ -10,10 +29,11 @@ diff -Naur binutils-2.24/bfd/bfd-in.h binutils-2.24-mingw/bfd/bfd-in.h #define BFD_VMA_FMT "I64" #else #define BFD_VMA_FMT "ll" -diff -Naur binutils-2.24/bfd/bfd-in2.h binutils-2.24-mingw/bfd/bfd-in2.h ---- binutils-2.24/bfd/bfd-in2.h 2013-11-18 12:40:15.000000000 +0400 -+++ binutils-2.24-mingw/bfd/bfd-in2.h 2014-03-13 22:24:03.580400000 +0400 -@@ -144,7 +144,7 @@ +diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h +index bca5181..9d493ae 100644 +--- a/bfd/bfd-in2.h ++++ b/bfd/bfd-in2.h +@@ -144,7 +144,7 @@ typedef BFD_HOST_U_64_BIT symvalue; #if BFD_HOST_64BIT_LONG #define BFD_VMA_FMT "l" @@ -22,22 +42,11 @@ diff -Naur binutils-2.24/bfd/bfd-in2.h binutils-2.24-mingw/bfd/bfd-in2.h #define BFD_VMA_FMT "I64" #else #define BFD_VMA_FMT "ll" -diff -Naur binutils-2.24/binutils/dwarf.c binutils-2.24-mingw/binutils/dwarf.c ---- binutils-2.24/binutils/dwarf.c 2013-11-08 14:13:48.000000000 +0400 -+++ binutils-2.24-mingw/binutils/dwarf.c 2014-03-13 22:58:50.101400000 +0400 -@@ -140,7 +140,7 @@ - } - - #if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2) --#ifndef __MINGW32__ -+#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) - #define DWARF_VMA_FMT "ll" - #define DWARF_VMA_FMT_LONG "%16.16llx" - #else -diff -Naur binutils-2.24/binutils/nm.c binutils-2.24-mingw/binutils/nm.c ---- binutils-2.24/binutils/nm.c 2013-11-08 14:13:48.000000000 +0400 -+++ binutils-2.24-mingw/binutils/nm.c 2014-03-13 22:18:43.452800000 +0400 -@@ -164,7 +164,7 @@ +diff --git a/binutils/nm.c b/binutils/nm.c +index ed1ed12..9c4d25c 100644 +--- a/binutils/nm.c ++++ b/binutils/nm.c +@@ -162,7 +162,7 @@ static char value_format_32bit[] = "%08lx"; #if BFD_HOST_64BIT_LONG static char value_format_64bit[] = "%016lx"; #elif BFD_HOST_64BIT_LONG_LONG @@ -46,7 +55,7 @@ diff -Naur binutils-2.24/binutils/nm.c binutils-2.24-mingw/binutils/nm.c static char value_format_64bit[] = "%016llx"; #else static char value_format_64bit[] = "%016I64x"; -@@ -290,7 +290,7 @@ +@@ -292,7 +292,7 @@ set_print_radix (char *radix) #if BFD_HOST_64BIT_LONG value_format_64bit[5] = *radix; #elif BFD_HOST_64BIT_LONG_LONG @@ -55,10 +64,11 @@ diff -Naur binutils-2.24/binutils/nm.c binutils-2.24-mingw/binutils/nm.c value_format_64bit[6] = *radix; #else value_format_64bit[7] = *radix; -diff -Naur binutils-2.24/binutils/prdbg.c binutils-2.24-mingw/binutils/prdbg.c ---- binutils-2.24/binutils/prdbg.c 2013-11-04 19:33:37.000000000 +0400 -+++ binutils-2.24-mingw/binutils/prdbg.c 2014-03-13 22:19:45.603200000 +0400 -@@ -502,7 +502,7 @@ +diff --git a/binutils/prdbg.c b/binutils/prdbg.c +index b43030b..24ce976 100644 +--- a/binutils/prdbg.c ++++ b/binutils/prdbg.c +@@ -502,7 +502,7 @@ print_vma (bfd_vma vma, char *buf, bfd_boolean unsignedp, bfd_boolean hexp) #if BFD_HOST_64BIT_LONG_LONG else if (sizeof (vma) <= sizeof (unsigned long long)) { @@ -67,10 +77,11 @@ diff -Naur binutils-2.24/binutils/prdbg.c binutils-2.24-mingw/binutils/prdbg.c if (hexp) sprintf (buf, "0x%llx", (unsigned long long) vma); else if (unsignedp) -diff -Naur binutils-2.24/binutils/readelf.c binutils-2.24-mingw/binutils/readelf.c ---- binutils-2.24/binutils/readelf.c 2013-11-18 12:40:15.000000000 +0400 -+++ binutils-2.24-mingw/binutils/readelf.c 2014-03-13 22:20:53.494400000 +0400 -@@ -1006,7 +1006,7 @@ +diff --git a/binutils/readelf.c b/binutils/readelf.c +index af92d5b..ad31d93 100644 +--- a/binutils/readelf.c ++++ b/binutils/readelf.c +@@ -1123,7 +1123,7 @@ dump_relocations (FILE * file, : "%12.12lx %12.12lx ", offset, inf); #elif BFD_HOST_64BIT_LONG_LONG @@ -79,7 +90,7 @@ diff -Naur binutils-2.24/binutils/readelf.c binutils-2.24-mingw/binutils/readelf printf (do_wide ? "%16.16llx %16.16llx " : "%12.12llx %12.12llx ", -@@ -10836,7 +10836,7 @@ +@@ -11552,7 +11552,7 @@ dump_section_as_strings (Elf_Internal_Shdr * section, FILE * file) { size_t maxlen = end - data; @@ -88,51 +99,11 @@ diff -Naur binutils-2.24/binutils/readelf.c binutils-2.24-mingw/binutils/readelf /* PR 11128: Use two separate invocations in order to work around bugs in the Solaris 8 implementation of printf. */ printf (" [%6tx] ", data - start); -diff -Naur binutils-2.24/binutils/strings.c binutils-2.24-mingw/binutils/strings.c ---- binutils-2.24/binutils/strings.c 2013-11-04 19:33:37.000000000 +0400 -+++ binutils-2.24-mingw/binutils/strings.c 2014-03-13 22:21:29.140400000 +0400 -@@ -557,7 +557,7 @@ - #if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2) - if (sizeof (start) > sizeof (long)) - { --#ifndef __MSVCRT__ -+#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) - printf ("%7llo ", (unsigned long long) start); - #else - printf ("%7I64o ", (unsigned long long) start); -@@ -576,7 +576,7 @@ - #if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2) - if (sizeof (start) > sizeof (long)) - { --#ifndef __MSVCRT__ -+#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) - printf ("%7lld ", (unsigned long long) start); - #else - printf ("%7I64d ", (unsigned long long) start); -@@ -595,7 +595,7 @@ - #if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2) - if (sizeof (start) > sizeof (long)) - { --#ifndef __MSVCRT__ -+#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) - printf ("%7llx ", (unsigned long long) start); - #else - printf ("%7I64x ", (unsigned long long) start); -diff -Naur binutils-2.24/gas/read.c binutils-2.24-mingw/gas/read.c ---- binutils-2.24/gas/read.c 2013-11-08 14:13:48.000000000 +0400 -+++ binutils-2.24-mingw/gas/read.c 2014-03-13 22:22:11.806400000 +0400 -@@ -4293,7 +4293,7 @@ - || (get & hibit) == 0)) - { /* Leading bits contain both 0s & 1s. */ - #if defined (BFD64) && BFD_HOST_64BIT_LONG_LONG --#ifndef __MSVCRT__ -+#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) - as_warn (_("value 0x%llx truncated to 0x%llx"), - (unsigned long long) get, (unsigned long long) use); - #else ---- binutils-2.25/gas/as.h.orig 2014-12-26 08:20:07.506000000 +0300 -+++ binutils-2.25/gas/as.h 2014-12-26 08:21:13.350000000 +0300 -@@ -451,10 +451,10 @@ +diff --git a/gas/as.h b/gas/as.h +index df04dce..c3e5e07 100644 +--- a/gas/as.h ++++ b/gas/as.h +@@ -451,10 +451,10 @@ typedef struct _pseudo_type pseudo_typeS; #define PRINTF_LIKE(FCN) \ void FCN (const char *format, ...) \ @@ -145,9 +116,24 @@ diff -Naur binutils-2.24/gas/read.c binutils-2.24-mingw/gas/read.c #else /* __GNUC__ < 2 || defined(VMS) */ ---- binutils-2.25/gold/configure.orig 2014-12-26 08:22:19.978000000 +0300 -+++ binutils-2.25/gold/configure 2014-12-26 08:22:23.697000000 +0300 -@@ -7530,7 +7530,7 @@ +diff --git a/gas/read.c b/gas/read.c +index 6e441da..2fa9137 100644 +--- a/gas/read.c ++++ b/gas/read.c +@@ -4322,7 +4322,7 @@ emit_expr_with_reloc (expressionS *exp, + || (get & hibit) == 0)) + { /* Leading bits contain both 0s & 1s. */ + #if defined (BFD64) && BFD_HOST_64BIT_LONG_LONG +-#ifndef __MSVCRT__ ++#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) + as_warn (_("value 0x%llx truncated to 0x%llx"), + (unsigned long long) get, (unsigned long long) use); + #else +diff --git a/gold/configure b/gold/configure +index 3427074..4eefa14 100755 +--- a/gold/configure ++++ b/gold/configure +@@ -7553,7 +7553,7 @@ else /* end confdefs.h. */ template extern void foo(const char*, ...) @@ -156,9 +142,11 @@ diff -Naur binutils-2.24/gas/read.c binutils-2.24-mingw/gas/read.c template void foo(const char* format, ...) {} void bar() { foo("%s\n", "foo"); } ---- binutils-2.25/gold/configure.ac.orig 2014-12-26 08:22:49.521000000 +0300 -+++ binutils-2.25/gold/configure.ac 2014-12-26 08:23:05.556000000 +0300 -@@ -601,7 +601,7 @@ +diff --git a/gold/configure.ac b/gold/configure.ac +index e0ac1df..f87efe17 100644 +--- a/gold/configure.ac ++++ b/gold/configure.ac +@@ -615,7 +615,7 @@ AC_CACHE_CHECK([whether we can use attributes with template functions], [gold_cv_template_attribute], [AC_COMPILE_IFELSE([ template extern void foo(const char*, ...) @@ -167,9 +155,11 @@ diff -Naur binutils-2.24/gas/read.c binutils-2.24-mingw/gas/read.c template void foo(const char* format, ...) {} void bar() { foo("%s\n", "foo"); } ], [gold_cv_template_attribute=yes], [gold_cv_template_attribute=no])]) ---- binutils-2.25/include/ansidecl.h.orig 2014-12-26 08:23:33.513000000 +0300 -+++ binutils-2.25/include/ansidecl.h 2014-12-26 08:24:16.479000000 +0300 -@@ -197,7 +197,7 @@ +diff --git a/include/ansidecl.h b/include/ansidecl.h +index 0fb23bb..6adf802 100644 +--- a/include/ansidecl.h ++++ b/include/ansidecl.h +@@ -197,7 +197,7 @@ So instead we use the macro below and test it against specific values. */ before GCC 3.3, but as of 3.3 we need to add the `nonnull' attribute to retain this behavior. */ #ifndef ATTRIBUTE_PRINTF @@ -178,7 +168,7 @@ diff -Naur binutils-2.24/gas/read.c binutils-2.24-mingw/gas/read.c #define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2) #define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3) #define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4) -@@ -225,7 +225,7 @@ +@@ -225,7 +225,7 @@ So instead we use the macro below and test it against specific values. */ NULL format specifier was allowed as of gcc 3.3. */ #ifndef ATTRIBUTE_NULL_PRINTF # if (GCC_VERSION >= 3003) @@ -187,3 +177,6 @@ diff -Naur binutils-2.24/gas/read.c binutils-2.24-mingw/gas/read.c # else # define ATTRIBUTE_NULL_PRINTF(m, n) # endif /* GNUC >= 3.3 */ +-- +2.6.2 + diff --git a/mingw-w64-binutils-git/0004-libiberty-la.mingw.patch b/mingw-w64-binutils-git/0004-libiberty-la.mingw.patch deleted file mode 100644 index 840663bdf8..0000000000 --- a/mingw-w64-binutils-git/0004-libiberty-la.mingw.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- /dev/null 2013-06-12 02:15:38 +0400 -+++ gdb-7.6/libiberty/libiberty.la 2013-06-12 02:15:09 +0400 -@@ -0,0 +1,41 @@ -+# libiberty.la - a libtool library file -+# Generated by libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a -+# -+# Please DO NOT delete this file! -+# It is necessary for linking the library. -+ -+# The name that we can dlopen(3). -+dlname='' -+ -+# Names of this library. -+library_names='libiberty.a' -+ -+# The name of the static archive. -+old_library='libiberty.a' -+ -+# Linker flags that can not go in dependency_libs. -+inherited_linker_flags='' -+ -+# Libraries that this one depends upon. -+dependency_libs='' -+ -+# Names of additional weak libraries provided by this library -+weak_library_names='' -+ -+# Version information for libiberty. -+current=0 -+age=0 -+revision=0 -+ -+# Is this an already installed library? -+installed=no -+ -+# Should we warn about portability when linking against -modules? -+shouldnotlink=no -+ -+# Files to dlopen/dlpreopen -+dlopen='' -+dlpreopen='' -+ -+# Directory that this library needs to be installed in: -+libdir='/mingw/lib' diff --git a/mingw-w64-binutils-git/0005-shared-opcodes.mingw.patch b/mingw-w64-binutils-git/0005-shared-opcodes.mingw.patch deleted file mode 100644 index 988d541eae..0000000000 --- a/mingw-w64-binutils-git/0005-shared-opcodes.mingw.patch +++ /dev/null @@ -1,58 +0,0 @@ ---- gdb-7.6/opcodes/configure.ac.orig 2013-06-12 03:06:00 +0400 -+++ gdb-7.6/opcodes/configure.ac 2013-06-12 03:21:13 +0400 -@@ -165,11 +165,17 @@ - SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" - fi - -+ LCLINK="-Wl,-lc," - case "${host}" in - *-*-cygwin*) - SHARED_LDFLAGS="-no-undefined" - SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin" - ;; -+ *-*-mingw*) -+ SHARED_LDFLAGS="-no-undefined" -+ SHARED_LIBADD="-L`pwd`/../bfd -lbfd" -+ LCLINK= -+ ;; - *-*-darwin*) - SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib ${SHARED_LIBADD}" - SHARED_DEPENDENCIES="../bfd/libbfd.la" -@@ -192,7 +198,7 @@ - if test x"$bfd_cv_ld_as_needed" = xyes; then - # Link against libm only when needed. Put -lc, -lm inside -Wl - # to stop libtool reordering these options. -- SHARED_LIBADD="$SHARED_LIBADD -Wl,-lc,--as-needed,`echo $LIBM | sed 's/ /,/g'`,--no-as-needed" -+ SHARED_LIBADD="$SHARED_LIBADD $LCLINK--as-needed,`echo $LIBM | sed 's/ /,/g'`,--no-as-needed" - else - SHARED_LIBADD="$SHARED_LIBADD $LIBM" - fi ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/opcodes/configure.orig 2014-07-23 14:30:36.728008438 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/opcodes/configure 2014-07-23 14:33:32.145230981 +0400 -@@ -12453,11 +12453,17 @@ - SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" - fi - -+ LCLINK="-Wl,-lc," - case "${host}" in - *-*-cygwin*) - SHARED_LDFLAGS="-no-undefined" - SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin" - ;; -+ *-*-mingw*) -+ SHARED_LDFLAGS="-no-undefined" -+ SHARED_LIBADD="-L`pwd`/../bfd -lbfd" -+ LCLINK= -+ ;; - *-*-darwin*) - SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib ${SHARED_LIBADD}" - SHARED_DEPENDENCIES="../bfd/libbfd.la" -@@ -12480,7 +12486,7 @@ - if test x"$bfd_cv_ld_as_needed" = xyes; then - # Link against libm only when needed. Put -lc, -lm inside -Wl - # to stop libtool reordering these options. -- SHARED_LIBADD="$SHARED_LIBADD -Wl,-lc,--as-needed,`echo $LIBM | sed 's/ /,/g'`,--no-as-needed" -+ SHARED_LIBADD="$SHARED_LIBADD $LCLINK--as-needed,`echo $LIBM | sed 's/ /,/g'`,--no-as-needed" - else - SHARED_LIBADD="$SHARED_LIBADD $LIBM" - fi diff --git a/mingw-w64-binutils-git/0013-dont-link-gas-to-libiberty.mingw.patch b/mingw-w64-binutils-git/0013-dont-link-gas-to-libiberty.mingw.patch deleted file mode 100644 index fd5212ad6d..0000000000 --- a/mingw-w64-binutils-git/0013-dont-link-gas-to-libiberty.mingw.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/gas/Makefile.am.orig 2014-07-23 19:37:06.742942242 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/gas/Makefile.am 2014-07-23 19:37:28.587098576 +0400 -@@ -386,7 +386,7 @@ - # How to link with both our special library facilities - # and the system's installed libraries. - --GASLIBS = @OPCODES_LIB@ ../bfd/libbfd.la ../libiberty/libiberty.a -+GASLIBS = @OPCODES_LIB@ ../bfd/libbfd.la - - # Files to be copied away after each stage in building. - STAGESTUFF = *.@OBJEXT@ $(noinst_PROGRAMS) ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/gas/Makefile.in.orig 2014-07-23 19:35:44.174351195 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/gas/Makefile.in 2014-07-23 19:36:13.414560529 +0400 -@@ -104,7 +104,8 @@ - am_as_new_OBJECTS = $(am__objects_1) - as_new_OBJECTS = $(am_as_new_OBJECTS) - am__DEPENDENCIES_1 = --am__DEPENDENCIES_2 = ../bfd/libbfd.la ../libiberty/libiberty.a -+am__DEPENDENCIES_2 = ../bfd/libbfd.la -+# ../libiberty/libiberty.a - am_itbl_test_OBJECTS = itbl-parse.$(OBJEXT) itbl-lex.$(OBJEXT) - itbl_test_OBJECTS = $(am_itbl_test_OBJECTS) - itbl_test_DEPENDENCIES = itbl-tops.@OBJEXT@ itbl-test.@OBJEXT@ \ -@@ -645,7 +646,7 @@ - - # How to link with both our special library facilities - # and the system's installed libraries. --GASLIBS = @OPCODES_LIB@ ../bfd/libbfd.la ../libiberty/libiberty.a -+GASLIBS = @OPCODES_LIB@ ../bfd/libbfd.la - - # Files to be copied away after each stage in building. - STAGESTUFF = *.@OBJEXT@ $(noinst_PROGRAMS) diff --git a/mingw-w64-binutils-git/0014-dont-link-binutils-to-libiberty.mingw.patch b/mingw-w64-binutils-git/0014-dont-link-binutils-to-libiberty.mingw.patch deleted file mode 100644 index 025fed4696..0000000000 --- a/mingw-w64-binutils-git/0014-dont-link-binutils-to-libiberty.mingw.patch +++ /dev/null @@ -1,122 +0,0 @@ ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.am.orig 2014-07-24 03:02:47.471723300 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.am 2014-07-24 03:13:03.161008156 +0400 -@@ -198,28 +198,28 @@ - # There's no global DEPENDENCIES. So, we must explicitly list everything - # which depends on libintl, since we don't know whether LIBINTL_DEP will be - # non-empty until configure time. Ugh! --size_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --objdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) $(OPCODES) $(OBJDUMP_PRIVATE_OFILES) --nm_new_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --ar_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --strings_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --strip_new_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --ranlib_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --cxxfilt_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --objcopy_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --nlmconv_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --srconv_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --sysdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --coffdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --dlltool_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --windres_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --windmc_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --addr2line_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) -+size_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+objdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) $(OPCODES) $(OBJDUMP_PRIVATE_OFILES) -+nm_new_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+ar_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+strings_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+strip_new_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+ranlib_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+cxxfilt_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+objcopy_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+nlmconv_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+srconv_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+sysdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+coffdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+dlltool_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+windres_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+windmc_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+addr2line_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) - readelf_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) - elfedit_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) - dllwrap_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) --bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) -+bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) - - LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL) - ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.in.orig 2014-07-24 03:02:47.635724500 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.in 2014-07-24 03:13:16.974117340 +0400 -@@ -548,28 +548,28 @@ - # There's no global DEPENDENCIES. So, we must explicitly list everything - # which depends on libintl, since we don't know whether LIBINTL_DEP will be - # non-empty until configure time. Ugh! --size_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --objdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) $(OPCODES) $(OBJDUMP_PRIVATE_OFILES) --nm_new_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --ar_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --strings_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --strip_new_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --ranlib_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --cxxfilt_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --objcopy_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --nlmconv_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --srconv_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --sysdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --coffdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --dlltool_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --windres_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --windmc_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --addr2line_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) -+size_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+objdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) $(OPCODES) $(OBJDUMP_PRIVATE_OFILES) -+nm_new_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+ar_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+strings_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+strip_new_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+ranlib_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+cxxfilt_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+objcopy_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+nlmconv_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+srconv_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+sysdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+coffdump_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+dlltool_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+windres_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+windmc_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+addr2line_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) - readelf_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) - elfedit_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) - dllwrap_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) --bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) --bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) -+bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) -+bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) - LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL) - size_SOURCES = size.c $(BULIBS) - objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.am.orig 2014-07-24 03:14:02.660581500 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.am 2014-07-24 03:36:46.895776902 +0400 -@@ -221,7 +221,7 @@ - bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) - bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) - --LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL) -+LDADD = $(BFDLIB) $(LIBINTL) - - size_SOURCES = size.c $(BULIBS) - ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.in.orig 2014-07-24 03:14:02.868583000 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/binutils/Makefile.in 2014-07-24 03:36:52.198088982 +0400 -@@ -570,7 +570,7 @@ - dllwrap_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) - bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) - bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(BFDLIB) --LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL) -+LDADD = $(BFDLIB) $(LIBINTL) - size_SOURCES = size.c $(BULIBS) - objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) - strings_SOURCES = strings.c $(BULIBS) diff --git a/mingw-w64-binutils-git/0015-dont-link-ld-to-libiberty.mingw.patch b/mingw-w64-binutils-git/0015-dont-link-ld-to-libiberty.mingw.patch deleted file mode 100644 index c7a193d608..0000000000 --- a/mingw-w64-binutils-git/0015-dont-link-ld-to-libiberty.mingw.patch +++ /dev/null @@ -1,69 +0,0 @@ ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/ld/Makefile.am.orig 2014-07-17 20:49:00.548854000 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/ld/Makefile.am 2014-07-24 03:51:54.867729925 +0400 -@@ -1956,8 +1956,8 @@ - ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c $(PLUGIN_C) \ - ldbuildid.c - ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) \ -- $(BFDLIB) $(LIBIBERTY) $(LIBINTL_DEP) --ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL) -+ $(BFDLIB) $(LIBINTL_DEP) -+ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBINTL) - - # Dependency tracking for the generated emulation files. - EXTRA_ld_new_SOURCES += $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES) -@@ -1990,16 +1990,16 @@ - ld-partial.@OBJEXT@: ld-new$(EXEEXT) - ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld-partial.@OBJEXT@ -r $(OFILES) - ld1$(EXEEXT): ld-partial.@OBJEXT@ -- ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1$(EXEEXT) $(HOSTING_CRT0) ld-partial.@OBJEXT@ $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) -+ ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1$(EXEEXT) $(HOSTING_CRT0) ld-partial.@OBJEXT@ $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) - - ld1-full$(EXEEXT): ld-new -- ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1-full$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) -+ ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1-full$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) - - ld2$(EXEEXT): ld1$(EXEEXT) -- ./ld1$(EXEEXT) $(HOSTING_EMU) -o ld2$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) -+ ./ld1$(EXEEXT) $(HOSTING_EMU) -o ld2$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) - - ld3$(EXEEXT): ld2$(EXEEXT) -- ./ld2$(EXEEXT) $(HOSTING_EMU) -o ld3$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) -+ ./ld2$(EXEEXT) $(HOSTING_EMU) -o ld3$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) - - bootstrap: ld3$(EXEEXT) - cmp ld2$(EXEEXT) ld3$(EXEEXT) ---- binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/ld/Makefile.in.orig 2014-07-17 20:49:00.552854000 +0400 -+++ binutils-git-e6cf2ae8bb4c675ebfafb137bf13e92ba96225e8/ld/Makefile.in 2014-07-24 03:52:19.962988250 +0400 -@@ -848,9 +848,9 @@ - ldbuildid.c - - ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) \ -- $(BFDLIB) $(LIBIBERTY) $(LIBINTL_DEP) -+ $(BFDLIB) $(LIBINTL_DEP) - --ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL) -+ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBINTL) - - # A test program for C++ constructors and destructors. - # This test is now in the testsuite. -@@ -3411,16 +3411,16 @@ - ld-partial.@OBJEXT@: ld-new$(EXEEXT) - ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld-partial.@OBJEXT@ -r $(OFILES) - ld1$(EXEEXT): ld-partial.@OBJEXT@ -- ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1$(EXEEXT) $(HOSTING_CRT0) ld-partial.@OBJEXT@ $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) -+ ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1$(EXEEXT) $(HOSTING_CRT0) ld-partial.@OBJEXT@ $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) - - ld1-full$(EXEEXT): ld-new -- ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1-full$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) -+ ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1-full$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) - - ld2$(EXEEXT): ld1$(EXEEXT) -- ./ld1$(EXEEXT) $(HOSTING_EMU) -o ld2$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) -+ ./ld1$(EXEEXT) $(HOSTING_EMU) -o ld2$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) - - ld3$(EXEEXT): ld2$(EXEEXT) -- ./ld2$(EXEEXT) $(HOSTING_EMU) -o ld3$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) $(LIBS) -+ ./ld2$(EXEEXT) $(HOSTING_EMU) -o ld3$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(HOSTING_LIBS) $(LIBS) - - bootstrap: ld3$(EXEEXT) - cmp ld2$(EXEEXT) ld3$(EXEEXT) diff --git a/mingw-w64-binutils-git/0017-fix-iconv-linking.all.patch b/mingw-w64-binutils-git/0017-fix-iconv-linking.all.patch deleted file mode 100644 index 96991d5210..0000000000 --- a/mingw-w64-binutils-git/0017-fix-iconv-linking.all.patch +++ /dev/null @@ -1,54 +0,0 @@ ---- binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/bfd/Makefile.am.orig 2014-08-01 21:54:27.917294900 +0400 -+++ binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/bfd/Makefile.am 2014-08-01 23:41:39.388829543 +0400 -@@ -833,7 +833,8 @@ - EXTRA_libbfd_la_SOURCES = $(CFILES) - libbfd_la_DEPENDENCIES = $(OFILES) ofiles - libbfd_la_LIBADD = `cat ofiles` @SHARED_LIBADD@ $(LIBDL) --libbfd_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@ -Wl,--whole-archive -Wl,$(LIBIBERTY) -Wl,$(LIBINTL) -Wl,--no-whole-archive -+comma := , -+libbfd_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@ -Wl,--whole-archive -Wl,$(LIBIBERTY) $(addprefix -Wl$(comma),$(LIBINTL)) -Wl,--no-whole-archive - - # libtool will build .libs/libbfd.a. We create libbfd.a in the build - # directory so that we don't have to convert all the programs that use ---- binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/bfd/Makefile.in.orig 2014-08-01 21:54:27.917294900 +0400 -+++ binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/bfd/Makefile.in 2014-08-01 23:42:11.628451359 +0400 -@@ -341,8 +341,9 @@ - CSEARCH = -I. -I$(srcdir) -I$(INCDIR) - SUBDIRS = doc po - bfddocdir = doc -+comma := , - libbfd_la_LDFLAGS = $(am__append_1) -release `cat libtool-soversion` \ -- @SHARED_LDFLAGS@ $(am__empty) -no-undefined -Wl,--whole-archive -Wl,$(LIBIBERTY) -Wl,$(LIBINTL) -Wl,--no-whole-archive -+ @SHARED_LDFLAGS@ $(am__empty) -no-undefined -Wl,--whole-archive -Wl,$(LIBIBERTY) $(addprefix -Wl$(comma),$(LIBINTL)) -Wl,--no-whole-archive - @INSTALL_LIBBFD_TRUE@bfdlib_LTLIBRARIES = libbfd.la - @INSTALL_LIBBFD_FALSE@bfdinclude_HEADERS = $(am__append_2) - @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \ ---- binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/intl/localcharset.c.orig 2014-07-24 17:46:54.721150000 +0400 -+++ binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/intl/localcharset.c 2014-08-01 23:46:23.527989681 +0400 -@@ -23,6 +23,10 @@ - # include - #endif - -+#ifndef STATIC -+#define STATIC static -+#endif -+ - /* Specification. */ - #include "localcharset.h" - ---- binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/intl/localcharset.h.orig 2014-07-24 17:46:54.721150000 +0400 -+++ binutils-git-90debf20f4cc4ddd7cfb6356fe0d3876a18604a6/intl/localcharset.h 2014-08-01 23:48:01.816349439 +0400 -@@ -31,7 +31,12 @@ - The result must not be freed; it is statically allocated. - If the canonical name cannot be determined, the result is a non-canonical - name. */ --extern const char * locale_charset (void); -+#ifdef STATIC -+STATIC -+#else -+extern -+#endif -+const char * locale_charset (void); - - - #ifdef __cplusplus diff --git a/mingw-w64-binutils-git/PKGBUILD b/mingw-w64-binutils-git/PKGBUILD index e19d44279f..c08b2b49ab 100644 --- a/mingw-w64-binutils-git/PKGBUILD +++ b/mingw-w64-binutils-git/PKGBUILD @@ -5,7 +5,7 @@ _realname=binutils _base_ver=2.25 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") # replaces="${MINGW_PACKAGE_PREFIX}-${_realname}=${_base_ver}" -pkgver=2.25.r81716.c8daf7d +pkgver=2.25.r82106.8a7e380 pkgrel=1 provides=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -20,33 +20,15 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib" " options=('staticlibs' '!distcc' '!ccache') # 'debug' '!strip') #install=binutils.install source=("${_realname}"::"git://sourceware.org/git/binutils-gdb.git#branch=${_realname}-${_base_ver//./_}-branch" - 0001-enable-gold-on.mingw32.patch - 0002-check-for-unusual-file-harder.patch - 0003-enable-shared-bfd.all.patch - 0003-link-to-libibtl-and-libiberty.mingw.patch - 0004-libiberty-la.mingw.patch - 0005-shared-opcodes.mingw.patch - 0008-fix-libiberty-makefile.mingw.patch - 0009-fix-libiberty-configure.mingw.patch - 0013-dont-link-gas-to-libiberty.mingw.patch - 0014-dont-link-binutils-to-libiberty.mingw.patch - 0015-dont-link-ld-to-libiberty.mingw.patch - 0017-fix-iconv-linking.all.patch - 0110-binutils-mingw-gnu-print.patch) + 0001-MinGW-w64-Two-fixes-for-unusual-files.patch + 0002-MinGW-w64-Fix-libiberty-makefile.patch + 0003-MinGW-w64-Fix-libibery-configure.patch + 0004-MinGW-w64-Use-gnu-printf.patch) md5sums=('SKIP' - 'f3be04ed70b9d352a2c0e2a80b0706b2' - '2cc89a3c09cafa30c91ac890d3c68932' - 'b3580923675b22a78a66788fd70b99b9' - 'bea93b7621fcdf54e91a38cebf9ac68f' - 'a91bbb38f462c26247f317e4004a99fd' - 'bcd56ce925ca7f85e30b42c28af539d1' - 'df13a2462c24d14376a09ec1d1609519' - '9cd71d49b765932a9701b66dfde00775' - '1d439afee5cbcc952719ae40021e6cec' - '6d3610000f041f66ada0a956101faeec' - '33b5eda35272e88b1c308e66484db958' - '66eeb2af697f5f1d0f372185aa2fb737' - '1c34f5ee0ee5d5008a617e1638362d43') + '3380cf23846fdfc9431a2bc0323dcdd1' + '52b62ba647ee0f27d70bcfa6c7bac5b9' + '6ec7b3e45af8464e14feb57172189cf9' + 'c7c90ad2d5f6511cae7a2c571a4b100c') pkgver() { cd "$srcdir/$_realname" @@ -55,21 +37,10 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} - - patch -p1 -i "${srcdir}"/0001-enable-gold-on.mingw32.patch - patch -p1 -i "${srcdir}"/0002-check-for-unusual-file-harder.patch - #patch -p1 -i "${srcdir}"/0003-enable-shared-bfd.all.patch - #patch -p1 -i "${srcdir}"/0003-link-to-libibtl-and-libiberty.mingw.patch - #patch -p1 -i "${srcdir}"/0004-libiberty-la.mingw.patch - #patch -p1 -i "${srcdir}"/0005-shared-opcodes.mingw.patch - patch -p1 -i "${srcdir}"/0008-fix-libiberty-makefile.mingw.patch - patch -p1 -i "${srcdir}"/0009-fix-libiberty-configure.mingw.patch - #patch -p1 -i "${srcdir}"/0013-dont-link-gas-to-libiberty.mingw.patch - #patch -p1 -i "${srcdir}"/0014-dont-link-binutils-to-libiberty.mingw.patch - #patch -p1 -i "${srcdir}"/0015-dont-link-ld-to-libiberty.mingw.patch - #patch -p1 -i "${srcdir}"/0017-fix-iconv-linking.all.patch - patch -p1 -i "${srcdir}"/0110-binutils-mingw-gnu-print.patch - + git am "${srcdir}"/0001-MinGW-w64-Two-fixes-for-unusual-files.patch + git am "${srcdir}"/0002-MinGW-w64-Fix-libiberty-makefile.patch + git am "${srcdir}"/0003-MinGW-w64-Fix-libibery-configure.patch + git am "${srcdir}"/0004-MinGW-w64-Use-gnu-printf.patch rm -rf gdb readline libdecnumber sim } diff --git a/mingw-w64-qt5/0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch b/mingw-w64-qt5/0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch new file mode 100644 index 0000000000..87abbee588 --- /dev/null +++ b/mingw-w64-qt5/0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch @@ -0,0 +1,40 @@ +From c4f22ef225f6e4c2f1943da620a0dc6fff6296cb Mon Sep 17 00:00:00 2001 +From: Oswald Buddenhagen +Date: Tue, 13 Oct 2015 17:09:33 +0200 +Subject: [PATCH] fix the trailing-backslash-in-DESTDIR-on-mingw workaround + +at least the mingw version we use now interprets the sequence \# as a +literal hashmark, which completely defeats the previous hack. + +the new hack escapes the backslash with another backslash, which appears +to work. however, make does *not* remove the additional backslash, so +the result is a bit ugly. + +Change-Id: I591a2be443880b162094d04e5a5e624216b59311 +--- + qmake/generators/unix/unixmake2.cpp | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp +index d0cd5d2..9db64be 100644 +--- a/qmake/generators/unix/unixmake2.cpp ++++ b/qmake/generators/unix/unixmake2.cpp +@@ -269,11 +269,13 @@ + t << "DIST = " << valList(fileFixify(project->values("DISTFILES").toQStringList())) << " " + << fileVarList("HEADERS") << ' ' << fileVarList("SOURCES") << endl; + t << "QMAKE_TARGET = " << fileVar("QMAKE_ORIG_TARGET") << endl; +- // The comment is important for mingw32-make.exe on Windows as otherwise trailing slashes +- // would be interpreted as line continuation. The lack of spacing between the value and the +- // comment is also important as otherwise quoted use of "$(DESTDIR)" would include this +- // spacing. +- t << "DESTDIR = " << fileVar("DESTDIR") << "#avoid trailing-slash linebreak\n"; ++ QString destd = fileVar("DESTDIR"); ++ // When building on non-MSys MinGW, the path ends with a backslash, which ++ // GNU make will interpret that as a line continuation. Doubling the backslash ++ // avoids the problem, at the cost of the variable containing *both* backslashes. ++ if (destd.endsWith('\\')) ++ destd += '\\'; ++ t << "DESTDIR = " << destd << endl; + if(project->isActiveConfig("compile_libtool")) + t << "TARGETL = " << fileVar("TARGET_la") << endl; + t << "TARGET = " << fileVar("TARGET") << endl; // ### mixed use! From 2d116ab60dd13f463e225f78098a225cc726ac97 Mon Sep 17 00:00:00 2001 From: Zach Bacon <11doctorwhocanada@gmail.com> Date: Sun, 1 Nov 2015 12:39:20 -0500 Subject: [PATCH 1802/2060] moved the position of pkgbase so that _realname is properly defined in the PKGBUILD. --- mingw-w64-libtorrent-rasterbar/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-libtorrent-rasterbar/PKGBUILD b/mingw-w64-libtorrent-rasterbar/PKGBUILD index 6fd481d102..390733251a 100644 --- a/mingw-w64-libtorrent-rasterbar/PKGBUILD +++ b/mingw-w64-libtorrent-rasterbar/PKGBUILD @@ -1,8 +1,8 @@ # Maintainer: Alexey Pavlov # Contributor: AlexWMF -pkgbase=mingw-w64-${_realname} _realname=libtorrent-rasterbar +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.6 pkgrel=1 From a2e50670588c95a09bdadcae3fad959ce3e0ae5b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 2 Nov 2015 09:56:35 +0300 Subject: [PATCH 1803/2060] gmp: Update to 6.1.0 --- mingw-w64-gmp/PKGBUILD | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/mingw-w64-gmp/PKGBUILD b/mingw-w64-gmp/PKGBUILD index 8e7f93036b..b7188b5365 100644 --- a/mingw-w64-gmp/PKGBUILD +++ b/mingw-w64-gmp/PKGBUILD @@ -1,23 +1,24 @@ # Maintainer: Alexey Pavlov _realname=gmp +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=6.0.0 -pkgrel=3 +pkgver=6.1.0 +pkgrel=1 pkgdesc="A free library for arbitrary precision arithmetic (mingw-w64)" arch=('any') url="http://gmplib.org/" license=('LGPL3') -source=(ftp://ftp.gmplib.org/pub/gmp-${pkgver}/${_realname}-${pkgver}a.tar.xz{,.sig}) +source=(ftp://ftp.gmplib.org/pub/gmp-${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig}) options=('staticlibs') -md5sums=('1e6da4e434553d2811437aa42c7f7c76' +md5sums=('a9868ef2556ad6a2909babcd1428f3c7' 'SKIP') build() { cd "${srcdir}/${_realname}-${pkgver}" # Build static version - mkdir -p "${srcdir}/build-static-${CARCH}" && cd "${srcdir}/build-static-${CARCH}" + mkdir -p "${srcdir}/static-${MINGW_CHOST}" && cd "${srcdir}/static-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ @@ -27,7 +28,7 @@ build() { make # Build shared version - mkdir -p "${srcdir}/build-shared-${CARCH}" && cd "${srcdir}/build-shared-${CARCH}" + mkdir -p "${srcdir}/shared-${MINGW_CHOST}" && cd "${srcdir}/shared-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --enable-cxx \ @@ -37,15 +38,15 @@ build() { } check() { - cd "${srcdir}/build-static-${CARCH}" + cd "${srcdir}/static-${MINGW_CHOST}" make check } package() { - cd "${srcdir}/build-static-${CARCH}" + cd "${srcdir}/static-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install - cd ${srcdir}/build-shared-${CARCH} + cd ${srcdir}/shared-${MINGW_CHOST} mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib} cp .libs/libgmp*.dll ${pkgdir}${MINGW_PREFIX}/bin/ cp .libs/libgmp*.dll.a ${pkgdir}${MINGW_PREFIX}/lib/ From 6b0711a885a7cb2daf167b812261fdd58425585d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 2 Nov 2015 10:10:23 +0300 Subject: [PATCH 1804/2060] gsl: Update to 2.0 --- mingw-w64-gsl/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gsl/PKGBUILD b/mingw-w64-gsl/PKGBUILD index 90f9432ecf..f179ceb0ca 100644 --- a/mingw-w64-gsl/PKGBUILD +++ b/mingw-w64-gsl/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=gsl +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.16 -pkgrel=3 +pkgver=2.0 +pkgrel=1 pkgdesc="The GNU Scientific Library (GSL) is a modern numerical library for C and C++ programmers (mingw-w64)" arch=('any') url="http://www.gnu.org/software/gsl/gsl.html" @@ -11,7 +12,7 @@ license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('staticlibs' 'strip') source=("http://mirror.ibcp.fr/pub/gnu/gsl/${_realname}-${pkgver}.tar.gz") -md5sums=('e49a664db13d81c968415cd53f62bc8b') +md5sums=('ae44cdfed78ece40e73411b63a78c375') build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" From 2e51687c9d5dcad93e43c2b4353caf82547a4022 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 2 Nov 2015 10:43:44 +0300 Subject: [PATCH 1805/2060] Update mingw-w64 runtime to 5.0.0.4581.c99ba04 --- .../0006-Add-d3d11-video-context.patch | 385 ++++++++++++++++++ mingw-w64-crt-git/PKGBUILD | 9 +- .../0006-Add-d3d11-video-context.patch | 12 + mingw-w64-headers-git/PKGBUILD | 4 +- 4 files changed, 405 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-crt-git/0006-Add-d3d11-video-context.patch diff --git a/mingw-w64-crt-git/0006-Add-d3d11-video-context.patch b/mingw-w64-crt-git/0006-Add-d3d11-video-context.patch new file mode 100644 index 0000000000..beab74c429 --- /dev/null +++ b/mingw-w64-crt-git/0006-Add-d3d11-video-context.patch @@ -0,0 +1,385 @@ +From b952e857814e5cfe766626573e2f056ed91ceb09 Mon Sep 17 00:00:00 2001 +From: Martell Malone +Date: Sun, 14 Jun 2015 21:07:03 +0100 +Subject: [PATCH 6/6] Add d3d11 video context + +--- + mingw-w64-headers/direct-x/include/d3d11.h | 259 +++++++++++++++++++++++++++ + mingw-w64-headers/direct-x/include/d3d11.idl | 66 ++++++ + 2 files changed, 325 insertions(+) + +diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h +index e49fd99..834a536 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.h ++++ b/mingw-w64-headers/direct-x/include/d3d11.h +@@ -21,6 +21,11 @@ + #define __ID3D11DeviceChild_FWD_DEFINED__ + typedef interface ID3D11DeviceChild ID3D11DeviceChild; + #endif ++ ++#ifndef __ID3D11VideoContext_FWD_DEFINED__ ++#define __ID3D11VideoContext_FWD_DEFINED__ ++typedef interface ID3D11VideoContext ID3D11VideoContext; ++#endif + + #ifndef __ID3D11Asynchronous_FWD_DEFINED__ + #define __ID3D11Asynchronous_FWD_DEFINED__ +@@ -1366,6 +1366,38 @@ + USHORT ConfigMinRenderTargetBuffCount; + USHORT ConfigDecoderSpecific; + } D3D11_VIDEO_DECODER_CONFIG; ++typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE { ++ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, ++ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, ++ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, ++ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, ++ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, ++ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, ++ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, ++ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, ++ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8 ++} D3D11_VIDEO_DECODER_BUFFER_TYPE; ++typedef struct D3D11_ENCRYPTED_BLOCK_INFO { ++ UINT NumEncryptedBytesAtBeginning; ++ UINT NumBytesInSkipPattern; ++ UINT NumBytesInEncryptPattern; ++} D3D11_ENCRYPTED_BLOCK_INFO; ++typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC { ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; ++ UINT BufferIndex; ++ UINT DataOffset; ++ UINT DataSize; ++ UINT FirstMBaddress; ++ UINT NumMBsInBuffer; ++ UINT Width; ++ UINT Height; ++ UINT Stride; ++ UINT ReservedBits; ++ void *pIV; ++ UINT IVSize; ++ WINBOOL PartialEncryption; ++ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; ++} D3D11_VIDEO_DECODER_BUFFER_DESC; + typedef enum D3D11_VIDEO_FRAME_FORMAT { + D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE = 0, + D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1, +@@ -8514,6 +8514,233 @@ + DWORD* pdwStubPhase); + + #endif /* __ID3D11VideoDecoder_INTERFACE_DEFINED__ */ ++ ++/***************************************************************************** ++ * ID3D11VideoContext interface ++ */ ++#ifndef __ID3D11VideoContext_INTERFACE_DEFINED__ ++#define __ID3D11VideoContext_INTERFACE_DEFINED__ ++ ++DEFINE_GUID(IID_ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4); ++#if defined(__cplusplus) && !defined(CINTERFACE) ++MIDL_INTERFACE("61f21c45-3c0e-4a74-9cea-67100d9ad5e4") ++ID3D11VideoContext : public ID3D11DeviceChild ++{ ++ virtual HRESULT STDMETHODCALLTYPE GetDecoderBuffer( ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE ReleaseDecoderBuffer( ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame( ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE DecoderEndFrame( ++ ID3D11VideoDecoder *pDecoder) = 0; ++ ++ virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers( ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) = 0; ++ ++}; ++#ifdef __CRT_UUID_DECL ++__CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4) ++#endif ++#else ++typedef struct ID3D11VideoContextVtbl { ++ BEGIN_INTERFACE ++ ++ /*** IUnknown methods ***/ ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ++ ID3D11VideoContext* This, ++ REFIID riid, ++ void **ppvObject); ++ ++ ULONG (STDMETHODCALLTYPE *AddRef)( ++ ID3D11VideoContext* This); ++ ++ ULONG (STDMETHODCALLTYPE *Release)( ++ ID3D11VideoContext* This); ++ ++ /*** ID3D11DeviceChild methods ***/ ++ void (STDMETHODCALLTYPE *GetDevice)( ++ ID3D11VideoContext* This, ++ ID3D11Device **ppDevice); ++ ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ UINT *pDataSize, ++ void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ UINT DataSize, ++ const void *pData); ++ ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( ++ ID3D11VideoContext* This, ++ REFGUID guid, ++ const IUnknown *pData); ++ ++ /*** ID3D11VideoContext methods ***/ ++ HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer); ++ ++ HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++ ++ HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey); ++ ++ HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder); ++ ++ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++ ++ END_INTERFACE ++} ID3D11VideoContextVtbl; ++interface ID3D11VideoContext { ++ CONST_VTBL ID3D11VideoContextVtbl* lpVtbl; ++}; ++ ++#ifdef COBJMACROS ++#ifndef WIDL_C_INLINE_WRAPPERS ++/*** IUnknown methods ***/ ++#define ID3D11VideoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) ++#define ID3D11VideoContext_AddRef(This) (This)->lpVtbl->AddRef(This) ++#define ID3D11VideoContext_Release(This) (This)->lpVtbl->Release(This) ++/*** ID3D11DeviceChild methods ***/ ++#define ID3D11VideoContext_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) ++#define ID3D11VideoContext_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) ++#define ID3D11VideoContext_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) ++#define ID3D11VideoContext_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) ++/*** ID3D11VideoContext methods ***/ ++#define ID3D11VideoContext_GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) (This)->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) ++#define ID3D11VideoContext_ReleaseDecoderBuffer(This,pDecoder,BufferType) (This)->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType) ++#define ID3D11VideoContext_DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) (This)->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) ++#define ID3D11VideoContext_DecoderEndFrame(This,pDecoder) (This)->lpVtbl->DecoderEndFrame(This,pDecoder) ++#define ID3D11VideoContext_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) (This)->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) ++#else ++/*** IUnknown methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoContext_QueryInterface(ID3D11VideoContext* This,REFIID riid,void **ppvObject) { ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); ++} ++static FORCEINLINE ULONG ID3D11VideoContext_AddRef(ID3D11VideoContext* This) { ++ return This->lpVtbl->AddRef(This); ++} ++static FORCEINLINE ULONG ID3D11VideoContext_Release(ID3D11VideoContext* This) { ++ return This->lpVtbl->Release(This); ++} ++/*** ID3D11DeviceChild methods ***/ ++static FORCEINLINE void ID3D11VideoContext_GetDevice(ID3D11VideoContext* This,ID3D11Device **ppDevice) { ++ This->lpVtbl->GetDevice(This,ppDevice); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_GetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT *pDataSize,void *pData) { ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT DataSize,const void *pData) { ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateDataInterface(ID3D11VideoContext* This,REFGUID guid,const IUnknown *pData) { ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); ++} ++/*** ID3D11VideoContext methods ***/ ++static FORCEINLINE HRESULT ID3D11VideoContext_GetDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType,UINT *pBufferSize,void **ppBuffer) { ++ return This->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_ReleaseDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) { ++ return This->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_DecoderBeginFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,ID3D11VideoDecoderOutputView *pVideoDecoderOutputView,UINT ContentKeySize,const void *pContentKey) { ++ return This->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_DecoderEndFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder) { ++ return This->lpVtbl->DecoderEndFrame(This,pDecoder); ++} ++static FORCEINLINE HRESULT ID3D11VideoContext_SubmitDecoderBuffers(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,UINT NumBuffers,const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) { ++ return This->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc); ++} ++#endif ++#endif ++ ++#endif ++ ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_GetDecoderBuffer_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ UINT *pBufferSize, ++ void **ppBuffer); ++void __RPC_STUB ID3D11VideoContext_GetDecoderBuffer_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_ReleaseDecoderBuffer_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++void __RPC_STUB ID3D11VideoContext_ReleaseDecoderBuffer_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderBeginFrame_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ UINT ContentKeySize, ++ const void *pContentKey); ++void __RPC_STUB ID3D11VideoContext_DecoderBeginFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderEndFrame_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder); ++void __RPC_STUB ID3D11VideoContext_DecoderEndFrame_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_SubmitDecoderBuffers_Proxy( ++ ID3D11VideoContext* This, ++ ID3D11VideoDecoder *pDecoder, ++ UINT NumBuffers, ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++void __RPC_STUB ID3D11VideoContext_SubmitDecoderBuffers_Stub( ++ IRpcStubBuffer* This, ++ IRpcChannelBuffer* pRpcChannelBuffer, ++ PRPC_MESSAGE pRpcMessage, ++ DWORD* pdwStubPhase); ++ ++#endif /* __ID3D11VideoContext_INTERFACE_DEFINED__ */ + + /***************************************************************************** + * ID3D11VideoProcessorEnumerator interface +diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl +index 59beafb..cfae7c8 100644 +--- a/mingw-w64-headers/direct-x/include/d3d11.idl ++++ b/mingw-w64-headers/direct-x/include/d3d11.idl +@@ -1246,6 +1246,44 @@ + USHORT ConfigMinRenderTargetBuffCount; + USHORT ConfigDecoderSpecific; + } D3D11_VIDEO_DECODER_CONFIG; ++ ++typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE ++{ ++ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, ++ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE, ++ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX, ++ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL, ++ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM, ++ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR, ++ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN ++} D3D11_VIDEO_DECODER_BUFFER_TYPE; ++ ++typedef struct D3D11_ENCRYPTED_BLOCK_INFO ++{ ++ UINT NumEncryptedBytesAtBeginning; ++ UINT NumBytesInSkipPattern; ++ UINT NumBytesInEncryptPattern; ++} D3D11_ENCRYPTED_BLOCK_INFO; ++ ++typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC ++{ ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; ++ UINT BufferIndex; ++ UINT DataOffset; ++ UINT DataSize; ++ UINT FirstMBaddress; ++ UINT NumMBsInBuffer; ++ UINT Width; ++ UINT Height; ++ UINT Stride; ++ UINT ReservedBits; ++ void *pIV; ++ UINT IVSize; ++ BOOL PartialEncryption; ++ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; ++} D3D11_VIDEO_DECODER_BUFFER_DESC; + + typedef enum D3D11_VIDEO_FRAME_FORMAT + { +@@ -2286,6 +2286,34 @@ + D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc); + } + ++[ ++ object, ++ local, ++ uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4) ++] ++interface ID3D11VideoContext : ID3D11DeviceChild ++{ ++ HRESULT GetDecoderBuffer( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, ++ [out] UINT *pBufferSize, ++ [out] void **ppBuffer); ++ HRESULT ReleaseDecoderBuffer( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); ++ HRESULT DecoderBeginFrame( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, ++ [in] UINT ContentKeySize, ++ [in] const void *pContentKey); ++ HRESULT DecoderEndFrame( ++ [in] ID3D11VideoDecoder *pDecoder); ++ HRESULT SubmitDecoderBuffers( ++ [in] ID3D11VideoDecoder *pDecoder, ++ [in] UINT NumBuffers, ++ [in] const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); ++} ++ + [ + object, + uuid(10ec4d5b-975a-4689-b9e4-d0aac30fe333), +-- +2.4.5 diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index c4fcc71e1f..9cd6e6169d 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=crt pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4573.628fdbf +pkgver=5.0.0.4581.c99ba04 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') @@ -21,11 +21,13 @@ options=('!strip' 'staticlibs' '!buildflags' '!emptydirs') source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0002-dxgi-Add-interface-for-IDXGISurface1.patch" "0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch" - "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch") + "0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch" + "0006-Add-d3d11-video-context.patch") md5sums=('SKIP' 'ada92acb4a3939bcede26298adc0a5d0' 'b664667ec276614e62e4ea289c79c4b1' - '79bb56620aaef710ef1d73415dc5bc13') + '79bb56620aaef710ef1d73415dc5bc13' + '6bc79f1f64b8dddd4007c3ddd20c2df4') pkgver() { cd "${srcdir}/mingw-w64" @@ -40,6 +42,7 @@ prepare() { git am "${srcdir}"/0002-dxgi-Add-interface-for-IDXGISurface1.patch git am "${srcdir}"/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch git am "${srcdir}"/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch + git am "${srcdir}"/0006-Add-d3d11-video-context.patch } build() { diff --git a/mingw-w64-headers-git/0006-Add-d3d11-video-context.patch b/mingw-w64-headers-git/0006-Add-d3d11-video-context.patch index 0220cac589..beab74c429 100644 --- a/mingw-w64-headers-git/0006-Add-d3d11-video-context.patch +++ b/mingw-w64-headers-git/0006-Add-d3d11-video-context.patch @@ -12,6 +12,18 @@ diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/dire index e49fd99..834a536 100644 --- a/mingw-w64-headers/direct-x/include/d3d11.h +++ b/mingw-w64-headers/direct-x/include/d3d11.h +@@ -21,6 +21,11 @@ + #define __ID3D11DeviceChild_FWD_DEFINED__ + typedef interface ID3D11DeviceChild ID3D11DeviceChild; + #endif ++ ++#ifndef __ID3D11VideoContext_FWD_DEFINED__ ++#define __ID3D11VideoContext_FWD_DEFINED__ ++typedef interface ID3D11VideoContext ID3D11VideoContext; ++#endif + + #ifndef __ID3D11Asynchronous_FWD_DEFINED__ + #define __ID3D11Asynchronous_FWD_DEFINED__ @@ -1366,6 +1366,38 @@ USHORT ConfigMinRenderTargetBuffCount; USHORT ConfigDecoderSpecific; diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 39cf04a222..960ac75827 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4578.ace70f1 +pkgver=5.0.0.4581.c99ba04 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" @@ -24,7 +24,7 @@ md5sums=('SKIP' 'ada92acb4a3939bcede26298adc0a5d0' 'b664667ec276614e62e4ea289c79c4b1' '79bb56620aaef710ef1d73415dc5bc13' - 'd15f5386134af655d049d07f5e74a7b3') + '6bc79f1f64b8dddd4007c3ddd20c2df4') pkgver() { cd "${srcdir}/mingw-w64" From 69ad94882a0a8c437945b6d9eaa0d7333525ad4b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 2 Nov 2015 12:34:43 +0300 Subject: [PATCH 1806/2060] gstreamer: WIP update to 1.6.1 --- .../0003-fix-introspection-syntax.patch | 45 +++++++++++++++++++ mingw-w64-gst-editing-services/PKGBUILD | 10 +++-- mingw-w64-gst-libav/PKGBUILD | 4 +- ...name-conflict-with-openssl-and-win32.patch | 27 ----------- mingw-w64-gst-plugins-bad/1.txt | 34 ++++++++++++++ mingw-w64-gst-plugins-bad/PKGBUILD | 11 ++--- mingw-w64-gst-plugins-base/PKGBUILD | 4 +- mingw-w64-gst-plugins-good/PKGBUILD | 4 +- mingw-w64-gst-plugins-ugly/PKGBUILD | 4 +- mingw-w64-gst-python/PKGBUILD | 4 +- mingw-w64-gstreamer/PKGBUILD | 4 +- 11 files changed, 101 insertions(+), 50 deletions(-) create mode 100644 mingw-w64-gst-editing-services/0003-fix-introspection-syntax.patch delete mode 100644 mingw-w64-gst-plugins-bad/0006-fix-name-conflict-with-openssl-and-win32.patch create mode 100644 mingw-w64-gst-plugins-bad/1.txt diff --git a/mingw-w64-gst-editing-services/0003-fix-introspection-syntax.patch b/mingw-w64-gst-editing-services/0003-fix-introspection-syntax.patch new file mode 100644 index 0000000000..76d16f4c9e --- /dev/null +++ b/mingw-w64-gst-editing-services/0003-fix-introspection-syntax.patch @@ -0,0 +1,45 @@ +--- gstreamer-editing-services-1.6.1/ges/ges-track-element.c.orig 2015-11-02 12:02:31.273729700 +0300 ++++ gstreamer-editing-services-1.6.1/ges/ges-track-element.c 2015-11-02 12:04:23.608495100 +0300 +@@ -264,15 +264,15 @@ + G_TYPE_NONE, 1, GST_TYPE_CONTROL_BINDING); + + /** +- * GESTrackElement::control-binding-added: ++ * GESTrackElement::control-binding-removed: + * @track_element: a #GESTrackElement +- * @control_binding: the #GstControlBinding that has been added ++ * @control_binding: the #GstControlBinding that has been removed + * +- * The control-bunding-added is emitted each time a control binding +- * is added for a child property of @track_element ++ * The control-binding-removed is emitted each time a control binding ++ * is removed from a child property of @track_element + */ + ges_track_element_signals[CONTROL_BINDING_REMOVED] = +- g_signal_new ("control-binding-reomved", G_TYPE_FROM_CLASS (klass), ++ g_signal_new ("control-binding-removed", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_generic, + G_TYPE_NONE, 1, GST_TYPE_CONTROL_BINDING); + +--- gstreamer-editing-services-1.6.1/ges/ges-extractable.c.orig 2015-11-02 12:06:11.201734700 +0300 ++++ gstreamer-editing-services-1.6.1/ges/ges-extractable.c 2015-11-02 12:07:18.658988300 +0300 +@@ -136,7 +136,7 @@ + * ges_extractable_get_id: + * @self: The #GESExtractable + * +- * Returns: (transfer full) The #id of the associated #GESAsset, free with #g_free ++ * Returns: (transfer full): The #id of the associated #GESAsset, free with #g_free + */ + gchar * + ges_extractable_get_id (GESExtractable * self) +--- gstreamer-editing-services-1.6.1/ges/ges-timeline-element.c.orig 2015-11-02 12:15:07.607088800 +0300 ++++ gstreamer-editing-services-1.6.1/ges/ges-timeline-element.c 2015-11-02 12:15:18.545994800 +0300 +@@ -1259,7 +1259,7 @@ + } + + /** +- * ges_track_element_get_child_property_by_pspec: ++ * ges_timeline_element_get_child_property_by_pspec: + * @self: a #GESTrackElement + * @pspec: The #GParamSpec that specifies the property you want to get + * @value: (out): return location for the value diff --git a/mingw-w64-gst-editing-services/PKGBUILD b/mingw-w64-gst-editing-services/PKGBUILD index c21851b236..a26feb234f 100644 --- a/mingw-w64-gst-editing-services/PKGBUILD +++ b/mingw-w64-gst-editing-services/PKGBUILD @@ -4,7 +4,7 @@ _srcname=gstreamer-editing-services _realname=gst-editing-services pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 pkgdesc="GStreamer Editing Services (mingw-w64)" arch=('any') @@ -19,13 +19,15 @@ depends=("${MINGW_PACKAGE_PREFIX}-gst-plugins-base" options=(!libtool strip staticlibs) source=(http://gstreamer.freedesktop.org/src/${_realname}/${_srcname}-${pkgver}.tar.xz 0002-add-cflags-for-gir.patch - ) -md5sums=('fd4071d6f2fdd0c302f579b3180115c1' - '650a069277d5b0e85f8be15948e2d03a') + 0003-fix-introspection-syntax.patch) +md5sums=('2e2041ef576d702014f7f6064ac75d31' + '650a069277d5b0e85f8be15948e2d03a' + 'e9802c5b161902615a49094175e31cc9') prepare() { cd ${_srcname}-${pkgver} patch -p1 -i ${srcdir}/0002-add-cflags-for-gir.patch + patch -p1 -i ${srcdir}/0003-fix-introspection-syntax.patch autoreconf -fiv #NOCONFIGURE=1 ./autogen.sh diff --git a/mingw-w64-gst-libav/PKGBUILD b/mingw-w64-gst-libav/PKGBUILD index 42e95a718e..f75ba38d77 100644 --- a/mingw-w64-gst-libav/PKGBUILD +++ b/mingw-w64-gst-libav/PKGBUILD @@ -3,7 +3,7 @@ _realname=gst-libav pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 pkgdesc="GStreamer libav (mingw-w64)" arch=('any') @@ -19,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-gstreamer") options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz) -md5sums=('eda67328be0878bb73449c29ca55baf8') +md5sums=('058b22411e1690eee5b71d1ab44eab25') prepare() { cd ${srcdir}/${_realname}-${pkgver} diff --git a/mingw-w64-gst-plugins-bad/0006-fix-name-conflict-with-openssl-and-win32.patch b/mingw-w64-gst-plugins-bad/0006-fix-name-conflict-with-openssl-and-win32.patch deleted file mode 100644 index 670f216b59..0000000000 --- a/mingw-w64-gst-plugins-bad/0006-fix-name-conflict-with-openssl-and-win32.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0d3ca6391ce3c85934df0494f1588d4747fa555f Mon Sep 17 00:00:00 2001 -From: Paul Arzelier -Date: Wed, 14 Oct 2015 22:51:29 +0200 -Subject: dtls: Fix name conflict with openssl on win32 - -https://bugzilla.gnome.org/show_bug.cgi?id=756592 - -diff --git a/ext/dtls/gstdtlscertificate.c b/ext/dtls/gstdtlscertificate.c -index e37494f..95fbb83 100644 ---- a/ext/dtls/gstdtlscertificate.c -+++ b/ext/dtls/gstdtlscertificate.c -@@ -38,6 +38,13 @@ - # define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER - #endif - -+#ifdef G_OS_WIN32 -+#include -+#ifdef X509_NAME -+#undef X509_NAME -+#endif -+#endif -+ - #include - - GST_DEBUG_CATEGORY_STATIC (gst_dtls_certificate_debug); --- -cgit v0.10.2 diff --git a/mingw-w64-gst-plugins-bad/1.txt b/mingw-w64-gst-plugins-bad/1.txt new file mode 100644 index 0000000000..ff3221becf --- /dev/null +++ b/mingw-w64-gst-plugins-bad/1.txt @@ -0,0 +1,34 @@ +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1482:typedef struct __GLsync *GLsync; +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1591:typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1592:typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1593:typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1594:typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1595:typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1597:typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1611:GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1612:GLAPI GLboolean APIENTRY glIsSync (GLsync sync); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1613:GLAPI void APIENTRY glDeleteSync (GLsync sync); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1614:GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1615:GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:1617:GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:2957:typedef GLsync (APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glcorearb.h:2959:GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1369:typedef struct __GLsync *GLsync; +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1478:typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1479:typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1480:typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1481:typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1482:typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1484:typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1498:GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1499:GLAPI GLboolean APIENTRY glIsSync (GLsync sync); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1500:GLAPI void APIENTRY glDeleteSync (GLsync sync); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1501:GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1502:GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:1504:GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:2929:typedef GLsync (APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:2931:GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:8456:typedef GLsync (APIENTRYP PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:8458:GLAPI GLsync APIENTRY glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:8640:typedef void (APIENTRYP PFNGLSYNCTEXTUREINTELPROC) (GLuint texture); +C:/building/msys64/mingw64/x86_64-w64-mingw32/include/GL/glext.h:8644:GLAPI void APIENTRY glSyncTextureINTEL (GLuint texture); diff --git a/mingw-w64-gst-plugins-bad/PKGBUILD b/mingw-w64-gst-plugins-bad/PKGBUILD index 7c1a0eafe1..1a1184092d 100644 --- a/mingw-w64-gst-plugins-bad/PKGBUILD +++ b/mingw-w64-gst-plugins-bad/PKGBUILD @@ -3,7 +3,7 @@ _realname=gst-plugins-bad pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 pkgdesc="GStreamer Multimedia Framework Bad Plugins (mingw-w64)" arch=('any') @@ -52,18 +52,15 @@ depends=( options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz 0002-better-openjpeg2-checking.all.patch - 0004-port-to-openjpeg-2.1.all.patch - 0006-fix-name-conflict-with-openssl-and-win32.patch) -md5sums=('111632f8d1d1ba39bbf3665aaafcb28c' + 0004-port-to-openjpeg-2.1.all.patch) +md5sums=('c92d7d32de68e7293712bf9b6c99dc77' '4545ec337afbd4d211d4b088b01ed77e' - 'c269630a0a08f750da9db84df1c82c49' - '559d0ee895f5072b1b6cfc28d5ccd943') + 'c269630a0a08f750da9db84df1c82c49') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0002-better-openjpeg2-checking.all.patch patch -p1 -i ${srcdir}/0004-port-to-openjpeg-2.1.all.patch - patch -p1 -i ${srcdir}/0006-fix-name-conflict-with-openssl-and-win32.patch NOCONFIGURE=1 ./autogen.sh } diff --git a/mingw-w64-gst-plugins-base/PKGBUILD b/mingw-w64-gst-plugins-base/PKGBUILD index fdbc845528..092ebd7a33 100644 --- a/mingw-w64-gst-plugins-base/PKGBUILD +++ b/mingw-w64-gst-plugins-base/PKGBUILD @@ -3,7 +3,7 @@ _realname=gst-plugins-base pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 pkgdesc="GStreamer Multimedia Framework Base Plugins (mingw-w64)" arch=('any') @@ -27,7 +27,7 @@ options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz 0002-fix-test-running.mingw.patch 0006-disable-sse-detection.mingw.patch) -md5sums=('3c223f1d2716e1861ba84287ea02b164' +md5sums=('a89933afbe45d8f8c92d89c2f1199ecb' '006091acfeedd194fa804ea36958ea3c' 'ee35e5a95bdcb9e7f7f5a8848dd6dc4c') diff --git a/mingw-w64-gst-plugins-good/PKGBUILD b/mingw-w64-gst-plugins-good/PKGBUILD index bfa5c7dbe6..16a60833d6 100644 --- a/mingw-w64-gst-plugins-good/PKGBUILD +++ b/mingw-w64-gst-plugins-good/PKGBUILD @@ -3,7 +3,7 @@ _realname=gst-plugins-good pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 pkgdesc="GStreamer Multimedia Framework Base Plugins (mingw-w64)" arch=('any') @@ -29,7 +29,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cairo" options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz 0002-fix-test-running.mingw.patch) -md5sums=('a28d0d46c929f0064432d2fd94c12ef1' +md5sums=('a930f5ff133f17baf39d2876628b7890' 'b4ff5991217a2544fa84aae471057299') prepare() { diff --git a/mingw-w64-gst-plugins-ugly/PKGBUILD b/mingw-w64-gst-plugins-ugly/PKGBUILD index d6862a184c..2b5bd3c521 100644 --- a/mingw-w64-gst-plugins-ugly/PKGBUILD +++ b/mingw-w64-gst-plugins-ugly/PKGBUILD @@ -3,7 +3,7 @@ _realname=gst-plugins-ugly pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 pkgdesc="GStreamer Multimedia Framework Ugly Plugins (mingw-w64)" arch=('any') @@ -27,7 +27,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-a52dec" ) options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz) -md5sums=('7df6ab044d7754c1087375ce5f770be8') +md5sums=('2c20faa2406afb840699e97e913d8fb4') prepare() { cd ${srcdir}/${_realname}-${pkgver} diff --git a/mingw-w64-gst-python/PKGBUILD b/mingw-w64-gst-python/PKGBUILD index 9c1d051264..3fda401759 100644 --- a/mingw-w64-gst-python/PKGBUILD +++ b/mingw-w64-gst-python/PKGBUILD @@ -4,7 +4,7 @@ _realname=gst-python pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 pkgdesc="GStreamer GObject Introspection overrides for Python 3 (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ source=(http://gstreamer.freedesktop.org/src/gst-python/${_realname}-${pkgver}.t '0002-msys2-fix-linking-errors.patch' '0004-add-overrides.patch' '0005-unix-override-dir.patch') -md5sums=('498792e9e1b61a90de1e28cf04e88a9e' +md5sums=('edcaf18228e3289edb8b79c684a49731' 'eb52a3ef8270c2d263c79799bcaf377a' '459fd4024782338dfb2348b22f92e9bf' '9241cc5807a4ef87548b6d5405141bf1' diff --git a/mingw-w64-gstreamer/PKGBUILD b/mingw-w64-gstreamer/PKGBUILD index c9d7e3ab27..1fa51f8bb5 100644 --- a/mingw-w64-gstreamer/PKGBUILD +++ b/mingw-w64-gstreamer/PKGBUILD @@ -3,7 +3,7 @@ _realname=gstreamer pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 pkgdesc="GStreamer Multimedia Framework (mingw-w64)" arch=('any') @@ -24,7 +24,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gsl") options=(!libtool strip staticlibs) source=("${url}/src/gstreamer/gstreamer-${pkgver}.tar.xz") -md5sums=('201c15ac4b956833f7f6774485433969') +md5sums=('e72e2dc2ee06bfc045bb6010c89de520') prepare() { cd ${srcdir}/${_realname}-${pkgver} From 4419153e4f6b5af90ce1925399bba58188412a03 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 2 Nov 2015 12:03:29 +0100 Subject: [PATCH 1807/2060] evince: updated to 3.18.1. --- mingw-w64-evince/PKGBUILD | 6 +++--- mingw-w64-evince/evince-i686.install | 1 + mingw-w64-evince/evince-x86_64.install | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index 480ef06fe6..f92c0eaea3 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -3,8 +3,8 @@ _realname=evince pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.18.0 -pkgrel=2 +pkgver=3.18.1 +pkgrel=1 arch=('any') pkgdesc="Document (PostScript, PDF) viewer (mingw-w64)" license=("GPL 2") @@ -34,7 +34,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" install=evince-${CARCH}.install source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 0002-missing-include.patch) -sha256sums=('96e8351f6a6fc5823bb8f51178cde1182bd66481af6fb09bf58a18b673cafa70' +sha256sums=('7b5023765e6d6fb98da582fe3adc4f268f87b2f35110634e12cdac40f7aa8c31' 'd2850c4bdfa87fa56bae2674d2c798f9181bfb3f19319fbc9966672caae48237') prepare() { diff --git a/mingw-w64-evince/evince-i686.install b/mingw-w64-evince/evince-i686.install index fcc957e480..9a4b51f80c 100644 --- a/mingw-w64-evince/evince-i686.install +++ b/mingw-w64-evince/evince-i686.install @@ -1,5 +1,6 @@ post_install() { mingw32/bin/glib-compile-schemas mingw32/share/glib-2.0/schemas + mingw32/bin/gtk-update-icon-cache-3.0 -f -t /mingw32/share/icons/hicolor } post_upgrade() { diff --git a/mingw-w64-evince/evince-x86_64.install b/mingw-w64-evince/evince-x86_64.install index 6bcf50799c..db00db485e 100644 --- a/mingw-w64-evince/evince-x86_64.install +++ b/mingw-w64-evince/evince-x86_64.install @@ -1,5 +1,6 @@ post_install() { mingw64/bin/glib-compile-schemas mingw64/share/glib-2.0/schemas + mingw64/bin/gtk-update-icon-cache-3.0 -f -t /mingw64/share/icons/hicolor } post_upgrade() { From f46084d1ba77c355f6a5d70c3cf8fcccae145132 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 2 Nov 2015 12:14:35 +0100 Subject: [PATCH 1808/2060] libgweather: updated to 3.18.1. --- mingw-w64-libgweather/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgweather/PKGBUILD b/mingw-w64-libgweather/PKGBUILD index e08392b557..2f9a070942 100644 --- a/mingw-w64-libgweather/PKGBUILD +++ b/mingw-w64-libgweather/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgweather pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.18.0 +pkgver=3.18.1 pkgrel=1 arch=('any') pkgdesc="GWeather shared library (mingw-w64)" @@ -25,7 +25,7 @@ install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch 002-relocation.patch) -sha256sums=('8f4fda67f48c776f2bf955d384de4cc842aacb8d9b2ad87b42d83d0dc5a1cb1f' +sha256sums=('94b2292f8f7616e2aa81b1516befd7b27682b20acecbd5d656b6954990ca7ad0' '090eb5c8306737a20850f0a52ab57a70d3cd9afcf55649d3bd4a2c0dc2236484' 'b84ead0a59db1d315e7de7bea76a162e69fa43242bc5480e6149271304991381') From 58235254e73822733fa9b21ddad853977da5ba7a Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 2 Nov 2015 12:28:03 +0100 Subject: [PATCH 1809/2060] gtksourceview3: updated to 3.18.1. --- mingw-w64-gtksourceview3/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gtksourceview3/PKGBUILD b/mingw-w64-gtksourceview3/PKGBUILD index c2c706b9c6..40f2ac74fd 100644 --- a/mingw-w64-gtksourceview3/PKGBUILD +++ b/mingw-w64-gtksourceview3/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtksourceview pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.18.0 +pkgver=3.18.1 pkgrel=1 pkgdesc="A text widget adding syntax highlighting and more to GNOME (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gtk3" options=(!libtool strip staticlibs) source=("http://ftp.gnome.org/pub/gnome/sources/gtksourceview/${pkgver%.*}/gtksourceview-${pkgver}.tar.xz" 0006-hack-convert-path-back-to-unix.patch) -md5sums=('8e99579d6a8b2fdae45b557f40df0176' +md5sums=('b7600b6cc06ec96ce1d028bf7a44d14b' '324c9e3bb2e4fa2a4977653ce6ed6ef9') prepare() { From 8020975fa5ee968a96387b9f04170663f1261adb Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 2 Nov 2015 18:28:02 +0000 Subject: [PATCH 1810/2060] gst-plugins-bad: Build fixes for tests/examples --- .../0005-Include-glext-h.patch | 22 +++++ .../0006-No-X11-on-_WIN32.patch | 22 +++++ mingw-w64-gst-plugins-bad/PKGBUILD | 94 ++++++++++--------- 3 files changed, 93 insertions(+), 45 deletions(-) create mode 100644 mingw-w64-gst-plugins-bad/0005-Include-glext-h.patch create mode 100644 mingw-w64-gst-plugins-bad/0006-No-X11-on-_WIN32.patch diff --git a/mingw-w64-gst-plugins-bad/0005-Include-glext-h.patch b/mingw-w64-gst-plugins-bad/0005-Include-glext-h.patch new file mode 100644 index 0000000000..51ab258335 --- /dev/null +++ b/mingw-w64-gst-plugins-bad/0005-Include-glext-h.patch @@ -0,0 +1,22 @@ +diff -urN gst-plugins-bad-1.6.1.orig/tests/examples/gl/sdl/sdlshare.c gst-plugins-bad-1.6.1/tests/examples/gl/sdl/sdlshare.c +--- gst-plugins-bad-1.6.1.orig/tests/examples/gl/sdl/sdlshare.c 2015-11-02 18:28:09.641044400 +0000 ++++ gst-plugins-bad-1.6.1/tests/examples/gl/sdl/sdlshare.c 2015-11-02 18:28:12.358449300 +0000 +@@ -26,6 +26,7 @@ + #endif + + #include ++#include + #include "SDL/SDL.h" + #include "SDL/SDL_opengl.h" + +diff -urN gst-plugins-bad-1.6.1.orig/tests/examples/gl/sdl/sdlshare2.c gst-plugins-bad-1.6.1/tests/examples/gl/sdl/sdlshare2.c +--- gst-plugins-bad-1.6.1.orig/tests/examples/gl/sdl/sdlshare2.c 2015-11-02 18:28:09.641044400 +0000 ++++ gst-plugins-bad-1.6.1/tests/examples/gl/sdl/sdlshare2.c 2015-11-02 18:28:12.358449300 +0000 +@@ -26,6 +26,7 @@ + #endif + + #include ++#include + #include "SDL/SDL.h" + #include "SDL/SDL_opengl.h" + diff --git a/mingw-w64-gst-plugins-bad/0006-No-X11-on-_WIN32.patch b/mingw-w64-gst-plugins-bad/0006-No-X11-on-_WIN32.patch new file mode 100644 index 0000000000..eb16edcda1 --- /dev/null +++ b/mingw-w64-gst-plugins-bad/0006-No-X11-on-_WIN32.patch @@ -0,0 +1,22 @@ +--- gst-plugins-bad-1.6.1/tests/examples/gl/gtk/3dvideo/main.cpp.orig 2015-10-22 09:04:08.000000000 +0100 ++++ gst-plugins-bad-1.6.1/tests/examples/gl/gtk/3dvideo/main.cpp 2015-11-02 18:30:09.348270600 +0000 +@@ -23,7 +23,9 @@ + #endif + + #include ++#if !defined(_WIN32) + #include ++#endif + + #include + #include +@@ -259,7 +261,9 @@ + GtkWidget *area, *combo, *w; + const gchar *uri; + ++#if !defined(_WIN32) + XInitThreads (); ++#endif + + gst_init (&argc, &argv); + gtk_init (&argc, &argv); diff --git a/mingw-w64-gst-plugins-bad/PKGBUILD b/mingw-w64-gst-plugins-bad/PKGBUILD index 1a1184092d..e9a192851b 100644 --- a/mingw-w64-gst-plugins-bad/PKGBUILD +++ b/mingw-w64-gst-plugins-bad/PKGBUILD @@ -1,66 +1,70 @@ # Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly _realname=gst-plugins-bad pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.1 -pkgrel=1 +pkgrel=2 pkgdesc="GStreamer Multimedia Framework Bad Plugins (mingw-w64)" arch=('any') url="http://gstreamer.freedesktop.org/" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-pkg-config" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - ) -depends=( - "${MINGW_PACKAGE_PREFIX}-celt" - "${MINGW_PACKAGE_PREFIX}-chromaprint" - "${MINGW_PACKAGE_PREFIX}-clutter" - "${MINGW_PACKAGE_PREFIX}-curl" - "${MINGW_PACKAGE_PREFIX}-daala" - "${MINGW_PACKAGE_PREFIX}-faad2" - "${MINGW_PACKAGE_PREFIX}-faac" - "${MINGW_PACKAGE_PREFIX}-fluidsynth" - "${MINGW_PACKAGE_PREFIX}-gnutls" - "${MINGW_PACKAGE_PREFIX}-gsm" - "${MINGW_PACKAGE_PREFIX}-gst-plugins-base" - "${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-libdca" - "${MINGW_PACKAGE_PREFIX}-libdvdnav" - "${MINGW_PACKAGE_PREFIX}-libexif" - "${MINGW_PACKAGE_PREFIX}-libgme" - "${MINGW_PACKAGE_PREFIX}-libjpeg" - "${MINGW_PACKAGE_PREFIX}-libmimic" - "${MINGW_PACKAGE_PREFIX}-libmodplug" - "${MINGW_PACKAGE_PREFIX}-libmpeg2" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-librsvg" - "${MINGW_PACKAGE_PREFIX}-libwebp" - "${MINGW_PACKAGE_PREFIX}-libxml2" - "${MINGW_PACKAGE_PREFIX}-mpg123" - "${MINGW_PACKAGE_PREFIX}-nettle" - "${MINGW_PACKAGE_PREFIX}-openal" - "${MINGW_PACKAGE_PREFIX}-opencv" - "${MINGW_PACKAGE_PREFIX}-openexr" - "${MINGW_PACKAGE_PREFIX}-openjpeg2" - "${MINGW_PACKAGE_PREFIX}-opus" - "${MINGW_PACKAGE_PREFIX}-orc" - "${MINGW_PACKAGE_PREFIX}-schroedinger" - "${MINGW_PACKAGE_PREFIX}-soundtouch" - ) + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection") +depends=("${MINGW_PACKAGE_PREFIX}-celt" + "${MINGW_PACKAGE_PREFIX}-chromaprint" + "${MINGW_PACKAGE_PREFIX}-clutter" + "${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-daala" + "${MINGW_PACKAGE_PREFIX}-faad2" + "${MINGW_PACKAGE_PREFIX}-faac" + "${MINGW_PACKAGE_PREFIX}-fluidsynth" + "${MINGW_PACKAGE_PREFIX}-gnutls" + "${MINGW_PACKAGE_PREFIX}-gsm" + "${MINGW_PACKAGE_PREFIX}-gst-plugins-base" + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-libdca" + "${MINGW_PACKAGE_PREFIX}-libdvdnav" + "${MINGW_PACKAGE_PREFIX}-libexif" + "${MINGW_PACKAGE_PREFIX}-libgme" + "${MINGW_PACKAGE_PREFIX}-libjpeg" + "${MINGW_PACKAGE_PREFIX}-libmimic" + "${MINGW_PACKAGE_PREFIX}-libmodplug" + "${MINGW_PACKAGE_PREFIX}-libmpeg2" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-librsvg" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-mpg123" + "${MINGW_PACKAGE_PREFIX}-nettle" + "${MINGW_PACKAGE_PREFIX}-openal" + "${MINGW_PACKAGE_PREFIX}-opencv" + "${MINGW_PACKAGE_PREFIX}-openexr" + "${MINGW_PACKAGE_PREFIX}-openjpeg2" + "${MINGW_PACKAGE_PREFIX}-opus" + "${MINGW_PACKAGE_PREFIX}-orc" + "${MINGW_PACKAGE_PREFIX}-schroedinger" + "${MINGW_PACKAGE_PREFIX}-soundtouch") options=(!libtool strip staticlibs) source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz 0002-better-openjpeg2-checking.all.patch - 0004-port-to-openjpeg-2.1.all.patch) + 0004-port-to-openjpeg-2.1.all.patch + 0005-Include-glext-h.patch + 0006-No-X11-on-_WIN32.patch) md5sums=('c92d7d32de68e7293712bf9b6c99dc77' '4545ec337afbd4d211d4b088b01ed77e' - 'c269630a0a08f750da9db84df1c82c49') + 'c269630a0a08f750da9db84df1c82c49' + '826ddbed83cdeefa6e54b4eb5ae81841' + '62cf56b569c8f41ce6a3969ffc929226') prepare() { - cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0002-better-openjpeg2-checking.all.patch - patch -p1 -i ${srcdir}/0004-port-to-openjpeg-2.1.all.patch + cd "${srcdir}"/${_realname}-${pkgver} + patch -p1 -i "${srcdir}"/0002-better-openjpeg2-checking.all.patch + patch -p1 -i "${srcdir}"/0004-port-to-openjpeg-2.1.all.patch + patch -p1 -i "${srcdir}"/0005-Include-glext-h.patch + patch -p1 -i "${srcdir}"/0006-No-X11-on-_WIN32.patch NOCONFIGURE=1 ./autogen.sh } From 101f62606ecf2fbf5b76d6247cceb838bf288008 Mon Sep 17 00:00:00 2001 From: Zach Bacon <11doctorwhocanada@gmail.com> Date: Mon, 2 Nov 2015 14:31:37 -0500 Subject: [PATCH 1811/2060] just small changes to midori package for depends and opt depends --- mingw-w64-midori/PKGBUILD | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mingw-w64-midori/PKGBUILD b/mingw-w64-midori/PKGBUILD index edf0d44122..a8b79c5943 100644 --- a/mingw-w64-midori/PKGBUILD +++ b/mingw-w64-midori/PKGBUILD @@ -11,6 +11,17 @@ arch=('any') url='http://www.midori-browser.org/' license=('LGPL2.1') options=('debug' '!strip') +depends=("${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-webkitgtk3" + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gstreamer" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +optdepends=("${MINGW_PACKAGE_PREFIX}-gst-plugins-good: HTML5 OGG videos support" + "${MINGW_PACKAGE_PREFIX}-gst-plugins-base: HTML5 H264 and WebM videos support" + "${MINGW_PACKAGE_PREFIX}-gst-libav: HTML5 H264 videos support" + "${MINGW_PACKAGE_PREFIX}-aria2: download utility" + "${MINGW_PACKAGE_PREFIX}-drmingw: debugging support") source=("http://www.midori-browser.org/downloads/${_realname}_${pkgver}_all_.tar.bz2" "0001-ValaPrecompile-abs-path-regex-win-friendly.patch") sha1sums=('64c86935028feb5f89d799c2acacaad67764da6f' From 9c2d3f58c9790348f13f9a19fad5c04218032722 Mon Sep 17 00:00:00 2001 From: Zach Bacon <11doctorwhocanada@gmail.com> Date: Mon, 2 Nov 2015 14:31:37 -0500 Subject: [PATCH 1812/2060] just small changes to midori package for depends and opt depends --- mingw-w64-midori/PKGBUILD | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mingw-w64-midori/PKGBUILD b/mingw-w64-midori/PKGBUILD index edf0d44122..a8b79c5943 100644 --- a/mingw-w64-midori/PKGBUILD +++ b/mingw-w64-midori/PKGBUILD @@ -11,6 +11,17 @@ arch=('any') url='http://www.midori-browser.org/' license=('LGPL2.1') options=('debug' '!strip') +depends=("${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-webkitgtk3" + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-gstreamer" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +optdepends=("${MINGW_PACKAGE_PREFIX}-gst-plugins-good: HTML5 OGG videos support" + "${MINGW_PACKAGE_PREFIX}-gst-plugins-base: HTML5 H264 and WebM videos support" + "${MINGW_PACKAGE_PREFIX}-gst-libav: HTML5 H264 videos support" + "${MINGW_PACKAGE_PREFIX}-aria2: download utility" + "${MINGW_PACKAGE_PREFIX}-drmingw: debugging support") source=("http://www.midori-browser.org/downloads/${_realname}_${pkgver}_all_.tar.bz2" "0001-ValaPrecompile-abs-path-regex-win-friendly.patch") sha1sums=('64c86935028feb5f89d799c2acacaad67764da6f' From bf48d2a3b20e3fac68c0dbb37b5503b8b50e82e4 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 2 Nov 2015 23:18:28 +0000 Subject: [PATCH 1813/2060] gdb-git: New package (WIP) Uses branch=users/palves/mingw-cxx-conversion .. as requested by fracting. Marked as WIP as I've not got time to test it tonight. --- ...inGW-w64-Two-fixes-for-unusual-files.patch | 121 ++++++++++++ ...002-MinGW-w64-Fix-libiberty-makefile.patch | 57 ++++++ ...003-MinGW-w64-Fix-libibery-configure.patch | 99 ++++++++++ .../0004-MinGW-w64-Use-gnu-printf.patch | 182 ++++++++++++++++++ mingw-w64-gdb-git/0005-GDB-performance.patch | 26 +++ mingw-w64-gdb-git/PKGBUILD | 117 +++++++++++ mingw-w64-gdb-git/gdbinit | 5 + 7 files changed, 607 insertions(+) create mode 100644 mingw-w64-gdb-git/0001-MinGW-w64-Two-fixes-for-unusual-files.patch create mode 100644 mingw-w64-gdb-git/0002-MinGW-w64-Fix-libiberty-makefile.patch create mode 100644 mingw-w64-gdb-git/0003-MinGW-w64-Fix-libibery-configure.patch create mode 100644 mingw-w64-gdb-git/0004-MinGW-w64-Use-gnu-printf.patch create mode 100644 mingw-w64-gdb-git/0005-GDB-performance.patch create mode 100644 mingw-w64-gdb-git/PKGBUILD create mode 100644 mingw-w64-gdb-git/gdbinit diff --git a/mingw-w64-gdb-git/0001-MinGW-w64-Two-fixes-for-unusual-files.patch b/mingw-w64-gdb-git/0001-MinGW-w64-Two-fixes-for-unusual-files.patch new file mode 100644 index 0000000000..25f6f00f1a --- /dev/null +++ b/mingw-w64-gdb-git/0001-MinGW-w64-Two-fixes-for-unusual-files.patch @@ -0,0 +1,121 @@ +From 85062d02b4759b3b3e027e82dedc87fdf84d6c69 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 31 Oct 2015 21:39:35 +0000 +Subject: [PATCH 1/4] MinGW-w64: Two fixes for 'unusual' files. + +Handle isatty() files better. +Pretend 'nul' is '/dev/null' which is necessary for libtool. +--- + binutils/bucomm.c | 19 +++++++++++++++++-- + binutils/elfedit.c | 15 ++++++++++++++- + binutils/readelf.c | 15 ++++++++++++++- + 3 files changed, 45 insertions(+), 4 deletions(-) + +diff --git a/binutils/bucomm.c b/binutils/bucomm.c +index 4621e60..e6a20eb 100644 +--- a/binutils/bucomm.c ++++ b/binutils/bucomm.c +@@ -574,6 +574,14 @@ off_t + get_file_size (const char * file_name) + { + struct stat statbuf; ++ int f, t; ++ t = -1; ++ f = open (file_name, O_RDONLY | O_BINARY); ++ if (f != 0) ++ { ++ t = isatty (f); ++ close (f); ++ } + + if (stat (file_name, &statbuf) < 0) + { +@@ -583,8 +591,15 @@ get_file_size (const char * file_name) + non_fatal (_("Warning: could not locate '%s'. reason: %s"), + file_name, strerror (errno)); + } +- else if (! S_ISREG (statbuf.st_mode)) +- non_fatal (_("Warning: '%s' is not an ordinary file"), file_name); ++ else if (! S_ISREG (statbuf.st_mode) || t > 0) ++ { ++#ifdef _WIN32 ++ /* libtool passes /dev/null and checks for /dev/null in the output */ ++ if (stricmp (file_name, "nul") == 0) ++ file_name = "/dev/null"; ++#endif ++ non_fatal (_("Warning: '%s' is not an ordinary file"), file_name); ++ } + else if (statbuf.st_size < 0) + non_fatal (_("Warning: '%s' has negative size, probably it is too large"), + file_name); +diff --git a/binutils/elfedit.c b/binutils/elfedit.c +index 02b9c98..fb0eadf 100644 +--- a/binutils/elfedit.c ++++ b/binutils/elfedit.c +@@ -483,6 +483,14 @@ static int + check_file (const char *file_name, struct stat *statbuf_p) + { + struct stat statbuf; ++ int f, t; ++ t = -1; ++ f = open (file_name, O_RDONLY | O_BINARY); ++ if (f != 0) ++ { ++ t = isatty (f); ++ close (f); ++ } + + if (statbuf_p == NULL) + statbuf_p = &statbuf; +@@ -497,8 +505,13 @@ check_file (const char *file_name, struct stat *statbuf_p) + return 1; + } + +- if (! S_ISREG (statbuf_p->st_mode)) ++ if (! S_ISREG (statbuf_p->st_mode) || t > 0) + { ++#ifdef _WIN32 ++ /* libtool passes /dev/null and checks for /dev/null in the output */ ++ if (stricmp (file_name, "nul") == 0) ++ file_name = "/dev/null"; ++#endif + error (_("'%s' is not an ordinary file\n"), file_name); + return 1; + } +diff --git a/binutils/readelf.c b/binutils/readelf.c +index 70a84e5..229a5f5 100644 +--- a/binutils/readelf.c ++++ b/binutils/readelf.c +@@ -16523,6 +16523,14 @@ process_file (char * file_name) + struct stat statbuf; + char armag[SARMAG]; + int ret; ++ int f, t; ++ t = -1; ++ f = open (file_name, O_RDONLY | O_BINARY); ++ if (f != 0) ++ { ++ t = isatty (f); ++ close (f); ++ } + + if (stat (file_name, &statbuf) < 0) + { +@@ -16534,8 +16542,13 @@ process_file (char * file_name) + return 1; + } + +- if (! S_ISREG (statbuf.st_mode)) ++ if (! S_ISREG (statbuf.st_mode) || t > 0) + { ++#ifdef _WIN32 ++ /* libtool passes /dev/null and checks for /dev/null in the output */ ++ if (stricmp (file_name, "nul") == 0) ++ file_name = "/dev/null"; ++#endif + error (_("'%s' is not an ordinary file\n"), file_name); + return 1; + } +-- +2.6.2 + diff --git a/mingw-w64-gdb-git/0002-MinGW-w64-Fix-libiberty-makefile.patch b/mingw-w64-gdb-git/0002-MinGW-w64-Fix-libiberty-makefile.patch new file mode 100644 index 0000000000..1f62ae1139 --- /dev/null +++ b/mingw-w64-gdb-git/0002-MinGW-w64-Fix-libiberty-makefile.patch @@ -0,0 +1,57 @@ +From ed9ad8527fb28ca26279bcf77f5d78cb25e5eb05 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 31 Oct 2015 21:39:48 +0000 +Subject: [PATCH 2/4] MinGW-w64: Fix libiberty makefile + +--- + libiberty/Makefile.in | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in +index 9b87720..eddde49 100644 +--- a/libiberty/Makefile.in ++++ b/libiberty/Makefile.in +@@ -130,7 +130,7 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \ + d-demangle.c dwarfnames.c dyn-string.c \ + fdmatch.c ffs.c fibheap.c filename_cmp.c floatformat.c \ + fnmatch.c fopen_unlocked.c \ +- getcwd.c getopt.c getopt1.c getpagesize.c getpwd.c getruntime.c \ ++ getcwd.c getpagesize.c getpwd.c getruntime.c \ + gettimeofday.c \ + hashtab.c hex.c \ + index.c insque.c \ +@@ -155,8 +155,8 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \ + strtoul.c strndup.c strnlen.c strverscmp.c \ + timeval-utils.c tmpnam.c \ + unlink-if-ordinary.c \ +- vasprintf.c vfork.c vfprintf.c vprintf.c vsnprintf.c vsprintf.c \ +- waitpid.c \ ++ vasprintf.c vfprintf.c vprintf.c vsnprintf.c vsprintf.c \ ++ msdos.c \ + xatexit.c xexit.c xmalloc.c xmemdup.c xstrdup.c xstrerror.c \ + xstrndup.c + +@@ -172,7 +172,7 @@ REQUIRED_OFILES = \ + ./fdmatch.$(objext) ./fibheap.$(objext) \ + ./filename_cmp.$(objext) ./floatformat.$(objext) \ + ./fnmatch.$(objext) ./fopen_unlocked.$(objext) \ +- ./getopt.$(objext) ./getopt1.$(objext) ./getpwd.$(objext) \ ++ ./getpwd.$(objext) \ + ./getruntime.$(objext) ./hashtab.$(objext) ./hex.$(objext) \ + ./lbasename.$(objext) ./lrealpath.$(objext) \ + ./make-relative-prefix.$(objext) ./make-temp-file.$(objext) \ +@@ -221,9 +221,9 @@ CONFIGURED_OFILES = ./asprintf.$(objext) ./atexit.$(objext) \ + ./strrchr.$(objext) ./strstr.$(objext) ./strtod.$(objext) \ + ./strtol.$(objext) ./strtoul.$(objext) ./strverscmp.$(objext) \ + ./tmpnam.$(objext) \ +- ./vasprintf.$(objext) ./vfork.$(objext) ./vfprintf.$(objext) \ ++ ./vasprintf.$(objext) ./vfprintf.$(objext) \ + ./vprintf.$(objext) ./vsnprintf.$(objext) ./vsprintf.$(objext) \ +- ./waitpid.$(objext) ++ ./msdos.$(objext) + + # These files are installed if the library has been configured to do so. + INSTALLED_HEADERS = \ +-- +2.6.2 + diff --git a/mingw-w64-gdb-git/0003-MinGW-w64-Fix-libibery-configure.patch b/mingw-w64-gdb-git/0003-MinGW-w64-Fix-libibery-configure.patch new file mode 100644 index 0000000000..0bd5e19ca9 --- /dev/null +++ b/mingw-w64-gdb-git/0003-MinGW-w64-Fix-libibery-configure.patch @@ -0,0 +1,99 @@ +From 36e94c3ebc68f839a97f71a13e8b917ec0351cb8 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 31 Oct 2015 21:40:03 +0000 +Subject: [PATCH 2/4] MinGW-w64: Fix libibery configure + +--- + libiberty/configure | 16 +--------------- + libiberty/configure.ac | 6 +----- + 2 files changed, 2 insertions(+), 20 deletions(-) + +diff --git a/libiberty/configure b/libiberty/configure +index d8890a1..efb376c 100755 +--- a/libiberty/configure ++++ b/libiberty/configure +@@ -5684,7 +5684,6 @@ funcs="$funcs vfprintf" + funcs="$funcs vprintf" + funcs="$funcs vsnprintf" + funcs="$funcs vsprintf" +-funcs="$funcs waitpid" + funcs="$funcs setproctitle" + + # Also in the old function.def file: alloca, vfork, getopt. +@@ -6051,13 +6050,6 @@ esac + ;; + esac + +- case " $LIBOBJS " in +- *" waitpid.$ac_objext "* ) ;; +- *) LIBOBJS="$LIBOBJS waitpid.$ac_objext" +- ;; +-esac +- +- + for f in $funcs; do + case "$f" in + asprintf | basename | bcmp | bcopy | bzero | clock | ffs | getpagesize | index | insque | mempcpy | mkstemps | random | rindex | sigsetmask | stpcpy | stpncpy | strdup | strndup | strnlen | strverscmp | vasprintf | waitpid) +@@ -6198,12 +6190,6 @@ esac + esac + + case " $LIBOBJS " in +- *" vfork.$ac_objext "* ) ;; +- *) LIBOBJS="$LIBOBJS vfork.$ac_objext" +- ;; +-esac +- +- case " $LIBOBJS " in + *" waitpid.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS waitpid.$ac_objext" + ;; +@@ -6665,7 +6651,7 @@ fi + if test $ac_cv_func_vfork_works = no; then + case " $LIBOBJS " in + *" vfork.$ac_objext "* ) ;; +- *) LIBOBJS="$LIBOBJS vfork.$ac_objext" ++ *) + ;; + esac + +diff --git a/libiberty/configure.ac b/libiberty/configure.ac +index 868be8e..05f9401 100644 +--- a/libiberty/configure.ac ++++ b/libiberty/configure.ac +@@ -381,7 +381,6 @@ funcs="$funcs vfprintf" + funcs="$funcs vprintf" + funcs="$funcs vsnprintf" + funcs="$funcs vsprintf" +-funcs="$funcs waitpid" + funcs="$funcs setproctitle" + + # Also in the old function.def file: alloca, vfork, getopt. +@@ -482,6 +481,7 @@ if test -n "${with_target_subdir}"; then + AC_LIBOBJ([insque]) + AC_LIBOBJ([mempcpy]) + AC_LIBOBJ([mkstemps]) ++ AC_LIBOBJ([msdos]) + AC_LIBOBJ([random]) + AC_LIBOBJ([rindex]) + AC_LIBOBJ([sigsetmask]) +@@ -491,7 +491,6 @@ if test -n "${with_target_subdir}"; then + AC_LIBOBJ([strnlen]) + AC_LIBOBJ([strverscmp]) + AC_LIBOBJ([vasprintf]) +- AC_LIBOBJ([waitpid]) + + for f in $funcs; do + case "$f" in +@@ -639,9 +638,6 @@ if test -z "${setobjs}"; then + AC_REPLACE_FUNCS($funcs) + libiberty_AC_FUNC_C_ALLOCA + AC_FUNC_FORK +- if test $ac_cv_func_vfork_works = no; then +- AC_LIBOBJ([vfork]) +- fi + # We only need _doprnt if we might use it to implement v*printf. + if test $ac_cv_func_vprintf != yes \ + || test $ac_cv_func_vfprintf != yes \ +-- +2.6.2 + diff --git a/mingw-w64-gdb-git/0004-MinGW-w64-Use-gnu-printf.patch b/mingw-w64-gdb-git/0004-MinGW-w64-Use-gnu-printf.patch new file mode 100644 index 0000000000..e6dc521503 --- /dev/null +++ b/mingw-w64-gdb-git/0004-MinGW-w64-Use-gnu-printf.patch @@ -0,0 +1,182 @@ +From 46d752aca5e7987b1668c75a3e2726506e8efd8b Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 31 Oct 2015 21:40:15 +0000 +Subject: [PATCH 3/4] MinGW-w64: Use gnu-printf + +--- + bfd/bfd-in.h | 2 +- + bfd/bfd-in2.h | 2 +- + binutils/nm.c | 4 ++-- + binutils/prdbg.c | 2 +- + binutils/readelf.c | 4 ++-- + gas/as.h | 4 ++-- + gas/read.c | 2 +- + gold/configure | 2 +- + gold/configure.ac | 2 +- + include/ansidecl.h | 4 ++-- + 10 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h +index 9e40df5..4c84467 100644 +--- a/bfd/bfd-in.h ++++ b/bfd/bfd-in.h +@@ -137,7 +137,7 @@ typedef BFD_HOST_U_64_BIT symvalue; + + #if BFD_HOST_64BIT_LONG + #define BFD_VMA_FMT "l" +-#elif defined (__MSVCRT__) ++#elif defined(__MSVCRT__) && !defined( __USE_MINGW_ANSI_STDIO) + #define BFD_VMA_FMT "I64" + #else + #define BFD_VMA_FMT "ll" +diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h +index e2e247d..57ee655 100644 +--- a/bfd/bfd-in2.h ++++ b/bfd/bfd-in2.h +@@ -144,7 +144,7 @@ typedef BFD_HOST_U_64_BIT symvalue; + + #if BFD_HOST_64BIT_LONG + #define BFD_VMA_FMT "l" +-#elif defined (__MSVCRT__) ++#elif defined (__MSVCRT__) && !defined(__USE_MINGW_ANSI_STDIO) + #define BFD_VMA_FMT "I64" + #else + #define BFD_VMA_FMT "ll" +diff --git a/binutils/nm.c b/binutils/nm.c +index ad6e70d..8256791 100644 +--- a/binutils/nm.c ++++ b/binutils/nm.c +@@ -162,7 +162,7 @@ static char value_format_32bit[] = "%08lx"; + #if BFD_HOST_64BIT_LONG + static char value_format_64bit[] = "%016lx"; + #elif BFD_HOST_64BIT_LONG_LONG +-#ifndef __MSVCRT__ ++#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) + static char value_format_64bit[] = "%016llx"; + #else + static char value_format_64bit[] = "%016I64x"; +@@ -292,7 +292,7 @@ set_print_radix (char *radix) + #if BFD_HOST_64BIT_LONG + value_format_64bit[5] = *radix; + #elif BFD_HOST_64BIT_LONG_LONG +-#ifndef __MSVCRT__ ++#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) + value_format_64bit[6] = *radix; + #else + value_format_64bit[7] = *radix; +diff --git a/binutils/prdbg.c b/binutils/prdbg.c +index 6e2b217..7550620 100644 +--- a/binutils/prdbg.c ++++ b/binutils/prdbg.c +@@ -502,7 +502,7 @@ print_vma (bfd_vma vma, char *buf, bfd_boolean unsignedp, bfd_boolean hexp) + #if BFD_HOST_64BIT_LONG_LONG + else if (sizeof (vma) <= sizeof (unsigned long long)) + { +-#ifndef __MSVCRT__ ++#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) + if (hexp) + sprintf (buf, "0x%llx", (unsigned long long) vma); + else if (unsignedp) +diff --git a/binutils/readelf.c b/binutils/readelf.c +index 229a5f5..017f887 100644 +--- a/binutils/readelf.c ++++ b/binutils/readelf.c +@@ -1150,7 +1150,7 @@ dump_relocations (FILE * file, + : "%12.12lx %12.12lx ", + offset, inf); + #elif BFD_HOST_64BIT_LONG_LONG +-#ifndef __MSVCRT__ ++#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) + printf (do_wide + ? "%16.16llx %16.16llx " + : "%12.12llx %12.12llx ", +@@ -12204,7 +12204,7 @@ dump_section_as_strings (Elf_Internal_Shdr * section, FILE * file) + { + size_t maxlen = end - data; + +-#ifndef __MSVCRT__ ++#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) + /* PR 11128: Use two separate invocations in order to work + around bugs in the Solaris 8 implementation of printf. */ + printf (" [%6tx] ", data - start); +diff --git a/gas/as.h b/gas/as.h +index 635b2c5..741ac19 100644 +--- a/gas/as.h ++++ b/gas/as.h +@@ -451,10 +451,10 @@ typedef struct _pseudo_type pseudo_typeS; + + #define PRINTF_LIKE(FCN) \ + void FCN (const char *format, ...) \ +- __attribute__ ((__format__ (__printf__, 1, 2))) ++ __attribute__ ((__format__ (gnu_printf, 1, 2))) + #define PRINTF_WHERE_LIKE(FCN) \ + void FCN (char *file, unsigned int line, const char *format, ...) \ +- __attribute__ ((__format__ (__printf__, 3, 4))) ++ __attribute__ ((__format__ (gnu_printf, 3, 4))) + + #else /* __GNUC__ < 2 || defined(VMS) */ + +diff --git a/gas/read.c b/gas/read.c +index 53440de..5f993a6 100644 +--- a/gas/read.c ++++ b/gas/read.c +@@ -4352,7 +4352,7 @@ emit_expr_with_reloc (expressionS *exp, + || (get & hibit) == 0)) + { /* Leading bits contain both 0s & 1s. */ + #if defined (BFD64) && BFD_HOST_64BIT_LONG_LONG +-#ifndef __MSVCRT__ ++#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) + as_warn (_("value 0x%llx truncated to 0x%llx"), + (unsigned long long) get, (unsigned long long) use); + #else +diff --git a/gold/configure b/gold/configure +index 987a846..0e15f73 100755 +--- a/gold/configure ++++ b/gold/configure +@@ -7489,7 +7489,7 @@ else + /* end confdefs.h. */ + + template extern void foo(const char*, ...) +- __attribute__ ((__format__ (__printf__, 1, 2))); ++ __attribute__ ((__format__ (gnu_printf, 1, 2))); + template void foo(const char* format, ...) {} + void bar() { foo("%s\n", "foo"); } + +diff --git a/gold/configure.ac b/gold/configure.ac +index 89f6c53..2f87621 100644 +--- a/gold/configure.ac ++++ b/gold/configure.ac +@@ -616,7 +616,7 @@ AC_CACHE_CHECK([whether we can use attributes with template functions], + [gold_cv_template_attribute], + [AC_COMPILE_IFELSE([ + template extern void foo(const char*, ...) +- __attribute__ ((__format__ (__printf__, 1, 2))); ++ __attribute__ ((__format__ (gnu_printf, 1, 2))); + template void foo(const char* format, ...) {} + void bar() { foo("%s\n", "foo"); } + ], [gold_cv_template_attribute=yes], [gold_cv_template_attribute=no])]) +diff --git a/include/ansidecl.h b/include/ansidecl.h +index 6e4bfc2..ae7e9ab 100644 +--- a/include/ansidecl.h ++++ b/include/ansidecl.h +@@ -195,7 +195,7 @@ So instead we use the macro below and test it against specific values. */ + before GCC 3.3, but as of 3.3 we need to add the `nonnull' + attribute to retain this behavior. */ + #ifndef ATTRIBUTE_PRINTF +-#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m) ++#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (gnu_printf, m, n))) ATTRIBUTE_NONNULL(m) + #define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2) + #define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3) + #define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4) +@@ -223,7 +223,7 @@ So instead we use the macro below and test it against specific values. */ + NULL format specifier was allowed as of gcc 3.3. */ + #ifndef ATTRIBUTE_NULL_PRINTF + # if (GCC_VERSION >= 3003) +-# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ++# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (gnu_printf, m, n))) + # else + # define ATTRIBUTE_NULL_PRINTF(m, n) + # endif /* GNUC >= 3.3 */ +-- +2.6.2 + diff --git a/mingw-w64-gdb-git/0005-GDB-performance.patch b/mingw-w64-gdb-git/0005-GDB-performance.patch new file mode 100644 index 0000000000..5521218fff --- /dev/null +++ b/mingw-w64-gdb-git/0005-GDB-performance.patch @@ -0,0 +1,26 @@ +From fb7c98b413fd7020413bd0b280fa05e7bf5ae3a9 Mon Sep 17 00:00:00 2001 +From: dje/asmwarrior +Date: Mon, 2 Nov 2015 22:25:33 +0000 +Subject: [PATCH] GDB performance + +http://sourceware.org/bugzilla/show_bug.cgi?id=15412 +--- + gdb/typeprint.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gdb/typeprint.c b/gdb/typeprint.c +index 377223a..e919112 100644 +--- a/gdb/typeprint.c ++++ b/gdb/typeprint.c +@@ -59,7 +59,7 @@ const struct type_print_options type_print_raw_options = + + static struct type_print_options default_ptype_flags = + { +- 0, /* raw */ ++ 1, /* raw */ + 1, /* print_methods */ + 1, /* print_typedefs */ + NULL, /* local_typedefs */ +-- +2.6.2 + diff --git a/mingw-w64-gdb-git/PKGBUILD b/mingw-w64-gdb-git/PKGBUILD new file mode 100644 index 0000000000..d17fcc4598 --- /dev/null +++ b/mingw-w64-gdb-git/PKGBUILD @@ -0,0 +1,117 @@ +# Maintainer: Ray Donnelly +# Contributor: Alexey Pavlov + +_realname=gdb +_gcc_ver=5.2.0 +pkgbase=mingw-w64-${_realname} +_base_ver=7.10 +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") +replaces="${MINGW_PACKAGE_PREFIX}-${_realname}=${_base_ver}" +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=7.10.r85475.f5cc5a5 +pkgrel=1 +pkgdesc="GNU Debugger (mingw-w64)" +arch=('any') +url="http://www.gnu.org/software/gdb/" +license=('GPL') +#groups=("${MINGW_PACKAGE_PREFIX}-toolchain") +depends=("${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-zlib") +#checkdepends=('dejagnu' 'bc') +makedepends=("${MINGW_PACKAGE_PREFIX}-iconv" + "${MINGW_PACKAGE_PREFIX}-ncurses" + "${MINGW_PACKAGE_PREFIX}-xz" + "git") +options=('staticlibs' '!distcc' '!ccache' 'debug' '!strip') +source=("${_realname}"::"git://sourceware.org/git/binutils-gdb.git#branch=users/palves/mingw-cxx-conversion" + gdbinit + 0001-MinGW-w64-Two-fixes-for-unusual-files.patch + 0002-MinGW-w64-Fix-libiberty-makefile.patch + 0003-MinGW-w64-Fix-libibery-configure.patch + 0004-MinGW-w64-Use-gnu-printf.patch + 0005-GDB-performance.patch) +md5sums=('SKIP' + 'be1c16674d98189a6f18dc0f5922c739' + '8f21d3c0c2d07a8e7717625fca4410ab' + '52b62ba647ee0f27d70bcfa6c7bac5b9' + '6c854b3f155f82c14048338b250d7c63' + 'f614db2fdc6c6bf06a0797f395a847bc' + '4e9d7f210eaa3c50b6bfd2f941454f4f') + +pkgver() { + cd "$srcdir/$_realname" + printf "%s.r%s.%s" "${_base_ver}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd ${srcdir}/${_realname} + git am "${srcdir}"/0001-MinGW-w64-Two-fixes-for-unusual-files.patch +# Does not apply currently; probably want to sync libiberty across from GCC. +# git am "${srcdir}"/0002-MinGW-w64-Fix-libiberty-makefile.patch + git am "${srcdir}"/0003-MinGW-w64-Fix-libibery-configure.patch + git am "${srcdir}"/0004-MinGW-w64-Use-gnu-printf.patch + git am "${srcdir}"/0005-GDB-performance.patch +} + +build() { + declare -a _extra_conf + if [ "${CARCH}" = "x86_64" ]; then + _extra_conf+=(--enable-64-bit-bfd) + else + LDFLAGS+=" -Wl,--large-address-aware" + fi + + if check_option "debug" "y"; then + CFLAGS+=" -O0" + fi + + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + + mkdir ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + ../${_realname}/configure \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --enable-targets="i686-w64-mingw32,x86_64-w64-mingw32" \ + "${_extra_conf[@]}" \ + --disable-werror \ + --disable-win32-registry \ + --disable-rpath \ + --with-system-gdbinit=${MINGW_PREFIX}/etc/gdbinit \ + --with-python=${MINGW_PREFIX}/bin/python-config-u.sh \ + --with-expat \ + --with-libiconv-prefix=${MINGW_PREFIX} \ + --with-zlib \ + --with-lzma \ + --disable-tui + + make all-gdb +} + +# check() { +# cd "${srcdir}"/build-${MINGW_CHOST} +# +# # unset LDFLAGS as testsuite makes assumptions about which ones are active +# # do not abort on errors - manually check log files +# make LDFLAGS="" -k check || true +# } + +package() { + cd "${srcdir}"/build-${MINGW_CHOST} + make DESTDIR=${pkgdir} install + + # Remove unwanted files + rm -rf ${pkgdir}${MINGW_PREFIX}/share/{man,info} + + # install "custom" system gdbinit + install -D -m644 ${srcdir}/gdbinit ${pkgdir}${MINGW_PREFIX}/etc/gdbinit + sed -i 's|%GCC_NAME%|gcc-'${_gcc_ver}'|g' ${pkgdir}${MINGW_PREFIX}/etc/gdbinit + + rm -f ${pkgdir}${MINGW_PREFIX}/include/*.h + rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.a +} diff --git a/mingw-w64-gdb-git/gdbinit b/mingw-w64-gdb-git/gdbinit new file mode 100644 index 0000000000..cf2f8b7847 --- /dev/null +++ b/mingw-w64-gdb-git/gdbinit @@ -0,0 +1,5 @@ +python +import sys +sys.path.insert(0, sys.path[0] + '/../../%GCC_NAME%/python') +from libstdcxx.v6.printers import register_libstdcxx_printers +end From 134a759dab1571929eed7e0d2fbd4b21f3981772 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 3 Nov 2015 00:43:13 +0000 Subject: [PATCH 1814/2060] gdb-git: Fix installation --- mingw-w64-gdb-git/PKGBUILD | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mingw-w64-gdb-git/PKGBUILD b/mingw-w64-gdb-git/PKGBUILD index d17fcc4598..9c4efed4f4 100644 --- a/mingw-w64-gdb-git/PKGBUILD +++ b/mingw-w64-gdb-git/PKGBUILD @@ -103,7 +103,7 @@ build() { package() { cd "${srcdir}"/build-${MINGW_CHOST} - make DESTDIR=${pkgdir} install + make DESTDIR=${pkgdir} install-gdb # Remove unwanted files rm -rf ${pkgdir}${MINGW_PREFIX}/share/{man,info} @@ -111,7 +111,4 @@ package() { # install "custom" system gdbinit install -D -m644 ${srcdir}/gdbinit ${pkgdir}${MINGW_PREFIX}/etc/gdbinit sed -i 's|%GCC_NAME%|gcc-'${_gcc_ver}'|g' ${pkgdir}${MINGW_PREFIX}/etc/gdbinit - - rm -f ${pkgdir}${MINGW_PREFIX}/include/*.h - rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.a } From 170fbc3e72dd475352342bc428912df80e6f24be Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 09:04:09 +0300 Subject: [PATCH 1815/2060] SDL: Rebuild --- mingw-w64-SDL/PKGBUILD | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mingw-w64-SDL/PKGBUILD b/mingw-w64-SDL/PKGBUILD index fa47ccb968..2d842884d3 100644 --- a/mingw-w64-SDL/PKGBUILD +++ b/mingw-w64-SDL/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=SDL +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2.15 -pkgrel=6 +pkgrel=7 pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (mingw-w64)" arch=('any') url="http://libsdl.org" @@ -11,7 +12,7 @@ license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv") options=('staticlibs' 'strip') -source=("$url/release/SDL-$pkgver.tar.gz") +source=("${url}/release/SDL-${pkgver}.tar.gz") md5sums=('9d96df8417572a2afb781a7c4c811a85') build() { @@ -22,7 +23,9 @@ build() { --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ - --disable-assembly + --disable-assembly \ + --enable-shared \ + --enable-static make } From f673f0b5309842f3c0f50438854a7d619e8d7713 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 09:05:07 +0300 Subject: [PATCH 1816/2060] gst-plugins-bad: Comment debug flags --- mingw-w64-gst-plugins-bad/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gst-plugins-bad/PKGBUILD b/mingw-w64-gst-plugins-bad/PKGBUILD index e9a192851b..03fca0a141 100644 --- a/mingw-w64-gst-plugins-bad/PKGBUILD +++ b/mingw-w64-gst-plugins-bad/PKGBUILD @@ -72,8 +72,8 @@ build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" - CPPFLAGS+=" --save-temps" - CFLAGS+=" --save-temps" + #CPPFLAGS+=" --save-temps" + #CFLAGS+=" --save-temps" ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ From 5274759dc36c583d6966521f7e1514e28fb490df Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 09:09:23 +0300 Subject: [PATCH 1817/2060] SDL_gfx: Rebuild. --- mingw-w64-SDL_gfx/PKGBUILD | 3 ++- mingw-w64-SDL_image/PKGBUILD | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-SDL_gfx/PKGBUILD b/mingw-w64-SDL_gfx/PKGBUILD index 4f03e471b7..c7e451ff59 100644 --- a/mingw-w64-SDL_gfx/PKGBUILD +++ b/mingw-w64-SDL_gfx/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Marty Plummer (The_NetZ) _realname=SDL_gfx +pkgbase=mingw-w64-${_realname} pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=2.0.25 -pkgrel=2 +pkgrel=3 pkgdesc="SDL Graphic Primitives (mingw-w64)" arch=('any') url="http://www.ferzkopp.net/joomla/software-mainmenu-14/4-ferzkopps-linux-software/19-sdlgfx" diff --git a/mingw-w64-SDL_image/PKGBUILD b/mingw-w64-SDL_image/PKGBUILD index 29a55331a7..7d602a7730 100644 --- a/mingw-w64-SDL_image/PKGBUILD +++ b/mingw-w64-SDL_image/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Marty Plummer (The_NetZ) _realname=SDL_image +pkgbase=mingw-w64-${_realname} pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=1.2.12 pkgrel=3 -pkgdesc=("A simple library to load images of various formats as SDL surfaces (mingw-w64)") +pkgdesc="A simple library to load images of various formats as SDL surfaces (mingw-w64)" arch=('any') url="http://www.libsdl.org/projects/SDL_image" license=('MIT') From fb0fb480c644d73880b6dd877b3b522f8aff6053 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 09:20:31 +0300 Subject: [PATCH 1818/2060] SDL_ttf: Rebuild. --- mingw-w64-SDL_ttf/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-SDL_ttf/PKGBUILD b/mingw-w64-SDL_ttf/PKGBUILD index 89987f5642..27129ba533 100644 --- a/mingw-w64-SDL_ttf/PKGBUILD +++ b/mingw-w64-SDL_ttf/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=SDL_ttf +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.11 -pkgrel=3 +pkgrel=4 pkgdesc="A library that allows you to use TrueType fonts in your SDL applications (mingw-w64)" arch=('any') url="http://www.libsdl.org/projects/SDL_ttf/" From 8c5540cf69fece4c47bac29b5de4aeb7f800e4ab Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 09:20:42 +0300 Subject: [PATCH 1819/2060] SDL_net: New package. --- mingw-w64-SDL_net/PKGBUILD | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 mingw-w64-SDL_net/PKGBUILD diff --git a/mingw-w64-SDL_net/PKGBUILD b/mingw-w64-SDL_net/PKGBUILD new file mode 100644 index 0000000000..ede3dabb94 --- /dev/null +++ b/mingw-w64-SDL_net/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Alexey Pavlov + +_realname=SDL_net +pkgbase=mingw-w64-${_realname} +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgver=1.2.8 +pkgrel=1 +pkgdesc="A small sample cross-platform networking library (mingw-w64)" +arch=('any') +url="http://www.libsdl.org/projects/SDL_net" +license=('custom') +depends=("${MINGW_PACKAGE_PREFIX}-SDL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") +source=(http://www.libsdl.org/projects/SDL_net/release/${_realname}-${pkgver}.tar.gz) +md5sums=('20e64e61d65662db66c379034f11f718') + +build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}/" + + make DESTDIR="${pkgdir}/" install + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \ + "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From ff1661c6e3e5427a46d2230f582b63ded0080c1a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 09:59:51 +0300 Subject: [PATCH 1820/2060] openal: Generate unix-like library name. Fix loading fluidsynth library --- .../0001-versioned-w32-dll.mingw.patch | 14 +++++++++++ ...0002-w32ize-fluidsynth-loading.mingw.patch | 11 +++++++++ .../0003-openal-not-32.mingw.patch | 11 +++++++++ .../0004-disable-OSS-windows.patch | 18 +++++++++++++++ mingw-w64-openal/PKGBUILD | 23 ++++++++++++++++--- 5 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-openal/0001-versioned-w32-dll.mingw.patch create mode 100644 mingw-w64-openal/0002-w32ize-fluidsynth-loading.mingw.patch create mode 100644 mingw-w64-openal/0003-openal-not-32.mingw.patch create mode 100644 mingw-w64-openal/0004-disable-OSS-windows.patch diff --git a/mingw-w64-openal/0001-versioned-w32-dll.mingw.patch b/mingw-w64-openal/0001-versioned-w32-dll.mingw.patch new file mode 100644 index 0000000000..3087b1f52c --- /dev/null +++ b/mingw-w64-openal/0001-versioned-w32-dll.mingw.patch @@ -0,0 +1,14 @@ +--- openal-soft-1.16.0/CMakeLists.txt.orig 2015-01-18 13:05:08.929760500 +0000 ++++ openal-soft-1.16.0/CMakeLists.txt 2015-01-18 13:07:41.788171100 +0000 +@@ -1066,7 +1066,10 @@ + SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES VERSION ${LIB_VERSION} + SOVERSION ${LIB_MAJOR_VERSION}) + IF(WIN32 AND NOT LIBTYPE STREQUAL "STATIC") +- SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES PREFIX "") ++ SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES ++ OUTPUT_NAME openal ++ RUNTIME_OUTPUT_NAME openal-${LIB_MAJOR_VERSION} ++ ARCHIVE_OUTPUT_NAME openal) + + IF(MINGW AND ALSOFT_BUILD_IMPORT_LIB) + FIND_PROGRAM(SED_EXECUTABLE NAMES sed DOC "sed executable") diff --git a/mingw-w64-openal/0002-w32ize-fluidsynth-loading.mingw.patch b/mingw-w64-openal/0002-w32ize-fluidsynth-loading.mingw.patch new file mode 100644 index 0000000000..bc1f57121e --- /dev/null +++ b/mingw-w64-openal/0002-w32ize-fluidsynth-loading.mingw.patch @@ -0,0 +1,11 @@ +--- openal-soft-1.16.0/Alc/midi/fluidsynth.c.orig 2014-08-15 07:06:59.000000000 +0000 ++++ openal-soft-1.16.0/Alc/midi/fluidsynth.c 2015-01-18 13:14:18.962605800 +0000 +@@ -96,7 +96,7 @@ + ALboolean ret = AL_TRUE; + if(!fsynth_handle) + { +- fsynth_handle = LoadLib("libfluidsynth.so.1"); ++ fsynth_handle = LoadLib("libfluidsynth-1.dll"); + if(!fsynth_handle) return AL_FALSE; + + #define LOAD_FUNC(x) do { \ diff --git a/mingw-w64-openal/0003-openal-not-32.mingw.patch b/mingw-w64-openal/0003-openal-not-32.mingw.patch new file mode 100644 index 0000000000..6f4271cfdd --- /dev/null +++ b/mingw-w64-openal/0003-openal-not-32.mingw.patch @@ -0,0 +1,11 @@ +--- openal-soft-1.16.0/CMakeLists.txt.orig 2015-01-18 20:37:01.724148200 +0000 ++++ openal-soft-1.16.0/CMakeLists.txt 2015-01-18 20:38:05.120698500 +0000 +@@ -40,7 +40,7 @@ + + + IF(WIN32) +- SET(LIBNAME OpenAL32) ++ SET(LIBNAME openal) + ADD_DEFINITIONS("-D_WIN32 -D_WIN32_WINNT=0x0502") + + # This option is mainly for static linking OpenAL Soft into another project diff --git a/mingw-w64-openal/0004-disable-OSS-windows.patch b/mingw-w64-openal/0004-disable-OSS-windows.patch new file mode 100644 index 0000000000..9c96890e22 --- /dev/null +++ b/mingw-w64-openal/0004-disable-OSS-windows.patch @@ -0,0 +1,18 @@ +--- openal-soft-1.16.0/CMakeLists.txt.orig 2015-11-03 09:47:33.546783000 +0300 ++++ openal-soft-1.16.0/CMakeLists.txt 2015-11-03 09:48:28.685268600 +0300 +@@ -758,6 +758,7 @@ + + # Check OSS backend + OPTION(ALSOFT_REQUIRE_OSS "Require OSS backend" OFF) ++IF(NOT WIN32) + FIND_PACKAGE(OSS) + IF(OSS_FOUND) + OPTION(ALSOFT_BACKEND_OSS "Enable OSS backend" ON) +@@ -773,6 +774,7 @@ + IF(ALSOFT_REQUIRE_OSS AND NOT HAVE_OSS) + MESSAGE(FATAL_ERROR "Failed to enabled required OSS backend") + ENDIF() ++ENDIF() + + # Check Solaris backend + OPTION(ALSOFT_REQUIRE_SOLARIS "Require Solaris backend" OFF) diff --git a/mingw-w64-openal/PKGBUILD b/mingw-w64-openal/PKGBUILD index 0f1a70d15e..59d11d344c 100644 --- a/mingw-w64-openal/PKGBUILD +++ b/mingw-w64-openal/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=openal +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.16.0 -pkgrel=3 +pkgrel=4 pkgdesc="OpenAL audio library for use with opengl (mingw-w64)" arch=('any') url="http://kcat.strangesoft.net/openal.html" @@ -13,8 +14,24 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-fluidsynth" "${MINGW_PACKAGE_PREFIX}-portaudio") options=('strip' 'staticlibs') -source=(http://kcat.strangesoft.net/openal-releases/openal-soft-${pkgver}.tar.bz2) -md5sums=('14db4b0d12f07252070b4fe5eb5911f6') +source=(http://kcat.strangesoft.net/openal-releases/openal-soft-${pkgver}.tar.bz2 + 0001-versioned-w32-dll.mingw.patch + 0002-w32ize-fluidsynth-loading.mingw.patch + 0003-openal-not-32.mingw.patch + 0004-disable-OSS-windows.patch) +md5sums=('14db4b0d12f07252070b4fe5eb5911f6' + 'dbca6b0d267c4ac05af1971199707574' + '97f1a24464157afa4cdbccf2da68fb31' + 'de53fb57938402929fad165ab896efe1' + 'f7cdafe8ff057ce15096941b6dafa927') + +prepare() { + cd openal-soft-${pkgver} + patch -p1 -i ${srcdir}/0001-versioned-w32-dll.mingw.patch + patch -p1 -i ${srcdir}/0002-w32ize-fluidsynth-loading.mingw.patch + patch -p1 -i ${srcdir}/0003-openal-not-32.mingw.patch + patch -p1 -i ${srcdir}/0004-disable-OSS-windows.patch +} build() { export DXSDK_DIR=${MINGW_PREFIX}/${MINGW_CHOST} From ec0b3413aab62bf30d875a4ef61eb2ff7f66c2db Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 10:00:49 +0300 Subject: [PATCH 1821/2060] libmikmod: New package. --- mingw-w64-libmikmod/PKGBUILD | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mingw-w64-libmikmod/PKGBUILD diff --git a/mingw-w64-libmikmod/PKGBUILD b/mingw-w64-libmikmod/PKGBUILD new file mode 100644 index 0000000000..5dfcd0eb7c --- /dev/null +++ b/mingw-w64-libmikmod/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer: Alexey Pavlov + +_realname=libmikmod +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.3.7 +pkgrel=1 +pkgdesc="A portable sound library (mingw-w64)" +arch=('any') +url="http://mikmod.sourceforge.net" +license=("GPL" "LGPL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + #"${MINGW_PACKAGE_PREFIX}-SDL" + #"${MINGW_PACKAGE_PREFIX}-SDL2" + "${MINGW_PACKAGE_PREFIX}-openal") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +options=('strip' 'staticlibs') +source=(http://downloads.sourceforge.net/mikmod/${_realname}-${pkgver}.tar.gz) +sha256sums=('4cf41040a9af99cb960580210ba900c0a519f73ab97b503c780e82428b9bd9a2') + +build() { + export lt_cv_deplibs_check_method='pass_all' + [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-shared \ + --enable-static \ + --disable-sdl \ + --disable-sdl2 \ + --enable-openal + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + + # Install license + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING.LIB ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LIB + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING.LESSER ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING.LESSER + + local PREFIX_WIN=$(cygpath -m ${MINGW_PREFIX}) + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \ + -i ${pkgdir}${MINGW_PREFIX}/bin/libmikmod-config +} From 5fadc3712f5557b7d45a7ee21d8d9b3f3151cec9 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 10:22:50 +0300 Subject: [PATCH 1822/2060] smpeg: New package. --- mingw-w64-smpeg/PKGBUILD | 52 ++++++++++++++++++++++++++++++ mingw-w64-smpeg/no-undefined.patch | 11 +++++++ 2 files changed, 63 insertions(+) create mode 100644 mingw-w64-smpeg/PKGBUILD create mode 100644 mingw-w64-smpeg/no-undefined.patch diff --git a/mingw-w64-smpeg/PKGBUILD b/mingw-w64-smpeg/PKGBUILD new file mode 100644 index 0000000000..4c7fef03e8 --- /dev/null +++ b/mingw-w64-smpeg/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer: Alexey Pavlov + +_realname=smpeg +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.4.5 +pkgrel=1 +pkgdesc="SDL MPEG Player Library (mingw-w64)" +arch=('any') +url="http://icculus.org/smpeg/" +license=("LGPL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "subversion") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-SDL") +options=('staticlibs' 'strip') +source=("${_realname}::svn://svn.icculus.org/smpeg/tags/release_${pkgver//./_}" + no-undefined.patch) +md5sums=('SKIP' + '8e1eaecfc0b97029bfc724610fcc7c7f') + +prepare() { + cd "${srcdir}"/${_realname} + patch -p1 -i ${srcdir}/no-undefined.patch + ./autogen.sh +} + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}/" + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --mandir=${MINGW_PREFIX}/share/man \ + --enable-shared \ + --enable-static + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + + # hacky way of resolving conflicts + rm ${pkgdir}${MINGW_PREFIX}/bin/plaympeg + rm -r ${pkgdir}${MINGW_PREFIX}/share/man +} diff --git a/mingw-w64-smpeg/no-undefined.patch b/mingw-w64-smpeg/no-undefined.patch new file mode 100644 index 0000000000..15e7afe4b3 --- /dev/null +++ b/mingw-w64-smpeg/no-undefined.patch @@ -0,0 +1,11 @@ +--- smpeg/Makefile.am.orig 2015-11-03 10:14:21.774927000 +0300 ++++ smpeg/Makefile.am 2015-11-03 10:14:35.328927000 +0300 +@@ -62,7 +62,7 @@ + + libsmpeg_la_LDFLAGS = \ + -release $(LT_RELEASE) \ +- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) ++ -no-undefined -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) + + EXTRA_DIST = \ + CHANGES \ From 941b8acbadf092a9ddee98b875510fb087cd36a6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 10:23:11 +0300 Subject: [PATCH 1823/2060] SDL_mixer: New package --- mingw-w64-SDL_mixer/PKGBUILD | 70 +++++++++++++++++++++ mingw-w64-SDL_mixer/double-free-crash.patch | 31 +++++++++ mingw-w64-SDL_mixer/fluidsynth-volume.patch | 22 +++++++ mingw-w64-SDL_mixer/mikmod1.patch | 66 +++++++++++++++++++ mingw-w64-SDL_mixer/mikmod2.patch | 34 ++++++++++ 5 files changed, 223 insertions(+) create mode 100644 mingw-w64-SDL_mixer/PKGBUILD create mode 100644 mingw-w64-SDL_mixer/double-free-crash.patch create mode 100644 mingw-w64-SDL_mixer/fluidsynth-volume.patch create mode 100644 mingw-w64-SDL_mixer/mikmod1.patch create mode 100644 mingw-w64-SDL_mixer/mikmod2.patch diff --git a/mingw-w64-SDL_mixer/PKGBUILD b/mingw-w64-SDL_mixer/PKGBUILD new file mode 100644 index 0000000000..b3174cf570 --- /dev/null +++ b/mingw-w64-SDL_mixer/PKGBUILD @@ -0,0 +1,70 @@ +# Maintainer: Alexey Pavlov + +_realname=SDL_mixer +pkgbase=mingw-w64-${_realname} +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgver=1.2.12 +pkgrel=1 +pkgdesc="A simple multi-channel audio mixer (mingw-w64)" +arch=('any') +url="http://www.libsdl.org/projects/SDL_mixer/" +license=('custom') +depends=("${MINGW_PACKAGE_PREFIX}-SDL" + "${MINGW_PACKAGE_PREFIX}-libvorbis" + "${MINGW_PACKAGE_PREFIX}-libmikmod" + "${MINGW_PACKAGE_PREFIX}-smpeg" + ) +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-fluidsynth") +optdepends=("${MINGW_PACKAGE_PREFIX}-fluidsynth: MIDI software synth, replaces built-in timidity") +source=(http://www.libsdl.org/projects/SDL_mixer/release/${_realname}-${pkgver}.tar.gz + mikmod1.patch + mikmod2.patch + fluidsynth-volume.patch + double-free-crash.patch) +md5sums=('e03ff73d77a55e3572ad0217131dc4a1' + 'c335d4ff1fe86950d1fc730745c9c96d' + 'd13d98fef8ec51167a370fa7976a7a7f' + 'eceb06e3a8b31fee300d7f33478401d4' + 'b38c1b23751ca95631badeb9327d085e') +noextract=(${_realname}-${pkgver}.tar.gz) + +prepare() { + [[ -d ${srcdir}/${_realname}-${pkgver} ]] && rm -rf ${srcdir}/${_realname}-${pkgver} + tar -xzf ${srcdir}/${_realname}-${pkgver}.tar.gz -C ${srcdir} || true + + cd "${srcdir}/${_realname}-${pkgver}" + + patch -Np1 -i ${srcdir}/mikmod1.patch + patch -Np1 -i ${srcdir}/mikmod2.patch + patch -Np1 -i ${srcdir}/fluidsynth-volume.patch + patch -Np1 -i ${srcdir}/double-free-crash.patch + + #sed -e "/CONFIG_FILE_ETC/s|/etc/timidity.cfg|/etc/timidity++/timidity.cfg|" \ + # -e "/DEFAULT_PATH/s|/etc/timidity|/etc/timidity++|" \ + # -e "/DEFAULT_PATH2/s|/usr/local/lib/timidity|/usr/lib/timidity|" \ + # -i timidity/config.h +} + +build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --enable-static + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}/" + + make DESTDIR="${pkgdir}/" install + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \ + "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} diff --git a/mingw-w64-SDL_mixer/double-free-crash.patch b/mingw-w64-SDL_mixer/double-free-crash.patch new file mode 100644 index 0000000000..d1ee21147d --- /dev/null +++ b/mingw-w64-SDL_mixer/double-free-crash.patch @@ -0,0 +1,31 @@ + +# HG changeset patch +# User Sam Lantinga +# Date 1329087437 18000 +# Node ID 2d713670db9b832b0c5aa700824900bc1fc3c3cd +# Parent df72f22b4b411ad4b08f924329678aabd5ac97d6 +Fixed 1418 - crash on double free if loading WAV file failed + +diff -r df72f22b4b41 -r 2d713670db9b mixer.c +--- a/mixer.c Mon Jan 30 21:41:45 2012 -0500 ++++ b/mixer.c Sun Feb 12 17:57:17 2012 -0500 +@@ -610,13 +610,15 @@ + break; + default: + SDL_SetError("Unrecognized sound file type"); +- return(0); ++ if ( freesrc ) { ++ SDL_RWclose(src); ++ } ++ loaded = NULL; ++ break; + } + if ( !loaded ) { ++ /* The individual loaders have closed src if needed */ + SDL_free(chunk); +- if ( freesrc ) { +- SDL_RWclose(src); +- } + return(NULL); + } + diff --git a/mingw-w64-SDL_mixer/fluidsynth-volume.patch b/mingw-w64-SDL_mixer/fluidsynth-volume.patch new file mode 100644 index 0000000000..a29be70801 --- /dev/null +++ b/mingw-w64-SDL_mixer/fluidsynth-volume.patch @@ -0,0 +1,22 @@ + +# HG changeset patch +# User James Le Cuirot +# Date 1330896767 0 +# Node ID c92001a2c18f628698c58aa4e05a7335d10d0e9e +# Parent 2d713670db9b832b0c5aa700824900bc1fc3c3cd +Raise the maximum FluidSynth gain from 0.8 to 1.2 because apparently the former is too quiet in some cases. + +diff -r 2d713670db9b -r c92001a2c18f fluidsynth.c +--- a/fluidsynth.c Sun Feb 12 17:57:17 2012 -0500 ++++ b/fluidsynth.c Sun Mar 04 21:32:47 2012 +0000 +@@ -176,8 +176,8 @@ + + void fluidsynth_setvolume(FluidSynthMidiSong *song, int volume) + { +- /* FluidSynth's default is 0.2. Make 0.8 the maximum. */ +- fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 0.00625)); ++ /* FluidSynth's default is 0.2. Make 1.2 the maximum. */ ++ fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 1.2 / MIX_MAX_VOLUME)); + } + + int fluidsynth_playsome(FluidSynthMidiSong *song, void *dest, int dest_len) diff --git a/mingw-w64-SDL_mixer/mikmod1.patch b/mingw-w64-SDL_mixer/mikmod1.patch new file mode 100644 index 0000000000..21c9ea0aea --- /dev/null +++ b/mingw-w64-SDL_mixer/mikmod1.patch @@ -0,0 +1,66 @@ + +# HG changeset patch +# User Sam Lantinga +# Date 1342998807 25200 +# Node ID 56cad6484b04f83c8d42428c755a046678506436 +# Parent c92001a2c18f628698c58aa4e05a7335d10d0e9e +Paul P Komkoff Jr fixed malloc/free mismatch in the MikMod driver + +diff -r c92001a2c18f -r 56cad6484b04 CHANGES +--- a/CHANGES Sun Mar 04 21:32:47 2012 +0000 ++++ b/CHANGES Sun Jul 22 16:13:27 2012 -0700 +@@ -1,3 +1,7 @@ ++1.2.13: ++Paul P Komkoff Jr - Sun Jul 22 16:12:28 PDT 2012 ++ * Fixed malloc/free mismatch in the MikMod driver ++ + 1.2.12: + Sam Lantinga - Sat Jan 14 22:00:29 2012 -0500 + * Fixed seek offset with SMPEG (was relative, should be absolute) +diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.c +--- a/dynamic_mod.c Sun Mar 04 21:32:47 2012 +0000 ++++ b/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700 +@@ -93,6 +93,13 @@ + SDL_UnloadObject(mikmod.handle); + return -1; + } ++ mikmod.MikMod_free = ++ (void (*)(void*)) ++ SDL_LoadFunction(mikmod.handle, "MikMod_free"); ++ if ( mikmod.MikMod_free == NULL ) { ++ SDL_UnloadObject(mikmod.handle); ++ return -1; ++ } + mikmod.Player_Active = + (BOOL (*)(void)) + SDL_LoadFunction(mikmod.handle, "Player_Active"); +diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.h +--- a/dynamic_mod.h Sun Mar 04 21:32:47 2012 +0000 ++++ b/dynamic_mod.h Sun Jul 22 16:13:27 2012 -0700 +@@ -35,6 +35,7 @@ + void (*MikMod_RegisterDriver)(struct MDRIVER*); + int* MikMod_errno; + char* (*MikMod_strerror)(int); ++ void (*MikMod_free)(void*); + BOOL (*Player_Active)(void); + void (*Player_Free)(MODULE*); + MODULE* (*Player_LoadGeneric)(MREADER*,int,BOOL); +diff -r c92001a2c18f -r 56cad6484b04 music_mod.c +--- a/music_mod.c Sun Mar 04 21:32:47 2012 +0000 ++++ b/music_mod.c Sun Jul 22 16:13:27 2012 -0700 +@@ -109,13 +109,13 @@ + + list = mikmod.MikMod_InfoDriver(); + if ( list ) +- free(list); ++ mikmod.MikMod_free(list); + else + mikmod.MikMod_RegisterDriver(mikmod.drv_nos); + + list = mikmod.MikMod_InfoLoader(); + if ( list ) +- free(list); ++ mikmod.MikMod_free(list); + else + mikmod.MikMod_RegisterAllLoaders(); + diff --git a/mingw-w64-SDL_mixer/mikmod2.patch b/mingw-w64-SDL_mixer/mikmod2.patch new file mode 100644 index 0000000000..32a0d6af22 --- /dev/null +++ b/mingw-w64-SDL_mixer/mikmod2.patch @@ -0,0 +1,34 @@ + +# HG changeset patch +# User Sam Lantinga +# Date 1343000017 25200 +# Node ID 2ebb0d016f277f7f643d8a66ed0e1099e10d1fba +# Parent 56cad6484b04f83c8d42428c755a046678506436 +Fixed normal linking with libmikmod and linking with earlier versions of libmikmod. + +diff -r 56cad6484b04 -r 2ebb0d016f27 dynamic_mod.c +--- a/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700 ++++ b/dynamic_mod.c Sun Jul 22 16:33:37 2012 -0700 +@@ -97,8 +97,8 @@ + (void (*)(void*)) + SDL_LoadFunction(mikmod.handle, "MikMod_free"); + if ( mikmod.MikMod_free == NULL ) { +- SDL_UnloadObject(mikmod.handle); +- return -1; ++ /* libmikmod 3.1 and earlier doesn't have it */ ++ mikmod.MikMod_free = free; + } + mikmod.Player_Active = + (BOOL (*)(void)) +@@ -246,6 +246,11 @@ + mikmod.MikMod_RegisterDriver = MikMod_RegisterDriver; + mikmod.MikMod_errno = &MikMod_errno; + mikmod.MikMod_strerror = MikMod_strerror; ++#if LIBMIKMOD_VERSION < ((3<<16)|(2<<8)) ++ mikmod.MikMod_free = free; ++#else ++ mikmod.MikMod_free = MikMod_free; ++#endif + mikmod.Player_Active = Player_Active; + mikmod.Player_Free = Player_Free; + mikmod.Player_LoadGeneric = Player_LoadGeneric; From 078385d5402bb757ca7dc30841c5f39af6c18e19 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 11:08:39 +0300 Subject: [PATCH 1824/2060] mpg123: Rebuild. --- mingw-w64-mpg123/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-mpg123/PKGBUILD b/mingw-w64-mpg123/PKGBUILD index 64528c4606..fc65e8ca1f 100644 --- a/mingw-w64-mpg123/PKGBUILD +++ b/mingw-w64-mpg123/PKGBUILD @@ -4,7 +4,7 @@ _realname=mpg123 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.22.4 -pkgrel=1 +pkgrel=2 pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3 (mingw-w64)" arch=('any') url="http://sourceforge.net/projects/mpg123" @@ -29,8 +29,8 @@ md5sums=('2dfafae3bbc532b4c8b04a77c6a6de89' prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i "$srcdir"/0001-update-ac-and-silent-rules.mingw.patch - patch -p1 -i "$srcdir"/0002-openal-library.patch + patch -p1 -i "${srcdir}"/0001-update-ac-and-silent-rules.mingw.patch + #patch -p1 -i "${srcdir}"/0002-openal-library.patch autoreconf -fi } From bb9b759cfa9df3cc88d5c6029a6dccd529db1568 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 11:09:21 +0300 Subject: [PATCH 1825/2060] smpeg2: Rebuild. --- mingw-w64-smpeg2/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-smpeg2/PKGBUILD b/mingw-w64-smpeg2/PKGBUILD index bbc3011f5f..6c2f1a9882 100644 --- a/mingw-w64-smpeg2/PKGBUILD +++ b/mingw-w64-smpeg2/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=smpeg2 +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.0 -pkgrel=3 +pkgrel=4 pkgdesc="SDL2 MPEG Player Library (mingw-w64)" arch=('any') url="http://icculus.org/smpeg/" From d75e8aa6a551f182c3202a74b82d7dd327cdbac4 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 11:12:07 +0300 Subject: [PATCH 1826/2060] sfml: Rebuild --- mingw-w64-sfml/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-sfml/PKGBUILD b/mingw-w64-sfml/PKGBUILD index 4d91bb23f5..4f8b349abd 100644 --- a/mingw-w64-sfml/PKGBUILD +++ b/mingw-w64-sfml/PKGBUILD @@ -4,7 +4,7 @@ _realname=sfml pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.3.2 -pkgrel=1 +pkgrel=2 pkgdesc="A simple, fast, cross-platform, and object-oriented multimedia API (mingw-w64)" arch=('any') url="http://www.sfml-dev.org/" From 7afec0c8cf6d308042263445cf2f1238cd22f07d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 11:21:51 +0300 Subject: [PATCH 1827/2060] allegro: Update to 5.1.12.0 --- mingw-w64-allegro/PKGBUILD | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/mingw-w64-allegro/PKGBUILD b/mingw-w64-allegro/PKGBUILD index 2af254b3af..5243b13809 100644 --- a/mingw-w64-allegro/PKGBUILD +++ b/mingw-w64-allegro/PKGBUILD @@ -1,12 +1,13 @@ # Maintainer: Alexey Pavlov _realname=allegro +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.1.11 -pkgrel=2 +pkgver=5.1.12.0 +pkgrel=1 pkgdesc="Portable library mainly aimed at video game and multimedia programming (mingw-w64)" arch=(any) -url="http://alleg.sourceforge.net" +url="http://liballeg.org/" license=("ZLIB") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-dumb" @@ -17,7 +18,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-libvorbis" "${MINGW_PACKAGE_PREFIX}-openal" - "${MINGW_PACKAGE_PREFIX}-physfs") + "${MINGW_PACKAGE_PREFIX}-physfs" + "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") optdepends=("${MINGW_PACKAGE_PREFIX}-dumb: allegro_audio" "${MINGW_PACKAGE_PREFIX}-flac: allegro_audio" @@ -28,13 +30,13 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-dumb: allegro_audio" "${MINGW_PACKAGE_PREFIX}-openal: allegro_audio" "${MINGW_PACKAGE_PREFIX}-physfs: allegro_physfs") options=('strip' 'staticlibs') -source=("http://downloads.sourceforge.net/alleg/allegro-${pkgver}.tar.gz") +source=(${_realname}-${pkgver}.tar.gz::https://github.com/liballeg/allegro5/archive/${pkgver}.tar.gz) conflicts=("${MINGW_PACKAGE_PREFIX}-allegro-static") provides=("${MINGW_PACKAGE_PREFIX}-allegro-static") -sha256sums=('7a071635e39105ce52cd82c8641a8f3841efbdfe8fdb39f7a5ae1be6db3be07f') +sha256sums=('4d9aa8a4cc83fd0887f00969aa5ce8d141a3838fa31cd937d019b4319a73a793') prepare() { - cd "$srcdir/allegro-${pkgver}" + cd "${srcdir}/${_realname}5-${pkgver}" sed -i "s,DS3DALG_DEFAULT,GUID_NULL,g" "addons/audio/dsound.cpp" } @@ -50,7 +52,7 @@ build() { -DWANT_DOCS=OFF \ -DWANT_EXAMPLES=OFF \ -DINSTALL_PKG_CONFIG_FILES=ON \ - ../${_realname}-${pkgver} + ../${_realname}5-${pkgver} make } From ac08f14c4c5b2aa45368c16bfdb0b4c46f801af6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 12:09:54 +0300 Subject: [PATCH 1828/2060] ffmpeg: Rebuild. --- mingw-w64-ffmpeg/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index a873a82690..aa1dd1c573 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -4,7 +4,7 @@ _realname=ffmpeg pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.8.1 -pkgrel=2 +pkgrel=3 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" From c4b206d89bcbee1ed524cadd17d306ffa19ce2a0 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 12:12:15 +0300 Subject: [PATCH 1829/2060] iso-codes: Update to 3.63 --- mingw-w64-iso-codes/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-iso-codes/PKGBUILD b/mingw-w64-iso-codes/PKGBUILD index 003ed1dc88..c2362347b3 100644 --- a/mingw-w64-iso-codes/PKGBUILD +++ b/mingw-w64-iso-codes/PKGBUILD @@ -1,15 +1,16 @@ # Maintainer: Alexey Pavlov _realname=iso-codes +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.59 +pkgver=3.63 pkgrel=1 pkgdesc="Lists of the country, language, and currency names (mingw-w64)" arch=('any') license=('LGPL') url="http://pkg-isocodes.alioth.debian.org/" source=(http://pkg-isocodes.alioth.debian.org/downloads/${_realname}-${pkgver}.tar.xz{,.sig}) -md5sums=('f16ea4bf101c226d6c8a253d39a9d23b' +md5sums=('129f822fd64c9bf80931cccc269ccb95' 'SKIP') build() { From 0ffc20f1ab62b597b914b51e724868e6dcef0329 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 3 Nov 2015 12:18:49 +0300 Subject: [PATCH 1830/2060] SDL_image: Rebuild. --- mingw-w64-SDL_image/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-SDL_image/PKGBUILD b/mingw-w64-SDL_image/PKGBUILD index 7d602a7730..3c5d60fe43 100644 --- a/mingw-w64-SDL_image/PKGBUILD +++ b/mingw-w64-SDL_image/PKGBUILD @@ -4,7 +4,7 @@ _realname=SDL_image pkgbase=mingw-w64-${_realname} pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=1.2.12 -pkgrel=3 +pkgrel=4 pkgdesc="A simple library to load images of various formats as SDL surfaces (mingw-w64)" arch=('any') url="http://www.libsdl.org/projects/SDL_image" From 2bd9329ee0e54ba2293cf5b048bc2ceaf56c581f Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 4 Nov 2015 09:47:28 +0100 Subject: [PATCH 1831/2060] libodfgen: updated to 0.1.5. --- mingw-w64-libodfgen/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libodfgen/PKGBUILD b/mingw-w64-libodfgen/PKGBUILD index 4e8f7bec07..7225067ca3 100644 --- a/mingw-w64-libodfgen/PKGBUILD +++ b/mingw-w64-libodfgen/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Andrea Zagli _realname=libodfgen +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.1.4 -pkgrel=2 +pkgver=0.1.5 +pkgrel=1 pkgdesc="Library to generate ODF documents (mingw-w64)" arch=('any') url="http://sf.net/p/libwpd/libodfgen/" @@ -15,12 +16,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-librevenge") options=(staticlibs strip) source=("http://sourceforge.net/projects/libwpd/files/libodfgen/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz" enum-without-api-attributes.patch) -sha256sums=('249b5ed8e1acc0fee32b4381b31b4ad9453b674d4f13886bda5e9dd2b4a5f1e1' +sha256sums=('fb8706e38f6acf019f8b50262af2bf850821c6d10dad8708f13e54f1a08294dd' '3148d825f0d0778cf1b65445919b5fb89ea0c738d6c560893830f08dd5dfebfc') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/enum-without-api-attributes.patch + #patch -p1 -i ${srcdir}/enum-without-api-attributes.patch } build() { From b2d8df98456c8aa146b2828aaf39b36a1667e38a Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Thu, 5 Nov 2015 22:50:53 +0200 Subject: [PATCH 1832/2060] libbotan: Update to 1.11.24 --- mingw-w64-libbotan/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libbotan/PKGBUILD b/mingw-w64-libbotan/PKGBUILD index 0e9a824b4a..862761b2af 100644 --- a/mingw-w64-libbotan/PKGBUILD +++ b/mingw-w64-libbotan/PKGBUILD @@ -3,7 +3,7 @@ _realname=libbotan pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.11.23 +pkgver=1.11.24 pkgrel=1 arch=('any') url='http://botan.randombit.net/' @@ -24,7 +24,7 @@ source=(http://botan.randombit.net/releases/Botan-${pkgver}.tgz{,.asc} 'boost-link.patch' 'winsock-link.patch' 'disable-mkgmtime.patch') -sha1sums=('5f01d5d0aec37f9a59df37b54409748d4be779d1' +sha1sums=('a37938269a1c796394dab75ef86cd768c853e369' 'SKIP' '407e623b46ef1b288b90195d9acadb34611b088b' '867667533df37c6b88b267c0e95b979d8115dea7' @@ -45,9 +45,9 @@ build() { sed -i "s|/mingw|${MINGW_PREFIX}|g" src/build-data/os/mingw.txt - local BUILD_TYPE_FLAGS='--build-mode=release' + local BUILD_TYPE_FLAGS='' if check_option 'debug' 'y'; then - BUILD_TYPE_FLAGS='--build-mode=debug --debug-mode' + BUILD_TYPE_FLAGS='--with-debug-info' fi # Set prefix to mingw{32,64} not full path. Remove starting slash From 2171a7455525d3c0d8f8e9295dda62daf4117c84 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 6 Nov 2015 09:40:38 +0300 Subject: [PATCH 1833/2060] glfw: Update to 3.1.2 --- mingw-w64-glfw/PKGBUILD | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/mingw-w64-glfw/PKGBUILD b/mingw-w64-glfw/PKGBUILD index b23b8e2c52..e3bb273cf9 100644 --- a/mingw-w64-glfw/PKGBUILD +++ b/mingw-w64-glfw/PKGBUILD @@ -1,21 +1,21 @@ # Maintainer: Martell Malone _realname=glfw +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.1.1 +pkgver=3.1.2 pkgrel=1 pkgdesc="A free, open source, portable framework for OpenGL application development (mingw-w64)" arch=('any') url="http://www.glfw.org/" license=('custom:ZLIB') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") -optdepends=() -conflicts=() +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake") options=('staticlibs' 'strip') source=(http://downloads.sourceforge.net/project/glfw/glfw/${pkgver}/${_realname}-${pkgver}.tar.gz 001-cmake-config-location.patch) -sha1sums=('67ab94ccd4f8bd08ea43f02a97c35ff843a368a9' +sha1sums=('172ea86287c96adeae0d1b3e1caf02086c837f93' '3c3f953929d9fcb4d7fbac931cad736889156ca1') prepare() { @@ -24,10 +24,10 @@ prepare() { } build() { - # Build static libs - [[ -d ${srcdir}/static-${MINGW_CHOST} ]] && rm -rf ${srcdir}/static-${MINGW_CHOST} - mkdir -p ${srcdir}/static-${MINGW_CHOST} - cd ${srcdir}/static-${MINGW_CHOST} + # Build shared libs + [[ -d ${srcdir}/shared-${MINGW_CHOST} ]] && rm -rf ${srcdir}/shared-${MINGW_CHOST} + mkdir -p ${srcdir}/shared-${MINGW_CHOST} + cd ${srcdir}/shared-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ @@ -39,10 +39,10 @@ build() { ../${_realname}-${pkgver} make - # Build shared libs - [[ -d ${srcdir}/shared-${MINGW_CHOST} ]] && rm -rf ${srcdir}/shared-${MINGW_CHOST} - mkdir -p ${srcdir}/shared-${MINGW_CHOST} - cd ${srcdir}/shared-${MINGW_CHOST} + # Build static libs + [[ -d ${srcdir}/static-${MINGW_CHOST} ]] && rm -rf ${srcdir}/static-${MINGW_CHOST} + mkdir -p ${srcdir}/static-${MINGW_CHOST} + cd ${srcdir}/static-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ From 20b103fdb0e9edc4caa1b4cf32ce2c0fcf995365 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 6 Nov 2015 10:07:01 +0300 Subject: [PATCH 1834/2060] jemalloc: Update to 4.0.4 --- mingw-w64-jemalloc/002-makefile.patch | 38 +++++++++++++++++++++++++++ mingw-w64-jemalloc/PKGBUILD | 18 +++++++------ 2 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-jemalloc/002-makefile.patch diff --git a/mingw-w64-jemalloc/002-makefile.patch b/mingw-w64-jemalloc/002-makefile.patch new file mode 100644 index 0000000000..6ff5d3163f --- /dev/null +++ b/mingw-w64-jemalloc/002-makefile.patch @@ -0,0 +1,38 @@ +--- jemalloc-4.0.4/Makefile.in.orig 2015-11-06 09:45:45.762202300 +0300 ++++ jemalloc-4.0.4/Makefile.in 2015-11-06 09:49:34.682787700 +0300 +@@ -106,8 +106,8 @@ + DSOS += $(objroot)lib/$(LIBJEMALLOC).$(SO) + endif + PC := $(objroot)jemalloc.pc +-MAN3 := $(objroot)doc/jemalloc$(install_suffix).3 +-DOCS_XML := $(objroot)doc/jemalloc$(install_suffix).xml ++MAN3 := $(srcroot)doc/jemalloc$(install_suffix).3 ++DOCS_XML := $(srcroot)doc/jemalloc$(install_suffix).xml + DOCS_HTML := $(DOCS_XML:$(objroot)%.xml=$(objroot)%.html) + DOCS_MAN3 := $(DOCS_XML:$(objroot)%.xml=$(objroot)%.3) + DOCS := $(DOCS_HTML) $(DOCS_MAN3) +@@ -254,7 +254,7 @@ + + $(objroot)lib/$(LIBJEMALLOC).$(SOREV) : $(if $(PIC_CFLAGS),$(C_PIC_OBJS),$(C_OBJS)) + @mkdir -p $(@D) +- $(CC) $(DSO_LDFLAGS) $(call RPATH,$(RPATH_EXTRA)) $(LDTARGET) $+ $(LDFLAGS) $(LIBS) $(EXTRA_LDFLAGS) ++ $(CC) $(DSO_LDFLAGS) $(call RPATH,$(RPATH_EXTRA)) $(LDTARGET) -Wl,--out-implib,$(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB).$(A) $+ $(LDFLAGS) $(LIBS) $(EXTRA_LDFLAGS) + + $(objroot)lib/$(LIBJEMALLOC)_pic.$(A) : $(C_PIC_OBJS) + $(objroot)lib/$(LIBJEMALLOC).$(A) : $(C_OBJS) +@@ -295,10 +295,12 @@ + done + + install_lib_shared: $(DSOS) +- install -d $(LIBDIR) +- install -m 755 $(objroot)lib/$(LIBJEMALLOC).$(SOREV) $(LIBDIR) ++ install -d $(BINDIR) ++ install -m 755 $(objroot)lib/$(LIBJEMALLOC).$(SOREV) $(BINDIR) ++ install -d $(LIBDIR) ++ install -m 644 $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB).$(A) $(LIBDIR) + ifneq ($(SOREV),$(SO)) +- ln -sf $(LIBJEMALLOC).$(SOREV) $(LIBDIR)/$(LIBJEMALLOC).$(SO) ++ ln -sf $(LIBJEMALLOC).$(SOREV) $(BINDIR)/$(LIBJEMALLOC).$(SO) + endif + + install_lib_static: $(STATIC_LIBS) diff --git a/mingw-w64-jemalloc/PKGBUILD b/mingw-w64-jemalloc/PKGBUILD index 611747e2cf..5d0025cbcd 100644 --- a/mingw-w64-jemalloc/PKGBUILD +++ b/mingw-w64-jemalloc/PKGBUILD @@ -1,29 +1,33 @@ # Maintainer: Alexey Pavlov _realname=jemalloc +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=3.6.0 -pkgrel=2 +pkgver=4.0.4 +pkgrel=1 pkgdesc="General-purpose scalable concurrent malloc implementation (mingw64)" arch=('any') url="http://www.canonware.com/jemalloc/" license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") source=(http://www.canonware.com/download/jemalloc/${_realname}-${pkgver}.tar.bz2 - 001-fix-library-extension.patch) -sha256sums=('e16c2159dd3c81ca2dc3b5c9ef0d43e1f2f45b04548f42db12e7c12d7bdf84fe' - '074700fcdb9d0548668d5e1f8a61b3571e35c839f45036146bb2e112ad5a5d9d') + 001-fix-library-extension.patch + 002-makefile.patch) +sha256sums=('3fda8d8d7fcd041aa0bebbecd45c46b28873cf37bd36c56bf44961b36d0f42d0' + '074700fcdb9d0548668d5e1f8a61b3571e35c839f45036146bb2e112ad5a5d9d' + 'bd9598d640f075b93159257614c35e011a3423e6fd4e171f560ee774224488e4') prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-fix-library-extension.patch + patch -p1 -i ${srcdir}/002-makefile.patch # ./autogen.sh } build() { cd ${srcdir}/${_realname}-${pkgver} - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} CFLAGS+=" -std=gnu11" @@ -40,7 +44,5 @@ package() { cd "${srcdir}"/build-${CARCH} make DESTDIR=${pkgdir} install - mv "${pkgdir}${MINGW_PREFIX}"/bin/{,jemalloc-}pprof - mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 8ed574dbc90ae4c664eb2a232a3f82a8d858a893 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 6 Nov 2015 10:31:14 +0300 Subject: [PATCH 1835/2060] setuptools: Update to 18.5 --- mingw-w64-python-setuptools/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-setuptools/PKGBUILD b/mingw-w64-python-setuptools/PKGBUILD index 984d7d5adf..ad9f9ed0e9 100644 --- a/mingw-w64-python-setuptools/PKGBUILD +++ b/mingw-w64-python-setuptools/PKGBUILD @@ -7,7 +7,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools") _py3_base=3.5 _py2_base=2.7 -pkgver=18.4 +pkgver=18.5 pkgrel=1 pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages (mingw-w64)" arch=('any') @@ -19,7 +19,7 @@ source=(http://pypi.python.org/packages/source/s/setuptools/${_realname}-${pkgve '0002-Allow-usr-bin-env-in-script.patch' '0003-MinGW-w64-Look-in-same-dir-as-script-for-exe.patch' '0004-dont-execute-msvc.patch') -sha1sums=('ab7964759591adb3c894bd08a086233e15550df1' +sha1sums=('301a850c7126b11773a5ffa69e1ddf34dfb26600' 'a26b8313592899ff6e5c18e5a4d489b7d8a6e021' '3f475c0510ecaa1ee86412197cb3624ebfba7105' '101db3f8acbd116c81ee170adea2b1453ccc709a' From 06a35b638a4f62058517cd97f9027f1edf697f2e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 6 Nov 2015 10:36:26 +0300 Subject: [PATCH 1836/2060] mako: Update to 1.0.3 --- mingw-w64-python-mako/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-mako/PKGBUILD b/mingw-w64-python-mako/PKGBUILD index f9fe08731a..878209614f 100644 --- a/mingw-w64-python-mako/PKGBUILD +++ b/mingw-w64-python-mako/PKGBUILD @@ -4,7 +4,7 @@ _realname=mako pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.0.2 +pkgver=1.0.3 pkgrel=1 pkgdesc="A super-fast templating language that borrows the best ideas from the existing templating languages (mingw-w64)" arch=('any') @@ -20,7 +20,7 @@ checkdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose" "${MINGW_PACKAGE_PREFIX}-python3-nose") options=('staticlibs') source=("https://pypi.python.org/packages/source/M/Mako/Mako-${pkgver}.tar.gz") -md5sums=('d0bb0b15d94d0d455fbaf047d312cc2d') +md5sums=('a78f20f6366a8a0659ce5532f8614e53') prepare() { cd ${srcdir} From adfd3bd919ff0b8f5b0a587c0097569c7b40bf6a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 6 Nov 2015 11:45:02 +0300 Subject: [PATCH 1837/2060] icu: Update to 56.1 --- mingw-w64-icu/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-icu/PKGBUILD b/mingw-w64-icu/PKGBUILD index 5843094a67..abc2c3f323 100644 --- a/mingw-w64-icu/PKGBUILD +++ b/mingw-w64-icu/PKGBUILD @@ -2,9 +2,10 @@ # Contributor: Ray Donnelly _realname=icu +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-libs") -pkgver=55.1 -pkgrel=3 +pkgver=56.1 +pkgrel=1 arch=('any') pkgdesc="International Components for Unicode library (mingw-w64)" arch=('any') @@ -27,7 +28,7 @@ source=("http://download.icu-project.org/files/icu4c/${pkgver}/icu4c-${pkgver//. 0015-debug.mingw.patch 0016-icu-pkgconfig.patch 0017-icu-config-versioning.patch) -md5sums=('e2d523df79d6cb7855c2fbe284f4db29' +md5sums=('c4a2d71ff56aec5ebfab2a3f059be99d' '4c8143786ed499184e64fc5a1a1d0fdf' 'eb56b72df2ca0dc77261c4f2adc5c8ad' '9c63125f7bdd88871c89e13ee62ac02b' From 882f064600846481abb47b4ab2c90762cd8cc3a6 Mon Sep 17 00:00:00 2001 From: Fabian Greffrath Date: Fri, 6 Nov 2015 09:22:37 +0100 Subject: [PATCH 1838/2060] SDL*_mixer: help ./configure find shared libraries for dynamic loading This avoids hard dependencies against the libraries providing the music backends (with the exception of libmad). Instead, if the libraries are found in the search path, they are loaded as plug-ins at run-time. Fixes https://github.com/Alexpux/MINGW-packages/issues/865 First, the ./configure script did check only for $host being *-mingw32*, so it skipped the relevant parts for $host=*-mingw64*. Then, the ./configure script did check for the wrong library names for both libfluidsynth*.dll and ibvorbisidec*.dll. Finally, the find_lib() function in the ./configure script searched for the shared libraries in the wrong directories. Fixed this by adding $PATH to the search paths. --- mingw-w64-SDL2_mixer/PKGBUILD | 8 +- .../SDL2_mixer-find_lib.mingw.patch | 101 ++++++++++++++++++ mingw-w64-SDL_mixer/PKGBUILD | 7 +- .../SDL_mixer-find_lib.mingw.patch | 90 ++++++++++++++++ 4 files changed, 202 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-SDL2_mixer/SDL2_mixer-find_lib.mingw.patch create mode 100644 mingw-w64-SDL_mixer/SDL_mixer-find_lib.mingw.patch diff --git a/mingw-w64-SDL2_mixer/PKGBUILD b/mingw-w64-SDL2_mixer/PKGBUILD index 3f7bb9a0dc..16506e9d03 100644 --- a/mingw-w64-SDL2_mixer/PKGBUILD +++ b/mingw-w64-SDL2_mixer/PKGBUILD @@ -18,14 +18,18 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-fluidsynth") options=('staticlibs' 'strip') noextract=(${_realname}-${pkgver}.tar.gz) -source=("$url/release/${_realname}-${pkgver}.tar.gz") -md5sums=('65f6d80df073a1fb3bb537fbda031b50') +source=("$url/release/${_realname}-${pkgver}.tar.gz" + SDL2_mixer-find_lib.mingw.patch) +md5sums=('65f6d80df073a1fb3bb537fbda031b50' + 'c891fc5d73238c85ff42cfe31213da7b') prepare() { [[ -d ${srcdir}/${_realname}-${pkgver} ]] || tar -xzvf ${_realname}-${pkgver}.tar.gz -C ${srcdir} || true cd "${srcdir}"/${_realname}-${pkgver} + patch -Np1 -i ${srcdir}/SDL2_mixer-find_lib.mingw.patch + sed -i "s|/etc/timidity|/etc/timidity++|g" timidity/config.h sed -i "s|/etc/timidity++.cfg|/etc/timidity++/timidity.cfg|g" timidity/config.h } diff --git a/mingw-w64-SDL2_mixer/SDL2_mixer-find_lib.mingw.patch b/mingw-w64-SDL2_mixer/SDL2_mixer-find_lib.mingw.patch new file mode 100644 index 0000000000..355aa263d0 --- /dev/null +++ b/mingw-w64-SDL2_mixer/SDL2_mixer-find_lib.mingw.patch @@ -0,0 +1,101 @@ +diff --git a/configure b/configure +index 878381b..be39a38 100755 +--- a/configure ++++ b/configure +@@ -11143,13 +11143,14 @@ find_lib() + gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'` + gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'` + env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'` ++ env_path=`echo $PATH | sed 's/:/ /g'` + if test "$cross_compiling" = yes; then + host_lib_path="" + else + host_lib_path="/usr/$base_libdir /usr/local/$base_libdir" + fi +- for path in $gcc_bin_path $gcc_lib_path $env_lib_path $host_lib_path; do +- lib=`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1` ++ for path in $gcc_bin_path $gcc_lib_path $env_lib_path $env_path $host_lib_path; do ++ lib=`ls -- $path/$1 2>/dev/null | sort | sed 's/.*\/\(.*\)/\1/; q'` + if test x$lib != x; then + echo $lib + return +@@ -11938,7 +11939,7 @@ fi + *-*-darwin*) + modplug_lib=`find_lib libmodplug.dylib` + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + modplug_lib=`find_lib "libmodplug*.dll"` + ;; + *) +@@ -12070,7 +12071,7 @@ fi + *-*-darwin*) + mikmod_lib=`find_lib libmikmod.dylib` + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + mikmod_lib=`find_lib "libmikmod*.dll"` + ;; + *) +@@ -12132,7 +12133,7 @@ fi + *mingw32ce*) + use_music_midi_native=no + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + use_music_midi_native=yes + EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lwinmm" + ;; +@@ -12221,8 +12222,11 @@ fi + *-*-darwin*) + fluidsynth_lib=`find_lib libfluidsynth.dylib` + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + fluidsynth_lib=`find_lib "fluidsynth*.dll"` ++ if test x$fluidsynth_lib = x; then ++ fluidsynth_lib=`find_lib "libfluidsynth*.dll"` ++ fi + ;; + *) + fluidsynth_lib=`find_lib "libfluidsynth[0-9]*.so.*"` +@@ -12331,8 +12335,11 @@ fi + *-*-darwin*) + ogg_lib=`find_lib libvorbisidec.dylib` + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + ogg_lib=`find_lib "vorbisidec*.dll"` ++ if test x$ogg_lib = x; then ++ ogg_lib=`find_lib "libvorbisidec*.dll"` ++ fi + ;; + *) + ogg_lib=`find_lib "libvorbisidec[0-9]*.so.*"` +@@ -12409,7 +12416,7 @@ fi + *-*-darwin*) + ogg_lib=`find_lib libvorbisfile.dylib` + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + ogg_lib=`find_lib "libvorbisfile*.dll"` + ;; + *) +@@ -12545,7 +12552,7 @@ fi + *-*-darwin*) + flac_lib=`find_lib libFLAC.dylib` + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + flac_lib=`find_lib "libFLAC-*.dll"` + ;; + *) +@@ -12841,7 +12848,7 @@ rm -f core conftest.err conftest.$ac_objext \ + *-*-darwin*) + smpeg_lib=`find_lib libsmpeg2.dylib` + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + smpeg_lib=`find_lib "smpeg2*.dll"` + ;; + *) diff --git a/mingw-w64-SDL_mixer/PKGBUILD b/mingw-w64-SDL_mixer/PKGBUILD index b3174cf570..5b9f4456e0 100644 --- a/mingw-w64-SDL_mixer/PKGBUILD +++ b/mingw-w64-SDL_mixer/PKGBUILD @@ -22,12 +22,14 @@ source=(http://www.libsdl.org/projects/SDL_mixer/release/${_realname}-${pkgver}. mikmod1.patch mikmod2.patch fluidsynth-volume.patch - double-free-crash.patch) + double-free-crash.patch + SDL_mixer-find_lib.mingw.patch) md5sums=('e03ff73d77a55e3572ad0217131dc4a1' 'c335d4ff1fe86950d1fc730745c9c96d' 'd13d98fef8ec51167a370fa7976a7a7f' 'eceb06e3a8b31fee300d7f33478401d4' - 'b38c1b23751ca95631badeb9327d085e') + 'b38c1b23751ca95631badeb9327d085e' + 'a116f6c880aae14d2a1657447bdbd81e') noextract=(${_realname}-${pkgver}.tar.gz) prepare() { @@ -40,6 +42,7 @@ prepare() { patch -Np1 -i ${srcdir}/mikmod2.patch patch -Np1 -i ${srcdir}/fluidsynth-volume.patch patch -Np1 -i ${srcdir}/double-free-crash.patch + patch -Np1 -i ${srcdir}/SDL_mixer-find_lib.mingw.patch #sed -e "/CONFIG_FILE_ETC/s|/etc/timidity.cfg|/etc/timidity++/timidity.cfg|" \ # -e "/DEFAULT_PATH/s|/etc/timidity|/etc/timidity++|" \ diff --git a/mingw-w64-SDL_mixer/SDL_mixer-find_lib.mingw.patch b/mingw-w64-SDL_mixer/SDL_mixer-find_lib.mingw.patch new file mode 100644 index 0000000000..84c163f5d1 --- /dev/null +++ b/mingw-w64-SDL_mixer/SDL_mixer-find_lib.mingw.patch @@ -0,0 +1,90 @@ +diff --git a/configure b/configure +index e7c8c97..f6b9ad1 100755 +--- a/configure ++++ b/configure +@@ -11850,12 +11850,13 @@ find_lib() + gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'` + gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'` + env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'` ++ env_path=`echo $PATH | sed 's/:/ /g'` + if test "$cross_compiling" = yes; then + host_lib_path="" + else + host_lib_path="/usr/$base_libdir /usr/local/$base_libdir" + fi +- for path in $gcc_bin_path $gcc_lib_path $env_lib_path $host_lib_path; do ++ for path in $gcc_bin_path $gcc_lib_path $env_lib_path $env_path $host_lib_path; do + lib=`ls -- $path/$1 2>/dev/null | sort | sed 's/.*\/\(.*\)/\1/; q'` + if test x$lib != x; then + echo $lib +@@ -12727,7 +12728,7 @@ fi + *-*-darwin*) + mikmod_lib=`find_lib libmikmod.dylib` + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + mikmod_lib=`find_lib "libmikmod*.dll"` + ;; + *) +@@ -12916,7 +12917,7 @@ fi + *mingw32ce*) + use_music_native_midi=no + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + use_music_native_midi=yes + EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lwinmm" + ;; +@@ -13159,8 +13160,11 @@ fi + fluidsynth_lib=`find_lib libfluidsynth.[0-9]*` + fi + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + fluidsynth_lib=`find_lib "fluidsynth*.dll"` ++ if test x$fluidsynth_lib = x; then ++ fluidsynth_lib=`find_lib "libfluidsynth*.dll"` ++ fi + ;; + *) + fluidsynth_lib=`find_lib "libfluidsynth.so.[0-9]"` +@@ -13415,8 +13419,11 @@ fi + ogg_lib=`find_lib libvorbisidec.[0-9]*` + fi + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + ogg_lib=`find_lib "vorbisidec*.dll"` ++ if test x$ogg_lib = x; then ++ ogg_lib=`find_lib "libvorbisidec*.dll"` ++ fi + ;; + *) + ogg_lib=`find_lib "libvorbisidec.so.[0-9]"` +@@ -13640,7 +13647,7 @@ fi + *-*-darwin*) + ogg_lib=`find_lib libvorbisfile.dylib` + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + ogg_lib=`find_lib "libvorbisfile*.dll"` + ;; + *) +@@ -14073,7 +14080,7 @@ fi + *-*-darwin*) + flac_lib=`find_lib libFLAC.dylib` + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + flac_lib=`find_lib "libFLAC*.dll"` + ;; + *) +@@ -14649,7 +14656,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + *-*-darwin*) + smpeg_lib=`find_lib libsmpeg.dylib` + ;; +- *-*-cygwin* | *-*-mingw32*) ++ *-*-cygwin* | *-*-mingw*) + smpeg_lib=`find_lib "smpeg*.dll"` + ;; + *) From e9dbf5603cdf6f2c6f9a0e20f23e0b8a34479208 Mon Sep 17 00:00:00 2001 From: Fabian Greffrath Date: Fri, 6 Nov 2015 08:54:19 +0100 Subject: [PATCH 1839/2060] SDL*_mixer: build against libmad instead of smpeg Build the SDL*_mixer libraries against libmad instead of smpeg for MP3 playback. The libmad backend is much more popular and the smpeg backend reportedly caused issues for e.g. Doom Retro: bradharding/doomretro@fda2fe3 . Fixes https://github.com/Alexpux/MINGW-packages/issues/863 NB: The libmad library is licensed under the GPL, so linking against this dependency will effectively turn the whole SDL*_mixer libraries GPL licensed. NB2: Should we ever have to autoreconf the source tree, we might want to add the dependency on *-smpeg back (though unused) for the mere presence of the macros in the smpeg.m4 file. --- mingw-w64-SDL2_mixer/PKGBUILD | 7 +++++-- mingw-w64-SDL_mixer/PKGBUILD | 6 ++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/mingw-w64-SDL2_mixer/PKGBUILD b/mingw-w64-SDL2_mixer/PKGBUILD index 3f7bb9a0dc..8925379680 100644 --- a/mingw-w64-SDL2_mixer/PKGBUILD +++ b/mingw-w64-SDL2_mixer/PKGBUILD @@ -13,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-SDL2" "${MINGW_PACKAGE_PREFIX}-libvorbis" "${MINGW_PACKAGE_PREFIX}-libmodplug" - "${MINGW_PACKAGE_PREFIX}-smpeg2" + "${MINGW_PACKAGE_PREFIX}-libmad" "${MINGW_PACKAGE_PREFIX}-flac" "${MINGW_PACKAGE_PREFIX}-fluidsynth") options=('staticlibs' 'strip') @@ -39,7 +39,10 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --enable-static + --enable-static \ + --enable-music-mp3 \ + --disable-music-mp3-smpeg \ + --enable-music-mp3-mad-gpl make } diff --git a/mingw-w64-SDL_mixer/PKGBUILD b/mingw-w64-SDL_mixer/PKGBUILD index b3174cf570..87f75b16d3 100644 --- a/mingw-w64-SDL_mixer/PKGBUILD +++ b/mingw-w64-SDL_mixer/PKGBUILD @@ -12,7 +12,7 @@ license=('custom') depends=("${MINGW_PACKAGE_PREFIX}-SDL" "${MINGW_PACKAGE_PREFIX}-libvorbis" "${MINGW_PACKAGE_PREFIX}-libmikmod" - "${MINGW_PACKAGE_PREFIX}-smpeg" + "${MINGW_PACKAGE_PREFIX}-libmad" ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" @@ -56,7 +56,9 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --enable-static + --enable-static \ + --disable-music-mp3 \ + --enable-music-mp3-mad-gpl make } From 12cdbc1d885c7072b2d7c1bd0d78ccd5d10ccea9 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Sat, 7 Nov 2015 10:49:46 +0100 Subject: [PATCH 1840/2060] glib2: update to version 2.46.2 This also fixes a segfault with 32bit applications. --- mingw-w64-glib2/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 744cb68278..408824a9a2 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -4,7 +4,7 @@ _realname=glib2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.46.1 +pkgver=2.46.2 pkgrel=1 url="http://www.gtk.org/" arch=('any') @@ -28,7 +28,7 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-${pkgver} 0027-no_sys_if_nametoindex.patch 0028-inode_directory.patch 0029-grand.all.patch) -md5sums=('c90e93ceb45100ffc1d40ec5d2ca3248' +md5sums=('7f815d6e46df68e070cb421ed7f1139e' '10cf1e482b6a1367d79648466f2cf23c' '27e8188e764eed3b3d565e5fc5746654' 'b3cf766d5e717010a7534c61e53f3204' From 1dc5bcbbeb223ade2012deba6d1bcc020c69fe75 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 9 Nov 2015 08:53:50 +0300 Subject: [PATCH 1841/2060] boost: Rebuild with icu-56.1 --- mingw-w64-boost/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-boost/PKGBUILD b/mingw-w64-boost/PKGBUILD index dd61261ac8..c4dd7d93cc 100644 --- a/mingw-w64-boost/PKGBUILD +++ b/mingw-w64-boost/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.59.0 _boostver=${pkgver//./_} -pkgrel=2 +pkgrel=3 pkgdesc="Free peer-reviewed portable C++ source libraries (mingw-w64)" arch=('any') url="http://www.boost.org/" From ce790306eab38350ec91467fd13755eae1c0e69d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 9 Nov 2015 08:54:03 +0300 Subject: [PATCH 1842/2060] harfbuzz: Rebuild with icu-56.1 --- mingw-w64-harfbuzz/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index 5c237d192a..217f43e477 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -5,7 +5,7 @@ _realname=harfbuzz pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.6 -pkgrel=1 +pkgrel=2 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') url="http://www.freedesktop.org/wiki/Software/HarfBuzz" From 83234dba164b5914d73531835e06fd2fc82f9d1f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 9 Nov 2015 08:54:35 +0300 Subject: [PATCH 1843/2060] libvmime-git: Rebuild with icu-56.1 --- mingw-w64-libvmime-git/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-libvmime-git/PKGBUILD b/mingw-w64-libvmime-git/PKGBUILD index fb65cbd930..c51f0b577e 100644 --- a/mingw-w64-libvmime-git/PKGBUILD +++ b/mingw-w64-libvmime-git/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: AlexWMF _realname=libvmime +pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=r1031.3dd5975 +pkgver=r1032.7e36a74 pkgrel=1 pkgdesc="An open source solution for working with MIME messages and Internet messaging services like IMAP, POP or SMTP (mingw-w64)" url="http://www.vmime.org/" From 3d2416d066d232ae78eda93ecb048f8a6538d1a1 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 9 Nov 2015 10:11:40 +0300 Subject: [PATCH 1844/2060] libmariadbclient: Fix library. Don't use DEF file during linking because for 32-bit we need also export argument counts for functions. --- mingw-w64-libmariadbclient/PKGBUILD | 24 +++++++++++-------- .../fix-libnames-mingw.patch | 13 ++++++---- .../fix-redefinitions.patch | 12 ++++++++++ .../fix-size-t-defined.patch | 4 ++-- 4 files changed, 36 insertions(+), 17 deletions(-) create mode 100644 mingw-w64-libmariadbclient/fix-redefinitions.patch diff --git a/mingw-w64-libmariadbclient/PKGBUILD b/mingw-w64-libmariadbclient/PKGBUILD index fca66c878a..707d9d0b30 100644 --- a/mingw-w64-libmariadbclient/PKGBUILD +++ b/mingw-w64-libmariadbclient/PKGBUILD @@ -4,32 +4,36 @@ _realname=libmariadbclient pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.2.0 -pkgrel=1 +pkgrel=2 pkgdesc="MariaDB client libraries (mingw-w64)" arch=('any') url="http://mariadb.org" license=('LGPL') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") #"${MINGW_PACKAGE_PREFIX}-curl" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-zlib") #"${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-zlib") +#optdepends=("${MINGW_PACKAGE_PREFIX}-curl") options=('!strip' 'staticlibs') source=(#"https://downloads.mariadb.org/interstitial/connector-c-${pkgver}/source-tgz/mariadb-connector-c-${pkgver}-src.tar.gz" http://mirror.mephi.ru/mariadb/connector-c-${pkgver}/mariadb-connector-c-${pkgver}-src.tar.gz{,.asc} 'fix-libnames-mingw.patch' 'use_fopen_for_xp_compatibility.patch' - 'fix-size-t-defined.patch') + 'fix-size-t-defined.patch' + 'fix-redefinitions.patch') sha256sums=('3825b068d38bc19d6ad1eaecdd74bcd49d6ddd9d00559fb150e4e851a55bbbd4' 'SKIP' - '7d361086b805972cbe06e3d96aec9511d6f85031127ed49c86c4d5e80f5f4147' - '81ea9f16845c14a35e9c587ae84dc23c383c8be6d4afcf0587b84972a8f81b4e' - 'f0cba818d125687dc8d04f501484be8d159a1989ff12b5130c2fd213add3e519') + '2872bbfef721ebcdfa970ea57ad81888a4f29a6f55fed140c38b53f52b2b5d78' + '8069bc0c7f4204fe2b1ea54c610c27aebd0c54d7a21ecf6352c9bdd9cf1c4062' + 'e84d3ac9b2e716dc1581d82c34001d8561bb0d09750d1d57d4b448a8cc259ff0' + 'ddb20e474ba1a63f65f28ee76bb74074316b15cc90ecdae6d2aa1febf0803d72') prepare() { cd ${srcdir}/mariadb-connector-c-${pkgver}-src patch -p1 -i ${srcdir}/fix-libnames-mingw.patch - patch -p0 -i ${srcdir}/use_fopen_for_xp_compatibility.patch - patch -p0 -i ${srcdir}/fix-size-t-defined.patch + patch -p1 -i ${srcdir}/use_fopen_for_xp_compatibility.patch + patch -p1 -i ${srcdir}/fix-size-t-defined.patch + patch -p1 -i ${srcdir}/fix-redefinitions.patch } build() { @@ -43,7 +47,7 @@ build() { -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=RELEASE \ -DWITH_EXTERNAL_ZLIB=ON \ - -DWITH_SQLITE=OFF \ + -DWITH_REMOTEIO=OFF \ -DWITH_OPENSSL=ON \ -DWITH_MYSQLCOMPAT=OFF \ ../mariadb-connector-c-${pkgver}-src diff --git a/mingw-w64-libmariadbclient/fix-libnames-mingw.patch b/mingw-w64-libmariadbclient/fix-libnames-mingw.patch index 0a2da6dc66..f427422c58 100644 --- a/mingw-w64-libmariadbclient/fix-libnames-mingw.patch +++ b/mingw-w64-libmariadbclient/fix-libnames-mingw.patch @@ -1,12 +1,16 @@ --- mariadb-connector-c-2.2.0-src/libmariadb/CMakeLists.txt.orig 2015-09-29 22:21:13.000000000 +0300 +++ mariadb-connector-c-2.2.0-src/libmariadb/CMakeLists.txt 2015-10-30 12:42:38.140347000 +0300 -@@ -378,24 +378,25 @@ - ADD_LIBRARY(mariadbclient STATIC $ ${EMPTY_FILE} ${EXPORT_LINK}) +@@ -375,27 +375,26 @@ + SET(EMPTY_FILE ${CMAKE_SOURCE_DIR}/libmariadb/empty.c) + ENDIF() + +-ADD_LIBRARY(mariadbclient STATIC $ ${EMPTY_FILE} ${EXPORT_LINK}) ++ADD_LIBRARY(mariadbclient STATIC $ ${EMPTY_FILE}) TARGET_LINK_LIBRARIES(mariadbclient ${SYSTEM_LIBS}) -ADD_LIBRARY(libmariadb SHARED $ ${EMPTY_FILE} ${EXPORT_LINK}) -TARGET_LINK_LIBRARIES(libmariadb ${SYSTEM_LIBS}) -+ADD_LIBRARY(mariadb SHARED $ ${EMPTY_FILE} ${EXPORT_LINK}) ++ADD_LIBRARY(mariadb SHARED $ ${EMPTY_FILE}) +TARGET_LINK_LIBRARIES(mariadb ${SYSTEM_LIBS}) IF(UNIX) SET_TARGET_PROPERTIES(libmariadb PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}") @@ -16,9 +20,8 @@ - TARGET_LINK_LIBRARIES (libmariadb "-Wl,--no-undefined") - TARGET_LINK_LIBRARIES (libmariadb "-Wl,--version-script=${EXPORT_FILE}") + TARGET_LINK_LIBRARIES (mariadb "-Wl,--no-undefined") -+ TARGET_LINK_LIBRARIES (mariadb "-Wl,--version-script=${EXPORT_FILE}") TARGET_LINK_LIBRARIES (mariadbclient "-Wl,--no-undefined") - TARGET_LINK_LIBRARIES (mariadbclient "-Wl,--version-script=${EXPORT_FILE}") +- TARGET_LINK_LIBRARIES (mariadbclient "-Wl,--version-script=${EXPORT_FILE}") ENDIF() -SET_TARGET_PROPERTIES(libmariadb PROPERTIES PREFIX "") diff --git a/mingw-w64-libmariadbclient/fix-redefinitions.patch b/mingw-w64-libmariadbclient/fix-redefinitions.patch new file mode 100644 index 0000000000..5c714a8576 --- /dev/null +++ b/mingw-w64-libmariadbclient/fix-redefinitions.patch @@ -0,0 +1,12 @@ +--- mariadb-connector-c-2.2.0-src/include/config-win.h.orig 2015-11-09 09:36:10.157148000 +0300 ++++ mariadb-connector-c-2.2.0-src/include/config-win.h 2015-11-09 09:36:14.742989400 +0300 +@@ -56,7 +56,9 @@ + #define F_TO_EOF (INT_MAX32/2) /* size for lock of all file */ + #define F_OK 0 /* parameter to access() */ + ++#ifndef __MINGW64_VERSION_MAJOR + #define S_IROTH S_IREAD /* for my_lib */ ++#endif + + #ifdef __BORLANDC__ + #define FILE_BINARY O_BINARY /* my_fopen in binary mode */ diff --git a/mingw-w64-libmariadbclient/fix-size-t-defined.patch b/mingw-w64-libmariadbclient/fix-size-t-defined.patch index 8dbcd0900c..9b9bc4c0b8 100644 --- a/mingw-w64-libmariadbclient/fix-size-t-defined.patch +++ b/mingw-w64-libmariadbclient/fix-size-t-defined.patch @@ -1,5 +1,5 @@ ---- include/my_global.h.orig 2015-02-02 22:18:57.873440040 -0700 -+++ include/my_global.h 2015-02-02 22:17:45.125574689 -0700 +--- mariadb-connector-c-2.2.0-src/include/my_global.h.orig 2015-02-02 22:18:57.873440040 -0700 ++++ mariadb-connector-c-2.2.0-src/include/my_global.h 2015-02-02 22:17:45.125574689 -0700 @@ -451,7 +451,7 @@ #define NO_PISAM /* Not needed anymore */ #define NO_MISAM /* Not needed anymore */ From 6bbd4c6257dd3cf6118e62288c256825aac7b02c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 9 Nov 2015 12:12:55 +0300 Subject: [PATCH 1845/2060] qt5: Rebuild with icu-56.1 --- mingw-w64-qt5/PKGBUILD | 99 +++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 49 deletions(-) diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index ca304b1769..e6b3652ebe 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -80,7 +80,7 @@ else fi pkgver=${_ver_base//-/} -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -191,53 +191,6 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch 0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch) -md5sums=('c2a249e8795d45200d997d96860d0353' - 'a2fa66089b171ebb76a6e0bda2ef4ca8' - 'e3210b753ba04762de2ed4cb9c786bf1' - '53edcf1df69ae8134a196292447ddaa3' - 'b0b5cc641cf8ebc2660fa819bede0089' - '457b97833220a81f542f529e7e0c549c' - 'f13cb61f49f572a2fafbad1a323be89f' - '0f2e3a2f790b07442f0964f4f2f96596' - 'a8f02cb5eb766e5bb8639cf8771537d2' - 'ea5f1d5bf2ea4c1d69e6b5de0765adfb' - '6914a82ad728ff0da3c959f53367384c' - 'a3d928580732a966bb20e5dd8bc25606' - '5a735ecec8b12cbd9d48015de4690b87' - '3b740ce9bca6d9019b09f6f38f07411a' - 'c0721e53378a24b8d013c7db59f14c17' - '0d7ce23a99b3f15d176c09e617a437f9' - '40ba7d8134a696d07be5be6692cfaca7' - '23f6818466f6b6646c13549110376022' - 'e65e3ed10e2dd98d5402321657c809c4' - '9ee6524aa78b5e4fbb47f10dc3b267a4' - '68b3878c96f4be33b2803e5676fe3245' - 'd64536bcf72b63d15df106e2c9913154' - '05e73ac3ead09802111cc13d8e3e28c8' - '09aaa20fe92aa3fb8eaa36f805503d7d' - 'a73080c2a48ab52ec8888745daa28c99' - '3b550bd6c58d09aa6729987ef16fed65' - '47c0f36b9de94cf878cd29b7e2b6ea1b' - '01e8030718f088178559a28958a05350' - '6d86c1358be850376ed05c2913175c50' - 'a264f298702e70007820ab2f37facffb' - '2d2e68ab042aadc3c0fd6845dbfae79a' - '7b1e5e2538b71e1e4ba006a241c853b9' - 'e009d2a1c7edc41c1f5974883d4f38b2' - '516036cb0721d1603009e01f5bd728aa' - '47e70b9a063aa99aba0096007ed5b83d' - '3049f9e43e24f7eaafb4659c72ca4789' - 'df6964dca18a315fab60adc0d7a7aedb' - 'fbf568c6ed68ab4a372e03f9b84dafe8' - 'f323f5016ab38ceb3f10673ef9ae4337' - 'd66b2afce490ab8a82feae08c747e367' - '92fb1954fe3ab91d99a09c7f8a878218' - 'ab2cac300aa7a908ea8840649f0b51fc' - 'f1d010fc441350b8ff20213714ecae74' - 'd9e0f8a09b24757c274187469c7661d4' - '51016015352313cdd749ae1ff3e14614' - '9bc9c1177134d0f2fd782db3f394a318' - '35ca99ccfe9fcd2ed2d8668023d885e2') # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -264,7 +217,7 @@ pkg_config_qt5() { } prepare() { - [ -d ${srcdir}/${_pkgfqn} ] && rm -rf ${srcdir}/${_pkgfqn} + [[ -d ${srcdir}/${_pkgfqn} ]] && rm -rf ${srcdir}/${_pkgfqn} tar -xJf ${srcdir}/${_pkgfqn}.tar.xz -C ${srcdir} || true # cp -rf qt3d ${_pkgfqn}/ @@ -634,3 +587,51 @@ package() { # export PATH=/mingw32/bin:$PATH # export PKG_CONFIG_PATH=/mingw32/lib/pkgconfig # E:/m2/repo/mingw-w64-qt5/src/i686/qtbase/bin/qmake.exe -o Makefile qml.pro + +md5sums=('c2a249e8795d45200d997d96860d0353' + 'a2fa66089b171ebb76a6e0bda2ef4ca8' + 'e3210b753ba04762de2ed4cb9c786bf1' + '53edcf1df69ae8134a196292447ddaa3' + 'b0b5cc641cf8ebc2660fa819bede0089' + '457b97833220a81f542f529e7e0c549c' + 'f13cb61f49f572a2fafbad1a323be89f' + '0f2e3a2f790b07442f0964f4f2f96596' + 'a8f02cb5eb766e5bb8639cf8771537d2' + 'ea5f1d5bf2ea4c1d69e6b5de0765adfb' + '6914a82ad728ff0da3c959f53367384c' + 'a3d928580732a966bb20e5dd8bc25606' + '5a735ecec8b12cbd9d48015de4690b87' + '3b740ce9bca6d9019b09f6f38f07411a' + 'c0721e53378a24b8d013c7db59f14c17' + '0d7ce23a99b3f15d176c09e617a437f9' + '40ba7d8134a696d07be5be6692cfaca7' + '23f6818466f6b6646c13549110376022' + 'e65e3ed10e2dd98d5402321657c809c4' + '9ee6524aa78b5e4fbb47f10dc3b267a4' + '68b3878c96f4be33b2803e5676fe3245' + 'd64536bcf72b63d15df106e2c9913154' + '05e73ac3ead09802111cc13d8e3e28c8' + '09aaa20fe92aa3fb8eaa36f805503d7d' + 'a73080c2a48ab52ec8888745daa28c99' + '3b550bd6c58d09aa6729987ef16fed65' + '47c0f36b9de94cf878cd29b7e2b6ea1b' + '01e8030718f088178559a28958a05350' + '6d86c1358be850376ed05c2913175c50' + 'a264f298702e70007820ab2f37facffb' + '2d2e68ab042aadc3c0fd6845dbfae79a' + '7b1e5e2538b71e1e4ba006a241c853b9' + 'e009d2a1c7edc41c1f5974883d4f38b2' + '516036cb0721d1603009e01f5bd728aa' + '47e70b9a063aa99aba0096007ed5b83d' + '3049f9e43e24f7eaafb4659c72ca4789' + 'df6964dca18a315fab60adc0d7a7aedb' + 'fbf568c6ed68ab4a372e03f9b84dafe8' + 'f323f5016ab38ceb3f10673ef9ae4337' + 'd66b2afce490ab8a82feae08c747e367' + '92fb1954fe3ab91d99a09c7f8a878218' + 'ab2cac300aa7a908ea8840649f0b51fc' + 'f1d010fc441350b8ff20213714ecae74' + 'd9e0f8a09b24757c274187469c7661d4' + '51016015352313cdd749ae1ff3e14614' + '9bc9c1177134d0f2fd782db3f394a318' + '35ca99ccfe9fcd2ed2d8668023d885e2') From a3e024ac31c8ca10c6491ff713ec2770ff484eaf Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Mon, 9 Nov 2015 21:30:51 -0800 Subject: [PATCH 1846/2060] mingw-w64-tools-git: enable building of genlib --- mingw-w64-tools-git/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index 9e6c5080bd..cea67256e2 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -1,4 +1,5 @@ # Maintainer: Alexey Pavlov +# Contributor: Martell Malone _realname=tools pkgbase=mingw-w64-${_realname}-git @@ -20,7 +21,7 @@ source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" "0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch") md5sums=('SKIP' '4881e9b6cb7640e3542f45b88bd53a5e') -_tools="gendef genidl genpeimg widl" # genstubdll +_tools="gendef genlib genidl genpeimg widl" # genstubdll pkgver() { cd "$srcdir/mingw-w64" From 04c914c87535fb18234ea2ecbaa31bbb689486a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98ystein=20Krog?= Date: Tue, 10 Nov 2015 09:52:44 +0100 Subject: [PATCH 1847/2060] go: fix build GOROOT was not set correctly --- mingw-w64-hub/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-hub/PKGBUILD b/mingw-w64-hub/PKGBUILD index ded743c878..10c57d8578 100644 --- a/mingw-w64-hub/PKGBUILD +++ b/mingw-w64-hub/PKGBUILD @@ -18,7 +18,7 @@ md5sums=('889a31ee9d10ae9cb333480d8dbe881f') build() { cd "${srcdir}/${_realname}-${pkgver}" - GOROOT=${MINGW_PREFIX} ./script/build + GOROOT=${MINGW_PREFIX}/lib/go ./script/build gzip --best -c man/${_realname}.1> ${_realname}.1.gz } From 331d96c0732fe819ee50ba98e351c7ce1768d2f6 Mon Sep 17 00:00:00 2001 From: David Macek Date: Tue, 10 Nov 2015 11:49:40 +0100 Subject: [PATCH 1848/2060] hub: Fix makedepends --- mingw-w64-hub/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-hub/PKGBUILD b/mingw-w64-hub/PKGBUILD index 10c57d8578..79386761ba 100644 --- a/mingw-w64-hub/PKGBUILD +++ b/mingw-w64-hub/PKGBUILD @@ -12,7 +12,7 @@ options=('!strip') #TODO: change this when git-for-windows is upstreamed #depends=('${MINGW_PACKAGE_PREFIX}-git') depends=('git') -makedepends=("git ${MINGW_PACKAGE_PREFIX}-go") +makedepends=("git" "${MINGW_PACKAGE_PREFIX}-go") source=(${_realname}-${pkgver}.tar.gz::https://github.com/github/${_realname}/archive/v${pkgver}.tar.gz) md5sums=('889a31ee9d10ae9cb333480d8dbe881f') From 75405369da4e658b036afd5fe59f8740a33de0bc Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 10 Nov 2015 14:00:31 +0300 Subject: [PATCH 1849/2060] webkitgtk3: Rebuild with icu-56.1 --- mingw-w64-webkitgtk3/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-webkitgtk3/PKGBUILD b/mingw-w64-webkitgtk3/PKGBUILD index dc39a8c698..d6084bb567 100644 --- a/mingw-w64-webkitgtk3/PKGBUILD +++ b/mingw-w64-webkitgtk3/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=webkitgtk +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}2" "${MINGW_PACKAGE_PREFIX}-${_realname}3") pkgver=2.4.9 -pkgrel=1 +pkgrel=2 pkgdesc="GTK+ Web content engine library (mingw-w64)" arch=('any') url="http://webkitgtk.org/" From 8d3b9f90416541bc7416f58b6335879b2a68c209 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 10 Nov 2015 14:00:57 +0300 Subject: [PATCH 1850/2060] glpk: Update to 4.57 --- mingw-w64-glpk/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-glpk/PKGBUILD b/mingw-w64-glpk/PKGBUILD index 3da65e828b..02035584bb 100644 --- a/mingw-w64-glpk/PKGBUILD +++ b/mingw-w64-glpk/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Ray Donnelly _realname=glpk +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.55 -pkgrel=3 +pkgver=4.57 +pkgrel=1 pkgdesc="GNU Linear Programming Kit: solve LP, MIP and other problems (mingw-w64)" arch=('any') url="http://www.gnu.org/software/glpk/glpk.html" @@ -12,7 +13,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gmp") options=('staticlibs' !strip debug) source=("http://ftp.gnu.org/gnu/glpk/glpk-${pkgver}.tar.gz" 'timeval-64bit.patch') -sha1sums=('893058aada022a8dfc63c675ebcd7e7e86a3a363' +sha1sums=('d2df2de59798c35024df8d140a53453e29a095be' 'b496de484eb3df16dd91c253cd8230b4e42fb902') prepare () { From f7926625449deb6985cdd3766cab4471392d38b3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 10 Nov 2015 14:16:18 +0300 Subject: [PATCH 1851/2060] libcdr: Rebuild with boost 1.59, icu-56.1 --- mingw-w64-libcdr/PKGBUILD | 13 +++++++++---- mingw-w64-libcdr/libcdr-boost-1.59.patch | 22 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-libcdr/libcdr-boost-1.59.patch diff --git a/mingw-w64-libcdr/PKGBUILD b/mingw-w64-libcdr/PKGBUILD index 4de118fc75..6d3e6d7d1f 100644 --- a/mingw-w64-libcdr/PKGBUILD +++ b/mingw-w64-libcdr/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libcdr +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.1.1 -pkgrel=3 +pkgrel=4 pkgdesc="CorelDraw file format importer library for LibreOffice (mingw-w64)" arch=('any') license=('GPL2' 'LGPL2.1' 'MPL') @@ -17,16 +18,20 @@ depends=("${MINGW_PACKAGE_PREFIX}-icu" "${MINGW_PACKAGE_PREFIX}-lcms2" "${MINGW_PACKAGE_PREFIX}-librevenge" "${MINGW_PACKAGE_PREFIX}-libwpd") -source=(http://dev-www.libreoffice.org/src/${_realname}/${_realname}-${pkgver}.tar.xz) -md5sums=('72ed4d2f900eac95061207d026d5324c') +source=(http://dev-www.libreoffice.org/src/${_realname}/${_realname}-${pkgver}.tar.xz + libcdr-boost-1.59.patch) +md5sums=('72ed4d2f900eac95061207d026d5324c' + '72cbbdaeb95d9e5680944d3ac43f117f') prepare() { cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/libcdr-boost-1.59.patch + + autoreconf -fiv } build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - #cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" mkdir -p ${srcdir}/build-${MINGW_CHOST} cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ diff --git a/mingw-w64-libcdr/libcdr-boost-1.59.patch b/mingw-w64-libcdr/libcdr-boost-1.59.patch new file mode 100644 index 0000000000..70270aef33 --- /dev/null +++ b/mingw-w64-libcdr/libcdr-boost-1.59.patch @@ -0,0 +1,22 @@ +From f862293ad576d5f35a3c9e90fba762abeccaa1f0 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Sun, 30 Aug 2015 08:42:29 +0200 +Subject: [PATCH] rhbz#1258127 fix build with boost 1.59 + +Change-Id: I3c9be843d8fcc17650022f4189b68fde28ee3d42 +--- + src/lib/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am +index f8065a8..3f00cc5 100644 +--- a/src/lib/Makefile.am ++++ b/src/lib/Makefile.am +@@ -14,6 +14,7 @@ libcdr_@CDR_MAJOR_VERSION@_@CDR_MINOR_VERSION@_include_HEADERS = \ + + AM_CXXFLAGS = -I$(top_srcdir)/inc $(REVENGE_CFLAGS) $(LCMS2_CFLAGS) $(ZLIB_CFLAGS) $(ICU_CFLAGS) $(DEBUG_CXXFLAGS) -DLIBCDR_BUILD=1 + ++libcdr_@CDR_MAJOR_VERSION@_@CDR_MINOR_VERSION@_la_CPPFLAGS = -DBOOST_ERROR_CODE_HEADER_ONLY + libcdr_@CDR_MAJOR_VERSION@_@CDR_MINOR_VERSION@_la_LIBADD = $(REVENGE_LIBS) $(LCMS2_LIBS) $(ZLIB_LIBS) $(ICU_LIBS) @LIBCDR_WIN32_RESOURCE@ + libcdr_@CDR_MAJOR_VERSION@_@CDR_MINOR_VERSION@_la_DEPENDENCIES = @LIBCDR_WIN32_RESOURCE@ + libcdr_@CDR_MAJOR_VERSION@_@CDR_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined From 6368fbaa7f9b34db9027f7b93795b88be678948d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 10 Nov 2015 14:19:39 +0300 Subject: [PATCH 1852/2060] SDL*_mixer: Rebuild. --- mingw-w64-SDL2_mixer/PKGBUILD | 3 ++- mingw-w64-SDL_mixer/PKGBUILD | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-SDL2_mixer/PKGBUILD b/mingw-w64-SDL2_mixer/PKGBUILD index 91f71a510d..f8c5fc291a 100644 --- a/mingw-w64-SDL2_mixer/PKGBUILD +++ b/mingw-w64-SDL2_mixer/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=SDL2_mixer +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.0 -pkgrel=5 +pkgrel=6 pkgdesc="A simple multi-channel audio mixer (Version 2) (mingw-w64)" arch=('any') url="http://www.libsdl.org/projects/SDL_mixer" diff --git a/mingw-w64-SDL_mixer/PKGBUILD b/mingw-w64-SDL_mixer/PKGBUILD index 7fcf422f95..d7288084e3 100644 --- a/mingw-w64-SDL_mixer/PKGBUILD +++ b/mingw-w64-SDL_mixer/PKGBUILD @@ -4,7 +4,7 @@ _realname=SDL_mixer pkgbase=mingw-w64-${_realname} pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=1.2.12 -pkgrel=1 +pkgrel=2 pkgdesc="A simple multi-channel audio mixer (mingw-w64)" arch=('any') url="http://www.libsdl.org/projects/SDL_mixer/" From 3f3c81b28468dd1646c0a8e44370b186a35d7dfd Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 10 Nov 2015 14:39:07 +0300 Subject: [PATCH 1853/2060] graphicsmagick: Update to 1.3.23 --- mingw-w64-graphicsmagick/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-graphicsmagick/PKGBUILD b/mingw-w64-graphicsmagick/PKGBUILD index 9a986150f8..4b4c002067 100644 --- a/mingw-w64-graphicsmagick/PKGBUILD +++ b/mingw-w64-graphicsmagick/PKGBUILD @@ -3,7 +3,7 @@ _realname=graphicsmagick pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.3.22 +pkgver=1.3.23 pkgrel=1 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') @@ -36,7 +36,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-ghostscript: for Ghostscript support" options=('staticlibs' 'strip' 'libtool') source=(http://sourceforge.net/projects/graphicsmagick/files/${_realname}/${pkgver}/GraphicsMagick-${pkgver}.tar.xz 001-relocate.patch) -md5sums=('32e6ae274aa9318d2879978dd1e417a0' +md5sums=('9885ff5d91bc215a0adb3be1185e9777' '7ff566f64baa2f2e198717aab2d937b5') prepare() { From da8ef1d3c891fcdebf4556ddda9dba2314b4a9a3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Tue, 10 Nov 2015 20:41:04 +0300 Subject: [PATCH 1854/2060] Add more files format to gitattributes --- .gitattributes | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitattributes b/.gitattributes index dd2127a229..1bf1a07832 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,14 +2,17 @@ * text eol=lf # Denote all files that are truly binary and should not be modified +*.7z binary *.bz2 binary *.gz binary *.xz binary *.exe binary *.dll binary *.lzma binary +*.msi binary *.tgz binary *.zip binary *.rar binary +*.so binary *.lib binary *.a binary \ No newline at end of file From 4ee59b6ab4b911f3b53e61a9402a57508c009c97 Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Tue, 10 Nov 2015 23:47:01 +0200 Subject: [PATCH 1855/2060] mbedtls: Updated to 2.2.0 --- mingw-w64-mbedtls/PKGBUILD | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/mingw-w64-mbedtls/PKGBUILD b/mingw-w64-mbedtls/PKGBUILD index e38c032b1a..a09d4349ed 100644 --- a/mingw-w64-mbedtls/PKGBUILD +++ b/mingw-w64-mbedtls/PKGBUILD @@ -3,7 +3,7 @@ _realname=mbedtls pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.1.2 +pkgver=2.2.0 pkgrel=1 arch=('any') url='https://tls.mbed.org/' @@ -19,10 +19,10 @@ source=(${_realname}-${pkgver}.tar.gz::"https://tls.mbed.org/download/mbedtls-${ 'symlink-test.patch' 'dll-location.patch' 'enable-features.patch') -sha1sums=('c99dfeaa27489f0e74e704e69a181f6ceb3db2a7' - '72e420d5676007a168a82210dba960bea4e29190' - 'e905d99cacf3b3d91872e8736ff03ef950b32a34' - '9ce57bb1e9dd0298454b48faa0f1b5317d245cdb') +sha256sums=('3c6d3487ab056da94450cf907afc84f026aff7880182baffe137c98e3d00fb55' + '5c5382ff266e5cc293f31a46e1f10782c765c5cc1476dfc21d5c4ad405f647a0' + '89eb82f9e9fb456d0595035925d2d512aa2ca9b9e283b9c51d5524bfc8dbf996' + '1be88267b045a8728fe4dde663faf328ad788eeefcb43915beeb364b4d2dd2e8') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -39,7 +39,6 @@ build() { BUILD_TYPE="Debug" fi - # Build static libs [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p ${srcdir}/build-${MINGW_CHOST} cd ${srcdir}/build-${MINGW_CHOST} From db866e764e6c993a4caa8a009df6226d8a39aa19 Mon Sep 17 00:00:00 2001 From: David Macek Date: Tue, 10 Nov 2015 23:08:59 +0100 Subject: [PATCH 1856/2060] scite: Update to v3.6.2 --- mingw-w64-scite/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-scite/PKGBUILD b/mingw-w64-scite/PKGBUILD index 6606e86626..c673d51913 100644 --- a/mingw-w64-scite/PKGBUILD +++ b/mingw-w64-scite/PKGBUILD @@ -4,7 +4,7 @@ _realname=scite pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-defaults") -pkgver=3.6.1 +pkgver=3.6.2 pkgrel=1 arch=('any') url='http://www.scintilla.org/SciTE.html' @@ -16,7 +16,7 @@ source=("http://downloads.sourceforge.net/scintilla/${_realname}${pkgver//./}.tg "0001-Use-POSIX-tools-in-makefiles.patch" "0002-Prefix-library-names.patch" "0003-Use-FHS.patch") -md5sums=('a85e50f03312bd61ed4c450deb1f03bc' +md5sums=('7317b16f10ef1ceaf4347fc1fed35b4d' 'd4bd88fa3e173d26d9cacaef12b1d6f9' '2a9ec192f43f82d4b26b4a6667de350a' '17011da4ced7269d787433b599a1ae92') From 2498e6cc95fe8140d549e99301e9aadb9b0b8b11 Mon Sep 17 00:00:00 2001 From: David Macek Date: Tue, 10 Nov 2015 23:37:46 +0100 Subject: [PATCH 1857/2060] sqlite3, sqlite-analyzer: Update to v3.9.2 --- mingw-w64-sqlite-analyzer/PKGBUILD | 2 +- mingw-w64-sqlite3/PKGBUILD | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-sqlite-analyzer/PKGBUILD b/mingw-w64-sqlite-analyzer/PKGBUILD index 2b0c182642..d3193c40b0 100644 --- a/mingw-w64-sqlite-analyzer/PKGBUILD +++ b/mingw-w64-sqlite-analyzer/PKGBUILD @@ -2,7 +2,7 @@ _realname=sqlite-analyzer pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.8.11.1 +pkgver=3.9.2 pkgrel=1 pkgdesc="An analysis program SQLite database files (mingw-w64)" url="http://www.sqlite.org/" diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index f108b14bed..ca58efa196 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -4,8 +4,8 @@ _realname=sqlite3 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3090100 -pkgver=3.9.1.0 +_amalgamationver=3090200 +pkgver=3.9.2.0 pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=("http://www.sqlite.org/2015/sqlite-autoconf-${_amalgamationver}.tar.gz" LICENSE) -sha1sums=('6b7d22c24c9695118a2706c8e026fb3c31780a30' +sha1sums=('dae1ae5297fece9671ae0c434a7ecd0cda09c76a' 'e2aa07adae13aed713860b74165d3325a18c6792') options=('!strip' 'staticlibs' '!buildflags') From 68d1116b2ce49a9b090c3a938d77f6e1d9b50031 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 11 Nov 2015 10:16:23 +0300 Subject: [PATCH 1858/2060] qt5-static: Update to 5.5.1 --- .../0006-qt-5.3.0-win_flex-replace.patch | 27 ++-- ...-backslash-in-DESTDIR-on-mingw-worka.patch | 40 ++++++ mingw-w64-qt5-static/PKGBUILD | 116 +++++++++--------- 3 files changed, 109 insertions(+), 74 deletions(-) create mode 100644 mingw-w64-qt5-static/0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch diff --git a/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch b/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch index 719583ae5d..3849e8b06a 100644 --- a/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch +++ b/mingw-w64-qt5-static/0006-qt-5.3.0-win_flex-replace.patch @@ -4,8 +4,8 @@ diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/preprocessor/prepro @@ -41,14 +41,14 @@ $$ANGLE_DIR/src/compiler/preprocessor/Token.cpp - # NOTE: 'win_flex' and 'bison' can be found in qt5/gnuwin32/bin --flex.commands = $$addGnuPath(win_flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} + # NOTE: 'flex' and 'bison' can be found in qt5/gnuwin32/bin +-flex.commands = $$addGnuPath(flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} +flex.commands = flex --noline --nounistd --outfile=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} flex.output = ${QMAKE_FILE_BASE}.cpp flex.input = FLEX_SOURCES @@ -13,7 +13,7 @@ diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/preprocessor/prepro flex.variable_out = GENERATED_SOURCES QMAKE_EXTRA_COMPILERS += flex --bison.commands = $$addGnuPath(win_bison) --no-lines --skeleton=yacc.c --output=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} +-bison.commands = $$addGnuPath(bison) --no-lines --skeleton=yacc.c --output=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} +bison.commands = bison --no-lines --skeleton=yacc.c --output=${QMAKE_FILE_BASE}.cpp ${QMAKE_FILE_NAME} bison.output = ${QMAKE_FILE_BASE}.cpp bison.input = BISON_SOURCES @@ -21,11 +21,11 @@ diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/preprocessor/prepro diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/translator.pro b/qtbase/src/angle/src/compiler/translator.pro --- a/qtbase/src/angle/src/compiler/translator.pro 2014-05-02 23:06:13.969569900 +0100 +++ b/qtbase/src/angle/src/compiler/translator.pro 2014-05-02 23:06:33.467685100 +0100 -@@ -132,14 +132,14 @@ - } +@@ -163,14 +163,14 @@ - # NOTE: 'win_flex' and 'bison' can be found in qt5/gnuwin32/bin --flex.commands = $$addGnuPath(win_flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} + + # NOTE: 'flex' and 'bison' can be found in qt5/gnuwin32/bin +-flex.commands = $$addGnuPath(flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} +flex.commands = flex --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME} flex.output = ${QMAKE_FILE_BASE}_lex.cpp flex.input = FLEX_SOURCES @@ -33,22 +33,11 @@ diff -urN --ignore-all-space a/qtbase/src/angle/src/compiler/translator.pro b/qt flex.variable_out = GENERATED_SOURCES QMAKE_EXTRA_COMPILERS += flex --bison.commands = $$addGnuPath(win_bison) --no-lines --skeleton=yacc.c --defines=${QMAKE_FILE_BASE}_tab.h \ +-bison.commands = $$addGnuPath(bison) --no-lines --skeleton=yacc.c --defines=${QMAKE_FILE_BASE}_tab.h \ +bison.commands = bison --no-lines --skeleton=yacc.c --defines=${QMAKE_FILE_BASE}_tab.h \ --output=${QMAKE_FILE_BASE}_tab.cpp ${QMAKE_FILE_NAME} bison.output = ${QMAKE_FILE_BASE}_tab.h bison.input = BISON_SOURCES -diff -urN --ignore-all-space a/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf b/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf ---- a/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf 2014-05-02 23:06:28.221385000 +0100 -+++ b/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf 2014-05-02 23:06:33.474685500 +0100 -@@ -106,7 +106,6 @@ - # A newer version of flex is required on Windows. At the moment the only - # one that appears to provide binaries and is not cygwin is winflex. - FLEX = flex --equals(QMAKE_HOST.os, Windows): FLEX = win_flex - - BIN_EXTENSION = - win32: BIN_EXTENSION = .exe diff -urN --ignore-all-space a/qtwebkit/Tools/Scripts/webkitdirs.pm b/qtwebkit/Tools/Scripts/webkitdirs.pm --- a/qtwebkit/Tools/Scripts/webkitdirs.pm 2014-05-02 23:06:28.275388100 +0100 +++ b/qtwebkit/Tools/Scripts/webkitdirs.pm 2014-05-02 23:06:33.480685800 +0100 diff --git a/mingw-w64-qt5-static/0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch b/mingw-w64-qt5-static/0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch new file mode 100644 index 0000000000..87abbee588 --- /dev/null +++ b/mingw-w64-qt5-static/0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch @@ -0,0 +1,40 @@ +From c4f22ef225f6e4c2f1943da620a0dc6fff6296cb Mon Sep 17 00:00:00 2001 +From: Oswald Buddenhagen +Date: Tue, 13 Oct 2015 17:09:33 +0200 +Subject: [PATCH] fix the trailing-backslash-in-DESTDIR-on-mingw workaround + +at least the mingw version we use now interprets the sequence \# as a +literal hashmark, which completely defeats the previous hack. + +the new hack escapes the backslash with another backslash, which appears +to work. however, make does *not* remove the additional backslash, so +the result is a bit ugly. + +Change-Id: I591a2be443880b162094d04e5a5e624216b59311 +--- + qmake/generators/unix/unixmake2.cpp | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp +index d0cd5d2..9db64be 100644 +--- a/qmake/generators/unix/unixmake2.cpp ++++ b/qmake/generators/unix/unixmake2.cpp +@@ -269,11 +269,13 @@ + t << "DIST = " << valList(fileFixify(project->values("DISTFILES").toQStringList())) << " " + << fileVarList("HEADERS") << ' ' << fileVarList("SOURCES") << endl; + t << "QMAKE_TARGET = " << fileVar("QMAKE_ORIG_TARGET") << endl; +- // The comment is important for mingw32-make.exe on Windows as otherwise trailing slashes +- // would be interpreted as line continuation. The lack of spacing between the value and the +- // comment is also important as otherwise quoted use of "$(DESTDIR)" would include this +- // spacing. +- t << "DESTDIR = " << fileVar("DESTDIR") << "#avoid trailing-slash linebreak\n"; ++ QString destd = fileVar("DESTDIR"); ++ // When building on non-MSys MinGW, the path ends with a backslash, which ++ // GNU make will interpret that as a line continuation. Doubling the backslash ++ // avoids the problem, at the cost of the variable containing *both* backslashes. ++ if (destd.endsWith('\\')) ++ destd += '\\'; ++ t << "DESTDIR = " << destd << endl; + if(project->isActiveConfig("compile_libtool")) + t << "TARGETL = " << fileVar("TARGET_la") << endl; + t << "TARGET = " << fileVar("TARGET") << endl; // ### mixed use! diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index 8b23884194..cb2cba2e33 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -88,7 +88,7 @@ _opengl=desktop _opengl_for_configure="${_opengl}" pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_ver_base=5.5.0 +_ver_base=5.5.1 # qt5-static must be kept in its own prefix hierarchy # as otherwise it will conflict with qt5 itself @@ -99,7 +99,7 @@ else fi pkgver=${_ver_base//-/} -pkgrel=6 +pkgrel=1 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -208,58 +208,8 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch 0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch 0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch - 0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch) -md5sums=('65d5282f3dee0336da9ed1f77148952f' - 'a2fa66089b171ebb76a6e0bda2ef4ca8' - 'e3210b753ba04762de2ed4cb9c786bf1' - '53edcf1df69ae8134a196292447ddaa3' - 'b0b5cc641cf8ebc2660fa819bede0089' - '457b97833220a81f542f529e7e0c549c' - 'e34eef5aeec14b5b2a55344392c14dc7' - '0f2e3a2f790b07442f0964f4f2f96596' - 'a8f02cb5eb766e5bb8639cf8771537d2' - 'ea5f1d5bf2ea4c1d69e6b5de0765adfb' - '6914a82ad728ff0da3c959f53367384c' - 'a3d928580732a966bb20e5dd8bc25606' - '5a735ecec8b12cbd9d48015de4690b87' - '3b740ce9bca6d9019b09f6f38f07411a' - 'c0721e53378a24b8d013c7db59f14c17' - '0d7ce23a99b3f15d176c09e617a437f9' - '40ba7d8134a696d07be5be6692cfaca7' - '23f6818466f6b6646c13549110376022' - 'e65e3ed10e2dd98d5402321657c809c4' - '9ee6524aa78b5e4fbb47f10dc3b267a4' - '68b3878c96f4be33b2803e5676fe3245' - 'd64536bcf72b63d15df106e2c9913154' - '05e73ac3ead09802111cc13d8e3e28c8' - '09aaa20fe92aa3fb8eaa36f805503d7d' - 'a73080c2a48ab52ec8888745daa28c99' - '3b550bd6c58d09aa6729987ef16fed65' - '47c0f36b9de94cf878cd29b7e2b6ea1b' - '01e8030718f088178559a28958a05350' - '6d86c1358be850376ed05c2913175c50' - 'a264f298702e70007820ab2f37facffb' - '2d2e68ab042aadc3c0fd6845dbfae79a' - '7b1e5e2538b71e1e4ba006a241c853b9' - 'e009d2a1c7edc41c1f5974883d4f38b2' - '516036cb0721d1603009e01f5bd728aa' - '47e70b9a063aa99aba0096007ed5b83d' - '3049f9e43e24f7eaafb4659c72ca4789' - 'df6964dca18a315fab60adc0d7a7aedb' - 'fbf568c6ed68ab4a372e03f9b84dafe8' - 'f323f5016ab38ceb3f10673ef9ae4337' - '3323d4694a011b1048512fa27cf9768c' - '6e4a9c4850a1505a442f78d415ffadb9' - 'e49923654e2dff35e86cda6e1b566118' - 'b2269fae567d93fed03fe2affeca116c' - '1b72bcd4c6fb0be388a41d5baf55b430' - 'f63b3d50851ede0124dedccdcd7a6aed' - '27e0f474f66f05f3911c71621b24636d' - '51016015352313cdd749ae1ff3e14614' - '9bc9c1177134d0f2fd782db3f394a318' - '857309396cfdf6bfff91fe86afb947c2' - '54fe3fa20f28a546a60e8c0568ffb6d2' - 'cf3cb7b2c5a0088fbd34c94c4eccc6c9') + 0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch + 0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch) # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -421,8 +371,10 @@ prepare() { QMAKE_LFLAGS_RELEASE="-Wl,-s" fi + BIGOBJ_FLAGS="-Wa,-mbig-obj" + # Append these ones .. - sed -i "s|^QMAKE_CFLAGS .*= \(.*\)$|QMAKE_CFLAGS = \1 ${_ARCH_TUNE} ${LTCG_CFLAGS}|g" qtbase/mkspecs/win32-g++/qmake.conf + sed -i "s|^QMAKE_CFLAGS .*= \(.*\)$|QMAKE_CFLAGS = \1 ${_ARCH_TUNE} ${BIGOBJ_FLAGS} ${LTCG_CFLAGS}|g" qtbase/mkspecs/win32-g++/qmake.conf if [ -n "$OPTIM_D" ]; then sed -i "s|^QMAKE_CFLAGS_DEBUG .*= \(.*\)$|QMAKE_CFLAGS_DEBUG = \1 ${OPTIM_D}|g" qtbase/mkspecs/win32-g++/qmake.conf fi @@ -674,3 +626,57 @@ package() { # E:\msys64\mingw64\qt5-static\lib\cmake\Qt5Location\Qt5Location_QGeoServiceProviderFactoryOsm.cmake # E:\msys64\mingw64\qt5-static\lib\cmake\Qt5Positioning\Qt5Positioning_QGeoPositionInfoSourceFactoryPoll.cmake # E:\msys64\mingw64\qt5-static\lib\cmake\Qt5Qml\Qt5Qml_QTcpServerConnection.cmake + +md5sums=('c2a249e8795d45200d997d96860d0353' + 'a2fa66089b171ebb76a6e0bda2ef4ca8' + 'e3210b753ba04762de2ed4cb9c786bf1' + '53edcf1df69ae8134a196292447ddaa3' + 'b0b5cc641cf8ebc2660fa819bede0089' + '457b97833220a81f542f529e7e0c549c' + 'f13cb61f49f572a2fafbad1a323be89f' + '0f2e3a2f790b07442f0964f4f2f96596' + 'a8f02cb5eb766e5bb8639cf8771537d2' + 'ea5f1d5bf2ea4c1d69e6b5de0765adfb' + '6914a82ad728ff0da3c959f53367384c' + 'a3d928580732a966bb20e5dd8bc25606' + '5a735ecec8b12cbd9d48015de4690b87' + '3b740ce9bca6d9019b09f6f38f07411a' + 'c0721e53378a24b8d013c7db59f14c17' + '0d7ce23a99b3f15d176c09e617a437f9' + '40ba7d8134a696d07be5be6692cfaca7' + '23f6818466f6b6646c13549110376022' + 'e65e3ed10e2dd98d5402321657c809c4' + '9ee6524aa78b5e4fbb47f10dc3b267a4' + '68b3878c96f4be33b2803e5676fe3245' + 'd64536bcf72b63d15df106e2c9913154' + '05e73ac3ead09802111cc13d8e3e28c8' + '09aaa20fe92aa3fb8eaa36f805503d7d' + 'a73080c2a48ab52ec8888745daa28c99' + '3b550bd6c58d09aa6729987ef16fed65' + '47c0f36b9de94cf878cd29b7e2b6ea1b' + '01e8030718f088178559a28958a05350' + '6d86c1358be850376ed05c2913175c50' + 'a264f298702e70007820ab2f37facffb' + '2d2e68ab042aadc3c0fd6845dbfae79a' + '7b1e5e2538b71e1e4ba006a241c853b9' + 'e009d2a1c7edc41c1f5974883d4f38b2' + '516036cb0721d1603009e01f5bd728aa' + '47e70b9a063aa99aba0096007ed5b83d' + '3049f9e43e24f7eaafb4659c72ca4789' + 'df6964dca18a315fab60adc0d7a7aedb' + 'fbf568c6ed68ab4a372e03f9b84dafe8' + 'f323f5016ab38ceb3f10673ef9ae4337' + '3323d4694a011b1048512fa27cf9768c' + '6e4a9c4850a1505a442f78d415ffadb9' + 'e49923654e2dff35e86cda6e1b566118' + 'b2269fae567d93fed03fe2affeca116c' + '1b72bcd4c6fb0be388a41d5baf55b430' + 'f63b3d50851ede0124dedccdcd7a6aed' + '27e0f474f66f05f3911c71621b24636d' + '51016015352313cdd749ae1ff3e14614' + '9bc9c1177134d0f2fd782db3f394a318' + '857309396cfdf6bfff91fe86afb947c2' + '54fe3fa20f28a546a60e8c0568ffb6d2' + 'cf3cb7b2c5a0088fbd34c94c4eccc6c9' + 'c899f62a5f6419ffebd937673863858d') + From db348dd59dd79416cb500e1958b263cfd4fe91c9 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 11 Nov 2015 10:23:32 +0300 Subject: [PATCH 1859/2060] sqlite-analyzer: Update PKGBUILD --- mingw-w64-sqlite-analyzer/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-sqlite-analyzer/PKGBUILD b/mingw-w64-sqlite-analyzer/PKGBUILD index d3193c40b0..13f63b932d 100644 --- a/mingw-w64-sqlite-analyzer/PKGBUILD +++ b/mingw-w64-sqlite-analyzer/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: David Macek _realname=sqlite-analyzer +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.9.2 pkgrel=1 From 3a133f783a9526733f0225e933706cb283037998 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 11 Nov 2015 10:27:59 +0300 Subject: [PATCH 1860/2060] armadillo: Update to 6.200.3 --- mingw-w64-armadillo/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index 1851ad055e..8fa51f31c3 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -3,7 +3,7 @@ _realname=armadillo pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.600.2 +pkgver=6.200.3 pkgrel=1 pkgdesc="C++ linear algebra library (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" install=${_realname}-${CARCH}.install source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz 0001-mingw-config-fix.patch) -md5sums=('87699237ecb8e4a279f74a2c4a9ab090' +md5sums=('21a844fa7fd7c874c940cd2febb6fdb2' '5ce663ba53e15ee85fcd7a0b01006672') prepare() { From 0beeabb9766ff789dc5be229d1a769099ca85418 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 11 Nov 2015 11:13:43 +0300 Subject: [PATCH 1861/2060] pyqt5: Update to 5.5.1 --- mingw-w64-pyqt5/001-mingw-python.patch | 8 ++++---- mingw-w64-pyqt5/PKGBUILD | 7 +++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/mingw-w64-pyqt5/001-mingw-python.patch b/mingw-w64-pyqt5/001-mingw-python.patch index 8affbc1637..24dc3fa58c 100644 --- a/mingw-w64-pyqt5/001-mingw-python.patch +++ b/mingw-w64-pyqt5/001-mingw-python.patch @@ -36,13 +36,13 @@ diff -uNr PyQt-gpl-5.3.1-orig/configure.py PyQt-gpl-5.3.1/configure.py # The qmake spec we want to use. if self.py_platform == 'win32': -- if self.py_version >= 0x030300: +- if self.py_version >= 0x030500: + if _POSIX_BUILD: + self.qmake_spec = "win32-g++" -+ elif self.py_version >= 0x030300: ++ elif self.py_version >= 0x030500: + self.qmake_spec = 'win32-msvc2015' + elif self.py_version >= 0x030300: self.qmake_spec = 'win32-msvc2010' - elif self.py_version >= 0x020600: - self.qmake_spec = 'win32-msvc2008' @@ -668,7 +678,10 @@ # Create the output file, first making sure it doesn't exist. diff --git a/mingw-w64-pyqt5/PKGBUILD b/mingw-w64-pyqt5/PKGBUILD index f64c9a8f3f..38d6dd9221 100644 --- a/mingw-w64-pyqt5/PKGBUILD +++ b/mingw-w64-pyqt5/PKGBUILD @@ -3,7 +3,7 @@ _realname=pyqt5 pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-common" "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=5.5 +pkgver=5.5.1 pkgrel=1 pkgdesc="Qt5 bindings for Python (mingw-w64)" arch=('any') @@ -14,10 +14,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2-sip" "${MINGW_PACKAGE_PREFIX}-qt5") options=('strip' 'staticlibs') source=("http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-${pkgver}/PyQt-gpl-${pkgver}.tar.gz" - #"http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-${pkgver%.*}/PyQt-gpl-${pkgver%.*}.tar.gz" 001-mingw-python.patch) -md5sums=('60c0137b26c9ecbc3db0addb9638dc01' - '3b11ff26e229e256ee13f484422047d9') +md5sums=('586ed481b734c665b52fbb4f32161ff7' + 'b53c078e8a953d43388668299c8bb364') prepare() { cd "${srcdir}"/PyQt-gpl-${pkgver} From f57e0494d88c249d9c90e387265d62e52ddc8eb6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 11 Nov 2015 11:14:07 +0300 Subject: [PATCH 1862/2060] pyicu: Rebuild with icu-56.1 --- mingw-w64-python-icu/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-python-icu/PKGBUILD b/mingw-w64-python-icu/PKGBUILD index c681645244..d01fa72ee7 100644 --- a/mingw-w64-python-icu/PKGBUILD +++ b/mingw-w64-python-icu/PKGBUILD @@ -4,7 +4,7 @@ _realname=PyICU pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-icu" "${MINGW_PACKAGE_PREFIX}-python3-icu") pkgver=1.9.2 -pkgrel=2 +pkgrel=3 pkgdesc="Python extension wrapping the ICU C++ API (mingw-w64)" arch=('any') license=('BSD') From 20db6ee63335119dc9ed5c3168efc61fe1bebc91 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 11 Nov 2015 12:21:12 +0300 Subject: [PATCH 1863/2060] gtk3: Update to 3.18.3 --- ...080-backport-notebook-tab-drag-fixes.patch | 41 ------------------- ...90-backport-fix-introspection-syntax.patch | 24 ----------- mingw-w64-gtk3/PKGBUILD | 20 ++++----- 3 files changed, 7 insertions(+), 78 deletions(-) delete mode 100644 mingw-w64-gtk3/0080-backport-notebook-tab-drag-fixes.patch delete mode 100644 mingw-w64-gtk3/0090-backport-fix-introspection-syntax.patch diff --git a/mingw-w64-gtk3/0080-backport-notebook-tab-drag-fixes.patch b/mingw-w64-gtk3/0080-backport-notebook-tab-drag-fixes.patch deleted file mode 100644 index 05d96fd6a3..0000000000 --- a/mingw-w64-gtk3/0080-backport-notebook-tab-drag-fixes.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/gdk/win32/gdkdevice-virtual.c b/gdk/win32/gdkdevice-virtual.c -index 2ed341f..b947800 100644 ---- a/gdk/win32/gdkdevice-virtual.c -+++ b/gdk/win32/gdkdevice-virtual.c -@@ -266,10 +266,9 @@ gdk_device_virtual_grab (GdkDevice *device, - { - if (GetCursor () == GDK_WIN32_CURSOR (_gdk_win32_grab_cursor)->hcursor) - SetCursor (NULL); -- g_clear_object (&_gdk_win32_grab_cursor); - } - -- _gdk_win32_grab_cursor = cursor; -+ g_set_object (&_gdk_win32_grab_cursor, cursor); - - if (_gdk_win32_grab_cursor != NULL) - SetCursor (GDK_WIN32_CURSOR (_gdk_win32_grab_cursor)->hcursor); -@@ -303,9 +302,8 @@ gdk_device_virtual_ungrab (GdkDevice *device, - { - if (GetCursor () == GDK_WIN32_CURSOR (_gdk_win32_grab_cursor)->hcursor) - SetCursor (NULL); -- g_clear_object (&_gdk_win32_grab_cursor); - } -- _gdk_win32_grab_cursor = NULL; -+ g_clear_object (&_gdk_win32_grab_cursor); - - ReleaseCapture (); - } -diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c -index d08cee0..2ae8105 100644 ---- a/gdk/x11/gdkwindow-x11.c -+++ b/gdk/x11/gdkwindow-x11.c -@@ -4933,8 +4933,7 @@ finish_drag (MoveResizeData *mv_resize) - { - gdk_window_destroy (mv_resize->moveresize_emulation_window); - mv_resize->moveresize_emulation_window = NULL; -- g_object_unref (mv_resize->moveresize_window); -- mv_resize->moveresize_window = NULL; -+ g_clear_object (&mv_resize->moveresize_window); - g_clear_pointer (&mv_resize->moveresize_pending_event, g_free); - } - diff --git a/mingw-w64-gtk3/0090-backport-fix-introspection-syntax.patch b/mingw-w64-gtk3/0090-backport-fix-introspection-syntax.patch deleted file mode 100644 index 2156ab5ef8..0000000000 --- a/mingw-w64-gtk3/0090-backport-fix-introspection-syntax.patch +++ /dev/null @@ -1,24 +0,0 @@ -From f703ea65995f4c8bd5c7e1c554a36d5ca835067d Mon Sep 17 00:00:00 2001 -From: Matthias Clasen -Date: Thu, 22 Oct 2015 11:50:49 -0400 -Subject: win32: Fix introspection syntax - ---- - gdk/win32/gdkdisplay-win32.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c -index a98841a..0a47970 100644 ---- a/gdk/win32/gdkdisplay-win32.c -+++ b/gdk/win32/gdkdisplay-win32.c -@@ -29,7 +29,7 @@ - /** - * gdk_win32_display_set_cursor_theme: - * @display: (type GdkWin32Display): a #GdkDisplay -- * @name: (allow-none) the name of the cursor theme to use, or %NULL to unset -+ * @name: (allow-none): the name of the cursor theme to use, or %NULL to unset - * a previously set value - * @size: the cursor size to use, or 0 to keep the previous size - * --- -cgit v0.11.2 diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 9504b50813..c437312ae9 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -3,8 +3,8 @@ _realname=gtk3 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.18.2 -pkgrel=4 +pkgver=3.18.3 +pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="http://www.gtk.org" @@ -30,14 +30,10 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" 0013-fix-mingw-w64-fstat-call.mingw.patch - 0056-missing-file-toarray-pl.patch - 0080-backport-notebook-tab-drag-fixes.patch - 0090-backport-fix-introspection-syntax.patch) -md5sums=('230fd78e42419d35ff790784b457e5f2' + 0056-missing-file-toarray-pl.patch) +md5sums=('e172049e8c40ad03c4ac864b9a2e9bf4' '21789d52c1debcab59f8b6a99232de68' - 'f25cb2486d761b60e04036947552bf82' - '8d86218ed960cd86c8b04c987f7038e9' - '664ce09ba116bda6207ff2ef898392fa') + 'f25cb2486d761b60e04036947552bf82') prepare() { cd "${srcdir}/gtk+-${pkgver}" @@ -45,8 +41,6 @@ prepare() { rm -f gdk/broadway/toarray.pl patch -p1 -i ${srcdir}/0056-missing-file-toarray-pl.patch - patch -Np1 -i ${srcdir}/0080-backport-notebook-tab-drag-fixes.patch - patch -Np1 -i ${srcdir}/0090-backport-fix-introspection-syntax.patch autoreconf -i } @@ -70,9 +64,9 @@ build() { --enable-broadway-backend \ --disable-cups \ --with-included-immodules \ - --disable-silent-rules + --enable-silent-rules - make V=1 + make #V=1 } package() { From a4895f49513612198f197daf2c7b8c4e380bff89 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 11 Nov 2015 12:46:49 +0300 Subject: [PATCH 1864/2060] gspell: Update to 0.1.1 --- mingw-w64-gspell/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gspell/PKGBUILD b/mingw-w64-gspell/PKGBUILD index 073704fa91..d0e8504e3a 100644 --- a/mingw-w64-gspell/PKGBUILD +++ b/mingw-w64-gspell/PKGBUILD @@ -3,7 +3,7 @@ _realname=gspell pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.1.0 +pkgver=0.1.1 pkgrel=1 arch=('any') pkgdesc="Spell-checking library for GTK+ (mingw-w64)" @@ -19,7 +19,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-vala" license=("GPL 2") url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) -sha256sums=('8c10c5c447ca8c4a230516bd89bcfb00791fe3b4a7bbd4f34a53c72505db9628') +sha256sums=('fef8cd89d220fc9ad6b69ff625ca2263a09c69ba56fcefcc90cf4422896e4c52') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From e978c4d0df6f26f6afd0faa1940ece8456379a31 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 11 Nov 2015 12:57:02 +0300 Subject: [PATCH 1865/2060] nspr: Update to 4.10.10 --- mingw-w64-nspr/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-nspr/PKGBUILD b/mingw-w64-nspr/PKGBUILD index 75d77b8421..8072362517 100644 --- a/mingw-w64-nspr/PKGBUILD +++ b/mingw-w64-nspr/PKGBUILD @@ -4,7 +4,7 @@ _realname=nspr pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.10.9 +pkgver=4.10.10 pkgrel=1 pkgdesc="Netscape Portable Runtime (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ license=(MPL2) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "zip") options=('staticlibs' 'strip' '!emptydirs') -source=(ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${pkgver}/src/${_realname}-${pkgver}.tar.gz +source=(https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${pkgver}/src/${_realname}-${pkgver}.tar.gz http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/moztools-static.zip nspr-4.10.6-mswsock.patch nspr-4.10.2_autotools.patch @@ -21,7 +21,7 @@ source=(ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${pkgver}/src/${_re nspr-4.10.2_staticbuild.patch nspr-4.10.2_x64.patch manifest) -md5sums=('86769a7fc3b4c30f7fdcb45ab284c452' +md5sums=('cf43d04668ab20f12cd0b5fa24315354' 'd9c6516eb4dca209e4b7ae46a4758ffa' '43c68c49f28be6ebc3ff7e4f5552a8c0' '09a990b21309ff8a1297e628afc782ff' From 63b882028b0d3d0641416aa663a960addaf057d0 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 11 Nov 2015 13:13:37 +0300 Subject: [PATCH 1866/2060] nss: Update to 3.20.1 --- mingw-w64-nss/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-nss/PKGBUILD b/mingw-w64-nss/PKGBUILD index 52673d5464..243f499694 100644 --- a/mingw-w64-nss/PKGBUILD +++ b/mingw-w64-nss/PKGBUILD @@ -4,8 +4,8 @@ _realname=nss pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.20 -_nsprver=4.10.9 +pkgver=3.20.1 +_nsprver=4.10.10 pkgrel=1 pkgdesc="Mozilla Network Security Services (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-nspr" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "zip" "perl") options=('staticlibs' 'strip' '!emptydirs') -source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/src/${_realname}-${pkgver}.tar.gz +source=(https://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/src/${_realname}-${pkgver}.tar.gz http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/moztools-static.zip nss.pc.in nss-config.in @@ -26,7 +26,7 @@ source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/s blank-cert8.db blank-key3.db blank-secmod.db) -md5sums=('db83988499d1eb3b623d77ecf495b0f5' +md5sums=('c285ef92de0031cb0a8caa60d396d618' 'd9c6516eb4dca209e4b7ae46a4758ffa' 'c547b030c57fe1ed8b77c73bf52b3ded' '46bee81908f1e5b26d6a7a2e14c64d9f' From eddb003aa5181e012b3a171782eb1fb234d68cc3 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 12 Nov 2015 00:16:00 +0000 Subject: [PATCH 1867/2060] qt5: Resync with qt5-static, KDE F5 + krita (WIP) --- mingw-w64-PKGBUILD-common/build-kf5-shared | 36 ++++++++ mingw-w64-PKGBUILD-common/kde-frameworks5 | 4 +- mingw-w64-attica-qt5/PKGBUILD | 10 ++- mingw-w64-cmake/PKGBUILD | 2 +- mingw-w64-karchive-qt5/PKGBUILD | 3 +- mingw-w64-kcodecs-qt5/PKGBUILD | 3 +- mingw-w64-kconfig-qt5/PKGBUILD | 1 - mingw-w64-kcoreaddons-qt5/PKGBUILD | 3 +- mingw-w64-kdbusaddons-qt5/PKGBUILD | 5 +- mingw-w64-kglobalaccel-qt5/PKGBUILD | 1 - mingw-w64-kguiaddons-qt5/PKGBUILD | 1 - mingw-w64-ki18n-qt5/PKGBUILD | 1 - mingw-w64-kidletime-qt5/PKGBUILD | 1 - mingw-w64-kimageformats-qt5/PKGBUILD | 1 - mingw-w64-kitemmodels-qt5/PKGBUILD | 1 - mingw-w64-kitemviews-qt5/PKGBUILD | 1 - mingw-w64-kjs-qt5/PKGBUILD | 1 - mingw-w64-kplotting-qt5/PKGBUILD | 1 - mingw-w64-krita-git/PKGBUILD | 85 +++++++++++++++++++ mingw-w64-krita-git/krita-git.install | 13 +++ mingw-w64-kwidgetsaddons-qt5/PKGBUILD | 1 - mingw-w64-kwindowsystem-qt5/PKGBUILD | 1 - ...ke-also-link-plugins-and-plugin-deps.patch | 6 +- ...earrange-STATIC-vs-INTERFACE-targets.patch | 35 ++++++++ ...to-use-static-builds-of-Qt-with-CMa.patch} | 10 +-- ...ed-libraries-in-prl-files-for-CMake.patch} | 18 ++-- ...te_cmake-prl-file-has-no-lib-prefix.patch} | 2 +- ...e-also-link-plugins-and-plugin-deps.patch} | 26 +++--- ...0-win32-g++-enable-qtwebengine-build.patch | 11 --- ...ALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch | 11 +++ ...0-win32-g++-enable-qtwebengine-build.patch | 12 +++ ...orm-plugin-for-qcollectiongenerator.patch} | 0 ...Revert-Revert-fix-NTFS-mount-points.patch} | 0 ..._LIBDIRS-and-INCDIRS-to-qconfig-pri.patch} | 59 +++++++------ ...face-segfaults-with-minimal-platform.patch | 75 ++++++++++++++++ ...O_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch | 11 +++ mingw-w64-qt5/PKGBUILD | 56 +++++++----- 37 files changed, 390 insertions(+), 118 deletions(-) create mode 100644 mingw-w64-PKGBUILD-common/build-kf5-shared create mode 100644 mingw-w64-krita-git/PKGBUILD create mode 100644 mingw-w64-krita-git/krita-git.install create mode 100644 mingw-w64-qt5/0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch rename mingw-w64-qt5/{0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch => 0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch} (87%) rename mingw-w64-qt5/{0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch => 0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch} (57%) rename mingw-w64-qt5/{0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch => 0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch} (97%) rename mingw-w64-qt5/{0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch => 0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch} (92%) delete mode 100644 mingw-w64-qt5/0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch create mode 100644 mingw-w64-qt5/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch create mode 100644 mingw-w64-qt5/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch rename mingw-w64-qt5/{0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch => 0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch} (100%) rename mingw-w64-qt5/{0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch => 0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch} (100%) rename mingw-w64-qt5/{0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch => 0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch} (79%) create mode 100644 mingw-w64-qt5/0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch create mode 100644 mingw-w64-qt5/0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch diff --git a/mingw-w64-PKGBUILD-common/build-kf5-shared b/mingw-w64-PKGBUILD-common/build-kf5-shared new file mode 100644 index 0000000000..59107fe9cf --- /dev/null +++ b/mingw-w64-PKGBUILD-common/build-kf5-shared @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +THISDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# Listed in tier-order +declare -a pkgs=( +#extra-cmake-modules +attica-qt5 +karchive-qt5 +kcodecs-qt5 +kconfig-qt5 +kcoreaddons-qt5 +kdbusaddons-qt5 +kglobalaccel-qt5 +kguiaddons-qt5 +ki18n-qt5 +kidletime-qt5 +kimageformats-qt5 +kitemmodels-qt5 +kitemviews-qt5 +kjs-qt5 +kplotting-qt5 +kwidgetsaddons-qt5 +kwindowsystem-qt5 +qt5 +qwt-qt5 +solid-qt5 +) + +for pkg in "${pkgs[@]}"; do + pushd ${THISDIR}/../mingw-w64-${pkg} + export KF5_VARIANT=shared + rm -rf *pkg*xz src pkg + makepkg-mingw -siLf || exit 1 + popd +done diff --git a/mingw-w64-PKGBUILD-common/kde-frameworks5 b/mingw-w64-PKGBUILD-common/kde-frameworks5 index 5161686ef2..282d8be024 100644 --- a/mingw-w64-PKGBUILD-common/kde-frameworks5 +++ b/mingw-w64-PKGBUILD-common/kde-frameworks5 @@ -8,8 +8,9 @@ _kde_f5_init_package() { fi _basename=${_PKG} _realname=${_PKG}-qt5${_namesuff} + pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" - url="https://projects.kde.org/projects/frameworks/${_PKG}" + url=https://projects.kde.org/projects/frameworks/${_PKG} } _kde_f5_add_depends() { @@ -31,4 +32,3 @@ _kde_f5_CMAKE_BUILD_TYPE() { echo "Release" fi } - diff --git a/mingw-w64-attica-qt5/PKGBUILD b/mingw-w64-attica-qt5/PKGBUILD index a54b9498d0..a7f2794dbc 100644 --- a/mingw-w64-attica-qt5/PKGBUILD +++ b/mingw-w64-attica-qt5/PKGBUILD @@ -2,8 +2,12 @@ # Maintainer (ArchLinux): Andrea Scarpino # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "attica" pkgver=5.12.0 @@ -43,7 +47,7 @@ build() { -DBUILD_TESTING=OFF \ -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ - -G'MSYS Makefiles' --debug-output + -G'MSYS Makefiles' make } diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index c0278139ff..24cf3311a0 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -19,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libarchive" "${MINGW_PACKAGE_PREFIX}-zlib") optdepends=("${MINGW_PACKAGE_PREFIX}-qt5: CMake Qt GUI") -options=('staticlibs') # '!strip' 'debug' +options=('staticlibs' '!strip' 'debug') source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" diff --git a/mingw-w64-karchive-qt5/PKGBUILD b/mingw-w64-karchive-qt5/PKGBUILD index aa99305cee..27571d2a45 100644 --- a/mingw-w64-karchive-qt5/PKGBUILD +++ b/mingw-w64-karchive-qt5/PKGBUILD @@ -9,7 +9,6 @@ _kde_f5_init_package "${_variant}" "karchive" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Qt 5 addon providing access to numerous types of archives (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") @@ -42,7 +41,7 @@ build() { -DBUILD_TESTING=OFF \ -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ - -G'MSYS Makefiles' --debug-output --trace + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kcodecs-qt5/PKGBUILD b/mingw-w64-kcodecs-qt5/PKGBUILD index 5b8d268f32..b3571c41dc 100644 --- a/mingw-w64-kcodecs-qt5/PKGBUILD +++ b/mingw-w64-kcodecs-qt5/PKGBUILD @@ -9,7 +9,6 @@ _kde_f5_init_package "${_variant}" "kcodecs" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Plugins allowing Qt applications to access further types of images (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") @@ -42,7 +41,7 @@ build() { -DBUILD_TESTING=OFF \ -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ - -G'MSYS Makefiles' --debug-output + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kconfig-qt5/PKGBUILD b/mingw-w64-kconfig-qt5/PKGBUILD index e33b135508..b7e6518d46 100644 --- a/mingw-w64-kconfig-qt5/PKGBUILD +++ b/mingw-w64-kconfig-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kconfig" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="KConfig provides an advanced configuration system (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") diff --git a/mingw-w64-kcoreaddons-qt5/PKGBUILD b/mingw-w64-kcoreaddons-qt5/PKGBUILD index d20c89b089..173874d233 100644 --- a/mingw-w64-kcoreaddons-qt5/PKGBUILD +++ b/mingw-w64-kcoreaddons-qt5/PKGBUILD @@ -9,7 +9,6 @@ _kde_f5_init_package "${_variant}" "kcoreaddons" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Classes built on top of QtCore to perform various tasks (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") @@ -43,7 +42,7 @@ build() { -DBUILD_TESTING=OFF \ -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ - -G'MSYS Makefiles' --debug-output + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kdbusaddons-qt5/PKGBUILD b/mingw-w64-kdbusaddons-qt5/PKGBUILD index 3174f3578a..84122bfdc9 100644 --- a/mingw-w64-kdbusaddons-qt5/PKGBUILD +++ b/mingw-w64-kdbusaddons-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kdbusaddons" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="KConfig provides an advanced configuration system (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") @@ -41,8 +40,8 @@ build() { -DBUILD_TESTING=OFF \ -DECM_DIR=${MINGW_PREFIX}/share/ECM \ "${extra_config[@]}" \ - -G'MSYS Makefiles' --debug-output - make VERBOSE=1 + -G'MSYS Makefiles' + make } package() { diff --git a/mingw-w64-kglobalaccel-qt5/PKGBUILD b/mingw-w64-kglobalaccel-qt5/PKGBUILD index 5b9ba6c8c0..9f67df315f 100644 --- a/mingw-w64-kglobalaccel-qt5/PKGBUILD +++ b/mingw-w64-kglobalaccel-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kglobalaccel" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Global desktop keyboard shortcuts (mingw-w64-qt5${_namesuff})" license=('LGPL') depends=('qt5-base' 'shared-mime-info' 'gamin') diff --git a/mingw-w64-kguiaddons-qt5/PKGBUILD b/mingw-w64-kguiaddons-qt5/PKGBUILD index 72b8ed90dc..94800bd4ed 100644 --- a/mingw-w64-kguiaddons-qt5/PKGBUILD +++ b/mingw-w64-kguiaddons-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kguiaddons" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Utilities for graphical user interfaces (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") diff --git a/mingw-w64-ki18n-qt5/PKGBUILD b/mingw-w64-ki18n-qt5/PKGBUILD index 5b0fffa146..84dbec7090 100644 --- a/mingw-w64-ki18n-qt5/PKGBUILD +++ b/mingw-w64-ki18n-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "ki18n" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="KDE Gettext-based UI text internationalization (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") diff --git a/mingw-w64-kidletime-qt5/PKGBUILD b/mingw-w64-kidletime-qt5/PKGBUILD index 5b1c8db490..8b695caf4e 100644 --- a/mingw-w64-kidletime-qt5/PKGBUILD +++ b/mingw-w64-kidletime-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kidletime" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Reporting of idle time of user and system (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") diff --git a/mingw-w64-kimageformats-qt5/PKGBUILD b/mingw-w64-kimageformats-qt5/PKGBUILD index 7034ef831f..cbe0d96ca8 100644 --- a/mingw-w64-kimageformats-qt5/PKGBUILD +++ b/mingw-w64-kimageformats-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kimageformats" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") diff --git a/mingw-w64-kitemmodels-qt5/PKGBUILD b/mingw-w64-kitemmodels-qt5/PKGBUILD index c8102cfa96..2653ddf457 100644 --- a/mingw-w64-kitemmodels-qt5/PKGBUILD +++ b/mingw-w64-kitemmodels-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kitemmodels" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") diff --git a/mingw-w64-kitemviews-qt5/PKGBUILD b/mingw-w64-kitemviews-qt5/PKGBUILD index 66d3fad7f1..eb8b9b778a 100644 --- a/mingw-w64-kitemviews-qt5/PKGBUILD +++ b/mingw-w64-kitemviews-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kitemviews" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") diff --git a/mingw-w64-kjs-qt5/PKGBUILD b/mingw-w64-kjs-qt5/PKGBUILD index b34298f588..9700a56e4b 100644 --- a/mingw-w64-kjs-qt5/PKGBUILD +++ b/mingw-w64-kjs-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kjs" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") diff --git a/mingw-w64-kplotting-qt5/PKGBUILD b/mingw-w64-kplotting-qt5/PKGBUILD index 15fd6feb59..797b9656a6 100644 --- a/mingw-w64-kplotting-qt5/PKGBUILD +++ b/mingw-w64-kplotting-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kplotting" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") diff --git a/mingw-w64-krita-git/PKGBUILD b/mingw-w64-krita-git/PKGBUILD new file mode 100644 index 0000000000..87723576c3 --- /dev/null +++ b/mingw-w64-krita-git/PKGBUILD @@ -0,0 +1,85 @@ +# (MSYS2) Maintainer: Ray Donnelly +# (ArchLinux) Maintainer: Gustavo Alvarez +# (ArchLinux) Contributor: Bruno Pagani (a.k.a. ArchangeGabriel) + +# For now as I've not got shared KF5 ready. +_variant=-static +#_variant=-shared + +_basename=krita +_realname=${_basename}-git +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.0.89.r39172.46b0002 +pkgrel=1 +pkgdesc="A free digital painting application. Digital Painting, Creative Freedom!. (GIT Version) (mingw-w64)" +arch=('any') +url="http://www.krita.org" +license=('GPL2') +depends=("${MINGW_PACKAGE_PREFIX}-fftw" + "${MINGW_PACKAGE_PREFIX}-gsl" + "${MINGW_PACKAGE_PREFIX}-LibRaw" + "${MINGW_PACKAGE_PREFIX}-opencolorio" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-exiv2" + "${MINGW_PACKAGE_PREFIX}-openexr" + "${MINGW_PACKAGE_PREFIX}-poppler" +# "${MINGW_PACKAGE_PREFIX}-kio" + "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme" + ) +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules" + "git" + "${MINGW_PACKAGE_PREFIX}-boost" +# "${MINGW_PACKAGE_PREFIX}-vc" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-eigen3" + ) +provides=("${MINGW_PACKAGE_PREFIX}-krita") +conflicts=("${MINGW_PACKAGE_PREFIX}-krita") +install=krita-git.install +source=('git://anongit.kde.org/krita.git') +sha1sums=('SKIP') + +pkgver() { + cd "${srcdir}"/${_basename} + _ver="$(cat CMakeLists.txt | grep -m3 -e CALLIGRA_STABLE_VERSION_MAJOR -e CALLIGRA_STABLE_VERSION_MINOR -e CALLIGRA_VERSION_RELEASE | cut -d ')' -f1 | grep -o "[[:digit:]]*" | paste -sd'.')" + echo "${_ver}.r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}"/${_basename} +} + +build() { + local -a extra_config + mkdir -p build-${CARCH}${_variant} + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + if check_option "debug" "n"; then + extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi + + cmake ../${_basename} \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} diff --git a/mingw-w64-krita-git/krita-git.install b/mingw-w64-krita-git/krita-git.install new file mode 100644 index 0000000000..3b3aff7d9e --- /dev/null +++ b/mingw-w64-krita-git/krita-git.install @@ -0,0 +1,13 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-mime-database usr/share/mime &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/mingw-w64-kwidgetsaddons-qt5/PKGBUILD b/mingw-w64-kwidgetsaddons-qt5/PKGBUILD index 00e9edf471..92f1f23f54 100644 --- a/mingw-w64-kwidgetsaddons-qt5/PKGBUILD +++ b/mingw-w64-kwidgetsaddons-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kwidgetsaddons" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") diff --git a/mingw-w64-kwindowsystem-qt5/PKGBUILD b/mingw-w64-kwindowsystem-qt5/PKGBUILD index 4ddbff7e9f..39f1d00168 100644 --- a/mingw-w64-kwindowsystem-qt5/PKGBUILD +++ b/mingw-w64-kwindowsystem-qt5/PKGBUILD @@ -7,7 +7,6 @@ _kde_f5_init_package "${_variant}" "kwindowsystem" pkgver=5.12.0 pkgrel=1 arch=('any') -url=('https://projects.kde.org/projects/frameworks/${_basename}') pkgdesc="Plugins to allow QImage to support extra file formats (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") diff --git a/mingw-w64-qt5-static/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch b/mingw-w64-qt5-static/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch index 949c6e4ac9..a7d5109789 100644 --- a/mingw-w64-qt5-static/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch +++ b/mingw-w64-qt5-static/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch @@ -63,7 +63,7 @@ diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/c !!ELSE add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) !!ENDIF -@@ -276,6 +294,46 @@ +@@ -276,6 +294,48 @@ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) @@ -93,7 +93,9 @@ diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/c + get_filename_component(_plugindir ${PLUGIN_LOCATION} PATH) + get_filename_component(_plugindirname ${_plugindir} NAME) + get_filename_component(_pluginname ${PLUGIN_LOCATION} NAME) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY STATIC_PLUGINS ${Plugin}) ++!!ENDIF + string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/share/qt5/plugins/${_plugindirname}/\\\\1.prl\" plugin_prl_file_location ${_pluginname}) +!!IF !isEmpty(CMAKE_STATIC_TYPE) + macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"share/qt5/plugins\" ${PLUGIN_LOCATION} ) @@ -110,7 +112,7 @@ diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/c !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_RELEASE_TYPE) !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) -@@ -356,37 +414,6 @@ +@@ -356,37 +416,6 @@ ) !!ENDIF // TEMPLATE != aux diff --git a/mingw-w64-qt5/0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch b/mingw-w64-qt5/0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch new file mode 100644 index 0000000000..055ac6d30e --- /dev/null +++ b/mingw-w64-qt5/0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch @@ -0,0 +1,35 @@ +From 1f36ecb8823d607883aabfee07d9a0c03982257b Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 26 Aug 2015 12:45:43 +0100 +Subject: [PATCH 38/38] cmake: Rearrange STATIC vs INTERFACE targets + +Otherwise we attempt to add_library(Qt5::UiPlugin STATIC IMPORTED) +for header-only modules when building Qt5 statically. +--- + mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +index d2358ca..6b1dc95 100644 +--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in ++++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +@@ -222,13 +222,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) + endif() + !!ENDIF + ++!!IF equals(TEMPLATE, aux) ++ add_library(Qt5::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED) ++!!ELSE + !!IF !isEmpty(CMAKE_STATIC_TYPE) + add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") + !!ELSE +-!!IF equals(TEMPLATE, aux) +- add_library(Qt5::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED) +-!!ELSE + add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) + !!ENDIF + !!ENDIF +-- +2.5.0 + diff --git a/mingw-w64-qt5/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch b/mingw-w64-qt5/0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch similarity index 87% rename from mingw-w64-qt5/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch rename to mingw-w64-qt5/0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch index b45c4b454c..bdd42d50e1 100644 --- a/mingw-w64-qt5/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch +++ b/mingw-w64-qt5/0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch @@ -1,7 +1,7 @@ -diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in ---- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 10:34:57.668743500 +0000 -+++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 14:40:54.557845500 +0000 -@@ -57,13 +57,13 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:00:26.576032700 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:00:42.742765400 +0100 +@@ -65,13 +65,13 @@ !!ENDIF _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES @@ -17,7 +17,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c ) !!IF !isEmpty(CMAKE_WINDOWS_BUILD) -@@ -197,6 +197,40 @@ +@@ -228,6 +228,40 @@ !!IF !isEmpty(CMAKE_STATIC_TYPE) add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") diff --git a/mingw-w64-qt5/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch b/mingw-w64-qt5/0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch similarity index 57% rename from mingw-w64-qt5/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch rename to mingw-w64-qt5/0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch index b84c06071b..48461ff5b4 100644 --- a/mingw-w64-qt5/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch +++ b/mingw-w64-qt5/0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch @@ -1,7 +1,7 @@ -diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in ---- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-13 15:16:58.576095000 +0000 -+++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2014-12-14 10:10:27.960078400 +0000 -@@ -209,9 +209,8 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:06:08.512109600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:06:33.366637700 +0100 +@@ -240,9 +240,8 @@ # all the right information. macro(macro_process_prl_file prl_file_location Configuration) if (EXISTS \"${prl_file_location}\") @@ -13,12 +13,12 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c if (_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES) set(_list_sep \";\") endif() -diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/qmake/generators/makefile.cpp qt-everywhere-opensource-src-5.4.0/qtbase/qmake/generators/makefile.cpp ---- qt-everywhere-opensource-src-5.4.0.orig/qtbase/qmake/generators/makefile.cpp 2014-12-13 15:16:49.416878800 +0000 -+++ qt-everywhere-opensource-src-5.4.0/qtbase/qmake/generators/makefile.cpp 2014-12-14 10:11:38.093945800 +0000 -@@ -1009,6 +1009,13 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/qmake/generators/makefile.cpp qt-everywhere-opensource-src-5.5.0/qtbase/qmake/generators/makefile.cpp +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/qmake/generators/makefile.cpp 2015-08-26 14:29:10.131124600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/qmake/generators/makefile.cpp 2015-08-26 15:06:33.375635900 +0100 +@@ -1006,6 +1006,13 @@ for (ProStringList::Iterator it = libs.begin(); it != libs.end(); ++it) - t << project->values((*it).toKey()).join(' ').replace('\\', "\\\\") << " "; + t << qv(project->values((*it).toKey())); t << endl; + t << "QMAKE_PRL_LIBS_FOR_CMAKE = "; + QString sep; diff --git a/mingw-w64-qt5/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch b/mingw-w64-qt5/0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch similarity index 97% rename from mingw-w64-qt5/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch rename to mingw-w64-qt5/0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch index a7bd7384c1..dc83b1a1d2 100644 --- a/mingw-w64-qt5/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch +++ b/mingw-w64-qt5/0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch @@ -1,6 +1,6 @@ --- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/create_cmake.prf.orig 2014-12-14 20:11:38.710428500 +0000 +++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/create_cmake.prf 2014-12-14 22:16:48.451709600 +0000 -@@ -214,8 +214,8 @@ +@@ -233,8 +233,8 @@ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.a CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a diff --git a/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch b/mingw-w64-qt5/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch similarity index 92% rename from mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch rename to mingw-w64-qt5/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch index f4f3f29554..a7d5109789 100644 --- a/mingw-w64-qt5/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch +++ b/mingw-w64-qt5/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch @@ -1,7 +1,7 @@ -diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in ---- qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-01-03 22:54:41.110170600 +0000 -+++ qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-01-03 22:58:39.875293700 +0000 -@@ -56,14 +56,17 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:31:26.194016900 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-26 15:21:30.905016900 +0100 +@@ -64,14 +64,17 @@ set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\") !!ENDIF _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) @@ -21,7 +21,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c ) !!IF !isEmpty(CMAKE_WINDOWS_BUILD) -@@ -207,17 +210,31 @@ +@@ -238,17 +241,31 @@ # Parse the prl files generated by qmake to get the link dependencies. They # contain all the information we need, and they are the only location with # all the right information. @@ -55,7 +55,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) macro_process_prl_file(\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG) !!ELSE -@@ -230,6 +247,7 @@ +@@ -261,6 +278,7 @@ !!ENDIF # Excerpt from: end @@ -63,7 +63,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!ELSE add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) !!ENDIF -@@ -242,6 +260,46 @@ +@@ -276,6 +294,48 @@ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) @@ -93,7 +93,9 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c + get_filename_component(_plugindir ${PLUGIN_LOCATION} PATH) + get_filename_component(_plugindirname ${_plugindir} NAME) + get_filename_component(_pluginname ${PLUGIN_LOCATION} NAME) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY STATIC_PLUGINS ${Plugin}) ++!!ENDIF + string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/share/qt5/plugins/${_plugindirname}/\\\\1.prl\" plugin_prl_file_location ${_pluginname}) +!!IF !isEmpty(CMAKE_STATIC_TYPE) + macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"share/qt5/plugins\" ${PLUGIN_LOCATION} ) @@ -110,9 +112,9 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_RELEASE_TYPE) !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) -@@ -316,38 +363,6 @@ - - !!ENDIF // CMAKE_DEBUG_TYPE +@@ -356,37 +416,6 @@ + ) + !!ENDIF // TEMPLATE != aux - file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") - unset(pluginTargets) @@ -145,7 +147,7 @@ diff -urN qt-everywhere-opensource-src-5.4.0.orig/qtbase/mkspecs/features/data/c - endforeach() - endif() - -- + !!IF !isEmpty(CMAKE_MODULE_EXTRAS) include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") - !!ENDIF + diff --git a/mingw-w64-qt5/0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch b/mingw-w64-qt5/0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch deleted file mode 100644 index e7bed45d1b..0000000000 --- a/mingw-w64-qt5/0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- qt-everywhere-opensource-src-5.4.0/qtwebengine/tools/qmake/mkspecs/features/functions.prf.orig 2014-12-05 16:25:19.000000000 +0000 -+++ qt-everywhere-opensource-src-5.4.0/qtwebengine/tools/qmake/mkspecs/features/functions.prf 2015-02-03 18:15:21.775257200 +0000 -@@ -7,7 +7,7 @@ - - linux-g++*:!isGCCVersionSupported():return(false) - !isPythonVersionSupported(): return(false) -- linux-g++*|win32-msvc2013|macx-clang: return(true) -+ linux-g++*|win32-*|macx-clang: return(true) - boot2qt: return(true) - - warning("Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation".) diff --git a/mingw-w64-qt5/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch b/mingw-w64-qt5/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch new file mode 100644 index 0000000000..ddb7315751 --- /dev/null +++ b/mingw-w64-qt5/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch @@ -0,0 +1,11 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-27 12:15:50.549764900 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2015-08-27 12:32:35.136763200 +0100 +@@ -249,6 +249,7 @@ + if (EXISTS \"${prl_file_location}\") + file(STRINGS \"${prl_file_location}\" prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE\") + string(REGEX REPLACE \"QMAKE_PRL_LIBS_FOR_CMAKE *= *([^\\n]*)\" \"\\\\1\" static_depends ${prl_strings} ) ++ string(REGEX REPLACE \"\\\\$\\\\$\\\\[QT_INSTALL_LIBS\\\\]\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib\" static_depends \"${static_depends}\") + if (_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES) + set(_list_sep \";\") + endif() diff --git a/mingw-w64-qt5/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch b/mingw-w64-qt5/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch new file mode 100644 index 0000000000..0ee3e6be77 --- /dev/null +++ b/mingw-w64-qt5/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch @@ -0,0 +1,12 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtwebengine/tools/qmake/mkspecs/features/functions.prf qt-everywhere-opensource-src-5.5.0/qtwebengine/tools/qmake/mkspecs/features/functions.prf +--- qt-everywhere-opensource-src-5.5.0.orig/qtwebengine/tools/qmake/mkspecs/features/functions.prf 2015-08-26 14:34:22.019269600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtwebengine/tools/qmake/mkspecs/features/functions.prf 2015-08-26 15:34:44.547516900 +0100 +@@ -14,7 +14,7 @@ + + linux-g++*:!isGCCVersionSupported(): return(false) + !isPythonVersionSupported(): return(false) +- linux-g++*|win32-msvc2013|macx-clang: return(true) ++ linux-g++*|win32-*|macx-clang: return(true) + boot2qt: return(true) + + skipBuild("Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.") diff --git a/mingw-w64-qt5/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch b/mingw-w64-qt5/0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch similarity index 100% rename from mingw-w64-qt5/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch rename to mingw-w64-qt5/0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch diff --git a/mingw-w64-qt5/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch b/mingw-w64-qt5/0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch similarity index 100% rename from mingw-w64-qt5/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch rename to mingw-w64-qt5/0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch diff --git a/mingw-w64-qt5/0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch b/mingw-w64-qt5/0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch similarity index 79% rename from mingw-w64-qt5/0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch rename to mingw-w64-qt5/0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch index a8e2c41d4b..a822acb72e 100644 --- a/mingw-w64-qt5/0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch +++ b/mingw-w64-qt5/0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch @@ -1,18 +1,19 @@ ---- x86_64/qtbase/tools/configure/environment.h.orig 2015-02-17 04:56:37.000000000 +0000 -+++ x86_64/qtbase/tools/configure/environment.h 2015-04-27 20:38:52.767995400 +0100 -@@ -57,6 +57,10 @@ - static QString detectQMakeSpec(); - static Compiler compilerFromQMakeSpec(const QString &qmakeSpec); - -+ static int compileSomething(const QString &flags, const QString &code, QString &stdOut, QString &stdErr); -+ static QString detectCompilerDefaultIncDirs(); -+ static QString detectCompilerDefaultLibDirs(); -+ - static int execute(QStringList arguments, const QStringList &additionalEnv, const QStringList &removeEnv); - static QString execute(const QString &command, int *returnCode = 0); - static bool cpdir(const QString &srcDir, const QString &destDir); ---- x86_64/qtbase/tools/configure/environment.cpp.orig 2015-02-17 04:56:37.000000000 +0000 -+++ x86_64/qtbase/tools/configure/environment.cpp 2015-04-28 00:16:41.914633600 +0100 +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/configureapp.cpp qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/configureapp.cpp +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/configureapp.cpp 2015-08-26 14:29:09.999124600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/configureapp.cpp 2015-08-26 15:41:02.749516900 +0100 +@@ -3448,6 +3448,9 @@ + // FIXME: add detection + configStream << " QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib" << endl; + configStream << " QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include" << endl; ++ } else { ++ configStream << " QMAKE_DEFAULT_LIBDIRS = " << Environment::detectCompilerDefaultLibDirs() << endl; ++ configStream << " QMAKE_DEFAULT_INCDIRS = " << Environment::detectCompilerDefaultIncDirs() << endl; + } + configStream << "}" << endl; + configStream << "QT_CONFIG += " << qtConfig.join(' ') << endl; +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/environment.cpp qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/environment.cpp +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/environment.cpp 2015-08-26 14:29:10.004624600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/environment.cpp 2015-08-26 15:41:02.742516900 +0100 @@ -40,6 +40,8 @@ #include #include @@ -22,7 +23,7 @@ #include #include -@@ -236,6 +238,112 @@ +@@ -249,6 +251,112 @@ #endif }; @@ -135,15 +136,17 @@ /*! Creates a commandling from \a program and it \a arguments, escaping characters that needs it. ---- x86_64/qtbase/tools/configure/configureapp.cpp.orig 2015-04-27 17:41:27.741748800 +0100 -+++ x86_64/qtbase/tools/configure/configureapp.cpp 2015-04-27 19:08:16.403164800 +0100 -@@ -3388,6 +3388,9 @@ - // FIXME: add detection - configStream << " QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib" << endl; - configStream << " QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include" << endl; -+ } else { -+ configStream << " QMAKE_DEFAULT_LIBDIRS = " << Environment::detectCompilerDefaultLibDirs() << endl; -+ configStream << " QMAKE_DEFAULT_INCDIRS = " << Environment::detectCompilerDefaultIncDirs() << endl; - } - configStream << "}" << endl; - configStream << "QT_CONFIG += " << qtConfig.join(' ') << endl; +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/environment.h qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/environment.h +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/tools/configure/environment.h 2015-08-26 14:29:10.018624600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/tools/configure/environment.h 2015-08-26 15:41:02.735516900 +0100 +@@ -58,6 +58,10 @@ + static Compiler compilerFromQMakeSpec(const QString &qmakeSpec); + static QString gccVersion(); + ++ static int compileSomething(const QString &flags, const QString &code, QString &stdOut, QString &stdErr); ++ static QString detectCompilerDefaultIncDirs(); ++ static QString detectCompilerDefaultLibDirs(); ++ + static int execute(QStringList arguments, const QStringList &additionalEnv, const QStringList &removeEnv); + static QString execute(const QString &command, int *returnCode = 0); + static bool cpdir(const QString &srcDir, const QString &destDir); diff --git a/mingw-w64-qt5/0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch b/mingw-w64-qt5/0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch new file mode 100644 index 0000000000..7c6e68ebe4 --- /dev/null +++ b/mingw-w64-qt5/0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch @@ -0,0 +1,75 @@ +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/dialogs/qmessagebox.cpp qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/dialogs/qmessagebox.cpp +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/dialogs/qmessagebox.cpp 2015-08-26 14:28:59.145124600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/dialogs/qmessagebox.cpp 2015-08-26 15:46:50.092516900 +0100 +@@ -68,9 +68,11 @@ + #if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) + HMENU qt_getWindowsSystemMenu(const QWidget *w) + { +- if (QWindow *window = QApplicationPrivate::windowForWidget(w)) +- if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) +- return GetSystemMenu(reinterpret_cast(handle), false); ++ if (QGuiApplication::platformNativeInterface()) { ++ if (QWindow *window = QApplicationPrivate::windowForWidget(w)) ++ if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) ++ return GetSystemMenu(reinterpret_cast(handle), false); ++ } + return 0; + } + #endif +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/dialogs/qwizard_win.cpp qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/dialogs/qwizard_win.cpp +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/dialogs/qwizard_win.cpp 2015-08-26 14:28:59.139624600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/dialogs/qwizard_win.cpp 2015-08-26 15:46:50.084516900 +0100 +@@ -288,10 +288,11 @@ + // The dynamic property takes effect when creating the platform window. + window->setProperty("_q_windowsCustomMargins", customMarginsV); + // If a platform window exists, change via native interface. +- if (QPlatformWindow *platformWindow = window->handle()) { +- QGuiApplication::platformNativeInterface()-> +- setWindowProperty(platformWindow, QStringLiteral("WindowsCustomMargins"), +- customMarginsV); ++ if (QGuiApplication::platformNativeInterface()) { ++ if (QPlatformWindow *platformWindow = window->handle()) ++ QGuiApplication::platformNativeInterface()-> ++ setWindowProperty(platformWindow, QStringLiteral("WindowsCustomMargins"), ++ customMarginsV); + } + } + } +@@ -685,6 +686,8 @@ + // wizard is a child window. + HDC QVistaHelper::backingStoreDC(const QWidget *wizard, QPoint *offset) + { ++ if (!QGuiApplication::platformNativeInterface()) ++ return static_cast(0); + HDC hdc = static_cast(QGuiApplication::platformNativeInterface()->nativeResourceForBackingStore(QByteArrayLiteral("getDC"), wizard->backingStore())); + *offset = QPoint(0, 0); + if (!wizard->windowHandle()) +@@ -699,7 +702,7 @@ + // Do not use winId() as this enforces native children of the parent + // widget when called before show() as happens when calling setWizardStyle(). + if (QWindow *window = wizard->windowHandle()) +- if (window->handle()) ++ if (window->handle() && QGuiApplication::platformNativeInterface()) + if (void *vHwnd = QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("handle"), window)) + return static_cast(vHwnd); + qWarning().nospace() << "Failed to obtain HWND for wizard."; +diff -urN qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/kernel/qapplication_p.h qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/kernel/qapplication_p.h +--- qt-everywhere-opensource-src-5.5.0.orig/qtbase/src/widgets/kernel/qapplication_p.h 2015-08-26 14:28:59.349124600 +0100 ++++ qt-everywhere-opensource-src-5.5.0/qtbase/src/widgets/kernel/qapplication_p.h 2015-08-26 15:46:50.098516900 +0100 +@@ -254,10 +254,12 @@ + #ifdef Q_OS_WIN + static HWND getHWNDForWidget(const QWidget *widget) + { +- if (QWindow *window = windowForWidget(widget)) +- if (window->handle()) +- return static_cast (QGuiApplication::platformNativeInterface()-> +- nativeResourceForWindow(QByteArrayLiteral("handle"), window)); ++ if (QGuiApplication::platformNativeInterface()) { ++ if (QWindow *window = windowForWidget(widget)) ++ if (window->handle()) ++ return static_cast (QGuiApplication::platformNativeInterface()-> ++ nativeResourceForWindow(QByteArrayLiteral("handle"), window)); ++ } + return 0; + } + #endif diff --git a/mingw-w64-qt5/0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch b/mingw-w64-qt5/0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch new file mode 100644 index 0000000000..b0f7be5757 --- /dev/null +++ b/mingw-w64-qt5/0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch @@ -0,0 +1,11 @@ +--- qtbase/configure.orig 2015-08-25 12:42:05.631715900 +0100 ++++ qtbase/configure 2015-08-26 13:57:02.447124600 +0100 +@@ -4462,7 +4462,7 @@ + if compileTest unix/ipc_posix "ipc_posix" ; then + QCONFIG_FLAGS="$QCONFIG_FLAGS QT_POSIX_IPC" + else +- if [ "$XPLATFORM_ANDROID" = "no" ] ; then ++ if [ "$XPLATFORM_ANDROID" = "no" -a "$XPLATFORM_MINGW" = "no" ] ; then + QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SYSTEMSEMAPHORE QT_NO_SHAREDMEMORY" + fi + fi diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index e6b3652ebe..22d45f2e1b 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -80,7 +80,7 @@ else fi pkgver=${_ver_base//-/} -pkgrel=2 +pkgrel=3 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -183,14 +183,16 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch 0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch 0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch - 0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch - 0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch - 0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch - 0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch - 0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch - 0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch - 0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch - 0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch) + 0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch + 0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch + 0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch + 0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch + 0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch + 0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch + 0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch + 0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch + 0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch + 0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch) # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -302,18 +304,24 @@ prepare() { # Patches so that qt5-static can be used with cmake. patch -p1 -i ${srcdir}/0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch patch -p1 -i ${srcdir}/0037-qt-5.4.0-Improve-cmake-plugin-detection-as-not-all-are-suffixed-Plugin.patch - patch -p1 -i ${srcdir}/0038-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch - patch -p1 -i ${srcdir}/0039-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch - patch -p1 -i ${srcdir}/0040-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch - patch -p1 -i ${srcdir}/0041-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch -# patch -p1 -i ${srcdir}/0042-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch - patch -p1 -i ${srcdir}/0043-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch pushd qtbase > /dev/null - patch -p1 -i ${srcdir}/0044-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch + patch -p1 -i ${srcdir}/0038-qt-5.5.0-cmake-Rearrange-STATIC-vs-INTERFACE-targets.patch + popd + + patch -p1 -i ${srcdir}/0039-qt-5.4.0-Make-it-possible-to-use-static-builds-of-Qt-with-CMa.patch + patch -p1 -i ${srcdir}/0040-qt-5.4.0-Generate-separated-libraries-in-prl-files-for-CMake.patch + patch -p1 -i ${srcdir}/0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch + patch -p1 -i ${srcdir}/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch + patch -p1 -i ${srcdir}/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch +# patch -p1 -i ${srcdir}/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch + patch -p1 -i ${srcdir}/0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch + + pushd qtbase > /dev/null + patch -p1 -i ${srcdir}/0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch popd > /dev/null - patch -p1 -i ${srcdir}/0045-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch + patch -p1 -i ${srcdir}/0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch # See: https://bugreports.qt-project.org/browse/QTBUG-37902 # _ver_num=${_ver_base%%-*} @@ -627,11 +635,13 @@ md5sums=('c2a249e8795d45200d997d96860d0353' 'df6964dca18a315fab60adc0d7a7aedb' 'fbf568c6ed68ab4a372e03f9b84dafe8' 'f323f5016ab38ceb3f10673ef9ae4337' - 'd66b2afce490ab8a82feae08c747e367' - '92fb1954fe3ab91d99a09c7f8a878218' - 'ab2cac300aa7a908ea8840649f0b51fc' - 'f1d010fc441350b8ff20213714ecae74' - 'd9e0f8a09b24757c274187469c7661d4' + '3323d4694a011b1048512fa27cf9768c' + '6e4a9c4850a1505a442f78d415ffadb9' + 'e49923654e2dff35e86cda6e1b566118' + 'b2269fae567d93fed03fe2affeca116c' + 'e1307c1fd57be3024a1e715c9061ebfb' + 'f63b3d50851ede0124dedccdcd7a6aed' + '27e0f474f66f05f3911c71621b24636d' '51016015352313cdd749ae1ff3e14614' '9bc9c1177134d0f2fd782db3f394a318' - '35ca99ccfe9fcd2ed2d8668023d885e2') + '857309396cfdf6bfff91fe86afb947c2') From 865795ae4ffc23826f1a7a68174044ebedb7617d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 12 Nov 2015 01:38:47 +0000 Subject: [PATCH 1868/2060] qt5-static: Resync with qt5 (non-static) --- mingw-w64-qt5-static/PKGBUILD | 26 +++++++++++++++---------- mingw-w64-qt5-static/qt5-i686.install | 4 ++-- mingw-w64-qt5-static/qt5-x86_64.install | 4 ++-- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index cb2cba2e33..fe2796d064 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -99,7 +99,7 @@ else fi pkgver=${_ver_base//-/} -pkgrel=1 +pkgrel=3 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -128,7 +128,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-xpm-nox" \ "${MINGW_PACKAGE_PREFIX}-zlib" ) ) - +optdepends=($([[ "$_variant" == "-shared" ]] && echo \ + "${MINGW_PACKAGE_PREFIX}-libmariadbclient" \ + "${MINGW_PACKAGE_PREFIX}-firebird" \ + "${MINGW_PACKAGE_PREFIX}-postgresql") + ) makedepends=("bison" "diffutils" "flex" @@ -142,6 +146,7 @@ makedepends=("bison" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-make" + "${MINGW_PACKAGE_PREFIX}-ninja" $([[ "$_variant" == "-static" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-dbus" \ "${MINGW_PACKAGE_PREFIX}-openssl") @@ -327,7 +332,7 @@ prepare() { patch -p1 -i ${srcdir}/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch # More odds and sods. - patch -p1 -i ${srcdir}/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch +# patch -p1 -i ${srcdir}/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch patch -p1 -i ${srcdir}/0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch pushd qtbase > /dev/null patch -p1 -i ${srcdir}/0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch @@ -486,6 +491,7 @@ build() { unset CFLAGS unset CXXFLAGS unset LDFLAGS +# export NINJA_PATH=${MINGW_PREFIX}/bin/ninja.exe ${_configure} \ -prefix ${QTDIR_WIN} \ @@ -511,7 +517,7 @@ build() { "${_fastbuild_config[@]}" \ "${_minimal_config[@]}" - # I'm Keeping this around while qt5-static cmake problems persist. + # I'm Keeping this around while qt5-static cmake problems persist (hopefully not long!) # qtbase/mkspecs/modules-inst/qt_lib_core.pri # pushd src/x86_64 # ROOT=$(pwd -W) @@ -535,6 +541,10 @@ build() { # can happen at -j9 so make twice (dumpdoc.exe depends on libqtiff but can get built # first). ${_make} ${MAKEFLAGS} || ${_make} ${MAKEFLAGS} + # For quicker turn-around testing qtwebengine. + # ${_make} module-qtbase + # ${_make} module-qtwebengine + # exit 1 # Fix paths # find "${QTDIR}" -name Makefile -exec sed -i "s|/usr/lib/qt/bin/qdoc|${QTDIR}/qtbase/bin/qdoc|g" {} + @@ -670,13 +680,9 @@ md5sums=('c2a249e8795d45200d997d96860d0353' '6e4a9c4850a1505a442f78d415ffadb9' 'e49923654e2dff35e86cda6e1b566118' 'b2269fae567d93fed03fe2affeca116c' - '1b72bcd4c6fb0be388a41d5baf55b430' + 'e1307c1fd57be3024a1e715c9061ebfb' 'f63b3d50851ede0124dedccdcd7a6aed' '27e0f474f66f05f3911c71621b24636d' '51016015352313cdd749ae1ff3e14614' '9bc9c1177134d0f2fd782db3f394a318' - '857309396cfdf6bfff91fe86afb947c2' - '54fe3fa20f28a546a60e8c0568ffb6d2' - 'cf3cb7b2c5a0088fbd34c94c4eccc6c9' - 'c899f62a5f6419ffebd937673863858d') - + '857309396cfdf6bfff91fe86afb947c2') diff --git a/mingw-w64-qt5-static/qt5-i686.install b/mingw-w64-qt5-static/qt5-i686.install index 06da17aa1b..adee0008d8 100644 --- a/mingw-w64-qt5-static/qt5-i686.install +++ b/mingw-w64-qt5-static/qt5-i686.install @@ -1,8 +1,8 @@ post_install() { if [ -f "mingw32/qt5-static/bin/qmake.exe" ]; then - pushd mingw32/qt5-static/bin > /dev/null + cd mingw32/qt5-static/bin ../../bin/qtbinpatcher --verbose --nobackup - popd > /dev/null + cd - fi } diff --git a/mingw-w64-qt5-static/qt5-x86_64.install b/mingw-w64-qt5-static/qt5-x86_64.install index 4bfe899083..546e16b0e0 100644 --- a/mingw-w64-qt5-static/qt5-x86_64.install +++ b/mingw-w64-qt5-static/qt5-x86_64.install @@ -1,8 +1,8 @@ post_install() { if [ -f "mingw64/qt5-static/bin/qmake.exe" ]; then - pushd mingw64/qt5-static/bin > /dev/null + cd mingw64/qt5-static/bin ../../bin/qtbinpatcher --verbose --nobackup - popd > /dev/null + cd - fi } From 8d8864b46d51d9a991b4c0dfae282596f4682bc6 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 12 Nov 2015 09:11:31 +0000 Subject: [PATCH 1869/2060] qt5: PKGBUILD resync --- mingw-w64-qt5/PKGBUILD | 63 +++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 10 deletions(-) diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 22d45f2e1b..0ad5b6cece 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -5,6 +5,10 @@ # as {mingw-w64-qt5/PKGBUILD,mingw-w64-qt5-static/PKGBUILD} #_variant=-static _variant=-shared +# If you want a quick turnaround during testing then +# use this. *Not* the same as _fastbuild; that's set +# always for static and never for non-static. +#_minimal="yes" # Getting crashes that only happen in release builds? # Define this and you may have a hope of figuring out @@ -52,6 +56,20 @@ else _configure=./configure.bat fi +declare -a _minimal_config +if [ "{_configure}" = "./configure" ]; then + if [ "{$_minimal}" = "yes" ]; then + _minimal_config+=("-skip" "qtwebkit" + "-skip" "qtwebkit-examples") + fi +else + if [ "{$_minimal}" = "yes" ]; then + _minimal_config+=("-no-webkit" + "-no-script" + "-no-scripttools") + fi +fi + # When using the configure bash script, MSYS2 make is # probably a better choice as otherwise the Makefiles # can have MSYS2 paths in them. We try to handle this @@ -192,7 +210,10 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch 0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch 0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch - 0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch) + 0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch + 0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch + 0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch + 0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch) # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -234,13 +255,9 @@ prepare() { patch -p1 -i ${srcdir}/0005-qt-5.3.0-syncqt-fix.patch patch -p1 -i ${srcdir}/0006-qt-5.3.0-win_flex-replace.patch - # My qt-5.3.0 win32-g++ static patches are against qtbase's dev branch. + # Some patches are against qtbase's repository. pushd qtbase > /dev/null patch -p1 -i ${srcdir}/0007-qt-5.3.0-win32-g-Enable-static-builds.patch - # Despite qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch the following .a (i.e. non-import) - # static libraries end up being made: - # ActiveQt (which is always built statically), libQt5OpenGLExtensions{d}.a, libQt5PlatformSupport{d}.a - # libQt5QmlDevTools.a, libQt5UiTools{d}.a libqtmain{d}.a patch -p1 -i ${srcdir}/0008-qt-5.3.0-win32-g-Add-QMAKE_EXTENSION_IMPORTLIB-defaulting-to-.patch ###patch -p1 -i ${srcdir}/0009-qt-5.3.0-qmlimportscanner-Ensure-the-correct-variant-is-run.patch patch -p1 -i ${srcdir}/0010-qt-5.3.0-qdoc-increase-stack-size-for-win32-g-too.patch @@ -314,7 +331,9 @@ prepare() { patch -p1 -i ${srcdir}/0041-qt-5.4.0-Fix-mingw-create_cmake-prl-file-has-no-lib-prefix.patch patch -p1 -i ${srcdir}/0042-qt-5.4.0-static-cmake-also-link-plugins-and-plugin-deps.patch patch -p1 -i ${srcdir}/0043-qt-5.5.0-static-cmake-regex-QT_INSTALL_LIBS-in-QMAKE_PRL_LIBS_FOR_CMAKE.patch -# patch -p1 -i ${srcdir}/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch + + # More odds and sods. +# patch -p1 -i ${srcdir}/0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch patch -p1 -i ${srcdir}/0045-qt-5.4.1-static-use-qminimal-platform-plugin-for-qcollectiongenerator.patch pushd qtbase > /dev/null @@ -322,6 +341,10 @@ prepare() { popd > /dev/null patch -p1 -i ${srcdir}/0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch + patch -p1 -i ${srcdir}/0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch + pushd qtbase > /dev/null + patch -p1 -i ${srcdir}/0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch + popd > /dev/null # See: https://bugreports.qt-project.org/browse/QTBUG-37902 # _ver_num=${_ver_base%%-*} @@ -463,7 +486,7 @@ build() { if [ "${_fastbuild}" = "yes" ]; then _fastbuild_config+=("-nomake" "examples") fi - # We probably want to build these always + # We probably want to build tests always # but not package them? _fastbuild_config+=("-nomake" "tests") @@ -471,7 +494,7 @@ build() { unset CFLAGS unset CXXFLAGS unset LDFLAGS - export NINJA_PATH=${MINGW_PREFIX}/bin/ninja.exe +# export NINJA_PATH=${MINGW_PREFIX}/bin/ninja.exe ${_configure} \ -prefix ${QTDIR_WIN} \ @@ -494,8 +517,28 @@ build() { "${_extra_config[@]}" \ "${_sql_config[@]}" \ "${_variant_config[@]}" \ - "${_fastbuild_config[@]}" + "${_fastbuild_config[@]}" \ + "${_minimal_config[@]}" + # I'm Keeping this around while qt5-static cmake problems persist (hopefully not long!) + # qtbase/mkspecs/modules-inst/qt_lib_core.pri + # pushd src/x86_64 + # ROOT=$(pwd -W) + # pushd qtbase/ + # ${ROOT}/qtbase/bin/qmake.exe ${ROOT}/qtbase/qtbase.pro -o Makefile + # popd + # cp -rf qtbase/src/corelib qtbase/src/corelib.pre-write-cmake + # pushd qtbase/src/corelib + # ${ROOT}/qtbase/bin/qmake.exe ${ROOT}/qtbase/src/corelib/corelib.pro -d -d -d -d -o Makefile > log.txt + # popd + # popd + # . + # .. or .. (this alternative could be used when _minimal=yes) + # . + # pushd src/x86_64 + # ${_make} module-qtbase && ${_make} module-qtbase-install_subtargets + # popd + # .. do your testing. # There is a race condition / dependency problem with libqtiff and dumpdoc.exe which # can happen at -j9 so make twice (dumpdoc.exe depends on libqtiff but can get built # first). From cbcce66db9840bd162d361a7119c9def754c9ca2 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 12 Nov 2015 09:14:52 +0000 Subject: [PATCH 1870/2060] qt5-static: Update checksums --- mingw-w64-qt5-static/PKGBUILD | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index fe2796d064..ae36ad0a27 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -685,4 +685,7 @@ md5sums=('c2a249e8795d45200d997d96860d0353' '27e0f474f66f05f3911c71621b24636d' '51016015352313cdd749ae1ff3e14614' '9bc9c1177134d0f2fd782db3f394a318' - '857309396cfdf6bfff91fe86afb947c2') + '857309396cfdf6bfff91fe86afb947c2' + '54fe3fa20f28a546a60e8c0568ffb6d2' + 'cf3cb7b2c5a0088fbd34c94c4eccc6c9' + 'c899f62a5f6419ffebd937673863858d') From e1bc82291129d7da9abd8a4456b95974ff7f4722 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 13 Nov 2015 00:44:51 +0000 Subject: [PATCH 1871/2060] KDEF5: Shared build enablement (WIP) --- mingw-w64-PKGBUILD-common/build-kf5-shared | 9 ++-- mingw-w64-attica-qt5/PKGBUILD | 21 ++++---- mingw-w64-extra-cmake-modules/PKGBUILD | 11 ++--- mingw-w64-karchive-qt5/PKGBUILD | 27 +++++----- mingw-w64-kcodecs-qt5/PKGBUILD | 27 +++++----- mingw-w64-kconfig-qt5/PKGBUILD | 30 +++++++----- mingw-w64-kcoreaddons-qt5/PKGBUILD | 28 ++++++----- mingw-w64-kcrash-qt5/PKGBUILD | 57 ++++++++++++++++++++++ mingw-w64-kdbusaddons-qt5/PKGBUILD | 28 ++++++----- mingw-w64-kglobalaccel-qt5/PKGBUILD | 35 +++++++------ mingw-w64-kguiaddons-qt5/PKGBUILD | 28 ++++++----- mingw-w64-ki18n-qt5/PKGBUILD | 30 +++++++----- mingw-w64-kidletime-qt5/PKGBUILD | 31 ++++++------ mingw-w64-kimageformats-qt5/PKGBUILD | 31 ++++++------ mingw-w64-kitemmodels-qt5/PKGBUILD | 31 ++++++------ mingw-w64-kitemviews-qt5/PKGBUILD | 31 ++++++------ mingw-w64-kjs-qt5/PKGBUILD | 31 ++++++------ mingw-w64-kplotting-qt5/PKGBUILD | 31 ++++++------ mingw-w64-kwidgetsaddons-qt5/PKGBUILD | 31 ++++++------ mingw-w64-kwindowsystem-qt5/PKGBUILD | 31 ++++++------ mingw-w64-solid-qt5/PKGBUILD | 21 ++++---- 21 files changed, 356 insertions(+), 244 deletions(-) create mode 100644 mingw-w64-kcrash-qt5/PKGBUILD diff --git a/mingw-w64-PKGBUILD-common/build-kf5-shared b/mingw-w64-PKGBUILD-common/build-kf5-shared index 59107fe9cf..9954ccfb9c 100644 --- a/mingw-w64-PKGBUILD-common/build-kf5-shared +++ b/mingw-w64-PKGBUILD-common/build-kf5-shared @@ -4,16 +4,18 @@ THISDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Listed in tier-order declare -a pkgs=( -#extra-cmake-modules +extra-cmake-modules attica-qt5 karchive-qt5 kcodecs-qt5 kconfig-qt5 kcoreaddons-qt5 kdbusaddons-qt5 -kglobalaccel-qt5 kguiaddons-qt5 ki18n-qt5 +kwindowsystem-qt5 +kcrash-qt5 +kglobalaccel-qt5 kidletime-qt5 kimageformats-qt5 kitemmodels-qt5 @@ -21,9 +23,6 @@ kitemviews-qt5 kjs-qt5 kplotting-qt5 kwidgetsaddons-qt5 -kwindowsystem-qt5 -qt5 -qwt-qt5 solid-qt5 ) diff --git a/mingw-w64-attica-qt5/PKGBUILD b/mingw-w64-attica-qt5/PKGBUILD index a7f2794dbc..ce5cab7273 100644 --- a/mingw-w64-attica-qt5/PKGBUILD +++ b/mingw-w64-attica-qt5/PKGBUILD @@ -13,7 +13,6 @@ _kde_f5_init_package "${_variant}" "attica" pkgver=5.12.0 pkgrel=1 arch=('any') -url='https://projects.kde.org/projects/kdesupport/${_basename}' pkgdesc="A Qt5 library that implements the Open Collaboration Services API (mingw-w64-qt5${_namesuff})" license=('LGPL') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") @@ -38,16 +37,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-extra-cmake-modules/PKGBUILD b/mingw-w64-extra-cmake-modules/PKGBUILD index a50e08ea7f..4f2eb7f4ce 100644 --- a/mingw-w64-extra-cmake-modules/PKGBUILD +++ b/mingw-w64-extra-cmake-modules/PKGBUILD @@ -28,12 +28,11 @@ prepare() { build() { cd build-${CARCH} MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ - cmake ../${_realname}-${pkgver} \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_HTML_DOCS=OFF \ - -G'MSYS Makefiles' - + cmake ../${_realname}-${pkgver} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_HTML_DOCS=OFF \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-karchive-qt5/PKGBUILD b/mingw-w64-karchive-qt5/PKGBUILD index 27571d2a45..56a4af9f5c 100644 --- a/mingw-w64-karchive-qt5/PKGBUILD +++ b/mingw-w64-karchive-qt5/PKGBUILD @@ -2,8 +2,12 @@ # Maintainer (ArchLinux): Andrea Scarpino # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "karchive" pkgver=5.12.0 @@ -33,15 +37,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kcodecs-qt5/PKGBUILD b/mingw-w64-kcodecs-qt5/PKGBUILD index b3571c41dc..08962fe626 100644 --- a/mingw-w64-kcodecs-qt5/PKGBUILD +++ b/mingw-w64-kcodecs-qt5/PKGBUILD @@ -2,8 +2,12 @@ # Maintainer (ArchLinux): Andrea Scarpino # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kcodecs" pkgver=5.12.0 @@ -33,15 +37,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kconfig-qt5/PKGBUILD b/mingw-w64-kconfig-qt5/PKGBUILD index b7e6518d46..201bd89c93 100644 --- a/mingw-w64-kconfig-qt5/PKGBUILD +++ b/mingw-w64-kconfig-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kconfig" pkgver=5.12.0 @@ -31,17 +35,17 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' --trace --debug-output - make VERBOSE=1 + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make } package() { diff --git a/mingw-w64-kcoreaddons-qt5/PKGBUILD b/mingw-w64-kcoreaddons-qt5/PKGBUILD index 173874d233..38dcf3ee75 100644 --- a/mingw-w64-kcoreaddons-qt5/PKGBUILD +++ b/mingw-w64-kcoreaddons-qt5/PKGBUILD @@ -2,8 +2,12 @@ # Maintainer (ArchLinux): Andrea Scarpino # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kcoreaddons" pkgver=5.12.0 @@ -33,16 +37,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kcrash-qt5/PKGBUILD b/mingw-w64-kcrash-qt5/PKGBUILD new file mode 100644 index 0000000000..c804477ff8 --- /dev/null +++ b/mingw-w64-kcrash-qt5/PKGBUILD @@ -0,0 +1,57 @@ +# $Id$ +# Maintainer (MSYS2): Ray Donnelly +# Maintainer (ArchLinux): Felix Yan +# Contributor (ArchLinux): Andrea Scarpino + +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + +source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 +_kde_f5_init_package "${_variant}" "kcrash" +pkgver=5.12.0 +pkgrel=1 +arch=('any') +pkgdesc="Support for application crash analysis and bug report from apps (mingw-w64-qt5${_namesuff})" +license=('LGPL') +makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") +depends=() +_kde_f5_add_depends "${_variant}" "${MINGW_PACKAGE_PREFIX}-qt5${_namesuff}" "${MINGW_PACKAGE_PREFIX}-bzip2" +groups=('kf5') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") +md5sums=('47ae59a330ec700e0912382ddb951c25') + +prepare() { + mkdir -p build-${CARCH}${_variant} +} + +build() { + local -a extra_config + cd build-${CARCH}${_variant} + if [ "${_variant}" = "-static" ]; then + extra_config+=( -DBUILD_SHARED_LIBS=NO ) + QT5_PREFIX=${MINGW_PREFIX}/qt5-static + export PATH=${QT5_PREFIX}/bin:"$PATH" + else + QT5_PREFIX=${MINGW_PREFIX} + fi + + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make +} + +package() { + cd build-${CARCH}${_variant} + make DESTDIR="${pkgdir}" install +} diff --git a/mingw-w64-kdbusaddons-qt5/PKGBUILD b/mingw-w64-kdbusaddons-qt5/PKGBUILD index 84122bfdc9..846e359d0d 100644 --- a/mingw-w64-kdbusaddons-qt5/PKGBUILD +++ b/mingw-w64-kdbusaddons-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kdbusaddons" pkgver=5.12.0 @@ -31,16 +35,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kglobalaccel-qt5/PKGBUILD b/mingw-w64-kglobalaccel-qt5/PKGBUILD index 9f67df315f..5bc069067f 100644 --- a/mingw-w64-kglobalaccel-qt5/PKGBUILD +++ b/mingw-w64-kglobalaccel-qt5/PKGBUILD @@ -1,17 +1,20 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kglobalaccel" +_kde_f5_add_depends "${_variant}" "kconfig" "ki18n" pkgver=5.12.0 pkgrel=1 arch=('any') pkgdesc="Global desktop keyboard shortcuts (mingw-w64-qt5${_namesuff})" license=('LGPL') -depends=('qt5-base' 'shared-mime-info' 'gamin') makedepends=("${MINGW_PACKAGE_PREFIX}-extra-cmake-modules") -depends=() groups=('kf5') # install=${pkgname}.install source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${pkgver}.tar.xz") @@ -32,18 +35,18 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' --debug-output - make VERBOSE=1 + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + -DKF5Config_DIR=${MINGW_PREFIX}/lib/cmake/KF5Config \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' + make } package() { diff --git a/mingw-w64-kguiaddons-qt5/PKGBUILD b/mingw-w64-kguiaddons-qt5/PKGBUILD index 94800bd4ed..4204a3bd95 100644 --- a/mingw-w64-kguiaddons-qt5/PKGBUILD +++ b/mingw-w64-kguiaddons-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kguiaddons" pkgver=5.12.0 @@ -31,16 +35,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' --debug-output + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-ki18n-qt5/PKGBUILD b/mingw-w64-ki18n-qt5/PKGBUILD index 84dbec7090..2bf6420a20 100644 --- a/mingw-w64-ki18n-qt5/PKGBUILD +++ b/mingw-w64-ki18n-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "ki18n" pkgver=5.12.0 @@ -19,13 +23,13 @@ md5sums=('146da9ecae1e489d462309092011edd2' 'ee7e57cc7ff1be80a28d5316f9665555') prepare() { + mkdir -p build-${CARCH}${_variant} cd "${srcdir}"/${_basename}-${pkgver} patch -p1 < "${srcdir}"/build-ktranscript-plugin-statically-if-not-shared.patch } build() { local -a extra_config - mkdir -p build-${CARCH}${_variant} cd build-${CARCH}${_variant} if [ "${_variant}" = "-static" ]; then extra_config+=( -DBUILD_SHARED_LIBS=NO ) @@ -35,16 +39,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kidletime-qt5/PKGBUILD b/mingw-w64-kidletime-qt5/PKGBUILD index 8b695caf4e..d96242d7e6 100644 --- a/mingw-w64-kidletime-qt5/PKGBUILD +++ b/mingw-w64-kidletime-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kidletime" pkgver=5.12.0 @@ -17,12 +21,11 @@ source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${p md5sums=('f87b44e5acd0c3a0ec891450a11f6c2b') prepare() { - cd "${srcdir}"/${_basename}-${pkgver} + mkdir -p build-${CARCH}${_variant} } build() { local -a extra_config - mkdir -p build-${CARCH}${_variant} cd build-${CARCH}${_variant} if [ "${_variant}" = "-static" ]; then extra_config+=( -DBUILD_SHARED_LIBS=NO ) @@ -32,16 +35,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kimageformats-qt5/PKGBUILD b/mingw-w64-kimageformats-qt5/PKGBUILD index cbe0d96ca8..203ea133bf 100644 --- a/mingw-w64-kimageformats-qt5/PKGBUILD +++ b/mingw-w64-kimageformats-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kimageformats" pkgver=5.12.0 @@ -17,12 +21,11 @@ source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${p md5sums=('36e1a6fc39c73670b744429a1b3ef288') prepare() { - cd "${srcdir}"/${_basename}-${pkgver} + mkdir -p build-${CARCH}${_variant} } build() { local -a extra_config - mkdir -p build-${CARCH}${_variant} cd build-${CARCH}${_variant} if [ "${_variant}" = "-static" ]; then extra_config+=( -DBUILD_SHARED_LIBS=NO ) @@ -32,16 +35,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kitemmodels-qt5/PKGBUILD b/mingw-w64-kitemmodels-qt5/PKGBUILD index 2653ddf457..5a5ced1c73 100644 --- a/mingw-w64-kitemmodels-qt5/PKGBUILD +++ b/mingw-w64-kitemmodels-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kitemmodels" pkgver=5.12.0 @@ -17,12 +21,11 @@ source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${p md5sums=('ce9f3e3adefc17848c51f06e96572947') prepare() { - cd "${srcdir}"/${_basename}-${pkgver} + mkdir -p build-${CARCH}${_variant} } build() { local -a extra_config - mkdir -p build-${CARCH}${_variant} cd build-${CARCH}${_variant} if [ "${_variant}" = "-static" ]; then extra_config+=( -DBUILD_SHARED_LIBS=NO ) @@ -32,16 +35,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kitemviews-qt5/PKGBUILD b/mingw-w64-kitemviews-qt5/PKGBUILD index eb8b9b778a..563f237f8a 100644 --- a/mingw-w64-kitemviews-qt5/PKGBUILD +++ b/mingw-w64-kitemviews-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kitemviews" pkgver=5.12.0 @@ -17,12 +21,11 @@ source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${p md5sums=('172fcd531af0df4329eaf35b91c7123d') prepare() { - cd "${srcdir}"/${_basename}-${pkgver} + mkdir -p build-${CARCH}${_variant} } build() { local -a extra_config - mkdir -p build-${CARCH}${_variant} cd build-${CARCH}${_variant} if [ "${_variant}" = "-static" ]; then extra_config+=( -DBUILD_SHARED_LIBS=NO ) @@ -32,16 +35,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kjs-qt5/PKGBUILD b/mingw-w64-kjs-qt5/PKGBUILD index 9700a56e4b..89b779208f 100644 --- a/mingw-w64-kjs-qt5/PKGBUILD +++ b/mingw-w64-kjs-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kjs" pkgver=5.12.0 @@ -17,12 +21,11 @@ source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/portingAids/${_b md5sums=('988bff4927d2230d8a98f2b9597cfd05') prepare() { - cd "${srcdir}"/${_basename}-${pkgver} + mkdir -p build-${CARCH}${_variant} } build() { local -a extra_config - mkdir -p build-${CARCH}${_variant} cd build-${CARCH}${_variant} if [ "${_variant}" = "-static" ]; then extra_config+=( -DBUILD_SHARED_LIBS=NO ) @@ -32,16 +35,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kplotting-qt5/PKGBUILD b/mingw-w64-kplotting-qt5/PKGBUILD index 797b9656a6..f240f6d8d8 100644 --- a/mingw-w64-kplotting-qt5/PKGBUILD +++ b/mingw-w64-kplotting-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kplotting" pkgver=5.12.0 @@ -17,12 +21,11 @@ source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${p md5sums=('9b2a7286c3576155037e2c1d7dc2dd0c') prepare() { - cd "${srcdir}"/${_basename}-${pkgver} + mkdir -p build-${CARCH}${_variant} } build() { local -a extra_config - mkdir -p build-${CARCH}${_variant} cd build-${CARCH}${_variant} if [ "${_variant}" = "-static" ]; then extra_config+=( -DBUILD_SHARED_LIBS=NO ) @@ -32,16 +35,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kwidgetsaddons-qt5/PKGBUILD b/mingw-w64-kwidgetsaddons-qt5/PKGBUILD index 92f1f23f54..9d2cbf5249 100644 --- a/mingw-w64-kwidgetsaddons-qt5/PKGBUILD +++ b/mingw-w64-kwidgetsaddons-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kwidgetsaddons" pkgver=5.12.0 @@ -17,12 +21,11 @@ source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${p md5sums=('c65b4f7bac1fcd3fc599d203ab7f15a0') prepare() { - cd "${srcdir}"/${_basename}-${pkgver} + mkdir -p build-${CARCH}${_variant} } build() { local -a extra_config - mkdir -p build-${CARCH}${_variant} cd build-${CARCH}${_variant} if [ "${_variant}" = "-static" ]; then extra_config+=( -DBUILD_SHARED_LIBS=NO ) @@ -32,16 +35,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-kwindowsystem-qt5/PKGBUILD b/mingw-w64-kwindowsystem-qt5/PKGBUILD index 39f1d00168..bd9de20fa9 100644 --- a/mingw-w64-kwindowsystem-qt5/PKGBUILD +++ b/mingw-w64-kwindowsystem-qt5/PKGBUILD @@ -1,7 +1,11 @@ # Maintainer (MSYS2): Ray Donnelly -_variant=-static -#_variant=-shared +if [ -n ${KF5_VARIANT} ]; then + _variant=-${KF5_VARIANT} +else + _variant=-shared +fi + source "$(dirname ${BASH_SOURCE[0]})"/../mingw-w64-PKGBUILD-common/kde-frameworks5 _kde_f5_init_package "${_variant}" "kwindowsystem" pkgver=5.12.0 @@ -17,12 +21,11 @@ source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_basename}-${p md5sums=('001095e87ba8a52932f780bb043429d5') prepare() { - cd "${srcdir}"/${_basename}-${pkgver} + mkdir -p build-${CARCH}${_variant} } build() { local -a extra_config - mkdir -p build-${CARCH}${_variant} cd build-${CARCH}${_variant} if [ "${_variant}" = "-static" ]; then extra_config+=( -DBUILD_SHARED_LIBS=NO ) @@ -32,16 +35,16 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=$(_kde_f5_CMAKE_BUILD_TYPE) \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } diff --git a/mingw-w64-solid-qt5/PKGBUILD b/mingw-w64-solid-qt5/PKGBUILD index 444f99ae92..4a4c8cbaf4 100644 --- a/mingw-w64-solid-qt5/PKGBUILD +++ b/mingw-w64-solid-qt5/PKGBUILD @@ -33,16 +33,17 @@ build() { QT5_PREFIX=${MINGW_PREFIX} fi - cmake ../${_basename}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ - -DLIB_INSTALL_DIR=lib \ - -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ - -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ - -DBUILD_TESTING=OFF \ - -DECM_DIR=${MINGW_PREFIX}/share/ECM \ - "${extra_config[@]}" \ - -G'MSYS Makefiles' + MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ + cmake ../${_basename}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${QT5_PREFIX} \ + -DLIB_INSTALL_DIR=lib \ + -DECM_MKSPECS_INSTALL_DIR=${QT5_PREFIX} \ + -DQt5_DIR=${QT5_PREFIX}/lib/cmake/Qt5 \ + -DBUILD_TESTING=OFF \ + -DECM_DIR=${MINGW_PREFIX}/share/ECM \ + "${extra_config[@]}" \ + -G'MSYS Makefiles' make } From fe89e094cfb88b498cebdf0fb7672d21cea0190c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 13 Nov 2015 08:39:10 +0300 Subject: [PATCH 1872/2060] mingw-w64-tools-git: Update to 5.0.0.4587.9172490 --- ...01-widl-Relocate-DEFAULT_INCLUDE_DIR.patch | 768 ------------------ mingw-w64-tools-git/PKGBUILD | 12 +- 2 files changed, 5 insertions(+), 775 deletions(-) delete mode 100644 mingw-w64-tools-git/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch diff --git a/mingw-w64-tools-git/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch b/mingw-w64-tools-git/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch deleted file mode 100644 index bebdc69eb3..0000000000 --- a/mingw-w64-tools-git/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch +++ /dev/null @@ -1,768 +0,0 @@ -From 807e422aeb7e6c803edd07298b693a8e72a7158f Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Sat, 18 Jul 2015 13:53:41 +0100 -Subject: [PATCH] widl: Relocate DEFAULT_INCLUDE_DIR - ---- - mingw-w64-tools/widl/Makefile.am | 6 +- - mingw-w64-tools/widl/Makefile.in | 26 +- - mingw-w64-tools/widl/include/pathtools.h | 53 +++ - mingw-w64-tools/widl/src/pathtools.c | 547 +++++++++++++++++++++++++++++++ - mingw-w64-tools/widl/src/widl.c | 14 +- - 5 files changed, 640 insertions(+), 6 deletions(-) - create mode 100644 mingw-w64-tools/widl/include/pathtools.h - create mode 100644 mingw-w64-tools/widl/src/pathtools.c - -diff --git a/mingw-w64-tools/widl/Makefile.am b/mingw-w64-tools/widl/Makefile.am -index 44013fe..1e348c7 100644 ---- a/mingw-w64-tools/widl/Makefile.am -+++ b/mingw-w64-tools/widl/Makefile.am -@@ -36,6 +36,7 @@ widl_SOURCES = src/widl.h \ - src/wpp/ppy.tab.c \ - src/wpp/preproc.c \ - src/wpp/wpp.c \ -+ src/pathtools.c \ - include/pshpack1.h \ - include/pshpack2.h \ - include/winbase.h \ -@@ -54,9 +55,10 @@ widl_SOURCES = src/widl.h \ - include/pshpack4.h \ - include/winnt.h \ - include/winnls.h \ -+ include/pathtools.h \ - include/winnt.rh - --widl_CPPFLAGS = -I$(top_srcdir)/include -DDEFAULT_INCLUDE_DIR=\"$(includedir)/../$(target)/include\" --widl_CFLAGS = -O3 -g -Wall -Wformat -Wpacked -Wmissing-declarations -Wimplicit-function-declaration -Wmissing-prototypes -Wstrict-aliasing=2 -+widl_CPPFLAGS = -I$(top_srcdir)/include -DDEFAULT_INCLUDE_DIR=\"$(includedir)/../$(target)/include\" -DDEFAULT_BINDIR=\"$(bindir)\" -+widl_CFLAGS = -Wall -Wformat -Wpacked -Wmissing-declarations -Wimplicit-function-declaration -Wmissing-prototypes -Wstrict-aliasing=2 - - DISTCHECK_CONFIGURE_FLAGS = --host=$(host) --target=$(target) -diff --git a/mingw-w64-tools/widl/Makefile.in b/mingw-w64-tools/widl/Makefile.in -index 013ccf0..d76c66c 100644 ---- a/mingw-w64-tools/widl/Makefile.in -+++ b/mingw-w64-tools/widl/Makefile.in -@@ -85,7 +85,8 @@ am_widl_OBJECTS = src/widl-client.$(OBJEXT) src/widl-expr.$(OBJEXT) \ - src/widl-typetree.$(OBJEXT) src/widl-utils.$(OBJEXT) \ - src/widl-widl.$(OBJEXT) src/widl-write_msft.$(OBJEXT) \ - src/wpp/widl-ppl.yy.$(OBJEXT) src/wpp/widl-ppy.tab.$(OBJEXT) \ -- src/wpp/widl-preproc.$(OBJEXT) src/wpp/widl-wpp.$(OBJEXT) -+ src/wpp/widl-preproc.$(OBJEXT) src/wpp/widl-wpp.$(OBJEXT) \ -+ src/widl-pathtools.$(OBJEXT) - widl_OBJECTS = $(am_widl_OBJECTS) - widl_LDADD = $(LDADD) - widl_LINK = $(CCLD) $(widl_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -@@ -262,6 +263,7 @@ widl_SOURCES = src/widl.h \ - src/wpp/ppy.tab.c \ - src/wpp/preproc.c \ - src/wpp/wpp.c \ -+ src/pathtools.c \ - include/pshpack1.h \ - include/pshpack2.h \ - include/winbase.h \ -@@ -280,10 +282,11 @@ widl_SOURCES = src/widl.h \ - include/pshpack4.h \ - include/winnt.h \ - include/winnls.h \ -+ include/pathtools.h \ - include/winnt.rh - --widl_CPPFLAGS = -I$(top_srcdir)/include -DDEFAULT_INCLUDE_DIR=\"$(includedir)/../$(target)/include\" --widl_CFLAGS = -O3 -g -Wall -Wformat -Wpacked -Wmissing-declarations -Wimplicit-function-declaration -Wmissing-prototypes -Wstrict-aliasing=2 -+widl_CPPFLAGS = -I$(top_srcdir)/include -DDEFAULT_INCLUDE_DIR=\"$(includedir)/../$(target)/include\" -DDEFAULT_BINDIR=\"$(bindir)\" -+widl_CFLAGS = -Wall -Wformat -Wpacked -Wmissing-declarations -Wimplicit-function-declaration -Wmissing-prototypes -Wstrict-aliasing=2 - DISTCHECK_CONFIGURE_FLAGS = --host=$(host) --target=$(target) - all: all-am - -@@ -440,6 +443,8 @@ src/wpp/widl-preproc.$(OBJEXT): src/wpp/$(am__dirstamp) \ - src/wpp/$(DEPDIR)/$(am__dirstamp) - src/wpp/widl-wpp.$(OBJEXT): src/wpp/$(am__dirstamp) \ - src/wpp/$(DEPDIR)/$(am__dirstamp) -+src/widl-pathtools.$(OBJEXT): src/$(am__dirstamp) \ -+ src/$(DEPDIR)/$(am__dirstamp) - widl$(EXEEXT): $(widl_OBJECTS) $(widl_DEPENDENCIES) $(EXTRA_widl_DEPENDENCIES) - @rm -f widl$(EXEEXT) - $(widl_LINK) $(widl_OBJECTS) $(widl_LDADD) $(LIBS) -@@ -459,6 +464,7 @@ distclean-compile: - @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-header.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-parser.tab.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-parser.yy.Po@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-pathtools.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-proxy.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-register.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-server.Po@am__quote@ -@@ -800,6 +806,20 @@ src/wpp/widl-wpp.obj: src/wpp/wpp.c - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/wpp/widl-wpp.obj `if test -f 'src/wpp/wpp.c'; then $(CYGPATH_W) 'src/wpp/wpp.c'; else $(CYGPATH_W) '$(srcdir)/src/wpp/wpp.c'; fi` - -+src/widl-pathtools.o: src/pathtools.c -+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-pathtools.o -MD -MP -MF src/$(DEPDIR)/widl-pathtools.Tpo -c -o src/widl-pathtools.o `test -f 'src/pathtools.c' || echo '$(srcdir)/'`src/pathtools.c -+@am__fastdepCC_TRUE@ $(am__mv) src/$(DEPDIR)/widl-pathtools.Tpo src/$(DEPDIR)/widl-pathtools.Po -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/pathtools.c' object='src/widl-pathtools.o' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-pathtools.o `test -f 'src/pathtools.c' || echo '$(srcdir)/'`src/pathtools.c -+ -+src/widl-pathtools.obj: src/pathtools.c -+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-pathtools.obj -MD -MP -MF src/$(DEPDIR)/widl-pathtools.Tpo -c -o src/widl-pathtools.obj `if test -f 'src/pathtools.c'; then $(CYGPATH_W) 'src/pathtools.c'; else $(CYGPATH_W) '$(srcdir)/src/pathtools.c'; fi` -+@am__fastdepCC_TRUE@ $(am__mv) src/$(DEPDIR)/widl-pathtools.Tpo src/$(DEPDIR)/widl-pathtools.Po -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/pathtools.c' object='src/widl-pathtools.obj' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-pathtools.obj `if test -f 'src/pathtools.c'; then $(CYGPATH_W) 'src/pathtools.c'; else $(CYGPATH_W) '$(srcdir)/src/pathtools.c'; fi` -+ - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ -diff --git a/mingw-w64-tools/widl/include/pathtools.h b/mingw-w64-tools/widl/include/pathtools.h -new file mode 100644 -index 0000000..139b7c2 ---- /dev/null -+++ b/mingw-w64-tools/widl/include/pathtools.h -@@ -0,0 +1,53 @@ -+/* -+ .Some useful path tools. -+ .ASCII only for now. -+ .Written by Ray Donnelly in 2014. -+ .Licensed under CC0 (and anything. -+ .else you need to license it under). -+ .No warranties whatsoever. -+ .email: . -+ */ -+ -+#ifndef PATHTOOLS_H -+#define PATHTOOLS_H -+ -+#include -+#if defined(__APPLE__) -+#include -+#else -+#include -+#endif -+#include -+ -+char * malloc_copy_string(char const * original); -+ -+/* In-place replaces any '\' with '/' and any '//' with '/' */ -+void sanitise_path(char * path); -+ -+/* Uses a host OS specific function to determine the path of the executable, -+ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ -+int get_executable_path(char const * argv0, char * result, ssize_t max_size); -+ -+/* Where possible, in-place removes occourances of '.' and 'path/..' */ -+void simplify_path(char * path); -+ -+/* Allocates (via malloc) and returns the path to get from from to to. */ -+char * get_relative_path(char const * from, char const * to); -+ -+size_t split_path_list(char const * path_list, char split_char, char *** arr); -+ -+/* Advances path along by the amount that removes n prefix folders. */ -+char const * -+strip_n_prefix_folders(char const * path, size_t n); -+ -+/* NULL terminates path to remove n suffix folders. */ -+void -+strip_n_suffix_folders(char * path, size_t n); -+ -+char const * get_relocated_path (char const * from, char const * to, char const * actual_from); -+char * get_relocated_path_list(char const * from, char const * to_path_list); -+ -+char * single_path_relocation(const char *from, const char *to); -+char * pathlist_relocation(const char *from_path, const char *to_path_list); -+ -+#endif /* PATHTOOLS_H */ -diff --git a/mingw-w64-tools/widl/src/pathtools.c b/mingw-w64-tools/widl/src/pathtools.c -new file mode 100644 -index 0000000..d150cd3 ---- /dev/null -+++ b/mingw-w64-tools/widl/src/pathtools.c -@@ -0,0 +1,547 @@ -+/* -+ .Some useful path tools. -+ .ASCII only for now. -+ .Written by Ray Donnelly in 2014. -+ .Licensed under CC0 (and anything. -+ .else you need to license it under). -+ .No warranties whatsoever. -+ .email: . -+ */ -+ -+#if defined(__APPLE__) -+#include -+#else -+#include -+#endif -+#include -+#include -+#include -+#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) -+#include -+#endif -+#include -+ -+/* If you don't define this, then get_executable_path() -+ can only use argv[0] which will often not work well */ -+#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH -+ -+#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) -+#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) -+/* Nothing needed, unistd.h is enough. */ -+#elif defined(__APPLE__) -+#include -+#elif defined(_WIN32) -+// widl can't include the normal Windows headers due to providing its own winnt.h (and others). -+#ifdef __x86_64__ -+__attribute__((dllimport)) long GetModuleFileNameA (long hModule, void* lpFilename, long nSize); -+#else -+__attribute__((dllimport)) long __attribute__((__stdcall__)) GetModuleFileNameA (long hModule, void* lpFilename, long nSize); -+#endif -+#endif -+#else -+#define PATH_MAX 260 -+#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ -+ -+#include "pathtools.h" -+ -+char * -+malloc_copy_string(char const * original) -+{ -+ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); -+ if (result != NULL) -+ { -+ strcpy (result, original); -+ } -+ return result; -+} -+ -+void -+sanitise_path(char * path) -+{ -+ size_t path_size = strlen (path); -+ -+ /* Replace any '\' with '/' */ -+ char * path_p = path; -+ while ((path_p = strchr (path_p, '\\')) != NULL) -+ { -+ *path_p = '/'; -+ } -+ /* Replace any '//' with '/' */ -+ path_p = path; -+ while ((path_p = strstr (path_p, "//")) != NULL) -+ { -+ memmove (path_p, path_p + 1, path_size--); -+ } -+ return; -+} -+ -+char * -+get_relative_path(char const * from_in, char const * to_in) -+{ -+ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); -+ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); -+ size_t max_size = (from_size + to_size) * 2 + 4; -+ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); -+ char * from; -+ char * to; -+ char * common_part; -+ char * result; -+ size_t count; -+ -+ /* No to, return "./" */ -+ if (to_in == NULL) -+ { -+ return malloc_copy_string ("./"); -+ } -+ -+ /* If alloca failed or no from was given return a copy of to */ -+ if ( from_in == NULL -+ || scratch_space == NULL ) -+ { -+ return malloc_copy_string (to_in); -+ } -+ -+ from = scratch_space; -+ strcpy (from, from_in); -+ to = from + from_size + 1; -+ strcpy (to, to_in); -+ common_part = to + to_size + 1; -+ result = common_part + max_size; -+ simplify_path (from); -+ simplify_path (to); -+ -+ result[0] = '\0'; -+ -+ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ -+ size_t match_size = 0; /* The running (and final) match size. */ -+ size_t largest_size = (from_size > to_size) ? from_size : to_size; -+ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; -+ char from_c; -+ char to_c; -+ for (match_size = 0; match_size < largest_size; ++match_size) -+ { -+ /* To simplify the logic, always pretend the strings end with '/' */ -+ from_c = (match_size < from_size) ? from[match_size] : '/'; -+ to_c = (match_size < to_size) ? to[match_size] : '/'; -+ -+ if (from_c != to_c) -+ { -+ if (from_c != '\0' || to_c != '\0') -+ { -+ match_size = match_size_dirsep; -+ } -+ break; -+ } -+ else if (from_c == '/') -+ { -+ match_size_dirsep = match_size; -+ } -+ } -+ strncpy (common_part, from, match_size); -+ common_part[match_size] = '\0'; -+ from += match_size; -+ to += match_size; -+ size_t ndotdots = 0; -+ char const* from_last = from + strlen(from) - 1; -+ while ((from = strchr (from, '/')) && from != from_last) -+ { -+ ++ndotdots; -+ ++from; -+ } -+ for (count = 0; count < ndotdots; ++count) -+ { -+ strcat(result, "../"); -+ } -+ if (strlen(to) > 0) -+ { -+ strcat(result, to+1); -+ } -+ /* Make sure that if to ends with '/' result does the same, and -+ vice-versa. */ -+ size_t size_result = strlen(result); -+ if ((to_final_is_slash == 1) -+ && (!size_result || result[size_result-1] != '/')) -+ { -+ strcat (result, "/"); -+ } -+ else if (!to_final_is_slash -+ && size_result && result[size_result-1] == '/') -+ { -+ result[size_result-1] = '\0'; -+ } -+ -+ return malloc_copy_string (result); -+} -+ -+void -+simplify_path(char * path) -+{ -+ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ -+ ssize_t i, j; -+ size_t tok_size; -+ size_t in_size = strlen (path); -+ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; -+ char * result = path; -+ sanitise_path(result); -+ char * result_p = result; -+ -+ do -+ { -+ ++n_toks; -+ ++result_p; -+ } while ((result_p = strchr (result_p, '/')) != NULL); -+ -+ result_p = result; -+ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); -+ n_toks = 0; -+ do -+ { -+ if (result_p > result) -+ { -+ *result_p++ = '\0'; -+ } -+ else if (*result_p == '/') -+ { -+ /* A leading / creates an empty initial token. */ -+ toks[n_toks++] = result_p; -+ *result_p++ = '\0'; -+ } -+ toks[n_toks++] = result_p; -+ } while ((result_p = strchr (result_p, '/')) != NULL); -+ -+ /* Remove all non-leading '.' and any '..' we can match -+ with an earlier forward path (i.e. neither '.' nor '..') */ -+ for (i = 1; i < n_toks; ++i) -+ { -+ int removals[2] = { -1, -1 }; -+ if ( strcmp (toks[i], "." ) == 0) -+ { -+ removals[0] = i; -+ } -+ else if ( strcmp (toks[i], ".." ) == 0) -+ { -+ /* Search backwards for a forward path to collapse. -+ If none are found then the .. also stays. */ -+ for (j = i - 1; j > -1; --j) -+ { -+ if ( strcmp (toks[j], "." ) -+ && strcmp (toks[j], ".." ) ) -+ { -+ removals[0] = j; -+ removals[1] = i; -+ break; -+ } -+ } -+ } -+ for (j = 0; j < 2; ++j) -+ { -+ if (removals[j] >= 0) /* Can become -2 */ -+ { -+ --n_toks; -+ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); -+ --i; -+ if (!j) -+ { -+ --removals[1]; -+ } -+ } -+ } -+ } -+ result_p = result; -+ for (i = 0; i < n_toks; ++i) -+ { -+ tok_size = strlen(toks[i]); -+ memcpy (result_p, toks[i], tok_size); -+ result_p += tok_size; -+ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) -+ { -+ *result_p = '/'; -+ ++result_p; -+ } -+ } -+ *result_p = '\0'; -+} -+ -+/* Returns actual_to by calculating the relative path from -> to and -+ applying that to actual_from. An assumption that actual_from is a -+ dir is made, and it may or may not end with a '/' */ -+char const * -+get_relocated_path (char const * from, char const * to, char const * actual_from) -+{ -+ char const * relative_from_to = get_relative_path (from, to); -+ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); -+ return actual_to; -+} -+ -+int -+get_executable_path(char const * argv0, char * result, ssize_t max_size) -+{ -+ char * system_result = (char *) alloca (max_size); -+ ssize_t system_result_size = -1; -+ ssize_t result_size = -1; -+ -+ if (system_result != NULL) -+ { -+#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) -+#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) -+ system_result_size = readlink("/proc/self/exe", system_result, max_size); -+#elif defined(__APPLE__) -+ uint32_t bufsize = (uint32_t)max_size; -+ if (_NSGetExecutablePath(system_result, &bufsize) == 0) -+ { -+ system_result_size = (ssize_t)bufsize; -+ } -+#elif defined(_WIN32) -+ unsigned long bufsize = (unsigned long)max_size; -+ system_result_size = GetModuleFileNameA(0, system_result, bufsize); -+ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) -+ { -+ /* Error, possibly not enough space. */ -+ system_result_size = -1; -+ } -+ else -+ { -+ /* Early conversion to unix slashes instead of more changes -+ everywhere else .. */ -+ char * winslash; -+ system_result[system_result_size] = '\0'; -+ while ((winslash = strchr (system_result, '\\')) != NULL) -+ { -+ *winslash = '/'; -+ } -+ } -+#else -+#warning "Don't know how to get executable path on this system" -+#endif -+#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ -+ } -+ /* Use argv0 as a default in-case of failure */ -+ if (system_result_size != -1) -+ { -+ strncpy (result, system_result, system_result_size); -+ result[system_result_size] = '\0'; -+ } -+ else -+ { -+ if (argv0 != NULL) -+ { -+ strncpy (result, argv0, max_size); -+ char *slash; -+ while ((slash = strchr(result, '\\')) != NULL) { -+ *slash++ = '/'; -+ } -+ result[max_size-1] = '\0'; -+ } -+ else -+ { -+ result[0] = '\0'; -+ } -+ } -+ result_size = strlen (result); -+ return result_size; -+} -+ -+char const * -+strip_n_prefix_folders(char const * path, size_t n) -+{ -+ if (path == NULL) -+ { -+ return NULL; -+ } -+ -+ if (path[0] != '/') -+ { -+ return path; -+ } -+ -+ char const * last = path; -+ while (n-- && path != NULL) -+ { -+ last = path; -+ path = strchr (path + 1, '/'); -+ } -+ return (path == NULL) ? last : path; -+} -+ -+void -+strip_n_suffix_folders(char * path, size_t n) -+{ -+ if (path == NULL) -+ { -+ return; -+ } -+ while (n--) -+ { -+ if (strrchr (path + 1, '/')) -+ { -+ *strrchr (path + 1, '/') = '\0'; -+ } -+ else -+ { -+ return; -+ } -+ } -+ return; -+} -+ -+size_t -+split_path_list(char const * path_list, char split_char, char *** arr) -+{ -+ size_t path_count; -+ size_t path_list_size; -+ char const * path_list_p; -+ -+ path_list_p = path_list; -+ if (path_list == NULL || path_list[0] == '\0') -+ { -+ return 0; -+ } -+ path_list_size = strlen (path_list); -+ -+ path_count = 0; -+ do -+ { -+ ++path_count; -+ ++path_list_p; -+ } -+ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); -+ -+ /* allocate everything in one go. */ -+ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); -+ if (all_memory == NULL) -+ return 0; -+ *arr = (char **)all_memory; -+ all_memory += sizeof (char *) * path_count; -+ -+ path_count = 0; -+ path_list_p = path_list; -+ char const * next_path_list_p = 0; -+ do -+ { -+ next_path_list_p = strchr (path_list_p, split_char); -+ if (next_path_list_p != NULL) -+ { -+ ++next_path_list_p; -+ } -+ size_t this_size = (next_path_list_p != NULL) -+ ? next_path_list_p - path_list_p - 1 -+ : &path_list[path_list_size] - path_list_p; -+ memcpy (all_memory, path_list_p, this_size); -+ all_memory[this_size] = '\0'; -+ (*arr)[path_count++] = all_memory; -+ all_memory += this_size + 1; -+ } while ((path_list_p = next_path_list_p) != NULL); -+ -+ return path_count; -+} -+ -+char * -+get_relocated_path_list(char const * from, char const * to_path_list) -+{ -+ char exe_path[PATH_MAX]; -+ char * temp; -+ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); -+ if ((temp = strrchr (exe_path, '/')) != NULL) -+ { -+ temp[1] = '\0'; -+ } -+ -+ char **arr = NULL; -+ /* Ask Alexey why he added this. Are we not 100% sure -+ that we're dealing with unix paths here? */ -+ char split_char = ':'; -+ if (strchr (to_path_list, ';')) -+ { -+ split_char = ';'; -+ } -+ size_t count = split_path_list (to_path_list, split_char, &arr); -+ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ -+ size_t exe_path_size = strlen (exe_path); -+ size_t i; -+ /* Space required is: -+ count * (exe_path_size + strlen (rel_to_datadir)) -+ rel_to_datadir upper bound is: -+ (count * strlen (from)) + (3 * num_slashes (from)) -+ + strlen(arr[i]) + 1. -+ .. pathalogically num_slashes (from) is strlen (from) -+ (from = ////////) */ -+ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; -+ for (i = 0; i < count; ++i) -+ { -+ space_required += strlen (arr[i]); -+ } -+ char * scratch = (char *) alloca (space_required); -+ if (scratch == NULL) -+ return NULL; -+ for (i = 0; i < count; ++i) -+ { -+ char * rel_to_datadir = get_relative_path (from, arr[i]); -+ scratch[0] = '\0'; -+ arr[i] = scratch; -+ strcat (scratch, exe_path); -+ strcat (scratch, rel_to_datadir); -+ simplify_path (arr[i]); -+ size_t arr_i_size = strlen (arr[i]); -+ result_size += arr_i_size; -+ scratch = arr[i] + arr_i_size + 1; -+ } -+ char * result = (char *) malloc (result_size); -+ if (result == NULL) -+ { -+ return NULL; -+ } -+ result[0] = '\0'; -+ for (i = 0; i < count; ++i) -+ { -+ strcat (result, arr[i]); -+ if (i != count-1) -+ { -+#if defined(_WIN32) -+ strcat (result, ";"); -+#else -+ strcat (result, ":"); -+#endif -+ } -+ } -+ free ((void*)arr); -+ return result; -+} -+ -+char * -+single_path_relocation(const char *from, const char *to) -+{ -+#if defined(__MINGW32__) -+ char exe_path[PATH_MAX]; -+ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); -+ if (strrchr (exe_path, '/') != NULL) -+ { -+ strrchr (exe_path, '/')[1] = '\0'; -+ } -+ char * rel_to_datadir = get_relative_path (from, to); -+ strcat (exe_path, rel_to_datadir); -+ simplify_path (&exe_path[0]); -+ return malloc_copy_string(exe_path); -+#else -+ return malloc_copy_string(to); -+#endif -+} -+ -+char * -+pathlist_relocation(const char *from_path, const char *to_path_list) -+{ -+#if defined(__MINGW32__) -+ static char stored_path[PATH_MAX]; -+ static int stored = 0; -+ if (stored == 0) -+ { -+ char const * relocated = get_relocated_path_list(from_path, to_path_list); -+ strncpy (stored_path, relocated, PATH_MAX); -+ stored_path[PATH_MAX-1] = '\0'; -+ free ((void *)relocated); -+ stored = 1; -+ } -+ return stored_path; -+#else -+ return (to_path_list); -+#endif -+} -diff --git a/mingw-w64-tools/widl/src/widl.c b/mingw-w64-tools/widl/src/widl.c -index dfe2341..51186d1 100644 ---- a/mingw-w64-tools/widl/src/widl.c -+++ b/mingw-w64-tools/widl/src/widl.c -@@ -42,6 +42,7 @@ - #include "parser.h" - #include "wine/wpp.h" - #include "header.h" -+#include "pathtools.h" - - /* future options to reserve characters for: */ - /* A = ACF input filename */ -@@ -540,6 +541,7 @@ int main(int argc,char *argv[]) - int opti = 0; - char *output_name = NULL; - -+ - signal( SIGTERM, exit_on_signal ); - signal( SIGINT, exit_on_signal ); - #ifdef SIGHUP -@@ -695,7 +697,17 @@ int main(int argc,char *argv[]) - } - - #ifdef DEFAULT_INCLUDE_DIR -- wpp_add_include_path(DEFAULT_INCLUDE_DIR); -+ char exe_path[PATH_MAX]; -+ get_executable_path (argv[0], &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); -+ char * rel_to_includedir = get_relative_path (DEFAULT_BINDIR, DEFAULT_INCLUDE_DIR); -+ if (strrchr (exe_path, '/') != NULL) { -+ strrchr (exe_path, '/')[1] = '\0'; -+ } -+ char relocated_default_include_dir[PATH_MAX]; -+ strcpy (relocated_default_include_dir, exe_path); -+ strcat (relocated_default_include_dir, rel_to_includedir); -+ simplify_path (&relocated_default_include_dir[0]); -+ wpp_add_include_path(relocated_default_include_dir); - #endif - - /* if nothing specified, try to guess output type from the output file name */ --- -2.4.5 - diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index cea67256e2..38a5b9d023 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -7,7 +7,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.0.0.4573.628fdbf +pkgver=5.0.0.4587.9172490 pkgrel=1 pkgdesc="MinGW-w64 tools" arch=('any') @@ -17,14 +17,12 @@ groups=("${MINGW_PACKAGE_PREFIX}-toolchain") makedepends=("git" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libmangle") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' '!emptydirs') -source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" - "0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch") -md5sums=('SKIP' - '4881e9b6cb7640e3542f45b88bd53a5e') +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +md5sums=('SKIP') _tools="gendef genlib genidl genpeimg widl" # genstubdll pkgver() { - cd "$srcdir/mingw-w64" + cd "${srcdir}/mingw-w64" local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') local _rev=0 @@ -33,7 +31,7 @@ pkgver() { prepare() { cd "${srcdir}/mingw-w64" - git am "$srcdir/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch" + #git am "$srcdir/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch" } build() { From 371a48aba8a25002818918361d7c01ca0d243795 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 13 Nov 2015 08:53:38 +0300 Subject: [PATCH 1873/2060] bullet: Update to 2.83.6 --- mingw-w64-bullet/PKGBUILD | 11 ++++++----- mingw-w64-tools-git/PKGBUILD | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/mingw-w64-bullet/PKGBUILD b/mingw-w64-bullet/PKGBUILD index 4bd4b0fef3..88736f5ef6 100644 --- a/mingw-w64-bullet/PKGBUILD +++ b/mingw-w64-bullet/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=bullet +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -pkgver=2.83.5 +pkgver=2.83.6 pkgrel=1 pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation (mingw-w64)" arch=('any') @@ -15,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/bulletphysics/bullet3/archive/${pkgver}.tar.gz" cast-error.patch promit-bulletcollisions.patch) -md5sums=('87e42fad2216801d5cef0af7e547ce08' +md5sums=('44cb2464336a2082b2c144194c2a2668' '8db1300cf01a0fb244cb4b3ea5eb102e' '1340ed3f23915dcaf8e29d0eedc5e8c3') @@ -33,7 +34,7 @@ build_release() { depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-freeglut") install=${_realname}-${CARCH}.install - [ -d build-release ] && rm -rf build-release + [[ -d build-release ]] && rm -rf build-release mkdir -p build-release && pushd build-release MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ @@ -55,7 +56,7 @@ build_release() { for f in $(find examples -type f -iname *.dll -o -iname *.exe); do cp ${f} ${pkgdir}${MINGW_PREFIX}/share/bullet/ done - cp -f ${srcdir}/bullet3-${pkgver}/data/* ${pkgdir}${MINGW_PREFIX}/share/bullet/ + cp -rf ${srcdir}/bullet3-${pkgver}/data/* ${pkgdir}${MINGW_PREFIX}/share/bullet/ for f in gtest gwen OpenGLWindow; do cp lib/lib${f}.dll ${pkgdir}${MINGW_PREFIX}/share/bullet/ done @@ -66,7 +67,7 @@ build_release() { build_debug() { depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgrel}") - [ -d build-debug ] && rm -rf build-debug + [[ -d build-debug ]] && rm -rf build-debug mkdir -p build-debug && pushd build-debug MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index 38a5b9d023..f67ac355f4 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -31,7 +31,7 @@ pkgver() { prepare() { cd "${srcdir}/mingw-w64" - #git am "$srcdir/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch" + #git am "${srcdir}/0001-widl-Relocate-DEFAULT_INCLUDE_DIR.patch" } build() { From 2f49d64b04faf34a41ee2121b52230b202582ea3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 13 Nov 2015 09:02:15 +0300 Subject: [PATCH 1874/2060] ffmpeg: Update to 2.8.2 --- mingw-w64-ffmpeg/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index aa1dd1c573..3b68d6d10a 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -3,8 +3,8 @@ _realname=ffmpeg pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.8.1 -pkgrel=3 +pkgver=2.8.2 +pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" @@ -42,7 +42,7 @@ depends=( ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-yasm") source=(http://ffmpeg.org/releases/${_realname}-${pkgver}.tar.bz2) -md5sums=('63b2cfeea930e942ff7579fd0064c5be') +md5sums=('99f31723326dfe1bfd1bc7521338f2d2') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From abe04373800c6ec9848ecd3a3efbcb64c605c5d6 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 13 Nov 2015 08:58:46 +0100 Subject: [PATCH 1875/2060] evince: updated to 3.18.2. --- mingw-w64-evince/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-evince/PKGBUILD b/mingw-w64-evince/PKGBUILD index f92c0eaea3..13417c5eb3 100644 --- a/mingw-w64-evince/PKGBUILD +++ b/mingw-w64-evince/PKGBUILD @@ -3,7 +3,7 @@ _realname=evince pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.18.1 +pkgver=3.18.2 pkgrel=1 arch=('any') pkgdesc="Document (PostScript, PDF) viewer (mingw-w64)" @@ -34,7 +34,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" install=evince-${CARCH}.install source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 0002-missing-include.patch) -sha256sums=('7b5023765e6d6fb98da582fe3adc4f268f87b2f35110634e12cdac40f7aa8c31' +sha256sums=('42ad6c7354d881a9ecab136ea84ff867acb942605bcfac48b6c12e1c2d8ecb17' 'd2850c4bdfa87fa56bae2674d2c798f9181bfb3f19319fbc9966672caae48237') prepare() { From 2f545384346c6e760c3e8f4b339b9773a84caf07 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 13 Nov 2015 09:08:35 +0100 Subject: [PATCH 1876/2060] eog-plugins: updated to 3.16.3. --- mingw-w64-eog-plugins/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-eog-plugins/PKGBUILD b/mingw-w64-eog-plugins/PKGBUILD index 613c790e93..5658853ac3 100644 --- a/mingw-w64-eog-plugins/PKGBUILD +++ b/mingw-w64-eog-plugins/PKGBUILD @@ -3,7 +3,7 @@ _realname=eog-plugins pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.2 +pkgver=3.16.3 pkgrel=1 arch=('any') pkgdesc="Eye of GNOME graphics viewer program - plugins (mingw-w64)" @@ -22,7 +22,7 @@ install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch 002-champlain.patch) -sha256sums=('f33de3c78d6a7d8a89441daa9c3e49e043dcdc527b0b7d477f0bf2d3af08e534' +sha256sums=('2d2198ed026b1c28329ac3d353b3031c2024277d81d60f3c1e626f4701a73bd2' '7b5a599b0fb719156747627944cae4b1107ffb8f11bcaddf0c8100d89c93548d' '3b7fab068ff3739fed247f72abbc18accb409b9008593e806f5c4e3df1d9b32d') From 0db8dd4695dfbfa624c7e26e0acea88c355709fb Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 13 Nov 2015 09:23:22 +0100 Subject: [PATCH 1877/2060] libsoup: updated to 2.52.2. --- mingw-w64-libsoup/PKGBUILD | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/mingw-w64-libsoup/PKGBUILD b/mingw-w64-libsoup/PKGBUILD index fe7eea7a20..22eb35401f 100644 --- a/mingw-w64-libsoup/PKGBUILD +++ b/mingw-w64-libsoup/PKGBUILD @@ -3,7 +3,7 @@ _realname=libsoup pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.52.1 +pkgver=2.52.2 pkgrel=1 pkgdesc="HTTP client/server library (mingw-w64)" arch=(any) @@ -22,18 +22,16 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" 0004-localedir-fix.patch - 0006-change-pkg-config-invocations.mingw.patch - 0007-missing-prototype.patch) -md5sums=('b80f11674724ab38f96426875bc0e2e5' + 0006-change-pkg-config-invocations.mingw.patch) +md5sums=('e4757d09012ed93822b1ee41435fec24' 'ee2cc56c1448c32020288c817b81ff7f' - '412394f65ad3153aa9587b888acf2f96' - '183cdc5619c1222a84eb774f4e7d8073') + '412394f65ad3153aa9587b888acf2f96') prepare() { cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i ${srcdir}/0004-localedir-fix.patch patch -p1 -i ${srcdir}/0006-change-pkg-config-invocations.mingw.patch - patch -p1 -i ${srcdir}/0007-missing-prototype.patch autoreconf -fi } @@ -42,6 +40,10 @@ build() { #CPPFLAGS+=" --save-temps" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + + mkdir -p docs/reference/html + cp -rf ../${_realname}-${pkgver}/docs/reference/html/* docs/reference/html + ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -59,4 +61,6 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } From 27c6440adf446ac0d16aee826efa92fca8961643 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 13 Nov 2015 11:39:54 +0300 Subject: [PATCH 1878/2060] libvpx: Update to 1.5.0 --- .../use_fopen_for_xp_compatibility.patch | 8 +- .../0001-enable-shared-on.mingw.patch | 162 ++++++++++-------- mingw-w64-libvpx/0002-no-pthreads.mingw.patch | 4 +- .../0006-instll-implib.mingw.patch | 11 -- .../0008-fix-ln-on-install.mingw.patch | 26 --- mingw-w64-libvpx/PKGBUILD | 21 ++- 6 files changed, 109 insertions(+), 123 deletions(-) delete mode 100644 mingw-w64-libvpx/0006-instll-implib.mingw.patch delete mode 100644 mingw-w64-libvpx/0008-fix-ln-on-install.mingw.patch diff --git a/mingw-w64-libmariadbclient/use_fopen_for_xp_compatibility.patch b/mingw-w64-libmariadbclient/use_fopen_for_xp_compatibility.patch index 168888be9e..f4ddbc9f4b 100644 --- a/mingw-w64-libmariadbclient/use_fopen_for_xp_compatibility.patch +++ b/mingw-w64-libmariadbclient/use_fopen_for_xp_compatibility.patch @@ -1,5 +1,5 @@ ---- libmariadb/dbug.c 2014-04-04 04:21:01.000000000 -0600 -+++ libmariadb/dbug.c 2015-01-24 16:47:13.316693150 -0700 +--- mariadb-connector-c-2.2.0-src/libmariadb/dbug.c 2014-04-04 04:21:01.000000000 -0600 ++++ mariadb-connector-c-2.2.0-src/libmariadb/dbug.c 2015-01-24 16:47:13.316693150 -0700 @@ -2050,11 +2050,7 @@ } else @@ -12,8 +12,8 @@ { (void) fprintf(stderr, ERR_OPEN, cs->process, name); perror(""); ---- libmariadb/my_fopen.c 2014-04-04 04:21:01.000000000 -0600 -+++ libmariadb/my_fopen.c 2015-01-24 16:46:10.735766900 -0700 +--- mariadb-connector-c-2.2.0-src/libmariadb/my_fopen.c 2014-04-04 04:21:01.000000000 -0600 ++++ mariadb-connector-c-2.2.0-src/libmariadb/my_fopen.c 2015-01-24 16:46:10.735766900 -0700 @@ -36,11 +36,7 @@ FileName, Flags, MyFlags)); diff --git a/mingw-w64-libvpx/0001-enable-shared-on.mingw.patch b/mingw-w64-libvpx/0001-enable-shared-on.mingw.patch index 58c31823d5..4807686d9c 100644 --- a/mingw-w64-libvpx/0001-enable-shared-on.mingw.patch +++ b/mingw-w64-libvpx/0001-enable-shared-on.mingw.patch @@ -1,7 +1,7 @@ -diff -Naur libvpx-1.4.0-orig/build/make/configure.sh libvpx-1.4.0/build/make/configure.sh ---- libvpx-1.4.0-orig/build/make/configure.sh 2015-04-03 21:49:19.000000000 +0300 -+++ libvpx-1.4.0/build/make/configure.sh 2015-04-07 09:41:34.049400000 +0300 -@@ -556,11 +556,14 @@ +diff -Naur libvpx-1.5.0-orig/build/make/configure.sh libvpx-1.5.0/build/make/configure.sh +--- libvpx-1.5.0-orig/build/make/configure.sh 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.5.0/build/make/configure.sh 2015-04-07 09:41:34.049400000 +0300 +@@ -572,11 +572,14 @@ --libdir=*) libdir="${optval}" ;; @@ -17,7 +17,7 @@ diff -Naur libvpx-1.4.0-orig/build/make/configure.sh libvpx-1.4.0/build/make/con die "Option ${opt} requires argument" ;; --help|-h) -@@ -589,9 +592,14 @@ +@@ -605,9 +608,14 @@ prefix="${prefix%/}" libdir="${libdir:-${prefix}/lib}" libdir="${libdir%/}" @@ -32,31 +32,42 @@ diff -Naur libvpx-1.4.0-orig/build/make/configure.sh libvpx-1.4.0/build/make/con } post_process_cmdline() { -diff -Naur libvpx-1.4.0-orig/build/make/Makefile libvpx-1.4.0/build/make/Makefile ---- libvpx-1.4.0-orig/build/make/Makefile 2015-04-03 21:49:19.000000000 +0300 -+++ libvpx-1.4.0/build/make/Makefile 2015-04-07 09:41:34.049400000 +0300 -@@ -297,7 +297,7 @@ - $(qexec)$$(LD) -shared $$(LDFLAGS) \ - -Wl,--no-undefined -Wl,-soname,$$(SONAME) \ - -Wl,--version-script,$$(EXPORTS_FILE) -o $$@ \ -- $$(filter %.o,$$^) $$(extralibs) -+ -Wl,--out-implib=$$(subst $(2),.dll.a,$(1)) $$(filter %.o,$$^) $$(extralibs) +diff -Naur libvpx-1.5.0-orig/build/make/Makefile libvpx-1.5.0/build/make/Makefile +--- libvpx-1.5.0-orig/build/make/Makefile 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.5.0/build/make/Makefile 2015-04-07 09:41:34.049400000 +0300 +@@ -303,6 +303,20 @@ + -Wl,--version-script,$$(EXPORTS_FILE) -o $$@ \ + $$(filter %.o,$$^) $$(extralibs) endef ++ ++define dll_gnu_template ++# Not using a pattern rule here because we don't want to generate empty ++# archives when they are listed as a dependency in files not responsible ++# for creating them. ++# ++# This needs further abstraction for dealing with non-GNU linkers. ++$(1): ++ $(if $(quiet),@echo " [LD] $$@") ++ $(qexec)$$(LD) -shared $$(LDFLAGS) \ ++ -Wl,--no-undefined \ ++ -o $$@ \ ++ -Wl,--out-implib=$$(subst $(2),.dll.a,$(1)) $$(filter %.o,$$^) $$(extralibs) ++endef define dl_template -@@ -383,7 +383,7 @@ - .libs: $(LIBS) - @touch $@ - $(foreach lib,$(filter %_g.a,$(LIBS)),$(eval $(call archive_template,$(lib)))) --$(foreach lib,$(filter %so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR).$(SO_VERSION_PATCH),$(LIBS)),$(eval $(call so_template,$(lib)))) -+$(foreach lib,$(filter %-$(VERSION_MAJOR).dll,$(LIBS)),$(eval $(call so_template,$(lib),-$(VERSION_MAJOR).dll))) + # Not using a pattern rule here because we don't want to generate empty +@@ -386,6 +387,7 @@ + $(foreach lib,$(filter %so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR).$(SO_VERSION_PATCH),$(LIBS)),$(eval $(call so_template,$(lib)))) $(foreach lib,$(filter %$(SO_VERSION_MAJOR).dylib,$(LIBS)),$(eval $(call dl_template,$(lib)))) + $(foreach lib,$(filter %$(SO_VERSION_MAJOR).dll,$(LIBS)),$(eval $(call dll_template,$(lib)))) ++$(foreach lib,$(filter %-$(VERSION_MAJOR).dll,$(LIBS)),$(eval $(call dll_gnu_template,$(lib),-$(VERSION_MAJOR).dll))) INSTALL-LIBS=$(call cond_enabled,CONFIG_INSTALL_LIBS,INSTALL-LIBS) -diff -Naur libvpx-1.4.0-orig/configure libvpx-1.4.0/configure ---- libvpx-1.4.0-orig/configure 2015-04-03 21:49:19.000000000 +0300 -+++ libvpx-1.4.0/configure 2015-04-07 09:41:34.049400000 +0300 -@@ -516,6 +516,7 @@ + ifeq ($(MAKECMDGOALS),dist) +diff -Naur libvpx-1.5.0-orig/configure libvpx-1.5.0/configure +--- libvpx-1.5.0-orig/configure 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.5.0/configure 2015-04-07 09:41:34.049400000 +0300 +@@ -476,6 +476,7 @@ DIST_DIR?=\$(DESTDIR)${prefix} endif LIBSUBDIR=${libdir##${prefix}/} @@ -64,9 +75,9 @@ diff -Naur libvpx-1.4.0-orig/configure libvpx-1.4.0/configure VERSION_STRING=${VERSION_STRING} -@@ -549,9 +550,13 @@ +@@ -509,9 +510,13 @@ # magic happens after the command line has been parsed. - if ! enabled linux; then + if ! enabled linux && ! enabled os2; then if enabled gnu; then - echo "--enable-shared is only supported on ELF; assuming this is OK" + echo "--enable-shared is only supported on ELF and PE; assuming this is OK" @@ -75,27 +86,32 @@ diff -Naur libvpx-1.4.0-orig/configure libvpx-1.4.0/configure + elif enabled win64; then + echo "--enable-shared is only supported on ELF and PE; assuming this is OK" else -- die "--enable-shared only supported on ELF for now" -+ die "--enable-shared only supported on ELF and PE for now" +- die "--enable-shared only supported on ELF and OS/2 for now" ++ die "--enable-shared only supported on ELF, OS/2 and PE for now" fi fi fi -diff -Naur libvpx-1.4.0-orig/examples.mk libvpx-1.4.0/examples.mk ---- libvpx-1.4.0-orig/examples.mk 2015-04-03 21:49:19.000000000 +0300 -+++ libvpx-1.4.0/examples.mk 2015-04-07 09:41:34.065000000 +0300 -@@ -275,7 +275,7 @@ - - # Instantiate linker template for all examples. - CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx) --SHARED_LIB_SUF=$(if $(filter darwin%,$(TGT_OS)),.dylib,.so) -+SHARED_LIB_SUF=$(if $(filter darwin%,$(TGT_OS)),.dylib,.dll) +diff -Naur libvpx-1.5.0-orig/examples.mk libvpx-1.5.0/examples.mk +--- libvpx-1.5.0-orig/examples.mk 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.5.0/examples.mk 2015-04-07 09:41:34.065000000 +0300 +@@ -291,9 +291,13 @@ + ifneq ($(filter os2%,$(TGT_OS)),) + SHARED_LIB_SUF=_dll.a + else ++ifneq ($(filter win%,$(TGT_OS)),) ++SHARED_LIB_SUF=.dll.a ++else + SHARED_LIB_SUF=.so + endif + endif ++endif CODEC_LIB_SUF=$(if $(CONFIG_SHARED),$(SHARED_LIB_SUF),.a) $(foreach bin,$(BINS-yes),\ - $(if $(BUILD_OBJS),$(eval $(bin):\ -diff -Naur libvpx-1.4.0-orig/libs.mk libvpx-1.4.0/libs.mk ---- libvpx-1.4.0-orig/libs.mk 2015-04-03 21:49:19.000000000 +0300 -+++ libvpx-1.4.0/libs.mk 2015-04-07 09:41:34.065000000 +0300 -@@ -131,6 +131,7 @@ + $(eval $(bin):$(LIB_PATH)/lib$(CODEC_LIB)$(CODEC_LIB_SUF))\ +diff -Naur libvpx-1.5.0-orig/libs.mk libvpx-1.5.0/libs.mk +--- libvpx-1.5.0-orig/libs.mk 2015-04-03 21:49:19.000000000 +0300 ++++ libvpx-1.5.0/libs.mk 2015-04-07 09:41:34.065000000 +0300 +@@ -164,6 +164,7 @@ INSTALL_MAPS += include/vpx/% $(SRC_PATH_BARE)/vpx/% INSTALL_MAPS += include/vpx/% $(SRC_PATH_BARE)/vpx_ports/% INSTALL_MAPS += $(LIBSUBDIR)/% % @@ -103,45 +119,53 @@ diff -Naur libvpx-1.4.0-orig/libs.mk libvpx-1.4.0/libs.mk INSTALL_MAPS += src/% $(SRC_PATH_BARE)/% ifeq ($(CONFIG_MSVS),yes) INSTALL_MAPS += $(foreach p,$(VS_PLATFORMS),$(LIBSUBDIR)/$(p)/% $(p)/Release/%) -@@ -239,18 +240,18 @@ - LIBVPX_SO_SYMLINKS := $(addprefix $(LIBSUBDIR)/, \ - libvpx.dylib ) +@@ -277,6 +278,13 @@ + LIBVPX_SO_SYMLINKS := + LIBVPX_SO_IMPLIB := libvpx_dll.a else --LIBVPX_SO := libvpx.so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR).$(SO_VERSION_PATCH) ++ifeq ($(filter win%,$(TGT_OS)),$(TGT_OS)) +LIBVPX_SO := libvpx-$(VERSION_MAJOR).dll ++SHARED_LIB_SUF := .dll.a ++EXPORT_FILE := ++LIBVPX_SO_SYMLINKS := ++LIBVPX_SO_IMPLIB := libvpx.dll.a ++else + LIBVPX_SO := libvpx.so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR).$(SO_VERSION_PATCH) + SHARED_LIB_SUF := .so EXPORT_FILE := libvpx.ver --LIBVPX_SO_SYMLINKS := $(addprefix $(LIBSUBDIR)/, \ -- libvpx.so libvpx.so.$(SO_VERSION_MAJOR) \ -- libvpx.so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR)) -+LIBVPX_SO_SYMLINKS := $(addprefix $(BINSUBDIR)/, \ -+ libvpx.dll libvpx-$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH).dll \ -+ libvpx-$(VERSION_MAJOR).$(VERSION_MINOR).dll) +@@ -285,13 +293,14 @@ + libvpx.so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR)) endif + endif ++endif - LIBS-$(BUILD_LIBVPX_SO) += $(BUILD_PFX)$(LIBVPX_SO)\ - $(notdir $(LIBVPX_SO_SYMLINKS)) + LIBS-$(CONFIG_SHARED) += $(BUILD_PFX)$(LIBVPX_SO)\ + $(notdir $(LIBVPX_SO_SYMLINKS)) \ + $(if $(LIBVPX_SO_IMPLIB), $(BUILD_PFX)$(LIBVPX_SO_IMPLIB)) $(BUILD_PFX)$(LIBVPX_SO): $(LIBVPX_OBJS) $(EXPORT_FILE) $(BUILD_PFX)$(LIBVPX_SO): extralibs += -lm -$(BUILD_PFX)$(LIBVPX_SO): SONAME = libvpx.so.$(SO_VERSION_MAJOR) -+$(BUILD_PFX)$(LIBVPX_SO): SONAME = libvpx-$(VERSION_MAJOR).dll ++$(BUILD_PFX)$(LIBVPX_SO): SONAME = $(LIBVPX_SO) $(BUILD_PFX)$(LIBVPX_SO): EXPORTS_FILE = $(EXPORT_FILE) libvpx.ver: $(call enabled,CODEC_EXPORTS) -@@ -281,7 +282,7 @@ +@@ -319,6 +328,10 @@ + $(qexec)emximp -o $@ $< + CLEAN-OBJS += libvpx_dll.a + ++libvpx.dll.a: $(LIBVPX_SO) ++ @echo " [IMPLIB] $@" ++CLEAN-OBJS += libvpx.dll.a ++ + define libvpx_symlink_template + $(1): $(2) + @echo " [LN] $(2) $$@" +@@ -335,7 +348,7 @@ - INSTALL-LIBS-$(BUILD_LIBVPX_SO) += $(LIBVPX_SO_SYMLINKS) --INSTALL-LIBS-$(BUILD_LIBVPX_SO) += $(LIBSUBDIR)/$(LIBVPX_SO) -+INSTALL-LIBS-$(BUILD_LIBVPX_SO) += $(BINSUBDIR)/$(LIBVPX_SO) + INSTALL-LIBS-$(CONFIG_SHARED) += $(LIBVPX_SO_SYMLINKS) +-INSTALL-LIBS-$(CONFIG_SHARED) += $(LIBSUBDIR)/$(LIBVPX_SO) ++INSTALL-LIBS-$(CONFIG_SHARED) += $(BINSUBDIR)/$(LIBVPX_SO) + INSTALL-LIBS-$(CONFIG_SHARED) += $(if $(LIBVPX_SO_IMPLIB),$(LIBSUBDIR)/$(LIBVPX_SO_IMPLIB)) - LIBS-$(BUILD_LIBVPX) += vpx.pc -@@ -443,7 +444,7 @@ - BINS-$(BUILD_LIBVPX) += $(LIBVPX_TEST_BINS) - - CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx) --CODEC_LIB_SUF=$(if $(CONFIG_SHARED),.so,.a) -+CODEC_LIB_SUF=$(if $(CONFIG_SHARED),.dll,.a) - $(foreach bin,$(LIBVPX_TEST_BINS),\ - $(if $(BUILD_LIBVPX),$(eval $(bin): \ - lib$(CODEC_LIB)$(CODEC_LIB_SUF) libgtest.a ))\ diff --git a/mingw-w64-libvpx/0002-no-pthreads.mingw.patch b/mingw-w64-libvpx/0002-no-pthreads.mingw.patch index cb63882aaf..b9e5095a10 100644 --- a/mingw-w64-libvpx/0002-no-pthreads.mingw.patch +++ b/mingw-w64-libvpx/0002-no-pthreads.mingw.patch @@ -1,10 +1,10 @@ diff -Naur libvpx-1.4.0-orig/configure libvpx-1.4.0/configure --- libvpx-1.4.0-orig/configure 2015-04-07 09:41:34.642200000 +0300 +++ libvpx-1.4.0/configure 2015-04-07 09:41:34.720200000 +0300 -@@ -277,7 +277,6 @@ +@@ -256,7 +256,6 @@ + ${ARCH_EXT_LIST} vpx_ports stdint_h - alt_tree_layout - pthread_h sys_mman_h unistd_h diff --git a/mingw-w64-libvpx/0006-instll-implib.mingw.patch b/mingw-w64-libvpx/0006-instll-implib.mingw.patch deleted file mode 100644 index 7c86daff13..0000000000 --- a/mingw-w64-libvpx/0006-instll-implib.mingw.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur libvpx-1.4.0-orig/libs.mk libvpx-1.4.0/libs.mk ---- libvpx-1.4.0-orig/libs.mk 2015-04-07 09:41:34.642200000 +0300 -+++ libvpx-1.4.0/libs.mk 2015-04-07 09:41:37.325400000 +0300 -@@ -168,6 +168,7 @@ - endif - else - INSTALL-LIBS-$(CONFIG_STATIC) += $(LIBSUBDIR)/libvpx.a -+INSTALL-LIBS-$(CONFIG_SHARED) += $(LIBSUBDIR)/libvpx.dll.a - INSTALL-LIBS-$(CONFIG_DEBUG_LIBS) += $(LIBSUBDIR)/libvpx_g.a - endif - diff --git a/mingw-w64-libvpx/0008-fix-ln-on-install.mingw.patch b/mingw-w64-libvpx/0008-fix-ln-on-install.mingw.patch deleted file mode 100644 index 687c473297..0000000000 --- a/mingw-w64-libvpx/0008-fix-ln-on-install.mingw.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -Naur libvpx-1.4.0-orig/libs.mk libvpx-1.4.0/libs.mk ---- libvpx-1.4.0-orig/libs.mk 2015-04-07 09:41:37.746600000 +0300 -+++ libvpx-1.4.0/libs.mk 2015-04-07 09:41:37.809000000 +0300 -@@ -268,7 +268,7 @@ - CLEAN-OBJS += libvpx.syms - - define libvpx_symlink_template --$(1): $(2) -+$(1): $(3) - @echo " [LN] $(2) $$@" - $(qexec)mkdir -p $$(dir $$@) - $(qexec)ln -sf $(2) $$@ -@@ -276,10 +276,12 @@ - - $(eval $(call libvpx_symlink_template,\ - $(addprefix $(BUILD_PFX),$(notdir $(LIBVPX_SO_SYMLINKS))),\ -+ $(BUILD_PFX)$(LIBVPX_SO),\ - $(BUILD_PFX)$(LIBVPX_SO))) - $(eval $(call libvpx_symlink_template,\ - $(addprefix $(DIST_DIR)/,$(LIBVPX_SO_SYMLINKS)),\ -- $(LIBVPX_SO))) -+ $(LIBVPX_SO),\ -+ $(DIST_DIR)/bin/$(LIBVPX_SO))) - - - INSTALL-LIBS-$(BUILD_LIBVPX_SO) += $(LIBVPX_SO_SYMLINKS) diff --git a/mingw-w64-libvpx/PKGBUILD b/mingw-w64-libvpx/PKGBUILD index 519a16ad3e..9a26e044a7 100644 --- a/mingw-w64-libvpx/PKGBUILD +++ b/mingw-w64-libvpx/PKGBUILD @@ -1,14 +1,15 @@ # Maintainer: Alexey Pavlov _realname=libvpx +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.4.0 -pkgrel=2 +pkgver=1.5.0 +pkgrel=1 pkgdesc="The VP8 Codec SDK (mingw-w64)" arch=('any') license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-yasm") -url=('http://www.webmproject.org/') +url="http://www.webmproject.org/" source=(${_realname}-${pkgver}.tar.gz::https://github.com/webmproject/libvpx/archive/v${pkgver}.tar.gz 0001-enable-shared-on.mingw.patch 0002-no-pthreads.mingw.patch @@ -17,9 +18,9 @@ source=(${_realname}-${pkgver}.tar.gz::https://github.com/webmproject/libvpx/arc 0006-instll-implib.mingw.patch 0008-fix-ln-on-install.mingw.patch) options=('strip' 'staticlibs') -md5sums=('9e82cdcb2d2146f812b71c8a7a2686a3' - 'ced1792a11e8bd446a3e910408b63bbd' - '42a46db4240cf594217606dff3957b34' +md5sums=('0c662bc7525afe281badb3175140d35c' + '6fb5ae049d34259ef403f2dfad997974' + '8f8ae828cbe1803136611d5fa9a04acf' '9f66ab98dbbe170ca7dc0c820f56558a' 'd33bd15169b21f5c6cba379d6c76397f' 'c91d82639fee7d82cf69b13a34c05179' @@ -32,8 +33,6 @@ prepare() { patch -Np1 -i ${srcdir}/0002-no-pthreads.mingw.patch patch -Np1 -i ${srcdir}/0003-cross-with-native-binutils.mingw.patch patch -Np1 -i ${srcdir}/0005-fix-exports.mingw.patch - patch -Np1 -i ${srcdir}/0006-instll-implib.mingw.patch - patch -Np1 -i ${srcdir}/0008-fix-ln-on-install.mingw.patch } build() { @@ -54,6 +53,8 @@ build() { --enable-pic \ --enable-shared \ --enable-static \ + --enable-experimental \ + --enable-spatial-svc \ --disable-examples \ --disable-docs \ --disable-install-docs \ @@ -62,12 +63,10 @@ build() { for _ff in *.mk; do sed -i "s/HAVE_GNU_STRIP=yes/HAVE_GNU_STRIP=no/g" $_ff done - make -j1 + make #-j1 } package() { cd "${srcdir}/build-$MINGW_CHOST" make DIST_DIR="${pkgdir}${MINGW_PREFIX}" install - - rm ${pkgdir}${MINGW_PREFIX}/bin/libvpx{.dll,-1.4}* } From fb40e6ac83c3b1d5b10981a41f1b7dd2694980cb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 13 Nov 2015 11:46:18 +0300 Subject: [PATCH 1879/2060] mesa: Update to 11.0.5 --- mingw-w64-mesa/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index d97b33ff25..5b70cfb086 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -3,7 +3,7 @@ _realname=mesa pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=11.0.4 +pkgver=11.0.5 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ license=('MIT') options=('staticlibs' 'strip') source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig} 001-extra-libs.patch) -md5sums=('c92c37200009eceaab4898119f82e358' +md5sums=('b71b5e6c437cd8c85a61a476ab840f9f' 'SKIP' '3eaea880ab48f851c392c2106a616e21') From 34c0762e04d7525e61b4e7e4da382d449a988f6d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 13 Nov 2015 11:46:33 +0300 Subject: [PATCH 1880/2060] gsl: Update to 2.1 --- mingw-w64-gsl/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gsl/PKGBUILD b/mingw-w64-gsl/PKGBUILD index f179ceb0ca..64e6c399a4 100644 --- a/mingw-w64-gsl/PKGBUILD +++ b/mingw-w64-gsl/PKGBUILD @@ -3,7 +3,7 @@ _realname=gsl pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.0 +pkgver=2.1 pkgrel=1 pkgdesc="The GNU Scientific Library (GSL) is a modern numerical library for C and C++ programmers (mingw-w64)" arch=('any') @@ -12,7 +12,7 @@ license=("GPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('staticlibs' 'strip') source=("http://mirror.ibcp.fr/pub/gnu/gsl/${_realname}-${pkgver}.tar.gz") -md5sums=('ae44cdfed78ece40e73411b63a78c375') +md5sums=('d8f70abafd3e9f0bae03c52d1f4e8de5') build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" From 65a0b1aa3672a9b0d34f456c0c43a1bad4ae5965 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 13 Nov 2015 09:47:42 +0100 Subject: [PATCH 1881/2060] latexila: updated to 3.18.1. --- mingw-w64-latexila/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-latexila/PKGBUILD b/mingw-w64-latexila/PKGBUILD index e7f13593da..69997a073b 100644 --- a/mingw-w64-latexila/PKGBUILD +++ b/mingw-w64-latexila/PKGBUILD @@ -3,8 +3,8 @@ _realname=latexila pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.18.0 -pkgrel=2 +pkgver=3.18.1 +pkgrel=1 arch=('any') pkgdesc="LaTeX editor designed for the GNOME desktop (mingw-w64)" options=(strip staticlibs) @@ -20,7 +20,7 @@ url="http://www.gnome.org" install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 001-win.patch) -sha256sums=('595506ef26a56ed015b718f2127e47bda14281fd54df47f9cf8e91831e6d6cb4' +sha256sums=('edfd95f321dfff31fb094c243c358cb78d19904164b9ef4fb37c021113044d0a' '94159afb2c0f0688c375ddcce3bf7750e7179c40d394847c665bc492632e3942') prepare() { From a2ece4e482a9124566e2b2b4f1074075df61ed23 Mon Sep 17 00:00:00 2001 From: David Macek Date: Sat, 14 Nov 2015 13:20:37 +0100 Subject: [PATCH 1882/2060] pngcrush: Update to v1.7.88 --- mingw-w64-pngcrush/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-pngcrush/PKGBUILD b/mingw-w64-pngcrush/PKGBUILD index 76defac2f6..2ee5236f31 100644 --- a/mingw-w64-pngcrush/PKGBUILD +++ b/mingw-w64-pngcrush/PKGBUILD @@ -3,7 +3,7 @@ _realname=pngcrush pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.7.87 +pkgver=1.7.88 pkgrel=1 pkgdesc="A tool for optimizing the compression of PNG files (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-zlib") source=("http://downloads.sourceforge.net/pmt/${_realname}-${pkgver}-nolib.tar.gz" LICENSE) -md5sums=('657032b1cbe057311fcf43ff39593802' +md5sums=('b181ca7cafa96f73c2c077cb83fa185d' 'e6446a786d939c98fcada57f9ae6de1f') prepare() { From f5319abf448214c6282dadb8e89b32e0877a63de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Lien=20Sell=C3=A6g?= Date: Wed, 18 Nov 2015 17:52:46 +0100 Subject: [PATCH 1883/2060] Add missing dependency for gtksourcviewmm --- mingw-w64-gtksourceviewmm3/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gtksourceviewmm3/PKGBUILD b/mingw-w64-gtksourceviewmm3/PKGBUILD index 876ebed677..235dbb4ac2 100644 --- a/mingw-w64-gtksourceviewmm3/PKGBUILD +++ b/mingw-w64-gtksourceviewmm3/PKGBUILD @@ -10,7 +10,7 @@ arch=('any') url="http://www.gnome.org" license=("LGPL") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-gtksourceview3") +depends=("${MINGW_PACKAGE_PREFIX}-gtksourceview3" "${MINGW_PACKAGE_PREFIX}-gtkmm3") options=(strip staticlibs) source=("http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") sha1sums=('5104c6fa2d3082686fffd1e6f5f5977138fb71bc') From 00e4d4793a284183222fd7f8000fe0ce5dc80147 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 18 Nov 2015 19:02:46 +0000 Subject: [PATCH 1884/2060] llvm + clang: Add FileCheck to llvm Rust build needs it --- mingw-w64-clang/PKGBUILD | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 0ee7288dd2..96d1eaf77b 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -14,7 +14,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" ) pkgver=3.7.0 -pkgrel=6 +pkgrel=7 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -79,7 +79,7 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' 'f7bc109b07b5256a068dbe55097c24b46307aea442bec884d8ba455dc3ad18fd' - '59e7afa5e74d186ad596c9a7625d6022fde0679faea9d1fd516fe0a622dbc01a' + 'e0f4127df5857af667a9e40e2a7a13877352b89c99f3213b491215bf7bd03565' '47fbe90718742d1a3c0aee919b159241e616738447de3505a48a9f5886e5db96' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' '96a6fcd81b8d5134b4273a2e413cd268430022533f1bfb44ed73503ee0ae7e87' @@ -310,10 +310,13 @@ package_llvm(){ mv libcxx-${CARCH} build-${CARCH}/projects/libcxx # Install CMake stuff - install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} - install -Dm644 "${srcdir}"/llvm-${pkgver}.src/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/modules/" - install -Dm644 "${srcdir}"/llvm-${pkgver}.src/cmake/platforms/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/platforms/" - install -Dm644 "${srcdir}/build-${CARCH}"/share/llvm/cmake/LLVMConfig.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/LLVMConfig.cmake" + install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} + install -Dm644 "${srcdir}"/llvm-${pkgver}.src/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/modules/" + install -Dm644 "${srcdir}"/llvm-${pkgver}.src/cmake/platforms/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/platforms/" + install -Dm644 "${srcdir}"/build-${CARCH}/share/llvm/cmake/LLVMConfig.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/LLVMConfig.cmake" + + # Building rust needs this + install -Dm755 "${srcdir}"/build-${CARCH}/bin/FileCheck.exe "${pkgdir}${MINGW_PREFIX}/bin/FileCheck.exe" } package_clang-analyzer() { From a70bd1adc4be0437852b81df238e693b840793fd Mon Sep 17 00:00:00 2001 From: Hannah von Reth Date: Wed, 18 Nov 2015 23:08:09 +0100 Subject: [PATCH 1885/2060] Add png2ico as dep to ecm, update ecm --- mingw-w64-extra-cmake-modules/PKGBUILD | 8 ++++--- mingw-w64-png2ico/PKGBUILD | 32 ++++++++++++++++++++++++++ mingw-w64-png2ico/fix_include.diff | 12 ++++++++++ 3 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-png2ico/PKGBUILD create mode 100644 mingw-w64-png2ico/fix_include.diff diff --git a/mingw-w64-extra-cmake-modules/PKGBUILD b/mingw-w64-extra-cmake-modules/PKGBUILD index 4f2eb7f4ce..1143cede0a 100644 --- a/mingw-w64-extra-cmake-modules/PKGBUILD +++ b/mingw-w64-extra-cmake-modules/PKGBUILD @@ -4,17 +4,18 @@ _realname=extra-cmake-modules pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.12.0 +pkgver=5.16.0 pkgrel=1 pkgdesc='Extra CMake modules (mingw-w64)' arch=('any') url='https://projects.kde.org/projects/kdesupport/extra-cmake-modules' license=('LGPL') -depends=("${MINGW_PACKAGE_PREFIX}-cmake") +depends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-png2ico") makedepends=("${MINGW_PACKAGE_PREFIX}-python3-sphinx") # qt5-tools for QtHelp pages source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" "set-AUTOSTATICPLUGINS.patch") -md5sums=('e4042cf258b545267d74b0cf7d756150' +md5sums=('08d94fb941c670e4f1832a340e855836' '0d249754247382f3b8dda80d6833aac4') prepare() { @@ -26,6 +27,7 @@ prepare() { } build() { + mkdir -p build-${CARCH} cd build-${CARCH} MSYS2_ARG_CONV_EXCL=-DCMAKE_INSTALL_PREFIX= \ cmake ../${_realname}-${pkgver} \ diff --git a/mingw-w64-png2ico/PKGBUILD b/mingw-w64-png2ico/PKGBUILD new file mode 100644 index 0000000000..86b1bf119d --- /dev/null +++ b/mingw-w64-png2ico/PKGBUILD @@ -0,0 +1,32 @@ +# Maintainer: Hannah von Reth + +_realname=png2ico +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver="2002.12.08" +pkgrel=1 +pkgdesc="Converts PNG files to Windows icon resource files. (mingw-w64)" +arch=('any') +license=("GPL2") +url="http://www.winterdrache.de/freeware/png2ico/" +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") +options=(!strip staticlibs !buildflags) + +source=("${_realname}-${pkgver}.tar.gz"::"http://www.winterdrache.de/freeware/${_realname}/data/${_realname}-src-2002-12-08.tar.gz" + "fix_include.diff") +md5sums=('9b663df81c826cd564638cba2e6bc75b' + '0a46ae79edd14ff3c8ca92b5c2e3dc58') + +prepare() { + cd "${srcdir}/${_realname}" + patch -p1 -i "${srcdir}/fix_include.diff" +} + +build() { + cd ${srcdir}/${_realname} + make # VERBOSE=1 +} + +package() { + mkdir ${pkgdir}/bin + cp ${srcdir}/${_realname}/png2ico.exe ${pkgdir}/bin/png2ico.exe +} diff --git a/mingw-w64-png2ico/fix_include.diff b/mingw-w64-png2ico/fix_include.diff new file mode 100644 index 0000000000..9467f6aa4a --- /dev/null +++ b/mingw-w64-png2ico/fix_include.diff @@ -0,0 +1,12 @@ +diff -Nru png2ico-2002.12.08/png2ico/png2ico.cpp src/png2ico/png2ico.cpp +--- png2ico_/png2ico.cpp 2002-12-07 23:37:58.000000000 +0100 ++++ png2ico/png2ico.cpp 2015-11-18 17:51:34.427768900 +0100 +@@ -35,6 +35,8 @@ + #include + #include + #include ++#include ++ + + #if __GNUC__ > 2 + #include From fd34af91a05256b3d8e54055ff4e7bef65a4e27c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Thu, 19 Nov 2015 14:24:46 +0100 Subject: [PATCH 1886/2060] Add package for enum34 Python module. --- mingw-w64-python-enum34/PKGBUILD | 59 ++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 mingw-w64-python-enum34/PKGBUILD diff --git a/mingw-w64-python-enum34/PKGBUILD b/mingw-w64-python-enum34/PKGBUILD new file mode 100644 index 0000000000..4466324541 --- /dev/null +++ b/mingw-w64-python-enum34/PKGBUILD @@ -0,0 +1,59 @@ +# Contributor: Frederic Wang + +_realname=enum34 +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=1.0.4 +pkgrel=1 +pkgdesc='Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4 (mingw-w64)' +arch=('any') +url='https://pypi.python.org/pypi/enum34' +license=('BSD') +makedepends=("${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2") +source=("https://pypi.python.org/packages/source/e/${_realname}/${_realname}-${pkgver}.tar.gz") +sha256sums=('d3c19f26a6a34629c18c775f59dfc5dd595764c722b57a2da56ebfb69b94e447') + +prepare() { + cd "${srcdir}" + cp -r ${_realname}-${pkgver} python2-build + cp -r ${_realname}-${pkgver} python3-build +} + +package_python3-enum34() { + depends=("${MINGW_PACKAGE_PREFIX}-python3") + + cd ${srcdir}/python3-build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -Dm644 enum/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_python2-enum34() { + depends=("${MINGW_PACKAGE_PREFIX}-python2") + + cd ${srcdir}/python2-build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -Dm644 enum/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-enum34() { + package_python2-enum34 +} + +package_mingw-w64-i686-python3-enum34() { + package_python3-enum34 +} + +package_mingw-w64-x86_64-python2-enum34() { + package_python2-enum34 +} + +package_mingw-w64-x86_64-python3-enum34() { + package_python3-enum34 +} From 6478e3e7dde797e8d3ea02c5d9528a177f5f1e49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Thu, 19 Nov 2015 18:40:29 +0100 Subject: [PATCH 1887/2060] Add package for the coverage Python module. --- mingw-w64-python-coverage/PKGBUILD | 76 ++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 mingw-w64-python-coverage/PKGBUILD diff --git a/mingw-w64-python-coverage/PKGBUILD b/mingw-w64-python-coverage/PKGBUILD new file mode 100644 index 0000000000..8f7b95e3de --- /dev/null +++ b/mingw-w64-python-coverage/PKGBUILD @@ -0,0 +1,76 @@ +# Contributor: Frederic Wang + +_realname=coverage +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=4.0.2 +pkgrel=1 +pkgdesc='Code coverage measurement for Python (mingw-w64)' +url='https://coverage.readthedocs.org/' +license=('Apache 2.0') +arch=('any') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") +source=("https://pypi.python.org/packages/source/c/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('c969a88fd0508100e741fc743659b513') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} build-python2 + cp -r ${_realname}-${pkgver} build-python3 +} + +package_python3-coverage() { + cd ${srcdir}/build-python3 + ${MINGW_PREFIX}/bin/python3 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" + + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) + # fix python command in files + for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do + sed -e "s|${PREFIX_WIN}/bin/|/usr/bin/env |g" -i ${_f} + done +} + +package_python2-coverage() { + cd ${srcdir}/build-python2 + ${MINGW_PREFIX}/bin/python2 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" + + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) + # fix python command in files + for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do + sed -e "s|${PREFIX_WIN}/bin/|/usr/bin/env |g" -i ${_f} + done + + for f in coverage; do + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe + if [ -f "${pkgdir}${MINGW_PREFIX}"/bin/${f}.exe.manifest ]; then + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe.manifest + sed -e "s|${f}|${f}2|g" -i "${pkgdir}${MINGW_PREFIX}"/bin/${f}2.exe.manifest + fi + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}-script.py + done +} + +package_mingw-w64-i686-python2-coverage() { + package_python2-coverage +} + +package_mingw-w64-i686-python3-coverage() { + package_python3-coverage +} + +package_mingw-w64-x86_64-python2-coverage() { + package_python2-coverage +} + +package_mingw-w64-x86_64-python3-coverage() { + package_python3-coverage +} From 47c87b3e461ed0cc4596e2d802aae518e6b1f3ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Thu, 19 Nov 2015 19:02:35 +0100 Subject: [PATCH 1888/2060] Add packages for Python module mock and its dependencies pbr, funcsigs. --- mingw-w64-python-funcsigs/PKGBUILD | 59 +++++++++++++++++++++ mingw-w64-python-mock/PKGBUILD | 65 +++++++++++++++++++++++ mingw-w64-python-pbr/PKGBUILD | 82 ++++++++++++++++++++++++++++++ 3 files changed, 206 insertions(+) create mode 100644 mingw-w64-python-funcsigs/PKGBUILD create mode 100644 mingw-w64-python-mock/PKGBUILD create mode 100644 mingw-w64-python-pbr/PKGBUILD diff --git a/mingw-w64-python-funcsigs/PKGBUILD b/mingw-w64-python-funcsigs/PKGBUILD new file mode 100644 index 0000000000..d81a1a9c78 --- /dev/null +++ b/mingw-w64-python-funcsigs/PKGBUILD @@ -0,0 +1,59 @@ +# Contributor: Frederic Wang + +_realname=funcsigs +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=0.4 +pkgrel=1 +pkgdesc='Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+' +arch=('any') +url='https://github.com/testing-cabal/funcsigs' +license=('ASL') +makedepends=("${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2") +source=("https://pypi.python.org/packages/source/f/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('fb1d031f284233e09701f6db1281c2a5') + +prepare() { + cd "${srcdir}" + cp -r ${_realname}-${pkgver} python2-build + cp -r ${_realname}-${pkgver} python3-build +} + +package_python3-funcsigs() { + depends=("${MINGW_PACKAGE_PREFIX}-python3") + + cd ${srcdir}/python3-build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_python2-funcsigs() { + depends=("${MINGW_PACKAGE_PREFIX}-python2") + + cd ${srcdir}/python2-build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-funcsigs() { + package_python2-funcsigs +} + +package_mingw-w64-i686-python3-funcsigs() { + package_python3-funcsigs +} + +package_mingw-w64-x86_64-python2-funcsigs() { + package_python2-funcsigs +} + +package_mingw-w64-x86_64-python3-funcsigs() { + package_python3-funcsigs +} diff --git a/mingw-w64-python-mock/PKGBUILD b/mingw-w64-python-mock/PKGBUILD new file mode 100644 index 0000000000..c4e577e3ef --- /dev/null +++ b/mingw-w64-python-mock/PKGBUILD @@ -0,0 +1,65 @@ +# Contributor: Frederic Wang + +_realname=mock +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=1.3.0 +pkgrel=1 +pkgdesc='Rolling backport of unittest.mock for all Pythons (mingw-w64)' +arch=('any') +url='https://github.com/testing-cabal/mock' +license=('BSD') +makedepends=("${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3-six" + "${MINGW_PACKAGE_PREFIX}-python2-six" + "${MINGW_PACKAGE_PREFIX}-python3-funcsigs" + "${MINGW_PACKAGE_PREFIX}-python2-funcsigs" + "${MINGW_PACKAGE_PREFIX}-python3-pbr" + "${MINGW_PACKAGE_PREFIX}-python2-pbr") +source=("https://pypi.python.org/packages/source/m/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('73ee8a4afb3ff4da1b4afa287f39fdeb') + +prepare() { + cd "${srcdir}" + cp -r ${_realname}-${pkgver} python2-build + cp -r ${_realname}-${pkgver} python3-build +} + +package_python3-mock() { + depends=("${MINGW_PACKAGE_PREFIX}-python3") + + cd ${srcdir}/python3-build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -Dm644 LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_python2-mock() { + depends=("${MINGW_PACKAGE_PREFIX}-python2") + + cd ${srcdir}/python2-build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -Dm644 LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-mock() { + package_python2-mock +} + +package_mingw-w64-i686-python3-mock() { + package_python3-mock +} + +package_mingw-w64-x86_64-python2-mock() { + package_python2-mock +} + +package_mingw-w64-x86_64-python3-mock() { + package_python3-mock +} diff --git a/mingw-w64-python-pbr/PKGBUILD b/mingw-w64-python-pbr/PKGBUILD new file mode 100644 index 0000000000..d8b4163aad --- /dev/null +++ b/mingw-w64-python-pbr/PKGBUILD @@ -0,0 +1,82 @@ +# Contributor: Frederic Wang + +_realname=pbr +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=1.8.1 +pkgrel=1 +pkgdesc="Python Build Reasonableness (mingw-w64)" +url="https://launchpad.net/pbr" +license=("Apache License, Version 2.0") +arch=('any') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-python2-six" + "${MINGW_PACKAGE_PREFIX}-python3-six") +source=("https://pypi.python.org/packages/source/p/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('c8f9285e1a4ca6f9654c529b158baa3a') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} build-python2 + cp -r ${_realname}-${pkgver} build-python3 +} + +package_python3-pbr() { + depends=("${MINGW_PACKAGE_PREFIX}-python3-six") + + cd ${srcdir}/build-python3 + ${MINGW_PREFIX}/bin/python3 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" + + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) + # fix python command in files + for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do + sed -e "s|${PREFIX_WIN}/bin/|/usr/bin/env |g" -i ${_f} + done +} + +package_python2-pbr() { + depends=("${MINGW_PACKAGE_PREFIX}-python2-six") + + cd ${srcdir}/build-python2 + ${MINGW_PREFIX}/bin/python2 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" + + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) + # fix python command in files + for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do + sed -e "s|${PREFIX_WIN}/bin/|/usr/bin/env |g" -i ${_f} + done + + for f in pbr; do + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe + if [ -f "${pkgdir}${MINGW_PREFIX}"/bin/${f}.exe.manifest ]; then + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe.manifest + sed -e "s|${f}|${f}2|g" -i "${pkgdir}${MINGW_PREFIX}"/bin/${f}2.exe.manifest + fi + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}-script.py + done +} + +package_mingw-w64-i686-python2-pbr() { + package_python2-pbr +} + +package_mingw-w64-i686-python3-pbr() { + package_python3-pbr +} + +package_mingw-w64-x86_64-python2-pbr() { + package_python2-pbr +} + +package_mingw-w64-x86_64-python3-pbr() { + package_python3-pbr +} From 1e78b22240008de8baeeccffc368772a4d751e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Fri, 20 Nov 2015 10:27:05 +0100 Subject: [PATCH 1889/2060] Add package for pycparser Python module. --- mingw-w64-python-pycparser/PKGBUILD | 59 +++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 mingw-w64-python-pycparser/PKGBUILD diff --git a/mingw-w64-python-pycparser/PKGBUILD b/mingw-w64-python-pycparser/PKGBUILD new file mode 100644 index 0000000000..a2aa106dcf --- /dev/null +++ b/mingw-w64-python-pycparser/PKGBUILD @@ -0,0 +1,59 @@ +# Contributor: Frederic Wang + +_realname=pycparser +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=2.14 +pkgrel=1 +pkgdesc='Complete parser of the C language, written in pure Python (mingw-w64)' +arch=('any') +url='https://github.com/eliben/pycparser' +license=('BSD') +makedepends=("${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2") +source=("https://pypi.python.org/packages/source/p/${_realname}/${_realname}-${pkgver}.tar.gz") +sha256sums=('7959b4a74abdc27b312fed1c21e6caf9309ce0b29ea86b591fd2e99ecdf27f73') + +prepare() { + cd "${srcdir}" + cp -r ${_realname}-${pkgver} python2-build + cp -r ${_realname}-${pkgver} python3-build +} + +package_python3-pycparser() { + depends=("${MINGW_PACKAGE_PREFIX}-python3") + + cd ${srcdir}/python3-build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_python2-pycparser() { + depends=("${MINGW_PACKAGE_PREFIX}-python2") + + cd ${srcdir}/python2-build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-pycparser() { + package_python2-pycparser +} + +package_mingw-w64-i686-python3-pycparser() { + package_python3-pycparser +} + +package_mingw-w64-x86_64-python2-pycparser() { + package_python2-pycparser +} + +package_mingw-w64-x86_64-python3-pycparser() { + package_python3-pycparser +} From 8064920902b9313fef97d501f0818dbd4cfee275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Fri, 20 Nov 2015 11:27:55 +0100 Subject: [PATCH 1890/2060] Add package for pytest and py Python modules. --- mingw-w64-python-py/PKGBUILD | 55 ++++++++++++++++++++++ mingw-w64-python-pytest/PKGBUILD | 80 ++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 mingw-w64-python-py/PKGBUILD create mode 100644 mingw-w64-python-pytest/PKGBUILD diff --git a/mingw-w64-python-py/PKGBUILD b/mingw-w64-python-py/PKGBUILD new file mode 100644 index 0000000000..aa5bc0eac0 --- /dev/null +++ b/mingw-w64-python-py/PKGBUILD @@ -0,0 +1,55 @@ +# Contributor: Frederic Wang + +_realname=py +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=1.4.30 +pkgrel=1 +pkgdesc='library with cross-python path, ini-parsing, io, code, log facilities (mingw-w64)' +arch=('any') +url='http://pylib.readthedocs.org/' +license=('MIT') +makedepends=("${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2") +source=("https://pypi.python.org/packages/source/p/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('a904aabfe4765cb754f2db84ec7bb03a') + +prepare() { + cd "${srcdir}" + cp -r ${_realname}-${pkgver} python2-build + cp -r ${_realname}-${pkgver} python3-build +} + +package_python3-py() { + cd ${srcdir}/python3-build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_python2-py() { + cd ${srcdir}/python2-build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \ + --root="${pkgdir}" --optimize=1 + + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-py() { + package_python2-py +} + +package_mingw-w64-i686-python3-py() { + package_python3-py +} + +package_mingw-w64-x86_64-python2-py() { + package_python2-py +} + +package_mingw-w64-x86_64-python3-py() { + package_python3-py +} diff --git a/mingw-w64-python-pytest/PKGBUILD b/mingw-w64-python-pytest/PKGBUILD new file mode 100644 index 0000000000..0521777edb --- /dev/null +++ b/mingw-w64-python-pytest/PKGBUILD @@ -0,0 +1,80 @@ +# Contributor: Frederic Wang + +_realname=pytest +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=2.8.3 +pkgrel=1 +pkgdesc='simple powerful testing with Python (mingw-w64)' +url='http://pytest.org' +license=('MIT') +arch=('any') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-python2-py" + "${MINGW_PACKAGE_PREFIX}-python3-py") +source=("https://pypi.python.org/packages/source/p/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('33fd706c4ef857e70200661b0fceb80c') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} build-python2 + cp -r ${_realname}-${pkgver} build-python3 +} + +package_python3-pytest() { + cd ${srcdir}/build-python3 + ${MINGW_PREFIX}/bin/python3 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" + + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) + # fix python command in files + for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do + sed -e "s|${PREFIX_WIN}/bin/|/usr/bin/env |g" -i ${_f} + done +} + +package_python2-pytest() { + cd ${srcdir}/build-python2 + ${MINGW_PREFIX}/bin/python2 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" + + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) + # fix python command in files + for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do + sed -e "s|${PREFIX_WIN}/bin/|/usr/bin/env |g" -i ${_f} + done + + for f in py.test; do + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe + if [ -f "${pkgdir}${MINGW_PREFIX}"/bin/${f}.exe.manifest ]; then + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe.manifest + sed -e "s|${f}|${f}2|g" -i "${pkgdir}${MINGW_PREFIX}"/bin/${f}2.exe.manifest + fi + mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}-script.py + done +} + +package_mingw-w64-i686-python2-pytest() { + package_python2-pytest +} + +package_mingw-w64-i686-python3-pytest() { + package_python3-pytest +} + +package_mingw-w64-x86_64-python2-pytest() { + package_python2-pytest +} + +package_mingw-w64-x86_64-python3-pytest() { + package_python3-pytest +} From db8c1f9f229cd2af516586354696cbfa89af5555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Fri, 20 Nov 2015 11:54:33 +0100 Subject: [PATCH 1891/2060] Add packages for zope.event and zope.interface Python modules #893 --- mingw-w64-python-zope.event/PKGBUILD | 57 ++++++++++++++++++++++++ mingw-w64-python-zope.interface/PKGBUILD | 57 ++++++++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 mingw-w64-python-zope.event/PKGBUILD create mode 100644 mingw-w64-python-zope.interface/PKGBUILD diff --git a/mingw-w64-python-zope.event/PKGBUILD b/mingw-w64-python-zope.event/PKGBUILD new file mode 100644 index 0000000000..c06f992647 --- /dev/null +++ b/mingw-w64-python-zope.event/PKGBUILD @@ -0,0 +1,57 @@ +# Contributor: Frederic Wang + +_realname=zope.event +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=4.1.0 +pkgrel=1 +pkgdesc='Very basic event publishing system (mingw-w64)' +url='http://pypi.python.org/pypi/zope.event' +license=('ZPL 2.1') +arch=('any') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") +source=("https://pypi.python.org/packages/source/z/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('82abb495b6eb2ad196a1a94948674ec0') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} build-python2 + cp -r ${_realname}-${pkgver} build-python3 +} + +package_python3-zope.event() { + cd ${srcdir}/build-python3 + ${MINGW_PREFIX}/bin/python3 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_python2-zope.event() { + cd ${srcdir}/build-python2 + ${MINGW_PREFIX}/bin/python2 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-zope.event() { + package_python2-zope.event +} + +package_mingw-w64-i686-python3-zope.event() { + package_python3-zope.event +} + +package_mingw-w64-x86_64-python2-zope.event() { + package_python2-zope.event +} + +package_mingw-w64-x86_64-python3-zope.event() { + package_python3-zope.event +} diff --git a/mingw-w64-python-zope.interface/PKGBUILD b/mingw-w64-python-zope.interface/PKGBUILD new file mode 100644 index 0000000000..c2a3c466a8 --- /dev/null +++ b/mingw-w64-python-zope.interface/PKGBUILD @@ -0,0 +1,57 @@ +# Contributor: Frederic Wang + +_realname=zope.interface +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=4.1.3 +pkgrel=1 +pkgdesc='Interfaces for Python (mingw-w64)' +url=' https://github.com/zopefoundation/zope.interface' +license=('ZPL 2.1') +arch=('any') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-setuptools") +source=("https://pypi.python.org/packages/source/z/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('9ae3d24c0c7415deb249dd1a132f0f79') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} build-python2 + cp -r ${_realname}-${pkgver} build-python3 +} + +package_python3-zope.interface() { + cd ${srcdir}/build-python3 + ${MINGW_PREFIX}/bin/python3 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_python2-zope.interface() { + cd ${srcdir}/build-python2 + ${MINGW_PREFIX}/bin/python2 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-zope.interface() { + package_python2-zope.interface +} + +package_mingw-w64-i686-python3-zope.interface() { + package_python3-zope.interface +} + +package_mingw-w64-x86_64-python2-zope.interface() { + package_python2-zope.interface +} + +package_mingw-w64-x86_64-python3-zope.interface() { + package_python3-zope.interface +} From 0774e7a2f039355bd783364acc299a70a682a2d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Fri, 20 Nov 2015 12:31:01 +0100 Subject: [PATCH 1892/2060] Add the colorama dependency, which seems necessary for pytest on Windows. --- mingw-w64-python-pytest/PKGBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-python-pytest/PKGBUILD b/mingw-w64-python-pytest/PKGBUILD index 0521777edb..4704684b4c 100644 --- a/mingw-w64-python-pytest/PKGBUILD +++ b/mingw-w64-python-pytest/PKGBUILD @@ -14,7 +14,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python3-setuptools" "${MINGW_PACKAGE_PREFIX}-python2-py" - "${MINGW_PACKAGE_PREFIX}-python3-py") + "${MINGW_PACKAGE_PREFIX}-python3-py" + "${MINGW_PACKAGE_PREFIX}-python2-colorama" + "${MINGW_PACKAGE_PREFIX}-python3-colorama") source=("https://pypi.python.org/packages/source/p/${_realname}/${_realname}-${pkgver}.tar.gz") md5sums=('33fd706c4ef857e70200661b0fceb80c') From e70216bf9aac9872d3b4df79b8af9732f60f159d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Fri, 20 Nov 2015 15:31:57 +0100 Subject: [PATCH 1893/2060] Add packages for various Python modules needed for twisted tls support. #893 --- mingw-w64-python-characteristic/PKGBUILD | 55 +++++++++++++++++++++++ mingw-w64-python-idna/PKGBUILD | 55 +++++++++++++++++++++++ mingw-w64-python-ipaddress/PKGBUILD | 51 +++++++++++++++++++++ mingw-w64-python-pyasn1-modules/PKGBUILD | 57 ++++++++++++++++++++++++ mingw-w64-python-pyasn1/PKGBUILD | 55 +++++++++++++++++++++++ 5 files changed, 273 insertions(+) create mode 100644 mingw-w64-python-characteristic/PKGBUILD create mode 100644 mingw-w64-python-idna/PKGBUILD create mode 100644 mingw-w64-python-ipaddress/PKGBUILD create mode 100644 mingw-w64-python-pyasn1-modules/PKGBUILD create mode 100644 mingw-w64-python-pyasn1/PKGBUILD diff --git a/mingw-w64-python-characteristic/PKGBUILD b/mingw-w64-python-characteristic/PKGBUILD new file mode 100644 index 0000000000..99cdee207d --- /dev/null +++ b/mingw-w64-python-characteristic/PKGBUILD @@ -0,0 +1,55 @@ +# Contributor: Frederic Wang + +_realname=characteristic +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=14.3.0 +pkgrel=1 +pkgdesc='Python attributes without boilerplate (mingw-w64)' +url='https://characteristic.readthedocs.org/' +license=('MIT') +arch=('any') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3") +source=("https://pypi.python.org/packages/source/c/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('b249368dd021fde1c06b4802867c0913') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} build-python2 + cp -r ${_realname}-${pkgver} build-python3 +} + +package_python3-characteristic() { + cd ${srcdir}/build-python3 + ${MINGW_PREFIX}/bin/python3 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_python2-characteristic() { + cd ${srcdir}/build-python2 + ${MINGW_PREFIX}/bin/python2 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-characteristic() { + package_python2-characteristic +} + +package_mingw-w64-i686-python3-characteristic() { + package_python3-characteristic +} + +package_mingw-w64-x86_64-python2-characteristic() { + package_python2-characteristic +} + +package_mingw-w64-x86_64-python3-characteristic() { + package_python3-characteristic +} diff --git a/mingw-w64-python-idna/PKGBUILD b/mingw-w64-python-idna/PKGBUILD new file mode 100644 index 0000000000..080fe4c16e --- /dev/null +++ b/mingw-w64-python-idna/PKGBUILD @@ -0,0 +1,55 @@ +# Contributor: Frederic Wang + +_realname=idna +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=2.0 +pkgrel=1 +pkgdesc='Internationalized Domain Names in Applications (mingw-w64)' +url='https://github.com/kjd/idna' +license=('BSD-like') +arch=('any') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3") +source=("https://pypi.python.org/packages/source/i/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('bd17a9d15e755375f48a62c13b25b801') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} build-python2 + cp -r ${_realname}-${pkgver} build-python3 +} + +package_python3-idna() { + cd ${srcdir}/build-python3 + ${MINGW_PREFIX}/bin/python3 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.rst" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_python2-idna() { + cd ${srcdir}/build-python2 + ${MINGW_PREFIX}/bin/python2 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.rst" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-idna() { + package_python2-idna +} + +package_mingw-w64-i686-python3-idna() { + package_python3-idna +} + +package_mingw-w64-x86_64-python2-idna() { + package_python2-idna +} + +package_mingw-w64-x86_64-python3-idna() { + package_python3-idna +} diff --git a/mingw-w64-python-ipaddress/PKGBUILD b/mingw-w64-python-ipaddress/PKGBUILD new file mode 100644 index 0000000000..5eed5986d5 --- /dev/null +++ b/mingw-w64-python-ipaddress/PKGBUILD @@ -0,0 +1,51 @@ +# Contributor: Frederic Wang + +_realname=ipaddress +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=1.0.15 +pkgrel=1 +pkgdesc='Port of the 3.3+ ipaddress module to 2.6, 2.7, 3.2 (mingw-w64)' +url='https://github.com/phihag/ipaddress' +license=('Python Software Foundation License') +arch=('any') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3") +source=("https://pypi.python.org/packages/source/i/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('12915e923b738107e47827478d553ba1') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} build-python2 + cp -r ${_realname}-${pkgver} build-python3 +} + +package_python3-ipaddress() { + cd ${srcdir}/build-python3 + ${MINGW_PREFIX}/bin/python3 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" +} + +package_python2-ipaddress() { + cd ${srcdir}/build-python2 + ${MINGW_PREFIX}/bin/python2 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" +} + +package_mingw-w64-i686-python2-ipaddress() { + package_python2-ipaddress +} + +package_mingw-w64-i686-python3-ipaddress() { + package_python3-ipaddress +} + +package_mingw-w64-x86_64-python2-ipaddress() { + package_python2-ipaddress +} + +package_mingw-w64-x86_64-python3-ipaddress() { + package_python3-ipaddress +} diff --git a/mingw-w64-python-pyasn1-modules/PKGBUILD b/mingw-w64-python-pyasn1-modules/PKGBUILD new file mode 100644 index 0000000000..da9e24df94 --- /dev/null +++ b/mingw-w64-python-pyasn1-modules/PKGBUILD @@ -0,0 +1,57 @@ +# Contributor: Frederic Wang + +_realname=pyasn1-modules +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=0.0.8 +pkgrel=1 +pkgdesc='A collection of ASN.1-based protocols modules (mingw-w64)' +url='http://sourceforge.net/projects/pyasn1/' +license=('BSD') +arch=('any') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python2-pyasn1" + "${MINGW_PACKAGE_PREFIX}-python2-pyasn1") +source=("https://pypi.python.org/packages/source/p/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('178129bc7fbf07215c25230c5f053f81') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} build-python2 + cp -r ${_realname}-${pkgver} build-python3 +} + +package_python3-pyasn1-modules() { + cd ${srcdir}/build-python3 + ${MINGW_PREFIX}/bin/python3 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_python2-pyasn1-modules() { + cd ${srcdir}/build-python2 + ${MINGW_PREFIX}/bin/python2 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-pyasn1-modules() { + package_python2-pyasn1-modules +} + +package_mingw-w64-i686-python3-pyasn1-modules() { + package_python3-pyasn1-modules +} + +package_mingw-w64-x86_64-python2-pyasn1-modules() { + package_python2-pyasn1-modules +} + +package_mingw-w64-x86_64-python3-pyasn1-modules() { + package_python3-pyasn1-modules +} diff --git a/mingw-w64-python-pyasn1/PKGBUILD b/mingw-w64-python-pyasn1/PKGBUILD new file mode 100644 index 0000000000..813cb6a792 --- /dev/null +++ b/mingw-w64-python-pyasn1/PKGBUILD @@ -0,0 +1,55 @@ +# Contributor: Frederic Wang + +_realname=pyasn1 +pkgbase=mingw-w64-python-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgver=0.1.9 +pkgrel=1 +pkgdesc='ASN.1 types and codecs (mingw-w64)' +url='http://sourceforge.net/projects/pyasn1/' +license=('BSD') +arch=('any') +makedepends=("${MINGW_PACKAGE_PREFIX}-python2" + "${MINGW_PACKAGE_PREFIX}-python3") +source=("https://pypi.python.org/packages/source/p/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('f00a02a631d4016818659d1cc38d229a') + +prepare() { + cd ${srcdir} + cp -r ${_realname}-${pkgver} build-python2 + cp -r ${_realname}-${pkgver} build-python3 +} + +package_python3-pyasn1() { + cd ${srcdir}/build-python3 + ${MINGW_PREFIX}/bin/python3 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" +} + +package_python2-pyasn1() { + cd ${srcdir}/build-python2 + ${MINGW_PREFIX}/bin/python2 setup.py build + MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ + ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE" +} + +package_mingw-w64-i686-python2-pyasn1() { + package_python2-pyasn1 +} + +package_mingw-w64-i686-python3-pyasn1() { + package_python3-pyasn1 +} + +package_mingw-w64-x86_64-python2-pyasn1() { + package_python2-pyasn1 +} + +package_mingw-w64-x86_64-python3-pyasn1() { + package_python3-pyasn1 +} From 2bb8a66244272425b77d8803a858dfcf1cf9899c Mon Sep 17 00:00:00 2001 From: "ricky.wu" Date: Sat, 21 Nov 2015 22:57:15 +0800 Subject: [PATCH 1894/2060] fix space issue --- mingw-w64-gtkada/PKGBUILD | 4 +- mingw-w64-gtkada/space_issue.patch | 62 ++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-gtkada/space_issue.patch diff --git a/mingw-w64-gtkada/PKGBUILD b/mingw-w64-gtkada/PKGBUILD index 1d9954403b..68336dd745 100644 --- a/mingw-w64-gtkada/PKGBUILD +++ b/mingw-w64-gtkada/PKGBUILD @@ -15,7 +15,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-ada") depends=("${MINGW_PACKAGE_PREFIX}-gcc-ada" "${MINGW_PACKAGE_PREFIX}-gtk3") source=("http://www.pfeifers-software.de/files/GNAT/${_realname}-gpl-${pkgver}-src.tgz" - "gtkada-mingw.diff") + "gtkada-mingw.diff" + "space_issue.patch") sha1sums=('84285ea8c016d18bac8860573ff5223ecea8ecf4' 'ca7dcd32bfbfecdcbd923bb2e12dc5b8b0f91305') @@ -23,6 +24,7 @@ prepare() { cd ${srcdir}/${_realname}-${pkgver}-src patch -p0 < contrib/gtkada-3-win32.diff patch -p1 < ${srcdir}/gtkada-mingw.diff + patch -p1 < ${srcdir}/space_issue.patch } build() { diff --git a/mingw-w64-gtkada/space_issue.patch b/mingw-w64-gtkada/space_issue.patch new file mode 100644 index 0000000000..598aafbef3 --- /dev/null +++ b/mingw-w64-gtkada/space_issue.patch @@ -0,0 +1,62 @@ +diff -rup gtkada-3.8.2-src-org/testgtk/create_css_editor.adb gtkada-3.8.2-src/testgtk/create_css_editor.adb +--- gtkada-3.8.2-src-org/testgtk/create_css_editor.adb 2014-01-06 18:22:20.000000000 +0800 ++++ gtkada-3.8.2-src/testgtk/create_css_editor.adb 2015-11-06 11:13:16.881265500 +0800 +@@ -38,28 +38,28 @@ package body Create_Css_Editor is + + CSS : constant String := + "/* You can edit the text in this window to change the" & ASCII.LF +- &" * appearance of this Window." & ASCII.LF +- &" * Be careful, if you screw it up, nothing might be visible" & ASCII.LF +- &" * anymore. :)" & ASCII.LF +- &" */" & ASCII.LF & ASCII.LF ++ & " * appearance of this Window." & ASCII.LF ++ & " * Be careful, if you screw it up, nothing might be visible" & ASCII.LF ++ & " * anymore. :)" & ASCII.LF ++ & " */" & ASCII.LF & ASCII.LF + +- &"/* This CSS resets all properties to their defaults values" & ASCII.LF +- &" * and overrides all user settings and the theme in use */" & ASCII.LF ++ & "/* This CSS resets all properties to their defaults values" & ASCII.LF ++ & " * and overrides all user settings and the theme in use */" & ASCII.LF + & ASCII.LF + +- &"/* Set a very futuristic style by default */" & ASCII.LF & ASCII.LF ++ & "/* Set a very futuristic style by default */" & ASCII.LF & ASCII.LF + +- &"* {" & ASCII.LF +- &" color: green;" & ASCII.LF +- &" font-family: Monospace;" & ASCII.LF +- &" border: 1px solid;" & ASCII.LF +- &"}" & ASCII.LF +- +- &"/* Make sure selections are visible */" & ASCII.LF +- &":selected {" & ASCII.LF +- &" background-color: darkGreen;" & ASCII.LF +- &" color: black;" & ASCII.LF +- &"}"; ++ & "* {" & ASCII.LF ++ & " color: green;" & ASCII.LF ++ & " font-family: Monospace;" & ASCII.LF ++ & " border: 1px solid;" & ASCII.LF ++ & "}" & ASCII.LF ++ ++ & "/* Make sure selections are visible */" & ASCII.LF ++ & ":selected {" & ASCII.LF ++ & " background-color: darkGreen;" & ASCII.LF ++ & " color: black;" & ASCII.LF ++ & "}"; + + Last_Working_Css : Unbounded_String := To_Unbounded_String (CSS); + Error : aliased Glib.Error.GError; +diff -rup gtkada-3.8.2-src-org/testgtk/create_print.adb gtkada-3.8.2-src/testgtk/create_print.adb +--- gtkada-3.8.2-src-org/testgtk/create_print.adb 2014-01-06 18:22:20.000000000 +0800 ++++ gtkada-3.8.2-src/testgtk/create_print.adb 2015-11-06 11:20:56.435618300 +0800 +@@ -127,7 +127,7 @@ package body Create_Print is + Close_Path (Cr); + + Set_Source_Rgb (Cr, 0.0, 0.0, 0.0); +- Set_Line_Width (Cr, 1.0/16.0); ++ Set_Line_Width (Cr, 1.0 / 16.0); + Set_Line_Cap (Cr, Cairo_Line_Cap_Round); + Set_Line_Join (Cr, Cairo_Line_Join_Round); + Cairo.Stroke (Cr); From 25876628cb04f7298a3ad835f49e66613d10f740 Mon Sep 17 00:00:00 2001 From: "ricky.wu" Date: Sat, 21 Nov 2015 22:59:30 +0800 Subject: [PATCH 1895/2060] since first gnat build without gprbuild, we must start it from 2014 version --- mingw-w64-xmlada-gpl/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-xmlada-gpl/PKGBUILD b/mingw-w64-xmlada-gpl/PKGBUILD index e392eef2ed..237e8c742f 100644 --- a/mingw-w64-xmlada-gpl/PKGBUILD +++ b/mingw-w64-xmlada-gpl/PKGBUILD @@ -7,7 +7,7 @@ _realname=xmlada-gpl pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgrel=1 -pkgver=2015 +pkgver=2014 pkgdesc="A full XML suite for Ada" arch=('any') provides=("${MINGW_PACKAGE_PREFIX}-${_realname%-*}") @@ -19,7 +19,7 @@ md5sums=('98c96b8c6a877617ec4da3ef6a03288a') options=('strip') build() { - cd ${srcdir}/${_realname}-${pkgver}-src + cd ${srcdir}/${_realname:0:6}-${pkgver}-src ./configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -34,7 +34,7 @@ package() { mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/xmlada/relocatable mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gnat/xmlada - cd ${srcdir}/${_realname}-${pkgver}-src + cd ${srcdir}/${_realname:0:6}-${pkgver}-src make prefix=${pkgdir}${MINGW_PREFIX} INSTALL=cp install rm -rf ${pkgdir}${MINGW_PREFIX}/share/examples @@ -42,6 +42,6 @@ package() { # Copy License Files mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname - cp -pf ${srcdir}/${_realname}-${pkgver}-src/COPYING* \ + cp -pf ${srcdir}/${_realname:0:6}-${pkgver}-src/COPYING* \ ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} } From c212323234c0dd262955118357bc2e411e11cc97 Mon Sep 17 00:00:00 2001 From: "ricky.wu" Date: Sat, 21 Nov 2015 22:59:56 +0800 Subject: [PATCH 1896/2060] since first gnat build without gprbuild, we must start it from 2014 version --- mingw-w64-gprbuild-gpl/0001_gnat_vmsp.patch | 21 +++++++++++++++++++++ mingw-w64-gprbuild-gpl/PKGBUILD | 7 +++++-- 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-gprbuild-gpl/0001_gnat_vmsp.patch diff --git a/mingw-w64-gprbuild-gpl/0001_gnat_vmsp.patch b/mingw-w64-gprbuild-gpl/0001_gnat_vmsp.patch new file mode 100644 index 0000000000..a90573203a --- /dev/null +++ b/mingw-w64-gprbuild-gpl/0001_gnat_vmsp.patch @@ -0,0 +1,21 @@ +diff -rup gprbuild-gpl-2014-src-org/src/gprbuild_dummies.c gprbuild-gpl-2014-src/src/gprbuild_dummies.c +--- gprbuild-gpl-2014-src-org/src/gprbuild_dummies.c 2014-04-17 17:50:18.000000000 +0800 ++++ gprbuild-gpl-2014-src/src/gprbuild_dummies.c 2015-11-06 19:01:10.384185700 +0800 +@@ -27,3 +27,5 @@ void set_std_prefix (void) { + void update_path (void) { + abort (); + } ++ ++const int __gnat_vmsp = 0; +diff -rup gprbuild-gpl-2014-src-org/src/gprbuild-compilation-slave.adb gprbuild-gpl-2014-src/src/gprbuild-compilation-slave.adb +--- gprbuild-gpl-2014-src-org/src/gprbuild-compilation-slave.adb 2014-04-17 17:50:17.000000000 +0800 ++++ gprbuild-gpl-2014-src/src/gprbuild-compilation-slave.adb 2015-11-06 19:31:27.816735300 +0800 +@@ -817,7 +817,7 @@ package body Gprbuild.Compilation.Slave + S : Slave := Slave_S.Element (C); + begin + Proc (S); +- Pool (C) := S; ++ Pool.Replace_Element (Position => C, New_Item => S); + end; + end loop; + end Iterate; diff --git a/mingw-w64-gprbuild-gpl/PKGBUILD b/mingw-w64-gprbuild-gpl/PKGBUILD index 3c77225c0c..5bde4bb471 100644 --- a/mingw-w64-gprbuild-gpl/PKGBUILD +++ b/mingw-w64-gprbuild-gpl/PKGBUILD @@ -3,7 +3,7 @@ _realname=gprbuild-gpl pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgrel=1 -pkgver=2015 +pkgver=2014 pkgdesc="Software tool designed to help automate the construction of multi-language systems" arch=('any') provides=("${MINGW_PACKAGE_PREFIX}-${_realname%-*}") @@ -15,12 +15,15 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-ada" # "${MINGW_PACKAGE_PREFIX}-xmlada" ) url="http://www.adacore.com/gnatpro/toolsuite/gprbuild/" -source=("http://downloads.dragonlace.net/src/${_realname}-${pkgver}-src.tar.gz") +source=("http://downloads.dragonlace.net/src/${_realname}-${pkgver}-src.tar.gz" + "0001_gnat_vmsp.patch") sha1sums=('bf7f9e6a0efb7f00a0d020d7d2eff5cc1c9b5076') prepare() { cd ${srcdir}/${_realname}-${pkgver}-src + + patch -p1 -i "${srcdir}/0001_gnat_vmsp.patch" } build() { From 86324b14ccdcc0e1eb22b5c99f2e0d0d96661fad Mon Sep 17 00:00:00 2001 From: Benedikt Bitterli Date: Sun, 22 Nov 2015 13:18:08 +0100 Subject: [PATCH 1897/2060] Add package for RapidJSON --- ...e-relative-paths-for-doxygen-outputs.patch | 53 +++++++++++++++++++ .../0002-Add-CMake-check-for-MinGW.patch | 34 ++++++++++++ ...-CMakeLists.txt-from-install-targets.patch | 24 +++++++++ ...Install-compiled-example-executables.patch | 26 +++++++++ mingw-w64-rapidjson/PKGBUILD | 50 +++++++++++++++++ 5 files changed, 187 insertions(+) create mode 100644 mingw-w64-rapidjson/0001-Use-relative-paths-for-doxygen-outputs.patch create mode 100644 mingw-w64-rapidjson/0002-Add-CMake-check-for-MinGW.patch create mode 100644 mingw-w64-rapidjson/0003-Exclude-CMakeLists.txt-from-install-targets.patch create mode 100644 mingw-w64-rapidjson/0004-CMake-Install-compiled-example-executables.patch create mode 100644 mingw-w64-rapidjson/PKGBUILD diff --git a/mingw-w64-rapidjson/0001-Use-relative-paths-for-doxygen-outputs.patch b/mingw-w64-rapidjson/0001-Use-relative-paths-for-doxygen-outputs.patch new file mode 100644 index 0000000000..845bd36742 --- /dev/null +++ b/mingw-w64-rapidjson/0001-Use-relative-paths-for-doxygen-outputs.patch @@ -0,0 +1,53 @@ +From c10dfc56a7e02000cfcbbef5f72c668e47b40ee7 Mon Sep 17 00:00:00 2001 +From: Benedikt Bitterli +Date: Sun, 22 Nov 2015 12:01:59 +0100 +Subject: [PATCH 1/4] Use relative paths for doxygen outputs + +--- + doc/CMakeLists.txt | 2 ++ + doc/Doxyfile.in | 2 +- + doc/Doxyfile.zh-cn.in | 2 +- + 3 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt +index c1f165a..60e0e30 100644 +--- a/doc/CMakeLists.txt ++++ b/doc/CMakeLists.txt +@@ -7,6 +7,8 @@ ELSE() + file(GLOB MARKDOWN_DOC ${CMAKE_CURRENT_LIST_DIR}/../doc/*.md) + list(APPEND MARKDOWN_DOC ${CMAKE_CURRENT_LIST_DIR}/../readme.md) + ++ file(RELATIVE_PATH DOC_OUTPUT_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}) ++ + CONFIGURE_FILE(Doxyfile.in Doxyfile @ONLY) + CONFIGURE_FILE(Doxyfile.zh-cn.in Doxyfile.zh-cn @ONLY) + +diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in +index b806205..ffed423 100644 +--- a/doc/Doxyfile.in ++++ b/doc/Doxyfile.in +@@ -58,7 +58,7 @@ PROJECT_LOGO = + # entered, it will be relative to the location where doxygen was started. If + # left blank the current directory will be used. + +-OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@ ++OUTPUT_DIRECTORY = @DOC_OUTPUT_DIRECTORY@ + + # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- + # directories (in 2 levels) under the output directory of each output format and +diff --git a/doc/Doxyfile.zh-cn.in b/doc/Doxyfile.zh-cn.in +index 873022a..10d3c47 100644 +--- a/doc/Doxyfile.zh-cn.in ++++ b/doc/Doxyfile.zh-cn.in +@@ -58,7 +58,7 @@ PROJECT_LOGO = + # entered, it will be relative to the location where doxygen was started. If + # left blank the current directory will be used. + +-OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@ ++OUTPUT_DIRECTORY = @DOC_OUTPUT_DIRECTORY@ + + # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- + # directories (in 2 levels) under the output directory of each output format and +-- +2.5.0 + diff --git a/mingw-w64-rapidjson/0002-Add-CMake-check-for-MinGW.patch b/mingw-w64-rapidjson/0002-Add-CMake-check-for-MinGW.patch new file mode 100644 index 0000000000..2f9df2443e --- /dev/null +++ b/mingw-w64-rapidjson/0002-Add-CMake-check-for-MinGW.patch @@ -0,0 +1,34 @@ +From 270786a12f18b7639cac4e59f36388d14cad7811 Mon Sep 17 00:00:00 2001 +From: Benedikt Bitterli +Date: Sun, 22 Nov 2015 12:25:29 +0100 +Subject: [PATCH 2/4] Add CMake check for MinGW + +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 51ee620..b333c86 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -38,7 +38,7 @@ SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The direct + SET(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE STRING "Directory where lib will install") + SET(DOC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}" CACHE PATH "Path to the documentation") + +-IF(UNIX OR CYGWIN) ++IF(UNIX OR CYGWIN OR MINGW) + SET(_CMAKE_INSTALL_DIR "${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME}") + ELSEIF(WIN32) + SET(_CMAKE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/cmake") +@@ -69,7 +69,7 @@ if(RAPIDJSON_BUILD_TESTS) + endif() + + # pkg-config +-IF (UNIX OR CYGWIN) ++IF (UNIX OR CYGWIN OR MINGW) + CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc + @ONLY) +-- +2.5.0 + diff --git a/mingw-w64-rapidjson/0003-Exclude-CMakeLists.txt-from-install-targets.patch b/mingw-w64-rapidjson/0003-Exclude-CMakeLists.txt-from-install-targets.patch new file mode 100644 index 0000000000..bb66ed1802 --- /dev/null +++ b/mingw-w64-rapidjson/0003-Exclude-CMakeLists.txt-from-install-targets.patch @@ -0,0 +1,24 @@ +From 0c3b35390aa8c9203e48fb938fea4ba59a43f7ea Mon Sep 17 00:00:00 2001 +From: Benedikt Bitterli +Date: Sun, 22 Nov 2015 12:25:51 +0100 +Subject: [PATCH 3/4] Exclude CMakeLists.txt from install targets + +--- + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b333c86..17e347c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -92,6 +92,7 @@ install(DIRECTORY example/ + # Following patterns are for excluding the intermediate/object files + # from an install of in-source CMake build. + PATTERN "CMakeFiles" EXCLUDE ++ PATTERN "CMakeLists.txt" EXCLUDE + PATTERN "Makefile" EXCLUDE + PATTERN "cmake_install.cmake" EXCLUDE) + +-- +2.5.0 + diff --git a/mingw-w64-rapidjson/0004-CMake-Install-compiled-example-executables.patch b/mingw-w64-rapidjson/0004-CMake-Install-compiled-example-executables.patch new file mode 100644 index 0000000000..20ef3a0475 --- /dev/null +++ b/mingw-w64-rapidjson/0004-CMake-Install-compiled-example-executables.patch @@ -0,0 +1,26 @@ +From e4aa0e45776290a8464d2e45488b6fbebd7fcaf4 Mon Sep 17 00:00:00 2001 +From: Benedikt Bitterli +Date: Sun, 22 Nov 2015 12:26:15 +0100 +Subject: [PATCH 4/4] CMake: Install compiled example executables + +--- + example/CMakeLists.txt | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt +index 8063d89..eb3e318 100644 +--- a/example/CMakeLists.txt ++++ b/example/CMakeLists.txt +@@ -27,6 +27,9 @@ endif() + + foreach (example ${EXAMPLES}) + add_executable(${example} ${example}/${example}.cpp) ++ install(TARGETS ${example} ++ COMPONENT examples ++ DESTINATION "${DOC_INSTALL_DIR}/examples/${example}") + endforeach() + + add_custom_target(examples ALL DEPENDS ${EXAMPLES}) +-- +2.5.0 + diff --git a/mingw-w64-rapidjson/PKGBUILD b/mingw-w64-rapidjson/PKGBUILD new file mode 100644 index 0000000000..24f3cb67c2 --- /dev/null +++ b/mingw-w64-rapidjson/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: Benedikt Bitterli + +_realname=rapidjson +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.0.2 +pkgrel=1 +pkgdesc='A fast JSON parser/generator for C++ with both SAX/DOM style API (mingw-w64)' +arch=('any') +url='https://github.com/miloyip/rapidjson' +license=('MIT') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-doxygen") +source=("http://github.com/miloyip/rapidjson/archive/v${pkgver}.tar.gz" + '0001-Use-relative-paths-for-doxygen-outputs.patch' + '0002-Add-CMake-check-for-MinGW.patch' + '0003-Exclude-CMakeLists.txt-from-install-targets.patch' + '0004-CMake-Install-compiled-example-executables.patch') +md5sums=('97cc60d01282a968474c97f60714828c' + '4f6c83130d517302b74383730341d9ae' + 'ae201b7e81b57c568917db335f7f46d2' + 'd9853e85b04cf025efe39c9ac1b4e60b' + '3c6c5a1a6d3b5f896efe02ab2fda54dc') + +prepare() { + cd "${_realname}-${pkgver}" + patch -p1 -i "${srcdir}/0001-Use-relative-paths-for-doxygen-outputs.patch" + patch -p1 -i "${srcdir}/0002-Add-CMake-check-for-MinGW.patch" + patch -p1 -i "${srcdir}/0003-Exclude-CMakeLists.txt-from-install-targets.patch" + patch -p1 -i "${srcdir}/0004-CMake-Install-compiled-example-executables.patch" +} + +build() { + [[ -d "build-${CARCH}" ]] && rm -rf "build-${CARCH}" + mkdir "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}" + + MSYS2_ARG_CONV_EXCL='-DCMAKE_INSTALL_PREFIX=' \ + ${MINGW_PREFIX}/bin/cmake \ + -G'MSYS Makefiles' \ + -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ + "../${_realname}-${pkgver}" + + make +} + +package() { + cd "${srcdir}/build-${CARCH}" + make install DESTDIR="${pkgdir}" +} From 7d1fd9c7edfe7132fb10f29798e45aad656c709b Mon Sep 17 00:00:00 2001 From: Benedikt Bitterli Date: Sun, 22 Nov 2015 09:46:52 +0100 Subject: [PATCH 1898/2060] Add package for tinyformat --- mingw-w64-tinyformat/PKGBUILD | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 mingw-w64-tinyformat/PKGBUILD diff --git a/mingw-w64-tinyformat/PKGBUILD b/mingw-w64-tinyformat/PKGBUILD new file mode 100644 index 0000000000..f71d96c180 --- /dev/null +++ b/mingw-w64-tinyformat/PKGBUILD @@ -0,0 +1,18 @@ +# Maintainer: Benedikt Bitterli + +_realname=tinyformat +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.0.1 +pkgrel=1 +pkgdesc="A minimal type safe printf() replacement (mingw-w64)" +arch=('any') +license=('boost') +url=('https://github.com/c42f/tinyformat') +source=("http://github.com/c42f/tinyformat/archive/Release-${pkgver}.tar.gz") +md5sums=('b1c1e6206e4152ae021813ac40a0e015') + +package() { + cd "${srcdir}/${_realname}-Release-${pkgver}" + install -Dm644 tinyformat.h "${pkgdir}${MINGW_PREFIX}/include/tinyformat.h" +} From 1ea206cbd6fd7aa18c1cf22a9c79174b0e114514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Sun, 22 Nov 2015 19:44:55 +0100 Subject: [PATCH 1899/2060] Do not add package enum34 for Python 3. --- mingw-w64-python-enum34/PKGBUILD | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/mingw-w64-python-enum34/PKGBUILD b/mingw-w64-python-enum34/PKGBUILD index 4466324541..6fd7913127 100644 --- a/mingw-w64-python-enum34/PKGBUILD +++ b/mingw-w64-python-enum34/PKGBUILD @@ -1,34 +1,21 @@ -# Contributor: Frederic Wang +# Maintainer: Frederic Wang _realname=enum34 pkgbase=mingw-w64-python-${_realname} -pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}") pkgver=1.0.4 pkgrel=1 pkgdesc='Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4 (mingw-w64)' arch=('any') url='https://pypi.python.org/pypi/enum34' license=('BSD') -makedepends=("${MINGW_PACKAGE_PREFIX}-python3" - "${MINGW_PACKAGE_PREFIX}-python2") +makedepends=("${MINGW_PACKAGE_PREFIX}-python2") source=("https://pypi.python.org/packages/source/e/${_realname}/${_realname}-${pkgver}.tar.gz") sha256sums=('d3c19f26a6a34629c18c775f59dfc5dd595764c722b57a2da56ebfb69b94e447') prepare() { cd "${srcdir}" cp -r ${_realname}-${pkgver} python2-build - cp -r ${_realname}-${pkgver} python3-build -} - -package_python3-enum34() { - depends=("${MINGW_PACKAGE_PREFIX}-python3") - - cd ${srcdir}/python3-build - MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \ - --root="${pkgdir}" --optimize=1 - - install -Dm644 enum/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE" } package_python2-enum34() { @@ -46,14 +33,6 @@ package_mingw-w64-i686-python2-enum34() { package_python2-enum34 } -package_mingw-w64-i686-python3-enum34() { - package_python3-enum34 -} - package_mingw-w64-x86_64-python2-enum34() { package_python2-enum34 } - -package_mingw-w64-x86_64-python3-enum34() { - package_python3-enum34 -} From e59353f2da47ae2572a33887c2cb173c67d9140e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Sun, 22 Nov 2015 19:52:27 +0100 Subject: [PATCH 1900/2060] Do not add Python 3 package for ipaddress ; fix dependencies of pyasn1-modules --- mingw-w64-python-characteristic/PKGBUILD | 2 +- mingw-w64-python-idna/PKGBUILD | 2 +- mingw-w64-python-ipaddress/PKGBUILD | 23 +++-------------------- mingw-w64-python-pyasn1-modules/PKGBUILD | 4 ++-- mingw-w64-python-pyasn1/PKGBUILD | 2 +- 5 files changed, 8 insertions(+), 25 deletions(-) diff --git a/mingw-w64-python-characteristic/PKGBUILD b/mingw-w64-python-characteristic/PKGBUILD index 99cdee207d..bb2acae260 100644 --- a/mingw-w64-python-characteristic/PKGBUILD +++ b/mingw-w64-python-characteristic/PKGBUILD @@ -1,4 +1,4 @@ -# Contributor: Frederic Wang +# Maintainer: Frederic Wang _realname=characteristic pkgbase=mingw-w64-python-${_realname} diff --git a/mingw-w64-python-idna/PKGBUILD b/mingw-w64-python-idna/PKGBUILD index 080fe4c16e..7bb4cad2bd 100644 --- a/mingw-w64-python-idna/PKGBUILD +++ b/mingw-w64-python-idna/PKGBUILD @@ -1,4 +1,4 @@ -# Contributor: Frederic Wang +# Maintainer: Frederic Wang _realname=idna pkgbase=mingw-w64-python-${_realname} diff --git a/mingw-w64-python-ipaddress/PKGBUILD b/mingw-w64-python-ipaddress/PKGBUILD index 5eed5986d5..0151085242 100644 --- a/mingw-w64-python-ipaddress/PKGBUILD +++ b/mingw-w64-python-ipaddress/PKGBUILD @@ -1,30 +1,21 @@ -# Contributor: Frederic Wang +# Maintainer: Frederic Wang _realname=ipaddress pkgbase=mingw-w64-python-${_realname} -pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") +pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}") pkgver=1.0.15 pkgrel=1 pkgdesc='Port of the 3.3+ ipaddress module to 2.6, 2.7, 3.2 (mingw-w64)' url='https://github.com/phihag/ipaddress' license=('Python Software Foundation License') arch=('any') -makedepends=("${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-python3") +makedepends=("${MINGW_PACKAGE_PREFIX}-python2") source=("https://pypi.python.org/packages/source/i/${_realname}/${_realname}-${pkgver}.tar.gz") md5sums=('12915e923b738107e47827478d553ba1') prepare() { cd ${srcdir} cp -r ${_realname}-${pkgver} build-python2 - cp -r ${_realname}-${pkgver} build-python3 -} - -package_python3-ipaddress() { - cd ${srcdir}/build-python3 - ${MINGW_PREFIX}/bin/python3 setup.py build - MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" } package_python2-ipaddress() { @@ -38,14 +29,6 @@ package_mingw-w64-i686-python2-ipaddress() { package_python2-ipaddress } -package_mingw-w64-i686-python3-ipaddress() { - package_python3-ipaddress -} - package_mingw-w64-x86_64-python2-ipaddress() { package_python2-ipaddress } - -package_mingw-w64-x86_64-python3-ipaddress() { - package_python3-ipaddress -} diff --git a/mingw-w64-python-pyasn1-modules/PKGBUILD b/mingw-w64-python-pyasn1-modules/PKGBUILD index da9e24df94..24336b4cfe 100644 --- a/mingw-w64-python-pyasn1-modules/PKGBUILD +++ b/mingw-w64-python-pyasn1-modules/PKGBUILD @@ -1,4 +1,4 @@ -# Contributor: Frederic Wang +# Maintainer: Frederic Wang _realname=pyasn1-modules pkgbase=mingw-w64-python-${_realname} @@ -12,7 +12,7 @@ arch=('any') makedepends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python2-pyasn1" - "${MINGW_PACKAGE_PREFIX}-python2-pyasn1") + "${MINGW_PACKAGE_PREFIX}-python3-pyasn1") source=("https://pypi.python.org/packages/source/p/${_realname}/${_realname}-${pkgver}.tar.gz") md5sums=('178129bc7fbf07215c25230c5f053f81') diff --git a/mingw-w64-python-pyasn1/PKGBUILD b/mingw-w64-python-pyasn1/PKGBUILD index 813cb6a792..18f9407529 100644 --- a/mingw-w64-python-pyasn1/PKGBUILD +++ b/mingw-w64-python-pyasn1/PKGBUILD @@ -1,4 +1,4 @@ -# Contributor: Frederic Wang +# Maintainer: Frederic Wang _realname=pyasn1 pkgbase=mingw-w64-python-${_realname} From 61ce83ec89bca5561f118f744686e3af29ed7672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Sun, 22 Nov 2015 20:24:24 +0100 Subject: [PATCH 1901/2060] Rename mingw-w64-python-enum34 to mingw-w64-python2-enum34 --- {mingw-w64-python-enum34 => mingw-w64-python2-enum34}/PKGBUILD | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {mingw-w64-python-enum34 => mingw-w64-python2-enum34}/PKGBUILD (100%) diff --git a/mingw-w64-python-enum34/PKGBUILD b/mingw-w64-python2-enum34/PKGBUILD similarity index 100% rename from mingw-w64-python-enum34/PKGBUILD rename to mingw-w64-python2-enum34/PKGBUILD From 4494242c24cd4138027c73e7293b645d8785d828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Sun, 22 Nov 2015 20:26:14 +0100 Subject: [PATCH 1902/2060] Rename mingw-w64-python-ipaddress to mingw-w64-python2-ipaddress --- .../PKGBUILD | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {mingw-w64-python-ipaddress => mingw-w64-python2-ipaddress}/PKGBUILD (100%) diff --git a/mingw-w64-python-ipaddress/PKGBUILD b/mingw-w64-python2-ipaddress/PKGBUILD similarity index 100% rename from mingw-w64-python-ipaddress/PKGBUILD rename to mingw-w64-python2-ipaddress/PKGBUILD From 9c2c6d8b343a5c54daa280c01f7165164a621189 Mon Sep 17 00:00:00 2001 From: "U-ole-PC\\ole" Date: Sun, 22 Nov 2015 22:00:35 +0100 Subject: [PATCH 1903/2060] Removed -DLLVM_ENABLE_THREADS=0 as it is causing segmentation fault when performing multithreaded libclang parsing, and fixed a sha256sum. --- mingw-w64-clang/PKGBUILD | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 96d1eaf77b..20d44db4c0 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -14,7 +14,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" ) pkgver=3.7.0 -pkgrel=7 +pkgrel=8 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -79,7 +79,7 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' 'f7bc109b07b5256a068dbe55097c24b46307aea442bec884d8ba455dc3ad18fd' - 'e0f4127df5857af667a9e40e2a7a13877352b89c99f3213b491215bf7bd03565' + '59e7afa5e74d186ad596c9a7625d6022fde0679faea9d1fd516fe0a622dbc01a' '47fbe90718742d1a3c0aee919b159241e616738447de3505a48a9f5886e5db96' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' '96a6fcd81b8d5134b4273a2e413cd268430022533f1bfb44ed73503ee0ae7e87' @@ -191,7 +191,6 @@ build() { -DCMAKE_BUILD_TYPE=Release \ -DLLVM_TARGETS_TO_BUILD="ARM;CppBackend;X86" \ -DLLVM_ENABLE_ASSERTIONS=OFF \ - -DLLVM_ENABLE_THREADS=0 \ -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \ -DLLVM_ENABLE_FFI=ON \ -DLLVM_ENABLE_SPHINX=ON \ From 83172025ff2656f65a9a64f4223257726af2d4e5 Mon Sep 17 00:00:00 2001 From: David Grayson Date: Sun, 22 Nov 2015 13:34:23 -0800 Subject: [PATCH 1904/2060] Change mingw-w64-usbview to mingw-w64-usbview-git. It's better to compile code from Microsoft's GitHub account than some hidden ZIP file that they removed from their site. --- mingw-w64-usbview-git/.gitignore | 1 + .../01-uvcview-includes.patch | 15 ++-- .../03-resource-fix.patch | 0 mingw-w64-usbview-git/04-redefinition.patch | 21 +++++ .../05-connection-statuses.patch | 11 +++ mingw-w64-usbview-git/PKGBUILD | 88 +++++++++++++++++++ .../my_xmlhelper.c | 1 - mingw-w64-usbview/02-sal.patch | 10 --- mingw-w64-usbview/PKGBUILD | 83 ----------------- 9 files changed, 130 insertions(+), 100 deletions(-) create mode 100644 mingw-w64-usbview-git/.gitignore rename mingw-w64-usbview/01-strsafe-after-tchar.patch => mingw-w64-usbview-git/01-uvcview-includes.patch (60%) rename {mingw-w64-usbview => mingw-w64-usbview-git}/03-resource-fix.patch (100%) create mode 100644 mingw-w64-usbview-git/04-redefinition.patch create mode 100644 mingw-w64-usbview-git/05-connection-statuses.patch create mode 100644 mingw-w64-usbview-git/PKGBUILD rename {mingw-w64-usbview => mingw-w64-usbview-git}/my_xmlhelper.c (98%) delete mode 100644 mingw-w64-usbview/02-sal.patch delete mode 100644 mingw-w64-usbview/PKGBUILD diff --git a/mingw-w64-usbview-git/.gitignore b/mingw-w64-usbview-git/.gitignore new file mode 100644 index 0000000000..cdebe405b4 --- /dev/null +++ b/mingw-w64-usbview-git/.gitignore @@ -0,0 +1 @@ +/wds diff --git a/mingw-w64-usbview/01-strsafe-after-tchar.patch b/mingw-w64-usbview-git/01-uvcview-includes.patch similarity index 60% rename from mingw-w64-usbview/01-strsafe-after-tchar.patch rename to mingw-w64-usbview-git/01-uvcview-includes.patch index 50bd7649e0..d2db0e7281 100644 --- a/mingw-w64-usbview/01-strsafe-after-tchar.patch +++ b/mingw-w64-usbview-git/01-uvcview-includes.patch @@ -1,7 +1,6 @@ -diff --binary -u -r C++/uvcview.h C++fix/uvcview.h ---- C++/uvcview.h 2014-04-04 18:10:36.000000000 -0700 -+++ C++fix/uvcview.h 2015-04-22 20:42:54.355211400 -0700 -@@ -34,7 +34,6 @@ +--- a/uvcview.h ++++ b/uvcview.h +@@ -34,10 +34,10 @@ Revision History: #include #include #include @@ -9,12 +8,16 @@ diff --binary -u -r C++/uvcview.h C++fix/uvcview.h #include #include #include -@@ -50,6 +49,7 @@ ++#include + #include + #include + #include +@@ -50,6 +50,8 @@ Revision History: #include #include #include +#include ++#include // This is mostly a private USB Audio descriptor header #include "usbdesc.h" - diff --git a/mingw-w64-usbview/03-resource-fix.patch b/mingw-w64-usbview-git/03-resource-fix.patch similarity index 100% rename from mingw-w64-usbview/03-resource-fix.patch rename to mingw-w64-usbview-git/03-resource-fix.patch diff --git a/mingw-w64-usbview-git/04-redefinition.patch b/mingw-w64-usbview-git/04-redefinition.patch new file mode 100644 index 0000000000..35bfccbdaa --- /dev/null +++ b/mingw-w64-usbview-git/04-redefinition.patch @@ -0,0 +1,21 @@ +--- a/usbdesc.h ++++ b/usbdesc.h +@@ -81,7 +81,6 @@ Revision History: + #define USB_OTHER_SPEED_CONFIGURATION_DESCRIPTOR_TYPE 0x07 + #define USB_INTERFACE_POWER_DESCRIPTOR_TYPE 0x08 + #define USB_OTG_DESCRIPTOR_TYPE 0x09 +-#define USB_DEBUG_DESCRIPTOR_TYPE 0x0A + #define USB_IAD_DESCRIPTOR_TYPE 0x0B + + // +--- a/uvcdesc.h ++++ b/uvcdesc.h +@@ -14,8 +14,6 @@ + #define ___UVCDESC_H___ + + +-// USB Video Device Class Code +-#define USB_DEVICE_CLASS_VIDEO 0x0E + + // Video sub-classes + #define SUBCLASS_UNDEFINED 0x00 diff --git a/mingw-w64-usbview-git/05-connection-statuses.patch b/mingw-w64-usbview-git/05-connection-statuses.patch new file mode 100644 index 0000000000..d64a030217 --- /dev/null +++ b/mingw-w64-usbview-git/05-connection-statuses.patch @@ -0,0 +1,11 @@ +--- a/uvcview.h ++++ b/uvcview.h +@@ -382,7 +382,7 @@ + // ENUM.C + // + +-PCHAR ConnectionStatuses[]; ++extern PCHAR ConnectionStatuses[]; + + // + // DISPVID.C diff --git a/mingw-w64-usbview-git/PKGBUILD b/mingw-w64-usbview-git/PKGBUILD new file mode 100644 index 0000000000..e0f4524c99 --- /dev/null +++ b/mingw-w64-usbview-git/PKGBUILD @@ -0,0 +1,88 @@ +# Maintainer: David Grayson + +_realname=usbview +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +provides="${MINGW_PACKAGE_PREFIX}-${_realname}" +conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=39.5b815f8 +pkgrel=1 +pkgdesc='GUI for browsing all USB controllers and connected USB devices on your computer (mingw-w64)' +arch=('any') +url='' +license=('custom') +makedepends=( + "${MINGW_PACKAGE_PREFIX}-gcc" + 'patch' +) +depends=() +options=('strip') +source=( + "wds::git+https://github.com/Microsoft/Windows-driver-samples" + 'my_xmlhelper.c' + '01-uvcview-includes.patch' + '03-resource-fix.patch' + '04-redefinition.patch' + '05-connection-statuses.patch' +) + +sha256sums=('SKIP' + 'c753691eea14e4cd267cc9a8e1afbf97648e9fda57cf68011384e4a5b1421c2e' + '36173cc353ca4901c23f971980a1ff59c007b952dd602d4faa5a34c7d7fc3518' + '2be3167e95f8d5d8abf91e43a49fac4593b8264df5c20478f476bdbe1bae89a3' + '017bcb16508f6496e227dce96bd547ed1be20f2712742a05bafd4460924d3aad' + 'edcbf4392677934b21234e57a0094ce46f34053b51509719b186a18d7bdddc8e') + +pkgver() { + cd "${srcdir}/wds" + printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}/wds/usb/usbview" + + # strsafe.h must be after tchar.h in mingw-w64. + # sal.h and usbspec.h are needed. + patch -p1 -i "${srcdir}/01-uvcview-includes.patch" + + # We exclude the XML stuff because it requires Visual C++ (.NET). + rm usbschema.hpp xmlhelper.cpp + cp "${srcdir}/my_xmlhelper.c" . + + # Fix some syntax errors that windres complains about + patch -p1 -i "${srcdir}/03-resource-fix.patch" + + # Fix warnings about macro redefinitions. + patch -p1 -i "${srcdir}/04-redefinition.patch" + + # Fix bad definition of array without a length. + patch -p1 -i "${srcdir}/05-connection-statuses.patch" +} + +build() { + cd "${srcdir}" + mkdir -p "build-${MINGW_CHOST}/include" + cd "build-${MINGW_CHOST}" + + # Make sure mingw-w64's usb.h takes precedence over libusb-compat's. + cp ${MINGW_PREFIX}/${MINGW_CHOST}/include/usb.h include + + windres ../wds/usb/usbview/uvcview.rc rc.so + + gcc -mwindows --std=c99 ${CFLAGS} ${LDFLAGS} \ + -Iinclude \ + -DNTDDI_VERSION=0x06020000 -D_WIN32_WINNT=0x0602 \ + -DSTRSAFE_NO_DEPRECATE \ + ../wds/usb/usbview/*.c rc.so \ + -lcomctl32 -lcomdlg32 -lsetupapi -lshell32 -lshlwapi -lole32 -lgdi32 \ + -o usbview.exe +} + +package() { + cd "${srcdir}/wds" + install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + cd "${srcdir}/build-${MINGW_CHOST}" + mkdir "${pkgdir}${MINGW_PREFIX}/bin" + install -Dm755 usbview.exe "${pkgdir}${MINGW_PREFIX}/bin" +} diff --git a/mingw-w64-usbview/my_xmlhelper.c b/mingw-w64-usbview-git/my_xmlhelper.c similarity index 98% rename from mingw-w64-usbview/my_xmlhelper.c rename to mingw-w64-usbview-git/my_xmlhelper.c index 191dc629b6..0cdf29140b 100644 --- a/mingw-w64-usbview/my_xmlhelper.c +++ b/mingw-w64-usbview-git/my_xmlhelper.c @@ -44,5 +44,4 @@ EXTERN_C HRESULT XmlAddUsbDevice(PSTR devName, PUSBDEVICEINFO deviceInfo) EXTERN_C VOID XmlNotifyEndOfNodeList(PVOID pContext) { - return 0; } diff --git a/mingw-w64-usbview/02-sal.patch b/mingw-w64-usbview/02-sal.patch deleted file mode 100644 index b4118fd7e0..0000000000 --- a/mingw-w64-usbview/02-sal.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- orig/uvcview.h 2015-08-28 11:07:16.380217500 -0400 -+++ new/uvcview.h 2015-08-28 11:07:28.123146100 -0400 -@@ -50,6 +50,7 @@ - #include - #include - #include -+#include - - // This is mostly a private USB Audio descriptor header - #include "usbdesc.h" diff --git a/mingw-w64-usbview/PKGBUILD b/mingw-w64-usbview/PKGBUILD deleted file mode 100644 index d2dbb2a6b3..0000000000 --- a/mingw-w64-usbview/PKGBUILD +++ /dev/null @@ -1,83 +0,0 @@ -# Maintainer: David Grayson - -# Note: We currently build an older version of usbview from a ZIP file -# that was on a page that Microsoft has since unpublished. We are not -# yet able to build the version of usbview from github because -# mingw-w64 is missing some new structs/typedefs. -# -# https://github.com/Microsoft/Windows-driver-samples/tree/master/usb/usbview - -_realname=usbview -pkgbase=mingw-w64-${_realname} -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.1.20140402 -pkgrel=1 -pkgdesc='GUI for browsing all USB controllers and connected USB devices on your computer (mingw-w64)' -arch=('any') -url='https://web.archive.org/web/20140824072648/http://code.msdn.microsoft.com/windowshardware/USBView-sample-application-e3241039' -license=('custom') -makedepends=( - "${MINGW_PACKAGE_PREFIX}-gcc" - 'patch' -) -depends=() -options=('strip') -source=( - "https://code.msdn.microsoft.com/windowshardware/USBView-sample-application-e3241039/file/51333/38/USBView%20sample%20application.zip" - 'my_xmlhelper.c' - '01-strsafe-after-tchar.patch' - '02-sal.patch' - '03-resource-fix.patch' -) - -sha256sums=('fd07e8b20f9cff7efd8c01bf2b9cc9ac39ba85c76e56287b80d8abf38ec92287' - 'b3d551683be0398bca58e67bf7c91b22d88283e10292c9cda5ab367921511ebf' - 'dd0dade894b612cc0d30b0cbe1c47647de3697c9feeff65b866c32b01430154e' - 'b6959253bde6fd85af82cdd74c0993d0e9c82871f95cb507811b1fd8528cd301' - '2be3167e95f8d5d8abf91e43a49fac4593b8264df5c20478f476bdbe1bae89a3') - -prepare() { - cd "${srcdir}/C++" - - # dos2unix -q *.c *.h *.rc - - # strsafe.h must be after tchar.h in mingw-w64 - patch -p1 -i "../01-strsafe-after-tchar.patch" - - # Include sal.h in some places it is needed. - patch -p1 -i "../02-sal.patch" - - # We exclude the XML stuff because it requires Visual C++ (.NET). - rm usbschema.hpp xmlhelper.cpp - cp "../my_xmlhelper.c" . - - # Fix some syntax errors that windres complains about - patch -p1 -i "../03-resource-fix.patch" -} - -build() { - cd "${srcdir}" - mkdir -p "build-${MINGW_CHOST}/include" - cd "build-${MINGW_CHOST}" - - # Make sure mingw-w64's usb.h takes precedence over libusb-compat's. - cp ${MINGW_PREFIX}/${MINGW_CHOST}/include/usb.h include - - windres ../C++/uvcview.rc rc.so - - gcc -mwindows --std=c99 ${CFLAGS} ${LDFLAGS} \ - -Iinclude \ - -DNTDDI_VERSION=0x06020000 -D_WIN32_WINNT=0x0602 \ - -DSTRSAFE_NO_DEPRECATE \ - ../C++/*.c rc.so \ - -lcomctl32 -lcomdlg32 -lsetupapi -lshell32 -lshlwapi -lole32 -lgdi32 \ - -o usbview.exe -} - -package() { - cd "${srcdir}" - install -Dm644 license.rtf "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/license.rtf" - cd "build-${MINGW_CHOST}" - mkdir "${pkgdir}${MINGW_PREFIX}/bin" - install -Dm755 usbview.exe "${pkgdir}${MINGW_PREFIX}/bin" -} From a470c6b26fb7de4148e1834aebe61d9a0f784b80 Mon Sep 17 00:00:00 2001 From: David Grayson Date: Sun, 22 Nov 2015 14:20:35 -0800 Subject: [PATCH 1905/2060] c-ares: Added validpgpkeys. Fixes #888. --- mingw-w64-c-ares/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-c-ares/PKGBUILD b/mingw-w64-c-ares/PKGBUILD index 9654becca5..96adfd77fa 100644 --- a/mingw-w64-c-ares/PKGBUILD +++ b/mingw-w64-c-ares/PKGBUILD @@ -12,6 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=(strip staticlibs) source=("http://c-ares.haxx.se/download/${_realname}-${pkgver}.tar.gz"{,.asc} 0001-Use-RPM-compiler-options.patch) +validpgpkeys=('914C533DF9B2ADA2204F586D78E11C6B279D5C91') sha1sums=('e44e6575d5af99cb3a38461486e1ee8b49810eb5' 'SKIP' '7e1c721c5f4efd49db998209eaa9b80bea1a9819') From 61028d4197c68792120a310c9339dc89560b4555 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 23 Nov 2015 11:38:04 +0300 Subject: [PATCH 1906/2060] babl: Update to 0.1.14 --- mingw-w64-babl/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-babl/PKGBUILD b/mingw-w64-babl/PKGBUILD index 24458a0303..6b1324a925 100644 --- a/mingw-w64-babl/PKGBUILD +++ b/mingw-w64-babl/PKGBUILD @@ -1,11 +1,12 @@ # Maintainer: Alexey Pavlov _realname=babl +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}"-git) -pkgver=0.1.12 +pkgver=0.1.14 pkgrel=1 pkgdesc="Dynamic Pixel Format Translation Library (mingw-w64)" arch=('any') @@ -20,7 +21,7 @@ options=('strip' 'staticlibs') source=(#"${_realname}"::"git://git.gnome.org/babl" #https://git.gnome.org/browse/babl/snapshot/BABL_${pkgver//./_}.tar.xz http://ftp.gtk.org/pub/babl/${pkgver%.*}/${_realname}-${pkgver}.tar.bz2) -sha1sums=('b9a811d9d05717d66bc107a18447fbd74cff7eea') +sha1sums=('1e1e27a9a07da95e905d07816701b2efaf5611af') prepare() { cd ${srcdir}/${_realname}-${pkgver} From cfe64677607f11f47ba68c61cccee324cbcef266 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 23 Nov 2015 11:38:40 +0300 Subject: [PATCH 1907/2060] libpng: Update to 1.6.19 --- mingw-w64-libpng/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libpng/PKGBUILD b/mingw-w64-libpng/PKGBUILD index 83c6088a1b..459e0e3b2f 100644 --- a/mingw-w64-libpng/PKGBUILD +++ b/mingw-w64-libpng/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libpng +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.18 +pkgver=1.6.19 pkgrel=1 arch=('any') pkgdesc="A collection of routines used to create PNG format graphics (mingw-w64)" @@ -15,8 +16,8 @@ options=('strip' '!libtool' 'staticlibs') source=("http://downloads.sourceforge.net/sourceforge/libpng/${_realname}-${pkgver}.tar.xz" "http://downloads.sourceforge.net/project/libpng-apng/libpng16/${pkgver}/${_realname}-${pkgver}-apng.patch.gz") -md5sums=('6a57c8e0f5469b9c9949a4b43d57b3a1' - 'a9c85fe3cf0347ea94356f1e70d07973') +md5sums=('1e6a458429e850fc93c1f3b6dc00a48f' + 'b215830867151242fb4ef9d246f050c4') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 4e306fecf24eaf3210869728a95b724fdd681991 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 23 Nov 2015 11:39:07 +0300 Subject: [PATCH 1908/2060] png2ico: Fix PKGBUILD. --- mingw-w64-png2ico/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-png2ico/PKGBUILD b/mingw-w64-png2ico/PKGBUILD index 86b1bf119d..1810e33fb1 100644 --- a/mingw-w64-png2ico/PKGBUILD +++ b/mingw-w64-png2ico/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Hannah von Reth _realname=png2ico +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver="2002.12.08" pkgrel=1 -pkgdesc="Converts PNG files to Windows icon resource files. (mingw-w64)" +pkgdesc="Converts PNG files to Windows icon resource files (mingw-w64)" arch=('any') license=("GPL2") url="http://www.winterdrache.de/freeware/png2ico/" @@ -27,6 +28,6 @@ build() { } package() { - mkdir ${pkgdir}/bin - cp ${srcdir}/${_realname}/png2ico.exe ${pkgdir}/bin/png2ico.exe + mkdir -p ${pkgdir}${MINGW_PREFIX}/bin + cp ${srcdir}/${_realname}/png2ico.exe ${pkgdir}${MINGW_PREFIX}/bin/png2ico.exe } From ffaa3a93c0e8e2ebaf464f264f1314fc460b7e81 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 23 Nov 2015 11:39:30 +0300 Subject: [PATCH 1909/2060] tinyformat: Fix PKGBUILD --- mingw-w64-tinyformat/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-tinyformat/PKGBUILD b/mingw-w64-tinyformat/PKGBUILD index f71d96c180..26c3351503 100644 --- a/mingw-w64-tinyformat/PKGBUILD +++ b/mingw-w64-tinyformat/PKGBUILD @@ -8,8 +8,8 @@ pkgrel=1 pkgdesc="A minimal type safe printf() replacement (mingw-w64)" arch=('any') license=('boost') -url=('https://github.com/c42f/tinyformat') -source=("http://github.com/c42f/tinyformat/archive/Release-${pkgver}.tar.gz") +url="https://github.com/c42f/tinyformat" +source=(${_realname}-${pkgver}.tar.gz::"http://github.com/c42f/tinyformat/archive/Release-${pkgver}.tar.gz") md5sums=('b1c1e6206e4152ae021813ac40a0e015') package() { From 24d852328546f1d2c45761ee76562ce4e2ee9dd3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 23 Nov 2015 11:40:06 +0300 Subject: [PATCH 1910/2060] matplotlib: Update to 1.5.0 --- mingw-w64-python-matplotlib/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-python-matplotlib/PKGBUILD b/mingw-w64-python-matplotlib/PKGBUILD index 6b0f52b1f1..0c84ae926c 100644 --- a/mingw-w64-python-matplotlib/PKGBUILD +++ b/mingw-w64-python-matplotlib/PKGBUILD @@ -3,7 +3,7 @@ _realname=matplotlib pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.5.0rc2 +pkgver=1.5.0 pkgrel=1 pkgdesc="A python plotting library, making publication quality plots (mingw-w64)" arch=('any') @@ -29,7 +29,7 @@ makedepends=( source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/matplotlib/matplotlib/archive/v${pkgver}.tar.gz" setupext.py.patch setup.py.patch) -md5sums=('a2a75e5c12bb480ca927913df0995aa9' +md5sums=('35a9cad23887dc6a7bd30cf434aa3f65' 'cd1ef742fb22f91cfed3c36dd4a6f1e1' 'b5f64259a266ccc517586debb8c4e5c8') noextract=("${_realname}-${pkgver}.tar.gz") @@ -64,7 +64,7 @@ build() { MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py build - cd ${srcdir}/$_realname-py3-${pkgver} + cd ${srcdir}/${_realname}-py3-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py build } @@ -81,7 +81,7 @@ package_python3-matplotlib() { "${MINGW_PACKAGE_PREFIX}-libpng" #"${MINGW_PACKAGE_PREFIX}-qhull" ) - cd ${srcdir}/$_realname-py3-${pkgver} + cd ${srcdir}/${_realname}-py3-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python3 setup.py install -O1 --skip-build \ @@ -102,7 +102,7 @@ package_python2-matplotlib() { "${MINGW_PACKAGE_PREFIX}-libpng" #"${MINGW_PACKAGE_PREFIX}-qhull" ) - cd ${srcdir}/$_realname-py2-${pkgver} + cd ${srcdir}/${_realname}-py2-${pkgver} MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install -O1 --skip-build \ From 720ca0d69c0cf758163396c9201bc179888682d3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 23 Nov 2015 11:40:44 +0300 Subject: [PATCH 1911/2060] python-mock: Fix PKGBUILD. --- mingw-w64-python-mock/PKGBUILD | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mingw-w64-python-mock/PKGBUILD b/mingw-w64-python-mock/PKGBUILD index c4e577e3ef..c07e99f647 100644 --- a/mingw-w64-python-mock/PKGBUILD +++ b/mingw-w64-python-mock/PKGBUILD @@ -13,14 +13,18 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3-six" "${MINGW_PACKAGE_PREFIX}-python2-six" - "${MINGW_PACKAGE_PREFIX}-python3-funcsigs" + "${MINGW_PACKAGE_PREFIX}-python3-funcsigs" "${MINGW_PACKAGE_PREFIX}-python2-funcsigs" - "${MINGW_PACKAGE_PREFIX}-python3-pbr" + "${MINGW_PACKAGE_PREFIX}-python3-pbr" "${MINGW_PACKAGE_PREFIX}-python2-pbr") source=("https://pypi.python.org/packages/source/m/${_realname}/${_realname}-${pkgver}.tar.gz") md5sums=('73ee8a4afb3ff4da1b4afa287f39fdeb') +noextract=(${_realname}-${pkgver}.tar.gz) prepare() { + [[ -d ${srcdir}/${_realname}-${pkgver} ]] && rm -rf ${srcdir}/${_realname}-${pkgver} + tar -xzf ${srcdir}/${_realname}-${pkgver}.tar.gz -C ${srcdir} || true + cd "${srcdir}" cp -r ${_realname}-${pkgver} python2-build cp -r ${_realname}-${pkgver} python3-build From 55726ba02bf8a3e2393ea7ff156581f2122951ad Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 23 Nov 2015 11:42:23 +0300 Subject: [PATCH 1912/2060] armadillo: Update to 6.200.4 --- mingw-w64-armadillo/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD index 8fa51f31c3..01dc2120e3 100644 --- a/mingw-w64-armadillo/PKGBUILD +++ b/mingw-w64-armadillo/PKGBUILD @@ -3,7 +3,7 @@ _realname=armadillo pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.200.3 +pkgver=6.200.4 pkgrel=1 pkgdesc="C++ linear algebra library (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" install=${_realname}-${CARCH}.install source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz 0001-mingw-config-fix.patch) -md5sums=('21a844fa7fd7c874c940cd2febb6fdb2' +md5sums=('20c9de6ad06b4339a7fd3f67d78922e4' '5ce663ba53e15ee85fcd7a0b01006672') prepare() { From 8896cf3d879d83c96ee68d826ae48673b05ebbb2 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 23 Nov 2015 11:46:29 +0300 Subject: [PATCH 1913/2060] libmikmod: Update to 3.3.8 --- mingw-w64-libmikmod/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libmikmod/PKGBUILD b/mingw-w64-libmikmod/PKGBUILD index 5dfcd0eb7c..ccde5d63bb 100644 --- a/mingw-w64-libmikmod/PKGBUILD +++ b/mingw-w64-libmikmod/PKGBUILD @@ -3,7 +3,7 @@ _realname=libmikmod pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.3.7 +pkgver=3.3.8 pkgrel=1 pkgdesc="A portable sound library (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('strip' 'staticlibs') source=(http://downloads.sourceforge.net/mikmod/${_realname}-${pkgver}.tar.gz) -sha256sums=('4cf41040a9af99cb960580210ba900c0a519f73ab97b503c780e82428b9bd9a2') +sha256sums=('4acf6634a477d8b95f18b55a3e2e76052c149e690d202484e8b0ac7589cf37a2') build() { export lt_cv_deplibs_check_method='pass_all' From 8b1a569485f44132c679ea615dde3f9efd16f8eb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 23 Nov 2015 11:51:09 +0300 Subject: [PATCH 1914/2060] libsigc++: Update to 2.6.2 --- mingw-w64-libsigc++/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libsigc++/PKGBUILD b/mingw-w64-libsigc++/PKGBUILD index ae885291bc..391e63eaba 100644 --- a/mingw-w64-libsigc++/PKGBUILD +++ b/mingw-w64-libsigc++/PKGBUILD @@ -3,7 +3,7 @@ _realname=libsigc++ pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.6.0 +pkgver=2.6.2 pkgrel=1 pkgdesc="Libsigc++ implements a full callback system for use in widget libraries - V2 (mingw-w64)" arch=('any') @@ -13,7 +13,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/GNOME/sources/libsigc++/${pkgver%.*}/libsigc++-${pkgver}.tar.xz") -sha256sums=('67c07771bf6313022883055efb0fad7cc9875168a4c0d01879d1846747e4ce3d') +sha256sums=('fdace7134c31de792c17570f9049ca0657909b28c4c70ec4882f91a03de54437') build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" From 54fa1c62f46aad6704ae92bdabd6fda40f492a89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Mon, 23 Nov 2015 11:06:47 +0100 Subject: [PATCH 1915/2060] python2-ipaddress: Use standard build and package functions. --- mingw-w64-python2-ipaddress/PKGBUILD | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/mingw-w64-python2-ipaddress/PKGBUILD b/mingw-w64-python2-ipaddress/PKGBUILD index 0151085242..2b0e6bfae2 100644 --- a/mingw-w64-python2-ipaddress/PKGBUILD +++ b/mingw-w64-python2-ipaddress/PKGBUILD @@ -18,17 +18,13 @@ prepare() { cp -r ${_realname}-${pkgver} build-python2 } -package_python2-ipaddress() { +build() { cd ${srcdir}/build-python2 ${MINGW_PREFIX}/bin/python2 setup.py build +} + +package() { + cd ${srcdir}/build-python2 MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" } - -package_mingw-w64-i686-python2-ipaddress() { - package_python2-ipaddress -} - -package_mingw-w64-x86_64-python2-ipaddress() { - package_python2-ipaddress -} From db35a5b74ed1f7ff96f8f5e193299a6e36962207 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 23 Nov 2015 13:46:24 +0300 Subject: [PATCH 1916/2060] mingw-w64: Update to 5.0.0.4592.90b8472 --- mingw-w64-crt-git/PKGBUILD | 2 +- mingw-w64-headers-git/PKGBUILD | 2 +- mingw-w64-tools-git/PKGBUILD | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 9cd6e6169d..1b794bb5c4 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=crt pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4581.c99ba04 +pkgver=5.0.0.4592.90b8472 pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 960ac75827..bbe4a7a988 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4581.c99ba04 +pkgver=5.0.0.4592.90b8472 pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" diff --git a/mingw-w64-tools-git/PKGBUILD b/mingw-w64-tools-git/PKGBUILD index f67ac355f4..9988bec0b6 100644 --- a/mingw-w64-tools-git/PKGBUILD +++ b/mingw-w64-tools-git/PKGBUILD @@ -7,7 +7,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.0.0.4587.9172490 +pkgver=5.0.0.4592.90b8472 pkgrel=1 pkgdesc="MinGW-w64 tools" arch=('any') From c232ee13c6be9e01b265f4a2bb6696b7d13afb13 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 24 Nov 2015 00:28:44 +0000 Subject: [PATCH 1917/2060] binutils-git: Increase _bfd_coff_mac_nscns to 65279 This is the same value llvm uses and it seems to be fine on a -O0 build of firefox. --- ...inGW-w64-Two-fixes-for-unusual-files.patch | 6 +- ...002-MinGW-w64-Fix-libiberty-makefile.patch | 6 +- ...003-MinGW-w64-Fix-libibery-configure.patch | 6 +- .../0004-MinGW-w64-Use-gnu-printf.patch | 6 +- ...ncrease-_bfd_coff_max_nscns-to-65279.patch | 83 +++++++++++++++++++ mingw-w64-binutils-git/PKGBUILD | 17 ++-- 6 files changed, 105 insertions(+), 19 deletions(-) create mode 100644 mingw-w64-binutils-git/0005-bfd-Increase-_bfd_coff_max_nscns-to-65279.patch diff --git a/mingw-w64-binutils-git/0001-MinGW-w64-Two-fixes-for-unusual-files.patch b/mingw-w64-binutils-git/0001-MinGW-w64-Two-fixes-for-unusual-files.patch index 5fd39cc702..0c3857dd67 100644 --- a/mingw-w64-binutils-git/0001-MinGW-w64-Two-fixes-for-unusual-files.patch +++ b/mingw-w64-binutils-git/0001-MinGW-w64-Two-fixes-for-unusual-files.patch @@ -1,7 +1,7 @@ -From 3c43381aaa0ff4d3c7827a95493c4ad6d648d64b Mon Sep 17 00:00:00 2001 +From 038bd9f82b5ff41d945edd0ad93a571663ef4ce2 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 31 Oct 2015 21:39:35 +0000 -Subject: [PATCH 1/4] MinGW-w64: Two fixes for 'unusual' files. +Subject: [PATCH 1/5] MinGW-w64: Two fixes for 'unusual' files. Handle isatty() files better. Pretend 'nul' is '/dev/null' which is necessary for libtool. @@ -119,5 +119,5 @@ index 59d3381..af92d5b 100644 return 1; } -- -2.6.2 +2.6.3 diff --git a/mingw-w64-binutils-git/0002-MinGW-w64-Fix-libiberty-makefile.patch b/mingw-w64-binutils-git/0002-MinGW-w64-Fix-libiberty-makefile.patch index 1f62ae1139..f098a94c25 100644 --- a/mingw-w64-binutils-git/0002-MinGW-w64-Fix-libiberty-makefile.patch +++ b/mingw-w64-binutils-git/0002-MinGW-w64-Fix-libiberty-makefile.patch @@ -1,7 +1,7 @@ -From ed9ad8527fb28ca26279bcf77f5d78cb25e5eb05 Mon Sep 17 00:00:00 2001 +From 2a073ff20e2232a54adf1ea1afd6bd78af83bd50 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 31 Oct 2015 21:39:48 +0000 -Subject: [PATCH 2/4] MinGW-w64: Fix libiberty makefile +Subject: [PATCH 2/5] MinGW-w64: Fix libiberty makefile --- libiberty/Makefile.in | 12 ++++++------ @@ -53,5 +53,5 @@ index 9b87720..eddde49 100644 # These files are installed if the library has been configured to do so. INSTALLED_HEADERS = \ -- -2.6.2 +2.6.3 diff --git a/mingw-w64-binutils-git/0003-MinGW-w64-Fix-libibery-configure.patch b/mingw-w64-binutils-git/0003-MinGW-w64-Fix-libibery-configure.patch index 20dd3f1957..667f6b5f21 100644 --- a/mingw-w64-binutils-git/0003-MinGW-w64-Fix-libibery-configure.patch +++ b/mingw-w64-binutils-git/0003-MinGW-w64-Fix-libibery-configure.patch @@ -1,7 +1,7 @@ -From 5d5185fdab3949a02ab60a585dbe9bee26e94068 Mon Sep 17 00:00:00 2001 +From 592bdfbc3eb61cf5dec3b040784ab392e06d226e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 31 Oct 2015 21:40:03 +0000 -Subject: [PATCH 3/4] MinGW-w64: Fix libibery configure +Subject: [PATCH 3/5] MinGW-w64: Fix libibery configure --- libiberty/configure | 16 +--------------- @@ -95,5 +95,5 @@ index 3380819..fc57948 100644 if test $ac_cv_func_vprintf != yes \ || test $ac_cv_func_vfprintf != yes \ -- -2.6.2 +2.6.3 diff --git a/mingw-w64-binutils-git/0004-MinGW-w64-Use-gnu-printf.patch b/mingw-w64-binutils-git/0004-MinGW-w64-Use-gnu-printf.patch index d169ad15da..4ddbec96dd 100644 --- a/mingw-w64-binutils-git/0004-MinGW-w64-Use-gnu-printf.patch +++ b/mingw-w64-binutils-git/0004-MinGW-w64-Use-gnu-printf.patch @@ -1,7 +1,7 @@ -From 55995ad09cb6cf04557d66be91c243bd92cffe0d Mon Sep 17 00:00:00 2001 +From ca890339d26efeb33f611a6a18e44907b49bd5e6 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 31 Oct 2015 21:40:15 +0000 -Subject: [PATCH 4/4] MinGW-w64: Use gnu-printf +Subject: [PATCH 4/5] MinGW-w64: Use gnu-printf --- bfd/bfd-in.h | 2 +- @@ -178,5 +178,5 @@ index 0fb23bb..6adf802 100644 # define ATTRIBUTE_NULL_PRINTF(m, n) # endif /* GNUC >= 3.3 */ -- -2.6.2 +2.6.3 diff --git a/mingw-w64-binutils-git/0005-bfd-Increase-_bfd_coff_max_nscns-to-65279.patch b/mingw-w64-binutils-git/0005-bfd-Increase-_bfd_coff_max_nscns-to-65279.patch new file mode 100644 index 0000000000..f07fa05ca6 --- /dev/null +++ b/mingw-w64-binutils-git/0005-bfd-Increase-_bfd_coff_max_nscns-to-65279.patch @@ -0,0 +1,83 @@ +From 1316395a096fd327efe88c171a08ba077f6f02df Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Mon, 23 Nov 2015 22:42:53 +0000 +Subject: [PATCH 5/5] bfd: Increase _bfd_coff_max_nscns to 65279 + +.. from 32768. This is the value that llvm uses. There's no +indication in the PECOFF specs that 32768 is the limit. +--- + bfd/coff-alpha.c | 2 +- + bfd/coff-mips.c | 2 +- + bfd/coff-rs6000.c | 2 +- + bfd/coff-sh.c | 2 +- + bfd/coffcode.h | 2 +- + 5 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c +index 0e78088..f414c32 100644 +--- a/bfd/coff-alpha.c ++++ b/bfd/coff-alpha.c +@@ -2241,7 +2241,7 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data = + alpha_ecoff_swap_filehdr_out, alpha_ecoff_swap_aouthdr_out, + alpha_ecoff_swap_scnhdr_out, + FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, +- ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 32768, ++ ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 65279, + alpha_ecoff_swap_filehdr_in, alpha_ecoff_swap_aouthdr_in, + alpha_ecoff_swap_scnhdr_in, NULL, + alpha_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook, +diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c +index 298671c..40d8298 100644 +--- a/bfd/coff-mips.c ++++ b/bfd/coff-mips.c +@@ -1254,7 +1254,7 @@ static const struct ecoff_backend_data mips_ecoff_backend_data = + mips_ecoff_swap_filehdr_out, mips_ecoff_swap_aouthdr_out, + mips_ecoff_swap_scnhdr_out, + FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, +- ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 32768, ++ ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 65279, + mips_ecoff_swap_filehdr_in, mips_ecoff_swap_aouthdr_in, + mips_ecoff_swap_scnhdr_in, NULL, + mips_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook, +diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c +index fea5f3b..9753dfe 100644 +--- a/bfd/coff-rs6000.c ++++ b/bfd/coff-rs6000.c +@@ -4071,7 +4071,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data = + 3, /* _bfd_coff_default_section_alignment_power */ + FALSE, /* _bfd_coff_force_symnames_in_strings */ + 2, /* _bfd_coff_debug_string_prefix_length */ +- 32768, /* _bfd_coff_max_nscns */ ++ 65279, /* _bfd_coff_max_nscns */ + coff_swap_filehdr_in, + coff_swap_aouthdr_in, + coff_swap_scnhdr_in, +diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c +index 23e32ec..39dde21 100644 +--- a/bfd/coff-sh.c ++++ b/bfd/coff-sh.c +@@ -3090,7 +3090,7 @@ static bfd_coff_backend_data bfd_coff_small_swap_table = + #else + 2, + #endif +- 32768, ++ 65279, + coff_swap_filehdr_in, coff_swap_aouthdr_in, coff_swap_scnhdr_in, + coff_swap_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook, + coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, +diff --git a/bfd/coffcode.h b/bfd/coffcode.h +index 2b1c3d0..c72f296 100644 +--- a/bfd/coffcode.h ++++ b/bfd/coffcode.h +@@ -5574,7 +5574,7 @@ static bfd_coff_backend_data bfd_coff_std_swap_table ATTRIBUTE_UNUSED = + #else + 2, + #endif +- 32768, ++ 65279, + coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, + coff_SWAP_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook, + coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, +-- +2.6.3 + diff --git a/mingw-w64-binutils-git/PKGBUILD b/mingw-w64-binutils-git/PKGBUILD index c08b2b49ab..8861b402ee 100644 --- a/mingw-w64-binutils-git/PKGBUILD +++ b/mingw-w64-binutils-git/PKGBUILD @@ -5,7 +5,7 @@ _realname=binutils _base_ver=2.25 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") # replaces="${MINGW_PACKAGE_PREFIX}-${_realname}=${_base_ver}" -pkgver=2.25.r82106.8a7e380 +pkgver=2.25.r82129.62c4c24 pkgrel=1 provides=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -17,18 +17,20 @@ license=('GPL') depends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib") #checkdepends=('dejagnu' 'bc') makedepends=("${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib" "git") -options=('staticlibs' '!distcc' '!ccache') # 'debug' '!strip') +options=('staticlibs' '!distcc' '!ccache' 'debug' '!strip') #install=binutils.install source=("${_realname}"::"git://sourceware.org/git/binutils-gdb.git#branch=${_realname}-${_base_ver//./_}-branch" 0001-MinGW-w64-Two-fixes-for-unusual-files.patch 0002-MinGW-w64-Fix-libiberty-makefile.patch 0003-MinGW-w64-Fix-libibery-configure.patch - 0004-MinGW-w64-Use-gnu-printf.patch) + 0004-MinGW-w64-Use-gnu-printf.patch + 0005-bfd-Increase-_bfd_coff_max_nscns-to-65279.patch) md5sums=('SKIP' - '3380cf23846fdfc9431a2bc0323dcdd1' - '52b62ba647ee0f27d70bcfa6c7bac5b9' - '6ec7b3e45af8464e14feb57172189cf9' - 'c7c90ad2d5f6511cae7a2c571a4b100c') + 'e93bc2e2d77d7a9f24c1319ca665276a' + '6bbd2527a3ffb4e3c50ec58d921fbae7' + '182164c2e7109ff3869e7d54bd522561' + '238ba310c7b30eedf19c81088c15fbd4' + '1b907766aebe66585cd14ae4f8ce0e97') pkgver() { cd "$srcdir/$_realname" @@ -41,6 +43,7 @@ prepare() { git am "${srcdir}"/0002-MinGW-w64-Fix-libiberty-makefile.patch git am "${srcdir}"/0003-MinGW-w64-Fix-libibery-configure.patch git am "${srcdir}"/0004-MinGW-w64-Use-gnu-printf.patch + git am "${srcdir}"/0005-bfd-Increase-_bfd_coff_max_nscns-to-65279.patch rm -rf gdb readline libdecnumber sim } From 0aa3d33767b97eefa3a22bbc2c3176ee63c2b85a Mon Sep 17 00:00:00 2001 From: slorquet Date: Tue, 24 Nov 2015 12:13:48 +0100 Subject: [PATCH 1918/2060] fix kicad doc mirror --- mingw-w64-kicad-git/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-kicad-git/PKGBUILD b/mingw-w64-kicad-git/PKGBUILD index d36156c0ba..bfd3b352b4 100644 --- a/mingw-w64-kicad-git/PKGBUILD +++ b/mingw-w64-kicad-git/PKGBUILD @@ -2,7 +2,7 @@ _realname=kicad pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r5971.ba32ccb +pkgver=r6328.22fb7da pkgrel=1 pkgdesc="Software for the creation of electronic schematic diagrams and printed circuit board artwork (mingw-w64)" arch=('any') @@ -24,7 +24,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-swig" "git") source=("${_realname}"::"git+https://github.com/KiCad/kicad-source-mirror.git" - "${_realname}-docs"::"git+https://github.com/blairbonnett-mirrors/kicad-doc.git" + "${_realname}-docs"::"git+https://github.com/KiCad/kicad-doc.git" "${_realname}-libs"::"git+https://github.com/KiCad/kicad-library.git" ) md5sums=('SKIP' From f0b70b649a703db72211191ffb05ae6798ef7734 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 24 Nov 2015 15:07:26 +0300 Subject: [PATCH 1919/2060] crypto++: Update to 5.6.3 --- mingw-w64-crypto++/PKGBUILD | 13 +++++++------ mingw-w64-crypto++/cryptopp-cmake.patch | 6 ++++-- mingw-w64-crypto++/missing-sources.patch | 14 +++++++------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/mingw-w64-crypto++/PKGBUILD b/mingw-w64-crypto++/PKGBUILD index c9dea4d115..979dbfcfe9 100644 --- a/mingw-w64-crypto++/PKGBUILD +++ b/mingw-w64-crypto++/PKGBUILD @@ -2,8 +2,8 @@ _realname=crypto++ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.6.2 -pkgrel=4 +pkgver=5.6.3 +pkgrel=1 pkgdesc="Crypto++ Library is a free C++ class library of cryptographic schemes (mingw-w64)" arch=('any') url="http://www.cryptopp.com/" @@ -11,16 +11,17 @@ license=('Boost Software License 1.0') options=('staticlibs' 'strip') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "unzip") -source=("http://www.cryptopp.com/cryptopp${pkgver//./}.zip" +source=("http://www.cryptopp.com/cryptopp${pkgver//./}.zip"\ + #https://github.com/weidai11/cryptopp/archive/CRYPTOPP_${pkgver//./_}.tar.gz libcrypto++.pc missing-sources.patch cryptopp-cmake.patch resolve-namespace-conflict.patch fix-test-linking.patch) -md5sums=('7ed022585698df48e65ce9218f6c6a67' +md5sums=('3c5b70e2ec98b7a24988734446242d07' 'fdf6ec125726e944269b13a6883abc1c' - 'b27bcb0cc2938f5af6a07d724ce42b62' - '88fc344f33a404dccfa9f74ca9f532eb' + '9e5030ee415e3a22bd5a353cff1556a3' + '36fe4fe5a932619170a06c1e287ce010' '947648b79dc1194217eb0ef0423dd413' '038003a889c79e024754bc6f08cdafff') noextract=(cryptopp${pkgver//./}.zip) diff --git a/mingw-w64-crypto++/cryptopp-cmake.patch b/mingw-w64-crypto++/cryptopp-cmake.patch index 371c1b5b8f..6105f0d010 100644 --- a/mingw-w64-crypto++/cryptopp-cmake.patch +++ b/mingw-w64-crypto++/cryptopp-cmake.patch @@ -3,14 +3,14 @@ new file mode 100644 index 0000000..a0c6371 --- /dev/null +++ b/CMakeLists.txt -@@ -0,0 +1,510 @@ +@@ -0,0 +1,512 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + +PROJECT(cryptopp) + +set(CRYPTOPP_VERSION_MAJOR 5) +set(CRYPTOPP_VERSION_MINOR 6) -+set(CRYPTOPP_VERSION_BUILD 2) ++set(CRYPTOPP_VERSION_BUILD 3) +set(CRYPTOPP_VERSION "${CRYPTOPP_VERSION_MAJOR}.${CRYPTOPP_VERSION_MINOR}.${CRYPTOPP_VERSION_BUILD}") + +################################### @@ -172,6 +172,7 @@ index 0000000..a0c6371 + pubkey.cpp + queue.cpp + randpool.cpp ++ rdrand.cpp + rdtables.cpp + rijndael.cpp + rng.cpp @@ -339,6 +340,7 @@ index 0000000..a0c6371 + pwdbased.h + queue.h + rabin.h ++ rdrand.h + randpool.h + rc2.h + rc5.h diff --git a/mingw-w64-crypto++/missing-sources.patch b/mingw-w64-crypto++/missing-sources.patch index 88d6f4f22b..4582feb3b6 100644 --- a/mingw-w64-crypto++/missing-sources.patch +++ b/mingw-w64-crypto++/missing-sources.patch @@ -1,14 +1,14 @@ --- src/GNUmakefile.orig 2014-07-23 23:40:41.007000000 +0400 +++ src/GNUmakefile 2014-07-23 23:41:05.280600000 +0400 -@@ -131,7 +131,7 @@ - TESTOBJS = bench.o bench2.o test.o validat1.o validat2.o validat3.o adhoc.o datatest.o regtest.o fipsalgt.o dlltest.o - LIBOBJS = $(filter-out $(TESTOBJS),$(OBJS)) +@@ -255,7 +255,7 @@ + LIBOBJS := $(filter-out $(TESTOBJS),$(OBJS)) --DLLSRCS = algebra.cpp algparam.cpp asn.cpp basecode.cpp cbcmac.cpp channels.cpp cryptlib.cpp des.cpp dessp.cpp dh.cpp dll.cpp dsa.cpp ec2n.cpp eccrypto.cpp ecp.cpp eprecomp.cpp files.cpp filters.cpp fips140.cpp fipstest.cpp gf2n.cpp gfpcrypt.cpp hex.cpp hmac.cpp integer.cpp iterhash.cpp misc.cpp modes.cpp modexppc.cpp mqueue.cpp nbtheory.cpp oaep.cpp osrng.cpp pch.cpp pkcspad.cpp pubkey.cpp queue.cpp randpool.cpp rdtables.cpp rijndael.cpp rng.cpp rsa.cpp sha.cpp simple.cpp skipjack.cpp strciphr.cpp trdlocal.cpp + # List cryptlib.cpp first in an attempt to tame C++ static initialization problems +-DLLSRCS := cryptlib.cpp algebra.cpp algparam.cpp asn.cpp basecode.cpp cbcmac.cpp channels.cpp des.cpp dessp.cpp dh.cpp dll.cpp dsa.cpp ec2n.cpp eccrypto.cpp ecp.cpp eprecomp.cpp files.cpp filters.cpp fips140.cpp fipstest.cpp gf2n.cpp gfpcrypt.cpp hex.cpp hmac.cpp integer.cpp iterhash.cpp misc.cpp modes.cpp modexppc.cpp mqueue.cpp nbtheory.cpp oaep.cpp osrng.cpp pch.cpp pkcspad.cpp pubkey.cpp queue.cpp randpool.cpp rdtables.cpp rijndael.cpp rng.cpp rsa.cpp sha.cpp simple.cpp skipjack.cpp strciphr.cpp trdlocal.cpp +DLLSRCS = algebra.cpp algparam.cpp asn.cpp basecode.cpp cbcmac.cpp channels.cpp cpu.cpp cryptlib.cpp des.cpp dessp.cpp dh.cpp dll.cpp dsa.cpp ec2n.cpp eccrypto.cpp ecp.cpp emsa2.cpp eprecomp.cpp files.cpp filters.cpp fips140.cpp fipstest.cpp gf2n.cpp gfpcrypt.cpp hex.cpp hmac.cpp hrtimer.cpp integer.cpp iterhash.cpp misc.cpp modes.cpp modexppc.cpp mqueue.cpp nbtheory.cpp oaep.cpp osrng.cpp pch.cpp pkcspad.cpp pssr.cpp pubkey.cpp queue.cpp randpool.cpp rdtables.cpp rijndael.cpp rng.cpp rsa.cpp sha.cpp simple.cpp skipjack.cpp strciphr.cpp trdlocal.cpp - DLLOBJS = $(DLLSRCS:.cpp=.export.o) - LIBIMPORTOBJS = $(LIBOBJS:.o=.import.o) - TESTIMPORTOBJS = $(TESTOBJS:.o=.import.o) + DLLOBJS := $(DLLSRCS:.cpp=.export.o) + + # Import lib testing --- /dev/null 2014-07-23 23:52:53.000000000 +0400 +++ src/modexppc.cpp 2014-07-23 20:41:34.132400000 +0400 @@ -0,0 +1,14 @@ From 97f46b7c33a920a3d28b655280699bf0956facb9 Mon Sep 17 00:00:00 2001 From: Jeroen Ooms Date: Tue, 24 Nov 2015 16:24:32 +0100 Subject: [PATCH 1920/2060] update to version 1.7 --- mingw-w64-quantlib/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-quantlib/PKGBUILD b/mingw-w64-quantlib/PKGBUILD index 3d33cf513b..e8a79eb114 100644 --- a/mingw-w64-quantlib/PKGBUILD +++ b/mingw-w64-quantlib/PKGBUILD @@ -3,7 +3,7 @@ _realname=quantlib pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.2 +pkgver=1.7 pkgrel=1 pkgdesc="QuantLib - A free/open-source library for quantitative finance (mingw-w64)" arch=('any') @@ -11,9 +11,9 @@ url='http://quantlib.org' license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-boost" "automake" "autoconf" "libtool") options=('staticlibs' 'strip') -source=(https://downloads.sourceforge.net/project/quantlib/QuantLib/${pkgver}/QuantLib-${pkgver}.tar.gz +source=(http://downloads.sourceforge.net/project/quantlib/QuantLib/${pkgver}/QuantLib-${pkgver}.tar.gz no-undefined.patch) -md5sums=('e1831b8fc7fbf155659ec7aa8351b57a' +md5sums=('e000a7505e01c7da51a2009fc9397703' 'c928f002736dcdce347906e129950547') prepare() { @@ -32,6 +32,7 @@ build() { --disable-dependency-tracking \ --enable-static \ --enable-shared \ + --enable-intraday \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} From 78b376a3d6b122eae9227fac133c6a6394216528 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 25 Nov 2015 00:21:21 +0000 Subject: [PATCH 1921/2060] firefox: Update to 42.0 (WIP) --- ...error-definition-is-marked-dllimport.patch | 13 ------------- ...w64-Dont-redefine-MFVideoFormat_VPn0.patch | 18 +++++++++--------- mingw-w64-firefox/PKGBUILD | 19 ++++++++++--------- 3 files changed, 19 insertions(+), 31 deletions(-) delete mode 100644 mingw-w64-firefox/0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch diff --git a/mingw-w64-firefox/0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch b/mingw-w64-firefox/0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch deleted file mode 100644 index 404d6ea15a..0000000000 --- a/mingw-w64-firefox/0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- firefox-41.0b5.orig/mozglue/misc/TimeStamp.h 2015-08-30 11:46:11.745214500 +0100 -+++ firefox-41.0b5/mozglue/misc/TimeStamp.h 2015-08-30 11:46:41.480915300 +0100 -@@ -426,8 +426,8 @@ - * lower precision, usually 15.6 ms, but with very good performance benefit. - * Use it for measurements of longer times, like >200ms timeouts. - */ -- static MFBT_API TimeStamp Now() { return Now(true); } -- static MFBT_API TimeStamp NowLoRes() { return Now(false); } -+ static TimeStamp Now() { return Now(true); } -+ static TimeStamp NowLoRes() { return Now(false); } - - /** - * Return a timestamp representing the time when the current process was diff --git a/mingw-w64-firefox/0021-MinGW-w64-Dont-redefine-MFVideoFormat_VPn0.patch b/mingw-w64-firefox/0021-MinGW-w64-Dont-redefine-MFVideoFormat_VPn0.patch index 59c0a504ae..d810735388 100644 --- a/mingw-w64-firefox/0021-MinGW-w64-Dont-redefine-MFVideoFormat_VPn0.patch +++ b/mingw-w64-firefox/0021-MinGW-w64-Dont-redefine-MFVideoFormat_VPn0.patch @@ -1,19 +1,19 @@ ---- firefox-41.0.1/dom/media/platforms/wmf/WMFVideoMFTManager.cpp.orig 2015-09-29 22:45:02.000000000 +0100 -+++ firefox-41.0.1/dom/media/platforms/wmf/WMFVideoMFTManager.cpp 2015-10-02 11:17:05.962703900 +0100 -@@ -30,6 +30,8 @@ +--- firefox-42.0/dom/media/platforms/wmf/WMFVideoMFTManager.cpp.orig 2015-10-29 22:17:56.000000000 +0000 ++++ firefox-42.0/dom/media/platforms/wmf/WMFVideoMFTManager.cpp 2015-11-25 00:04:09.460865800 +0000 +@@ -30,7 +30,7 @@ using mozilla::layers::LayerManager; using mozilla::layers::LayersBackend; -+/* MinGW-w64's mfapi.h defines these already. */ -+#if !defined(__MINGW64_VERSION_MAJOR) +-#if MOZ_WINSDK_MAXVER < 0x0A000000 ++#if MOZ_WINSDK_MAXVER < 0x0A000000 && !defined(__MINGW64_VERSION_MAJOR) + // Windows 10+ SDK has VP80 and VP90 defines const GUID MFVideoFormat_VP80 = { - 0x30385056, -@@ -45,6 +47,7 @@ +@@ -39,6 +39,7 @@ 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} }; -+#endif /* !defined(__MINGW64_VERSION_MAJOR) */ ++#endif /* MOZ_WINSDK_MAXVER < 0x0A000000 && !defined(__MINGW64_VERSION_MAJOR) */ - const CLSID CLSID_WebmMfVp8Dec = + const GUID MFVideoFormat_VP90 = { diff --git a/mingw-w64-firefox/PKGBUILD b/mingw-w64-firefox/PKGBUILD index a1a6be360f..ea25903584 100644 --- a/mingw-w64-firefox/PKGBUILD +++ b/mingw-w64-firefox/PKGBUILD @@ -77,7 +77,7 @@ path_conv_for_make() { _realname=firefox pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=41.0.1 +pkgver=42.0 pkgrel=1 pkgdesc='Mozilla Firefox (mingw-w64)' groups=("${MINGW_PACKAGE_PREFIX}") @@ -103,7 +103,6 @@ source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/ "0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch" "0010-Dont-use-I64-numeric-suffix.patch" "0011-stagefreight-Dont-use-old-MinGW-w64-headers.patch" - "0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch" "0013-MinGW-w64-Disable-TabletMode-stuff.patch" "0014-MinGW-w64-cast-fixes-LPCWSTR-to-char16_t.patch" "0015-nss-lib-dbm-Fix-incorrect-delete-__attribute__-if-non-gcc-or-gcc1.patch" @@ -119,7 +118,7 @@ source=("http://ftp.mozilla.org/pub/mozilla.org/${_realname}/releases/${pkgver}/ "config.sub" "config.guess") noextract=("${_realname}-${pkgver}.source.tar.xz") -sha1sums=('4f6bf34b7b286e033f401d7d4112ec6310577aae' +sha1sums=('c207a73fbfde2683aca36417331441d007ceb765' '6c018e4ac903180f5f65492241502842dc1c035a' 'c4e841bf724a1ff907592c8a11ba9683568acfd5' '1c0810fbfd6f336eec81e236c89c6c9ca0e79290' @@ -133,7 +132,6 @@ sha1sums=('4f6bf34b7b286e033f401d7d4112ec6310577aae' '17bc2719882a5bc0775f48522a45c9132aebdd04' '12385ab4cb659f712f3a3a93248741d299048b9c' '4553ac6631d56bc251ffd6cbc503002c6835c9de' - 'de9fb13afd011710349c868f2bd60f3508986905' '1da4ea7929176f545f9f20e00109d93bc9c4fd12' '7e36fe8fcca2730cf55a2703b50d998b93af3b7e' '7dcb0ea5e54ffb08cc9afa495b13e42d058ecbbd' @@ -142,7 +140,7 @@ sha1sums=('4f6bf34b7b286e033f401d7d4112ec6310577aae' 'e939e9722fd0cb70a7bd5e705b37bd47045e9647' '20a6613a688c2e7cb95a6faae49974e452dba8de' '7f23896aeca52cd7bd3a038c5b5fd4eb68c90923' - '6d8c68944d14f04948dc31a558cc7a2d25e9df12' + '860dd63612e51d26b8bc17631539b16227efb8bf' 'c2a0ed20a82d212bb4aa84cb2f294be3ba0bb859' '02befff9986a31bbc4ad74a8c0125e84f29fcb40' '9f4a4161fd23ba603c3e8140b322e732a46efffc' @@ -156,14 +154,18 @@ prepare() { _archivedir="mozilla-beta" elif [ -d "${srcdir}"/mozilla-release ]; then _archivedir="mozilla-release" + elif [ -d "${srcdir}"/${_realname}-${pkgver} ]; then + echo "Found sources" else echo "Can't find sources!" exit 1 fi - # Getting a lot of "mv: cannot move .. Permission denied"; try a bit of sleeping. Yuck. - (sleep 1 && mv "${srcdir}"/"${_archivedir}" "${srcdir}"/${_realname}-${pkgver}) || \ - (sleep 1 && mv "${srcdir}"/"${_archivedir}" "${srcdir}"/${_realname}-${pkgver}) + if [ -n "$_archivedir" ]; then + # Getting a lot of "mv: cannot move .. Permission denied"; try a bit of sleeping. Yuck. + (sleep 1 && mv "${srcdir}"/"${_archivedir}" "${srcdir}"/${_realname}-${pkgver}) || \ + (sleep 1 && mv "${srcdir}"/"${_archivedir}" "${srcdir}"/${_realname}-${pkgver}) + fi cd "${srcdir}"/${_realname}-${pkgver} # Mostly this patch is about msys2-python and mingw-w64-python not @@ -186,7 +188,6 @@ prepare() { patch -p1 -i "${srcdir}"/0009-MinGW-w64-Hack-out-__except-in-PlatformThread__SetName.patch patch -p1 -i "${srcdir}"/0010-Dont-use-I64-numeric-suffix.patch patch -p1 -i "${srcdir}"/0011-stagefreight-Dont-use-old-MinGW-w64-headers.patch - patch -p1 -i "${srcdir}"/0012-Dont-mark-inline-functions-as-MFBT_API-as-error-definition-is-marked-dllimport.patch patch -p1 -i "${srcdir}"/0013-MinGW-w64-Disable-TabletMode-stuff.patch patch -p1 -i "${srcdir}"/0014-MinGW-w64-cast-fixes-LPCWSTR-to-char16_t.patch patch -p1 -i "${srcdir}"/0015-nss-lib-dbm-Fix-incorrect-delete-__attribute__-if-non-gcc-or-gcc1.patch From abb7befa3ca01f8226a40f826f1abcd642df2099 Mon Sep 17 00:00:00 2001 From: "ricky.wu" Date: Wed, 25 Nov 2015 08:42:42 +0800 Subject: [PATCH 1922/2060] We use gtk2 for windows, so we need a buildin ime for windows --- mingw-w64-gtk2/PKGBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mingw-w64-gtk2/PKGBUILD b/mingw-w64-gtk2/PKGBUILD index a185dfa586..b761e0503e 100644 --- a/mingw-w64-gtk2/PKGBUILD +++ b/mingw-w64-gtk2/PKGBUILD @@ -83,7 +83,8 @@ build() { --enable-static \ --enable-shared \ --enable-introspection \ - --disable-glibtest + --disable-glibtest \ + --with-included-immodules=ime make } From d8e1580b0c8e9ac4fab14525b3fe53e81db9968c Mon Sep 17 00:00:00 2001 From: "ricky.wu" Date: Wed, 25 Nov 2015 15:40:13 +0800 Subject: [PATCH 1923/2060] gdl library for gtk+ 2.0 --- mingw-w64-gdl2/001-pixbuf.patch | 370 ++++++++++++++++++++++++++++++++ mingw-w64-gdl2/PKGBUILD | 53 +++++ mingw-w64-gdlmm2/000-C11.patch | 28 +++ mingw-w64-gdlmm2/PKGBUILD | 53 +++++ 4 files changed, 504 insertions(+) create mode 100644 mingw-w64-gdl2/001-pixbuf.patch create mode 100644 mingw-w64-gdl2/PKGBUILD create mode 100644 mingw-w64-gdlmm2/000-C11.patch create mode 100644 mingw-w64-gdlmm2/PKGBUILD diff --git a/mingw-w64-gdl2/001-pixbuf.patch b/mingw-w64-gdl2/001-pixbuf.patch new file mode 100644 index 0000000000..60cbca68fd --- /dev/null +++ b/mingw-w64-gdl2/001-pixbuf.patch @@ -0,0 +1,370 @@ +diff -rup gdl-2.31.2/gdl/gdl-dock-bar.c gdl-2.31.2-ricky/gdl/gdl-dock-bar.c +--- gdl-2.31.2/gdl/gdl-dock-bar.c 2010-05-02 20:03:06.000000000 +0800 ++++ gdl-2.31.2-ricky/gdl/gdl-dock-bar.c 2013-07-01 15:25:01.795260400 +0800 +@@ -269,6 +269,7 @@ gdl_dock_bar_add_item (GdlDockBar *dock + GtkWidget *button; + gchar *stock_id; + gchar *name; ++ GdkPixbuf *pixbuf_icon; + GtkWidget *image, *box, *label; + + g_return_if_fail (GDL_IS_DOCK_BAR (dockbar)); +@@ -293,6 +294,8 @@ gdl_dock_bar_add_item (GdlDockBar *dock + box = gtk_vbox_new (FALSE, 0); + + g_object_get (item, "stock-id", &stock_id, "long-name", &name, NULL); ++ g_object_get (item, "stock-id", &stock_id, "pixbuf-icon", &pixbuf_icon, ++ "long-name", &name, NULL); + + if (dockbar->_priv->dockbar_style == GDL_DOCK_BAR_TEXT || + dockbar->_priv->dockbar_style == GDL_DOCK_BAR_BOTH) { +@@ -311,7 +314,9 @@ gdl_dock_bar_add_item (GdlDockBar *dock + image = gtk_image_new_from_stock (stock_id, + GTK_ICON_SIZE_SMALL_TOOLBAR); + g_free (stock_id); +- } else { ++ } else if(pixbuf_icon){ ++ image = gtk_image_new_from_pixbuf (pixbuf_icon); ++ }else { + image = gtk_image_new_from_stock (GTK_STOCK_NEW, + GTK_ICON_SIZE_SMALL_TOOLBAR); + } +diff -rup gdl-2.31.2/gdl/gdl-dock-item.c gdl-2.31.2-ricky/gdl/gdl-dock-item.c +--- gdl-2.31.2/gdl/gdl-dock-item.c 2010-05-03 03:53:28.000000000 +0800 ++++ gdl-2.31.2-ricky/gdl/gdl-dock-item.c 2013-07-02 09:33:19.280291200 +0800 +@@ -177,6 +177,7 @@ struct _GdlDockItemPrivate { + gboolean intern_tab_label; + guint notify_label; + guint notify_stock_id; ++ guint notify_pixbuf_icon; + + gint preferred_width; + gint preferred_height; +@@ -444,11 +445,21 @@ on_stock_id_changed (GObject* item, + gpointer user_data) + { + gchar* stock_id; +- g_object_get (item, "stock_id", &stock_id, NULL); ++ g_object_get (item, "stock-id", &stock_id, NULL); + gtk_image_set_from_stock (GTK_IMAGE (user_data), stock_id, GTK_ICON_SIZE_MENU); + g_free(stock_id); + } + ++static void ++on_pixbuf_icon_changed (GObject* item, ++ GParamSpec* spec, ++ gpointer user_data) ++{ ++ GdkPixbuf* pixbuf_icon; ++ g_object_get (item, "pixbuf-icon", &pixbuf_icon, NULL); ++ gtk_image_set_from_pixbuf(GTK_IMAGE (user_data), pixbuf_icon); ++} ++ + static GObject * + gdl_dock_item_constructor (GType type, + guint n_construct_properties, +@@ -469,6 +480,7 @@ gdl_dock_item_constructor (GType + GtkWidget *icon; + gchar* long_name; + gchar* stock_id; ++ GdkPixbuf *pixbuf_icon; + + if (GDL_DOCK_ITEM_HAS_GRIP (item)) { + item->_priv->grip_shown = TRUE; +@@ -481,6 +493,8 @@ gdl_dock_item_constructor (GType + } + + g_object_get (g_object, "long-name", &long_name, "stock-id", &stock_id, NULL); ++ g_object_get (g_object, "long-name", &long_name, "stock-id", &stock_id, ++ "pixbuf-icon", &pixbuf_icon,NULL); + + hbox = gtk_hbox_new (FALSE, 5); + label = gtk_label_new (long_name); +@@ -488,6 +502,9 @@ gdl_dock_item_constructor (GType + if (stock_id) + gtk_image_set_from_stock (GTK_IMAGE (icon), stock_id, + GTK_ICON_SIZE_MENU); ++ else if(pixbuf_icon) ++ gtk_image_set_from_pixbuf (GTK_IMAGE (icon), pixbuf_icon); ++ + gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + +@@ -497,6 +514,9 @@ gdl_dock_item_constructor (GType + item->_priv->notify_stock_id = + g_signal_connect (item, "notify::stock-id", G_CALLBACK (on_stock_id_changed), + icon); ++ item->_priv->notify_pixbuf_icon = ++ g_signal_connect (item, "notify::pixbuf-icon", G_CALLBACK (on_pixbuf_icon_changed), ++ icon); + + gtk_widget_show_all (hbox); + +@@ -1722,6 +1742,28 @@ gdl_dock_item_new_with_stock (const gcha + return GTK_WIDGET (item); + } + ++GtkWidget * ++gdl_dock_item_new_with_pixbuf_icon (const gchar *name, ++ const gchar *long_name, ++ const GdkPixbuf *pixbuf_icon, ++ GdlDockItemBehavior behavior) ++{ ++ GdlDockItem *item; ++ ++ item = GDL_DOCK_ITEM (g_object_new (GDL_TYPE_DOCK_ITEM, ++ "name", name, ++ "long-name", long_name, ++ "pixbuf-icon", pixbuf_icon, ++ "behavior", behavior, ++ NULL)); ++ ++ GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC); ++ gdl_dock_item_set_tablabel (item, gtk_label_new (long_name)); ++ ++ return GTK_WIDGET (item); ++} ++ ++ + /* convenient function (and to preserve source compat) */ + /** + * gdl_dock_item_dock_to: +@@ -1842,6 +1884,7 @@ gdl_dock_item_set_tablabel (GdlDockItem + item->_priv->intern_tab_label = FALSE; + g_signal_handler_disconnect (item, item->_priv->notify_label); + g_signal_handler_disconnect (item, item->_priv->notify_stock_id); ++ g_signal_handler_disconnect (item, item->_priv->notify_pixbuf_icon); + } + + if (item->_priv->tab_label) { +diff -rup gdl-2.31.2/gdl/gdl-dock-item.h gdl-2.31.2-ricky/gdl/gdl-dock-item.h +--- gdl-2.31.2/gdl/gdl-dock-item.h 2010-04-11 21:26:30.000000000 +0800 ++++ gdl-2.31.2-ricky/gdl/gdl-dock-item.h 2013-07-01 15:30:01.489563500 +0800 +@@ -142,6 +142,12 @@ GtkWidget *gdl_dock_item_new_with_st + const gchar *stock_id, + GdlDockItemBehavior behavior); + ++GtkWidget *gdl_dock_item_new_with_pixbuf_icon (const gchar *name, ++ const gchar *long_name, ++ const GdkPixbuf *pixbuf_icon, ++ GdlDockItemBehavior behavior); ++ ++ + GType gdl_dock_item_get_type (void); + + void gdl_dock_item_dock_to (GdlDockItem *item, +diff -rup gdl-2.31.2/gdl/gdl-dock-item-grip.c gdl-2.31.2-ricky/gdl/gdl-dock-item-grip.c +--- gdl-2.31.2/gdl/gdl-dock-item-grip.c 2010-05-02 20:03:06.000000000 +0800 ++++ gdl-2.31.2-ricky/gdl/gdl-dock-item-grip.c 2013-07-01 15:27:55.387563500 +0800 +@@ -69,10 +69,12 @@ gdl_dock_item_create_label_widget(GdlDoc + GtkLabel *label; + gchar *stock_id = NULL; + gchar *title = NULL; ++ GdkPixbuf *pixbuf; + + label_box = (GtkHBox*)gtk_hbox_new (FALSE, 0); + + g_object_get (G_OBJECT (grip->item), "stock-id", &stock_id, NULL); ++ g_object_get (G_OBJECT (grip->item), "pixbuf-icon", &pixbuf, NULL); + if(stock_id) { + image = GTK_IMAGE(gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU)); + +@@ -81,6 +83,12 @@ gdl_dock_item_create_label_widget(GdlDoc + + g_free (stock_id); + } ++ else if(pixbuf){ ++ image = GTK_IMAGE(gtk_image_new_from_pixbuf (pixbuf)); ++ ++ gtk_widget_show (GTK_WIDGET(image)); ++ gtk_box_pack_start(GTK_BOX(label_box), GTK_WIDGET(image), FALSE, TRUE, 0); ++ } + + g_object_get (G_OBJECT (grip->item), "long-name", &title, NULL); + if (title) { +diff -rup gdl-2.31.2/gdl/gdl-dock-notebook.c gdl-2.31.2-ricky/gdl/gdl-dock-notebook.c +--- gdl-2.31.2/gdl/gdl-dock-notebook.c 2010-04-24 19:42:49.000000000 +0800 ++++ gdl-2.31.2-ricky/gdl/gdl-dock-notebook.c 2013-07-02 11:56:58.058942800 +0800 +@@ -388,11 +388,12 @@ gdl_dock_notebook_dock (GdlDockObject + GdlDockItem *item = GDL_DOCK_ITEM (object); + GdlDockItem *requestor_item = GDL_DOCK_ITEM (requestor); + gchar *long_name, *stock_id; ++ GdkPixbuf *pixbuf_icon; + GtkWidget *label; + gint position = -1; + + g_object_get (requestor_item, "long-name", &long_name, +- "stock-id", &stock_id, NULL); ++ "stock-id", &stock_id, "pixbuf-icon", &pixbuf_icon, NULL); + label = gdl_dock_item_get_tablabel (requestor_item); + if (!label) { + label = gtk_label_new (long_name); +@@ -412,7 +413,7 @@ gdl_dock_notebook_dock (GdlDockObject + position = gdl_switcher_insert_page (GDL_SWITCHER (item->child), + GTK_WIDGET (requestor), label, + long_name, long_name, +- stock_id, position); ++ stock_id, pixbuf_icon, position); + + GDL_DOCK_OBJECT_SET_FLAGS (requestor, GDL_DOCK_ATTACHED); + +diff -rup gdl-2.31.2/gdl/gdl-dock-object.c gdl-2.31.2-ricky/gdl/gdl-dock-object.c +--- gdl-2.31.2/gdl/gdl-dock-object.c 2010-05-02 20:03:06.000000000 +0800 ++++ gdl-2.31.2-ricky/gdl/gdl-dock-object.c 2013-07-01 16:37:45.281565200 +0800 +@@ -81,6 +81,7 @@ enum { + PROP_NAME, + PROP_LONG_NAME, + PROP_STOCK_ID, ++ PROP_PIXBUF_ICON, + PROP_MASTER, + PROP_EXPORT_PROPERTIES + }; +@@ -137,6 +138,12 @@ gdl_dock_object_class_init (GdlDockObjec + G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + + g_object_class_install_property ( ++ g_object_class, PROP_PIXBUF_ICON, ++ g_param_spec_pointer ("pixbuf-icon", _("Pixbuf Icon"), ++ _("Pixbuf icon for the dock object"), ++ G_PARAM_READWRITE)); ++ ++ g_object_class_install_property ( + g_object_class, PROP_MASTER, + g_param_spec_object ("master", _("Dock master"), + _("Dock master this dock object is bound to"), +@@ -213,6 +220,9 @@ gdl_dock_object_set_property (GObject + g_free (object->stock_id); + object->stock_id = g_value_dup_string (value); + break; ++ case PROP_PIXBUF_ICON: ++ object->pixbuf_icon = g_value_get_pointer (value); ++ break; + case PROP_MASTER: + if (g_value_get_object (value)) + gdl_dock_object_bind (object, g_value_get_object (value)); +@@ -243,6 +253,9 @@ gdl_dock_object_get_property (GObject + case PROP_STOCK_ID: + g_value_set_string (value, object->stock_id); + break; ++ case PROP_PIXBUF_ICON: ++ g_value_set_pointer (value, object->pixbuf_icon); ++ break; + case PROP_MASTER: + g_value_set_object (value, object->master); + break; +diff -rup gdl-2.31.2/gdl/gdl-dock-object.h gdl-2.31.2-ricky/gdl/gdl-dock-object.h +--- gdl-2.31.2/gdl/gdl-dock-object.h 2010-04-11 21:26:30.000000000 +0800 ++++ gdl-2.31.2-ricky/gdl/gdl-dock-object.h 2013-07-01 15:50:02.935563500 +0800 +@@ -88,6 +88,7 @@ struct _GdlDockObject { + gchar *name; + gchar *long_name; + gchar *stock_id; ++ GdkPixbuf *pixbuf_icon; + + gboolean reduce_pending; + }; +diff -rup gdl-2.31.2/gdl/gdl-switcher.c gdl-2.31.2-ricky/gdl/gdl-switcher.c +--- gdl-2.31.2/gdl/gdl-switcher.c 2010-05-02 20:09:27.000000000 +0800 ++++ gdl-2.31.2-ricky/gdl/gdl-switcher.c 2013-07-02 09:18:28.271970500 +0800 +@@ -51,6 +51,7 @@ static void gdl_switcher_add_button (Gd + const gchar *label, + const gchar *tooltips, + const gchar *stock_id, ++ const GdkPixbuf *pixbuf_icon, + gint switcher_id, + GtkWidget *page); + /* static void gdl_switcher_remove_button (GdlSwitcher *switcher, gint switcher_id); */ +@@ -125,6 +126,18 @@ gdl_switcher_stock_id_changed (GObject* + g_free (id); + } + ++static void ++gdl_switcher_pixbuf_icon_changed (GObject* object, ++ GParamSpec* spec, ++ gpointer user_data) ++{ ++ Button* button = user_data; ++ GdkPixbuf* pixbuf_icon; ++ ++ g_object_get (object, "pixbuf-icon", &pixbuf_icon, NULL); ++ gtk_image_set_from_pixbuf (GTK_IMAGE(button->icon),pixbuf_icon); ++} ++ + + static Button * + button_new (GtkWidget *button_widget, GtkWidget *label, GtkWidget *icon, +@@ -144,6 +157,8 @@ button_new (GtkWidget *button_widget, Gt + button); + g_signal_connect (page, "notify::stock-id", G_CALLBACK (gdl_switcher_stock_id_changed), + button); ++ g_signal_connect (page, "notify::pixbuf-icon", G_CALLBACK (gdl_switcher_pixbuf_icon_changed), ++ button); + + g_object_ref (button_widget); + g_object_ref (label); +@@ -670,8 +685,8 @@ gdl_switcher_page_added_cb (GtkNotebook + + switcher_id = gdl_switcher_get_page_id (page); + +- gdl_switcher_add_button (GDL_SWITCHER (switcher), NULL, NULL, NULL, +- switcher_id, page); ++ gdl_switcher_add_button (GDL_SWITCHER (switcher), NULL, NULL, NULL, NULL, ++ switcher_id, page); + gdl_switcher_select_button (GDL_SWITCHER (switcher), switcher_id); + } + +@@ -781,6 +796,7 @@ gdl_switcher_new (void) + void + gdl_switcher_add_button (GdlSwitcher *switcher, const gchar *label, + const gchar *tooltips, const gchar *stock_id, ++ const GdkPixbuf *pixbuf_icon, + gint switcher_id, GtkWidget* page) + { + GtkWidget *event_box; +@@ -803,8 +819,15 @@ gdl_switcher_add_button (GdlSwitcher *sw + gtk_container_add (GTK_CONTAINER (button_widget), hbox); + gtk_widget_show (hbox); + +- icon_widget = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU); +- gtk_widget_show (icon_widget); ++ if (stock_id) { ++ icon_widget = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU); ++ } else if (pixbuf_icon) { ++ icon_widget = gtk_image_new_from_pixbuf (pixbuf_icon); ++ } else { ++ icon_widget = gtk_image_new_from_stock (GTK_STOCK_NEW, GTK_ICON_SIZE_MENU); ++ } ++ ++ gtk_widget_show (icon_widget); + + if (!label) { + gchar *text = g_strdup_printf ("Item %d", switcher_id); +@@ -881,7 +904,7 @@ gint + gdl_switcher_insert_page (GdlSwitcher *switcher, GtkWidget *page, + GtkWidget *tab_widget, const gchar *label, + const gchar *tooltips, const gchar *stock_id, +- gint position) ++ const GdkPixbuf *pixbuf_icon, gint position) + { + gint ret_position; + gint switcher_id; +@@ -894,7 +917,7 @@ gdl_switcher_insert_page (GdlSwitcher *s + gtk_widget_show (tab_widget); + } + switcher_id = gdl_switcher_get_page_id (page); +- gdl_switcher_add_button (switcher, label, tooltips, stock_id, switcher_id, page); ++ gdl_switcher_add_button (switcher, label, tooltips, stock_id, pixbuf_icon, switcher_id, page); + + ret_position = gtk_notebook_insert_page (GTK_NOTEBOOK (switcher), page, + tab_widget, position); +diff -rup gdl-2.31.2/gdl/gdl-switcher.h gdl-2.31.2-ricky/gdl/gdl-switcher.h +--- gdl-2.31.2/gdl/gdl-switcher.h 2010-04-11 21:26:30.000000000 +0800 ++++ gdl-2.31.2-ricky/gdl/gdl-switcher.h 2013-07-01 15:43:38.083563500 +0800 +@@ -60,6 +60,7 @@ gint gdl_switcher_insert_page (Gd + const gchar *label, + const gchar *tooltips, + const gchar *stock_id, ++ const GdkPixbuf *pixbuf_icon, + gint position); + G_END_DECLS + diff --git a/mingw-w64-gdl2/PKGBUILD b/mingw-w64-gdl2/PKGBUILD new file mode 100644 index 0000000000..a0a92ab1d9 --- /dev/null +++ b/mingw-w64-gdl2/PKGBUILD @@ -0,0 +1,53 @@ +# $Id$ +# Maintainer: Ricky Wu + +_realname=gdl2 +pkgbase=mingw-w64-${_realname} +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgver=2.31.2 +pkgrel=1 +pkgdesc="GNOME Docking Library (mingw-w64)" +arch=('any') +license=('LGPL 2') +url="http://www.gnome.org/" +depends=("${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-libxml2") +makedepends=("intltool" + "gtk-doc") +options=('strip' 'staticlibs') +source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname:0:3}/${pkgver:0:4}/${_realname:0:3}-${pkgver}.tar.gz + 001-pixbuf.patch) +sha256sums=('34cbe104f5df9a20ea26aa8acca2b6d1a73035448aa854162c598e90f4e6ff80' + 'ba2f1eed43f926df573ec299b973929499e1da78c0f15157a4ec4ae40057afa1') + +prepare() { + cd "${srcdir}"/${_realname:0:3}-${pkgver} + + patch -b -V simple -p1 -i ${srcdir}/001-pixbuf.patch + + autoreconf -f -i +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + mkdir -p docs/reference/html + cp -rf ../${_realname:0:3}-${pkgver}/docs/reference/html/* docs/reference/html + + ../${_realname:0:3}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-introspection=no + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname:0:3}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} diff --git a/mingw-w64-gdlmm2/000-C11.patch b/mingw-w64-gdlmm2/000-C11.patch new file mode 100644 index 0000000000..cc2ccf35c3 --- /dev/null +++ b/mingw-w64-gdlmm2/000-C11.patch @@ -0,0 +1,28 @@ +diff -rup gdlmm-2.30.0-org/gdl/gdlmm/Makefile.am gdlmm-2.30.0/gdl/gdlmm/Makefile.am +--- gdlmm-2.30.0-org/gdl/gdlmm/Makefile.am 2010-04-26 04:21:18.000000000 +0800 ++++ gdlmm-2.30.0/gdl/gdlmm/Makefile.am 2015-10-22 22:06:15.021489400 +0800 +@@ -23,8 +23,8 @@ include $(top_srcdir)/build/compile-bind + + local_cppflags = $(binding_includes) $(binding_cppflags) -DGDLMM_BUILD=1 + +-AM_CPPFLAGS = $(local_cppflags) $(GTHREAD_CFLAGS) $(GDLMM_CFLAGS) +-AM_CXXFLAGS = $(GDLMM_WXXFLAGS) ++AM_CPPFLAGS = $(local_cppflags) $(GTHREAD_CFLAGS) $(GDLMM_CFLAGS) -std=c++11 ++AM_CXXFLAGS = $(GDLMM_WXXFLAGS) -std=c++11 + + libgdlmm_@GDLMM_API_VERSION@_la_SOURCES = $(binding_sources) + libgdlmm_@GDLMM_API_VERSION@_la_LDFLAGS = -no-undefined -version-info $(GDLMM_SO_VERSION) +diff -rup gdlmm-2.30.0-org/gdl/gdlmm/Makefile.in gdlmm-2.30.0/gdl/gdlmm/Makefile.in +--- gdlmm-2.30.0-org/gdl/gdlmm/Makefile.in 2010-04-26 04:32:22.000000000 +0800 ++++ gdlmm-2.30.0/gdl/gdlmm/Makefile.in 2015-10-22 22:06:07.821479300 +0800 +@@ -300,8 +300,8 @@ binding_private_HEADERS = $(files_built_ + binding_built_sources = $(files_built_cc) $(files_built_h) $(files_built_ph) + MAINTAINERCLEANFILES = $(binding_built_sources) $(addprefix $(srcdir)/,$(binding_built_sources)) + local_cppflags = $(binding_includes) $(binding_cppflags) -DGDLMM_BUILD=1 +-AM_CPPFLAGS = $(local_cppflags) $(GTHREAD_CFLAGS) $(GDLMM_CFLAGS) +-AM_CXXFLAGS = $(GDLMM_WXXFLAGS) ++AM_CPPFLAGS = $(local_cppflags) $(GTHREAD_CFLAGS) $(GDLMM_CFLAGS) -std=c++11 ++AM_CXXFLAGS = $(GDLMM_WXXFLAGS) -std=c++11 + libgdlmm_@GDLMM_API_VERSION@_la_SOURCES = $(binding_sources) + libgdlmm_@GDLMM_API_VERSION@_la_LDFLAGS = -no-undefined -version-info $(GDLMM_SO_VERSION) + libgdlmm_@GDLMM_API_VERSION@_la_LIBADD = $(GDLMM_LIBS) diff --git a/mingw-w64-gdlmm2/PKGBUILD b/mingw-w64-gdlmm2/PKGBUILD new file mode 100644 index 0000000000..cbc4ba01d2 --- /dev/null +++ b/mingw-w64-gdlmm2/PKGBUILD @@ -0,0 +1,53 @@ +# $Id$ +# Maintainer: Ricky Wu + +_realname=gdlmm2 +pkgbase=mingw-w64-${_realname} +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgver=2.30.0 +pkgrel=1 +pkgdesc="GNOME Docking Library (mingw-w64)" +arch=('any') +license=('LGPL 2') +url="http://www.gnome.org/" +depends=("${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-libxml2") +makedepends=("intltool" + "gtk-doc") +options=('strip' 'staticlibs') +source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname:0:5}/${pkgver:0:4}/${_realname:0:5}-${pkgver}.tar.gz + 000-C11.patch + ) +sha256sums=('34cbe104f5df9a20ea26aa8acca2b6d1a73035448aa854162c598e90f4e6ff80' + 'ba2f1eed43f926df573ec299b973929499e1da78c0f15157a4ec4ae40057afa1') + +prepare() { + cd "${srcdir}"/${_realname:0:5}-${pkgver} + + patch -b -V simple -p1 -i ${srcdir}/000-C11.patch +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + mkdir -p docs/reference/html + #cp -rf ../${_realname:0:5}-${pkgver}/docs/reference/html/* docs/reference/html + + ../${_realname:0:5}-${pkgver}/configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-static \ + --enable-shared + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname:0:5}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} From dd902bdfa673e9baeb7539a84fef1f67c0ae8f12 Mon Sep 17 00:00:00 2001 From: "ricky.wu" Date: Wed, 25 Nov 2015 22:27:27 +0800 Subject: [PATCH 1924/2060] gtksourceviewmm for gtk+-2.0 --- mingw-w64-gtksourceviewmm2/000-C11.patch | 24 ++++++++++++++ mingw-w64-gtksourceviewmm2/PKGBUILD | 42 ++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 mingw-w64-gtksourceviewmm2/000-C11.patch create mode 100644 mingw-w64-gtksourceviewmm2/PKGBUILD diff --git a/mingw-w64-gtksourceviewmm2/000-C11.patch b/mingw-w64-gtksourceviewmm2/000-C11.patch new file mode 100644 index 0000000000..312aee5833 --- /dev/null +++ b/mingw-w64-gtksourceviewmm2/000-C11.patch @@ -0,0 +1,24 @@ +diff -rup gtksourceviewmm-2.10.3/gtksourceview/gtksourceviewmm/Makefile.am gtksourceviewmm-2.10.3-ricky/gtksourceview/gtksourceviewmm/Makefile.am +--- gtksourceviewmm-2.10.3/gtksourceview/gtksourceviewmm/Makefile.am 2012-05-16 00:25:22.835335900 +0800 ++++ gtksourceviewmm-2.10.3-ricky/gtksourceview/gtksourceviewmm/Makefile.am 2015-10-23 14:59:11.329021800 +0800 +@@ -5,7 +5,7 @@ include $(srcdir)/filelist.am + include $(top_srcdir)/build/compile-binding.am + + AM_CPPFLAGS = $(binding_includes) $(binding_cppflags) $(GTHREAD_CFLAGS) $(GTKSOURCEVIEWMM_CFLAGS) +-AM_CXXFLAGS = $(GTKSOURCEVIEWMM_WXXFLAGS) ++AM_CXXFLAGS = $(GTKSOURCEVIEWMM_WXXFLAGS) -std=c++11 + + libgtksourceviewmm_@GTKSOURCEVIEWMM_API_VERSION@_la_SOURCES = $(binding_sources) + libgtksourceviewmm_@GTKSOURCEVIEWMM_API_VERSION@_la_LDFLAGS = -no-undefined -version-info $(GTKSOURCEVIEWMM_SO_VERSION) +diff -rup gtksourceviewmm-2.10.3/gtksourceview/gtksourceviewmm/Makefile.in gtksourceviewmm-2.10.3-ricky/gtksourceview/gtksourceviewmm/Makefile.in +--- gtksourceviewmm-2.10.3/gtksourceview/gtksourceviewmm/Makefile.in 2012-05-16 03:35:31.192869700 +0800 ++++ gtksourceviewmm-2.10.3-ricky/gtksourceview/gtksourceviewmm/Makefile.in 2015-10-23 14:59:54.278595300 +0800 +@@ -344,7 +344,7 @@ binding_private_HEADERS = $(files_built_ + binding_built_sources = $(files_built_cc) $(files_built_h) $(files_built_ph) + MAINTAINERCLEANFILES = $(binding_built_sources) $(addprefix $(srcdir)/,$(binding_built_sources)) + AM_CPPFLAGS = $(binding_includes) $(binding_cppflags) $(GTHREAD_CFLAGS) $(GTKSOURCEVIEWMM_CFLAGS) +-AM_CXXFLAGS = $(GTKSOURCEVIEWMM_WXXFLAGS) ++AM_CXXFLAGS = $(GTKSOURCEVIEWMM_WXXFLAGS) -std=c++11 + libgtksourceviewmm_@GTKSOURCEVIEWMM_API_VERSION@_la_SOURCES = $(binding_sources) + libgtksourceviewmm_@GTKSOURCEVIEWMM_API_VERSION@_la_LDFLAGS = -no-undefined -version-info $(GTKSOURCEVIEWMM_SO_VERSION) + libgtksourceviewmm_@GTKSOURCEVIEWMM_API_VERSION@_la_LIBADD = $(GTKSOURCEVIEWMM_LIBS) diff --git a/mingw-w64-gtksourceviewmm2/PKGBUILD b/mingw-w64-gtksourceviewmm2/PKGBUILD new file mode 100644 index 0000000000..57dc4f191c --- /dev/null +++ b/mingw-w64-gtksourceviewmm2/PKGBUILD @@ -0,0 +1,42 @@ +# Maintainer: Ricky Wu + +_realname=gtksourceviewmm +pkgbase="mingw-w64-${_realname}2" +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}2" +pkgver=2.10.3 +pkgrel=1 +pkgdesc="A text widget adding syntax highlighting and more to GNOME (mingw-w64)" +arch=('any') +url="http://www.gnome.org" +license=("GPL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "intltool") +depends=("${MINGW_PACKAGE_PREFIX}-gtk2>=2.22.0" + "${MINGW_PACKAGE_PREFIX}-libxml2>=2.7.7") +options=(!libtool strip staticlibs) +source=("http://ftp.gnome.org/pub/gnome/sources/gtksourceviewmm/${pkgver%.*}/gtksourceviewmm-${pkgver}.tar.xz" + 000-C11.patch) +md5sums=('1219ad1694df136f126507466aeb41aa') + +prepare() { + cd ${_realname}-${pkgver} + patch -b -V simple -p1 -i ${srcdir}/000-C11.patch +} + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --disable-static \ + --enable-compile-warnings=maximum + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make -j1 DESTDIR="${pkgdir}" install +} From 327ba5530636c67cbdbaa7ccc3752c3cecd8204c Mon Sep 17 00:00:00 2001 From: "ricky.wu" Date: Wed, 25 Nov 2015 22:28:53 +0800 Subject: [PATCH 1925/2060] glade3.8.5 for gtk+ 2.0 development --- mingw-w64-glade3/PKGBUILD | 66 ++++++++++++++++++++++++++ mingw-w64-glade3/glade3-i686.install | 11 +++++ mingw-w64-glade3/glade3-x86_64.install | 11 +++++ 3 files changed, 88 insertions(+) create mode 100644 mingw-w64-glade3/PKGBUILD create mode 100644 mingw-w64-glade3/glade3-i686.install create mode 100644 mingw-w64-glade3/glade3-x86_64.install diff --git a/mingw-w64-glade3/PKGBUILD b/mingw-w64-glade3/PKGBUILD new file mode 100644 index 0000000000..a34b047046 --- /dev/null +++ b/mingw-w64-glade3/PKGBUILD @@ -0,0 +1,66 @@ +# Maintainer: Ricky Wu + +_realname=glade +pkgbase="mingw-w64-${_realname}3" +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" +pkgver=3.8.5 +pkgrel=1 +pkgdesc="User interface builder for GTK+ and GNOME (mingw-w64)" +arch=('any') +url="http://glade.gnome.org" +license=("GPL" "LGPL") +options=('strip' '!debug' 'staticlibs') +depends=("${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-libxml2") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "gtk-doc" + "intltool" + "itstool" + "docbook-xsl") +optdepends=("${MINGW_PACKAGE_PREFIX}-python2: Python widgets support" + #'devhelp: help browser' + ) +url="http://glade.gnome.org/" +install=glade3-${CARCH}.install + +source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}3-${pkgver}.tar.xz + ) +md5sums=('2f446e84b399864c426679b89f250ecd' + '0605a5d30457be0cdf4061c07f1096f2' + 'fb4d5a33bbfea33b6437c85a9ac567c8' + '294197385457bdc58905a32b6d0e9e1e' + '3ebefeb0d48ff89f7992e5046ce9f09c' + '15aa17f408e551a19a5419d6db51a58a' + '48f5c9d78b9140d7e677a28a6d620ce3') + +prepare() { + cd "${srcdir}/${_realname}3-${pkgver}" + + autoreconf -fi +} + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p ${srcdir}/build-${MINGW_CHOST} + cd ${srcdir}/build-${MINGW_CHOST} + + mkdir -p data/icons + cp -rf ../${_realname}3-${pkgver}/data/icons/* data/icons + + PYTHON=${MINGW_PREFIX}/bin/python2 \ + ../${_realname}3-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --disable-static \ + --enable-shared \ + --disable-gtk-doc + + make VERBOSE=1 +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make -j1 DESTDIR="$pkgdir" install +} diff --git a/mingw-w64-glade3/glade3-i686.install b/mingw-w64-glade3/glade3-i686.install new file mode 100644 index 0000000000..da50a72875 --- /dev/null +++ b/mingw-w64-glade3/glade3-i686.install @@ -0,0 +1,11 @@ +post_install() { + mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/mingw-w64-glade3/glade3-x86_64.install b/mingw-w64-glade3/glade3-x86_64.install new file mode 100644 index 0000000000..4a2bb1bb75 --- /dev/null +++ b/mingw-w64-glade3/glade3-x86_64.install @@ -0,0 +1,11 @@ +post_install() { + mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} From 17e28f242cbf0bba882dc5ef967fec4d35f38c26 Mon Sep 17 00:00:00 2001 From: "ricky.wu" Date: Wed, 25 Nov 2015 22:29:51 +0800 Subject: [PATCH 1926/2060] sqlite3 gobject wrap api --- mingw-w64-sqlheavy/000-libvala.patch | 53 ++++++++++++++++++++++++++++ mingw-w64-sqlheavy/PKGBUILD | 53 ++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 mingw-w64-sqlheavy/000-libvala.patch create mode 100644 mingw-w64-sqlheavy/PKGBUILD diff --git a/mingw-w64-sqlheavy/000-libvala.patch b/mingw-w64-sqlheavy/000-libvala.patch new file mode 100644 index 0000000000..719b2c4d94 --- /dev/null +++ b/mingw-w64-sqlheavy/000-libvala.patch @@ -0,0 +1,53 @@ +diff -rup sqlheavy-0.1.1-org/configure.ac sqlheavy-0.1.1/configure.ac +--- sqlheavy-0.1.1-org/configure.ac 2012-04-30 14:40:31.000000000 +0800 ++++ sqlheavy-0.1.1/configure.ac 2015-10-22 15:49:22.821930100 +0800 +@@ -69,7 +69,7 @@ AC_SUBST(GMODULE_LIBS) + PKG_CHECK_MODULES(SQLITE3, sqlite3 >= $SQLITE3_REQUIRED) + AC_SUBST(SQLITE3_CFLAGS) + AC_SUBST(SQLITE3_LIBS) +-VALA_PACKAGE=libvala-0.16 ++VALA_PACKAGE=libvala-0.30 + PKG_CHECK_MODULES(VALA, $VALA_PACKAGE >= $VALA_REQUIRED) + AC_SUBST(VALA_PACKAGE) + AC_SUBST(VALA_CFLAGS) +@@ -114,6 +114,5 @@ AC_CONFIG_FILES([Makefile + gtk/sqlheavygtk-$SQLHEAVY_API_VERSION.deps + sqlheavy/Makefile + sqlheavy-$SQLHEAVY_API_VERSION.pc +- sqlheavygtk-$SQLHEAVY_API_VERSION.pc +- utils/Makefile]) ++ sqlheavygtk-$SQLHEAVY_API_VERSION.pc]) + AC_OUTPUT +diff -rup sqlheavy-0.1.1-org/Makefile.am sqlheavy-0.1.1/Makefile.am +--- sqlheavy-0.1.1-org/Makefile.am 2012-04-30 14:31:00.000000000 +0800 ++++ sqlheavy-0.1.1/Makefile.am 2015-10-22 15:56:23.703930100 +0800 +@@ -4,7 +4,6 @@ SUBDIRS = \ + sqlheavy \ + gtk \ + examples \ +- utils \ + docs \ + data \ + $(NULL) +diff -rup sqlheavy-0.1.1-org/Makefile.in sqlheavy-0.1.1/Makefile.in +--- sqlheavy-0.1.1-org/Makefile.in 2012-04-30 14:48:24.000000000 +0800 ++++ sqlheavy-0.1.1/Makefile.in 2015-10-22 15:59:59.598930100 +0800 +@@ -288,7 +288,6 @@ SUBDIRS = \ + sqlheavy \ + gtk \ + examples \ +- utils \ + docs \ + data \ + $(NULL) +diff -rup sqlheavy-0.1.1-org/sqlheavy/Makefile.am sqlheavy-0.1.1/sqlheavy/Makefile.am +--- sqlheavy-0.1.1-org/sqlheavy/Makefile.am 2012-04-30 14:31:00.000000000 +0800 ++++ sqlheavy-0.1.1/sqlheavy/Makefile.am 2015-10-22 15:54:41.399930100 +0800 +@@ -72,6 +72,7 @@ libsqlheavy@SQLHEAVY_API_VERSION@_la_CFL + $(NULL) + + libsqlheavy@SQLHEAVY_API_VERSION@_la_LDFLAGS = \ ++ -no-undefined \ + $(GIO_LIBS) \ + $(GLIB_LIBS) \ + $(GMODULE_LIBS) \ diff --git a/mingw-w64-sqlheavy/PKGBUILD b/mingw-w64-sqlheavy/PKGBUILD new file mode 100644 index 0000000000..31cc097e38 --- /dev/null +++ b/mingw-w64-sqlheavy/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer: Ricky Wu + +_realname=sqlheavy +pkgbase=mingw-w64-${_realname} +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgver=0.1.1 +pkgrel=1 +pkgdesc="GNOME Docking Library (mingw-w64)" +arch=('any') +license=('LGPL 2') +url="http://www.gnome.org/" +depends=("${MINGW_PACKAGE_PREFIX}-gtk2" + "${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-libxml2") +makedepends=("intltool" + "gtk-doc") +options=('strip' 'staticlibs') +source=(https://sqlheavy.googlecode.com/files/sqlheavy-0.1.1.tar.xz + 000-libvala.patch + ) +sha256sums=('34cbe104f5df9a20ea26aa8acca2b6d1a73035448aa854162c598e90f4e6ff80' + 'ba2f1eed43f926df573ec299b973929499e1da78c0f15157a4ec4ae40057afa1') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + + patch -b -V simple -p1 -i ${srcdir}/000-libvala.patch + + autoreconf -f -i +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + + cp -rf ../${_realname}-${pkgver}/* . + + ./configure \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --libexecdir=${MINGW_PREFIX}/lib + make +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} From cf36527209e017e430506413b6c17924f0e054a6 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Wed, 25 Nov 2015 16:47:36 -0800 Subject: [PATCH 1927/2060] mingw-w64-clang-svn: update to HEAD --- .../0000-Add-Clang-MinGW-w64-driver.patch.old | 753 ------------------ ...-x86-arch-name-to-i686-for-mingw-w64.patch | 26 - ...017-fix-dcelspec-for-mingw-and-cygwin.diff | 43 - ...FF-add-the-mingw-alias-for-ImageBase.patch | 24 - ...FF-add-the-mingw-alias-for-ImageBase.patch | 67 -- ...hLibrary-function-with-sysroot-suppo.patch | 102 --- ...4-GNU-add-support-for-linking-PECOFF.patch | 502 ------------ mingw-w64-clang-svn/PKGBUILD | 17 +- 8 files changed, 3 insertions(+), 1531 deletions(-) delete mode 100644 mingw-w64-clang-svn/0000-Add-Clang-MinGW-w64-driver.patch.old delete mode 100644 mingw-w64-clang-svn/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch delete mode 100644 mingw-w64-clang-svn/0017-fix-dcelspec-for-mingw-and-cygwin.diff delete mode 100644 mingw-w64-clang-svn/0031-COFF-add-the-mingw-alias-for-ImageBase.patch delete mode 100644 mingw-w64-clang-svn/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch delete mode 100644 mingw-w64-clang-svn/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch delete mode 100644 mingw-w64-clang-svn/0034-GNU-add-support-for-linking-PECOFF.patch diff --git a/mingw-w64-clang-svn/0000-Add-Clang-MinGW-w64-driver.patch.old b/mingw-w64-clang-svn/0000-Add-Clang-MinGW-w64-driver.patch.old deleted file mode 100644 index 92c27df01b..0000000000 --- a/mingw-w64-clang-svn/0000-Add-Clang-MinGW-w64-driver.patch.old +++ /dev/null @@ -1,753 +0,0 @@ -From 7d9fedef6c647c42304ed38a239cd99940635af7 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Tue, 24 Mar 2015 15:02:53 +0000 -Subject: [PATCH] Add Clang MinGW-w64 driver - -This adds the MinGW-w64 driver to clang with the -new triplets compnerd introduced to clang. Based -off of rubenvb's driver patch from January 2014. - -Update: - -March 2015: removed seh code as clang detects itself as of commit b27216c - updated to head - -May 2015: added support for thumb2pe and lld (forgot to commit so redone this again) - -June 2015: updated to head to prepare for 3.7 release - we may need to remove pic code for x64 because it it detected in the base class now on head ??? - -July 2015: now supports compiler rt and passing of --rtlib= where libgcc is now legacy mode :) - -diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td -index 4eb5647..a6ada2c 100644 ---- a/include/clang/Driver/Options.td -+++ b/include/clang/Driver/Options.td -@@ -1153,6 +1153,11 @@ def march_EQ : Joined<["-"], "march=">, Group; - def masm_EQ : Joined<["-"], "masm=">, Group, Flags<[DriverOption]>; - def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group; - def mconstant_cfstrings : Flag<["-"], "mconstant-cfstrings">, Group; -+def mconsole : Joined<["-"], "mconsole">, Group, Flags<[DriverOption]>; -+def mwindows : Joined<["-"], "mwindows">, Group, Flags<[DriverOption]>; -+def mdll : Joined<["-"], "mdll">, Group, Flags<[DriverOption]>; -+def municode : Joined<["-"], "municode">, Group, Flags<[DriverOption]>; -+def mthreads : Joined<["-"], "mthreads">, Group, Flags<[DriverOption]>; - def mcpu_EQ : Joined<["-"], "mcpu=">, Group; - def mdynamic_no_pic : Joined<["-"], "mdynamic-no-pic">, Group; - def mfix_and_continue : Flag<["-"], "mfix-and-continue">, Group; -@@ -1522,6 +1527,7 @@ def private__bundle : Flag<["-"], "private_bundle">; - def pthreads : Flag<["-"], "pthreads">; - def pthread : Flag<["-"], "pthread">, Flags<[CC1Option]>, - HelpText<"Support POSIX threads in generated code">; -+def no_pthread : Flag<["-"], "no-pthread">, Flags<[CC1Option]>; - def p : Flag<["-"], "p">; - def pie : Flag<["-"], "pie">; - def read__only__relocs : Separate<["-"], "read_only_relocs">; -diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt -index 412840b..8d88f96 100644 ---- a/lib/Driver/CMakeLists.txt -+++ b/lib/Driver/CMakeLists.txt -@@ -12,6 +12,7 @@ add_clang_library(clangDriver - Job.cpp - Multilib.cpp - MSVCToolChain.cpp -+ MinGWToolChain.cpp - Phases.cpp - SanitizerArgs.cpp - Tool.cpp -diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index 5451132..54df2f8 100644 ---- a/lib/Driver/Driver.cpp -+++ b/lib/Driver/Driver.cpp -@@ -2053,12 +2053,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, - TC = new toolchains::Generic_GCC(*this, Target, Args); - break; - case llvm::Triple::GNU: -- // FIXME: We need a MinGW toolchain. Use the default Generic_GCC -- // toolchain for now as the default case would below otherwise. -- if (Target.isOSBinFormatELF()) -- TC = new toolchains::Generic_ELF(*this, Target, Args); -- else -- TC = new toolchains::Generic_GCC(*this, Target, Args); -+ TC = new toolchains::MinGW(*this, Target, Args); - break; - case llvm::Triple::Itanium: - TC = new toolchains::CrossWindowsToolChain(*this, Target, Args); -diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp -new file mode 100644 -index 0000000..9828726 ---- /dev/null -+++ b/lib/Driver/MinGWToolChain.cpp -@@ -0,0 +1,191 @@ -+//===--- MinGWToolChain.cpp - MinGWToolChain Implementation -----------------------===// -+// -+// The LLVM Compiler Infrastructure -+// -+// This file is distributed under the University of Illinois Open Source -+// License. See LICENSE.TXT for details. -+// -+//===----------------------------------------------------------------------===// -+ -+#include "ToolChains.h" -+#include "clang/Basic/CharInfo.h" -+#include "clang/Basic/DiagnosticIDs.h" -+#include "clang/Basic/Version.h" -+#include "clang/Driver/Compilation.h" -+#include "clang/Driver/Driver.h" -+#include "clang/Driver/DriverDiagnostic.h" -+#include "clang/Driver/Options.h" -+#include "llvm/Option/Arg.h" -+#include "llvm/Option/ArgList.h" -+#include "llvm/Support/ErrorHandling.h" -+#include "llvm/Support/FileSystem.h" -+#include "llvm/Support/Path.h" -+ -+using namespace clang::diag; -+using namespace clang::driver; -+using namespace clang::driver::toolchains; -+using namespace clang; -+using namespace llvm::opt; -+ -+MinGW::MinGW(const Driver &D, const llvm::Triple& Triple, -+ const ArgList &Args) -+ : ToolChain(D, Triple, Args) { -+ //TODO: libc++ directory -+ -+ // Get GCC version string for library and header directories -+ const std::string GCClibdir = -+#ifdef LLVM_ON_WIN32 -+ getDriver().Dir + "/../lib/gcc/" + getTriple().getArchName().str() + "-w64-mingw32"; -+#else -+ getDriver().SysRoot + "/usr/lib/gcc/" + getTriple().getArchName().str() + "-w64-mingw32"; -+#endif -+ if (llvm::sys::fs::exists(GCClibdir)) { -+ // Find subdirectory, should be the version of MinGW-w64 GCC -+ std::error_code EC; -+ llvm::sys::fs::directory_iterator entry(StringRef(GCClibdir), EC); -+ if (!EC) -+ GCCVersion = llvm::sys::path::filename(entry->path()); -+ // TODO report error: "no MinGW-w64 GCC installation found" -+ } -+ -+#ifdef LLVM_ON_WIN32 -+ // assume sysrooted compiler -+ getFilePaths().push_back(getDriver().Dir + "/../lib"); -+ getFilePaths().push_back(getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/lib"); -+ getFilePaths().push_back(getDriver().Dir + "/../lib/gcc/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/" + GCCVersion); -+ -+#else -+ // assume install prefix /usr -+ getFilePaths().push_back(getDriver().SysRoot + "/usr/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/lib"); -+ getFilePaths().push_back(getDriver().SysRoot + "/usr/lib/gcc/" -+ + getTriple().getArchName().str() + "-w64-mingw32" + "/" + GCCVersion); -+#endif -+} -+ -+Tool *MinGW::buildLinker() const { -+ return new tools::MinGW::Link(*this); -+} -+ -+bool MinGW::IsIntegratedAssemblerDefault() const { -+ return true; -+} -+ -+Tool *MinGW::getTool(Action::ActionClass AC) const { -+ switch (AC) { -+ case Action::PreprocessJobClass: -+ if (!Preprocess) -+ Preprocess.reset(new tools::gcc::Preprocessor(*this)); -+ return Preprocess.get(); -+ case Action::CompileJobClass: -+ if (!Compile) -+ Compile.reset(new tools::gcc::Compiler(*this)); -+ return Compile.get(); -+ default: -+ return ToolChain::getTool(AC); -+ } -+} -+ -+Tool *MinGW::buildAssembler() const { -+ return new tools::MinGW::Assemble(*this); -+} -+ -+bool MinGW::IsUnwindTablesDefault() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+bool MinGW::isPICDefault() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+bool MinGW::isPIEDefault() const { -+ return false; -+} -+ -+ -+bool MinGW::isPICDefaultForced() const { -+ return getArch() == llvm::Triple::x86_64; -+} -+ -+void MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, -+ ArgStringList &CC1Args) const { -+ if (DriverArgs.hasArg(options::OPT_nostdinc)) -+ return; -+ -+ if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { -+ SmallString<128> P(getDriver().ResourceDir); -+ llvm::sys::path::append(P, "include"); -+ addSystemInclude(DriverArgs, CC1Args, P.str()); -+ } -+ -+ if (DriverArgs.hasArg(options::OPT_nostdlibinc)) -+ return; -+ -+#ifdef LLVM_ON_WIN32 -+ // Clang runs on Windows, assume sysroot toolchain -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include"); -+ // Add users standard include directory -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include"); -+#else -+ // Clang runs somewhere else, e.g. Linux, assume install prefix /usr -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include"); -+#endif -+} -+ -+void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, -+ ArgStringList &CC1Args) const { -+ if (DriverArgs.hasArg(options::OPT_nostdlibinc) || -+ DriverArgs.hasArg(options::OPT_nostdincxx)) -+ return; -+ -+ // Check if libc++ has been enabled and provide its include paths if so. -+ if (GetCXXStdlibType(DriverArgs) == ToolChain::CST_Libcxx) { -+ // libc++ is always installed at a fixed path on Linux currently. -+#ifdef LLVM_ON_WIN32 -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/v1"); -+#else -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/include/c++/v1"); -+#endif -+ return; -+ } -+#ifdef LLVM_ON_WIN32 -+ // Assume sysroot toolchain -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion -+ + "/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../include/c++/" + GCCVersion -+ + "/backward"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().Dir + "/../" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/backward"); -+#else -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion -+ + "/" + getTriple().getArchName().str() + "-w64-mingw32"); -+ addSystemInclude(DriverArgs, CC1Args, -+ getDriver().SysRoot + "/usr/" + getTriple().getArchName().str() + "-w64-mingw32" -+ + "/include/c++/" + GCCVersion + "/backward"); -+#endif -+} -diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h -index 4f50af0..9896024 100644 ---- a/lib/Driver/ToolChains.h -+++ b/lib/Driver/ToolChains.h -@@ -525,6 +525,35 @@ protected: - Tool *buildLinker() const override; - }; - -+class LLVM_LIBRARY_VISIBILITY MinGW : public ToolChain { -+public: -+ MinGW(const Driver &D, const llvm::Triple &Triple, -+ const llvm::opt::ArgList &Args); -+ -+ bool IsIntegratedAssemblerDefault() const override; -+ bool IsUnwindTablesDefault() const override; -+ bool isPICDefault() const override; -+ bool isPIEDefault() const override; -+ bool isPICDefaultForced() const override; -+ -+ void -+ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, -+ llvm::opt::ArgStringList &CC1Args) const override; -+ void -+ AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, -+ llvm::opt::ArgStringList &CC1Args) const override; -+ -+protected: -+ Tool *buildLinker() const override; -+ Tool *buildAssembler() const override; -+ Tool *getTool(Action::ActionClass AC) const override; -+ -+private: -+ std::string GCCVersion; -+ mutable std::unique_ptr Preprocess; -+ mutable std::unique_ptr Compile; -+}; -+ - class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic_ELF { - public: - OpenBSD(const Driver &D, const llvm::Triple &Triple, -diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp -index 1b990cf..4afb55b 100644 ---- a/lib/Driver/Tools.cpp -+++ b/lib/Driver/Tools.cpp -@@ -2209,9 +2209,8 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, - - // Until ARM libraries are build separately, we have them all in one library - static StringRef getArchNameForCompilerRTLib(const ToolChain &TC) { -- // FIXME: handle 64-bit -- if (TC.getTriple().isOSWindows() && -- !TC.getTriple().isWindowsItaniumEnvironment()) -+ if (TC.getTriple().isWindowsMSVCEnvironment() && -+ TC.getArch() == llvm::Triple::x86) - return "i386"; - if (TC.getArch() == llvm::Triple::arm || TC.getArch() == llvm::Triple::armeb) - return "arm"; -@@ -2236,10 +2235,12 @@ static SmallString<128> getCompilerRT(const ToolChain &TC, StringRef Component, - : ""; - - bool IsOSWindows = TC.getTriple().isOSWindows(); -+ bool IsITANMSVCWindows = TC.getTriple().isWindowsMSVCEnvironment() || -+ TC.getTriple().isWindowsItaniumEnvironment(); - StringRef Arch = getArchNameForCompilerRTLib(TC); -- const char *Prefix = IsOSWindows ? "" : "lib"; -+ const char *Prefix = IsITANMSVCWindows ? "" : "lib"; - const char *Suffix = -- Shared ? (IsOSWindows ? ".dll" : ".so") : (IsOSWindows ? ".lib" : ".a"); -+ Shared ? (IsOSWindows ? ".dll" : ".so") : (IsITANMSVCWindows ? ".lib" : ".a"); - - SmallString<128> Path = getCompilerRTLibDir(TC); - llvm::sys::path::append(Path, Prefix + Twine("clang_rt.") + Component + "-" + -@@ -8774,6 +8775,241 @@ std::unique_ptr visualstudio::Compiler::GetCommand( - CmdArgs); - } - -+/// MinGW Tools -+void MinGW::Assemble::ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const ArgList &Args, -+ const char *LinkingOutput) const { -+ ArgStringList CmdArgs; -+ -+ if (getToolChain().getArch() == llvm::Triple::x86) { -+ CmdArgs.push_back("--32"); -+ } else if (getToolChain().getArch() == llvm::Triple::x86_64) { -+ CmdArgs.push_back("--64"); -+ } -+ -+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, -+ options::OPT_Xassembler); -+ -+ CmdArgs.push_back("-o"); -+ CmdArgs.push_back(Output.getFilename()); -+ -+ for (const auto &II : Inputs) -+ CmdArgs.push_back(II.getFilename()); -+ -+ const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as")); -+ C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); -+ -+ if (Args.hasArg(options::OPT_gsplit_dwarf)) -+ SplitDebugInfo(getToolChain(), C, *this, JA, Args, Output, -+ SplitDebugName(Args, Inputs[0])); -+} -+ -+void MinGW::Link::AddRuntime(const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs) const { -+ if (Args.hasArg(options::OPT_mthreads)) -+ CmdArgs.push_back("-lmingwthrd"); -+ -+ CmdArgs.push_back("-lmingw32"); -+ -+ StringRef Runtime = Args.getLastArgValue(options::OPT_rtlib_EQ, "compiler-rt"); -+ if (Runtime.equals_lower("compiler-rt")) -+ CmdArgs.push_back(Args.MakeArgString(getCompilerRT(TC, "builtins"))); -+ -+ // you need to pass --rtlib=libgcc for legacy mode -+ if (Runtime.equals_lower("libgcc")) { -+ if (Args.hasArg(options::OPT_shared) || -+ Args.hasArg(options::OPT_shared_libgcc)) { -+ CmdArgs.push_back("-lgcc_s"); -+ CmdArgs.push_back("-lgcc"); -+ } else { -+ CmdArgs.push_back("-lgcc"); -+ CmdArgs.push_back("-lgcc_eh"); -+ } -+ } -+ -+ CmdArgs.push_back("-lmoldname"); -+ CmdArgs.push_back("-lmingwex"); -+ CmdArgs.push_back("-lmsvcrt"); -+} -+ -+void MinGW::Link::ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const ArgList &Args, -+ const char *LinkingOutput) const { -+ const ToolChain &TC = getToolChain(); -+ const Driver &D = TC.getDriver(); -+ //const SanitizerArgs &Sanitize = TC.getSanitizerArgs(); -+ -+ ArgStringList CmdArgs; -+ -+ // Silence warning for "clang -g foo.o -o foo" -+ Args.ClaimAllArgs(options::OPT_g_Group); -+ // and "clang -emit-llvm foo.o -o foo" -+ Args.ClaimAllArgs(options::OPT_emit_llvm); -+ // and for "clang -w foo.o -o foo". Other warning options are already -+ // handled somewhere else. -+ Args.ClaimAllArgs(options::OPT_w); -+ -+ // We default to lld and not ld because we are badass like that :) -+ StringRef Linker = Args.getLastArgValue(options::OPT_fuse_ld_EQ, "lld"); -+ if (Linker.equals_lower("lld")) { -+ CmdArgs.push_back("-flavor"); -+ CmdArgs.push_back("gnu"); -+ } -+ -+ if (!D.SysRoot.empty()) -+ CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); -+ -+ if (Args.hasArg(options::OPT_s)) -+ CmdArgs.push_back("-s"); -+ -+ CmdArgs.push_back("-m"); -+ switch (TC.getArch()) { -+ default: -+ llvm_unreachable("unsupported architecture"); -+ case llvm::Triple::arm: -+ case llvm::Triple::thumb: -+ CmdArgs.push_back("thumb2pe"); -+ break; -+ case llvm::Triple::x86: -+ CmdArgs.push_back("i386pe"); -+ break; -+ case llvm::Triple::x86_64: -+ CmdArgs.push_back("i386pep"); -+ break; -+ } -+ -+ if (Args.hasArg(options::OPT_mwindows)) { -+ CmdArgs.push_back("--subsystem"); -+ CmdArgs.push_back("windows"); -+ } else if (Args.hasArg(options::OPT_mconsole)) { -+ CmdArgs.push_back("--subsystem"); -+ CmdArgs.push_back("console"); -+ } -+ -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("-Bstatic"); -+ else { -+ if (Args.hasArg(options::OPT_mdll)) -+ CmdArgs.push_back("--dll"); -+ else if (Args.hasArg(options::OPT_shared)) -+ CmdArgs.push_back("--shared"); -+ CmdArgs.push_back("-Bdynamic"); -+ if (Args.hasArg(options::OPT_mdll) || Args.hasArg(options::OPT_shared)) { -+ CmdArgs.push_back("-e"); -+ if (TC.getArch() == llvm::Triple::x86) -+ CmdArgs.push_back("_DllMainCRTStartup@12"); -+ else -+ CmdArgs.push_back("DllMainCRTStartup"); -+ CmdArgs.push_back("--enable-auto-image-base"); -+ } -+ } -+ -+ CmdArgs.push_back("-o"); -+ CmdArgs.push_back(Output.getFilename()); -+ -+ Args.AddAllArgs(CmdArgs, options::OPT_e); -+ // FIXME: add -N, -n flags -+ Args.AddLastArg(CmdArgs, options::OPT_r); -+ Args.AddLastArg(CmdArgs, options::OPT_s); -+ Args.AddLastArg(CmdArgs, options::OPT_t); -+ Args.AddAllArgs(CmdArgs, options::OPT_u_Group); -+ Args.AddLastArg(CmdArgs, options::OPT_Z_Flag); -+ -+ if (!Args.hasArg(options::OPT_nostdlib) && -+ !Args.hasArg(options::OPT_nostartfiles)) { -+ if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_mdll)) { -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("dllcrt2.o"))); -+ } else { -+ if (Args.hasArg(options::OPT_municode)) -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crt2u.o"))); -+ else -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crt2.o"))); -+ } -+ if (Args.hasArg(options::OPT_pg)) -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("gcrt2.o"))); -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtbegin.o"))); -+ } -+ -+ Args.AddAllArgs(CmdArgs, options::OPT_L); -+ const ToolChain::path_list Paths = TC.getFilePaths(); -+ for (const auto &Path : Paths) -+ CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + Path)); -+ -+ AddLinkerInputs(TC, Inputs, Args, CmdArgs); -+ -+ // TODO: Add ASan stuff here -+ -+ // TODO: Add profile stuff here -+ -+ if (D.CCCIsCXX() && -+ !Args.hasArg(options::OPT_nostdlib) && -+ !Args.hasArg(options::OPT_nodefaultlibs)) { -+ bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) && -+ !Args.hasArg(options::OPT_static); -+ if (OnlyLibstdcxxStatic) -+ CmdArgs.push_back("-Bstatic"); -+ TC.AddCXXStdlibLibArgs(Args, CmdArgs); -+ if (OnlyLibstdcxxStatic) -+ CmdArgs.push_back("-Bdynamic"); -+ } -+ -+ if (!Args.hasArg(options::OPT_nostdlib)) { -+ if (!Args.hasArg(options::OPT_nodefaultlibs)) { -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("--start-group"); -+ -+ if (Args.hasArg(options::OPT_fstack_protector) || -+ Args.hasArg(options::OPT_fstack_protector_strong) || -+ Args.hasArg(options::OPT_fstack_protector_all)) { -+ CmdArgs.push_back("-lssp_nonshared"); -+ CmdArgs.push_back("-lssp"); -+ } -+ if (Args.hasArg(options::OPT_fopenmp)) -+ CmdArgs.push_back("-lgomp"); -+ -+ AddRuntime(TC, Args, CmdArgs); -+ -+ if (Args.hasArg(options::OPT_pg)) -+ CmdArgs.push_back("-lgmon"); -+ -+ // Currently required for OpenMP and posix-threading libgcc -+ if (!Args.hasArg(options::OPT_no_pthread)) -+ CmdArgs.push_back("-lpthread"); -+ -+ // add system libraries -+ if (Args.hasArg(options::OPT_mwindows)) { -+ CmdArgs.push_back("-lgdi32"); -+ CmdArgs.push_back("-lcomdlg32"); -+ } -+ CmdArgs.push_back("-ladvapi32"); -+ CmdArgs.push_back("-lshell32"); -+ CmdArgs.push_back("-luser32"); -+ CmdArgs.push_back("-lkernel32"); -+ -+ if (Args.hasArg(options::OPT_static)) -+ CmdArgs.push_back("--end-group"); -+ else //lld is more robust at looking up symbols -+ if (Linker.equals_lower("ld")) -+ AddRuntime(TC, Args, CmdArgs); -+ } -+ -+ if (!Args.hasArg(options::OPT_nostartfiles)) { -+ // Add crtfastmath.o if available and fast math is enabled. -+ TC.AddFastMathRuntimeIfAvailable(Args, CmdArgs); -+ -+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend.o"))); -+ } -+ } -+ -+ const char *Exec = -+ Args.MakeArgString(TC.GetProgramPath(Linker.data())); -+ C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs)); -+ -+} -+ - /// XCore Tools - // We pass assemble and link construction to the xcc tool. - -diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h -index d57df1c..41636c5 100644 ---- a/lib/Driver/Tools.h -+++ b/lib/Driver/Tools.h -@@ -672,6 +672,39 @@ public: - }; - } // end namespace visualstudio - -+ /// MinGW -- Directly call GNU Binutils assembler and linker -+namespace MinGW { -+ class LLVM_LIBRARY_VISIBILITY Assemble : public Tool { -+ public: -+ Assemble(const ToolChain &TC) : Tool("MinGW::Assemble", "assembler", -+ TC) {} -+ -+ bool hasIntegratedCPP() const override { return false; } -+ -+ void ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const llvm::opt::ArgList &TCArgs, -+ const char *LinkingOutput) const override; -+ }; -+ -+ class LLVM_LIBRARY_VISIBILITY Link : public Tool { -+ public: -+ Link(const ToolChain &TC) : Tool("MinGW::Link", "linker", TC) {} -+ -+ bool hasIntegratedCPP() const override { return false; } -+ bool isLinkJob() const override { return true; } -+ -+ void ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const llvm::opt::ArgList &TCArgs, -+ const char *LinkingOutput) const override; -+ private: -+ void AddRuntime(const ToolChain &TC, const llvm::opt::ArgList &Args, ArgStringList &CmdArgs) const; -+ }; -+} // end namespace MinGW -+ - namespace arm { - StringRef getARMFloatABI(const Driver &D, const llvm::opt::ArgList &Args, - const llvm::Triple &Triple); -diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp -index bf8470e..ab81a54 100644 ---- a/lib/Frontend/InitHeaderSearch.cpp -+++ b/lib/Frontend/InitHeaderSearch.cpp -@@ -82,11 +82,6 @@ public: - StringRef Arch, - StringRef Version); - -- /// AddMinGW64CXXPaths - Add the necessary paths to support -- /// libstdc++ of x86_64-w64-mingw32 aka mingw-w64. -- void AddMinGW64CXXPaths(StringRef Base, -- StringRef Version); -- - // AddDefaultCIncludePaths - Add paths that should always be searched. - void AddDefaultCIncludePaths(const llvm::Triple &triple, - const HeaderSearchOptions &HSOpts); -@@ -208,18 +203,6 @@ void InitHeaderSearch::AddMinGWCPlusPlusIncludePaths(StringRef Base, - CXXSystem, false); - } - --void InitHeaderSearch::AddMinGW64CXXPaths(StringRef Base, -- StringRef Version) { -- // Assumes Base is HeaderSearchOpts' ResourceDir -- AddPath(Base + "/../../../include/c++/" + Version, -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/x86_64-w64-mingw32", -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/i686-w64-mingw32", -- CXXSystem, false); -- AddPath(Base + "/../../../include/c++/" + Version + "/backward", -- CXXSystem, false); --} - - void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - const HeaderSearchOptions &HSOpts) { -@@ -233,6 +216,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - case llvm::Triple::OpenBSD: - case llvm::Triple::Bitrig: - case llvm::Triple::NaCl: -+ case llvm::Triple::Win32: - break; - default: - // FIXME: temporary hack: hard-coded paths. -@@ -271,7 +255,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - switch (os) { - case llvm::Triple::Linux: - llvm_unreachable("Include management is handled in the driver."); -- -+ break; - case llvm::Triple::CloudABI: { - // //include - SmallString<128> P = StringRef(HSOpts.ResourceDir); -@@ -319,30 +303,12 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - case llvm::Triple::Win32: - switch (triple.getEnvironment()) { - default: llvm_unreachable("Include management is handled in the driver."); -+ break; - case llvm::Triple::Cygnus: - AddPath("/usr/include/w32api", System, false); -+ AddPath("/usr/include", ExternCSystem, false); - break; - case llvm::Triple::GNU: -- // mingw-w64 crt include paths -- // /i686-w64-mingw32/include -- SmallString<128> P = StringRef(HSOpts.ResourceDir); -- llvm::sys::path::append(P, "../../../i686-w64-mingw32/include"); -- AddPath(P, System, false); -- -- // /x86_64-w64-mingw32/include -- P.resize(HSOpts.ResourceDir.size()); -- llvm::sys::path::append(P, "../../../x86_64-w64-mingw32/include"); -- AddPath(P, System, false); -- -- // mingw.org crt include paths -- // /include -- P.resize(HSOpts.ResourceDir.size()); -- llvm::sys::path::append(P, "../../../include"); -- AddPath(P, System, false); -- AddPath("/mingw/include", System, false); --#if defined(LLVM_ON_WIN32) -- AddPath("c:/mingw/include", System, false); --#endif - break; - } - break; -@@ -354,6 +320,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - case llvm::Triple::CloudABI: - case llvm::Triple::RTEMS: - case llvm::Triple::NaCl: -+ case llvm::Triple::Win32: - break; - default: - AddPath("/usr/include", ExternCSystem, false); -@@ -420,26 +387,9 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp - AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.2"); - break; - case llvm::Triple::GNU: -- // mingw-w64 C++ include paths (i686-w64-mingw32 and x86_64-w64-mingw32) -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.0"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.1"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.2"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.3"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.0"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.1"); -- AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.8.2"); -- // mingw.org C++ include paths --#if defined(LLVM_ON_WIN32) -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.0"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.1"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.2"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.7.3"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.0"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.1"); -- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.8.2"); --#endif - break; - } -+ break; - case llvm::Triple::DragonFly: - if (llvm::sys::fs::exists("/usr/lib/gcc47")) - AddPath("/usr/include/c++/4.7", CXXSystem, false); --- -2.4.5 - diff --git a/mingw-w64-clang-svn/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch b/mingw-w64-clang-svn/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch deleted file mode 100644 index 90824a9c31..0000000000 --- a/mingw-w64-clang-svn/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 57def79f5d6e97f5b353b22a5fb856e627cdf061 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Sun, 28 Jun 2015 19:12:19 +0100 -Subject: [PATCH] Set the x86 arch name to i686 for mingw-w64 - - -diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index 5451132..a6852b6 100644 ---- a/lib/Driver/Driver.cpp -+++ b/lib/Driver/Driver.cpp -@@ -1991,6 +1991,12 @@ static llvm::Triple computeTargetTriple(StringRef DefaultTargetTriple, - - if (AT != llvm::Triple::UnknownArch && AT != Target.getArch()) - Target.setArch(AT); -+ -+ // Override the default ArchName of 'i386' for mingw-w64 targets when passed -m32. -+ if (AT == llvm::Triple::x86 && Target.isWindowsGNUEnvironment() && -+ Target.getVendorName().equals(StringRef("w64"))) -+ Target.setArchName(StringRef("i686")); -+ - } - - return Target; --- -2.4.5 - diff --git a/mingw-w64-clang-svn/0017-fix-dcelspec-for-mingw-and-cygwin.diff b/mingw-w64-clang-svn/0017-fix-dcelspec-for-mingw-and-cygwin.diff deleted file mode 100644 index 8777100573..0000000000 --- a/mingw-w64-clang-svn/0017-fix-dcelspec-for-mingw-and-cygwin.diff +++ /dev/null @@ -1,43 +0,0 @@ -r238238 breaks mingw-w64 and cygwin __declspec -http://comments.gmane.org/gmane.comp.compilers.clang.scm/123167 -Temp patch to hack around it - -diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp -index 33382ce..d89317f 100644 ---- a/lib/Basic/Targets.cpp -+++ b/lib/Basic/Targets.cpp -@@ -3595,11 +3595,8 @@ public: - }; - } // end anonymous namespace - --static void addMinGWDefines(const LangOptions &Opts, MacroBuilder &Builder) { -- Builder.defineMacro("__MSVCRT__"); -- Builder.defineMacro("__MINGW32__"); -- -- // Mingw defines __declspec(a) to __attribute__((a)). Clang supports -+static void addCygMingDefines(const LangOptions &Opts, MacroBuilder &Builder) { -+ // Mingw and cygwin define __declspec(a) to __attribute__((a)). Clang supports - // __declspec natively under -fms-extensions, but we define a no-op __declspec - // macro anyway for pre-processor compatibility. - if (Opts.MicrosoftExt) -@@ -3622,6 +3619,12 @@ static void addMinGWDefines(const LangOptions &Opts, MacroBuilder &Builder) { - } - } - -+static void addMinGWDefines(const LangOptions &Opts, MacroBuilder &Builder) { -+ Builder.defineMacro("__MSVCRT__"); -+ Builder.defineMacro("__MINGW32__"); -+ addCygMingDefines(Opts, Builder); -+} -+ - namespace { - // x86-32 MinGW target - class MinGWX86_32TargetInfo : public WindowsX86_32TargetInfo { -@@ -3654,6 +3657,7 @@ public: - Builder.defineMacro("_X86_"); - Builder.defineMacro("__CYGWIN__"); - Builder.defineMacro("__CYGWIN32__"); -+ addCygMingDefines(Opts, Builder); - DefineStd(Builder, "unix", Opts); - if (Opts.CPlusPlus) - Builder.defineMacro("_GNU_SOURCE"); \ No newline at end of file diff --git a/mingw-w64-clang-svn/0031-COFF-add-the-mingw-alias-for-ImageBase.patch b/mingw-w64-clang-svn/0031-COFF-add-the-mingw-alias-for-ImageBase.patch deleted file mode 100644 index b609b3b97a..0000000000 --- a/mingw-w64-clang-svn/0031-COFF-add-the-mingw-alias-for-ImageBase.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0d44d5c00062f57a17eec0ca61e6590ab09d816d Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Mon, 8 Jun 2015 02:14:25 +0100 -Subject: [PATCH 1/4] COFF: add the mingw alias for ImageBase - ---- - COFF/SymbolTable.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/COFF/SymbolTable.cpp b/COFF/SymbolTable.cpp -index a90e208..e301b6a 100644 ---- a/COFF/SymbolTable.cpp -+++ b/COFF/SymbolTable.cpp -@@ -23,6 +23,7 @@ namespace coff { - - SymbolTable::SymbolTable() { - resolve(new (Alloc) DefinedAbsolute("__ImageBase", Config->ImageBase)); -+ resolve(new (Alloc) DefinedAbsolute("__image_base__", Config->ImageBase)); - if (!Config->EntryName.empty()) - resolve(new (Alloc) Undefined(Config->EntryName)); - } --- -2.3.3 - diff --git a/mingw-w64-clang-svn/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch b/mingw-w64-clang-svn/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch deleted file mode 100644 index 2a96e24bd1..0000000000 --- a/mingw-w64-clang-svn/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch +++ /dev/null @@ -1,67 +0,0 @@ -From dd9f24a90e6f4cbe251280c40d61a99f7ffaee38 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Mon, 8 Jun 2015 02:17:26 +0100 -Subject: [PATCH 2/4] PECOFF: add the mingw alias for ImageBase - ---- - lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h | 10 +++++++--- - lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp | 2 +- - lib/ReaderWriter/PECOFF/WriterPECOFF.cpp | 4 +++- - 3 files changed, 11 insertions(+), 5 deletions(-) - -diff --git a/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h b/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h -index cfa66bf..21186f3 100644 ---- a/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h -+++ b/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h -@@ -97,13 +97,17 @@ class LinkerGeneratedSymbolFile : public SimpleFile { - public: - LinkerGeneratedSymbolFile(const PECOFFLinkingContext &ctx) - : SimpleFile(""), -- _imageBaseAtom(*this, ctx.decorateSymbol("__ImageBase"), -+ _imageBaseAtomMSVC(*this, ctx.decorateSymbol("__ImageBase"), -+ Atom::scopeGlobal, ctx.getBaseAddress()), -+ _imageBaseAtomGNU(*this, ctx.decorateSymbol("__image_base__"), - Atom::scopeGlobal, ctx.getBaseAddress()) { -- addAtom(_imageBaseAtom); -+ addAtom(_imageBaseAtomMSVC); -+ addAtom(_imageBaseAtomGNU); - }; - - private: -- SimpleAbsoluteAtom _imageBaseAtom; -+ SimpleAbsoluteAtom _imageBaseAtomMSVC; -+ SimpleAbsoluteAtom _imageBaseAtomGNU; - }; - - // A LocallyImporteSymbolFile is an archive file containing __imp_ -diff --git a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp -index ebd42f8..2bd0e9c 100644 ---- a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp -+++ b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp -@@ -146,7 +146,7 @@ void PECOFFLinkingContext::createImplicitFiles( - llvm::make_unique(*this))); - members.insert(members.begin() + getGroupStartPos(members), std::move(entry)); - -- // Create a file for __ImageBase. -+ // Create a file for __ImageBase and __image_base__. - std::unique_ptr fileNode(new FileNode( - llvm::make_unique(*this))); - members.push_back(std::move(fileNode)); -diff --git a/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp b/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp -index 8c3aac0..63d0dad 100644 ---- a/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp -+++ b/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp -@@ -791,7 +791,9 @@ void AtomChunk::addBaseRelocations(std::vector &relocSites) const { - // because that's relative to run-time image base address. - if (auto *abs = dyn_cast(ref->target())) - if (!abs->name().equals("__ImageBase") && -- !abs->name().equals("___ImageBase")) -+ !abs->name().equals("___ImageBase") && -+ !abs->name().equals("__image_base__") && -+ !abs->name().equals("___image_base__")) - continue; - - uint64_t address = layout->_virtualAddr + ref->offsetInAtom(); --- -2.3.3 - diff --git a/mingw-w64-clang-svn/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch b/mingw-w64-clang-svn/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch deleted file mode 100644 index 6f23faa3ad..0000000000 --- a/mingw-w64-clang-svn/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch +++ /dev/null @@ -1,102 +0,0 @@ -From ef70aa910f276615977c7b3e61f5c61418208960 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Mon, 8 Jun 2015 02:21:51 +0100 -Subject: [PATCH 3/4] PECOFF: add searchLibrary function with sysroot support - ---- - include/lld/ReaderWriter/PECOFFLinkingContext.h | 5 ++++ - lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp | 36 ++++++++++++++++++++++++ - 2 files changed, 41 insertions(+) - -diff --git a/include/lld/ReaderWriter/PECOFFLinkingContext.h b/include/lld/ReaderWriter/PECOFFLinkingContext.h -index 2e19dd8..4f48882 100644 ---- a/include/lld/ReaderWriter/PECOFFLinkingContext.h -+++ b/include/lld/ReaderWriter/PECOFFLinkingContext.h -@@ -105,6 +105,7 @@ public: - _tempFiles.push_back(std::move(fileRemover)); - } - -+ ErrorOr searchLibrary(StringRef libName) const; - StringRef searchLibraryFile(StringRef path) const; - - StringRef decorateSymbol(StringRef name) const; -@@ -321,6 +322,9 @@ public: - return _parseDirectives; - } - -+ StringRef getSysroot() const { return _sysrootPath; } -+ void setSysroot(StringRef path) { _sysrootPath = path; } -+ - protected: - /// Method to create a internal file for the entry symbol - std::unique_ptr createEntrySymbolFile() const override; -@@ -402,6 +406,7 @@ private: - std::set _noDefaultLibs; - - std::vector _inputSearchPaths; -+ StringRef _sysrootPath = ""; - std::unique_ptr _writer; - - // A map for weak aliases. -diff --git a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp -index 2bd0e9c..043fe6f 100644 ---- a/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp -+++ b/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp -@@ -23,11 +23,16 @@ - #include "llvm/ADT/STLExtras.h" - #include "llvm/ADT/SmallString.h" - #include "llvm/Support/Allocator.h" -+#include "llvm/Support/Errc.h" -+#include "llvm/Support/FileSystem.h" - #include "llvm/Support/Path.h" - #include - #include - #include - -+using llvm::sys::fs::exists; -+using llvm::sys::path::is_absolute; -+ - namespace lld { - - bool PECOFFLinkingContext::validateImpl(raw_ostream &diagnostics) { -@@ -214,6 +219,37 @@ bool PECOFFLinkingContext::addSectionRenaming(raw_ostream &diagnostics, - return true; - } - -+static void buildSearchPath(SmallString<128> &path, StringRef dir, -+ StringRef sysRoot) { -+ if (dir.startswith("=/")) { -+ // If a search directory begins with "=", "=" is replaced -+ // with the sysroot path. -+ path.assign(sysRoot); -+ path.append(dir.substr(1)); -+ } else { -+ path.assign(dir); -+ } -+} -+ -+ErrorOr PECOFFLinkingContext::searchLibrary(StringRef libName) const { -+ bool hasColonPrefix = libName[0] == ':'; -+ SmallString<128> path; -+ for (StringRef dir : _inputSearchPaths) { -+ // Search for static libraries too -+ buildSearchPath(path, dir, _sysrootPath); -+ llvm::sys::path::append(path, hasColonPrefix -+ ? libName.drop_front() -+ : Twine("lib", libName) + ".a"); -+ -+ if (exists(path.str())) -+ return path.str().copy(_allocator); -+ } -+ if (hasColonPrefix && exists(libName.drop_front())) -+ return libName.drop_front(); -+ -+ return make_error_code(llvm::errc::no_such_file_or_directory); -+} -+ - /// Try to find the input library file from the search paths and append it to - /// the input file list. Returns true if the library file is found. - StringRef PECOFFLinkingContext::searchLibraryFile(StringRef filename) const { --- -2.3.3 - diff --git a/mingw-w64-clang-svn/0034-GNU-add-support-for-linking-PECOFF.patch b/mingw-w64-clang-svn/0034-GNU-add-support-for-linking-PECOFF.patch deleted file mode 100644 index 478533fa28..0000000000 --- a/mingw-w64-clang-svn/0034-GNU-add-support-for-linking-PECOFF.patch +++ /dev/null @@ -1,502 +0,0 @@ -From 4ae708fdabd2cfc8882cf03d07ab0d5bf22e4964 Mon Sep 17 00:00:00 2001 -From: Martell Malone -Date: Thu, 2 Jul 2015 05:35:51 +0100 -Subject: [PATCH] GNU: add support for linking PECOFF - - -diff --git a/include/lld/Driver/Driver.h b/include/lld/Driver/Driver.h -index 160826c..8a276e4 100644 ---- a/include/lld/Driver/Driver.h -+++ b/include/lld/Driver/Driver.h -@@ -67,14 +67,43 @@ class GnuLdDriver : public Driver { - public: - /// Parses command line arguments same as gnu/binutils ld and performs link. - /// Returns true iff an error occurred. -- static bool linkELF(llvm::ArrayRef args, -+ static bool linkGNU(llvm::ArrayRef args, - raw_ostream &diag = llvm::errs()); - - /// Uses gnu/binutils style ld command line options to fill in options struct. -+ /// Parses command line arguments same as gnu/binutils ld and performs link on ELF. -+ /// Returns true iff an error occurred. -+ static bool linkELF(llvm::opt::InputArgList &args, -+ llvm::Triple &triple, -+ llvm::Triple &baseTriple, -+ raw_ostream &diag = llvm::errs()); -+ -+ /// Parses command line arguments same as gnu/binutils ld and performs link on PECOFF. -+ /// Returns true iff an error occurred. -+ static bool linkPECOFF(llvm::opt::InputArgList &args, -+ llvm::Triple &triple, -+ raw_ostream &diag = llvm::errs()); -+ -+ /// Uses gnu/binutils style ld command line options to fill in options struct for ELF. - /// Returns true iff there was an error. -- static bool parse(llvm::ArrayRef args, -- std::unique_ptr &context, -- raw_ostream &diag = llvm::errs()); -+ static bool parseELF(llvm::opt::InputArgList &args, -+ llvm::Triple &triple, -+ llvm::Triple &baseTriple, -+ std::unique_ptr &context, -+ raw_ostream &diag = llvm::errs()); -+ -+ /// Uses gnu/binutils style ld command line options to fill in options struct for PECOFF. -+ /// Returns true iff there was an error. -+ static bool parsePECOFF(llvm::opt::InputArgList &args, -+ llvm::Triple &triple, -+ PECOFFLinkingContext &ctx, -+ raw_ostream &diag = llvm::errs(), -+ bool isDirective = false); -+ -+ // Same as parse(), but restricted to the context of directives. -+ static bool parseDirectives(int argc, const char *argv[], -+ PECOFFLinkingContext &info, -+ raw_ostream &diag = llvm::errs()); - - /// Parses a given memory buffer as a linker script and evaluate that. - /// Public function for testing. -diff --git a/lib/Driver/GnuLdDriver.cpp b/lib/Driver/GnuLdDriver.cpp -index fbdc12d..21abb62 100644 ---- a/lib/Driver/GnuLdDriver.cpp -+++ b/lib/Driver/GnuLdDriver.cpp -@@ -15,6 +15,7 @@ - - #include "lld/Driver/Driver.h" - #include "lld/ReaderWriter/ELFLinkingContext.h" -+#include "lld/ReaderWriter/PECOFFLinkingContext.h" - #include "lld/ReaderWriter/LinkerScript.h" - #include "llvm/ADT/ArrayRef.h" - #include "llvm/ADT/Optional.h" -@@ -134,12 +135,61 @@ static bool parseMaxPageSize(StringRef opt, uint64_t &val) { - return true; - } - --bool GnuLdDriver::linkELF(llvm::ArrayRef args, -+bool GnuLdDriver::linkGNU(llvm::ArrayRef args, - raw_ostream &diag) { - BumpPtrAllocator alloc; - args = maybeExpandResponseFiles(args, alloc); -+ -+ // Parse command line options using GnuLdOptions.td -+ GnuLdOptTable table; -+ unsigned missingIndex; -+ unsigned missingCount; -+ -+ llvm::opt::InputArgList parsedArgs = -+ table.ParseArgs(args.slice(1), missingIndex, missingCount); -+ if (missingCount) { -+ diag << "error: missing arg value for '" -+ << parsedArgs.getArgString(missingIndex) << "' expected " -+ << missingCount << " argument(s).\n"; -+ return false; -+ } -+ -+ // Handle --help -+ if (parsedArgs.hasArg(OPT_help)) { -+ table.PrintHelp(llvm::outs(), args[0], "LLVM Linker", false); -+ return true; -+ } -+ -+ // Use -target or use default target triple to instantiate LinkingContext -+ llvm::Triple baseTriple; -+ if (auto *arg = parsedArgs.getLastArg(OPT_target)) { -+ baseTriple = llvm::Triple(arg->getValue()); -+ } else { -+ baseTriple = getDefaultTarget(args[0]); -+ } -+ llvm::Triple triple(baseTriple); -+ -+ if (!applyEmulation(triple, parsedArgs, diag)) -+ return false; -+ -+ if (triple.getOS() == llvm::Triple::Win32) { -+ if(!linkPECOFF(parsedArgs, triple, diag)) -+ return false; -+ } else { -+ if(!linkELF(parsedArgs, triple, baseTriple, diag)) -+ return false; -+ } -+ -+ return true; -+} -+ -+bool GnuLdDriver::linkELF(llvm::opt::InputArgList &args, -+ llvm::Triple &triple, -+ llvm::Triple &baseTriple, -+ raw_ostream &diag) { -+ - std::unique_ptr options; -- if (!parse(args, options, diag)) -+ if (!parseELF(args, triple, baseTriple, options, diag)) - return false; - if (!options) - return true; -@@ -154,8 +204,65 @@ bool GnuLdDriver::linkELF(llvm::ArrayRef args, - return linked; - } - -+bool GnuLdDriver::linkPECOFF(llvm::opt::InputArgList &args, -+ llvm::Triple &triple, -+ raw_ostream &diag) { -+ -+ PECOFFLinkingContext ctx; -+ ctx.setParseDirectives(parseDirectives); -+ ctx.registry().addSupportCOFFObjects(ctx); -+ ctx.registry().addSupportCOFFImportLibraries(ctx); -+ ctx.registry().addSupportArchives(ctx.logInputFiles()); -+ ctx.registry().addSupportYamlFiles(); -+ -+ if (!parsePECOFF(args, triple, ctx, diag)) -+ return false; -+ -+ bool linked = link(ctx, diag); -+ return linked; -+} -+ -+bool GnuLdDriver::parseDirectives(int argc, const char *argv[], -+ PECOFFLinkingContext &info, -+ raw_ostream &diag) { -+ -+ llvm::ArrayRef args(argv, argc); -+ GnuLdOptTable table; -+ unsigned missingIndex; -+ unsigned missingCount; -+ -+ llvm::opt::InputArgList parsedArgs = -+ table.ParseArgs(args.slice(1), missingIndex, missingCount); -+ if (missingCount) { -+ diag << "error: missing arg value for '" -+ << parsedArgs.getArgString(missingIndex) << "' expected " -+ << missingCount << " argument(s).\n"; -+ return false; -+ } -+ -+ // Use -target or use default target triple to instantiate LinkingContext -+ llvm::Triple baseTriple; -+ if (auto *arg = parsedArgs.getLastArg(OPT_target)) { -+ baseTriple = llvm::Triple(arg->getValue()); -+ } else { -+ baseTriple = getDefaultTarget(argv[0]); -+ } -+ llvm::Triple triple(baseTriple); -+ -+ return parsePECOFF(parsedArgs, triple, info, diag, true); -+} -+ - static llvm::Optional - getArchType(const llvm::Triple &triple, StringRef value) { -+ -+ //the base arch can be wrong for windows so just check the PE target -+ if (value == "i386pe") -+ return llvm::Triple::x86; -+ if (value == "i386pep") -+ return llvm::Triple::x86_64; -+ if (value == "thumb2pe") -+ return llvm::Triple::arm; -+ - switch (triple.getArch()) { - case llvm::Triple::x86: - case llvm::Triple::x86_64: -@@ -184,6 +291,29 @@ getArchType(const llvm::Triple &triple, StringRef value) { - } - } - -+static llvm::COFF::MachineTypes -+getCOFFType(const llvm::Triple &triple) { -+ switch (triple.getArch()) { -+ case llvm::Triple::x86: -+ return llvm::COFF::IMAGE_FILE_MACHINE_I386; -+ case llvm::Triple::x86_64: -+ return llvm::COFF::IMAGE_FILE_MACHINE_AMD64; -+ case llvm::Triple::arm: -+ case llvm::Triple::thumb: -+ return llvm::COFF::IMAGE_FILE_MACHINE_ARMNT; -+ default: -+ return llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN; -+ } -+} -+ -+static llvm::COFF::WindowsSubsystem -+getSubsystem(StringRef value) { -+ return llvm::StringSwitch(value.lower()) -+ .Case("windows", llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_GUI) -+ .Case("console", llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI) -+ .Default(llvm::COFF::IMAGE_SUBSYSTEM_UNKNOWN); -+} -+ - static bool isLinkerScript(StringRef path, raw_ostream &diag) { - llvm::sys::fs::file_magic magic = llvm::sys::fs::file_magic::unknown; - if (std::error_code ec = llvm::sys::fs::identify_magic(path, magic)) { -@@ -195,7 +325,24 @@ static bool isLinkerScript(StringRef path, raw_ostream &diag) { - } - - static ErrorOr --findFile(ELFLinkingContext &ctx, StringRef path, bool dashL) { -+findFileELF(ELFLinkingContext &ctx, StringRef path, bool dashL) { -+ // If the path was referred to by using a -l argument, let's search -+ // for the file in the search path. -+ if (dashL) { -+ ErrorOr pathOrErr = ctx.searchLibrary(path); -+ if (std::error_code ec = pathOrErr.getError()) -+ return make_dynamic_error_code( -+ Twine("Unable to find library -l") + path + ": " + ec.message()); -+ path = pathOrErr.get(); -+ } -+ if (!llvm::sys::fs::exists(path)) -+ return make_dynamic_error_code( -+ Twine("lld: cannot find file ") + path); -+ return path; -+} -+ -+static ErrorOr -+findFilePECOFF(PECOFFLinkingContext &ctx, StringRef path, bool dashL = true) { - // If the path was referred to by using a -l argument, let's search - // for the file in the search path. - if (dashL) { -@@ -219,6 +366,17 @@ static bool isPathUnderSysroot(StringRef sysroot, StringRef path) { - return !path.empty(); - } - -+// Returns true if the given file node has already been added to the input -+// graph. -+static bool hasLibrary(PECOFFLinkingContext &ctx, File *file) { -+ StringRef path = file->path(); -+ for (std::unique_ptr &p : ctx.getNodes()) -+ if (auto *f = dyn_cast(p.get())) -+ if (f->getFile()->path() == path) -+ return true; -+ return false; -+} -+ - static std::error_code - addFilesFromLinkerScript(ELFLinkingContext &ctx, StringRef scriptPath, - const std::vector &inputPaths, -@@ -339,40 +497,11 @@ getBool(const llvm::opt::InputArgList &parsedArgs, - return llvm::None; - } - --bool GnuLdDriver::parse(llvm::ArrayRef args, -- std::unique_ptr &context, -- raw_ostream &diag) { -- // Parse command line options using GnuLdOptions.td -- GnuLdOptTable table; -- unsigned missingIndex; -- unsigned missingCount; -- -- llvm::opt::InputArgList parsedArgs = -- table.ParseArgs(args.slice(1), missingIndex, missingCount); -- if (missingCount) { -- diag << "error: missing arg value for '" -- << parsedArgs.getArgString(missingIndex) << "' expected " -- << missingCount << " argument(s).\n"; -- return false; -- } -- -- // Handle --help -- if (parsedArgs.hasArg(OPT_help)) { -- table.PrintHelp(llvm::outs(), args[0], "LLVM Linker", false); -- return true; -- } -- -- // Use -target or use default target triple to instantiate LinkingContext -- llvm::Triple baseTriple; -- if (auto *arg = parsedArgs.getLastArg(OPT_target)) { -- baseTriple = llvm::Triple(arg->getValue()); -- } else { -- baseTriple = getDefaultTarget(args[0]); -- } -- llvm::Triple triple(baseTriple); -- -- if (!applyEmulation(triple, parsedArgs, diag)) -- return false; -+bool GnuLdDriver::parseELF(llvm::opt::InputArgList &parsedArgs, -+ llvm::Triple &triple, -+ llvm::Triple &baseTriple, -+ std::unique_ptr &context, -+ raw_ostream &diag) { - - std::unique_ptr ctx(createELFLinkingContext(triple)); - -@@ -673,7 +802,7 @@ bool GnuLdDriver::parse(llvm::ArrayRef args, - bool dashL = (arg->getOption().getID() == OPT_l); - StringRef path = arg->getValue(); - -- ErrorOr pathOrErr = findFile(*ctx, path, dashL); -+ ErrorOr pathOrErr = findFileELF(*ctx, path, dashL); - if (std::error_code ec = pathOrErr.getError()) { - auto file = llvm::make_unique(path, ec); - auto node = llvm::make_unique(std::move(file)); -@@ -747,6 +876,133 @@ bool GnuLdDriver::parse(llvm::ArrayRef args, - return true; - } - -+bool GnuLdDriver::parsePECOFF(llvm::opt::InputArgList &args, -+ llvm::Triple &triple, -+ PECOFFLinkingContext &ctx, -+ raw_ostream &diag, -+ bool isReadingDirectiveSection) { -+ -+ // Parse may be called from multiple threads simultaneously to parse .drectve -+ // sections. This function is not thread-safe because it mutates the context -+ // object. So acquire the lock. -+ std::lock_guard lock(ctx.getMutex()); -+ -+ // The list of input files. -+ std::vector> files; -+ std::vector> libraries; -+ -+ llvm::COFF::MachineTypes type = getCOFFType(triple); -+ if (type == llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN) { -+ diag << "error: unknown machine type\n"; -+ return false; -+ } -+ -+ ctx.setMachineType(type); -+ -+ if (args.hasArg(OPT_t)) -+ ctx.setLogInputFiles(true); -+ -+ //mingw-w64 never uses wide versions of mainCRTStartup -+ if(type == llvm::COFF::IMAGE_FILE_MACHINE_I386) -+ ctx.setEntrySymbolName(ctx.allocate("_mainCRTStartup")); -+ else -+ ctx.setEntrySymbolName(ctx.allocate("mainCRTStartup")); -+ -+ if (auto *arg = args.getLastArg(OPT_output)) -+ ctx.setOutputPath(arg->getValue()); -+ -+ if (auto *arg = args.getLastArg(OPT_subsystem)) -+ ctx.setSubsystem(getSubsystem(arg->getValue())); -+ -+ if (args.hasArg(OPT_dll)) { -+ ctx.setIsDll(true); -+ // Default base address of a DLL is 0x10000000. -+ //if (!args.hasArg(OPT_base)) -+ //ctx.setBaseAddress(0x10000000); -+ } -+ -+ for (auto *arg : args.filtered(OPT_L)) -+ ctx.appendInputSearchPath(ctx.allocate(arg->getValue())); -+ -+ // Process files -+ for (auto arg : args) { -+ switch (arg->getOption().getID()) { -+ case OPT_INPUT: -+ case OPT_l: -+ case OPT_T: { -+ bool dashL = (arg->getOption().getID() == OPT_l); -+ StringRef path = arg->getValue(); -+ ErrorOr pathOrErr = findFilePECOFF(ctx, path, dashL); -+ StringRef realpath = pathOrErr.get(); -+ std::vector> curr; -+ -+ if(!pathOrErr){ -+ diag << "Cannot find " << path << "\n"; -+ return false; -+ } -+ -+ if(dashL) { -+ curr = loadFile(ctx, realpath, false); -+ for (std::unique_ptr &lib : curr) { -+ if (ctx.logInputFiles()) -+ diag << "lib: " << lib->path() << "\n"; -+ libraries.push_back(std::move(lib)); -+ } -+ } else { -+ curr = loadFile(ctx, realpath, false); -+ for (std::unique_ptr &file : curr) { -+ if (ctx.logInputFiles()) -+ diag << "input: " << file->path() << "\n"; -+ files.push_back(std::move(file)); -+ } -+ } -+ break; -+ } -+ } -+ } -+ -+ for (std::unique_ptr &file : files) { -+ if (isReadingDirectiveSection) { -+ File *f = file.get(); -+ ctx.getTaskGroup().spawn([f] { f->parse(); }); -+ } -+ ctx.getNodes().push_back(llvm::make_unique(std::move(file))); -+ } -+ -+ // Add the library group to the linking context. -+ if (!isReadingDirectiveSection) { -+ // Add a group-end marker. -+ ctx.getNodes().push_back(llvm::make_unique(0)); -+ } -+ -+ // Add the library files to the library group. -+ for (std::unique_ptr &file : libraries) { -+ if (!hasLibrary(ctx, file.get())) { -+ if (isReadingDirectiveSection) { -+ File *f = file.get(); -+ ctx.getTaskGroup().spawn([f] { f->parse(); }); -+ } -+ ctx.addLibraryFile(llvm::make_unique(std::move(file))); -+ } -+ } -+ -+ if (ctx.getNodes().empty()) { -+ diag << "No input files\n"; -+ return false; -+ } -+ -+ // Set default output file name if the output file was not specified. -+ if (ctx.outputPath().empty()) -+ ctx.setOutputPath("a.exe"); -+ -+ if (!ctx.validate(diag)) { -+ diag << "error: invalid linking context\n"; -+ return false; -+ } -+ -+ return true; -+} -+ - /// Get the default target triple based on either the program name - /// (e.g. "x86-ibm-linux-lld") or the primary target llvm was configured for. - llvm::Triple GnuLdDriver::getDefaultTarget(const char *progName) { -diff --git a/lib/Driver/GnuLdOptions.td b/lib/Driver/GnuLdOptions.td -index b3c3d90..7aa8547 100644 ---- a/lib/Driver/GnuLdOptions.td -+++ b/lib/Driver/GnuLdOptions.td -@@ -354,6 +354,18 @@ def pcrel_eh_reloc : Flag<["-", "--"], "pcrel-eh-reloc">, - HelpText<"Interpret R_MIPS_EH as R_MIPS_PC32">; - - //===----------------------------------------------------------------------===// -+/// Windows Target Specific Options -+//===----------------------------------------------------------------------===// -+def grp_windows_targetopts : OptionGroup<"WINDOWS SPECIFIC OPTIONS">, -+ Group; -+def subsystem : Separate<["--"], "subsystem">, MetaVarName<"">, -+ HelpText<"Select target subsystem">, -+ Group; -+def dll : Separate<["-", "--"], "dll">, -+ HelpText<"Create dynamic link library">, -+ Group; -+ -+//===----------------------------------------------------------------------===// - /// Ignored options - //===----------------------------------------------------------------------===// - def grp_ignored: OptionGroup<"ignored">, -diff --git a/lib/Driver/UniversalDriver.cpp b/lib/Driver/UniversalDriver.cpp -index c09addf..8ce45ea 100644 ---- a/lib/Driver/UniversalDriver.cpp -+++ b/lib/Driver/UniversalDriver.cpp -@@ -201,7 +201,7 @@ bool UniversalDriver::link(llvm::MutableArrayRef args, - // Switch to appropriate driver. - switch (flavor) { - case Flavor::gnu_ld: -- return GnuLdDriver::linkELF(args, diagnostics); -+ return GnuLdDriver::linkGNU(args, diagnostics); - case Flavor::darwin_ld: - return DarwinLdDriver::linkMachO(args, diagnostics); - case Flavor::win_link: --- -2.4.5 - diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index d03ed71608..c90ebb5dc5 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -41,11 +41,7 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" "libcxxabi"::"git+http://llvm.org/git/libcxxabi.git" "libcxx"::"git+http://llvm.org/git/libcxx.git" 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch - 0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch - 0031-COFF-add-the-mingw-alias-for-ImageBase.patch - 0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch - 0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch - 0034-GNU-add-support-for-linking-PECOFF.patch + 0011-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch 0041-libcxx-add-support-for-mingw-w64.patch) # Some patch notes :) @@ -65,10 +61,6 @@ md5sums=('SKIP' 'SKIP' 'a384d4607d9dcdfdcac6912ac413ec58' 'e6ce086a33256043af99a5690b251be8' - 'a1e06d17915f1cedb1d784ecfdfa60be' - '76b01f572c404c7245d227d758cdf7fc' - '559b5b75d4efd50079d76dda592fb1b7' - '72404042ab22a9c52bc77d24a22f7c01' '6b0b769d999dc884e59d388c5a7f3866') pkgver_internal() { @@ -98,15 +90,12 @@ prepare() { cmake/modules/Makefile cd "${srcdir}"/clang - git am "${srcdir}"/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch + git am "${srcdir}"/0011-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch #cd "${srcdir}"/compiler-rt cd "${srcdir}"/lld - #git am "${srcdir}"/0031-COFF-add-the-mingw-alias-for-ImageBase.patch - git am "${srcdir}"/0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch - git am "${srcdir}"/0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch - git am "${srcdir}"/0034-GNU-add-support-for-linking-PECOFF.patch + # lld git patches here cd "${srcdir}"/libcxx git am "${srcdir}"/0041-libcxx-add-support-for-mingw-w64.patch From 776195fc6acfb4c9721a3943d1a73a4f7237b6aa Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 26 Nov 2015 22:18:15 +0000 Subject: [PATCH 1928/2060] PKGBUILD-templates: Added CMake-github-git template --- .../PKGBUILD.CMake-github-git | 61 +++++++++++++++++++ .../PKGBUILD.autotools-tarball | 3 +- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-PKGBUILD-templates/PKGBUILD.CMake-github-git diff --git a/mingw-w64-PKGBUILD-templates/PKGBUILD.CMake-github-git b/mingw-w64-PKGBUILD-templates/PKGBUILD.CMake-github-git new file mode 100644 index 0000000000..b7da52c7a6 --- /dev/null +++ b/mingw-w64-PKGBUILD-templates/PKGBUILD.CMake-github-git @@ -0,0 +1,61 @@ +# Maintainer: Some One + +_realname=somepackage +pkgbase=mingw-w64-${_realname}-git +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +provides="${MINGW_PACKAGE_PREFIX}-${_realname}" +replaces="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=100.77777777 +pkgrel=1 +pkgdesc="Some package (git) (mingw-w64)" +arch=('any') +url="https://github.com/someproject/somepackage" +license=('LICENSE') +validpgpkeys=('gpg_KEY') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + 'git') +options=('strip' 'staticlibs') +source=("${_realname}"::"git+https://github.com/someproject/somepackage.git#branch=master" + 0001-An-important-fix.patch + 0002-A-less-important-fix.patch) +md5sums=('SKIP' + 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb') + +pkgver() { + cd "${srcdir}"/${_realname} + printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}"/${_realname} + git am "${srcdir}"/0001-A-really-important-fix.patch + git am "${srcdir}"/0002-A-less-important-fix.patch +} + +build() { + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + + declare -a extra_config + if check_option "debug" "n"; then + extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G'MSYS Makefiles' \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + "${extra_config[@]}" \ + -DBUILD_{SHARED,STATIC}_LIBS=ON \ + ../${_realname} + + make +} + +package() { + cd "${srcdir}"/build-${CARCH} + make DESTDIR=${pkgdir} install +} diff --git a/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball b/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball index c231466f56..9162c8bc73 100644 --- a/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball +++ b/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball @@ -1,6 +1,7 @@ # Maintainer: Some One _realname=somepackage +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.0 pkgrel=1 @@ -21,7 +22,7 @@ prepare() { build() { cd "$srcdir"/${_realname}-${pkgver} - [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ From 87bf074c02814bc5ebc4108ba3e1bbf474611092 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 26 Nov 2015 22:19:24 +0000 Subject: [PATCH 1929/2060] jucipp-git: New package (WIP) --- mingw-w64-jucipp-git/PKGBUILD | 60 +++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 mingw-w64-jucipp-git/PKGBUILD diff --git a/mingw-w64-jucipp-git/PKGBUILD b/mingw-w64-jucipp-git/PKGBUILD new file mode 100644 index 0000000000..6aff527450 --- /dev/null +++ b/mingw-w64-jucipp-git/PKGBUILD @@ -0,0 +1,60 @@ +# Maintainer: Ray Donnelly + +_realname=jucipp +pkgbase=mingw-w64-${_realname}-git +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" +provides="${MINGW_PACKAGE_PREFIX}-${_realname}" +replaces="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1022.4eedbca +pkgrel=1 +pkgdesc="A lightweight platform independent C++-IDE with support for C++11 and C++14 (mingw-w64)" +arch=('any') +url="https://github.com/someproject/somepackage" +license=('MIT') +validpgpkeys=('gpg_KEY') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + 'git') +depends=("${MINGW_PACKAGE_PREFIX}-clang" + "${MINGW_PACKAGE_PREFIX}-gtkmm3" + "${MINGW_PACKAGE_PREFIX}-gtksourceviewmm3" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-aspell-en") +options=('strip' 'staticlibs') +source=("${_realname}"::"git+https://github.com/cppit/jucipp.git") +md5sums=('SKIP') + +pkgver() { + cd "${srcdir}"/${_realname} + printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}"/${_realname} +} + +build() { + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + cd "${srcdir}"/${_realname} + + declare -a extra_config + if check_option "debug" "n"; then + extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G'MSYS Makefiles' \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + "${extra_config[@]}" \ + ../${_realname} + + make +} + +package() { +# cd "${srcdir}"/build-${CARCH} + make DESTDIR=${pkgdir} install +} From f174bae76de952b441242bce87e72555b92bffd7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 26 Nov 2015 22:53:18 +0000 Subject: [PATCH 1930/2060] jucipp: Fixed, it can be built now Added libclangmm as a direct submodule here instead of as a separate package as it's not clear that it has traction enough to warrant that effort yet. --- mingw-w64-jucipp-git/PKGBUILD | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mingw-w64-jucipp-git/PKGBUILD b/mingw-w64-jucipp-git/PKGBUILD index 6aff527450..84a42375f0 100644 --- a/mingw-w64-jucipp-git/PKGBUILD +++ b/mingw-w64-jucipp-git/PKGBUILD @@ -20,8 +20,10 @@ depends=("${MINGW_PACKAGE_PREFIX}-clang" "${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-aspell-en") options=('strip' 'staticlibs') -source=("${_realname}"::"git+https://github.com/cppit/jucipp.git") -md5sums=('SKIP') +source=("${_realname}"::"git+https://github.com/cppit/jucipp.git" + "libclangmm"::"git+https://github.com/cppit/libclangmm.git") +md5sums=('SKIP' + 'SKIP') pkgver() { cd "${srcdir}"/${_realname} @@ -30,12 +32,14 @@ pkgver() { prepare() { cd "${srcdir}"/${_realname} + git submodule init + git config submodule.libclangmm.url "${srcdir}"/libclangmm + git submodule update } build() { [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} - cd "${srcdir}"/${_realname} declare -a extra_config if check_option "debug" "n"; then @@ -55,6 +59,6 @@ build() { } package() { -# cd "${srcdir}"/build-${CARCH} + cd "${srcdir}"/build-${CARCH} make DESTDIR=${pkgdir} install } From 6644f98775d33b99981f7229dd52a8f95b59dcc9 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 25 Nov 2015 18:38:25 +0000 Subject: [PATCH 1931/2060] make/remake: Meh meh meh --- mingw-w64-make/PKGBUILD | 37 +++++++--- mingw-w64-remake-git/PKGBUILD | 68 +++++++++++++++++++ mingw-w64-remake-git/make-getopt.patch | 23 +++++++ mingw-w64-remake-git/make-linebuf-mingw.patch | 14 ++++ 4 files changed, 134 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-remake-git/PKGBUILD create mode 100644 mingw-w64-remake-git/make-getopt.patch create mode 100644 mingw-w64-remake-git/make-linebuf-mingw.patch diff --git a/mingw-w64-make/PKGBUILD b/mingw-w64-make/PKGBUILD index 2947daea9f..43bd4de462 100644 --- a/mingw-w64-make/PKGBUILD +++ b/mingw-w64-make/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=make +_autotools=yes pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") _ver_base=4.1 -pkgver=4.1.2351.a80a8b8 +pkgver=4.1.2366.168f123 pkgrel=1 pkgdesc="GNU make utility to maintain groups of programs (mingw-w64)" arch=('any') @@ -20,7 +21,7 @@ md5sums=('SKIP' '7747139a747a9fe21b1099375ce72052') pkgver() { - cd "${srcdir}/${_realname}" + cd "${srcdir}"/${_realname} printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } @@ -28,17 +29,37 @@ prepare() { cd ${srcdir}/${_realname} patch -p1 -i ${srcdir}/make-getopt.patch patch -p1 -i ${srcdir}/make-linebuf-mingw.patch + if [[ "${_autotools}" = "yes" ]]; then + autoreconf -fi + fi } build() { - cd ${srcdir}/${_realname} - cmd /c 'build_w32.bat --without-guile gcc' + if [[ "${_autotools}" = "yes" ]]; then + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --host=${MINGW_CHOST} \ + --without-libintl-prefix \ + --without-libiconv-prefix \ + ac_cv_dos_paths=yes + make -j1 scm-update do-po-update all + else + cmd /c 'build_w32.bat --without-guile gcc' + fi } package() { - cd ${srcdir}/${_realname} mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,include} - cp -f gnumake.exe ${pkgdir}${MINGW_PREFIX}/bin/mingw32-make.exe - cp -f libgnumake-1.dll.a ${pkgdir}${MINGW_PREFIX}/lib/ - cp -f gnumake.h ${pkgdir}${MINGW_PREFIX}/include/ + if [[ "${_autotools}" = "yes" ]]; then + cd ${srcdir}/build-${MINGW_CHOST} + cp -f make.exe ${pkgdir}${MINGW_PREFIX}/bin/mingw32-make.exe + cp -f ${srcdir}/${_realname}/gnumake.h ${pkgdir}${MINGW_PREFIX}/include/ + else + cd ${srcdir}/${_realname} + cp -f gnumake.exe ${pkgdir}${MINGW_PREFIX}/bin/mingw32-make.exe + cp -f libgnumake-1.dll.a ${pkgdir}${MINGW_PREFIX}/lib/ + cp -f gnumake.h ${pkgdir}${MINGW_PREFIX}/include/ + fi } diff --git a/mingw-w64-remake-git/PKGBUILD b/mingw-w64-remake-git/PKGBUILD new file mode 100644 index 0000000000..d75a37701b --- /dev/null +++ b/mingw-w64-remake-git/PKGBUILD @@ -0,0 +1,68 @@ +# Maintainer: Ray Donnelly + +_realname=remake +_autotools=yes +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +_ver_base=4.1 +pkgver=4.1.2943.f059924 +pkgrel=1 +pkgdesc="Enhanced GNU Make - tracing, error reporting, debugging, profiling and more (mingw-w64)" +arch=('any') +url="https://github.com/rocky/remake" +license=('GPL3') +provides=("${MINGW_PACKAGE_PREFIX}-remake") +conflicts=("${MINGW_PACKAGE_PREFIX}-remake") +options=('debug' '!strip') +depends=("${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-readline") +makedepends=('git' + 'wget') +source=("${_realname}"::"git+https://github.com/rocky/${_realname}#branch=master" + 'make-getopt.patch' + 'make-linebuf-mingw.patch') +md5sums=('SKIP' + '3969663ca1f6c182b37632fabeca52bb' + '7747139a747a9fe21b1099375ce72052') + +pkgver() { + cd "${srcdir}"/${_realname} + printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd ${srcdir}/${_realname} + patch -p1 -i ${srcdir}/make-getopt.patch + patch -p1 -i ${srcdir}/make-linebuf-mingw.patch + if [[ "${_autotools}" = "yes" ]]; then + autoreconf -fi + fi +} + +build() { + if [[ "${_autotools}" = "yes" ]]; then + [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} + mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --host=${MINGW_CHOST} \ + --without-libintl-prefix \ + --without-libiconv-prefix \ + ac_cv_dos_paths=yes + make -j1 scm-update do-po-update all remake + else + cmd /c 'build_w32.bat --without-guile gcc' + fi +} + +package() { + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,include} + if [[ "${_autotools}" = "yes" ]]; then + cd ${srcdir}/build-${MINGW_CHOST} + cp -f make.exe ${pkgdir}${MINGW_PREFIX}/bin/mingw32-remake.exe + else + cd ${srcdir}/${_realname} + cp -f gnumake.exe ${pkgdir}${MINGW_PREFIX}/bin/mingw32-remake.exe + cp -f libgnumake-1.dll.a ${pkgdir}${MINGW_PREFIX}/lib/ + cp -f gnumake.h ${pkgdir}${MINGW_PREFIX}/include/ + fi +} diff --git a/mingw-w64-remake-git/make-getopt.patch b/mingw-w64-remake-git/make-getopt.patch new file mode 100644 index 0000000000..5b9f81188c --- /dev/null +++ b/mingw-w64-remake-git/make-getopt.patch @@ -0,0 +1,23 @@ +Fixes the following warnings: + +getopt.c: In function '_getopt_initialize': +getopt.c:382: warning: unused parameter 'argc' +getopt.c:382: warning: unused parameter 'argv' + +Index: getopt.c +=================================================================== +RCS file: /sources/make/make/getopt.c,v +retrieving revision 1.22 +diff -u -p -r1.22 getopt.c +--- make-3.82.orig/getopt.c 25 Oct 2009 18:56:45 -0000 1.22 ++++ make-3.82/getopt.c 5 Jul 2010 20:05:22 -0000 +@@ -436,6 +436,9 @@ _getopt_initialize (int argc, char *cons + } + else + nonoption_flags_len = 0; ++#else ++ (void)argc; ++ (void)argv; + #endif + + return optstring; diff --git a/mingw-w64-remake-git/make-linebuf-mingw.patch b/mingw-w64-remake-git/make-linebuf-mingw.patch new file mode 100644 index 0000000000..ce93fa0c66 --- /dev/null +++ b/mingw-w64-remake-git/make-linebuf-mingw.patch @@ -0,0 +1,14 @@ +--- make.orig/main.c ++++ make/main.c +@@ -971,8 +971,11 @@ + + #endif + ++/* setlocale interferes with line buffering if using parallel make on MinGW */ ++#ifndef __MINGW32__ + /* Set up gettext/internationalization support. */ + setlocale (LC_ALL, ""); ++#endif + /* The cast to void shuts up compiler warnings on systems that + disable NLS. */ + (void)bindtextdomain (PACKAGE, LOCALEDIR); From f61a3e742f0cd18471c389f43dbb948e15addac3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 27 Nov 2015 08:12:54 +0300 Subject: [PATCH 1932/2060] sqlheavy: Fix PKGBUILD. --- mingw-w64-sqlheavy/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-sqlheavy/PKGBUILD b/mingw-w64-sqlheavy/PKGBUILD index 31cc097e38..eafc9b05cb 100644 --- a/mingw-w64-sqlheavy/PKGBUILD +++ b/mingw-w64-sqlheavy/PKGBUILD @@ -10,15 +10,14 @@ arch=('any') license=('LGPL 2') url="http://www.gnome.org/" depends=("${MINGW_PACKAGE_PREFIX}-gtk2" - "${MINGW_PACKAGE_PREFIX}-sqlite3" - "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-sqlite3" + "${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-libxml2") makedepends=("intltool" "gtk-doc") options=('strip' 'staticlibs') source=(https://sqlheavy.googlecode.com/files/sqlheavy-0.1.1.tar.xz - 000-libvala.patch - ) + 000-libvala.patch) sha256sums=('34cbe104f5df9a20ea26aa8acca2b6d1a73035448aa854162c598e90f4e6ff80' 'ba2f1eed43f926df573ec299b973929499e1da78c0f15157a4ec4ae40057afa1') @@ -42,6 +41,7 @@ build() { --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib + make } From 05c9bc01f062b98082c0b7f5b603b13dd1e1b039 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 27 Nov 2015 08:13:22 +0300 Subject: [PATCH 1933/2060] qt5-static: Rebuild. --- mingw-w64-qt5-static/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index ae36ad0a27..b6450af575 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -99,7 +99,7 @@ else fi pkgver=${_ver_base//-/} -pkgrel=3 +pkgrel=4 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' From c54a93a214e9af540a9bf0cb618868750452f8b6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 27 Nov 2015 08:14:17 +0300 Subject: [PATCH 1934/2060] gtk2: Rebuild --- mingw-w64-gtk2/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gtk2/PKGBUILD b/mingw-w64-gtk2/PKGBUILD index b761e0503e..a4768fb65c 100644 --- a/mingw-w64-gtk2/PKGBUILD +++ b/mingw-w64-gtk2/PKGBUILD @@ -4,7 +4,7 @@ _realname=gtk2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.24.28 -pkgrel=1 +pkgrel=2 pkgdesc="GTK+ is a multi-platform toolkit (v2) (mingw-w64)" arch=('any') url="http://www.gtk.org" From 9fe5e47f1582acde1e136dbfe93e16ccd0735c13 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 27 Nov 2015 07:34:55 +0000 Subject: [PATCH 1935/2060] jucipp-git: Fix URL --- mingw-w64-jucipp-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-jucipp-git/PKGBUILD b/mingw-w64-jucipp-git/PKGBUILD index 84a42375f0..63d87873ec 100644 --- a/mingw-w64-jucipp-git/PKGBUILD +++ b/mingw-w64-jucipp-git/PKGBUILD @@ -9,7 +9,7 @@ pkgver=1022.4eedbca pkgrel=1 pkgdesc="A lightweight platform independent C++-IDE with support for C++11 and C++14 (mingw-w64)" arch=('any') -url="https://github.com/someproject/somepackage" +url="https://github.com/cppit/jucipp" license=('MIT') validpgpkeys=('gpg_KEY') makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" From 745823de714001cf0a2e6090e9598062f77dcdce Mon Sep 17 00:00:00 2001 From: Zach Bacon <11doctorwhocanada@gmail.com> Date: Sat, 28 Nov 2015 08:48:13 -0500 Subject: [PATCH 1936/2060] added static instructions for building static libtorrent and updated it to 1.0.7 --- mingw-w64-libtorrent-rasterbar/PKGBUILD | 26 ++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libtorrent-rasterbar/PKGBUILD b/mingw-w64-libtorrent-rasterbar/PKGBUILD index 390733251a..688a7685ed 100644 --- a/mingw-w64-libtorrent-rasterbar/PKGBUILD +++ b/mingw-w64-libtorrent-rasterbar/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov # Contributor: AlexWMF +# Contributor: Zach Bacon <11doctorwhocanada@gmail.com> _realname=libtorrent-rasterbar pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.6 +pkgver=1.0.7 pkgrel=1 pkgdesc="libtorrent is a feature complete C++ bittorrent implementation focusing on efficiency and scalability (mingw-w64)" arch=('any') @@ -16,9 +17,9 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=(staticlibs strip) -source=("https://github.com/arvidn/libtorrent/releases/download/libtorrent-1_0_6/${_realname}-${pkgver}.tar.gz" +source=("https://github.com/arvidn/libtorrent/releases/download/libtorrent-1_0_7/${_realname}-${pkgver}.tar.gz" cmake_pkg_config.patch) -md5sums=('e88d7f56fe9384e835b8389cd59e540e' +md5sums=('c1a5b8aee18640cbe01826403525dd14' '6e57f2a497401c7ec77fcefeb27fec5b') prepare() { @@ -41,9 +42,28 @@ build() { ../${_realname}-${pkgver} make + + [[ -d "${srcdir}/build-${MINGW_CHOST}-static" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}-static" + mkdir ${srcdir}/build-${MINGW_CHOST}-static + cd ${srcdir}/build-${MINGW_CHOST}-static + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -Dbuild_tests=False \ + -Dbuild_examples=False \ + -Dshared=OFF \ + ../${_realname}-${pkgver} + + make } package() { cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR=${pkgdir} install + + cd ${srcdir}/build-${MINGW_CHOST}-static + make DESTDIR=${pkgdir} install } From 39bb87dfedda11a6fb25ac9b3f3c80700fb5dad8 Mon Sep 17 00:00:00 2001 From: Yasunori Endo Date: Sun, 29 Nov 2015 13:32:37 +0900 Subject: [PATCH 1937/2060] Apply IME patch for Japanese language input --- mingw-w64-emacs/PKGBUILD | 7 +- mingw-w64-emacs/emacs-24.5-w32-ime.diff | 2160 +++++++++++++++++++++++ 2 files changed, 2165 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-emacs/emacs-24.5-w32-ime.diff diff --git a/mingw-w64-emacs/PKGBUILD b/mingw-w64-emacs/PKGBUILD index d4e7d46999..9bd17224d4 100644 --- a/mingw-w64-emacs/PKGBUILD +++ b/mingw-w64-emacs/PKGBUILD @@ -29,18 +29,21 @@ options=('strip') source=("http://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz"{,.sig} 'image.c.diff' 'lread.c.diff' - 'Makefile.in.diff') + 'Makefile.in.diff' + 'emacs-24.5-w32-ime.diff') sha256sums=('dd47d71dd2a526cf6b47cb49af793ec2e26af69a0951cc40e43ae290eacfc34e' 'SKIP' '4571d45ec26fd556e73a70bb0ab0a2a8fa1efc5e3b3c5b472ab68bb7dc9bf52c' 'b9db1b7d939301d0fedf52db6ac055f7265ee5bc0c3c757e394700ca39577b7f' - '1a49a2d4711d0204db80a88c120510168b2eb7649888de65634da252f03b7f16') + '1a49a2d4711d0204db80a88c120510168b2eb7649888de65634da252f03b7f16' + '08e3863250aa88bfd54915fe1b5cb14b6481d4cf300669998d54e016563af3f2') prepare() { cd "${_realname}-${pkgver}" patch --binary --forward -p0 < "${srcdir}/image.c.diff" patch --binary --forward -p0 < "${srcdir}/lread.c.diff" patch --binary --forward -p0 < "${srcdir}/Makefile.in.diff" + patch --binary --forward -p0 < "${srcdir}/emacs-24.5-w32-ime.diff" ./autogen.sh } diff --git a/mingw-w64-emacs/emacs-24.5-w32-ime.diff b/mingw-w64-emacs/emacs-24.5-w32-ime.diff new file mode 100644 index 0000000000..cf312ae638 --- /dev/null +++ b/mingw-w64-emacs/emacs-24.5-w32-ime.diff @@ -0,0 +1,2160 @@ +--- ./configure.ac.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./configure.ac 2015-04-11 07:28:36.226147400 +0900 +@@ -263,6 +263,10 @@ + OPTION_DEFAULT_OFF([ns],[use NeXTstep (Cocoa or GNUstep) windowing system]) + OPTION_DEFAULT_OFF([w32], [use native MS Windows GUI in a Cygwin build]) + ++OPTION_DEFAULT_ON([w32-ime], [don't compile with W32-IME support]) ++OPTION_DEFAULT_ON([reconversion], [don't compile with RECONVERSION support]) ++OPTION_DEFAULT_ON([documentfeed], [don't compile with DOCUMENTFEED support]) ++ + OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console]) + OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support]) + OPTION_DEFAULT_ON([gconf],[don't compile with GConf support]) +@@ -5006,6 +5010,42 @@ + acl_summary=no + fi + ++USE_W32_IME=no ++if test "${HAVE_W32}" = "yes"; then ++ if test "${with_w32_ime}" != "no"; then ++ USE_W32_IME=yes ++ AC_DEFINE(USE_W32_IME, 1, [Define to support W32-IME.]) ++ ++ RECONVERSION=no ++ if test "${with_reconversion}" != "no"; then ++ AC_CACHE_CHECK([whether RECONVERTSTRING is declared], ++ emacs_cv_have_reconvertstring, ++ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ++#include ++#include ]], [[RECONVERTSTRING]])], ++ emacs_cv_have_reconvertstring=yes, emacs_cv_have_reconvertstring=no)]) ++ if test "$emacs_cv_have_reconvertstring" = "yes"; then ++ RECONVERSION=yes ++ AC_DEFINE(RECONVERSION, 1, [Define to support RECONVERSION.]) ++ AC_DEFINE(HAVE_RECONVERTSTRING, 1, [Define to 1 if you have RECONVERTSTRING.]) ++ ++ DOCUMENTFEED=no ++ if test "${with_documentfeed}" != "no"; then ++ AC_CHECK_DECL(IMR_DOCUMENTFEED, HAVE_IMR_DOCUMENTFEED=yes, ++ HAVE_IMR_DOCUMENTFEED=no,[[ ++#include ++#include ]]) ++ if test "$ac_cv_have_decl_IMR_DOCUMENTFEED" = "yes"; then ++ DOCUMENTFEED=yes ++ AC_DEFINE(DOCUMENTFEED, 1, [Define to support DOCUMENTFEED.]) ++ AC_DEFINE(HAVE_IMR_DOCUMENTFEED, 1, [Define to 1 if you have IMR_DOCUMENTFEED.]) ++ fi ++ fi ++ fi ++ fi ++ fi ++fi ++ + echo " + Configured for \`${canonical}'. + +@@ -5056,7 +5096,19 @@ + echo " Does Emacs directly use zlib? ${HAVE_ZLIB}" + + echo " Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" +-echo ++ ++if test "${HAVE_W32}" = "yes"; then ++ echo \ ++ " Does Emacs support W32-IME? ${USE_W32_IME}" ++ if test "${USE_W32_IME}" = "yes"; then ++ echo \ ++ " Does Emacs support RECONVERSION? ${RECONVERSION}" ++ if test "${RECONVERSION}" = "yes"; then ++ echo \ ++ " Does Emacs support DOCUMENTFEED? ${DOCUMENTFEED}" ++ fi ++ fi ++fi + + if test -n "${EMACSDATA}"; then + echo " Environment variable EMACSDATA set to: $EMACSDATA" +--- /dev/null 2015-04-11 07:28:48.000000000 +0900 ++++ ./lisp/international/w32-ime.el 2015-04-11 07:28:36.237148400 +0900 +@@ -0,0 +1,201 @@ ++;;;;; w32-ime.el ---- Meadow features for NTEmacs. ++;; ++;; Author H.Miyashita ++;; ++;;;;; ++ ++(defgroup W32-IME nil ++ "w32-ime" ++ :group 'emacs) ++ ++(defvar w32-last-selection nil ++ "It is stored the last data from Emacs.") ++ ++;---------- ++ ++(defvar w32-ime-on-hook nil ++ "Functions to eval when IME is turned on at least. ++Even if IME state is not changed, these functiona are maybe called.") ++(defvar w32-ime-off-hook nil ++ "Functions to eval when IME is turned off at least. ++Even if IME state is not changed, these functiona are maybe called.") ++(defvar w32-ime-buffer-switch-p t ++ "If this variable is nil, IME control when buffer is switched is disabled.") ++(defvar w32-ime-show-mode-line t ++ "When t, mode line indicates IME state.") ++(defvar w32-ime-mode-line-state-indicator "[O]" ++ "This is shown at the mode line. It is regarded as state of ime.") ++(make-variable-buffer-local 'w32-ime-mode-line-state-indicator) ++(put 'w32-ime-mode-line-state-indicator 'permanent-local t) ++(defvar w32-ime-mode-line-state-indicator-list '("-" "[|]" "[O]") ++ "List of IME state indicator string.") ++(defvar w32-ime-mode-line-format-original nil ++ "Original mode line format.") ++ ++;; ++;; Section: IME ++;; ++ ++;; ;; This is temporal solution. In the future, we will prepare ++;; ;; dynamic configuration. ++;; (defvar w32-ime-coding-system-language-environment-alist ++;; '(("Japanese" . japanese-shift-jis) ++;; ("Chinese-GB" . chinese-iso-8bit) ++;; ("Chinese-BIG5" . chinese-big5) ++;; ("Korean" . korean-iso-8bit))) ++ ++;; ++;; IME state indicator ++;; ++(global-set-key [kanji] 'ignore) ++(global-set-key [compend] 'ignore) ++ ++(defun wrap-function-to-control-ime ++ (function interactive-p interactive-arg &optional suffix) ++ "Wrap FUNCTION, and IME control is enabled when FUNCTION is called. ++An original function is saved to FUNCTION-SUFFIX when suffix is string. ++If SUFFIX is nil, \"-original\" is added. " ++ (let ((original-function ++ (intern (concat (symbol-name function) ++ (if suffix suffix "-original"))))) ++ (cond ++ ((not (fboundp original-function)) ++ (fset original-function ++ (symbol-function function)) ++ (fset function ++ (list ++ 'lambda '(&rest arguments) ++ (when interactive-p ++ (list 'interactive interactive-arg)) ++ `(cond ++ ((and (ime-get-mode) ++ (equal current-input-method "W32-IME")) ++ (ime-force-off) ++ (unwind-protect ++ (apply ',original-function arguments) ++ (when (and (not (ime-get-mode)) ++ (equal current-input-method "W32-IME")) ++ (ime-force-on)))) ++ (t ++ (apply ',original-function arguments))))))))) ++ ++(defvar w32-ime-toroku-region-yomigana nil ++ "* if this variable is string, toroku-region regard this value as yomigana.") ++ ++(defun w32-ime-toroku-region (begin end) ++ (interactive "r") ++ (let ((string (buffer-substring begin end)) ++ (w32-ime-buffer-switch-p nil) ++ (reading w32-ime-toroku-region-yomigana)) ++ (unless (stringp reading) ++ (w32-set-ime-mode 'hiragana) ++ (setq reading ++ (read-multilingual-string ++ (format "Input reading of \"%s\": " string) nil "W32-IME"))) ++ (w32-ime-register-word-dialog reading string))) ++ ++;; for IME management system. ++ ++(defun w32-ime-sync-state (window) ++ (when w32-ime-buffer-switch-p ++ (with-current-buffer (window-buffer window) ++ (let* ((frame (window-frame window)) ++ (ime-state (ime-get-mode))) ++ (cond ++ ((and (not ime-state) ++ (equal current-input-method "W32-IME")) ++ (ime-force-on nil) ++ (run-hooks 'w32-ime-on-hook)) ++ ((and ime-state ++ (not (equal current-input-method "W32-IME"))) ++;;; (when (= (w32-ime-undetermined-string-length) 0) ++ (ime-force-off nil) ++ (run-hooks 'w32-ime-off-hook))))))) ++ ++(defun w32-ime-set-selected-window-buffer-hook (oldbuf newwin newbuf) ++ (w32-ime-sync-state newwin)) ++ ++(defun w32-ime-select-window-hook (old new) ++ (w32-ime-sync-state new)) ++ ++(defun w32-ime-mode-line-update () ++ (cond ++ (w32-ime-show-mode-line ++ (unless (window-minibuffer-p (selected-window)) ++ (setq w32-ime-mode-line-state-indicator ++ (nth (if (ime-get-mode) 1 2) ++ w32-ime-mode-line-state-indicator-list)))) ++ (t ++ (setq w32-ime-mode-line-state-indicator ++ (nth 0 w32-ime-mode-line-state-indicator-list)))) ++ (force-mode-line-update)) ++ ++(defun w32-ime-init-mode-line-display () ++ (unless (member 'w32-ime-mode-line-state-indicator mode-line-format) ++ (setq w32-ime-mode-line-format-original ++ (default-value 'mode-line-format)) ++ (if (and (stringp (car mode-line-format)) ++ (string= (car mode-line-format) "-")) ++ (setq-default mode-line-format ++ (cons "" ++ (cons 'w32-ime-mode-line-state-indicator ++ (cdr mode-line-format)))) ++ (setq-default mode-line-format ++ (cons "" ++ (cons 'w32-ime-mode-line-state-indicator ++ mode-line-format)))) ++ (force-mode-line-update t))) ++ ++(defun w32-ime-initialize () ++ (when (and (or (eq system-type 'windows-nt) (eq system-type 'cygwin)) ++ (eq window-system 'w32) ++ (featurep 'w32-ime)) ++ (w32-ime-init-mode-line-display) ++ (w32-ime-mode-line-update) ++ (add-hook 'select-window-functions ++ 'w32-ime-select-window-hook) ++ (add-hook 'set-selected-window-buffer-functions ++ 'w32-ime-set-selected-window-buffer-hook) ++ (define-key global-map [kanji] 'toggle-input-method))) ++;; (set-keyboard-coding-system 'utf-8))) ++ ++(defun w32-ime-uninitialize () ++ (when (and (or (eq system-type 'windows-nt) (eq system-type 'cygwin)) ++ (eq window-system 'w32) ++ (featurep 'w32-ime)) ++ (setq-default mode-line-format ++ w32-ime-mode-line-format-original) ++ (force-mode-line-update t) ++ (remove-hook 'select-window-functions ++ 'w32-ime-select-window-hook) ++ (remove-hook 'set-selected-window-buffer-functions ++ 'w32-ime-set-selected-window-buffer-hook) ++ (define-key global-map [kanji] 'ignore))) ++ ++(defun w32-ime-exit-from-minibuffer () ++ (deactivate-input-method) ++ (when (<= (minibuffer-depth) 1) ++ (remove-hook 'minibuffer-exit-hook 'w32-ime-exit-from-minibuffer))) ++ ++(defun w32-ime-state-switch (&optional arg) ++ (if arg ++ (progn ++ (setq deactivate-current-input-method-function ++ 'w32-ime-state-switch) ++ (run-hooks 'input-method-activate-hook) ++ (run-hooks 'w32-ime-on-hook) ++ (setq describe-current-input-method-function nil) ++ (when (eq (selected-window) (minibuffer-window)) ++ (add-hook 'minibuffer-exit-hook 'w32-ime-exit-from-minibuffer)) ++ (ime-force-on)) ++ (setq current-input-method nil) ++ (run-hooks 'input-method-deactivate-hook) ++ (run-hooks 'w32-ime-off-hook) ++ (setq describe-current-input-method-function nil) ++ (ime-force-off)) ++ (w32-ime-mode-line-update)) ++ ++(register-input-method "W32-IME" "Japanese" 'w32-ime-state-switch "" ++ "W32 System IME") ++ ++(provide 'w32-ime) +--- ./lisp/language/japan-util.el.orig 2015-02-02 02:27:17.000000000 +0900 ++++ ./lisp/language/japan-util.el 2015-04-11 07:28:36.242154100 +0900 +@@ -31,9 +31,11 @@ + (defun setup-japanese-environment-internal () + ;; By default, we use 'japanese-iso-8bit for file names. But, the + ;; following prefer-coding-system will override it. +- (if (memq system-type '(windows-nt ms-dos cygwin)) ++ (if (memq system-type '(windows-nt ms-dos)) + (prefer-coding-system 'japanese-shift-jis) +- (prefer-coding-system 'japanese-iso-8bit)) ++ (if (eq system-type 'cygwin) ++ (prefer-coding-system 'utf-8) ++ (prefer-coding-system 'japanese-iso-8bit))) + (use-cjk-char-width-table 'ja_JP)) + + (defconst japanese-kana-table +--- ./lisp/loadup.el.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./lisp/loadup.el 2015-04-11 07:28:36.246148800 +0900 +@@ -250,6 +250,7 @@ + (load "term/w32-win") + (load "disp-table") + (load "w32-common-fns") ++ (load "international/w32-ime") + (when (eq system-type 'windows-nt) + (load "w32-fns") + (load "ls-lisp") +--- ./lisp/startup.el.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./lisp/startup.el 2015-04-11 07:28:36.251149200 +0900 +@@ -595,6 +595,7 @@ + (put 'user-full-name 'standard-value + (list (default-value 'user-full-name))) + ;; If the PWD environment variable isn't accurate, delete it. ++ (set-language-environment "japanese") + (let ((pwd (getenv "PWD"))) + (and (stringp pwd) + ;; Use FOO/., so that if FOO is a symlink, file-attributes +--- ./src/frame.c.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./src/frame.c 2015-04-11 07:28:36.256148100 +0900 +@@ -2744,6 +2744,9 @@ + {"fullscreen", &Qfullscreen}, + {"font-backend", &Qfont_backend}, + {"alpha", &Qalpha}, ++#ifdef USE_W32_IME ++ {"ime-font", &Qime_font}, ++#endif /* USE_W32_IME */ + {"sticky", &Qsticky}, + {"tool-bar-position", &Qtool_bar_position}, + }; +--- ./src/frame.h.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./src/frame.h 2015-04-11 07:28:36.274150400 +0900 +@@ -1217,6 +1217,9 @@ + extern Lisp_Object Qbuffer_predicate; + extern Lisp_Object Qcursor_color, Qcursor_type; + extern Lisp_Object Qfont; ++#ifdef USE_W32_IME ++extern Lisp_Object Qime_font; ++#endif /* USE_W32_IME */ + extern Lisp_Object Qbackground_color, Qforeground_color; + extern Lisp_Object Qicon, Qicon_name, Qicon_type, Qicon_left, Qicon_top; + extern Lisp_Object Qinternal_border_width; +--- ./src/keyboard.c.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./src/keyboard.c 2015-04-11 07:28:36.283150900 +0900 +@@ -4779,7 +4779,11 @@ + "junja", /* VK_JUNJA 0x17 */ + "final", /* VK_FINAL 0x18 */ + "kanji", /* VK_KANJI/VK_HANJA 0x19 */ ++#ifdef USE_W32_IME ++ "compend", /* VK_COMPEND 0x1A */ ++#else + 0, /* 0x1A */ ++#endif /* USE_W32_IME */ + "escape", /* VK_ESCAPE 0x1B */ + "convert", /* VK_CONVERT 0x1C */ + "non-convert", /* VK_NONCONVERT 0x1D */ +@@ -8851,6 +8855,13 @@ + { + ptrdiff_t count = SPECPDL_INDEX (); + ++ /* To control IME */ ++#ifdef USE_W32_IME ++ extern Lisp_Object Fime_force_on (), Fime_force_off (), Fime_get_mode (); ++ Lisp_Object VIME_command_off_flag = Qnil; ++ Lisp_Object IME_command_loop_flag = Qnil; ++#endif /* USE_W32_IME */ ++ + /* How many keys there are in the current key sequence. */ + int t; + +@@ -8966,6 +8977,12 @@ + keybuf[0..mock_input] holds the sequence we should reread. */ + replay_sequence: + ++#ifdef USE_W32_IME ++/* If key sequences are to replay, IME_loop_flag should not be set. ++ Because event has never been occured. */ ++ IME_command_loop_flag = Qnil; ++#endif /* USE_W32_IME */ ++ + starting_buffer = current_buffer; + first_unbound = bufsize + 1; + +@@ -9045,6 +9062,16 @@ + goto replay_sequence; + } + ++#ifdef USE_W32_IME ++ if (!NILP (IME_command_loop_flag) && NILP (VIME_command_off_flag)) ++ { ++ VIME_command_off_flag = Fime_get_mode (); ++ if (!NILP (VIME_command_off_flag)) ++ Fime_force_off (Qnil); ++ } ++ IME_command_loop_flag = Qt; ++#endif /* USE_W32_IME */ ++ + if (t >= bufsize) + error ("Key sequence too long"); + +@@ -9708,6 +9735,12 @@ + ? Fcommand_remapping (read_key_sequence_cmd, Qnil, Qnil) + : Qnil; + ++ /* to control IME */ ++#ifdef USE_W32_IME ++ if (!NILP (VIME_command_off_flag)) ++ Fime_force_on (Qnil); ++#endif /* USE_W32_IME */ ++ + unread_switch_frame = delayed_switch_frame; + unbind_to (count, Qnil); + +--- ./src/lisp.mk.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./src/lisp.mk 2015-04-11 07:28:36.292151800 +0900 +@@ -152,6 +152,7 @@ + $(lispsource)/term/w32-win.elc \ + $(lispsource)/ls-lisp.elc \ + $(lispsource)/disp-table.elc \ ++ $(lispsource)/international/w32-ime.elc \ + $(lispsource)/w32-common-fns.elc \ + $(lispsource)/dos-w32.elc \ + $(lispsource)/w32-fns.elc \ +--- ./src/w32fns.c.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./src/w32fns.c 2015-04-11 07:28:36.305152300 +0900 +@@ -89,6 +89,18 @@ + extern const char *map_w32_filename (const char *, const char **); + extern char * w32_strerror (int error_no); + ++#ifdef RECONVERSION ++#define CHRSZ sizeof(short) ++#define RECONV_LENG 100 ++#define DOCFEED_LENG 100 ++static LRESULT w32_get_ime_reconversion_string (HWND, RECONVERTSTRING*); ++static BOOL w32_perform_reconversion (HWND, RECONVERTSTRING*); ++#ifdef DOCUMENTFEED ++#define DOCFEED_CSTR_LENG 64 ++static LRESULT w32_get_ime_documentfeed_string (HWND, RECONVERTSTRING*); ++#endif ++#endif ++ + /* If non-NULL, a handle to a frame where to display the hourglass cursor. */ + static HWND hourglass_hwnd = NULL; + +@@ -98,6 +110,37 @@ + + Lisp_Object Qsuppress_icon; + Lisp_Object Qundefined_color; ++ ++#ifdef USE_W32_IME ++Lisp_Object Qw32_ime_buffer_switch_p; ++Lisp_Object Qime_font; ++static int set_ime_font = 0; ++static LOGFONT ime_logfont = {0}; ++static int IME_event_off_count; ++Lisp_Object Fime_get_mode(); ++const char * const ImmGetOpenStatus_Name = "ImmGetOpenStatus"; ++const char * const ImmSetOpenStatus_Name = "ImmSetOpenStatus"; ++const char * const ImmSetCompositionWindow_Name = "ImmSetCompositionWindow"; ++const char * const ImmGetContext_Name = "ImmGetContext"; ++const char * const ImmGetConversionStatus_Name = "ImmGetConversionStatus"; ++const char * const ImmSetConversionStatus_Name = "ImmSetConversionStatus"; ++const char * const ImmNotifyIME_Name = "ImmNotifyIME"; ++ ++const char * const ImmReleaseContext_Name = "ImmReleaseContext"; ++const char * const ImmCreateContext_Name = "ImmCreateContext"; ++const char * const ImmDestroyContext_Name = "ImmDestroyContext"; ++const char * const ImmAssociateContext_Name = "ImmAssociateContext"; ++const char * const ImmGetHotKey_Name = "ImmGetHotKey"; ++const char * const ImmGetProperty_Name = "ImmGetProperty"; ++const char * const ImmGetCompositionString_Name = "ImmGetCompositionStringW"; ++const char * const ImmSetCompositionString_Name = "ImmSetCompositionStringW"; ++const char * const ImmSetCompositionFont_Name = "ImmSetCompositionFontA"; /* LOGFONTA */ ++const char * const ImmGetConversionList_Name = "ImmGetConversionListW"; ++const char * const ImmConfigureIME_Name = "ImmConfigureIMEW"; ++const char * const ImmGetCandidateList_Name = "ImmGetCandidateListW"; ++const char * const ImmGetCandidateListCount_Name = "ImmGetCandidateListCountW"; ++#endif ++ + Lisp_Object Qcancel_timer; + Lisp_Object Qfont_param; + Lisp_Object Qhyper; +@@ -171,12 +214,14 @@ + + typedef BOOL (WINAPI * TrackMouseEvent_Proc) + (IN OUT LPTRACKMOUSEEVENT lpEventTrack); ++#ifndef USE_W32_IME + typedef LONG (WINAPI * ImmGetCompositionString_Proc) + (IN HIMC context, IN DWORD index, OUT LPVOID buffer, IN DWORD bufLen); + typedef HIMC (WINAPI * ImmGetContext_Proc) (IN HWND window); + typedef HWND (WINAPI * ImmReleaseContext_Proc) (IN HWND wnd, IN HIMC context); + typedef HWND (WINAPI * ImmSetCompositionWindow_Proc) (IN HIMC context, + IN COMPOSITIONFORM *form); ++#endif /* !USE_W32_IME */ + typedef HMONITOR (WINAPI * MonitorFromPoint_Proc) (IN POINT pt, IN DWORD flags); + typedef BOOL (WINAPI * GetMonitorInfo_Proc) + (IN HMONITOR monitor, OUT struct MONITOR_INFO* info); +@@ -188,10 +233,12 @@ + (IN HDC hdc, IN RECT *rcClip, IN MonitorEnum_Proc fnEnum, IN LPARAM dwData); + + TrackMouseEvent_Proc track_mouse_event_fn = NULL; ++#ifndef USE_W32_IME + ImmGetCompositionString_Proc get_composition_string_fn = NULL; + ImmGetContext_Proc get_ime_context_fn = NULL; + ImmReleaseContext_Proc release_ime_context_fn = NULL; + ImmSetCompositionWindow_Proc set_ime_composition_window_fn = NULL; ++#endif /* !USE_W32_IME */ + MonitorFromPoint_Proc monitor_from_point_fn = NULL; + GetMonitorInfo_Proc get_monitor_info_fn = NULL; + MonitorFromWindow_Proc monitor_from_window_fn = NULL; +@@ -203,8 +250,10 @@ + extern AppendMenuW_Proc unicode_append_menu; + #endif /* NTGUI_UNICODE */ + ++#ifndef USE_W32_IME + /* Flag to selectively ignore WM_IME_CHAR messages. */ + static int ignore_ime_char = 0; ++#endif + + /* W95 mousewheel handler */ + unsigned int msh_mousewheel = 0; +@@ -337,6 +386,17 @@ + void x_set_title (struct frame *, Lisp_Object, Lisp_Object); + void x_set_tool_bar_lines (struct frame *, Lisp_Object, Lisp_Object); + ++#ifdef USE_W32_IME ++static void w32_set_ime_conv_window (HWND, struct frame *); ++static void w32_set_ime_status (HWND, int); ++static int w32_get_ime_status (HWND); ++static int w32_set_ime_mode (HWND, int, int); ++void w32_set_ime_logfont (HWND, struct frame *); ++static void w32_set_ime_font (HWND); ++static BOOL w32_get_ime_composition_string (HWND); ++static LRESULT CALLBACK conversion_agent_wndproc (HWND, UINT, WPARAM, LPARAM); ++static int initialize_conversion_agent (void); ++#endif /* USE_W32_IME */ + + + +@@ -1985,12 +2045,20 @@ + + if (hwnd) + { ++ static int initialized = 0; ++ + SetWindowLong (hwnd, WND_FONTWIDTH_INDEX, FRAME_COLUMN_WIDTH (f)); + SetWindowLong (hwnd, WND_LINEHEIGHT_INDEX, FRAME_LINE_HEIGHT (f)); + SetWindowLong (hwnd, WND_BORDER_INDEX, FRAME_INTERNAL_BORDER_WIDTH (f)); + SetWindowLong (hwnd, WND_SCROLLBAR_INDEX, FRAME_SCROLL_BAR_AREA_WIDTH (f)); + SetWindowLong (hwnd, WND_BACKGROUND_INDEX, FRAME_BACKGROUND_PIXEL (f)); + ++ if (!initialized && (w32_major_version > 6 || w32_major_version >= 6 && w32_minor_version >= 2)) ++ { ++ ShowWindow (hwnd, SW_MINIMIZE); ShowWindow (hwnd, SW_RESTORE); ++ initialized = 1; ++ } ++ + /* Enable drag-n-drop. */ + DragAcceptFiles (hwnd, TRUE); + +@@ -3149,6 +3217,24 @@ + TranslateMessage (&windows_msg); + goto dflt; + } ++#ifdef USE_W32_IME ++ else ++ { ++ MSG ime_undo_test_msg; ++ ++ if (wParam == VK_BACK ++ && ctrl_modifier == w32_get_key_modifiers (wParam, lParam) ++ && w32_get_ime_status (hwnd) != 0 ++ && PeekMessage (&ime_undo_test_msg, hwnd, WM_KEYDOWN, WM_KEYDOWN, PM_NOYIELD | PM_NOREMOVE) != 0 ++ && ime_undo_test_msg.wParam == VK_BACK ++ && ime_undo_test_msg.lParam == 0x40000001 ++ ) ++ { ++ post_character_message (hwnd, msg, wParam, lParam, 0); ++ break; ++ } ++ } ++#endif + + /* Fall through */ + +@@ -3168,6 +3254,7 @@ + w32_get_key_modifiers (wParam, lParam)); + break; + ++#ifndef USE_W32_IME + case WM_UNICHAR: + /* WM_UNICHAR looks promising from the docs, but the exact + circumstances in which TranslateMessage sends it is one of those +@@ -3286,6 +3373,7 @@ + case WM_IME_ENDCOMPOSITION: + ignore_ime_char = 0; + goto dflt; ++#endif /* USE_W32_IME */ + + /* Simulate middle mouse button events when left and right buttons + are used together, but only if user has two button mouse. */ +@@ -4074,8 +4162,82 @@ + case WM_EMACS_FILENOTIFY: + my_post_msg (&wmsg, hwnd, msg, wParam, lParam); + return 1; ++#ifdef USE_W32_IME ++ case WM_IME_NOTIFY: ++ if (wParam == IMN_SETOPENSTATUS) ++ { ++ if (w32_get_ime_status(hwnd)){ ++ struct frame *f = x_window_to_frame (dpyinfo, hwnd); ++ if (f) { ++ set_ime_font = 0; ++ w32_set_ime_conv_window (hwnd, f); ++ } ++ } ++ if (!IME_event_off_count) ++ my_post_msg (&wmsg, hwnd, WM_MULE_IME_STATUS, 0, 0); ++ else ++ IME_event_off_count--; ++ } ++ goto dflt; ++ ++ case WM_IME_STARTCOMPOSITION: ++ { ++ struct frame *f = x_window_to_frame (dpyinfo, hwnd); ++ if (f && !set_ime_font) ++ { ++ my_post_msg (&wmsg, hwnd, WM_MULE_IME_SET_FONT, (WPARAM) f, 0); ++ set_ime_font = 1; ++ } ++ } ++ goto dflt; ++ ++ case WM_IME_SETCONTEXT: ++ set_ime_font = 0; ++ goto dflt; ++ ++ case WM_IME_COMPOSITION: ++ if (lParam & GCS_RESULTSTR) ++ if (w32_get_ime_composition_string (hwnd)) ++ return 0; ++ else ++ break; ++ goto dflt; ++ ++#ifdef RECONVERSION ++ case WM_IME_REQUEST: ++ if (wParam == IMR_RECONVERTSTRING) ++ { ++ if (!ime_enable_reconversion || !w32_get_ime_status (hwnd)) ++ return 0; ++ if (lParam) ++ return w32_get_ime_reconversion_string (hwnd, ++ (RECONVERTSTRING*) lParam); ++ else ++ return sizeof (RECONVERTSTRING) + (RECONV_LENG * 2 + 1) * CHRSZ; ++ } ++#ifdef DOCUMENTFEED ++ else if (wParam == IMR_DOCUMENTFEED) ++ { ++ if (!ime_enable_document_feed) ++ return 0; ++ if (lParam) ++ return w32_get_ime_documentfeed_string (hwnd, ++ (RECONVERTSTRING*) lParam); ++ else ++ return sizeof (RECONVERTSTRING) + (DOCFEED_LENG * 2 + DOCFEED_CSTR_LENG + 1) * CHRSZ; ++ } ++#endif ++ goto dflt; ++#endif ++#endif /* USE_W32_IME */ + + default: ++ ++#ifdef USE_W32_IME ++ if (MESSAGE_IMM_COM_P(msg)) ++ return conversion_agent_wndproc (hwnd, msg, wParam, lParam); ++#endif /* USE_W32_IME */ ++ + /* Check for messages registered at runtime. */ + if (msg == msh_mousewheel) + { +@@ -4370,6 +4532,10 @@ + x_set_frame_parameters (f, Fcons (Fcons (Qfont_param, font_param), Qnil)); + } + x_default_parameter (f, parms, Qfont, font, "font", "Font", RES_TYPE_STRING); ++#ifdef USE_W32_IME ++ x_default_parameter (f, parms, Qime_font, Qnil, ++ "ime-font", "IME-Font", RES_TYPE_STRING); ++#endif + } + + DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, +@@ -6895,6 +7061,1025 @@ + + + /*********************************************************************** ++ Input Method Editor ++ ***********************************************************************/ ++#ifdef USE_W32_IME ++BOOL fIME = FALSE; ++ ++typedef BOOL (WINAPI *IMMGETOPENSTATUSPROC)(HIMC); ++IMMGETOPENSTATUSPROC ImmGetOpenStatusProc; ++ ++typedef BOOL (WINAPI *IMMSETOPENSTATUSPROC)(HIMC, BOOL); ++IMMSETOPENSTATUSPROC ImmSetOpenStatusProc; ++ ++typedef BOOL (WINAPI *IMMSETCOMPOSITIONWINDOWPROC)(HIMC, LPCOMPOSITIONFORM); ++IMMSETCOMPOSITIONWINDOWPROC ImmSetCompositionWindowProc; ++ ++typedef LONG (WINAPI *IMMGETCOMPOSITIONSTRINGPROC) ++ (HIMC, DWORD, LPVOID, DWORD); ++IMMGETCOMPOSITIONSTRINGPROC ImmGetCompositionStringProc; ++ ++typedef LONG (WINAPI *IMMSETCOMPOSITIONSTRINGPROC) ++ (HIMC, DWORD, LPCVOID, DWORD, LPCVOID, DWORD); ++IMMSETCOMPOSITIONSTRINGPROC ImmSetCompositionStringProc; ++ ++typedef BOOL (WINAPI *IMMSETCOMPOSITIONFONTPROC) (HIMC, LPLOGFONTA); ++IMMSETCOMPOSITIONFONTPROC ImmSetCompositionFontProc; ++ ++typedef HIMC (WINAPI *IMMGETCONTEXTPROC)(HWND); ++IMMGETCONTEXTPROC ImmGetContextProc; ++ ++typedef BOOL (WINAPI *IMMGETCONVERSIONSTATUSPROC)(HIMC, LPDWORD, LPDWORD); ++IMMGETCONVERSIONSTATUSPROC ImmGetConversionStatusProc; ++ ++typedef BOOL (WINAPI *IMMSETCONVERSIONSTATUSPROC)(HIMC, DWORD, DWORD); ++IMMSETCONVERSIONSTATUSPROC ImmSetConversionStatusProc; ++ ++typedef BOOL (WINAPI *IMMGETCONVERSIONLISTPROC) ++ (HKL, HIMC, LPCTSTR, LPCANDIDATELIST, DWORD, UINT); ++IMMGETCONVERSIONLISTPROC ImmGetConversionListProc; ++ ++typedef BOOL (WINAPI *IMMCONFIGUREIMEPROC)(HKL, HWND, DWORD, LPVOID); ++IMMCONFIGUREIMEPROC ImmConfigureIMEProc; ++ ++typedef BOOL (WINAPI *IMMNOTIFYIMEPROC)(HIMC, DWORD, DWORD, DWORD); ++IMMNOTIFYIMEPROC ImmNotifyIMEProc; ++ ++typedef BOOL (WINAPI *IMMRELEASECONTEXTPROC)(HWND, HIMC); ++IMMRELEASECONTEXTPROC ImmReleaseContextProc; ++ ++typedef HIMC (WINAPI *IMMCREATECONTEXTPROC)(void); ++IMMCREATECONTEXTPROC ImmCreateContextProc; ++ ++typedef BOOL (WINAPI *IMMDESTROYCONTEXTPROC)(HIMC); ++IMMDESTROYCONTEXTPROC ImmDestroyContextProc; ++ ++typedef HIMC (WINAPI *IMMASSOCIATECONTEXTPROC) (HWND, HIMC); ++IMMASSOCIATECONTEXTPROC ImmAssociateContextProc; ++ ++typedef BOOL (WINAPI *IMMGETCANDIDATELISTPROC) ++ (HIMC, DWORD, LPCANDIDATELIST, DWORD); ++IMMGETCANDIDATELISTPROC ImmGetCandidateListProc; ++ ++typedef BOOL (WINAPI *IMMGETCANDIDATELISTCOUNTPROC) (HIMC, LPDWORD); ++IMMGETCANDIDATELISTCOUNTPROC ImmGetCandidateListCountProc; ++ ++typedef BOOL (WINAPI *IMMGETHOTKEYPROC)(DWORD, LPUINT, LPUINT, LPHKL); ++IMMGETHOTKEYPROC ImmGetHotKeyProc; ++ ++typedef BOOL (WINAPI *IMMGETPROPERTYPROC)(HKL, DWORD); ++IMMGETPROPERTYPROC ImmGetPropertyProc; ++ ++// Lisp_Object Vime_control; ++ ++static void ++w32_set_ime_conv_window (hwnd, f) ++ HWND hwnd; ++ struct frame *f; ++{ ++ if (fIME && !NILP (Vime_control)) ++ { ++ HIMC himc; ++ COMPOSITIONFORM compform; ++ struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f)); ++ ++ /* If Vw32_ime_composition_window is set, try it. */ ++ if (!NILP (Vw32_ime_composition_window) ++ && WINDOWP (Vw32_ime_composition_window) ++ && WINDOW_FRAME (XWINDOW (Vw32_ime_composition_window)) ++ == WINDOW_FRAME (w)) ++ w = XWINDOW (Vw32_ime_composition_window); ++ ++ himc = (ImmGetContextProc) (hwnd); ++ compform.dwStyle = CFS_RECT; ++ ++ compform.ptCurrentPos.x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x); ++ ++ compform.ptCurrentPos.y = WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y); ++#if 0 ++ if (FRAME_FONT (f)->vertical_centering == 1) ++ compform.ptCurrentPos.y += FRAME_FONT (f)->baseline_offset; ++#endif ++ ++ compform.rcArea.left = (WINDOW_BOX_LEFT_EDGE_X (w) ++ + WINDOW_LEFT_MARGIN_WIDTH (w) ++ + WINDOW_LEFT_FRINGE_WIDTH (w)); ++ ++ compform.rcArea.top = (WINDOW_TOP_EDGE_Y (w) ++ + WINDOW_HEADER_LINE_HEIGHT (w)); ++ ++ compform.rcArea.right = (WINDOW_BOX_RIGHT_EDGE_X (w) ++ - WINDOW_RIGHT_MARGIN_WIDTH (w) ++ - WINDOW_RIGHT_FRINGE_WIDTH (w)) + 1; ++ ++ compform.rcArea.bottom = (WINDOW_BOTTOM_EDGE_Y (w) ++ - WINDOW_MODE_LINE_HEIGHT (w)); ++ ++ (ImmSetCompositionWindowProc) (himc, &compform); ++ (ImmReleaseContextProc) (hwnd, himc); ++ } ++} ++ ++static void ++w32_set_ime_status (hwnd, openp) ++ HWND hwnd; ++ int openp; ++{ ++ HIMC himc; ++ ++ himc = (ImmGetContextProc) (hwnd); ++ (ImmSetOpenStatusProc) (himc, openp); ++ (ImmReleaseContextProc) (hwnd, himc); ++} ++ ++static int ++w32_get_ime_status (hwnd) ++ HWND hwnd; ++{ ++ HIMC himc; ++ int ret; ++ ++ himc = (ImmGetContextProc) (hwnd); ++ ret = (ImmGetOpenStatusProc) (himc); ++ (ImmReleaseContextProc) (hwnd, himc); ++ ++ return ret; ++} ++ ++static int ++w32_set_ime_mode (hwnd, mode, mask) ++ HWND hwnd; ++ int mode; ++ int mask; ++{ ++ HIMC himc; ++ DWORD cmode, smode; ++ ++ himc = (ImmGetContextProc) (hwnd); ++ if (!(ImmGetConversionStatusProc) (himc, &cmode, &smode)) ++ return 0; ++ ++ cmode = (cmode & (~mask)) | (mode & mask); ++ ++ (ImmSetConversionStatusProc) (himc, cmode, smode); ++ (ImmReleaseContextProc) (hwnd, himc); ++ ++ return 1; ++} ++ ++static BOOL ++w32_get_ime_composition_string (hwnd) ++ HWND hwnd; ++{ ++ HIMC hIMC; ++ int size; ++ HANDLE himestr; ++ LPWSTR lpstr; ++ ++ struct frame *f; ++ ++ hIMC = (ImmGetContextProc) (hwnd); ++ if (!hIMC) ++ return FALSE; ++ ++ size = (ImmGetCompositionStringProc) (hIMC, GCS_RESULTSTR, NULL, 0); ++ size += sizeof (WCHAR); ++ himestr = HeapAlloc (GetProcessHeap (), HEAP_ZERO_MEMORY, size); ++ if (!himestr) ++ abort (); ++ ++ (ImmGetCompositionStringProc) (hIMC, GCS_RESULTSTR, himestr, size); ++ (ImmReleaseContextProc) (hwnd, hIMC); ++ { ++ W32Msg wmsg; ++ f = SELECTED_FRAME (); ++ my_post_msg (&wmsg, hwnd, WM_MULE_IME_REPORT, ++ (WPARAM) himestr, (LPARAM) f); ++ } ++ return TRUE; ++} ++ ++#ifdef RECONVERSION ++ ++static EMACS_INT compstr_beginning_pos(int max_char) ++{ ++ EMACS_INT bol, point = PT, pt; ++ for (bol = XFASTINT(Fline_beginning_position(Qnil)), pt = PT; ++ PT >= bol && PT > point - max_char; ) { ++ pt = PT; ++ if (NILP(Fforward_word (make_number (-1)))) ++ break; ++ } ++ Fgoto_char (make_number(point)); ++ return pt; ++} ++ ++static EMACS_INT compstr_end_pos(int max_char) ++{ ++ EMACS_INT eol, point = PT, pt; ++ ++ for (eol = XFASTINT(Fline_end_position(Qnil)), pt = PT; ++ PT <= eol && PT < point + max_char;) { ++ pt = PT; ++ if (NILP(Fforward_word (make_number (1)))) ++ break; ++ } ++ Fgoto_char (make_number(point)); ++ return pt; ++} ++ ++static LRESULT ++get_reconversion_string (HWND hwnd, ++ RECONVERTSTRING *reconv, ++ unsigned short *compstr) ++{ ++ EMACS_INT pt, pt_byte, start, end, len, t_start, t_end, compstr_len; ++ W32Msg wmsg; ++ ++ if (!NILP (BVAR (current_buffer, read_only))) ++ return 0; ++ ++ pt = PT; ++ pt_byte = PT_BYTE; ++ ++ if (compstr) ++ { ++ t_start = PT; ++ start = compstr_beginning_pos (DOCFEED_LENG); ++ end = compstr_end_pos (DOCFEED_LENG); ++ } ++ else if (!NILP (BVAR (current_buffer, mark_active)) ++ && !NILP (Vtransient_mark_mode)) ++ { ++ if (marker_position (BVAR (current_buffer, mark)) < PT) ++ { ++ t_start = marker_position (BVAR (current_buffer, mark)); ++ t_end = PT; ++ } ++ else ++ { ++ t_start = PT; ++ t_end = marker_position (BVAR (current_buffer, mark)); ++ } ++ Fgoto_char (make_number (t_end)); ++ while (!NILP (Fbolp ()) && t_start < PT) ++ Fforward_char (make_number (-1)); ++ if (t_start >= PT) ++ return 0; ++ t_end = PT; ++ } ++ else ++ { ++ if (NILP (Feobp ())) ++ Fforward_char (make_number (1)); ++ if (!NILP (Fforward_word (make_number (-1)))) ++ t_start = PT; ++ else ++ { ++ SET_PT_BOTH (pt, pt_byte); ++ return 0; ++ } ++ Fforward_word (make_number (1)); ++ t_end = PT; ++ SET_PT_BOTH (pt, pt_byte); ++ if (t_end < PT) ++ return 0; ++ } ++ ++ if (!compstr) ++ { ++ if (t_start == t_end) ++ return 0; ++ ++ Fgoto_char (make_number (t_start)); ++ start = compstr_beginning_pos (RECONV_LENG); ++ Fgoto_char (make_number (t_end)); ++ end = compstr_end_pos (RECONV_LENG); ++ } ++ ++ len = end - start; ++ if (reconv) ++ { ++ int pos; ++ WCHAR *s; ++ ++ s = (WCHAR *) (reconv + 1); ++ ++ for (pos = start; pos < t_start; pos++) ++ *s++ = (WCHAR) FETCH_CHAR (CHAR_TO_BYTE (pos)); ++ ++ if (compstr) ++ { ++ for (compstr_len = 0; compstr[compstr_len]; compstr_len++) ++ *s++ = compstr[compstr_len]; ++ ++ len += compstr_len; ++ } ++ else ++ compstr_len = t_end - t_start; ++ ++ for (; pos < end; pos++) ++ *s++ = (WCHAR) FETCH_CHAR (CHAR_TO_BYTE (pos)); ++ ++ *s = 0; ++ } ++ else ++ { ++ SET_PT_BOTH (pt, pt_byte); ++ if (compstr) ++ { ++ for (compstr_len = 0; compstr[compstr_len]; compstr_len++) ++ ; ++ ++ len += compstr_len; ++ } ++ return (sizeof (RECONVERTSTRING) + (len + 1) * CHRSZ); ++ } ++ ++ reconv->dwStrOffset = sizeof (RECONVERTSTRING); ++ reconv->dwStrLen = len; ++ reconv->dwCompStrOffset = ++ reconv->dwTargetStrOffset = (t_start - start) * CHRSZ; ++ reconv->dwCompStrLen = ++ reconv->dwTargetStrLen = compstr_len; ++ ++ if (!compstr) ++ my_post_msg (&wmsg, hwnd, WM_MULE_IME_DEL_RANGE, (WPARAM) t_start, (LPARAM) t_end); ++ ++ return (reconv->dwSize = sizeof (RECONVERTSTRING) + (len + 1) * CHRSZ); ++} ++ ++static LRESULT ++w32_get_ime_reconversion_string (HWND hwnd, ++ RECONVERTSTRING *reconv) ++{ ++ return get_reconversion_string (hwnd, reconv, NULL); ++} ++#endif /* RECONVERSION */ ++ ++#if defined(DOCUMENTFEED) ++static LRESULT ++w32_get_ime_documentfeed_string (HWND hwnd, ++ RECONVERTSTRING *reconv) ++{ ++ unsigned short ime_compstr[DOCFEED_CSTR_LENG]; ++ HIMC hIMC; ++ LONG l; ++ ++ if (hIMC = (ImmGetContextProc) (hwnd)) ++ { ++ if ((ImmGetCompositionStringProc) (hIMC, GCS_COMPSTR, NULL, 0) ++ >= DOCFEED_CSTR_LENG * CHRSZ) ++ { ++ (ImmReleaseContextProc) (hwnd, hIMC); ++ return 0; ++ } ++ ++ switch (l = (ImmGetCompositionStringProc) ++ (hIMC, GCS_COMPSTR, ime_compstr, ++ (DOCFEED_CSTR_LENG - 1) * CHRSZ)) ++ { ++ case IMM_ERROR_NODATA: ++ case IMM_ERROR_GENERAL: ++ ime_compstr[0] = 0; ++ break; ++ default: ++ ime_compstr[l / CHRSZ] = 0; ++ break; ++ } ++ (ImmReleaseContextProc) (hwnd, hIMC); ++ ++ return get_reconversion_string (hwnd, reconv, ime_compstr); ++ } ++ ++ return 0; ++} ++#endif /* DOCUMENTFEED */ ++ ++void ++w32_ime_control_init (void) ++{ ++ HMODULE hImm32; ++ HMODULE hUser32; ++ ++ hImm32 = GetModuleHandle ("IMM32.DLL"); ++ if (!hImm32) ++ hImm32 = LoadLibrary ("IMM32.DLL"); ++ ++ fIME = FALSE; ++ Vime_control = Qnil; ++ IME_event_off_count = 0; ++ ++ if (hImm32) ++ { ++ ImmGetOpenStatusProc = ++ (IMMGETOPENSTATUSPROC) ++ GetProcAddress (hImm32, ++ ImmGetOpenStatus_Name); ++ ImmSetOpenStatusProc = ++ (IMMSETOPENSTATUSPROC) ++ GetProcAddress (hImm32, ++ ImmSetOpenStatus_Name); ++ ImmSetCompositionWindowProc = ++ (IMMSETCOMPOSITIONWINDOWPROC) ++ GetProcAddress (hImm32, ++ ImmSetCompositionWindow_Name); ++ ImmGetContextProc = ++ (IMMGETCONTEXTPROC) ++ GetProcAddress (hImm32, ++ ImmGetContext_Name); ++ ImmGetConversionStatusProc = ++ (IMMGETCONVERSIONSTATUSPROC) ++ GetProcAddress (hImm32, ++ ImmGetConversionStatus_Name); ++ ImmSetConversionStatusProc = ++ (IMMSETCONVERSIONSTATUSPROC) ++ GetProcAddress (hImm32, ++ ImmSetConversionStatus_Name); ++ ImmNotifyIMEProc = ++ (IMMNOTIFYIMEPROC) ++ GetProcAddress (hImm32, ++ ImmNotifyIME_Name); ++ ImmReleaseContextProc = ++ (IMMRELEASECONTEXTPROC) ++ GetProcAddress (hImm32, ++ ImmReleaseContext_Name); ++ ImmCreateContextProc = ++ (IMMCREATECONTEXTPROC) ++ GetProcAddress (hImm32, ++ ImmCreateContext_Name); ++ ImmDestroyContextProc = ++ (IMMDESTROYCONTEXTPROC) ++ GetProcAddress (hImm32, ++ ImmDestroyContext_Name); ++ ImmAssociateContextProc = ++ (IMMASSOCIATECONTEXTPROC) ++ GetProcAddress (hImm32, ++ ImmAssociateContext_Name); ++ ImmGetHotKeyProc = ++ (IMMGETHOTKEYPROC) ++ GetProcAddress (hImm32, ++ ImmGetHotKey_Name); ++ ImmGetPropertyProc = ++ (IMMGETPROPERTYPROC) ++ GetProcAddress (hImm32, ImmGetProperty_Name); ++ ImmGetCompositionStringProc = ++ (IMMGETCOMPOSITIONSTRINGPROC) ++ GetProcAddress (hImm32, ImmGetCompositionString_Name); ++ ImmSetCompositionStringProc = ++ (IMMSETCOMPOSITIONSTRINGPROC) ++ GetProcAddress (hImm32, ImmSetCompositionString_Name); ++ ImmSetCompositionFontProc = ++ (IMMSETCOMPOSITIONFONTPROC) ++ GetProcAddress (hImm32, ImmSetCompositionFont_Name); ++ ImmGetConversionListProc = ++ (IMMGETCONVERSIONLISTPROC) ++ GetProcAddress (hImm32, ++ ImmGetConversionList_Name); ++ ImmConfigureIMEProc = ++ (IMMCONFIGUREIMEPROC) ++ GetProcAddress (hImm32, ++ ImmConfigureIME_Name); ++ ImmGetCandidateListProc = ++ (IMMGETCANDIDATELISTPROC) ++ GetProcAddress (hImm32, ++ ImmGetCandidateList_Name); ++ ImmGetCandidateListCountProc = ++ (IMMGETCANDIDATELISTCOUNTPROC) ++ GetProcAddress (hImm32, ++ ImmGetCandidateListCount_Name); ++ ++ if (ImmGetOpenStatusProc && ++ ImmSetOpenStatusProc && ++ ImmSetCompositionWindowProc && ++ ImmGetCompositionStringProc && ++ ImmSetCompositionStringProc && ++ ImmSetCompositionFontProc && ++ ImmGetPropertyProc && ++ ImmGetContextProc && ++ ImmGetConversionStatusProc && ++ ImmSetConversionStatusProc && ++ ImmGetConversionListProc && ++ ImmConfigureIMEProc && ++ ImmNotifyIMEProc && ++ ImmReleaseContextProc && ++ ImmCreateContextProc && ++ ImmDestroyContextProc && ++ ImmAssociateContextProc && ++ ImmGetCandidateListProc && ++ ImmGetCandidateListCountProc && ++ ImmGetHotKeyProc) ++ { ++ fIME = TRUE; ++ Vime_control = Qt; ++ } ++ } ++} ++ ++#ifdef HAVE_NTGUI ++static int ++need_set_ime_font (PLOGFONT p) ++{ ++ if (!p || ++ (p->lfHeight == ime_logfont.lfHeight ++ && p->lfWidth == ime_logfont.lfWidth ++ && p->lfEscapement == ime_logfont.lfEscapement ++ && p->lfOrientation == ime_logfont.lfOrientation ++ && p->lfWeight == ime_logfont.lfWeight ++ && p->lfItalic == ime_logfont.lfItalic ++ && p->lfUnderline == ime_logfont.lfUnderline ++ && p->lfStrikeOut == ime_logfont.lfStrikeOut ++ && p->lfCharSet == ime_logfont.lfCharSet ++ && p->lfOutPrecision == ime_logfont.lfOutPrecision ++ && p->lfClipPrecision == ime_logfont.lfClipPrecision ++ && p->lfQuality == ime_logfont.lfQuality ++ && p->lfPitchAndFamily == ime_logfont.lfPitchAndFamily ++ && strncmp (p->lfFaceName, ime_logfont.lfFaceName, LF_FACESIZE) == 0)) ++ return 0; ++ else ++ return 1; ++} ++void ++w32_set_ime_logfont (hwnd, f) ++ HWND hwnd; ++ struct frame *f; ++{ ++ Lisp_Object ime_font = Qnil, temp = Qnil, font = Qnil, family; ++ struct gcpro gcpro1, gcpro2; ++ extern Lisp_Object QCfamily; ++ int fsid = -1; ++ LOGFONT logfont = {0}; ++ ++ if (!IsWindow (hwnd)) ++ return; ++ ++ if (!fIME || NILP(Vime_control)) ++ return; ++ ++ GCPRO2(font, temp); ++ ++ if (STRINGP(ime_font = get_frame_param (f, Qime_font)) ++ /* fontset */ ++ && ((fsid = fs_query_fontset(ime_font, 0)) >= 0 ++ && !NILP(font = fontset_ascii(fsid)) ++ && !NILP(font = font_spec_from_name(font)) ++ && !NILP(temp = Ffontset_font(temp, make_number(0x3042), Qnil)) ++ && !NILP(family = XCAR(temp)) ++ /* font */ ++ || !NILP(font = font_spec_from_name(ime_font)) ++ && SYMBOLP(family = AREF (font, FONT_FAMILY_INDEX)) ++ && STRINGP(family = SYMBOL_NAME(family))) ++ ++ /* use font object */ ++ /* frame-parameter */ ++ || (FONTP(font = ime_font) ++ /* frame fontset */ ++ || ((fsid = FRAME_FONTSET(f)) >= 0 ++ && !NILP(font = ++ Ffont_at(make_number(0), Qnil, ++ temp = Fchar_to_string(make_number(0x3042)))))) ++ && SYMBOLP(family = Ffont_get(font, QCfamily)) ++ && STRINGP(family = SYMBOL_NAME(family)) ++ && !NILP(font = copy_font_spec(font))) { ++ Lisp_Object tail; ++ ++ fill_in_logfont (f, &logfont, font); ++ ++ logfont.lfWidth = 0; ++ ++ family = ENCODE_SYSTEM(family); ++ ++ strcpy(logfont.lfFaceName, SDATA(family)); ++ ++ /* rescale */ ++ for (tail = Vface_font_rescale_alist; CONSP (tail); tail = XCDR (tail)) { ++ temp = XCAR (tail); ++ if (!FLOATP (XCDR (temp))) ++ continue; ++ ++ if (STRINGP (XCAR (temp))) { ++ if (fast_string_match_ignore_case (XCAR (temp), family) >= 0) { ++ logfont.lfHeight *= XFLOAT_DATA (XCDR (temp)); ++ break; ++ } ++ } else if (FONT_SPEC_P (XCAR (temp))) { ++ Lisp_Object name; ++ if (!NILP(name = Ffont_get(XCAR (temp), QCfamily)) && ++ STRINGP(name) && ++ xstrcasecmp(SDATA(name), SDATA(family)) == 0) { ++ logfont.lfHeight *= XFLOAT_DATA (XCDR (temp)); ++ break; ++ } ++ } ++ } ++ } else { ++ HFONT hfont = FONT_HANDLE (FRAME_FONT (f)); ++ GetObject (hfont, sizeof (logfont), &logfont); ++ } ++ UNGCPRO; ++ ++ if (need_set_ime_font (&logfont)) ++ { ++ ime_logfont = logfont; ++ PostMessage (hwnd, WM_MULE_IMM_SET_IMEFONT, (WPARAM) f, 0); ++ } ++} ++static void ++w32_set_ime_font (hwnd) ++ HWND hwnd; ++{ ++ HIMC himc; ++ ++ if (!fIME || NILP (Vime_control)) ++ return; ++ ++ himc = (ImmGetContextProc) (hwnd); ++ if (!himc) ++ return; ++ (ImmSetCompositionFontProc) (himc, &ime_logfont); ++ (ImmReleaseContextProc) (hwnd, himc); ++} ++#endif /* HAVE_NTGUI */ ++ ++static LRESULT CALLBACK ++conversion_agent_wndproc (HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) ++/* HWND hwnd; ++ UINT message; ++ WPARAM wparam; ++ LPARAM lparam; */ ++{ ++ HIMC himc, holdimc; ++ ++ switch (message) ++ { ++ case WM_MULE_IMM_SET_STATUS: ++ if (InSendMessage()) ++ ReplyMessage(1); ++ w32_set_ime_status (hwnd, (int) wparam); ++ break; ++ ++ case WM_MULE_IMM_GET_STATUS: ++ return w32_get_ime_status (hwnd); ++ ++ case WM_MULE_IMM_SET_MODE: ++ return w32_set_ime_mode (hwnd, (int) wparam, (int) lparam); ++ ++ case WM_MULE_IMM_SET_IMEFONT: ++ w32_set_ime_font (hwnd); ++ ++ case WM_MULE_IMM_SET_CONVERSION_WINDOW: ++ if (w32_get_ime_status (hwnd)) ++ w32_set_ime_conv_window (hwnd, (struct frame *) wparam); ++ break; ++ ++#ifdef RECONVERSION ++ case WM_MULE_IMM_PERFORM_RECONVERSION: ++ if (ime_enable_reconversion) ++ w32_perform_reconversion(hwnd, (RECONVERTSTRING*)lparam); ++ break; ++#endif ++ ++#if 0 ++ case WM_MULE_IMM_GET_COMPOSITION_STRING: ++ return w32_get_ime_composition_string (hwnd); ++#endif ++ ++ default: ++ return DefWindowProc (hwnd, message, wparam, lparam); ++ } ++ return 0; ++} ++ ++ ++/* ++ Emacs Lisp function entries ++*/ ++ ++DEFUN ("ime-force-on", Fime_force_on, Sime_force_on, 0, 1, 0, ++ doc: /* Force status of IME open. */) ++ (Lisp_Object eventp) ++{ ++ if (fIME && !NILP (Vime_control)) ++ { ++ HIMC himc; ++ HWND hwnd; ++ ++ if (!NILP (Fime_get_mode ())) ++ return Qnil; ++#ifdef HAVE_NTGUI ++ if (NILP (eventp)) ++ IME_event_off_count++; ++ hwnd = FRAME_W32_WINDOW (SELECTED_FRAME ()); ++#else ++ hwnd = hwndConsole; ++#endif ++ SendMessage (hwnd, WM_MULE_IMM_SET_STATUS, 1, 0); ++ } ++ return Qnil; ++} ++ ++DEFUN ("ime-force-off", Fime_force_off, Sime_force_off, 0, 1, 0, ++ doc: /* Force status of IME close. */) ++ (Lisp_Object eventp) ++{ ++ if (fIME && !NILP (Vime_control)) ++ { ++ HIMC himc; ++ HWND hwnd; ++ ++ if (NILP (Fime_get_mode ())) ++ return Qnil; ++#ifdef HAVE_NTGUI ++ if (NILP (eventp)) ++ IME_event_off_count++; ++ hwnd = FRAME_W32_WINDOW (SELECTED_FRAME ()); ++#else ++ hwnd = hwndConsole; ++#endif ++ SendMessage (hwnd, WM_MULE_IMM_SET_STATUS, 0, 0); ++ } ++ return Qnil; ++} ++ ++DEFUN ("ime-get-mode", Fime_get_mode, Sime_get_mode, 0, 0, "", ++ doc: /* Get IME status. ++t means status of IME is open. nil means it is close. */) ++ (void) ++{ ++ if (fIME && !NILP (Vime_control)) ++ { ++ HWND hwnd; ++ int result; ++ ++#ifdef HAVE_NTGUI ++ hwnd = FRAME_W32_WINDOW (SELECTED_FRAME ()); ++#else ++ hwnd = hwndConsole; ++#endif ++ result = SendMessage (hwnd, WM_MULE_IMM_GET_STATUS, 0, 0); ++ ++ return result ? Qt : Qnil; ++ } ++ else ++ return Qnil; ++} ++ ++DEFUN ("w32-set-ime-mode", ++ Fw32_set_ime_mode, ++ Sw32_set_ime_mode, 1, 2, 0, ++ doc: /* Set IME mode to MODE. If FRAME is omitted, the selected frame is used. */) ++ (Lisp_Object mode, Lisp_Object frame) ++{ ++ struct frame *f; ++ ++ if (NILP (frame)) ++ { ++ f = SELECTED_FRAME (); ++ } ++ else ++ { ++ CHECK_FRAME (frame); ++ f = XFRAME (frame); ++ } ++ if (fIME && !NILP (Vime_control)) ++ { ++ HWND hwnd; ++ int ret; ++ int newmode, mask; ++ ++ newmode = 0; ++ mask = 0; ++ ++ hwnd = FRAME_W32_WINDOW (f); ++ ++ if (EQ (mode, intern ("katakana"))) ++ { ++ newmode |= IME_CMODE_KATAKANA; ++ mask |= IME_CMODE_KATAKANA; ++ } ++ else if (EQ (mode, intern ("hiragana"))) ++ { ++ newmode &= ~IME_CMODE_KATAKANA; ++ mask |= IME_CMODE_KATAKANA; ++ } ++ else if (EQ (mode, intern ("kanji"))) ++ { ++ newmode |= IME_CMODE_HANJACONVERT; ++ mask |= IME_CMODE_HANJACONVERT; ++ } ++ else if (EQ (mode, intern ("nokanji"))) ++ { ++ newmode &= ~IME_CMODE_HANJACONVERT; ++ mask |= IME_CMODE_HANJACONVERT; ++ } ++ else if (EQ (mode, intern ("code"))) ++ { ++ newmode |= IME_CMODE_CHARCODE; ++ mask |= IME_CMODE_CHARCODE; ++ } ++ else if (EQ (mode, intern ("nocode"))) ++ { ++ newmode &= ~IME_CMODE_CHARCODE; ++ mask |= IME_CMODE_CHARCODE; ++ } ++ else if (EQ (mode, intern ("non-convert"))) ++ { ++ newmode |= IME_CMODE_NOCONVERSION; ++ mask |= IME_CMODE_NOCONVERSION; ++ } ++ else if (EQ (mode, intern ("convert"))) ++ { ++ newmode &= ~IME_CMODE_NOCONVERSION; ++ mask |= IME_CMODE_NOCONVERSION; ++ } ++ else ++ error ("unknown mode!!"); ++ ++ ret = SendMessage (hwnd, WM_MULE_IMM_SET_MODE, ++ (WPARAM) newmode, (LPARAM) mask); ++ ++ if (!ret) ++ return Qnil; ++ ++ return Qt; ++ } ++ return Qnil; ++} ++ ++DEFUN ("w32-ime-register-word-dialog", ++ Fw32_ime_register_word_dialog, ++ Sw32_ime_register_word_dialog, 2, 2, 0, ++ doc: /* Open IME regist word dialog. */) ++ (Lisp_Object reading, Lisp_Object word) ++{ ++ HKL hkl; ++ int reading_len, word_len; ++ REGISTERWORD regword; ++ Lisp_Object encoded_reading, encoded_word; ++ ++ CHECK_STRING (reading); ++ CHECK_STRING (word); ++ ++ if (fIME && !NILP (Vime_control) && ImmConfigureIMEProc) ++ { ++ hkl = GetKeyboardLayout (0); ++ encoded_reading = Fencode_coding_string (reading, ++ Vlocale_coding_system, ++ Qnil, Qnil); ++ reading_len = SBYTES (encoded_reading); ++ regword.lpReading = SDATA (encoded_reading); ++ ++ encoded_word = Fencode_coding_string (word, ++ Vlocale_coding_system, ++ Qnil, Qnil); ++ word_len = SBYTES (encoded_word); ++ regword.lpWord = SDATA (encoded_word); ++ (ImmConfigureIMEProc) (hkl, FRAME_W32_WINDOW (SELECTED_FRAME ()), ++ IME_CONFIG_REGISTERWORD, ®word); ++ } ++ return Qnil; ++} ++ ++DEFUN ("ime-get-property", Fime_get_property, Sime_get_property, 1, 1, 0, ++ doc: /* Retrieves the property and capabilities of the IME associated with the specified input locale. ++INDEX is one of igp-property, igp-conversion, igp-sentence, igp-ui, igp-setcompstr, igp-select of igp-getimeversion*/) ++ (Lisp_Object index) ++{ ++ int i; ++ Lisp_Object val; ++ DWORD v; ++ struct gcpro gcpro1; ++ ++ static const struct { ++ const char *name; ++ DWORD index; ++ } index_map[] = { ++ {"property", IGP_PROPERTY}, ++ {"conversion", IGP_CONVERSION}, ++ {"sentence", IGP_SENTENCE}, ++ {"ui", IGP_UI}, ++ {"setcompstr", IGP_SETCOMPSTR}, ++ {"select", IGP_SELECT}, ++ {"getimeversion", IGP_GETIMEVERSION}, ++ }, prop_map[] = { ++ {"at-caret", IME_PROP_AT_CARET}, ++ {"special-ui", IME_PROP_SPECIAL_UI}, ++ {"candlist-start-from-1", IME_PROP_CANDLIST_START_FROM_1}, ++ {"unicode", IME_PROP_UNICODE}, ++ {"complete-on-unselect", IME_PROP_COMPLETE_ON_UNSELECT}, ++ }, ui_map[] = { ++ {"rot2700", UI_CAP_2700}, ++ {"rot90", UI_CAP_ROT90}, ++ {"rotany", UI_CAP_ROTANY}, ++ }, setcompstr_map[] = { ++ {"compstr", SCS_CAP_COMPSTR}, ++ {"makeread", SCS_CAP_MAKEREAD}, ++ {"setreconvertstring", SCS_CAP_SETRECONVERTSTRING}, ++ }, select_map[] = { ++ {"conversion", SELECT_CAP_CONVERSION}, ++ {"sentence", SELECT_CAP_SENTENCE}, ++ }, imeversion_map[] = { ++ {"ver-0310", IMEVER_0310}, ++ {"ver-0400", IMEVER_0400}, ++ }; ++ ++ CHECK_SYMBOL(index); ++ for (i = 0; i < sizeof(index_map) / sizeof(index_map[0]); i++) ++ if (EQ(index, intern(index_map[i].name))) ++ break; ++ if (i >= sizeof(index_map) / sizeof(index_map[0])) ++ return Qnil; ++ ++ v = (*ImmGetPropertyProc)(GetKeyboardLayout(0), index_map[i].index); ++ val = Qnil; ++ GCPRO1(val); ++#define MAKE_CAP_LIST(map) do { \ ++ int j; \ ++ for (j = sizeof(map) / sizeof(map[0]) - 1; j >= 0 ; j--) \ ++ if (v & map[j].index) \ ++ val = Fcons(intern(map[j].name), val); \ ++} while(0) ++ ++ switch (index_map[i].index) { ++ case IGP_PROPERTY: ++ MAKE_CAP_LIST(prop_map); ++ break; ++ case IGP_UI: ++ MAKE_CAP_LIST(ui_map); ++ break; ++ case IGP_SETCOMPSTR: ++ MAKE_CAP_LIST(setcompstr_map); ++ break; ++ case IGP_SELECT: ++ MAKE_CAP_LIST(select_map); ++ break; ++ case IGP_GETIMEVERSION: ++ MAKE_CAP_LIST(imeversion_map); ++ break; ++ } ++ UNGCPRO; ++ return val; ++} ++ ++#ifdef RECONVERSION ++BOOL w32_perform_reconversion(HWND hwnd, RECONVERTSTRING *reconv) ++{ ++ struct frame *f = SELECTED_FRAME (); ++ HIMC himc; ++ BOOL result = FALSE; ++ ++ himc = (ImmGetContextProc) (hwnd); ++ if (!himc) { ++ xfree(reconv); ++ return FALSE; ++ } ++ ++ if ((*ImmSetCompositionStringProc) (himc, ++ SCS_QUERYRECONVERTSTRING, ++ reconv, reconv->dwSize, ++ NULL, 0 ) ++ && (*ImmSetCompositionStringProc) (himc, ++ SCS_SETRECONVERTSTRING, ++ reconv, reconv->dwSize, ++ NULL, 0)) { ++ /* Set the position of candidate list dialog. */ ++ (ImmReleaseContextProc) (hwnd, himc); ++ w32_set_ime_conv_window (hwnd, f); ++ result = TRUE; ++ } else ++ (ImmReleaseContextProc) (hwnd, himc); ++ xfree(reconv); ++ return result; ++} ++ ++DEFUN ("w32-ime-perform-reconversion", ++ Fw32_ime_perform_reconversion, ++ Sw32_ime_perform_reconversion, 0, 0, "", ++ doc: /* perfom ime reconversion. */) ++ (void) ++{ ++ HWND hwnd = FRAME_W32_WINDOW(SELECTED_FRAME()); ++ DWORD size; ++ RECONVERTSTRING *reconv; ++ ++ if (!ime_enable_reconversion || ++ NILP(Fime_get_mode())) ++ return Qnil; ++ ++ if ((size = get_reconversion_string (hwnd, NULL, NULL)) ++ && (reconv = xmalloc (size)) != NULL ++ && (memset (reconv, 0, size), (reconv->dwSize = size)) ++ && get_reconversion_string (hwnd, reconv, NULL)) ++ PostMessage(hwnd, WM_MULE_IMM_PERFORM_RECONVERSION, 0, (LPARAM) reconv); ++ ++ return Qt; ++} ++#endif ++ ++#endif /* USE_W32_IME */ ++ ++ ++/*********************************************************************** + w32 specialized functions + ***********************************************************************/ + +@@ -8115,6 +9300,9 @@ + x_set_fullscreen, + x_set_font_backend, + x_set_alpha, ++#ifdef USE_W32_IME ++ 0, /* ime-font */ ++#endif /* USE_W32_IME */ + 0, /* x_set_sticky */ + 0, /* x_set_tool_bar_position */ + }; +@@ -8129,6 +9317,10 @@ + + DEFSYM (Qsuppress_icon, "suppress-icon"); + DEFSYM (Qundefined_color, "undefined-color"); ++#ifdef USE_W32_IME ++ DEFSYM (Qw32_ime_buffer_switch_p, "w32-ime-buffer-switch-p"); ++ DEFSYM (Qime_font, "ime-font"); ++#endif /* USE_W32_IME */ + DEFSYM (Qcancel_timer, "cancel-timer"); + DEFSYM (Qhyper, "hyper"); + DEFSYM (Qsuper, "super"); +@@ -8405,6 +9597,27 @@ + only be necessary if the default setting causes problems. */); + w32_strict_painting = 1; + ++#ifdef USE_W32_IME ++#ifdef RECONVERSION ++ DEFVAR_BOOL ("ime-enable-reconversion", ime_enable_reconversion, ++ doc: /* Non-nil enables IME reconversion capability. */); ++ ime_enable_reconversion = 1; ++#endif ++#ifdef DOCUMENTFEED ++ DEFVAR_BOOL ("ime-enable-document-feed", ime_enable_document_feed, ++ doc: /* Non-nil enables IME document feed capability. */); ++ ime_enable_document_feed = 1; ++#endif ++ DEFVAR_LISP ("ime-control", Vime_control, doc: /* IME control flag. */); ++ Vime_control = Qnil; ++ ++ DEFVAR_LISP ("w32-ime-composition-window", ++ Vw32_ime_composition_window, ++ doc: /* If this is a window of current frame, IME composition window appears on the ++window instead of current window. */); ++ Vw32_ime_composition_window = Qnil; ++#endif /* USE_W32_IME */ ++ + #if 0 /* TODO: Port to W32 */ + defsubr (&Sx_change_window_property); + defsubr (&Sx_delete_window_property); +@@ -8450,6 +9663,18 @@ + defsubr (&Sw32_battery_status); + defsubr (&Sw32__menu_bar_in_use); + ++#ifdef USE_W32_IME ++ defsubr (&Sw32_set_ime_mode); ++ defsubr (&Sw32_ime_register_word_dialog); ++ defsubr (&Sime_force_on); ++ defsubr (&Sime_force_off); ++ defsubr (&Sime_get_mode); ++ defsubr (&Sime_get_property); ++#ifdef RECONVERSION ++ defsubr (&Sw32_ime_perform_reconversion); ++#endif ++#endif /* USE_W32_IME */ ++ + #ifdef WINDOWSNT + defsubr (&Sfile_system_info); + defsubr (&Sdefault_printer_name); +@@ -8662,6 +9887,7 @@ + enum_display_monitors_fn = (EnumDisplayMonitors_Proc) + GetProcAddress (user32_lib, "EnumDisplayMonitors"); + ++#ifndef USE_W32_IME + { + HMODULE imm32_lib = GetModuleHandle ("imm32.dll"); + get_composition_string_fn = (ImmGetCompositionString_Proc) +@@ -8673,6 +9899,7 @@ + set_ime_composition_window_fn = (ImmSetCompositionWindow_Proc) + GetProcAddress (imm32_lib, "ImmSetCompositionWindow"); + } ++#endif /* !USE_W32_IME */ + + except_code = 0; + except_addr = 0; +--- ./src/w32font.c.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./src/w32font.c 2015-04-11 07:28:36.315151100 +0900 +@@ -102,7 +102,10 @@ + /* Font spacing symbols - defined in font.c. */ + extern Lisp_Object Qc, Qp, Qm; + +-static void fill_in_logfont (struct frame *, LOGFONT *, Lisp_Object); ++#ifndef USE_W32_IME ++static ++#endif ++void fill_in_logfont (struct frame *, LOGFONT *, Lisp_Object); + + static BYTE w32_antialias_type (Lisp_Object); + static Lisp_Object lispy_antialias_type (BYTE); +@@ -1962,7 +1965,10 @@ + } + + /* Fill in all the available details of LOGFONT from FONT_SPEC. */ +-static void ++#ifndef USE_W32_IME ++static ++#endif ++void + fill_in_logfont (struct frame *f, LOGFONT *logfont, Lisp_Object font_spec) + { + Lisp_Object tmp, extra; +--- ./src/w32font.h.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./src/w32font.h 2015-04-11 07:28:36.325153800 +0900 +@@ -83,6 +83,9 @@ + int uniscribe_check_otf (LOGFONT *font, Lisp_Object otf_spec); + + Lisp_Object intern_font_name (char *); ++#ifdef USE_W32_IME ++void fill_in_logfont (struct frame *, LOGFONT *, Lisp_Object); ++#endif + + extern void syms_of_w32font (void); + extern void globals_of_w32font (void); +--- ./src/w32term.c.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./src/w32term.c 2015-04-11 07:28:36.346155000 +0900 +@@ -4909,6 +4909,81 @@ + break; + #endif + ++#ifdef USE_W32_IME ++ case WM_MULE_IME_STATUS: ++ f = x_window_to_frame (dpyinfo, msg.msg.hwnd); ++ ++ if (f && !f->iconified && f->visible) ++ { ++ inev.kind = NON_ASCII_KEYSTROKE_EVENT; ++ inev.code = VK_KANJI; ++ inev.modifiers = 0; ++ XSETFRAME (inev.frame_or_window, f); ++ inev.timestamp = msg.msg.time; ++ } ++ break; ++ ++ case WM_MULE_IME_REPORT: ++ { ++ LPWSTR lpStr; ++ struct input_event buf; ++ HANDLE hw32_ime_string = (HANDLE) msg.msg.wParam; ++ ++ f = (struct frame *) msg.msg.lParam; ++ if (f && !f->iconified && f->visible) ++ { ++ lpStr = (LPWSTR) hw32_ime_string; ++ while(lpStr) ++ { ++ wchar_t code; ++ ++ EVENT_INIT (buf); ++ XSETFRAME (buf.frame_or_window, f); ++ buf.timestamp = msg.msg.time; ++ buf.modifiers = 0; ++ if (*lpStr) ++ { ++ if (*lpStr < 0x80) ++ buf.kind = ASCII_KEYSTROKE_EVENT; ++ else ++ buf.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT; ++ if ((*lpStr & 0xFC00) == 0xD800 ++ && (*(lpStr + 1) & 0xFC00) == 0xDC00) ++ { ++ buf.code = 0x10000 ++ + (((*lpStr & 0x3FF) << 10) ++ | *(lpStr + 1) & 0x3FF); ++ lpStr++; ++ } ++ else ++ buf.code = *(lpStr++); ++ kbd_buffer_store_event (&buf); ++ } ++ else ++ { ++ buf.kind = NON_ASCII_KEYSTROKE_EVENT; ++ buf.code = VK_COMPEND; ++ kbd_buffer_store_event (&buf); ++ break; ++ } ++ } ++ HeapFree (GetProcessHeap (), 0, (LPVOID) hw32_ime_string); ++ } ++ } ++ break; ++ ++ case WM_MULE_IME_DEL_RANGE: ++ del_range ((ptrdiff_t) msg.msg.wParam, (ptrdiff_t) msg.msg.lParam); ++ Fgoto_char (make_number (msg.msg.wParam)); ++ redisplay (); ++ break; ++ ++ case WM_MULE_IME_SET_FONT: ++ w32_set_ime_logfont (msg.msg.hwnd, (struct frame *) msg.msg.wParam); ++ break; ++ ++#endif /* USE_W32_IME */ ++ + default: + /* Check for messages registered at runtime. */ + if (msg.msg.message == msh_mousewheel) +@@ -5274,7 +5349,12 @@ + w32_system_caret_hdr_height = WINDOW_HEADER_LINE_HEIGHT (w); + w32_system_caret_mode_height = WINDOW_MODE_LINE_HEIGHT (w); + ++#ifdef USE_W32_IME ++ if (f && f == FRAME_DISPLAY_INFO (f)->x_highlight_frame) ++ PostMessage (hwnd, WM_MULE_IMM_SET_CONVERSION_WINDOW, (WPARAM) f, 0); ++#else + PostMessage (hwnd, WM_IME_STARTCOMPOSITION, 0, 0); ++#endif + + /* If the size of the active cursor changed, destroy the old + system caret. */ +@@ -6563,6 +6643,9 @@ + vertical_scroll_bar_top_border = vertical_scroll_bar_bottom_border + = GetSystemMetrics (SM_CYVSCROLL); + } ++#ifdef USE_W32_IME ++ w32_ime_control_init(); ++#endif /* USE_W32_IME */ + } + + void +--- ./src/w32term.h.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./src/w32term.h 2015-04-11 07:28:36.360155300 +0900 +@@ -569,6 +569,8 @@ + #endif /* WM_MOUSEHWHEEL */ + #ifndef WM_APPCOMMAND + #define WM_APPCOMMAND 0x319 ++#endif ++#ifndef GET_APPCOMMAND_LPARAM + #define GET_APPCOMMAND_LPARAM(lParam) (HIWORD(lParam) & 0x7fff) + #endif + #ifndef WM_UNICHAR +@@ -605,6 +607,96 @@ + #define WM_EMACS_FILENOTIFY (WM_EMACS_START + 23) + #define WM_EMACS_END (WM_EMACS_START + 24) + ++#ifdef USE_W32_IME ++#ifndef VK_KANJI ++#define VK_KANJI 0x19 ++#endif ++#ifndef VK_KANA ++#define VK_KANA 0x15 ++#endif ++#define VK_COMPEND 0x1A ++ ++#ifdef RECONVERSION ++#ifndef WM_IME_REQUEST ++#define WM_IME_REQUEST 0x288 ++#endif ++#ifndef IMR_COMPOSITIONWINDOW ++#define IMR_COMPOSITIONWINDOW 0x0001 ++#endif ++#ifndef IMR_CANDIDATEWINDOW ++#define IMR_CANDIDATEWINDOW 0x0002 ++#endif ++#ifdef IMR_COMPOSITIONFONT ++#define IMR_COMPOSITIONFONT 0x0003 ++#endif ++#ifndef IMR_RECONVERTSTRING ++#define IMR_RECONVERTSTRING 0x0004 ++#endif ++#ifndef IMR_CONFIRMRECONVERTSTRING ++#define IMR_CONFIRMRECONVERTSTRING 0x0005 ++#endif ++#endif ++#ifndef IME_PROP_COMPLETE_ON_UNSELECT ++#define IME_PROP_COMPLETE_ON_UNSELECT 0x00100000 ++#endif ++#ifndef SCS_CAP_SETRECONVERTSTRING ++#define SCS_CAP_SETRECONVERTSTRING 0x00000004 ++#endif ++ ++/* For internal communications ++ from window procedure to event loop. */ ++#define WM_MULE_IME_REPORT (WM_USER+2200) ++#define WM_MULE_IME_STATUS (WM_USER+2201) ++#define WM_MULE_IME_DEL_RANGE (WM_USER+2202) ++#define WM_MULE_IME_SET_FONT (WM_USER+2203) ++ ++/* For internal communications ++ from main thread to window procedure. */ ++#define WM_MULE_IMM_MESSAGE_START (WM_USER+2300) ++#define WM_MULE_IMM_SET_STATUS (WM_USER+2300) ++#define WM_MULE_IMM_GET_STATUS (WM_USER+2301) ++#if 0 ++#define WM_MULE_IMM_DEAL_WITH_CONTEXT (WM_USER+2302) ++#define WM_MULE_IMM_SET_COMPOSITION_STRING (WM_USER+2303) ++#endif ++#define WM_MULE_IMM_GET_COMPOSITION_STRING (WM_USER+2304) ++#define WM_MULE_IMM_SET_MODE (WM_USER+2305) ++#if 0 ++#define WM_MULE_IMM_NOTIFY (WM_USER+2310) ++#define WM_MULE_IMM_GET_UNDETERMINED_STRING_LENGTH (WM_USER+2320) ++#endif ++#define WM_MULE_IMM_SET_IMEFONT (WM_USER+2311) ++#define WM_MULE_IMM_SET_CONVERSION_WINDOW (WM_USER+2312) ++ ++#define WM_MULE_IMM_PERFORM_RECONVERSION (WM_USER+2320) ++ ++#define WM_MULE_IMM_MESSAGE_END (WM_USER+2399) ++#define MESSAGE_IMM_COM_P(message) \ ++ (((message) >= WM_MULE_IMM_MESSAGE_START) && \ ++ ((message) <= WM_MULE_IMM_MESSAGE_END)) ++ ++#ifdef RECONVERSION ++#ifndef HAVE_RECONVERTSTRING ++typedef struct tagRECONVERTSTRING { ++ DWORD dwSize; ++ DWORD dwVersion; ++ DWORD dwStrLen; ++ DWORD dwStrOffset; ++ DWORD dwCompStrLen; ++ DWORD dwCompStrOffset; ++ DWORD dwTargetStrLen; ++ DWORD dwTargetStrOffset; ++} RECONVERTSTRING, *PRECONVERTSTRING; ++#endif ++#ifndef SCS_SETRECONVERTSTRING ++#define SCS_SETRECONVERTSTRING 0x00010000 ++#endif ++#ifndef SCS_QUERYRECONVERTSTRING ++#define SCS_QUERYRECONVERTSTRING 0x00020000 ++#endif ++#endif /* RECONVERSION */ ++#endif /* USE_W32_IME */ ++ + #define WND_FONTWIDTH_INDEX (0) + #define WND_LINEHEIGHT_INDEX (4) + #define WND_BORDER_INDEX (8) +@@ -794,3 +886,8 @@ + #ifdef CYGWIN + extern int w32_message_fd; + #endif /* CYGWIN */ ++ ++#ifdef USE_W32_IME ++extern void w32_set_ime_logfont (HWND, struct frame *); ++extern void w32_ime_control_init (void); ++#endif /* USE_W32_IME */ +--- ./src/window.c.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./src/window.c 2015-04-11 07:28:36.379162300 +0900 +@@ -132,6 +132,12 @@ + /* Same for window_scroll_line_based. */ + static EMACS_INT window_scroll_preserve_hpos; + static EMACS_INT window_scroll_preserve_vpos; ++#ifdef USE_W32_IME ++Lisp_Object Vset_selected_window_buffer_functions; ++Lisp_Object Qset_selected_window_buffer_functions; ++Lisp_Object Vselect_window_functions; ++Lisp_Object Qselect_window_functions; ++#endif /* USE_W32_IME */ + + static void + CHECK_WINDOW_CONFIGURATION (Lisp_Object x) +@@ -474,6 +480,9 @@ + { + register struct window *w; + struct frame *sf; ++#ifdef USE_W32_IME ++ Lisp_Object oldwin = selected_window; ++#endif /* USE_W32_IME */ + + CHECK_LIVE_WINDOW (window); + +@@ -526,6 +535,11 @@ + record_buffer (w->contents); + } + ++#ifdef USE_W32_IME ++ if (!NILP (Vselect_window_functions)) ++ run_hook_with_args_2 (Qselect_window_functions, oldwin, window); ++#endif /* USE_W32_IME */ ++ + return window; + } + +@@ -3561,6 +3575,18 @@ + + set_window_buffer (window, buffer, 1, !NILP (keep_margins)); + ++#ifdef USE_W32_IME ++ if (! NILP (Vset_selected_window_buffer_functions)) ++ { ++ Lisp_Object temp[4]; ++ temp[0] = Qset_selected_window_buffer_functions; ++ temp[1] = tem; ++ temp[2] = window; ++ temp[3] = buffer; ++ Frun_hook_with_args (4, temp); ++ } ++#endif /* USE_W32_IME */ ++ + return Qnil; + } + +@@ -7247,6 +7273,10 @@ + Fput (Qscroll_down, Qscroll_command, Qt); + + DEFSYM (Qwindow_configuration_change_hook, "window-configuration-change-hook"); ++#ifdef USE_W32_IME ++ DEFSYM (Qset_selected_window_buffer_functions, "set-selected-window-buffer-functions"); ++ DEFSYM (Qselect_window_functions, "select-window-functions"); ++#endif + DEFSYM (Qwindowp, "windowp"); + DEFSYM (Qwindow_configuration_p, "window-configuration-p"); + DEFSYM (Qwindow_live_p, "window-live-p"); +--- ./src/xdisp.c.orig 2015-04-02 16:23:06.000000000 +0900 ++++ ./src/xdisp.c 2015-04-11 07:28:36.435165000 +0900 +@@ -11683,8 +11683,24 @@ + /* Prepare for redisplay by updating menu-bar item lists when + appropriate. This can call eval. */ + ++#ifdef USE_W32_IME ++static void prepare_menu_bars_0 (); ++static void ++prepare_menu_bars() ++{ ++ extern Lisp_Object Qw32_ime_buffer_switch_p; ++ int count = SPECPDL_INDEX (); ++ ++ specbind (Qw32_ime_buffer_switch_p, Qnil); ++ prepare_menu_bars_0 (); ++ unbind_to (count, Qnil); ++} ++static void ++prepare_menu_bars_0 () ++#else + static void + prepare_menu_bars (void) ++#endif + { + bool all_windows = windows_or_buffers_changed || update_mode_lines; + bool some_windows = REDISPLAY_SOME_P (); From f0da5c955389ea267815ec93e3b697a9d5e187e0 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 30 Nov 2015 13:03:29 +0300 Subject: [PATCH 1938/2060] libtorrent-rasterbar: Fix download URL --- mingw-w64-libtorrent-rasterbar/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-libtorrent-rasterbar/PKGBUILD b/mingw-w64-libtorrent-rasterbar/PKGBUILD index 688a7685ed..c109925ff6 100644 --- a/mingw-w64-libtorrent-rasterbar/PKGBUILD +++ b/mingw-w64-libtorrent-rasterbar/PKGBUILD @@ -17,7 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=(staticlibs strip) -source=("https://github.com/arvidn/libtorrent/releases/download/libtorrent-1_0_7/${_realname}-${pkgver}.tar.gz" +source=("https://github.com/arvidn/libtorrent/releases/download/libtorrent-${pkgver//./_}/${_realname}-${pkgver}.tar.gz" cmake_pkg_config.patch) md5sums=('c1a5b8aee18640cbe01826403525dd14' '6e57f2a497401c7ec77fcefeb27fec5b') From 76aea8aa5a20d2fde4914f46cbe0831d9def7f25 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 30 Nov 2015 13:03:43 +0300 Subject: [PATCH 1939/2060] gettext: Fix dependencies --- mingw-w64-gettext/PKGBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gettext/PKGBUILD b/mingw-w64-gettext/PKGBUILD index 29e6e30c11..891728d623 100644 --- a/mingw-w64-gettext/PKGBUILD +++ b/mingw-w64-gettext/PKGBUILD @@ -5,10 +5,11 @@ _realname=gettext pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.19.6 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="GNU internationalization library (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" +depends=("${MINGW_PACKAGE_PREFIX}-expat" + "${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv" #"${MINGW_PACKAGE_PREFIX}-termcap" ) From b681f3edde276bc76504dc63044b78256d58a810 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 1 Dec 2015 14:06:57 +0300 Subject: [PATCH 1940/2060] freetype: Update to 2.6.2 --- mingw-w64-freetype/PKGBUILD | 12 ++++++------ mingw-w64-freetype/freetype-2.5.1-enable-sph.patch | 6 +++--- mingw-w64-freetype/freetype-2.5.1-enable-spr.patch | 6 +++--- mingw-w64-freetype/mingw-config.patch | 4 ++-- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/mingw-w64-freetype/PKGBUILD b/mingw-w64-freetype/PKGBUILD index a3b0bfb6b2..81eb64269a 100644 --- a/mingw-w64-freetype/PKGBUILD +++ b/mingw-w64-freetype/PKGBUILD @@ -4,8 +4,8 @@ _realname=freetype pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.6 -pkgrel=3 +pkgver=2.6.2 +pkgrel=1 pkgdesc="TrueType font rendering library (mingw-w64)" arch=('any') url="http://www.freetype.org/" @@ -22,11 +22,11 @@ source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver} freetype-2.5.1-enable-spr.patch freetype-2.5.1-enable-sph.patch mingw-config.patch) -md5sums=('5682890cb0267f6671dd3de6eabd3e69' +md5sums=('86109d0c998787d81ac582bad9adf82e' '214119610444c9b02766ccee5e220680' - '80a14cce234f3f190cd936ca9060c398' - '0636ba2ff074201e2ea5c47ac408bc63' - '9d62583e770c59af1c6bd19db89e7cf3') + 'c3532124d369824fcaebdbba512611e2' + '5529f52c10eb246375730b920b908ef9' + 'a43025dbe40e90c0f4bf96d01c7110f7') prepare() { cd "${srcdir}/freetype-${pkgver}" diff --git a/mingw-w64-freetype/freetype-2.5.1-enable-sph.patch b/mingw-w64-freetype/freetype-2.5.1-enable-sph.patch index 69f73b7e36..a4e424cac6 100644 --- a/mingw-w64-freetype/freetype-2.5.1-enable-sph.patch +++ b/mingw-w64-freetype/freetype-2.5.1-enable-sph.patch @@ -1,7 +1,7 @@ -diff --git i/include/config/ftoption.h w/include/config/ftoption.h +diff --git i/include/freetype/config/ftoption.h w/include/freetype/config/ftoption.h index fe2ba15..1ab4226 100644 ---- i/include/config/ftoption.h -+++ w/include/config/ftoption.h +--- i/include/freetype/config/ftoption.h ++++ w/include/freetype/config/ftoption.h @@ -591,7 +591,7 @@ FT_BEGIN_HEADER /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */ /* defined. */ diff --git a/mingw-w64-freetype/freetype-2.5.1-enable-spr.patch b/mingw-w64-freetype/freetype-2.5.1-enable-spr.patch index 0d300a8dfc..685acef5ac 100644 --- a/mingw-w64-freetype/freetype-2.5.1-enable-spr.patch +++ b/mingw-w64-freetype/freetype-2.5.1-enable-spr.patch @@ -1,7 +1,7 @@ -diff --git i/include/config/ftoption.h w/include/config/ftoption.h +diff --git i/include/freetype/config/ftoption.h w/include/freetype/config/ftoption.h index fe2ba15..22ce1a3 100644 ---- i/include/config/ftoption.h -+++ w/include/config/ftoption.h +--- i/include/freetype/config/ftoption.h ++++ w/include/freetype/config/ftoption.h @@ -92,7 +92,7 @@ FT_BEGIN_HEADER /* This is done to allow FreeType clients to run unmodified, forcing */ /* them to display normal gray-level anti-aliased glyphs. */ diff --git a/mingw-w64-freetype/mingw-config.patch b/mingw-w64-freetype/mingw-config.patch index 94d6f04a17..9127eff5db 100644 --- a/mingw-w64-freetype/mingw-config.patch +++ b/mingw-w64-freetype/mingw-config.patch @@ -1,5 +1,5 @@ ---- freetype-2.5.3/include/config/ftoption.h.orig 2014-04-02 21:30:52.858800000 +0400 -+++ freetype-2.5.3/include/config/ftoption.h 2014-04-02 21:32:39.500400000 +0400 +--- freetype-2.6.2/include/freetype/config/ftoption.h.orig 2014-04-02 21:30:52.858800000 +0400 ++++ freetype-2.6.2/include/freetype/config/ftoption.h 2014-04-02 21:32:39.500400000 +0400 @@ -184,7 +184,7 @@ /* Do not #undef this macro here since the build system might define */ /* it for certain configurations only. */ From b8b01db2bd17c81cc49f760bb4c871161007c1ef Mon Sep 17 00:00:00 2001 From: David Macek Date: Wed, 2 Dec 2015 21:32:42 +0100 Subject: [PATCH 1941/2060] osslsigncode: new package --- mingw-w64-osslsigncode/PKGBUILD | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 mingw-w64-osslsigncode/PKGBUILD diff --git a/mingw-w64-osslsigncode/PKGBUILD b/mingw-w64-osslsigncode/PKGBUILD new file mode 100644 index 0000000000..626034c762 --- /dev/null +++ b/mingw-w64-osslsigncode/PKGBUILD @@ -0,0 +1,39 @@ +# Maintainer: David Macek + +_realname=osslsigncode +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.7.1 +pkgrel=1 +pkgdesc="Tool for Authenticode signing of PE, CAB and MSI files (mingw-w64)" +arch=('any') +url="http://sourceforge.net/projects/osslsigncode/" +license=("GPL3") +depends=("${MINGW_PACKAGE_PREFIX}-curl" + "${MINGW_PACKAGE_PREFIX}-openssl") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-pkg-config") +source=("http://downloads.sourceforge.net/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('ac5655b9281b692423ecb2e9185f09d7') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" +} + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install +} From a89f7c987a86e75be6f28643903e3f6883cdcb00 Mon Sep 17 00:00:00 2001 From: Alexander Boriskov Date: Sun, 6 Dec 2015 18:51:54 +0300 Subject: [PATCH 1942/2060] cocos2dx-git : Add missing depends --- mingw-w64-cocos2dx-git/PKGBUILD | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cocos2dx-git/PKGBUILD b/mingw-w64-cocos2dx-git/PKGBUILD index c87cf49570..91c4a3482a 100644 --- a/mingw-w64-cocos2dx-git/PKGBUILD +++ b/mingw-w64-cocos2dx-git/PKGBUILD @@ -2,8 +2,8 @@ _realname=cocos2d-x pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=r31154.b6aa396 -_deps_ver=69 +pkgver=r33416.d371ec2 +_deps_ver=75 pkgrel=1 pkgdesc="Open source game framework written in C++ (mingw-w64)." arch=('any') @@ -30,6 +30,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-box2d" "${MINGW_PACKAGE_PREFIX}-tinyxml2" "${MINGW_PACKAGE_PREFIX}-protobuf" "${MINGW_PACKAGE_PREFIX}-xxhash" + "${MINGW_PACKAGE_PREFIX}-openal" + "${MINGW_PACKAGE_PREFIX}-libvorbis" "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') From 190631a05d2aa2dc5628c2b166c74a6cbeef1947 Mon Sep 17 00:00:00 2001 From: Norbert Pfeiler Date: Tue, 8 Dec 2015 00:30:45 +0100 Subject: [PATCH 1943/2060] =?UTF-8?q?don=E2=80=99t=20build=20debug=20cmake?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mingw-w64-cmake/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index 24cf3311a0..c0278139ff 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -19,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libarchive" "${MINGW_PACKAGE_PREFIX}-zlib") optdepends=("${MINGW_PACKAGE_PREFIX}-qt5: CMake Qt GUI") -options=('staticlibs' '!strip' 'debug') +options=('staticlibs') # '!strip' 'debug' source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "disable-response-files-for-msys.patch" "dont-install-bundle.patch" From c1f39275a53fb397a85b5ed6376a7ca13253fe14 Mon Sep 17 00:00:00 2001 From: Norbert Pfeiler Date: Mon, 7 Dec 2015 23:01:42 +0100 Subject: [PATCH 1944/2060] =?UTF-8?q?don=E2=80=99t=20rename=20autogenTarge?= =?UTF-8?q?tName=20(fix=20#923)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mingw-w64-cmake/PKGBUILD | 4 ++-- mingw-w64-cmake/qt5-static-plugin-support.patch | 9 --------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index c0278139ff..eca0bcfcc6 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -4,7 +4,7 @@ _realname=cmake pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.3.2 -pkgrel=2 +pkgrel=3 pkgdesc="A cross-platform open-source make system (mingw-w64)" arch=('any') url="http://www.cmake.org/" @@ -29,7 +29,7 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" md5sums=('5febbd11bcaac854a27eebaf4a124be2' '3b0eb07bb98ea9b8e8482e4936971013' 'fb33ace70ba863159b2c7964a9661e1e' - '6461b89ff7d1ca0c4022801dff8475a7' + '1800f99cdae3abe0ae96b6bf7fa873df' 'a55c5c6231fc953bad5600c3bb49667b' '3105d5c805111cd4db89a4c743ed18fe') diff --git a/mingw-w64-cmake/qt5-static-plugin-support.patch b/mingw-w64-cmake/qt5-static-plugin-support.patch index bb4c458773..c721a854ad 100644 --- a/mingw-w64-cmake/qt5-static-plugin-support.patch +++ b/mingw-w64-cmake/qt5-static-plugin-support.patch @@ -22,15 +22,6 @@ diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQt #include "cmQtAutoGenerators.h" -@@ -151,7 +152,7 @@ - static std::string getAutogenTargetName(cmTarget const* target) - { - std::string autogenTargetName = target->GetName(); -- autogenTargetName += "_automoc"; -+ autogenTargetName += "_autogen"; - return autogenTargetName; - } - @@ -193,6 +194,7 @@ target->AddSource(mocCppFile); From b5bac3a196b39e03ec8408ff53061f68db1fe5e4 Mon Sep 17 00:00:00 2001 From: Norbert Pfeiler Date: Tue, 8 Dec 2015 01:53:00 +0100 Subject: [PATCH 1945/2060] remove context-free newline --- mingw-w64-cmake/qt5-static-plugin-support.patch | 8 -------- 1 file changed, 8 deletions(-) diff --git a/mingw-w64-cmake/qt5-static-plugin-support.patch b/mingw-w64-cmake/qt5-static-plugin-support.patch index c721a854ad..7ba95ffa07 100644 --- a/mingw-w64-cmake/qt5-static-plugin-support.patch +++ b/mingw-w64-cmake/qt5-static-plugin-support.patch @@ -22,14 +22,6 @@ diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQt #include "cmQtAutoGenerators.h" -@@ -193,6 +194,7 @@ - - target->AddSource(mocCppFile); - } -+ - // create a custom target for running generators at buildtime: - std::string autogenTargetName = getAutogenTargetName(target); - @@ -230,7 +232,13 @@ { toolNames.push_back("rcc"); From 1e2aaebf8e587ea037ed87ade77a0485bf520050 Mon Sep 17 00:00:00 2001 From: Norbert Pfeiler Date: Mon, 7 Dec 2015 23:04:20 +0100 Subject: [PATCH 1946/2060] update bundle and AUTOSTATICPLUGINS patches to cmake 3.4.1 sources --- mingw-w64-cmake/PKGBUILD | 11 ++- mingw-w64-cmake/dont-install-bundle.patch | 12 ++-- .../qt5-static-plugin-support.patch | 71 +++++++++---------- 3 files changed, 46 insertions(+), 48 deletions(-) diff --git a/mingw-w64-cmake/PKGBUILD b/mingw-w64-cmake/PKGBUILD index eca0bcfcc6..b79666687a 100644 --- a/mingw-w64-cmake/PKGBUILD +++ b/mingw-w64-cmake/PKGBUILD @@ -3,8 +3,8 @@ _realname=cmake pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.3.2 -pkgrel=3 +pkgver=3.4.1 +pkgrel=1 pkgdesc="A cross-platform open-source make system (mingw-w64)" arch=('any') url="http://www.cmake.org/" @@ -26,10 +26,10 @@ source=("http://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz" "qt5-static-plugin-support.patch" "pkg-config-without-prefix.patch" "do-not-generate-import-library-for-executables.patch") -md5sums=('5febbd11bcaac854a27eebaf4a124be2' +md5sums=('73acda0d33be9b2729af99893d99a012' '3b0eb07bb98ea9b8e8482e4936971013' - 'fb33ace70ba863159b2c7964a9661e1e' - '1800f99cdae3abe0ae96b6bf7fa873df' + '3e70d2e8a616402163d52ac512059c68' + 'b2eb8c3d2036adfa3d48a40980a241cb' 'a55c5c6231fc953bad5600c3bb49667b' '3105d5c805111cd4db89a4c743ed18fe') @@ -62,5 +62,4 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" ./bin/cmake.exe -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} -P cmake_install.cmake - rm "${pkgdir}${MINGW_PREFIX}/cmake.org.html" } diff --git a/mingw-w64-cmake/dont-install-bundle.patch b/mingw-w64-cmake/dont-install-bundle.patch index 541e74c617..1b24a51e35 100644 --- a/mingw-w64-cmake/dont-install-bundle.patch +++ b/mingw-w64-cmake/dont-install-bundle.patch @@ -1,11 +1,11 @@ ---- cmake-2.8.12.2/Source/QtDialog/CMakeLists.txt.orig 2014-04-24 10:45:16.178600000 +0400 -+++ cmake-2.8.12.2/Source/QtDialog/CMakeLists.txt 2014-04-24 10:45:23.198600000 +0400 -@@ -140,7 +140,7 @@ - WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin)") +--- cmake-3.4.1/Source/QtDialog/CMakeLists.txt.orig 2015-12-07 15:53:12.279129300 +0100 ++++ cmake-3.4.1/Source/QtDialog/CMakeLists.txt 2015-12-07 15:56:52.484583000 +0100 +@@ -207,7 +207,7 @@ + " ${COMPONENT}) endif() --if(APPLE OR WIN32) -+if(APPLE OR WIN32 AND NOT MINGW) +-if(CMake_INSTALL_DEPENDENCIES AND (APPLE OR WIN32)) ++if(CMake_INSTALL_DEPENDENCIES AND (APPLE OR WIN32) AND NOT MINGW) # install rules for including 3rd party libs such as Qt # if a system Qt is used (e.g. installed in /usr/lib/), it will not be included in the installation set(fixup_exe "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin/cmake-gui${CMAKE_EXECUTABLE_SUFFIX}") diff --git a/mingw-w64-cmake/qt5-static-plugin-support.patch b/mingw-w64-cmake/qt5-static-plugin-support.patch index 7ba95ffa07..e3b5a1072b 100644 --- a/mingw-w64-cmake/qt5-static-plugin-support.patch +++ b/mingw-w64-cmake/qt5-static-plugin-support.patch @@ -1,28 +1,28 @@ -diff -urN cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx cmake-3.1.0/Source/cmGlobalGenerator.cxx ---- cmake-3.1.0.orig/Source/cmGlobalGenerator.cxx 2015-01-03 16:49:13.831653600 +0000 -+++ cmake-3.1.0/Source/cmGlobalGenerator.cxx 2015-01-03 15:44:34.928951000 +0000 -@@ -1392,7 +1392,8 @@ +diff -Naur cmake-3.4.1.orig/Source/cmGlobalGenerator.cxx cmake-3.4.1/Source/cmGlobalGenerator.cxx +--- cmake-3.4.1.orig/Source/cmGlobalGenerator.cxx 2015-12-02 16:43:21.000000000 +0100 ++++ cmake-3.4.1/Source/cmGlobalGenerator.cxx 2015-12-07 22:43:50.804803400 +0100 +@@ -1432,7 +1432,8 @@ + } + if((!ti->second.GetPropertyAsBool("AUTOMOC") + && !ti->second.GetPropertyAsBool("AUTOUIC") +- && !ti->second.GetPropertyAsBool("AUTORCC")) ++ && !ti->second.GetPropertyAsBool("AUTORCC") ++ && !ti->second.GetPropertyAsBool("AUTOSTATICPLUGINS")) + || ti->second.IsImported()) { - if((target.GetPropertyAsBool("AUTOMOC") - || target.GetPropertyAsBool("AUTOUIC") -- || target.GetPropertyAsBool("AUTORCC")) -+ || target.GetPropertyAsBool("AUTORCC") -+ || target.GetPropertyAsBool("AUTOSTATICPLUGINS")) - && !target.IsImported()) - { - cmQtAutoGenerators autogen; -diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQtAutoGenerators.cxx ---- cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx 2015-01-03 16:49:13.862853600 +0000 -+++ cmake-3.1.0/Source/cmQtAutoGenerators.cxx 2015-01-03 17:03:44.895400500 +0000 -@@ -31,6 +31,7 @@ - #include - #endif + continue; +diff -Naur cmake-3.4.1.orig/Source/cmQtAutoGeneratorInitializer.cxx cmake-3.4.1/Source/cmQtAutoGeneratorInitializer.cxx +--- cmake-3.4.1.orig/Source/cmQtAutoGeneratorInitializer.cxx 2015-12-02 16:43:22.000000000 +0100 ++++ cmake-3.4.1/Source/cmQtAutoGeneratorInitializer.cxx 2015-12-08 01:16:20.424623700 +0100 +@@ -13,6 +13,7 @@ -+#include - #include "cmQtAutoGenerators.h" + #include "cmQtAutoGeneratorInitializer.h" - -@@ -230,7 +232,13 @@ ++#include "cmGeneratedFileStream.h" + #include "cmLocalGenerator.h" + #include "cmMakefile.h" + #include "cmSourceFile.h" +@@ -255,7 +256,13 @@ { toolNames.push_back("rcc"); } @@ -30,14 +30,14 @@ diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQt + /* AUTOSTATICPLUGINS .cpp files are created at cmake execution time, + * and not at build time, so in that case it is possible to get here + * with no toolNames. */ -+ if (!toolNames.size()) ++ if (toolNames.empty()) + { -+ return true; ++ return; + } std::string tools = toolNames[0]; toolNames.erase(toolNames.begin()); while (toolNames.size() > 1) -@@ -393,7 +401,9 @@ +@@ -477,7 +484,9 @@ if (target->GetPropertyAsBool("AUTOMOC") || target->GetPropertyAsBool("AUTOUIC") @@ -46,20 +46,19 @@ diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQt + || ( target->GetPropertyAsBool("AUTOSTATICPLUGINS") + && target->GetType() == cmTarget::EXECUTABLE)) { - this->SetupSourceFiles(target); - } -@@ -554,6 +564,57 @@ + cmQtAutoGeneratorInitializer::SetupSourceFiles(target, skipMoc, + mocSources, mocHeaders, skipUic); +@@ -649,6 +658,56 @@ { const_cast(target)->AddSource(*fileIt); } -+ + /* in qt5-static/lib/cmake/Qt5Core/Qt5CoreConfig.cmake, macro(_populate_Core_plugin_properties ..), we'd have: + * set_property(TARGET PROPERTY AUTOSTATICPLUGINS True) // Not currently need as defaults to "ON" + * set_property(TARGET Qt5::Core APPEND PROPERTY STATIC_PLUGINS ${Plugin}) + */ + if (target->GetPropertyAsBool("AUTOSTATICPLUGINS")) + { -+ std::vector libTargets = target->GetLinkImplementationClosure(""); ++ std::vector libTargets = gtgt->GetLinkImplementationClosure(""); + std::vector::const_iterator li; + std::vector staticPlugins; + for (li = libTargets.begin(); li != libTargets.end(); ++li) @@ -105,11 +104,11 @@ diff -urN cmake-3.1.0.orig/Source/cmQtAutoGenerators.cxx cmake-3.1.0/Source/cmQt + } } - void cmQtAutoGenerators::SetupAutoMocTarget(cmTarget const* target, -diff -urN cmake-3.1.0.orig/Source/cmTarget.cxx cmake-3.1.0/Source/cmTarget.cxx ---- cmake-3.1.0.orig/Source/cmTarget.cxx 2015-01-03 16:49:13.862853600 +0000 -+++ cmake-3.1.0/Source/cmTarget.cxx 2015-01-03 15:44:35.006951100 +0000 -@@ -342,6 +342,7 @@ + void cmQtAutoGeneratorInitializer::SetupAutoMocTarget(cmTarget const* target, +diff -Naur cmake-3.4.1.orig/Source/cmTarget.cxx cmake-3.4.1/Source/cmTarget.cxx +--- cmake-3.4.1.orig/Source/cmTarget.cxx 2015-12-02 16:43:22.000000000 +0100 ++++ cmake-3.4.1/Source/cmTarget.cxx 2015-12-07 22:38:57.046997600 +0100 +@@ -229,6 +229,7 @@ this->SetPropertyDefault("AUTOMOC", 0); this->SetPropertyDefault("AUTOUIC", 0); this->SetPropertyDefault("AUTORCC", 0); @@ -117,7 +116,7 @@ diff -urN cmake-3.1.0.orig/Source/cmTarget.cxx cmake-3.1.0/Source/cmTarget.cxx this->SetPropertyDefault("AUTOMOC_MOC_OPTIONS", 0); this->SetPropertyDefault("AUTOUIC_OPTIONS", 0); this->SetPropertyDefault("AUTORCC_OPTIONS", 0); -@@ -1727,6 +1728,7 @@ +@@ -1564,6 +1565,7 @@ builtIns.insert("IMPORTED"); builtIns.insert("NAME"); builtIns.insert("TYPE"); From 2494bc8c20492fc4d59f126385945a8ce2f3e277 Mon Sep 17 00:00:00 2001 From: Norbert Pfeiler Date: Tue, 8 Dec 2015 01:57:30 +0100 Subject: [PATCH 1947/2060] cotire: New package --- mingw-w64-cotire/PKGBUILD | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 mingw-w64-cotire/PKGBUILD diff --git a/mingw-w64-cotire/PKGBUILD b/mingw-w64-cotire/PKGBUILD new file mode 100644 index 0000000000..fa8011973d --- /dev/null +++ b/mingw-w64-cotire/PKGBUILD @@ -0,0 +1,25 @@ +# Maintainer: Norbert Pfeiler + +_realname=cotire +pkgname="$MINGW_PACKAGE_PREFIX-$_realname" +pkgver=1.7.6 +pkgrel=1 +pkgdesc='CMake module to speed up builds. Cotire (compile time reducer) is a CMake module that speeds up the build process of CMake based build systems by fully automating techniques as precompiled header usage and single compilation unit builds for C and C++' +arch=(any) +license=('custom') +conflicts=("$MINGW_PACKAGE_PREFIX-cmake<3.4" "$MINGW_PACKAGE_PREFIX-cmake>=3.5") # the Modules dir changes every major release +url='https://github.com/sakra/cotire' +source=("https://github.com/sakra/cotire/archive/$_realname-$pkgver.tar.gz") +md5sums=('9f33cfa81d99686af98e73331adc0ed7') + +package() { + cd "$_realname-$_realname-$pkgver" + + modules_dir="$pkgdir$MINGW_PREFIX/share/cmake-3.4/Modules/" + mkdir -p $modules_dir + cp CMake/cotire.cmake $modules_dir + + license_dir="$pkgdir$MINGW_PREFIX/share/licenses/cotire/" + mkdir -p $license_dir + cp license $license_dir +} From 08af452629ede7654436695497f543973a8a3018 Mon Sep 17 00:00:00 2001 From: Robert McGibbon Date: Tue, 8 Dec 2015 00:24:27 +0000 Subject: [PATCH 1948/2060] Build static libraries for szip and hdf5 --- mingw-w64-hdf5/PKGBUILD | 42 ++++++++++++++++++++++++++++++++++++----- mingw-w64-szip/PKGBUILD | 29 ++++++++++++++++++++++------ 2 files changed, 60 insertions(+), 11 deletions(-) diff --git a/mingw-w64-hdf5/PKGBUILD b/mingw-w64-hdf5/PKGBUILD index c6acec4bd6..c10de5f700 100644 --- a/mingw-w64-hdf5/PKGBUILD +++ b/mingw-w64-hdf5/PKGBUILD @@ -6,7 +6,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver=1.8.15 patch=-patch1 pkgver=${_ver}${patch//-/.} -pkgrel=1 +pkgrel=2 pkgdesc="General purpose library and file format for storing scientific data" arch=('any') url="http://www.hdfgroup.org/HDF5/" @@ -49,13 +49,23 @@ prepare() { echo "SET_TARGET_PROPERTIES (\${HDF5_F90_C_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt echo "SET_TARGET_PROPERTIES (\${HDF5_HL_F90_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt echo "SET_TARGET_PROPERTIES (\${HDF5_HL_F90_C_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt + echo "ELSE ()" >> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_LIB_TARGET} PROPERTIES PREFIX \"\")">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_HL_LIB_TARGET} PROPERTIES PREFIX \"\")">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_CPP_LIB_TARGET} PROPERTIES PREFIX \"\")">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_HL_CPP_LIB_TARGET} PROPERTIES PREFIX \"\")">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_TOOLS_LIB_TARGET} PROPERTIES PREFIX \"\")">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_F90_LIB_TARGET} PROPERTIES PREFIX \"\")">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_F90_C_LIB_TARGET} PROPERTIES PREFIX \"\")">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_HL_F90_LIB_TARGET} PROPERTIES PREFIX \"\")">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_HL_F90_C_LIB_TARGET} PROPERTIES PREFIX \"\")">> CMakeLists.txt echo "ENDIF ()" >> CMakeLists.txt } build() { - [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + # Build shared library + #[[ -d ${srcdir}/build-shared-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-shared-${MINGW_CHOST} + mkdir -p ${srcdir}/build-shared-${MINGW_CHOST} && cd ${srcdir}/build-shared-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ @@ -72,9 +82,31 @@ build() { -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \ ../${_realname}-${_ver}${patch} make + + # Build static library + #[[ -d ${srcdir}/build-static-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-static-${MINGW_CHOST} + mkdir -p ${srcdir}/build-static-${MINGW_CHOST} && cd ${srcdir}/build-static-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON \ + -DHDF5_BUILD_HL_LIB=ON \ + -DHDF5_BUILD_CPP_LIB=ON \ + -DHDF5_BUILD_FORTRAN=ON \ + -DHDF5_BUILD_TOOLS=ON \ + -DHDF5_ENABLE_DEPRECATED_SYMBOLS=ON \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \ + ../${_realname}-${_ver}${patch} + make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-static-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install + + cd "${srcdir}/build-shared-${MINGW_CHOST}" make DESTDIR=${pkgdir} install } diff --git a/mingw-w64-szip/PKGBUILD b/mingw-w64-szip/PKGBUILD index 1cfd382847..962931d10b 100644 --- a/mingw-w64-szip/PKGBUILD +++ b/mingw-w64-szip/PKGBUILD @@ -4,7 +4,7 @@ _realname=szip pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1 -pkgrel=2 +pkgrel=3 pkgdesc="Extended-Rice lossless compression algorithm implementation (mingw-w64)" arch=('any') url="http://www.hdfgroup.org/doc_resource/SZIP/" @@ -31,25 +31,42 @@ prepare() { # rename X.dll to X-0.dll echo "IF (BUILD_SHARED_LIBS)" >> CMakeLists.txt echo "SET_TARGET_PROPERTIES (\${SZIP_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt + echo "ELSE ()" >> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${SZIP_LIB_TARGET} PROPERTIES PREFIX \"\")" >> CMakeLists.txt echo "ENDIF ()" >> CMakeLists.txt } build() { - [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - + # Build static version + [[ -d ${srcdir}/build-static-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-static-${MINGW_CHOST} + mkdir -p ${srcdir}/build-static-${MINGW_CHOST} && cd ${srcdir}/build-static-${MINGW_CHOST} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DBUILD_SHARED_LIBS=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_SKIP_RPATH=ON \ ../${_realname}-${pkgver} make + + # Build shared version + [[ -d ${srcdir}/build-shared-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-shared-${MINGW_CHOST} + mkdir -p ${srcdir}/build-shared-${MINGW_CHOST} && cd ${srcdir}/build-shared-${MINGW_CHOST} + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake.exe \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON \ + ../${_realname}-${pkgver} + make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-static-${MINGW_CHOST}" + make DESTDIR=${pkgdir} install + + cd "${srcdir}/build-shared-${MINGW_CHOST}" make DESTDIR=${pkgdir} install } From ebd979f53fe0a56408150e45874934a908a964df Mon Sep 17 00:00:00 2001 From: Norbert Pfeiler Date: Tue, 8 Dec 2015 02:32:37 +0100 Subject: [PATCH 1949/2060] add pkgbase --- mingw-w64-cotire/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-cotire/PKGBUILD b/mingw-w64-cotire/PKGBUILD index fa8011973d..5b77ebb45d 100644 --- a/mingw-w64-cotire/PKGBUILD +++ b/mingw-w64-cotire/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Norbert Pfeiler _realname=cotire +pkgbase=mingw-w64-${_realname} pkgname="$MINGW_PACKAGE_PREFIX-$_realname" pkgver=1.7.6 pkgrel=1 From 4914af4b0c5132dc71f9cf8a05a8add599059c8a Mon Sep 17 00:00:00 2001 From: Norbert Pfeiler Date: Tue, 8 Dec 2015 02:32:51 +0100 Subject: [PATCH 1950/2060] shorten description --- mingw-w64-cotire/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-cotire/PKGBUILD b/mingw-w64-cotire/PKGBUILD index 5b77ebb45d..1088def648 100644 --- a/mingw-w64-cotire/PKGBUILD +++ b/mingw-w64-cotire/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname} pkgname="$MINGW_PACKAGE_PREFIX-$_realname" pkgver=1.7.6 pkgrel=1 -pkgdesc='CMake module to speed up builds. Cotire (compile time reducer) is a CMake module that speeds up the build process of CMake based build systems by fully automating techniques as precompiled header usage and single compilation unit builds for C and C++' +pkgdesc='CMake module to speed up builds (automated PCH, unity builds). (mingw-w64)' arch=(any) license=('custom') conflicts=("$MINGW_PACKAGE_PREFIX-cmake<3.4" "$MINGW_PACKAGE_PREFIX-cmake>=3.5") # the Modules dir changes every major release From b523f227ca0905c2444e35a4660e1039419333fa Mon Sep 17 00:00:00 2001 From: Robert McGibbon Date: Sun, 6 Dec 2015 01:00:21 +0000 Subject: [PATCH 1951/2060] Add package for libnetcdf --- .../0001-ocinternal-mkdir-patch.patch | 25 +++++++ mingw-w64-netcdf/0002-onstack.patch | 25 +++++++ mingw-w64-netcdf/PKGBUILD | 70 +++++++++++++++++++ 3 files changed, 120 insertions(+) create mode 100644 mingw-w64-netcdf/0001-ocinternal-mkdir-patch.patch create mode 100644 mingw-w64-netcdf/0002-onstack.patch create mode 100644 mingw-w64-netcdf/PKGBUILD diff --git a/mingw-w64-netcdf/0001-ocinternal-mkdir-patch.patch b/mingw-w64-netcdf/0001-ocinternal-mkdir-patch.patch new file mode 100644 index 0000000000..86a4278497 --- /dev/null +++ b/mingw-w64-netcdf/0001-ocinternal-mkdir-patch.patch @@ -0,0 +1,25 @@ +From e7c15d23f013709bc10a61ba2ebbb0ed3031d85e Mon Sep 17 00:00:00 2001 +From: "Robert T. McGibbon" +Date: Sun, 6 Dec 2015 15:11:57 -0800 +Subject: [PATCH 1/1] ocinternal mkdir patch + +--- + oc2/ocinternal.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/oc2/ocinternal.c b/oc2/ocinternal.c +index 0623e6a..3eb5205 100644 +--- a/oc2/ocinternal.c ++++ b/oc2/ocinternal.c +@@ -610,7 +610,7 @@ ocset_curlproperties(OCstate* state) + char tmp[OCPATHMAX+1]; + int stat; + snprintf(tmp,sizeof(tmp)-1,"%s/%s/",ocglobalstate.tempdir,OCDIR); +-#ifdef _MSC_VER ++#ifdef _WIN32 + stat = mkdir(tmp); + #else + stat = mkdir(tmp,S_IRUSR | S_IWUSR | S_IXUSR); +-- +2.3.4 + diff --git a/mingw-w64-netcdf/0002-onstack.patch b/mingw-w64-netcdf/0002-onstack.patch new file mode 100644 index 0000000000..29454b675c --- /dev/null +++ b/mingw-w64-netcdf/0002-onstack.patch @@ -0,0 +1,25 @@ +From 424b09d3c7ab02329d54875e372611666ccf33f2 Mon Sep 17 00:00:00 2001 +From: "Robert T. McGibbon" +Date: Tue, 8 Dec 2015 05:14:08 +0000 +Subject: [PATCH 1/1] patch + +--- + include/onstack.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/onstack.h b/include/onstack.h +index 28414eb..c09529d 100644 +--- a/include/onstack.h ++++ b/include/onstack.h +@@ -19,7 +19,7 @@ + * The macro ALLOC_ONSTACK wraps a call to alloca() on most systems. + */ + +-#ifdef _MSC_VER ++#ifdef _WIN32 + #ifdef HAVE_MALLOC_H + #undef HAVE_ALLOCA + #define HAVE_ALLOCA 1 +-- +2.6.3 + diff --git a/mingw-w64-netcdf/PKGBUILD b/mingw-w64-netcdf/PKGBUILD new file mode 100644 index 0000000000..afe0ad5f47 --- /dev/null +++ b/mingw-w64-netcdf/PKGBUILD @@ -0,0 +1,70 @@ +# Contributor: Robert T. McGibbon + +_realname=netcdf +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=4.3.3 +pkgrel=1 +pkgdesc="Interface for scientific data access to large binary data (mingw-w64)" +arch=('any') +license=('custom') +url="http://www.unidata.ucar.edu/software/netcdf/" +depends=("${MINGW_PACKAGE_PREFIX}-hdf5") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake") +source=("ftp://ftp.unidata.ucar.edu/pub/netcdf/${_realname}-${pkgver}.zip" + "0001-ocinternal-mkdir-patch.patch" + "0002-onstack.patch") +md5sums=('24b9bdc8f430e16eb5c9f6f131b2214b' + '5700bcd1fa06ceeb43112f28a45f7b0d' + '662dc94415cc5acb36220dfbbebe6734') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + patch -p1 -i "${srcdir}"/0001-ocinternal-mkdir-patch.patch + patch -p1 -i "${srcdir}"/0002-onstack.patch +} + +build() { + [[ -d ${srcdir}/build-static-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-static-${MINGW_CHOST} + mkdir -p ${srcdir}/build-static-${MINGW_CHOST} && cd ${srcdir}/build-static-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake -G "MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DENABLE_DLL=OFF \ + -DENABLE_DAP=OFF \ + -DBUILD_TESTING=OFF \ + -DENABLE_DYNAMIC_LOADING=OFF \ + -DENABLE_NETCDF_4=ON \ + "${srcdir}/${_realname}-${pkgver}" + make || make + + [[ -d ${srcdir}/build-shared-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-shared-${MINGW_CHOST} + mkdir -p ${srcdir}/build-shared-${MINGW_CHOST} && cd ${srcdir}/build-shared-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake -G "MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DENABLE_DAP=OFF \ + -DBUILD_TESTING=OFF \ + -DENABLE_DYNAMIC_LOADING=OFF \ + -DENABLE_NETCDF_4=ON \ + "${srcdir}/${_realname}-${pkgver}" + make || make +} + +package() { + cd ${srcdir}/build-static-${MINGW_CHOST} + make DESTDIR=${pkgdir} install + + cd ${srcdir}/build-shared-${MINGW_CHOST} + make DESTDIR=${pkgdir} install + + install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYRIGHT \ + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYRIGHT +} From 0bbadf8a75c7fa12236b4bd098126d4dad769e3c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 11 Dec 2015 00:25:35 +0000 Subject: [PATCH 1952/2060] ag: Refresh patches --- ...w-both-extensions-and-full-filenames.patch | 26 ++++++++--------- ...ons-Fix-ordering-problems-with-color.patch | 28 +++++++++---------- ...03-lang-Add-autotools-ac-am-in-m4-pc.patch | 10 +++---- ...-Makefile-Makefile.Debug-Makefile.Re.patch | 19 +++++++------ ...kepkg-PKGBUILD-diff-patch-in-install.patch | 12 ++++---- mingw-w64-ag/PKGBUILD | 12 ++++---- 6 files changed, 54 insertions(+), 53 deletions(-) diff --git a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch index f9a5324f64..88a103c20a 100644 --- a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch +++ b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch @@ -1,4 +1,4 @@ -From e181c2ef2cbe8e377684c4111442fcad437b5730 Mon Sep 17 00:00:00 2001 +From 3e47c24fc7bc1cc7f52f0b18d977cc8756048e33 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 21:46:45 +0000 Subject: [PATCH 1/5] lang: Allow both extensions and full filenames @@ -16,10 +16,10 @@ are indicated by prefixing the pattern with a '^'. 3 files changed, 61 insertions(+), 48 deletions(-) diff --git a/src/lang.c b/src/lang.c -index 6841f67..0041c47 100644 +index 87cdcec..54f51ca 100644 --- a/src/lang.c +++ b/src/lang.c -@@ -93,20 +93,27 @@ size_t get_lang_count() { +@@ -101,20 +101,27 @@ size_t get_lang_count() { return sizeof(langs) / sizeof(lang_spec_t); } @@ -55,7 +55,7 @@ index 6841f67..0041c47 100644 regex_capacity *= 2; regex = ag_realloc(regex, regex_capacity); } -@@ -115,8 +122,12 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { +@@ -123,8 +130,12 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { } else { subsequent = 1; } @@ -70,7 +70,7 @@ index 6841f67..0041c47 100644 } regex[regex_length++] = ')'; -@@ -125,29 +136,29 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { +@@ -133,29 +144,29 @@ char *make_lang_regex(char *ext_array, size_t num_exts) { return regex; } @@ -165,10 +165,10 @@ index d0007f9..202da4b 100644 +size_t combine_file_patterns(size_t *pattern_index, size_t len, char **pats); #endif diff --git a/src/options.c b/src/options.c -index 6efa4dd..a000f15 100644 +index 88ad65b..bafb1ea 100644 --- a/src/options.c +++ b/src/options.c -@@ -205,9 +205,9 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -210,9 +210,9 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { size_t longopts_len, full_len; option_t *longopts; char *lang_regex = NULL; @@ -181,7 +181,7 @@ index 6efa4dd..a000f15 100644 init_options(); -@@ -295,8 +295,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -304,8 +304,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { full_len = (longopts_len + lang_count + 1); longopts = ag_malloc(full_len * sizeof(option_t)); memcpy(longopts, base_longopts, sizeof(base_longopts)); @@ -192,7 +192,7 @@ index 6efa4dd..a000f15 100644 for (i = 0; i < lang_count; i++) { option_t opt = { langs[i].name, no_argument, NULL, 0 }; -@@ -525,7 +525,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -544,7 +544,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { for (i = 0; i < lang_count; i++) { if (strcmp(longopts[opt_index].name, langs[i].name) == 0) { @@ -201,10 +201,10 @@ index 6efa4dd..a000f15 100644 break; } } -@@ -541,16 +541,16 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -572,16 +572,16 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + free(file_search_regex); } - - if (ext_index[0]) { - num_exts = combine_file_extensions(ext_index, lang_num, &extensions); - lang_regex = make_lang_regex(extensions, num_exts); @@ -224,7 +224,7 @@ index 6efa4dd..a000f15 100644 if (lang_regex) { free(lang_regex); } -@@ -587,8 +587,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -614,8 +614,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { for (lang_index = 0; lang_index < lang_count; lang_index++) { printf(" --%s\n ", langs[lang_index].name); int j; @@ -236,5 +236,5 @@ index 6efa4dd..a000f15 100644 printf("\n\n"); } -- -2.4.5 +2.6.3 diff --git a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch index 4292e680bd..0bbf21baff 100644 --- a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch +++ b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch @@ -1,4 +1,4 @@ -From 171ac752fda4aadafc649888d89c13a8cc49018d Mon Sep 17 00:00:00 2001 +From 9370c54a50a27d42c9e2d5254bb99b05549ded59 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:12:15 +0000 Subject: [PATCH 2/5] options: Fix ordering problems with --color @@ -24,7 +24,7 @@ Moved around the logic of setting opts.color so that: 3 files changed, 102 insertions(+), 58 deletions(-) diff --git a/configure.ac b/configure.ac -index f266ec6..09c43db 100644 +index 42aaf79..9e6b778 100644 --- a/configure.ac +++ b/configure.ac @@ -24,7 +24,7 @@ AX_PTHREAD( @@ -37,10 +37,10 @@ index f266ec6..09c43db 100644 case $host in diff --git a/src/options.c b/src/options.c -index a000f15..1f65c08 100644 +index bafb1ea..f329887 100644 --- a/src/options.c +++ b/src/options.c -@@ -137,8 +137,16 @@ void print_version(void) { +@@ -140,8 +140,16 @@ void print_version(void) { void init_options(void) { memset(&opts, 0, sizeof(opts)); opts.casing = CASE_DEFAULT; @@ -58,8 +58,8 @@ index a000f15..1f65c08 100644 + opts.max_matches_per_file = 0; opts.max_search_depth = DEFAULT_MAX_SEARCH_DEPTH; - opts.path_sep = '\n'; -@@ -221,11 +229,11 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { + opts.multiline = TRUE; +@@ -226,11 +234,11 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { { "before", optional_argument, NULL, 'B' }, { "break", no_argument, &opts.print_break, 1 }, { "case-sensitive", no_argument, NULL, 's' }, @@ -73,7 +73,7 @@ index a000f15..1f65c08 100644 { "column", no_argument, &opts.column, 1 }, { "context", optional_argument, NULL, 'C' }, { "count", no_argument, NULL, 'c' }, -@@ -256,7 +264,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -262,7 +270,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { { "no-recurse", no_argument, NULL, 'n' }, { "noaffinity", no_argument, &opts.use_thread_affinity, 0 }, { "nobreak", no_argument, &opts.print_break, 0 }, @@ -82,7 +82,7 @@ index a000f15..1f65c08 100644 { "nofilename", no_argument, NULL, 0 }, { "nofollow", no_argument, &opts.follow_symlinks, 0 }, { "nogroup", no_argument, &group, 0 }, -@@ -318,22 +326,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -327,22 +335,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { } } @@ -102,10 +102,10 @@ index a000f15..1f65c08 100644 - opts.stdout_inode = statbuf.st_ino; - } - - int pcre_opts = 0; - while ((ch = getopt_long(argc, argv, "A:aB:C:cDG:g:FfHhiLlm:nop:QRrSsvVtuUwz0", longopts, &opt_index)) != -1) { + char *file_search_regex = NULL; + while ((ch = getopt_long(argc, argv, "A:aB:C:cDG:g:FfHhiLlm:nop:QRrSsvVtuUwW:z0", longopts, &opt_index)) != -1) { switch (ch) { -@@ -635,42 +627,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -662,42 +654,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { opts.after = opts.context; } @@ -148,7 +148,7 @@ index a000f15..1f65c08 100644 if (accepts_query && argc > 0) { // use the provided query opts.query = ag_strdup(argv[0]); -@@ -724,6 +680,84 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { +@@ -761,6 +717,84 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) { (*paths)[i] = NULL; (*base_paths)[i] = NULL; @@ -234,7 +234,7 @@ index a000f15..1f65c08 100644 windows_use_ansi(opts.color_win_ansi); #endif diff --git a/src/options.h b/src/options.h -index 7d7aca1..4bbd4e2 100644 +index ac213f2..2cf8c68 100644 --- a/src/options.h +++ b/src/options.h @@ -26,6 +26,16 @@ enum path_print_behavior { @@ -255,5 +255,5 @@ index 7d7aca1..4bbd4e2 100644 int ackmate; pcre *ackmate_dir_filter; -- -2.4.5 +2.6.3 diff --git a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch index ae54a3d04f..6c35ea4306 100644 --- a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch +++ b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch @@ -1,4 +1,4 @@ -From da115d2c7118406bda5ddf1f121c579758bc7c7f Mon Sep 17 00:00:00 2001 +From 28ce92a301baeec2344816fcacf08b9881c9ef35 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:16:54 +0000 Subject: [PATCH 3/5] lang: Add autotools (ac, am, in, m4, pc) @@ -8,7 +8,7 @@ Subject: [PATCH 3/5] lang: Add autotools (ac, am, in, m4, pc) 1 file changed, 1 insertion(+) diff --git a/src/lang.c b/src/lang.c -index 0041c47..2a763a7 100644 +index 54f51ca..b5b2a2b 100644 --- a/src/lang.c +++ b/src/lang.c @@ -8,6 +8,7 @@ lang_spec_t langs[] = { @@ -17,8 +17,8 @@ index 0041c47..2a763a7 100644 { "asm", { "asm", "s" } }, + { "autotools", { "ac", "am", "in", "m4", "pc" } }, { "batch", { "bat", "cmd" } }, - { "cc", { "c", "h", "xs" } }, - { "cfmx", { "cfc", "cfm", "cfml" } }, + { "bitbake", { "bb", "bbappend", "bbclass", "inc" } }, + { "bro", { "bro", "bif" } }, -- -2.4.5 +2.6.3 diff --git a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch index 9daa6691ec..7d5b64ad53 100644 --- a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch +++ b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch @@ -1,28 +1,29 @@ -From 48d7b444152679fed68861a370111f6d5ab6ad82 Mon Sep 17 00:00:00 2001 +From 91e21fbb4ac59ecd4fe15ac5b754455d033cd90a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:18:27 +0000 Subject: [PATCH 4/5] lang: Add to make (^Makefile, ^Makefile.Debug, - ^Makefile.Release) + ^Makefile.Release, *.make) -All additions are full filename patterns. The .Debug and .Release ones -are used by Qt. +All but one addition are full filename patterns. The +Makefile.Debug and Makefile.Release ones are used by Qt, the *.make +one is used by CMake. --- src/lang.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang.c b/src/lang.c -index 2a763a7..5deb4ad 100644 +index b5b2a2b..ede3b85 100644 --- a/src/lang.c +++ b/src/lang.c -@@ -42,7 +42,7 @@ lang_spec_t langs[] = { +@@ -45,7 +45,7 @@ lang_spec_t langs[] = { { "lisp", { "lisp", "lsp" } }, { "lua", { "lua" } }, { "m4", { "m4" } }, - { "make", { "Makefiles", "mk", "mak" } }, -+ { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak" } }, ++ { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak", "make" } }, + { "mako", { "mako" } }, { "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } }, { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, - { "matlab", { "m" } }, -- -2.4.5 +2.6.3 diff --git a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch index fd66bffa26..83f895f3d5 100644 --- a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch +++ b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch @@ -1,4 +1,4 @@ -From a695cac1d9145b6c2f0a10bc50a27f6c9e6ee839 Mon Sep 17 00:00:00 2001 +From 3cb2e53eea87bbe3870d2c5d3c3582fc03d865c2 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:21:26 +0000 Subject: [PATCH 5/5] lang: Add makepkg (^PKGBUILD, diff, patch, in, install) @@ -9,17 +9,17 @@ Used by the makepkg build system of ArchLinux and MSYS2 1 file changed, 1 insertion(+) diff --git a/src/lang.c b/src/lang.c -index 5deb4ad..7fd2622 100644 +index ede3b85..fc4ae6b 100644 --- a/src/lang.c +++ b/src/lang.c -@@ -43,6 +43,7 @@ lang_spec_t langs[] = { +@@ -46,6 +46,7 @@ lang_spec_t langs[] = { { "lua", { "lua" } }, { "m4", { "m4" } }, - { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak" } }, + { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak", "make" } }, + { "makepkg", { "^PKGBUILD", "diff", "patch", "in", "install" } }, + { "mako", { "mako" } }, { "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } }, { "mason", { "mas", "mhtml", "mpl", "mtxt" } }, - { "matlab", { "m" } }, -- -2.4.5 +2.6.3 diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index 47df0f0608..926a1f126e 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -4,7 +4,7 @@ _realname=ag _longname=the_silver_searcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.30.0.r1599.07f8336 +pkgver=0.31.0.r1661.9e11263 pkgrel=1 pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" arch=('any') @@ -24,11 +24,11 @@ source=("${_realname}"::"git+https://github.com/ggreer/the_silver_searcher.git" "0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch" "0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch") md5sums=('SKIP' - '6aeb23bcef5ae575ba16ef185e4cb5ed' - '2404684ccfed436db5931862ef13f895' - '6ce0a9f4c3907c7e49db7d3f171005ee' - '4736eb32c5737e711fe48c4a0eb5585f' - 'dce91f9375191a9ee89c389d56d67a68') + '2cbfe987d46d568d8fdce82ce3c6ceeb' + 'a1f270a1b99f1ab09550b1faf6e5445e' + '67fe0ed56c6056b2c34af3477737baa4' + '660f31001fa8cd4f4b5dca4c3ad0d4f6' + '1113c71eaaf59ddb358b4ab8834747ef') pkgver() { cd ${srcdir}/${_realname} From e7664fb83adc298945ee8d50685ce04d79d0b924 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 12 Dec 2015 19:56:22 +0000 Subject: [PATCH 1953/2060] ag: Add cmake file-type --- ...-cmake-CMakeLists.txt-CMakeCache.txt.patch | 25 +++++++++++++++++++ mingw-w64-ag/PKGBUILD | 17 +++++++------ 2 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 mingw-w64-ag/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch diff --git a/mingw-w64-ag/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch b/mingw-w64-ag/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch new file mode 100644 index 0000000000..676744ba45 --- /dev/null +++ b/mingw-w64-ag/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch @@ -0,0 +1,25 @@ +From 920fdadb748ada482f2eba5828e01c5f5ed889c0 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Sat, 12 Dec 2015 19:55:47 +0000 +Subject: [PATCH 6/6] lang: Add cmake (^CMakeLists.txt, ^CMakeCache.txt .. + +.. ^CMakeError.log, ^CMakeOutput.log, cmake) +--- + src/lang.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/lang.c b/src/lang.c +index fc4ae6b..77a32dd 100644 +--- a/src/lang.c ++++ b/src/lang.c +@@ -15,6 +15,7 @@ lang_spec_t langs[] = { + { "cc", { "c", "h", "xs" } }, + { "cfmx", { "cfc", "cfm", "cfml" } }, + { "clojure", { "clj", "cljs", "cljc", "cljx" } }, ++ { "cmake", { "^CMakeLists.txt", "^CMakeCache.txt", "^CMakeError.log", "^CMakeOutput.log", "cmake" } }, + { "coffee", { "coffee", "cjsx" } }, + { "cpp", { "cpp", "cc", "C", "cxx", "m", "hpp", "hh", "h", "H", "hxx" } }, + { "crystal", { "cr", "ecr" } }, +-- +2.6.3 + diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index 926a1f126e..2d10627e8a 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -5,7 +5,7 @@ _realname=ag _longname=the_silver_searcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.31.0.r1661.9e11263 -pkgrel=1 +pkgrel=2 pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" arch=('any') url="http://geoff.greer.fm/ag" @@ -22,13 +22,15 @@ source=("${_realname}"::"git+https://github.com/ggreer/the_silver_searcher.git" "0002-options-Fix-ordering-problems-with-color.patch" "0003-lang-Add-autotools-ac-am-in-m4-pc.patch" "0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch" - "0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch") + "0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch" + "0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch") md5sums=('SKIP' - '2cbfe987d46d568d8fdce82ce3c6ceeb' - 'a1f270a1b99f1ab09550b1faf6e5445e' - '67fe0ed56c6056b2c34af3477737baa4' - '660f31001fa8cd4f4b5dca4c3ad0d4f6' - '1113c71eaaf59ddb358b4ab8834747ef') + '28a300d49e727b2cd8ef3986a2505512' + '70682584c82152ef3cddc5ffc3270419' + '29260cc31043bcae5369b965c81a5b82' + '7f55145e3f876700983bc341da6afa38' + 'eca07be033e1b7d3bc3f653e05fe795b' + '6758242bc5415c340cfc90f239c6de3c') pkgver() { cd ${srcdir}/${_realname} @@ -43,6 +45,7 @@ prepare() { git am "${srcdir}"/0003-lang-Add-autotools-ac-am-in-m4-pc.patch git am "${srcdir}"/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch git am "${srcdir}"/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch + git am "${srcdir}"/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch # configure.ac forces -O2, so force it to -O0 if debugging. if check_option "debug" "y"; then From fae6093b8f5412ad1e18e18bdc42c541dd0f1572 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 13 Dec 2015 23:13:10 +0000 Subject: [PATCH 1954/2060] ag: updpkgsums --- ...ng-Allow-both-extensions-and-full-filenames.patch | 4 ++-- ...02-options-Fix-ordering-problems-with-color.patch | 4 ++-- .../0003-lang-Add-autotools-ac-am-in-m4-pc.patch | 4 ++-- ...to-make-Makefile-Makefile.Debug-Makefile.Re.patch | 4 ++-- ...-Add-makepkg-PKGBUILD-diff-patch-in-install.patch | 4 ++-- ...ang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch | 2 +- mingw-w64-ag/PKGBUILD | 12 ++++++------ 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch index 88a103c20a..accb200c4c 100644 --- a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch +++ b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch @@ -1,7 +1,7 @@ -From 3e47c24fc7bc1cc7f52f0b18d977cc8756048e33 Mon Sep 17 00:00:00 2001 +From 8ef5dc35835c271e955979af7ccc660a9996debd Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 21:46:45 +0000 -Subject: [PATCH 1/5] lang: Allow both extensions and full filenames +Subject: [PATCH 1/6] lang: Allow both extensions and full filenames Because many filetypes (e.g. make) are not indicated by the file extension but instead by the full filename (Makefile). diff --git a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch index 0bbf21baff..ff870af51a 100644 --- a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch +++ b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch @@ -1,7 +1,7 @@ -From 9370c54a50a27d42c9e2d5254bb99b05549ded59 Mon Sep 17 00:00:00 2001 +From 8560a5b4e4a3c984265c767f7b6fcc5aa787c654 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:12:15 +0000 -Subject: [PATCH 2/5] options: Fix ordering problems with --color +Subject: [PATCH 2/6] options: Fix ordering problems with --color Moved around the logic of setting opts.color so that: diff --git a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch index 6c35ea4306..03b0d2e379 100644 --- a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch +++ b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch @@ -1,7 +1,7 @@ -From 28ce92a301baeec2344816fcacf08b9881c9ef35 Mon Sep 17 00:00:00 2001 +From 8a1495dce46227097c73adfbeb55cc4dea9c1a3d Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:16:54 +0000 -Subject: [PATCH 3/5] lang: Add autotools (ac, am, in, m4, pc) +Subject: [PATCH 3/6] lang: Add autotools (ac, am, in, m4, pc) --- src/lang.c | 1 + diff --git a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch index 7d5b64ad53..0db6537af6 100644 --- a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch +++ b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch @@ -1,7 +1,7 @@ -From 91e21fbb4ac59ecd4fe15ac5b754455d033cd90a Mon Sep 17 00:00:00 2001 +From 778583071e6b237db7e80f08b63e62a6f1dc5d98 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:18:27 +0000 -Subject: [PATCH 4/5] lang: Add to make (^Makefile, ^Makefile.Debug, +Subject: [PATCH 4/6] lang: Add to make (^Makefile, ^Makefile.Debug, ^Makefile.Release, *.make) All but one addition are full filename patterns. The diff --git a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch index 83f895f3d5..8327541a6d 100644 --- a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch +++ b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch @@ -1,7 +1,7 @@ -From 3cb2e53eea87bbe3870d2c5d3c3582fc03d865c2 Mon Sep 17 00:00:00 2001 +From 7faacc6b0552fb87e34f6b4ff7afc6b37edcfb68 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 23 Feb 2015 22:21:26 +0000 -Subject: [PATCH 5/5] lang: Add makepkg (^PKGBUILD, diff, patch, in, install) +Subject: [PATCH 5/6] lang: Add makepkg (^PKGBUILD, diff, patch, in, install) Used by the makepkg build system of ArchLinux and MSYS2 --- diff --git a/mingw-w64-ag/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch b/mingw-w64-ag/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch index 676744ba45..bb59a9c468 100644 --- a/mingw-w64-ag/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch +++ b/mingw-w64-ag/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch @@ -1,4 +1,4 @@ -From 920fdadb748ada482f2eba5828e01c5f5ed889c0 Mon Sep 17 00:00:00 2001 +From 10d70a323b34491746fc2e563c7765b54ab7f0e9 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 12 Dec 2015 19:55:47 +0000 Subject: [PATCH 6/6] lang: Add cmake (^CMakeLists.txt, ^CMakeCache.txt .. diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index 2d10627e8a..adae843e29 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -25,12 +25,12 @@ source=("${_realname}"::"git+https://github.com/ggreer/the_silver_searcher.git" "0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch" "0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch") md5sums=('SKIP' - '28a300d49e727b2cd8ef3986a2505512' - '70682584c82152ef3cddc5ffc3270419' - '29260cc31043bcae5369b965c81a5b82' - '7f55145e3f876700983bc341da6afa38' - 'eca07be033e1b7d3bc3f653e05fe795b' - '6758242bc5415c340cfc90f239c6de3c') + '73e60af8e8f0eb12e69797a6377b3ba9' + '8364f2765d95d3a550cd7698c3540ab6' + '6dc9b48f11616f2392935d3297bdabbc' + 'e40bea74e7b32da3543d635e1984be64' + '40ef6ecb9db4c7b8ae6e8a13b5ecafb8' + '75e55c3d88d435994e8562d29ada825e') pkgver() { cd ${srcdir}/${_realname} From 1d5b0c4589a1e7ed076425a1a09da308c564090e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 13 Dec 2015 23:17:52 +0000 Subject: [PATCH 1955/2060] qtcreator: Use systemEnvironment for startAndDebugApplication --- mingw-w64-qtcreator/PKGBUILD | 13 +++++++++---- ...t-For-Start-and-Debug-External-Application.patch | 10 ++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-qtcreator/qt-creator-3.5.1-Use-systemEnvironment-For-Start-and-Debug-External-Application.patch diff --git a/mingw-w64-qtcreator/PKGBUILD b/mingw-w64-qtcreator/PKGBUILD index 9c2608aff2..ee9037c084 100644 --- a/mingw-w64-qtcreator/PKGBUILD +++ b/mingw-w64-qtcreator/PKGBUILD @@ -7,7 +7,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" __pre= _base_ver=3.5.1 pkgver=${_base_ver}${_pre} -pkgrel=1 +pkgrel=2 pkgdesc='Cross-patform IDE (mingw-w64)' url='http://qt-project.org' install=qt-creator-${CARCH}.install @@ -38,7 +38,8 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v qt-creator-3.2.0-i[3456]86-and-x86-have-32bit-wordWidth.patch qt-creator-3.3.0-MinGW-w64-MIB_TCP_STATE-not-defined-until-Vista.patch qt-creator-3.5.0-shellquote-declspec-dllexport-for-unix-shell.patch - qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch) + qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch + qt-creator-3.5.1-Use-systemEnvironment-For-Start-and-Debug-External-Application.patch) noextract=(${_pkgfqn}.tar.gz) sha256sums=('5925ac818a08be919094e0f28fb4c5d8896765e0975d54d353e4c50f13d63e65' 'b4eba129997fef75b811d0ba3ef573db23ba13e43f9dbdb0c27164ee551ba08d' @@ -50,7 +51,8 @@ sha256sums=('5925ac818a08be919094e0f28fb4c5d8896765e0975d54d353e4c50f13d63e65' '79fc4d2ef02ff8f458b1b330c683c2a86397f056369c90176a9ddbeba3b719fd' 'b4cf07e2772b2ec6710ee7df6463feddb4195d65fa59e6c6095fbc0cb240417e' '802376acf3bc4546db60efdc026b348c4d09485b532a8db31d51d9e3fb74cecc' - '06ff443b53c6f49ff5f2f62d39485ea5a78e5a332bf11082a0e2e4d25dd29f38') + '06ff443b53c6f49ff5f2f62d39485ea5a78e5a332bf11082a0e2e4d25dd29f38' + '7cb146d011da934e374343630023e6dbe83f8bfba615b7fe2b51dd2599253c76') prepare() { [[ -d ${srcdir}/${_pkgfqn} ]] && rm -rf ${srcdir}/${_pkgfqn} @@ -72,6 +74,7 @@ prepare() { # Arguably mingw-w64 headers should define __GNUC_PREREQ (_mingw.h defines __MINGW_GNUC_PREREQ) # .. otherwise perhaps GCC should define this always (on GNU/Linux, glibc's features.h defines it) patch -p1 -i "${srcdir}"/qt-creator-3.5.0-Hacky-fix-for-__GNUC_PREREQ-usage.patch + patch -p1 -i "${srcdir}"/qt-creator-3.5.1-Use-systemEnvironment-For-Start-and-Debug-External-Application.patch # Use system installed qbs rm -rf src/shared/qbs @@ -106,7 +109,7 @@ package() { # return 0 # Debugger ProjectExplorer # ALLGOOD="yes" -# PLUGINS="AutotoolsProjectManager" +# PLUGINS="Debugger" # for PLUGIN in $PLUGINS; do # PLUGINLC=$(echo ${PLUGIN} | tr 'A-Z' 'a-z') # pushd src/build-x86_64-w64-mingw32/src/plugins/${PLUGINLC} @@ -124,9 +127,11 @@ package() { # for PLUGIN in $PLUGINS; do # PLUGINLC=$(echo ${PLUGIN} | tr 'A-Z' 'a-z') # pushd src/build-x86_64-w64-mingw32/src/plugins/${PLUGINLC} +# PATH=/mingw64/bin:$PATH make # cp ../../../lib/qtcreator/plugins/${PLUGIN}d.dll /mingw64/lib/qtcreator/plugins/ # popd # done # PATH=/mingw64/bin:$PATH /mingw64/bin/qtcreator & # ) # fi +# diff --git a/mingw-w64-qtcreator/qt-creator-3.5.1-Use-systemEnvironment-For-Start-and-Debug-External-Application.patch b/mingw-w64-qtcreator/qt-creator-3.5.1-Use-systemEnvironment-For-Start-and-Debug-External-Application.patch new file mode 100644 index 0000000000..ae3a3a7b27 --- /dev/null +++ b/mingw-w64-qtcreator/qt-creator-3.5.1-Use-systemEnvironment-For-Start-and-Debug-External-Application.patch @@ -0,0 +1,10 @@ +--- qt-creator-opensource-src-3.5.1/src/plugins/debugger/debuggerplugin.cpp.orig 2015-12-13 23:13:54.758957800 +0000 ++++ qt-creator-opensource-src-3.5.1/src/plugins/debugger/debuggerplugin.cpp 2015-12-13 23:13:56.742161300 +0000 +@@ -1297,6 +1297,7 @@ + void DebuggerPluginPrivate::startAndDebugApplication() + { + DebuggerRunParameters rp; ++ rp.environment = Environment::systemEnvironment(); + Kit *kit; + if (StartApplicationDialog::run(ICore::dialogParent(), &rp, &kit)) + createAndScheduleRun(rp, kit); From 0f45b935c3f595e5273f2a2647d323f10eb25619 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 15 Dec 2015 06:51:39 +0000 Subject: [PATCH 1956/2060] wxWidgets: Fix wx-config prefix under CMake execution It needs to get a native-mixed path so use cygpath -m when MSYSTEM is MINGW32 or MINGW64. Hopefully this will not break other cases. Found while trying to build codelite. --- mingw-w64-wxwidgets/PKGBUILD | 33 +++++++++++-------- ...0.2-relocate-prefix-in-bin-wx-config.patch | 12 +++++++ 2 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 mingw-w64-wxwidgets/wxWidgets-3.0.2-relocate-prefix-in-bin-wx-config.patch diff --git a/mingw-w64-wxwidgets/PKGBUILD b/mingw-w64-wxwidgets/PKGBUILD index c80f4116aa..4b2dbbe029 100644 --- a/mingw-w64-wxwidgets/PKGBUILD +++ b/mingw-w64-wxwidgets/PKGBUILD @@ -1,11 +1,13 @@ # Maintainer: Alexey Pavlov # Contributor: Renato Silva # Contributor: Zach Bacon <11doctorwhocanada@gmail.com> +# Contributor: Ray Donnelly _realname=wxWidgets pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgbase=mingw-w64-${_realname} pkgver=3.0.2 -pkgrel=11 +pkgrel=12 pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)" arch=('any') license=("custom:wxWindows") @@ -24,23 +26,26 @@ options=('strip' 'staticlibs' 'buildflags') source=(http://downloads.sourceforge.net/wxwindows/wxWidgets-${pkgver}.tar.bz2 "wxWidgets-3.0.0-gcc-codelight.patch" "wxWidgets-3.0.2-msw-dc-orientation-fix.patch" - "wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch") + "wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch" + "wxWidgets-3.0.2-relocate-prefix-in-bin-wx-config.patch") sha1sums=('6461eab4428c0a8b9e41781b8787510484dea800' '05a3471dcf735d86defe0df00dcb8e9ff0698290' '99999865476ce03bb75e8244806f3585fe9e71e2' - '62dcd59adde91925e5c51422e192c035978cdedd') + '62dcd59adde91925e5c51422e192c035978cdedd' + '44e2e55fc4340d91a0c8f31b1f98e4e4ac6f2eaf') prepare() { - cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/wxWidgets-3.0.0-gcc-codelight.patch - patch -p1 -i ${srcdir}/wxWidgets-3.0.2-msw-dc-orientation-fix.patch - patch -p1 -i ${srcdir}/wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch + cd "${srcdir}"/${_realname}-${pkgver} + patch -p1 -i "${srcdir}"/wxWidgets-3.0.0-gcc-codelight.patch + patch -p1 -i "${srcdir}"/wxWidgets-3.0.2-msw-dc-orientation-fix.patch + patch -p1 -i "${srcdir}"/wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch + patch -p1 -i "${srcdir}"/wxWidgets-3.0.2-relocate-prefix-in-bin-wx-config.patch } build() { #CXXFLAGS+=" -std=gnu++11" - [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ @@ -64,8 +69,8 @@ build() { make #VERBOSE=1 #CXXFLAGS+=" -std=gnu++11" - [[ -d ${srcdir}/build-${CARCH}-static ]] && rm -rf ${srcdir}/build-${CARCH}-static - mkdir -p ${srcdir}/build-${CARCH}-static && cd ${srcdir}/build-${CARCH}-static + [[ -d "${srcdir}"/build-${CARCH}-static ]] && rm -rf "${srcdir}"/build-${CARCH}-static + mkdir -p "${srcdir}"/build-${CARCH}-static && cd "${srcdir}"/build-${CARCH}-static ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ @@ -91,17 +96,17 @@ build() { } package() { - cd ${srcdir}/build-${CARCH}-static + cd "${srcdir}"/build-${CARCH}-static make DESTDIR="${pkgdir}" install mv ${pkgdir}${MINGW_PREFIX}/bin/wx-config{,-static} - cd ${srcdir}/build-${CARCH} + cd "${srcdir}"/build-${CARCH} make DESTDIR="${pkgdir}" install mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin # License files - cd "${srcdir}/${_realname}-${pkgver}/docs" + cd "${srcdir}"/${_realname}-${pkgver}/docs install -Dm644 preamble.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/preamble.txt" install -Dm644 licence.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/licence.txt" install -Dm644 licendoc.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/licendoc.txt" diff --git a/mingw-w64-wxwidgets/wxWidgets-3.0.2-relocate-prefix-in-bin-wx-config.patch b/mingw-w64-wxwidgets/wxWidgets-3.0.2-relocate-prefix-in-bin-wx-config.patch new file mode 100644 index 0000000000..96307ad9f3 --- /dev/null +++ b/mingw-w64-wxwidgets/wxWidgets-3.0.2-relocate-prefix-in-bin-wx-config.patch @@ -0,0 +1,12 @@ +--- wxWidgets-3.0.2/wx-config.in.orig 2015-12-12 14:49:36.241974800 +0000 ++++ wxWidgets-3.0.2/wx-config.in 2015-12-12 14:53:06.242503400 +0000 +@@ -401,6 +401,9 @@ + + # Determine the base directories we require. + prefix=${input_option_prefix-${this_prefix:-@prefix@}} ++if [ "x${MSYSTEM}" = "xMINGW32" ] || [ "x${MSYSTEM}" = "xMINGW64" ]; then ++ prefix=$(cygpath -m ${prefix}) ++fi + exec_prefix=${input_option_exec_prefix-${input_option_prefix-${this_exec_prefix:-@exec_prefix@}}} + wxconfdir="@libdir@/wx/config" + From 1ffe9ec14db070f004cc8f448ad632fcb706c055 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Thu, 17 Dec 2015 16:05:32 +0100 Subject: [PATCH 1957/2060] gedit: update to version 3.18.2 --- mingw-w64-gedit/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gedit/PKGBUILD b/mingw-w64-gedit/PKGBUILD index 41d4f9a17b..f121c3310a 100644 --- a/mingw-w64-gedit/PKGBUILD +++ b/mingw-w64-gedit/PKGBUILD @@ -3,8 +3,8 @@ _realname=gedit pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.18.0 -pkgrel=2 +pkgver=3.18.2 +pkgrel=1 arch=('any') pkgdesc="A text editor for GNOME (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" @@ -27,7 +27,7 @@ license=("GPL") url="http://www.gnome.org" install=${_realname}-${CARCH}.install source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) -sha256sums=('9abd4f1478385f8b6c983298206f4ab1a25c682b9c87fb00d759b7db5b949533') +sha256sums=('856e451aec29ee45980011de57cadfe89c3cbc53968f6cc865f8efe0bd0d49b1') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From a78b43dde401ec55a68e3bed5841b1b171a669bf Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Thu, 17 Dec 2015 16:06:53 +0100 Subject: [PATCH 1958/2060] gedit-plugins: update to version 3.18.0 --- mingw-w64-gedit-plugins/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gedit-plugins/PKGBUILD b/mingw-w64-gedit-plugins/PKGBUILD index 484f98b316..4c6acf2eee 100644 --- a/mingw-w64-gedit-plugins/PKGBUILD +++ b/mingw-w64-gedit-plugins/PKGBUILD @@ -2,8 +2,8 @@ _realname=gedit-plugins pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 -pkgrel=2 +pkgver=3.18.0 +pkgrel=1 arch=('any') pkgdesc="Collection of plugins for the gedit Text Editor (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gedit" @@ -20,7 +20,7 @@ license=("GPL") url="https://wiki.gnome.org/Apps/Gedit/ShippedPlugins" install=gedit-plugins-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz) -sha256sums=('b685b84ada8ca04f6aa201e402a0208591be4a37b874595a0a85d0a14b52f191') +sha256sums=('e25249c0c2a057827bb4d4755a2359e1f9b4de288e0c4e201c6ef4f0e0e8c580') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 93ec8d03fc0fb0a3beb95e3d243629670424b8ef Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Thu, 17 Dec 2015 16:08:02 +0100 Subject: [PATCH 1959/2060] libgit2-glib: update to version 0.23.8 --- mingw-w64-libgit2-glib/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libgit2-glib/PKGBUILD b/mingw-w64-libgit2-glib/PKGBUILD index 34d88740ad..4c439c318c 100644 --- a/mingw-w64-libgit2-glib/PKGBUILD +++ b/mingw-w64-libgit2-glib/PKGBUILD @@ -3,8 +3,8 @@ _realname=libgit2-glib pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.23.6 -pkgrel=2 +pkgver=0.23.8 +pkgrel=1 arch=('any') pkgdesc="A glib wrapper library around the libgit2 git access library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-libgit2>=0.23" @@ -19,7 +19,7 @@ options=('strip' 'staticlibs') license=("LGPL") url="https://wiki.gnome.org/Projects/Libgit2-glib" source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") -sha256sums=('5c8d6b5cb81ab64b96cb0c52ef37463b6d8998a40ce77a08eda9db66fb781144') +sha256sums=('50853d1fbdabcdf67c14d3295a973c1c6f625b7d298459e494135a31984f140b') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From d8a666e4f3ea85b1d5af3c245da8b77359fdeef6 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Thu, 17 Dec 2015 16:09:33 +0100 Subject: [PATCH 1960/2060] libgit2: update to version 0.23.4 --- mingw-w64-libgit2/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libgit2/PKGBUILD b/mingw-w64-libgit2/PKGBUILD index fffabc68d8..5de3609972 100644 --- a/mingw-w64-libgit2/PKGBUILD +++ b/mingw-w64-libgit2/PKGBUILD @@ -2,7 +2,7 @@ _realname=libgit2 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=0.23.0 +pkgver=0.23.4 pkgrel=1 pkgdesc='A linkable library for Git (mingw-w64)' arch=('any') @@ -17,7 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-curl" makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") source=(${_realname}-${pkgver}.tar.gz::"https://github.com/libgit2/libgit2/archive/v${pkgver}.tar.gz" 001-fix-pkg-config.patch) -md5sums=('683d1164e361e2a0a8d52652840e2340' +md5sums=('b7db3ab71dfa19fe1dc7fef76d6af216' '341f5b8f48d1a489b157dc5300628960') prepare() { From 77877c6d2401f4d3b8149cdb2ce0d5d6e79b699d Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Thu, 17 Dec 2015 16:12:00 +0100 Subject: [PATCH 1961/2060] gtk3: update to version 3.18.6 --- .../0056-missing-file-toarray-pl.patch | 24 ------------------- mingw-w64-gtk3/PKGBUILD | 10 +++----- 2 files changed, 3 insertions(+), 31 deletions(-) delete mode 100644 mingw-w64-gtk3/0056-missing-file-toarray-pl.patch diff --git a/mingw-w64-gtk3/0056-missing-file-toarray-pl.patch b/mingw-w64-gtk3/0056-missing-file-toarray-pl.patch deleted file mode 100644 index 6190d57d03..0000000000 --- a/mingw-w64-gtk3/0056-missing-file-toarray-pl.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- gtk+-3.16.3/gdk/broadway/toarray.pl.orig 2015-05-22 10:42:30.757696900 +0200 -+++ gtk+-3.16.3/gdk/broadway/toarray.pl 2015-05-22 10:41:22.504687500 +0200 -@@ -0,0 +1,21 @@ -+#!/usr/bin/perl -w -+ -+my $ARRAYNAME = $ARGV[0]; -+my $first = 0; -+print "static const char $ARRAYNAME\[\] = {"; -+ -+for ($i = 1; $i <= $#ARGV; $i = $i + 1) { -+ my $FILENAME = $ARGV[$i]; -+ open FILE, $FILENAME or die "Cannot open $FILENAME"; -+ while (my $line = ) { -+ foreach my $c (split //, $line) { -+ if ($first == 1) { -+ printf (",\n"); -+ } -+ printf ("0x%02x", ord ($c)); -+ $first = 1; -+ } -+ } -+} -+ -+print "};\n"; diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index c437312ae9..dfecce7c4a 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtk3 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.18.3 +pkgver=3.18.6 pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') @@ -31,17 +31,13 @@ options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" 0013-fix-mingw-w64-fstat-call.mingw.patch 0056-missing-file-toarray-pl.patch) -md5sums=('e172049e8c40ad03c4ac864b9a2e9bf4' - '21789d52c1debcab59f8b6a99232de68' - 'f25cb2486d761b60e04036947552bf82') +md5sums=('e1c41ad4a6012d703a80f7423acf186e' + '21789d52c1debcab59f8b6a99232de68') prepare() { cd "${srcdir}/gtk+-${pkgver}" patch -Np1 -i "${srcdir}"/0013-fix-mingw-w64-fstat-call.mingw.patch - rm -f gdk/broadway/toarray.pl - patch -p1 -i ${srcdir}/0056-missing-file-toarray-pl.patch - autoreconf -i } From de9380cd59ab21caf50f74044d5a4ff549408428 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Thu, 17 Dec 2015 16:17:06 +0100 Subject: [PATCH 1962/2060] glib-networking: update to version 2.46.1 --- mingw-w64-glib-networking/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-glib-networking/PKGBUILD b/mingw-w64-glib-networking/PKGBUILD index 7275f4374e..1e7e91b84f 100644 --- a/mingw-w64-glib-networking/PKGBUILD +++ b/mingw-w64-glib-networking/PKGBUILD @@ -3,7 +3,7 @@ _realname=glib-networking pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.46.0 +pkgver=2.46.1 pkgrel=1 pkgdesc="Network-related GIO modules for glib (mingw-w64)" arch=(any) @@ -25,7 +25,7 @@ source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_rea 0001-dont-overwrite-prefix-remain-relative.mingw.patch 0001-hack-path.patch 0002-relative-system-ca-file.mingw.patch) -md5sums=('d418e2ba2acffacf90a2b0259c7993e1' +md5sums=('c000e0b579f5d8fd48efebc7ac4d95dc' '6c55845f6c66fc8401915d1561b6872d' '5b72f575aee2cd8d7b30f580ebca4971' 'b96895469c4dc36e172056763aa0d014') From c17dfda61f30fdbdb2021f0c79d48128e6125201 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Thu, 17 Dec 2015 16:21:32 +0100 Subject: [PATCH 1963/2060] libcroco: update to version 0.6.11 --- mingw-w64-libcroco/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libcroco/PKGBUILD b/mingw-w64-libcroco/PKGBUILD index e4a5ebe6bb..f1b1b61c1c 100644 --- a/mingw-w64-libcroco/PKGBUILD +++ b/mingw-w64-libcroco/PKGBUILD @@ -2,8 +2,8 @@ _realname=libcroco pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.6.8 -pkgrel=3 +pkgver=0.6.11 +pkgrel=1 pkgdesc="A CSS parsing library (mingw-w64)" arch=('any') url="http://www.gnome.org" @@ -12,7 +12,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") depends=("${MINGW_PACKAGE_PREFIX}-glib2" "${MINGW_PACKAGE_PREFIX}-libxml2") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/libcroco/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") -sha256sums=('ea6e1b858c55219cefd7109756bff5bc1a774ba7a55f7d3ccd734d6b871b8570') +sha256sums=('132b528a948586b0dfa05d7e9e059901bca5a3be675b6071a90a90b81ae5a056') build() { mkdir -p "${srcdir}/build-${MINGW_CHOST}" From 6b41bff4b7fbad1defae3a5b28a96f4b6ef52a50 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Thu, 17 Dec 2015 16:22:25 +0100 Subject: [PATCH 1964/2060] librsvg: update to version 2.40.12 --- mingw-w64-librsvg/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-librsvg/PKGBUILD b/mingw-w64-librsvg/PKGBUILD index 66e1ba4a80..22ebd520f0 100644 --- a/mingw-w64-librsvg/PKGBUILD +++ b/mingw-w64-librsvg/PKGBUILD @@ -3,7 +3,7 @@ _realname=librsvg pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.40.11 +pkgver=2.40.12 pkgrel=1 pkgdesc="A SVG viewing library (mingw-w64)" arch=('any') @@ -22,7 +22,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-gtk3: for rsvg-view-3") options=('staticlibs' 'strip') source=("http://ftp.gnome.org/pub/gnome/sources/librsvg/${pkgver%.*}/${_realname}-${pkgver}.tar.xz" "0005-hack-unixy-paths.patch") -sha256sums=('611ac0f544debd0c9bf1ef5509c990d218e83dd1d8c83297075c4b29796a2e02' +sha256sums=('ffe40c4378bf3899f4d679a475726bab03a127a5bdccddec86404cc329ffb550' 'b23b094c0cb65fcbbbb952350448de6f3430b30f273e05acdbf7a56d634212dc') prepare() { From 071a7a6d733137200cd03765dedbf059e41e479b Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Thu, 17 Dec 2015 17:43:24 +0200 Subject: [PATCH 1965/2060] libbotan: Updated to 1.11.25 --- mingw-w64-libbotan/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libbotan/PKGBUILD b/mingw-w64-libbotan/PKGBUILD index 862761b2af..17841f6b50 100644 --- a/mingw-w64-libbotan/PKGBUILD +++ b/mingw-w64-libbotan/PKGBUILD @@ -3,7 +3,7 @@ _realname=libbotan pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.11.24 +pkgver=1.11.25 pkgrel=1 arch=('any') url='http://botan.randombit.net/' @@ -24,7 +24,7 @@ source=(http://botan.randombit.net/releases/Botan-${pkgver}.tgz{,.asc} 'boost-link.patch' 'winsock-link.patch' 'disable-mkgmtime.patch') -sha1sums=('a37938269a1c796394dab75ef86cd768c853e369' +sha1sums=('4eddd22c5a8d0846dc7c84c991d0ae0334d52562' 'SKIP' '407e623b46ef1b288b90195d9acadb34611b088b' '867667533df37c6b88b267c0e95b979d8115dea7' From 1a45dc8a0b5be3f9e94f19e0c9d9de7d0d8f6dda Mon Sep 17 00:00:00 2001 From: David Grayson Date: Fri, 18 Dec 2015 19:34:43 -0800 Subject: [PATCH 1966/2060] Added libftdi and avrdude. --- mingw-w64-avrdude/01-libtool.patch | 20 ++++ mingw-w64-avrdude/02-ddk-headers.patch | 63 +++++++++++++ mingw-w64-avrdude/03-handle-printing.patch | 24 +++++ mingw-w64-avrdude/04-no-giveio.patch | 15 +++ mingw-w64-avrdude/PKGBUILD | 102 +++++++++++++++++++++ mingw-w64-libftdi/PKGBUILD | 63 +++++++++++++ 6 files changed, 287 insertions(+) create mode 100644 mingw-w64-avrdude/01-libtool.patch create mode 100644 mingw-w64-avrdude/02-ddk-headers.patch create mode 100644 mingw-w64-avrdude/03-handle-printing.patch create mode 100644 mingw-w64-avrdude/04-no-giveio.patch create mode 100644 mingw-w64-avrdude/PKGBUILD create mode 100644 mingw-w64-libftdi/PKGBUILD diff --git a/mingw-w64-avrdude/01-libtool.patch b/mingw-w64-avrdude/01-libtool.patch new file mode 100644 index 0000000000..8ae650a570 --- /dev/null +++ b/mingw-w64-avrdude/01-libtool.patch @@ -0,0 +1,20 @@ +--- avrdude-6.2-orig/configure.ac ++++ avrdude-6.2/configure.ac +@@ -34,7 +34,7 @@ + AC_CONFIG_HEADERS(ac_cfg.h) + AC_CONFIG_MACRO_DIR([m4]) + +-LT_INIT() ++LT_INIT([win32-dll]) + + # Checks for programs. + AC_PROG_CC +--- avrdude-6.2-orig/Makefile.am ++++ avrdude-6.2/Makefile.am +@@ -178,5 +178,5 @@ + libavrdude_la_SOURCES = $(libavrdude_a_SOURCES) +-libavrdude_la_LDFLAGS = -version-info 1:0 ++libavrdude_la_LDFLAGS = -no-undefined -version-info 1:0 + + include_HEADERS = libavrdude.h + diff --git a/mingw-w64-avrdude/02-ddk-headers.patch b/mingw-w64-avrdude/02-ddk-headers.patch new file mode 100644 index 0000000000..086a47ab23 --- /dev/null +++ b/mingw-w64-avrdude/02-ddk-headers.patch @@ -0,0 +1,63 @@ +--- avrdude-6.2-orig/configure.ac ++++ avrdude-6.2/configure.ac +@@ -185,6 +185,8 @@ + AC_CHECK_HEADERS([fcntl.h sys/ioctl.h sys/time.h termios.h unistd.h]) + AC_CHECK_HEADERS([ddk/hidsdi.h],,,[#include + #include ]) ++AC_CHECK_HEADERS([hidsdi.h],,,[#include ++#include ]) + + + # Checks for typedefs, structures, and compiler characteristics. +@@ -202,9 +204,12 @@ + case $target in + *-*-mingw32* | *-*-cygwin* | *-*-windows*) + LIBHID="-lhid -lsetupapi" +- if test $ac_cv_header_ddk_hidsdi_h = yes ++ if test x$ac_cv_header_ddk_hidsdi_h = xyes + then + HIDINCLUDE="#include " ++ elif test x$ac_cv_header_hidsdi_h = xyes ++ then ++ HIDINCLUDE="#include " + else + HIDINCLUDE="#include \"my_ddk_hidsdi.h\"" + fi +--- avrdude-6.2-orig/pickit2.c ++++ avrdude-6.2/pickit2.c +@@ -60,6 +60,8 @@ + #include + #if defined(HAVE_DDK_HIDSDI_H) + # include ++#elif defined(HAVE_HIDSDI_H) ++# include + #else + # include "my_ddk_hidsdi.h" + #endif +--- avrdude-6.2-orig/ser_avrdoper.c ++++ avrdude-6.2/ser_avrdoper.c +@@ -71,10 +71,13 @@ + + #if defined(HAVE_DDK_HIDSDI_H) + # include ++# include ++#elif defined (HAVE_HIDSDI_H) ++# include ++# include + #else + # include "my_ddk_hidsdi.h" + #endif +-#include + + #ifdef USB_DEBUG + #define DEBUG_PRINT(arg) printf arg +--- avrdude-6.2-orig/Makefile.am ++++ avrdude-6.2/Makefile.am +@@ -138,7 +138,6 @@ + linuxgpio.h \ + linux_ppdev.h \ + lists.c \ +- my_ddk_hidsdi.h \ + par.c \ + par.h \ + pgm.c \ diff --git a/mingw-w64-avrdude/03-handle-printing.patch b/mingw-w64-avrdude/03-handle-printing.patch new file mode 100644 index 0000000000..ac83d24ac6 --- /dev/null +++ b/mingw-w64-avrdude/03-handle-printing.patch @@ -0,0 +1,24 @@ +--- avrdude-6.2-orig/serbb_win32.c ++++ avrdude-6.2/serbb_win32.c +@@ -308,8 +308,8 @@ + progname, port); + return -1; + } +- avrdude_message(MSG_DEBUG, "%s: ser_open(): opened comm port \"%s\", handle 0x%x\n", +- progname, port, (int)hComPort); ++ avrdude_message(MSG_DEBUG, "%s: ser_open(): opened comm port \"%s\", handle 0x%p\n", ++ progname, port, hComPort); + + pgm->fd.pfd = (void *)hComPort; + +@@ -326,8 +326,8 @@ + pgm->setpin(pgm, PIN_AVR_RESET, 1); + CloseHandle (hComPort); + } +- avrdude_message(MSG_DEBUG, "%s: ser_close(): closed comm port handle 0x%x\n", +- progname, (int)hComPort); ++ avrdude_message(MSG_DEBUG, "%s: ser_close(): closed comm port handle 0x%p\n", ++ progname, hComPort); + + hComPort = INVALID_HANDLE_VALUE; + } diff --git a/mingw-w64-avrdude/04-no-giveio.patch b/mingw-w64-avrdude/04-no-giveio.patch new file mode 100644 index 0000000000..74ca4fa77c --- /dev/null +++ b/mingw-w64-avrdude/04-no-giveio.patch @@ -0,0 +1,15 @@ +--- avrdude-6.2-orig/windows/Makefile.am ++++ avrdude-6.2/windows/Makefile.am +@@ -24,11 +24,7 @@ + # This Makefile will only be used on windows based systems. + # + +-local_install_list = \ +- giveio.sys \ +- install_giveio.bat \ +- remove_giveio.bat \ +- status_giveio.bat ++local_install_list = + + EXTRA_DIST = \ + giveio.c \ diff --git a/mingw-w64-avrdude/PKGBUILD b/mingw-w64-avrdude/PKGBUILD new file mode 100644 index 0000000000..eff214bd6d --- /dev/null +++ b/mingw-w64-avrdude/PKGBUILD @@ -0,0 +1,102 @@ +# Maintainer: David Grayson + +_realname=avrdude +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=6.2 +pkgrel=1 +pkgdesc='Software for programming Atmel AVR Microcontrollers (mingw-w64)' +arch=('any') +url="http://www.nongnu.org/avrdude/" +license=('GPL') +makedepends=( + "${MINGW_PACKAGE_PREFIX}-gcc" + "grep" + "bison" + "flex" +) +depends=( + "${MINGW_PACKAGE_PREFIX}-libftdi" + "${MINGW_PACKAGE_PREFIX}-libusb" + "${MINGW_PACKAGE_PREFIX}-libelf" +) +options=('staticlibs' 'strip') +source=( + "http://download.savannah.gnu.org/releases/avrdude/avrdude-${pkgver}.tar.gz" + '01-libtool.patch' + '02-ddk-headers.patch' + '03-handle-printing.patch' + '04-no-giveio.patch' +) + +sha256sums=('e65f833493b7d63a4436c7056694a0f04ae5b437b72cc084e32c58bc543b0f91' + '3a5c041f97e8fcd6706b08ae24fe21337fd1df13319479e2d49c3f82529ba054' + '7b52523834e492281347bc92a064ca924dc5d09e2d653e7076c5a966d03f7768' + '159fb7d3253931c00a019c43f343f533d4e67c3a9859b7bcdb51878b8dc26451' + 'c52f01656cfece50da9513170549fa5f0c8240544e10e77f67eea7a3ad8d1b50') + +prepare() +{ + cd "${srcdir}/${_realname}-${pkgver}" + + # Delete binaries. + rm windows/giveio.sys + + # Let's use mingw-w64's hidsdi.h instead of AVRDUDE's. + rm my_ddk_hidsdi.h + + # Fixes a warning from libtool. However, a DLL still does not generated. + patch -p1 -i ../01-libtool.patch + + # Look for headers like hidsdi.h and hidpi.h at the top level, + # (do not assume they are inside the "ddk" directory). + patch -p1 -i ../02-ddk-headers.patch + + # Proper printing of 64-bit HANDLE pointers. The upstream code results + # in a compiler warning on x86_64 and wouldn't print the whole pointer. + patch -p1 -i ../03-handle-printing.patch + + # Don't install giveio.sys or the batch scripts associated with it since it is + # a precompiled binary and unlikely to work on modern versions of Windows + # anyway due to driver signing requirements. + patch -p1 -i ../04-no-giveio.patch + + ./bootstrap +} + +build() { + rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + "../${_realname}-${pkgver}/configure" \ + --prefix="${MINGW_PREFIX}" \ + --build="${MINGW_CHOST}" \ + --host="${MINGW_CHOST}" + + make +} + +check() { + cd "${srcdir}/build-${MINGW_CHOST}" + make check +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + + cd "${pkgdir}${MINGW_PREFIX}" + + # Remove loaddrv.exe because we aren't distributing any drivers one could use + # with it and driver signing requirements in modern versions of Windows mean + # it is unlikely to work (it only claims to support Windows NT/2000/XP). + # Also, with a generic name like loaddrv, it could cause a name collision. + rm bin/loaddrv.exe + + # As we can see from confwin.c, AVRDUDE searches for avrdude.conf + # using the PATH; it does not find it in /etc. + mv etc/avrdude.conf bin + + cd "${srcdir}/${_realname}-${pkgver}" + install -D COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +} diff --git a/mingw-w64-libftdi/PKGBUILD b/mingw-w64-libftdi/PKGBUILD new file mode 100644 index 0000000000..a26b02c825 --- /dev/null +++ b/mingw-w64-libftdi/PKGBUILD @@ -0,0 +1,63 @@ +# Maintainer: David Grayson + +_realname=libftdi +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.2 +pkgrel=1 +pkgdesc='Library to talk to FTDI chips, with Python 2 bindings (mingw-w64)' +arch=('any') +url="https://www.intra2net.com/en/developer/libftdi/" +license=('LGPL', 'GPL') +makedepends=( + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-boost" + "${MINGW_PACKAGE_PREFIX}-swig" + "${MINGW_PACKAGE_PREFIX}-python2" +) +depends=( + "${MINGW_PACKAGE_PREFIX}-libusb" + "${MINGW_PACKAGE_PREFIX}-confuse" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-libiconv" +) +options=('staticlibs' 'strip') +source=( + "https://www.intra2net.com/en/developer/libftdi/download/libftdi1-${pkgver}.tar.bz2" +) + +sha256sums=('a6ea795c829219015eb372b03008351cee3fb39f684bff3bf8a4620b558488d6') + +build() { + rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DEXAMPLES=Off \ + -DPYTHON_BINDINGS=On \ + "../${_realname}1-${pkgver}/" + + make +} + +check() { + cd "${srcdir}/build-${MINGW_CHOST}" + PATH=$PATH:"${srcdir}/build-${MINGW_CHOST}/src" make check +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + + cd "${srcdir}/${_realname}1-${pkgver}" + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" + cp COPYING* "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" + + sed -i "s;$(cygpath -m /);/;" \ + "${pkgdir}${MINGW_PREFIX}/lib/cmake/${_realname}1"/*.cmake +} From a6baacdf85807fd9aec723490830d3075d016b71 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 20 Dec 2015 17:29:21 +0000 Subject: [PATCH 1967/2060] glib2: Fix pygtk/g_application_run/g_win32_get_command_line When called from pygtk, the first argument to g_application_run has been dropped from argv/argc (this is usually the name of the python interpreter). However, in order to get argv as utf-8 on G_OS_WIN32 g_win32_get_command_line () is called, so this dropping is undone. To work around this, count the number of incoming arguments and drop the same number of leading arguments as have newly re-appeared after the call to g_win32_get_command_line (). Fixes bug in meld3 where it would launch a 3-way compare with the first pane containing meld3.py's source, and also http://sourceforge.net/p/msys2/discussion/general/thread/e905716d/ Upstreaming at: https://bugzilla.gnome.org/show_bug.cgi?id=734095 --- ...-fix-argc-argv-mismatch-changing-ABI.patch | 81 +++++++++++++++++++ ...c-argv-mismatch-without-changing-ABI.patch | 25 ++++++ mingw-w64-glib2/PKGBUILD | 22 ++++- 3 files changed, 124 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch create mode 100644 mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch diff --git a/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch b/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch new file mode 100644 index 0000000000..035f84c760 --- /dev/null +++ b/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch @@ -0,0 +1,81 @@ +--- glib-2.46.2/glib/gwin32.c.orig 2015-11-05 20:49:18.000000000 +0000 ++++ glib-2.46.2/glib/gwin32.c 2015-12-20 14:09:52.853497700 +0000 +@@ -724,6 +724,7 @@ + + /** + * g_win32_get_command_line: ++ * @trailing_argc: Num of trailing args to return (neg. num for all args) + * + * Gets the command line arguments, on Windows, in the GLib filename + * encoding (ie: UTF-8). +@@ -755,23 +756,28 @@ + * Unlike argv, the returned value is a normal strv and can (and should) + * be freed with g_strfreev() when no longer needed. + * +- * Returns: (transfer full): the commandline arguments in the GLib +- * filename encoding (ie: UTF-8) ++ * Returns: (transfer full): trailing argc or all commandline arguments in ++ * the GLib filename encoding (ie: UTF-8) + * + * Since: 2.40 + **/ + gchar ** +-g_win32_get_command_line (void) ++g_win32_get_command_line (int trailing_argc) + { + gchar **result; + LPWSTR *args; +- gint i, n; ++ gint i, n, start_n; + + args = CommandLineToArgvW (GetCommandLineW(), &n); ++ if (trailing_argc > n) ++ trailing_argc = n; ++ if (trailing_argc < 0) ++ trailing_argc = n; ++ start_n = n - trailing_argc; + +- result = g_new (gchar *, n + 1); +- for (i = 0; i < n; i++) +- result[i] = g_utf16_to_utf8 (args[i], -1, NULL, NULL, NULL); ++ result = g_new (gchar *, trailing_argc + 1); ++ for (i = 0; i < trailing_argc; i++) ++ result[i] = g_utf16_to_utf8 (args[start_n + i], -1, NULL, NULL, NULL); + result[i] = NULL; + + LocalFree (args); +--- glib-2.46.2/glib/gwin32.h.orig 2015-12-20 13:09:14.309961300 +0000 ++++ glib-2.46.2/glib/gwin32.h 2015-12-20 13:45:24.830082400 +0000 +@@ -105,7 +105,7 @@ + gchar* g_win32_locale_filename_from_utf8 (const gchar *utf8filename); + + GLIB_AVAILABLE_IN_2_40 +-gchar ** g_win32_get_command_line (void); ++gchar ** g_win32_get_command_line (int trailing_argc); + + /* As of GLib 2.14 we only support NT-based Windows */ + #define G_WIN32_IS_NT_BASED() TRUE +--- glib-2.46.2/gio/gapplication.c.orig 2015-11-06 18:12:04.000000000 +0000 ++++ glib-2.46.2/gio/gapplication.c 2015-12-20 13:50:45.831844400 +0000 +@@ -2173,8 +2173,10 @@ + * the @argc, @argv parameters from main() to this function, it is possible + * to pass %NULL if @argv is not available or commandline handling is not + * required. Note that on Windows, @argc and @argv are ignored, and +- * g_win32_get_command_line() is called internally (for proper support +- * of Unicode commandline arguments). ++ * g_win32_get_command_line(argc) is called internally (for proper support ++ * of Unicode commandline arguments). Only the final argc arguments are ++ * returned for cases where, e.g. pygtk has removed the first argument ++ * (the name of the python executable). + * + * #GApplication will attempt to parse the commandline arguments. You + * can add commandline flags to the list of recognised options by way of +@@ -2256,7 +2258,7 @@ + g_return_val_if_fail (!application->priv->must_quit_now, 1); + + #ifdef G_OS_WIN32 +- arguments = g_win32_get_command_line (); ++ arguments = g_win32_get_command_line (argc); + #else + { + gint i; diff --git a/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch b/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch new file mode 100644 index 0000000000..a1f7e5ef35 --- /dev/null +++ b/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch @@ -0,0 +1,25 @@ +--- glib-2.46.2/gio/gapplication.c.orig 2015-12-20 14:58:37.485878800 +0000 ++++ glib-2.46.2/gio/gapplication.c 2015-12-20 14:58:53.018351200 +0000 +@@ -2256,7 +2256,21 @@ + g_return_val_if_fail (!application->priv->must_quit_now, 1); + + #ifdef G_OS_WIN32 +- arguments = g_win32_get_command_line (); ++ { ++ gint new_argc = -1; ++ arguments = g_win32_get_command_line (); ++ /** ++ * If may be the case that something (e.g. Python) dropped arguments ++ * along the way, e.g. C:/msys64/mingw64/bin/python2.exe and not ++ * respecting that will cause havok. This fix assumes dropped arguments ++ * were all leading ones and attempts to drop the same. ++ **/ ++ while (arguments[new_argc++]); ++ if (new_argc > argc) ++ memmove (&arguments[0], ++ &arguments[new_argc - argc], ++ sizeof(arguments[0]) * (argc + 1)); ++ } + #else + { + gint i; diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 408824a9a2..d0073ac1b5 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -1,16 +1,18 @@ # Maintainer: Alexey Pavlov +# Contributor: Ignacio Casal Quinteiro # Contributor: Renato Silva +# Contributor: Ray Donnelly _realname=glib2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.46.2 -pkgrel=1 +pkgrel=2 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" license=(LGPL2) -options=('!debug' 'strip' 'staticlibs') +#options=('debug' '!strip') install=glib2-${CARCH}.install depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" @@ -27,7 +29,10 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-${pkgver} 0024-return-actually-written-data-in-printf.all.patch 0027-no_sys_if_nametoindex.patch 0028-inode_directory.patch - 0029-grand.all.patch) + 0029-grand.all.patch + 0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch + 0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch) + md5sums=('7f815d6e46df68e070cb421ed7f1139e' '10cf1e482b6a1367d79648466f2cf23c' '27e8188e764eed3b3d565e5fc5746654' @@ -38,7 +43,9 @@ md5sums=('7f815d6e46df68e070cb421ed7f1139e' '3f896edd80eaa9c4e98abca0df6c83bd' '4aa52b552a6a25b49a1b6f928b3cdafd' '27ad96697441aabc4a01f881ad9999ea' - 'b64390c406d32578e979103eed89232b') + 'b64390c406d32578e979103eed89232b' + '837c12822929b46f020c1a9ccfad03b9' + 'c2a2e97c5a56656cfdf2fd796c397963') prepare() { cd "${srcdir}/glib-${pkgver}" @@ -54,6 +61,13 @@ prepare() { patch -Np1 -i "${srcdir}/0028-inode_directory.patch" patch -Np1 -i "${srcdir}/0029-grand.all.patch" + # Fixes http://sourceforge.net/p/msys2/discussion/general/thread/e905716d/ + # .. and meld3 (though it seems there's more wrong with meld3) + # I'm not sure which patch is better (probably ..without-changing-ABI.patch) + # .. discussion at https://bugzilla.gnome.org/show_bug.cgi?id=734095 + # patch -Np1 -i "${srcdir}/0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch" + patch -Np1 -i "${srcdir}/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch" + NOCONFIGURE=1 ./autogen.sh } From 75d95d0c2b8935cea8ad9b0aa39db2456bd080bf Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 20 Dec 2015 20:36:20 +0000 Subject: [PATCH 1968/2060] glib2: Fix my dodgy logic --- ...rgc-argv-mismatch-without-changing-ABI.patch | 17 +++++++++++------ mingw-w64-glib2/PKGBUILD | 4 ++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch b/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch index a1f7e5ef35..563fc1ccb3 100644 --- a/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch +++ b/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch @@ -1,12 +1,12 @@ --- glib-2.46.2/gio/gapplication.c.orig 2015-12-20 14:58:37.485878800 +0000 +++ glib-2.46.2/gio/gapplication.c 2015-12-20 14:58:53.018351200 +0000 -@@ -2256,7 +2256,21 @@ +@@ -2256,7 +2256,26 @@ g_return_val_if_fail (!application->priv->must_quit_now, 1); #ifdef G_OS_WIN32 - arguments = g_win32_get_command_line (); + { -+ gint new_argc = -1; ++ gint new_argc = 0; + arguments = g_win32_get_command_line (); + /** + * If may be the case that something (e.g. Python) dropped arguments @@ -14,11 +14,16 @@ + * respecting that will cause havok. This fix assumes dropped arguments + * were all leading ones and attempts to drop the same. + **/ -+ while (arguments[new_argc++]); ++ while (arguments[new_argc]) ++ { ++ new_argc++; ++ } + if (new_argc > argc) -+ memmove (&arguments[0], -+ &arguments[new_argc - argc], -+ sizeof(arguments[0]) * (argc + 1)); ++ { ++ memmove (&arguments[0], ++ &arguments[new_argc - argc], ++ sizeof(arguments[0]) * (argc + 1)); ++ } + } #else { diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index d0073ac1b5..03e018d9d0 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -12,7 +12,7 @@ url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" license=(LGPL2) -#options=('debug' '!strip') +# options=('debug' '!strip') install=glib2-${CARCH}.install depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gettext" @@ -45,7 +45,7 @@ md5sums=('7f815d6e46df68e070cb421ed7f1139e' '27ad96697441aabc4a01f881ad9999ea' 'b64390c406d32578e979103eed89232b' '837c12822929b46f020c1a9ccfad03b9' - 'c2a2e97c5a56656cfdf2fd796c397963') + '969ecb5ff94e48963d39c8b6c71a66f2') prepare() { cd "${srcdir}/glib-${pkgver}" From 0687ae7c10642c47f6788dcb126787dee9118d19 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 20 Dec 2015 20:45:21 +0000 Subject: [PATCH 1969/2060] meld: Update to 3.15.1 .. and don't even try to make symlinks on Windows, because they require privileges that not everyone has and are as useful as a chocolate teapot in the general case. --- ...nGW-w64-symlinks-and-use-sh-to-spawn.patch | 32 ++++++++++--------- mingw-w64-meld3/PKGBUILD | 8 ++--- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/mingw-w64-meld3/0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch b/mingw-w64-meld3/0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch index f6db6fd551..bd55d9119b 100644 --- a/mingw-w64-meld3/0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch +++ b/mingw-w64-meld3/0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch @@ -1,6 +1,5 @@ -diff -Naur meld-3.11.4-orig/meld/build_helpers.py meld-3.11.4/meld/build_helpers.py ---- meld-3.11.4-orig/meld/build_helpers.py 2014-09-10 02:21:07.000000000 +0500 -+++ meld-3.11.4/meld/build_helpers.py 2014-09-24 13:04:24.217600000 +0500 +--- meld-3.15.1/meld/build_helpers.py.orig 2015-12-20 18:56:22.449947800 +0000 ++++ meld-3.15.1/meld/build_helpers.py 2015-12-20 18:53:32.964253800 +0000 @@ -31,6 +31,8 @@ import os.path import platform @@ -19,26 +18,29 @@ diff -Naur meld-3.11.4-orig/meld/build_helpers.py meld-3.11.4/meld/build_helpers return self.frozen_gschemas else: return self.gschemas -@@ -136,13 +138,16 @@ - msgfmt = ['msgfmt', po_file, '-o', mo_file] +@@ -140,14 +142,19 @@ self.spawn(msgfmt) for page in self.C_PAGES: -- itstool = ['itstool', '-m', mo_file, '-o', build_path, page] -+ itstool = ['sh', '-c', "itstool -m %s -o %s %s" % (mo_file, build_path, page)] + itstool = [ +- 'itstool', '-m', mo_file, '-o', build_path, page] ++ 'sh', '-c', ++ "itstool -m %s -o %s %s" % (mo_file, build_path, page)] self.spawn(itstool) for extra in self.C_EXTRA: - extra_path = os.path.join(build_path, os.path.basename(extra)) + extra_path = os.path.join( + build_path, os.path.basename(extra)) if os.path.exists(extra_path): os.unlink(extra_path) - os.symlink(os.path.relpath(extra, source_path), extra_path) -+ try: -+ os.symlink(os.path.relpath(extra, source_path), extra_path) -+ except: ++ # symlinks require special privileges on Windows :-( ++ if os.name == 'nt': + shutil.copy(extra, extra_path) ++ else: ++ os.symlink(os.path.relpath(extra, source_path), extra_path) else: distutils.dir_util.copy_tree(source_path, build_path) -@@ -244,14 +249,14 @@ +@@ -251,14 +258,14 @@ # If we're on Windows, assume we're building frozen and make a bunch # of insane assumptions. @@ -55,7 +57,7 @@ diff -Naur meld-3.11.4-orig/meld/build_helpers.py meld-3.11.4/meld/build_helpers wd = os.getcwd() os.chdir(self.po_dir) self.spawn(cmd) -@@ -265,7 +270,7 @@ +@@ -272,7 +279,7 @@ mo_file = os.path.join(mo_dir, "%s.mo" % self.domain) if not os.path.exists(mo_dir): os.makedirs(mo_dir) @@ -64,7 +66,7 @@ diff -Naur meld-3.11.4-orig/meld/build_helpers.py meld-3.11.4/meld/build_helpers po_mtime = os.path.getmtime(po_file) mo_mtime = os.path.exists(mo_file) and os.path.getmtime(mo_file) or 0 if po_mtime > max_po_mtime: -@@ -302,8 +307,8 @@ +@@ -309,8 +316,8 @@ if file_merged.endswith(".in"): file_merged = file_merged[:-3] file_merged = os.path.join(build_target, file_merged) @@ -75,7 +77,7 @@ diff -Naur meld-3.11.4-orig/meld/build_helpers.py meld-3.11.4/meld/build_helpers mtime_merged = (os.path.exists(file_merged) and os.path.getmtime(file_merged) or 0) mtime_file = os.path.getmtime(file) -@@ -355,7 +355,7 @@ +@@ -354,7 +361,7 @@ elif line.startswith('# END'): end = i diff --git a/mingw-w64-meld3/PKGBUILD b/mingw-w64-meld3/PKGBUILD index 0867250fe5..6c93486c4e 100644 --- a/mingw-w64-meld3/PKGBUILD +++ b/mingw-w64-meld3/PKGBUILD @@ -4,8 +4,8 @@ _realname=meld pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" -pkgver=3.15.0 -pkgrel=2 +pkgver=3.15.1 +pkgrel=1 pkgdesc="Visual diff and merge tool (mingw-w64)" arch=('any') url="http://meldmerge.org/" @@ -26,8 +26,8 @@ install=meld-${CARCH}.install source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz '0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch' "0002-build-exe.patch") -md5sums=('f243933e371b589b3cbd8224a8966317' - '6ddb432315e37fed974491a27fd15736' +md5sums=('238c3eba59290d5128675c88c1849e05' + '2311d79477e2828eb3b228d631f30e6b' 'c4770167f70e061c1f94d8c3fa3e7150') prepare() { From 908a1d8e8c0c10816f4bdd7b2ab908de05783fa5 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 21 Dec 2015 01:17:09 +0000 Subject: [PATCH 1970/2060] clang-svn: Updated to not use mv --- mingw-w64-clang-svn/PKGBUILD | 277 ++++++++++++++++++----------------- 1 file changed, 141 insertions(+), 136 deletions(-) diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index c90ebb5dc5..4e4e1b2774 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -15,12 +15,12 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-analyzer-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-tools-extra-svn" "${MINGW_PACKAGE_PREFIX}-compiler-rt-svn" - "${MINGW_PACKAGE_PREFIX}-libc++abi-svn" - "${MINGW_PACKAGE_PREFIX}-libc++-svn" + #"${MINGW_PACKAGE_PREFIX}-libc++abi-svn" + #"${MINGW_PACKAGE_PREFIX}-libc++-svn" "${MINGW_PACKAGE_PREFIX}-lld-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn" ) -pkgver=58129.eda30f1 +pkgver=60373.b4292ac pkgrel=1 pkgdesc="C language family frontend for LLVM (mingw-w64)" arch=('any') @@ -29,9 +29,13 @@ license=("custom:University of Illinois/NCSA Open Source License") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python3-sphinx" - "python2" "tar" "subversion" "git") + "python2" + "tar" + "subversion" + "git" + "cmake") depends=("${MINGW_PACKAGE_PREFIX}-gcc") -options=('staticlibs' 'strip') +options=('staticlibs') # 'debug' '!strip') source=("llvm"::"git+http://llvm.org/git/llvm.git" "lld"::"git+http://llvm.org/git/lld.git" "clang"::"git+http://llvm.org/git/clang.git" @@ -41,7 +45,6 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" "libcxxabi"::"git+http://llvm.org/git/libcxxabi.git" "libcxx"::"git+http://llvm.org/git/libcxx.git" 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch - 0011-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch 0041-libcxx-add-support-for-mingw-w64.patch) # Some patch notes :) @@ -60,7 +63,6 @@ md5sums=('SKIP' 'SKIP' 'SKIP' 'a384d4607d9dcdfdcac6912ac413ec58' - 'e6ce086a33256043af99a5690b251be8' '6b0b769d999dc884e59d388c5a7f3866') pkgver_internal() { @@ -89,9 +91,6 @@ prepare() { sed -i '/@LLVM_CONFIG_CMAKE_DIR@/s:$(PROJ_cmake):$(PROJ_prefix)/share/llvm/cmake:' \ cmake/modules/Makefile - cd "${srcdir}"/clang - git am "${srcdir}"/0011-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch - #cd "${srcdir}"/compiler-rt cd "${srcdir}"/lld @@ -99,32 +98,50 @@ prepare() { cd "${srcdir}"/libcxx git am "${srcdir}"/0041-libcxx-add-support-for-mingw-w64.patch + + cd "${srcdir}"/clang - cd "${srcdir}" - mv lld llvm/tools/lld - mv clang llvm/tools/clang - mv clang-tools-extra llvm/tools/clang/tools/extra - mv compiler-rt llvm/projects/compiler-rt - mv libcxxabi llvm/projects/libcxxabi - mv libcxx llvm/projects/libcxx -# mv testsuite llvm/projects/test-suite + cd "${srcdir}"/llvm + # At the present, clang must reside inside the LLVM source code tree to build + # See http://llvm.org/bugs/show_bug.cgi?id=4840 + mv "$srcdir/clang" tools/clang + mv "$srcdir/clang-tools-extra" tools/clang/tools/extra + mv "$srcdir/lld" tools/lld +# mv "$srcdir/lldb" tools/lldb + mv "$srcdir/compiler-rt" projects/compiler-rt + mv "$srcdir/libcxxabi" projects/libcxxabi + mv "$srcdir/libcxx" projects/libcxx +# mv "$srcdir/testsuite" projects/test-suite + mkdir build-${CARCH} } build() { - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + cd "$srcdir" + + [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} + mkdir build-${CARCH} && cd build-${CARCH} + + local -a extra_config + + if check_option "debug" "y"; then + extra_config+=(-DCMAKE_BUILD_TYPE=Debug) + else + extra_config+=(-DCMAKE_BUILD_TYPE=Release) + fi # Include location of libffi headers in CPPFLAGS - #CPPFLAGS+=" $(pkg-config --cflags libffi)" FFI_INCLUDE_DIR="$(pkg-config --cflags libffi)" FFI_INCLUDE_DIR=$(echo $FFI_INCLUDE_DIR | sed 's|-I||g') # "Ninja" cant install each component seperately # https://github.com/martine/ninja/issues/932 + PATH=${MINGW_PREFIX}/bin:/usr/bin \ MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ + -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib \ -DCMAKE_MAKE_PROGRAM="/usr/bin/make.exe" \ -DCMAKE_C_COMPILER="${MINGW_PREFIX}/bin/gcc.exe" \ -DCMAKE_CXX_COMPILER="${MINGW_PREFIX}/bin/g++.exe" \ @@ -132,19 +149,25 @@ build() { -DCMAKE_C_FLAGS="${CFLAGS}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS} ${CPPFLAGS}" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE=Release \ -DLLVM_TARGETS_TO_BUILD="ARM;CppBackend;X86" \ -DLLVM_ENABLE_ASSERTIONS=OFF \ - -DLLVM_ENABLE_THREADS=0 \ + -DLLVM_ENABLE_THREADS=1 \ -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \ -DLLVM_ENABLE_FFI=ON \ -DLLVM_ENABLE_SPHINX=ON \ -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE -D_LIBCPP_HAS_NO_CONSTEXPR" \ -DLIBCXX_ENABLE_SHARED=OFF \ -DLIBCXXABI_ENABLE_SHARED=OFF \ + "${extra_config[@]}" \ + --debug-output --trace \ ../llvm make + + # Disable automatic installation of components that go into subpackages + sed -i '/\(clang\|lld\|lldb\)\/cmake_install.cmake/d' tools/cmake_install.cmake + sed -i '/extra\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake + sed -i '/compiler-rt\/cmake_install.cmake/d' projects/cmake_install.cmake } #check() { @@ -153,138 +176,110 @@ build() { # make check || true #} -package_clang(){ - pkgdesc="C language family frontend for LLVM (mingw-w64)" - depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") - provides=("${MINGW_PACKAGE_PREFIX}-clang") - conflicts=("${MINGW_PACKAGE_PREFIX}-clang") - pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang) +package_llvm-svn() { + pkgdesc="Low Level Virtual Machine (mingw-w64)" + #depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "compiler-rt" + provides=("${MINGW_PACKAGE_PREFIX}-llvm") + conflicts=("${MINGW_PACKAGE_PREFIX}-llvm") - # Move .. - cd "${srcdir}" - mv llvm/tools/clang/tools/extra clang-tools-extra - mv build-${CARCH}/tools/clang/tools/extra clang-tools-extra-${CARCH} + pkgver=$(pkgver_internal "${srcdir}"/llvm) - cd build-${CARCH}/tools/clang - make -j1 DESTDIR="$pkgdir" rebuild_cache install + cd "${srcdir}"/llvm - # .. Unmove - cd "${srcdir}" - mv clang-tools-extra llvm/tools/clang/tools/extra - mv clang-tools-extra-${CARCH} build-${CARCH}/tools/clang/tools/extra + make -C ../build-${CARCH} DESTDIR="$pkgdir" install + + install -Dm644 LICENSE.TXT "$pkgdir${MINGW_PREFIX}/share/licenses/llvm/LICENSE" + + # Install CMake stuff + install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} + install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/modules/ + install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/platforms/ } -package_clang-tools-extra(){ - pkgdesc="Extra tools built using Clang's tooling APIs (mingw-w64)" - url="http://clang.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-clang-svn") - provides=("${MINGW_PACKAGE_PREFIX}-clang-tools-extra") - conflicts=("${MINGW_PACKAGE_PREFIX}-clang-tools-extra") - pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang/tools/extra) - - cd "${srcdir}"/build-${CARCH}/tools/clang/tools/extra - make -j1 DESTDIR="$pkgdir" rebuild_cache install -} - -package_compiler-rt(){ + package_compiler-rt-svn() { pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)" url="http://compiler-rt.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") provides=("${MINGW_PACKAGE_PREFIX}-compiler-rt") + conflicts=("${MINGW_PACKAGE_PREFIX}-compiler-rt") pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/compiler-rt) - cd "${srcdir}"/build-${CARCH}/projects/compiler-rt - make -j1 DESTDIR="$pkgdir" rebuild_cache install -} + cd "$srcdir/llvm" + make -C ../build-${CARCH}/projects/compiler-rt DESTDIR="$pkgdir" install + } -package_libcxxabi(){ +package_libcxxabi() { pkgdesc="C++ Standard Library Support (mingw-w64)" + url="http://libcxxabi.llvm.org/" provides=("${MINGW_PACKAGE_PREFIX}-libc++abi") conflicts=("${MINGW_PACKAGE_PREFIX}-libc++abi") pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxxabi) - cd "${srcdir}"/build-${CARCH}/projects/libcxxabi - make -j1 DESTDIR="$pkgdir" rebuild_cache install + cd "$srcdir/llvm" + make -C ../build-${CARCH}/projects/libcxxabi -j1 DESTDIR="$pkgdir" install } -package_libcxx(){ +package_libcxx() { pkgdesc="C++ Standard Library (mingw-w64)" + url="http://libcxx.llvm.org/" provides=("${MINGW_PACKAGE_PREFIX}-libc++") conflicts=("${MINGW_PACKAGE_PREFIX}-libc++") pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxx) - cd "${srcdir}"/build-${CARCH}/projects/libcxx - make -j1 DESTDIR="$pkgdir" rebuild_cache install + cd "$srcdir/llvm" + make -C ../build-${CARCH}/projects/libcxx -j1 DESTDIR="$pkgdir" install } -package_lld(){ +package_lldb-svn() { + pkgdesc="Next generation, high-performance debugger (mingw-w64)" + url="http://lldb.llvm.org/" + depends=('libedit' 'libxml2' 'python2') + + cd "$srcdir/llvm-$pkgver.src" + + make -C ../build-${CARCH}/tools/lldb DESTDIR="$pkgdir" install + + # Compile Python scripts + python2 -m compileall "$pkgdir${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" + python2 -O -m compileall "$pkgdir${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" + + install -Dm644 tools/lldb/LICENSE.TXT "$pkgdir${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE" +} + + +package_lld-svn() { pkgdesc="Linker tools for LLVM (mingw-w64)" + url="http://lld.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") provides=("${MINGW_PACKAGE_PREFIX}-lld") conflicts=("${MINGW_PACKAGE_PREFIX}-lld") pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/lld) - cd "${srcdir}"/build-${CARCH}/tools/lld - make -j1 DESTDIR="$pkgdir" rebuild_cache install + cd "${srcdir}/llvm" + make -C ../build-${CARCH}/tools/lld -j1 DESTDIR="$pkgdir" install } -package_llvm(){ - pkgdesc="Low Level Virtual Machine (mingw-w64)" - #depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "${MINGW_PACKAGE_PREFIX}-compiler-rt" - provides=("${MINGW_PACKAGE_PREFIX}-llvm") - conflicts=("${MINGW_PACKAGE_PREFIX}-llvm") - install=llvm-${CARCH}.install - pkgver=$(pkgver_internal "${srcdir}"/llvm) +package_clang() { + pkgdesc="C language family frontend for LLVM (mingw-w64)" + url="http://clang.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") + provides=("${MINGW_PACKAGE_PREFIX}-clang") + conflicts=("${MINGW_PACKAGE_PREFIX}-clang") + pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang) - # Move .. - cd "${srcdir}" - mv llvm/tools/clang clang - mv build-${CARCH}/tools/clang clang-${CARCH} - - mv llvm/tools/lld lld - mv build-${CARCH}/tools/lld lld-${CARCH} - - mv llvm/projects/compiler-rt compiler-rt - mv build-${CARCH}/projects/compiler-rt compiler-rt-${CARCH} - - mv llvm/projects/libcxxabi libcxxabi - mv build-${CARCH}/projects/libcxxabi libcxxabi-${CARCH} - - mv llvm/projects/libcxx libcxx - mv build-${CARCH}/projects/libcxx libcxx-${CARCH} - - cd build-${CARCH} - make -j1 DESTDIR="$pkgdir" install - - # .. Unmove - cd "${srcdir}" - mv clang llvm/tools/clang - mv clang-${CARCH} build-${CARCH}/tools/clang - - mv lld llvm/tools/lld - mv lld-${CARCH} build-${CARCH}/tools/lld - - mv compiler-rt llvm/projects/compiler-rt - mv compiler-rt-${CARCH} build-${CARCH}/projects/compiler-rt - - mv libcxxabi llvm/projects/libcxxabi - mv libcxxabi-${CARCH} build-${CARCH}/projects/libcxxabi - - mv libcxx llvm/projects/libcxx - mv libcxx-${CARCH} build-${CARCH}/projects/libcxx - - # Install CMake stuff - install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} - install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/modules/" - install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/platforms/" - install -Dm644 "${srcdir}/build-${CARCH}"/share/llvm/cmake/LLVMConfig.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/LLVMConfig.cmake + cd "$srcdir/llvm" + make -C ../build-${CARCH}/tools/clang DESTDIR="$pkgdir" install } -package_clang-analyzer() { +package_clang-svn() { + package_clang +} + +package_clang-analyzer-svn() { pkgdesc="A source code analysis framework (mingw-w64)" url="http://clang-analyzer.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-clang-svn" "${MINGW_PACKAGE_PREFIX}-python2") + depends=("${MINGW_PACKAGE_PREFIX}-clang-svn" "python2") provides=("${MINGW_PACKAGE_PREFIX}-clang-analyzer") conflicts=("${MINGW_PACKAGE_PREFIX}-clang-analyzer") pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang) @@ -294,16 +289,12 @@ package_clang-analyzer() { install -d "${pkgdir}"${MINGW_PREFIX}/{bin,lib/clang-analyzer} for _tool in scan-{build,view}; do cp -r tools/$_tool "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/ - ln -s "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/$_tool/$_tool "${pkgdir}"${MINGW_PREFIX}/bin/ + cp "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/$_tool/bin/$_tool "${pkgdir}"${MINGW_PREFIX}/bin/ done - # scan-build looks for clang within the same directory - install -d "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ - ln -s "${srcdir}"/build-${CARCH}/bin/clang.exe "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ - # Relocate man page install -d "${pkgdir}"${MINGW_PREFIX}/share/man/man1 - mv "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/scan-build.1 \ + mv "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/man/scan-build.1 \ "${pkgdir}"${MINGW_PREFIX}/share/man/man1/ # Use Python 2 @@ -319,66 +310,80 @@ package_clang-analyzer() { install -Dm644 LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE } +package_clang-tools-extra-svn() { + pkgdesc="Extra tools built using Clang's tooling APIs (mingw-w64)" + url="http://clang.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-clang-svn") + provides=("${MINGW_PACKAGE_PREFIX}-clang-tools-extra") + conflicts=("${MINGW_PACKAGE_PREFIX}-clang-tools-extra") + pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang/tools/extra) + + cd "$srcdir"/llvm + make -C ../build-${CARCH}/tools/clang/tools/extra -j1 DESTDIR="$pkgdir" install +} + package_mingw-w64-i686-clang-svn(){ - package_clang + package_clang-svn } package_mingw-w64-i686-clang-analyzer-svn(){ - package_clang-analyzer + package_clang-analyzer-svn } package_mingw-w64-i686-clang-tools-extra-svn(){ - package_clang-tools-extra + package_clang-tools-extra-svn } package_mingw-w64-i686-compiler-rt-svn(){ - package_compiler-rt + package_compiler-rt-svn } package_mingw-w64-i686-libc++abi-svn(){ - package_libcxxabi + package_libcxxabi-svn } package_mingw-w64-i686-libc++-svn(){ - package_libcxx + package_libcxx-svn } package_mingw-w64-i686-lld-svn(){ - package_lld + package_lld-svn } package_mingw-w64-i686-llvm-svn(){ - package_llvm + package_llvm-svn } package_mingw-w64-x86_64-clang-svn(){ - package_clang + package_clang-svn } package_mingw-w64-x86_64-clang-analyzer-svn(){ - package_clang-analyzer + package_clang-analyzer-svn } package_mingw-w64-x86_64-clang-tools-extra-svn(){ - package_clang-tools-extra + package_clang-tools-extra-svn } package_mingw-w64-x86_64-compiler-rt-svn(){ - package_compiler-rt + package_compiler-rt-svn } package_mingw-w64-x86_64-libc++abi-svn(){ - package_libcxxabi + package_libcxxabi-svn } package_mingw-w64-x86_64-libc++-svn(){ - package_libcxx + package_libcxx-svn } package_mingw-w64-x86_64-lld-svn(){ - package_lld + package_lld-svn } package_mingw-w64-x86_64-llvm-svn(){ - package_llvm + package_llvm-svn } + +# vim:set ts=2 sw=2 et: From ce6d48c54853cbf7c68c758ed2105fca37cb03b5 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 21 Dec 2015 01:33:44 +0000 Subject: [PATCH 1971/2060] clang-svn: libcxx/libcxxabi fixes --- mingw-w64-clang-svn/PKGBUILD | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 4e4e1b2774..26edc2cfab 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -15,8 +15,8 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-analyzer-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-tools-extra-svn" "${MINGW_PACKAGE_PREFIX}-compiler-rt-svn" - #"${MINGW_PACKAGE_PREFIX}-libc++abi-svn" - #"${MINGW_PACKAGE_PREFIX}-libc++-svn" + "${MINGW_PACKAGE_PREFIX}-libc++abi-svn" + "${MINGW_PACKAGE_PREFIX}-libc++-svn" "${MINGW_PACKAGE_PREFIX}-lld-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn" ) @@ -167,7 +167,7 @@ build() { # Disable automatic installation of components that go into subpackages sed -i '/\(clang\|lld\|lldb\)\/cmake_install.cmake/d' tools/cmake_install.cmake sed -i '/extra\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake - sed -i '/compiler-rt\/cmake_install.cmake/d' projects/cmake_install.cmake + sed -i '/\(compiler-rt\|libcxxabi\|libcxx\)\/cmake_install.cmake/d' projects/cmake_install.cmake } #check() { @@ -209,7 +209,7 @@ package_llvm-svn() { make -C ../build-${CARCH}/projects/compiler-rt DESTDIR="$pkgdir" install } -package_libcxxabi() { +package_libcxxabi-svn() { pkgdesc="C++ Standard Library Support (mingw-w64)" url="http://libcxxabi.llvm.org/" provides=("${MINGW_PACKAGE_PREFIX}-libc++abi") @@ -220,7 +220,7 @@ package_libcxxabi() { make -C ../build-${CARCH}/projects/libcxxabi -j1 DESTDIR="$pkgdir" install } -package_libcxx() { +package_libcxx-svn() { pkgdesc="C++ Standard Library (mingw-w64)" url="http://libcxx.llvm.org/" provides=("${MINGW_PACKAGE_PREFIX}-libc++") @@ -228,7 +228,7 @@ package_libcxx() { pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxx) cd "$srcdir/llvm" - make -C ../build-${CARCH}/projects/libcxx -j1 DESTDIR="$pkgdir" install + make -C ../build-${CARCH}/projects/libcxx -j1 DESTDIR="$pkgdir" install } package_lldb-svn() { From 76e37a413d915795e0dddaa76fa842bf076d73b7 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Mon, 21 Dec 2015 10:10:33 +0100 Subject: [PATCH 1972/2060] gitg: update to version 3.19.1 Now that gitg does not depend on webkit we should be able to build it without problems --- mingw-w64-gitg/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-gitg/PKGBUILD b/mingw-w64-gitg/PKGBUILD index 55c028688c..ee6042d004 100644 --- a/mingw-w64-gitg/PKGBUILD +++ b/mingw-w64-gitg/PKGBUILD @@ -2,18 +2,18 @@ _realname=gitg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.3.3 +pkgver=3.19.1 pkgrel=1 arch=('any') pkgdesc="git repository viewer for GTK+/GNOME (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-gtksourceview3" +depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" + "${MINGW_PACKAGE_PREFIX}-gtksourceview3" "${MINGW_PACKAGE_PREFIX}-libpeas" "${MINGW_PACKAGE_PREFIX}-enchant" "${MINGW_PACKAGE_PREFIX}-iso-codes" "${MINGW_PACKAGE_PREFIX}-python3-gobject" "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" - "${MINGW_PACKAGE_PREFIX}-libgit2-glib" - "${MINGW_PACKAGE_PREFIX}-webkit2gtk3") + "${MINGW_PACKAGE_PREFIX}-libgit2-glib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-vala" @@ -25,7 +25,7 @@ options=('strip' 'staticlibs') license=("GPL2+") url="https://wiki.gnome.org/Apps/Gitg" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-$pkgver.tar.xz) -sha256sums=('a206574d5d3542223c79693d0954fa87d4ba95f13074bb9598e83c91df8f9a16') +sha256sums=('fb31c8a23c93829afb518eaa81560508208a366e006593b0dba9d2f874017457') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 40fffad9696e077f620c8191e6618c60f987b4ea Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Mon, 21 Dec 2015 10:40:59 +0100 Subject: [PATCH 1973/2060] gitg: update to version 3.19.2 This contains all the new patches that makes it compile and work properly on windows. --- mingw-w64-gitg/PKGBUILD | 12 ++++++++++-- mingw-w64-gitg/gitg-i686.install | 12 ++++++++++++ mingw-w64-gitg/gitg-x86_64.install | 12 ++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-gitg/gitg-i686.install create mode 100644 mingw-w64-gitg/gitg-x86_64.install diff --git a/mingw-w64-gitg/PKGBUILD b/mingw-w64-gitg/PKGBUILD index ee6042d004..b2c9b905fd 100644 --- a/mingw-w64-gitg/PKGBUILD +++ b/mingw-w64-gitg/PKGBUILD @@ -2,7 +2,7 @@ _realname=gitg pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.19.1 +pkgver=3.19.2 pkgrel=1 arch=('any') pkgdesc="git repository viewer for GTK+/GNOME (mingw-w64)" @@ -13,10 +13,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" "${MINGW_PACKAGE_PREFIX}-iso-codes" "${MINGW_PACKAGE_PREFIX}-python3-gobject" "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" + "${MINGW_PACKAGE_PREFIX}-libsoup" + "${MINGW_PACKAGE_PREFIX}-libsecret" + "${MINGW_PACKAGE_PREFIX}-gtkspell3" "${MINGW_PACKAGE_PREFIX}-libgit2-glib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-vala" + "${MINGW_PACKAGE_PREFIX}-libgee" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "intltool" "itstool" @@ -24,11 +28,13 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" options=('strip' 'staticlibs') license=("GPL2+") url="https://wiki.gnome.org/Apps/Gitg" +install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-$pkgver.tar.xz) -sha256sums=('fb31c8a23c93829afb518eaa81560508208a366e006593b0dba9d2f874017457') +sha256sums=('52968be7d3dffaf20d14b25ca68773bf8ce73b32c5c8d3eac63cea0721c7a709') prepare() { cd "${srcdir}"/${_realname}-${pkgver} + #autopoint --force #AUTOPOINT='intltoolize --automake --copy' autoreconf -f -i } @@ -50,4 +56,6 @@ build() { package() { cd "$srcdir/build-${MINGW_CHOST}" make DESTDIR=$pkgdir install + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" } diff --git a/mingw-w64-gitg/gitg-i686.install b/mingw-w64-gitg/gitg-i686.install new file mode 100644 index 0000000000..d6a765e9de --- /dev/null +++ b/mingw-w64-gitg/gitg-i686.install @@ -0,0 +1,12 @@ +post_install() { + mingw32/bin/glib-compile-schemas /mingw32/share/glib-2.0/schemas + mingw32/bin/gtk-update-icon-cache-3.0.exe /mingw32/share/icons/hicolor +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/mingw-w64-gitg/gitg-x86_64.install b/mingw-w64-gitg/gitg-x86_64.install new file mode 100644 index 0000000000..e20abc755f --- /dev/null +++ b/mingw-w64-gitg/gitg-x86_64.install @@ -0,0 +1,12 @@ +post_install() { + mingw64/bin/glib-compile-schemas /mingw64/share/glib-2.0/schemas + mingw64/bin/gtk-update-icon-cache-3.0.exe /mingw64/share/icons/hicolor +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} From 69e7e58d82fa8910f82a7ef4126145cde1ca11f6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Dec 2015 12:54:42 +0300 Subject: [PATCH 1974/2060] mingw-w64: Update to 5.0.0.4598.fc005cd --- mingw-w64-crt-git/PKGBUILD | 4 ++-- mingw-w64-headers-git/PKGBUILD | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-crt-git/PKGBUILD b/mingw-w64-crt-git/PKGBUILD index 1b794bb5c4..ee62c96ca9 100644 --- a/mingw-w64-crt-git/PKGBUILD +++ b/mingw-w64-crt-git/PKGBUILD @@ -3,8 +3,8 @@ _realname=crt pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" -pkgver=5.0.0.4592.90b8472 +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn") +pkgver=5.0.0.4598.fc005cd pkgrel=1 pkgdesc='MinGW-w64 CRT for Windows' arch=('any') diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index bbe4a7a988..e238af64c6 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -3,9 +3,9 @@ _realname=headers pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn") pkgdesc="MinGW-w64 headers for Windows" -pkgver=5.0.0.4592.90b8472 +pkgver=5.0.0.4598.fc005cd pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" From 1e1c23320048660b1588d9b0c09b37bb0d3c28eb Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Dec 2015 13:09:20 +0300 Subject: [PATCH 1975/2060] glib2: Rebuild with patch --- ...-fix-argc-argv-mismatch-changing-ABI.patch | 81 ------------------- ...c-argv-mismatch-without-changing-ABI.patch | 30 ------- ...b-fix-on-windows-when-using-bindings.patch | 64 +++++++++++++++ mingw-w64-glib2/PKGBUILD | 18 ++--- 4 files changed, 70 insertions(+), 123 deletions(-) delete mode 100644 mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch delete mode 100644 mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch create mode 100644 mingw-w64-glib2/0035-glib-fix-on-windows-when-using-bindings.patch diff --git a/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch b/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch deleted file mode 100644 index 035f84c760..0000000000 --- a/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch +++ /dev/null @@ -1,81 +0,0 @@ ---- glib-2.46.2/glib/gwin32.c.orig 2015-11-05 20:49:18.000000000 +0000 -+++ glib-2.46.2/glib/gwin32.c 2015-12-20 14:09:52.853497700 +0000 -@@ -724,6 +724,7 @@ - - /** - * g_win32_get_command_line: -+ * @trailing_argc: Num of trailing args to return (neg. num for all args) - * - * Gets the command line arguments, on Windows, in the GLib filename - * encoding (ie: UTF-8). -@@ -755,23 +756,28 @@ - * Unlike argv, the returned value is a normal strv and can (and should) - * be freed with g_strfreev() when no longer needed. - * -- * Returns: (transfer full): the commandline arguments in the GLib -- * filename encoding (ie: UTF-8) -+ * Returns: (transfer full): trailing argc or all commandline arguments in -+ * the GLib filename encoding (ie: UTF-8) - * - * Since: 2.40 - **/ - gchar ** --g_win32_get_command_line (void) -+g_win32_get_command_line (int trailing_argc) - { - gchar **result; - LPWSTR *args; -- gint i, n; -+ gint i, n, start_n; - - args = CommandLineToArgvW (GetCommandLineW(), &n); -+ if (trailing_argc > n) -+ trailing_argc = n; -+ if (trailing_argc < 0) -+ trailing_argc = n; -+ start_n = n - trailing_argc; - -- result = g_new (gchar *, n + 1); -- for (i = 0; i < n; i++) -- result[i] = g_utf16_to_utf8 (args[i], -1, NULL, NULL, NULL); -+ result = g_new (gchar *, trailing_argc + 1); -+ for (i = 0; i < trailing_argc; i++) -+ result[i] = g_utf16_to_utf8 (args[start_n + i], -1, NULL, NULL, NULL); - result[i] = NULL; - - LocalFree (args); ---- glib-2.46.2/glib/gwin32.h.orig 2015-12-20 13:09:14.309961300 +0000 -+++ glib-2.46.2/glib/gwin32.h 2015-12-20 13:45:24.830082400 +0000 -@@ -105,7 +105,7 @@ - gchar* g_win32_locale_filename_from_utf8 (const gchar *utf8filename); - - GLIB_AVAILABLE_IN_2_40 --gchar ** g_win32_get_command_line (void); -+gchar ** g_win32_get_command_line (int trailing_argc); - - /* As of GLib 2.14 we only support NT-based Windows */ - #define G_WIN32_IS_NT_BASED() TRUE ---- glib-2.46.2/gio/gapplication.c.orig 2015-11-06 18:12:04.000000000 +0000 -+++ glib-2.46.2/gio/gapplication.c 2015-12-20 13:50:45.831844400 +0000 -@@ -2173,8 +2173,10 @@ - * the @argc, @argv parameters from main() to this function, it is possible - * to pass %NULL if @argv is not available or commandline handling is not - * required. Note that on Windows, @argc and @argv are ignored, and -- * g_win32_get_command_line() is called internally (for proper support -- * of Unicode commandline arguments). -+ * g_win32_get_command_line(argc) is called internally (for proper support -+ * of Unicode commandline arguments). Only the final argc arguments are -+ * returned for cases where, e.g. pygtk has removed the first argument -+ * (the name of the python executable). - * - * #GApplication will attempt to parse the commandline arguments. You - * can add commandline flags to the list of recognised options by way of -@@ -2256,7 +2258,7 @@ - g_return_val_if_fail (!application->priv->must_quit_now, 1); - - #ifdef G_OS_WIN32 -- arguments = g_win32_get_command_line (); -+ arguments = g_win32_get_command_line (argc); - #else - { - gint i; diff --git a/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch b/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch deleted file mode 100644 index 563fc1ccb3..0000000000 --- a/mingw-w64-glib2/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- glib-2.46.2/gio/gapplication.c.orig 2015-12-20 14:58:37.485878800 +0000 -+++ glib-2.46.2/gio/gapplication.c 2015-12-20 14:58:53.018351200 +0000 -@@ -2256,7 +2256,26 @@ - g_return_val_if_fail (!application->priv->must_quit_now, 1); - - #ifdef G_OS_WIN32 -- arguments = g_win32_get_command_line (); -+ { -+ gint new_argc = 0; -+ arguments = g_win32_get_command_line (); -+ /** -+ * If may be the case that something (e.g. Python) dropped arguments -+ * along the way, e.g. C:/msys64/mingw64/bin/python2.exe and not -+ * respecting that will cause havok. This fix assumes dropped arguments -+ * were all leading ones and attempts to drop the same. -+ **/ -+ while (arguments[new_argc]) -+ { -+ new_argc++; -+ } -+ if (new_argc > argc) -+ { -+ memmove (&arguments[0], -+ &arguments[new_argc - argc], -+ sizeof(arguments[0]) * (argc + 1)); -+ } -+ } - #else - { - gint i; diff --git a/mingw-w64-glib2/0035-glib-fix-on-windows-when-using-bindings.patch b/mingw-w64-glib2/0035-glib-fix-on-windows-when-using-bindings.patch new file mode 100644 index 0000000000..c2055c6af9 --- /dev/null +++ b/mingw-w64-glib2/0035-glib-fix-on-windows-when-using-bindings.patch @@ -0,0 +1,64 @@ +From cfac878d4e7aff96c89e997ea4132043bb5a24e0 Mon Sep 17 00:00:00 2001 +From: Chun-wei Fan +Date: Mon, 21 Dec 2015 14:54:42 +0800 +Subject: [PATCH] g_application_run(): Fix on Windows When Using Bindings + +As g_win32_get_command_line() calls CommandLineToArgvW() to acquire the +arguments passed into a GApplication program, it actually returns the +whole command line which is used to invoke the program, including the +script interpreter and its flags when a script using GNOME bindings +(e.g. PyGObject and so on) is being invoked. + +The issue here is that g_application_run() would most probably have +trouble in the scripts scenario on Windows as it is likely unable to +"recognize" the script interpreter, causing such scripts to fail to run. + +Largely based on the patch by Ray Donnelly . + +https://bugzilla.gnome.org/show_bug.cgi?id=734095 +--- + gio/gapplication.c | 29 ++++++++++++++++++++++++++++- + 1 file changed, 28 insertions(+), 1 deletion(-) + +diff --git a/gio/gapplication.c b/gio/gapplication.c +index e24ab69..5c4b2fb 100644 +--- a/gio/gapplication.c ++++ b/gio/gapplication.c +@@ -2277,7 +2277,34 @@ g_application_run (GApplication *application, + g_return_val_if_fail (!application->priv->must_quit_now, 1); + + #ifdef G_OS_WIN32 +- arguments = g_win32_get_command_line (); ++ { ++ gint new_argc = 0; ++ ++ arguments = g_win32_get_command_line (); ++ ++ /* ++ * CommandLineToArgvW(), which is called by g_win32_get_command_line(), ++ * pulls in the whole command line that is used to call the program. This is ++ * fine in cases where the program is a .exe program, but in the cases where the ++ * program is a called via a script, such as PyGObject's gtk-demo.py, which is normally ++ * called using 'python gtk-demo.py' on Windows, the program name (argv[0]) ++ * returned by g_win32_get_command_line() will not be the argv[0] that ->local_command_line() ++ * would expect, causing the program to fail with "This application can not open files." ++ */ ++ new_argc = g_strv_length (arguments); ++ ++ if (new_argc > argc) ++ { ++ gint i; ++ ++ for (i = 0; i < new_argc - argc; i++) ++ g_free (arguments[i]); ++ ++ memmove (&arguments[0], ++ &arguments[new_argc - argc], ++ sizeof (arguments[0]) * (argc + 1)); ++ } ++ } + #else + { + gint i; +-- +2.3.5.windows.8 diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 03e018d9d0..e72437a52c 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -7,7 +7,7 @@ _realname=glib2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.46.2 -pkgrel=2 +pkgrel=3 url="http://www.gtk.org/" arch=('any') pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)" @@ -30,8 +30,7 @@ source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-${pkgver} 0027-no_sys_if_nametoindex.patch 0028-inode_directory.patch 0029-grand.all.patch - 0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch - 0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch) + 0035-glib-fix-on-windows-when-using-bindings.patch) md5sums=('7f815d6e46df68e070cb421ed7f1139e' '10cf1e482b6a1367d79648466f2cf23c' @@ -44,8 +43,7 @@ md5sums=('7f815d6e46df68e070cb421ed7f1139e' '4aa52b552a6a25b49a1b6f928b3cdafd' '27ad96697441aabc4a01f881ad9999ea' 'b64390c406d32578e979103eed89232b' - '837c12822929b46f020c1a9ccfad03b9' - '969ecb5ff94e48963d39c8b6c71a66f2') + 'b3077e73a447734b331131dcd47cb4d9') prepare() { cd "${srcdir}/glib-${pkgver}" @@ -60,13 +58,9 @@ prepare() { patch -Np1 -i "${srcdir}/0027-no_sys_if_nametoindex.patch" patch -Np1 -i "${srcdir}/0028-inode_directory.patch" patch -Np1 -i "${srcdir}/0029-grand.all.patch" - - # Fixes http://sourceforge.net/p/msys2/discussion/general/thread/e905716d/ - # .. and meld3 (though it seems there's more wrong with meld3) - # I'm not sure which patch is better (probably ..without-changing-ABI.patch) - # .. discussion at https://bugzilla.gnome.org/show_bug.cgi?id=734095 - # patch -Np1 -i "${srcdir}/0030-glib-win32-fix-argc-argv-mismatch-changing-ABI.patch" - patch -Np1 -i "${srcdir}/0030-glib-win32-fix-argc-argv-mismatch-without-changing-ABI.patch" + + # https://bugzilla.gnome.org/show_bug.cgi?id=734095 + patch -Np1 -i "${srcdir}/0035-glib-fix-on-windows-when-using-bindings.patch" NOCONFIGURE=1 ./autogen.sh } From 4bc4f1386ec2dca5edf5288567305fb92310c4ae Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Dec 2015 14:29:14 +0300 Subject: [PATCH 1976/2060] ag: Update to 0.31.0.r1664.ddba555 --- mingw-w64-ag/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index adae843e29..21593e7847 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -4,8 +4,8 @@ _realname=ag _longname=the_silver_searcher pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.31.0.r1661.9e11263 -pkgrel=2 +pkgver=0.31.0.r1664.ddba555 +pkgrel=1 pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" arch=('any') url="http://geoff.greer.fm/ag" From 0764b7649c515a7ec6899953c96dd3941d7b87a7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Dec 2015 14:29:27 +0300 Subject: [PATCH 1977/2060] avrdude: Fix PKGBUILD --- mingw-w64-avrdude/PKGBUILD | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/mingw-w64-avrdude/PKGBUILD b/mingw-w64-avrdude/PKGBUILD index eff214bd6d..521d53f97b 100644 --- a/mingw-w64-avrdude/PKGBUILD +++ b/mingw-w64-avrdude/PKGBUILD @@ -9,27 +9,23 @@ pkgdesc='Software for programming Atmel AVR Microcontrollers (mingw-w64)' arch=('any') url="http://www.nongnu.org/avrdude/" license=('GPL') -makedepends=( - "${MINGW_PACKAGE_PREFIX}-gcc" - "grep" - "bison" - "flex" -) -depends=( - "${MINGW_PACKAGE_PREFIX}-libftdi" - "${MINGW_PACKAGE_PREFIX}-libusb" - "${MINGW_PACKAGE_PREFIX}-libelf" -) +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "grep" + "bison" + "flex") +depends=("${MINGW_PACKAGE_PREFIX}-libftdi" + "${MINGW_PACKAGE_PREFIX}-libusb" + "${MINGW_PACKAGE_PREFIX}-libelf") options=('staticlibs' 'strip') -source=( - "http://download.savannah.gnu.org/releases/avrdude/avrdude-${pkgver}.tar.gz" - '01-libtool.patch' - '02-ddk-headers.patch' - '03-handle-printing.patch' - '04-no-giveio.patch' -) +source=(#http://download.savannah.gnu.org/releases/avrdude/avrdude-${pkgver}.tar.gz{,.sig} + https://ftp.yzu.edu.tw/nongnu/avrdude/avrdude-${pkgver}.tar.gz{,.sig} + '01-libtool.patch' + '02-ddk-headers.patch' + '03-handle-printing.patch' + '04-no-giveio.patch') sha256sums=('e65f833493b7d63a4436c7056694a0f04ae5b437b72cc084e32c58bc543b0f91' + 'SKIP' '3a5c041f97e8fcd6706b08ae24fe21337fd1df13319479e2d49c3f82529ba054' '7b52523834e492281347bc92a064ca924dc5d09e2d653e7076c5a966d03f7768' '159fb7d3253931c00a019c43f343f533d4e67c3a9859b7bcdb51878b8dc26451' From 274a8a6936338bf10144840aef1d707b1981f414 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Dec 2015 14:29:48 +0300 Subject: [PATCH 1978/2060] libgit2: Fix build. --- mingw-w64-libgit2/001-fix-pkg-config.patch | 11 ----------- mingw-w64-libgit2/PKGBUILD | 11 +++++------ 2 files changed, 5 insertions(+), 17 deletions(-) delete mode 100644 mingw-w64-libgit2/001-fix-pkg-config.patch diff --git a/mingw-w64-libgit2/001-fix-pkg-config.patch b/mingw-w64-libgit2/001-fix-pkg-config.patch deleted file mode 100644 index 51404dc9d6..0000000000 --- a/mingw-w64-libgit2/001-fix-pkg-config.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libgit2-0.21.2/libgit2.pc.in.orig 2014-11-12 00:51:20.573000000 +0300 -+++ libgit2-0.21.2/libgit2.pc.in 2014-11-12 00:51:55.173800000 +0300 -@@ -1,5 +1,6 @@ --libdir=@CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@ --includedir=@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@ -+prefix=@CMAKE_INSTALL_PREFIX@ -+libdir=${prefix}/@LIB_INSTALL_DIR@ -+includedir=${prefix}/@INCLUDE_INSTALL_DIR@ - - Name: libgit2 - Description: The git library, take 2 diff --git a/mingw-w64-libgit2/PKGBUILD b/mingw-w64-libgit2/PKGBUILD index 5de3609972..8dce9708d6 100644 --- a/mingw-w64-libgit2/PKGBUILD +++ b/mingw-w64-libgit2/PKGBUILD @@ -1,7 +1,8 @@ # Maintainer: Martell Malone _realname=libgit2 -pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.23.4 pkgrel=1 pkgdesc='A linkable library for Git (mingw-w64)' @@ -15,14 +16,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") -source=(${_realname}-${pkgver}.tar.gz::"https://github.com/libgit2/libgit2/archive/v${pkgver}.tar.gz" - 001-fix-pkg-config.patch) -md5sums=('b7db3ab71dfa19fe1dc7fef76d6af216' - '341f5b8f48d1a489b157dc5300628960') +source=(${_realname}-${pkgver}.tar.gz::"https://github.com/libgit2/libgit2/archive/v${pkgver}.tar.gz") +md5sums=('b7db3ab71dfa19fe1dc7fef76d6af216') prepare() { cd ${_realname}-${pkgver} - patch -p1 -i ${srcdir}/001-fix-pkg-config.patch + #patch -p1 -i ${srcdir}/001-fix-pkg-config.patch } build() { From 8d1f84706c463ff7188f23d17da3184532629fab Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Dec 2015 14:30:20 +0300 Subject: [PATCH 1979/2060] meld3: Update checksums --- mingw-w64-meld3/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-meld3/PKGBUILD b/mingw-w64-meld3/PKGBUILD index 6c93486c4e..824da4d10c 100644 --- a/mingw-w64-meld3/PKGBUILD +++ b/mingw-w64-meld3/PKGBUILD @@ -27,7 +27,7 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/${_realname}/${pkgver%.*}/${_real '0001-fixes-for-MinGW-w64-symlinks-and-use-sh-to-spawn.patch' "0002-build-exe.patch") md5sums=('238c3eba59290d5128675c88c1849e05' - '2311d79477e2828eb3b228d631f30e6b' + 'c3272464b68c2118f19be3f4290034c1' 'c4770167f70e061c1f94d8c3fa3e7150') prepare() { From 4195dfcbbb1a4120edc31f3c097702114e5916dd Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Dec 2015 14:30:42 +0300 Subject: [PATCH 1980/2060] netcdf: Update PKGBUILD. --- mingw-w64-netcdf/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-netcdf/PKGBUILD b/mingw-w64-netcdf/PKGBUILD index afe0ad5f47..405d352c38 100644 --- a/mingw-w64-netcdf/PKGBUILD +++ b/mingw-w64-netcdf/PKGBUILD @@ -17,7 +17,7 @@ source=("ftp://ftp.unidata.ucar.edu/pub/netcdf/${_realname}-${pkgver}.zip" "0002-onstack.patch") md5sums=('24b9bdc8f430e16eb5c9f6f131b2214b' '5700bcd1fa06ceeb43112f28a45f7b0d' - '662dc94415cc5acb36220dfbbebe6734') + '662dc94415cc5acb36220dfbbebe6734') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 2681b221e7b6bb884218444944246c4ba13d103b Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Dec 2015 14:50:13 +0300 Subject: [PATCH 1981/2060] libcroco: Fix PKGBUILD --- mingw-w64-libcroco/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-libcroco/PKGBUILD b/mingw-w64-libcroco/PKGBUILD index f1b1b61c1c..72735edb70 100644 --- a/mingw-w64-libcroco/PKGBUILD +++ b/mingw-w64-libcroco/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Alexey Pavlov _realname=libcroco +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.6.11 pkgrel=1 From 9475b82ce5e58e1a3bc7eaf435d1e7a1bc96b0c2 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Dec 2015 15:40:49 +0300 Subject: [PATCH 1982/2060] ag: Fix PKGBUILD. --- mingw-w64-ag/PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index 21593e7847..ad6eb35ec3 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -3,6 +3,7 @@ _realname=ag _longname=the_silver_searcher +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.31.0.r1664.ddba555 pkgrel=1 From 1e02c8e8197c31ca65bcb74716040d00af09034d Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 22 Dec 2015 15:41:11 +0300 Subject: [PATCH 1983/2060] libpeas: Rebuild with Python 3.5 --- mingw-w64-libpeas/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-libpeas/PKGBUILD b/mingw-w64-libpeas/PKGBUILD index 9b64bb9178..3c0a9554fa 100644 --- a/mingw-w64-libpeas/PKGBUILD +++ b/mingw-w64-libpeas/PKGBUILD @@ -4,7 +4,7 @@ _realname=libpeas pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.16.0 -pkgrel=1 +pkgrel=2 pkgdesc="A GObject-based plugins engine (mingw-w64)" arch=('any') url="http://www.gtk.org" From a990ee70e6038e0db7dfe9a6b0dc2658401547e5 Mon Sep 17 00:00:00 2001 From: Nazar Mishturak Date: Tue, 22 Dec 2015 16:48:06 +0200 Subject: [PATCH 1984/2060] glbinding: Rebuild to fix doc location --- mingw-w64-glbinding/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-glbinding/PKGBUILD b/mingw-w64-glbinding/PKGBUILD index 01fd66b110..cb73ef2441 100644 --- a/mingw-w64-glbinding/PKGBUILD +++ b/mingw-w64-glbinding/PKGBUILD @@ -5,7 +5,7 @@ _realname=glbinding pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.1.0 -pkgrel=2 +pkgrel=3 arch=('any') url='https://github.com/cginternals/glbinding' pkgdesc="A C++ binding for the OpenGL API, generated using the gl.xml specification (mingw-w64)" From 9aa74f3a8360a11f470c433fc61a95803c08ca4a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 22 Dec 2015 00:03:04 +0000 Subject: [PATCH 1985/2060] clang-svn: Minor fixes, clang++ hack (why isn't it being installed?) --- mingw-w64-clang-svn/PKGBUILD | 38 ++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 26edc2cfab..37070b02ea 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -20,7 +20,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-lld-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn" ) -pkgver=60373.b4292ac +pkgver=60382.b8cc716 pkgrel=1 pkgdesc="C language family frontend for LLVM (mingw-w64)" arch=('any') @@ -159,14 +159,17 @@ build() { -DLIBCXX_ENABLE_SHARED=OFF \ -DLIBCXXABI_ENABLE_SHARED=OFF \ "${extra_config[@]}" \ - --debug-output --trace \ ../llvm make # Disable automatic installation of components that go into subpackages + cp tools/cmake_install.cmake tools/cmake_install.cmake.orig + cp tools/clang/tools/cmake_install.cmake tools/clang/tools/cmake_install.cmake.orig + cp projects/cmake_install.cmake projects/cmake_install.cmake.orig + sed -i '/\(clang\|lld\|lldb\)\/cmake_install.cmake/d' tools/cmake_install.cmake - sed -i '/extra\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake + sed -i '/\(extra\|scan-build\|scan-view\)\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake sed -i '/\(compiler-rt\|libcxxabi\|libcxx\)\/cmake_install.cmake/d' projects/cmake_install.cmake } @@ -270,6 +273,9 @@ package_clang() { cd "$srcdir/llvm" make -C ../build-${CARCH}/tools/clang DESTDIR="$pkgdir" install + + # Not sure why this isn't getting installed .. + cp ../build-${CARCH}/bin/clang++.exe $pkgdir${MINGW_PREFIX}/bin/ } package_clang-svn() { @@ -284,28 +290,18 @@ package_clang-analyzer-svn() { conflicts=("${MINGW_PACKAGE_PREFIX}-clang-analyzer") pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang) - cd "${srcdir}"/llvm/tools/clang - - install -d "${pkgdir}"${MINGW_PREFIX}/{bin,lib/clang-analyzer} - for _tool in scan-{build,view}; do - cp -r tools/$_tool "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/ - cp "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/$_tool/bin/$_tool "${pkgdir}"${MINGW_PREFIX}/bin/ - done - - # Relocate man page - install -d "${pkgdir}"${MINGW_PREFIX}/share/man/man1 - mv "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/man/scan-build.1 \ - "${pkgdir}"${MINGW_PREFIX}/share/man/man1/ + cd "${srcdir}"/llvm + make -C ../build-${CARCH}/tools/clang/tools/scan-build -j1 DESTDIR="$pkgdir" install + make -C ../build-${CARCH}/tools/clang/tools/scan-view -j1 DESTDIR="$pkgdir" install # Use Python 2 - #sed -i \ - # -e 's|env python$|&2|' \ - # -e 's|/usr/bin/python$|&2|' \ - # "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-view/scan-view \ - # "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/set-xcode-analyzer + sed -i \ + -e 's|env python$|&2|' \ + -e 's|/usr/bin/python$|&2|' \ + "${pkgdir}"${MINGW_PREFIX}/bin/scan-view # Compile Python scripts - python2 -m compileall "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer + python2 -m compileall "${pkgdir}"${MINGW_PREFIX}/bin/clang-analyzer python2 -O -m compileall "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer install -Dm644 LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE } From 1c97a10aaecad8c8123bea409facc4dbf2b98980 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 23 Dec 2015 00:02:59 +0000 Subject: [PATCH 1986/2060] gitg: Some minor fixes libgee is a depends not a makedepends added pkgbase --enable-debug if check_option debug yes --- mingw-w64-gitg/PKGBUILD | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/mingw-w64-gitg/PKGBUILD b/mingw-w64-gitg/PKGBUILD index b2c9b905fd..52a34c21b5 100644 --- a/mingw-w64-gitg/PKGBUILD +++ b/mingw-w64-gitg/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Ignacio Casal Quinteiro _realname=gitg +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.19.2 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="git repository viewer for GTK+/GNOME (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" @@ -16,16 +17,16 @@ depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" "${MINGW_PACKAGE_PREFIX}-libsoup" "${MINGW_PACKAGE_PREFIX}-libsecret" "${MINGW_PACKAGE_PREFIX}-gtkspell3" - "${MINGW_PACKAGE_PREFIX}-libgit2-glib") + "${MINGW_PACKAGE_PREFIX}-libgit2-glib" + "${MINGW_PACKAGE_PREFIX}-libgee") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-libgee" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" "intltool" "itstool" "gettext-devel") -options=('strip' 'staticlibs') +#options=('!strip' 'debug') license=("GPL2+") url="https://wiki.gnome.org/Apps/Gitg" install=${_realname}-${CARCH}.install @@ -42,15 +43,22 @@ prepare() { build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} + + declare -a extra_config + if check_option "debug" "yes"; then + extra_config+=("--enable-debug") + VERBOSE="V=1" + fi - ../${_realname}-${pkgver}/configure \ + ${srcdir}/${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ - --disable-schemas-compile - make + --disable-schemas-compile \ + "${extra_config[@]}" + make ${VERBOSE} } package() { From 689710ce3027b33924fee6caeb900aed6014ac82 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 23 Dec 2015 00:11:12 +0000 Subject: [PATCH 1987/2060] gitg: Very minor tidyup --- mingw-w64-gitg/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gitg/PKGBUILD b/mingw-w64-gitg/PKGBUILD index 52a34c21b5..34560d545d 100644 --- a/mingw-w64-gitg/PKGBUILD +++ b/mingw-w64-gitg/PKGBUILD @@ -43,14 +43,14 @@ prepare() { build() { mkdir -p build-${MINGW_CHOST} cd build-${MINGW_CHOST} - + declare -a extra_config if check_option "debug" "yes"; then extra_config+=("--enable-debug") VERBOSE="V=1" fi - ${srcdir}/${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ From aafb1f88092423c8c24dbdfdbdf4fdea8b9b0510 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Wed, 23 Dec 2015 08:39:17 +0100 Subject: [PATCH 1988/2060] gitg: update to version 3.19.3 This contains mainly windows fixes --- mingw-w64-gitg/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gitg/PKGBUILD b/mingw-w64-gitg/PKGBUILD index 34560d545d..40d326df00 100644 --- a/mingw-w64-gitg/PKGBUILD +++ b/mingw-w64-gitg/PKGBUILD @@ -3,8 +3,8 @@ _realname=gitg pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.19.2 -pkgrel=2 +pkgver=3.19.3 +pkgrel=1 arch=('any') pkgdesc="git repository viewer for GTK+/GNOME (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" @@ -31,7 +31,7 @@ license=("GPL2+") url="https://wiki.gnome.org/Apps/Gitg" install=${_realname}-${CARCH}.install source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-$pkgver.tar.xz) -sha256sums=('52968be7d3dffaf20d14b25ca68773bf8ce73b32c5c8d3eac63cea0721c7a709') +sha256sums=('c14949cda8e9d9a8ac16e3993ed188be4c408a573247faf16133580f424a091a') prepare() { cd "${srcdir}"/${_realname}-${pkgver} From 8fd197c348afcadfbf74f7f173a1196a458fee04 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Wed, 23 Dec 2015 08:56:10 +0100 Subject: [PATCH 1989/2060] gitg: add needed patch --- .../0001-Add-missing-includes.patch | 35 +++++++++++++++++++ mingw-w64-gitg/PKGBUILD | 8 +++-- 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-gitg/0001-Add-missing-includes.patch diff --git a/mingw-w64-gitg/0001-Add-missing-includes.patch b/mingw-w64-gitg/0001-Add-missing-includes.patch new file mode 100644 index 0000000000..3a24079164 --- /dev/null +++ b/mingw-w64-gitg/0001-Add-missing-includes.patch @@ -0,0 +1,35 @@ +From 82337a0bd09cb63fdd61df90482aef5494be5846 Mon Sep 17 00:00:00 2001 +From: Ignacio Casal Quinteiro +Date: Wed, 23 Dec 2015 08:46:06 +0100 +Subject: [PATCH] Add missing includes + +This happens for developing on linux something that is for windows +--- + libgitg/gitg-platform-support-win32.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/libgitg/gitg-platform-support-win32.c b/libgitg/gitg-platform-support-win32.c +index ca7f725..debb9fc 100644 +--- a/libgitg/gitg-platform-support-win32.c ++++ b/libgitg/gitg-platform-support-win32.c +@@ -21,6 +21,17 @@ + + #include + ++#define SAVE_DATADIR DATADIR ++#undef DATADIR ++#include ++#include ++#ifndef _WIN32_WINNT ++#define _WIN32_WINNT 0x0501 ++#endif ++#include ++#define DATADIR SAVE_DATADIR ++#undef SAVE_DATADIR ++ + gboolean + gitg_platform_support_use_native_window_controls (GdkDisplay *display) + { +-- +2.5.0 + diff --git a/mingw-w64-gitg/PKGBUILD b/mingw-w64-gitg/PKGBUILD index 40d326df00..e21a2b896b 100644 --- a/mingw-w64-gitg/PKGBUILD +++ b/mingw-w64-gitg/PKGBUILD @@ -30,12 +30,16 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" license=("GPL2+") url="https://wiki.gnome.org/Apps/Gitg" install=${_realname}-${CARCH}.install -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-$pkgver.tar.xz) -sha256sums=('c14949cda8e9d9a8ac16e3993ed188be4c408a573247faf16133580f424a091a') +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-$pkgver.tar.xz + 0001-Add-missing-includes.patch) +sha256sums=('c14949cda8e9d9a8ac16e3993ed188be4c408a573247faf16133580f424a091a' + '4f4862d5ec676c75d3c5c39f63608dd9e71f22d2375961885f3b3e43363cb794') prepare() { cd "${srcdir}"/${_realname}-${pkgver} + patch -Np1 -i "${srcdir}/0001-Add-missing-includes.patch" + #autopoint --force #AUTOPOINT='intltoolize --automake --copy' autoreconf -f -i } From 5381bcd32c0c7d1f8c4ecf72b5073888a2fb1580 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Wed, 23 Dec 2015 09:38:20 +0100 Subject: [PATCH 1990/2060] gtk3: do not point to unexistent patch --- mingw-w64-gtk3/PKGBUILD | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index dfecce7c4a..c72db7ddcd 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -29,8 +29,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") options=('strip' '!debug' 'staticlibs') source=("http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" - 0013-fix-mingw-w64-fstat-call.mingw.patch - 0056-missing-file-toarray-pl.patch) + 0013-fix-mingw-w64-fstat-call.mingw.patch) md5sums=('e1c41ad4a6012d703a80f7423acf186e' '21789d52c1debcab59f8b6a99232de68') From 82ab300de20930c0b1b7558b6fc65a88c0db7899 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Dec 2015 11:45:28 +0300 Subject: [PATCH 1991/2060] ag: Update to 0.31.0.r1666.0e577cc --- mingw-w64-ag/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD index ad6eb35ec3..170786013d 100644 --- a/mingw-w64-ag/PKGBUILD +++ b/mingw-w64-ag/PKGBUILD @@ -5,7 +5,7 @@ _realname=ag _longname=the_silver_searcher pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.31.0.r1664.ddba555 +pkgver=0.31.0.r1666.0e577cc pkgrel=1 pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)" arch=('any') From e1018a255c997d9123aae02c447307a9e22e5030 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Dec 2015 11:45:51 +0300 Subject: [PATCH 1992/2060] clang-svn: Fix PKGBUILD --- mingw-w64-clang-svn/PKGBUILD | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 37070b02ea..5b5eec1942 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -11,6 +11,7 @@ # Maybe having a seperate PKGBUILD for it would be helpful for this also _realname=clang +pkgbase=mingw-w64-${_realname}-svn pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-analyzer-svn" "${MINGW_PACKAGE_PREFIX}-${_realname}-tools-extra-svn" @@ -20,7 +21,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-lld-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn" ) -pkgver=60382.b8cc716 +pkgver=60404.0153e10 pkgrel=1 pkgdesc="C language family frontend for LLVM (mingw-w64)" arch=('any') @@ -199,7 +200,7 @@ package_llvm-svn() { install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/platforms/ } - package_compiler-rt-svn() { +package_compiler-rt-svn() { pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)" url="http://compiler-rt.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") @@ -250,7 +251,6 @@ package_lldb-svn() { install -Dm644 tools/lldb/LICENSE.TXT "$pkgdir${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE" } - package_lld-svn() { pkgdesc="Linker tools for LLVM (mingw-w64)" url="http://lld.llvm.org/" @@ -263,7 +263,7 @@ package_lld-svn() { make -C ../build-${CARCH}/tools/lld -j1 DESTDIR="$pkgdir" install } -package_clang() { +package_clang-svn() { pkgdesc="C language family frontend for LLVM (mingw-w64)" url="http://clang.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") @@ -278,10 +278,6 @@ package_clang() { cp ../build-${CARCH}/bin/clang++.exe $pkgdir${MINGW_PREFIX}/bin/ } -package_clang-svn() { - package_clang -} - package_clang-analyzer-svn() { pkgdesc="A source code analysis framework (mingw-w64)" url="http://clang-analyzer.llvm.org/" From 08e28d6e3266d326379dbd5d797ed4d0c0c6b63f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Dec 2015 14:15:31 +0300 Subject: [PATCH 1993/2060] gedit-plugins: Fix PKGBUILD. --- mingw-w64-gedit-plugins/PKGBUILD | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mingw-w64-gedit-plugins/PKGBUILD b/mingw-w64-gedit-plugins/PKGBUILD index 4c6acf2eee..ee3fa0610f 100644 --- a/mingw-w64-gedit-plugins/PKGBUILD +++ b/mingw-w64-gedit-plugins/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer: Ignacio Casal Quinteiro _realname=gedit-plugins +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.18.0 pkgrel=1 @@ -40,7 +41,9 @@ build() { --prefix=${MINGW_PREFIX} \ --libexecdir=${MINGW_PREFIX}/lib \ --disable-schemas-compile \ - --enable-python + --enable-python \ + --enable-vala=no + make } From 2ac0b05a915519ff95ec7bc2dc1034af9419d729 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Dec 2015 14:34:32 +0300 Subject: [PATCH 1994/2060] openssl: Update to 1.0.2e --- mingw-w64-openssl/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-openssl/PKGBUILD b/mingw-w64-openssl/PKGBUILD index 91df897ddb..82e5381ffe 100644 --- a/mingw-w64-openssl/PKGBUILD +++ b/mingw-w64-openssl/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=openssl +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -_ver=1.0.2d +_ver=1.0.2e # use a pacman compatible version scheme pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} pkgrel=1 @@ -21,7 +22,7 @@ source=(http://www.openssl.org/source/${_realname}-${_ver}.tar.gz{,.asc} 'openssl-1.0.1-x32.patch' 'openssl-0.9.6-x509.patch' 'openssl-1.0.1i-relocation.patch') -md5sums=('38dd619b2e77cbac69b99f52a053d25a' +md5sums=('5262bfa25b60ed9de9f28d5d52d77fc5' 'SKIP' 'dd616e53eba607f5ab46634f93d5c5a5' 'df46ea89a28b0bd18f13b9ab63d1ade3' @@ -34,7 +35,7 @@ validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491') prepare() { # Clean up old sources so re-patching doesn't fail. [[ -d ${srcdir}/${_realname}-${_ver} ]] && rm -rf ${srcdir}/${_realname}-${_ver} - tar -xzvf ${_realname}-${_ver}.tar.gz -C ${srcdir} + tar -xzvf ${_realname}-${_ver}.tar.gz -C ${srcdir} || true cd ${srcdir}/${_realname}-${_ver} patch -p1 -i ${srcdir}/openssl-1.0.0a-ldflags.patch From 86c28471827ef3fee0f7cb7922b5b8213d9695b7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 23 Dec 2015 15:23:26 +0300 Subject: [PATCH 1995/2060] libgit2: Verbose output error --- mingw-w64-libgit2/PKGBUILD | 10 ++++++---- mingw-w64-libgit2/libgit2-error-string.patch | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-libgit2/libgit2-error-string.patch diff --git a/mingw-w64-libgit2/PKGBUILD b/mingw-w64-libgit2/PKGBUILD index 8dce9708d6..2428a72d0b 100644 --- a/mingw-w64-libgit2/PKGBUILD +++ b/mingw-w64-libgit2/PKGBUILD @@ -4,7 +4,7 @@ _realname=libgit2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.23.4 -pkgrel=1 +pkgrel=2 pkgdesc='A linkable library for Git (mingw-w64)' arch=('any') url='https://github.com/libgit2/libgit2' @@ -16,12 +16,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-curl" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc") -source=(${_realname}-${pkgver}.tar.gz::"https://github.com/libgit2/libgit2/archive/v${pkgver}.tar.gz") -md5sums=('b7db3ab71dfa19fe1dc7fef76d6af216') +source=(${_realname}-${pkgver}.tar.gz::"https://github.com/libgit2/libgit2/archive/v${pkgver}.tar.gz" + libgit2-error-string.patch) +md5sums=('b7db3ab71dfa19fe1dc7fef76d6af216' + '3ba35235bca627b630df75304b506ff8') prepare() { cd ${_realname}-${pkgver} - #patch -p1 -i ${srcdir}/001-fix-pkg-config.patch + patch -p1 -i ${srcdir}/libgit2-error-string.patch } build() { diff --git a/mingw-w64-libgit2/libgit2-error-string.patch b/mingw-w64-libgit2/libgit2-error-string.patch new file mode 100644 index 0000000000..2d7e1c2bc5 --- /dev/null +++ b/mingw-w64-libgit2/libgit2-error-string.patch @@ -0,0 +1,14 @@ +diff --git a/src/openssl_stream.c b/src/openssl_stream.c +index 54dd761..1e2edee 100644 +--- a/src/openssl_stream.c ++++ b/src/openssl_stream.c +@@ -446,7 +446,8 @@ int git_openssl_stream_new(git_stream **out, const char *host, const char *port) + + st->ssl = SSL_new(git__ssl_ctx); + if (st->ssl == NULL) { +- giterr_set(GITERR_SSL, "failed to create ssl object"); ++ giterr_set(GITERR_SSL, "failed to create ssl object: %s", ++ ERR_error_string(ERR_get_error(), NULL)); + return -1; + } + From 05ebf73fe802364c998b58cf8a5d161031994216 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Dec 2015 09:04:07 +0300 Subject: [PATCH 1996/2060] curl: Update to 7.46.0 --- mingw-w64-curl/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 81745dfcbf..4d9e9a67c7 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -6,7 +6,7 @@ _variant=-openssl _realname=curl pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=7.45.0 +pkgver=7.46.0 pkgrel=1 pkgdesc="An URL retrival utility and library. (mingw-w64)" arch=('any') @@ -31,7 +31,7 @@ source=("$url/download/${_realname}-${pkgver}.tar.bz2"{,.asc} "0001-curl-relocation.patch" "0002-curl-mingw-enable-static.patch" "0003-curl-detect-ipv6-on-windows.patch") -md5sums=('62c1a352b28558f25ba6209214beadc8' +md5sums=('9979f989a2a9930d10f1b3deeabc2148' 'SKIP' '58520051c4ed77781d233c3fa40a5435' 'eac9e212e619490966ae47004bec547b' From 046828de48d3e50d8bb5d9cdb5b954835b1db061 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Dec 2015 10:12:01 +0300 Subject: [PATCH 1997/2060] boost: Update to 1.60.0 --- mingw-w64-boost/PKGBUILD | 31 +--- .../boost-1.54.0-locale-unused_typedef.patch | 11 -- mingw-w64-boost/boost-1.59.0-log.patch | 106 -------------- .../boost-1.59.0-mingw-serialization.patch | 133 ------------------ ...st-1.59.0-mingw-uuid-seed-rng-header.patch | 18 --- ...patch => boost-1.60.0-mingw-context.patch} | 24 ++-- 6 files changed, 20 insertions(+), 303 deletions(-) delete mode 100644 mingw-w64-boost/boost-1.54.0-locale-unused_typedef.patch delete mode 100644 mingw-w64-boost/boost-1.59.0-log.patch delete mode 100644 mingw-w64-boost/boost-1.59.0-mingw-serialization.patch delete mode 100644 mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch rename mingw-w64-boost/{boost-1.59.0-mingw-context.patch => boost-1.60.0-mingw-context.patch} (77%) diff --git a/mingw-w64-boost/PKGBUILD b/mingw-w64-boost/PKGBUILD index c4dd7d93cc..e95463b0d6 100644 --- a/mingw-w64-boost/PKGBUILD +++ b/mingw-w64-boost/PKGBUILD @@ -3,9 +3,9 @@ _realname=boost pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.59.0 +pkgver=1.60.0 _boostver=${pkgver//./_} -pkgrel=3 +pkgrel=1 pkgdesc="Free peer-reviewed portable C++ source libraries (mingw-w64)" arch=('any') url="http://www.boost.org/" @@ -23,7 +23,6 @@ source=(http://downloads.sourceforge.net/sourceforge/boost/boost_${_boostver}.ta boost-1.50.0-fix-non-utf8-files.patch boost-1.58.0-pool.patch boost-1.54.0-bootstrap.patch - boost-1.54.0-locale-unused_typedef.patch boost-1.55.0-python-test-PyImport_AppendInittab.patch boost-1.57.0-build-optflags.patch boost-1.57.0-mpl-print.patch @@ -32,19 +31,15 @@ source=(http://downloads.sourceforge.net/sourceforge/boost/boost_${_boostver}.ta boost-1.57.0-python-libpython_dep.patch boost-1.57.0-spirit-unused_typedef.patch boost-1.58.0-address-model.patch - boost-1.59.0-log.patch - boost-1.59.0-mingw-serialization.patch - boost-1.59.0-mingw-context.patch - boost-1.59.0-mingw-uuid-seed-rng-header.patch + boost-1.60.0-mingw-context.patch boost-include-intrin-h-on-mingw-w64.patch using-mingw-w64-python.patch msys2-mingw-folders-bootstrap.patch) -md5sums=('6aa9a5c6a4ca1016edd0ed1178e3cb87' +md5sums=('65a840e1a0b13a558ff19eeb2c4f0cbe' 'dff8166486150121bf89d7050c7e5c49' 'ef427ef3a47f8fdeeb6b4ae3246aa84f' '014e142fca7f1b534c38eb83ffc1f138' '45dbfa0c971c8625c5cb985e6ed71b5d' - '18963bb39f778b0f0ed7894a5b48845d' 'a08837900284c677cf1cff21636ecbe7' '2f7eaf049a7ab916008806beaf3eea0b' 'e6631765436f87e90c16778a25d2129c' @@ -53,10 +48,7 @@ md5sums=('6aa9a5c6a4ca1016edd0ed1178e3cb87' 'ff8ee6c27cc2f4d912f1c028d4f2d91d' 'd8fb4b4bb69e225ff076513dfd756db9' 'b70fb38cdfa7f86397162e332c9d1ab3' - '1453e99bb24028e7b299df3ee70b5846' - 'db4ed93452debd15b2cd165c438f9911' - '349127a0f1bcddfc189c56219bf39853' - '6f568bb9cf5a01b5d0dc253a9b557229' + '3f3fd3bfbc33808fdf69e682f3e3365b' '7f2942e46b6aa6eec02bdde157b8b132' 'c2aac61b370b321552b5240b9ee7248e' '29ffd4b1636e31678fa8e1afa77305eb') @@ -84,9 +76,6 @@ prepare() { # https://svn.boost.org/trac/boost/ticket/8870 patch -p1 -i ${srcdir}/boost-1.57.0-spirit-unused_typedef.patch - # https://svn.boost.org/trac/boost/ticket/8878 - patch -p1 -i ${srcdir}/boost-1.54.0-locale-unused_typedef.patch - # https://svn.boost.org/trac/boost/ticket/9038 patch -p1 -i ${srcdir}/boost-1.58.0-pool-test_linking.patch @@ -101,25 +90,17 @@ prepare() { # Prevent gcc.jam from setting -m32 or -m64. patch -p1 -i ${srcdir}/boost-1.58.0-address-model.patch - # https://svn.boost.org/trac/boost/ticket/11549 - patch -p1 -i ${srcdir}/boost-1.59.0-log.patch - # https://svn.boost.org/trac/boost/ticket/7262 - patch -p0 -i ${srcdir}/boost-1.59.0-mingw-context.patch + patch -p0 -i ${srcdir}/boost-1.60.0-mingw-context.patch # Fix FTBFS on recent mingw-w64 and also use intrinsics based # versions of the Interlocked symbols which are better optimized patch -p0 -i ${srcdir}/boost-include-intrin-h-on-mingw-w64.patch - # https://github.com/boostorg/serialization/pull/19 - patch -p1 -i ${srcdir}/boost-1.59.0-mingw-serialization.patch - # Use out own build Python patch -p1 -i ${srcdir}/using-mingw-w64-python.patch patch -p1 -i ${srcdir}/msys2-mingw-folders-bootstrap.patch - - patch -p1 -i ${srcdir}/boost-1.59.0-mingw-uuid-seed-rng-header.patch } build() { diff --git a/mingw-w64-boost/boost-1.54.0-locale-unused_typedef.patch b/mingw-w64-boost/boost-1.54.0-locale-unused_typedef.patch deleted file mode 100644 index b7c91284d9..0000000000 --- a/mingw-w64-boost/boost-1.54.0-locale-unused_typedef.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -urp boost_1_54_0-orig/boost/locale/boundary/segment.hpp boost_1_54_0/boost/locale/boundary/segment.hpp ---- boost_1_54_0-orig/boost/locale/boundary/segment.hpp 2013-07-23 00:47:27.020787174 +0200 -+++ boost_1_54_0/boost/locale/boundary/segment.hpp 2013-07-23 00:50:40.382959016 +0200 -@@ -27,7 +27,6 @@ namespace boundary { - int compare_text(LeftIterator l_begin,LeftIterator l_end,RightIterator r_begin,RightIterator r_end) - { - typedef LeftIterator left_iterator; -- typedef RightIterator right_iterator; - typedef typename std::iterator_traits::value_type char_type; - typedef std::char_traits traits; - while(l_begin!=l_end && r_begin!=r_end) { diff --git a/mingw-w64-boost/boost-1.59.0-log.patch b/mingw-w64-boost/boost-1.59.0-log.patch deleted file mode 100644 index a4448cb877..0000000000 --- a/mingw-w64-boost/boost-1.59.0-log.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 7da193fde1a9c1bc925ee980339f4df2e1a66fa7 Mon Sep 17 00:00:00 2001 -From: Andrey Semashev -Date: Sun, 23 Aug 2015 17:27:20 +0300 -Subject: [PATCH] Fixed compilation of operator<< into a record ostream, when - the operator right hand argument is not directly supported by - formatting_ostream. Fixed #11549. - ---- - -diff --git a/boost/log/sources/record_ostream.hpp b/boost/log/sources/record_ostream.hpp -index b3c58e2..c1e8059 100644 ---- a/boost/log/sources/record_ostream.hpp -+++ b/boost/log/sources/record_ostream.hpp -@@ -39,6 +39,18 @@ namespace boost { - - BOOST_LOG_OPEN_NAMESPACE - -+template< typename CharT > -+class basic_record_ostream; -+ -+namespace aux { -+ -+template< typename StreamT, typename R > -+struct enable_if_record_ostream {}; -+template< typename CharT, typename R > -+struct enable_if_record_ostream< basic_record_ostream< CharT >, R > { typedef R type; }; -+ -+} // namespace aux -+ - /*! - * \brief Logging record adapter with a streaming capability - * -@@ -174,6 +186,55 @@ typedef basic_record_ostream< char > record_ostream; //!< Convenience typ - typedef basic_record_ostream< wchar_t > wrecord_ostream; //!< Convenience typedef for wide-character logging - #endif - -+// Implementation note: these operators below should be the least attractive for the compiler -+// so that user's overloads are chosen, when present. We use function template partial ordering for this purpose. -+// We also don't use perfect forwarding for the right hand argument because in ths case the generic overload -+// would be more preferred than the typical one written by users: -+// -+// record_ostream& operator<< (record_ostream& strm, my_type const& arg); -+// -+// This is because my_type rvalues require adding const to the type, which counts as a conversion that is not required -+// if there is a perfect forwarding overload. -+template< typename StreamT, typename T > -+inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type -+operator<< (StreamT& strm, T const& value) -+{ -+ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; -+ static_cast< formatting_ostream_type& >(strm) << value; -+ return strm; -+} -+ -+template< typename StreamT, typename T > -+inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type -+operator<< (StreamT& strm, T& value) -+{ -+ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; -+ static_cast< formatting_ostream_type& >(strm) << value; -+ return strm; -+} -+ -+#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -+ -+template< typename StreamT, typename T > -+inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type -+operator<< (StreamT&& strm, T const& value) -+{ -+ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; -+ static_cast< formatting_ostream_type& >(strm) << value; -+ return strm; -+} -+ -+template< typename StreamT, typename T > -+inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type -+operator<< (StreamT&& strm, T& value) -+{ -+ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; -+ static_cast< formatting_ostream_type& >(strm) << value; -+ return strm; -+} -+ -+#endif // !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -+ - namespace aux { - - //! Internal class that provides formatting streams for record pumps -diff --git a/boost/log/utility/formatting_ostream.hpp b/boost/log/utility/formatting_ostream.hpp -index 4345206..744acc0 100644 ---- a/boost/log/utility/formatting_ostream.hpp -+++ b/boost/log/utility/formatting_ostream.hpp -@@ -779,6 +779,13 @@ void basic_formatting_ostream< CharT, TraitsT, AllocatorT >::aligned_write(const - - // Implementation note: these operators below should be the least attractive for the compiler - // so that user's overloads are chosen, when present. We use function template partial ordering for this purpose. -+// We also don't use perfect forwarding for the right hand argument because in ths case the generic overload -+// would be more preferred than the typical one written by users: -+// -+// formatting_ostream& operator<< (formatting_ostream& strm, my_type const& arg); -+// -+// This is because my_type rvalues require adding const to the type, which counts as a conversion that is not required -+// if there is a perfect forwarding overload. - template< typename StreamT, typename T > - inline typename boost::log::aux::enable_if_formatting_ostream< StreamT, StreamT& >::type - operator<< (StreamT& strm, T const& value) diff --git a/mingw-w64-boost/boost-1.59.0-mingw-serialization.patch b/mingw-w64-boost/boost-1.59.0-mingw-serialization.patch deleted file mode 100644 index a564d06094..0000000000 --- a/mingw-w64-boost/boost-1.59.0-mingw-serialization.patch +++ /dev/null @@ -1,133 +0,0 @@ -diff --git a/include/boost/archive/archive_exception.hpp b/include/boost/archive/archive_exception.hpp -index 1159d27..fabcdb5 100644 ---- a/boost/archive/archive_exception.hpp -+++ b/boost/archive/archive_exception.hpp -@@ -87,6 +87,7 @@ class BOOST_SYMBOL_VISIBLE archive_exception : - const char * e1 = NULL, - const char * e2 = NULL - ) BOOST_NOEXCEPT; -+ BOOST_ARCHIVE_DECL archive_exception(archive_exception const &) BOOST_NOEXCEPT ; - virtual BOOST_ARCHIVE_DECL ~archive_exception() BOOST_NOEXCEPT_OR_NOTHROW ; - virtual BOOST_ARCHIVE_DECL const char * what() const BOOST_NOEXCEPT_OR_NOTHROW ; - }; -diff --git a/boost/archive/detail/basic_oarchive.hpp b/boost/archive/detail/basic_oarchive.hpp -index 702c560..03ad17b 100644 ---- a/boost/archive/detail/basic_oarchive.hpp -+++ b/boost/archive/detail/basic_oarchive.hpp -@@ -61,9 +61,7 @@ class BOOST_SYMBOL_VISIBLE basic_oarchive : - protected: - BOOST_ARCHIVE_DECL basic_oarchive(unsigned int flags = 0); - BOOST_ARCHIVE_DECL boost::archive::detail::helper_collection & -- get_helper_collection(){ -- return *this; -- } -+ get_helper_collection(); - // account for bogus gcc warning - #if defined(__GNUC__) - virtual -diff --git a/boost/archive/polymorphic_iarchive.hpp b/boost/archive/polymorphic_iarchive.hpp -index 7f19410..b465bb1 100644 ---- a/boost/archive/polymorphic_iarchive.hpp -+++ b/boost/archive/polymorphic_iarchive.hpp -@@ -44,7 +44,7 @@ namespace serialization { - namespace archive { - namespace detail { - class BOOST_ARCHIVE_DECL basic_iarchive; -- class BOOST_ARCHIVE_DECL basic_iarchive; -+ class BOOST_ARCHIVE_DECL basic_iserializer; - } - - class polymorphic_iarchive; -diff --git a/boost/archive/xml_archive_exception.hpp b/boost/archive/xml_archive_exception.hpp -index b07f9a0..82c53ef 100644 ---- a/boost/archive/xml_archive_exception.hpp -+++ b/boost/archive/xml_archive_exception.hpp -@@ -45,6 +45,8 @@ class BOOST_SYMBOL_VISIBLE xml_archive_exception : - const char * e1 = NULL, - const char * e2 = NULL - ); -+ BOOST_ARCHIVE_DECL xml_archive_exception(xml_archive_exception const &) ; -+ virtual BOOST_ARCHIVE_DECL ~xml_archive_exception() BOOST_NOEXCEPT_OR_NOTHROW ; - }; - - }// namespace archive -diff --git a/libs/serialization/src/archive_exception.cpp b/libs/serialization/src/archive_exception.cpp -index b850f89..5ff4b5f 100644 ---- a/libs/serialization/src/archive_exception.cpp -+++ b/libs/serialization/src/archive_exception.cpp -@@ -14,6 +14,7 @@ - - #include - #include -+#include - - #define BOOST_ARCHIVE_SOURCE - #include -@@ -21,6 +22,7 @@ - namespace boost { - namespace archive { - -+BOOST_ARCHIVE_DECL - unsigned int - archive_exception::append(unsigned int l, const char * a){ - while(l < (sizeof(m_buffer) - 1)){ -@@ -109,13 +111,23 @@ archive_exception::archive_exception( - break; - } - } -+ -+BOOST_ARCHIVE_DECL -+archive_exception::archive_exception(archive_exception const & oth) BOOST_NOEXCEPT : -+ std::exception(oth), -+ code(oth.code) -+{ -+ std::memcpy(m_buffer,oth.m_buffer,sizeof m_buffer); -+} -+ - BOOST_ARCHIVE_DECL - archive_exception::~archive_exception() BOOST_NOEXCEPT_OR_NOTHROW {} - - BOOST_ARCHIVE_DECL const char * --archive_exception::what( ) const BOOST_NOEXCEPT_OR_NOTHROW { -+archive_exception::what() const BOOST_NOEXCEPT_OR_NOTHROW { - return m_buffer; - } -+ - BOOST_ARCHIVE_DECL - archive_exception::archive_exception() BOOST_NOEXCEPT : - code(no_exception) -diff --git a/libs/serialization/src/basic_oarchive.cpp b/libs/serialization/src/basic_oarchive.cpp -index c99baeb..18522af 100644 ---- a/libs/serialization/src/basic_oarchive.cpp -+++ b/libs/serialization/src/basic_oarchive.cpp -@@ -454,6 +454,11 @@ BOOST_ARCHIVE_DECL void - basic_oarchive::end_preamble(){ - } - -+BOOST_ARCHIVE_DECL helper_collection & -+basic_oarchive::get_helper_collection(){ -+ return *this; -+} -+ - } // namespace detail - } // namespace archive - } // namespace boost -diff --git a/libs/serialization/src/xml_archive_exception.cpp b/libs/serialization/src/xml_archive_exception.cpp -index c1431e2..f4bf896 100644 ---- a/libs/serialization/src/xml_archive_exception.cpp -+++ b/libs/serialization/src/xml_archive_exception.cpp -@@ -51,6 +51,14 @@ xml_archive_exception::xml_archive_exception( - break; - } - } -+ -+BOOST_ARCHIVE_DECL -+xml_archive_exception::xml_archive_exception(xml_archive_exception const & oth) : -+ archive_exception(oth) -+ { -+ } -+ -+BOOST_ARCHIVE_DECL xml_archive_exception::~xml_archive_exception() BOOST_NOEXCEPT_OR_NOTHROW {} - - } // archive - } // boost diff --git a/mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch b/mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch deleted file mode 100644 index 0e1dd605f3..0000000000 --- a/mingw-w64-boost/boost-1.59.0-mingw-uuid-seed-rng-header.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/boost/uuid/seed_rng.hpp Fri May 15 12:55:19 2015 -+++ b/boost/uuid/seed_rng.hpp Tue Oct 20 09:03:44 2015 -@@ -40,11 +40,14 @@ - #if defined(_MSC_VER) - # pragma warning(push) // Save warning settings. - # pragma warning(disable : 4996) // Disable deprecated std::fopen -+# pragma comment(lib, "advapi32.lib") -+#endif -+ -+#if defined(BOOST_WINDOWS) - # include // for CryptAcquireContextA, CryptGenRandom, CryptReleaseContext - # include - # include - # include --# pragma comment(lib, "advapi32.lib") - #else - # include // for gettimeofday - # include // for pid_t diff --git a/mingw-w64-boost/boost-1.59.0-mingw-context.patch b/mingw-w64-boost/boost-1.60.0-mingw-context.patch similarity index 77% rename from mingw-w64-boost/boost-1.59.0-mingw-context.patch rename to mingw-w64-boost/boost-1.60.0-mingw-context.patch index 4b45819bcf..96e7e0cba6 100644 --- a/mingw-w64-boost/boost-1.59.0-mingw-context.patch +++ b/mingw-w64-boost/boost-1.60.0-mingw-context.patch @@ -12,30 +12,34 @@ --- libs/context/build/Jamfile.v2.orig 2013-03-03 13:39:59.684868916 +0100 +++ libs/context/build/Jamfile.v2 2013-03-03 15:09:09.893232829 +0100 -@@ -27,9 +27,10 @@ +@@ -45,10 +45,11 @@ local rule default_binary_format ( ) { local tmp = elf ; -- if [ os.name ] = "MACOSX" { tmp = mach-o ; } - if [ os.name ] = "NT" { tmp = pe ; } -- if [ os.name ] = "AIX" { tmp = xcoff ; } -+# if [ os.name ] = "MACOSX" { tmp = mach-o ; } -+# if [ os.name ] = "NT" { tmp = pe ; } -+# if [ os.name ] = "AIX" { tmp = xcoff ; } +- else if [ os.name ] = "CYGWIN" { tmp = pe ; } +- else if [ os.name ] = "AIX" { tmp = xcoff ; } +- else if [ os.name ] = "MACOSX" { tmp = mach-o ; } ++# if [ os.name ] = "NT" { tmp = pe ; } ++# else if [ os.name ] = "CYGWIN" { tmp = pe ; } ++# else if [ os.name ] = "AIX" { tmp = xcoff ; } ++# else if [ os.name ] = "MACOSX" { tmp = mach-o ; } + tmp = pe ; return $(tmp) ; } -@@ -46,9 +47,10 @@ +@@ -65,10 +65,11 @@ local rule default_abi ( ) { local tmp = sysv ; - if [ os.name ] = "NT" { tmp = ms ; } +- else if [ os.name ] = "CYGWIN" { tmp = ms ; } - else if [ os.platform ] = "ARM" { tmp = aapcs ; } - else if [ os.platform ] = "MIPS" { tmp = o32 ; } -+# if [ os.name ] = "NT" { tmp = ms ; } -+# else if [ os.platform ] = "ARM" { tmp = aapcs ; } -+# else if [ os.platform ] = "MIPS" { tmp = o32 ; } ++# if [ os.name ] = "NT" { tmp = ms ; } ++# else if [ os.name ] = "CYGWIN" { tmp = ms ; } ++# else if [ os.platform ] = "ARM" { tmp = aapcs ; } ++# else if [ os.platform ] = "MIPS" { tmp = o32 ; } + tmp = ms ; return $(tmp) ; } From 731d33e60c2c46448f0b77a60991186e2a608564 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Dec 2015 10:57:51 +0300 Subject: [PATCH 1998/2060] ffmpeg: Update to 2.8.4 --- mingw-w64-ffmpeg/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 3b68d6d10a..6ec47b91d8 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -3,7 +3,7 @@ _realname=ffmpeg pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.8.2 +pkgver=2.8.4 pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') @@ -42,7 +42,7 @@ depends=( ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-yasm") source=(http://ffmpeg.org/releases/${_realname}-${pkgver}.tar.bz2) -md5sums=('99f31723326dfe1bfd1bc7521338f2d2') +md5sums=('5a312bebaf71688703644c18ef3f26e8') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -102,7 +102,7 @@ build() { --disable-doc #--enable-pthreads - make + make -j1 } check() { From 22a85bae78b4dc1ee35484dad3feb4265c319198 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Dec 2015 11:34:39 +0300 Subject: [PATCH 1999/2060] poppler: Update to 0.39.0 --- mingw-w64-poppler/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-poppler/PKGBUILD b/mingw-w64-poppler/PKGBUILD index 34033fd41b..9fd3b9d2aa 100644 --- a/mingw-w64-poppler/PKGBUILD +++ b/mingw-w64-poppler/PKGBUILD @@ -3,7 +3,7 @@ _realname=poppler pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.37.0 +pkgver=0.39.0 pkgrel=1 pkgdesc="PDF rendering library based on xpdf 3.0 (mingw-w64)" arch=('any') @@ -28,7 +28,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libpoppler-glib" "${MINGW_PACKAGE_PREFIX}-qt5: libpoppler-qt5") options=('strip' 'staticlibs') source=("http://poppler.freedesktop.org/${_realname}-${pkgver}.tar.xz") -md5sums=('c635e1742202cbbd9182cb0255d95652') +md5sums=('5100960c61b932430b5d74068d71f530') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 554ba34a7df203ad826323c2c9477c7cb7b2606e Mon Sep 17 00:00:00 2001 From: "U-olece-PC\\olece" Date: Thu, 24 Dec 2015 13:29:24 +0100 Subject: [PATCH 2000/2060] jucipp-git: provides/replaces are now arrays, removed unnessessary libclangmm download (this happens in prepare() through submodule init and update), and updated pkgver --- mingw-w64-jucipp-git/PKGBUILD | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/mingw-w64-jucipp-git/PKGBUILD b/mingw-w64-jucipp-git/PKGBUILD index 63d87873ec..492fff7688 100644 --- a/mingw-w64-jucipp-git/PKGBUILD +++ b/mingw-w64-jucipp-git/PKGBUILD @@ -3,9 +3,9 @@ _realname=jucipp pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -provides="${MINGW_PACKAGE_PREFIX}-${_realname}" -replaces="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1022.4eedbca +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1157.6205b2b pkgrel=1 pkgdesc="A lightweight platform independent C++-IDE with support for C++11 and C++14 (mingw-w64)" arch=('any') @@ -20,10 +20,8 @@ depends=("${MINGW_PACKAGE_PREFIX}-clang" "${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-aspell-en") options=('strip' 'staticlibs') -source=("${_realname}"::"git+https://github.com/cppit/jucipp.git" - "libclangmm"::"git+https://github.com/cppit/libclangmm.git") -md5sums=('SKIP' - 'SKIP') +source=("${_realname}"::"git+https://github.com/cppit/jucipp.git") +md5sums=('SKIP') pkgver() { cd "${srcdir}"/${_realname} @@ -33,7 +31,6 @@ pkgver() { prepare() { cd "${srcdir}"/${_realname} git submodule init - git config submodule.libclangmm.url "${srcdir}"/libclangmm git submodule update } From d9865dce087fdbf0e11e631220a1ba3c0f3151fd Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Dec 2015 15:45:53 +0300 Subject: [PATCH 2001/2060] codelite-git: WIP update --- mingw-w64-codelite-git/PKGBUILD | 11 ++- .../fix-sqlite3-find-and-build.patch | 98 +++++++++++++++++++ 2 files changed, 106 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index 141f6f6550..243a71bf66 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov _realname=codelite +pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=8.0.1.311.g4c776f1 +pkgver=9.0.305.ge7e7ce9 pkgrel=1 pkgdesc="Open-source, cross platform IDE for the C/C++ programming languages (mingw-w64)" arch=('any') @@ -26,12 +27,14 @@ source=("${_realname}::git+https://github.com/eranif/codelite.git" include-winsock-header.patch mingw-use-wx-manifests.patch use-gnu-extensions.patch - windows-headers-conflict.patch) + windows-headers-conflict.patch + fix-sqlite3-find-and-build.patch) md5sums=('SKIP' '926c4848932586577192bd950ffc604b' 'b18e62316a10dac7c274e2faccd86180' 'f7ce106c3565835c019fbcda0f9bea56' - '1ae47bc9b913d425f98533c237b45ceb') + '1ae47bc9b913d425f98533c237b45ceb' + '2eacbaa07493512a66f8f2e434433a9f') pkgver() { cd "${_realname}" @@ -44,6 +47,7 @@ prepare() { patch -p1 -i ${srcdir}/mingw-use-wx-manifests.patch patch -p1 -i ${srcdir}/use-gnu-extensions.patch patch -p1 -i ${srcdir}/windows-headers-conflict.patch + patch -p1 -i ${srcdir}/fix-sqlite3-find-and-build.patch } build() { @@ -56,6 +60,7 @@ build() { fi cd ${srcdir}/${_realname} + #MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;-DPREFIX=" ${MINGW_PREFIX}/bin/cmake \ -Wno-dev \ -G"MSYS Makefiles" \ diff --git a/mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch b/mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch new file mode 100644 index 0000000000..9f30f9877a --- /dev/null +++ b/mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch @@ -0,0 +1,98 @@ +--- codelite/CMakeLists.txt.orig 2015-03-11 00:04:27.169200000 +0300 ++++ codelite/CMakeLists.txt 2015-03-11 00:05:10.755600000 +0300 +@@ -496,7 +496,7 @@ + add_definitions( -mmacosx-version-min=10.8 ) + endif() + +-if(APPLE) ++if(NOT SQLITE3_FOUND) + # On Linux, we use the distro's libsqlite3 + add_subdirectory(sqlite3) + endif() +@@ -574,8 +574,11 @@ + if ( USE_PCH ) + add_dependencies(sqlite3lib ${CL_PCH_TARGET}) + endif ( USE_PCH ) +- add_dependencies(wxsqlite3 sqlite3lib) + endif() ++ ++if(NOT SQLITE3_FOUND) ++ add_dependencies(wxsqlite3 sqlite3lib) ++endif() + + add_dependencies(databaselayersqlite wxsqlite3) + add_dependencies(wxshapeframework wxsqlite3) +--- codelite/cmake/Modules/FindSqlite3.cmake.orig 2015-12-24 15:02:52.639852500 +0300 ++++ codelite/cmake/Modules/FindSqlite3.cmake 2015-12-24 15:07:28.933929700 +0300 +@@ -1,18 +1,21 @@ +-if(UNIX AND NOT APPLE) ++if(NOT APPLE) + find_library(SQLITE3_LIBRARY +- NAMES libsqlite3.so ++ NAMES libsqlite3.so sqlite3 + HINTS +- /usr/local/lib +- /usr/lib +- /usr/lib/x86_64-linux-gnu +- /usr/lib/i386-linux-gnu ++ ENV SQLITE3DIR ++ PATH_SUFFIXES lib lib/x86_64-linux-gnu lib/i386-linux-gnu ++ PATHS ++ /usr/local ++ /usr + ) + + find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h + HINTS +- /usr/local/include +- /usr/include +- /usr/include/sqlite3 ++ ENV SQLITE3DIR ++ PATH_SUFFIXES include/sqlite3 include ++ PATHS ++ /usr/local ++ /usr + ) + if (SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARY) + set(SQLITE3_FOUND TRUE) +--- codelite/sdk/databaselayer/CMakeLists.txt.orig 2015-12-24 15:15:22.810929700 +0300 ++++ codelite/sdk/databaselayer/CMakeLists.txt 2015-12-24 15:16:23.103929700 +0300 +@@ -12,7 +12,7 @@ + include( "${wxWidgets_USE_FILE}" ) + + # Include paths +-include_directories(./include/wx/dblayer/include src/sqlite3) ++include_directories(./include/wx/dblayer/include ${SQLITE3_INCLUDE_DIR}) + + if ( USE_PCH ) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -include ${CL_PCH_FILE} -Winvalid-pch ") +@@ -60,7 +60,7 @@ + + # Define the output + add_library(databaselayersqlite SHARED ${SRCS} ${MYSQL_SRCS}) +-target_link_libraries(databaselayersqlite ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES}) ++target_link_libraries(databaselayersqlite ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" ${SQLITE3_LIBRARY}) + + if(APPLE) + install(TARGETS databaselayersqlite DESTINATION ${CMAKE_BINARY_DIR}/codelite.app/Contents/MacOS/) +--- codelite/CodeLite/CMakeLists.txt.orig 2015-12-24 15:15:22.810929700 +0300 ++++ codelite/CodeLite/CMakeLists.txt 2015-12-24 15:16:23.103929700 +0300 +@@ -100,16 +100,16 @@ + + # Define the output + add_library(libcodelite SHARED ${SRCS}) +-if (UNIX AND NOT APPLE ) ++if ( NOT APPLE ) + target_link_libraries(libcodelite + ${LINKER_OPTIONS} + ${wxWidgets_LIBRARIES} + -L"${CL_LIBPATH}" + ${SQLITE3_LIBRARY} + wxsqlite3 + ${LIBSSH_LIB} + ${ADDITIONAL_LIBRARIES}) +-else (UNIX AND NOT APPLE) ++else ( NOT APPLE) + target_link_libraries(libcodelite + ${LINKER_OPTIONS} + ${wxWidgets_LIBRARIES} From 11b9daf96f5be84841905e4a9d40e115b22ad446 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 24 Dec 2015 15:59:41 +0300 Subject: [PATCH 2002/2060] codelite-git: Another patch --- mingw-w64-codelite-git/PKGBUILD | 7 ++-- .../clStandardPaths-missing-member.patch | 35 +++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-codelite-git/clStandardPaths-missing-member.patch diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index 243a71bf66..f862ee870e 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -28,13 +28,15 @@ source=("${_realname}::git+https://github.com/eranif/codelite.git" mingw-use-wx-manifests.patch use-gnu-extensions.patch windows-headers-conflict.patch - fix-sqlite3-find-and-build.patch) + fix-sqlite3-find-and-build.patch + clStandardPaths-missing-member.patch) md5sums=('SKIP' '926c4848932586577192bd950ffc604b' 'b18e62316a10dac7c274e2faccd86180' 'f7ce106c3565835c019fbcda0f9bea56' '1ae47bc9b913d425f98533c237b45ceb' - '2eacbaa07493512a66f8f2e434433a9f') + '2eacbaa07493512a66f8f2e434433a9f' + '84bc65336879f9ca6d3dd9eed21b8215') pkgver() { cd "${_realname}" @@ -48,6 +50,7 @@ prepare() { patch -p1 -i ${srcdir}/use-gnu-extensions.patch patch -p1 -i ${srcdir}/windows-headers-conflict.patch patch -p1 -i ${srcdir}/fix-sqlite3-find-and-build.patch + patch -p1 -i ${srcdir}/clStandardPaths-missing-member.patch } build() { diff --git a/mingw-w64-codelite-git/clStandardPaths-missing-member.patch b/mingw-w64-codelite-git/clStandardPaths-missing-member.patch new file mode 100644 index 0000000000..2220781b24 --- /dev/null +++ b/mingw-w64-codelite-git/clStandardPaths-missing-member.patch @@ -0,0 +1,35 @@ +--- codelite/CodeLite/cl_standard_paths.h.orig 2015-12-24 15:52:24.680223100 +0300 ++++ codelite/CodeLite/cl_standard_paths.h 2015-12-24 15:53:38.368672300 +0300 +@@ -118,6 +118,8 @@ + * OSX: /Users/name/Documents + */ + wxString GetDocumentsDir() const; ++ ++ void IgnoreAppSubDir(const wxString & subdirPattern); + }; + + #endif // CLSTANDARDPATHS_H +--- codelite/CodeLite/cl_standard_paths.cpp.orig 2015-12-24 15:53:47.553753700 +0300 ++++ codelite/CodeLite/cl_standard_paths.cpp 2015-12-24 15:57:59.523953000 +0300 +@@ -29,9 +29,7 @@ + + clStandardPaths::clStandardPaths() + { +-#ifdef USE_POSIX_LAYOUT +- wxStandardPaths::Get().IgnoreAppSubDir("bin"); +-#endif ++ IgnoreAppSubDir("bin"); + } + + clStandardPaths::~clStandardPaths() {} +@@ -164,3 +162,10 @@ + #endif + return path; + } ++ ++void clStandardPaths::IgnoreAppSubDir(const wxString & subdirPattern) ++{ ++#ifdef USE_POSIX_LAYOUT ++ wxStandardPaths::Get().IgnoreAppSubDir(subdirPattern); ++#endif ++} From dd2692d6c4bb4eb88e6eb6c4fe8d2828e9f40caa Mon Sep 17 00:00:00 2001 From: David Grayson Date: Thu, 10 Dec 2015 08:38:41 -0800 Subject: [PATCH 2003/2060] catch: Update to version 1.3.1. --- mingw-w64-catch/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-catch/PKGBUILD b/mingw-w64-catch/PKGBUILD index 651f2ca243..3031f8b4e9 100644 --- a/mingw-w64-catch/PKGBUILD +++ b/mingw-w64-catch/PKGBUILD @@ -1,15 +1,16 @@ # Maintainer: David Grayson _realname=catch +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.2.1 -pkgrel=2 +pkgver=1.3.1 +pkgrel=1 pkgdesc="Multi-paradigm automated test framework for C++ and Objective-C (mingw-w64)" arch=('any') url='https://github.com/philsquared/Catch' license=('custom') source=(${_realname}-${pkgver}.tar.gz::https://github.com/philsquared/Catch/archive/v${pkgver}.tar.gz) -md5sums=('3edd6782a6b7bc7597e95fd1f202dde2') +sha256sums=('eff0fe3e726287866a470c41ccd597f2a695d595230dda6afa13b85061b9436b') package() { cd "${srcdir}/Catch-${pkgver}" From 31a63d7bea22f8cba3e8d6ef614990c71b25f6f6 Mon Sep 17 00:00:00 2001 From: "U-olece-PC\\olece" Date: Fri, 25 Dec 2015 09:28:20 +0100 Subject: [PATCH 2004/2060] jucipp-git: added submodules in source array as suggested in package guidelines --- mingw-w64-jucipp-git/PKGBUILD | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/mingw-w64-jucipp-git/PKGBUILD b/mingw-w64-jucipp-git/PKGBUILD index 492fff7688..f1969a2076 100644 --- a/mingw-w64-jucipp-git/PKGBUILD +++ b/mingw-w64-jucipp-git/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1157.6205b2b +pkgver=1164.79f497a pkgrel=1 pkgdesc="A lightweight platform independent C++-IDE with support for C++11 and C++14 (mingw-w64)" arch=('any') @@ -20,8 +20,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-clang" "${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-aspell-en") options=('strip' 'staticlibs') -source=("${_realname}"::"git+https://github.com/cppit/jucipp.git") -md5sums=('SKIP') +source=("${_realname}"::"git+https://github.com/cppit/jucipp.git" + "libclangmm"::"git+https://github.com/cppit/libclangmm.git" + "tiny-process-library"::"git+https://github.com/eidheim/tiny-process-library.git") +md5sums=('SKIP' + 'SKIP' + 'SKIP') pkgver() { cd "${srcdir}"/${_realname} @@ -31,6 +35,8 @@ pkgver() { prepare() { cd "${srcdir}"/${_realname} git submodule init + git config submodule.libclangmm.url "${srcdir}"/libclangmm + git config submodule.tiny-process-library.url "${srcdir}"/tiny-process-library git submodule update } From 084e986bc53b2994abb56d56efbfd351ec15e125 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Dec 2015 14:32:12 +0300 Subject: [PATCH 2005/2060] clang: Generate proper names for import/static libraries. --- ...-generate-proper-library-names-mingw.patch | 22 +++++++++++++++++++ .../0018-mingw-enable-static-libclang.patch | 11 ++++++++++ mingw-w64-clang/PKGBUILD | 10 ++++++++- 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-clang/0003-generate-proper-library-names-mingw.patch create mode 100644 mingw-w64-clang/0018-mingw-enable-static-libclang.patch diff --git a/mingw-w64-clang/0003-generate-proper-library-names-mingw.patch b/mingw-w64-clang/0003-generate-proper-library-names-mingw.patch new file mode 100644 index 0000000000..11015d94e9 --- /dev/null +++ b/mingw-w64-clang/0003-generate-proper-library-names-mingw.patch @@ -0,0 +1,22 @@ +--- a/cmake/modules/AddLLVM.cmake 2015-12-25 11:45:24.447038200 +0300 ++++ b/cmake/modules/AddLLVM.cmake 2015-12-25 12:14:26.848945700 +0300 +@@ -399,10 +399,15 @@ + llvm_update_compile_flags(${name}) + add_link_opts( ${name} ) + if(ARG_OUTPUT_NAME) +- set_target_properties(${name} +- PROPERTIES +- OUTPUT_NAME ${ARG_OUTPUT_NAME} +- ) ++ if(MINGW) ++ string(REGEX REPLACE "^lib([A-Za-z]+)" "\\1" LIB_OUTPUT_NAME ${ARG_OUTPUT_NAME}) ++ set_target_properties(${name} PROPERTIES OUTPUT_NAME ${LIB_OUTPUT_NAME} RUNTIME_OUTPUT_NAME ${ARG_OUTPUT_NAME} ARCHIVE_OUTPUT_NAME ${LIB_OUTPUT_NAME}) ++ else() ++ set_target_properties(${name} ++ PROPERTIES ++ OUTPUT_NAME ${ARG_OUTPUT_NAME} ++ ) ++ endif() + endif() + + if(ARG_MODULE) diff --git a/mingw-w64-clang/0018-mingw-enable-static-libclang.patch b/mingw-w64-clang/0018-mingw-enable-static-libclang.patch new file mode 100644 index 0000000000..d7bbc249f9 --- /dev/null +++ b/mingw-w64-clang/0018-mingw-enable-static-libclang.patch @@ -0,0 +1,11 @@ +--- cfe-3.7.0.src/tools/libclang/CMakeLists.txt.orig 2015-12-25 10:56:22.521432100 +0300 ++++ cfe-3.7.0.src/tools/libclang/CMakeLists.txt 2015-12-25 12:18:32.484593900 +0300 +@@ -74,7 +74,7 @@ + set(ENABLE_SHARED SHARED) + endif() + +-if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32) ++if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND (NOT WIN32 OR MINGW)) + set(ENABLE_STATIC STATIC) + endif() + diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 20d44db4c0..99ff666e08 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -14,7 +14,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" ) pkgver=3.7.0 -pkgrel=8 +pkgrel=9 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -37,12 +37,14 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/lld-${pkgver}.src.tar.xz{,.sig} 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch 0002-use-DESTDIR-on-windows.patch + 0003-generate-proper-library-names-mingw.patch 0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch 0013-mingw-w64-dont-have-dl-library.patch 0014-use-DESTDIR-on-windows.patch 0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch 0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch 0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch + 0018-mingw-enable-static-libclang.patch 0031-COFF-add-the-mingw-alias-for-ImageBase.patch 0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch 0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch @@ -75,12 +77,14 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' 'SKIP' '0804146b32138d55c611336cc81e1783c29a8fab0fe62f248ba1ad7acc711c4d' 'bf22d86c0546b80cd7212b7e7c3e1b628f00ab3aa3b9cf73ad338bf628f42597' + '6a95ed671876a6de04799d15bf7485d628016bb4a95a6764217ad452d8eed0d8' '13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' 'f7bc109b07b5256a068dbe55097c24b46307aea442bec884d8ba455dc3ad18fd' '59e7afa5e74d186ad596c9a7625d6022fde0679faea9d1fd516fe0a622dbc01a' '47fbe90718742d1a3c0aee919b159241e616738447de3505a48a9f5886e5db96' + '0e45e76ee6d6658de52edb7b508a8bcc9f10ff0b295ff2a4e35577136a40c6a5' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' '96a6fcd81b8d5134b4273a2e413cd268430022533f1bfb44ed73503ee0ae7e87' '08260b1ee54fad7e0015d66b117937701d2ce4ca1814b012250de03a0dae9317' @@ -102,6 +106,7 @@ prepare() { cd "${srcdir}/llvm-${pkgver}.src" patch -p1 -i ${srcdir}/0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch patch -p1 -i ${srcdir}/0002-use-DESTDIR-on-windows.patch + patch -p1 -i ${srcdir}/0003-generate-proper-library-names-mingw.patch cd "${srcdir}/cfe-${pkgver}.src" patch -p1 -i ${srcdir}/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch @@ -110,6 +115,7 @@ prepare() { patch -p1 -i ${srcdir}/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch patch -p1 -i ${srcdir}/0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch patch -p1 -i ${srcdir}/0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch + patch -p1 -i ${srcdir}/0018-mingw-enable-static-libclang.patch cd "${srcdir}/lld-${pkgver}.src" # patch -p1 -i "${srcdir}"/0031-COFF-add-the-mingw-alias-for-ImageBase.patch @@ -195,6 +201,7 @@ build() { -DLLVM_ENABLE_FFI=ON \ -DLLVM_ENABLE_SPHINX=ON \ -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE -D_LIBCPP_HAS_NO_CONSTEXPR" \ + -DLIBCLANG_BUILD_STATIC=ON \ -DLIBCXX_ENABLE_SHARED=OFF \ -DLIBCXXABI_ENABLE_SHARED=OFF \ ../llvm-${pkgver}.src @@ -219,6 +226,7 @@ package_clang(){ cd build-${CARCH}/tools/clang make -j1 DESTDIR="$pkgdir" rebuild_cache install + cp -f lib/libclang.a ${pkgdir}$MINGW_PREFIX}/lib/ # .. Unmove cd "${srcdir}" From faefb84fd1fe86479a4226f6706ad61dbc840068 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Dec 2015 15:14:00 +0300 Subject: [PATCH 2006/2060] clang: Fix PKGBUILD --- mingw-w64-clang/PKGBUILD | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 99ff666e08..977bd8170e 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -135,6 +135,7 @@ prepare() { mv libcxx-${pkgver}.src llvm-${pkgver}.src/projects/libcxx # mv testsuite-${pkgver}.src llvm-${pkgver}.src/projects/test-suite + cd "${srcdir}/llvm-${pkgver}.src" # Fix docs installation directory @@ -226,7 +227,7 @@ package_clang(){ cd build-${CARCH}/tools/clang make -j1 DESTDIR="$pkgdir" rebuild_cache install - cp -f lib/libclang.a ${pkgdir}$MINGW_PREFIX}/lib/ + cp -f ${srcdir}\build-${CARCH}/lib/libclang.a ${pkgdir}$MINGW_PREFIX}/lib/ # .. Unmove cd "${srcdir}" @@ -248,6 +249,7 @@ package_compiler-rt(){ url="http://compiler-rt.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") + cd "${srcdir}"/build-${CARCH}/projects/compiler-rt make -j1 DESTDIR="${pkgdir}" rebuild_cache install } @@ -255,6 +257,7 @@ package_compiler-rt(){ package_libcxxabi(){ pkgdesc="C++ Standard Library Support (mingw-w64)" + cd "${srcdir}"/build-${CARCH}/projects/libcxxabi make -j1 DESTDIR="${pkgdir}" rebuild_cache install } @@ -270,6 +273,7 @@ package_lld(){ pkgdesc="Linker tools for LLVM (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") + cd "${srcdir}"/build-${CARCH}/tools/lld make -j1 DESTDIR="${pkgdir}" rebuild_cache install } From 3e76372497edd7bc58fd35c16cd68a3197fc1fc3 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Dec 2015 15:15:48 +0300 Subject: [PATCH 2007/2060] clang: Fix previous commit --- mingw-w64-clang/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 977bd8170e..f5970ae229 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -227,7 +227,7 @@ package_clang(){ cd build-${CARCH}/tools/clang make -j1 DESTDIR="$pkgdir" rebuild_cache install - cp -f ${srcdir}\build-${CARCH}/lib/libclang.a ${pkgdir}$MINGW_PREFIX}/lib/ + cp -f ${srcdir}/build-${CARCH}/lib/libclang.a ${pkgdir}$MINGW_PREFIX}/lib/ # .. Unmove cd "${srcdir}" From a1bae90c7ec68163cd2b3f6e90d31006304cf99c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Dec 2015 15:36:41 +0300 Subject: [PATCH 2008/2060] clang: Rewrite without moving sources --- mingw-w64-clang/PKGBUILD | 161 +++++++++++++-------------------------- 1 file changed, 52 insertions(+), 109 deletions(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index f5970ae229..0a551a219c 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -11,6 +11,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-libc++abi" "${MINGW_PACKAGE_PREFIX}-libc++" "${MINGW_PACKAGE_PREFIX}-lld" + #"${MINGW_PACKAGE_PREFIX}-lldb" "${MINGW_PACKAGE_PREFIX}-llvm" ) pkgver=3.7.0 @@ -145,33 +146,6 @@ prepare() { # Fix definition of LLVM_CMAKE_DIR in LLVMConfig.cmake sed -i '/@LLVM_CONFIG_CMAKE_DIR@/s:$(PROJ_cmake):$(PROJ_prefix)/share/llvm/cmake:' \ cmake/modules/Makefile - - #mv "${srcdir}/llvm-${pkgver}.src" "$srcdir/llvm-${pkgver}" - - # At the present, clang must reside inside the LLVM source code tree to build - # See http://llvm.org/bugs/show_bug.cgi?id=4840 - #[[ -d tools/clang ]] && rm -rf tools/clang - #mv "${srcdir}/cfe-${pkgver}.src" tools/clang - - #[[ -d projects/compiler-rt ]] && rm -rf projects/compiler-rt - #mv "${srcdir}/compiler-rt-${pkgver}.src" projects/compiler-rt - - # [ -d projects/test-suite ] && rm -rf projects/test-suite - # mv "${srcdir}/test-suite-${pkgver}.src" projects/test-suite - - #[[ -d tools/clang/tools/extra ]] && rm -rf tools/clang/tools/extra - #mv "${srcdir}/clang-tools-extra-${pkgver}.src" tools/clang/tools/extra - - #[ -d tools/lldb ] && rm -rf tools/lldb - #mv "${srcdir}/lldb-${pkgver}.src" tools/lldb - #sed -i -e "s|python-config|python2-config|" tools/lldb/lib/Makefile - #sed -i -e "s|python-config|python2-config|" tools/lldb/Makefile - #sed -i -e "s|/usr/bin/env python|&2|" tools/lldb/scripts/Python/build-swig-Python.sh - #sed -i -e "s|/usr/bin/env python|&2|" tools/lldb/scripts/Python/finish-swig-Python-LLDB.sh - - #[ -d projects/libcxx-${pkgver} ] && rm -rf projects/libcxx - #mv "${srcdir}/libcxx-${pkgver}.src" projects/libcxx - } build() { @@ -208,6 +182,15 @@ build() { ../llvm-${pkgver}.src make + + # Disable automatic installation of components that go into subpackages + cp tools/cmake_install.cmake tools/cmake_install.cmake.orig + cp tools/clang/tools/cmake_install.cmake tools/clang/tools/cmake_install.cmake.orig + cp projects/cmake_install.cmake projects/cmake_install.cmake.orig + + sed -i '/\(clang\|lld\|lldb\)\/cmake_install.cmake/d' tools/cmake_install.cmake + sed -i '/\(extra\|scan-build\|scan-view\)\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake + sed -i '/\(compiler-rt\|libcxxabi\|libcxx\)\/cmake_install.cmake/d' projects/cmake_install.cmake } check() { @@ -220,19 +203,12 @@ package_clang(){ pkgdesc="C language family frontend for LLVM" depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") - # Move .. - cd "${srcdir}" - mv llvm-${pkgver}.src/tools/clang/tools/extra clang-tools-extra-${pkgver} - mv build-${CARCH}/tools/clang/tools/extra clang-tools-extra-${CARCH} - - cd build-${CARCH}/tools/clang - make -j1 DESTDIR="$pkgdir" rebuild_cache install - cp -f ${srcdir}/build-${CARCH}/lib/libclang.a ${pkgdir}$MINGW_PREFIX}/lib/ - - # .. Unmove - cd "${srcdir}" - mv clang-tools-extra-${pkgver} llvm-${pkgver}.src/tools/clang/tools/extra - mv clang-tools-extra-${CARCH} build-${CARCH}/tools/clang/tools/extra + cd "${srcdir}"/llvm-${pkgver}.src + make -C ../build-${CARCH}/tools/clang DESTDIR="${pkgdir}" install + + # Not sure why this isn't getting installed .. + cp ../build-${CARCH}/bin/clang++.exe ${pkgdir}${MINGW_PREFIX}/bin/ + cp -f ${srcdir}/build-${CARCH}/lib/libclang.a ${pkgdir}${MINGW_PREFIX}/lib/ } package_clang-tools-extra() { @@ -240,8 +216,8 @@ package_clang-tools-extra() { url="http://clang.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}") - cd "${srcdir}"/build-${CARCH}/tools/clang/tools/extra - make -j1 DESTDIR="${pkgdir}" rebuild_cache install + cd "$srcdir"/llvm-${pkgver}.src + make -C ../build-${CARCH}/tools/clang/tools/extra -j1 DESTDIR="$pkgdir" install } package_compiler-rt(){ @@ -249,76 +225,57 @@ package_compiler-rt(){ url="http://compiler-rt.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") - - cd "${srcdir}"/build-${CARCH}/projects/compiler-rt - make -j1 DESTDIR="${pkgdir}" rebuild_cache install + cd "$srcdir"/llvm-${pkgver}.src + make -C ../build-${CARCH}/projects/compiler-rt DESTDIR="$pkgdir" install } package_libcxxabi(){ pkgdesc="C++ Standard Library Support (mingw-w64)" - - cd "${srcdir}"/build-${CARCH}/projects/libcxxabi - make -j1 DESTDIR="${pkgdir}" rebuild_cache install + cd "$srcdir"/llvm-${pkgver}.src + make -C ../build-${CARCH}/projects/libcxxabi -j1 DESTDIR="$pkgdir" install } package_libcxx(){ pkgdesc="C++ Standard Library (mingw-w64)" - cd "${srcdir}"/build-${CARCH}/projects/libcxx - make -j1 DESTDIR="${pkgdir}" rebuild_cache install + cd "$srcdir"/llvm-${pkgver}.src + make -C ../build-${CARCH}/projects/libcxx -j1 DESTDIR="$pkgdir" install } package_lld(){ pkgdesc="Linker tools for LLVM (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") - - cd "${srcdir}"/build-${CARCH}/tools/lld + cd "$srcdir"/llvm-${pkgver}.src make -j1 DESTDIR="${pkgdir}" rebuild_cache install } +package_lldb() { + pkgdesc="Next generation, high-performance debugger (mingw-w64)" + url="http://lldb.llvm.org/" + depends=('libedit' 'libxml2' 'python2') + + cd "$srcdir"/llvm-${pkgver}.src + + make -C ../build-${CARCH}/tools/lldb DESTDIR="$pkgdir" install + + # Compile Python scripts + python2 -m compileall "$pkgdir${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" + python2 -O -m compileall "$pkgdir${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" + + install -Dm644 tools/lldb/LICENSE.TXT "$pkgdir${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE" +} + package_llvm(){ pkgdesc="Low Level Virtual Machine (mingw-w64)" #depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "${MINGW_PACKAGE_PREFIX}-compiler-rt" install=llvm-${CARCH}.install - # Move .. - cd "${srcdir}" - mv llvm-${pkgver}.src/tools/clang clang-${pkgver}.src - mv build-${CARCH}/tools/clang clang-${CARCH} + cd ${srcdir}/llvm-${pkgver}.src + make -C ../build-${CARCH} DESTDIR="$pkgdir" install - mv llvm-${pkgver}.src/tools/lld lld-${pkgver}.src - mv build-${CARCH}/tools/lld lld-${CARCH} - - mv llvm-${pkgver}.src/projects/compiler-rt compiler-rt-${pkgver}.src - mv build-${CARCH}/projects/compiler-rt compiler-rt-${CARCH} - - mv llvm-${pkgver}.src/projects/libcxxabi libcxxabi-${pkgver}.src - mv build-${CARCH}/projects/libcxxabi libcxxabi-${CARCH} - - mv llvm-${pkgver}.src/projects/libcxx libcxx-${pkgver}.src - mv build-${CARCH}/projects/libcxx libcxx-${CARCH} - - cd build-${CARCH} - make -j1 DESTDIR="${pkgdir}" install - - # .. Unmove - cd "${srcdir}" - mv clang-${pkgver}.src llvm-${pkgver}.src/tools/clang - mv clang-${CARCH} build-${CARCH}/tools/clang - - mv lld-${pkgver}.src llvm-${pkgver}.src/tools/lld - mv lld-${CARCH} build-${CARCH}/tools/lld - - mv compiler-rt-${pkgver}.src llvm-${pkgver}.src/projects/compiler-rt - mv compiler-rt-${CARCH} build-${CARCH}/projects/compiler-rt - - mv libcxxabi-${pkgver}.src llvm-${pkgver}.src/projects/libcxxabi - mv libcxxabi-${CARCH} build-${CARCH}/projects/libcxxabi - - mv libcxx-${pkgver}.src llvm-${pkgver}.src/projects/libcxx - mv libcxx-${CARCH} build-${CARCH}/projects/libcxx + install -Dm644 LICENSE.TXT "${pkgdir}${MINGW_PREFIX}/share/licenses/llvm/LICENSE" # Install CMake stuff install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} @@ -335,32 +292,18 @@ package_clang-analyzer() { url="http://clang-analyzer.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}" "${MINGW_PACKAGE_PREFIX}-python2") - cd "${srcdir}/llvm-${pkgver}.src/tools/clang" - - install -d "${pkgdir}"${MINGW_PREFIX}/{bin,lib/clang-analyzer} - for _tool in scan-{build,view}; do - cp -r tools/${_tool} "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/ - ln -s "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/${_tool}/${_tool} "${pkgdir}"${MINGW_PREFIX}/bin/ - done - - # scan-build looks for clang within the same directory - install -d "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ - ln -s "${srcdir}"/build-${CARCH}/bin/clang.exe "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ - - # Relocate man page - install -d "${pkgdir}"${MINGW_PREFIX}/share/man/man1 - mv "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/scan-build.1 \ - "${pkgdir}"${MINGW_PREFIX}/share/man/man1/ + cd "${srcdir}/llvm-${pkgver}.src" + make -C ../build-${CARCH}/tools/clang/tools/scan-build -j1 DESTDIR="$pkgdir" install + make -C ../build-${CARCH}/tools/clang/tools/scan-view -j1 DESTDIR="$pkgdir" install # Use Python 2 - #sed -i \ - # -e 's|env python$|&2|' \ - # -e 's|/usr/bin/python$|&2|' \ - # "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-view/scan-view \ - # "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/set-xcode-analyzer + sed -i \ + -e 's|env python$|&2|' \ + -e 's|/usr/bin/python$|&2|' \ + "${pkgdir}"${MINGW_PREFIX}/bin/scan-view # Compile Python scripts - python2 -m compileall "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer + python2 -m compileall "${pkgdir}"${MINGW_PREFIX}/bin/clang-analyzer python2 -O -m compileall "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer install -Dm644 LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE } From 5f3fa3859d356b26729e23119b0786f6fe601921 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Dec 2015 22:56:16 +0300 Subject: [PATCH 2009/2060] clang-svn: Add patches to fix installing files for mingw. --- .../0002-use-DESTDIR-on-windows.patch | 22 ++ ...-generate-proper-library-names-mingw.patch | 32 +++ .../0014-dont-create-cl-mingw.patch | 21 ++ .../0018-mingw-enable-static-libclang.patch | 21 ++ mingw-w64-clang-svn/PKGBUILD | 226 +++++++++--------- 5 files changed, 215 insertions(+), 107 deletions(-) create mode 100644 mingw-w64-clang-svn/0002-use-DESTDIR-on-windows.patch create mode 100644 mingw-w64-clang-svn/0003-generate-proper-library-names-mingw.patch create mode 100644 mingw-w64-clang-svn/0014-dont-create-cl-mingw.patch create mode 100644 mingw-w64-clang-svn/0018-mingw-enable-static-libclang.patch diff --git a/mingw-w64-clang-svn/0002-use-DESTDIR-on-windows.patch b/mingw-w64-clang-svn/0002-use-DESTDIR-on-windows.patch new file mode 100644 index 0000000000..920300ab1d --- /dev/null +++ b/mingw-w64-clang-svn/0002-use-DESTDIR-on-windows.patch @@ -0,0 +1,22 @@ +From 12d299345b51c1686c1d82986de6de020970bb57 Mon Sep 17 00:00:00 2001 +From: Alexey Pavlov +Date: Sun, 25 Dec 2015 20:14:51 +0100 +Subject: [PATCH] Globally provide DESTDIR for all platforms + + +diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake +index 671a8ce..45c47e1 100644 +--- a/cmake/modules/LLVMInstallSymlink.cmake ++++ b/cmake/modules/LLVMInstallSymlink.cmake +@@ -3,9 +3,9 @@ + # See PR8397. + + function(install_symlink name target outdir) ++set(DESTDIR $ENV{DESTDIR}) + if(UNIX) + set(LINK_OR_COPY create_symlink) +- set(DESTDIR $ENV{DESTDIR}) + else() + set(LINK_OR_COPY copy) + endif() +2.4.5 diff --git a/mingw-w64-clang-svn/0003-generate-proper-library-names-mingw.patch b/mingw-w64-clang-svn/0003-generate-proper-library-names-mingw.patch new file mode 100644 index 0000000000..c3d92653c2 --- /dev/null +++ b/mingw-w64-clang-svn/0003-generate-proper-library-names-mingw.patch @@ -0,0 +1,32 @@ +From 12d299345b51c1686c1d82986de6de020970bb57 Mon Sep 17 00:00:00 2001 +From: Alexey Pavlov +Date: Sun, 25 Dec 2015 20:14:51 +0100 +Subject: [PATCH] Generate proper names for import/static libraries + + +diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake +index 671a8ce..45c47e1 100644 +--- a/cmake/modules/AddLLVM.cmake ++++ b/cmake/modules/AddLLVM.cmake +@@ -415,10 +415,15 @@ + endif() + add_link_opts( ${name} ) + if(ARG_OUTPUT_NAME) +- set_target_properties(${name} +- PROPERTIES +- OUTPUT_NAME ${ARG_OUTPUT_NAME} +- ) ++ if(MINGW) ++ string(REGEX REPLACE "^lib([A-Za-z]+)" "\\1" LIB_OUTPUT_NAME ${ARG_OUTPUT_NAME}) ++ set_target_properties(${name} PROPERTIES OUTPUT_NAME ${LIB_OUTPUT_NAME} RUNTIME_OUTPUT_NAME ${ARG_OUTPUT_NAME} ARCHIVE_OUTPUT_NAME ${LIB_OUTPUT_NAME}) ++ else() ++ set_target_properties(${name} ++ PROPERTIES ++ OUTPUT_NAME ${ARG_OUTPUT_NAME} ++ ) ++ endif() + endif() + + if(ARG_MODULE) +-- +2.4.5 diff --git a/mingw-w64-clang-svn/0014-dont-create-cl-mingw.patch b/mingw-w64-clang-svn/0014-dont-create-cl-mingw.patch new file mode 100644 index 0000000000..8506a2bc69 --- /dev/null +++ b/mingw-w64-clang-svn/0014-dont-create-cl-mingw.patch @@ -0,0 +1,21 @@ +From 12d299345b51c1686c1d82986de6de020970bb57 Mon Sep 17 00:00:00 2001 +From: Alexey Pavlov +Date: Sun, 25 Dec 2015 20:14:51 +0100 +Subject: [PATCH] Don't create cl executable for mingw + + +diff --git a/tools/driver/CMakeLists.txt b/tools/driver/CMakeLists.txt +index 671a8ce..45c47e1 100644 +--- a/tools/driver/CMakeLists.txt ++++ b/tools/driver/CMakeLists.txt +@@ -66,7 +66,7 @@ + if(NOT CLANG_LINKS_TO_CREATE) + set(CLANG_LINKS_TO_CREATE clang++ clang-cl) + +- if (WIN32) ++ if (MSVC) + list(APPEND CLANG_LINKS_TO_CREATE ../msbuild-bin/cl) + endif() + endif() +-- +2.4.5 diff --git a/mingw-w64-clang-svn/0018-mingw-enable-static-libclang.patch b/mingw-w64-clang-svn/0018-mingw-enable-static-libclang.patch new file mode 100644 index 0000000000..9a2cb0354c --- /dev/null +++ b/mingw-w64-clang-svn/0018-mingw-enable-static-libclang.patch @@ -0,0 +1,21 @@ +From 12d299345b51c1686c1d82986de6de020970bb57 Mon Sep 17 00:00:00 2001 +From: Alexey Pavlov +Date: Sun, 25 Dec 2015 20:14:51 +0100 +Subject: [PATCH] Allow build static clang library for mingw + + +diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt +index 671a8ce..45c47e1 100644 +--- a/tools/libclang/CMakeLists.txt ++++ b/tools/libclang/CMakeLists.txt +@@ -74,7 +74,7 @@ + set(ENABLE_SHARED SHARED) + endif() + +-if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32) ++if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND (NOT WIN32 OR MINGW)) + set(ENABLE_STATIC STATIC) + endif() + +-- +2.4.5 diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index 5b5eec1942..e21605469d 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -21,20 +21,18 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-lld-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn" ) -pkgver=60404.0153e10 -pkgrel=1 +pkgver=60424.b883875 +pkgrel=2 pkgdesc="C language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" license=("custom:University of Illinois/NCSA Open Source License") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python3-sphinx" "python2" - "tar" - "subversion" - "git" - "cmake") + "git") depends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs') # 'debug' '!strip') source=("llvm"::"git+http://llvm.org/git/llvm.git" @@ -46,6 +44,10 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" "libcxxabi"::"git+http://llvm.org/git/libcxxabi.git" "libcxx"::"git+http://llvm.org/git/libcxx.git" 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch + 0002-use-DESTDIR-on-windows.patch + 0003-generate-proper-library-names-mingw.patch + 0014-dont-create-cl-mingw.patch + 0018-mingw-enable-static-libclang.patch 0041-libcxx-add-support-for-mingw-w64.patch) # Some patch notes :) @@ -64,6 +66,10 @@ md5sums=('SKIP' 'SKIP' 'SKIP' 'a384d4607d9dcdfdcac6912ac413ec58' + '4d696d298d70db32338659ce2cfa505f' + '9b56e0d949c72be49aa059fd626923e2' + 'a65a06de9c455152b2bc9929dc1b089d' + '683388837c02bd231df8f58ea2db82fc' '6b0b769d999dc884e59d388c5a7f3866') pkgver_internal() { @@ -83,6 +89,8 @@ pkgver() { prepare() { cd "${srcdir}"/llvm git am "${srcdir}"/0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch + git am "${srcdir}"/0002-use-DESTDIR-on-windows.patch + git am "${srcdir}"/0003-generate-proper-library-names-mingw.patch # Fix docs installation directory sed -i 's:$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \ @@ -101,24 +109,26 @@ prepare() { git am "${srcdir}"/0041-libcxx-add-support-for-mingw-w64.patch cd "${srcdir}"/clang + git am "${srcdir}"/0014-dont-create-cl-mingw.patch + git am "${srcdir}"/0018-mingw-enable-static-libclang.patch cd "${srcdir}"/llvm # At the present, clang must reside inside the LLVM source code tree to build # See http://llvm.org/bugs/show_bug.cgi?id=4840 - mv "$srcdir/clang" tools/clang - mv "$srcdir/clang-tools-extra" tools/clang/tools/extra - mv "$srcdir/lld" tools/lld -# mv "$srcdir/lldb" tools/lldb - mv "$srcdir/compiler-rt" projects/compiler-rt - mv "$srcdir/libcxxabi" projects/libcxxabi - mv "$srcdir/libcxx" projects/libcxx -# mv "$srcdir/testsuite" projects/test-suite + mv "${srcdir}/clang" tools/clang + mv "${srcdir}/clang-tools-extra" tools/clang/tools/extra + mv "${srcdir}/lld" tools/lld +# mv "${srcdir}/lldb" tools/lldb + mv "${srcdir}/compiler-rt" projects/compiler-rt + mv "${srcdir}/libcxxabi" projects/libcxxabi + mv "${srcdir}/libcxx" projects/libcxx +# mv "${srcdir}/testsuite" projects/test-suite mkdir build-${CARCH} } build() { - cd "$srcdir" + cd "${srcdir}" [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} mkdir build-${CARCH} && cd build-${CARCH} @@ -157,6 +167,7 @@ build() { -DLLVM_ENABLE_FFI=ON \ -DLLVM_ENABLE_SPHINX=ON \ -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE -D_LIBCPP_HAS_NO_CONSTEXPR" \ + -DLIBCLANG_BUILD_STATIC=ON \ -DLIBCXX_ENABLE_SHARED=OFF \ -DLIBCXXABI_ENABLE_SHARED=OFF \ "${extra_config[@]}" \ @@ -180,89 +191,6 @@ build() { # make check || true #} -package_llvm-svn() { - pkgdesc="Low Level Virtual Machine (mingw-w64)" - #depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "compiler-rt" - provides=("${MINGW_PACKAGE_PREFIX}-llvm") - conflicts=("${MINGW_PACKAGE_PREFIX}-llvm") - - pkgver=$(pkgver_internal "${srcdir}"/llvm) - - cd "${srcdir}"/llvm - - make -C ../build-${CARCH} DESTDIR="$pkgdir" install - - install -Dm644 LICENSE.TXT "$pkgdir${MINGW_PREFIX}/share/licenses/llvm/LICENSE" - - # Install CMake stuff - install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} - install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/modules/ - install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/platforms/ -} - -package_compiler-rt-svn() { - pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)" - url="http://compiler-rt.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") - provides=("${MINGW_PACKAGE_PREFIX}-compiler-rt") - - conflicts=("${MINGW_PACKAGE_PREFIX}-compiler-rt") - pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/compiler-rt) - - cd "$srcdir/llvm" - make -C ../build-${CARCH}/projects/compiler-rt DESTDIR="$pkgdir" install - } - -package_libcxxabi-svn() { - pkgdesc="C++ Standard Library Support (mingw-w64)" - url="http://libcxxabi.llvm.org/" - provides=("${MINGW_PACKAGE_PREFIX}-libc++abi") - conflicts=("${MINGW_PACKAGE_PREFIX}-libc++abi") - pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxxabi) - - cd "$srcdir/llvm" - make -C ../build-${CARCH}/projects/libcxxabi -j1 DESTDIR="$pkgdir" install -} - -package_libcxx-svn() { - pkgdesc="C++ Standard Library (mingw-w64)" - url="http://libcxx.llvm.org/" - provides=("${MINGW_PACKAGE_PREFIX}-libc++") - conflicts=("${MINGW_PACKAGE_PREFIX}-libc++") - pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxx) - - cd "$srcdir/llvm" - make -C ../build-${CARCH}/projects/libcxx -j1 DESTDIR="$pkgdir" install -} - -package_lldb-svn() { - pkgdesc="Next generation, high-performance debugger (mingw-w64)" - url="http://lldb.llvm.org/" - depends=('libedit' 'libxml2' 'python2') - - cd "$srcdir/llvm-$pkgver.src" - - make -C ../build-${CARCH}/tools/lldb DESTDIR="$pkgdir" install - - # Compile Python scripts - python2 -m compileall "$pkgdir${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" - python2 -O -m compileall "$pkgdir${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" - - install -Dm644 tools/lldb/LICENSE.TXT "$pkgdir${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE" -} - -package_lld-svn() { - pkgdesc="Linker tools for LLVM (mingw-w64)" - url="http://lld.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") - provides=("${MINGW_PACKAGE_PREFIX}-lld") - conflicts=("${MINGW_PACKAGE_PREFIX}-lld") - pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/lld) - - cd "${srcdir}/llvm" - make -C ../build-${CARCH}/tools/lld -j1 DESTDIR="$pkgdir" install -} - package_clang-svn() { pkgdesc="C language family frontend for LLVM (mingw-w64)" url="http://clang.llvm.org/" @@ -271,11 +199,11 @@ package_clang-svn() { conflicts=("${MINGW_PACKAGE_PREFIX}-clang") pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang) - cd "$srcdir/llvm" - make -C ../build-${CARCH}/tools/clang DESTDIR="$pkgdir" install + cd "${srcdir}/llvm" + make -C ../build-${CARCH}/tools/clang DESTDIR="${pkgdir}" install - # Not sure why this isn't getting installed .. - cp ../build-${CARCH}/bin/clang++.exe $pkgdir${MINGW_PREFIX}/bin/ + # Install static clang library .. + cp ../build-${CARCH}/lib/libclang.a ${pkgdir}${MINGW_PREFIX}/lib/ } package_clang-analyzer-svn() { @@ -287,8 +215,8 @@ package_clang-analyzer-svn() { pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang) cd "${srcdir}"/llvm - make -C ../build-${CARCH}/tools/clang/tools/scan-build -j1 DESTDIR="$pkgdir" install - make -C ../build-${CARCH}/tools/clang/tools/scan-view -j1 DESTDIR="$pkgdir" install + make -C ../build-${CARCH}/tools/clang/tools/scan-build -j1 DESTDIR="${pkgdir}" install + make -C ../build-${CARCH}/tools/clang/tools/scan-view -j1 DESTDIR="${pkgdir}" install # Use Python 2 sed -i \ @@ -310,10 +238,94 @@ package_clang-tools-extra-svn() { conflicts=("${MINGW_PACKAGE_PREFIX}-clang-tools-extra") pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang/tools/extra) - cd "$srcdir"/llvm - make -C ../build-${CARCH}/tools/clang/tools/extra -j1 DESTDIR="$pkgdir" install + cd "${srcdir}"/llvm + make -C ../build-${CARCH}/tools/clang/tools/extra -j1 DESTDIR="${pkgdir}" install } +package_llvm-svn() { + pkgdesc="Low Level Virtual Machine (mingw-w64)" + #depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "compiler-rt" + provides=("${MINGW_PACKAGE_PREFIX}-llvm") + conflicts=("${MINGW_PACKAGE_PREFIX}-llvm") + + pkgver=$(pkgver_internal "${srcdir}"/llvm) + + cd "${srcdir}"/llvm + + make -C ../build-${CARCH} DESTDIR="${pkgdir}" install + + install -Dm644 LICENSE.TXT "${pkgdir}${MINGW_PREFIX}/share/licenses/llvm/LICENSE" + + # Install CMake stuff + install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} + install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/modules/ + install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/platforms/ +} + +package_compiler-rt-svn() { + pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)" + url="http://compiler-rt.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") + provides=("${MINGW_PACKAGE_PREFIX}-compiler-rt") + + conflicts=("${MINGW_PACKAGE_PREFIX}-compiler-rt") + pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/compiler-rt) + + cd "${srcdir}/llvm" + make -C ../build-${CARCH}/projects/compiler-rt DESTDIR="${pkgdir}" install + } + +package_libcxxabi-svn() { + pkgdesc="C++ Standard Library Support (mingw-w64)" + url="http://libcxxabi.llvm.org/" + provides=("${MINGW_PACKAGE_PREFIX}-libc++abi") + conflicts=("${MINGW_PACKAGE_PREFIX}-libc++abi") + pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxxabi) + + cd "${srcdir}/llvm" + make -C ../build-${CARCH}/projects/libcxxabi -j1 DESTDIR="${pkgdir}" install +} + +package_libcxx-svn() { + pkgdesc="C++ Standard Library (mingw-w64)" + url="http://libcxx.llvm.org/" + provides=("${MINGW_PACKAGE_PREFIX}-libc++") + conflicts=("${MINGW_PACKAGE_PREFIX}-libc++") + pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxx) + + cd "${srcdir}/llvm" + make -C ../build-${CARCH}/projects/libcxx -j1 DESTDIR="${pkgdir}" install +} + +package_lldb-svn() { + pkgdesc="Next generation, high-performance debugger (mingw-w64)" + url="http://lldb.llvm.org/" + depends=('libedit' 'libxml2' 'python2') + + cd "${srcdir}/llvm-$pkgver.src" + + make -C ../build-${CARCH}/tools/lldb DESTDIR="${pkgdir}" install + + # Compile Python scripts + python2 -m compileall "${pkgdir}${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" + python2 -O -m compileall "${pkgdir}${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" + + install -Dm644 tools/lldb/LICENSE.TXT "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE" +} + +package_lld-svn() { + pkgdesc="Linker tools for LLVM (mingw-w64)" + url="http://lld.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") + provides=("${MINGW_PACKAGE_PREFIX}-lld") + conflicts=("${MINGW_PACKAGE_PREFIX}-lld") + pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/lld) + + cd "${srcdir}/llvm" + make -C ../build-${CARCH}/tools/lld -j1 DESTDIR="${pkgdir}" install +} + +# Wrappers package_mingw-w64-i686-clang-svn(){ package_clang-svn } From f2575c7935fb366adfc5f3edefc13222625a430f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sat, 26 Dec 2015 08:26:44 +0300 Subject: [PATCH 2010/2060] clang: Fix PKGBUILD --- mingw-w64-clang/PKGBUILD | 63 ++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 25 deletions(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 0a551a219c..d95193c503 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -206,9 +206,43 @@ package_clang(){ cd "${srcdir}"/llvm-${pkgver}.src make -C ../build-${CARCH}/tools/clang DESTDIR="${pkgdir}" install - # Not sure why this isn't getting installed .. - cp ../build-${CARCH}/bin/clang++.exe ${pkgdir}${MINGW_PREFIX}/bin/ - cp -f ${srcdir}/build-${CARCH}/lib/libclang.a ${pkgdir}${MINGW_PREFIX}/lib/ + cp -f ../build-${CARCH}/lib/libclang.a ${pkgdir}${MINGW_PREFIX}/lib/ +} + +package_clang-analyzer() { + pkgdesc="A source code analysis framework (mingw-w64)" + url="http://clang-analyzer.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}" "${MINGW_PACKAGE_PREFIX}-python2") + + #cd "${srcdir}/llvm-${pkgver}.src" + #make -C ../build-${CARCH}/tools/clang/tools/scan-build -j1 DESTDIR="$pkgdir" install + #make -C ../build-${CARCH}/tools/clang/tools/scan-view -j1 DESTDIR="$pkgdir" install + cd "${srcdir}/llvm-${pkgver}.src/tools/clang" + install -d "${pkgdir}"${MINGW_PREFIX}/{bin,lib/clang-analyzer} + for _tool in scan-{build,view}; do + cp -r tools/${_tool} "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/ + ln -s "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/${_tool}/${_tool} "${pkgdir}"${MINGW_PREFIX}/bin/ + done + + # scan-build looks for clang within the same directory + install -d "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ + ln -s "${srcdir}"/build-${CARCH}/bin/clang.exe "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ + + # Relocate man page + install -d "${pkgdir}"${MINGW_PREFIX}/share/man/man1 + mv "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/scan-build.1 \ + "${pkgdir}"${MINGW_PREFIX}/share/man/man1/ + + # Use Python 2 + sed -i \ + -e 's|env python$|&2|' \ + -e 's|/usr/bin/python$|&2|' \ + "${pkgdir}"${MINGW_PREFIX}/bin/scan-view + + # Compile Python scripts + #python2 -m compileall "${pkgdir}"${MINGW_PREFIX}/bin/clang-analyzer + python2 -O -m compileall "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer + install -Dm644 LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE } package_clang-tools-extra() { @@ -248,7 +282,7 @@ package_lld(){ depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") cd "$srcdir"/llvm-${pkgver}.src - make -j1 DESTDIR="${pkgdir}" rebuild_cache install + make -C ../build-${CARCH}/tools/lld -j1 DESTDIR="${pkgdir}" install } package_lldb() { @@ -287,27 +321,6 @@ package_llvm(){ install -Dm755 "${srcdir}"/build-${CARCH}/bin/FileCheck.exe "${pkgdir}${MINGW_PREFIX}/bin/FileCheck.exe" } -package_clang-analyzer() { - pkgdesc="A source code analysis framework (mingw-w64)" - url="http://clang-analyzer.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}" "${MINGW_PACKAGE_PREFIX}-python2") - - cd "${srcdir}/llvm-${pkgver}.src" - make -C ../build-${CARCH}/tools/clang/tools/scan-build -j1 DESTDIR="$pkgdir" install - make -C ../build-${CARCH}/tools/clang/tools/scan-view -j1 DESTDIR="$pkgdir" install - - # Use Python 2 - sed -i \ - -e 's|env python$|&2|' \ - -e 's|/usr/bin/python$|&2|' \ - "${pkgdir}"${MINGW_PREFIX}/bin/scan-view - - # Compile Python scripts - python2 -m compileall "${pkgdir}"${MINGW_PREFIX}/bin/clang-analyzer - python2 -O -m compileall "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer - install -Dm644 LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE -} - package_mingw-w64-i686-clang(){ package_clang } From ba94ed9b4f5e8d8383abadc830185ecd92699e5c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sat, 26 Dec 2015 11:00:40 +0300 Subject: [PATCH 2011/2060] codelite-git: Update build. More fixes to sqlite3 finding --- mingw-w64-codelite-git/PKGBUILD | 11 +- .../fix-sqlite3-find-and-build.patch | 105 ++++++++++++++---- 2 files changed, 89 insertions(+), 27 deletions(-) diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index f862ee870e..dd98d7a875 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=9.0.305.ge7e7ce9 +pkgver=9.0.308.gcc42a81 pkgrel=1 pkgdesc="Open-source, cross platform IDE for the C/C++ programming languages (mingw-w64)" arch=('any') @@ -35,7 +35,7 @@ md5sums=('SKIP' 'b18e62316a10dac7c274e2faccd86180' 'f7ce106c3565835c019fbcda0f9bea56' '1ae47bc9b913d425f98533c237b45ceb' - '2eacbaa07493512a66f8f2e434433a9f' + 'e6ad6fec1b50070f68ea65bab4ec93a2' '84bc65336879f9ca6d3dd9eed21b8215') pkgver() { @@ -53,7 +53,7 @@ prepare() { patch -p1 -i ${srcdir}/clStandardPaths-missing-member.patch } -build() { +package() { local -a extra_config if check_option "debug" "y"; then @@ -63,7 +63,6 @@ build() { fi cd ${srcdir}/${_realname} - #MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;-DPREFIX=" ${MINGW_PREFIX}/bin/cmake \ -Wno-dev \ -G"MSYS Makefiles" \ @@ -76,10 +75,6 @@ build() { . make # -j1 VERBOSE=1 -} - -package() { - cd "${srcdir}/${_realname}" make install rm -f ${pkgdir}${MINGW_PREFIX}/lib/codelite/*.a diff --git a/mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch b/mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch index 9f30f9877a..8cc7cf418e 100644 --- a/mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch +++ b/mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch @@ -24,37 +24,104 @@ add_dependencies(wxshapeframework wxsqlite3) --- codelite/cmake/Modules/FindSqlite3.cmake.orig 2015-12-24 15:02:52.639852500 +0300 +++ codelite/cmake/Modules/FindSqlite3.cmake 2015-12-24 15:07:28.933929700 +0300 -@@ -1,18 +1,21 @@ +@@ -1,27 +1,76 @@ -if(UNIX AND NOT APPLE) ++# Try to find Sqlite3 ++# Once done this will define ++# ++# SQLITE3_FOUND - system has Sqlite3 ++# SQLITE3_INCLUDE_DIRS - the Sqlite3 include directory ++# SQLITE3_LIBRARIES - Link these to use Sqlite3 ++# SQLITE3_DEFINITIONS - Compiler switches required for using Sqlite3 ++# ++ +if(NOT APPLE) ++ if (SQLITE3_LIBRARIES AND SQLITE3_INCLUDE_DIRS) ++ # in cache already ++ set(SQLITE3_FOUND TRUE) ++ else() ++ # use pkg-config to get the directories and then use these values ++ # in the FIND_PATH() and FIND_LIBRARY() calls ++ find_package(PkgConfig) ++ if(PKG_CONFIG_FOUND) ++ pkg_check_modules(_SQLITE3 sqlite3) ++ endif() ++ find_path(SQLITE3_INCLUDE_DIR ++ NAMES ++ sqlite3.h ++ HINTS ++ ${_SQLITE3_INCLUDE_DIRS} ++ $ENV{SQLITE3DIR}/include ++ /usr/include ++ /usr/include/sqlite3 ++ /usr/local/include ++ /opt/local/include ++ ) ++ find_library(SQLITE3_LIBRARY - NAMES libsqlite3.so -+ NAMES libsqlite3.so sqlite3 - HINTS +- HINTS - /usr/local/lib - /usr/lib - /usr/lib/x86_64-linux-gnu - /usr/lib/i386-linux-gnu -+ ENV SQLITE3DIR -+ PATH_SUFFIXES lib lib/x86_64-linux-gnu lib/i386-linux-gnu -+ PATHS -+ /usr/local -+ /usr - ) - - find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h - HINTS +- ) +- +- find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h +- HINTS - /usr/local/include - /usr/include - /usr/include/sqlite3 -+ ENV SQLITE3DIR -+ PATH_SUFFIXES include/sqlite3 include -+ PATHS -+ /usr/local -+ /usr - ) - if (SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARY) +- ) +- if (SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARY) ++ NAMES ++ sqlite3 ++ HINTS ++ ${_SQLITE3_LIBRARY_DIRS} ++ $ENV{SQLITE3DIR}/lib ++ /usr/lib ++ /usr/lib/x86_64-linux-gnu ++ /usr/lib/i386-linux-gnu ++ /usr/local/lib ++ /opt/local/lib ++ ) ++ ++ if(SQLITE3_LIBRARY) ++ set(SQLITE3_FOUND TRUE) ++ endif() ++ ++ set(SQLITE3_INCLUDE_DIRS ++ ${SQLITE3_INCLUDE_DIR} ++ ) ++ ++ if(SQLITE3_FOUND) ++ set(SQLITE3_LIBRARIES ++ ${SQLITE3_LIBRARIES} ++ ${SQLITE3_LIBRARY} ++ ) ++ endif() ++ ++ if(SQLITE3_INCLUDE_DIRS AND SQLITE3_LIBRARIES) set(SQLITE3_FOUND TRUE) + endif() +- +- if(NOT SQLITE3_FOUND) +- message(FATAL_ERROR " **** Could not find Sqlite3. Please install libsqlite3-dev package **** ") ++ ++ if(SQLITE3_FOUND) ++ message("-- SQLITE3_INCLUDE_DIR: " ${SQLITE3_INCLUDE_DIR}) ++ message("-- SQLITE3_LIBRARY: " ${SQLITE3_LIBRARY}) + else() +- message("-- SQLITE3_INCLUDE_DIR: " ${SQLITE3_INCLUDE_DIR}) +- message("-- SQLITE3_LIBRARY: " ${SQLITE3_LIBRARY}) ++ message(-- "Could not find system Sqlite3. Using bundled sqlite3") + endif() ++ ++ # show the SQLITE3_INCLUDE_DIRS and SQLITE3_LIBRARIES variables only in the advanced view ++ mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES) ++ ++ endif () + endif() --- codelite/sdk/databaselayer/CMakeLists.txt.orig 2015-12-24 15:15:22.810929700 +0300 +++ codelite/sdk/databaselayer/CMakeLists.txt 2015-12-24 15:16:23.103929700 +0300 @@ -12,7 +12,7 @@ From 5f4a3ccc31a4c7c450cd1d0fdcd240ad791e9c72 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 27 Dec 2015 20:16:50 +0300 Subject: [PATCH 2012/2060] isl: Update to 0.15 --- mingw-w64-isl/PKGBUILD | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mingw-w64-isl/PKGBUILD b/mingw-w64-isl/PKGBUILD index 9bea1e97ce..fda93ef6f9 100644 --- a/mingw-w64-isl/PKGBUILD +++ b/mingw-w64-isl/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov _realname=isl +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=0.14.1 -pkgrel=2 -pkgdesc="Library for manipulating sets and relations of integer points bounded by linear constraints" +pkgver=0.15 +pkgrel=1 +pkgdesc="Library for manipulating sets and relations of integer points bounded by linear constraints (mingw-w64)" arch=('any') url="http://isl.gforge.inria.fr/" #depends=("${MINGW_PACKAGE_PREFIX}-gmp") @@ -13,7 +14,7 @@ options=('staticlibs') license=('MIT') source=("http://isl.gforge.inria.fr/${_realname}-${pkgver}.tar.xz" isl-0.14.1-no-undefined.patch) -md5sums=('94fcd11e0b1c79250ae341affb1845ea' +md5sums=('626d0452f3c9a36aeb3c225ff5e7c642' '38c67a10e197acb83217be17075070f9') prepare() { From 37ad969c5283e2419337397c1576713238ea98d9 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 27 Dec 2015 20:17:05 +0300 Subject: [PATCH 2013/2060] gcc: Update to 5.3.0 --- .../0001-gcc-fortran-ChangeLog.patch | 151 ------------------ mingw-w64-gcc/PKGBUILD | 11 +- mingw-w64-gcc/pr66035.patch | 48 ------ 3 files changed, 3 insertions(+), 207 deletions(-) delete mode 100644 mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch delete mode 100644 mingw-w64-gcc/pr66035.patch diff --git a/mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch b/mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch deleted file mode 100644 index 5ddcac1500..0000000000 --- a/mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch +++ /dev/null @@ -1,151 +0,0 @@ -From 635e1b2f08c3c5fced849e45c59453be7b131e88 Mon Sep 17 00:00:00 2001 -From: vehre -Date: Fri, 17 Jul 2015 10:16:21 +0000 -Subject: [PATCH] gcc/fortran/ChangeLog: - -2015-07-17 Andre Vehreschild - - PR fortran/66035 - * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment): - Compute the size to allocate for class and derived type objects - correclty. - (gfc_trans_subcomponent_assign): Only allocate memory for a - component when the object to assign is not an allocatable class - object (the memory is already present for allocatable class objects). - Furthermore use copy_class_to_class for assigning the rhs to the - component (may happen for dummy class objects on the rhs). - - -gcc/testsuite/ChangeLog: - -2015-07-17 Andre Vehreschild - - PR fortran/66035 - * gfortran.dg/structure_constructor_13.f03: New test. - - - - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225928 138bc75d-0d04-0410-961f-82ee72b054a4 ---- - gcc/fortran/ChangeLog | 12 ++++++++++ - gcc/fortran/trans-expr.c | 26 +++++++++++++++++++- - gcc/testsuite/ChangeLog | 5 ++++ - .../gfortran.dg/structure_constructor_13.f03 | 28 ++++++++++++++++++++++ - 4 files changed, 70 insertions(+), 1 deletion(-) - create mode 100644 gcc/testsuite/gfortran.dg/structure_constructor_13.f03 - -diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog -index af81bd5..33b8cbb 100644 ---- a/gcc/fortran/ChangeLog -+++ b/gcc/fortran/ChangeLog -@@ -1,3 +1,15 @@ -+2015-07-17 Andre Vehreschild -+ -+ PR fortran/66035 -+ * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment): -+ Compute the size to allocate for class and derived type objects -+ correclty. -+ (gfc_trans_subcomponent_assign): Only allocate memory for a -+ component when the object to assign is not an allocatable class -+ object (the memory is already present for allocatable class objects). -+ Furthermore use copy_class_to_class for assigning the rhs to the -+ component (may happen for dummy class objects on the rhs). -+ - 2015-07-17 Mikael Morin - Dominique d'Humieres - -diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c -index caafe76..89b4dfd 100644 ---- a/gcc/fortran/trans-expr.c -+++ b/gcc/fortran/trans-expr.c -@@ -6969,6 +6969,29 @@ alloc_scalar_allocatable_for_subcomponent_assignment (stmtblock_t *block, - TREE_TYPE (tmp), tmp, - fold_convert (TREE_TYPE (tmp), size)); - } -+ else if (cm->ts.type == BT_CLASS) -+ { -+ gcc_assert (expr2->ts.type == BT_CLASS || expr2->ts.type == BT_DERIVED); -+ if (expr2->ts.type == BT_DERIVED) -+ { -+ tmp = gfc_get_symbol_decl (expr2->ts.u.derived); -+ size = TYPE_SIZE_UNIT (tmp); -+ } -+ else -+ { -+ gfc_expr *e2vtab; -+ gfc_se se; -+ e2vtab = gfc_find_and_cut_at_last_class_ref (expr2); -+ gfc_add_vptr_component (e2vtab); -+ gfc_add_size_component (e2vtab); -+ gfc_init_se (&se, NULL); -+ gfc_conv_expr (&se, e2vtab); -+ gfc_add_block_to_block (block, &se.pre); -+ size = fold_convert (size_type_node, se.expr); -+ gfc_free_expr (e2vtab); -+ } -+ size_in_bytes = size; -+ } - else - { - /* Otherwise use the length in bytes of the rhs. */ -@@ -7096,7 +7119,8 @@ gfc_trans_subcomponent_assign (tree dest, gfc_component * cm, gfc_expr * expr, - gfc_add_expr_to_block (&block, tmp); - } - else if (init && (cm->attr.allocatable -- || (cm->ts.type == BT_CLASS && CLASS_DATA (cm)->attr.allocatable))) -+ || (cm->ts.type == BT_CLASS && CLASS_DATA (cm)->attr.allocatable -+ && expr->ts.type != BT_CLASS))) - { - /* Take care about non-array allocatable components here. The alloc_* - routine below is motivated by the alloc_scalar_allocatable_for_ -diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog -index ccba51f..1311bf2 100644 ---- a/gcc/testsuite/ChangeLog -+++ b/gcc/testsuite/ChangeLog -@@ -1,3 +1,8 @@ -+2015-07-17 Andre Vehreschild -+ -+ PR fortran/66035 -+ * gfortran.dg/structure_constructor_13.f03: New test. -+ - 2015-07-17 Mikael Morin - - PR fortran/61831 -diff --git a/gcc/testsuite/gfortran.dg/structure_constructor_13.f03 b/gcc/testsuite/gfortran.dg/structure_constructor_13.f03 -new file mode 100644 -index 0000000..c74e325 ---- /dev/null -+++ b/gcc/testsuite/gfortran.dg/structure_constructor_13.f03 -@@ -0,0 +1,28 @@ -+! { dg-do run } -+! -+! Contributed by Melven Roehrig-Zoellner -+! PR fortran/66035 -+ -+program test_pr66035 -+ type t -+ end type t -+ type w -+ class(t), allocatable :: c -+ end type w -+ -+ type(t) :: o -+ -+ call test(o) -+contains -+ subroutine test(o) -+ class(t), intent(inout) :: o -+ type(w), dimension(:), allocatable :: list -+ -+ select type (o) -+ class is (t) -+ list = [w(o)] ! This caused an ICE -+ class default -+ call abort() -+ end select -+ end subroutine -+end program --- -2.5.0 - diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 8c9cb2f236..98fdcf9dc1 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -11,8 +11,8 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc") -pkgver=5.2.0 -pkgrel=4 +pkgver=5.3.0 +pkgrel=1 pkgdesc="GCC for the MinGW-w64" arch=('any') url="http://gcc.gnu.org" @@ -56,9 +56,8 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- 'port-sanitizer-to-mingw.all.patch' 'enable-shared-gnat-implib.mingw.patch' '955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch' - 'pr66035.patch' '0022-clone_function_name_1-Retain-any-stdcall-suffix.patch') -md5sums=('a51bcfeb3da7dd4c623e27207ed43467' +md5sums=('c9616fd448f980259c31de613e575719' '41635a40493dc79416db6627b2826b21' 'f6b5fb08ff06a7d60ee3280e14240bb2' '71cdb550528efcf2a5c9112464bfbabc' @@ -80,7 +79,6 @@ md5sums=('a51bcfeb3da7dd4c623e27207ed43467' '52592c1d7c6031ff601ecfdf3942b940' '62cc23251ae746b5f39c2c7aef121e8f' '393ce6bf124d5b1ca0e38cbe0fc6eb51' - '5b980076cd5fcbc3aff6014f306282dd' '6d0a782eef0077ddbffd130f806529fa') _threads="posix" @@ -146,9 +144,6 @@ prepare() { patch -p1 -i ${srcdir}/955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66035 - patch -p1 -i ${srcdir}/pr66035.patch - patch -p1 -i ${srcdir}/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch #if check_option "debug" "y"; then diff --git a/mingw-w64-gcc/pr66035.patch b/mingw-w64-gcc/pr66035.patch deleted file mode 100644 index c51822ca1f..0000000000 --- a/mingw-w64-gcc/pr66035.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- a/gcc/fortran/trans-expr.c -+++ a/gcc/fortran/trans-expr.c -@@ -6897,6 +6897,30 @@ alloc_scalar_allocatable_for_subcomponent_assignment (stmtblock_t *block, - TREE_TYPE (tmp), tmp, - fold_convert (TREE_TYPE (tmp), size)); - } -+ else if (cm->ts.type == BT_CLASS) -+ { -+ gcc_assert (expr2->ts.type == BT_CLASS || expr2->ts.type == BT_DERIVED); -+ if (expr2->ts.type == BT_DERIVED) -+ { -+ tmp = gfc_get_symbol_decl (gfc_find_vtab (&expr2->ts)); -+ tmp = gfc_build_addr_expr (NULL_TREE, tmp); -+ size = fold_convert (size_type_node, gfc_vptr_size_get (tmp)); -+ } -+ else -+ { -+ gfc_expr *e2vtab; -+ gfc_se se; -+ e2vtab = gfc_find_and_cut_at_last_class_ref (expr2); -+ gfc_add_vptr_component (e2vtab); -+ gfc_add_size_component (e2vtab); -+ gfc_init_se (&se, NULL); -+ gfc_conv_expr (&se, e2vtab); -+ gfc_add_block_to_block (block, &se.pre); -+ size = fold_convert (size_type_node, se.expr); -+ gfc_free_expr (e2vtab); -+ } -+ size_in_bytes = size; -+ } - else - { - /* Otherwise use the length in bytes of the rhs. */ -@@ -7068,6 +7092,14 @@ gfc_trans_subcomponent_assign (tree dest, gfc_component * cm, gfc_expr * expr, - tmp = gfc_build_memcpy_call (tmp, se.expr, size); - gfc_add_expr_to_block (&block, tmp); - } -+ else if (cm->ts.type == BT_CLASS && expr->ts.type == BT_CLASS) -+ { -+ tmp = gfc_copy_class_to_class (se.expr, dest, integer_one_node, -+ CLASS_DATA (cm)->attr.unlimited_polymorphic); -+ gfc_add_expr_to_block (&block, tmp); -+ gfc_add_modify (&block, gfc_class_vptr_get (dest), -+ gfc_class_vptr_get (se.expr)); -+ } - else - gfc_add_modify (&block, tmp, - fold_convert (TREE_TYPE (tmp), se.expr)); From eac22178af37ffbc1331abc7bfd109d2fe48f432 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 27 Dec 2015 20:54:46 +0300 Subject: [PATCH 2014/2060] libwebp: Update to 0.5.0 --- mingw-w64-libwebp/PKGBUILD | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libwebp/PKGBUILD b/mingw-w64-libwebp/PKGBUILD index a77d1741f9..ec69469127 100644 --- a/mingw-w64-libwebp/PKGBUILD +++ b/mingw-w64-libwebp/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libwebp +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.4.3 -pkgrel=2 +pkgver=0.5.0 +pkgrel=1 pkgdesc="the WebP library. Includes conversion tools (mingw-w64)" arch=('any') url="https://developers.google.com/speed/webp/" @@ -14,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-giflib" "${MINGW_PACKAGE_PREFIX}-libtiff") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=(http://downloads.webmproject.org/releases/webp/${_realname}-${pkgver}.tar.gz{,.asc}) -md5sums=('08813525eeeffe7e305b4cbfade8ae9b' +md5sums=('ba81eb9bf23e3c69a2f5cc8dcdb5938f' 'SKIP') prepare() { @@ -34,7 +35,8 @@ build() { --enable-libwebpmux \ --enable-libwebpdemux \ --enable-libwebpdecoder - make + + make -j1 } package() { From 2284407da282956a41782126bcdc22e2234f0a4c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 27 Dec 2015 20:55:05 +0300 Subject: [PATCH 2015/2060] librevenge: Update to 0.0.3 --- mingw-w64-librevenge/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mingw-w64-librevenge/PKGBUILD b/mingw-w64-librevenge/PKGBUILD index fccc5c0758..ac11e98605 100644 --- a/mingw-w64-librevenge/PKGBUILD +++ b/mingw-w64-librevenge/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=librevenge +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.0.2 -pkgrel=2 +pkgver=0.0.3 +pkgrel=1 pkgdesc="Library for REVerses ENGineered formats filters (mingw-w64)" arch=('any') url="http://sf.net/p/libwpd/librevenge/" @@ -18,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" checkdepends=("${MINGW_PACKAGE_PREFIX}-cppunit") options=(staticlibs strip) source=("http://sourceforge.net/projects/libwpd/files/librevenge/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz") -md5sums=('4ee55a80ee32af6752dd8c56eb1b1b5e') +md5sums=('b777d64bbe13830627c7bda69e5f3e31') prepare() { cd ${srcdir}/${_realname}-${pkgver} From 0eb971dfa616226f51ce646b45c35b4c0e52439e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 28 Dec 2015 08:55:22 +0300 Subject: [PATCH 2016/2060] gdb: Update to 7.10.1 --- mingw-w64-gdb/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-gdb/PKGBUILD b/mingw-w64-gdb/PKGBUILD index d408db07e1..2267b8e5cd 100644 --- a/mingw-w64-gdb/PKGBUILD +++ b/mingw-w64-gdb/PKGBUILD @@ -2,12 +2,12 @@ # Contributor: Ray Donnelly _realname=gdb -_gcc_ver=5.2.0 +_gcc_ver=5.3.0 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" # Until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62279 is # fixed, we will stick with 7.6.2 which hasn't got this bug.. -pkgver=7.10 +pkgver=7.10.1 pkgrel=1 pkgdesc="GNU Debugger (mingw-w64)" arch=('any') @@ -31,7 +31,7 @@ source=(http://ftp.gnu.org/gnu/gdb/${_realname}-${pkgver}.tar.xz{,.sig} 'gdb-7.6.2-mingw-gcc-4.7.patch' 'gdb-perfomance.patch' 'gdb-fix-using-gnu-print.patch') -md5sums=('2a35bac41fa8e10bf04f3a0dd7f7f363' +md5sums=('39e654460c9cdd80200a29ac020cfe11' 'SKIP' 'be1c16674d98189a6f18dc0f5922c739' 'e48292d553379a9765c82e80e618ffd2' From 2d377aeb3cd18a13231925aaaddaac94ee30b5c6 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Mon, 28 Dec 2015 12:45:06 +0300 Subject: [PATCH 2017/2060] codelite-git: Fix posix layout for mingw. --- mingw-w64-codelite-git/PKGBUILD | 18 +- .../mingw-posix-layout-fix.patch | 282 ++++++++++++++++++ .../proper-libraries-names-mingw.patch | 33 ++ 3 files changed, 328 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-codelite-git/mingw-posix-layout-fix.patch create mode 100644 mingw-w64-codelite-git/proper-libraries-names-mingw.patch diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index dd98d7a875..a18fde396e 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=9.0.308.gcc42a81 +pkgver=9.0.313.gc621cd8 pkgrel=1 pkgdesc="Open-source, cross platform IDE for the C/C++ programming languages (mingw-w64)" arch=('any') @@ -29,14 +29,18 @@ source=("${_realname}::git+https://github.com/eranif/codelite.git" use-gnu-extensions.patch windows-headers-conflict.patch fix-sqlite3-find-and-build.patch - clStandardPaths-missing-member.patch) + clStandardPaths-missing-member.patch + mingw-posix-layout-fix.patch + proper-libraries-names-mingw.patch) md5sums=('SKIP' '926c4848932586577192bd950ffc604b' 'b18e62316a10dac7c274e2faccd86180' 'f7ce106c3565835c019fbcda0f9bea56' '1ae47bc9b913d425f98533c237b45ceb' 'e6ad6fec1b50070f68ea65bab4ec93a2' - '84bc65336879f9ca6d3dd9eed21b8215') + '84bc65336879f9ca6d3dd9eed21b8215' + '47ab3dc498add139293f136c96925efa' + 'a53dd1fdbd27970d6ce1a51ffad2eb35') pkgver() { cd "${_realname}" @@ -51,6 +55,8 @@ prepare() { patch -p1 -i ${srcdir}/windows-headers-conflict.patch patch -p1 -i ${srcdir}/fix-sqlite3-find-and-build.patch patch -p1 -i ${srcdir}/clStandardPaths-missing-member.patch + patch -p1 -i ${srcdir}/mingw-posix-layout-fix.patch + patch -p1 -i ${srcdir}/proper-libraries-names-mingw.patch } package() { @@ -62,7 +68,9 @@ package() { extra_config+=( -DCMAKE_BUILD_TYPE=Release ) fi - cd ${srcdir}/${_realname} + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + #cd ${srcdir}/${_realname} ${MINGW_PREFIX}/bin/cmake \ -Wno-dev \ -G"MSYS Makefiles" \ @@ -72,7 +80,7 @@ package() { -DwxWidgets_CONFIG_EXECUTABLE=${MINGW_PREFIX}/bin/wx-config \ -DwxWidgets_wxrc_EXECUTABLE=${MINGW_PREFIX}/bin/wxrc-3.0 \ "${extra_config[@]}" \ - . + ../${_realname} make # -j1 VERBOSE=1 make install diff --git a/mingw-w64-codelite-git/mingw-posix-layout-fix.patch b/mingw-w64-codelite-git/mingw-posix-layout-fix.patch new file mode 100644 index 0000000000..759880e2ca --- /dev/null +++ b/mingw-w64-codelite-git/mingw-posix-layout-fix.patch @@ -0,0 +1,282 @@ +diff -Naur codelite-orig/CodeLite/cl_defs.h codelite/CodeLite/cl_defs.h +--- codelite-orig/CodeLite/cl_defs.h 2015-12-28 09:14:07.384041000 +0300 ++++ codelite/CodeLite/cl_defs.h 2015-12-28 10:17:06.738122000 +0300 +@@ -48,13 +48,13 @@ + #else + #ifdef USE_POSIX_LAYOUT + #ifndef PLUGINS_DIR +-#define PLUGINS_DIR "/lib/codelite" ++#define PLUGINS_DIR "\\lib\\codelite" + #endif + #ifndef INSTALL_DIR +-#define INSTALL_DIR "/share/codelite" ++#define INSTALL_DIR "\\share\\codelite" + #endif + #ifndef CFGDIR +-#define CFGDIR "/share/codelite/config/cfg" ++#define CFGDIR "\\share\\codelite\\config\\cfg" + #endif + #endif + // MSW / OSX and the rest of the world +diff -Naur codelite-orig/CodeLite/cl_standard_paths.cpp codelite/CodeLite/cl_standard_paths.cpp +--- codelite-orig/CodeLite/cl_standard_paths.cpp 2015-12-28 09:14:23.533041000 +0300 ++++ codelite/CodeLite/cl_standard_paths.cpp 2015-12-28 10:50:22.132984200 +0300 +@@ -74,7 +74,7 @@ + wxString pluginsDir = PLUGINS_DIR; + #else + #ifdef USE_POSIX_LAYOUT +- wxFileName path(GetDataDir() + wxT(PLUGINS_DIR), ""); ++ wxFileName path(GetInstallDir() + wxT(PLUGINS_DIR), ""); + #else + wxFileName path(GetDataDir(), ""); + path.AppendDir("plugins"); +@@ -84,7 +84,15 @@ + return pluginsDir; + } + +-wxString clStandardPaths::GetDataDir() const { return wxStandardPaths::Get().GetDataDir(); } ++wxString clStandardPaths::GetDataDir() const ++{ ++#ifdef USE_POSIX_LAYOUT ++ wxFileName path(wxStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR), ""); ++ return path.GetPath(); ++#else ++ return wxStandardPaths::Get().GetDataDir(); ++#endif ++} + + wxString clStandardPaths::GetBinFolder() const + { +@@ -104,22 +112,14 @@ + + wxString clStandardPaths::GetLexersDir() const + { +-#ifdef USE_POSIX_LAYOUT +- wxFileName fn(GetDataDir() + wxT(INSTALL_DIR), ""); +-#else + wxFileName fn(GetDataDir(), ""); +-#endif + fn.AppendDir("lexers"); + return fn.GetPath(); + } + + wxString clStandardPaths::GetProjectTemplatesDir() const + { +-#ifdef USE_POSIX_LAYOUT +- wxFileName fn(GetDataDir() + wxT(INSTALL_DIR), ""); +-#else + wxFileName fn(GetDataDir(), ""); +-#endif + fn.AppendDir("templates"); + fn.AppendDir("projects"); + return fn.GetPath(); +@@ -134,11 +134,7 @@ + + wxString clStandardPaths::GetUserProjectTemplatesDir() const + { +-#ifdef USE_POSIX_LAYOUT +- wxFileName fn(GetUserDataDir() + wxT(INSTALL_DIR), ""); +-#else + wxFileName fn(GetUserDataDir(), ""); +-#endif + fn.AppendDir("templates"); + fn.AppendDir("projects"); + return fn.GetPath(); +@@ -163,6 +159,20 @@ + return path; + } + ++wxString clStandardPaths::GetInstallDir() const ++{ ++#ifdef __WXGTK__ ++ return GetBinFolder(); ++#else ++#ifdef USE_POSIX_LAYOUT ++ wxFileName path(wxStandardPaths::Get().GetDataDir(), ""); ++ return path.GetPath(); ++#else ++ return GetBinFolder(); ++#endif ++#endif ++} ++ + void clStandardPaths::IgnoreAppSubDir(const wxString & subdirPattern) + { + #ifdef USE_POSIX_LAYOUT +diff -Naur codelite-orig/CodeLite/cl_standard_paths.h codelite/CodeLite/cl_standard_paths.h +--- codelite-orig/CodeLite/cl_standard_paths.h 2015-12-28 09:14:23.150041000 +0300 ++++ codelite/CodeLite/cl_standard_paths.h 2015-12-28 10:45:39.783044500 +0300 +@@ -119,6 +119,11 @@ + */ + wxString GetDocumentsDir() const; + ++ /** ++ * @brief return the installation directory. ++ */ ++ wxString GetInstallDir() const; ++ + void IgnoreAppSubDir(const wxString & subdirPattern); + }; + +diff -Naur codelite-orig/CodeLite/macros.h codelite/CodeLite/macros.h +--- codelite-orig/CodeLite/macros.h 2015-12-28 09:14:07.436041000 +0300 ++++ codelite/CodeLite/macros.h 2015-12-28 11:10:10.351039900 +0300 +@@ -114,10 +114,8 @@ + const wxString TERMINAL_CMD = wxT(""); + #endif + +-#if defined(__WXMSW__) && !defined(USE_POSIX_LAYOUT) ++#if defined(__WXMSW__) + #define PATH_SEP wxT("\\") +-#else +-#define PATH_SEP wxT("/") + #endif + + #define ID_MENU_CUSTOM_TARGET_FIRST 15000 +diff -Naur codelite-orig/codelitephp/PHPParser/php_utils.cpp codelite/codelitephp/PHPParser/php_utils.cpp +--- codelite-orig/codelitephp/PHPParser/php_utils.cpp 2015-12-28 09:14:12.524041000 +0300 ++++ codelite/codelitephp/PHPParser/php_utils.cpp 2015-12-28 10:30:14.036438700 +0300 +@@ -82,7 +82,7 @@ + fn.AppendDir("resources"); + #else + #ifdef USE_POSIX_LAYOUT +- fn = wxFileName(clStandardPaths::Get().GetDataDir() + wxT(PLUGINS_DIR)); ++ fn = wxFileName(clStandardPaths::Get().GetPluginsDirectory()); + #else + fn = wxFileName(clStandardPaths::Get().GetExecutablePath()); + fn.AppendDir("plugins"); +diff -Naur codelite-orig/Interfaces/plugin.h codelite/Interfaces/plugin.h +--- codelite-orig/Interfaces/plugin.h 2015-12-28 09:14:07.724041000 +0300 ++++ codelite/Interfaces/plugin.h 2015-12-28 10:38:29.711044500 +0300 +@@ -162,7 +162,7 @@ + wxString pluginsDir = clStandardPaths::Get().GetDataDir(); + #else + #ifdef USE_POSIX_LAYOUT +- wxString pluginsDir(clStandardPaths::Get().GetDataDir() + wxT(PLUGINS_DIR)); ++ wxString pluginsDir(clStandardPaths::Get().GetDataDir()); + #else + wxString pluginsDir(m_mgr->GetInstallDirectory() + wxT("/plugins")); + #endif +diff -Naur codelite-orig/LiteEditor/app.cpp codelite/LiteEditor/app.cpp +--- codelite-orig/LiteEditor/app.cpp 2015-12-28 09:14:07.841041000 +0300 ++++ codelite/LiteEditor/app.cpp 2015-12-28 10:54:34.309806000 +0300 +@@ -328,10 +328,6 @@ + // EnableDebugPriv(); + #endif + +-#ifdef USE_POSIX_LAYOUT +- clStandardPaths::Get().IgnoreAppSubDir("bin"); +-#endif +- + // Init resources and add the PNG handler + wxSystemOptions::SetOption(_T("msw.remap"), 0); + wxSystemOptions::SetOption("msw.notebook.themed-background", 1); +@@ -486,7 +482,7 @@ + #else //__WXMSW__ + if(homeDir.IsEmpty()) { // did we got a basedir from user? + #ifdef USE_POSIX_LAYOUT +- homeDir = clStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR); ++ homeDir = clStandardPaths::Get().GetDataDir(); + #else + homeDir = ::wxGetCwd(); + #endif +@@ -642,7 +638,7 @@ + + #elif defined(__WXMSW__) + #ifdef USE_POSIX_LAYOUT +- wxLocale::AddCatalogLookupPathPrefix(clStandardPaths::Get().GetDataDir() + wxT("/share/locale")); ++ wxLocale::AddCatalogLookupPathPrefix(clStandardPaths::Get().GetInstallDir() + wxT("\\share\\locale")); + #else + wxLocale::AddCatalogLookupPathPrefix(ManagerST::Get()->GetInstallDir() + wxT("\\locale")); + #endif +@@ -933,13 +929,8 @@ + #ifdef __WXGTK__ + printersInstallDir = wxFileName(wxString(INSTALL_DIR, wxConvUTF8), "gdb_printers"); + #else +-#ifdef USE_POSIX_LAYOUT +- wxString commdir(clStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR)); +- printersInstallDir = wxFileName(commdir, "gdb_printers"); +-#else + printersInstallDir = wxFileName(clStandardPaths::Get().GetDataDir(), "gdb_printers"); + #endif +-#endif + + // copy the files to ~/.codelite/gdb_printers + wxLogNull nolog; +diff -Naur codelite-orig/LiteEditor/frame.cpp codelite/LiteEditor/frame.cpp +--- codelite-orig/LiteEditor/frame.cpp 2015-12-28 09:14:08.030041000 +0300 ++++ codelite/LiteEditor/frame.cpp 2015-12-28 10:53:38.446392900 +0300 +@@ -3661,7 +3661,7 @@ + + // Load debuggers (*must* be after the plugins) + #ifdef USE_POSIX_LAYOUT +- wxString plugdir(clStandardPaths::Get().GetDataDir() + wxT(PLUGINS_DIR)); ++ wxString plugdir(clStandardPaths::Get().GetPluginsDirectory()); + DebuggerMgr::Get().Initialize(this, EnvironmentConfig::Instance(), plugdir); + #else + DebuggerMgr::Get().Initialize(this, EnvironmentConfig::Instance(), ManagerST::Get()->GetInstallDir()); +diff -Naur codelite-orig/Plugin/bitmap_loader.cpp codelite/Plugin/bitmap_loader.cpp +--- codelite-orig/Plugin/bitmap_loader.cpp 2015-12-28 09:14:08.426041000 +0300 ++++ codelite/Plugin/bitmap_loader.cpp 2015-12-28 10:56:16.813554600 +0300 +@@ -64,13 +64,8 @@ + wxString bitmapPath = wxString(INSTALL_DIR, wxConvUTF8); + fn = wxFileName(bitmapPath, zipname); + #else +-#ifdef USE_POSIX_LAYOUT +- wxString bitmapPath(clStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR)); +- fn = wxFileName(bitmapPath, zipname); +-#else + fn = wxFileName(clStandardPaths::Get().GetDataDir(), zipname); + #endif +-#endif + + if(m_manifest.empty() || m_toolbarsBitmaps.empty()) { + m_zipPath = fn; +diff -Naur codelite-orig/Plugin/ColoursAndFontsManager.cpp codelite/Plugin/ColoursAndFontsManager.cpp +--- codelite-orig/Plugin/ColoursAndFontsManager.cpp 2015-12-28 09:14:08.351041000 +0300 ++++ codelite/Plugin/ColoursAndFontsManager.cpp 2015-12-28 10:57:09.064051300 +0300 +@@ -543,12 +543,9 @@ + wxFileName fnUserLexers(clStandardPaths::Get().GetUserDataDir(), "lexers.json"); + fnUserLexers.AppendDir("lexers"); + +-// Default installation lexers +-#ifdef USE_POSIX_LAYOUT +- wxFileName defaultLexersFileName(clStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR), ""); +-#else ++ // Default installation lexers + wxFileName defaultLexersFileName(clStandardPaths::Get().GetDataDir(), ""); +-#endif ++ + defaultLexersFileName.AppendDir("lexers"); + defaultLexersFileName.SetFullName("lexers.json"); + +diff -Naur codelite-orig/Plugin/debuggermanager.cpp codelite/Plugin/debuggermanager.cpp +--- codelite-orig/Plugin/debuggermanager.cpp 2015-12-28 09:14:08.516041000 +0300 ++++ codelite/Plugin/debuggermanager.cpp 2015-12-28 11:04:22.364565400 +0300 +@@ -103,7 +103,11 @@ + wxString debuggersPath(PLUGINS_DIR, wxConvUTF8); + debuggersPath += wxT("/debuggers"); + #elif defined(__WXMSW__) ++#ifdef USE_POSIX_LAYOUT ++ wxString debuggersPath(clStandardPaths::Get().GetPluginsDirectory() + wxT("/debuggers")); ++#else + wxString debuggersPath(m_baseDir + wxT("/debuggers")); ++#endif + #else + // OSX + wxFileName debuggersFolder(clStandardPaths::Get().GetDataDir(), ""); +diff -Naur codelite-orig/SpellChecker/spellcheckeroptions.cpp codelite/SpellChecker/spellcheckeroptions.cpp +--- codelite-orig/SpellChecker/spellcheckeroptions.cpp 2015-12-28 09:14:09.378041000 +0300 ++++ codelite/SpellChecker/spellcheckeroptions.cpp 2015-12-28 11:06:19.093039900 +0300 +@@ -46,11 +46,7 @@ + m_scanD2 = false; + + wxString defaultDicsDir; +-#ifdef USE_POSIX_LAYOUT +- defaultDicsDir << clStandardPaths::Get().GetDataDir() << wxT(INSTALL_DIR) << wxFILE_SEP_PATH << "dics"; +-#else + defaultDicsDir << clStandardPaths::Get().GetDataDir() << wxFILE_SEP_PATH << "dics"; +-#endif + m_dictionaryPath = defaultDicsDir; + } + diff --git a/mingw-w64-codelite-git/proper-libraries-names-mingw.patch b/mingw-w64-codelite-git/proper-libraries-names-mingw.patch new file mode 100644 index 0000000000..4a8abd1d6f --- /dev/null +++ b/mingw-w64-codelite-git/proper-libraries-names-mingw.patch @@ -0,0 +1,33 @@ +--- codelite/CodeLite/CMakeLists.txt.orig 2015-12-28 12:14:44.681944700 +0300 ++++ codelite/CodeLite/CMakeLists.txt 2015-12-28 12:20:55.582697000 +0300 +@@ -121,6 +121,15 @@ + -lz -lcrypto) + endif ( UNIX AND NOT APPLE ) + ++if(MINGW) ++ set_target_properties(libcodelite ++ PROPERTIES ++ PREFIX "" ++ OUTPUT_NAME codelite ++ RUNTIME_OUTPUT_NAME libcodelite ++ ARCHIVE_OUTPUT_NAME codelite) ++endif() ++ + if (NOT MINGW) + if(APPLE) + install(TARGETS libcodelite DESTINATION ${CMAKE_BINARY_DIR}/codelite.app/Contents/MacOS/) +--- scodelite/sdk/databaselayer/CMakeLists.txt.orig 2015-12-28 12:24:47.723314900 +0300 ++++ codelite/sdk/databaselayer/CMakeLists.txt 2015-12-28 12:26:06.692417200 +0300 +@@ -62,6 +62,12 @@ + add_library(databaselayersqlite SHARED ${SRCS} ${MYSQL_SRCS}) + target_link_libraries(databaselayersqlite ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" ${SQLITE3_LIBRARY}) + ++if(MINGW) ++ set_target_properties(databaselayersqlite ++ PROPERTIES ++ PREFIX "") ++endif() ++ + if(APPLE) + install(TARGETS databaselayersqlite DESTINATION ${CMAKE_BINARY_DIR}/codelite.app/Contents/MacOS/) + CL_INSTALL_NAME_TOOL_STD(${CMAKE_BINARY_DIR}/codelite.app/Contents/MacOS/libdatabaselayersqlite.dylib) From e6ba8ccfcc2b7920ff4b41a022ffdac05cf91a63 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 29 Dec 2015 03:56:12 +0000 Subject: [PATCH 2018/2060] python2: Fix --with-pydebug --- .../0840-add-builddir-to-library_dirs.patch | 5 +-- ...ler-lib-dirs-from-extension-lib-dirs.patch | 26 +++++++++++ mingw-w64-python2/PKGBUILD | 43 +++++++++++-------- 3 files changed, 53 insertions(+), 21 deletions(-) create mode 100644 mingw-w64-python2/0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch diff --git a/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch b/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch index c2f958418d..8959aa02a5 100644 --- a/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch +++ b/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch @@ -1,12 +1,11 @@ diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py --- Python-2.7.9-orig/setup.py 2014-12-11 13:51:17.891000000 +0300 +++ Python-2.7.9/setup.py 2014-12-11 13:51:18.015800000 +0300 -@@ -272,6 +272,9 @@ +@@ -272,6 +272,8 @@ args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags self.compiler.set_executables(**args) -+ if host_platform not in ['mingw', 'win32']: -+ self.compiler.library_dirs.insert(0, '.') ++ self.compiler.library_dirs.insert(0, '.') + build_ext.build_extensions(self) diff --git a/mingw-w64-python2/0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch b/mingw-w64-python2/0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch new file mode 100644 index 0000000000..4762b0abfc --- /dev/null +++ b/mingw-w64-python2/0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch @@ -0,0 +1,26 @@ +--- Python-2.7.10/setup.py.orig 2015-12-28 12:34:14.075841800 +0000 ++++ Python-2.7.10/setup.py 2015-12-28 15:47:57.770679100 +0000 +@@ -1731,6 +1731,23 @@ + if '_tkinter' not in [e.name for e in self.extensions]: + missing.append('_tkinter') + ++ # Remove any extensions.library_dirs that are also in compiler.library_dirs ++ # Rationale: It's wrong. Ok, better. The compiler.library_dirs appear first ++ # in the link command line and (finally, not yet) include "." which ++ # causes the build dir to be searched in for -lpython2.7 before ++ # $sysroot/lib. This is necessary as otherwise the old python import ++ # library is used instead of the new one. This affects sqlite (and ++ # some others). I could go into fixing these individually .. but I ++ # worry I'll be back here in 6 months fixing the same bug again if ++ # I do for some other module(s) in Python 2.7.12. In our case, ++ # C:/msys64/mingw64/lib was turning up as that's where libsqlite was ++ # and this prevented me from switching from an installed release to ++ # an new debug Python. We should be building in clean sysroots but ++ # that's another matter really. ++ for ext in self.extensions: ++ ext.library_dirs = [dir for dir in ext.library_dirs ++ if dir not in self.compiler.library_dirs] ++ + ## # Uncomment these lines if you want to play with xxmodule.c + ## ext = Extension('xx', ['xxmodule.c']) + ## self.extensions.append(ext) diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index c107c12371..66a6e50196 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -1,11 +1,11 @@ # Maintainer: Alexey Pavlov -# Contributor: Ray Donnelly +# Maintainer: Ray Donnelly # Contributor: Saul Ibarra Corretge _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7.10 -pkgrel=5 +pkgrel=6 _pybasever=${pkgver%.*} pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') @@ -24,7 +24,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib" ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -options=('!makeflags' 'staticlibs' 'strip' '!debug') +options=('!makeflags') # 'debug' '!strip') source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0000-make-_sysconfigdata.py-relocatable.patch 0100-MINGW-BASE-use-NT-thread-model.patch @@ -93,6 +93,7 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0820-mingw-reorder-bininstall-ln-symlink-creation.patch 0830-add-build-sysroot-config-option.patch 0840-add-builddir-to-library_dirs.patch + 0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch 0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch 0855-mingw-fix-ssl-dont-use-enum_certificates.patch 0860-mingw-build-optimized-ext.patch @@ -187,6 +188,7 @@ prepare() { patch -p1 -i "${srcdir}"/0820-mingw-reorder-bininstall-ln-symlink-creation.patch patch -p1 -i "${srcdir}"/0830-add-build-sysroot-config-option.patch patch -p1 -i "${srcdir}"/0840-add-builddir-to-library_dirs.patch + patch -p1 -i "${srcdir}"/0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch patch -p1 -i "${srcdir}"/0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch patch -p1 -i "${srcdir}"/0855-mingw-fix-ssl-dont-use-enum_certificates.patch patch -p1 -i "${srcdir}"/0860-mingw-build-optimized-ext.patch @@ -235,6 +237,7 @@ prepare() { } build() { + declare -a extra_config local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) CFLAGS+=" -fwrapv -D__USE_MINGW_ANSI_STDIO=1 " @@ -244,15 +247,16 @@ build() { if check_option "strip" "y"; then LDFLAGS+=" -s " fi + + # Most of this is unnecessary, perhaps just + # the extra_config bit? if check_option "debug" "n"; then CFLAGS+=" -DNDEBUG " CXXFLAGS+=" -DNDEBUG " else - plain " -DDEBUG -DPy_DEBUG -D_DEBUG does not work unfortunately .." - # CFLAGS+=" -DDEBUG -DPy_DEBUG -D_DEBUG " - # CXXFLAGS+=" -DDEBUG -DPy_DEBUG -D_DEBUG " - CFLAGS+=" -O0 -ggdb" - CXXFLAGS+=" -O0 -ggdb" + CFLAGS+=" -DDEBUG -DPy_DEBUG -D_DEBUG " + CXXFLAGS+=" -DDEBUG -DPy_DEBUG -D_DEBUG " + extra_config+=("--with-pydebug") fi local LIBFFI_INC=`${MINGW_PREFIX}/bin/pkg-config libffi --cflags-only-I | sed "s|\-I||g"` @@ -272,15 +276,16 @@ build() { --with-threads \ --with-system-expat \ --with-system-ffi \ + "${extra_config[@]}" \ OPT="" #--with-dbmliborder='gdbm:ndbm' make } -check() { - cd "${srcdir}/build-${CARCH}" - make test -} +#check() { +# cd "${srcdir}/build-${CARCH}" +# make test +#} package() { cd "${srcdir}/build-${CARCH}" @@ -288,18 +293,19 @@ package() { MSYSTEM=MINGW \ MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - make install DESTDIR="$pkgdir" + make install DESTDIR="${pkgdir}" mv "${pkgdir}${MINGW_PREFIX}"/bin/smtpd.py "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/ - # gdb pretty printers for debugging Python itself; to use: + # gdb support for debugging Python itself (needs options='debug', + # *may* work better on i686 due to frame pointer always being available) to use: # python # sys.path.append('C:/msys64/mingw64/share/gdb/python2') - # import python-gdb - # reload(python-gdb) + # import python_gdb + # reload(python_gdb) # end [[ -d "${pkgdir}${MINGW_PREFIX}"/share/gdb/python2/ ]] || mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/gdb/python2/ - cp -f python.exe-gdb.py "${pkgdir}${MINGW_PREFIX}"/share/gdb/python2/python-gdb.py + cp -f python.exe-gdb.py "${pkgdir}${MINGW_PREFIX}"/share/gdb/python2/python_gdb.py # Copy python import library to $prefix/lib because some programs can't find it in other locations cp -f "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config/libpython${_pybasever}.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/libpython${_pybasever}.dll.a @@ -420,7 +426,8 @@ sha1sums=('ee5a50c5562e7448f037d35fdedc18d95c748b9e' '23c0bcdb082006d6bde3eb9fc72044272c7a08f3' 'fbefe2d0d2d4c9f995c9c49a66c93071587b7045' '15e055c4cce32a0c1940953062fd2db7c22364c4' - 'f0f5efb98c610d0caf3ccbf0850460af49f92c96' + '731ac1d1e54af3906d836a6595cb3a76ce165260' + '415ae19daf7dddc8db20009f2c708b900822e6b4' '78b039f8ab595750b2f7aee3e2fc6d7a466a5c9c' 'aa295dd8c4f60b70c61753fc4be9c8ff50101577' 'de01d87f5070992f305d5375da1deb69f80ea8bb' From 7a8f5ebb6ffadddf777ea9ea60d3086fabc56937 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 29 Dec 2015 11:39:51 +0300 Subject: [PATCH 2019/2060] gnutls: Update to 3.4.7. Build also static libraries --- .../0002-gnutls-3.4.7-socket.patch | 22 +++++++++++++++++++ ...utls-fix-external-libtasn1-detection.patch | 11 ++++++++++ mingw-w64-gnutls/PKGBUILD | 16 +++++++++----- 3 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 mingw-w64-gnutls/0002-gnutls-3.4.7-socket.patch create mode 100644 mingw-w64-gnutls/0003-gnutls-fix-external-libtasn1-detection.patch diff --git a/mingw-w64-gnutls/0002-gnutls-3.4.7-socket.patch b/mingw-w64-gnutls/0002-gnutls-3.4.7-socket.patch new file mode 100644 index 0000000000..2542092053 --- /dev/null +++ b/mingw-w64-gnutls/0002-gnutls-3.4.7-socket.patch @@ -0,0 +1,22 @@ +--- a/src/socket.c 2015-11-08 02:31:10.000000000 -0600 ++++ b/src/socket.c 2015-11-25 10:04:39.287828945 -0600 +@@ -263,7 +263,9 @@ + if (s != NULL) { + return s->s_port; + } ++#ifndef _WIN32 + endservent(); ++#endif + + return 443; + } +@@ -278,7 +280,9 @@ + if (s != NULL) { + return s->s_name; + } ++#ifndef _WIN32 + endservent(); ++#endif + + return "443"; + } diff --git a/mingw-w64-gnutls/0003-gnutls-fix-external-libtasn1-detection.patch b/mingw-w64-gnutls/0003-gnutls-fix-external-libtasn1-detection.patch new file mode 100644 index 0000000000..bde1d2f529 --- /dev/null +++ b/mingw-w64-gnutls/0003-gnutls-fix-external-libtasn1-detection.patch @@ -0,0 +1,11 @@ +--- a/extra/Makefile.in.orig 2013-02-03 19:40:27.000000000 -0600 ++++ b/extra/Makefile.in 2013-02-06 23:08:54.619176090 -0600 +@@ -76,7 +76,7 @@ + @ENABLE_MINITASN1_TRUE@am__append_1 = -I$(srcdir)/../lib/minitasn1 + @ENABLE_OPENSSL_TRUE@am__append_2 = -version-info $(LT_SSL_CURRENT):$(LT_SSL_REVISION):$(LT_SSL_AGE) + @ENABLE_MINITASN1_TRUE@@ENABLE_OPENSSL_TRUE@am__append_3 = ../lib/minitasn1/libminitasn1.la +-@ENABLE_MINITASN1_FALSE@@ENABLE_OPENSSL_TRUE@am__append_4 = $(LTLIBTASN1) ++@ENABLE_MINITASN1_FALSE@@ENABLE_OPENSSL_TRUE@am__append_4 = $(LIBTASN1_LIBS) + @ENABLE_OPENSSL_TRUE@@HAVE_LD_OUTPUT_DEF_TRUE@am__append_5 = \ + @ENABLE_OPENSSL_TRUE@@HAVE_LD_OUTPUT_DEF_TRUE@ -Wl,--output-def,libgnutls-openssl-$(DLL_VERSION).def + diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index 23de2c76e7..d673d4487a 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -3,7 +3,7 @@ _realname=gnutls pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.4.5 +pkgver=3.4.7 pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') @@ -23,15 +23,21 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") # Need remove "autogen" package before building. source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*}/${_realname}-${pkgver}.tar.xz{,.sig} - 0001-add-missing-define.patch) -md5sums=('f5dae0e0ecda28aab12386e6c0705d4c' + 0001-add-missing-define.patch + 0002-gnutls-3.4.7-socket.patch + 0003-gnutls-fix-external-libtasn1-detection.patch) +md5sums=('e7556cec73c8b34fd2ff0b591e24e44c' 'SKIP' - '807a79513358a9f4123f62111f1eed59') + '807a79513358a9f4123f62111f1eed59' + 'f23446753bbf74305257fa5aa594ec7f' + '92acc314feaa91e32d69a1a5bf0e279c') validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-add-missing-define.patch + patch -p1 -i ${srcdir}/0002-gnutls-3.4.7-socket.patch + patch -p1 -i ${srcdir}/0003-gnutls-fix-external-libtasn1-detection.patch WANT_AUTOMAKE=latest autoreconf -fi -I m4 } @@ -51,7 +57,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --with-zlib \ - --enable-shared --disable-static \ + --enable-shared --enable-static \ --enable-cxx \ --enable-nls \ --disable-rpath \ From b947f9402451de67e923ef0305655079b8080577 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 29 Dec 2015 13:34:26 +0300 Subject: [PATCH 2020/2060] openscenegraph: Update to 3.5.1 --- mingw-w64-openscenegraph/PKGBUILD | 11 ++++--- .../add-gstreamer-cflags.patch | 32 +++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-openscenegraph/add-gstreamer-cflags.patch diff --git a/mingw-w64-openscenegraph/PKGBUILD b/mingw-w64-openscenegraph/PKGBUILD index ac54ad5f1f..558736799d 100644 --- a/mingw-w64-openscenegraph/PKGBUILD +++ b/mingw-w64-openscenegraph/PKGBUILD @@ -3,7 +3,7 @@ _realname=OpenSceneGraph pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -_pkgver=3.4.0 +_pkgver=3.5.1 pkgver=${_pkgver//-/} pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" @@ -44,13 +44,15 @@ source=(http://trac.openscenegraph.org/downloads/developer_releases/${_realname} find-ffmpeg.patch find-freetype.patch additional-gl-header.patch - fix-cast-error.patch) -md5sums=('a5e762c64373a46932e444f6f7332496' + fix-cast-error.patch + add-gstreamer-cflags.patch) +md5sums=('71b97b18f11b6c361631fc3e34fb4b67' '18ce956c1889babc6515828b8200e864' 'a3b612082a47d6a7b4b41f8c576fda7e' '9ab69e1cd26826196fac5b3f01e6cb95' 'e889e10100a1f3e07212c01603712594' - '5599204490bf9f03cdd5871b938e3338') + '5599204490bf9f03cdd5871b938e3338' + '347e2d4d74a3b4a6a24e4264b27e2798') prepare() { cd "${srcdir}/${_realname}-${_pkgver}" @@ -59,6 +61,7 @@ prepare() { patch -p1 -i ${srcdir}/find-freetype.patch patch -p1 -i ${srcdir}/additional-gl-header.patch patch -p1 -i ${srcdir}/fix-cast-error.patch + patch -p1 -i ${srcdir}/add-gstreamer-cflags.patch } build() { diff --git a/mingw-w64-openscenegraph/add-gstreamer-cflags.patch b/mingw-w64-openscenegraph/add-gstreamer-cflags.patch new file mode 100644 index 0000000000..bc89e923e7 --- /dev/null +++ b/mingw-w64-openscenegraph/add-gstreamer-cflags.patch @@ -0,0 +1,32 @@ +--- OpenSceneGraph-3.5.1/CMakeLists.txt.orig 2015-11-09 18:52:06.000000000 +0300 ++++ OpenSceneGraph-3.5.1/CMakeLists.txt 2015-11-11 14:14:03.911230800 +0300 +@@ -668,6 +668,9 @@ + FIND_PACKAGE(OurDCMTK) + FIND_PACKAGE(FFmpeg) + FIND_PACKAGE(GStreamer COMPONENTS app pbutils) ++ IF(GStreamer_FOUND) ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GStreamer_CFLAGS}") ++ ENDIF() + FIND_PACKAGE(GLIB COMPONENTS gobject) + FIND_PACKAGE(DirectShow) + FIND_PACKAGE(SDL2) +--- OpenSceneGraph-3.5.1/CMakeModules/FindGStreamer.cmake.orig 2015-11-11 14:26:56.738940300 +0300 ++++ OpenSceneGraph-3.5.1/CMakeModules/FindGStreamer.cmake 2015-11-11 14:27:12.773336700 +0300 +@@ -65,7 +65,7 @@ + # ) + #endmacro() + +-if (WIN32) ++if (WIN32 AND NOT MINGW) + macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _library) + find_path(${_component_prefix}_INCLUDE_DIRS + NAMES ${_header} +@@ -83,7 +83,7 @@ + find_package(PkgConfig) + + macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _library) +- pkg_check_modules(${_component_prefix} QUIET ${_pkgconfig_name}) ++ pkg_check_modules(${_component_prefix} ${_pkgconfig_name}) + + # find_path(${_component_prefix}_INCLUDE_DIRS + # NAMES ${_header} From af3a690132ea72906b285358602d0f6ce432d82c Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 29 Dec 2015 14:34:03 +0300 Subject: [PATCH 2021/2060] openscenegraph: Fix PKGBUILD --- mingw-w64-openscenegraph/PKGBUILD | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mingw-w64-openscenegraph/PKGBUILD b/mingw-w64-openscenegraph/PKGBUILD index 558736799d..8bc81c1287 100644 --- a/mingw-w64-openscenegraph/PKGBUILD +++ b/mingw-w64-openscenegraph/PKGBUILD @@ -73,10 +73,8 @@ build() { pushd ${builddir} [[ "${builddir%-${MINGW_CHOST}}" == "Release" ]] && { local _opts="-DBUILD_OSG_EXAMPLES:BOOL=ON" - local _postfix= } || { local _opts="-DBUILD_OSG_EXAMPLES:BOOL=OFF -DBUILD_OSG_APPLICATIONS=OFF" - local _postfix="-debug" } msg "Building ${builddir%-${MINGW_CHOST}} version..." @@ -85,7 +83,7 @@ build() { COLLADA_DIR=${MINGW_PREFIX} \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${_postfix}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=${builddir%-${MINGW_CHOST}} \ ${_opts} \ ../${_realname}-${_pkgver} From f5dc561575276875a03793636a69900fc56042a7 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 29 Dec 2015 22:03:59 +0300 Subject: [PATCH 2022/2060] jxrlib: New package. --- mingw-w64-jxrlib/CMakeLists.txt | 92 ++++++++++++ mingw-w64-jxrlib/PKGBUILD | 71 +++++++++ mingw-w64-jxrlib/jxrlib_mingw.patch | 93 ++++++++++++ mingw-w64-jxrlib/jxrlib_warnings.patch | 193 +++++++++++++++++++++++++ 4 files changed, 449 insertions(+) create mode 100644 mingw-w64-jxrlib/CMakeLists.txt create mode 100644 mingw-w64-jxrlib/PKGBUILD create mode 100644 mingw-w64-jxrlib/jxrlib_mingw.patch create mode 100644 mingw-w64-jxrlib/jxrlib_warnings.patch diff --git a/mingw-w64-jxrlib/CMakeLists.txt b/mingw-w64-jxrlib/CMakeLists.txt new file mode 100644 index 0000000000..ccfbe347fd --- /dev/null +++ b/mingw-w64-jxrlib/CMakeLists.txt @@ -0,0 +1,92 @@ +cmake_minimum_required(VERSION 2.8) +project(jxrlib C) + +set(JXRLIB_MAJOR 0) +set(JXRLIB_MINOR 0) + +set(JXRLIB_LIB_VERSION ${JXRLIB_MAJOR}.${JXRLIB_MINOR}.0) +set(JXRLIB_SO_VERSION ${JXRLIB_MAJOR}) + +include(TestBigEndian) +test_big_endian(ISBIGENDIAN) +if(ISBIGENDIAN) + set(DEF_ENDIAN -D_BIG__ENDIAN_) +endif() + +add_definitions(-D__ANSI__ -DDISABLE_PERF_MEASUREMENT ${DEF_ENDIAN}) + +include_directories( + common/include + image/sys + jxrgluelib + jxrtestlib +) + +# JXR Library +file(GLOB jpegxr_SRC image/sys/*.c image/decode/*.c image/encode/*.c) +file(GLOB jpegxr_HDR image/sys/*.h image/decode/*.h image/encode/*.h) + +add_library(jpegxr_obj OBJECT ${jpegxr_SRC} ${jpegxr_HDR}) + +add_library(jpegxr SHARED $) +set_target_properties(jpegxr PROPERTIES VERSION ${JXRLIB_LIB_VERSION} SOVERSION ${JXRLIB_SO_VERSION}) + +add_library(jpegxr_static STATIC $) +set_target_properties(jpegxr_static PROPERTIES VERSION ${JXRLIB_LIB_VERSION} SOVERSION ${JXRLIB_SO_VERSION} OUTPUT_NAME jpegxr RUNTIME_OUTPUT_NAME jpegxr ARCHIVE_OUTPUT_NAME jpegxr) + +install(TARGETS jpegxr + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX} +) + +install(TARGETS jpegxr_static + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX} +) + + +# JXR-GLUE Library +file(GLOB jxrglue_SRC jxrgluelib/*.c jxrtestlib/*.c) +file(GLOB jxrglue_HDR jxrgluelib/*.h jxrtestlib/*.h) + +add_library(jxr_obj OBJECT ${jxrglue_SRC} ${jxrglue_HDR}) + +add_library(jxrglue SHARED $) +set_target_properties(jxrglue PROPERTIES VERSION ${JXRLIB_LIB_VERSION} SOVERSION ${JXRLIB_SO_VERSION}) +target_link_libraries(jxrglue jpegxr m) + +add_library(jxrglue_static STATIC $) +set_target_properties(jxrglue_static PROPERTIES VERSION ${JXRLIB_LIB_VERSION} SOVERSION ${JXRLIB_SO_VERSION} OUTPUT_NAME jxrglue RUNTIME_OUTPUT_NAME jxrglue ARCHIVE_OUTPUT_NAME jxrglue) +target_link_libraries(jxrglue_static jpegxr_static m) + +install(TARGETS jxrglue + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX} +) + +install(TARGETS jxrglue_static + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX} +) + +# JxrEncApp Executable +add_executable(JxrEncApp jxrencoderdecoder/JxrEncApp.c) +target_link_libraries(JxrEncApp jxrglue) +install(TARGETS JxrEncApp RUNTIME DESTINATION bin) + +# JxrDecApp Executable +add_executable(JxrDecApp jxrencoderdecoder/JxrDecApp.c) +target_link_libraries(JxrDecApp jxrglue) +install(TARGETS JxrDecApp RUNTIME DESTINATION bin) + +# Headers +install(FILES jxrgluelib/JXRGlue.h jxrgluelib/JXRMeta.h jxrtestlib/JXRTest.h image/sys/windowsmediaphoto.h + DESTINATION include/jxrlib +) +install(DIRECTORY common/include/ DESTINATION include/jxrlib + FILES_MATCHING PATTERN "*.h" +) diff --git a/mingw-w64-jxrlib/PKGBUILD b/mingw-w64-jxrlib/PKGBUILD new file mode 100644 index 0000000000..6240b7444f --- /dev/null +++ b/mingw-w64-jxrlib/PKGBUILD @@ -0,0 +1,71 @@ +# Maintainer: Alexey Pavlov + +_realname=jxrlib +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.1 +pkgrel=1 +pkgdesc="Open source implementation of jpegxr (mingw-w64)" +arch=('any') +url="https://jxrlib.codeplex.com/" +license=('BSD') +validpgpkeys=('gpg_KEY') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-iconv") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +options=('strip' 'staticlibs') +source=(#jxrlib_${pkgver//./_}.tar.gz::http://jxrlib.codeplex.com/downloads/get/685250 + http://jxrlib.codeplex.com/downloads/get/685250#/jxrlib_${pkgver//./_}.tar.gz + "CMakeLists.txt" + "jxrlib_warnings.patch" + "jxrlib_mingw.patch") +md5sums=('c0a6a4529cb687d127cf52b52f5ec848' + '31c0666ddd914e0683a458c3b6aa3b0e' + '8ee3a08fbba3c74ea394e91d562c8be8' + 'e72528f9e35f5c52a3287b4fd31a0e44') + +prepare() { + cd "${srcdir}"/${_realname} + + # Sanitize charset and line endings + for file in `find . -type f -name '*.c' -or -name '*.h' -or -name '*.txt'`; do + ${MINGW_PREFIX}/bin/iconv -f ISO-8859-15 -t UTF-8 ${file} > ${file}.new && \ + sed -i 's|\r||g' ${file}.new && \ + touch -r ${file} ${file}.new && mv ${file}.new ${file} + done + + # Remove file which already exists as part of the mingw headers + rm -f common/include/guiddef.h + + cp -f ${srcdir}/CMakeLists.txt . + + patch -p1 -i ${srcdir}/jxrlib_warnings.patch + patch -p1 -i ${srcdir}/jxrlib_mingw.patch +} + +build() { + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + + declare -a extra_config + if check_option "debug" "n"; then + extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G'MSYS Makefiles' \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + "${extra_config[@]}" \ + ../${_realname} + + make +} + +package() { + cd "${srcdir}"/build-${CARCH} + make DESTDIR=${pkgdir} install +} diff --git a/mingw-w64-jxrlib/jxrlib_mingw.patch b/mingw-w64-jxrlib/jxrlib_mingw.patch new file mode 100644 index 0000000000..fe19cab194 --- /dev/null +++ b/mingw-w64-jxrlib/jxrlib_mingw.patch @@ -0,0 +1,93 @@ +diff -rupN jxrlib/common/include/wmspecstring.h jxrlib-new/common/include/wmspecstring.h +--- jxrlib/common/include/wmspecstring.h 2013-03-21 18:58:18.000000000 +0100 ++++ jxrlib-new/common/include/wmspecstring.h 2015-09-06 21:10:53.943039237 +0200 +@@ -334,7 +334,7 @@ void __pfx_assume(int, const char *); + + // Some CE versions don't have specstrings.h, some have very old version without + // __specstrings defined. So we handle CE separately in wmasalce.h +-#if defined(UNDER_CE) || defined(NO_WINDOWS) ++#if defined(UNDER_CE) || defined(NO_WINDOWS) || defined(MINGW) + #include "wmspecstringce.h" + #endif + +diff -rupN jxrlib/image/sys/ansi.h jxrlib-new/image/sys/ansi.h +--- jxrlib/image/sys/ansi.h 2013-03-28 18:34:06.000000000 +0100 ++++ jxrlib-new/image/sys/ansi.h 2015-09-06 21:18:54.051637086 +0200 +@@ -44,13 +44,8 @@ + //================================ + #define FORCE_INLINE + #define CDECL +-#if __LP64__ +-#define UINTPTR_T unsigned long long +-#define INTPTR_T long long +-#else +-#define UINTPTR_T unsigned int +-#define INTPTR_T int +-#endif ++#define UINTPTR_T uintptr_t ++#define INTPTR_T intptr_t + + + //================================ +diff -rupN jxrlib/image/sys/strcodec.h jxrlib-new/image/sys/strcodec.h +--- jxrlib/image/sys/strcodec.h 2015-09-06 02:21:20.337316724 +0200 ++++ jxrlib-new/image/sys/strcodec.h 2015-09-06 21:18:44.335483326 +0200 +@@ -40,7 +40,7 @@ + + //================================================================ + #ifdef ENABLE_OPTIMIZATIONS +-#if defined(WIN32) && !defined(_WIN64) ++#if defined(_MSC_VER) && !defined(_WIN64) + #define WMP_OPT_SSE2 + + #define WMP_OPT_CC_ENC +@@ -57,9 +57,9 @@ + + //================================================================ + //#ifdef WIN32 +-#if defined(WIN32) && !defined(UNDER_CE) // WIN32 seems to be defined always in VS2005 for ARM platform ++#if defined(_MSC_VER) && !defined(UNDER_CE) // WIN32 seems to be defined always in VS2005 for ARM platform + #define PLATFORM_X86 +-#include "..\x86\x86.h" ++#include "../x86/x86.h" + #endif + + #ifndef UNREFERENCED_PARAMETER +@@ -89,6 +89,7 @@ typedef unsigned __int64 U64; + + // The following macros depend on UINTPTR_T and INTPTR_T being properly defined + // so that they are equal to pointer width. Confirm and fail if our assumptions are wrong. ++ + CT_ASSERT(sizeof(UINTPTR_T) == sizeof(void*), strcodec1); + CT_ASSERT(sizeof(INTPTR_T) == sizeof(void*), strcodec2); + +@@ -450,7 +451,7 @@ typedef struct CWMImageStrCodec { + + struct WMPStream ** ppWStream; + +-#ifdef WIN32 ++#ifdef _MSC_VER + TCHAR **ppTempFile; + #else + char **ppTempFile; +diff -rupN jxrlib/jxrgluelib/JXRMeta.h jxrlib-new/jxrgluelib/JXRMeta.h +--- jxrlib/jxrgluelib/JXRMeta.h 2015-09-06 02:21:20.340316728 +0200 ++++ jxrlib-new/jxrgluelib/JXRMeta.h 2015-09-06 21:10:53.944039253 +0200 +@@ -28,7 +28,7 @@ + #pragma once + + #include +-#ifndef WIN32 ++#ifndef _MSC_VER + #include + #endif + +@@ -106,7 +106,7 @@ + #define WMP_valWMPhotoID WMP_valCompression + + +-#ifdef WIN32 ++#ifdef _MSC_VER + #define __in_win __in + #define __out_win __out + #endif diff --git a/mingw-w64-jxrlib/jxrlib_warnings.patch b/mingw-w64-jxrlib/jxrlib_warnings.patch new file mode 100644 index 0000000000..f7b8175ccd --- /dev/null +++ b/mingw-w64-jxrlib/jxrlib_warnings.patch @@ -0,0 +1,193 @@ +diff -rupN jxrlib/image/sys/common.h jxrlib-new/image/sys/common.h +--- jxrlib/image/sys/common.h 2013-03-21 17:30:54.000000000 +0100 ++++ jxrlib-new/image/sys/common.h 2015-09-03 10:31:06.528657911 +0200 +@@ -124,8 +124,8 @@ Void Adapt (CAdaptiveHuffman *pAdHuff, B + Void AdaptFixed (CAdaptiveHuffman *pAdHuff); + Void AdaptDiscriminant (CAdaptiveHuffman *pAdHuff); + +-#ifndef _PREFAST_ +-#pragma warning(disable:4068) +-#endif ++// #ifndef _PREFAST_ ++// #pragma warning(disable:4068) ++// #endif + + #endif // WMI_COMMON_H +diff -rupN jxrlib/image/sys/strcodec.c jxrlib-new/image/sys/strcodec.c +--- jxrlib/image/sys/strcodec.c 2013-03-20 19:16:21.000000000 +0100 ++++ jxrlib-new/image/sys/strcodec.c 2015-09-03 10:30:31.018971760 +0200 +@@ -668,9 +668,7 @@ ERR detach_SB(SimpleBitIO* pSB) + // WinCE ARM and Desktop x86 + #else + // other platform +-#ifdef _BIG__ENDIAN_ +-#define _byteswap_ulong(x) (x) +-#else // _BIG__ENDIAN_ ++#ifndef _BIG__ENDIAN_ + U32 _byteswap_ulong(U32 bits) + { + U32 r = (bits & 0xffu) << 24; +diff -rupN jxrlib/image/sys/strcodec.h jxrlib-new/image/sys/strcodec.h +--- jxrlib/image/sys/strcodec.h 2013-03-21 19:22:34.000000000 +0100 ++++ jxrlib-new/image/sys/strcodec.h 2015-09-03 10:30:31.019971779 +0200 +@@ -64,7 +64,7 @@ + + #ifndef UNREFERENCED_PARAMETER + #define UNREFERENCED_PARAMETER(P) { (P) = (P); } +-#endif UNREFERENCED_PARAMETER ++#endif // UNREFERENCED_PARAMETER + + #ifdef UNDER_CE + #define PLATFORM_WCE +@@ -673,6 +673,16 @@ void flushToByte(BitIOInfo* pIO); + pIO->cBitsUsed &= 16 - 1;\ + pIO->uiAccumulator = LOAD16(pIO->pbCurrent) << pIO->cBitsUsed;\ + return 0; +-// pIO->uiAccumulator = LOAD16(pIO->pbCurrent) & ((U32)(-1) >> pIO->cBitsUsed);\ + + void OutputPerfTimerReport(CWMImageStrCodec *pState); ++ ++#if (defined(WIN32) && !defined(UNDER_CE)) || (defined(UNDER_CE) && defined(_ARM_)) ++// WinCE ARM and Desktop x86 ++#else ++// other platform ++#ifdef _BIG__ENDIAN_ ++#define _byteswap_ulong(x) (x) ++#else // _BIG__ENDIAN_ ++U32 _byteswap_ulong(U32 bits); ++#endif // _BIG__ENDIAN_ ++#endif +\ No newline at end of file +diff -rupN jxrlib/jxrencoderdecoder/JxrDecApp.c jxrlib-new/jxrencoderdecoder/JxrDecApp.c +--- jxrlib/jxrencoderdecoder/JxrDecApp.c 2013-05-08 18:45:08.000000000 +0200 ++++ jxrlib-new/jxrencoderdecoder/JxrDecApp.c 2015-09-03 10:30:31.019971779 +0200 +@@ -423,7 +423,7 @@ ERR WmpDecAppCreateEncoderFromExt( + Call(GetTestEncodeIID(szExt, &pIID)); + + // Create encoder +- Call(PKTestFactory_CreateCodec(pIID, ppIE)); ++ Call(PKTestFactory_CreateCodec(pIID, (void**)ppIE)); + + Cleanup: + return err; +diff -rupN jxrlib/jxrencoderdecoder/JxrEncApp.c jxrlib-new/jxrencoderdecoder/JxrEncApp.c +--- jxrlib/jxrencoderdecoder/JxrEncApp.c 2013-05-28 20:58:22.000000000 +0200 ++++ jxrlib-new/jxrencoderdecoder/JxrEncApp.c 2015-09-03 10:30:31.020971798 +0200 +@@ -578,7 +578,7 @@ main(int argc, char* argv[]) + + //================================ + Call(PKCreateCodecFactory(&pCodecFactory, WMP_SDK_VERSION)); +- Call(pCodecFactory->CreateCodec(&IID_PKImageWmpEncode, &pEncoder)); ++ Call(pCodecFactory->CreateCodec(&IID_PKImageWmpEncode, (void**)&pEncoder)); + + //---------------------------------------------------------------- + Call(PKCreateTestFactory(&pTestFactory, WMP_SDK_VERSION)); +diff -rupN jxrlib/jxrgluelib/JXRGlueJxr.c jxrlib-new/jxrgluelib/JXRGlueJxr.c +--- jxrlib/jxrgluelib/JXRGlueJxr.c 2013-03-20 20:01:13.000000000 +0100 ++++ jxrlib-new/jxrgluelib/JXRGlueJxr.c 2015-09-03 10:30:31.021971818 +0200 +@@ -28,6 +28,7 @@ + //*@@@---@@@@****************************************************************** + #include + #include ++#include + + + static const char szHDPhotoFormat[] = "image/vnd.ms-photo"; +diff -rupN jxrlib/jxrgluelib/JXRMeta.h jxrlib-new/jxrgluelib/JXRMeta.h +--- jxrlib/jxrgluelib/JXRMeta.h 2013-03-20 19:06:24.000000000 +0100 ++++ jxrlib-new/jxrgluelib/JXRMeta.h 2015-09-03 10:30:31.021971818 +0200 +@@ -34,7 +34,7 @@ + + #ifndef UNREFERENCED_PARAMETER + #define UNREFERENCED_PARAMETER(P) { (P) = (P); } +-#endif UNREFERENCED_PARAMETER ++#endif // UNREFERENCED_PARAMETER + + //================================================================ + // Container +diff -rupN jxrlib/jxrtestlib/JXRTest.c jxrlib-new/jxrtestlib/JXRTest.c +--- jxrlib/jxrtestlib/JXRTest.c 2013-03-19 20:06:18.000000000 +0100 ++++ jxrlib-new/jxrtestlib/JXRTest.c 2015-09-03 10:30:31.022971837 +0200 +@@ -198,7 +198,7 @@ ERR PKTestFactory_CreateDecoderFromFile( + ERR err = WMP_errSuccess; + + char *pExt = NULL; +- PKIID* pIID = NULL; ++ const PKIID* pIID = NULL; + + struct WMPStream* pStream = NULL; + PKImageDecode* pDecoder = NULL; +@@ -214,7 +214,7 @@ ERR PKTestFactory_CreateDecoderFromFile( + Call(CreateWS_File(&pStream, szFilename, "rb")); + + // Create decoder +- Call(PKTestFactory_CreateCodec(pIID, ppDecoder)); ++ Call(PKTestFactory_CreateCodec(pIID, (void**)ppDecoder)); + pDecoder = *ppDecoder; + + // attach stream to decoder +@@ -232,7 +232,7 @@ ERR PKCreateTestFactory(PKCodecFactory** + + UNREFERENCED_PARAMETER( uVersion ); + +- Call(PKAlloc(ppCFactory, sizeof(**ppCFactory))); ++ Call(PKAlloc((void**)ppCFactory, sizeof(**ppCFactory))); + pCFactory = *ppCFactory; + + pCFactory->CreateCodec = PKTestFactory_CreateCodec; +@@ -287,7 +287,7 @@ ERR PKTestDecode_Release( + + pID->fStreamOwner && pID->pStream->Close(&pID->pStream); + +- return PKFree(ppID); ++ return PKFree((void**)ppID); + } + + ERR PKTestDecode_Create( +@@ -296,7 +296,7 @@ ERR PKTestDecode_Create( + ERR err = WMP_errSuccess; + PKTestDecode* pID = NULL; + +- Call(PKAlloc(ppID, sizeof(**ppID))); ++ Call(PKAlloc((void**)ppID, sizeof(**ppID))); + + pID = *ppID; + pID->Initialize = PKTestDecode_Initialize; +diff -rupN jxrlib/jxrtestlib/JXRTestHdr.c jxrlib-new/jxrtestlib/JXRTestHdr.c +--- jxrlib/jxrtestlib/JXRTestHdr.c 2013-03-20 17:40:08.000000000 +0100 ++++ jxrlib-new/jxrtestlib/JXRTestHdr.c 2015-09-03 10:30:31.022971837 +0200 +@@ -27,7 +27,7 @@ + //*@@@---@@@@****************************************************************** + #ifndef ANSI + #define _CRT_SECURE_NO_WARNINGS +-#endif ANSI ++#endif // ANSI + + #include + #include +diff -rupN jxrlib/jxrtestlib/JXRTestPnm.c jxrlib-new/jxrtestlib/JXRTestPnm.c +--- jxrlib/jxrtestlib/JXRTestPnm.c 2013-03-19 22:43:44.000000000 +0100 ++++ jxrlib-new/jxrtestlib/JXRTestPnm.c 2015-09-03 10:30:31.023971856 +0200 +@@ -27,7 +27,7 @@ + //*@@@---@@@@****************************************************************** + #ifndef ANSI + #define _CRT_SECURE_NO_WARNINGS +-#endif ANSI ++#endif // ANSI + + #include + +diff -rupN jxrlib/jxrtestlib/JXRTestTif.c jxrlib-new/jxrtestlib/JXRTestTif.c +--- jxrlib/jxrtestlib/JXRTestTif.c 2013-03-19 20:17:12.000000000 +0100 ++++ jxrlib-new/jxrtestlib/JXRTestTif.c 2015-09-03 10:30:31.023971856 +0200 +@@ -909,8 +909,8 @@ ERR PKImageDecode_Release_TIF(PKTestDeco + + PKTestDecode *pID = *ppID; + +- Call(WMPFree(&pID->EXT.TIF.uStripOffsets)); +- Call(WMPFree(&pID->EXT.TIF.uStripByteCounts)); ++ Call(WMPFree((void**)&pID->EXT.TIF.uStripOffsets)); ++ Call(WMPFree((void**)&pID->EXT.TIF.uStripByteCounts)); + + Call(PKTestDecode_Release(ppID)); + From b45bbb6c17c545dc41f12fc4c074e459bf362a02 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 29 Dec 2015 22:52:20 +0300 Subject: [PATCH 2023/2060] FreeImage: Update to 3.17.0 --- ...reeImage-3.16.0_disable-some-plugins.patch | 64 -- .../FreeImage-3.16.0_mingw-makefiles.patch | 405 ------------ .../FreeImage-3.16.0_unbundle.patch | 594 ------------------ .../FreeImage-3.17.0_CVE-2015-0852.patch | 216 +++++++ .../FreeImage-3.17.0_mingw-makefiles.patch | 167 +++++ .../FreeImage-3.17.0_unbundle.patch | 548 ++++++++++++++++ mingw-w64-FreeImage/PKGBUILD | 110 ++-- 7 files changed, 975 insertions(+), 1129 deletions(-) delete mode 100644 mingw-w64-FreeImage/FreeImage-3.16.0_disable-some-plugins.patch delete mode 100644 mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch delete mode 100644 mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch create mode 100644 mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch create mode 100644 mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch create mode 100644 mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch diff --git a/mingw-w64-FreeImage/FreeImage-3.16.0_disable-some-plugins.patch b/mingw-w64-FreeImage/FreeImage-3.16.0_disable-some-plugins.patch deleted file mode 100644 index 831ba5b321..0000000000 --- a/mingw-w64-FreeImage/FreeImage-3.16.0_disable-some-plugins.patch +++ /dev/null @@ -1,64 +0,0 @@ -diff -rupN FreeImage/FreeImage.2008.vcproj FreeImage-new/FreeImage.2008.vcproj ---- FreeImage/FreeImage.2008.vcproj 2014-01-16 00:27:04.000000000 +0100 -+++ FreeImage-new/FreeImage.2008.vcproj 2014-01-16 00:49:42.334523250 +0100 -@@ -832,10 +828,6 @@ - > - - -- -- - -diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h ---- FreeImage/Source/FreeImage.h 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage.h 2014-01-16 00:49:42.338523316 +0100 -@@ -456,6 +461,10 @@ FI_ENUM(FREE_IMAGE_DITHER) { - FID_BAYER16x16 = 6 // Bayer ordered dispersed dot dithering (order 4 dithering matrix) - }; - -+/* The FreeImage_JPEGTransform functions are deliberately disabled in the -+ Fedora build of FreeImage as they require that FreeImage uses a private copy -+ of libjpeg which is a no no because of security reasons. */ -+#if 0 - /** Lossless JPEG transformations - Constants used in FreeImage_JPEGTransform - */ -@@ -469,6 +478,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) { - FIJPEG_OP_ROTATE_180 = 6, // 180-degree rotation - FIJPEG_OP_ROTATE_270 = 7 // 270-degree clockwise (or 90 ccw) - }; -+#endif - - /** Tone mapping operators. - Constants used in FreeImage_ToneMapping. -@@ -704,7 +714,6 @@ typedef void (DLL_CALLCONV *FI_InitProc) - #define PNG_DEFAULT 0 - #define PNG_IGNOREGAMMA 1 //! loading: avoid gamma correction - #define PNG_Z_BEST_SPEED 0x0001 //! save using ZLib level 1 compression flag (default value is 6) --#define PNG_Z_DEFAULT_COMPRESSION 0x0006 //! save using ZLib level 6 compression flag (default recommended value) - #define PNG_Z_BEST_COMPRESSION 0x0009 //! save using ZLib level 9 compression flag (default value is 6) - #define PNG_Z_NO_COMPRESSION 0x0100 //! save without ZLib compression - #define PNG_INTERLACED 0x0200 //! save using Adam7 interlacing (use | to combine with other save flags) -@@ -1048,14 +1057,19 @@ DLL_API FIBITMAP *DLL_CALLCONV FreeImage - // JPEG lossless transformation routines - // -------------------------------------------------------------------------- - -+/* The FreeImage_JPEGTransform functions are deliberately disabled in the -+ Fedora build of FreeImage as they require that FreeImage uses a private copy -+ of libjpeg which is a no no because of security reasons. */ -+#if 0 - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCropU(const wchar_t *src_file, const wchar_t *dst_file, int left, int top, int right, int bottom); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformFromHandle(FreeImageIO* src_io, fi_handle src_handle, FreeImageIO* dst_io, fi_handle dst_handle, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); -+#endif - - - // -------------------------------------------------------------------------- diff --git a/mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch b/mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch deleted file mode 100644 index 9946754fa7..0000000000 --- a/mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch +++ /dev/null @@ -1,405 +0,0 @@ ---- FreeImage/Makefile.fip.orig 2014-04-16 18:58:24.825800000 +0400 -+++ FreeImage/Makefile.fip 2014-04-16 19:12:58.956000000 +0400 -@@ -1,81 +1,97 @@ --# Linux makefile for FreeImagePlus -+# Mingw makefile for FreeImagePlus - - # This file can be generated by ./genfipsrclist.sh - include fipMakefile.srcs - --# General configuration variables: --DESTDIR ?= / --INCDIR ?= $(DESTDIR)/usr/include --INSTALLDIR ?= $(DESTDIR)/usr/lib -- --# Converts cr/lf to just lf --DOS2UNIX = dos2unix -- --LIBRARIES = -lstdc++ -- --MODULES = $(SRCS:.c=.o) --MODULES := $(MODULES:.cpp=.o) --CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden --# OpenJPEG --CFLAGS += -DOPJ_STATIC --# LibRaw --CFLAGS += -DNO_LCMS --# LibJXR --CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ --CFLAGS += $(INCLUDE) --CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy --# LibJXR --CXXFLAGS += -D__ANSI__ --CXXFLAGS += $(INCLUDE) -- --ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) -- CFLAGS += -fPIC -- CXXFLAGS += -fPIC --endif -+CC = $(MINGW_TARGET)-gcc -+CXX = $(MINGW_TARGET)-g++ -+LD = $(MINGW_TARGET)-g++ -+AR = ar -+DLLTOOL = dlltool -+RC = windres -+PKGCONFIG = pkg-config -+ -+CP = cp -+MD = mkdir -+RM = rm -+ -+# General configuration variables. -+DESTDIR ?= $(SystemRoot) -+INSTALLDIR ?= $(DESTDIR)/system32 -+DISTDIR ?= Dist -+SRCDIR ?= Wrapper/FreeImagePlus/ -+HEADER = FreeImagePlus.h -+RCFILE = Wrapper/FreeImagePlus/FreeImagePlus.rc -+ -+# Uncomment this variable to make a static library. This may -+# also be specified as an environment variable and can hold -+# any of STATIC and SHARED and must be in uppercase letters. -+# The FreeImage library type defaults to SHARED. -+FREEIMAGE_LIBRARY_TYPE ?= SHARED -+ -+WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB -+WIN32_SHARED_FLAGS = -DFIP_EXPORTS -+ -+# Converts cr/lf to just lf -+DOS2UNIX = dos2unix -+ -+LIBRARIES = -lstdc++ -lfreeimage-$(VER_MAJOR).$(VER_MINOR) -L. -+MODULES = $(SRCS:.c=.o) -+MODULES := $(MODULES:.cpp=.o) -+RESOURCE = $(RCFILE:.rc=.coff) -+CFLAGS += -ISource $(INCLUDE) -DDISABLE_PERF_MEASUREMENT $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS) -+CXXFLAGS += -ISource $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS) -+LDFLAGS += -shared -Wl,-soname,$(SOLIBNAME) -+LDFLAGS += -LDist -lfreeimage -lgdi32 - --TARGET = freeimageplus -+TARGET = freeimageplus - STATICLIB = lib$(TARGET).a --SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so --LIBNAME = lib$(TARGET).so --VERLIBNAME = $(LIBNAME).$(VER_MAJOR) --HEADER = Source/FreeImage.h --HEADERFIP = Wrapper/FreeImagePlus/FreeImagePlus.h -+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll -+IMPORTLIB = lib$(TARGET).dll.a -+EXPORTLIB = $(TARGET).exp -+SOLIBNAME = $(SHAREDLIB) - -+DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER)) -+DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER)) - --default: all -- --all: dist -+TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB) -+TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE)) - --dist: FreeImage -- cp *.a Dist -- cp *.so Dist -- cp Source/FreeImage.h Dist -- cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist -+default: all - --dos2unix: -- @$(DOS2UNIX) $(SRCS) -+all: $(TARGETLIB) $(TARGETDIST) - --FreeImage: $(STATICLIB) $(SHAREDLIB) -+rebuild: clean all - --.c.o: -+%.o: %.c - $(CC) $(CFLAGS) -c $< -o $@ - --.cpp.o: -+%.o: %.cpp - $(CXX) $(CXXFLAGS) -c $< -o $@ - -+%.coff: %.rc -+ $(RC) $(RCFLAGS) -o $@ $< -+ -+$(DISTDIR)/%: % -+ $(CP) $< $@ -+ -+$(DISTDIR)/%: $(SRCDIR)/% -+ $(CP) $< $@ -+ - $(STATICLIB): $(MODULES) -- $(AR) r $@ $(MODULES) -+ $(AR) rs $@ $(MODULES) -+ -+$(IMPORTLIB) $(EXPORTLIB): $(MODULES) -+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES) -+ -+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE) -+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS) - --$(SHAREDLIB): $(MODULES) -- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) -+$(DISTDIR): -+ $(MD) $(DISTDIR) - --install: -- install -d $(INCDIR) $(INSTALLDIR) -- install -m 644 -o root -g root $(HEADER) $(INCDIR) -- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR) -- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) -- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) -+$(TARGETDIST): $(DISTDIR) - - clean: -- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) -+ $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB) - -diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu ---- FreeImage/Makefile.gnu 2014-01-16 00:27:04.000000000 +0100 -+++ FreeImage-new/Makefile.gnu 2014-01-16 00:49:42.335523267 +0100 -@@ -11,7 +11,8 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib - # Converts cr/lf to just lf - DOS2UNIX = dos2unix - --LIBRARIES = -lstdc++ -+INCLUDE += $(shell pkg-config --cflags libopenjp2 libpng libraw OpenEXR zlib libtiff-4 libwebp) -+LIBRARIES = -lstdc++ $(shell pkg-config --libs libopenjp2 libpng libraw OpenEXR zlib libtiff-4 libwebp libwebpdecoder libwebpdemux libwebpmux) -ljpeg -lwebp - - MODULES = $(SRCS:.c=.o) - MODULES := $(MODULES:.cpp=.o) ---- FreeImage/Makefile.mingw.orig 2014-03-15 22:52:28.000000000 +0400 -+++ FreeImage/Makefile.mingw 2014-04-16 19:12:32.030400000 +0400 -@@ -1,136 +1,94 @@ --# MinGW makefile for FreeImage -- --# This file can be generated by ./gensrclist.sh --include Makefile.srcs -- --# General configuration variables. --DESTDIR ?= $(SystemRoot) --INSTALLDIR ?= $(DESTDIR)/system32 --DISTDIR ?= Dist --SRCDIR ?= Source --HEADER = FreeImage.h --RCFILE = FreeImage.rc -- --# Uncomment this variable to make a static library. This may --# also be specified as an environment variable and can hold --# any of STATIC and SHARED and must be in uppercase letters. --# Default: SHARED --#FREEIMAGE_LIBRARY_TYPE = STATIC -- --# Redefine the compiler (CC defaults to cc for MinGW's make, --# however there's only gcc available with MinGW). --CC = gcc -- --# Redefine the linker (we use g++ for linking, since MinGW's --# command ld comes with wrong (Linux) standard library search --# paths). --LD = g++ -- --#Define the dlltool command. --DLLTOOL = dlltool -- --#Define the resource compiler. --RC = windres -- --# Define the copy command. --CP = cp -- --# Define the mkdir command. --MD = mkdir -- --# Define the remove command. --RM = rm -- --# Define additional libraries needed. --# libstdc++ is included by default with MinGW, however for --# WIN32 based builds, LibRawLite needs the winsock libraries. --LIBRARIES = -lws2_32 -- --# Define some additional symboles needed for WIN32 based builds. --WIN32_CFLAGS = -DWINVER=0x0500 $(LIB_TYPE_FLAGS) -DOPJ_STATIC --WIN32_CXXFLAGS = $(WIN32_CFLAGS) -DLIBRAW_NODLL -- --# Workaround for LibRawLite, which does not include C++ header --# file stdexcept, which is casually included with MSVC but not --# with MinGW. This can be removed after LibRawLite got control --# over its includes again. --WIN32_CXXFLAGS += -include stdexcept -- --# Define DLL image header information flags for the linker. --WIN32_LDFLAGS = -Wl,--subsystem,windows:5.0,--major-os-version,5 -- --WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB --WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS -- --MODULES = $(SRCS:.c=.o) --MODULES := $(MODULES:.cpp=.o) --RESOURCE = $(RCFILE:.rc=.coff) --CFLAGS ?= -O3 -fexceptions -DNDEBUG -DDISABLE_PERF_MEASUREMENT $(WIN32_CFLAGS) --CFLAGS += $(INCLUDE) --CXXFLAGS ?= -O3 -fexceptions -Wno-ctor-dtor-privacy -DNDEBUG $(WIN32_CXXFLAGS) --CXXFLAGS += $(INCLUDE) --RCFLAGS ?= -DNDEBUG --LDFLAGS ?= -s -shared -static -Wl,-soname,$(SOLIBNAME) $(WIN32_LDFLAGS) --DLLTOOLFLAGS ?= --add-stdcall-underscore -- --TARGET = FreeImage --STATICLIB = lib$(TARGET).a --SHAREDLIB = $(TARGET).dll --IMPORTLIB = $(TARGET).lib --EXPORTLIB = $(TARGET).exp --SOLIBNAME = $(SHAREDLIB).$(VER_MAJOR) -- --DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER)) --DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER)) -- --# The FreeImage library type defaults to SHARED. --FREEIMAGE_LIBRARY_TYPE ?= SHARED -- --TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB) --TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE)) --LIB_TYPE_FLAGS = $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS) -- --default: all -- --all: mkdist -- --rebuild: clean all -- --mkdist: FreeImage $(TARGETDIST) -- --FreeImage: $(TARGETLIB) -- --%.o: %.c -- $(CC) $(CFLAGS) -c $< -o $@ -- --%.o: %.cpp -- $(CXX) $(CXXFLAGS) -c $< -o $@ -- --%.coff: %.rc -- $(RC) $(RCFLAGS) -o $@ $< -- --$(DISTDIR)/%: % -- $(CP) $< $@ -- --$(DISTDIR)/%: $(SRCDIR)/% -- $(CP) $< $@ -- --$(STATICLIB): $(MODULES) -- $(AR) rs $@ $(MODULES) -- --$(IMPORTLIB) $(EXPORTLIB): $(MODULES) -- $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES) -- --$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE) -- $(LD) $(LDFLAGS) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LIBRARIES) -- --$(DISTDIR): -- $(MD) $(DISTDIR) -- --$(TARGETDIST): $(DISTDIR) -- --install: -- $(CP) $(SHAREDLIB) $(INSTALLDIR) -- --clean: -- $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB) -+# MinGW makefile for FreeImage -+ -+# This file can be generated by ./gensrclist.sh -+include Makefile.srcs -+ -+CC = gcc -+CXX = g++ -+LD = g++ -+AR = ar -+DLLTOOL = dlltool -+RC = windres -+PKGCONFIG = pkg-config -+ -+CP = cp -+MD = mkdir -+RM = rm -+ -+# General configuration variables. -+DESTDIR ?= $(SystemRoot) -+INSTALLDIR ?= $(DESTDIR)/system32 -+DISTDIR ?= Dist -+SRCDIR ?= Source -+HEADER = FreeImage.h -+RCFILE = FreeImage.rc -+ -+# Uncomment this variable to make a static library. This may -+# also be specified as an environment variable and can hold -+# any of STATIC and SHARED and must be in uppercase letters. -+# The FreeImage library type defaults to SHARED. -+FREEIMAGE_LIBRARY_TYPE ?= SHARED -+ -+WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB -+WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS -+ -+MODULES = $(SRCS:.c=.o) -+MODULES := $(MODULES:.cpp=.o) -+RESOURCE = $(RCFILE:.rc=.coff) -+CFLAGS += $(INCLUDE) -DDISABLE_PERF_MEASUREMENT $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS) -+CFLAGS += $(shell $(PKGCONFIG) --cflags libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp) -+CXXFLAGS += $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS) -+CXXFLAGS += $(shell $(PKGCONFIG) --cflags libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp) -+LDFLAGS += -shared -Wl,-soname,$(SOLIBNAME) -+LDFLAGS += $(shell $(PKGCONFIG) --libs libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp libwebpdecoder libwebpdemux libwebpmux) -ljpeg -+ -+TARGET = freeimage -+STATICLIB = lib$(TARGET).a -+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll -+IMPORTLIB = lib$(TARGET).dll.a -+EXPORTLIB = $(TARGET).exp -+SOLIBNAME = $(SHAREDLIB) -+ -+DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER)) -+DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER)) -+ -+TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB) -+TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE)) -+ -+default: all -+ -+all: $(TARGETLIB) $(TARGETDIST) -+ -+rebuild: clean all -+ -+%.o: %.c -+ $(CC) $(CFLAGS) -c $< -o $@ -+ -+%.o: %.cpp -+ $(CXX) $(CXXFLAGS) -c $< -o $@ -+ -+%.coff: %.rc -+ $(RC) $(RCFLAGS) -o $@ $< -+ -+$(DISTDIR)/%: % -+ $(CP) $< $@ -+ -+$(DISTDIR)/%: $(SRCDIR)/% -+ $(CP) $< $@ -+ -+$(STATICLIB): $(MODULES) -+ $(AR) rs $@ $(MODULES) -+ -+$(IMPORTLIB) $(EXPORTLIB): $(MODULES) -+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES) -+ -+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE) -+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS) -+ -+$(DISTDIR): -+ $(MD) $(DISTDIR) -+ -+$(TARGETDIST): $(DISTDIR) -+ -+clean: -+ $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB) diff --git a/mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch b/mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch deleted file mode 100644 index 3e47c5e075..0000000000 --- a/mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch +++ /dev/null @@ -1,594 +0,0 @@ -diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh ---- FreeImage/genfipsrclist.sh 2014-01-16 00:27:04.000000000 +0100 -+++ FreeImage-new/genfipsrclist.sh 2014-01-16 00:49:42.334523250 +0100 -@@ -1,6 +1,6 @@ - #!/bin/sh - --DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus" -+DIRLIST=" Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus" - - - echo "VER_MAJOR = 3" > fipMakefile.srcs -diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh ---- FreeImage/gensrclist.sh 2014-01-16 00:27:04.000000000 +0100 -+++ FreeImage-new/gensrclist.sh 2014-01-16 00:49:42.335523267 +0100 -@@ -1,6 +1,6 @@ - #!/bin/sh - --DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib" -+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib" - - echo "VER_MAJOR = 3" > Makefile.srcs - echo "VER_MINOR = 16.0" >> Makefile.srcs -diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp ---- FreeImage/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:49:42.335523267 +0100 -@@ -21,7 +21,7 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibOpenJPEG/openjpeg.h" -+#include - #include "J2KHelper.h" - - // -------------------------------------------------------------------------- -diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp ---- FreeImage/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:49:42.336523283 +0100 -@@ -22,16 +22,16 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../OpenEXR/IlmImf/ImfIO.h" --#include "../OpenEXR/Iex/Iex.h" --#include "../OpenEXR/IlmImf/ImfOutputFile.h" --#include "../OpenEXR/IlmImf/ImfInputFile.h" --#include "../OpenEXR/IlmImf/ImfRgbaFile.h" --#include "../OpenEXR/IlmImf/ImfChannelList.h" --#include "../OpenEXR/IlmImf/ImfRgba.h" --#include "../OpenEXR/IlmImf/ImfArray.h" --#include "../OpenEXR/IlmImf/ImfPreviewImage.h" --#include "../OpenEXR/Half/half.h" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include - - - // ========================================================== -diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp ---- FreeImage/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:49:42.336523283 +0100 -@@ -21,7 +21,7 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibOpenJPEG/openjpeg.h" -+#include - #include "J2KHelper.h" - - // ========================================================== -diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp ---- FreeImage/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:49:42.336523283 +0100 -@@ -21,7 +21,7 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibOpenJPEG/openjpeg.h" -+#include - #include "J2KHelper.h" - - // ========================================================== -diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp ---- FreeImage/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:49:42.336523283 +0100 -@@ -35,9 +35,9 @@ extern "C" { - #undef FAR - #include - --#include "../LibJPEG/jinclude.h" --#include "../LibJPEG/jpeglib.h" --#include "../LibJPEG/jerror.h" -+#include -+#include -+#include - } - - #include "FreeImage.h" -diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp ---- FreeImage/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:49:42.337523300 +0100 -@@ -37,8 +37,8 @@ - - // ---------------------------------------------------------- - --#include "../ZLib/zlib.h" --#include "../LibPNG/png.h" -+#include -+#include - - // ---------------------------------------------------------- - -@@ -106,7 +106,11 @@ ReadMetadata(png_structp png_ptr, png_in - tag = FreeImage_CreateTag(); - if(!tag) return FALSE; - -+#ifdef PNG_iTXt_SUPPORTED - DWORD tag_length = (DWORD) MAX(text_ptr[i].text_length, text_ptr[i].itxt_length); -+#else -+ DWORD tag_length = text_ptr[i].text_length; -+#endif - - FreeImage_SetTagLength(tag, tag_length); - FreeImage_SetTagCount(tag, tag_length); -@@ -153,10 +157,11 @@ WriteMetadata(png_structp png_ptr, png_i - text_metadata.key = (char*)FreeImage_GetTagKey(tag); // keyword, 1-79 character description of "text" - text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "") - text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string -+#ifdef PNG_iTXt_SUPPORTED - text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string - text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer - text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer -- -+#endif - // set the tag - png_set_text(png_ptr, info_ptr, &text_metadata, 1); - -@@ -175,10 +180,11 @@ WriteMetadata(png_structp png_ptr, png_i - text_metadata.key = (char*)g_png_xmp_keyword; // keyword, 1-79 character description of "text" - text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "") - text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string -+#ifdef PNG_iTXt_SUPPORTED - text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string - text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer - text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer -- -+#endif - // set the tag - png_set_text(png_ptr, info_ptr, &text_metadata, 1); - bResult &= TRUE; -diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp ---- FreeImage/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:55:13.692904877 +0100 -@@ -19,7 +19,7 @@ - // Use at your own risk! - // ========================================================== - --#include "../LibRawLite/libraw/libraw.h" -+#include - - #include "FreeImage.h" - #include "Utilities.h" -diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp ---- FreeImage/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:49:42.337523300 +0100 -@@ -37,9 +37,9 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibTIFF4/tiffiop.h" -+#include - #include "../Metadata/FreeImageTag.h" --#include "../OpenEXR/Half/half.h" -+#include - - #include "FreeImageIO.h" - #include "PSDParser.h" -@@ -202,27 +202,9 @@ TIFFFdOpen(thandle_t handle, const char - _tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc, - _tiffSizeProc, _tiffMapProc, _tiffUnmapProc); - -- // Warning: tif_fd is declared as 'int' currently (see libTIFF), -- // may result in incorrect file pointers inside libTIFF on -- // 64bit machines (sizeof(int) != sizeof(long)). -- // Needs to be fixed within libTIFF. -- if (tif) { -- tif->tif_fd = (long)handle; -- } -- - return tif; - } - --/** --Open a TIFF file for reading or writing --@param name --@param mode --*/ --TIFF* --TIFFOpen(const char* name, const char* mode) { -- return 0; --} -- - // ---------------------------------------------------------- - // TIFF library FreeImage-specific routines. - // ---------------------------------------------------------- -diff -rupN FreeImage/Source/FreeImage/PluginG3.cpp FreeImage-new/Source/FreeImage/PluginG3.cpp ---- FreeImage/Source/FreeImage/PluginG3.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginG3.cpp 2014-01-16 00:49:42.336523283 +0100 -@@ -20,7 +20,7 @@ - // Use at your own risk! - // ========================================================== - --#include "../LibTIFF4/tiffiop.h" -+#include - - #include "FreeImage.h" - #include "Utilities.h" -diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp ---- FreeImage/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:49:42.337523300 +0100 -@@ -37,10 +37,10 @@ - - #include "../Metadata/FreeImageTag.h" - --#include "../LibWebP/src/webp/decode.h" --#include "../LibWebP/src/webp/encode.h" --#include "../LibWebP/src/enc/vp8enci.h" --#include "../LibWebP/src/webp/mux.h" -+#include -+#include -+//#include "../LibWebP/src/enc/vp8enci.h" -+#include - - // ========================================================== - // Plugin Interface -diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp ---- FreeImage/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:49:42.338523316 +0100 -@@ -19,10 +19,9 @@ - // Use at your own risk! - // ========================================================== - --#include "../ZLib/zlib.h" -+#include - #include "FreeImage.h" - #include "Utilities.h" --#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */ - - /** - Compresses a source buffer into a target buffer, using the ZLib library. -@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t - return 0; - case Z_OK: { - // patch header, setup crc and length (stolen from mod_trace_output) -- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code -+ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix) - crc = crc32(crc, source, source_size); - memcpy(target + 4 + dest_len, &crc, 4); - memcpy(target + 8 + dest_len, &source_size, 4); -diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp ---- FreeImage/Source/Metadata/XTIFF.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/Metadata/XTIFF.cpp 2014-01-16 00:49:42.338523316 +0100 -@@ -29,13 +29,22 @@ - #pragma warning (disable : 4786) // identifier was truncated to 'number' characters - #endif - --#include "../LibTIFF4/tiffiop.h" -+#include - - #include "FreeImage.h" - #include "Utilities.h" - #include "FreeImageTag.h" - #include "FIRational.h" - -+/* -+ * Caveat emperor this is a private libtiff functions which we need, -+ * there is no better solution I'm afraid. -+ */ -+extern "C" -+{ -+ int _TIFFDataSize(TIFFDataType type); -+} -+ - // ---------------------------------------------------------- - // Extended TIFF Directory GEO Tag Support - // ---------------------------------------------------------- -@@ -205,7 +214,7 @@ tiff_write_geotiff_profile(TIFF *tif, FI - Read a single exif tag - */ - static BOOL --tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, TIFFDirectory *td, uint32 tag) { -+tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, uint32 tag) { - const TIFFField *fip; - uint32 value_count; - int mem_alloc = 0; -@@ -226,8 +235,8 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - return TRUE; - } - -- if(fip->field_passcount) { //<- "passcount" means "returns count" -- if (fip->field_readcount != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count" -+ if(TIFFFieldPassCount(fip)) { //<- "passcount" means "returns count" -+ if (TIFFFieldReadCount(fip) != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count" - - // assume TIFF_VARIABLE (uses SHORT count) - uint16 value_count16; -@@ -244,35 +253,37 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - - // determine count - -- if (fip->field_readcount == TIFF_VARIABLE || fip->field_readcount == TIFF_VARIABLE2) { -+ if (TIFFFieldReadCount(fip) == TIFF_VARIABLE || TIFFFieldReadCount(fip) == TIFF_VARIABLE2) { - value_count = 1; -- } else if (fip->field_readcount == TIFF_SPP) { -- value_count = td->td_samplesperpixel; -+ } else if (TIFFFieldReadCount(fip) == TIFF_SPP) { -+ uint16 spp; -+ TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, &spp); -+ value_count = spp; - } else { -- value_count = fip->field_readcount; -+ value_count = TIFFFieldReadCount(fip); - } - - // access fields as pointers to data - // (### determining this is NOT robust... and hardly can be. It is implemented looking the _TIFFVGetField code) - -- if(fip->field_tag == TIFFTAG_TRANSFERFUNCTION) { -+ if(TIFFFieldTag(fip) == TIFFTAG_TRANSFERFUNCTION) { - // reading this tag cause a bug probably located somewhere inside libtiff - return TRUE; - } - -- if ((fip->field_type == TIFF_ASCII -- || fip->field_readcount == TIFF_VARIABLE -- || fip->field_readcount == TIFF_VARIABLE2 -- || fip->field_readcount == TIFF_SPP -+ if ((TIFFFieldDataType(fip) == TIFF_ASCII -+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE -+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE2 -+ || TIFFFieldReadCount(fip) == TIFF_SPP - || value_count > 1) - -- && fip->field_tag != TIFFTAG_PAGENUMBER -- && fip->field_tag != TIFFTAG_HALFTONEHINTS -- && fip->field_tag != TIFFTAG_YCBCRSUBSAMPLING -- && fip->field_tag != TIFFTAG_DOTRANGE -+ && TIFFFieldTag(fip) != TIFFTAG_PAGENUMBER -+ && TIFFFieldTag(fip) != TIFFTAG_HALFTONEHINTS -+ && TIFFFieldTag(fip) != TIFFTAG_YCBCRSUBSAMPLING -+ && TIFFFieldTag(fip) != TIFFTAG_DOTRANGE - -- && fip->field_tag != TIFFTAG_BITSPERSAMPLE //<- these two are tricky - -- && fip->field_tag != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value -+ && TIFFFieldTag(fip) != TIFFTAG_BITSPERSAMPLE //<- these two are tricky: -+ && TIFFFieldTag(fip) != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value - ) { - if(TIFFGetField(tif, tag, &raw_data) != 1) { - return TRUE; -@@ -281,7 +292,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - - // access fields as values - -- const int value_size = _TIFFDataSize(fip->field_type); -+ const int value_size = _TIFFDataSize((TIFFFieldDataType(fip))); - raw_data = _TIFFmalloc(value_size * value_count); - mem_alloc = 1; - int ok = FALSE; -@@ -302,7 +313,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - break; - */ - default: -- FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", fip->field_name); -+ FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", TIFFFieldName(fip)); - break; - } - if(ok != 1) { -@@ -325,59 +336,59 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - FreeImage_SetTagID(fitag, (WORD)tag); - FreeImage_SetTagKey(fitag, key); - -- switch(fip->field_type) { -+ switch(TIFFFieldDataType(fip)) { - case TIFF_BYTE: - FreeImage_SetTagType(fitag, FIDT_BYTE); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_UNDEFINED: - FreeImage_SetTagType(fitag, FIDT_UNDEFINED); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_SBYTE: - FreeImage_SetTagType(fitag, FIDT_SBYTE); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_SHORT: - FreeImage_SetTagType(fitag, FIDT_SHORT); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_SSHORT: - FreeImage_SetTagType(fitag, FIDT_SSHORT); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_LONG: - FreeImage_SetTagType(fitag, FIDT_LONG); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_IFD: - FreeImage_SetTagType(fitag, FIDT_IFD); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_SLONG: - FreeImage_SetTagType(fitag, FIDT_SLONG); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; -@@ -392,7 +403,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - rvalue[2*i+1] = rational.getDenominator(); - } - FreeImage_SetTagType(fitag, FIDT_RATIONAL); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, rvalue); - free(rvalue); -@@ -409,7 +420,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - rvalue[2*i+1] = rational.getDenominator(); - } - FreeImage_SetTagType(fitag, FIDT_RATIONAL); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, rvalue); - free(rvalue); -@@ -418,35 +429,35 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - - case TIFF_FLOAT: - FreeImage_SetTagType(fitag, FIDT_FLOAT); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_DOUBLE: - FreeImage_SetTagType(fitag, FIDT_DOUBLE); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_LONG8: // BigTIFF 64-bit unsigned integer - FreeImage_SetTagType(fitag, FIDT_LONG8); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_IFD8: // BigTIFF 64-bit unsigned integer (offset) - FreeImage_SetTagType(fitag, FIDT_IFD8); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_SLONG8: // BigTIFF 64-bit signed integer - FreeImage_SetTagType(fitag, FIDT_SLONG8); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; -@@ -489,16 +500,16 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M - - TagLib& tagLib = TagLib::instance(); - -- TIFFDirectory *td = &tif->tif_dir; -- - count = (short) TIFFGetTagListCount(tif); - for(i = 0; i < count; i++) { - uint32 tag = TIFFGetTagListEntry(tif, i); - // read the tag -- if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, td, tag)) -+ if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, tag)) - return FALSE; - } - -+/* Disabled for Fedora as it is using internal library structures. */ -+#if 0 - // we want to know values of standard tags too!! - - // loop over all Core Directory Tags -@@ -533,13 +544,14 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M - - // process *all* other tags (some will be ignored) - -- tiff_read_exif_tag(tif, md_model, dib, tagLib, td, fld->field_tag); -+ tiff_read_exif_tag(tif, md_model, dib, tagLib, fld->field_tag); - - - lastTag = fld->field_tag; - } - - } -+#endif - - return TRUE; - -@@ -611,6 +623,10 @@ Write all known exif tags - */ - BOOL - tiff_write_exif_tags(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib) { -+/* Disabled for Fedora as it is using internal library structures. Siberia -+ * winter on upstream developer! :-) */ -+ return FALSE; -+#if 0 - char defaultKey[16]; - - // only EXIF_MAIN so far -@@ -662,4 +678,5 @@ tiff_write_exif_tags(TIFF *tif, TagLib:: - } - - return TRUE; -+#endif - } -diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp ---- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:49:42.338523316 +0100 -@@ -26,10 +26,10 @@ - #undef FAR - #include - --#include "../LibJPEG/jinclude.h" --#include "../LibJPEG/jpeglib.h" --#include "../LibJPEG/jerror.h" --#include "../LibJPEG/transupp.h" -+#include -+#include -+#include -+#include - } - - #include "FreeImage.h" -diff -rupN FreeImage/Source/LibJXR/image/sys/strcodec.c FreeImage-new/Source/LibJXR/image/sys/strcodec.c ---- FreeImage/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:49:42.338523316 +0100 -@@ -664,7 +664,7 @@ - //================================================================ - // Memory access functions - //================================================================ --#if (defined(WIN32) && !defined(UNDER_CE) && !defined(__MINGW32__)) || (defined(UNDER_CE) && defined(_ARM_)) -+#if (defined(WIN32) && !defined(UNDER_CE)) || (defined(UNDER_CE) && defined(_ARM_)) - // WinCE ARM and Desktop x86 - #else - // other platform diff --git a/mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch b/mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch new file mode 100644 index 0000000000..19ec93a10e --- /dev/null +++ b/mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch @@ -0,0 +1,216 @@ +diff -rupN FreeImage/Source/FreeImage/PluginPCX.cpp FreeImage-new/Source/FreeImage/PluginPCX.cpp +--- FreeImage/Source/FreeImage/PluginPCX.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginPCX.cpp 2015-09-05 02:44:55.429436425 +0200 +@@ -30,7 +30,7 @@ + // Constants + headers + // ---------------------------------------------------------- + +-#define IO_BUF_SIZE 2048 ++#define PCX_IO_BUF_SIZE 2048 + + // ---------------------------------------------------------- + +@@ -120,17 +120,17 @@ readline(FreeImageIO &io, fi_handle hand + + while (length--) { + if (count == 0) { +- if (*ReadPos >= IO_BUF_SIZE - 1 ) { +- if (*ReadPos == IO_BUF_SIZE - 1) { ++ if (*ReadPos >= PCX_IO_BUF_SIZE - 1 ) { ++ if (*ReadPos == PCX_IO_BUF_SIZE - 1) { + // we still have one BYTE, copy it to the start pos + +- *ReadBuf = ReadBuf[IO_BUF_SIZE - 1]; ++ *ReadBuf = ReadBuf[PCX_IO_BUF_SIZE - 1]; + +- io.read_proc(ReadBuf + 1, 1, IO_BUF_SIZE - 1, handle); ++ io.read_proc(ReadBuf + 1, 1, PCX_IO_BUF_SIZE - 1, handle); + } else { + // read the complete buffer + +- io.read_proc(ReadBuf, 1, IO_BUF_SIZE, handle); ++ io.read_proc(ReadBuf, 1, PCX_IO_BUF_SIZE, handle); + } + + *ReadPos = 0; +@@ -346,19 +346,9 @@ Load(FreeImageIO *io, fi_handle handle, + BOOL header_only = (flags & FIF_LOAD_NOPIXELS) == FIF_LOAD_NOPIXELS; + + try { +- // check PCX identifier +- +- long start_pos = io->tell_proc(handle); +- BOOL validated = pcx_validate(io, handle); +- io->seek_proc(handle, start_pos, SEEK_SET); +- if(!validated) { +- throw FI_MSG_ERROR_MAGIC_NUMBER; +- } +- +- // process the header +- + PCXHEADER header; + ++ // process the header + if(io->read_proc(&header, sizeof(PCXHEADER), 1, handle) != 1) { + throw FI_MSG_ERROR_PARSING; + } +@@ -366,20 +356,38 @@ Load(FreeImageIO *io, fi_handle handle, + SwapHeader(&header); + #endif + +- // allocate a new DIB ++ // process the window ++ const WORD *window = header.window; // left, upper, right,lower pixel coord. ++ const int left = window[0]; ++ const int top = window[1]; ++ const int right = window[2]; ++ const int bottom = window[3]; + +- unsigned width = header.window[2] - header.window[0] + 1; +- unsigned height = header.window[3] - header.window[1] + 1; +- unsigned bitcount = header.bpp * header.planes; +- +- if (bitcount == 24) { +- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK); +- } else { +- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount); ++ // check image size ++ if((left >= right) || (top >= bottom)) { ++ throw FI_MSG_ERROR_PARSING; + } + +- // if the dib couldn't be allocated, throw an error ++ const unsigned width = right - left + 1; ++ const unsigned height = bottom - top + 1; ++ const unsigned bitcount = header.bpp * header.planes; + ++ // allocate a new dib ++ switch(bitcount) { ++ case 1: ++ case 4: ++ case 8: ++ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount); ++ break; ++ case 24: ++ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK); ++ break; ++ default: ++ throw FI_MSG_ERROR_DIB_MEMORY; ++ break; ++ } ++ ++ // if the dib couldn't be allocated, throw an error + if (!dib) { + throw FI_MSG_ERROR_DIB_MEMORY; + } +@@ -426,19 +434,23 @@ Load(FreeImageIO *io, fi_handle handle, + + if (palette_id == 0x0C) { + BYTE *cmap = (BYTE*)malloc(768 * sizeof(BYTE)); +- io->read_proc(cmap, 768, 1, handle); + +- pal = FreeImage_GetPalette(dib); +- BYTE *pColormap = &cmap[0]; ++ if(cmap) { ++ io->read_proc(cmap, 768, 1, handle); + +- for(int i = 0; i < 256; i++) { +- pal[i].rgbRed = pColormap[0]; +- pal[i].rgbGreen = pColormap[1]; +- pal[i].rgbBlue = pColormap[2]; +- pColormap += 3; ++ pal = FreeImage_GetPalette(dib); ++ BYTE *pColormap = &cmap[0]; ++ ++ for(int i = 0; i < 256; i++) { ++ pal[i].rgbRed = pColormap[0]; ++ pal[i].rgbGreen = pColormap[1]; ++ pal[i].rgbBlue = pColormap[2]; ++ pColormap += 3; ++ } ++ ++ free(cmap); + } + +- free(cmap); + } + + // wrong palette ID, perhaps a gray scale is needed ? +@@ -463,12 +475,12 @@ Load(FreeImageIO *io, fi_handle handle, + return dib; + } + +- // calculate the line length for the PCX and the DIB ++ // calculate the line length for the PCX and the dib + + // length of raster line in bytes +- unsigned linelength = header.bytes_per_line * header.planes; +- // length of DIB line (rounded to DWORD) in bytes +- unsigned pitch = FreeImage_GetPitch(dib); ++ const unsigned linelength = header.bytes_per_line * header.planes; ++ // length of dib line (rounded to DWORD) in bytes ++ const unsigned pitch = FreeImage_GetPitch(dib); + + // run-length encoding ? + +@@ -478,14 +490,18 @@ Load(FreeImageIO *io, fi_handle handle, + // --------------- + + line = (BYTE*)malloc(linelength * sizeof(BYTE)); +- if(!line) throw FI_MSG_ERROR_MEMORY; ++ if(!line) { ++ throw FI_MSG_ERROR_MEMORY; ++ } + +- ReadBuf = (BYTE*)malloc(IO_BUF_SIZE * sizeof(BYTE)); +- if(!ReadBuf) throw FI_MSG_ERROR_MEMORY; ++ ReadBuf = (BYTE*)malloc(PCX_IO_BUF_SIZE * sizeof(BYTE)); ++ if(!ReadBuf) { ++ throw FI_MSG_ERROR_MEMORY; ++ } + + bits = FreeImage_GetScanLine(dib, height - 1); + +- int ReadPos = IO_BUF_SIZE; ++ int ReadPos = PCX_IO_BUF_SIZE; + + if ((header.planes == 1) && ((header.bpp == 1) || (header.bpp == 8))) { + BYTE skip; +@@ -497,7 +513,7 @@ Load(FreeImageIO *io, fi_handle handle, + // skip trailing garbage at the end of the scanline + + for (unsigned count = written; count < linelength; count++) { +- if (ReadPos < IO_BUF_SIZE) { ++ if (ReadPos < PCX_IO_BUF_SIZE) { + ReadPos++; + } else { + io->read_proc(&skip, sizeof(BYTE), 1, handle); +@@ -513,7 +529,9 @@ Load(FreeImageIO *io, fi_handle handle, + unsigned x, y, written; + + buffer = (BYTE*)malloc(width * sizeof(BYTE)); +- if(!buffer) throw FI_MSG_ERROR_MEMORY; ++ if(!buffer) { ++ throw FI_MSG_ERROR_MEMORY; ++ } + + for (y = 0; y < height; y++) { + written = readline(*io, handle, line, linelength, bIsRLE, ReadBuf, &ReadPos); +@@ -532,7 +550,7 @@ Load(FreeImageIO *io, fi_handle handle, + } + } + +- // then write the DIB row ++ // then write the dib row + + for (x = 0; x < width / 2; x++) { + bits[x] = (buffer[2*x] << 4) | buffer[2*x+1]; +@@ -541,7 +559,7 @@ Load(FreeImageIO *io, fi_handle handle, + // skip trailing garbage at the end of the scanline + + for (unsigned count = written; count < linelength; count++) { +- if (ReadPos < IO_BUF_SIZE) { ++ if (ReadPos < PCX_IO_BUF_SIZE) { + ReadPos++; + } else { + io->read_proc(&skip, sizeof(BYTE), 1, handle); diff --git a/mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch b/mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch new file mode 100644 index 0000000000..ab125eee76 --- /dev/null +++ b/mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch @@ -0,0 +1,167 @@ +diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip +--- FreeImage/Makefile.fip 2015-09-17 22:51:21.797196208 +0200 ++++ FreeImage-new/Makefile.fip 2015-09-24 01:18:01.576395215 +0200 +@@ -3,6 +3,14 @@ + # This file can be generated by ./genfipsrclist.sh + include fipMakefile.srcs + ++CC = gcc ++CXX = g++ ++LD = g++ ++AR = ar ++DLLTOOL = dlltool ++RC = windres ++PKGCONFIG = pkg-config ++ + # General configuration variables: + DESTDIR ?= / + INCDIR ?= $(DESTDIR)/usr/include +@@ -24,24 +32,21 @@ override CFLAGS += -DNO_LCMS + override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ + override CFLAGS += $(INCLUDE) + CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy ++override CXXFLAGS += -DFIP_EXPORTS + # LibJXR + override CXXFLAGS += -D__ANSI__ + override CXXFLAGS += $(INCLUDE) + LDFLAGS ?= +-override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR) +- +-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) +- override CFLAGS += -fPIC +- override CXXFLAGS += -fPIC +-endif ++override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR) -lgdi32 + + TARGET = freeimageplus + STATICLIB = lib$(TARGET).a +-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so +-LIBNAME = lib$(TARGET).so +-VERLIBNAME = $(LIBNAME).$(VER_MAJOR) ++SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll ++IMPORTLIB = lib$(TARGET).dll.a ++EXPORTLIB = lib$(TARGET).exp + HEADER = Source/FreeImage.h + HEADERFIP = Wrapper/FreeImagePlus/FreeImagePlus.h ++RCFILE = Wrapper/FreeImagePlus/FreeImagePlus.rc + + + default: all +@@ -51,7 +56,8 @@ all: dist + dist: FreeImage + mkdir -p Dist + cp *.a Dist/ +- cp *.so Dist/ ++ cp *.dll Dist/ ++ cp *.dll.a Dist/ + cp Source/FreeImage.h Dist/ + cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist/ + +@@ -66,21 +72,14 @@ FreeImage: $(STATICLIB) $(SHAREDLIB) + .cpp.o: + $(CXX) $(CXXFLAGS) -c $< -o $@ + +-$(STATICLIB): $(MODULES) +- $(AR) r $@ $(MODULES) ++%.coff: %.rc ++ $(RC) $(RCFLAGS) -o $@ $< + +-$(SHAREDLIB): $(MODULES) +- $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) +- +-install: +- install -d $(INCDIR) $(INSTALLDIR) +- install -m 644 -o root -g root $(HEADER) $(INCDIR) +- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR) +- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) +- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) +- ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) +- ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) ++$(STATICLIB): $(MODULES) ++ $(AR) rs $@ $(MODULES) + +-clean: +- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) ++$(IMPORTLIB) $(EXPORTLIB): $(MODULES) ++ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES) + ++$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE) ++ $(LD) -shared -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS) +diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu +--- FreeImage/Makefile.gnu 2015-09-17 22:51:21.798196232 +0200 ++++ FreeImage-new/Makefile.gnu 2015-09-24 01:24:52.381788259 +0200 +@@ -3,6 +3,14 @@ + # This file can be generated by ./gensrclist.sh + include Makefile.srcs + ++CC = gcc ++CXX = g++ ++LD = g++ ++AR = ar ++DLLTOOL = dlltool ++RC = windres ++PKGCONFIG = pkg-config ++ + # General configuration variables: + DESTDIR ?= / + INCDIR ?= $(DESTDIR)/usr/include +@@ -16,18 +24,14 @@ LIBRARIES = -lstdc++ + MODULES = $(SRCS:.c=.o) + MODULES := $(MODULES:.cpp=.o) + CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden +-override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib) +-override LDFLAGS += -ljpeg -ljpegxr $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib) +- +-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) +- override CFLAGS += -fPIC +-endif ++override CFLAGS += $(INCLUDE) -D__ANSI__ -DFREEIMAGE_EXPORTS -I/mingw32/include/jxrlib -I/mingw64/include/jxrlib $(shell ${PKGCONFIG} --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib) ++override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell ${PKGCONFIG} --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib) + + TARGET = freeimage + STATICLIB = lib$(TARGET).a +-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so +-LIBNAME = lib$(TARGET).so +-VERLIBNAME = $(LIBNAME).$(VER_MAJOR) ++SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll ++IMPORTLIB = lib$(TARGET).dll.a ++EXPORTLIB = lib$(TARGET).exp + HEADER = Source/FreeImage.h + + +@@ -39,7 +43,8 @@ all: dist + dist: FreeImage + mkdir -p Dist + cp *.a Dist/ +- cp *.so Dist/ ++ cp *.dll Dist/ ++ cp *.dll.a Dist/ + cp Source/FreeImage.h Dist/ + + dos2unix: +@@ -54,20 +59,10 @@ FreeImage: $(STATICLIB) $(SHAREDLIB) + $(CXX) $(CFLAGS) -c $< -o $@ + + $(STATICLIB): $(MODULES) +- $(AR) r $@ $(MODULES) +- +-$(SHAREDLIB): $(MODULES) +- $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) +- +-install: +- install -d $(INCDIR) $(INSTALLDIR) +- install -m 644 -o root -g root $(HEADER) $(INCDIR) +- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) +- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) +- ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) +- ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) +-# ldconfig ++ $(AR) rs $@ $(MODULES) + +-clean: +- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) ++$(IMPORTLIB) $(EXPORTLIB): $(MODULES) ++ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES) + ++$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE) ++ $(LD) -shared -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS) diff --git a/mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch b/mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch new file mode 100644 index 0000000000..d5729bc108 --- /dev/null +++ b/mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch @@ -0,0 +1,548 @@ +diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh +--- FreeImage/genfipsrclist.sh 2015-02-20 10:52:16.000000000 +0100 ++++ FreeImage-new/genfipsrclist.sh 2015-09-05 02:13:52.041353305 +0200 +@@ -1,6 +1,6 @@ + #!/bin/sh + +-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus" ++DIRLIST="Wrapper/FreeImagePlus" + + + echo "VER_MAJOR = 3" > fipMakefile.srcs +@@ -19,5 +19,6 @@ echo -n "INCLUDE =" >> fipMakefile.srcs + for DIR in $DIRLIST; do + echo -n " -I$DIR" >> fipMakefile.srcs + done ++echo -n " -IDist" >> fipMakefile.srcs + echo >> fipMakefile.srcs + +diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh +--- FreeImage/gensrclist.sh 2015-02-20 10:51:50.000000000 +0100 ++++ FreeImage-new/gensrclist.sh 2015-09-05 02:13:52.041353305 +0200 +@@ -1,6 +1,6 @@ + #!/bin/sh + +-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib" ++DIRLIST=". Source Source/Metadata Source/FreeImageToolkit" + + echo "VER_MAJOR = 3" > Makefile.srcs + echo "VER_MINOR = 17.0" >> Makefile.srcs +diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip +--- FreeImage/Makefile.fip 2015-03-08 18:03:56.000000000 +0100 ++++ FreeImage-new/Makefile.fip 2015-09-05 02:14:09.212684028 +0200 +@@ -17,20 +17,22 @@ MODULES = $(SRCS:.c=.o) + MODULES := $(MODULES:.cpp=.o) + CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden + # OpenJPEG +-CFLAGS += -DOPJ_STATIC ++override CFLAGS += -DOPJ_STATIC + # LibRaw +-CFLAGS += -DNO_LCMS ++override CFLAGS += -DNO_LCMS + # LibJXR +-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ +-CFLAGS += $(INCLUDE) ++override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ ++override CFLAGS += $(INCLUDE) + CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy + # LibJXR +-CXXFLAGS += -D__ANSI__ +-CXXFLAGS += $(INCLUDE) ++override CXXFLAGS += -D__ANSI__ ++override CXXFLAGS += $(INCLUDE) ++LDFLAGS ?= ++override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR) + + ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) +- CFLAGS += -fPIC +- CXXFLAGS += -fPIC ++ override CFLAGS += -fPIC ++ override CXXFLAGS += -fPIC + endif + + TARGET = freeimageplus +@@ -68,7 +70,7 @@ $(STATICLIB): $(MODULES) + $(AR) r $@ $(MODULES) + + $(SHAREDLIB): $(MODULES) +- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) ++ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) + + install: + install -d $(INCDIR) $(INSTALLDIR) +diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu +--- FreeImage/Makefile.gnu 2015-03-08 18:04:00.000000000 +0100 ++++ FreeImage-new/Makefile.gnu 2015-09-05 02:14:04.810599259 +0200 +@@ -16,21 +16,11 @@ LIBRARIES = -lstdc++ + MODULES = $(SRCS:.c=.o) + MODULES := $(MODULES:.cpp=.o) + CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden +-# OpenJPEG +-CFLAGS += -DOPJ_STATIC +-# LibRaw +-CFLAGS += -DNO_LCMS +-# LibJXR +-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ +-CFLAGS += $(INCLUDE) +-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy +-# LibJXR +-CXXFLAGS += -D__ANSI__ +-CXXFLAGS += $(INCLUDE) ++override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib) ++override LDFLAGS += -ljpeg -ljpegxr $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib) + + ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) +- CFLAGS += -fPIC +- CXXFLAGS += -fPIC ++ override CFLAGS += -fPIC + endif + + TARGET = freeimage +@@ -61,13 +51,13 @@ FreeImage: $(STATICLIB) $(SHAREDLIB) + $(CC) $(CFLAGS) -c $< -o $@ + + .cpp.o: +- $(CXX) $(CXXFLAGS) -c $< -o $@ ++ $(CXX) $(CFLAGS) -c $< -o $@ + + $(STATICLIB): $(MODULES) + $(AR) r $@ $(MODULES) + + $(SHAREDLIB): $(MODULES) +- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) ++ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) + + install: + install -d $(INCDIR) $(INSTALLDIR) +diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp +--- FreeImage/Source/FreeImage/J2KHelper.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2015-09-05 02:13:52.042353324 +0200 +@@ -21,7 +21,7 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibOpenJPEG/openjpeg.h" ++#include + #include "J2KHelper.h" + + // -------------------------------------------------------------------------- +diff -rupN FreeImage/Source/FreeImage/Plugin.cpp FreeImage-new/Source/FreeImage/Plugin.cpp +--- FreeImage/Source/FreeImage/Plugin.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/Plugin.cpp 2015-09-05 02:13:52.042353324 +0200 +@@ -263,7 +263,12 @@ FreeImage_Initialise(BOOL load_local_plu + s_plugins->AddNode(InitDDS); + s_plugins->AddNode(InitGIF); + s_plugins->AddNode(InitHDR); +- s_plugins->AddNode(InitG3); ++/* The G3 fax format plugin is deliberately disabled in the Fedora build of ++ FreeImage as it requires that FreeImage uses a private copy of libtiff ++ which is a no no because of security reasons. */ ++#if 0 ++ s_plugins->AddNode(InitG3); ++#endif + s_plugins->AddNode(InitSGI); + s_plugins->AddNode(InitEXR); + s_plugins->AddNode(InitJ2K); +diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp +--- FreeImage/Source/FreeImage/PluginEXR.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2015-09-05 02:13:52.042353324 +0200 +@@ -28,16 +28,16 @@ + #pragma warning (disable : 4800) // ImfVersion.h - 'const int' : forcing value to bool 'true' or 'false' (performance warning) + #endif + +-#include "../OpenEXR/IlmImf/ImfIO.h" +-#include "../OpenEXR/Iex/Iex.h" +-#include "../OpenEXR/IlmImf/ImfOutputFile.h" +-#include "../OpenEXR/IlmImf/ImfInputFile.h" +-#include "../OpenEXR/IlmImf/ImfRgbaFile.h" +-#include "../OpenEXR/IlmImf/ImfChannelList.h" +-#include "../OpenEXR/IlmImf/ImfRgba.h" +-#include "../OpenEXR/IlmImf/ImfArray.h" +-#include "../OpenEXR/IlmImf/ImfPreviewImage.h" +-#include "../OpenEXR/Half/half.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + + // ========================================================== +diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp +--- FreeImage/Source/FreeImage/PluginJ2K.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2015-09-05 02:13:52.043353343 +0200 +@@ -21,7 +21,7 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibOpenJPEG/openjpeg.h" ++#include + #include "J2KHelper.h" + + // ========================================================== +diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp +--- FreeImage/Source/FreeImage/PluginJP2.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2015-09-05 02:13:52.043353343 +0200 +@@ -21,7 +21,7 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibOpenJPEG/openjpeg.h" ++#include + #include "J2KHelper.h" + + // ========================================================== +diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp +--- FreeImage/Source/FreeImage/PluginJPEG.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2015-09-05 02:13:52.043353343 +0200 +@@ -35,9 +35,9 @@ extern "C" { + #undef FAR + #include + +-#include "../LibJPEG/jinclude.h" +-#include "../LibJPEG/jpeglib.h" +-#include "../LibJPEG/jerror.h" ++#include ++#include ++#include + } + + #include "FreeImage.h" +diff -rupN FreeImage/Source/FreeImage/PluginJXR.cpp FreeImage-new/Source/FreeImage/PluginJXR.cpp +--- FreeImage/Source/FreeImage/PluginJXR.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginJXR.cpp 2015-09-05 02:13:52.043353343 +0200 +@@ -23,7 +23,7 @@ + #include "Utilities.h" + #include "../Metadata/FreeImageTag.h" + +-#include "../LibJXR/jxrgluelib/JXRGlue.h" ++#include + + // ========================================================== + // Plugin Interface +diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp +--- FreeImage/Source/FreeImage/PluginPNG.cpp 2015-03-10 20:16:12.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2015-09-05 02:13:52.044353363 +0200 +@@ -40,8 +40,8 @@ + + // ---------------------------------------------------------- + +-#include "../ZLib/zlib.h" +-#include "../LibPNG/png.h" ++#include ++#include + + // ---------------------------------------------------------- + +diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp +--- FreeImage/Source/FreeImage/PluginRAW.cpp 2015-03-08 20:12:04.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2015-09-05 02:13:52.044353363 +0200 +@@ -19,7 +19,7 @@ + // Use at your own risk! + // ========================================================== + +-#include "../LibRawLite/libraw/libraw.h" ++#include + + #include "FreeImage.h" + #include "Utilities.h" +diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp +--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2015-09-05 02:13:52.044353363 +0200 +@@ -37,9 +37,9 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibTIFF4/tiffiop.h" ++#include + #include "../Metadata/FreeImageTag.h" +-#include "../OpenEXR/Half/half.h" ++#include + + #include "FreeImageIO.h" + #include "PSDParser.h" +@@ -194,16 +194,6 @@ TIFFFdOpen(thandle_t handle, const char + return tif; + } + +-/** +-Open a TIFF file for reading or writing +-@param name +-@param mode +-*/ +-TIFF* +-TIFFOpen(const char* name, const char* mode) { +- return 0; +-} +- + // ---------------------------------------------------------- + // TIFF library FreeImage-specific routines. + // ---------------------------------------------------------- +diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp +--- FreeImage/Source/FreeImage/PluginWebP.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2015-09-05 02:13:52.044353363 +0200 +@@ -24,10 +24,10 @@ + + #include "../Metadata/FreeImageTag.h" + +-#include "../LibWebP/src/webp/decode.h" +-#include "../LibWebP/src/webp/encode.h" +-#include "../LibWebP/src/enc/vp8enci.h" +-#include "../LibWebP/src/webp/mux.h" ++#include ++#include ++// #include "../LibWebP/src/enc/vp8enci.h" ++#include + + // ========================================================== + // Plugin Interface +diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp +--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2015-03-02 02:07:10.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2015-09-05 02:13:52.044353363 +0200 +@@ -19,10 +19,9 @@ + // Use at your own risk! + // ========================================================== + +-#include "../ZLib/zlib.h" ++#include + #include "FreeImage.h" + #include "Utilities.h" +-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */ + + /** + Compresses a source buffer into a target buffer, using the ZLib library. +@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t + return 0; + case Z_OK: { + // patch header, setup crc and length (stolen from mod_trace_output) +- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code ++ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix) + crc = crc32(crc, source, source_size); + memcpy(target + 4 + dest_len, &crc, 4); + memcpy(target + 8 + dest_len, &source_size, 4); +diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h +--- FreeImage/Source/FreeImage.h 2015-03-04 02:17:54.000000000 +0100 ++++ FreeImage-new/Source/FreeImage.h 2015-09-05 02:13:52.045353382 +0200 +@@ -155,8 +155,11 @@ typedef uint8_t BYTE; + typedef uint16_t WORD; + typedef uint32_t DWORD; + typedef int32_t LONG; ++// Disable these, they conflict with the (wrong) ones of libraw ++#if 0 + typedef int64_t INT64; + typedef uint64_t UINT64; ++#endif + #else + // MS is not C99 ISO compliant + typedef long BOOL; +@@ -410,7 +413,12 @@ FI_ENUM(FREE_IMAGE_FORMAT) { + FIF_DDS = 24, + FIF_GIF = 25, + FIF_HDR = 26, +- FIF_FAXG3 = 27, ++/* The G3 fax format plugin is deliberately disabled in the Fedora build of ++ FreeImage as it requires that FreeImage uses a private copy of libtiff ++ which is a no no because of security reasons. */ ++#if 0 ++ FIF_FAXG3 = 27, ++#endif + FIF_SGI = 28, + FIF_EXR = 29, + FIF_J2K = 30, +@@ -473,6 +481,10 @@ FI_ENUM(FREE_IMAGE_DITHER) { + FID_BAYER16x16 = 6 //! Bayer ordered dispersed dot dithering (order 4 dithering matrix) + }; + ++/* The FreeImage_JPEGTransform functions are deliberately disabled in the ++ Fedora build of FreeImage as they require that FreeImage uses a private copy ++ of libjpeg which is a no no because of security reasons. */ ++#if 0 + /** Lossless JPEG transformations + Constants used in FreeImage_JPEGTransform + */ +@@ -486,6 +498,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) { + FIJPEG_OP_ROTATE_180 = 6, //! 180-degree rotation + FIJPEG_OP_ROTATE_270 = 7 //! 270-degree clockwise (or 90 ccw) + }; ++#endif + + /** Tone mapping operators. + Constants used in FreeImage_ToneMapping. +@@ -1076,7 +1089,10 @@ DLL_API const char* DLL_CALLCONV FreeIma + // -------------------------------------------------------------------------- + // JPEG lossless transformation routines + // -------------------------------------------------------------------------- +- ++/* The FreeImage_JPEGTransform functions are deliberately disabled in the +++ Fedora build of FreeImage as they require that FreeImage uses a private copy +++ of libjpeg which is a no no because of security reasons. */ ++#if 0 + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom); +@@ -1085,6 +1101,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_JPEG + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); ++#endif + + + // -------------------------------------------------------------------------- +diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp +--- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2015-03-02 02:07:10.000000000 +0100 ++++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2015-09-05 02:13:52.045353382 +0200 +@@ -26,10 +26,10 @@ extern "C" { + #undef FAR + #include + +-#include "../LibJPEG/jinclude.h" +-#include "../LibJPEG/jpeglib.h" +-#include "../LibJPEG/jerror.h" +-#include "../LibJPEG/transupp.h" ++#include ++#include ++#include ++#include + } + + #include "FreeImage.h" +diff -rupN FreeImage/Source/Metadata/TagConversion.cpp FreeImage-new/Source/Metadata/TagConversion.cpp +--- FreeImage/Source/Metadata/TagConversion.cpp 2015-03-02 02:07:10.000000000 +0100 ++++ FreeImage-new/Source/Metadata/TagConversion.cpp 2015-09-05 02:13:52.045353382 +0200 +@@ -30,6 +30,11 @@ + + #define MAX_TEXT_EXTENT 512 + ++// These were in FreeImage.h, but are moved here to avoid conflicts (see note in FreeImage.h) ++typedef int64_t INT64; ++typedef uint64_t UINT64; ++ ++ + /** + Convert a tag to a C string + */ +diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp +--- FreeImage/Source/Metadata/XTIFF.cpp 2015-03-02 02:07:10.000000000 +0100 ++++ FreeImage-new/Source/Metadata/XTIFF.cpp 2015-09-05 02:13:52.045353382 +0200 +@@ -29,13 +29,18 @@ + #pragma warning (disable : 4786) // identifier was truncated to 'number' characters + #endif + +-#include "../LibTIFF4/tiffiop.h" ++#include + + #include "FreeImage.h" + #include "Utilities.h" + #include "FreeImageTag.h" + #include "FIRational.h" + ++extern "C" ++{ ++ int _TIFFDataSize(TIFFDataType type); ++} ++ + // ---------------------------------------------------------- + // Extended TIFF Directory GEO Tag Support + // ---------------------------------------------------------- +@@ -224,6 +229,33 @@ tiff_write_geotiff_profile(TIFF *tif, FI + // TIFF EXIF tag reading & writing + // ---------------------------------------------------------- + ++static uint32 exif_tag_ids[] = { ++ EXIFTAG_EXPOSURETIME, EXIFTAG_FNUMBER, EXIFTAG_EXPOSUREPROGRAM, ++ EXIFTAG_SPECTRALSENSITIVITY, EXIFTAG_ISOSPEEDRATINGS, EXIFTAG_OECF, ++ EXIFTAG_EXIFVERSION, EXIFTAG_DATETIMEORIGINAL, EXIFTAG_DATETIMEDIGITIZED, ++ EXIFTAG_COMPONENTSCONFIGURATION, EXIFTAG_COMPRESSEDBITSPERPIXEL, ++ EXIFTAG_SHUTTERSPEEDVALUE, EXIFTAG_APERTUREVALUE, ++ EXIFTAG_BRIGHTNESSVALUE, EXIFTAG_EXPOSUREBIASVALUE, ++ EXIFTAG_MAXAPERTUREVALUE, EXIFTAG_SUBJECTDISTANCE, EXIFTAG_METERINGMODE, ++ EXIFTAG_LIGHTSOURCE, EXIFTAG_FLASH, EXIFTAG_FOCALLENGTH, ++ EXIFTAG_SUBJECTAREA, EXIFTAG_MAKERNOTE, EXIFTAG_USERCOMMENT, ++ EXIFTAG_SUBSECTIME, EXIFTAG_SUBSECTIMEORIGINAL, ++ EXIFTAG_SUBSECTIMEDIGITIZED, EXIFTAG_FLASHPIXVERSION, EXIFTAG_COLORSPACE, ++ EXIFTAG_PIXELXDIMENSION, EXIFTAG_PIXELYDIMENSION, ++ EXIFTAG_RELATEDSOUNDFILE, EXIFTAG_FLASHENERGY, ++ EXIFTAG_SPATIALFREQUENCYRESPONSE, EXIFTAG_FOCALPLANEXRESOLUTION, ++ EXIFTAG_FOCALPLANEYRESOLUTION, EXIFTAG_FOCALPLANERESOLUTIONUNIT, ++ EXIFTAG_SUBJECTLOCATION, EXIFTAG_EXPOSUREINDEX, EXIFTAG_SENSINGMETHOD, ++ EXIFTAG_FILESOURCE, EXIFTAG_SCENETYPE, EXIFTAG_CFAPATTERN, ++ EXIFTAG_CUSTOMRENDERED, EXIFTAG_EXPOSUREMODE, EXIFTAG_WHITEBALANCE, ++ EXIFTAG_DIGITALZOOMRATIO, EXIFTAG_FOCALLENGTHIN35MMFILM, ++ EXIFTAG_SCENECAPTURETYPE, EXIFTAG_GAINCONTROL, EXIFTAG_CONTRAST, ++ EXIFTAG_SATURATION, EXIFTAG_SHARPNESS, EXIFTAG_DEVICESETTINGDESCRIPTION, ++ EXIFTAG_SUBJECTDISTANCERANGE, EXIFTAG_GAINCONTROL, EXIFTAG_GAINCONTROL, ++ EXIFTAG_IMAGEUNIQUEID ++}; ++static int nExifTags = sizeof(exif_tag_ids) / sizeof(exif_tag_ids[0]); ++ + /** + Read a single Exif tag + +@@ -575,45 +607,11 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M + + // loop over all Core Directory Tags + // ### uses private data, but there is no other way ++ // -> Fedora: Best we can do without private headers is to hard-code a list of known EXIF tags and read those + if(md_model == TagLib::EXIF_MAIN) { +- const TIFFDirectory *td = &tif->tif_dir; +- +- uint32 lastTag = 0; //<- used to prevent reading some tags twice (as stored in tif_fieldinfo) +- +- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) { +- const TIFFField *fld = tif->tif_fields[fi]; +- +- const uint32 tag_id = TIFFFieldTag(fld); +- +- if(tag_id == lastTag) { +- continue; +- } +- +- // test if tag value is set +- // (lifted directly from LibTiff _TIFFWriteDirectory) +- +- if( fld->field_bit == FIELD_CUSTOM ) { +- int is_set = FALSE; +- +- for(int ci = 0; ci < td->td_customValueCount; ci++ ) { +- is_set |= (td->td_customValues[ci].info == fld); +- } +- +- if( !is_set ) { +- continue; +- } +- +- } else if(!TIFFFieldSet(tif, fld->field_bit)) { +- continue; +- } +- +- // process *all* other tags (some will be ignored) +- +- tiff_read_exif_tag(tif, tag_id, dib, md_model); +- +- lastTag = tag_id; ++ for (int i = 0; i < nExifTags; ++i) { ++ tiff_read_exif_tag(tif, exif_tag_ids[i], dib, md_model); + } +- + } + + return TRUE; +@@ -723,10 +721,9 @@ tiff_write_exif_tags(TIFF *tif, TagLib:: + + TagLib& tag_lib = TagLib::instance(); + +- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) { +- const TIFFField *fld = tif->tif_fields[fi]; +- +- const uint32 tag_id = TIFFFieldTag(fld); ++ for (int fi = 0; fi < nExifTags; fi++) { ++ const uint32 tag_id = exif_tag_ids[fi]; ++ const TIFFField *fld = TIFFFieldWithTag(tif, tag_id); + + if(skip_write_field(tif, tag_id)) { + // skip tags that are already handled by the LibTIFF writing process diff --git a/mingw-w64-FreeImage/PKGBUILD b/mingw-w64-FreeImage/PKGBUILD index e1e903a7bd..811d4ecc5b 100644 --- a/mingw-w64-FreeImage/PKGBUILD +++ b/mingw-w64-FreeImage/PKGBUILD @@ -1,64 +1,58 @@ # Maintainer: Alexey Pavlov _realname=FreeImage +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 -pkgrel=7 +pkgver=3.17.0 +pkgrel=1 pkgdesc="Library project for developers who would like to support popular graphics image formats (mingw-w64)." arch=('any') license=('GPL' 'custom:FIPL') url="http://freeimage.sourceforge.net/" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-LibRaw" - "${MINGW_PACKAGE_PREFIX}-openjpeg2" - "${MINGW_PACKAGE_PREFIX}-openexr" - "${MINGW_PACKAGE_PREFIX}-libwebp") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-jxrlib" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-LibRaw" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-openjpeg2" + "${MINGW_PACKAGE_PREFIX}-openexr") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-iconv" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "dos2unix" "make") options=('strip' 'staticlibs' '!buildflags') source=("http://downloads.sourceforge.net/sourceforge/freeimage/FreeImage${pkgver//./}.zip" - 'FreeImage-3.16.0_mingw-makefiles.patch' - 'FreeImage-3.16.0_unbundle.patch' - 'FreeImage-3.16.0_disable-some-plugins.patch') -md5sums=('1a2d1fff6204adbd479cc98818892fc1' - '20a0a9f7257df79bbcbdec62ed2446d9' - '824115841c4a5be8aa98a7b31ce07d79' - 'ffd4a31d2d1c2cf19af3a1e6232f8fd6') + 'FreeImage-3.17.0_mingw-makefiles.patch' + 'FreeImage-3.17.0_unbundle.patch' + 'FreeImage-3.17.0_CVE-2015-0852.patch') +md5sums=('459e15f0ec75d6efa3c7bd63277ead86' + '6510a7f7c715acf7bd182cd888d4787d' + 'b81acf43a202d03573932e1f98d63a60' + 'b21385e2da5dcdf4aa4e98d11150115d') prepare() { cd ${srcdir}/FreeImage - # Convert to utf-8 - #iconv -f ISO-8859-15 -t UTF-8 Whatsnew.txt - #iconv -f WINDOWS-1252 -t UTF-8 license-gplv3.txt - #iconv -f ISO-8859-15 -t UTF-8 -o Whatsnew.txt.new Whatsnew.txt && \ - # touch -r Whatsnew.txt Whatsnew.txt.new && \ - # mv Whatsnew.txt.new Whatsnew.txt + patch -p1 -i ${srcdir}/FreeImage-3.17.0_unbundle.patch + patch -p1 -i ${srcdir}/FreeImage-3.17.0_mingw-makefiles.patch + patch -p1 -i ${srcdir}/FreeImage-3.17.0_CVE-2015-0852.patch - #iconv -f WINDOWS-1252 -t UTF-8 -o license-gplv3.txt.new license-gplv3.txt && \ - # touch -r license-gplv3.txt license-gplv3.txt.new && \ - # mv license-gplv3.txt.new license-gplv3.txt - - patch -p1 -i ${srcdir}/FreeImage-3.16.0_mingw-makefiles.patch - patch -p1 -i ${srcdir}/FreeImage-3.16.0_unbundle.patch - patch -p1 -i ${srcdir}/FreeImage-3.16.0_disable-some-plugins.patch - - # Remove bundled libraries - rm -rf Source/OpenEXR - rm -rf Source/LibMNG - rm -rf Source/LibOpenJPEG - rm -rf Source/LibPNG - rm -rf Source/LibRawLite - rm -rf Source/LibTIFF - rm -rf Source/LibJPEG - rm -rf Source/LibTIFF4 - rm -rf Source/ZLib - rm -rf Source/LibWebP - - # Mingw-w64 has its own header - rm -rf Source/LibJXR/common/include/guiddef.h + # remove all included libs to make sure these don't get used during compile + rm -r Source/Lib* Source/ZLib Source/OpenEXR + + # clear files which cannot be built due to dependencies on private headers + # (see also unbundle patch) + > Source/FreeImage/PluginG3.cpp + > Source/FreeImageToolkit/JPEGTransform.cpp + + # sanitize encodings / line endings + for file in `find . -type f -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.txt' -or -name Makefile`; do + ${MINGW_PREFIX}/bin/iconv -f ISO-8859-15 -t UTF-8 ${file} > ${file}.new && \ + sed -i 's|\r||g' ${file}.new && \ + touch -r ${file} ${file}.new && mv ${file}.new ${file} + done #cp -f ${srcdir}/Makefile.mingw-w64 ${srcdir}/FreeImage/Makefile.mingw-w64 @@ -70,32 +64,17 @@ prepare() { build() { cd ${srcdir}/FreeImage - mkdir -p ${srcdir}/build-{shared,static}-${CARCH} - lndir ${srcdir}/FreeImage ${srcdir}/build-shared-${CARCH} - lndir ${srcdir}/FreeImage ${srcdir}/build-static-${CARCH} + mkdir -p ${srcdir}/build-${CARCH} + lndir ${srcdir}/FreeImage ${srcdir}/build-${CARCH} plain "Build shared version..." - cd ${srcdir}/build-shared-${CARCH} + cd ${srcdir}/build-${CARCH} make \ MINGW_TARGET=${MINGW_CHOST} \ - FREEIMAGE_LIBRARY_TYPE="SHARED" \ - -f Makefile.mingw + -f Makefile.gnu make \ MINGW_TARGET=${MINGW_CHOST} \ - FREEIMAGE_LIBRARY_TYPE="SHARED" \ - -f Makefile.fip - - plain "Build static version..." - cd ${srcdir}/build-static-${CARCH} - make \ - MINGW_TARGET=${MINGW_CHOST} \ - FREEIMAGE_LIBRARY_TYPE="STATIC" \ - -f Makefile.mingw - - make \ - MINGW_TARGET=${MINGW_CHOST} \ - FREEIMAGE_LIBRARY_TYPE="STATIC" \ -f Makefile.fip } @@ -105,7 +84,7 @@ package() { install -d "${pkgdir}${MINGW_PREFIX}"/include install -d "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage - cd ${srcdir}/build-shared-${CARCH} + cd ${srcdir}/build-${CARCH} install -m755 Dist/libfreeimage-*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ install -m644 Dist/libfreeimage.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/ install -m755 Dist/libfreeimageplus-*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ @@ -118,7 +97,6 @@ package() { install -m644 license-gplv2.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/ install -m644 license-gplv3.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/ - cd ${srcdir}/build-static-${CARCH} install -m644 Dist/libfreeimage.a "${pkgdir}${MINGW_PREFIX}"/lib/ install -m644 Dist/libfreeimageplus.a "${pkgdir}${MINGW_PREFIX}"/lib/ } From cb0c0296d451f9b70dd22a628d5859067148718a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 30 Dec 2015 08:01:29 +0300 Subject: [PATCH 2024/2060] libpng: Update to 1.6.20 --- mingw-w64-libpng/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libpng/PKGBUILD b/mingw-w64-libpng/PKGBUILD index 459e0e3b2f..83a8eeaf02 100644 --- a/mingw-w64-libpng/PKGBUILD +++ b/mingw-w64-libpng/PKGBUILD @@ -3,7 +3,7 @@ _realname=libpng pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.6.19 +pkgver=1.6.20 pkgrel=1 arch=('any') pkgdesc="A collection of routines used to create PNG format graphics (mingw-w64)" @@ -16,8 +16,8 @@ options=('strip' '!libtool' 'staticlibs') source=("http://downloads.sourceforge.net/sourceforge/libpng/${_realname}-${pkgver}.tar.xz" "http://downloads.sourceforge.net/project/libpng-apng/libpng16/${pkgver}/${_realname}-${pkgver}-apng.patch.gz") -md5sums=('1e6a458429e850fc93c1f3b6dc00a48f' - 'b215830867151242fb4ef9d246f050c4') +md5sums=('3968acb7c66ef81a9dab867f35d0eb4b' + 'b2186d5e7853890e25b34b03c7f2ddde') prepare() { cd "${srcdir}/${_realname}-${pkgver}" From 8375001597af7861a4b33a6466918a55379ba652 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 30 Dec 2015 08:02:12 +0300 Subject: [PATCH 2025/2060] imagemagick: Update to 6.9.2.10. Rebuild with libwebp update --- mingw-w64-imagemagick/002-build-fixes.patch | 24 --------------------- mingw-w64-imagemagick/PKGBUILD | 7 +++--- 2 files changed, 4 insertions(+), 27 deletions(-) diff --git a/mingw-w64-imagemagick/002-build-fixes.patch b/mingw-w64-imagemagick/002-build-fixes.patch index 21e8a52dff..f4b7f58d97 100644 --- a/mingw-w64-imagemagick/002-build-fixes.patch +++ b/mingw-w64-imagemagick/002-build-fixes.patch @@ -51,27 +51,3 @@ if (c_locale != (locale_t) NULL) _free_locale(c_locale); #endif ---- ImageMagick-6.9.1-2/magick/random.c.orig 2015-05-12 14:27:08.310000000 +0300 -+++ ImageMagick-6.9.1-2/magick/random.c 2015-05-12 14:27:31.008000000 +0300 -@@ -459,7 +459,9 @@ - file=mkstemp(path); - if (file != -1) - { -+#ifndef _WIN32 - (void) fchmod(file,0600); -+#endif - #if defined(__OS2__) - setmode(file,O_BINARY); - #endif ---- ImageMagick-6.9.1-2/magick/resource.c.orig 2015-05-12 14:20:26.601600000 +0300 -+++ ImageMagick-6.9.1-2/magick/resource.c 2015-05-12 14:27:38.090400000 +0300 -@@ -526,7 +526,9 @@ - file=mkstemp(path); - if (file != -1) - { -+#ifndef _WIN32 - (void) fchmod(file,0600); -+#endif - #if defined(__OS2__) - setmode(file,O_BINARY); - #endif diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index d41c590e27..0d3b462356 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname=imagemagick +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.9.2.0 +pkgver=6.9.2.10 pkgrel=1 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') @@ -51,11 +52,11 @@ source=(http://www.imagemagick.org/download/ImageMagick-${pkgver%.*}-${pkgver##* 001-relocate.patch 002-build-fixes.patch winpath.patch) -md5sums=('99471c8c3f38c9264faf5c4ca7a31287' +md5sums=('d3b361617d147d1a8f58a77930db3d0d' 'SKIP' 'c95a23e8562dbab4e6b0e5407da25209' '7821087a00c459c0d3482508fdc1e25e' - '8f34b1dbab6cca5b33dee37ed8fe44a2' + '205544b0317bc277ba0945821d4d568b' 'b0b634231da667d7472522fc08fd3519') prepare() { From 046e449b8f6cb49253c2553cbd3a90c123409ece Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 30 Dec 2015 08:02:27 +0300 Subject: [PATCH 2026/2060] graphicsmagick: Rebuild with libwebp update --- mingw-w64-graphicsmagick/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-graphicsmagick/PKGBUILD b/mingw-w64-graphicsmagick/PKGBUILD index 4b4c002067..7c487828b4 100644 --- a/mingw-w64-graphicsmagick/PKGBUILD +++ b/mingw-w64-graphicsmagick/PKGBUILD @@ -4,7 +4,7 @@ _realname=graphicsmagick pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.23 -pkgrel=1 +pkgrel=2 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') url="http://www.graphicsmagick.org/" From 8ba8f71a44e1bdf143a3ce9eb846ef0b31628578 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 30 Dec 2015 11:41:39 +0300 Subject: [PATCH 2027/2060] webkitgtk: Rebuild with libwebp update --- mingw-w64-webkitgtk3/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-webkitgtk3/PKGBUILD b/mingw-w64-webkitgtk3/PKGBUILD index d6084bb567..0f9a1f6ce1 100644 --- a/mingw-w64-webkitgtk3/PKGBUILD +++ b/mingw-w64-webkitgtk3/PKGBUILD @@ -4,7 +4,7 @@ _realname=webkitgtk pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}2" "${MINGW_PACKAGE_PREFIX}-${_realname}3") pkgver=2.4.9 -pkgrel=2 +pkgrel=3 pkgdesc="GTK+ Web content engine library (mingw-w64)" arch=('any') url="http://webkitgtk.org/" From 246f562e4662a5df221b2dcf0ff2d5f6966fca66 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 30 Dec 2015 11:53:21 +0300 Subject: [PATCH 2028/2060] Pillow: Rebuild with libwebp update --- mingw-w64-Pillow/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-Pillow/PKGBUILD b/mingw-w64-Pillow/PKGBUILD index 59501eff24..a71fc06f9d 100644 --- a/mingw-w64-Pillow/PKGBUILD +++ b/mingw-w64-Pillow/PKGBUILD @@ -6,7 +6,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX} pkgver=3.0.0 _py2basever=2.7 _py3basever=3.5m -pkgrel=1 +pkgrel=2 arch=('any') license=('custom') url="https://github.com/python-pillow/Pillow/" From 7b2745e9947bf16d6fd51c2fffc36a446cee48cf Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 30 Dec 2015 11:53:33 +0300 Subject: [PATCH 2029/2060] ffmpeg: Rebuild with libwebp update --- mingw-w64-ffmpeg/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 6ec47b91d8..fa3d9b8419 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -4,7 +4,7 @@ _realname=ffmpeg pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.8.4 -pkgrel=1 +pkgrel=2 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="http://ffmpeg.org/" From 10263ecde7f990da9274bfeaa3b90fbaddb915ad Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 30 Dec 2015 12:01:31 +0300 Subject: [PATCH 2030/2060] libwpd: Rebuild --- mingw-w64-libwpd/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-libwpd/PKGBUILD b/mingw-w64-libwpd/PKGBUILD index 1f7a6db674..2ebdb248f6 100644 --- a/mingw-w64-libwpd/PKGBUILD +++ b/mingw-w64-libwpd/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libwpd +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.10.0 -pkgrel=2 +pkgrel=3 pkgdesc="Library for Importing WordPerfect (tm) Documents (mingw-w64)" arch=('any') url="http://libwpd.sourceforge.net/" @@ -25,7 +26,7 @@ prepare() { build() { export lt_cv_deplibs_check_method='pass_all' [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - #cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ @@ -36,13 +37,12 @@ build() { --enable-static \ --without-docs \ --disable-werror \ - --disable-silent-rules + --enable-silent-rules - make V=1 + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } From 484ced22c7b717bbf9ce6e9dd01566d8fb78b4cc Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 30 Dec 2015 12:10:53 +0300 Subject: [PATCH 2031/2060] libwpg: Update to 0.3.1 --- mingw-w64-libwpg/PKGBUILD | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-libwpg/PKGBUILD b/mingw-w64-libwpg/PKGBUILD index 3c7757761c..231615b27d 100644 --- a/mingw-w64-libwpg/PKGBUILD +++ b/mingw-w64-libwpg/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libwpg +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.3.0 -pkgrel=2 +pkgver=0.3.1 +pkgrel=1 pkgdesc="Library to read and parse graphics in WordPerfect Graphics format (mingw-w64)" arch=('any') url="http://libwpg.sourceforge.net/" @@ -14,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libwpd") options=(staticlibs strip) source=("http://downloads.sourceforge.net/project/${_realname}/${_realname}/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz") -md5sums=('00f2db157d130c1334ef36da2e9f20a3') +md5sums=('62cf22e05cc6afa3f7384e9487cd255d') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -22,7 +23,7 @@ prepare() { build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - #cp -r ${srcdir}/${_realname}-${pkgver} "${srcdir}/build-${MINGW_CHOST}" + mkdir -p ${srcdir}/build-${MINGW_CHOST} cd "${srcdir}/build-${MINGW_CHOST}" ../${_realname}-${pkgver}/configure \ @@ -40,5 +41,4 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install - find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm } From dd790f197a9049765fe9456abb106a37ab3f7521 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Wed, 30 Dec 2015 12:11:16 +0300 Subject: [PATCH 2032/2060] libcdr: Update to 0.1.2 --- mingw-w64-libcdr/PKGBUILD | 17 ++++++----------- mingw-w64-libcdr/libcdr-boost-1.59.patch | 22 ---------------------- 2 files changed, 6 insertions(+), 33 deletions(-) delete mode 100644 mingw-w64-libcdr/libcdr-boost-1.59.patch diff --git a/mingw-w64-libcdr/PKGBUILD b/mingw-w64-libcdr/PKGBUILD index 6d3e6d7d1f..2a6bdf694a 100644 --- a/mingw-w64-libcdr/PKGBUILD +++ b/mingw-w64-libcdr/PKGBUILD @@ -3,13 +3,13 @@ _realname=libcdr pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.1.1 -pkgrel=4 +pkgver=0.1.2 +pkgrel=1 pkgdesc="CorelDraw file format importer library for LibreOffice (mingw-w64)" arch=('any') license=('GPL2' 'LGPL2.1' 'MPL') url="https://wiki.documentfoundation.org/DLP/Libraries/libcdr" -options=('staticlibs' 'strip' '!buildflags') +options=('staticlibs' 'strip') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-pkg-config" @@ -18,16 +18,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-icu" "${MINGW_PACKAGE_PREFIX}-lcms2" "${MINGW_PACKAGE_PREFIX}-librevenge" "${MINGW_PACKAGE_PREFIX}-libwpd") -source=(http://dev-www.libreoffice.org/src/${_realname}/${_realname}-${pkgver}.tar.xz - libcdr-boost-1.59.patch) -md5sums=('72ed4d2f900eac95061207d026d5324c' - '72cbbdaeb95d9e5680944d3ac43f117f') +source=(http://dev-www.libreoffice.org/src/${_realname}/${_realname}-${pkgver}.tar.xz) +md5sums=('c8f6c5e3b5769c9814e07ce5b9d07fba') prepare() { cd ${_realname}-${pkgver} - patch -p1 -i ${srcdir}/libcdr-boost-1.59.patch - - autoreconf -fiv } build() { @@ -42,7 +37,7 @@ build() { --enable-static \ --disable-silent-rules - make V=1 + make -j1 } check() { diff --git a/mingw-w64-libcdr/libcdr-boost-1.59.patch b/mingw-w64-libcdr/libcdr-boost-1.59.patch deleted file mode 100644 index 70270aef33..0000000000 --- a/mingw-w64-libcdr/libcdr-boost-1.59.patch +++ /dev/null @@ -1,22 +0,0 @@ -From f862293ad576d5f35a3c9e90fba762abeccaa1f0 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Sun, 30 Aug 2015 08:42:29 +0200 -Subject: [PATCH] rhbz#1258127 fix build with boost 1.59 - -Change-Id: I3c9be843d8fcc17650022f4189b68fde28ee3d42 ---- - src/lib/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am -index f8065a8..3f00cc5 100644 ---- a/src/lib/Makefile.am -+++ b/src/lib/Makefile.am -@@ -14,6 +14,7 @@ libcdr_@CDR_MAJOR_VERSION@_@CDR_MINOR_VERSION@_include_HEADERS = \ - - AM_CXXFLAGS = -I$(top_srcdir)/inc $(REVENGE_CFLAGS) $(LCMS2_CFLAGS) $(ZLIB_CFLAGS) $(ICU_CFLAGS) $(DEBUG_CXXFLAGS) -DLIBCDR_BUILD=1 - -+libcdr_@CDR_MAJOR_VERSION@_@CDR_MINOR_VERSION@_la_CPPFLAGS = -DBOOST_ERROR_CODE_HEADER_ONLY - libcdr_@CDR_MAJOR_VERSION@_@CDR_MINOR_VERSION@_la_LIBADD = $(REVENGE_LIBS) $(LCMS2_LIBS) $(ZLIB_LIBS) $(ICU_LIBS) @LIBCDR_WIN32_RESOURCE@ - libcdr_@CDR_MAJOR_VERSION@_@CDR_MINOR_VERSION@_la_DEPENDENCIES = @LIBCDR_WIN32_RESOURCE@ - libcdr_@CDR_MAJOR_VERSION@_@CDR_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined From 6deff4ad13dcfe6110f2ec2d25317096c54a6df5 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sat, 26 Dec 2015 11:00:40 +0300 Subject: [PATCH 2033/2060] lfcbase, lfcxml, cego : New packages The packages are from http://www.lemke-it.com lfcbase - Lemke Foundation Class C++ base classes lfcxml - Lemke Foundation Class C++ xml library cego - Relational and transactional database system --- ...reeImage-3.16.0_disable-some-plugins.patch | 64 -- .../FreeImage-3.16.0_mingw-makefiles.patch | 405 ------------ .../FreeImage-3.16.0_unbundle.patch | 594 ------------------ .../FreeImage-3.17.0_CVE-2015-0852.patch | 216 +++++++ .../FreeImage-3.17.0_mingw-makefiles.patch | 167 +++++ .../FreeImage-3.17.0_unbundle.patch | 548 ++++++++++++++++ mingw-w64-FreeImage/PKGBUILD | 110 ++-- mingw-w64-cego/PKGBUILD | 48 ++ mingw-w64-codelite-git/PKGBUILD | 27 +- .../fix-sqlite3-find-and-build.patch | 105 +++- .../mingw-posix-layout-fix.patch | 282 +++++++++ .../proper-libraries-names-mingw.patch | 33 + .../0001-gcc-fortran-ChangeLog.patch | 151 ----- mingw-w64-gcc/PKGBUILD | 11 +- mingw-w64-gcc/pr66035.patch | 48 -- mingw-w64-gdb/PKGBUILD | 6 +- .../0002-gnutls-3.4.7-socket.patch | 22 + ...utls-fix-external-libtasn1-detection.patch | 11 + mingw-w64-gnutls/PKGBUILD | 16 +- mingw-w64-isl/PKGBUILD | 9 +- mingw-w64-jxrlib/CMakeLists.txt | 92 +++ mingw-w64-jxrlib/PKGBUILD | 71 +++ mingw-w64-jxrlib/jxrlib_mingw.patch | 93 +++ mingw-w64-jxrlib/jxrlib_warnings.patch | 193 ++++++ mingw-w64-lfcbase/PKGBUILD | 44 ++ mingw-w64-lfcxml/PKGBUILD | 48 ++ mingw-w64-librevenge/PKGBUILD | 7 +- mingw-w64-libwebp/PKGBUILD | 10 +- mingw-w64-openscenegraph/PKGBUILD | 15 +- .../add-gstreamer-cflags.patch | 32 + .../0840-add-builddir-to-library_dirs.patch | 5 +- ...ler-lib-dirs-from-extension-lib-dirs.patch | 26 + mingw-w64-python2/PKGBUILD | 43 +- 33 files changed, 2138 insertions(+), 1414 deletions(-) delete mode 100644 mingw-w64-FreeImage/FreeImage-3.16.0_disable-some-plugins.patch delete mode 100644 mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch delete mode 100644 mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch create mode 100644 mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch create mode 100644 mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch create mode 100644 mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch create mode 100644 mingw-w64-cego/PKGBUILD create mode 100644 mingw-w64-codelite-git/mingw-posix-layout-fix.patch create mode 100644 mingw-w64-codelite-git/proper-libraries-names-mingw.patch delete mode 100644 mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch delete mode 100644 mingw-w64-gcc/pr66035.patch create mode 100644 mingw-w64-gnutls/0002-gnutls-3.4.7-socket.patch create mode 100644 mingw-w64-gnutls/0003-gnutls-fix-external-libtasn1-detection.patch create mode 100644 mingw-w64-jxrlib/CMakeLists.txt create mode 100644 mingw-w64-jxrlib/PKGBUILD create mode 100644 mingw-w64-jxrlib/jxrlib_mingw.patch create mode 100644 mingw-w64-jxrlib/jxrlib_warnings.patch create mode 100644 mingw-w64-lfcbase/PKGBUILD create mode 100644 mingw-w64-lfcxml/PKGBUILD create mode 100644 mingw-w64-openscenegraph/add-gstreamer-cflags.patch create mode 100644 mingw-w64-python2/0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch diff --git a/mingw-w64-FreeImage/FreeImage-3.16.0_disable-some-plugins.patch b/mingw-w64-FreeImage/FreeImage-3.16.0_disable-some-plugins.patch deleted file mode 100644 index 831ba5b321..0000000000 --- a/mingw-w64-FreeImage/FreeImage-3.16.0_disable-some-plugins.patch +++ /dev/null @@ -1,64 +0,0 @@ -diff -rupN FreeImage/FreeImage.2008.vcproj FreeImage-new/FreeImage.2008.vcproj ---- FreeImage/FreeImage.2008.vcproj 2014-01-16 00:27:04.000000000 +0100 -+++ FreeImage-new/FreeImage.2008.vcproj 2014-01-16 00:49:42.334523250 +0100 -@@ -832,10 +828,6 @@ - > - - -- -- - -diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h ---- FreeImage/Source/FreeImage.h 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage.h 2014-01-16 00:49:42.338523316 +0100 -@@ -456,6 +461,10 @@ FI_ENUM(FREE_IMAGE_DITHER) { - FID_BAYER16x16 = 6 // Bayer ordered dispersed dot dithering (order 4 dithering matrix) - }; - -+/* The FreeImage_JPEGTransform functions are deliberately disabled in the -+ Fedora build of FreeImage as they require that FreeImage uses a private copy -+ of libjpeg which is a no no because of security reasons. */ -+#if 0 - /** Lossless JPEG transformations - Constants used in FreeImage_JPEGTransform - */ -@@ -469,6 +478,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) { - FIJPEG_OP_ROTATE_180 = 6, // 180-degree rotation - FIJPEG_OP_ROTATE_270 = 7 // 270-degree clockwise (or 90 ccw) - }; -+#endif - - /** Tone mapping operators. - Constants used in FreeImage_ToneMapping. -@@ -704,7 +714,6 @@ typedef void (DLL_CALLCONV *FI_InitProc) - #define PNG_DEFAULT 0 - #define PNG_IGNOREGAMMA 1 //! loading: avoid gamma correction - #define PNG_Z_BEST_SPEED 0x0001 //! save using ZLib level 1 compression flag (default value is 6) --#define PNG_Z_DEFAULT_COMPRESSION 0x0006 //! save using ZLib level 6 compression flag (default recommended value) - #define PNG_Z_BEST_COMPRESSION 0x0009 //! save using ZLib level 9 compression flag (default value is 6) - #define PNG_Z_NO_COMPRESSION 0x0100 //! save without ZLib compression - #define PNG_INTERLACED 0x0200 //! save using Adam7 interlacing (use | to combine with other save flags) -@@ -1048,14 +1057,19 @@ DLL_API FIBITMAP *DLL_CALLCONV FreeImage - // JPEG lossless transformation routines - // -------------------------------------------------------------------------- - -+/* The FreeImage_JPEGTransform functions are deliberately disabled in the -+ Fedora build of FreeImage as they require that FreeImage uses a private copy -+ of libjpeg which is a no no because of security reasons. */ -+#if 0 - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCropU(const wchar_t *src_file, const wchar_t *dst_file, int left, int top, int right, int bottom); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformFromHandle(FreeImageIO* src_io, fi_handle src_handle, FreeImageIO* dst_io, fi_handle dst_handle, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); - DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); -+#endif - - - // -------------------------------------------------------------------------- diff --git a/mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch b/mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch deleted file mode 100644 index 9946754fa7..0000000000 --- a/mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch +++ /dev/null @@ -1,405 +0,0 @@ ---- FreeImage/Makefile.fip.orig 2014-04-16 18:58:24.825800000 +0400 -+++ FreeImage/Makefile.fip 2014-04-16 19:12:58.956000000 +0400 -@@ -1,81 +1,97 @@ --# Linux makefile for FreeImagePlus -+# Mingw makefile for FreeImagePlus - - # This file can be generated by ./genfipsrclist.sh - include fipMakefile.srcs - --# General configuration variables: --DESTDIR ?= / --INCDIR ?= $(DESTDIR)/usr/include --INSTALLDIR ?= $(DESTDIR)/usr/lib -- --# Converts cr/lf to just lf --DOS2UNIX = dos2unix -- --LIBRARIES = -lstdc++ -- --MODULES = $(SRCS:.c=.o) --MODULES := $(MODULES:.cpp=.o) --CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden --# OpenJPEG --CFLAGS += -DOPJ_STATIC --# LibRaw --CFLAGS += -DNO_LCMS --# LibJXR --CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ --CFLAGS += $(INCLUDE) --CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy --# LibJXR --CXXFLAGS += -D__ANSI__ --CXXFLAGS += $(INCLUDE) -- --ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) -- CFLAGS += -fPIC -- CXXFLAGS += -fPIC --endif -+CC = $(MINGW_TARGET)-gcc -+CXX = $(MINGW_TARGET)-g++ -+LD = $(MINGW_TARGET)-g++ -+AR = ar -+DLLTOOL = dlltool -+RC = windres -+PKGCONFIG = pkg-config -+ -+CP = cp -+MD = mkdir -+RM = rm -+ -+# General configuration variables. -+DESTDIR ?= $(SystemRoot) -+INSTALLDIR ?= $(DESTDIR)/system32 -+DISTDIR ?= Dist -+SRCDIR ?= Wrapper/FreeImagePlus/ -+HEADER = FreeImagePlus.h -+RCFILE = Wrapper/FreeImagePlus/FreeImagePlus.rc -+ -+# Uncomment this variable to make a static library. This may -+# also be specified as an environment variable and can hold -+# any of STATIC and SHARED and must be in uppercase letters. -+# The FreeImage library type defaults to SHARED. -+FREEIMAGE_LIBRARY_TYPE ?= SHARED -+ -+WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB -+WIN32_SHARED_FLAGS = -DFIP_EXPORTS -+ -+# Converts cr/lf to just lf -+DOS2UNIX = dos2unix -+ -+LIBRARIES = -lstdc++ -lfreeimage-$(VER_MAJOR).$(VER_MINOR) -L. -+MODULES = $(SRCS:.c=.o) -+MODULES := $(MODULES:.cpp=.o) -+RESOURCE = $(RCFILE:.rc=.coff) -+CFLAGS += -ISource $(INCLUDE) -DDISABLE_PERF_MEASUREMENT $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS) -+CXXFLAGS += -ISource $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS) -+LDFLAGS += -shared -Wl,-soname,$(SOLIBNAME) -+LDFLAGS += -LDist -lfreeimage -lgdi32 - --TARGET = freeimageplus -+TARGET = freeimageplus - STATICLIB = lib$(TARGET).a --SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so --LIBNAME = lib$(TARGET).so --VERLIBNAME = $(LIBNAME).$(VER_MAJOR) --HEADER = Source/FreeImage.h --HEADERFIP = Wrapper/FreeImagePlus/FreeImagePlus.h -+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll -+IMPORTLIB = lib$(TARGET).dll.a -+EXPORTLIB = $(TARGET).exp -+SOLIBNAME = $(SHAREDLIB) - -+DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER)) -+DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER)) - --default: all -- --all: dist -+TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB) -+TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE)) - --dist: FreeImage -- cp *.a Dist -- cp *.so Dist -- cp Source/FreeImage.h Dist -- cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist -+default: all - --dos2unix: -- @$(DOS2UNIX) $(SRCS) -+all: $(TARGETLIB) $(TARGETDIST) - --FreeImage: $(STATICLIB) $(SHAREDLIB) -+rebuild: clean all - --.c.o: -+%.o: %.c - $(CC) $(CFLAGS) -c $< -o $@ - --.cpp.o: -+%.o: %.cpp - $(CXX) $(CXXFLAGS) -c $< -o $@ - -+%.coff: %.rc -+ $(RC) $(RCFLAGS) -o $@ $< -+ -+$(DISTDIR)/%: % -+ $(CP) $< $@ -+ -+$(DISTDIR)/%: $(SRCDIR)/% -+ $(CP) $< $@ -+ - $(STATICLIB): $(MODULES) -- $(AR) r $@ $(MODULES) -+ $(AR) rs $@ $(MODULES) -+ -+$(IMPORTLIB) $(EXPORTLIB): $(MODULES) -+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES) -+ -+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE) -+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS) - --$(SHAREDLIB): $(MODULES) -- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) -+$(DISTDIR): -+ $(MD) $(DISTDIR) - --install: -- install -d $(INCDIR) $(INSTALLDIR) -- install -m 644 -o root -g root $(HEADER) $(INCDIR) -- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR) -- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) -- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) -+$(TARGETDIST): $(DISTDIR) - - clean: -- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) -+ $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB) - -diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu ---- FreeImage/Makefile.gnu 2014-01-16 00:27:04.000000000 +0100 -+++ FreeImage-new/Makefile.gnu 2014-01-16 00:49:42.335523267 +0100 -@@ -11,7 +11,8 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib - # Converts cr/lf to just lf - DOS2UNIX = dos2unix - --LIBRARIES = -lstdc++ -+INCLUDE += $(shell pkg-config --cflags libopenjp2 libpng libraw OpenEXR zlib libtiff-4 libwebp) -+LIBRARIES = -lstdc++ $(shell pkg-config --libs libopenjp2 libpng libraw OpenEXR zlib libtiff-4 libwebp libwebpdecoder libwebpdemux libwebpmux) -ljpeg -lwebp - - MODULES = $(SRCS:.c=.o) - MODULES := $(MODULES:.cpp=.o) ---- FreeImage/Makefile.mingw.orig 2014-03-15 22:52:28.000000000 +0400 -+++ FreeImage/Makefile.mingw 2014-04-16 19:12:32.030400000 +0400 -@@ -1,136 +1,94 @@ --# MinGW makefile for FreeImage -- --# This file can be generated by ./gensrclist.sh --include Makefile.srcs -- --# General configuration variables. --DESTDIR ?= $(SystemRoot) --INSTALLDIR ?= $(DESTDIR)/system32 --DISTDIR ?= Dist --SRCDIR ?= Source --HEADER = FreeImage.h --RCFILE = FreeImage.rc -- --# Uncomment this variable to make a static library. This may --# also be specified as an environment variable and can hold --# any of STATIC and SHARED and must be in uppercase letters. --# Default: SHARED --#FREEIMAGE_LIBRARY_TYPE = STATIC -- --# Redefine the compiler (CC defaults to cc for MinGW's make, --# however there's only gcc available with MinGW). --CC = gcc -- --# Redefine the linker (we use g++ for linking, since MinGW's --# command ld comes with wrong (Linux) standard library search --# paths). --LD = g++ -- --#Define the dlltool command. --DLLTOOL = dlltool -- --#Define the resource compiler. --RC = windres -- --# Define the copy command. --CP = cp -- --# Define the mkdir command. --MD = mkdir -- --# Define the remove command. --RM = rm -- --# Define additional libraries needed. --# libstdc++ is included by default with MinGW, however for --# WIN32 based builds, LibRawLite needs the winsock libraries. --LIBRARIES = -lws2_32 -- --# Define some additional symboles needed for WIN32 based builds. --WIN32_CFLAGS = -DWINVER=0x0500 $(LIB_TYPE_FLAGS) -DOPJ_STATIC --WIN32_CXXFLAGS = $(WIN32_CFLAGS) -DLIBRAW_NODLL -- --# Workaround for LibRawLite, which does not include C++ header --# file stdexcept, which is casually included with MSVC but not --# with MinGW. This can be removed after LibRawLite got control --# over its includes again. --WIN32_CXXFLAGS += -include stdexcept -- --# Define DLL image header information flags for the linker. --WIN32_LDFLAGS = -Wl,--subsystem,windows:5.0,--major-os-version,5 -- --WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB --WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS -- --MODULES = $(SRCS:.c=.o) --MODULES := $(MODULES:.cpp=.o) --RESOURCE = $(RCFILE:.rc=.coff) --CFLAGS ?= -O3 -fexceptions -DNDEBUG -DDISABLE_PERF_MEASUREMENT $(WIN32_CFLAGS) --CFLAGS += $(INCLUDE) --CXXFLAGS ?= -O3 -fexceptions -Wno-ctor-dtor-privacy -DNDEBUG $(WIN32_CXXFLAGS) --CXXFLAGS += $(INCLUDE) --RCFLAGS ?= -DNDEBUG --LDFLAGS ?= -s -shared -static -Wl,-soname,$(SOLIBNAME) $(WIN32_LDFLAGS) --DLLTOOLFLAGS ?= --add-stdcall-underscore -- --TARGET = FreeImage --STATICLIB = lib$(TARGET).a --SHAREDLIB = $(TARGET).dll --IMPORTLIB = $(TARGET).lib --EXPORTLIB = $(TARGET).exp --SOLIBNAME = $(SHAREDLIB).$(VER_MAJOR) -- --DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER)) --DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER)) -- --# The FreeImage library type defaults to SHARED. --FREEIMAGE_LIBRARY_TYPE ?= SHARED -- --TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB) --TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE)) --LIB_TYPE_FLAGS = $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS) -- --default: all -- --all: mkdist -- --rebuild: clean all -- --mkdist: FreeImage $(TARGETDIST) -- --FreeImage: $(TARGETLIB) -- --%.o: %.c -- $(CC) $(CFLAGS) -c $< -o $@ -- --%.o: %.cpp -- $(CXX) $(CXXFLAGS) -c $< -o $@ -- --%.coff: %.rc -- $(RC) $(RCFLAGS) -o $@ $< -- --$(DISTDIR)/%: % -- $(CP) $< $@ -- --$(DISTDIR)/%: $(SRCDIR)/% -- $(CP) $< $@ -- --$(STATICLIB): $(MODULES) -- $(AR) rs $@ $(MODULES) -- --$(IMPORTLIB) $(EXPORTLIB): $(MODULES) -- $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES) -- --$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE) -- $(LD) $(LDFLAGS) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LIBRARIES) -- --$(DISTDIR): -- $(MD) $(DISTDIR) -- --$(TARGETDIST): $(DISTDIR) -- --install: -- $(CP) $(SHAREDLIB) $(INSTALLDIR) -- --clean: -- $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB) -+# MinGW makefile for FreeImage -+ -+# This file can be generated by ./gensrclist.sh -+include Makefile.srcs -+ -+CC = gcc -+CXX = g++ -+LD = g++ -+AR = ar -+DLLTOOL = dlltool -+RC = windres -+PKGCONFIG = pkg-config -+ -+CP = cp -+MD = mkdir -+RM = rm -+ -+# General configuration variables. -+DESTDIR ?= $(SystemRoot) -+INSTALLDIR ?= $(DESTDIR)/system32 -+DISTDIR ?= Dist -+SRCDIR ?= Source -+HEADER = FreeImage.h -+RCFILE = FreeImage.rc -+ -+# Uncomment this variable to make a static library. This may -+# also be specified as an environment variable and can hold -+# any of STATIC and SHARED and must be in uppercase letters. -+# The FreeImage library type defaults to SHARED. -+FREEIMAGE_LIBRARY_TYPE ?= SHARED -+ -+WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB -+WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS -+ -+MODULES = $(SRCS:.c=.o) -+MODULES := $(MODULES:.cpp=.o) -+RESOURCE = $(RCFILE:.rc=.coff) -+CFLAGS += $(INCLUDE) -DDISABLE_PERF_MEASUREMENT $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS) -+CFLAGS += $(shell $(PKGCONFIG) --cflags libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp) -+CXXFLAGS += $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS) -+CXXFLAGS += $(shell $(PKGCONFIG) --cflags libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp) -+LDFLAGS += -shared -Wl,-soname,$(SOLIBNAME) -+LDFLAGS += $(shell $(PKGCONFIG) --libs libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp libwebpdecoder libwebpdemux libwebpmux) -ljpeg -+ -+TARGET = freeimage -+STATICLIB = lib$(TARGET).a -+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll -+IMPORTLIB = lib$(TARGET).dll.a -+EXPORTLIB = $(TARGET).exp -+SOLIBNAME = $(SHAREDLIB) -+ -+DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER)) -+DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER)) -+ -+TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB) -+TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE)) -+ -+default: all -+ -+all: $(TARGETLIB) $(TARGETDIST) -+ -+rebuild: clean all -+ -+%.o: %.c -+ $(CC) $(CFLAGS) -c $< -o $@ -+ -+%.o: %.cpp -+ $(CXX) $(CXXFLAGS) -c $< -o $@ -+ -+%.coff: %.rc -+ $(RC) $(RCFLAGS) -o $@ $< -+ -+$(DISTDIR)/%: % -+ $(CP) $< $@ -+ -+$(DISTDIR)/%: $(SRCDIR)/% -+ $(CP) $< $@ -+ -+$(STATICLIB): $(MODULES) -+ $(AR) rs $@ $(MODULES) -+ -+$(IMPORTLIB) $(EXPORTLIB): $(MODULES) -+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES) -+ -+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE) -+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS) -+ -+$(DISTDIR): -+ $(MD) $(DISTDIR) -+ -+$(TARGETDIST): $(DISTDIR) -+ -+clean: -+ $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB) diff --git a/mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch b/mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch deleted file mode 100644 index 3e47c5e075..0000000000 --- a/mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch +++ /dev/null @@ -1,594 +0,0 @@ -diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh ---- FreeImage/genfipsrclist.sh 2014-01-16 00:27:04.000000000 +0100 -+++ FreeImage-new/genfipsrclist.sh 2014-01-16 00:49:42.334523250 +0100 -@@ -1,6 +1,6 @@ - #!/bin/sh - --DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus" -+DIRLIST=" Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus" - - - echo "VER_MAJOR = 3" > fipMakefile.srcs -diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh ---- FreeImage/gensrclist.sh 2014-01-16 00:27:04.000000000 +0100 -+++ FreeImage-new/gensrclist.sh 2014-01-16 00:49:42.335523267 +0100 -@@ -1,6 +1,6 @@ - #!/bin/sh - --DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib" -+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib" - - echo "VER_MAJOR = 3" > Makefile.srcs - echo "VER_MINOR = 16.0" >> Makefile.srcs -diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp ---- FreeImage/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:49:42.335523267 +0100 -@@ -21,7 +21,7 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibOpenJPEG/openjpeg.h" -+#include - #include "J2KHelper.h" - - // -------------------------------------------------------------------------- -diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp ---- FreeImage/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:49:42.336523283 +0100 -@@ -22,16 +22,16 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../OpenEXR/IlmImf/ImfIO.h" --#include "../OpenEXR/Iex/Iex.h" --#include "../OpenEXR/IlmImf/ImfOutputFile.h" --#include "../OpenEXR/IlmImf/ImfInputFile.h" --#include "../OpenEXR/IlmImf/ImfRgbaFile.h" --#include "../OpenEXR/IlmImf/ImfChannelList.h" --#include "../OpenEXR/IlmImf/ImfRgba.h" --#include "../OpenEXR/IlmImf/ImfArray.h" --#include "../OpenEXR/IlmImf/ImfPreviewImage.h" --#include "../OpenEXR/Half/half.h" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include - - - // ========================================================== -diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp ---- FreeImage/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:49:42.336523283 +0100 -@@ -21,7 +21,7 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibOpenJPEG/openjpeg.h" -+#include - #include "J2KHelper.h" - - // ========================================================== -diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp ---- FreeImage/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:49:42.336523283 +0100 -@@ -21,7 +21,7 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibOpenJPEG/openjpeg.h" -+#include - #include "J2KHelper.h" - - // ========================================================== -diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp ---- FreeImage/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:49:42.336523283 +0100 -@@ -35,9 +35,9 @@ extern "C" { - #undef FAR - #include - --#include "../LibJPEG/jinclude.h" --#include "../LibJPEG/jpeglib.h" --#include "../LibJPEG/jerror.h" -+#include -+#include -+#include - } - - #include "FreeImage.h" -diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp ---- FreeImage/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:49:42.337523300 +0100 -@@ -37,8 +37,8 @@ - - // ---------------------------------------------------------- - --#include "../ZLib/zlib.h" --#include "../LibPNG/png.h" -+#include -+#include - - // ---------------------------------------------------------- - -@@ -106,7 +106,11 @@ ReadMetadata(png_structp png_ptr, png_in - tag = FreeImage_CreateTag(); - if(!tag) return FALSE; - -+#ifdef PNG_iTXt_SUPPORTED - DWORD tag_length = (DWORD) MAX(text_ptr[i].text_length, text_ptr[i].itxt_length); -+#else -+ DWORD tag_length = text_ptr[i].text_length; -+#endif - - FreeImage_SetTagLength(tag, tag_length); - FreeImage_SetTagCount(tag, tag_length); -@@ -153,10 +157,11 @@ WriteMetadata(png_structp png_ptr, png_i - text_metadata.key = (char*)FreeImage_GetTagKey(tag); // keyword, 1-79 character description of "text" - text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "") - text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string -+#ifdef PNG_iTXt_SUPPORTED - text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string - text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer - text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer -- -+#endif - // set the tag - png_set_text(png_ptr, info_ptr, &text_metadata, 1); - -@@ -175,10 +180,11 @@ WriteMetadata(png_structp png_ptr, png_i - text_metadata.key = (char*)g_png_xmp_keyword; // keyword, 1-79 character description of "text" - text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "") - text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string -+#ifdef PNG_iTXt_SUPPORTED - text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string - text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer - text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer -- -+#endif - // set the tag - png_set_text(png_ptr, info_ptr, &text_metadata, 1); - bResult &= TRUE; -diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp ---- FreeImage/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:55:13.692904877 +0100 -@@ -19,7 +19,7 @@ - // Use at your own risk! - // ========================================================== - --#include "../LibRawLite/libraw/libraw.h" -+#include - - #include "FreeImage.h" - #include "Utilities.h" -diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp ---- FreeImage/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:49:42.337523300 +0100 -@@ -37,9 +37,9 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibTIFF4/tiffiop.h" -+#include - #include "../Metadata/FreeImageTag.h" --#include "../OpenEXR/Half/half.h" -+#include - - #include "FreeImageIO.h" - #include "PSDParser.h" -@@ -202,27 +202,9 @@ TIFFFdOpen(thandle_t handle, const char - _tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc, - _tiffSizeProc, _tiffMapProc, _tiffUnmapProc); - -- // Warning: tif_fd is declared as 'int' currently (see libTIFF), -- // may result in incorrect file pointers inside libTIFF on -- // 64bit machines (sizeof(int) != sizeof(long)). -- // Needs to be fixed within libTIFF. -- if (tif) { -- tif->tif_fd = (long)handle; -- } -- - return tif; - } - --/** --Open a TIFF file for reading or writing --@param name --@param mode --*/ --TIFF* --TIFFOpen(const char* name, const char* mode) { -- return 0; --} -- - // ---------------------------------------------------------- - // TIFF library FreeImage-specific routines. - // ---------------------------------------------------------- -diff -rupN FreeImage/Source/FreeImage/PluginG3.cpp FreeImage-new/Source/FreeImage/PluginG3.cpp ---- FreeImage/Source/FreeImage/PluginG3.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginG3.cpp 2014-01-16 00:49:42.336523283 +0100 -@@ -20,7 +20,7 @@ - // Use at your own risk! - // ========================================================== - --#include "../LibTIFF4/tiffiop.h" -+#include - - #include "FreeImage.h" - #include "Utilities.h" -diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp ---- FreeImage/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:49:42.337523300 +0100 -@@ -37,10 +37,10 @@ - - #include "../Metadata/FreeImageTag.h" - --#include "../LibWebP/src/webp/decode.h" --#include "../LibWebP/src/webp/encode.h" --#include "../LibWebP/src/enc/vp8enci.h" --#include "../LibWebP/src/webp/mux.h" -+#include -+#include -+//#include "../LibWebP/src/enc/vp8enci.h" -+#include - - // ========================================================== - // Plugin Interface -diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp ---- FreeImage/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:49:42.338523316 +0100 -@@ -19,10 +19,9 @@ - // Use at your own risk! - // ========================================================== - --#include "../ZLib/zlib.h" -+#include - #include "FreeImage.h" - #include "Utilities.h" --#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */ - - /** - Compresses a source buffer into a target buffer, using the ZLib library. -@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t - return 0; - case Z_OK: { - // patch header, setup crc and length (stolen from mod_trace_output) -- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code -+ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix) - crc = crc32(crc, source, source_size); - memcpy(target + 4 + dest_len, &crc, 4); - memcpy(target + 8 + dest_len, &source_size, 4); -diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp ---- FreeImage/Source/Metadata/XTIFF.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/Metadata/XTIFF.cpp 2014-01-16 00:49:42.338523316 +0100 -@@ -29,13 +29,22 @@ - #pragma warning (disable : 4786) // identifier was truncated to 'number' characters - #endif - --#include "../LibTIFF4/tiffiop.h" -+#include - - #include "FreeImage.h" - #include "Utilities.h" - #include "FreeImageTag.h" - #include "FIRational.h" - -+/* -+ * Caveat emperor this is a private libtiff functions which we need, -+ * there is no better solution I'm afraid. -+ */ -+extern "C" -+{ -+ int _TIFFDataSize(TIFFDataType type); -+} -+ - // ---------------------------------------------------------- - // Extended TIFF Directory GEO Tag Support - // ---------------------------------------------------------- -@@ -205,7 +214,7 @@ tiff_write_geotiff_profile(TIFF *tif, FI - Read a single exif tag - */ - static BOOL --tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, TIFFDirectory *td, uint32 tag) { -+tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, uint32 tag) { - const TIFFField *fip; - uint32 value_count; - int mem_alloc = 0; -@@ -226,8 +235,8 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - return TRUE; - } - -- if(fip->field_passcount) { //<- "passcount" means "returns count" -- if (fip->field_readcount != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count" -+ if(TIFFFieldPassCount(fip)) { //<- "passcount" means "returns count" -+ if (TIFFFieldReadCount(fip) != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count" - - // assume TIFF_VARIABLE (uses SHORT count) - uint16 value_count16; -@@ -244,35 +253,37 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - - // determine count - -- if (fip->field_readcount == TIFF_VARIABLE || fip->field_readcount == TIFF_VARIABLE2) { -+ if (TIFFFieldReadCount(fip) == TIFF_VARIABLE || TIFFFieldReadCount(fip) == TIFF_VARIABLE2) { - value_count = 1; -- } else if (fip->field_readcount == TIFF_SPP) { -- value_count = td->td_samplesperpixel; -+ } else if (TIFFFieldReadCount(fip) == TIFF_SPP) { -+ uint16 spp; -+ TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, &spp); -+ value_count = spp; - } else { -- value_count = fip->field_readcount; -+ value_count = TIFFFieldReadCount(fip); - } - - // access fields as pointers to data - // (### determining this is NOT robust... and hardly can be. It is implemented looking the _TIFFVGetField code) - -- if(fip->field_tag == TIFFTAG_TRANSFERFUNCTION) { -+ if(TIFFFieldTag(fip) == TIFFTAG_TRANSFERFUNCTION) { - // reading this tag cause a bug probably located somewhere inside libtiff - return TRUE; - } - -- if ((fip->field_type == TIFF_ASCII -- || fip->field_readcount == TIFF_VARIABLE -- || fip->field_readcount == TIFF_VARIABLE2 -- || fip->field_readcount == TIFF_SPP -+ if ((TIFFFieldDataType(fip) == TIFF_ASCII -+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE -+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE2 -+ || TIFFFieldReadCount(fip) == TIFF_SPP - || value_count > 1) - -- && fip->field_tag != TIFFTAG_PAGENUMBER -- && fip->field_tag != TIFFTAG_HALFTONEHINTS -- && fip->field_tag != TIFFTAG_YCBCRSUBSAMPLING -- && fip->field_tag != TIFFTAG_DOTRANGE -+ && TIFFFieldTag(fip) != TIFFTAG_PAGENUMBER -+ && TIFFFieldTag(fip) != TIFFTAG_HALFTONEHINTS -+ && TIFFFieldTag(fip) != TIFFTAG_YCBCRSUBSAMPLING -+ && TIFFFieldTag(fip) != TIFFTAG_DOTRANGE - -- && fip->field_tag != TIFFTAG_BITSPERSAMPLE //<- these two are tricky - -- && fip->field_tag != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value -+ && TIFFFieldTag(fip) != TIFFTAG_BITSPERSAMPLE //<- these two are tricky: -+ && TIFFFieldTag(fip) != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value - ) { - if(TIFFGetField(tif, tag, &raw_data) != 1) { - return TRUE; -@@ -281,7 +292,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - - // access fields as values - -- const int value_size = _TIFFDataSize(fip->field_type); -+ const int value_size = _TIFFDataSize((TIFFFieldDataType(fip))); - raw_data = _TIFFmalloc(value_size * value_count); - mem_alloc = 1; - int ok = FALSE; -@@ -302,7 +313,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - break; - */ - default: -- FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", fip->field_name); -+ FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", TIFFFieldName(fip)); - break; - } - if(ok != 1) { -@@ -325,59 +336,59 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - FreeImage_SetTagID(fitag, (WORD)tag); - FreeImage_SetTagKey(fitag, key); - -- switch(fip->field_type) { -+ switch(TIFFFieldDataType(fip)) { - case TIFF_BYTE: - FreeImage_SetTagType(fitag, FIDT_BYTE); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_UNDEFINED: - FreeImage_SetTagType(fitag, FIDT_UNDEFINED); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_SBYTE: - FreeImage_SetTagType(fitag, FIDT_SBYTE); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_SHORT: - FreeImage_SetTagType(fitag, FIDT_SHORT); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_SSHORT: - FreeImage_SetTagType(fitag, FIDT_SSHORT); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_LONG: - FreeImage_SetTagType(fitag, FIDT_LONG); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_IFD: - FreeImage_SetTagType(fitag, FIDT_IFD); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_SLONG: - FreeImage_SetTagType(fitag, FIDT_SLONG); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; -@@ -392,7 +403,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - rvalue[2*i+1] = rational.getDenominator(); - } - FreeImage_SetTagType(fitag, FIDT_RATIONAL); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, rvalue); - free(rvalue); -@@ -409,7 +420,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - rvalue[2*i+1] = rational.getDenominator(); - } - FreeImage_SetTagType(fitag, FIDT_RATIONAL); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, rvalue); - free(rvalue); -@@ -418,35 +429,35 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD - - case TIFF_FLOAT: - FreeImage_SetTagType(fitag, FIDT_FLOAT); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_DOUBLE: - FreeImage_SetTagType(fitag, FIDT_DOUBLE); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_LONG8: // BigTIFF 64-bit unsigned integer - FreeImage_SetTagType(fitag, FIDT_LONG8); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_IFD8: // BigTIFF 64-bit unsigned integer (offset) - FreeImage_SetTagType(fitag, FIDT_IFD8); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; - - case TIFF_SLONG8: // BigTIFF 64-bit signed integer - FreeImage_SetTagType(fitag, FIDT_SLONG8); -- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count); -+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count); - FreeImage_SetTagCount(fitag, value_count); - FreeImage_SetTagValue(fitag, raw_data); - break; -@@ -489,16 +500,16 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M - - TagLib& tagLib = TagLib::instance(); - -- TIFFDirectory *td = &tif->tif_dir; -- - count = (short) TIFFGetTagListCount(tif); - for(i = 0; i < count; i++) { - uint32 tag = TIFFGetTagListEntry(tif, i); - // read the tag -- if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, td, tag)) -+ if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, tag)) - return FALSE; - } - -+/* Disabled for Fedora as it is using internal library structures. */ -+#if 0 - // we want to know values of standard tags too!! - - // loop over all Core Directory Tags -@@ -533,13 +544,14 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M - - // process *all* other tags (some will be ignored) - -- tiff_read_exif_tag(tif, md_model, dib, tagLib, td, fld->field_tag); -+ tiff_read_exif_tag(tif, md_model, dib, tagLib, fld->field_tag); - - - lastTag = fld->field_tag; - } - - } -+#endif - - return TRUE; - -@@ -611,6 +623,10 @@ Write all known exif tags - */ - BOOL - tiff_write_exif_tags(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib) { -+/* Disabled for Fedora as it is using internal library structures. Siberia -+ * winter on upstream developer! :-) */ -+ return FALSE; -+#if 0 - char defaultKey[16]; - - // only EXIF_MAIN so far -@@ -662,4 +678,5 @@ tiff_write_exif_tags(TIFF *tif, TagLib:: - } - - return TRUE; -+#endif - } -diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp ---- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:49:42.338523316 +0100 -@@ -26,10 +26,10 @@ - #undef FAR - #include - --#include "../LibJPEG/jinclude.h" --#include "../LibJPEG/jpeglib.h" --#include "../LibJPEG/jerror.h" --#include "../LibJPEG/transupp.h" -+#include -+#include -+#include -+#include - } - - #include "FreeImage.h" -diff -rupN FreeImage/Source/LibJXR/image/sys/strcodec.c FreeImage-new/Source/LibJXR/image/sys/strcodec.c ---- FreeImage/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:27:03.000000000 +0100 -+++ FreeImage-new/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:49:42.338523316 +0100 -@@ -664,7 +664,7 @@ - //================================================================ - // Memory access functions - //================================================================ --#if (defined(WIN32) && !defined(UNDER_CE) && !defined(__MINGW32__)) || (defined(UNDER_CE) && defined(_ARM_)) -+#if (defined(WIN32) && !defined(UNDER_CE)) || (defined(UNDER_CE) && defined(_ARM_)) - // WinCE ARM and Desktop x86 - #else - // other platform diff --git a/mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch b/mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch new file mode 100644 index 0000000000..19ec93a10e --- /dev/null +++ b/mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch @@ -0,0 +1,216 @@ +diff -rupN FreeImage/Source/FreeImage/PluginPCX.cpp FreeImage-new/Source/FreeImage/PluginPCX.cpp +--- FreeImage/Source/FreeImage/PluginPCX.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginPCX.cpp 2015-09-05 02:44:55.429436425 +0200 +@@ -30,7 +30,7 @@ + // Constants + headers + // ---------------------------------------------------------- + +-#define IO_BUF_SIZE 2048 ++#define PCX_IO_BUF_SIZE 2048 + + // ---------------------------------------------------------- + +@@ -120,17 +120,17 @@ readline(FreeImageIO &io, fi_handle hand + + while (length--) { + if (count == 0) { +- if (*ReadPos >= IO_BUF_SIZE - 1 ) { +- if (*ReadPos == IO_BUF_SIZE - 1) { ++ if (*ReadPos >= PCX_IO_BUF_SIZE - 1 ) { ++ if (*ReadPos == PCX_IO_BUF_SIZE - 1) { + // we still have one BYTE, copy it to the start pos + +- *ReadBuf = ReadBuf[IO_BUF_SIZE - 1]; ++ *ReadBuf = ReadBuf[PCX_IO_BUF_SIZE - 1]; + +- io.read_proc(ReadBuf + 1, 1, IO_BUF_SIZE - 1, handle); ++ io.read_proc(ReadBuf + 1, 1, PCX_IO_BUF_SIZE - 1, handle); + } else { + // read the complete buffer + +- io.read_proc(ReadBuf, 1, IO_BUF_SIZE, handle); ++ io.read_proc(ReadBuf, 1, PCX_IO_BUF_SIZE, handle); + } + + *ReadPos = 0; +@@ -346,19 +346,9 @@ Load(FreeImageIO *io, fi_handle handle, + BOOL header_only = (flags & FIF_LOAD_NOPIXELS) == FIF_LOAD_NOPIXELS; + + try { +- // check PCX identifier +- +- long start_pos = io->tell_proc(handle); +- BOOL validated = pcx_validate(io, handle); +- io->seek_proc(handle, start_pos, SEEK_SET); +- if(!validated) { +- throw FI_MSG_ERROR_MAGIC_NUMBER; +- } +- +- // process the header +- + PCXHEADER header; + ++ // process the header + if(io->read_proc(&header, sizeof(PCXHEADER), 1, handle) != 1) { + throw FI_MSG_ERROR_PARSING; + } +@@ -366,20 +356,38 @@ Load(FreeImageIO *io, fi_handle handle, + SwapHeader(&header); + #endif + +- // allocate a new DIB ++ // process the window ++ const WORD *window = header.window; // left, upper, right,lower pixel coord. ++ const int left = window[0]; ++ const int top = window[1]; ++ const int right = window[2]; ++ const int bottom = window[3]; + +- unsigned width = header.window[2] - header.window[0] + 1; +- unsigned height = header.window[3] - header.window[1] + 1; +- unsigned bitcount = header.bpp * header.planes; +- +- if (bitcount == 24) { +- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK); +- } else { +- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount); ++ // check image size ++ if((left >= right) || (top >= bottom)) { ++ throw FI_MSG_ERROR_PARSING; + } + +- // if the dib couldn't be allocated, throw an error ++ const unsigned width = right - left + 1; ++ const unsigned height = bottom - top + 1; ++ const unsigned bitcount = header.bpp * header.planes; + ++ // allocate a new dib ++ switch(bitcount) { ++ case 1: ++ case 4: ++ case 8: ++ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount); ++ break; ++ case 24: ++ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK); ++ break; ++ default: ++ throw FI_MSG_ERROR_DIB_MEMORY; ++ break; ++ } ++ ++ // if the dib couldn't be allocated, throw an error + if (!dib) { + throw FI_MSG_ERROR_DIB_MEMORY; + } +@@ -426,19 +434,23 @@ Load(FreeImageIO *io, fi_handle handle, + + if (palette_id == 0x0C) { + BYTE *cmap = (BYTE*)malloc(768 * sizeof(BYTE)); +- io->read_proc(cmap, 768, 1, handle); + +- pal = FreeImage_GetPalette(dib); +- BYTE *pColormap = &cmap[0]; ++ if(cmap) { ++ io->read_proc(cmap, 768, 1, handle); + +- for(int i = 0; i < 256; i++) { +- pal[i].rgbRed = pColormap[0]; +- pal[i].rgbGreen = pColormap[1]; +- pal[i].rgbBlue = pColormap[2]; +- pColormap += 3; ++ pal = FreeImage_GetPalette(dib); ++ BYTE *pColormap = &cmap[0]; ++ ++ for(int i = 0; i < 256; i++) { ++ pal[i].rgbRed = pColormap[0]; ++ pal[i].rgbGreen = pColormap[1]; ++ pal[i].rgbBlue = pColormap[2]; ++ pColormap += 3; ++ } ++ ++ free(cmap); + } + +- free(cmap); + } + + // wrong palette ID, perhaps a gray scale is needed ? +@@ -463,12 +475,12 @@ Load(FreeImageIO *io, fi_handle handle, + return dib; + } + +- // calculate the line length for the PCX and the DIB ++ // calculate the line length for the PCX and the dib + + // length of raster line in bytes +- unsigned linelength = header.bytes_per_line * header.planes; +- // length of DIB line (rounded to DWORD) in bytes +- unsigned pitch = FreeImage_GetPitch(dib); ++ const unsigned linelength = header.bytes_per_line * header.planes; ++ // length of dib line (rounded to DWORD) in bytes ++ const unsigned pitch = FreeImage_GetPitch(dib); + + // run-length encoding ? + +@@ -478,14 +490,18 @@ Load(FreeImageIO *io, fi_handle handle, + // --------------- + + line = (BYTE*)malloc(linelength * sizeof(BYTE)); +- if(!line) throw FI_MSG_ERROR_MEMORY; ++ if(!line) { ++ throw FI_MSG_ERROR_MEMORY; ++ } + +- ReadBuf = (BYTE*)malloc(IO_BUF_SIZE * sizeof(BYTE)); +- if(!ReadBuf) throw FI_MSG_ERROR_MEMORY; ++ ReadBuf = (BYTE*)malloc(PCX_IO_BUF_SIZE * sizeof(BYTE)); ++ if(!ReadBuf) { ++ throw FI_MSG_ERROR_MEMORY; ++ } + + bits = FreeImage_GetScanLine(dib, height - 1); + +- int ReadPos = IO_BUF_SIZE; ++ int ReadPos = PCX_IO_BUF_SIZE; + + if ((header.planes == 1) && ((header.bpp == 1) || (header.bpp == 8))) { + BYTE skip; +@@ -497,7 +513,7 @@ Load(FreeImageIO *io, fi_handle handle, + // skip trailing garbage at the end of the scanline + + for (unsigned count = written; count < linelength; count++) { +- if (ReadPos < IO_BUF_SIZE) { ++ if (ReadPos < PCX_IO_BUF_SIZE) { + ReadPos++; + } else { + io->read_proc(&skip, sizeof(BYTE), 1, handle); +@@ -513,7 +529,9 @@ Load(FreeImageIO *io, fi_handle handle, + unsigned x, y, written; + + buffer = (BYTE*)malloc(width * sizeof(BYTE)); +- if(!buffer) throw FI_MSG_ERROR_MEMORY; ++ if(!buffer) { ++ throw FI_MSG_ERROR_MEMORY; ++ } + + for (y = 0; y < height; y++) { + written = readline(*io, handle, line, linelength, bIsRLE, ReadBuf, &ReadPos); +@@ -532,7 +550,7 @@ Load(FreeImageIO *io, fi_handle handle, + } + } + +- // then write the DIB row ++ // then write the dib row + + for (x = 0; x < width / 2; x++) { + bits[x] = (buffer[2*x] << 4) | buffer[2*x+1]; +@@ -541,7 +559,7 @@ Load(FreeImageIO *io, fi_handle handle, + // skip trailing garbage at the end of the scanline + + for (unsigned count = written; count < linelength; count++) { +- if (ReadPos < IO_BUF_SIZE) { ++ if (ReadPos < PCX_IO_BUF_SIZE) { + ReadPos++; + } else { + io->read_proc(&skip, sizeof(BYTE), 1, handle); diff --git a/mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch b/mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch new file mode 100644 index 0000000000..ab125eee76 --- /dev/null +++ b/mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch @@ -0,0 +1,167 @@ +diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip +--- FreeImage/Makefile.fip 2015-09-17 22:51:21.797196208 +0200 ++++ FreeImage-new/Makefile.fip 2015-09-24 01:18:01.576395215 +0200 +@@ -3,6 +3,14 @@ + # This file can be generated by ./genfipsrclist.sh + include fipMakefile.srcs + ++CC = gcc ++CXX = g++ ++LD = g++ ++AR = ar ++DLLTOOL = dlltool ++RC = windres ++PKGCONFIG = pkg-config ++ + # General configuration variables: + DESTDIR ?= / + INCDIR ?= $(DESTDIR)/usr/include +@@ -24,24 +32,21 @@ override CFLAGS += -DNO_LCMS + override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ + override CFLAGS += $(INCLUDE) + CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy ++override CXXFLAGS += -DFIP_EXPORTS + # LibJXR + override CXXFLAGS += -D__ANSI__ + override CXXFLAGS += $(INCLUDE) + LDFLAGS ?= +-override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR) +- +-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) +- override CFLAGS += -fPIC +- override CXXFLAGS += -fPIC +-endif ++override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR) -lgdi32 + + TARGET = freeimageplus + STATICLIB = lib$(TARGET).a +-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so +-LIBNAME = lib$(TARGET).so +-VERLIBNAME = $(LIBNAME).$(VER_MAJOR) ++SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll ++IMPORTLIB = lib$(TARGET).dll.a ++EXPORTLIB = lib$(TARGET).exp + HEADER = Source/FreeImage.h + HEADERFIP = Wrapper/FreeImagePlus/FreeImagePlus.h ++RCFILE = Wrapper/FreeImagePlus/FreeImagePlus.rc + + + default: all +@@ -51,7 +56,8 @@ all: dist + dist: FreeImage + mkdir -p Dist + cp *.a Dist/ +- cp *.so Dist/ ++ cp *.dll Dist/ ++ cp *.dll.a Dist/ + cp Source/FreeImage.h Dist/ + cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist/ + +@@ -66,21 +72,14 @@ FreeImage: $(STATICLIB) $(SHAREDLIB) + .cpp.o: + $(CXX) $(CXXFLAGS) -c $< -o $@ + +-$(STATICLIB): $(MODULES) +- $(AR) r $@ $(MODULES) ++%.coff: %.rc ++ $(RC) $(RCFLAGS) -o $@ $< + +-$(SHAREDLIB): $(MODULES) +- $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) +- +-install: +- install -d $(INCDIR) $(INSTALLDIR) +- install -m 644 -o root -g root $(HEADER) $(INCDIR) +- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR) +- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) +- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) +- ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) +- ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) ++$(STATICLIB): $(MODULES) ++ $(AR) rs $@ $(MODULES) + +-clean: +- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) ++$(IMPORTLIB) $(EXPORTLIB): $(MODULES) ++ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES) + ++$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE) ++ $(LD) -shared -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS) +diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu +--- FreeImage/Makefile.gnu 2015-09-17 22:51:21.798196232 +0200 ++++ FreeImage-new/Makefile.gnu 2015-09-24 01:24:52.381788259 +0200 +@@ -3,6 +3,14 @@ + # This file can be generated by ./gensrclist.sh + include Makefile.srcs + ++CC = gcc ++CXX = g++ ++LD = g++ ++AR = ar ++DLLTOOL = dlltool ++RC = windres ++PKGCONFIG = pkg-config ++ + # General configuration variables: + DESTDIR ?= / + INCDIR ?= $(DESTDIR)/usr/include +@@ -16,18 +24,14 @@ LIBRARIES = -lstdc++ + MODULES = $(SRCS:.c=.o) + MODULES := $(MODULES:.cpp=.o) + CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden +-override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib) +-override LDFLAGS += -ljpeg -ljpegxr $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib) +- +-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) +- override CFLAGS += -fPIC +-endif ++override CFLAGS += $(INCLUDE) -D__ANSI__ -DFREEIMAGE_EXPORTS -I/mingw32/include/jxrlib -I/mingw64/include/jxrlib $(shell ${PKGCONFIG} --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib) ++override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell ${PKGCONFIG} --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib) + + TARGET = freeimage + STATICLIB = lib$(TARGET).a +-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so +-LIBNAME = lib$(TARGET).so +-VERLIBNAME = $(LIBNAME).$(VER_MAJOR) ++SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll ++IMPORTLIB = lib$(TARGET).dll.a ++EXPORTLIB = lib$(TARGET).exp + HEADER = Source/FreeImage.h + + +@@ -39,7 +43,8 @@ all: dist + dist: FreeImage + mkdir -p Dist + cp *.a Dist/ +- cp *.so Dist/ ++ cp *.dll Dist/ ++ cp *.dll.a Dist/ + cp Source/FreeImage.h Dist/ + + dos2unix: +@@ -54,20 +59,10 @@ FreeImage: $(STATICLIB) $(SHAREDLIB) + $(CXX) $(CFLAGS) -c $< -o $@ + + $(STATICLIB): $(MODULES) +- $(AR) r $@ $(MODULES) +- +-$(SHAREDLIB): $(MODULES) +- $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) +- +-install: +- install -d $(INCDIR) $(INSTALLDIR) +- install -m 644 -o root -g root $(HEADER) $(INCDIR) +- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) +- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) +- ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) +- ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) +-# ldconfig ++ $(AR) rs $@ $(MODULES) + +-clean: +- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) ++$(IMPORTLIB) $(EXPORTLIB): $(MODULES) ++ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES) + ++$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE) ++ $(LD) -shared -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS) diff --git a/mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch b/mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch new file mode 100644 index 0000000000..d5729bc108 --- /dev/null +++ b/mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch @@ -0,0 +1,548 @@ +diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh +--- FreeImage/genfipsrclist.sh 2015-02-20 10:52:16.000000000 +0100 ++++ FreeImage-new/genfipsrclist.sh 2015-09-05 02:13:52.041353305 +0200 +@@ -1,6 +1,6 @@ + #!/bin/sh + +-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus" ++DIRLIST="Wrapper/FreeImagePlus" + + + echo "VER_MAJOR = 3" > fipMakefile.srcs +@@ -19,5 +19,6 @@ echo -n "INCLUDE =" >> fipMakefile.srcs + for DIR in $DIRLIST; do + echo -n " -I$DIR" >> fipMakefile.srcs + done ++echo -n " -IDist" >> fipMakefile.srcs + echo >> fipMakefile.srcs + +diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh +--- FreeImage/gensrclist.sh 2015-02-20 10:51:50.000000000 +0100 ++++ FreeImage-new/gensrclist.sh 2015-09-05 02:13:52.041353305 +0200 +@@ -1,6 +1,6 @@ + #!/bin/sh + +-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib" ++DIRLIST=". Source Source/Metadata Source/FreeImageToolkit" + + echo "VER_MAJOR = 3" > Makefile.srcs + echo "VER_MINOR = 17.0" >> Makefile.srcs +diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip +--- FreeImage/Makefile.fip 2015-03-08 18:03:56.000000000 +0100 ++++ FreeImage-new/Makefile.fip 2015-09-05 02:14:09.212684028 +0200 +@@ -17,20 +17,22 @@ MODULES = $(SRCS:.c=.o) + MODULES := $(MODULES:.cpp=.o) + CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden + # OpenJPEG +-CFLAGS += -DOPJ_STATIC ++override CFLAGS += -DOPJ_STATIC + # LibRaw +-CFLAGS += -DNO_LCMS ++override CFLAGS += -DNO_LCMS + # LibJXR +-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ +-CFLAGS += $(INCLUDE) ++override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ ++override CFLAGS += $(INCLUDE) + CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy + # LibJXR +-CXXFLAGS += -D__ANSI__ +-CXXFLAGS += $(INCLUDE) ++override CXXFLAGS += -D__ANSI__ ++override CXXFLAGS += $(INCLUDE) ++LDFLAGS ?= ++override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR) + + ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) +- CFLAGS += -fPIC +- CXXFLAGS += -fPIC ++ override CFLAGS += -fPIC ++ override CXXFLAGS += -fPIC + endif + + TARGET = freeimageplus +@@ -68,7 +70,7 @@ $(STATICLIB): $(MODULES) + $(AR) r $@ $(MODULES) + + $(SHAREDLIB): $(MODULES) +- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) ++ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) + + install: + install -d $(INCDIR) $(INSTALLDIR) +diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu +--- FreeImage/Makefile.gnu 2015-03-08 18:04:00.000000000 +0100 ++++ FreeImage-new/Makefile.gnu 2015-09-05 02:14:04.810599259 +0200 +@@ -16,21 +16,11 @@ LIBRARIES = -lstdc++ + MODULES = $(SRCS:.c=.o) + MODULES := $(MODULES:.cpp=.o) + CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden +-# OpenJPEG +-CFLAGS += -DOPJ_STATIC +-# LibRaw +-CFLAGS += -DNO_LCMS +-# LibJXR +-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ +-CFLAGS += $(INCLUDE) +-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy +-# LibJXR +-CXXFLAGS += -D__ANSI__ +-CXXFLAGS += $(INCLUDE) ++override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib) ++override LDFLAGS += -ljpeg -ljpegxr $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib) + + ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) +- CFLAGS += -fPIC +- CXXFLAGS += -fPIC ++ override CFLAGS += -fPIC + endif + + TARGET = freeimage +@@ -61,13 +51,13 @@ FreeImage: $(STATICLIB) $(SHAREDLIB) + $(CC) $(CFLAGS) -c $< -o $@ + + .cpp.o: +- $(CXX) $(CXXFLAGS) -c $< -o $@ ++ $(CXX) $(CFLAGS) -c $< -o $@ + + $(STATICLIB): $(MODULES) + $(AR) r $@ $(MODULES) + + $(SHAREDLIB): $(MODULES) +- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) ++ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) + + install: + install -d $(INCDIR) $(INSTALLDIR) +diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp +--- FreeImage/Source/FreeImage/J2KHelper.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2015-09-05 02:13:52.042353324 +0200 +@@ -21,7 +21,7 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibOpenJPEG/openjpeg.h" ++#include + #include "J2KHelper.h" + + // -------------------------------------------------------------------------- +diff -rupN FreeImage/Source/FreeImage/Plugin.cpp FreeImage-new/Source/FreeImage/Plugin.cpp +--- FreeImage/Source/FreeImage/Plugin.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/Plugin.cpp 2015-09-05 02:13:52.042353324 +0200 +@@ -263,7 +263,12 @@ FreeImage_Initialise(BOOL load_local_plu + s_plugins->AddNode(InitDDS); + s_plugins->AddNode(InitGIF); + s_plugins->AddNode(InitHDR); +- s_plugins->AddNode(InitG3); ++/* The G3 fax format plugin is deliberately disabled in the Fedora build of ++ FreeImage as it requires that FreeImage uses a private copy of libtiff ++ which is a no no because of security reasons. */ ++#if 0 ++ s_plugins->AddNode(InitG3); ++#endif + s_plugins->AddNode(InitSGI); + s_plugins->AddNode(InitEXR); + s_plugins->AddNode(InitJ2K); +diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp +--- FreeImage/Source/FreeImage/PluginEXR.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2015-09-05 02:13:52.042353324 +0200 +@@ -28,16 +28,16 @@ + #pragma warning (disable : 4800) // ImfVersion.h - 'const int' : forcing value to bool 'true' or 'false' (performance warning) + #endif + +-#include "../OpenEXR/IlmImf/ImfIO.h" +-#include "../OpenEXR/Iex/Iex.h" +-#include "../OpenEXR/IlmImf/ImfOutputFile.h" +-#include "../OpenEXR/IlmImf/ImfInputFile.h" +-#include "../OpenEXR/IlmImf/ImfRgbaFile.h" +-#include "../OpenEXR/IlmImf/ImfChannelList.h" +-#include "../OpenEXR/IlmImf/ImfRgba.h" +-#include "../OpenEXR/IlmImf/ImfArray.h" +-#include "../OpenEXR/IlmImf/ImfPreviewImage.h" +-#include "../OpenEXR/Half/half.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + + // ========================================================== +diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp +--- FreeImage/Source/FreeImage/PluginJ2K.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2015-09-05 02:13:52.043353343 +0200 +@@ -21,7 +21,7 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibOpenJPEG/openjpeg.h" ++#include + #include "J2KHelper.h" + + // ========================================================== +diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp +--- FreeImage/Source/FreeImage/PluginJP2.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2015-09-05 02:13:52.043353343 +0200 +@@ -21,7 +21,7 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibOpenJPEG/openjpeg.h" ++#include + #include "J2KHelper.h" + + // ========================================================== +diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp +--- FreeImage/Source/FreeImage/PluginJPEG.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2015-09-05 02:13:52.043353343 +0200 +@@ -35,9 +35,9 @@ extern "C" { + #undef FAR + #include + +-#include "../LibJPEG/jinclude.h" +-#include "../LibJPEG/jpeglib.h" +-#include "../LibJPEG/jerror.h" ++#include ++#include ++#include + } + + #include "FreeImage.h" +diff -rupN FreeImage/Source/FreeImage/PluginJXR.cpp FreeImage-new/Source/FreeImage/PluginJXR.cpp +--- FreeImage/Source/FreeImage/PluginJXR.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginJXR.cpp 2015-09-05 02:13:52.043353343 +0200 +@@ -23,7 +23,7 @@ + #include "Utilities.h" + #include "../Metadata/FreeImageTag.h" + +-#include "../LibJXR/jxrgluelib/JXRGlue.h" ++#include + + // ========================================================== + // Plugin Interface +diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp +--- FreeImage/Source/FreeImage/PluginPNG.cpp 2015-03-10 20:16:12.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2015-09-05 02:13:52.044353363 +0200 +@@ -40,8 +40,8 @@ + + // ---------------------------------------------------------- + +-#include "../ZLib/zlib.h" +-#include "../LibPNG/png.h" ++#include ++#include + + // ---------------------------------------------------------- + +diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp +--- FreeImage/Source/FreeImage/PluginRAW.cpp 2015-03-08 20:12:04.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2015-09-05 02:13:52.044353363 +0200 +@@ -19,7 +19,7 @@ + // Use at your own risk! + // ========================================================== + +-#include "../LibRawLite/libraw/libraw.h" ++#include + + #include "FreeImage.h" + #include "Utilities.h" +diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp +--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2015-09-05 02:13:52.044353363 +0200 +@@ -37,9 +37,9 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibTIFF4/tiffiop.h" ++#include + #include "../Metadata/FreeImageTag.h" +-#include "../OpenEXR/Half/half.h" ++#include + + #include "FreeImageIO.h" + #include "PSDParser.h" +@@ -194,16 +194,6 @@ TIFFFdOpen(thandle_t handle, const char + return tif; + } + +-/** +-Open a TIFF file for reading or writing +-@param name +-@param mode +-*/ +-TIFF* +-TIFFOpen(const char* name, const char* mode) { +- return 0; +-} +- + // ---------------------------------------------------------- + // TIFF library FreeImage-specific routines. + // ---------------------------------------------------------- +diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp +--- FreeImage/Source/FreeImage/PluginWebP.cpp 2015-03-02 02:07:08.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2015-09-05 02:13:52.044353363 +0200 +@@ -24,10 +24,10 @@ + + #include "../Metadata/FreeImageTag.h" + +-#include "../LibWebP/src/webp/decode.h" +-#include "../LibWebP/src/webp/encode.h" +-#include "../LibWebP/src/enc/vp8enci.h" +-#include "../LibWebP/src/webp/mux.h" ++#include ++#include ++// #include "../LibWebP/src/enc/vp8enci.h" ++#include + + // ========================================================== + // Plugin Interface +diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp +--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2015-03-02 02:07:10.000000000 +0100 ++++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2015-09-05 02:13:52.044353363 +0200 +@@ -19,10 +19,9 @@ + // Use at your own risk! + // ========================================================== + +-#include "../ZLib/zlib.h" ++#include + #include "FreeImage.h" + #include "Utilities.h" +-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */ + + /** + Compresses a source buffer into a target buffer, using the ZLib library. +@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t + return 0; + case Z_OK: { + // patch header, setup crc and length (stolen from mod_trace_output) +- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code ++ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix) + crc = crc32(crc, source, source_size); + memcpy(target + 4 + dest_len, &crc, 4); + memcpy(target + 8 + dest_len, &source_size, 4); +diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h +--- FreeImage/Source/FreeImage.h 2015-03-04 02:17:54.000000000 +0100 ++++ FreeImage-new/Source/FreeImage.h 2015-09-05 02:13:52.045353382 +0200 +@@ -155,8 +155,11 @@ typedef uint8_t BYTE; + typedef uint16_t WORD; + typedef uint32_t DWORD; + typedef int32_t LONG; ++// Disable these, they conflict with the (wrong) ones of libraw ++#if 0 + typedef int64_t INT64; + typedef uint64_t UINT64; ++#endif + #else + // MS is not C99 ISO compliant + typedef long BOOL; +@@ -410,7 +413,12 @@ FI_ENUM(FREE_IMAGE_FORMAT) { + FIF_DDS = 24, + FIF_GIF = 25, + FIF_HDR = 26, +- FIF_FAXG3 = 27, ++/* The G3 fax format plugin is deliberately disabled in the Fedora build of ++ FreeImage as it requires that FreeImage uses a private copy of libtiff ++ which is a no no because of security reasons. */ ++#if 0 ++ FIF_FAXG3 = 27, ++#endif + FIF_SGI = 28, + FIF_EXR = 29, + FIF_J2K = 30, +@@ -473,6 +481,10 @@ FI_ENUM(FREE_IMAGE_DITHER) { + FID_BAYER16x16 = 6 //! Bayer ordered dispersed dot dithering (order 4 dithering matrix) + }; + ++/* The FreeImage_JPEGTransform functions are deliberately disabled in the ++ Fedora build of FreeImage as they require that FreeImage uses a private copy ++ of libjpeg which is a no no because of security reasons. */ ++#if 0 + /** Lossless JPEG transformations + Constants used in FreeImage_JPEGTransform + */ +@@ -486,6 +498,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) { + FIJPEG_OP_ROTATE_180 = 6, //! 180-degree rotation + FIJPEG_OP_ROTATE_270 = 7 //! 270-degree clockwise (or 90 ccw) + }; ++#endif + + /** Tone mapping operators. + Constants used in FreeImage_ToneMapping. +@@ -1076,7 +1089,10 @@ DLL_API const char* DLL_CALLCONV FreeIma + // -------------------------------------------------------------------------- + // JPEG lossless transformation routines + // -------------------------------------------------------------------------- +- ++/* The FreeImage_JPEGTransform functions are deliberately disabled in the +++ Fedora build of FreeImage as they require that FreeImage uses a private copy +++ of libjpeg which is a no no because of security reasons. */ ++#if 0 + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom); +@@ -1085,6 +1101,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_JPEG + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); ++#endif + + + // -------------------------------------------------------------------------- +diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp +--- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2015-03-02 02:07:10.000000000 +0100 ++++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2015-09-05 02:13:52.045353382 +0200 +@@ -26,10 +26,10 @@ extern "C" { + #undef FAR + #include + +-#include "../LibJPEG/jinclude.h" +-#include "../LibJPEG/jpeglib.h" +-#include "../LibJPEG/jerror.h" +-#include "../LibJPEG/transupp.h" ++#include ++#include ++#include ++#include + } + + #include "FreeImage.h" +diff -rupN FreeImage/Source/Metadata/TagConversion.cpp FreeImage-new/Source/Metadata/TagConversion.cpp +--- FreeImage/Source/Metadata/TagConversion.cpp 2015-03-02 02:07:10.000000000 +0100 ++++ FreeImage-new/Source/Metadata/TagConversion.cpp 2015-09-05 02:13:52.045353382 +0200 +@@ -30,6 +30,11 @@ + + #define MAX_TEXT_EXTENT 512 + ++// These were in FreeImage.h, but are moved here to avoid conflicts (see note in FreeImage.h) ++typedef int64_t INT64; ++typedef uint64_t UINT64; ++ ++ + /** + Convert a tag to a C string + */ +diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp +--- FreeImage/Source/Metadata/XTIFF.cpp 2015-03-02 02:07:10.000000000 +0100 ++++ FreeImage-new/Source/Metadata/XTIFF.cpp 2015-09-05 02:13:52.045353382 +0200 +@@ -29,13 +29,18 @@ + #pragma warning (disable : 4786) // identifier was truncated to 'number' characters + #endif + +-#include "../LibTIFF4/tiffiop.h" ++#include + + #include "FreeImage.h" + #include "Utilities.h" + #include "FreeImageTag.h" + #include "FIRational.h" + ++extern "C" ++{ ++ int _TIFFDataSize(TIFFDataType type); ++} ++ + // ---------------------------------------------------------- + // Extended TIFF Directory GEO Tag Support + // ---------------------------------------------------------- +@@ -224,6 +229,33 @@ tiff_write_geotiff_profile(TIFF *tif, FI + // TIFF EXIF tag reading & writing + // ---------------------------------------------------------- + ++static uint32 exif_tag_ids[] = { ++ EXIFTAG_EXPOSURETIME, EXIFTAG_FNUMBER, EXIFTAG_EXPOSUREPROGRAM, ++ EXIFTAG_SPECTRALSENSITIVITY, EXIFTAG_ISOSPEEDRATINGS, EXIFTAG_OECF, ++ EXIFTAG_EXIFVERSION, EXIFTAG_DATETIMEORIGINAL, EXIFTAG_DATETIMEDIGITIZED, ++ EXIFTAG_COMPONENTSCONFIGURATION, EXIFTAG_COMPRESSEDBITSPERPIXEL, ++ EXIFTAG_SHUTTERSPEEDVALUE, EXIFTAG_APERTUREVALUE, ++ EXIFTAG_BRIGHTNESSVALUE, EXIFTAG_EXPOSUREBIASVALUE, ++ EXIFTAG_MAXAPERTUREVALUE, EXIFTAG_SUBJECTDISTANCE, EXIFTAG_METERINGMODE, ++ EXIFTAG_LIGHTSOURCE, EXIFTAG_FLASH, EXIFTAG_FOCALLENGTH, ++ EXIFTAG_SUBJECTAREA, EXIFTAG_MAKERNOTE, EXIFTAG_USERCOMMENT, ++ EXIFTAG_SUBSECTIME, EXIFTAG_SUBSECTIMEORIGINAL, ++ EXIFTAG_SUBSECTIMEDIGITIZED, EXIFTAG_FLASHPIXVERSION, EXIFTAG_COLORSPACE, ++ EXIFTAG_PIXELXDIMENSION, EXIFTAG_PIXELYDIMENSION, ++ EXIFTAG_RELATEDSOUNDFILE, EXIFTAG_FLASHENERGY, ++ EXIFTAG_SPATIALFREQUENCYRESPONSE, EXIFTAG_FOCALPLANEXRESOLUTION, ++ EXIFTAG_FOCALPLANEYRESOLUTION, EXIFTAG_FOCALPLANERESOLUTIONUNIT, ++ EXIFTAG_SUBJECTLOCATION, EXIFTAG_EXPOSUREINDEX, EXIFTAG_SENSINGMETHOD, ++ EXIFTAG_FILESOURCE, EXIFTAG_SCENETYPE, EXIFTAG_CFAPATTERN, ++ EXIFTAG_CUSTOMRENDERED, EXIFTAG_EXPOSUREMODE, EXIFTAG_WHITEBALANCE, ++ EXIFTAG_DIGITALZOOMRATIO, EXIFTAG_FOCALLENGTHIN35MMFILM, ++ EXIFTAG_SCENECAPTURETYPE, EXIFTAG_GAINCONTROL, EXIFTAG_CONTRAST, ++ EXIFTAG_SATURATION, EXIFTAG_SHARPNESS, EXIFTAG_DEVICESETTINGDESCRIPTION, ++ EXIFTAG_SUBJECTDISTANCERANGE, EXIFTAG_GAINCONTROL, EXIFTAG_GAINCONTROL, ++ EXIFTAG_IMAGEUNIQUEID ++}; ++static int nExifTags = sizeof(exif_tag_ids) / sizeof(exif_tag_ids[0]); ++ + /** + Read a single Exif tag + +@@ -575,45 +607,11 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M + + // loop over all Core Directory Tags + // ### uses private data, but there is no other way ++ // -> Fedora: Best we can do without private headers is to hard-code a list of known EXIF tags and read those + if(md_model == TagLib::EXIF_MAIN) { +- const TIFFDirectory *td = &tif->tif_dir; +- +- uint32 lastTag = 0; //<- used to prevent reading some tags twice (as stored in tif_fieldinfo) +- +- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) { +- const TIFFField *fld = tif->tif_fields[fi]; +- +- const uint32 tag_id = TIFFFieldTag(fld); +- +- if(tag_id == lastTag) { +- continue; +- } +- +- // test if tag value is set +- // (lifted directly from LibTiff _TIFFWriteDirectory) +- +- if( fld->field_bit == FIELD_CUSTOM ) { +- int is_set = FALSE; +- +- for(int ci = 0; ci < td->td_customValueCount; ci++ ) { +- is_set |= (td->td_customValues[ci].info == fld); +- } +- +- if( !is_set ) { +- continue; +- } +- +- } else if(!TIFFFieldSet(tif, fld->field_bit)) { +- continue; +- } +- +- // process *all* other tags (some will be ignored) +- +- tiff_read_exif_tag(tif, tag_id, dib, md_model); +- +- lastTag = tag_id; ++ for (int i = 0; i < nExifTags; ++i) { ++ tiff_read_exif_tag(tif, exif_tag_ids[i], dib, md_model); + } +- + } + + return TRUE; +@@ -723,10 +721,9 @@ tiff_write_exif_tags(TIFF *tif, TagLib:: + + TagLib& tag_lib = TagLib::instance(); + +- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) { +- const TIFFField *fld = tif->tif_fields[fi]; +- +- const uint32 tag_id = TIFFFieldTag(fld); ++ for (int fi = 0; fi < nExifTags; fi++) { ++ const uint32 tag_id = exif_tag_ids[fi]; ++ const TIFFField *fld = TIFFFieldWithTag(tif, tag_id); + + if(skip_write_field(tif, tag_id)) { + // skip tags that are already handled by the LibTIFF writing process diff --git a/mingw-w64-FreeImage/PKGBUILD b/mingw-w64-FreeImage/PKGBUILD index e1e903a7bd..811d4ecc5b 100644 --- a/mingw-w64-FreeImage/PKGBUILD +++ b/mingw-w64-FreeImage/PKGBUILD @@ -1,64 +1,58 @@ # Maintainer: Alexey Pavlov _realname=FreeImage +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.16.0 -pkgrel=7 +pkgver=3.17.0 +pkgrel=1 pkgdesc="Library project for developers who would like to support popular graphics image formats (mingw-w64)." arch=('any') license=('GPL' 'custom:FIPL') url="http://freeimage.sourceforge.net/" depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libtiff" - "${MINGW_PACKAGE_PREFIX}-LibRaw" - "${MINGW_PACKAGE_PREFIX}-openjpeg2" - "${MINGW_PACKAGE_PREFIX}-openexr" - "${MINGW_PACKAGE_PREFIX}-libwebp") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") + "${MINGW_PACKAGE_PREFIX}-jxrlib" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libtiff" + "${MINGW_PACKAGE_PREFIX}-LibRaw" + "${MINGW_PACKAGE_PREFIX}-libwebp" + "${MINGW_PACKAGE_PREFIX}-openjpeg2" + "${MINGW_PACKAGE_PREFIX}-openexr") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-iconv" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "dos2unix" "make") options=('strip' 'staticlibs' '!buildflags') source=("http://downloads.sourceforge.net/sourceforge/freeimage/FreeImage${pkgver//./}.zip" - 'FreeImage-3.16.0_mingw-makefiles.patch' - 'FreeImage-3.16.0_unbundle.patch' - 'FreeImage-3.16.0_disable-some-plugins.patch') -md5sums=('1a2d1fff6204adbd479cc98818892fc1' - '20a0a9f7257df79bbcbdec62ed2446d9' - '824115841c4a5be8aa98a7b31ce07d79' - 'ffd4a31d2d1c2cf19af3a1e6232f8fd6') + 'FreeImage-3.17.0_mingw-makefiles.patch' + 'FreeImage-3.17.0_unbundle.patch' + 'FreeImage-3.17.0_CVE-2015-0852.patch') +md5sums=('459e15f0ec75d6efa3c7bd63277ead86' + '6510a7f7c715acf7bd182cd888d4787d' + 'b81acf43a202d03573932e1f98d63a60' + 'b21385e2da5dcdf4aa4e98d11150115d') prepare() { cd ${srcdir}/FreeImage - # Convert to utf-8 - #iconv -f ISO-8859-15 -t UTF-8 Whatsnew.txt - #iconv -f WINDOWS-1252 -t UTF-8 license-gplv3.txt - #iconv -f ISO-8859-15 -t UTF-8 -o Whatsnew.txt.new Whatsnew.txt && \ - # touch -r Whatsnew.txt Whatsnew.txt.new && \ - # mv Whatsnew.txt.new Whatsnew.txt + patch -p1 -i ${srcdir}/FreeImage-3.17.0_unbundle.patch + patch -p1 -i ${srcdir}/FreeImage-3.17.0_mingw-makefiles.patch + patch -p1 -i ${srcdir}/FreeImage-3.17.0_CVE-2015-0852.patch - #iconv -f WINDOWS-1252 -t UTF-8 -o license-gplv3.txt.new license-gplv3.txt && \ - # touch -r license-gplv3.txt license-gplv3.txt.new && \ - # mv license-gplv3.txt.new license-gplv3.txt - - patch -p1 -i ${srcdir}/FreeImage-3.16.0_mingw-makefiles.patch - patch -p1 -i ${srcdir}/FreeImage-3.16.0_unbundle.patch - patch -p1 -i ${srcdir}/FreeImage-3.16.0_disable-some-plugins.patch - - # Remove bundled libraries - rm -rf Source/OpenEXR - rm -rf Source/LibMNG - rm -rf Source/LibOpenJPEG - rm -rf Source/LibPNG - rm -rf Source/LibRawLite - rm -rf Source/LibTIFF - rm -rf Source/LibJPEG - rm -rf Source/LibTIFF4 - rm -rf Source/ZLib - rm -rf Source/LibWebP - - # Mingw-w64 has its own header - rm -rf Source/LibJXR/common/include/guiddef.h + # remove all included libs to make sure these don't get used during compile + rm -r Source/Lib* Source/ZLib Source/OpenEXR + + # clear files which cannot be built due to dependencies on private headers + # (see also unbundle patch) + > Source/FreeImage/PluginG3.cpp + > Source/FreeImageToolkit/JPEGTransform.cpp + + # sanitize encodings / line endings + for file in `find . -type f -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.txt' -or -name Makefile`; do + ${MINGW_PREFIX}/bin/iconv -f ISO-8859-15 -t UTF-8 ${file} > ${file}.new && \ + sed -i 's|\r||g' ${file}.new && \ + touch -r ${file} ${file}.new && mv ${file}.new ${file} + done #cp -f ${srcdir}/Makefile.mingw-w64 ${srcdir}/FreeImage/Makefile.mingw-w64 @@ -70,32 +64,17 @@ prepare() { build() { cd ${srcdir}/FreeImage - mkdir -p ${srcdir}/build-{shared,static}-${CARCH} - lndir ${srcdir}/FreeImage ${srcdir}/build-shared-${CARCH} - lndir ${srcdir}/FreeImage ${srcdir}/build-static-${CARCH} + mkdir -p ${srcdir}/build-${CARCH} + lndir ${srcdir}/FreeImage ${srcdir}/build-${CARCH} plain "Build shared version..." - cd ${srcdir}/build-shared-${CARCH} + cd ${srcdir}/build-${CARCH} make \ MINGW_TARGET=${MINGW_CHOST} \ - FREEIMAGE_LIBRARY_TYPE="SHARED" \ - -f Makefile.mingw + -f Makefile.gnu make \ MINGW_TARGET=${MINGW_CHOST} \ - FREEIMAGE_LIBRARY_TYPE="SHARED" \ - -f Makefile.fip - - plain "Build static version..." - cd ${srcdir}/build-static-${CARCH} - make \ - MINGW_TARGET=${MINGW_CHOST} \ - FREEIMAGE_LIBRARY_TYPE="STATIC" \ - -f Makefile.mingw - - make \ - MINGW_TARGET=${MINGW_CHOST} \ - FREEIMAGE_LIBRARY_TYPE="STATIC" \ -f Makefile.fip } @@ -105,7 +84,7 @@ package() { install -d "${pkgdir}${MINGW_PREFIX}"/include install -d "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage - cd ${srcdir}/build-shared-${CARCH} + cd ${srcdir}/build-${CARCH} install -m755 Dist/libfreeimage-*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ install -m644 Dist/libfreeimage.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/ install -m755 Dist/libfreeimageplus-*.dll "${pkgdir}${MINGW_PREFIX}"/bin/ @@ -118,7 +97,6 @@ package() { install -m644 license-gplv2.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/ install -m644 license-gplv3.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/ - cd ${srcdir}/build-static-${CARCH} install -m644 Dist/libfreeimage.a "${pkgdir}${MINGW_PREFIX}"/lib/ install -m644 Dist/libfreeimageplus.a "${pkgdir}${MINGW_PREFIX}"/lib/ } diff --git a/mingw-w64-cego/PKGBUILD b/mingw-w64-cego/PKGBUILD new file mode 100644 index 0000000000..e994d13b63 --- /dev/null +++ b/mingw-w64-cego/PKGBUILD @@ -0,0 +1,48 @@ +# Maintainer: Bjoern Lemke + +_realname=cego +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=2.28.0 +pkgrel=1 +pkgdesc="Cego database system (mingw-w64)" +arch=('any') +url='http://www.lemke-it.com/' +license=('GPL3') +validpgpkeys=('gpg_KEY') +source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") + +depends=("${MINGW_PACKAGE_PREFIX}-lfcbase") +depends=("${MINGW_PACKAGE_PREFIX}-lfcxml") + +sha256sums=("66b1a5259a518f3ed95ccbedf08380f02314ca3e12fab1b9feb36bd52a3d6f58") + +prepare() { + cd $srcdir/${_realname}-${pkgver} +} + +build() { + cd "$srcdir"/${_realname}-${pkgver} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared + + make +} + +check() { + cd "${srcdir}"/build-${CARCH} + make check +} + +package() { + cd "${srcdir}"/build-${CARCH} + make install DESTDIR="${pkgdir}" +} + diff --git a/mingw-w64-codelite-git/PKGBUILD b/mingw-w64-codelite-git/PKGBUILD index f862ee870e..a18fde396e 100644 --- a/mingw-w64-codelite-git/PKGBUILD +++ b/mingw-w64-codelite-git/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=9.0.305.ge7e7ce9 +pkgver=9.0.313.gc621cd8 pkgrel=1 pkgdesc="Open-source, cross platform IDE for the C/C++ programming languages (mingw-w64)" arch=('any') @@ -29,14 +29,18 @@ source=("${_realname}::git+https://github.com/eranif/codelite.git" use-gnu-extensions.patch windows-headers-conflict.patch fix-sqlite3-find-and-build.patch - clStandardPaths-missing-member.patch) + clStandardPaths-missing-member.patch + mingw-posix-layout-fix.patch + proper-libraries-names-mingw.patch) md5sums=('SKIP' '926c4848932586577192bd950ffc604b' 'b18e62316a10dac7c274e2faccd86180' 'f7ce106c3565835c019fbcda0f9bea56' '1ae47bc9b913d425f98533c237b45ceb' - '2eacbaa07493512a66f8f2e434433a9f' - '84bc65336879f9ca6d3dd9eed21b8215') + 'e6ad6fec1b50070f68ea65bab4ec93a2' + '84bc65336879f9ca6d3dd9eed21b8215' + '47ab3dc498add139293f136c96925efa' + 'a53dd1fdbd27970d6ce1a51ffad2eb35') pkgver() { cd "${_realname}" @@ -51,9 +55,11 @@ prepare() { patch -p1 -i ${srcdir}/windows-headers-conflict.patch patch -p1 -i ${srcdir}/fix-sqlite3-find-and-build.patch patch -p1 -i ${srcdir}/clStandardPaths-missing-member.patch + patch -p1 -i ${srcdir}/mingw-posix-layout-fix.patch + patch -p1 -i ${srcdir}/proper-libraries-names-mingw.patch } -build() { +package() { local -a extra_config if check_option "debug" "y"; then @@ -62,8 +68,9 @@ build() { extra_config+=( -DCMAKE_BUILD_TYPE=Release ) fi - cd ${srcdir}/${_realname} - #MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;-DPREFIX=" + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + #cd ${srcdir}/${_realname} ${MINGW_PREFIX}/bin/cmake \ -Wno-dev \ -G"MSYS Makefiles" \ @@ -73,13 +80,9 @@ build() { -DwxWidgets_CONFIG_EXECUTABLE=${MINGW_PREFIX}/bin/wx-config \ -DwxWidgets_wxrc_EXECUTABLE=${MINGW_PREFIX}/bin/wxrc-3.0 \ "${extra_config[@]}" \ - . + ../${_realname} make # -j1 VERBOSE=1 -} - -package() { - cd "${srcdir}/${_realname}" make install rm -f ${pkgdir}${MINGW_PREFIX}/lib/codelite/*.a diff --git a/mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch b/mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch index 9f30f9877a..8cc7cf418e 100644 --- a/mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch +++ b/mingw-w64-codelite-git/fix-sqlite3-find-and-build.patch @@ -24,37 +24,104 @@ add_dependencies(wxshapeframework wxsqlite3) --- codelite/cmake/Modules/FindSqlite3.cmake.orig 2015-12-24 15:02:52.639852500 +0300 +++ codelite/cmake/Modules/FindSqlite3.cmake 2015-12-24 15:07:28.933929700 +0300 -@@ -1,18 +1,21 @@ +@@ -1,27 +1,76 @@ -if(UNIX AND NOT APPLE) ++# Try to find Sqlite3 ++# Once done this will define ++# ++# SQLITE3_FOUND - system has Sqlite3 ++# SQLITE3_INCLUDE_DIRS - the Sqlite3 include directory ++# SQLITE3_LIBRARIES - Link these to use Sqlite3 ++# SQLITE3_DEFINITIONS - Compiler switches required for using Sqlite3 ++# ++ +if(NOT APPLE) ++ if (SQLITE3_LIBRARIES AND SQLITE3_INCLUDE_DIRS) ++ # in cache already ++ set(SQLITE3_FOUND TRUE) ++ else() ++ # use pkg-config to get the directories and then use these values ++ # in the FIND_PATH() and FIND_LIBRARY() calls ++ find_package(PkgConfig) ++ if(PKG_CONFIG_FOUND) ++ pkg_check_modules(_SQLITE3 sqlite3) ++ endif() ++ find_path(SQLITE3_INCLUDE_DIR ++ NAMES ++ sqlite3.h ++ HINTS ++ ${_SQLITE3_INCLUDE_DIRS} ++ $ENV{SQLITE3DIR}/include ++ /usr/include ++ /usr/include/sqlite3 ++ /usr/local/include ++ /opt/local/include ++ ) ++ find_library(SQLITE3_LIBRARY - NAMES libsqlite3.so -+ NAMES libsqlite3.so sqlite3 - HINTS +- HINTS - /usr/local/lib - /usr/lib - /usr/lib/x86_64-linux-gnu - /usr/lib/i386-linux-gnu -+ ENV SQLITE3DIR -+ PATH_SUFFIXES lib lib/x86_64-linux-gnu lib/i386-linux-gnu -+ PATHS -+ /usr/local -+ /usr - ) - - find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h - HINTS +- ) +- +- find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h +- HINTS - /usr/local/include - /usr/include - /usr/include/sqlite3 -+ ENV SQLITE3DIR -+ PATH_SUFFIXES include/sqlite3 include -+ PATHS -+ /usr/local -+ /usr - ) - if (SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARY) +- ) +- if (SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARY) ++ NAMES ++ sqlite3 ++ HINTS ++ ${_SQLITE3_LIBRARY_DIRS} ++ $ENV{SQLITE3DIR}/lib ++ /usr/lib ++ /usr/lib/x86_64-linux-gnu ++ /usr/lib/i386-linux-gnu ++ /usr/local/lib ++ /opt/local/lib ++ ) ++ ++ if(SQLITE3_LIBRARY) ++ set(SQLITE3_FOUND TRUE) ++ endif() ++ ++ set(SQLITE3_INCLUDE_DIRS ++ ${SQLITE3_INCLUDE_DIR} ++ ) ++ ++ if(SQLITE3_FOUND) ++ set(SQLITE3_LIBRARIES ++ ${SQLITE3_LIBRARIES} ++ ${SQLITE3_LIBRARY} ++ ) ++ endif() ++ ++ if(SQLITE3_INCLUDE_DIRS AND SQLITE3_LIBRARIES) set(SQLITE3_FOUND TRUE) + endif() +- +- if(NOT SQLITE3_FOUND) +- message(FATAL_ERROR " **** Could not find Sqlite3. Please install libsqlite3-dev package **** ") ++ ++ if(SQLITE3_FOUND) ++ message("-- SQLITE3_INCLUDE_DIR: " ${SQLITE3_INCLUDE_DIR}) ++ message("-- SQLITE3_LIBRARY: " ${SQLITE3_LIBRARY}) + else() +- message("-- SQLITE3_INCLUDE_DIR: " ${SQLITE3_INCLUDE_DIR}) +- message("-- SQLITE3_LIBRARY: " ${SQLITE3_LIBRARY}) ++ message(-- "Could not find system Sqlite3. Using bundled sqlite3") + endif() ++ ++ # show the SQLITE3_INCLUDE_DIRS and SQLITE3_LIBRARIES variables only in the advanced view ++ mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES) ++ ++ endif () + endif() --- codelite/sdk/databaselayer/CMakeLists.txt.orig 2015-12-24 15:15:22.810929700 +0300 +++ codelite/sdk/databaselayer/CMakeLists.txt 2015-12-24 15:16:23.103929700 +0300 @@ -12,7 +12,7 @@ diff --git a/mingw-w64-codelite-git/mingw-posix-layout-fix.patch b/mingw-w64-codelite-git/mingw-posix-layout-fix.patch new file mode 100644 index 0000000000..759880e2ca --- /dev/null +++ b/mingw-w64-codelite-git/mingw-posix-layout-fix.patch @@ -0,0 +1,282 @@ +diff -Naur codelite-orig/CodeLite/cl_defs.h codelite/CodeLite/cl_defs.h +--- codelite-orig/CodeLite/cl_defs.h 2015-12-28 09:14:07.384041000 +0300 ++++ codelite/CodeLite/cl_defs.h 2015-12-28 10:17:06.738122000 +0300 +@@ -48,13 +48,13 @@ + #else + #ifdef USE_POSIX_LAYOUT + #ifndef PLUGINS_DIR +-#define PLUGINS_DIR "/lib/codelite" ++#define PLUGINS_DIR "\\lib\\codelite" + #endif + #ifndef INSTALL_DIR +-#define INSTALL_DIR "/share/codelite" ++#define INSTALL_DIR "\\share\\codelite" + #endif + #ifndef CFGDIR +-#define CFGDIR "/share/codelite/config/cfg" ++#define CFGDIR "\\share\\codelite\\config\\cfg" + #endif + #endif + // MSW / OSX and the rest of the world +diff -Naur codelite-orig/CodeLite/cl_standard_paths.cpp codelite/CodeLite/cl_standard_paths.cpp +--- codelite-orig/CodeLite/cl_standard_paths.cpp 2015-12-28 09:14:23.533041000 +0300 ++++ codelite/CodeLite/cl_standard_paths.cpp 2015-12-28 10:50:22.132984200 +0300 +@@ -74,7 +74,7 @@ + wxString pluginsDir = PLUGINS_DIR; + #else + #ifdef USE_POSIX_LAYOUT +- wxFileName path(GetDataDir() + wxT(PLUGINS_DIR), ""); ++ wxFileName path(GetInstallDir() + wxT(PLUGINS_DIR), ""); + #else + wxFileName path(GetDataDir(), ""); + path.AppendDir("plugins"); +@@ -84,7 +84,15 @@ + return pluginsDir; + } + +-wxString clStandardPaths::GetDataDir() const { return wxStandardPaths::Get().GetDataDir(); } ++wxString clStandardPaths::GetDataDir() const ++{ ++#ifdef USE_POSIX_LAYOUT ++ wxFileName path(wxStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR), ""); ++ return path.GetPath(); ++#else ++ return wxStandardPaths::Get().GetDataDir(); ++#endif ++} + + wxString clStandardPaths::GetBinFolder() const + { +@@ -104,22 +112,14 @@ + + wxString clStandardPaths::GetLexersDir() const + { +-#ifdef USE_POSIX_LAYOUT +- wxFileName fn(GetDataDir() + wxT(INSTALL_DIR), ""); +-#else + wxFileName fn(GetDataDir(), ""); +-#endif + fn.AppendDir("lexers"); + return fn.GetPath(); + } + + wxString clStandardPaths::GetProjectTemplatesDir() const + { +-#ifdef USE_POSIX_LAYOUT +- wxFileName fn(GetDataDir() + wxT(INSTALL_DIR), ""); +-#else + wxFileName fn(GetDataDir(), ""); +-#endif + fn.AppendDir("templates"); + fn.AppendDir("projects"); + return fn.GetPath(); +@@ -134,11 +134,7 @@ + + wxString clStandardPaths::GetUserProjectTemplatesDir() const + { +-#ifdef USE_POSIX_LAYOUT +- wxFileName fn(GetUserDataDir() + wxT(INSTALL_DIR), ""); +-#else + wxFileName fn(GetUserDataDir(), ""); +-#endif + fn.AppendDir("templates"); + fn.AppendDir("projects"); + return fn.GetPath(); +@@ -163,6 +159,20 @@ + return path; + } + ++wxString clStandardPaths::GetInstallDir() const ++{ ++#ifdef __WXGTK__ ++ return GetBinFolder(); ++#else ++#ifdef USE_POSIX_LAYOUT ++ wxFileName path(wxStandardPaths::Get().GetDataDir(), ""); ++ return path.GetPath(); ++#else ++ return GetBinFolder(); ++#endif ++#endif ++} ++ + void clStandardPaths::IgnoreAppSubDir(const wxString & subdirPattern) + { + #ifdef USE_POSIX_LAYOUT +diff -Naur codelite-orig/CodeLite/cl_standard_paths.h codelite/CodeLite/cl_standard_paths.h +--- codelite-orig/CodeLite/cl_standard_paths.h 2015-12-28 09:14:23.150041000 +0300 ++++ codelite/CodeLite/cl_standard_paths.h 2015-12-28 10:45:39.783044500 +0300 +@@ -119,6 +119,11 @@ + */ + wxString GetDocumentsDir() const; + ++ /** ++ * @brief return the installation directory. ++ */ ++ wxString GetInstallDir() const; ++ + void IgnoreAppSubDir(const wxString & subdirPattern); + }; + +diff -Naur codelite-orig/CodeLite/macros.h codelite/CodeLite/macros.h +--- codelite-orig/CodeLite/macros.h 2015-12-28 09:14:07.436041000 +0300 ++++ codelite/CodeLite/macros.h 2015-12-28 11:10:10.351039900 +0300 +@@ -114,10 +114,8 @@ + const wxString TERMINAL_CMD = wxT(""); + #endif + +-#if defined(__WXMSW__) && !defined(USE_POSIX_LAYOUT) ++#if defined(__WXMSW__) + #define PATH_SEP wxT("\\") +-#else +-#define PATH_SEP wxT("/") + #endif + + #define ID_MENU_CUSTOM_TARGET_FIRST 15000 +diff -Naur codelite-orig/codelitephp/PHPParser/php_utils.cpp codelite/codelitephp/PHPParser/php_utils.cpp +--- codelite-orig/codelitephp/PHPParser/php_utils.cpp 2015-12-28 09:14:12.524041000 +0300 ++++ codelite/codelitephp/PHPParser/php_utils.cpp 2015-12-28 10:30:14.036438700 +0300 +@@ -82,7 +82,7 @@ + fn.AppendDir("resources"); + #else + #ifdef USE_POSIX_LAYOUT +- fn = wxFileName(clStandardPaths::Get().GetDataDir() + wxT(PLUGINS_DIR)); ++ fn = wxFileName(clStandardPaths::Get().GetPluginsDirectory()); + #else + fn = wxFileName(clStandardPaths::Get().GetExecutablePath()); + fn.AppendDir("plugins"); +diff -Naur codelite-orig/Interfaces/plugin.h codelite/Interfaces/plugin.h +--- codelite-orig/Interfaces/plugin.h 2015-12-28 09:14:07.724041000 +0300 ++++ codelite/Interfaces/plugin.h 2015-12-28 10:38:29.711044500 +0300 +@@ -162,7 +162,7 @@ + wxString pluginsDir = clStandardPaths::Get().GetDataDir(); + #else + #ifdef USE_POSIX_LAYOUT +- wxString pluginsDir(clStandardPaths::Get().GetDataDir() + wxT(PLUGINS_DIR)); ++ wxString pluginsDir(clStandardPaths::Get().GetDataDir()); + #else + wxString pluginsDir(m_mgr->GetInstallDirectory() + wxT("/plugins")); + #endif +diff -Naur codelite-orig/LiteEditor/app.cpp codelite/LiteEditor/app.cpp +--- codelite-orig/LiteEditor/app.cpp 2015-12-28 09:14:07.841041000 +0300 ++++ codelite/LiteEditor/app.cpp 2015-12-28 10:54:34.309806000 +0300 +@@ -328,10 +328,6 @@ + // EnableDebugPriv(); + #endif + +-#ifdef USE_POSIX_LAYOUT +- clStandardPaths::Get().IgnoreAppSubDir("bin"); +-#endif +- + // Init resources and add the PNG handler + wxSystemOptions::SetOption(_T("msw.remap"), 0); + wxSystemOptions::SetOption("msw.notebook.themed-background", 1); +@@ -486,7 +482,7 @@ + #else //__WXMSW__ + if(homeDir.IsEmpty()) { // did we got a basedir from user? + #ifdef USE_POSIX_LAYOUT +- homeDir = clStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR); ++ homeDir = clStandardPaths::Get().GetDataDir(); + #else + homeDir = ::wxGetCwd(); + #endif +@@ -642,7 +638,7 @@ + + #elif defined(__WXMSW__) + #ifdef USE_POSIX_LAYOUT +- wxLocale::AddCatalogLookupPathPrefix(clStandardPaths::Get().GetDataDir() + wxT("/share/locale")); ++ wxLocale::AddCatalogLookupPathPrefix(clStandardPaths::Get().GetInstallDir() + wxT("\\share\\locale")); + #else + wxLocale::AddCatalogLookupPathPrefix(ManagerST::Get()->GetInstallDir() + wxT("\\locale")); + #endif +@@ -933,13 +929,8 @@ + #ifdef __WXGTK__ + printersInstallDir = wxFileName(wxString(INSTALL_DIR, wxConvUTF8), "gdb_printers"); + #else +-#ifdef USE_POSIX_LAYOUT +- wxString commdir(clStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR)); +- printersInstallDir = wxFileName(commdir, "gdb_printers"); +-#else + printersInstallDir = wxFileName(clStandardPaths::Get().GetDataDir(), "gdb_printers"); + #endif +-#endif + + // copy the files to ~/.codelite/gdb_printers + wxLogNull nolog; +diff -Naur codelite-orig/LiteEditor/frame.cpp codelite/LiteEditor/frame.cpp +--- codelite-orig/LiteEditor/frame.cpp 2015-12-28 09:14:08.030041000 +0300 ++++ codelite/LiteEditor/frame.cpp 2015-12-28 10:53:38.446392900 +0300 +@@ -3661,7 +3661,7 @@ + + // Load debuggers (*must* be after the plugins) + #ifdef USE_POSIX_LAYOUT +- wxString plugdir(clStandardPaths::Get().GetDataDir() + wxT(PLUGINS_DIR)); ++ wxString plugdir(clStandardPaths::Get().GetPluginsDirectory()); + DebuggerMgr::Get().Initialize(this, EnvironmentConfig::Instance(), plugdir); + #else + DebuggerMgr::Get().Initialize(this, EnvironmentConfig::Instance(), ManagerST::Get()->GetInstallDir()); +diff -Naur codelite-orig/Plugin/bitmap_loader.cpp codelite/Plugin/bitmap_loader.cpp +--- codelite-orig/Plugin/bitmap_loader.cpp 2015-12-28 09:14:08.426041000 +0300 ++++ codelite/Plugin/bitmap_loader.cpp 2015-12-28 10:56:16.813554600 +0300 +@@ -64,13 +64,8 @@ + wxString bitmapPath = wxString(INSTALL_DIR, wxConvUTF8); + fn = wxFileName(bitmapPath, zipname); + #else +-#ifdef USE_POSIX_LAYOUT +- wxString bitmapPath(clStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR)); +- fn = wxFileName(bitmapPath, zipname); +-#else + fn = wxFileName(clStandardPaths::Get().GetDataDir(), zipname); + #endif +-#endif + + if(m_manifest.empty() || m_toolbarsBitmaps.empty()) { + m_zipPath = fn; +diff -Naur codelite-orig/Plugin/ColoursAndFontsManager.cpp codelite/Plugin/ColoursAndFontsManager.cpp +--- codelite-orig/Plugin/ColoursAndFontsManager.cpp 2015-12-28 09:14:08.351041000 +0300 ++++ codelite/Plugin/ColoursAndFontsManager.cpp 2015-12-28 10:57:09.064051300 +0300 +@@ -543,12 +543,9 @@ + wxFileName fnUserLexers(clStandardPaths::Get().GetUserDataDir(), "lexers.json"); + fnUserLexers.AppendDir("lexers"); + +-// Default installation lexers +-#ifdef USE_POSIX_LAYOUT +- wxFileName defaultLexersFileName(clStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR), ""); +-#else ++ // Default installation lexers + wxFileName defaultLexersFileName(clStandardPaths::Get().GetDataDir(), ""); +-#endif ++ + defaultLexersFileName.AppendDir("lexers"); + defaultLexersFileName.SetFullName("lexers.json"); + +diff -Naur codelite-orig/Plugin/debuggermanager.cpp codelite/Plugin/debuggermanager.cpp +--- codelite-orig/Plugin/debuggermanager.cpp 2015-12-28 09:14:08.516041000 +0300 ++++ codelite/Plugin/debuggermanager.cpp 2015-12-28 11:04:22.364565400 +0300 +@@ -103,7 +103,11 @@ + wxString debuggersPath(PLUGINS_DIR, wxConvUTF8); + debuggersPath += wxT("/debuggers"); + #elif defined(__WXMSW__) ++#ifdef USE_POSIX_LAYOUT ++ wxString debuggersPath(clStandardPaths::Get().GetPluginsDirectory() + wxT("/debuggers")); ++#else + wxString debuggersPath(m_baseDir + wxT("/debuggers")); ++#endif + #else + // OSX + wxFileName debuggersFolder(clStandardPaths::Get().GetDataDir(), ""); +diff -Naur codelite-orig/SpellChecker/spellcheckeroptions.cpp codelite/SpellChecker/spellcheckeroptions.cpp +--- codelite-orig/SpellChecker/spellcheckeroptions.cpp 2015-12-28 09:14:09.378041000 +0300 ++++ codelite/SpellChecker/spellcheckeroptions.cpp 2015-12-28 11:06:19.093039900 +0300 +@@ -46,11 +46,7 @@ + m_scanD2 = false; + + wxString defaultDicsDir; +-#ifdef USE_POSIX_LAYOUT +- defaultDicsDir << clStandardPaths::Get().GetDataDir() << wxT(INSTALL_DIR) << wxFILE_SEP_PATH << "dics"; +-#else + defaultDicsDir << clStandardPaths::Get().GetDataDir() << wxFILE_SEP_PATH << "dics"; +-#endif + m_dictionaryPath = defaultDicsDir; + } + diff --git a/mingw-w64-codelite-git/proper-libraries-names-mingw.patch b/mingw-w64-codelite-git/proper-libraries-names-mingw.patch new file mode 100644 index 0000000000..4a8abd1d6f --- /dev/null +++ b/mingw-w64-codelite-git/proper-libraries-names-mingw.patch @@ -0,0 +1,33 @@ +--- codelite/CodeLite/CMakeLists.txt.orig 2015-12-28 12:14:44.681944700 +0300 ++++ codelite/CodeLite/CMakeLists.txt 2015-12-28 12:20:55.582697000 +0300 +@@ -121,6 +121,15 @@ + -lz -lcrypto) + endif ( UNIX AND NOT APPLE ) + ++if(MINGW) ++ set_target_properties(libcodelite ++ PROPERTIES ++ PREFIX "" ++ OUTPUT_NAME codelite ++ RUNTIME_OUTPUT_NAME libcodelite ++ ARCHIVE_OUTPUT_NAME codelite) ++endif() ++ + if (NOT MINGW) + if(APPLE) + install(TARGETS libcodelite DESTINATION ${CMAKE_BINARY_DIR}/codelite.app/Contents/MacOS/) +--- scodelite/sdk/databaselayer/CMakeLists.txt.orig 2015-12-28 12:24:47.723314900 +0300 ++++ codelite/sdk/databaselayer/CMakeLists.txt 2015-12-28 12:26:06.692417200 +0300 +@@ -62,6 +62,12 @@ + add_library(databaselayersqlite SHARED ${SRCS} ${MYSQL_SRCS}) + target_link_libraries(databaselayersqlite ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" ${SQLITE3_LIBRARY}) + ++if(MINGW) ++ set_target_properties(databaselayersqlite ++ PROPERTIES ++ PREFIX "") ++endif() ++ + if(APPLE) + install(TARGETS databaselayersqlite DESTINATION ${CMAKE_BINARY_DIR}/codelite.app/Contents/MacOS/) + CL_INSTALL_NAME_TOOL_STD(${CMAKE_BINARY_DIR}/codelite.app/Contents/MacOS/libdatabaselayersqlite.dylib) diff --git a/mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch b/mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch deleted file mode 100644 index 5ddcac1500..0000000000 --- a/mingw-w64-gcc/0001-gcc-fortran-ChangeLog.patch +++ /dev/null @@ -1,151 +0,0 @@ -From 635e1b2f08c3c5fced849e45c59453be7b131e88 Mon Sep 17 00:00:00 2001 -From: vehre -Date: Fri, 17 Jul 2015 10:16:21 +0000 -Subject: [PATCH] gcc/fortran/ChangeLog: - -2015-07-17 Andre Vehreschild - - PR fortran/66035 - * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment): - Compute the size to allocate for class and derived type objects - correclty. - (gfc_trans_subcomponent_assign): Only allocate memory for a - component when the object to assign is not an allocatable class - object (the memory is already present for allocatable class objects). - Furthermore use copy_class_to_class for assigning the rhs to the - component (may happen for dummy class objects on the rhs). - - -gcc/testsuite/ChangeLog: - -2015-07-17 Andre Vehreschild - - PR fortran/66035 - * gfortran.dg/structure_constructor_13.f03: New test. - - - - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225928 138bc75d-0d04-0410-961f-82ee72b054a4 ---- - gcc/fortran/ChangeLog | 12 ++++++++++ - gcc/fortran/trans-expr.c | 26 +++++++++++++++++++- - gcc/testsuite/ChangeLog | 5 ++++ - .../gfortran.dg/structure_constructor_13.f03 | 28 ++++++++++++++++++++++ - 4 files changed, 70 insertions(+), 1 deletion(-) - create mode 100644 gcc/testsuite/gfortran.dg/structure_constructor_13.f03 - -diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog -index af81bd5..33b8cbb 100644 ---- a/gcc/fortran/ChangeLog -+++ b/gcc/fortran/ChangeLog -@@ -1,3 +1,15 @@ -+2015-07-17 Andre Vehreschild -+ -+ PR fortran/66035 -+ * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment): -+ Compute the size to allocate for class and derived type objects -+ correclty. -+ (gfc_trans_subcomponent_assign): Only allocate memory for a -+ component when the object to assign is not an allocatable class -+ object (the memory is already present for allocatable class objects). -+ Furthermore use copy_class_to_class for assigning the rhs to the -+ component (may happen for dummy class objects on the rhs). -+ - 2015-07-17 Mikael Morin - Dominique d'Humieres - -diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c -index caafe76..89b4dfd 100644 ---- a/gcc/fortran/trans-expr.c -+++ b/gcc/fortran/trans-expr.c -@@ -6969,6 +6969,29 @@ alloc_scalar_allocatable_for_subcomponent_assignment (stmtblock_t *block, - TREE_TYPE (tmp), tmp, - fold_convert (TREE_TYPE (tmp), size)); - } -+ else if (cm->ts.type == BT_CLASS) -+ { -+ gcc_assert (expr2->ts.type == BT_CLASS || expr2->ts.type == BT_DERIVED); -+ if (expr2->ts.type == BT_DERIVED) -+ { -+ tmp = gfc_get_symbol_decl (expr2->ts.u.derived); -+ size = TYPE_SIZE_UNIT (tmp); -+ } -+ else -+ { -+ gfc_expr *e2vtab; -+ gfc_se se; -+ e2vtab = gfc_find_and_cut_at_last_class_ref (expr2); -+ gfc_add_vptr_component (e2vtab); -+ gfc_add_size_component (e2vtab); -+ gfc_init_se (&se, NULL); -+ gfc_conv_expr (&se, e2vtab); -+ gfc_add_block_to_block (block, &se.pre); -+ size = fold_convert (size_type_node, se.expr); -+ gfc_free_expr (e2vtab); -+ } -+ size_in_bytes = size; -+ } - else - { - /* Otherwise use the length in bytes of the rhs. */ -@@ -7096,7 +7119,8 @@ gfc_trans_subcomponent_assign (tree dest, gfc_component * cm, gfc_expr * expr, - gfc_add_expr_to_block (&block, tmp); - } - else if (init && (cm->attr.allocatable -- || (cm->ts.type == BT_CLASS && CLASS_DATA (cm)->attr.allocatable))) -+ || (cm->ts.type == BT_CLASS && CLASS_DATA (cm)->attr.allocatable -+ && expr->ts.type != BT_CLASS))) - { - /* Take care about non-array allocatable components here. The alloc_* - routine below is motivated by the alloc_scalar_allocatable_for_ -diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog -index ccba51f..1311bf2 100644 ---- a/gcc/testsuite/ChangeLog -+++ b/gcc/testsuite/ChangeLog -@@ -1,3 +1,8 @@ -+2015-07-17 Andre Vehreschild -+ -+ PR fortran/66035 -+ * gfortran.dg/structure_constructor_13.f03: New test. -+ - 2015-07-17 Mikael Morin - - PR fortran/61831 -diff --git a/gcc/testsuite/gfortran.dg/structure_constructor_13.f03 b/gcc/testsuite/gfortran.dg/structure_constructor_13.f03 -new file mode 100644 -index 0000000..c74e325 ---- /dev/null -+++ b/gcc/testsuite/gfortran.dg/structure_constructor_13.f03 -@@ -0,0 +1,28 @@ -+! { dg-do run } -+! -+! Contributed by Melven Roehrig-Zoellner -+! PR fortran/66035 -+ -+program test_pr66035 -+ type t -+ end type t -+ type w -+ class(t), allocatable :: c -+ end type w -+ -+ type(t) :: o -+ -+ call test(o) -+contains -+ subroutine test(o) -+ class(t), intent(inout) :: o -+ type(w), dimension(:), allocatable :: list -+ -+ select type (o) -+ class is (t) -+ list = [w(o)] ! This caused an ICE -+ class default -+ call abort() -+ end select -+ end subroutine -+end program --- -2.5.0 - diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 8c9cb2f236..98fdcf9dc1 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -11,8 +11,8 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc") -pkgver=5.2.0 -pkgrel=4 +pkgver=5.3.0 +pkgrel=1 pkgdesc="GCC for the MinGW-w64" arch=('any') url="http://gcc.gnu.org" @@ -56,9 +56,8 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}- 'port-sanitizer-to-mingw.all.patch' 'enable-shared-gnat-implib.mingw.patch' '955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch' - 'pr66035.patch' '0022-clone_function_name_1-Retain-any-stdcall-suffix.patch') -md5sums=('a51bcfeb3da7dd4c623e27207ed43467' +md5sums=('c9616fd448f980259c31de613e575719' '41635a40493dc79416db6627b2826b21' 'f6b5fb08ff06a7d60ee3280e14240bb2' '71cdb550528efcf2a5c9112464bfbabc' @@ -80,7 +79,6 @@ md5sums=('a51bcfeb3da7dd4c623e27207ed43467' '52592c1d7c6031ff601ecfdf3942b940' '62cc23251ae746b5f39c2c7aef121e8f' '393ce6bf124d5b1ca0e38cbe0fc6eb51' - '5b980076cd5fcbc3aff6014f306282dd' '6d0a782eef0077ddbffd130f806529fa') _threads="posix" @@ -146,9 +144,6 @@ prepare() { patch -p1 -i ${srcdir}/955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66035 - patch -p1 -i ${srcdir}/pr66035.patch - patch -p1 -i ${srcdir}/0022-clone_function_name_1-Retain-any-stdcall-suffix.patch #if check_option "debug" "y"; then diff --git a/mingw-w64-gcc/pr66035.patch b/mingw-w64-gcc/pr66035.patch deleted file mode 100644 index c51822ca1f..0000000000 --- a/mingw-w64-gcc/pr66035.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- a/gcc/fortran/trans-expr.c -+++ a/gcc/fortran/trans-expr.c -@@ -6897,6 +6897,30 @@ alloc_scalar_allocatable_for_subcomponent_assignment (stmtblock_t *block, - TREE_TYPE (tmp), tmp, - fold_convert (TREE_TYPE (tmp), size)); - } -+ else if (cm->ts.type == BT_CLASS) -+ { -+ gcc_assert (expr2->ts.type == BT_CLASS || expr2->ts.type == BT_DERIVED); -+ if (expr2->ts.type == BT_DERIVED) -+ { -+ tmp = gfc_get_symbol_decl (gfc_find_vtab (&expr2->ts)); -+ tmp = gfc_build_addr_expr (NULL_TREE, tmp); -+ size = fold_convert (size_type_node, gfc_vptr_size_get (tmp)); -+ } -+ else -+ { -+ gfc_expr *e2vtab; -+ gfc_se se; -+ e2vtab = gfc_find_and_cut_at_last_class_ref (expr2); -+ gfc_add_vptr_component (e2vtab); -+ gfc_add_size_component (e2vtab); -+ gfc_init_se (&se, NULL); -+ gfc_conv_expr (&se, e2vtab); -+ gfc_add_block_to_block (block, &se.pre); -+ size = fold_convert (size_type_node, se.expr); -+ gfc_free_expr (e2vtab); -+ } -+ size_in_bytes = size; -+ } - else - { - /* Otherwise use the length in bytes of the rhs. */ -@@ -7068,6 +7092,14 @@ gfc_trans_subcomponent_assign (tree dest, gfc_component * cm, gfc_expr * expr, - tmp = gfc_build_memcpy_call (tmp, se.expr, size); - gfc_add_expr_to_block (&block, tmp); - } -+ else if (cm->ts.type == BT_CLASS && expr->ts.type == BT_CLASS) -+ { -+ tmp = gfc_copy_class_to_class (se.expr, dest, integer_one_node, -+ CLASS_DATA (cm)->attr.unlimited_polymorphic); -+ gfc_add_expr_to_block (&block, tmp); -+ gfc_add_modify (&block, gfc_class_vptr_get (dest), -+ gfc_class_vptr_get (se.expr)); -+ } - else - gfc_add_modify (&block, tmp, - fold_convert (TREE_TYPE (tmp), se.expr)); diff --git a/mingw-w64-gdb/PKGBUILD b/mingw-w64-gdb/PKGBUILD index d408db07e1..2267b8e5cd 100644 --- a/mingw-w64-gdb/PKGBUILD +++ b/mingw-w64-gdb/PKGBUILD @@ -2,12 +2,12 @@ # Contributor: Ray Donnelly _realname=gdb -_gcc_ver=5.2.0 +_gcc_ver=5.3.0 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" # Until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62279 is # fixed, we will stick with 7.6.2 which hasn't got this bug.. -pkgver=7.10 +pkgver=7.10.1 pkgrel=1 pkgdesc="GNU Debugger (mingw-w64)" arch=('any') @@ -31,7 +31,7 @@ source=(http://ftp.gnu.org/gnu/gdb/${_realname}-${pkgver}.tar.xz{,.sig} 'gdb-7.6.2-mingw-gcc-4.7.patch' 'gdb-perfomance.patch' 'gdb-fix-using-gnu-print.patch') -md5sums=('2a35bac41fa8e10bf04f3a0dd7f7f363' +md5sums=('39e654460c9cdd80200a29ac020cfe11' 'SKIP' 'be1c16674d98189a6f18dc0f5922c739' 'e48292d553379a9765c82e80e618ffd2' diff --git a/mingw-w64-gnutls/0002-gnutls-3.4.7-socket.patch b/mingw-w64-gnutls/0002-gnutls-3.4.7-socket.patch new file mode 100644 index 0000000000..2542092053 --- /dev/null +++ b/mingw-w64-gnutls/0002-gnutls-3.4.7-socket.patch @@ -0,0 +1,22 @@ +--- a/src/socket.c 2015-11-08 02:31:10.000000000 -0600 ++++ b/src/socket.c 2015-11-25 10:04:39.287828945 -0600 +@@ -263,7 +263,9 @@ + if (s != NULL) { + return s->s_port; + } ++#ifndef _WIN32 + endservent(); ++#endif + + return 443; + } +@@ -278,7 +280,9 @@ + if (s != NULL) { + return s->s_name; + } ++#ifndef _WIN32 + endservent(); ++#endif + + return "443"; + } diff --git a/mingw-w64-gnutls/0003-gnutls-fix-external-libtasn1-detection.patch b/mingw-w64-gnutls/0003-gnutls-fix-external-libtasn1-detection.patch new file mode 100644 index 0000000000..bde1d2f529 --- /dev/null +++ b/mingw-w64-gnutls/0003-gnutls-fix-external-libtasn1-detection.patch @@ -0,0 +1,11 @@ +--- a/extra/Makefile.in.orig 2013-02-03 19:40:27.000000000 -0600 ++++ b/extra/Makefile.in 2013-02-06 23:08:54.619176090 -0600 +@@ -76,7 +76,7 @@ + @ENABLE_MINITASN1_TRUE@am__append_1 = -I$(srcdir)/../lib/minitasn1 + @ENABLE_OPENSSL_TRUE@am__append_2 = -version-info $(LT_SSL_CURRENT):$(LT_SSL_REVISION):$(LT_SSL_AGE) + @ENABLE_MINITASN1_TRUE@@ENABLE_OPENSSL_TRUE@am__append_3 = ../lib/minitasn1/libminitasn1.la +-@ENABLE_MINITASN1_FALSE@@ENABLE_OPENSSL_TRUE@am__append_4 = $(LTLIBTASN1) ++@ENABLE_MINITASN1_FALSE@@ENABLE_OPENSSL_TRUE@am__append_4 = $(LIBTASN1_LIBS) + @ENABLE_OPENSSL_TRUE@@HAVE_LD_OUTPUT_DEF_TRUE@am__append_5 = \ + @ENABLE_OPENSSL_TRUE@@HAVE_LD_OUTPUT_DEF_TRUE@ -Wl,--output-def,libgnutls-openssl-$(DLL_VERSION).def + diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index 23de2c76e7..d673d4487a 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -3,7 +3,7 @@ _realname=gnutls pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.4.5 +pkgver=3.4.7 pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') @@ -23,15 +23,21 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") # Need remove "autogen" package before building. source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v${pkgver%.*}/${_realname}-${pkgver}.tar.xz{,.sig} - 0001-add-missing-define.patch) -md5sums=('f5dae0e0ecda28aab12386e6c0705d4c' + 0001-add-missing-define.patch + 0002-gnutls-3.4.7-socket.patch + 0003-gnutls-fix-external-libtasn1-detection.patch) +md5sums=('e7556cec73c8b34fd2ff0b591e24e44c' 'SKIP' - '807a79513358a9f4123f62111f1eed59') + '807a79513358a9f4123f62111f1eed59' + 'f23446753bbf74305257fa5aa594ec7f' + '92acc314feaa91e32d69a1a5bf0e279c') validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/0001-add-missing-define.patch + patch -p1 -i ${srcdir}/0002-gnutls-3.4.7-socket.patch + patch -p1 -i ${srcdir}/0003-gnutls-fix-external-libtasn1-detection.patch WANT_AUTOMAKE=latest autoreconf -fi -I m4 } @@ -51,7 +57,7 @@ build() { --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --with-zlib \ - --enable-shared --disable-static \ + --enable-shared --enable-static \ --enable-cxx \ --enable-nls \ --disable-rpath \ diff --git a/mingw-w64-isl/PKGBUILD b/mingw-w64-isl/PKGBUILD index 9bea1e97ce..fda93ef6f9 100644 --- a/mingw-w64-isl/PKGBUILD +++ b/mingw-w64-isl/PKGBUILD @@ -1,10 +1,11 @@ # Maintainer: Alexey Pavlov _realname=isl +pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=0.14.1 -pkgrel=2 -pkgdesc="Library for manipulating sets and relations of integer points bounded by linear constraints" +pkgver=0.15 +pkgrel=1 +pkgdesc="Library for manipulating sets and relations of integer points bounded by linear constraints (mingw-w64)" arch=('any') url="http://isl.gforge.inria.fr/" #depends=("${MINGW_PACKAGE_PREFIX}-gmp") @@ -13,7 +14,7 @@ options=('staticlibs') license=('MIT') source=("http://isl.gforge.inria.fr/${_realname}-${pkgver}.tar.xz" isl-0.14.1-no-undefined.patch) -md5sums=('94fcd11e0b1c79250ae341affb1845ea' +md5sums=('626d0452f3c9a36aeb3c225ff5e7c642' '38c67a10e197acb83217be17075070f9') prepare() { diff --git a/mingw-w64-jxrlib/CMakeLists.txt b/mingw-w64-jxrlib/CMakeLists.txt new file mode 100644 index 0000000000..ccfbe347fd --- /dev/null +++ b/mingw-w64-jxrlib/CMakeLists.txt @@ -0,0 +1,92 @@ +cmake_minimum_required(VERSION 2.8) +project(jxrlib C) + +set(JXRLIB_MAJOR 0) +set(JXRLIB_MINOR 0) + +set(JXRLIB_LIB_VERSION ${JXRLIB_MAJOR}.${JXRLIB_MINOR}.0) +set(JXRLIB_SO_VERSION ${JXRLIB_MAJOR}) + +include(TestBigEndian) +test_big_endian(ISBIGENDIAN) +if(ISBIGENDIAN) + set(DEF_ENDIAN -D_BIG__ENDIAN_) +endif() + +add_definitions(-D__ANSI__ -DDISABLE_PERF_MEASUREMENT ${DEF_ENDIAN}) + +include_directories( + common/include + image/sys + jxrgluelib + jxrtestlib +) + +# JXR Library +file(GLOB jpegxr_SRC image/sys/*.c image/decode/*.c image/encode/*.c) +file(GLOB jpegxr_HDR image/sys/*.h image/decode/*.h image/encode/*.h) + +add_library(jpegxr_obj OBJECT ${jpegxr_SRC} ${jpegxr_HDR}) + +add_library(jpegxr SHARED $) +set_target_properties(jpegxr PROPERTIES VERSION ${JXRLIB_LIB_VERSION} SOVERSION ${JXRLIB_SO_VERSION}) + +add_library(jpegxr_static STATIC $) +set_target_properties(jpegxr_static PROPERTIES VERSION ${JXRLIB_LIB_VERSION} SOVERSION ${JXRLIB_SO_VERSION} OUTPUT_NAME jpegxr RUNTIME_OUTPUT_NAME jpegxr ARCHIVE_OUTPUT_NAME jpegxr) + +install(TARGETS jpegxr + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX} +) + +install(TARGETS jpegxr_static + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX} +) + + +# JXR-GLUE Library +file(GLOB jxrglue_SRC jxrgluelib/*.c jxrtestlib/*.c) +file(GLOB jxrglue_HDR jxrgluelib/*.h jxrtestlib/*.h) + +add_library(jxr_obj OBJECT ${jxrglue_SRC} ${jxrglue_HDR}) + +add_library(jxrglue SHARED $) +set_target_properties(jxrglue PROPERTIES VERSION ${JXRLIB_LIB_VERSION} SOVERSION ${JXRLIB_SO_VERSION}) +target_link_libraries(jxrglue jpegxr m) + +add_library(jxrglue_static STATIC $) +set_target_properties(jxrglue_static PROPERTIES VERSION ${JXRLIB_LIB_VERSION} SOVERSION ${JXRLIB_SO_VERSION} OUTPUT_NAME jxrglue RUNTIME_OUTPUT_NAME jxrglue ARCHIVE_OUTPUT_NAME jxrglue) +target_link_libraries(jxrglue_static jpegxr_static m) + +install(TARGETS jxrglue + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX} +) + +install(TARGETS jxrglue_static + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX} +) + +# JxrEncApp Executable +add_executable(JxrEncApp jxrencoderdecoder/JxrEncApp.c) +target_link_libraries(JxrEncApp jxrglue) +install(TARGETS JxrEncApp RUNTIME DESTINATION bin) + +# JxrDecApp Executable +add_executable(JxrDecApp jxrencoderdecoder/JxrDecApp.c) +target_link_libraries(JxrDecApp jxrglue) +install(TARGETS JxrDecApp RUNTIME DESTINATION bin) + +# Headers +install(FILES jxrgluelib/JXRGlue.h jxrgluelib/JXRMeta.h jxrtestlib/JXRTest.h image/sys/windowsmediaphoto.h + DESTINATION include/jxrlib +) +install(DIRECTORY common/include/ DESTINATION include/jxrlib + FILES_MATCHING PATTERN "*.h" +) diff --git a/mingw-w64-jxrlib/PKGBUILD b/mingw-w64-jxrlib/PKGBUILD new file mode 100644 index 0000000000..6240b7444f --- /dev/null +++ b/mingw-w64-jxrlib/PKGBUILD @@ -0,0 +1,71 @@ +# Maintainer: Alexey Pavlov + +_realname=jxrlib +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.1 +pkgrel=1 +pkgdesc="Open source implementation of jpegxr (mingw-w64)" +arch=('any') +url="https://jxrlib.codeplex.com/" +license=('BSD') +validpgpkeys=('gpg_KEY') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-iconv") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +options=('strip' 'staticlibs') +source=(#jxrlib_${pkgver//./_}.tar.gz::http://jxrlib.codeplex.com/downloads/get/685250 + http://jxrlib.codeplex.com/downloads/get/685250#/jxrlib_${pkgver//./_}.tar.gz + "CMakeLists.txt" + "jxrlib_warnings.patch" + "jxrlib_mingw.patch") +md5sums=('c0a6a4529cb687d127cf52b52f5ec848' + '31c0666ddd914e0683a458c3b6aa3b0e' + '8ee3a08fbba3c74ea394e91d562c8be8' + 'e72528f9e35f5c52a3287b4fd31a0e44') + +prepare() { + cd "${srcdir}"/${_realname} + + # Sanitize charset and line endings + for file in `find . -type f -name '*.c' -or -name '*.h' -or -name '*.txt'`; do + ${MINGW_PREFIX}/bin/iconv -f ISO-8859-15 -t UTF-8 ${file} > ${file}.new && \ + sed -i 's|\r||g' ${file}.new && \ + touch -r ${file} ${file}.new && mv ${file}.new ${file} + done + + # Remove file which already exists as part of the mingw headers + rm -f common/include/guiddef.h + + cp -f ${srcdir}/CMakeLists.txt . + + patch -p1 -i ${srcdir}/jxrlib_warnings.patch + patch -p1 -i ${srcdir}/jxrlib_mingw.patch +} + +build() { + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + + declare -a extra_config + if check_option "debug" "n"; then + extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G'MSYS Makefiles' \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + "${extra_config[@]}" \ + ../${_realname} + + make +} + +package() { + cd "${srcdir}"/build-${CARCH} + make DESTDIR=${pkgdir} install +} diff --git a/mingw-w64-jxrlib/jxrlib_mingw.patch b/mingw-w64-jxrlib/jxrlib_mingw.patch new file mode 100644 index 0000000000..fe19cab194 --- /dev/null +++ b/mingw-w64-jxrlib/jxrlib_mingw.patch @@ -0,0 +1,93 @@ +diff -rupN jxrlib/common/include/wmspecstring.h jxrlib-new/common/include/wmspecstring.h +--- jxrlib/common/include/wmspecstring.h 2013-03-21 18:58:18.000000000 +0100 ++++ jxrlib-new/common/include/wmspecstring.h 2015-09-06 21:10:53.943039237 +0200 +@@ -334,7 +334,7 @@ void __pfx_assume(int, const char *); + + // Some CE versions don't have specstrings.h, some have very old version without + // __specstrings defined. So we handle CE separately in wmasalce.h +-#if defined(UNDER_CE) || defined(NO_WINDOWS) ++#if defined(UNDER_CE) || defined(NO_WINDOWS) || defined(MINGW) + #include "wmspecstringce.h" + #endif + +diff -rupN jxrlib/image/sys/ansi.h jxrlib-new/image/sys/ansi.h +--- jxrlib/image/sys/ansi.h 2013-03-28 18:34:06.000000000 +0100 ++++ jxrlib-new/image/sys/ansi.h 2015-09-06 21:18:54.051637086 +0200 +@@ -44,13 +44,8 @@ + //================================ + #define FORCE_INLINE + #define CDECL +-#if __LP64__ +-#define UINTPTR_T unsigned long long +-#define INTPTR_T long long +-#else +-#define UINTPTR_T unsigned int +-#define INTPTR_T int +-#endif ++#define UINTPTR_T uintptr_t ++#define INTPTR_T intptr_t + + + //================================ +diff -rupN jxrlib/image/sys/strcodec.h jxrlib-new/image/sys/strcodec.h +--- jxrlib/image/sys/strcodec.h 2015-09-06 02:21:20.337316724 +0200 ++++ jxrlib-new/image/sys/strcodec.h 2015-09-06 21:18:44.335483326 +0200 +@@ -40,7 +40,7 @@ + + //================================================================ + #ifdef ENABLE_OPTIMIZATIONS +-#if defined(WIN32) && !defined(_WIN64) ++#if defined(_MSC_VER) && !defined(_WIN64) + #define WMP_OPT_SSE2 + + #define WMP_OPT_CC_ENC +@@ -57,9 +57,9 @@ + + //================================================================ + //#ifdef WIN32 +-#if defined(WIN32) && !defined(UNDER_CE) // WIN32 seems to be defined always in VS2005 for ARM platform ++#if defined(_MSC_VER) && !defined(UNDER_CE) // WIN32 seems to be defined always in VS2005 for ARM platform + #define PLATFORM_X86 +-#include "..\x86\x86.h" ++#include "../x86/x86.h" + #endif + + #ifndef UNREFERENCED_PARAMETER +@@ -89,6 +89,7 @@ typedef unsigned __int64 U64; + + // The following macros depend on UINTPTR_T and INTPTR_T being properly defined + // so that they are equal to pointer width. Confirm and fail if our assumptions are wrong. ++ + CT_ASSERT(sizeof(UINTPTR_T) == sizeof(void*), strcodec1); + CT_ASSERT(sizeof(INTPTR_T) == sizeof(void*), strcodec2); + +@@ -450,7 +451,7 @@ typedef struct CWMImageStrCodec { + + struct WMPStream ** ppWStream; + +-#ifdef WIN32 ++#ifdef _MSC_VER + TCHAR **ppTempFile; + #else + char **ppTempFile; +diff -rupN jxrlib/jxrgluelib/JXRMeta.h jxrlib-new/jxrgluelib/JXRMeta.h +--- jxrlib/jxrgluelib/JXRMeta.h 2015-09-06 02:21:20.340316728 +0200 ++++ jxrlib-new/jxrgluelib/JXRMeta.h 2015-09-06 21:10:53.944039253 +0200 +@@ -28,7 +28,7 @@ + #pragma once + + #include +-#ifndef WIN32 ++#ifndef _MSC_VER + #include + #endif + +@@ -106,7 +106,7 @@ + #define WMP_valWMPhotoID WMP_valCompression + + +-#ifdef WIN32 ++#ifdef _MSC_VER + #define __in_win __in + #define __out_win __out + #endif diff --git a/mingw-w64-jxrlib/jxrlib_warnings.patch b/mingw-w64-jxrlib/jxrlib_warnings.patch new file mode 100644 index 0000000000..f7b8175ccd --- /dev/null +++ b/mingw-w64-jxrlib/jxrlib_warnings.patch @@ -0,0 +1,193 @@ +diff -rupN jxrlib/image/sys/common.h jxrlib-new/image/sys/common.h +--- jxrlib/image/sys/common.h 2013-03-21 17:30:54.000000000 +0100 ++++ jxrlib-new/image/sys/common.h 2015-09-03 10:31:06.528657911 +0200 +@@ -124,8 +124,8 @@ Void Adapt (CAdaptiveHuffman *pAdHuff, B + Void AdaptFixed (CAdaptiveHuffman *pAdHuff); + Void AdaptDiscriminant (CAdaptiveHuffman *pAdHuff); + +-#ifndef _PREFAST_ +-#pragma warning(disable:4068) +-#endif ++// #ifndef _PREFAST_ ++// #pragma warning(disable:4068) ++// #endif + + #endif // WMI_COMMON_H +diff -rupN jxrlib/image/sys/strcodec.c jxrlib-new/image/sys/strcodec.c +--- jxrlib/image/sys/strcodec.c 2013-03-20 19:16:21.000000000 +0100 ++++ jxrlib-new/image/sys/strcodec.c 2015-09-03 10:30:31.018971760 +0200 +@@ -668,9 +668,7 @@ ERR detach_SB(SimpleBitIO* pSB) + // WinCE ARM and Desktop x86 + #else + // other platform +-#ifdef _BIG__ENDIAN_ +-#define _byteswap_ulong(x) (x) +-#else // _BIG__ENDIAN_ ++#ifndef _BIG__ENDIAN_ + U32 _byteswap_ulong(U32 bits) + { + U32 r = (bits & 0xffu) << 24; +diff -rupN jxrlib/image/sys/strcodec.h jxrlib-new/image/sys/strcodec.h +--- jxrlib/image/sys/strcodec.h 2013-03-21 19:22:34.000000000 +0100 ++++ jxrlib-new/image/sys/strcodec.h 2015-09-03 10:30:31.019971779 +0200 +@@ -64,7 +64,7 @@ + + #ifndef UNREFERENCED_PARAMETER + #define UNREFERENCED_PARAMETER(P) { (P) = (P); } +-#endif UNREFERENCED_PARAMETER ++#endif // UNREFERENCED_PARAMETER + + #ifdef UNDER_CE + #define PLATFORM_WCE +@@ -673,6 +673,16 @@ void flushToByte(BitIOInfo* pIO); + pIO->cBitsUsed &= 16 - 1;\ + pIO->uiAccumulator = LOAD16(pIO->pbCurrent) << pIO->cBitsUsed;\ + return 0; +-// pIO->uiAccumulator = LOAD16(pIO->pbCurrent) & ((U32)(-1) >> pIO->cBitsUsed);\ + + void OutputPerfTimerReport(CWMImageStrCodec *pState); ++ ++#if (defined(WIN32) && !defined(UNDER_CE)) || (defined(UNDER_CE) && defined(_ARM_)) ++// WinCE ARM and Desktop x86 ++#else ++// other platform ++#ifdef _BIG__ENDIAN_ ++#define _byteswap_ulong(x) (x) ++#else // _BIG__ENDIAN_ ++U32 _byteswap_ulong(U32 bits); ++#endif // _BIG__ENDIAN_ ++#endif +\ No newline at end of file +diff -rupN jxrlib/jxrencoderdecoder/JxrDecApp.c jxrlib-new/jxrencoderdecoder/JxrDecApp.c +--- jxrlib/jxrencoderdecoder/JxrDecApp.c 2013-05-08 18:45:08.000000000 +0200 ++++ jxrlib-new/jxrencoderdecoder/JxrDecApp.c 2015-09-03 10:30:31.019971779 +0200 +@@ -423,7 +423,7 @@ ERR WmpDecAppCreateEncoderFromExt( + Call(GetTestEncodeIID(szExt, &pIID)); + + // Create encoder +- Call(PKTestFactory_CreateCodec(pIID, ppIE)); ++ Call(PKTestFactory_CreateCodec(pIID, (void**)ppIE)); + + Cleanup: + return err; +diff -rupN jxrlib/jxrencoderdecoder/JxrEncApp.c jxrlib-new/jxrencoderdecoder/JxrEncApp.c +--- jxrlib/jxrencoderdecoder/JxrEncApp.c 2013-05-28 20:58:22.000000000 +0200 ++++ jxrlib-new/jxrencoderdecoder/JxrEncApp.c 2015-09-03 10:30:31.020971798 +0200 +@@ -578,7 +578,7 @@ main(int argc, char* argv[]) + + //================================ + Call(PKCreateCodecFactory(&pCodecFactory, WMP_SDK_VERSION)); +- Call(pCodecFactory->CreateCodec(&IID_PKImageWmpEncode, &pEncoder)); ++ Call(pCodecFactory->CreateCodec(&IID_PKImageWmpEncode, (void**)&pEncoder)); + + //---------------------------------------------------------------- + Call(PKCreateTestFactory(&pTestFactory, WMP_SDK_VERSION)); +diff -rupN jxrlib/jxrgluelib/JXRGlueJxr.c jxrlib-new/jxrgluelib/JXRGlueJxr.c +--- jxrlib/jxrgluelib/JXRGlueJxr.c 2013-03-20 20:01:13.000000000 +0100 ++++ jxrlib-new/jxrgluelib/JXRGlueJxr.c 2015-09-03 10:30:31.021971818 +0200 +@@ -28,6 +28,7 @@ + //*@@@---@@@@****************************************************************** + #include + #include ++#include + + + static const char szHDPhotoFormat[] = "image/vnd.ms-photo"; +diff -rupN jxrlib/jxrgluelib/JXRMeta.h jxrlib-new/jxrgluelib/JXRMeta.h +--- jxrlib/jxrgluelib/JXRMeta.h 2013-03-20 19:06:24.000000000 +0100 ++++ jxrlib-new/jxrgluelib/JXRMeta.h 2015-09-03 10:30:31.021971818 +0200 +@@ -34,7 +34,7 @@ + + #ifndef UNREFERENCED_PARAMETER + #define UNREFERENCED_PARAMETER(P) { (P) = (P); } +-#endif UNREFERENCED_PARAMETER ++#endif // UNREFERENCED_PARAMETER + + //================================================================ + // Container +diff -rupN jxrlib/jxrtestlib/JXRTest.c jxrlib-new/jxrtestlib/JXRTest.c +--- jxrlib/jxrtestlib/JXRTest.c 2013-03-19 20:06:18.000000000 +0100 ++++ jxrlib-new/jxrtestlib/JXRTest.c 2015-09-03 10:30:31.022971837 +0200 +@@ -198,7 +198,7 @@ ERR PKTestFactory_CreateDecoderFromFile( + ERR err = WMP_errSuccess; + + char *pExt = NULL; +- PKIID* pIID = NULL; ++ const PKIID* pIID = NULL; + + struct WMPStream* pStream = NULL; + PKImageDecode* pDecoder = NULL; +@@ -214,7 +214,7 @@ ERR PKTestFactory_CreateDecoderFromFile( + Call(CreateWS_File(&pStream, szFilename, "rb")); + + // Create decoder +- Call(PKTestFactory_CreateCodec(pIID, ppDecoder)); ++ Call(PKTestFactory_CreateCodec(pIID, (void**)ppDecoder)); + pDecoder = *ppDecoder; + + // attach stream to decoder +@@ -232,7 +232,7 @@ ERR PKCreateTestFactory(PKCodecFactory** + + UNREFERENCED_PARAMETER( uVersion ); + +- Call(PKAlloc(ppCFactory, sizeof(**ppCFactory))); ++ Call(PKAlloc((void**)ppCFactory, sizeof(**ppCFactory))); + pCFactory = *ppCFactory; + + pCFactory->CreateCodec = PKTestFactory_CreateCodec; +@@ -287,7 +287,7 @@ ERR PKTestDecode_Release( + + pID->fStreamOwner && pID->pStream->Close(&pID->pStream); + +- return PKFree(ppID); ++ return PKFree((void**)ppID); + } + + ERR PKTestDecode_Create( +@@ -296,7 +296,7 @@ ERR PKTestDecode_Create( + ERR err = WMP_errSuccess; + PKTestDecode* pID = NULL; + +- Call(PKAlloc(ppID, sizeof(**ppID))); ++ Call(PKAlloc((void**)ppID, sizeof(**ppID))); + + pID = *ppID; + pID->Initialize = PKTestDecode_Initialize; +diff -rupN jxrlib/jxrtestlib/JXRTestHdr.c jxrlib-new/jxrtestlib/JXRTestHdr.c +--- jxrlib/jxrtestlib/JXRTestHdr.c 2013-03-20 17:40:08.000000000 +0100 ++++ jxrlib-new/jxrtestlib/JXRTestHdr.c 2015-09-03 10:30:31.022971837 +0200 +@@ -27,7 +27,7 @@ + //*@@@---@@@@****************************************************************** + #ifndef ANSI + #define _CRT_SECURE_NO_WARNINGS +-#endif ANSI ++#endif // ANSI + + #include + #include +diff -rupN jxrlib/jxrtestlib/JXRTestPnm.c jxrlib-new/jxrtestlib/JXRTestPnm.c +--- jxrlib/jxrtestlib/JXRTestPnm.c 2013-03-19 22:43:44.000000000 +0100 ++++ jxrlib-new/jxrtestlib/JXRTestPnm.c 2015-09-03 10:30:31.023971856 +0200 +@@ -27,7 +27,7 @@ + //*@@@---@@@@****************************************************************** + #ifndef ANSI + #define _CRT_SECURE_NO_WARNINGS +-#endif ANSI ++#endif // ANSI + + #include + +diff -rupN jxrlib/jxrtestlib/JXRTestTif.c jxrlib-new/jxrtestlib/JXRTestTif.c +--- jxrlib/jxrtestlib/JXRTestTif.c 2013-03-19 20:17:12.000000000 +0100 ++++ jxrlib-new/jxrtestlib/JXRTestTif.c 2015-09-03 10:30:31.023971856 +0200 +@@ -909,8 +909,8 @@ ERR PKImageDecode_Release_TIF(PKTestDeco + + PKTestDecode *pID = *ppID; + +- Call(WMPFree(&pID->EXT.TIF.uStripOffsets)); +- Call(WMPFree(&pID->EXT.TIF.uStripByteCounts)); ++ Call(WMPFree((void**)&pID->EXT.TIF.uStripOffsets)); ++ Call(WMPFree((void**)&pID->EXT.TIF.uStripByteCounts)); + + Call(PKTestDecode_Release(ppID)); + diff --git a/mingw-w64-lfcbase/PKGBUILD b/mingw-w64-lfcbase/PKGBUILD new file mode 100644 index 0000000000..90e67ac364 --- /dev/null +++ b/mingw-w64-lfcbase/PKGBUILD @@ -0,0 +1,44 @@ +# Maintainer: Björn Lemke + +_realname=lfcbase +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1.7.0 +pkgrel=1 +pkgdesc="LFC C++ base classes (mingw-w64)" +arch=('any') +url='http://www.lemke-it.com/' +license=('GPL3') +validpgpkeys=('gpg_KEY') +source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") + +sha256sums=("79d2b07d8d2a76b811e7ce2a80bc717c58b77e8751d97bb3c8b1d7f397b6ffd1") + +prepare() { + cd $srcdir/${_realname}-${pkgver} +} + +build() { + cd "$srcdir"/${_realname}-${pkgver} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared + + make +} + +check() { + cd "${srcdir}"/build-${CARCH} + make check +} + +package() { + cd "${srcdir}"/build-${CARCH} + make install DESTDIR="${pkgdir}" +} diff --git a/mingw-w64-lfcxml/PKGBUILD b/mingw-w64-lfcxml/PKGBUILD new file mode 100644 index 0000000000..8db1e6a332 --- /dev/null +++ b/mingw-w64-lfcxml/PKGBUILD @@ -0,0 +1,48 @@ +# Maintainer: Bjrn Lemke + +_realname=lfcxml +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1.2.0 +pkgrel=1 +pkgdesc="LFC C++ xml classes (mingw-w64)" +arch=('any') +url='http://www.lemke-it.com/' +license=('GPL3') +validpgpkeys=('gpg_KEY') +source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") + +depends=("${MINGW_PACKAGE_PREFIX}-lfcbase") +validpgpkeys=('gpg_KEY') +source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") + +sha246sums=("578f73560ea074f64b359c0009bbd3779c81fde2853249d52abe61588ba41ff4") + +prepare() { + cd $srcdir/${_realname}-${pkgver} +} + +build() { + cd "$srcdir"/${_realname}-${pkgver} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared + + make +} + +check() { + cd "${srcdir}"/build-${CARCH} + make check +} + +package() { + cd "${srcdir}"/build-${CARCH} + make install DESTDIR="${pkgdir}" +} diff --git a/mingw-w64-librevenge/PKGBUILD b/mingw-w64-librevenge/PKGBUILD index fccc5c0758..ac11e98605 100644 --- a/mingw-w64-librevenge/PKGBUILD +++ b/mingw-w64-librevenge/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=librevenge +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.0.2 -pkgrel=2 +pkgver=0.0.3 +pkgrel=1 pkgdesc="Library for REVerses ENGineered formats filters (mingw-w64)" arch=('any') url="http://sf.net/p/libwpd/librevenge/" @@ -18,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" checkdepends=("${MINGW_PACKAGE_PREFIX}-cppunit") options=(staticlibs strip) source=("http://sourceforge.net/projects/libwpd/files/librevenge/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz") -md5sums=('4ee55a80ee32af6752dd8c56eb1b1b5e') +md5sums=('b777d64bbe13830627c7bda69e5f3e31') prepare() { cd ${srcdir}/${_realname}-${pkgver} diff --git a/mingw-w64-libwebp/PKGBUILD b/mingw-w64-libwebp/PKGBUILD index a77d1741f9..ec69469127 100644 --- a/mingw-w64-libwebp/PKGBUILD +++ b/mingw-w64-libwebp/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Alexey Pavlov _realname=libwebp +pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.4.3 -pkgrel=2 +pkgver=0.5.0 +pkgrel=1 pkgdesc="the WebP library. Includes conversion tools (mingw-w64)" arch=('any') url="https://developers.google.com/speed/webp/" @@ -14,7 +15,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-giflib" "${MINGW_PACKAGE_PREFIX}-libtiff") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=(http://downloads.webmproject.org/releases/webp/${_realname}-${pkgver}.tar.gz{,.asc}) -md5sums=('08813525eeeffe7e305b4cbfade8ae9b' +md5sums=('ba81eb9bf23e3c69a2f5cc8dcdb5938f' 'SKIP') prepare() { @@ -34,7 +35,8 @@ build() { --enable-libwebpmux \ --enable-libwebpdemux \ --enable-libwebpdecoder - make + + make -j1 } package() { diff --git a/mingw-w64-openscenegraph/PKGBUILD b/mingw-w64-openscenegraph/PKGBUILD index ac54ad5f1f..8bc81c1287 100644 --- a/mingw-w64-openscenegraph/PKGBUILD +++ b/mingw-w64-openscenegraph/PKGBUILD @@ -3,7 +3,7 @@ _realname=OpenSceneGraph pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") -_pkgver=3.4.0 +_pkgver=3.5.1 pkgver=${_pkgver//-/} pkgrel=1 pkgdesc="Open source high performance 3D graphics toolkit (mingw-w64)" @@ -44,13 +44,15 @@ source=(http://trac.openscenegraph.org/downloads/developer_releases/${_realname} find-ffmpeg.patch find-freetype.patch additional-gl-header.patch - fix-cast-error.patch) -md5sums=('a5e762c64373a46932e444f6f7332496' + fix-cast-error.patch + add-gstreamer-cflags.patch) +md5sums=('71b97b18f11b6c361631fc3e34fb4b67' '18ce956c1889babc6515828b8200e864' 'a3b612082a47d6a7b4b41f8c576fda7e' '9ab69e1cd26826196fac5b3f01e6cb95' 'e889e10100a1f3e07212c01603712594' - '5599204490bf9f03cdd5871b938e3338') + '5599204490bf9f03cdd5871b938e3338' + '347e2d4d74a3b4a6a24e4264b27e2798') prepare() { cd "${srcdir}/${_realname}-${_pkgver}" @@ -59,6 +61,7 @@ prepare() { patch -p1 -i ${srcdir}/find-freetype.patch patch -p1 -i ${srcdir}/additional-gl-header.patch patch -p1 -i ${srcdir}/fix-cast-error.patch + patch -p1 -i ${srcdir}/add-gstreamer-cflags.patch } build() { @@ -70,10 +73,8 @@ build() { pushd ${builddir} [[ "${builddir%-${MINGW_CHOST}}" == "Release" ]] && { local _opts="-DBUILD_OSG_EXAMPLES:BOOL=ON" - local _postfix= } || { local _opts="-DBUILD_OSG_EXAMPLES:BOOL=OFF -DBUILD_OSG_APPLICATIONS=OFF" - local _postfix="-debug" } msg "Building ${builddir%-${MINGW_CHOST}} version..." @@ -82,7 +83,7 @@ build() { COLLADA_DIR=${MINGW_PREFIX} \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${_postfix}${MINGW_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_BUILD_TYPE=${builddir%-${MINGW_CHOST}} \ ${_opts} \ ../${_realname}-${_pkgver} diff --git a/mingw-w64-openscenegraph/add-gstreamer-cflags.patch b/mingw-w64-openscenegraph/add-gstreamer-cflags.patch new file mode 100644 index 0000000000..bc89e923e7 --- /dev/null +++ b/mingw-w64-openscenegraph/add-gstreamer-cflags.patch @@ -0,0 +1,32 @@ +--- OpenSceneGraph-3.5.1/CMakeLists.txt.orig 2015-11-09 18:52:06.000000000 +0300 ++++ OpenSceneGraph-3.5.1/CMakeLists.txt 2015-11-11 14:14:03.911230800 +0300 +@@ -668,6 +668,9 @@ + FIND_PACKAGE(OurDCMTK) + FIND_PACKAGE(FFmpeg) + FIND_PACKAGE(GStreamer COMPONENTS app pbutils) ++ IF(GStreamer_FOUND) ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GStreamer_CFLAGS}") ++ ENDIF() + FIND_PACKAGE(GLIB COMPONENTS gobject) + FIND_PACKAGE(DirectShow) + FIND_PACKAGE(SDL2) +--- OpenSceneGraph-3.5.1/CMakeModules/FindGStreamer.cmake.orig 2015-11-11 14:26:56.738940300 +0300 ++++ OpenSceneGraph-3.5.1/CMakeModules/FindGStreamer.cmake 2015-11-11 14:27:12.773336700 +0300 +@@ -65,7 +65,7 @@ + # ) + #endmacro() + +-if (WIN32) ++if (WIN32 AND NOT MINGW) + macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _library) + find_path(${_component_prefix}_INCLUDE_DIRS + NAMES ${_header} +@@ -83,7 +83,7 @@ + find_package(PkgConfig) + + macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _library) +- pkg_check_modules(${_component_prefix} QUIET ${_pkgconfig_name}) ++ pkg_check_modules(${_component_prefix} ${_pkgconfig_name}) + + # find_path(${_component_prefix}_INCLUDE_DIRS + # NAMES ${_header} diff --git a/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch b/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch index c2f958418d..8959aa02a5 100644 --- a/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch +++ b/mingw-w64-python2/0840-add-builddir-to-library_dirs.patch @@ -1,12 +1,11 @@ diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py --- Python-2.7.9-orig/setup.py 2014-12-11 13:51:17.891000000 +0300 +++ Python-2.7.9/setup.py 2014-12-11 13:51:18.015800000 +0300 -@@ -272,6 +272,9 @@ +@@ -272,6 +272,8 @@ args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags self.compiler.set_executables(**args) -+ if host_platform not in ['mingw', 'win32']: -+ self.compiler.library_dirs.insert(0, '.') ++ self.compiler.library_dirs.insert(0, '.') + build_ext.build_extensions(self) diff --git a/mingw-w64-python2/0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch b/mingw-w64-python2/0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch new file mode 100644 index 0000000000..4762b0abfc --- /dev/null +++ b/mingw-w64-python2/0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch @@ -0,0 +1,26 @@ +--- Python-2.7.10/setup.py.orig 2015-12-28 12:34:14.075841800 +0000 ++++ Python-2.7.10/setup.py 2015-12-28 15:47:57.770679100 +0000 +@@ -1731,6 +1731,23 @@ + if '_tkinter' not in [e.name for e in self.extensions]: + missing.append('_tkinter') + ++ # Remove any extensions.library_dirs that are also in compiler.library_dirs ++ # Rationale: It's wrong. Ok, better. The compiler.library_dirs appear first ++ # in the link command line and (finally, not yet) include "." which ++ # causes the build dir to be searched in for -lpython2.7 before ++ # $sysroot/lib. This is necessary as otherwise the old python import ++ # library is used instead of the new one. This affects sqlite (and ++ # some others). I could go into fixing these individually .. but I ++ # worry I'll be back here in 6 months fixing the same bug again if ++ # I do for some other module(s) in Python 2.7.12. In our case, ++ # C:/msys64/mingw64/lib was turning up as that's where libsqlite was ++ # and this prevented me from switching from an installed release to ++ # an new debug Python. We should be building in clean sysroots but ++ # that's another matter really. ++ for ext in self.extensions: ++ ext.library_dirs = [dir for dir in ext.library_dirs ++ if dir not in self.compiler.library_dirs] ++ + ## # Uncomment these lines if you want to play with xxmodule.c + ## ext = Extension('xx', ['xxmodule.c']) + ## self.extensions.append(ext) diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index c107c12371..66a6e50196 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -1,11 +1,11 @@ # Maintainer: Alexey Pavlov -# Contributor: Ray Donnelly +# Maintainer: Ray Donnelly # Contributor: Saul Ibarra Corretge _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7.10 -pkgrel=5 +pkgrel=6 _pybasever=${pkgver%.*} pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') @@ -24,7 +24,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib" ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -options=('!makeflags' 'staticlibs' 'strip' '!debug') +options=('!makeflags') # 'debug' '!strip') source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0000-make-_sysconfigdata.py-relocatable.patch 0100-MINGW-BASE-use-NT-thread-model.patch @@ -93,6 +93,7 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0820-mingw-reorder-bininstall-ln-symlink-creation.patch 0830-add-build-sysroot-config-option.patch 0840-add-builddir-to-library_dirs.patch + 0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch 0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch 0855-mingw-fix-ssl-dont-use-enum_certificates.patch 0860-mingw-build-optimized-ext.patch @@ -187,6 +188,7 @@ prepare() { patch -p1 -i "${srcdir}"/0820-mingw-reorder-bininstall-ln-symlink-creation.patch patch -p1 -i "${srcdir}"/0830-add-build-sysroot-config-option.patch patch -p1 -i "${srcdir}"/0840-add-builddir-to-library_dirs.patch + patch -p1 -i "${srcdir}"/0845-Remove-compiler-lib-dirs-from-extension-lib-dirs.patch patch -p1 -i "${srcdir}"/0850-cross-PYTHON_FOR_BUILD-gteq-276-and-fullpath-it.patch patch -p1 -i "${srcdir}"/0855-mingw-fix-ssl-dont-use-enum_certificates.patch patch -p1 -i "${srcdir}"/0860-mingw-build-optimized-ext.patch @@ -235,6 +237,7 @@ prepare() { } build() { + declare -a extra_config local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) CFLAGS+=" -fwrapv -D__USE_MINGW_ANSI_STDIO=1 " @@ -244,15 +247,16 @@ build() { if check_option "strip" "y"; then LDFLAGS+=" -s " fi + + # Most of this is unnecessary, perhaps just + # the extra_config bit? if check_option "debug" "n"; then CFLAGS+=" -DNDEBUG " CXXFLAGS+=" -DNDEBUG " else - plain " -DDEBUG -DPy_DEBUG -D_DEBUG does not work unfortunately .." - # CFLAGS+=" -DDEBUG -DPy_DEBUG -D_DEBUG " - # CXXFLAGS+=" -DDEBUG -DPy_DEBUG -D_DEBUG " - CFLAGS+=" -O0 -ggdb" - CXXFLAGS+=" -O0 -ggdb" + CFLAGS+=" -DDEBUG -DPy_DEBUG -D_DEBUG " + CXXFLAGS+=" -DDEBUG -DPy_DEBUG -D_DEBUG " + extra_config+=("--with-pydebug") fi local LIBFFI_INC=`${MINGW_PREFIX}/bin/pkg-config libffi --cflags-only-I | sed "s|\-I||g"` @@ -272,15 +276,16 @@ build() { --with-threads \ --with-system-expat \ --with-system-ffi \ + "${extra_config[@]}" \ OPT="" #--with-dbmliborder='gdbm:ndbm' make } -check() { - cd "${srcdir}/build-${CARCH}" - make test -} +#check() { +# cd "${srcdir}/build-${CARCH}" +# make test +#} package() { cd "${srcdir}/build-${CARCH}" @@ -288,18 +293,19 @@ package() { MSYSTEM=MINGW \ MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ - make install DESTDIR="$pkgdir" + make install DESTDIR="${pkgdir}" mv "${pkgdir}${MINGW_PREFIX}"/bin/smtpd.py "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/ - # gdb pretty printers for debugging Python itself; to use: + # gdb support for debugging Python itself (needs options='debug', + # *may* work better on i686 due to frame pointer always being available) to use: # python # sys.path.append('C:/msys64/mingw64/share/gdb/python2') - # import python-gdb - # reload(python-gdb) + # import python_gdb + # reload(python_gdb) # end [[ -d "${pkgdir}${MINGW_PREFIX}"/share/gdb/python2/ ]] || mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/gdb/python2/ - cp -f python.exe-gdb.py "${pkgdir}${MINGW_PREFIX}"/share/gdb/python2/python-gdb.py + cp -f python.exe-gdb.py "${pkgdir}${MINGW_PREFIX}"/share/gdb/python2/python_gdb.py # Copy python import library to $prefix/lib because some programs can't find it in other locations cp -f "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config/libpython${_pybasever}.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/libpython${_pybasever}.dll.a @@ -420,7 +426,8 @@ sha1sums=('ee5a50c5562e7448f037d35fdedc18d95c748b9e' '23c0bcdb082006d6bde3eb9fc72044272c7a08f3' 'fbefe2d0d2d4c9f995c9c49a66c93071587b7045' '15e055c4cce32a0c1940953062fd2db7c22364c4' - 'f0f5efb98c610d0caf3ccbf0850460af49f92c96' + '731ac1d1e54af3906d836a6595cb3a76ce165260' + '415ae19daf7dddc8db20009f2c708b900822e6b4' '78b039f8ab595750b2f7aee3e2fc6d7a466a5c9c' 'aa295dd8c4f60b70c61753fc4be9c8ff50101577' 'de01d87f5070992f305d5375da1deb69f80ea8bb' From ebe6404246b373c2ab1a375ecdac7e18a6276a17 Mon Sep 17 00:00:00 2001 From: Ryuta Suzuki Date: Mon, 28 Dec 2015 15:55:50 +0900 Subject: [PATCH 2034/2060] python-cycler: New package Update PKGBUILD Added cycler as dependency. Update PKGBUILD Update PKGBUILD Update PKGBUILD Update PKGBUILD --- mingw-w64-python-cycler/PKGBUILD | 87 ++++++++++++++++++++++++++++ mingw-w64-python-matplotlib/PKGBUILD | 2 + 2 files changed, 89 insertions(+) create mode 100644 mingw-w64-python-cycler/PKGBUILD diff --git a/mingw-w64-python-cycler/PKGBUILD b/mingw-w64-python-cycler/PKGBUILD new file mode 100644 index 0000000000..dbfb7c27d6 --- /dev/null +++ b/mingw-w64-python-cycler/PKGBUILD @@ -0,0 +1,87 @@ +# Maintainer: Ryuta Suzuki + +_realname=cycler +pkgbase=mingw-w64-python-${_realname} +pkgname=( + "${MINGW_PACKAGE_PREFIX}-python3-${_realname}" + "${MINGW_PACKAGE_PREFIX}-python2-${_realname}" +) +pkgver=0.9.0 +pkgrel=1 +pkgdesc="Composable style cycles" +arch=('any') +license=('BSD') +url="http://github.com/matplotlib/cycler" +makedepends=( + "${MINGW_PACKAGE_PREFIX}-python3-setuptools" + "${MINGW_PACKAGE_PREFIX}-python2-setuptools" + "${MINGW_PACKAGE_PREFIX}-python3-six" + "${MINGW_PACKAGE_PREFIX}-python2-six" + 'git' +) +checkdepends=( + "${MINGW_PACKAGE_PREFIX}-python3-nose" + "${MINGW_PACKAGE_PREFIX}-python2-nose" + "${MINGW_PACKAGE_PREFIX}-python3-coverage" + "${MINGW_PACKAGE_PREFIX}-python2-coverage" +) +source=("git+https://github.com/matplotlib/cycler.git#tag=v$pkgver") +sha512sums=('SKIP') + +prepare() { + cp -a cycler{,-py2} +} + +build() { + cd $srcdir/cycler + python3 setup.py build + + cd $srcdir/cycler-py2 + python2 setup.py build +} + +check() { + cd $srcdir/cycler + python3 run_tests.py + + cd $srcdir/cycler-py2 + python2 run_tests.py +} + +package_python3-cycler() { + depends=( + "${MINGW_PACKAGE_PREFIX}-python3>=3.5.0" "${MINGW_PACKAGE_PREFIX}-python3<3.6.0" + "${MINGW_PACKAGE_PREFIX}-python3-six" + ) + + cd cycler + python3 setup.py install --root="${pkgdir}" --prefix=/$MINGW_PREFIX --optimize=1 + install -D -m644 LICENSE "${pkgdir}/$MINGW_PREFIX/share/licenses/python3-cycler/LICENSE" +} + +package_python2-cycler() { + depends=( + "${MINGW_PACKAGE_PREFIX}-python2>=2.7.0" "${MINGW_PACKAGE_PREFIX}-python2<2.8.0" + "${MINGW_PACKAGE_PREFIX}-python2-six" + ) + + cd cycler-py2 + python2 setup.py install --root="${pkgdir}" --prefix=/$MINGW_PREFIX --optimize=1 + install -D -m644 LICENSE "${pkgdir}/$MINGW_PREFIX/share/licenses/python2-cycler/LICENSE" +} + +package_mingw-w64-i686-python2-cycler() { + package_python2-cycler +} + +package_mingw-w64-i686-python3-cycler() { + package_python3-cycler +} + +package_mingw-w64-x86_64-python2-cycler() { + package_python2-cycler +} + +package_mingw-w64-x86_64-python3-cycler() { + package_python3-cycler +} diff --git a/mingw-w64-python-matplotlib/PKGBUILD b/mingw-w64-python-matplotlib/PKGBUILD index 0c84ae926c..67d7123de4 100644 --- a/mingw-w64-python-matplotlib/PKGBUILD +++ b/mingw-w64-python-matplotlib/PKGBUILD @@ -22,6 +22,8 @@ makedepends=( "${MINGW_PACKAGE_PREFIX}-python3-dateutil" "${MINGW_PACKAGE_PREFIX}-python2-pyparsing" "${MINGW_PACKAGE_PREFIX}-python3-pyparsing" + "${MINGW_PACKAGE_PREFIX}-python2-cycler" + "${MINGW_PACKAGE_PREFIX}-python3-cycler" "${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-libpng" #"${MINGW_PACKAGE_PREFIX}-qhull" From 8645724a0f50575b6539124cb28b024b1ea910c1 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 31 Dec 2015 04:37:14 +0000 Subject: [PATCH 2035/2060] python2: Use / in os.getcwd() when MSYSTEM is set --- ...sys-mingw-prefer-unix-sep-if-MSYSTEM.patch | 95 ++++++++++++++++--- mingw-w64-python2/PKGBUILD | 4 +- 2 files changed, 82 insertions(+), 17 deletions(-) diff --git a/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch b/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch index 8e1344ea9c..7d2d7e5671 100644 --- a/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch +++ b/mingw-w64-python2/0600-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch @@ -105,33 +105,98 @@ diff -Naur Python-2.7.9-orig/Lib/ntpath.py Python-2.7.9/Lib/ntpath.py # Return an absolute path. -diff -Naur Python-2.7.9-orig/Python/pythonrun.c Python-2.7.9/Python/pythonrun.c ---- Python-2.7.9-orig/Python/pythonrun.c 2014-12-10 18:59:59.000000000 +0300 -+++ Python-2.7.9/Python/pythonrun.c 2014-12-11 13:50:46.238600000 +0300 -@@ -667,13 +667,24 @@ +--- Python-2.7.10/Include/pythonrun.h.orig 2015-05-23 17:09:00.000000000 +0100 ++++ Python-2.7.10/Include/pythonrun.h 2015-12-31 03:30:18.917684800 +0000 +@@ -104,6 +104,7 @@ + PyAPI_FUNC(char *) Py_GetPrefix(void); + PyAPI_FUNC(char *) Py_GetExecPrefix(void); + PyAPI_FUNC(char *) Py_GetPath(void); ++PyAPI_FUNC(void) Py_NormalizeSepsA(char *name); + + /* In their own files */ + PyAPI_FUNC(const char *) Py_GetVersion(void); +--- Python-2.7.10/Python/pythonrun.c.orig 2015-12-31 04:09:05.267647200 +0000 ++++ Python-2.7.10/Python/pythonrun.c 2015-12-31 04:06:39.381327400 +0000 +@@ -667,13 +667,67 @@ PyInterpreterState_Delete(interp); } -static char *progname = "python"; -+static char progname[PATH_MAX+1] = "python"; ++ static char progname[PATH_MAX+1] = "python"; ++ ++char ++Py_GetSepA(char *name) ++{ ++ char* msystem = (char*)2; /* So that non Windows use / as sep */ ++ static char sep = '\0'; ++#ifdef _WIN32 ++ /* https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247%28v=vs.85%29.aspx ++ * The "\\?\" prefix .. indicate that the path should be passed to the system with minimal ++ * modification, which means that you cannot use forward slashes to represent path separators ++ */ ++ if (name != NULL && memcmp(name, "\\\\?\\", sizeof("\\\\?\\") - sizeof(char)) == 0) ++ { ++ return '\\'; ++ } ++#endif ++ if (sep != '\0') ++ return sep; ++#if defined(__MINGW32__) ++ msystem = Py_GETENV("MSYSTEM"); ++#endif ++ if (msystem != NULL) ++ sep = '/'; ++ else ++ sep = '\\'; ++ return sep; ++} ++ ++static wchar_t ++Py_GetAltSepA(char *name) ++{ ++ char sep = Py_GetSepA(name); ++ if (sep == '/') ++ return '\\'; ++ return '/'; ++} void - Py_SetProgramName(char *pn) +-Py_SetProgramName(char *pn) ++Py_NormalizeSepsA(char *name) { - if (pn && *pn) +- if (pn && *pn) - progname = pn; -+ strncpy(progname, pn, PATH_MAX); -+ pn = &progname[0]; -+#ifdef __MINGW32__ -+ char* msystem = Py_GETENV("MSYSTEM"); -+ char altsep = msystem ? '\\' : '/'; -+ char sep = msystem ? '/' : '\\'; -+ char* seps = strchr(pn, altsep); ++ char sep = Py_GetSepA(name); ++ char altsep = Py_GetAltSepA(name); ++ char* seps; ++ if (strlen(name) > 1 && name[1] == ':') { ++ name[0] = toupper(name[0]); ++ } ++ seps = strchr(name, altsep); + while(seps) { + *seps = sep; + seps = strchr(seps, altsep); + } -+#endif ++} ++ ++ void ++ Py_SetProgramName(char *pn) ++ { ++ if (pn && *pn) ++ strncpy(progname, pn, PATH_MAX); ++ pn = &progname[0]; ++ Py_NormalizeSepsA(pn); } char * +--- Python-2.7.10/Modules/posixmodule.c.orig 2015-12-31 04:14:46.133487100 +0000 ++++ Python-2.7.10/Modules/posixmodule.c 2015-12-31 04:31:31.496990600 +0000 +@@ -2220,6 +2220,8 @@ + if (res == NULL) + return posix_error(); + ++ Py_NormalizeSepsA(tmpbuf); ++ + dynamic_return = PyString_FromString(tmpbuf); + free(tmpbuf); + diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index 66a6e50196..4e934a7066 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -5,7 +5,7 @@ _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7.10 -pkgrel=6 +pkgrel=7 _pybasever=${pkgver%.*} pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') @@ -407,7 +407,7 @@ sha1sums=('ee5a50c5562e7448f037d35fdedc18d95c748b9e' 'b2da571659276b3d7bf6d5988ee0716869aa4155' 'df8a5da8b88dbcbff2919ce5ae5027a654bcfb31' '3dadc13c916ef6447006e8a544ba5eafb5494fca' - '6c563f96640eeb0ff0d5c6f366e600c39eec4d95' + '23b5a26ca9757b83338526b801ec2d3f31c63b75' 'aa234ba54760de5820934322cb67b574bb1384c5' '681c4ebe82c5e63ea635e9d0dbf5c3fa37c71e64' 'd9720baf25659ede48353b0d47b7486339c0efb7' From 7bdeda5154401b443184d2ff87444ac36c69dbc1 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 31 Dec 2015 08:51:21 +0300 Subject: [PATCH 2036/2060] angleproject-git: Update to 2.1.r5408 --- mingw-w64-angleproject-git/PKGBUILD | 7 ++++--- ...leproject-include-import-library-and-use-def-file.patch | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/mingw-w64-angleproject-git/PKGBUILD b/mingw-w64-angleproject-git/PKGBUILD index 945ce97c8f..139de5f772 100644 --- a/mingw-w64-angleproject-git/PKGBUILD +++ b/mingw-w64-angleproject-git/PKGBUILD @@ -2,8 +2,9 @@ # Contributor: Ray Donnelly _realname=angleproject +pkgabse=mingw-w64-${_realname}-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -pkgver=2.1.r4611 +pkgver=2.1.r5408 pkgrel=1 pkgdesc='Angle project built from git source (mingw-w64)' arch=('any') @@ -23,7 +24,7 @@ source=("angleproject"::git+https://chromium.googlesource.com/angle/angle md5sums=('SKIP' '3caf19560f2b8cac70f4a27b23093775' '70615a5e327a53fd60cc4dec916842c0' - '3586b5bcf9f7d57d87a5c783fb9b44b3' + '2ca332d9c13bae82300d417595e1d48d' '232a2f50c3b55247f95fecfab1bec60e' 'f5519fd7fc7f654c0805fbd802a5722d') pkgver() { @@ -72,7 +73,7 @@ build() { _target="win64" fi - gyp -D OS=win --format make -D MSVS_VERSION="" -D TARGET=$_target --depth . -I build/common.gypi src/angle.gyp + gyp -D OS=win -D MSVS_VERSION="" -D TARGET=${_target} --format make --depth . -I build/common.gypi src/angle.gyp # Make sure the correct libraries are linked in #sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid'@ ../src/libGLESv2.target.mk diff --git a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch index 502ac1d112..95166f138d 100644 --- a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch +++ b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch @@ -19,9 +19,9 @@ } --- angleproject/src/libGLESv2.gypi.orig 2015-07-10 11:41:58.223787600 +0300 +++ angleproject/src/libGLESv2.gypi 2015-07-10 11:44:36.585949800 +0300 -@@ -783,7 +783,16 @@ - ], - }, +@@ -826,7 +826,16 @@ + { + 'msvs_enable_winphone' : '1', }], + ['TARGET=="win32"', { + 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a' ], From 0d81b348568ccc80b75544e2bc403548dbd3676f Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 31 Dec 2015 09:49:01 +0300 Subject: [PATCH 2037/2060] firebird2-git: Update to 2.5.6.26956.c3587aa --- mingw-w64-firebird2-git/PKGBUILD | 7 +- mingw-w64-firebird2-git/mingw-w64-2_5.patch | 277 +++++++++----------- 2 files changed, 131 insertions(+), 153 deletions(-) diff --git a/mingw-w64-firebird2-git/PKGBUILD b/mingw-w64-firebird2-git/PKGBUILD index 89d7d1f1bd..325860eeef 100644 --- a/mingw-w64-firebird2-git/PKGBUILD +++ b/mingw-w64-firebird2-git/PKGBUILD @@ -1,8 +1,9 @@ # Maintainer: Alexey Pavlov _realname='firebird' +pkgbase=mingw-w64-${_realname}2-git pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}2-git" -pkgver=2.5.5.26913.d262412 +pkgver=2.5.6.26956.c3587aa pkgrel=1 pkgdesc="Cross-platform relational database offering many ANSI SQL standard features - version 2.x (mingw-w64)" url="http://www.firebirdsql.org/" @@ -23,10 +24,10 @@ makedepends=(#"${MINGW_PACKAGE_PREFIX}-btyacc" # Maybe add check in firebird pre "git" ) options=('!debug' 'strip') -source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git#branch=branch_2_5" +source=("${_realname}"::"git+https://github.com/Alexpux/firebird-git-svn.git#branch=B2_5" mingw-w64-2_5.patch) sha256sums=('SKIP' - '5b220d77ba9488d3589d31cd98f08709e81a360cf7f36f2fa45d9362ae0b7fa3') + 'dc930c9a5eb1dbf0dc797a0812a5292e081d7a6f7163c6fe88143ad5eba09958') pkgver() { diff --git a/mingw-w64-firebird2-git/mingw-w64-2_5.patch b/mingw-w64-firebird2-git/mingw-w64-2_5.patch index 7acca0bf98..884fccbe2b 100644 --- a/mingw-w64-firebird2-git/mingw-w64-2_5.patch +++ b/mingw-w64-firebird2-git/mingw-w64-2_5.patch @@ -1,4 +1,4 @@ -From 040e7991a66b7a116c2b2aec3845070feae9b1d6 Mon Sep 17 00:00:00 2001 +From f241a31647a6c9830d1c2fdb1b1cc9f399e8dc27 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 07:39:37 +0300 Subject: [PATCH] Remove hardcoded march to allow 64-bit builds. @@ -23,9 +23,9 @@ index fd36abe..04e0978 100644 PLATFORM_PATH=os/win32 -- -2.4.3 +2.6.3 -From 388764fb68898fe4f2d2c2032eb20dd537221b32 Mon Sep 17 00:00:00 2001 +From 9edc5599f7c6d630e65540392bf34311bbad7c99 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 06:18:02 +0300 Subject: [PATCH] Always use Win32 threads for mingw. @@ -48,9 +48,9 @@ index ae54880..49e8b60 100644 // where _POSIX_THREADS is defined to "1" or not even defined at all! #define USE_POSIX_THREADS -- -2.4.3 +2.6.3 -From 25ab2a5c3452e500fb88929f8b31b4b15e9e37ad Mon Sep 17 00:00:00 2001 +From 0676da5e7a3e9bbd5ff46214d36d3c763a06ab7f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 08:56:28 +0300 Subject: [PATCH] Define AMD64 for 64-bit mingw. @@ -60,10 +60,10 @@ Subject: [PATCH] Define AMD64 for 64-bit mingw. 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/configure.in b/configure.in -index 86e89f1..d345348 100644 +index fe2cc11..21384bf 100644 --- a/configure.in +++ b/configure.in -@@ -463,7 +463,12 @@ dnl CPU_TYPE=ppc64 +@@ -464,7 +464,12 @@ dnl CPU_TYPE=ppc64 EDITLINE_FLG=N RAW_DEVICES_FLG=N SHRLIB_EXT=dll @@ -78,9 +78,9 @@ index 86e89f1..d345348 100644 *) -- -2.4.3 +2.6.3 -From eebccb1a6b54c304e71295b4e0681fb1bc06fc59 Mon Sep 17 00:00:00 2001 +From bdf4ce45440b424a6e4e5526e241003b143a37a8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 09:20:35 +0300 Subject: [PATCH] mingw-w64 have isinf @@ -103,9 +103,9 @@ index e0e36ac..363cad5 100644 { return (!_finite (x) && !isnan(x)); -- -2.4.3 +2.6.3 -From 74d9460e370d88aace248cb83a77c70c998c6d9b Mon Sep 17 00:00:00 2001 +From dbc6299ebbadce2d530bad00d7fbf87a5e0c641f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 09:57:27 +0300 Subject: [PATCH] Fix cast error. @@ -115,10 +115,10 @@ Subject: [PATCH] Fix cast error. 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/remote/inet.cpp b/src/remote/inet.cpp -index c3816a8..f05de04 100644 +index a92a5f6..b37cb9a 100644 --- a/src/remote/inet.cpp +++ b/src/remote/inet.cpp -@@ -1851,7 +1851,7 @@ static void wsaExitHandler(void*) +@@ -1874,7 +1874,7 @@ static void wsaExitHandler(void*) } @@ -127,7 +127,7 @@ index c3816a8..f05de04 100644 { /************************************** * -@@ -1908,7 +1908,7 @@ static int fork(SOCKET old_handle, USHORT flag) +@@ -1931,7 +1931,7 @@ static int fork(SOCKET old_handle, USHORT flag) THREAD_ENTRY_DECLARE forkThread(THREAD_ENTRY_PARAM arg) { @@ -137,9 +137,9 @@ index c3816a8..f05de04 100644 while (!INET_shutting_down) { -- -2.4.3 +2.6.3 -From ca424f7f14051b4bb2dcb6f2a78f62dec372ed47 Mon Sep 17 00:00:00 2001 +From 5ff56868027ac3d2a6ddfbeefff8520a021e3ca3 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 10:08:42 +0300 Subject: [PATCH] mingw-w64 don't need hack for SecPkgContext_AccessToken @@ -162,9 +162,9 @@ index d420041..15b859c 100644 struct SecPkgContext_AccessToken { -- -2.4.3 +2.6.3 -From ee27fb5a5b44aaa6c8cdf2e9bb98a8cafc85e51f Mon Sep 17 00:00:00 2001 +From a00e5b78c7effd9b2a8d2534db533bb45c8971d0 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 10:09:19 +0300 Subject: [PATCH] Use modern ICU libraries when link with system wide ICU. @@ -189,9 +189,9 @@ index 04e0978..7523670 100644 PROD_FLAGS=-O2 -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads DEV_FLAGS=-ggdb -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -- -2.4.3 +2.6.3 -From 091fa8c6af051c2b2c28cc3fe7151fdcfbada1a7 Mon Sep 17 00:00:00 2001 +From ad5a9d126c76ed9322e663e206f473478d69dedd Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 13:28:03 +0300 Subject: [PATCH] mingw-w64 don't have win98 support. @@ -214,57 +214,9 @@ index bbb9440..de6b2f8 100644 #define _WIN32_WINNT 0x0403 #endif -- -2.4.3 +2.6.3 -From 0d645a60d9428071de004b66a5b42da71be6b44c Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Wed, 19 Nov 2014 15:47:34 +0300 -Subject: [PATCH] Fix using function pointer. - ---- - src/common/classes/locks.cpp | 2 +- - src/common/classes/locks.h | 7 +++---- - 2 files changed, 4 insertions(+), 5 deletions(-) - -diff --git a/src/common/classes/locks.cpp b/src/common/classes/locks.cpp -index de6b2f8..321da36 100644 ---- a/src/common/classes/locks.cpp -+++ b/src/common/classes/locks.cpp -@@ -124,7 +124,7 @@ BOOL WINAPI TryEnterCriticalSection_Win9X(CRITICAL_SECTION* cs) - - // On Win 98 and Win ME TryEnterCriticalSection is defined, but not implemented - // So direct linking to it won't hurt and will signal our incompatibility with Win 95 --TryEnterCS::tTryEnterCriticalSection* TryEnterCS::m_funct = &TryEnterCriticalSection; -+TryEnterCS::tTryEnterCriticalSection TryEnterCS::m_funct = TryEnterCriticalSection; - - static TryEnterCS tryEnterCS; - -diff --git a/src/common/classes/locks.h b/src/common/classes/locks.h -index 75ba194..d2ddb7d 100644 ---- a/src/common/classes/locks.h -+++ b/src/common/classes/locks.h -@@ -60,14 +60,13 @@ public: - - static bool tryEnter(LPCRITICAL_SECTION lpCS) - { -- return ((*m_funct) (lpCS) == TRUE); -+ return ((m_funct) (lpCS) == TRUE); - } - - private: -- typedef WINBASEAPI BOOL WINAPI tTryEnterCriticalSection -- (LPCRITICAL_SECTION lpCriticalSection); -+ typedef BOOL WINAPI (*tTryEnterCriticalSection)(LPCRITICAL_SECTION lpCriticalSection); - -- static tTryEnterCriticalSection* m_funct; -+ static tTryEnterCriticalSection m_funct; - }; - - class Mutex --- -2.4.3 - -From fe9183946307439cf80717e0a5d73834ff82cde1 Mon Sep 17 00:00:00 2001 +From c54b1933df0f6fee916c98152693fef95c83cf96 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 18:54:37 +0300 Subject: [PATCH] Fix redefinition of matherr. @@ -291,9 +243,9 @@ index c5a620d..9017228 100644 #endif /* SOLARIS */ #endif //__ICC -- -2.4.3 +2.6.3 -From 1f2879b2cd476e9260c335951a21f0d5d9876618 Mon Sep 17 00:00:00 2001 +From ce4d15040e1cc19d7985ad64ed0a7929481c2fa9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 19 Nov 2014 21:44:53 +0300 Subject: [PATCH] Don't export gds__print_pool as it not part of API according @@ -304,7 +256,7 @@ Subject: [PATCH] Don't export gds__print_pool as it not part of API according 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jrd/gds.cpp b/src/jrd/gds.cpp -index e3949fc..0b6852f 100644 +index 44fdbf7..a4ccaa9 100644 --- a/src/jrd/gds.cpp +++ b/src/jrd/gds.cpp @@ -1226,7 +1226,7 @@ void API_ROUTINE gds__log(const TEXT* text, ...) @@ -317,11 +269,11 @@ index e3949fc..0b6852f 100644 /************************************** * -- -2.4.3 +2.6.3 -From 0bfbf421ab2e5dcfe9af435c88c86a114f38c94e Mon Sep 17 00:00:00 2001 +From 282fb09c5b1fc977bfc0c0a9e42d87858766e9e4 Mon Sep 17 00:00:00 2001 From: Alexpux -Date: Wed, 19 Nov 2014 22:06:27 +0300 +Date: Wed, 19 Nov 2014 21:44:53 +0300 Subject: [PATCH] mingw-w64 have fenv.h --- @@ -351,11 +303,11 @@ index 363cad5..93e48be 100644 { _clearfp(); // always call _clearfp() before setting control word -- -2.4.3 +2.6.3 -From 2451d9f71a68b84d3256d8e71b2feefc2508829e Mon Sep 17 00:00:00 2001 +From 7c9ee48c935efa10c1a620bcdb13ed4f5900876f Mon Sep 17 00:00:00 2001 From: Alexpux -Date: Fri, 21 Nov 2014 12:38:29 +0300 +Date: Fri, 21 Nov 2014 21:44:53 +0300 Subject: [PATCH] Fix cast error for 64-bit. --- @@ -376,11 +328,11 @@ index fd0f75c..a0bf167 100644 if (port) { service_connection(port); -- -2.4.3 +2.6.3 -From ae55d9f83c245655ad4cfbc2c7de79bcac5b3774 Mon Sep 17 00:00:00 2001 +From c56cf75240e65265940bb7b0a2ffc78f0592c278 Mon Sep 17 00:00:00 2001 From: Alexpux -Date: Fri, 21 Nov 2014 14:21:32 +0300 +Date: Fri, 21 Nov 2014 21:44:53 +0300 Subject: [PATCH] Fix source extension. --- @@ -401,9 +353,9 @@ index 7523670..ac1327c 100644 # Override link command for implicit stdc++ linking LIB_LINK=$(LD) -- -2.4.3 +2.6.3 -From 54226188d61f2edbbe8453b8f93e7c8a6288913e Mon Sep 17 00:00:00 2001 +From 119982fa94aad3986e32ada7dd88a6330b1f70e5 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 22 Nov 2014 12:03:41 +0300 Subject: [PATCH] Move extra mingw sources definitions for fbintl to @@ -441,9 +393,9 @@ index 57ecb34..8d1e4e4 100644 AllObjects = $(INTL_Objects) -- -2.4.3 +2.6.3 -From 96ce4d2f57a06a1643b5864cc74fb00928b237fd Mon Sep 17 00:00:00 2001 +From 9827aa65a71d442dd005199281762cd577c241a8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 22 Nov 2014 22:59:59 +0300 Subject: [PATCH] Add missing sources for utils building. @@ -543,9 +495,9 @@ index 0f1a09e..daee0d8 100644 FBTRACE_OTHER_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(FBTRACE_OTHER_Sources)))) -- -2.4.3 +2.6.3 -From 665da4221ab9a54a2d927f506956e8f1ee72bb00 Mon Sep 17 00:00:00 2001 +From 7fb111f4e8842524d8a40d011eda4a2e8256291a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 23 Nov 2014 00:13:24 +0300 Subject: [PATCH] smtp_server: Add win32 platform files. @@ -569,9 +521,9 @@ index d59b07a..ad471fd 100644 AllObjects = $(SERVER_Objects) -- -2.4.3 +2.6.3 -From 19ad463e1d0eb2fbe94a51fb7bd3644feb1bcc05 Mon Sep 17 00:00:00 2001 +From 772876926b45e7cbbd5906930bae731545a01fa9 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sun, 23 Nov 2014 13:27:02 +0300 Subject: [PATCH] Fix building net_server and mp_server with mingw @@ -612,9 +564,9 @@ index 1bc3872..f386021 100644 AllObjects = $(SERVER_Objects) -- -2.4.3 +2.6.3 -From a27a60606a72b99c9956b4188d1b31d38159fb9c Mon Sep 17 00:00:00 2001 +From c618ef79458e2f3aa13d51653a967d0df95ace5e Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 26 Nov 2014 09:27:40 +0300 Subject: [PATCH] For mingw place dll's into BIN and generate import libraries @@ -623,9 +575,9 @@ Subject: [PATCH] For mingw place dll's into BIN and generate import libraries --- builds/posix/make.defaults | 18 +- builds/posix/prefix.mingw | 38 ++- - builds/win32/defs/fbclient32.def | 707 +++++++++++++++++++++++++++++++++++++++ + builds/win32/defs/fbclient32.def | 703 +++++++++++++++++++++++++++++++++++++++ builds/win32/defs/fbclient64.def | 361 ++++++++++++++++++++ - 4 files changed, 1104 insertions(+), 20 deletions(-) + 4 files changed, 1100 insertions(+), 20 deletions(-) create mode 100644 builds/win32/defs/fbclient32.def create mode 100644 builds/win32/defs/fbclient64.def @@ -756,7 +708,7 @@ index ac1327c..8e514d8 100644 LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS) $(ICU_LIBS) diff --git a/builds/win32/defs/fbclient32.def b/builds/win32/defs/fbclient32.def new file mode 100644 -index 0000000..b14e89a +index 0000000..e867e65 --- /dev/null +++ b/builds/win32/defs/fbclient32.def @@ -0,0 +1,703 @@ @@ -1831,11 +1783,11 @@ index 0000000..ce3875c + KEYWORD_stringIsAToken @271 + KEYWORD_getTokens @272 -- -2.4.3 +2.6.3 -From 6d98c3bf146bb2f937166fd44a9a8c3045919f25 Mon Sep 17 00:00:00 2001 +From afcfff601bad46d04da2139f5f855062cb7000a0 Mon Sep 17 00:00:00 2001 From: Alexpux -Date: Wed, 26 Nov 2014 12:25:47 +0300 +Date: Wed, 26 Nov 2014 09:27:40 +0300 Subject: [PATCH] Don't install unix files for Windows platform --- @@ -1843,10 +1795,10 @@ Subject: [PATCH] Don't install unix files for Windows platform 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/configure.in b/configure.in -index d345348..346a94d 100644 +index 21384bf..10ad6a2 100644 --- a/configure.in +++ b/configure.in -@@ -1313,32 +1313,39 @@ MAKE_SRC_DIR=builds/posix +@@ -1314,32 +1314,39 @@ MAKE_SRC_DIR=builds/posix dnl common files for all posix hosts dnl TODO: fix "arch-specific/linux/" paths for common posix scripts with SVN @@ -1912,7 +1864,7 @@ index d345348..346a94d 100644 fi dnl: Platform Specific Files -@@ -1438,6 +1445,13 @@ case "$PLATFORM" in +@@ -1439,6 +1446,13 @@ case "$PLATFORM" in DARWIN) ;; @@ -1927,11 +1879,11 @@ index d345348..346a94d 100644 if test -f ${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX};then POSTFIX_FILE=gen/make.platform.postfix:${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX} -- -2.4.3 +2.6.3 -From a4ee44393c1773cf58914e06657b66842041237e Mon Sep 17 00:00:00 2001 +From fc0bb8741b23cf77250bad66013b302ecf094bd8 Mon Sep 17 00:00:00 2001 From: Alexpux -Date: Wed, 26 Nov 2014 16:15:47 +0300 +Date: Wed, 26 Nov 2014 09:27:40 +0300 Subject: [PATCH] Fix rules to use variables. --- @@ -2043,11 +1995,11 @@ index bc96ceb..2e60fd3 100755 #_____________________________________________________________________________ -- -2.4.3 +2.6.3 -From 5b6eb56e1b994c86a415c2fa3c9e20ce1aa7a127 Mon Sep 17 00:00:00 2001 +From f89bf5d222d9fe9c4e852b21f68f4f1f8697c538 Mon Sep 17 00:00:00 2001 From: Alexpux -Date: Sun, 30 Nov 2014 15:08:19 +0300 +Date: Sun, 30 Nov 2014 09:27:40 +0300 Subject: [PATCH] Auto detect WINDRES with autoconf. Fix building .rc files. @@ -2114,10 +2066,10 @@ index ff5c2a2..f881106 100644 .PHONY: FORCE diff --git a/configure.in b/configure.in -index 346a94d..35400d3 100644 +index 10ad6a2..1750996 100644 --- a/configure.in +++ b/configure.in -@@ -683,6 +683,16 @@ AC_LIBTOOL_DLOPEN +@@ -684,6 +684,16 @@ AC_LIBTOOL_DLOPEN AC_LIBTOOL_WIN32_DLL AC_PROG_MAKE_SET AC_PROG_LIBTOOL @@ -2135,11 +2087,11 @@ index 346a94d..35400d3 100644 dnl Check for system header files AC_HEADER_DIRENT -- -2.4.3 +2.6.3 -From ef49c8b8fe8373c9490a51e9341333039d5b037a Mon Sep 17 00:00:00 2001 +From 552b53f8e2eef814d2476369548cfb634239972c Mon Sep 17 00:00:00 2001 From: Alexpux -Date: Wed, 26 Nov 2014 16:23:09 +0300 +Date: Wed, 26 Nov 2014 09:27:40 +0300 Subject: [PATCH] Create symlinks of fbembed only if names are different --- @@ -2173,36 +2125,11 @@ index d919ba2..2e70ab9 100644 include $(ROOT)/gen/make.shared.targets -- -2.4.3 +2.6.3 -From ed78858f827e8ba9969e81580863012fa640a073 Mon Sep 17 00:00:00 2001 +From 2b8ee995b010c730317ba3c24e0b76fb373cc23a Mon Sep 17 00:00:00 2001 From: Alexpux -Date: Wed, 3 Dec 2014 14:23:31 +0300 -Subject: [PATCH] MSVC compatibility fix. - ---- - src/common/classes/locks.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/common/classes/locks.h b/src/common/classes/locks.h -index d2ddb7d..3586592 100644 ---- a/src/common/classes/locks.h -+++ b/src/common/classes/locks.h -@@ -64,7 +64,7 @@ public: - } - - private: -- typedef BOOL WINAPI (*tTryEnterCriticalSection)(LPCRITICAL_SECTION lpCriticalSection); -+ typedef BOOL (WINAPI *tTryEnterCriticalSection)(LPCRITICAL_SECTION lpCriticalSection); - - static tTryEnterCriticalSection m_funct; - }; --- -2.4.3 - -From 8e36ccb8876d2118b0b5d3409c28b39f35725523 Mon Sep 17 00:00:00 2001 -From: Alexpux -Date: Tue, 23 Jun 2015 11:57:07 +0300 +Date: Sun, 23 Nov 2014 09:27:40 +0300 Subject: [PATCH] mod_loader: mingw always link to msvcrt.dll --- @@ -2234,11 +2161,11 @@ index 76ceeca..51694ba 100644 #elif _MSC_VER == 1500 "msvcr90.dll", -- -2.4.3 +2.6.3 -From 088f6afada0199d180859da6de65546dccf15a70 Mon Sep 17 00:00:00 2001 +From 0ea44058670d4b02816b44698bcaaceeecf1a554 Mon Sep 17 00:00:00 2001 From: Alexpux -Date: Tue, 23 Jun 2015 11:59:24 +0300 +Date: Sun, 23 Nov 2014 09:27:40 +0300 Subject: [PATCH] Relocate paths for unix-like files layout. --- @@ -2918,7 +2845,7 @@ index 34c7c5c..5991363 100644 fb_assert(FB_NELEM(configDir) == FB_DIR_LAST); diff --git a/src/jrd/gds.cpp b/src/jrd/gds.cpp -index 0b6852f..29d6cda 100644 +index a4ccaa9..a802e8c 100644 --- a/src/jrd/gds.cpp +++ b/src/jrd/gds.cpp @@ -56,6 +56,7 @@ @@ -2929,7 +2856,7 @@ index 0b6852f..29d6cda 100644 #include "../common/utils_proto.h" #ifdef HAVE_UNISTD_H -@@ -3596,13 +3597,13 @@ public: +@@ -3604,13 +3605,13 @@ public: { prefix = Config::getRootDirectory(); if (prefix.isEmpty() && !GetProgramFilesDir(prefix)) @@ -2945,7 +2872,7 @@ index 0b6852f..29d6cda 100644 } prefix.copyTo(fb_prefix_val, sizeof(fb_prefix_val)); fb_prefix = fb_prefix_val; -@@ -3685,7 +3686,7 @@ public: +@@ -3693,7 +3694,7 @@ public: Firebird::PathName msgPrefix; if (!fb_utils::readenv(FB_MSG_ENV, msgPrefix)) { @@ -3009,10 +2936,11 @@ index 6e22f15..48186bc 100644 class Win32DirItr : public PathUtils::dir_iterator -- -2.4.3 -From 0982205145962152e3b964aa63559c435bddb6f1 Mon Sep 17 00:00:00 2001 +2.6.3 + +From 5f5d09df508bb5697111d257fc8a032e6650ef47 Mon Sep 17 00:00:00 2001 From: Alexpux -Date: Sat, 11 Jul 2015 16:57:36 +0300 +Date: Tue, 11 Nov 2014 09:27:40 +0300 Subject: [PATCH] Fix building gstat --- @@ -3033,5 +2961,54 @@ index 76a10c5..71e6cf5 100644 #include "../jrd/msg_encode.h" #include "../jrd/gdsassert.h" -- -2.4.5 +2.6.3 + +From d51de336a30cf7ebed7244431f50e73daf292e91 Mon Sep 17 00:00:00 2001 +From: Alexpux +Date: Sun, 22 Nov 2015 17:09:05 +0300 +Subject: [PATCH] Fix using function pointer. + +--- + src/common/classes/locks.cpp | 3 ++- + src/common/classes/locks.h | 7 +++---- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/common/classes/locks.cpp b/src/common/classes/locks.cpp +index de6b2f8..aaf7f86 100644 +--- a/src/common/classes/locks.cpp ++++ b/src/common/classes/locks.cpp +@@ -124,7 +124,8 @@ BOOL WINAPI TryEnterCriticalSection_Win9X(CRITICAL_SECTION* cs) + + // On Win 98 and Win ME TryEnterCriticalSection is defined, but not implemented + // So direct linking to it won't hurt and will signal our incompatibility with Win 95 +-TryEnterCS::tTryEnterCriticalSection* TryEnterCS::m_funct = &TryEnterCriticalSection; ++TryEnterCS::tTryEnterCriticalSection TryEnterCS::m_funct = ++ reinterpret_cast(TryEnterCriticalSection); + + static TryEnterCS tryEnterCS; + +diff --git a/src/common/classes/locks.h b/src/common/classes/locks.h +index 75ba194..3586592 100644 +--- a/src/common/classes/locks.h ++++ b/src/common/classes/locks.h +@@ -60,14 +60,13 @@ public: + + static bool tryEnter(LPCRITICAL_SECTION lpCS) + { +- return ((*m_funct) (lpCS) == TRUE); ++ return ((m_funct) (lpCS) == TRUE); + } + + private: +- typedef WINBASEAPI BOOL WINAPI tTryEnterCriticalSection +- (LPCRITICAL_SECTION lpCriticalSection); ++ typedef BOOL (WINAPI *tTryEnterCriticalSection)(LPCRITICAL_SECTION lpCriticalSection); + +- static tTryEnterCriticalSection* m_funct; ++ static tTryEnterCriticalSection m_funct; + }; + + class Mutex +-- +2.6.3 From 25ec033c9a8fef56c0efb1eb4314059d09062b3a Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 31 Dec 2015 10:05:39 +0300 Subject: [PATCH 2038/2060] matplotlib: Fix dependencies. Rebuild --- mingw-w64-python-matplotlib/PKGBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mingw-w64-python-matplotlib/PKGBUILD b/mingw-w64-python-matplotlib/PKGBUILD index 67d7123de4..8ac5351e5b 100644 --- a/mingw-w64-python-matplotlib/PKGBUILD +++ b/mingw-w64-python-matplotlib/PKGBUILD @@ -4,7 +4,7 @@ _realname=matplotlib pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") pkgver=1.5.0 -pkgrel=1 +pkgrel=2 pkgdesc="A python plotting library, making publication quality plots (mingw-w64)" arch=('any') url='http://matplotlib.org' @@ -76,6 +76,7 @@ package_python3-matplotlib() { "${MINGW_PACKAGE_PREFIX}-python3-pytz" "${MINGW_PACKAGE_PREFIX}-python3-numpy" "${MINGW_PACKAGE_PREFIX}-python3-cairo" + "${MINGW_PACKAGE_PREFIX}-python3-cycler" "${MINGW_PACKAGE_PREFIX}-python3-pyqt5" "${MINGW_PACKAGE_PREFIX}-python3-dateutil" "${MINGW_PACKAGE_PREFIX}-python3-pyparsing" @@ -97,6 +98,7 @@ package_python2-matplotlib() { "${MINGW_PACKAGE_PREFIX}-python2-pytz" "${MINGW_PACKAGE_PREFIX}-python2-numpy" "${MINGW_PACKAGE_PREFIX}-python2-cairo" + "${MINGW_PACKAGE_PREFIX}-python2-cycler" "${MINGW_PACKAGE_PREFIX}-python2-pyqt5" "${MINGW_PACKAGE_PREFIX}-python2-dateutil" "${MINGW_PACKAGE_PREFIX}-python2-pyparsing" From 3697c0bb883b9776b1e8dc54c1001bd5d114c348 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 31 Dec 2015 15:59:10 +0300 Subject: [PATCH 2039/2060] qt5: WIP on getting opengl=dynamic work. --- ...-qt-5.3.0-use-external-angle-library.patch | 20 +- ...kit-dont-use-bundled-angle-libraries.patch | 26 +- ...-fix-compatibility-with-latest-angle.patch | 147 ++++ ...ild-breakage-after-svn-commit-136242.patch | 21 + ...20-qt5-qtwebkit-use-correct-icu-libs.patch | 11 + ...0121-qt5-qtwebkit-dont-depend-on-icu.patch | 267 ++++++ .../0122-revert-qt4-unicode-removal.patch | 808 ++++++++++++++++++ mingw-w64-qt5/0123-webkit-commit-151422.patch | 46 + mingw-w64-qt5/PKGBUILD | 73 +- 9 files changed, 1378 insertions(+), 41 deletions(-) create mode 100644 mingw-w64-qt5/0022-qt5-qtwebkit-fix-compatibility-with-latest-angle.patch create mode 100644 mingw-w64-qt5/0051-qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch create mode 100644 mingw-w64-qt5/0120-qt5-qtwebkit-use-correct-icu-libs.patch create mode 100644 mingw-w64-qt5/0121-qt5-qtwebkit-dont-depend-on-icu.patch create mode 100644 mingw-w64-qt5/0122-revert-qt4-unicode-removal.patch create mode 100644 mingw-w64-qt5/0123-webkit-commit-151422.patch diff --git a/mingw-w64-qt5/0020-qt-5.3.0-use-external-angle-library.patch b/mingw-w64-qt5/0020-qt-5.3.0-use-external-angle-library.patch index b79ef19d22..17a3ee6973 100644 --- a/mingw-w64-qt5/0020-qt-5.3.0-use-external-angle-library.patch +++ b/mingw-w64-qt5/0020-qt-5.3.0-use-external-angle-library.patch @@ -14,9 +14,9 @@ _qt5_Gui_check_file_exists(${Qt5Gui_EGL_INCLUDE_DIRS}) --- a/qtbase/src/gui/gui.pro 2014-12-05 09:24:35.000000000 -0700 +++ b/qtbase/src/gui/gui.pro 2014-12-11 10:22:37.644366784 -0700 -@@ -15,12 +15,6 @@ - iconengines \ - imageformats +@@ -17,12 +17,6 @@ + imageformats \ + egldeviceintegrations -# This is here only because the platform plugin is no module, obviously. -win32:contains(QT_CONFIG, angle)|contains(QT_CONFIG, dynamicgl) { @@ -80,7 +80,7 @@ --- a/qtbase/src/plugins/platforms/windows/windows.pri 2014-12-05 09:24:37.000000000 -0700 +++ b/qtbase/src/plugins/platforms/windows/windows.pri 2014-12-11 10:13:45.228261276 -0700 @@ -3,6 +3,7 @@ - !wince*:LIBS *= -luser32 -lwinspool -limm32 -lwinmm -loleaut32 + !wince: LIBS *= -luser32 -lwinspool -limm32 -lwinmm -loleaut32 contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles2):!contains(QT_CONFIG, dynamicgl): LIBS *= -lopengl32 +contains(QT_CONFIG, angle):LIBS += -lGLESv2 -lEGL @@ -89,7 +89,7 @@ # For the dialog helpers: --- a/qtbase/src/src.pro 2014-12-05 09:24:31.000000000 -0700 +++ b/qtbase/src/src.pro 2014-12-11 10:06:14.882845813 -0700 -@@ -140,10 +140,6 @@ +@@ -155,10 +155,6 @@ SUBDIRS += src_3rdparty_harfbuzzng src_gui.depends += src_3rdparty_harfbuzzng } @@ -97,15 +97,15 @@ - SUBDIRS += src_angle - src_gui.depends += src_angle - } - SUBDIRS += src_gui src_platformsupport src_platformheaders - contains(QT_CONFIG, opengl(es2)?):SUBDIRS += src_openglextensions - src_plugins.depends += src_gui src_platformsupport src_platformheaders + contains(QT_CONFIG, freetype) { + SUBDIRS += src_3rdparty_freetype + src_platformsupport.depends += src_3rdparty_freetype --- a/qtbase/src/plugins/platforms/windows/qwindowseglcontext.cpp 2014-12-05 09:24:37.000000000 -0700 +++ b/qtbase/src/plugins/platforms/windows/qwindowseglcontext.cpp 2014-12-11 20:07:27.099190408 -0700 -@@ -40,7 +40,7 @@ +@@ -39,7 +39,7 @@ + #include #if defined(QT_OPENGL_ES_2_ANGLE) || defined(QT_OPENGL_DYNAMIC) - # define EGL_EGLEXT_PROTOTYPES -# include +# include #endif diff --git a/mingw-w64-qt5/0021-qt-5.3.0-qtwebkit-dont-use-bundled-angle-libraries.patch b/mingw-w64-qt5/0021-qt-5.3.0-qtwebkit-dont-use-bundled-angle-libraries.patch index feda0c7006..3b7466edd0 100644 --- a/mingw-w64-qt5/0021-qt-5.3.0-qtwebkit-dont-use-bundled-angle-libraries.patch +++ b/mingw-w64-qt5/0021-qt-5.3.0-qtwebkit-dont-use-bundled-angle-libraries.patch @@ -1,6 +1,6 @@ --- a/qtwebkit/WebKit.pro.orig 2013-01-04 01:50:18.373246956 +0100 +++ b/qtwebkit/WebKit.pro 2013-01-04 01:50:23.777286725 +0100 -@@ -18,11 +18,11 @@ +@@ -18,12 +18,6 @@ JavaScriptCore.makefile = Makefile.JavaScriptCore SUBDIRS += JavaScriptCore @@ -9,25 +9,21 @@ - ANGLE.makefile = Makefile.ANGLE - SUBDIRS += ANGLE -} -+#use?(3D_GRAPHICS) { -+# ANGLE.file = Source/ThirdParty/ANGLE/ANGLE.pro -+# ANGLE.makefile = Makefile.ANGLE -+# SUBDIRS += ANGLE -+#} - - WebCore.file = Source/WebCore/WebCore.pro - WebCore.makefile = Makefile.WebCore +- + use?(leveldb):!use?(system_leveldb) { + leveldb.file = Source/ThirdParty/leveldb/leveldb.pro + leveldb.makefile = Makefile.leveldb --- a/qtwebkit/Source/WebCore/Target.pri.orig 2013-01-04 01:58:25.145960916 +0100 +++ b/qtwebkit/Source/WebCore/Target.pri 2013-01-04 01:58:53.245166218 +0100 -@@ -4160,7 +4160,7 @@ +@@ -4194,7 +4194,7 @@ platform/graphics/texmap/coordinated/CoordinatedTile.cpp \ platform/graphics/texmap/coordinated/UpdateAtlas.cpp - INCLUDEPATH += $$PWD/platform/graphics/gpu + INCLUDEPATH += $$PWD/platform/graphics/gpu /mingw64/include/GLSLANG - contains(QT_CONFIG, opengl) | contains(QT_CONFIG, opengles2) { - !contains(QT_CONFIG, opengles2) { + contains(QT_CONFIG, opengl) { + contains(QT_CONFIG, opengles2) { --- a/qtwebkit/Tools/qmake/mkspecs/modules/angle.prf.orig 2013-01-04 02:25:16.357429590 +0100 +++ b/qtwebkit/Tools/qmake/mkspecs/modules/angle.prf 2013-01-04 02:25:29.383533741 +0100 @@ -4,6 +4,3 @@ @@ -46,7 +42,7 @@ -use?(3D_GRAPHICS): WEBKIT += angle +use?(3D_GRAPHICS) { + WEBKIT += angle -+# INCLUDEPATH += /mingw64/include/GLSLANG ++ INCLUDEPATH += /mingw64/include/GLSLANG +} have?(qtpositioning):enable?(GEOLOCATION) { @@ -60,7 +56,7 @@ -use?(3D_GRAPHICS): WEBKIT += angle +use?(3D_GRAPHICS) { + WEBKIT += angle -+# INCLUDEPATH += /mingw64/include/GLSLANG ++ INCLUDEPATH += /mingw64/include/GLSLANG +} use?(PLUGIN_BACKEND_XLIB) { @@ -92,7 +88,7 @@ CONFIG(debug, debug|release):contains(QT_CONFIG, angle) { LIBS += $$QMAKE_LIBS_OPENGL_ES2_DEBUG } else { -+# INCLUDEPATH += /mingw64/include/GLSLANG ++ INCLUDEPATH += /mingw64/include/GLSLANG LIBS += $$QMAKE_LIBS_OPENGL_ES2 } } else { diff --git a/mingw-w64-qt5/0022-qt5-qtwebkit-fix-compatibility-with-latest-angle.patch b/mingw-w64-qt5/0022-qt5-qtwebkit-fix-compatibility-with-latest-angle.patch new file mode 100644 index 0000000000..4c622f0a6a --- /dev/null +++ b/mingw-w64-qt5/0022-qt5-qtwebkit-fix-compatibility-with-latest-angle.patch @@ -0,0 +1,147 @@ +--- a/qtwebkit/Source/WebCore/platform/graphics/ANGLEWebKitBridge.h.orig 2014-12-29 22:48:34.532357391 +0100 ++++ b/qtwebkit/Source/WebCore/platform/graphics/ANGLEWebKitBridge.h 2014-12-29 23:01:26.254334924 +0100 +@@ -34,14 +34,19 @@ + #elif PLATFORM(WIN) + #include "GLSLANG/ShaderLang.h" + #else ++#ifdef __MINGW32__ ++#include "GLSLANG/ShaderLang.h" ++#include "angle_gl.h" ++#else + #include "ShaderLang.h" ++#endif + #endif + + namespace WebCore { + + enum ANGLEShaderType { +- SHADER_TYPE_VERTEX = SH_VERTEX_SHADER, +- SHADER_TYPE_FRAGMENT = SH_FRAGMENT_SHADER, ++ SHADER_TYPE_VERTEX = GL_VERTEX_SHADER, ++ SHADER_TYPE_FRAGMENT = GL_FRAGMENT_SHADER, + }; + + enum ANGLEShaderSymbolType { +@@ -53,17 +54,17 @@ + ANGLEShaderSymbolType symbolType; + String name; + String mappedName; +- ShDataType dataType; ++ sh::GLenum dataType; + int size; + bool isArray; + + bool isSampler() const + { + return symbolType == SHADER_SYMBOL_TYPE_UNIFORM +- && (dataType == SH_SAMPLER_2D +- || dataType == SH_SAMPLER_CUBE +- || dataType == SH_SAMPLER_2D_RECT_ARB +- || dataType == SH_SAMPLER_EXTERNAL_OES); ++ && (dataType == GL_SAMPLER_2D ++ || dataType == GL_SAMPLER_CUBE ++ || dataType == GL_SAMPLER_2D_RECT_ARB ++ || dataType == GL_SAMPLER_EXTERNAL_OES); + } + }; + +@@ -71,7 +71,7 @@ + class ANGLEWebKitBridge { + public: + +- ANGLEWebKitBridge(ShShaderOutput = SH_GLSL_OUTPUT, ShShaderSpec = SH_WEBGL_SPEC); ++ ANGLEWebKitBridge(ShShaderOutput = SH_GLSL_COMPATIBILITY_OUTPUT, ShShaderSpec = SH_WEBGL_SPEC); + ~ANGLEWebKitBridge(); + + ShBuiltInResources getResources() { return m_resources; } +--- a/qtwebkit/Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp.orig 2014-12-29 23:37:30.636783007 +0100 ++++ b/qtwebkit/Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp 2014-12-30 12:00:39.524299653 +0100 +@@ -42,7 +42,7 @@ + inline static ANGLEGetInfoType getValidationResultValue(const ShHandle compiler, ShShaderInfo shaderInfo) + { + ANGLEGetInfoType value = 0; +- ShGetInfo(compiler, shaderInfo, &value); ++ ShGetInfo(compiler, (ShShaderInfo) shaderInfo, &value); + return value; + } + +@@ -51,11 +51,11 @@ + ShShaderInfo symbolMaxNameLengthType; + + switch (symbolType) { +- case SH_ACTIVE_ATTRIBUTES: +- symbolMaxNameLengthType = SH_ACTIVE_ATTRIBUTE_MAX_LENGTH; ++ case GL_ACTIVE_ATTRIBUTES: ++ symbolMaxNameLengthType = (ShShaderInfo) GL_ACTIVE_ATTRIBUTE_MAX_LENGTH; + break; +- case SH_ACTIVE_UNIFORMS: +- symbolMaxNameLengthType = SH_ACTIVE_UNIFORM_MAX_LENGTH; ++ case GL_ACTIVE_UNIFORMS: ++ symbolMaxNameLengthType = (ShShaderInfo) GL_ACTIVE_UNIFORM_MAX_LENGTH; + break; + default: + ASSERT_NOT_REACHED(); +@@ -79,14 +79,16 @@ + for (ANGLEGetInfoType i = 0; i < numSymbols; ++i) { + ANGLEShaderSymbol symbol; + ANGLEGetInfoType nameLength = 0; ++ ShPrecisionType precision = SH_PRECISION_UNDEFINED; ++ int staticUse = 0; + switch (symbolType) { +- case SH_ACTIVE_ATTRIBUTES: ++ case GL_ACTIVE_ATTRIBUTES: + symbol.symbolType = SHADER_SYMBOL_TYPE_ATTRIBUTE; +- ShGetActiveAttrib(compiler, i, &nameLength, &symbol.size, &symbol.dataType, nameBuffer.data(), mappedNameBuffer.data()); ++ ShGetVariableInfo(compiler, SH_ACTIVE_ATTRIBUTES, i, &nameLength, &symbol.size, &symbol.dataType, &precision, &staticUse, nameBuffer.data(), mappedNameBuffer.data()); + break; +- case SH_ACTIVE_UNIFORMS: ++ case GL_ACTIVE_UNIFORMS: + symbol.symbolType = SHADER_SYMBOL_TYPE_UNIFORM; +- ShGetActiveUniform(compiler, i, &nameLength, &symbol.size, &symbol.dataType, nameBuffer.data(), mappedNameBuffer.data()); ++ ShGetVariableInfo(compiler, SH_ACTIVE_UNIFORMS, i, &nameLength, &symbol.size, &symbol.dataType, &precision, &staticUse, nameBuffer.data(), mappedNameBuffer.data()); + break; + default: + ASSERT_NOT_REACHED(); +@@ -170,8 +172,8 @@ + bool ANGLEWebKitBridge::compileShaderSource(const char* shaderSource, ANGLEShaderType shaderType, String& translatedShaderSource, String& shaderValidationLog, Vector& symbols, int extraCompileOptions) + { + if (!builtCompilers) { +- m_fragmentCompiler = ShConstructCompiler(SH_FRAGMENT_SHADER, m_shaderSpec, m_shaderOutput, &m_resources); +- m_vertexCompiler = ShConstructCompiler(SH_VERTEX_SHADER, m_shaderSpec, m_shaderOutput, &m_resources); ++ m_fragmentCompiler = ShConstructCompiler(GL_FRAGMENT_SHADER, m_shaderSpec, m_shaderOutput, &m_resources); ++ m_vertexCompiler = ShConstructCompiler(GL_VERTEX_SHADER, m_shaderSpec, m_shaderOutput, &m_resources); + if (!m_fragmentCompiler || !m_vertexCompiler) { + cleanupCompilers(); + return false; +@@ -189,7 +191,7 @@ + + const char* const shaderSourceStrings[] = { shaderSource }; + +- bool validateSuccess = ShCompile(compiler, shaderSourceStrings, 1, SH_OBJECT_CODE | SH_ATTRIBUTES_UNIFORMS | extraCompileOptions); ++ bool validateSuccess = ShCompile(compiler, shaderSourceStrings, 1, SH_OBJECT_CODE | SH_VARIABLES | extraCompileOptions); + if (!validateSuccess) { + int logSize = getValidationResultValue(compiler, SH_INFO_LOG_LENGTH); + if (logSize > 1) { +@@ -211,9 +213,9 @@ + translatedShaderSource = translationBuffer.get(); + } + +- if (!getSymbolInfo(compiler, SH_ACTIVE_ATTRIBUTES, symbols)) ++ if (!getSymbolInfo(compiler, (ShShaderInfo) GL_ACTIVE_ATTRIBUTES, symbols)) + return false; +- if (!getSymbolInfo(compiler, SH_ACTIVE_UNIFORMS, symbols)) ++ if (!getSymbolInfo(compiler, (ShShaderInfo) GL_ACTIVE_UNIFORMS, symbols)) + return false; + + return true; +--- a/qtwebkit/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp.orig 2014-12-30 12:11:43.450097601 +0100 ++++ b/qtwebkit/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp 2014-12-30 12:13:46.812361166 +0100 +@@ -172,7 +172,7 @@ + + String translatedShaderSource; + String shaderInfoLog; +- int extraCompileOptions = SH_MAP_LONG_VARIABLE_NAMES | SH_CLAMP_INDIRECT_ARRAY_BOUNDS; ++ int extraCompileOptions = SH_CLAMP_INDIRECT_ARRAY_BOUNDS; + + if (m_requiresBuiltInFunctionEmulation) + extraCompileOptions |= SH_EMULATE_BUILT_IN_FUNCTIONS; diff --git a/mingw-w64-qt5/0051-qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch b/mingw-w64-qt5/0051-qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch new file mode 100644 index 0000000000..75489c1cba --- /dev/null +++ b/mingw-w64-qt5/0051-qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch @@ -0,0 +1,21 @@ +--- a/qtwebkit/Source/WebKit/qt/Api/qwebkitglobal.h 2013-01-06 19:14:49.225087412 +0100 ++++ b/qtwebkit/Source/WebKit/qt/Api/qwebkitglobal.h 2013-01-06 19:15:02.498182976 +0100 +@@ -24,7 +24,6 @@ + #include + #include + +-#ifndef QT_STATIC + # if !defined(QT_BUILD_WEBKITWIDGETS_LIB) && defined(BUILDING_WEBKIT) + # define QWEBKIT_EXPORT Q_DECL_EXPORT + # else +@@ -37,10 +36,6 @@ + # else + # define QWEBKITWIDGETS_EXPORT Q_DECL_IMPORT + # endif +-#else +-# define QWEBKITWIDGETS_EXPORT +-# define QWEBKIT_EXPORT +-#endif + + QWEBKIT_EXPORT QString qWebKitVersion(); + QWEBKIT_EXPORT int qWebKitMajorVersion(); diff --git a/mingw-w64-qt5/0120-qt5-qtwebkit-use-correct-icu-libs.patch b/mingw-w64-qt5/0120-qt5-qtwebkit-use-correct-icu-libs.patch new file mode 100644 index 0000000000..1667177330 --- /dev/null +++ b/mingw-w64-qt5/0120-qt5-qtwebkit-use-correct-icu-libs.patch @@ -0,0 +1,11 @@ +--- a/qtwebkit/Source/WTF/WTF.pri 2015-03-23 19:21:26.013831236 +0100 ++++ b/qtwebkit/Source/WTF/WTF.pri 2015-03-23 19:22:46.668582720 +0100 +@@ -14,7 +14,7 @@ + INCLUDEPATH = $${ROOT_WEBKIT_DIR}/Source/WTF/icu $$INCLUDEPATH + LIBS += -licucore + } else:!use?(wchar_unicode): { +- win32 { ++ win32:!mingw { + CONFIG(static, static|shared) { + CONFIG(debug, debug|release) { + LIBS += -lsicuind -lsicuucd -lsicudtd diff --git a/mingw-w64-qt5/0121-qt5-qtwebkit-dont-depend-on-icu.patch b/mingw-w64-qt5/0121-qt5-qtwebkit-dont-depend-on-icu.patch new file mode 100644 index 0000000000..1c7a65e92f --- /dev/null +++ b/mingw-w64-qt5/0121-qt5-qtwebkit-dont-depend-on-icu.patch @@ -0,0 +1,267 @@ +--- a/qtwebkit/Tools/qmake/mkspecs/features/configure.prf.orig 2013-01-04 18:56:36.785550268 +0100 ++++ b/qtwebkit/Tools/qmake/mkspecs/features/configure.prf 2013-01-04 18:58:20.047373664 +0100 +@@ -120,9 +120,9 @@ + } + + # Sanity checks that would prevent us from building the whole project altogether. +- !android:!mac:!config_icu { +- addReasonForSkippingBuild("ICU is required.") +- } ++# !android:!mac:!config_icu { ++# addReasonForSkippingBuild("ICU is required.") ++# } + production_build:blackberry { + addReasonForSkippingBuild("Build not supported on BB10 yet.") + } +--- a/qtwebkit/Source/WTF/wtf/Platform.h.orig 2013-01-04 19:28:53.735934784 +0100 ++++ b/qtwebkit/Source/WTF/wtf/Platform.h 2013-01-04 19:28:13.856641177 +0100 +@@ -580,9 +580,13 @@ + # define WTF_USE_WCHAR_UNICODE 1 + #endif + ++#if OS(WINDOWS) && PLATFORM(QT) ++#define WTF_USE_QT4_UNICODE 1 ++#else + #if !USE(WCHAR_UNICODE) + #define WTF_USE_ICU_UNICODE 1 + #endif ++#endif + + #if PLATFORM(MAC) && !PLATFORM(IOS) + #if CPU(X86_64) +--- a/qtwebkit/Source/WebCore/platform/text/TextAllInOne.cpp.orig 2013-01-04 21:55:38.574265749 +0100 ++++ b/qtwebkit/Source/WebCore/platform/text/TextAllInOne.cpp 2013-01-04 20:51:54.156245445 +0100 +@@ -27,7 +27,11 @@ + + #include "TextBoundaries.cpp" + #include "TextBreakIterator.cpp" ++#if USE(QT4_UNICODE) ++#include "TextBreakIteratorQt.cpp" ++#else + #include "TextBreakIteratorICU.cpp" ++#endif + #include "TextCodec.cpp" + #include "TextCodecICU.cpp" + #include "TextCodecLatin1.cpp" +@@ -35,6 +39,10 @@ + #include "TextCodecUTF8.cpp" + #include "TextCodecUserDefined.cpp" + #include "TextEncoding.cpp" ++#if USE(QT4_UNICODE) ++#include "TextEncodingDetectorNone.cpp" ++#else + #include "TextEncodingDetectorICU.cpp" ++#endif + #include "TextEncodingRegistry.cpp" + #include "TextStream.cpp" +--- /dev/null 2012-12-26 00:21:52.105366365 +0100 ++++ b/qtwebkit/Source/WebCore/platform/text/TextBreakIteratorQt.cpp 2012-05-31 00:58:54.000000000 +0200 +@@ -0,0 +1,175 @@ ++/* ++ * Copyright (C) 2006 Lars Knoll ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public License ++ * along with this library; see the file COPYING.LIB. If not, write to ++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ * ++ */ ++ ++#include "config.h" ++#include "TextBreakIterator.h" ++ ++#include ++#include ++#include ++#include ++ ++// #define DEBUG_TEXT_ITERATORS ++#ifdef DEBUG_TEXT_ITERATORS ++#define DEBUG qDebug ++#else ++#define DEBUG if (1) {} else qDebug ++#endif ++ ++using namespace WTF; ++using namespace std; ++ ++namespace WebCore { ++ ++ class TextBreakIterator : public QTextBoundaryFinder { ++ public: ++ TextBreakIterator(QTextBoundaryFinder::BoundaryType type, const QString& string) ++ : QTextBoundaryFinder(type, string) ++ { } ++ TextBreakIterator() ++ : QTextBoundaryFinder() ++ { } ++ }; ++ ++ TextBreakIterator* setUpIterator(TextBreakIterator& iterator, QTextBoundaryFinder::BoundaryType type, const UChar* characters, int length) ++ { ++ if (!characters || !length) ++ return 0; ++ ++ if (iterator.isValid() && type == iterator.type() && iterator.string() == QString::fromRawData(reinterpret_cast(characters), length)) { ++ iterator.toStart(); ++ return &iterator; ++ } ++ ++ iterator = TextBreakIterator(type, QString(reinterpret_cast(characters), length)); ++ return &iterator; ++ } ++ ++ TextBreakIterator* wordBreakIterator(const UChar* string, int length) ++ { ++ static TextBreakIterator staticWordBreakIterator; ++ return setUpIterator(staticWordBreakIterator, QTextBoundaryFinder::Word, string, length); ++ } ++ ++ static TextBreakIterator* nonSharedCharacterBreakIterator; ++ ++ NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator(const UChar* buffer, int length) ++ { ++ m_iterator = nonSharedCharacterBreakIterator; ++ bool createdIterator = m_iterator && weakCompareAndSwap(reinterpret_cast(&nonSharedCharacterBreakIterator), m_iterator, 0); ++ if (!createdIterator) ++ m_iterator = new TextBreakIterator(); ++ if (!setUpIterator(*m_iterator, QTextBoundaryFinder::Grapheme, buffer, length)) { ++ delete m_iterator; ++ m_iterator = 0; ++ } ++ } ++ ++ NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator() ++ { ++ if (!weakCompareAndSwap(reinterpret_cast(&nonSharedCharacterBreakIterator), 0, m_iterator)) ++ delete m_iterator; ++ } ++ ++ TextBreakIterator* cursorMovementIterator(const UChar* string, int length) ++ { ++ static TextBreakIterator staticCursorMovementIterator; ++ return setUpIterator(staticCursorMovementIterator, QTextBoundaryFinder::Grapheme, string, length); ++ } ++ ++ static TextBreakIterator* staticLineBreakIterator; ++ ++ TextBreakIterator* acquireLineBreakIterator(const UChar* string, int length, const AtomicString&) ++ { ++ TextBreakIterator* lineBreakIterator = 0; ++ if (staticLineBreakIterator) { ++ setUpIterator(*staticLineBreakIterator, QTextBoundaryFinder::Line, string, length); ++ std::swap(staticLineBreakIterator, lineBreakIterator); ++ } ++ ++ if (!lineBreakIterator && string && length) ++ lineBreakIterator = new TextBreakIterator(QTextBoundaryFinder::Line, QString(reinterpret_cast(string), length)); ++ ++ return lineBreakIterator; ++ } ++ ++ void releaseLineBreakIterator(TextBreakIterator* iterator) ++ { ++ ASSERT(iterator); ++ ++ if (!staticLineBreakIterator) ++ staticLineBreakIterator = iterator; ++ else ++ delete iterator; ++ } ++ ++ TextBreakIterator* sentenceBreakIterator(const UChar* string, int length) ++ { ++ static TextBreakIterator staticSentenceBreakIterator; ++ return setUpIterator(staticSentenceBreakIterator, QTextBoundaryFinder::Sentence, string, length); ++ ++ } ++ ++ int textBreakFirst(TextBreakIterator* bi) ++ { ++ bi->toStart(); ++ DEBUG() << "textBreakFirst" << bi->position(); ++ return bi->position(); ++ } ++ ++ int textBreakNext(TextBreakIterator* bi) ++ { ++ int pos = bi->toNextBoundary(); ++ DEBUG() << "textBreakNext" << pos; ++ return pos; ++ } ++ ++ int textBreakPreceding(TextBreakIterator* bi, int pos) ++ { ++ bi->setPosition(pos); ++ int newpos = bi->toPreviousBoundary(); ++ DEBUG() << "textBreakPreceding" << pos << newpos; ++ return newpos; ++ } ++ ++ int textBreakFollowing(TextBreakIterator* bi, int pos) ++ { ++ bi->setPosition(pos); ++ int newpos = bi->toNextBoundary(); ++ DEBUG() << "textBreakFollowing" << pos << newpos; ++ return newpos; ++ } ++ ++ int textBreakCurrent(TextBreakIterator* bi) ++ { ++ return bi->position(); ++ } ++ ++ bool isTextBreak(TextBreakIterator*, int) ++ { ++ return true; ++ } ++ ++ bool isWordTextBreak(TextBreakIterator*) ++ { ++ return true; ++ } ++ ++} +--- a/qtwebkit/Source/WebCore/platform/ThreadGlobalData.cpp ++++ b/qtwebkit/Source/WebCore/platform/ThreadGlobalData.cpp +@@ -37,6 +37,8 @@ + + #if USE(ICU_UNICODE) + #include "TextCodecICU.h" ++#elif USE(QT4_UNICODE) ++#include "qt/TextCodecQt.h" + #endif + + #if PLATFORM(MAC) +--- a/qtwebkit/Source/WebCore/platform/text/TextBreakIteratorQt.cpp.orig 2013-12-04 00:08:41.281004481 +0100 ++++ b/qtwebkit/Source/WebCore/platform/text/TextBreakIteratorQt.cpp 2013-12-04 00:07:52.878531508 +0100 +@@ -96,7 +96,7 @@ + + static TextBreakIterator* staticLineBreakIterator; + +- TextBreakIterator* acquireLineBreakIterator(const UChar* string, int length, const AtomicString&) ++ TextBreakIterator* acquireLineBreakIterator(const UChar* string, int length, const AtomicString&, const UChar* priorContext, unsigned priorContextLength) + { + TextBreakIterator* lineBreakIterator = 0; + if (staticLineBreakIterator) { +--- a/qtwebkit/Tools/qmake/mkspecs/features/features.prf.orig 2014-12-29 23:30:47.372582743 +0100 ++++ b/qtwebkit/Tools/qmake/mkspecs/features/features.prf 2014-12-29 23:31:08.021797817 +0100 +@@ -142,7 +142,7 @@ + # IndexedDB requires leveldb + enable?(indexed_database): WEBKIT_CONFIG += use_leveldb + +- !config_icu:!mac: WEBKIT_CONFIG += use_wchar_unicode ++# !config_icu:!mac: WEBKIT_CONFIG += use_wchar_unicode + + export(WEBKIT_CONFIG) + export(CONFIGURE_WARNINGS) diff --git a/mingw-w64-qt5/0122-revert-qt4-unicode-removal.patch b/mingw-w64-qt5/0122-revert-qt4-unicode-removal.patch new file mode 100644 index 0000000000..fc45b6b56c --- /dev/null +++ b/mingw-w64-qt5/0122-revert-qt4-unicode-removal.patch @@ -0,0 +1,808 @@ +From 92b3cd3b0d01ca2f03e184cb16b75b31ab9a3ee6 Mon Sep 17 00:00:00 2001 +From: hausmann@webkit.org +Date: Wed, 30 Jan 2013 12:27:34 +0000 +Subject: [PATCH] [Qt] Remove QT4_UNICODE related code paths + https://bugs.webkit.org/show_bug.cgi?id=108316 + +Reviewed by Kenneth Rohde Christiansen. + +Source/WebCore: + +Get rid of QT4_UNICODE and any related code paths. The Qt port +requires Qt5 and ICU these days. This also allows for the removal +of TextCodecQt. + +* Target.pri: +* platform/KURL.cpp: +(WebCore::appendEncodedHostname): +* platform/graphics/SurrogatePairAwareTextIterator.cpp: +(WebCore::SurrogatePairAwareTextIterator::normalizeVoicingMarks): +* platform/text/TextEncoding.cpp: +(WebCore::TextEncoding::encode): +* platform/text/TextEncodingRegistry.cpp: +(WebCore::extendTextCodecMaps): +* platform/text/qt/TextCodecQt.cpp: Removed. +* platform/text/qt/TextCodecQt.h: Removed. + +Source/WebKit/blackberry: + +* WebCoreSupport/AboutDataUseFeatures.in: The feature macro has been removed. + +Source/WTF: + +Get rid of QT4_UNICODE and any related code paths. The Qt port +requires Qt5 and ICU these days. + +* WTF.gypi: +* WTF.pro: +* wtf/unicode/Unicode.h: +* wtf/unicode/qt4/UnicodeQt4.h: Removed. + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141255 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/WTF/ChangeLog | 15 + + Source/WTF/WTF.gypi | 1 - + Source/WTF/WTF.pro | 1 - + Source/WTF/wtf/unicode/Unicode.h | 4 +- + Source/WTF/wtf/unicode/qt4/UnicodeQt4.h | 377 -------------------- + Source/WebCore/ChangeLog | 23 ++ + Source/WebCore/Target.pri | 2 - + Source/WebCore/platform/KURL.cpp | 5 - + .../graphics/SurrogatePairAwareTextIterator.cpp | 5 - + Source/WebCore/platform/text/TextEncoding.cpp | 6 - + .../WebCore/platform/text/TextEncodingRegistry.cpp | 8 - + Source/WebCore/platform/text/qt/TextCodecQt.cpp | 160 --------- + Source/WebCore/platform/text/qt/TextCodecQt.h | 54 --- + Source/WebKit/blackberry/ChangeLog | 9 + + .../WebCoreSupport/AboutDataUseFeatures.in | 1 - + 15 files changed, 48 insertions(+), 623 deletions(-) + delete mode 100644 Source/WTF/wtf/unicode/qt4/UnicodeQt4.h + delete mode 100644 Source/WebCore/platform/text/qt/TextCodecQt.cpp + delete mode 100644 Source/WebCore/platform/text/qt/TextCodecQt.h + +diff --git a/Source/WTF/WTF.pro b/Source/WTF/WTF.pro +index c929c68..727d78b 100644 +--- a/Source/WTF/WTF.pro ++++ b/Source/WTF/WTF.pro +@@ -178,7 +178,6 @@ HEADERS += \ + unicode/CharacterNames.h \ + unicode/Collator.h \ + unicode/icu/UnicodeIcu.h \ +- unicode/qt4/UnicodeQt4.h \ + unicode/ScriptCodesFromICU.h \ + unicode/Unicode.h \ + unicode/UnicodeMacrosFromICU.h \ +diff --git a/Source/WTF/wtf/unicode/Unicode.h b/Source/WTF/wtf/unicode/Unicode.h +index 9260211..11fee6b 100644 +--- a/Source/WTF/wtf/unicode/Unicode.h ++++ b/Source/WTF/wtf/unicode/Unicode.h +@@ -30,8 +30,6 @@ + + #if USE(ICU_UNICODE) + #include +-#elif USE(QT4_UNICODE) +-#include "qt4/UnicodeQt4.h" + #elif USE(WCHAR_UNICODE) + #include + #else +diff --git a/Source/WTF/wtf/unicode/qt4/UnicodeQt4.h b/Source/WTF/wtf/unicode/qt4/UnicodeQt4.h +deleted file mode 100644 +index a2d1ad4..0000000 +--- a/Source/WTF/wtf/unicode/qt4/UnicodeQt4.h ++++ /dev/null +@@ -1,377 +0,0 @@ +-/* +- * Copyright (C) 2006 George Staikos +- * Copyright (C) 2006 Alexey Proskuryakov +- * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. +- * +- * This library is free software; you can redistribute it and/or +- * modify it under the terms of the GNU Library General Public +- * License as published by the Free Software Foundation; either +- * version 2 of the License, or (at your option) any later version. +- * +- * This library is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * Library General Public License for more details. +- * +- * You should have received a copy of the GNU Library General Public License +- * along with this library; see the file COPYING.LIB. If not, write to +- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +- * Boston, MA 02110-1301, USA. +- * +- */ +- +-#ifndef WTF_UNICODE_QT4_H +-#define WTF_UNICODE_QT4_H +- +-#include +-#include +- +-#include +-#include +- +-#include +- +-#include +-#if USE(ICU_UNICODE) +-#include +-#endif +- +-QT_BEGIN_NAMESPACE +-namespace QUnicodeTables { +- struct Properties { +- ushort category : 8; +- ushort line_break_class : 8; +- ushort direction : 8; +- ushort combiningClass :8; +- ushort joining : 2; +- signed short digitValue : 6; /* 5 needed */ +- ushort unicodeVersion : 4; +- ushort lowerCaseSpecial : 1; +- ushort upperCaseSpecial : 1; +- ushort titleCaseSpecial : 1; +- ushort caseFoldSpecial : 1; /* currently unused */ +- signed short mirrorDiff : 16; +- signed short lowerCaseDiff : 16; +- signed short upperCaseDiff : 16; +- signed short titleCaseDiff : 16; +- signed short caseFoldDiff : 16; +- }; +- Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4); +- Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2); +-} +-QT_END_NAMESPACE +- +-// ugly hack to make UChar compatible with JSChar in API/JSStringRef.h +-#if defined(Q_OS_WIN) || (COMPILER(RVCT) && !OS(LINUX)) +-typedef wchar_t UChar; +-#else +-typedef uint16_t UChar; +-#endif +- +-#if !USE(ICU_UNICODE) +-typedef uint32_t UChar32; +-#endif +- +-namespace WTF { +-namespace Unicode { +- +-enum Direction { +- LeftToRight = QChar::DirL, +- RightToLeft = QChar::DirR, +- EuropeanNumber = QChar::DirEN, +- EuropeanNumberSeparator = QChar::DirES, +- EuropeanNumberTerminator = QChar::DirET, +- ArabicNumber = QChar::DirAN, +- CommonNumberSeparator = QChar::DirCS, +- BlockSeparator = QChar::DirB, +- SegmentSeparator = QChar::DirS, +- WhiteSpaceNeutral = QChar::DirWS, +- OtherNeutral = QChar::DirON, +- LeftToRightEmbedding = QChar::DirLRE, +- LeftToRightOverride = QChar::DirLRO, +- RightToLeftArabic = QChar::DirAL, +- RightToLeftEmbedding = QChar::DirRLE, +- RightToLeftOverride = QChar::DirRLO, +- PopDirectionalFormat = QChar::DirPDF, +- NonSpacingMark = QChar::DirNSM, +- BoundaryNeutral = QChar::DirBN +-}; +- +-enum DecompositionType { +- DecompositionNone = QChar::NoDecomposition, +- DecompositionCanonical = QChar::Canonical, +- DecompositionCompat = QChar::Compat, +- DecompositionCircle = QChar::Circle, +- DecompositionFinal = QChar::Final, +- DecompositionFont = QChar::Font, +- DecompositionFraction = QChar::Fraction, +- DecompositionInitial = QChar::Initial, +- DecompositionIsolated = QChar::Isolated, +- DecompositionMedial = QChar::Medial, +- DecompositionNarrow = QChar::Narrow, +- DecompositionNoBreak = QChar::NoBreak, +- DecompositionSmall = QChar::Small, +- DecompositionSquare = QChar::Square, +- DecompositionSub = QChar::Sub, +- DecompositionSuper = QChar::Super, +- DecompositionVertical = QChar::Vertical, +- DecompositionWide = QChar::Wide +-}; +- +-enum CharCategory { +- NoCategory = 0, +- Mark_NonSpacing = U_MASK(QChar::Mark_NonSpacing), +- Mark_SpacingCombining = U_MASK(QChar::Mark_SpacingCombining), +- Mark_Enclosing = U_MASK(QChar::Mark_Enclosing), +- Number_DecimalDigit = U_MASK(QChar::Number_DecimalDigit), +- Number_Letter = U_MASK(QChar::Number_Letter), +- Number_Other = U_MASK(QChar::Number_Other), +- Separator_Space = U_MASK(QChar::Separator_Space), +- Separator_Line = U_MASK(QChar::Separator_Line), +- Separator_Paragraph = U_MASK(QChar::Separator_Paragraph), +- Other_Control = U_MASK(QChar::Other_Control), +- Other_Format = U_MASK(QChar::Other_Format), +- Other_Surrogate = U_MASK(QChar::Other_Surrogate), +- Other_PrivateUse = U_MASK(QChar::Other_PrivateUse), +- Other_NotAssigned = U_MASK(QChar::Other_NotAssigned), +- Letter_Uppercase = U_MASK(QChar::Letter_Uppercase), +- Letter_Lowercase = U_MASK(QChar::Letter_Lowercase), +- Letter_Titlecase = U_MASK(QChar::Letter_Titlecase), +- Letter_Modifier = U_MASK(QChar::Letter_Modifier), +- Letter_Other = U_MASK(QChar::Letter_Other), +- Punctuation_Connector = U_MASK(QChar::Punctuation_Connector), +- Punctuation_Dash = U_MASK(QChar::Punctuation_Dash), +- Punctuation_Open = U_MASK(QChar::Punctuation_Open), +- Punctuation_Close = U_MASK(QChar::Punctuation_Close), +- Punctuation_InitialQuote = U_MASK(QChar::Punctuation_InitialQuote), +- Punctuation_FinalQuote = U_MASK(QChar::Punctuation_FinalQuote), +- Punctuation_Other = U_MASK(QChar::Punctuation_Other), +- Symbol_Math = U_MASK(QChar::Symbol_Math), +- Symbol_Currency = U_MASK(QChar::Symbol_Currency), +- Symbol_Modifier = U_MASK(QChar::Symbol_Modifier), +- Symbol_Other = U_MASK(QChar::Symbol_Other) +-}; +- +- +-// FIXME: handle surrogates correctly in all methods +- +-inline UChar32 toLower(UChar32 ch) +-{ +- return QChar::toLower(uint32_t(ch)); +-} +- +-inline int toLower(UChar* result, int resultLength, const UChar* src, int srcLength, bool* error) +-{ +- const UChar *e = src + srcLength; +- const UChar *s = src; +- UChar *r = result; +- uint rindex = 0; +- +- // this avoids one out of bounds check in the loop +- if (s < e && QChar(*s).isLowSurrogate()) { +- if (r) +- r[rindex] = *s++; +- ++rindex; +- } +- +- int needed = 0; +- while (s < e && (rindex < uint(resultLength) || !r)) { +- uint c = *s; +- if (QChar(c).isLowSurrogate() && QChar(*(s - 1)).isHighSurrogate()) +- c = QChar::surrogateToUcs4(*(s - 1), c); +- const QUnicodeTables::Properties *prop = QUnicodeTables::properties(c); +- if (prop->lowerCaseSpecial) { +- QString qstring; +- if (c < 0x10000) { +- qstring += QChar(c); +- } else { +- qstring += QChar(*(s-1)); +- qstring += QChar(*s); +- } +- qstring = qstring.toLower(); +- for (int i = 0; i < qstring.length(); ++i) { +- if (rindex >= uint(resultLength)) { +- needed += qstring.length() - i; +- break; +- } +- if (r) +- r[rindex] = qstring.at(i).unicode(); +- ++rindex; +- } +- } else { +- if (r) +- r[rindex] = *s + prop->lowerCaseDiff; +- ++rindex; +- } +- ++s; +- } +- if (s < e) +- needed += e - s; +- *error = (needed != 0); +- if (rindex < uint(resultLength)) +- r[rindex] = 0; +- return rindex + needed; +-} +- +-inline UChar32 toUpper(UChar32 c) +-{ +- return QChar::toUpper(uint32_t(c)); +-} +- +-inline int toUpper(UChar* result, int resultLength, const UChar* src, int srcLength, bool* error) +-{ +- const UChar *e = src + srcLength; +- const UChar *s = src; +- UChar *r = result; +- int rindex = 0; +- +- // this avoids one out of bounds check in the loop +- if (s < e && QChar(*s).isLowSurrogate()) { +- if (r) +- r[rindex] = *s++; +- ++rindex; +- } +- +- int needed = 0; +- while (s < e && (rindex < resultLength || !r)) { +- uint c = *s; +- if (QChar(c).isLowSurrogate() && QChar(*(s - 1)).isHighSurrogate()) +- c = QChar::surrogateToUcs4(*(s - 1), c); +- const QUnicodeTables::Properties *prop = QUnicodeTables::properties(c); +- if (prop->upperCaseSpecial) { +- QString qstring; +- if (c < 0x10000) { +- qstring += QChar(c); +- } else { +- qstring += QChar(*(s-1)); +- qstring += QChar(*s); +- } +- qstring = qstring.toUpper(); +- for (int i = 0; i < qstring.length(); ++i) { +- if (rindex >= resultLength) { +- needed += qstring.length() - i; +- break; +- } +- if (r) +- r[rindex] = qstring.at(i).unicode(); +- ++rindex; +- } +- } else { +- if (r) +- r[rindex] = *s + prop->upperCaseDiff; +- ++rindex; +- } +- ++s; +- } +- if (s < e) +- needed += e - s; +- *error = (needed != 0); +- if (rindex < resultLength) +- r[rindex] = 0; +- return rindex + needed; +-} +- +-inline int toTitleCase(UChar32 c) +-{ +- return QChar::toTitleCase(uint32_t(c)); +-} +- +-inline UChar32 foldCase(UChar32 c) +-{ +- return QChar::toCaseFolded(uint32_t(c)); +-} +- +-inline int foldCase(UChar* result, int resultLength, const UChar* src, int srcLength, bool* error) +-{ +- // FIXME: handle special casing. Easiest with some low level API in Qt +- *error = false; +- if (resultLength < srcLength) { +- *error = true; +- return srcLength; +- } +- for (int i = 0; i < srcLength; ++i) +- result[i] = QChar::toCaseFolded(ushort(src[i])); +- return srcLength; +-} +- +-inline bool isArabicChar(UChar32 c) +-{ +- return c >= 0x0600 && c <= 0x06FF; +-} +- +-inline bool isPrintableChar(UChar32 c) +-{ +- const uint test = U_MASK(QChar::Other_Control) | +- U_MASK(QChar::Other_NotAssigned); +- return !(U_MASK(QChar::category(uint32_t(c))) & test); +-} +- +-inline bool isSeparatorSpace(UChar32 c) +-{ +- return QChar::category(uint32_t(c)) == QChar::Separator_Space; +-} +- +-inline bool isPunct(UChar32 c) +-{ +- const uint test = U_MASK(QChar::Punctuation_Connector) | +- U_MASK(QChar::Punctuation_Dash) | +- U_MASK(QChar::Punctuation_Open) | +- U_MASK(QChar::Punctuation_Close) | +- U_MASK(QChar::Punctuation_InitialQuote) | +- U_MASK(QChar::Punctuation_FinalQuote) | +- U_MASK(QChar::Punctuation_Other); +- return U_MASK(QChar::category(uint32_t(c))) & test; +-} +- +-inline bool isLower(UChar32 c) +-{ +- return QChar::category(uint32_t(c)) == QChar::Letter_Lowercase; +-} +- +-inline bool hasLineBreakingPropertyComplexContext(UChar32) +-{ +- // FIXME: Implement this to return whether the character has line breaking property SA (Complex Context). +- return false; +-} +- +-inline UChar32 mirroredChar(UChar32 c) +-{ +- return QChar::mirroredChar(uint32_t(c)); +-} +- +-inline uint8_t combiningClass(UChar32 c) +-{ +- return QChar::combiningClass(uint32_t(c)); +-} +- +-inline DecompositionType decompositionType(UChar32 c) +-{ +- return (DecompositionType)QChar::decompositionTag(c); +-} +- +-inline int umemcasecmp(const UChar* a, const UChar* b, int len) +-{ +- // handle surrogates correctly +- for (int i = 0; i < len; ++i) { +- uint c1 = QChar::toCaseFolded(ushort(a[i])); +- uint c2 = QChar::toCaseFolded(ushort(b[i])); +- if (c1 != c2) +- return c1 - c2; +- } +- return 0; +-} +- +-inline Direction direction(UChar32 c) +-{ +- return (Direction)QChar::direction(uint32_t(c)); +-} +- +-inline CharCategory category(UChar32 c) +-{ +- return (CharCategory) U_MASK(QChar::category(uint32_t(c))); +-} +- +-} // namespace Unicode +-} // namespace WTF +- +-#endif // WTF_UNICODE_QT4_H +diff --git a/Source/WebCore/Target.pri b/Source/WebCore/Target.pri +index 44f02b6..0e3cd5f 100644 +--- a/Source/WebCore/Target.pri ++++ b/Source/WebCore/Target.pri +@@ -2357,7 +2357,6 @@ HEADERS += \ + platform/text/DecodeEscapeSequences.h \ + platform/text/Hyphenation.h \ + platform/text/QuotedPrintable.h \ +- platform/text/qt/TextCodecQt.h \ + platform/text/RegularExpression.h \ + platform/text/SegmentedString.h \ + platform/text/TextBoundaries.h \ +@@ -2927,7 +2926,6 @@ SOURCES += \ + platform/qt/TemporaryLinkStubsQt.cpp \ + platform/text/qt/TextBoundariesQt.cpp \ + platform/text/qt/TextBreakIteratorInternalICUQt.cpp \ +- platform/text/qt/TextCodecQt.cpp \ + platform/qt/WidgetQt.cpp + + use?(LIBXML2) { +diff --git a/Source/WebCore/platform/KURL.cpp b/Source/WebCore/platform/KURL.cpp +index a1e0114..01a408c 100644 +--- a/Source/WebCore/platform/KURL.cpp ++++ b/Source/WebCore/platform/KURL.cpp +@@ -40,8 +40,6 @@ + + #if USE(ICU_UNICODE) + #include +-#elif USE(QT4_UNICODE) +-#include + #endif + + // FIXME: This file makes too much use of the + operator on String. +@@ -1498,9 +1496,6 @@ + hostnameBufferLength, UIDNA_ALLOW_UNASSIGNED, 0, &error); + if (error == U_ZERO_ERROR) + buffer.append(hostnameBuffer, numCharactersConverted); +-#elif USE(QT4_UNICODE) +- QByteArray result = QUrl::toAce(String(str, strLen)); +- buffer.append(result.constData(), result.length()); + #endif + } + +diff --git a/Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp b/Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp +index 11da4b9..e7eb43b 100644 +--- a/Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp ++++ b/Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp +@@ -90,11 +90,6 @@ UChar32 SurrogatePairAwareTextIterator::normalizeVoicingMarks() + int32_t resultLength = unorm_normalize(m_characters, 2, UNORM_NFC, UNORM_UNICODE_3_2, &normalizedCharacters[0], 2, &uStatus); + if (resultLength == 1 && !uStatus) + return normalizedCharacters[0]; +-#elif USE(QT4_UNICODE) +- QString tmp(reinterpret_cast(m_characters), 2); +- QString res = tmp.normalized(QString::NormalizationForm_C, QChar::Unicode_3_2); +- if (res.length() == 1) +- return res.at(0).unicode(); + #endif + } + +diff --git a/Source/WebCore/platform/text/TextEncoding.cpp b/Source/WebCore/platform/text/TextEncoding.cpp +index f28cd67..6c9a24d 100644 +--- a/Source/WebCore/platform/text/TextEncoding.cpp ++++ b/Source/WebCore/platform/text/TextEncoding.cpp +@@ -37,8 +37,6 @@ + + #if USE(ICU_UNICODE) + #include +-#elif USE(QT4_UNICODE) +-#include + #endif + + namespace WebCore { +@@ -103,10 +101,6 @@ + sourceLength = normalizedLength; + } + return newTextCodec(*this)->encode(source, sourceLength, handling); +-#elif USE(QT4_UNICODE) +- QString str(reinterpret_cast(characters), length); +- str = str.normalized(QString::NormalizationForm_C); +- return newTextCodec(*this)->encode(reinterpret_cast(str.utf16()), str.length(), handling); + #elif OS(WINDOWS) && USE(WCHAR_UNICODE) + // normalization will be done by Windows CE API + OwnPtr textCodec = newTextCodec(*this); +diff --git a/Source/WebCore/platform/text/TextEncodingRegistry.cpp b/Source/WebCore/platform/text/TextEncodingRegistry.cpp +index 2790227..1d12202 100644 +--- a/Source/WebCore/platform/text/TextEncodingRegistry.cpp ++++ b/Source/WebCore/platform/text/TextEncodingRegistry.cpp +@@ -42,9 +42,6 @@ + #if USE(ICU_UNICODE) + #include "TextCodecICU.h" + #endif +-#if USE(QT4_UNICODE) +-#include "qt/TextCodecQt.h" +-#endif + #if PLATFORM(MAC) + #include "TextCodecMac.h" + #endif +@@ -296,11 +293,6 @@ static void extendTextCodecMaps() + TextCodecICU::registerCodecs(addToTextCodecMap); + #endif + +-#if USE(QT4_UNICODE) +- TextCodecQt::registerEncodingNames(addToTextEncodingNameMap); +- TextCodecQt::registerCodecs(addToTextCodecMap); +-#endif +- + #if PLATFORM(MAC) + TextCodecMac::registerEncodingNames(addToTextEncodingNameMap); + TextCodecMac::registerCodecs(addToTextCodecMap); +diff --git a/Source/WebCore/platform/text/qt/TextCodecQt.cpp b/Source/WebCore/platform/text/qt/TextCodecQt.cpp +deleted file mode 100644 +index 6a36e1a..0000000 +--- a/Source/WebCore/platform/text/qt/TextCodecQt.cpp ++++ /dev/null +@@ -1,160 +0,0 @@ +-/* +- * Copyright (C) 2006 Lars Knoll +- * Copyright (C) 2008 Holger Hans Peter Freyther +- * +- * 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 and/or other materials provided with the distribution. +- * +- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY +- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR +- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- */ +- +-#include "config.h" +-#if USE(QT4_UNICODE) +-#include "TextCodecQt.h" +- +-#include +-#include +-#include +- +-namespace WebCore { +- +-static QSet *unique_names = 0; +- +-static const char *getAtomicName(const QByteArray &name) +-{ +- if (!unique_names) +- unique_names = new QSet; +- +- unique_names->insert(name); +- return unique_names->find(name)->constData(); +-} +- +-void TextCodecQt::registerEncodingNames(EncodingNameRegistrar registrar) +-{ +- QList mibs = QTextCodec::availableMibs(); +- +- for (int i = 0; i < mibs.size(); ++i) { +- QTextCodec *c = QTextCodec::codecForMib(mibs.at(i)); +- const char *name = getAtomicName(c->name()); +- registrar(name, name); +- QList aliases = c->aliases(); +- for (int i = 0; i < aliases.size(); ++i) { +- const char *a = getAtomicName(aliases.at(i)); +- registrar(a, name); +- } +- } +-} +- +-static PassOwnPtr newTextCodecQt(const TextEncoding& encoding, const void*) +-{ +- return adoptPtr(new TextCodecQt(encoding)); +-} +- +-void TextCodecQt::registerCodecs(TextCodecRegistrar registrar) +-{ +- QList mibs = QTextCodec::availableMibs(); +- +- for (int i = 0; i < mibs.size(); ++i) { +- QTextCodec *c = QTextCodec::codecForMib(mibs.at(i)); +- const char *name = getAtomicName(c->name()); +- registrar(name, newTextCodecQt, 0); +- } +-} +- +-TextCodecQt::TextCodecQt(const TextEncoding& encoding) +- : m_encoding(encoding) +-{ +- m_codec = QTextCodec::codecForName(m_encoding.name()); +-} +- +-TextCodecQt::~TextCodecQt() +-{ +-} +- +- +-String TextCodecQt::decode(const char* bytes, size_t length, bool flush, bool /*stopOnError*/, bool& sawError) +-{ +- // We chop input buffer to smaller buffers to avoid excessive memory consumption +- // when the input buffer is big. This helps reduce peak memory consumption in +- // mobile devices where system RAM is limited. +- static const int MaxInputChunkSize = 1024 * 1024; +- const char* buf = bytes; +- const char* end = buf + length; +- String unicode(""); // a non-null string is expected +- +- while (buf < end) { +- int size = end - buf; +- size = qMin(size, MaxInputChunkSize); +- QString decoded = m_codec->toUnicode(buf, size, &m_state); +- unicode.append(reinterpret_cast_ptr(decoded.unicode()), decoded.length()); +- buf += size; +- } +- +- sawError = m_state.invalidChars != 0; +- +- if (flush) { +- m_state.flags = QTextCodec::DefaultConversion; +- m_state.remainingChars = 0; +- m_state.invalidChars = 0; +- } +- +- return unicode; +-} +- +-CString TextCodecQt::encode(const UChar* characters, size_t length, UnencodableHandling handling) +-{ +- QTextCodec::ConverterState state; +- state.flags = QTextCodec::ConversionFlags(QTextCodec::ConvertInvalidToNull | QTextCodec::IgnoreHeader); +- +- if (!length) +- return ""; +- +- QByteArray ba = m_codec->fromUnicode(reinterpret_cast(characters), length, &state); +- +- // If some characters are unencodable, escape them as specified by handling +- // We append one valid encoded chunk to a QByteArray at a time. When we encounter an unencodable chunk we +- // escape it with getUnencodableReplacement, append it, then move to the next chunk. +- if (state.invalidChars) { +- state.invalidChars = 0; +- state.remainingChars = 0; +- int len = 0; +- ba.clear(); +- for (size_t pos = 0; pos < length; ++pos) { +- QByteArray tba = m_codec->fromUnicode(reinterpret_cast(characters), ++len, &state); +- if (state.remainingChars) +- continue; +- if (state.invalidChars) { +- UnencodableReplacementArray replacement; +- getUnencodableReplacement(characters[0], handling, replacement); +- tba.replace('\0', replacement); +- state.invalidChars = 0; +- } +- ba.append(tba); +- characters += len; +- len = 0; +- state.remainingChars = 0; +- } +- } +- +- return CString(ba.constData(), ba.length()); +-} +- +- +-} // namespace WebCore +-#endif +diff --git a/Source/WebCore/platform/text/qt/TextCodecQt.h b/Source/WebCore/platform/text/qt/TextCodecQt.h +deleted file mode 100644 +index f28f0bb..0000000 +--- a/Source/WebCore/platform/text/qt/TextCodecQt.h ++++ /dev/null +@@ -1,54 +0,0 @@ +-/* +- * Copyright (C) 2006 Lars Knoll +- * +- * 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 and/or other materials provided with the distribution. +- * +- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY +- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR +- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- */ +- +-#ifndef TextCodecQt_h +-#define TextCodecQt_h +- +-#include "TextCodec.h" +-#include "TextEncoding.h" +-#include +- +-namespace WebCore { +- +- class TextCodecQt : public TextCodec { +- public: +- static void registerEncodingNames(EncodingNameRegistrar); +- static void registerCodecs(TextCodecRegistrar); +- +- TextCodecQt(const TextEncoding&); +- virtual ~TextCodecQt(); +- +- virtual String decode(const char*, size_t length, bool flush, bool stopOnError, bool& sawError); +- virtual CString encode(const UChar*, size_t length, UnencodableHandling); +- +- private: +- TextEncoding m_encoding; +- QTextCodec *m_codec; +- QTextCodec::ConverterState m_state; +- }; +- +-} // namespace WebCore +- +-#endif // TextCodecICU_h +-- +1.7.1 + diff --git a/mingw-w64-qt5/0123-webkit-commit-151422.patch b/mingw-w64-qt5/0123-webkit-commit-151422.patch new file mode 100644 index 0000000000..5a9b5b8711 --- /dev/null +++ b/mingw-w64-qt5/0123-webkit-commit-151422.patch @@ -0,0 +1,46 @@ +Index: a/qtwebkit/Source/WebCore/rendering/RenderText.cpp +=================================================================== +--- a/qtwebkit/Source/WebCore/rendering/RenderText.cpp (revision 151327) ++++ b/qtwebkit/Source/WebCore/rendering/RenderText.cpp (revision 151422) +@@ -101,5 +101,5 @@ + + unsigned length = string->length(); +- const UChar* characters = string->characters(); ++ const StringImpl& stringImpl = *string->impl(); + + if (length >= numeric_limits::max()) +@@ -110,8 +110,8 @@ + for (unsigned i = 1; i < length + 1; i++) { + // Replace   with a real space since ICU no longer treats   as a word separator. +- if (characters[i - 1] == noBreakSpace) ++ if (stringImpl[i - 1] == noBreakSpace) + stringWithPrevious[i] = ' '; + else +- stringWithPrevious[i] = characters[i - 1]; ++ stringWithPrevious[i] = stringImpl[i - 1]; + } + +@@ -120,5 +120,6 @@ + return; + +- StringBuffer data(length); ++ StringBuilder result; ++ result.reserveCapacity(length); + + int32_t endOfWord; +@@ -126,10 +127,10 @@ + for (endOfWord = textBreakNext(boundary); endOfWord != TextBreakDone; startOfWord = endOfWord, endOfWord = textBreakNext(boundary)) { + if (startOfWord) // Ignore first char of previous string +- data[startOfWord - 1] = characters[startOfWord - 1] == noBreakSpace ? noBreakSpace : toTitleCase(stringWithPrevious[startOfWord]); ++ result.append(stringImpl[startOfWord - 1] == noBreakSpace ? noBreakSpace : toTitleCase(stringWithPrevious[startOfWord])); + for (int i = startOfWord + 1; i < endOfWord; i++) +- data[i - 1] = characters[i - 1]; +- } +- +- *string = String::adopt(data); ++ result.append(stringImpl[i - 1]); ++ } ++ ++ *string = result.toString(); + } + diff --git a/mingw-w64-qt5/PKGBUILD b/mingw-w64-qt5/PKGBUILD index 0ad5b6cece..30146c3b10 100644 --- a/mingw-w64-qt5/PKGBUILD +++ b/mingw-w64-qt5/PKGBUILD @@ -31,11 +31,13 @@ if [ "${_variant}" = "-static" ]; then _fastbuild="yes" # _ltcg="yes" _ltcg="no" + _use_icu=no else _namesuff= _freetype2="-system-freetype" _fastbuild="no" _ltcg="no" + _use_icu=yes fi # Thiago's patch doesn't contain the configure script changes @@ -46,8 +48,6 @@ if [ "${_ltcg}" = "yes" ]; then LTCG_LFLAGS="-flto-partition=1to1 -flto -ffat-lto-objects" fi -_realname=qt5${_namesuff} - # So that both configure shell script and configure.exe # are tested on MSYS2, we use both depending on variant if [ "${_variant}" = "-static" ]; then @@ -82,9 +82,11 @@ else fi #_opengl=angle -_opengl=desktop -#_opengl=dynamic +#_opengl=desktop +_opengl=dynamic _opengl_for_configure="${_opengl}" + +_realname=qt5${_namesuff} pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _ver_base=5.5.1 @@ -98,7 +100,7 @@ else fi pkgver=${_ver_base//-/} -pkgrel=3 +pkgrel=4 arch=('any') pkgdesc="A cross-platform application and UI framework (mingw-w64${_namesuff})" url='http://qt-project.org/' @@ -111,8 +113,6 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-fontconfig" \ "${MINGW_PACKAGE_PREFIX}-freetype" \ "${MINGW_PACKAGE_PREFIX}-harfbuzz" \ - "${MINGW_PACKAGE_PREFIX}-icu" \ - "${MINGW_PACKAGE_PREFIX}-icu-debug-libs" \ "${MINGW_PACKAGE_PREFIX}-jasper" \ "${MINGW_PACKAGE_PREFIX}-libjpeg" \ "${MINGW_PACKAGE_PREFIX}-libmng" \ @@ -126,6 +126,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-sqlite3" \ "${MINGW_PACKAGE_PREFIX}-xpm-nox" \ "${MINGW_PACKAGE_PREFIX}-zlib" ) + $([[ "$_opengl" != "desktop" ]] && echo \ + "${MINGW_PACKAGE_PREFIX}-angleproject-git" ) + $([[ "$_variant" == "-shared" && "$_use_icu" == "yes" ]] && echo \ + "${MINGW_PACKAGE_PREFIX}-icu" \ + "${MINGW_PACKAGE_PREFIX}-icu-debug-libs" ) ) optdepends=($([[ "$_variant" == "-shared" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-libmariadbclient" \ @@ -185,6 +190,7 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0020-qt-5.3.0-use-external-angle-library.patch 0021-qt-5.3.0-qtwebkit-dont-use-bundled-angle-libraries.patch 0022-qt-5.3.0-qtwebkit-angle-update-for-angleproject-76985f-and-51b4a0.patch + 0022-qt5-qtwebkit-fix-compatibility-with-latest-angle.patch 0023-qt-5.3.0-env-set-external-angle.patch 0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch 0025-qt-5.3.1-force-using-make-on-msys.patch @@ -213,7 +219,12 @@ source=(#http://download.qt-project.org/development_releases/qt/${pkgver%.*}/${_ 0047-qt-5.4.1-Emit-QMAKE_DEFAULT_LIBDIRS-and-INCDIRS-to-qconfig-pri.patch 0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch 0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch - 0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch) + 0050-qt-5.5.1-fix-the-trailing-backslash-in-DESTDIR-on-mingw-worka.patch + 0051-qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch + 0120-qt5-qtwebkit-use-correct-icu-libs.patch + 0121-qt5-qtwebkit-dont-depend-on-icu.patch + 0122-revert-qt4-unicode-removal.patch + 0123-webkit-commit-151422.patch) # Translates using cygpath according to the ${_make} being used # (so either mingw32-make or MSYS2 make can be used) @@ -275,18 +286,22 @@ prepare() { patch -p1 -i ${srcdir}/0016-qt-5.3.0-win32-g++-use-qpa-genericunixfontdatabase.patch patch -p1 -i ${srcdir}/0017-qt-5.3.0-fix-examples-building.patch - if [ "${_opengl}" = "angle" ]; then + if [ "${_opengl}" != "desktop" ]; then # Hacks to use external ANGLE libraries. # These patches needs more work - they're unfinished and break desktop OpenGL # patch -p1 -i ${srcdir}/0018-qt-5.3.0-add-angle-support.patch # patch -p1 -i ${srcdir}/0019-qt-5.3.0-qtwebkit-angle-build-fix.patch patch -p1 -i ${srcdir}/0020-qt-5.3.0-use-external-angle-library.patch patch -p1 -i ${srcdir}/0021-qt-5.3.0-qtwebkit-dont-use-bundled-angle-libraries.patch - patch -p1 -i ${srcdir}/0022-qt-5.3.0-qtwebkit-angle-update-for-angleproject-76985f-and-51b4a0.patch + #patch -p1 -i ${srcdir}/0022-qt-5.3.0-qtwebkit-angle-update-for-angleproject-76985f-and-51b4a0.patch + patch -p1 -i ${srcdir}/0022-qt5-qtwebkit-fix-compatibility-with-latest-angle.patch patch -p1 -i ${srcdir}/0023-qt-5.3.0-env-set-external-angle.patch if [ "${_configure}" = "./configure" ]; then _opengl_for_configure=yes fi + + # Make sure the bundled copy of the ANGLE libraries isn't used + rm -rf qtwebkit/Source/ThirdParty/ANGLE fi patch -p1 -i ${srcdir}/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch @@ -345,6 +360,19 @@ prepare() { pushd qtbase > /dev/null patch -p1 -i ${srcdir}/0049-qt-5.5.0-win32-g++-dont-define-QT_NO_SYSTEMSEMAPHORE-QT_NO_SHAREDMEMORY.patch popd > /dev/null + + patch -p1 -i ${srcdir}/0051-qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch + + # Skip using ICU + if [ "$_use_icu" == "no" ]; then + patch -p1 -i ${srcdir}/0120-qt5-qtwebkit-use-correct-icu-libs.patch + patch -p1 -i ${srcdir}/0121-qt5-qtwebkit-dont-depend-on-icu.patch + pushd qtwebkit > /dev/null + patch -p1 -R -i ${srcdir}/0122-revert-qt4-unicode-removal.patch + popd > /dev/null + patch -p1 -i ${srcdir}/0123-webkit-commit-151422.patch + + fi # See: https://bugreports.qt-project.org/browse/QTBUG-37902 # _ver_num=${_ver_base%%-*} @@ -414,7 +442,7 @@ build() { fi local -a _extra_incpaths=($(pkg_config_qt5 --cflags-only-I dbus-1 libxml-2.0 ${_freetype2_pkgconf})) - if [ "${_opengl}" = "angle" ]; then + if [ "${_opengl}" != "desktop" ]; then export EXTERNAL_ANGLE=1 _extra_incpaths+=("-I") _extra_incpaths+=("${MINGW_PREFIX}/include/GLSLANG") @@ -473,15 +501,19 @@ build() { _variant_config+=("-qt-libpng") _variant_config+=("-qt-libjpeg") _variant_config+=("-qt-harfbuzz") - _variant_config+=("-no-icu") else _variant_config+=("-shared") _variant_config+=("-openssl") - _variant_config+=("-icu") _variant_config+=("-fontconfig") _variant_config+=("-system-harfbuzz") fi + if [ "$_use_icu" == "yes" ]; then + _variant_config+=("-icu") + else + _variant_config+=("-no-icu") + fi + local -a _fastbuild_config if [ "${_fastbuild}" = "yes" ]; then _fastbuild_config+=("-nomake" "examples") @@ -659,9 +691,10 @@ md5sums=('c2a249e8795d45200d997d96860d0353' '23f6818466f6b6646c13549110376022' 'e65e3ed10e2dd98d5402321657c809c4' '9ee6524aa78b5e4fbb47f10dc3b267a4' - '68b3878c96f4be33b2803e5676fe3245' - 'd64536bcf72b63d15df106e2c9913154' + '3fb1f1952db35187c9a3f6d1dae6de95' + 'd2c9850612a7cc3be02f5ec652d2dac6' '05e73ac3ead09802111cc13d8e3e28c8' + 'eb9a805ed7bfaaf6573b5001bb5cae25' '09aaa20fe92aa3fb8eaa36f805503d7d' 'a73080c2a48ab52ec8888745daa28c99' '3b550bd6c58d09aa6729987ef16fed65' @@ -687,4 +720,12 @@ md5sums=('c2a249e8795d45200d997d96860d0353' '27e0f474f66f05f3911c71621b24636d' '51016015352313cdd749ae1ff3e14614' '9bc9c1177134d0f2fd782db3f394a318' - '857309396cfdf6bfff91fe86afb947c2') + '857309396cfdf6bfff91fe86afb947c2' + '54fe3fa20f28a546a60e8c0568ffb6d2' + 'cf3cb7b2c5a0088fbd34c94c4eccc6c9' + 'c899f62a5f6419ffebd937673863858d' + 'f9c0a01f91fbdde0b42dfe00ee60bcfd' + 'cc8f9702088ca4a7e14122eeab518f70' + '9dd3cae439b1f0279efe3175a5dc5267' + '4e374836f26853b4d82be0e87aa584a5' + '6b7e9657d8e0b085d09457e25a508046') From 85569e33c40b572dde427cbf51a1d75145a14c85 Mon Sep 17 00:00:00 2001 From: James Duley Date: Thu, 31 Dec 2015 15:12:19 +0000 Subject: [PATCH 2040/2060] mingw-w64-gdal: rebuild for poppler and webp --- mingw-w64-gdal/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gdal/PKGBUILD b/mingw-w64-gdal/PKGBUILD index 7f8d27e5fb..7fe51b9599 100644 --- a/mingw-w64-gdal/PKGBUILD +++ b/mingw-w64-gdal/PKGBUILD @@ -7,7 +7,7 @@ _realname=gdal pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="A translator library for raster geospatial data formats (mingw-w64)" arch=('any') url="http://www.gdal.org/" From 9c303a9ec44254eca204360c0b415cc88f37c550 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 31 Dec 2015 15:59:10 +0300 Subject: [PATCH 2041/2060] Update to lfcxml-1.2.1 and cego-2.28.1 --- mingw-w64-cego/PKGBUILD | 4 ++-- mingw-w64-lfcxml/PKGBUILD | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-cego/PKGBUILD b/mingw-w64-cego/PKGBUILD index e994d13b63..62d64b3530 100644 --- a/mingw-w64-cego/PKGBUILD +++ b/mingw-w64-cego/PKGBUILD @@ -3,7 +3,7 @@ _realname=cego pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.28.0 +pkgver=2.28.1 pkgrel=1 pkgdesc="Cego database system (mingw-w64)" arch=('any') @@ -15,7 +15,7 @@ source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") depends=("${MINGW_PACKAGE_PREFIX}-lfcbase") depends=("${MINGW_PACKAGE_PREFIX}-lfcxml") -sha256sums=("66b1a5259a518f3ed95ccbedf08380f02314ca3e12fab1b9feb36bd52a3d6f58") +sha256sums=("7e69361a3837af839b25918c223235203dca42a0eb78a6dbc58bd86278adbcc3") prepare() { cd $srcdir/${_realname}-${pkgver} diff --git a/mingw-w64-lfcxml/PKGBUILD b/mingw-w64-lfcxml/PKGBUILD index 8db1e6a332..024ef5e62a 100644 --- a/mingw-w64-lfcxml/PKGBUILD +++ b/mingw-w64-lfcxml/PKGBUILD @@ -1,9 +1,9 @@ -# Maintainer: Bjrn Lemke +# Maintainer: Bjoern Lemke _realname=lfcxml pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.2.0 +pkgver=1.2.1 pkgrel=1 pkgdesc="LFC C++ xml classes (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-lfcbase") validpgpkeys=('gpg_KEY') source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") -sha246sums=("578f73560ea074f64b359c0009bbd3779c81fde2853249d52abe61588ba41ff4") +sha256sums=("e71ff822639b91837a5c0100db7b1936330c73655ff5b6190b3d7e1f1bb85448") prepare() { cd $srcdir/${_realname}-${pkgver} From 48119eb17bdcfba2f4fcd9815ec7583d51be041a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 1 Jan 2016 13:48:13 +0000 Subject: [PATCH 2042/2060] gobject-introspection: Fixes for 1.46.0 (WIP) Part of an on-going investigation --- ...ort-Work-arount-MSYS-weirdness-where.patch | 74 +++++++++++++++ mingw-w64-gobject-introspection/PKGBUILD | 94 +++++++++++++++++-- 2 files changed, 158 insertions(+), 10 deletions(-) create mode 100644 mingw-w64-gobject-introspection/0001-Revert-Windows-port-Work-arount-MSYS-weirdness-where.patch diff --git a/mingw-w64-gobject-introspection/0001-Revert-Windows-port-Work-arount-MSYS-weirdness-where.patch b/mingw-w64-gobject-introspection/0001-Revert-Windows-port-Work-arount-MSYS-weirdness-where.patch new file mode 100644 index 0000000000..e125c405de --- /dev/null +++ b/mingw-w64-gobject-introspection/0001-Revert-Windows-port-Work-arount-MSYS-weirdness-where.patch @@ -0,0 +1,74 @@ +From 142020d1728dec78a0ffb97b636f459d3184a796 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 30 Dec 2015 17:28:58 +0000 +Subject: [PATCH] Revert "Windows port: Work arount MSYS weirdness where it + changes --libtool= command line arguments." + +A very old version of MSYS performed path normalization during conversion +so "/bin/sh ../../libtool" became "c:/opt/msys/1.0/bin/libtool" ("sh .." +was considered a single folder), it doesn't do this any more; nor does +MSYS2. + +Also, the old comment was incorrect. It claimed: +"This continues to reuse the LIBTOOL variable from automake if it's set, +but works around some MSYS weirdness: When running g-ir-scanner, MSYS +changes a command-line argument --libtool="/bin/sh ../../libtool" into +--libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path +because we already "know" where the libtool configure produced is." + +.. yet the actual code was changed to: +_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) + +.. so in fact, if $(uname -s) contained "MINGW", then --libtool ignored +the LIBTOOL variable from automake and used $(top_builddir)/libtool +instead, at the very least, removing all trace of $(SHELL) from it. + +Now that $(SHELL) has been re-introduced into libtool, it must not +doubly appear in resolve_windows_libs in ccompiler.py, as otherwise +sh.exe will try to execute sh.exe and that clearly will not work. + +I've left some MSYS-specific hacks in dumper.py, some of which could +be removed (execution through a temporary shell script), but I've +opted to leave this, if only while I figure out why it currently +doesn't work on MSYS2. + +This reverts commit 33bbdce144d275b693752f0bc2c2f292deda854e. +--- + Makefile.introspection | 8 ++------ + giscanner/ccompiler.py | 1 - + 2 files changed, 2 insertions(+), 7 deletions(-) + +diff --git a/Makefile.introspection b/Makefile.introspection +index cd7bd1b..c28d734 100644 +--- a/Makefile.introspection ++++ b/Makefile.introspection +@@ -63,12 +63,8 @@ _gir_packages = $(foreach pkg,$($(_gir_name)_PACKAGES),--pkg=$(pkg)) + _gir_includes = $(foreach include,$($(_gir_name)_INCLUDES),--include=$(include)) + _gir_export_packages = $(foreach pkg,$($(_gir_name)_EXPORT_PACKAGES),--pkg-export=$(pkg)) + +-# Reuse the LIBTOOL variable from automake if it's set, but +-# work around MSYS weirdness: When running g-ir-scanner, MSYS changes +-# a command-line argument --libtool="/bin/sh ../../libtool" into +-# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path +-# because we already "know" where the libtool configure produced is. +-_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) ++# Reuse the LIBTOOL variable from by automake if it's set ++_gir_libtool = $(if $(LIBTOOL),--libtool="$(LIBTOOL)") + + # Macros for AM_SILENT_RULES prettiness + _gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) +diff --git a/giscanner/ccompiler.py b/giscanner/ccompiler.py +index 9b27f0e..f9b0b27 100644 +--- a/giscanner/ccompiler.py ++++ b/giscanner/ccompiler.py +@@ -277,7 +277,6 @@ class CCompiler(object): + else: + libtool = utils.get_libtool_command(options) + if libtool: +- args.append(utils.which(os.environ.get('SHELL', 'sh.exe'))) + args.extend(libtool) + args.append('--mode=execute') + # FIXME: it could have prefix (i686-w64-mingw32-dlltool.exe) +-- +2.6.3 + diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index 584cc209f9..26353dbca4 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -1,10 +1,58 @@ # Maintainer: Alexey Pavlov +# Maintainer: Ray Donnelly + +# How this works / currently doesn't work: +# Generally speaking, gobject-introspection creates a program that links to the +# library that's to be introspected then calling get_type(). +# This is done lib/gobject-introspection/giscanner/dumper.py +# .. with 'special' behaviour if MSYSTEM is set (may be why it succeeds from cmd.exe +# and when debugging it from QtCreator outside of launching it from an MSYS2 shell) +# +# It appears that '/usr/bin/sed' is getting called by mingw-w64-python, possibly via +# sh.exe (which should be fine) but possibly not (which would not be fine) ... +# +# arg E:/msys64/usr/bin/bash.exe File "E:/msys64/mingw64/bin/g-ir-scanner", line 58, in +# sys.exit(scanner_main(sys.argv)) +# File "E:/msys64/mingw64/bin/../lib/gobject-introspection/giscanner/scannermain.py", line 531, in scanner_main +# shlibs = create_binary(transformer, options, args) +# File "E:/msys64/mingw64/bin/../lib/gobject-introspection/giscanner/scannermain.py", line 412, in create_binary +# gdump_parser.get_error_quark_functions()) +# File "E:/msys64/mingw64/bin/../lib/gobject-introspection/giscanner/dumper.py", line 321, in compile_introspection_binary +# return dc.run() +# File "E:/msys64/mingw64/bin/../lib/gobject-introspection/giscanner/dumper.py", line 169, in run +# self._link(bin_path, introspection_obj) +# File "E:/msys64/mingw64/bin/../lib/gobject-introspection/giscanner/dumper.py", line 310, in _link +# subprocess.check_call(args) +# File "E:/msys64/mingw64/lib/python2.7/subprocess.py", line 535, in check_call +# retcode = call(*popenargs, **kwargs) +# File "E:/msys64/mingw64/lib/python2.7/subprocess.py", line 522, +# /usr/bin/sed +# : +# read error on +# stdin +# : +# Bad file descriptor +# 1 [main] sh 9004 child_info::sync: wait failed, pid 8772, Win32 error 0 +# 740 [main] sh 9004 fork: child -1 - forked process 8772 died unexpectedly, retry 0, exit code 0x1, errno 11 +# ../libtool: fork: retry: No child processes +# 1 [main] sh 8772 E:\msys64\usr\bin\sh.exe: *** fatal error in forked process - WFSO timed out after longjmp +# 824 [main] sh 8772 cygwin_exception::open_stackdumpfile: Dumping stack trace to sh.exe.stackdump +# 301000443 [main] sh 9004 child_info::sync: wait failed, pid 9188, Win32 error 0 +# 301001268 [main] sh 9004 fork: child -1 - forked process 9188 died unexpectedly, retry 0, exit code 0x1, errno 11 +# ../libtool: fork: retry: No child processes +# 301025432 [main] sh 9188 E:\msys64\usr\bin\sh.exe: *** fatal error in forked process - WFSO timed out after longjmp +# 301026255 [main] sh 9188 cygwin_exception::open_stackdumpfile: Dumping stack trace to sh.exe.stackdump +# 1 [main] sh 9720 child_info::sync: wait failed, pid 7896, Win32 error 0 + +# E:/msys64/usr/bin/bash.exe -c "cmd //C echo ../../gegl-0.3.4/gegl/gegl.h" +# _realname=gobject-introspection pkgbase=mingw-w64-${_realname} -pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-runtime") +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" + "${MINGW_PACKAGE_PREFIX}-${_realname}-runtime") pkgver=1.46.0 -pkgrel=1 +pkgrel=2 arch=('any') url="https://live.gnome.org/GObjectIntrospection" license=("LGPL") @@ -14,9 +62,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python2-mako") -options=('strip' 'staticlibs') - +# Building this in debug invokes pdb when things go wrong. +# options=('!strip' 'debug') source=(http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${pkgver%.*}/${_realname}-${pkgver}.tar.xz + 0001-Revert-Windows-port-Work-arount-MSYS-weirdness-where.patch 0018-debug-rmtree-errors.mingw.patch 0021-tests-no-undefined.patch 0022-change-pkg-config-invocations.mingw.patch @@ -25,6 +74,7 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${pkgver%.* 0055-fix-python-detection.patch) md5sums=('adb40a31c7c80b65b0f4c8fd71b493dc' + '7e1e31fc1a3339bc2d45d4bdcee851fe' 'f0ecde986ebf1f0e28b752f9c36fb6c1' '69ef34e2f57abc8afe1b9f6fa3786e97' '8d3589fb959a0a68ce7ce9051fa441fe' @@ -34,12 +84,17 @@ md5sums=('adb40a31c7c80b65b0f4c8fd71b493dc' prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0018-debug-rmtree-errors.mingw.patch - patch -p1 -i ${srcdir}/0021-tests-no-undefined.patch - patch -p1 -i ${srcdir}/0022-change-pkg-config-invocations.mingw.patch - patch -p1 -i ${srcdir}/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch - patch -p1 -i ${srcdir}/0050-dont-load-msvcrt.patch - patch -p1 -i ${srcdir}/0055-fix-python-detection.patch + patch -p1 -i "${srcdir}"/0001-Revert-Windows-port-Work-arount-MSYS-weirdness-where.patch + patch -p1 -i "${srcdir}"/0018-debug-rmtree-errors.mingw.patch + patch -p1 -i "${srcdir}"/0021-tests-no-undefined.patch + patch -p1 -i "${srcdir}"/0022-change-pkg-config-invocations.mingw.patch +# I assume this patch exists to prevent MSYS2 argument conversion from happening? I've disabled +# it for now as it's getting in the way of investigating other problems (it renames files I've +# changed in 0001-Revert.. so my changes there get lost. It would be nice to know the real goal +# of this patch. It could be commandline length. I think it's from LRN?) +# patch -p1 -i "${srcdir}"/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch + patch -p1 -i "${srcdir}"/0050-dont-load-msvcrt.patch + patch -p1 -i "${srcdir}"/0055-fix-python-detection.patch autoreconf -fi } @@ -68,6 +123,25 @@ package_gobject-introspection() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="${pkgdir}" install make -j1 DESTDIR="${pkgdir}" uninstall-libLTLIBRARIES uninstall-typelibsDATA + + # I've spent too long debugging gobject-introspection and it's too painful each + # time. Therefore, I've taken the decision to copy the .pyd also as a _d.pyd + # in-case I happen to be investigating it with a debug version of Python which + # only loads _d.pyd extensions. + # You will still have to rebuild this package after having built and installed + # the debug mingw-w64-python2 of course .. still one less thing to forget to + # remember. + # There will be a way to communicate the nature of the Python through to Autoconf + # and that would be better, but this will have to do for now. + # (see: + # @OS_WIN32_TRUE@ -shrext ".pyd" + # in gobject-introspection/Makefile.in) + PYDS=$(find "${pkgdir}" -name "*.pyd") + for PYD in "${PYDS}"; do + pushd $(dirname "${PYD}") + cp $(basename "${PYD}") $(basename "${PYD}" .pyd)_d.pyd + popd + done } package_gobject-introspection-runtime() { From 6237da9baf3e86965ebb0fb92cc701f92bfb591b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 1 Jan 2016 13:54:25 +0000 Subject: [PATCH 2043/2060] gegl: Added --enable-debug and be verbose when 'debug' --- mingw-w64-gegl/PKGBUILD | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/mingw-w64-gegl/PKGBUILD b/mingw-w64-gegl/PKGBUILD index 40317555a5..0bb0ac6fe6 100644 --- a/mingw-w64-gegl/PKGBUILD +++ b/mingw-w64-gegl/PKGBUILD @@ -1,11 +1,12 @@ # Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly _realname=gegl pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") -pkgver=0.3.0 +pkgver=0.3.4 pkgrel=1 pkgdesc="Generic Graphics Library (mingw-w64)" arch=('any') @@ -45,11 +46,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-babl" # "${MINGW_PACKAGE_PREFIX}-ffmpeg: for using the ffmpeg plugin" # "${MINGW_PACKAGE_PREFIX}-librsvg: for using the svg plugin" # "${MINGW_PACKAGE_PREFIX}-jasper: for using the jasper plugin") -options=('strip' 'staticlibs') +#options=('!strip' 'debug') source=(#"${_realname}"::"git://git.gnome.org/gegl" http://ftp.gtk.org/pub/gegl/${pkgver%.*}/${_realname}-${pkgver}.tar.bz2 0001-give-cc-to-gir-scanner.all.patch) -sha1sums=('d6b77996740bc885fd42f5c639c9d3fce6211855' +sha1sums=('20528559801d5a44b821c7e71c25c592a0986b00' 'aabcead7c7a81b875840cbd233826ff4920c042f') prepare() { @@ -59,6 +60,13 @@ prepare() { } build() { + declare -a extra_config + + if check_option "debug" "y"; then + extra_config+=("--enable-debug") + VERBOSE="V=1" + fi + export lt_cv_deplibs_check_method='pass_all' mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" @@ -76,9 +84,10 @@ build() { --without-libavformat \ --disable-docs \ --with-vala \ - --enable-introspection + --enable-introspection \ + "${extra_config[@]}" - make + make "${VERBOSE}" } package() { From 98c7f4c5495bccd4786f0836930c04e96c74663b Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 1 Jan 2016 15:27:14 +0000 Subject: [PATCH 2044/2060] gobject-introspection: Fix checksum --- mingw-w64-gobject-introspection/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index 26353dbca4..8506f7f31a 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -74,7 +74,7 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${pkgver%.* 0055-fix-python-detection.patch) md5sums=('adb40a31c7c80b65b0f4c8fd71b493dc' - '7e1e31fc1a3339bc2d45d4bdcee851fe' + 'd871f83d724b89eb49375eb8e4cb1246' 'f0ecde986ebf1f0e28b752f9c36fb6c1' '69ef34e2f57abc8afe1b9f6fa3786e97' '8d3589fb959a0a68ce7ce9051fa441fe' From a887031f55cf3ab4cf1ca0d5a99eb33cbe2211ed Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 1 Jan 2016 15:52:08 +0000 Subject: [PATCH 2045/2060] gegl: Build fix --- mingw-w64-gegl/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gegl/PKGBUILD b/mingw-w64-gegl/PKGBUILD index 0bb0ac6fe6..1d153608f0 100644 --- a/mingw-w64-gegl/PKGBUILD +++ b/mingw-w64-gegl/PKGBUILD @@ -87,7 +87,7 @@ build() { --enable-introspection \ "${extra_config[@]}" - make "${VERBOSE}" + make ${VERBOSE} } package() { From 18e133f9a202314a658b223bdcc6fcb7a727ffd6 Mon Sep 17 00:00:00 2001 From: David Grayson Date: Fri, 1 Jan 2016 12:44:38 -0800 Subject: [PATCH 2046/2060] libusb-compat fixes and breaking change: - BREAKING CHANGE: Move usb.h to the libusb-compat directory so that that it does not shadow mingw-w64's usb.h when libusb-compat is installed. - Added missing line to set $pkgbase. - Fixed $provides and $conflicts to be arrays. - Fixed $pkgdesc, which was a generic description of libusb, to actually describe libusb-compat instead. - Remove all patches because they don't appy cleanly and are no longer needed. --- mingw-w64-libusb-compat-git/.gitignore | 1 + .../0001-Add-some-missing-definitions.patch | 51 ------------------- .../0002-Add-no-undefined-to-LDFLAGS.patch | 25 --------- mingw-w64-libusb-compat-git/PKGBUILD | 22 ++++---- 4 files changed, 10 insertions(+), 89 deletions(-) create mode 100644 mingw-w64-libusb-compat-git/.gitignore delete mode 100644 mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch delete mode 100644 mingw-w64-libusb-compat-git/0002-Add-no-undefined-to-LDFLAGS.patch diff --git a/mingw-w64-libusb-compat-git/.gitignore b/mingw-w64-libusb-compat-git/.gitignore new file mode 100644 index 0000000000..8ab62e6b24 --- /dev/null +++ b/mingw-w64-libusb-compat-git/.gitignore @@ -0,0 +1 @@ +/libusb-compat diff --git a/mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch b/mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch deleted file mode 100644 index 86405bd3b1..0000000000 --- a/mingw-w64-libusb-compat-git/0001-Add-some-missing-definitions.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 16788fd21127cf100c2b3fbd9d03e48c900d0ce8 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Tue, 20 Jan 2015 19:29:55 +0000 -Subject: [PATCH 1/2] Add some missing definitions - -Needed for Win32 ---- - libusb/core.c | 4 ++++ - libusb/usb.h | 11 ++++++ - 2 files changed, 17 insertions(+) - -diff --git a/libusb/core.c b/libusb/core.c -index e6e500b..b1439d8 100644 ---- a/libusb/core.c -+++ b/libusb/core.c -@@ -31,6 +31,10 @@ - #include "usb.h" - #include "usbi.h" - -+#ifndef ENODATA -+#define ENODATA EIO -+#endif -+ - static libusb_context *ctx = NULL; - static int usb_debug = 0; - -diff --git a/libusb/usb.h b/libusb/usb.h -index 84e730f..bd805a2 100644 ---- a/libusb/usb.h -+++ b/libusb/usb.h -@@ -31,6 +31,17 @@ - - #include - -+#include -+#ifndef u_int8_t -+typedef uint8_t u_int8_t; -+typedef uint16_t u_int16_t; -+typedef uint32_t u_int32_t; -+#endif -+ -+#ifdef interface -+#undef interface -+#endif -+ - /* - * USB spec information - * --- -2.2.2 - diff --git a/mingw-w64-libusb-compat-git/0002-Add-no-undefined-to-LDFLAGS.patch b/mingw-w64-libusb-compat-git/0002-Add-no-undefined-to-LDFLAGS.patch deleted file mode 100644 index d9cb76cc88..0000000000 --- a/mingw-w64-libusb-compat-git/0002-Add-no-undefined-to-LDFLAGS.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b83c4f52c0fcab3c3a90b8b984a6b0856cba191b Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Tue, 20 Jan 2015 19:30:30 +0000 -Subject: [PATCH 2/2] Add -no-undefined to LDFLAGS - -As otherwise libtool won't build Win32 DLLs ---- - libusb/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libusb/Makefile.am b/libusb/Makefile.am -index 33a609a..3c4bb47 100644 ---- a/libusb/Makefile.am -+++ b/libusb/Makefile.am -@@ -4,6 +4,6 @@ lib_LTLIBRARIES = libusb.la - libusb_la_SOURCES = core.c usbi.h - libusb_la_CFLAGS = -fvisibility=hidden $(AM_CFLAGS) $(LIBUSB_1_0_CFLAGS) - libusb_la_LIBADD = $(LIBUSB_1_0_LIBS) --libusb_la_LDFLAGS = -version-info $(LT_MAJOR):$(LT_REVISION):$(LT_AGE) \ -+libusb_la_LDFLAGS = -no-undefined -version-info $(LT_MAJOR):$(LT_REVISION):$(LT_AGE) \ - -release 0.1 - --- -2.2.2 - diff --git a/mingw-w64-libusb-compat-git/PKGBUILD b/mingw-w64-libusb-compat-git/PKGBUILD index b1215c39dd..210acc81ea 100644 --- a/mingw-w64-libusb-compat-git/PKGBUILD +++ b/mingw-w64-libusb-compat-git/PKGBUILD @@ -2,12 +2,13 @@ # Contributor: Ray Donnelly _realname=libusb-compat +pkgbase="mingw-w64-${_realname}-git" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" -provides="${MINGW_PACKAGE_PREFIX}-${_realname}" -conflicts="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=r60.072a5e4 -pkgrel=3 -pkgdesc="libusb provides generic access to USB devices (mingw-w64)" +provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") +conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=r67.272388e +pkgrel=1 +pkgdesc="Allows applications written for libusb-0.1 to work with libusb-1.0 (mingw-w64)" arch=('any') url="http://libusb.info" depends=(${MINGW_PACKAGE_PREFIX}-libusb) @@ -15,12 +16,8 @@ options=('staticlibs') makedepends=("git" "pkgconfig" "m4") -source=(${_realname}::git+https://github.com/libusb/libusb-compat-0.1.git - 0001-Add-some-missing-definitions.patch - 0002-Add-no-undefined-to-LDFLAGS.patch) -md5sums=('SKIP' - '3c5d3473df5e7f0a1b03a7465afd8526' - '1446f870923cd037c59a44d203657ca7') +source=(${_realname}::git+https://github.com/libusb/libusb-compat-0.1.git) +sha256sums=('SKIP') pkgver() { cd "${srcdir}/${_realname}" @@ -29,8 +26,6 @@ pkgver() { prepare() { cd "${srcdir}/${_realname}" - git am ${srcdir}/0001-Add-some-missing-definitions.patch - git am ${srcdir}/0002-Add-no-undefined-to-LDFLAGS.patch ./bootstrap.sh } @@ -43,6 +38,7 @@ build() { ../${_realname}/configure \ --prefix=${MINGW_PREFIX} \ --{host,build}=${MINGW_CHOST} \ + --includedir=${MINGW_PREFIX}/include/libusb-compat \ --disable-dependency-tracking \ --enable-static \ --enable-shared From 34e94f013488b25d17b83934666bc9f0d7f6cc33 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 2 Jan 2016 02:30:42 +0000 Subject: [PATCH 2047/2060] python2 + 3: distutils spawn fix for nt Implement _nt_quote_args using subprocess module's list2cmdline since that handles all the tricky quoting logic properly while the previous implementation was not capable of handling anything more complicated than the most basic commandline arguments and those with spaces (so no tabs, or double quotes etc). A specific example of trouble this caused was on MSYS2 when building the gobject-introspection part of GEGL 0.3.4 and a macro of -DG_LOG_DOMAIN="GEGL"-__FILE__ was passed to the C compiler. From distutils perspective, the final call ended up as: gegl-introspection-module = Extensions('gegl-introspection', define_macros= [('G_LOG_DOMAIN', '"GEGL-"__FILE__')]) This *will* cause trouble in software that special-cased Windows. An example existed in Python's own setup.py when building the sqlite module. The MODULE_NAME define was set to '"sqlite3"' for everything else and to '\\"sqlite3\\"' for Windows. This commit removes this special-casing, obviously! The bad-old-implementation has existed for so long now that everyone's hacked around it, which means that it's probably too late for this change, so this means in the long-term, this commit will go one of three ways: 1. It'll stay in and we'll fix everything up that's broken. pip and C extensions will screw up badly here. 2. I implement a two-pass scheme where I try both the old way and the new way for things that fail on first attempt. 3. I remove this altogether, and hack up GEGL like everything else has been hacked up, lesson learnt. I'm leaning towards 2 at present. Either way, I need to figure out why GEGL was hanging before this change as that was less than useful. Some good came out of it; we can build debuggable python2 and py-bt works now too! Also renamed python-gdb.py to python_gdb.py --- ...e_args-using-subprocess-list2cmdline.patch | 221 ++++++++++++++++++ mingw-w64-python2/PKGBUILD | 15 +- ...e_args-using-subprocess-list2cmdline.patch | 33 +++ ...sys-mingw-prefer-unix-sep-if-MSYSTEM.patch | 106 ++++----- mingw-w64-python3/PKGBUILD | 17 +- 5 files changed, 329 insertions(+), 63 deletions(-) create mode 100644 mingw-w64-python2/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch create mode 100644 mingw-w64-python3/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch diff --git a/mingw-w64-python2/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch b/mingw-w64-python2/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch new file mode 100644 index 0000000000..e528c9f8d4 --- /dev/null +++ b/mingw-w64-python2/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch @@ -0,0 +1,221 @@ +diff -urN Python-2.7.10.orig/Lib/distutils/spawn.py Python-2.7.10/Lib/distutils/spawn.py +--- Python-2.7.10.orig/Lib/distutils/spawn.py 2016-01-02 00:59:12.580711100 +0000 ++++ Python-2.7.10/Lib/distutils/spawn.py 2016-01-02 01:45:53.195782000 +0000 +@@ -14,6 +14,7 @@ + from distutils.errors import DistutilsPlatformError, DistutilsExecError + from distutils.debug import DEBUG + from distutils import log ++from list2cmdline import list2cmdline + + def spawn(cmd, search_path=1, verbose=0, dry_run=0): + """Run another program, specified as a command list 'cmd', in a new process. +@@ -47,17 +48,13 @@ + def _nt_quote_args(args): + """Quote command-line arguments for DOS/Windows conventions. + +- Just wraps every argument which contains blanks in double quotes, and +- returns a new argument list. ++ Defer to list2cmdline as the logic is complex. ++ The previous implementation here failed to handle ++ -DG_LOG_DOMAIN="GEGL-"__FILE__ which was encountered in MSYS2 ++ while building the gobject-introspection part of GEGL 0.3.4. + """ +- # XXX this doesn't seem very robust to me -- but if the Windows guys +- # say it'll work, I guess I'll have to accept it. (What if an arg +- # contains quotes? What other magic characters, other than spaces, +- # have to be escaped? Is there an escaping mechanism other than +- # quoting?) + for i, arg in enumerate(args): +- if ' ' in arg: +- args[i] = '"%s"' % arg ++ args[i] = list2cmdline([args[i]]) + return args + + def _spawn_nt(cmd, search_path=1, verbose=0, dry_run=0): +diff -urN Python-2.7.10.orig/Lib/list2cmdline.py Python-2.7.10/Lib/list2cmdline.py +--- Python-2.7.10.orig/Lib/list2cmdline.py 1970-01-01 01:00:00.000000000 +0100 ++++ Python-2.7.10/Lib/list2cmdline.py 2016-01-02 01:15:25.244121800 +0000 +@@ -0,0 +1,79 @@ ++# list2cmdline - Utility to escape nt commandline arguments ++# ++# Copyright (c) 2003-2005 by Peter Astrand ++# ++# Licensed to PSF under a Contributor Agreement. ++# See http://www.python.org/2.4/license for licensing details. ++ ++def list2cmdline(seq): ++ """ ++ Translate a sequence of arguments into a command line ++ string, using the same rules as the MS C runtime: ++ ++ 1) Arguments are delimited by white space, which is either a ++ space or a tab. ++ ++ 2) A string surrounded by double quotation marks is ++ interpreted as a single argument, regardless of white space ++ contained within. A quoted string can be embedded in an ++ argument. ++ ++ 3) A double quotation mark preceded by a backslash is ++ interpreted as a literal double quotation mark. ++ ++ 4) Backslashes are interpreted literally, unless they ++ immediately precede a double quotation mark. ++ ++ 5) If backslashes immediately precede a double quotation mark, ++ every pair of backslashes is interpreted as a literal ++ backslash. If the number of backslashes is odd, the last ++ backslash escapes the next double quotation mark as ++ described in rule 3. ++ ++ Extracted from subprocess.py so that distutils spawn.py can ++ use it too. ++ """ ++ ++ # See ++ # http://msdn.microsoft.com/en-us/library/17w5ykft.aspx ++ # or search http://msdn.microsoft.com for ++ # "Parsing C++ Command-Line Arguments" ++ result = [] ++ needquote = False ++ for arg in seq: ++ bs_buf = [] ++ ++ # Add a space to separate this argument from the others ++ if result: ++ result.append(' ') ++ ++ needquote = (" " in arg) or ("\t" in arg) or not arg ++ if needquote: ++ result.append('"') ++ ++ for c in arg: ++ if c == '\\': ++ # Don't know if we need to double yet. ++ bs_buf.append(c) ++ elif c == '"': ++ # Double backslashes. ++ result.append('\\' * len(bs_buf)*2) ++ bs_buf = [] ++ result.append('\\"') ++ else: ++ # Normal char ++ if bs_buf: ++ result.extend(bs_buf) ++ bs_buf = [] ++ result.append(c) ++ ++ # Add remaining backslashes, if any. ++ if bs_buf: ++ result.extend(bs_buf) ++ ++ if needquote: ++ result.extend(bs_buf) ++ result.append('"') ++ ++ return ''.join(result) ++ +diff -urN Python-2.7.10.orig/Lib/subprocess.py Python-2.7.10/Lib/subprocess.py +--- Python-2.7.10.orig/Lib/subprocess.py 2016-01-02 00:59:10.775707300 +0000 ++++ Python-2.7.10/Lib/subprocess.py 2016-01-02 01:33:13.687423600 +0000 +@@ -395,6 +395,7 @@ + import gc + import signal + import errno ++from list2cmdline import list2cmdline + + # Exception classes used by this module. + class CalledProcessError(Exception): +@@ -574,76 +575,6 @@ + return output + + +-def list2cmdline(seq): +- """ +- Translate a sequence of arguments into a command line +- string, using the same rules as the MS C runtime: +- +- 1) Arguments are delimited by white space, which is either a +- space or a tab. +- +- 2) A string surrounded by double quotation marks is +- interpreted as a single argument, regardless of white space +- contained within. A quoted string can be embedded in an +- argument. +- +- 3) A double quotation mark preceded by a backslash is +- interpreted as a literal double quotation mark. +- +- 4) Backslashes are interpreted literally, unless they +- immediately precede a double quotation mark. +- +- 5) If backslashes immediately precede a double quotation mark, +- every pair of backslashes is interpreted as a literal +- backslash. If the number of backslashes is odd, the last +- backslash escapes the next double quotation mark as +- described in rule 3. +- """ +- +- # See +- # http://msdn.microsoft.com/en-us/library/17w5ykft.aspx +- # or search http://msdn.microsoft.com for +- # "Parsing C++ Command-Line Arguments" +- result = [] +- needquote = False +- for arg in seq: +- bs_buf = [] +- +- # Add a space to separate this argument from the others +- if result: +- result.append(' ') +- +- needquote = (" " in arg) or ("\t" in arg) or not arg +- if needquote: +- result.append('"') +- +- for c in arg: +- if c == '\\': +- # Don't know if we need to double yet. +- bs_buf.append(c) +- elif c == '"': +- # Double backslashes. +- result.append('\\' * len(bs_buf)*2) +- bs_buf = [] +- result.append('\\"') +- else: +- # Normal char +- if bs_buf: +- result.extend(bs_buf) +- bs_buf = [] +- result.append(c) +- +- # Add remaining backslashes, if any. +- if bs_buf: +- result.extend(bs_buf) +- +- if needquote: +- result.extend(bs_buf) +- result.append('"') +- +- return ''.join(result) +- +- + class Popen(object): + _child_created = False # Set here since __del__ checks it + +diff -urN Python-2.7.10.orig/setup.py Python-2.7.10/setup.py +--- Python-2.7.10.orig/setup.py 2016-01-02 00:59:17.405520700 +0000 ++++ Python-2.7.10/setup.py 2016-01-02 01:00:52.537873000 +0000 +@@ -1167,11 +1167,7 @@ + '_sqlite/statement.c', + '_sqlite/util.c', ] + +- sqlite_defines = [] +- if host_platform != "win32": +- sqlite_defines.append(('MODULE_NAME', '"sqlite3"')) +- else: +- sqlite_defines.append(('MODULE_NAME', '\\"sqlite3\\"')) ++ sqlite_defines = [('MODULE_NAME', '"sqlite3"')] + + # Comment this out if you want the sqlite3 module to be able to load extensions. + sqlite_defines.append(("SQLITE_OMIT_LOAD_EXTENSION", "1")) diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index 4e934a7066..cc79591f6c 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -5,7 +5,7 @@ _realname=python2 pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.7.10 -pkgrel=7 +pkgrel=8 _pybasever=${pkgver%.*} pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') @@ -27,6 +27,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") options=('!makeflags') # 'debug' '!strip') source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0000-make-_sysconfigdata.py-relocatable.patch + 0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch 0100-MINGW-BASE-use-NT-thread-model.patch 0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch 0120-MINGW-use-header-in-lowercase.patch @@ -110,10 +111,17 @@ prepare() { cd "${srcdir}/Python-${pkgver}" # these are created by patches - rm -f Misc/config_mingw Misc/cross_mingw32 Misc/python-config.sh.in Misc/cross_mingw32 Misc/python-config-u.sh.in Python/fileblocks.c + rm -f Misc/config_mingw \ + Misc/cross_mingw32 \ + Misc/python-config.sh.in \ + Misc/cross_mingw32 \ + Misc/python-config-u.sh.in \ + Python/fileblocks.c \ + Lib/list2cmdline.py - plain "Apply Ray Donnelly's relocatability enabling patch" + plain "Apply Ray Donnelly's should-be-upstreamed patches" patch -Np1 -i "${srcdir}"/0000-make-_sysconfigdata.py-relocatable.patch + patch -Np1 -i "${srcdir}"/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch plain "Apply Roumen Petrov's core patches (15)" patch -p1 -i "${srcdir}"/0100-MINGW-BASE-use-NT-thread-model.patch @@ -361,6 +369,7 @@ package() { sha1sums=('ee5a50c5562e7448f037d35fdedc18d95c748b9e' '5e0546d246c18881c448a077c3b605d5db505114' + '901520b94c17ca80263ab3ac146b9c024bf1dc71' '34a627481caea8690c2cf6e6d409e2d449d133fb' 'c936fbd986a2cc126174e45de8b100e24824b905' 'a5aa0daff5a85c661467b635e4e70bbef0a82046' diff --git a/mingw-w64-python3/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch b/mingw-w64-python3/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch new file mode 100644 index 0000000000..09b1f3e9f4 --- /dev/null +++ b/mingw-w64-python3/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch @@ -0,0 +1,33 @@ +--- Python-3.5.0/Lib/distutils/spawn.py.orig 2015-09-13 12:41:21.000000000 +0100 ++++ Python-3.5.0/Lib/distutils/spawn.py 2016-01-01 22:56:13.888427600 +0000 +@@ -12,6 +12,7 @@ + from distutils.errors import DistutilsPlatformError, DistutilsExecError + from distutils.debug import DEBUG + from distutils import log ++from subprocess import list2cmdline + + def spawn(cmd, search_path=1, verbose=0, dry_run=0): + """Run another program, specified as a command list 'cmd', in a new process. +@@ -43,17 +44,13 @@ + def _nt_quote_args(args): + """Quote command-line arguments for DOS/Windows conventions. + +- Just wraps every argument which contains blanks in double quotes, and +- returns a new argument list. ++ Defer to subprocess module's list2cmdline as the logic is ++ complex. The previous implementation here failed to handle ++ -DG_LOG_DOMAIN="GEGL-"__FILE__ which was encountered in MSYS2 ++ while building the gobject-introspection part of GEGL 0.3.4. + """ +- # XXX this doesn't seem very robust to me -- but if the Windows guys +- # say it'll work, I guess I'll have to accept it. (What if an arg +- # contains quotes? What other magic characters, other than spaces, +- # have to be escaped? Is there an escaping mechanism other than +- # quoting?) + for i, arg in enumerate(args): +- if ' ' in arg: +- args[i] = '"%s"' % arg ++ args[i] = list2cmdline([args[i]]) + return args + + def _spawn_nt(cmd, search_path=1, verbose=0, dry_run=0): diff --git a/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch b/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch index aec94877d4..1e6b9bb24e 100644 --- a/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch +++ b/mingw-w64-python3/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch @@ -340,46 +340,10 @@ diff -Naur Python-3.5.0-orig/Python/pylifecycle.c Python-3.5.0/Python/pylifecycl +static wchar_t progname[PATH_MAX+1] = L"python3"; #endif -+wchar_t -+Py_GetSepW(wchar_t *name) -+{ -+ char* msystem = NULL; -+ static wchar_t sep = L'\0'; -+#ifdef _WIN32 -+ /* https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247%28v=vs.85%29.aspx -+ * The "\\?\" prefix .. indicate that the path should be passed to the system with minimal -+ * modification, which means that you cannot use forward slashes to represent path separators -+ */ -+ if (name != NULL && memcmp(name, L"\\\\?\\", sizeof(L"\\\\?\\") - sizeof(wchar_t)) == 0) -+ { -+ return L'\\'; -+ } -+#endif -+ if (sep != L'\0') -+ return sep; -+#if defined(__MINGW32__) -+ msystem = Py_GETENV("MSYSTEM"); -+#endif -+ if (msystem != NULL) -+ sep = L'/'; -+ else -+ sep = L'\\'; -+ return sep; -+} -+ -+static wchar_t -+Py_GetAltSepW(wchar_t *name) -+{ -+ char sep = Py_GetSepW(name); -+ if (sep == L'/') -+ return L'\\'; -+ return L'/'; -+} -+ +char +Py_GetSepA(char *name) +{ -+ char* msystem = NULL; ++ char* msystem = (char*)2; /* So that non Windows use / as sep */ + static char sep = '\0'; +#ifdef _WIN32 + /* https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247%28v=vs.85%29.aspx @@ -413,22 +377,6 @@ diff -Naur Python-3.5.0-orig/Python/pylifecycle.c Python-3.5.0/Python/pylifecycl +} + +void -+Py_NormalizeSepsW(wchar_t *name) -+{ -+ wchar_t sep = Py_GetSepW(name); -+ wchar_t altsep = Py_GetAltSepW(name); -+ wchar_t* seps; -+ if (wcslen(name) > 1 && name[1] == L':') { -+ name[0] = towupper(name[0]); -+ } -+ seps = wcschr(name, altsep); -+ while(seps) { -+ *seps = sep; -+ seps = wcschr(seps, altsep); -+ } -+} -+ -+void +Py_NormalizeSepsA(char *name) +{ + char sep = Py_GetSepA(name); @@ -443,6 +391,58 @@ diff -Naur Python-3.5.0-orig/Python/pylifecycle.c Python-3.5.0/Python/pylifecycl + seps = strchr(seps, altsep); + } +} ++ ++wchar_t ++Py_GetSepW(wchar_t *name) ++{ ++ char* msystem = (char*)2; /* So that non Windows use / as sep */ ++ static wchar_t sep = L'\0'; ++#ifdef _WIN32 ++ /* https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247%28v=vs.85%29.aspx ++ * The "\\?\" prefix .. indicate that the path should be passed to the system with minimal ++ * modification, which means that you cannot use forward slashes to represent path separators ++ */ ++ if (name != NULL && memcmp(name, L"\\\\?\\", sizeof(L"\\\\?\\") - sizeof(wchar_t)) == 0) ++ { ++ return L'\\'; ++ } ++#endif ++ if (sep != L'\0') ++ return sep; ++#if defined(__MINGW32__) ++ msystem = Py_GETENV("MSYSTEM"); ++#endif ++ if (msystem != NULL) ++ sep = L'/'; ++ else ++ sep = L'\\'; ++ return sep; ++} ++ ++static wchar_t ++Py_GetAltSepW(wchar_t *name) ++{ ++ char sep = Py_GetSepW(name); ++ if (sep == L'/') ++ return L'\\'; ++ return L'/'; ++} ++ ++void ++Py_NormalizeSepsW(wchar_t *name) ++{ ++ wchar_t sep = Py_GetSepW(name); ++ wchar_t altsep = Py_GetAltSepW(name); ++ wchar_t* seps; ++ if (wcslen(name) > 1 && name[1] == L':') { ++ name[0] = towupper(name[0]); ++ } ++ seps = wcschr(name, altsep); ++ while(seps) { ++ *seps = sep; ++ seps = wcschr(seps, altsep); ++ } ++} + void Py_SetProgramName(wchar_t *pn) diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 30a53922ae..1d89467120 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -18,7 +18,7 @@ pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.5 pkgver=${_pybasever}.0 -pkgrel=2 +pkgrel=4 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -37,9 +37,10 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-xz" ) makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -options=('!makeflags' 'staticlibs') # '!strip' 'debug') +options=('!makeflags') # '!strip' 'debug') source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0000-make-_sysconfigdata.py-relocatable.patch + 0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch 0100-MINGW-BASE-use-NT-thread-model.patch 0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch 0130-MINGW-configure-MACHDEP-and-platform-for-build.patch @@ -132,8 +133,9 @@ prepare() { # these are created by patches rm -f Misc/config_mingw Misc/cross_mingw32 Python/fileblocks.c - plain "Apply Ray Donnelly's relocatability enabling patch" + plain "Apply Ray Donnelly's should-be-upstreamed patches" patch -Np1 -i "${srcdir}"/0000-make-_sysconfigdata.py-relocatable.patch + patch -Np1 -i "${srcdir}"/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch plain "Apply Roumen Petrov's core patches (14)" patch -Np1 -i "${srcdir}"/0100-MINGW-BASE-use-NT-thread-model.patch @@ -321,11 +323,11 @@ package() { # gdb pretty printers for debugging Python itself; to use: # python # sys.path.append('C:/msys64/mingw64/share/gdb/python3') - # import python-gdb - # reload(python-gdb) + # import python_gdb + # reload(python_gdb) # end [[ -d "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/ ]] || mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/ - cp -f python.exe-gdb.py "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/python-gdb.py + cp -f python.exe-gdb.py "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/python_gdb.py rm "${pkgdir}${MINGW_PREFIX}"/bin/2to3 cp -f "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config-${VERABI}/libpython${VERABI}.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/libpython${VERABI}.dll.a @@ -385,6 +387,7 @@ package() { sha1sums=('871a06df9ab70984b7398ac53047fe125c757a70' '87bbcdc0f0ca1e1d23dd9822566efe91d6bd8a85' + '875375f2ef44eaf530121f50419d2ad9be24af58' 'e6358136f1f340de833365ef3cc2cebee5ea300b' 'db10f4f2b451217996fb0c461d893e6f8d8ce005' '840e903fd99ccac2a66d177906f103a461ae841b' @@ -430,7 +433,7 @@ sha1sums=('871a06df9ab70984b7398ac53047fe125c757a70' '7f9516ae8b862fa589129298be76cdd76d4667ae' '55f4167c6c5627ce0f8ffbb97490432f2d1bf5f0' '7cd0a741434b7f28923adae71023e512dc01efc5' - '4e9b409e8ae1ca3d6dc4176d175d58a1bbdcfe85' + 'ad8dad96baa1543437a4e48c1923ecf0075b7b4e' '2fade3fd50c3213a7e0f47bd0f6051e7c46ffa1f' '8ee814ffcb3b896b170ddd0bfe35dc2a1722c2f9' 'cb3923149a09fccfe3e39a746970fb43256f08e4' From 036ffa5c3548b4e96ad66a9b146332c704380698 Mon Sep 17 00:00:00 2001 From: Bjoern Lemke Date: Sat, 2 Jan 2016 11:09:04 +0100 Subject: [PATCH 2048/2060] Update to cego version 2.28.2 --- mingw-w64-cego/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-cego/PKGBUILD b/mingw-w64-cego/PKGBUILD index 62d64b3530..0fb2f16fdd 100644 --- a/mingw-w64-cego/PKGBUILD +++ b/mingw-w64-cego/PKGBUILD @@ -3,7 +3,7 @@ _realname=cego pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.28.1 +pkgver=2.28.2 pkgrel=1 pkgdesc="Cego database system (mingw-w64)" arch=('any') @@ -15,7 +15,7 @@ source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") depends=("${MINGW_PACKAGE_PREFIX}-lfcbase") depends=("${MINGW_PACKAGE_PREFIX}-lfcxml") -sha256sums=("7e69361a3837af839b25918c223235203dca42a0eb78a6dbc58bd86278adbcc3") +sha256sums=("7df255e79a28f71a292d88874f3df789031187c2141d995b07bea8d6f8d6a6c3") prepare() { cd $srcdir/${_realname}-${pkgver} From 021812dfe2431ae7233a137273b3018d62fecc80 Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Sun, 3 Jan 2016 00:40:28 +1100 Subject: [PATCH 2049/2060] mpv: Update to 0.14.0 The license change to GPLv3 is required for the NNEDI filter. This also adds ANGLE support. --- mingw-w64-mpv/PKGBUILD | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mingw-w64-mpv/PKGBUILD b/mingw-w64-mpv/PKGBUILD index eec17737e0..5a82f910b0 100644 --- a/mingw-w64-mpv/PKGBUILD +++ b/mingw-w64-mpv/PKGBUILD @@ -4,13 +4,14 @@ _realname=mpv pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.11.0 +pkgver=0.14.0 pkgrel=1 pkgdesc="Video player based on MPlayer/mplayer2 (mingw-w64)" url="http://mpv.io" arch=('any') -license=('GPL') -depends=("${MINGW_PACKAGE_PREFIX}-enca" +license=('GPL3') +depends=("${MINGW_PACKAGE_PREFIX}-angleproject-git" + "${MINGW_PACKAGE_PREFIX}-enca" "${MINGW_PACKAGE_PREFIX}-ffmpeg" "${MINGW_PACKAGE_PREFIX}-lcms2" "${MINGW_PACKAGE_PREFIX}-libarchive" @@ -30,7 +31,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "pkg-config" "python") source=(${_realname}-${pkgver}.tar.gz::https://github.com/mpv-player/${_realname}/archive/v${pkgver}.tar.gz) -md5sums=('988bec97a4057beecc2f6a8a2c18e342') +md5sums=('9f78599b52d9e603f2481d36746ddd0c') # strip doesn't work well with the mpv.com wrapper, so strip manually instead options=(!strip !emptydirs) @@ -59,7 +60,9 @@ build() { --enable-caca \ --enable-dvdnav \ --enable-dvdread \ + --enable-egl-angle \ --enable-enca \ + --enable-gpl3 \ --enable-jpeg \ --enable-lcms2 \ --enable-libarchive \ From e970b0f0aee66edc3d0a333408866e9230fb95ec Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Sun, 3 Jan 2016 02:21:49 +1100 Subject: [PATCH 2050/2060] libass: Update to 0.13.1 --- mingw-w64-libass/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libass/PKGBUILD b/mingw-w64-libass/PKGBUILD index caac21cc5e..09145577e9 100644 --- a/mingw-w64-libass/PKGBUILD +++ b/mingw-w64-libass/PKGBUILD @@ -3,7 +3,7 @@ _realname=libass pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.13.0 +pkgver=0.13.1 pkgrel=1 pkgdesc="A portable library for SSA/ASS subtitles rendering (mingw-w64)" arch=('any') @@ -18,7 +18,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-fribidi" "${MINGW_PACKAGE_PREFIX}-harfbuzz") options=('strip' 'staticlibs') source=(https://github.com/libass/${_realname}/releases/download/${pkgver}/${_realname}-${pkgver}.tar.xz) -md5sums=('8e6a506b4e5a637764183083421dc827') +md5sums=('43b5f379e70b3aef15b2435e21e5b73c') build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" From 51ca502b53c1824bb5a44fbe8b5dab53b5ca3511 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 2 Jan 2016 21:43:30 +0000 Subject: [PATCH 2051/2060] python2 + 3 + numpy: Various updates and fixes * Update python2 to 2.7.11 * Update numpy to 1.10.2 (and number the patches). * New python2 + 3 patch so that sys.version returns something more similar to normal CPython so that get_build_architecture in distutils msvccompiler.py returns the right thing (NumPy uses it so there's every chance other things will too). --- ...ch => 0001-detect-mingw-environment.patch} | 0 ...2.patch => 0002-fix-finding-python2.patch} | 0 ... 0003-gfortran-better-version-check.patch} | 0 ...stsuite.patch => 0004-fix-testsuite.patch} | 0 ...tack-boundary-32bit-optimized-64bit.patch} | 0 ...0006-disable-visualcompaq-for-mingw.patch} | 0 ...msvccompiler-get_build_version-works.patch | 26 +++++++++++++++++++ mingw-w64-python2/PKGBUILD | 10 ++++--- ...e_args-using-subprocess-list2cmdline.patch | 15 +++++++++++ mingw-w64-python3/PKGBUILD | 16 +++++++----- ...msvccompiler-get_build_version-works.patch | 19 ++++++++++++++ 11 files changed, 77 insertions(+), 9 deletions(-) rename mingw-w64-python-numpy/{detect-mingw-environment.patch => 0001-detect-mingw-environment.patch} (100%) rename mingw-w64-python-numpy/{fix-finding-python2.patch => 0002-fix-finding-python2.patch} (100%) rename mingw-w64-python-numpy/{gfortran-better-version-check.patch => 0003-gfortran-better-version-check.patch} (100%) rename mingw-w64-python-numpy/{fix-testsuite.patch => 0004-fix-testsuite.patch} (100%) rename mingw-w64-python-numpy/{mincoming-stack-boundary-only-32bit.patch => 0005-mincoming-stack-boundary-32bit-optimized-64bit.patch} (100%) rename mingw-w64-python-numpy/{disable-visualcompaq-for-mingw.patch => 0006-disable-visualcompaq-for-mingw.patch} (100%) create mode 100644 mingw-w64-python2/0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch create mode 100644 mingw-w64-python3/Python-3.5.0/0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch diff --git a/mingw-w64-python-numpy/detect-mingw-environment.patch b/mingw-w64-python-numpy/0001-detect-mingw-environment.patch similarity index 100% rename from mingw-w64-python-numpy/detect-mingw-environment.patch rename to mingw-w64-python-numpy/0001-detect-mingw-environment.patch diff --git a/mingw-w64-python-numpy/fix-finding-python2.patch b/mingw-w64-python-numpy/0002-fix-finding-python2.patch similarity index 100% rename from mingw-w64-python-numpy/fix-finding-python2.patch rename to mingw-w64-python-numpy/0002-fix-finding-python2.patch diff --git a/mingw-w64-python-numpy/gfortran-better-version-check.patch b/mingw-w64-python-numpy/0003-gfortran-better-version-check.patch similarity index 100% rename from mingw-w64-python-numpy/gfortran-better-version-check.patch rename to mingw-w64-python-numpy/0003-gfortran-better-version-check.patch diff --git a/mingw-w64-python-numpy/fix-testsuite.patch b/mingw-w64-python-numpy/0004-fix-testsuite.patch similarity index 100% rename from mingw-w64-python-numpy/fix-testsuite.patch rename to mingw-w64-python-numpy/0004-fix-testsuite.patch diff --git a/mingw-w64-python-numpy/mincoming-stack-boundary-only-32bit.patch b/mingw-w64-python-numpy/0005-mincoming-stack-boundary-32bit-optimized-64bit.patch similarity index 100% rename from mingw-w64-python-numpy/mincoming-stack-boundary-only-32bit.patch rename to mingw-w64-python-numpy/0005-mincoming-stack-boundary-32bit-optimized-64bit.patch diff --git a/mingw-w64-python-numpy/disable-visualcompaq-for-mingw.patch b/mingw-w64-python-numpy/0006-disable-visualcompaq-for-mingw.patch similarity index 100% rename from mingw-w64-python-numpy/disable-visualcompaq-for-mingw.patch rename to mingw-w64-python-numpy/0006-disable-visualcompaq-for-mingw.patch diff --git a/mingw-w64-python2/0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch b/mingw-w64-python2/0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch new file mode 100644 index 0000000000..80656671a9 --- /dev/null +++ b/mingw-w64-python2/0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch @@ -0,0 +1,26 @@ +--- Python-2.7.10/Python/getcompiler.c.orig 2015-05-23 17:09:24.000000000 +0100 ++++ Python-2.7.10/Python/getcompiler.c 2016-01-02 17:10:40.399949300 +0000 +@@ -6,7 +6,22 @@ + #ifndef COMPILER + + #ifdef __GNUC__ +-#define COMPILER "\n[GCC " __VERSION__ "]" ++/* To not break compatibility with things that determine ++ CPU arch by calling get_build_version in msvccompiler.py ++ (such as NumPy) add "32 bit" or "64 bit (AMD64)" on Windows ++ and also use a space as a separator rather than a newline. */ ++#if defined(_WIN32) ++#define COMP_SEP " " ++#if defined(__x86_64__) ++#define ARCH_SUFFIX " 64 bit (AMD64)" ++#else ++#define ARCH_SUFFIX " 32 bit" ++#endif ++#else ++#define COMP_SEP "\n" ++#define ARCH_SUFFIX "" ++#endif ++#define COMPILER COMP_SEP "[GCC " __VERSION__ ARCH_SUFFIX "]" + #endif + + #endif /* !COMPILER */ diff --git a/mingw-w64-python2/PKGBUILD b/mingw-w64-python2/PKGBUILD index cc79591f6c..5ad10eacfe 100644 --- a/mingw-w64-python2/PKGBUILD +++ b/mingw-w64-python2/PKGBUILD @@ -3,9 +3,10 @@ # Contributor: Saul Ibarra Corretge _realname=python2 +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.7.10 -pkgrel=8 +pkgver=2.7.11 +pkgrel=1 _pybasever=${pkgver%.*} pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') @@ -100,6 +101,7 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0860-mingw-build-optimized-ext.patch 0870-mingw-add-LIBPL-to-library-dirs.patch 0910-fix-using-dllhandle-and-winver-mingw.patch + 0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch 1000-dont-link-with-gettext.patch 1010-ctypes-python-dll.patch 1020-gdbm-module-includes.patch @@ -202,6 +204,7 @@ prepare() { patch -p1 -i "${srcdir}"/0860-mingw-build-optimized-ext.patch patch -p1 -i "${srcdir}"/0870-mingw-add-LIBPL-to-library-dirs.patch patch -p1 -i "${srcdir}"/0910-fix-using-dllhandle-and-winver-mingw.patch + patch -p1 -i "${srcdir}"/0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch plain "Apply Alexey Pavlov's mingw-w64 patches (2)" patch -p1 -i "${srcdir}"/1000-dont-link-with-gettext.patch @@ -367,7 +370,7 @@ package() { mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe } -sha1sums=('ee5a50c5562e7448f037d35fdedc18d95c748b9e' +sha1sums=('c3b8bbe3f084c4d4ea13ffb03d75a5e22f9756ff' '5e0546d246c18881c448a077c3b605d5db505114' '901520b94c17ca80263ab3ac146b9c024bf1dc71' '34a627481caea8690c2cf6e6d409e2d449d133fb' @@ -442,6 +445,7 @@ sha1sums=('ee5a50c5562e7448f037d35fdedc18d95c748b9e' 'de01d87f5070992f305d5375da1deb69f80ea8bb' '6cef2b44a41279c0344cbb9f3486cfc0831026ae' '0de22d55a78fad4755e2d4950db9a49a48a50ad2' + '6473ae1b2108c26403022c6846e562d2cfff9727' 'd332da5a091d54445e1a83075a6ea8069031c995' 'bc7209fd529f03d384f00be22835615a2843a7fa' '06ebbcf50d6d30780f47a0d3425f956b2eb8e847' diff --git a/mingw-w64-python3/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch b/mingw-w64-python3/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch index 09b1f3e9f4..883592a3e2 100644 --- a/mingw-w64-python3/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch +++ b/mingw-w64-python3/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch @@ -31,3 +31,18 @@ return args def _spawn_nt(cmd, search_path=1, verbose=0, dry_run=0): +--- Python-3.5.0/setup.py.orig 2016-01-01 23:31:43.768193600 +0000 ++++ Python-3.5.0/setup.py 2016-01-01 23:54:46.268820600 +0000 +@@ -1208,11 +1208,7 @@ + '_sqlite/statement.c', + '_sqlite/util.c', ] + +- sqlite_defines = [] +- if host_platform != "win32": +- sqlite_defines.append(('MODULE_NAME', '"sqlite3"')) +- else: +- sqlite_defines.append(('MODULE_NAME', '\\"sqlite3\\"')) ++ sqlite_defines = [('MODULE_NAME', '"sqlite3"')] + + # Enable support for loadable extensions in the sqlite3 module + # if --enable-loadable-sqlite-extensions configure option is used. diff --git a/mingw-w64-python3/PKGBUILD b/mingw-w64-python3/PKGBUILD index 1d89467120..4466021598 100644 --- a/mingw-w64-python3/PKGBUILD +++ b/mingw-w64-python3/PKGBUILD @@ -18,7 +18,7 @@ pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pybasever=3.5 pkgver=${_pybasever}.0 -pkgrel=4 +pkgrel=5 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') license=('PSF') @@ -123,6 +123,8 @@ source=("http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" 0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch 0950-mingw-w64-XP3-compat-GetProcAddress-GetTickCount64.patch 0960-mingw-w64-XP3-compat-GetProcAddress-GetFinalPathNameByHandleW.patch + 0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch + 1000-fix-building-posixmodule.patch 1010-install-msilib.patch 1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch) @@ -228,6 +230,7 @@ prepare() { patch -Np1 -i "${srcdir}"/0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch patch -Np1 -i "${srcdir}"/0950-mingw-w64-XP3-compat-GetProcAddress-GetTickCount64.patch patch -Np1 -i "${srcdir}"/0960-mingw-w64-XP3-compat-GetProcAddress-GetFinalPathNameByHandleW.patch + patch -Np1 -i "${srcdir}"/0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch patch -Np1 -i "${srcdir}"/1000-fix-building-posixmodule.patch patch -Np1 -i "${srcdir}"/1010-install-msilib.patch @@ -257,10 +260,10 @@ prepare() { rm -r Modules/_ctypes/{darwin,libffi}* } -check() { - cd "${srcdir}/build-${CARCH}" - make test EXTRATESTOPTS="-v" -} +# check() { +# cd "${srcdir}/build-${CARCH}" +# make test EXTRATESTOPTS="-v" +# } build() { local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) @@ -387,7 +390,7 @@ package() { sha1sums=('871a06df9ab70984b7398ac53047fe125c757a70' '87bbcdc0f0ca1e1d23dd9822566efe91d6bd8a85' - '875375f2ef44eaf530121f50419d2ad9be24af58' + 'ab513dfa2e0902084ae92409bfdfd25e6a5286e2' 'e6358136f1f340de833365ef3cc2cebee5ea300b' 'db10f4f2b451217996fb0c461d893e6f8d8ce005' '840e903fd99ccac2a66d177906f103a461ae841b' @@ -470,6 +473,7 @@ sha1sums=('871a06df9ab70984b7398ac53047fe125c757a70' '4564e95c83e30dca025d6a7ecf0b24a709ea5120' '79ff9a468dcfd2c55afa70758bd6a50b2a940ed4' '2bf23da1017ab6ed5bc59c4f3fbf713093036a09' + '6473ae1b2108c26403022c6846e562d2cfff9727' 'a97dbe5299385b9fde442779d00f9a161ef3f950' 'd5c9e4e47db62db241f4488d9bc974b083b7b0e3' 'c7eb543aee59f4c246018fa7943a1eaa12e6809c') diff --git a/mingw-w64-python3/Python-3.5.0/0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch b/mingw-w64-python3/Python-3.5.0/0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch new file mode 100644 index 0000000000..d277f07df2 --- /dev/null +++ b/mingw-w64-python3/Python-3.5.0/0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch @@ -0,0 +1,19 @@ +--- Python-3.5.0/Python/getcompiler.c.orig 2015-05-23 17:09:24.000000000 +0100 ++++ Python-3.5.0/Python/getcompiler.c 2016-01-02 15:13:57.737265800 +0000 +@@ -6,7 +6,15 @@ + #ifndef COMPILER + + #ifdef __GNUC__ +-#define COMPILER "\n[GCC " __VERSION__ "]" ++/* To retain compatibility with things that determine ++ CPU arch by calling get_build_version in msvccompiler.py ++ (such as NumPy) we add (AMD64) for 64-bit Windows. */ ++#if defined(_WIN32) && defined(__x86_64__) ++#define ARCH_SUFFIX " (AMD64)" ++#else ++#define ARCH_SUFFIX "" ++#endif ++#define COMPILER "\n[GCC " __VERSION__ ARCH_SUFFIX "]" + #endif + + #endif /* !COMPILER */ From be959588e10543923c5a47cb040fd7badfb785e8 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 3 Jan 2016 03:24:25 +0000 Subject: [PATCH 2052/2060] gobject-introlspection: Reinstate LRN's 0024-patch With modifications with regards to 0001-Revert-Windows-port-Work-arount-MSYS-weirdness-where.patch --- ...ort-Work-arount-MSYS-weirdness-where.patch | 9 +- ...ments-to-g-ir-scanner-through-a-.all.patch | 61 ++++++++++---- mingw-w64-gobject-introspection/PKGBUILD | 83 ++++++------------- 3 files changed, 73 insertions(+), 80 deletions(-) diff --git a/mingw-w64-gobject-introspection/0001-Revert-Windows-port-Work-arount-MSYS-weirdness-where.patch b/mingw-w64-gobject-introspection/0001-Revert-Windows-port-Work-arount-MSYS-weirdness-where.patch index e125c405de..d92d33f5f7 100644 --- a/mingw-w64-gobject-introspection/0001-Revert-Windows-port-Work-arount-MSYS-weirdness-where.patch +++ b/mingw-w64-gobject-introspection/0001-Revert-Windows-port-Work-arount-MSYS-weirdness-where.patch @@ -4,7 +4,7 @@ Date: Wed, 30 Dec 2015 17:28:58 +0000 Subject: [PATCH] Revert "Windows port: Work arount MSYS weirdness where it changes --libtool= command line arguments." -A very old version of MSYS performed path normalization during conversion +A very old version of MSYS performed normalization during path conversion so "/bin/sh ../../libtool" became "c:/opt/msys/1.0/bin/libtool" ("sh .." was considered a single folder), it doesn't do this any more; nor does MSYS2. @@ -28,9 +28,8 @@ doubly appear in resolve_windows_libs in ccompiler.py, as otherwise sh.exe will try to execute sh.exe and that clearly will not work. I've left some MSYS-specific hacks in dumper.py, some of which could -be removed (execution through a temporary shell script), but I've -opted to leave this, if only while I figure out why it currently -doesn't work on MSYS2. +probaly be removed safely now (execution through a temporary shell +script), but I've opted to leave it as is for now. This reverts commit 33bbdce144d275b693752f0bc2c2f292deda854e. --- @@ -52,7 +51,7 @@ index cd7bd1b..c28d734 100644 -# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path -# because we already "know" where the libtool configure produced is. -_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) -+# Reuse the LIBTOOL variable from by automake if it's set ++# Reuse the LIBTOOL variable from automake if it's set +_gir_libtool = $(if $(LIBTOOL),--libtool="$(LIBTOOL)") # Macros for AM_SILENT_RULES prettiness diff --git a/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch b/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch index 3eff88a61f..84a2a7e721 100644 --- a/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch +++ b/mingw-w64-gobject-introspection/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch @@ -1,8 +1,43 @@ -@@ -, +, @@ +From 0901fd14718189b9679e7669d59ba31be7e4440f 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?= +Date: Sat, 28 Mar 2015 12:23:32 +0000 +Subject: [PATCH] Support passing arguments to g-ir-scanner through a file + +to avoid hitting the commandline length limit on W32. + +To ensure that no unnecessary mangling +takes place, only the .gir rule prerequisites (presumably - only filenames) +are affected, other arguments (various flags and options) go as-is. + +Makefile.introspection is modified to dump the filenames into a file +$(1).files (i.e. Glib-2.0.gir.files) and to give the name of that file +as an argument --argfile=$(1).files. + +The scanner_main() function is modified to feed its arguments to a utility +function that pre-processes the arguments, looking for the "--argfile" +argument, and inserts in its place an argument list from the tempfile, +which is parsed by shlex.split() and is mangled by a special mangling +function. + +There is another _get_option_parser() invocation elswhere in scannermain.py, +it remains unaltered. + +Looking for "--argfile", parsing the file and mangling the arguments is +only done for W32 platforms. For non-W32 platforms it's a no-op. +Makefile.introspection (renamed to Makefile.introspection.in) is processed +by autoconf, which comments out the part that is not applicable to +the platform. This way $(1).files is only generated on W32, +and --argfile=$(1).files is only given on W32. + +Files must not have spaces in their names, as Makefile.introspection can't +do any processing on them. + +https://bugzilla.gnome.org/show_bug.cgi?id=620566 +--- Makefile.am | 2 +- - Makefile.introspection | 166 ---------------------------------------- - Makefile.introspection.in | 187 ++++++++++++++++++++++++++++++++++++++++++++++ + Makefile.introspection | 162 ---------------------------------------- + Makefile.introspection.in | 183 ++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 7 ++ giscanner/scannermain.py | 3 +- giscanner/utils.py | 54 +++++++++++++ @@ -90,12 +125,8 @@ -_gir_includes = $(foreach include,$($(_gir_name)_INCLUDES),--include=$(include)) -_gir_export_packages = $(foreach pkg,$($(_gir_name)_EXPORT_PACKAGES),--pkg-export=$(pkg)) - --# Reuse the LIBTOOL variable from automake if it's set, but --# work around MSYS weirdness: When running g-ir-scanner, MSYS changes --# a command-line argument --libtool="/bin/sh ../../libtool" into --# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path --# because we already "know" where the libtool configure produced is. --_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) +-# Reuse the LIBTOOL variable from automake if it's set +-_gir_libtool = $(if $(LIBTOOL),--libtool="$(LIBTOOL)") - -# Macros for AM_SILENT_RULES prettiness -_gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) @@ -195,7 +226,7 @@ - $(call introspection-compiler,$<,$@) --- a/Makefile.introspection.in +++ a/Makefile.introspection.in -@@ -0,0 +1,189 @@ +@@ -0,0 +1,185 @@ +# -*- Mode: make -*- +# Copyright 2009-2010 Johan Dahlin +# @@ -261,12 +292,8 @@ +_gir_includes = $(foreach include,$($(_gir_name)_INCLUDES),--include=$(include)) +_gir_export_packages = $(foreach pkg,$($(_gir_name)_EXPORT_PACKAGES),--pkg-export=$(pkg)) + -+# Reuse the LIBTOOL variable from automake if it's set, but -+# work around MSYS weirdness: When running g-ir-scanner, MSYS changes -+# a command-line argument --libtool="/bin/sh ../../libtool" into -+# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path -+# because we already "know" where the libtool configure produced is. -+_gir_libtool = $(if $(findstring MINGW,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) ++# Reuse the LIBTOOL variable from automake if it's set ++_gir_libtool = $(if $(LIBTOOL),--libtool="$(LIBTOOL)") + +# Macros for AM_SILENT_RULES prettiness +_gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) @@ -495,7 +522,7 @@ + + _libtool_pat = re.compile("dlname='([A-z0-9\.\-\+]+)'\n") - + --- a/tests/offsets/Makefile.am +++ a/tests/offsets/Makefile.am diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index 8506f7f31a..e535ccbb32 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -1,58 +1,12 @@ # Maintainer: Alexey Pavlov # Maintainer: Ray Donnelly -# How this works / currently doesn't work: -# Generally speaking, gobject-introspection creates a program that links to the -# library that's to be introspected then calling get_type(). -# This is done lib/gobject-introspection/giscanner/dumper.py -# .. with 'special' behaviour if MSYSTEM is set (may be why it succeeds from cmd.exe -# and when debugging it from QtCreator outside of launching it from an MSYS2 shell) -# -# It appears that '/usr/bin/sed' is getting called by mingw-w64-python, possibly via -# sh.exe (which should be fine) but possibly not (which would not be fine) ... -# -# arg E:/msys64/usr/bin/bash.exe File "E:/msys64/mingw64/bin/g-ir-scanner", line 58, in -# sys.exit(scanner_main(sys.argv)) -# File "E:/msys64/mingw64/bin/../lib/gobject-introspection/giscanner/scannermain.py", line 531, in scanner_main -# shlibs = create_binary(transformer, options, args) -# File "E:/msys64/mingw64/bin/../lib/gobject-introspection/giscanner/scannermain.py", line 412, in create_binary -# gdump_parser.get_error_quark_functions()) -# File "E:/msys64/mingw64/bin/../lib/gobject-introspection/giscanner/dumper.py", line 321, in compile_introspection_binary -# return dc.run() -# File "E:/msys64/mingw64/bin/../lib/gobject-introspection/giscanner/dumper.py", line 169, in run -# self._link(bin_path, introspection_obj) -# File "E:/msys64/mingw64/bin/../lib/gobject-introspection/giscanner/dumper.py", line 310, in _link -# subprocess.check_call(args) -# File "E:/msys64/mingw64/lib/python2.7/subprocess.py", line 535, in check_call -# retcode = call(*popenargs, **kwargs) -# File "E:/msys64/mingw64/lib/python2.7/subprocess.py", line 522, -# /usr/bin/sed -# : -# read error on -# stdin -# : -# Bad file descriptor -# 1 [main] sh 9004 child_info::sync: wait failed, pid 8772, Win32 error 0 -# 740 [main] sh 9004 fork: child -1 - forked process 8772 died unexpectedly, retry 0, exit code 0x1, errno 11 -# ../libtool: fork: retry: No child processes -# 1 [main] sh 8772 E:\msys64\usr\bin\sh.exe: *** fatal error in forked process - WFSO timed out after longjmp -# 824 [main] sh 8772 cygwin_exception::open_stackdumpfile: Dumping stack trace to sh.exe.stackdump -# 301000443 [main] sh 9004 child_info::sync: wait failed, pid 9188, Win32 error 0 -# 301001268 [main] sh 9004 fork: child -1 - forked process 9188 died unexpectedly, retry 0, exit code 0x1, errno 11 -# ../libtool: fork: retry: No child processes -# 301025432 [main] sh 9188 E:\msys64\usr\bin\sh.exe: *** fatal error in forked process - WFSO timed out after longjmp -# 301026255 [main] sh 9188 cygwin_exception::open_stackdumpfile: Dumping stack trace to sh.exe.stackdump -# 1 [main] sh 9720 child_info::sync: wait failed, pid 7896, Win32 error 0 - -# E:/msys64/usr/bin/bash.exe -c "cmd //C echo ../../gegl-0.3.4/gegl/gegl.h" -# - _realname=gobject-introspection pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-runtime") pkgver=1.46.0 -pkgrel=2 +pkgrel=3 arch=('any') url="https://live.gnome.org/GObjectIntrospection" license=("LGPL") @@ -74,11 +28,11 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${pkgver%.* 0055-fix-python-detection.patch) md5sums=('adb40a31c7c80b65b0f4c8fd71b493dc' - 'd871f83d724b89eb49375eb8e4cb1246' + '37d1683439e0b31da62220418c8965fb' 'f0ecde986ebf1f0e28b752f9c36fb6c1' '69ef34e2f57abc8afe1b9f6fa3786e97' '8d3589fb959a0a68ce7ce9051fa441fe' - '412548a4de14aa26f27300fd6db95d41' + 'd22ceb61d87fc049373d4589453d4fc3' 'e3598d539258678eef8dde2216419faf' '6d809bf266e42a20b31a7acbaf0384d1') @@ -88,11 +42,9 @@ prepare() { patch -p1 -i "${srcdir}"/0018-debug-rmtree-errors.mingw.patch patch -p1 -i "${srcdir}"/0021-tests-no-undefined.patch patch -p1 -i "${srcdir}"/0022-change-pkg-config-invocations.mingw.patch -# I assume this patch exists to prevent MSYS2 argument conversion from happening? I've disabled -# it for now as it's getting in the way of investigating other problems (it renames files I've -# changed in 0001-Revert.. so my changes there get lost. It would be nice to know the real goal -# of this patch. It could be commandline length. I think it's from LRN?) -# patch -p1 -i "${srcdir}"/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch + # Source for this patch is: + # http://bazaar.launchpad.net/~lrn1986/stupidbuild/trunk/view/head:/src/mingw/gobject-introspection-1.0-1.44.0-2/patches/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch + patch -p1 -i "${srcdir}"/0024-Support-passing-arguments-to-g-ir-scanner-through-a-.all.patch patch -p1 -i "${srcdir}"/0050-dont-load-msvcrt.patch patch -p1 -i "${srcdir}"/0055-fix-python-detection.patch @@ -153,7 +105,22 @@ package_gobject-introspection-runtime() { } # Wrappers -package_mingw-w64-i686-gobject-introspection() { package_gobject-introspection; } -package_mingw-w64-i686-gobject-introspection-runtime() { package_gobject-introspection-runtime; } -package_mingw-w64-x86_64-gobject-introspection() { package_gobject-introspection; } -package_mingw-w64-x86_64-gobject-introspection-runtime() { package_gobject-introspection-runtime; } +package_mingw-w64-i686-gobject-introspection() +{ + package_gobject-introspection +} + +package_mingw-w64-i686-gobject-introspection-runtime() +{ + package_gobject-introspection-runtime +} + +package_mingw-w64-x86_64-gobject-introspection() +{ + package_gobject-introspection +} + +package_mingw-w64-x86_64-gobject-introspection-runtime() +{ + package_gobject-introspection-runtime +} From 2f2c632c57513f30ff2d61f4cd394e1bf8277288 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 3 Jan 2016 04:20:06 +0000 Subject: [PATCH 2053/2060] gegl: Minor fixes --- mingw-w64-gegl/PKGBUILD | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mingw-w64-gegl/PKGBUILD b/mingw-w64-gegl/PKGBUILD index 1d153608f0..dd2a467f95 100644 --- a/mingw-w64-gegl/PKGBUILD +++ b/mingw-w64-gegl/PKGBUILD @@ -2,6 +2,7 @@ # Contributor: Ray Donnelly _realname=gegl +pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") @@ -65,6 +66,7 @@ build() { if check_option "debug" "y"; then extra_config+=("--enable-debug") VERBOSE="V=1" + export DISTUTILS_DEBUG=1 fi export lt_cv_deplibs_check_method='pass_all' From f50c2b007fb335603a0bc85711c73fb2f37caa9c Mon Sep 17 00:00:00 2001 From: Bjoern Lemke Date: Sat, 2 Jan 2016 19:33:00 +0100 Subject: [PATCH 2054/2060] Added PKGBUILD file for dragon parser generator Removed pgp line fromm PKGBUILD --- mingw-w64-cego/PKGBUILD | 2 +- mingw-w64-dragon/PKGBUILD | 46 ++++++++++++++++++++++++++++++++++++++ mingw-w64-lfcbase/PKGBUILD | 2 +- mingw-w64-lfcxml/PKGBUILD | 2 +- 4 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-dragon/PKGBUILD diff --git a/mingw-w64-cego/PKGBUILD b/mingw-w64-cego/PKGBUILD index 0fb2f16fdd..cb5d52cbd1 100644 --- a/mingw-w64-cego/PKGBUILD +++ b/mingw-w64-cego/PKGBUILD @@ -9,7 +9,7 @@ pkgdesc="Cego database system (mingw-w64)" arch=('any') url='http://www.lemke-it.com/' license=('GPL3') -validpgpkeys=('gpg_KEY') + source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") depends=("${MINGW_PACKAGE_PREFIX}-lfcbase") diff --git a/mingw-w64-dragon/PKGBUILD b/mingw-w64-dragon/PKGBUILD new file mode 100644 index 0000000000..ba2e71d48b --- /dev/null +++ b/mingw-w64-dragon/PKGBUILD @@ -0,0 +1,46 @@ +# Maintainer: Bjoern Lemke + +_realname=dragon +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=1.4.0 +pkgrel=1 +pkgdesc="Dragon parser generator (mingw-w64)" +arch=('any') +url='http://www.lemke-it.com/' +license=('GPL3') + +depends=("${MINGW_PACKAGE_PREFIX}-lfcbase") + +source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") + +sha256sums=("a2354e3b34fe10b7a7ba94e3fcb34c621409fd89e9d2599f883b2aade92f2277") + +prepare() { + cd $srcdir/${_realname}-${pkgver} +} + +build() { + cd "$srcdir"/${_realname}-${pkgver} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-static \ + --enable-shared + + make +} + +check() { + cd "${srcdir}"/build-${CARCH} + make check +} + +package() { + cd "${srcdir}"/build-${CARCH} + make install DESTDIR="${pkgdir}" +} diff --git a/mingw-w64-lfcbase/PKGBUILD b/mingw-w64-lfcbase/PKGBUILD index 90e67ac364..10bfee8fc6 100644 --- a/mingw-w64-lfcbase/PKGBUILD +++ b/mingw-w64-lfcbase/PKGBUILD @@ -9,7 +9,7 @@ pkgdesc="LFC C++ base classes (mingw-w64)" arch=('any') url='http://www.lemke-it.com/' license=('GPL3') -validpgpkeys=('gpg_KEY') + source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") sha256sums=("79d2b07d8d2a76b811e7ce2a80bc717c58b77e8751d97bb3c8b1d7f397b6ffd1") diff --git a/mingw-w64-lfcxml/PKGBUILD b/mingw-w64-lfcxml/PKGBUILD index 024ef5e62a..d61babbd71 100644 --- a/mingw-w64-lfcxml/PKGBUILD +++ b/mingw-w64-lfcxml/PKGBUILD @@ -9,7 +9,7 @@ pkgdesc="LFC C++ xml classes (mingw-w64)" arch=('any') url='http://www.lemke-it.com/' license=('GPL3') -validpgpkeys=('gpg_KEY') + source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") depends=("${MINGW_PACKAGE_PREFIX}-lfcbase") From c7502cbf81c3210243c9993705bb7b0ed3637630 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 3 Jan 2016 17:13:55 +0000 Subject: [PATCH 2055/2060] gimp: Update to 2.8.16 Removed mingw-add-ModuleFileName-dir-to-PATH.patch as upstream have their own fix for this now. --- mingw-w64-gimp/PKGBUILD | 13 ++++--- ...mingw-add-ModuleFileName-dir-to-PATH.patch | 35 ------------------- 2 files changed, 6 insertions(+), 42 deletions(-) delete mode 100644 mingw-w64-gimp/mingw-add-ModuleFileName-dir-to-PATH.patch diff --git a/mingw-w64-gimp/PKGBUILD b/mingw-w64-gimp/PKGBUILD index d69aaf930c..b207bf9a47 100644 --- a/mingw-w64-gimp/PKGBUILD +++ b/mingw-w64-gimp/PKGBUILD @@ -3,8 +3,8 @@ _realname=gimp pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2.8.14 -pkgrel=9 +pkgver=2.8.16 +pkgrel=1 pkgdesc="GNU Image Manipulation Program (mingw-w64)" arch=('any') url="http://www.gimp.org/" @@ -37,13 +37,11 @@ source=(http://download.gimp.org/pub/gimp/v${pkgver%.*}/${_realname}-${pkgver}.t gegl-0.3-fix.patch find-directx-fix.patch python-m4.patch - mingw-add-ModuleFileName-dir-to-PATH.patch replace-pygtk-codegen.patch) -md5sums=('233c948203383fa078434cc3f8f925cb' +md5sums=('30e0a1b7c18b0e3415f4ac54567252ac' 'd1e19159164cac7b39578a6b0bb02cbb' '0df0c9c5f55012023894ed8b959c2fa9' '460f010cfb789608d2045a4a936f47b2' - '0d5c523e91fbfbab43c2f12447ccfebc' '99c9edb5613db63033e043261e53d2c3') prepare() { @@ -51,7 +49,6 @@ prepare() { patch -p1 -i ${srcdir}/gegl-0.3-fix.patch patch -p1 -i ${srcdir}/find-directx-fix.patch patch -p1 -i ${srcdir}/python-m4.patch - patch -p1 -i ${srcdir}/mingw-add-ModuleFileName-dir-to-PATH.patch patch -p1 -i ${srcdir}/replace-pygtk-codegen.patch rm -fr autom4te.cache @@ -87,7 +84,9 @@ build() { --with-directx-sdk=${MINGW_PREFIX}/${MINGW_CHOST} \ --without-x - make + # V=1 because of a race condition (a generated 'bin2c' type + # file ending up truncated once). This might avoid it. + make V=1 } package() { diff --git a/mingw-w64-gimp/mingw-add-ModuleFileName-dir-to-PATH.patch b/mingw-w64-gimp/mingw-add-ModuleFileName-dir-to-PATH.patch deleted file mode 100644 index 911d404033..0000000000 --- a/mingw-w64-gimp/mingw-add-ModuleFileName-dir-to-PATH.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- gimp-2.8.10/app/main.c.orig 2014-02-27 14:45:08.125400000 +0400 -+++ gimp-2.8.10/app/main.c 2014-02-27 15:05:28.119200000 +0400 -@@ -309,6 +309,32 @@ - if (p_SetDllDirectoryA) - (*p_SetDllDirectoryA) (""); - } -+ /* Add ourself to system path */ -+ { -+ int result = 0; -+ static char progpath[PATH_MAX] = {'\0'}; -+ char *path = getenv("PATH"); -+ result = GetModuleFileNameA(NULL, progpath, PATH_MAX); -+ if (path) { -+ /* Add path of executable to system path. */ -+ char *module_path = progpath; -+ char *new_path = alloca(strlen("PATH=")+strlen(module_path)+1+strlen(path)+1); -+ if (new_path) { -+ strcpy( new_path, "PATH=" ); -+ strcat( new_path, module_path ); -+ char *slashes = strchr( new_path, '/' ); -+ while (slashes) { -+ *slashes = '\\'; -+ slashes = strchr( slashes+1, '/' ); -+ } -+ char *end = strrchr(new_path, '\\') ? strrchr(new_path, '\\') : new_path + strlen(new_path); -+ end[0] = ';'; -+ end[1] = '\0'; -+ strcat( new_path, path ); -+ putenv( new_path ); -+ } -+ } -+ } - #ifndef _WIN64 - { - typedef BOOL (WINAPI *t_SetProcessDEPPolicy) (DWORD dwFlags); From ac674b2395cda0d1c83328198f06de8de66d60fa Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 4 Jan 2016 00:07:31 +0000 Subject: [PATCH 2056/2060] binutils-git: Update pkgver Recording last-good-known-commit just-in-case --- mingw-w64-binutils-git/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-binutils-git/PKGBUILD b/mingw-w64-binutils-git/PKGBUILD index 8861b402ee..7c569322d4 100644 --- a/mingw-w64-binutils-git/PKGBUILD +++ b/mingw-w64-binutils-git/PKGBUILD @@ -5,7 +5,7 @@ _realname=binutils _base_ver=2.25 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") # replaces="${MINGW_PACKAGE_PREFIX}-${_realname}=${_base_ver}" -pkgver=2.25.r82129.62c4c24 +pkgver=2.25.r82131.aae60b2 pkgrel=1 provides=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") From e625b03bf48e7529f8e74636889ff40ccddad9ed Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 4 Jan 2016 00:10:58 +0000 Subject: [PATCH 2057/2060] clang + clang-svn: Added lldb (disabled as WIP) --- mingw-w64-clang-svn/PKGBUILD | 240 ++++++++++++++++-------------- mingw-w64-clang/PKGBUILD | 276 +++++++++++++++++++---------------- 2 files changed, 278 insertions(+), 238 deletions(-) diff --git a/mingw-w64-clang-svn/PKGBUILD b/mingw-w64-clang-svn/PKGBUILD index e21605469d..5277cbc7df 100644 --- a/mingw-w64-clang-svn/PKGBUILD +++ b/mingw-w64-clang-svn/PKGBUILD @@ -20,10 +20,11 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-libc++-svn" "${MINGW_PACKAGE_PREFIX}-lld-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn" + #"${MINGW_PACKAGE_PREFIX}-lldb-svn" ) -pkgver=60424.b883875 -pkgrel=2 -pkgdesc="C language family frontend for LLVM (mingw-w64)" +pkgver=60430.db7c3ac +pkgrel=1 +pkgdesc="C language family frontend for LLVM (svn) (mingw-w64)" arch=('any') url="http://llvm.org" license=("custom:University of Illinois/NCSA Open Source License") @@ -31,10 +32,10 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python3-sphinx" - "python2" + "${MINGW_PACKAGE_PREFIX}-python2" "git") depends=("${MINGW_PACKAGE_PREFIX}-gcc") -options=('staticlibs') # 'debug' '!strip') +options=('debug' '!strip') source=("llvm"::"git+http://llvm.org/git/llvm.git" "lld"::"git+http://llvm.org/git/lld.git" "clang"::"git+http://llvm.org/git/clang.git" @@ -43,6 +44,7 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" "testsuite"::"git+http://llvm.org/git/test-suite.git" "libcxxabi"::"git+http://llvm.org/git/libcxxabi.git" "libcxx"::"git+http://llvm.org/git/libcxx.git" + "lldb"::"git+http://llvm.org/git/lldb.git" 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch 0002-use-DESTDIR-on-windows.patch 0003-generate-proper-library-names-mingw.patch @@ -56,6 +58,7 @@ source=("llvm"::"git+http://llvm.org/git/llvm.git" #0021-0029 -> rt #0031-0039 -> lld #0041-0049 -> c++ +#0051-0059 -> lldb md5sums=('SKIP' 'SKIP' @@ -65,6 +68,7 @@ md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' + 'SKIP' 'a384d4607d9dcdfdcac6912ac413ec58' '4d696d298d70db32338659ce2cfa505f' '9b56e0d949c72be49aa059fd626923e2' @@ -100,14 +104,13 @@ prepare() { sed -i '/@LLVM_CONFIG_CMAKE_DIR@/s:$(PROJ_cmake):$(PROJ_prefix)/share/llvm/cmake:' \ cmake/modules/Makefile - #cd "${srcdir}"/compiler-rt + cd "${srcdir}"/compiler-rt cd "${srcdir}"/lld - # lld git patches here cd "${srcdir}"/libcxx git am "${srcdir}"/0041-libcxx-add-support-for-mingw-w64.patch - + cd "${srcdir}"/clang git am "${srcdir}"/0014-dont-create-cl-mingw.patch git am "${srcdir}"/0018-mingw-enable-static-libclang.patch @@ -116,15 +119,14 @@ prepare() { # At the present, clang must reside inside the LLVM source code tree to build # See http://llvm.org/bugs/show_bug.cgi?id=4840 - mv "${srcdir}/clang" tools/clang + mv "${srcdir}/clang" tools/clang mv "${srcdir}/clang-tools-extra" tools/clang/tools/extra - mv "${srcdir}/lld" tools/lld -# mv "${srcdir}/lldb" tools/lldb - mv "${srcdir}/compiler-rt" projects/compiler-rt - mv "${srcdir}/libcxxabi" projects/libcxxabi - mv "${srcdir}/libcxx" projects/libcxx -# mv "${srcdir}/testsuite" projects/test-suite - mkdir build-${CARCH} + mv "${srcdir}/lld" tools/lld + mv "${srcdir}/lldb" tools/lldb + mv "${srcdir}/compiler-rt" projects/compiler-rt + mv "${srcdir}/libcxxabi" projects/libcxxabi + mv "${srcdir}/libcxx" projects/libcxx +# mv "${srcdir}/testsuite" projects/test-suite } build() { @@ -137,6 +139,7 @@ build() { if check_option "debug" "y"; then extra_config+=(-DCMAKE_BUILD_TYPE=Debug) + VERBOSE="VERBOSE=1" else extra_config+=(-DCMAKE_BUILD_TYPE=Release) fi @@ -173,16 +176,14 @@ build() { "${extra_config[@]}" \ ../llvm - make + make ${VERBOSE} # Disable automatic installation of components that go into subpackages - cp tools/cmake_install.cmake tools/cmake_install.cmake.orig - cp tools/clang/tools/cmake_install.cmake tools/clang/tools/cmake_install.cmake.orig - cp projects/cmake_install.cmake projects/cmake_install.cmake.orig - - sed -i '/\(clang\|lld\|lldb\)\/cmake_install.cmake/d' tools/cmake_install.cmake - sed -i '/\(extra\|scan-build\|scan-view\)\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake - sed -i '/\(compiler-rt\|libcxxabi\|libcxx\)\/cmake_install.cmake/d' projects/cmake_install.cmake + # -i.orig to check what has been removed in-case it starts dropping more than it should + # + sed -i.orig '/\(clang\|lld\|lldb\)\/cmake_install.cmake/d' tools/cmake_install.cmake + sed -i.orig '/\(extra\|scan-build\|scan-view\)\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake + sed -i.orig '/\(compiler-rt\|libcxxabi\|libcxx\)\/cmake_install.cmake/d' projects/cmake_install.cmake } #check() { @@ -191,8 +192,97 @@ build() { # make check || true #} +package_llvm-svn() { + pkgdesc="Low Level Virtual Machine (svn) (mingw-w64)" + #depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") # "compiler-rt" + provides=("${MINGW_PACKAGE_PREFIX}-llvm") + conflicts=("${MINGW_PACKAGE_PREFIX}-llvm") + install=llvm-${CARCH}.install + + pkgver=$(pkgver_internal "${srcdir}"/llvm) + + cd "${srcdir}"/llvm + + make -C ../build-${CARCH} DESTDIR="${pkgdir}" install + + install -Dm644 LICENSE.TXT "${pkgdir}${MINGW_PREFIX}/share/licenses/llvm/LICENSE" + + # Install CMake stuff + install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} + install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/modules/ + install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/platforms/ + + # FileCheck is needed to build rust. + install -Dm755 "${srcdir}"/build-${CARCH}/bin/FileCheck.exe "${pkgdir}${MINGW_PREFIX}/bin/FileCheck.exe" +} + +package_compiler-rt-svn() { + pkgdesc="Runtime libraries for Clang and LLVM (svn) (mingw-w64)" + url="http://compiler-rt.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") + provides=("${MINGW_PACKAGE_PREFIX}-compiler-rt") + + conflicts=("${MINGW_PACKAGE_PREFIX}-compiler-rt") + pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/compiler-rt) + + cd "${srcdir}/llvm" + make -C ../build-${CARCH}/projects/compiler-rt DESTDIR="${pkgdir}" install + } + +package_libcxxabi-svn() { + pkgdesc="C++ Standard Library Support (svn) (mingw-w64)" + url="http://libcxxabi.llvm.org/" + provides=("${MINGW_PACKAGE_PREFIX}-libc++abi") + conflicts=("${MINGW_PACKAGE_PREFIX}-libc++abi") + pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxxabi) + + cd "${srcdir}/llvm" + make -C ../build-${CARCH}/projects/libcxxabi -j1 DESTDIR="${pkgdir}" install +} + +package_libcxx-svn() { + pkgdesc="C++ Standard Library (svn) (mingw-w64)" + url="http://libcxx.llvm.org/" + provides=("${MINGW_PACKAGE_PREFIX}-libc++") + conflicts=("${MINGW_PACKAGE_PREFIX}-libc++") + pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxx) + + cd "${srcdir}/llvm" + make -C ../build-${CARCH}/projects/libcxx -j1 DESTDIR="${pkgdir}" install +} + +package_lldb-svn() { + pkgdesc="Next generation, high-performance debugger (svn) (mingw-w64)" + url="http://lldb.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-readline" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-python2") + + cd "${srcdir}/llvm" + + make -C ../build-${CARCH}/tools/lldb DESTDIR="${pkgdir}" install + + # Compile Python scripts + python2 -m compileall "${pkgdir}${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" + python2 -O -m compileall "${pkgdir}${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" + + install -Dm644 tools/lldb/LICENSE.TXT "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE" +} + +package_lld-svn() { + pkgdesc="Linker tools for LLVM (svn) (mingw-w64)" + url="http://lld.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") + provides=("${MINGW_PACKAGE_PREFIX}-lld") + conflicts=("${MINGW_PACKAGE_PREFIX}-lld") + pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/lld) + + cd "${srcdir}/llvm" + make -C ../build-${CARCH}/tools/lld -j1 DESTDIR="${pkgdir}" install +} + package_clang-svn() { - pkgdesc="C language family frontend for LLVM (mingw-w64)" + pkgdesc="C language family frontend for LLVM (svn) (mingw-w64)" url="http://clang.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") provides=("${MINGW_PACKAGE_PREFIX}-clang") @@ -201,15 +291,16 @@ package_clang-svn() { cd "${srcdir}/llvm" make -C ../build-${CARCH}/tools/clang DESTDIR="${pkgdir}" install - + # Install static clang library .. cp ../build-${CARCH}/lib/libclang.a ${pkgdir}${MINGW_PREFIX}/lib/ } package_clang-analyzer-svn() { - pkgdesc="A source code analysis framework (mingw-w64)" + pkgdesc="A source code analysis framework (svn) (mingw-w64)" url="http://clang-analyzer.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-clang-svn" "python2") + depends=("${MINGW_PACKAGE_PREFIX}-clang-svn" + "${MINGW_PACKAGE_PREFIX}-python2") provides=("${MINGW_PACKAGE_PREFIX}-clang-analyzer") conflicts=("${MINGW_PACKAGE_PREFIX}-clang-analyzer") pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/clang) @@ -231,7 +322,7 @@ package_clang-analyzer-svn() { } package_clang-tools-extra-svn() { - pkgdesc="Extra tools built using Clang's tooling APIs (mingw-w64)" + pkgdesc="Extra tools built using Clang's tooling APIs (svn) (mingw-w64)" url="http://clang.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-clang-svn") provides=("${MINGW_PACKAGE_PREFIX}-clang-tools-extra") @@ -242,89 +333,6 @@ package_clang-tools-extra-svn() { make -C ../build-${CARCH}/tools/clang/tools/extra -j1 DESTDIR="${pkgdir}" install } -package_llvm-svn() { - pkgdesc="Low Level Virtual Machine (mingw-w64)" - #depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "compiler-rt" - provides=("${MINGW_PACKAGE_PREFIX}-llvm") - conflicts=("${MINGW_PACKAGE_PREFIX}-llvm") - - pkgver=$(pkgver_internal "${srcdir}"/llvm) - - cd "${srcdir}"/llvm - - make -C ../build-${CARCH} DESTDIR="${pkgdir}" install - - install -Dm644 LICENSE.TXT "${pkgdir}${MINGW_PREFIX}/share/licenses/llvm/LICENSE" - - # Install CMake stuff - install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} - install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/modules/ - install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/platforms/ -} - -package_compiler-rt-svn() { - pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)" - url="http://compiler-rt.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") - provides=("${MINGW_PACKAGE_PREFIX}-compiler-rt") - - conflicts=("${MINGW_PACKAGE_PREFIX}-compiler-rt") - pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/compiler-rt) - - cd "${srcdir}/llvm" - make -C ../build-${CARCH}/projects/compiler-rt DESTDIR="${pkgdir}" install - } - -package_libcxxabi-svn() { - pkgdesc="C++ Standard Library Support (mingw-w64)" - url="http://libcxxabi.llvm.org/" - provides=("${MINGW_PACKAGE_PREFIX}-libc++abi") - conflicts=("${MINGW_PACKAGE_PREFIX}-libc++abi") - pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxxabi) - - cd "${srcdir}/llvm" - make -C ../build-${CARCH}/projects/libcxxabi -j1 DESTDIR="${pkgdir}" install -} - -package_libcxx-svn() { - pkgdesc="C++ Standard Library (mingw-w64)" - url="http://libcxx.llvm.org/" - provides=("${MINGW_PACKAGE_PREFIX}-libc++") - conflicts=("${MINGW_PACKAGE_PREFIX}-libc++") - pkgver=$(pkgver_internal "${srcdir}"/llvm/projects/libcxx) - - cd "${srcdir}/llvm" - make -C ../build-${CARCH}/projects/libcxx -j1 DESTDIR="${pkgdir}" install -} - -package_lldb-svn() { - pkgdesc="Next generation, high-performance debugger (mingw-w64)" - url="http://lldb.llvm.org/" - depends=('libedit' 'libxml2' 'python2') - - cd "${srcdir}/llvm-$pkgver.src" - - make -C ../build-${CARCH}/tools/lldb DESTDIR="${pkgdir}" install - - # Compile Python scripts - python2 -m compileall "${pkgdir}${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" - python2 -O -m compileall "${pkgdir}${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" - - install -Dm644 tools/lldb/LICENSE.TXT "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE" -} - -package_lld-svn() { - pkgdesc="Linker tools for LLVM (mingw-w64)" - url="http://lld.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-llvm-svn") - provides=("${MINGW_PACKAGE_PREFIX}-lld") - conflicts=("${MINGW_PACKAGE_PREFIX}-lld") - pkgver=$(pkgver_internal "${srcdir}"/llvm/tools/lld) - - cd "${srcdir}/llvm" - make -C ../build-${CARCH}/tools/lld -j1 DESTDIR="${pkgdir}" install -} - # Wrappers package_mingw-w64-i686-clang-svn(){ package_clang-svn @@ -354,6 +362,10 @@ package_mingw-w64-i686-lld-svn(){ package_lld-svn } +package_mingw-w64-i686-lldb-svn(){ + package_lldb-svn +} + package_mingw-w64-i686-llvm-svn(){ package_llvm-svn } @@ -386,6 +398,10 @@ package_mingw-w64-x86_64-lld-svn(){ package_lld-svn } +package_mingw-w64-x86_64-lldb-svn(){ + package_lldb-svn +} + package_mingw-w64-x86_64-llvm-svn(){ package_llvm-svn } diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index d95193c503..837a4069e4 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -11,12 +11,12 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-libc++abi" "${MINGW_PACKAGE_PREFIX}-libc++" "${MINGW_PACKAGE_PREFIX}-lld" - #"${MINGW_PACKAGE_PREFIX}-lldb" "${MINGW_PACKAGE_PREFIX}-llvm" + #"${MINGW_PACKAGE_PREFIX}-lldb" ) pkgver=3.7.0 -pkgrel=9 -pkgdesc="LC language family frontend for LLVM (mingw-w64)" +pkgrel=10 +pkgdesc="C language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" license=("custom:University of Illinois/NCSA Open Source License") @@ -25,9 +25,12 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-libffi" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python3-sphinx" - "python2" "tar" "groff") + "${MINGW_PACKAGE_PREFIX}-python2" + "tar" + "groff") depends=("${MINGW_PACKAGE_PREFIX}-gcc") -options=('staticlibs' 'strip') +#options=('debug' '!strip') +validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg, Google. source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/cfe-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/compiler-rt-${pkgver}.src.tar.xz{,.sig} @@ -36,6 +39,7 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/libcxxabi-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/clang-tools-extra-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/lld-${pkgver}.src.tar.xz{,.sig} + http://llvm.org/releases/${pkgver}/lldb-${pkgver}.src.tar.xz{,.sig} 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch 0002-use-DESTDIR-on-windows.patch 0003-generate-proper-library-names-mingw.patch @@ -59,6 +63,7 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} #0021-0029 -> rt #0031-0039 -> lld #0041-0049 -> c++ +#0051-0059 -> lldb sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' 'SKIP' @@ -76,6 +81,8 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' 'SKIP' 'ddb658b789c501efbe4f54ff8ced2c07cd9ff686c92445d8a1ab2cd5dbd837ed' 'SKIP' + 'f4d7505bc111044eaa4033af012221e492938405b62522b8e3e354c20c4b71e9' + 'SKIP' '0804146b32138d55c611336cc81e1783c29a8fab0fe62f248ba1ad7acc711c4d' 'bf22d86c0546b80cd7212b7e7c3e1b628f00ab3aa3b9cf73ad338bf628f42597' '6a95ed671876a6de04799d15bf7485d628016bb4a95a6764217ad452d8eed0d8' @@ -83,7 +90,7 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' 'f7bc109b07b5256a068dbe55097c24b46307aea442bec884d8ba455dc3ad18fd' - '59e7afa5e74d186ad596c9a7625d6022fde0679faea9d1fd516fe0a622dbc01a' + 'e0f4127df5857af667a9e40e2a7a13877352b89c99f3213b491215bf7bd03565' '47fbe90718742d1a3c0aee919b159241e616738447de3505a48a9f5886e5db96' '0e45e76ee6d6658de52edb7b508a8bcc9f10ff0b295ff2a4e35577136a40c6a5' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' @@ -127,16 +134,6 @@ prepare() { cd "${srcdir}/libcxx-${pkgver}.src" patch -p1 -i "${srcdir}"/0041-libcxx-add-support-for-mingw-w64.patch - cd "${srcdir}" - mv lld-${pkgver}.src llvm-${pkgver}.src/tools/lld - mv cfe-${pkgver}.src llvm-${pkgver}.src/tools/clang - mv clang-tools-extra-${pkgver}.src llvm-${pkgver}.src/tools/clang/tools/extra - mv compiler-rt-${pkgver}.src llvm-${pkgver}.src/projects/compiler-rt - mv libcxxabi-${pkgver}.src llvm-${pkgver}.src/projects/libcxxabi - mv libcxx-${pkgver}.src llvm-${pkgver}.src/projects/libcxx - # mv testsuite-${pkgver}.src llvm-${pkgver}.src/projects/test-suite - - cd "${srcdir}/llvm-${pkgver}.src" # Fix docs installation directory @@ -146,22 +143,48 @@ prepare() { # Fix definition of LLVM_CMAKE_DIR in LLVMConfig.cmake sed -i '/@LLVM_CONFIG_CMAKE_DIR@/s:$(PROJ_cmake):$(PROJ_prefix)/share/llvm/cmake:' \ cmake/modules/Makefile + cd "${srcdir}"/llvm-${pkgver}.src + + # At the present, clang must reside inside the LLVM source code tree to build + # See http://llvm.org/bugs/show_bug.cgi?id=4840 + + mv "${srcdir}/cfe-${pkgver}.src" tools/clang + mv "${srcdir}/clang-tools-extra-${pkgver}.src" tools/clang/tools/extra + mv "${srcdir}/lld-${pkgver}.src" tools/lld + mv "${srcdir}/lldb-${pkgver}.src" tools/lldb + mv "${srcdir}/compiler-rt-${pkgver}.src" projects/compiler-rt + mv "${srcdir}/libcxxabi-${pkgver}.src" projects/libcxxabi + mv "${srcdir}/libcxx-${pkgver}.src" projects/libcxx +# mv "${srcdir}/testsuite-${pkgver}.src" projects/test-suite } build() { - mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} + cd "${srcdir}" + + [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} + mkdir build-${CARCH} && cd build-${CARCH} + + local -a extra_config + + if check_option "debug" "y"; then + extra_config+=(-DCMAKE_BUILD_TYPE=Debug) + VERBOSE="VERBOSE=1" + else + extra_config+=(-DCMAKE_BUILD_TYPE=Release) + fi # Include location of libffi headers in CPPFLAGS - #CPPFLAGS+="$(pkg-config --cflags libffi)" FFI_INCLUDE_DIR="$(pkg-config --cflags libffi)" FFI_INCLUDE_DIR=$(echo $FFI_INCLUDE_DIR | sed 's|-I||g') # "Ninja" cant install each component seperately # https://github.com/martine/ninja/issues/932 + PATH=${MINGW_PREFIX}/bin:/usr/bin \ MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ -G"MSYS Makefiles" \ + -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib \ -DCMAKE_MAKE_PROGRAM="/usr/bin/make.exe" \ -DCMAKE_C_COMPILER="${MINGW_PREFIX}/bin/gcc.exe" \ -DCMAKE_CXX_COMPILER="${MINGW_PREFIX}/bin/g++.exe" \ @@ -169,9 +192,9 @@ build() { -DCMAKE_C_FLAGS="${CFLAGS}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS} ${CPPFLAGS}" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE=Release \ -DLLVM_TARGETS_TO_BUILD="ARM;CppBackend;X86" \ -DLLVM_ENABLE_ASSERTIONS=OFF \ + -DLLVM_ENABLE_THREADS=1 \ -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \ -DLLVM_ENABLE_FFI=ON \ -DLLVM_ENABLE_SPHINX=ON \ @@ -179,59 +202,117 @@ build() { -DLIBCLANG_BUILD_STATIC=ON \ -DLIBCXX_ENABLE_SHARED=OFF \ -DLIBCXXABI_ENABLE_SHARED=OFF \ + "${extra_config[@]}" \ ../llvm-${pkgver}.src - make + make ${VERBOSE} # Disable automatic installation of components that go into subpackages - cp tools/cmake_install.cmake tools/cmake_install.cmake.orig - cp tools/clang/tools/cmake_install.cmake tools/clang/tools/cmake_install.cmake.orig - cp projects/cmake_install.cmake projects/cmake_install.cmake.orig - - sed -i '/\(clang\|lld\|lldb\)\/cmake_install.cmake/d' tools/cmake_install.cmake - sed -i '/\(extra\|scan-build\|scan-view\)\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake - sed -i '/\(compiler-rt\|libcxxabi\|libcxx\)\/cmake_install.cmake/d' projects/cmake_install.cmake + # -i.orig to check what has been removed in-case it starts dropping more than it should + # + sed -i.orig '/\(clang\|lld\|lldb\)\/cmake_install.cmake/d' tools/cmake_install.cmake + sed -i.orig '/\(extra\|scan-build\|scan-view\)\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake + sed -i.orig '/\(compiler-rt\|libcxxabi\|libcxx\)\/cmake_install.cmake/d' projects/cmake_install.cmake } -check() { - plain "skipping make check..." - #cd "${srcdir}/build-${MINGW_CHOST}" - #make check +#check() { +# cd "${srcdir}"/build-${CARCH} +# # Remove || true once testcase doesn't cause failures. +# make check || true +#} + +package_llvm() { + pkgdesc="Low Level Virtual Machine (mingw-w64)" + #depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") # "compiler-rt" + install=llvm-${CARCH}.install + + cd "${srcdir}"/llvm-${pkgver}.src + + make -C ../build-${CARCH} DESTDIR="${pkgdir}" install + + install -Dm644 LICENSE.TXT "${pkgdir}${MINGW_PREFIX}/share/licenses/llvm/LICENSE" + + # Install CMake stuff + install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} + install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/modules/ + install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/platforms/ + + # FileCheck is needed to build rust. + install -Dm755 "${srcdir}"/build-${CARCH}/bin/FileCheck.exe "${pkgdir}${MINGW_PREFIX}/bin/FileCheck.exe" } -package_clang(){ - pkgdesc="C language family frontend for LLVM" +package_compiler-rt() { + pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)" + url="http://compiler-rt.llvm.org/" depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") cd "${srcdir}"/llvm-${pkgver}.src + make -C ../build-${CARCH}/projects/compiler-rt DESTDIR="${pkgdir}" install + } + +package_libcxxabi() { + pkgdesc="C++ Standard Library Support (mingw-w64)" + url="http://libcxxabi.llvm.org/" + + cd "${srcdir}/llvm-${pkgver}.src" + make -C ../build-${CARCH}/projects/libcxxabi -j1 DESTDIR="${pkgdir}" install +} + +package_libcxx() { + pkgdesc="C++ Standard Library (mingw-w64)" + url="http://libcxx.llvm.org/" + + cd "${srcdir}/llvm-${pkgver}.src" + make -C ../build-${CARCH}/projects/libcxx -j1 DESTDIR="${pkgdir}" install +} + +package_lldb() { + pkgdesc="Next generation, high-performance debugger (mingw-w64)" + url="http://lldb.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-readline" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-python2") + + cd "${srcdir}/llvm-${pkgver}.src" + + make -C ../build-${CARCH}/tools/lldb DESTDIR="${pkgdir}" install + + # Compile Python scripts + python2 -m compileall "${pkgdir}${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" + python2 -O -m compileall "${pkgdir}${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" + + install -Dm644 tools/lldb/LICENSE.TXT "${pkgdir}${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE" +} + +package_lld() { + pkgdesc="Linker tools for LLVM (mingw-w64)" + url="http://lld.llvm.org/" + + cd "${srcdir}/llvm-${pkgver}.src" + make -C ../build-${CARCH}/tools/lld -j1 DESTDIR="${pkgdir}" install +} + +package_clang() { + pkgdesc="C language family frontend for LLVM (mingw-w64)" + url="http://clang.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") + + cd "${srcdir}/llvm-${pkgver}.src" make -C ../build-${CARCH}/tools/clang DESTDIR="${pkgdir}" install - - cp -f ../build-${CARCH}/lib/libclang.a ${pkgdir}${MINGW_PREFIX}/lib/ + + # Install static clang library .. + cp ../build-${CARCH}/lib/libclang.a ${pkgdir}${MINGW_PREFIX}/lib/ } package_clang-analyzer() { pkgdesc="A source code analysis framework (mingw-w64)" url="http://clang-analyzer.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}" "${MINGW_PACKAGE_PREFIX}-python2") + depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}" + "${MINGW_PACKAGE_PREFIX}-python2") - #cd "${srcdir}/llvm-${pkgver}.src" - #make -C ../build-${CARCH}/tools/clang/tools/scan-build -j1 DESTDIR="$pkgdir" install - #make -C ../build-${CARCH}/tools/clang/tools/scan-view -j1 DESTDIR="$pkgdir" install - cd "${srcdir}/llvm-${pkgver}.src/tools/clang" - install -d "${pkgdir}"${MINGW_PREFIX}/{bin,lib/clang-analyzer} - for _tool in scan-{build,view}; do - cp -r tools/${_tool} "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/ - ln -s "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/${_tool}/${_tool} "${pkgdir}"${MINGW_PREFIX}/bin/ - done - - # scan-build looks for clang within the same directory - install -d "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ - ln -s "${srcdir}"/build-${CARCH}/bin/clang.exe "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/ - - # Relocate man page - install -d "${pkgdir}"${MINGW_PREFIX}/share/man/man1 - mv "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer/scan-build/scan-build.1 \ - "${pkgdir}"${MINGW_PREFIX}/share/man/man1/ + cd "${srcdir}/llvm-${pkgver}.src" + make -C ../build-${CARCH}/tools/clang/tools/scan-build -j1 DESTDIR="${pkgdir}" install + make -C ../build-${CARCH}/tools/clang/tools/scan-view -j1 DESTDIR="${pkgdir}" install # Use Python 2 sed -i \ @@ -240,87 +321,20 @@ package_clang-analyzer() { "${pkgdir}"${MINGW_PREFIX}/bin/scan-view # Compile Python scripts - #python2 -m compileall "${pkgdir}"${MINGW_PREFIX}/bin/clang-analyzer + python2 -m compileall "${pkgdir}"${MINGW_PREFIX}/bin/clang-analyzer python2 -O -m compileall "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer install -Dm644 LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE } package_clang-tools-extra() { - pkgdesc="Extra tools built using Clang's tooling APIs" + pkgdesc="Extra tools built using Clang's tooling APIs (mingw-w64)" url="http://clang.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}") - cd "$srcdir"/llvm-${pkgver}.src - make -C ../build-${CARCH}/tools/clang/tools/extra -j1 DESTDIR="$pkgdir" install -} - -package_compiler-rt(){ - pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)" - url="http://compiler-rt.llvm.org/" - depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") - - cd "$srcdir"/llvm-${pkgver}.src - make -C ../build-${CARCH}/projects/compiler-rt DESTDIR="$pkgdir" install -} - -package_libcxxabi(){ - pkgdesc="C++ Standard Library Support (mingw-w64)" - - cd "$srcdir"/llvm-${pkgver}.src - make -C ../build-${CARCH}/projects/libcxxabi -j1 DESTDIR="$pkgdir" install -} - -package_libcxx(){ - pkgdesc="C++ Standard Library (mingw-w64)" - - cd "$srcdir"/llvm-${pkgver}.src - make -C ../build-${CARCH}/projects/libcxx -j1 DESTDIR="$pkgdir" install -} - -package_lld(){ - pkgdesc="Linker tools for LLVM (mingw-w64)" - depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") - - cd "$srcdir"/llvm-${pkgver}.src - make -C ../build-${CARCH}/tools/lld -j1 DESTDIR="${pkgdir}" install -} - -package_lldb() { - pkgdesc="Next generation, high-performance debugger (mingw-w64)" - url="http://lldb.llvm.org/" - depends=('libedit' 'libxml2' 'python2') - - cd "$srcdir"/llvm-${pkgver}.src - - make -C ../build-${CARCH}/tools/lldb DESTDIR="$pkgdir" install - - # Compile Python scripts - python2 -m compileall "$pkgdir${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" - python2 -O -m compileall "$pkgdir${MINGW_PREFIX}/lib/python2.7/site-packages/lldb" - - install -Dm644 tools/lldb/LICENSE.TXT "$pkgdir${MINGW_PREFIX}/share/licenses/$pkgname/LICENSE" -} - -package_llvm(){ - pkgdesc="Low Level Virtual Machine (mingw-w64)" - #depends=("${MINGW_PACKAGE_PREFIX}-gcc") # "${MINGW_PACKAGE_PREFIX}-compiler-rt" - install=llvm-${CARCH}.install - - cd ${srcdir}/llvm-${pkgver}.src - make -C ../build-${CARCH} DESTDIR="$pkgdir" install - - install -Dm644 LICENSE.TXT "${pkgdir}${MINGW_PREFIX}/share/licenses/llvm/LICENSE" - - # Install CMake stuff - install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms} - install -Dm644 "${srcdir}"/llvm-${pkgver}.src/cmake/modules/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/modules/" - install -Dm644 "${srcdir}"/llvm-${pkgver}.src/cmake/platforms/*.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/platforms/" - install -Dm644 "${srcdir}"/build-${CARCH}/share/llvm/cmake/LLVMConfig.cmake "${pkgdir}${MINGW_PREFIX}/share/llvm/cmake/LLVMConfig.cmake" - - # Building rust needs this - install -Dm755 "${srcdir}"/build-${CARCH}/bin/FileCheck.exe "${pkgdir}${MINGW_PREFIX}/bin/FileCheck.exe" + cd "${srcdir}/llvm-${pkgver}.src" + make -C ../build-${CARCH}/tools/clang/tools/extra -j1 DESTDIR="${pkgdir}" install } +# Wrappers package_mingw-w64-i686-clang(){ package_clang } @@ -349,6 +363,10 @@ package_mingw-w64-i686-lld(){ package_lld } +package_mingw-w64-i686-lldb(){ + package_lldb +} + package_mingw-w64-i686-llvm(){ package_llvm } @@ -381,6 +399,12 @@ package_mingw-w64-x86_64-lld(){ package_lld } +package_mingw-w64-x86_64-lldb(){ + package_lldb +} + package_mingw-w64-x86_64-llvm(){ package_llvm } + +# vim:set ts=2 sw=2 et: From 7f24799371fece3a3a91e0dba30a197fada7151f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 4 Jan 2016 00:13:06 +0000 Subject: [PATCH 2058/2060] gcc-git: Add a comment --- mingw-w64-gcc-git/PKGBUILD | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mingw-w64-gcc-git/PKGBUILD b/mingw-w64-gcc-git/PKGBUILD index ebdf52cdf7..8e16bbc8f6 100644 --- a/mingw-w64-gcc-git/PKGBUILD +++ b/mingw-w64-gcc-git/PKGBUILD @@ -10,7 +10,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-ada-git" "${MINGW_PACKAGE_PREFIX}-${_realname}-objc-git") -pkgver=r138285.dd61457 +pkgver=r142868.30adea3 pkgrel=1 pkgdesc="GCC for the MinGW-w64" arch=('any') @@ -33,8 +33,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" #checkdepends=('dejagnu') optdepends=() options=('staticlibs' '!emptydirs' '!strip' 'debug') -_branch=gcc-5-branch -#_branch=master +#_branch=gcc-5-branch +_branch=master if [ "${_branch}" = "master" ]; then _realpkgver=6.0.0 else @@ -126,9 +126,10 @@ prepare() { # 0006-Windows-Don-t-ignore-native-system-header-dir.patch .. but isn't! sed -i 's/${prefix}\/mingw\//${prefix}\//g' configure - # change hardcoded /mingw prefix to the real prefix + # change hardcoded /mingw prefix to the real prefix .. isn't this rubbish? + # it might work at build time and could be important there but beyond that?! local MINGW_NATIVE_PREFIX=$(cygpath -am ${MINGW_PREFIX}/${MINGW_CHOST}) - sed -i "s/\\/mingw\\//${MINGW_NATIVE_PREFIX//\//\\/}\\//g" gcc/config/i386/mingw32.h + sed -i "s#\\/mingw\\/#${MINGW_NATIVE_PREFIX//\//\\/}\\/#g" gcc/config/i386/mingw32.h } build() { From 352a6eee69f6f1da69a3c9b7e9bbd6f33ac49f4c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 4 Jan 2016 01:11:22 +0000 Subject: [PATCH 2059/2060] numpy: Missed bits, remove _POSIX_BUILD It is a dependency back to our Python changes that makes our NumPy changes less palatable from an upstreaming perspective. Really, we want to know if Python has been built with GCC, and that is exactly what 'GCC' in sys.version determines. --- .../0001-detect-mingw-environment.patch | 17 +-- .../0002-fix-finding-python2.patch | 76 ++++++------- .../0003-gfortran-better-version-check.patch | 6 +- .../0004-fix-testsuite.patch | 2 +- ...stack-boundary-32bit-optimized-64bit.patch | 106 +++++++----------- .../0006-disable-visualcompaq-for-mingw.patch | 23 ++-- mingw-w64-python-numpy/PKGBUILD | 46 ++++---- 7 files changed, 118 insertions(+), 158 deletions(-) diff --git a/mingw-w64-python-numpy/0001-detect-mingw-environment.patch b/mingw-w64-python-numpy/0001-detect-mingw-environment.patch index 62bfc375a1..326ab058d0 100644 --- a/mingw-w64-python-numpy/0001-detect-mingw-environment.patch +++ b/mingw-w64-python-numpy/0001-detect-mingw-environment.patch @@ -1,20 +1,13 @@ ---- numpy-1.10.0/numpy/distutils/misc_util.py.orig 2015-10-08 15:20:14.760758300 +0300 -+++ numpy-1.10.0/numpy/distutils/misc_util.py 2015-10-08 15:21:22.951938500 +0300 -@@ -13,6 +13,7 @@ - - import distutils - from distutils.errors import DistutilsError -+from sysconfig import _POSIX_BUILD - try: - from threading import local as tlocal - except ImportError: -@@ -385,6 +386,10 @@ +diff -urN numpy-1.10.2.orig/numpy/distutils/misc_util.py numpy-1.10.2/numpy/distutils/misc_util.py +--- numpy-1.10.2.orig/numpy/distutils/misc_util.py 2016-01-04 00:38:06.433855300 +0000 ++++ numpy-1.10.2/numpy/distutils/misc_util.py 2016-01-04 00:40:27.356823400 +0000 +@@ -386,6 +386,10 @@ return True if os.environ.get('MSYSTEM', '')=='MINGW32': return True + if os.environ.get('MSYSTEM', '')=='MINGW64': + return True -+ if _POSIX_BUILD: ++ if 'GCC' in sys.version: + return True return False diff --git a/mingw-w64-python-numpy/0002-fix-finding-python2.patch b/mingw-w64-python-numpy/0002-fix-finding-python2.patch index d84aeb892d..f30e2af4ce 100644 --- a/mingw-w64-python-numpy/0002-fix-finding-python2.patch +++ b/mingw-w64-python-numpy/0002-fix-finding-python2.patch @@ -1,52 +1,52 @@ ---- numpy-py2-1.10.0/numpy/distutils/mingw32ccompiler.py 2014-02-19 01:07:43.787600000 +0400 -+++ numpy-1.10.0/numpy/distutils/mingw32ccompiler.py 2014-02-19 01:26:21.634200000 +0400 -@@ -91,30 +91,6 @@ - stdout=subprocess.PIPE) - out_string = p.stdout.read() - p.stdout.close() -- -- # Before build with MinGW-W64 generate the python import library -- # with gendef and dlltool according to the MingW-W64 FAQ. -- # Use the MinGW-W64 provided msvc runtime import libraries. -- # Don't call build_import_library() and build_msvcr_library. -- -- if 'MinGW-W64' not in str(out_string): -- -- # **changes: eric jones 4/11/01 -- # 1. Check for import library on Windows. Build if it doesn't -- # exist. -- build_import_library() -- -- # Check for custom msvc runtime library on Windows. Build if it -- # doesn't exist. -- msvcr_success = build_msvcr_library() -- msvcr_dbg_success = build_msvcr_library(debug=True) -- if msvcr_success or msvcr_dbg_success: -- # add preprocessor statement for using customized msvcr lib -- self.define_macro('NPY_MINGW_USE_CUSTOM_MSVCR') +diff -urN numpy-1.10.2.orig/numpy/distutils/mingw32ccompiler.py numpy-1.10.2/numpy/distutils/mingw32ccompiler.py +--- numpy-1.10.2.orig/numpy/distutils/mingw32ccompiler.py 2015-11-12 20:04:51.000000000 +0000 ++++ numpy-1.10.2/numpy/distutils/mingw32ccompiler.py 2016-01-02 03:35:27.818684200 +0000 +@@ -87,21 +87,23 @@ + elif self.linker_dll == 'gcc': + self.linker = 'g++' + +- # **changes: eric jones 4/11/01 +- # 1. Check for import library on Windows. Build if it doesn't exist. ++ if not 'GCC' in sys.version: + +- build_import_library() ++ # **changes: eric jones 4/11/01 ++ # 1. Check for import library on Windows. Build if it doesn't exist. + +- # Check for custom msvc runtime library on Windows. Build if it doesn't exist. +- msvcr_success = build_msvcr_library() +- msvcr_dbg_success = build_msvcr_library(debug=True) +- if msvcr_success or msvcr_dbg_success: +- # add preprocessor statement for using customized msvcr lib +- self.define_macro('NPY_MINGW_USE_CUSTOM_MSVCR') - - # Define the MSVC version as hint for MinGW - msvcr_version = '0x%03i0' % int(msvc_runtime_library().lstrip('msvcr')) - self.define_macro('__MSVCRT_VERSION__', msvcr_version) ++ build_import_library() ++ ++ # Check for custom msvc runtime library on Windows. Build if it doesn't exist. ++ msvcr_success = build_msvcr_library() ++ msvcr_dbg_success = build_msvcr_library(debug=True) ++ if msvcr_success or msvcr_dbg_success: ++ # add preprocessor statement for using customized msvcr lib ++ self.define_macro('NPY_MINGW_USE_CUSTOM_MSVCR') ++ ++ # Define the MSVC version as hint for MinGW ++ msvcr_version = '0x%03i0' % int(msvc_runtime_library().lstrip('msvcr')) ++ self.define_macro('__MSVCRT_VERSION__', msvcr_version) # MS_WIN64 should be defined when building for amd64 on windows, # but python headers define it only for MS compilers, which has all ---- numpy-py2-1.10.0/numpy/distutils/fcompiler/gnu.py 2014-02-19 01:27:32.252800000 +0400 -+++ numpy-1.10.0/numpy/distutils/fcompiler/gnu.py 2014-02-19 01:31:29.804200000 +0400 -@@ -6,6 +6,7 @@ - import warnings - import platform - import tempfile -+from sysconfig import _POSIX_BUILD - from subprocess import Popen, PIPE, STDOUT - - from numpy.distutils.cpuinfo import cpu -@@ -103,7 +103,7 @@ +diff -urN numpy-1.10.2.orig/numpy/distutils/fcompiler/gnu.py numpy-1.10.2/numpy/distutils/fcompiler/gnu.py +--- numpy-1.10.2.orig/numpy/distutils/fcompiler/gnu.py 2015-11-12 20:04:51.000000000 +0000 ++++ numpy-1.10.2/numpy/distutils/fcompiler/gnu.py 2016-01-02 03:36:30.528498700 +0000 +@@ -101,7 +101,7 @@ pic_flags = ['-fPIC'] # use -mno-cygwin for g77 when Python is not Cygwin-Python - if sys.platform == 'win32': -+ if sys.platform == 'win32' and not _POSIX_BUILD: ++ if sys.platform == 'win32' and not 'GCC' in sys.version: for key in ['version_cmd', 'compiler_f77', 'linker_so', 'linker_exe']: executables[key].append('-mno-cygwin') diff --git a/mingw-w64-python-numpy/0003-gfortran-better-version-check.patch b/mingw-w64-python-numpy/0003-gfortran-better-version-check.patch index ceb1c6d685..2f7efa78a9 100644 --- a/mingw-w64-python-numpy/0003-gfortran-better-version-check.patch +++ b/mingw-w64-python-numpy/0003-gfortran-better-version-check.patch @@ -1,6 +1,6 @@ ---- numpy-1.10.0/numpy/distutils/fcompiler/gnu.py.orig 2014-08-28 15:49:10.742000000 +0400 -+++ numpy-1.10.0/numpy/distutils/fcompiler/gnu.py 2014-08-28 15:50:44.903600000 +0400 -@@ -63,7 +63,7 @@ +--- numpy-1.10.2/numpy/distutils/fcompiler/gnu.py.orig 2014-08-28 15:49:10.742000000 +0400 ++++ numpy-1.10.2/numpy/distutils/fcompiler/gnu.py 2014-08-28 15:50:44.903600000 +0400 +@@ -60,7 +60,7 @@ m = re.search(r'GNU Fortran\s+95.*?([0-9-.]+)', version_string) if m: return ('gfortran', m.group(1)) diff --git a/mingw-w64-python-numpy/0004-fix-testsuite.patch b/mingw-w64-python-numpy/0004-fix-testsuite.patch index 2b19f8703b..f1f95e94e3 100644 --- a/mingw-w64-python-numpy/0004-fix-testsuite.patch +++ b/mingw-w64-python-numpy/0004-fix-testsuite.patch @@ -1,6 +1,6 @@ --- numpy-1.9.0/numpy/core/tests/test_multiarray.py.orig 2014-09-07 10:57:48.000000000 +0200 +++ numpy-1.9.0/numpy/core/tests/test_multiarray.py 2014-09-22 20:42:55.177362800 +0200 -@@ -2691,7 +2691,7 @@ +@@ -3367,7 +3367,7 @@ """Test workarounds for 32-bit limited fwrite, fseek, and ftell calls in windows. These normally would hang doing something like this. See http://projects.scipy.org/numpy/ticket/1660""" diff --git a/mingw-w64-python-numpy/0005-mincoming-stack-boundary-32bit-optimized-64bit.patch b/mingw-w64-python-numpy/0005-mincoming-stack-boundary-32bit-optimized-64bit.patch index 444ddf82d4..f17aabb73f 100644 --- a/mingw-w64-python-numpy/0005-mincoming-stack-boundary-32bit-optimized-64bit.patch +++ b/mingw-w64-python-numpy/0005-mincoming-stack-boundary-32bit-optimized-64bit.patch @@ -1,71 +1,41 @@ ---- numpy-1.10.0/numpy/distutils/mingw32ccompiler.py.orig 2015-10-08 14:37:03.956864600 +0300 -+++ numpy-1.10.0/numpy/distutils/mingw32ccompiler.py 2015-10-08 14:44:27.194536400 +0300 -@@ -13,6 +13,7 @@ - import sys - import subprocess - import re -+import platform - - # Overwrite certain distutils.ccompiler functions: - import numpy.distutils.ccompiler -@@ -41,6 +42,11 @@ - _START = re.compile(r'\[Ordinal/Name Pointer\] Table') - _TABLE = re.compile(r'^\s+\[([\s*[0-9]*)\] ([a-zA-Z0-9_]*)') - -+def is_win64(): -+ return sys.platform == "win32" and platform.architecture()[0] == "64bit" -+def is_win32(): -+ return sys.platform == "win32" and platform.architecture()[0] == "32bit" -+ - # the same as cygwin plus some additional parameters - class Mingw32CCompiler(distutils.cygwinccompiler.CygwinCCompiler): - """ A modified MingW32 compiler compatible with an MSVC built Python. -@@ -130,19 +136,35 @@ - linker_exe='g++ -mno-cygwin', +diff -urN numpy-1.10.2.orig/numpy/distutils/mingw32ccompiler.py numpy-1.10.2/numpy/distutils/mingw32ccompiler.py +--- numpy-1.10.2.orig/numpy/distutils/mingw32ccompiler.py 2016-01-02 03:57:55.666397000 +0000 ++++ numpy-1.10.2/numpy/distutils/mingw32ccompiler.py 2016-01-02 03:54:51.695638100 +0000 +@@ -120,10 +120,12 @@ + else: + # gcc-4 series releases do not support -mno-cygwin option + self.set_executables( +- compiler='gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall', +- compiler_so='gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes', +- linker_exe='gcc -g', +- linker_so='gcc -g -shared') ++ compiler='gcc -march=x86-64 -mtune=generic -DMS_WIN64' ++ ' -O2 -msse2 -Wall', ++ compiler_so='gcc -march=x86-64 -mtune=generic -DMS_WIN64' ++ ' -O2 -msse2 -Wall -Wstrict-prototypes', ++ linker_exe='gcc', ++ linker_so='gcc -shared -Wl,-gc-sections -Wl,-s') + else: + if self.gcc_version <= "3.0.0": + self.set_executables( +@@ -142,10 +144,16 @@ linker_so='g++ -mno-cygwin -shared') else: -- # gcc-4 series releases do not support -mno-cygwin option i686 -- # build needs '-mincoming-stack-boundary=2' due to ABI -- # incompatibility to Win32 ABI -- self.set_executables( -- compiler='gcc -O2 -march=core2 -mtune=generic' -- ' -mfpmath=sse -msse2' -- ' -mincoming-stack-boundary=2 -Wall', -- compiler_so='gcc -O2 -march=core2 -mtune=generic' -- ' -mfpmath=sse -msse2' -- ' -mincoming-stack-boundary=2 -Wall' -- ' -Wstrict-prototypes', -- linker_exe='g++ ', -- linker_so='g++ -shared -Wl,-gc-sections -Wl,-s') -+ if is_win32(): -+ # gcc-4 series releases do not support -mno-cygwin option i686 -+ # build needs '-mincoming-stack-boundary=2' due to ABI -+ # incompatibility to Win32 ABI -+ self.set_executables( -+ compiler='gcc -O2 -march=core2 -mtune=generic' -+ ' -mfpmath=sse -msse2' -+ ' -mincoming-stack-boundary=2 -Wall', -+ compiler_so='gcc -O2 -march=core2 -mtune=generic' -+ ' -mfpmath=sse -msse2' -+ ' -mincoming-stack-boundary=2 -Wall' -+ ' -Wstrict-prototypes', -+ linker_exe='g++ ', -+ linker_so='g++ -shared -Wl,-gc-sections -Wl,-s') -+ else: -+ # gcc-4 series releases do not support -mno-cygwin option i686 -+ # build needs '-mincoming-stack-boundary=2' due to ABI -+ # incompatibility to Win32 ABI -+ self.set_executables( -+ compiler='gcc -O2 -march=x86-64 -DMS_WIN64 -mtune=generic' -+ ' -mfpmath=sse -msse2' -+ ' -Wall', -+ compiler_so='gcc -O2 -march=x86-64 -DMS_WIN64 -mtune=generic' -+ ' -mfpmath=sse -msse2' -+ ' -Wall' -+ ' -Wstrict-prototypes', -+ linker_exe='g++ ', -+ linker_so='g++ -shared -Wl,-gc-sections -Wl,-s') -+ - # added for python2.3 support we can't pass it through set_executables - # because pre 2.2 would fail + # gcc-4 series releases do not support -mno-cygwin option +- self.set_executables(compiler='gcc -O2 -Wall', +- compiler_so='gcc -O2 -Wall -Wstrict-prototypes', +- linker_exe='g++ ', +- linker_so='g++ -shared') ++ self.set_executables( ++ compiler='gcc -O2 -march=core2 -mtune=generic' ++ ' -mfpmath=sse -msse2' ++ ' -mincoming-stack-boundary=2 -Wall', ++ compiler_so='gcc -O2 -march=core2 -mtune=generic' ++ ' -mfpmath=sse -msse2' ++ ' -mincoming-stack-boundary=2 -Wall' ++ ' -Wstrict-prototypes', ++ linker_exe='g++ ', ++ linker_so='g++ -shared -Wl,-gc-sections -Wl,-s') + # added for python2.3 support + # we can't pass it through set_executables because pre 2.2 would fail self.compiler_cxx = ['g++'] diff --git a/mingw-w64-python-numpy/0006-disable-visualcompaq-for-mingw.patch b/mingw-w64-python-numpy/0006-disable-visualcompaq-for-mingw.patch index 0f61b4c558..183e0a3c75 100644 --- a/mingw-w64-python-numpy/0006-disable-visualcompaq-for-mingw.patch +++ b/mingw-w64-python-numpy/0006-disable-visualcompaq-for-mingw.patch @@ -1,24 +1,19 @@ ---- numpy-1.10.0/numpy/distutils/fcompiler/compaq.py.orig 2015-10-08 14:58:05.495698100 +0300 -+++ numpy-1.10.0/numpy/distutils/fcompiler/compaq.py 2015-10-08 14:59:02.712975800 +0300 -@@ -4,13 +4,14 @@ - - import os - import sys -+from sysconfig import _POSIX_BUILD - - from numpy.distutils.fcompiler import FCompiler - from numpy.distutils.compat import get_exception +diff -urN numpy-1.10.2.orig/numpy/distutils/fcompiler/compaq.py numpy-1.10.2/numpy/distutils/fcompiler/compaq.py +--- numpy-1.10.2.orig/numpy/distutils/fcompiler/compaq.py 2016-01-04 00:44:11.333672900 +0000 ++++ numpy-1.10.2/numpy/distutils/fcompiler/compaq.py 2016-01-04 00:46:47.573905500 +0000 +@@ -10,7 +10,7 @@ from distutils.errors import DistutilsPlatformError compilers = ['CompaqFCompiler'] -if os.name != 'posix' or sys.platform[:6] == 'cygwin' : -+if (os.name != 'posix' or sys.platform[:6] == 'cygwin') and not _POSIX_BUILD : ++if (os.name != 'posix' or sys.platform[:6] == 'cygwin') and not 'GCC' in sys.version: # Otherwise we'd get a false positive on posix systems with # case-insensitive filesystems (like darwin), because we'll pick # up /bin/df ---- numpy-1.10.0/numpy/distutils/msvccompiler.py.orig 2015-10-08 15:14:33.374900300 +0300 -+++ numpy-1.10.0/numpy/distutils/msvccompiler.py 2015-10-08 15:14:40.886149100 +0300 -@@ -10,7 +10,7 @@ +diff -urN numpy-1.10.2.orig/numpy/distutils/msvccompiler.py numpy-1.10.2/numpy/distutils/msvccompiler.py +--- numpy-1.10.2.orig/numpy/distutils/msvccompiler.py 2016-01-04 00:44:11.283672800 +0000 ++++ numpy-1.10.2/numpy/distutils/msvccompiler.py 2016-01-04 00:44:31.151202200 +0000 +@@ -14,7 +14,7 @@ def initialize(self, plat_name=None): environ_lib = os.getenv('lib') environ_include = os.getenv('include') diff --git a/mingw-w64-python-numpy/PKGBUILD b/mingw-w64-python-numpy/PKGBUILD index 6fd42536f1..d8c6c1ac29 100644 --- a/mingw-w64-python-numpy/PKGBUILD +++ b/mingw-w64-python-numpy/PKGBUILD @@ -4,8 +4,8 @@ _realname=numpy pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}") -pkgver=1.10.1 -pkgrel=1 +pkgver=1.10.2 +pkgrel=2 pkgdesc="Scientific tools for Python (mingw-w64)" arch=('any') license=('BSD') @@ -16,30 +16,32 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-openblas" "${MINGW_PACKAGE_PREFIX}-python2-setuptools" "${MINGW_PACKAGE_PREFIX}-python2-nose" "${MINGW_PACKAGE_PREFIX}-gcc-fortran") -options=('staticlibs' 'strip' '!debug') +#options=('!strip' 'debug') source=(http://downloads.sourceforge.net/numpy/${_realname}-${pkgver}.tar.gz - detect-mingw-environment.patch - fix-finding-python2.patch - gfortran-better-version-check.patch - fix-testsuite.patch - mincoming-stack-boundary-only-32bit.patch - disable-visualcompaq-for-mingw.patch) -md5sums=('3fed2b50906bc19018cec5fa26168aa5' - 'e2c63f8472ea162d442beb9f05441f9d' - 'c9e172056f09052d17cf8162b9cf5b3a' - 'f4a729b29154f1fde5ffe911beef5984' - '59c4e9b71cc7b297099b4430bcb7ea28' - 'abc51ef8452d30fd83c69eb183425b16' - 'c4fd82349f2c2c9352ae666b91b7ceea') + 0001-detect-mingw-environment.patch + 0002-fix-finding-python2.patch + 0003-gfortran-better-version-check.patch + 0004-fix-testsuite.patch + 0005-mincoming-stack-boundary-32bit-optimized-64bit.patch + 0006-disable-visualcompaq-for-mingw.patch) +md5sums=('816518282f1617636aaf26e7cd9b127b' + 'ee1e86a6e0d56801172501cf5804c6a7' + 'f36c1e2c52810daf4a572e922873f876' + 'e09574eed1940cd2e39a5fe1bb78bc73' + 'decfa557f219a4581d1b53164c0868f9' + '4eb5373f73b4287379c3b992cfcc239b' + '19c3a59a0a7f50ba288d9502fa079e71') prepare() { cd ${_realname}-${pkgver} - patch -Np1 -i ${srcdir}/detect-mingw-environment.patch - patch -Np1 -i ${srcdir}/fix-finding-python2.patch - patch -Np1 -i ${srcdir}/gfortran-better-version-check.patch - patch -Np1 -i ${srcdir}/fix-testsuite.patch - patch -Np1 -i ${srcdir}/mincoming-stack-boundary-only-32bit.patch - patch -Np1 -i ${srcdir}/disable-visualcompaq-for-mingw.patch + patch -Np1 -i ${srcdir}/0001-detect-mingw-environment.patch + patch -Np1 -i ${srcdir}/0002-fix-finding-python2.patch + patch -Np1 -i ${srcdir}/0003-gfortran-better-version-check.patch + patch -Np1 -i ${srcdir}/0004-fix-testsuite.patch + # Note, -mincoming-stack-boundary (and the other flags set) doesn't get used except + # in a test compilation, AFAICT. + patch -Np1 -i ${srcdir}/0005-mincoming-stack-boundary-32bit-optimized-64bit.patch + patch -Np1 -i ${srcdir}/0006-disable-visualcompaq-for-mingw.patch cd .. cp -a numpy-${pkgver} ${_realname}-py2-${CARCH} From 65db6949814ad082899965b965781e16bc788aa7 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Mon, 4 Jan 2016 01:35:28 +0000 Subject: [PATCH 2060/2060] tor: Update to 0.2.7.6 --- mingw-w64-tor/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-tor/PKGBUILD b/mingw-w64-tor/PKGBUILD index 40ef2abf92..185a47bf8f 100644 --- a/mingw-w64-tor/PKGBUILD +++ b/mingw-w64-tor/PKGBUILD @@ -2,7 +2,7 @@ _realname='tor' pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.2.6.8 +pkgver=0.2.7.6 pkgrel=1 pkgdesc="Anonymizing overlay network (mingw-w64)" url="http://www.torproject.org/" @@ -14,7 +14,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-libevent" makedepends=("${MINGW_PACKAGE_PREFIX}-ca-certificates") options=('strip') source=("http://dist.torproject.org/${_realname}-${pkgver}.tar.gz"{,.asc}) -sha256sums=('b88b363896454250c3f561b0b48479f18295c93596d2e81baa10c5a3ae609a76' +sha256sums=('493a8679f904503048114aca6467faef56861206bab8283d858f37141d95105d' 'SKIP') validpgpkeys=('B35BF85BF19489D04E28C33C21194EBB165733EA') # Nick Mathewson

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 diff --git a/mingw-w64-libsystre/systre-1.0.1.tar.xz b/mingw-w64-libsystre/systre-1.0.1.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..37ea4f96fedfcfdbc8c430898f04d535e5aaaa91 GIT binary patch literal 220464 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

WzQdUtoret0;nI*B`J^AA&+c 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 z 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 L0ssI200dcDv5k8s From 2e01ff7f4c9eaa2a9c50af4a50a29b774957aacc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 14:06:27 +0300 Subject: [PATCH 0334/2060] gnutls: Rebuild with libsystre --- mingw-w64-gnutls/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index c15de2ccb6..6ac395eae4 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -3,7 +3,7 @@ _realname=gnutls pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=3.3.11 -pkgrel=1 +pkgrel=2 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" arch=('any') license=('GPL3' 'LGPL2.1') @@ -54,7 +54,7 @@ build() { --disable-rpath \ --disable-gtk-doc \ --with-libiconv-prefix=${MINGW_PREFIX} \ - --with-libregex-libs=-lgnurx \ + --with-libregex-libs=-lsystre \ --enable-local-libopts \ --disable-guile \ --disable-libdane \ From 4514b56c3dbefdc8b059b1499ad14d67785a770d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 14:06:54 +0300 Subject: [PATCH 0335/2060] libcddb: Rebuild with libsystre --- mingw-w64-libcddb/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-libcddb/PKGBUILD b/mingw-w64-libcddb/PKGBUILD index 5f7efa24c0..f3c0eaf96f 100644 --- a/mingw-w64-libcddb/PKGBUILD +++ b/mingw-w64-libcddb/PKGBUILD @@ -4,7 +4,7 @@ _realname=libcddb pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.3.2 -pkgrel=1 +pkgrel=2 pkgdesc="Library that implements the different protocols (CDDBP, HTTP, SMTP) to access data on a CDDB server (e.g. http://freedb.org)." arch=('any') license=('LGPL') @@ -12,7 +12,7 @@ url="http://sourceforge.net/projects/libcddb/" options=('staticlibs' 'strip') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +depends=("${MINGW_PACKAGE_PREFIX}-libsystre") source=(http://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-${pkgver}.tar.bz2 0001-include-winsock2-before-windows.mingw.patch 0002-fix-header-conflict.mingw.patch From 7a3ec2b6773ea99f7e9b7ad8a13eda6476d085e7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 14:07:33 +0300 Subject: [PATCH 0336/2060] lensfun: Update to 0.3.0. Build with libsystre --- mingw-w64-lensfun/PKGBUILD | 35 +++++++------------ mingw-w64-lensfun/cmake-mingw.patch | 6 ++-- .../lensfun-0.2.8-make-4.0.patch | 11 ------ 3 files changed, 15 insertions(+), 37 deletions(-) delete mode 100644 mingw-w64-lensfun/lensfun-0.2.8-make-4.0.patch diff --git a/mingw-w64-lensfun/PKGBUILD b/mingw-w64-lensfun/PKGBUILD index 2c437a827f..930fb414fa 100644 --- a/mingw-w64-lensfun/PKGBUILD +++ b/mingw-w64-lensfun/PKGBUILD @@ -1,49 +1,38 @@ # Maintainer: Alexey Pavlov _realname=lensfun - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.2.8 -pkgrel=2 +pkgver=0.3.0 +pkgrel=1 pkgdesc="Database of photographic lenses and a library that allows advanced access to the database (mingw-w64)" arch=('any') -url="http://lensfun.berlios.de/" +url="http://lensfun.sourceforge.net" license=("LGPL3") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python2") depends=("${MINGW_PACKAGE_PREFIX}-glib2" - "${MINGW_PACKAGE_PREFIX}-libpng" - "${MINGW_PACKAGE_PREFIX}-libgnurx" - "${MINGW_PACKAGE_PREFIX}-zlib" - ) + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-libsystre" + "${MINGW_PACKAGE_PREFIX}-zlib") options=('staticlibs' 'strip') -source=("http://download.berlios.de/${_realname}/${_realname}-${pkgver}.tar.bz2" - lensfun-0.2.8-make-4.0.patch - cmake-mingw.patch) -md5sums=('db2988505e7432c6b331aa597789c639' - '9464d933a5e4ccefed7fc38656a9ec18' - 'a048b433caf35cce363c631fd6ad559b') +source=(http://sourceforge.net/projects/lensfun/files/${pkgver}/${_realname}-${pkgver}.tar.bz2 + cmake-mingw.patch) +md5sums=('c553cb37f1b781d1af05787beacf0193' + 'aedb52587330ebbcd48525b3c6f006d4') prepare(){ cd "$srcdir/${_realname}-$pkgver" - sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' configure - # fix configure script for make 4.0 - patch -Np0 -i "${srcdir}/lensfun-0.2.8-make-4.0.patch" + patch -p1 -i "${srcdir}/cmake-mingw.patch" } build() { - mkdir -p ${pkgdir}${MINGW_PREFIX} - pushd ${pkgdir}${MINGW_PREFIX} > /dev/null - export PREFIX_WIN=`pwd -W` - popd > /dev/null - mkdir $srcdir/build-${MINGW_CHOST} cd $srcdir/build-${MINGW_CHOST} [[ $CARCH == x86_64 ]] && ENABLESSE2="-DBUILD_FOR_SSE2=ON" ${MINGW_PREFIX}/bin/cmake \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ -DBUILD_STATIC=OFF \ -DBUILD_AUXFUN=ON \ -DBUILD_TESTS=OFF \ diff --git a/mingw-w64-lensfun/cmake-mingw.patch b/mingw-w64-lensfun/cmake-mingw.patch index b233bcaf8c..8f30c3b4dc 100644 --- a/mingw-w64-lensfun/cmake-mingw.patch +++ b/mingw-w64-lensfun/cmake-mingw.patch @@ -24,9 +24,9 @@ -IF(WIN32 AND NOT BUILD_STATIC) +IF(WIN32 AND NOT BUILD_STATIC AND NOT MINGW) - FIND_FILE(GLIB2_DLL - NAMES glib-2.dll glib-2-vs9.dll - PATHS "${GLIB2_BASE_DIR}/bin" + FIND_FILE(GLIB2_DLL + NAMES glib-2.dll glib-2-vs9.dll + PATHS "${GLIB2_BASE_DIR}/bin" --- lensfun-0.2.8/libs/lensfun/CMakeLists.txt.orig 2014-01-17 00:56:47.952600000 +0400 +++ lensfun-0.2.8/libs/lensfun/CMakeLists.txt 2014-01-17 00:56:59.746200000 +0400 @@ -19,6 +19,8 @@ diff --git a/mingw-w64-lensfun/lensfun-0.2.8-make-4.0.patch b/mingw-w64-lensfun/lensfun-0.2.8-make-4.0.patch deleted file mode 100644 index c7694457d7..0000000000 --- a/mingw-w64-lensfun/lensfun-0.2.8-make-4.0.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.old 2013-12-06 16:55:09.098654166 +0100 -+++ configure 2013-12-06 16:55:20.298676545 +0100 -@@ -45,7 +45,7 @@ - } - - # Check for tools --tibs.check_program ("GNU Make", "make --version", ".*?([0-9\.]+).*", "3.81", True) -+tibs.check_program ("GNU Make", "make --version", ".*?([0-9\.]+).*", "4.0", True) - if tibs.check_program ("makedep", "makedep -V", ".*Version.*?([0-9\.]+).*", "0.1.0"): - tibs.add_config_mak ("MAKEDEP", "makedep") - makedep = "yes" From 8702f02bef0d559c1a46db1f003ab0e8139d2987 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 15:00:51 +0300 Subject: [PATCH 0337/2060] gobject-introspection: Fix pkg-config invocation for mingw --- ...-change-pkg-config-invocations.mingw.patch | 25 +++++++++++++++++++ mingw-w64-gobject-introspection/PKGBUILD | 5 +++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-gobject-introspection/0022-change-pkg-config-invocations.mingw.patch diff --git a/mingw-w64-gobject-introspection/0022-change-pkg-config-invocations.mingw.patch b/mingw-w64-gobject-introspection/0022-change-pkg-config-invocations.mingw.patch new file mode 100644 index 0000000000..d96d455571 --- /dev/null +++ b/mingw-w64-gobject-introspection/0022-change-pkg-config-invocations.mingw.patch @@ -0,0 +1,25 @@ +--- repo/m4/introspection.m4.orig 2014-02-21 11:12:52.824027600 +0000 ++++ repo/m4/introspection.m4 2014-03-18 11:50:45.281823900 +0000 +@@ -56,14 +56,14 @@ + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then +- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` +- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` +- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` +- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` +- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" +- INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` +- INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` +- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection ++ INTROSPECTION_SCANNER=`$PKG_CONFIG --dont-define-prefix --variable=g_ir_scanner gobject-introspection-1.0` ++ INTROSPECTION_COMPILER=`$PKG_CONFIG --dont-define-prefix --variable=g_ir_compiler gobject-introspection-1.0` ++ INTROSPECTION_GENERATE=`$PKG_CONFIG --dont-define-prefix --variable=g_ir_generate gobject-introspection-1.0` ++ INTROSPECTION_GIRDIR=`$PKG_CONFIG --dont-define-prefix --variable=girdir gobject-introspection-1.0` ++ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --dont-define-prefix --variable=typelibdir gobject-introspection-1.0)" ++ INTROSPECTION_CFLAGS=`$PKG_CONFIG --dont-define-prefix --cflags gobject-introspection-1.0` ++ INTROSPECTION_LIBS=`$PKG_CONFIG --dont-define-prefix --libs gobject-introspection-1.0` ++ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --dont-define-prefix --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + fi + AC_SUBST(INTROSPECTION_SCANNER) + AC_SUBST(INTROSPECTION_COMPILER) diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index 09b3a861a9..e5e8d513e2 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -3,7 +3,7 @@ _realname=gobject-introspection pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.42.0 -pkgrel=1 +pkgrel=2 pkgdesc="GObject Introspection can scan C header and source files in order to generate introspection typelib files (mingw-w64)" arch=('any') url="https://live.gnome.org/GObjectIntrospection" @@ -20,12 +20,14 @@ options=('strip' 'staticlibs') source=(http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${pkgver%.*}/${_realname}-${pkgver}.tar.xz 0018-debug-rmtree-errors.mingw.patch 0021-tests-no-undefined.patch + 0022-change-pkg-config-invocations.mingw.patch 0050-dont-load-msvcrt.patch 0055-fix-python-detection.patch) md5sums=('4fa52f6b67367d9c1b99b98683ced202' 'f0ecde986ebf1f0e28b752f9c36fb6c1' '69ef34e2f57abc8afe1b9f6fa3786e97' + '8d3589fb959a0a68ce7ce9051fa441fe' 'e3598d539258678eef8dde2216419faf' '6d809bf266e42a20b31a7acbaf0384d1') @@ -33,6 +35,7 @@ prepare() { cd ${srcdir}/${_realname}-${pkgver} patch -p1 -i ${srcdir}/0018-debug-rmtree-errors.mingw.patch patch -p1 -i ${srcdir}/0021-tests-no-undefined.patch + patch -p1 -i ${srcdir}/0022-change-pkg-config-invocations.mingw.patch patch -p1 -i ${srcdir}/0050-dont-load-msvcrt.patch patch -p1 -i ${srcdir}/0055-fix-python-detection.patch From 85843388b6e79158355f74c3508aa358f4304f1b Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 15:58:16 +0300 Subject: [PATCH 0338/2060] vala: Update to 0.27.1. Fix pkg-config invocation for mingw. --- .../001-change-pkg-config-invocations.mingw.patch | 14 ++++++++++++++ mingw-w64-vala/PKGBUILD | 12 ++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 mingw-w64-vala/001-change-pkg-config-invocations.mingw.patch diff --git a/mingw-w64-vala/001-change-pkg-config-invocations.mingw.patch b/mingw-w64-vala/001-change-pkg-config-invocations.mingw.patch new file mode 100644 index 0000000000..23c4959e07 --- /dev/null +++ b/mingw-w64-vala/001-change-pkg-config-invocations.mingw.patch @@ -0,0 +1,14 @@ +--- vala-0.27.1/vapigen/vapigen.m4.orig 2015-01-14 14:51:42.117600000 +0300 ++++ vala-0.27.1/vapigen/vapigen.m4 2015-01-14 14:52:07.297000000 +0300 +@@ -85,9 +85,9 @@ + VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name` + VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen + AS_IF([test "x$2" = "x"], [ +- VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name` ++ VAPIGEN_VAPIDIR=`$PKG_CONFIG --dont-define-prefix --variable=vapidir $vapigen_pkg_name` + ], [ +- VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name` ++ VAPIGEN_VAPIDIR=`$PKG_CONFIG --dont-define-prefix --variable=vapidir_versioned $vapigen_pkg_name` + ]) + ]) + diff --git a/mingw-w64-vala/PKGBUILD b/mingw-w64-vala/PKGBUILD index 741036e21e..b2f0dc3d67 100644 --- a/mingw-w64-vala/PKGBUILD +++ b/mingw-w64-vala/PKGBUILD @@ -2,7 +2,7 @@ _realname=vala pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.26.1 +pkgver=0.27.1 pkgrel=1 pkgdesc="Compiler for the GObject type system (mingw-w64)" arch=('any') @@ -12,11 +12,14 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-libxslt") depends=("${MINGW_PACKAGE_PREFIX}-glib2") -source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz) -sha256sums=('8407abb19ab3a58bbfc0d288abb47666ef81f76d0540258c03965e7545f59e6b') +source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz + 001-change-pkg-config-invocations.mingw.patch) +sha256sums=('0bce939c011c34478da840f869b3c24d02e8f1c92691c587c1fe289a5533cd77' + 'c588a3a69097aae30ada1d543001d5029865b1dd1f46132d9e60d12e1833b325') prepare() { cd "${srcdir}"/${_realname}-${pkgver} + patch -p1 -i ${srcdir}/001-change-pkg-config-invocations.mingw.patch autoreconf -ivf } @@ -34,7 +37,4 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 DESTDIR="$pkgdir" install - - mv -f ${pkgdir}${MINGW_PREFIX}/share/pkgconfig/* ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/ - rm -rf ${pkgdir}${MINGW_PREFIX}/share/pkgconfig } From aa26c358c39464b2845188c36a02694d0a7a1d75 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 15:59:27 +0300 Subject: [PATCH 0339/2060] libgweather: Update to 3.14.2. Build with libsystre --- .../003-hack-unixy-paths.patch | 20 ------------------- mingw-w64-libgweather/PKGBUILD | 15 ++++++-------- 2 files changed, 6 insertions(+), 29 deletions(-) delete mode 100644 mingw-w64-libgweather/003-hack-unixy-paths.patch diff --git a/mingw-w64-libgweather/003-hack-unixy-paths.patch b/mingw-w64-libgweather/003-hack-unixy-paths.patch deleted file mode 100644 index 74b8a030f0..0000000000 --- a/mingw-w64-libgweather/003-hack-unixy-paths.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- libgweather-3.13.91/configure.orig 2014-09-08 20:13:05.662800000 +0400 -+++ libgweather-3.13.91/configure 2014-09-08 20:14:44.426400000 +0400 -@@ -16953,7 +16953,9 @@ - INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` - INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` - INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` -+ INTROSPECTION_GIRDIR=`cygpath -u $INTROSPECTION_GIRDIR` - INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" -+ INTROSPECTION_TYPELIBDIR=`cygpath -u $INTROSPECTION_TYPELIBDIR` - INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` - INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` - INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection -@@ -17223,6 +17225,7 @@ - VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name` - - fi -+ VAPIGEN_VAPIDIR=`cygpath -u $VAPIGEN_VAPIDIR` - ;; #( - *) : - ;; diff --git a/mingw-w64-libgweather/PKGBUILD b/mingw-w64-libgweather/PKGBUILD index 6c6f4bda93..4d4857af2e 100644 --- a/mingw-w64-libgweather/PKGBUILD +++ b/mingw-w64-libgweather/PKGBUILD @@ -2,12 +2,13 @@ _realname=libgweather pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.14.1 +pkgver=3.14.2 pkgrel=1 arch=('any') pkgdesc="GWeather shared library (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-gtk3" "${MINGW_PACKAGE_PREFIX}-libsoup" + "${MINGW_PACKAGE_PREFIX}-libsystre" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-geocode-glib") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" @@ -21,21 +22,17 @@ license=("LGPL 2.1") url="http://www.gnome.org/" source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz 001-win.patch - 002-localedir-fix.patch - 003-hack-unixy-paths.patch) -sha256sums=('4db10404ac91bc1f85ae977bdaa98413836429c3de6244dc68567c402afed800' + 002-localedir-fix.patch) +sha256sums=('aa0d03132fc6c446cf549df1d91e319e1abcc676f1d9f8bc1dc01f033dcff493' '54aafa1ec47f818855cb8d17bb4f7f4458505a54b08c9fc51bfd4bbc1d6c37a2' - '6677acc97b0322170339479df46435f14eb232df2d36e607029af3bd1f1a4eb0' - 'bfc78c118d966b8fcd557b3d5a2d372532fc5ec47884a44df6fbe5c987e01592') + '6677acc97b0322170339479df46435f14eb232df2d36e607029af3bd1f1a4eb0') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-win.patch patch -p1 -i ${srcdir}/002-localedir-fix.patch - AUTOPOINT='intltoolize --automake --copy' autoreconf -fi - - patch -p1 -i ${srcdir}/003-hack-unixy-paths.patch + AUTOPOINT='intltoolize --automake --copy' autoreconf -fiv } build() { From 25ca0de38b978e469bd180fe05355d08278a3802 Mon Sep 17 00:00:00 2001 From: Jon TURNEY Date: Wed, 14 Jan 2015 17:59:46 +0000 Subject: [PATCH 0340/2060] breakpad-svn: Install headers and sample Install windows-specific headers Install sample so correct installation of library and headers can be validated by trying to build it by running make in /mingw(32|64)/share/doc/breakpad/sample --- mingw-w64-breakpad-svn/Makefile | 18 ++++++++ mingw-w64-breakpad-svn/PKGBUILD | 55 +++++++++++++++++++++-- mingw-w64-breakpad-svn/README.sample | 67 ++++++++++++++++++++++++++++ 3 files changed, 137 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-breakpad-svn/Makefile create mode 100644 mingw-w64-breakpad-svn/README.sample diff --git a/mingw-w64-breakpad-svn/Makefile b/mingw-w64-breakpad-svn/Makefile new file mode 100644 index 0000000000..eab8691509 --- /dev/null +++ b/mingw-w64-breakpad-svn/Makefile @@ -0,0 +1,18 @@ +CXX=g++ +WINDRES=windres +CXXFLAGS=-DUNICODE -D_UNICODE +LDFLAGS=-mwindows -municode + +OBJS=abstract_class.o crash_generation_app.o resource.o +LIBS=-lbreakpad_client + +all: crash_generation_app.exe + +resource.o: resource.rc small.ico crash_generation_app.ico + $(WINDRES) resource.rc $@ + +crash_generation_app.exe: $(OBJS) + $(CXX) -o $@ $(OBJS) $(LIBS) $(LDFLAGS) + +clean: + ${RM} ${OBJS} diff --git a/mingw-w64-breakpad-svn/PKGBUILD b/mingw-w64-breakpad-svn/PKGBUILD index 18d5df9192..9c55395f90 100644 --- a/mingw-w64-breakpad-svn/PKGBUILD +++ b/mingw-w64-breakpad-svn/PKGBUILD @@ -37,7 +37,9 @@ source=(${_name}.svn::"svn+http://google-breakpad.googlecode.com/svn/trunk" 0023-Fix-a-missing-r-in-crash_generation_app.patch 0024-Disable-timeout-waiting-for-crash-reporting-server.patch 0026-Fixes-for-sign-compare-warnings-due-to-signedness-of.patch - gyp-regenerate-no-circular-check.patch) + gyp-regenerate-no-circular-check.patch + Makefile + README.sample) pkgver() { cd "${srcdir}/${_name}.svn" @@ -78,7 +80,33 @@ package() { cd "${srcdir}/${_name}.build.${CARCH}" make CXXFLAGS="-Wno-error=reorder -DUNICODE -D_UNICODE -g" AR=${MINGW_PREFIX}/bin/ar RC=${MINGW_PREFIX}/bin/windres DESTDIR="${pkgdir}" install - # headers aren't really designed to be installed, so we need to do some + # Install headers + mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad" + cd "${pkgdir}${MINGW_PREFIX}/include/breakpad" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/common/" + cp -v ${srcdir}/${_name}.build.${CARCH}/src/google_breakpad/common/* common/ + cp -v ${srcdir}/${_name}.build.${CARCH}/src/common/scoped_ptr.h common/ + + mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/common/windows" + cp -v ${srcdir}/${_name}.build.${CARCH}/src/common/windows/string_utils-inl.h common/windows/ + + mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/client/windows/crash_generation" + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/crash_generation/client_info.h client/windows/crash_generation/ + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/crash_generation/crash_generation_client.h client/windows/crash_generation/ + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/crash_generation/crash_generation_server.h client/windows/crash_generation/ + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/crash_generation/minidump_generator.h client/windows/crash_generation/ + + mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/client/windows/common" + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/common/ipc_protocol.h client/windows/common/ + + mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/client/windows/handler" + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/handler/exception_handler.h client/windows/handler/ + + mkdir -p "${pkgdir}${MINGW_PREFIX}/include/breakpad/client/windows/sender" + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/sender/crash_report_sender.h client/windows/sender/ + + # Headers aren't really designed to be installed, so we need to do some # rewriting to make them usefully included using "include " find ${pkgdir} -name *.h -exec sed -i -e's#client/windows/#breakpad/client/windows/#' {} \; find ${pkgdir} -name *.h -exec sed -i -e's#common/scoped_ptr#breakpad/common/scoped_ptr#' {} \; @@ -99,6 +127,7 @@ SAVE END EOF + # Install the pkgconfig file cp -v "${srcdir}/${_name}.build.${CARCH}/breakpad-client.pc" pkgconfig # License @@ -106,6 +135,24 @@ EOF mkdir -p licenses/${_name} mv doc/${_name}-0.1 doc/${_name} mv -v doc/${_name}/LICENSE licenses/${_name}/LICENSE + + # Install crash_generation_app sample source and instructions + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/doc/${_name}/sample" + cd "${pkgdir}${MINGW_PREFIX}/share/doc/${_name}/sample" + cp -v ${srcdir}/README.sample . + cp -v ${srcdir}/Makefile . + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/tests/crash_generation_app/abstract_class.cc . + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/tests/crash_generation_app/abstract_class.h . + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/tests/crash_generation_app/crash_generation_app.cc . + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/tests/crash_generation_app/crash_generation_app.h . + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/tests/crash_generation_app/crash_generation_app.ico . + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/tests/crash_generation_app/resource.h . + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/tests/crash_generation_app/resource.rc . + cp -v ${srcdir}/${_name}.build.${CARCH}/src/client/windows/tests/crash_generation_app/small.ico . + + # Rewrite includes in sample for the rewritten installed headers + sed -i -e's#client/windows/tests/crash_generation_app/##' ${pkgdir}${MINGW_PREFIX}/share/doc/${_name}/sample/* + sed -i -e's#client/windows/#breakpad/client/windows/#' ${pkgdir}${MINGW_PREFIX}/share/doc/${_name}/sample/* } md5sums=('SKIP' @@ -133,4 +180,6 @@ md5sums=('SKIP' '6d60d14c043a16deed5152455b6ce5c1' 'e49ab09a126650a2890d50eb9dadeee4' '4b5a73a41be9f4909feb952c3ec5086f' - '58e93eee7934e96ede810bbfd42374ca') + '58e93eee7934e96ede810bbfd42374ca' + '7fa446492cfb06497a57e68a416b1087' + '577c35acf8ddcf504dab502c30fceea4') diff --git a/mingw-w64-breakpad-svn/README.sample b/mingw-w64-breakpad-svn/README.sample new file mode 100644 index 0000000000..e52ffacbf1 --- /dev/null +++ b/mingw-w64-breakpad-svn/README.sample @@ -0,0 +1,67 @@ +Getting Started with Breakpad +============================= + +Run the sample executable crash_generation_app.exe click Menu->Server->Start. +This is now the 'Server'. + +Run the executable AGAIN (a second instance). This is now the 'Client'. You +should see a message like "Client connected" in the Server. In the Client, +click Menu->Client->Deref Zero + +The client should crash, and you should see a message like "Client requested +dump" in the server. + +In c:\dumps you now have a .dmp file. You can inspect that with +minidump_stackwalk or open in it WinDbg. + +Integrating BreakPad into your application +========================================== + +See http://code.google.com/p/google-breakpad/wiki/WindowsClientIntegration + +In your main() function (or equivalent), before your program does any real work, +add the following: + +#include + +int main() { + ... + + static wstring prod = get_myapp_name(); + static wstring ver = get_myapp_version(); + static wstring subver = get_myapp_subversion(); + + static int google_custom_count = 3; + static google_breakpad::CustomInfoEntry google_custom_entries[] = { + google_breakpad::CustomInfoEntry(L"prod", prod.c_str()), + google_breakpad::CustomInfoEntry(L"ver", ver.c_str()), + google_breakpad::CustomInfoEntry(L"subver", subver.c_str()), + }; + + google_breakpad::CustomClientInfo custom_info = {google_custom_entries, + google_custom_count}; + + google_breakpad::ExceptionHandler * google_pad = new + google_breakpad::ExceptionHandler( + L"C:\\dumps\\", // dump path + NULL, // filter callback + NULL, // MinidumpCallback, + NULL, // callback context + google_breakpad::ExceptionHandler::HANDLER_ALL, // handler types + MiniDumpNormal, // or for a larger dump: MiniDumpWithFullMemory + NULL, // pipe name + &custom_info); // custom info + + ... + } + +If you define MinidumpCallback, the signature is like so: bool +MinidumpCallback(const wchar_t* dump_path, const wchar_t* minidump_id, void* +context, EXCEPTION_POINTERS* exinfo, MDRawAssertionInfo* assertion, bool +succeeded); + +The callback is the point where you could spawn another program that tells the +user that the program has crashed etc. + +The above code will generate dumps in the c:\dumps folder. MAKE SURE the folder +is created first. From 6c041b0d483b8127d9e4e1fdcbe067022ef78c58 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 19:47:42 +0300 Subject: [PATCH 0341/2060] db: Downgrade to 6.0.19 as future versions have incompatible license for openldap --- mingw-w64-db/PKGBUILD | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mingw-w64-db/PKGBUILD b/mingw-w64-db/PKGBUILD index 3830a3c627..8576a6bcf5 100644 --- a/mingw-w64-db/PKGBUILD +++ b/mingw-w64-db/PKGBUILD @@ -2,9 +2,8 @@ # Contributor: Jürgen Pfeifer _realname=db - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.0.30 +pkgver=6.0.19 pkgrel=1 pkgdesc="The Berkeley DB embedded database system (mingw-w64)" arch=('any') @@ -14,8 +13,8 @@ groups=("${MINGW_PACKAGE_PREFIX}") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=(http://download.oracle.com/berkeley-db/db-${pkgver}.tar.gz - mingw.patch) -sha1sums=('038dca3ef2984c6cb95ff088d1ab7c7b9da40883' + mingw.patch) +sha1sums=('058a24ecd18803978afb8a45702fe299abd9e818' '9cb5319029744f6e5d571d0ade25b6ea62e2958f') prepare() From 80a87a31c945f9c2fc803d6fffd45e489eda7756 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 21:26:38 +0300 Subject: [PATCH 0342/2060] openldap: Update to 2.4.40 --- mingw-w64-openldap/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-openldap/PKGBUILD b/mingw-w64-openldap/PKGBUILD index 6166272445..a3d289e90e 100644 --- a/mingw-w64-openldap/PKGBUILD +++ b/mingw-w64-openldap/PKGBUILD @@ -2,14 +2,14 @@ _realname=openldap pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.4.39 +pkgver=2.4.40 pkgrel=1 arch=('any') pkgdesc="OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol (only client) (mingw-w64)" depends=("${MINGW_PACKAGE_PREFIX}-cyrus-sasl" "${MINGW_PACKAGE_PREFIX}-icu" "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-db") + "${MINGW_PACKAGE_PREFIX}-db<6.0.20") makedepends=("groff" "${MINGW_PACKAGE_PREFIX}-gcc" "libintl" @@ -22,7 +22,7 @@ source=(http://www.openldap.org/software/download/OpenLDAP/openldap-release/${_r 001-backmdb.patch 002-link-with-icu.patch 003-symdummy-error.patch) -sha256sums=('8267c87347103fef56b783b24877c0feda1063d3cb85d070e503d076584bf8a7' +sha256sums=('d12611a5c25b6499293c2bb7b435dc2b174db73e83f5a8cb7e34f2ce5fa6dadb' 'b462bfab9362cf5cab61d67cd24902a1800fb498a152b681ee182c713b79146c' '450cc9e42fb6ed2af4a16b217c77f95d1a18b353b887cab3107f9b350d8b42c5' 'd697fe51361a5129a5af3ca317031ff6f4ca5ddd247ff53043880660154a4708') From 8d9c86df89e14f34bb856e9a70d1e8ea03a9324c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 14 Jan 2015 21:53:40 +0300 Subject: [PATCH 0343/2060] breakpad: Add libtool patch. --- ...google-breakpad-0.1.svn.1413-libtool.patch | 224 ++++++++++++++++++ mingw-w64-breakpad-svn/PKGBUILD | 2 + 2 files changed, 226 insertions(+) create mode 100644 mingw-w64-breakpad-svn/0027-google-breakpad-0.1.svn.1413-libtool.patch diff --git a/mingw-w64-breakpad-svn/0027-google-breakpad-0.1.svn.1413-libtool.patch b/mingw-w64-breakpad-svn/0027-google-breakpad-0.1.svn.1413-libtool.patch new file mode 100644 index 0000000000..9bc5745dce --- /dev/null +++ b/mingw-w64-breakpad-svn/0027-google-breakpad-0.1.svn.1413-libtool.patch @@ -0,0 +1,224 @@ +diff -rupN google-breakpad-0.1.svn.969/configure.ac google-breakpad-0.1.svn.969_mod/configure.ac +--- google-breakpad-0.1.svn.969/configure.ac 2012-06-12 01:52:23.000000000 +0200 ++++ google-breakpad-0.1.svn.969_mod/configure.ac 2012-06-12 13:20:41.264351886 +0200 +@@ -44,7 +44,7 @@ AC_PROG_CC + AM_PROG_CC_C_O + AC_PROG_CPP + AC_PROG_CXX +-AC_PROG_RANLIB ++LT_INIT([disable-shared]) + AC_CHECK_TOOL(WINDRES, [windres]) + AM_CONDITIONAL(GCC, test "$GCC" = yes) # let the Makefile know if we're gcc + +diff -rupN google-breakpad-0.1.svn.969/Makefile.am google-breakpad-0.1.svn.969_mod/Makefile.am +--- google-breakpad-0.1.svn.969/Makefile.am 2012-06-12 01:52:23.000000000 +0200 ++++ google-breakpad-0.1.svn.969_mod/Makefile.am 2012-06-12 13:14:22.051174459 +0200 +@@ -110,22 +110,22 @@ dist_doc_DATA = \ + pkgconfig_DATA = + + ## Libraries +-noinst_LIBRARIES = +-lib_LIBRARIES = ++noinst_LTLIBRARIES = ++lib_LTLIBRARIES = + bin_PROGRAMS = + check_PROGRAMS = + + if !DISABLE_PROCESSOR +-lib_LIBRARIES += src/libbreakpad.a ++lib_LTLIBRARIES += src/libbreakpad.la + pkgconfig_DATA += breakpad.pc +-noinst_LIBRARIES += src/third_party/libdisasm/libdisasm.a ++noinst_LTLIBRARIES += src/third_party/libdisasm/libdisasm.la + endif + + if LINUX_HOST +-lib_LIBRARIES += src/client/linux/libbreakpad_client.a ++lib_LTLIBRARIES += src/client/linux/libbreakpad_client.la + pkgconfig_DATA += breakpad-client.pc + +-src_client_linux_libbreakpad_client_a_SOURCES = \ ++src_client_linux_libbreakpad_client_la_SOURCES = \ + src/client/linux/crash_generation/crash_generation_client.cc \ + src/client/linux/crash_generation/crash_generation_server.cc \ + src/client/linux/dump_writer_common/seccomp_unwinder.cc \ +@@ -160,13 +160,13 @@ src_client_linux_libbreakpad_client_a_SO + src/common/linux/memory_mapped_file.cc \ + src/common/linux/safe_readlink.cc + if ANDROID_HOST +-src_client_linux_libbreakpad_client_a_SOURCES += \ ++src_client_linux_libbreakpad_client_la_SOURCES += \ + src/common/android/breakpad_getcontext.S + endif + endif LINUX_HOST + + if !DISABLE_PROCESSOR +-src_libbreakpad_a_SOURCES = \ ++src_libbreakpad_la_SOURCES = \ + src/google_breakpad/common/breakpad_types.h \ + src/google_breakpad/common/minidump_format.h \ + src/google_breakpad/common/minidump_size.h \ +@@ -272,9 +272,9 @@ src_libbreakpad_a_SOURCES = \ + src/processor/tokenize.cc \ + src/processor/tokenize.h + +-src_libbreakpad_a_LIBADD = src/third_party/libdisasm/libdisasm.a ++src_libbreakpad_la_LIBADD = src/third_party/libdisasm/libdisasm.la + +-src_third_party_libdisasm_libdisasm_a_SOURCES = \ ++src_third_party_libdisasm_libdisasm_la_SOURCES = \ + src/third_party/libdisasm/ia32_implicit.c \ + src/third_party/libdisasm/ia32_implicit.h \ + src/third_party/libdisasm/ia32_insn.c \ +@@ -448,7 +448,8 @@ src_client_linux_linux_client_unittest_C + -I$(top_srcdir)/src/testing/include \ + -I$(top_srcdir)/src/testing/gtest/include \ + -I$(top_srcdir)/src/testing/gtest \ +- -I$(top_srcdir)/src/testing ++ -I$(top_srcdir)/src/testing \ ++ $(AM_CPPFLAGS) + src_client_linux_linux_client_unittest_shlib_LDFLAGS = \ + -shared \ + -Wl,-h,linux_client_unittest_shlib +@@ -500,8 +500,8 @@ src_client_linux_linux_client_unittest_L + + src_client_linux_linux_client_unittest_DEPENDENCIES = \ + src/client/linux/linux_dumper_unittest_helper \ +- src/client/linux/libbreakpad_client.a \ +- src/libbreakpad.a ++ src/client/linux/libbreakpad_client.la \ ++ src/libbreakpad.la + + if !DISABLE_TOOLS + src_tools_linux_core2md_core2md_SOURCES = \ +@@ -508,8 +508,11 @@ src_tools_linux_core2md_core2md_SOURCES + src/common/linux/elf_core_dump.cc + + src_tools_linux_core2md_core2md_LDADD = \ +- src/client/linux/libbreakpad_client.a ++ src/client/linux/libbreakpad_client.la \ ++ $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + ++src_tools_linux_dump_syms_dump_syms_CPPFLAGS = \ ++ $(AM_CPPFLAGS) + src_tools_linux_dump_syms_dump_syms_SOURCES = \ + src/common/dwarf_cfi_to_module.cc \ + src/common/dwarf_cu_to_module.cc \ +@@ -531,6 +531,8 @@ src_tools_linux_dump_syms_dump_syms_SOUR + src/common/linux/safe_readlink.cc \ + src/tools/linux/dump_syms/dump_syms.cc + ++src_tools_linux_md2core_minidump_2_core_CPPFLAGS = \ ++ $(AM_CPPFLAGS) + src_tools_linux_md2core_minidump_2_core_SOURCES = \ + src/common/linux/memory_mapped_file.cc \ + src/tools/linux/md2core/minidump-2-core.cc +@@ -427,7 +433,8 @@ src_common_dumper_unittest_CPPFLAGS = \ + -I$(top_srcdir)/src/testing/gtest/include \ + -I$(top_srcdir)/src/testing/gtest \ + -I$(top_srcdir)/src/testing \ +- $(PTHREAD_CFLAGS) ++ $(PTHREAD_CFLAGS) \ ++ $(AM_CPPFLAGS) + src_common_dumper_unittest_LDADD = $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + endif + +@@ -723,7 +723,7 @@ src_processor_exploitability_unittest_LD + src/processor/stackwalker_sparc.o \ + src/processor/stackwalker_x86.o \ + src/processor/tokenize.o \ +- src/third_party/libdisasm/libdisasm.a \ ++ src/third_party/libdisasm/libdisasm.la \ + $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + + src_processor_disassembler_x86_unittest_SOURCES = \ +@@ -739,7 +739,7 @@ src_processor_disassembler_x86_unittest_ + -I$(top_srcdir)/src/testing + src_processor_disassembler_x86_unittest_LDADD = \ + src/processor/disassembler_x86.o \ +- src/third_party/libdisasm/libdisasm.a \ ++ src/third_party/libdisasm/libdisasm.la \ + $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + + src_processor_fast_source_line_resolver_unittest_SOURCES = \ +@@ -857,7 +857,7 @@ src_processor_minidump_processor_unittes + src/processor/stackwalker_sparc.o \ + src/processor/stackwalker_x86.o \ + src/processor/tokenize.o \ +- src/third_party/libdisasm/libdisasm.a \ ++ src/third_party/libdisasm/libdisasm.la \ + $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + + src_processor_minidump_unittest_SOURCES = \ +@@ -998,7 +998,7 @@ src_processor_stackwalker_amd64_unittest + src/testing/gtest/src/gtest_main.cc \ + src/testing/src/gmock-all.cc + src_processor_stackwalker_amd64_unittest_LDADD = \ +- src/libbreakpad.a \ ++ src/libbreakpad.la \ + $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + src_processor_stackwalker_amd64_unittest_CPPFLAGS = \ + -I$(top_srcdir)/src \ +@@ -1014,7 +1014,7 @@ src_processor_stackwalker_arm_unittest_S + src/testing/gtest/src/gtest_main.cc \ + src/testing/src/gmock-all.cc + src_processor_stackwalker_arm_unittest_LDADD = \ +- src/libbreakpad.a \ ++ src/libbreakpad.la \ + $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + src_processor_stackwalker_arm_unittest_CPPFLAGS = \ + -I$(top_srcdir)/src \ +@@ -1085,7 +1085,7 @@ + src/testing/gtest/src/gtest_main.cc \ + src/testing/src/gmock-all.cc + src_processor_stackwalker_arm64_unittest_LDADD = \ +- src/libbreakpad.a \ ++ src/libbreakpad.la \ + $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + src_processor_stackwalker_arm64_unittest_CPPFLAGS = \ + -I$(top_srcdir)/src \ +@@ -1101,7 +1101,7 @@ + src/testing/gtest/src/gtest_main.cc \ + src/testing/src/gmock-all.cc + src_processor_stackwalker_address_list_unittest_LDADD = \ +- src/libbreakpad.a \ ++ src/libbreakpad.la \ + $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + src_processor_stackwalker_address_list_unittest_CPPFLAGS = \ + -I$(top_srcdir)/src \ +@@ -1117,7 +1117,7 @@ + src/testing/gtest/src/gtest_main.cc \ + src/testing/src/gmock-all.cc + src_processor_stackwalker_mips_unittest_LDADD = \ +- src/libbreakpad.a \ ++ src/libbreakpad.la \ + $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + src_processor_stackwalker_mips_unittest_CPPFLAGS = \ + -I$(top_srcdir)/src \ +@@ -1133,7 +1133,7 @@ src_processor_stackwalker_x86_unittest_S + src/testing/gtest/src/gtest_main.cc \ + src/testing/src/gmock-all.cc + src_processor_stackwalker_x86_unittest_LDADD = \ +- src/libbreakpad.a \ ++ src/libbreakpad.la \ + $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) + src_processor_stackwalker_x86_unittest_CPPFLAGS = \ + -I$(top_srcdir)/src \ +@@ -1166,7 +1166,7 @@ src_processor_minidump_stackwalk_LDADD = + src/processor/stackwalker_sparc.o \ + src/processor/stackwalker_x86.o \ + src/processor/tokenize.o \ +- src/third_party/libdisasm/libdisasm.a \ ++ src/third_party/libdisasm/libdisasm.la \ + $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SOCKET_LIBS) + + src_processor_minidump_stackwalk_SOURCES = \ +@@ -1202,7 +1202,7 @@ + src/processor/stackwalker_sparc.o \ + src/processor/stackwalker_x86.o \ + src/processor/tokenize.o \ +- src/third_party/libdisasm/libdisasm.a \ ++ src/third_party/libdisasm/libdisasm.la \ + $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SOCKET_LIBS) @LIBOBJS@ + + endif !DISABLE_PROCESSOR diff --git a/mingw-w64-breakpad-svn/PKGBUILD b/mingw-w64-breakpad-svn/PKGBUILD index 9c55395f90..6f078d4a71 100644 --- a/mingw-w64-breakpad-svn/PKGBUILD +++ b/mingw-w64-breakpad-svn/PKGBUILD @@ -37,6 +37,7 @@ source=(${_name}.svn::"svn+http://google-breakpad.googlecode.com/svn/trunk" 0023-Fix-a-missing-r-in-crash_generation_app.patch 0024-Disable-timeout-waiting-for-crash-reporting-server.patch 0026-Fixes-for-sign-compare-warnings-due-to-signedness-of.patch + 0027-google-breakpad-0.1.svn.1413-libtool.patch gyp-regenerate-no-circular-check.patch Makefile README.sample) @@ -180,6 +181,7 @@ md5sums=('SKIP' '6d60d14c043a16deed5152455b6ce5c1' 'e49ab09a126650a2890d50eb9dadeee4' '4b5a73a41be9f4909feb952c3ec5086f' + 'ce284a4f34503fe41ee303e6cb0a6348' '58e93eee7934e96ede810bbfd42374ca' '7fa446492cfb06497a57e68a416b1087' '577c35acf8ddcf504dab502c30fceea4') From 11cada366e78d9e9aebf0676e4a21e7ccaeed230 Mon Sep 17 00:00:00 2001 From: David Macek Date: Tue, 13 Jan 2015 17:52:54 +0100 Subject: [PATCH 0344/2060] WIP new package: nim compiler, nimble package manager Nim currently can't find neither nim.cfg or any library under lib/nim. --- ...-Use-unixy-filenames-even-on-Windows.patch | 29 ++++++ .../0002-Recognize-mingw-in-build.sh.patch | 26 ++++++ mingw-w64-nim/PKGBUILD | 89 +++++++++++++++++++ mingw-w64-nimble/PKGBUILD | 28 ++++++ 4 files changed, 172 insertions(+) create mode 100644 mingw-w64-nim/0001-Use-unixy-filenames-even-on-Windows.patch create mode 100644 mingw-w64-nim/0002-Recognize-mingw-in-build.sh.patch create mode 100644 mingw-w64-nim/PKGBUILD create mode 100644 mingw-w64-nimble/PKGBUILD diff --git a/mingw-w64-nim/0001-Use-unixy-filenames-even-on-Windows.patch b/mingw-w64-nim/0001-Use-unixy-filenames-even-on-Windows.patch new file mode 100644 index 0000000000..d327d828dd --- /dev/null +++ b/mingw-w64-nim/0001-Use-unixy-filenames-even-on-Windows.patch @@ -0,0 +1,29 @@ +From 9f3ebed8efebc45b74fa3baf2a4295352465ade9 Mon Sep 17 00:00:00 2001 +From: David Macek +Date: Tue, 13 Jan 2015 17:48:53 +0100 +Subject: [PATCH] Use unixy filenames even on Windows + +--- + compiler/platform.nim | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/compiler/platform.nim b/compiler/platform.nim +index c6cb3d2..b0e0862 100644 +--- a/compiler/platform.nim ++++ b/compiler/platform.nim +@@ -43,9 +43,9 @@ const + parDir: "..", dllFrmt: "$1.dll", altDirSep: "/", objExt: ".obj", + newLine: "\x0D\x0A", pathSep: ";", dirSep: "\\", scriptExt: ".bat", + curDir: ".", exeExt: ".exe", extSep: ".", props: {ospCaseInsensitive}), +- (name: "Windows", parDir: "..", dllFrmt: "$1.dll", altDirSep: "/", +- objExt: ".obj", newLine: "\x0D\x0A", pathSep: ";", dirSep: "\\", +- scriptExt: ".bat", curDir: ".", exeExt: ".exe", extSep: ".", ++ (name: "Windows", parDir: "..", dllFrmt: "lib$1.dll", altDirSep: "/", ++ objExt: ".a", newLine: "\x0D\x0A", pathSep: ";", dirSep: "\\", ++ scriptExt: ".cmd", curDir: ".", exeExt: ".exe", extSep: ".", + props: {ospCaseInsensitive}), + (name: "OS2", parDir: "..", + dllFrmt: "$1.dll", altDirSep: "/", +-- +1.9.4.msysgit.2 + diff --git a/mingw-w64-nim/0002-Recognize-mingw-in-build.sh.patch b/mingw-w64-nim/0002-Recognize-mingw-in-build.sh.patch new file mode 100644 index 0000000000..8534115a73 --- /dev/null +++ b/mingw-w64-nim/0002-Recognize-mingw-in-build.sh.patch @@ -0,0 +1,26 @@ +From 8a3cf726ddca9485bd693c4a55767ca88fefc2b7 Mon Sep 17 00:00:00 2001 +From: David Macek +Date: Tue, 13 Jan 2015 16:05:13 +0100 +Subject: [PATCH] Recognize mingw in build.sh + +--- + build.sh | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/build.sh b/build.sh +index 8f22788..19ad63e 100644 +--- a/build.sh ++++ b/build.sh +@@ -85,6 +85,9 @@ case $uos in + *haiku* ) + myos="haiku" + ;; ++ *mingw* ) ++ myos="windows" ++ ;; + *) + echo "Error: unknown operating system: $uos" + exit 1 +-- +1.9.4.msysgit.2 + diff --git a/mingw-w64-nim/PKGBUILD b/mingw-w64-nim/PKGBUILD new file mode 100644 index 0000000000..da596500f7 --- /dev/null +++ b/mingw-w64-nim/PKGBUILD @@ -0,0 +1,89 @@ +# Maintainer: David Macek + +# TODO: include more stuff from tools/? + +_realname=nim + +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.10.2 +pkgrel=1 +pkgdesc='Imperative, multi-paradigm, compiled programming language (mingw-w64)' +arch=('any') +url='http://nim-lang.org/' +license=('MIT') +makedepends=('git') +options=(!emptydirs) +source=("${_realname}::git://github.com/Araq/Nim.git#tag=v${pkgver}" + "${_realname}-build::git://github.com/nim-lang/csources" + "0001-Use-unixy-filenames-even-on-Windows.patch" + "0002-Recognize-mingw-in-build.sh.patch") +md5sums=('SKIP' + 'SKIP' + '4c1568c5ee3306ead0705432c22f8c78' + '0c13cf30e123b57d55d687cf18d5bf56') + +prepare() { + cd "${srcdir}" + + rm "${_realname}/build/empty.txt" && rmdir "${_realname}/build" + cp -R "${_realname}-build" "${_realname}/build" + + cd "${_realname}" + patch -p1 -i "${srcdir}/0001-Use-unixy-filenames-even-on-Windows.patch" + + pushd build + patch -p1 -i "${srcdir}/0002-Recognize-mingw-in-build.sh.patch" + popd +} + +build() { + cd "${srcdir}/${_realname}" + + pushd build + sh build.sh + popd + + ./bin/nim c koch + ./koch boot -d:release -d:useGnuReadline + + export PATH="${srcdir}/${_realname}/bin:$PATH" + + pushd lib + nim c --app:lib -d:createNimRtl -d:release nimrtl.nim + popd + + pushd tools + nim c -d:release nimgrep.nim + popd +} + +package() { + cd "${srcdir}/${_realname}" + + export PATH="${srcdir}/${_realname}/bin:$PATH" + + ./koch install "${pkgdir}" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/bin" + # mv "${pkgdir}/nim/bin"/* "${pkgdir}${MINGW_PREFIX}/bin/" + cp "bin/nim.exe" "${pkgdir}${MINGW_PREFIX}/bin/" + cp "tools/nimgrep.exe" "${pkgdir}${MINGW_PREFIX}/bin/" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/lib/nim" + mv "${pkgdir}/nim/lib"/* "${pkgdir}${MINGW_PREFIX}/lib/nim/" + cp -a "lib/packages" "${pkgdir}${MINGW_PREFIX}/lib/nim/" + cp "lib/libnimrtl.dll" "${pkgdir}${MINGW_PREFIX}/lib/" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/etc" + mv "${pkgdir}/nim/config"/* "${pkgdir}${MINGW_PREFIX}/etc/" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/nim/doc" + cp -r "examples" "web" "${pkgdir}${MINGW_PREFIX}/share/nim/doc/" + cp -r "doc"/* "${pkgdir}${MINGW_PREFIX}/share/nim/doc/" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" + cp "copying.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" + + # clean up after koch install + rm -r "${pkgdir}/nim" +} diff --git a/mingw-w64-nimble/PKGBUILD b/mingw-w64-nimble/PKGBUILD new file mode 100644 index 0000000000..76085c117e --- /dev/null +++ b/mingw-w64-nimble/PKGBUILD @@ -0,0 +1,28 @@ +# Maintainer: David Macek + +_realname=nimble + +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=0.6 +pkgrel=1 +pkgdesc='Package manager for the Nim programming language (mingw-w64)' +arch=('any') +url='https://github.com/nim-lang/nimble.git' +license=('BSD') +makedepends=('git' + "${MINGW_PACKAGE_PREFIX}-nim") +source=("${_realname}::git://github.com/nim-lang/nimble.git#tag=v${pkgver}") +md5sums=('SKIP') + +build() { + cd "${srcdir}/${_realname}/src" + + nim c -d:release nimble.nim +} + +package() { + cd "${srcdir}/${_realname}" + + cp "src/nimble" "${pkgdir}${MINGW_PREFIX}/bin/nimble" + cp "license.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From 1ce7e1835f381b2a14ab3be7957e5a5cd13d61eb Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 14 Jan 2015 23:28:10 +0000 Subject: [PATCH 0345/2060] go: Update to 1.4, add relocation (WIP) --- mingw-w64-go/PKGBUILD | 91 +++- mingw-w64-go/relocation-support.patch | 611 ++++++++++++++++++++++++++ 2 files changed, 694 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-go/relocation-support.patch diff --git a/mingw-w64-go/PKGBUILD b/mingw-w64-go/PKGBUILD index 7c47f81269..db7a097d3d 100644 --- a/mingw-w64-go/PKGBUILD +++ b/mingw-w64-go/PKGBUILD @@ -1,9 +1,8 @@ # Maintainer: Martell Malone < martell malone at g mail dot com > _realname=go - pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.3.3 +pkgver=1.4 pkgrel=1 pkgdesc="Go Lang" arch=('any') @@ -16,18 +15,33 @@ depends=() options=('!strip') source=("http://golang.org/dl/go${pkgver}.src.tar.gz" - "msys2-unix-files.patch") -sha1sums=('b54b7deb7b7afe9f5d9a3f5dd830c7dede35393a' - 'SKIP') + "msys2-unix-files.patch" + "relocation-support.patch") +sha1sums=('6a7d9bd90550ae1e164d7803b3e945dc8309252b' + '86ed6c4f5ab069e4470e3efc0cb9ae912ff7a31b' + '995907f84dd53e6d04d21d350766e47a866e6b6e') prepare() { - cd ${srcdir}/go + pushd "${srcdir}"/${_realname} + [ -f src/cmd/dist/pathtools.c ] && rm -f src/cmd/dist/pathtools.c + [ -f src/cmd/dist/pathtools.h ] && rm -f src/cmd/dist/pathtools.h #patch -p1 -i ${srcdir}/msys2-unix-files.patch + patch -p1 -i ${srcdir}/relocation-support.patch + popd + [ -d "${srcdir}"/$_realname-$pkgver ] && rm -rf "${srcdir}"/$_realname-$pkgver + mv "${srcdir}"/${_realname} "${srcdir}"/$_realname-$pkgver } build() { - cd ${srcdir}/go/src - GO_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1" CFLAGS="-D__USE_MINGW_ANSI_STDIO=1" ./make.bat + cd "${srcdir}"/$_realname-$pkgver/src + + export GOROOT="$srcdir/$_realname-$pkgver" + export GOBIN="$GOROOT/bin" + export GOPATH="$srcdir/" + export GOROOT_FINAL=${MINGW_PREFIX}/lib/go + export GO_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1" + export CFLAGS="-D__USE_MINGW_ANSI_STDIO=1" + ./make.bat } package() { @@ -40,3 +54,64 @@ package() { mv "${srcdir}/go/src/pkg" "${pkgdir}${MINGW_PREFIX}/src/" mv "${srcdir}/go/src/cmd" "${pkgdir}${MINGW_PREFIX}/src/" } + +package() { + cd "$_realname-$pkgver" + + export GOROOT="$srcdir/$_realname-$pkgver" + export GOBIN="$GOROOT/bin" + +# install -Dm755 "$srcdir/godoc" "${pkgdir}${MINGW_PREFIX}/bin/godoc" + + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/go" + install -Dm644 "${srcdir}"/$_realname-$pkgver/LICENSE \ + "${pkgdir}${MINGW_PREFIX}/share/licenses/go/LICENSE" + + mkdir -p \ + "${pkgdir}${MINGW_PREFIX}/"{share/go,lib/go,lib/go/src,lib/go/site/src} + + cp -r doc misc -t "${pkgdir}${MINGW_PREFIX}/share/go" +# ln -s ${MINGW_PREFIX}/share/go/doc "${pkgdir}${MINGW_PREFIX}/lib/go/doc" + cp -a bin "${pkgdir}${MINGW_PREFIX}" + cp -a pkg "${pkgdir}${MINGW_PREFIX}/lib/go" + cp -a "$GOROOT/src" "${pkgdir}${MINGW_PREFIX}/lib/go/" + cp -a "$GOROOT/src/cmd" "${pkgdir}${MINGW_PREFIX}/lib/go/src/cmd" + cp -a "$GOROOT/src/lib9" "${pkgdir}${MINGW_PREFIX}/lib/go/src/" + cp -a "$GOROOT/lib" "${pkgdir}${MINGW_PREFIX}/lib/go/" + cp -a "$GOROOT/include" "${pkgdir}${MINGW_PREFIX}/lib/go/" + + install -Dm644 src/Make.* "${pkgdir}${MINGW_PREFIX}/lib/go/src" + + # Remove object files from target src dir + find "${pkgdir}${MINGW_PREFIX}/lib/go/src/" -type f -name '*.[ao]' -delete + + # Fix for FS#32813 + find "$pkgdir" -type f -name sql.go -exec chmod -x {} \; + + # Remove all executable source files + find "${pkgdir}${MINGW_PREFIX}/lib/go/src" -type f -executable -delete + + # Headers for C modules + install -Dm644 src/runtime/runtime.h \ + "${pkgdir}${MINGW_PREFIX}/lib/go/src/runtime/runtime.h" + install -Dm644 src/runtime/cgocall.h \ + "${pkgdir}${MINGW_PREFIX}/lib/go/src/runtime/cgocall.h" + + # This is to make go get code.google.com/p/go-tour/gotour and + # then running the gotour executable work out of the box. + # ln -sf ${MINGW_PREFIX}/bin "${pkgdir}${MINGW_PREFIX}/lib/go/bin" + + # For FS#42660 / FS#42661 / gox + install -Dm755 src/make.bash "${pkgdir}${MINGW_PREFIX}/lib/go/src/make.bash" + install -Dm755 src/run.bash "${pkgdir}${MINGW_PREFIX}/lib/go/src/run.bash" + cp -r misc/ "${pkgdir}${MINGW_PREFIX}/lib/go/" + + # For godoc + install -Dm644 favicon.ico "${pkgdir}${MINGW_PREFIX}/lib/go/favicon.ico" + + rm -f "${pkgdir}${MINGW_PREFIX}/share/go/doc/articles/wiki/get.bin" + + install -Dm644 VERSION "${pkgdir}${MINGW_PREFIX}/lib/go/VERSION" + + find "${pkgdir}${MINGW_PREFIX}/"{lib/go/pkg,bin} -type f -exec touch '{}' + +} diff --git a/mingw-w64-go/relocation-support.patch b/mingw-w64-go/relocation-support.patch new file mode 100644 index 0000000000..256e6bff5b --- /dev/null +++ b/mingw-w64-go/relocation-support.patch @@ -0,0 +1,611 @@ +diff -urN go.orig/src/cmd/dist/pathtools.c go/src/cmd/dist/pathtools.c +--- go.orig/src/cmd/dist/pathtools.c 1970-01-01 01:00:00.000000000 +0100 ++++ go/src/cmd/dist/pathtools.c 2015-01-14 21:52:47.223036600 +0000 +@@ -0,0 +1,538 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++#include ++#endif ++#include ++ ++/* If you don't define this, then get_executable_path() ++ can only use argv[0] which will often not work well */ ++#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH ++ ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++/* Nothing needed, unistd.h is enough. */ ++#elif defined(__APPLE__) ++#include ++#elif defined(_WIN32) ++#define WIN32_MEAN_AND_LEAN ++#include ++#include ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ ++#include "pathtools.h" ++ ++char * ++malloc_copy_string(char const * original) ++{ ++ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); ++ if (result != NULL) ++ { ++ strcpy (result, original); ++ } ++ return result; ++} ++ ++void ++sanitise_path(char * path) ++{ ++ size_t path_size = strlen (path); ++ ++ /* Replace any '\' with '/' */ ++ char * path_p = path; ++ while ((path_p = strchr (path_p, '\\')) != NULL) ++ { ++ *path_p = '/'; ++ } ++ /* Replace any '//' with '/' */ ++ path_p = path; ++ while ((path_p = strstr (path_p, "//")) != NULL) ++ { ++ memmove (path_p, path_p + 1, path_size--); ++ } ++ return; ++} ++ ++char * ++get_relative_path(char const * from_in, char const * to_in) ++{ ++ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); ++ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); ++ size_t max_size = (from_size + to_size) * 2 + 4; ++ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); ++ char * from; ++ char * to; ++ char * common_part; ++ char * result; ++ size_t count; ++ ++ /* No to, return "./" */ ++ if (to_in == NULL) ++ { ++ return malloc_copy_string ("./"); ++ } ++ ++ /* If alloca failed or no from was given return a copy of to */ ++ if ( from_in == NULL ++ || scratch_space == NULL ) ++ { ++ return malloc_copy_string (to_in); ++ } ++ ++ from = scratch_space; ++ strcpy (from, from_in); ++ to = from + from_size + 1; ++ strcpy (to, to_in); ++ common_part = to + to_size + 1; ++ result = common_part + max_size; ++ simplify_path (from); ++ simplify_path (to); ++ ++ result[0] = '\0'; ++ ++ size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ ++ size_t match_size = 0; /* The running (and final) match size. */ ++ size_t largest_size = (from_size > to_size) ? from_size : to_size; ++ int to_final_is_slash = (to[to_size-1] == '/') ? 1 : 0; ++ char from_c; ++ char to_c; ++ for (match_size = 0; match_size < largest_size; ++match_size) ++ { ++ /* To simplify the logic, always pretend the strings end with '/' */ ++ from_c = (match_size < from_size) ? from[match_size] : '/'; ++ to_c = (match_size < to_size) ? to[match_size] : '/'; ++ ++ if (from_c != to_c) ++ { ++ if (from_c != '\0' || to_c != '\0') ++ { ++ match_size = match_size_dirsep; ++ } ++ break; ++ } ++ else if (from_c == '/') ++ { ++ match_size_dirsep = match_size; ++ } ++ } ++ strncpy (common_part, from, match_size); ++ common_part[match_size] = '\0'; ++ from += match_size; ++ to += match_size; ++ size_t ndotdots = 0; ++ char const* from_last = from + strlen(from) - 1; ++ while ((from = strchr (from, '/')) && from != from_last) ++ { ++ ++ndotdots; ++ ++from; ++ } ++ for (count = 0; count < ndotdots; ++count) ++ { ++ strcat(result, "../"); ++ } ++ if (strlen(to) > 0) ++ { ++ strcat(result, to+1); ++ } ++ /* Make sure that if to ends with '/' result does the same, and ++ vice-versa. */ ++ size_t size_result = strlen(result); ++ if ((to_final_is_slash == 1) ++ && (!size_result || result[size_result-1] != '/')) ++ { ++ strcat (result, "/"); ++ } ++ else if (!to_final_is_slash ++ && size_result && result[size_result-1] == '/') ++ { ++ result[size_result-1] = '\0'; ++ } ++ ++ return malloc_copy_string (result); ++} ++ ++void ++simplify_path(char * path) ++{ ++ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ ++ ssize_t i, j; ++ size_t tok_size; ++ size_t in_size = strlen (path); ++ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; ++ char * result = path; ++ sanitise_path(result); ++ char * result_p = result; ++ ++ do ++ { ++ ++n_toks; ++ ++result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ result_p = result; ++ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); ++ n_toks = 0; ++ do ++ { ++ if (result_p > result) ++ { ++ *result_p++ = '\0'; ++ } ++ else if (*result_p == '/') ++ { ++ /* A leading / creates an empty initial token. */ ++ toks[n_toks++] = result_p; ++ *result_p++ = '\0'; ++ } ++ toks[n_toks++] = result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ /* Remove all non-leading '.' and any '..' we can match ++ with an earlier forward path (i.e. neither '.' nor '..') */ ++ for (i = 1; i < n_toks; ++i) ++ { ++ int removals[2] = { -1, -1 }; ++ if ( strcmp (toks[i], "." ) == 0) ++ { ++ removals[0] = i; ++ } ++ else if ( strcmp (toks[i], ".." ) == 0) ++ { ++ /* Search backwards for a forward path to collapse. ++ If none are found then the .. also stays. */ ++ for (j = i - 1; j > -1; --j) ++ { ++ if ( strcmp (toks[j], "." ) ++ && strcmp (toks[j], ".." ) ) ++ { ++ removals[0] = j; ++ removals[1] = i; ++ break; ++ } ++ } ++ } ++ for (j = 0; j < 2; ++j) ++ { ++ if (removals[j] >= 0) /* Can become -2 */ ++ { ++ --n_toks; ++ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); ++ --i; ++ if (!j) ++ { ++ --removals[1]; ++ } ++ } ++ } ++ } ++ result_p = result; ++ for (i = 0; i < n_toks; ++i) ++ { ++ tok_size = strlen(toks[i]); ++ memcpy (result_p, toks[i], tok_size); ++ result_p += tok_size; ++ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) ++ { ++ *result_p = '/'; ++ ++result_p; ++ } ++ } ++ *result_p = '\0'; ++} ++ ++/* Returns actual_to by calculating the relative path from -> to and ++ applying that to actual_from. An assumption that actual_from is a ++ dir is made, and it may or may not end with a '/' */ ++char const * ++get_relocated_path (char const * from, char const * to, char const * actual_from) ++{ ++ char const * relative_from_to = get_relative_path (from, to); ++ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); ++ return actual_to; ++} ++ ++int ++get_executable_path(char const * argv0, char * result, ssize_t max_size) ++{ ++ char * system_result = (char *) alloca (max_size); ++ ssize_t system_result_size = -1; ++ ssize_t result_size = -1; ++ ++ if (system_result != NULL) ++ { ++#if defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++ system_result_size = readlink("/proc/self/exe", system_result, max_size); ++#elif defined(__APPLE__) ++ uint32_t bufsize = (uint32_t)max_size; ++ if (_NSGetExecutablePath(system_result, &bufsize) == 0) ++ { ++ system_result_size = (ssize_t)bufsize; ++ } ++#elif defined(_WIN32) ++ unsigned long bufsize = (unsigned long)max_size; ++ system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); ++ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) ++ { ++ /* Error, possibly not enough space. */ ++ system_result_size = -1; ++ } ++ else ++ { ++ /* Early conversion to unix slashes instead of more changes ++ everywhere else .. */ ++ char * winslash; ++ system_result[system_result_size] = '\0'; ++ while ((winslash = strchr (system_result, '\\')) != NULL) ++ { ++ *winslash = '/'; ++ } ++ } ++#else ++#warning "Don't know how to get executable path on this system" ++#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ ++ } ++ /* Use argv0 as a default in-case of failure */ ++ if (system_result_size != -1) ++ { ++ strncpy (result, system_result, system_result_size); ++ result[system_result_size] = '\0'; ++ } ++ else ++ { ++ if (argv0 != NULL) ++ { ++ strncpy (result, argv0, max_size); ++ result[max_size-1] = '\0'; ++ } ++ else ++ { ++ result[0] = '\0'; ++ } ++ } ++ result_size = strlen (result); ++ return result_size; ++} ++ ++char const * ++strip_n_prefix_folders(char const * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return NULL; ++ } ++ ++ if (path[0] != '/') ++ { ++ return path; ++ } ++ ++ char const * last = path; ++ while (n-- && path != NULL) ++ { ++ last = path; ++ path = strchr (path + 1, '/'); ++ } ++ return (path == NULL) ? last : path; ++} ++ ++void ++strip_n_suffix_folders(char * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return; ++ } ++ while (n--) ++ { ++ if (strrchr (path + 1, '/')) ++ { ++ *strrchr (path + 1, '/') = '\0'; ++ } ++ else ++ { ++ return; ++ } ++ } ++ return; ++} ++ ++size_t ++split_path_list(char const * path_list, char split_char, char *** arr) ++{ ++ size_t path_count; ++ size_t path_list_size; ++ char const * path_list_p; ++ ++ path_list_p = path_list; ++ if (path_list == NULL || path_list[0] == '\0') ++ { ++ return 0; ++ } ++ path_list_size = strlen (path_list); ++ ++ path_count = 0; ++ do ++ { ++ ++path_count; ++ ++path_list_p; ++ } ++ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); ++ ++ /* allocate everything in one go. */ ++ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); ++ if (all_memory == NULL) ++ return 0; ++ *arr = (char **)all_memory; ++ all_memory += sizeof (char *) * path_count; ++ ++ path_count = 0; ++ path_list_p = path_list; ++ char const * next_path_list_p = 0; ++ do ++ { ++ next_path_list_p = strchr (path_list_p, split_char); ++ if (next_path_list_p != NULL) ++ { ++ ++next_path_list_p; ++ } ++ size_t this_size = (next_path_list_p != NULL) ++ ? next_path_list_p - path_list_p - 1 ++ : &path_list[path_list_size] - path_list_p; ++ memcpy (all_memory, path_list_p, this_size); ++ all_memory[this_size] = '\0'; ++ (*arr)[path_count++] = all_memory; ++ all_memory += this_size + 1; ++ } while ((path_list_p = next_path_list_p) != NULL); ++ ++ return path_count; ++} ++ ++char * ++get_relocated_path_list(char const * from, char const * to_path_list) ++{ ++ char exe_path[MAX_PATH]; ++ char * temp; ++ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ if ((temp = strrchr (exe_path, '/')) != NULL) ++ { ++ temp[1] = '\0'; ++ } ++ ++ char **arr = NULL; ++ /* Ask Alexey why he added this. Are we not 100% sure ++ that we're dealing with unix paths here? */ ++ char split_char = ':'; ++ if (strchr (to_path_list, ';')) ++ { ++ split_char = ';'; ++ } ++ size_t count = split_path_list (to_path_list, split_char, &arr); ++ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ ++ size_t exe_path_size = strlen (exe_path); ++ size_t i; ++ /* Space required is: ++ count * (exe_path_size + strlen (rel_to_datadir)) ++ rel_to_datadir upper bound is: ++ (count * strlen (from)) + (3 * num_slashes (from)) ++ + strlen(arr[i]) + 1. ++ .. pathalogically num_slashes (from) is strlen (from) ++ (from = ////////) */ ++ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; ++ for (i = 0; i < count; ++i) ++ { ++ space_required += strlen (arr[i]); ++ } ++ char * scratch = (char *) alloca (space_required); ++ if (scratch == NULL) ++ return NULL; ++ for (i = 0; i < count; ++i) ++ { ++ char * rel_to_datadir = get_relative_path (from, arr[i]); ++ scratch[0] = '\0'; ++ arr[i] = scratch; ++ strcat (scratch, exe_path); ++ strcat (scratch, rel_to_datadir); ++ simplify_path (arr[i]); ++ size_t arr_i_size = strlen (arr[i]); ++ result_size += arr_i_size; ++ scratch = arr[i] + arr_i_size + 1; ++ } ++ char * result = (char *) malloc (result_size); ++ if (result == NULL) ++ { ++ return NULL; ++ } ++ result[0] = '\0'; ++ for (i = 0; i < count; ++i) ++ { ++ strcat (result, arr[i]); ++ if (i != count-1) ++ { ++#if defined(_WIN32) ++ strcat (result, ";"); ++#else ++ strcat (result, ":"); ++#endif ++ } ++ } ++ free ((void*)arr); ++ return result; ++} ++ ++char * ++single_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) ++ char exe_path[PATH_MAX]; ++ get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); ++ if (strrchr (exe_path, '/') != NULL) ++ { ++ strrchr (exe_path, '/')[1] = '\0'; ++ } ++ char * rel_to_datadir = get_relative_path (from, to); ++ strcat (exe_path, rel_to_datadir); ++ simplify_path (&exe_path[0]); ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} +diff -urN go.orig/src/cmd/dist/pathtools.h go/src/cmd/dist/pathtools.h +--- go.orig/src/cmd/dist/pathtools.h 1970-01-01 01:00:00.000000000 +0100 ++++ go/src/cmd/dist/pathtools.h 2015-01-14 21:54:12.092030900 +0000 +@@ -0,0 +1,53 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#ifndef PATHTOOLS_H ++#define PATHTOOLS_H ++ ++#include ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++ ++char * malloc_copy_string(char const * original); ++ ++/* In-place replaces any '\' with '/' and any '//' with '/' */ ++void sanitise_path(char * path); ++ ++/* Uses a host OS specific function to determine the path of the executable, ++ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ ++int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ ++/* Where possible, in-place removes occourances of '.' and 'path/..' */ ++void simplify_path(char * path); ++ ++/* Allocates (via malloc) and returns the path to get from from to to. */ ++char * get_relative_path(char const * from, char const * to); ++ ++size_t split_path_list(char const * path_list, char split_char, char *** arr); ++ ++/* Advances path along by the amount that removes n prefix folders. */ ++char const * ++strip_n_prefix_folders(char const * path, size_t n); ++ ++/* NULL terminates path to remove n suffix folders. */ ++void ++strip_n_suffix_folders(char * path, size_t n); ++ ++char const * get_relocated_path (char const * from, char const * to, char const * actual_from); ++char * get_relocated_path_list(char const * from, char const * to_path_list); ++ ++char * single_path_relocation(const char *from, const char *to); ++char * pathlist_relocation(const char *from_path, const char *to_path_list); ++ ++#endif /* PATHTOOLS_H */ +diff -urN go.orig/src/make.bat go/src/make.bat +--- go.orig/src/make.bat 2015-01-14 21:47:40.689086100 +0000 ++++ go/src/make.bat 2015-01-14 21:54:03.409794400 +0000 +@@ -60,7 +60,7 @@ + echo cmd/dist + if not exist ..\bin\tool mkdir ..\bin\tool + :: Windows has no glob expansion, so spell out cmd/dist/*.c. +-gcc -O2 -Wall -Werror -o cmd/dist/dist.exe -Icmd/dist %DEFGOROOT% cmd/dist/buf.c cmd/dist/build.c cmd/dist/buildgc.c cmd/dist/buildgo.c cmd/dist/buildruntime.c cmd/dist/main.c cmd/dist/windows.c cmd/dist/arm.c ++gcc -O2 -Wall -Werror -o cmd/dist/dist.exe -Icmd/dist %DEFGOROOT% cmd/dist/buf.c cmd/dist/build.c cmd/dist/buildgc.c cmd/dist/buildgo.c cmd/dist/buildruntime.c cmd/dist/main.c cmd/dist/windows.c cmd/dist/arm.c cmd/dist/pathtools.c + if errorlevel 1 goto fail + .\cmd\dist\dist env -wp >env.bat + if errorlevel 1 goto fail From 235a501ab3747884666a2d36b94e46bf6e0ccad9 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 15 Jan 2015 00:07:53 +0000 Subject: [PATCH 0346/2060] mingw-w64-headers-git: Remove upstreamed patch --- ...ation-errors-since-Update-netioa-API.patch | 94 ------------------- mingw-w64-headers-git/PKGBUILD | 10 +- 2 files changed, 4 insertions(+), 100 deletions(-) delete mode 100644 mingw-w64-headers-git/0001-Fix-compilation-errors-since-Update-netioa-API.patch diff --git a/mingw-w64-headers-git/0001-Fix-compilation-errors-since-Update-netioa-API.patch b/mingw-w64-headers-git/0001-Fix-compilation-errors-since-Update-netioa-API.patch deleted file mode 100644 index 997ad8d607..0000000000 --- a/mingw-w64-headers-git/0001-Fix-compilation-errors-since-Update-netioa-API.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 2de65adb7dc6c7b18a33a777a1f9068cfee395d7 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Mon, 12 Jan 2015 18:15:39 +0000 -Subject: [PATCH] Fix compilation errors since 'Update netioa-API' - -iphlpapi.h needs to include -{Get,Set}PerTcp{,6}ConnectionEStats is only - for #if NTDDI_VERSION >= 0x06000000 -IF_COUNTED_STRING was not defined in ifdef.h -NET_IF_OPER_STATUS was not defined in ifdef.h ---- - mingw-w64-headers/include/ifdef.h | 24 ++++++++++++++++++++++++ - mingw-w64-headers/include/iphlpapi.h | 4 ++-- - mingw-w64-headers/include/iprtrmib.h | 2 ++ - 3 files changed, 28 insertions(+), 2 deletions(-) - -diff --git a/mingw-w64-headers/include/ifdef.h b/mingw-w64-headers/include/ifdef.h -index 8c5b028..0d78a00 100644 ---- a/mingw-w64-headers/include/ifdef.h -+++ b/mingw-w64-headers/include/ifdef.h -@@ -33,6 +33,16 @@ typedef enum _IF_OPER_STATUS { - IfOperStatusLowerLayerDown - } IF_OPER_STATUS; - -+typedef enum _NET_IF_OPER_STATUS { -+ NET_IF_OPER_STATUS_UP = 1, -+ NET_IF_OPER_STATUS_DOWN, -+ NET_IF_OPER_STATUS_TESTING, -+ NET_IF_OPER_STATUS_UNKNOWN, -+ NET_IF_OPER_STATUS_DORMANT, -+ NET_IF_OPER_STATUS_NOT_PRESENT, -+ NET_IF_OPER_STATUS_LOWER_LAYER_DOWN -+} NET_IF_OPER_STATUS, *PNET_IF_OPER_STATUS; -+ - typedef enum _NET_IF_ADMIN_STATUS { - NET_IF_ADMIN_STATUS_UP = 1, - NET_IF_ADMIN_STATUS_DOWN, -@@ -94,6 +104,20 @@ typedef union _NET_LUID { - - typedef NET_LUID IF_LUID, *PIF_LUID; - -+typedef struct _IF_COUNTED_STRING_LH { -+ USHORT Length; -+ WCHAR String[IF_MAX_STRING_SIZE + 1]; -+} IF_COUNTED_STRING_LH, *PIF_COUNTED_STRING_LH; -+typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING; -+typedef IF_COUNTED_STRING *PIF_COUNTED_STRING; -+ -+typedef struct _IF_PHYSICAL_ADDRESS_LH { -+ USHORT Length; -+ UCHAR Address[IF_MAX_PHYS_ADDRESS_LENGTH]; -+} IF_PHYSICAL_ADDRESS_LH, *PIF_PHYSICAL_ADDRESS_LH; -+typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS; -+typedef IF_PHYSICAL_ADDRESS *PIF_PHYSICAL_ADDRESS; -+ - #ifdef __cplusplus - } - #endif -diff --git a/mingw-w64-headers/include/iphlpapi.h b/mingw-w64-headers/include/iphlpapi.h -index a237c8a..03aed33 100644 ---- a/mingw-w64-headers/include/iphlpapi.h -+++ b/mingw-w64-headers/include/iphlpapi.h -@@ -43,13 +43,13 @@ extern "C" { - #if NTDDI_VERSION >= 0x06000000 - ULONG WINAPI GetTcp6Table (PMIB_TCP6TABLE TcpTable, PULONG SizePointer, WINBOOL Order); - ULONG WINAPI GetTcp6Table2 (PMIB_TCP6TABLE2 TcpTable, PULONG SizePointer, WINBOOL Order); --#endif - ULONG WINAPI GetPerTcpConnectionEStats (PMIB_TCPROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, PUCHAR Ros, ULONG RosVersion, ULONG RosSize, PUCHAR Rod, ULONG RodVersion, ULONG RodSize); - ULONG WINAPI SetPerTcpConnectionEStats (PMIB_TCPROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, ULONG Offset); - ULONG WINAPI GetPerTcp6ConnectionEStats (PMIB_TCP6ROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, PUCHAR Ros, ULONG RosVersion, ULONG RosSize, PUCHAR Rod, ULONG RodVersion, ULONG RodSize); - ULONG WINAPI SetPerTcp6ConnectionEStats (PMIB_TCP6ROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, ULONG Offset); -- DWORD WINAPI GetOwnerModuleFromTcp6Entry (PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); - ULONG WINAPI GetUdp6Table (PMIB_UDP6TABLE Udp6Table, PULONG SizePointer, WINBOOL Order); -+#endif -+ DWORD WINAPI GetOwnerModuleFromTcp6Entry (PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); - DWORD WINAPI GetOwnerModuleFromUdp6Entry (PMIB_UDP6ROW_OWNER_MODULE pUdpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); - #endif - DWORD GetOwnerModuleFromPidAndInfo (ULONG ulPid, ULONGLONG *pInfo, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize); -diff --git a/mingw-w64-headers/include/iprtrmib.h b/mingw-w64-headers/include/iprtrmib.h -index f5f826b..2e814fe 100644 ---- a/mingw-w64-headers/include/iprtrmib.h -+++ b/mingw-w64-headers/include/iprtrmib.h -@@ -359,6 +359,8 @@ typedef struct _MIB_TCP6ROW_OWNER_MODULE { - We simply typedef it to int. */ - typedef int MIB_TCP_STATE; - -+#include -+ - typedef struct _MIB_TCPTABLE { - DWORD dwNumEntries; - MIB_TCPROW table[ANY_SIZE]; --- -2.2.1 - diff --git a/mingw-w64-headers-git/PKGBUILD b/mingw-w64-headers-git/PKGBUILD index 9ed9207f87..87ebc9a7fb 100644 --- a/mingw-w64-headers-git/PKGBUILD +++ b/mingw-w64-headers-git/PKGBUILD @@ -1,11 +1,12 @@ # Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly _realname=headers pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" replaces="${MINGW_PACKAGE_PREFIX}-${_realname}-svn" pkgdesc="MinGW-w64 headers for Windows" _ver_base=4.0.0 -pkgver=4.0.0.4402.95c900f +pkgver=4.0.0.4403.e38d79f pkgrel=1 arch=('any') url="http://mingw-w64.sourceforge.net" @@ -15,10 +16,8 @@ makedepends=('git') provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") options=('!strip' '!libtool' '!emptydirs') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" - "0001-Fix-compilation-errors-since-Update-netioa-API.patch") -md5sums=('SKIP' - '05d92147b2ee422caf2f33519b9aff9c') +source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +md5sums=('SKIP') pkgver() { cd "$srcdir/$_realname" @@ -27,7 +26,6 @@ pkgver() { prepare() { cd ${srcdir}/${_realname} - git am "${srcdir}"/0001-Fix-compilation-errors-since-Update-netioa-API.patch } build() { From 91ac422a18a7dcfc1450952617ed2dcfebd875d7 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 15 Jan 2015 10:51:17 +0300 Subject: [PATCH 0347/2060] gobject-introspection: Increase pkgrel. --- mingw-w64-gobject-introspection/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-gobject-introspection/PKGBUILD b/mingw-w64-gobject-introspection/PKGBUILD index e5e8d513e2..35f7003370 100644 --- a/mingw-w64-gobject-introspection/PKGBUILD +++ b/mingw-w64-gobject-introspection/PKGBUILD @@ -3,7 +3,7 @@ _realname=gobject-introspection pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.42.0 -pkgrel=2 +pkgrel=3 pkgdesc="GObject Introspection can scan C header and source files in order to generate introspection typelib files (mingw-w64)" arch=('any') url="https://live.gnome.org/GObjectIntrospection" From 94f2244d75030f3cb81caf42c28a307b03d117c5 Mon Sep 17 00:00:00 2001 From: David Macek Date: Thu, 15 Jan 2015 09:40:05 +0100 Subject: [PATCH 0348/2060] WIP nimble: Fixed URL and possibly a mistake in package() --- mingw-w64-nimble/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-nimble/PKGBUILD b/mingw-w64-nimble/PKGBUILD index 76085c117e..67373f816f 100644 --- a/mingw-w64-nimble/PKGBUILD +++ b/mingw-w64-nimble/PKGBUILD @@ -7,7 +7,7 @@ pkgver=0.6 pkgrel=1 pkgdesc='Package manager for the Nim programming language (mingw-w64)' arch=('any') -url='https://github.com/nim-lang/nimble.git' +url='https://github.com/nim-lang/nimble' license=('BSD') makedepends=('git' "${MINGW_PACKAGE_PREFIX}-nim") @@ -23,6 +23,6 @@ build() { package() { cd "${srcdir}/${_realname}" - cp "src/nimble" "${pkgdir}${MINGW_PREFIX}/bin/nimble" + cp "src/nimble.exe" "${pkgdir}${MINGW_PREFIX}/bin" cp "license.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From e9d6806fbd75f6444da25b3c1e36fa86b0e41ce6 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 15 Jan 2015 15:59:51 +0300 Subject: [PATCH 0349/2060] clang: Update to 3.5.1 --- mingw-w64-clang/PKGBUILD | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index ae5e4a87b9..b2584edbdb 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -7,8 +7,8 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" #"${MINGW_PACKAGE_PREFIX}-compiler-rt" ) -pkgver=3.5.0 -pkgrel=6 +pkgver=3.5.1 +pkgrel=1 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -34,13 +34,13 @@ source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz{,.sig} clang-3.6-allow-dll-attributes0.patch clang-3.6-allow-dll-attributes1.patch clang-3.6-allow-dll-attributes2.patch) -sha256sums=('28e199f368ef0a4666708f31c7991ad3bcc3a578342b0306526dd35f07595c03' +sha256sums=('bf3275d2d7890015c8d8f5e6f4f882f8cf3bf51967297ebe74111d6d8b53be15' 'SKIP' - 'fc80992e004b06f6c7afb612de1cdaa9ac9d25811c55f94fcf7331d9b81cdb8b' + '6773f3f9cf815631cc7e779ec134ddd228dc8e9a250e1ea3a910610c59eb8f5c' 'SKIP' - 'a4b3e655832bf8d9a357ea2c771db347237460e131988cbb96cda40ff39a8136' + 'adf4b526f33e681aff5961f0821f5b514d3fc375410008842640b56a2e6a837a' 'SKIP' - '2981beb378afb5aa5c50ed017720a42a33e77e902c7086ad2d412ef4fa931f69' + 'e8d011250389cfc36eb51557ca25ae66ab08173e8d53536a0747356105d72906' 'SKIP' '614a076dc65b400910b190f4e3d26fdebd20885cfd482f7f8464469808e3beac' '6e1168e5c9cba875ef7e87ccfd3060c3a0db6b5e2c3f1fa9fdb4d0eaea465025' @@ -62,15 +62,11 @@ prepare() { # Fix build with GCC 4.9 (patch from Debian) # http://llvm.org/bugs/show_bug.cgi?id=20067 patch -p1 -i "$srcdir/llvm-3.5.0-force-link-pass.o.patch" - patch -p0 -i "$srcdir/llvm-3.5.0-fix-cmake-llvm-exports.patch" cd "$srcdir/cfe-$pkgver.src" patch -p1 -i ${srcdir}/clang-fabs.patch patch -p1 -i ${srcdir}/clang-win64-seh.patch patch -p1 -i ${srcdir}/clang-mingw-driver.patch - patch -p1 -i ${srcdir}/clang-3.6-allow-dll-attributes0.patch - patch -p1 -i ${srcdir}/clang-3.6-allow-dll-attributes1.patch - patch -p1 -i ${srcdir}/clang-3.6-allow-dll-attributes2.patch mv "$srcdir/llvm-$pkgver.src" "$srcdir/llvm-$pkgver" cd "$srcdir/llvm-$pkgver" From 64e6271d23b65175bef392a85d906e43d4e5c7fc Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 15 Jan 2015 19:47:01 +0300 Subject: [PATCH 0350/2060] hidapi: Rebuild. Enable static library --- mingw-w64-hidapi/PKGBUILD | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/mingw-w64-hidapi/PKGBUILD b/mingw-w64-hidapi/PKGBUILD index fafb886b2f..55317bdac5 100644 --- a/mingw-w64-hidapi/PKGBUILD +++ b/mingw-w64-hidapi/PKGBUILD @@ -1,11 +1,10 @@ # Maintainer: Alexey Pavlov _realname=hidapi - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _pre=rc1 pkgver=0.8.0${_pre} -pkgrel=1 +pkgrel=2 pkgdesc="Library for communicating with USB and Bluetooth HID devices (mingw-w64)" arch=('any') url="http://www.signal11.us/oss/hidapi/" @@ -29,13 +28,12 @@ build() { --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --enable-shared \ - --disable-static \ + --enable-static \ --disable-testgui make } package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="$pkgdir" install - #rm -r "$pkgdir/usr/${_arch}/share" + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install } From fc4afc35912aefa01608f59d2f6e26e560087686 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 15 Jan 2015 19:55:01 +0300 Subject: [PATCH 0351/2060] libusb: Rebuild. --- mingw-w64-libusb/PKGBUILD | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mingw-w64-libusb/PKGBUILD b/mingw-w64-libusb/PKGBUILD index d381d29ec9..f97b6fff8a 100644 --- a/mingw-w64-libusb/PKGBUILD +++ b/mingw-w64-libusb/PKGBUILD @@ -1,10 +1,9 @@ # Maintainer: Alexey Pavlov _realname=libusb - pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.0.19 -pkgrel=1 +pkgrel=2 pkgdesc="Library that provides generic access to USB devices'. (mingw-w64)" arch=('any') url="http://libusb.info/" From 1cc38cf9d2da6bbe80bf7474355bafab74d03a2f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 15 Jan 2015 21:29:16 +0300 Subject: [PATCH 0352/2060] lz4: New package. --- .../001-mingw-install-over-msys.patch | 108 ++++++++++++++++++ mingw-w64-lz4/PKGBUILD | 57 +++++++++ 2 files changed, 165 insertions(+) create mode 100644 mingw-w64-lz4/001-mingw-install-over-msys.patch create mode 100644 mingw-w64-lz4/PKGBUILD diff --git a/mingw-w64-lz4/001-mingw-install-over-msys.patch b/mingw-w64-lz4/001-mingw-install-over-msys.patch new file mode 100644 index 0000000000..b3f96e5527 --- /dev/null +++ b/mingw-w64-lz4/001-mingw-install-over-msys.patch @@ -0,0 +1,108 @@ +--- build-i686-w64-mingw32/Makefile.orig 2015-01-15 20:34:15.599200000 +0300 ++++ build-i686-w64-mingw32/Makefile 2015-01-15 20:34:58.733200000 +0300 +@@ -86,10 +86,6 @@ + @echo Cleaning completed + + +-#------------------------------------------------------------------------ +-#make install is validated only for Linux, OSX, kFreeBSD and Hurd targets +-ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU)) +- + install: + @cd $(LZ4DIR); $(MAKE) -e install + @cd $(PRGDIR); $(MAKE) -e install +@@ -132,5 +128,3 @@ + + prg-travis: + @cd $(PRGDIR); $(MAKE) -e test-travis +- +-endif +--- build-i686-w64-mingw32/lib/Makefile.orig 2015-01-15 20:39:30.808200000 +0300 ++++ build-i686-w64-mingw32/lib/Makefile 2015-01-15 20:39:39.715800000 +0300 +@@ -43,6 +43,7 @@ + CFLAGS ?= -O3 + CFLAGS += -I. -std=c99 -Wall -Wextra -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -pedantic + ++BINDIR=$(PREFIX)/bin + LIBDIR?= $(PREFIX)/lib + INCLUDEDIR=$(PREFIX)/include + +@@ -55,11 +55,18 @@ + SHARED_EXT_VER = $(LIBVER).$(SHARED_EXT) + SONAME_FLAGS = -install_name $(PREFIX)/lib/liblz4.$(SHARED_EXT_MAJOR) -compatibility_version $(LIBVER_MAJOR) -current_version $(LIBVER) + else ++ifneq (,$(filter Windows%,$(OS))) ++ SHARED_EXT = dll ++ SONAME_FLAGS = -Wl,--out-implib,liblz4.$(SHARED_EXT).a ++ SHARED_EXT_MAJOR = $(SHARED_EXT) ++ SHARED_EXT_VER = $(SHARED_EXT) ++else + SONAME_FLAGS = -Wl,-soname=liblz4.$(SHARED_EXT).$(LIBVER_MAJOR) + SHARED_EXT = so + SHARED_EXT_MAJOR = $(SHARED_EXT).$(LIBVER_MAJOR) + SHARED_EXT_VER = $(SHARED_EXT).$(LIBVER) + endif ++endif + + default: liblz4 + +@@ -71,19 +78,11 @@ + @$(AR) rcs liblz4.a lz4.o lz4hc.o lz4frame.o xxhash.o + @echo compiling dynamic library $(LIBVER) + @$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -shared $^ -fPIC $(SONAME_FLAGS) -o $@.$(SHARED_EXT_VER) +- @echo creating versioned links +- @ln -sf $@.$(SHARED_EXT_VER) $@.$(SHARED_EXT_MAJOR) +- @ln -sf $@.$(SHARED_EXT_VER) $@.$(SHARED_EXT) + + clean: + @rm -f core *.o *.a *.$(SHARED_EXT) *.$(SHARED_EXT).* liblz4.pc + @echo Cleaning library completed + +- +-#------------------------------------------------------------------------ +-#make install is validated only for Linux, OSX, kFreeBSD and Hurd targets +-ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU)) +- + liblz4.pc: liblz4.pc.in Makefile + @echo creating pkgconfig + @sed -e 's|@PREFIX@|$(PREFIX)|' \ +@@ -88,10 +92,9 @@ + $< >$@ + + install: liblz4 liblz4.pc +- @install -d -m 755 $(DESTDIR)$(LIBDIR)/pkgconfig/ $(DESTDIR)$(INCLUDEDIR)/ +- @install -m 755 liblz4.$(SHARED_EXT_VER) $(DESTDIR)$(LIBDIR)/liblz4.$(SHARED_EXT_VER) +- @cp -a liblz4.$(SHARED_EXT_MAJOR) $(DESTDIR)$(LIBDIR) +- @cp -a liblz4.$(SHARED_EXT) $(DESTDIR)$(LIBDIR) ++ @install -d -m 755 $(DESTDIR)$(LIBDIR)/pkgconfig/ $(DESTDIR)$(INCLUDEDIR)/ $(DESTDIR)$(BINDIR)/ ++ @install -m 755 liblz4.$(SHARED_EXT) $(DESTDIR)$(BINDIR)/liblz4.$(SHARED_EXT_VER) ++ @cp -a liblz4.$(SHARED_EXT).a $(DESTDIR)$(LIBDIR) + @cp -a liblz4.pc $(DESTDIR)$(LIBDIR)/pkgconfig/ + @install -m 644 liblz4.a $(DESTDIR)$(LIBDIR)/liblz4.a + @install -m 644 lz4.h $(DESTDIR)$(INCLUDEDIR)/lz4.h +@@ -113,5 +108,3 @@ + @[ -f $(DESTDIR)$(INCLUDEDIR)/lz4.h ] && rm -f $(DESTDIR)$(INCLUDEDIR)/lz4.h + @[ -f $(DESTDIR)$(INCLUDEDIR)/lz4hc.h ] && rm -f $(DESTDIR)$(INCLUDEDIR)/lz4hc.h + @echo lz4 libraries successfully uninstalled +- +-endif +--- build-i686-w64-mingw32/programs/Makefile.orig 2015-01-15 20:38:56.379000000 +0300 ++++ build-i686-w64-mingw32/programs/Makefile 2015-01-15 20:39:13.102200000 +0300 +@@ -105,11 +105,6 @@ + datagen$(EXT) + @echo Cleaning completed + +- +-#------------------------------------------------------------------------ +-#make install is validated only for Linux, OSX, kFreeBSD and Hurd targets +-ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU)) +- + install: lz4 lz4c + @echo Installing binaries + @install -d -m 755 $(DESTDIR)$(BINDIR)/ $(DESTDIR)$(MANDIR)/ +@@ -202,5 +197,3 @@ + + test-mem32: lz4c32 datagen + # unfortunately, valgrind doesn't seem to work with non-native binary. If someone knows how to do a valgrind-test on a 32-bits exe with a 64-bits system... +- +-endif diff --git a/mingw-w64-lz4/PKGBUILD b/mingw-w64-lz4/PKGBUILD new file mode 100644 index 0000000000..8df3977813 --- /dev/null +++ b/mingw-w64-lz4/PKGBUILD @@ -0,0 +1,57 @@ +# Maintainer: Alexey Pavlov + +_realname=lz4 +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.5.0.r127 +pkgrel=1 +pkgdesc="Very fast lossless compression algorithm (mingw-w64)" +arch=('any') +url="https://code.google.com/p/lz4/" +license=("GPL2") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "subversion") +checkdepends=('diffutils') +options=('staticlibs' 'strip') +source=("${_realname}::svn+http://lz4.googlecode.com/svn/trunk/#revision=$pkgver" + 001-mingw-install-over-msys.patch) +md5sums=('SKIP' + '99b3643a9fee86ee89e991a682edb3c5') + +pkgver() { + cd ${_realname} + local _MAJOR=`sed -n '/define LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h` + local _MINOR=`sed -n '/define LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h` + local _PATCH=`sed -n '/define LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h` + local _REV="$(svnversion)" + printf "%s.%s.%s.r%s" "${_MAJOR}" "${_MINOR}" "${_PATCH}" "${_REV//[[:alpha:]]}" + +} + +prepare() { + cd ${_realname} + patch -p1 -i ${srcdir}/001-mingw-install-over-msys.patch + cd - + + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + cp -rf "${srcdir}/${_realname}" "${srcdir}/build-${MINGW_CHOST}" +} + +build() { + cd "${srcdir}/build-${MINGW_CHOST}" + make CC=${MINGW_PREFIX}/bin/gcc +} + +check() { + build-${MINGW_CHOST}/programs/lz4 /etc/profile profile.lz4 + build-${MINGW_CHOST}/programs/lz4 -d profile.lz4 profile + diff -q /etc/profile profile + rm profile + + cd "${srcdir}/build-${MINGW_CHOST}" + make CC=${MINGW_PREFIX}/bin/gcc test +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make CC=${MINGW_PREFIX}/bin/gcc DESTDIR="$pkgdir" PREFIX=${MINGW_PREFIX} install +} From 5179b62d314c095cd1b616a5073257dbafbf1e2f Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 15 Jan 2015 22:57:48 +0300 Subject: [PATCH 0353/2060] spice-gtk: Build with lz4 support. --- mingw-w64-spice-gtk/001-win.patch | 2 +- mingw-w64-spice-gtk/002-lz4-support.patch | 14 ++++++++ mingw-w64-spice-gtk/003-python-linking.patch | 30 ++++++++++++++++ mingw-w64-spice-gtk/PKGBUILD | 36 +++++++++++++------- 4 files changed, 69 insertions(+), 13 deletions(-) create mode 100644 mingw-w64-spice-gtk/002-lz4-support.patch create mode 100644 mingw-w64-spice-gtk/003-python-linking.patch diff --git a/mingw-w64-spice-gtk/001-win.patch b/mingw-w64-spice-gtk/001-win.patch index c5d9ccbf85..eb37366af7 100644 --- a/mingw-w64-spice-gtk/001-win.patch +++ b/mingw-w64-spice-gtk/001-win.patch @@ -1,6 +1,6 @@ --- ./gtk/Makefile.am.orig 2014-12-06 11:07:51.611626700 +0100 +++ ./gtk/Makefile.am 2014-12-06 11:19:08.186671400 +0100 -@@ -602,6 +602,7 @@ +@@ -599,6 +599,7 @@ INTROSPECTION_GIRS = INTROSPECTION_SCANNER_ARGS = --warn-all --accept-unprefixed --add-include-path=$(builddir) $(PREFIX_ARGS) INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir) diff --git a/mingw-w64-spice-gtk/002-lz4-support.patch b/mingw-w64-spice-gtk/002-lz4-support.patch new file mode 100644 index 0000000000..9d18a7807a --- /dev/null +++ b/mingw-w64-spice-gtk/002-lz4-support.patch @@ -0,0 +1,14 @@ +--- spice-gtk-0.27/spice-common/common/canvas_base.c.orig 2015-01-15 21:53:20.110200000 +0300 ++++ spice-gtk-0.27/spice-common/common/canvas_base.c 2015-01-15 21:54:07.503000000 +0300 +@@ -27,7 +27,11 @@ + #include + + #ifdef USE_LZ4 ++#ifdef _WIN32 ++#include ++#else + #include ++#endif + #include + #endif + #include diff --git a/mingw-w64-spice-gtk/003-python-linking.patch b/mingw-w64-spice-gtk/003-python-linking.patch new file mode 100644 index 0000000000..dd456cc66a --- /dev/null +++ b/mingw-w64-spice-gtk/003-python-linking.patch @@ -0,0 +1,30 @@ +--- spice-gtk-0.27/m4/check_python.m4.orig 2015-01-15 22:23:32.249800000 +0300 ++++ spice-gtk-0.27/m4/check_python.m4 2015-01-15 22:27:08.513400000 +0300 +@@ -30,10 +30,13 @@ + py_prefix=`$PYTHON -c "import sys; print sys.prefix"` + py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` + PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" ++ PYTHON_LIBS="-L${py_prefix}/lib -lpython${PYTHON_VERSION}" + if test "$py_prefix" != "$py_exec_prefix"; then + PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" ++ PYTHON_LIBS="-L${py_exec_prefix}/lib -lpython${PYTHON_VERSION}" + fi + AC_SUBST(PYTHON_INCLUDES) ++ AC_SUBST(PYTHON_LIBS) + dnl check if the headers exist: + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" +--- spice-gtk-0.27/gtk/Makefile.am.orig 2014-12-11 16:33:28.000000000 +0300 ++++ spice-gtk-0.27/gtk/Makefile.am 2015-01-15 22:26:03.273400000 +0300 +@@ -562,9 +562,9 @@ + install_pyexecLTLIBRARIES = install-pyexecLTLIBRARIES + $(install_pyexecLTLIBRARIES): install-libLTLIBRARIES + +-SpiceClientGtk_la_LIBADD = libspice-client-gtk-2.0.la libspice-client-glib-2.0.la $(PYGTK_LIBS) ++SpiceClientGtk_la_LIBADD = libspice-client-gtk-2.0.la libspice-client-glib-2.0.la $(PYGTK_LIBS) $(PYTHON_LIBS) + SpiceClientGtk_la_CFLAGS = $(GTK_CFLAGS) $(PYTHON_INCLUDES) $(PYGTK_CFLAGS) $(WARN_PYFLAGS) +-SpiceClientGtk_la_LDFLAGS = -module -avoid-version -fPIC ++SpiceClientGtk_la_LDFLAGS = -module -avoid-version -no-undefined -fPIC + SpiceClientGtk_la_SOURCES = spice-client-gtk-module.c + nodist_SpiceClientGtk_la_SOURCES = spice-client-gtk-module.defs.c + diff --git a/mingw-w64-spice-gtk/PKGBUILD b/mingw-w64-spice-gtk/PKGBUILD index a6313aaffb..ccea57c13d 100644 --- a/mingw-w64-spice-gtk/PKGBUILD +++ b/mingw-w64-spice-gtk/PKGBUILD @@ -6,30 +6,39 @@ pkgver=0.27 pkgrel=1 arch=('any') pkgdesc="GTK3 widget for SPICE clients (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-gtk3" - "${MINGW_PACKAGE_PREFIX}-gobject-introspection" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-pixman" - "${MINGW_PACKAGE_PREFIX}-openssl" - "${MINGW_PACKAGE_PREFIX}-cyrus-sasl" - "${MINGW_PACKAGE_PREFIX}-vala" - "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" - "${MINGW_PACKAGE_PREFIX}-usbredir" +depends=("${MINGW_PACKAGE_PREFIX}-cyrus-sasl" "${MINGW_PACKAGE_PREFIX}-dbus-glib" + "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" + "${MINGW_PACKAGE_PREFIX}-lz4" + "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-phodav" - "${MINGW_PACKAGE_PREFIX}-spice-protocol") + "${MINGW_PACKAGE_PREFIX}-pixman" + "${MINGW_PACKAGE_PREFIX}-spice-protocol" + "${MINGW_PACKAGE_PREFIX}-usbredir" + "${MINGW_PACKAGE_PREFIX}-vala") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + #"${MINGW_PACKAGE_PREFIX}-python2-pygtk" + "${MINGW_PACKAGE_PREFIX}-python2") options=('strip' 'staticlibs') license=("GPL 2") url="http://www.spice-space.org" source=(http://www.spice-space.org/download/gtk/${_realname}-$pkgver.tar.bz2 - 001-win.patch) + 001-win.patch + 002-lz4-support.patch + 003-python-linking.patch) sha256sums=('5075e07010db434146649110ade31f5a6cdcdb4efbb4bedd40f1a977f090430c' - 'fa47a600c6d152ab49f794305bba752fa80a644ef94d2007a1cccc00e244655a') + 'b607df1fb112bb21d174833eb549f7295df9898104755c27da717106ed52eaab' + '8d1d3290345bfa61a31780d8dbaf0e0b3663c1eea0dd10af32929b6a0612deb0' + '4ce293c1e6821f5316a52e87cbc5a03ef8595c7feef472cad0d16f1145bdbaa6') prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-win.patch + patch -p1 -i ${srcdir}/002-lz4-support.patch + patch -p1 -i ${srcdir}/003-python-linking.patch autoreconf -isf } @@ -45,7 +54,10 @@ build() { --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --enable-introspection \ + --enable-vala \ + --enable-lz4 \ --with-gtk=3.0 \ + --without-python \ --with-audio=no make From 765faa42e643a7fe7ec19340a8985b251fb30cc8 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 15 Jan 2015 23:48:45 +0300 Subject: [PATCH 0354/2060] python2-pygtk: Rebuild. Fix gtk-demo running. --- .../{python27.patch => 001-python27.patch} | 0 ...undefined.patch => 002-no-undefined.patch} | 0 .../{python-m4.patch => 003-python-m4.patch} | 0 mingw-w64-python2-pygtk/004-pygtk-demo.patch | 10 ++++++++ mingw-w64-python2-pygtk/PKGBUILD | 25 +++++++++++-------- 5 files changed, 24 insertions(+), 11 deletions(-) rename mingw-w64-python2-pygtk/{python27.patch => 001-python27.patch} (100%) rename mingw-w64-python2-pygtk/{no-undefined.patch => 002-no-undefined.patch} (100%) rename mingw-w64-python2-pygtk/{python-m4.patch => 003-python-m4.patch} (100%) create mode 100644 mingw-w64-python2-pygtk/004-pygtk-demo.patch diff --git a/mingw-w64-python2-pygtk/python27.patch b/mingw-w64-python2-pygtk/001-python27.patch similarity index 100% rename from mingw-w64-python2-pygtk/python27.patch rename to mingw-w64-python2-pygtk/001-python27.patch diff --git a/mingw-w64-python2-pygtk/no-undefined.patch b/mingw-w64-python2-pygtk/002-no-undefined.patch similarity index 100% rename from mingw-w64-python2-pygtk/no-undefined.patch rename to mingw-w64-python2-pygtk/002-no-undefined.patch diff --git a/mingw-w64-python2-pygtk/python-m4.patch b/mingw-w64-python2-pygtk/003-python-m4.patch similarity index 100% rename from mingw-w64-python2-pygtk/python-m4.patch rename to mingw-w64-python2-pygtk/003-python-m4.patch diff --git a/mingw-w64-python2-pygtk/004-pygtk-demo.patch b/mingw-w64-python2-pygtk/004-pygtk-demo.patch new file mode 100644 index 0000000000..3ba922392d --- /dev/null +++ b/mingw-w64-python2-pygtk/004-pygtk-demo.patch @@ -0,0 +1,10 @@ +--- pygtk-2.24.0/examples/pygtk-demo/pygtk-demo.in.orig 2015-01-15 23:10:33.264600000 +0300 ++++ pygtk-2.24.0/examples/pygtk-demo/pygtk-demo.in 2015-01-15 23:10:56.383800000 +0300 +@@ -2,6 +2,6 @@ + + import sys + import os.path +-pygtklibdir = os.path.join("@libdir@", "pygtk", "2.0") ++pygtklibdir = os.path.join(sys.prefix, 'lib', "pygtk", "2.0") + sys.path.insert(0, pygtklibdir) + execfile(os.path.join(pygtklibdir, "pygtk-demo.py")) diff --git a/mingw-w64-python2-pygtk/PKGBUILD b/mingw-w64-python2-pygtk/PKGBUILD index 5f93d96b61..e4b158e995 100644 --- a/mingw-w64-python2-pygtk/PKGBUILD +++ b/mingw-w64-python2-pygtk/PKGBUILD @@ -1,34 +1,37 @@ # Maintainer: Alexey Pavlov _realname=pygtk - pkgname="${MINGW_PACKAGE_PREFIX}-python2-pygtk" pkgver=2.24.0 -pkgrel=2 +pkgrel=3 pkgdesc="Python bindings for the GTK widget set (mingw-w64)" arch=(any) url="http://www.pygtk.org" license=('LGPL') groups=("${MINGW_PACKAGE_PREFIX}") depends=("${MINGW_PACKAGE_PREFIX}-python2-cairo" - "${MINGW_PACKAGE_PREFIX}-python2-gobject2" - "${MINGW_PACKAGE_PREFIX}-libglade") + "${MINGW_PACKAGE_PREFIX}-python2-gobject2" + "${MINGW_PACKAGE_PREFIX}-libglade") makedepends=("${MINGW_PACKAGE_PREFIX}-python2-numpy") options=('staticlibs' 'strip') source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.bz2 - python27.patch - no-undefined.patch - python-m4.patch) + 001-python27.patch + 002-no-undefined.patch + 003-python-m4.patch + 004-pygtk-demo.patch) md5sums=('a1051d5794fd7696d3c1af6422d17a49' '12acfacd26f19c504a0a2d0edeb66121' 'edd96a4d9f4b7a1b05094a78f9cc811b' - '2f1b6f04e36474e58abb259e22cc8309') + '2f1b6f04e36474e58abb259e22cc8309' + '0bc4e06ae97f52403b366592a5881316') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i ${srcdir}/python27.patch - patch -p1 -i ${srcdir}/no-undefined.patch - patch -p1 -i ${srcdir}/python-m4.patch + patch -p1 -i ${srcdir}/001-python27.patch + patch -p1 -i ${srcdir}/002-no-undefined.patch + patch -p1 -i ${srcdir}/003-python-m4.patch + patch -p1 -i ${srcdir}/004-pygtk-demo.patch + autoreconf -fi -I m4 #WANT_AUTOMAKE=latest ./autogen.sh } From e9de457c6f5c727ec5ca9c2720317ef5b074d300 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 16 Jan 2015 10:23:29 +0300 Subject: [PATCH 0355/2060] ca-certificates: Update to 20141019 --- mingw-w64-ca-certificates/PKGBUILD | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/mingw-w64-ca-certificates/PKGBUILD b/mingw-w64-ca-certificates/PKGBUILD index 4a1bd0c902..6313e4b8a3 100644 --- a/mingw-w64-ca-certificates/PKGBUILD +++ b/mingw-w64-ca-certificates/PKGBUILD @@ -2,9 +2,9 @@ _realname=ca-certificates pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=20140325 -pkgrel=3 -pkgdesc='Common CA certificates' +pkgver=20141019 +pkgrel=1 +pkgdesc='Common CA certificates (mingw-w64)' arch=('any') url='http://packages.qa.debian.org/c/ca-certificates.html' license=('MPL' 'GPL') @@ -19,14 +19,14 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-p11-kit" "${MINGW_PACKAGE_PREFIX}-python2" 'asciidoc' 'python2' 'libxslt' 'sed' 'grep') -md5sums=('0436aba482091da310bd762e1deca8b4' +md5sums=('f619282081c8bfc65ea64c37fa5285ed' '2c8500579308a100425f4ddb0d61a9ea' 'ecfa72ad51c9a1c4488a3474b8def35b' 'b9e6692146cda711e3b7d2974502e446' 'b00295801f7b39694ad16869e846c227') prepare() { - cd ${srcdir}/${_realname} + cd ${srcdir}/${_realname}-${pkgver} cp ${srcdir}/trust-fixes mozilla/ cp ${srcdir}/update-ca-trust sbin/ cp ${srcdir}/update-ca-trust.8 sbin/ @@ -35,7 +35,7 @@ prepare() { } build() { - cd ${srcdir}/${_realname}/mozilla + cd ${srcdir}/${_realname}-${pkgver}/mozilla ${MINGW_PREFIX}/bin/python2 certdata2pem.py ( @@ -51,7 +51,7 @@ build() { EOF grep -w NSS_BUILTINS_LIBRARY_VERSION nssckbi.h | awk '{print "# " $2 " " $3}'; echo '#'; - ) > ${srcdir}/${_realname}/ca-bundle.trust.crt + ) > ${srcdir}/${_realname}-${pkgver}/ca-bundle.trust.crt # Make sure repeat runs don't accumulate duplicate certs. if [ -f ${srcdir}/${pkgname}/ca-bundle.neutral-trust.crt ]; then @@ -90,21 +90,21 @@ EOF if [ -n "$targs" ] then echo "trust flags $targs for $f" >> info.trust - ${MINGW_PREFIX}/bin/openssl x509 -text -in "$f" -trustout $targs -setalias "$alias" >> ${srcdir}/${_realname}/ca-bundle.trust.crt + ${MINGW_PREFIX}/bin/openssl x509 -text -in "$f" -trustout $targs -setalias "$alias" >> ${srcdir}/${_realname}-${pkgver}/ca-bundle.trust.crt else echo "no trust flags for $f" >> tee -a info.notrust - ${MINGW_PREFIX}/bin/openssl x509 -text -in "$f" -setalias "$alias" >> ${srcdir}/${_realname}/ca-bundle.neutral-trust.crt + ${MINGW_PREFIX}/bin/openssl x509 -text -in "$f" -setalias "$alias" >> ${srcdir}/${_realname}-${pkgver}/ca-bundle.neutral-trust.crt fi done for p in *.p11-kit do - cat $p >> ${srcdir}/${_realname}/ca-bundle.supplement.p11-kit + cat $p >> ${srcdir}/${_realname}-${pkgver}/ca-bundle.supplement.p11-kit done - cat trust-fixes >> ${srcdir}/${_realname}/ca-bundle.supplement.p11-kit + cat trust-fixes >> ${srcdir}/${_realname}-${pkgver}/ca-bundle.supplement.p11-kit } package() { - cd ${srcdir}/${_realname} + cd ${srcdir}/${_realname}-${pkgver} mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share} mkdir -p ${pkgdir}${MINGW_PREFIX}/etc From d74133edc5a123cce21d47fff1b1dc0d2986d21a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 16 Jan 2015 10:24:26 +0300 Subject: [PATCH 0356/2060] openssl: Update to 1.0.1l --- mingw-w64-openssl/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-openssl/PKGBUILD b/mingw-w64-openssl/PKGBUILD index 1adca171af..8c4173fe29 100644 --- a/mingw-w64-openssl/PKGBUILD +++ b/mingw-w64-openssl/PKGBUILD @@ -2,7 +2,7 @@ _realname=openssl pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.0.1k +pkgver=1.0.1l pkgrel=1 arch=('any') pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (mingw-w64)" @@ -20,7 +20,7 @@ source=(http://www.openssl.org/source/${_realname}-$pkgver.tar.gz{,.asc} 'openssl-1.0.1-x32.patch' 'openssl-0.9.6-x509.patch' 'openssl-1.0.1i-relocation.patch') -md5sums=('d4f002bd22a56881340105028842ae1f' +md5sums=('cdb22925fc9bc97ccbf1e007661f2aa6' 'SKIP' '9e0abad8dd17079815d9e92345c5adcb' '835a78dbe9c8690dbdd9190aaf5432e7' From 560ed5e3b2cfb4dbb1f84c916ce0033719f0d47a Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 16 Jan 2015 11:41:30 +0300 Subject: [PATCH 0357/2060] bison: Update to 3.0.3. Update relocation patch --- mingw-w64-bison/0001-use-gnu_printf.patch | 4 +- .../0002-add-relocation-support.patch | 639 +++++++++++++----- mingw-w64-bison/PKGBUILD | 10 +- 3 files changed, 477 insertions(+), 176 deletions(-) diff --git a/mingw-w64-bison/0001-use-gnu_printf.patch b/mingw-w64-bison/0001-use-gnu_printf.patch index c350755db1..2e50aed627 100644 --- a/mingw-w64-bison/0001-use-gnu_printf.patch +++ b/mingw-w64-bison/0001-use-gnu_printf.patch @@ -10,8 +10,8 @@ diff -Naur bison-3.0.2-orig/lib/error.c bison-3.0.2/lib/error.c extern void __error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) -- __attribute__ ((__format__ (__printf__, 5, 6)));; -+ __attribute__ ((__format__ (gnu_printf, 5, 6)));; +- __attribute__ ((__format__ (__printf__, 5, 6))); ++ __attribute__ ((__format__ (gnu_printf, 5, 6))); # define error __error # define error_at_line __error_at_line diff --git a/mingw-w64-bison/0002-add-relocation-support.patch b/mingw-w64-bison/0002-add-relocation-support.patch index efeae76af2..235e54b1b5 100644 --- a/mingw-w64-bison/0002-add-relocation-support.patch +++ b/mingw-w64-bison/0002-add-relocation-support.patch @@ -1,18 +1,86 @@ -diff -urN bison-3.0.2.orig/src/files.c bison-3.0.2/src/files.c ---- bison-3.0.2.orig/src/files.c 2014-08-03 21:05:59.361540700 +0100 -+++ bison-3.0.2/src/files.c 2014-08-03 21:07:19.351115800 +0100 -@@ -18,6 +18,7 @@ - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ +diff -Naur bison-3.0.3/Makefile.in bison-3.0.3-mingw/Makefile.in +--- bison-3.0.3/Makefile.in 2015-01-15 12:05:52.000000000 +0300 ++++ bison-3.0.3-mingw/Makefile.in 2015-01-16 11:10:29.700600000 +0300 +@@ -2546,6 +2546,8 @@ + src/nullable.h \ + src/output.c \ + src/output.h \ ++ src/pathtools.c \ ++ src/pathtools.h \ + src/parse-gram.y \ + src/print-xml.c \ + src/print-xml.h \ +diff -Naur bison-3.0.3/src/local.mk bison-3.0.3-mingw/src/local.mk +--- bison-3.0.3/src/local.mk 2015-01-07 18:46:27.000000000 +0300 ++++ bison-3.0.3-mingw/src/local.mk 2015-01-16 11:22:09.559200000 +0300 +@@ -63,6 +63,8 @@ + src/nullable.h \ + src/output.c \ + src/output.h \ ++ src/pathtools.c \ ++ src/pathtools.h \ + src/parse-gram.y \ + src/print-xml.c \ + src/print-xml.h \ +diff -Naur bison-3.0.3/src/output.c bison-3.0.3-mingw/src/output.c +--- bison-3.0.3/src/output.c 2015-01-15 11:35:58.000000000 +0300 ++++ bison-3.0.3-mingw/src/output.c 2015-01-16 10:57:28.134800000 +0300 +@@ -41,6 +41,7 @@ + #include "scan-skel.h" + #include "symtab.h" + #include "tables.h" ++#include "pathtools.h" + static struct obstack format_obstack; + +@@ -547,7 +548,7 @@ + pid_t pid; + + /* Compute the names of the package data dir and skeleton files. */ +- char const *m4 = (m4 = getenv ("M4")) ? m4 : M4; ++ char const *m4 = (m4 = getenv ("M4")) ? m4 : single_path_relocation(BINDIR, M4); + char const *datadir = pkgdatadir (); + char *m4sugar = xconcatenated_filename (datadir, "m4sugar/m4sugar.m4", NULL); + char *m4bison = xconcatenated_filename (datadir, "bison.m4", NULL); +@@ -716,5 +717,9 @@ + pkgdatadir (void) + { + char const *cp = getenv ("BISON_PKGDATADIR"); +- return cp ? cp : PKGDATADIR; ++ if (cp) ++ return cp; ++ ++ char * _dir = single_path_relocation(BINDIR, PKGDATADIR); ++ return _dir; + } +diff -Naur bison-3.0.3/src/pathtools.c bison-3.0.3-mingw/src/pathtools.c +--- bison-3.0.3/src/pathtools.c 1970-01-01 03:00:00.000000000 +0300 ++++ bison-3.0.3-mingw/src/pathtools.c 1970-01-01 03:00:00.000000000 +0300 +@@ -0,0 +1,539 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#include "config.h" ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__MSYS__) ++#include ++#endif ++#include + - #include - #include "system.h" - -@@ -34,6 +35,22 @@ - #include "getargs.h" - #include "gram.h" - +/* If you don't define this, then get_executable_path() + can only use argv[0] which will often not work well */ +#define IMPLEMENT_SYS_GET_EXECUTABLE_PATH @@ -23,24 +91,18 @@ diff -urN bison-3.0.2.orig/src/files.c bison-3.0.2/src/files.c +#elif defined(__APPLE__) +#include +#elif defined(_WIN32) -+#define WIN32_LEAN_AND_MEAN ++#define WIN32_MEAN_AND_LEAN +#include +#include +#endif +#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ + - /* Initializing some values below (such SPEC_NAME_PREFIX to 'yy') is - tempting, but don't do that: for the time being our handling of the - %directive vs --option leaves precedence to the options by deciding -@@ -425,3 +442,274 @@ - } - free (generated_files); - } ++#include "pathtools.h" + +char * -+malloc_copy_string (char const * original) ++malloc_copy_string(char const * original) +{ -+ char * result = (char *) malloc (sizeof(char*) * strlen(original)+1); ++ char * result = (char *) malloc (sizeof (char*) * strlen (original)+1); + if (result != NULL) + { + strcpy (result, original); @@ -48,139 +110,61 @@ diff -urN bison-3.0.2.orig/src/files.c bison-3.0.2/src/files.c + return result; +} + -+static char * ++void +sanitise_path(char * path) +{ -+ size_t path_size = strlen(path); ++ size_t path_size = strlen (path); + + /* Replace any '\' with '/' */ + char * path_p = path; -+ while ((path_p = strchr(path_p, '\\')) != NULL) ++ while ((path_p = strchr (path_p, '\\')) != NULL) + { + *path_p = '/'; + } + /* Replace any '//' with '/' */ + path_p = path; -+ while ((path_p = strstr(path_p, "//")) != NULL) ++ while ((path_p = strstr (path_p, "//")) != NULL) + { -+ memmove(path_p, path_p + 1, path_size--); ++ memmove (path_p, path_p + 1, path_size--); + } -+ return path; -+} -+ -+void -+simplify_path (char * path) -+{ -+ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ -+ ssize_t i, j; -+ size_t tok_size; -+ size_t in_size = strlen (path); -+ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; -+ char * result = path; -+ char * result_p = sanitise_path(result); -+ -+ do -+ { -+ ++n_toks; -+ ++result_p; -+ } while ((result_p = strchr(result_p, '/')) != NULL); -+ -+ result_p = result; -+ char const ** toks = (char const **) alloca (sizeof(char const*) * n_toks); -+ n_toks = 0; -+ do -+ { -+ if (result_p > result) -+ { -+ *result_p++ = '\0'; -+ } -+ else if (*result_p == '/') -+ { -+ /* A leading / creates an empty initial token. */ -+ toks[n_toks++] = result_p; -+ *result_p++ = '\0'; -+ } -+ toks[n_toks++] = result_p; -+ } while ((result_p = strchr(result_p, '/')) != NULL); -+ -+ /* Remove all non-leading '.' and any '..' we can match -+ with an earlier forward path (i.e. neither '.' nor '..') */ -+ for (i = 1; i < n_toks; ++i) -+ { -+ int removals[2] = { -1, -1 }; -+ if ( strcmp (toks[i], "." ) == 0) -+ { -+ removals[0] = i; -+ } -+ else if ( strcmp (toks[i], ".." ) == 0) -+ { -+ /* Search backwards for a forward path to collapse. -+ If none are found then the .. also stays. */ -+ for (j = i - 1; j > -1; --j) -+ { -+ if ( strcmp (toks[j], "." ) -+ && strcmp (toks[j], ".." ) ) -+ { -+ removals[0] = j; -+ removals[1] = i; -+ break; -+ } -+ } -+ } -+ for (j = 0; j < 2; ++j) -+ { -+ if (removals[j] >= 0) /* Can become -2 */ -+ { -+ --n_toks; -+ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof(char*)); -+ --i; -+ if (!j) -+ { -+ --removals[1]; -+ } -+ } -+ } -+ } -+ result_p = result; -+ for (i = 0; i < n_toks; ++i) -+ { -+ tok_size = strlen(toks[i]); -+ memcpy (result_p, toks[i], tok_size); -+ result_p += tok_size; -+ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) -+ { -+ *result_p = '/'; -+ ++result_p; -+ } -+ } -+ *result_p = '\0'; ++ return; +} + +char * -+get_relative_path (char const * from, char const * to) ++get_relative_path(char const * from_in, char const * to_in) +{ -+ size_t from_size = strlen (from); -+ size_t to_size = strlen (to); ++ size_t from_size = (from_in == NULL) ? 0 : strlen (from_in); ++ size_t to_size = (to_in == NULL) ? 0 : strlen (to_in); + size_t max_size = (from_size + to_size) * 2 + 4; -+ char * common_part = (char *) alloca (max_size); -+ char * result = (char *) alloca (max_size); ++ char * scratch_space = (char *) alloca (from_size + 1 + to_size + 1 + max_size + max_size); ++ char * from; ++ char * to; ++ char * common_part; ++ char * result; + size_t count; + -+ /* If either alloca failed, no from was given, from is not absolute -+ or either to or from contains '.' then return a copy of to; it's -+ the best we can do in this instance (though we could call a path -+ normalization function for some of these conditions). -+ */ -+ if (common_part == NULL -+ || result == NULL -+ || from == NULL -+ || from[0] != '/' -+ || strchr(to, '.') != NULL -+ || strchr(from, '.') != NULL) ++ /* No to, return "./" */ ++ if (to_in == NULL) + { -+ return malloc_copy_string (to); ++ return malloc_copy_string ("./"); + } + ++ /* If alloca failed or no from was given return a copy of to */ ++ if ( from_in == NULL ++ || scratch_space == NULL ) ++ { ++ return malloc_copy_string (to_in); ++ } ++ ++ from = scratch_space; ++ strcpy (from, from_in); ++ to = from + from_size + 1; ++ strcpy (to, to_in); ++ common_part = to + to_size + 1; ++ result = common_part + max_size; ++ simplify_path (from); ++ simplify_path (to); ++ + result[0] = '\0'; + + size_t match_size_dirsep = 0; /* The match size up to the last /. Always wind back to this - 1 */ @@ -214,7 +198,7 @@ diff -urN bison-3.0.2.orig/src/files.c bison-3.0.2/src/files.c + to += match_size; + size_t ndotdots = 0; + char const* from_last = from + strlen(from) - 1; -+ while ((from = strchr(from, '/')) && from != from_last) ++ while ((from = strchr (from, '/')) && from != from_last) + { + ++ndotdots; + ++from; @@ -244,6 +228,106 @@ diff -urN bison-3.0.2.orig/src/files.c bison-3.0.2/src/files.c + return malloc_copy_string (result); +} + ++void ++simplify_path(char * path) ++{ ++ ssize_t n_toks = 1; /* in-case we need an empty initial token. */ ++ ssize_t i, j; ++ size_t tok_size; ++ size_t in_size = strlen (path); ++ int it_ended_with_a_slash = (path[in_size - 1] == '/') ? 1 : 0; ++ char * result = path; ++ sanitise_path(result); ++ char * result_p = result; ++ ++ do ++ { ++ ++n_toks; ++ ++result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ result_p = result; ++ char const ** toks = (char const **) alloca (sizeof (char const*) * n_toks); ++ n_toks = 0; ++ do ++ { ++ if (result_p > result) ++ { ++ *result_p++ = '\0'; ++ } ++ else if (*result_p == '/') ++ { ++ /* A leading / creates an empty initial token. */ ++ toks[n_toks++] = result_p; ++ *result_p++ = '\0'; ++ } ++ toks[n_toks++] = result_p; ++ } while ((result_p = strchr (result_p, '/')) != NULL); ++ ++ /* Remove all non-leading '.' and any '..' we can match ++ with an earlier forward path (i.e. neither '.' nor '..') */ ++ for (i = 1; i < n_toks; ++i) ++ { ++ int removals[2] = { -1, -1 }; ++ if ( strcmp (toks[i], "." ) == 0) ++ { ++ removals[0] = i; ++ } ++ else if ( strcmp (toks[i], ".." ) == 0) ++ { ++ /* Search backwards for a forward path to collapse. ++ If none are found then the .. also stays. */ ++ for (j = i - 1; j > -1; --j) ++ { ++ if ( strcmp (toks[j], "." ) ++ && strcmp (toks[j], ".." ) ) ++ { ++ removals[0] = j; ++ removals[1] = i; ++ break; ++ } ++ } ++ } ++ for (j = 0; j < 2; ++j) ++ { ++ if (removals[j] >= 0) /* Can become -2 */ ++ { ++ --n_toks; ++ memmove (&toks[removals[j]], &toks[removals[j]+1], (n_toks - removals[j])*sizeof (char*)); ++ --i; ++ if (!j) ++ { ++ --removals[1]; ++ } ++ } ++ } ++ } ++ result_p = result; ++ for (i = 0; i < n_toks; ++i) ++ { ++ tok_size = strlen(toks[i]); ++ memcpy (result_p, toks[i], tok_size); ++ result_p += tok_size; ++ if ((!i || tok_size) && ((i < n_toks - 1) || it_ended_with_a_slash == 1)) ++ { ++ *result_p = '/'; ++ ++result_p; ++ } ++ } ++ *result_p = '\0'; ++} ++ ++/* Returns actual_to by calculating the relative path from -> to and ++ applying that to actual_from. An assumption that actual_from is a ++ dir is made, and it may or may not end with a '/' */ ++char const * ++get_relocated_path (char const * from, char const * to, char const * actual_from) ++{ ++ char const * relative_from_to = get_relative_path (from, to); ++ char * actual_to = (char *) malloc (strlen(actual_from) + 2 + strlen(relative_from_to)); ++ return actual_to; ++} ++ +int +get_executable_path(char const * argv0, char * result, ssize_t max_size) +{ @@ -265,7 +349,7 @@ diff -urN bison-3.0.2.orig/src/files.c bison-3.0.2/src/files.c +#elif defined(_WIN32) + unsigned long bufsize = (unsigned long)max_size; + system_result_size = GetModuleFileNameA(NULL, system_result, bufsize); -+ if (system_result_size == 0 || system_result_size == bufsize) ++ if (system_result_size == 0 || system_result_size == (ssize_t)bufsize) + { + /* Error, possibly not enough space. */ + system_result_size = -1; @@ -284,7 +368,7 @@ diff -urN bison-3.0.2.orig/src/files.c bison-3.0.2/src/files.c +#else +#warning "Don't know how to get executable path on this system" +#endif -+#endif ++#endif /* defined(IMPLEMENT_SYS_GET_EXECUTABLE_PATH) */ + } + /* Use argv0 as a default in-case of failure */ + if (system_result_size != -1) @@ -307,50 +391,265 @@ diff -urN bison-3.0.2.orig/src/files.c bison-3.0.2/src/files.c + result_size = strlen (result); + return result_size; +} -diff -urN bison-3.0.2.orig/src/files.h bison-3.0.2/src/files.h ---- bison-3.0.2.orig/src/files.h 2014-08-03 21:05:59.367541000 +0100 -+++ bison-3.0.2/src/files.h 2014-08-03 21:06:17.520579300 +0100 -@@ -77,4 +77,20 @@ - void xfclose (FILE *ptr); - FILE *xfdopen (int fd, char const *mode); - -+/* These functions are used to support relocation. On MSYS2, the native -+ bison port needs this. */ + -+/* Returns the malloc'ed string. Caller should free using free(void*) */ -+extern char * malloc_copy_string (char const * original); ++char const * ++strip_n_prefix_folders(char const * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return NULL; ++ } + -+/* Uses a host OS specific function to determine the path of the executable, -+ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ -+extern int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ if (path[0] != '/') ++ { ++ return path; ++ } + -+/* Where possible, removes occourances of '.' and 'path/..' */ -+extern void simplify_path (char * path); ++ char const * last = path; ++ while (n-- && path != NULL) ++ { ++ last = path; ++ path = strchr (path + 1, '/'); ++ } ++ return (path == NULL) ? last : path; ++} + -+/* mallocs and returns the path to get from from to to. Caller should free using free(void*) */ -+extern char * get_relative_path (char const * from, char const * to); ++void ++strip_n_suffix_folders(char * path, size_t n) ++{ ++ if (path == NULL) ++ { ++ return; ++ } ++ while (n--) ++ { ++ if (strrchr (path + 1, '/')) ++ { ++ *strrchr (path + 1, '/') = '\0'; ++ } ++ else ++ { ++ return; ++ } ++ } ++ return; ++} + - #endif /* !FILES_H_ */ -diff -urN bison-3.0.2.orig/src/output.c bison-3.0.2/src/output.c ---- bison-3.0.2.orig/src/output.c 2014-08-03 21:05:59.363540800 +0100 -+++ bison-3.0.2/src/output.c 2014-08-03 21:06:17.521579400 +0100 -@@ -716,5 +716,18 @@ - pkgdatadir (void) - { - char const *cp = getenv ("BISON_PKGDATADIR"); -- return cp ? cp : PKGDATADIR; -+ if (cp) -+ return cp; ++size_t ++split_path_list(char const * path_list, char split_char, char *** arr) ++{ ++ size_t path_count; ++ size_t path_list_size; ++ char const * path_list_p; + -+ /* Relocation support. */ ++ path_list_p = path_list; ++ if (path_list == NULL || path_list[0] == '\0') ++ { ++ return 0; ++ } ++ path_list_size = strlen (path_list); ++ ++ path_count = 0; ++ do ++ { ++ ++path_count; ++ ++path_list_p; ++ } ++ while ((path_list_p = strchr (path_list_p, split_char)) != NULL); ++ ++ /* allocate everything in one go. */ ++ char * all_memory = (char *) malloc (sizeof (char *) * path_count + strlen(path_list) + 1); ++ if (all_memory == NULL) ++ return 0; ++ *arr = (char **)all_memory; ++ all_memory += sizeof (char *) * path_count; ++ ++ path_count = 0; ++ path_list_p = path_list; ++ char const * next_path_list_p = 0; ++ do ++ { ++ next_path_list_p = strchr (path_list_p, split_char); ++ if (next_path_list_p != NULL) ++ { ++ ++next_path_list_p; ++ } ++ size_t this_size = (next_path_list_p != NULL) ++ ? next_path_list_p - path_list_p - 1 ++ : &path_list[path_list_size] - path_list_p; ++ memcpy (all_memory, path_list_p, this_size); ++ all_memory[this_size] = '\0'; ++ (*arr)[path_count++] = all_memory; ++ all_memory += this_size + 1; ++ } while ((path_list_p = next_path_list_p) != NULL); ++ ++ return path_count; ++} ++ ++char * ++get_relocated_path_list(char const * from, char const * to_path_list) ++{ ++ char exe_path[MAX_PATH]; ++ char * temp; ++ get_executable_path (NULL, &exe_path[0], sizeof (exe_path) / sizeof (exe_path[0])); ++ if ((temp = strrchr (exe_path, '/')) != NULL) ++ { ++ temp[1] = '\0'; ++ } ++ ++ char **arr = NULL; ++ /* Ask Alexey why he added this. Are we not 100% sure ++ that we're dealing with unix paths here? */ ++ char split_char = ':'; ++ if (strchr (to_path_list, ';')) ++ { ++ split_char = ';'; ++ } ++ size_t count = split_path_list (to_path_list, split_char, &arr); ++ int result_size = 1 + (count - 1); /* count - 1 is for ; delim. */ ++ size_t exe_path_size = strlen (exe_path); ++ size_t i; ++ /* Space required is: ++ count * (exe_path_size + strlen (rel_to_datadir)) ++ rel_to_datadir upper bound is: ++ (count * strlen (from)) + (3 * num_slashes (from)) ++ + strlen(arr[i]) + 1. ++ .. pathalogically num_slashes (from) is strlen (from) ++ (from = ////////) */ ++ size_t space_required = (count * (exe_path_size + 4 * strlen (from))) + count - 1; ++ for (i = 0; i < count; ++i) ++ { ++ space_required += strlen (arr[i]); ++ } ++ char * scratch = (char *) alloca (space_required); ++ if (scratch == NULL) ++ return NULL; ++ for (i = 0; i < count; ++i) ++ { ++ char * rel_to_datadir = get_relative_path (from, arr[i]); ++ scratch[0] = '\0'; ++ arr[i] = scratch; ++ strcat (scratch, exe_path); ++ strcat (scratch, rel_to_datadir); ++ simplify_path (arr[i]); ++ size_t arr_i_size = strlen (arr[i]); ++ result_size += arr_i_size; ++ scratch = arr[i] + arr_i_size + 1; ++ } ++ char * result = (char *) malloc (result_size); ++ if (result == NULL) ++ { ++ return NULL; ++ } ++ result[0] = '\0'; ++ for (i = 0; i < count; ++i) ++ { ++ strcat (result, arr[i]); ++ if (i != count-1) ++ { ++#if defined(_WIN32) ++ strcat (result, ";"); ++#else ++ strcat (result, ":"); ++#endif ++ } ++ } ++ free ((void*)arr); ++ return result; ++} ++ ++char * ++single_path_relocation(const char *from, const char *to) ++{ ++#if defined(__MINGW32__) + char exe_path[PATH_MAX]; + get_executable_path (NULL, &exe_path[0], sizeof(exe_path)/sizeof(exe_path[0])); + if (strrchr (exe_path, '/') != NULL) + { + strrchr (exe_path, '/')[1] = '\0'; + } -+ char * rel_to_datadir = get_relative_path (BINDIR, PKGDATADIR); ++ char * rel_to_datadir = get_relative_path (from, to); + strcat (exe_path, rel_to_datadir); + simplify_path (&exe_path[0]); -+ return malloc_copy_string (exe_path); - } ++ return malloc_copy_string(exe_path); ++#else ++ return malloc_copy_string(to); ++#endif ++} ++ ++char * ++pathlist_relocation(const char *from_path, const char *to_path_list) ++{ ++#if defined(__MINGW32__) ++ static char stored_path[PATH_MAX]; ++ static int stored = 0; ++ if (stored == 0) ++ { ++ char const * relocated = get_relocated_path_list(from_path, to_path_list); ++ strncpy (stored_path, relocated, PATH_MAX); ++ stored_path[PATH_MAX-1] = '\0'; ++ free ((void *)relocated); ++ stored = 1; ++ } ++ return stored_path; ++#else ++ return (to_path_list); ++#endif ++} +diff -Naur bison-3.0.3/src/pathtools.h bison-3.0.3-mingw/src/pathtools.h +--- bison-3.0.3/src/pathtools.h 1970-01-01 03:00:00.000000000 +0300 ++++ bison-3.0.3-mingw/src/pathtools.h 1970-01-01 03:00:00.000000000 +0300 +@@ -0,0 +1,53 @@ ++/* ++ .Some useful path tools. ++ .ASCII only for now. ++ .Written by Ray Donnelly in 2014. ++ .Licensed under CC0 (and anything. ++ .else you need to license it under). ++ .No warranties whatsoever. ++ .email: . ++ */ ++ ++#ifndef PATHTOOLS_H ++#define PATHTOOLS_H ++ ++#include ++#if defined(__APPLE__) ++#include ++#else ++#include ++#endif ++#include ++ ++char * malloc_copy_string(char const * original); ++ ++/* In-place replaces any '\' with '/' and any '//' with '/' */ ++void sanitise_path(char * path); ++ ++/* Uses a host OS specific function to determine the path of the executable, ++ if IMPLEMENT_SYS_GET_EXECUTABLE_PATH is defined, otherwise uses argv0. */ ++int get_executable_path(char const * argv0, char * result, ssize_t max_size); ++ ++/* Where possible, in-place removes occourances of '.' and 'path/..' */ ++void simplify_path(char * path); ++ ++/* Allocates (via malloc) and returns the path to get from from to to. */ ++char * get_relative_path(char const * from, char const * to); ++ ++size_t split_path_list(char const * path_list, char split_char, char *** arr); ++ ++/* Advances path along by the amount that removes n prefix folders. */ ++char const * ++strip_n_prefix_folders(char const * path, size_t n); ++ ++/* NULL terminates path to remove n suffix folders. */ ++void ++strip_n_suffix_folders(char * path, size_t n); ++ ++char const * get_relocated_path (char const * from, char const * to, char const * actual_from); ++char * get_relocated_path_list(char const * from, char const * to_path_list); ++ ++char * single_path_relocation(const char *from, const char *to); ++char * pathlist_relocation(const char *from_path, const char *to_path_list); ++ ++#endif /* PATHTOOLS_H */ diff --git a/mingw-w64-bison/PKGBUILD b/mingw-w64-bison/PKGBUILD index b5641b1558..44706ae73d 100644 --- a/mingw-w64-bison/PKGBUILD +++ b/mingw-w64-bison/PKGBUILD @@ -3,7 +3,7 @@ _realname=bison pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.0.2 +pkgver=3.0.3 pkgrel=1 pkgdesc="The GNU general-purpose parser generator" arch=('any') @@ -16,9 +16,9 @@ source=(http://ftp.gnu.org/gnu/bison/${_realname}-${pkgver}.tar.xz 0002-add-relocation-support.patch 0003-create_pipe-uses-O_TEXT-not-O_BINARY-mode.patch 0004-open-source-file-in-binary-mode-MS-ftell-bug-ks-68337.patch) -md5sums=('146be9ff9fbd27497f0bf2286a5a2082' - '817bbd1f0de3d7f2ab1287b67b267895' - '7bb3dac2a01d7f78bb6038f953a42b39' +md5sums=('673effdf277cd49304fc62dd0ddd2faf' + 'b1979ec2cb325b0ecbd3b331a52792a9' + '86c4c47f3ddec258ccd8a4751a02494f' 'cc720e2a9fc8f7849b0cfb165caf80fa' '3819970ae26449fb6e19c155401f4013') @@ -29,6 +29,8 @@ prepare() { patch -p1 -i "${srcdir}"/0002-add-relocation-support.patch patch -p1 -i "${srcdir}"/0003-create_pipe-uses-O_TEXT-not-O_BINARY-mode.patch patch -p1 -i "${srcdir}"/0004-open-source-file-in-binary-mode-MS-ftell-bug-ks-68337.patch + + autoreconf -fiv } build() { From ce0857a830576b749f89ced9205b17cc2abc46bf Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 16 Jan 2015 12:24:19 +0300 Subject: [PATCH 0358/2060] miniupnpc: New package. --- mingw-w64-miniupnpc/001-link-libraries.patch | 13 ++++++ mingw-w64-miniupnpc/PKGBUILD | 45 ++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 mingw-w64-miniupnpc/001-link-libraries.patch create mode 100644 mingw-w64-miniupnpc/PKGBUILD diff --git a/mingw-w64-miniupnpc/001-link-libraries.patch b/mingw-w64-miniupnpc/001-link-libraries.patch new file mode 100644 index 0000000000..1aa0fab3f1 --- /dev/null +++ b/mingw-w64-miniupnpc/001-link-libraries.patch @@ -0,0 +1,13 @@ +--- miniupnpc-1.9.20141128/CMakeLists.txt.orig 2015-01-16 12:07:41.100000000 +0300 ++++ miniupnpc-1.9.20141128/CMakeLists.txt 2015-01-16 12:08:11.644800000 +0300 +@@ -92,9 +92,7 @@ + endif (WIN32) + + if (WIN32) +- find_library (WINSOCK2_LIBRARY NAMES ws2_32 WS2_32 Ws2_32) +- find_library (IPHLPAPI_LIBRARY NAMES iphlpapi) +- set (LDLIBS ${WINSOCK2_LIBRARY} ${IPHLPAPI_LIBRARY} ${LDLIBS}) ++ set (LDLIBS -lws2_32 -liphlpapi ${LDLIBS}) + #elseif (CMAKE_SYSTEM_NAME STREQUAL "Solaris") + # find_library (SOCKET_LIBRARY NAMES socket) + # find_library (NSL_LIBRARY NAMES nsl) diff --git a/mingw-w64-miniupnpc/PKGBUILD b/mingw-w64-miniupnpc/PKGBUILD new file mode 100644 index 0000000000..d441c7cc66 --- /dev/null +++ b/mingw-w64-miniupnpc/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: Alexey Pavlov + +_realname=miniupnpc +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgver=1.9.20141128 +pkgrel=1 +pkgdesc="A small UPnP client library/tool to access Internet Gateway Devices (mingw-w64)" +arch=('any') +url="http://miniupnp.free.fr" +license=('BSD') +options=('staticlibs') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") +source=("http://miniupnp.free.fr/files/$_realname-$pkgver.tar.gz" + 001-link-libraries.patch) +sha256sums=('754419d9fec75deefa2c630a90eaf156bb008db5dbcdb662377715b7c1662e26' + '3ac8b46b15ab48415cbbfa759d968873b315a96120d4dcbe062fbc39a909726d') + +prepare() { + cd ${_realname}-${pkgver} + patch -p1 -i ${srcdir}/001-link-libraries.patch +} + +build() { + mkdir -p build-${MINGW_CHOST} + cd build-${MINGW_CHOST} + ${MINGW_PREFIX}/bin/cmake \ + -G"MSYS Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \ + -DUPNPC_BUILD_SHARED=ON \ + -DUPNPC_BUILD_STATIC=ON \ + ../${_realname}-${pkgver} + + make +} + +package() { + cd build-${MINGW_CHOST} + make install + + install -Dm644 ${srcdir}/${_realname}-${pkgver}/man3/miniupnpc.3 \ + "${pkgdir}${MINGW_PREFIX}/share/man/man3/miniupnpc.3" + install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE \ + "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} From ec33a6a7e257ea63acadd65c3e65ac1e5d64bd9c Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 17 Jan 2015 10:26:39 +0300 Subject: [PATCH 0359/2060] gtkhtml3: New package. --- mingw-w64-gtkhtml3/PKGBUILD | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 mingw-w64-gtkhtml3/PKGBUILD diff --git a/mingw-w64-gtkhtml3/PKGBUILD b/mingw-w64-gtkhtml3/PKGBUILD new file mode 100644 index 0000000000..ba371eb4fe --- /dev/null +++ b/mingw-w64-gtkhtml3/PKGBUILD @@ -0,0 +1,46 @@ +# Maintainer: Alexey Pavlov + +_realname=gtkhtml +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}3" +pkgver=4.8.5 +pkgrel=1 +pkgdesc="Library for embedding a lightweight web browser in GTK programs (mingw-w64)" +arch=('any') +url="http://www.gnome.org" +license=("LGPL") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-gettext" + "${MINGW_PACKAGE_PREFIX}-pkg-config" + "${MINGW_PACKAGE_PREFIX}-gsettings-desktop-schemas" + "${MINGW_PACKAGE_PREFIX}-iso-codes" + "intltool") +depends=("${MINGW_PACKAGE_PREFIX}-enchant" + "${MINGW_PACKAGE_PREFIX}-gtk3" + "${MINGW_PACKAGE_PREFIX}-libsoup" + "${MINGW_PACKAGE_PREFIX}-libsystre") +options=(!libtool strip staticlibs) +source=("http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz") +md5sums=('a146d2ffdf52f6aa25badb75436b6f4d') + +prepare() { + cd ${_realname}-$pkgver +} + +build() { + mkdir -p "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}" + + ../${_realname}-${pkgver}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --enable-shared \ + --disable-static + + LC_ALL=C make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="$pkgdir" install +} From 2b4c2d95b10e925ea4cc59de86350aa19f7d4b49 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Sat, 17 Jan 2015 13:49:13 +0300 Subject: [PATCH 0360/2060] id3lib: New package. --- .../00-add-libz-to-compilation.patch | 14 ++ mingw-w64-id3lib/05-create-m4-directory.patch | 12 ++ .../10-fix-compilation-with-cpp-headers.patch | 22 ++ mingw-w64-id3lib/100-id3lib-3.8.3-mingw.patch | 48 +++++ .../15-fix-headers-of-main-functions.patch | 45 ++++ mingw-w64-id3lib/20-create-manpages.patch | 198 ++++++++++++++++++ mingw-w64-id3lib/30-fix-utf16.patch | 38 ++++ mingw-w64-id3lib/40-deal-with-mkstemp.patch | 54 +++++ .../50-remove-outdated-check.patch | 11 + .../60-add-c-wrapper-functions.patch | 58 +++++ mingw-w64-id3lib/60-fix_make_check.patch | 50 +++++ .../60-id3lib-missing-nullpointer-check.patch | 12 ++ mingw-w64-id3lib/60-spelling.patch | 107 ++++++++++ mingw-w64-id3lib/61-fix_vbr_stack_smash.patch | 19 ++ .../70-id3lib-3.8.3-autoreconf.patch | 161 ++++++++++++++ mingw-w64-id3lib/PKGBUILD | 97 +++++++++ 16 files changed, 946 insertions(+) create mode 100644 mingw-w64-id3lib/00-add-libz-to-compilation.patch create mode 100644 mingw-w64-id3lib/05-create-m4-directory.patch create mode 100644 mingw-w64-id3lib/10-fix-compilation-with-cpp-headers.patch create mode 100644 mingw-w64-id3lib/100-id3lib-3.8.3-mingw.patch create mode 100644 mingw-w64-id3lib/15-fix-headers-of-main-functions.patch create mode 100644 mingw-w64-id3lib/20-create-manpages.patch create mode 100644 mingw-w64-id3lib/30-fix-utf16.patch create mode 100644 mingw-w64-id3lib/40-deal-with-mkstemp.patch create mode 100644 mingw-w64-id3lib/50-remove-outdated-check.patch create mode 100644 mingw-w64-id3lib/60-add-c-wrapper-functions.patch create mode 100644 mingw-w64-id3lib/60-fix_make_check.patch create mode 100644 mingw-w64-id3lib/60-id3lib-missing-nullpointer-check.patch create mode 100644 mingw-w64-id3lib/60-spelling.patch create mode 100644 mingw-w64-id3lib/61-fix_vbr_stack_smash.patch create mode 100644 mingw-w64-id3lib/70-id3lib-3.8.3-autoreconf.patch create mode 100644 mingw-w64-id3lib/PKGBUILD diff --git a/mingw-w64-id3lib/00-add-libz-to-compilation.patch b/mingw-w64-id3lib/00-add-libz-to-compilation.patch new file mode 100644 index 0000000000..e937877364 --- /dev/null +++ b/mingw-w64-id3lib/00-add-libz-to-compilation.patch @@ -0,0 +1,14 @@ +This patch was first introduced in version 3.8.3-3 + +It fixes http://bugs.debian.org/208672 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -74,6 +74,8 @@ + + if ID3_NEEDZLIB + LDADD = $(top_builddir)/zlib/src/libz.la ++else ++libid3_la_LIBADD = -lz + endif + + libid3_la_LDFLAGS = \ diff --git a/mingw-w64-id3lib/05-create-m4-directory.patch b/mingw-w64-id3lib/05-create-m4-directory.patch new file mode 100644 index 0000000000..d8111205eb --- /dev/null +++ b/mingw-w64-id3lib/05-create-m4-directory.patch @@ -0,0 +1,12 @@ +Create a local m4 subdirectory +--- a/Makefile.am ++++ b/Makefile.am +@@ -12,6 +12,8 @@ + # require automake 1.5 + AUTOMAKE_OPTIONS = 1.5 + ++ACLOCAL_AMFLAGS = -I m4 ++ + EXTRA_DIST = \ + HISTORY \ + config.h.win32 \ diff --git a/mingw-w64-id3lib/10-fix-compilation-with-cpp-headers.patch b/mingw-w64-id3lib/10-fix-compilation-with-cpp-headers.patch new file mode 100644 index 0000000000..a9b45ab02c --- /dev/null +++ b/mingw-w64-id3lib/10-fix-compilation-with-cpp-headers.patch @@ -0,0 +1,22 @@ +This patch imports the proper C++ headers +--- a/include/id3/id3lib_strings.h ++++ b/include/id3/id3lib_strings.h +@@ -30,6 +30,7 @@ + #define _ID3LIB_STRINGS_H_ + + #include ++#include + + #if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000)) + namespace std +--- a/include/id3/writers.h ++++ b/include/id3/writers.h +@@ -30,7 +30,7 @@ + + #include "id3/writer.h" + #include "id3/id3lib_streams.h" +-//#include ++#include + + class ID3_CPP_EXPORT ID3_OStreamWriter : public ID3_Writer + { diff --git a/mingw-w64-id3lib/100-id3lib-3.8.3-mingw.patch b/mingw-w64-id3lib/100-id3lib-3.8.3-mingw.patch new file mode 100644 index 0000000000..552691b5c9 --- /dev/null +++ b/mingw-w64-id3lib/100-id3lib-3.8.3-mingw.patch @@ -0,0 +1,48 @@ +diff -urN id3lib-3.8.3.old/configure.in id3lib-3.8.3/configure.in +--- id3lib-3.8.3.old/configure.in 2014-02-24 10:21:50.620304728 +0000 ++++ id3lib-3.8.3/configure.in 2014-02-24 11:12:01.406469771 +0000 +@@ -253,7 +253,7 @@ + AC_CHECK_FUNCS(mkstemp) + AC_CHECK_FUNCS( + truncate \ +- ,,AC_MSG_ERROR([Missing a vital function for id3lib]) ++ ,,AC_MSG_WARN([Missing a vital function for id3lib]) + ) + + dnl Checks for typedefs, structures, and compiler characteristics. +diff -urN id3lib-3.8.3.old/include/id3/globals.h id3lib-3.8.3/include/id3/globals.h +--- id3lib-3.8.3.old/include/id3/globals.h 2003-03-02 00:23:00.000000000 +0000 ++++ id3lib-3.8.3/include/id3/globals.h 2014-02-24 11:12:27.896670566 +0000 +@@ -41,7 +41,7 @@ + * we prefix variable declarations so they can + * properly get exported in windows dlls. + */ +-#ifdef WIN32 ++#ifdef __MSVC_VER + # define LINKOPTION_STATIC 1 //both for use and creation of static lib + # define LINKOPTION_CREATE_DYNAMIC 2 //should only be used by prj/id3lib.dsp + # define LINKOPTION_USE_DYNAMIC 3 //if your project links id3lib dynamic +@@ -74,11 +74,11 @@ + # define CCONV __stdcall // Added for VB & Delphi Compatibility - By FrogPrince Advised By Lothar + # endif + # endif +-#else /* !WIN32 */ ++#else /* !__MSVC_VER */ + # define ID3_C_EXPORT + # define ID3_CPP_EXPORT + # define CCONV +-#endif /* !WIN32 */ ++#endif /* !__MSVC_VER */ + + #define ID3_C_VAR extern + +diff -urN id3lib-3.8.3.old/src/Makefile.am id3lib-3.8.3/src/Makefile.am +--- id3lib-3.8.3.old/src/Makefile.am 2014-02-24 11:05:44.097853121 +0000 ++++ id3lib-3.8.3/src/Makefile.am 2014-02-24 11:13:00.437688808 +0000 +@@ -79,4 +79,5 @@ + libid3_la_LDFLAGS = \ + -version-info $(LT_VERSION) \ + -release $(LT_RELEASE) \ +- -export-dynamic ++ -export-dynamic \ ++ -no-undefined diff --git a/mingw-w64-id3lib/15-fix-headers-of-main-functions.patch b/mingw-w64-id3lib/15-fix-headers-of-main-functions.patch new file mode 100644 index 0000000000..48e01d145f --- /dev/null +++ b/mingw-w64-id3lib/15-fix-headers-of-main-functions.patch @@ -0,0 +1,45 @@ +This patch fixes some function headers in demo code used during 'make check' +--- a/examples/demo_info.cpp ++++ b/examples/demo_info.cpp +@@ -309,7 +309,7 @@ + + #define DEBUG + +-int main( unsigned int argc, char * const argv[]) ++int main(int argc, char * const argv[]) + { + ID3D_INIT_DOUT(); + +--- a/examples/demo_convert.cpp ++++ b/examples/demo_convert.cpp +@@ -84,7 +84,7 @@ + } + } + +-int main( unsigned int argc, char * const argv[]) ++int main(int argc, char * const argv[]) + { + flags_t ulFlag = ID3TT_ALL; + gengetopt_args_info args; +--- a/examples/demo_copy.cpp ++++ b/examples/demo_copy.cpp +@@ -81,7 +81,7 @@ + } + } + +-int main( unsigned int argc, char * const argv[]) ++int main(int argc, char * const argv[]) + { + int ulFlag = ID3TT_ID3; + ID3D_INIT_DOUT(); +--- a/examples/demo_tag.cpp ++++ b/examples/demo_tag.cpp +@@ -46,7 +46,7 @@ + os << "v2"; + } + +-int main( unsigned int argc, char * const argv[]) ++int main(int argc, char * const argv[]) + { + int ulFlag = ID3TT_ID3; + ID3D_INIT_DOUT(); diff --git a/mingw-w64-id3lib/20-create-manpages.patch b/mingw-w64-id3lib/20-create-manpages.patch new file mode 100644 index 0000000000..cebf3d4d40 --- /dev/null +++ b/mingw-w64-id3lib/20-create-manpages.patch @@ -0,0 +1,198 @@ +This patch adds debian-made man pages +--- /dev/null ++++ b/doc/man/id3info.1 +@@ -0,0 +1,31 @@ ++.TH ID3INFO 1 "May 2000" local "User Command" ++.SH NAME ++id3info \- Display id3 tag information. ++.SH SYNOPSIS ++.B id3info ++.RB [ ++.I OPTION ++.RB ] ++.RB [ ++.I FILE ++.RB ] ++.br ++.SH DESCRIPTION ++.B Id3info ++displays both the id3v1 and id3v2 tag information for a file. ++Id3info will not differentiate between the two types of tags. ++.SH OPTIONS ++.TP ++.B \-h, \-\-help ++Display help and exit ++.TP ++.B \-v, \-\-version ++Display version information and exit ++.SH SEE ALSO ++id3convert(1), id3tag(1), id3v2(1) ++.SH AUTHOR ++.B id3lib ++was originally designed and implemented by Dirk Mahoney and is ++maintained by Scott Thomas Haug . Manual page written for ++Debian GNU/Linux by Robert Woodcock . ++ +--- /dev/null ++++ b/doc/man/id3tag.1 +@@ -0,0 +1,69 @@ ++.TH ID3TAG 1 "May 2000" local "User Command" ++.SH NAME ++id3tag \- Tags an mp3 file with id3v1 and/or id3v2 tags. ++.SH SYNOPSIS ++.B id3tag ++.RB [ ++.I OPTION ++.RB ] ... ++.RB [ ++.I FILE ++.RB ] ... ++.br ++.SH DESCRIPTION ++.B Id3tag ++will render both types of tag by default. Only the last ++tag type indicated in the option list will be used. Non- ++rendered will remain unchanged in the original file. Will ++also parse and convert Lyrics3 v2.0 frames, but will not ++render them. ++ ++.SH OPTIONS ++.TP ++.B \-1, \-\-v1tag ++Render only the id3v1 tag ++.TP ++.B \-2, \-\-v2tag ++Render only the id3v2 tag ++.TP ++.B \-h, \-\-help ++Display help and exit ++.TP ++.B \-v, \-\-version ++Display version information and exit ++.TP ++.B \-a, \-\-artist ARTIST ++Set the artist information ++.TP ++.B \-s, \-\-song SONG ++Set the song title information ++.TP ++.B \-A, \-\-album ALBUM ++Set the album title information ++.TP ++.B \-c, \-\-comment COMMENT ++Set the comment information ++.TP ++.B \-C, \-\-desc DESCRIPTION ++Set the comment description ++.TP ++.B \-g, \-\-genre num ++Set the genre number ++.TP ++.B \-y, \-\-year num ++Set the year ++.TP ++.B \-t, \-\-track num ++Set the track number ++.TP ++.B \-T, \-\-total num ++Set the total number of tracks on the album ++ ++.SH SEE ALSO ++id3convert(1), id3info(1), id3v2(1) ++.SH AUTHOR ++.B id3lib ++was originally designed and implemented by Dirk Mahoney and is ++maintained by Scott Thomas Haug . Manual page written for ++Debian GNU/Linux by Robert Woodcock . ++ +--- /dev/null ++++ b/doc/man/id3convert.1 +@@ -0,0 +1,47 @@ ++.TH ID3CONVERT 1 "May 2000" local "User Command" ++.SH NAME ++id3convert \- Converts between id3v1 and id3v2 tags of an mp3 file. ++.SH SYNOPSIS ++.B id3convert ++.RB [ ++.I OPTION ++.RB ] ++.RB [ ++.I FILE ++.RB ] ++.br ++.SH DESCRIPTION ++.B Id3convert ++converts between id3v1 and id3v2 tags of an mp3 file. Id3convert will render ++both types of tag by default. Only the last tag type indicated in the option ++list will be used. Non-rendered tags will remain unchanged in the original ++file. Id3convert will also parse and convert Lyrics3 v2.0 frames, but will ++not render them. ++ ++.SH OPTIONS ++.TP ++.B \-1, \-\-v1tag ++Render only the id3v1 tag ++.TP ++.B \-2, \-\-v2tag ++Render only the id3v2 tag ++.TP ++.B \-s, \-\-strip ++Strip, rather than render, the tags ++.TP ++.B \-p, \-\-padding ++Use padding in the tag ++.TP ++.B \-h, \-\-help ++Display help and exit ++.TP ++.B \-v, \-\-version ++Display version information and exit ++ ++.SH SEE ALSO ++id3tag(1), id3info(1), id3v2(1) ++.SH AUTHOR ++.B id3lib ++was originally designed and implemented by Dirk Mahoney and is ++maintained by Scott Thomas Haug . Manual page written for ++Debian GNU/Linux by Robert Woodcock . +--- /dev/null ++++ b/doc/man/id3cp.1 +@@ -0,0 +1,38 @@ ++.TH ID3CP 1 "July 2001" local "User Command" ++.SH NAME ++id3cp \- Copies tags from one file to another. ++.SH SYNOPSIS ++.B id3cp ++.RB [ ++.I OPTION ++.RB ] ... ++.RB [ ++.I SOURCE ++.RB ] ++.RB [ ++.I DEST ++.RB ] ++.br ++.SH DESCRIPTION ++.B Id3cp ++copies tags from SOURCE to DEST. ++.SH OPTIONS ++.TP ++.B \-1, \-\-v1tag ++Render only the id3v1 tag ++.TP ++.B \-2, \-\-v2tag ++Render only the id3v2 tag ++.TP ++.B \-h, \-\-help ++Display help and exit ++.TP ++.B \-v, \-\-version ++Display version information and exit ++.SH SEE ALSO ++id3convert(1), id3info(1), id3v2(1) ++.SH AUTHOR ++.B id3lib ++was originally designed and implemented by Dirk Mahoney and is ++maintained by Scott Thomas Haug . Manual page written for ++Debian GNU/Linux by Robert Woodcock . diff --git a/mingw-w64-id3lib/30-fix-utf16.patch b/mingw-w64-id3lib/30-fix-utf16.patch new file mode 100644 index 0000000000..3d3f50fed6 --- /dev/null +++ b/mingw-w64-id3lib/30-fix-utf16.patch @@ -0,0 +1,38 @@ +Patch from 'Spoon' to fix issues with writing certain unicode characters +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2006-02-17 Jerome Couderc ++ ++ * Patch from Spoon to fix UTF-16 writing bug ++ http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979 ++ + 2003-03-02 Sunday 17:38 Thijmen Klok + + * THANKS (1.20): added more people +--- a/src/io_helpers.cpp ++++ b/src/io_helpers.cpp +@@ -363,11 +363,22 @@ + // Write the BOM: 0xFEFF + unicode_t BOM = 0xFEFF; + writer.writeChars((const unsigned char*) &BOM, 2); ++ // Patch from Spoon : 2004-08-25 14:17 ++ // http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979 ++ // Wrong code ++ //for (size_t i = 0; i < size; i += 2) ++ //{ ++ // unicode_t ch = (data[i] << 8) | data[i+1]; ++ // writer.writeChars((const unsigned char*) &ch, 2); ++ //} ++ // Right code ++ unsigned char *pdata = (unsigned char *) data.c_str(); + for (size_t i = 0; i < size; i += 2) + { +- unicode_t ch = (data[i] << 8) | data[i+1]; ++ unicode_t ch = (pdata[i] << 8) | pdata[i+1]; + writer.writeChars((const unsigned char*) &ch, 2); + } ++ // End patch + } + return writer.getCur() - beg; + } diff --git a/mingw-w64-id3lib/40-deal-with-mkstemp.patch b/mingw-w64-id3lib/40-deal-with-mkstemp.patch new file mode 100644 index 0000000000..36c84179fc --- /dev/null +++ b/mingw-w64-id3lib/40-deal-with-mkstemp.patch @@ -0,0 +1,54 @@ +This patch fixes an issues where temporary files were created in an insecure +way. + +It was first intruduced in version 3.8.3-7 and fixes +http://bugs.debian.org/438540 +--- a/src/tag_file.cpp ++++ b/src/tag_file.cpp +@@ -242,8 +242,8 @@ + strcpy(sTempFile, filename.c_str()); + strcat(sTempFile, sTmpSuffix.c_str()); + +-#if ((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP)) +- // This section is for Windows folk && gcc 3.x folk ++#if !defined(HAVE_MKSTEMP) ++ // This section is for Windows folk + fstream tmpOut; + createFile(sTempFile, tmpOut); + +@@ -257,7 +257,7 @@ + tmpOut.write((char *)tmpBuffer, nBytes); + } + +-#else //((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP)) ++#else //!defined(HAVE_MKSTEMP) + + // else we gotta make a temp file, copy the tag into it, copy the + // rest of the old file after the tag, delete the old file, rename +@@ -270,7 +270,7 @@ + //ID3_THROW_DESC(ID3E_NoFile, "couldn't open temp file"); + } + +- ofstream tmpOut(fd); ++ ofstream tmpOut(sTempFile); + if (!tmpOut) + { + tmpOut.close(); +@@ -285,14 +285,14 @@ + uchar tmpBuffer[BUFSIZ]; + while (file) + { +- file.read(tmpBuffer, BUFSIZ); ++ file.read((char *)tmpBuffer, BUFSIZ); + size_t nBytes = file.gcount(); +- tmpOut.write(tmpBuffer, nBytes); ++ tmpOut.write((char *)tmpBuffer, nBytes); + } + + close(fd); //closes the file + +-#endif ////((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP)) ++#endif ////!defined(HAVE_MKSTEMP) + + tmpOut.close(); + file.close(); diff --git a/mingw-w64-id3lib/50-remove-outdated-check.patch b/mingw-w64-id3lib/50-remove-outdated-check.patch new file mode 100644 index 0000000000..386da2771b --- /dev/null +++ b/mingw-w64-id3lib/50-remove-outdated-check.patch @@ -0,0 +1,11 @@ +We don't actually need iomanip.h +--- a/configure.in ++++ b/configure.in +@@ -227,7 +227,6 @@ + ) + AC_CHECK_HEADERS( \ + string \ +- iomanip.h \ + ,,AC_MSG_ERROR([Missing a vital header file for id3lib]) + ) + diff --git a/mingw-w64-id3lib/60-add-c-wrapper-functions.patch b/mingw-w64-id3lib/60-add-c-wrapper-functions.patch new file mode 100644 index 0000000000..d72e81c0ec --- /dev/null +++ b/mingw-w64-id3lib/60-add-c-wrapper-functions.patch @@ -0,0 +1,58 @@ +This patch adds C wrapper functions for field encoding. + +It was first introduced in version 3.8.3-8 and fixes +http://bugs.debian.org/281292 +--- a/include/id3.h ++++ b/include/id3.h +@@ -104,6 +104,9 @@ + ID3_C_EXPORT void CCONV ID3Field_GetBINARY (const ID3Field *field, uchar *buffer, size_t buffLength); + ID3_C_EXPORT void CCONV ID3Field_FromFile (ID3Field *field, const char *fileName); + ID3_C_EXPORT void CCONV ID3Field_ToFile (const ID3Field *field, const char *fileName); ++ ID3_C_EXPORT bool CCONV ID3Field_SetEncoding (ID3Field *field, ID3_TextEnc enc); ++ ID3_C_EXPORT ID3_TextEnc CCONV ID3Field_GetEncoding (const ID3Field *field); ++ ID3_C_EXPORT bool CCONV ID3Field_IsEncodable (const ID3Field *field); + + /* field-info wrappers */ + ID3_C_EXPORT char* CCONV ID3FrameInfo_ShortName (ID3_FrameID frameid); +--- a/src/c_wrapper.cpp ++++ b/src/c_wrapper.cpp +@@ -681,6 +681,39 @@ + } + } + ++ ID3_C_EXPORT bool CCONV ++ ID3Field_SetEncoding(ID3Field *field, ID3_TextEnc enc) ++ { ++ bool changed = false; ++ if (field) ++ { ++ ID3_CATCH(changed = reinterpret_cast(field)->SetEncoding(enc)); ++ } ++ return changed; ++ } ++ ++ ID3_C_EXPORT ID3_TextEnc CCONV ++ ID3Field_GetEncoding(const ID3Field *field) ++ { ++ ID3_TextEnc enc = ID3TE_NONE; ++ if (field) ++ { ++ ID3_CATCH(enc = reinterpret_cast(field)->GetEncoding()); ++ } ++ return enc; ++ } ++ ++ ID3_C_EXPORT bool CCONV ++ ID3Field_IsEncodable(const ID3Field *field) ++ { ++ bool isEncodable = false; ++ if (field) ++ { ++ ID3_CATCH(isEncodable = reinterpret_cast(field)->IsEncodable()); ++ } ++ return isEncodable; ++ } ++ + #ifdef __cplusplus + } + #endif /* __cplusplus */ diff --git a/mingw-w64-id3lib/60-fix_make_check.patch b/mingw-w64-id3lib/60-fix_make_check.patch new file mode 100644 index 0000000000..e2bb1b0518 --- /dev/null +++ b/mingw-w64-id3lib/60-fix_make_check.patch @@ -0,0 +1,50 @@ +This patch fixes some function headers and imports in order for 'make check' +to work. + +It was first introduced in version 3.8.3-9 +diff -Naur id3lib-3.8.3.orig/examples/findeng.cpp id3lib-3.8.3/examples/findeng.cpp +--- id3lib-3.8.3.orig/examples/findeng.cpp 2003-03-02 01:23:00.000000000 +0100 ++++ id3lib-3.8.3/examples/findeng.cpp 2009-12-10 00:58:12.173795997 +0100 +@@ -9,7 +9,7 @@ + using std::cout; + using std::endl; + +-int main(unsigned argc, char* argv[]) ++int main(int argc, char* argv[]) + { + ID3D_INIT_DOUT(); + ID3D_INIT_WARNING(); +diff -Naur id3lib-3.8.3.orig/examples/findstr.cpp id3lib-3.8.3/examples/findstr.cpp +--- id3lib-3.8.3.orig/examples/findstr.cpp 2003-03-02 01:23:00.000000000 +0100 ++++ id3lib-3.8.3/examples/findstr.cpp 2009-12-10 00:57:48.036819825 +0100 +@@ -9,7 +9,7 @@ + using std::cout; + using std::endl; + +-int main(unsigned argc, char* argv[]) ++int main(int argc, char* argv[]) + { + ID3D_INIT_DOUT(); + ID3D_INIT_WARNING(); +diff -Naur id3lib-3.8.3.orig/examples/test_io.cpp id3lib-3.8.3/examples/test_io.cpp +--- id3lib-3.8.3.orig/examples/test_io.cpp 2003-03-02 01:23:00.000000000 +0100 ++++ id3lib-3.8.3/examples/test_io.cpp 2009-12-10 00:57:03.612111640 +0100 +@@ -11,6 +11,9 @@ + #include + #include + ++using std::cin; ++using std::hex; ++using std::dec; + using std::cout; + using std::endl; + using std::cerr; +@@ -18,7 +21,7 @@ + using namespace dami; + + int +-main(size_t argc, const char** argv) ++main(int argc, const char** argv) + { + ID3D_INIT_DOUT(); + ID3D_INIT_WARNING(); diff --git a/mingw-w64-id3lib/60-id3lib-missing-nullpointer-check.patch b/mingw-w64-id3lib/60-id3lib-missing-nullpointer-check.patch new file mode 100644 index 0000000000..d4ca5d292f --- /dev/null +++ b/mingw-w64-id3lib/60-id3lib-missing-nullpointer-check.patch @@ -0,0 +1,12 @@ +This patch adds a check for a null pointer +--- a/src/header_tag.cpp ++++ b/src/header_tag.cpp +@@ -54,7 +54,7 @@ + { + size_t bytesUsed = ID3_TagHeader::SIZE; + +- if (_info->is_extended) ++ if (_info && _info->is_extended) + { + bytesUsed += _info->extended_bytes; + } diff --git a/mingw-w64-id3lib/60-spelling.patch b/mingw-w64-id3lib/60-spelling.patch new file mode 100644 index 0000000000..89040e29ca --- /dev/null +++ b/mingw-w64-id3lib/60-spelling.patch @@ -0,0 +1,107 @@ +This patch fixes some minor spelling mistakes +diff -Naur id3lib-3.8.3.orig//ChangeLog id3lib-3.8.3//ChangeLog +--- id3lib-3.8.3.orig//ChangeLog 2010-06-08 05:21:47.817061336 +0200 ++++ id3lib-3.8.3//ChangeLog 2010-06-08 05:21:05.320811354 +0200 +@@ -2266,7 +2266,7 @@ + * examples/demo_info.cpp (1.19): + (PrintInformation): When printing synced lyrics info, now uses a + MemoryReader, BinaryNumberReader, and TextReader to extract the +- infromation from the binary field. This is a cheat, since these ++ information from the binary field. This is a cheat, since these + classes aren't normally exposed to folks using the library. + Hopefully they will be exposed soon enough for the next major + release. +diff -Naur id3lib-3.8.3.orig//doc/id3v2.3.0.html id3lib-3.8.3//doc/id3v2.3.0.html +--- id3lib-3.8.3.orig//doc/id3v2.3.0.html 2010-06-08 05:21:47.859810543 +0200 ++++ id3lib-3.8.3//doc/id3v2.3.0.html 2010-06-08 05:21:05.373811128 +0200 +@@ -2157,7 +2157,7 @@ + 64.Native American + 65.Cabaret + 66.New Wave +- 67.Psychadelic ++ 67.Psychedelic + 68.Rave + 69.Showtunes + 70.Trailer +@@ -2254,4 +2254,4 @@ + Email: johan@id3.org +